DE69500544T2 - Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen - Google Patents

Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen

Info

Publication number
DE69500544T2
DE69500544T2 DE69500544T DE69500544T DE69500544T2 DE 69500544 T2 DE69500544 T2 DE 69500544T2 DE 69500544 T DE69500544 T DE 69500544T DE 69500544 T DE69500544 T DE 69500544T DE 69500544 T2 DE69500544 T2 DE 69500544T2
Authority
DE
Germany
Prior art keywords
memory
conditions
circuit
bus
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69500544T
Other languages
English (en)
Other versions
DE69500544D1 (de
Inventor
Stephan Klingler
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.)
STMicroelectronics SA
Original Assignee
SGS Thomson Microelectronics SA
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 SGS Thomson Microelectronics SA filed Critical SGS Thomson Microelectronics SA
Publication of DE69500544D1 publication Critical patent/DE69500544D1/de
Application granted granted Critical
Publication of DE69500544T2 publication Critical patent/DE69500544T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die Erfindung betrifft einen integrierten Schaltkreis mit Vorrichtungen zum Unterbrechen der Ausführung eines Programmes mit Befehlen, wenn eine Kombination von Unterbrechungspunkten verifiziert wird.
  • Es ist bekannt, daß viele integrierte Schaltkreise wie z.B. die integrierten Schaltkreise für bestimmte Funktionen oder ASICs (aus dem Englischen "Application Specific Integrated Circuit") eine Zentraleinheit oder Prozessor und wenigstens einen Programmspeicher vom Festwertspeichertyp (ROM), der über einen Adreßbus, einen Datenbus und Leitungen für Signale zum Steuern des Zugangs zum Lesen und Schreiben in den Speicher mit der Zentraleinheit verbunden ist und der ein Programm mit durch diese Zentraleinheit ausführbaren Befehlen enthält, umfassen.
  • Wenn ein solcher integrierter Schaltkreis in Form eines Chips aus Silizium hergestellt wird, müssen unterschiedliche Tests mit ihm durchgeführt werden, um seine Funktion zu überprüfen. So testet man einerseits den Aufbau des Schaltkreises (Eigenschaften der Bauteile, Verbindungen ...) und andererseits das Programm, das in dem Programmspeicher enthalten ist, oder die Art, in welcher der Schaltkreis dieses ausführt.
  • Zum Testen des Programms werden bekanntermaßen Bedingungen für die Unterbrechung der Ausführung der Befehle des Programms definiert, so daß für den Fall, daß diese Bedingungen verifiziert werden, die Ausführung der Befehle unterbrochen wird. Diese Bedingungen bilden das, was man Unterbrechungspunkte (oder breakpoint in der angelsächsischen Literatur) nennt. Zu diesem Zweck umfaßt der integrierte Schaltkreis Vorrichtungen für die Speicherung und den Vergleich, um z.B. einen Adressenwert des Programmspeichers zu sichern, der durch den Nutzer definiert wurde, diesen Wert mit dem auf dem Befehlsadressenbus anliegenden Wert zu vergleichen und die Ausführung der Befehle zu unterbrechen, wenn diese Werte gleich sind.
  • Dieser Testtyp über Unterbrechungspunkte erlaubt es, z.B. zu verifizieren, welche Werte sich auf den Zugriffsbussen von der Zentraleinheit nach der Ausführung eines bestimmten Befehls befinden. Wenn einmal die Verifizierung der Werte erfolgt ist, kann die Ausführung der Befehle fortfahren, nachdem eventuell die Unterbrechungsbedingungen zum Unterbrechen der späteren Ausführung geändert worden sind (die Befehle sind nacheinander angeordnet in dem Programmspeicher).
  • Dieser Testtyp, der ursprünglich zum Testen des Ablaufs eines Programms in einem integrierten Schaltkreis mit nur einem Speicher erdacht worden ist, hat Nachteile z.B. für den Fall, daß der Schaltkreis zusätzlich zum Programmspeicher Datenspeicher enthält, die ebenfalls mit der Zentraleinheit über die Adreßbusse, Datenbusse und Leitungen für die Signale zum Steuern des Zugriffs zum Lesen oder zum Schreiben auf die Adresse verbunden sind. Wenn der Schaltkreis nur einen Programmspeicher umfaßt, kennt man in der Tat a priori den Inhalt der Adressen dieses Speichers. Wenn dagegen der Schaltkreis einen Datenspeicher umfaßt, in welchem man z.B. Speicherraum reserviert, um Daten mit variablem Wert zu speichern, so kann man das Programm nicht dadurch anhalten, daß man die Bedingung aufstellt, daß Daten mit variablem Wert, abgespeichert bei einer gegebenen Adresse, einen bestimmten Wert annehmen. Für den Fall, daß der Unterbrechungspunkt über den Adreßbus des Datenspeichers übertragen wird, wird man das Programm bei jedem Zugriff auf die genannte Adresse des Speichers anhalten, was immer der Wert der Daten sei, die bei dieser Adresse abgelegt worden sind, für den Fall, daß der Unterbrechungspunkt über den Datenbus übertragen wird, wird man das Programm anhalten, was immer die Adresse des Speichers sei, bei welcher man den gegebenen Wert abzulegen wünscht.
  • In der Praxis kann es auch sein, daß die Ausführung der Befehle vielfach unterbrochen wird, ohne daß das Ereignis eintritt, auf das man wartet, was die verlorene Zeit beim Testen des Programms erhöht. Es wäre dasselbe, wenn man z.B. die Ausführung der Befehle anhalten möchte, wenn die Ausführung eines Befehls in einer Programmschleife einen Zugriff auf eine gewisse Adresse im Datenspeicher bewirkt.
  • Die erste Schrift EP-A-0 455 446 betrifft eine Vorrichtung zum Testen von Unterbrechungspunkten in einem Speicher, den sich mehrere Prozessoren teilen. Die Unterbrechungspunkte beziehen sich auf eine Kombination von Bedingungen, die einzig das Schreiben in einem speziellen Datenspeicher bei einer gegebenen Adresse betreffen. Das Problem besteht darin, zu wissen, welcher Prozessor sich am Anfang eines Unterbrechungspunktes befindet.
  • In dieser Schrift berücksichtigt man nur den Fall, daß die Bedingungen gleichzeitig erfüllt sind. Das Problem des Unterbrechens bei verifizierten Bedingungen mit einer gewissen Zeitverzögerung wird nicht gelöst, die Schrift schließt ausdrücklich (Spalte 5, Zeilen 8-15) die Suche nach der Lösung dieses Problems aus. Es wird tatsächlich in den genannten Zeilen gesagt, daß die Zyklen zum Lesen des Speichers durch den Steuerbus für die Erfassung von Ereignissen ignoriert werden, daß sie aber in einem Speicher abgespeichert werden (um später bearbeitet zu werden) Die Begrenzung der Erfassung folgt daraus, daß es keine Gleichzeitigkeit mit dem entgegengesetzten Effekt zu einem Einschreiben in den Speicher gibt.
  • Unter Berücksichtigung des vorherigen liegt der Erfindung die Aufgabe zugrunde, einen integrierten Schaltkreis zu schaffen, der den Test eines Programmes mit Befehlen optimiert, wenn der Schaltkreis wenigstens zwei Speicher umfaßt, wobei der Schaltkreis Vorrichtungen zur Kombination von Unterbrechungspunkten untereinander einschließt.
  • Die Erfindung schlägt daher einen integrierten Schaltkreis vor, der umfaßt:
  • - eine Zentraleinheit (2),
  • - einen Programmspeicher (3), der ein Programm mit Befehlen enthält, der mit der Zentraleinheit über einen Adreßbus (4), einen Datenbus (5) und Leitungen (6), die Steuersignale für den Zugriff beim Lesen und Schreiben auf diesen Speicher übertragen, verbunden ist, wobei die Befehle durch die Zentraleinheit ausgeführt werden,
  • - und wenigstens einen Datenspeicher (7), der mit der Zentraleinheit über einen Adreßbus (8), einen Datenbus (9) und Leitungen (10), die Steuersignale für den Zugriff beim Lesen und Schreiben auf diesen Speicher übertragen, verbunden ist,
  • dadurch gekennzeichnet, daß der Schaltkreis umfaßt:
  • - Unterbrechungsvorrichtungen (16), die eine Kombination aus Bedingungen definieren, die sich auf Werte auf zwei der Speicherbusse und auf Steuersignalwerte für den Zugriff auf wenigstens einen dieser Speicher beziehen, und die Ausführung der Befehle unterbrechen, wenn diese Bedingungen erfüllt werden,
  • - Vorrichtungen zum Verzögern der Unterbrechung, wenn die erfüllten Bedingungen sich auf die Adreßbusse beziehen,
  • - und Vorrichtungen zum Verzögern der Erfüllung der Bedingungen in bezug auf das Auftreten von Daten auf den Bussen, wenn die Bedingungen sich auf die Datenbusse beziehen.
  • Man kann so den Test eines Schaltkreises mit wenigstens zwei Speichern optimieren, indem die Kombination von Unterbrechungspunkten zwischen zwei Speichern oder zwischen den Adreß- und Datenbussen ein- und desselben Speichers gebildet wird.
  • Bevorzugt wird der Schaltkreis dadurch gekennzeichnet, daß die Unterbrechungsvorrichtungen die Ausführung der Befehle unterbrechen, wenn die Bedingungen einer Kombination während der Bearbeitung des gleichen Befehls erfüllt werden.
  • Man kann so das gleichzeitige Auftreten von zwei Unterbrechungspunkten testen.
  • Vorzugsweise ist der Schaltkreis dadurch gekennzeichnet, daß die Unterbrechungsvorrichtungen die Ausführung von Befehlen im Verlauf des Abarbeitens eines Befehls nur unterbrechen, wenn die Bedingungen einer Kombination, die mit dem Wert auf einem Bus eines der Speicher und den Werten der Steuersignale für den Zugriff auf diesen Speicher zusammenhängen, erfüllt werden, während die anderen Bedingungen der Kombination, die entweder mit dem Wert auf dem anderen Bus dieses Speichers oder dem Wert auf einem Bus des anderen Speichers und mit den Werten der Steuersignale für den Zugriff auf diesen anderen Speicher zusammenhängen, vorher während des Verlaufs des Abarbeitens eines anderen Befehls erfüllt werden.
  • Man kann so die Abfolge von zwei Unterbrechungspunkten testen.
  • Es ist vorteilhaft, daß der Schaltkreis derart ausgelegt wird, daß, wenn ein Befehl dekodiert wird, während Bedingungen erfüllt werden, die Unterbrechungsvorrichtungen die Ausführung der Befehle nach Ausführung dieses Befehls unterbrechen.
  • Man sieht damit vor, daß jeder dekodierte Befehl ausgeführt wird. Die Bearbeitung eines Befehls umfaßt nacheinander eine Phase der Adressierung, eine Phase der Dekodierung und eine Phase der Ausführung. So wird man bei einer Zentraleinheit, die die Befehle in einer sogenannten Pipeline abarbeitet, in welcher man bei der Ausführung eines Befehls gleichzeitig den nachfolgenden Befehl dekodiert, nicht einen Befehl nach einem Befehl neu dekodieren müssen, dessen Ausführung der Verifizierung von Unterbrechungsbedingungen entspricht.
  • Die Erfindung wird verständlich und andere Eigenschaften und Vorteile der Erfindung werden hervorgehen aus der folgenden Beschreibung eines bevorzugten aber nicht einschränkenden Ausführungsbeispiels, wobei Bezug genommen wird auf die beigefügten Zeichnungen, bei denen:
  • - Figur 1 eine schematische Darstellung eines erfindungsgemäßen integrierten Schaltkreises ist,
  • - Figur 2 eine schematische Darstellung eines Teils des Schaltkreises aus Figur 1 ist, wobei dieser Teil Unterbrechungsvorrichtungen zum Erzeugen eines Signals zur Unterbrechung der Ausführung der Befehle umfaßt,
  • - Figur 3 ein Zeitdiagramm ist, das eine Pipeline-Struktur darstellt,
  • - die Figuren 4 bis 9 Schaltkreise darstellen, bei denen unterschiedliche Konfigurationen von Unterbrechungspunkten umgesetzt wurden.
  • Gemäß Figur 1 umfaßt ein erfindungsgemäßer integrierter Schaltkreis 1:
  • - eine Zentraleinheit 2,
  • - einen Programmspeicher 3, der mit der Zentraleinheit 2 über einen Adreßbus 4, einen Datenbus 5 und Leitungen 6, die ein Steuersignal zum Zugriff beim Lesen und ein Steuersignal zum Zugriff beim Schreiben übertragen, verbunden ist,
  • - einen ersten Datenspeicher 7, der mit der Zentraleinheit 2 über einen Adreßbus 8, einen Datenbus 9 und Leitungen, die allgemein mit 10 bezeichnet sind und ein Steuersignal zum Zugriff beim Lesen und ein Steuersignal zum Zugriff beim Schreiben übertragen, verbunden ist, und
  • - einen zweiten Datenspeicher 11, der mit der Zentraleinheit 2 über einen Adreßbus 12, einen Datenbus 13 und Steuerleitungen, die allgemein mit 14 bezeichnet sind und ein Steuersignal beim Lesen und ein Steuersignal beim Schreiben übertragen, verbunden ist.
  • Bei einem Beispiel ist der integrierte Schaltkreis 1 ausgelegt für die Bearbeitung von Signalen, und die Zentraleinheit 2 umfaßt die wesentlichen Elemente eines Signalverarbeitungsprozessors, wobei die zwei Datenspeicher 6 und 11 die parallele Verarbeitung der Daten ermöglichen. Ein solcher Schaltkreis umfaßt selbstverständlich weitere Vorrichtungen wie z.B. eine oder mehrere Schnittstellen, Arithmetikeinheiten etc., die hier nicht dargestellt sind.
  • In dem beschriebenen Beispiel sind der Adreß- und Datenbus sowie die Leitungen, die die Steuersignale für den Zugriff auf die Datenspeicher 6 und 11 übertragen, verbunden mit den Primärzugängen 15 des integrierten Schaltkreises 1.
  • Der integrierte Schaltkreis 1 umfaßt gleichermaßen einen sogenannten Unterbrechungsschaltkreis 16, der in Figur 2 dargestellt ist und über den Adreßbus 4 und die Leitungen 6 des Programmspeichers 3 sowie die Adreßbusse 8 und 12, die Datenbusse 9 und 13 und die Leitungen 10 und 14 mit den Datenspeichern 7 und 11 verbunden ist. Der Programmspeicher 3 enthält üblicherweise ein Programm mit durch die Zentraleinheit 2 ausführbaren Befehlen. Der Unterbrechungsschaltkreis ist ebenso über eine Leitung 17, die ein logisches Steuersignal HALT überträgt, mit der Zentraleinheit 2 verbunden, so daß die Ausführung von Befehlen unterbrochen wird, wenn das HALT-Signal sich in einem gegebenen logischen Zustand befindet, z.B. wenn HALT = 1 gilt.
  • Der Unterbrechungsschaltkreis 16, der in Figur 2 dargestellt ist, umfaßt sechs Master-Slave-Register 18, 19, 20, 21, 22 und 23, vier Vergleichsschaltkreise 24, 25, 26 und 27, einen Steuerschaltkreis 41.
  • In einem Beispiel sind die sechs Master-Slave-Register vom Typ parallel-parallel, d.h. mit n Eingängen und n Ausgängen, wobei n eine ganze Zahl ist.
  • Die Eingänge der sechs Register sind alle mit n Drähten eines Busses mit wenigstens n Drähten verbunden. In dem Beispiel wurde der Datenbus 13 des zweiten Datenspeichers 11 gewählt.
  • Desgleichen sind die Ausgänge der sechs Register alle mit den n Drähten desselben Busses über Pufferschaltkreise mit drei Zuständen (in Englisch Tristate-Puffer) verbunden, wodurch so ermöglicht wird, die Ausgänge der Register mit dem Bus zu verbinden oder sie zu isolieren.
  • Jedes Register empfängt ein logisches Steuersignal wie z.B. zum Triggern bei der Anstiegsflanke des Signals.
  • Die Steuersignale werden an die Register über einen Dekodierschaltkreis 40 ausgegeben, der mit dem Adreßbus 12 des zweiten Speichers 11 verbunden ist.
  • Dieser Dekodierschaltkreis 40 gibt gleichermaßen logische Steuersignale an jeden Pufferschaltkreis mit drei Zuständen aus, um die Ausgänge der Register vom Datenbus 13 zu isolieren oder mit diesem zu verbinden. Schließlich ist der Dekodierschaltkreis 40 außerdem auch mit den Leitungen 14 verbunden, die die Steuersignale für den Zugriff auf den Speicher 11 übertragen.
  • Die Master-Slave-Register 18 bis 23 sind in dem Beispiel an einer virtuellen Speicheradresse konfigurierbare Register (in Englisch memory mapped). Dieser Registertyp, der an sich bekannt ist, ist zugänglich für Lesen, um den Inhalt zu lesen, oder für Schreiben, um dort Werte abzulegen, und sie werden in diesem Beispiel verwendet, um die Unterbrechungspunkte (oder Bedingungen) abzulegen, die mit den unterschiedlichen Bussen der Speicher des Schaltkreises 1 zusammenhängen, bis auf den Datenbus 5 des Programmspeichers.
  • Zum Lesen oder Schreiben in den Registern bedient man sich einer Adresse, die einer Adresse im zweiten Datenspeicher 11 entspricht. Der Dekodierschaltkreis 40 erzeugt, wenn er eine Adresse eines der Register auf dem Adreßbus 12 erkennt, entsprechende Signale, um den Inhalt des Registers auf den Datenbus 13 zu legen oder die Werte der n Drähte dieses Busses, die mit den n Eingängen dieses Registers verbunden sind, in dem Register abzulegen, je nach dem Wert der Steuersignale für den Zugriff auf den Speicher 11.
  • Auf diese Art sorgt man dafür, daß die Unterbrechungspunkte programmierbar sind und daß die Register zum Abspeichern von Unterbrechungspunkten zugänglich sind, ohne daß speziell ausgelegte Verbindungen hierfür benötigt werden, was es erlaubt, die Zahl der Anschlüsse des integrierten Schaltkreises zu limitieren und außerdem die Oberfläche dieses Schaltkreises zu limitieren. Diese Register bei virtueller Speicheradresse hätten ebensogut mit dem Datenbus des ersten Datenspeichers verbunden sein können.
  • In dem beschriebenen Beispiel wird davon ausgegangen, daß jeder Bus der unterschiedlichen Speicher eine identische Zahl n an Drähten aufweist. Zum Beispiel beträgt n = 16.
  • Die ersten vier Master-Slave-Register 18 bis 21 sind jeweils über ihre n Ausgänge mit einem der vier Vergleichsschaltkreise 24 bis 27 verbunden. Jeder Vergleichsschaltkreis hat n Eingänge, die mit den n Ausgängen eines der Register 18 bis 21 verbunden sind, wobei n andere Ausgänge mit n Ausgängen eines unter vier Multiplexern 28 bis 31 verbunden sind, und zwei Ausgänge verbunden sind mit dem Steuerschaltkreis 41, um an diesen die logischen Signale zu übertragen, die den Vergleich zwischen den an seinen n Eingängen, die mit einem der Register verbunden sind, anliegenden Werten und seinen n Eingängen, die mit dem Ausgang eines der Multiplexer verbunden sind, wiedergeben.
  • Die logischen Signale, die den Vergleich wiedergeben, können z.B. ein Signal sein, das die Übereinstimmung zwischen zwei Folgen von n Eingängen darstellt, wenn er sich in einem vorgegebenen logischen Zustand befindet, z.B. im Zustand 1, und ein Signal, das eine Größerrelation darstellt, wobei der Vergleich selbstverständlich auf Binärzahlen basiert, die sich bei der Kodierung eines Wertes in n Bit ergeben, der am Ausgang des Registers anliegt, mit dem, der an den n Ausgängen des Multiplexers anliegt, wenn das zweite Signal sich in einem vorgegebenen logischen Zustand befindet, z.B. im Zustand 1. Diese Signale könnten ebensogut Relationen wie Differenz, kleiner oder kleiner gleich, etc. darstellen.
  • Wenn mit VR der Wert bezeichnet wird, der mit n Bits vorliegt und von einem der Vergleichsschaltkreise von einem der Register empfangen wurde, und mit VM der Wert bezeichnet wird, der in n Bits kodiert wurde und durch denselben Vergleichsschaltkreis von einem der Multiplexer empfangen wurde, und wenn das Vergleichsergebnis von VR und VM in zwei Logikzustände kodiert wird, so deckt man alle möglichen Fälle ab:
  • VR = VM, VR &ne; VM, VR > VM, VR < VM, VR &ge; VM und VR &le; VM.
  • Der erste Vergleichsschaltkreis 24 ist mit einem ersten Multiplexer 28 verbunden, der an seinem Eingang mit den n Drähten des Adreßbusses 12 und den n Drähten des Adreßbusses 8 verbunden ist. Dieser Multiplexer empfängt von dem Steuerschaltkreis 41 ein logisches Steuersignal, um selektiv seine n Ausgangsdrähte mit den n Drähten des Busses 12 oder den n Drähten des Busses 8 zu verbinden. An seinen anderen Eingängen ist der erste Vergleichsschaltkreis mit n Ausgängen des Registers 18 verbunden.
  • Der zweite Vergleichsschaltkreis 25 ist mit einem zweiten Multiplexer 29 verbunden, der außerdem über seinen Eingang mit den n Drähten des Adreßbusses 12 und den n Drähten des Adreßbusses 8 verbunden ist. Dieser Multiplexer empfängt vom Steuerschaltkreis 41 ein logisches Steuersignal, um selektiv seine n Ausgangsdrähte mit den n Drähten des Busses 12 oder den n Drähten des Busses 8 zu verbinden. Über seine anderen Eingänge ist der zweite Vergleichsschaltkreis mit den n Ausgängen des Registers 19 verbunden.
  • Der dritte Vergleichsschaltkreis 26 ist mit einem dritten Multiplexer 30 verbunden, der über seinen Eingang einerseits mit den n Drähten des Adreßbusses 4 und andererseits mit den n Drähten des Datenbusses 9 über n Ausgänge eines Master-Slave-Registers 32 mit n Eingängen, die mit n Drähten des Busses 9 verbunden sind, verbunden ist. Wie oben empfängt der dritte Multiplexer vom Steuerschaltkreis 41 ein logisches Steuersignal, um selektiv n seiner Eingänge mit seinen n Ausgängen zu verbinden. Über seine anderen Eingänge ist der dritte Vergleichsschaltkreis mit n Ausgängen des Registers 20 verbunden.
  • Der vierte Vergleichsschaltkreis 27 ist mit einem vierten Multiplexer 31 verbunden, der als Eingang einerseits die n Drähte des Adreßbusses 4 einliest und andererseits die n Drähte des Datenbusses 13 über die n Ausgänge eines Master- Slave-Registers 33, dessen n Eingange mit den n Drähten des Busses 13 verbunden sind. Desgleichen empfängt wie oben dieser vierte Multiplexer des Steuerschaltkreises 41 ein logisches Steuersignal, um selektiv n seiner Eingänge mit seinen n Ausgängen zu verbinden. Über seine anderen Eingänge ist der vierte Vergleichsschaltkreis mit n Ausgängen des Registers 21 verbunden.
  • Die zwei letzten Master-Slave-Register 22 und 23 sind über ihre n Ausgänge mit dem Steuerschaltkreis 41 verbunden, wobei dieser Steuerschaltkreis andererseits mit den Leitungen 6, 10 und 14 verbunden ist, die die Steuersignale für den Zugriff auf unterschiedliche Speicher übertragen.
  • Schließlich weist der Steuerschaltkreis einen Ausgang auf, der mit der Leitung 17 verbunden ist, die das logische HALT-Signal an die Zentraleinheit 2 überträgt.
  • Die Aufgabe des Schaltkreises 16 ist es, dafür zu sorgen, daß die Ausführung der Befehle des Programmes unterbrochen wird, das in dem Programmspeicher 3 enthalten ist, wenn die Bedingungen (oder der Unterbrechungspunkt) erfüllt sind, die einen speziellen Bus unter den Bussen betreffen, die die Speicher mit der Zentraleinheit verbinden, oder wenn eine Kombination von Bedingungen auf zwei verschiedenen dieser Busse erfüllt ist.
  • Somit kann man durch Verwendung eines der Vergleichsschaltkreise 24 oder 25 einen Unterbrechungspunkt auf den Adreßbus eines der Datenspeicher legen. Bei gleichzeitiger Verwendung dieser zwei Schaltkreise kann man einen Unterbrechungspunkt auf die beiden Adreßbusse gleichzeitig legen.
  • Unter Verwendung der Vergleichsschaltkreise 26 und 27 kann man einen Unterbrechungspunkt entweder auf den Datenbus eines Datenspeichers oder die beiden Datenbusse der beiden Speicher oder den Adreßbus des Programmspeichers oder diesen Adreßbus und einen der Datenbusse legen.
  • Unter Verwendung eines der Vergleichsschaltkreise 24 oder 25 gleichzeitig mit dem einen der Vergleichsschaltkreise 26 oder 27 kann man einen Unterbrechungspunkt wahlweise auf den Adreßbus und den Datenbus eines Datenspeichers, die Adreßbusse eines Datenspeichers und des Programmspeichers, etc. legen.
  • Unter dem Legen eines Unterbrechungspunktes versteht man das Definieren von Bedingungen, so daß bei Erfüllung dieser Bedingungen über den Steuerschaltkreis 41 die Ausführung von Befehlen durch die Zentraleinheit unterbrochen wird.
  • Figur 3 zeigt ein Zeitdiagramm, in dem Signale wiedergegeben sind, die man auf unterschiedlichen Daten- und Adreßbussen der Speicher des Schaltkreises finden kann.
  • Üblicherweise ist die Bearbeitung eines auszuführenden Befehls gekennzeichnet durch die Abfolge:
  • - Positionieren durch einen nicht dargestellten Programmzähler der Wortadresse oder von nachfolgenden Wortadressen (unter Wort versteht man den Inhalt, der sich an einer Adresse des Programmspeichers befindet) des Befehls auf dem Adreßbus 4 des Programmspeichers,
  • - Dekodieren von Worten durch einen nicht dargestellten Sortierer nach ihrer Positionierung durch den Programmspeicher auf dem Datenbus 5,
  • - Ausführung des Befehls durch die Zentraleinheit.
  • Typischerweise werden diese Operationen durch ein Taktsignal H synchronisiert, das z.B. durch einen Quarz erzeugt wird.
  • Figur 3 zeigt die Aufeinanderfolge von sukzessiven Bearbeitungen von Befehlen in einer Pipeline-Struktur, wie sie heute verwendet wird. Bei dieser Abfolge positioniert man die Adressen auf dem Bus 4 zur selben Zeit, wie man die entsprechenden Worte bei den vorangehenden Adressen dekodiert und man die Befehle ausführt, die den vorher dekodierten Worten entsprechen.
  • Figur 3 zeigt ein Beispiel für die Abfolge von vier Befehlen A, B, C, D, wobei die Befehle A, B und D einen einzigen Zugriff auf dem Programmspeicher nötig machen und der Befehl C zwei nötig macht.
  • Also:
  • - A wird als ein Wort kodiert, das mit DN bezeichnet wird und sich an einer Adresse des Programmspeichers befindet, die mit AN bezeichnet wird,
  • - B wird als ein Wort kodiert, das mit DN+1 bezeichnet wird und sich bei einer Adresse des Programmspeichers befindet, die mit AN+1 bezeichnet wird,
  • - C wird als zwei Worte kodiert, die mit DN+2 und DN+3 bezeichnet werden und sich bei zwei Adressen im Programmspeicher befinden, die mit AN+2 und AN+3 bezeichnet werden,
  • - D wird als ein Wort kodiert, das mit DN+4 bezeichnet wird und sich bei einer Adresse des Programmspeichers befindet, die mit AN+4 bezeichnet wird.
  • In dem beschriebenen Beispiel geht man davon aus, daß die Synchronisation unterschiedlicher Adressierungsoperationen, die Kodierungsoperationen und Ausführungsoperationen bei der ansteigenden Flanke des Taktsignals erfolgen.
  • Bei Bezeichnung der aufeinanderfolgenden Zyklen (oder Perioden des Taktsignals) mit Hj, j ganze Zahl, und der Bezeichnung H1 für den Zyklus, der der Positionierung der Adresse AN auf dem Adreßbus des Programmspeichers entspricht, erhält man das folgende Zeitschema:
  • H1: Adressierung des Wortes DN des Befehls A,
  • H2: Adressierung des Wortes DN+1 des Befehls B, Dekodierung von A,
  • H3: Adressierung des Wortes DN+2 des Befehls C, Dekodierung von B, Ausführung von A,
  • H4: Adressierung des Wortes DN+3 des Befehls C, Anfang der Dekodierung C, Ausführung von B,
  • H5: Adressierung des Wortes DN+4 des Befehls D, Ende der Dekodierung von C, Anfang der Ausführung von C,
  • HG: Dekodierung von D, Ende der Ausführung von C,
  • H7: Ausführung von D.
  • Wenn eine Adresse auf dem Adreßbus eines Speichers positioniert wird, um den Inhalt des Speichers bei dieser Adresse zu lesen, wird dieser Inhalt während desselben Zyklus auf den Datenbus dieses Speichers gelegt, mit einer gewissen Verzögerung gegenüber dem Anfang des Zyklus, wobei diese Verzögerung sich aus der Zeit ergibt, die notwendig ist für das Zugreifen des Speichers auf diese Adresse, und der Zeit, die notwendig ist für den Speicher, um den Inhalt dieser Adresse auf seinen Datenbus zu legen.
  • Im übrigen ist es offensichtlich, daß es eine verzögerung gibt, die zwei Zykluszeiten zwischen dem Beginn des Zyklus, währenddessen man die Adresse eines Wortes auf den Adreßbus des Programmspeichers legt, und dem Beginn des Zyklus, während dessen dieses Wort den elektrischen Zustand der anderen Busse des Schaltkreises beeinflußt, entspricht. Wenn daher der Befehl A dem Lesen des Inhalts einer Adresse XN des Datenspeichers 7 entspricht, so wird diese Adresse XN auf den Adreßbus 8 dieses Speichers zu Beginn des Zyklus H3 gelegt, und der Inhalt dieser Adresse XN wird auf den Datenbus 9 dieses Speichers im Verlauf dieses Zyklus gelegt, eine gewisse Zeit nach dem Beginn dieses Zyklus.
  • Schließlich ist in Figur 3 ein logisches Signal TONWNCY dargestellt, das durch die Zentraleinheit erzeugt wurde, so daß für den Fall, daß ein Befehl q Zyklen für seine Dekodierung erforderlich macht, wobei q eine ganze Zahl größer als 1 ist, dieses Signal einen vorgegebenen Zustand einnimmt, hier den Zustand 1, der die q - 1 ersten Zykluszeiten andauert, die notwendig sind für die Dekodierung dieses Befehls, und den komplementären Zustand, wenn dies nicht der Fall ist. Somit ist hier das Signal TONWNCY während des Zyklus H4 im Zustand 1 und im Zustand 0 außerhalb. Dieses Signal wird durch den Steuerschaltkreis 41 über eine Leitung 42 empfangen, die ihn mit der Zentraleinheit verbindet.
  • Im folgenden werden Schaltkreise beschrieben, die im Schaltkreis 16 Eingang gefunden haben, indem unterschiedliche repräsentative Fälle von Möglichkeiten der Verwaltung des Unterbrechungspunktes angegeben werden, wie sie nach der Erfindung möglich sind.
  • Die Figuren 4 bis 9 stellen Elemente des Steuerschaltkreises 41 dar, die das Erzeugen des logischen HALT-Signals ermöglichen.
  • Wie angedeutet empfängt der Steuerschaltkreis Signale, die es ermöglichen, das Resultat des Vergleichs von den Werten, die durch jeden Vergleichsschaltkreis empfangen wurden, und den Steuersignalen für den Zugriff auf unterschiedliche Speicher zu erkennen.
  • Die Definition der Bedingungen für die Unterbrechung der Ausführung des Programms umfassen also logischerweise
  • - Auswahl eines oder zweier Busse, auf welchem oder welchen sich der Unterbrechungspunkt befindet, wobei diese Auswahl direkt die Werte der Steuersignale der Multiplexer 28 bis 31 beeinflußt,
  • - Auswahl des Zustandes der Steuersignale für den Zugriff auf den oder die Speicher, die mit diesen Bussen zusammenhängen,
  • - Auswahl einer Relation zwischen dem oder den Werten, die in den Registern 18 bis 21 enthalten sind, und dem oder den Werten, die auf dem oder den Bussen anliegen.
  • Eine Analyse der unterschiedlichen Fälle, die vorstellbar sind, führte dazu, drei Typen von Unterbrechungspunkten wie gesehen zu definieren:
  • - einen Typ von Unterbrechungspunkt, den man als klassisch bezeichnen könnte, zielend auf die Werte eines Busses eines der Speicher,
  • - einen Unterbrechungspunkttyp, der Gleichzeitigkeit genannt wird, zielend auf eine Kombination von Werten, die sich auf zwei Bussen befinden, wobei diese Kombination im Verlauf der Bearbeitung ein und desselben Befehls erfüllt wird,
  • - einen Unterbrechungspunkttyp, der Abfolge genannt wird, zielend auf eine Kombination von Werten, die auf zwei Bussen anliegen, so daß die Ausführung von Befehlen unterbrochen wird, wenn Bedingungen für einen Bus eintreten, während andere Bedingungen vorher auf dem anderen Bus eingetreten sind.
  • In der Praxis kann man für jeden Unterbrechungspunkttyp eine bestimmte Zahl interessanter Anwendungen definieren, indem man diese Zahl limitiert, um die Größe des Steuerschaltkreises zu limitieren:
  • - klassischer Typ (5 Fälle): Unterbrechungspunkt auf dem Adreßbus eines der Speicher oder dem Datenbus eines der Datenspeicher. Man interessiert sich nicht a priori für die Werte, die auf dem Datenbus des Programmspeichers anliegen, weil man a priori den Inhalt der Adressen dieses Speichers kennt.
  • - Typ der Gleichzeitigkeit (6 Fälle): Unterbrechungspunkt auf den Bussen eines Datenspeichers, den Adreßbussen von Datenspeichern, den Datenbussen von Datenspeichern, den Adreßbussen eines Datenspeichers und dem Programmspeicher,
  • - Typ der Abfolge (7 Fälle): Unterbrechungspunkt auf den Adreßbussen eines Datenspeichers und des Programmspeichers, wobei die Verifizierung der Bedingungen auf dem Bus des Programmspeichers zeitlich vorangeht, auf den Adreßbussen der Datenspeicher, wobei die Verifizierung 7 der Bedingungen auf dem Bus eines der Speicher zeitlich vorangeht, auf den Daten- und Adreßbussen eines Datenspeichers, wobei die Verifizierung der Bedingungen auf dem Adreßbus des Speichers zeitlich vorangeht, auf dem Adreßbus des Programmspeichers, wobei die Verifizierung des Anlegens eines bestimmten Wertes auf diesen Bus in bezug auf die Verifizierung des Anlegens eines anderen Wertes zeitlich vorangeht.
  • In der Erfindung sind die Unterbrechungspunkte konfigurierbar, d.h. man kann die unterschiedlichen, oben definierten Parameter ändern, und man verwendet die Register 22 und 23 zum Ablegen der gewünschten Bedingungen.
  • Wenn man mit R0 bis Rn-1 die in dem Register 22 abgelegten Werte und mit R'0 bis R'n-1 die in dem Register 23 abgelegten Werte bezeichnet, erhält man z.B.:
  • - R0 bei der Auswahl des Busses, der mit dem Vergleichsschaltkreis 24 über den Multiplexer 28 verbunden ist,
  • - R1 und R2 bei der Auswahl des Zustandes der Signale für den Zugriff auf den Speicher, der dem ausgewählten Bus entspricht,
  • - R3 und R4 bei der Auswahl einer Relation zwischen dem Wert, der am Ausgang des Registers 18 anliegt, und dem Wert, der auf dem ausgewählten Bus anliegt,
  • - R5 und R6 bei der Auswahl, ob eine Kombination von Bedingungen bezüglich des durch R0 ausgewählten Busses und eines anderen Busses, der mit einem der Vergleichsschaltkreise 25 oder 26 verbunden ist, vorliegt oder nicht,
  • - R7 bei der Auswahl des Busses, der mit dem Vergleichsschaltkreis 25 über den Multiplexer 29 verbunden ist,
  • - R8 und R9 bei der Auswahl des Zustandes der Signale für den Zugriff auf den Speicher, der dem ausgewählten Bus entspricht,
  • - R10 und R11 bei der Auswahl einer Relation zwischen dem Wert, der am Ausgang des Registers 19 anliegt, und dem Wert, der auf dem ausgewählten Bus anliegt,
  • - R12 und R13 bei der Auswahl, ob eine Kombination von Bedingungen betretfend den durch R5 ausgewählten Bus und
  • einen anderen Bus, der mit einem der Vergleichsschaltkreise 24 oder 27 verbunden ist, vorliegt oder nicht,
  • - R14 und R15: nicht belegt,
  • - R'0 bei der Auswahl des Busses, der mit dem Vergleichsschaltkreis 26 über den Multiplexer 30 verbunden ist,
  • - R'1 und R'2 bei der Auswahl des Zustandes der Signale für den Zugriff auf den Speicher, der dem ausgewählten Bus entspricht,
  • - R'3 und R'4 bei der Auswahl einer Relation zwischen dem Wert, der am Ausgang des Registers 20 anliegt, und dem Wert, der auf dem ausgewählten Bus anliegt,
  • - R'5 und R'6 bei der Auswahl, ob eine Kombination von Bedingüngen bezüglich des durch R'0 ausgewählten Busses und eines anderen Busses, der mit dem Vergleichsschaltkreis 27 verbunden ist, vorliegt oder nicht,
  • - R'7 beim Ausgang des Busses, der mit dem Vergleichsschaltkreis 27 über den Multiplexer 31 verbunden ist,
  • - R'8 und R'9 bei der Auswahl des Zustandes der Signale für den Zugriff auf den Speicher, der dem ausgewählten Bus entspricht,
  • - R'10 und R'11 bei der Auswahl einer Relation zwischen dem Wert, der am Ausgang des Registers 21 anliegt, und dem Wert, der auf dem ausgewählten Bus anliegt,
  • - R'12 bis R'15: nicht belegt.
  • Im folgenden werden die eingesetzten Vorrichtungen zur Verarbeitung 5 der obengenannten Fälle erläutert.
  • Unterbrechungspunkt auf einem Adreßbus eines Datenspeichers (Figur 4).
  • Figur 4 zeigt die eingesetzten Vorrichtungen, wenn man einen Unterbrechungspunkt auf den Adreßbus 8 des Datenspeichers 7 legen möchte.
  • Um zu kontrollieren, ob die Bedingungen des Unterbrechungspunkts eingetreten sind, kann man wahlweise einen der Vergleichsschaltkreise 24 oder 25 verwenden. In dem beschriebenen Beispiel verwendet man den Vergleichsschaltkreis 24, wobei der auf dem Adreßbus 8 anliegende Wert tatsächlich verglichen wird mit dem an den Ausgängen des Registers 18 anliegenden Wert.
  • Um die Ausführung der Befehle durch die Zentraleinheit unterbrechen zu können, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 43, um das logische HALT-Signal auszugeben.
  • Dieser Schaltkreis 43 umfaßt:
  • - einen Vergleichsschaltkreis 44,
  • - eine Master-Slave-Kippstufe 45, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - ein UND-Logikgatter 46 mit zwei Eingängen,
  • - einen Wahlschaltkreis 47.
  • Der Vergleichsschaltkreis 44 ist mit den Leitungen 10 verbunden, die Steuersignale für den Zugriff auf den Speicher 7 übertragen, mit den Ausgängen des Vergleichsschaltkreises 24 und Ausgängen des Registers 22. Dieser Schaltkreis 44 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 22 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 24 verifiziert sind. Zum Beispiel wird das durch den Vergleichsschaltkreis 44 erzeugte Signal sich in dem Zustand 1 befinden, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 44 ist mit dem Eingang der Kippstufe 45 verbunden. Der Ausgang dieser Kippstufe 45 ist mit einem Eingang des logischen UND-Gatters 46 verbunden. Der andere Eingang dieses UND-Gatters ist verbunden mit einem Ausgang des Wahlschaltkreises 47. Dieser Schaltkreis 47, der nicht beschrieben wird, ist mit Ausgängen des Registers 22 verbunden und ist so ausgelegt, daß das an seinem Ausgang anliegende Signal sich im Zustand 1 befindet, wenn die Werte der Bits des Registers 22 der Auswahl eines Unterbrechungspunktes auf dem Bus 8 entsprechen.
  • Der Ausgang des UND-Gatters 46 ist verbunden mit der Leitung 17, die das HALT-Signal überträgt.
  • Wenn somit während eines Zyklus alle erwarteten Bedingungen auf dem Adreßbus 8 und den Leitungen 10 verifiziert werden, geht das HALT-Signal am Anfang des folgenden Zyklus auf 1 über.
  • Um einen Unterbrechungspunkt auf dem Adreßbus 12 des anderen Datenspeichers 11 zu legen, reicht es, den Schaltkreis 43 zu duplizieren, indem die Verbindungen zwischen diesem Schaltkreis und seiner Umgebung für diesen speziellen Fall angepaßt werden.
  • Unterbrechungspunkt auf einem Datenbus eines Datenspeichers (Figur 5).
  • Figur 5 zeigt die eingesetzten Vorrichtungen, wenn man einen Unterbrechungspunkt auf dem Datenbus 9 des Datenspeichers 7 einrichten möchte.
  • Um zu kontrollieren, ob die Bedingungen für den Unterbrechungspunkt verifiziert sind, verwendet man den Vergleichsschaltkreis 26. Der auf dem Datenbus 9 anliegende Wert wird mit dem an den Ausgängen des Registers 20 anliegenden Wert verglichen.
  • Um die Unterbrechung der Ausführung von Befehlen durch die Zentraleinheit zu ermöglichen, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 48, um das logische HALT-Signal auszugeben.
  • Der Schaltkreis 48 umfaßt:
  • - einen Vergleichsschaltkreis 49,
  • - ein logisches UND-Gatter 50 mit zwei Eingängen,
  • - einen Wahlschaltkreis 51,
  • - eine Master-Slave-Kippstufe 52 mit zwei Eingängen und zwei Ausgängen, die auf die Anstiegsflanke des Taktsignals reagiert.
  • Die Master-Slave-Kippstufe 51 empfängt über ihre Eingänge die Leitungen 10, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen.
  • Der Vergleichsschaltkreis 49 ist mit den Ausgängen der Kippstufe 51 verbunden, den Ausgängen des Vergleichsschaltkreises 26 und Ausgängen des Registers 23. Dieser Schaltkreis 44 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 23 abgelegt wurden, erfüllt sind auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 26. Zum Beispiel befindet sich das durch den Vergleichsschaltkreis 44 erzeugte Signal in dem Zustand 1, wenn die Bedingungen erfüllt sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 49 ist mit einem Eingang des logischen UND-Gatters 50 verbunden. Der andere Eingang dieses UND-Gatters ist mit einem Ausgang des Wahlschaltkreises 51 verbunden, der eine äquivalente Rolle wie der Wahlschaltkreis 47 in Figur 4 spielt.
  • Der Ausgang des UND-Gatters so ist mit der Leitung 17 verbunden, die das HALT-Signal überträgt.
  • Wenn daher während eines Zyklus alle erwarteten Bedingungen auf dem Datenbus 9 und den Leitungen 10 verifiziert werden, geht das HALT-Signal zu Beginn des folgenden Zyklus auf 1 über.
  • In dem Fall eines Datenbusses liegen die Daten nicht zu Beginn eines Zyklus auf dem Bus an, sondern im Verlauf des Zyklus. Aus diesem Grund verzögert man den Vergleich mittels Kippstufen 52 und 32 (im Fall des Busses 9), anstatt die Unterbrechung nach dem Vergleich zu verzögern, wie es in dem oben beschriebenen Fall der Fall ist, wobei die Kippstufe 32 auf die ansteigende Flanke des Taktsignals H reagiert.
  • Um einen Unterbrechungspunkt auf dem Datenbus 13 des anderen Datenspeichers 11 zu plazieren, reicht es, den Schaltkreis 48 zu duplizieren, indem die Verbindungen zwischen diesem Schaltkreis und seiner Umgebung an den speziellen Fall angepaßt werden.
  • Unterbrechungspunkt auf dem Adreßbus 4 des Programmspeichers 3 (Figur 6).
  • Figur 6 zeigt die eingesetzten Vorrichtungen, wenn man einen Unterbrechungspunkt auf dem Adreßbus 4 des Programmspeichers 3 anordnen möchte.
  • Um zu kontrollieren, ob die Bedingungen des Unterbrechungspunktes verifiziert sind, verwendet man wahlweise einen der Vergleichsschaltkreise 26 oder 27. In dem dargestellten Beispiel verwendet man den Vergleichsschaltkreis 26. Der Wert, der auf dem Adreßbus 4 anliegt, wird verglichen mit dem Wert, der an den Ausgängen des Registers 20 anliegt.
  • Um die Unterbrechung der Ausführung der Befehle durch die Zentraleinheit zu ermöglichen, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 53, um das logische HALT-Signal auszugeben.
  • Dieser Schaltkreis 53 umfaßt:
  • - einen Vergleichsschaltkreis 54,
  • - eine erste Master-Slave-Kippstufe 55, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - einen Multiplexer 56 mit drei Eingängen und einem Ausgang,
  • - eine zweite Master-Slave-Kippstufe 57, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - eine dritte Master-Slave-Kippstufe 58, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - ein logisches UND-Gatter 59 mit zwei Eingängen,
  • - einen Wahlschaltkreis 60,
  • - einen ersten Inverter 61,
  • - einen zweiten Inverter 62,
  • - eine vierte Master-Slave-Kippstufe 63, die auf die ansteigende Flanke des Taktsignals H reagiert, und
  • - ein logisches NICHT-ODER-Gatter mit zwei Eingängen.
  • Der Vergleichsschaltkreis 54 ist mit den Leitungen 6, den Ausgängen des Vergleichsschaltkreises 26 und den Ausgängen des Registers 23 verbunden. Dieser Schaltkreis 54 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 23 abgelegt sind, auf den Leitungen 6 und an den Ausgängen des Vergleichsschaltkreises 26 verifiziert sind. Zum Beispiel befindet sich das durch den Vergleichsschaltkreis 54 erzeugte Signal in dem Zustand 1, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 54 ist mit dem Eingang der ersten Master-Slave-Kippstufe 55 verbunden. Der Ausgang dieser ersten Kippstufe ist verbunden mit einem ersten Eingang des Multiplexers 56.
  • Der Multiplexer hat einen zweiten Eingang, der permanent auf dem logischen Zustand 0 gehalten wird.
  • Der Ausgang des Multiplexers 56 ist mit dem Ein gaüg der zweiten Kippstufe 57 verbunden. Der Ausgang dieser Kippstufe 57 ist einerseits mit dem dritten Eingang des Multiplexers 56 und andererseits mit dem Eingang der dritten Kippstufe 58 verbunden.
  • Der Ausgang dieser Kippstufe 58 ist mit einem Eingang des UND-Gatters 59 verbunden. Dieses Gatter 59 ist über seinen anderen Eingang mit einem Ausgang des Wahlschaltkreises 60 verbunden, der eine äquivalente Rolle zu der des Wahlschaltkreises 47 in Figur 4 spielt. Der Ausgang des UND- Gatters 59 ist mit der Leitung 7 verbunden, die das HALT- Signal überträgt.
  • Die dritte Kippstufe 63 ist mit der Leitung 42 über den Inverter 62 verbunden und empfängt daher das Signal /TONWNCY. Der Ausgang dieser Kippstufe ist mit einem ersten Steuereingang des Multiplexers 56 verbunden, so daß der Ausgang dieses Multiplexers mit seinem ersten Eingang verbunden wird, wenn das am Ausgang der Kippstufe 63 anliegende Signal sich im Zustand 1 befindet.
  • Der Ausgang des Wahlschaltkreises 60 ist über den Inverter 61 mit einem zweiten Steuereingang des Multiplexers 56 verbunden, so daß der Ausgang dieses Multiplexers mit seinem zweiten Eingang verbunden wird, wenn das an dem besagten Steuereingang anliegende Signal sich im Zustand 1 befindet.
  • Schließlich hat der Multiplexer 56 einen dritten Steuereingang, der mit dem Ausgang des NICHT-ODER-Gatters 64 verbunden ist, wobei die zwei Eingänge dieses NICHT-ODER-Gatters jeweils mit einem der zwei Steuereingänge dieses Multiplexers verbunden sind.
  • Wenn somit also während eines Zyklus alle erwarteten Bedingungen auf dem Adreßbus 4 und den Leitungen 6 verifiziert werden, geht das HALT-Signal zu Beginn des folgenden Zyklus in 1 über, was das Ende der Ausführung des Befehls bedeutet, dem die auf dem Bus anliegende Adresse entspricht, wenn die Bedingungen verifiziert sind.
  • Unterbrechungspunkt auf dem Datenbus und dem Adreßbus eines Datenspeichers wobei die Bedingungen bei der Ausführung ein und desselben Befehls eingetreten sein müssen (Figur 7).
  • Die Figur 7 stellt die eingesetzten Vorrichtungen dar, wenn man einen Unterbrechungspunkt auf dem Adreßbus 8 und dem Datenbus 9 des Datenspeichers 7 anordnen möchte, wobei die Bedingungen für jeden Bus bei der Ausführung ein und desselben Befehls verifiziert sein müssen.
  • Um zu kontrollieren, ob die Bedingungen des Unterbrechungspunktes verifiziert sind, kann man wahlweise einen der Vergleichsschaltkreise 24 oder 25 und den Vergleichsschaltkreis 26 verwenden. In dem beschriebenen Beispiel verwendet man die Vergleichsschaltkreise 24 und 26, wobei der auf dem Adreßbus 8 anliegende Wert in der Tat verglichen wird mit dem an den Ausgängen des Registers 18 anliegenden Wert und derjenige, der auf dem Datenbus 9 anliegt, verglichen wird mit dem an den Ausgängen des Registers 20 anliegenden Wert.
  • Um die Unterbrechung der Ausführung der Befehle durch die Zentraleinheit zu ermöglichen, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 65, um das logische HALT-Signal auszugeben.
  • Der Schaltkreis 65 umfaßt:
  • - einen ersten Vergleichsschaltkreis 66,
  • - eine erste Master-Slave-Kippstufe 67, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - einen zweiten Vergleichsschaltkreis 68,
  • - eine zweite Master-Slave-Kippstufe 69 mit zwei Eingängen und zwei Ausgängen, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - einen Wahlschaltkreis 70,
  • - ein logisches UND-Gatter 71 mit drei Eingängen.
  • Der erste Vergleichsschaltkreis 66 ist mit den Leitungen 10 verbunden, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen, den Ausgängen des Vergleichsschaltkreises 24 und Ausgängen des Registers 22. Dieser Schaltkreis 66 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 22 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 24 verifiziert sind. Zum Beispiel wird sich das durch den Vergleichsschaltkreis 66 erzeugte Signal in dem Zustand 1 befinden, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 66 ist mit dem Eingang der ersten Kippstufe 67 verbunden. Der Ausgang dieser Kippstufe 67 ist mit einem Eingang des logischen UND-Gatters 71 verbunden. Ein anderer Eingang dieses UND-Gatters ist mit einem Ausgang des Wahlschaltkreises 70 verbunden. Dieser Schaltkreis 70 spielt dieselbe Rollewie der Wahlschaltkreis 47 in Figur 4.
  • Der Ausgang des UND-Gatters 71 ist mit der Leitung 17 verbunden, die das HALT-Signal überträgt.
  • Die zweite Master-Slave-Kippstufe 69 empfängt über ihre Eingänge die Leitungen 10, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen.
  • Der zweite Vergleichsschaltkreis 68 ist mit den Ausgängen der Kippstufe 69 verbunden, den Ausgängen des Vergleichsschaltkreises 26 und Ausgängen des Registers 23. Dieser Schaltkreis 68 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 23 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 26 verifiziert sind. Zum Beispiel befindet sich das durch den Vergleichsschaltkreis 68 erzeugte Signal in dem Zustand 1, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 68 ist mit dem letzten Eingang des logischen UND-Gatters 71 verbunden.
  • Wenn daher also während eines Zyklus alle erwarteten Bedingungen auf dem Datenbus 9 und Adreßbus 8 sowie den Leitungen 10 verifiziert sind, geht das HALT-Signal zu Beginn des folgenden Zyklus in 1 über.
  • Um einen Unterbrechungspunkt auf den Adreßbus 12 und den Datenbus 13 des anderen Datenspeichers 11 zu plazieren, reicht es, den Schaltkreis 65 zu duplizieren, indem die Verbindungen zwischen diesem Schaltkreis und seiner Umgebung an den speziellen Fall angepaßt werden. Ebenso dupliziert man, um die anderen Unterbrechungspunkte zu plazieren, die den anderen Fällen der Gleichzeitigkeit entsprechen, so oft wie nötig den oben beschriebenen Schaltkreis, indem die Verbindungen und die Elemente der Schaltkreise in jedem Fall in bezug auf Figuren 4 und 6 verdoppelt werden, so weit der Aufbau der Schaltkreise betroffen ist.
  • Unterbrechungspunkt zwischen einem Datenbus und einem Adreßbus eines Datenspeichers. wobei die Ausführung unterbrochen wird wenn die Bedingungen auf dem Datenbus verifiziert sind während andere Bedingungen auf dem Adreßbus bei der Ausführung eines vorangehenden Befehls verifiziert waren (Figur 8).
  • Das in Figur 8 dargestellte Beispiel erlaubt es, den Fall zu berücksichtigen, bei dem der Datenspeicher 7 betroffen ist.
  • Um zu kontrollieren, ob die Bedingungen des Unterbrechungspunkts verifiziert sind für den Adreßbus 8, kann man wahlweise einen der Vergleichsschaltkreise 24 oder 25 verwenden. In dem beschriebenen Beispiel verwendet man den Vergleichsschaltkreis 24, wobei der auf dem Adreßbus 8 anliegende Wert in der Tat verglichen wird mit dem an den Ausgängen des Registers 18 anliegenden Wert.
  • Im übrigen verwendet man den Vergleichsschaltkreis 26, um zu kontrollieren, ob die Bedingungen betreffend den Datenbus 9 verifiziert sind, und der auf dem Datenbus 9 anliegende Wert wird mit dem Wert verglichen, der an den Ausgängen des Registers 20 anliegt.
  • Um die Unterbrechung der Ausführung der Befehle durch die Zentraleinheit zu ermöglichen, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 72, um das logische HALT-Signal auszugeben.
  • Dieser Schaltkreis 72 umfaßt:
  • - einen ersten Vergleichsschaltkreis 73,
  • - einen zweiten Vergleichsschaltkreis 74,
  • - einen Wahlschaltkreis 75,
  • - eine erste Master-Slave-Kippstufe 76, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - einen Multiplexer 77 mit drei Eingängen,
  • - eine zweite Master-Slave-Kippstufe 78, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - ein logisches UND-Gatter 79 mit drei Eingängen,
  • - ein logisches NICHT-ODER-Gatter 80 mit zwei Eingängen, und
  • - eine dritte Master-Slave-Kippstufe 81 mit zwei Eingängen und zwei Ausgängen, die auf die ansteigende Flanke des Taktsignals H reagiert.
  • Der erste Vergleichsschaltkreis 73 ist mit den Leitungen 10 verbunden, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen, den Ausgängen des Vergleichsschaltkreises 24 und Ausgängen des Registers 22; Dieser Schaltkreis 73 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Register 22 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 24 verifiziert sind. Zum Beispiel wird das durch den Vergleichsschaltkreis 73 erzeugte Signal sich im Zustand 1 befinden, wenn die Bedingungen erfüllt sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 73 ist mit dem Eingang der ersten Kippstufe 76 verbunden.
  • Der Multiplexer 77 hat einen ersten Eingang, der ein Signal empfängt, das auf dem logischen Zustand 1 gehalten wird, einen zweiten Eingang, der ein Signal empfängt, das auf dem logischen Zustand 0 gehalten wird, und sein letzter Eingang ist verbunden mit dem Ausgang der zweiten Kippstufe 78.
  • Der Ausgang der Kippstufe 76 ist verbunden mit einem ersten Steuereingang des Multiplexers 77, so daß der Ausgang des Multiplexers 77 mit seinem ersten Eingang verbunden ist, wenn das Signal am Ausgang der Kippstufe 76 sich im Zustand 1 befindet. Der Multiplexer hat einen zweiten Steuereingang, der mit dem Ausgang des UND-Gatters 79 verbunden ist, so daß sein Ausgang mit seinem zweiten Eingang verbunden ist, wenn das Signal am Ausgang des Gatters 79 sich im Zustand 1 befindet. Schließlich hat der Multiplexer einen dritten Steuereingang, der mit dem Ausgang des NICHT-ODER- Gatters 80 verbunden ist, so daß sein Ausgang mit seinem letzten Eingang verbunden ist, wenn das Signal am Ausgang des Gatters 80 sich im Zustand 1 befindet.
  • Das NICHT-ODER-Gatter 80 ist über seine Eingänge jeweils mit einem anderen der Steuereingänge des Multiplexers 77 verbunden.
  • Der Ausgang des Multiplexers 77 ist mit dem Eingang der Kippstufe 78 verbunden. Der Ausgang dieser Kippstufe ist mit einem ersten Eingang des UND-Gatters 79 verbunden.
  • Ein anderer Eingang dieses UND-Gatters ist mit einem Ausgang des Wahlschaltkreises 75 verbunden. Dieser Schaltkreis 75 spielt dieselbe Rolle wie der Wahlschaltkreis 47 in Figur 4.
  • Der Ausgang des UND-Gatters 79 ist mit der Leitung 17 verbunden, die das HALT-Signal überträgt.
  • Die zweite Master-Slave-Kippstufe 81 empfängt über ihre Eingänge die Leitungen 10, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen.
  • Der zweite Vergleichsschaltkreis 74 ist mit den Ausgängen der Kippstufe 81 verbunden, den Ausgängen des Vergleichsschaltkreises 26 und Ausgängen des Registers 23. Dieser Schaltkreis 47 hat einen Ausgang, um ein logisches Signal auszugeben, so daß dieses Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die im Register 23 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 26 verifiziert sind. Zum Beispiel wird das durch den Vergleichsschaltkreis 74 erzeugte Signal sich im Zustand 1 befinden, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 74 ist mit dem letzten Eingang des logischen UND-Gatters 79 verbunden.
  • Wenn daher also während eines Zyklus alle erwarteten Bedingungen verifiziert werden auf den Adreßbus 8, so wird am Ausgang der Kippstufe 78 ein Signal im logischen Zustand 1 anliegen.
  • Wenn später alle Bedingungen auf dem Datenbus 9 verifiziert worden sind, wird das HALT-Signal auf 1 zu Beginn des folgenden Zyklus übergehen.
  • Um einen Unterbrechungspunkt auf dem Adreßbus 12 und Datenbus 13 des anderen Datenspeichers 11 zu plazieren, reicht es, den Schaltkreis 72 zu duplizieren, indem die Verbindungen zwischen diesem Schaltkreis und seiner Umgebung für diesen speziellen Fall angepaßt werden.
  • Unterbrechungspunkt zwischen dem Adreßbus eines Datenspeichers und des Programmspeichers wobei die Ausführung unterbrochen wird, wenn die Bedingungen auf dem Adreßbus des Datenspeichers verifiziert sind, während andere Bedingungen auf dem Adreßbus des Programmspeichers bei der Ausführung eines vorangehenden Befehls verifiziert worden sind (Figur 9).
  • Das in Figur 9 dargestellte Beispiel erlaubt es, den Fall zu bearbeiten, bei dem der Datenspeicher 7 betroffen ist.
  • Um zu kontrollieren, ob die Bedingungen für den Unterbrechungspunkt beim Adreßbus 8 verifiziert sind, kann man wahlweise einen der Vergleichsschaltkreise 24 oder 25 verwenden. In dem beschriebenen Beispiel verwendet man den Vergleichsschaltkreis 24, wobei der auf dem Adreßbus 8 anliegende Wert in der Tat verglichen wird mit dem an den Ausgängen des Registers 18 anliegehden Wert.
  • Im übrigen verwendet man den Vergleichsschaltkreis 26, um zu kontrollieren, ob die Bedingungen, die den Adreßbus 4 betreffen, verifiziert sind, und der auf diesem Adreßbus 4 anliegende Wert wird mit dem an den Ausgängen des Registers 20 anliegenden Wert verglichen.
  • Um die Unterbrechung der Ausführung von Befehlen durch die Zentraleinheit zu ermöglichen, umfaßt der Steuerschaltkreis 41 einen Schaltkreis 82, um das logische HALT-Signal auszugeben.
  • Dieser Schaltkreis 72 umfaßt:
  • - einen ersten Vergleichsschaltkreis 83,
  • - einen zweiten Vergleichsschaltkreis 84,
  • - einen Wahlschaltkreis 85,
  • - eine erste Master-Slave-Kippstufe 86, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - einen Multiplexer 89 mit drei Eingängen,
  • - eine zweite Master-Slave-Kippstufe 88, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - eine dritte Master-Slave-Kippstufe 90, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - eine vierte Master-Slave-Kippstufe 91, die auf die ansteigende Flanke des Taktsignals H reagiert,
  • - ein logisches UND-Gatter 87 mit drei Eingängen,
  • - ein logisches NICHT-ODER-Gatter 92 mit zwei Eingängen.
  • Der erste Vergleichsschaltkreis 83 ist mit den Leitungen 10, die die Steuersignale für den Zugriff auf den Speicher 7 übertragen, den Ausgängen des Vergleichsschaltkreises 24 und Ausgängen des Registers 22 verbunden. Dieser Schaltkreis 83 hat einen Ausgang, um ein logisches Signal auszugeben, so daß das Signal sich in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die im Register 22 abgelegt sind, auf den Leitungen 10 und an den Ausgängen des Vergleichsschaltkreises 24 verifiziert sind. Zum Beispiel befindet sich das durch den Vergleichsschaltkreis 83 erzeugte Signal im Zustand 1, wenn die Bedingungen verifiziert sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 83 ist mit dem Eingang der ersten Kippstufe 86 verbunden. Der Ausgang dieser Kippstufe 86 ist mit einem ersten Eingang des NICHT-ODER- Gatters 87 verbunden.
  • Der zweite Vergleichsschaltkreis 84 ist mit den teitungen 6, den Ausgängen des Vergleichsschaltkreises 26 und Ausgängen des Registers 23 verbunden. Dieser Schaltkreis 84 hat einen Ausgang, um ein logisches Signal auszugeben, so daß sich dieses Signal in einem vorgegebenen Zustand befindet, wenn die Unterbrechungsbedingungen, die in dem Speicher 23 abgelegt sind, auf den Leitungen 6 und an den Ausgängen des Vergleichsschaltkreises 26 verifiziert sind. Zum Beispiel befindet sich das durch den Vergleichsschaltkreis 84 erzeugte Signal in dem Zustand 1, wenn die Bedingungen erfüllt sind, und im Zustand 0, wenn dies nicht der Fall ist.
  • Der Ausgang des Vergleichsschaltkreises 84 ist mit dem Eingang der zweiten Kippstufe 88 verbunden.
  • Der Multiplexer 89 hat einen ersten Eingang, der ein Signal empfängt, das auf dem logischen Zustand 1 gehalten wird, einen zweiten Eingang, der ein Signal empfängt, das auf dem logischen Zustand 0 gehalten wird, und ist über seinen letzten Eingang mit dem Ausgang der dritten Kippstufe 90 verbunden.
  • Der Ausgang der Kippstufe 88 ist mit einem ersten Steuereingang des Multiplexers 89 verbunden, so daß der Ausgang des Multiplexers 89 mit seinem ersten Eingang verbunden ist, wenn das Signal am Ausgang der Kippstufe 88 sich im Zustand 1 befindet. Der Multiplexer hat einen zweiten Steuereingang, der mit dem Ausgang des UND-Gatters 87 verbunden ist, so daß sein Ausgang mit seinem zweiten Eingang verbunden ist, wenn das Signal am Ausgang des Gatters 87 sich im Zustand 1 befindet. Schließlich hat der Multiplexer einen dritten Steuereingang, der mit dem Ausgang des NICHT-ODER- Gatters 92 verbunden ist, so daß sein Ausgang mit seinem letzten Eingang verbunden ist, wenn das Signal am Ausgang des Gatters 92 sich im Zustand 1 befindet.
  • Das NICHT-ODER-Gatter 92 ist über seine Eingänge jeweils mit einem anderen der Steuereingänge des Multiplexers 89 verbunden.
  • Der Ausgang des Multiplexers 89 ist mit dem Eingang der Kippstufe 90 verbunden. Der Ausgang dieser Kippstufe ist mit dem Eingang der vierten Kippstufe 91 zusammengeschaltet. Der Ausgang dieser Kippstufe 91 ist verbunden mit einem zweiten Eingang des UND-Gatters 87.
  • Ein anderer Eingang dieses UND-Gatters ist mit einem Ausgang des Wahlschaltkreises 85 verbunden. Dieser Schaltkreis 85 spielt dieselbe Rolle wie der Wahlschaltkreis 47 in Figur 4.
  • Der Ausgang des UND-Gatters 87 ist mit der Leitung 17 verbunden, die das HALT-Signal überträgt.
  • Wenn daher während eines Zyklus alle erwarteten Bedingungen auf den Adreßbus 4 verifiziert werden, so gibt der Ausgang der Kippstufe 91 ein Signal im logischen Zustand 1 zu Beginn des folgenden Zyklus aus, wobei diesem die Ausführung des Wortes entspricht, das an der Adresse angeordnet ist, für die die Bedingungen verifiziert sind.
  • Wenn während der Ausführung eines späteren Befehls oder während der Ausführung desselben Befehls alle diese Bedingungen auf dem Adreßbus 8 verifiziert sind, wird das HALT- Signal zu Beginn des folgenden Zyklus auf 1 übergehen.
  • Desgleichen wird man, um die anderen Unterbrechungspunkte anzuordnen, die anderen Fällen der Abfolge entsprechen, den oben beschriebenen Schaltkreis so oft wie notwendig duplizieren, indem die Verbindungen und die Elemente der Schaltkreise für jeden Fall in bezug auf die Figuren 4 und 6, was Aufbau der Schaltkreise betrifft, angepaßt werden.
  • Man wird feststellen, daß, um den Fall einer Abfolge zu bearbeiten, die sich auf die Adreßbusse der Datenspeicher stützt, ein einziger Schaltkreis ausreicht, um die beiden möglichen Fälle zu bearbeiten, da Vergleichsschaltkreise 24 und 25 vorliegen. Es reicht z.B., den ersten Vergleichsschaltkreis zu verwenden, um die Bedingungen zu verifizieren, die zuerst erscheinen müssen, indem die Steuersignale für die Multiplexer 28 und 29 an den zu bearbeitenden Fall angepaßt werden.
  • Obgleich es nicht beschrieben worden ist, versteht sich von selbst, daß der Steuerschaltkreis zusätzliche Auswahivorrichtungen umfaßt, um nur einen einzigen Ausgang des NAND- Gatters mit der Leitung 17 zu verbinden, ohne die eine Konfliktsituation auf dieser Leitung auf träte.
  • Desgleichen kann der Steuerschaltkreis Vorrichtungen umfassen, wie die, die in dem Schaltkreis 53 beschrieben worden sind, um die Ausführung der Befehle nur dann zu unterbrechen, wenn alle Befehle, die dekodiert sind, im Moment der Verifizierung eines Unterbrechungspunktes ausgeführt sind.
  • Obgleich man die Erfindung mit Bezug auf ein bevorzugtes Ausführungsbeispiel beschrieben hat, versteht es sich, daß dieses Beispiel nicht einschränkend ist und daß diverse Modifizierungen durchgeführt werden können, ohne daß der Rahmen der Erfindung verlassen wird.

