DE69528824T2 - Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher - Google Patents
Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicherInfo
- Publication number
- DE69528824T2 DE69528824T2 DE69528824T DE69528824T DE69528824T2 DE 69528824 T2 DE69528824 T2 DE 69528824T2 DE 69528824 T DE69528824 T DE 69528824T DE 69528824 T DE69528824 T DE 69528824T DE 69528824 T2 DE69528824 T2 DE 69528824T2
- Authority
- DE
- Germany
- Prior art keywords
- data field
- field information
- data
- memory
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 50
- 238000000034 method Methods 0.000 title claims description 16
- 230000000737 periodic effect Effects 0.000 claims description 11
- 230000009977 dual effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die Erfindung bezieht sich auf die Ausführung von Mikrocodebefehlen innerhalb eines Computers und genauer gesagt auf eine Vorrichtung und ein Verfahren zum Erneuern von Information, die in einem Mikrocodebefehl bzw. einer Mikrocodeanweisung enthalten ist, ohne die Ausführung eines Programms durch den Computer zu unterbrechen.
- Der aus der DE-A-28 12 982 bekannte Stand der Technik sieht einen einzelnen, beschreibbaren Mikrobefehlsspeicher vor, in welchen vollständige Mikrobefehle bzw. Mikroanweisungen zwischen periodischen Lesezugriffen auf die Mikroanweisungen geladen werden, um das Problem des sequentiellen Ladens von Blöcken von Mikroanweisungen aus dem Hauptspeicher ohne Unterbrechung der Ausführung des Mikroprogrammes zu lösen.
- Im allgemeinen besteht ein Computerprogramm aus einer Serie von Mikrocodebefehlen bzw. -anweisungen. Jeder Mikrocodebefehl enthält typischerweise ein Operationscodefeld (OP-Code- Feld) und ein Datenfeld. Das OP-Code-Feld spezifiziert eine bestimmte Operation bzw. einen bestimmten Vorgang, die bzw. den der Computer ausführen soll. Das Datenfeld enthält entweder aktuelle Daten, auf welche der Befehl angewendet wird oder eine Adresse in dem Hauptspeicher, wo solche Daten gespeichert sind. Im zweiten Fall zeigt die Adresse auf ein bestimmtes Datenbyte, welches dann durch den Befehl verwendet (entsprechend den Anweisungen bearbeitet) wird. Im allgemeinen werden diese Daten von Fachleuten als "Operanden" des OP-Codes bezeichnet. Aus Gründen der Einfachheit sei in der folgenden Diskussion angenommen, daß das Datenfeld die durch den OP-Code zu bearbeitenden, aktuellen Daten enthält.
- Wenn ein Programm erfordert, daß die Daten innerhalb eines Datenfeldes während der Programmausführung verändert werden, wird die Ausführung des Programms typischerweise unterbrochen, bis die neuen Daten innerhalb eines geeigneten Datenfeldes innerhalb des Speichers gespeichert sind. Typischerweise wird ein solcher Datenerneuerungsvorgang durch eine sogenannte Interrupt-Routine (Interrupt-Unterprogramm) bewerkstelligt.
- Man betrachte beispielsweise ein Programm, welches wiederholt einen Befehl ausführt, der eine Variable zu einer Konstanten addiert, beispielsweise eine Funktion der Form Y = X+C, wobei X und Y Variablen sind und C eine Konstante ist. Der Befehl für diesen Vorgang enthält einen OP- Code, welcher angibt, daß eine Additionsfunktion ausgeführt werden soll und daß ein Datenfeld die Konstante C enthält. Insbesondere wird das Datenfeld verwendet, um die Konstante C als eine Eingangsgröße für eine arithmetische Logikeinheit (ALU) zuzuführen, welche die Berechnung, beispielsweise eine Additionsfunktion, ausführt.
- Wenn der Wert der Konstanten C, das heißt der Datenfeldwert, während der Ausführung des Programmes geändert werden soll, wird die Programmausführung gestoppt, bis ein Befehl, welcher den Wert der Konstanten erneuert, durch den Computer ausgegeben wurde, das heißt eine Interrupt-Routine erneuert den Wert der Konstanten, während das Hauptprogramm den Abschluß des Erneuerungsvorganges abwartet. Nach der Ausführung einer solchen Interrupt-Routine (Interrupt- Unterprogramm) ist der Datenwert mit einem neuen Wert erneuert. Eine solche Erneuerung erfordert typischerweise für ihre Ausführung einen oder mehrere Taktzyklen. Nachdem die Erneuerung abgeschlossen ist, wird die Ausführung des Hauptprogramms wieder aufgenommen. Eine solche Verzögerung in der Programmausführung beeinflußt in nachteiliger Weise die Arbeitsgeschwindigkeit des Computers. Darüber hinaus ist eine solche Verzögerung der Ausführung des Hauptprogramms besonders nachteilig für Computer, die eine Realzeitverarbeitung bereitstellen. Es besteht daher im Stand der Technik ein Bedürfnis nach einer Vorrichtung und einem Verfahren, welche die Datenfeldinformation ohne Unterbrechung der Programmausführung erneuern.
- Die beanspruchte Erfindung behebt die mit dem Stand der Technik verbundenen Nachteile, indem sie ermöglicht, daß ein Datenfeldwert innerhalb einer Mikrocodeanweisung ohne Unterbrechung der Programmausführung erneuert werden kann. Insbesondere ist die Erfindung eine Vorrichtung und ein Verfahren, welche Datenfeldinformation erneuert, die durch ein gerade laufendes Programm verwendet wird. Die Datenfeldinformation, welche zeitweise in einer Speichereinheit gespeichert ist, kann innerhalb eines einzigen Taktzyklus in einer Speichereinheit erneuert und von derselben Speichereinheit gelesen werden. Insoweit ist die Erneuerung der Datenfeldinformation zeitlich so abgestimmt, daß sie zwischen den Programmbefehlen erfolgt, die periodisch durch eine Verarbeitungseinheit für die Ausführung aus einer Speichereinheit aufgerufen werden.
- Genauer gesagt enthält die Erfindung: eine erste Programmeinheit für das Speichern von Operationscode-Information unter einer darin enthaltenen Adresse, eine zweite Speichereinheit zum Speichern von Datenfeldinformation in einer darin enthaltenen Adresse, eine Schaltung für das periodische Zugreifen auf die Operationscodeinformation und die Datenfeldinformation, für die Ausführung durch eine Verarbeitungseinheit, und eine Schaltung für das wahlweise Ändern der Datenfeldinformation, die in der zweiten Speichereinheit gespeichert ist. Die Änderung der Datenfeldinformation erfolgt zwischen periodischen Zugriffen auf die zweite Speichereinheit, die während der Programmausführung erfolgen. Insoweit kann die Programminformation erneuert werden, ohne daß die Programmausführung unterbrochen wird.
- Die Lehre der vorliegenden Erfindung ist unter Berücksichtigung der folgenden genauen Beschreibung in Verbindung mit den begleitenden Zeichnungen leicht zu verstehen, von denen:
- Fig. 1 ein Blockdiagramm einer bevorzugten Ausführungsform der Erfindung zeigt, Fig. 2 ein Flußdiagramm der Erneuerungsroutine eines Datenfeldes zeigt, und
- Fig. 3 ein Diagramm des Zeitablaufs von Signalen zeigt, welche für das Lesen und Schreiben von Daten in eine Speichereinheit mit zwei Anschlüssen verwendet wird.
- Um das Verständnis zu erleichtern, sind, soweit möglich, identische Bezugszeichen verwendet worden, um identische Elemente zu kennzeichnen, die in den Figuren gemeinsam auftauchen.
- Unter Berücksichtigung der folgenden Beschreibung werden die Fachleute auf diesem Gebiet eindeutig verstehen, daß die Lehre der vorliegenden Erfindung in einfacher Weise in einem Computer verwendet werden kann, der erfordert, daß Datenfeldinformation innerhalb eines Mikrocodebefehls auf den neuesten Stand gebracht werden muß, ohne die Ausführung des Programms zu unterbrechen, welches die Datenfeldinformation verwendet. Insbesondere profitieren diejenigen Computer am meisten aus der Verwendung der vorliegenden Erfindung, welche eine Realzeitverarbeitung ausführen.
- Fig. 1 zeigt ein Blockdiagramm der vorliegenden Erfindung, wie sie innerhalb eines konventionellen Computers implementiert werden würde. Die bevorzugte Ausführungsform der Erfindung 100 enthält eine Host-Schnittstelle 102, einen Programmzähler (PC) 104, einen Multiplexer (MUX) 106, ein OR-Gatter 110 und einen Programmspeicher 108. Als Teil eines Computers, welcher die Erfindung enthält, der jedoch keinen Teil der vorliegenden Erfindung bildet, ist eine konventionelle Verarbeitungseinheit 112 vorgesehen, die ein in dem Programmspeicher 108 gespeichertes Programm ausführt.
- Die Host-Schnittstelle 102 bildet eine Schnittstelle zwischen dem Computer, welcher die Erfindung enthält, und einem Benutzer oder Programmierer. Typischerweise ist die Host- Schnittstelle ein Computerterminal, ein Mikrocomputer, eine Computer-Workstation oder dergleichen. In Reaktion auf Aktionen des Programmierers erzeugt die Host-Schnittstelle ein Computerprogramm. Insbesondere enthält das Programm eine Serie von Befehlen, wobei jeder Befehl ein Operationscode- (OP-Code-) Feld und ein Datenfeld enthält. Bei der Ausführung eines gegebenen Befehls bildet das Datenfeld einen Operanden für den OP-Code. Insoweit kann ein Programmierer über die Host-Schnittstelle ein Programm schreiben und die Befehle bzw. Anweisungen, ebenso wie anfängliche Datenoperanden in dem Programmspeicher 108 speichern. Bei der Programmausführung führt der Programmzähler (PC) 104 in konventioneller Weise eine geeignete Befehlsadreßsequenz an den Programmspeicher 108 zu. Dementsprechend ruft der Programmzähler 104 der Reihe nach die Programmbefehle und ihre zugehörigen Daten für die Ausführung durch die Verarbeitungseinheit 112 auf.
- Der Programmspeicher 108 enthält zwei Programmspeichereinheiten 114 und 116 mit wahlweisem Zugriff (Direktzugriffspeicher - RAM). Der erste RAM 114 ist eine konventionelle Speichereinheit mit einem Anschluß (single port), bei welchem ein Anschluß ("R/W addr"-Anschluß) verwendet wird, um sowohl eine Leseadresse als auch eine Schreibadresse zu spezifizieren, von welcher bzw. in welche OP-Codes der Reihe nach gelesen/geschrieben werden. Der zweite RAM 116 ist eine Speichereinheit mit doppeltem Anschluß (dual port), bei welcher getrennte Anschlüsse verwendet werden, um die Lese- und Schreibeadressen zu spezifizieren, von welchen bzw. in welche Datenfeldinformation gelesen/geschrieben wird. Insbesondere wird der "R addr"-Anschluß verwendet, um die Leseadresse zu spezifizieren, und der "W addr"-Anschluß wird verwendet, um die Schreibadresse zu spezifizieren. Konsequenterweise können an den zweiten RAM 116 innerhalb eines einzigen Taktzyklus zwei Adressen zugeführt werden. Insoweit können innerhalb dieses einzigen Taktzyklus Daten an einer einzigen Adresse innerhalb der Speichereinheit 116 sowohl gelesen als auch geschrieben werden. Im Betrieb wird das Datenfeld für den Gebrauch durch die Verarbeitungseinheit 112 periodisch ausgelesen, während die Datenfeldinformation zwischen Lesevorgängen auf den neuesten Stand gebracht wird. Konsequenterweise kann die Datenfeldinformation erneuert werden, ohne daß die Ausführung des Programms unterbrochen werden muß, um die Datenerneuerung abzuwarten.
- Wenn Mikrocodebefehle eines gegebenen Programms in den Programmspeicher 108 über die Host-Schnittstelle 102 geschrieben werden, werden sowohl das OP-Code-Feld als auch das Datenfeld der Mikrocodeanweisung gleichzeitig geschrieben. Weiterhin werden, wenn das Programm ausgeführt wird, sowohl das OP-Code-Feld als auch das Datenfeld innerhalb jedes Mikrocode-Befehls gleichzeitig aus dem Programmspeicher gelesen, verkettet und über einen Befehlsdatenbus 132 für die Verarbeitung an die Verarbeitungseinheit 112 geleitet. Wie es auf diesem Gebiet wohlbekannt ist, bilden das OP-Code-Feld und das Datenfeld zwei Teile eines Befehlswortes, welche die Verarbeitungseinheit 112 nachfolgend ausführt. Die Datenfeldinformation kann an eine Adresse, die durch die Host-Schnittstelle ohne Unterbrechung des Hauptprogramms mit neuen Daten erneuert werden, das heißt die Erneuerung erfolgt zwischen den Erzeugungsvorgängen für Leseadressen durch den Programmzähler. Eine solche Datenfelderneuerung wird möglich gemacht durch Verwendung des Dual-Port-RAM als Datenfeldspeichereinheit 116.
- Im Betrieb wird der folgende Vorgang verwendet, um anfänglich ein Programm und jeden Anfangswert eines Datenfeldes in den Programmspeicher 108 zu laden:
- 1) Die Host-Schnittstelle 102 schreibt ein 144 Bit breites Befehlswort, welches sowohl einen OP-Code-Feldwert (128 Bit) als auch einen anfänglichen Datenfeldwert (16 Bit) enthält, in den Befehlsdatenbus 128 des Host,
- 2) die Host-Schnittstelle 102 schreibt dann eine 18-Bit-Befehlsadresse in den Befehlsadreßbus 122 des Host, um die Adresse anzuzeigen, in welcher der Datenfeldwert und der OP-Code-Feldwert innerhalb ihrer jeweiligen Speicher 114 und 116 geschrieben werden sollen, und
- 3) die Host-Schnittstelle aktiviert die Leitung 124 für die Schreibfreigabe des Host- Befehls, um den Schreibvorgang zu vollenden.
- Das Aktivieren bzw. Vorbringen der Leitung 124 für die Schreibfreigabe des Host-Befehls leitet den Wert des Adreßbusses 122 des Host-Befehls durch den Multiplexer 106 an den "R/W addr"-Anschluß der Speichereinheit 114 mit einem einzigen Anschluß für das OP-Code-Feld. Weiterhin wird nach Aktivierung der Leitung 124 für die Schreibfreigabe der Wert des OP-Code-Feldes auf dem Host-Befehlsdatenbus 128 in den Speicher 114 geschrieben. In ähnlicher Weise ist der Wert des Host-Befehlsadreßbusses 122 ebenfalls für den "W addr"-Anschluß der Dual-Port- Speichereinheit 116 für das Datenfeld verfügbar. Das Aktivieren der Schreibfreigabeleitung 124 für den Host-Befehl durch das OR-Gatter 110 (ODER-Gatter 110) schaltet den Datenfeldwert auf den Host-Befehlsdatenbus 128 durch den Dateneingangs- (DI-) Anschluß in die Datenfeldspeichereinheit 116.
- Während der Programmausführung führt der Programmzähler 104 über den Multiplexer 106 jede Adresse des Befehls (sowohl des OP-Codes als auch der Daten) zu, die durch die Verarbeitungseinheit 112 ausgeführt werden soll. In Reaktion darauf, daß die Schreibfreigabeleitung 124 des Host-Befehls während der Programmausführung nicht aktiviert bzw. vorgebracht wird, ist der Multiplexer derart eingestellt, daß die durch den Programmzähler 104 zugeführte Befehlsadresse für den "R/W addr"-Anschluß der Speichereinheit 114 für das OP-Codefeld und für den "R addr"-Anschluß der Datenfeldspeichereinheit 116 verfügbar ist. Der Mikrocodebefehl (OP-Code und Datenfelder) an der angegebenen Adresse wird über den Datenausgangs- (DO-) Anschluß der Speichereinheit 114 für das OP-Code-Feld und den DO-Anschluß der Datenfeldspeichereinheit 116 auf den Befehlsdatenbus 132 geschrieben. Um ein Programm vollständig auszuführen, gibt der Programmzähler 104 eine Folge von Befehlsadressen aus, die der Reihe nach die durch die Verarbeitungseinheit 112 auszuführenden Befehle aufrufen.
- Um ein Datenfeld während der Programmausführung innerhalb der Datenfeldspeichereinheit 116 zu erneuern und ohne die Ausführung des Programms zu unterbrechen, sieht die Erfindung eine Anzahl von Verfahrensschritten vor. Fig. 2 zeigt ein Flußdiagramm eines Unterprogramms bzw. einer "Routine" 200, die durch die Host-Schnittstelle ausgeführt wird, um die Inhalte eines bestimmten Datenfeldes zu erneuern. Eine solche Routine kann entweder in Form von Hardware oder durch Software implementiert sein. Damit der Leser die Arbeitsweise der Erfindung möglichst gut versteht, wird angeregt, daß die Fig. 1 und 2 beim Lesen der folgenden Erläuterung gemeinsam betrachtet werden.
- Die Erneuerungsroutine 200 für das Datenfeld wird allgemein in Schritt 202 aufgenommen, der mit START markiert ist. Im Anschluß daran schreibt die Routine in Schritt 204 den neuen Datenfeldwert auf den Host-Befehlsdatenbus 128. Die Routine schreibt dann in Schritt 206 die Adresse des zu erneuernden Datenfeldes auf den Host-Befehlsadreßbus 122. In Schritt 208 aktiviert die Routine die Schreibfreigabeleitung 126 für das Datenfeld, um ein Schreiben des neuen Datenfeldwertes in die Datenfeldspeichereinheit 116 unter der angegebenen Adresse zu bewirken. Die Routine stoppt in Schritt 210. Dieser gesamte Vorgang erfolgt zwischen Speicherzugriffen, die verwendet werden, um den Datenfeldwert für den Gebrauch in der Programmausführung zu lesen.
- Die Aktivierung der Schreibfreigabeleitung 126 für das Datenfeld durch das ODER-Gatter 110 bewirkt, daß der neue Datenfeldwert auf dem Host-Befehlsdatenbus 128 durch den DI-Anschluß der Datenfeldspeichereinheit 160 auf die an dem "W addr"-Anschluß angegebene Adresse geschaltet und geschrieben wird. Da zu diesem Zeitpunkt die Schreibfreigabeleitung 124 für den Host- Befehl nicht aktiviert ist, führt der Multiplexer 106 nicht die Adresse auf dem Adreßbus 122 für den Host-Befehl auf die Speichereinheit 114 für das OP-Code-Feld zu. Auf diese Weise wird die Datenfeldinformation zwischen Befehlsaufrufen erneuert und die OP-Code-Feldinformation wird durch die Erneuerung der Datenfeldinformation nicht verändert. In vorteilhafter Weise wird die Ausführung des Programms nicht unterbrochen, um die Datenfeldinformation zu erneuern.
- Es ist wichtig, daß die Speichereinheit 116 Information innerhalb eines Systemtaktzyklus (Leitung 120) zu einer anderen Zeit schreiben kann, als sie Information liest. Insbesondere werden, wie es in dem Zeitablaufdiagramm gemäß Fig. 3 dargestellt ist, Eingangsdaten in die Dual-Port- Speicher 116 zu Beginn des Systemtaktzyklus geschrieben und Ausgangsdaten sind für das Lesen aus der Speichereinheit 116 am Ende des Systemtaktzyklus verfügbar. Ein Programm wird also ausgeführt durch Lesen von Datenfeldinformation aus der Dual-Port-Speichereinheit 116 einmal pro Taktzyklus, das heißt am Ende eines Taktzyklus. Gemäß der Erfindung kann jedoch diese Information zu Beginn eines Taktzyklus erneuert werden, ohne daß der periodische Zugriffsvorgang auf Information beeinflußt wird, das heißt ohne die Programmausführung zu beeinflussen.
- Wie in Fig. 3 dargestellt, werden für das Schreiben von neuen Daten (beispielsweise der Daten A) und das Lesen der Daten A innerhalb eines einzelnen Taktzyklus die Daten A an den Dateneingangs- (DI-) Anschluß der Speichereinheit 116 gegeben, während die Adresse, in welche diese Daten geschrieben werden sollen, an dem "W addr"-Anschluß der Speichereinheit 116 angelegt wird. Sobald die Schreibeadresse und die Daten vorhanden sind, aktiviert die Most-Schnittstelle 102 die Schreibfreigabeleitung 126 für das Datenfeld (write-enable-Signal in Fig. 3) und die Daten werden an die angegebene Schreibeadreßstelle innerhalb der Speichereinheit 116 geschrieben. Nach einer relativ kurzen Zeitdauer, während welcher die neu geschriebenen Daten nicht gültig sind, das heißt nach einer Beruhigungszeit, wird eine Leseadresse an dem "R addr"-Anschluß der Dual-Port- Speichereinheit 116 angelegt. Die Leseadresse kann, muß jedoch nicht notwendigerweise, dieselbe Adresse sein wie die Schreibeadresse, dis verwendet wurde, um die Daten A zu schreiben.
- Nach der Deaktivierung der Schreibfreigabeleitung 126 für das Datenfeld werden die Daten (Daten A) von der Speicheradresse gelesen, die gerade an dem "R addr"-Anschluß anliegt, das heißt die Daten A werden während desselben Taktzyklus gelesen, währenddessen die Daten in den Speicher geschrieben werden. Diese Daten werden in einem Pufferregister innerhalb der Speichereinheit verriegelt bzw. zwischengespeichert und dann als eine Ausgangsgröße des Datenausgangs- (DO-) Anschlusses abgeschickt bei Erscheinen des nächsten Taktzyklus. Auf diese Weise können die Daten an irgendeiner beliebigen Stelle innerhalb der Speichereinheit innerhalb eines einzigen Taktzyklus geschrieben und gelesen werden. Demnach können innerhalb des nächsten Taktzyklus, das heißt während die Daten A als eine Ausgangsgröße an dem DO-Anschluß erzeugt werden, Daten B erneuert und aus der Speichereinheit gelesen werden. Lm Anschluß daran können Daten innerhalb der Speichereinheit mit jedem neuen Taktzyklus erneuert werden. Konsequenterweise können unter Verwendung der vorliegenden Erfindung Daten, beispielsweise Daten B, C, D, E usw. wahlweise an bestimmten Adressen innerhalb der Speichereinheit erneuert werden, ohne daß die periodischen Datenzugriffe am Ende jedes Taktzyklus unterbrochen werden, das heißt ohne Unterbrechung der Programmausführung.
- In diesem Beispiel wird Information in einem Datenfeld auf den neuesten Stand gebracht und innerhalb eines einzigen Taktzyklus werden diese erneuerten Daten aus der Speichereinheit gelesen. Die Information an einer bestimmten Speicherstelle kann jedoch auch zwischen periodischen Zugriffen auf die Speichereinheit erneuert werden, obwohl auf die erneuerten Daten möglicherweise nicht bis zu irgendeinem späteren Zeitpunkt während der Programmausführung zugegriffen wird. Auch wenn der Zugriff auf die erneuerten Daten bis zu einem späteren Taktzyklus verzögert wird, erneuert die Erfindung dennoch die Daten, ohne die Programmausführung zu unterbrechen, das heißt die Erneuerung wird zwischen den periodischen Zugriffen auf die Speichereinheit durchgeführt. Konsequenterweise wird gemäß der Erfindung die Datenfeldinformation eines Mikrocodebefehls ohne Unterbrechung der Programmausführung erneuert.
- Fig. 3 stellt eine allgemeine Anzeige bzw. Darstellung des relativen Zeitablaufs der verschiedenen Signale bereit, welche den Dual-Port-Speicher steuern. Diese Signale sollen jedoch nur dem Zweck der Anschauung dienen. Um die Erfindung zu implementieren, sollte der Leser daher die Gerätespezifikation für den speziellen Dual-Port-Speicher zu Rate ziehen, der für die Implementierung der vorliegenden Erfindung verwendet wird. Eine beispielhafte Dual-Port-Speichereinheit, die in der Lage ist, die Funktionen auszuführen, die für die Implementierung der vorliegenden Erfindung notwendig sind, ist das von Cyprus Semiconductor in San Jose, Kalifornien, hergestellte Modell CY7C130/CY7C131.
- Das Datenfeld ist hier so diskutiert worden, als ob es einen tatsächlichen Datenwert enthielte. Alternativ kann das Datenfeld auch eine Adresse innerhalb des Hauptspeichers oder eine Adresse eines speziellen Registers innerhalb des Computers enthalten, welches seinerseits den aktuellen bzw. eigentlichen Datenwert enthält. Die Datenfelderneuerung würde demnach diese Adreßinformation verändern, unter welcher die neuen Daten gefunden werden können, anstatt den Datenwert selbst zu verändern. Auch wenn hier eine Ausführungsform, die die Lehre der vorliegenden Erfindung, wie sie hier beansprucht wurde, beinhaltet, dargestellt und im Einzelnen beschrieben worden ist, können die Fachleute auf diesem Gebiet sich jedoch in einfacher Weise viele andere abweichende Ausführungsformen vorstellen, die dennoch diese Lehre beinhalten.
Claims (10)
1. Computer für die Ausführung eines Computerprogramms, wobei der Computer eine
Vorrichtung zum Erneuern von Datenfeldinformation innerhalb eines Mikrocode-Befehls umfaßt, der
einen Abschnitt des Computerprogramms aufweist, ohne daß die Ausführung des
Computerprogramms unterbrochen wird, wobei der Mikrocode-Befehl ein Operationscodefeld
enthält, das Operationscodeinformation definiert, sowie ein Datenfeld enthält, welches
Datenfeldinformation enthält, wobei die Vorrichtung aufweist:
eine erste Speichereinrichtung (114), um die Operationscodeinformation unter einer Adresse
innerhalb der ersten Speichereinrichtung zu speichern,
eine zweite Speichereinrichtung (116), um die Datenfeldinformation unter einer Adresse
innerhalb der zweiten Speichereinrichtung (116) zu speichern,
Einrichtungen (104), die mit den ersten und zweiten Speichereinrichtungen (114, 166)
verbunden sind, um periodisch auf die Operationscodeinformation und die
Datenfeldinformation zuzugreifen, um einen Mikrocode-Befehl für die Verwendung durch den
Computer zu bilden, und
Einrichtungen (128, 126, 122), die mit der zweiten Speichereinrichtung (116) verbunden
sind, um zwischen periodischen Zugriffen auf die zweite Speichereinrichtung (116) durch die
Zugriffseinrichtung (104) die in der zweiten Speichereinrichtung (116) gespeicherte
Datenfeldinformation zu verändern, wobei die Computerprogrammausführung nicht unterbrochen
wird, um die Datenfeldinformation zu ändern.
2. Vorrichtung nach Anspruch 1, wobei die zweite Speichereinrichtung (116) eine
Speichereinheit (116) mit Doppelanschluß (dual-port) aufweist.
3. Vorrichtung nach Anspruch 2, wobei die Speichereinrichtung (116) mit Doppelanschluß
aufweist:
einen ersten Anschluß (RADDR), um eine Leseadresse von der Zugriffseinheit (104)
aufzunehmen,
einen zweiten Anschluß (WADDR), um eine Schreibeadresse von der Zugriffseinrichtung
(122) aufzunehmen,
einen Dateneingangs- (DI)-Anschluß, um die Datenfeldinformation von der
Änderungseinrichtung (126, 128) aufzunehmen,
einen Datenausgangsanschluß (DO), um Datenfeldinformation, die unter der Leseadresse
angeordnet ist, an den Computer zu liefern, und
einen Schreibfreigabe-(WE)-Anschluß, der, wenn er freigeschaltet wird, die erneuerte
Datenfeldinformation an dem Eingangsanschluß unter einer Position speichert, die durch die
Schreibeadresse an dem zweiten Anschluß definiert ist, um die aktuell unter der
Schreibeadresse gespeicherte Datenfeldinformation zu erneuern bzw. auf den neusten Stand zu
bringen.
4. Vorrichtung nach Anspruch 1, wobei die erste Speichereinrichtung (114) aufweist:
eine Speichereinrichtung (114) mit Einzelanschluß, um in dem Befehl enthaltene
Operationscodeinformation zu speichern, und
wobei die zweite Speichereinrichtung (116) weiterhin aufweist:
eine Speichereinrichtung (116) mit Doppelanschluß, um die in den Mikrocodeanweisungen
bzw. -befehlen enthaltene Datenfeldinformation zu speichern, wobei die
Datenfeldinformation zwischen periodischen Zugriffen auf die ersten und zweiten Speichereinrichtungen (114,
und 116) veränderbar ist.
5. Vorrichtung nach Anspruch 4, wobei die Speichereinrichtung (116) mit Doppelanschluß
aufweist:
einen ersten Anschluß (RADDR) für das Aufnehmen einer Leseadresse aus der
Zugriffseinrichtung (104),
einen zweiten Anschluß (WADDR) für die Aufnahme einer Schreibadresse von der
Zugriffseinrichtung (122),
einen Dateneingangsanschluß (DI) für die Aufnahme der Datenfeldinformation von der
Änderungseinrichtung (126, 128),
einen Datenausgangsanschluß (DO) für die Zufuhr der Datenfeldinformation zu dem
Computer, die unter der Leseadresse angeordnet ist, und
einen Schreibfreigabeanschluß (WE), welcher, wenn er vorgebracht bzw. freigeschaltet wird,
die Datenfeldinformation an dem Dateneingangsanschluß (DI) unter einer Position speichert,
welche durch die Schreibeadresse an dem zweiten Anschluß definiert wird, um die
Datenfeldinformation, die gerade unter der Schreibadresse gespeichert ist, zu erneuern bzw. auf
den neuesten Stand zu bringen.
6. Verfahren zum Erneuern von Datenfeldinformation innerhalb eines Mikrocode-Befehls eines
Computerprogramms, welches innerhalb eines Computer ausgeführt wird, ohne daß die
Ausführung des Computerprogramms unterbrochen wird, wobei der Mikrocode-Befehl ein
Operationscodefeld enthält, welches Operationscodeinformation hat, sowie ein Datenfeld
enthält, welches Datenfeldinformationen hat, wobei das Verfahren die Schritte aufweist:
Speichern der Operationscodeinformation unter einer Adresse innerhalb eines ersten
Speichers (114),
Speichern der Datenfeldinformation unter einer Adresse innerhalb eines zweiten Speichers
(116),
periodisches Zugreifen auf den Operationscode und auf die Datenfeldinformation, um einen
Mikrocode-Befehl für die Verwendung durch den Computer zu bilden, und
zwischen den periodischen Zugriffen auf die ersten und zweiten Speicher (114, und 116)
Zugreifen auf die Datenfeldinformation, die in dem zweiten Speicher (116) gespeichert ist,
wobei die Computerprogrammausführung für die Änderung der Datenfeldinformation nicht
unterbrochen wird.
7. Verfahren nach Anspruch 6, wobei der Schritt des Speicherns der Datenfeldinformation und
der Schritt des Änderns der Datenfeldinformation innerhalb eines einzelnen Taktzyklus des
Computers erfolgt.
8. Verfahren nach Anspruch 7, wobei der Änderungsschritt die Schritte aufweist:
Anlegen einer Schreibeadresse an einem Schreibeadreßanschluß (WADDR) des zweiten
Speichers (116),
Anlegen von Datenfeldinformation an dem Dateneingangsanschluß (DI) des zweiten
Speichers (116), und
zwischen periodischen Zugriffen auf die Datenfeldinformation innerhalb des zweiten
Speichers Anlegen eines Schreibfreigabesignals an einem Schreibfreigabeanschluß (WE) des
zweiten Speichers (116), wobei die Datenfeldinformation in die Schreibeadresse
eingeschrieben wird, um Datenfeldinformation auf den neuesten Stand zu bringen, die gerade
unter der Schreibeadresse lokalisiert ist.
9. Verfahren nach Anspruch 8, welches weiterhin den Schritt aufweist, daß nach dem Auftreten
eines nächsten periodischen Zugriffs auf die ersten und zweiten Speicher (114 und 116) auf
die neue Information zugegriffen wird.
10. Verfahren nach Anspruch 8, wobei der Änderungsschritt und der Schritt des Zugreifens auf
die neue Information innerhalb eines einzelnen Taktzyklus des Computers stattfinden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22848294A | 1994-04-15 | 1994-04-15 | |
PCT/US1995/004310 WO1995028672A1 (en) | 1994-04-15 | 1995-04-14 | Apparatus and method for updating information in a writable microcode control store |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69528824D1 DE69528824D1 (de) | 2002-12-19 |
DE69528824T2 true DE69528824T2 (de) | 2003-07-03 |
Family
ID=22857355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69528824T Expired - Fee Related DE69528824T2 (de) | 1994-04-15 | 1995-04-14 | Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher |
Country Status (7)
Country | Link |
---|---|
US (1) | US5581720A (de) |
EP (1) | EP0755538B1 (de) |
JP (1) | JPH09512119A (de) |
KR (1) | KR100391041B1 (de) |
CA (1) | CA2186862C (de) |
DE (1) | DE69528824T2 (de) |
WO (1) | WO1995028672A1 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151090A (en) * | 1995-05-31 | 2000-11-21 | Casio Computer Co., Ltd. | LCD using liquid crystal of ferroelectric and/or antiferroelectric phase having pretilt angle of 1 degree or less |
US5832277A (en) * | 1996-03-08 | 1998-11-03 | 3 Com Corporation | System for arbitrating demand on memory during configuration of a computer add-on card |
US5761468A (en) * | 1996-05-15 | 1998-06-02 | Sun Microsystems Inc | Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions |
US5887159A (en) * | 1996-12-11 | 1999-03-23 | Digital Equipment Corporation | Dynamically determining instruction hint fields |
US6654879B1 (en) | 1997-01-30 | 2003-11-25 | Northbrook Services | Method and apparatus for analyzing code for out-of-range data involving base and seed tables/lists |
US5828890A (en) * | 1997-01-30 | 1998-10-27 | Northbrook Services | System for interrupting program operation when an out-of-range value is encountered to correct a data value |
US6823445B2 (en) * | 2001-07-31 | 2004-11-23 | International Business Machines Corporation | Limiting concurrent modification and execution of instructions to a particular type to avoid unexpected results |
US7543287B2 (en) * | 2005-06-30 | 2009-06-02 | Intel Corporation | Using a block device interface to invoke device controller functionality |
US9201595B2 (en) * | 2012-09-19 | 2015-12-01 | Oracle International Corporation | High speed read access memory array with variation tolerant bypass scheme with protection circuit |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3889242A (en) * | 1971-10-04 | 1975-06-10 | Burroughs Corp | Modifiable computer function decoder |
FR2256705A5 (de) * | 1973-12-27 | 1975-07-25 | Cii | |
US4125877A (en) * | 1976-11-26 | 1978-11-14 | Motorola, Inc. | Dual port random access memory storage cell |
AU3329178A (en) * | 1977-03-28 | 1979-08-23 | Data General Corp | A micro-control storage system |
US4204252A (en) * | 1978-03-03 | 1980-05-20 | Digital Equipment Corporation | Writeable control store for use in a data processing system |
US4217639A (en) * | 1978-10-02 | 1980-08-12 | Honeywell Information Systems Inc. | Logic for generating multiple clock pulses within a single clock cycle |
US4360869A (en) * | 1980-04-15 | 1982-11-23 | Honeywell Information Systems Inc. | Control store organization for a data processing system |
US4901235A (en) * | 1983-10-28 | 1990-02-13 | Data General Corporation | Data processing system having unique multilevel microcode architecture |
EP0156307A3 (de) * | 1984-03-30 | 1988-04-20 | Four-Phase Systems Inc. | Pipeline-Prozessor mit Doppelcachespeichern |
GB2161001B (en) * | 1984-06-25 | 1988-09-01 | Rational | Distributed microcode address apparatus for computer |
US4825363A (en) * | 1984-12-05 | 1989-04-25 | Honeywell Inc. | Apparatus for modifying microinstructions of a microprogrammed processor |
JPS61170828A (ja) * | 1985-01-24 | 1986-08-01 | Hitachi Ltd | マイクロプログラム制御装置 |
ATE89946T1 (de) * | 1987-01-23 | 1993-06-15 | Siemens Ag | Halbleiterspeicher mit wahlfreiem zugriff ueber zwei getrennte ein/ausgaenge. |
US4862407A (en) * | 1987-10-05 | 1989-08-29 | Motorola, Inc. | Digital signal processing apparatus |
US4903220A (en) * | 1988-01-27 | 1990-02-20 | Sun Electric Corporation | Dual ported speed up memory in ROM location for engine analyzer |
US4933909A (en) * | 1988-12-19 | 1990-06-12 | Bull Hn Information Systems Inc. | Dual read/write register file memory |
US5014247A (en) * | 1988-12-19 | 1991-05-07 | Advanced Micro Devices, Inc. | System for accessing the same memory location by two different devices |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
US5212693A (en) * | 1990-08-02 | 1993-05-18 | Ibm Corporation | Small programmable array to the on-chip control store for microcode correction |
US5144242A (en) * | 1990-08-23 | 1992-09-01 | The Regents Of The University Of California | Continually loadable microcode store for MRI control sequencers |
US5465361A (en) * | 1990-09-10 | 1995-11-07 | The Regents Of The University Of California | Microcode linker/loader that generates microcode sequences for MRI sequencer by modifying previously generated microcode sequences |
JPH05100647A (ja) * | 1990-09-28 | 1993-04-23 | Fuji Photo Film Co Ltd | 画像表示装置 |
USH1291H (en) * | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
US5386532A (en) * | 1991-12-30 | 1995-01-31 | Sun Microsystems, Inc. | Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels |
-
1995
- 1995-03-10 US US08/402,311 patent/US5581720A/en not_active Expired - Lifetime
- 1995-04-14 CA CA002186862A patent/CA2186862C/en not_active Expired - Fee Related
- 1995-04-14 DE DE69528824T patent/DE69528824T2/de not_active Expired - Fee Related
- 1995-04-14 WO PCT/US1995/004310 patent/WO1995028672A1/en active IP Right Grant
- 1995-04-14 JP JP7527015A patent/JPH09512119A/ja active Pending
- 1995-04-14 KR KR1019960705808A patent/KR100391041B1/ko not_active IP Right Cessation
- 1995-04-14 EP EP95916239A patent/EP0755538B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2186862A1 (en) | 1995-10-26 |
EP0755538A1 (de) | 1997-01-29 |
KR970702522A (ko) | 1997-05-13 |
US5581720A (en) | 1996-12-03 |
DE69528824D1 (de) | 2002-12-19 |
CA2186862C (en) | 2001-11-20 |
EP0755538B1 (de) | 2002-11-13 |
KR100391041B1 (ko) | 2003-09-29 |
JPH09512119A (ja) | 1997-12-02 |
WO1995028672A1 (en) | 1995-10-26 |
EP0755538A4 (de) | 1998-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
DE68918754T2 (de) | Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. | |
DE69030905T2 (de) | Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit | |
DE69227664T2 (de) | Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor | |
DE3685863T2 (de) | Rechnersystem zur steuerung virtueller maschinen. | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE68926936T2 (de) | Vorrichtung und Technik für Burstprogrammierung | |
DE3587591T2 (de) | Mikroprozessor für Forth-ähnliche Sprache. | |
DE3853759T2 (de) | Datenprozessor mit zwei Betriebsmoden. | |
DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE2953861C2 (de) | ||
DE69033131T2 (de) | Logikvorrichtung und Verfahren zur Verwaltung einer Befehlseinheit in einer Pipeline-Verarbeitungseinheit | |
DE2719635A1 (de) | Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE3687867T2 (de) | Mikrorechner. | |
DE3687893T2 (de) | Steuersystem fuer programmsprungoperation. | |
DE3751108T2 (de) | Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. | |
DE69732793T2 (de) | Acht-bit-mikrokontroller mit risc-architektur | |
DE602004010399T2 (de) | Neuadressierbare virtuelle dma-steuer und statusregister | |
DE69427512T2 (de) | Direktspeicherzugriffssteuerung | |
DE69528824T2 (de) | Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher | |
DE68927313T2 (de) | Operandenspezifiererverarbeitung | |
DE69130233T2 (de) | Verfahren und gerät um ein sperrungscache einzusetzen | |
DE69033031T2 (de) | Programmierbares Steuergerät |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: SEDNA PATENT SERVICES, LLC (N. D. GES. D. STAATES |
|
8339 | Ceased/non-payment of the annual fee |