DE60010511T2 - Schnittstelle für eine speichereinheit - Google Patents

Schnittstelle für eine speichereinheit Download PDF

Info

Publication number
DE60010511T2
DE60010511T2 DE60010511T DE60010511T DE60010511T2 DE 60010511 T2 DE60010511 T2 DE 60010511T2 DE 60010511 T DE60010511 T DE 60010511T DE 60010511 T DE60010511 T DE 60010511T DE 60010511 T2 DE60010511 T2 DE 60010511T2
Authority
DE
Germany
Prior art keywords
data
output
input
address
signal
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
DE60010511T
Other languages
English (en)
Other versions
DE60010511D1 (de
Inventor
Klaus Oberlaender
Sabeen Randhawa
Yannick Martelloni
Manfred Henftling
Rami Zemach
Zohar Peleg
Christian Wiedholz
Gigy Baror
Doron Shoham
Oded Trainin
Niv Margalit
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Application granted granted Critical
Publication of DE60010511D1 publication Critical patent/DE60010511D1/de
Publication of DE60010511T2 publication Critical patent/DE60010511T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft eine Schnittstelle für eine Speichereinheit, insbesondere einen Mikroprozessor mit einer Speichereinheit und einer Schnittstelle zum Koppeln der Speichereinheit mit der Zentralverarbeitungseinheit. Einer der Hauptfaktoren, die die Geschwindigkeit eines Mikroprozessors bestimmen, wird durch die Schnittstelle zwischen der Zentralverarbeitungseinheit und dem Speicher definiert. Deshalb enthalten moderne Mikroprozessoren einen schnellen Cache-Speicher oder statischen Direktzugriffsspeicher (SRAM) auf dem Chip, um Zugriffsverzögerungen aufgrund eines externen Speicherzugriffs zu minimieren. Diese Cache- oder SRAM-Speicher besitzen eine sehr niedrige Zugriffszeit und können Daten im günstigsten Fall innerhalb eines einzigen Prozessorzyklus abrufen oder schreiben. Wenn eine Speichereinheit, zum Beispiel ein Cache-Speicher, Daten innerhalb eines einzigen Prozessorzyklus schreiben und lesen kann, hätte das System den schnellstmöglichen Zugriff auf in diesem Speicher gespeicherte Daten. Dennoch weisen moderne Mikroprozessoren oder Mikrosteuerungen eine Pipeline-Struktur auf. Anders ausgedrückt wird jede vollständige Verarbeitung einer Anweisung in mehrere Phasen aufgeteilt, wie zum Beispiel das Abrufen einer Anweisung, das Decodieren derselben, das Ausführen derselben und das Zurückschreiben des Ergebnisses. Diese Pipeline-Phasen werden sequentiell ausgeführt und jede Pipeline-Phase wird gewöhnlich mit einem Teil einer unterschiedlichen Anweisung gefüllt. Durch Ausführung mehrerer Anweisungen gibt dies einem Mikroprozessor die Möglichkeit, im Mittel eine Anweisung in einem Zyklus auszuführen. Je mehr Pipeline-Phasen ein Prozessor aufweist, desto diverser sind diese Phasen.
  • Aufgrund der Eigenschaften eines Pipeline-Mikroprozessors kann das Schreiben von Daten innerhalb eines einzigen Prozessorzyklus unmöglich werden, da die Adresse und die Daten nicht zur selben Zeit vorhanden sind. In einem solchen System sind die zu schreibenden Daten gewöhnlich innerhalb einer Verzögerungszeit (Latenz) von einem Zyklus nach der Erzeugung der Adresse verfügbar, da jede in einer unterschiedlichen Pipeline-Phase erzeugt wird. Da bei einer Leseanweisung Daten durch den Speicher bereitgestellt werden, entsteht nur die Speicherzugriffsverzögerung, und das Lesen von Anweisungen kann in einem Zyklus ausgeführt werden, wenn der Speicher schnell genug ist. Immer, wenn ein Lesen einem Schreiben folgt, wird das System jedoch aufgrund der obenerwähnten Latenzeinschränkungen verzögert.
  • EP 0 526 030 A betrifft eine SRAM-Schnittstelleneinheit mit Lese- und Schreibschaltkreisen für einen Speicher, die die Präsentation von in einem Schreibzyklus gelegten Daten ohne Verlust dieser Daten ermöglicht. Am Ende jedes Schreibzyklus werden eingegebene Daten in einem Datenspeicher gespeichert, wobei gleichzeitig die zugeordnete Adresse für diese Daten in einen schnellen temporären Adressenspeicher geladen wird. Ein erster Multiplexer koppelt eine Hauptspeichereinheit entweder mit dem Ausgang des Adressenspeichers oder mit einem Adressensignal. Ein zweiter Multiplexer wählt entweder den Datenausgang der Hauptspeichereinheit oder den Ausgang des Datenspeichers. Ein Komparator vergleicht ein Adressensignal mit dem in dem Adressenspeicher gespeicherten Signal und steuert den zweiten Multiplexer.
  • DE 41 14 053 A beschreibt eine Cache-Schnittstelleneinheit mit einem Cache-Speicher mit einer Anzahl von Adressenpuffern und Datenpuffern, die an jeweilige Eingänge des Cache-Speichers angekoppelt werden. Es wird eine geordnete Schreiboperation von Datensignalen aus einem ersten Adressenpuffer in einen zweiten Adressenpuffer und schließlich in den Cache-Speicher gelehrt. Im Fall einer Leseoperation sind keine Daten in einem jeweiligen Datenregister zu speichern.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung ist deshalb die Bereitstellung einer Schnittstelle zwischen einer Speichereinheit und einer Datenbearbeitungseinheit, wie zum Beispiel einer Zentralverarbeitungseinheit eines Mikroprozessors oder einer Mikrosteuerung, wodurch der schnellste Zugriff auf den Speicher ermöglicht wird. Zum Beispiel erfordert ein Synchron-SRAM gleichzeitige Adressen- und Datendurchführung mit der höchstmöglichen Betriebsgeschwindigkeit.
  • Diese Aufgabe wird gelöst durch eine Schnittstellenschaltung zum Koppeln einer Datenbearbeitungseinheit mit einer Speichereinheit mit Steuereingängen, einem Adressensignaleingang, einem Datensignaleingang und einem Datensignalausgang. Die Schnittstellenschaltung umfaßt einen Adressenpuffer mit einem Eingang und einem Ausgang, wodurch der Eingang ein Adressensignal von der Datenbearbeitungseinheit empfängt, einen ersten Multiplexer, der die Speichereinheit entweder mit dem Ausgang des Adressenpuffers oder mit dem Adressensignal koppelt, einen Datenpuffer mit einem Eingang und einem Ausgang, wobei der Eingang ein Datensignal von der Datenbearbeitungseinheit empfängt und der Ausgang mit dem Speicherdateneingang gekoppelt ist, einen zweiten Multiplexer zum Wählen entweder des Speicherdatensignalausgangs oder des Datenpufferausgangs und einen Komparator zum Vergleichen des Adressensignals mit dem Signal aus dem Adressenpufferausgang, wobei ein Steuersignal erzeugt wird, das den zweiten Multiplexer steuert.
  • Die Schnittstellenschaltung kann in einem Mikroprozessor oder in einem Speicherbaustein implementiert werden. Am vorteilhaftesten wird sie in einer Mikrosteuerung implementiert, die einen Mikroprozessor und einen Speicher auf einem einzigen Chip integriert aufweist.
  • Eine weitere Ausführungsform ist eine Schnittstellenschaltung zum Koppeln einer Datenbearbeitungseinheit mit einer Speichereinheit mit Steuereingängen, einem Adressensignaleingang, einem Datensignaleingang und einem Datensignalausgang. Die Schnittstelle umfaßt einen ersten Adressenpuffer mit einem Eingang und einem Ausgang, wodurch der Eingang ein Adressensignal aus der Datenbearbeitungseinheit empfängt. Ein zweiter Adressenpuffer besitzt einen Eingang und einen Ausgang, wodurch der Eingang mit dem Ausgang des ersten Adressenpuffers gekoppelt wird. Ein erster Multiplexer besitzt Eingänge und einen Ausgang und koppelt entweder den Inhalt des erste oder des zweiten Adressenpuffers an seinen Ausgang an. Ein zweiter Multiplexer, der die Speichereinheit entweder mit dem Ausgang des ersten Multiplexers oder mit dem Adressensignal koppelt, ist weiter vorgesehen. Ein Datenpuffer besitzt einen Eingang und einen Ausgang, wodurch der Eingang ein Datensignal von der Datenbearbeitungseinheit empfängt, und der Ausgang mit dem Speicherdateneingang gekoppelt ist. Ein dritter Multiplexer zum Wählen entweder des Speicherdatensignalausgangs oder des Datenpufferausgangs ist vorgesehen. Weiterhin umfaßt die Schnittstelle einen Komparator zum Vergleichen des Inhalts des ersten und des zweiten Adressenpuffers, wobei ein Steuersignal erzeugt wird, das den dritten Multiplexer steuert.
  • Weiterhin wird ein Verfahren zum Schreiben von Daten in eine integrierte Speichereinheit in einem Mikroprozessor mit einer Pipeline-Struktur offen gelegt, bei dem ein in den Speicher zu schreibendes Datensignal in bezug auf ein Adressensignal verzögert wird. Das Verfahren umfaßt die folgenden Schritte:
    Puffern des Adressensignals,
    im Fall eines folgenden Schreibsignals, Speichern des Datensignals unter dem gepufferten Adressensignal und Puffern des folgenden Adressensignals und
    im Fall eines folgenden Lesesignals, Puffern des Datensignals.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockschaltbild des Prinzips der vorliegenden Erfindung,
  • 2A2D zeigen Impulsdiagramme von Speichereinheiten gemäß dem Stand der Technik,
  • 3A und 3B zeigen Impulsdiagramme eines Speichers mit einer Schnittstelle gemäß der vorliegenden Erfindung,
  • 4 zeigt eine weitere Ausführungsform einer Schnittstelle gemäß der vorliegenden Erfindung,
  • 5 zeigt eine weitere Ausführungsform einer Schnittstelle gemäß der vorliegenden Erfindung,
  • 6 zeigt ein Flußdiagramm der Schritte des Lesens und Schreibens durch eine Speicherschnittstelle gemäß der vorliegenden Erfindung und
  • 7 zeigt eine Tabelle des Inhalts der Puffer und des Status der Multiplexer während verschiedener Zyklen.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • 1 zeigt ein Blockschaltbild einer Anordnung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Ein statisches Direktzugriffsspeichermodul (SRAM) 1 stellt einen Dateneingang Din und einen Datenausgang Dout, einen Takteingang Clk, einen Schreibfreigabeeingang WE, einen kombinierten Lese-/Schreibeingang RD/WR und mehrere Adresseneingänge Addr bereit. Eine Steuerlogikeinheit 2 empfängt ein RD/WR' und ein WE' oder äquivalente Steuersignale zum Beispiel von einem Mikroprozessor und erzeugt die Signale RD/WR und WE für den SRAM 1. Weiterhin erzeugt die Steuereinheit 2 ein Steuersignal für einen Multiplexer 3 und einen Multiplexer 8. Der Multiplexer 3 empfängt mehrere Adressensignale Addr', z.B. von dem Mikroprozessor an seinen ersten Eingängen und mehrere Adressensignale von einem Adressenpuffer 4, der durch die Steuerlogik 2 gesteuert wird. Der Adressenpuffer 4 besitzt Eingangsleitungen, die mit den Adressensignalen Addr' gekoppelt sind. Es ist ein Komparator 5 vorgesehen, der die Ausgangssignale des Adressenpuffers mit den Adressensignalen Addr' vergleicht. Der Komparator 5 erzeugt ein Steuersignal, das einen zweiten Multiplexer 7 steuert. Der Multiplexer 7 empfängt ein Datensignal Dout aus dem SRAM 1 an seinem ersten Eingang und ein Datensignal aus dem Ausgang eines Datenpuffers 6. Der Ausgang des Multiplexers 7 liefert ein Datenausgangssignal Dout'. Der Datenpuffer 6 empfängt ein Dateneingangssignal Din' zum Beispiel von dem Mikroprozessor und umfaßt einen Ausgang, der mit einem ersten Eingang eines Multiplexers 8 gekoppelt ist, dessen Ausgang mit dem Dateneingang Din des SRAM 1 gekoppelt ist. Der zweite Eingang des Multiplexers 8 ist mit dem Dateneingangssignal Din' gekoppelt. Der Adressenpuffer 4 und der Datenpuffer 6 werden durch Steuerlogik 2 gesteuert. Der Datenpuffer 6 kann den Multiplexer 8 zum Umschalten zwischen dem Signal Din' und der Ausgabe des Datenpuffers 6 enthalten.
  • 2A2D zeigt die Standard-Zeitsteuerungseigenschaften eines Synchron-SRAM mit einem Pipeline-Mikroprozessor. In 2A ist die grundlegende Schreibzeitsteuerung abgebildet. Während der ansteigenden Flanke (a) des Taktsignals Clk wird das RD/WR-Signal gesetzt, und gleichzeitig werden die Adressensignale bereitgestellt. Aufgrund der Pipeline-Architektur sind die eigentlichen Datensignale und die jeweiligen Schreibfreigabebitsignale noch nicht verfügbar. Diese Signale werden mit der ansteigenden Flanke (b) des nächsten Taktzyklus bereitgestellt.
  • In 2B ist die grundlegende Lesezeitsteuerung in einem Pipeline-Prozessor abgebildet. Ein Lesezyklus nimmt nur einen einzigen Taktzyklus in Anspruch, weil die einzige Verzögerung, die auftritt, die Zugriffszeitverzögerung des SRAM ist.
  • In 2C ist ein Lesezyklus, dem ein Schreibzyklus folgt, abgebildet. Da ein Lesezyklus nur einen einzigen Taktzyklus in Anspruch nimmt, kann ein Schreibzyklus unmittelbar folgen.
  • Wie oben beschrieben, entstehen gewöhnlich keine Zeitsteuerungsprobleme, wenn ein Lesezyklus einem anderen Lesezyklus folgt, ein Schreibzyklus einem Schreibzyklus folgt oder ein Schreibzyklus einem Lesezyklus folgt.
  • 2D zeigt einen Schreibzyklus, dem unmittelbar ein Lesezyklus folgt. Bei diesem Ereignis kommt es zu einer Kollision. Aufgrund der Verzögerung der zu schreibenden Daten kollidieren die Signale Din und Dout. Deshalb muß für einen Lesezyklus, der einem Schreibzyklus folgt, ein Wartezustand eingefügt werden.
  • Um diese Zykluskosten zu vermeiden, stellt die vorliegende Erfindung einen verzögerten Schreibzyklus bereit. Zu diesem Zweck sind der Adressenpuffer 4 und der Datenpuffer 6 vorgesehen. Immer, wenn ein Schreibzyklus startet, speichert der Adressenpuffer 4 die bereitgestellten Adressen Addr', und der Datenpuffer 6 speichert die Datensignale Din' in dem folgenden Zyklus. Die Steuersignale können gepuffert oder in der Steuerlogik 2 erzeugt werden. Das Schreiben in den SRAM wird zurückgestellt, bis der nächste Schreibzyklus beginnt. Anders ausgedrückt, werden nur dann, wenn diesem „anfänglichen" Schreibzyklus ein Schreibzyklus folgt, die Daten dieses „anfänglichen" Schreibzyklus, die in dem Datenpuffer 6 gepuffert sind, unter Verwendung des Multiplexers 3 unter der in dem Adressenpuffer 4 gepufferten Adresse in den SRAM 1 geschrieben. Solange diesem „anfänglichen" Schreibzyklus ein Lesezyklus folgt, wird der eigentliche Schreibzyklus in den SRAM 1 zurückgestellt.
  • Wenn einer der Lesezyklen zwischen dem „anfänglichen" Schreibzyklus und den ersten folgenden Schreibzyklen dieselbe Adresse wie die „anfängliche" Schreibadresse lesen möchte, dann finden die folgenden Schritte statt: Der Komparator 5 vergleicht die Adressensignale Addr' jedes Lesezyklus mit der gepufferten Adresse in dem Adressenpuffer 4. Wenn diese Signale gleich sind, wird der Multiplexer 7 so gesteuert, daß er die gepufferten Daten aus dem Datenpuffer 6 an die Ausgangsleitungen Dout' ausgibt.
  • Als Beispiel zeigt 3A eine Reihe von Lese- und Schreibzyklen mit einer Ausführungsform gemäß 1. 3A zeigt die Signale RD/WR', ADDR', Din', Dout' sowie die Signale RD/WR, ADDR, WE, Din und Dout. Als erstes wird ein Lesezyklus in dem Zyklus t1 ausgeführt. In t2 findet ein Schreibzyklus statt und die zugeordnete Adresse b wird in dem Adressenpuffer 4 gepuffert. Im Zyklus t3 erfolgt ein weiterer Schreibzyklus. Deshalb wird der Multiplexer 3 unter Verwendung der gepufferten Adressensignale aus dem Adressenpuffer 4 auf seinen zweiten Eingang geschaltet. Daten (b) werden unter der gepufferten Adresse b in den SRAM 1 geschrieben, und die Adresse c wird in dem Adressenpuffer 4 gepuffert. Da Daten (b) in dem Zyklus t3 direkt in den SRAM 1 geschrieben werden, müssen sie nicht in dem Datenpuffer 6 gepuffert werden. Im Zyklus t4 erfolgt ein weiterer Schreibzyklus. Deshalb werden Daten (c) unter der gepufferten Adresse c aus dem Adressenpuffer 4 in den SRAM 1 geschrieben. Wieder wird der Multiplexer 3 in diesem Fall auf den Adressenpuffer 4 geschaltet. Im Zyklus t5 beginnt ein Lesezyklus. Der Multiplexer 3 wird zurückgeschaltet, um das Adressensignal Addr' an seinem Ausgang zu führen. Nun puffert der Datenpuffer 6 die Daten (d), während der SRAM 1 Daten (e) an dem Ausgang Dout bereitstellt. Der Multiplexer 7 wird so gesteuert, daß er Dout' mit Dout koppelt. In dem folgenden Zyklus t6 erfolgt ein weiterer Schreibzyklus. Der Multiplexer 3 wird auf den Adressenpuffer 4 geschaltet. Die zuvor gepufferte Adresse d und die gepufferten Daten (d) werden nun in den SRAM geschrieben, während der Adressenpuffer 4 die neue Adresse f puffert.
  • 3B zeigt ein weiteres Beispiel für Kombinationen von Lese- und Schreibzyklen mit einer Ausführungsform gemäß 1.
  • Während t1 erfolgt ein erster Schreibzyklus, in dem die Adresse a in dem Adressenpuffer 4 gepuffert wird. In t2 folgt ein zweiter Schreibzyklus. Die Daten (a), die nun bereitgestellt werden, werden deshalb unter der gepufferten Adresse a in den SRAM 1 geschrieben. Zu diesem Zweck wird der Multiplexer 3 auf den Adressenpuffer 4 geschaltet. Weiterhin wird die Adresse b aus dem zweiten Schreibzyklus in dem Adressenpuffer 4 gepuffert. Während t3 erfolgt ein Lesezyklus. Der Multiplexer 3 wird auf den Adresseneingang Addr' zurückgeschaltet. Die nun bereitgestellten Daten (b) werden in dem Datenpuffer 6 gepuffert und parallel dazu wird der SRAM 1 unter Verwendung der bereitgestellten Adressen an Addr', in diesem Fall der Adresse a, ausgelesen. Der Multiplexer 7 wird so geschaltet, daß er den Ausgang Dout des SRAM 1 mit dem Ausgang Dout' koppelt. In dem nächsten Zyklus t4 erfolgt ein Lesezyklus. Dieser Lesezyklus versucht, auf die zuvor geschriebene Adresse b zuzugreifen. Da diese Daten noch nicht in den SRAM 1 geschrieben wurden, findet das folgende Szenario statt: Der Komparator 5 vergleicht das Adressensignal Addr' mit der gepufferten Adresse in dem Adressenpuffer 4. Da diese Adressen identisch sind, steuert der Komparator 5 den Multiplexer 7 so, daß der Ausgang des Datenpuffers 6 mit dem Ausgang Dout' verbunden wird. In diesem Spezialfall ist der SRAM 1 nicht beteiligt. Die Daten sind sofort durch den Datenpuffer 6 zugänglich. Der Komparator muß die ankommende Adresse Addr' mit der gepufferten Adresse in dem Adressenpuffer 4 vergleichen und das Ergebnis während des Zyklus halten können. Haltemittel wie zum Beispiel ein Puffer oder ein Register oder ein beliebiges anderes entsprechendes Mittel sind dazu fähig.
  • Abhängig von der Pipeline-Struktur kann die Verzögerung zwischen der Bereitstellung des Adressensignals und des Datensignals im Fall eines Schreibzyklus unterschiedlich sein. Wie oben beschrieben, kann diese Verzögerung einen einzigen Zyklus betragen. Natürlich ist es möglich, daß sich diese Verzögerung aufgrund der Struktur der Pipeline vergrößert. In diesem Fall muß der oben beschriebene Speicherweiterleitungsmechanismus verwendet werden. Wenn die Verzögerung zum Beispiel zwei Zyklen beträgt, sind zwei Adressenpuffer und die jeweilige Logik notwendig, um diese Signale zu puffern, bevor die eigentlichen Daten in den SRAM geschrieben werden. Dies ist in 1 durch die gepunkteten zusätzlichen Adressenpuffer dargestellt. Die Anzahl von Adressenpuffern ist so tief wie die Verzögerung zwischen Adressen- und Datensignalen. Die erforderliche Logik zur Steuerung dieser Puffer nimmt jeweils zu.
  • 4 zeigt eine weitere bevorzugte Ausführungsform gemäß der vorliegenden Erfindung. Bei dieser Ausführungsform wird eine Funktion der eingebauten Speicherselbstprüfung (MBIST) mit dem oben beschriebenen Speicherweiterleitungsmechanismus kombiniert. Wieder umfaßt ein SRAM 410 einen Adresseneingang Addr, einen Schreibfreigabeeingang WE, einen Dateneingang Din und einen Datenausgang Dout. Der eigentliche Adresseneingang Addr' ist mit dem ersten Eingang eines Multiplexers 400, mit dem Eingang eines Adressenpuffers 402 und mit dem ersten Eingang eines Komparators 403 gekoppelt. Der Ausgang des Adressenpuffers 402 ist mit dem zweiten Eingang des Komparators 403 und dem ersten Eingang eines Multiplexers 401 gekoppelt. Der Ausgang des Multiplexers 401 ist mit dem zweiten Eingang des Multiplexers 400 gekoppelt, dessen Ausgang mit dem Adresseneingang Addr des SRAM 410 verbunden ist. Der Multiplexer 400 wird durch Steuer- und MBIST-Steuersignale gesteuert, und der Multiplexer 401 durch ein jeweiliges MBIST-Steuersignal. Der zweite Eingang des Multiplexers 401 ist mit den Prüfadressenleitungen MBIST ADDR verbunden. Das Schreibfreigabesig nal WE' ist mit einem Gültig-Bit-Register 406 und dem ersten Eingang eines Multiplexers 411 gekoppelt. Das Gültig-Register ist so breit wie das Datenregister und gibt das WE-Signal für jedes Bit wieder. Das hat den Vorteil, daß man die tatsächliche Größe des Datenworts, das in den SRAM geschrieben wird, zum Beispiel 8, 16 oder 32 Bit, entscheiden kann. Außerdem ist Einzelbitmanipulation auf herkömmliche Weise durch Validierung der jeweiligen Bit des Gültig-Registers 406 möglich. Bei dieser Ausführungsform besitzt jedes Bit eines Worts in dem SRAM seine eigene WE-Leitung. Natürlich kann dieses Schema leicht an andere organisierte SRAMs zum Beispiel nur mit einer einzigen WE-Leitung angepasst werden. Der zweite Eingang des Multiplexers 411 ist mit dem Ausgang des Multiplexers 412 angekoppelt. Der Multiplexer 412 empfängt an seinem ersten Eingang das Signal MBIST WE und an seinem zweiten das Ausgangssignal aus dem Bit-Gültig-Register 406. Die Multiplexer 411 werden durch ein kombiniertes Steuer- und MBIST-Steuersignal gesteuert, und der Multiplexer 412 durch ein jeweiliges MBIST-Steuersignal. Der Ausgang des Bit-Gültig-Puffers 406 ist auch pro Bit mit dem ersten Eingang eines AND-Gatters 405 verbunden, dessen zweiter Eingang mit dem Ausgang des Komparators 403 gekoppelt ist. Der Dateneingang Din' ist mit dem Eingang eines Datenpuffers 407 und dem ersten Eingang eines Multiplexers 409, dessen zweiter Eingang mit dem Ausgang des Multiplexers 408 gekoppelt ist, verbunden. Der erste Eingang des Multiplexers 408 ist mit dem Ausgang des Datenpuffers 407 gekoppelt. Der zweite Eingang des Multiplexers 408 empfängt ein MBIST-Din-Signal. Der Multiplexer 408 wird durch ein jeweiliges MBIST-Steuersignal gesteuert, und der Multiplexer 412 wird wieder durch ein kombiniertes Steuer- und MBIST-Steuersignal gesteuert. Eine (nicht gezeigte) Steuereinheit erzeugt alle Steuer- und MBIST-Steuersignale. Der Ausgang des Multiplexers 409 ist mit dem Dateneingang Din des SRAM 410 gekoppelt. Der Datenausgang Dout des SRAM 410 ist mit dem ersten Eingang eines Multiplexers 404 gekoppelt, dessen zweiter Eingang mit dem Ausgang des Datenpuffers 407 gekoppelt ist. Der Ausgang des AND-Gatters 405 steuert den Multiplexer 404 pro Bit, dessen Ausgang mit dem Datenausgang Dout' gekoppelt ist. Diese Ausführungsform besitzt immer dann, wenn die jeweiligen MBIST-Steuersignale auf den normalen Betriebsmodus, nämlich den Lese-/Schreibmodus, gesetzt sind, eine ähnliche Funktionalität. In diesem Modus wird der Multiplexer 401 auf den Adressenpuffer 402, der Multiplexer 412 auf das Gültig-Bit-Register und der Multiplexer 408 auf den Datenpuffer 407 geschaltet. Der Gültig-Bit-Puffer 406 ist vorgesehen, um anzuzeigen, ob der Datenpuffer 407 gültige Daten enthält, wie oben beschrieben. Die Bit in diesem Puffer werden für die jeweiligen Bit in dem Datenpuffer 407 immer dann gesetzt, wenn diese Bit des Datenpuffers 407 geschrieben werden und der Adressenpuffer 402 die entsprechende Adresse enthält. Durch das AND-Gatter 405 schaltet der Multiplexer 404 zwischen dem Ausgang des Datenpuffers 407 und dem Datenausgang Dout des SRAMs 410. Immer wenn das MBIST-Steuersignal auf MBIST-Funktion geschaltet ist, wird der Multiplexer 401 auf den Eingang MBIST ADDR geschaltet. Der Multiplexer 400 wird dann auf den Ausgang des Multiplexers 401 geschaltet und die (nicht gezeigte) MBIST-Einheit kann durch den Eingang MBIST ADDR dem SRAM 410 verschiedene Prüfadressen zuführen. Außerdem wird das Schreibfreigabesignal durch die Multiplexer 411 und 412 zu dem Signal MBIST WE geschaltet. In diesem Modus können Daten mittels des Multiplexers 409 und des Multiplexers 408 dem SRAM 410 zugeführt werden. Bei Ausführungsformen von SRAMs mit MBIST-Funktionalität gemäß dem Stand der Technik werden gewöhnlich außerhalb angeordnete Multiplexer verwendet, die zwischen den jeweiligen Signalen umschalten. Dadurch könnte die Zugriffszeit auf den SRAM ver langsamt werden, weil zusätzliche Einrichtzeit notwendig ist. Die zusätzlichen Multiplexer, die für die MBIST-Funktionalität gemäß der vorliegenden Erfindung benötigt werden, bei der die MBIST-Funktionalität voll in die SRAM-Schnittstelle integriert ist, werden in einem bezüglich Zeitsteuerung unkritischen Weg angeordnet.
  • 5 zeigt eine weitere Ausführungsform gemäß der vorliegenden Erfindung. Adressenleitungen Addr' von der Mikroprozessorseite werden mit einem ersten Eingang eines Multiplexers 500 und mit dem Eingang eines Puffers oder Registers 504 gekoppelt. Der Ausgang des Multiplexers 500 führt das Adressensignal Addr für die Speichereinheit. Der Ausgang des Registers 504 ist mit dem Eingang des Registers 503 und dem ersten Eingang des Multiplexers 502 gekoppelt, dessen Ausgang mit dem zweiten Eingang des Multiplexers 500 gekoppelt ist. Der Multiplexer 500 wird durch ein Steuersignal 501 gesteuert. Der Ausgang des Registers 503 ist mit dem zweiten Eingang des Multiplexers 502 gekoppelt. Die Ausgänge der Register 503 und 504 sind mit jeweiligen Eingängen eines Komparators 505 gekoppelt, dessen Ausgangssignal pro Bit mit dem ersten Eingang eines AND-Gatters 521 gekoppelt wird. Das Ausgangssignal des AND-Gatters 521 steuert einen Multiplexer 520. Dateneingangsleitungen Din' von dem Mikroprozessor werden mit einem ersten Eingang eines Multiplexers 510 und dem Eingang des Registers 512 gekoppelt. Der Ausgang des Registers 512 ist mit dem zweiten Eingang des Multiplexers 510 gekoppelt, dessen Ausgang das Eingangsdatensignal für die Speichereinheit führt. Der erste Eingang des Multiplexers 520 ist mit dem Ausgang des Registers 512 gekoppelt. Der zweite Eingang des Multiplexers 520 ist mit den Ausgangsdatenleitungen Dout der Speichereinheit gekoppelt und sein Ausgang führt die Ausgangsdatensignale für den Mikroprozessor. Das Schreibfrei gabesignal WE' von dem Mikroprozessor wird mit dem ersten Eingang eines Multiplexers 531 und dem Eingang eines Registers 530 gekoppelt. Der Ausgang des Registers 530 wird mit dem zweiten Eingang des Multiplexers 531 gekoppelt, dessen Ausgang das Schreibfreigabesignal WE für die Speichereinheit führt. Weiterhin ist der Ausgang des Registers 530 pro Bit mit dem zweiten Eingang des AND-Gatters 521 gekoppelt. Die Multiplexer 502, 510 und 531 werden durch das Steuersignal 511 gesteuert.
  • Diese Anordnung ermöglicht eine weniger kritische Implementierung des Komparators 505. Im Fall eines Schreibzyklus puffert das Register 504 die Adresse Addr'. Wenn in dem folgenden Zyklus ein Lesezyklus erfolgt, werden die zugeordneten Daten Din' für den Schreibzyklus in dem Register 512 und das Schreibfreigabesignal WE' in dem Register 530 gespeichert. Außerdem wird die gepufferte Adresse des vorherigen Schreibzyklus in das Register 503 weitergeleitet und die Lesezyklusadresse wird in dem Register 504 gespeichert. Der Komparator 505 vergleicht beide Adressen. Da beide Adressen in Registern gespeichert sind, ist der eigentliche Vergleich weniger zeitkritisch, und die Adresseneinrichtzeit, die am kritischsten ist, leidet nicht. Wenn beide Adressen identisch sind, wird der Multiplexer 520 durch den Komparator 505 so gesteuert, daß er den Inhalt des Registers 512 zu dem Datenausgang Dout' weiterleitet, wenn das entsprechende WE-Bit für jede Bitposition zugesetzt ist. Wenn die verglichenen Adressen verschieden sind, koppelt der Multiplexer 520 den Datenausgang Dout' mit dem Datenausgang Dout der Speichereinheit, und es findet ein regulärer Lesezyklus statt. Zu diesem Zweck koppelt der Multiplexer 500 die Adressenleitungen Addr' mit den Adressenleitungen Addr der Speichereinheit. Die Register 503, 512 und 530 halten die gepufferten Schreibzyklusadressen, Daten und das Steuersignal, während Lesezyklen durchgeführt werden, bis ein weiterer Schreibzyklus erfolgt. Wenn ein zweiter Schreibzyklus folgt, wird der Inhalt des Registers 512 tatsächlich unter der durch das Register 503 gepufferten Adresse in die Speichereinheit geschrieben, wobei das WE oder Gültig-Bit des Registers 530 verwendet werden. Deshalb schalten die Multiplexer 502 und 500 zu den entsprechenden Eingängen. Das Register 530 puffert das Schreibfreigabesignal. Mit diesem Signal kann bestimmt werden, ob ein Schreibzyklus tatsächlich durchgeführt werden soll, wobei zum Beispiel im Fall eines Cache-Treffers ein Schreibsteuersignal angezeigt wird. Es kann auch ähnlich wie in 4 gezeigt als ein Anzeiger dafür verwendet werden, ob Daten oder einzelne Bit in dem Register 512 gültig sind und deshalb geschrieben werden müssen. WE und Gültig-Signal sind deshalb bei dieser Ausführungsform identisch. 6 zeigt ein Flußdiagramm der verschiedenen Zyklen, die auftreten können.
  • Ein Lesezyklus startet mit dem Schritt 602, in dem bestimmt wird, ob etwaige Daten und Steuersignale von einem vorherigen Schreibzyklus verfügbar sind, oder anders ausgedrückt, ob der vorherige Zyklus ein Schreibzyklus war. Wenn dies der Fall ist, kopieren die Schritte 603605 den Inhalt des Puffers 504 nach 503, die transferierten Daten und Steuersignale werden in den Puffern 512 bzw. 530 gespeichert und die mit dem Lesezyklus übertragene tatsächliche Adresse wird in dem Register 504 gepuffert. Als nächstes, oder wenn die obigen Schritte übersprungen wurden, wird in Schritt 607 der Inhalt der Register 503 und 504 verglichen. Wenn sie gleich sind, wird im Schritt 608 geprüft, ob die Register 512 und 530 gültige Daten enthalten. Wenn dies der Fall ist, wird der Inhalt des Registers 512 im Schritt 609 zu dem Ausgang Dout' weitergeleitet. 6 zeigt nur die Speicherweiterleitungsfunktion wäh rend eines Lesezyklus, wobei der Inhalt entweder aus dem Speicherweiterleitungspuffer oder direkt aus dem SRAM kommt. Wenn die Schnittstelle eine Veränderung einzelner Bit erlaubt, dann werden nur die Bit, die gültig sind, aus dem jeweiligen Puffer im Schritt 609 weitergeleitet. Parallel wird der SRAM gelesen, und die übrigen Bit des jeweiligen Datenworts werden mit den gepufferten Bit zusammengeführt. Wenn Schritt 607 oder 608 verschieden resultieren, koppelt der Multiplexer 500 die Adressensignale Addr' mit dem Adresseneingang des SRAM, und die jeweiligen Speicherzellen des SRAM werden gelesen und ihr Inhalt wird im Schritt 610 zu dem Datenausgang Dout' transferiert.
  • Während eines Schreibzyklus wird zuerst im Schritt 612 geprüft, ob die Puffer 512 und 530 gültige Daten enthalten. Wenn dies der Fall ist, wird im folgenden Schritt 613 der Inhalt des Puffers 512 unter der im Puffer 503 gepufferten Adresse in den SRAM geschrieben. Als nächstes wird im Schritt 614 geprüft, ob Daten und Steuersignale aus einem vorherigen Schreibzyklus verfügbar sind. Wenn dies der Fall ist, wird im Schritt 615 der Puffer 504 in den Puffer 503 kopiert, und die Daten und Steuersignale werden in 512 bzw. 530 gepuffert. Wenn im Schritt 612 die Entscheidung „Nein" ist, wird anschließend im Schritt 617 geprüft, ob Daten und Steuersignale aus einem vorherigen Schreibzyklus verfügbar sind. Wenn dies der Fall ist, werden anschließend im Schritt 618 diese Daten zu den SRAM-Schaltmultiplexern 510 und 531 zu Eingang „1" gelenkt.... Der Multiplexer 502 wird auch unter Verwendung des Ausgangssignals des Registers 504 als die zugeordnete Adresse auf Eingang „1" geschaltet. Der Multiplexer 500 wird auf Eingang „0" geschaltet. Als nächstes folgen die Schritte 615 bis 616. Im Schritt 619, der Schritt 616 folgt, wird die neue Adresse aus dem aktuellen Schreibzyklus in dem Register 504 gepuffert. Wenn im Schritt 617 keine Daten und Steuersignale aus einem vorherigen Schreibzyklus verfügbar sind, folgt nur Schritt 619.
  • Während eines Leerzyklus muß nur im Schritt 621 geprüft werden, ob Daten und Steuersignale aus einem vorherigen Schreibzyklus verfügbar sind. Wenn dies der Fall ist, wird der Puffer 504 in den Puffer 503 kopiert, und die ankommenden Daten und Steuersignale werden in den Registern 512 bzw. 530 gepuffert.
  • Als Alternative kann Schritt 619 direkt auf Schritt 618 folgen, wodurch die Schritte 615 und 616 übersprungen werden. Bei dieser Ausführungsform können Daten in einem einzigen Zyklus aus SRAM gelesen werden. Wenn die ankommenden Daten im Schritt 618 in den SRAM geschrieben werden, können sie deshalb innerhalb des nächsten Zyklus aus dem SRAM gelesen werden. Wenn nach Schritt 618 die Schritte 615 und 816 verwendet werden, kann das in den Schritten 607609 Beschriebene weiterleitend verwendet werden.
  • 7 zeigt eine Tabelle der verschiedenen Inhalte der Puffer/Register und des Status der Multiplexer während verschiedener Zyklen. Es wird angenommen, daß vor dem ersten Zyklus W1 alle Register/Puffer leer sind. W1 ist ein Schreibzyklus, in dem die Adresse „1" in das Register 503 geschrieben wird. Es wird angenommen, daß der nächste Zyklus ein Schreibzyklus W2 ist. Während dieses Zyklus kommen die Daten und Steuersignale aus dem vorherigen Schreibzyklus W1 an und werden in den Registern 512 bzw. 530 gespeichert. Parallel werden sie in den SRAM geschrieben. Deshalb wird der Multiplexer 500 auf Eingang 0 und die Multiplexer 502, 510 und 531 auf Eingang 1 geschaltet. Es wird angenommen, daß der nächste Zyklus ein Lesezyklus R3 ist. Während dieses Zyklus werden die nun ankommenden Daten und Steuersignale aus dem vorherigen Schreibzyklus in den Registern 512 und 530 gepuffert. Die zuvor gespeicherte Adresse wird aus dem Register 504 in das Register 503 kopiert. Die neue ankommende Adresse wird durch den Multiplexer 500, der auf Eingang 1 geschaltet ist, dem SRAM zugeführt und in dem Register 504 gespeichert. Der Komparator 505 vergleicht den Inhalt der Register 504 und 503. In diesem Fall ist er unterschiedlich. Deshalb wird der Multiplexer 520 auf Eingang 0 geschaltet und führt die aus dem SRAM gelesenen Daten dem Ausgang Dout zu. Der Multiplexer 531 wird auf Eingang 1 geschaltet, um das Steuersignal WE' mit dem jeweiligen Steuereingang des SRAM zu koppeln. Während des nächsten Zyklus, von dem angenommen wird, daß er ein weiterer Schreibzyklus W4 ist, werden die zuvor gepufferten Adressen-, Daten- und Steuersignale zum Schreiben der gepufferten Daten in den SRAM verwendet. Deshalb werden der Multiplexer 500 auf 0 und die Multiplexer 502, 510 und 531 jeweils auf Eingang 0 geschaltet. Die neu eingereichte Adresse „4" wird in dem Register 503 gespeichert. Während eines folgenden Lesezyklus R4 werden die nun ankommenden Daten und Steuersignale in den Registern 512 und 530 gespeichert. Außerdem wird der Inhalt des Registers 504 in das Register 503 kopiert, und die neu angekommene Adresse für den Lesezyklus wird in dem Register 504 gespeichert. Der Komparator 505 vergleicht den Inhalt beider Register 503 und 504, und schaltet, da er identisch ist, den Multiplexer 520 auf Eingang 1. Deshalb wird der Inhalt des Registers 512 für die Bit, die gültig gesetzt sind, zu dem Ausgang Dout' weitergeleitet. Falls notwendig, werden diese weitergeleiteten Bit mit den jeweiligen Bit aus dem SRAM, die für den Puffer 512 ungültig gesetzt wurden, kombiniert. In dem folgenden Schreibzyklus W5 wird der Inhalt der Register 503, 512 und 530 nochmals zum Schreiben in den SRAM verwen det, wie oben mit Bezug auf den Schreibzyklus W4 beschrieben. Während eines folgenden IDLE-Zyklus werden die nun ankommenden Daten und Steuersignale aus dem vorherigen Schreibzyklus W5 in den Registern 512 und 530 gespeichert und der Inhalt des Registers 504 wird in das Register 503 kopiert. Als Alternative können während eines Leerzyklus, wenn der Puffer voll ist oder wenn Daten aus einem vorherigen Schreibzyklus ankommen, diese Daten in den SRAM geschrieben werden.
  • Zusammengefaßt müssen bei einer Sequenz von Lesen nach Schreiben keine Wartezustände eingefügt werden, und der Mikroprozessor kann mit voller Geschwindigkeit betrieben werden.

Claims (14)

  1. Schnittstellenschaltung zum Koppeln einer Datenbearbeitungseinheit mit einer Speichereinheit mit Steuereingängen, einem Adressensignaleingang, einem Datensignaleingang und einem Datensignalausgang, umfassend: – einen Adressenpuffer (4; 402) mit einem Eingang und einem Ausgang, wobei der Eingang ein Adressensignal von der Datenbearbeitungseinheit empfängt, – einen ersten Multiplexer (3; 400), der die Speichereinheit (1, 410) entweder mit dem Ausgang des Adressenpuffers (4, 402) oder mit dem Adressensignal koppelt, – einen Datenpuffer (6; 407) mit einem Eingang und einem Ausgang, wobei der Eingang ein Datensignal von der Datenbearbeitungseinheit empfängt und der Ausgang mit dem Speicherdateneingang gekoppelt ist, – einen zweiten Multiplexer (7; 404) zum Auswählen entweder des Speicherdatensignalausgangs oder des Datenpufferausgangs, – einen Komparator (5; 403) zum Vergleichen des Adressensignals mit dem Signal aus dem Adressenpufferausgang, der ein Steuersignal erzeugt, das den zweiten Multiplexer (7, 404) steuert, gekennzeichnet durch – eine Steuerlogik (2) zum Steuern des Adressenpuffers (4; 402), des Datenpuffers (6; 407) und des ersten Multiplexers (3; 400) dergestalt, daß das Schreiben des Datensignals in die Speichereinheit (1; 410), das in einem Schreibzyklus bereitgestellt wird, im Fall eines folgenden Lesezyklus zurückgestellt wird, wobei das Datensignal in dem Datenpuffer gepuffert wird, bis ein nächster Schreibzyklus beginnt.
  2. Schnittstelle nach Anspruch 1, wobei die Speichereinheit (1; 410) ein statischer Speicher ist.
  3. Schnittstelle nach Anspruch 1 oder 2, wobei ein weiterer Multiplexer (8; 409) mit zwei Eingängen und einem Ausgang vorgesehen ist, wobei der Ausgang mit dem Dateneingang des Speichers (1; 410) gekoppelt ist, der erste Eingang mit dem Ausgang des Datenpuffers (6; 407) gekoppelt ist und der zweite Eingang das Datensignal aus der Datenbearbeitungseinheit empfängt.
  4. Schnittstelle nach einem der vorhergehenden Ansprüche, wobei ein weiterer Multiplexer (401) mit zwei Eingängen und einem Ausgang vorgesehen ist, wobei der Ausgang mit dem ersten Multiplexer (400) gekoppelt ist, wobei der erste Eingang mit dem Ausgang des Adressenpuffers (402) gekoppelt ist und der zweite Eingang eine Prüfadresse empfängt.
  5. Schnittstelle nach Anspruch 4, wobei ein weiterer Multiplexer (408) mit zwei Eingängen und einem Ausgang vorgesehen ist, wobei der Ausgang mit dem Datensignaleingang des Speichers gekoppelt ist, wobei der erste Eingang das Ausgangssignals des Datenpuffers (407) empfängt und der zweite Eingang ein Prüfdatensignal empfängt.
  6. Schnittstelle nach Anspruch 5, wobei die Speichereinheit (410) einen Schreibfreigabeeingang umfaßt und wobei die Schnittstelle einen Schreibfreigabepuffer (406) mit einem Eingang und einem Ausgang umfaßt, wobei der Eingang mit einem Schreibfreigabesignal aus der Datenbearbeitungseinheit gekoppelt ist, einen Schreibfreigabemultiplexer (412) mit zwei Eingängen und einem Ausgang, wobei der erste Eingang mit dem Schreibfreigabesignal und der zweite Eingang mit dem Ausgang des Schreibfreigabepuffers (406) gekoppelt ist, wobei der Ausgang des Multiplexers mit dem Schreibfreigabeeingang der Speichereinheit (410) gekoppelt ist, umfaßt.
  7. Schnittstelle nach Anspruch 5 oder 6, wobei ein weiterer Multiplexer (412) vorgesehen ist, um zwischen dem Schreibfreigabepufferausgang und einem Schreibfreigabeprüfsignal auszuwählen.
  8. Schnittstelle nach einem der vorhergehenden Ansprüche, wobei eine Vielzahl von Adressenpuffern (4) vorgesehen ist.
  9. Mikroprozessor mit einer gemäß einem der vorherigen Ansprüche integrierten Schnittstelle.
  10. Verfahren zum Schreiben von Daten in eine integrierte Speichereinheit in einem Mikroprozessor mit einer Pipeline-Struktur, bei dem ein in den Speicher zu schreibendes Datensignal in bezug auf ein Adressensignal verzögert wird, wobei das Verfahren die folgenden Schritte umfaßt: – Puffern des Adressensignals in einem Adressenpuffer (4; 402), – im Fall eines folgenden Schreibsignals, Speichern des Datensignals unter dem gepufferten Adressensignal und Puffern des folgenden Adressensignals in dem Adressenpuffer (4; 402), dadurch gekennzeichnet, daß im Fall eines folgenden Lesesignals das Datensignal in einem Datenpuffer (6; 407) gepuffert wird, wobei das Schreiben des Datensignals in die Speichereinheit zurückgestellt wird, bis ein nächster Schreibzyklus beginnt.
  11. Verfahren nach Anspruch 10 mit dem folgenden zusätzlichen Schritt: Setzen eines Gültig-Bit, wenn sowohl die Adres se als auch die Daten gepuffert wurden, und Schreiben der gepufferten Adresse und Daten nur dann, wenn das Gültig-Bit gesetzt wurde.
  12. Verfahren nach Anspruch 11, wobei für jedes Bit aus den gepufferten Daten, das in die Speichereinheit geschrieben werden soll, ein Gültig-Bit gesetzt wird.
  13. Verfahren nach Anspruch 10, 11 oder 12, wobei im Fall einer Vielzahl nachfolgender Schreibzyklen eine Vielzahl von Schreibadressen und die jeweiligen Daten in einer Vielzahl von Adressen und Datenpuffern gepuffert werden.
  14. Schnittstellenschaltung zum Koppeln einer Datenbearbeitungseinheit mit einer Speichereinheit mit Steuereingängen, einem Adressensignaleingang, einem Datensignaleingang und einem Datensignalausgang, umfassend: – einen ersten Adressenpuffer (504) mit einem Eingang und einem Ausgang, wobei der Eingang ein Adressensignal aus der Datenbearbeitungseinheit empfängt, – einen Datenpuffer (512) mit einem Eingang und einem Ausgang, wobei der Eingang ein Datensignal aus der Datenbearbeitungseinheit empfängt und der Ausgang mit der Speicherdateneinheit gekoppelt ist, gekennzeichnet durch – einen zweiten Adressenpuffer (503) mit einem Eingang und einem Ausgang, wobei der Eingang mit dem Ausgang des ersten Adressenpuffers (504) gekoppelt ist, – einen steuerbaren ersten Multiplexer (502) mit Eingängen und einem Ausgang, der den Inhalt entweder des ersten (504) oder des zweiten Adressenpuffers (503) an seinen Ausgang ankoppelt, – einen steuerbaren zweiten Multiplexer (500), der die Speichereinheit entweder mit dem Ausgang des ersten Multiplexers (502) oder mit dem Adressensignal koppelt, – einen dritten Multiplexer (520) zum Auswählen entweder des Speicherdatensignalausgangs oder des Datenpufferausgangs, – einen Komparator (505) zum Vergleichen des Inhalts des ersten und des zweiten Adressenpuffers, der ein Steuersignal erzeugt, das den dritten Multiplexer (520) steuert, – eine Steuerlogik, die Steuersignale (501, 511) zum Steuern des ersten und des zweiten Multiplexers dergestalt bereitstellt, daß das Schreiben des Datensignals in die Speichereinheit, das in einem Schreibzyklus bereitgestellt wird, im Fall eines folgenden Lesezyklus zurückgestellt wird, wobei das Datensignal in dem Datenpuffer gepuffert wird, bis ein nächster Schreibzyklus beginnt.
DE60010511T 1999-12-13 2000-12-06 Schnittstelle für eine speichereinheit Expired - Lifetime DE60010511T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/460,534 US6507899B1 (en) 1999-12-13 1999-12-13 Interface for a memory unit
US460534 1999-12-13
PCT/US2000/033036 WO2001042926A1 (en) 1999-12-13 2000-12-06 Interface for a memory unit

Publications (2)

Publication Number Publication Date
DE60010511D1 DE60010511D1 (de) 2004-06-09
DE60010511T2 true DE60010511T2 (de) 2005-04-14

Family

ID=23829109

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60010511T Expired - Lifetime DE60010511T2 (de) 1999-12-13 2000-12-06 Schnittstelle für eine speichereinheit

Country Status (4)

Country Link
US (1) US6507899B1 (de)
EP (1) EP1238339B1 (de)
DE (1) DE60010511T2 (de)
WO (1) WO2001042926A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578097B1 (en) * 2000-08-30 2003-06-10 Silicon Integrated Systems Corp. Method and apparatus for transmitting registered data onto a PCI bus
US7200024B2 (en) * 2002-08-02 2007-04-03 Micron Technology, Inc. System and method for optically interconnecting memory devices
US7254331B2 (en) * 2002-08-09 2007-08-07 Micron Technology, Inc. System and method for multiple bit optical data transmission in memory systems
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US20050144409A1 (en) * 2002-09-11 2005-06-30 Fujitsu Limited Data processing device and method utilizing latency difference between memory blocks
US7245145B2 (en) * 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7181584B2 (en) * 2004-02-05 2007-02-20 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
JP2005339675A (ja) * 2004-05-27 2005-12-08 Hitachi Ltd 半導体集積回路装置
US7392331B2 (en) * 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US9135008B2 (en) * 2009-09-24 2015-09-15 Freescale Semiconductor, Inc. Device and method for performing conditional bitwise set/clear/toggle manipulations in a general purpose register

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034885A (en) 1988-03-15 1991-07-23 Kabushiki Kaisha Toshiba Cache memory device with fast data-write capacity
GB2244158B (en) 1990-04-30 1994-09-07 Sun Microsystems Inc Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
GB9116480D0 (en) 1991-07-30 1991-09-11 Inmos Ltd Read and write circuitry for a memory
US5481500A (en) * 1994-07-22 1996-01-02 International Business Machines Corporation Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories
US5838631A (en) * 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US6044429A (en) * 1997-07-10 2000-03-28 Micron Technology, Inc. Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths

Also Published As

Publication number Publication date
WO2001042926A1 (en) 2001-06-14
US6507899B1 (en) 2003-01-14
DE60010511D1 (de) 2004-06-09
EP1238339A1 (de) 2002-09-11
EP1238339B1 (de) 2004-05-06

Similar Documents

Publication Publication Date Title
DE60010511T2 (de) Schnittstelle für eine speichereinheit
DE102006028683B4 (de) Parallele Datenpfadarchitektur
DE69906793T2 (de) Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE60214992T2 (de) Mehrbit-prefetch-ausgangsdatenweg
DE2809602C3 (de) Kanalbus-Steuereinrichtung
DE4210857A1 (de) Halbleiterspeichereinrichtung und verfahren zum uebertragen von daten
DE69726780T2 (de) Einchip-Mikrorechner mit Speichersteuerung
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1966633B2 (de) Datenverarbeitungsanlage mit überlappter Arbeitswelse bei Verwendung eines Haupt- und Pufferspeichers
DE19900365A1 (de) Hochgeschwindigkeits-Halbleiterspeichervorrichtung, die eine Datensequenz für eine Burst-Übertragung ändern kann
DE60226141T2 (de) Fifo-speicher system und verfahren dafür
DE2755611A1 (de) Steuereinheit fuer datenverarbeitungsanlagen
DE2853276A1 (de) Datenpufferspeicher vom typ first-in, first-out mit einem variablen eingang und einem variablen ausgang
DE2944419A1 (de) Digitalrechnersystem
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE112004001660T5 (de) Echotakt auf Speichersystem mit Warteinformationen
DE102007004713A1 (de) Datenübergabeeinheit zum Übertragen von Daten zwischen unterschiedlichen Taktbereichen
DE3919802C2 (de) Speichersteuersystem für ein Multiprozessorsystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition