DE19518112A1 - Prozessor - Google Patents

Prozessor

Info

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
Application number
DE1995118112
Other languages
English (en)
Inventor
Reiner Dipl Ing Dillenburg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE1995118112 priority Critical patent/DE19518112A1/de
Priority to PCT/DE1996/000839 priority patent/WO1996036917A1/de
Publication of DE19518112A1 publication Critical patent/DE19518112A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, 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.
DE1995118112 1995-05-17 1995-05-17 Prozessor Withdrawn DE19518112A1 (de)

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)

* Cited by examiner, † Cited by third party
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

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