DE19518112A1 - Prozessor - Google Patents
ProzessorInfo
- Publication number
- DE19518112A1 DE19518112A1 DE1995118112 DE19518112A DE19518112A1 DE 19518112 A1 DE19518112 A1 DE 19518112A1 DE 1995118112 DE1995118112 DE 1995118112 DE 19518112 A DE19518112 A DE 19518112A DE 19518112 A1 DE19518112 A1 DE 19518112A1
- Authority
- DE
- Germany
- Prior art keywords
- command
- address
- register
- processor
- execution
- 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
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Description
Die Erfindung betrifft einen Prozessor, welcher Befehle nach
dem Fließbandprinzip parallel bearbeitet, nach welchem die
Verarbeitung jeden Befehls mehrere Einzeloperationen umfaßt,
von denen eine zur Befehlsausführung und/oder zum Operanden
zugriff und eine weitere zum Anzeigen und/oder Abspeichern
des Ergebnisses vorgesehen ist.
In der Druckschrift "Informatik - Ein Sachlexikon für Studium
und Praxis", 2. Auflage 1993, Seiten 527 und 528, ist ein
Konzept zur Beschleunigung der Arbeitsgeschwindigkeit einer
Rechenanlage beschrieben. Dort ist vorgesehen, einen Befehl
nach dem Fließbandprinzip (Pipeline-Verarbeitung) abzuarbei
ten, nach welchem die Verarbeitung eines Befehls mehrere
Einzeloperationen umfaßt. Für jede dieser Einzeloperationen,
die Operationen "Holphase", "Decodierphase", "Erhöhen des Be
fehlszählregisters", "Laden der Operanden", "Ausführungs
phase" und "Abspeichern des Ergebnisses", ist innerhalb eines
Steuerwerks eine Funktionseinheit vorgesehen, welche fließ
bandartig gleichzeitig an der Ausführung der Befehle arbei
ten. Maßnahmen zur Fortsetzung einer unterbrochenen Befehls
verarbeitung nach einer Unterbrechung sind nicht angegeben.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einen
nach dem Fließbandprinzip arbeitenden Prozessor anzugeben,
welcher nach einer Unterbrechung einer Befehlsausführung die
se möglichst schnell wieder aufnimmt.
Diese Aufgabe wird durch die im kennzeichnenden Teil des An
spruchs 1 angegebenen Maßnahmen gelöst.
Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben
sich aus den Unteransprüchen.
Die Erfindung wird insbesondere in speicherprogrammierbaren
Steuerungen eingesetzt, welche schnell auf Unterbrechungen
und Änderungen eines zu steuernden technischen Prozesses
reagieren müssen.
Anhand der Zeichnung, in der Ausführungsbeispiele der Erfin
dung veranschaulicht sind, werden die Erfindung, deren Aus
gestaltungen sowie Vorteile näher erläutert.
Es zeigen:
Fig. 1 ein Prinzipschaltbild einer Registerstruktur eines
Prozessors,
Fig. 2 ein Schema einer an sich bekannten Fließbandverar
beitung und
Fig. 3 ein Prinzipschaltbild einer Registerstruktur eines
weiteren Prozessors.
Zur Erläuterung der Erfindung wird zunächst auf Fig. 2 ver
wiesen. Die dargestellte Fließbandverarbeitung umfaßt sechs
Verarbeitungsstufen mit jeweils einer von sechs Einzelopera
tionen E0, E1 . . . E5, von denen die Einzeloperation E0 zum
Einlesen eines Befehls, die Einzeloperation E1 zur Befehls
decodierung, die Einzeloperation E2 zur Mikroprogramm-Adres
sierung, die Einzeloperation E3 zur Operanden-Adreßberech
nung, die Einzeloperation E4 zum Operandenzugriff und/oder
zur Befehlsausführung und die Einzeloperation E5 zur Ergeb
nisanzeige und/oder -speicherung vorgesehen sind. Eine hier
nicht dargestellte Prozessor-Befehlsverarbeitungseinheit
liest einen zu bearbeitenden Befehl B0 in einem Zeitintervall
T0 ein (Einzeloperation E0), welchen die Befehlsverarbei
tungseinheit in einem Zeitintervall T1 decodiert (Einzel
operation E1). Gleichzeitig liest die Befehlsverarbeitungs
einheit einen Befehl B1 ein, welchen die Befehlsverarbei
tungseinheit in einem Zeitintervall T2 decodiert. In diesem
Zeitintervall T2 adressiert die Prozessor-Befehlsverarbei
tungseinheit parallel zur Befehlsdecodierung ein Mikro
programm (Einzeloperation E2), welches den Befehl B0 durch
eine Folge von Elementaroperationen verwirklicht, und liest
einen nächsten Befehl B2 ein. In einem Zeitintervall T3 liest
die Befehlsverarbeitungseinheit einen Befehl B3 ein, deco
diert parallel dazu den Befehl B2, adressiert das Mikro
programm zur Verwirklichung des Befehls B1 und berechnet die
Operanden (Einzeloperation E3) des Befehls B0. Die fließband
artige Bearbeitung aller Befehle führt in einem Zeitintervall
T4 zur Ausführung des Befehls B0 (Einzeloperation E4) und in
einem Zeitintervall T5 zum Anzeigen und/oder Speichern des
Befehlsergebnisses (Einzeloperation E5) des Befehls B0, wobei
in diesen Zeitintervallen die Befehlsverarbeitungseinheit
parallel dazu neue Befehle B4 und B5 einliest sowie die be
reits eingelesenen Befehle den beschriebenen Einzeloperatio
nen unterwirft.
Im folgenden wird auf Fig. 1 verwiesen, in der ein Prinzip
schaltbild einer Registerstruktur eines Prozessors 1 verein
facht dargestellt ist. Bestandteile des Prozessors 1, wie
z. B. Akkumulatoren, Integer- und Gleitpunktrechenwerk, Takt
geber oder Busanschaltung, sind für die Erfindung ohne Bedeu
tung und werden daher nicht erläutert. Der Prozessor 1 umfaßt
eine Steuerung 2, eine mit einem FIFO-Speicher 3a versehene
Einleseeinheit 3, eine mit einem Mikroprogramm versehene Be
fehlsverarbeitungseinheit 4, eine Adreßeinleseeinheit 5 und
Befehlsadreßregister BR0, BR1 . . . BR5, in welchen jeweils die
Befehlsadressen des durch die jeweilige Einzeloperation E0,
E5 zu bearbeitenden Befehls B0 . . . B5 hinterlegt sind
(Fig. 2). Der Prozessor 1 ist über einen Adreß-, Daten- und
Steuerleitungen aufweisenden Systembus 6 mit einem Speicher 7
und weiteren hier nicht dargestellten Funktionseinheiten,
z. B. Funktionseinheiten in Form von Digitalein- und/oder
-ausgabeeinheiten, verbunden.
Es ist angenommen, daß der Prozessor 1 ein im Speicher 7 hin
terlegtes Programm zur Steuerung eines technischen Prozesses
bearbeitet und die Einleseeinheit 3 auf Befehle des Programms
im FIFO-Speicher 3a nach dem First-in-/First-out-Prinzip zu
greift. Im Beispiel ist der FIFO-Speicher 3a derart dimensio
niert, daß maximal fünf Befehle, die Befehle B0 . . . B5, mit
den dazugehörigen Befehlsadressen gleichzeitig hinterlegbar
sind. Die Befehlsadressen, unter denen die Befehle im Spei
cher 7 gespeichert sind, können Absolut- oder Relativadressen
AD0 . . . AD5 sein, wobei die Absolutadressen aus einer Basis
adresse und der Relativadresse AD0 . . . AD5 gebildet werden.
Die Befehlsverarbeitungseinheit 4 bearbeitet taktgesteuert
die Befehle B0 . . . B5, die jeweils in der beschriebenen Art
und Weise den Einzeloperationen E0 . . . E5 unterworfen werden.
Synchron dazu schreibt die Adreßeinleseeinheit 5 die Befehls
adressen AD0 . . . AD5 der Befehle B0 . . . B5 in das Befehls
adreßregister BR0 ein, wobei die in dem Befehlsadreßregister
BR0 . . . BR4 zuvor hinterlegten Adressen jeweils in das fol
gende Befehlsadreßregister BR1 . . . BR5 eingeschrieben werden.
Die zuvor im Befehlsadreßregister BR5 hinterlegte Adresse
wird gelöscht.
Es ist angenommen, daß die Befehlsadreßregister BR1 . . . BR5
leer sind und die Befehlsverarbeitungseinheit 4 die Befehls
bearbeitung beginnt. Die Befehlsverarbeitungseinheit 4 liest
zunächst den Befehl B0 (Einzeloperation E0) und die Adreß
einleseeinheit 5 die diesem Befehl zugehörige Adresse AD0 aus
dem FIFO-Speicher 3a aus. Zum Zeitpunkt einer positiven Takt
flanke eines Taktgebers zu Beginn des Zeitintervalls T1 (Fig. 2)
bewirkt die Befehlsverarbeitungseinheit 4, daß der Be
fehl B1 eingelesen und der Befehl B0 decodiert (Einzelopera
tion E1) wird. Synchron dazu liest die Adreßeinleseeinheit 5
die Adresse AD1 des Befehls B1 aus dem FIFO-Speicher 3a aus,
verschiebt die Adresse AD0 vom Register BR0 in das Register
BR1 und schreibt die neu eingelesene Adresse AD1 in das Be
fehlsadreßregister BR0 ein. Zum Zeitpunkt der nächsten posi
tiven Flanke zu Beginn des Zeitintervalls T2 unterliegt der
Befehl B0 der Einzeloperation E2, der Befehl B1 der Einzel
operation E1, und die Befehlsverarbeitungseinheit 4 liest ge
rade den Befehl B2 ein (Einzeloperation E0). Wiederum syn
chron verschiebt die Adreßeinleseeinheit 5 die Befehlsadresse
AD0 vom Register BR1 in das Register BR2, die Adresse AD1 vom
Register BR0 in das Register BR1 und schreibt die Adresse AD2
des Befehls B2 in das Register BR0. In der beschriebenen Art
und Weise werden die Befehle B3, B4 und B5 bearbeitet, und
nach einer positiven Taktflanke zu Beginn des Zeitintervalls
T5 sind im Befehlsadreßregister BR0 die Befehlsadresse AD5,
im Befehlsadreßregister BR1 die Befehlsadresse AD4 und in den
Registern BR2, BR3, BR4 und BR5 die Adressen AD3, AD2, AD1
und AD0.
Es ist nun angenommen, daß im Zeitintervall T5 (Fig. 2) die
Ausführung des Befehls und/oder des Operandenzugriffs (Ein
zeloperation E4) unterbrochen wird, z. B. weil eine Unter
brechungssteuerung dem Prozessor ein Unterbrechungsereignis
des zu steuernden technischen Prozesses anzeigt. Im Befehls
adreßregister BR4 ist die Befehlsadresse AD1 des noch nicht
ausgeführten Befehls B1 hinterlegt, im Befehlsadreßregister
BR5 die Befehlsadresse AD0 des zuletzt ausgeführten Befehls
B0, d. h. des Befehls, der die Einzeloperation E4 ohne Unter
brechung korrekt durchlaufen hat. Tritt das Unterbrechungs
ereignis dagegen in einem Zeitintervall T6 (Fig. 2) ein, so
ist im Befehlsadreßregister BR4 die Befehlsadresse AD2 des
noch nicht ausgeführten Befehls B2 hinterlegt und im Befehls
adreßregister BR5 die Befehlsadresse AD1 des zuletzt ausge
führten Befehls B1.
Die Unterbrechungssteuerung zeigt das Ende der im Zeitinter
vall T5 bewirkten Unterbrechung dem Prozessor an, und die
Steuerung 2 liest die im Befehlsadreßregister BR4 hinterlegte
Befehlsadresse aus, löscht die Inhalte der Befehlsadreßregi
ster BR0 . . . BR5 und leitet die weitere Befehlsbearbeitung
ein. Dazu liest die Steuerung 2 den unter der aus dem Regi
ster BR4 ausgelesenen Adresse hinterlegten Befehl aus dem
Speicher 7 aus und trägt diesen in den FIFO-Speicher 3a ein.
Dadurch kann die Befehlsverarbeitungseinheit 4 den vor der
Unterbrechung nicht vollständig ausgeführten Befehl neu be
arbeiten und den Einzeloperationen E0 . . . E5 unterwerfen.
Es kann der Fall eintreten, daß der der Einzeloperation E4
unterworfene Befehl nicht ordnungsgemäß ausgeführt wird. Dies
ist z. B. dann der Fall, wenn die Adresse eines Operanden
zugriffs fehlerhaft ist, eine Division durch Null auszuführen
ist oder eine Schreibschutzverletzung vorliegt. Die Unter
brechungssteuerung verhindert aufgrund des Fehlers unzulässi
ge Schreiboperationen und kann daher die Fließbandverarbei
tung noch um einen Takt fortsetzen, bevor die Unterbrechung
wirksam wird. Vorteilhaft wird daher auch die im Befehls
adreßregister BR5 hinterlegte Adresse ausgelesen. Die Steue
rung 2 oder ein hier nicht dargestellter Standardprozessor
bearbeitet eine Fehlerroutine, um zu analysieren, weshalb der
unter der ausgelesenen Adresse hinterlegte Befehl nicht ord
nungsgemäß ausgeführt wurde.
Fig. 3 zeigt das Prinzipschaltbild einer Registerstruktur
eines weiteren Prozessors 8, der zur Bearbeitung von Ein-,
Zwei- und Dreiwortbefehlen geeignet und über einen hier nicht
dargestellten Bus an weitere Komponenten einer speicher
programmierbaren Steuerung angeschlossen ist. Die in den
Figuren vorkommenden gleichen Teile sind mit gleichen Bezugs
zeichen versehen. Die zur Erläuterung der Erfindung nicht er
forderlichen Bestandteile des Prozessors 8, wie z. B. Akkumu
latoren oder Taktgeber, sind nicht dargestellt.
Im vorliegenden Beispiel umfaßt der Prozessor 8 eine aus ei
ner Einlese- und einer Ausführungseinheit 9a, 9b bestehende
Befehlsverarbeitungseinheit, von denen die Einleseeinheit 9a
die Einzeloperation E0 und die Ausführungseinheit 9b die
Einzeloperationen E1, E2, E3, E4 und E5 durchführt, sowie die
Befehlsadreßregister BR0 . . . BR5, welche den Einzeloperatio
nen E0 . . . E5 zugeordnet sind, wobei das Befehlsadreßregister
BR0 im Beispiel Bestandteil der Einleseeinheit 9a ist, ferner
einen wortbreit (16 Bit) organisierten FIFO-Speicher 10 und
einen Summierer 11.
Es ist angenommen, daß die Befehle B0, B1, B3 und B4 Einwort
befehle sind, der Befehl B2 dagegen ein Zweiwortbefehl und
daß die Einleseeinheit 9a diese Befehle in der Reihenfolge
B0, B1, B2, B3 und B4 (Fig. 2) einliest.
Nach dem Programmstart liest die Einleseeinheit 9a durch
Adressierung mit Hilfe einer Startadresse AD0 im Befehls
adreßregister BR0 zunächst während des Zeitintervalls T0
(Fig. 2) den ersten Befehl, den Einwortbefehl B0, aus einem
an den Bus angeschlossenen, hier nicht dargestellten Pro
grammspeicher ein (Einzeloperation E0) und überträgt diesen
Befehl B0 unmittelbar zur Ausführungseinheit 9b, weil zu
diesem Zeitpunkt der FIFO-Speicher 10 und die Ausführungs
einheit 9b leer sind. Gleichzeitig schreibt die Einlese
einheit 9a die Relativadresse AD0 des Befehls B0 in das Be
fehlsadreßregister BR1, während ein Schalter 12 geschlossen
ist.
Zum Zeitpunkt einer positiven Taktflanke zu Beginn des Zeit
intervalls T1 öffnet die Einleseeinheit 9a den Schalter 12.
Der Schalter 12 bleibt so lange in dieser Stellung, bis das
Programm neu gestartet oder das Programm nach einer Unterbre
chung weiterbearbeitet wird. Während des Zeitintervalls T1
decodiert ein Decoder der Ausführungseinheit 9b den Befehl B0
(Einzeloperation E1), wobei die Ausführungseinheit 9b auf
grund des Befehlaufbaus erkennt, ob ein Ein-, Zwei- oder
Dreiwortbefehl vorliegt. Synchron dazu liest die Einlese
einheit 9a den nächsten Befehl B1 (Einwortbefehl) ein, und
der Summierer 11 addiert die im Befehlsadreßregister BR1
hinterlegte Relativadresse zum Zeitintervall T0 zu einer
Schrittweite 1, 2 oder 3. Die Schrittweite 1, 2 oder 3 wird
addiert, falls nach der Bearbeitung dieses ersten Befehls ein
Ein-, Zwei- oder Dreiwortbefehl zu bearbeiten ist.
Im vorliegenden Beispiel erkennt die Ausführungseinheit 9b,
daß während des Zeitintervalls T1 der Befehl B0 ein Einwort
befehl ist und deshalb dem Summierer 11 die Schrittweite 1
aufzuschalten ist. Das bedeutet, daß der Summierer 11 zur Re
lativadresse AD0 eine "1" addiert, die am Eingang des Be
fehlsadreßregisters BR1 anliegt und mit der Taktflanke zu
Beginn des Taktintervalls T2 in das Befehlsadreßregister BR1
eingetragen wird (AD1 = AD0 + 1).
Während der nächsten Verarbeitungsstufe im Zeitintervall T2
werden die Einzeloperationen E0, E1 und E2 synchron ausge
führt. Die Ausführungseinheit 9b adressiert das in dieser
Einheit hinterlegte Mikroprogramm (Einzeloperation E2), wel
ches - wie beschrieben - den Befehl B0 durch eine Folge von
Elementaroperationen verwirklicht, und decodiert den Einwort
befehl B1 (Einzeloperation E1). Ferner holt die Einlese
einheit 9a den nächsten Befehl B2 aus dem Programmspeicher
und hinterlegt diesen Befehl im FIFO-Speicher 10 (Einzel
operation E0). Ein Befehlswort wird nur in den FIFO-Speicher
10 übernommen, wenn die Einzeloperation E1 durch die Decodie
rung eines Befehls noch belegt ist. Ein Mehrwortbefehl wird
während der Decodierung erkannt und die Befehlsverarbeitung
erst fortgesetzt, wenn alle Wörter, die zu einem Befehl gehö
ren, vorhanden sind, also im FIFO-Speicher 10 stehen. Das be
deutet, daß bei einem Zweiwortbefehl mindestens ein zusätz
liches Wort im FIFO-Speicher 10 stehen muß und bei einem
Dreiwortbefehl mindestens zwei zusätzliche Wörter im FIFO-
Speicher 10 stehen müssen, bevor die Befehlsverarbeitung
fortgesetzt wird (die zusätzlichen Wörter stehen ohne Zusatz
maßnahmen automatisch in der richtigen Reihenfolge an unter
ster Stelle des FIFO-Speichers). Die Ausführungseinheit 9b
erkennt den Befehl B1 als einen Einwortbefehl und schaltet
dem Summierer 11 die Schrittweite 1 auf, welcher zu dieser
Schrittweite 1 die im Befehlsadreßregister BR1 hinterlegte
Relativadresse AD1 addiert und dadurch die dem Einwortbefehl
B1 zugeordnete Relativadresse AD2 = AD1 + 1 erzeugt. Die wäh
rend des Zeitintervalls T1 im Befehlsadreßregister BR1
hinterlegte Relativadresse AD0 wird im Befehlsadreßregister
BR2 abgespeichert.
Während des Zeitintervalls T3 unterliegt der Befehl B0 der
Einzeloperation E3, der Befehl B1 der Einzeloperation E2, der
Befehl B2 der Einzeloperation E1 und der Befehl B3 der Ein
zeloperation E0. Diese Operationen werden - wie beschrieben -
synchron ausgeführt. Dabei erkennt die Ausführungseinheit 9b
beim Einlesen des ersten Wortes des Zweiwortbefehls B2 aus
dem Speicherbereich 10a, daß ein Zweiwortbefehl zu decodieren
ist (Einzeloperation E1), und ermittelt, ob im FIFO-Speicher
10 ein weiteres Wort vorhanden ist. Bei der Fortsetzung der
Befehlsausführung im Zeitintervall T4 wird dieses Wort zeit
sparend unmittelbar der Einzeloperation E2 unterworfen (in
der Figur durch unterbrochen gezeichnete Linien dargestellt).
Der Decoder der Ausführungseinheit 9b decodiert den Zweiwort
befehl B2, und die Ausführungseinheit 9b führt dem Summierer
11 die Schrittweite 2 zu, der aus dieser Schrittweite 2 und
der im Befehlsadreßregister BR1 zu Beginn des Zeitintervalls
T3 hinterlegten Relativadresse AD2 eine diesem Zweiwortbefehl
B2 folgende Relativadresse AD3 erzeugt. Dabei gilt
AD3 = AD2 + 2 = AD1 + 3 = AD0 + 4. Während des Zeitintervalls
T4 wird die im Befehlsadreßregister BR2 während des Zeit
intervalls T2 hinterlegte Relativadresse AD1 in das Befehls
adreßregister BR3 und die im Befehlsadreßregister BR1 gespei
cherte Relativadresse AD2 in das Befehlsadreßregister BR2
eingetragen.
In der beschriebenen Art und Weise werden die Einzeloperatio
nen E0 . . . E5 für die weiteren zu bearbeitenden Befehle (Fig. 2)
während der Zeitintervalle T4, . . . ausgeführt. Dabei
werden die Relativadressen AD1 . . . AD5 der Befehle einfach
durch Addition einer Schrittweite 1, 2 oder 3 und der Re
lativadresse AD0 gebildet, je nachdem, ob die Ein-, Zwei-
oder Dreiwortbefehle zu decodieren sind (Einzeloperation E1).
Die Relativadresse AD0 ist die Adresse des ersten zu decodie
renden Befehls nach einem Programmstart oder nach der Weiter
bearbeitung des Programms nach einer Unterbrechung.
Die den Einzeloperationen E1, E2, . . . , E5 zu unterwerfenden
Befehle B0, B1, . . . , B5 sowie deren Zuordnung der Relativ
adressen AD0, AD1 . . . AD5 in den Befehlsadreßregistern BR1,
BR2, . . . , BR5 während den Zeitintervallen T1, . . . , T5 ist
zusammenfassend in der folgenden Übersicht dargestellt:
Es wird wiederum der Fall betrachtet, daß im Zeitintervall T5
die Ausführung des Befehls unterbrochen wird, weil eine an
den Bus angeschlossene Unterbrechungssteuerung dem Prozessor
8 ein Unterbrechungsereignis des zu steuernden technischen
Prozesses anzeigt. Wie beschrieben, ist in diesem Zeitinter
vall im Befehlsadreßregister BR4 die Befehlsadresse AD1 des
noch nicht ausgeführten Befehls B1 hinterlegt, im Befehls
adreßregister BR5 die Befehlsadresse AD0 des zuletzt ausge
führten Befehls B0, welcher die Einzeloperation E4 ohne Un
terbrechung korrekt durchlaufen hat. Nach der Unterbrechung,
welche die Unterbrechungssteuerung dem Prozessor 8 anzeigt,
liest eine Steuerung 13 des Prozessors oder ein an den Bus
angeschlossener Standardprozessor (nicht dargestellt) die im
Befehlsadreßregister BR4 hinterlegte Relativadresse AD1 aus,
löscht die Inhalte der Befehlsadreßregister BR0 . . . BR5 und
leitet die weitere Befehlsbearbeitung ein, wobei der zur Re
lativadresse AD1 zugeordnete Befehl in die Decodierstufe E1
und die Relativadresse AD1 in das Befehlsadreßregister BR1
eingeschrieben wird. Dadurch kann die Ausführungseinheit 9b
den vor der Unterbrechung nicht vollständig ausgeführten Be
fehl neu bearbeiten und den Einzeloperationen E1 . . . E5 un
terwerfen.
Wie beschrieben, kann wiederum der Fall eintreten, daß der
der Einzeloperation E4 unterworfene Befehl nicht ordnungs
gemäß ausgeführt wird, weil z. B. die Operandenadresse feh
lerhaft ist, eine Division durch Null auszuführen ist oder
eine Schreibschutzverletzung vorliegt. Die Unterbrechungs
steuerung verhindert aufgrund des Fehlers unzulässige
Schreiboperationen und kann daher die Fließbandverarbeitung
noch um einen Takt fortsetzen, bevor die Unterbrechung wirk
sam wird. Es ist daher vorteilhaft, auch die im Befehlsadreß
register BR5 hinterlegte Adresse auszulesen. Die Steuerung 13
oder der Standardprozessor bearbeitet eine Fehlerroutine, um
zu analysieren, weshalb der unter der ausgelesenen Adresse
hinterlegte Befehl nicht ordnungsgemäß ausgeführt wurde. Die
Befehlsbearbeitung wird also einheitlich mit dem Befehl fort
gesetzt, dessen Relativadresse im Befehlsadreßregister BR4
gespeichert ist, unabhängig davon, ob ein externes Unterbre
chungsereignis oder eine Unterbrechung durch eine fehlerhafte
Befehlsausführung vorliegt.
Claims (4)
1. Prozessor (1; 8), welcher Befehle (B0 . . . B5) nach dem
Fließbandprinzip parallel bearbeitet, nach welchem die Ver
arbeitung jeden Befehls (B0 . . . B5) mehrere Einzeloperationen
(E0 . . . E5) umfaßt, von denen eine zur Befehlsausführung
und/oder zum Operandenzugriff (E4) und eine weitere zum An
zeigen und/oder Abspeichern des Ergebnisses (E5) vorgesehen
ist, dadurch gekennzeichnet ,
- - daß für jede Einzeloperation (E0 . . . E5) ein Befehlsadreß register (BR0 . . . BR5) vorgesehen ist, in welchem die Be fehlsadresse (AD0, . . . ) des durch die jeweilige Einzelope ration (E0, . . . ) zu bearbeitenden Befehls (B0, . . . ) hinterlegt ist, und
- - daß Mittel (2; 13) vorgesehen sind, die bei einer Unter brechung einer Befehlsausführung die Befehlsadresse (AD0, . . . ) aus dem der Einzeloperation "Befehlsausführung und/oder Operandenzugriff" (E4) zugeordneten Befehlsadreß register (BR4) auslesen und nach der Unterbrechung die Be fehlsbearbeitung des unter der Befehlsadresse (AD0, . . . ) hinterlegten Befehls (B0, . . . ) einleiten.
2. Prozessor nach Anspruch 1, dadurch gekennzeich
net,
- - daß die Mittel (2; 13) die Befehlsadresse aus dem der Ein zeloperation "Anzeigen und/oder Abspeichern des Ergebnis ses" (E5) zugeordneten Befehlsadreßregister (BR5) auslesen und
- - daß die Mittel (2; 13) eine Fehlerroutine zur Analyse der Befehlsausführung starten, wobei der Fehlerroutine der der ausgelesenen Befehlsadresse zugeordnete Befehl zugeführt wird.
3. Prozessor nach Anspruch 1 oder 2, dadurch gekenn
zeichnet, daß die Befehlsadressen Relativadressen sind.
4. Speicherprogrammierbare Steuerung mit einem Prozessor nach
einem der Ansprüche 1 bis 3.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1995118112 DE19518112A1 (de) | 1995-05-17 | 1995-05-17 | Prozessor |
PCT/DE1996/000839 WO1996036917A1 (de) | 1995-05-17 | 1996-05-13 | Prozessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1995118112 DE19518112A1 (de) | 1995-05-17 | 1995-05-17 | Prozessor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19518112A1 true DE19518112A1 (de) | 1996-11-21 |
Family
ID=7762159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1995118112 Withdrawn DE19518112A1 (de) | 1995-05-17 | 1995-05-17 | Prozessor |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE19518112A1 (de) |
WO (1) | WO1996036917A1 (de) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0208181A1 (de) * | 1985-06-28 | 1987-01-14 | Hewlett-Packard Company | Befehlszählerwarteschlange für einen Pipeline-Prozessor |
US5150469A (en) * | 1988-12-12 | 1992-09-22 | Digital Equipment Corporation | System and method for processor pipeline control by selective signal deassertion |
-
1995
- 1995-05-17 DE DE1995118112 patent/DE19518112A1/de not_active Withdrawn
-
1996
- 1996-05-13 WO PCT/DE1996/000839 patent/WO1996036917A1/de active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO1996036917A1 (de) | 1996-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2533737A1 (de) | Datenprozessor | |
DE2718551A1 (de) | Adressenumsetzvorrichtung in einer datenverarbeitungsvorrichtung | |
EP0130269B1 (de) | Speicherprogrammierbare Steuerung | |
DE2134816A1 (de) | Einrichtung zur adressenuebersetzung | |
DE60010847T2 (de) | Verfahren zur Fehlerbeseitigung in einem Thread-Programm | |
DE3307194A1 (de) | Datenverarbeitungsanlage | |
DE2918357A1 (de) | Datenverarbeitungssystem | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
DE19518112A1 (de) | Prozessor | |
EP0108415B1 (de) | Integrierte mikroprogrammierte Vorrichtung zur Steuerung von Informationsverarbeitungsabläufen und Verfahren zu ihrem Betrieb | |
DE2931121C2 (de) | ||
DE3603240C2 (de) | ||
EP0108418B1 (de) | Vorrichtung zur Mikroprogramm-Steuerung eines Informationstransfers und Verfahren zu ihrem Betrieb | |
DE102009037158B4 (de) | Steuervorrichtung zur Steuerung eines elektrischen Antriebs | |
DE10008008C1 (de) | Prozessor für die Bearbeitung von Unterbrechungsanforderungen und Prozessor für die Bearbeitung von Ereignissen | |
DE2501121C3 (de) | Mikroprogrammgerät für eine Datenverarbeitungseinrichtung | |
EP0400192B1 (de) | Verfahren und Anordnung zur Verringerung der Anzahl von Verlustzyklen bei der Bearbeitung von Befehlen in nach dem Fliessbandprinzip arbeitenden Datenverarbeitungsanlagen | |
EP0065772A1 (de) | Schaltungsanordnung für ein Prozessorsystem | |
DE2122659A1 (de) | ||
DE2536251A1 (de) | Verfahren zum steuern eines datenverarbeitungssystems | |
EP0326803B1 (de) | Anordnung zur Erweiterung eines Befehlsspeicherbereichs | |
DE10116864A1 (de) | Verfahren zum Emulieren einer programmgesteuerten Einheit | |
DD256003A1 (de) | Mikroprogrammsteuerwerk einer geraetesteuereinheit | |
DE2219070A1 (de) | Vorrichtung für die Verschiebung und das Wiedereinsetzen von Programmen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |