DE19827914C1 - Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen - Google Patents
Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler BefehlenInfo
- Publication number
- DE19827914C1 DE19827914C1 DE19827914A DE19827914A DE19827914C1 DE 19827914 C1 DE19827914 C1 DE 19827914C1 DE 19827914 A DE19827914 A DE 19827914A DE 19827914 A DE19827914 A DE 19827914A DE 19827914 C1 DE19827914 C1 DE 19827914C1
- Authority
- DE
- Germany
- Prior art keywords
- task
- tasks
- data
- exu
- assigned
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Abstract
Die Erfindung bezieht sich auf einen ASIC zur Verarbeitung definierter Sequenzen von Assembler-Befehlen (TASKs). Zur Verbesserung des Datendurchsatzes bei Anwendungen mit hohen Speicherzugriffsraten, enthält der ASIC einen hardwareimplementierten TASK-Scheduler, der die Bearbeitung verschiedener TASKs auf einer ASIC internen Verarbeitungseinrichtung (EXU) in geeigneter Weise zeitlich koordiniert. Der hardwareimplementierte TASK-Scheduler bietet gegenüber herkömmlichen Softwaresteuerungen für Multitaskingsysteme unter anderem die Vorteile, daß das Betriebssystem entlastet und eine aufwendige Speicherarchitektur entbehrlich wird.
Description
Die Erfindung bezieht sich auf einen anwendungsspezifischen
integrierten Schaltkreis (ASIC) mit einem RISC-Prozessor zur Bearbeitung definierter
Sequenzen von Assembler Befehlen (TASKs) gemäß dem Oberbe
griff des Patentanspruchs 1.
Die Performance eines Prozessors ist stark von den Speicher
zugriffszeiten abhängig, die erforderlich sind, um Pro
grammcode oder Operanden in den Prozessor zu laden. Durch
langsame Zugriffszeiten entstehen insbesondere in der EXU ei
nes schnellgetakten RISC-Prozessors lange Totzeiten, die
zwangsläufig zu einer Verschlechterung des Datendurchsatzes
führen.
In der Vergangenheit wurden verschiedene Ansätze vorgeschla
gen, um den Datendurchsatz eines Prozessors zu verbessern.
Ein Ansatz besteht in der Implementierung aufwendiger Cache-
Speichersysteme. Diese Cachesysteme sind allerdings für An
wendungen, bei denen die Daten nur ein einziges mal verwendet
werden, sehr ineffektiv, weil dann eine hohe Cache-Miss-Rate
entsteht.
Ein weiterer Ansatz zur Erhöhung des Datendurchsatzes bei
I/O-Prozessoren besteht darin, bei längeren Wartezeiten wäh
rend der Ausführung eines TASKs durch die EXU, einen soft
ware gesteuerten TASK-Wechsel durchzuführen. Dieser TASK-
Wechsel wird folglich durch das Betriebssystem gesteuert. Er
erfordert jedoch regelmäßig viele zusätzliche Speicheropera
tionen für das Sichern und Wiederherstellen des alten und
neuen TASK-Zustandes, so daß sich ein derartiger Software-
TASK-Wechsel nur bei sehr langen Wartezeiten, wie sie z. B.
beim Zugriff auf externe Festplatten entstehen, lohnt.
Die US 4833640 offenbart ein Datenverarbeitungssystem, wel
ches eine Vielzahl von Registerbänken in einem RAM aufweist.
Der Zugriff auf die in diese Registerbänke und die in den Re
gisterbänken enthaltenen Register erfolgt nach Maßgabe von
entsprechenden Prozessorbefehlen. Der Befehl CBNR veranlaßt
einen Wechsel des Zugriffs von einer Registerbank auf eine
andere Registerbank bzw. einen Datentransfer von einem Regi
ster in der einen Registerbank in ein Register in der anderen
Registerdatenbank. Die Registerzugriffe erfolgen unter der
Steuerung eines Speicherzugriffssteuerschaltkreises und einer
Vielzahl von Steuerregistern.
Die DE 43 01 117 A1 offenbart ein multitaskingfähiges Rechen
gerät und ein Verfahren zu seinem Betreiben. Das Rechengerät
weist einen Prozessor mit mindestens einem Registersatz für
jeden ausführenden Task auf. Das Rechengerät weist darüber
hinaus einen Taskzuweiser auf, welcher dem Prozessor diejeni
ge Task als nächste auszuführende Task zuteilt, welche die
höchste Dringlichkeitsstufe aufweist.
Aus der DE 195 30 483 A1 ist eine Einrichtung und ein Verfah
ren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks be
kannt. Die Abarbeitung der Tasks erfolgt durch einen Prozes
sor, wobei jeder Task nach einer dynamisch zugeordneten Prio
rität abgearbeitet wird.
Es ist die Aufgabe der Erfindung, einen anwendungsspezifi
schen integrierten Schaltkreis (ASIC) mit einem RISC-
Prozessor mit einer verbesserten Auslastung seiner internen
EXU bereitzustellen.
Diese Aufgabe wird durch den im Patentanspruch 1 beanspruch
ten Gegenstand gelöst.
Gemäß der Erfindung weist der RISC-Prozessor neben einem Pro
gramm- und Datenspeicher auch eine EXU zum Ausführen von
TASKs auf, wobei während der Ausführung einer TASK auf eine
andere TASK umgeschaltet werden kann, wenn zuvor die Ausfüh
rung des einen TASK unterbrochen wurde. Dabei wird der TASK-
Umschaltvorgang durch einen hardwareimplementierten TASK-
Scheduler gesteuert.
Die hardwaregesteuerte TASK-Umschaltung bietet den Vorteil,
daß das Betriebssystem von der Aufgabe der TASK-Verwaltung
entbunden ist, so daß es in verstärktem Maße andere Aufgaben
erfüllen oder stark vereinfacht werden kann. Mit der Imple
mentierung des TASK-Schedulers steht nun die gesamte Prozes
sorleistung der EXU ausschließlich zur Abwicklung von Anwen
derfirmware zur Verfügung.
Der TASK-Scheduler ermöglicht zudem einen sehr schnellen
TASK-Wechsel, d. h. innerhalb weniger Taktzyklen, wodurch die
Totzeiten der EXU minimiert und ihre Auslastung bzw. ihr Da
tendurchsatz maximiert wird.
Gemäß der vorteilhaften Ausgestaltung des TASK-Schedulers
weist dieser für jeden TASK einen eigenen TASK-Controller
auf, der Veränderungen des aktuellen Zustandes (RUN, WAIT,
READY oder HALT) des ihm zugeordneten TASK erkennt und steu
ert und eine entsprechende Veränderungsinformation erzeugt,
die dem TASK-Scheduler zur Verfügung gestellt wird. Auf Basis
diser Veränderungsinformation steuert der TASK-Scheduler den
Umschaltvorgang.
Es ist weiterhin von Vorteil, in dem Schaltkreis eine I/O-
Schnittstelle zwischen einem externen Datenspeicher und einem
internen Datenbus vorzusehen, die für jeden TASK einen indi
viduellen Datenkanal besitzt. Durch Überwachen des Daten
transfers auf jedem einzelnen Datenkanal durch den individu
ell zugeordneten TASK-Controller kann eine Veränderung des
Zustandes der jeweiligen TASK erkannt werden.
Als vorteilhaft sei außerdem erwähnt, daß die I/O-
Schnittstelle (400) für den Datentransfer zwischen ihr und
dem externen Datenspeicher (500) nur einen gemeinsamen Daten
kanal für alle TASKs aufweist. Durch die Verwendung eines ge
meinsamen Datenkanals für alle TASKs werden zwei Interfaces
bzw. Datenkanäle eingespart.
Gemäß einer vorteilhaften Weiterbildung weist der Schaltkreis
Registerbänke auf, die den TASKs individuell zugeordnet und
jeweils an den internen Datenbus angeschlossen sind. Sie die
nen zum Speichern von spezifischen Daten über den Zustand ei
nes jeweiligen TASK zum Zeitpunkt seiner Unterbrechung oder
von Daten, die von einem TASK vor seiner Unterbrechung bear
beitet wurden. Durch die Verwendung der Registerbänke ent
fällt die bei herkömmlichen Multitasking-Steuersystemen er
forderliche komplexe Speicherarchitektur.
Gemäß einer besonders einfachen Ausgestaltung ist in dem
Schaltkreis wenigstens ein FIFO-Speicher vorgesehen, der als
unidirektionale Schnittstelle zwischen externen Komponenten
und dem internen Datenbus angeordnet ist und durch einen ihm
zugeordneten TASK-Controller ohne das Erfordernis einer auf
wendigen Adressierung gesteuert wird.
Es folgt eine detaillierte Beschreibung eines bevorzugten
Ausführungsbeispiels der Erfindung unter Bezugnahme auf die
beigefügten Zeichnungen. Dabei zeigt:
Fig. 1 die Hardwarestruktur eines erfindungsgemäßen Schalt
kreises; und
Fig. 2 ein Ablaufdiagramm für eine TASK-Umschaltung durch ei
nen TASK-Scheduler.
Bevor nachfolgend der Schaltkreis gemäß Fig. 1 und das hard
waregesteuerte Umschalten einzelner TASKs gemäß Fig. 2 näher
erläutert werden, erfolgen zunächst einige erläuternde Vorbe
merkungen zum TASK-Begriff.
Wie bereits erwähnt, ist ein TASK ein Softwaremodul bestehend
aus einer definierten Sequenz von Assembler Befehlen des ver
wendeten Prozessors. TASKs werden üblicherweise vom Program
mentwickler als Module eines zu erstellenden Programmcodes
definiert. Bei vielen Anwendungsfällen ist eine Unterschei
dung von drei TASKs ausreichend; genauer gesagt, werden ein
Receive-TASK, ein Transmit-TASK und ein Supervisor-TASK un
terschieden. Der Supervisor-TASK als Bestandteil des Pro
grammcodes dient nur für die Initialisierung, zur Durchfüh
rung von Debug-Operationen sowie zur Fehlerbehandlung. Eine
Beschreibung des Receive- und Transmit-TASK erfolgt weiter
unten im Rahmen der Funktionsbeschreibung des Schaltkreises
gemäß Fig. 1.
Die verschiedenen TASKs arbeiten i. d. R. unabhängig von einan
der, wenngleich gewisse Wechselwirkungen untereinander, wie
gegenseitige Aufrufe oder eine Kommunikation über gemeinsame
Speicherbereiche grundsätzlich möglich sind. Allerdings exi
stiert eine TASK-Hierarchie, wobei der Supervisor-TASK die
höchste Priorität besitzt. Aufgrund seiner höchsten Priorität
kann der Supervisor-TASK die Receive- und Transmit-TASKs mit
niederer Priorität jederzeit aufgrund eines Ereignisses un
terbrechen.
Die Receive- und Transmit-TASKs können jeweils vier unter
schiedliche Zustände einnehmen; diese sind:
der HALT-Zustand, bei dem der TASK inaktiv ist und von dem TASK-Scheduler 300 nicht beachtet wird,
der RUN-Zustand, bei dem der TASK aktiv ist und von der EXU 100 bearbeitet wird,
der WAIT-Zustand, bei dem der TASK zwar aktiv, aber blockiert ist, und
der READY-Zustand, bei dem der TASK ebenfalls aktiv ist, aber auf eine Zuteilung an die EXU wartet.
der HALT-Zustand, bei dem der TASK inaktiv ist und von dem TASK-Scheduler 300 nicht beachtet wird,
der RUN-Zustand, bei dem der TASK aktiv ist und von der EXU 100 bearbeitet wird,
der WAIT-Zustand, bei dem der TASK zwar aktiv, aber blockiert ist, und
der READY-Zustand, bei dem der TASK ebenfalls aktiv ist, aber auf eine Zuteilung an die EXU wartet.
Der Supervisor-Mode kann ebenfalls die Zustände HALT, RUN und
READY annehmen, nicht jedoch den WAIT-Zustand.
Der in Fig. 1 dargestellte Schaltkreis weist eine EXU 100
auf, die mit einem Programm- und Datenspeicher 200, in dem
definierte Sequenzen von Assembler Befehlen (TASKs) abgespei
chert sind, verbunden ist. Über einen internen Datenbus 700
ist die EXU 100 mit einer I/O-Schnittstelle 400 verbunden,
über die sie mit einem externen Datenspeicher 500 Daten aus
tauschen kann. Die I/O-Schnittstelle 400 besitzt für den Da
tentransfer zwischen ihr und dem Datenbus 700 für jeden TASK,
beispielsweise für einen TASK 0 (Supervisor-TASK), einen TASK
1 (Receive-TASK) und einen TASK 2 (Transmit-TASK) einen indi
viduellen Datenkanal DK 410, 420, 430, der jeweils mit dem
Datenbus 700 verbunden ist. Die individuellen Datenkanäle 410
bis 430 sind jeweils über individuelle Steuerleitungen mit
den ihnen jeweils zugeordneten TASK-Controllern 310 bis 330
verbunden. Für den Datentransfer zwischen ihr und dem exter
nen Datenspeicher 500 weist die I/O-Schnittstelle lediglich
einen gemeinsamen Datenkanal für alle TASKs auf. Dabei er
folgt der Übergang von drei auf einen Datenkanal innerhalb
der I/O-Schnittstelle 400 durch Verwendung eines Multiple
xers.
Die TASK-Controller sind Komponenten eines TASK-Schedulers
300, welcher der EXU 100 jeweils einen TASK zur Bearbeitung
zuweist.
Schließlich weist der Schaltkreis gemäß Fig. 1 für jeden TASK
eine eigene Registerbank 610, 620 bis 630 auf, die ebenso wie
zwei FIFO-Speicher 820 (Receive-FIFO) und 830 (Transmit-FIFO)
an den Datenbus 700 angeschlossen sind. Während die Register
bänke einen bidirektionalen Datenaustausch zulassen, gestat
tet jeder der FIFO-Speicher 820 und 830 lediglich einen uni
direktionalen Datenaustausch mit dem internen Datenbus 700.
Der TASK-Scheduler 300 gibt über eine Select-Leitung jeweils
diejenige Registerbank frei, die dem aktuell von der EXU 100
bearbeiteten TASK zugeordnet ist.
Es folgt nun eine Funktionsbeschreibung des Schaltkreises ge
mäß Fig. 1. Diese erfolgt am Beispiel der Abwicklung eines
Receive- und eines Transmit-TASKs.
Der Receive-TASK wird hardwaregetriggert auf der EXU gestar
tet, wenn sein zugehöriger TASK-Controller 320 bei dem Recei
ve-FIFO 820 den Eingang von Daten von externen Komponenten
registriert. Die Ausführung des Receive-TASKs durch die EXU
100 bewirkt, daß die empfangenen Daten zunächst in die Recei
ve-TASK-spezifische Registerbank 620 geladen werden, um dort
modifiziert zu werden. Anschließend werden die modifizierten
Daten über den Datenbus 700 und den Receive-TASK-spezifischen
Datenkanal 420 der I/O-Schnittstelle 400 in den externen Da
tenspeicher 500 geschrieben.
Während der Receive-TASK auf der EXU 100 ausgeführt wird, be
findet er sich im RUN-Zustand. Sollte jedoch im Rahmen der
Ausführung des Receive-TASK festgestellt werden, daß keine
Daten mehr im Receive-FIFO 820 vorhanden sind, so geht der
Receive-TASK von selbst vom RUN-Zustand in den HALT-Zustand
über.
Ganz ähnlich, allerdings mit entgegengesetzter Datentransfer
richtung wie der Receive-TASK, arbeitet der Transmit-TASK. Er
wird periodisch auf der EXU 100 gestartet, um Daten aus dem
externen Datenspeicher 500 über seinen eigenen Transmit-
Datenkanal 430 der I/O-Schnittstelle 400 und den Datenbus 700
in seine Registerbank 630 zu transferieren. Dort werden die
Daten verarbeitet, um anschließend wiederum über den Datenbus
in das Transmit-FIFO 830 geschrieben zu werden. Dort werden
sie solange zwischengespeichert, bis sie an eine externe Kom
ponente ausgegeben werden können. Während seiner Ausführung
auf der EXU 100 befindet sich der Transmit-TASK im RUN-
Zustand. Sollte während der Ausführung des Transmit-TASKs
festgestellt werden, daß keine Daten mehr im externen Daten
speicher 500 zur Verarbeitung durch den Transmit-TASK anste
hen, so geht auch der Transmit-TASK von selbst vom RUN-
Zustand in den HALT-Zustand über.
Der Datentransfer auf den einzelnen Datenkanälen 410, 420,
430 wird permanent von den individuell zugeordneten TASK-
Controllern 310, 320, 330 überwacht. Wenn ein Controller Ver
änderungen des Datentransfers auf 'seinem' Datenkanal fest
stellt, so lassen diese auf eine Veränderung des aktuellen
Zustandes der ihm zugeordneten TASKs schließen, denn derarti
ge Zustandswechsel erfolgen aufgrund von Hardwareereignissen,
wie beispielsweise einem Zugriff auf den externen Datenspei
cher 500. Insbesondere kann ein einzelner TASK folgende Zu
standswechsel durchlaufen:
Solange der TASK von der EXU 100 bearbeitet wird, befindet
sich der TASK im RUN-Zustand. Erfolgt jedoch im Verlauf der
Bearbeitung über die I/O-Schnittstelle 400 ein Lesezugriff
oder eine Schreiboperation auf den externen Datenspeicher
500, so wickelt die I/O-Schnittstelle 400 mit ihren TASK
spezifischen Datenkanälen 410, 420, 430 diese Operation
selbsttätig, d. h. unabhängig von der EXU ab. Während dieser
Zeit nimmt der TASK den WAIT-Zustand an. Bei einer Schrei
boperation nimmt der TASK den WAIT-Zustand nur dann an, wenn
unmittelbar davor ebenfalls eine Schreiboperation gestartet
worden ist und diese noch den TASK-spezifischen Datenkanal
belegt.
Erfolgt während des WAIT-Zustandes eines TASK ein Lesezugriff
auf den externen Datenspeicher 500, und stehen die angefor
derten Lesedaten nun im TASK-spezifischen Datenkanal der I/O-
Schnittstelle 400 zur Abholung durch den Prozessor bereit, so
geht der TASK vom WAIT- in den READY-Zustand über.
Ein analoger Zustandswechsel erfolgt bei Schreiboperationen
in den externen Datenspeicher 500, wenn die einzuschreibenden
Daten in dem TASK-spezifischen Datenkanal der frei gewordenen
I/O-Schnittstelle 400 vor ihrem Transfer in den externen Da
tenspeicher 500 zwischengespeichert werden.
Ein TASK geht dann vom READY- in den RUN-Zustand über, wenn
ihm Ausführungszeit der EXU zugeteilt wird, was nachfolgend
ausführlicher anhand der Fig. 2 erläutert wird.
Dieser Zustandswechsel erfolgt i. d. R. nur durch einen TASK
eigenen Befehl, der bewirkt, daß der TASK inaktiv geschaltet
wird. Er wird z. B. bei dem Receive- oder Transmit-TASK da
durch ausgelöst, daß keine weiteren Daten mehr zur Verarbei
tung anstehen
Dieser Zustandswechsel geht einher mit einer Aktivschaltung
eines zuvor inaktiven TASK. Eine Aktivschaltung kann z. B.
durch ein Aktivierungssignal von einem Timer oder durch den
Befehl eines anderen TASK erfolgen.
In der bisherigen Beschreibung erfolgte im wesentlichen eine
Einzelbetrachtung der einzelnen TASKs. Insbesondere wurde ih
re individuelle Funktionsweise beschrieben sowie ihre bei der
Abwicklung durchlaufenen Zustandswechsel.
Aufbauend auf den von jeder TASK während ihrer Bearbeitung
durchlaufenen Zustandswechsel, erfolgt nun anhand der Fig. 2
eine Beschreibung des durch den TASK-Scheduler 300 gesteuer
ten Multitaskings der verschiedenen TASKs.
In Fig. 2 sind für den TASK 1 und den TASK 2 beispielhaft Zu
standswechsel dargestellt. So durchläuft der TASK 1 sukzessi
ve die Zustände HALT READY RUN WAIT READY RUN, während der
TASK 2 sukzessive die Zustände RUN WAIT READY RUN READY RUN
WAIT READY durchläuft. Gleichzeitig durchläuft der TASK 0 die
Zustände HALT READY RUN und HALT. Alle diese Zustandswechsel
werden für jeden einzelnen TASK von dem ihm individuell zuge
ordneten TASK-Controller gesteuert.
Da nur eine EXU 100 vorhanden ist, ist auch nur die Abwick
lung eines TASK zu gleicher Zeit möglich. Um die Auslastung
der EXU und damit den Datendurchsatz durch den Schaltkreis zu
optimieren, werden die einzelnen TASKs nicht etwa sequenti
ell, sondern nach dem Multitasking Prinzip durch die EXU ab
gearbeitet. Dabei erfolgt die für das Multitasking erforder
liche Koordination der Zustandswechsel der einzelnen TASKs
durch den hardwareimplementierten TASK-Scheduler 300.
Wenn der TASK-Controller 330 einen Lesezugriff des TASK 2 auf
den externen Datenspeicher 500 registriert, führt er den TASK
2 vom RUN- in den WAIT-Zustand über. Diese Veränderungsinfor
mation teilt der TASK-Controller dem TASK-Scheduler 300 mit,
welcher daraufhin den TASK-Controller 320 veranlaßt, den TASK
1 vom READY- in den RUN-Zustand zu überführen.
Damit wird die anfängliche Bearbeitung des TASK 2 auf der EXU
unterbrochen und der TASK 1 der EXU zur Bearbeitung zuge
teilt. Die Bearbeitung des TASK 1 auf der EXU erfolgt solan
ge, bis der TASK-Controller 320 eine Schreiboperation des
TASK 1 auf den externen Datenspeicher 500 registriert, wor
aufhin er den TASK 1 in den WAIT-Zustand überführt.
Solange nun, wie in Fig. 2 dargestellt, der WAIT-Zustand des
TASK 1 noch nicht durch einen READY-Zustand ersetzt wurde,
weil die Schreiboperation auf den externen Datenspeicher 500
noch nicht durch die I/O-Schnittstelle 400 beendet wurde,
entsteht tatsächlich eine Totzeit für die EXU 100, weil sich
nun sowohl TASK 1 wie auch TASK 2 zeitgleich im WAIT-Zustand
befinden.
Allerdings bleibt TASK 1 unabhängig von seinem Zustandswech
sel vom RUN- in den WAIT-Zustand der EXU zugeordnet, wie dies
aus der letzten Balkenzeile in Fig. 2 zu erkennen ist.
Ausgehend von dem gleichzeitigen WAIT-Zustand von TASK 1 und
TASK 2 wird derjenige TASK als nächster von der EXU bearbei
tet, dessen Operation mit dem externen Datenspeicher 500 als
erste von der I/O-Schnittstelle erfolgreich abgewickelt und
beendet wird. Sobald das Ende einer Operation als Veränderung
des Datentransfers von einem TASK-Controller in einem Daten
kanal DK der Schnittstelle erkannt wird, überführt er seinen
TASK vom WAIT- in den READY-Zustand, was in der Fig. 2 für
den TASK 2 dargestellt ist.
Der TASK-Controller 330 teilt daraufhin dem TASK-Scheduler
300 den READY-Zustand des TASK 2 mit, woraufhin dieser umge
hend den TASK 2 der EXU zuteilt, weil TASK 1 nach wie vor im
WAIT-Zustand ist. Mit der Zuteilung von TASK 2 zu der EXU
100, überführt der TASK-Controller 330 seinen TASK 2 vom
READY- in den RUN-Zustand.
Wie aus den Zustandswechseln in Fig. 2 für die TASKs 1 und 2
ersichtlich, wird durch das beschriebene Multitasking Prinzip
die EXU 100 insgesamt besser ausgelastet, weil sie während
des Wartezustandes eines zuvor im RUN-Zustand befindlichen
TASK einen anderen TASK zur Bearbeitung zugeteilt bekommt.
Eine Unterbrechung des RUN-Zustandes eines TASK kann aller
dings nicht nur durch Wartezeiten für eine externe Spei
cheroperation initiiert werden, sondern auch dann, wenn die
EXU 100 von einem TASK höherer Priorität, z. B. dem Supervi
sor-TASK 0, beansprucht wird.
Dies geschieht üblicherweise dann, wenn dem TASK-Scheduler
300 vom TASK-Controller 310 der TASK 0 mitgeteilt wird, daß
sich dieser im READY-Zustand befindet. Daraufhin unterbricht
der TASK-Scheduler die Bearbeitung von TASKs mit niederer
Priorität auf der EXU 100 und teilt dieser den TASK 0 zur Be
arbeitung zu.
Daraufhin wird der TASK 2 von seinem Controller 330 aus dem
RUN-Zustand in den READY-Zustand überführt, während gleich
zeitig der TASK 0 von seinem Controller 310 vom READY- in den
RUN-Zustand überführt wird.
Nach vollständiger Abwicklung des TASK 0, erteilt der TASK-
Scheduler der EXU 100 wieder den zuletzt unterbrochenen TASK
2 zur Bearbeitung zu. Konsequenterweise wird dann der TASK 0
von seinem Controller 310 vom RUN- in den HALT-Zustand über
führt, während gleichzeitig der zuvor unterbrochene TASK 2
von seinem Controller 330 wieder vom READY- in den RUN-
Zustand überführt wird.
Solche Interrupts durch den Supervisor-TASK erfolgen aller
dings üblicherweise nur bei besonderen Ereignissen, wie z. B.
der Initialisierung, beim Auftreten von Fehlern, bei externer
Alarmierung oder dann, wenn der Supervisor-TASK 0 von einem
anderen TASK aufgerufen wird.
Jeder TASK für sich würde die EXU 100 nur etwa zur Hälfte
auslasten, weil die jeweilige Bearbeitung durch die EXU sehr
häufig durch Zugriffe auf den externen Datenspeicher 500 un
terbrochen werden müßte. Bei der Anwendung von TASKs, die je
weils etwa gleich viele Zugriffe auf den externen Datenspei
cher 500 vorsehen, bietet der hardwareimplementierte TASK-
Scheduler eine gute Möglichkeit, diese langsamen Zugriffe
zeitlich zu verzahnen, um auf diese Weise den Datendurchsatz
der Schaltung zu verbessern. Auch wenn der Prozessor durch
die beiden TASKs sehr unsymmetrisch belastet wird, ergibt
sich in der Gesamtbilanz für seinen Datendurchsatz immer noch
ein Gewinn.
Claims (6)
1. Anwendungsspezifischer integrierter Schaltkreis (ASIC) mit
einem RISC-Prozessor zur Bearbeitung definierter Sequenzen
von Assembler Befehlen (TASKs), mit einem Programm- und
Datenspeicher (200) zum Speichern der TASKs, und einer
Verarbeitungseinheit (EXU) (100) zum Ausführen der TASKs,
wobei ein hardwareimplementierter Task-Scheduler (300) von
einer TASK auf einen anderen TASK umschaltet, wenn zuvor die
Ausführung des einen TASK unterbrochen wurde,
dadurch gekennzeichnet, daß
jeder Task ein eigener Controller (310, 320, 330) zugeordnet ist, zum Erfassen des aktuellen Zustandes (RUN, WAIT, READY und HALT) der jeweils zugeordneten TASK und zum Ausgeben von entsprechender Zustandsinformation; und
daß der hardwareimplementierte TASK-Scheduler (300) so ausgestaltet ist, daß er die TASKs an die EXU (100) nach Maßgabe der erfaßten Zustandsinformation zuteilt.
jeder Task ein eigener Controller (310, 320, 330) zugeordnet ist, zum Erfassen des aktuellen Zustandes (RUN, WAIT, READY und HALT) der jeweils zugeordneten TASK und zum Ausgeben von entsprechender Zustandsinformation; und
daß der hardwareimplementierte TASK-Scheduler (300) so ausgestaltet ist, daß er die TASKs an die EXU (100) nach Maßgabe der erfaßten Zustandsinformation zuteilt.
2. Schaltkreis nach Anspruch 1, dadurch
gekennzeichnet, daß eine I/O-Schnittstelle (400),
zwischen einem externen Datenspeicher (500) und einem
internen Datenbus (700) angeordnet ist.
3. Schaltkreis nach Anspruch 2, dadurch
gekennzeichnet, daß die I/O-Schnittstelle (400) für
den Datentransfer zwischen ihr und dem internen Datenbus
(700) für jede TASK einen individuellen Datenkanal (410, 420,
430) besitzt, welcher den Datentransfer für jeden TASK
durchführt, und daß Mittel vorgesehen sind, die den
Datenkanal des zugeordneten TASK-Controllers (310, 320, 330)
auf Veränderungen des Datentransfers hin überwacht, um
aufgrund dieser Veränderung Veränderungen des Zustandes des
jeweiligen TASK zu erkennen.
4. Schaltkreis nach Anspruch 2 oder 3, dadurch
gekennzeichnet, daß die I/O-Schnittstelle (400) für
den Datentransfer zwischen ihr und dem externen Datenspeicher
(500) einen gemeinsamen Datenkanal für alle TASKs aufweist.
5. Schaltkreis nach einem der Ansprüche 2 bis 4, dadurch
gekennzeichnet, daß Registerbänke (610, 620, 630),
die den TASKs individuell zugeordnet und an den internen
Datenbus (700) angeschlossen sind zum Speichern von
spezifischen Daten über einen TASK nach einer Unterbrechung
des jeweils ausgeführten TASKs, vorhanden sind.
6. Schaltkreis nach einem der Ansprüche 1 bis 5, dadurch
gekennzeichnet, daß wenigstens ein FIFO-Speicher
(810, 820) vorhanden ist, der als unidirektionale Schnittstelle zwischen
externen Komponenten und dem internen Datenbus (700)
angeordnet ist und durch einen ihm zugeordenten TASK-
Controller (320, 330) gesteuert wird.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19827914A DE19827914C1 (de) | 1998-06-23 | 1998-06-23 | Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen |
US09/337,639 US6477636B1 (en) | 1998-06-23 | 1999-06-22 | Application-specific integrated circuit for processing defined sequences of assembler instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19827914A DE19827914C1 (de) | 1998-06-23 | 1998-06-23 | Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19827914C1 true DE19827914C1 (de) | 1999-10-28 |
Family
ID=7871734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19827914A Expired - Fee Related DE19827914C1 (de) | 1998-06-23 | 1998-06-23 | Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen |
Country Status (2)
Country | Link |
---|---|
US (1) | US6477636B1 (de) |
DE (1) | DE19827914C1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1343083A2 (de) * | 2002-02-26 | 2003-09-10 | Zarlink Semiconductor V.N. Inc. | Auf Aufgaben basierte Hardware-Architektur zur Maximierung der Wiederverwendung von geistigem Eigentum |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7823131B2 (en) * | 2001-06-29 | 2010-10-26 | Mentor Graphics Corporation | Debugger for a hardware-implemented operating system |
US7530074B1 (en) * | 2004-02-27 | 2009-05-05 | Rockwell Collins, Inc. | Joint tactical radio system (JTRS) software computer architecture (SCA) co-processor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833640A (en) * | 1985-10-25 | 1989-05-23 | Hitachi, Ltd. | Register bank change including register to register transfer in a data processing system |
DE4301117A1 (en) * | 1992-01-30 | 1993-08-05 | Siemens Ag | Multi-tasking processor for control of automation systems - has register block stalk for tasks controlled by selector unit providing highest priority selection |
DE19530483A1 (de) * | 1995-08-18 | 1997-02-20 | Siemens Ag | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5420984A (en) * | 1992-06-30 | 1995-05-30 | Genroco, Inc. | Apparatus and method for rapid switching between control of first and second DMA circuitry to effect rapid switching beween DMA communications |
EP0667573A1 (de) * | 1994-02-14 | 1995-08-16 | International Business Machines Corporation | Aufnahme in einer Betriebssystemumgebung geschriebenen Dienste in einer anderen Betriebssystemumgebung |
-
1998
- 1998-06-23 DE DE19827914A patent/DE19827914C1/de not_active Expired - Fee Related
-
1999
- 1999-06-22 US US09/337,639 patent/US6477636B1/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833640A (en) * | 1985-10-25 | 1989-05-23 | Hitachi, Ltd. | Register bank change including register to register transfer in a data processing system |
DE4301117A1 (en) * | 1992-01-30 | 1993-08-05 | Siemens Ag | Multi-tasking processor for control of automation systems - has register block stalk for tasks controlled by selector unit providing highest priority selection |
DE19530483A1 (de) * | 1995-08-18 | 1997-02-20 | Siemens Ag | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1343083A2 (de) * | 2002-02-26 | 2003-09-10 | Zarlink Semiconductor V.N. Inc. | Auf Aufgaben basierte Hardware-Architektur zur Maximierung der Wiederverwendung von geistigem Eigentum |
EP1343083A3 (de) * | 2002-02-26 | 2005-04-20 | Zarlink Semiconductor Limited | Auf Aufgaben basierte Hardware-Architektur zur Maximierung der Wiederverwendung von geistigem Eigentum |
Also Published As
Publication number | Publication date |
---|---|
US6477636B1 (en) | 2002-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1146432B1 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
DE10110504B4 (de) | Verfahren und Computersystem zur Verwaltung von Threads | |
DE4410775C2 (de) | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE2054068A1 (de) | Mit Programmverschachtelung arbei tendes Datenverarbeitungssystem zur gleichzeitigen Verarbeitung mehrerer Programme | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
EP0635792A2 (de) | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen | |
DE60127520T2 (de) | Prozessor mit Befehlscache mit niedrigem Stromverbrauch | |
DE2350229A1 (de) | Datenverarbeitungsanlage, insbesondere als steuereinrichtung fuer fernsprechvermittlungsanlagen | |
DE4445651A1 (de) | Verfahren zur Steuerung von technischen Vorgängen | |
EP0632668A2 (de) | Verfahren zum Aktualisieren eines Systemprogramms in einer Vermittlungseinrichtung | |
DE19827914C1 (de) | Anwendungsspezifischer integrierter Schaltkreis mit einem RISC-Prozessor zur Bearbeitung definierter Sequenzen von Assembler Befehlen | |
WO2011134762A1 (de) | Coprozessor mit aufgabenablaufsteuerung | |
EP1483682A2 (de) | Reconfigurierbarer prozessor | |
DE102017130552B3 (de) | Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung | |
DE102020133748B4 (de) | Fahrzeugsteuergerät mit synchronem treiber | |
DE2845218B1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchfuehren von Ein-/Ausgabeoperationen | |
DE2912734C2 (de) | Mehrrechnerkopplung | |
EP1770521B1 (de) | Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozessor-Architektur | |
DE2507405A1 (de) | Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage | |
DE2034423B2 (de) | Verfahren zur Fehlersuche in einem programmgesteuerten Vermittlungssystem | |
DE3603240C2 (de) | ||
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE19727480C1 (de) | Computersystem mit Unterbrechungssteuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |