DE3238566C2 - Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren - Google Patents

Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren

Info

Publication number
DE3238566C2
DE3238566C2 DE19823238566 DE3238566A DE3238566C2 DE 3238566 C2 DE3238566 C2 DE 3238566C2 DE 19823238566 DE19823238566 DE 19823238566 DE 3238566 A DE3238566 A DE 3238566A DE 3238566 C2 DE3238566 C2 DE 3238566C2
Authority
DE
Germany
Prior art keywords
arrangement
decoder
microprocessor
memory
counter
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
Application number
DE19823238566
Other languages
English (en)
Other versions
DE3238566A1 (de
Inventor
David William 97006 Beaverton Oreg. Bogardus
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.)
Tektronix Inc
Original Assignee
Tektronix Inc
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 Tektronix Inc filed Critical Tektronix Inc
Publication of DE3238566A1 publication Critical patent/DE3238566A1/de
Application granted granted Critical
Publication of DE3238566C2 publication Critical patent/DE3238566C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

Eine Anordnung zur Vorhersage von Abrufvorgängen von Operationscodes in einer Befehlssequenz eines Mikroprozessors des Typs 6809, die einen Datenbus passiv überwacht, sind ein Befehlszyklus-Decoder (32, 34, 40) zur Festlegung der Anzahl von Taktperioden bis zum nächsten Operationscode-Abruf und wenigstens ein auf seinen Endwert inkrementierter Zähler (36 bzw. 38) vorgesehen, nach dessen Inkrementierung eine Abrufleitung wirksam geschaltet wird. Die Anordnung ist speziell in einem personellen Modul (10) eines logischen Analysators (14) verwendbar, um eine Datenqualifikation bei Abrufvorgängen zu ermöglichen, so daß die richtigen Daten in einem Erfassungsspeicher gespeichert werden können.

Description

