DE3238566C2 - Anordnung zur Vorhersage von Abrufvorgängen in Mikroprozessoren - Google Patents
Anordnung zur Vorhersage von Abrufvorgängen in MikroprozessorenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection 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.
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)
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,
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.
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)
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 |
-
1982
- 1982-08-25 GB GB08224374A patent/GB2110440A/en not_active Withdrawn
- 1982-10-01 NL NL8203838A patent/NL8203838A/nl not_active Application Discontinuation
- 1982-10-18 DE DE19823238566 patent/DE3238566C2/de not_active Expired
- 1982-10-18 JP JP57182687A patent/JPS5880743A/ja active Granted
Non-Patent Citations (1)
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 |