Claims (9)

1. Integrierter Schaltkreis (1), der umfaßt:
- eine Zentraleinheit (2)
- einen Programmspeicher (3), der ein Programm mit Befehlen enthält, der mit der Zentraleinheit über einen Adreßbus (4), einen Datenbus (5) und Leitungen (6), die Steuersignale für den Zugriff beim Lesen und Schreiben auf diesen Speicher übertragen, verbunden ist, wobei die Befehle durch die Zentraleinheit ausgeführt werden,
- und wenigstens einen Datenspeicher (7), der mit der Zentraleinheit über einen Adreßbus (8) einen Datenbus (9) und Leitungen (10), die Steuersignale für den Zugriff beim Lesen und Schreiben auf diesen Speicher übertragen, verbunden ist,
dadurch gekennzeichnet, daß der Schaltkreis umfaßt:
- Unterbrechungsvorrichtungen (16), die eine Kombination aus Bedingungen definieren, die sich auf Werte auf zwei der Speicherbusse und auf Steuersignalwerte für den Zugriff auf wenigstens einen dieser Speicher beziehen, und die Ausführung der Befehle unterbrechen, wenn diese Bedingungen erfüllt werden,
- Vorrichtungen zum Verzögern der Unterbrechung, wenn die erfüllten Bedingungen sich auf die Adreßbusse beziehen,
- und Vorrichtungen zum Verzögern der Erfüllung der Bedingungen in bezug auf das Auftreten von Daten auf den Bussen, wenn die Bedingungen sich auf die Datenbusse beziehen.
2. Schaltkreis nach Anspruch 1, dadurch gekennzeichnet, daß die Unterbrechungsvorrichtungen die Ausführung der Befehle unterbrechen, wenn die Bedingungen einer Kombination beim Abarbeiten eines gleichen Befehls erfüllt werden.
3. Schaltkreis nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß die Unterbrechungsvorrichtungen die Ausführung von Befehlen im Verlauf des Abarbeitens eines Befehls nur unterbrechen, wenn die Bedingungen einer Kombination, die mit dem Wert auf einem Bus einer der Speicher und den Werten der Steuersignale für den Zugriff auf diesen Speicher zusammenhängen, erfüllt werden, während die anderen Bedingungen der Kombination, die entweder mit dem Wert auf dem anderen Bus dieses Speichers oder dem Wert auf einem Bus des anderen Speichers und mit den Werten der Steuersignale für den Zugriff auf diesen anderen Speicher zusammenhängen, vorher während des Verlaufs des Abarbeitens eines anderen Befehls erfüllt werden.
4. Schaltkreis nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß er zusätzliche Unterbrechungsvorrichtungen umfaßt, die für jeden Speicher die Bedingungen, die mit dem Wert auf seinem Adreßbus und mit den Werten der Steuersignale für den Zugriff auf diesen Speicher zusammenhängen, definiert und die Ausführung der Befehle unterbricht, wenn für einen der Speicher diese Bedingungen erfüllt werden.
5. Schaltkreis nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der Schaltkreis zusätzliche Unterbrechungsvorrichtungen umfaßt, die für jeden Speicher Bedingungen, die mit dem Wert auf seinem Datenbus und mit den Werten der Steuersignale für den Zugriff auf diesen Speicher zusammenhängen, definiert und die Ausführung der Befehle unterbricht, wenn für einen der Speicher diese Bedingungen erfüllt werden.
6. Schaltkreis nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Schaltkreis derart ausgelegt ist, daß wenn ein Befehl dekodiert wird, während Bedingungen erfüllt werden, die Unterbrechungsvorrichtungen die Ausführung der Befehle nach Ausführung dieses Befehls unterbrechen.
7. Schaltkreis nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der Schaltkreis einen zweiten Datenspeicher umfaßt.
8. Schaltkreis nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Bedingungen in konfigurierbaren Registern an einer virtuellen Speicheradresse abgelegt werden.
9. Schaltkreis nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß er zur Signalverarbeitung verwendet wird.
DE69500544T 1994-05-20 1995-05-12 Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen Expired - Fee Related DE69500544T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9406490A FR2720173B1 (fr) 1994-05-20 1994-05-20 Circuit intégré comprenant des moyens pour arrêter l'exécution d'un programme d'instructions quand une combinaison de points d'arrêt est vérifiée.