55
45
Die vorliegende Erfindung betrifft eine Anordnung zur Vorhersage von Abrufvorgängen im Befehlszyklus eines Mikroprozessors.
Logische Analysatoren, speziell solche, welche sowohl Zustands- und Zeitiaktanalysemögllchkelten besitzen, sind für die Lokalisierung von Hardware- und Software-Problemen in Mikroprozessoren, einschließlich von In Umwicklung befindlichen Produkten auf Mikroprozessor-Basis sehr nützlich. Aufgrund unterschiedlicher Eigenschaften verschiedener kommerziell erhältlicher
65 Mikroprozessoren werden für jeden Mikroprozessor als Schnittstelle mit dem logischen Analysator spezielle Datenerfassungs-Module vorgesehen, die von der elektronischen Industrie als personelle Module bezeichnet werden. Das bedeutet, daß jeder personelle Modul grundsätzlich eine Hardware-Schnittstelle ist, welche die Eingangsparameter des logischen Analysators an spezifische Eigenschaften eines speziellen Prozessors, wie beispielsweise Steuerleitungsdefinitionen und Adreß-, Daten- und Steuerleitungs-Anschlußauslegungen anpaßt. Da weiterhin der personelle Modul grundsätzlich die Datenerfassungsquelle für den logischen Analysator darstellt, ist es möglich, spezielle Datenkennzeichner zu konstruieren, so daß der logische Analysator lediglich qualifizierte Daten tastet und In einem in gewisser Weiss begrenzten Erfassungsspeicher speichert. Wenn die Daten einmal durch den logischen Analysator erfaßt sind, können sie in der gesonderten Mnemotechnik des speziellen Prozessors oder in jedem anderen Anzeigeformat, das der logische Analysator beherrscht, angezeigt werden.
Um die richtige Auflösung der Befehle des Mikroprozessors in eine Operationscode-Mnemotechnik zu erleichtern und die gesonderten mnemotechnischen Daten zur Anzeige zur Verfügung steilen, ist es zunächst erforderlich, daß Befehlsabrufvorgänge von Operanden-Auslesungen unterschieden werden. Sodann kann eine Datenqualifikation durchgeführt werden, um lediglich die richtigen Daten im Erfassungsspeicher zu speichern. Speziell besitzt ein Mikroprozessor des Typs 6809 keine Möglichkeit der Abrufvoraussage, so daß neben der erwünschten Information große Mengen von unerwünschten oder ununterscheidbaren Informationen im Erfassungsspeicher gespeichert werden. Es Ist daher erforderlich, Abrufvorgänge von Operationscodes in einer Sequenz von Mikroprozessor-Befehlen vorauszusagen.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren, insbesondere zur Verwendung In einem personellen Modul eines Mikroprozessors für einen logischen Analysator anzugeben.
Es soll dabei eine Decodierung von Operationscodes mit mehreren Bytes und eine darauf basierende Vorhersage von Abrufvorgängen möglich sein.
Darüber hinaus soll auch eine automatische Neusynchronisation einer derartigen Anordnung nach einem ungültigen Operationscode möglich sein.
Diese Aufgabe wird bei einer Anordnung der eingangs genannten Art erfindungsgemäß durch die kennzeichnenden Merkmale des Patentanspruchs 1 gelöst.
Die erfindungsgemäße Anordnung dient Insbesondere zur Vorhersage von Abrufvorgängen von Operationscodes In einer Sequenz von Befehlen eines Mikroprozessors des Typs 6809. Die vorhergesagten Abrufvorgänge werden in Form mindestens eines Steuersignals angezeigt, das in den Worterkennungsteil eines logischen Analysators eingespeist wird, um eine Übertragung von Daten zu einem Erfassungsspeicher zu ermöglichen. Auf der Grundlage, daß alle Befehle des Mikroprozessors des Typs 6809 eine bekannte Anzahl von Taktperloden erfordern, In denen sie abzuarbeiten sind, kann die Anzahl von Taktperloden bis zur nächsten Operationscode-Erfassung aus dem laufenden Befehl festgelegt werden. Die erfindungsgemäße Anordnung überwacht den Mikroprozessor-Bus passiv und puffert und decodiert bis zu drei aufeinanderfolgende Bytes, um festzulegen, wielange gewartet werden muß, bevor die
nächste Datenbusauslesung als Operationscode-Erfassung gekennzeichnet wird. Der Decoder ist ein Festwertspeicher, der mit einer Anzahl von Decodertabellen programmiert ist, welche die Anzahl von Perioden enthalten, für die bis zum nächsten Befehl gewartet werden muß. Die decodierten Anzahlen von Perioden werden in einen ersten Zähler und im Bedarfsfall in einen zweiten Zähler geladen. Die Zähler werden sodann auf ihre Endwerte inkrementiert, wonach die Abrufieitung in einen Zustand gebracht wird, der anzeigt, daß die nun laufende Perlode eine Erfassung ist.
Die Art des decodierten Befehls legt den richtigen Weg durch die Anordnung zur Vorhersage von Abrufvorgängen fest. Bis zu drei aufeinanderfolgende Bytes können decodiert werden müssen, um die Anzahl von Prozessor-Taktperioden festzulegen, welche zur Abarbeitung eines speziellen Befehls erforderlich sind. Die Decodierung des ersten Bytes eines Operationscodes legt fest, ob nachfolgende Bytes zu decodieren sind oder nicht. Dadurch wird der Befehlstyp festgelegt, wobei für reguläre Befehle die Gesamtanzahl von Taktperioden für den Befehl definiert wird. Für Befehle mit mehreren Bytes definiert das erste Byte eine Untersumme von Taktperioden, die für den Ausgleich der erforderlichen Perioden hinzuaddiert werden müssen, was durch Decodierung nachfolgender Bytes festgelegt wird. Bei der Decodierung des ersten Bytes werden verschiedene Kennzeichenbits in einem Kennzeichenpuffer gesetzt. Diese Bits weisen auf eine von mehreren unterschiedlichen Decodertabellen hin, die zur Decodierung nachfolgender Bytes des laufenden Befehls notwendig sind. Der nächste Zustand der Anordnung zur Vorhersage von Abrufvorgängen wird durch logische Kombinationen des laufenden Zustands und verschiedener Eingangsvariablen festgelegt. Der Takt für die Anordnung wird vom Mikroprozessor-Takt abgeleitet und während Schreibzyklen, ungültiger Speicheradreßzyklen und bestimmter anderer Zyklen gesperrt. Durch eine nicht erfolgende Taktung während dieser Arten von Zyklen ist die Anzahl dieser Zyklen für die Anordnung erkennbar, so daß sie ignoriert werden.
Spezielle weitere Ausgestaltungen des Erfindungsgedankens sind In Unteransprüchen gekennzeichnet.
Die Erfindung wird Im folgenden anhand von in den Figuren der Zeichnung dargestellten Ausführungsbeispielen näher erläutert. Es zeigt
Fig. 1 ein Blockschaltbild des Zusammenhangs einer Anordnung zur Vorhersage von Abrufvorgängen mit anderen Teilen eines Datenerfassungssystems in Form eines logischen Analysators;
Flg. 2 ein detailliertes Blockschaltbild einer erfindungsgemäßen Anordnung zur Vorhersage von Abrufvorgängen; und
Flg. 3 ein Flußdiagramm zur Erläuterung der Wirkungsweise der Anordnung nach Fig. 2.
Zur Erleichterung des Verständnisses der erfindungsgemäßen Anordnung Ist es hilfreich, den Zusammenhang der Anordnung zur Vorhersage von Abrufvorgängen zu anderen Teilen eines Datenerfassungssystems in Form eines logischen Analysators zu übersehen. Das Blockschaltbild nach Fig. 1 zeigt einen personellen Modul 10, der zwischen ein zu testendes System 12 und einen logischen Analysator 14 geschaltet ist. Der personelle Modul 10 ist In eine Mikroprozessor-Fassung Im zu untersuchenden System 12 cinsteckbar. während ein Mikroprozessor 16 des Tyns 6809 des zu untersuchenden Systems in eine Fassung des personellen Moduls 10 einsteckbar ist. Diese Maßnahme dient zur Verbindung des personellen Moduls 10 mit dem Mikroprozessor-Bus des zu untersuchenden Systems. Der logische Analysator 14 kann iweckmäßigerweise ein logischer Analysator mit einer Kathodenstrahlröhren-Anzeige zur An-
) züge des Inhaltes eines im logischen Analysator vorhandenen Erfassungsspeichers sein. Der personelle Modul 10 enthält zusätzlich zum Mikroprozessor 10 einen Puffertreiber 18 sowie einen Satz von Adreß-, Daten-, Takt- und Steuersignalleitungen zur Erfassung
in von Daten für den logischen Analysator 14. Im Steuerleitungsteil der Signalleitungen zwischen dem Puffertreiber 18 und dem logischen Analysator 14 1st eine Steuerlogik- und Abrufvorhersageanordnung 20 vorgesehen. Ersichtlich ermöglicht der personelle Modul einen Betrieb des ausgewählten Mikroprozessors, als ob dieser Im zu testenden System vorhanden wäre, wobei die Adreß-, Daten-, Steuer- und Taktleitungen für den logischen Analysator verfügbar sind. Darüber hinaus liefert der personelle Modul auf den Mikroprozessor des
:?» Typs 6809 zugeschnittene Daten in einem Standard-Format für den logischen Analysator. Diese Information unterstützt die mnemotechnische Zerlegung erfaßter Information und die Auswahl von Anzeigen. Die durch die Anordnung zur Vorhersage von Abrufvorgängen
-' erzeugten Abrufsignale werden In einen Worterkennungstei'i des logischen Analysators eingespeist, um eine Triggerung und eine Datenqualifizierung von Befehlsabrufen zu ermöglichen.
Fig. 2 zeigt ein Blockschaltbild einer erfindungs-
i» gemäßen Anordnung zur Vorhersage von Abrufvorgängen sowie eines Teils einer zu dieser Anordnung gehörenden Steuerlogik. In der folgenden Beschreibung und im Flußdiagramm nach Fig. 3 verwendete Abkürzungen sind am Ende der Beschreibung in einer Tabelle A für einen Befehlssatz des Mikroprozessors 6809 definiert.
Ein Zustandstaktgenerator 30 empfängt ein Taktsignal A vom Mikroprozessor 6809 und erzeugt daraus ein Taktsignal SCLK für die Anordnung zur Vorhersage von Abrufvorgängen sowie ein Ausgangstaktsignal CLK für den logischen Analysator zur Erzeugung eines Hauptzustandstaktes. Wie im folgenden noch genauer erläutert wird, kann das Zustandstaktsignal SCLK unter bestimmten Bedingungen unterbrochen bzw. gesperrt werden.
Ein Datenpuffer 32 empfängt Operationscodes mit acht Bit von einem Mikroprozessor-Datenbus und puffen diese in einen Periodendecoder-Festwertspeicher 34 ein. Bei der In Rede stehenden Ausführungsform wer-
5(1 den Eingangssignale DAO bis DAl auf der ansteigenden Flanke des SCZ.Ä'-Signals gepuffert. Der Perlodendecoder-Festwertspeicher 34 ist ein programmierbarer Festwertspeicher mit einer Speicherkapazität von 2K-WOrtem mit 8-Bit Breite, der sieben Decodertabellen enthält. Die Tabellen geben die Anzahl von Taktperloden an, die für die Befehlsabarbeitung des Mikroprozessors 6809 erforderlich sind. Diese Tabellen we.den aus Informationen gewonnen, die für die vorliegende Ausführungsform in einem Mlkroprozessor-Programmier-Ma-
bl) nual der Firma Motorola für den Mikroprozessor 6809 enthalten sind. Signalleitungen vom Date.npuffer 32 führen den gepufferten Operationscode mit 8-Blt zum Ifestwertspeicher 34 zwecks Decodierung. Die decodierte Information an Ausgängen CTO bis CT3 geben
n' für einen ersten Speicher 36 und einen zweiten Speicher 38 an, welche inkrementwerte für diese Speicher vorhanden sind. Die Zähler 36 und 38 werden mit einem Komplement der Anzahl von zu verzögernden Perloden
10
20
25
30
geladen und im Hexadecimal-Code auf E bzw. F Inkrementiert. Leitungen FO bis Fl führen die Pegel von verschiedenen Kennzeichenbits zu einem Kennzeichenuffer 40. Diese Pegel werden auf der ansteigenden Flanke des SCZ.Ä'-Signals auf Ausgänge des Kennzeichenpuffers 40 getaktet. Die Ausgangssignale des Kennzeichenpuffers sind auf eine Eingangs- und Ausgangssignale bildende logische Schaltung 42 gekoppelt und dienen als Eingangsadressen für den Perlodendecoder-Festwertspeicher 34. Dieser Festwertspeicher 34 nutzt diese Adreßelngangssignale aus, um auf eine von mehreren unterschiedlichen Decodertabellen im Festwertspeicher zu verweisen. Diese Tabellen unterstützen die Decodierung nachfolgender Bytes des laufenden Befehls. Eine Signaücitur.g IOC für einen ungültigen Qperationscodes bildet einen Ausgang des Periodendecoder-Festwerlspeichers 34, der anzeigt, daß der letzte decodierte Operalionscode ein ungültiger Operationscode war. Dieses Signal wird ebenso wie eine über die logische Schaltung 42 auf den logischen Analysator führende /OCO-Leitung auf tiefem Pegel gehalten, wobei es jedoch in der Firmware für die Schirmanzeige auf hohem Pegel invertiert wird.
Der erste und zweite Zähler 36 und 38 folgen der Anzahl von Perioden, um die zu warten ist, bevor angezeigt wird, daß die nächste Befehlsperiode ein Abruf ist. Um diesen Sachverhalt zu signalisieren, erzeugt der erste Zähler 36 ein Zählsignal CNTl=F und der zweite Zähler 38 ein Zählsignal CNTUE. Diese Signale werden durch die Eingangs- und Ausgangssignale bildende logische Schaltung 42 ausgenutzt. Signalleitungen C70 bis CTi vom Periodendecoder-Festwertspeicher 34 führen Information, welche die Anzahl von Perioden anzeigt, welche der laufende Befehl braucht, bevor der nächste Befehl abgearbeitet wird. Zählerladesignale LDCNTX und LDCNTl von der logischen Schaltung 42 puffern die CTd bis CTO-Information. Das SCLK-Signal inkrementiert die Zähler, bis die Endzählung erreicht ist, wobei CNTi=F und CNTl=E gilt.
Eine Überspring-Zustandstaktschaltung 44 erzeugt ein *<> SAYP-Signal für den Zustandstaktgenerator 30, das die Erzeugung des SCLK-Taktes für eine Periode unterbricht. Die auf die übersprungene Periode folgende Periode entspricht dem vom Stapel abgezogenen und auf den Datenbus gebrachten Zustandscode. Die Überspring-Zustandstaktschaltung 44 spricht auf ein eine Rückkehr von einer Unterbrechung anzeigendes Signal (K77-Slgnal) von einem ΛΠ-Decoder 46 an. Ein Taktsignal ETTL vom Zustandstaktgenerator 30 taktet das /?77-Signal durch ein internes Flip-Flop, um das SKlP-Signal zu entaktivieren. Das «TV-Signäl zeigt an, wann ein Befehl für eine Rückkehr von einer Unterbrechung auftritt. Der aktive Zustand des Ä77-Signals wird erzeugt, wenn Signale D und FQ einen hohen Pegel und Signale Π und Fl einen tiefen Pegel besitzen.
Ein Puffer 50 für laufende Zustände hält den laufenden Zustand der Anordnung zur Vorhersage von Abrufvorgängen. Mit der ansteigenden Flanke des SCLK-Signals werden ein NÄCHSTER X-, NÄCHSTER Y- und NÄCHSTER Z-Wert in den Puffer geladen, wobei sie zum neuen vorhandenen Zustand werden. Wird eine Unterbrechungsquittung (IAK) empfangen, so werden die gepufferten Werte gelöscht, wodurch die Anordnung in einen Zustand A zurückgezwungen wird. Da das Signal IAK auftreten kann, wenn sich die Anordnung in irgendeinem ihrer Zustände befindet, stellt dies eine Möglichkeit zur Neusynchronisation der Anordnung zur Vorhersage von Abrufvorgängen dar (ein
45
55
60
65 Abruf folgt immer zwei Perloden nach einem IAK-Signal). Ein Decoder 52 für laufende Zustände ist ein von drei auf acht Leitungen arbeitender Decoder mit einzelnen Ausgangsleitungen, die den möglichen Zuständen der Anordnung entsprechen. Diese Ausgangsleitungen vereinfachen die Eingangs- und Ausgangsslgnale formende logische Schaltung. Diese logische Schaltung 42 Ist eine Kombination von diskreten logischen Gattern, die gemäß den gewünschten Eingangs- und Ausgangssignalen gemäß den Regeln der Boolschen Algebra ausgelegt sind. Der Eingangssignale bildende logische Teil erzeugt den nächsten Zustand aus einer logischen Kombination des vorhandenen Zustandes und von EIngangsvarlablen, wie beispielsweise CNTl=F, CNTl=E, Seite 2/3-Kennzeichen, (^+-Kennzeichen, OP+, IOC und Anzahl der Operationscodeperioden=/7. Der Ausgangssignale bildende logische Teil erzeugt Ausgangssignale von der Anordnung zu der Vorhersage von Ablaufvorgängen unter Ausnutzung einer logischen Kombination des vorhandenen Zustandes und der vorgenannten Eingangsvariablen. Bei den Ausgangsslgnalen handelt es sich um Signale mit der Bezeichnung LDCNTl, INCCNTl, LDCNTl, INCCNTl, IÜCO~, ENlFCl und CLRFLGS.
Verschiedene Statusleitungen und alle Adreßleitungen von dem zu testenden System sind auf ein Eingangs-Puffer- und Detektornetzwerk 60 geführt, um mehrere Steuerleitungen für den logischen Analysator, den Zustandstaktgenerator 30 und eine Abruf-Freigabelogikschaltung 62 zu bilden. Durch einen DMA- bzw. Totperioden-Detektorteil des Detektornetzwerkes 60 wird ein D~MÄ+DEÄD-Signal erzeugt, das anzeigt, daß Totperioden vorhanden sind oder daß der Bus durch andere Steuereinheiten belegt ist. Die DMA+DEAD-Lc\- tung ist als auf tiefem Pegel liegend definiert, wenn eine die Verfügbarkeit des Bus anzeigende Leitung (BA) von dem zu testenden System auf hohem Pegel liegt; weiterhin liegt sie für eine Zf-Taktperlode folgend auf den Übergang der BA -Leitung von hohem auf tiefem Pegel auf tiefem Pegel. Im letzteren Falle handelt es sich um die hintere Totperiode, welche auf die Beendigung von DAf/!-Transfers und Synchronquittungsperioden folgt. Ein Lese-Schreib-Signal (RIW) wird von dem zu testenden System über den Eingangspufferteil der Schaltung 60 geliefert. Ein Gültlgkeltsspeicheradreß-Signal (VMA) wird durch einen VMA -Detektorteil des Netzwerkes 60 erzeugt. Eine Ungültigkeitsspeicheradresse ist vorhanden, wenn der Zustand des Adreßbus gleich FFFF lst,_wenn ein Busstatus (BS) gleich Null ist oder wenn RlW=I ist, wodurch eine Leseoperation angezeichnet wird. Der KM/J-Detektorteil des Netzwerkes 60 erzeugt weiterhin ADO- und FFFFE+FFFF-Signale, welche in der Abruffreigabe-Logikschaltung 62 ausgenutzt werden. Ein Unterbrechungsqulttungs-Detektorteil des Netzwerkes 60 erzeugt das /ΛΛΓ-Signal für die Schaltung 62 und den Puffer 50 für laufende Zustände. Das lAK-Sigml wird erzeugt, wenn SS auf hohem Pegel und BA auf tiefem Pegel liegen. Die Abruffreigabe-Logikschaltung 62 versorgt den logischen Analysator mit Befehlsabrufperioden (IFC)- und
/■FC+/fC2-Signalen. Das /FC-Signal zeigt an, daß eine Befehlsabrufperiode (Abruf-1) aufgetreten ist. Das /i"C+/rc2-Signal zeigt eine Befehlsabrufperiode an, in der das erste Byte (Abruf-1) oder nachfolgende Bytes (Abruf-2) eines Befehls abgerufen wurden. Das bedeutet, daß die Anordnung zur Vorhersage von Ablaufvorgängen den Abruf zeltlich um die Taktflanke vorwegnimmt, welche Ihn in den Speicher des logischen
Analysators puffert, so daß die entsprechende Speicherauslesung als ein Abruf im Erfassungsspeicher bezeichnet und die zerlegten mnemotechnischen Größen zusammen mit anderer Information auf dem Anzeigeschirm des logischen Analysators angezeigt werden können. Das /FC-Signal tritt auf. wenn Signale CLRFLCS und ENIFC (interne Signale der Logikschaltung 62) vorhanden sind und das Signal FFFE nicht vorhanden Ist. Das erste Signal CLRFLGS steht auf einer Leitung von der logischen Schaltung 42 der Anordnung zur Vorhersage von Abrufvorgängen. Diese Leitung zeigt das Ende einer vollständigen Sequenz in der Anordnung zur Vorhersage von Ablaufvorgängen sowie die Tatsache an, daß die folgende Periode ein Abruf ist. Die Kennzeichensignaie werden bei der Vorbereitung für die nächste Periode in der Anordnung zur Vorhersage von Abrufvorgängen gelöscht. Das Signal FFFE wird decodiert, um die äußere Vorhersage von Abrufvorgängen während Rückstellsequenzen des Mikroprozessors 6809 auszuschließen. Liegt das Signal ENIFC auf tiefem Pegel, so zeigt es an, daß der Mikroprozessor eine gültige Auslesung durchführt. Ist dies der Fall, so liegen die VMA-, die R/W-, die IAK- und die ZM^+Z)£vlD-Leitungen alle auf hohem Pegel. Somit zeigt der Prozessor einen gültigen Speicherzyklus an, d. h., es erfolgt eine Speicherauslesung. Es handelt sich dabei dann nicht um eine Unterbrechungsquittung oder um eine DMA- oder Totperiode. Die I FC+1 FCl-teilung zeigt an, daß ein Abruf-1 oder ein Abruf-2 stattfindet. Dies erfolgt bei einer Vorhersage durch das Signal ENIFCl urd wenn der Prozessor folgende Transfervorgänge nicht ausführt: einen Schreibvorgang, einen ungültigen Speicherzyklus, eine Unterbrechungsquittung, einen direkten Speicherzugriff (DMA), eine Totperlode oder einen Zugriff von FFFE. Wie bereits ausgeführt, wird das eine Zugriff-1- oder Zugriff-2-Periode anzeigende Signal ENlFCl durch die Anordnung zur Vorhersage von Abrufvorgängen erzeugt.
Nach der vorstehenden Beschreibung aller Teile der Anordnung zur Vorhersage von Ablaufvorgängen wird nun deren Funktion erläutert. Auf der Basis, daß alle Befehle des Mikroprozessors 6809 eine bekannte Anzahl von Taktperioden erfordern, in denen sie abzuarbeiten sind, kann die Anzahl von Taktperioden bis zum nächsten Operationscode-Abruf aus dem laufenden Befehl festgelegt werden. Die Anordnung zur Vorhersage von Abrufvorgängen kann bis zu drei aufeinanderfolgende Bytes decodieren, um die zur Abarbeitung eines Befehls notwendige Anzahl von Taktperioden festzulegen, wodurch wiederum festgelegt wird, wielange zu warten ist, bevor es sich bei der nächsten Datenbus-Auslesung um einen Operationscode-Abruf handelt. Wenn der Mikroprozessor 6809 einen Befehl mit einem Byte erfaßt, so erfolgt ein Vorabruf des nächsten Bytes wie normal. Hat der Mikroprozessor einen Befehl mit einem Byte abgearbeitet, so wird das vorabgerufene Byte gelöscht. Diese gelöschten Vorabrufe erscheinen als Lesezyklen im Erfassungsspeicher. Befehlstypen sind gemäß der Anzahl von zu decodierenden Bytes in Kategorien zusammengefaßt, so daß die Gesamtanzahl von Taktperioden pro Befehl definiert werden kann. Diese Information steht im Programmlerhandbuch für den Mikroprozessor 6809 der Firma Motorola zur Verfügung. Der Typ des decodierten Befehls legt in Kombination mit den verschiedenen Eingangsvariablen den richtigen Weg durch die Anordnung zur Vorhersage von Abrufvorgängen fest. Die Decodierung des ersten Bytes eines Operaüonscodes legt fest, ob nachfolgende Bytes deco-
diert werden müssen oder nicht. Es erfolgt dabei eine Festlegung des Befehlstyps, wobei für reguläre Befehlstypen die Gesamtanzahl von Taktperioden pro Befehl definiert wird. Für Befehle mit mehreren Bytes definiert das erste Byte eine gewisse Minimalanzahl von Taktperloden, welche einer variablen Anzahl von Taktperioden (festgelegt durch Decodierung nachfolgender Bytes) hinzuaddiert werden müssen. Eine Speicherung der Anzahl von Perioden erfolgt durch die beiden vorsetzbaren Zähler 36 und 38, welche eine interne Festlegung der Anzahl von Taktperioden durchführen, die zur Abarbeitung eines gegebenen Befehls durch den Mikroprozessor erforderlich sind. Wenn die Zähler bis zu ihrer Endzählung fortgeschaltet sind, sagt die Anordnung einen Abruf vorher. Die folgende Taktperiode soll ein Abruf durch den Mikroprozessor 6809 sein. Da die Anordnung zur Vorhersage von Abrufvorgängen den Abruf, wie bereits ausgeführt, zeitlich um die Taktflanke vorwegnimmt, welche ihn In den logischen Analysator puffert, kann die entsprechende Speicherauslesung als ein Abruf im Erfassungsspeicher bezeichnet werden, wobei die zerlegten mnemotechnischen Größen zusammen mit anderer Information durch den logischen Analysator angezeigt werden können. Diese Information kann auch zur Triggerung und Datenqualifizierung ausgenutzt werden.
Gemäß dem Flußdiagramm nach Fig. 3 Ist die Unterbrechungsquittung IAK eine zweckmäßige Größe zur Synchronisation der Anordnung zur Vorhersage von Abrufvorgängen mit dem Mikroprozessor 6809. Da der Abruf des ersten Befehls einer Unterbrechungs-Serviceroutine immer drei Perioden nach der Erfassung des /ΛΛ'-Signals folgt, springt die Anordnung immer in den Zustand A. Eine Rücksetzung und das entsprechende //f/C-Signal können auftreten, wenn sich die Anordnung in irgendeinem ihrer Zustände befindet, so daß das IAK-Signal in allen Zuständen der Anordnung zur Vorhersage von Abrufvorgängen getestet wird. Obwohl es lediglich notwendig Ist, den Datenbus in den Zuständen D oder F in Abhängigkeit bestimmter Elngangsvarlablen zu puffern, wird er jedoch zweckmäßigerweise in jedem Zustand gepuffert. Wird in den Zuständen D oder F ein ungültiger Operationscode (IOC) decodiert, so kehrt die Anordnung In den Zustand D zurück und sucht sich neu zu synchronisieren. Der Zuslandstaktgenerator 30 wird in Schreib-, VMA-, Tot-, DMA- oder Synchronquittungs-Perloden gesperrt. Da bei Schreibvorgängen keine Taktung erfolgt, wird die Anzahl von Perioden für eine Zeltsperre, speziell für Stapelschreiboperationen, reduziert. Da ungültige Speicheradreßzyklen nicht getaktet werden, wird die Anzahl von Perioden zur Zeitsperre ebenfalls reduziert. Weiterhin ist auch keine Kenntnis mehr notwendig, ob eine Sprungoperation durchgeführt wurde oder nicht. Da die Anordnung In Tot-, DMA- oder Synchronquittungs-Perioden nicht getaktet wird, wird die Anzahl dieser Perioden für die Anordnung zur Vorhersage von Abrufvorgängen durchsichtig. Die Erfassung, die für die nächste, auf die Vervollständigung des laufenden Befehls folgende Periode vorhergesagt wurde, wird bis unmittelbar nach der Vervollständigung jeder Anzahl von Tot-, DMA- oder Synchronquittungs-Perloden unterbrochen.
Reguläre Befehle
Für einen regulären Operationscode mit einem einzigen Byte wird die Anzahl von Perloden Im Zustand D
decodiert und in den Zähler 36 geladen (CNTRl). Handelt es sich um einen Befehl mit zwei Perloden (der kürzeste vorhandene Befehl), so wird ein F In den Zähler 36 geladen (CNTRl); anderenfalls wird das Komplement der Anzahl von Perioden zur Zeitsperre minus 2 in den Zähler 36 geladen (CNTRl). Unter der Annahme, daß der erfaßte Operationscode nicht ungültig war, so wird der nächste Zustand gleich E. Ist der Inhalt des Zählers 36 gleich F (CNTRUF), so wird die Befehlsabrufperioden-Leltung IFC wirksam, so daß der nächste Zustand gleich D Ist. Anderenfalls wird der Zähler 36 auf F lnkrementiert, wofür so viele Perioden ausgenutzt werden, wie es für eine Zeitsperre vor der Ausgabe des Signals IFC erforderlich ist.
Regulär+-Befehle
Ein Regulär+-Befehl besitzt zwei zu decodierende Bytes. Im Zustand D wird das erste Byte decodiert und in den Zähler 36 geladen. Sodann wird das Operatlonscode-Plus-Kennzelchen gesetzt, wobei die Signale IFC und 1FC+IFC2 (nachfolgende Abruf-Bytes) vor dem Fortschreiten In den Zustand F wirksam werden. Da die Operatlonscode-Plus-Kennzeichenbits In die Adreßleitungen höherer Ordnung des Perlodendecoder-Festwertspeichers 34 zurückgeführt werden, wird eine neue Decodertabelle zur Decodierung des zweiten Bytes adressiert. Da das Operationscode-Plus-Kennzelchen bereits gesetzt ist, springt die Anordnung auf den Zähler 38 und schreitet dann In den Zustand C fort, wenn die Anzahl von Operationscode-Perioden nicht gleich F Ist. Der Grund für die Testung, ob die Anzahl von Operationscode-Perioden gleich F Ist, ist darin zu sehen, daß der Zeitbedarf der Anordnung so klein wie möglich gehalten werden soll, um die Anzahl von Perloden des kürzesten Befehls mit zwei Byte nicht zu überschreiten. Im Zustand D wird der Zähler 38 für sovlele Perloden inkrementiert, wie es notwendig Ist, um E (CNTRl=E) zu erreichen, wonach die Anordnung in den Zustand E fortschreitet. Auch dabei wird der Zähler 36 auf F Inkrementiert, wobei das Signal IFC vor der Rückkehr in den Zustand D wirksam wird.
Seite 2- oder Seite 3-Befehle
Für diese Typen von Befehlen dient das erste Byte primär zur Anzeige, daß ein zweites Byte decodiert werden muß. Obwohl der Zähler 36 In den Zustand D geladen wird, wird dieser Wert Ignoriert. Die Seite 2- oder Seite 3-Kennzelchenbits werden gesetzt, bevor die Signale IFC und IFC+IFC1 vor dem Zustand F wirksam werden. Es wird wiederum aufgrund der gesetzten Kennzeichenbits eine neue Tabelle adressiert. Da diese Kennzeichenbits gesetzt und das Operationscode-Plus-Kennzelchenblt nicht gesetzt ist, wird der Zähler 36 wiederum mit einem Wert aus der zweiten Tabelle geladen. Da es sich dabei nicht um einen Operationscode-Plus-(Regulär+)-Befehl handelt, schreitet die Anordnung in den Zustand £ fort und Inkrementiert den Zähler 36 wie vorher auf F.
Seite 2+- oder Seite 3+-Befehle
Diese Typen von Befehlen erfordern die Decodierung von drei Bytes. Das erste Byte zeigt lediglich an, daß es sich um einen Seite 2- oder Seite 3-Befehl handelt, wobei die Seite 2- oder Seite 3-Kennzelchenbits gesetzt werden. Der Zähler 36 wird wiederum gesetzt, wobei Im
15 Zustand D eine Ignorierung erfolgt. Die Perlodendecodertabelle, die im Zustand F durch die Seite 2- oder Seite 3-Kennzeichenblts adressiert wird, wird in den Zähler 36 geladen, da das Operatlonscode-Plus-Kennzeichen nicht gesetzt ist. Das zweite decodierte Byte zeigt jedoch an, daß dieser Befehl auch ein Operationscode-Plus-Typ ist, so daß daher das Operationscode-Plus-Kennzelchen vor der Rückkehr in den Zustand F gesetzt wird. Es wird nunmehr eine dritte Perlodendecodertabelle adressiert, wobei der Ausgangswert in den Zähler 38 geladen wird, da nunmehr das Operationscode-Plus-Kennzeichenblt zusätzlich zu den Seite 2- oder Seite 3-Kennzeichenbits gesetzt ist. Der Zähler 38 wird wiederum im Zustand G auf £ inkrementiert, worauf der Zähler 36 im Zustand £ auf F Inkrementiert wird. Das Signal IFC wird im obigen Sinne wirksam.
/?77-Befehl
Die Anzahl der für einen /?7V-Befeh! notwendigen Perloden hängt vollständig davon ab, ob das £-Bit des Stapelbedlngungs-Codereglsters gesetzt 1st. Im Zustand D wird der Zähler 36 mit der Anzahl von Perioden geladen, die dem nicht gesetzten £-Blt entsprechen. Die /?7Y-Kennzeichenblts werden dabei vor dem Fortschreiten In den Zustand F gesetzt. Im Zustand F wird als Funktion der ÄH-Kennzelchenblts eine neue Periodendecodertabelle adressiert, wobei der Zustandscode vom Stapel gezogen und in die acht unteren Adressenleitungen des Decoder-Festwertspeichers eingespeichert wird. Das £-Bit des Zustandscodereglsters adressiert daher denjenigen Teil der Decodertabelle, der die richtige Anzahl von zusätzlichen erforderlichen Perioden enthält, wenn das £-Bit gesetzt ist. Diese Anzahl wird in den Zähler 38 geladen, da die Seite 2- und Seite 3-Kennzelchenblts nicht gesetzt sind. In den Zuständen G und £ werden die Zähler 38 und 36 vor der Ausgabe des Signals IFC wie vorher auf Ihre Endwerte inkrementiert.
Befehl für Ziehvorgänge aus Registern (PUL-Befehl)
PUL-Befehle laden den Zähler 36 und setzen die Pl/X-Kennzeichenbits im Zustand D. Im Zustand F adressiert der PUL-Operand zusammen mit den PUL-Kennzeichenblts den richtigen, in den Zähler 38 zu ladenden Wert. Die Zustände G und £ folgen wie vorher. Ein Befehl, mit dem nicht gezogen werden soll, ist ein gültiger Operationscode, der drei Perioden erfordert.
Tabelle A v.
Befehlssatz
Befehl Beschreibung
ABX Überführen Inhalt Accumulator B in Indexregister X
ADC Überführen mit Übertrag in Register
ADD Überführen Speicherinhalt in Register
AND vom Speicher in Register über logisch UND
ASL arithmetische Verschiebung nach links
ASR arithmetische Verschiebung nach rechts
BCC Springen auf Übertrag löschen
BCS Springen auf Übertrag setzen
BEQ Springen auf gleich
20
25
30
35
40
45
Fortsetzung
Fortsetzung
B-fehl Beschreibung Befehl Beschreibung
BGE Springen auf größer als oder gleich Null
BGT Springen auf größer
BHI Springen wenn höher
BHS Springen wenn höher oder gleich
BIT Bittest
BLE Springen wenn kleiner als oder gleich Null
BLO Springen auf kleiner
BLS Springen auf kleiner oder gleich
BLT Springen auf weniger als Null
BMI Springen auf Minus
BNE Springen nicht gleich
BPL Springen auf Plus
BRA immer Springen
BRN niemals Springen
BSR Springen auf Unterprogramm
BVC Springen auf Überlauflöschen
BVS Springen auf Überlauf setzen
CLR Löschen
CMP Speicher von einem Register vergleichen
COM Komplement
CWAI CC Bits löschen und auf Unterbrechung warten
DAA dezimale Addition justieren
DEC Dekrementieren
EOR Exclusiv ODER
EXG Register austauschen
INC Incrementieren
JMP Sprung
JSR Sprung auf Subroutine
21!
LD Register aus Spe'cher laden
LEA effektive Adresse laden
LSL logische Verschiebung nach links
LSR logische Verschiebung nach rechts
MUL Vervielfachen
NEG Negieren
NOP keine Operation
OR Speichergehalt in Register über Inklusiv ODER
PSH in Register einspeichern
PUL aus Registern ziehen
ROL Drehen nach links
ROR Drehen nach rechts
RTl von Unterbrechung zurückkehren
RTS von Unterprogramm zurückkehren
SBC Subtrahieren mit Borgen
SEX Vorzeichenerweiterung
ST aus Register in Speicher einspeichern
SUB Speicherinhalt von Registerinhalt subtrahieren
SWI Software-Unterbrechung
SYNC Synchronisation auf externes Ereignis
TFR Übertragung von Register zu Register
TST Test
Das vorstehend beschriebene Ausführungsbeispiel, das speziell auf die Abrufvo/hersage beim Mikroprozessor 6809 gerichtet ist. sind die erläuterten Prinzipien natürlich auch auf andere Mikroprozessorsysteme anwendbar.
Hierzu 3 Blatt Zcichnunaen

Claims (7)

Patentansprüche:
1. Anordnung zur Vorhersage von Abrufvorgängen im Befehlszyklus eines Mikroprozessors, gekennzeichnet durch
einen synchron mit einem Mikrozessor-Takt betreibbaren Zustandstaktgenerator (30),
einen an einen Mikroprozessor-Bus angekoppelten Decoder (32, 34, 40) zur Decodierung von Befehlsdaten in zur Ausführung jedes Befehls notwendige Anzahlen von Taktperioden,
eine Zähleranordnung (36, 38) zur Zählung der Anzahlen von Taktperloden sowie zur Erzeugung von Operationscode-Abrufe anzeigender. Endzählsignalen,
eine auf logische Kombinationen von Zustands- und Eingangsvariablen einschließlich von Informationen vom Decoder (32, 34, 40) sowie von Endzählsignalen von der Zähleranordnung (36, 38) ansprechende Loglksteuerung (42, 50, 52) zur Erzeugung von Abrufsignalen
und einen Betrieb des Decoders (32, 34, 40), der Zählanordnung (36, 38) und der Loglksteuerung (42, 50, 52) synchron mit dem Taktsignal.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Decoder (32, 34, 40) einen Datenpuffer (32) und einen Befehlszyklus-Decodertabellen enthaltenden Festwertspeicher (34) aufweist.
3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Decoder (32, 34, 40) weiterhin einen Kennzeichen-Puffer (40) aufweist, der zur Adressierung bestimmter, im Festwertspeicher (34) Gespeicherter Decodertabellen Kennzeichenbits vom Festwertspeicher (34) empfängt.
4. Anordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Zähleranordnung (36, 38) wenigstens einen vorsetzbaren Zähler (beispielsweise 36) aufweist.
5. Anordnung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Logiksteuerung (42, 50, 52) eine Logikschaltung (42), einen Puffer (50) für laufende Zustände und einen Decoder (52) für laufende Zustände aufweist, die in einer Schleife gekoppelt sind.
6. Anordnung nach einem der Ansprüche 1 bis 5, gekennzeichnet durch einen Kreis (44, 46) zur Sperrung des Taktsignalgenerators (30) unter bestimmten Bedingungen.
7. Anordnung nach einem der Ansprüche 1 bis 6, gekennzeichnet durch eine Schaltung zur Neusynchronisation nach Feststellung eines ungültigen Operationscodes.
DE19823238566 1981-10-19 1982-10-18 Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren Expired DE3238566C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US31246681A 1981-10-19 1981-10-19

Publications (2)

Publication Number Publication Date
DE3238566A1 DE3238566A1 (de) 1983-05-05
DE3238566C2 true DE3238566C2 (de) 1984-06-28

Family

ID=23211585

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823238566 Expired DE3238566C2 (de) 1981-10-19 1982-10-18 Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren

Country Status (4)

Country Link
JP (1) JPS5880743A (de)
DE (1) DE3238566C2 (de)
GB (1) GB2110440A (de)
NL (1) NL8203838A (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3429112A1 (de) * 1984-08-03 1986-02-06 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur generierung von steuerinformationen aus statussignalen eines mirkroprozessors
US4759019A (en) * 1986-07-10 1988-07-19 International Business Machines Corporation Programmable fault injection tool

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS-ERMITTELT

Also Published As

Publication number Publication date
JPS5880743A (ja) 1983-05-14
GB2110440A (en) 1983-06-15
JPS6220581B2 (de) 1987-05-07
NL8203838A (nl) 1983-05-16
DE3238566A1 (de) 1983-05-05

Similar Documents

Publication Publication Date Title
DE3424962C2 (de)
EP0764899B1 (de) Verfahren zum Konvertieren sich unterscheidender Datenformate
DE3151745C2 (de)
DE2414311C2 (de) Speicherschutzeinrichtung
DE2935906C2 (de) Mikroprozessor
DE2723523A1 (de) Kompression und dekompression von gespeicherten digitaldaten
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
DE1549531A1 (de) Digitale Rechenanlage
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem
DE2912073C2 (de)
DE2536625C2 (de) Paritätsprüfschaltung für ein binär zählendes Register
DE2533737A1 (de) Datenprozessor
DE19824289A1 (de) Pipelineverarbeitungsmaschine
DE3323824A1 (de) Speicherprogrammierbare steuerung
DE3238566C2 (de) Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren
DE2806409A1 (de) Vorrichtung zur reduzierung der befehlsausfuehrungszeit bei einem rechner mit indirekter adressierung eines datenspeichers
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE2349253C3 (de) Rechnersystem
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
WO2003029953A2 (de) Verfahren zum speichern oder weiterleiten von daten
DE3818097C2 (de)
EP0664905B1 (de) Verfahren zur durchfürhung von tests an auf einem rechner parallel ablauffähigen objekten eines objektorientierten programmes

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee