DE3700800C2 - Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor - Google Patents

Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor

Info

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
Application number
DE19873700800
Other languages
English (en)
Other versions
DE3700800A1 (de
Inventor
Joseph C Krauskopf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE3700800A1 publication Critical patent/DE3700800A1/de
Application granted granted Critical
Publication of DE3700800C2 publication Critical patent/DE3700800C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)

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.
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.
DE19873700800 1986-01-24 1987-01-14 Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor Expired - Lifetime DE3700800C2 (de)

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 (10)

* Cited by examiner, † Cited by third party
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 パナソニック株式会社 プロセッサ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 アクセス割込みによるアドレス・コンペア方式

Also Published As

Publication number Publication date
FR2593621A1 (fr) 1987-07-31
JPS62179033A (ja) 1987-08-06
DE3700800A1 (de) 1987-07-30

Similar Documents

Publication Publication Date Title
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE69933515T2 (de) Peripherieprozessor
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE2414311C2 (de) Speicherschutzeinrichtung
DE4418892C2 (de) Mikrocomputer
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE4329336A1 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE3923253C2 (de) Mikroprozessor
DE2755616A1 (de) Asymmetrischer multiprozessor
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE3911721C2 (de)
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE3307194C2 (de)
DE4429764C2 (de) Zeitgebereinrichtung für einen Mikrocomputer
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE2906685C2 (de)
DE3410497A1 (de) Rechneranordnung
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE2710436A1 (de) Datenverarbeitungseinrichtung
DE19580638B4 (de) Computersystem und Verfahren zum Steuern eines Peripheriegeräts in einem Computersystem

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