DE3740762A1 - DATA PROCESSING SYSTEM WITH AN EXTERNAL INTERFACE - Google Patents
DATA PROCESSING SYSTEM WITH AN EXTERNAL INTERFACEInfo
- Publication number
- DE3740762A1 DE3740762A1 DE19873740762 DE3740762A DE3740762A1 DE 3740762 A1 DE3740762 A1 DE 3740762A1 DE 19873740762 DE19873740762 DE 19873740762 DE 3740762 A DE3740762 A DE 3740762A DE 3740762 A1 DE3740762 A1 DE 3740762A1
- Authority
- DE
- Germany
- Prior art keywords
- command
- der
- die
- address
- jump
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000012806 monitoring device Methods 0.000 claims 8
- 238000012546 transfer Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 13
- 241001136792 Alle Species 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 239000000872 buffer Substances 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 230000005764 inhibitory process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013024 troubleshooting Methods 0.000 description 3
- 241001530812 Goupia glabra Species 0.000 description 2
- 101150052012 PPP1R14B gene Proteins 0.000 description 2
- 101100013829 Zea mays PHI1 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 240000004752 Laburnum anagyroides Species 0.000 description 1
- 240000001439 Opuntia Species 0.000 description 1
- 235000004727 Opuntia ficus indica Nutrition 0.000 description 1
- 241000270295 Serpentes Species 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009131 signaling function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
Description
Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem und insbesondere eine Methode zur Überwachung der durch einen Mikroprozessor ausgeführten Befehlsfolgen ohne hierdurch den Betrieb zu behindern.The present invention relates to a Data processing system and in particular a method for Monitoring of those carried out by a microprocessor Command sequences without hindering operation.
Ein Mikroprozessor ist nur dann nützlich, wenn Systementwickler die Möglichkeit haben, den Mikroprozessor auch zur Fehlerbeseitigung einzusetzen. Der Systementwickler muß in der Lage sein, den Betrieb des in der Entwicklung befindlichen Systems zu beobachten, Unterschiede zwischen Systembetrieb und der definierten Funktionsbeschreibung festzustellen und das System dann entsprechend der Funktionsbeschreibung zu ändern.A microprocessor is only useful if System developers have the ability to use the microprocessor too used for troubleshooting. The system developer must be in the Be able to operate the system under development to observe differences between system operation and the determine the defined functional description and the system then change according to the functional description.
Ein wichtiger Gesichtspunkt bei der Überwachung des Betriebs eines Systems ist die Beachtung von Befehlsfolgen, die vom Mikroprozessor durchgeführt werden. Der Systementwickler muß in der Lage sein, die Folge ausgeführter Befehle zu beachten, ohne daß das System langsamer wird oder die Befehlsfolge vom normalen Systemablauf abweicht.An important aspect when monitoring operations of a system is the observance of command sequences, which by the Microprocessor can be performed. The system developer must be in be able to observe the sequence of commands executed without that the system slows down or the order of the normal System flow differs.
Mikroprozessoren sind in der Regel so ausgelegt, daß die Steuerungsübergabe von einem Befehl zum nächsten sowohl durch die Speicherstelle und die Art des ausgeführten Befehls als auch dadurch, ob eine Ausnahme vorliegt, bestimmt wird.Microprocessors are usually designed so that the Control transfer from one command to the next by both Location and type of command executed as well is determined by whether there is an exception.
Ausnahmen sind Ereignisse, Fehler und besondere Bedingungen, wie der Versuch, einen unzulässigen Befehl oder eine durch ein Peripheriegerät gemeldete Unterbrechungsanforderung auszuführen, die vom Mikroprozessor erkannt werden.Exceptions are events, errors and special conditions such as trying to get an invalid command or one by one To execute the interrupt request reported to the peripheral device, that are recognized by the microprocessor.
Durch einen Mikroprozessor ausgeführte Befehle lassen sich in drei Gruppen einteilen: Sprungbefehle, Verzweigungsbefehle und "andere" Befehle.Instructions executed by a microprocessor can be in divide into three groups: branch instructions, branch instructions and "other" commands.
"Sprung"befehle sind die Befehle, die die Steuerung möglicherweise auf einen Befehl mit einer Zieladresse übergeben, die durch Addition eines Verstellwertes, der in einen gegenwärtig ablaufenden Befehl codiert wurde, mit der Adresse des gegenwärtigen ablaufenden Befehls berechnet wird. Sprungbefehle können "unbedingten" oder "bedingten" Charakter haben; bei letzterem wird ein Test durchgeführt um festzustellen, ob eine spezifische Bedingung bezüglich des Zustandes des Mikroprozessors wahr ist."Jump" commands are the commands that the controller possibly passed on a command with a destination address, by adding a shift value that is currently in a current command was encoded with the address of the current one running command is calculated. Jump commands can have "unconditional" or "conditional" character; with the latter conducted a test to determine if a specific Condition regarding the state of the microprocessor is true.
Ein Sprungbefehl wird "aufgenommen", wenn er unbedingt oder bedingt ist und die spezifische Bedingung wahr ist. A jump command is "recorded" if it is unconditional or is conditioned and the specific condition is true.
"Verzweigungsbefehle" sind die Befehle, die die Steuerung möglicherweise auf einen Befehl mit einer Zieladresse übergeben, deren Berechnung allgemein von der Definition des besonderen Befehls abhängt. Beispiele für übliche Verzweigungsbefehle sind "RETURN" - Übergabe der Steuerung an eine oben vom Stapel im Speicher gelesene Adresse - und "CASE" - Übergabe der Steuerung an eine Adresse, die durch Verwendung eines Operanden-Wertes zur Indexierung in eine Adreß-Tabelle im Speicher festgestellt wird -. Wie Sprungbefehle können Verzweigungsbefehle "unbedingten" oder "bedingten" Charakter haben und werden "aufgenommen", wenn sie unbedingt oder bedingt sind und die spezifische Bedingung wahr ist."Branch instructions" are the instructions that the controller possibly passed on a command with a destination address, their calculation generally from the definition of the particular Command depends. Examples of common branch instructions are "RETURN" - Transfer of control to one of the top of the stack Memory read address - and "CASE" - transfer of control to an address that is created by using an operand value Indexing to an address table in memory is determined. Like branch instructions, branch instructions can be "unconditional" or have "conditional" character and will be "picked up" if they are unconditional or conditional and the specific condition is true is.
Ein Sprungbefehl unterscheidet sich vom Verzweigungsbefehl dadurch, daß es bei Sprungbefehlen möglich ist, die Zieladresse zu berechnen, auch wenn nur die Kodierung und der Platz des Befehls bekannt sind, während die Zieladresse bei Verzweigungsbefehlen in der Regel von einigen Datenwerten abhängt, die sich ändern können, wie der Inhalt eines Register- oder Speicherplatzes.A jump instruction differs from the branch instruction the fact that it is possible for jump commands, the destination address to calculate, even if only the coding and the space of the Command while the destination address is known Branch instructions usually depends on some data values, which can change like the content of a register or Storage space.
Bei Mikroprozessoren, die nicht über einen integrierten Cache- Speicher oder eine chipintegrierte Speicherverwaltungseinheit verfügen, sind die virtuelle Adressen aller Befehls- und Datenbezüge in der externen Schnittstelle des Mikroprozessors enthalten. Es ist daher eine einfache Sache, die durch den Mikroprozessor ausgeführte Befehlsfolge, extern zu verfolgen.For microprocessors that do not have an integrated cache Memory or an on-chip memory management unit are the virtual addresses of all command and Data references in the external interface of the microprocessor contain. It is therefore an easy thing to do through the Sequence of microprocessors executed to track externally.
Bei dem Mikroprozessor NS 32032 der National Semiconductor Corporation zum Beispiel wird der nächste Befehl nach der Ausführung eines aufgenommenen Sprung- oder Verzweigungsbefehls mit Hilfe eines speziellen Zustandscodes von der Zieladresse im Speicher gelesen. Der Mikroprozessor erzeugt auch ein Programmablaufzustands-Schnittstellensignal, wenn er mit der Ausführung eines neuen Befehls beginnt,. Daher ist es beim Mikroprozessor NS 32032 möglich, die Folge ausgeführter Befehle wie folgt zu überwachen:The National Semiconductor's NS 32032 microprocessor Corporation, for example, will be the next command after the Execution of a recorded jump or branch instruction with the help of a special status code from the destination address in the Read memory. The microprocessor also generates an Program run state interface signal when it is with the Execution of a new command begins. Therefore it is with Microprocessor NS 32032 possible, the sequence of executed commands monitor as follows:
- 1. Für jeden aufgenommenen Sprung- oder Verzweigungsbefehl steht die Zieladresse in der externen Schnittstelle zur Verfügung; 1. For each jump or branch instruction recorded the destination address is available in the external interface Disposal;
- 2. Nach der Ausführung des aufgenommenen Sprung- oder Verzweigungsbefehls wird das Programmablaufzustands- Schnittstellensignal überwacht, um die Befehlsfolge zu bestimmen, die an den fortlaufenden Speicheradressen bis zur Ausführung des nächsten aufgenommenen Sprung- oder der Verzweigung ausgeführt wurde; und2. After the execution of the recorded jump or Branch instruction is the program execution state Interface signal monitors to the command sequence determine the up to the consecutive memory addresses to execute the next recorded jump or the branch was executed; and
- 3. Datenlesen aus den Speicherstellen, die die Adressen der Ausnahmedienstprogramme speichern, werden in der externen Schnittstelle erkannt um festzustellen, wenn eine Ausnahme aufgetreten ist.3. Read data from the memory locations that contain the addresses of the Exception utilities are stored in the external interface detected to determine if an exception has occurred.
Bei einem dieser Erfindung zugrundeliegenden Mikroprozessor, mit integriertem Cachespeicher und schaltkreisintegrierter Speicherverwaltungseinheit sind zur Überwachung der Folge ausgeführter Befehle zwei Probleme zu lösen. Das erste besteht darin, daß, da angeforderten Befehle oder Daten in einem schaltkreisintegrierten Cache-Speicher gefunden werden können, nicht alle Speicherbezüge in der externen Schnittstelle des Mikrprozessors beobachtbar sind. Dieses ist darauf zurückzuführen, daß sich Speicherbezüge, die sich im internen Cache des Mikroprozessors befinden, ohne Bezug auf den externen Speicher durchgeführt werden. Das zweite begründet sich darauf, daß Speicherbezüge, die in der externen Schnittstelle des Mikroprozessors beobachtbar sind, eher virtuelle als physikalische Adressen sind. Der Grund dafür ist, daß die integrierte Speicherverwaltungseinheit die durch ein Ausführungsprogramm erzeugten virtuellen Adressen in physikalische Adressen umsetzt, die für den Speicherzugriff benötigt werden. In manchen Fällen wird keine 1 : 1 Umsetzung durchgeführt; d. h., mehr als eine virtuelle Adresse kann in eine einzige physikalische Adresse umgesetzt werden. In diesen Fällen ist es unmöglich, die virtuellen Adressen der Speicherbezüge für ein Ausführungsprogramm nur durch Beobachtung der physikalischen Adressen der Speicherbezüge in der externen Schnittstelle festzustellen.In a microprocessor on which this invention is based, with integrated cache memory and circuit integrated Memory management unit are used to monitor the sequence executed commands to solve two problems. The first is in that since commands or data requested are in one circuit-integrated cache memory can be found not all memory references in the external interface of the Microprocessor are observable. This is on it due to the fact that there are memory references that are in the internal Cache of the microprocessor are located without reference to the external Memory to be performed. The second is based on that memory references that are in the external interface of the Microprocessors are observable, more virtual than physical Addresses are. The reason for this is that the integrated Memory management unit by an execution program converts generated virtual addresses into physical addresses, which are required for memory access. In some cases no 1: 1 conversion is carried out; d. i.e., more than one virtual address can be in a single physical address be implemented. In these cases it is impossible to virtual addresses of the memory references for an execution program only by observing the physical addresses of the Determine memory references in the external interface.
Das Verfahren der vorliegenden Erfindung zur Lösung des im Vorhergehenden beschriebenen Problems umfaßt zwei Aspekte. Zum einen gibt ein zusätzliches Schnittstellensigal an, ob ein mit der Ausführung beginnender Befehl sequentiell oder nicht- sequentiell ist. Zweitens wird eine zusätzliche Information über die Schnittstellensignale erstellt, die für die externen Speicherbezüge benutzt werden.The method of the present invention for solving the im The problem described above involves two aspects. To the one indicates an additional interface signal, whether a with executing the command sequentially or not- is sequential. Second, additional information about the interface signals created for the external Memory references are used.
Das zusätzliche von dem in der folgenden Beschreibung erläuterten Mikroprozessor verwendete Schnittstellensignal ist das sogenannte "Internal Sequentiell Fetch" (interner sequentieller Abruf (ISF). Der Mikroprozessor aktiviert das ISF-Signal zusammen mit einem "Program Flow Status" (Programmablaufzustands-) Signal (PFS), sobald ein aufgenommener Sprung- oder Verzweigungsbefehl ausgeführt wird. Es ist damit möglich, den Steuerfluß zu überwachen, wenn ein Sprung- oder Verzweigungsbefehl ausgeführt wird. Wenn der Befehl aufgenommen wird, was durch die Aktivierung des ISF-Signals gekennzeichnet wird, wird die Steuerung auf einen Zielbefehl übertragen. Wird der Befehl nicht aufgenommen, was durch die Inaktivierung des ISF-Signals angezeigt wird, dann wird die Steuerung auf den nächsten sequentiellen Befehl im Speicher übertragen.The additional of that in the description below The interface signal used for the explained microprocessor is that So called "Internal Sequential Fetch" (internal sequential On Demand (ISF). The microprocessor activates the ISF signal together with a "Program Flow Status" signal (PFS) as soon as a jump or branch instruction is recorded is performed. It is thus possible to increase the tax flow monitor when a jump or branch instruction is executed becomes. If the command is picked up, what by activating of the ISF signal, the control is switched to a Transfer target command. If the command is not included, what is indicated by the deactivation of the ISF signal, then control to the next sequential command in memory transfer.
Weitere Informationen zur Überwachung des Steuerflusses werden in der externen Schnittstelle geliefert, wenn eine Ausnahme eintritt oder ein aufgenommener Verzweigungsbefehl ausgeführt wird. Tritt eine Ausnahme auf, dann zeigt der Mikroprozessor sowohl eine Kodierung an, aus der die Art der Ausnahme hervorgeht, als auch die virtuelle Adresse des Ausnahmedienstprogramms. Wenn ein aufgenommener Verzweigungsbefehl ausgeführt wird, zeigt der Mikroprozessor die virtuelle Adresse des Ziels der Verzweigung an.More information on monitoring tax flow will be provided delivered in the external interface if an exception occurs or a recorded branch instruction is executed becomes. If an exception occurs, the microprocessor shows both a code that shows the type of exception, as well as the virtual address of the exception utility. If a recorded branch instruction is executed, the Microprocessor the virtual address of the destination of the branch.
Die mit der vorliegenden Erfindung angebotene Lösung des Problems der Überwachung des Steuerflusses ist außerordentlich wirkungsvoll. Da nur ein neues Schnittstellensignal erforderlich ist, sind die Kosten niedrig. Da die Schnittstellensignale für die Speicherbezüge selten benutzt werden, sind Störungen mit den externen Bezügen des Mikroprozessors unwahrscheinlich, und die Leistung wird nur unbedeutend beeinflußt. Aufgenommene Verzweigungsbefehle nehmen typischerweise weniger als 10% der ausgeführten Befehle ein. In der Regel treten Ausnahmen mit einer Häufigkeit von weniger als 1 pro 100 Befehle auf. Daher hat die Verwendung von Schnittstellensignalen zur Erstellung zusätzlicher Informationen zur Überwachung des Steuerflusses nur geringe Auswirkungen auf die Leistung des Mikroprozessors.The solution offered by the present invention Control flow control problem is extraordinary effective. Because only a new interface signal is required is, the cost is low. Since the interface signals for the Memory references are rarely used, are malfunctions with the external references of the microprocessor are unlikely, and the Performance is only marginally affected. Recorded Branch instructions typically take less than 10% of the executed commands. As a rule, exceptions occur with a Frequency of less than 1 per 100 commands. Therefore, the Use of interface signals to create additional ones Control flow monitoring information little Impact on microprocessor performance.
Ausführungsbeispiele sind in der Zeichnung dargestellt:Exemplary embodiments are shown in the drawing:
Abb. 1 zeigt ein schematisches Blockdiagramm zur Darstellung der allgemeinen Architektur eines Mikroprozessors, der das dieser Erfindung zugrundeliegende Steuerflußüberwachungsverfahren nutzt. Fig. 1 shows a schematic block diagram to illustrate the general architecture of a microprocessor which uses the control flow monitoring method on which this invention is based.
Abb. 2 zeigt ein schematisches Diagramm zur Darstellung des Schnittstellensignals des hierin beschriebenen Mikroprozessors. Fig. 2 shows a schematic diagram to illustrate the interface signal of the microprocessor described herein.
Abb. 3 zeigt ein schematisches Blockdiagramm zur Darstellung der wichtigen Funktionseinheiten und Verknüpfungsbusse des hierin beschriebenen Mikroprozessors. Fig. 3 shows a schematic block diagram to illustrate the important functional units and link buses of the microprocessor described herein.
Abb. 4 zeigt ein schematisches Blockdiagramm zur Darstellung der Struktur des Befehls-Cache des hierin beschriebenen Mikroprozessors. Fig. 4 shows a schematic block diagram illustrating the structure of the instruction cache of the microprocessor described herein.
Abb. 5 zeigt ein schematisches Blockdiagramm zur Darstellung der Struktur des Daten-Cache des hierin beschriebenen Mikroprozessors. Fig. 5 shows a schematic block diagram to illustrate the structure of the data cache of the microprocessor described herein.
Abb. 6 zeigt ein Zeitablaufdiagramm zur Darstellung einer Zeitabfolge für den Zugriff zum Daten-Cache des hierin beschriebenen Mikroprozessors. Fig. 6 shows a timing diagram illustrating a time sequence for access to the data cache of the microprocessor described herein.
Abb. 7 zeigt ein Zeitablaufdiagramm zur Darstellung die die Beziehung zwischen den CLK-Eingangs- und den BUSCLK- Ausgangssignalen des hierin beschriebenen Mikroprozessors. Figure 7 is a timing diagram showing the relationship between the CLK input and BUSCLK outputs of the microprocessor described herein.
Abb. 8 zeigt ein Zeitablaufdiagramm zur Darstellung des einfachen Lesezyklus des hierin beschriebenen Mikroprozessors. Figure 8 shows a timing diagram illustrating the simple read cycle of the microprocessor described herein.
Abb. 9 zeigt ein Zeitablaufdiagramm zur Darstellung des einfachen Schreibzyklus des hierin beschriebenen Mikroprozessors. Figure 9 shows a timing diagram illustrating the simple write cycle of the microprocessor described herein.
Abb. 10 zeigt ein Zeitablaufdiagramm zur Darstellung eines Lesezyklus des hierin beschriebenen Mikroprozessors, der um zwei Wartezyklen erweitert wurde. Fig. 10 shows a timing diagram to illustrate a read cycle of the microprocessor described herein, which has been extended by two wait cycles.
Abb. 11 zeigt ein Zeitablaufdiagramm zur Darstellung einer Folge von Lesezyklen mit drei Übertragungen, die durch den hierin beschriebenen Mikroprozessor beendet wird. Figure 11 shows a timing diagram illustrating a sequence of three-transfer read cycles that is terminated by the microprocessor described herein.
Abb. 12 zeigt ein Zeitablaufdiagramm zur Darstellung einer durch das System beendeten Folge von Lesezyklen, wobei der Zyklus zwei Übertragungen aufweist, von denen die zweite durch einen Wartestatus erweitert wurde. Fig. 12 shows a timing diagram showing a sequence of read cycles ended by the system, the cycle comprising two transfers, the second of which has been extended by a wait status.
Abb. 13 zeigt ein schematisches Diagramm zur Darstellung der allgemeinen Struktur der 4stufigen Befehls-Pipeline des hierin beschriebenen Mikroprozessors. Figure 13 shows a schematic diagram illustrating the general structure of the 4-stage instruction pipeline of the microprocessor described herein.
Abb. 14 zeigt ein Zeitablaufdiagramm zur Darstellung des Zeitablaufs in einer Pipeline für einen Treffer im internen Daten- Cache. Fig. 14 shows a timing diagram to show the timing in a pipeline for a hit in the internal data cache.
Abb. 15 zeigt ein Zeitablaufdiagramm zur Darstellung des Zeitablaufs in einer Pipeline bei einem Fehlgriff im internen Daten-Cache. Fig. 15 shows a timing diagram to show the timing in a pipeline in the event of a mistake in the internal data cache.
Abb. 16 zeigt ein Zeitablaufdiagramm zur Darstellung der Auswirkung einer Verriegelung des Adressen-Registers auf die Zeitabfolge der Befehlspipeline. Fig. 16 shows a timing diagram to show the effect of locking the address register on the timing of the command pipeline.
Abb. 17 zeigt ein Zeitablaufdiagramm zur Darstellung der Auswirkung einer korrekten Voraussage eines im Betrieb des hierin beschriebenen Mikroprozessors aufzunehmenden Sprungbefehls. Figure 17 shows a timing diagram illustrating the effect of correctly predicting a jump instruction to be taken in the operation of the microprocessor described herein.
Abb. 18 zeigt ein Zeitablaufdiagramm zur Darstellung der Auswirkung einer unkorrekten Voraussage einer Auflösung eines im Betrieb des hierin beschriebenen Mikroprozessors aufzunehmenden Sprungbefehls. Fig. 18 shows a timing diagram to show the effect of an incorrect prediction of a resolution of a jump instruction to be taken in the operation of the microprocessor described herein.
Die Abb. 1 zeigt die Konfiguration eines Mikroprozessors (CPU) 10, der ein Verfahren zur Überwachung des Steuerflusses entsprechend der hier vorliegenden Erfindung umfaßt. Figure 1 shows the configuration of a microprocessor (CPU) 10 that includes a method for monitoring control flow in accordance with the present invention.
Die Zentraleinheit 10 leitet Buszyklen ein, um mit einem externen Speicher und mit anderen Geräten einer Rechnergruppe in Dialog zu treten, Befehle abzurufen, Daten zu lesen und zu schreiben, Gleitpunktoperationen durchzuführen und Ausnahmeanforderungen zu beantworten.The central unit 10 initiates bus cycles in order to enter into dialogue with an external memory and with other devices in a computer group, to call up commands, to read and write data, to carry out floating point operations and to respond to exception requests.
Die Zentraleinheit 10 umfaßt eine 4stufige Befehls-Pipeline 12, die in der Lage ist, mit einer Taktung von 20 MHz bis zu 10 MIPS (Millionen Befehle in der Sekunde) auszuführen. Darüber hinaus sind drei Speicherpuffer zusammen mit der Befehlspipeline 12 schaltkreisintegriert, die den hohen Bedarf der Pipeline 12 nach Befehlen und Daten unterstützen. Die Speicherpuffer beinhalten einen 512-Byte Befehls-Cache 14, einen 1024-Byte Daten- Cache 16 und einen 64-Eingangsumsetzpuffer, der sich in einer schaltkreisintegrierten Speicherverwaltungseinheit (MMU) 18. Die Hauptfunktionen der MMU 18 liegen in der Entscheidung über Anforderungen an Speicherbezüge und in der Umsetzung virtueller in physikalischen Adressen. Die Zentraleinheit 10 umfaßt auch eine integrierte Busschnittstelleneinheit (BIU) 220, die die Buszyklen der externen Bezüge steuern.The central processing unit 10 comprises a 4-stage instruction pipeline 12 , which is capable of executing up to 10 MIPS (millions of instructions per second) with a clock rate of 20 MHz. In addition, three memory buffers are integrated with the instruction pipeline 12 to support the high demand of the pipeline 12 for instructions and data. The memory buffers include a 512-byte instruction cache 14 , a 1024-byte data cache 16, and a 64-input conversion buffer that resides in an integrated memory management unit (MMU) 18 . The main functions of the MMU 18 lie in the decision about requirements for memory references and in the conversion of virtual into physical addresses. Central unit 10 also includes an integrated bus interface unit (BIU) 220 that controls the bus cycles of the external references.
Die Anordnung des Cache-Speichers und der Speicherverwaltungsfunktionen auf dem gleichen Chip mit der Befehlspipeline 12 ist ein kostengünstiges und leistungsstarkes Verfahren durch die Verbesserung der Speicherzugriffszeit und der Bandbreite für jede Mikroprozessoranwendung.Placing cache memory and memory management functions on the same chip with instruction pipeline 12 is an inexpensive and powerful technique by improving memory access time and bandwidth for any microprocessor application.
Die Zentraleinheit 10 ist auch mit den vorhandenen Peripheriegeräten, wie Unterbrechungssteuereinheit (ICU) 24 (z. B. NS 32202) kompatibel. Die ICU-Schnittstelle zur Zentraleinheit 10 ist vollständig asynchron, so daß die ICU 24 mit niedrigeren Frequenzen betrieben werden kann als die Zentraleinheit 10.The central processing unit 10 is also compatible with the existing peripheral devices, such as an interrupt control unit (ICU) 24 (eg NS 32202). The ICU interface to the central unit 10 is completely asynchronous, so that the ICU 24 can be operated at lower frequencies than the central unit 10 .
Die Zentraleinheit 10 beinhaltet seinen eigenen Zeitgeber. Eine Zeitsteuerung ist daher nicht erforderlich.The central processing unit 10 contains its own timer. Time control is therefore not necessary.
Die Zentraleinheit 10 unterstützt sowohl den externen Cache- Speicher 25 als auch einen "Bus-Überwachungs"-Schaltkreis 26, der, wie im weiteren beschrieben, die Kohärenz des internen Cache- Speichers unterstützt.The central processing unit 10 supports both the external cache memory 25 and a "bus monitoring" circuit 26 which, as described below, supports the coherence of the internal cache memory.
Wie in der Abb. 2 dargestellt, hat die Zentraleinheit 10 114 Schnittstellensignale für die Bus-Zeitfolge und -Steuerung, Cache-Steuerung, Ausnahmeanforderung und andere Funktionen. Die folgende Liste stellt die Schnittstellensignalfunktionen der Zentraleinheit 10 zusammen:As shown in Fig. 2, the CPU 10 114 has interface signals for bus timing and control, cache control, exception request, and other functions. The following list summarizes the interface signal functions of the central unit 10 :
Gebündelte Bestätigung (untenaktives Signal).
Wenn zur Beantwortung einer angeforderten
Mehrfachdatenübertragung aktiviert, gibt
dieses Signal an, daß der Speicher Zyklen mit
Mehrfachdatenübertragung unterstützt.Bundled confirmation (bottom active signal).
When enabled to respond to a requested multiple data transfer, this signal indicates that the memory supports multiple data transfer cycles.
Bus-Fehler (untenaktives Signal).
Meldet der Zentraleinheit 10, daß während des
laufenden Buszyklus ein Fehler erkannt wurde.Bus error (signal active below).
Reports the central unit 10 that an error was detected during the current bus cycle.
Bus-Wiederholung (untenaktives Signal).
Meldet der Zentraleinheit 10, daß der
laufende Buszyklus zu wiederholen ist.Bus repetition (signal active below).
Reports the central unit 10 that the current bus cycle is to be repeated.
BW0-BW1Busbreite (2 kodierte Leitungen).
Diese Leitungen bestimmen die Busbreite (8, 16
oder 32 Bits) für jede Datenübertragung.
(Siehe Tafel 1)BW0-BW1 bus width (2 coded lines).
These lines determine the bus width (8, 16 or 32 bits) for each data transfer.
(See table 1)
CIA0-CIA6Cache-Ungültigkeitsadresse (7 kodierte
Leitungen).
Die Cache-Ungültigkeitsadresse liegt auf dem
CIA-Bus. Die Tafel 2 zeigt die für jeden der
internen Cache-Speicher der Zentraleinheit 10
relevanten CIA-Leitungen.
CIICache-Speicherinhibierung Ein (obenaktives
Signal).
Meldet der Zentraleinheit 10, daß der
Speicherabzug des laufenden Buszyklus nicht
kaschierbar ist.
Freigabe der Cache-Ungültigkeit.
Eingabe, durch die festgelegt wird, ob die
externe Ungültigkeit des Cache-Speichers oder
Testbetrieb angesteuert wurden.
CLKTaktgeber
Eingabe-Taktgeber zur Ableitung aller
Zeitfolgen für die Zentraleinheit 10.
Fehlerbeseitigungsanforderung (fallende
Flanke aktiviert).
Durch Übergang dieses Signals von Hoch auf
Niedrig wird der Trap (DBG) ausgelöst.
Halterung (intenaktives Signal)
Fordert die Zentraleinheit 10 auf, den Bus für
die direkte Speicherzugriffeinheit (DMA) oder
das Mehrprozessorsystem freizugeben.
Unterbrechung (untenaktives Signal)
Maskierbare Unterbrechungsanforderung
Ungültigmachen eines Satzes (untenaktives
Signal).
Untenaktiv wird nur ein Satz im
schaltkreisintegrierten Cache-Speicher
ungültig; obenaktiv wird der ganze Cache-
Speicher ungültig.
Ungültigmachen eines Daten-Cache
(untenaktives Signal).
Untenaktiv findet eine Ungültigmachung im
Daten-Cache statt.
Ungültigmachen eines Befehls-Cache
(untenaktives Signal).
Untenaktiv findet eine Ungültigmachung im
Befehls-Cache statt.
E/A-Decodierung (untenaktives Signal).
Meldet der Zentraleinheit 10, daß ein
Peripheriegerät durch den laufenden Buszyklus
adressiert wird.
Nichtmaskierbare Unterbrechung (fallende
Flanke aktiviert).
Durch den Übergang des Signals von oben nach
unten wird eine nichtmaskierbare
Unterbrechung angefordert.
RDYBereit (obenaktives Signal).
Solange dieses Signal inaktiv ist, erweitert
die Zentraleinheit 10 den laufenden Buszyklus
zur Unterstützung eines langsamen Speichers
oder Peripheriegerätes.
Rücksetzen (untenaktives Signal).
Löst die Rücksetzung von Ausnahmen zur
Initialisierung der Zentraleinheit 10 aus.
Nebengerät fertig (untenaktives Signal).
Meldet der Zentraleinheit 10, daß ein
Nebenprozessor die Ausführung eines Befehls
beendet hat.
Slacetrap (untenaktives Signal).
Meldet der Zentraleinheit 10, daß ein Slave-
Prozessor während der Ausführung eines Befehls
eine Trap-Bedingung erkannt hat.
Ausgangs-Signale
A0-A31Adreß-Bus (3stufig, 32 Leitungen).
Überträgt die 32-Bit Adresse während eines
Buszyklus. A0 überträgt das niederwertigste
Bit.
Auslöseimpuls für Adreßübergabe (untenaktives
Signal, 3stufig).
Meldet, daß der Buszyklus begonnen hat und daß
sich eine gültige Adresse auf dem Adreßbus
befindet.
Byte-Freigabe (untenaktives Signal, 3stufig,
4 Leitungen).
Signale zur Freigabe der Übertragung auf jedes
Byte im Datenbus, wie in der Tafel 3
dargestellt.
Meldet, daß der laufende Buszyklus gültig ist,
d. h. daß der Buszyklus nicht gestrichen wurde;
eher im Buszyklus verfügbar als .Bedingter Programmstopp (untenaktives
Signal).
Meldet, daß die Zentraleinheit 10 eine
Fehlersuchbedingung erkannt hat.Anforderung einer Mehrfachdatenübertragung
(untenaktives Signal, 3stufig).
Meldet, daß die Zentraleinheit 10 die
Durchführung einer Mehrfachdatenübertragung
anfordert.
BUSCLKBus-Taktgeber.
Ausgabe-Taktgeber für die Buszeitfolge.
CASECCache-Bereich (3stufig).
Für kaschierbare Datenlese-Buszyklen
Zeigt den Bereich des schaltkreisintegrierten
Daten-Cache 18 an, in dem die Daten angeordnet
werden.
CIOInhibierung des Cache-Speichers (obenaktives
Signal).
Hinweis durch die Zentraleinheit 10, daß der
Speicherbezug des laufenden Buszyklus nicht
kaschierbar ist; gesteuert durch das CI-Bit
im Stufe-2 Seitentafeleintrag.
Bestätigung des Buszyklus (untenaktives
Signal, 3stufig).Meldet, daß ein durch ausgelöster
Buszyklus gültig ist; d. h. daß der Buszyklus
nicht gestrichen wurde.
Datenrichtung Ein (untenaktives Signal, 3-
stufig).
Zeigt die Übertragungsrichtung von Daten auf
dem Datenbus an; untenaktiv während eines
Buszyklus zeigt an, daß die Zentraleinheit 10
Daten liest, obenaktiv während eines
Buszyklus zeigt an, daß die Zentraleinheit 10
Daten schreibt.
Bestätigung des Stopps (untenaktives Signal).
Aktiviert durch die Zentraleinheit 10 als
Antwort auf die 1--Eingabe, um anzuzeigen,
daß die Zentraleinheit 10 den Bus freigegeben
hat.
Verriegelter Buszyklus (untenaktives Signal).
Meldet, daß eine Folge von Buszyklen mit
Verriegelungsschutz läuft.
E/A Inhibierung (untenaktives Signal).
Meldet, daß der laufende Buszyklus ignoriert
werden sollte, wenn ein Peripheriegerät
angesprochen wird.
Interner sequentieller Abruf.Zeigt gleichzeitig mit dem -Signal an, daß
der mit der Ausführung beginnende Befehl
sequentiell (ISF = untenaktiv) bzw. nicht-
sequentiell ( = obenaktiv) ist.
Programmablaufstatus (untenaktives Signal).
Ein Impuls an dieses Signal zeigt den Beginn
der Ausführung jedes Befehls an.
Slave-Prozessorsteuerung (untenaktives
Signal).
Daten-Strobe für die Slave-Prozessor-
Buszyklen.
ST0-ST4Status (5 kodierte Leitungen).
Buszyklus-Statuscode; STO ist das
niederwertigste Bit. Die Kodierung wird in der
Tafel 4 dargestellt.
U/Benutzer/Kontrollprogramm (3stufig).
Zeigt Benutzer- (U/ = obenaktiv) bzw.
Kontrollbetrieb (U/ = untenaktiv) an.
Dialog-Signale
D0-D31Daten-Bus (3stufig, 32 Leitungen).
Überträgt 8, 16 oder 32 Datenbits während
eines Buszyklus. D0 überträgt das
niederwertige Bit.
- 1. Wenn der Mikroprozessor eine Ausnahme wahrnimmt, wird die Steuerung auf den ersten Befehl des entsprechenden Dienstprogramms für diese Art der Ausnahme übertragen. Abhängig von der Definition der Operation des Mikroprozessors sind Adresse und Speicher des Ausnahmedienstprogramms entweder festgelegt oder werden in einer Tabelle mit den Adressen solcher Dienstprogramme gefunden;
- 2. Führt der Mikroprozessor einen aufgenommenen Sprungbefehl aus, dann wird die Steuerung auf den Befehl übertragen, dessen Adresse im Speicher durch Addition des Versetzwertes im Sprungbefehl und der Adresse des Sprungbefehls berechnet wird;
- 3. Führt der Mikroprozessor einen aufgenommenen Verzweigungsbefehl aus, dann wird die Steuerung auf den Befehl übertragen, dessen Adresse im Speicher grundsätzlich entsprechend der Definition dieses einzelnen Befehls berechnet wird, und
- 4. Wenn der Mikroprozessor einen Befehl ausführt und keine der oben beschriebenen Regeln zutrifft, wird die Steuerung auf den Befehl übertragen, dessen Adresse im Speicher unmittelbar der des ausgeführten Befehls folgt.
Lesen der Quelloperanden, falls vorhanden;
Berechnen der Ergebnisse;
Schreiben der Ergebnisoperanden, falls vorhanden;
Änderung der Fehlermarkierungen, falls erforderlich; und
Aktualisierung des Befehlszählers. In den meisten Fällen führt die Zentraleinheit 10 Befehle durch Abarbeitung der oben aufgeführten Operationen in einer strikten Folge zunächst für einen Befehl aus, um erst dann mit dem nächsten Befehl zu beginnen. Wie oben beschrieben, können jedoch Ausnahmen die Folge von Operationen zur Ausführung eines Befehls oder zum Übergang von einem Befehl auf den nächsten ändern. Ebenso, bei einer erweiterten Leistung, überlappt die Zentraleinheit 10 die Operationen zur Ausführung einiger Befehle in Parallelbearbeitung. Die folgenden Ausführungen erläutern die Auswirkungen von Ausnahmen in der Pipeline 12 auf die Befehlsausführung. Im folgenden werden abgelesene Adressen aus dem Speicher zur Berechnung der effektiven Adressen für speicherbezogene und externe Adressierarten als Quelloperanden angesehen, auch wenn die effektive Adresse für einen Operanden mit schreibfähigem Zugriff (with access class of write) berechnet wird. Die Zentraleinheit 10 prüft an verschiedenen Stellen während der Befehlsausführung auf Ausnahmen. Wird eine Ausnahme wahrgenommen, dann endet der in der Ausführung befindliche Befehl auf eine von vier möglichen Arten: er wird abgeschlossen, angehalten, beendet oder teilweise beendet. Jede der vier Ausnahmearten führt zu einer eigenen Beendigung. Wird eine Ausnahme nach abgeschlossener Durchführung eines Befehls wahrgenommen, hat die Zentraleinheit 10 alle Operationen für diesen Befehl und für alle anderen nach dem Auftreten der letzten Ausnahme ausgeführten Befehle ausgeführt. Ergebnisoperanden wurden geschrieben, Fehlermarkierungen wurden geändert und der auf dem Unterbrechungsstapel gespeicherte Befehlszählerwert enthält die Adresse des nächsten auszuführenden Befehls. Das Ausnahmedienstprogramm kann bei seinem Abschluß einen entsprechenden Rücksprungbefehl ausführen, worauf die Zentraleinheit 10 mit der Ausführung des dem abgeschlossenen Befehl folgenden Befehls beginnt. Ein Befehl wird angehalten, wenn während der Ausführung des Befehls einer der unterschiedlichen Trap-Zustände oder ein wiederanlauffähiger Bus-Fehler wahrgenommen wird. Ein ausgesetzter Befehl wurde nicht abgeschlossen, jedoch wurden alle anderen nach dem Auftritt der letzten Ausnahme ausgeführten Befehle abgeschlossen. Die Ergebnis-Operanden und durch den Befehl auszuführenden Markierungen können geändert worden sein, jedoch können nur solche Änderungen auftreten, die die erneute Ausführung und den Abschluß des Befehls ermöglichen. Bei bestimmten Ausnahmen (z. B. Bus-Fehlern und Abbrüchen, nichtdefinierter Befehl und unzulässige Operationsmarkierungen) hebt die Zentraleinheit 10 die entsprechende Steuermarkierung im Programmstatusregister auf, bevor die Kopie sichergestellt wird, die auf den Unterbrechungsstapel geschoben wird. Der auf dem Unterbrechungsstapel sichergestellte Befehlszählerwert enthält die Adresse des ausgesetzten Befehls. Ein RESTORE-Befehl zum Beispiel nimmt bis zu acht allgemeine Register vom Stapel. Wird auf einem der Bezüge auf dem Stapel eine ungültige Seitentabellen-Eingabe wahrgenommen, wird der Befehl ausgesetzt. Die allgemeinen Register, die durch den Befehl geladen werden sollen, können geändert worden sein, aber der Stapelzeiger zeigt immer noch den Wert, den er hatte, als dieser Befehl begann. Zum Abschluß eines ausgesetzten Befehls geht das Ausnahmedienstprogramm nach einem von zwei möglichen Vorgängen vor:
- 1. Das Dienstprogramm kann die Ausführung der ausgesetzten Befehle simulieren. Nach der Berechnung und dem Schreiben der Befehlsergebnisse werden die auf dem Unterbrechungsstapel gespeicherte Markierungen in der Kopie des Programmstatusregisters geändert, und der auf dem Unterbrechungsstapel gespeicherte Befehlszählerwert wird aktualisiert, um auf den nächsten auszuführenden Befehl zu zeigen. Das Dienstprogramm führt dann einen entsprechenden Rücksprungbefehl aus, und die Zentraleinheit 10 beginnt mit der Ausführung des dem ausgesetzten Befehl folgenden Befehls. Dieser Vorgang findet dann statt, wenn die Gleitpunktbefehle durch die Software solcher Systeme simuliert werden, die keine Hardware-Gleitpunkteinheit haben.
- 2. Ein ausgesetzter Befehl kann erneut ausgeführt werden, nachdem das Dienstprogramm den Trap-Zustand beseitigt hat, der zur Aussetzung des Befehls führte. Das Dienstprogramm führt bei seiner Beendigung einen entsprechenden Rücksprungbefehl aus. Hiernach beginnt die Zentraleinheit 10 erneut mit der Ausführung des ausgesetzten Befehls.
- 1. Speicherverzögerungen durch Cache- und Übertragungspuffer- Verfehlungen und nicht-ausgerichtete Bezüge.
- 2. Ressourcen-Konkurrenz zwischen Zuständen der Befehls- Pipeline 12.
- 3. Sprünge oder andere nicht-sequentielle Befehlsabrufe.
- 4. Komplexe Adressier-Modi, wie skalierter Index und komplexe Operationen, wie Teilung.
The cache invalidation address is on the CIA bus. Table 2 shows that for each of the internal cache memory of the central processing unit10th relevant CIA lines.
CIICache memory inhibition On (active above Signal).
Reports the central unit10th, that the Deduction of the current bus cycle not is concealable. Cache invalidation released.
Input that determines whether the external cache invalid or Test operation were triggered. CLK clock
Input clock to derive all Time sequences for the central unit10th. Troubleshooting request (falling Edge activated).
By transitioning this signal from high to The trap (DBG) is triggered low. Bracket (active signal) Asks the central unit10th on the bus for the direct memory access unit (DMA) or release the multiprocessor system. Interruption (signal active below)
Maskable interrupt request Invalidate a sentence (bottom active Signal).
Only one sentence in the bottom becomes active Integrated cache memory invalid; the whole cache becomes active Memory invalid. Invalidate a data cache (active signal below).
Below active an invalidation takes place in the Data cache instead. Invalidate an instruction cache (active signal below).
Below active an invalidation takes place in the Command cache instead. I / O decoding (bottom active signal).
Reports the central unit10th, the existence Peripheral device through the current bus cycle is addressed. Unmaskable interruption (falling Edge activated).
By moving the signal from the top to the top below will be an unmaskable Interruption requested. RDY Ready (top active signal).
As long as this signal is inactive, extended the central unit10th the current bus cycle to support slow memory or peripheral device. Reset (signal active below).
Resets exception exceptions Initialization of the central unit10th out. Secondary device finished (active signal below).
Reports the central unit10th, the existence Auxiliary processor executing a command has ended. Slacetrap (active signal below).
Reports the central unit10ththat a slave Processor while executing an instruction has detected a trap condition. Output signals A0-A31 Address bus (3-stage, 32 lines).
Transmits the 32-bit address during a Bus cycle. A0 transmits the least significant Bit. Trigger for address transfer (bottom active Signal, 3-stage).
Reports that the bus cycle has started and that a valid address on the address bus located. Byte enable (bottom active signal, 3 levels, 4 lines).
Signals to release transmission to everyone Bytes in the data bus, as in Table 3 shown.
Reports that the current bus cycle is valid, d. H. that the bus cycle has not been canceled; available in the bus cycle rather than a conditional program stop (bottom active Signal).
Reports that the central processing unit10th a Detected troubleshooting condition Request multiple data transfer (bottom active signal, 3 levels).
Reports that the central processing unit10th the Execution of a multiple data transfer requests. BUSCLKBus clock.
Output clock for the bus time sequence. CASECCache area (3 levels).
For concealable data reading bus cycles
Shows the area of the integrated circuit Data cache18th where the data is arranged will. CIOInhibition of the cache memory (top active Signal).
Information from the central unit10th, that the Memory reference of the current bus cycle is not is concealable; controlled by the CI bit in level 2 side panel entry. Confirmation of the bus cycle (bottom active Signal, 3-stage). Reports that a triggered by Bus cycle is valid; d. H. that the bus cycle was not deleted. Data direction On (bottom active signal, 3- staged).
Shows the direction of data transfer the data bus; down active during a Bus cycle indicates that the central processing unit10th Reads data, top active during a Bus cycle indicates that the central processing unit10th Writes data. Confirmation of the stop (bottom active signal).
Activated by the central unit10th as Answer to the 1 input to indicate that the central unit10th released the bus Has. Locked bus cycle (active signal below).
Reports that a sequence of bus cycles with Locking protection is running. I / O inhibition (bottom active signal).
Reports that the current bus cycle is ignored should be if a peripheral is addressed. Internal sequential polling. Simultaneously with the signal indicates that the command that begins execution sequential (ISF = bottom active) or non- is sequential (= top active). Program execution status (bottom active signal).
A pulse at this signal shows the beginning execution of each command. Slave processor control (bottom active Signal).
Data strobe for the slave processor Bus cycles. ST0-ST4 status (5 coded lines).
Bus cycle status code; STO is that least significant bit. The coding is in the Table 4 shown. U / user / control program (3-stage).
Shows user (U / = top active) or Control mode (U / = bottom active) on. Dialogue signals D0-D31 data bus (3-stage, 32 lines).
Transmits 8, 16 or 32 bits of data during of a bus cycle. D0 transmits that least significant bit.
- 1. If the microprocessor encounters an exception, control is transferred to the first command from the appropriate utility for that type of exception. Depending on the definition of the operation of the microprocessor, the address and memory of the exception utility are either fixed or are found in a table with the addresses of such utilities;
- 2. If the microprocessor executes a recorded jump command, control is transferred to the command, the address of which is calculated in the memory by adding the offset value in the jump command and the address of the jump command;
- 3. If the microprocessor executes a branch instruction that has been recorded, control is transferred to the instruction whose address in the memory is generally calculated in accordance with the definition of this individual instruction, and
- 4. If the microprocessor executes a command and none of the rules described above apply, control is transferred to the command whose address in memory immediately follows that of the command being executed.
Reading the source operands, if available;
Computing the results;
Writing the result operands, if available;
Change of error markings if necessary; and
Command counter update. In most cases, the central unit runs10th Commands by processing the operations listed above in one strict follow first for an order, only then with the next command to begin. As described above, however Exceptions are the sequence of operations to execute a command or to change from one command to the next. Likewise, with an expanded performance, the overlaps Central unit10th the operations to execute some commands in parallel processing. The following explanations explain the effects of Exceptions in the pipeline12 on the command execution. in the the following are read addresses from the memory Calculation of the effective addresses for memory-related and external addressing types are regarded as source operands, even if the effective address for an operand with writable access (with access class of write) is calculated. The central unit10th checks at various points during command execution on exceptions. Will be an exception perceived, then the command being executed ends in one of four possible ways: it is completed, stopped, ended or partially ended. Each of the four Exception types lead to their own termination. If an exception occurs after a Perceived command, the central unit10th all operations for this command and for all others after the appearance of the commands executed last exception. Result operands were written, error marks were made changed and the one saved on the interrupt stack Command counter value contains the address of the next to be executed Command. The exception utility may complete upon completion execute an appropriate return command, whereupon the Central unit10th with the execution of the completed Command following command begins. A command is paused if, while the Command one of the different trap states or a restartable bus error is perceived. A suspended command was not completed, however all were others executed after the last exception occurred Commands completed. The result operands and by the instruction Markings to be performed may have been changed, however only such changes can occur that the rerun and enable the completion of the command. With certain exceptions (e.g. bus errors and aborts, undefined command and illegal operation markings) the central unit lifts10th the corresponding tax mark in the program status register, before ensuring the copy that is on the Interrupt stack is pushed. The one on the Interrupt Stack Ensured Command Counter Value contains the Address of the suspended command. For example, a RESTORE command takes up to eight general ones Register from the stack. Will be on one of the covers on the stack invalid page table entry is detected, the command exposed. The general register by the command may have been changed, but the Stack pointer still shows the value it had than this Command began. At the end of a suspended command that works Exception utility after one of two possible operations in front:
- 1. The utility can simulate the execution of the suspended commands. After the computation and writing of the command results, the marks stored on the interrupt stack in the copy of the program status register are changed and the instruction counter value stored on the interrupt stack is updated to point to the next command to be executed. The utility then executes an appropriate return command and the CPU 10 begins executing the command following the command that was suspended. This process takes place when the floating point commands are simulated by the software of systems that do not have a hardware floating point unit.
- 2. A suspended command can be rerun after the utility clears the trap that caused the command to be suspended. The utility executes a return command upon termination. After this, the central unit 10 starts again to execute the suspended command.
- 1. Memory delays due to cache and transfer buffer misses and misaligned references.
- 2. Resource competition between states of the instruction pipeline 12 .
- 3. Jumps or other non-sequential instruction fetches.
- 4. Complex addressing modes like scaled index and complex operations like division.
Claims (16)
Anzeige der Information in der Schnittstelle, aus der hervorgeht, wenn ein aufgenommener Verzweigungsbefehl ausgeführt wird, oder eine Ausnahme eintritt.10. A method for monitoring the sequence of commands executed by the central processing unit with an external interface, comprising the following functions: generating an interface signal which indicates whether a command whose execution is starting is sequential or non-sequential; and
Displays the information on the interface that indicates when a recorded branch instruction is being executed or when an exception occurs.
- (a) Erzeugung eines Schnittstellensignals für die
Ausführung eines Sprungbefehls, wobei das
Schnittstellensignal bei einem aufgenommenen Sprung einen
ersten Status und bei einem nicht aufgenommenen Sprung einen
zweiten Status hat und,
- (i) im ersten Status, die Steuerung der Zentraleinheit auf einen Zielbefehl mit einer durch Dekodieren und die Adresseninformation des Sprungbefehls berechneten Adresse übertragen wird und
- (ii) im zweiten Status, die Steuerung der Zentraleinheit auf den nächsten sequentiellen einem Sprungbefehl folgenden Befehl übertragen wird und
- (b) Anzeige der Meldung in der Schnittstelle für die
Ausführung eines aufgenommenen Verzweigungsbefehls oder für
den Auftritt einer Ausnahme so, daß
- (i) beim Auftreten einer Ausnahme ein Kode die Art der Ausnahme und die Speicherstelle eines entsprechenden Ausnahmedienstprogramms nennt; und
- (ii) bei der Ausführung eines aufgenommenen Verzweigungsbefehls, die Speicherstelle des Verzweigungsbefehls angezeigt wird.
- (a) generation of an interface signal for the execution of a jump instruction, the interface signal having a first status when a jump is recorded and a second status when a jump is not recorded, and,
- (i) in the first status, the control of the central unit is transferred to a target command with an address calculated by decoding and the address information of the jump command and
- (ii) in the second status, the control of the central unit is transferred to the next sequential command following a jump command and
- (b) Displaying the message in the interface for the execution of a branch instruction received or for the occurrence of an exception such that
- (i) when an exception occurs, a code identifies the type of exception and the location of a corresponding exception utility; and
- (ii) when executing a picked branch instruction, the location of the branch instruction is displayed.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US600987A | 1987-01-22 | 1987-01-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3740762A1 true DE3740762A1 (en) | 1988-08-04 |
Family
ID=21718831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873740762 Withdrawn DE3740762A1 (en) | 1987-01-22 | 1987-12-02 | DATA PROCESSING SYSTEM WITH AN EXTERNAL INTERFACE |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPS63193239A (en) |
DE (1) | DE3740762A1 (en) |
GB (1) | GB2200482B (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69127992T2 (en) * | 1990-04-20 | 1998-06-04 | Hitachi Ltd | Microprocessor for inserting a bus cycle to provide information for an emulation |
GB9114975D0 (en) * | 1991-07-11 | 1991-08-28 | Int Computers Ltd | Monitoring a computer system |
JPH0528002A (en) * | 1991-07-24 | 1993-02-05 | Nec Corp | Microprocessor |
JPH05257710A (en) * | 1991-08-12 | 1993-10-08 | Advanced Micro Devicds Inc | System for giving internal execution parameter and array for verifying instruction to be executed by processor |
EP0530816A3 (en) * | 1991-09-04 | 1993-09-15 | Nec Corporation | Microprocessor with cache memory and trace analyzer therefor |
EP0569987A1 (en) * | 1992-05-13 | 1993-11-18 | Nec Corporation | Microprocessor incorporating cache memory enabling efficient debugging |
GB2273184B (en) * | 1992-12-05 | 1996-11-20 | Motorola Inc | A cache processor and a method for observing program flow in a cache processor |
US5473754A (en) * | 1993-11-23 | 1995-12-05 | Rockwell International Corporation | Branch decision encoding scheme |
JP2752592B2 (en) * | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | Microprocessor, signal transmission method between microprocessor and debug tool, and tracing method |
EP0720093B1 (en) * | 1994-12-28 | 2001-11-14 | Kabushiki Kaisha Toshiba | Microprocessor and debug system |
US5964893A (en) * | 1995-08-30 | 1999-10-12 | Motorola, Inc. | Data processing system for performing a trace function and method therefor |
GB2459652B (en) * | 2008-04-28 | 2010-09-22 | Imagination Tech Ltd | Controlling instruction scheduling based on the space in a trace buffer |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4422141A (en) * | 1979-07-30 | 1983-12-20 | Bell Telephone Laboratories, Incorporated | Microprocessor architecture for improved chip testability |
US4604691A (en) * | 1982-09-07 | 1986-08-05 | Nippon Electric Co., Ltd. | Data processing system having branch instruction prefetching performance |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2246863C3 (en) * | 1972-09-23 | 1979-01-11 | Ibm Deutschland Gmbh, 7000 Stuttgart | Device for logging the program sequence in a data processing system |
DE2432024A1 (en) * | 1974-07-03 | 1976-01-22 | Siemens Ag | PROCEDURE FOR OPERATING A DATA PROCESSING SYSTEM |
JPS59133610A (en) * | 1983-01-19 | 1984-08-01 | Omron Tateisi Electronics Co | Programmable controller |
EP0199009A3 (en) * | 1985-02-28 | 1989-05-31 | Kabushiki Kaisha Toshiba | Path coverage measuring system in a programme |
JPS61264447A (en) * | 1985-05-20 | 1986-11-22 | Hitachi Ltd | Recording device for instruction execution event |
-
1987
- 1987-12-02 DE DE19873740762 patent/DE3740762A1/en not_active Withdrawn
- 1987-12-16 GB GB8729325A patent/GB2200482B/en not_active Expired - Fee Related
-
1988
- 1988-01-21 JP JP63011833A patent/JPS63193239A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4422141A (en) * | 1979-07-30 | 1983-12-20 | Bell Telephone Laboratories, Incorporated | Microprocessor architecture for improved chip testability |
US4604691A (en) * | 1982-09-07 | 1986-08-05 | Nippon Electric Co., Ltd. | Data processing system having branch instruction prefetching performance |
Also Published As
Publication number | Publication date |
---|---|
GB8729325D0 (en) | 1988-01-27 |
GB2200482A (en) | 1988-08-03 |
GB2200482B (en) | 1991-09-04 |
JPS63193239A (en) | 1988-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69701141T2 (en) | MULTITHREADED MICROPROCESSOR DESIGNED TO EXECUTE INTERRUPT PROCESSING ROUTINES AS THREADS | |
DE69331448T2 (en) | Data processor with a cache memory | |
DE3801361A1 (en) | METHOD AND DEVICE FOR DETECTING AND FOR THE SPECIAL TREATMENT OF MEMORY-MAPPED INPUT / OUTPUT REFERENCES IN A PIPELINEMICROPROCESSOR | |
DE69737423T2 (en) | METHOD AND DEVICE FOR REPLICATING DATA STORAGE IN AN ADVANCED MICROPROCESSOR | |
DE69633166T2 (en) | INTEGRATED CIRCUIT WITH MULTIPLE FUNCTIONS AND THE COMMON USE OF SEVERAL INTERNAL SIGNAL BUSS TO DISTRIBUTE THE CONTROL OF BUS ACCESS AND ARBITRATION | |
DE112007000812B4 (en) | ONE MEMORY DEVICE WITH THREE LOGICS, METHOD FOR PERFORMING THE METHOD STEPS OF THE ONE MEMORY, ONE PROCESSOR DEVICE AND SYSTEM FOR PROVIDING AN EFFICIENT MECHANISM FOR TRANSACTIONAL MEMORY EXECUTIONS IN OUT-OF-ORDER PROCESSORS | |
DE69427734T2 (en) | Linearly addressed microprocessor cache | |
DE69031433T2 (en) | Memory access exception handling for pre-read command words in the command line of a computer with virtual memory | |
DE10296989B4 (en) | Multi-thread processor with the capability of an implicit multi-thread execution of a one-thread program | |
DE69327288T2 (en) | Method and system for maintaining address translation cache coherency of a multiprocessor system | |
DE69329778T2 (en) | SYSTEM AND METHOD FOR HANDLING LOADS AND / OR STORES IN A SUPER-SCALAR MICROPROCESSOR | |
DE60308201T2 (en) | DATA PROCESSING SYSTEM WITH EXTERNAL AND INTERNAL INSTRUCTIONS | |
DE3789345T2 (en) | Enhanced floating point operations to support emulation of source instruction executions. | |
DE3851488T2 (en) | Register management system with disorderly execution of instructions in a computer processor. | |
DE112011101364B4 (en) | Troubleshooting multithreaded code | |
DE3687866T2 (en) | SYSTEM FOR MANAGING A NUMBER OF COMMON INTERRUPTION TREATMENT ROUTINES IN A DATA STRUCTURE WITH LINKED LISTS. | |
DE68923490T2 (en) | Checkpoint repeat system. | |
DE3586899T2 (en) | INSTRUCTION PREVENTION SYSTEM FOR CONDITIONAL JUMP COMMANDS IN A CENTRAL PROCESSING DEVICE. | |
DE69901176T2 (en) | COMPUTER SYSTEM WITH AN EMULATION COPROCESSOR AND METHOD FOR EMULATING AN APPLICATION PROGRAM | |
DE69031183T2 (en) | Method and arrangement for controlling the conversion of virtual addresses into physical addresses in a computer system | |
DE68927492T2 (en) | Method and device for the simultaneous distribution of commands to several functional units | |
DE69715328T2 (en) | System and method for parallelizing the execution of memory transactions using multiple memory models | |
DE69130858T2 (en) | Overlapping series processing | |
DE69231197T2 (en) | Method and device for an improved memory architecture | |
DE60115976T2 (en) | Computer system and interrupt process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |