DE69913366T2 - Lese/schreibe-puffern für ein komplettes verdecken des auffrischen eines halbleiterspeichers und verfahren zum betreiben derselben - Google Patents

Lese/schreibe-puffern für ein komplettes verdecken des auffrischen eines halbleiterspeichers und verfahren zum betreiben derselben Download PDF

Info

Publication number
DE69913366T2
DE69913366T2 DE69913366T DE69913366T DE69913366T2 DE 69913366 T2 DE69913366 T2 DE 69913366T2 DE 69913366 T DE69913366 T DE 69913366T DE 69913366 T DE69913366 T DE 69913366T DE 69913366 T2 DE69913366 T2 DE 69913366T2
Authority
DE
Germany
Prior art keywords
memory
write
read
signal
buffer
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
DE69913366T
Other languages
English (en)
Other versions
DE69913366D1 (de
Inventor
Wingyu Leung
Fu-Chieh Hsu
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.)
Peraso Inc
Original Assignee
Monolithic System Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/405,607 external-priority patent/US6415353B1/en
Application filed by Monolithic System Technology Inc filed Critical Monolithic System Technology Inc
Application granted granted Critical
Publication of DE69913366D1 publication Critical patent/DE69913366D1/de
Publication of DE69913366T2 publication Critical patent/DE69913366T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung ist eine Teilfortsetzung der US-Patentanmeldung mit der Seriennummer 09/165,228 von Wingyu Leung und Fu-Chieh Hsu mit dem Titel "Method and Apparatus for Complete Hiding of the Refresh of the Semiconductor Memory", die am 1. Oktober 1998 eingereicht wurde.
  • Die vorliegende Anmeldung bezieht sich ferner auf das US-Patent Nr. 6 028 804 von Wingyu Leung mit dem Titel "Method and Apparatus for 1-T SRAM Compatible Memory", die am 9. März 1998 eingereicht wurde; auf das US-Patent Nr. 6 222 785 von Wingyu Leung mit dem Titel "Method and Apparatus for Refreshing a Semiconductor Memory using Idle Memory Cycles", eingereicht am 20. Januar 1999, und auf das US-Patent Nr. 6 075 740 von Wingyu Leung mit dem Titel "Method and Apparatus for Increasing the Time Available for Refresh for 1-T SRAM Compatible Devices", eingereicht am 27. Oktober 1998.
  • BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Halbleiterspeicher, insbesondere dynamische Direktzugriffsspeicher (DRAM) und statische Direktzugriffsspeicher (SRAM). Die vorliegende Erfindung betrifft insbesondere ein Verfahren und eine Vorrichtung zum Handhaben von Auffrischvorgängen in einem Halbleiterspeicher, so dass die Auffrischvorgänge externe Zugriffsvorgänge nicht stören.
  • ERÖRTERUNG DER VERWANDTEN TECHNIK
  • Eine konventionelle DRAM-Speicherzelle, die aus einem Transistor und einem Kondensator besteht, ist erheblich kleiner als eine konventionelle SRAM-Zelle, die aus 4 bis 6 Transistoren besteht. In einer DRAM-Zelle gespeicherte Daten müssen jedoch periodisch aufgefrischt werden, während dies bei in einer SRAM-Zelle gespeicherten Daten nicht nötig ist. Jeder Auffrischvorgang einer DRAM-Zelle verbraucht Speicherbandbreite. So beträgt beispielsweise die Zykluszeit einer 100 MHz DRAM-Array 10 ns. In dieser DRAM-Array dauert jeder externe Zugriff 10 ns und jeder Auffrischzugriff erfordert wenigstens 10 ns. Da ein externer Zugriff und ein Auffrischzugriff gleichzeitig eingeleitet werden können, muss die DRAM-Array beide innerhalb der zulässigen Zugriffszykluszeit handhaben können, um zu verhindern, dass Auffrischzugriffe externe Zugriffe stören. Dies begrenzt die maximale externe Zugriffszykluszeit auf wenigstens 20 ns, davon 10 ns zum Handhaben des externen Zugriffs und 10 ns zum Handhaben des Auffrischzugriffs. Dies ist selbst dann der Fall, wenn die Auffrischzugriffe durchschnittlich mit einer Frequenz von 62,5 kHz durchgeführt werden. Infolgedessen muss die maximale Zugriffsfrequenz der DRAM-Array gleich oder kleiner als 50 MHz sein. Somit wird eine 100 MHz DRAM-Speicherarray benötigt, um ein Bauelement herzustellen, das mit 50 MHz arbeiten kann. Und das ist einfach nicht wirtschaftlich.
  • Frühere Versuche, DRAM-Zellen in SRAM-Anwendungen zu verwenden, hatten aus verschiedenen Gründen nur begrenzten Erfolg. So brauchte beispielsweise ein solches DRAM-Bauelement ein externes Signal zum Steuern von Auffrischvorgängen (siehe 131,072-Word by 8-Bit CMOS Pseudo Static RAM, Toshiba Integrated Circuit Technical Data (1996)). Darüber hinaus werden externe Zugriffe auf dieses DRAM-Bauelement während der Speicherauffrischvorgänge verzögert. Die Folge ist, dass die Auffrischvorgänge nicht transparent sind und dass das resultierende DRAM-Bauelement mit einem SRAM-Bauelement nicht völlig kompatibel sein kann.
  • In einem anderen Schema des Standes der Technik wird ein schneller SRAM-Cache-Speicher mit einer relativ langsamen DRAM-Array verwendet, um die durchschnittliche Zugriffszeit des Speichergerätes zu beschleunigen (siehe US-Patent Nr. 5,559,750 von Katsumi Dosaka et al. und "Data Sheet of 16 Mbit Enhanced SDRAM Family 4Mx4, 2Mx8, 1Mx16" von Enhanced Memory Systems Inc., 1997). Die tatsächliche Zugriffszeit des Bauelementes variiert je nach der Cache-Hit-Rate. Es ist ein Schaltkomplex vorgesehen, um die DRAM-Zellen aufzufrischen. Der Auffrischvorgang ist für externe Zugriffe jedoch nicht transparent. Das heißt, die Auffrischvorgänge wirken sich auf die Speicherzugriffszeit aus. Demzufolge kann das Bauelement die Anforderung einer vollkommen deterministischen Direktzugriffszeit nicht erfüllen.
  • Andere Ansätze des Standes der Technik arbeiten mit Multibanking, um die durchschnittliche Zugriffszeit eines DRAM-Bauelementes zu reduzieren. Beispiele für Multibanking-Ansätze sind in "Data sheet, MD904 to MD920, Multi-bank DRAM (MDRAM) 128Kx32 to 656Kx32" von MoSys Inc. 1996 sowie in "An Access-Sequence Control Scheme to Enhance Random-Access Performance of Embedded DRAM's" von Kazushige Ayukawa et al., IEEE JSSC, Bd. 33, Nr. 5, Mai 1998, auf den Seiten 800–806 beschrieben. Diese Multibanking-Ansätze lassen es nicht zu, dass eine einzelne Speicherbank einen Auffrischzyklus verzögert.
  • Ein weiteres Schema des Standes der Technik arbeitet mit einem Lesepuffer und einem Schreibpuffer, um die sequentielle oder gebündelte Natur eines externen Zugriffs zu nutzen. Ein Beispiel für ein solches Schema des Standes der Technik ist im US-Patent Nr. 5,659,515 mit dem Titel "Semiconductor Memory Device Capable of Refresh Operation in Burst Mode" von R. Matsuo und T. Wada beschrieben. In diesem Schema lässt es ein Burst-Zugriff zu, dass ein Register die sequentiellen Zugriffe einer Transaktion handhabt, während die Speicherarray aufgefrischt wird. Dieses Schema lässt jedoch keine aufeinander folgenden Direktzugriffe zu. So kann der Speicher beispielsweise keinen Direktzugriff pro Taktzyklus handhaben.
  • Ein weiteres Schema des Standes der Technik, das versucht, Auffrischvorgänge in einer DRAM-Zelle vollständig zu verbergen, beinhaltet das Schema, das im US-Patent Nr. 5,642,320 mit dem Titel "Self-Refreshable Dual Port Dynamic CAM Cell and Dynamic CAM Cell Array Refreshing Circuit" von H. S. Jang beschrieben ist. In diesem Schema kommt ein zweiter Port zu jeder der dynamischen Speicherzellen hinzu, so dass die Auffrischung an einem Port durchgeführt werden kann, während ein normaler Zugriff am anderen Port durchgeführt wird. Der zusätzliche Port verdoppelt im Wesentlichen die Zugriffsbandbreite der Speicherzelle, aber dies geht auf Kosten von zusätzlicher Siliciumfläche.
  • Es wäre demgemäß wünschenswert, ein Speicherbauelement zu haben, das flächeneffiziente DRAM-Zellen verwendet und die Auffrischung der DRAM-Zellen auf eine Weise handhabt, die für einen zugreifenden Speicher-Client außerhalb des Speicherbauelementes vollkommen transparent ist. Das heißt, es wäre wünschenswert, dass Auffrischvorgänge erfolgreich durchgeführt werden könnten, ohne auf unbenutzte externe Zugriffszeit zurückgreifen zu müssen. Oder anders ausgedrückt, es wäre wünschenswert, ein Speichergerät zu haben, mit dem DRAM-Zellen oder andere auffrischbare Speicherzellen verwendet werden können, um SRAM-kompatible Bauelemente oder andere kompatible Speicherbauelemente aufzubauen, die keiner Auffrischung bedürfen.
  • ZUSAMMENFASSUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird somit ein Speichergerät bereitgestellt, das Folgendes umfasst: eine Mehrzahl von Speicherzellen, die in einer Mehrzahl von Bänken konfiguriert sind, wobei jede der Speicherzellen innerhalb einer vorbestimmten Auffrischperiode aufgefrischt werden muss, um einen Datenwert zu behalten; und eine Steuerschaltung zum Zugreifen auf die und Auffrischen der Speicherzellen, wobei die Steuerschaltung so konfiguriert ist, dass sie Direktzugriffsvorgängen gegenüber Auffrischvorgängen Vorrang gibt, damit während jedes Speicherzyklus direkt auf die Speicherzellen zugegriffen werden kann, ohne Verzögerungen für Auffrischvorgänge, wobei die Steuerschaltung so konfiguriert ist, dass sie einen Auffrischvorgang an einer Bank nur dann durchführt, wenn die Bank keine anhängige externe Zugriffsanforderung hat, wobei die Steuerschaltung ein Datenspeicherelement beinhaltet, das zum Speichern von Zugriffsdaten der Bänke konfiguriert ist, wobei das Datenspeicherelement eine Speicherkapazität hat, die wenigstens gleich der Kapazität von einer der Bänke minus der Kapazität von einer der Reihen von Zellen in einer der Bänke ist, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf das gesamte Datenspeicherelement erforderlich ist, wodurch gewährleistet wird, dass jede der Bänke innerhalb der vorbestimmten Auffrischperiode aufgefrischt wird.
  • In einem anderen Aspekt wird ein Verfahren zum Betreiben eines Mehrbankspeichers bereitgestellt, umfassend eine Mehrzahl von Speicherzellen, die jeweils innerhalb einer vorbestimmten Auffrischperiode aufgefrischt werden müssen, um einen Datenwert zu behalten, wobei das Verfahren die folgenden Schritte umfasst:
    Empfangen von externen Zugriffsanforderungen an den Mehrbankspeicher;
    Erzeugen von Auffrischanforderungen innerhalb des Mehrbankspeichers;
    unmittelbares Verarbeiten jeder der externen Zugriffsanforderungen; und
    Gewähren von Vorrang für externe Zugriffsanforderungen gegenüber Auffrischanforderungen, so dass eine Auffrischanforderung an eine Bank des Mehrbankspeichers nur dann verarbeitet wird, wenn die Bank keine anhängige externe Zugriffsanforderung hat;
    Speichern von Zugriffsdaten in Verbindung mit den Bänken in einem Speicherelement mit einer Speicherkapazität, die wenigstens gleich der Kapazität von einer der Bänke minus der Kapazität von einer Reihe von Zellen in einer der Bänke ist, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf das gesamte Speicherelement nötig ist, wodurch gewährleistet wird, dass Auffrischanforderungen innerhalb der vorbestimmten Auffrischperiode verarbeitet werden.
  • Die Speicherzellen sind in einer Mehrzahl von unabhängig gesteuerten Speicherbänken angeordnet. Somit werden Lese-, Schreib- und Auffrischvorgänge in jeder Bank unabhängig gesteuert. Jede der Speicherbänke ist parallel zu einem Lesepuffer geschaltet, so dass von einer beliebigen der Speicherbänke gelesene Daten zum Lesepuffer gesendet werden. Jede der Speicherbänke ist ferner parallel zu einem Schreibpuffer geschaltet, so dass auf eine der Speicherbänke geschriebene Daten vom Schreibpuffer bereitgestellt werden können.
  • Die Steuerschaltung beinhaltet einen SRAM-Cache-Speicher, der dieselbe Konfiguration hat wie jede der Speicherbänke. Ein Cache-Lesepuffer ist zwischen einem Ausgangsport des SRAM-Cache-Speichers und dem Schreibpuffer geschaltet, wodurch die Übertragung von Daten vom SRAM-Cache-Speicher auf die Speicherbänke erleichtert wird. Ebenso ist ein Cache-Schreibpuffer zwischen einem Eingangsport des SRAM-Cache-Speichers und dem Lesepuffer geschaltet, wodurch die Übertragung von Daten von den Speicherbänken zum SRAM-Cache-Speicher erleichtert wird. Der Cache-Lesepuffer und der Cache-Schreibpuffer sind ferner mit einem externen Datenbus gekoppelt. Der SRAM-Cache bietet eine Schnittstelle zwischen dem externen Datenbus und den Speicherbänken. Der SRAM-Cache implementiert eine Write-Back-Richtlinie, so dass alle Schreibdaten zunächst auf den SRAM-Cache geschrieben werden, bevor sie auf die Speicherbänke geschrieben werden, und alle zum externen Datenbus gesendeten Lesedaten werden im SRAM-Cache gespeichert. In einer Ausgestaltung ist der SRAM-Cache als Direct-Map-Cache konfiguriert. Der SRAM-Cache wird so gewählt, dass er eine Kapazität hat, die ausreicht, um zu gewährleisten, dass jede der Speicherbänke ordnungsgemäß innerhalb der vorbestimmten Auffrischperiode aufgefrischt wird. Das heißt, selbst unter den ungünstigsten Cache-Thrashing-Bedingungen werden die notwendigen Auffrischvorgänge immer ohne eine Verzögerung von externen Zugriffen auf das Speichergerät durchgeführt.
  • In einer Ausgestaltung wird die Cache-Write-Back-Richtlinie wie folgt durchgeführt. Zunächst wird eine auf dem externen Datenbus empfangene aktuelle Zugriffsadresse mit einer im SRAM-Cache gespeicherten Cache-Adresse verglichen, um zu ermitteln, ob ein Cache-Miss oder ein Cache-Hit vorliegt. Wenn ein Cache-Hit vorliegt, werden die angeforderten Daten entweder vom SRAM-Cache gelesen (für einen Lesezugriff) oder auf den SRAM-Cache geschrieben (für einen Schreibzugriff). Somit wird auf die Speicherbänke nicht zugegriffen, wenn ein Cache-Hit auftritt. Auffrischvorgänge können somit innerhalb. der Speicherbänke durchgeführt werden, wenn ein Cache-Hit auftritt, wenn eine Auffrischanforderung anhängig ist. Da die Speicherbänke unabhängig gesteuert werden, können alle Speicherbänke während eines Cache-Hit gleichzeitig aufgefrischt werden. Alternativ können vorbestimmte Sätze der Speicherbänke gleichzeitig aufgefrischt werden.
  • Bei einem Cache-Miss wird ermittelt, ob der Cache-Einsprung (Entry) in Verbindung mit der Cache-gespeicherten Adresse Daten enthält, die modifiziert wurden. Das heißt, es wird ermittelt, ob der Cache-Entry dieselben Daten enthält wie die zugehörige Speicherbank. Es wird ebenfalls ermittelt, ob der aktuelle Zugriff ein Lesezugriff oder ein Schreibzugriff ist.
  • Wenn ein Cache-Miss auftritt und die Daten im Cache-Entry nicht modifiziert wurden, dann fährt die Verarbeitung für Lese- und Schreibzugriffe wie folgt fort. Für einen Lesezugriff werden die gewünschten Daten von der Speicherbank in Verbindung mit der aktuellen Zugriffsadresse gelesen. Diese Daten werden gleichzeitig an den externen Datenbus angelegt und auf den SRAM-Cache geschrieben, wodurch der ursprüngliche Cache-Entry überschrieben wurde. Da der ursprüngliche Cache-Entry keine modifizierten Daten enthielt, besteht keine Notwendigkeit, den urspünglichen Cache-Entry unter diesen Bedingungen zurückzuschreiben. Für einen Schreibzugriff wird ein Teil des ursprünglichen Cache-Entry mit den neuen Daten in Verbindung mit dem Schreibzugriff überschrieben. Der restliche Teil des ursprünglichen Cache-Entry wird mit Daten überschrieben, die von der Speicherbank abgerufen wurden, die durch die aktuelle Zugriffsadresse identifiziert wird. Auch hier gibt es, da der ursprüngliche Cache-Entry keine modifizierten Daten enthielt, keine Notwendigkeit, den ursprünglichen Cache-Entry unter diesen Bedingungen zurückzuschreiben. Man beachte, dass während eines Cache-Miss nur auf eine Speicherbank zugegriffen zu werden braucht, wenn der Cache-Entry keine modifizierten Daten enthält.
  • Wenn ein Cache-Miss auftritt und die Daten im Cache-Entry modifiziert wurden, dann verläuft die Verarbeitung wie folgt. Zunächst wird der Cache-Entry auf die Speicherbank zurückgeschrieben, von der er stammte. Bei diesem Write-Back-Vorgang wird der Cache-Entry vom SRAM-Cache durch den Cache-Lesepuffer und den Schreibpuffer auf die Speicherbank übertragen. Gleichzeitig wird ein neuer Cache-Entry von einer Speicherbank gelesen, die durch die externe Zugriffsadresse identifiziert wird. Dieser neue Cache-Entry wird auf den SRAM-Cache geschrieben. Bei diesem Vorgang wird der neue Cache-Entry von der Speicherbank durch den Lesepuffer und den Cache-Schreibpuffer auf den SRAM-Cache übertragen. Wenn der aktuelle Zugriff ein Lesezugriff ist, dann wird der neue Cache-Entry gleichzeitig zu dem externen Datenbus geleitet. Wenn der Zugriff ein Schreibzugriff ist, werden die Schreibdaten zusammen mit dem Rest der Daten des neuen Cache-Entry auf den SRAM-Cache geschrieben.
  • Man beachte, dass während eines Cache-Miss nur auf eine oder zwei Speicherbänke zugegriffen wird. Somit können alle anderen Speicherbänke während eines Cache-Miss-Vorgangs aufgefrischt werden. Man beachte auch, dass, da Lese- und Schreibzugriffe auf die Speicherbänke gleichzeitig erfolgen, jeder Zugriff während einer einzigen Taktperiode beendet werden kann. Die Folge ist, dass auf das Speichergerät auf dieselbe Weise zugegriffen wird wie auf einen konventionellen SRAM.
  • Die vorliegende Erfindung wird im Hinblick auf die nachfolgende Beschreibung und die Zeichnungen besser verständlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines 1-T SRAM gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm, das die Organisation von DRAM-Bänken, eines SRAM-Cache-Speichers und eines Cache-Tag-Speichers gemäß einer Ausgestaltung der vorliegenden Erfindung illustriert.
  • 3 ist ein schematisches Diagramm einer DRAM-Bank und einer zugehörigen Zugriffssteuerschaltung gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 4 ist ein Wellenformdiagramm, das den zeitlichen Ablauf von vier aufeinander folgenden Transaktionen gemäß einer Ausgestaltung der vorliegenden Erfindung illustriert.
  • 5 ist ein Blockdiagramm eines 1-T SRAM-Systems gemäß einer weiteren Ausgestaltung der vorliegenden Erfindung.
  • 6 ist ein Blockdiagramm einer Speichersteuereinheit für das 1-T SRAM-System von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 7 ist ein Schaltungsdiagramm eines Lese-Schreib-Tag-Controllers gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 8 ist ein Schaltschema eines Lese-Schreib-Datenpuffer-Controllers gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 9 ist ein Schaltschema eines Speicher-Lese-Schreib-Controllers gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 10 ist ein Blockdiagramm eines Speicherblocks des 1-T SRAM-Systems von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 11 ist ein Schaltschema eines Speicherbankcontrollers des Speicherblocks von 10 gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 12 ist ein Blockdiagramm des Schreibpuffers des 1-T SRAM-Systems von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 13 ist ein Blockdiagramm des Lesepuffers des 1-T SRAM-Systems von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung.
  • 14 ist ein Wellenformdiagramm, das die Steuersignal-Zeitsteuerung während drei verschiedener Lesezugriffe auf das 1-T SRAM-System von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung illustriert.
  • 15 ist ein Wellenformdiagramm, das die Steuersignal-Zeitsteuerung während vier verschiedener Schreibzugriffe auf das 1-T SRAM-System von 5 gemäß einer Ausgestaltung der vorliegenden Erfindung illustriert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Gemäß der vorliegenden Erfindung wird ein SRAM-kompatibles Bauelement mit DRAM-Zellen entworfen. Dieses SRAM-kompatible Bauelement wird nachfolgend als Ein-Transistor-SRAM (1-T SRAM) bezeichnet. Der 1-T SRAM der beschriebenen Ausgestaltung hat eine Kapazität von 128 K Wörtern mit einer Wortlänge von jeweils 32 Bit. Der 1-T SRAM beinhaltet 64 DRAM-Bänke, die unabhängig voneinander arbeiten können, so dass parallele Vorgänge wie z.B. Lesen, Schreiben und Auffrischen in verschiedenen DRAM-Bänken gleichzeitig stattfinden können. Es ist ein Mechanismus vorgesehen, so dass Auffrischzugriffsanforderungen gleichzeitig zu mehreren DRAM-Bänken rundgesendet werden. Die DRAM-Bänke, die das rundgesendete Auffrischanforderungssignal empfangen, durchlaufen einen Auffrischzyklus nur dann, wenn kein Bankzugriff anhängig ist. Eine Auffrischadresse wird lokal innerhalb jeder DRAM-Bank durch ihren eigenen Adressauffrischzähler geliefert. In der beschriebenen Ausgestaltung wird die Auffrischanforderung zu allen DRAM-Bänken rundgesendet. In einer anderen Ausgestaltung wird die Auffrischanforderung jeweils immer nur zu einer Teilmenge der DRAM-Bänke rundgesendet.
  • Ein SRAM-Cache ist vorgesehen, um die Daten der Stellen zu speichern, auf die zuletzt zugegriffen wurde. Der SRAM-Cache hat eine wesentlich geringere Kapazität als die DRAM-Bänke. Um zu gewährleisten, dass alle Auffrischzugriffe auf die DRAM-Bänke ordnungsgemäß innerhalb einer vorbestimmten Auffrischperiode durchgeführt werden, und das selbst unter den ungünstigsten Cache-Thrashing-Bedingungen, wird die Größe des SRAM-Cache so gewählt, dass er eine Speicherkapazität hat, die gleich der (oder größer als die) Speicherkapazität einer der DRAM-Bänke ist, minus der Kapazität von einer Reihe von Zellen in der DRAM-Bank. Im Hinblick auf die Einfachheit des Aufbaus in der nachfolgend beschriebenen Ausgestaltung hat der SRAM-Cache eine Speicherkapazität, die gleich der Speicherkapazität einer DRAM-Bank ist.
  • 1 ist ein Blockdiagramm eines 1-T SRAM 170 gemäß einer Ausgestaltung der vorliegenden Erfindung. Der 1-T SRAM 170 beinhaltet vierundsechzig DRAM-Bänke 063 sowie vierundsechzig entsprechende Zugriffssteuerschaltungen 100163. Wie nachfolgend ausführlicher beschrieben wird, sind die Zugriffssteuerschaltungen 100163 so geschaltet, dass sie die zum Zugreifen auf DRAM-Bänke 0-63 benötigten Adress- und Steuersignale empfangen. Jede der DRAM-Bänke 063 beinhaltet eine Array von 64 Reihen und 1024 Spalten von DRAM-Zellen. Die vierundsechzig DRAM-Bänke 063 benutzen eine gemeinsame Lesepuffer-/Datenspeicherschaltung 171 und eine gemeinsame Schreibpuffer/Datenspeicherschaltung 172. Wie nachfolgend ausführlicher beschrieben wird, werden Lese- und Schreibdaten zu und von den Bänken 063 durch die Schaltungen 171 und 172 übertragen. Lesepuffer 171 und Schreibpuffer 172 arbeiten unabhängig, so dass Daten von einer der DRAM-Bänke 063 zur selben Zeit gelesen werden können, wie die Daten auf eine andere der DRAM-Bänke 063 geschrieben werden.
  • Der 1-T SRAM 170 beinhaltet auch Folgendes: Taktphasengenerator 180, Adresspuffer 181, Bankadressdecoder 182183, Komparator 184, Cache-Tag-Speicher 185, Cache-Steuersequencer 186, SRAM-Cache-Speicher 187, Cache-Lesepuffer 188, Cache-Schreibpuffer 189, E/A-Treiber 190, Multiplexer 191193, Demultiplexer 194 und Auffrisch-Timer 195. Diese Elemente, die im Allgemeinen die Zugriffe auf den 1-T SRAM 170 steuern, werden nachfolgend ausführlicher beschrieben.
  • Der 1-T SRAM 170 arbeitet als Reaktion auf die folgenden Signale: Ein-/Ausgabe(E/A) Datensignale DQ [31:0], externe Adresssignale EA [16:0], Adress-Strobe-Signal ADS#, Schreib/Lese-Indikator WR#, und Taktsignal CLK (zum Synchronisieren von Speichertransaktionen zwischen 1-T SRAM 170 und der Außenwelt). Das hierin verwendete # Symbol bedeutet, dass ein Signal im L-Zustand aktiv ist. Man beachte, dass die oben aufgeführten Signale keine Signale in Bezug auf die Auffrischzugriffe von DRAM-Bänken 0–63 beinhalten.
  • Ein externes Bauelement leitet einen Zugriff auf 1-T SRAM 170 ein, indem es ein logisch tiefes Adress-Strobe-Signal ADS# aufdrückt, um das Schreib/Lese-Anzeigesignal WR# in den gewünschten Zustand zu bringen, und eine Speicheradresse EA [16:0] liefert. Das ADS#-Signal wird zum Bankadressdecoder 182 und zum Cache-Steuersequencer 186 gesendet. Die Zugriffsanforderung wird vom 1-T SRAM 170 an der ansteigenden Flanke des CLK-Signals erkannt, die nach dem Aufdrücken des ADS#-Signals im L-Zustand auftritt. Das WR#-Signal wird an den Cache-Steuersequencer 186 angelegt. Die Speicheradresse EA [16:0] wird zum Adresspuffer 181 gesendet. Die 17 Adressbits EA [16:0] werden in 4 Felder unterteilt. Adressbits EA [16:11] bilden ein Bankadressfeld, das eine der vierundsechzig DRAM-Bänke 063 identifiziert. Adressbits EA [10:5] bilden ein Reihenadressfeld, das eine der vierundsechzig Reihen in der adressierten DRAM-Bank identifiziert. Adressbits EA [4:3] bilden ein Spaltenadressfeld, das eine der vier 256-Bit-Sektionen in der adressierten Reihe identifiziert. Schließlich bilden Adressbits EA[2:0] ein Byte-Adressfeld, das eines der acht 32-Bit-Wörter in der adressierten 256-Bit-Sektion identifiziert.
  • Lese- oder Schreibdaten DQ [31:0] werden während des Taktzyklus nach dem Erkennen der Zugriffsanforderung zum E/A-Treiber 190 übertragen. Wie oben beschrieben, beinhaltet jede der DRAM-Bänke 063 eine Array von 64 Reihen und 1024 Spalten von DRAM-Zellen. Jede der DRAM-Bänke 063 ist mit dem Lesepuffer 171 und dem Schreibpuffer 172 gekoppelt. Lesepuffer 171 und Schreibpuffer 172 beinhalten transparente Signalspeicher, die Lese- und Schreibdaten jeweils während der DRAM-Lese- und – Schreibvorgänge rasten. Sowohl der Lesepuffer 171 als auch der Schreibpuffer 172 haben 256 Signalspeicher, so dass diese Puffer eine 256-Bit-Sektion speichern können. Jede der DRAM-Bänke 063 hat eine zugehörige unabhängige Zugriffssteuerschaltung 100163, um parallele Mehrbank-Vorgänge zu erleichtern. Es werden der dedizierte Lesebus DB [255:0] und der dedizierte Schreibbus DA [255:0] verwendet, so dass eine der DRAM-Bänke 063 einen Schreibvorgang durchführen kann, während eine andere der DRAM-Bänke 063 gleichzeitig einen Lesevorgang durchführen kann.
  • 2 ist ein Blockdiagramm, das die Organisation der DRAM-Bänke 063, SRAM-Cache 187 und Cache-Tag-Speicher 185 illustriert. Der Deutlichkeit halber sind in 2 nur DRAM-Bänke 0 und 4 dargestellt. Der SRAM-Cache 187 ist genau wie die DRAM-Bänke 063 organisiert. Das heißt, der SRAM-Cache 187 beinhaltet eine Array von 64 Reihen und 1024 Spalten von SRAM-Zellen. Die SRAM-Zellen können beispielsweise traditionelle Vier-Transistor- oder Sechs-Transistor-SRAM-Zellen sein. Die Spalten von DRAM-Bänken 063 und die Spalten von SRAM-Cache 187 sind logisch in vier Sektionen unterteilt, wobei jede Sektion 256 Spalten (d. h. 256 Bits) hat. Reihe 0, Sektion 0 der DRAM-Bank 0 speichert 256 Bits in der Form von acht 32-Bit-Worten A, B, C, D, E, F, G und H. Reihe 1, Sektion 2 von DRAM-Bank 0 speichert 256 Bits in der Form von acht 32-Bit-Wörtern I, J, K, L, M, N, O und P. Reihe 1, Sektion 2 der DRAM-Bank 4 speichert 256 Bits in der Form von acht 32-Bit-Wörtern Q, R, S, T, U, V, W und X.
  • Wie nachfolgend ausführlicher beschrieben wird, speichert der SRAM-Cache 187 256-Bit-Cache-Entries von den verschiedenen DRAM-Bänken 063. So speichert z. B. Reihe 0, Sektion 0 von SRAM-Cache 187 einen Cache-Entry, der von Reihe 0, Sektion 0 einer der DRAM-Bänke 063 empfangen wurde. Ebenso speichert Reihe 1, Sektion 2 von SRAM-Cache 187 einen Cache-Entry, der von Reihe 1, Sektion 2 einer der DRAM-Bänke 0–63 empfangen wurde. In dem Beispiel von 2 speichert SRAM-Cache 187 die Wörter A, B, C, D, E, F, G und H von DRAM-Bank 0 als Cache-Entry für Reihe 0, Sektion 0. Cache-Tag 185 speichert die 6-Bit-Bankadresse von DRAM-Bank 0 (d. h. 000000), was bedeutet, dass der Inhalt von Reihe 0, Sektion 0 von SRAM-Cache 187 mit DRAM-Bank 0 assoziiert ist. Jeder Entry des Cache-Tag 185 beinhaltet auch ein Gültig-Anzeigebit V und ein Modifiziert-Anzeigebit M, die nachfolgend ausführlicher beschrieben werden. Im Allgemeinen wird das Gültig-Anzeigebit V gesetzt, um einen gültigen Cache-Entry anzuzeigen. Ein gesetztes Modifiziert-Anzeigebit M zeigt an, dass der assoziierte Cache-Entry modifiziert wurde und dass der im SRAM-Cache 187 gespeicherte assoziierte Cache-Entry bei einem Cache-Miss-Zugriff zurück auf die assoziierte DRAM-Bank geschrieben werden muss.
  • Ebenso in 2, der SRAM-Cache 187 speichert die Wörter Q, R, S, T, U, V, W und X von DRAM-Bank 4 als Cache-Entry für Reihe 1, Sektion 2. Der Cache-Tag 185 speichert die 6-Bit-Bankadresse von DRAM-Bank 4 (d. h. 000100), was bedeutet, dass der Inhalt von Reihe 1, Sektion 2 von SRAM-Cache 187 mit der DRAM-Bank 4 assoziiert ist. Das oben beschriebene Caching-Schema ist ein Direct-Mapped-Caching-Schema.
  • Cache-Lesepuffer 188 und Cache-Schreibpuffer 189 sind mit dem SRAM-Cache 187 gekoppelt. Cache-Lesepuffer 188 und Cache-Schreibpuffer 189 ermöglichen es dem SRAM-Cache 187, einen Lesevorgang und einen Schreibvorgang während desselben Zyklus des CLK-Signals durchzuführen. In einer anderen Ausgestaltung wird der SRAM-Cache 187 mit Dualport-SRAM-Zellen hergestellt, die zum Unterstützen von Lese- und Schreibvorgängen während eines einzigen Zyklus des CLK-Signals verwendet werden können. Wie oben beschrieben, wird der SRAM-Cache 187 als Direct-Map-Cache mit 256 Cache-Entries organisiert, wobei jeder Cache-Entry 256 Bits enthält (d. h. acht 32-Bit-Wörter). Der unidirektionale interne Datenbus DA [255:0] koppelt den Cache-Lesepuffer 188 mit dem Schreibpuffer 172. Der Datenbus DA [255:0] leitet die vom Cache-Lesepuffer 188 gelesenen Daten zum Schreibpuffer 172. Der unidirektionale interne Datenbus DB [255:0] koppelt den Cache-Schreibpuffer 189 mit dem Lesepuffer 171 (durch den Multiplexer 193). Der Datenbus DB [255:0] leitet die vom Lesepuffer 171 gelesenen Daten zum Cache-Schreibpuffer 189 (durch den Multiplexer 193).
  • Während normaler Operationen kann ein ganzer Cache-Entry (256 Bits) in einem einzigen Zyklus des CLK-Signals vom Lesepuffer 171 zum SRAM-Cache 187 übertragen werden. Ebenso kann ein ganzer Cache-Entry in einem einzigen Zyklus des CLK-Signals vom SRAM-Cache 187 auf den Schreibpuffer 172 übertragen werden. Operationen des SRAM-Cache 187 werden vom Cache-Steuersequencer 186 mit Hilfe des Cache-Tag-Speichers 185 gesteuert.
  • Das Cache-Schema wird wie folgt ausgeführt. Beim Einschalten des 1-T SRAM 170 drückt eine chipinterne Einschalt-Reset-Schaltung (nicht dargestellt) ein CLEAR-Signal auf, das an den Cache-Tag-Speicher 185 angelegt wird. Als Reaktion auf das CLEAR-Signal werden alle Gültig-Anzeigebits V des Cache-Tag-Speichers 185 auf null zurückgesetzt, wodurch der Cache-Tag-Speicher 185 zurückgesetzt wird. Bei jedem Schreiben eines Cache-Entry auf den SRAM-Cache 187 wird das Gültig-Anzeigebit V im zugehörigen Cache-Tag-Entry auf einen Wert von logisch eins gesetzt.
  • In der vorliegenden Erfindung wird eine Write-Back-Richtlinie verwendet. Der Grund ist, dass eine Write-Through-Strategie zwar einfacher ist, aber es erfordern würde, dass Daten für jede Schreibtransaktion auf DRAM-Bänke 063 geschrieben werden, was ein Auffrischungsproblem verursachen könnte (d. h. wenn eine der Bänke 063 kontinuierlich für eine Zeitperiode beschrieben wird, die länger als die höchstzulässige Auffrischperiode ist, dann wird die Bank nicht richtig aufgefrischt, was wiederum Datenfehler verursachen kann).
  • Die Write-Back-Richtlinie wird nachfolgend für die vier möglichen Lese- und Schreibtransaktionen von Lese-Hit, Schreib-Hit, Lese-Miss und Schreib-Miss beschrieben. Wenn ein Zugriff von einer externen Schaltung eingeleitet wird, dann wird eine Adresse EA [16:0] zum Adresspuffer 181 gesendet. Der Adresspuffer 181 leitet diese Adresse EA [16:0] wiederum zum Cache-Tag-Speicher 185. Diese Adresse EA [16:0] identifiziert eine DRAM-Bank, Reihe und Sektion, auf die zugegriffen wird. So könnte beispielsweise Adresse EA [16:0] DRAM-Bank 4, Reihe 1, Sektion 2 identifizieren. Als Reaktion auf die Adresse EA [16:0] greift der Cache-Tag-Speicher 185 auf die in der identifizierten Reihe und Sektion gespeicherte Bankadresse zu. Im beschriebenen Beispiel würde der Cache-Tag-Speicher 185 die in Reihe 1, Sektion 2 gespeicherte Bankadresse oder 000100 abrufen. Der Cache-Tag-Speicher 185 sendet diese abgerufene Bankadresse zum Komparator 184. Der Cache-Tag-Speicher 185 legt auch das Modifiziert-Bit M in Verbindung mit der abgerufenen Bankadresse an den Cache-Steuersequencer 186 an. Der Komparator 184 vergleicht die vom Cache-Tag-Speicher 184 abgerufene Bankadresse mit der aktuellen Bankadresse EA [16:11]. Wenn der Komparator 184 eine Übereinstimmung feststellt, dann liegt ein Cache-Hit vor, und der Komparator 184 drückt ein HIT-Steuersignal auf. Wenn der Komparator 184 keine Übereinstimmung feststellt, dann liegt ein Cache-Miss vor, und der Komparator 184 drückt das HIT-Steuersignal nicht auf. Das HIT-Steuersignal wird an den Bankadressdecoder 182 und den Cache-Steuersequencer 186 angelegt.
  • Als Reaktion auf die Signale ADS#, WR#, M und HIT ermittelt der Cache-Steuersequencer 186, ob der aktuelle Zugriff ein Lese-Hit, Schreib-Hit, Lese-Miss oder Schreib-Miss Zugriff ist.
  • Wenn der aktuelle Zugriff ein Lese-Hit-Zugriff ist, dann enthält der SRAM-Cache 187 die gewünschten Daten. Der Cache-Steuersequencer 186 bewirkt somit, dass der SRAM-Cache 187 die gewünschten Daten an den Cache-Lesepuffer 188 anlegt. Die gewünschten Daten werden vom Cache-Lesepuffer 188 zum Multiplexer 192 geleitet. Der Multiplexer 192 leitet diese Daten als Reaktion auf das aufgedrückte HIT-Steuersignal zum Multiplexer 191. Der Multiplexer 191 leitet das eine der acht 32-Bit-Wörter zum E/A-Treiber 190 als Reaktion auf die Byte-Select-Adressbits EA [2:0]. Der E/A-Treiber 190 setzt das gewählte Wort auf den Datenbus DQ [31:0]. Da während eines Lese-Hit-Zugriffs nicht auf DRAM-Bänke 063 zugegriffen wird, können alle DRAM-Bänke 063 während eines Lese-Hit-Zugriffs Auffrischvorgänge durchführen.
  • Wenn der aktuelle Zugriff ein Schreib-Hit-Zugriff ist, dann speichert der SRAM-Cache 187 einen Cache-Entry, der mit der adressierten DRAM-Bank, Reihe und Sektion übereinstimmt. Unter diesen Bedingungen bewirkt der Cache-Steuersequencer 186, dass die externen Schreibdaten auf diesen Cache-Entry und nicht auf die adressierte DRAM-Bank geschrieben werden. Man nehme beispielsweise an, dass der aktuelle Schreibzugriff das Schreiben eines 32-Bit-Wortes Z auf die letzte Wortposition von DRAM-Bank 4, Reihe 1, Sektion 2 vorgibt (siehe 2). Da der Inhalt dieser Adresse (d. h. das 32-Bit-Wort X) bereits im SRAM-Cache 187 gespeichert ist, liegt ein Cache-Schreib-Hit vor. Das Wort Z wird an den E/A-Treiber 190 auf dem Datenbus DQ [31:0] angelegt. Der E/A-Treiber 190 leitet das Wort Z zum Demultiplexer 194. Als Reaktion auf die Byte-Adresse EA [2:0] leitet der Demultiplexer das Wort Z auf einem Satz von Busleitungen, die der jeweiligen Wortposition entsprechen. Das Wort Z wird als Reaktion auf das externe Schreibfreigabesignal EWR durch den Multiplexer 193 zum Cache-Schreibpuffer 189 geleitet. Der Cache-Schreibpuffer 189 liefert das Wort Z, um das in Reihe 1, Sektion 2 des SRAM-Cache 187 gespeicherte Wort X zu überschreiben. Der Cache-Steuersequencer 186 bewirkt auch, dass das Modifiziert-Anzeigebit M in Verbindung mit Reihe 1, Sektion 2 des Cache-Tag-Speichers 185 gesetzt wird. Da auf DRAM-Bänke 063 während eines Schreib-Hit-Zugriffs nicht zugegriffen wird, können alle DRAM-Bänke 063 während eines Schreib-Hit-Zugriffs aufgefrischt werden.
  • Wenn der aktuelle Zugriff ein Lese-Miss-Zugriff ist, speichert der SRAM-Cache 187 keinen Cache-Entry, der der adressierten DRAM-Bank, Reihe und Sektion entspricht. Man nehme beispielsweise an, dass ein Lesevorgang versucht, auf Reihe 1, Sektion 2 von DRAM-Bank 0 zuzugreifen (2). Ein Cache-Miss wird erfasst, weil die Wörter Q, R, S, T, U, V, W und X aus DRAM-Bank 4 im zugehörigen Entry des SRAM-Cache 187 gespeichert sind. Nach dem Erfassen des Lese-Miss-Zustands bewirkt, wenn das Modifiziert-Bit M in Verbindung mit dem Cache-Tag-Entry gesetzt ist, der Cache-Steuersequencer 186, dass der Cache-Entry veranlasst, dass der Miss zurück auf seine zugehörige DRAM-Bank geschrieben wird. Dieser Write-Back-Vorgang ist nur dann notwendig, wenn das Modifiziert-Bit M gesetzt ist. Ist das Modifiziert-Bit M nicht gesetzt, dann stimmen im SRAM-Cache 187 gespeicherte Daten mit den in der zugehörigen DRAM-Bank gespeicherten Daten überein, und es ist kein Write-Back erforderlich. Im vorliegenden Beispiel besteht der Write-Back-Vorgang darin, dass die Wörter Q, R, S, T, U, V, W und X von Reihe 1, Sektion 2 des SRAM-Cache 187 durch den Cache-Lesepuffer 188 und den Schreibpuffer 172 auf Reihe 1, Sektion 2 der DRAM-Bank 4 geleitet werden.
  • Gleichzeitig leitet der Cache-Steuersequencer 186 einen Lesevorgang auf Reihe 1, Sektion 2 der DRAM-Bank 0 ein. Datenwörter I, J, K, L, M, N, O und P werden von Reihe 1, Sektion 2 von DRAM-Bank 0 gelesen, durch Lesepuffer 171, Multiplexer 193 und Cache-Schreibpuffer 189 geleitet und auf Reihe 1, Sektion 2 von SRAM-Cache 187 geschrieben. Ferner wird der Cache-Tag-Entry in Verbindung mit Reihe 1, Sektion 2 so aktualisiert, dass er die Bankadresse von DRAM-Bank 0 (d. h. 000000) reflektiert, und das Modifiziert-Bit M dieses Cache-Tag-Entry wird auf null zurückgesetzt, um anzuzeigen, dass die im SRAM-Cache 187 gespeicherten Daten mit den in der DRAM-Bank 0 gespeicherten Daten übereinstimmen. Die Datenwörter I, J, K, L, M, N, O und P werden auch durch den Multiplexer 192 als Reaktion auf das weggenommene HIT-Steuersignal geleitet. Der Multiplexer 191 leitet ein ausgewähltes der Datenwörter I, J, K, L, M, N, O und P zum E/A-Treiber 190 (und somit zum Datenbus DQ [31:0]) als Reaktion auf die Byte-Select-Adresse EA [2:0]. So kann der Multiplexer 191 beispielsweise das Datenwort M zum E/A-Treiber 190 leiten. Man beachte, dass während eines Lese-Miss-Zugriffs alle DRAM-Bänke außer der an den Read- oder Write-Back-Vorgängen beteiligten DRAM-Bänken aufgefrischt werden können.
  • Wenn der aktuelle Zugriff ein Schreib-Miss-Zugriff ist, dann speichert der SRAM-Cache 187 keinen Cache-Entry, der mit der adressierten DRAM-Bank, Reihe und Sektion übereinstimmt. Man nehme beispielsweise an, dass ein Schreibvorgang versucht, ein Wort Z auf Reihe 1, Sektion 2 von DRAM-Bank 0 zu schreiben (2). Ein Cache-Miss wird erkannt, weil die Wörter Q, R, S, T, U, V, W und X von DRAM-Bank 4 im assoziierten Cache-Entry von SRAM-Cache-Speicher 187 gespeichert werden. Nach dem Erkennen des Schreib-Miss-Zustands bewirkt, wenn das Modifiziert-Bit in Verbindung mit dem Cache-Tag-Entry gesetzt ist, der Cache-Steuersequencer 186, dass der Cache-Entry veranlasst, dass der Miss zurück auf seine zugehörige DRAM-Bank geschrieben wird. Dieser Write-Back-Vorgang ist nur dann notwendig, wenn das Modifiziert-Bit M gesetzt ist. Wenn das Modifiziert-Bit M nicht gesetzt ist, dann stimmen die im SRAM-Cache 187 gespeicherten Daten mit den. in der zugehörigen DRAM-Bank gespeicherten Daten überein, und es ist kein Write-Back erforderlich.
  • Im vorliegenden Beispiel werden die Wörter Q, R, S, T, U, V, W und X von Reihe 1, Sektion 2 des SRAM-Cache 187 auf Reihe 1, Sektion 2 der DRAM-Bank 4 durch den Cache-Lesepuffer 188 und den Schreibpuffer 172 geleitet. Gleichzeitig leitet der Cache-Steuersequencer 186 einen Lesevorgang auf Reihe 1, Sektion 2 von DRAM-Bank 0 ein. Die Datenwörter I, J, K, L, M, N, O und P werden von Reihe 1, Sektion 2 von DRAM-Bank 0 gelesen und durch den Lesepuffer 171 zum Multiplexer 193 geleitet. Auch das gemäß dem aktuellen Schreibzugriff zu schreibende 32-Bit-Datenwort Z wird (durch Datenbus DQ [31:0], E/A-Treiber 190 und Demultiplexer 194) an den Multiplexer 193 angelegt.
  • Der Multiplexer 193 leitet sieben der acht Datenwörter I, J, K, L, M, N, O und P plus Datenwort Z zum Cache-Schreibpuffer 189 als Reaktion auf die Byte-Adresse EA [2:0]. Wenn beispielsweise die Byte-Adresse EA [2:0] die erste Datenwortposition identifiziert, dann leitet der Multiplexer 193 die Wörter Z, J, K, L, M, N, O und P zum Cache-Schreibpuffer 189. Diese Datenwörter werden dann vom Cache-Schreibpuffer 189 auf Reihe 1, Sektion 2 des SRAM-Cache 187 geschrieben. Zusätzlich wird der Cache-Tag-Speicher 185 durch Schreiben der Bankadresse in Verbindung mit DRAM-Bank 0 auf Reihe 1, Sektion 2 des Cache-Tag-Speichers 185 aktualisiert. Das Modifiziert-Anzeigebit M dieses Cache-Tag-Entry wird jetzt ebenso gesetzt, wodurch angezeigt wird, dass der Cache-Entry im SRAM-Cache 187 nicht derselbe ist wie die entsprechenden Daten in der DRAM-Bank 0 (d. h. SRAM-Cache 187 enthält Z, J, K, L, M, N, O und P, während DRAM-Bank 0 I, J, K, L, M, N, O und P enthält). Man beachte, dass während eines Schreib-Miss-Zugriffs alle DRAM-Bänke außer den an den Read- und Write-Back-Vorgängen beteiligten DRAM-Bänken aufgefrischt werden können.
  • DRAM-Vorgänge
  • 3 ist ein schematisches Diagramm der DRAM-Bank 0 und der Zugriffssteuerschaltung 100. Da jede der DRAM-Bänke 163 mit der DRAM-Bank 0 identisch ist und jede der Zugriffssteuerschaltungen 101163 mit der Zugriffssteuerschaltung 100 identisch ist, werden nur die DRAM-Bank 0 und die Zugriffssteuerschaltung 100 ausführlich beschrieben. DRAM-Bank 0 besteht aus einer DRAM-Zellenarray 200 mit 64 Reihen und 1024 Spalten. Die DRAM-Bank 0 beinhaltet ferner alle konventionellen Schaltungen in Verbindung mit einer DRAM-Array, wie z. B. Wortleitungstreiber 201 sowie Leseverstärker & Spaltenmultiplexer 202. Datenbusse RDL [255:0] und RDL# [255:0] verbinden die DRAM-Bank 0 mit dem Lesepuffer 171. Die Datenbusse WDL [255:0] und WDL# [255:0] verbinden die DRAM-Bank 0 mit dem Lesepuffer 172. Die Zugriffssteuerschaltung 100 beinhaltet Reihenadressdecoder 205, Spaltenadressdecoder 206, Speichersteuersequencer 207, Auffrischadresszähler 208, Adressmultiplexer 210 und Zugriffsentscheidungslogik zum Regulieren der externen Zugriffe und der Auffrischzugriffe. Die Zugriffsentscheidungslogik beinhaltet NAND-Gates 211214, Inverter 215, AND-Gate 216 und Flipflop 217.
  • Der Speichersteuersequencer 207 erzeugt die Zugriffssteuersignale RAS# (Reihenzugriff), CAS# (Spaltenzugriff), SEN# (Leseverstärkerfreigabe) und PRC# (Vorladung) zum Steuern der Operationen der DRAM-Bank 0. Diese Steuersignale werden ausführlicher in dem in Gemeinschaftsbesitz befindlichen mitanhängigen US-Patent 6,078,547 mit dem Titel "Method and Structure for Controlling Internat Operations of a DRAM Array" von Wingyu Leung (Einreichungsdatum 12. Mai 1998) beschrieben. Im Allgemeinen werden die Signale RAS#, CAS#, SEN# und PRC# zu vorbestimmten Zeitpunkten innerhalb eines einzelnen Zyklus des CLK-Signals erzeugt, wobei die vorbestimmten Zeiten im Hinblick auf die ansteigenden und abfallenden Flanken des CLK-Signals bestimmt werden. Infolgedessen beendet eine DRAM-Bank 0 einen Speicherzyklus in einem Zyklus des CLK-Signals. Die Zeitsteuerung der Steuersignale RAS#, CAS#, SEN# und PRC# erfolgt mittels der vier Phasentaktsignale P [3:0], die vom Taktphasengenerator 180 erzeugt werden (1). Der Taktphasengenerator 180 erzeugt Phasentaktsignale P [3:0] als Reaktion auf das CLK-Signal mit einem Verzögerungsleitungsschema. Der Taktphasengenerator 180 ist ausführlicher im US-Patent Nr. 6 078 547 beschrieben. Da ein Speicherzyklus nur eine Taktperiode erfordert, kann die DRAM-Bank 0 einen Zufallszugriff oder eine Reihenauffrischung während eines Taktzyklus verarbeiten.
  • Ein Speicherzyklus wird eingeleitet, wenn das NAND-Gate 211 ein logisch hohes ST [0] Signal auf den Speichersteuersequencer 207 aufdrückt. Das ST [0] Signal wird hoch angesteuert, wenn eines der drei folgenden Signale tief aufgedrückt wird: Leseanforderungssignal ERQ# [0], Schreibanforderungssignal WRQ# [0] oder Auffrischanforderungssignal RFQ#. Der Bezeichner [0] entspricht der DRAM-Bankadresse. Somit hätte die DRAM-Bank 23 ähnliche Signale ST [23], ERQ# [23] und WRQ# [23]. Man beachte, dass dadurch jede der DRAM-Bänke 0–63 unabhängig gesteuert wird.
  • Das Leseanforderungssignal ERQ# [0] wird vom Bankadressdecoder 182 erzeugt (1). Das Leseanforderungssignal ERQ# [0] wird tief aufgedrückt, wenn ein Cache-Miss auftritt und Daten infolge des Cache-Miss aus der DRAM-Bank 0 gelesen werden müssen. Die Bedingungen, unter denen ein solcher Lesezugriff erforderlich sein kann, wurden oben in Verbindung mit den Schreib-Miss- und Lese-Miss-Zugriffen beschrieben.
  • Das Schreibanforderungssignal WRQ# [0] wird vom Bankadressdecoder 183 erzeugt (1). Das Schreibanforderungssignal WRQ# [0] wird tief aufgedrückt, wenn ein Cache-Miss auftritt und Daten im SRAM-Cache-Speicher 187 zurück auf die DRAM-Bank 0 geschrieben werden müssen. Die Bedingungen, unter denen ein Write-Back-Vorgang erforderlich ist, wurden oben in Verbindung mit den Schreib-Miss- und Lese-Miss-Zugriffen beschrieben.
  • Das Leseanforderungssignal ERQ# [0] und das Schreibanforderungssignal WRQ# [0] schließen sich gegenseitig aus. Das heißt, diese Signale können nicht gleichzeitig aktiviert werden. Der Grund ist, dass sich die Bankadresse in Verbindung mit dem ersetzten Cache-Entry während eines Cache-Miss-Zugriffs unbedingt von der Bankadresse in Verbindung mit den von einer DRAM-Bank abgerufenen Daten unterscheiden muss. Aber es kann entweder das Schreibanforderungssignal WRQ# [0] oder das Leseanforderungssignal ERQ# [0] dann tief aufgedrückt werden, wenn das Auffrischanforderungssignal RFQ# tief aufgedrückt wird, um einen Auffrischzugriff einzuleiten. Wie nachfolgend beschrieben, haben sowohl das Schreibanforderungssignal WRQ# [0] als auch das Leseanforderungssignal ERQ# [0] immer Prtorität gegenüber dem Auffrischanforderungssignal RFQ#. Infolgedessen werden Zugriffe auf die DRAM-Bank 0 (und Zugriffe auf die DRAM-Bänke 1–63) niemals durch Auffrischzugriffe verzögert.
  • Auffrischvorgang
  • Der Auffrisch-Timer 195 (1) ist ein 15-Bit-Binärzähler. Bei einem 100 MHz Betrieb erzeugt der Auffrisch-Timer 195 alle 320 μs eine Auffrischanforderung. Jede der Speicherbänke 063 wird unabhängig aufgefrischt, wobei eine Reihe einer Speicherbank während eines Auffrischzyklus aufgefrischt wird. Ein Auffrischzugriff wird durch Lesen einer Reihe einer DRAM-Bank implementiert. Das Lesen einer Reihe einer DRAM-Bank hat den Effekt, dass die Ladung in den DRAM-Zellen in der Reihe aufgefrischt wird. Vierundsechzig Auffrischzyklen werden benötigt, um alle 64 Reihen einer DRAM-Bank vollständig aufzufrischen. Die Auffrischzeit für den 1-T SRAM 170 beträgt somit 320 μs mal 64 oder 20,48 ms.
  • Der Ausgang des Auffrisch-Timers 195 ist das Auffrischanforderungssignal RFQ#, das für einen Taktzyklus aktiviert wird, wenn der Auffrisch-Timer 195 eine volle Zahl erreicht, d. h. dann, wenn alle Zählerbits im H-Zustand sind. Da die Periode des Auffrisch-Timers 195 320 μs beträgt und nur 64 × 4 × 10 ns (64 Reihen, 4 Cache-Zeilen pro Reihe) oder 2,56 μs benötigt, um vollständig auf alle Cache-Entries des SRAM-Cache 187 zuzugreifen, erfolgt wenigstens ein Cache-Hit oder Speicherruhezyklus in jeder der DRAM-Bänke 063 während jeder Auffrisch-Timer-Periode. Dadurch wird gewährleistet, dass keine der DRAM-Bänke 063 einen Auffrischzyklus verpasst und dass jede der DRAM-Bänke 063 rechtzeitig aufgefrischt wird.
  • Zu einer Zugriffskollision kann es jedoch dann kommen, wenn eine Auffrischanforderung und eine externe Zugriffsanforderung (d. h. ein Cache-Miss-Zugriff) während desselben Taktzyklus erzeugt werden. Die Zugriffskollision wird in der DRAM-Bank gehandhabt, indem der Cache-Miss-Zugriff zuerst verarbeitet und die Auffrischanforderung verzögert wird, indem der tiefe Zustand des Auffrischanforderungssignals RFQ# in einem Flipflop gespeichert wird. Der Auffrisch-Speicherflipflop 220 wird von den NAND-Gates 212 und 213 in 3 gebildet. Der Cache-Miss-Zugriff hat immer Priorität gegenüber dem Auffrischzugriff, um zu gewährleisten, dass der externe Speicherzugriff immer ohne Verzögerung abgeschlossen wird. Infolgedessen sind DRAM-Bank-Auffrischzugriffe für die Außenwelt transparent, so dass sich der 1-T SRAM 170 auf eine Weise verhält, die mit einem SRAM-Bauelement völlig kompatibel ist.
  • Die Zugriffspriorität wird vom Adressmultiplexer 210 eingestellt, der so gesteuert wird, dass er entweder die Reihenadresse EA [10:5] oder die Auffrischreihenadresse RA [5:0] zum Reihenadressdecoder 205 sendet. Die Reihenadresse EA [10:5] ist die Reihenadresse in Verbindung mit einem Cache-Miss-Zugriff. Der Adressmultiplexer 210 wird von dem vom AND-Gate 216 angelegten Ausgangssignal gesteuert. Die Eingangsanschlüsse des AND-Gate 216 sind so geschaltet, dass sie das Leseanforderungssignal ERQ# [0] und das Schreibanforderungssignal WRQ# [0] empfangen. Wenn eines dieser Anforderungssignale tief aufgedrückt wird, dann wählt der Adressmultiplexer 210 die Reihenadresse EQ [10:5] für den aktuellen Speicherzyklus. In Abwesenheit eines Cache-Miss-Zugriffs werden sowohl ERQ# [0] als auch WRQ# [0] im H-Zustand weggenommen, so dass der Multiplexer 210 veranlasst wird, die Auffrischadresse RA [5:0] zum Reihenadressdecoder 205 zu leiten.
  • Der Auffrischzugang wird so lange verzögert, bis die DRAM-Bank im Ruhezustand ist. Der Flipflop 220 wird gesetzt, wenn das Auffrischanforderungssignal RFQ# tief aufgedrückt wird. Der Flipflop 220 bleibt im gesetzten Zustand, bis das Auffrischbestätigungssignal RFAK# tief aufgedrückt wird. Das Auffrischbestätigungssignal RFAK# wird tief aufgedrückt, wenn die Signale ST [0], ERQ# [0] und WRQ# [0] im H-Zustand sind. Wenn alle diese Signale im H-Zustand sind, wird ein Auffrischzugriff eingeleitet. Der Flipflop 217 synchronisiert die Rückstellung des Flipflops 220 mit dem CLK-Signal. Der Sechs-Bit-Auffrischadresszähler 208 verfolgt die aufzufrischende Reihenadresse. Der Auffrischadresszähler 208 wird für jeden Tief-Hoch-Übergang des Signals RFAK# inkrementiert. Wenn der Auffrischadresszähler 208 die volle Zahl 111111 erreicht, dann wird er auf 000000 zurückgesetzt.
  • Zeitsteuerung von Vorgängen
  • 4 ist ein Wellenformdiagramm, das die zeitliche Steuerung von vier aufeinander folgenden Transaktionen AN, BN, CM und DP illustriert. Transaktionen AN und BN sind Zugriffe auf dieselbe DRAM-Bank N. Transaktion CM ist ein Zugriff auf die DRAM-Bank M, und Transaktion DP ein Zugriff auf die DRAM-Bank P. Spezifischer aufgedrückt, Transaktion AN ist ein Lese-Miss-Zugriff auf DRAM-Bank N, Transaktion BN ist ein Cache-Hit-Zugriff auf DRAM-Bank N, die mit einem Auffrischzugriff am Anfang des Taktzyklus T3 kollidiert, Transaktion CM ist eine Schreib-Miss-Transaktion auf DRAM-Bank M, die ein Write-Back von modifizierten Daten auf die DRAM-Bank R erfordert, und Transaktion DP ist ein Lese-Miss-Zugriff auf DRAM-Bank P.
  • Während des Taktzyklus T1 wird eine Speichertransaktion AN mit dem tief angesteuerten ADS# Signal eingeleitet, wobei eine Speicheradresse EA [16:0] zum Adresspuffer 181 gesendet wird, und wobei das Signal WR# in den H-Zustand gebracht wird, was bedeutet, dass die Transaktion ein Lesezugriff ist. Die Speicheradresse EA [16:11] identifiziert die angeforderte Bankadresse als DRAM-Bank N. An der ansteigenden Flanke des Taktzyklus T2 wird die Lesetransaktion AN erfasst. Die durch Adresssignale EA [10:3] repräsentierten Reihen- und Spaltenadressen werden vom Adresspuffer 181 gepuffert und zu allen Speicherbänken 063 sowie zum Cache-Tag-Speicher 185 gesendet. Im Cache-Tag-Speicher 185 wird die Cache-gespeicherte Bankadresse, auf die die Reihen- und Spaltenadresse zeigt, zum Komparator 184 geleitet, wo sie mit der Bankadresse EA [16:11] der Transaktion AN verglichen wird. Der Komparator 184 steuert das HIT-Signal in den L-Zustand und zeigt so an, dass die aktuelle Transaktion AN ein Cache-Miss ist. Als Reaktion auf das logisch tiefe HIT-Signal und die aktuelle Bankadresse EA [16:11] drückt der Bankadressdecoder 182 das Leseanforderungssignal ERQ# [N] im L-Zustand auf. Man beachte, dass alle anderen Leseanforderungssignale ERQ# im H-Zustand weggenommen werden. Das Modifiziert-Anzeigebit M in Verbindung mit der Cache-gespeicherten Bankadresse wird vom Cache-Tag-Speicher 185 an den Cache-Steuersequencer 186 angelegt. In dem beschriebenen Beispiel ist dieses Modifiziert-Anzeigebit M im L-Zustand, was bedeutet, dass der zu ersetzende Cache-Entry nicht modifiziert wurde. Als Reaktion darauf bringt der Cache-Steuersequencer 186 das Speicherschreibsignal MW# zum Bankadressdecoder 183 in den H-Zustand. Als Reaktion darauf nimmt der Bankadressdecoder 183 alle Schreibanforderungssignale WRQ# [63:0] im H-Zustand weg, so dass ein Write-Back-Vorgang gesperrt wird.
  • Der L-Zustand des Leseanforderungssignals ERQ# [N] bewirkt, dass die DRAM-Bank N einen Speicherlesezyklus startet. Gleichzeitig drückt der Cache-Steuersequencer 186 das Tag-Schreibsignal TW# im L-Zustand auf, wodurch bewirkt wird, dass die Bankadresse N auf den Cache-Tag-Speicher 185 an der Stelle geschrieben wird, auf die die Adresse EA [10:3] zeigt. In der zweiten Hälfte des Taktzyklus T2 stehen die von der DRAM-Bank N gelesenen Daten auf dem Bus DB [255:0] zur Verfügung und werden durch den 2:1 Multiplexer 192, den 8:1 Multiplexer 191 und den E/A-Treiber 190 zum externen Datenbus DQ [31:0] übertragen. Die Daten auf DB [255:0] werden ebenfalls durch den Multiplexer 193 zum SRAM-Cache 187 übertragen. Da die Transaktion ein Lesevorgang ist, ist das externe Schreibfreigabesignal EWR# im L-Zustand, so dass alle 256 Bit Daten DB [255:0] zum Cache-Schreibpuffer 189 des SRAM-Cache 187 geleitet werden. Wenn das Cache-Schreibfreigabesignal CW# im L-Zustand aufgedrückt wird, dann werden die Daten DB [255:0] auf den SRAM-Cache 187 geschrieben.
  • Zu Beginn des Taktzyklus T3 wird die Lesetransaktion BN erfasst. Eine Auffrischanforderung wird ebenfalls erfasst und in jeder DRAM-Bank 063 gerastet. Der Komparator 184 erkennt eine Übereinstimmung zwischen dem aktuellen Bankadresssignal EA [16:11] und der vom Cache-Tag-Speicher 185 kommenden Cache-gespeicherten Bankadresse. Als Reaktion darauf drückt der Komparator 184 ein logisch hohes HIT-Signal auf. Das logisch hohe HIT-Signal bewirkt, dass alle Leseanforderungssignale ERQ# [63:0] und alle Schreibanforderungssignale WRQ# [63:0] im H-Zustand bleiben. Bei Abwesenheit einer Cache-Miss-Anforderung beginnen alle DRAM-Bänke 063 einen Auffrischzyklus, wobei die Auffrischadresse RA [5:0] vom entsprechenden Auffrischadresszähler 208 ( 3) geliefert wird. Da Transaktion BN ein Lesezugriff ist, bleibt das Cache-Schreibfreigabesignal CW# im H-Zustand, und die angeforderten Daten werden vom SRAM-Cache 187 auf den Cache-Lesepuffer 188 übertragen. Der Cache-Lesepuffer 188 steuert die Daten auf den 2:1 Multiplexer 192 auf dem Datenbus DA [255:0]. Das logisch hohe HIT-Signal veranlasst den Multiplexer 192, die Daten vom Cache-Lesepuffer 188 auf den 8:1 Multiplexer 191 zu leiten. Die gepufferte Wortauswahladresse EA [2:0] wählt eines der acht 32-Bit-Wörter zur Ausgabe aus. Die gewählten Daten werden dann vom E/A-Treiber 190 zum externen Bus DQ [31:0] übertragen.
  • Zu Beginn des Taktzyklus T4 wird die Schreibtransaktion CM erfasst. Die DRAM-Bankadresse M in Verbindung mit der Transaktion CM wird zum Cache-Tag-Speicher 185 und zum Komparator 184 gesendet. Als Reaktion darauf liefert der Cache-Tag-Speicher 185 die Cache-gespeicherte Bankadresse R. Der Komparator 184 ermittelt, dass die aktuelle Bankadresse M nicht mit der Cache-gespeicherten Bankadresse R übereinstimmt und bringt als Reaktion darauf das HIT-Signal in den L-Zustand, um eine Schreib-Miss-Transaktion anzuzeigen. Im aktuellen Beispiel ist das Modifiziert-Anzeigebit M des Cache-Tag-Entry, auf den zugegriffen wurde, gesetzt, was bedeutet, dass der zugehörige Cache-Entry im SRAM-Cache 187 modifizierte Daten enthält, die zurück auf die DRAM-Bank R geschrieben werden müssen. Infolgedessen werden sowohl das Leseanforderungssignal ERQ# [M] als auch das Schreibanforderungssignal WRQ# [R] jeweils von den Bankadressdecodern 182 und 183 tief aufgedrückt, um dadurch einen Lesevorgang in der DRAM-Bank M und einen Schreibvorgang in der DRAM-Bank R einzuleiten. Die gelesenen Daten von der DRAM-Bank M werden durch die transparenten Signalspeicher des Lesepuffers 171 auf den Bus DB [255:0] ausgegeben. Die gelesenen Daten werden im Lesepuffer 171 an der abfallenden Flanke des CLK-Signals während des Zyklus T4 gerastet.
  • Gleichzeitig nimmt der Cache-Steuersequencer 186 das Cache-Schreibsignal CW# während der ersten Hälfte des Zyklus T4 im H-Zustand weg und veranlasst somit den SRAM-Cache 187, einen Lesevorgang durchzuführen. Der zurück auf die DRAM-Bank R zu schreibende Cache-Entry wird durch transparente Signalspeicher im Cache-Lesepuffer 188 auf den Bus DA [255:0] ausgegeben. Die Daten werden im Cache-Lesepuffer 188 an der abfallenden Flanke des CLK-Signals während Zyklus T4 gerastet. Die Cache-Lesedaten auf DA [255:0] werden durch den DRAM-Schreibpuffer 172 auf die DRAM-Bank R geschrieben. Ebenso werden die DRAM-Lesedaten auf DB [255:0] durch den Cache-Schreibpuffer 189 auf den SRAM-Cache 187 geschrieben, wenn das Cache-Schreibsignal CW# während der zweiten Hälfte des Taktzyklus T4 im L-Zustand aktiviert wird. Infolgedessen wird der Cache-Entry in Verbindung mit der aktuellen Adresse EA [10:3] ersetzt. Die Bankadresse M wird auf den Cache-Tag-Speicher 185 geschrieben, die V- und M-Bits werden gesetzt. Das Modifiziert-Anzeigebit M wird so gesetzt, dass es die Tatsache reflektiert, dass der Cache-Line-Inhalt durch die aktuelle Schreibtransaktion CM modifiziert wird. Schreibdaten werden vom Datenbus DQ [31:0] durch den Demultiplexer 194 zum Multiplexer 193 geleitet, wo die von der DRAM-Bank M abgerufenen Daten DB [255:0] mit den externen Schreibdaten gemischt werden. Das Mischen wird durch die Wort-Select-Adresse auf EA [2:0] und das externe Schreibsignal EWR gesteuert, das vom Cache-Steuersequencer 186 im H-Zustand aufgedrückt wird. Die gemischten Daten werden durch den Cache-Schreibpuffer 189 auf den SRAM-Cache 187 geschrieben.
  • Zu Beginn des Taktzyklus T5 werden sowohl die Lesetransaktion DP als auch eine Auffrischanforderung erfasst. Im normalen Betrieb wird das Auffrischanforderungssignal RFQ# nur einmal etwa alle 32.000 Taktzyklen aufgedrückt. Das in 4 gezeigte Timing dient daher lediglich zu Illustrationszwecken. In diesem Beispiel stimmt die Bankadresse EA [16:11] in Verbindung mit der Lesetransaktion DP nicht mit der im Cache-Tag-Speicher 185 gespeicherten assoziierten Cache-gespeicherten Bankadresse überein, so dass der Komparator 184 veranlasst wird, ein logisch tiefes HIT-Signal anzulegen (d. h. ein Lese-Miss-Zugriff). Als Reaktion auf das logisch tiefe HIT-Signal drückt der Bankadressdecoder 182 das Leseanforderungssignal ERQ# [P] im L-Zustand auf. Im vorliegenden Beispiel ist das Modifiziert-Anzeigebit M in Verbindung mit der Cache-gespeicherten Bankadresse im L-Zustand, was bedeutet, dass kein Write-Back-Vorgang erforderlich ist. Infolgedessen nimmt der Cache-Steuersequencer 186 das MW# Signal weg, wodurch bewirkt wird, dass der Bankadressdecoder 183 logisch hohe Werte für jedes der Schreibanforderungssignale WRQ# [63:0] anlegt. Alle DRAM-Bänke außer der DRAM-Bank P durchlaufen jetzt einen Auffrischzyklus, da ihre entsprechenden Signale ERQ# und WRQ# hoch weggenommen werden. In der DRAM-Bank P setzt der L-Zustand des Auffrischanforderungssignals RFQ# den von den NAND-Gates 212 und 213 gebildeten Auffrischflipflop 220 (3). Der L-Zustand des Leseanforderungssignals ERQ# [P] wählt jedoch die Reihenadresse EA [10:5] für den Speicherzyklus. Das Aufdrücken des Leseanforderungssignals ERQ# [P] bewirkt, dass das Signal ST [P] im H-Zustand aufgedrückt und ein Speicherlesezyklus durchgeführt wird, mit dem aufeinander folgenden Aufdrücken der Signale RAS#, CAS#, SEN# und PRC# während des Taktzyklus T5. Die gelesenen Daten werden von der DRAM-Bank P durch den Lesepuffer 171 zum Datenbus DB [255:0] ausgegeben, wo sie zum SRAM-Cache 187 sowie zu Multiplexern 192 und 191 und zum E/A-Treiber 190 und schließlich zum Datenbus DQ [31:0] geleitet werden. Da die Transaktion DP eine Lesetransaktion ist, wird das externe Schreibsignal EWR im L-Zustand deaktiviert, und die gesamte Cache-Line wird nach dem Aufdrücken des Cache-Schreibsignals CW# auf den SRAM-Cache 187 geschrieben.
  • Während des Zyklus T6 ist keine externe Zugriffsanforderung anhängig. Der Auffrischflipflop 220 in der DRAM-Bank P bleibt jedoch gesetzt, wodurch bewirkt wird, dass das Signal ST [P] für die erste Hälfte des Taktzyklus T6 im H-Zustand bleibt. Infolgedessen wird ein anderer Speicherzyklus während des Taktzyklus T6 in der DRAM-Bank P durchgeführt. Wenn sowohl das Leseanforderungssignal ERQ# [P] als auch das Schreibanforderungssignal WRQ# [P] im H-Zustand weggenommen sind, wird die Auffrischadresse RA [5:0] vom Auffrischadresszähler 208 durch den Multiplexer 210 zum Reihenadressdecoder 205 durchgelassen. Infolgedessen wird die durch die Auffrischadresse RA [5:0] identifizierte Reihe aufgefrischt. An der abfallenden Flanke des CLK-Signals während Zyklus T6 wird der tiefe Ausgang des NAND-Gates 214 im Flipflop 217 gerastet, so dass das Auffrischbestätigungssignal RFAK# in den L-Zustand gebracht und der Auffrischflipflop 220 zurückgesetzt wird. Durch die Aktivierung des Signals RFAK# wird auch der Auffrischadresszähler 208 inkrementiert. Der Ausgang des Auffrischadresszählers 208 wird jedoch erst dann inkrementiert, wenn das Signal RFAK# im H-Zustand deaktiviert wird. Infolgedessen wird die Auffrischadresse RA [5:0] vom Auffrischadresszähler 208 während des Speicherzyklus konstant gehalten. Das Auffrischbestätigungssignal RFAK# wird an der abfallenden Flanke des CLK-Signals während des Zyklus T7 hoch deaktiviert.
  • Auf 1-T SRAM 170 kann auf die obige Weise mit einer Rate von einem Speicherzyklus pro Taktzyklus zugegriffen werden, ohne Verzögerungen für Auffrischvorgänge.
  • Zusätzliche Ausgestaltung
  • 5 ist ein Blockdiagramm eines 1-T SRAM-Systems 300 gemäß einer weiteren Ausgestaltung der vorliegenden Erfindung. Das 1-T SRAM-System 300 beinhaltet 128 DRAM-Speicherblöcke 10001127, Auffrischadresszähler 301, Auffrisch-Timer 302, Speichersequencer 303, Adressregister 304, Bankadressdecoder 305306, Logik-OR-Gate 307, Speichersteuereinheit 308, Multiplexer 309, Schreibpuffer 310, Lesepuffer 311, Nur-Schreib-Port 312, Lese-Schreib-Port 313 und Multiplexer 314.
  • Die DRAM-Speicherblöcke 10001127 können 16.000 128-Bit-Wörter speichern. Jeder der Speicherblöcke 10001127 hat eine entsprechende DRAM-Bank (für insgesamt 128 Bänke), die in einer Array mit 32 Reihen mal 512 Spalten angeordnet ist. Die externe Schnittstelle des Systems 300 beinhaltet einen 128-Bit-Eingangsdatenbus zum Empfangen von Eingangsdatenbits Di [127:0], einen 128-Bit-Ausgangsdatenbus zum Empfangen von Ausgangsdatenbits Do [127:0], eine Lesefreigabeleitung zum Empfangen eines Lesefreigabe- (Ren) Signals, eine Schreibfreigabeleitung zum Empfangen eines Schreibfreigabe- (Wen) Signals, einen Takteingangsanschluss zum Empfangen eines Takt-(Clk) Signals, und einen 14-Bit-Adressbus zum Empfangen von Adressbits A [13:0]. Jede der DRAM-Bänke in den Blöcken 10001127 enthält einen entsprechenden Reihenadressdecoder und einen entsprechenden Spaltenadressdecoder.
  • Alle externen Signale werden auf die ansteigende Flanke des Clk-Signals referenziert. Das Adresssignal A [13:0] ist in drei Felder unterteilt: eine 7-Bit-Bankadresse A [13:7] (die einen der 128 Speicherblöcke 1000–1127 identifiziert), eine 5-Bit-Reihenadresse A [6:2] (die eine der 32 Reihen in einer Speicherbank identifiziert) und eine 2-Bit-Wortadresse A [1:0] (die eines der vier 128-Bit-Wörter in einer Reihe identifiziert).
  • Die DRAM-Speicherblöcke 10001127 sind parallel zu einer Mehrzahl von Treibern im Lese-Schreib-Port 313 geschaltet, der als bidirektionaler Port zu den Speicherblöcken 10001127 dient. Die DRAM-Speicherblöcke 10001127 sind auch parallel zu einer Mehrzahl von Treibern im Nur-Schreib-Port 312 geschaltet, der als unidirektionaler (Nur-Schreib-) Port zu Speicherblöcken 10001127 dient. Der Lese-Schreib-Port 313 und der Nur-Schreib-Port 312 dienen als Schnittstelle zwischen DRAM-Speicherblöcken 10001127, Schreibpuffer 310, Lesepuffer 311 und dem Rest der E/A-Logik. Die Busverbindungen zwischen den verschiedenen Elementen des 1-T SRAM-Systems 300 sind in 5 illustriert.
  • Um zu gewährleisten, dass alle Auffrischzugriffe von Speicherblöcken 10001127 ordnungsgemäß innerhalb einer vorbestimmten Auffrischperiode durchgeführt werden, und das selbst unter den ungünstigsten Cache-Thrashing-Bedingungen, wird die Größe von Schreibpuffer 310 und Lesepuffer 311 jeweils so gewählt, dass eine Speicherkapazität entsteht, die gleich der (oder größer als die) Speicherkapazität von einem der DRAM-Speicherblöcke 10001127 minus der Kapazität von einer Reihe von Zellen im DRAM-Speicherblock ist. Im Hinblick auf die bauliche Einfachheit beinhalten der Schreibpuffer 310 und der Lesepuffer 311 in der nachfolgend beschriebenen Ausgestaltung eine Speicherbank mit derselben Organisation wie die Speicherbänke in den DRAM-Speicherblöcken 10001127. So beinhalten der Schreibpuffer 310 und der Lesepuffer 311 in der beschriebenen Ausgestaltung eine Speicherbank mit einer Array von 32 Reihen mal 512 Spalten Speicherzellen. Diese Speicherzellen können entweder mit SRAM-Zellen oder mit DRAM-Zellen aufgebaut sein. Um die nachfolgende Beschreibung zu vereinfachen, werden zunächst mit SRAM-Zellen implementierte Lese- und Schreibpuffer 310311 beschrieben. Dann wird die zusätzliche Steuerung erörtert, die zum Implementieren von Lese- und Schreibpuffern 310311 mit DRAM-Zellen nötig ist. Man beachte, dass in dem beschriebenen Beispiel Schreibpuffer 310 und Lesepuffer 311 jeweils eine Mindestgröße von 31 Reihen und 512 Spalten von Speicherzellen haben.
  • Im Adresspfad wird das externe Zugriffsadresssignal A [13:0] im Adressregister 304 gerastet. Als Reaktion darauf legt das Adressregister 304 ein externes 7-Bit-Bankadresssignal EBA [6:0] an den Bankadressdecoder 305 und die Speichersteuereinheit 308 an. Das externe Bankadresssignal EBA [6:0] (das aus Adresssignalen A [13:7] besteht) identifiziert die Bankadresse des aktuellen Zugriffsvorgangs. Als Reaktion auf das externe Bankadresssignal EBA [6:0] erzeugt der Bankadressdecoder 305 ein externes 128-Bit- Bankauswahlsignal EBS [127:0], das die Bankadresse des aktuellen Zugriffsvorgangs identifiziert. Das externe Bankauswahlsignal EBS [127:0] beinhaltet ein logisch hohes Signal; das der adressierten Bank entspricht, und 127 logisch tiefe Signale, die den nicht adressierten Bänken entsprechen. Das externe Bankauswahlsignal EBS [127:0] wird an das OR-Gate 307 angelegt.
  • Der Bankadressdecoder 306 ist so geschaltet, dass er eine Schreibpufferbankadresse WBBA [6:0] von der Speichersteuereinheit 308 empfängt. Wie nachfolgend ausführlicher beschrieben wird, identifiziert WBBA [6:0] die Bankadresse in Verbindung mit einem im Schreibpuffer 310 gespeicherten Write-Cache-Tag. Als Reaktion auf das Signal WBBA [6:0] erzeugt der Bankadressdecoder 306 ein 128-Bit-Schreibpuffer-Bankauswahlsignal WBBS [27:0], das die Bankadresse identifiziert, die dem Schreib-Cache-Tag entspricht. Das Schreibpuffer-Bankauswahlsignal WBBS [127:0] beinhaltet ein logisch hohes Signal, das der Cache-gespeicherten Bank entspricht, und 127 logisch tiefe Signale, die den nicht Cache-gespeicherten Bänken entsprechen. Das Schreibpuffer-Bankauswahlsignal WBBS [127:0] wird an das OR-Gate 307 angelegt.
  • Das OR-Gate 307 führt den logischen ODER-Vorgang des externen Bankauswahlsignals EBS [127:0] und des Schreibpuffer-Bankauswahlsignals WBBS [127:0] zum Erzeugen des Bankzugriffssignals BA [127:0] durch. Jedes der 128 Bankzugriffssignale BA [127:0] ist mit einem entsprechenden einen der Speicherblöcke 1000–1127 verbunden.
  • Das Adressregister 304 erzeugt auch ein externes Reihen-Spalten-Adresssignal ERC [6:0], das die Reihen- und Spaltenadressen des aktuellen Zugriffsvorgangs identifiziert. Das externe Spaltenadresssignal ERC [6:0] wird so gewählt, dass es den externen Adressbits A [6:0] entspricht. Das externe Reihen-Spalten-Adresssignal ERC [6:0] wird parallel zu jedem der Speicherblöcke 10001127, dem Schreibpuffer 310, dem Lesepuffer 311 und der Speichersteuereinheit 308 erzeugt.
  • Im Allgemeinen arbeitet das Speichersystem 300 wie folgt. Die Speichersteuereinheit 308 steuert das Zugreifen auf die und das Auffrischen der Speicherzellen so, dass das Auffrischen der Speicherzellen keine externen Zugriffe auf die Speicherzellen stört.
  • Jede der DRAM-Bänke in Speicherblöcken 10001127 wird unabhängig gesteuert. Somit werden Lese-, Schreib- und Auffrischvorgänge unabhängig innerhalb jeder Bank gesteuert. Jede der Speicherbänke ist parallel zum Schreibpuffer 310 und zum Lesepuffer 311 geschaltet. Sowohl Schreibpuffer 310 als auch Lesepuffer 311 haben denselben Aufbau wie die Speicherbänke in den Speicherblöcken 10001127.
  • Das Speichersystem 300 wird mit einem Mehrbank-Auffrischschema aufgefrischt. In der bevorzugten Ausgestaltung wird der zentrale Auffrisch-Timer 302 zum Erzeugen von periodischen Auffrischanforderungen zu DRAM-Speicherblöcken 10001127 verwendet. Der Auffrisch-Timer 302 erzeugt die Auffrischanforderung, indem er sein Ausgangssignal RFREQ alle 1 ms für einen Taktzyklus in den H-Zustand bringt. Somit wird das Auffrischanforderungssignal RFREQ in einem 100 MHz System einmal alle 100.000 Taktzyklen im H-Zustand aufgedrückt. Das RFREQ-Signal wird zum Eingangsanschluss REQI des Speicherblocks 1000 als Eingangsauffrischanforderungssignal REQI [0] geleitet. Innerhalb des Speicherblocks 1000 wird das Signal REQI [0] zum Eingangsanschluss eines D-Registers geleitet (siehe D-Register 2121 von 11). Das Signal REQI [0] wird im D-Register an der ansteigenden Flanke des Clk-Signals gerastet. Der Ausgangsanschluss des D-Registers ist so geschaltet, dass er ein Ausgangsauffrischanforderungssignal REQO [0] an den Ausgangsanschluss REQO anlegt. Das Signal REQO [0] wird daher einen Taktzyklus, nachdem das REQI [0] Signal im H-Zustand aktiviert wurde, in den H-Zustand gebracht. Jeder Ausgangsanschluss REQO ist mit einem Eingangsanschluss REQI eines benachbarten Speicherblocks verbunden. Die Auffrischanforderung zu den Speicherblöcken wird somit durch eine Verkettung (Daisy-Chain) erzeugt, die von den D-Registern gebildet wird, indem sie die Anschlüsse REQI und REQO der Speicherblöcke 1000–1127 verbindet.
  • In der Ausgestaltung, in der Speicherpuffer 310 und Lesepuffer 311 mit SRAM-Zellen aufgebaut sind, wird das Auffrischanforderungssignal RFREQ vom Speicherblock 1000 zu 1127 propagiert (und nicht an Schreibpuffer 310 und Lesepuffer 311 angelegt). Wenn jedoch Schreibpuffer 310 und Lesepuffer 311 mit DRAM-Zellen aufgebaut sind, wird das Auffrischanforderungssignal RFREQ vom Speicherblock 1127 zu Schreibpuffer 310 und Lesepuffer 311 propagiert. Diese Verbindungen sind in 5 mit gestrichelten Linien dargestellt.
  • Außerdem, wenn Schreibpuffer 310 und Lesepuffer 311 mit DRAM-Zellen aufgebaut sind, dann erzeugen Schreibpuffer 310 und Lesepuffer 311 jeweils Auffrischunganhängig-Signale REFP [w] und REFP [r], um anzuzeigen, ob eine Auffrischung in diesen Puffern 310311 anhängig ist. Diese Signale sind in 5 mit gestrichelten Linien angedeutet.
  • Eine 5-Bit-Auffrischadresse RFA [4:0] wird vom Auffrischadresszähler 301 erzeugt. Die Auffrischadresse RFA [4:0] wird jedes Mal inkrementiert, wenn das RFREQ-Signal im H-Zustand aufgedrückt wird. Die 5-Bit-Auffrischadresse RFA [4:0] wird zu allen DRAM-Speicherblöcken 10001127 rundgesendet. Die Auffrischadresse wird auch zum Schreibpuffer 310 und zum Lesepuffer 311 rundgesendet, wenn diese Puffer 310311 mit DRAM-Zellen aufgebaut sind. Die Auffrischadresse RFA [4:0] bezeichnet die Reihenstelle in aufzufrischenden Speicherblöcken 10001127 vor der nächsten Aktivierung des RFREQ-Signals. Die richtige Auffrischperiode ist in dieser Ausgestaltung als die Zeit definiert, die zwischen zwei Aktivierungen des RFREQ-Signals verstrichen ist (d. h. die Periode des Auffrisch-Timers 302). Die richtige Auffrischperiode wird gleich der oder kleiner als die Auffrischzeit einer Speicherzelle dividiert durch die Anzahl von Reihen in einer Speicherbank gesetzt.
  • In einer anderen Ausgestaltung wird das Auffrischanforderungssignal RFREQ zu allen Speicherblöcken 10001127 rundgesendet. Wenn das RFREQ-Signal aktiviert wird, führt jede das aktivierte RFREQ-Signal empfangende Speicherbank einen Auffrischzyklus aus, wenn kein Zugriffskonflikt vorliegt. Ansonsten wird der Auffrischvorgang verzögert, bis kein Zugriffskonflikt mehr vorliegt.
  • Eine Speicherbank wird nicht richtig aufgefrischt, wenn die Bank den Auffrischvorgang während der richtigen Auffrischperiode nicht ausführen kann. Im vorliegenden Beispiel ist die richtige Auffrischperiode gleich der Zeit zwischen zwei Aktivierungen des RFREQ-Signals oder 1 ms. Dies geschieht, wenn auf die Speicherbank kontinuierlich für eine Periode zugegriffen wird, die länger ist als die richtige Auffrischperiode. Ein Auffrischvorgang einer Speicherbank kann innerhalb eines Zyklus des Clk-Signals abgeschlossen werden. Wenn eine Speicherbank wenigstens einen Taktzyklus während der richtigen Auffrischperiode hat, während der nicht auf die Speicherbank zugegriffen wird, dann kann die Speicherbank der Auffrischobligation nachkommen, indem sie diesen Ruhezyklus zum Durchführen eines Auffrischvorgangs nutzt. Ein Ruhezyklus in einer Speicherbank entsteht dann, wenn keine externen Zugriffe vorliegen oder wenn ein externer Zugriff auf eine andere Bank trifft. Wenn also der externe Zugriff die Bank wenigstens einmal innerhalb einer richtigen Auffrischperiode wechselt, dann können alle Speicherbänke ordnungsgemäß aufgefrischt werden. Wie nachfolgend ausführlicher beschrieben wird, gewährleisten der Schreibpuffer 310 und der Lesepuffer 311, dass wenigstens ein Ruhespeicherzyklus während der richtigen Auffrischperiode für eine Bank vorhanden ist, auf die kontinuierlich während der richtigen Auffrischperiode zugegriffen wird.
  • In der vorliegenden Ausgestaltung liefert das Speichersystem 300 128-Bit-Eingangsdatenwerte und 128-Bit-Ausgangsdatenwerte. Der Lesepuffer 311 beinhaltet eine Speicherbank mit 32 Reihen und 512 Spalten von Speicherzellen. Der Lesepuffer 311 kann somit 128 128-Bit-Wörter oder 128 Entries speichern. Für jeden Lesezugriff, der den Lesepuffer 311 verpasst (Miss), wird ein 128-Bit-Datenwort aus der adressierten Speicherbank (oder dem Schreibpuffer 310) abgerufen und als Datenausgangssignal Do [127:0] auf den Datenausgangsbus gesetzt. Gleichzeitig werden auch die abgerufenen Daten auf den Lesepuffer 311 geschrieben. Wenn der Lesezugriff auf den Lesepuffer 311 trifft, werden die angeforderten Daten aus dem Lesepuffer 311 gelesen, und es wird nicht auf die Speicherbänke in Speicherblöcken 10001127 zugegriffen. Wenn ein Schreibzugriff auf einen Lesepuffer 311 trifft, werden die Schreibdaten sowohl auf den Lesepuffer 311 als auch entweder auf die adressierte Speicherbank oder den Schreibpuffer 310 geschrieben, wie nachfolgend ausführlicher beschrieben wird.
  • Ein einzelner Lesepuffer-Cache-Tag mit zwei Feldern dient zum Verfolgen der im Lesepuffer 311 gespeicherten Daten. Eines der beiden Felder ist ein 7-Bit-Bankadressfeld, das die Bank identifiziert, von der die gerade im Lesepuffer 311 gespeicherten Daten stammen. Das andere Feld ist ein 128-Bit-Gültig-Feld, das ein 1-Bit-Gültig-Bit für jeden der 128 Entries des Lesepuffers 311 speichert. Ein gesetztes (d. h. logisch "1") Gültig-Bit im Gültig-Feld bedeutet, dass die im entsprechenden Entry gespeicherten Daten gültig sind. Ein zurückgesetztes (d. h. logisch "0") Gültig-Bit bedeutet, dass die im entsprechenden Entry gespeicheren Daten ungültig sind. Somit funktioniert der Lesepuffer 311 wie ein Schatten der Speicherbank, auf die zugegriffen wird. Wenn ein Lese- oder Schreibzugriff auf eine Bank mit einer anderen Adresse als der erfolgt, die im Bankadressfeld des Lesepuffer-Cache-Tags enthalten ist, dann wird das Bankadressfeld des Lesepuffer-Cache-Tag so aktualisiert, dass es diese unterschiedliche Bankadresse reflektiert. Darüber hinaus werden alle Gültig-Bits im Gültig-Feld zurückgesetzt, mit Ausnahme des Gültig-Bits in Verbindung mit dem neuen Entry. Das Gültig-Bit in Verbindung mit dem neuen Entry wird gesetzt, und die Lesedaten werden auf den entsprechenden Entry des Lesepuffers 311 geschrieben.
  • Im ungünstigsten Fall wird eine einzelne Speicherbank kontinuierlich Lesezugriffen unterzogen. Wenn einer dieser Lesezugriffe während einer ordnungsgemäßen Auffrischperiode auf einen Lesepuffer 311 trifft, dann entsteht ein Ruhezyklus in der Speicherbank, die der Lesepuffer 311 schattiert. Diese Speicherbank kann während dieses Ruhezyklus aufgefrischt werden. Wenn die kontinuierlichen Lesezugriffe den Lesepuffer 311 verpassen, dann sammeln sich Daten im Lesepuffer 311 an. Im ungünstigsten Fall durchlaufen die Lesezugriffe den gesamten Adressraum der einzelnen Speicherbank, so dass der Lesepuffer den gesamten Inhalt der einzelnen Speicherbank vollständig schattiert (d. h. Lesepuffer 311 speichert eine identische Kopie der Daten in der einzelnen Speicherbank). Unter diesen Umständen wird der Lesepuffer 311 in 128 Taktzyklen gefüllt. Zu diesem Zeitpunkt wird ein weiterer Lesezugriff auf dieselbe Datenbank unbedingt zu einem Lesepuffer-Hit führen. Da die ordnungsgemäße Auffrischperiode von 1 ms länger ist als die Lesepufferfüllperiode von 128 Taktzyklen, erzeugt der Lesepuffer-Hit einen Ruhezyklus für die einzelne Speicherbank. Während dieses Ruhezyklus wird die einzelne Speicherbank aufgefrischt.
  • Um Kohärenz der im Lesepuffer 311 gespeicherten Daten zu gewährleisten, werden Daten für einen Schreibzugriff auf den Lesepuffer 311 geschrieben, wenn der Schreibzugriff auf den Lesepuffer 311 trifft. Diese Daten werden auch auf die adressierte Speicherbank oder den adressierten Schreibpuffer 310 geschrieben, wie nachfolgend ausführlicher beschrieben wird. Ein Schreibzugriff trifft auf den Lesepuffer 311, wenn die Bankadresse des Schreibzugriffs mit dem Bankadressfeld des Lesepuffer-Cache-Tags übereinstimmt, und das Gültig-Bit des Lesepuffers 311 für den Entry gesetzt ist, der mit der Adresse des Schreibzugriffs übereinstimmt.
  • Um den Betrieb des Lesepuffers 311 zusammenzufassen, Daten werden auf den Lesepuffer 311 geschrieben, wenn ein Lese-Miss oder ein Schreib-Hit auftritt. Daten werden aus dem Lesepuffer 311 gelesen, wenn ein Lese-Hit auftritt. In der obigen Beschreibung ist der Lesepuffer 311 mit SRAM-Zellen aufgebaut, so dass keine Auffrischhandhabung im Lesepuffer 311 notwendig ist. Wenn der Lesepuffer 311 mit DRAM-Zellen aufgebaut ist, dann wird eine Auffrischhandhabung im Lesepuffer 311 notwendig. Diese Auffrischhandhabung wird nachfolgend ausführlicher beschrieben.
  • Der Schreibpuffer 310 ist genauso konfiguriert wie der Lesepuffer 311. Somit beinhaltet der Schreibpuffer 310 eine Speicherbank mit 32 Reihen und 512 Spalten von Speicherzellen. Der Schreibpuffer 310 kann also 128 128-Bit-Wörter oder 128 Entries speichern. Der Schreibpuffer 310 beinhaltet auch einen einzelnen Schreibpuffer-Cache-Tag mit zwei Feldern, um die im Schreibpuffer 310 gespeicherten Daten zu verfolgen. Eines der beiden Felder ist ein 7-Bit-Bankadressfeld, das die Bank identifiziert, auf die die Daten, die gerade im Schreibpuffer 310 gespeichert sind, geschrieben werden sollen. Das andere Feld ist ein 128-Bit-Gültig-Feld, das ein 1-Bit-Gültig-Bit für jeden der 128 Entries des Schreibpuffers 310 speichert. Ein gesetztes (d. h. logisch "1") Gültig-Bit im Gültig-Feld bedeutet, dass die im entsprechenden Entry gespeicherten Daten gültig sind. Ein zurückgesetztes (d. h. logisch "0") Gültig-Bit deutet an, dass die im entsprechenden Entry gespeicherten Daten ungültig sind.
  • Während eines Schreibzugriffs werden die Daten in Verbindung mit dem Schreibzugriff auf den Schreibpuffer 310 geschrieben, solange der Schreibpuffer 310 nicht mit anderen Aufgaben belegt ist, wie z. B. Zurückziehen eines zuvor gespeicherten Entry (oder das Auffrischen seines Inhalts, wenn der Schreibpuffer 310 mit DRAM aufgebaut ist). Wenn die Schreibzugriffsdaten auf den Schreibpuffer 310 geschrieben werden, dann wird zugelassen, dass die von dem Schreibzugriff adressierte Speicherbank einen Auffrischvorgang durchführt. Wenn eine einzelne Speicherbank kontinuierlich beschrieben wird, dann wird der Schreibpufer 310 schließlich ganz mit gültigen Daten gefüllt sein, die für die einzelne Speicherbank gedacht sind. In diesem Fall werden alle Gültig-Bits des Schreibpuffer-Cache-Tags gesetzt.
  • Wenn ein Schreibzugriff eine Speicherbank mit einer Adresse adressiert, die sich von der im Bankadressfeld des Schreibpuffer-Cache-Tags gespeicherten Adresse unterscheidet, dann beginnt der Datenrückzug. Während des Datenrückzugs werden Daten im Schreibpuffer 310 auf die Speicherbank zurückgezogen, die vom Bankadressfeld des Schreibpuffer-Cache-Tags identifiziert wird. Die Daten im Schreibpuffer 310 werden durch den Nur-Schreib-Port 312 zurückgezogen. Während dieser Zeit ist der Schreibpuffer 310 mit dem Zurückziehen von Daten beschäftigt und kann daher nicht zum Handhaben von Schreibzugriffen verwendet werden. Der aktuelle Schreibzugriff wird daher von der Speicherbank gehandhabt, die durch die aktuelle Schreibzugriffsadresse bezeichnet ist. Die Daten für den aktuellen Schreibzugriff werden durch den Lese-Schreib-Port 313 zur adressierten Speicherbank gesendet. Wenn das Auffrischanforderungssignal während dieser Zeit aktiviert wird, dann werden die Auffrischvorgänge in der den externen Zugriff handhabenden Speicherbank und der den Rückzug der Daten handhabenden Speicherbank verzögert. Die Auffrischvorgänge in den anderen Speicherbänken werden ohne Verzögerung verarbeitet. Der Auffrischvorgang in der den externen Zugriff handhabenden Speicherbank kann während eines beliebigen Taktzyklus durchgeführt werden, wenn auf diese Bank kein externer Zugriff mehr erfolgt. Im ungünstigsten Fall wird, wenn kontinuierlich auf eine einzelne Speicherbank zugegriffen wird, der Auffrischvorgang in dieser einzelnen Speicherbank so lange verzögert, bis der Schreibpuffer 310 den Datenrückzugsprozess beendet hat. Wenn der Datenrückzugsprozess beendet ist, dann handhabt der Schreibpuffer 310 die nachfolgenden Schreibzugriffe auf die einzelne Speicherbank. Der Auffrischvorgang in der für den Datenrückzug angepeilten Speicherbank wird für eine beliebige Taktperiode verzögert, wenn ein Datenrückzug stattfindet. Während des Rückzugsprozesses werden nur gültige Entries zurückgezogen. Das Gültig-Bit jedes zurückgezogenen Entry wird nach dem Rückzug der Daten in diesem Entry zurückgesetzt. Im ungünstigsten Fall braucht der Rückzugsprozess 128 Taktzyklen. Da die richtige Auffrischperiode länger ist als die Dauer des ungünstigsten Datenrückzugsprozesses (128 Taktzyklen), kann die anhängige Auffrischung in beiden Speicherbänken nach Beendigung des Datenrückzugsprozesses durchgeführt werden, ohne dass die richtige Auffrischperiode überschritten wird.
  • Während des Datenrückzugsprozesses wird, wenn ein externer Zugriff auf die für den Datenrückzug angepeilte Speicherbank trifft, der Rückzugsprozess gestoppt, und der Schreibzugriff wird vom Schreibpuffer 310 gehandhabt. Ein externer Lesezugriff, der auf den Schreibpuffer 310 trifft und den Lesepuffer 311 verpasst, bewirkt, dass Daten vom Schreibpuffer 310 auf den Datenausgangsbus des Speichergerätes 300 gelesen werden, und bewirkt gleichzeitig, dass Daten auf den Lesepuffer 311 geschrieben werden, wobei der Lesepuffer-Cache-Tag aktualisiert wird. Datenkohärenz zwischen Schreibpuffer 310, Lesepuffer 311 und Speicherblöcken 10001127 wird durch Aktualisieren des Lesepuffers 311 für einen beliebigen Schreibzugriff gewährleistet, der auf den Lesepuffer 311 trifft.
  • Aufbau und Betrieb der verschiedenen Elemente des Speichersystems 300 werden nachfolgend ausführlicher beschrieben.
  • Speichersteuereinheit 308
  • 6 ist ein Blockdiagramm der Speichersteuereinheit 308 gemäß einer Ausgestaltung der vorliegenden Erfindung. Die Speichersteuereinheit 308 beinhaltet den Lese-Schreib-Datenpuffercontroller 601, den Lese-Schreib-Cache-Tag-Controller 602 und den Speicher-Lese-Schreib-Controller 603. Im Allgemeinen ist der Lese-Schreib-Datenpuffer-Controller 601 für das Aktivieren von Lese- und Schreibzugriffen auf Schreibpuffer 310 und Lesepuffer 311 verantwortlich. Der Lese-Schreib-Cache-Tag-Controller 602 ist für die Steuerung der Cache-Tag-Entries in Verbindung mit Schreibpuffer 310 und Lesepuffer 311 verantwortlich. Der Speicher-Lese-Schreib- Controller 603 ist für die Aktivierung von Lese- und Schreibzugriffen auf Speicherblöcke 10001127 verantwortlich. Der Speicher-Lese-Schreib-Controller 603 befiehlt auch die Übertragung von Daten zwischen Speicherports 312313 und Speicherblöcken 10001127.
  • Die Speichersteuereinheit 308 arbeitet als Reaktion auf die folgenden externen Signale: das globale Reset-Signal RST, das externe Schreibfreigabesignal Wen, das externe Lesefreigabesignal Ren, das externe Bankadresssignal EBA [6:0] und das externe Reihe-Spalte-Adresssignal ERC [6:0]. Wenn Schreibpuffer 310 und Lesepuffer 311 mit DRAM-Zellen aufgebaut sind, dann empfängt die Speichersteuereinheit 308 auch das Lesepufferauffrischung-anhängig-Signal REFP [r] und das Schreibpufferauffrischung-anhängig-Signal REFP [w] (wie in 6 durch gestrichelte Linien angedeutet).
  • 6 illustriert ferner die verschiedenen Steuersignale, die vom Lese-Schreib-Datenpuffer-Controller 601, vom Lese-Schreib-Cache-Tag-Controller 602 und vom Speicher-Lese-Schreib-Controller 603 erzeugt werden. Diese Steuersignale werden nachfolgend ausführlicher beschrieben.
  • Lese/Schreib-Cache-Tag-Controller 602
  • 7 ist ein Schaltschema des Lese-Schreib-Tag-Controllers 602 gemäß einer Ausgestaltung der vorliegenden Erfindung. Der Lese-Schreib-Cache-Tag-Controller 602 beinhaltet AND-Gates 701705, OR-Gates 711713, D-Register 721722, Multiplexer 723, Lesepuffer-Cache-Tag-Speicher 731, Schreibpuffer-Cache-Tag-Speicher 732, Komparatoren 741742 sowie 128-zu-1 Multiplexer 751752. Der Lesepuffer-Cache-Tag-Speicher 731 beinhaltet einen 128-Bit-Lesen-gültig-Speicher 761 und einen 7-Bit-Lesebankadressspeicher 762. Ebenso hat der Schreibpuffer-Cache-Tag-Speicher 732 einen 128-Bit-Schreiben-gültig-Speicher 771 und einen 7-Bit-Schreibbankadressspeicher 772.
  • Der Lesen-gültig-Speicher 761 speichert 128 Lesen-gültig-Bits, die den 128 Entries des Lesepuffers 311 entsprechen. Der Lesebankadressspeicher 762 speichert die Bankadresse in Verbindung mit dem/den gültigen Entry oder Entries von Lesepuffer 311. Ebenso speichert der Schreiben-gültig-Speicher 771 128 Schreiben-gültig-Bits, die den 128 Entries des Schreibpuffers 310 entsprechen. Der Schreibbankadressspeicher 772 speichert die Bankadresse in Verbindung mit dem/den Gültig-Entry oder -Entries von Schreibpuffer 310.
  • Die externen Lese- und Schreibfreigabesignale Ren und Wen werden von D-Registern 721 und 722 an der ansteigenden Flanke des Clk-Signals gerastet. Als Reaktion darauf erzeugen die D-Register 721 und 722 jeweils das interne Lesefreigabesignal REN und das interne Schreibfreigabesignal WEN.
  • Im Allgemeinen erzeugt der Lese-Schreib-Cache-Tag-Controller 602 ein Schreibpuffer-Hit-Signal (WBHit) und ein Lesepuffer-Hit-Signal (RBHit) zum Steuern der Vorgänge der Lese- und Schreibpuffer 310311 sowie der Speicherbänke 10001127.
  • Das RBHit-Signal wird wie folgt erzeugt. Der Komparator 741 vergleicht die externe Bankadresse EBA [6:0] mit der im Lesebankadressspeicher 762 gespeicherten Lese-Cache-Bankadresse. Wenn eine Übereinstimmung vorliegt, sendet Komparator 741 ein logisch hohes RBBHit-Signal zum AND-Gate 704.
  • Der Inhalt des Lesen-gültig-Speichers 761 wird als 128-Bit-Signal RBV [127:0] zum 128-zu-1 Multiplexer 751 gesendet. Die externe Reihen-Spalten-Adresse ERC [6:0] wird zum Steuermultiplexer 751 gesendet. Als Reaktion darauf leitet der Multiplexer 751 das LeseN-gültig-Bit in Verbindung mit dem durch die externe Adresse bezeichneten Entry weiter. Das gewählte Gültig-Bit wird durch den Multiplexer 751 als Lesepuffer-gültig-Signal (RBValid) geleitet. Ein RBValid-Signal mit einem logisch hohen Wert bedeutet, dass ein entsprechendes, im Lesepuffer 311 gespeichertes Wort gültig ist. Die Signale RBBHit und RBValid werden vom AND-Gate 704 logisch UND-verknüpft, wodurch das Lesepuffer-Hit-Signal RBHit erzeugt wird. Ein logisch hohes RBHit-Signal zeigt das Vorliegen eines Lesepuffer-Hits an. Umgekehrt zeigt ein logisch tiefes RBHit-Signal einen Lesepuffer-Miss an.
  • Die externe Reihen-Spalten-Adresse ERC [6:0] wird auch zu einem Decoder (nicht dargestellt) im Lesepuffer-Cache-Tag-Speicher 731 gesendet. Als Reaktion darauf wählt der Decoder ein entsprechendes der 128 Bits im Lesen-gültig-Speicher 761 zum Setzen oder Zurücksetzen während eines Lesepuffer-Update. Das Lesepuffer-Update wird durch ein logisch hohes Lesepuffer-Update-Signal (RBVupdate) freigegeben. Das RBVupdate-Signal wird im H-Zustand aufgedrückt, wenn ein Lesepuffer-Schreibfreigabesignal (RBwr) hoch aufgedrückt wird. Diese Logikfunktion wird vom OR-Gate 712 ausgeführt. Die Erzeugung des Lesepuffer-Schreibfreigabesignals RBwr wird nachfolgend ausführlicher in Verbindung mit der Lese-Schreib-Datenpuffersteuerung 601 beschrieben.
  • Wenn der Lesepuffer 311 mit DRAM-Zellen aufgebaut ist, wird auch das RBVupdate-Signal hoch aufgedrückt, wenn das WEN-Signal, das RBHit-Signal und das Lesepufferauffrischung-anhängig-Signal REFP [r] alle hoch aufgedrückt werden. Diese Logikfunktion wird vom optionalen AND-Gate 702 und OR-Gate 712 ausgeführt. Das AND-Gate 702 ist in gestrichelten Linien dargestellt, um anzuzeigen, dass dieses Gate nur dann verwendet wird, wenn der Lesepuffer 311 mit DRAM-Zellen aufgebaut ist.
  • Alle Gültig-Bits im Lesen-gültig-Speicher 761 werden als Reaktion auf das logisch hohe Lesepuffer-Reset-Signal (RBVrst) auf logisch tiefe Werte zurückgesetzt. Das RBVrst-Signal wird hoch aufgedrückt, wenn das externe Reset-Signal (Rst) hoch aufgedrückt wird oder wenn ein Lesezugriff den Lesepuffer 311 verpasst (d. h. das RBBHit-Signal ist tief und das RBwr-Signal ist hoch). Diese Funktionen werden vom AND-Gate 701 und dem OR-Gate 711 ausgeführt. Der Lesebankadressspeicher 762 wird mit der externen Bankadresse EBA [6:0] aktualisiert, wenn das RBwr-Signal hoch aufgedrückt wird.
  • Das WBHit-Signal wird ähnlich wie das RBHit-Signal erzugt. Somit vergleicht der Komparator 742 die externe Bankadresse EBA [6:0] mit der im Schreibbankadressspeicher 772 gespeicherten Schreib-Cache-Bankadresse. Wenn eine Übereinstimmung vorliegt, dann sendet der Komparator 742 ein logisch hohes WBBHit-Signal zum AND-Gate 705.
  • Der Inhalt des Schreiben-gültig-Speichers 771 wird als 128-Bit-Signal WBV [127:0) zum 128-zu-1 Multiplexer 752 gesendet. Die externe Reihen-Spalten-Adresse ERC [6:0] wird zum Steuermultiplexer 752 gesendet. Als Reaktion darauf leitet der Multiplexer 752 das Schreiben-gültig-Bit in Verbindung mit dem von der externen Adresse bezeichneten Entry weiter. Das gewählte Gültig-Bit wird durch den Multiplexer 752 als Schreibpuffer-gültig-Signal (WBValid) geleitet. Dass ein WBValid-Signal einen logisch hohen Wert hat, bedeutet, dass ein im Schreibpuffer 310 gespeichertes entsprechendes Wort gültig ist. Die Signale WBBHit und WBValid werden vom AND-Gate 705 logisch UND-verknüpft, wodurch das Schreibpuffer-Hit-Signal WBHit erzeugt wird. Ein logisch hohes WBHit-Signal bedeutet das Auftreten eines Schreibpuffer-Hits. Umgekehrt bedeutet ein logisch tiefes WBHit-Signal einen Schreibpuffer-Miss.
  • Man beachte, dass der Inhalt des Schreibbankadressspeichers 772 als Schreibpufferbankadresse WBBA [6:0] bereitgestellt wird und der Inhalt des Schreiben-gültig-Speichers 771 als Schreiben-gültig-Bits WBV [127:0] bereitgestellt wird.
  • Der Multiplexer 723 ist so geschaltet, dass er das externe Reihen-Spalten-Adresssignal ERC [6:0] und eine Schreibpufferrückzug-Entry-Adresse WBCA [6:0] empfängt. Die Schreibpufferrückzug-Entry-Adresse WBCA [6:0] wird nachfolgend ausführlicher mit Bezug auf den Lese-Schreib-Datenpuffer-Controller 601 beschrieben. Der Multiplexer 723 wird vom Schreibpufferrückzugsfreigabesignal WBret gesteuert. Wenn das WBret-Signal einen logisch hohen Wert hat (was bedeutet, dass der Inhalt des Schreibpuffers 310 zurückgezogen wird), dann wählt der Multiplexer 723 die Schreibpufferrückzug-Entry-Adresse WBCA [6:0]. Wenn das WBret-Signal einen logisch tiefen Wert hat, dann wählt der Multiplexer 723 die externe Reihen-Spalten-Adresse ERC [6:0]. Der Ausgangsanschluss des Multiplexers 723 ist mit einem Decoder (nicht dargestellt) im Schreibpuffer-Cache-Tag-Speicher 732 verbunden. Als Reaktion darauf wählt dieser Decoder ein entsprechendes der im Schreiben-gültig-Speicher 771 gespeicherten Bits WBV [127:0] zum Setzen oder Zurücksetzen während eines Schreibpuffer-Update.
  • Ein Schreibpuffer-Update wird durch ein logisch hohes Schreibpuffer-Update-Signal (WBVupdate) freigegeben. Das WBVupdate-Signal wird hoch aufgedrückt, wenn ein Schreibpuffer-Schreibfreigabesignal (WBwr) hoch aufgedrückt wird. Die Erzeugung des WBwr-Signals wird nachfolgend ausführlicher in Verbindung mit dem Lesen-Schreiben-Datenpuffer-Controller 601 beschrieben. Das WBVupdate-Signal wird auch hoch aufgedrückt, wenn ein Schreibpuffer-Lesefreigabesignal (WBrd) hoch aufgedrückt wird und das Schreibpufferrückzugsfreigabesignal WBret hoch aufgedrückt wird (d. h. wenn Daten im Schreibpuffer 310 zurückgezogen werden). Die Erzeugung der Signale WRrd und WBret wird nachfolgend ausführlicher in Verbindung mit dem Lese-Schreib-Datenpuffer-Controller 601 beschrieben. Diese Logikfunktionen werden vom AND-Gate 703 und vom OR-Gate 713 ausgeführt.
  • Alle im Schreiben-gültig-Speicher 771 gespeicherten Schreiben gültig-Bits werden auf logisch tiefe Werte zurückgesetzt, wenn das externe Reset-Signal (Rst) hoch aufgedrückt wird. Der Schreibbankadressspeicher 772 wird mit der externen Bankadresse EBA [6:0] aktualisiert, wenn das WBwr-Signal hoch aufgedrückt wird.
  • Der Lesepuffer-Cache-Tag-Speicher 731 und der Schreibpuffer-Cache-Tag-Speicher 732 sind mit D-Registern aufgebaut. Die Ausgänge dieser Register sind nach der ansteigenden Flanke des Clk-Signals gültig. Dadurch wird gewährleistet, dass die aktualisierten Werte die im selben Taktzyklus ablaufenden Vorgänge nicht beeinflussen.
  • Lese-Schreib-Datenpuffer-Controller 601
  • 8 ist ein Schaltschema des Lese-Schreib-Datenpuffer-Controllers 601 gemäß einer Ausgestaltung der vorliegenden Erfindung. Der Lese-Schreib-Datenpuffer-Controller 601 beinhaltet Wechselrichter 801802, AND-Gates 811819, OR-Gates 821824, 7-Bit-Zähler 831, Multiplexer 832 und R-S-Register 833. Im Allgemeinen aktiviert der Lese-Schreib-Datenpuffer-Controller 601 Lese- und Schreibzugriffe auf Schreib- und Lesepuffer 310311. Der Lese-Schreib-Datenpuffer-Controller 601 empfängt die vom Lese-Schreib- Cache-Tag-Controller 602 erzeugten Signale WBBHit, WBHit, RBHit, WBV [127:0], WEN und REN sowie das externe Reset-Signal RST. Wenn der Schreibpuffer 310 und der Lesepuffer 311 mit DRAM-Zellen aufgebaut sind, dann ist der Lese-Schreib-Datenpuffer-Controller 601 auch so geschaltet, dass er das Schreibpuffer-Auffrischsignal REFP [w] und das Lesepuffer-Auffrischsignal REFP [r] empfängt (wie durch gestrichelte Linien in 8 angedeutet). Mit diesen Eingangssignalen und dem oben erörterten Algorithmus erzeugt der Lese-Schreib-Datenpuffer-Controller 601 das Lesepuffer-Lesefreigabesignal RBrd, das Lesepuffer-Schreibfreigabesignal RBwr, das Schreibpuffer-Lesefreigabesignal WBrd und das Schreibpuffer-Schreibfreigabesignal WBwr.
  • Das Lesepuffer-Lesefreigabesignal RBrd wird hoch aufgedrückt, wenn ein Lesezugriff auf den Lesepuffer 311 trifft (und wenn keine anhängige Auffrischung zum Lesepuffer 311 vorliegt). Das heißt, das RBrd-Signal wird hoch aufgedrückt, wenn beide Signale RBhit und REN hoch sind (und das REFP [r] Signal ggf. tief ist). Diese Funktion wird vom AND-Gate 812 ausgeführt.
  • Das Lesepuffer-Schreibfreigabesignal RBwr wird hoch aufgedrückt, wenn ein Schreibzugriff auf einen Lesepuffer 311 trifft oder wenn ein Lesezugriff den Lesepuffer 311 verpasst. Das heißt, das RBwr-Signal wird hoch aufgedrückt, wenn das RBHit-Signal tief und das REN-Signal hoch ist oder wenn das RBHit-Signal hoch und das WEN-Signal hoch ist. Diese Funktion wird von AND-Gates 813814 und vom OR-Gate 821 ausgeführt. Man beachte, dass, wenn das REFP [r] Signal anliegt, dieses Signal einen logisch tiefen Wert haben muss (d. h. keine anhängige Auffrischung zum Lesepuffer 311), damit das RBwr-Signal aufgedrückt werden kann.
  • Das Schreibpufferrückzugssignal WBret wird hoch aufgedrückt, wenn Daten vom Schreibpuffer 310 zu den Speicherblöcken 10001127 zurückgezogen werden sollen. Somit wird das WBret-Signal hoch aufgedrückt, wenn ein Schreibzugriff zu einer Bank auftritt, die sich von der Bank unterscheidet, die dieser Schreibpuffer 310 schattiert. Dieser Zustand wird dann signalisiert, wenn das WBBHit-Signal tief ist, das WEN-Signal hoch ist und eines der im Schreiben-gültig-Speicher 771 gespeicherten Gültig-Bits WBV [127:0] hoch ist. Diese Logik wird vom OR-Gate 822, dem AND-Gate 818 und dem R-S-Register 833 implementiert.
  • Daten werden vom Schreibpuffer 310 über eine Periode von 128 Zyklen des Clk-Signals zurückgezogen. Während dieser Zeit bleibt das WBret-Signal in einem logisch hohen Zustand. Der 7-Bit-Zähler 831 dient zum Erzeugen der Schreibpufferrückzug-Entry- Adresse WBCA [6:0]. Die Schreibpufferrückzug-Entry-Adresse WBCA [6:0] dient auch zum Steuern des 128-zu-1 Multiplexers 832. Als Reaktion auf die Schreibpuffenückzug-Entry-Adresse WBCA [6:0] leitet der Multiplexer 832 ein Schreiben-gültig-Bit vom Signal WBV [127:0], das dem durch das WBCA [6:0] Signal identifizierten Entry entspricht. Ein logisch hohes Schreiben-gültig-Bit wird durch den Multiplexer 832 als logisch hohes Gültig-Bit-Signal (VB) geleitet. Das VB-Signal und das WBret-Signal werden an Eingangsanschlüsse des AND-Gate 819 angelegt (ggf. zusammen mit dem invertierten REFP [w] Signal). Der Ausgang des AND-Gate 819 wird an das OR-Gate 824 angelegt, um das Schreibpufferlesesignal WBrd zu erzeugen. Wenn beide Signale VB und WBret logisch hohe Werte haben (und ggf. das REFP [w] Signal einen logisch tiefen Pegel hat, was bedeutet, dass keine anhängige Auffrischung im Schreibpuffer 310 vorliegt), dann wird das Schreibpuffer-Lesefreigabesignal WBrd hoch aufgedrückt. Wenn das Schreibpuffer-Lesefreigabesignal WBrd hoch ist, dann werden Daten von dem Entry, der durch die Schreibpufferrückzug-Entry-Adresse WBCA [6:0] bezeichnet werden, aus dem Schreibpuffer 310 gelesen und auf die Speicherbank geschrieben, die vom Schreibpuffer 310 schattiert wird (d. h. die Speicherbank, die von der im Schreibbankadressspeicher 772 gespeicherten Schreibpufferbankadresse WBBA [6:0] identifiziert wird).
  • Wenn das vom Multiplexer 832 kommende Gültig-Bit nicht gesetzt ist, was bedeutet, dass der zugehörige Entry im Schreibpuffer 310 nicht gültig ist, dann hat das VB- Signal einen logisch tiefen Wert. Unter diesen Bedingungen wird das WBrd-Signal in den L-Zustand gebracht und während dieses Zyklus werden keine Daten vom Schreibpuffer 310 zurückgezogen.
  • Der 7-Bit-Zähler 831 inkrementiert jeden Taktzyklus, bis alle Bits der Schreibpufferrückzug-Entry-Adresse WBCA [6:0] zu logischen "1" Werten werden. Zu diesem Zeitpunkt bringt der Zähler 831 das Ausgangssignal FULL in einen logisch hohen Zustand. Das logisch hohe FULL-Signal setzt das R-S-Register 833 (durch das OR-Gate 823) zurück. Infolgedessen wird das WBret-Signal tief angesteuert, wodurch der Datenrückzugsprozess beendet wird.
  • Das R-S-Register 833 wird auch zurückgesetzt, wenn die Signale WBBHit und WEN beide im H-Zustand sind, was einen Schreibpuffer-Hit während eines Schreibzugriffs bedeutet. Darüber hinaus wird das R-S-Register 833 zurückgesetzt, wenn das externe Reset-Signal RST hoch aufgedrückt wird. Diese Funktionen werden vom AND-Gate 817 und vom OR-Gate 823 durchgeführt.
  • Das WBret-Signal wird auch mit dem synchronen Reset-Eingangsanschluss des 7-Bit-Zählers 831 verbunden. Der tiefe Zustand des WBret-Signals bewirkt, dass der Zähler 831 auf der nachfolgenden ansteigenden Flanke des Clk-Signals zurückgesetzt wird. Wenn der Zähler 831 zurückgesetzt ist, werden alle seine Ausgänge tief angesteuert. Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut ist, dann inkrementiert der 7-Bit-Zähler 831 nicht mehr, wenn eine Auffrischung im Schreibpuffer 310 anhängig ist (d. h. wenn das Signal REFP [w] hoch aufgedrückt wird)), so dass der Schreibpuffer 310 aufgefrischt werden kann.
  • Das WBrd-Signal wird auch dann hoch aufgedrückt, wenn ein Lesezugriff auf den Schreibpuffer 310 trifft, aber den Lesepuffer 311 verpasst. Dieser Zustand wird durch ein logisch hohes WBHit-Signal, ein logisch tiefes RBHit-Signal und ein logisch hohes REN-Signal angedeutet. Diese Logikfunktion wird vom AND-Gate 811 und vom OR-Gate 824 implementiert.
  • Wenn Schreibpuffer 310 und Lesepuffer 311 mit DRAM-Zellen aufgebaut sind, dann wird das WBrd-Signal hoch aufgedrückt, wenn das Signal REFP [r] hoch ist, das REN-Signal hoch ist und das WBHit-Signal hoch ist. Das heißt, Daten werden aus dem Schreibpuffer 310 gelesen, wenn ein Lesezugriff auf den Schreibpuffer 310 trifft und eine Auffrischung im Lesepuffer 311 anhängig ist. Diese Logikfunktion wird von den AND-Gates 811 und 816 ausgeführt. Damit die Daten aus dem Schreibpuffer 310 durch den Multiplexer 309 (5) gelesen werden können, wird das Signal REFP [r] an den Steuerausgangsmultiplexer 309 angelegt. Wenn beide Signale WBHit und REFP [r] hoch sind, dann wird der Ausgangsmultiplexer 309 so konfiguriert, dass Bus WBO [127:0] mit Datenausgangsbus Do [127:0] verbunden ist.
  • Der Schreibpuffer 310 handhabt sämtliche Schreibzugriffe, es sei denn, dass der Schreibpuffer 310 mit dem Zurückziehen von Daten belegt ist (d. h. das WBret-Signal ist hoch). Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut ist, dann handhabt der Schreibpuffer 310 keine Schreibzugriffe, wenn eine Auffrischung im Schreibpuffer anhängig ist (d. h. wenn das Signal REFP [w] hoch ist). Daher wird das Schreibpuffer-Schreibfreigabesignal WBwr hoch aktiviert, wenn das WEN-Signal hoch und das WBret-Signal tief ist (und das Signal REFP [w], falls vorhanden, tief ist). Diese Logikfunktion wird vom AND-Gate 815 implementiert.
  • Speicher-Lese-Schreib-Controller 603
  • 9 ist ein Schaltschema des Speicher-Lese-Schreib-Controllers 603 gemäß einer Ausgestaltung der vorliegenden Erfindung. Der Speicher-Lese-Schreib-Controller 603 beinhaltet AND-Gates 901905 und OR-Gates 911912. Der Speicher-Lese-Schreib-Controller 603 ist für das Aktivieren von Lese- und Schreibzugriffen zu den Speicherblöcken 10001127 verantwortlich. Der Speicher-Lese-Schreib-Controller 603 befiehlt auch die Übertragung von Daten zwischen Nur-Schreib-Port 312, Lese-Schreib-Port 313 und Speicherblöcken 10001127. Diese Funktionen werden durch die Erzeugung des Speicher-Lesefreigabesignals Mrd1 und der Speicher-Schreibfreigabesignale Mwr1 und Mwr2 ausgeführt. Wie nachfolgend ausführlicher beschrieben wird, aktiviert das Speicher-Lesefreigabesignal Mrd1 einen Lesevorgang auf den Lese-Schreib-Port 313, das Speicher-Schreibfreigabesignal Mwr1 aktiviert einen Schreibvorgang auf den Lese-Schreib-Port 313, und das Speicher-Schreibfreigabesignal Mwr2 aktiviert einen Schreibvorgang auf den Nur-Schreib-Port 312.
  • Ein Speicherlesevorgang wird dann durchgeführt, wenn ein Lesezugriff sowohl Schreibpuffer 310 als auch Lesepuffer 311 verpasst. Dieser Zustand wird angezeigt, wenn das RBhit-Signal tief, das WBHit-Signal tief und das REN-Signal hoch sind. Das AND-Gate 902 und das OR-Gate 911 sind so konfiguriert, dass ein logisch hohes Speicher-Lesefreigabesignal Mrd1 unter diesen Bedingungen erzeugt wird. Wenn das Mrd1-Signal hoch ist, dann führt die von der Bankadresse BA [n] bezeichnete Speicherbank einen Speicherlesezugriff durch den Lese-Schreib-Port 313 aus.
  • Wenn der Lesepuffer 311 mit DRAM-Zellen aufgebaut ist, dann erfolgt ein Speicherlesevorgang auch dann, wenn ein Lesezugriff auftritt, wenn eine Auffrischung im Lesepuffer 311 anhängig ist und der Lesezugriff den Schreibpuffer 310 verpasst. Dieser Zustand wird angezeigt, wenn das REN-Signal und das REFP [r] Signal hoch sind und das WBHit-Signal tief ist. Das Signal REFP [r] wird zum AND-Gate 901 addiert (wie durch gestrichelte Linien angedeutet ist), um das Mrd1-Signal unter diesen Bedingungen zu erzeugen. Auch hier führt wieder, wenn das Mrd1-Signal hoch aufgedrückt wird, die von der Bankadresse BA [n] bezeichnete Speicherbank einen Speicherlesezugriff durch den Lese-Schreib-Port 313 durch.
  • Ein Speicherschreibvorgang wird durch den Nur-Schreib-Port 312 durchgeführt, wenn Daten vom Schreibpuffer 310 auf Speicherbänke 10001127 zurückgezogen werden. Dieser Zustand wird angedeutet, wenn die Signale WBret und VB beide logisch hohe Werte haben. Das AND-Gate 903 ist so konfiguriert, dass es unter diesen Bedingungen ein logisch hohes Mwr2-Signal erzeugt. Wenn das Signal Mwr2 hoch ist, werden Daten vom Schreibpuffer 310 auf die durch die Schreibpufferbankadresse WBBA [6:0] angezeigte Speicherbank zurückgezogen.
  • Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut ist, dann wird das Mwr2-Signal nicht hoch aufgedrückt, wenn eine Auffrischung im Schreibpuffer 310 anhängig ist (d. h. das Signal REFP [w] hoch ist). In diesem Fall wird das Signal REFP [w] zum AND-Gate 903 hinzugefügt (wie durch gestrichelte Linien angedeutet), um das Mwr2-Signal zu erzeugen.
  • Ein Speicherschreibvorgang wird durch den Lese-Schreib-Port 313 dann ausgeführt, wenn der Schreibpuffer 310 einen externen Schreibzugriff nicht handhaben kann. Dieser Zustand liegt dann vor, wenn ein Schreibzugriff während eines Schreibpufferrückzugs auftritt. Dieser Zustand wird angezeigt, wenn die Signale WBret und WEN beide im logisch hohen Zustand sind. Das AND-Gate 904 und das OR-Gate 912 sind so konfiguriert, dass sie unter diesen Bedingungen ein logisch hohes Mwr1-Signal erzeugen. Wenn das Mwr1-Signal hoch ist, dann werden die Daten auf die durch die Bankadresse BA [n] bezeichnete Speicherbank durch den Lese-Schreib-Port 313 geschrieben.
  • Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut ist, dann wird auch ein Speicherschreibvorgang durch den Lese-Schreib-Port 313 als Reaktion auf einen Schreibzugriff durchgeführt, wenn eine Auffrischung im Schreibpuffer 310 anhängig ist. Dieser Zustand wird mit einem logisch hohen WEN-Signal und einem logisch hohen REFP [w] Signal angezeigt. Um diese Funktion auszuführen, wird ein AND-Gate 905 hinzugefügt (wie durch gestrichelte Linien angedeutet). Das AND-Gate 905 und das OR-Gate 912 sind so konfiguriert, dass sie unter diesen Bedingungen ein logisch hohes Mwr1-Signal erzeugen. Auch hier werden wieder, wenn das Mwr1-Signal hoch ist, Daten durch den Lese-Schreib-Port 313 auf die durch die Bankadresse BA [n] bezeichnete Speicherbank geschrieben.
  • Organisation der Speicherblöcke 1100–1127
  • 10 ist ein Blockdiagramm eines Speicherblocks 1000 gemäß einer Ausgestaltung der vorliegenden Erfindung. In der beschriebenen Ausgestaltung sind die Speicherblöcke 10011127 mit dem Speicherblock 1000 identisch. Der Speicherblock 1000 beinhaltet eine Speicherarray 2000 mit 32 Reihen und 512 Spalten von Speicherzellen. Die Speicherarray 2000 besteht aus gewöhnlichen DRAM-Zellen mit einem Transistor und einem Kondensator. Der Speicherblock 1000 führt einen RAS-Zyklus oder einen Speicherzyklus in einem einzigen Zyklus des Clk-Signals aus. Somit kann Speicherblock 1000 einen Direktzugriff oder eine Reihenauffrischung in einem Taktzyklus verarbeiten. Bei Speichervorgängen kann einer der Speicherblöcke 10001127 mit einem der Ports 312313 kommunizieren, während ein anderer der Speicherblöcke 10001127 mit dem anderen der Ports 312313 kommuniziert.
  • Der Speicherblock 1000 beinhaltet alle konventionellen Schaltungen in Verbindung mit einer DRAM-Array wie z. B. den Wortleitungstreibern 2001 und den Leseverstärkern 2002. Der Speicherblock 1000 beinhaltet auch Reihenadressdecoder 2003, Reihenadressmultiplexer 2004, Spaltenadressdecoder 2005, Spaltenadressmultiplexer 2006, Speicherbank-Controller 2007 und zwei Sätze von Spaltenmultiplexern 2011 und 2012. Der Spaltenmultiplexer 2011 verbindet die Leseverstärker 2002 mit dem Lese-Schreib-Port 313, und der Spaltenmultiplexer 2012 verbindet die Leseverstärker 2002 mit dem Nur-Schreib-Port 312.
  • Die Spaltenmultiplexer 2011 und 2012 werden vom Spaltenadressdecoder 2005 gesteuert. Der Spaltenadressdecoder 2005 decodiert die vom Spaltenadressmultiplexer 2006 empfangene Spaltenadresse. Der Spaltenadressmultiplexer 2006 wählt die Schreibpufferrückzug-Entry-Adresse WBCA [1:0] während eines Schreibpufferrückzugs. Der Spaltenadressmultiplexer 2006 wählt die externe Reihen-Spalten-Adresse ERC [1:0], wenn kein Schreibpufferrückzug vorliegt. Der Spaltenadressdecoder 2005 aktiviert höchstens einen der Spaltenmultiplexer 2011 und 2012 als Reaktion auf die Signale CAS1[ n] und CAS2 [n]. Wie nachfolgend ausführlicher beschrieben wird, werden die Signale CAS1 [n] und CAS2 [n] vom Speicherbank-Controller 2007 erzeugt.
  • Der Reihenadressdecoder 2003 aktiviert die vom Ausgang des Reihenadressmultiplexers 2004 bezeichnete Wortleitung. Der Reihenadressmultiplexer 2004 wird von dem Mwr2-Signal und dem lokalen Auffrischsignal REF [n] gesteuert. Im Vorgabemodus wird, wenn beide Signale REF [n] und Mwr2 tief sind, der Reihenadressmultiplexer 2004 so gesteuert, dass er die externe Reihen-Spalten-Adresse ERC [6:2] zum Reihenadressdecoder 2003 leitet. Wenn der Speicherblock 1000 einen Schreibpufferrückzug handhabt, dann ist das Mwr2-Signal hoch und der Reihenadressmultiplexer 2004 wird so gesteuert, dass er die Schreibpufferrückzug-Entry-Adresse WBCA [6:0] zum Reihenadressdecoder 2003 leitet. Wenn der Speicherblock 1000 einen Auffrischvorgang handhabt, dann ist das Signal REF [n] hoch, und der Reihenadressmultiplexer 2004 wird so gesteuert, dass er die Auffrischadresse RFA [4:0] zum Reihenadressdecoder 2003 leitet.
  • Die Operationen der Speicherzellenarray 2000 (wie z. B. Wortleitungsfreigabe, Leseverstärkerfreigabe, Spaltenschalterfreigabe und Bitleitungsvorladungsfreigabe) werden von den lokalen Signalen RAS# [n], SEN# [n], CAS# [n] und PRC# [n] gesteuert, die vom Speicherbank-Controller 2007 erzeugt werden. Die Funktionen dieser Signale sind in der in Gemeinschaftsbesitz befindlichen mitanhängigen US-Patentanmeldung mit der Seriennummer 09/076,608 beschrieben, die hiermit in ihrer Gesamtheit durch Bezugnahme eingeschlossen ist. Die Aktivierung des Signals RAS# [n] deaktiviert den Bitleitungsausgleich und aktiviert den Reihenadressdecoder, was zu einer Aktivierung einer durch die Reihenadresse gewählten Wortleitung führt. Die Aktivierung des Signals SEN# [n] bewirkt die Aktivierung der Leseverstärker in der Speicherbank. Die Aktivierung des Signals CAS 1[n] bewirkt eine Verbindung der Leseverstärker 2002 mit dem Lese-Schreib-Port 313 durch Spaltenmultiplexer 2011 und Datenbus 2021, der Datensignale RWDL [127:0] und komplementäre Datensignale RWDL# [127:0] auf bidirektionale Weise führt. Der Datenbus 2021 ist auf ähnliche Weise parallel mit den Speicherblöcken 10011127 verbunden.
  • Ebenso bewirkt eine Aktivierung des Signals CAS2 [n] eine Verbindung der Leseverstärker 2002 mit dem Nur-Schreib-Port 312 durch den Spaltenmultiplexer 2012 und den Datenbus 2022, der Datensignale WDL [127:0] und komplementäre Datensignale WDL# [127:0] auf unidirektionale Weise führt. Der Datenbus 2022 ist auf ähnliche Weise parallel zu Speicherblöcken 10011127 geschaltet.
  • Eine Aktivierung des Signals PRC# [n] schaltet die Multiplexer 2011 und 2012 ab, schaltet die aktivierte Wortleitung ein, deaktiviert die Leseverstärker 2002 und aktiviert den Bitleitungsausgleichschaltkomplex (nicht dargestellt).
  • Speicherbank-Controller 2007
  • 11 ist ein Schaltschema des Speicherbank-Controllers 2007 gemäß einer Ausgestaltung der vorliegenden Erfindung. Der Speicherbank-Controller 2007 umfasst Wechselrichter 2101, OR-Gates 21022103, AND-Gates 21112116, NAND-Gate 2117, D-Register 2121, R-S-Register 2122 und NOR-Gates 21312136.
  • Wie oben beschrieben, wird das Eingangsauffrischanforderungssignal REQI [n] im D-Register 2121 als Reaktion auf die ansteigende Flanke des Clk-Signals gerastet. Das D-Register 2121 erzeugt ein Ausgangsauffrischanforderungssignal REQO [n] zum benachbarten Speicherblock in einer verketteten Weise.
  • Auch das Eingangsauffrischanforderungssignal REQI [n] wird zum Set-Anschluss des R-S-Registers 2122 gesendet. Wenn das Eingangsanforderungssignal REQI [n] einen logisch hohen Wert hat, was bedeutet, dass eine Auffrischung im Speicherblock 1000 ausgeführt werden soll, dann rastet eine ansteigende Flanke des Clk-Signals einen logisch hohen Wert im R-S-Register 2122. Dieser logisch hohe Wert wird an den Ausgangsanschluss des R-S-Registers 2122 als lokales Auffrischung-anhängig-Signal REFP [n] angelegt. Das Signal REFP [n] bleibt so lange hoch, bis es durch ein logisch hohes lokales Auffrischsignal REF [n] zurückgesetzt wird, was bedeutet, dass die anhängige Auffrischung durchgeführt wurde.
  • Die lokalen Signale RAS# [n], SEN# [n] und PRC# [n) werden jeweils durch die globalen Zeitsteuersignale RAS#, SEN# und PRC# ausgelöst. Ebenso werden die lokalen Signale CAS 1[n] und CAS2 [n] durch das globale Zeitsteuersignal CAS# ausgelöst. Die globalen Zeitsteuersignale RAS#, CAS#, SEN# und PRC# werden durch den Timing-Sequencer 303 in 5 erzeugt. Der Aufbau des Timing-Sequencers 303 ist ähnlich wie der Aufbau des Timing-Sequencers, der in der US-Patentanmeldung mit der Seriennummer 09/076,608 beschrieben ist, und erzeugt somit globale Zeitsteuersignale mit festen Phasenbeziehungen. Der Speichersequencer 303 wird in jedem Zyklus des Clk-Signals aktiviert. Infolgedessen werden die globalen Timing-Signale RAS#, CAS#, SEN# und PRC# in jedem Taktzyklus erzeugt.
  • Die Aktivierung der Signale RAS# [n], SEN# [n] und PRC# [n] wird auch durch ein lokales Zugriffsfreigabesignal ACC# [n] und ein lokales Auffrischungsfreigabesignal REF [n] gesteuert. Das Signal ACC# [n] wird tief aktiviert, wenn eines der Speicher-Lese-Schreib-Freigabesignale Mrd1, Mwr1 und Mwr2 hoch und das Bankaktivierungssignal BA [n] hoch ist. Diese Logikfunktion wird vom OR-Gate 2102 und vom NAND-Gate 2117 implementiert. Wie oben beschrieben, bedeutet ein logisch hohes Mrd1-Signal, dass ein Speicherlesevorgang am Lese-Schreib-Port 313 durchgeführt werden soll. Ein logisch hohes Mwr1-Signal bedeutet, dass ein Speicherschreibvorgang am Lese-Schreib-Port 313 ausgeführt werden soll. Ebenso bedeutet ein logisch hohes Mwr2-Signal, dass ein Speicherschreibvorgang am Nur-Schreib-Port 312 durchgeführt werden soll. Das Signal BA [n] wird hoch aktiviert, wenn der Speicherblock [n] für einen externen Zugriff designiert oder für einen Datenrückzug angepeilt wird.
  • Das lokale Auffrischungsfreigabesignal REF [n] wird hoch aktiviert, wenn eine anhängige Auffrischung vorliegt (d. h. das Auffrischung-anhängig-Signal REFP [n] ist hoch) und keine anhängige Zugriffsanforderung zum Speicherblock vorliegt (d. h. das Signal ACC# [n] ist hoch). Diese Logikfunktion wird vom AND-Gate 2113 implementiert.
  • Der hohe Zustand des Signals REF [n] setzt den Ausgang des R-S-Flipflop 2122 an der nächsten ansteigenden Flanke des Clk-Signals zurück, wodurch die anhängige Auffrischung nach der Dwchführung des Auffrischvorgangs storniert wird.
  • Das Signal CAS 1[n] wird aktiviert, wenn der Speicherblock 1000 auf den Lese-Schreib-Port 313 zugreift. Spezifischer ausgedrückt, das Signal CAS1 [n] wird aktiviert, wenn das Signal CAS# tief aufgedrückt wird, eines der Signale Mrd1 und Mwr1 und das Bankzugriffssignal BA [n] hoch aktiviert werden. Diese Logikfunktion wird von Wechselrichter 2101, OR-Gate 2103 und AND-Gate 2112 ausgeführt.
  • Das Signal CAS2 [n] wird aktiv, wenn auf den Speicherblock 1000 durch den Nur-Schreib-Port 312 zugegriffen wird. Spezifischer ausgedrückt, das Signal CAS2 [n] wird aktiv, wenn das Signal CAS# tief aufgedrückt, das Mwr2 Signal hoch aktiviert und das Bankzugriffssignal BA [n] hoch aktiviert wird. Diese Logikfunktion wird vom Wechselrichter 2101 und vom AND-Gate 2111 implementiert.
  • Das lokale Signal RAS# [n] wird tief aufgedrückt, wenn das globale Signal RAS# tief aufgedrückt wird, ein Auffrischvorgang anhäng ist (d. h. das Auffrischsignal REFP [n] wird hoch aufgedrückt) und kein Lese- oder Schreibzugriff auf den Speicherblock 1000 vorliegt (d. h. das Signal ACC# [n] wird hoch weggenommen). Diese Logikfunktion wird von den AND-Gates 21132114 implementiert.
  • Das lokale Signal RAS# [n] wird auch tief aufgedrückt, wenn das globale Signal RAS# tief aufgedrückt wird und ein lokaler Zugriff anhängig ist (d. h. das Signal ACC# [n] wird tief aufgedrückt). Diese Logikfunktion wird von den NOR-Gates 21312132 ausgeführt.
  • Das lokale Signal SEN# [n] wird als Reaktion auf das globale Signal SEN#, das Auffrischung-anhängig-Signal REFP [n] und das lokale Zugriffssignal ACC# [n] auf eine ähnliche Weise wie das lokale Signal RAS# tief aufgedrückt. Das lokale Signal SEN# [n] wird vom AND-Gate 2115 und den NOR-Gates 21332134 erzeugt.
  • Das lokale Signal PRC# [n] wird als Reaktion auf das globale Signal PRC#, das lokale Auffrischung-anhängib-Signal REFP [n] und das lokale Zugriffssignal ACC# [n] auf ähnliche Weise wie das lokale Signal RAS# tief aufgedrückt. Das lokale Signal PRC# [n] wird vom AND-Gate 2116 und den NOR-Gates 21352136 erzeugt.
  • Organisation des Schreibpuffers 310
  • 12 ist ein Blockdiagramm, das den Schreibpuffer 310 illustriert. Da der Schreibpuffer 310 ähnlich wie der Speicherblock 1000 (10) ist, erhielten gleiche Elemente in 10 und 12 gleiche Bezugsziffern. Somit beinhaltet der Schreibpuffer 310 die Speicherarray 2000, Wortleitungstreiber 2001, Leseverstärker 2002 und den Reihenadressdecoder 2003. Der Schreibpuffer 310 beinhaltet auch Spaltenmultiplexer 1201, Bustreiberschaltung 1202, Spaltenadressdecoder 1203, Reihenadressmultiplexer 1204 und Schreibpuffer-Controller 1205. Der Schreibpuffer-Controller 1205 beinhaltet das D-Register 1211, R-S-Register 1212, NOR-Gates 12131214, AND-Gates 12151216 und OR-Gates 12171219.
  • Der Spaltenmultiplexer 1201 wird vom Spaltenadressdecoder 1203 gesteuert. Der Spaltenadressdecoder 1203 decodiert die externe Spaltenadresse ERC [1:0], wenn das lokale Spaltenzugriffssignal CAS [w] hoch aufgedrückt wird. Wie nachfolgend ausführlicher beschrieben wird, wird das Signal CAS [w] vom Schreibpuffer-Controller 1205 erzeugt.
  • Der Reihenadressdecoder 1203 aktiviert die durch die externe Reihenadresse ERC [6:2] bezeichnete Wortleitung. Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut wird, dann kann der Reihenadressdecoder so gesteuert werden, dass eine durch die Auffrischadresse RFA [4:0] bezeichnete Wortleitung aktiviert wird. Wenn also der Schreibpuffer 310 aufgefrischt wird, dann wird der Reihenadressmultiplexer 1204 so gesteuert, dass er die Auffrischadresse RFA [4:0] zum Reihenadressdecoder 2003 leitet. Ansonsten wird der Reihenadressmultiplexer 1204 immer so gesteuert, dass er die externe Reihenadresse ERC [6:2] zum Reihenadressdecoder 2003 leitet.
  • Die Operationen des Schreibpuffers 310 (wie Wortleitungsfreigabe, Leseverstärkerfreigabe, Spaltenschalterfreigabe und Bitleitungsvorladungsfreigabe) werden durch die lokalen Signale RAS# [w], SEN# [w], CAS [w] und PRC# [w] gesteuert, die vom Schreibpuffer-Controller 1205 erzeugt werden. Diese lokalen Signale funktionieren auf eine ähnliche Weise wie die lokalen Signale RAS# [n], SEN# [n], CAS# [n] und PRC# [n]. Die Indexierung [w] bedeutet, dass das Signal mit dem Schreibpuffer 310 assoziiert ist.
  • Die Bustreiberschaitung 1202 funktioniert als Reaktion auf das Schreibpuffer-Lesefreigabesignal (WBrd) und das Schreibpuffer-Schreibfreigabesignal (WBwr), um den Spaltenmultiplexer 1201 entweder mit dem Dateneingangsbus Di [127:0] oder dem Schreibpufferausgangsbus WBo [127:0] zu koppeln. Ein Lesezugriff auf den Schreibpuffer 310 wird durchgeführt, wenn das Schreibpuffer-Lesefreigabesignal (WBrd) aufgedrückt wird. Während eines Lesezugriffs auf den Schreibpuffer 310 wird der Spaltenmultiplexer 1201 mit dem Schreibpufferausgangsbus WBo [127:0] gekoppelt. Ein Schreibzugriff auf den Schreibpuffer 310 wird durchgeführt, wenn das Schreibpuffer-Schreibfreigabesignal (WBwr) aufgedrückt wird. Während eines Schreibzugriffs auf den Schreibpuffer 310 wird der Spaltenmultiplexer 1201 mit dem Dateneingangsbus Di [127:0] gekoppelt.
  • Der Schreibpuffer-Controller 1205 arbeitet wie folgt. Das NOR-Gate 1213 drückt ein logisch tiefes Zugriffsfreigabesignal Acc# [w] auf, wenn eines der Signale WBrd und WBwr hoch aufgedrückt wird. Wenn das Signal Acc# [w] tief aufgedrückt wird, dann bewirkt ein logisch tiefes globales Signal CAS#, dass das NOR-Gate 1214 ein logisch hohes Signal CAS [w] aufdrückt. Ebenso sendet, wenn das Signal Acc# [w] tief aufgedrückt wird, das AND-Gate 1216 ein logisch tiefes Signal zu den OR-Gates 12171219, so dass die globalen Signale RAS#, SEN# und PRC# jeweils als lokale Signale RAS# [w], SEN# [w], und PRC# [w] geleitet werden. Die Folge ist, dass eine Zugriffoperation im Schreibpuffer 310 durchgeführt wird.
  • Wenn keines der Signale WBrd oder WBwr hoch aufgedrückt wird, dann wird das Signal Acc# [w] hoch weggenommen, was bedeutet, dass nicht auf den Schreibpuffer 310 zugegriffen wird. Unter diesen Bedingungen werden die Signale RAS# [w], CAS [w], SEN# [w] und PRC# [w] weggenommen, so dass der Zugriff auf den Schreibpuffer 310 gesperrt wird.
  • Wenn der Schreibpuffer 310 mit DRAM-Zellen aufgebaut ist, dann werden ein D-Register 1211 und R-S-Register 1212 vorgesehen, um Schreibpufferauffrischvorgänge zu aktivieren. Diese Elemente sind in gestrichelten Linien dargestellt, da diese Elemente nur dann benötigt werden, wenn ein Schreibpufferauffrischvorgang erforderlich ist. Das D-Register 1211 ist so geschaltet, dass es das Eingangsauffrischanforderungssignal REQI [w] vom Speicherblock 1127 empfängt. Die ansteigende Flanke des Clk-Signals rastet dieses Eingangsauffrischsignal, so dass ein Ausgangsauffrischanforderungssignal REQO [w] erzeugt wird (das an den Lesepuffer 311 angelegt wird).
  • Das Eingangsauffrischanforderungssignal REQI [w] wird auch an den Set-Eingangsanschluss des R-S-Registers 1212 angelegt. Wenn das REQI [w] Signal an der ansteigenden Flanke des Clk-Signals hoch aufgedrückt wird, dann wird das R-S-Register 1212 gesetzt, so dass ein logisch hohes Schreibpufferauffrischung-anhängig-Signal REFP [w] angelegt wird. Das logisch hohe Signal REFP [w] bedeutet, dass eine Auffrischung im Schreibpuffer 310 anhängig ist. Das Signal REFP [w] bleibt so lange hoch, bis es durch ein logisch hohes lokales Auffrischsignal REF [w] zurückgesetzt wird, was bedeutet, dass die anhängige Auffrischung durchgeführt wurde.
  • Wenn das Signal REFP [w] hoch aufgedrückt wird, dann kann ein anhängiger Auffrischvorgang innerhalb des Schreibpuffers 310 durchgeführt werden. Wenn das Signal Acc# [w] hoch weggenommen und das REFP [w] Signal hoch aufgedrückt wird, dann legt das AND-Gate 1216 ein logisch hohes Signal REF [w] an. Als Reaktion darauf sendet das AND-Gate 1216 ein logisch tiefes Signal zu den OR-Gates 12171219, so dass die globalen Signale RAS#, SEN# und PRC# jeweils als lokale Signale RAS# [w], SEN# [w] und PRC# [w] geleitet werden. Das logisch hohe Signal Acc# [w] verhindert, dass das Signal CAS [w] hoch aufgedrückt wird. Infolgedessen erfolgt ein Auffrischvorgang im Schreibpuffer 310. Man beachte, dass das logisch hohe Signal REF [w] das R-S-Register 1212 an der nächsten ansteigenden Flanke des Clk-Signals zurücksetzt.
  • Wenn das Signal Acc# [w] hoch weggenommen wird und keine Auffrischung anhängig ist (d. h. das Signal REFP [w] ist tief), dann sendet das AND-Gate 1216 ein logisch hohes Signal zu den OR-Gates 12171219. Unter diesen Bedingungen werden alle lokalen Signale RAS# [w], SEN# [w] und PRC# [w] hoch weggenommen, und das Signal CAS [w] wird tief weggenommen, so dass ein Zugriff auf den Schreibpuffer 310 verhindert wird.
  • Organisation des Lesepuffers 311
  • 13 ist ein Blockdiagramm, das den Lesepuffer 311 illustriert. Da der Lesepuffer 311 dem Schreibpuffer 310 ähnlich ist (12), erhielten gleiche Elemente in 12 und 13 gleiche Bezugsziffern. Somit beinhaltet der Lesepuffer 311 die Speicherarray 2000, Wortleitungstreiber 2001, Leseverstärker 2002, Reihenadressdecoder 2003 und Spaltenmultiplexer 1201, Bustreiberschaltung 1202, Spaltenadressdecoder 1203, Reihenadressmultiplexer 1204 und Lesepuffer-Controller 1305. Der Lesepuffer-Controller 1305 beinhaltet D-Register 1211, R-S-Register 1212, NOR-Gates 12131214, AND-Gates 12151216 und die OR-Gates 12171219.
  • Der Lesepuffer 311 arbeitet ähnlich wie der Schreibpuffer 310, aber mit Signalen, die für den Lesepuffer 311 spezifisch sind. Somit funktioniert der Bustreiber 1202 des Lesepuffers 311 als Reaktion auf das Lesepuffer-Lesefreigabesignal RBrd und das Lesepuffer-Schreibfreigabesignal RBwr. Ebenso ist der Bustreiber 1202 des Lesepuffers 311 mit dem Lesepuffereingangsbus RBI [127:0] und dem Lesepufferausgangsbus RBO [127:0] gekoppelt. Darüber hinaus ist das D-Register 1211 des Lesepuffers 311 so geschaltet, dass es das Signal REQO [w] als Eingangsauffrischanforderungssignal REQI [r] erhält. Die Indexierung "[r]" identifiziert die verschiedenen Signale als zum Lesepuffer zugehörig.
  • Lesezugriff-Timing
  • 14 ist ein Wellenformdiagramm, das das Timing der Steuersignale während der drei verschiedenen Speicherlesezugriffe illustriert. Der erste Lesezugriff, mit der externen Adresse Aa, illustriert den Fall eines Lesepuffer-Miss und eines Schreibpuffer-Miss, wenn keine Auffrischung anhängig ist. Der zweite Lesezugriff, mit der externen Adresse Ab, illustriert den Fall eines Lesepuffer-Hit. Der dritte Lesezugriff, mit der externen Adresse Ac, illustriert den Fall eines Lesepuffer-Miss und eines Schreibpuffer-Hit.
  • Im ersten Lesezugriff wird das externe Lesefreigabesignal Ren hochaufgedrückt. Der logisch hohe Zustand des Ren-Signals wird erfasst und im D-Register 721 (7) an der ansteigenden Flanke des Taktzyklus T1 gerastet. Die externe Zugriffsadresse Aa [13:0] wird im Adressregister 304 (5) an der ansteigenden Flanke des Taktzyklus T1 gerastet. Die Bankadresse Aa [13:7] (d. h. EBA [6:0]) wird zum Bankadressdecoder 305 (5) sowie zu den Komparatoren 741742 und den Lese- und Schreibpuffer-Tag-Registern 762 und 772 im Lese-Schreib-Tag-Controller 602 (7) geleitet.
  • Der Bankadressdecoder 305 aktiviert das Bankzugriffssignal BA [a], indem er das entsprechende externe Bankauswahlsignal EBS [a] in den H-Zustand bringt, wobei 'a' die Bank ist, die der Adresse Aa entspricht. Innerhalb des Lese-Schreib-Tag-Controllers 602 vergleicht der Komparator 741 die Bankadresse Aa [13:7] mit dem im Lese-Cache-Speicher 762 gespeicherten Lesepuffer-Tag. Da kein Hit vorliegt, erzeugt der Komparator 741 ein logisch tiefes RBBHit-Signal, was zu einem logisch tiefen RBHit-Signal führt. Ebenso vergleicht der Komparator 742 die Bankadresse Aa [13:7] mit dem im Schreib-Cache-Speicher 772 gespeicherten Schreibpuffer-Tag. Da kein Hit vorliegt, erzeugt der Komparator 742 ein logisch tiefes WBBHit-Signal.
  • Das Lesepuffer-Schreibfreigabesignal RBwr wird als Reaktion auf den tiefen Zustand des RBHit-Signals und den hohen Zustand des REN-Signals hoch aufgedrückt (siehe Wechselrichter 801, AND-Gate 813 und OR-Gate 821 in 8). Das Speicher-Lesefreigabesignal Mrd 1 wird auch als Reaktion auf RBHit und REN hoch aufgedrückt (siehe AND-Gates 901902 und OR-Gate 911 in 9).
  • Der Speichersequencer 303 erzeugt die globalen Speicher-Timing-Signale RAS#, SEN#, CAS# und PRC# als Reaktion auf die ansteigende Flanke des Clk-Signals. Im adressierten Speicherblock [a] bewirken die logisch hohen Signale BA [a] und Mrd1 ein tiefes Aufdrücken des lokalen Zugriffsfreigabesignals ACC# [a] (siehe OR-Gate 2102 und NAND-Gate 2117 in 11). Der tiefe Zustand des Signals ACC# [a] bewirkt, dass das lokale Auffrischsignal REF [a] einen logisch tiefen Wert hat (siehe AND-Gate 2113 in 11). Die logisch tiefen Signale ACC# [a] und REF [a] ermöglichen es, dass die Speicherbank-Timing-Steuersignale RAS# [a], SEN# [a], CAS 1[a] und PRC# [a] durch die entsprechenden globalen Signale RAS#, SEN#, CAS# und PRC# aktiviert werden.
  • Durch die Aktivierung des Signals RAS# [a] werden der Reihenadressdecoder 2003 (10) und nachfolgend die Wortleitung aktiviert, die durch die Reihenadresse Aa [6:2] bezeichnet wird (d. h. ERC [6:2]), so dass in der bezeichneten Reihe der Speicherarray gespeicherte Daten auf die Bitleitungen geladen werden. Durch eine Aktivierung des Signals SEN# [a] werden die Daten in der Bitleitung in den Leseverstärkern 2002 gerastet. Die Aktivierung des Signals CAS 1[a] aktiviert den Spaltenadressdecoder 2005, dessen Ausgang das durch die Spaltenadresse in Aa [1:0] (d. h. ERC [1:0]) zur Ausgabe zum Lese-Schreib-Port 313 bezeichnete 128-Bit-Wort wählt. Die Daten Da werden dann vom Lese-Schreib-Port 313 zum Lesepuffer 310 und durch den Ausgangsmultiplexer 309 zum Datenausgangsbus Do [127:0] geleitet.
  • Da der erste Lesezugriff sowohl den Schreibpuffer 310 als auch den Lesepuffer 311 verpasst, gehen sowohl das WBHit-Signal als auch das RBHit-Signal in den L-Zustand. Als Reaktion darauf leitet der Ausgangsmultiplexer 314 die Daten auf dem Lese-Schreib-Port-Ausgangsbus RWPO [127:0] zum Lesepuffer 311. Im Lesepuffer 311 bewirkt der hohe Zustand des Lesepuffer-Schreibfreigabesignals RBwr, dass die Daten am Ende des Taktzyklus T1 auf die durch die Adresse Aa [6:0] (d. h. ERC [6:0] ) bezeichnete Stelle geschrieben werden. Im Lese-Schreib-Puffer-Tag-Controller 602 (7) bewirkt der hohe Zustand des RBwr-Signals, dass die Bankadresse Aa [6:0] (d. h. EBA [6:0]) auf den Lesepuffer-Tag-Speicher 762 geschrieben werden. Der hohe Zustand des RBwr-Signals und der tiefe Zustand des RBBHit-Signals bewirken, dass alle Gültig-Bits, mit Ausnahme des durch die Adresse in Aa [6:0] bezeichneten, zurückgesetzt werden. Das Gültig-Bit in Verbindung mit der Adresse Aa [6:0] wird auf einen Wert von logisch '1' gesetzt.
  • Der zweite Lesezugriff auf die Adresse Ab [13:1] wird an der ansteigenden Flanke des Clk-Signals am Anfang von Zyklus T2 erfasst. Der hohe Zustand des externen Ren-Signals wird vom D-Register 721 (7) gerastet, so dass das lokale Lesefreigabesignal REN in den H-Zustand gebracht wird. Der zweite Lesezugriff trifft auf den Lesepuffer. Somit erkennt der Lesekomparator 741 am Anfang des Taktzyklus T2 eine Übereinstimmung zwischen der Adresse Ab [6:0] (d. h. EBA [6:0]) und dem im Lese-Cache-Tag-Speicher 762 gespeicherten Lese-Cache-Tag (d. h. Aa [6:0]). Als Reaktion darauf bringt der Komparator 741 das RBBHit-Signal in den H-Zustand. Die Adresse Ab [6:0] bewirkt auch, dass der 128-zu-1-Multiplexer 751 das im Lesen-gültig-Bit-Speicher 761 gespeicherte Gültig-Bit mit logisch '1' als RBValid-Signal leitet. Infolgedessen wird das Lesepuffer-Hit-Signal RBHit in den H-Zustand gebracht (siehe AND-Gate 704).
  • Im Lese-Schreib-Datenpuffer-Controller 601 (8) aktivieren die logisch hohen Signale REN und RBHit das Lesepuffer-Lesefreigabesignal RBrd, so dass ein Lesevorgang im Lesepuffer 311 erfolgt. Die durch die Adresse Ab [6:0] bezeichneten Daten Db werden aus dem Lesepuffer 311 und auf den Lesepufferausgangsbus RBO [127:0] gelesen. Der hohe Zustand des RBHit-Signals und der tiefe Zustand der Signale WBHit und REFP [r] bewirkt, dass der Ausgangsmultiplexer 309 die Daten auf dem Ausgangsbus RBO [127:0] auf den Ausgangsdatenbus Do [127:0] leitet. Im Speicher-Lese-Schreib-Controller 603 wird das Speicherbanklesesignal Mrd1 aufgrund des hohen Zustands des RBHit-Signals in den L-Zustand gebracht. Infolgedessen führen die Speicherblöcke 10001127 keine Vorgänge für den zweiten Lesezugriff durch. Wenn Auffrischvorgänge während des Taktzyklus T2 in einem der Speicherblöcke 10001127 anhängig sind, dann werden diese Auffrischvorgänge während des Taktzyklus T2 durchgeführt. Wenn der zweite Lesezugriff auf den Schreibpuffer 310 zusätzlich zum Lesepuffer 311 trifft (und keine Auffrischung im Lesepuffer 311 anhängig ist), dann wird nur ein Lesevorgang im Lesepuffer 311 durchgeführt, und der Multiplexer 309 wählt Daten aus dem Lesepuffer 311 zur Ausgabe auf den Ausgabedatenbus Do [127:0].
  • Der dritte Lesezugriff auf die Adresse Ac [13:0] wird an der ansteigenden Flanke des Clk-Signals zu Beginn des Zyklus T3 erfasst. Der hohe Zustand des externen Ren-Signals wird vom D-Register 721 (7) gerastet, so dass das lokale Lesefreigabesignal REN in den H-Zustand gebracht wird. Der dritte Lesezugriff verpasst den Lesepuffer 311 und trifft auf den Schreibpuffer 310. Zu Beginn des Taktzyklus 73 wird der Lesezugriff erfasst, und die externe Zugriffsadresse Ac [13:0] des dritten Lesezugriffs wird im Adressregister 304 (5) gerastet. In dem beschriebenen Beispiel stimmt die externe Bankadresse Ac [13:7] mit dem im Lese-Cache-Speicher 721 gespeicherten Lese-Cache-Tag und dem im Schreib-Cache-Speicher 772 (7) gespeicherten Schreib-Cache-Tag überein. Infolgedessen bringen die Komparatoren 741 und 742 die Signale RBBHit und WBBHit auf logisch hohe Werte. In dem beschriebenen Beispiel zeigt die Adresse Ac [3:0] auf ein zurückgesetztes (d. h. logisch tiefes) Gültig-Bit im Lesen-gültig-Speicher 761. Die Adresse Ac [3:0] zeigt jedoch auf ein gesetztes (d. h. logisch hohes) Gültig-Bit im Schreiben-gültig-Speicher 771. Demzufolge wird der Ausgang des Multiplexers 751, RBValid, tief angesteuert, und der Ausgang des Multiplexers 752, WBValid, wird hoch angesteuert. Der tiefe Zustand des RBValid-Signals bewirkt, dass das RBHit-Signal in den L-Zustand geht, was einen Lesepuffer-Miss anzeigt. Die hohen Zustände der Signale WBValid und WBBHit bewirken, dass das WBHit-Signal in den H-Zustand geht, was einen Schreibpuffer-Hit anzeigt. Der tiefe Zustand des RBHit-Signals und der hohe Zustand des REN-Signals aktivieren das Lesepuffer-Schreibfreigabesignal RBwr (siehe AND-Gate 813 und OR-Gate 821 im Lese-Schreib-Puffer-Controller 601 in 8). Ebenso aktivieren der tiefe Zustand des RBHit-Signals und der hohe Zustand der Signale WBHit und REN das Schreibpuffer-Lesefreigabesignal WBrd (siehe AND-Gate 811 und OR-Gate 824 des Lese-Schreib-Puffer-Controllers 601 in 8). Die Aktivierung des WBrd-Signals bewirkt die Durchführung eines Lesevorgangs im Schreibpuffer 310. Daten, Dc, durch die Zugriffsadresse Ac [6:0] bezeichnet, werden aus dem Schreibpuffer 310 auf den Schreibpufferausgangsbus WBO [127:0] gelesen. Die Aktivierung des WBHit-Signals und der tiefe Zustand des RBHit-Signals bewirken, dass der Multiplexer 309 Daten vom Bus WBO [127:0] zum Datenausgangsbus Do [127:0] leitet. Der hohe Zustand des WBHit-Signals bewirkt auch, dass der Multiplexer 314 Daten vom Bus WBO [127:0] auf den Lesepuffer-Eingangsdatenbus RBI [127:0] sendet. Der hohe Zustand des RBwr-Signals bewirkt, dass die Daten auf dem Lesepuffer-Eingangsdatenbus RBI [127:0] auf den durch die Adresse Ac [6:0] (13) bezeichneten Entry des Lesepuffers 311 geschrieben werden. Der hohe Zustand des RBBHit-Signals und der hohe Zustand des RBwr-Signals bewirken, dass das Gültig-Bit im Lesen-gültig-Speicher 761 in Verbindung mit der Zugriffsadresse Ac [6:0] gesetzt wird.
  • Die durch die externe Adresse Ac [13:0] adressierte Speicherbank wird als Speicherbank [c] bezeichnet. Man nehme an, dass eine Auffrischanforderung in der Speicherbank [c] mit der Aktivierung des Signals REQI [c] während des Clk-Zyklus T3 erfasst wird. Der hohe Zustand des Signals REQI [c] setzt das R-S-Register 2122 auf der ansteigenden Flanke des Clk-Signals, so dass ein logisch hohes internes Auffrischung-anhängig-Signal REFP [c] erzeugt wird (11). Der hohe Zustand des Auffrischung- anhängig-Signals REFP [c], der hohe Zustand des Bankzugriffssignals BA [c] und die logisch tiefen Zustände der Signale Mrd1, Mwr1 und Mwr2 bewirken, dass das interne Auffrischsignal REF [c] in den H-Zustand geht (siehe 9 und 11). Der hohe Zustand des Auffrischsignals REF [c] ermöglicht es, dass die Speicherarray-Timing-Signale RAS# [c], SEN# [c] und PRC# [c] durch die vom Speichersequencer 303 (5) erzeugten entsprechenden globalen Timing-Signale RAS#, SEN# und PRC# ausgelöst werden. Somit wird ein Auffrischzyklus von der Speicherbank [c] durchgeführt. Man beachte, dass die Spaltenschaltsteuersignale CAS 1[c] und CAS2 [c] während eines Auffrischzyklus nicht aktiviert werden, da nicht auf Daten in den Leseverstärkern zugegriffen wird. Die logisch tiefen Signale Mrd1, Mwr1 und Mwr2 verhindern eine Aktivierung der Signale CAS1 [c] und CAS2 [c] (siehe 11, AND-Gates 2111 und 2112). Wenn ein Lesezugriff auf den Schreibpuffer 310 oder den Lesepuffer 311 trifft, dann werden Daten aus dem Schreibpuffer 310 oder dem Lesepuffer 311 gelesen, so dass die Bänke der Speicherblöcke 10001127 während dieser Zeit Auffrischvorgänge durchführen können.
  • Schreibzugriff-Timing
  • 15 ist ein Wellenformdiagramm, das das Timing der Steuersignale bei vier verschiedenen Speicherschreibzugriffen illustriert. Der erste Schreibzugriff, mit der externen Adresse Aa, illustriert den Fall eines Schreibpuffer-Hits. Der zweite Schreibzugriff, mit der externen Adresse Ab, illustriert den Fall eines Schreibpuffer-Miss. Der dritte Schreibzugriff, mit der externen Adresse Ac, illustriert den Fall eines Schreibpufferrückzugs in Anwesenheit eines externen Zugriffs. Der vierte Schreibzugriff illustriert die Beendigung des Schreibpufferrückzugs, wenn ein Schreibpuffer-Hit während des Vorgangs des Schreibpufferrückzugs auftritt.
  • Der erste Schreibzugriff zu Adresse Aa [13:0] wird an der ansteigenden Flanke des Clk-Signals zu Beginn des Zyklus T1 erkannt. Als Reaktion darauf wird die Zugriffsadresse Aa [13:0] im Adressregister 304 gerastet. Der hohe Zustand des externen Wen-Signals wird vom D-Register 722 (7) gerastet, so dass das lokale Schreibfreigabesignal WEN in den H-Zustand gebracht wird. Die Bankadresse Aa [13:7] (d. h. EBA [6:0]) wird zum Bankadressdecoder 305 (5) sowie zu den Komparatoren 741742 und zu den Lese- und Schreibpuffer-Tag-Registern 762 und 772 im Lese-Schreib-Tag-Controller 602 (7) geleitet.
  • Der Bankadressdecoder 305 aktiviert das Bankzugriffssignal BA [a] durch hohes Ansteuern des entsprechenden externen Bankauswahlsignals EBS [a], wobei 'a' die der Adresse Aa entsprechende Bank ist. Im Lese-Schreib-Tag-Controller 602 vergleicht der Komparator 742 die Bankadresse Aa [13:7] mit dem im Lese-Cache-Tag-Speicher 772 gespeicherten Schreibpuffer-Tag. Da ein Hit vorliegt, erzeugt der Komparator 742 ein logisch hohes WBBHit-Signal. Im vorliegenden Beispiel wird der durch die Adresse Aa [6:0] bezeichnete Entry des Schreiben-gültig-Speichers 771 zurückgesetzt (d. h. logisch tief). Die Folge ist, dass sowohl das Signal WBValid als auch das Signal WBHit in ihrem logisch tiefen Zustand bleiben. Der hohe Zustand des WBBHit-Signals und des WEN-Signals bewirkt, dass das Schreibpufferrückzugssignal WBret tief bleibt (siehe AND-Gate 817, OR-Gate 823 und R-S-Register 833 von 8). Das logisch tiefe WBret-Signal und das logisch hohe WEN-Signal steuern das WBwr-Signal in einen logisch hohen Zustand an (siehe AND-Gate 815 von 8). Der tiefe Zustand von WBret bewirkt, dass das Mwr1 Signal tief bleibt, so dass Speicherbankzugriffe unterdrückt werden (siehe AND-Gates 904905 und OR-Gate 912 des Speicher-Lese-Schreib-Controllers 603 von 9).
  • Im Schreibpuffer 310 steuert der hohe Zustand des WBwr-Signals das Signal Acc# [w] tief an, wodurch bewirkt wird, dass die Daten Da auf dem Eingangsdatenbus Di [127:0] auf den durch die Adresse Aa [6:0] bezeichneten Entry geschrieben werden (d. h. ERC [6:0]) (siehe 12). Im Lese-Schreib-Puffer-Tag-Controller 602 (8) bewirkt der hohe Zustand des WBwr-Signals, dass die Bankadresse Aa [6:0] auf den Schreibpuffer-Tag-Speicher 772 geschrieben wird. Da die Schreibpuffer-Tag- und Bankadresse Aa [6:0] gleich sind, führt dieser Vorgang zu keiner Änderung des Schreibpuffer-Bankadress-Tags. Die Aktivierung des WBwr-Signals aktiviert auch das WBVupdate-Signal, was dazu führt, dass das durch die externe Reihen-Spalten-Adresse ERC [6:0] (d. h. Aa [6:0] ) bezeichnete Gültig-Bit im Schreiben-gültig-Speicher 771 gesetzt wird.
  • Der zweite Schreibzugriff auf die Adresse Ab [13:0] wird an der ansteigenden Flanke des Clk-Signals zu Beginn von Zyklus T2 erfasst. Als Reaktion darauf wird die Zugriffsadresse Ab [13:0] im Adressregister 304 gerastet. Der hohe Zustand des externen Wen-Signals wird vom D-Register 622 gerastet (7), so dass das lokale Schreibfreigabesignal WEN hoch angesteuert wird. Die Bankadresse Ab [13:7] (d. h. EBA [6:0] wird zum Bankadressdecoder 305 (5) sowie zu den Komparatoren 741742 und zu den Lese- und Schreibpuffer-Tab Registern 762 und 772 im Lese-Schreib-Tag-Controller 602 (7) geleitet.
  • Der Komparator 742 vergleicht die Bankadresse Ab [13:7] mit dem im Schreibpuffer-Tag-Speicher 772 gespeicherten Schreibpuffer-Tag. Es wird eine Nichtübereinstimmung erfasst, wodurch bewirkt wird, dass die Signale WBBHit und WBHit im L-Zustand weggenommen werden. Das WBHit-Signal ist selbst dann tief, wenn das durch die Reihen- und Spaltenadresse Ab [6:0] bezeichnete Gültig-Bit gesetzt ist (d. h. WBValid ist hoch). Da wenigstens ein Gültig-Bit im Schreiben-gültig-Speicher 771 hoch gesetzt ist, wird der Ausgang des OR-Gates 822 (8) hoch angesteuert. Dieses hohe Signal, zusammen mit dem hohen Zustand des WEN-Signals und dem tiefen Zustand des WBBHit-Signals, bewirkt, dass das AND-Gate 818 ein logisch hohes Signal an den Set-Anschluss von R-S-Register 833 anlegt. Als Reaktion darauf erzeugt das R-S-Register 833 ein logisch hohes WBret-Signal, so dass ein Schreibpufferrückzug gestartet wird.
  • Der hohe Zustand des WBret-Signals deaktiviert das WBwr-Signal (siehe AND-Gate 815 von 8). Der hohe Zustand des WBret-Signals, zusammen mit dem logisch hohen WEN-Signal, aktiviert das Mwr1-Signal (siehe AND-Gate 904 und OR-Gate 912 von 9). In der Speicherbank [b], der designierten Speicherbank des zweiten Schreibzugriffs, bewirkt der hohe Zustand des Mwr1-Signals, dass das Zugriffsfreigabesignal Acc# [b] in den L-Zustand geht (siehe OR-Gate 2102 und NAND-Gate 2117 von 11). Während dieser Zeit wird eine Auffrischanforderung empfangen und das Auffrischanforderungssignal REQI [b] wird hoch aufgedrückt. Als Reaktion darauf erzeugt das R-S-Register 2122 ein logisch hohes Auffrischung-anhängig-Signal REFP [b]. Der tiefe Zustand des Signals Acc# [b] hindert jedoch das Auffrischungsfreigabesignal REF [b] daran, in den H-Zustand zu gehen. Der tiefe Zustand des Signals Acc# [b] erlaubt die Aktivierung von RAS# [b], SEN# [b] und PRC# [b] durch die entsprechenden Eingangssignale RAS#, SEN# und PRC# (siehe NOR-Gates 21312136 von 11). Der hohe Zustand des Mwr1 ermöglicht auch eine Aktivierung des Spaltenmultiplexer-Freigabesignals CAS1 [b) durch das globale Timing-Signal CAS# (siehe AND-Gate 2112 von 11). Die sequentielle Aktivierung von RAS# [b), SEN# [b], CASI [b] und PRC# [b] führt einen Speicherschreibzyklus in der Speicherbank [b] aus, was dazu führt, dass die Eingangsdaten Db in Di [127:0] durch den Speicher-Lese-Schreib-Port 313 auf die Speicherbank [b] geschrieben werden.
  • Der Schreibpufferrückzug beginnt mit Entry 0, wobei die Entry-Adresse WBCA [6:0] vom 7-Bit-Zähler 831 bereitgestellt wird (8). Die Entry-Adresse WBCA [6:0] wird auch zu den Speicherblöcken 10001127 gesendet, so dass die richtige Reihen- und Spaltenadresse zu der vom Schreibpuffer-Tag bezeichneten Speicherbank bereitgestellt wird. Unter der Annahme, dass das Gültig-Bit in Verbindung mit Entry 0 gesetzt ist, ist dann das Gültig-Bit-Signal VB im H-Zustand (siehe Multiplexer 832 von 8). Die logisch hohen Signale WBret und VB bewirken, dass das Mwr2-Signal (9) und das WBrd-Signal (8) hoch aufgedrückt werden. Der hohe Zustand des WBrd-Signals bewirkt wiederum, dass ein Lesezyklus im Schreibpuffer 310 dwchgeführt wird. Demzufolge werden Daten von Entry 0 des Schreibpuffers 310 auf den Datenbus WBO [127:0] ausgelesen.
  • Angenommen, die Bankadresse im Schreibpuffer-Tag 772 ist [m], dann wird das BA [m] Signal im Speicherblock [m] hoch angesteuert und das Signal Acc# [m] wird tief angesteuert, so dass eine Aktivierung der Signale RAS# [m], SEN# [m] und PRC# [m] ermöglicht wird. Der hohe Zustand des Mwr2-Signals ermöglicht auch die Aktivierung des Spaltenzugriffssignals CAS2 [m] als Reaktion auf das globale Spaltenzugriffssignal CAS#. Die Speicher-Timing-Signale RAS# [m], SEN# [m], CAS2 [m] und PRC# [m] werden nachfolgend aktiviert, wodurch bewirkt wird, dass Daten auf dem Bus WBO [127:0] auf die Speicherbank [m] an der durch die Entry-Adresse WBCA [6:0] bezeichneten Reihe und Spalte geschrieben werden. Die logisch hohen Signale WBrd und WBret setzen das Gültig-Bit in dem durch die Entry-Adresse WBCA [6:0] bezeichneten Schreiben-gültig-Speicher 771 zurück (siehe OR-Gate 713 und Multiplexer 723 von 7).
  • Der dritte Schreibzugriff auf Adresse Ac [13:0] wird an der ansteigenden Flanke des Clk-Signals zu Beginn von Zyklus T3 erfasst. Als Reaktion darauf wird die Zugriffsadresse Ac [13:0] im Adressregister 304 gerastet. Der hohe Zustand des externen Wen-Signals wird vom D-Register 722 (7) gerastet, wodurch das lokale Schreibfreigabesignal WEN hoch angesteuert wird. Die Bankadresse Ac [13:7] (d. h. EBA [6:0]) wird zum Bankadressdecoder 305 (5) sowie zu den Komparatoren 741742 und zu den Lese- und Schreibpuffer-Tag-Registern 762 und 772 im Lese-Schreib-Tag-Controller 602 (7) geleitet.
  • Der Komparator 742 vergleicht die Bankadresse Ac [13:7] mit dem im Schreibpuffer-Tag-Speicher 772 gespeicherten Schreibpuffer-Tag. Es wird eine Nichtübereinstimmung erfasst, so dass die Signale WBBHit und WBHit tief bleiben. Der tiefe Zustand des WBBHit-Signals bewirkt, dass der Ausgang des R-S-Registers 833 (d. h. das WBret-Signal) hoch bleibt. Infolgedessen wird der im vorherigen Taktzyklus T2 begonnene Datenrückzugsprozess fortgesetzt. Der hohe Zustand des WBret-Signals bewirkt, dass das Mwr1-Signal hoch bleibt (9), so dass ein Speicherschreibzyklus in der Speicherbank [c] ermöglicht wird, bei der es sich um die designierte Bank der Schreibadresse Ac [13:0] handelt. In der Speicherbank [c] führen die logisch hohen Signale BA [c] und Mwr1 zu einem logisch tiefen Signal Acc# [c], so dass die Timing-Steuersignale RAS# [c], SEN# [c] und PRC# [c) befähigt werden, ihren globalen Steuersignal-Gegenstücken RAS#, SEN# und PRC# zu folgen. Der hohe Zustand des Mwr1-Signals erlaubt auch eine Aktivierung des Spaltenmultiplexer-Steuersignals CAS1 [c] als Reaktion auf das Signal CAS#. Die Aktivierung der Speicher-Timing-Signale bewirkt, dass die externen Daten Dc vom Di [127:0] Bus auf die durch die Adresse Ac [6:0] in der Speicherbank [c] durch den Speicher-Lese-Schreib-Port 313 bezeichnete Stelle geschrieben werden. Zu Beginn von Zyklus T3 erhöht der 7-Bit-Zähler 831 in 8 den Wert des Entry von 0 auf 1, wodurch die Reihen- und Spaltenadresse für den Schreibpuffer 310 und die Speicherbank [m] etabliert wird (das Ziel des Schreibpufferrückzugs). Angenommen, das Gültig-Bit des Entry 1 ist ebenfalls gesetzt, dann hat das vom Multiplexer 832 geleitete VB-Signal einen logisch hohen Wert. Die logisch hohen Signale WBret und VB bewirken, dass die Signale WBrd und Mwr2 hoch bleiben, wodurch ein weiterer Lesezyklus im Schreibpuffer 310 und ein weiterer Schreibzyklus in der Speicherbank [m] begonnen werden. Die Operationen-Timing-Signale RAS# [m], SEN# [m] und PRC# [m] in der Speicherbank [m] und die Operationen-Timing-Signale RAS# [w], SEN# [w] und PRC# [w] im Schreibpuffer 310 folgen eng den in 15 gezeigten globalen Timing-Signalen RAS#, SEN# und PRC#. Am Ende von Zyklus T3 werden Daten WBD1 von Entry 1 des Schreibpuffers 310 auf den Bus WBO [127:0] ausgelesen und auf dieselbe Stelle in der Speicherbank [m] durch den Nur-Schreib-Port 312 geschrieben. Da die Speicherbank [b] in dieser Periode nicht am Zugriff beteiligt ist und auch nicht am Rückzugsprozess beteiligt ist, ist das Bankzugriffsfreigabesignal BA [b] jetzt tief. Der tiefe Zustand des Signals BA [b] und der hohe Zustand des Signals REFP [b] bewirken, dass das Signal REF [b] in den H-Zustand geht (11), so dass die Signale RAS# [b], SEN# [b] und PRC# [b] durch die globalen Signale RAS#, SEN# und PRC# aktiviert werden können. Auf diese Weise wird ein Auffrischvorgang in der Speicherbank [b] durchgeführt. Da beide Signale CAS 1[b] und CAS2 [b] tief bleiben, werden die Spaltenschalter 2011 (10) nicht freigegeben. Das Auffrischung-anhängig-Signal REFP [b] wird am Ende des Auffrischzyklus tief zurückgesetzt. Die logisch hohen Signale WBrd und WBret setzen das Gültig-Bit in dem durch die Entry-Adresse WBCA [6:0] bezeichneten Schreiben-gültig-Speicher 771 zurück (siehe OR-Gate 713 und Multiplexer 723 von 7).
  • Der vierte Schreibzugriff auf Adresse Ad [13:0] wird an der ansteigenden Flanke des Clk-Signals zu Beginn von Zyklus T4 erfasst. Als Reaktion darauf wird die Zugriffsadresse Ad [13:0] im Adressregister 304 gerastet. Der hohe Zustand des externen Wen-Signals wird vom D-Register 722 (7) gerastet, so dass das lokale Schreibfreigabesignal WEN hoch angesteuert wird. Die Bankadresse Ad [13:7] (d. h. EBA [6:0]) wird zum Bankadressdecoder 305 (5) sowie zu den Komparatoren 741742 und zu den Lese- und Schreibpuffer-Tag-Registern 762 und 772 im Lese-Schreib-Tag-Controller 602 (7) geleitet. Wie oben erwähnt, illustriert der vierte Schreibzugriff die Beendigung des Schreibpufferrückzugs, wenn ein Schreibpuffer-Hit während des Vorgangs des Schreibpufferrückzugs auftritt.
  • Die Bankadresse Ad [13:7] wird mit dem im Schreibpuffer-Tag-Speicher 772 gespeicherten Schreibpuffer-Tag verglichen. Es wird eine Übereinstimmung erkannt, was zur Aktivierung des Scheibpufferbank-Hit-Signals WBBHit führt. Angenommen, das Gültig-Bit des durch die Adresse Ad [6:0] bezeichneten Schreiben-gültig-Speichers 771 ist gesetzt, dann wird das Signal WBValid hoch angesteuert. Die logisch hohen Signale WBValid und WBBHit führen zu einem logisch hohen Signal WBHit (siehe AND-Gate 705 von 7). Die logisch hohen Signale WBBHit und WEN setzen das R-S-Register 833 (8) zurück, was bewirkt, dass das WBret-Signal in den L-Zustand geht. Das logisch tiefe Signal WBret beendet den Schreibpufferrückzugsvorgang. Das tiefe Signal WBret und das hohe WEN-Signal aktivieren das Schreibpuffer-Schreibfreigabesignal WBwr (siehe AND-Gate 815 von 8), so dass ein Schreibzyklus im Schreibdatenpuffer 310 freigegeben wird. Eingangsdaten Dd werden vom Eingangsdatenbus Di [127:0] auf den durch die Adresse Ad [6:0] bezeichneten Schreibpuffer-Entry geschrieben. Der tiefe Zustand des WBret-Signals unterdrückt die Aktivierung des Speicherschreibsignals Mwr1. Infolgedessen wird kein Schreibvorgang auf die Speicherblöcke 10001127 durchgeführt. Das logisch hohe WBwr-Signal drückt, zusammen mit dem logisch tiefen Signal WBret, das WBVupdate-Signal auf (siehe AND-Gate 703 und OR-Gate 713 in 7). Als Reaktion darauf wird das durch die Adresse Ad [6:0] bezeichnete Gültig-Bit im Schreiben-gültig-Speicher 771 gesetzt.
  • Schreib- und Lesepuffer mit DRAM
  • In den Erörterungen für 14 und 15 oben wird angenommen, dass Schreibpuffer 310 und Lesepuffer 311 aus SRAM-Zellen bestehen. In diesem Fall erfordern der Schreibpuffer 310 und der Lesepuffer 311 keinen Auffrischvorgang. In einer anderen Ausgestaltung können Schreibpuffer 310 und Lesepuffer 311 jedoch mit DRAM-Zellen aufgebaut sein. In dieser Ausgestaltung wird die vom Schreibpuffer 310 und vom Lesepuffer 311 belegte Fläche vorteilhafterweise reduziert. Da Schreibpuffer 310 und Lesepuffer 311 genauso organisiert sind wie die Speicherblöcke 10001127, können der Schreibpuffer 310 und der Lesepuffer 311 mit DRAM-Bänken mit geringfügigen Modifikationen aufgebaut sein. Diese Modifikationen wurden oben in Verbindung mit den in 513 mit gestrichelten Linien dargestellten Elementen beschrieben.
  • In dieser Ausgestaltung werden der Schreibpuffer 310 und der Lesepuffer 311 ähnlich wie Speicherblöcke 10001127 aufgefrischt. Der Auffrisch-Verkettungs-Ausgangsanschluss REQO [1127] des Speicherblocks 1127 ist mit dem Auffrischeingangsanschluss REQI [w] des Schreibpuffers 310 verbunden. Der Verkettungsausgangsanschluss REQO [w] des Schreibpuffers 310 ist mit dem Auffrischeingangsanschluss REQI [r] des Lesepuffers 311 verbunden. Die Daisy-Chain endet am Lesepuffer 311, daher ist der Ausgangsanschluss REQO [r] des Lesepuffers 311 nicht angeschlossen.
  • Um eine ordnungsgemäße Auffrischung im Lesepuffer 311 zu gewährleisten, erhalten Auffrischvorgänge Vorrang gegenüber externen Zugriffsvorgängen. Wenn also ein Auffrischvorgang anhängig ist, dann ignoriert der Lesepuffer 311 alle externen Zugriffe, um den anhängigen Auffrischvorgang durchzuführen. Wenn eine Auffrischung im Lesepuffer 311 anhängig ist, wird das Auffrischen-anhängig-Signal REFP [r] hoch aufgedrückt. Der Index 'r' bedeutet, dass das Signal vom Lesepuffer 311 erzeugt wird. Das Signal REFP [r] wird im Lese-Schreib-Puffer-Controller 601 verwendet, um die Aktivierung des Lesepuffer-Lesefreigabesignals RBrd und des Lesepuffer-Schreibfreigabesignals RBwr zu verhindern (8). Dies erfolgt durch Verbinden des Signals REFP [r] mit den AND-Gates 812814, wie in 8 mit gestrichelten Linien dargestellt ist. Wenn das Signal REFP [r] hoch angesteuert wird, dann werden die Ausgänge der AND-Gates 812814 tief angesteuert, wodurch bewirkt wird, dass die Signale RBrd und RBwr in den L-Zustand gehen. Wenn der Lesepuffer 311 mit der Durchführung eines Auffrischvorgangs belegt ist, dann muss die bezeichnete Speicherbank den Lesezugriff handhaben. Daher wird im Speicher-Lese-Schreib-Controller 603 das Mrd1-Signal aktiviert, wenn die Signale REFP [r] und REN hoch aktiviert werden. Die Erzeugung des Signals REFP [r] und das Steuer-Timing für Vorgänge im Lesepuffer 311 sind oben beschrieben.
  • Um die Datenkohärenz im Lesepuffer 311 zu bewahren, wenn ein Schreibzugriff auf einen Lesepuffer 311 in Kollision mit der Lesepufferauffrischung auftritt, wird das zugehörige Gültig-Bit im Lesen-gültig-Speicher 761 zurückgesetzt, wodurch der Daten-Entry im Lesepuffer 311 invalidiert wird. Dieser Invalidierungsvorgang wird vom Lese-Schreib-Tag-Controller 602 dwchgeführt (7). Wenn die Signale REFP [r], RBHit und WEN alle logisch hohe Werte haben, dann sendet das AND-Gate 702 ein logisch hohes Signal zum OR-Gate 712, was zu einem logisch hohen RBVupdate-Signal führt. Dieses logisch hohe RBVupdate-Signal setzt das durch die Adresse in ERC [6:0] bezeichnete Gültig-Bit zurück.
  • Um eine ordnungsgemäße Auffrischung im Schreibpuffer 310 sicherzustellen, hat ein Auffrischvorgang Vorrang gegenüber allen anderen Vorgängen, mit Ausnahme eines Lese-Hits zum Schreibpuffer 310, der den Lesepuffer 311 verpasst, oder wenn eine Auffrischung im Lesepuffer 311 anhängig ist. In diesem Fall wird der Auffrischvorgang des Schreibpuffers 310 verzögert. Im ungünstigsten Fall kann dies in 129 aufeinander folgenden Taktzyklen auftreten, wenn ein kontinuierlicher Strom von Zugriffen auf den Schreibpuffer 310 trifft, alle Adressen im Schreibpuffer 310 durchläuft, und der Lesepuffer 311 während dieser Zeit einen Auffrischvorgang durchführt. Man beachte, dass, wenn in der Bankadresse während eines Stroms von Zugriffen keine Änderung erfolgt, zwei Zugriffe auf dieselbe Stelle keine zwei Lesepuffer-Misses verursachen können, es sei denn, dass ein Auffrischvorgang im Lesepuffer 311 während eines der Zugriffe durchgeführt wird. Wenn die ordnungsgemäße Auffrischperiode länger ist als 129 Taktzyklen, dann kann der Auffrischvorgang im Schreibpuffer 310 innerhalb der richtigen Auffrischperiode durchgeführt werden. Wenn eine Auffrischung im Schreibpuffer 310 anhängig ist, dann wird das Signal REFP [w] hoch aufgedrückt. Im Lese-Schreibpuffer-Controller 601 (8) bewirkt der hohe Zustand des Signals REFP [w], dass das Schreibpuffer-Schreibfreigabesignal WBwr tief bleibt, wodurch jeder Schreibzugriff auf den Schreibpuffer 310 während einer Schreibdatenpufferauffrischung unterdrückt wird.
  • Wenn der Schreibpuffer 310 die Auffrischung handhabt, dann muss die bezeichnete Speicherbank den Schreibzugriff handhaben. Daher wird das Mwr1-Signal aktiviert, wenn die Signale REFP [w] und WEN im H-Zustand sind (siehe AND-Gate 905 und OR-Gate 912 von 9).
  • Ein weiterer Vorgang, den die Schreibpufferauffrischung beeinflussen kann, ist der Schreibdatenrückzug. Während eines Schreibpufferrückzugs unterbricht der Auffrischvorgang im Schreibpuffer 310 den Datenrückzug für einen Taktzyklus. Nach dem Auffrischvorgang wird der Datenrückzug wieder aufgenommen. Dies erfolgt mit der in den
  • 8 und 9 dargestellten Logik. In 8 bewirkt der hohe Zustand des Signals REFP [w], dass der Ausgang des AND-Gate 819 in den L-Zustand geht, wodurch wiederum bewirkt wird, dass das WBrd-Signal in den L-Zustand geht, wodurch der durch den Schreibdatenrückzug induzierte Lesevorgang im Schreibpuffer 310 verhindert wird. Der durch den Schreibpufferückzug induzierte Speicherschreibvorgang wird verhindert, wodurch das Signal REFP [w] invertiert und das Ergebnis an das AND-Gate 903 angelegt wird (9). Ein hohes Signal REFP [w] bewirkt somit, dass das Mwr2-Signal im L-Zustand bleibt. Ein logisch hohes Signal REFP [w] steuert auch den Eingang INC des Zählers 831 in den L-Zustand, wodurch die Inkrementierung des Zählers 831 während des Schreibpufferrückzugs suspendiert wird.
  • Die Erfindung wurde zwar in Verbindung mit mehreren Ausgestaltungen beschrieben, aber es ist zu verstehen, dass die vorliegende Erfindung nicht auf die offenbarten Ausgestaltungen begrenzt ist, sondern dass verschiedene Modifikationen möglich sind, die für die Fachperson offensichtlich sein werden. So können beispielsweise die DRAM-Bänke und der SRAM-Cache-Speicher verschiedene Größen in verschiedenen Ausgestaltungen haben. Ebenso können verschiedene Anzahlen von DRAM-Bänken verwendet werden. Außerdem können Busse mit anderen Breiten als den beschriebenen in anderen Ausgestaltungen verwendet werden. Darüber hinaus kann die ordnungsgemäße Auffrischperiode durch Einbauen eines Auffrischakkumulators in jede Speicherbank verlängert werden. Ferner kann eine Schreibdatenmaskierung mit geringfügigen Modifikationen an der Schreibsteuerung in den Speicherbänken, den Lese- und Schreibdatenpuffern und den Schreibpuffer-gültig-Bits hinzugefügt werden. Somit ist die Erfindung nur durch die nachfolgenden Ansprüche begrenzt.

Claims (23)

  1. Speichergerät, das Folgendes umfasst: eine Mehrzahl von Speicherzellen, die in einer Mehrzahl von Bänken (063; 10001127) konfiguriert sind, wobei jede der Speicherzellen innerhalb einer vorbestimmten Auffrischperiode aufgefrischt werden muss, um einen Datenwert zu behalten; und eine Steuerschaltung (100163, 171172, 180195; 301314) zum Zugreifen auf die und Auffrischen der Speicherzellen, wobei die Steuerschaltung so konfiguriert ist, dass sie Direktzugriffsvorgängen gegenüber Auffrischvorgängen Vorrang gibt, damit während jedes Speicherzyklus direkt auf die Speicherzellen zugegriffen werden kann, ohne Verzögerungen für Auffrischvorgänge, wobei die Steuerschaltung so konfiguriert ist, dass sie einen Auffrischvorgang an einer Bank nur dann durchführt, wenn die Bank keine anhängige externe Zugriffsanforderung hat, wobei die Steuerschaltung ein Datenspeicherelement (187; 310311) beinhaltet, das zum Speichern von Zugriffsdaten der Bänke konfiguriert ist, wobei das Datenspeicherelement eine Speicherkapazität hat, die wenigstens gleich der Kapazität von einer der Bänke minus der Kapazität von einer der Reihen von Zellen in einer der Bänke ist, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf das gesamte Datenspeicherelement erforderlich ist, wodurch gewährleistet wird, dass jede der Bänke innerhalb der vorbestimmten Auffrischperiode aufgefrischt wird.
  2. Speichergerät nach Anspruch 1, wobei das Speicherelement einen statischen Direktzugriffsspeicher- (SRAM) Cache (187) umfasst.
  3. Speichergerät nach Anspruch 2, bei dem der SRAM-Cache eine Write-Back-Policy implementiert.
  4. Speichergerät nach Anspruch 2, bei dem der SRAM-Cache als Direct-Map-Cache konfiguriert ist.
  5. Speichergerät nach Anspruch 1, bei dem die Steuerschaltung einen Schaltkomplex (100103, 195; 301302, 2004, 2007) zum unabhängigen Steuern von Auffrischvorgängen in jeder Bank umfasst.
  6. Speichergerät nach Anspruch 2, die ferner Folgendes umfasst: einen Lesepuffer (171), bei dem die Bänke mit dem Lesepuffer parallelgeschaltet sind, und wobei Daten von einer der Bänke auf den Lesepuffer gelesen werden können; und einen Cache-Schreibpuffer (189), der zwischen dem SRAM-Cache und dem Lesepuffer geschaltet ist.
  7. Speichergerät nach Anspruch 2, das ferner Folgendes umfasst: einen Schreibpuffer (172), wobei die Bänke mit dem Schreibpuffer parallelgeschaltet sind und wobei die Daten vom Schreibpuffer auf eine der Bänke geschrieben werden; und einen Cache-Lesepuffer (188), der zwischen dem SRAM-Cache und dem Schreibpuffer geschaltet ist.
  8. Speichergerät nach Anspruch 1, wobei das Speicherelement Folgendes umfasst: einen Lesepuffer (311), der mit den Bänken und der Steuerschaltung gekoppelt ist, wobei der Lesepuffer eine Kapazität hat, die gleich oder größer ist als die Kapazität einer Bank minus einer Reihe von Speicherzellen; und einen Schreibpuffer (310), der mit den Bänken und der Steuerschaltung gekoppelt ist, wobei der Schreibpuffer eine Kapazität hat, die gleich oder größer ist als die Kapazität einer Bank minus einer Reihe von Speicherzellen.
  9. Speichergerät nach Anspruch 8, das ferner Folgendes umfasst: einen Nur-Schreib-Port (312), der den Schreibpuffer mit den Bänken verbindet, und einen Lese-Schreib-Port (313), der den Lesepuffer mit den Bänken verbindet.
  10. Speichergerät nach Anspruch 8, wobei der Lesepuffer und der Schreibpuffer mit statischen Direktzugriffsspeicher- (SRAM) Zellen aufgebaut sind.
  11. Speichergerät nach Anspruch 8, bei dem der Lesepuffer und der Schreibpuffer mit dynamischen Direktzugriffsspeicher- (DRAM) Zellen aufgebaut sind.
  12. Speichergerät nach Anspruch 1, bei dem die Steuerschaltung ferner Folgendes umfasst: eine Mehrzahl von Zugriffssteuerschaltungen (2007), wobei jede der Zugriffssteuerschaltungen mit einer der Bänke assoziiert ist, wobei jede Zugriffssteuerschaltung einen Auffrischvorgang in ihrer zugehörigen Bank nur dann ermöglicht, wenn eine Auffrischung in der zugehörigen Bank anhängig ist und wenn keine Zugriffsanforderung auf die zugehörige Bank vorliegt; einen zentralen Auffrisch-Timer (302), um periodisch ein Auffrischanforderungssignal aufzudrücken; und prioritätsverkettete Verbindungen (REQI, REQO) zwischen den Zugriffssteuerschaltungen, wobei die Prioritätsverkettungsverbindungen sequentiell das Auffrischanforderungssignal als Reaktion auf ein Taktsignal zu den Zugriffssteuerschaltungen leiten.
  13. Speichergerät nach Anspruch 12, wobei die Steuerschaltung ferner einen Auffrischadressgenerator (301) zum Erzeugen einer Auffrischadresse umfasst, wobei der Auffrischadressgenerator mit allen Zugriffssteuerschaltungen parallelgeschaltet ist, wobei der Auffrischadressgenerator die Auffrischadresse als Reaktion auf das Auffrischanforderungssignal inkrementiert.
  14. Speichergerät nach Anspruch 13, wobei das Speicherelement Folgendes umfasst: einen Lesepuffer (311); und einen Schreibpuffer (310), wobei die prioritätsverketteten Verbindungen zum Lesepuffer und zum Schreibpuffer so verlaufen, dass die Prioritätsverkettungsverbindungen als Reaktion auf das Taktsignal das Auffrischanforderungssignal sequentiell zum Lesepuffer und zum Schreibpuffer leiten.
  15. Speichergerät nach Anspruch 1, wobei jede der Bänke eine Mehrzahl von Reihen und Spalten von Speicherzellen beinhaltet; einen Speichercontroller zum Steuern des Zugriffs auf die und des Auffrischens der Speicherzellen, wobei das Datenspeicherelement einen Lesepuffer (311) aufweist, der mit den Bänken und dem Speichercontroller gekoppelt ist, wobei der Lesepuffer eine Kapazität hat, die gleich oder größer als die Kapazität einer Bank minus einer Reihe von Speicherzellen ist, wobei der Lesepuffer so konfiguriert ist, dass er Zugriffsdaten der Bänke speichert, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf den gesamten Lesepuffer nötig ist, wodurch gewährleistet wird, dass jede der Bänke innerhalb der vorbestimmten Auffrischperiode aufgefrischt wird.
  16. Speichergerät nach Anspruch 15, wobei der Lesepuffer mit statischen Direktzugriffsspeicher- (SRAM) Zellen aufgebaut ist.
  17. Speichergerät nach Anspruch 15, wobei der Lesepuffer mit dynamischen Direktzugriffsspeicher- (DRAM) Zellen aufgebaut ist.
  18. Speichergerät nach Anspruch 15, wobei der Lesepuffer eine Mehrzahl von Einträgen zum Speichern von Datenwerten beinhaltet und wobei der Speichercontroller ferner Folgendes umfasst: einen Lesepufferbank-Adressspeicher (762) zum Speichern einer Adresse einer Bank in Verbindung mit gültigen Daten, die gerade an einer oder mehreren Einsprungadressen des Lesepuffers gespeichert sind; und einen Lesepuffer-gültig-Bit-Speicher (761) zum Speichern einer Mehrzahl von Gültig-Indikatorbits, wobei jede der Einsprungadressen des Lesepuffers mit einem entsprechenden einen der Gültig-Indikatorbits assoziiert ist.
  19. Speichergerät nach Anspruch 1, wobei jede der Bänke eine Mehrzahl von Reihen und Spalten von Speicherzellen beinhaltet; einen Speichercontroller zum Steuern des Zugriffs auf die und des Auffrischens der Speicherzellen, wobei das Datenspeicherelement einen Schreibpuffer (310) beinhaltet, der mit den Bänken und dem Speichercontroller gekoppelt ist, wobei der Schreibpuffer eine Kapazität hat, die gleich oder größer als die Kapazität einer Bank minus einer Reihe von Speicherzellen ist, wobei der Schreibpuffer so konfiguriert ist, dass er Zugriffsdaten der Bänke speichert, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf den gesamten Schreibpuffer erforderlich ist, wodurch gewährleistet wird, dass jede der Bänke innerhalb der vorbestimmten Auffrischperiode aufgefrischt wird.
  20. Speichergerät nach Anspruch 19, wobei der Schreibpuffer mit statischen Direktzugriffsspeicher- (SRAM) Zellen aufgebaut ist.
  21. Speichergerät nach Anspruch 19, wobei der Schreibpuffer mit dynamischen Direktzugriffsspeicher- (DRAM) Zellen aufgebaut ist.
  22. Speichergerät nach Anspruch 19, wobei der Schreibpuffer eine Mehrzahl von Einsprungadressen zum Speichern von Datenwerten beinhaltet und wobei der Speichercontroller ferner Folgendes umfasst: einen Schreibpufferbank-Adressspeicher (772) zum Speichern einer Adresse einer Bank in Verbindung mit gültigen Daten, die gerade an einer oder mehreren Einsprungadressen des Schreibpuffers gespeichert sind; und einen Schreibpuffer-gültig-Bit-Speicher (771) zum Speichern einer Mehrzahl von Gültig-Indikatorbits, wobei jede der Einsprungadressen des Schreibpuffers mit einem entsprechenden einen der Gültig-Indikatorbis assoziiert ist.
  23. Verfahren zum Betreiben eines Mehrbankspeichers, umfassend eine Mehrzahl von Speicherzellen, die jeweils innerhalb einer vorbestimmten Auffrischperiode aufgefrischt werden müssen, um einen Datenwert zu behalten, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von externen Zugriffsanforderungen auf den Mehrbankspeicher; Erzeugen von Auffrischanforderungen innerhalb des Mehrbankspeichers; unmittelbares Verarbeiten jeder der externen Zugriffsanforderungen; und Gewähren von Vorrang für externe Zugriffsanforderungen gegenüber Auffrischanforderungen, so dass eine Auffrischanforderung an eine Bank des Mehrbankspeichers nur dann verarbeitet wird, wenn die Bank keine anhängige externe Zugriffsanforderung hat; Speichern von Zugriffsdaten in Verbindung mit den Bänken in einem Speicherelement mit einer Speicherkapazität, die wenigstens gleich der Kapazität von einer der Bänke minus der Kapazität von einer Reihe von Zellen in einer der Bänke hat, wobei die vorbestimmte Auffrischperiode länger ist als die Zeit, die zum Zugreifen auf das gesamte Speicherelement nötig ist, wodurch gewährleistet wird, dass Auffrischanforderungen innerhalb der vorbestimmten Auffrischperiode verarbeitet werden.
DE69913366T 1998-10-01 1999-10-01 Lese/schreibe-puffern für ein komplettes verdecken des auffrischen eines halbleiterspeichers und verfahren zum betreiben derselben Expired - Lifetime DE69913366T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US165228 1998-10-01
US09/165,228 US5999474A (en) 1998-10-01 1998-10-01 Method and apparatus for complete hiding of the refresh of a semiconductor memory
US09/405,607 US6415353B1 (en) 1998-10-01 1999-09-24 Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US405607 1999-09-24
PCT/US1999/022894 WO2000019445A1 (en) 1998-10-01 1999-10-01 Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same

Publications (2)

Publication Number Publication Date
DE69913366D1 DE69913366D1 (de) 2004-01-15
DE69913366T2 true DE69913366T2 (de) 2004-05-27

Family

ID=22598011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69913366T Expired - Lifetime DE69913366T2 (de) 1998-10-01 1999-10-01 Lese/schreibe-puffern für ein komplettes verdecken des auffrischen eines halbleiterspeichers und verfahren zum betreiben derselben

Country Status (6)

Country Link
US (2) US5999474A (de)
EP (1) EP1119862B1 (de)
JP (1) JP4025509B2 (de)
DE (1) DE69913366T2 (de)
TW (1) TW476960B (de)
WO (1) WO2000019445A1 (de)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9007790D0 (en) 1990-04-06 1990-06-06 Lines Valerie L Dynamic memory wordline driver scheme
US5796673A (en) 1994-10-06 1998-08-18 Mosaid Technologies Incorporated Delay locked loop implementation in a synchronous dynamic random access memory
US6468855B2 (en) * 1998-08-14 2002-10-22 Monolithic System Technology, Inc. Reduced topography DRAM cell fabricated using a modified logic process and method for operating same
US6898140B2 (en) 1998-10-01 2005-05-24 Monolithic System Technology, Inc. Method and apparatus for temperature adaptive refresh in 1T-SRAM compatible memory using the subthreshold characteristics of MOSFET transistors
US5999474A (en) 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory
US6707743B2 (en) 1998-10-01 2004-03-16 Monolithic System Technology, Inc. Method and apparatus for completely hiding refresh operations in a DRAM device using multiple clock division
US6370073B2 (en) * 1998-10-01 2002-04-09 Monlithic System Technology, Inc. Single-port multi-bank memory system having read and write buffers and method of operating same
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US6504780B2 (en) * 1998-10-01 2003-01-07 Monolithic System Technology, Inc. Method and apparatus for completely hiding refresh operations in a dram device using clock division
US6496437B2 (en) 1999-01-20 2002-12-17 Monolithic Systems Technology, Inc. Method and apparatus for forcing idle cycles to enable refresh operations in a semiconductor memory
US6222785B1 (en) * 1999-01-20 2001-04-24 Monolithic System Technology, Inc. Method and apparatus for refreshing a semiconductor memory using idle memory cycles
US6356485B1 (en) 1999-02-13 2002-03-12 Integrated Device Technology, Inc. Merging write cycles by comparing at least a portion of the respective write cycle addresses
JP3807582B2 (ja) 1999-02-18 2006-08-09 株式会社ルネサステクノロジ 情報処理装置及び半導体装置
JP2000251467A (ja) * 1999-03-02 2000-09-14 Nec Ibaraki Ltd メモリリフレッシュ制御装置およびその制御方法
DE60012081T2 (de) * 1999-05-11 2004-11-18 Fujitsu Ltd., Kawasaki Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
TW522399B (en) * 1999-12-08 2003-03-01 Hitachi Ltd Semiconductor device
US6553552B1 (en) * 2000-01-27 2003-04-22 National Semiconductor Corporation Method of designing an integrated circuit memory architecture
US6151236A (en) * 2000-02-29 2000-11-21 Enhanced Memory Systems, Inc. Enhanced bus turnaround integrated circuit dynamic random access memory device
US6430098B1 (en) * 2000-05-16 2002-08-06 Broadcom Corporation Transparent continuous refresh RAM cell architecture
JP2001332084A (ja) * 2000-05-22 2001-11-30 Fujitsu Ltd 半導体記憶装置及び半導体記憶装置のリフレッシュ方法
JP3871853B2 (ja) 2000-05-26 2007-01-24 株式会社ルネサステクノロジ 半導体装置及びその動作方法
US6552923B2 (en) * 2000-06-13 2003-04-22 Texas Instruments Incorporated SRAM with write-back on read
JP3531592B2 (ja) 2000-07-21 2004-05-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6862654B1 (en) * 2000-08-17 2005-03-01 Micron Technology, Inc. Method and system for using dynamic random access memory as cache memory
US6445636B1 (en) * 2000-08-17 2002-09-03 Micron Technology, Inc. Method and system for hiding refreshes in a dynamic random access memory
US6941415B1 (en) * 2000-08-21 2005-09-06 Micron Technology, Inc. DRAM with hidden refresh
US6779076B1 (en) * 2000-10-05 2004-08-17 Micron Technology, Inc. Method and system for using dynamic random access memory as cache memory
JP2002140890A (ja) * 2000-10-31 2002-05-17 Hitachi Ltd 半導体装置
KR100367690B1 (ko) * 2000-12-04 2003-01-14 (주)실리콘세븐 디램 셀을 이용한 비동기식 에스램 호환 메모리 장치 및그 구동 방법
JP3938842B2 (ja) * 2000-12-04 2007-06-27 富士通株式会社 半導体記憶装置
US6366516B1 (en) 2000-12-29 2002-04-02 Intel Corporation Memory subsystem employing pool of refresh candidates
KR100381615B1 (ko) * 2001-01-04 2003-04-26 (주)실리콘세븐 디램 캐쉬 메모리를 이용하여 리프레쉬 동작을 숨기는에스램 호환 메모리
JP2004288226A (ja) * 2001-03-30 2004-10-14 Internatl Business Mach Corp <Ibm> Dram及びdramのリフレッシュ方法
US7085186B2 (en) * 2001-04-05 2006-08-01 Purple Mountain Server Llc Method for hiding a refresh in a pseudo-static memory
US6829682B2 (en) * 2001-04-26 2004-12-07 International Business Machines Corporation Destructive read architecture for dynamic random access memories
KR100394322B1 (ko) * 2001-05-19 2003-08-09 (주)이엠엘에스아이 리프레쉬 동작을 제어할 수 있는 디램 셀을 이용한 에스램호환 메모리 장치
KR100394587B1 (ko) * 2001-05-19 2003-08-14 (주)실리콘세븐 디램 셀을 이용한 에스램 호환 메모리 장치의 리프레쉬 회로
KR100401235B1 (ko) * 2001-05-22 2003-10-17 (주)실리콘세븐 디램 셀을 이용한 에스램 호환 메모리 장치의 로우 제어회로
JP4768163B2 (ja) 2001-08-03 2011-09-07 富士通セミコンダクター株式会社 半導体メモリ
JP3985889B2 (ja) 2001-08-08 2007-10-03 株式会社ルネサステクノロジ 半導体装置
US6757784B2 (en) * 2001-09-28 2004-06-29 Intel Corporation Hiding refresh of memory and refresh-hidden memory
US7333388B2 (en) * 2001-10-03 2008-02-19 Infineon Technologies Aktiengesellschaft Multi-port memory cells
TW533413B (en) * 2001-10-11 2003-05-21 Cascade Semiconductor Corp Asynchronous hidden refresh of semiconductor memory
WO2003032170A1 (en) 2001-10-11 2003-04-17 Cascade Semiconductor Corporation Asynchronous hidden refresh of semiconductor memory
US6643205B2 (en) * 2001-10-23 2003-11-04 Coremagic, Inc. Apparatus and method for refresh and data input device in SRAM having storage capacitor cell
US6882562B2 (en) * 2001-11-01 2005-04-19 Agilent Technologies, Inc. Method and apparatus for providing pseudo 2-port RAM functionality using a 1-port memory cell
US6643732B1 (en) 2001-11-14 2003-11-04 Etron Technology, Inc. Delayed read/write scheme for SRAM interface compatible DRAM
US6748497B1 (en) * 2001-11-20 2004-06-08 Cirrus Logic, Inc. Systems and methods for buffering memory transactions
US20030097519A1 (en) * 2001-11-21 2003-05-22 Yoon Ha Ryong Memory subsystem
JP4249412B2 (ja) * 2001-12-27 2009-04-02 Necエレクトロニクス株式会社 半導体記憶装置
US6638813B1 (en) 2002-01-29 2003-10-28 Taiwan Semiconductor Manufacturing Company Method of forming a composite spacer to eliminate polysilicon stringers between elements in a pseudo SRAM cell
EP1345234A1 (de) * 2002-03-11 2003-09-17 STMicroelectronics S.r.l. Halbleiterspeicher mit Selbstauffrisch-Modus
US6906978B2 (en) * 2002-03-19 2005-06-14 Intel Corporation Flexible integrated memory
JP2003282823A (ja) * 2002-03-26 2003-10-03 Toshiba Corp 半導体集積回路
US7146454B1 (en) * 2002-04-16 2006-12-05 Cypress Semiconductor Corporation Hiding refresh in 1T-SRAM architecture
US6741515B2 (en) * 2002-06-18 2004-05-25 Nanoamp Solutions, Inc. DRAM with total self refresh and control circuit
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
KR100455393B1 (ko) * 2002-08-12 2004-11-06 삼성전자주식회사 리프레시 플래그를 발생시키는 반도체 메모리 장치 및반도체 메모리 시스템.
KR100481819B1 (ko) * 2002-08-27 2005-04-11 (주)실리콘세븐 디램 셀을 사용하며, 칩 디스에이블 구간 중에 발생하는신호에 의하여 리프레쉬가 수행되도록 제어되는 동기식에스램 호한 메모리
US20040064657A1 (en) * 2002-09-27 2004-04-01 Muraleedhara Navada Memory structure including information storage elements and associated validity storage elements
KR100482380B1 (ko) * 2002-11-11 2005-04-14 (주)실리콘세븐 메모리 뱅크별 기입 동작의 수행이 가능한 에스램 호환 메모리 및 그 구동방법
US7073026B2 (en) * 2002-11-26 2006-07-04 Advanced Micro Devices, Inc. Microprocessor including cache memory supporting multiple accesses per cycle
US6795364B1 (en) * 2003-02-28 2004-09-21 Monolithic System Technology, Inc. Method and apparatus for lengthening the data-retention time of a DRAM device in standby mode
JP2004310879A (ja) * 2003-04-04 2004-11-04 Renesas Technology Corp 半導体記憶装置
JP4241175B2 (ja) 2003-05-09 2009-03-18 株式会社日立製作所 半導体装置
DE10329369B4 (de) * 2003-06-30 2010-01-28 Qimonda Ag Schaltung und Verfahren zum Auffrischen von Speicherzellen eines dynamischen Speichers
US6985398B2 (en) 2003-09-26 2006-01-10 Infineon Technologies Ag Memory device having multiple array structure for increased bandwidth
US20050067934A1 (en) * 2003-09-26 2005-03-31 Ishikawajima-Harima Heavy Industries Co., Ltd. Discharge apparatus, plasma processing method and solar cell
US6859407B1 (en) * 2004-01-14 2005-02-22 Infineon Technologies Ag Memory with auto refresh to designated banks
WO2005076137A1 (en) * 2004-02-05 2005-08-18 Research In Motion Limited Memory controller interface
US20050226079A1 (en) * 2004-04-08 2005-10-13 Yiming Zhu Methods and apparatus for dual port memory devices having hidden refresh and double bandwidth
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
KR100564633B1 (ko) 2004-09-25 2006-03-28 삼성전자주식회사 향상된 동작 성능을 가지는 반도체 메모리 장치 및 이에대한 액세스 제어 방법
KR100652380B1 (ko) * 2004-10-25 2006-12-01 삼성전자주식회사 버퍼를 이용하여 리프레쉬하는 메모리 장치 및 그 방법
US7307912B1 (en) * 2004-10-25 2007-12-11 Lattice Semiconductor Corporation Variable data width memory systems and methods
KR100607334B1 (ko) * 2004-12-30 2006-08-01 주식회사 하이닉스반도체 슈도 에스램의 리프레쉬 제어 회로
US7685372B1 (en) * 2005-01-13 2010-03-23 Marvell International Ltd. Transparent level 2 cache controller
US8347034B1 (en) 2005-01-13 2013-01-01 Marvell International Ltd. Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7323379B2 (en) * 2005-02-03 2008-01-29 Mosys, Inc. Fabrication process for increased capacitance in an embedded DRAM memory
US7620783B2 (en) * 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
US7640392B2 (en) * 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
US20060190678A1 (en) * 2005-02-22 2006-08-24 Butler Douglas B Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag
US7506100B2 (en) * 2005-02-23 2009-03-17 United Memories, Inc. Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a data cache and separate read and write registers and tag blocks
KR100672029B1 (ko) * 2005-05-27 2007-01-19 삼성전자주식회사 Dram히든 리프레쉬 동작 시 발생되는 동작 시간 지연을감소시킬 수 있는 장치와 방법
US7274618B2 (en) * 2005-06-24 2007-09-25 Monolithic System Technology, Inc. Word line driver for DRAM embedded in a logic process
JP4518563B2 (ja) * 2005-09-02 2010-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 半導体記憶装置
DE102005048582A1 (de) * 2005-10-06 2007-04-12 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
US7349258B2 (en) * 2005-12-06 2008-03-25 Sandisk Corporation Reducing read disturb for non-volatile storage
KR101197624B1 (ko) * 2006-01-18 2012-11-07 에스케이하이닉스 주식회사 반도체 메모리 소자의 뱅크 제어 회로
US20070170489A1 (en) * 2006-01-26 2007-07-26 Fang Gang-Feng Method to increase charge retention of non-volatile memory manufactured in a single-gate logic process
US7382658B2 (en) * 2006-01-26 2008-06-03 Mosys, Inc. Non-volatile memory embedded in a conventional logic process and methods for operating same
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US20080162869A1 (en) * 2006-12-29 2008-07-03 Intel Corporation Address hashing to help distribute accesses across portions of destructive read cache memory
US7613061B2 (en) * 2007-11-30 2009-11-03 Agere Systems Inc. Method and apparatus for idle cycle refresh request in DRAM
US8131953B2 (en) * 2007-12-17 2012-03-06 International Business Machines Corporation Tracking store ordering hazards in an out-of-order store queue
US8112604B2 (en) * 2007-12-17 2012-02-07 International Business Machines Corporation Tracking load store ordering hazards
US20090182977A1 (en) * 2008-01-16 2009-07-16 S. Aqua Semiconductor Llc Cascaded memory arrangement
JP5189887B2 (ja) 2008-04-28 2013-04-24 ローム株式会社 強誘電体メモリ装置およびその動作方法
JP5237731B2 (ja) * 2008-09-10 2013-07-17 スパンション エルエルシー メモリシステム、メモリ装置、メモリアクセス方法
US9442846B2 (en) * 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
US8433880B2 (en) 2009-03-17 2013-04-30 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
TWI425508B (zh) * 2009-04-23 2014-02-01 Orise Technology Co Ltd 具隱藏更新及雙埠能力之sram相容嵌入式dram裝置
US8108624B2 (en) * 2009-05-27 2012-01-31 Via Technologies, Inc. Data cache with modified bit array
US8108621B2 (en) * 2009-05-27 2012-01-31 Via Technologies, Inc. Data cache with modified bit array
US8347027B2 (en) * 2009-11-05 2013-01-01 Honeywell International Inc. Reducing power consumption for dynamic memories using distributed refresh control
WO2011075167A1 (en) * 2009-12-15 2011-06-23 Memoir Systems,Inc. System and method for reduced latency caching
US9496009B2 (en) 2012-06-06 2016-11-15 Mosys, Inc. Memory with bank-conflict-resolution (BCR) module including cache
US20130329553A1 (en) * 2012-06-06 2013-12-12 Mosys, Inc. Traffic metering and shaping for network packets
US8484418B2 (en) * 2010-10-22 2013-07-09 Intel Corporation Methods and apparatuses for idle-prioritized memory ranks
US8570790B2 (en) * 2011-01-13 2013-10-29 Cypress Semiconductor Corporation Memory devices and methods for high random transaction rate
US9329834B2 (en) 2012-01-10 2016-05-03 Intel Corporation Intelligent parametric scratchap memory architecture
US8824196B2 (en) 2012-03-30 2014-09-02 International Business Machines Corporation Single cycle data copy for two-port SRAM
US9213640B2 (en) * 2013-04-17 2015-12-15 Advanced Micro Devices, Inc. Promoting transactions hitting critical beat of cache line load requests
US9449032B2 (en) * 2013-04-22 2016-09-20 Sap Se Multi-buffering system supporting read/write access to different data source type
WO2015065426A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Memory access for busy memory
US10020045B2 (en) * 2013-11-26 2018-07-10 Micron Technology, Inc. Partial access mode for dynamic random access memory
US9916261B2 (en) * 2014-05-19 2018-03-13 Infineon Technologies Ag Randomized memory access
KR102161311B1 (ko) * 2014-12-03 2020-10-05 에스케이하이닉스 주식회사 메모리 컨트롤러
FR3032814B1 (fr) * 2015-02-18 2018-02-02 Upmem Circuit dram muni d'un processeur integre
US11237758B2 (en) * 2016-08-06 2022-02-01 Wolley Inc. Apparatus and method of wear leveling for storage class memory using address cache
US10229047B2 (en) * 2016-08-06 2019-03-12 Wolley Inc. Apparatus and method of wear leveling for storage class memory using cache filtering

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330852A (en) 1979-11-23 1982-05-18 Texas Instruments Incorporated Semiconductor read/write memory array having serial access
JPS58155596A (ja) 1982-03-10 1983-09-16 Hitachi Ltd ダイナミツク型mosram
US4625301A (en) 1983-11-30 1986-11-25 Tandy Corporation Dynamic memory refresh circuit
US4810643A (en) 1985-08-23 1989-03-07 Kirin- Amgen Inc. Production of pluripotent granulocyte colony-stimulating factor
JPH0612616B2 (ja) 1986-08-13 1994-02-16 日本テキサス・インスツルメンツ株式会社 半導体記憶装置
US5033027A (en) 1990-01-19 1991-07-16 Dallas Semiconductor Corporation Serial DRAM controller with multi generation interface
EP1199639A3 (de) * 1990-12-25 2004-12-08 Mitsubishi Denki Kabushiki Kaisha Halbleiterspeichervorrichtung mit einem grossen Speicher und einem Hochgeschwindigkeitsspeicher
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
JPH04372790A (ja) * 1991-06-21 1992-12-25 Sharp Corp 半導体記憶装置
DE69324508T2 (de) 1992-01-22 1999-12-23 Enhanced Memory Systems Inc DRAM mit integrierten Registern
GB2265035B (en) 1992-03-12 1995-11-22 Apple Computer Method and apparatus for improved dram refresh operations
US5471601A (en) * 1992-06-17 1995-11-28 Intel Corporation Memory device and method for avoiding live lock of a DRAM with cache
US5617551A (en) 1992-09-18 1997-04-01 New Media Corporation Controller for refreshing a PSRAM using individual automatic refresh cycles
JP3026474B2 (ja) 1993-04-07 2000-03-27 株式会社東芝 半導体集積回路
KR950014089B1 (ko) 1993-11-08 1995-11-21 현대전자산업주식회사 동기식 디램의 히든 셀프 리프레쉬 방법 및 장치
US5450364A (en) 1994-01-31 1995-09-12 Texas Instruments Incorporated Method and apparatus for production testing of self-refresh operations and a particular application to synchronous memory devices
JP3165585B2 (ja) 1994-05-13 2001-05-14 シャープ株式会社 情報処理装置
KR0135699B1 (ko) * 1994-07-11 1998-04-24 김주용 셀프-리프레쉬 가능한 듀얼포트 동적 캠셀 및 리프레쉬장치
JPH08129882A (ja) * 1994-10-31 1996-05-21 Mitsubishi Electric Corp 半導体記憶装置
TW358907B (en) 1994-11-22 1999-05-21 Monolithic System Tech Inc A computer system and a method of using a DRAM array as a next level cache memory
US5737748A (en) 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US5873114A (en) 1995-08-18 1999-02-16 Advanced Micro Devices, Inc. Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles
JP3352577B2 (ja) 1995-12-21 2002-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置
EP0794497A3 (de) 1996-03-08 2000-10-11 Matsushita Electric Industrial Co., Ltd. Speicherauffrischungssteuerverfahren und -gerät
US5748547A (en) 1996-05-24 1998-05-05 Shau; Jeng-Jye High performance semiconductor memory devices having multiple dimension bit lines
US5784705A (en) 1996-07-15 1998-07-21 Mosys, Incorporated Method and structure for performing pipeline burst accesses in a semiconductor memory
JP3706212B2 (ja) * 1996-10-30 2005-10-12 沖電気工業株式会社 メモリ装置
US5940851A (en) 1996-11-27 1999-08-17 Monolithic Systems, Inc. Method and apparatus for DRAM refresh using master, slave and self-refresh modes
KR100243335B1 (ko) * 1996-12-31 2000-02-01 김영환 독립적인 리프레쉬 수단을 가지는 데이지 체인 구조의 반도체 장치
US5822265A (en) 1997-07-29 1998-10-13 Rockwell Semiconductor Systems, Inc. DRAM controller with background refresh
US5999474A (en) 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory

Also Published As

Publication number Publication date
TW476960B (en) 2002-02-21
WO2000019445B1 (en) 2000-05-25
US20020056022A1 (en) 2002-05-09
JP2002526882A (ja) 2002-08-20
JP4025509B2 (ja) 2007-12-19
EP1119862A1 (de) 2001-08-01
US6449685B1 (en) 2002-09-10
WO2000019445A1 (en) 2000-04-06
US5999474A (en) 1999-12-07
DE69913366D1 (de) 2004-01-15
EP1119862B1 (de) 2003-12-03

Similar Documents

Publication Publication Date Title
DE69913366T2 (de) Lese/schreibe-puffern für ein komplettes verdecken des auffrischen eines halbleiterspeichers und verfahren zum betreiben derselben
DE10345383B4 (de) Bankadreßabbildung gemäß einer Bankhaltezeit bei dynamischen Direktzugriffsspeichern
DE69133361T2 (de) Halbleiterspeichervorrichtung mit einem Speicher mit großer Speicherkapazität und einem Hochgeschwindigkeits-Speicher
DE4432217C2 (de) Halbleiterspeichereinrichtung
DE60214773T2 (de) Schaltung und verfahren zur verminderung des stromverbrauchs in einem inhaltsadressierbaren speicher
DE60112701T2 (de) Multiportspeicher auf Basis von DRAM
US5249282A (en) Integrated cache memory system with primary and secondary cache memories
DE69932875T2 (de) Verfahren und Anordnung zur Benutzung eines 1-T SRAM-Kompatibelspeichers
US6370073B2 (en) Single-port multi-bank memory system having read and write buffers and method of operating same
US6415353B1 (en) Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
DE3834759A1 (de) Halbleiterspeichereinrichtung mit ablage-speicher und betriebsverfahren
US20030126392A1 (en) A method of controlling page mode access
US8369168B2 (en) Devices and system providing reduced quantity of interconnections
US4912631A (en) Burst mode cache with wrap-around fill
DE19951677B4 (de) Halbleiterspeichervorrichtung
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE102006002888B4 (de) Direktzugriffsspeicher mit niedriger Anfangslatenz
DE10321441A1 (de) Kombinierter Befehlssatz
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE10214707A1 (de) Auffrisch-Mechanismus in dynamischen Speichern
JP4304176B2 (ja) 集積回路装置
DE112004002181T5 (de) Verfahren und Schaltungskonfiguration zum Auffrischen von Daten in einem Halbleiterspeicher
DE19740223A1 (de) Verfahren und System zur Auffrischung von Speicher
DE60315190T2 (de) Vorladevorschlag
DE102007019548A1 (de) Ein Verfahren und eine Vorrichtung zur frühzeitigen Schreibbeendigung bei einem Halbleiterspeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition