DE10129237A1 - Verfahren zur Bearbeitung von Daten - Google Patents
Verfahren zur Bearbeitung von DatenInfo
- Publication number
- DE10129237A1 DE10129237A1 DE10129237A DE10129237A DE10129237A1 DE 10129237 A1 DE10129237 A1 DE 10129237A1 DE 10129237 A DE10129237 A DE 10129237A DE 10129237 A DE10129237 A DE 10129237A DE 10129237 A1 DE10129237 A1 DE 10129237A1
- Authority
- DE
- Germany
- Prior art keywords
- code
- processor
- extracted
- interface
- reconfigurable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 239000011159 matrix material Substances 0.000 title abstract 4
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000000605 extraction Methods 0.000 claims description 18
- 238000011161 development Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 2
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 14
- 238000013519 translation Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Übersetzung von Programmen auf ein System, bestehend aus wenigstens einem ersten Prozessor und einer rekonfigurierbaren Einheit. Hierbei ist vorgesehen, daß die Codeteile, die für die rekonfigurierbare Einheit geeignet sind, bestimmt und extrahiert werden und der verbleibende Code zur Abarbeitung durch den ersten Prozessor derart extrahiert wird.
Description
Die vorliegende Erfindung befaßt sich mit herkömmlichen, d. h.
konventionellen und rekonfigurierbaren Architekturen sowie
mit Verfahren hierfür, die eine Übersetzung einer klassischen
Hochsprache (PROGRAMM), wie Pascal, C, C++, Java, etc. ermög
lichen, insbesondere auf eine rekonfigurierbare Architektur.
Unter einer konventionellen Prozessorarchitektur (PROZESSOR)
werden vorliegend beispielsweise sequentielle Prozessoren mit
einer von-Neumann- oder Havardarchitektur verstanden, wie
z. B. Kontroller, CISC-, RISC-, VLIW-, DSP- u. ä. Prozessoren.
Unter einer rekonfigurierbaren Zielarchitektur werden vorlie
gend Bausteine (VPU) mit konfigurierbarer Funktion und/oder
Vernetzung verstanden, insbesondere integrierte Bausteine mit
einer Mehrzahl von ein- oder mehrdimensional angeordneten,
arithmetischen und/oder logischen und/oder analogen und/oder
speichernden Baugruppen, die direkt oder durch ein Bussystem
miteinander verbunden sind.
Zur Gattung dieser Bausteine zählen insbesondere systolische
Arrays, neuronale Netze, Mehrprozessor-Systeme, Prozessoren
mit mehreren Rechenwerken und/oder logischen Zellen, Vernet
zungs- und Netzwerkbausteine wie z. B. Crossbar-Schalter,
ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, XPUTER,
etc. Hingewiesen wird insbesondere in diesem Zusammenhang
auf die folgenden Schutzrechte desselben Anmelders: P 44 16 881.0-53,
DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53,
DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7,
DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/01869, DE 100 36 627.9-33,
DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6,
PCT/EP 00/10516, EP 01 102 674.7. Diese sind hiermit
zu Offenbarungszwecken vollumfänglich eingegliedert.
Es hat sich gezeigt, daß es bestimmte Verfähren und Pro
grammabläufe gibt, die sich besser mit einer rekonfigurierba
re Architektur abarbeiten lassen als mit einer konventionel
len Prozessorarchitektur. Umgekehrt gibt es auch solche Ver
fahren und Programmabläufe, die besser mit einer konventio
nellen Prozessorarchitektur ausgeführt werden können.
Die Aufgabe dieser Erfindung besteht darin Neues für die ge
werbliche Anwendung bereitzustellen.
Die Lösung dieser Aufgabe wird in unabhängiger Form bean
sprucht.
Es wurde erkannt, daß es wünschenswert ist, daß Verfahren zur
Datenverarbeitung so ausgelegt werden, daß nur die jeweils
für die rekonfigurierbare Zielarchitektur besonders geeigne
ten Teile des zu übersetzenden Programmes extrahiert werden.
Die verbleibenden Teile des Programmes können dann auf eine
konventionelle Prozessorarchitektur übersetzt werden.
Weiterhin sei angemerkt, daß die Verfahren auch auf Gruppen
von mehreren Bausteinen angewendet werden können.
Ein PROZESSOR wird derart mit einer oder mehreren VPU(s) ver
bunden, daß ein effizienter Informationsaustausch, insbeson
dere in Form von Daten- und Statusinformation möglich ist.
Die Anordnung eines herkömmlichen Prozessors und eines rekon
figurierbaren Prozessors, dergestalt, daß eine Daten- und Sta
tusinformation zwischen denselben während der Abarbeitung ei
nes oder mehrere Programme möglich ist und/oder ohne daß ins
besondere die Datenverarbeitung auf dem rekonfigurierbaren
Prozessor und/oder dem herkömmlichen Prozessor signifikant
unterbrochen werden muß, sowie die Ausbildung eines derarti
gen Systems soweit aus dem nachfolgenden ersichtlich, wird
gleichfalls beansprucht.
Es werden zunächst beispielsweise folgende Verbindungsverfah
ren und -mittel verwendet:
- a) Shared-Memory
- b) Netzwerk (beispielsweise Bussysteme wie z. B. PCI-Bus, Se rielle Busse wie z. B. Ethernet)
- c) Kopplung an einen internen Registersatz oder mehrere in terne Registersätze
- d) andere Speichermedien (Festplatte, Flash-ROM, etc.)
Es sei erwähnt, daß hier als ein "Prozessor" auch ein Dual-
Prozessorsystem und/oder ein andere Anordnungen aufweisendes
System insbesondere mit mehr als zwei konventionellen Prozes
soren gemeint sein kann. Gleichfalls und/oder alternativ sind
mehrere rekonfigurierbare Bausteine gleichzeitig verwendbar.
Aus einem PROGRAMM werden mittels eines PRÄPROZESSORS die
Teile extrahiert, die sich auf die jeweils bestimmte(n)
VPU(s) effizient und/oder sinnvoll abbilden lassen. Diese
Teile werden in einem für VPUs geeigneten Format ausgegeben
(NML).
Der verbleibende Code und/oder der extrahierte Code wird an
der Stelle der durch die Extraktion fehlenden Code-Teile um
einen Interface-Code erweitert, der entsprechend der Archi
tektur des Zielsystems die Kommunikation zwischen PROZES
SOR(en) und VPU(s) steuert. Der verbleibende und ggf. erwei
terte Code wird in Form einer klassischen Hochsprache ausge
geben (HOSTCODE), wobei die Gattung des ausgegebenen Codes
insbesondere exakt der Gattung der ursprünglichen HOCHSPRACHE
entsprechen kann.
Diese extrahierte HOCHSPRACHE wird mittels eines gewöhnlichen
Standard-Übersetzers für den/die jeweiligen PROZESSOR(en)
übersetzt, wobei es möglich ist, dies so zu gestalten, daß
keinerlei besondere Anpassung des Übersetzers an die verwen
dete Datenverarbeitungsarchitektur notwendig ist.
Durch dieses Verfahren wird der Implementierungsaufwand der
Programmierumgebung erheblich vereinfacht. Zudem kann der An
wender den PROZESSOR weiterhin in der ihm bekannten Program
mierumgebung, die er frei wählen kann, programmieren und de
buggen.
Zunächst wird der für eine VPU geeignet erscheinende Code aus
dem PROGRAMM extrahiert. Die Extraktion kann auf unterschied
lichen Methoden basieren, die einzeln oder kombiniert ange
wendet werden. Folgende Methoden sollen beispielhaft detail
lierter beschrieben werden.
Der Programmierer gibt explizit durch Hinweise (Hints) inner
halb des PROGRAMMES Anweisungen, welche Teile extrahiert wer
den sollen. Beispielsweise kann dies folgendermaßen erfolgen:
. . .
Code
. . .
/ / START_NML_EXTRACTION
Zu extrahierender Code
/ / END_NML_EXTRACTION
. . .
Code
. . .
Code
. . .
/ / START_NML_EXTRACTION
Zu extrahierender Code
/ / END_NML_EXTRACTION
. . .
Code
. . .
"/ / START_NML_EXTRACTION" kennzeichnet den Beginn eines zu
extrahierenden Codes.
"/ / END_NML_EXTRACTION" kennzeichnet das Ende eines zu extra hierenden Codes.
"/ / END_NML_EXTRACTION" kennzeichnet das Ende eines zu extra hierenden Codes.
In einem solchen Fall ist die Einheit zur Umsetzung des Pro
gramms in Konfigurationscodes dazu ausgebildet, die Hints be
ziehungsweise Umsetzungsvorgaben zu erkennen.
Der Programmierer implementiert Teile des PROGRAMMES direkt
in NML und springt in die NML-Routinen durch Aufrufe (calls).
Beispielsweise erfolgt dies derart:
- a) NML-Code
. . .
procedure EXAMPLE
begin
. . .
end
. . . - b) PROGRAMM Code
. . .
Code
. . .
call EXAMPLE / / Aufruf des NML-Codes
. . .
Code
. . .
In diesem Fall ist die Einheit zur Umsetzung dazu ausge
bildet, NML-Programmteile, das heißt Programmteile zur Aus
führung in und/oder auf einem rekonfigurierbaren Array in ein
größeres Programm einzubinden.
Durch an die jeweilig VPU angepaßte Analysemethoden werden
Teile innerhalb des PROGRAMMES erkannt, die effizient
und/oder sinnvoll auf die VPU abbildbar sind.
Diese Teile werden aus dem PROGRAMM extrahiert.
Eine beispielsweise für viele VPUs geeignete Analysemethode
ist der Aufbau von Datenfluß- und/oder Kontrollflußgraphen
aus dem PROGRAMM. Diese Graphen können hinsichtlich ihrer
möglichen Partitionierung und/oder Abbildung auf die Ziel-VPU
automatisch untersucht werden. In diesem Fall werden die Tei
le der generierten Graphen bzw. die entsprechenden PROGRAMM-
Teile, extrahiert; die sich hinreichend gut partitionieren
und/oder abbilden lassen. Hierzu kann eine Partitionierbar
keits- und/oder Abbildbarkeitsanalyse erfolgen, die die je
weilige Eigenschaft bewertet.
Eine für die implementierte VPU geeignete Übersetzung des ex
trahierten Codes nach NML wird durchgeführt.
Für datenflußorientierte VPUs kann beispielsweise automatisch
ein Datenfluß- und/oder Kontrollflußgraph aufgebaut werden.
Die Graphen werden dann in NML-Code übersetzt. Dabei kann ge
gebenenfalls bereits das Abbilden auf die VPU erfolgen, bei
spielsweise mittels der Durchführung des Plazierens der benö
tigten Ressourcen und des Routens der Verbindungen (Place and
Route). Dies geschieht zum Beispiel nach typischen bekannten
Regeln des Plazierens und Routens.
Mittels einer automatischen Analysemethode wird der extra
hierte Code und/oder der übersetzte NML-Code auf seine Verar
beitungseffizienz hin analysiert. Dabei ist die Analysemetho
de bevorzugt so gewählt, daß der Interface-Code und die dar
aus entstehenden Performanceeinflüsse an geeigneter Stelle
mit in die Analyse einfließen.
Gegebenenfalls wird die Analyse durch eine komplette Überset
zung und Implementierung auf dem Hardware-System durchge
führt, indem das PROGRAMM ausgeführt und mit geeigneten Me
thoden, wie sie beispielsweise nach dem Stand der Technik be
kannt sind, vermessen wird.
Basierend auf den durchgeführten Analysen, können verschiede
ne durch die Extraktion für eine VPU gewählte Teile als unge
eignet identifiziert werden. Umgekehrt kann die Analyse erge
ben, daß bestimmte für einen PROZESSOR extrahierte Teile zur
Ausführung auf einer VPU geeignet wären.
Eine optionale Schleife, die nach der Analyse basierend auf
geeigneten Entscheidungskriterien zurück in den Extraktion
steil führt, um diesen mit entsprechend der Analyse angepaß
ten Extraktionsvorgaben erneut auszuführen, ermöglicht die
Optimierung des Übersetzungsergebnisses. Man hat somit eine
Iteration.
Die Schleife kann an mehreren unterschiedlichen Stellen in
den Compilerlauf eingebracht sein.
Der ausgegebene Code ist üblicherweise vollständig und ohne
weitere Eingriffe auf den jeweils nachfolgenden Compilern
ausführbar. Gegebenenfalls werden Compilerflags und Con
straints für die nachfolgenden Compiler generiert, wobei der
Anwender optional eigene Vorgaben hinzufügen und/oder die ge
nerierten Vorgaben modifizieren kann. Die nachfolgenden Com
piler benötigen keine wesentlichen Modifikationen, sodaß
Standard-Tools einsetzbar sind.
Das vorgeschlagene Verfahren eignet sich somit beispielsweise
insbesondere als Präprozessor vor Compilern und Entwicklungs
systemen.
Der Interface-Code, der in den extrahierten Code eingesetzt
wird, kann durch unterschiedliche Verfahren vorgegeben wer
den. Bevorzugt wird der Interface-Code in einer Datenbank ab
gelegt, auf die zugegriffen wird. Die Einheit zur Umsetzung
kann so ausgebildet sein, daß sie eine Auswahl des Program
mierers berücksichtigt, der beispielsweise durch Hinweise im
PROGRAMM oder durch Compilerflags den passenden Interface-
Code auswählt. Dabei kann der für das jeweils verwendete Im
plementierungsverfahren geeignete Interface-Code gewählt wer
den.
Die Datenbank selbst kann durch unterschiedliche Methoden
aufgebaut und gewartet werden. Einige Beispiele sollen zur
Verdeutlichung der Möglichkeiten angeführt werden:
- a) Der Interface-Code kann vom Lieferanten des Compilers für bestimmte Verbindungsverfahren vorgegeben werden. Dies kann bei der Organisation der Datenbank berücksichtigt werden, indem entsprechende Speichermittel für diese An gaben bereitgehalten werden.
- b) Der Interface-Code kann vom Benutzer, der den Systemauf bau bestimmt hat, selbst geschrieben oder aus bestehenden (Beispiel-) Interface-Codes modifiziert und der Datenbank zugefügt werden. Das Datenbankmittel wird hierzu bevor zugt benutzermodifizierbar gestaltet, um dem Benutzer die Datenbankmodifikation zu ermöglichen.
- c) Der Interface-Code kann von einem Entwicklungssystem, mit dem beispielsweise der Systemaufbau geplant und/oder be schrieben und/oder getestet wurde, automatisch generiert werden.
Der Interface-Code ist gewöhnlicherweise derart gestaltet,
daß er den Anforderungen der Programmiersprache entspricht,
in der der extrahierte Code vorliegt in den der Interface-
Code eingefügt werden soll.
In die Interface-Codes können Kommunikationsroutinen einge
führt werden, um die unterschiedlichen Entwicklungssysteme
für PROZESSOR und VPU zu synchronisieren. Insbesondere kann der
Code für die jeweiligen Debugger aufgenommen werden.
Der Interface-Code steuert den Datenaustausch zwischen PRO
ZESSOR und VPU. Er ist daher eine geeignete und bevorzugte
Schnittstelle, um die jeweiligen Entwicklungssysteme und De
buggets zu steuern. Es ist beispielsweise möglich, einen De
bugger für den PROZESSOR solange zu aktivieren, wie die Daten
von dem Prozessor verarbeitet werden. Sobald die Daten über
den Interface-Code an eine (oder mehrere) VPU übergeben wer
den, ist ein Debugger für VPUs zu aktivieren. Wird der Code
zurück an den PROZESSOR gesendet, soll wiederum der PROZES
SOR-Debugger aktiviert werden.
Es ist daher also möglich und bevorzugt, derartige Abläufe
durch das Einfügen von Steuercodes für Debugger und/oder Ent
wicklungssysteme in den Interface-Code abzuwickeln.
Die Kommunikation und Steuerung zwischen den unterschiedli
chen Entwicklungssystemen soll daher bevorzugt mittels in die
Interface-Codes von PROZESSOR und/oder VPU eingebrachte Steu
ercodes abgewickelt werden. Die Steuercodes können dabei be
stehenden Standards für die Steuerung von Entwicklungssyste
men weitgehend entsprechen.
Die Verwaltung und Kommunikation der Entwicklungssysteme wird
vorzugsweise wie beschrieben in die Interface-Codes abgewic
kelt, kann jedoch - sofern sinnvoll - auch getrennt von die
sen, nach einem entsprechenden ähnlichen Verfahren abgewic
kelt werden.
Fig. 1 verdeutlicht das vorgeschlagene Verfahren und zeigt
einen möglichen Systemaufbau. Dabei ist ein PROZESSOR (0101)
über ein geeignetes Interface (0102) zum Daten- und Statu
saustausch mit einer VPU (0103) verbunden.
Ein PROGRAMM-Code (0110) wird in einen für den PROZESSOR ge
eigneten Teil (0111) und einen VPU-geeigneten Teil (0112)
zerlegt.
0111 wird durch einen Standard-Compiler (0113) übersetzt, wo
bei zusätzlicher Code zur Beschreibung und Verwaltung des In
terfaces (0102) aus einer Datenbank (0114) eingefügt wird.
Auf 0101 ausführbarer sequentieller Code wird generiert
(0116) und sofern notwendig die entsprechende Programmierung
(0117) des Interfaces (0102).
0112 wird durch einen VPU-Compiler (0115) übersetzt, wobei ein
zusätzlicher Code zur Beschreibung und Verwaltung des Inter
faces (0102) aus einer Datenbank (0114) eingefügt wird. Auf
0103 ausführbare Konfigurationen werden generiert (0118) und
sofern notwendig die entsprechende Programmierung (0119) des
Interfaces (0102).
In Fig. 2 ist beispielhaft ein prinzipieller Ablauf einer
Compilation dargestellt. Ein PROGRAMM (0201) wird in der Ex
traktionseinheit (0202) nach unterschiedlichen Verfahren in
VPU-Code (0203) und PROZESSOR-Code (0204) zerlegt. Unter
schiedliche Methoden können in beliebiger Kombination zur Ex
traktion angewendet werden, beispielsweise Hinweise im ur
sprünglichen PROGRAMM (0205), Unterprogrammaufrufe (0206)
und/oder Analyseverfahren (0207). Der jeweils extrahierte
Code wird ggf. übersetzt und ggf. auf seine Eignung für das
jeweilige Zielsystem hin überprüft (0208). Dabei ist eine
Rückkopplung (0209) auf die Extraktion möglich, um Verbesse
rungen durch eine geänderte Zuordnung der Codes zum PROZESSOR
oder einer VPU zu erhalten.
Danach (0211) wird 0203 durch den Interface-Code aus einer
Datenbank (0210) erweitert (0212) und/oder 0204 wird durch
den Interface-Code aus 0210 zu 0213 erweitert.
Der entstandene Code wird auf seine Performance analysiert
(0214), ggf. ist eine Rückkopplung (0215) auf die Extraktion
möglich, um Verbesserungen durch eine geänderte Zuordnung der
Codes zum PROZESSOR oder einer VPU zu erhalten.
Der entstandene VPU-Code (0216) wird für eine weitere Über
setzung an einen nachgeschalteten für die VPU geeigneten Com
piler weitergegeben. Der entstandene PROZESSOR-Code (0217)
wird für die weitere Übersetzung in einem beliebigen nachge
schalteten für den PROZESSOR geeigneten Compiler weiterverar
beitet.
Es soll angemerkt werden, daß einzelne Schritte je nach Ver
fahren ausgelassen werden können. Wesentlich ist, daß weitge
hend kompletter und ohne Eingriff durch den Programmierer di
rekt übersetzbarer Code an die jeweils nachgeschalteten Com
pilersysteme ausgegeben wird.
Die Datenbank für die Interface-Codes (0210) wird unabhängig
und vor dem Compilerdurchlauf aufgebaut. Beispielsweise sind
folgende Quellen für die Datenbank möglich: Vom Lieferanten
vorgegeben (0220), vom Benutzer programmiert (0221) oder au
tomatisch von einem Entwicklungssystem generiert (0222).
Zusammenfassend befaßt sich die vorliegende Erfindung mit
Verfahren, die eine Übersetzung einer klassischen Hochsprache
wie Pascal, C, C++, Java, etc. auf eine rekonfigurierbare Ar
chitektur ermöglicht. Das Verfahren ist derart ausgelegt, daß
nur die jeweils für die rekonfigurierbare Zielarchitektur ge
eigneten Teile des zu übersetzenden Programmes extrahiert
werden. Die verbleibenden Teile des Programmes werden auf ei
ne konventionelle Prozessorarchitektur übersetzt.
Claims (14)
1. Verfahren zur Übersetzung von Programmen auf ein System
bestehend aus wenigstens einem ersten Prozessor und einer
rekonfigurierbaren Einheit, dadurch gekennzeichnet, daß
die Codeteile, die für die rekonfigurierbare Einheit ge
eignet sind, bestimmt und extrahiert werden und
der verbleibende Code zur Abarbeitung durch den ersten
Prozessor derart extrahiert wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß dem
für den Prozessor extrahierten Code derart Interface-Code
zugefügt wird, daß eine Kommunikation zwischen Prozessor
und rekonfigurierbarer Einheit entsprechend des Systems
möglich ist.
3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß dem für die rekonfigurierbare Einheit
extrahierten Code derart Interface-Code zugefügt wird, daß
eine Kommunikation zwischen Prozessor und rekonfigurierba
rer Einheit entsprechend des Systems möglich ist.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der zu extrahierende Code aufgrund von Analysen festge
stellt wird.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der zu extrahierende Code aufgrund von Hinweisen im Code
festgestellt wird.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der zu extrahierende Code aufgrund von Aufrufen von Unter
programmen festgestellt wird.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der Interface-Code eine Speicherkopplung (Shared-Memory)
vorsieht.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß
der Interface-Code eine Registerkopplung vorsieht.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
der Interface-Code eine Kopplung mittels eines Netzwerkes
vorsieht.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch
gekennzeichnet, daß der extrahierte Code analysiert wird
und gegebenenfalls die Extraktion mit neuen verbesserten
Parametern erneut gestartet wird.
11. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß dem
extrahierten Code Steuer-Code zur Verwaltung und/oder
Steuerung und/oder Kommunikation der Entwicklungssysteme
zugefügt wird.
12. Verfahren nach einem der vorhergehenden Ansprüche, worin
der erste Prozessor eine konventionelle Prozessorarchitek
tur aufweist, insbesondere ein Prozessor mit von -Neumann-
und/oder Harvardarchitektur, Kontroller, CISC-, RISC-,
VLIW-, DSP-Prozessor.
13. Verfahren insbesondere nach einem der vorhergehenden An
sprüche zur Übersetzung von Programmen auf ein System be
stehend aus einem Prozessor und einer rekonfigurierbaren
Einheit, dadurch gekennzeichnet, daß
die Codeteile, die für die rekonfigurierbare Einheit ge eignet sind, extrahiert werden,
der verbleibende Code derart extrahiert wird, daß er mit tels eines beliebigen gewöhnlichen unmodifizierten für den Prozessor geeigneten Compilers übersetzbar ist.
die Codeteile, die für die rekonfigurierbare Einheit ge eignet sind, extrahiert werden,
der verbleibende Code derart extrahiert wird, daß er mit tels eines beliebigen gewöhnlichen unmodifizierten für den Prozessor geeigneten Compilers übersetzbar ist.
14. Vorrichtung zur Datenverarbeitung mit wenigstens einem
herkömmlichen Prozessor und wenigstens einer rekonfigu
rierbaren Einheit, dadurch gekennzeichnet, daß sie ein
Mittel zum Informationsaustausch, insbesondere in Form von
Daten- und Statusinformation zwischen herkömmlichem Pro
zessor und rekonfigurierbarer Einheit aufweist, wobei das
Mittel so ausgebildet ist, daß eine Daten- und Statusinfor
mation zwischen denselben während der Abarbeitung eines
oder mehrerer Programme möglich ist und/oder ohne daß ins
besondere die Datenverarbeitung auf dem rekonfigurierbaren
Prozessor und/oder dem herkömmlichen Prozessor signifikant
unterbrochen werden muß.
Priority Applications (49)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2001/008534 WO2002008964A2 (de) | 2000-07-24 | 2001-07-24 | Integrierter schaltkreis |
EP01969493A EP1377919A2 (de) | 2000-07-24 | 2001-07-24 | Integrierter schaltkreis |
AU2001289737A AU2001289737A1 (en) | 2000-07-24 | 2001-07-24 | Integrated circuit |
US09/967,498 US20040015899A1 (en) | 2000-10-06 | 2001-09-28 | Method for processing data |
AU2002254921A AU2002254921A1 (en) | 2001-03-05 | 2002-03-05 | Methods and devices for treating and processing data |
AU2002257615A AU2002257615A1 (en) | 2001-03-05 | 2002-03-05 | Methods and devices for treating and/or processing data |
PCT/EP2002/002398 WO2002071248A2 (de) | 2001-03-05 | 2002-03-05 | Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung |
US10/469,909 US7444531B2 (en) | 2001-03-05 | 2002-03-05 | Methods and devices for treating and processing data |
PCT/EP2002/002403 WO2002071249A2 (de) | 2001-03-05 | 2002-03-05 | Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung |
EP02727358A EP1540507B1 (de) | 2001-03-05 | 2002-03-05 | Vorrichtung zur datenverarbeitung mit einem feld rekonfigurierbarer elemente |
EP02712937A EP1454258A2 (de) | 2001-03-05 | 2002-03-05 | Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung |
JP2002570052A JP4011488B2 (ja) | 2001-03-05 | 2002-03-05 | データ加工および/またはデータ処理方法および装置 |
US10/469,910 US20070299993A1 (en) | 2001-03-05 | 2002-03-05 | Method and Device for Treating and Processing Data |
US10/471,061 US7581076B2 (en) | 2001-03-05 | 2002-03-05 | Methods and devices for treating and/or processing data |
PCT/EP2002/002402 WO2002071196A2 (de) | 2001-03-05 | 2002-03-05 | Verfahren und vorrichtung zu datenbe- und/oder verarbeitung |
EP02724198.3A EP1386220B1 (de) | 2001-03-05 | 2002-03-05 | Verfahren und vorrichtung zu datenbe- und/oder verarbeitung |
JP2002570103A JP2004535613A (ja) | 2001-03-05 | 2002-03-05 | データ処理方法およびデータ処理装置 |
JP2002570104A JP2004536373A (ja) | 2001-03-05 | 2002-03-05 | データ処理方法およびデータ処理装置 |
AT10005502T ATE557344T1 (de) | 2001-06-20 | 2002-06-20 | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
AT02780770T ATE478381T1 (de) | 2001-06-20 | 2002-06-20 | Verfahren zur bearbeitung von daten |
DE50214592T DE50214592D1 (de) | 2001-06-20 | 2002-06-20 | Verfahren zur bearbeitung von daten |
EP10005502A EP2224330B1 (de) | 2001-06-20 | 2002-06-20 | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
EP02780770A EP1402382B1 (de) | 2001-06-20 | 2002-06-20 | Verfahren zur bearbeitung von daten |
DE10227650A DE10227650A1 (de) | 2001-06-20 | 2002-06-20 | Rekonfigurierbare Elemente |
AU2002347560A AU2002347560A1 (en) | 2001-06-20 | 2002-06-20 | Data processing method |
JP2003505782A JP2004533691A (ja) | 2001-06-20 | 2002-06-20 | データを処理するための方法 |
PCT/EP2002/006865 WO2002103532A2 (de) | 2001-06-20 | 2002-06-20 | Verfahren zur bearbeitung von daten |
US10/480,003 US7657877B2 (en) | 2001-06-20 | 2002-06-20 | Method for processing data |
JP2008249112A JP2009020909A (ja) | 2001-03-05 | 2008-09-26 | グラフのパーティショニング方法 |
JP2008249116A JP2009043276A (ja) | 2001-03-05 | 2008-09-26 | Fifo記憶方法 |
JP2008249099A JP2009032281A (ja) | 2001-03-05 | 2008-09-26 | データ伝送方法 |
JP2008249106A JP2009054170A (ja) | 2001-03-05 | 2008-09-26 | データ流の管理方法 |
JP2008249115A JP2009043275A (ja) | 2001-03-05 | 2008-09-26 | シーケンスの形成方法 |
US12/257,075 US8099618B2 (en) | 2001-03-05 | 2008-10-23 | Methods and devices for treating and processing data |
US12/389,116 US20090210653A1 (en) | 2001-03-05 | 2009-02-19 | Method and device for treating and processing data |
US12/496,012 US20090300262A1 (en) | 2001-03-05 | 2009-07-01 | Methods and devices for treating and/or processing data |
US12/570,984 US8312301B2 (en) | 2001-03-05 | 2009-09-30 | Methods and devices for treating and processing data |
US12/640,201 US20100095094A1 (en) | 2001-06-20 | 2009-12-17 | Method for processing data |
US12/944,068 US9037807B2 (en) | 2001-03-05 | 2010-11-11 | Processor arrangement on a chip including data processing, memory, and interface elements |
US13/043,102 US20110173389A1 (en) | 2001-03-05 | 2011-03-08 | Methods and devices for treating and/or processing data |
US13/653,639 US9075605B2 (en) | 2001-03-05 | 2012-10-17 | Methods and devices for treating and processing data |
US14/219,945 US9552047B2 (en) | 2001-03-05 | 2014-03-19 | Multiprocessor having runtime adjustable clock and clock dependent power supply |
US14/223,793 US10031733B2 (en) | 2001-06-20 | 2014-03-24 | Method for processing data |
US14/231,358 US9436631B2 (en) | 2001-03-05 | 2014-03-31 | Chip including memory element storing higher level memory data on a page by page basis |
US14/318,211 US9250908B2 (en) | 2001-03-05 | 2014-06-27 | Multi-processor bus and cache interconnection system |
US14/500,618 US9141390B2 (en) | 2001-03-05 | 2014-09-29 | Method of processing data with an array of data processors according to application ID |
US15/225,638 US10152320B2 (en) | 2001-03-05 | 2016-08-01 | Method of transferring data between external devices and an array processor |
US15/408,358 US10331194B2 (en) | 2001-03-05 | 2017-01-17 | Methods and devices for treating and processing data |
US16/190,931 US20190102173A1 (en) | 2001-03-05 | 2018-11-14 | Methods and systems for transferring data between a processing device and external devices |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EPPCT/EP00/10516 | 2000-10-09 | ||
EP01102674 | 2001-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10129237A1 true DE10129237A1 (de) | 2002-04-18 |
Family
ID=45727532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10129237A Withdrawn DE10129237A1 (de) | 2000-07-24 | 2002-06-20 | Verfahren zur Bearbeitung von Daten |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10129237A1 (de) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006082091A2 (en) | 2005-02-07 | 2006-08-10 | Pact Xpp Technologies Ag | Low latency massive parallel data processing device |
US7650448B2 (en) | 1996-12-20 | 2010-01-19 | Pact Xpp Technologies Ag | I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US7782087B2 (en) | 2002-09-06 | 2010-08-24 | Martin Vorbach | Reconfigurable sequencer structure |
US7822968B2 (en) | 1996-12-09 | 2010-10-26 | Martin Vorbach | Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs |
US7822881B2 (en) | 1996-12-27 | 2010-10-26 | Martin Vorbach | Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like) |
US7840842B2 (en) | 2001-09-03 | 2010-11-23 | Martin Vorbach | Method for debugging reconfigurable architectures |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US8099618B2 (en) | 2001-03-05 | 2012-01-17 | Martin Vorbach | Methods and devices for treating and processing data |
US8127061B2 (en) | 2002-02-18 | 2012-02-28 | Martin Vorbach | Bus systems and reconfiguration methods |
US8156284B2 (en) | 2002-08-07 | 2012-04-10 | Martin Vorbach | Data processing method and device |
US8209653B2 (en) | 2001-09-03 | 2012-06-26 | Martin Vorbach | Router |
US8230411B1 (en) | 1999-06-10 | 2012-07-24 | Martin Vorbach | Method for interleaving a program over a plurality of cells |
US8250503B2 (en) | 2006-01-18 | 2012-08-21 | Martin Vorbach | Hardware definition method including determining whether to implement a function as hardware or software |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
US8301872B2 (en) | 2000-06-13 | 2012-10-30 | Martin Vorbach | Pipeline configuration protocol and configuration unit communication |
USRE44365E1 (en) | 1997-02-08 | 2013-07-09 | Martin Vorbach | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US8812820B2 (en) | 2003-08-28 | 2014-08-19 | Pact Xpp Technologies Ag | Data processing device and method |
US8819505B2 (en) | 1997-12-22 | 2014-08-26 | Pact Xpp Technologies Ag | Data processor having disabled cores |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
-
2002
- 2002-06-20 DE DE10129237A patent/DE10129237A1/de not_active Withdrawn
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7822968B2 (en) | 1996-12-09 | 2010-10-26 | Martin Vorbach | Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs |
US8156312B2 (en) | 1996-12-09 | 2012-04-10 | Martin Vorbach | Processor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units |
US8195856B2 (en) | 1996-12-20 | 2012-06-05 | Martin Vorbach | I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures |
US7650448B2 (en) | 1996-12-20 | 2010-01-19 | Pact Xpp Technologies Ag | I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures |
US7899962B2 (en) | 1996-12-20 | 2011-03-01 | Martin Vorbach | I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures |
US7822881B2 (en) | 1996-12-27 | 2010-10-26 | Martin Vorbach | Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like) |
USRE44365E1 (en) | 1997-02-08 | 2013-07-09 | Martin Vorbach | Method of self-synchronization of configurable elements of a programmable module |
USRE44383E1 (en) | 1997-02-08 | 2013-07-16 | Martin Vorbach | Method of self-synchronization of configurable elements of a programmable module |
USRE45109E1 (en) | 1997-02-08 | 2014-09-02 | Pact Xpp Technologies Ag | Method of self-synchronization of configurable elements of a programmable module |
USRE45223E1 (en) | 1997-02-08 | 2014-10-28 | Pact Xpp Technologies Ag | Method of self-synchronization of configurable elements of a programmable module |
US8819505B2 (en) | 1997-12-22 | 2014-08-26 | Pact Xpp Technologies Ag | Data processor having disabled cores |
US8468329B2 (en) | 1999-02-25 | 2013-06-18 | Martin Vorbach | Pipeline configuration protocol and configuration unit communication |
US8312200B2 (en) | 1999-06-10 | 2012-11-13 | Martin Vorbach | Processor chip including a plurality of cache elements connected to a plurality of processor cores |
US8230411B1 (en) | 1999-06-10 | 2012-07-24 | Martin Vorbach | Method for interleaving a program over a plurality of cells |
US8726250B2 (en) | 1999-06-10 | 2014-05-13 | Pact Xpp Technologies Ag | Configurable logic integrated circuit having a multidimensional structure of configurable elements |
US8301872B2 (en) | 2000-06-13 | 2012-10-30 | Martin Vorbach | Pipeline configuration protocol and configuration unit communication |
US9047440B2 (en) | 2000-10-06 | 2015-06-02 | Pact Xpp Technologies Ag | Logical cell array and bus system |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US8471593B2 (en) | 2000-10-06 | 2013-06-25 | Martin Vorbach | Logic cell array and bus system |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US8145881B2 (en) | 2001-03-05 | 2012-03-27 | Martin Vorbach | Data processing device and method |
US8099618B2 (en) | 2001-03-05 | 2012-01-17 | Martin Vorbach | Methods and devices for treating and processing data |
US9075605B2 (en) | 2001-03-05 | 2015-07-07 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US8312301B2 (en) | 2001-03-05 | 2012-11-13 | Martin Vorbach | Methods and devices for treating and processing data |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
US8869121B2 (en) | 2001-08-16 | 2014-10-21 | Pact Xpp Technologies Ag | Method for the translation of programs for reconfigurable architectures |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US8407525B2 (en) | 2001-09-03 | 2013-03-26 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US8429385B2 (en) | 2001-09-03 | 2013-04-23 | Martin Vorbach | Device including a field having function cells and information providing cells controlled by the function cells |
US7840842B2 (en) | 2001-09-03 | 2010-11-23 | Martin Vorbach | Method for debugging reconfigurable architectures |
US8209653B2 (en) | 2001-09-03 | 2012-06-26 | Martin Vorbach | Router |
US8069373B2 (en) | 2001-09-03 | 2011-11-29 | Martin Vorbach | Method for debugging reconfigurable architectures |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
US8127061B2 (en) | 2002-02-18 | 2012-02-28 | Martin Vorbach | Bus systems and reconfiguration methods |
US8156284B2 (en) | 2002-08-07 | 2012-04-10 | Martin Vorbach | Data processing method and device |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US8281265B2 (en) | 2002-08-07 | 2012-10-02 | Martin Vorbach | Method and device for processing data |
US8803552B2 (en) | 2002-09-06 | 2014-08-12 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US8310274B2 (en) | 2002-09-06 | 2012-11-13 | Martin Vorbach | Reconfigurable sequencer structure |
US7928763B2 (en) | 2002-09-06 | 2011-04-19 | Martin Vorbach | Multi-core processing system |
US7782087B2 (en) | 2002-09-06 | 2010-08-24 | Martin Vorbach | Reconfigurable sequencer structure |
US8812820B2 (en) | 2003-08-28 | 2014-08-19 | Pact Xpp Technologies Ag | Data processing device and method |
WO2006082091A2 (en) | 2005-02-07 | 2006-08-10 | Pact Xpp Technologies Ag | Low latency massive parallel data processing device |
US8250503B2 (en) | 2006-01-18 | 2012-08-21 | Martin Vorbach | Hardware definition method including determining whether to implement a function as hardware or software |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10129237A1 (de) | Verfahren zur Bearbeitung von Daten | |
EP1402382B1 (de) | Verfahren zur bearbeitung von daten | |
DE69525706T2 (de) | Vorrichtung und Verfahren zum Generieren des Zielsprachcodes durch Verwendung eines objektorientierten Codegenerators | |
DE69622305T2 (de) | Verfahren und Gerät für einen optimierenden Kompiler | |
DE68923888T3 (de) | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode. | |
DE69604347T2 (de) | Bestimmung der dynamischen Eigenschaften von Programmen | |
DE2521289C2 (de) | Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor | |
DE69021659T2 (de) | Verfahren und Vorrichtung zur reihenweisen Parallelprogrammfehlersuche. | |
DE3610433C2 (de) | Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter | |
DE19815865B4 (de) | Kompiliersystem und Verfahren zum rekonfigurierbaren Rechnen | |
DE60010420T2 (de) | Automatisches Regressionstesten von Arbeitsplatz-Software | |
DE19926538A1 (de) | Hardware und Betriebsverfahren | |
EP2214104A1 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
EP3568757B1 (de) | Verfahren zur erzeugung von quellcode | |
EP2799983B1 (de) | Flexible Aufteilung der I/O Kanäle einer Hardware Komponente | |
DE10039538A1 (de) | Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms | |
EP0825540A1 (de) | Prozessor mit Pipelining-Aufbau | |
DE19947892C2 (de) | Verfahren zur Umsetzung von Schnittstellendefinitionen und Zwischenformattabelle dafür | |
EP0657044B1 (de) | Verfahren zum betrieb eines rechnersystems mit mindestens einem mikroprozessor und mindestens einem coprozessor | |
DE102020124080A1 (de) | Verfahren zur inkrementellen Codegenerierung | |
EP2363809B1 (de) | Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren | |
EP1046991B1 (de) | Verfahren zum Testen der Unabhängigkeit und Verträglichkeit eines Software-Moduls | |
DE10393511T5 (de) | Programmentwicklungsunterstützungsvorrichtung, Programmausführungsvorrichtung, Kompilierverfahren und Diagnoseverfahren | |
EP1010070A1 (de) | Verfahren zum umsetzen eines objektcodes in einen programmcode | |
DE69322800T2 (de) | Verfahren zur Leistungsverbesserung in einem automatischen Testsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8143 | Withdrawn due to claiming internal priority |