DE2145709A1 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE2145709A1
DE2145709A1 DE19712145709 DE2145709A DE2145709A1 DE 2145709 A1 DE2145709 A1 DE 2145709A1 DE 19712145709 DE19712145709 DE 19712145709 DE 2145709 A DE2145709 A DE 2145709A DE 2145709 A1 DE2145709 A1 DE 2145709A1
Authority
DE
Germany
Prior art keywords
memory
program
counter
branch
address
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.)
Granted
Application number
DE19712145709
Other languages
English (en)
Other versions
DE2145709C3 (de
DE2145709B2 (de
Inventor
Richard Deming Moorestown NJ. Smith (V.StA.)
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.)
RCA Corp
Original Assignee
RCA 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 RCA Corp filed Critical RCA Corp
Publication of DE2145709A1 publication Critical patent/DE2145709A1/de
Publication of DE2145709B2 publication Critical patent/DE2145709B2/de
Application granted granted Critical
Publication of DE2145709C3 publication Critical patent/DE2145709C3/de
Expired 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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware

Landscapes

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

Description

7262-71/H
RCA 6l,54ο US.Ser.lio. 71,455 vom II.9.I97O
RCA Corporation, New York, N.Y. , USA D at enverarb e itungaanlage
Die Erfindung betrifft eine Datenverarbeitungsanlage, welche die während der Ausführung eines Programmes vorgenommenen Verzweigungen registriert, mit einem Programmzähler, einem Speicher und einem Befehlsregister. Sie befaßt sich also mit einem Rechner, welcher die Verfolgung ausgeführter Programmschritte durch Registrierung der Adressen bestimmter Sprungbefehle erlaubt.
Ein Programm ist bekanntlich eine Liste von Befehlen, welche normalerweise aus entsprechenden Stellen eines Speichers abgegriffen und der Reihe nach ausgeführt werden. Viele dieser Befehle sind Sprungbefehle, die danach verlangen, (a) gewisse Bedingungen zu prüfen und (b) entweder zu dem in der Reihenfolge nächsten Befehl überzugehen oder zu einem Befehl außerhalb der Reihenfolge abzuzweigen. Venn ein Programm daraufhin untersucht wird, wo Fehler aufgetreten waren, ist es zweckmäßig und in einigen Fällen zur Fehleranalyse auch notwendig, die bei der Ausführung des Programmes tatsächlich eingeschlagenen Wege zu kennen.
Die Erfindung gibt daher einen Rechner an, der die Adressen der jeweiligen Sprungbefehle registriert, denen zu Folge ein Verzweigungsweg im Programm eingeschlagen worden war. Eine aus diesen registrierten Adressen angefertigte Liste ermöglicht es, die ausgeführten Befehle des Programms zu-
2098 12/160 1
ORIGINAL INSPSCTiD
2H570.9
rückzuverfolgen, um den Ort zu finden, wo ein Fehler auftrat.
Wie ebenfalls bekannt ist, kann ein Rechner ein Unterbrechungssystem enthalten, durch das ein soeben ausgeführtes Programm aus einem von -vielen Gründen unterbrochen werden kann. Beispielstreise können in einem Programm während seiner Ausführung Befehle auftreten, die bestimmte Vergleiche durchführen und bedingt ein Unterbrechungskennzeichen innerhalb des Unterbrechungssystems setzen. Der Setzzustand eines solchen Kennzeichens führt später zu einer Unterbrechung des Programmes und kann den Rechner veranlassen, ein Fehlersuchprogramm zu beginnen· Sin Zweck eines bevorzugten Ausführungsbeispiels der Erfindung besteht darin, zur Verwendung in einem Rechner der beschriebenen Art eine laufende Registrierung einer beschränkten Anzahl der Adressen von Sprungbefehlen zu gewährleisten, denen zu Folge eine Verzweigung bei der Ausführung eines Programmes vorgenommen wurde. Eine solche laufende Registrierung kann beispielsweise gesammelt und periodisch durch ein Fehlersuchprogramm ausgedruckt werden (als Überspring-Verfolgungsliste aller Verzweigungen bei der Ausführung eines Programmes).
Die Erfindung kann bei einem Rechner bekannter Art realisiert werden, der einen Programmzähler, einen Speicher und ein Befehlsregister enthält. Gemäß einem bevorzugten Ausführungsbeispiel der Erfindung sind ferner vorgesehen: Ein Verzweigungsregistrier-Flip-Flopj ein Verzweigungsadresszähler zum Ausdrücken von Speicheradressen eines Bereiches im Speicher, welcher beispielsweise zum Speichern der Adressen von Sprungbefehlen reserviert sein kann; eine vom Programm gesteuerte Anordnung wie z.B. ein Deko-
209812/1601
dierer, der dazu dient, das Verzweigungsregistrier-Flip-Flop zu setzen und in den Verzweigungsadresszähler einen Anfangspunkt im Speicher einzugeben; sowie Torglieder, die bei Vorhandensein eines Sprungbefehls im Befehlsregister, und wenn die Verzweigung vorgenommen werden soll, (a) den Inhalt des Programmzählers zu der Stelle im Speicher übertragen, die von der jeweils vom Verzweigungsadresszähler ausgedrückten Adresse bestimmt oder spezifiziert worden ist, und (b) danach den Verzweigungsadresszähler erhöhen.
Wenn bei einer solchen Anordnung ein Sprungbefehl im Befehlsregister des Rechners vorhanden ist und ein anschließender Vergleich (innerhalb des Rechners) bestimmt, daß die Verzweigung vorgenommen werden soll, wird also der Inhalt des Programmzählers des Rechners zu der von der Adresse im Verzweigungsadresszähler bestimmten Speicherstelle übertragen, und der Verzweigungsadresszähler wird in Vorbereitung für die Registrierung der Adresse des nächsten auszuführenden Sprungbefehles erhöht. In Weiterbildung der Erfindung ist es möglich, an der vom erhöhten Verzweigungsadresszähler bestimmten Stelle lauter "1"-Bits in den Speicher zu schreiben. Bin solches ganz aus Einsen bestehendes Wort kann als Anzeige für die Speicherstelle benutzt werden, die zuletzt zum Speichern der Adresse eines Sprungbefehles gedient hatte. Diese Markierung oder Indexstelle kann erhalten bleiben, bis sie "überschrieben" wird, während die nächstfolgende Übertragung des Programmzählerinhalts in die ein solches NuT-11I"-Wort enthaltende Speicherstelle stattfindet.
209812/1601
In Verbindung mit der Zeichnung wird die Erfindung näher erläutert. Es zeigen:
Fig. 1 das Schaltschema eines Teiles einer Datenverarbeitungsanlage mit einer Anordnung zum Registrieren der Adressen von Sprungbefehlen;
und
Fig. 2 einen Ablaufplan zur Erläuterung der Betriebsweise der Datenverarbeitungsanlage.
In Fig. 1 ist ein Teil eines konventionellen Universalrechners dargestellt, an dem die Erfindung erläutert werden wird. Er enthält einen Schnellspeicher HSM mit einem Speicheradressregister MAR und einem Speicherdatenregister MDR. Ein Programmzähler PC erzeugt der Reihe nach Speicheradressen. Die Adressen in dieser Folge werden dem Speicheradressregister MAR zugeführt, damit der Reihe nach im Speicher HSM gespeicherte Befehle in das Speicherdatenregister MDR eingegeben werden. Jeder Befehl innerhalb der sich ergebenden, im Speicherdatenregister MDR erzeugten Befehlsfolge wird zu einem Befehlsregister IR übertragen. Das Befehlsregister IR hat einen Operationskodeteil OP und einen Adressteil ADDR. Der Inhalt des Operationsteils des Befehlsregisters IR wird einem Dekodierer D zugeführt, der eine Vielzahl individueller Ausgänge hat. Jeder dieser Ausgänge kann beispielsweise einem Bef ehl entsprechen. Einer der Ausgänge des Dekodierers D, nämlich der Ausgang 10 wird erregt, wenn der Befehl im Befehlsregister IR ein Sprungbefehl ist.
Der konventionelle Universalrechner enthält ferner eine Vergleichsstufe C, die über den Ausgang 10 des Dekodierers aktiviert wird. Über Eingänge 12 und 13 empfängt die Ver-
209812/1601
gleichsstufe C Bedingungsvergleichsinformationen von (nicht dargestellten) Verknüpfungsschaltungen. Sie hat einen "Nein"-Ausgang N und einen "Ja"-Ausgang Y. Eine Verknüpfungseinheit 16 enthält Verknüpfungsglieder zum Ausführen eines Sprungbefehls. Weiterhin enthält der Rechner ein konventionelles Unterbrechungssystem 20· Das System 20 enthält ein Kennzeichenregister (in der Zeichnung nicht näher bezeichnet), dessen Bits beim Auftreten eines Fehlers oder von einem von vielen anderen Gründen zum Unterbrechen des in der Ausführung begriffenen Programmes gesetzt werden können. Das Unterbrechungssystem, das beispielsweise von der in der USA-Patentschrift Nr. 3-29O.658 beschriebenen Art sein kann, enthält ferner ein Maskenregister, das zur Steuerung der Prioritäten verschiedener Unterbrechungsgründe gesetzt werden kann. Eine Unterbrechung kann verlangt werden von (a) einem Fehlersignal auf der Leitung 22 oder (b) von einem Ausgangssignal auf der Leitung 2(t von einem Maximalzählwertanzeiger 26. Der konventionelle Rechner weist ferner eine Quelle 28 für ein Maschinenwort auf, das lauter Einsen enthält.
Zusätzlich zu den oben beschriebenen konventionellen Bestandteilen enthält die Datenverarbeitungsanlage gemäß der Erfindung ein Verzweigungsregistrier-Flip-Flop (oder Verzweigungssatz-Flip-Flop) BR und einen Verzweigungsadresszähler BAC. Das Flip BR ist mit einem Setzeingang S mit einem Ausgang 29 des Dekodierers D gekoppelt und hat einen "!."-Ausgang und einen invertierten oder "0"-Ausgang. Mit dem "1"-Ausgang des Flip-Flops ist ein Eingang eines UND-Gliedes 30 verbunden, dessen zweiter Eingang mit dem Ausgang Y der Vergleichsstufe C verbunden ist.
209812/1601
"6" 2U570-9
Eingänge eines UND-Gliedes 32 sind mit dem "©"-Ausgang des Flip-Flops BR und mit dem Ausgang Y der Vergleichsstufe C gekoppelt. Ein weiteres UND-Glied 34 hat einen mit dem Ausgang des UND-Gliedes 30 verbundenen Eingang, während sein Ausgang an den Erhöhungseingang des Verzweigungsadresszählers BAC angeschlossen ist. Ein UND-Glied.36 hat einen mit dem Ausgang des Gliedes 30 gekoppelten Eingang, während sein Ausgang mit der Verknüpfungseinheit 16 gekoppelt ist, die zum Ausführen von Verzweigungs- oder Sprungbefehlen dient.
Eingänge eines UND-Gliedes 38» dessen Ausgangssignal dem Zähler BAC zugeführt ist, sind mit dem Ausgang 29 des Dekodierers D bzw. mit dem Adressteil ADDR des Befehlsregisters IR verbunden. Bei dem Glied 38 kann es sich in Wirklichkeit um einen ganzen Satz von Torschaltungen handeln, deren Anzahl gleich der Anzahl der Bits im Adressteil des Befehlsregisters IR ist. Diese Torglieder 38 erlauben daher die Übertragung des gesamten Inhalts des Adressteils des Befehlsregisters zum Verzweigungsadresszähler BAC, wenn die Torglieder durch ein Signal vom Ausgang 29 des Dekodierers D aufgetastet werden.
Ein weiterer Satz von Torgliedern 4o (von denen nur eines dargestellt ist) sind so geschaltet, daß sie zur Übertragung des Inhalts des Verzweigungsadresszählers BAC über Leitungen 42 zum Speicheradressregister MAR vom Ausgangssignal des Torgliedes 30 aufgetastet werden. Ein Satz von UND-Gliedern 44 werden zu einer späteren Zeit zum Übertragen des Inhalts des Zählers BAC über Leitungen 46 zum Speicheradressregister MAR aufgetastet. Das UND-Glied
2 0 9 812/1601
- ' - ■ 2U5709
bringt auch den Inhalt des Zählers BAC über Leitungen 47 zum Maximal Zählwerkanzeiger 26. Ein Satz von UND-Gliedern 48 übertragen das nur aus Einsen bestehende Wort von der Quelle 28 über Leitungen 49 zum Speicherdatenregister MDR, wenn sie vom Ausgangssignal des Gliedes 30 aufgetastet werden. Ein Satz von UND-Gliedern überträgt unter Steuerung des Ausgangssignals des Gliedes 30 den Inhalt des Programmzählers PC über Leitungen 51 zum Speicherdatenregister MDR.
Die Betriebsweise der in Fig. 1 dargestellten Datenverarbeitungsanlage wird nun anhand des Ablaufplanes gemäß Fig. 2 erläutert. Es sei angenommen, daß das Flip-Flop BR rückgesetzt ist und der Rechner Operationen ausgeführt hat, ohne die Adressen der Sprungbefehle zu registrieren. Wenn unter diesen Umständen ein Sprungbefehl im Programm auftritt (wie bei 6o in Fig. 2), wird vom Dekodierer D der Operationskodeteil des Befehles dekodiert. Der Dekodierer D führt über die Leitung 10 der Vergleichsstufe C ein Ausgangssignal zu. Zur Zeit to vergleicht die Vergleichsstufe C (bei 62 in Fig. 2) die an ihren Eingängen 12 und 13 erscheinenden Signale entsprechend dem Befehl und erzeugt entweder ein "Nein"-Signal am Ausgang N oder ein "Ja"-Signal am Ausgang Y. Im "Nein"-Fall, d.h. wenn die Verzweigung nicht vorgenommen werden soll, wird mit dem Signal über die Leitung 54 der Programmzähler PC erhöht (in Fig. 2 bei 64). Der Programmzähler holt dann den numerisch nächstfolgenden Befehl im Programm, und der Rechner fährt mit der Ausführung des nächsten Programmbefehles fort, ohne den Verzweigungsweg einzuschlagen.
20981 2/1601
Wird andererseits von der Vergleichsstufe C am Ausgang Y ein "Ja"-Signal erzeugt, was bedeutet, daß der Verzweigung sweg eingeschlagen werden soll, wird dieses Signal den Eingängen der UND-Glieder 30 und 32 zugeführt., Diese UND-Glieder 30 und 32 führen einen Vergleich durch, (bei 66 in Fig. 2), um zu bestimmen, ob sich das Flip-Flop BR in seinem Setz- oder Rückstellzustand befindet. Hier sei angenommen, daß das Flip-Flop zurückgestellt ist, so daß seine Ausgänge zu diesem Zeitpunkt das Torglied 30 sperren und das Torglied 32 auftasten. Zur Zeit t. veranlaßt daher das Ausgangssignal des Torgliedes 32 die Verknüpfungseinheit l6, mit der Ausführung (68 in Fig. 2) des Sprungbefehles fortzufahren, ohne die Adresse des Sprungbefehles zu registrieren.
Nun sei statt dessen angenommen, daß das Programm bis zum Punkt fortgeschritten ist, wo ein spezieller, bedingender Befehl auftritt. Dieser spezielle Befehl wurde vom Programmierer zu dem Zweck in das Programm aufgenommen, danach den Rechner zu veranlassen, die Adressen aller Sprungbefehle zu registrieren, die eine Verzweigung zur Folge haben. Dieser Bedingungsbefehl ist programmäßig im Speicher HSM entnommen und vom Speicherdatenregister MDR dem Befehlsregister IR zugeführt worden. Wenn der Operationsteil OP dieses Bedingungsbefehls zum Dekodierer D gelangt, ruft er ein Signal am Ausgang 29 des Dekodierers hervor und setzt folglich das Verzweigungsregistrier-Flip-Flop BR. Zu beachten ist, daß das Flip-Flop BR durch alle folgenden Operationen hindurch und solange in seinem Setz-Zustand verbleibt, bis die Registrierung von Sprungbefehladressen unterbrochen werden soll, was dadurch angezeigt werden kann, daß wieder ein Befehl (vom Speicher HSM) erscheint, der nach der Dekodierung das Flip-Flop zurückstellt
2098 12/160 1
2U5709
und somit die Aufzeichnung von Verzweigungsadressen unterbricht .
Der erregte Dekodiererausgang 29 tastet auch die Torglieder 38 auf, die im geöffneten Zustand eine Anfangsspeicheradresse vom Adressteil ADDR des Befehles zum Verzweigungsadresszähler BAC übertragen. Der Zähler BAC enthält daher nun die Anfangsadresse eines Bereiches im Speicher HSM, der für die Summierung der Adressen reserviert ist. Wie noch gezeigt werden wird, sind diese summierten Adressen die Adressen von anschließend auftretenden Sprungbefehlen, die eine Verzweigung zur Folge haben.
Wie aus der bisherigen Beschreibung hervorgeht, bilden der Ausgang des Dekodierers D und die Torglieder 38 eine Anordnung, die vom Programm gesteuert wird und dazu dient, das Flip-Flop BR zu setzen und die Anfangsspeicheradresse in den Verzweigungsadresszähler BAC einzugeben.
Nachdem der Bedingungsbefehl in der beschriebenen Weise ausgeführt worden ist, fährt die Anlage mit der Ausführung von Befehlen fort. Der dem Bedingungsbefehl nächstfolgende Befehl wird also vom Programmzähler PC geholt, und auch die in Programm folgenden Befehle werden ausgeführt.
Nun sei angenommen, daß das Flip-Flop BR gesetzt und der Verzweigungsadresszähler BAC in der oben beschriebenen Weise geladen worden ist. Wenn ein Sprungbefehl auftritt (wie bei 60 in Fig. 2), und wenn die Vergleichsstufe C einen Vergleich durchführt (bei 62), dessen Ergebnis besagt, daß die Verzweigung nicht vorgenommen werden soll, erfolgt in der schon erläuterten Weise eine Erhöhung des Programmzählers PC.
209812/1601
Der Programmzähler holt dann den nächstfolgenden Befehl und fährt mit dem Programm fort, was bedeutet, daß der Verzweigungsweg nicht eingeschlagen wird und unter diesen Umständen keine den Verzweigungsadresszähler BAC benutzenden Operationen stattfinden.
Wenn statt dessen der Vergleich in der Vergleichsstufe C (bei 62 in Fig. 2) zu einem "JA1'-Ausgangssignal führt, der Verzweigungsweg also eingeschlagen werden soll, wird das Signal vom Ausgang Y den Eingängen der Torglieder 30 ψ und 32 zugeführt. Diese stellen (bei 66) den Zustand des Flip-Flops BR fest. Da das Flip-Flop, wie angenommen worden war, nun gesetzt ist, sperrt sein "0"-Ausgang das Torglied 32, während sein "!."-Ausgang das Torglied 30 auftastet.
Das Torglied 30, das Eingangssignale von der Vergleichsstufe C und vom Flip-Flop BR empfängt, benötigt zur Auftastung ferner ein Zeitgebersignal, dessen Dauer vom Zeitpunkt t- bis zum Zeitpunkt t währt. Das Torglied 30 liefert also auf die Ausgangsleitung 31 ein Ausgangssignal, das während der Zeitdauer t. bis t_ vorhanden ist.
Zum Zeitpunkt t_ werden die Torglieder 4θ von der Sammelschiene 31 aufgetastet, um den Inhalt des Verzweigungsadresszählers BAC über Leitungen 42 zum Speicheradressregister HAR zu übertragen. Zur gleichen Zeit t_ lassen die Torglieder 50, die ebenfalls von der Sammelleitung 31 aufgetastet worden sind, den Inhalt des Programmzählers PC über Leitungen 51 zum Speicherdatenregister MDR durch. Auf diese Weise wird, wie in Fig. 2 bei 69 gezeigt ist, die Adresse des Sprungbefehls vom Programmzähler PC zur Anfangsstelle im Speicher HSM übertragen, welche vom Anfangs-
209812/1601
zählwert im Verzweigungsadresszähler BAC angegeben wird.
Zum Zeitpunkt t wird das Torglied 34 von der Sammelleitung 31 aufgetastet, um bei 70 in Fig. 2 den Zähler BAC zu erhöhen. Der Zähler BAC enthält dann die nächstfolgende Adresse im zum Speichern von Sprungbefehladressen reservierten Speicherbereich.
Zum Zeitpunkt t. übertragen die Torglieder 44 die erhöhte Adresse im Zähler BAC über Leitungen 46 zum Speicheradressregister MAR. Zur gleichen Zeit t. übertragen die Torglieder 48 das nur aus Einsen bestehende Wort von der Quelle 28 über Leitungen 49 zum Speicherdatenregister MDR. Wie in Fig. 2 bei 72 gezeigt ist, werden daher im Speicher an der Stelle, die von der erhöhten Adresse im Zähler BAC spezifiziert worden ist, lauter Einsen gespeichert. Dieser Nur-1-Inhalt dieser Speicherstelle dient als Markierung, welche für die Verwendung durch ein Fehlersuchprogramm den Ort der letzten registrierten Sprungbefehladresse identifiziert.
Zum Zeitpunkt t. wird auch der erhöhte Inhalt des Zählers BAC über die Torglieder 44 und Leitungen 47 dem Maximalzählwertanzeiger 26 zugeführt. Wenn dieser feststellt, daß die Kapazität des reservierten Bereiches im Speicher erschöpft ist, setzt er über die Leitung 24 ein entsprechendes Unterbrechungskennzeichen im Unterbrechungssystem 20, wie in Fig. 2 bei 74 gezeigt ist. Das Unterbrechungssystem kann dann ein Programm einleiten, durch das der Inhalt des reservierten Speicherbereiches in einen größeren Speicher übertragen wird, worauf er ausgedruckt und analysiert werden kann.
209812/1601
Zum Zeitpunkt t_ ist der Adressenregistriervorgang beendet, und das Torglied 36 veranlaßt die Verknüpfungseinheit l6, gemäß 68 in Fig. 2 den Sprungbefehl auszuführen und die vom Sprungbefehl spezifizierte Befehlsadresse über Leitungen 17 dem Programmzähler PC zuzuführen.
Der Rechner fährt dann mit der Ausführung folgender Befehle in der normalen Weise fort, bis ein weiterer Sprungbefehl auftritt, der wieder so behandelt wird, wie oben beschrieben wurde. Der reservierte Speicherbereich wird fc also nacheinander mit den Adressen von Sprungbefehlen gefüllt, die entsprechende Verzweigungen zur Folge haben. Venn zu irgend einer Zeit während des Betriebes der Anlage ein Programmfehler festgestellt wird, der ein entsprechendes Programmfehlersuchkennzeichen im Unterbrechungssystem 20 setzt, kann das darauf folgende Fehlersuchprogramm den Inhalt des reservierten Speicherbereiches analysieren und somit di& im Verlaufe des Programmes eingeschlagenen Wege verfolgen und den Ort des Programmierungsfehlers auffinden.
Die beschriebene Anordnung gemäß der Erfindung stellt eine sehr nützliche Ergänzung eines Vielzweck- oder Universal- W rechners dar, ohne die zum Ausführen eines Befehlsprogrammes erforderliche Zeit wesentlich zu erhöhen. Die gewonnene zusätzliche Funktion und die damit verbundenen Vorteile werden lediglich durch eine geringfügige Ergänzung des hardware-Teils des Rechners erkauft, nämlich durch ein zusätzliches Flip-Flop BR, einen zusätzlichen Zähler BAC und eine mäßige Anzahl von Verknüpfungsgliedern.
209812/1601

Claims (2)

  1. Patentansprüche
    1» Datenverarbeitungsanlage, welche die während der Ausführung eines Programmes vorgenommenen Verzweigungen registriert, mit einem Programmzähler, einem Speicher und einem Befehlsregister, dadurch gekennzeichnet, daß eine programmgesteuerte Anordnung (D) vorgesehen ist, die ein Verzweigungsregistrier-Flip-Flop (BR) setzt und eine Anfangsspeicheradresse in einen Verzweigungsadresszähler (BAC) eingibt, der Speicheradressen eines Bereiches im Speicher (HSM) ausdrückt, und daß Torglieder bei Vorhandensein eines Sprungbefehls im Befehlsregister (IR) und im Falle einer erforderlichen Verzweigung den Inhalt des Programmzählers (PC) zu der von der Adresse im Verzweigungsadresszähler (BAC) bestimmten Stelle im Speicher (HSM) übertragen und den Verzweigungsadresszähler erhöhen.
  2. 2. Datenverarbeitungsanlage nach Anspruch I1 dadurch gekennzeichnet, daß eine Quelle (28) für lauter "Binsen" vorgesehen ist, welche einer Speicherstelle zugeführt werden, daß weitere Torglieder während eines Schreibbetriebes im Speicher (HSM) die Speicherstelle adressieren, die vom Inhalt des Terzweigungsadresszählers (BAC) nach Erhöhung dieses Zählers spezifiziert werden, und daß hierdurch im Speicher eine Nur-"!"-Markierung erzeugt wird, die zum Aufsuchen der zuletzt im Speicher registrierten Sprungbefehladresee dient.
    209812/1601
    Datenverarbeitungsanlage nach Anspruch 1 oder 2, . dadurch gekennzeichnet, daß ein Maximalzählwertanzeiger (26) vorgesehen ist, der einen maximal zulässigen Zählwert im Verzweigungsadresszähler (BAC) feststellt und daraufhin ein entsprechendes Ausgangssignal erzeugt.
    Datenverarbeitungsanlage nach Anspruch 3 t dadurch gekennzeichnet, daß ein Programmunterbrechungssystem (20) vorgesehen ist, das aufgrund des Ausgangssignals vom Maximalzählwertanzeiger (26) den Rechner veranlaßt, ein Fehlersuchprogramm durchzuführen.
    2 0 9 812/1601
    Leerseite
DE2145709A 1970-09-11 1971-09-13 Datenverarbeitungsanlage, in welcher Verzweigungsbefehle eine Unterbrechung laufender Programme zur Folge haben können Expired DE2145709C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US7145570A 1970-09-11 1970-09-11

Publications (3)

Publication Number Publication Date
DE2145709A1 true DE2145709A1 (de) 1972-03-16
DE2145709B2 DE2145709B2 (de) 1973-10-11
DE2145709C3 DE2145709C3 (de) 1974-05-16

Family

ID=22101435

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2145709A Expired DE2145709C3 (de) 1970-09-11 1971-09-13 Datenverarbeitungsanlage, in welcher Verzweigungsbefehle eine Unterbrechung laufender Programme zur Folge haben können

Country Status (8)

Country Link
US (1) US3673573A (de)
JP (1) JPS523702B1 (de)
AU (1) AU451985B2 (de)
CA (1) CA948783A (de)
DE (1) DE2145709C3 (de)
FR (1) FR2107553A5 (de)
GB (1) GB1356997A (de)
NL (1) NL7112494A (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3937938A (en) * 1974-06-19 1976-02-10 Action Communication Systems, Inc. Method and apparatus for assisting in debugging of a digital computer program
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
US4195339A (en) * 1977-08-04 1980-03-25 Ncr Corporation Sequential control system
JPS61264447A (ja) * 1985-05-20 1986-11-22 Hitachi Ltd 命令実行事象記録装置
US4821178A (en) * 1986-08-15 1989-04-11 International Business Machines Corporation Internal performance monitoring by event sampling
US5535331A (en) * 1987-09-04 1996-07-09 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
US5274811A (en) * 1989-06-19 1993-12-28 Digital Equipment Corporation Method for quickly acquiring and using very long traces of mixed system and user memory references
EP0411904A3 (en) * 1989-07-31 1992-05-27 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
JP2762829B2 (ja) * 1992-02-06 1998-06-04 日本電気株式会社 電子計算機
US5359608A (en) * 1992-11-24 1994-10-25 Amdahl Corporation Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions
GB2273184B (en) * 1992-12-05 1996-11-20 Motorola Inc A cache processor and a method for observing program flow in a cache processor
US5473754A (en) * 1993-11-23 1995-12-05 Rockwell International Corporation Branch decision encoding scheme
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
US5922070A (en) * 1994-01-11 1999-07-13 Texas Instruments Incorporated Pipelined data processing including program counter recycling
GB9626367D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Providing an instruction trace
GB2366879B (en) * 2000-09-16 2005-02-16 Ibm Tracing the execution path of a computer program
US6834365B2 (en) 2001-07-17 2004-12-21 International Business Machines Corporation Integrated real-time data tracing with low pin count output
US7464874B2 (en) * 2005-02-24 2008-12-16 Robert William Donner Method and system for transparent and secure vote tabulation
US7685467B2 (en) * 2006-04-27 2010-03-23 Texas Instruments Incorporated Data system simulated event and matrix debug of pipelined processor
JP6478562B2 (ja) 2013-11-07 2019-03-06 株式会社半導体エネルギー研究所 半導体装置
JP6393590B2 (ja) * 2013-11-22 2018-09-19 株式会社半導体エネルギー研究所 半導体装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL267514A (de) * 1960-07-25
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
US3551895A (en) * 1968-01-15 1970-12-29 Ibm Look-ahead branch detection system
US3573853A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3551659A (en) * 1969-05-05 1970-12-29 Charles O Forsythe Method for debugging computer programs

Also Published As

Publication number Publication date
AU451985B2 (en) 1974-08-22
DE2145709C3 (de) 1974-05-16
JPS523702B1 (de) 1977-01-29
DE2145709B2 (de) 1973-10-11
AU3270671A (en) 1973-03-01
CA948783A (en) 1974-06-04
US3673573A (en) 1972-06-27
GB1356997A (en) 1974-06-19
FR2107553A5 (de) 1972-05-05
NL7112494A (de) 1972-03-14

Similar Documents

Publication Publication Date Title
DE2145709A1 (de) Datenverarbeitungsanlage
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
DE2714805C2 (de)
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE1928202C3 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE3126878C2 (de) Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE2539211A1 (de) Zugriffssteuereinheit
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE2332971A1 (de) Mikroprogrammsteuersystem
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE3121046C2 (de)
DE1179027B (de) Speicherprogrammierte digitale Rechenanlage
DE2227761B2 (de) Speichersystem
DE2617485B2 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2136210A1 (de) Zentraleinheit fur eine EDV-Anlage
DE3307194A1 (de) Datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE2710436A1 (de) Datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
EHJ Ceased/non-payment of the annual fee