DE3700800C2 - Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor - Google Patents
Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem MikroprozessorInfo
- Publication number
- DE3700800C2 DE3700800C2 DE19873700800 DE3700800A DE3700800C2 DE 3700800 C2 DE3700800 C2 DE 3700800C2 DE 19873700800 DE19873700800 DE 19873700800 DE 3700800 A DE3700800 A DE 3700800A DE 3700800 C2 DE3700800 C2 DE 3700800C2
- Authority
- DE
- Germany
- Prior art keywords
- virtual address
- register
- address
- breakpoint
- stored
- 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 - Lifetime
Links
Classifications
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung betrifft einen Mikroprozessor nach dem
Oberbegriff des Anspruchs 1.
Zahlreiche Methoden werden zum Analysieren des Betriebs
verhaltens von Computerprogrammen insbesondere während ihrer
Entwicklung verwendet. Diese Methoden werden häufig als
"Debugging" oder "Austesten" bezeichnet. Der Austestprozeß
wird als wesentlicher Bestandteil bei der Entwicklung eines
Computerprogrammes angesehen und erfordert in einigen Fällen
eine Zeit, welche die zum Schreiben des Programms benötigte
Zeit übersteigt.
Eine bekannte Methode zum Austesten von Computerprogram
men besteht darin, das Programm bei vorgegebenen Ereignissen
zu unterbrechen und danach beispielsweise die Inhalte der
Register zu prüfen. Ein solches Ereignis ist die Erzeugung
von vorgegebenen Adressen, welche Bezugnahmen auf das Compu
terprogramm oder auf Daten sein können. Wenn die vom Compu
ter erzeugte Adresse mit einer der vorgegebenen Adressen
übereinstimmt, tritt ein "Unterbrechungspunkt"
("break-point") auf. Der Betrieb des Computers wird unterbro
chen, um eine Analyse zu ermöglichen.
Ein Verfahren, ein Unterbrechungspunkt-Interrupt zur
Verfügung zu stellen, besteht in der Modifizierung des Com
puterprogramms selbst. Bei bestimmten Adressen im Programm
liefert das Programm eine Unterbrechung. Diese Methode ist
relativ preiswert, hat jedoch den Nachteil, daß Unterbre
chungspunkte nicht für Adressierungen von Daten gesetzt wer
den können.
Bei einem anderen Verfahren wird eine externe Hardware
für den Computer oder Mikroprozessor zur Erzeugung von Un
terbrechungspunkt-Interrupts verwendet. Ein solches Verfah
ren und eine entsprechende Einrichtung sind beispielsweise
in US-A 4,080,650 beschrieben. Diese Hardware vergleicht die
computererzeugten Adressen mit den vorgegebenen Adressen und
liefert ein Unterbrechungspunkt- oder ein Interrupt-Signal.
Dieses Verfahren ist generell kostspielig und erfordert eine
beträchtliche Menge an Leiterplattenraum. Bei Hochgeschwin
digkeitsprozessoren reagiert es außerdem nicht rasch genug,
um einen "Echtzeit"-Unterbrechungspunkt zu erzeugen. Ein we
sentliches Problem erwächst dann, wenn der Mikroprozessor
eine Adressenübersetzungseinheit, wie eine Speichermanage
menteinheit, aufweist. Die einzigen computererzeugten Adres
sen, die einem Anwender dann zugänglich sind, sind die phy
sikalischen Adressen, die typischerweise einem Direktzu
griffsspeicher mitgeteilt werden. Das heißt, daß virtuelle
Adressen, die vom Programmierer verwendet werden, nicht ver
fügbar sind. Es ist schwierig, Unterbrechungspunkte auf der
Basis physikalischer Adressen einzustellen.
Der Erfindung liegt die Aufgabe zugrunde, bei einem Mi
kroprozessor mit virtueller Adressierung eine Einrichtung
zur Unterbrechungspunktgewinnung zur Verfügung zu stellen,
welche die oben angegebenen Probleme löst und eine verbes
serte Unterbrechungspunktselektion ermöglicht.
Diese Aufgabe wird erfindungsgemäß durch einen Mikropro
zessor mit den Merkmalen des Anspruchs 1 gelöst.
Die Erfindung schafft einen Mikroprozessor mit einer
Einrichtung zur Erzeugung eines Unterbrechungspunktsignals,
die für das Austesten von Computerprogrammen geeignet ist.
Die Einrichtung ist besonders für einen Mikroprozessor in
integrierter Schaltungstechnik geeignet, der auf einem ein
zigen Substrat aufgebaut ist und eine Adressenerzeugungsein
richtung zur Erzeugung virtueller Adressen für eine Adres
sierung von Programmbefehlen oder Daten, einen virtuellen
Adreßbus, eine Adressenübersetzungseinrichtung zum Umsetzen
der virtuellen Adresse in eine physikalische Adresse, Aus
wertemittel zum Interpretieren der Programmbefehle und
arithmetische Einrichtungen zur Verarbeitung der Daten nach
Maßgabe der ausgewerteten Befehle aufweist.
Der erfindungsgemäße Mikroprozessor weist ein erstes Re
gister zum Speichern einer vorgegebenen Adresse in Form ei
ner virtuellen Adresse auf, an der ein Unterbrechungspunkt
auftreten soll. Ein zweites Register dient zur Speicherung
von Steuerbits, welche dem Benutzer die Auswahl gewisser Be
dingungen des Unterbrechungspunktes ermöglicht, z. B. ob der
Unterbrechungspunkt an einer Bezugnahme auf das Computerprogramm oder
auf Daten auftreten soll. Ein Komparator vergleicht die vor
gegebene virtuelle Adresse mit der vom Computer erzeugten
Adresse (aktuelle virtuelle Adresse). Logikmittel
bestimmen, ob die aktuelle virtuelle Adresse durch die
Steuerbits vorgegebene Bindungen des Unterbrechungspunktes erfüllt.
Diese Logikmittel werden
ebenfalls von im zweiten Register gespeicherten Steuerbits
gesteuert. Gattermittel, die zur Erzeugung des Unterbre
chungssignals und zum Unterbrechen des Computerbetriebs die
nen, sind mit dem Ausgang des Komparators und den
Logikmitteln gekoppelt. Die Gesamteinrichtung ist auf dem
selben Substrat wie der Mikroprozessor aufgebaut.
Bei einer bevorzugten Weiterbildung weist der Mikropro
zessor zusätzlich zweite Logikmittel auf, welche bestimmen,
ob die aktuelle virtuelle Adresse in einen von der vorgege
benen Adresse repräsentierten Adreßbereich fällt oder ob ein
von der vorgegebenen Adresse repräsentierter Adreßbereich
die virtuelle Adresse enthält. Im Ergebnis ermöglicht dies
eine Einstellung der Breite der vorgegebenen Unterbrechungs
punktadresse (vorgegebene virtuelle Adresse) durch Steuer
bits, die in dem zweiten Register
gespeichert sind.
Im folgenden wird die Erfindung anhand eines in der Zeichnung
dargestellten Ausführungsbeispiels näher erläutert. In der
Zeichnung zeigen:
Fig. 1 ein Blockschaltbild der gesamten Mikroarchitektur
eines Mikroprozessors, in welchem die erfindungsgemäße
Einrichtung Verwendung findet;
Fig. 2 ein Blockschaltbild der erfindungsgemäßen Unterbrechungs
punkteinrichtung;
Fig. 3 ein elektrisches Schaltbild einer Stufe eines der
in dem Blockschaltbild gemäß Fig. 2 verwendeten
Register;
Fig. 4a ein Diagramm zur Darstellung des Falles bei dem
die von der vorgegebenen (Unterbrechungspunkt)-Adresse darge
stellte Speicherbezugnahme breiter als ein Speicher
adressenbezug ist; und
Fig. 4b ein Diagramm zur Erläuterung des Falls, bei dem
die von der vorgegebenen (Unterbrechungspunkt)-Adresse darge
stellte Speicherreferenz schmaler als ein Speicher
adressenbezug ist.
Beschrieben wird eine Unterbrechungspunkteinrichtung, die besonders geeignet
zur Verwendung in einem Mikroprozessor ist, wobei der
Mikroprozessor eine Adressenübersetzungseinheit aufweist, die
mit dem Mikroprozessor als integrale Einheit hergestellt ist.
In für derartige Fälle typischer Weise sind die virtuellen
Adressen für den Anwender bzw. Benutzer nicht zugreifbar,
wodurch es schwer wird, Unterbrechungspunkte einzustellen. Bei dem beschriebenen
bevorzugten Ausführungsbeispiel ist die Unterbrechungspunkteinrichtung
als integrale Baueinheit mit dem Mikroprozessor
und dessen Adressenübersetzungseinheit auf demselben Substrat
hergestellt.
In der folgenden Beschreibung werden zahlreiche besondere
Einzelheiten angegeben, z. B. besondere Anzahlen von Bits usw.,
um das Verständnis für die vorliegende Erfindung zu vertiefen.
Es ist jedoch für den Fachmann klar, daß die Erfindung ohne
diese speziellen Einzelheiten realisierbar ist. In anderen
Fällen sind bekannte Strukturen nicht im einzelnen gezeigt, um
die Beschreibung der Erfindung nicht mit unnötigen Einzelheiten
zu belasten.
Bei dem beschriebenen Ausführungsbeispiel ist der Mikroprozessor
10 in Fig. 1 auf einem einzigen Siliziumsubstrat unter
Verwendung der komplementären Metalloxidhalbleitertechnik
(CMOS-Technik) hergestellt. Es kann dabei irgendein bekanntes
CMOS-Verfahren verwendet werden, wobei es jedoch
klar ist, daß die vorliegende Erfindung mit anderen Technologien,
beispielsweise der n-Kanal-, Bipolar-, SOS-Technik
o. dgl. realisiert werden kann.
In Fig. 1 weist der auf einem Chip hergestellte Mikroprozessor
10 eine Bus-Interfaceeinheit 14, eine Befehlsdecodierereinheit
16, eine Ausführungseinheit 18, eine Adressenübersetzungseinheit
20 und die Gegenstand der Erfindung bildende Unterbrechungspunktschaltung
30 auf, welche in die Einheit 20 einbezogen ist. Der
32-Bit-Mikroprozessor ist gemäß Darstellung in Fig. 1 mit
einem externen Direktzugriffsspeicher 13 gekoppelt. Die Buseinheit
weist Puffer zur Übersetzung der 32-Bit-Adresse und
zum Empfangen und Senden der 32 Datenbits auf. Innerhalb des
Mikroprozessors weist die Buseinheit eine Vorabrufeinheit zum
Abrufen von Befehlen aus dem Speicher 13 und eine Vorabrufwarteschlange
auf, welche mit der Befehlseinheit des Befehlsdecodierers
kommuniziert. Die erweiterten Befehle werden ausgewertet
und in der Einheit 16 in die Warteschlange eingeschleift.
Die arithmetische Logikeinheit der Ausführungseinheit 18
führt generell die Befehle aus.
Für die dargestellte Mikroarchitektur liefert die Adressenübersetzungseinheit
zwei Adressenübersetzungsfunktionen; eine
ist den Segmentdeskriptorregistern und die andere dem Seitendeskriptor-
Cachespeicher zugeordnet. Letzterer ist mit dem
Businterface 14 verknüpft. Diese Funktionen sind im einzelnen
in der älteren deutschen Patentanmeldung P 36 18 163.3
beschrieben. Die Unterbrechungspunktschaltung ist zwischen den
Segmentdeskriptorregistern und dem Seitendeskriptor-Cachespeicher
auf dem Bus 19 gekoppelt. Die virtuellen Adressen werden über
diesen Bus übertragen. Diese virtuellen Adressen sind für
einen Programmierer in geeigneter Weise zugänglich, während
die physikalischen Adressen unzugänglich sind. Wie oben erwähnt,
ist es schwierig, Unterbrechungspunkte auf der Basis von physikalischen
Adressen zu schaffen.
Eine Steuereinheit (nicht dargestellt) ist mit den Einheiten
gemäß Fig. 1 gekoppelt, um die Gesamtsteuerung auszuführen.
In Fig. 2 ist die Unterbrechungspunktschaltung 30 gemäß Fig. 1 als
Blockdiagramm dargestellt. Sie weist ein 32-Bit-Register und einen
Komparator 34 auf. Bei dem beschriebenen Ausführungsbeispiel
sind das Register und ein Komparator in eine einzige Schaltung
einbezogen; eine Stufe dieses Register/Komparators ist in
Fig. 3 gezeigt. Der Register/Komparator 34 speichert die
vorgegebene Adresse, an der Unterbrechungspunkte auftreten sollen und die
nachfolgend manchmal als Unterbrechungspunktadresse bezeichnet wird. Der
Register/Komparator 34 vergleicht die gespeicherte Unterbrechungspunktadresse
mit der vom Mikroprozessor erzeugten virtuellen Adresse,
die nachfolgend zum Teil mit aktueller virtueller Adresse
oder aktueller Adresse bezeichnet wird. Wenn das Ladesignal 35
ansteht, wird eine 32-Bit-Unterbrechungspunktadresse über Bus 19a in den
Register/Komparator 34 geladen. Danach vergleicht der Register/
Komparator 34 die Unterbrechungspunktadresse mit jeder aktuellen
Adresse auf dem Bus 19, und wenn eine Übereinstimmung auftritt,
entwickelt er ein "Treffer-" Signal auf der Leitung 46. Die
beiden am niedrigsten bewerteten Bits der Unterbrechungspunktadresse im
Register/Komparator 34 werden aus nachfolgend noch zu erläuterten
Gründen nicht als Teil dieses Vergleichs verwendet,
sondern werden an die programmierbare Logikanordnung (PLA) 38
angelegt. Die Befehlsdecodiereinheit 16 in Fig. 1 interpretiert
einen vorgegebenen Befehl zum Mikroprozessor als einen
Ladebefehl für den Register/Komparator 34 und ermöglicht dem
Benutzer dadurch das Laden des Register/Komparators 34 mit der
Unterbrechungspunktadresse. Ein anderer Befehl ermöglicht das Lesen der
im Register/Komparator 34 gespeicherten Adresse durch den
Benutzer.
Bei dem beschriebenen bevorzugten Ausführungsbeispiel werden
vier Register/Komparatoren 34 verwendet, die eine Speicherung
von vier verschiedenen Unterbrechungspunktadressen ermöglichen. Jedem
Register/Komparator 34 ist ein begleitendes Register 32 zugeordnet,
das die Speicherung von Steuerbits für jede Unterbrechungspunktadresse
ermöglicht, wie nachfolgend noch erörtert werden wird.
Zum Zwecke der Erläuterung wird die Schaltung gemäß Fig. 2 so
behandelt, als habe sie nur ein einziges erstes Register
/Komparator 34 und ein einziges zweites Register 32. Es ist
jedoch für den Fachmann klar, daß eine beliebige Anzahl von
Register/Komparatoren 34 und Registern 32 verwendet werden
kann, wodurch eine Unterbrechung an einer von mehreren Unterbrechungspunktadressen
möglich wird.
Das Steuerregister 32 speichert vier Steuerbits für jede Unterbrechungspunktadresse.
Ein Bit bestimmt, ob die Unterbrechungspunktadresse eine
Referenz auf Daten oder auf das Computerprogramm darstellt. In
den Fällen einer Referenz auf Daten werden zwei Steuerbits
zur Bestimmung der Breite des Unterbrechungspunktes verwendet. Bei dem
beschriebenen Ausführungsbeispiel kann der Unterbrechungspunkt eine Breite
von 1, 2 oder 4 Bytes haben. Wiederum bei Daten-Unterbrechungspunkten
dient ein anderes Steuerbit zur Ermöglichung einer Unterbrechung
entweder bei Lesezyklen oder bei Schreib- oder Lesezyklen.
Wie im Falle des Register/Komparators 34 wird ein
vorgegebener Befehl zum Mikroprozessor 10 von der Einheit
interpretiert, um dem Benutzer das Laden des Registers 32 zu
ermöglichen. Dieser Befehl kann der gleiche sein, wie er zum
Laden des Register/Komparators 34 verwendet wird.
Eine Aktivierungslogikschaltung 36 ist zur Aufnahme von Bussteuersignalen
geeignet angeordnet. Die zugehörigen Leitungen
enthalten Steuersignale, welche bestimmen, ob eine aktuelle
Adresse eine Referenz auf ein Programm oder Daten darstellt;
und im Falle von Datenreferenzen, ob es sich nur um einen
Lesezylus oder um einen Lese- oder Schreibzyklus handelt. Die
Aktivierungslogikschaltung 36 vergleicht diese Steuersignale
mit zwei der Steuerbits aus dem Register 32, und wenn der
Speicherzyklus mit dem vom Benutzer gewählten Zyklus übereinstimmt,
wird ein Aktivierungstakt an ein UND-Gatter 40 angelegt.
Gewöhnliche Logikschaltungen dienen diesem Zweck.
Wie erwähnt, kann der Unterbrechungspunkt eine Breite von 1, 2 oder 4
Bytes haben, und diese Benutzer-gewählte Breite wird im Register
32 gespeichert. Die beiden Bits, die für diese Auswahl
erforderlich sind, werden zur PLA 38 übertragen. Zusätzlich
werden die beiden am niedrigsten bewerteten Bits, die im Register/
Komparator 34 gespeichert sind, wie oben erwähnt, an die
PLA 38 angelegt. Zeitgabe- und Steuersignale von Leitungen 41
werden ebenfalls an die PLA 38 angelegt. Die PLA ist nicht
Benutzer-programmierbar, sondern bereits herstellerseitig fest
programmiert. Die PLA implementiert die in dem nachfolgenden
Absatz angegebene Logik. Die Verwendung einer PLA ist für die
vorliegende Erfindung unkritisch, d. h. andere Logikschaltungen
können anstelle der PLA verwendet werden. Die PLA liefert ein
Signal an das Gatter 40, wenn eine "Übereinstimmung" auftritt.
Im folgenden wird auf Fig. 4a Bezug genommen, in der eine
relativ breite Unterbrechungspunkt-Adressenreferenz 70 dargestellt ist
(z. B. vier Bytes). Die aktuelle virtuelle Speicheradresse kann
nur auf einen Teil der Referenz 70 bezug nehmen. Im Falle einer
schmalen Unterbrechungspunktadressenreferenz, wie er in Fig. 4b als
Referenz 74 gezeigt ist, kann eine relativ breite virtuelle
Adressenreferenz die schmalere Fixpunkt-Adressenreferenz 74
einschließen. Die beiden in den Fig. 4a und 4b gezeigten
Fälle werden durch die PLA 38 gelöst. Wie erwähnt, können
gewöhnliche Logikschaltungen verwendet werden, um zu bestimmen,
ob die aktuelle Speicheradressenreferenz in eine breite
Unterbrechungspunktadressenreferenz fällt, oder ob eine schmalere Unterbrechungspunktadressenreferenz
in eine breitere aktuelle Speicheradressenreferenz
fällt. Wenn eine dieser Bedingungen auftritt,
wird ein "Übereinstimmungs"-Signal an der Leitung 52 erzeugt.
Das UND-Gatter 40 erhält die drei Eingangssignale, das Treffersignal
vom Register/Komparator 34, den Aktivierungstakt von
der Logikschaltung 36 und das Übereinstimmungssignal von der
Schaltung 38. Das Treffersignal wird erzeugt, wenn die 30 am
höchsten bewerteten Bits der aktuellen virtuellen Adresse mit
den 30 am höchsten bewerteten Adreßbits der gespeicherten
Unterbrechungspunktadresse übereinstimmen. Der Ausgang des Gatters 40
liefert das Unterbrechungspunktsignal, das zum Unterbrechen des Betriebs
des Mikroprozessors verwendet wird.
Die dargestellte Einzelstufe des Register/Komparators 34 in
Fig. 3 weist eine statische Speicherzelle 55 und einen Komparator
54 auf. Busleitungen 19a und 19b führen ein einziges
Adreßbit und dessen Komplement. Die Trefferleitung 46 ist
gekoppelt mit dem Komparator 54 und mit einem p-Kanal-Transistor
56 gezeigt. Dieser Transistor wird zum Vorladen der
Leitung 46 vor jedem virtuellen Adreßbuszyklus verwendet. Die
Leitung 46 ist mit den anderen Stufen des Register/Komparators
34 gekoppelt.
Die kreuzgekoppelten Inverter bilden ein gewöhnliches Flipflop
oder eine statische Speicherzelle 55. Diese Zelle wird von
Leitungen 19a und 19b geladen, wenn das Ladesignal auf der
Leitung 35 ansteht. Sobald das Register geladen ist, sinkt das
Potential des Ladesignals ab und entkoppelt die Zelle 55 wirksam
von den Leitungen 19a und 19b. Wenn danach die aktuelle
virtuelle Adresse auf diesen Leitungen erscheint und das 01
Signal ansteht, wird der Inhalt der Zelle 55 mit der Adresse
auf dem Bus 19 von dem Komparator 54 verglichen. Wenn eines
der 32-Bit-Paare, welche verglichen werden, nicht übereinstimmen,
wird die Leitung 46 entladen, wodurch verhindert wird,
daß das UND-Gatter 40 in Fig. 2 aktiviert wird. Die Schaltung
gemäß Fig. 3 ist in der oben erwähnten älteren Anmeldung im
einzelnen beschrieben, wo die Schaltung als Teil eines inhaltsadressierbaren
Speichers verwendet wird.
Im Einsatz der Erfindung bestimmt der Benutzer bis zu vier
Unterbrechungspunktadressen und wählt aus, ob die Adressen Referenzen zu
Programmen oder Daten sind. Im Falle von Datenreferenzen wird
die Breite der Referenz bestimmt und außerdem festgestellt,
ob der Unterbrechungspunkt bei einem Nur-Lesezyklus oder bei einem Lese-
oder Schreibzyklus auftreten soll. Durch einen speziellen
Befehl ist dann der Benutzer in der Lage, bis zu vier Unterbrechungspunktadressen
in den Register/Komparator 34 zu laden und die
entsprechenden Steuerbits für jeden Unterbrechungspunkt im Register 32
einzustellen. Während jedes virtuellen Adreßbuszyklus tritt
danach ein Vergleich innerhalb des Register/Komparators 34
auf, und die Logikschaltungen 36 und 38 bestimmen, ob die vom
Benutzer gewählten Bedingungen existieren. Wenn die Adressen
übereinstimmen und die Bedingungen übereinstimmen, wird sodann
ein Unterbrechungspunktsignal am Ausgang des Gatters 40 erzeugt.
Anders als bei bekannten Methoden wird ein Echtzeit-Unterbrechungspunktsignal
erzeugt. Die Vergleiche werden durchgeführt, während
die virtuelle Adresse am Bus ansteht, und da nur eine sehr
geringe Übertragungsverzögerung auftritt, kann das Unterbrechungssignal
zum geeigneten Zeitpunkt erzeugt werden.
Vorstehend wurde eine Unterbrechungspunkt-Signalerzeugungseinrichtung
beschrieben. Die Einrichtung ist besonders zweckmäßig für
Ein-Chip-Mikroprozessoren, bei denen virtuelle Adressen "on-
chip" in physikalische Adressen übersetzt werden.
Claims (7)
1. Mikroprozessor mit einer Adressenerzeugungseinrich
tung zur Erzeugung virtueller Adressen zum Adressieren von
Programmbefehle und/oder Daten, einem virtuellen Adreßbus,
einer Adressenübersetzungseinrichtung zum Umsetzen der
virtuellen Adressen in physikalische Adressen, einer Auswerte
einrichtung zum Interpretieren der Programmbefehle und einer
arithmetischen Einheit zum Verarbeiten von Daten entspre
chend den interpretierten Befehlen,
gekennzeichnet durch:
ein erstes Register (34) zur Speicherung einer virtuel len Adresse, an der ein Unterbrechungspunkt auftreten soll;
ein zweites Register (32) zur Speicherung von Steuer bits;
eine mit dem ersten Register (34) gekoppelte, wenigstens einen Teil der gespeicherten virtuellen Adresse mit wenig stens einem Teil einer aktuellen virtuellen Adresse auf dem virtuellen Adreßbus vergleichende Komparatorschaltung (34);
mit dem zweiten Register (32) zum Abtasten wenigstens eines der gespeicherten Steuerbits gekoppelte Logikmittel (36, 38), die in Abhängigkeit von den Steuerbits bestimmen, ob die aktuelle virtuelle Adresse durch die Steuerbits vorgegebene Be dingungen des Unterbrechungspunktes erfüllt; und
ein Unterbrechungspunkt-Signal erzeugende Gattermittel (40), die mit der Komparatorschaltung (34) und den Logikmit teln (36, 38) gekoppelt sind,
wobei das erste Register, das zweite Register, die Kom paratorschaltung, die Logikmittel und die Gattermittel auf einem einzigen Substrat einer integrierten Schaltung ange ordnet sind und das Unterbrechungspunkt-Signal in Echtzeit liefern.
gekennzeichnet durch:
ein erstes Register (34) zur Speicherung einer virtuel len Adresse, an der ein Unterbrechungspunkt auftreten soll;
ein zweites Register (32) zur Speicherung von Steuer bits;
eine mit dem ersten Register (34) gekoppelte, wenigstens einen Teil der gespeicherten virtuellen Adresse mit wenig stens einem Teil einer aktuellen virtuellen Adresse auf dem virtuellen Adreßbus vergleichende Komparatorschaltung (34);
mit dem zweiten Register (32) zum Abtasten wenigstens eines der gespeicherten Steuerbits gekoppelte Logikmittel (36, 38), die in Abhängigkeit von den Steuerbits bestimmen, ob die aktuelle virtuelle Adresse durch die Steuerbits vorgegebene Be dingungen des Unterbrechungspunktes erfüllt; und
ein Unterbrechungspunkt-Signal erzeugende Gattermittel (40), die mit der Komparatorschaltung (34) und den Logikmit teln (36, 38) gekoppelt sind,
wobei das erste Register, das zweite Register, die Kom paratorschaltung, die Logikmittel und die Gattermittel auf einem einzigen Substrat einer integrierten Schaltung ange ordnet sind und das Unterbrechungspunkt-Signal in Echtzeit liefern.
2. Mikroprozessor nach Anspruch 1, dadurch gekennzeich
net, daß die Logikmittel erste Logikmittel (36) aufweisen,
die bestimmen, ob die aktuelle virtuelle Adresse Programmbe
fehle oder ob sie Daten adressiert.
3. Mikroprozessor nach Anspruch 2, dadurch gekennzeich
net, daß ein weiteres der in dem zweiten Register (32) ge
speicherten Steuerbits bestimmt, ob ein Unterbrechungspunkt
bei einer Adressierung von Daten nur während eines Lese-Zy
klus oder sowohl während eines Lese-Zyklus als auch während
eines Schreib-Zyklus auftreten soll.
4. Mikroprozessor nach einem der Ansprüche 1 bis 3, da
durch gekennzeichnet, daß die Logikmittel zweite Logikmittel
(38) aufweisen, die bestimmen, ob die gespeicherte virtuelle
Adresse in einen von einem Teilabschnitt der aktuellen vir
tuellen Adresse repräsentierten Speicherbereich fällt oder
ob die aktuelle virtuelle Adresse in einem von einem Teilab
schnitt der gespeicherten virtuellen Adresse repräsentierten
Speicherbereich fällt.
5. Mikroprozessor nach Anspruch 4, dadurch gekennzeichnet,
daß bestimmte in dem zweiten Register (32) gespei
cherte Steuerbits die Breite der Adresse bestimmen, an der
der Unterbrechungspunkt auftreten soll, wobei die zweiten
Logikmittel (38) bestimmen, (i) ob die Bezugnahme der aktuellen
virtuellen Adresse in den von der gespeicherten virtuellen
Adresse repräsentierten Speicherbereich fällt, wobei die Be
zugnahme der aktuellen virtuellen Adresse schmaler als die
gespeicherte virtuelle Adresse ist, oder (ii) ob die durch
die gespeicherte virtuelle Adresse repräsentierte Bezugnahme
in der Bezugnahme der aktuellen virtuellen Adresse einge
schlossen ist, wobei die aktuelle virtuelle Adresse breiter
als die Bezugnahme der gespeicherten virtuellen Adresse ist.
6. Mikroprozessor nach einem der Ansprüche 1 bis 5, da
durch gekennzeichnet, daß die Auswerteeinrichtung (16) so
ausgebildet ist, daß sie einen bestimmten Befehl zum Akti
vieren des Ladens des ersten Registers (34) von dem Bus in
terpretiert.
7. Mikroprozessor nach einem der Ansprüche 1 bis 6, da
durch gekennzeichnet, daß die Auswerteeinrichtung (16) so
ausgebildet ist, daß sie einen vorgegebenen Befehl zum Akti
vieren des Ladens des zweiten Registers (32) interpretiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82226386A | 1986-01-24 | 1986-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3700800A1 DE3700800A1 (de) | 1987-07-30 |
DE3700800C2 true DE3700800C2 (de) | 1996-04-18 |
Family
ID=25235601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873700800 Expired - Lifetime DE3700800C2 (de) | 1986-01-24 | 1987-01-14 | Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPS62179033A (de) |
DE (1) | DE3700800C2 (de) |
FR (1) | FR2593621A1 (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2690737B2 (ja) * | 1987-11-30 | 1997-12-17 | 株式会社リコー | プロセッサ集積回路装置 |
JPH02297225A (ja) * | 1989-05-11 | 1990-12-07 | Mitsubishi Electric Corp | マイクロプロセッサ |
JPH03148732A (ja) * | 1989-07-31 | 1991-06-25 | Texas Instr Inc <Ti> | 状態監視器を備えたデータ処理装置 |
JP2526688B2 (ja) * | 1990-02-22 | 1996-08-21 | 三菱電機株式会社 | プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法 |
JPH04107630A (ja) * | 1990-08-28 | 1992-04-09 | Nec Corp | 中央処理装置 |
JPH06103109A (ja) * | 1992-09-22 | 1994-04-15 | Hitachi Ltd | データプロセッサ、及びこれを用いるデバッグ装置 |
JP2727976B2 (ja) * | 1994-09-12 | 1998-03-18 | 日本電気株式会社 | インサーキットエミュレータ |
US5717909A (en) * | 1995-05-26 | 1998-02-10 | National Semiconductor Corporation | Code breakpoint decoder |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
JP4837247B2 (ja) * | 2003-09-24 | 2011-12-14 | パナソニック株式会社 | プロセッサ |
US10740220B2 (en) * | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JPS5821296A (ja) * | 1981-07-30 | 1983-02-08 | ヤマハ株式会社 | 電子楽器 |
JPS5856051A (ja) * | 1981-09-29 | 1983-04-02 | Fujitsu Ltd | アクセス割込みによるアドレス・コンペア方式 |
-
1986
- 1986-12-18 FR FR8617748A patent/FR2593621A1/fr active Pending
-
1987
- 1987-01-14 DE DE19873700800 patent/DE3700800C2/de not_active Expired - Lifetime
- 1987-01-17 JP JP62008878A patent/JPS62179033A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JPS62179033A (ja) | 1987-08-06 |
FR2593621A1 (fr) | 1987-07-31 |
DE3700800A1 (de) | 1987-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE4305442C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Testvektors | |
DE69523549T2 (de) | Mikroprozessor mit Fehlersuchsystem | |
DE3853759T2 (de) | Datenprozessor mit zwei Betriebsmoden. | |
DE69933515T2 (de) | Peripherieprozessor | |
DE3856067T2 (de) | Datenprozessor mit einer Unterbrechungsfunktion | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE2414311C2 (de) | Speicherschutzeinrichtung | |
DE4418892C2 (de) | Mikrocomputer | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE3781794T2 (de) | Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen. | |
DE3700800C2 (de) | Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor | |
DE3751108T2 (de) | Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. | |
DE102006041444B4 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
DE69130233T2 (de) | Verfahren und gerät um ein sperrungscache einzusetzen | |
DE2533737A1 (de) | Datenprozessor | |
DE3911721C2 (de) | ||
DE69128908T2 (de) | Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner | |
DE3789471T2 (de) | Mikrocomputer. | |
DE3307194C2 (de) | ||
DE69131954T2 (de) | Zeichenfolgensuchgerät und -system | |
DE4429764C2 (de) | Zeitgebereinrichtung für einen Mikrocomputer | |
DE60010847T2 (de) | Verfahren zur Fehlerbeseitigung in einem Thread-Programm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 11/28 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |