In this article, we consider the stages of development of a novel application toolkit for reconfigurable computer systems, its architecture and operation principles. The toolkit provides the translation of procedural programs in C to configuration files for field-programmable gate arrays in 6 stages. The conversion of procedural program in C to parallel program in COLAMO (Common Oriental Language for Architecture of Multi Objects) is performed using four additional programs: the “Angel ” translator and three preprocessors called the “Mermaid ”, the “Procrustes” and the “Nutcracker ”. At the first stage, the “Angel ” translates the C program into the absolutely parallel program in the COLAMO language. During the second stage, the information dependences of the initial C program are analyzed, scalar variables are split, and arrays are stretched by iterations. Then, at the third stage, the COLAMO code is converted to the parallel and pipeline form using the partition of arrays and loops into the vector and strea components. The fourth stage involves the transformation of the COLAMO program to the scalable parallel and pipeline form. The optional fifth stage, which is aimed at the reduction of the base subgraph, is executed only in the case of the lack of hardware resource for the structural implementation of the base subgraph of a problem. At the sixth stage, the COLAMO program is transformed to the unique computational structure and several cadrs designed for the architecture of the chosen reconfigurable computer system. The distinctive feature of the developed toolkit is the support of the resource-independent computing, which allows for the scaling of calculations in both cases of increase (induction) and decrease (reduction) in available hardware resources.
In this paper, we thoroughly consider the technique of conversion of procedural programs in C to configuration files for field-programmable gate arrays used in the toolkit for programming of reconfigurable and hybrid computer systems. The creation of parallel program in the COLAMO (Common Oriented Language for Architecture of Multi Objects) language using the analysis results of information dependences in the initial procedural program and its further conversion to a parallel and pipeline form are the distinctive characteristics of the technique. We addressed the methods of scalar splitting and array extension by iterations, which are applied for the fulfillment of the single assignment and unique substitution rules in parallel program and the saving of information communications of the initial procedural program. The technique of conversion of automatically created parallel program to the scalable parallel and pipeline form is presented. The “Procrustes” preprocessor adapts the form for different architectures and configurations of reconfigurable and hybrid computer systems. Owing to the described methodology, it is possible to synthesize a resource-independent scalable COLAMO-application, which can adapt to available computational resource by changing of several constants in automatic mode without any considerable modification of the program source code. Then, the scalable COLAMO-applicationis translated by the COLAMO-translator into field-programmable gate arrays configuration files for the specified reconfigurable computer resource.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.