The compilation of source code to a primary and a secondary processor. The
method relates to reconfigurable secondary processors, and is especially
relevant to secondary processors which can be reconfigured to some degree
during execution of code. Selective extraction of dataflows from the
source code is followed by transformation of the extracted dataflows into
trees. The trees are then matched against each other to determine minimum
edit cost relationships for transformation of one tree into another, where
these minimum edit cost relationships are determined by the architecture
of the secondary processor. A group or a plurality of groups of dataflows
is determined on the basis of said minimum edit cost relationships and for
each group a generic dataflow capable of supporting each dataflow in that
group is created. The generic dataflow or dataflows is then used to
determine the hardware configuration of the secondary processor; and calls
to the secondary processor for said group or plurality of groups of
dataflows are substituted into the source code. The resultant source code
is compiled to the primary processor.
The resulting efficient configuration thus reduces either the expense of
reconfiguration (in a field programmable array), or the silicon area (in
an application specific integrated circuit).
Die Kompilation des Quellenprogramms zu einem Primär- und Sekundärprozessor. Die Methode bezieht auf reconfigurable Sekundärprozessoren, und ist zu den Sekundärprozessoren besonders relevant, die zu irgendeinem Grad während der Durchführung des Codes rekonfiguriert werden können. Vorgewählte Extraktion des Datenflusses vom Quellenprogramm wird von der Umwandlung des extrahierten Datenflusses in Bäume gefolgt. Die Bäume werden dann gegeneinander zusammengebracht, um Minimum festzustellen redigieren Kosten-Verhältnisse für Umwandlung von einem Baum in andere, wo dieses Minimum Kosten-Verhältnisse wird festgestellt durch die Architektur des Sekundärprozessors redigiert. Eine Gruppe oder eine Mehrzahl der Gruppen Datenflusses wird auf der Grundlage von besagtes Minimum redigieren Kosten-Verhältnisse und für jede Gruppe ein generischer Datenfluß festgestellt, der zu jeden Datenfluß dadurch stützen fähig ist, daß Gruppe verursacht wird. Der generische Datenfluß oder der Datenfluß wird dann verwendet, um die Hardwarekonfiguration des Sekundärprozessors festzustellen; und Anrufe zum Sekundärprozessor für besagte Gruppe oder Mehrzahl der Gruppen Datenflusses werden in das Quellenprogramm ersetzt. Das resultierende Quellenprogramm wird zum Primärprozessor kompiliert. Die resultierende leistungsfähige Konfiguration verringert folglich entweder die Unkosten der Neukonfiguration (in einer programmierbaren Reihe auffangen) oder den Silikonbereich (in einer Anwendung spezifischen integrierten Schaltung).