Publications (2)

Publication Number Publication Date
DE69500544D1 DE69500544D1 (de) 1997-09-18
DE69500544T2 true DE69500544T2 (de) 1997-12-11

Family

ID=9463598

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69500544T Expired - Fee Related DE69500544T2 (de) 1994-05-20 1995-05-12 Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen

Country Status (5)

Country Link
US (1) US5819023A (de)
EP (1) EP0683455B1 (de)
JP (1) JPH08314757A (de)
DE (1) DE69500544T2 (de)
FR (1) FR2720173B1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2795838B1 (fr) 1999-06-30 2001-08-31 Bull Cp8 Procede de securisation du traitement d'une information sensible dans un module de securite monolithique, et module de securite associe
JP2001142869A (ja) * 1999-11-17 2001-05-25 Matsushita Electric Ind Co Ltd システム集積回路
EP1197866B1 (de) 2000-10-10 2007-07-04 Infineon Technologies AG Programmgesteuerte Einheit
US7013409B2 (en) * 2002-07-25 2006-03-14 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
TW588238B (en) * 2003-02-13 2004-05-21 Micro Star Int Co Ltd Program debugging method
US9419621B1 (en) 2015-09-18 2016-08-16 Freescale Semiconductor, Inc. System on chip and method of operating a system on chip

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4720778A (en) * 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US5535331A (en) * 1987-09-04 1996-07-09 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
JPH0259937A (ja) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Icカード
JPH03252731A (ja) * 1990-03-01 1991-11-12 Fujitsu Ltd マイクロプロセッサ
EP0455946A3 (en) * 1990-05-07 1992-10-28 International Business Machines Corporation System for debugging shared memory multiprocessor computers

