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-kontrollspeicher

Info

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
Application number
DE69528824T
Other languages
English (en)
Other versions
DE69528824D1 (de
Inventor
Timothy Kaba
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.)
Sedna Patent Services (n D Ges D Staates LLC
Original Assignee
Diva Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Diva Systems Corp filed Critical Diva Systems Corp
Application granted granted Critical
Publication of DE69528824D1 publication Critical patent/DE69528824D1/de
Publication of DE69528824T2 publication Critical patent/DE69528824T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation 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.
DE69528824T 1994-04-15 1995-04-14 Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher Expired - Fee Related DE69528824T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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