DE68922975T2 - Speichereinheit mit zwei Toren. - Google Patents

Speichereinheit mit zwei Toren.

Info

Publication number
DE68922975T2
DE68922975T2 DE68922975T DE68922975T DE68922975T2 DE 68922975 T2 DE68922975 T2 DE 68922975T2 DE 68922975 T DE68922975 T DE 68922975T DE 68922975 T DE68922975 T DE 68922975T DE 68922975 T2 DE68922975 T2 DE 68922975T2
Authority
DE
Germany
Prior art keywords
write
data
ram
read
multiplexer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE68922975T
Other languages
English (en)
Other versions
DE68922975D1 (de
Inventor
David E Cushing
Romeo Kharileh
Ming-Tzer Miu
Jian-Kuo Shen
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems 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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE68922975D1 publication Critical patent/DE68922975D1/de
Publication of DE68922975T2 publication Critical patent/DE68922975T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • Diese Erfindung bezieht sich auf Computerspeicher und insbesondere auf Dualport-Speicher.
  • Viele Verarbeitungseinheiten sind erforderlich, um Notizblockspeicher gemeinsam aufzuteilen. Um Konkurrenzprobleme im Falle von gleichzeitigen Anforderungen zu vermeiden, war es wünschenswert, Lese- und Schreibspeicher vom Dualport-Typ bereitzustellen. Zum größten Teil sind diese Speicher aus getrennten integrierten Schaltungschips aufgebaut worden bei denen der Zugriff über eine Multiplexerschaltung gesteuert ist. Es wurde herausgefunden, daß diese Anordnung unabhängiges Lesen und Schreiben von den Lese- und Schreib-Eingangsports erlaubt.
  • Eine andere Methode war es, spezielle Speicherzellenanordnungen bereitzustellen, die es ermöglichen, daß eine Speicherstelle gleichzeitig gelesen und in sie geschrieben wird, indem Lese-/Schreib-Verzögerungselemente verwendet werden, die das Überschreiben der Inhalte der Speicherzellen an einer Adresse vermeiden, die gerade ausgewählt ist, um gelesen zu werden, während dem Übergang zum Schreiben an eine andere Adresse. Während dies die Verwendung von redundanten Speicherelementen eliminieren kann, erfordert es spezielle Speicherzellen und konnte auch in einem Anwachsen der Gesamt-Speicherzykluszeit resultieren. Ein anderer Nachteil solcher Lese- und Schreibspeicher vom Dualport-Typ des Standes der Technik ist es, daß sie normalerweise eine große Zahl an Komponenten erfordern, die einen großen Bereich einnehmen, wenn sie in LSI- oder VLSI-Technologie implementiert sind. Beispiele dieser Typen von Anordnungen sind in den US-Patenten 4,610,004 und 4,623,990 offenbart. Ein anderes US-Patent, 4,628,489, offenbart ein Speichersystem in einem Computersystem, das aus einem Ein-Port-RAM besteht, der mit Adreßmultiplexern und Taktgebungsschaltungen versehen sist, wodurch die kleinsten Speichereinheiten, ein RAM-Chip, adressiert werden können und auf sie zweimal während jedes Taktzykius zugegriffen werden kann.
  • Außerdem erfordern die Speicher des Standes der Technik eine endliche Zeitperiode, während der das Schreiben stattfinden soll. Daher wird von der verarbeitenden Einheit im Falle eines Lese-Modifizier-Schreib- Operationszykius gefordert, Daten bereitzustellen, die stabil an dem Speicher während einer bestimmten Zeitperiode anliegen. bevor das Schreiben stattfindet. Da die Schreiboperation nicht stattfinden kann, bis die Modifizier-Operation beendet ist, ist das Ergebnis, daß zusätzliche Speicherzyklen erfordert sein können, um den gesamten Lese-Modifizier- Schreib-Operationszyklus auszuführen. Das heißt, die Lese -Modifizier- Schreib-Operation überspannt typischerweise drei Zykien von ungefähr der gleichen Zeitdauer. Daher sind zusätzliche Zykien erforderlich, wenn die Modifizier-Operation nicht innerhalb der spezifizierten Zeit ausgeführt werden kann.
  • Daher ist es ein Ziel der vorliegenden Erfindung, einen Speicher bereitzustellen, der eine Lese- und Schreibfähigkeit vom Dualport-Typ hat, und der unter Verwendung von standardmäßigen Speicherzellen implementiert ist.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, einen dualen Lese-/Schreibspeicher bereitzustellen, auf den von zwei unterschiedlichen Ports zum Lesen und Schreiben durch eine Vielzahl von Quellen mit einem Minimum an Komplexität zugegriffen werden kann.
  • Die obigen Ziele werden gemäß der vorliegenden Erfindung wie in Anspruch 1 spezifiziert erreicht. Ein bevorzugtes Ausführungsbeispiel des Lese-/Schreib-Registerdateispeichers vom Dualport-Typ weist Einrichtungen zum Durchführen eines Lese-Modifizier-Schreib-Operationszyklus innerhalb eines einzelnen CPU-Operationszyklus auf. Der Registerdateispeicher ist aus einer oder mehreren (RAM) adressierbaren Multibit- Speicherstellen aufgebaut, die so organisiert sind, daß sie ein RAM mit einem dualen Lese-Port und einem einzelnen Schreib-Port bilden. Außerdem weist der Registerdateispeicher eine Vielzahl von getakteten Eingangsregistern auf, die paarweise zum Speichern von Befehls-, Adreß - und Datensignalen für zwei Schreib-Ports angeordnet sind. Die unterschiedlichen Registerpaare sind als Eingaben an einen ersten Satz Multiplexerschaltungen verbunden, dessen Ausgänge mit dem Schreib- Steuersignal, den Adreß- und Dateneingängen des einzelnen Schreib-Ports verbunden sind.
  • Der einzelne Schreib-Port an der RAM-Matrix wird zweimal während jedem Zyklus zum Schreiben freigegeben. Dies ermöglicht, daß Daten, die in die Eingangsregister während dem vorangegangenen Zyklus getaktet worden sind, sequentiell in die Registerdatei-Speicherstellen geschrieben werden können. Durch Schreiben der Daten in die Eingaberegister anstelle des Registerdateispeichers in einem vorangegangenen Zyklus wird die Zeit, die zum Schreiben erforderlich ist, auf ein Minimum reduziert. Dies erlaubt, daß der Modifizier-Abschnitt eines Lese-Modifizier-Schreib-Zyklus verlängert werden kann, wodurch die Leistungsfähigkeit der Einheiten oder Quellen, die den Registerdateispeicher benutzen, verbessert wird. Diese Anordnung stellt eine Verbesserung der Leistungsfähigkeit bereit, insbesondere wenn sie in Pipeline-Systemen, wie z.B. dem System verwandt werden, das in den oben genannten verwandten Patentanmeldungen offenbart ist.
  • Um die Komplexität zu reduzieren, wird das Schreiben in einer vorbestimmten Sequenz durchgeführt, die auch das Testen erleichtert. Das heißt, in den Fällen, in denen die Quellen, die mit beiden Paaren der getakteten Eingangsregister verbunden sind, die gleiche Schreib-Adresse spezifizieren, wird die gleiche Speicherstelle zweimal in einer spezifizierten Sequenz beschrieben werden, die leicht verifiziert werden kann.
  • In dem bevorzugten Ausführungsbeispiel ist das Registerpaar, das Schreibdaten speichert, als Eingaben mit einem zweiten Satz von Multiplexerschaltungen verbunden. Jede der Multiplexerschaltungen ist so verbunden, daß sie als einen weiteren Eingang einen von den Registerdatei-Lese-Ports unterschiedlichen Eingang hat. Die Ausgabe von jeder Multiplexerschaltung des zweiten Satzes ist mit einem anderen einer Vielzahl von Ausgabe-Zwischenspeichern verbunden. Der Registerdateispeicher, die getakteten Eingaberegister, die Mulflplexerschaltungen und die Zwischenspeicher sind auf einem einzelnen, integrierten Schaltungschip verkörpert.
  • Außerdem gibt es auf dem Chip Vergleichsschaltungen zum Erfassen irgendwelcher Konflikte, die während dem Schreiben auftreten. Das heißt, wenn Daten von einem der getakteten Eingabe-Datenregister in eine Speicherstelle geschrieben werden, die die gleiche ist, wie die, die von einem der Lese-Ports gelesen wird, geben die Vergleichsschaltungen die entsprechende Ausgabeposition der Multiplexerschaltung zum Laden der Daten in die Ausgabeport-Zwischenspeicher frei. Dies gewährleistet, daß die korrekten Daten von jedem Lese-Port zu jeder Zeit gelesen werden.
  • Die neuen Merkmale, die charakteristisch für die Erfindung sind, sowohl was ihre Organisation als auch das Operationsverfahren betrifft, werden zusammen mit weiteren Zielen und Vorteilen besser aus der folgenden Beschreibung verstanden werden, wenn sie in Verbindung mit den begleitenden Zeichnungen betrachtet wird. Es soll jedoch ausdrücklich verstanden werden, daß jede der Zeichnungen nur zum Zwecke der Veranschaulichung gegeben ist und nicht als eine Definition der Schranken der vorliegenden Erfindung gedacht ist.
  • Fig. 1 zeigt in Blockdiagrammform ein bevorzugtes Ausführungsbeispiel eines Registerdateispeichers, der die Prinzipien der vorliegenden Erfindung verkörpert.
  • Fig. 2 ist ein detaillierteres Blockdiagramm von Fig. 1.
  • Fig. 3 zeigt die Zeitgabe der Registerdatei der vorliegenden Erfindung.
  • Fig. 4 ist ein Flußdiagramm, das beim Beschreiben der Operation der vorliegenden Erfindung benutzt wird.
  • Fig. 1 zeigt die grundlegende Organisation eines Registerdateispeichers, der die Lehre der vorliegenden Erfindung verkörpert. Wie man aus Fig. 1 erkennt, weist der Registerdateispeicher 10 einen Speicherteil mit wahlfreiem Zugriff (RAM) 10-1 und eine Reihe oder einen Satz von getakteten Eingangsregistern des Blocks 10-3 zum Speichern von Schreib- Befehl, -Adreß- und Daten-Signalen auf, die über ein Paar Quellen an die Schreib-Ports C und D des Registerdateispeichers angelegt sind.
  • Der Registerdateispeicher 10 weist weiter einen Satz von Eingabemultiplexerschaltungen eines Blocks 10-5 auf, die die Schreib-Portregister mit den Schreib-Freigabe-, Schreib-Daten- und Schreib-Adreß- Anschlußklemmen des einzelnen Schreib-Ports des RAM-Teils 10-1 verbinden. Eine Anzahl von Ausgabe-Multiplexerschaltungen von Block 10-7 ist auch umfaßt, wobei jede von ihnen mit einem der beiden Lese- Ports RA und RB des RAM-Teils 10-1 und mit jedem der Schreib-Port- Datenregister verbunden ist. Die Ausgabe jeder Multiplexerschaltung ist mit einem der Paare von Ausgabezwischenspeicher von Block 10-9 verbunden. Der Dateispeicher 10 hat einen Schreib-Steuerschaltungsblock 10-11, der, wie gezeigt, mit der Schreibfreigabe-Anschlußklemme verbunden ist, die mit "Wüte Puls" bezeichnet ist, und mit der Ausgabe der Befehlsregister-Multiplexerschaltung 10-50. Der Block weist ein AND- Gatter auf, das in Antwort auf die Folge von Schreibimpulsen Schreibimpulse an die "Write Puls"-Anschlußklemme als eine Funktion der ausgegebenen Schreibbefehl-Signale anlegt, die durch die Multiplexerschaltung 10-50 angelegt sind.
  • Der Registerdateispeicher 10 weist weiter die Vergleichsschaltungen des Blocks 10-14 auf, die verbunden sind, um die Schreib-Adresse des Dateispeicher-Schreib-Ports C und D und die Lese-Adressen des Lese- Ports RA und RB zu vergleichen und um Steuersignale zum Auswählen der Quelle der Ausgabedaten zu erzeugen, die in die Lese-Port-Zwischenspeicher von Block 10-9 geladen werden sollen. Insbesondere, wenn es keinen identischen Vergleich gibt, d.h. die Speicherstellen, die durch die C- und D-Portadreßregister 10-36 und 10-37 nicht die gleichen Speicherstellen sind wie die, die gelesen werden, dann werden die Daten an den Lese-Port A und B des RAM-Teils 10 ausgewählt, in dem die erste Position Null der Multiplexerschaltung 10-70 und 10-72 freigegeben wird. Wenn jedoch die Speicherstelle, die entweder von dem Port C oder dem Port D gelesen wird, die gleiche wie die Speicherstelle ist, die durch den Port A oder den Port B gelesen wird, dann werden die Daten, die durch diesen Port geschrieben werden, durch Freigeben entweder der zweiten (1) oder dritten (a) Positionen der Multiplexerschaltung 10-70 und 10-72 ausgewählt. Die Auswahlsignale, die durch Vergleichsschaltungen 10-14 für den Port A erzeugt worden sind, entsprechen den Signalen RDA, CA0 und CA1 und für Port B entsprechen den Signalen RDB, CB0 und CB1.
  • Der RAM-Teil 10-1 der Fig. 1 enthält in vereinfachter Form 32 Speicherstellen, die jeweils 8 Bit breit sind. In dem bevorzugten Ausführungsbeispiel enthält der RAM-Teil 10-1 64 Stellen und ist aus einer Anzahl von 32 x 8 Bit einzelnen Schreib-Dual-Lese-Speicherteilen aufgebaut. Die Teile sind parallel angeordnet, wie in Fig. 2 gezeigt, um die gewünschte Anzahl von Stellen bereitzustellen. Die gewünschte Breite von 32 Bit würde durch Addieren von drei zusätzlichen 32 x 8 Bit RAM- Teilen erhalten werden.
  • Diese Anordnung erleichtert stark den Entwurf und die Führung von Signalleitungen, wenn der Registerdateispeicher 10 in VLSI-Form implementiert ist. Außerdem macht es die Organisation leicht, beide Informationen bei Daten durchzuführen, die in unterschiedlichen Speicherstellen gespeichert sind.
  • Die verbleibenden Komponenten des Speichers 10 sind auch mit Standardbauteilen implementiert. Zum Beispiel können die Register des Blocks 10-3 aus konventionellen Flip-Flops vom D-Typ aufgebaut sein, während die Zwischenspeicher von Block 10-9 aus standardmäßigen, transparenten Zwischenspeicherschaltungen aufgebaut sein können.
  • Der Speicher 10 empfängt mehrere Zeitgabesignale, die für die Zwecke der vorliegenden Erfindung auf konventionelle Weise erzeugt worden sind. Wie man aus Fig. 2 erkennt, sind die Register von Block 10-3 in Antwort auf das Signal Q140, zusammen mit dem Signal CLK getaktet, das durch ein Eingabe-AND-Gatter an die Takteingabeanschlußklemmen jedes der Register 10-30 bis 10-37 angelegt ist, wie in Fig. 1 gezeigt. Jeder der Multiplexer 10-50 bis 10-54 empfängt ein Schreibauswahlsignal " Write Select", dessen Zustand bestimmt, welcher Schreib-Port auszuwählen ist (d.h. Position Null oder Eins). In dem bevorzugten Ausführungsbeispiel sind die Schreib-Ports C und D immer in der gleichen Ordnung ausgewählt, die Port C ist und dann Port D, definiert durch die binären Null- und binären Eins-Zustände, jeweils des Signales " Write Select".
  • Fig. 2 zeigt, wie kurz erwähnt, in größerem Detail, den RAM-Teil 10-1 von Fig. 1. Der Registerdateispeicher 10 ist im wesentlichen der gleiche, mit Ausnahme der Verdoppelung des Schreib-Steuerblockes 10-11, der jetzt einen zusätzlichen Eingang zum Bestimmen hat, welche Hälfte der 64 Speicherstellen adressiert wird. Auch die Anzahl von Positionen, die in den Multiplexern 10-70 und 10-72 des Blocks 10-7 enthalten sind, ist um eins erhöht worden, um Ausgaben von beiden RAM-Teilen (d.h. RAM 0 und RAM 1 bereitzustellen. Mit der Ausnahme dieser Änderungen sind beide Registerdateispeicher die gleichen.
  • Mit Bezug auf die Zeitgabe- und Flußdiagramme der Fig. 3 und 4 werden jetzt der Betrieb des bevorzugten Ausführungsbeispieles der vorliegenden Erfindung der Fig. 1 und 2 beschrieben werden. Bezugnehmend auf Fig. 3 sind dort mehrere Maschinen- oder CPU-Zyklen gezeigt. Nur ein Zyklus, der mit CPU-Zyklus bezeichnet ist, ist in seiner Gesamtheit gezeigt. Wie gezeigt, weist jeder CPU-Zyklus einen Lese-Abschnitt, einen Modifizier-Abschnitt und einen Schreib-Abschnitt auf. In dem Stand der Technik sind dies normalerweise drei Zyklen mit gleicher Länge.
  • In der vorliegenden Erfindung hat jeder CPU-Zyklus einen Lese- Abschnitt mit ungefähr standardmäßiger Dauer von 50 Nanosekunden, einen erweiterten Modifizier-Abschnitt von ungefähr 80 Nanosekunden und einen sehr kurzen Schreib-Abschnitt von ungefähr 2 Nanosekunden. Während dem Lese-Abschnitt des Zyklus findet das normale Lesen statt. Das heißt, die Adressen werden an die Lese-Ports A und B während dem Intervall angelegt, das in der Wellenform G gezeigt ist, wobei zu dieser Zeit das Schreib-Auswahlsignal "Write Select" eine binäre Null ist, wie durch die Wellenform E angezeigt. Die Dateninhalte der adressierten Speicherstellen werden ausgelesen und nachdem sie stabilisiert worden sind, in die Zwischenspeicher des Blocks 10-9 durch das Zwischenspeicher-Freigabesignal OLE, wie durch die Wellenform F gezeigt, freigegeben. Die führende Flanke des Signales OLE fällt mit dem Zeitgabesignal Q70 der Wellenform C zusammen und hat eine minimale Dauer von 5 Nanosekunden. Die gelesenen Daten werden danach an die Ausgänge der Zwischenspeicher angelegt und bleiben gültig für die Dauer, die in der Wellenform A angezeigt ist.
  • Der erweiterte Modifizier-Abschnitt des CPU-Zyklus beträgt ungefähr 88 Nanosekunden, während der Schreib-Abschnitt eine Dauer von nur 2 Nanosekunden hat, was der Zeit entspricht, die erforderlich ist, um den Befehl die Adresse und die Daten zu takten, die von den Eingabequellen in die C- und D-Portregister von Block 10-3 angelegt sind. Dies erlaubt daß der Modifizier-Abschnitt des CPU-Zyklus aus der Perspektive der Quellen ziemlich lang erscheint, da das Schreiben nur einige Nanosekunden im Gegensatz zu den normalen 30 Nanosekunden erfordert, die im Falle von Lese-, Modifizier- und Schreib-Zyklen von gleicher Dauer zugeordnet wären.
  • Wie durch die Wellenform D angezeigt, sind, wenn einmal der Lese- Abschnitt des Zyklus vorbei ist, zwei aufeinanderfolgende Schreibimpulse bereitgestellt, während denen zwei aufeinanderfolgende Schreiboperationen durchgeführt werden. Wie durch die Wellenform E angezeigt, werden während dem ersten Impuls, wenn das Signal "Write Select" eine binäre Null ist, die Daten von dem Port C (Position 0) in die spezifizierte Speicherstelle geschrieben. Während dem zweiten Schreibimpuls, wenn das Signal Write Select binär Eins ist, werden die Daten von dem Port D in die spezifizierte Speicherstelle geschrieben. Am Ende des CPU- Zyklus werden die Daten von den Quellen in die Register der Ports C und D in Antwort auf die führende Flanke des Signales CLK der Wellenform A getaktet.
  • Die obigen Arbeitsschritte werden jetzt mit spezifischer Bezugnahme auf das Flußdiagramm von Fig. 4 zusammengefaßt. Es wird bemerkt werden, daß vor dem Beginn eines CPU-Zyklus die Daten, die die durch die Quellen erzeugten Ergebnisse darstellen, die mit den Schreib-Portregistern verbunden sind, schon in die Register des Blocks 10-3 zusammen mit den erforderten Befehls- und Adreßsignalen getaktet worden sind. Die Befehlsregister 10-30 und 10-31 enthalten jeweils eine einzelne Bitposition, die, wenn sie auf binär Eins gesetzt ist, kennzeichnet, daß Schreiben stattfinden soll. Die Schreib-Adreßregister enthalten jeweils 6 Bitpositionen, von denen die Bitposition höchster Ordnung oder die am meisten kennzeichnende (most significant) Bitposition dazu verwendet wird, um zu spezifizieren, welches der beiden Byte-breiten RAM (d.h. RAM 0 oder RAM 1) gerade adressiert wird. Das heißt, der Inhalt dieser Bitposition wird als eine der Eingaben an die AND-Gatter der Blöcke 10-11a und 10-11b angelegt.
  • Wie man aus Fig. 4 erkennt, darf während dem Lese-Abschnitt des Zyklus die normale duale Leseoperation stattfinden. Das heißt, Daten werden aus den RAM-Speicherstellen ausgelesen, die durch die Lese- Adressen spezifiziert sind, die an die RA- und RB-Leseport-Adreß- Anschlußklemmen angelegt sind. Danach werden die Daten von den Speicherstellen ausgelesen, über die Multiplexerschaltungen des Blocks 10-7 angelegt und in die Zwischenspeicher-Pufferregister des Blocks 10-9 durch ein Freigabesignal OLE freigegeben. Es wird angenommen, däß die Vergleichsschaltungen des Blocks 10-14 keinen Konflikt erfaßt haben und das Signal RDA auf eine binäre Eins gezwungen haben, was in der Auswahl der Nullpositionen der Multiplexerschaltungen 10-70 und 10-72 resultiert. Dies beendet den Leseabschnittzyklus.
  • Als nächstes, wie man in Fig. 4 sieht, wird der erweiterte Modifizierabschnitt des Zyklus gestartet. Während dem ersten Teil dieses Abschnittes des Zyklus wird der erste Quellport C ausgewählt, um Daten in den RAM-Teil 10-1 durch das Write Select-Signal zu schreiben. Zu diesem Zeitpunkt legt das Write Select-Signal die Dateninhalte des C- Portregister 10-34 an die Schreibdaten-Eingangsanschlußklemmen der einzelnen Schreibports des RAM 0 und RAM 1 des RAM-Teils 10-1 über die Multiplexerschaltung 10-52 an. Zu dem gleichen Zeitpunkt legt das Signal Write Select auch die Schreibadreßinhalte der Adreßregister 10-36 des C-Ports an die Schreibadreßanschlußklemmen der einzelnen Schreib-Ports des RAM 0 und RAM 1 des RAM-Teils 10-1 über die Multiplexerschaltung 10-54 an. Danach werden die Daten, die in dem Datenregister des Ports C während dem vorangehenen CPU-Zyklus gespeichert worden sind, in die Speicherstelle geschrieben, die durch die erste Schreib-Adresse spezifiziert ist, in Antwort auf den ersten Schreibimpuls der Fig. 3, der über das AND-Gatter des Blocks 10-11 angelegt ist, der durch das Schreib-Befehlssignal von dem Register 10-30 des C- Ports freigegeben ist, das über die Multiplexerschaltung 10-50 angelegt ist.
  • Der ersten Schreiboperation folgt eine zweite Schreiboperation, wie in Fig. 4 gezeigt. Das heißt, der zweite Quell-Port D wird ausgewählt, wenn das Signal Write Select auf einen binären Eins-Zustand umschaltet. Dies veranlaßt daß die Dateninhalte des Registers 10-35 des D-Ports an die Schreibdaten-Eingangsanschlußklemmen der einzelnen Schreib-Ports der RAM 0 und RAM 1 des RAM-Teils 10-1 über die Multiplexerschaltung 10-52 angelegt werden. Zu diesem Zeitpunkt veranlaßt auch das Signal Write Select, daß die Multiplexerschaltung 10-54 die Schreibadreßinhalte des Adreßregister 10-37 des D-Ports an die Schreibadreßanschlußklemmen der einzelnen Schreib-Ports des RAM 0 und des RAM 1 des RAM-Teils 10-1 über die Multiplexerschaltung 10-54 angelegt werden.
  • Zu diesem Zeitpunkt veranlaßt auch das Signal Write Select die Multiplexerschaltung 10-50 die Inhalte des Befehlsregisters 10-31 des D-Ports als Ausgabe an das AND-Gatter des Blocks 10-11 als Eingabe anzulegen. In Antwort auf den zweiten Schreibimpuls von Fig. 3 werden die Daten, die in dem Datenregister des Port D während dem vorangegangenen CPU-Zyklus gespeichert worden sind, in die spezifizierte zweite Schreibadresse des RAM-Teils 10-1 geschrieben. Wie man in Fig. 4 sieht, beendet dies den Modifizierabschnitt des Zyklus.
  • Als nächstes wird der Schreib-Abschnitt des CPU-Zyklus durchgefährt. Während diesem Abschnitt des Zyklus veranlassen die Zeitgabesignale Q140 und CLK, daß die Daten-, Adreß- und Befehlssignale, die an die Register der C- und D-Ports des Blocks 10-3 angelegt sind, in die entsprechenden Register geladen werden. Diese Information wird in den RAM-Teil 10-1 während dem Modifizierzyklus des nächsten CPU-Zyklus von Fig. 4 geschrieben. Dies beendet den CPU-Zyklus der Operation.
  • Die Operation der Vergleichsschaltungen von Block 10-14 wird jetzt in größerem Detail betrachtet werden. Wenn während dem Lese-Abschnitt des CPU-Zyklus die Vergleichsschaltungen des Blocks 10-14 einen Konflikt erfassen, arbeiten die Schaltungen, um die geeigneten Signale an die Multiplexerschaltungen des Blocks 10-7 anzulegen, die veranlassen, daß die korrekten Daten in den Zwischenspeichern des Blockes 10-9 gespeichert werden. Das heißt, wenn z.B. die Quelle, die mit dem Lese- Port A verbunden ist, eine Lese-Adresse spezifiziert, die die gleiche wie die Schreib-Adresse ist, die in dem Adreßregister 10-36 von Port C gespeichert ist, wirken die Vergleichsschaltungen des Blocks 10-14, um das Signal CA0 auf eine binäre Eins zu zwingen. Dies veranlaßt die Multiplexerschaltung 10-70, die Datenlrihalte des Datenregisters 10-34 des C-Ports als eine Eingabe an die Zwischenspeicher 10-90 anzulegen, was sicherstellt, daß die anfordernde Quelle die neuesten Daten empfängt, die in diese Speicherstelle während dem gleichen CPU-Zyklus geschrieben werden sollen. Auf eine ähnliche Weise wählen die Vergleichsschaltungen des Blockes 10-14 auch die Dateninhalte des Datenregisters 10-35 des D- Ports aus, indem sie das Signal CA1 auf eine binäre Eins zwingen, nachdem der gleiche Konflikttyp erfaßt worden ist. Die Operation der Vergleichsschaltungen ist die gleiche für erfaßte Adreßkonflikte, die den Lese-Port B betreffen.
  • Aus dem Obigen kann gesehen werden, wie der Registerdateispeicher der vorliegenden Erfindung eine Speicherfähigkeit für ein Dualport-Lesen und ein Dualport-Schreiben bereitstellt, ohne die erwarteten Komplexitäten. Durch das Aufbauen des Registerdateispeichers aus standardmäßigen Speicherteilen mit dualen Lese- und einfachen Schreib-Ports werden beträchtliche Einsparungen bezüglich des Raumes, der Komplexität und der Kosten erreicht. Außerdem werden die sequentiellen Schreiboperationen jedes CPU-Zyklus in der gleichen vorbestimmten Sequenz ausgeführt, was den Entwurf vereinfacht, während es auch das Testen erleichtert. In dem bevorzugten Ausführungsbeispiel gibt es keine Einschränkungen beim Schreiben in die gleiche Speicherstelle von beiden Ports, wie dies bei bestimmten Vorrichtungen des Standes der Technik, Speichern mit dualen Lese-Ports und dualen Schreib-Ports, erforderlich ist. Dies kann eine schnelle Art des Verifizierens der Operation des Registerdateispeichers bereitstellen.
  • Viele Modifikationen können an dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung gemacht werden, ohne von seiner Lehre, wie sie in den beigefügten Ansprüchen ausgeführt ist, abzuweichen. Die vorliegende Erfindung kann z.B. aus irgendwelchen standardmäßigen Speicherteilen mit einem dualen Lese-Port und einem einfachen Schreib- Port implementiert sein. Auch kann jede Anzahl von parallel verbundenen bytebreiten Speicherteilen verwendet werden, um eine gewünschte Wortgröße mit unabhängigem Byte-Adressieren bereitzustellen.

Claims (9)

1. Lese-/Schreib-Speichereinheit (10), die aufweist:
- einen Speicher mit wahlfreiem Zugriff (RAM) (10-1) mit einer Vielzahl von adressierbaren Speicherstellen,wobei der RAM einen einzelnen Schreib-Anschluß hat, der Schreibdaten-, Schreibadress- und Schreibfreigabe-Eingangsanschlüsse aufweist;
- einen Multiplexer, der mit den Schreibdaten-, Schreibadress- und Schreibfreigabe-Anschlüssen des RAM verbunden ist, um Daten, Adressen und Befehle an entsprechende der RAM-Anschlüsse anzulegen;
- Zeitgabeeinrichtungen (A-H, Fig. 3) zum Erzeugen von Zeitgabesignalen während jedem Betriebszyklus, die anden RAM gekoppelt sind;
dadurch gekennzeichnet, daß
- ein Eingangsregistersatz (10-3) zum Speichernder Daten, Adressen und Befehle, die von einem Paar Anschlüsse empfangen werden, die mit dem Multiplexer (10-5) zum Empfangender Daten, Adressen und Befehle verbunden sind;
- wobei die Zeitgabeeinrichtungen ein Schreibauswahl-Signal (WRITE SELECT) mit zwei Zuständen an den Multiplexeranlegen sowie ein Schreibsteuer-Signal (WRITE) mit ersten undzweiten sequentiellen Schreibimpulsen an den Schreibfreigabe-Anschlußdes RAM;
- wobei der RAM durch den ersten Schreibimpuls freigegeben wird, um die Daten eines der Register (10-34) in dieeine der Stellen zu schreiben, die durch die entsprechende Adresse (10-36) in Antwort auf den entsprechenden Befehl (10-30) spezifiziert worden ist, der durch den Multiplexer (10-5) angelegt ist, wenn das Schreibauswahl- Signal mit zwei Zuständen in einem seiner Zustände ist; und
- wobei der RAM durch den zweiten Schreibimpuls freigegeben wird, um die Daten des anderen der Register (10-35) in die eine der Stellen zu schreiben, die durch die entsprechende Adresse (10-37) in Antwort auf den entsprechenden Befehl (10-31) spezifiziert worden ist, der durch den Multiplexer (10-5) angelegt ist, wenn das Schreibauswahl-Signal mit zwei Zuständen in seinem anderen Zustand ist;
- wobei der Betriebszyklus drei aufeinanderfolgend auftretende Abschnitte aufweist:
- (i) einen ersten Abschnitt, während dem Daten aus dem RAM (10- 1) gelesen werden;
- (ii) einen ausgedehnten zweiten Abschnitt, während dem Daten, die in den Registern (10-34, 10-35) gehalten werden, in den RAM (10-1) geschrieben werden; und
- (iii) einen dritten Abschnitt, während dem Daten, die durch die Anschlüsse geliefert werden, in die Register (10-34, 10-35) eingetragen werden, wobei die ersten und zweiten sequentiellen Schreibimpulse während dem zweiten Abschnitt auftreten.
2. Speichereinheit gemäß Anspruch 1, weiterhin dadurch gekennzeichnet, daß sie ein AND-Gatter (10-11) aufweist, das ein Paar Eingangsanschlüsse und einen Ausgangsanschluß hat, wobei einer der Eingangsanschlüsse mit dem Multiplexer verbunden ist, um die Befehle zu empfangen, und der andere der Eingangsanschlüsse mit den Zeitgabeeinrichtungen verbunden ist, um das Schreibsteuer-Signal zu empfangen, und wobei der Ausgangsanschluß mit dem Schreibfreigabe-Eingangsanschluß verbunden ist, wobei das AND-Gatter aufeinanderfolgend den ersten und zweiten Schreibimpuls des Schreibsteuer-Signals als eine Funktion der Befehle anlegt, die durch den Multiplexer in Antwort auf das Schreibauswahl-Signal während jedem Betriebszyklus angelegt werden.
3. Speichereinheit gemäß Anspruch 1, die weiterhin dadurch gekennzeichnet ist, daß sie aufweist:
- den RAM, der ein Paar Lese-Anschlüsse zum Zugreifen auf Daten von den RAM-Speicherstellen in Antwort auf Leseadressen hat, die an den RAM angelegt sind;
- Ausgangs-Zwischenspeicher (10-9) zum zeitweisen Speichern der Daten, die von den RAM-Stellen gelesen worden sind;
- einen Datenmultiplexer (10-7), der zwischen den Zwischenspeichern und dem RAM verbunden ist, um Daten von den Leseanschlüssen zu empfangen, und der mit dem Registersatz (10-3) zum Empfangen von Schreibdaten verbunden ist; und
- Vergleichsschaltungen (10-14) mit Eingangsanschlüssen (WAC, WAD, CWC, DWC), die mit dem Registersatz verbunden sind, um die Schreibadressen und -befehle zu empfangen, und die verbunden sind, um die Leseadressen (RA, RB) zu empfangen, und wobei die Vergleichsschaltungen Ausgangsanschlüsse (RDA, RDB, CA0, CA1, CB0, CB1) haben, die mit dem Datenmultiplexer verbunden sind, wobei die Vergleichsschaltungen nach Erfassen einer Identität zwischen irgendwelchen der Leseadressen und der Schreibadressen Signale auf dem Satz Ausgangsanschlüssen erzeugt, um den Datenmultiplexer dazu zu veranlassen, die Schreibdaten zu den Zwischenspeichern anstelle der Daten von den Leseanschlüssen zu transferieren, um sicherzustellen, daß die aktuellsten Daten durch die Speichereinheit in Antwort auf jeden Leseanschluß-Zugriff bereitgestellt sind.
4. Speichereinheit gemäß Anspruch 3, worin die Vergleichsschaltungen ein Signal für jede erfaßte Identität zwischen den Lese- und Schreibadressen wie folgt erzeugt:
wenn CWA = RA und CWC = 1; oder
DWA = RA und DWC = 1; oder
CWA = RB und CWC = 1; oder
DWA = RB und DWC = 1
wobei CWA, DWA und CWC, DWC jeweils den Schreibadressen und -befehlen entsprechen, die in dem Registersatz gespeichert sind, und wobei RA und RB den Leseadressen entsprechen.
5. Speichereinheit gemäß Anspruch 1, worin die Adressen, die durch den Multiplexer angelegt werden, wenn das Schreibauswahl-Signal in dem einen und dem anderen Zustand ist, die gleiche Speicherstelle spezifizieren kann, um unterschiedliche Daten freizugeben, die in die gleiche Speicherstelle während jedem Betriebszyklus geschrieben werden sollen, um Speichertesten zu erleichtern.
6. Speichereinheit gemäß Anspruch 1, worin das Schreibauswahl-Signal während jedem Betriebszyklus eine gleiche Sequenz von Zuständen wiederholt, die den Multiplexer dazu veranlassen, immer die Schreibdaten, Schreibadressen und Befehle in der gleichen Reihenfolge auszuwählen.
7. Speichereinheit gemäß Anspruch 1, worin die Zeitgabesignale ein Taktsignal aufweisen, das während dem verkurzten Schreibabschnitt jedes Betriebszyklus auftritt, wobei die Zeitgabeeinrichtungen das Taktsignal an den Registersatz anlegen, um die Schreibdaten, Schreibadressen und Befehle zum Schreiben der Schreibdaten in den RAM während dem nächsten Betriebszyklus zu speichern.
8. Speichereinheit gemäß Anspruch 1, worin der RAM eine Vielzahl von byte-breiten RAM-Anschlüssen aufweist, wobei jeder Anschluß eine vorbestimmte Anzahl von Speicherstellen hat, wobei die Anschlüsse parallel angeordnet sind, um eine gewünschte Anzahl von Stellen mit einer gewünschten Bitbreite bereitzustellen.
9. Speichereinheit gemäß Anspruch 1, die weiterhin dadurch gekennzeichnet ist, daß sie aufweist:
daß der RAM ein Paar von Leseanschlüssen zum Zugreifen auf Daten von den RAM-Speicherstellen in Antwort auf Leseadressen hat, die an den RAM angelegt sind;
Ausgangszwischenspeicher (10-9) zum zeitweisen Speichern der Daten, die von den RAM-Stellen ausgelesen worden sind;
einen Datenmultiplexer (10-7), der zwischen den Zwischenspeichern und dem RAM verbunden ist; und
worin die Zeitgabesignale weiter Freigabeimpulse (OLE) für den Ausgabezwischenspeicher aufweisen, wobei die Zeitgabeeinrichtungen die Freigabeimpulse für den Ausgabezwischenspeicher an die Zwischenspeicher während dem Leseabschnitt jedes Betriebszyklus anlegen. um zeitweise die Daten zu speichern, die von dem Datenmultiplexer empfangen werden.
DE68922975T 1988-12-19 1989-12-19 Speichereinheit mit zwei Toren. Expired - Fee Related DE68922975T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/286,552 US4933909A (en) 1988-12-19 1988-12-19 Dual read/write register file memory

Publications (2)

Publication Number Publication Date
DE68922975D1 DE68922975D1 (de) 1995-07-13
DE68922975T2 true DE68922975T2 (de) 1996-03-21

Family

ID=23099119

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68922975T Expired - Fee Related DE68922975T2 (de) 1988-12-19 1989-12-19 Speichereinheit mit zwei Toren.

Country Status (9)

Country Link
US (1) US4933909A (de)
EP (1) EP0374829B1 (de)
JP (1) JPH0746507B2 (de)
KR (1) KR930004426B1 (de)
AU (1) AU626363B2 (de)
CA (1) CA2005953A1 (de)
DE (1) DE68922975T2 (de)
DK (1) DK648089A (de)
YU (1) YU240389A (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0770213B2 (ja) * 1988-10-03 1995-07-31 三菱電機株式会社 半導体メモリ装置
US5107462A (en) * 1989-02-03 1992-04-21 Digital Equipment Corporation Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
US5115411A (en) * 1990-06-06 1992-05-19 Ncr Corporation Dual port memory system
JP2573395B2 (ja) * 1990-06-11 1997-01-22 株式会社東芝 デュアルポートメモリ装置
JPH05503390A (ja) * 1990-10-26 1993-06-03 マイクロン・テクノロジー・インコーポレイテッド 同時読み書き機能およびクロック歪みに対する耐性を有する高速5ポートレジスタファイル
JPH04184788A (ja) * 1990-11-20 1992-07-01 Fujitsu Ltd 半導体記憶装置
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
JP3169639B2 (ja) * 1991-06-27 2001-05-28 日本電気株式会社 半導体記憶装置
US5257236A (en) * 1991-08-01 1993-10-26 Silicon Engineering, Inc. Static RAM
US5321809A (en) * 1992-09-11 1994-06-14 International Business Machines Corporation Categorized pixel variable buffering and processing for a graphics system
US5315178A (en) * 1993-08-27 1994-05-24 Hewlett-Packard Company IC which can be used as a programmable logic cell array or as a register file
US5581720A (en) * 1994-04-15 1996-12-03 David Sarnoff Research Center, Inc. Apparatus and method for updating information in a microcode instruction
US5751999A (en) * 1994-06-23 1998-05-12 Matsushita Electric Industrial Co., Ltd. Processor and data memory for outputting and receiving data on different buses for storage in the same location
US5745732A (en) * 1994-11-15 1998-04-28 Cherukuri; Ravikrishna V. Computer system including system controller with a write buffer and plural read buffers for decoupled busses
US5566123A (en) 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram
US5813037A (en) * 1995-03-30 1998-09-22 Intel Corporation Multi-port register file for a reservation station including a pair of interleaved storage cells with shared write data lines and a capacitance isolation mechanism
US5713039A (en) * 1995-12-05 1998-01-27 Advanced Micro Devices, Inc. Register file having multiple register storages for storing data from multiple data streams
KR100190373B1 (ko) * 1996-02-08 1999-06-01 김영환 리드 패스를 위한 고속 동기식 메모리 장치
US5802579A (en) * 1996-05-16 1998-09-01 Hughes Electronics Corporation System and method for simultaneously reading and writing data in a random access memory
US5987578A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Pipelining to improve the interface of memory devices
US5923608A (en) * 1997-10-31 1999-07-13 Vlsi Technology, Inc. Scalable N-port memory structures
US6360307B1 (en) 1998-06-18 2002-03-19 Cypress Semiconductor Corporation Circuit architecture and method of writing data to a memory
US7400548B2 (en) * 2005-02-09 2008-07-15 International Business Machines Corporation Method for providing multiple reads/writes using a 2read/2write register file array
US7962698B1 (en) 2005-10-03 2011-06-14 Cypress Semiconductor Corporation Deterministic collision detection
JP4201011B2 (ja) * 2006-03-27 2008-12-24 トヨタ自動車株式会社 蓄熱装置
CN102110464B (zh) * 2009-12-26 2015-06-10 上海芯豪微电子有限公司 宽带读写存储器装置
US8862836B2 (en) * 2011-06-14 2014-10-14 Texas Instruments Incorporated Multi-port register file with an input pipelined architecture with asynchronous reads and localized feedback
US8862835B2 (en) * 2011-06-14 2014-10-14 Texas Instruments Incorporated Multi-port register file with an input pipelined architecture and asynchronous read data forwarding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4287575A (en) * 1979-12-28 1981-09-01 International Business Machines Corporation High speed high density, multi-port random access memory cell
JPS573155A (en) * 1980-06-05 1982-01-08 Ricoh Co Ltd Input and output control circuit for memory device
US4628489A (en) * 1983-10-03 1986-12-09 Honeywell Information Systems Inc. Dual address RAM
US4610004A (en) * 1984-10-10 1986-09-02 Advanced Micro Devices, Inc. Expandable four-port register file
US4623990A (en) * 1984-10-31 1986-11-18 Advanced Micro Devices, Inc. Dual-port read/write RAM with single array
US4811296A (en) * 1987-05-15 1989-03-07 Analog Devices, Inc. Multi-port register file with flow-through of data

Also Published As

Publication number Publication date
JPH0746507B2 (ja) 1995-05-17
DK648089A (da) 1990-06-20
DK648089D0 (da) 1989-12-19
AU4692089A (en) 1990-06-21
EP0374829A2 (de) 1990-06-27
US4933909A (en) 1990-06-12
KR930004426B1 (ko) 1993-05-27
DE68922975D1 (de) 1995-07-13
EP0374829A3 (de) 1991-05-29
KR900010561A (ko) 1990-07-07
EP0374829B1 (de) 1995-06-07
JPH02220293A (ja) 1990-09-03
YU240389A (sh) 1994-01-20
AU626363B2 (en) 1992-07-30
CA2005953A1 (en) 1990-06-19

Similar Documents

Publication Publication Date Title
DE68922975T2 (de) Speichereinheit mit zwei Toren.
DE60016220T2 (de) Speichererweiterungsmodul mit einer vielzahl von speicherbanken und einer banksteuerungschaltung
DE69535672T2 (de) Synchrone NAND DRAM Architektur
DE2948159C2 (de) Integrierter Speicherbaustein mit wählbaren Betriebsfunktionen
DE69204364T2 (de) Anordnung zur Bestimmung der Eigenschaften von steckbaren Speichern.
DE3686436T2 (de) Speichersystem mit hoher leistung.
DE3724317C2 (de)
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE68918469T2 (de) Serieller Lesezugriff von seriellen Speichern mit einer durch den Benutzer definierten Startadresse.
DE68922941T2 (de) Bedingungsschreib-RAM.
DE69804108T2 (de) Zweischritt-befehlspuffer für speicheranordnung und verfahren und speicheranordnung und rechnersystem unter verwendung desselben
DE69230366T2 (de) Multiport statischer Direktzugriffspeicher mit schnellem Schreibdurchschema
DE69428415T2 (de) Datenbusstruktur für beschleunigten Spaltenzugriff in einem RAM
DE3902425C2 (de)
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3412676C2 (de)
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69621280T2 (de) Speichergerätschaltkreis und Verfahren zur gleichzeitigen Adressierung der Spalten einer Vielzahl von Banken einer Vielzahlbankspeicheranordnung
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
EP0974977A2 (de) Integrierter Speicher
DE3834759A1 (de) Halbleiterspeichereinrichtung mit ablage-speicher und betriebsverfahren
DE69619794T2 (de) Speicherzelle zum lesen und schreiben einer registerbank
DE2803989A1 (de) Wahlfreie zugriffsspeichervorrichtung fuer digitale daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee