[go: up one dir, main page]

DE69804108T2 - Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben - Google Patents

Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben

Info

Publication number
DE69804108T2
DE69804108T2 DE69804108T DE69804108T DE69804108T2 DE 69804108 T2 DE69804108 T2 DE 69804108T2 DE 69804108 T DE69804108 T DE 69804108T DE 69804108 T DE69804108 T DE 69804108T DE 69804108 T2 DE69804108 T2 DE 69804108T2
Authority
DE
Germany
Prior art keywords
command
word
instruction
storage
words
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 - Lifetime
Application number
DE69804108T
Other languages
English (en)
Other versions
DE69804108D1 (de
Inventor
A. Manning
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE69804108D1 publication Critical patent/DE69804108D1/de
Application granted granted Critical
Publication of DE69804108T2 publication Critical patent/DE69804108T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Landscapes

  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Description

    GEBIET DER TECHNIK
  • Diese Erfindung bezieht sich auf in Rechnersystemen verwendete Speichervorrichtungen und insbesondere auf einen zur raschen Verarbeitung von Befehlen in Speichervorrichtungen verwendeten Eingabepuffer.
  • HINTERGRUND DER ERFINDUNG
  • Zu herkömmlichen Rechnersystemen gehören ein (nicht gezeigter) Prozessor, der an eine Vielfalt von Speichervorrichtungen, darunter Festspeicher (read-only memories, ROM), die herkömmlicherweise Instruktionen für den Prozessor speichern, angekoppelt ist, sowie ein Systemspeicher, in den der Prozessor Daten schreiben und aus dem der Prozessor Daten herauslesen kann. Der Prozessor kann auch mit einem externen Cache- Speicher in Verbindung treten, der allgemein ein statischer Direktzugriffsspeicher (static random access memory, SRAM) ist. Der Prozesser 12 steht auch mit Eingabevorrichtungen, Ausgabevorrichtungen und Datenspeichervorrichtungen in Verbindung.
  • Prozessoren funktionieren allgemein bei einer verhältnismässig hohen Geschwindigkeit. Prozessoren wie die Pentium®- und Pentium Pro®-Mikroprozessoren sind derzeit verfügbar, die bei Taktgeschwindigkeiten von mindestens 200 MHz arbeiten. Jedoch sind mit Ausnahme des SRAM-Caches die übrigen Komponenten existierender Rechnersysteme nicht in der Lage, bei der Geschwindigkeit des Prozessors zu arbeiten. Aus diesem Grunde werden die Systemspeichervorrichtungen wie auch die Eingabevorrichtungen, Ausgabevorrichtungen und Datenspeichervorrichtungen nicht direkt an den Prozessorbus angekoppelt. Stattdessen werden die Systemspeichervorrichtungen allgemein über einen Speichersteuerteil, eine Busbridge oder ähnliche Vorrichtung an den Prozessorbus angekoppelt, während die Eingabevorrichtungen, Ausgabevorrichtungen und Datenspeichervorrichtungen über eine Busbridge an den Prozessorbus angekoppelt werden. Der Speichersteuerteil erlaubt es den Systemspeichervorrichtungen, bei einer niedrigeren Taktfrequenz zu arbeiten, nämlich einer Frequenz, die wesentlich niedriger als die Taktfrequenz des Prozessors ist. Ähnlich erlaubt es die Busbridge den Eingabevorrichtungen, Ausgabevorrichtungen und Datenspeichervorrichtungen, bei einer wesentlich niedrigeren Frequenz zu arbeiten. Derzeit kann zum Beispiel ein Prozessor, der eine Taktfrequenz von 200 MHz hat, auf ein Motherboard montiert werden, das eine Taktfrequenz von 66 MHz hat, um die Systemspeichervorrichtungen und anderen Komponenten zu steuern.
  • Zugriff auf den Systemspeicher ist für den Prozessor eine häufige Operation. Die für einen zum Beispiel mit 200 MHz arbeitenden Prozessor dafür erforderliche Zeit, Daten aus einer Systemspeichervorrichtung herauszulesen, die zum Beispiel mit 66 MHz arbeitet, oder Daten in diese zu schreiben, drückt die Geschwindigkeit, mit der der Prozessor seine Operationen ausführen kann, stark herab. Daher sind grosse Anstrengungen unternommen worden, um die Arbeitsgeschwindigkeit von Systemspeichervorrichtungen zu erhöhen.
  • Systemspeichervorrichtungen sind allgemein dynamische Direktzugriffsspeicher (dynamic random access memories, DRAM). Anfänglich waren DRAM asynchron und arbeiteten somit nicht einmal bei der Taktgeschwindigkeit des Motherboards. Für einen Zugriff auf asynchrone DRAM ist es tatsächlich oft erforderlich gewesen, dass Wartezustände erzeugt wurden, um den Prozessor anzuhalten, bis der DRAM eine Speicherübertragung beendet hatte. Jedoch ist die Arbeitsgeschwindigkeit von asynchronen DRAM erfolgreich durch solche Neuerungen wie Burstmode- und Paging-DRAM erhöht worden, die nicht verlangen, dass dem DRAM für jeden Speicherzugriff eine Adresse zur Verfügung gestellt wird. In jüngerer Zeit sind synchrone dynamische Direktzugriffsspeicher (synchronous dynamic random access memories, SDRAM) entwickelt worden, die die Datenübertragung mit Pipelines bei der Taktgeschwindigkeit des Motherboards erlauben. Jedoch sind selbst SDRAM nicht in der Lage, bei der Taktgeschwindigkeit derzeit verfügbarer Prozessoren zu arbeiten. Daher können SDRAM nicht direkt mit dem Prozessorbus verbunden werden, sondern müssen über einen Speichersteuerteil, eine Busbridge oder ähnliche Vorrichtung an den Prozessorbus angeschlossen werden. Die Unterschiede zwischen der Arbeitsgeschwindigkeit des Prozessors und der Arbeitsgeschwindigkeit der SDRAM begrenzen weiterhin die Geschwindigkeit, mit der Prozessoren Operationen zu Ende bringen können, für die ein Zugriff auf einen Systemspeicher erforderlich ist.
  • Eine Lösung für diese Ungleichheit der Arbeitsgeschwindigkeiten ist in Gestalt einer als "SyncLink" bekannten Rechnerarchitektur vorgeschlagen worden. In der Sync- Link-Architektur wird der Systemspeicher direkt durch den Prozessorbus an den Prozessor angekoppelt. SyncLink-Speichervorrichtungen empfangen Befehlspakete, die sowohl Steuer- als auch Adressinformation enthalten, statt zu verlangen, dass dem Systemspeicher getrennte Adressen- und Steuersignale zur Verfügung gestellt werden. Die SyncLink- Speichervorrichtung liefert oder empfängt Daten dann auf einem Datenbus, der direkt an den Datenbusteil des Prozessorbusses angekoppelt ist.
  • Ein Beispiel eines Rechnersystems 10, das eine SyncLink-Architektur mit in Pakete unterteilten DRAM verwendet, ist in Fig. 1 gezeigt. Das Rechnersystem 10 schliesst einen Prozessor 12 ein, der einen Prozessorbus 14 hat, der an drei in Pakete unterteilte dynamische RAM- oder SyncLink-DRAM- (SLDRAM-) Vorrichtungen 16a-c angekoppelt ist. Zum Rechnersystem 10 gehören auch eine oder mehrere Eingabevorrichtungen 20 wie eine Tastatur oder eine Maus, die über eine Busbridge 22 sowie einen Erweiterungsbus 24 wie einen ISA- (industry standard architecture) Bus oder einen PCI- (peripheral component interconnect) Bus an den Prozessor 12 angekoppelt sind. Die Eingabevorrichtungen 20 erlauben es einem Betreiber oder einer elektronischen Vorrichtung, Daten in das Rechnersystem 10 einzugeben. Eine oder mehrere Ausgabevorrichtungen 30 sind an den Prozessor 12 angekoppelt, um durch den Prozessor 12 erzeugte Daten anzuzeigen oder anderweitig auszugeben. Die Ausgabevorrichtungen 30 sind über den Erweiterungsbus 24, die Busbridge 22 und den Prozessorbus 14 an den Prozessor 12 angekoppelt. Beispiele von Ausgabevorrichtungen 24 sind unter anderem Drucker und Videosichtgeräte. Eine oder mehrere Datenspeichervorrichtungen 38 sind über den Prozessorbus 14, die Busbridge 22 und den Erweiterungsbus 24 an den Prozessor 12 angekoppelt, um Daten in (nicht gezeigten) Speichermedien zu speichern oder daraus wiederzugewinnen. Beispiele von Speichervorrichtungen 38 und Speichermedien sind unter anderem Festplattenlaufwerke, Diskettenlaufwerke, Magnetbandkassetten und CD-ROM- (compact-disk read-only memory) Laufwerke.
  • Im Betrieb tritt der Prozessor 12 über den Prozessorbus 14 mit den Speichervorrichtungen 16a-c in Verbindung, indem er Befehlspakete, die sowohl Steuer- als auch Adressinformation enthalten, an die Speichervorrichtungen 16a-c schickt. Daten werden durch einen Datenbusteil des Prozessorbusses 14 zwischen dem Prozessor 12 und den Speichervorrichtungen 16a-c eingekoppelt. Obwohl alle Speichervorrichtungen 16a-c an die gleichen Leiter des Prozessorbusses 14 angekoppelt sind, liest oder schreibt zu einer gegebenen Zeit jeweils nur eine Speichervorrichtung 16a-c Daten, wodurch Buskonflikte am Prozessorbus 14 vermieden werden. Buskonflikte werden vermieden, indem jede der Speichervorrichtungen 16a-c und die Busbridge 22 eine eindeutige Kennung haben und das Befehlspaket einen Kennungscode enthält, der nur eine dieser Komponenten auswählt.
  • Ein typisches Befehlspaket für einen in Pakete unterteilten SyncLink-DRAM ist in Fig. 2 gezeigt. Das Befehlspaket ist aus vier Befehlswörtern gebildet, die je 10 Datenbits enthalten. Das erste Befehlswort W&sub1; enthält sieben Datenbits, die das in Pakete unterteilte DRAM 16a-c identifizieren, das der beabsichtigte Empfänger des Befehlspakets ist. Wie unten erklärt, ist jedes der in Pakete unterteilten DRAM mit einem eindeutigen ID-Code versehen, der mit den sieben ID-Bits im ersten Befehlswort W&sub1; verglichen wird. Somit reagiert nur derjenige in Pakete unterteilte DRAM 16a-c auf das Befehlspaket, der einen ID-Code hat, der mit den sieben ID-Bits des ersten Befehlswortes W&sub1; übereinstimmt, obwohl alle in Pakete unterteilten DRAM 16a-c das Befehlspaket empfangen.
  • Die übrigen drei Bits des ersten Befehlswortes W&sub1; sowie drei Bits des zweiten Befehlswortes W&sub2; bilden einen 6-Bit-Befehl. Typische Befehle werden auf verschiedene Art und Weise gelesen und geschrieben, zum Beispiel als Zugriffe auf Seiten oder Bänke von Speicherzellen. Die übrigen sieben Bits des zweiten Befehlswortes W&sub2; und Teile des dritten und vierten Wortes, W&sub3; und W&sub4;, bilden eine 20-Bit-Adresse, die eine Bank-, Zeilen- und Spaltenadresse für eine Speicherübertragung oder den Beginn einer Mehrbit- Speicherübertragung bezeichnet. In einer Ausführungsform wird die 20-Bit-Adresse in drei Bits einer Bankadresse, 10 Bits einer Zeilenadresse und 7 Bits einer Spaltenadresse unterteilt.
  • Obwohl das in Fig. 2 gezeigte Befehlspaket aus vier Befehlswörtern zusammengesetzt ist, die je bis zu zehn Bits enthalten, versteht es sich, dass ein Befehlspaket eine kleinere oder grössere Anzahl von Befehlswörtern enthalten kann, während jedes Befehlswort eine kleinere oder grössere Anzahl von Bits enthalten kann.
  • Zum Rechnersystem 10 gehören auch eine Anzahl weiterer Komponenten und Signalleitungen, die der Kürze wegen in Fig. 1 weggelassen worden sind. Wie unten erklärt werden wird, empfangen zum Beispiel die Speichervorrichtungen 16a-c auch ein Haupttaktsignal, um interne Zeitablaufsignale zu liefern, ein Datentaktsignal, um Daten in die Speichervorrichtung 16 einzutakten oder aus ihr herauszutakten, sowie ein FLAG- Signal, das den Beginn eines Befehlspakets bezeichnet.
  • Die Speichervorrichtungen 16 werden in Fig. 3 in Gestalt von Blockdiagrammen gezeigt. Jede der Speichervorrichtungen 16 hat einen Taktteiler- und Verzögerungs- Schaltkreis 40, der ein Haupttaktsignal 42 empfängt und eine grosse Anzahl anderer Takt- und Zeitgebersignale erzeugt, um den zeitlichen Ablauf von verschiedenen Arbeitsgängen in der Speichervorrichtung 16 zu steuern. Die Speichervorrichtung 16 enthält auch einen Befehlspuffer 46 und einen Adresserfassungs-Schaltkreis 48, die ein internes Taktsignal CLK, ein Befehlspaket CAO-CA9 auf einem Befehlsbus 50 sowie ein FLAG-Signal auf der Leitung 52 empfangen. Wie oben erläutert, enthält das Befehlspaket Steuer- und Adressinformation für jede Speicherübertragung, während das FLAG-Signal den Beginn eines Befehlspakets identifiziert. Der Befehlspuffer 46 empfängt das Befehlspaket vom Bus 50 und vergleicht zumindest einen Teil des Befehlspakets mit Kennungsdaten aus einem ID- Register 56, um festzustellen, ob das Befehlspaket an die Speichervorrichtung 16a oder an eine andere Speichervorrichtung 16b, c gerichtet ist. Wenn der Befehlsspeicher 46 feststellt, dass der Befehl an die Speichervorrichtung 16a gerichtet ist, dann liefert er den Befehl an einen Befehlsdecoder und -sortierer 60. Der Befehlsdecoder und -sortierer 60 erzeugt eine grosse Anzahl von internen Steuersignalen, um den Betrieb der Speichervorrichtung 16a während einer dem Befehl entsprechenden Speicherübertragung zu steuern.
  • Der Adresseneinfang-Schaltkreis 48 empfängt ebenfalls das Befehlspaket vom Befehlsbus 50 und gibt eine 20-Bit-Adresse aus, die der Adressinformation im Befehl entspricht. Die Adresse wird an einen Adressensortierer 64 geliefert, der eine entsprechende 3-Bit-Bankadresse auf dem Bus 66, eine 11-Bit-Zeilenadresse auf dem Bus 68 und eine 6-Bit-Spaltenadresse auf dem Bus 70 erzeugt.
  • Eines der Probleme herkömmlicher DRAM ist ihre verhältnismässig niedrige Geschwindigkeit, die sich durch die Zeit ergibt, die erforderlich ist, um die Schaltelemente in der DRAM-Anordnung vorzuladen und ins Gleichgewicht zu bringen. Der in Pakete unterteilte DRAM 16a, der in Fig. 3 gezeigt ist, vermeidet dieses Problem weitgehend, indem eine Mehrzahl von Speicherbänken 80 verwendet wird, hier acht Speicherbänke 80a-h. Nach Auslesen eines Speichers aus einer Bank 80a kann die Bank 80a vorgeladen werden, während auf die übrigen Bänke 80b-h zugegriffen wird. Jede der Speicherbänke 80a-h, empfängt eine Zeilenadresse von einem entsprechenden Zeilen-Latch/-Decoder- /-Treiber 82a-h. Alle Zeilen-Latch/-Decoder/-Treiber 82a-h empfangen die gleiche Zeilenadresse von einem Vordecoder 84, der seinerseits eine Zeilenadresse entweder von einem Zeilenadressregister 86 oder einem Wiederholzähler 88 erhält, wie durch einen Multiplexer 90 festgelegt. Jedoch ist zu jeder gegebenen Zeit nur jeweils einer der Zeilen- Latch/-Decoder/-Treiber 82a-h aktiv, wie in Abhängigkeit von Bankdaten aus einem Bankadressenregister 96 durch eine Banksteuerlogik 94 bestimmt.
  • Die Spaltenadresse auf dem Bus 70 wird an einen Spalten-Latch-Decoder 100 angelegt, der seinerseits Ein-Ausgabe-Gattersteuerungs- (I/O gating) signale an einen I/O- Gattersteuerschaltkreis 102 liefert. Der I/O-Gattersteuerschaltkreis 102 ist über Abfrageverstärker (Ampl.) 104 an die Zeilen der Speicherbänke 80a-h angeschlossen. Daten werden über die Abfrageverstärker 104 und den I/O-Gattersteuerschaltkreis 102 zu oder von den Speicherbänken 80a-h in ein Dafenwegsubsystem 108 eingekoppelt, das einen Datenleseweg 110 und einen Datenschreibweg 112 enthält. Der Datenleseweg 110 enthält eine Lese-Latchschaltung 120, die Daten vom I/O-Gattersteuerschaltkreis 102 empfängt und speichert. In der in Fig. 2 gezeigten Speichervorrichtung 16a werden 64 Datenbits an die Lese-Latchschaltung 120 angelegt und darin gespeichert. Die Lese-Latchschaltung liefert dann vier 16-Bit-Datenwörter an einen Multiplexer 122. Der Multiplexer 122 legt sequentiell jedes der 16-Bit-Datenwörter an einen FIFO-Lesepuffer 124 an. Aufeinanderfolgende 16-Bit-Datenwörter werden durch ein Taktsignal, das durch einen programmierbaren Verzögerungsschaltkreis 126 aus einem internen Takt erzeugt wird, durch den FIFO- Puffer getaktet. Der FIFO-Puffer 124 legt sequentiell die 16-Bit-Wörter und zwei Taktsignale (ein Taktsignal und ein Quadratur-Taktsignal) an einen Treiberschaltkreis 128 an, der seinerseits die 16-Bit-Datenwörter an einen Datenbus 130 anlegt, der einen Teil des Prozessorbusses 14 bildet. Der Treiberschaltkreis 128 legt ferner die Taktsignale an einen Taktbus 132 an, so dass eine Vorrichtung wie der Prozessor 12, der die Daten auf dem Datenbus 130 liest, mit den Daten synchronisiert werden kann.
  • Der Datenschreibweg 112 enthält einen Empfangspuffer 140, der an den Datenbus 130 angekoppelt ist. Der Empfangspuffer 140 legt sequentiell 16-Bit-Wörter vom Datenbus 130 an vier Eingaberegister 142 an, deren jedes selektiv durch ein Signal von einem Taktgeneratorschaltkreis 144 aktiviert wird. So speichern die Eingaberegister 142 sequentiell vier 16-Bit-Datenwörter und vereinigen sie zu einem 64-Bit-Datenwort, das an einen FIFO-Schreibpuffer 148 angelegt wird. Der FIFO-Schreibpuffer 148 wird durch ein Signal vom Taktgenerator 144 und einen internen Schreibtakt WCLK getaktet, sequentiell 64-Bit- Schreibdaten an eine Schreib-Latch- und Treiberschaltung 150 anzulegen. Die Schreib- Latch- und Treiberschaltung 150 legt die 64-Bit-Schreibdaten durch die I/O-Gattersteuerschaltung 102 und den Abfrageverstärker 104 an eine der Speicherbänke 80a-h an.
  • Wie oben erwähnt, ist es ein wichtiges Ziel der SyncLink-Architektur, die Datenübertragung zwischen einem Prozessor und einer Speichervorrichtung mit einer bedeutend höheren Geschwindigkeit ablaufen zu lassen. Die Arbeitsgeschwindigkeit eines in Pakete unterteilten DRAM, darunter des in Fig. 3 gezeigten, in Pakete unterteilten DRAM, wird jedoch durch die Zeit begrenzt, die dafür erforderlich ist, an die Speichervorrichtung 16a angelegte Befehlspakete zu empfangen und zu verarbeiten. Genauer müssen die Befehlspakete nicht nur empfangen und gespeichert werden, sondern sie müssen auch decodiert und dazu benutzt werden, eine grosse Vielfalt von Signalen zu erzeugen. Damit die Speichervorrichtung 16a aber bei einer sehr hohen Geschwindigkeit arbeiten kann, müssen die Befehlspakete mit einer entsprechend hohen Geschwindigkeit an die Speichervorrichtung 16a angelegt werden. Mit steigender Arbeitsgeschwindigkeit der Speichervorrichtung 16a werden die Befehlspakete mit einer Geschwindigkeit zur Speichervorrichtung 16a geliefert, die über der Geschwindigkeit liegen kann, mit der der Befehlsspeicher 46 die Befehlspakete verarbeiten kann.
  • Ein Vorgehen, um die Arbeitsgeschwindigkeit eines in Pakete unterteilten DRAM zu erhöhen, wird in der US-Patentanmeldung mit der Laufnummer 08/813 041, eingereicht am 5. März 1997 und als US-Patent Nr. 6 175 894 an Troy A. Manning erteilt, beschrieben. In dem in der Manning-Anmeldung beschriebenen DRAM werden die vier 10- Bit-Befehlswörter im Befehlspaket sequentiell durch ein vierstufiges 10-Bit-Schieberegister geschoben. Nachdem die vier Befehlswörter in das Schieberegister geschoben worden sind, werden sie gleichzeitig zur Verarbeitung durch den Befehlsdecoder und - sortieier 60 und den Adressensortierer 64 zu einem Speicherregister verschoben. Die Verarbeitung der Befehlswörter beginnt aber nicht eher, als bis alle vier Befehlswörter im Befehlspaket in das Schieberegister geschoben und in das Speicherregister übertragen worden sind. In dem in Pakete unterteilten DRAM 16a der Fig. 3 wird auf jeder Flanke des Taktsignals ein Befehlswort in den Befehlsspeicher 46 geschoben, d. h. zwei Befehlswörter pro Taktperiode. Somit gibt es eine Verzögerung um zwei Taktperioden, bevor die Verarbeitung des Befehlspakets beginnen kann. Im Ergebnis liefert das in der Manning- Anmeldung offenbarte, in Pakete unterteilte DRAM eine weniger als optimale Geschwindigkeit.
  • Obwohl sich die vorausgehende Diskussion auf das Bedürfnis nach schnelleren Befehlspuffern in in Pakete unterteilten DRAM richtet, bestehen ähnliche Probleme in anderen Speichervorrichtungen wie asynchronen DRAM und synchronen DRAM, die Steuer- und andere Signale mit einer hohen Geschwindigkeit verarbeiten müssen. Aus den oben erörterten Gründen besteht daher die Gefahr, dass die begrenzte Arbeitsgeschwindigkeit von herkömmlichen Befehlspuffern die obere Arbeitsgeschwindigkeit von Speichervorrichtungen und namentlich von in Pakete unterteilten DRAM ernsthaft limitiert. Es besteht daher ein Bedürfnis nach einem Befehlspuffer, der in der Lage ist, Befehlspakete und andere Speichersteuersignale mit einer höheren Geschwindigkeit zu empfangen und zu verarbeiten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Befehlspuffer für eine Speichervorrichtung wie zum Beispiel einen in Pakete unterteilten DRAM ist dafür eingerichtet, auf einem M-Bit-Bus ein Befehlspaket von N M- Bit-Befehlswörtern zu empfangen. Der Befehlspuffer enthält M Schieberegister, deren jedes einen Ausgangsanschluss, einen Taktanschluss und einen an das entsprechende Bit des M-Bit-Busses angekoppelten Eingangsanschluss hat. Jedes der Schieberegister hat N/Y Stufen, wobei ein entsprechendes, an den Eingangsanschluss jeder Stufe angelegtes Befehlswort einem Taktsignal folgend zu einem Ausgangsanschluss jeder Stufe geschoben wird. Der Befehlspuffer enthält auch Y Speicherregister, wobei Y eine ganze Zahl grösser als eins ist. Jedes der Speicherregister hat (N/Y)*M Speicherzellen, wobei jede Speicherzelle einen Eingangsanschluss, der an den Ausgangsanschluss der entsprechenden Schieberegisterstufe angekoppelt ist, sowie einen Ladeanschluss hat. Jede der Speicherzellen speichert einem an den Ladeanschluss der Speicherzelle angelegten Ladesignal folgend ein Signal am Ausgangsanschluss der entsprechenden Schieberegisterstufe. Ein Steuerschaltkreis erzeugt die Ladesignale, nachdem jedes der N/Y Befehlswörter in die Schieberegister geschoben worden ist. Die Ladesignale werden sequentiell an die Ladeanschlüsse aufeinanderfolgender Speicherregister angelegt, so dass jedes Speicherregister die entsprechenden N/Y Befehlswörter empfängt, während N Befehlswörter in die Schieberegister geschoben werden. Beim Betrieb kann ein in einem der Speicherregister gespeichertes Befehlswort verarbeitet werden, zum Beispiel indem es decodiert oder mit einem Vergleichswort verglichen wird, bevor weitere Befehlswörter in das Schieberegister geschoben und in einem anderen Speicherregister gespeichert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines SyncLink-Architektur verwendenden Rechnersystems.
  • Fig. 2 ist ein Schaubild, das ein typisches Befehlspaket für einen in Pakete unterteilten SyncLink-DRAM zeigt.
  • Fig. 3 ist ein Blockdiagramm eines in Pakete unterteilten DRAM, das im Rechnersystem der Fig. 1 verwendet werden kann.
  • Fig. 4 ist ein Blockdiagramm eines Befehlspuffers, der in dem in Pakete unterteilten DRAM der Fig. 3 verwendet werden kann.
  • Fig. 5 ist ein genaueres Blockdiagramm eines Befehlspuffers, der in dem in Pakete unterteilten DRAM der Fig. 3 verwendet werden kann.
  • Fig. 6 ist ein Zeitablaufdiagramm, das die in einem Teil des Steuerschaltkreises des in Fig. 4 und 5 gezeigten Befehlspuffers verwendeten Taktsignale zeigt.
  • Fig. 7 ist ein Logikdiagramm eines der Schieberegister-Schaltkreise, die in dem in Fig. 4 und 5 gezeigten Befehlspuffer verwendet werden.
  • Fig. 8 ist ein Schaltschema und Logikdiagramm einer Schieberegisterstufe, die im Schieberegister-Schaltkreis der Fig. 7 verwendet wird.
  • Fig. 9 ist ein Zeitablaufdiagramm, das die verschiedenen Signale zeigt, die in der Schieberegisterstufe der Fig. 8 vorliegen.
  • Fig. 10 ist ein Schaltschema und Logikdiagramm eines Schieberegisters und eines Vergleichers, die in dem in Fig. 4 und 5 verwendeten Befehlspuffer verwendet werden.
  • Fig. 11 ist ein Logikdiagramm eines Registerschaltkreises, der in dem in Fig. 10 gezeigten Speicherregister verwendet wird.
  • Fig. 12 ist ein Logikdiagramm eines Decoders, der in dem in Fig. 4 und 5 gezeigten Befehlspuffer verwendet wird.
  • Fig. 13 ist ein Logikdiagramm eines ID-Registers, das in dem in Fig. 4 und 5 gezeigten Befehlspuffer verwendet wird, um für jede Speichervorrichtung eindeutige Kennungsdaten zu speichern.
  • Fig. 14 ist ein Schaltschema eines Latch-Schaltkreises, der im ID-Registerschaltkreis der Fig. 13 verwendet wird.
  • EINGEHENDE BESCHREIBUNG DER ERFINDUNG
  • Eine Ausführungsform eines erfindungsgemässen Befehlspuffers 200 ist in Fig. 4 veranschaulicht. Der Befehlspuffer 200 kann an Stelle des Befehlspuffers 46 in Fig. 3 verwendet werden, und die sich ergebende Speichervorrichtung kann in dem in Fig. 1 gezeigten Rechnersystem verwendet werden. Auf Fig. 4 bezugnehmend, wird ein aus einer Mehrzahl von Paketwörtern bestehendes Befehlspaket über einen Befehlsdatenbus 204 an ein Schieberegister 202 angelegt. Die Breite M des Busses 204 entspricht der Grösse des Schieberegisters 202, während die Anzahl N von Paketwörtern im Befehlspaket einem ganzzahligen Faktor der Anzahl von Stufen des Schieberegisters 202 entspricht. In der in Fig. 4 gezeigten Ausführungsform hat das Schieberegister 202 halb so viele Stufen wie im Befehlspaket vorhanden sind, d. h. zwei Schiebestufen, weil vier Befehlswörter vorhanden sind. Daher empfängt das Schieberegister 202 einem Taktsignal CLK folgend sequentiell zwei Gruppen von je zwei 10-Bit-Paketwörtern. Mit dem Beginn eines Vierwort-Befehlspakets zusammenfallend wird ein FLAG-Signal an einen Steuerschaltkreis 206 angelegt, der zusammen mit dem Schieberegister 202 durch das Signal CLK getaktet wird. Nachdem zwei Befehlswörter in das Schieberegister 202 geschoben worden sind, erzeugt der Steuerschaltkreis 205 ein Signal LOAD1, das an ein erstes Speicherregister 206 angelegt wird. Das erste Speicherregister 206 lädt dann die ersten beiden Befehlswörter vom Schieberegister 202 herunter. Nachdem weitere zwei Befehlswörter in das Schiebergister 202 geschoben worden sind, erzeugt der Steuerschaltkreis 205 ein Signal LOAD2, das an ein zweites Speicherregister 208 angelegt wird. Das zweite Speicherregister 208 lädt dann die zwei verbleibenden Befehlswörter vom Schieberegister 202 herunter. Das erste und zweite Speicherregister 206, 208 geben dann gemeinsam vier 10- Bit-Befehlswörter aus. Der Befehlsdecoder holt die N M-Bit-Befehlswörter einem durch den Steuerschaltkreis 205 auf der Taktflanke erzeugten Signal LOAD DEC folgend aus den Speicherregistern 206, 208, nachdem das Speicherregister 208 geladen worden ist. Der Befehlsdecoder 216 gibt dann decodierte Befehle COMMAND auf einen Befehlsbus 220 aus, und der Vergleicher 214 erzeugt ein Signal CHPSEL auf der Leitung 222. Wie unten erläutert, veranlasst das Signal CHPSEL, wenn es aktiv hoch ist, die den Befehlspuffer 200 enthaltende Speichervorrichtung, eine Funktion auszuführen, die einem oder mehreren der Signale COMMAND auf dem Befehlsbus 220 entspricht.
  • In der in Fig. 4 gezeigten Ausführungsform, in der zwei Gruppen von je zwei 10- Bit-Befehlswörtern in das Schieberegister 202 geschoben werden, empfangen und speichern das erste und zweite Speicherregister 206, 208 40 Bits an Befehlswörtern. Im allgemeineren Falle hat aber das Schieberegister 202 N/Y Stufen, jedes mit einer Breite von M Bits, und Y Speicherregister 206, 208 speichern je N/Y M-Bit-Befehlswörter. In einem Beispiel, bei dem M acht beträgt und Y und N beide vier betragen, hat das Schieberegister 202 eine einzige Stufe mit einer Breite von acht Bits, und vier Speicherregister laden je ein 8-Bit-Befehlswort. In der in Fig. 4 gezeigten Ausführungsform wird ausserdem jedes der Befehlswörter pro CLK-Zyklus durch zwei Stufen des Schieberegisters 202 geschoben.
  • Nachdem das erste Speicherregister 206 geladen worden ist, gibt es die ersten beiden Befehlswörter ununterbrochen an einen Initialisierungsdecoder 210, ein ID-Register 212, einen Vergleicher 214 und einen Befehlsdecoder 216 aus. Die Funktion des Decoders 210, des ID-Registers 212 und des Vergleichers 214 besteht darin, den ID-Teil des ersten Befehlswortes zu prüfen und festzustellen, ob das Befehlswort für die den Befehlspuffer 200 enthaltende Speichervorrichtung bestimmt ist. Genauer wird der Befehlspuffer 200 während einer Initialisierungsroutine mit einem eindeutigen, in einem Initialisierungsbefehlspaket enthaltenen Kennungscode programmiert. Ein Teil einer Initialisierungs- Befehlswortausgabe vom Speicherregister 206 wird an den Decoder 210 angelegt, ein anderer Teil wird an das ID-Register 212 angelegt. Der Teil des Initialisierungsbefehlspakets wird vom Decoder 210 erkannt, der dann ein Latchsignal erzeugt, das das ID- Register 212 veranlasst, den anderen Teil des Initialisierungsbefehlswortes zu speichern. Der Teil des im ID-Register 212 gespeicherten Initialisierungsbefehlswortes, der eindeutig die den Befehlspuffer 200 enthaltende Speichervorrichtung identifiziert. Somit ist der durch den Decoder 210 decodierte Teil des Befehlswortes für alle Speichervorrichtungen gleich, während der an das ID-Register 212 angelegte Teil des Befehlswortes für jede Speichervorrichtung verschieden ist. (Während der Initialisierung werden Mittel zur Verfügung gestellt, durch die verhindert wird, dass alle Speichervorrichtungen gleichzeitig auf das Initialisierungsbefehlspaket reagieren, wie unten erläutert.) Somit enthält nach der Initialisierung das ID-Register 212 Kennungsdaten, die für die Speichervorrichtung eindeutig sind, die den Befehlspuffer 200 enthält.
  • Nachdem die Kennungsdaten im ID-Register 212 gespeichert worden sind, wird ein ID-Teil des Befehlswortes aus dem Speicherregister 206 an den Vergleicher 214 angelegt. Der Vergleicher 214 vergleicht dann den ID-Teil des Befehlswortes mit den im ID- Register 212 gespeicherten Kennungsdaten. Bei Übereinstimmung erzeugt der Vergleicher 214 ein aktives Signal CHPSEL, das die Speichervorrichtung veranlasst, die dem COMMAND auf dem Befehlsbus 220 entsprechende Operation auszuführen. Es ist kennzeichnend, dass der Vergleicher 214 in der Lage ist, den ID-Teil des Befehlswortes mit den im ID-Register gespeicherten Kennungsdaten zu vergleichen, nachdem erst zwei der Befehlswörter in das Schieberegister 202 geschoben worden sind. Dies steht im Gegensatz zu dem in der Manning-Anmeldung beschriebenen Befehlspuffer, bei dem der Vergleicher 214 erst eine Taktperiode später in der Lage ist, den ID-Teil des Befehlspakets mit in einem ID-Register gespeicherten Kennungsdaten zu vergleichen, nachdem alle vier Befehlswörter in das Schieberegister geschoben worden sind. Des weiteren kann der Befehlspuffer 200 beginnen, die ersten drei Befehlsbits zu decodieren, nachdem die, ersten beiden Befehlswörter in das Schieberegister 202 geschoben worden sind. Im Gegensatz dazu ist der in der Manning-Anmeldung beschriebene Befehlspuffer nicht in der Lage, damit zu beginnen, irgendwelche Befehlsbits zu decodieren, ehe alle vier Befehlswörter in ein Schieberegister 202 geschoben worden sind. Indem ein Teil des Befehlspakets verarbeitet wird, bevor das ganze Befehlspaket durch den Befehlspuffer 200 empfangen worden ist, kann der Befehlspuffer die Verarbeitung des Befehlspakets schneller abschliessen.
  • Der Befehlspuffer 200 wird genauer im Blockdiagramm der Fig. 5 gezeigt. Wie in Fig. 5 gezeigt, enthält der Steuerschaltkreis 205 einen Taktschaltkreis 230, der ein Taktsignal CLK und seine Quadratur CLK90 von anderer Stelle in der den Befehlspuffer 200 enthaltenden Speichervorrichtung empfängt. Die Signale CLK und CLK90 werden an ein NOR-Gatter 232 angelegt, dessen Ausgang immer dann hoch ist, wenn CLK und CLK90 beide niedrig sind, wie im Zeitablaufdiagramm der Fig. 6 veranschaulicht. Das Ausgangssignal des NOR-Gatters 232 wird durch einen ersten Inverter 234 angelegt, um ein Signal CLK1 zu erzeugen, und dann durch einen zweiten Inverter 236, um in Signal CLK1* zu erzeugen (das Symbol "*", wenn einem Signalnamen nachgestellt, wird überall verwendet, um das Komplement eines Signales zu bezeichnen).
  • Die Signale CLK90 und CLK werden auch an ein NAND-Gatter 240 angelegt, dessen Ausgang immer dann niedrig ist, wenn CLK und CLK90 beide hoch sind, wie ebenfalls in Fig. 6 veranschaulicht. Der Ausgang des NAND-Gatters 240 wird durch einen Inverter 242 gekoppelt, um ein Signal CLK0 zu erzeugen, und dann durch einen zweiten Inverter 244, um ein Signal CLK0* zu erzeugen. Diese Signale werden überall im Befehlspuffer 200 verwendet, wie eingehend unten erörtert werden wird.
  • Der Steuerschaltkreis 205 enthält auch zwei Schieberegister 246, 248, die in Reihe zueinander geschaltet sind, um ein Achtstufen-Schieberegister zu bilden. Das Schieberegister 246 empfängt das Signal FLAG und schiebt es, den Signalen CLK0, CLK0*, CLK1 und CLK1* folgend, sequentiell durch die vier Stufen des Schieberegister-Schaltkreises 246, sodann durch die vier Stufen des Schieberegister-Schaltkreises 248. Das Signal FLAG wird pro Zyklus der Signale CLK durch zwei Stufen der Schieberegister- Schaltkreise 246, 248 geschoben. Somit werdem pro Taktzyklus zwei aufeinanderfolgende Ausgangssignale F< 0 : 7> der Schieberegister-Schaltkreise 246, 248 sequentiell hoch, wenn FLAG hoch wird.
  • Das in Fig. 5 gezeigte Schieberegister 202 enthält zehn getrennte Schieberegister- Schaltkreise 250a-j, deren jeder ein entsprechendes Bit CA0-CA9 des ankommenden 10- Bit-Paketwortes empfängt. Wie weiter unten erklärt, enthält jeder der Schieberegister- Schaltkreise 250a-j zwei Schieberegisterstufen. Somit sind nach jedem Taktzyklus zwei Befehlsbits CA in jeden Schieberegister-Schaltkreis 250 geschoben worden, und diese Bits stehen als ein 2-Bit-Wort B< 0 : 1> zur Verfügung. Somit geben die zehn Schieberegister- Schaltkreise 250a-j gemeinsam 20 Bits des Befehlspakets aus.
  • Die übrigen Komponenten des Befehlspuffers 200 sind der Decoder 210, das ID- Register 212 sowie das Speicherregister 208 und der Vergleicher 214, die in Fig. 5 als ein Block gezeigt sind. Diese Komponenten funktionieren wie oben erklärt. Das Blockdiagramm der Fig. 5 zeigt jedoch einige zusätzliche Signaleingänge und -ausgänge, nämlich die Eingänge SI und RESET* und den Ausgang SO. Alle diese Signaleingänge und - ausgänge werden während der Initialisierungssequenz verwendet. Konkret wird bei der Initialisierung der Eingang RESET* aktiv niedrig, um vorgegebene Kennungsdaten in das ID-Register 212 zu laden, d. h. die Zahl "63". Wie unten erklärt, löscht das Signal RESET* auch alle 20 Bits jedes Speicherregisters 206, 208, so dass kein falsches COMMAND- Signal auf dem Befehlsbus 220 erscheint. Indem die Kennungsdaten im ID-Register 212 auf einen bekannten Wert, d. h. 63, gesetzt werden, ist der Prozessor in der Lage, nachfolgend Kennungsdaten in das ID-Register 212 zu laden, die für die den Befehlspuffer 200 enthaltende Speichervorrichtung eindeutig sind. Wie oben erwähnt, muss der Vergleicher 214 ein Signal CHPSEL erzeugen, damit die Speichervorrichtung verschiedene Funktionen ausführen kann. Eine von diesen verschiedenen Funktionen ist das Decodieren des Teils des Befehlwortes, der es dem Decoder 210 erlaubt, das Signal LOADID zu erzeugen. Wenn nämlich der Prozessor nicht in der Lage war, ein Befehlspaket, das die Kennungsdaten im ID-Register 212 enthält, an den Befehlspuffer 200 anzulegen, würde der Vergleicher 214 nicht das Ausgangssignal CHPSEL erzeugen. Ohne das Ausgangssignal CHPSEL würde der Decoder 210 nicht das Ausgangssignal LOADID erzeugen, um die Kennungsdaten in das ID-Register 212 zu laden. Das Befehlspaket enthält aber anfänglich das binäre Äquivalent von 63, das durch den Vergleicher 214 vorteilhaft mit den anfänglichen Kennungsdaten "63" im ID-Register 212 verglichen wird. Somit erzeugt der Vergleicher 214 auf diesen Initialisierungsbefehl hin das Signal CHPSEL, das es dem Decoder 210 erlaubt, ein Signal LOADID zu erzeugen, das andere Teile der Befehlswörter als eindeutige Kennungsdaten für den den Befehlspuffer 200 enthaltenden Speicherschaltkreis in das ID-Register 212 holt.
  • Während der Initialisierungsroutine empfangen alle Speichervorrichtungen im Rechnersystem 10 (Fig. 1) das gleiche Befehlspaket und würden daher die gleichen Kennungsdaten in ihre entsprechenden ID-Register 212 einschliessen, wenn es nicht Mittel gäbe, um zu verhindern, dass alle Speichervorrichtungen gleichzeitig auf das Initialisierungsbefehlspaket reagieren. Der Eingang SI und der Ausgang SO stehen für diesen Zweck zur Verfügung. Wenn angenommen wird, dass das Rechnersystem 10 drei Speichervorrichtungen 16 enthält, dann wird der Eingang SI der ersten Speichervorrichtung durch eine Brücke oder ähnliche Mittel ununterbrochen auf hoch gehalten. Ein hoher Eingang SI erlaubt es dem Befehlsdecoder 210, ein Ausgangssignal LOADID zu erzeugen, um einen Teil des Befehlspakets als eindeutige Kennungsdaten in das ID-Register 212 zu laden. Der Ausgang SO der ersten Speichervorrichtung wird an den Eingang SI der zweiten Speichervorrichtung angeschlossen, und der Ausgang SO der zweiten Speichervorrichtung wird an den Eingang SI der dritten Speichervorrichtung angeschlossen. Der Ausgang SO jeder der Speichervorrichtungen ist anfänglich niedrig. Wenn jedoch eindeutige Kenndaten in das ID-Register 212 geladen werden, erzeugt das ID-Register 212 einen hohen Ausgang SO. Angeschlossen an den Eingang SI der nachfolgenden Speichervorrichtung, erlaubt es der hohe Ausgang SO, dass die nachfolgende Speichervorrichtung mit den Kennungsdaten programmiert wird. Somit wird, nachdem die Kennungsdaten in das ID-Register 212 der ersten Speichervorrichtung geladen worden sind, dessen Ausgang SO hoch, wodurch der Eingang SI der zweiten Speichervorrichtung auf hoch gesteuert wird. Im Ergebnis werden die Kennungsdaten im Intialisierungsbefehlspaket in das ID-Register 212 der zweiten Speichervorrichtung geladen, die dann einen hohen Ausgang SO erzeugt. Der hohe Ausgang SO steuert den Eingang SI der dritten Speichervorrichtung auf hoch, wodurch es dem ID-Register 212 der dritten Speichervorrichtung erlaubt wird, Kennungsdaten im dritten Initialisierungsbefehlspaket zu empfangen und zu speichern. Nachdem die eindeutigen Kennungsdaten im ID-Register 212 gespeichert worden sind, reagiert die Speichervorrichtung nicht mehr auf das Initialisierungsbefehlspaket, weil die Kennungsdaten nicht mehr "63" sind, wie es die Kennungsdaten im Initialisierungsbefehlspaket sind.
  • Wie oben unter Bezugnahme auf Fig. 5 erklärt, enthält das in Fig. 3 gezeigte Schieberegister 202 zehn getrennte Schieberegister-Schaltkreise 250a-j, deren jeder ein entsprechendes Bit CA0-CA9 des ankommenden 10-Bit-Paketwortes empfängt. Wie in Fig. 6 veranschaulicht, enthält jedes der Schieberegister 250a-j zwei Schieberegisterstufen 252a, b. Die erste Stufe 252a empfängt das Paketwortbit CA, und sein Ausgang ist an den Eingang der zweiten Stufe 252b sowie an einen externen Ausgang B< 0> angeschlossen. Der Ausgang der zweiten Stufe 252b ist an einen externen Ausgang B< 1> angeschlossen. Die Übertragung vom Eingang zum Ausgang jeder Stufe 252a, b erfolgt als Reaktion auf vier Taktsignale CLK0, CKL0*, CKL1, CKL1*, wie eingehender unten erklärt werden wird. Nach zwei Taktzyklen sind zwei Befehlswortbits CA in die Schieberegisterstufen 252a, b geschoben worden, und beide Bits sind als ein 2-Bit-Wort B< 0 : 1> verfügbar. Somit geben die zehn Schieberegister-Schaltkreise 250a-j gemeinsam zwei 10- Bit-Befehlswörter aus.
  • Jede der Schieberegisterstufen 252 wird genauer in Fig. 8 gezeigt. Jede der Schieberegisterstufen 252 enthält ein erstes Übertragungsgatter 260, ein zweites Übertragungsgatter 264 und eine zweite Latch-Schaltung 266. Das Übertragungsgatter 260 enthält einen ersten Übertragungsgatter-Schaltkreis 270, der durch die Signale CLK0 und CLK0* betrieben wird, sowie einen zweiten Übertragungs-Schaltkreis 272 parallel zum ersten Übertragungs-Schaltkreis 270, der durch die Signale CLK1 und CLK1* betrieben wird. Die erste Latch-Schaltung 262 und die zweite Latch-Schaltung 266 werden durch je ein Paar von Invertern 276, 278 gebildet, die Eingang an Ausgang miteinander verbunden sind. Das zweite Übertragungsgatter 264 wird durch drei PMOS-Transistoren 280, 282, 284 gebildet, die zwischen eine Versorgungsspannung und den Eingang zur zweiten Latch- Schaltung 266 geschaltet sind. Das zweite Übertragungsgatter 264 enthält auch drei NMOS-Transistoren 290, 292, 294, die zwischen den Eingang zur zweiten Latch- Schaltung 266 und Erde in Reihe geschaltet sind. Wie unten erklärt, invertiert das zweite Übertragungsgatter 264 das Signal von der ersten Latch-Schaltung 262. Um die richtige Phasenlage der Befehlssignale CA wieder herzustellen, steht daher ein Inverter 298 am Ausgang der zweiten Latch-Schaltung 266 zur Verfügung.
  • Jeder der Übertragungsgatter-Schaltkreise 270, 272 wird von einem NMOS-Transistor und einem PMOS-Transistor (nicht gezeigt) gebildet, die parallel zueinander angeschlossen sind, wobei das Gatter des NMOS-Transistors an den nicht invertierenden Eingang und das Gatter des PMOS-Transistors an den invertierenden Eingang angeschlossen ist.
  • Der Betrieb der in Fig. 8 gezeigten Schieberegisterstufe 252 wird am besten unter Bezugnahme auf das Zeitablaufdiagramm der Fig. 9 erklärt. Der Übertragungsgatter- Schaltkreis 270 ist immer dann leitend, wenn das Signal CLK0 hoch und das Signal CLK0* niedrig ist. Daher ist der Übertragungsgatter-Schaltkreis 270 in jedem Taktzyklus für eine kurze Zeitdauer leitend, wie mit den der Bezeichnung 270 COND benachbarten Linienabschnitten in Fig. 9 angedeutet. Ähnlich ist das Übertragungsgatter 272 immer dann leitend, wenn das Signal CLK1 niedrig und das Signal CLK1* hoch ist. Wie durch die Linienabschnitte in Fig. 8 gezeigt, ist der Übertragungsgatter-Schaltkreis 272 in jedem Taktzyklus für eine kurze Zeitdauer leitend, wobei der leitende Zeitabschnitt des Übertragungsgatter-Schaltkreises 270 vom leitenden Zeitabschnitt des Übertragungsgatter- Schaltkreises 272 gleichbeabstandet ist. Somit ist das erste Übertragungsgatter 260 zweimal pro Taktzyklus leitend, wobei auf jeden leitenden Zeitabschnitt ein nichtleitender Zeitabschnitt folgt. Immer, wenn das Übertragungsgatter 260 leitend ist, wird die Umkehrung des Befehlsbits CA von der Latch-Schaltung 262 an das zweite Übertragungsgatter 264 ausgegeben.
  • Die Funktion des zweiten Übertragungsgatters 264 besteht darin, den Eingang zur zweiten Latch-Schaltung 266 entweder an Vcc oder Erde zu legen, und zwar zur richtigen Zeit, die vom Wert am Ausgang der ersten Latch-Schaltung abhängt. Die PMOS-Transistoren 280, 282 sind immer dann leitend, wenn CLK0 und CLK1* beide niedrig sind, was zu den Zeiten eintritt, die durch die Linienabschnitte in Nachbarschaft zur Bezeichnung "PMOS" in Fig. 9 bezeichnet werden. Die NMOS-Transistoren 292, 294 sind beide immer dann leitend, wenn das Signal CLK1 und das Signal CLK0* beide hoch sind, was zweimal pro Taktzyklus zu den durch die Linienabschnitte in Nachbarschaft zu "NMOS" in Fig. 9 bezeichneten Zeiten vorkommt. Somit sind die PMOS-Transistoren 280, 282 und die NMOS-Transistoren 292, 294 alle zu den gleichen Zeiten leitend, und diese Zeitabschnitte der Leitfähigkeit wechseln mit Zeitabschnitten der Leitfähigkeit des ersten Übertragungsgatters 260 ab. Der Eingang der zweiten Latch-Schaltung 260 ist während dieser Zeitabschnitte der Leitfähigkeit entweder an Vcc oder an Erde gelegt, je nachdem, ob der Ausgang der ersten Latch-Schaltung 262 den PMOS-Transistor 284 oder den NMOS-Transistor 290 einschaltet (ON). Genauer wird der NMOS-Transistor 290 zünden (ON), wenn der Ausgang der ersten Latch-Schaltung 262 hoch ist, wodurch ein niedriges Signal an den Eingang der zweiten Latch-Schaltung 266 angelegt wird. Wenn der Ausgang der ersten Latch-Schaltung 262 niedrig ist, zündet der PMOS-Transistor 284 (ON), wodurch ein hohes Signal an den Eingang der zweiten Latch-Schaltung 266 angelegt wird. Somit schliesst das zweite Übertragungsgatter 264 den invertierten Ausgang der ersten Latch-Schaltung 262 an den Eingang der zweiten Latch-Schaltung 266 an.
  • Während der Zeit, da das zweite Übertragungsgatter 264 leitend ist, gibt die zweite Latch-Schaltung 266 ein Signal aus, das das gleiche wie der Ausgang der ersten Latch- Schaltung 262 ist, die nach Durchlaufen des. Inverters 298 die gleiche Phase wie das ankommende Befehlsbit CA hat. Der Betrieb des Latch-Schaltkreises 250 wird unter Verwendung eines Befehlsbits CA gezeigt, das anfänglich hoch ist, aber kurz nach t&sub0; niedrig wird. Während des nächsten leitenden Zeitabschnitts des ersten Übertragungsgatters 260 zur Zeit t&sub1; wird das hohe Befehlsbit CA in invertierter Form an den Ausgang der ersten Latch-Schaltung 262 übertragen, wie in Fig. 9 gezeigt. Während des nächsten leitenden Zeitabschnitts des zweiten Übertragungsgatters 264 wird das hohe Signal am Ausgang der Latch-Schaltung 262 an den Ausgang der Latch-Schaltung 266 gelegt, wodurch der Ausgang veranlasst wird, zur Zeit t&sub2; niedrig zu werden. Kurz danach wird das Befehlsbit CA hoch. Im nächsten leitenden Zeitabschnitt der ersten Latch-Schaltung 260 zur Zeit t&sub3; wird dieses hohe Signal durch die erste Latch-Schaltung 260 eingekoppelt, wodurch der Ausgang der zweiten Latch-Schaltung 262 veranlasst wird, niedrig zu werden. Im nächsten leitenden Zeitabschnitt des zweiten Übertragungsgatters 264 zur Zeit t&sub4; wird der hohe Ausgang der ersten Latch-Schaltung 262 an den Ausgang der zweiten Latch- Schaltung 266 gelegt, wodurch der Ausgang veranlasst wird, hoch zu werden. Somit wird ein an die Schieberegisterstufe 252 gelegtes Befehlsbit innerhalb von weniger als einem Taktzyklus zum Ausgang der Schieberegisterstufe 252 verschoben. Im nächsten halben Taktzyklus wird das Befehlsbit zum Ausgang der nächsten Schieberegisterstufe geschoben, bevor ein Taktzyklus vergangen ist, zu welchem Zeitpunkt zwei Befehlsbits in jeden Schieberegister-Schaltkreis 250 geschoben worden sind. Somit werden zwei Befehlsbits pro Taktzyklus in der gleichen Art und Weise durch jeden Schieberegister-Schaltkreis 250 geschoben, in der das Signal FLAG pro Taktzyklus durch zwei Stufen des Schieberegister- Schaltkreises 246, 248 (Fig. 5) geschoben wird.
  • Die in Fig. 7 gezeigten Schieberegister-Schaltkreise 250 einschliesslich der in Fig. 8 gezeigten Schieberegisterstufen werden auch als die Schieberegister 246, 248 im Steuerschaltkreis 205 verwendet (Fig. 5).
  • Die Speicherregister 206, 208 und der Vergleicher 214 werden in Fig. 10 veranschaulicht, in der die Bezugszahlen und Signalnamen für das Speicherregister 208 in Klammern gesetzt sind. Die Speicherregister 206, 208 enthalten je einen Steuerschaltkreis 300, um HOLD-Signale zu erzeugen, um zwei 10-Bit-Befehlswörter vom Schieberegister 202 in ein 20-Bit-Register 302 zu laden. Der Steuerschaltkreis 300 enthält ein NOR-Gatter 310, das ein Signal CLK90* empfängt, das erzeugt wird, indem das Signal CLK90 durch einen Inverter 312 geschickt wird. Das NOR-Gatter 310 empfängt auch das Ausgangssignal eines Verzögerungsschaltkreises 314, der seinerseits vom Ausgang eines Inverters 316 gesteuert wird, der das Signal CLK empfängt. Der Ausgang des NOR-Gatters 310 wird immer dann hoch, wenn CLK90 hoch ist und wenn CLK nach der durch den Verzögerungsschaltkreis 314 gelieferten Verzögerung hoch ist. Der Ausgang des NOR- Gatters 310 wird an einen Eingang eines NAND-Gatters 318 mit drei Eingängen angelegt. Das NAND-Gatter 318 empfängt ebenfalls ein Signal CLK* vom Inverter 316 und ein Signal F (F< 1> im Falle des Speicherregisters 206, und F< 3> im Falle des Speicherregisters 208) vom Steuerschaltkreis 205 (Fig. 5). Der Ausgang des NAND-Gatters 318 ist niedrig, wenn alle seine Eingänge hoch sind. So ist der Ausgang des NAND-Gatters 318 niedrig, wenn das Signal CLK90 hoch, das verzögerte CLK hoch, das Signal CLK niedrig und das Signal F (F< 1> oder F< 3> ) hoch ist. Wie man durch Prüfung dieser Signale im Zeitablaufdiagramm der Fig. 6 sehen kann, existiert diese Kombination von Signalen immer dann, wenn das F-Signal an einer abfallenden Flanke des Signals CLK hoch ist.
  • Das niedrige Signal am Ausgang des NAND-Gatters 318 wird an ein NAND-Gatter 322 angelegt, das dann ein hohes Signal ausgibt, das durch zwei Inverter 324, 326 gekoppelt wird. Somit erzeugt der Ausgang des Inverters 324 auf der abfallenden Flanke von CLK immer dann ein aktives niedriges Signal HOLD*, und der Inverter 326 erzeugt ein aktives hohes Signal HOLD, wenn das Signal F hoch wird.
  • Das aktive niedrige Signal HOLD* und das aktive hohe Signal HOLD werden auch erzeugt, wenn der andere Eingang am NAND-Gatter 322 niedrig wird. Der andere Eingang am NAND-Gatter 322 wird durch den Ausgang eines NAND-Gatters 330 gesteuert, das das Signal CLK, das Signal F (F< 1> für Register 206 und F< 3> für Register 208) und den Ausgang eines NOR-Gatters 332 empfängt. Das NOR-Gatter 332 seinerseits empfängt das Signal CLK 90 sowie das Signal CLK, nachdem es durch einen Verzögerungsschaltkreis 334 verzögert worden ist. Somit wird der Ausgang des NAND-Gatters 330 niedrig, um ein aktives HOLD und HOLD*-Signale zu erzeugen, wenn das Signal CLK hoch, das Signal CLK90 niedrig ist, das verzögerte Signal CLK niedrig wird und das Signal F (F< 1> für Register 206 und F< 3> für Register 208) hoch wird. Wie man auch durch Prüfung dieser Signale im Zeitablaufdiagramm der Fig. 6 sehen kann, existiert diese Kombination von Signalen immer dann, wenn das Signal F auf der ansteigenden Flanke des Signals CLK hoch ist.
  • Zusammenfassend werden aktive Signale HOLD und HOLD* entweder auf der ansteigenden Flanke oder der abfallenden Flanke des Signals CLK erzeugt und an das 20- Bit-Register 302 für das Speicherregister 206 angelegt, nachdem das Signal F< 1> durch den Steuerschaltkreis 205 erzeugt worden ist (Fig. 5). Der Steuerschaltkreis 205 erzeugt das Signal F< 1> zwei Taktflanken nach Anlegen des Signals FLAG an den Steuerschaltkreis 205. Wie oben erklärt, sind nach zwei Taktflanken (d. h., einem Taktzyklus) die ersten beiden 10-Bit-Befehlswörter in das Schieberegister 202 geschoben worden, und genau zu diesem Zeitpunkt übertragen die Signale HOLD und HOLD* diese 20 Bits zum Register 302.
  • Ähnlich werden aktive Signale HOLD und HOLD* entweder auf der steigenden Flanke oder auf der fallenden Flanke des Signals CLK erzeugt und an das 20-Bit-Register 302 des Speicherregisters 208 angelegt, nachdem das Signal F< 3> durch den Steuerschaltkreis 205 erzeugt worden ist. Der Steuerschaltkreis 205 erzeugt das Signal F< 3> vier Taktflanken nach Anlegen des Signals FLAG an den Steuerschaltkreis 205. Wie oben erklärt, sind nach vier Taktflanken (d. h. zwei Taktzyklen) die zweiten zwei 10-Bit- Befehlswörter in das Schieberegister 202 geschoben worden. Genau zu diesem Zeitpunkt übertragen die Signale HOLD und HOLD* diese 20 Bits zum Register 302 für das Speicherregister 208.
  • Das Register 302 enthält 20 Registerzellen 340a-340t, deren jede ein aktives niedriges Rückstellsignal R*, die Signale HOLD und HOLD* sowie eines der 20 Bits C< 0 : 19> aus dem Schieberegister 202 empfängt. Eine der Registerzellen 340b ist detailliert in Fig. 11 zu sehen, wo die Signale für das Register 302 im Speicherregister 208 wiederum in Klammern angedeutet werden. Jede der Registerzellen 340 enthält ein erstes Übertragungsgatter 344, eine erste Latch-Schaltung 346, ein zweites Übertragungsgatter 348 und eine zweite Latch-Schaltung 350. Der Eingang der zweiten Latch-Schaltung 350 wird durch einen PMOS-Transistor 352 immer dann selektiv hochgezogen, wenn das Rückstellsignal R* niedrig wird, um zu veranlassen, dass sein Ausgang Y niedrig wird. Daher sind auf das Zurückstellen hin alle Ausgänge Y der Speicherregister 206, 208 auf niedrig gelegt.
  • Das erste Übertragungsgatter 344 enthält einen (nicht gezeigten) NMOS-Transistor, dessen Gate mit dem HOLD-Eingang verbunden ist, sowie einen (nicht gezeigten) PMOS- Transistor, der mit dem NMOS-Transistor parallel geschaltet ist und dessen Gate mit dem HOLD*-Eingang verbunden ist. Daher ist das Übertragungsgatter 344 geschlossen, wenn die Signale HOLD und HOLD* aktiv sind. Das zweite Übertragungsgatter 348 benutzt ebenfalls einen (nicht gezeigten) NMOS-Transistor parallel zu einem (nicht gezeigten) PMOS-Transistor, aber deren Gates sind mit den Signalen HOLD und HOLD* der entgegengesetzten Polarität verbunden. Somit wird, wenn HOLD und HOLD* aktiv sind, ein Befehlsbit vom Schieberegister 202 zur Latch-Schaltung 346 übertragen. Kurz danach, wenn die Signale HOLD und HOLD* inaktiv werden, schliesst das Übertragungsgatter 348, um das Befehlsbit zur zweiten Latch-Schaltung 350 zu übertragen. Wie bei den in den Schieberegisterstufen 252 verwendeten Latch-Schaltungen (Fig. 8) wird jede der Latch- Schaltungen 346, 350 durch ein Paar Eingang an Ausgang geschaltete Inverter 360, 362 gebildet.
  • Zu Fig. 10 zurückkehrend, enthält der Vergleicher 214 eine Sammlung von Logikkreisen, die sechs Bits der Kennungsdaten ID< 0 : 5> mit sechs Befehlbits vom Speicherregister 208 vergleichen, um ein aktives hohes Chipauswahlsignal CHPSEL zu erzeugen, wenn ein Befehl dafür bestimmt ist, durch die den Befehlspuffer 200 enthaltende Speichervorrichtung verwendet zu werden. Die Funktion des Vergleichers 214 lässt sich am besten verstehen, wenn man von einem aktiven hohen Chipauswahlausgang CHPSEL aus zurückverfolgt. Der Ausgang CHPSEL wird am Ausgang eines Inverters 370 erzeugt, der an den Ausgang eines NAND-Gatters 372 angeschlossen ist. Das Signal CHPSEL wird immer dann aktiv hoch sein, wenn der Ausgang des NAND-Gatters 372 niedrig ist, was immer dann der Fall ist, wenn beide Eingänge am NAND-Gatter 372 hoch sind. Die Eingangssignale zum NAND-Gatter 372 werden an den Ausgängen von NOR-Gattern 374, 376 erzeugt. Die Ausgänge der NOR-Gatter 374, 376 sind beide hoch, wenn alle Eingänge der NOR-Gatter 374, 376 niedrig sind. Die Eingänge des NOR-Gatters 374 sind alle niedrig, wenn der Ausgang irgend eines der drei NOR-Gatter 380, 382, 384 hoch ist. Jedes NOR-Gatter 380, 382, 384 hat zwei Eingänge, wovon der eine mit dem Ausgang einer Exklusives-ODER-Schaltung 390 und der andere entweder direkt oder durch zusätzliche Logikschaltungen mit einem der Befehlsbits Y verbunden ist.
  • Jede der Exklusives-ODER-Schaltungen 390 enthält zwei Übertragungsgatter 392, 394, die durch ein ID-Bit und sein Komplement ID* am Ausgang eines Inverters 396 alternierend aktiviert werden. Das Übertragungsgatter 392 empfängt das Befehlsbit Y, während das Übertragungsgatter 394 das Komplement des Befehlbits Y* von einem Inverter 398 empfängt. Wenn das Befehlsbit Y und das ID-Bit beide niedrig sind, wird das Übertragungsgatter 394 aktiviert, und das hohe Komplement des Befehlsbits wird durch das Übertragungsgatter 294 an den Eingang des NOR-Gatters 380 angelegt. Wenn das Befehlsbit Y und das ID-Bit beide hoch sind, wird das Übertragungsgatter 392 aktiviert, und das hohe Befehlsbit wird an den Eingang des NOR-Gatters 380 angelegt. Somit ist der Ausgang der Exklusives-ODER-Schaltung 390 hoch, wenn das Befehlsbit Y mit dem Kennungsbit ID übereinstimmt.
  • Wenn das Befehlsbit Y niedrig und das Kennungsbit ID hoch ist, wird das Übertragungsgatter 392 aktiviert und das niedrige Befehlsbit an den Eingang des NOR- Gatters 380 übertragen. Wenn schliesslich das Befehlsbit hoch, aber das Kennungsbit ID niedrig ist, wird das Übertragungsgatter 394 aktiviert und das niedrige Komplement des Befehlsbits Y durch das Übertragungsgatter 394 an das NOR-Gatter 380 angelegt. Somit ist der Ausgang der Exklusives-ODER-Schaltung 390 niedrig, wenn das Befehlsbit Y nicht mit dem Kennungsbit ID übereinstimmt.
  • Der Ausgang des NOR-Gatters 380 ist daher niedrig, wenn entweder das Befehlsbit Y< 0> mit dem Kennungsbit ID< 0> übereinstimmt oder das Befehlsbit Y< 6> hoch ist. In ähnlicher Weise ist der Ausgang des NOR-Gatters 382 niedrig, wenn entweder das Befehlsbit Y< 1> mit dem Bit ID< 1> übereinstimmt oder der Ausgang eines Inverters 400 hoch ist, was sich ergibt, wenn der Ausgang eines NAND-Gatters 402 niedrig ist, was eintritt, wenn die Befehlsbits Y< 6> und Y< 0> beide hoch sind. In ähnlicher Weise ist der Ausgang des NOR-Gatters 384 immer dann niedrig, wenn entweder das Befehlsbit Y< 2> mit dem Bit ID< 2> übereinstimmt oder die Befehlsbits Y< 0> , Y< 1> und Y< 6> alle hoch sind, nachdem sie durch das NAND-Gatter 402 und Inverter 400 gekoppelt worden sind.
  • Die Eingänge des NOR-Gatters 376 sind alle niedrig, wenn einer der Eingänge von jedem der drei NOR-Gatter 410, 412, 414 hoch ist. So sind die Eingänge des NOR-Gatters 376 alle niedrig, wenn das Befehlsbit Y< 3> mit dem Bit ID3, das Befehlsbit Y< 4> mit dem Bit ID< 4> und das Befehlsbit Y< 5> mit dem Bit ID< 5> übereinstimmt. Alle drei Eingänge des NOR-Gatters 376 sind ebenfalls niedrig, wenn die Befehlsbits Y< 0> , Y< 1> , y< 6> , y< 2> , y< 3> und Y< 4> alle hoch sind. Daher wird das Signal CHPSEL erzeugt, wenn entweder die Befehlsbits Y< 0 : 5> mit den Kennungsbits ID< 0 : 5> übereinstimmen oder die Befehlsbits Y< 0 : 6> alle hoch sind. Die Befehlsbits Y< 0 : 6> sind alle immer dann hoch, wenn das Befehlsbit Y< 6> hoch ist und die Befehlsbits Y< 0 : 5> der Zahl 63 entsprechen. Wie oben erwähnt, werden beim Einschalten die Kennungsdaten ID< 0 : 5> auf "63" gesetzt (binär "111111"). Daher erzeugt der Prozessor ein Befehlspaket, in dem die Bits Y< 0 : 6> alle hoch sind, wenn eindeutige Kennungsdaten im ID-Register 212 aufgezeichnet werden sollen (Fig. 3 und 4). Im Ergebnis erzeugt der Vergleicher-Schaltkreis 214 ein Signal CHPSEL, das es dem Decoder 210 erlaubt, ein Signal LOADID auszugeben. Nachdem die eindeutigen Bits Y< 0 : 5> im ID-Register 212 gespeichert worden sind, werden sie danach mit den Befehlsbits Y< 0 : 5> verglichen, und bei Übereinstimmung wird das Signal CHPSEL erzeugt, um der den Befehlspuffer 200 enthaltenden Speichervorrichtung zu erlauben, eine den anderen Bits des Befehlswortes entsprechende Funktion auszuführen.
  • Der Decoder 210 (Fig. 4 und 5) wird in weiteren Einzelheiten in Fig. 11 veranschaulicht. Wiederum lässt sich die Arbeit des Decoders 210 am besten verstehen, wenn der Schaltkreis von einem aktiven, hohen Ausgang LOADID zurückverfolgt wird. Der Ausgang LOADID ist immer dann hoch, wenn der Eingang eines Inverters 420 niedrig ist. Der Eingang des Inverters 420 ist an den Ausgang eines NAND-Gatters 422 angeschlossen, das immer dann ein niedriges Signal erzeugt, wenn alle seine Eingänge hoch sind. Alle Eingänge des NAND-Gatters 422 sind hoch, wenn die Eingänge des Chips CHPSEL und F< 5> hoch sind und die Befehlsbits Y< 7 : 19> ein vorgegebenes Muster aufweisen. Genauer wird der Eingang F< 5> vom Steuerschaltkreis 205 durch ein Paar von Invertern 424, 426 an einen Eingang des NAND-Gatters 422 angeschlossen. Ein weiteres Eingangssignal für das NAND-Gatter 422 wird durch einen Inverter 430 erzeugt, der das Ausgangssignal eines NAND-Gatters 432 empfängt. Der Ausgang des NAND-Gatters 432 ist niedrig, damit der Inverter 430 veranlasst wird, ein hohes Signal an den Eingang des NAND-Gatters 422 anzulegen, wenn alle Eingänge des NAND-Gatters 432 hoch sind. Die Eingänge des Inverters 432 sind alle hoch, wenn der Eingang SI hoch ist und alle Eingänge der beiden NOR-Gatter 436, 438 niedrig sind. Somit ist der zweite Eingang des NAND- Gatters 422 immer dann hoch, wenn das Signal SI hoch ist und Y< 13 : 19> alle niedrig sind. Der dritte Eingang des NAND-Gatters 422 ist immer dann hoch, wenn durch ein NAND- Gatter 442 ein niedriges Signal an einen Inverter 440 angelegt wird. Der Ausgang des NAND-Gatters 442 ist immer dann niedrig, wenn alle seine Eingänge hoch sind. Das erste Eingangssignal zum NAND-Gatter 442 wird durch ein NOR-Gatter 444 ausgegeben, das das Komplement des Befehlbits Y< 12> von einem Inverter 446 sowie die Befehlsbits Y< 10> und Y< 11> empfängt. Somit ist der Ausgang des NOR-Gatters 444 hoch, wenn Y< 10> und Y< 11> niedrig sind und Y< 12> hoch ist. Das zweite Eingangssignal zum NAND-Gatter 442 ist das Signal CHPSEL, das, wie oben erklärt, immer dann hoch ist, wenn ein Befehlspaket dafür bestimmt ist, durch die den Befehlspuffer 200 enthaltende Speichervorrichtung ausgeführt zu werden. Das dritte Eingangssignal zum NAND-Gatter 442 ist immer dann hoch, wenn alle drei Eingänge eines NOR-Gatters 450 niedrig sind. Das NOR-Gatter 450 empfängt die Befehlsbits Y< 7> undY< 8> sowie das Komplement des Befehlsbits Y< 9> durch einen Inverter 452. Somit ist der Ausgang des NAND-Gatters 442 immer dann niedrig, wenn CHPSEL, Y< 12> und Y< 9> hoch, Y< 7> , Y< 8> , Y< 9> , Y< 10> und Y< 11> niedrig sind.
  • Zusammenfassend wird ein Impuls LOADID erzeugt, um immer dann auf dem Impuls F< 5> vom Steuerschaltkreis 205 (Fig. 4 und 5) Kennungsdaten in das ID- Register 212 zu laden (Fig. 4 und 5), wenn das Signal SI hoch ist und Y< 19 : 7> als "0000000100100" decodiert wird. Wie oben erklärt, ist der Eingang SI an den Ausgang SO einer anderen Speichervorrichtung angeschlossen, so dass nur der Befehlspuffer einer einzigen Speichervorrichtung zu jedem gegebenen Zeitpunkt einem Initialisierungsbefehlspaket folgend einen Impuls LOADID erzeugt.
  • Das ID-Register ist in grösseren Einzelheiten in Fig. 13 zu sehen. Das ID-Register 212 enthält sechs Latch-Schaltkreise 460a-460f, deren jeder ein entsprechendes Befehlsbit Y< 24 : 29> aus dem Speicherregister 208 (Fig. 4 und 5) empfängt. Die Latch- Schaltkreise 468a-468f haben je einen Eingang RESET*, der durch Inverter 462, 464 an ein aktives, niedriges Rückstellsignal RESET* angeschlossen ist. Wie oben erklärt, wird die Speichervorrichtung zurückgestellt, bevor sie das Initialisierungsbefehlspaket empfängt. Das aktive, niedrige Signal RESET* bewirkt, dass alle Latch-Schaltkreise 460a-f ein hohes Signal ausgeben, das bewirkt, dass alle Bits der Kennungsdaten ID< 0 : 5> der Binärzahl "63" entsprechen, wodurch der Vergleicherschaltkreis 214 auf die Initialisierung hin ein Signal CHPSEL ausgeben kann, wie oben unter Bezugnahme auf Fig. 12 erklärt. Danach werden Kennungsdaten, die für jede Speichervorrichtung eindeutig sind, durch die Befehlbits Y< 24 : 29> an die Latch-Schaltkreise 460a-f angelegt, und der Impuls LOADID wird dann erzeugt, wie oben erklärt. Der Impuls LOADID wird durch einen Inverter 470 an die Eingänge S* der Latch-Schaltkreise 460a-f angelegt, während das Ausgangssignal des Inverters 470 durch einen Inverter 472 an die Eingänge S der Latch-Schaltkreise 460a-f angelegt wird. Das aktive, hohe Signal S und das aktive, niedrige Signal S* veranlassen die Latch-Schaltkreise 460a-f, die Befehlsbits Y< 24 : 29> als die eindeutigen Kennungsdaten ID< 0 : 5> für die den Befehlspuffer enthaltene Speichervorrichtung zu speichern.
  • Das ID-Register 212 enthält auch einen Latch-Schaltkreis 480 und einen Inverter 482 zur Erzeugung des Ausgangssignals SO. Wenn das Signal RESET* zu aktiv niedrig gesteuert ist, wird die Latch-Schaltung 480 zurückgestellt, um den Inverter 482 zu veranlassen, ein niedriges Signal SO auszugeben. Der Impuls LOADID fixiert jedoch ein niedriges Signal am Eingang des Latch-Schaltkreises 480, wodurch der Inverter 482 veranlasst wird, SO hochzusteuern. Das hohe Signal SO wird an den Eingang SI des Decoders 210 in einer weiteren Speichervorrichtung angelegt, wie oben erklärt, so dass diese andere Speichervorrichtung auf das nächstfolgende Initialisierungsbefehlspaket reagieren wird.
  • Der im ID-Register 212 der Fig. 13 verwendete Latch-Schaltkreis 460a-f ist in grösseren Einzelheiten in Fig. 14 zu sehen. Der Latch-Schaltkreis 460 ist mit dem in Fig. 11 gezeigten Latch-Schaltkreis 340 identisch, ausser dass er nur eine einzige Latch- Schaltung 346 enthält, den Eingang der ersten Latch-Schaltung 346 unter Verwendung des PMOS-Transistors 352 hochzieht und an Stelle eines zweiten Übertragungsgatters 348 und der Latch-Schaltung 350 im Latch-Schaltkreis 340 der Fig. 10 einen Inverter 490 verwendet. Beim Betrieb schaltet das aktive, niedrige Signal RESET* den Transistor 352 ein (ON), um den Ausgang des Inverters 490 hochzusteuern. Als Reaktion auf das aktive hohe Signal S und das aktive niedrige Signal S* schliesst das Übertragungsgatter 344, um das Befehlsbit Y an den Ausgang ID anzulegen, nachdem es zweimal invertiert wurde, nämlich einmal durch die Latch-Schaltung 346 und einmal durch den Inverter 490.
  • Wie oben erwähnt, kann der in Fig. 4 bis 14 gezeigte Befehlspuffer 200 an Stelle des in Fig. 3 gezeigten Befehlspuffers 46 verwendet werden. Die sich ergebende Speichervorrichtung kann in dem in Fig. 1 gezeigten Rechnersystem verwendet werden, um eine überlegene Arbeitsgeschwindigkeit zur Verfügung zu stellen.

Claims (34)

1. Befehlspuffer für eine Speichereinrichtung, die ein Befehlspaket, das N M-Bit- Befehlswörter umfaßt, auf einem M-Bit-Bus empfangen kann, mit folgenden Merkmalen:
M Schieberegister (202), die jeweils einen Eingangsanschluß, einen Ausgangsanschluß und einen Taktanschluß aufweisen, wobei der Eingangsanschluß jedes Schieberegisters (202) mit einem entsprechenden Bit des M-Bit-Busses gekoppelt ist; und ein Steuerschaltkreis (205) mit einem Taktanschluß und wenigstens einem Ausgangsanschluß, wobei der Befehlspuffer dadurch gekennzeichnet ist, daß
jedes der Schieberegister (202) N/Y Stufen (252) aufweist, wobei ein entsprechendes Befehlswort-Bit, das an den Eingangsanschluß jeder Stufe (252) angelegt wird, zu einem Ausgangsanschluß jeder Stufe (252) abhängig von einem Taktsignal geschoben wird, das an die Takteingänge der Schieberegister (202) angelegt werden kann;
der Befehlspuffer ferner Y Speicherregister (206, 208) aufweist, wobei Y eine ganze Zahl größer als 1 ist, wobei jedes der Speicherregister (206, 208) [N/Y]*M Speicherzellen aufweist, wobei jede der Speicherzellen einen Ausgangsanschluß, einen Eingangsanschluß, der mit dem Ausgangsanschluß einer entsprechenden Schieberegisterstufe verbunden ist, und einen Ladeanschluß aufweist, wobei jede der Speicherzellen ein Signal an dem Ausgangsanschluß der entsprechenden Schieberegisterstufe abhängig von einem Ladesignal speichert, das an den Ladeanschluß der Speicherzelle angelegt wird; und weiter dadurch gekennzeichnet, daß
der Steuerschaltkreis (205) die Ladesignale erzeugt, nachdem jedes der N/Y Befehlswörter in die Schieberegister (202) geschoben wurde, wobei die Ladesignale an die Ladeanschlüsse aufeinanderfolgender Speicherregister (206, 208) sequentiell angelegt werden, so daß die Speicherregister (206, 208) jeweils entsprechende N/Y Befehlswörter empfangen, wenn N Befehlswörter in die Schieberegister (202) geschoben werden.
2. Befehlspuffer nach Anspruch 1, wobei N gleich 4 ist und Y gleich 2 ist, so daß die Schieberegister (202) jeweils zwei Stufen (252) aufweisen, und wobei es zwei Speicherregister (206, 208) gibt, von denen jedes 2*M Speicherzellen aufweist.
3. Befehlspuffer nach Anspruch 1 oder 2 mit einem Befehlsdecoder (216), der mit einem der Speicherregister (206, 208) verbunden ist, das die von dem Schieberegister (202) empfangen Befehlswörter speichert, bevor die Befehlswörter in einem anderen Schieberegister gespeichert werden, wobei der Decoder (216) die in dem Speicherregister (206, 208) gespeicherten Befehlswörter decodiert, bevor die Befehlswörter in dem anderen Speicherregister gespeichert wurden.
4. Befehlspuffer nach einem der vorangehenden Ansprüche, mit einem Vergleicherschaltkreis, der mit einem ersten der Speicherregister (206, 208) gekoppelt ist, das von den Schieberegistern (202) empfangene Befehlswörter speichert, bevor die Befehlswörter in einem zweiten Schieberegister gespeichert werden, wobei der Vergleicherschaltkreis ermittelt, ob wenigstens ein Teil des Befehlswortes, das in dem ersten Speicherregister (206, 208) gespeichert ist, einen bestimmten Wert hat, und ein Auswahlsignal (CHPSEL) abhängig davon erzeugt, wobei der Vergleicherschaltkreis folgende Merkmale aufweist:
ein Latch (212), das den bestimmten Befehlswortwert speichert und ein diesem entsprechendes Vergleichswort ausgibt; und
ein Vergleicher (214) mit einem ersten Eingang, der mit dem ersten Speicherregister (206, 208) gekoppelt ist, und einem zweiten Eingang, der mit dem Latch (212) gekoppelt ist, wobei der Vergleicher (214) das Vergleichswort mit wenigstens einem Teil des in dem ersten Speicherregister (206, 208) gespeicherten Befehlswort vergleicht und ein Auswahlsignal (CHPSEL) abhängig davon erzeugt, daß eine Übereinstimmung zwischen dem Vergleichswort und dem Teil des Befehlsworts vorliegt.
5. Befehlspuffer nach Anspruch 4, wobei der Vergleicher (214) das Vergleichswort mit dem Teil des Befehlsworts vergleicht, bevor N/Y Befehlswörter in dem zweiten Schieberegister gespeichert sind.
6. Befehlspuffer nach Anspruch 4 oder 5, wobei der Vergleicher (214) ein Exklusiv- ODER-Gatter (390) für jedes verglichene Bit des Befehlswortes aufweist, wobei jedes Exklusiv-ODER-Gatter (390) zwei Eingangsanschlüsse aufweist, die ein Bit des Vergleichswortes und ein entsprechendes Bit des Befehlswortes empfangen, und die Exklusiv-ODER-Gatter (390) das Auswahlsignal (CHPSEL) abhängig von einer Übereinstimmung zwischen allen verglichenen Bits des Vergleichswortes und den Bits des Befehlswortes kollektiv erzeugen.
7. Befehlspuffer nach Anspruch 1, mit einem Enable-Schaltkreis zum Erzeugen eines Auswahlsignals, das Funktionen eines integrierten Schaltkreises, der den Befehlspuffer enthält, aktiviert, wobei der Enable-Schaltkreis folgende Merkmale aufweist:
einen erster Decoderschaltkreis (210) mit einem Eingangsbus, der mit einem der Speicherregister (206, 208) verbunden ist, wobei der erste Decoder (210) ein Ladesignal (LOADID) bei einem Ausgangsanschluß abhängig davon erzeugt, daß wenigstens ein Teil des Befehlswortes einen vorgegebenen Wert hat;
ein ID-Register (212) mit einem Eingangsbus, der mit den entsprechenden Ausgangsanschlüssen eines der Speicherregister (206, 208) verbunden ist, wobei das ID- Register (212) wenigstens ein Teil eines Befehlswortes, das von dem Speicherregister (206, 208) empfangen wird, abhängig von dem Ladesignal (LOADID) speichert und auf einem Ausgangsbus einen diesem entsprechenden Vergleichswort erzeugt; und
einen Vergleicher (214) mit einem ersten Eingangsbus, der mit einem ersten der Speicherregister (206, 208) gekoppelt ist, welches von den Schieberegistern (202) empfangene Befehlswörter speichert, bevor die Befehlswörter in einem zweiten Schieberegister gespeichert werden, wobei der Vergleicher (214) ferner einen zweiten Eingangsbus aufweist, der mit dem Ausgangsbus des ID-Registers (212) gekoppelt ist.
8. Befehlspuffer nach Anspruch 7, wobei der Vergleicher (214) das Vergleichswort mit wenigstens einem Teil des von dem ersten Speicherregister (206, 208) empfangenen Befehlswort vergleicht und ein Auswahlsignal (CHPSEL) abhängig davon erzeugt, daß eine Übereinstimmung zwischen dem Vergleichswort und dem Teil des Befehlswortes vorliegt.
9. Befehlspuffer nach Anspruch 7 oder 8, wobei der Vergleicher (214) ein Exklusiv- ODER-Gatter (390) für jedes verglichene Bit des Befehlswortes, das von dem ersten Speicherregister (206, 208) empfangen wurde, aufweist, wobei jedes Exklusiv-ODER- Gatter (390) zwei Eingangsanschlüsse aufweist, die ein Bit des Vergleichswortes und ein entsprechendes Bit des Befehlswortes empfangen, und die Exklusiv-OR-Gatter (390) das Auswahlsignal (CHPSEL) abhängig von einer Übereinstimmung zwischen allen verglichenen Bits des Vergleichswortes und den Bits des Befehlswortes kollektiv erzeugen.
10. Befehlspuffer nach einem der vorangehenden Ansprüche, wobei jede der Schieberegister-Stufen (252) folgende Merkmale aufweist:
ein Übertragungsgatter (260) mit einem Eingangsanschluß, der eines der M-Bit des Befehlswortes empfangen kann und das Befehls-Bit an einen Ausgangsanschluß abhängig von wenigstens einem vorgegebenen Teil des Taktsignals übertragen kann;
eine erste Speichereinrichtung (262) die mit dem Ausgangsanschluß des Übertragungsgatters (260) gekoppelt ist, wobei die erste Speichereinrichtung (262) das Befehlswort-Bit von dem Ausgangsanschluß des Übertragungsgatters (260) speichert und das gespeicherte Befehlswort-Bit an einen Ausgangsanschluß der ersten Speichereinrichtung (262) anlegt;
ein zweites Übertragungsgatter (264) mit einem Eingangsanschluß, der das gespeicherte Befehlswort-Bit von dem Ausgangsanschluß der ersten Speichereinrichtung (262) empfangen kann und das Befehls-Bit an einen Ausgangsanschluß abhängig von wenigstens einem zweiten vorgegebenen Teil des Taktsignals übertragen kann; und
eine zweite Speichereinrichtung (266), die mit dem Ausgangsanschluß des zweiten Übertragungsgatters (264) verbunden ist, wobei die zweite Speichereinrichtung (266) das Befehlswort-Bit von dem Ausgangsanschluß des zweiten Übertragungsgatters (264) speichert und das gespeicherte Befehlswort-Bit an einen Ausgangsanschluß der zweiten Speichereinrichtung (266) anlegt.
11. Befehlspuffer nach Anspruch 10, wobei das zweite Übertragungsgatter (264) einen ersten, einen zweiten, einen dritten und einen vierten Schalter aufweist, die miteinander in Reihe zwischen einer ersten und einer zweiten Bezugsspannung angeschlossen sind, wobei jeder der Schalter einen Steueranschluß aufweist, die Steueranschlüsse des zweiten und des dritten Schalters mit dem Ausgangsanschluß der ersten Speichereinrichtung (206, 208) verbunden sind, um das gespeicherte Befehlswort-Bit von der ersten Speichereinrichtung (206, 208) zu empfangen, der zweite Schalter abhängig davon schließt, daß ein Befehlswort-Bit einen Wert hat, und der dritte Schalter abhängig davon schließt, daß ein Befehlswort Bit einen anderen Wert hat, wobei ein Knoten zwischen dem zweiten und dem dritten Schalter mit der zweiten Speichereinrichtung gekoppelt ist, die Steueranschlüsse des ersten und es vierten Schalters mit dem Taktsignal gekoppelt sind, um den ersten und den zweiten Schalter abhängig von wenigstens einem zweiten vorgegebenen Teil des Taktsignals zu schließen.
12. Befehlspuffer nach einem der vorangehenden Ansprüche, wobei der Steuerschaltkreis (205) ein Schieberegister (246, 248) aufweist, das einen Startanschluß aufweist, der ein Startsignal (FLAG) empfangen kann, wobei das Schieberegister (246, 248) N Stufen aufweist und wobei das Startsignal (FLAG), das an einen Eingangsanschluß der ersten Stufe angelegt wird, abhängig von Taktsignalen von einer Stufe zur nächsten geschoben wird, wobei die Ladesignale, welche abhängig von dem Startsignal (FLAG) erzeugt werden, zu dem Ausgang entsprechender Stufen des Schieberegisters (246, 248) geschoben werden.
13. Befehlspuffer nach Anspruch 12, wobei der Steuerschaltkreis (205) ferner einen Takt- Sync-Schaltkreis (230) aufweist, der das Startsignal (FLAG) mit dem Taktsignal synchronisiert, wobei der Takt-Sync-Schaltkreis (230) einen Logikschaltkreis aufweist, der das Taktsignal und das Ausgangssignal eines der Schieberegisterstufen empfängt, wobei der Logikschaltkreis die Ladesignale bei einer vorgegebenen Flanke des Taktsignals erzeugt, nachdem das Startsignal (FLAG) aus einer entsprechenden Schieberegister-Stufe (252) geschoben wurde.
14. Befehlspuffer nach einem der vorangehenden Ansprüche, wobei die Befehlswort-Bits, welche an den Eingangsanschluß entsprechender Schieberegister (202) angelegt werden, während jedes Zyklus des Taktsignals durch zwei Stufen des Schieberegisters (202) geschoben werden.
15. Speichereinrichtung, mit
wenigstens einer Anordnung aus Speicherzellen, welche Daten bei einer Position speichern können, die durch eine Zeilenadresse und eine Spaltenadresse abhängig von einem Befehlswort bestimmt wird;
einem Zeilenadreßschaltkreis, der die Zeilenadresse empfangen und decodieren kann und eine Zeile der Speicherzelle, welche der Zeilenadresse entspricht, abhängig von dem Befehlswort auswählen kann;
einem Spaltenadreßschaltkreis, der Daten an eine der Speicherzellen in der ausgewählten Zeile, welche der Spaltenadresse entspricht, abhängig von dem Befehlswort empfangen oder anlegen kann;
einem Datenwegschaltkreis, der Daten zwischen einem externen Anschluß und dem Spaltenadreßschaltkreis abhängig von dem Befehlswort koppeln kann; und
einen Befehlspuffer gemäß einem der vorangehenden Ansprüche.
16. Speichereinrichtung nach Anspruch 15, wobei N gleich 8 und Y gleich 2 ist, so daß die Schieberegister (202) jeweils vier Stufen aufweisen und daß es zwei Speicherregister (206, 208) gibt, die jeweils 4*M Speicherzellen aufweisen.
17. Speichereinrichtung nach Anspruch 15 oder 16, wobei die Speichereinrichtung ein RAM aufweist.
18. Speichereinrichtung nach Anspruch 15 oder 16, wobei die Speichereinrichtung ein DRAM aufweist.
19. Speichereinrichtung nach Anspruch 15 oder 16, wobei die Speichereinrichtung ein in Paketen organisiertes DRAM aufweist.
20. Computersystem mit
einem Prozessor, der einen Prozessorbus aufweist;
einer Eingabeeinrichtung, die mit dem Prozessor über den Prozessorbus gekoppelt ist und die Eingabe von Daten in das Computersystem ermöglicht;
einer Ausgabeeinrichtung, die mit dem Prozessor über den Prozessorbus gekoppelt ist und die Ausgabe von Daten aus dem Computersystem ermöglicht; und
einer Speichereinrichtung nach einem der Ansprüche 15 bis 19, die mit dem Prozessor über den Prozessorbus gekoppelt ist.
21. Verfahren zum Verarbeiten eines Befehlspakets aus N M-Bit-Befehlswörtern zur Verwendung durch eine Speichereinrichtung, gekennzeichnet durch die folgenden Verfahrensschritte:
sequentielles Speichern von Befehlswörtern, bis N/Y Befehlswörter gespeichert wurden;
jedesmal, wenn N/Y Befehlswörter gespeichert wurden, Übertragen der [N/Y]*M Bit der Befehlswörter zu einer von Y entsprechenden Speicherstellen (206, 208); und Ausgeben der Befehlswörter aus jeder der Y Speicherstellen (206, 208).
22. Verfahren nach Anspruch 21, wobei der Schritt des Ausgebens der Befehlswörter aus jeder der Y Speicherstellen (206, 208) das Ausgeben der Befehlswörter von wenigstens einer der Speicherstellen (206, 208), bevor die Befehlswörter zu anderen Speicherstellen (206, 208) übertragen wurden, umfaßt.
23. Verfahren nach Anspruch 22, bei dem wenigstens ein Teil des an eine der Speicherstellen (206, 208) übertragenen Befehlswortes verarbeitet wird, bevor Befehlswörter zu der anderen Speicherstelle (206, 208) übertragen wurden.
24. Verfahren nach einem der Ansprüche 21 bis 23, wobei N gleich 4 ist und Y gleich 2 ist, so daß zwei Befehlswörter gespeichert werden, bevor sie zu einer von zwei Speicherstellen (206, 208) übertragen werden.
25. Verfahren nach einem der Ansprüche 21 bis 24, mit den weiteren Verfahrensschritten:
Vorsehen eines Identifikationswortes; und
Vergleichen wenigstens eines Teils des Befehlswortes mit dem Identifikationswort, und im Falle einer Übereinstimmung, Ausführen einer Operation in der Speichereinrichtung, die einem anderen Teil eines Befehlswortes entspricht.
26. Verfahren nach Anspruch 25, wobei der Schritt des Vergleichens des Teils eines Befehlswortes mit dem Identifikationswort das Vergleichen eines Teils eines Befehlswortes, das zu einer der Speicherstellen (206, 208) übertragen wird, bevor das Befehlswort, dem die Operation entspricht, zu einer anderen Speicherstelle (206, 208) übertragen wird, umfaßt.
27. Verfahren nach Anspruch 25 oder 26, wobei der Schritt des Vorsehens des Identifikationswortes folgende Verfahrensschritte umfaßt:
Ermitteln, ob wenigstens ein Teil des Befehlswortes einen zweiten vorgegebenen Wert hat; und
wenn wenigstens ein Teil des Befehlswortes einen zweiten vorgegebenen Wert hat, Speichern wenigstens eines Teils eines Befehlswortes als das Identifikationswort.
28. Verfahren zum Verarbeiten eines Befehlspaketes aus N M-Bit-Befehlswörtern in einem Computersystem mit einem Prozessor, der einen Prozessorbus aufweist, der mit einer Eingabeeinrichtung, einer Ausgabeeinrichtung und mehreren Paketspeichereinrichtungen verbunden ist, gekennzeichnet durch folgende Verfahrensschritte:
sequentielles Speichern von Befehlswörtern in den mehreren Speichereinrichtungen, bis N/Y Befehlswörter gespeichert wurden;
jedesmal, wenn N/Y Befehlswörter gespeichert wurden, Übertragen der [N/Y]*M-Bit der Befehlswörter zu einem von Y entsprechenden Speicherstellen (206, 208);
Ausgeben der Befehlswörter aus jeder der Y Speicherstellen (206, 208);
Vorsehen von entsprechenden Identifikationswörtern, die für jede der Speichereinrichtungen eindeutig sind;
Vergleichen wenigstens eines Teils eines Befehlsworts, das von einer der Speicherstellen (206, 208) in mehreren Speichereinrichtungen ausgegeben wurde, mit entsprechenden Identifikationswörtern für die Speichereinrichtungen; und
falls eine Übereinstimmung zwischen dem Teil des Befehlswortes und einem Identifikationswort in einer Speichereinrichtung vorliegt, Ausführen einer Operation, die einem Befehlswort in der Speichereinrichtung entspricht, die ein Identifikationswort aufweist, das mit dem Teil des Befehlswortes übereinstimmt.
29. Verfahren nach Anspruch 28, wobei der Schritt des Vorsehens jedes der Identifikationswörter folgende Verfahrensschritte umfaßt:
Ermitteln, ob wenigstens ein Teil des Befehlswortes einen zweiten vorgegebenen Wert hat; und
wenn wenigstens ein Teil des Befehlswortes einen zweiten vorgegebenen Wert hat, Speichern wenigstens eines Teils des Befehlswortes als das Identifikationswort.
30. Verfahren nach Anspruch 28 oder 29, wobei der Schritt des Vergleichens des Teils eines Befehlswortes mit dem entsprechenden Identifikationswort das Vergleichen eines Teils eines Befehlswortes aus wenigstens einer der Speicherstellen (206, 208) umfaßt, bevor Befehlswörter zu einer anderen Speicherstelle (206, 208) übertragen wurden.
31. Verfahren nach Anspruch 28, wobei N gleich 8 ist und Y gleich 2 ist, so daß vier Befehlswörter gespeichert werden, bevor sie zu einer der zwei Speicherstellen (206, 208) übertragen werden.
32. Verfahren zum Verarbeiten eines Mehrfachbefehls-Wortbefehlspaketes, das an eine Speichereinrichtung angelegt wird, mit folgenden Verfahrensschritten: sequentielles Speichern von Befehlswörtern in der Speichereinrichtung, wenn die Befehlswörter an die Speichereinrichtung angelegt werden; dadurch gekennzeichnet, daß das Verfahren die Verarbeitung wenigstens eines Teils wenigstens eines der Befehlswörter eines Befehlspaketes umfaßt, welches in der Speichereinrichtung gespeichert wird, bevor andere Befehlswörter des Befehlspaketes gespeichert werden, die nachfolgend an die Speichereinrichtung angelegt werden.
33. Verfahren nach Anspruch 32, wobei der Schritt des Verarbeitens wenigstens eines Teils wenigstens eines der Befehlswörter das Decodieren des Teils des Befehlswortes umfaßt.
34. Verfahren nach Anspruch 32, wobei der Schritt des Verarbeitens wenigstens eines Teil wenigstens eines der Befehlswörter das Vergleichen dieses Teils des Befehlswortes mit einem Vergleichswort umfaßt, wobei im Falle einer Übereinstimmung die Speichereinrichtung enabled wird, um auf andere Befehlswörter in dem Befehlspaket zu reagieren.
DE69804108T 1997-06-13 1998-06-12 Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben Expired - Lifetime DE69804108T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/874,690 US5996043A (en) 1997-06-13 1997-06-13 Two step memory device command buffer apparatus and method and memory devices and computer systems using same
PCT/US1998/012335 WO1998057331A1 (en) 1997-06-13 1998-06-12 Two step memory device command buffer apparatus and method and memory devices and computer systems using same

Publications (2)

Publication Number Publication Date
DE69804108D1 DE69804108D1 (de) 2002-04-11
DE69804108T2 true DE69804108T2 (de) 2002-08-01

Family

ID=25364346

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69804108T Expired - Lifetime DE69804108T2 (de) 1997-06-13 1998-06-12 Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben

Country Status (8)

Country Link
US (3) US5996043A (de)
EP (1) EP1010179B1 (de)
JP (1) JP3869021B2 (de)
KR (1) KR100434211B1 (de)
AT (1) ATE214193T1 (de)
AU (1) AU7965098A (de)
DE (1) DE69804108T2 (de)
WO (1) WO1998057331A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230245B1 (en) 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
US6175894B1 (en) 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US5996043A (en) * 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US6484244B1 (en) 1997-06-17 2002-11-19 Micron Technology, Inc. Method and system for storing and processing multiple memory commands
US6202119B1 (en) 1997-12-19 2001-03-13 Micron Technology, Inc. Method and system for processing pipelined memory commands
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
US6088293A (en) * 1998-09-08 2000-07-11 Texas Instruments Incorporated Low-power column decode circuit
JP3765931B2 (ja) * 1998-10-15 2006-04-12 富士通株式会社 バッファ制御方法及びバッファ制御装置
US7051130B1 (en) 1999-10-19 2006-05-23 Rambus Inc. Integrated circuit device that stores a value representative of a drive strength setting
US6321282B1 (en) 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
US6643787B1 (en) 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US6646953B1 (en) 2000-07-06 2003-11-11 Rambus Inc. Single-clock, strobeless signaling system
US7079775B2 (en) 2001-02-05 2006-07-18 Finisar Corporation Integrated memory mapped controller circuit for fiber optics transceiver
US7151778B2 (en) * 2001-04-18 2006-12-19 Brocade Communications Systems, Inc. Frame filtering of fibre channel packets
US7366194B2 (en) 2001-04-18 2008-04-29 Brocade Communications Systems, Inc. Fibre channel zoning by logical unit number in hardware
US7549011B2 (en) 2001-08-30 2009-06-16 Micron Technology, Inc. Bit inversion in memory devices
US6775759B2 (en) 2001-12-07 2004-08-10 Micron Technology, Inc. Sequential nibble burst ordering for data
GB2400282B8 (en) * 2003-03-31 2014-08-27 St Microelectronics Res & Dev Integrated circuit for code acquisition
US20040194500A1 (en) * 2003-04-03 2004-10-07 Broadway Entertainment, Inc. Article of jewelry
US6928027B2 (en) * 2003-04-11 2005-08-09 Qualcomm Inc Virtual dual-port synchronous RAM architecture
US7352740B2 (en) * 2003-04-29 2008-04-01 Brocade Communciations Systems, Inc. Extent-based fibre channel zoning in hardware
US7707330B2 (en) * 2003-09-18 2010-04-27 Rao G R Mohan Memories for electronic systems
US7430203B2 (en) * 2004-01-29 2008-09-30 Brocade Communications Systems, Inc. Fibre channel zoning hardware for directing a data packet to an external processing device
US7299329B2 (en) 2004-01-29 2007-11-20 Micron Technology, Inc. Dual edge command in DRAM
KR20060009446A (ko) * 2004-07-22 2006-02-01 삼성전자주식회사 프로세서의 오동작을 방지할 수 있는 정보 처리 장치
JP2008097663A (ja) * 2006-10-06 2008-04-24 Sony Corp 半導体記憶装置
US7672190B1 (en) * 2006-12-12 2010-03-02 Cypress Semiconductor Corporation Input latch circuit and method
US8023338B2 (en) * 2006-12-22 2011-09-20 Sidense Corp. Dual function data register
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US20090327535A1 (en) * 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
KR101001142B1 (ko) 2009-05-15 2010-12-17 주식회사 하이닉스반도체 커맨드 처리회로 및 그를 이용한 상변화 메모리 장치
US8984206B2 (en) 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8902899B2 (en) * 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
US8860457B2 (en) * 2013-03-05 2014-10-14 Qualcomm Incorporated Parallel configuration of a reconfigurable instruction cell array
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
WO2019083792A1 (en) * 2017-10-24 2019-05-02 Rambus Inc. MEMORY MODULE WITH PROGRAMMABLE INSTRUCTION PAD

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960003526B1 (ko) 1992-10-02 1996-03-14 삼성전자주식회사 반도체 메모리장치
US4312068A (en) * 1976-08-12 1982-01-19 Honeywell Information Systems Inc. Parallel generation of serial cyclic redundancy check
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
DE3265361D1 (en) * 1981-07-10 1985-09-19 Siemens Ag Albis Bus system
GB2128383B (en) * 1982-10-12 1986-06-18 Int Computers Ltd Data storage unit
JPS59116829A (ja) * 1982-12-23 1984-07-05 Fujitsu Ltd マイクロコンピユ−タ
US4630230A (en) 1983-04-25 1986-12-16 Cray Research, Inc. Solid state storage device
US4849702A (en) * 1983-08-01 1989-07-18 Schlumberger Techologies, Inc. Test period generator for automatic test equipment
US4695952A (en) * 1984-07-30 1987-09-22 United Technologies Corporation Dual redundant bus interface circuit architecture
GB2177825B (en) * 1985-07-12 1989-07-26 Anamartic Ltd Control system for chained circuit modules
US4949301A (en) 1986-03-06 1990-08-14 Advanced Micro Devices, Inc. Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US4768190A (en) 1986-04-30 1988-08-30 Og Corporation Packet switching network
US4845664A (en) 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
US4834890A (en) * 1987-01-30 1989-05-30 Baxter International Inc. Centrifugation pheresis system
ZA883232B (en) 1987-05-06 1989-07-26 Dowd Research Pty Ltd O Packet switches,switching methods,protocols and networks
US4920282A (en) 1987-06-23 1990-04-24 Kabushiki Kaisha Toshiba Dynamic latch circuit for preventing short-circuit current from flowing during absence of clock pulses when under test
US5341483A (en) 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5099481A (en) * 1989-02-28 1992-03-24 Integrated Device Technology, Inc. Registered RAM array with parallel and serial interface
US5321700A (en) * 1989-10-11 1994-06-14 Teradyne, Inc. High speed timing generator
US5381536A (en) 1989-12-29 1995-01-10 Cray Research, Inc. Method and apparatus for separate mark and wait instructions for processors having multiple memory ports
JPH04219859A (ja) 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
EP0447228A3 (en) 1990-03-16 1993-01-07 Hewlett-Packard Company Data stream concentrator providing attribute data storage and graphics pipeline access
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
KR100214435B1 (ko) * 1990-07-25 1999-08-02 사와무라 시코 동기식 버스트 엑세스 메모리
US5155521A (en) 1990-12-31 1992-10-13 Eastman Kodak Company Counter-driven shutter actuator control circuit
US5367643A (en) 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5175732A (en) 1991-02-15 1992-12-29 Standard Microsystems Corp. Method and apparatus for controlling data communication operations within stations of a local-area network
US5454093A (en) 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
JPH05134848A (ja) * 1991-03-06 1993-06-01 Fujitsu Ltd 中央処理装置のデータシフト回路
US5297029A (en) * 1991-12-19 1994-03-22 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2741825B2 (ja) 1992-04-28 1998-04-22 三菱電機株式会社 半導体記憶装置
US5309432A (en) * 1992-05-06 1994-05-03 At&T Bell Laboratories High-speed packet switch
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
JP2764360B2 (ja) 1992-05-18 1998-06-11 三菱電機株式会社 並/直列変換回路、直/並列変換回路およびそれらを含むシステム
JPH065091A (ja) 1992-06-23 1994-01-14 Mitsubishi Electric Corp 半導体装置
DE69329778T2 (de) 1992-09-29 2001-04-26 Seiko Epson Corp., Tokio/Tokyo System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
US5615355A (en) 1992-10-22 1997-03-25 Ampex Corporation Method and apparatus for buffering a user application from the timing requirements of a DRAM
JPH06195147A (ja) * 1992-12-23 1994-07-15 Fujitsu Ltd クロック制御装置
JPH06202933A (ja) * 1992-12-28 1994-07-22 Toshiba Corp 同期式大規模集積回路記憶装置
JP3244340B2 (ja) * 1993-05-24 2002-01-07 三菱電機株式会社 同期型半導体記憶装置
US5732041A (en) * 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US5355345A (en) 1993-10-04 1994-10-11 At&T Bell Laboratories Fully scalable memory apparatus
US5402390A (en) * 1993-10-04 1995-03-28 Texas Instruments Inc. Fuse selectable timing signals for internal signal generators
US5584009A (en) 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5566325A (en) * 1994-06-30 1996-10-15 Digital Equipment Corporation Method and apparatus for adaptive memory access
US5490059A (en) 1994-09-02 1996-02-06 Advanced Micro Devices, Inc. Heuristic clock speed optimizing mechanism and computer system employing the same
JP2697634B2 (ja) * 1994-09-30 1998-01-14 日本電気株式会社 同期型半導体記憶装置
US5682496A (en) * 1995-02-10 1997-10-28 Micron Quantum Devices, Inc. Filtered serial event controlled command port for memory
US5713005A (en) 1995-02-10 1998-01-27 Townsend And Townsend And Crew Llp Method and apparatus for pipelining data in an integrated circuit
US5848431A (en) 1995-02-21 1998-12-08 Micron Technology, Inc. Synchronous SRAMs having multiple chip select inputs and a standby chip enable input
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US5701434A (en) 1995-03-16 1997-12-23 Hitachi, Ltd. Interleave memory controller with a common access queue
KR0152914B1 (ko) * 1995-04-21 1998-12-01 문정환 반도체 메모리장치
US5793996A (en) 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
US5907864A (en) 1995-06-07 1999-05-25 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
US5600605A (en) * 1995-06-07 1997-02-04 Micron Technology, Inc. Auto-activate on synchronous dynamic random access memory
US5655105A (en) 1995-06-30 1997-08-05 Micron Technology, Inc. Method and apparatus for multiple latency synchronous pipelined dynamic random access memory
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6035369A (en) 1995-10-19 2000-03-07 Rambus Inc. Method and apparatus for providing a memory with write enable information
JPH09161475A (ja) 1995-12-01 1997-06-20 Hitachi Ltd 半導体記憶装置
US5636174A (en) * 1996-01-11 1997-06-03 Cirrus Logic, Inc. Fast cycle time-low latency dynamic random access memories and systems and methods using the same
JP4084428B2 (ja) 1996-02-02 2008-04-30 富士通株式会社 半導体記憶装置
KR100215439B1 (ko) 1996-02-08 1999-08-16 윤종용 고속의 데이타 구문분석 제어회로
US5835925A (en) 1996-03-13 1998-11-10 Cray Research, Inc. Using external registers to extend memory reference capabilities of a microprocessor
US5860080A (en) 1996-03-19 1999-01-12 Apple Computer, Inc. Multicasting system for selecting a group of memory devices for operation
US5652733A (en) * 1996-04-29 1997-07-29 Mosaid Technologies Inc. Command encoded delayed clock generator
US5889781A (en) 1996-06-11 1999-03-30 Vlsi Technology Asynchronous timing generator
US6212601B1 (en) 1996-08-30 2001-04-03 Texas Instruments Incorporated Microprocessor system with block move circuit disposed between cache circuits
TW353176B (en) 1996-09-20 1999-02-21 Hitachi Ltd A semiconductor device capable of holding signals independent of the pulse width of an external clock and a computer system including the semiconductor
KR100237565B1 (ko) * 1996-10-25 2000-01-15 김영환 반도체 메모리장치
US5920710A (en) 1996-11-18 1999-07-06 Advanced Micro Devices, Inc. Apparatus and method for modifying status bits in a reorder buffer with a large speculative state
JP4057084B2 (ja) * 1996-12-26 2008-03-05 株式会社ルネサステクノロジ 半導体記憶装置
US6175894B1 (en) * 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US5831929A (en) * 1997-04-04 1998-11-03 Micron Technology, Inc. Memory device with staggered data paths
US6032232A (en) 1997-05-29 2000-02-29 3Com Corporation Multiported memory access system with arbitration and a source burst limiter for blocking a memory access request
US5996043A (en) 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US5825711A (en) 1997-06-13 1998-10-20 Micron Technology, Inc. Method and system for storing and processing multiple memory addresses
US6032220A (en) 1997-07-18 2000-02-29 Micron Technology, Inc. Memory device with dual timing and signal latching control
US6134011A (en) * 1997-09-22 2000-10-17 Hdi Instrumentation Optical measurement system using polarized light
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
US6266750B1 (en) 1999-01-15 2001-07-24 Advanced Memory International, Inc. Variable length pipeline with parallel functional units

Also Published As

Publication number Publication date
ATE214193T1 (de) 2002-03-15
US6804743B2 (en) 2004-10-12
US6519675B1 (en) 2003-02-11
EP1010179A1 (de) 2000-06-21
KR100434211B1 (ko) 2004-06-04
KR20010013744A (ko) 2001-02-26
WO1998057331A1 (en) 1998-12-17
AU7965098A (en) 1998-12-30
US20030056040A1 (en) 2003-03-20
JP2002505786A (ja) 2002-02-19
EP1010179B1 (de) 2002-03-06
DE69804108D1 (de) 2002-04-11
US5996043A (en) 1999-11-30
JP3869021B2 (ja) 2007-01-17

Similar Documents

Publication Publication Date Title
DE69804108T2 (de) Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben
DE69904320T2 (de) On-chip schaltung und verfahren zur speicherschaltungs-prüfung
DE69808132T2 (de) Verfahren und system zu verarbeitung von befehlen in nach dem fliessbandprinzip arbeitenden speicheranlagen
DE68910391T2 (de) Verfahren zum Speicherdatenzugriff.
DE69923769T2 (de) Asynchrones halbleiterspeicher-fliessband
DE69029479T2 (de) Hochleistungsspeichersystem
DE19645745B4 (de) Dynamischer Schreib-/Lesespeicher
DE69621280T2 (de) Speichergerätschaltkreis und Verfahren zur gleichzeitigen Adressierung der Spalten einer Vielzahl von Banken einer Vielzahlbankspeicheranordnung
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE69428415T2 (de) Datenbusstruktur für beschleunigten Spaltenzugriff in einem RAM
DE69906793T2 (de) Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
DE69027348T2 (de) Speicherblockadressenermittlungsschaltkreis
DE69710515T2 (de) Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem
DE68922975T2 (de) Speichereinheit mit zwei Toren.
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE69936865T2 (de) Verfahren und apparat zur steuerung der datenrate einer taktgetriebeschaltung
DE102007063812B3 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE69333520T2 (de) Synchrone LSI Speicherandordnung
DE19951677B4 (de) Halbleiterspeichervorrichtung
DE60214992T2 (de) Mehrbit-prefetch-ausgangsdatenweg
DE69810897T2 (de) Befehlsignalgenerator für speicheranordnungen
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition