DE69616917T2 - Datenprozessor mit eingebauter Emulationsschaltung - Google Patents
Datenprozessor mit eingebauter EmulationsschaltungInfo
- Publication number
- DE69616917T2 DE69616917T2 DE69616917T DE69616917T DE69616917T2 DE 69616917 T2 DE69616917 T2 DE 69616917T2 DE 69616917 T DE69616917 T DE 69616917T DE 69616917 T DE69616917 T DE 69616917T DE 69616917 T2 DE69616917 T2 DE 69616917T2
- Authority
- DE
- Germany
- Prior art keywords
- breakpoint
- value
- signal
- data
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 137
- 238000011161 development Methods 0.000 claims description 104
- 238000000034 method Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 105
- 230000018109 developmental process Effects 0.000 description 97
- 230000006870 function Effects 0.000 description 80
- 230000001960 triggered effect Effects 0.000 description 21
- 230000004044 response Effects 0.000 description 19
- 238000012546 transfer Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000000873 masking effect Effects 0.000 description 7
- 230000002950 deficient Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000004020 conductor Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007958 sleep Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 244000144730 Amygdalus persica Species 0.000 description 2
- 235000006040 Prunus persica var persica Nutrition 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102100029363 Cytochrome P450 2C19 Human genes 0.000 description 1
- 101000919361 Homo sapiens Cytochrome P450 2C19 Proteins 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003797 telogen phase Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
- Die vorliegende Erfindung bezieht sich allgemein auf ein Datenverarbeitungssystem und insbesondere auf einen Datenprozessor und ein Verfahren zum Ausführen einer Debug- Funktion in einem Datenverarbeitungssystem.
- Wenn ein Datenverarbeitungssystem nicht so arbeitet, wie es ausgelegt wurde, können verschiedene Analyseverfahren angewendet werden, um die Fehlerquelle festzustellen. Im allgemeinen werden Ablaufverfolgungsfunktionen und Breakpoint- Funktionen im Datenverarbeitungssystem implementiert, um defekte Schaltungen aufzuspüren und fehlerhafte Softwareprogramme zu korrigieren.
- Mit Ablaufverfolgungsfunktionen kann ein externer Anwender Zwischenresultate der Ausführung einer Datenverarbeitungsoperation beobachten. Ablaufverfolgungsfunktionen liefern im allgemeinen den Status eines ausgewählten Registers und Speichers im Datenverarbeitungssystem, nachdem eine Anweisung oder eine vorgegebene Anzahl von Anweisungen eines Softwareprogramms vom Datenverarbeitungssystem ausgeführt wurde. Durch Betrachten des Status ausgewählter Register und Speicher liefert die Ablaufverfolgungsfunktion dem externen Anwender sehr ausführliche Informationen über die interne Ausführung der Programmierung eines Datenprozessors oder eines Datenverarbeitungssystems. Mit diesen Informationen können viele Fehlerarten bestimmt und dann korrigiert werden. Breakpoint- Funktionen stellen ebenfalls ein Verfahren zum Feststellen und Isolieren von fehlerhaften Softwarecodes oder von defekten Schaltungen in einem Datenverarbeitungssystem dar. Eine Breakpoint- Funktion wird dann aktiv, wenn ein vorbestimmtes Ereignis auftritt, das eine Unterbrechung bei einem Softwareprogramm verursacht. Die Daten werden dann ausgelesen, um den Status des Softwareprogramms zu bestimmen. Wie bei der Ablaufverfolgungsfunktion kann der externe Anwender bei der Breakpoint- Funktion den Status jedes der ausgewählten Register und Speicher feststellen und so Fehler bei der Datenverarbeitung identifizieren.
- Sowohl die Ablaufverfolgungsfunktion als auch die Breakpoint- Funktion wurden bei gegenwärtig verfügbaren Datenverarbeitungssystemen integriert, um die oben beschriebenen Isoliexungs- und Identifikationsmöglichkeiten zur Verfügung zu stellen. Der Mikroprozessor i960 Jx der Firma INTEL in Santa Clara, Kalifornien, ist beispielsweise eine integrierte Mikroprozessorschaltung mit internen Breakpoint- Registern, die Ablaufverfolgungsereignisse erzeugen und Fehler verfolgen. Bei dem Mikroprozessor i960 Jx sind die internen Breakpoint- Register für Programm- Interrupts entweder bei einer Adresse einer Befehlsausführung oder bei Adressen der verschiedenen Arten von Datenzugriffen vorgesehen. Um die Ablaufverfolgungsmöglichkeiten des Mikroprozessors i960 Jx zu nutzen, muss die Software, die auf dem Mikroprozessor läuft, Fehlerbehandlungsroutinen enthalten oder mit einem Debug- Überwachungsprogramm verbunden sein. Außerdem wird eine Software benötigt, um die verschiedenen Registersteuerbits zu verändern, um die verschiedenen Betriebsarten der Ablaufverfolgung freizugeben und um die Ablaufverfolgungsfunktion entweder freizugeben oder zu sperren.
- Ebenso ist der Mikroprozessor 80468 der Firma INTEL in Santa Clara, Kalifornien, eine integrierte Mikroprozessorschaltung mit internen Breakpoint- Registern, die Ablaufverfolgungsfunktionen ausführen kann. Bei dem Mikroprozessor 80468 ist eine Breakpoint- Anweisung für interne Software- Debug- Einrichtungen implementiert, wolbei die interne Software einfach auf die auf dem Datenverarbeitungssystem laufende Software verweist. Im allgemeine n Betrieb kann ein Software- Debug- Programm die Breakpoint- Anweisung bei allen gewünschten Breakpoints ausführen, die von der Art des ausgeführten Software- Codes abhängen. Der Mikroprozessor 80486 enthält auch einen Mechanismus zum Implementieren einer Single- Step- Trap- Funktion, die einen Interrupt ausführt, wenn die Trap- Routine ausgeführt wurde.
- Während die Breakpoint- und Ablaufverfolgungsfunktionen in dem Mikroprozessor i960 Jx und dem Mikroprozessor 80486 integriert sind, müssen jedoch bei einem Debug diese Mikroprozessoren den normalen Betrieb unterbrechen und in eine besondere Debug- Exception- Routine eina reten. Bei der Debug- Exception- Routine arbeiten die Mikroprozessoren nicht wie beim normalen Betrieb, und daher kann es sein, dass die Schaltungs- oder Softwarefehler nicht wie dort auftreten. Daher wird ein externer Anwender bei diesen Mikroprozessoren den Grund des Fehlers nicht finden und isolieren können, wenn der Fehler tatsächlich nur in Echtzeitsituation auftritt.
- Außerdem benötigt sowohl der Mikroprozessor i960x als auch der Mikroprozessor 80486 ein internes Software- Debug- Programm, mit dem der Mikroprozessor bei den Breakpoint- und Ablaufverfolgungsfunktionen das Programm steuert. Durch eine solche Debug- Steuerung wird die Ausführung des Debugs sehr beeinträchtigt, da sie eine erhebliche zusätzliche Kapazität erfordert. Außerdem kann es auch sein, dass eine Debug- Software eine fehlerhafte Schaltung oder Sequenz beim Versagen des Mikroprozessors nicht wirklich findet.
- Es wird daher ein Datenprozessor sowohl mit Echtzeit- Ablaufverfolgungs- als auch mit Echtzeit- Debug- Funktionen benötigt. Wenn sowohl die Ablaufverfolgungs- als auch die Debug- Funktionen auf eine Weise ausgeführt werden, die den Betrieb des Datenprozessors beim normalen Betrieb und nicht bei einem besonderen Debug- Betriebszustand wiedergibt, kann der externe Anwender Fehler in der Schaltung und in der Software des Datenprozessors genauer identifizieren und korrigieren.
- EP - A 0 636 976 (D1) beschreibt die relevante Technik, die Grundlage der vorliegenden Erfindung ist, anhand eines gängigen Gerätes bzw. Verfahrens für den Zugriff auf den Inhalt eines Speicherplatzes in einem Mikroprozessor mit einem boundary- scan- Standardschnittstellen- (JTAG-) Test.
- Gemäß einem ersten Aspekt der Erfindung wird ein Datenprozessor nach Anspruch 1 geschaffen.
- Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Ausführen einer Debug- Operation in einem Datenprozessor nach Anspruch 7 angegeben.
- Fig. 1 zeigt ein Blockdiagramm eines Datenverarbeitungssystems.
- Fig. 2 zeigt das Blockdiagramm eines Teils eines Debug- Moduls des Datenverarbeitungssystems nach Fig. 1.
- Fig. 3 zeigt ein Blockdiagramm einer Breakpoint- Schaltung des Debug- Moduls nach Fig. 2.
- Fig. 4 zeigt ein Blockdiagramm mehrerer Steuerregister des Debug- Moduls nach Fig. 2.
- Fig. 5 zeigt ein Blockdiagramm mehrerer Hardware- Breakpoint- Register nach Fig. 2.
- Fig. 6 zeigt ein Blockdiagramm eines Address- Attribute- Breakpoint- Registers der mehreren Hardware- Breakpoint- Register nach Fig. 5.
- Fig. 7 zeigt ein Blockdiagramm eines Trigger- Definition- Registers unter den mehreren Steuerregistern nach Fig. 4.
- Fig. 8 zeigt ein Blockdiagramm eines Konfigurationsstatusregisters von mehreren Steuerregistern nach Fig. 4.
- Fig. 9 zeigt eine Tabelle einer Ausgabe mehrerer Breakpoint- Signale des Debug- Moduls nach Fig. 2.
- Fig. 10 zeigt tabellarisch die Ausgabe von mehreren Prozessorstatussignalen des Debug- Moduls nach Fig. 2.
- Fig. 11 zeigt graphisch ein Beispiel für die Taktabstimmung in der Pipeline.
- Fig. 12 zeigt ein Blockdiagramm eines Abschnitts einer Zentralprozessoreinheit des Datenverarbeitungssystems nach Fig. 1.
- Ein Datenverarbeitungssystem kann sowohl Breakpoint- als auch Ablaufverfolgungsfunktionen in Echtzeit und ohne dass ein spezieller Betriebszustand dafür nötig ist bereitstellen. Außerdem kann sowohl eine Breakpoint- als auch eine Ablaufverfolgungsfunktion vom Datenverarbeitungssystem ausgeführt werden, ohne dass Adress- und Dateninformationen eines Datenprozessors über einen externen Adressbus oder einen externen Datenbus abgefragt werden müssen. Wegen dieser Unabhängigkeit von externen Bussen, kann ein Debug- Mechanismus bei unterschiedlichen Datenverarbeitungssystemen unabhängig von ihrer Größe, ihrem Typ, ihrem Protokoll und sogar auch ohne externen Bus effizient durchgeführt werden.
- Außerdem werden durch die Architektur und die Verfahrensweise Ablaufverfolgungs- und Breakpoint- Funktionen in Echtzeit implementiert. Der getestete Datenprozessor muss nicht anhalten oder seinen Betrieb ändern, bevor Ablaufverfolgungs- und Breakpoint- Funktionen ausgeführt werden. Daher kann ein externer Anwender Fehler isolieren, während der Datenprozessor normal arbeitet und sich nicht in einem speziellen Betrieb für Debug- Operationen befindet. Außerdem erhält der externe Anwender die Daten direkt bei der Ausführung einer Echtzeit- Ablaufverfolgungs- oder Echtzeit- Debug- Operation. Anders als bei dem Stand der Technik, bei dem entweder ein externes Software- Beobachtungsprogramm oder eine externe Emulation benötigt werden, um eine Abläufverfolgungsfunktion oder eine Debug- Funktion auszuführen, erhält der externe Anwender Daten, die die aktuelle Operation des Datenprozessors anzeigen. Damit ergeben sich Ablaufverfolgungs- und Debug- Funktionen, ohne wesentlich in den Datenprozessor eingreifen oder ihn stören zu müssen. Der Betrieb bei einer solchen Architektur und Verfahrensweise wird im folgenden ausführlicher erläutert.
- Aus der folgenden Erläuterung ergeben sich Anschlussmöglichkeiten und Betrieb einer Ausführungsform eines Datenverarbeitungssystems im einzelnen.
- In der folgenden Beschreibung wird der Ausdruck "Bus" für mehrere Signale oder Leiter verwendet, mit denen eine oder verschiedene Arten von Informationen, wie etwa Daten, Adressen, die Steuerung oder der Status, übermittelt werden können. Mit den Ausdrücken "Setzen" oder "Negieren" wird das Ändern eines Signals, eines Statusbits oder einer vergleichbaren Größe in ihren logisch wahren bzw. logisch falschen Zustand bezeichnet. Wenn der logisch wahre Zustand einen logischen Pegel Eins hat, hat der logisch falsche Zustand den logischen Pegel Null. Wenn der logisch wahre Zustand jedoch den logischen Pegel Null hat, hat der logisch falsche Zustand den logischen Pegel Eins.
- Außerdem zeigt das Symbol "$" vor einer Zahl an, dass die Zahl in ihrer hexadezimalen Form oder zur Basis Sechzehn dargestellt ist. Das Symbol "%" vor einer Zahl zeigt an, dass die Zahl in ihrer binären Form oder zur Basis Zwei dargestellt ist.
- Fig. 1 zeigt ein Datenverarbeitungssystem 5. Das Datenverarbeitungssystem 5 umfasst einen Datenprozessor 3 und ein externes Entwicklungssystem 7. Der Datenprozessor 3 enthält einen Systembus- Controller 8, einen Kern 9, ein Untermodul 12, ein Untermodul 13, ein Hauptmodul 14 und ein Debug- Modul 10. Der Systembus- Controller 8 wird über einen E- Bus mit einer (hier nicht gezeigten) externen Vorrichtung verbunden. Der Systembus- Controller 8 wird über einen S- Bus mit dem Untermodul 12 und dem Untermodul 13 verbunden. Der S- Bus ist ein Untermodulbus. Der Systembus- Controller 8 wird über einen M- Bus 23 mit dem Kern. 9 und dem Hauptmodul 14 verbunden. Der M- Bus 23 ist ein Hauptmodulbus.
- Der Kern 9 umfasst die Zentralprozessoreinheit (CPU) 2, Speicherverwaltungseinheit (MMU)/Controller 4 und einen Speicher 6. Die Zentralprozessoreinheit 2, der MMU/ Controller 4, der Speicher 6 und das Debug- Modul 10 sind jeweils miteinander über einen K- Bus 25 verbunden. Sowohl die Zentralprozessoreinheit 2 als auch der Speicher 6 sind ebenfalls direkt mit der MMU/Controller 4 verbunden. Der MMU/Controller 4 liefert Informationen über einen M- Bus 23 an einen übrigen Teil des Datenverarbeitungssystems 5. Die Zentralprozessoreinheit 2 wird mit dem Debug- Modul 10 verbunden, um ein CPST- Signal zu liefern und ein Stall- Signal zu empfangen. Die CPU 2 empfängt außerdem von einer externen Vorrichtung ein Reset- Signal. Das Debug- Modul 10 liefert ein Processor- status- (PST-) Signal, ein Debug- data- (DDATA-) Signal und ein serielles Development- serial- data- out- (DSDO-) Signal für einen externen Anwender. Das Debug- Modul 10 empfängt ein serielles Development - serial- data- in- (DSDI-) Signal, ein serielles Development- serialclock- (DSCLK-) und ein Breakpoint- ( -) Signal von einer (hier nicht gezeigten) Vorrichtungr die sich außerhalb des Datenverarbeitungssystems 5 befindet.
- Fig. 2 zeigt ein Debug- Modul 10 im einzelnen. Das Debug- Modul 10 enthält eine Steuerschalt ung 20, eine serielle Schnittstelle 30, ein Register 32, mehrere Steuerregister 40, mehrere Hardware- Breakpoint- Register 50, eine Steuerschaltung 60, eine FIFO 70, mehrere Multiplexer 80 und eine Breakpoint- Schaltung 100.
- Die Steuerschaltung 20 erhält das - Signal über einen (in Fig. 2 nicht im einzelnen gezeigten) externen Anschluss der integrierten Schaltung. Die Steuerschaltung 20 ist mit den mehreren Steuerregistern 40 verbunden, um ein Statussignal mit mehreren Bits zu erhalten. Die Steuerschaltung 20 ist mit der Breakpoint- Schaltung 100 verbunden, um ein Breakpoint - Signal mit mehreren Bits einzulesen. Die Steuerschaltung 20 ist mit der Steuerschaltung 60 verbunden, um ein Ablaufverfolgungssignal mit mehreren Bits auszugeben. Die Steuerschaltung 20 ist über einen Steuerbus 15 mit den mehreren Steuerregistern 40, den mehreren Hardware- Breakpoint- Registern 50 und mit dem Register 32 verbunden. Die Steuerschaltung 20 liefert mehrere Breakpoint- Steuersignale und ein Bus- Request- Signal an die CPLJ 2. Die Steuerschaltung 20 empfängt außerdem ein Bus- Grant- Signal von der CPU 2.
- Die mehreren Steuerregister 40 empfangen vom Register 32 ein serielles Informationssignal mit mehreren Bits. Die mehreren Steuerregister 40 liefern ein Konfigurationssignal mit mehreren Bits an die Steuerschaltung 60. Die Breakpoint- Schaltung 100 empfängt ein KADDR- (K- Adress-) Signal und ein KDATA- Signal vom K- Bus 25. Die mehreren Hardware- Breakpoint- Register 50 liefern auch ein internes Daten- Signal mit mehreren Bits an das Register 32. Der K- Bus 25 steht außerdem auch den mehreren Hardware- Breakpoint- Registern 50 zur Verfügung. Man beachte, dass der K- Bus 25 zusammengesetzt ist aus dem KADDR- Signal, dem KDATA- Signal und einem KCONTROL- Signal. Sowohl das KADDR-, das KDATA- als auch das KCONTROL- Signal werden in die Breakpoint- Schaltung 100 eingegeben.
- Die serielle Schnittstelle 30 empfängt das DSDI- und das DSCLK- Signal von einem ersten bzw. zweiten Anschluss der integrierten Schaltung. Die serielle Schnittstelle 30 liefert das DSDO- Signal an einen dritten Anschluss der integrierten Schaltung. Die serielle Schnittstelle 30 ist mit dem Register 32 verbunden. Das Register 32 ist mit den mehreren Steuerregistern 40 und mit den mehreren. Hardware- Breakpoint- Registern 50 verbunden, um ein serielles Informationssignal mit mehreren Bits auszugeben.
- Die Steuerschaltung 60 gibt ein Stall- Signal an die CPU 2 aus. Die Steuerschaltung 60 gibt außerdem ein FIFO- Steuersignal an den FIFO 70 und ein Mux- Steuersignal an die mehreren Multiplexer 80 aus. Der FIFO 70 ist mit dem K- Bus 25 verbunden, um das KADDR- und das KDATA- Signal zu empfangen. Der FIFO 70 ist für die Ausgabe eines FIFIO- Signals außerdem mit den mehreren Multiplexern 80 verbunden. Der FIFO 70 gibt außerdem ein Full- Signal an die Steuerschaltung 60 aus. Die mehreren Multiplexer 80 empfangen von der CPU 2 ein CPST- Signal. Die mehreren Multiplexer 80 geben das DDATA- und das PST- Signal aus.
- Die Steuerschaltung 20 liefert die Signale, die nötig sind, um die serielle Schnittstelle 30 zu betreiben und um das Speichern von Informationen im Register 32 zu steuern. Sobald das Register 32 mit Daten geladen ist, leitet die Steuerschaltung 20 eine Übertragung dieser Daten zu einem geeigneten Ziel ein, das sich entweder in der Steuerschaltung 40 oder in den mehreren Hardware- Breakpoint- Registern 50 befindet. Die Steuerfunktion, die von der Steuerschaltung 20 ausgeführt wird, wird über den Steuerbus 15 übertragen. Neben dem Steuern der Ladeoperationen empfängt die Steuerschaltung 20 Statusinformationen von der Steuerschaltung 40 und Breakpoint - Informationen von der Breakpoint- Schaltung 100. Die Steuerschaltung 20 verwendet sowohl die Statusinformationen als auch die Breakpoint- Informationen, um ein Bus- Reguest- Signal, die Breakpoint- Steuersignale und das Ablaufverfolgungssignal zu erzeugen.
- Fig. 3 zeigt die Breakpoint- Schaltung 100 im einzelnen. Die Breakpoint- Schaltung 100 umfasst ein Address- Breakpoint- High- Register (ABHR) 110, ein Address- Breakpoint- Low- Register (ABLR) 120, einen. Komparator 130, einen Komparator 140, ein Data- Breakpoint- Mask- Register (DBMR) 150, ein Data- Breakpoint- Register (DER) 160, ein Temporärdatenregister 170, einen Komparator 180, ein Program- Counter- Breakpoint- Mask- Register (PBMR) 190, ein Program- Counter- Breakpoint- Register (PBR) 115, ein Temporärprogrammzähler- (PC-) Register 125 und einen Komparator 135.
- Der Steuerbus 15 wird mit einem Eingang des ABHR 110, des ABLR 120, des DBMR 150, des DBR 160, des PBMR 190 sowie des PHR 115 verbunden. Das serielle Informationssignal liegt an einem Eingang des ABHR 110, des ABhR 120, des DBMR 150 sowie des DBR 160 an. Das KCONTROL- Signal wird mit einem Eingang des PBMR 190, des PBR 115 sowie des Temporär- PC- Registers 125 verbunden. An einem ersten Ausgang des ABHR 110 liegt das KADDR- Signal an. Der Steuerbus 15 wird außerdem mit den Temporärregistern 170 und 125 verbunden. Das serielle Informationssignal wird mit dem ersten Eingang des Komparators 130 verbunden. Das KADDR- Signal liegt am zweiten Eingang des Komparators 130 an. Das ABLR 120 liegt am ersten Eingang des Komparators 140 und das KADDR- Signal liegt am zweiten Einfang des Komparators 140 an. Sowohl der Ausgang des Komparators 130 als auch der Ausgang des Komparators 140 ist mit dem Breakpoint- Signalleiter verbunden.
- Ein Ausgang des DBMR 150 ist mit einem Enable- Eingang des Komparators 180 verbunden. Ein Ausgang des DBR 160 ist mit einem ersten Eingang des Komparators 180 verbunden. Das KDATA- Signal liegt an einem Eingang des Temporärdatenregisters 170 an. Ein Ausgang des Temporärdatenregisters 170 ist mit einem zweiten Eingang des Komparators 180 und mit dem internen Datensignal verbunden. Ein Ausgang des Komparators 180 ist mit dem Breakpoint- Signalleiter verbunden.
- Ein Ausgang des PBMR 190 ist mit einem Enable- Eingang des Komparators 135 verbunden. Ein Ausgang des PBR 115 ist mit einem ersten Eingang des Komparators 135 verbunden. Das KCONTROL- Signal liegt an einem Eingang des Temporärprogrammzählerregisters 125 an. Ein Ausgang des Temporär- PC- Registers 135 ist mit einem zweiten Eingang des Komparators 135 verbunden. Ein Ausgang des Komparators 135 ist mit dem Breakpoint- Signalleiter verbunden.
- Fig. 12 zeigt einen Teil der Zentralprozessoreinheit 2 im einzelnen. Der Teil der Zentralprozessoreinheit 2 umfasst eine Anweisungsanforderung- Pipeline (TFP) 210 und eine Operandenausführung- Pipeline (OEP) 220. Die IFP 210 umfasst eine Anweisungsadresserzeugungsschaltung 202, eine Anweisungsanforderungsschaltung 204 und einen FIFO- Anweisungspuffer 206. Die OEP 220 umfasst eine Operandenanforderungsschaltung 212 und eine Adresserzeugungsschaltung 214.
- Der Ausgang der Anweisungsadresserzeugungsschaltung 202 ist mit einem ersten Eingang des Puffers 208 verbunden. Der Ausgang der Anweisungsanforderungsschaltung 204 ist sowohl mit dem FTFO- Anweisungspuffer 206 als auch mit der Operandenanforderungsschaltung 212 verbunden. Der Ausgang des FIFO- Anweisungspuffers 206 ist mit der Operandenanforderungsschaltung 212 verbunden. Ein erster Ausgang der Adresserzeugungsschaltung 214 ist mit einem zweiten Eingang des Puffers 208 verbunden. Ein zweiter Ausgang der Adresserzeugungsschaltung 214 ist mit dem Puffer 216 verbunden.
- Ein erster Ausgang des Puffers 216 wird mit der Operandenanforderungsschaltung 212 und mit der Anweisungsanforderungsschaltung 204 verbunden. Ein zweiter Ausgang des Puffers 216 gibt das KDATA- Signal aus. Das KDATA- Signal wird außerdem für den Puffer 216 bereitgestellt. Der Ausgang des Puffers 208 liefert das KADDR- Signal.
- Fig. 4 zeigt einen Teil unter den mehreren Steuerregistern 40 im einzelnen. Der Teil unter den mehreren Steuerregistern 40 enthält ein Trigger- Definition- Register (TDR) und ein Konfigurations- /Statusregister (CSR).
- Das TDR speichert eine Konfiguration des Debug- Moduls 10 und gibt die Steuerung für ausgewählte Funktionen aus, die bei vorbestimmten Bedingungen ausgeführt werden. Ein Trigger kann als ein- oder zweistufiger Trigger konfiguriert werden, wobei die Bits 31 bis 16 einen einstufigen Trigger und die Bits 15 bis 0 einen zweistufigen Trigger bilden. Wenn der Trigger als zweistufiger Trigger konfiguriert ist, entspricht die Arbeitsweise des Triggers einem Bedingungselement. Wenn zum Beispiel eine erste Bedingung oder Stufe des Triggers erfüllt ist, dann muss eine zweite Bedingung oder Stufe erfüllt sein, bevor der Trigger die Ausführung einer Breakpoint- Funktion im Datenverarbeitungssystem 5 freigibt. Anders ausgedrückt:
- Wenn die 1. Bedingung erfüllt ist, dann, wenn die 2. Bedingung erfüllt ist, dann TRIGGER.
- Die Funktion aller Bits im TDR wird im folgenden erläutert.
- Fig. 7 zeigt das TDR im einzelnen. Das PCI- Bit des TDR ist ein Program- Counter- Breakpoint- Invert- Bit. Wenn das PCI- Bit gesetzt ist, wird ein Programmzähler- Breakpoint außerhalb eines Bereichs, der vom Program- Counter- Breakpoint- (PBR-) und vom Program- Counter- Breakpoint- Mask- (PBMR-) Register festgelegt wird, ausgelöst. Wenn das PCI- Bit negiert ist, wird ein Programmzähler- Breakpoint in einem vom PBR und vom PBMR festgelegten Bereich festgelegt.
- Ein gesetztes Enable- Program- Counter- Breakpoint- (EPC-) Bit gibt selektiv die Abhängig keit des Triggers von den Programmzähler- Breakpoints PBR und PBMR frei. Wenn das EPC- Bit negiert ist, wird der Programmzähler- Breakpoint gesperrt.
- Wenn das Enable- Address- Breakpoint- Low- (EAL-) Bit gesetzt ist, gibt es eine Adresse als Breakpoint- Trigger frei, die im ABLR des Address- Breakpoint- Registers der mehreren Hardware- Breakpoint- Register 50 gespeichert ist. Wenn das EAL- Bit gesetzt ist, wird der Breakpoint ausgelöst, wenn ein über das KADDR- Signal übertragener Adresswert mit dem im ABLR des Address- Breakpoint- Registers gespeicherten Adresswert übereinstimmt.
- Wenn das Enable- Address- Breakpoint- Range- (EAR-) Bit gesetzt ist, kann ein Breakpoint in einem inklusiven Bereich, der vom ABLR und dem ABHR des Address- Breakpoint- Registers der mehreren Hardware- Breakpoint- Register 50 festgelegt wird, ausgelöst werden. Wenn daher das EAR- Bit gesetzt ist, wird der Breakpoint ausgelöst, wenn ein über das KADDR- Signal übertragener Adresswert in dem von den im ABLR und ABHR der Address- Breakpoint- Register gespeicherten Adresswerten festgelegten Bereich liegt.
- Wenn das Enable- Address- Breakpoint- Inverted- (EAI-) Bit gesetzt ist, kann ein Breakpoint in einem Adressbereich ausgelöst werden, der exklusiv oder außerhalb des vom ABLR und dem ABHR der Address- Breakpoint- Register der mehreren Hardware- Breakpoint- Register 50 festgelegten Bereichs liegt. Wenn das EAI- Bit gesetzt ist, wird der Breakpoint ausgelöst, wenn ein über das KADDR- Signal übertragener Adresswert kleiner als ein im ABLR des Address- Breakpoint- Registers oder größer als ein im ABHR des Address- Breakpoint- Registers gespeicherter Wert ist.
- Ein gesetztes Data- Breakpoint- Invert- (DI-) Bit invertiert den logischen Wert von mehreren Data- Breakpoint- Komparatoren. Das DI- Bit kann verwendet werden, um einen Trigger in Abhängigkeit von einem Datenwert zu entwickeln, der nicht mit einem im DBR der mehreren Hardware- Breakpoint- Register 50 einprogrammierten Wert übereinstimmt.
- Wenn ein Enable- Data- Breakpoint- for- the- Upper- Data- Byte- (EDUU-) Bit gesetzt ist, kann ein Data- Breakpoint- Trigger auf der Grundlage der Bits einunddreißig bis vierundzwanzig eines Datenwerts, der mit dem KDATA- Signal über den K- Bus 25 übertragen wird, ausgelöst werden. Ebenso gibt ein gesetztes Enable- Data- Breakpoint- for- the- Upper- Middle- Data- Byte- (EDMU-) Bit einen Data- Breakpoint- Trigger auf der Grundlage der Bits dreiundzwanzig bis sechzehn eines Datenwerts frei, der vom KD.~TA- Signal über den K- Bus 25 übertragen wird. Ebenso gibt ein gesetztes Enable- Data- Breakpoint- for- the- Lower- Middle- Data- Byte- (EDLM-) Bit einen Data- Breakpoint- Trigger auf der Grundlage der Bits fünfzehn bis acht eines mit dem KDATA- Signal über den K- Bus 25 übertragenen Datenwerts frei. Außerdem gibt ein gesetztes Enable- Data- Breakpoint- for- the- Lower- Lower- Data- Byte- (EDLL-) Bit einen Data- Breakpoint- Trigger auf der Grundlage der Bits acht bis Null eines mit dem KDATA- Signal über den K- Bus 25 übertragenen Datenwerts frei.
- Ein gesetztes Enable- Data- Breakpoint- for- the- Upper- Data- Word- (EDWU-) Bit gibt einen Data- Breakpoint- Trigger auf der Grundlage der Bits einunddreißig bis sechzehn eines mit dem KDATA- Signal über den K- Bus 25 übertragenen Datenwerts frei. Ein gesetztes Enable- Data- Breakpoint- forthe- Lower- Data- Word- (EDWL-) Bit gibt einen Data- Breakpoint- Trigger auf der Grundlage der Bits fünfzehn bis Null eines mit dem KDATA- Signal über den K- Bus 25 übertragenen Datenwerts frei.
- Ein gesetztes Enable- Data- Breakpoint for- the- Data- Longword- (EDLW-) Bit gibt einen Data- Breakpoint- Trigger auf der Grundlage der Bits einunddreißig bis null eines mit dem KDATA- Signal über den K- Bus 25 übertragenen Datenwerts frei. Man beachte, dass das Setzen eines der EDUU-, EDUM-, EDLL-, EDWU-, EDWL- und des EDLW- Bits den Data- Breakpoint- Trigger freigibt. Es ist allgemein nötig, dass die vorgegebene Bedingung eintritt, bevor der Data- Breakpoint tatsächlich ausgelöst wird. Wenn alle der EDUU-, EDUM-, EDLM-, EDLL-, EDWU-, EDWL- und EDLW- Bits negiert sind, ist der Data- Breakpoint- Trigger in einer Ausführungsform gesperrt.
- Außerdem beachte man, dass Data- Breakpoint- Trigger erzeugt werden können, wenn Operandenreferenzen falsch oder gar nicht ausgerichtet sind. Wenn die Operandenreferenzen falsch oder nicht ausgerichtet sind, wird der Breakpoint- Trigger folgendermaßen erzeugt: Bei Verweisen mit der Größe eines Bytes wird eine geeignete Menge von Datenbits als Funktion der zwei Bits niedriger Ordnung der Operandenadresse programmiert. Zum Beispiel:
- wenn KADDR [1 : 0] = 00, dann wird KDATA [31 : 24] programmiert;
- wenn KADDR [1 : 0] = 01, dann wird KDATA [23 : 16] programmiert;
- wenn KADDR [1 : 0] = 10, dann wird KDATA [15 : 8] programmiert;
- wenn KADDR [1 : 0] = 11, dann wird KDATA [7 : 0] programmiert.
- Für Verweise mit Wortgröße werden entweder die Bits ein- unddreißig bis sechzehn oder die Bits fünfzehn bis Null des mit dem KDATA- Signal übertragenen Datenwerts als Funktion von Bit Eins des KADDR- Signals programmiert. Wenn das erste Bit des KADDR- Signal den logischen Wert Null hat, sind die Bits einunddreißig bis sechzehn programmiert. Wenn das erste Bit des KADDR- Signal den logischen Wert Eins hat, sind die Bits fünfzehn bis null programmiert. Für Verweise auf lange Worte sind die Bits einunddreißig bis null programmiert.
- Ein gesetztes Enable- Breakpoint- Level- (EBL-) Bit dient als globales Enable eines Breakpoint- Triggers. Wenn das EBL- Signal nicht gesetzt ist, werden alle Breakpoint- Trigger gesperrt.
- Ein Trigger- Response- Control- (TRC-) Wert bestimmt, auf welche Weise das Datenverarbeitungssystem 5 auf eine erfüllte Trigger- Bedingung reagiert. Der Trigger- Response wird einem externen Anwender über das I)DATA- Signal angezeigt, das über mehrere Anschlüsse der integrierten Schaltung ausgegeben wird. Wenn der TRC- Wert den Wert %O1 hat, wird bei der Erfüllung einer Hardware- Breakpoint- Bedingung, die von der Breakpoint- Schaltung 100 erfasst wurde, die Steuerschaltung 20 freigegeben, das Breakpoint- Signal für die CPU 2 zu setzen. Wenn des Breakpoint- Signal gesetzt ist, hält die CPU 2 die normale Ausführung der Datenverarbeitungsanweisungen an einer Stelle an, an der unterbrochen werden kann. Wenn der TRC- Wert den logischen Wert %10 hat und eine Hardware- Breakpoint- Bedingung erfüllt ist, setzt die Steuerschaltung 20 ein Debug- Interrupt- Signal für die CPU 2. Wenn das Debug- Interrupt- Signal gesetzt ist, unterbricht die CPU 2 ihre normale Ausführung an einer Stelle, an der unterbrochen werden kann, und führt eine vorbestimmte Exception- Verarbeitungsroutine aus.
- Fig. 8 zeigt das Konfigurationsstatusregister (CSR) im einzelnen. Das CSR legt die Betriebskonfiguration der CPU 2, des MMU/Controllers 4, des Speichers 6 und des Debug- Moduls 10 des Datenverarbeitungssystems 5 fest. Außer dem Festlegen der Konfiguration des Datenverarbeitungssystems 5 enthält das CSR Statusinformationen, die den Zustand der Breakpoint- Schaltung 100 anzeigen.
- Man beachte, dass das CSR gelöscht wird, wenn das Datenverarbeitungssystem zurückgesetzt wird. Außerdem kann das CSR von einem externen Entwicklungssystem 7 gelesen und beschrieben werden, wenn das Datenverarbeitungssystem im Debug- Hintergrundbetriebszustand ist. Der Debug- Hintergrundbetriebszustand wird im folgenden ausführlicher beschrieben.
- Die Funktion jedes Bits im CSR wird im folgenden ausführlicher erläutert.
- Wie in Fig. 7 dargestellt wird, ernthält das CSR ein Breakpoint- Status- (Status-) Feld, das fest gespeicherte Statusinformationen über Hardware- Breakpoint- Funktionen im Datenverarbeitungssystem 5 festlegt und ausgibt. Die im Breakpoint- Statusfeld gespeicherten Informationen werden von den mehreren Steuerregistern 40 in Abhängigkeit von den von der Breakpoint- Schaltung 100 gelieferten Breakpoint- Trigger- Informationen erzeugt. Die im Statusfeld gespeicherte Information ist eine Funktion des TDR unter den mehreren Steuerregistern 40. Wenn das Statusfeld den logischen Wert $0 speichert, werden keine Hardware- Breakpoints freigegeben. Wenn das Statusfeld den logischen Wert $1 speichert, wartet das Debug- Modul 10 auf einen einstufigen Breakpoint als Trigger. Wie bereits erläutert wurde, werden die Attribute des Breakpoints erster Stufe von den Bits fünfzehn bis null des Trigger- Definition- Registers (TDR) festgelegt. Wenn in dem Statusfeld des CSR der logische Wert $2 gespeichert ist, wurde der Breakpoint erster Stufe ausgelöst. Wenn in dem Statusfeld der logische Wert $5 gespeichert ist, wartet das Debug- Modul 10 auf einen Breakpoint zweiter Stufe als Trigger. Wie bereits erläutert wurde, werden die Attribute eines Triggers zweiter Stufe von den Bits einunddreißig bis sechzehn des Trigger- Definition- Registers (TDR) festgelegt. Wenn im Statusfeld des CSR der logische Wert $6 gespeichert ist, wurde ein Breakpoint zweiter Stufe ausgelöst.
- Der im Statusfeld des CSR wiedergegebene Breakpoint- Status wird an einen (in Fig. 2 nicht gezeigten) externen Anwender über die mehreren externen Anschlüsse der integrierten Schaltung ausgegeben, die das DDATA- Signal ausgeben. Man vergleiche Fig. 9. Die DDATA- Signale geben den Breakpoint- Status wieder, wenn die Signale keine vom K- Bus 25 erfassten Daten anzeigen. Außerdem ist zu beachten, dass der Inhalt des CSR jederzeit über die serielle Schnittstelle 30 ausgelesen werden kann. Der Breakpoint- Status ist daher über zwei Einrichtungen verfügbar: über das DDATA- Signal, wenn das DDATA- Signal keine erfassten Daten anzeigt, oder über einen READ- CSR- Befehl unter Verwendung der seriellen Schnittstelle 30.
- Das CSR liefert außerdem einen Wert mit vier Bits, der einem externen Entwicklungssystem 7 den Eingangsstatus eines Debug- Hintergrundbetriebs anzeigt. Ein erstes Bit des Werts mit vier Bits ist das FOF- Bit. Wenn es gesetzt ist, bezeichnet das fault- on- fault- (FOF-) Bit, dass bei der CPU 2 des Datenverarbeitungssystems 5 eine schwerwiegende Unterbrechung vorliegt und dass das Datenverarbeitungssystem 5 in einen Debug- Hintergrundbetriebszustand einzutreten gezwungen war. Der Debug- Hintergrundbetriebszustand wird im folgenden ausführlicher erläutert. Das F0F- Bit wird zurückgesetzt, wenn der Inhalt des CSR gelesen wird.
- Ein gesetztes Hardware- Breakpoint- Trigger- (TRG-) Bit bedeutet, dass ein Hardware- Breakpoint den Betrieb der CPU 2 des Datenverarbeitungssystems 5 unterbrochen hat. Ein gesetztes TRG- Bit bedeutet, dass das Datenverarbeitungssystem 5 in den Debug- Hintergrundbetriebszustand einzutreten gezwungen war. Das TRG- Bit wird zurückgesetzt, wenn der Inhalt des CSR gelesen wird oder wenn seriell über die serielle Schnittstelle 30 ein "Go"- Befehl Empfangen wird.
- Das gesetzte Prozessor- Halt- (Halt-) Bit bedeutet, dass die CPU 2 eine Anweisung ausgeführt hat, die angibt, dass die CPU 2 anhalten sollte. Das gesetzte Halt- Bit bedeutet, dass das Datenverarbeitungssystem 5 gezwungen war, in einen Debüg- Hintergrundbetriebszustand einzutreten. Das Halt- Bit wird zurückgesetzt, wenn der Inhalt des CSR gelesen wird oder wenn über die serielle Schnittstelle 30 seriell ein "Go"- Befehl bereitgestellt wird.
- Das BKPT- Assert- (BKPT-) Bit gibt an, dass das - Signal gesetzt und an die CPU 2 ausgegeben wurde. Das gesetzte BKPT- Bit bedeutet, dass das Datenverarbeitungssystem 5 in den Debug- Hintergrundbetriebszustand eintreten musste. Das BKPT- Bit wird zurückgesetzt, wenn der Inhalt des CSR gelesen wird oder wenn seriell über die serielle Schnittstelle 30 ein "Go"- Befehl ausgegeben wird.
- Ein gesetztes Inhibit- Processor- Writes- to- Debug- Register- (IPW-) Bit inhibiert Schreiboperationen in die mehreren Hardware- Breakpoint- Register 50 und in die mehreren Steuerregister 40. Das IPW- Bit kann nur durch Befehle eines externen Entwicklungssystems wie etwa des externen Entwicklungssystems 7 geändert werden. Das IPW- Bit verhindert letztlich, dass die CPU 2 Debug- Informationen überschreibt, die das externe Entwicklungssystem 7 in die mehreren Steuerregister 40 und in die mehreren Breakpoint- Register 50 geschrieben hat.
- Ein gesetztes Force- Processor- References- In- Emulator- Mode- (MAP-) Bit zwingt die CPU 2, alle Verweise in einen besonderen Adressbereich abzubilden, wenn das Datenverarbeitungssystem im Emulationsbetrieb arbeitet. Wenn das MAP- Bit negiert ist, werden alle Emulationsbetriebsverweise in Supervisor- Text- und -Daten- Bereiche im Speicher 6 abgebildet.
- Ein Emulationsbetrieb ist ein spezieller Betriebszustand, der eine logische Erweiterung eines Supervisor- oder privilegierten Betriebs ist. Der Eintritt in diesen besonderen Betriebszustand erfolgt in der vorliegenden Ausführungsform, wenn einer von drei möglichen Indikatoren gesetzt wird. Sobald man sich im Emulationsbetrieb befindet, können alle normalen Eingabe- /Ausgabe- Interrupts ignoriert werden, und der Datenprozessor 3 kann optional alle Speicherverweise in einen "alternativen Raum" erzwingen. Das MAP- Bit steuert diesen Betrieb des Datenprozessors 3. Der Emulationsbetriebszustand wird normalerweise verwendet, damit ein externes Entwicklungssystem 7 alle Speicherverweise in diesen alternativen Raum unterbrechen und die Anweisung und die Datenwerte für irgendeine Debug- Funktion liefern kann. Dieses erneute Abbilden in einen alternativen Raum erfolgt, damit das externe Entwicklungssystem 7 die Steuerung des Betriebs des Datenprozessors 3 übernehmen kann, ohne einen Zustand oder den "normalen" Systemspeicher zu ändern. Der Datenprozessor 3 bleibt im Emulationsbetrieb, bis eine spezielle Anweisung, wie etwa ein RTE (Rückkehr von der Exception), ausgeführt wird. Dann verlässt der Datenprozessor 3 den Emulationsbetrieb, und die CPU 2 kehrt zum normalen Betriebszustand zurück.
- Man beachte, dass dem externen Anwender über das PST- Signal der Eintritt und das Verlassen des Emulationsbetriebs signalisiert werden. Mit dem Wert $D bezeichnet das PST- Signal den Eintritt in den Emulationsbetrieb, und mit dem Wert $7 bezeichnet das PST- Signal das Verlassen des Emulationsbetriebs. Die Bezeichnungen für das 'Eintreten in' einen und für das 'Verlassen von' einem Emulationsbetriebszustand, die das PST- Signal ausgibt, sind besonders wichtig, da sie dem externen Entwicklungssystem 7 anzeigen, dass ein Hardware- Breakpoint ausgelöst wurde. Daher können über den seriellen Anschluss der seriellen Schnittstelle 30 Debug- Informationen aus externen Speicherpositionen ausgelesen werden.
- Wenn das MAP- Bit negiert ist, werden alle Emulationsbetriebsspeicherverweise wie normal in Supervisor- Zugriffe abgebildet, so dass auf die Systemressourcen, wie etwa auf den Speicher auf dem Chip, auf externe Speicher und auf Eingabe- /Ausgabevorrichtungen verwiesen werden kann.
- Außerdem wurden drei Verfahren für das Eintreten in einen Emulationsbetriebszustand implementiert. Bei einem ersten Verfahren erzwingt, wenn ein Force- Emulation- Mode- on- Trace- Exception- (TRC-) Bit gesetzt ist, zwingt das Auftreten einer Softwareablaufverfolgungs- Esception den Datenprozessor 3, in einen Emulationsbetriebszustand einzutreten. Bei diesem Mechanismus wird eine Debug- Routine mit einer einzigen Anweisung erzeugt, die vom externen Entwicklungssystem 7 und nicht von einem auf dem Datenprozessor 3 laufenden Software- Debug- Programm gesteuert wird.
- Wenn bei einem zweiten Verfahren ein Force- Emulation- (EMU-) Bit gesetzt ist, beginnt der Datenprozessor 3 eine Reset- Exception- Prozedur. Dieses Verfahren erlaubt dem externen Entwicklungssystem 7 wiederum, das Datenverarbeitungssystem 10 zu steuern, bevor es mit der Verarbeitung der Anweisungen beginnt.
- Das dritte Verfahren erlaubt dem Datenprozessor 3, in einen Emulationsbetrieb einzutreten, wenn ein Debug- Interrupt bei der Auslösung eines Hardware- Breakpoints gesetzt wird. Mit dem TRC- Feld des TDR kann ein Hardware- Breakpoint- Trigger programmiert werden, der einen Debug- Interrupt mit einem Eintreten in einen Emulationsbetrieb erzeugt.
- Ein Debug- Datensteuerungs- (DDC-) Wert liefert eine Konfigurationssteuerinformation zum Lacten von Operandendaten, die für das externe Entwicklungssystem über das DDATA- Signal bereitzustellen sind. Wenn der DDC- Wert %00 ist, werden vom DDATA- Signal keine Operandendaten angezeigt. Wenn der DDC- Wert %01 ist, werden alle über den M- Bus ausgetauschten Schreibdaten erfasst und vom DDATA- Signal angezeigt. Wenn der DDC- Wert %10 ist, werden alle über den M- Bus ausgetauschten Lesedaten erfasst und vom DDATA- Signal angezeigt. Wenn der DDC- Wert 111 ist, werden alle über den M- Bus ausgetauschten Lese- und Schreibdaten geladen und vom DDATA- Signal angezeigt. Unabhängig von dem vom DDC- Wert angegebenen Informationstyp zeigt das DDATA- Signal eine von einer Operandenreferenzgröße festgelegite Anzahl von Bits an. Wenn ein Operand vom DDC- Feld des CSR gesteuert erfasst wird, wird vom DDATA- Signal eine vom ausgeführten Referenztyp festgelegte Anzahl von Bytes angezeigt. Wenn der Operand als ein Byte bezeichnet wurde, werden acht Datenbits angezeigt. Wenn der Operand als ein Wort bezeichnet wurde, werden sechzehn Datenbits angezeigt. Entsprechend werden, wenn der Operand als ein Langwort bezeichnet wurde, zweiunddreißig Datenbits angezeigt. Das DDC liefert die Möglichkeit, die Lese- und Schreiboperationen auf dem M- Bus 23 zu erfassen. Die Größe der Operandenreferenz bestimmt jedoch die Anzahl der Bytes, die vom DDATA- Signal tatsächlich angezeigt werden.
- Ein Branch- Target- Bytes- (BTB-) Wert legt die Anzahl der Bytes einer Verzweigungszieladresse fest, die vom DDATA- Signal angezeigt werden. Wenn der BTB- Wert %00 ist, werden keine Bytes der Verzweigungszieladresse vom DDATA- Signal angezeigt. Wenn der BTB- Wert %01 ist, werden die unteren zwei Bytes der Verzweigungszieladresse vom DDATA- Signal angezeigt. Wenn der BTB- Wert %10 ist, werden die unteren drei Bytes der Verzweigungszieladresse vom DDATA- Signal angezeigt. Wenn der BTB- Wert %11 ist, werden alle vier Bytes der Verzweigungszieladresse vom DDATA- Signal angezeigt. Man beachte, dass Daten vom DDATA- Signal im allgemeinen in der Reihenfolge von wenig signifikant zu signifikant ausgegeben werden. Dies gilt sowohl für die erfassten Operanden als auch für Verzweigungszieladressen. Außerdem erfasst der von der Steuerschaltung 60 gesteuerte FIFO- Speicherpuffer 70 im Betrieb nur die Zieladressen der aufgegriffenen Verzweigungsoperationen, die einen variablen Adressierungsbetrieb verwenden. Der variable Adressierungsbetrieb ist ein Adressierungsbetrieb, bei dem eine Adresse nicht relativ zum Programmzähler oder als absolute Adresse geliefert wird, sondern von einer anderen Einrichtung berechnet wird. Solche Zieladressen gehören üblicherweise sowohl zu Exception- Vektoren als auch zu Return- From- Exception- (RTE-), zu Return- From- Subroutine- (RTS-) Anweisungen und einigen Formen von Jump- (JMP) und Jump- To- Subroutine- (JSR-) Befehlen.
- Ein gesetztes Enable- Debug- Mode- (END-) Bit sperrt den normalen Betrieb des PST- und DDATA- Signals. Wenn dieses Bit freigegeben ist, gibt die CPU 2 des Datenprozessors 3 außerdem einen acht Bit langen Vektor mit interner Statusinformation aus.
- Ein gesetztes Non- Pipline- Mode- (NPL-) Bit zwingt die CPU 2, in einem Non- Pipline- Mode zu arbeiten. Wenn sich das Datenverarbeitungssystem 3 in einem Non- Pipline- Mode befindet, führt es ohne Überlappung zwischen zwei oder mehr aufeinanderfolgenden Anweisungen jeweils nur eine einzige Anweisung aus.
- Ein gesetztes Ignore- Pending- Interrupts- (IPI-) Bit zwingt die CPU 2, alle anstehenden Abfragen nach Interrupts zu ignorieren, wenn das Datenverarbeitungssystem 5 in einem Anweisungs- Einzelschrittbetrieb arbeitet.
- Ein gesetztes Single- Step- Mode- (SSM-) Bit zwingt die CPU 2, in einem Anweisungs- Einzelschrittbetrieb zu arbeiten. Im Anweisungs- Einzelschrittbetrieb führt die CPU 2 eine einzige Anweisung aus und hält dann an. Während die CPU 2 anhält, können alle Anweisungen ausgeführt werden, die zum Debug- Hintergrundbetrieb gehören. Wenn ein GO- Befehl empfangen wird, führt die CPU 2 eine nächste Anweisung aus und hält dann wieder an. Dieser Prozess geht weiter, bis der Anweisungs- Einzelschrittbetrieb gesperrt wird.
- Ein Store- Buffer- Disable- (SBD-) Bit, ein K- Bus- RAM- Disable- (KAD-) Bit, ein K- Bus- ROM- Disable- (KOD-) Bit und ein K- Bus- Cache- Disable- (KCD-) Bit werden gemeinsam verwendet, damit ein externes Entwicklungssystem 7 die normalen Konfigurationen des Datenprozessors 3 für Debug- Zwecke überschreiben kann. Insbesondere sperrt das SBD- Bit die Verwendung eines optionalen FIFO- Speicherpuffers, der sich im MMU/Controller 4 befindet und der nicht mit dem FIFO- Speicherpuffer 70 verwechselt werden darf. Mit dem KAD- Bit wird die Verwendung des Speicherblocks 6 umgangen und können Zugriffe auf den M- Bus 23 erzwungen werden. Der Speicherblock 6 kann das RAM- Modul, das ROM- Modul und/oder das Cache- Modul enthalten. Mit dem KAD-, dem KOD- bzw. dem KCD- Bit werden die von diesen Modulen jeweils bereitgestellten Funktionen gesperrt.
- Die mehreren Hardware- Breakpoint- Register 50 werden in Fig. 5 ausführlicher gezeigt. Dort wird die Funktion jedes dieser mehreren Hardware- Breakpoint- Register 50 allgemein beschrieben. Die Funktion jedes der mehreren Hardware- Breakpoint- Register 50 wird im folgenden ausführlicher beschrieben.
- In Fig. 5 legen die Address- Breakpoint- Register (ABLR und ABHR) in einem logischen Adressbereich einen Bereich für die Operanden des Datenverarbeitungssystems 5 fest, mit denen eine Breakpoint- Funktion ausgelöst werden kann. Die im ABLR und im ABHR gespeicherten Adresswerte werden mit den über den K- Bus 25 übertragenen Adresswerten verglichen. Außerdem ist zu beachten, dass in der folgenden Erläuterung ein Satz von Bedingungen als Trigger beschrieben wird, die zur Ausführung der Breakpoint- Funktion erfüllt sein müssen.
- Fig. 6 zeigt das Address- Attribute- Breakpoint- Register (AABR-) ausführlicher. Das Address- Attribute- Breakpoint- Register legt mehrere Adressattribute und eine Maskierung fest, die für das Auslösen der Breakpoint- Funktion erfüllt sein muss. Ebenso wie die ABLR- und ABHR- Adresswerte wird auch der im AABR gespeicherte Attributwert mit einem über den K- Bus 25 übertragenen Adressaatributsignal verglichen.
- Die unteren fünf Bits des AABR, ein. Transfer- Type- (TT-) Wert und ein Transfer- Modifier- (TM-) Wert legen zusammen einen Adressbereich fest, mit dem das Datenverarbeitungssystem 5 im Debug- Hintergrundbetrieb einen Speicherverweis ausführt. Der TT- Wert gibt an, ob ein Supervisor- Operand, eine Supervisor- Anweisung, ein Anwenderoperand oder eine Anwenderanweisung übertragen wird.
- Man beachte, dass jedes der mehreren Hardware- Breakpoint- Register 50 zwei Funktionen erfüllt. Wenn der Datenprozessor 3 in einem Debug- Hintergrundbetriebszustand arbeitet, werden die mehreren Hardware- Breakpoint- Register 50 zur Ausführung von Speicher- und Prozessorverweisoperationen verwendet. Wenn der Datenprozessor 3 nicht im Debug- Hintergrundbetriebszustand arbeitet, werden die mehreren Hardware- Breakpoint- Register 50 zum Erfassen von Hardware- Breakpoints verwendet.
- Wenn von den mehreren Hardware- Breakpoint- Registern 50 die Hardware- Breakpoints erfasst werden, enthalten die AABR- Register sowohl vier Felder als auch vier äquivalente Maskierungsfelder. Die TT- und TM- Felder legen den Adressbereich fest, auf den zugegriffen wird. Tabelle 1 veranschaulicht eine Kodierung für jedes dieser Felder. Tabelle 1
- Man beachte, dass der "Adressbereich" oft von einer privilegierten Betriebsstufe (Anwenderbetrieb oder Supervisor- Betrieb) und von dem auszuführenden Referenztyp (Operanden-, Anweisungsanforderung) abhängt. Insgesamt kann mit den TT- und TM- Werten der Ort eines Breakpoints im einzelnen festgelegt werden.
- Der nächste Wert im AABR, ein Size- (SZ-) Wert, legt fest, dass zusätzlich zum Adressbereich, ein über den K- Bus 25 übertragenes Größenattribut einem in den SZ- Bits des AABR gespeicherten Wert entsprechen muss. Dementsprechend ist im AABR ein Read- /Write- (R-) Wert gespeichert. Der R- Wert bezeichnet, dass bei einem Vergleich auf der Grundlage der Adresse eine Trigger- Bedingung auf der Grundlage einer Lese- oder Schreiboperation angewendet werden muss.
- Die oben erwähnten Bits werden verwendet, wenn die mehreren Hardware- Breakpoint- Register 50 als Breakpoint- Überwachung arbeiten. Diese Bits werden mit den Attributinformationen vom K- Bus 25 verglichen. Die mehreren Breakpoint- Register 50 können beispielsweise so programmiert werden, dass nur beim Lesen eines Operanden mit Wortgröße im Anwenderbetrieb ein Trigger ausgelöst wird. Mit diesen Bits des AABR können daher zusätzliche Eigenschaften des Adressen- Breakpoints festgelegt werden.
- Außerdem enthält das AABR Attributmaskierungsbits, mit denen einzelne Bits beim Festlegen eines Breakpoints maskiert werden können.
- Das signifikanteste Bit des AABR, das Read- / Write- Mask- (RM-) Bit, legt fest, dass bei Vergleichen auf der Grundlage von Adressen eine Trigger- Bedingung auf der Grundlage einer Lese- oder Schreiboperation ignoriert werden soll. Daher wird, wenn das RM- Bit gesetzt ist, das R- Bit bei Vergleichsoperationen ignoriert. Ein nächster Satz von Bits, ein Size- Mask- (SM-) Wert, legt fest, dass eine Trigger- Bedingung auf der Grundlage der Größe einer Adresse bei Vergleichen auf der Grundlage von Adressen ignoriert werden soll. Wenn beispielsweise im SM- Wert ein Bit gesetzt ist, wird bei einer Adressvergleichsfunktion das entsprechende Bit im SZ- Wert ignoriert.
- Ein Transfer- Type- Mask- (TTM-) Wert entspricht dem TT- Wert. Wenn ein Bit im TTM- Wert gesetzt ist, wird bei folgenden Adressvergleichen das entsprechende Bit im TT- Wert ignoriert. Ebenso entspricht ein Transfer- Modifier- Mask- (TMM-) Wert dem TM- Wert. Wenn ein Bit im TMM- Wert gesetzt ist, wird bei folgenden Adressvergleichen das entsprechende Bit im TM- Wert ignoriert.
- Die mehreren Hardware- Breakpoint- Register 50 enthalten auch mehrere Program- Counter- Breakpoint- Register. Die mehreren Program- Counter- Breakpoint- Register legen in einem logischen Adressbereich des Datenverarbeitungssystems 5 einen Bereich für Anweisungen fest, mit dem eine Breakpoint- Funktion ausgelöst werden kann. Der Program- Counter- Breakpoint- (PBR-) Wert kann von einem im Erogram- Couriter- Breakpoint- Mask- (PBMR-) Register gespeicherten Wert maskiert werden. Bei einer Ausführungsform werden bei einer Vergleichsoperation mit dem Programmzählerwert des Datenverarbeitungssystems 5 nur die Bits im PBR verwendet, deren entsprechender im PBMR gespeicherter Wert Null ist. Man beachte, dass der Programmzählerwert in einem (hier nicht gezeigten) Programmzählerregister der Cpu 2 des Datenverarbeitungssystems 5 gespeichert ist.
- Außer den Program- Counter- Breakpoint- Registern enthalten die mehreren Hardware- Breakpoint- Register 5 mehrere Data- Breakpoint- Register. Die mehreren Data- Breakpoint- Register enthalten ein Data- Breakpoint- Register (DBR) und ein Data- Breakpoint- Mask- Register (DBMR). Das DBR speichert einen Datenwert, der ein bestimmtes Datenmuster festlegt, mit dem ein Trigger gebildet werden kann, wenn das Datenverarbeitungssystem 5 eine Debug- Operation ausführt. Ein in den DBMR gespeicherter Datenmaskierungswert maskiert den im DBR gespeicherten Datenwert. Bei einer Ausführungsform werden daher nur die im DBR gespeicherten Bits, deren entsprechender im DBMR gespeicherter Wert Null ist, mit den über den K- Bus 25 übertragenen Datensignalen verglichen, um zu bestimmen, ob eine Trigger- Bedingung erfüllt wird.
- Für die folgende Erläuterung wird das allgemeine Thema der Debug- Unterstützung in drei getrennte Bereiche mit spezifischen Anforderungen und spezifischen Funktionsweisen unterteilt: eine Echtzeit- Ablaufverfolgungsunterstützung, ein Debug- Hintergrundbetriebszustand und eine Echtzeit- Debug- Ünterstützung. Das Datenverarbeitungssystem 5 aus Fig. 1 veranschaulicht eine Ausführungsform der vorliegenden Erfindung.
- Beim Datenverarbeitungssystem 5 wird der Datenprozessor 3 mit dem externen Entwicklungssystem 7 verbunden, um Informationen auszutauschen. Das externe Entwicklungssystem 7 führt mit den übermittelten Informationen Debug- Operationen aus, mit denen eine defekte Schaltung und fehlerhafter Softwarecode im Datenprozessor 3 identifiziert und isoliert werden können. Das externe Entwicklungssystem 7 verständigt sich mit dem Datenprozessor 3 über die DSDI-, DSCLK-, DSDO, DDATA-, PST- und andere Eingabe/Ausgabesignale. Das DSDI-, DSCLK- und das DSDO- Signal erlauben eine serielle Verständigung zwischen dem externen Entwicklungssystem 7 und dem Datenprozessor 3. Das DDATA- Signal liefert Debug- Informationen vom Datenprozessor 3 an das externe Entwicklungssystem 7. Abhängig von der Konfiguration des CSR kann das Debug- Modul 10 bestimmte Operanden- und Verzweigungszieladressen mit dem DDATA- Signal anzeigen. Außerdem kann die CPU 2 Anweisungen ausführen, die erfasst und unabhängig von einem im CSR gespeicherten Konfigurationswert vom DDATA- Signal angezeigt werden. Das PST- Signal zeigt dem externen Entwicklungssystem 7 einen internen Prozessorstatus an. Daher kann bei der Ausführung einer Programmoperation auf das DDATA- und das PST- Signal gemeinsam zugegriffen werden, um eine aktuelle, vom Datenprozessor 3 ausgeführte Operation wiederzugeben.
- Bei der Operation verwendet der Kern 9 den K- Bus 25, um die CPU 2, den MMU/Controller 4 und den Speicher 6 zu verbinden. Bei der vorliegenden Ausführungsform ist der K- Bus 25 ein Bus mit sehr schnellem Zugriff innerhalb eines Zyklus. Der Speicher 6 kann einen Speicher mit wahlfreiem Zugriff (RAM), einen Festspeicher (ROM), Cache- Blöcke oder eine beliebige Kombination von ihnen umfassen. Alle anderen Systemmodule und Peripheriegeräte werden über denM- Bus 23 mit dem Kern 9 verbunden. Der M- Bus 23 ist ein interner Multi- Masterbus, der verwendet wird, um Datenübermittlungen auszuführen, die von einem der mehreren Bus- Master initiiert werden. Der Systembus- Controller 8 liefert verschiedene Funktionen. Der Systembus- Controller 8 schafft eine Schnittstelle zwischen dem internen M- Bus 23 und dem externen E- Bus, wenn der externe E- Bus existiert. Außerdem dient der Systembus- Controller 8 als Zentrale zur Steuerung aller Datenübermittlungen über den S- Bus. Mit dem S- Bus werden einfache Untermodule (12 und 13) an der Peripherie, wie etwa Zeitgeber und serielle Kommunikationskanäle, im Datenverarbeitungssystem 5 verbunden.
- Der Datenprozessor 3 hat Schichten mit verschiedenen Busbandbreiten, um Daten effizient zu übertragen. Der Kern 9 wird mit dem Einzelzyklus- Hochgeschwindigkeits- K- Bus 25 verbunden, um die Leistung zu maximieren. Für Übertragungen, die nicht über diesen Hochgeschwindigkeitsbus erfolgen, bietet der M- Bus 23 jedem der internen Bus- Master, wie etwa dem Kern 9 oder dem Hauptmodul 14 eine Bandbreite. Der Systembus- Controller 8 verbindet den internen M- Bus 23 mit dem externen E- Bus (falls es ihn gibt), während er außerdem alle Datenübertragungen auf dem günstigen S- Bus mit niedrigerer Bandbreite für Untermodule an der Peripherie, wie etwa die Untermodule 12 und 13 steuert. Das Debug- Modul 10 ist mit dem K- Bus 25 verbunden, damit alle Speicherzugriffe des Prozessors ohne Beeinflussung beobachtet werden können. Außerdem ist über das Debug- Modul 10 das externe Entwicklungssystem 7 angeschlossen.
- Das Debug- Modul 10 aus Fig. 1 enthält eine Logikschaltung zum Unterstützen aller drei oben beschriebenen Debug- Operationen. Die Operation des Debug- Moduls 10 wird im folgenden im einzelnen erläutert.
- Das Datenverarbeitungssystem 5 enthält eine wichtige Echtzeit- Ablaufverfolgungsfunktion, dlie es bislang nicht gab. Mit der Echtzeit- Ablaufverfolgungsfunktion kann ein externer Anwender, wie etwa das externe Entwicklungssystem 7, die internen Operationen des Datenprozessors 3 dynamisch beobachten. Außerdem können mit der Echtzeit- Ablaufverfolgungsfunktion die internen Operationen des Systems beobachtet werden, ohne die Effizienz und die Geschwindigkeit des Datenverarbeitungssystems 5 wesentlich zu beeinflussen. Das Debug- Modul 10 des Datenverarbeitungssystems 5 schickt die DDATA- und PST- Signale mit den internen Betriebsinformationen über einen parallelen Ausgangsanschluss an den externen Anwender. Das DDATA- Signal liefert Daten, die Operandendaten wiedergeben, und das PST- Signal liefert kodierte Statusinformationen, die den Ausführungsstatus der CPU 2 wiedergeben. Außerdem liefert das DDATA- Signal auch Änderungen der Programmabfolge der Anweisungsadressen, die erfasst wurden, damit ein externes Entwicklungssystem die genaue Abfolge des Programms verfolgen kann, ohne dass dazu ein extern sichtbarer Adressbus oder ein extern sichtbarer Datenbus gebraucht wird. Man beachte, dass die vom DDATA- Signal dargestellten Informationen zu den Statusinformationen der PST- Signale synchronisiert sind. Ein externer Anwender kann die DDATA- und die PST- Signale daher dekodieren, um die Abfolge der Ausführung des Programms dynamisch zu bestimmen, wobei weder der Betrieb des Datenprozessors 3 angehalten werden muss noch ein besonderer Debug- Betriebszustand benötigt wird, um diesen Ablauf der Ausführung sichtbar zu machen.
- Der Betrieb des Datenverarbeitungssystems 5 bei der Ausführung einer Echtzeit- Ablaufverfolgung wird im folgenden im einzelnen erläutert. Vor dieser Erläuterung wird die Kodierung des PST- Signals kurz beschrieben. Fig. 10 zeigt eine Tabelle der Kodierung des PST- Signals.
- Fig. 10 zeigt, in welchem Verhältnis der Wert des PST- Signals mit den Bits drei bis null zum Status der CPU 2 steht. Wenn das PST- Signal den Wert %0000 liefert, ist eine vorherige Operation noch nicht beendet, und die Ausführung dauert einfach an. Wenn der Wert %0001 geliefert wird, zeigt das PST- Signal an, dass die Ausführung einer Anweisung beginnt. Wenn das PST- Signal den Wert %0011 hat, tritt das Datenverarbeitungssystem in einen Anwenderbetriebszustand ein. Wenn PST- Signal den Wert %0100 hat, beginnt das Datenverarbeitungssystem 5 die Ausführung einer Pulse- oder einer WDDATA- Anweisung. Der Pulse- Opcode erzeugt einfach diese spezielle PST- Kodierung, während der WDDATA- Opcode bewirkt, dass ein Operand erfasst und in DDATA unabhängig von der vom CSR festgelegten Konfiguration angezeigt werden muss. So ergibt sich ein einfacher Mechanismus, um Speicheroperanden, Exception- Stapelrahmen oder Softwaremarkierungen direkt mit dem DDATA- Signal anzuzeigen.
- Wenn das PST- Signal den Wert %0101 hat, beginnt das Datenverarbeitungssystem 5 die Ausführung einer aufgenommenen Verzweigungsoperation. Wenn das PST- Signal den Wert %0111 hat, beginnt das Datenverarbeitungssystem 5 mit der Ausführung einer RTE- Anweisung. Wenn das PST- Signal den Wert %1000 hat, beginnt das Datenverarbeitungssystem 5 die Übertragung von einem Byte in dem DDATA- Signal. Wenn das PST- Signal den Wert %1001 hat, beginnt das Datenverarbeitungssystem 5 die Übertragung von zwei Bytes in dem DDATA- Signal. Wenn das PST- Signal den Wert %1010 hat, beginnt das Datenverarbeitungssystem 5 die Übertragung von drei Bytes in dem DDATA- Signal. Wenn das PST- Signal den Wert %1011 hat, beginnt das Datenverarbeitungssystem 5 die Übertragung eines vierten Bytes in dem DDATA- Signal. Wenn das PST- Signal den logischen Wert %1100 hat, führt die CPCJ 2 des Datenverarbeitungssystem 5 eine Exception- Verarbeitungsroutine aus. Entsprechend verarbeitet die CPU 2 des Datenverarbeitungssystems 5 eine Exception, wenn das PST- Signal den logischen Wert %1101 hat. Dieser Wert wird ab denn Zeitpunkt auf dem PST- Signal gesetzt, an dem die Exception erkannt wird, und solange beibehalten, bis eine erste Anweisung der Exception- Verarbeitungsroutine aufgerufen wird. Wenn entsprechend das PST- Signal den logischen Wert %1101 hat, verarbeitet die CPU 2 des Datenverarbeitungssystems 5 eine Exception- Routine, die den Eintritt in einen Emulationsbetriebszustand auslöst. Wenn das PST- Signal %1110 ist, ist die CPU 2 des Datenverarbeitungssystems 5 gestoppt und wartet auf einen Interrupt. Wenn das PST- Signal %1111 ist, wird die CPU 2 des Datenverarbeitungssystems 5 angehalten.
- Wie bereits festgestellt wurde, kann mit den gemeinsam von den kodierten PST- und den DDATA- Signalen gelieferten Prozessorstatusinformationen in einem externen Modell des Programms der Ablauf der Ausführung im Datenverarbeitungssystem 5 vollständig verfolgt werden.
- Um eine Echtzeit- Ablaufverfolgungsfunktion freizugeben, muss das DDATA- Signal konfiguriert sein, damit es Verzweigungszielanweisungsadressen anzeigt. Üblicherweise wird diese Konfiguration ausgeführt, bevor das Datenverarbeitungssystem 5 seine normale Ausführung beginnt. Um das DDATA- Signal zu konfigurieren, kann das externe Entwicklungssystem 7 einen Wert in das CSR- Register unter den mehreren Steuerregistern 40 schreiben. Das CSR- Register ist in Fig. 8 gezeigt. Um diese Schreibfunktion auszuführen, schiebt das externe Entwicklungssystem 7 einen Befehl unter Verwendung sowohl der DSDI- als auch der DSCLK- Signale ein, um Daten über die serielle Schnittstelle 30 in das CSR zu laden. Bei einer Ausführungsform wird ein erster Teil des Befehls vom DSDI- Signal bereitgestellt und vom DSCLK- Signal getaktet. Dann werden weitere Teile der Befehle bereitgestellt. Weitere Teile der Befehle werden im Register 32 gespeichert, bis ein Informationspaket von sechzehn Bits vollständig ist. Man beachte, dass alternative Ausführungsformen mehr oder weniger als sechzehn Bits enthalten können, die von der vorliegenden Ausführungsform benötigt werden.
- Bei der hier beschriebenen Ausführungsform ist eine Anweisung, die einen Wert in das CSR schreibt, achtundvierzig Bits lang, wobei der Op- Code sechzehn Bits und die Daten zweiunddreißig Bits haben. Das Register 32 ist nur sechzehn Bits breit. Wenn ein erstes Informationspaket von sechzehn Bits komplett ist, wird die Information daher zur Steuerschaltung 20 übertragen, wo sie dekodiert und folgende Operationen konfiguriert werden. Wenn ein zweites Informationspaket mit sechzehn Bits in das Register 32 geladen wurde, wird die Information über das serielle Informationssignal an die mehreren Steuerregister 40 übertragen. Mit der Steuerinformation, die der Steuerbus 15 von der Steuerschalung 20 liefert, werden die Inhalte des seriellen Informationssignals in den oberen Teil eines Zielregisters, das CSR, geladen. Auf entsprechende Weise wird ein drittes Informationspaket von sechzehn Bits in das Register 32 geladen und dann auf die mehreren Steuerregister 40 übertragen. Dann werden die Inhalte des seriellen Informationssignals mit den Signalen der Steuerschaltung 20 in den unteren Teil des CSR geladen. Auf diese Weise werden alle achtundvierzig Bits der Anweisung seriell in das Debug- Modul 10 geschoben.
- Die folgenden Daten liefert das externe Entwicklungssystem 7 seriell mit dem DSDI- Signal. Wie bereits beschrieben wurde, werden die folgenden Daten im DSDI- Signal vom DSCLK- Signal getaktet. Alle Datenbits werden im Register 32 gespeichert, bis ein Informationspaket von sechzehn Bits komplett ist. Wenn ein zweites Informationspaket von sechzehn Bits komplett ist, wird die Information für die mehreren Steuerregister 40 über das serielle Informationssignal an die mehreren Steuerregister 40 übertragen. Das zweite Informationspaket von sechzehn Bits wird im CSR als Bits einunddreißig bis sechzehn gespeichert. Dann werden über die DSDI- und DSCLK- Signale seriell weitere Informationen vom externen Entwicklungssystem 7 an das Register 32 geliefert. Wenn ein drittes Informationspaket von sechzehn Bits komplett ist, wird die Information vom seriellen Informationssignal an die mehreren Steuerregister 40 übertragen. Das dritte Informationspaket von sechzehn Bits wird im CSR als Bit fünfzehn bis null gespeichert.
- In den vorangegangenen Abschnitten wurde die Konfiguration der DDATA- Signale durch einen vom externen Entwicklungssystem 7 in das CSR geschriebenen Wert bestimmt. Bei einer anderen Ausführungsform können die DDATA- Signale durch einen von der CPU 2 des Datenprozessors 4 in das CSR geschriebenen Wert konfiguriert werden. Wenn die CPU 2 den Wert in das CSR schreibt, wird der Wert an das Temporärregister 170 der Breakpoint- Schaltung 100 aus Fig. 6 geliefert. Der Wert wird an das Temporärregister 170 über das KDATA- Signal des K- Busses 25 geliefert. Der Wert wird vom Temporärregister 170 in Paketen von sechzehn Bits an das Register 32 übertragen und gespeichert. Damit die CPU in das CSR schreiben kann, wird der Operandenwert, der über das KDATA- Signal übertragen wird, im Temporärdatenregister 170 erfasst, wobei die Steuersignale verwendet werden, die der Steuerschaltung 20 über den K- Bus 25 von der CPU 2 geliefert werden. Für die mehreren Steuerregister 40 sehen die Werte daher wie die aus, die das Register 32 vom externen Entwicklungssystem 7 erhält.
- Unabhängig davon, ob der Operand vom externen Entwicklungssystem 7 oder von der CPU 2 kommt, müssen der Operand und die zugehörigen Operanden im CSR gespeichert werden, um die DDATA- Signale zu konfigurieren, um eine Echtzeit- Ablaufverfolgungsfunktion auszuführen. Der Debug- Data- Control- (DDC-) und der Branch- Target- Bytes- (BTB-) Wert müssen in das CSR geschrieben werden, um die DDATA- Signal korrekt zu konfigurieren, damit das externe Entwicklungssystem 7 die Ablaufsinformationen erhält. Wie bereits erwähnt wurde, liefert der Debug- Data- Control- (DDC-) Wert eine Konfigurationssteuerinformation zum Erfassen von Operandendaten, die für das externe Entwicklungssystem über das DDATA- Signal bereitzustellen sind. Wenn der DDC- Wert %00 ist, zeigt das DDATA- Signal keine Operandendaten an. Wenn der DDC- Wert %01 ist, werden alle über den M- Bus 23 ausgetauschten Schreibdaten erfasst und vom DDATA- Signal angezeigt. Wenn der DDC- Wert %10 ist, werden alle über den M- Bus 23 ausgetauschten Lesedaten erfasst und vom DDATA- Signal angezeigt. Wenn der DDC- Wert %11 ist, werden alle über den M- Bus 23 ausgetauschten Lese- und. Schreibdaten erfasst und vom DDATA- Signal angezeigt. Unabhängig von der vom DDC- Wert angegebenen Informationsart zeigt das DDATA- Signal eine Anzahl von Bytes an, die von einer Operandenreferenzgröße festgelegt werden. Die Anzeige der Bytes ist beispielsweise acht Bit lang, die Anzeige eines Wortes ist sechzehn Bits lang, und lange Anzeigen sind zweiunddreißig Bits lang. Wenn ein Operand vom DDC- Feld des CSR gesteuert erfasst wird, wird die auf dem DDATA- Signal angezeigte Anzahl von Bytes von der auszuführenden Referenzart festgelegt. Wenn ein Operand mit einem Byte bezeichnet wurde, werden acht Datenbits angezeigt. Wenn ein Operand mit einem Word bezeichnet wurde, werden sechzehn Datenbits angezeigt. Entsprechend werden, wenn ein Operanden mit einem langen Wort bezeichnet wurde, zweiunddreißig Datenbits angezeigt. Mit der DDC können Lese- und Schreiboperationen auf dem M- Bus 23 erfasst werden. Die Operandenreferenzgröße bestimmt jedoch die Anzahl der Bytes, die tatsächlich vom DDATA- Signal angezeigt werden.
- Der Branch- Target- Bytes- (BTB-) Wert legt die Anzahl von Bytes in einer Verzweigungszieladresse fest, die von dem DDATA- Signal angezeigt wird. Wenn der BTB- Wert %00 ist, zeigt das DDATA- Signal keine Bytes der Verzweigungszieladresse an. Wenn der BTB- Wert %01 ist, zeigt das DDATA- Signal die niedrigeren zwei Bytes der Verzweigungszieladresse an. Wenn der BTB- Wert %10 ist, zeigt das DDATA- Signal die niedrigeren drei Bytes der Verzweigungszieladresse an. Wenn der BTB- Wert %11 ist, zeigt das DDATA- Signal insgesamt vier Bytes der Verzweigungszieladresse an. Man beachte, dass das DDATA- Signal die Daten im allgemeinen in der Reihenfolge von der niedrigen zur hohen Signifikanz ausgibt. Dies gilt ebenso für erfasste Operanden wie für Verzweigungszieladressen. Außerdem erfasst der von der Steuerschaltung 60 gesteuerte FIFO- Speicherpuffer 70 im Betrieb nur die Zieladressen, die zu aufgenommenen Verzweigungsoperationen gehören, die einen variablen Adressierungsbetrieb verwenden. Der variable Adressierungsbetrieb ist ein Adressierungsbetrieb, bei dem eine Adresse nicht relativ zu einem Programmzähler oder zu einer absoluten Adresse bereitgestellt wird, sondern von einer anderen Einrichtung berechnet wird. Diese Zieladressen gehören normalerweise sowohl zu Exception- Vektoren als auch zu Return- From = Exception- (RTE-), Return- From- Subroutine- (RTS-) Anweisungen und zu Einigen Formen von Jump- (JMP) und von Jump- To- Subroutines- (JSR) Befehlen.
- Nachdem in das CSR geschrieben wurde, um das DDATA- Signal zu konfigurieren, damit es die Informationen liefert, die für die Echtzeit- Ablaufverfolgungsfunktion benötigt werden, liefert die CPU 2 mit dem vom K- Bus 25 ausgetauschten KADDR- Signal mehrere Zieladressen an den FIFO- (first in first out-) Speicherpuffer 70. Außerdem liefert die CPU 2 mit dem vom K- Bus 25 übertragenen KDATA- Signal mehrere Operandendatenwerte an den FIFO- Speicherpuffer 70. Die mehreren Zieladressen und die mehreren Operandendatenwerte werden im FIFO- Speicherpuffer 70 in Abhängigkeit vom von der Steuerschaltung 60 bereitgestellten FIFO- Steuersignal gespeichert.
- Die Steuerschaltung 60 gibt das FIFO- Steuersignal in Abhängigkeit vom von der Steuerschaltung 20 bereitgestellten Ablaufverfolgungssignal und vom von denn CSR unter den mehreren Steuerregistern 40 gelieferten Konfigurationssignal aus. Der FIFO- Speicherpuffer 70 gibt das KADDR- und die darin gespeicherten KDATA- Informationen in der Reihenfolge ihres Eintreffens aus. Weil der FIFO- Speicherpuffer 70 mehrere Plätze zum Speichern von Adressen- und. Operandeninformationen hat, kann der FIFO- Speicherpuffer 70 die KADDR- und KDATA- Signale empfangen, weil jedes Informationen enthält, die die Werte der Operanden und Anweisungsadressen wiedergeben, auf die beim normalen Betrieb des Datenprozessors 3 zugegriffen wird. Anders ausgedrückt, die dem FIFO- Speicherpuffer 70 von den KADDR- und KDATA- Signalen übermittelten und in ihm gespeicherten Werte geben die aktuelle Operation des Datenverarbeitungssystems 5 in Echtzeit wieder.
- Der FIFO- Speicherpuffer 70 beeinflusst nur dann die Arbeitsgeschwindigkeit der CPU 2, wenn alle Speicherplätze im FIFO- Speicherpuffer 70 gültige Informationen enthalten, die vom DDATA- Signal ausgegeben werden müssen. Wenn alle Speicherplätze voll sind, setzt der FIFO- Speicherpuffer 70 das Full- Signal. Wenn das Full- Signal gesetzt ist, setzt die Steuerschaltung 60 das Stall- Signal. Das Stall- Signal wird an die CPU 2 ausgegeben, um den Betrieb des Kerns 9 zu unterbrechen, bis mindestens ein Speicherplatz im FIFO- Speicherpuffer 70 zum Speichern eines nächsten Werts frei wird. Bei allen anderen Operationen beeinflusst das Bereitstellen von Adressen- und Operandeninformationen durch das DDATA- Signal die Ausführungsgeschwindigkeit des Datenprozessors 3 nicht wesentlich.
- Der FIFO- Speicherpuffer 70 liefert die Adressen- und Operandeninformationen über das FTFO- Signal an die mehreren Multiplexer 80. Die CPU 2 liefert auch das CPU- Processorstatus- (CPST-) Signal an die mehreren Multiplexer 80. Das CPST- Signal liefert Prozessorstatusinformationen, um die Art der Operation anzuzeigen, die der Datenprozessor 3 gerade ausführt. Das CPST- Signal kann beispielsweise anzeigen, dass die Ausführung einer Anweisung beginnt, wann die Ausführung einer Anweisung fortgesetzt werden sollte, wann der Datenprozessor 3 in einen ausgewählten Betriebszustand eintritt, wann eine vorgewählte Verzweigungsanweisung ausgeführt wird und wann der Betrieb des Datenprozessors 3 angehalten ist. Man beachte, dass das CPST- Signal jede Form des Prozessorbetriebs anzeigen kann und nicht auf die hier aufgeführten Beispiele beschränkt ist.
- Wenn die FTFO- und CPST- Signale an die mehreren Multiplexer 80 ausgegeben werden, werden die Ausgänge der mehreren Multiplexer vom Mux- Control- Signal gesteuert. Das Mux- Control- Signal erlaubt es den mehreren Multiplexern 80, die DDATA- und PST- Signale synchron auszugeben. Man beachte, dass die DDATA- und PST- Signale synchron zu einer ansteigenden Flanke eines Takts des (hier nicht gezeigten) Datenprozessors 3 sind, und daher kann es sein, dass der Status, der über die PST- Signale ausgegeben wird, nicht im Verhältnis zu einer Übertragung eines vorgegebenen Buszyklus steht.
- Außerdem liefern die PST- Signale, wenn sie vom Mux- Control- Signal freigegeben sind, eine Markierung, die den Status der CPU 2 anzeigt. Wenn zum Beispiel durch das PST- Signal der Statuswert $C, $D, $E oder $F ausgegeben wird, zeigt das PST- Signal damit an, dass der Datenprozessor 3 einen Multizyklenbetrieb oder eine spezielle Operation ausgeführt. Fig. 10 zeigt weitere Informationen über das kodierte PST- Signal. Wenn das PST- Signal anzeigt, dass der Datenprozessor 3 den Multizyklusbetrieb der speziellen Operation ausgeführt, behält das PST- Signal diese Statuswerte bei, bis der Betrieb verlassen wird oder bis die Operation abgeschlossen ist.
- Wenn das PST- Signal einen Statuswert von $0 bis $7 ausgibt, gibt das PST- Signal Informationen aus, die bei jedem Taktzyklus aktualisiert werden.
- Wenn das PST- Signal die Statuswerte $8, $9, $A oder $B liefert, werden mit dem PST- Signal die vom DDATA- Signal extern bereitgestellten Werte eingeschränkt. Bei dieser Operation wird das PST- Signal als "Markierung" verwendet, um anzuzeigen, welche Werte des DDATA- Signal benötigte Adress- und Dateninformationen bereitstellen. Das PST - Signal wird mit diesen Statuswerten einen Taktzyklus, bevor die aktuellen Daten vom DDATA- Signal angezeigt werden, kodiert. Daher wird das externe Entwicklungssystem den Betrieb des Datenprozessors 3 korrekt verfolgen.
- Das folgende Beispiel zeigt die Verwendung der DDATA- und der PST- Signale bei einer Echtzeit- Ablaufverfolgungsoperation im einzelnen. Das Beispiel wird in Fig. 11 gezeigt. Fig. 11 zeigt die Ausführung einer indirekten Sprung- (JMP-) Anweisung, wobei das DDATA- Signal die unteren sechzehn Bits einer Zieladresse der Sprunganweisung anzeigt. Wenn die Sprunganweisung ausgeführt wird, fährt die Programmausführung bei einer effektiven Adresse fort, die von einem Operanden der Anweisung angegeben wird. Im vorliegenden Beispiel befindet sich der effektive Adresswert in der Speicherposition, die vom Register A0 angegeben wird.
- Im folgenden Beispiel werde angenommen, dass das CSR beschrieben wurde, um das DDATA- Signal korrekt zu konfigurieren, um Daten in einem geeigneten Formaa zu liefern. In dem in Fig. 11 gezeigten Beispiel folgt eine JMP (A0) Anweisung der vorangehenden Anweisung, die in Fig. 11 "letzter/s" genannt wird. Man beachte, dass die JMP- Anweisung die Zielanweisungsadresse indirekt adressiert. Zum Beispiel legen die Inhalte des in der CPU 2 gespeicherten Registers A0 eine gewünschte Zielanweisungsadresse fest. Außerdem kann sich das A0- Register, was hier nicht im einzelnen gezeigt wird, in der CPU 2 befinden. Die Verwendung einer solchen indirekten Adressierung wird als variables Adressieren bezeichnet, weil die Zielanweisungsadresse vom Inhalt des Registers A0, aber weder vom PC noch von einer absoluten Adresse abhängt.
- Bei der Ausführung des folgenden Beispiels bezeichnen DSOC und das AGEX eine Position in einer internen Pipeline des Datenprozessors 3. Um die Ausdrücke DSOC, AGEX, lAG und IC zu erläutern, muss die innere Struktur der CPU 2 kurz erläutert werden.
- In der CPU 2 des Datenprozessors 3 sind zwei unabhängige und entkoppelte Pipelines implementiert. Die erste Pipeline ist eine (hier nicht gezeigte) Anweisungsanforderung- Pipeline (IFP) zum Abrufen einer Anweisung im voraus, und die zweite Pipeline ist eine Operandenausführung- Pipeline (OEP) zum Dekodieren und Durchführen der aktuellen Ausführung der Anweisung. Ein (hier nicht gezeigter) FIFO- Anweisungspuffer dient als Entkopplung zwischen den beiden Pipelines.
- Die Anweisungsanforderung- Pipeline enthält zwei Stufen. Die erste Stufe ist eine Instruction- Address- Generation- (IAG-) Stufe, in der im voraus die nächste Adresse für einen Abruf ausgerechnet wird. Die zweite Stufe ist ein Anweisungsanforderungszyklus, bei dem die gewünschten Anweisungen aus dem Speicher abgerufen werden. Die Operandenausführung- Pipeline enthält auch zwei Stufen, wobei jede Stufe bei der Ausführung einer einzelnen Anweisung für zwei Funktionen verwendet werden kann. Eine erste Stufe ist ein Dekode- Select- (DS-) Status mit einem Operand- Fetch- Zyklus (OC). Die zweite Stufe ist eine Address- Generation- (AG-) Stufe mit einer Execute- (EX-) Stufe.
- Bei einer Anweisung, bei der Informationen zwischen zwei Registern ausgetauscht werden, wird jeweils einmal auf die zwei OEP- Stufen zugegriffen. Auf die Registeroperanden wird bei der OC- Stufe zugegriffen, und dann wird in der EX- Stufe die Anweisungsausführung schließlich durchgeführt. Die OEP- Operationen verlaufen daher von OC nach EX.
- Bei einer Anweisung, bei der Informationen zwischen einem Speicherplatz und einem Register ausgetauscht werden, wird zweimal auf jede Pipelinestufe zugegriffen. In der DS- Stufe werden zuerst die Komponenten einer Operandenadresse ausgewählt. Als zweites werden diese Komponenten summiert, um in der AG- Stufe eine Operandenadresse zu bilden. Als drittes wird in der OC- Stufe zusammen mit allen anderen Registeroperanden auf die Speicheroperanden zugegriffen, und viertens wird in der EX- Stufe die aktuelle Anweisungsausführung ausgeführt. Bei dieser Art von Anweisung gehen die OEP- Operationen von DS zu AG zu OC und zu EX.
- Bei anderen Arten von Anweisungen werden die Operationen in allen Pipelinestufen gleichzeitig ausgeführt. Bei diesen Arten von Anweisungen gehen die OEP- Operationen von DS OC zu AG EX.
- Bei diesem Beispiel werde angenommen, dass die Inhalte des Registers A0 eine Anweisungsadresse "Ziel" festlegen. Da die JMP- Anweisung die AGEX- Stufe der Operandenausführung- Pipeline besetzt, wird die Anweisungszieladresse als "Ziel" berechnet. Bei diesem Richtungswechselbetrieb lässt die Anweisungsanforderung- Pipeline die aktuelle Abfolge von bereits abgerufenen Adressen fallen, und sie legt beginnend mit der Adresse "Ziel" eine neue Abfolge fest. Bei dieser Ausführungsform verursacht die Richtungswechsel- JMP- Anweisung, dass die zwei Pipelines an den AGEX- und IAG- Stufen verbunden werden, damit die neue Anweisungsabfolge eingerichtet wird. Sobald ein Richtungswechsel aufgetreten ist, kehren die beiden Pipelines in ihren rnormalen entkoppelten Betriebszustand zurück, wobei die Anweisungsanforderung- Pipeline sequentiell neue Adressfolgen im voraus abruft. Daher werden danach die Adressen von Ziel, Ziel + 4, und Ziel + 8 abgerufen.
- Wenn die JMP- Anweisung in den Stufen der Operandenanweisung- Pipeline fertiggestellt ist, signalisiert die CPU 2 mit dem internen CPST- Signal einen "Verzweigung durchgeführt"- Wert. Das interne CPST- Signal hat daher den Wert $5. Bei dieser Ausführungsform sind die aktuellen PST- und DDATA- Signale gegenüber ihren internen Gegenstücken um einen Taktzyklus verzögert. Da die CPU 2 Anweisungen an den neuen Adressen im voraus abruft, erfasst der FIFO- Speicherpuffer 70 die Anweisungsadresse 'Ziel' am Schluss des IC- Zyklus der Anweisungsanforderung- Pipeline. Beim nächsten Taktzyklus fügen die mehreren Multiplexer 80 eine "Markierung" in das PST- Signal ein, die anzeigt, dass das DDATA- Signal zwei Informations- Bytes anzeigen muss. Daher hat das PST- Signal den Wert $9. Der Betrieb der mehreren Multiplexer 80 wird von der Steuerschaltung 60 gesteuert. Nach dem Auftreten der Markierung im PST- Signal fahren die mehreren Multiplexer 80 fort, die sechzehn Bits niedriger Ordnung der erfassten Anweisungsadresse 'Ziel', beginnend mit der am wenigsten signifikanten Tetrade, den Bits drei bis null bis zu den Bits fünfzehn bis zwölf, anzuzeigen.
- Ein interner PST- Wert (das CPST- Signal aus Fig. 2) überträgt in einem ersten Taktzyklus den Wert $5. Wie in Fig. 10 gezeigt, beginnt, wenn der PST- Wert den Wert $5 hat, der Prozessor damit, die aufgenommene Verzweigungsanweisung auszuführen. Die entspricht der JMP- Anweisung, die die Abfolge des Programms an einer Adresse fortsetzt, die vom Register A0 indirekt angegeben wird. In diesem in Fig. 11 gezeigten ersten Taktzyklus überträgt das interne DDATA- Signal (das FIFO- Signal aus Fig. 2) den Wert $0. Wie in Fig. 9 gezeigt, werden im Datenprozessor 3 keine Breakpoints freigegeben, wenn der DDATA- Wert den Wert $0 hat.
- In einem zweiten Taktzyklus überträgt der interne PST- Wert den Wert $9, um anzuzeigen, dass die Zieladresse für die JMP- Anweisung in den nächsten zwei. Informationsbytes angegeben wird, die über den internen DDATA- Wert bereitgestellt werden. An dieser Stelle fährt das interne DDATA- Signal fort, den Wert $0 zu übertragen. Wenn der interne PST- Wert einen Statuswert $8, $9, $A oder $B überträgt, werden mit dem PST- Signal, wie bereits erwähnt wurde, die Werte eingeschränkt, die vom externen DDATA- Signal geliefert werden. Bei dieser Operation wird das interne PST- Signal als "Markierung" verwendet, um anzuzeigen, welche Werte des internen DDATA- Signals die benötigten Zieladressinformationen bereitstellen. Das interne PST- Signal wird mit diesen Statuswerten einen Taktzyklus, bevor die aktuellen Daten vom internen DDATA- Signal angezeigt werden, kodiert.
- In einem dritten Taktzyklus überträgt der interne PST- Wert den Wert $0, um anzuzeigen, dass die Ausführung der Anweisung fortfährt. Außerdem liefert das interne DDATA- Signal im dritten Taktzyklus die Bits drei bis null des Zieladresswerts.
- In einem vierten Taktzyklus stellt der CPST- Wert den von der ersten Anweisung festgelegten Wert dar, die sich an der Zieladresse befindet. Zu dieser Zeit überträgt das interne DDATA- Signal die Bits sieben bis vier des Zieladresswerts. Dann liefert das interne DDATA- Signal im fünften und sechsten Taktzyklus die Bits elf bis acht bzw. die Bits fünfzehn bis zwölf des Zieladresswerts. Auf diese Weise kann das externe Entwicklungssystem 7 sowohl den aktuellen Datensatz einer Verzweigungsoperation mit variabler Adressierung als auch die indirekt bestimmte Adressposition in Echtzeit beobachten.
- Die mehreren Multiplexer 80 liefern das interne PST- und das interne DDATA- Signal an das externe Entwicklungssystem 7 als PST- bzw. DDATA- Signal. Die PST- und die DDATA- Signale werden über (nicht im einzelnen gezeigte) Kontakte an der integrierten Schaltung bereitgestellt. Außerdem beachte man, dass die PST - und die DDATA- Signale, die über die Kontakte der integrierten Schaltung bereitgestellt werden, Informationen einen Taktzyklus, nachdem die Information über das interne PST- bzw. das interne DDATA- Signal übertragen wurden, übermitteln.
- Durch Ermöglichen dieser Echtzeitbeobachtung kann das externe Entwicklungssystem 7 fehlerhaftes Verhalten schneller und im einzelnen erkennen und isolieren. Außerdem fährt die CPU 2 des Datenprozessors 3 mit der Ausführung von Anweisungen fort, während das externe Entwicklungssystem 7 den Ablauf in Echtzeit beobachtet, und sie wird im allgemeinen durch das Bereitstellen der DDATA- undl der PST- Signale nicht beeinflusst.
- Während das oben dargestellte Beispiel die Verwendung der Ablaufverfolgungsfunktion bei der Ausführung einer JMP- Anweisung zeigt, kann die Abfolge der Ausführung des Datenprozessors 3 außerdem vollständig dynamisch verfolgt werden. Wie anhand der JMP- Anweisung gezeigt wurde, wird das dynamische Verfolgen des Ablaufs der Ausführung durch jede Operation, die die Abfolge ändert, komplizierter. Einige Verzweigungsanweisungen können beispielsweise mit variabler Adressierung implementiert sein, bei der eine Berechnung einer Zielanweisungsadresse weder relativ zum PC- (Programmzähler-) noch absolut erfolgt, sondern ein für das Programm sichtbares Register benutzt wird.
- Bei Anweisungen mit variabler Adressierung werden die DDATA- und PST- Signale in einer speziellen Reihenfolge geliefert, so dass eine Zieladresse korrekt bestimmt und für das externe Entwicklungssystem 7 bereitgestellt werden kann. Zunächst wird die Ausführung einer gewählten Verzweigungsanweisung vom über mehrere Anschlüsse der integrierten Schaltung übertragenen PST- Signal identifiziert. Wie bei der Kodierung in Fig. 10 gezeigt wurde, zeigt das PST- Signal an, dass eine aufgenommene Verzweigungsanweisung ausgeführt wird, wenn das PST- Signal den Wert $5 hat. Dann kann mit dem PST- Signal angezeigt werden, dass das DDATA- Signal eine Zieladresse anzeigt. Eine Kodierung des PST- Signals gibt die Anzahl von Bytes an, die von den DI7ATA- Signalen angezeigt werden. Die Zieladresse ist dann in den folgenden Taktzyklen unter Verwendung des DDATA- Signals optional verfügbar. Die Anzahl der Bits der vom DDATA- Signal angezeigten Zieladresse ist ein konfigurierbarer Parameter, der vom externen Anwender gesteuert wird.
- Das Datenverarbeitungssystem 5 enthält eine einzigartige Ablaufverfolgungsfunktion, die dynamisch ausgeführt wird und die sich nicht übermäßig auf die Leistung der CPU 2 des Datenprozessors 3 auswirkt.
- Man beachte, dass bei der Echtzeit- Ablaufverfolgungsfunktion die ausgeführte Anweisungsfolge, wie sie vom PST- Signal festgelegt wird, strikt synchron mit den erfassten und vom DDATA- Signal bereitgestellten Daten ist. Bei der hier beschriebenen Ausführungsform ergibt sich eine strikte Ordnung, so dass das DDATA- Signal leicht einer zugehörigen Anweisung zugeordnet werden kann. Im folgenden Beispiel wird die Ordnung im einzelnen beschrieben. Im folgenden Beispiel soll der folgende Code ausgeführt werclen.
- 00001316 movq #1, dO
- 00001318 mov. 1 dO, (- 4, a6)
- 0000131c pea (- 68, a6)
- 00001320 pea (- 36, a6)
- 00001324 bsr.w Func2
- 0000115c mov. 1 d7, - (a7)
- Wenn im obigen Beispiel das CSR konfiguriert ist, um zwei Bytes der Verzweigungszieladressinformation anzuzeigen, wenn alle Operanden auf den M- Bus 23 zugreifen und wenn sowohl Lese- als auch Schreiboperanden erfasst wurden, werden folgende PST- Signale und DDATA- Signale ausgegeben.
- Man beachte, dass im oben beschriebenen Beispiel das PST- und das DDATA- Signal synchron bleiben, so dass ein vorgegebener Operand, der von DDATA- Signal angezeigt wird, stets eindeutig einer vorgegebenen Anweisung zugeordnet werden kann. Zum besseren Verständnis der Erläuterung zeigt das obige Beispiel keine Überlappung zwischen dem DDATA- Signal und einem PST- Wert, der ungleich null ist. Dies kann jedoch auftreten, aber das Verhältnis zwischen dem PST- und den DDATA- Signalen wird dadurch nicht verletzt.
- Außer den Echtzeit- Ablaufverfolgungsfunktionen enthält das Datenverarbeitungssystem 5 eine Schaltung und ein Verfahren zum Ausführen von Echtzeit- Debug- Funktionen. Bei vielen Datenprozessoren, insbesondere bei eingebetteten Systemen kann der Datenprozessor wegen Systemeinschränkungen oder mangels Fähigkeit, fehlerhafte Schaltungen oder Programme zu identifizieren, bei einer Debug- Operation nicht angehalten werden, wenn der Datenprozessor nicht mehr im normalen Betrieb arbeitet. Das Datenverarbeitungssystem 5 führt die Debug- Operation aus, wobei der Echtzeitbetrieb des Datenprozessors nur minimal gestört und der Datenprozessor nicht angehalten wird.
- Mit Breakpoint- Operationen werden bei einer Debug- Operation üblicherweise Programmierungsereignisse identifiziert. Wenn ein Programmierungsereignis eintritt, wird ein Breakpoint- Signal gesetzt, und Daten werden ausgelesen, um den Status eines Softwareprogramms zu bestimmen. Wie bei der Ablaufverfolgungsfunktion kann ein externer Anwender mit der Breakpoint- Funktion den Status von jedem von mehreren ausgewählten Registern und Speicherplätzen feststellen, so dass Fehler bei der Datenverarbeitung identifiziert werden können.
- Das Datenverarbeitungssystem 5 enthält die mehreren Hardware- Breakpoint- Register 50 und die Breakpoint- Schaltung 100, um solche Breakpoint- Operationen auszuführen. Es sind sämtliche Breakpoint- Operationen auf der Grundlage eines Werts des Programmzählers oder einer Programmzählermaskierung, eines Bereichs der Adresse eines Operanden sowie eines Datenwerts oder eines Datenmaskierungswerts implementiert. Zusätzlich können die Breakpoint- Operationen auch in ein- oder zweistufigen Triggern konfiguriert werden, bei denen der exakte Trigger- Response mit dem Trigger- Definition- Register (TDR) unter den mehreren Steuerregistern 40 programmiert werden kann. Im folgenden wird die Ausführung der Breakpoint- Operation ausführlicher beschrieben.
- In jedes der mehreren Hardware- Breakpoint- Register 50 kann entweder vom externen Entwicklungssystem 7 oder von der CPU 2 des Datenprozessors 3 geschrieben werden. Wie in Fig. 3 gezeigt wurde, legen die Address- Breakpoint- Register (ABLR und ABHR) einen Bereich in einem logischen Operanden- Adressbereich des Datenverarbeitungssystems 5 fest, mit dem eine Breakpoint- Funktion ausgelöst werden kann. Das Address- Attribute- Breakpoint- Register (AABR), das in Fig. 6 im einzelnen gezeigt wird, legt mehrere Adressattribute und eine Maskierung fest, die vom Trigger für die Breakpoint- Funktion erfüllt werden müssen. Wie die ABLR- und ABHR- Adresswerte wird ein im AABR gespeicherter Attributwert mit einem über den K- Bus 25 übertragenen Adressattributsignal verglichen.
- Die mehreren Hardware- Breakpoint- Register 50 enthalten außerdem mehrere Program- Counter- Brea kpoint- Register. Die mehreren Program- Counter- Breakpoint- Register legen einen Bereich im logischen Anweisungsadressbereich des Datenverarbeitungssystems 5 fest, der verwendet werden kann, um eine Breakpoint- Funktion auszulösen. Der Program- Counter- Breakpoint- (PBR-) Wert kann von einem im Program- Counter- Breakpoint- Mask- (PBMR-) Registe r gespeicherten Wert maskiert werden. Bei einer Ausführungsform werden nur die Bits im PBR bei einer Vergleichsoperation mit einem Programmzählerwert des Datenverarbeitungssystems 5 verwendet, für die der entsprechende im PBMR gespeicherte Wert null ist. Man beachte, dass der Programmzählerwert in einem (hier nicht gezeigten) Programmzählerregister der CPU 2 des Datenverarbeitungssystems 5 gespeichert ist.
- Zusätzlich zu den Program- Counter- Breakpoint- Registern enthalten die mehreren Hardware- Breakpoint- Register 50 mehrere Data- Breakpoint- Register. Die mehreren Data- Breakpoint- Register enthalten ein Data- Breakpoint- Register (DBR) und ein Data- Breakpoint- Mask- Register (DBMR). Das DBR speichert einen Datenwert, der ein spezielles Datenmuster festlegt, mit dem ein Trigger gebildet werden kann, wenn das Datenverarbeitungssystem 5 eine Debug- Operation ausführt. Ein im DBMR gespeicherter Dat enmaskierungswert maskiert den im DBR gespeicherten Datenwert. Bei einer Ausführungsform können daher nur die im DER gespeicherten Bits, für die der entsprechende im DBMR gespeicherte Wert null ist, mit den über den K- Bus 25 übertragenen Datensignalen verglichen werden, um festzustellen, ob eine Trigger- Bedingung erfüllt ist.
- Jedes der mehreren Hardware- Breakpoint- Register 50 kann unterschiedlich konfiguriert werden, um unter Verwendung des TDR unter den mehreren Steuerregistern 40 auf Trigger zu reagieren. Unabhängig von der vom TDR angezeigten Konfiguration zeigt das DDATA- Signal immer dann einen ausgelösten Breakpoint an, wenn das DDATA- Signal keine erfassten Operanden und Adressen anzeigt. Der Ausgang des DDATA- Signals ist in Fig. 9 gezeigt.
- Fig. 9 zeigt das Verhältnis zwischen einem von den Bits drei bis null des DDATA- Signals bereitgestellten Wert und einem Breakpoint- Status. Man beachte, dass die Bits einunddreißig bis achtundzwanzig des CSR den Bits drei bis null des DDATA- Signals entsprechen.
- Wenn das DDATA- Signal den Wert $0 hat, werden keine Breakpoints freigegeben. Wenn das DDATA- Signal den logischen Wert $1 bereitstellt, wartet das Debug- Modul 10 auf einen Breakpoint erster Stufe als Trigger. Wie bereits erläutert wurde, werden die Attribute eines Breakpoints erster Stufe von den Bits fünfzehn bis null cles Trigger- Definition- Registers (TDR) festgelegt. Wenn das DDATA- Signal den logischen Wert $2 hat, wurde ein Breakpoint erster Stufe ausgelöst. Wenn das DDATA- Signal den logischen Wert $5 liefert, wartet das Debug- Modul 10 auf einen Breakpoint zweiter Stufe als Trigger. Wie bereits erläutert wurde, werden die Attribute eines Breakpoints zweiter Stufe von den Bits einunddreißig bis sechzehn des Trigger- Definition- Registers (TDR) festgelegt. Wenn das DDATA- Signal den logischen Wert $6 bereitstellt, wurde ein Breakpoint zweiter Stufe ausgelöst.
- Man beachte, dass auch in den Bits einunddreißig bis achtundzwanzig des CSR ein Zustand der Breakpoint- Operation gespeichert ist.
- Vor der Ausführung einer Debug- Operation muss ein Breakpoint- Wert in einem geeigneten unter den mehreren Hardware- Breakpoint- Registern 50-gespeichert werden. Der Breakpoint- Wert kann vom externen Entwicklungssystem 7 über die serielle Schnittstelle 30 oder von der CPU 2 über den K- Bus 25 bereitgestellt werden.
- Um diese Schreibfunktion von einer externen Vorrichtung auszuführen, schiebt das externe Entwicklungssystem 7 unter Verwendung sowohl der DSDI- als auch der DSCLK- SignaTe einen Befehl zur seriellen Schnittstelle 30, um Daten in ein vorgewähltes der mehreren Hardware- Breakpoint- Register 50 zu laden. Bei einer Ausführungsform wird ein erster Teil des Befehls vom DSDI- Signal geliefert und vom DSCLK- Signal hereingetaktet. Danach werden weitere Teile der Befehle geliefert. Alle Teile des Befehls werden im Register 32 gespeichert, bis ein Informationspaket mit sechzehn Bits komplett ist. Man beachte, dass alternative Ausführungsformen mehr oder weniger als sechzehn Bits enthalten können, die die vorliegende Ausführungsform benötigt.
- Bei einer anderen Ausführungsform kann die CPU 2 des Datenprozessors 3 den Breakpoint- Wert durch einen in das vorgewählte der mehreren Breakpoint- Register 50 geschriebenen Wert bestimmen. Wenn die CPU 2 den Wert in das vorgewählte der mehreren Breakpoint- Register 50 schreibt, wird der Wert an ein Temporärregister 170 der Breakpoint - Schaltung 100 aus Fig. 3 ausgegeben. Der Wert wird dem Temporärregister 170 über den K- Bus 25 bereitgestellt. Vom Temporärregister 170 wird der Wert übertragen und im Register 32 in Paketen zu sechzehn Bits gespeichert. Wenn die CPU in das CSR schreibt, wird der Operandenwert, wie bereits erwähnt wurde, über das KDATA- Signal übertragen und im Temporärdatenregister 170 mit den von der CPU 2 an die Steuerschalturig 20 über den Steuerbus 15 ausgegebenen Steuersignalen erfasst. Daher scheinen die Breakpoint- Werte für die mehreren Steuerregister 40 gleich denen, die für das Register 32 vom externen Entwicklungssystem 7 bereitgestellt werden.
- Sobald der Breakpoint- Wert in das vorgewählte der mehreren Breakpoint- Register 50 geschrieben wurde, führt die CPU 2 den Programmcode im normalen Betriebszustand aus. Bei der Ausführung dieses Programmcodes wird vom KADDR- Signal des K- Busses 25 die Adressinformation ausgetauscht, und vom KDATA- Signal des K- Bus 25 werden Dateninformationen ausgetauscht. Außerdem aktualisiert die Programmzählerinformation in der CPU 2 einen im temporären PC- Register 125 gespeicherten Wert zum Zwecke einer Program- Counter- Breakpoint- Vergleichsoperation.
- Wenn Adress-, Daten- und Programmzählerinformationen an die Hardwareschaltung 100 übertragen werden, empfangen die Komparatoren 130, 140, 180 die Informationen und führen selektiv Vergleichsoperationen aus, ohne dadurch die Leistung des Datenprozessors 3 negativ zu beeinflussen. Außerdem werden mehrere Steuerwerte der Hardwareschaltung 100 über den Steuerbus 15 vom TDR unter den mehreren Steuerregistern 50 ausgegeben. Die mehreren Steuerwerte enthalten die bereits beschriebenen Werte des TDR, die selektiv unter Verwendung der Hardwareschaltung 100 eine Trigger- Operation konfigurieren.
- Wenn das externe Entwicklungssystem 7 zum Beispiel bestimmt, dass ein Breakpoint gesetzt werden soll, wenn eine Adresse in einen bestimmten Adressbereich fällt, muss das externe Entwicklungssystem 7 über die serielle Schnittstelle 30 einen oberen Adresswert in das ABHR 110 aus Fig. 3 und einen unteren Adresswert in das ABLR 120 aus Fig. 3 schreiben. Bevor der Komparator 130 und der Komparator 140 jedoch bestimmen können, ob eine vom KADDR- Signal vom K- Bus 25 gelieferte Adresse in dem von den im ABLR 120 und ABHR 110 gespeicherten Adressen festgelegten Bereich liegt, muss das TDR unter den mehreren Steuerregistern 40 über den Steuerbus 15 eine geeignete Steuerung vornehmen.
- Bei diesem Beispiel umfasst die geeignete Steuerung entweder ein gesetztes Enable- Address- Range- (EAR-) Bit oder ein gesetztes Enable- Address- Breakpoint- Inverted- (EAI-) Bit. Wie bereits erläutert wurde, gibt das gesetzte EAR- Bit einen Breakpoint als Trigger in dem Bereich frei, der vom ABLR 120 und dem ABHR 110 festgelegt wird. Entsprechend gibt das gesetzte EAI- Bit den Breakpoint bei einer Adresse außerhalb des Bereichs bzw. die nicht in dem Bereich enthalten ist, der vom ABLR 120 und ABHR 110 festgelegt wird, als Trigger frei.
- Abhängig von den logischen Werten des EAR- und EAI- Bit bestimmen die Komparatoren 130 und 140, ob ein über das KADDR- Signal übertragener Adresswert größer oder kleiner als ein entsprechender Wert im ABHR 110 und ABLR 120 ist. Wenn das EAR- Bit gesetzt ist und der über das KADDR- Signal übertragene Adresswert in einem von den Adresswerten im ABHR 110 und ABLR 120 festgelegten Bereich liegt, setzen die Komparatoren 130 und 140 das Breakpoint- Signal, um anzuzeigen, dass auf einen vorgewählten Trigger- Punkt zugegriffen wurde. Wenn das Breakpoint- Signal gesetzt ist, setzt die Steuerschaltung 20 entweder ein BKPT- (Breakpoint-) Signal, ein Debug- Interrupt- Signal oder ein GO- Signal, welches über das mehradrige Breakpoint- Steuersignal zur CPU 2 des Kerns 9 übertragen wird.
- Wenn das Breakpoint- Signal gesetzt ist, bewirkt ein Breakpoint- Trigger die im TDR festgelegte Reaktion. Wenn der Datenprozessor 3 angehalten wird, zwingt das gesetzte BKPT- Signal die CPU 2, die Ausführung in einem Debug- Hintergrundbetrieb anzuhalten. Der Debug- Hintergrundbetrieb wird im folgenden genauer erläutert. Um in den Debug- Hintergrundbetrieb einzutreten, sollten die TRC- Bits des TDR gleich %O1 sein. Man beachte, dass die TRC- Bits den Bits einunddreißig und dreißig des TDRs entsprechen. Wenn der Eintritt in den Debug- Hintergrundbetrieb erfolgt und auf der Grundlage eines Programmzählerwerts ein Breakpoint gesetzt wird, hält die CPU 2 die Ausführung des Datenprozessors 3 an, bevor eine anvisierte Anweisung ausgeführt wird. Bei Breakpoints auf der Grundlage von Adress- und Datenvergleichen kann die CPU 2 vor einem Anhalten verschiedene zusätzliche Anweisungen ausführen. Man beachte, dass diese Art des Breakpoint- Betriebs nur verwendet werden sollte für Breakpoint- Operationen, die nicht in Echtzeit erfolgen, da der Datenprozessor 3 in Abhängigkeit von dem Trigger angehalten wird.
- Wenn der Datenprozessor 3 jedoch nicht angehalten wird, setzt die Steuerschaltung 20 das Debug- Interrupt- Signal, um anzuzeigen, dass ein besonderer Debug- Interrupt an die CPU 2 ausgegeben werden sollte. Wenn der spezielle Debug- Interrupt an die CPU 2 ausgegeben werden soll, werden die TRC- Bits des TDR auf den logischen Wert %10 gesetzt. Wenn die TRC- Bits auf %10 gesetzt sind, wandelt die Steuerschaltung 20 den Breakpoint- Trigger in den speziellen Debug- Interrupt an die CPU 2 um. Der spezielle Debug- Interrupt liegt an, bis die CPU 2 die Interrupts abfragt. Die CPU 2 fragt einmal pro Anweisung ab. Wenn der spezielle Debug- Interrupt gesetzt ist, tritt ein Breakpoint auf der Grundlage eines Programmzählerwerts auf, bevor eine anvisierte Anweisung ausgeführt wird. Dies ist möglich, weil die Programmzählervergleichsoperation zum selben Zeitpunkt freigegeben ist, zu dem die CPU 2 abfragt, ob ein Interrupt vorliegt. Bei Breakpoints auf der Grundlage von Adress- und Datenvergleichen kann die CPU 2 verschiedene weitere Anweisungen ausführen, bevor sie die Interrupt- Opesration ausführt.
- Wenn der spezielle Debug- Interrupt von der CPU 2 erkannt wird, bricht die CPU 2 die Ausführung eines Softwareprogramms ab und initiiert eine Exception- Verarbeitungsroutine. Bei der Auslösung der Exception- Verarbeitungsroutine tritt die CPU 2 in einen Emulationsbetriebszustand ein. Man beachte, dass alle Interrupts ignoriert werden, wenn die CPU 2 im EmuTationsbetriebszustand arbeitet. Abhängig von einem Status des MAP- Bits im CSR unter den mehreren Steuerregistern 40 kann der Emulationsbetriebszustand erzwingen, dass alle Speicherzugriffe in einen speziell von den TT- und TM- Werten des AABR- Registers der mehreren Hardware- Breakpoint- Register 50 bezeichneten Abbildungsadressraüm erfolgen. In diesem Beispiel ist der TT- Wert gleich $2 und der TM- Wert entweder gleich $5 (bei Operanden) oder $6 (bei Anweisungen).
- Nachdem ein Standard- Exception- Stapel mit acht Bits erzeugt wurde, ruft die CPU 2 einen speziellen Exception- Vektor ab. Die CPU 2 fährt mit der Ausführung bei einer Anweisungsadresse fort, die in dem eindeutigen Exception- Vektor enthalten ist. Ein Debug- Interrupt- Treiber in der CPU 2 kann so programmiert sein, dass eine Gruppe von Supervisor- Anweisungen mehrere notwendige Sicherungsoperationen auszuführen. Zum Beispiel kann der Debug- Interrupt- Treiber in einem reservierten Speicherbereich den Status von allen für das Programm sichtbaren Registern und allen speziellen Speicherplätzen sichern. Der reservierte Speicherbereich kann sich im Speicher 6 befinden, oder er kann sich in jedem anderen Speicher des Datenverarbeitungssystems 5 befinden. Sobald die nötigen Operationen abgeschlossen sind, wird eine Return- From- Exception- (RTE-) Anweisung ausgeführt, und die CPU 2 verlässt den Emulationsbetriebszustand. Wenn die CPU 2 das Debug- Interrupt- Signal empfängt und in einen Emulationsbetriebszustand eintritt, hat das PST- Signal den Wert $D, um diesen Zustand zu signalisieren. Das PST- Signal hat diesen Wert ab dem Zeitpunkt, an dem die Debug- Interrupt- Exception ausgeführt wird, bis die erste Anweisung der Debug- Interrupt- Exception- Verarbeitungsroutine abgerufen wurde. Zusätzlich hat das PST- Signal den Wert $7, um anzuzeigen, dass die CPU 2 den Emulationsbetriebszustand verlassen hat. Außerdem kann das externe Entwicklungssystem 7 auf die reservierten Speicherplätze im Speicher 6 oder in einem anderen Speicher des Datenverarbeitungssystems 5, der die reservierten Speicherpositionen enthält, zugreifen, sobald der Debug- Interrupt- Treiber die Ausführung der Debug- Exception- Verarbeitungsroutine abgeschlossen hat.
- Der Debug- Interrupt kann für Debug- Operationen verwendet werden, wobei eine leichte Störung des normalen Betriebs des Datenprozessors 3 toleriert werden kann, dazu gehört jedoch nicht das Anhalten des Datenprozessors 3. Es sollte außerdem beachtet werden, dass das Eintreten in und das Verlassen von dem Emulationsbetrieb durch den Datenprozessor eindeutig von den Werten des PST- Signals signalisiert wird.
- Außerdem beachte man, dass beim dem Vergleich statt eines Bereichs auch eine einzelne Adresse, ein Datenwert oder die Maskierung eines Datenwerts, ein Programmzählerwert oder die Maskierung eines Programmzählerwerts implementiert werden kann. Wie bei dem im obigen Beispiel beschriebenen Adressbereichsvergleich ist es bei Vergleichen auf der Grundlage eines Datenwerts, der Maskierung eines Datenwerts, des Programmzählerwerts bzw. der Maskierurng eines Programmzählerwerts erforderlich, dass das TDR über den Steuerbus 15 geeignete Steuerwerte bereitstellt.
- Die Echtzeit- Debug- Operation kann auf zweistufige Trigger-Werte erweitert werden. In der vorliegenden Ausführungsform definieren die Bits 31 bis 16 einen Trigger zweiter Stufe und die Bits 15 bis 0 einen Trigger erster Stufe. Wenn der Trigger als ein zweistufiger Trigger konfiguriert ist, arbeitet der Trigger auf eine Weise, die einem bedingten "Wenn, dann, wenn" entspricht. Wenn beispielsweise eine erste Bedingung bzw. eine erste Stufe eines Triggers erfüllt ist, muss eine zweite Bedingung bzw. eine zweite Stufe erfüllt sein, bevor der Trigger eine Breakpoint- Funktion zur Ausführung vom Datenverarbeitungssystem 5 freigibt. Mit dieser bedingten Trigger- Konstruktion kann das externe Entwicklungssystem 7 sowohl anpassungsfähiger als auch präziser arbeiten. Man beachte, dass bei dieser Ausführungsform nur zweistufige Trigger- Konstruktionen ausgeführt werden. Es können jedoch auch Trigger- Konstruktionen mit weiteren Stufen implementiert werden.
- Als ein Beispiel einer zweistufigen Trigger- Operation werde angenommen, dass das externe Entwicklungssystem 7 einen Trigger festlegen will, wenn im Anwenderbetrieb ein Operandenwort mit einem anderen Wert als, $FEED in die Adresse $0000FACE geschrieben wird und der Programmzähler danach den Wert $DEADBEEF hat. Die Bedingung, dass im Anwenderbetrieb ein Operandenwort mit einem anderen Wert als $FEED in die Adresse $0000FACE geschrieben wird, ergibt einen Trigger erster Stufe. Ein Trigger zweiter Stufe liegt vor, wenn der Programmzähler gleich dem Wert $DEADBEEF ist.
- Um diese Operation auszuführen, kann das externe Entwicklungssystem 7 den Wert $DEADBEEF in das Program- Counter- Breakpoint- Register (PBR) 115 und den Wert $000000000 in das Program- Counter- Breakpoint- Mask- Register (PBMR) 190 schreiben. Wenn alle Nullen in das PBMR 190 geschrieben sind, werden alle im PBR 115 gespeicherten Bits mit einem vom Temporär- PC- Register 125 gelieferten Programmzählerwert verglichen. Man beachte, dass die Vergleichsoperation als Reaktion auf einen im TDR unter den mehreren Steuerregistern 40 gespeicherten Wert ausgeführt wird.
- Das externe Entwicklungssystem 7 muss außerdem den Wert $0000FACE in das Address- Breakpoint- Low- Register (ABLR) 120 und den Wert $0041 in das Address- Attribute- Breakpoint- Register (AABR) aus Fig. 6 schreiben. Der Wert $0000FACE im ABLR 120 bezeichnet den Wert, bei dem der Komparator 140 das Breakpoint- Signal setzt, wenn die Konfiguration des TDR den Vergleich zulässt. Der Wert $0041 im AABR setzt den TM- Wert auf %00, den SZ- Wert auf %10 und das R- (Lese-) Bit auf 0. Der TM- und der TT- Wert stellen sicher, dass der Trigger eine Schreiboperation eines Operandenworts im Anwenderbetrieb ist.
- Das externe Entwicklungssystem 7 muss den Wert $0000FEED in das Data- Breakpoint- Register (DER) 160 der Breakpoint- Schaltung 100 schreiben. Das externe Eritwicklungssystem 7 muss außerdem den Wert $000000000 in das Data- Breakpoint- Mask- Register (DBMR) 150 schreiben. Wenn alle Nullen in das DBMR 150 geschrieben sind, werden alle im DBR 160 gespeicherten Bits mit einem vom KDATA- Signal gelieferten Datenwert vom Komparator 180 verglichen. Man beachte, dass die Vergleichsoperation als Reaktion auf den im TDR unter den mehreren Steuerregistern 40 gespeicherten Wert ausgeführt wird.
- Schließlich muss das externe Entwicklungssystem 7 den Wert $20022824 in das TDR unter den mehreren Steuerregistern 40 schreiben. Wenn das TDR diesen Wert hat, hat der Trigger erster Stufe die folgenden Eigenschaften. In diesem Beispiel ist das EBL- Bit gesetzt, das EDLW- Bit ist negiert, das EDWL- Bit ist gesetzt, und das EDWU, EDLL-, EDLM-, EDUM- und das EDUU- Bit sind alle negiert, das EAL- Bit ist gesetzt, und das EPC- und PCI- Bit sind negiert. Mit dieser Konfiguration konfiguriert das TDR den Trigger erster Stufe, damit das Breakpoint- Signal auf einen Datenwert mit der Länge eines Wortes gesetzt werden kann, der nicht derselbe ist, wie der im DBR 160 gespeicherte Wert. Außerdem ist das TDR konfiguriert, den Trigger erster Stufe zu setzen, wenn jede der oben aufgeführten Bedingungen erfüllt ist und der im ABLR 120 gespeicherte Adresswert einem vom KADDR- Signal gelieferten Wert entspricht. Wenn jede der vom TDR festgelegten oben aufgeführten Bedingungen erfüllt ist, ist der Trigger erster Stufe gesetzt, und dann muss der Trigger zweiter Stufe erfüllt werden, bevor das Breakpoint- Signal gesetzt werden kann.
- Außerdem hat, wenn das TDR diesen Wert hat, der Trigger zweiter Stufe die folgenden Eigenschaften. In diesem Beispiel ist der TRC- Wert %00, das EBL- Bit ist gesetzt, das EDLW-, EDWL-, EDWU-, EDLL-, EDLM-, EDUM- und das EDUU- Bit sind alle gesetzt, und das PCI- Bit ist negiert. Bei dieser Anordnung ist das TDR so konfiguriert, dass der Trigger zweiter Stufe freigegeben ist, das Breakpoint- Signal bei einem Wert des Programmzählers zu setze n, der gleich dem im PBR 115 gespeicherten ist. Wenn alle der oben aufgeführten vom TDR festgelegten Bedingungen erfüllt sind, wird der Trigger zweiter Stufe gesetzt, und das Breakpoint- Signal kann gesetzt werden.
- Wie bereits erwähnt wurde, kann dass Setzen des Breakpoint- Signals einen programmierbaren Irigger- Response ergeben. Der Trigger- Response wird in dIe Bits 31 und 30 des TDR unter den mehreren Steuerregistern 40 einprogrammiert. Wenn sie korrekt programmiert sind, kann der Trigger- Response der CPU 2 des Datenprozessors 3 den Trigger über das DDATA- Signal für das externe Entwicklungssystem 7 sichtbar machen und keine interne Reaktion verursachen. Ein zweiter Trigger- Response würde die CPU 2 zwingen, die Ausführung anzuhalten und über das PST- Signal extern anzuzeigen, dass die CPU 2 angehalten worden ist. Ein dritter Trigger- Response könnte einen Debug- Interrupt für die CPU 2 erzeugen. Wie bereits erwähnt wurde, hat der Debug- Interrupt eine höhere Priorität als alle anderen Interrupts, und er lässt die CPU 2 in einen Emulationsbetriebszustand eintreten und auf eine spezielle Exception- Verarbeitungsroutine zugreifen. Der Eintritt in den und das Verlassen von dem Emulationsbetriebszustand wird an den PST- Ausgängen extern sichtbar gemacht.
- Um die oben beschriebenen Echtzeit- Debug- Funktionen zu unterstützen, wird der gleichzeitige Betrieb des Kerns 9 und des Debug- Moduls 10 unterstützt. Ein. Entscheidungsschema, das die Buszyklen auf dem K- Bus 25 für das Debug- Modul 10 effektiv plant, ist implementiert, damit die Echtzeit- Debug- Operationen effizient ausgeführt werden können. Das Entscheidungsschema plant die Buszyklen für das Debug- Modul 10 effektiv, indem eine interne Anweisungsanforderung- Pipeline der CPU 2 gefüttert wird. Das Entscheidungsschema wartet bis alle Operandenanforderungen von der CPU 2 bedient wurden, bevor dem Debug- Modul 10 der Zugriff auf den K- Bus 25 gewährt wird. Das Debug- Modul 10 empfängt das Bus- Grant- Signal und treibt den K- Bus 2 mit der benötigten, im ABHR 110 gespeicherten Adresse und den im AABR aus Fig. 6 gespeicherten Attributen. Bei einer Leseanforderung wird die Reaktion auf das KDATA- Signal gelenkt und vom Debug- Modul 10 im Temporärdatenregister 170 erfasst. Bei einem Schreibverweis wird der Schreiboperand vom DBR 160 auf das KDATA- Signal gelenkt. Das Debug- Modul 10 führt diese Operation bei einer Busübermittlung aus, bevor der K- Bus 25 wieder an die CPU 2 abgegeben wird. Das Debug- Nfodul 10 minimiert daher seinen Eingriff in das Echtzeitbetriebsverhalten der CPU 2. Das Entscheidungsschema für den K- Bus 25 wird von einer in der CPU 2 gespeicherten Logik ausgeführt.
- Als Beispiel, das den gleichzeitigen Betrieb der CPU 2 und des Debug- Moduls 10 veranschaulicht, werde angenommen, dass das externe Entwicklungssystem 7 eine Speicherleseoperation bei einer Debug- Funktion ausführt. Um eine Speicherausleseanweisung auszuführen, schiebt das externe Entwicklungssystem 7 unter Verwendung sowohl des DSDI- als auch des DSCLK- Signals über die serielle Schnittstelle 30 einen Befehl und eine Adresse ein, um auf eine Speicherplatz zuzugreifen. Bei einer Ausführungsform wird ein erster Teil des Befehls vom DSDI- Signal bereitgestellt und vom DSCLK- Signal hineingetaktet. Weitere Teile des Befehls werden danach bereitgestellt. Alle Teile des Befehls werden im Register 32 gespeichert, bis ein Informationspaket mit sechzehn Bits komplett ist. Man beachte, dass alternative Ausführungsformen mehr oder weniger als sechzehn Bits enthalten können, die bei der vorliegenden Ausführungsform benötigt werden.
- Bei der hier beschriebenen Ausführungsform ist eine Anweisung, die einen Wert in den vorgewählten Speicherplatz schreibt, achtundvierzig Bits lang, wobei der Operandencode sechzehn Bits und die Adresse zweiunddreißig Bits hat. Das Register 32 ist nur sechzehn Bits breit. Wenn ein erstes Informationspaket mit sechzehn Bits komplett ist, wird die Information daher über den Steuerbus 15 an die Steuerschaltung 20 übertragen. Die Steuerschaltung 20 dekodiert die ersten sechzehn Bits des Informationspakets, um die Art der Operation, die ausgeführt werden soll, zu bestimmen. Sobald die Steuerschaltung 20 die ersten sechzehn Bits des Datenpakets dekodiert hat und bestimmt, dass ein Lesezugriff auf eine programmierte Speicherposition auszuführen ist, liefert die Steuerschaltung 20 über den Steuerbus 15 ein Steuersignal, damit die folgenden zweiunddreißig Bits mit Adressinformationen in das ABHR 110 der mehreren Hardware- Breakpoint- Register 50 geladen werden.
- Die folgenden Daten werden vom externen Entwicklungssystem 7 seriell über das DSDI- Signal geliefert. Wie bereits beschrieben wurde, werden die vom DSDI- Signal danach gelieferten Daten mit dem DSCLK- Signal hereingetaktet. Jedes Datenbit wird im Register 32 gespeichert, bis ein Informationspaket mit 16 Bits komplett ist. Wenn ein Informationspaket mit 16 Bits komplett ist, wird die Information mit dem seriellen Informationssignal zum ABR 110 der mehreren Hardware- Breakpoint- Register 50 übermittelt. Dann wird die weitere Information vom externen Entwicklungssystem 7 über das DSDI- und das DSCLK- Signal seriell an das Register 32 geliefert. Wenn ein drittes Informationspaket mit sechzehn Bits komplett ist, wird die Information über das serielle Informationssignal zum ABHR 110 der mehreren Hardware- Breakpoint- Register 50 übermittelt.
- Wenn die Operanden- und Adressinformationen empfangen wurden, setzt die Steuerschaltung 20 das Bus- Request- Signal. Das Bus- Request- Signal wird über den K- Bus 25 zur CPU 25 übertragen. Wieder verbinden dlas Bus- Request- und das Bus- Grant- Signal das Debug- Modul 10 direkt mit der CPU 2. Die Details der Buszuteilung anurden bereits erläutert.
- Wenn das Bus- Grant- Signal gesetzt ist, wird das ABHR 110 freigegeben, die darin gespeicherten Adressinformationen dem K- Bus über das KADDR- Signal auszugeben. Die Adressinformation wird vom Speicher 6 dekodiert, um die Speicherposition darin zu lesen. Weil eine Leseoperation ausgeführt wird, gibt der Speicher 6 einen Operanden aus, der der Speicherposition des KDATA- Signals vom K- Bus 25 entspricht. Man beachte, dass der Speicher, auf den zugegriffen wird, nicht auf den Speicher 6 beschränkt ist. Stattdessen kann der Speicher, auf den zugegriffen wird, der Speicher 6 oder jede andere Speicherposition im Datenverarbeitungssystem 5 sein. Der über das KDATA- Signal übertragene Operand wird dann im Temporärdatenregister 170 der Breakpoint- Schaltung 100 erfasst. Der Operand wird dann über das interne Datensignal zum Register 32 übertragen. Der Operand wird dann über das DSDO- Signal von der seriellen Schnittstelle 30 seriell in zweiunddreißig Taktzyklen hinausgeschoben. Das DSDO- Signal wird an das externe Entwicklungssystem 7 ausgegeben.
- Außerdem beachte man, dass die CPU 2 die Ausführung von Datenverarbeitungsanweisungen mit einer minimalen Störung der Verarbeitungsgeschwindigkeit wieder aufnimmt, nachdem der Operand über das KDATA- Signal übertragen wurde. Die CPU 2 kann daher die Datenverarbeitungsfunktionen ausführen, während die serielle Schnittstelle 30 Informationen ausgibt.
- Man beachte, dass der gleichzeitige Betrieb der CPU 2 und des Debug- Moduls 10 unterstützt wird, ohne dass der Datenprozessor 3 in einem speziellen Debug- Betrieb arbeiten muss. Die Verwendung des K- Busses 25, um Daten, Adressen und Steuerinformationen zwischen dem Kern 9 und dem Debug- Modul 10 auszutauschen, ermöglicht dem Debug- Modul 10, auf dieselben Speicherplätze und internen Register zuzugreifen wie die CPU 2. Das Debug- Modul kann daher auf alle Speicherplätze und internen Register zugreifen, auf die die CPU 2 zugreifen kann. Weil die CPU 2 und das Debug- Modul 10 gleichzeitig arbeiten können, kann das externe Entwicklungssystem 7 besser in die internen Register und Speicher des Datenprozessors 3 sehen, ohne den Betrieb des Prozessors wesentlich zu beeinträchtigen.
- Außerdem sollte beachtet werden, dass während sowohl das Debug- Modul 10 als auch die CPU 2 auf dieselben internen Register und Speicherplätze zugreifen können, die CPU 2 und ein restlicher Teil des Kerns 9 in den mehreren Breakpoint- Registern 50 gespeicherte Werte nicht ändern können, wenn das Inhibit- Processor- Write- to- Debug- Registers- (IPW-) Bit im CSR unter den mehreren Steuerregistern 40 gesetzt ist. Wenn das IPW- Bit im CSR gesetzt ist, werden alle Schreiboperationen, die die CPU 2 initiiert, unterbunden. Außerdem kann das IPW- Bit nur durch einen Befehl von dem externen Entwicklungssystem 7 geändert werden.
- Um das IPW- Bit zu setzen, schiebt das externe Entwicklungssystem 7 sowohl mit dem DSDI- als auch mit dem DSCLK- Signal einen Befehl über die serielle Schnittstelle 30 ein, um Daten in das CSR zu laden. Wie bereits erwähnt wurde, wird in einer Ausführungsform ein erster Teil des Befehls vom DSDI- Signal geliefert und vom DSCLK- Signal hereingetaktet. Danach werden weitere Teile des Befehls ausgegeben. Alle Teile des Befehls werden im Register 32 gespeichert, bis ein Informationspaket mit sechzehn Bits komplett ist. Man beachte, dass alternative Ausführungsformen mehr oder weniger als die sechzehn Bits, die in der vorliegenden Ausführungsform nötig sind, enthalten können.
- Bei der hier beschriebenen Ausführungsform ist eine Anweisung, die einen Wert in das CSR schreibt, achtundvierzig Bits lang, wobei der Operandencode sechzehn Bits und die Daten zweiunddreißig Bits haben. Das Register 32 ist nur sechzehn Bits breit. Um die Schreibanweisung auszuführen, schiebt das externe Entwicklungssystem 7 sowohl mit dem DSDI- als auch mit dem DSCLK- Signal über die serielle Schnittstelle 30 einen Befehl ein, um Daten in das CSR zu laden. Ein erster Teil des Befehls wird vom DSDI- Signal geliefert und vom DSCLK- Signal hereingetaktet. Danach werden weitere Teile des Befehls ausgegeben. Alle Teile des Befehls werden im Register 32 gespeichert, bis ein Informationspaket mit sechzehn Bits komplett ist.
- Bei der hier beschriebenen Ausführungsform ist eine Anweisung, die einen Wert in das CSR schreibt, achtundvierzig Bits lang, wobei der Operandencode sechzehn Bits und die Daten zweiunddreißig Bits haben. Das Register 32 ist nur sechzehn Bits breit. Wenn daher ein erstes Informationspaket mit sechzehn Bits komplett ist, wird die Information an die Steuerschaltung 20 übermittelt, wo sie dekodiert wird und die folgenden Operationen konfiguriert werden. Wenn ein zweites Informationspaket mit sechzehn Bits in das Register 32 geladen wurde, wird die Information über das serielle Informationssignal an die mehreren Steuerregister 40 übertragen. Mit der Steuerinformation über den. Steuerbus 15 von der Steuerschaltung 20 werden die Inhalte des seriellen Informationssignals in den oberen Teil eines Zielregisters des CSR geladen. Entsprechend wird ein drittes Informationspaket mit sechzehn Bits in das Register 32 geladen und dann zu den mehreren Steuerregistern 40 übertragen. Wiederum werden die Inhalte des seriellen Informationssignals mit den Signalen von der Steuerschaltung 20 in den unteren Teil des CSR geladen. Auf diese Weise wird die gesamte Anweisung mit achtundvierzig Bits seriell in das Debug- Modul 10 geschoben, wo sie dekodiert wird und der Wert des Operanden in das CSR geladen wird.
- Die nachfolgenden Daten werden von dem externen Entwicklungssystem 7 seriell über das DSDI- Signal ausgegeben. Wie bereits beschrieben wurde, werden die folgenden, vom DSDI- Signal gelieferten Daten mit dem DSCLK- Signal hineingetaktet. Jedes Datenbit wird im Register 32 gespeichert, bis ein Informationspaket mit sechzehn Bits komplett ist. Wenn ein zweites Informationspaket mit sechzehn Bits komplett ist, wird die Information über das serielle Informationssignal an die mehreren Steuerregister 40 übertragen. Das zweite Informationspaket mit sechzehn Bits wird in dem CSR als Bits ein- unddreißig bis sechzehn gespeichert. Dann liefert das externe Entwicklungssystem 7 seriell über das DSDI- und DECLK- Signal weitere Informationen an das Register 32. Wenn ein drittes Informationspaket mit sechzehn Bits komplett ist, wird die Information über das serielle Informationssignal an die mehreren Steuerregister 40 übertragen. Das dritte Informationspaket mit sechzehn Bits wird im CSR als Bit fünfzehn bis null gespeichert.
- Bei einer anderen Ausführungsform der Erfindung können alle Werte außer dem IPW- Bit von der CPU 2 des Datenprozessors 4 in das CSR geschrieben werden. Wenn die CPU 2 den Wert in das CSR schreibt, wird der Wert an das Temporärregister 170 der Breakpoint- Schaltung aus Fig. 6 ausgegeben. Der Wert wird dem Temporärregister 170 über das KDATA- Signal vom K- Bus 25 geliefert. Vom Temporärregister 170 wird der Wert übertragen und im Register 32 in Paketen von sechzehn Bits gespeichert. Für die mehreren Steuerregister 40 erscheinen die Werte daher wie die, die vom externen Entwicklungssystem 7 an das Register 32 ausgegeben werden.
- Das IPW- Bit und andere im CSR gespeicherte Werte werden über den Steuerbus 15 an die Hardware- Schaltung 100 ausgegeben. Wenn das IPW- Bit gesetzt ist und die CPU 2 versucht, einen der im ABHR 110, ABLR 120, DBMR 150, DBR 160, PBMR 190 und PBR 125 gespeicherten Werte zu ändern, wird das IPW- Bit an jedes der genannten Register ausgegeben, um alle vom Kern 9 ausgehenden Schreiboperationen zu unterbinden.
- Die Verwendung des IPW- Bits, um Schreiboperationen in den mehreren Hardware- Breakpoint- Register 50 wirkungsvoll zu unterbinden, stellt sicher, dass eine vom externen Entwicklungssystem 7 einprogrammierte Bedingung, um eine ausfallende Schaltung und fehlerhafte Programme im Datenprozessor 3 zu isolieren und zu identifizieren, nicht von der CPU 2 überschrieben wird.
- Das Datenverarbeitungssystem 5 enthält einen Mechanismus, damit das externe Entwicklungssystem 7 eine Breakpoint- Operation im Datenprozessor 3 ausführen kann, bevor eine Exception- Verarbeitungsroutine für eine Reset- Operation ausgelöst wird. Wenn das externe Reset- Signal gesetzt ist, gelöst wird. Wenn das externe Reset- Signal gesetzt ist, werden die Inhalte jedes der mehreren Steuerregister 40 initialisiert. Wenn das externe Reset- Signal dann negiert wird, gibt es ein Zeitfenster, in dem der Datenprozessor 3 ruht, bevor er die aktuelle Verarbeitungsroutine für die Reset- Exception ausführt. Wenn ein externes Breakpoint- Signal in der Ruhephase von externen Entwicklungssystem 7 gesetzt wird, enthält das Datenverarbeitungssystem 5 einen Mechanismus und ein Verfahren zum Herunt erladeri eines Zielspeicherwerts in das Datenverarbeitungssystem 5 und zum Ausführen aller benötigten Hardware- Registerkonfigurationen. Der Zielspeicherwert kann ein einzelner Wert oder mehrere Werte sein.
- Sobald der Zielspeicherwert vom externen Entwicklungssystem 7 heruntergeladen wurde, können die mehreren Steuerregister 40 und/oder die mehreren Hardware- Breakpoint- Register 50 konfiguriert werden, Außerdem können auch die in der CPU 2 enthaltenen Hardware- Register, der MMU/Controller 4 und der Systembus- Controller 8 programmiert werden. Schließlich muss der Datenprozessor 3 mit einem rfGofL. Befehl neu gestartet werden. Die Abfolge der von beim Empfang des "Go"- Befehls ausgeführten Hardware- Operationen ist eine Funktion der Hardware- Register, die geändert wurden, während die CPU 2 eine Breakpoint- Operation ausführte. Wenn das externe Entwicklungssystem 7 kein Programmzählerregister der CPU 2 geändert hat, gibt der "Go"- Befehl den Datenprozessor frei, eine normale Reset- Exception- Verarbeitungsroutine auszuführen. Wenn jedoch das externe Entwicklungssystem 7 das Programmzählerregister der CPU 2 geändert hat, gibt der "Go"- Befehl den Datenprozessor 3 frei, die normale Verarbeitungsroutine für eine Reset- Exception zu umgehen und die Ausführung einer Anweisung auszuführen, die von einer im Programmzählerregister geladenen Adresse angegeben wird.
- Der Betrieb des Datenprozessors 3 bei solch einer Reset- und Breakpoint- Operation wird im folgenden im einzelnen erläutert. Angenommen, dass das Reset- Signal gesetzt ist und an die CPU 2 des Datenprozessors 3 ausgegeben wird. Wenn das Reset- Signal negiert ist, setzt das externe Entwicklungssystem 7 das - Signal. Die Steuerschaltung 20 des Debug- Moduls 10 setzt auf dem K- Bus 25 das BKPT- Signal der mehreren Breakpoint- Steuersignale für die CPU 2. Wiederum ist zu beachten, dass die Steuerschnittstelle eine direkte Verbindung zwischen dem Debug- Modul 10 und der CPU 2 darstellt.
- Wenn die CPU 2 ein gesetztes BKPT- Signal empfängt, setzt die CPU 2 für die Dauer eines Ruhezeitfensters aus und signalisiert, dass der Datenprozessor 3 angehalten worden ist. Währenddessen haben die PST- Signale den logischen Wert $F, um dem externen Entwicklungssystem. 7 anzuzeigen, dass der Datenprozessor 3 seinen Betrieb angehalten hat. Die CPU 2 und der Datenprozessor 3 werden daher vor dem Anfang einer Reset- Exception- Verarbeitungsroutine angehalten.
- Sobald die PST- Signale anzeigen, dass der Datenprozessor 3 seine Operationen angehalten hat, lädt das externe Entwicklungssystem 7 über das DSDI- Signal und das DSCLK- Signal mehrere Daten-, Adress- und Steuerwerte zum Datenprozessor 3 herüber. Die mehreren Daten-, Adress- und Steuerwerte können das Speicherbild eines Programms oder von in Speicher 6 zu speichernden Datenwerten sein. Außerdem können die mehreren Daten -, Adress- und Steuerwerte für jedes von mehreren Konfigurationsregistern, wie etwa den mehreren Steuerregister 40 und den mehreren Hardware- Breakpoint- Registern 50, mehrere Initialisierungswerte ausgeben. Man beachte, dass wenn die mehreren Daten-, Adress- und Steuerwerte über das DSDI- Signal dem Datenprozessor 3 geliefert werden, jedes Bit der Werte über die serielle Schnittstelle 30 an das Register 32 geliefert wird. Wenn das Register 32 voll ist, wird über das serielle Informationssignal an die mehreren Hardware- Breakpoint- Registern 50 ein Informationspaket ausgegeben. In den mehreren Hardware- Breakpoint- Registern 50 wird das Informationspaket in einem Register wie etwa dem Temporärdatenregister 170 gespeichert. Das Temporärdatenregister 170 liefert dann die in ihm gespeicherten Informationen über das KDATA- Signal an den K- Bus 25. Der K- Bus 25 überträgt die Informationen an einen übrigen Teil des Kerns 9. Da diese Operation bereits ausführlich beschrieben wurde, wird hier keine zusätzliche Erläuterung der internen Speicherverarbeitung gegeben.
- Nachdem die mehreren Daten-, Adress-, und Steuerwerte an einem geeigneten Speicher- oder Registerplatz des Datenprozessors 3 gespeichert wurden, schickt das externe Entwicklungssystem 7 über das DSDI- und das DSCLK- Signal einen "Go"- Befehl an den Datenprozessor 3. Wie die mehreren Daten-, Adress- und Steuerwerte wird der "Go"- Befehl dem Datenprozessor über das DSDI- Signal ausgegeben. Jedes Bit des "Go"- Befehls wird über die serielle Schnittstelle 30 an das Register 32 ausgegeben. Wenn das Register 32 voll ist, wird über den Steuerbus 15 ein Informationspaket an die Steuerschaltung 20 geliefert. Die Steuerschaltung 20 dekodiert den "Go"- Befehl, um über den K- Bus 25 das Go- Signal an die CPU 2 auszugeben.
- Wenn die CPU 2 auf das Go- Signal reagiert, werden die Anweisungen, die sie ausführt, durch die mehreren Register bestimmt, die von den vom externen Entwicklungssystem 7 gelieferten Adress-, Daten- und Steuerwerten geändert wurden. Wenn beispielsweise ein (nicht im einzelnen gezeigter) Programmzähler in der CPU 2 geändert wurcie, beginnt die CPU 2 mit der Ausführung von einer im geänderten Programmzähler gespeicherten neuen Anweisung durch den Prozessor. Wenn der Programmzähler in der CPU 2 jedoch nicht geändert wurde, fährt die CPU 2 mit einer normalen Reset- Exception- Verarbeitungsroutine fort.
- Die Fähigkeit, bei dem Datenprozessor 3 vor der Ausführung einer Reset- Exception- Verarbeitungsroutine einen Breakpoint zu setzen, ergibt einen effizienten und hilfreichen Mechanismus, damit das externe Entwicklungssystem 7 den Datenprozessor 3 auf eine erforderliche Weise konfigurieren kann, ohne das Risiko einzugehen, dass die Werte bei der Ausführung der Reset- Exception- Verarbeitungsroutine überschrieben werden.
- Die Möglichkeit, eine Breakpoint- Operation vor einer Reset- Exception- Verarbeitungsroutine auszuführen, ermöglicht es dem externen Entwicklungssystem 7, jegliches Programmieren eines nicht- flüchtigen Speichers zu umgehen. Durch das Laden des neuen Software- Abbildes in einen beschreibbaren Speicher kann der im nicht- flüchtigen Speicher programmierte Code leicht umgangen werden. Das externe Entwicklungssystem 7 kann auf jedes Hardware- Register durch Einschieben einer Anweisung mit achtzig Bits zugreifen. Die Anweisung mit achtzig Bits enthält einen Operandencode mit sechzehn Bits, eine in den CPU- Raum abgebildete Adresse mit zweiunddreißig Bits und Operandendaten mit zweiunddreißig Bits. Sobald der komplette Befehl empfangen worden ist, arbeitet das Debug- Modul 10 entsprechend einer Speicherreferenzoperation. Der K- Bus 25 wird abgefragt und dann von der CPU 2 freigegeben. Es wird ein K- Buszyklus für CPU- Raum vom Debug- Modul 10 ausgelöst und in das geeignete Hardware- Register geschrieben.
- Wenn der Datenprozessor 3 in einem speziellen Debug- Hintergrundbetrieb arbeitet, hält die CPU 2 an, damit das Debug- Modul 10 auf alle Speicher- und Registerwerte zugreifen kann, um defekte Schaltungen und fehlerhafte Programme isolieren und identifizieren zu können. Die Register und Speicherplätze können im Debug- Hintergrundbetrieb angesehen und selektiv geändert werden. Außerdem können Testmöglichkeiten freigegeben werden. Während das externe Entwicklungssystem 7 über das Debug- Modul 10 leicht auf interne Informationen zugreifen kann, wenn es im speziellen Debug- Hintergrundbetrieb arbeitet, ist die normale Ausführung von Anweisungen unterbrochen, da die CPU 2 in diesem Betriebszustand angehalten werden muss. Man beachte, dass wenn die CPU 2 angehalten ist, das PST- Signal den Wert $F hat.
- Der spezielle Debug- Hintergrundbetriebszustand kann viele Ursachen haben. Beispielsweise kann das - Signal von außen durch das externe Entwicklungssystem 7 erzeugt werden, um den Datenprozessor 3 selektiv zum Eintreten in den Debug- Hintergrundbetriebszustand freizugeben. Außerdem können auch intern erzeugte Breakpoint- Operationen und schwerwiegende Exception- Bedingungen den Datenprozessor 3 freigeben, in den Debug- Hintergrundbetriebszustand einzutreten.
- Sobald der Datenprozessor 3 in den Debug- Hintergrundbetriebszustand eintritt, wird der normale Betrieb des Datenprozessors 3 angehalten, und es werden vom Debug- Modul 10 spezielle, vom externen Entwicklungssystem 7 gesteuerte Funktionen ausgeführt. Jede Verständigung zwischen dem Debug- Modul 10 und dem externen Entwicklungssystem 7 erfolgt über die serielle Schnittstelle 30 und sämtliche DSDI-, DSDO- und DSCLR- Signale.
- Wie bereits erwähnt wurde, wird in der vorliegenden Ausführungsform dem externen Anwender der Debug - Hintergrundbetrieb über das PST- Signal signalisiert. Der Wert $F des PST- Signals zeigt an, dass der Prozessor angehalten wurde und in einem Hintergrundbetriebszustand arbeitet. Die Anzeige des Eintritts in den Debug- Hintergrundbetriebszustand ist wesentlich, da dadurch ein Signalgeliefert wird, mit dem der externe Anwender die unterstützten Debug- Befehle über einen seriellen Kommunikationskanal auslösen kann. Mit dem seriellem Port, der durch die serielle Schnittstelle 30 bereitgestellt wird, können Debug- Informationen von den Speicherplätzen und internen Registern ausgelesen werden.
- Wenn das MAP- Bit negiert ist, werden alle Emulationsbetriebsspeicherverweise wie üblich in Supervisor- Zugriffe abgebildet, so dass auf die Systemressourcen wie etwa den Speicher auf dem Chip, einen externen Speicher oder auf Eingabe- /Ausgabevorrichtungen verwiesen werden kann.
- Schließlich wird das Go- Signal gesetzt, nachdem vom externen Entwicklungssystem 7 ein "Go"- Befehl seriell in das Debug- Modul 10 geschoben wurde. Das Go- Signal startet die Ausführung im Datenprozessor 3 erneut, nachdem der Datenprozessor 3 durch ein Ereignis angehalten wurde, das den Eintritt in den Debug- Hintergrundbetriebszustand erzwungen hatte. Der Datenprozessor 3 kann durch das Setzen des Breakpoint- Signals durch die Steuerschaltung 20 angehalten werden, wenn das TDR so programmiert ist, dass es diese Art der Reaktion erzwingt. Zusätzlich kann der Datenprozessor 3 durch die Ausführung einer Halt- Anweisung, durch den Datenprozessor 3 oder beim Auftreten einer fault- on- fault- Bedingung angehalten werden.
- Es wird ein Datenprozessor geschaffen und ein Betriebsverfahren angegeben, um eine Echtzeit- Ablaufverfolgung und Debug- Funktioneh zu ermöglichen, ohne dass der Datenprozessor in einen speziellen Betriebszustand wie etwa in einen Debug- Hintergrundbetrieb eintreten muss. Außerdem wird ein Verfahren zum Ausführen eines mehrstufigen Triggers bei der Ausführung der Debug- Echtzeitfunktionen ausgegeben. Jede dieser speziellen Eigenschaften liefert, einem externen Anwender mehr Funktionen und mehr Flexibilität beim Identifizieren und Isolieren von Fehlern im Datenverarbeitungssystem 5.
- Wie bereits erwähnt wurde, wird eine wichtige und bis dato nicht existierende Echtzeit- Ablaufverfolgungsfunktion bereitgestellt. Mit der Echtzeit- Ablaufverfolgungsfunktion kann ein externer Anwender, wie etwa das externen Entwicklungssystem 7, interne Operationen des Datenprozessors 3 dynamisch beobachten, ohne dass ein externer Bus vorhanden oder verfügbar sein muss. Außerdem kann mit der Echtzeit- Ablaufverfolgungsfunktion der interne Betrieb des Systems beobachtet werden, ohne die Effizienz und die Geschwindigkeit des Datenverarbeitungssystems 5 wesentlich zu beeinträchtigen. Das Debug- Modul 10 des Datenverarbeitungssystems 5 stellt einen parallelen Ausgangsport für interne Betriebsinformationen über das DDATA- und das PST- Signal an den externen Anwender zur Verfügung. Das DDATA- Signal liefert Daten, die die Operandenwerte wiedergeben, und die PST- Signale liefern kodierte Statusinformationen, die den Status der Ausführung der CPU 2 wiedergeben. Außerdem stellt das DDATA- Signal auch erfasste Änderungen der Programmabfolge der Anweisungsadressen zur Verfügung, damit ein externes Entwicklungssystem den exakten Programmablauf verfolgen kann, ohne dass ein extern sichtbarer Adressbus oder ein extern sichtbarer Datenbus benötigt wird. Man beachte, dass die vom DDATA- Signal angezeigten Informationen mit den Statusinformationen der PST- Signale synchronisiert sind. Daher kann ein externer Anwender die DDATA- und die PST- Signale dekodieren, um einen Status von Schlüsselvariablen im Datenprozessor 3 zu bestimmen, ohne den normalen Betrieb des Datenprozessors 3 zu unterbrechen. Anders ausgedrückt, der Datenprozessor 3 muss nicht in einem speziellen Debug- oder Emulationsbetrieb arbeiten, um einem externen Entwicklungssystem interne Informationen zu liefern.
- Außerdem wird eine Schaltung und ein Verfahren zum Ausführen von Echtzeit- Debug- Funktionen bereitgestellt. Bei vielen Datenprozessoren, insbesondere bei eingebetteten Systemen (embedded systems), kann der Datenprozessor bei einer Debug- Operation wegen Systemeinschränkungen oder mangels Fähigkeit, eine fehlerhafte Schaltung oder Programmstruktur zu identifizieren, nicht angehalten werden, wenn der Datenprozessor nicht mehr im normalen Betrieb arbeitet. Die Debug- Operation kommt mit einer minimalen Beeinflussung des Echtzeitbetriebs des Datenprozessors und ohne Anhalten des Datenprozessors aus.
- Breakpoint- Operationen werden bei einer Debug- Operation normalerweise verwendet, um ein Programmereignis zu identifizieren. Wenn das Programmereignis auftritt, wird ein Breakpoint- Signal gesetzt und werden Daten ausgelesen, um den Status des Softwareprogramms zu bestimmen. Wie die Ablaufverfolgungsfunktion erlaubt die Breakpoint- Operation einem externen Anwender, den Status von jedem von mehreren ausgewählten Registern und Speicherplätzen festzustellen, so dass Fehler bei der Datenverarbeitung identifiziert werden können. Die mehreren Hardware- Breakpoint - Register 50 und die Breakpoint- Schaltung 100 werden bereitgestellt, um solche Breakpoint- Operationen auszuführen. Sämtliche Breakpoint- Operationen auf der Grundlage eines Werts des Programmzählers oder einer Programmzählermaskierung, eines Operandenadressbereichs sowie eines Datenwerts oder eines Datenmaskierungswerts sind implementiert. Außerdem können die Breakpoint- Operationen auch in ein- oder zweistufigen Triggern konfiguriert sein, wobei der genaue Trigger- Response über das Trigger- Definition - Register (TDR) unter den mehreren Steuerregistern 40 programmiert werden kann.
- Ebenso wird der gleichzeitige Betrieb der CPU 2 und des Debug- Moduls 10 ermöglicht, ohne dass der Datenprozessor 3 in einem speziellen Debug- Betrieb arbeiten muss. Die Verwendung des K- Busses 25, um Daten-, Adress- und Steuerinformationen zwischen dem Kern 9 und dem Debug- Modul 10 auszutauschen, erlaubt dem Debug- Modul 10 den Zugriff auf dieselben internen Register und Speicherplätze wie der CPU 2. Daher kann das Debug- Modul auf alle Speicherplätze und interne Register zugreifen, auf die die CPU 2 zugreifen kann. Weil die CPU 2 und das Debug- Modul 10 gleichzeitig betrieben werden können, kann das externe Entwicklungssystem 7 besser in die internen Register und Speicher des Datenprozessors 3 sehen, ohne den Betrieb des Prozessors wesentlich zu behindern.
- Während sowohl das Debug- Modul 10 als auch die CPU 2 außerdem auf dieselben internen Register und Speicherplätze zugreifen können, kann die CPU 2 und dar übrige Teil des Kerns 9 keinen in den mehreren Breakpoint- Registern 50 gespeicherten Wert ändern, wenn das Inhibit- Processor- Writes- to- Debug- Register- (IPW-) Bit im CSR unter den mehreren Steuerregistern 40 gesetzt ist. Wenn das IPW- Bit im CSR gesetzt ist, werden alle Schreiboperationen, die von der CPU 2 ausgehen, unterbunden. Außerdem kann das IPW- Bit nur von einem Befehl des externen Entwicklungssystems 7 geändert werden. Mit dem IPW- Bit, das Schreiboperationen in die mehreren Hardware- Breakpoint- Register 50 effektiv unterbindet, wird sichergestellt, dass ein vom externen Entwicklungssystem 7 programmiertes Ereignis, das benötigt wird, um eine defekte Schaltung und fehlerhafte Programme im Datenprozessor 3 zu isolieren und zu identifizieren, nicht von der CPU 2 überschrieben wird.
- Außerdem wird ein Mechanismus geschaffen, um es dem externen Entwicklungssystem 7 zu ermöglichen, im Datenprozessor 3 eine Breakpoint- Operation auszuführen, bevor eine Exception- Verarbeitungsroutine für eine Reset- Operation ausgelöst wird. Wenn das externe Reset- Signal gesetzt ist, wird der Inhalt von jedem unter den mehreren Steuerregistern 40 initialisiert. Wenn das externe Reset- Signal danach negiert wird, existiert ein Zeitfenster, in dem der Datenprozessor 3 ruht, bevor eine aktuelle Reset- Exception- Verarbeitungsroutine beginnt. Wenn in der Ruhezeit ein externes Breakpoint- Signal vom externen Entwicklungssystem 7 gesetzt ist, wird ein Mechanismus und ein Verfahren zum Herunterladen eines Zielspeicherwerts in das Datenverarbeitungssystem 7 bereitgestellt, so dass jede Hardware- Registerkonfiguration hergestellt werden kann. Der Zielspeicherwert kann ein einzelner Wert oder mehrere Werte sein.
- Diese Fähigkeit eine Breakpoint- Operation vor einer Reset- Exception- Verarbeitungsroutine auszuführen, erlaubt dem externen Entwicklungssystem 7, das Programmieren von nichtflüchtigem Speicherplatz zu umgehen. Durch Laden des neuen Softwarebildes in einen beschreibbaren Speicherbereich, kann der im nichtflüchtigen Speicherbereich programmierte Code leicht umgangen werden. Das externe Entwicklungssystem 7 kann durch Einschieben einer Anweisung mit achtzig Bits auf jedes Hardware- Regist er zugreifen. Die Anweisung mit achtzig Bits enthält einen. Operandencode mit sechzehn Bits, eine in den CPU- Raum abgebildete Adresse mit zweiunddreißig Bits und Operandendaten mit zweiunddreißig Bits. Sobald der komplette Befehl empfangen wurden, arbeitet das Debug- Modul 10 auf eine Weise, die einem Speicherverweis entspricht. Es wird nach dem K- Bus 25 gefragt, der dann von der CPU 2 freigegeben wird. Ein K- Buszyklus im CPU- Raum wird von Debug- Modul 10 ausgelöst, und das geeignete Hardware- Register wird beschrieben.
- Die Fähigkeit, für den Datenprozessor 3 vor der Ausführung der Reset- Exception- Verarbeitungsroutine einen Breakpoint zu setzen, ergibt einen effizienten und hilfreichen Mechanismus, mit dem das externe Entwicklungssystem 7 den Datenprozessor 3 auf die erforderliche Weise konfigurieren kann, ohne das Risiko, dass die Werte bei der Ausführung der Reset- Exception- Verarbeitungsroutine überschrieben werden können.
- Die hier beschriebenen Implementierung(-en) und/oder Ausführungsformen wurden nur anhand eines Beispiels erläutert. Es gibt jedoch viele andere Ausführungsformen für die Ausführen der hier beschriebenen Funktion. Während die vorliegende Erfindung mit Bezug auf spezielle Ausführungsformen erläutert und beschrieben wurde, sind für den Fachmann weitere Modifikationen und Verbesserungen denkbar. Es versteht sich daher, dass die hier beanspruchte Erfindung nicht auf die speziell erläuterten Formen beschränkt ist und dass die beigefügten Ansprüche alle Modifikationen im Umfang der beanspruchten Erfindung abdecken.
Claims (10)
1. Datenprozessor (3) mit:
einer Prozessoreinheit (2) für die Ausführung mehrer
Datenverarbeitungsanweisungen,
einem Breakpoint- Register (50) für das Abspeichern
eines Breakpoint - Wertes, wobei das Breakpoint- Register
für die Übertragung des Breakpoint- Wertes mit der
Prozessoreinheit verbunden ist, und
ein erstes Steuerregister (40) für das Abspeichern eines
Prozessor- Inhibit- Wertes, wobei durch den Prozessor-
Inhibit- Wert selektiv die Prozessoreinheit an der
Ausführung einer Datenverarbeitungaanweisung gehindert
wird, die den Breakpoint- Wert in dem Breakpoint-
Register verändert.
2. Datenprozessor nach Anspruch 1, der außerdem umfasst:
einen Breakpoint- Schaltkreis (100), der mit dem
Breakpoint- Register verbunden ist, um den Breakpoint- Wert
einzulesen, und mit dem ersten Steuerregister verbunden
ist, um den Prozessor- Inhibit- Wert einzulesen, wobei
durch den Breakpoint- Schaltkreis unterbunden wird, dass
die Prozessoreinheit die Datenverarbeitungsanweisung
ausführt, durch die der Breakpoint- Wert in dem
Breakpoint- Register verändert wird, wenn der Breakpoint-
Wert einen ersten logischen Wert hat.
3. Datenprozessor nach Anspruch 1 oder 2, der außerdem
umfasst:
einen Schnittstellenschaltkreis für das Einlesen eines
Befehls von einem externen Entwicklungssystem, um den
Breakpoint - Wert in dem Breakpoint- Register zu
verändern, wobei
die Prozessoreinheit eine Anweisungswarteschlange für
das Abspeichern mehrerer Datenverarbeitungsanweisungen
in der Warteschlange oder eine Pipeline für die
Ausführung mehrerer Datenverarbeitungsanweisungen in der
Pipeline umfasst und
die Modifizierung des Breakpoint- Wertes in dem
Breakpoint- Register durch das externe Entwicklungssystem
unterbunden wird, wenn in dem ersten Steuerregister der
Prozessor- Inhibit- Wert abgespeichert ist, bis die
Anweisungswarteschlange oder die Pipeline leer ist.
4. Datenprozessor nach Anspruch 1 oder 2, der außerdem
umfasst:
einen Schnittstellenschaltkreis für das Einlesen eines
Befehls von einem externen Entwicklungssystem zum
Verändern des Breakpoint- Wertes in dem Breakpoint- Register,
wobei der Prozessor- Inhibit- Wert nur durch den Befehl
von dem externen Entwicklungssystem veränderbar ist.
5. Datenprozessor nach einem der Ansprüche 1 bis 4, bei dem
in dem Steuerregister mehrere Steuerwerte einschließlich
dem Prozessor- Inhibit- Wert abgespeichert sind und
durch die Prozessoreinheit jeder der mehreren
Steuerwerte außer dem Prozessor- Inhibit- Wert geändert werden
kann.
6. Datenprozessor nach Anspruch 1 oder 2, bei dem
die Prozessoreinheit eine Anweisungswarteschlange für
das Abspeichern mehrerer Datenverarbeitungsanweisungen
in der Warteschlange während des Betriebs der
Prozessoreinheit umfasst und
unterbunden wird, dass die Prozessoreinheit eine
Datenverarbeitungsanweisung ausführt, durch die der
Breakpoint- Wert in dem Breakpoint- Register verändert wird,
wenn in dem ersten Steuerregister der Prozessor-
Inhibit- Wert abgespeichert ist, bis die
Anweisungswarteschlange leer ist.
7. Verfahren zum Ausführen einer Debug- Operation in
einem Datenprozessor (3), das die Schritte umfasst:
Bereitstellen einer Prozessoreinheit (2) für die
Ausführung mehrer Datenverarbeitungsanweisungen,
Abspeichern eines Breakpoint- Wertes in einem
Breakpoint- Register (50), wobei das Breakpoint- Register für
die Übertragung des Breakpoint- Wertes mit der
Prozessoreinheit verbunden ist,
Abspeichern eines Prozessor- Inhibit- Wertes in ein
erstes Steuerregister (40) und
selektives Hindern der Prozessoreinheit an der
Ausführung einer Datenverarbeitungsanweisung, die den
Breakpoint - Wert in dem Breakpoint- Register verändert, wenn
der Prozessor- Inhibit- Wert einen ersten logischen Wert
hat.
8. Verfahren nach Anspruch 7, das die Schritte umfasst:
Bereitstellen eines Breakpoint- Schaltkreises, der mit
dem Breakpoint- Register verbunden ist, um den
Breakpoint- Wert einzulesen, und mit dem ersten
Steuerregister verbunden ist, um den Prozessor- Inhibit- Wert
einzulesen,
wobei der Breakpoint- Schaltkreis in die Lage versetzt
wird, die Prozessoreinheit zu hindern, die
Datenverarbeitungsanweisung auszuführen, die den Breakpoint- Wert
in dem Breakpoint- Register verändert, wenn der
Breakpoint- Wert den ersten logischen Wert hat.
9. Verfahren nach Anspruch 7 oder 8, das außerdem die
Schritte umfasst:
Einlesen eines Befehls von einem externen
Entwicklungssystem mit einer seriellen Schnittstelle,
Verändern des Breakpoint- Wertes in dem Breakpoint-
Register oder des Prozessor- Inhibit- Wertes in dem
Steuerregister in Abhängigkeit von dem Befehl von dem
externen Entwicklungssystem.
10. Verfahren nach Anspruch 9, das außerdem die Schritte
umfasst:
Ausführen mehrerer Datenverarbeitungsanweisungen in
einer Pipeline der Prozessoreinheit und Unterbinden der
Veränderung des Breakpoint- Wertes in dem Breakpoint-
Register durch das externe Entwicklungssystem, wenn der
Prozessor- Inhibit- Wert den ersten logischen Wert hat,
bis die Pipeline leer ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52124995A | 1995-08-30 | 1995-08-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69616917D1 DE69616917D1 (de) | 2001-12-20 |
DE69616917T2 true DE69616917T2 (de) | 2002-06-06 |
Family
ID=24076003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69616917T Expired - Fee Related DE69616917T2 (de) | 1995-08-30 | 1996-08-22 | Datenprozessor mit eingebauter Emulationsschaltung |
Country Status (5)
Country | Link |
---|---|
US (2) | US6035422A (de) |
EP (1) | EP0762280B1 (de) |
JP (1) | JP3846939B2 (de) |
KR (1) | KR100439781B1 (de) |
DE (1) | DE69616917T2 (de) |
Families Citing this family (139)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205560B1 (en) * | 1996-02-27 | 2001-03-20 | Via-Cyrix, Inc. | Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG |
US6192427B1 (en) * | 1997-05-02 | 2001-02-20 | Texas Instruments Incorporated | Input/output buffer managed by sorted breakpoint hardware/software |
KR100230454B1 (ko) * | 1997-05-28 | 1999-11-15 | 윤종용 | 다중처리 시스템의 캐시메모리 검사방법 |
US6175913B1 (en) | 1997-09-12 | 2001-01-16 | Siemens Ag | Data processing unit with debug capabilities using a memory protection unit |
US6247119B1 (en) * | 1997-11-26 | 2001-06-12 | Texas Instruments Incorporated | Apparatus having a flattener for outputting aligned or unaligned information from an instruction execution pipeline |
EP0924619A3 (de) * | 1997-12-19 | 2004-01-07 | Infineon Technologies AG | Programmgesteuerte Einheit |
US6385742B1 (en) * | 1998-03-06 | 2002-05-07 | Lsi Logic Corporation | Microprocessor debugging mechanism employing scan interface |
US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
JP2000099366A (ja) * | 1998-09-21 | 2000-04-07 | Fujitsu Ltd | 演算処理装置および演算処理装置のデバッグ方法 |
US6173386B1 (en) * | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
US6567933B1 (en) * | 1999-02-19 | 2003-05-20 | Texas Instruments Incorporated | Emulation suspension mode with stop mode extension |
US6336191B1 (en) * | 1999-03-08 | 2002-01-01 | International Business Machines Corporation | Method and system for clock compensation in instruction level tracing in a symmetrical multi-processing system |
US6370660B1 (en) * | 1999-04-21 | 2002-04-09 | Advanced Micro Devices, Inc. | Apparatus and method for providing a wait for status change capability for a host computer system |
US6446221B1 (en) * | 1999-05-19 | 2002-09-03 | Arm Limited | Debug mechanism for data processing systems |
DE60012661T2 (de) * | 1999-05-19 | 2005-08-04 | Koninklijke Philips Electronics N.V. | Datenprozessor mit fehlerbeseitigungsschaltung |
US6321329B1 (en) * | 1999-05-19 | 2001-11-20 | Arm Limited | Executing debug instructions |
US6343358B1 (en) * | 1999-05-19 | 2002-01-29 | Arm Limited | Executing multiple debug instructions |
JP4335999B2 (ja) * | 1999-05-20 | 2009-09-30 | 株式会社ルネサステクノロジ | プロセッサ内蔵半導体集積回路装置 |
JP2001034504A (ja) * | 1999-07-19 | 2001-02-09 | Mitsubishi Electric Corp | ソースレベルデバッガ |
US6584590B1 (en) * | 1999-08-13 | 2003-06-24 | Lucent Technologies Inc. | JTAG port-sharing device |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
US6732307B1 (en) * | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6615368B1 (en) * | 2000-01-04 | 2003-09-02 | National Semiconductor Corporation | System and method for debugging highly integrated data processors |
JP2001195281A (ja) * | 2000-01-07 | 2001-07-19 | Sony Corp | システム監視装置 |
US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
JP3629181B2 (ja) * | 2000-03-28 | 2005-03-16 | Necマイクロシステム株式会社 | プログラム開発支援装置 |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US6857092B1 (en) | 2000-08-17 | 2005-02-15 | Xilinx, Inc. | Method and apparatus to facilitate self-testing of a system on a chip |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US6823282B1 (en) * | 2000-10-26 | 2004-11-23 | Cypress Semiconductor Corporation | Test architecture for microcontroller providing for a serial communication interface |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US6985980B1 (en) | 2000-11-03 | 2006-01-10 | Xilinx, Inc. | Diagnostic scheme for programmable logic in a system on a chip |
US6757846B1 (en) * | 2000-11-06 | 2004-06-29 | Xilinx, Inc. | Method and apparatus for multi-bus breakpoint stepping |
US6751751B1 (en) | 2000-11-06 | 2004-06-15 | Xilinx, Inc. | Universal multi-bus breakpoint unit for a configurable system-on-chip |
US6484273B1 (en) * | 2000-11-29 | 2002-11-19 | Lsi Logic Corporation | Integrated EJTAG external bus interface |
US6986026B2 (en) * | 2000-12-15 | 2006-01-10 | Intel Corporation | Single-step processing and selecting debugging modes |
US6718539B1 (en) * | 2000-12-22 | 2004-04-06 | Lsi Logic Corporation | Interrupt handling mechanism in translator from one instruction set to another |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
US7069545B2 (en) * | 2000-12-29 | 2006-06-27 | Intel Corporation | Quantization and compression for computation reuse |
US7093108B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Apparatus and method for efficiently incorporating instruction set information with instruction addresses |
US7093236B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Tracing out-of-order data |
US6760864B2 (en) * | 2001-02-21 | 2004-07-06 | Freescale Semiconductor, Inc. | Data processing system with on-chip FIFO for storing debug information and method therefor |
US6834364B2 (en) * | 2001-04-19 | 2004-12-21 | Agilent Technologies, Inc. | Algorithmically programmable memory tester with breakpoint trigger, error jamming and 'scope mode that memorizes target sequences |
JP2003085001A (ja) * | 2001-09-12 | 2003-03-20 | Toshiba Corp | ソース・コード・デバッガ、デバッグ方法及びデバッグプログラム |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7382637B1 (en) * | 2002-02-01 | 2008-06-03 | Netlogic Microsystems, Inc. | Block-writable content addressable memory device |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US20040078630A1 (en) * | 2002-06-28 | 2004-04-22 | Niles Ronald Steven | System and method for protecting data |
US20040019828A1 (en) * | 2002-07-25 | 2004-01-29 | Gergen Joseph P. | Method and apparatus for debugging a data processing system |
US7107489B2 (en) * | 2002-07-25 | 2006-09-12 | Freescale Semiconductor, Inc. | Method and apparatus for debugging a data processing system |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US20040103399A1 (en) * | 2002-11-22 | 2004-05-27 | Manisha Agarwala | Data trace compression map |
US6889311B2 (en) * | 2002-11-22 | 2005-05-03 | Texas Instruments Incorporated | Pipeline stage single cycle sliding alignment correction of memory read data with integrated data reordering for load and store instructions |
US6996735B2 (en) * | 2002-11-22 | 2006-02-07 | Texas Instruments Incorporated | Apparatus for alignment of data collected from multiple pipe stages with heterogeneous retention policies in an unprotected pipeline |
US7299386B2 (en) * | 2002-12-17 | 2007-11-20 | Texas Instruments Incorporated | Apparatus and method for detecting address characteristics for use with a trigger generation unit in a target processor |
US6798713B1 (en) * | 2003-01-31 | 2004-09-28 | Zilog, Inc. | Implementing software breakpoints |
US7574585B1 (en) | 2003-01-31 | 2009-08-11 | Zilog, Inc. | Implementing software breakpoints and debugger therefor |
US7243214B2 (en) * | 2003-04-21 | 2007-07-10 | Intel Corporation | Stall optimization for an in-order, multi-stage processor pipeline which analyzes current and next instructions to determine if a stall is necessary |
TW200511111A (en) * | 2003-07-30 | 2005-03-16 | Koninkl Philips Electronics Nv | Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set |
JP2007522554A (ja) * | 2004-02-09 | 2007-08-09 | コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト | 車両内のセキュリティ上問題のあるコンピュータシステムのための埋込式システムの分析装置及び方法 |
US7313729B2 (en) * | 2004-02-20 | 2007-12-25 | Winbond Electronics Corp. | Low-cost debugging system with a ROM or RAM emulator |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US7734797B2 (en) * | 2004-03-29 | 2010-06-08 | Marvell International Ltd. | Inter-processor communication link with manageability port |
JP4409349B2 (ja) * | 2004-04-27 | 2010-02-03 | Okiセミコンダクタ株式会社 | デバッグ回路およびデバッグ制御方法 |
US20050268195A1 (en) * | 2004-04-29 | 2005-12-01 | Lund Morten W | Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems |
US7334161B2 (en) * | 2004-04-30 | 2008-02-19 | Arm Limited | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US7587635B2 (en) * | 2004-10-04 | 2009-09-08 | Cisco Technology, Inc. | Method of debugging “active” unit using “non-intrusive source-level debugger” on “standby” unit of high availability system |
US7788535B2 (en) * | 2005-01-28 | 2010-08-31 | Nxp B.V. | Means and method for debugging |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7237149B2 (en) * | 2005-02-25 | 2007-06-26 | Freescale Semiconductor, Inc. | Method and apparatus for qualifying debug operation using source information |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
BRPI0611726A2 (pt) * | 2005-06-09 | 2010-11-09 | Whirlpool Co | aparelho para realizar um ciclo de operação útil em um artigo fìsico |
US20080137670A1 (en) * | 2005-06-09 | 2008-06-12 | Whirlpool Corporation | Network System with Message Binding for Appliances |
US7921429B2 (en) * | 2005-06-09 | 2011-04-05 | Whirlpool Corporation | Data acquisition method with event notification for an appliance |
US20070162158A1 (en) * | 2005-06-09 | 2007-07-12 | Whirlpool Corporation | Software architecture system and method for operating an appliance utilizing configurable notification messages |
US7813831B2 (en) * | 2005-06-09 | 2010-10-12 | Whirlpool Corporation | Software architecture system and method for operating an appliance in multiple operating modes |
US7917914B2 (en) * | 2005-06-09 | 2011-03-29 | Whirlpool Corporation | Event notification system for an appliance |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US20070198816A1 (en) * | 2005-11-10 | 2007-08-23 | Chuan-Po Ling | Emulation system for a single-chip multiple-microcontroller and emulation method thereof |
FR2894694A1 (fr) * | 2005-12-09 | 2007-06-15 | St Microelectronics Sa | Procede et dispositif de mise au point d'un programme execute par un processeur multitache |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8010774B2 (en) * | 2006-03-13 | 2011-08-30 | Arm Limited | Breakpointing on register access events or I/O port access events |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US7979839B2 (en) * | 2006-08-23 | 2011-07-12 | Wolf William M | Method for employing the computer in the creative act of programming |
US7610517B2 (en) * | 2006-09-14 | 2009-10-27 | Innovasic, Inc. | Microprocessor with trace functionality |
US7707459B2 (en) | 2007-03-08 | 2010-04-27 | Whirlpool Corporation | Embedded systems debugging |
US7908516B2 (en) * | 2007-03-27 | 2011-03-15 | Microchip Technology Incorporated | Low power mode fault recovery method, system and apparatus |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8026739B2 (en) * | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8130025B2 (en) * | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US7783865B2 (en) * | 2007-08-01 | 2010-08-24 | International Business Machines Corporation | Conditional data watchpoint management |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US8407457B2 (en) * | 2007-09-28 | 2013-03-26 | Freescale Semiconductor, Inc. | System and method for monitoring debug events |
US8042002B2 (en) * | 2008-01-18 | 2011-10-18 | Freescale Semiconductor, Inc. | Method and apparatus for handling shared hardware and software debug resource events in a data processing system |
US7870430B2 (en) * | 2008-02-29 | 2011-01-11 | Freescale Semiconductor, Inc. | Method and apparatus for sharing debug resources |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8661302B2 (en) * | 2010-11-17 | 2014-02-25 | Advanced Micro Devices, Inc. | Enhanced debug/test capability to a core reset process |
US9053233B2 (en) * | 2011-08-15 | 2015-06-09 | Freescale Semiconductor, Inc. | Method and device for controlling debug event resources |
GB2504772A (en) | 2012-08-10 | 2014-02-12 | Ibm | Coprocessor providing service address space for diagnostics collection |
US9645870B2 (en) | 2013-06-27 | 2017-05-09 | Atmel Corporation | System for debugging DMA system data transfer |
US9256399B2 (en) * | 2013-06-27 | 2016-02-09 | Atmel Corporation | Breaking program execution on events |
US9830245B2 (en) | 2013-06-27 | 2017-11-28 | Atmel Corporation | Tracing events in an autonomous event system |
CN107346282B (zh) | 2016-05-04 | 2024-03-12 | 世意法(北京)半导体研发有限责任公司 | 用于微处理器的调试支持单元 |
KR20180073300A (ko) * | 2016-12-22 | 2018-07-02 | 삼성전자주식회사 | 스캔 데이터 컨트롤 장치 및 이를 갖는 전자 시스템 |
US11256605B2 (en) | 2017-10-19 | 2022-02-22 | Samsung Electronics Co., Ltd. | Nonvolatile memory device |
KR102396448B1 (ko) * | 2017-10-19 | 2022-05-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
US11055416B2 (en) * | 2017-10-24 | 2021-07-06 | Micro Focus Llc | Detecting vulnerabilities in applications during execution |
JP7378254B2 (ja) * | 2019-09-19 | 2023-11-13 | キヤノン株式会社 | マルチプロセッサデバイス |
CN112540888B (zh) * | 2020-12-18 | 2022-08-12 | 清华大学 | 面向大规模可重构处理单元阵列的调试方法及装置 |
CN114510432B (zh) * | 2022-04-20 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种寄存器调试平台和调试方法 |
US12093164B1 (en) | 2023-02-24 | 2024-09-17 | Microsoft Technology Licensing, Llc | Efficiently replacing software breakpoint instructions in processor-based devices |
US20240291495A1 (en) * | 2023-02-27 | 2024-08-29 | Microsoft Technology Licensing, Llc | Phase-locked loops (pll), including time-to-digital converter (tdc) gain calibration circuits and related methods |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3937938A (en) * | 1974-06-19 | 1976-02-10 | Action Communication Systems, Inc. | Method and apparatus for assisting in debugging of a digital computer program |
US4080650A (en) * | 1976-07-28 | 1978-03-21 | Bell Telephone Laboratories, Incorporated | Facilitating return from an on-line debugging program to a target program breakpoint |
US4338660A (en) * | 1979-04-13 | 1982-07-06 | Relational Memory Systems, Inc. | Relational break signal generating device |
US4675646A (en) * | 1983-09-29 | 1987-06-23 | Tandem Computers Incorporated | RAM based multiple breakpoint logic |
US4635193A (en) * | 1984-06-27 | 1987-01-06 | Motorola, Inc. | Data processor having selective breakpoint capability with minimal overhead |
US5165027A (en) * | 1986-01-24 | 1992-11-17 | Intel Corporation | Microprocessor breakpoint apparatus |
JPH06103472B2 (ja) * | 1986-10-29 | 1994-12-14 | 日本電気株式会社 | デバツグ用マイクロプロセツサ |
US5132971A (en) * | 1987-02-06 | 1992-07-21 | Anritsu Corporation | In-circuit emulator |
US5179696A (en) * | 1987-07-24 | 1993-01-12 | Nec Corporation | Generator detecting internal and external ready signals for generating a bus cycle end signal for microprocessor debugging operation |
JPS6481046A (en) * | 1987-09-22 | 1989-03-27 | Nec Corp | Microprocessor unit incorporating debugging device |
US5084814A (en) * | 1987-10-30 | 1992-01-28 | Motorola, Inc. | Data processor with development support features |
US5129078A (en) * | 1988-08-19 | 1992-07-07 | Groves Stanley E | Dedicated service processor with inter-channel communication features |
DE68925615T2 (de) * | 1988-11-10 | 1996-09-12 | Motorola Inc | Digitalrechnersystem mit Niederstromverbrauchmodus |
US5053949A (en) * | 1989-04-03 | 1991-10-01 | Motorola, Inc. | No-chip debug peripheral which uses externally provided instructions to control a core processing unit |
US5448744A (en) * | 1989-11-06 | 1995-09-05 | Motorola, Inc. | Integrated circuit microprocessor with programmable chip select logic |
JPH03248244A (ja) * | 1990-02-27 | 1991-11-06 | Toshiba Corp | キャッシュメモリを備えたプロセッサ |
JP2526690B2 (ja) * | 1990-02-27 | 1996-08-21 | 三菱電機株式会社 | プログラマブルコントロ―ラの制御方法 |
US5581695A (en) * | 1990-05-09 | 1996-12-03 | Applied Microsystems Corporation | Source-level run-time software code debugging instrument |
US5410685A (en) * | 1990-06-12 | 1995-04-25 | Regents Of The University Of Michigan | Non-intrinsive method and system for recovering the state of a computer system and non-intrusive debugging method and system utilizing same |
US5204864A (en) * | 1990-08-16 | 1993-04-20 | Westinghouse Electric Corp. | Multiprocessor bus debugger |
DE69218682T2 (de) * | 1991-02-01 | 1997-09-18 | Digital Equipment Corp | Verfahren zum austesten eines softwareprogramms |
US5321828A (en) * | 1991-06-07 | 1994-06-14 | Step Engineering | High speed microcomputer in-circuit emulator |
US5317711A (en) * | 1991-06-14 | 1994-05-31 | Integrated Device Technology, Inc. | Structure and method for monitoring an internal cache |
GB2266606B (en) * | 1992-04-27 | 1996-02-14 | Intel Corp | A microprocessor with an external command mode |
US5491793A (en) * | 1992-07-31 | 1996-02-13 | Fujitsu Limited | Debug support in a processor chip |
US5359608A (en) * | 1992-11-24 | 1994-10-25 | Amdahl Corporation | Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions |
DE4302902A1 (de) * | 1993-02-02 | 1994-08-04 | Frederic Dedek | Mikroprozessor mit boolscher Verknüpfungslogik |
EP0636976B1 (de) * | 1993-07-28 | 1998-12-30 | Koninklijke Philips Electronics N.V. | Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren |
US5640542A (en) * | 1993-10-29 | 1997-06-17 | Intel Corporation | On-chip in-circuit-emulator memory mapping and breakpoint register modules |
US5828825A (en) * | 1993-12-22 | 1998-10-27 | Intel Corporation | Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port |
US5488688A (en) * | 1994-03-30 | 1996-01-30 | Motorola, Inc. | Data processor with real-time diagnostic capability |
US5530804A (en) * | 1994-05-16 | 1996-06-25 | Motorola, Inc. | Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes |
US5537536A (en) * | 1994-06-21 | 1996-07-16 | Intel Corporation | Apparatus and method for debugging electronic components through an in-circuit emulator |
US5694589A (en) * | 1995-06-13 | 1997-12-02 | Intel Corporation | Instruction breakpoint detection apparatus for use in an out-of-order microprocessor |
US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US5680620A (en) * | 1995-06-30 | 1997-10-21 | Dell Usa, L.P. | System and method for detecting access to a peripheral device using a debug register |
-
1996
- 1996-08-22 DE DE69616917T patent/DE69616917T2/de not_active Expired - Fee Related
- 1996-08-22 EP EP96113471A patent/EP0762280B1/de not_active Expired - Lifetime
- 1996-08-22 JP JP23987896A patent/JP3846939B2/ja not_active Expired - Fee Related
- 1996-08-29 KR KR1019960036223A patent/KR100439781B1/ko not_active IP Right Cessation
-
1997
- 1997-05-15 US US08/857,006 patent/US6035422A/en not_active Expired - Lifetime
- 1997-10-06 US US08/944,655 patent/US6026501A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69616917D1 (de) | 2001-12-20 |
JP3846939B2 (ja) | 2006-11-15 |
KR100439781B1 (ko) | 2004-10-06 |
US6026501A (en) | 2000-02-15 |
KR970012145A (ko) | 1997-03-29 |
JPH09218802A (ja) | 1997-08-19 |
EP0762280A1 (de) | 1997-03-12 |
US6035422A (en) | 2000-03-07 |
EP0762280B1 (de) | 2001-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69616917T2 (de) | Datenprozessor mit eingebauter Emulationsschaltung | |
DE69616462T2 (de) | Datenprozessor mit eingebauter Emulationsschaltung | |
DE69616463T2 (de) | Datenprozessor mit eingebauter Emulationsschaltung | |
DE69616708T2 (de) | Datenprozessor mit eingebauter Emulationschaltung | |
DE69830718T2 (de) | Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung | |
DE69027471T2 (de) | Fehlersuchperipherie für Mikrorechner, Mikroprozessoren und Kernprozessor beinhaltende integrierte Schaltungen und Vorrichtung die diese Fehlersuchperipherie verwendet | |
DE69801220T2 (de) | Fehlersuchschnittstelle mit kompaktem ablaufdatenspeicher | |
DE69415600T2 (de) | Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren | |
DE3851033T2 (de) | Datenprozessor mit Entwicklungsunterstützungsmerkmalen. | |
DE4329336C2 (de) | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors | |
DE69031183T2 (de) | Verfahren und Anordnung zur Kontrolle der Umwandlung virtueller Adressen in physikalische Adressen in einem Computersystem | |
DE69414985T2 (de) | Verzweigungsentscheidungskodierung | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE69903629T2 (de) | Prüfung der funktionsfähigkeit eines gerätetreibers | |
DE69128565T2 (de) | Mikrorechner ausgestattet mit einer DMA-Steuerung | |
DE69317149T2 (de) | Mikrocomputer mit Befehlsspeicher für Befehle zum Auslesen interner Bedingungen | |
DE2716051C2 (de) | Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden | |
DE69801156T2 (de) | Mikroprozessorbetriebene anordnung mit cache-speicher zum aufnehmen von software-leistungsprofildaten | |
DE69519070T2 (de) | Datenprozessor mit Haltepunktschaltung | |
DE69230238T2 (de) | Informationsverarbeitungsvorrichtung mit Verzweigungsziel-Befehlspufferspeicher | |
DE69712587T2 (de) | Mikrorechner mit Zugriff auf einen externen Speicher | |
JPH09218801A (ja) | データプロセッサ | |
DE60010847T2 (de) | Verfahren zur Fehlerbeseitigung in einem Thread-Programm | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE112005003216T5 (de) | System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8328 | Change in the person/name/address of the agent |
Free format text: SCHUMACHER & WILLSAU, PATENTANWALTSSOZIETAET, 80335 MUENCHEN |
|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: FREESCALE SEMICONDUCTOR, INC., AUSTIN, TEX., US |
|
8339 | Ceased/non-payment of the annual fee |