-
Die
Erfindung betrifft ein Verfahren zur Steuerung eines Programmablaufs
in einem Prozessor, wobei der Prozessor durch ein Programm derart
gesteuert wird, dass mittels einer Programmsteuereinheit (PCU) eine
Programmstartadresse in einem Programmspeicher aufgerufen und die
der Programmstartadresse in Programmspeicher folgenden Befehle in
dem Prozessor ausgeführt
werden.
-
Die
Erfindung betrifft auch eine Anordnung zur Steuerung eines Programmablaufs
in einem Prozessor, bestehend aus mehreren Streifen, wobei ein Streifen
mindestens eine Verarbeitungseinheit mit Eingabe- und Ausgaberegistern
enthält,
wobei die Streifen über
ein Datenbussystem mit einem dem jeweiligen Streifen zugeordneten
Speicherabschnitt eines Datenspeichers und über einen Befehlsbus mit einer
Programmablaufsteuerung verbunden sind.
-
Prozessoren
zur Ausführung
von Signalverarbeitungsalgorithmen haben heutzutage einen Programmspeicher
und mehrere Datenspeicher (TigerShark Analog Devices, Texas Instruments
DSP). Der Kern der Prozessoren besitzt eine Programmsteuerungseinheit,
die aus dem Programmspeicher kontinuierlich neue Instruktionen lädt. Die
Instruktionen steuern dann die Datenpfade innerhalb des Prozessorkerns.
-
Um
ein System, welches auf einem solchen Prozessor implementiert wurde,
zu synchronisieren, werden Timer eingesetzt die in regelmaessigen
Abstand einen Interrupt auslösen.
Dieser Interrupt führt dazu,
dass eine bestimmte Funktion des implementierten Programms aufgerufen
wird. Diese als Interruptroutine bezeichnete Funktion kann dann
bestimmte Flags innerhalb des Speichers setzen bzw. überprüfen. Das
Hauptprogramm ist ebenfalls in der Lage, diese Flags zu überprüfen und
das Programm in einem Wartezustand zu belassen oder nicht.
-
Bei
einem System, welches aus mehreren Prozessoren zusammengesetzt wurde
(zum Beispiel der Sandblaster Sandbridge) müssen mehrere Prozessoren, bzw.
deren Programme untereinander synchronisiert werden. Die Synchronisationsmechanismen
basieren meistens darauf, dass ein gemeinsamer Speicher von mehreren
Prozessen geschrieben und gelesen wird. Die Speicherstellen werden
als Semaphores bezeichnet. Damit alle Datenabhängigkeiten eingehalten werden,
werden die Prozesse über die
Semaphores synchronisiert.
-
Ein
weiteres Bespiel ist die Nutzung eines gemeinsamen Speichermediums
durch mehrere aktive Einheiten (Prozessoren etc.). Dabei kommt es
oft dazu, dass die Einheiten gleichzeitig versuchen den gemeinsamen
Speicher zu lesen oder zuschreiben. Bussysteme, wie z.B: der AMBA
Bus von ARM setzen so genannte „Arbiter" ein, die nach einem Prioritätsprinzip
oder Round-Robin Mechanismus den verschiedenen Einheiten den Zugriff
auf die Ressource gewähren.
-
Die
Entwicklung von harten Echtzeitsystemen für die Signalverarbeitung setzt
eine deterministische Ausführungszeit
der verschiedenen implementierten Aufgaben voraus. Eine Worst-Case
Analyse kann daher Aufschluss über
maximale Ausführungszeiten
der einzelnen Prozesse geben. Auch die benötigte Speichermenge einzelner
Prozesse kann im Voraus bestimmt werden. Unter anderem haben alle diese
beschriebenen Methoden zum Aufbau von Multiprozessorsystemen die
nachfolgend beschriebenen Nachteile.
-
Das
kontinuierliche Überprüfen einer
benötigten
Speicherstelle führt
zu unnötigen
Datentransfers, was dazu führt,
dass die Bandbreite des Kommunikationsnetzwerkes steigt, was zur
Erhöhung
der Chipfläche
und des Energieverbrauchs führt.
-
Ein
Arbiter im Kommunikationsnetzwerk führt durch die generell schwer
vorhersagbare Speicherzugriffsdauer zu einer möglichen Verletzung der Echtzeitanforderungen.
Die notwendige Auslegung mit einem hohen Sicherheitsfaktor führt auch
zur Erhöhung
der Chipfläche
und des Energieverbrauchs.
-
Der
generell neue Ansatz zur Lösung
dieses Problems ist eine feste vorher bestimmte und optimierte Zeiteinteilung
der Programm- bzw. der Funktionsaufrufe auf dem Prozessor sowie
eine bestimmte und optimierte Zeiteinteilung der Datentransfers. Dies
wird nicht durch den beschriebenen Timer-Interrupt durchgeführt, was
zwar für
einen einzelnen Prozessor eine gute und billige Möglichkeit
zur zeitlichen Synchronisation darstellt, aber durch die Einschränkung auf
einen einzelnen Prozessorkern nicht für Multiprozessorsysteme generell
geeignet ist, sondern durch eine Erweiterung der bestehenden Architektur.
-
In 1 ist
das gängige
Verfahren dargstellt bei dem immer wieder der CPU die Fertigstellung
eines Datentransfers signalisiert wird. Dabei kommt es zu sehr vielen
Interaktionen mit der CPU.
-
Bei
dem neuen Verfahren, welches in der 2 dargestellt
ist, wird die komplette oder ein Teil der zeitlichen Abfolge der
Aufgaben jeder einzelnen Resource (im Beispiel DSP und DMA) vorher
bestimmt. Diese zeitliche Abfolge wird in einer einzigen Interaktion
in den Speicher der Batch Control Unit (BCU) geschrieben. Die BCU übernimmt
dann die Ablaufkoordination der Aufgaben auf dem DMA Controller
bzw. der Signalverarbeitungseinheit.
-
In
der 3 ist eine Ausführungsform der erfindungsgemäßen Anordnung
dargestellt.
-
Eine
Einheit (3/BCU) die über
die Verbindung (5) mit einer Steuerungseinheit (6)
eines Rechenwerkes oder Datentransferau tomaten (2 CPU/DMA)
verbunden ist und einen lokalen Zeitgeber (4) besitzt. Der
Wert des Zeitgebers (4) wird mit einem Teilsegments des
Datenausgangs des Speichers (1) verglichen. Wenn beide
Werte übereinstimmen
wird eine Aufgabe über
die Datenleitung (5) an das Steuerwerk (6) gesendet.
-
In
den folgenden Ausführungsbeispielen wird
diese Anordnung genutzt.
-
Das
in 4 dargestellte System hat zwei Erweiterungen zum
Stand der Technik. Die erste Erweiterung ist die BCU (Batch Control
Unit) (DSP). Die BCU(DSP) ist direkt verbunden mit der Programmsteuerungseinheit
(PCU) des DSPs. Ähnlich
wie die PCU Instruktionen aus dem Instruktionsspeicher (IMEM) aufruft,
ruft die BCU so genannte Batchprozesse aus dem Batch Speicher (BMEM)
ab. Ein Batchprozess setzt den Programm Counter des DSPs auf eine
bestimmte Position und startet dann den Prozessor. Ein Counter,
welcher durch das CRST Signal zurückgesetzt werden kann, schafft eine
vordefinierte Zeitbasis für
alle BCUs. Der Start der Programme erfolgt daher erst dann, wenn
die Startzeit des Batch-Prozesseintrags im BMEM mit der Systemzeit übereinstimmt.
-
Die
zweite Erweiterung besteht aus einer weiteren mit dem DMA-Controller verbundenen
zweiten BCU (BCU (DMA)), welche ebenfalls mit einem weiterem Batch
Speicher (BMEM) verbunden ist. Auf der Grundlage vorhersagbarer
Ausführungszeiten
für die
Tasks in den anwendungsspezifischen Prozessoren kann der herkömmliche
automatische Cachemechanismus durch DMA-Controller ersetzt werden,
die ein zeitlich exakt abgestimmtes Prefetching des benötigten Speicherplatzes
ermöglichen.
Insbesondere kann der erforderliche Speicherplatz im Verlauf der Ausführung ermittelt
und in einem Batch-Prozess an den DMA-Controller gesandt werden,
und zwar unter der Annahme, dass die Speicherplatzgröße gleich bleibt.
Dieses Feature ist beispielsweise für eine effiziente Ausführung von
Wörterbuch-basierten
Kompressionsalgorithmen erforderlich.
-
Da
die DSPs innerhalb der MPUs die Parallelität von Befehls- und Datenebenen
durch den Einsatz von SIMD (Single Instruction Multiple Data) und VLIW
(Very Long Instruction Word)-Techniken umsetzen, ist der Datenabgleich
von großer
Bedeutung. Neben den Standard-Interleavetechniken, die von lokalen
Verbindungsnetzen ausgeführt
werden, erfolgt dieser Abgleich ebenfalls durch die DMA-Controller. Da
diese Daten permanent zwischen dem externen dynamischen Speicher
und den internen temporären Speichern
transferiert werden, können
unterschiedliche Interleaving- und Übertragungstechniken mit geringen
Kosten umgesetzt werden, indem sie sequenziell erfolgen. Für einen
32bit DMA-Controller haben integrierte Interleaving-Techniken eine
Bereichserweiterung von 10 % (etwa 400 Gates) zur Folge, ohne Erhöhung der
Transferzeiten. Für
die meisten gängigen
Techniken ist eine einfache Verweistabelle für die Adressumwandlung ausreichend.
Die in SAMIRA DSP integrierte Verbindungseinheit nutzt etwa 12,000
Gates (Äquivalent
zu NAND-Gate, der Bereich ist auf den Bereich eines einzelnen NAND-Gates
standardisiert).
-
Somit
können
durch die erfindungsgemäße BCU,
welche von dem jeweils zugehörigen
Batch Speicher (BMEM) gespeist wird, zum einen verschiedene Tasks
im DSP oder zum anderen Datentransfers durch den Versand von Befehlen
an den DMA-Controller gestartet werden.
-
Ein
Bespiel für
eine BCU für
einen digitalen Signalprozessor ist in 5 dargestellt.
CRST ist mit dem Counter Register verbunden, um ein zeitgleiches
Rücksetzen
aller BCU Counter Register zu ermöglichen. Der Inkrementor (INC)
erhöht
in jedem Takt den Wert im Counter Register. Die COMP Einheit vergleicht
dann den Zeitwert des Counter Registers mit den Zeiteinträgen oder
Zeitstempeln im BCU-Speicher. Bei einer Übereinstimmung des Zeitwerts
im Counter Registers mit einem Zeiteintrag im BCU-Speicher wird
ein zu diesem Zeiteintrag gespeicherter Batchprozesse gestartet;
das heißt,
der Programm Counter des DSPs wird auf die zum Zeiteintrag abgespeicherte
Adresse gesetzt und der Programmablauf an dieser Adresse fortgesetzt.
Neben der zu einem Zeiteintrag gespeicherten Programmablaufadresse
können
noch Parameter abgespeichert werden, welche sodann in dem entsprechenden
Batchprozess genutzt werden.
-
In
der in der 5 dargestellten im Batch Speicher
(BMEM) gespeicherten Tabelle ist in der ersten Spalte die Startadresse
des Batchprozesses abgespeichert, welcher selbst im zum DSP zugehörigen Instruktionsspeicher
(IMEM) gespeichert ist.
-
In
der zweiten Spalte können
im Batchprozess nutzbare Parameter abgespeichert werden.
-
Die
dritte Spalte enthält
den Zeiteintrag, welcher den Startzeitpunkt des jeweiligen Batchprozesses
darstellt.
-
Falls
ein bestimmtes Signal vom Prozessor, welches die erfolgreiche Ausführung des
Algorithmus signalisiert, nicht gesetzt wurde, wird ein Fehlerinterrupt
(ERR) ausgelöst
und an den zentralen Controlprozessor geschickt. Eine weitere Interruptleitung (INT)
signalisiert dem zentralen Controlprozessor einen leeren Batch Speicher
(BMEM).
-
Eine
weitere mögliche
Ausführung
ist eine Batch Control Unit für
einen DMA (Direct Memory Access) Controller, dargestellt in 6.
Hier werden anstatt eines neuen Program-Counters die Start und Zieladressen
für einen
Speichertransfer definiert. Der Vorteil dieses vorherdefinierten
Speichertransfers ist ein vorhersagbarer Datentransfer und somit
der mögliche
Verzicht auf einen Arbiter im Kommunikationsnetzwerks.
-
In
der 6 ist die im BCU Speicher (BMEM) gespeicherte
Tabelle dargestellt. Bei einer Übereinstimmung
des Zeitwerts im Counter Registers mit einem Zeiteintrag in der
ganz rechten Spalte der Batch Speicher (BMEM) gespeicherten Tabelle, werden
von der BCU die erforderlichen Informationen zum Kopieren der Daten
aus einem zweidimensionalen Speicher an den DMA Controller ausgegeben.
-
Dabei
ist beispielsweise in den X- und Y-Daten (Spalte 1 und 2) ein Pointer
für eine
Bildposition gespeichert. Weitere Elemente des Befehls (Spalte 3 und
4) übermitteln
die Feldgröße in X- und/oder Y-Richtung.
Ein Feld für
die Bildbreite wird übermittelt,
um die absolute, eindimensionale Adresse aus einer zweidimensionalen
Darstellung zu berechnen. In einer weiteren Spal te (Spalte 5) ist
ein Kennzeichen für
die Richtung des Speichertransfers gespeichert, welches festlegt,
ob der Transfer vom oder in den lokalen Speicher erfolgen soll.
-
Die
Zusammenfassung verschiedener Aufgaben in Batchprozesse verringert
außerdem
die Anzahl der Interrupts, die an einen zentralen Kontrollprozessor
gesendet werden. Dadurch wird die CPU-Last verringert.
-
- 1
- Speicher
- 2
- Rechenwerk
oder Datentransferautomat
- 3
- BCU
(Batch Control Unit)
- 4
- lokaler
Zeitgeber
- 5
- Steuerleitungen
- 6
- Steuereinheit