Also Published As

Publication number Publication date
JPH08314757A (ja) 1996-11-29
DE69500544D1 (de) 1997-09-18
EP0683455B1 (de) 1997-08-13
US5819023A (en) 1998-10-06
FR2720173B1 (fr) 1996-08-14
EP0683455A1 (de) 1995-11-22
FR2720173A1 (fr) 1995-11-24

Similar Documents

Publication Publication Date Title
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE2714805C2 (de)
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2611892C2 (de) Mikroprogramm-Steueranordnung
DE68924400T2 (de) Fliessbanddatenverarbeitungsvorrichtung.
DE3850514T2 (de) Cachespeicher mit Treffervorhersagelogik.
DE3688564T2 (de) Sequentielle logische Schaltung.
DE3587446T2 (de) Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor.
DE2064383B2 (de) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
DE2064473B2 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenden, gesuchten Information
EP0108414B1 (de) Vorrichtung zum Testen eines hochintegrierten mikroprogrammgesteuerten elektronischen Bauteiles
DE69500544T2 (de) Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen
DE3121046C2 (de)
DE2245284A1 (de) Datenverarbeitungsanlage
DE3882425T2 (de) Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff.
DE69122001T2 (de) Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle
DE2759120C2 (de)
DE68927902T2 (de) Befehlspufferspeicher für einen Mikrocomputer
DE2710436A1 (de) Datenverarbeitungseinrichtung
AT501880B1 (de) Speicherprogrammierbare steuerung
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE3603320C2 (de)
DE1195972B (de) Anordnung zum Durchfuehren einer Verzweigung bei einer programmgesteuerten Rechenmaschine

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee