[go: up one dir, main page]

DE60313323T2 - Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern - Google Patents

Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern Download PDF

Info

Publication number
DE60313323T2
DE60313323T2 DE60313323T DE60313323T DE60313323T2 DE 60313323 T2 DE60313323 T2 DE 60313323T2 DE 60313323 T DE60313323 T DE 60313323T DE 60313323 T DE60313323 T DE 60313323T DE 60313323 T2 DE60313323 T2 DE 60313323T2
Authority
DE
Germany
Prior art keywords
sequence length
sequence
memory
access
memory device
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
DE60313323T
Other languages
English (en)
Other versions
DE60313323D1 (de
Inventor
Shwetal San Jose PATEL
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE60313323D1 publication Critical patent/DE60313323D1/de
Application granted granted Critical
Publication of DE60313323T2 publication Critical patent/DE60313323T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • Technisches Gebiet
  • Diese Erfindung betrifft Computersysteme und betrifft insbesondere Sequenz- bzw. Burst-Modi, die in DRAM's (dynamische Speicher mit wahlfreiem Zugriff) verwendet werden.
  • Hintergrund der Erfindung
  • US-B-6 393 500 offenbart einen Sequenz- bzw. Burst- konfigurierbaren Datenbus. Die Buseffizienz wird verbessert, indem eine Busleiteinrichtung bzw. ein Busmaster mit Information versorgt wird, um die Länge und die Breite von Burst- bzw. Sequenztransaktionen über den Bus von und zu Zieleinrichtungen einzustellen. Wenn ein spezielles Zielgerät nicht in der Lage ist, eine Sequenz mit voller Länge und voller Breite über den Bus als Transaktion zu übertragen, dann konfiguriert der Busmaster eine Sequenz, um die Sequenzverarbeitungsfähigkeiten dieses speziellen Zielgeräts zu nutzen.
  • DRAM-(dynamischer Speicher mit wahlfreiem Zugriff) Bauelemente beinhalten häufig ein Modusregister. Ein in dem Modusregister des DRAM-Bauelements gespeicherter Wert steuert die Sequenzlänge bzw. Burstlänge dieses DRAM-Bauelements. Typischerweise wird der Wert des Modusregisters initialisiert, um während der Initialisierung eine spezielle Sequenzlänge anzugeben. Eine Speichersteuerung kann den in dem Register gespeicherten Wert aktualisieren, um die Einstellung für die Sequenzlänge zu ändern. Jedoch kann das Modifizieren der Sequenzlängeneinstellung ein zeitaufwendiger Prozess sein. Um Beispielsweise das Modusregister zu programmieren, wartet eine Speichersteuerung, bis alle DRAM-Zugriffe abgeschlossen sind und gibt dann einen Befehl zum Laden des Modusregisters aus, indem gewisse Befehlssignale aktiviert werden (beispielsweise/CS (Chip select), /RAS (Reihenadressenaktivierung), /CAS (Spaltenadressenaktivierung) und /WE (Schreibaktivierung)), während die korrekten Operationscodierungen bzw. OP-Codes auf gewisse Anschlüsse (beispielsweise die Adressen- und BA0-Anschlüsse) gelegt werden. Nach dem Ausgeben des Befehls zum Laden des Modusregisters muss die Speichersteuerung eine gewisse Anzahl an Zyklen abwarten, bevor neue DRAM-Zugriffe initiiert werden. Somit kann das Ändern der Sequenzlängeneinstellung auf diese Weise eine nicht erwünschte Leistungseinbuße für anhängige Zugriffe mit sich bringen.
  • Eine Speichersteuerung kann Zugriffsanforderungen empfangen, die unterschiedliche Sequenzlängen aufweisen. Beispielsweise können AGP-(fortschrittliche Graphikanschluss-) Transaktionen 32 Schreibblöcke beinhalten, während Prozessortransaktionen 64 Byte-Blöcke beinhalten können. In einigen DRAM-Bauelementen können 32 Byteblockzugriffe in 4 Sequenzen abgearbeitet werden, während 64 Byteblöcke in 8 Sequenzen erfüllt werden können. Da die DRAM-Sequenzlänge durch den in dem Modusregister gespeicherten Wert festgelegt ist, wird entweder Bandbreite verschwendet (wenn die Sequenzlänge auf 8 festgelegt wird und 32 Byteblock-Transaktionen ausgeführt werden) oder die Speichersteuerung muss erneut Befehle ausgeben (wenn die Sequenzlänge auf 4 festgelegt ist und 64 Byteblock-Transaktionen ausgeführt werden) für Transaktionen mit einer speziellen Länge. Jedoch ist es möglicherweise noch ineffizienter, die Sequenzlänge in dem Sequenzmodusregister zu ändern, um damit Transaktionen mit einer speziellen Sequenzlänge zu handhaben. Es ist daher vorteilhaft, eine dynamische Änderung der Sequenzlänge auf Grundlage einzelner Zugriffe zur Verfügung zu haben, ohne dass das Modusregister zu aktualisieren ist.
  • Gegenwärtig gibt es Datenmaskierungstechniken, die es einem Speicherelement ermöglichen, gewisse Daten während der Schreibzugriffe zu maskieren, so dass Daten mit einer Sequenzlänge, die kleiner ist als die Sequenzlänge gemäß der Einstellung in dem Modusregister, tatsächlich in das Speicherelement geschrieben werden. Jedoch unterstützen diese Datenmaskierungsverfahren keine Lesezugriffe mit unterschiedlichen Sequenzlängen und es werden auch nicht Zugriffe unterstützt mit einer Sequenzlänge, die größer ist als sie in dem Modusregister angegeben ist. Ferner geben diese Datenmaskierungsverfahren häufig an, welche Daten zu maskieren sind, indem zusätzliche Anschlussstifte in dem Speicherbauelement verwendet werden, was unter gewissen Umständen nicht wünschenswert ist.
  • Überblick über die Erfindung
  • Es werden zahlreiche Ausführungsformen eines Speicherbauelements vorgestellt, um auf einen oder mehrere Befehlskodierungen zu reagieren, die andere Sequenzlängen als die durch die aktuelle Sequenzlängeneinstellung für das Speicherbauelement angegebene Sequenzlänge spezifizieren.
  • In einer Ausführungsform umfasst ein Speicherbauelement ein Speicherarray und ein Modusregister, das ausgebildet ist, einen Wert zu speichern, der eine aktuelle Sequenzlänge angibt. Das Speicherarray kann ausgebildet sein, einen ersten Sequenzzugriff mit einer ersten Sequenzlänge in Reaktion auf das Empfangen einer ersten Befehlskodierung, und einen zweiten Sequenzzugriff mit einer zweiten Sequenzlänge in Reaktion auf das Empfangen einer zweiten Befehlscodierung auszuführen. Die zweite Sequenzlänge ist ungleich der aktuellen Sequenzlänge.
  • Es können diverse Ausführungsformen einer Speichersteuerung eingerichtet werden, um eine oder mehrere Befehlscodierungen zu erzeugen, die andere Sequenzlängen spezifizieren als die Sequenzlänge, die von der aktuellen Sequenzlängeneinstellung für ein Zielspeichergerät angegeben ist. Beispielsweise umfasst in einer Ausführungsform eine Speichersteuerung einen Adressensignalgenerator, der ausgebildet ist, Adressensignale in Reaktion auf eine Speicherzugriffsanforderung zu erzeugen, und umfasst einen Befehlskodierer. Der Befehlskodierer ist ausgebildet, in Reaktion auf eine Speicherzugriffsanforderung eine erste Befehlskodierung zu erzeugen, wenn ein durch die Speicherzugriffsanforderung angeforderter Sequenzzugriff eine erste Sequenzlänge aufweist. Wenn der von der Speicherzugriffsanforderung angeforderte Sequenzzugriff eine zweite Sequenzlänge besitzt, erzeugt der Befehlskodierer eine zweite Befehlskodierung. Der Befehlskodierer kann ausgebildet sein, die erste Befehlskodierung und die zweite Befehlskodierung zu erzeugen, wenn eine Sequenzlängeneinstellung für ein von der Speicherzugriffsanforderung angesprochenes Speicherbauelement einen ersten Wert besitzt, und somit gibt mindestens eine der Befehlscodierungen eine Sequenzlänge an, die nicht jener entspricht, die durch die aktuelle Sequenzlängeneinstellung des Speicherbauelement angegeben ist.
  • Ein System umfasst eine Speichersteuerung und ein Speicherbauelement. Die Speichersteuerung ist ausgebildet, eine erste Befehlskodierung in Reaktion auf das Empfangen einer ersten Speicherzugriffsanforderung mit einer ersten Sequenzlänge zu erzeugen und eine zweite Befehlskodierung in Reaktion auf das Empfangen einer zweiten Speicherzugriffsanforderung mit einer zweiten Sequenzlänge zu erzeugen. Das Speicherbauelement ist ausgebildet, einen ersten Sequenzzugriff mit der ersten Sequenzlänge in Reaktion auf das Empfangen der ersten Befehlskodierung auszuführen und einen zweiten Sequenzzugriff mit der zweiten Sequenzlänge in Reaktion auf das Empfangen der zweiten Befehlskodierung auszuführen. Die zweite Sequenzlänge unterscheidet sich von einer aktuellen Sequenzlänge, die durch die Sequenzlängeneinstellung für das Speicherbauelement angegeben ist.
  • Eine Ausführungsform eines Verfahrens umfasst das Empfangen einer Anforderung für ein Speicherbauelement, einen Sequenzzugriff mit einer ersten Sequenzlänge auszuführen. Wenn die Sequenzlänge eine erste Sequenzlänge ist, die durch eine aktuelle Sequenzlängeneinstellung des Speicherbauelements angegeben ist, wird eine erste Befehlskodierung dem Speicherbauelement zugeführt. Wenn die Sequenzlänge eine zweite Sequenzlänge ist, die nicht gleich der ersten Sequenzlänge ist, die durch die Sequenzlängeneinstellung angegeben ist, wird eine zweite Befehlskodierung dem Speicherbauelement zugeleitet. Das Speicherbauelement führt den ersten Sequenzzugriff mit der ersten Sequenzlänge in Reaktion auf die erste Befehlskodierung aus und führt den Sequenzzugriff mit der zweiten Sequenzlänge in Reaktion auf die zweite Befehlskodierung aus.
  • In einigen Ausführungsformen umfasst ein Speicherbauelement ein Speicherarray und ein Modusregister, das zum Speichern eines Wertes ausgebildet ist, der eine aktuelle Sequenzlänge angibt. Das Speicherarray ist ausgebildet, einen kodierten Befehl zu empfangen, der eine Sequenzlänge bezeichnet. In Reaktion auf das Empfangen des kodierten Befehls führt das Speicherarray einen Sequenzzugriff mit der ersten Sequenzlänge aus, die durch den kodierten Befehl gekennzeichnet ist. Die Sequenzlänge, die durch den kodierten Befehl angegeben ist, unterscheidet sich von der aktuellen Sequenzlänge.
  • Kurze Beschreibung der Zeichnungen
  • Ein besseres Verständnis der vorliegenden Erfindung kann erreicht werden, wenn die folgende detaillierte Beschreibung in Verbindung mit den folgenden Zeichnungen studiert wird, in denen:
  • 1 eine Ausführungsform eines Speichersystems zeigt;
  • 2a bis 2c Zeitablaufdiagramme darstellen, die die Funktionsweise einer Ausführungsform eines Speichersystems zeigen;
  • 3 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum Betreiben eines Speichersystems ist; und
  • 4 bis 5 Blockansichten von Ausführungsformen von Computersystemen sind, die eine Ausführungsform eines Speichersystems, etwa wie es in 1 gezeigt ist, enthalten.
  • Obwohl die Erfindung diversen Modifizierungen und Alternativen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen dargestellt und hierin detailliert beschrieben. Es sollte jedoch beachtet werden, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die Erfindung auf die spezielle offenbarte Form einzuschränken, sondern die Erfindung soll alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Schutzbereichs der vorliegenden Erfindung, wie sie durch die angefügten Patentansprüche definiert ist, liegen.
  • Art bzw. Arten zum Ausführen der Erfindung
  • 1 zeigt eine Ausführugsform eines Speichersystems 50, das eine Speichersteuerung 100 und ein Speicherbauelement 150 aufweist. Die Speichersteuerung 100 ist ausgebildet, eine oder mehrere unterschiedliche Befehlskodierungen zu erzeugen, die das Speicherbauelement 150 unterweisen, Zugriffe mit Sequenzlängen auszuführen, die sich von den Sequenzlängen unterscheiden, die in einem Modusregister 150 angegeben sind. Das Speicherbauelement 150 ist ausgebildet, auf die unterschiedlichen Befehlskodierungen zu reagieren, indem Zugriffe mit den Sequenzlängen ausgeführt werden, die in den Befehlscodierungen spezifiziert sind, unabhängig von der in dem Modusregister 154 angegebenen Sequenzlänge.
  • Das Speicherbauelement 150 kann ein DRAM-(dynamischer Speicher mit wahlfreiem Zugriff) Bauelement, etwa ein DDR DRAM (mit doppelter Datenrate), SDRAM (synchroner DRAM), VDRAM (Video-DRAM), RDRAM (RAMBUS-DRAM), FCRAM (Schnellzyklus-RAM), etc. sein. Das Speicherbauelement 150 kann mehrere Speichermodule (beispielsweise SIMM oder DIMM) aufweisen. Das Speicherbauelement 150 kann Speicherelemente in einem Speicherarray 152 aufweisen, die Datenwerte speichern. Jedes Speicherelement kann ein oder mehrere Datenbits speichern. Lese- und Schreibzugriffe werden an den Datenwerten ausgeführt, die in dem Speicherarray 152 gespeichert sind.
  • Wenn die Speichersteuerung 100 eine Speicherzugriffsanforderung von einem Gerät bzw. einer Einrichtung (beispielsweise einer CPU oder einer Graphiksteuerung) über einen Systembus empfängt, dekodiert sie die Anforderung und wandelt die Systembusadresse in die geeignete Speicheradresse für das Speicherbauelement 150 um. Die Systembusadresse kann in die geeignete Adresse für das Speicherbauelement (beispielsweise einer Adresse, die eine Bank und/oder eine Spalte angibt) mittels eines Adressensignalgenerators 101 umgewandelt werden, und die geeignete Befehlskodierung, die die Art des auszuführenden Zugriffs angibt, kann durch einen Befehlskodierer 103 erzeugt werden. Die Speichersteuerung 100 liefert die geeignete Adresse an das Speicherbauelement 150 über Speicheradressensignale 182. In der dargestellten Ausführungsform sind zwei Gruppen aus Adressensignalen vorhanden: BA0-BA1 und A0-A11. Zu beachten ist, dass in anderen Ausführungsformen andere Gruppen und Anzahlen an Adressensignalen verwendet werden können. Die Speichersteuerung 100 liefert ferner eine geeignete Befehlskodierung an das Speicherbauelement, um anzugeben, welche Art von Operation(en) an den spezifizierten Adressen auszuführen sind. Es werden unterschiedliche Befehlskodierungen spezifiziert unter Anwendung unterschiedlicher Werte einer Gruppe aus Steuersignalen 180. In der dargestellten Ausführungsform steuert die Speichersteuerung 100 die Werte von mindestens vier Steuersignalen, die bei niedrigem Pegel aktiv sind: /S (Chipauswahl bzw. Chip select), /CAS (Spaltenadressenaktivierung), /RAS (Reihenadressenaktivierung) und /WE (Schreibaktivierung), um die geeigneten Befehlskodierungen zu erzeugen (zu beachten ist, dass auch andere Steuersignalwerte gesteuert werden können).
  • Zugriffe können von der Speichersteuerung 100 initiiert werden, indem eine aktive Befehlskodierung dem Speicherbauelement 150 über Steuersignale 182 zugeleitet wird. Ein aktiver Befehl kann eine Seite (z. B. eine Reihe) in einer speziellen Bank für den nachfolgenden Zugriff öffnen (oder aktivieren). Die Speichersteuerung 100 liefert Adressensignale 182 an das Speicherbauelement 150, die angeben, welche Bank und welche Seite zu aktivieren sind. Z. B. kann der Wert der BA0-BA1-Signale die Bank auswählen, und die Werte der Signale A0-A11 können die Seite angeben. Die aktivierte Seite bleibt für Zugriffe aktiv (oder geöffnet), bis ein Vorspannungsbefehl an diese Bank ausgegeben wird. Eine Vorspannungsbefehlskodierung wird auch ausgegeben, bevor eine andere Seite in der gleichen Bank geöffnet wird.
  • Nachdem eine Seite geöffnet ist, wird eine Lese- oder Schreibbefehlskodierung an das Speicherbauelement 150 gesendet. Ein Lesebefehl wird verwendet, um einen Sequenzlesezugriff auf eine aktive Seite zu initiieren. Die Speichersteuerung 100 kann gewisse Werte der Adressensignale 182 mit dem Lesebefehl bereitstellen, um die auszugebenden Daten anzugeben. Z. B. kann der Wert der BA0- und BA1-Eingangssignale die Bank angeben, auf die zuzugreifen ist, und die Adresse, die durch die Eingangssignale A0-A11 geliefert wird, kann den Startspeicherplatz innerhalb der Seite (beispielsweise eine Spalte) für eine Sequenzausleseoperation auswählen. Es können unterschiedliche Lesebefehlskodierungen, die eine Sequenzauslesung mit unterschiedlichen Sequenzlängen anfordern, bereitgestellt werden.
  • Die Speichersteuerung 100 erzeugt Werte der Befehlssignale 180 zur Spezifizierung eines Schreibbefehls, um einen Schreibzugriff auf eine aktive Seite zu initiieren. Eine weitere Gruppe aus Adressenwerten kann mit dem Schreibbefehl bereitgestellt werden, um die zu schreibenden Daten auszuwählen. Beispielsweise kann der Wert der BA0- und BA1-Eingangssignale die Bank angeben, auf die zuzugreifen ist, und die in den Eingangssignalen A0-A11 bereitgestellte Adresse kann die Anfangsstelle der Spalte für einen Sequenzschreibvorgang angeben. Es können unterschiedliche Schreibbefehlkodierungen, die unterschiedliche Sequenzlängen angeben, bereitgestellt werden.
  • Die Sequenzzugriffe beginnen an einer ausgewählten Stelle und werden entsprechend einer programmierten oder angeforderten Anzahl an Sequenzen (wie dies durch die spezielle Befehlskodierung eines Lese- oder Schreibbefehls angegeben ist) fortgesetzt. Eine Reihe aus Sequenzen kann so programmiert werden, dass eine aufeinanderfolgende Sequenzreihe oder eine verschachtelte Sequenzreihe erhalten wird. Konventionelle DRAM's können so programmiert sein, dass sie eine Sequenz aus 1, 2, 4, 8 oder mehr Bits lesen oder Schreiben. DRAM's unterstützten typischerweise auch eine Pipeline-Verarbeitung, wodurch es möglich ist, dass DRAM's- und Steuersignale für eine Speichertransaktion empfangen, während eine vorhergehende Speicheranforderung ausgeführt wird.
  • Ein Modusregister 154, das in dem Speicherbauelement 150 enthalten ist, kann verwendet werden, um den speziellen Betriebsmodus des Speicherbauelements zu definieren. Wie zuvor erläutert ist, kann das Modusregister 154 die Auswahl einer Sequenzlängeneinstellung ermöglichen. Ferner kann das Modusregister 154 die Auswahl einer Sequenzart (se quenziell oder verschachtelt), eine CAS-Verarbeitungszeit und einen Betriebsmodus ermöglichen. Somit können die Einstellungen des Modusregisters 154 steuern, wie das Speicherarray 152 Zugriffe ausführt.
  • Das Modusregister 154 kann durch die Speichersteuerung 100 programmiert werden, indem ein Modusregistereinstellbefehl an das Speicherbauelement 150 gesendet wird. Werte der Adressensignale 182, die dem Speicherbauelement 150 mit dem Modusregistereinstellbefehl zugeleitet werden, können einen neuen Wert angeben, der in dem Modusregister 154 zu speichern ist. Beispielsweise können die Adressenbits A0-A2 verwendet werden, um die Sequenzlänge zu spezifizieren, wenn das Modusregister 154 programmiert wird. Die in dem Modusregister 154 spezifizierte Sequenzlänge bestimmt die maximale Anzahl an Spaltenpositionen, die während eines typischen Lesebefehls oder Schreibbefehls ansprechbar sind. In einer Ausführungsform können die Sequenzlängen von 2, 4 oder 8 Spaltenstellen sowohl für der Reihe nach angeordnete als auch verschachtelte Sequenzarten angegeben werden. Das Modusregister 154 kann mit einem neuen Wert geladen werden, wenn alle Bänke im Leerlauf sind und aktuell keine Sequenzen verarbeitet werden. Nach dem Programmieren des Modusregisters 154 kann es unter Umständen erforderlich sein, dass die Speichersteuerung 100 eine spezifizierte Zeitdauer wartet, bevor nachfolgende Operationen in Gang gesetzt werden.
  • Um Zugriffe mit unterschiedlichen Sequenzlängen ausführen zu können, ohne dass die Modusregistereinstellungen zu ändern sind, ist das Speicherbauelement 150 ausgebildet, Sequenzzugriffe mit unterschiedlichen Sequenzlängen in Reaktion auf unterschiedliche Befehlskodierungen auszuführen. Jede Befehlskodierung wird als ein spezieller Satz aus Steuersignalwerten erzeugt und gibt sowohl die Art des auszuführenden Zugriffs als auch die Sequenzlänge an. Die Befehlskodierungen können in vielen Ausführungsformen aus nicht benutzten Kombinationen bestehender Steuersignalwerte (z. B. Werte von S, CAS, RAS und WE) ausgewählt werden, so dass ein weiterer Anschlussstift für das Speicherbauelement 150 nicht erforderlich ist. Das Speicherbauelement 150 kann ausgebildet sein, zwischen den unterschiedlichen Befehlskodierungen zu unterscheiden und auf jede unterschiedliche Befehlskodierung zu reagieren, indem ein Zugriff mit der spezifizierten Sequenzlänge ausgeführt wird. Eine Befehlskodierung kann angeben, dass die angeforderte Sequenzlänge durch die Sequenzlängeneinstellung in dem Modusregister 154 festgelegt wird.
  • Tabelle 1 zeigt eine Liste einiger der Befehlskodierungen, die dem Speicherbauelement 150 durch die Speichersteuerung 100 in einer Ausführungsform zugeführt werden. ADDR enthält die Adressensignale BA0-BA1 und A0-A11. Tabelle 1: Befehlskodierungen
    Figure 00090001
  • Wie in Tabelle 1 gezeigt ist, kann eine Ausführungsform eines Speichersystems zwei unterschiedliche Lesebefehlskodierungen unterstützen. Eine Lesebefehlskodierung gibt eine spezielle Sequenzlänge (8) an, während die andere Kodierung angibt, dass die in dem Modusregister 154 spezifizierte Sequenzlänge verwendet werden soll. In einer alternativen Ausführungsform gibt die zweite Kodierung an, dass eine spezifizierte Sequenzlänge (z. B. 4) verwendet werden sollte. Zu beachten ist, dass in dieser Ausführungsform diese Befehlskodierungen spezifiziert werden können, ohne dass zusätzliche Steuersignale oder zusätzliche Adressensignale verwendet werden. Auch ist zu beachten, dass das Speicherbauelement 150 Sequenzzugriffe mit den Sequenzlängen ausführt, die in der jeweiligen Befehlskodierung angegeben sind, ohne dass eine Datenmaskierung stattfindet. Diese Ausführungsform kann für DDR II DRAM eingerichtet werden. Z. B. kann die Lesebefehlskodie rung, die die Sequenzlänge von 8 angibt, die Befehlskodierung sein, die zum Spezifizieren eines Sequenzbeendigungsbefehls in DDR I verwendet wird.
  • Die Speichersteuerung 100 kann auch ausgebildet sein, Sequenzanforderungen mit unterschiedlicher Länge von unterschiedlichen Geräten zu empfangen. Abhängig von der Sequenzlänge einer Anforderung gibt die Speichersteuerung aus, welche Befehlskodierung an das Speicherbauelement 150 zu senden ist. Beispielsweise können AGP-(fortschrittliche Graphikanschluss-) Transaktionen, die von einer Graphiksteuerung (beispielsweise der Graphiksteuerung 408 in 4) initiiert werden, vier Sequenzen gleichzeitig beinhalten, während Prozesstransaktionen 8 Sequenzen beinhalten. Wenn ein Prozessor (beispielsweise die CPU 10 in 4) eine Transaktion initiiert, kann die Speichersteuerung 100 eine Befehlskodierung ausgeben, die 8 Sequenzen von dem Speicherbauelement anfordert. Wenn stattdessen die Speichersteuerung eine Transaktion initiiert, kann die Speichersteuerung 100 eine andere Befehlskodierung ausgeben, die vier Sequenzen von dem Speicherbauelement anfordert. Das Speicherbauelement 150 kann antworten, indem die Anzahl der in jeder Befehlskodierung angeforderten Sequenzen ausgegeben wird, unabhängig von der aktuellen Sequenzlängeneinstellung in dem Modusregister 154.
  • In einigen Ausführungsformen bestimmt die Sequenzlängeneinstellung des Modusregisters 154, welche unterschiedlichen Befehlscodierungen von der Speichersteuerung 100 erzeugt werden können. Einige Befehlskodierungen können verwendet werden, wenn die Sequenzlängeneinstellung einen Wert von 1 besitzt, werden aber nicht verwendet, wenn die Sequenzlängeneinstellung einen anderen Wert aufweist. Beispielsweise werden in einer Ausführungsform unterschiedliche Befehlscodierungen eingesetzt, um Sequenzlängen zu spezifizieren, die größer oder gleich sind als die aktuelle Sequenzlängeneinstellung angibt. Wenn folglich in dieser Ausführungsform die aktuelle Sequenzlängeneinstellung einen maximalen Wert besitzt, wird ggf. nur eine einzelne Befehlskodierung dem Speicherbauelement zugeführt, die eine Sequenzlänge gleich der aktuellen Sequenzlängeneinstellung angibt, oder die angibt, dass die aktuelle Sequenzlängeneinstellung verwendet werden sollte.
  • Zu beachten ist, dass in alternativen Ausführungsformen alle unterschiedlichen Befehlskodierungen dem Speicherbauelement zugeführt werden können, unabhängig von der aktuellen Sequenzlängeneinstellung in dem Modusregister. In einigen dieser Ausführungsformen gibt die jeweilige Befehlskodierung eine spezielle Sequenzlänge an (im Gegensatz zu einer oder mehreren Befehlskodierungen, die angeben, dass die aktuelle Sequenzlängeneinstelldung verwendet werden sollte). Zu beachten ist, dass in einigen Ausführungsformen jede Befehlskodierung, die zum Initiieren eines Sequenzzugriffs verwendet wird, die Sequenzlänge des angeforderten Zugriffs angeben kann. In derartigen Ausführungsformen kann die Sequenzlängeneinstellung in dem Modusregister irrrelevant sein, da jede Befehlskodierung eine spezielle Sequenzlänge angibt. Folglich bieten einige Ausführungsformen des Speicherbauelements keine Sequenzlängeneinstellung in dem Modusregister.
  • In einigen Ausführungsformen sind unterschiedliche Befehlskodierungen sowohl für Lese- als auch Schreiboperationen verfügbar. In anderen Ausführungsformen wird eine einzelne Befehlskodierung (die angibt, dass die aktuelle Sequenzmodusregistereinstellung verwendet werden sollte) für Schreibbefehle vorgesehen, und es sind mehrere Befehlskodierungen (wovon jede eine andere Sequenzlänge angibt, oder angibt, dass die aktuelle Sequenzmodusregistereinstellung verwendet werden sollte) für Leseoperationen vorgesehen (oder umgekehrt).
  • In einer Ausführungsform wird ein zusätzlicher Befehlsanschlussstift dem Speicherbauelement 150 hinzugefügt, so dass eine zusätzliche Befehlsleitung (z. B. zusätzlich zu S, RAS, CAS und WE) verwendet werden kann, um zusätzliche Befehlskodierungen (beispielsweise Spezifizieren anderer Arten von Zugriffen (z. B. Lesen oder Schreiben) oder Spezifizieren zusätzlicher Sequenzlängen) verwenden zu können. In einer derartigen Ausführungsform werden Befehlskodierungen verwendet, um die Sequenzlängen mit 2, 4, 8 und/oder 16 zu bezeichnen. Die zusätzliche Befehlsleitung kann unter Umständen nicht als eine Adressenleitung verwendet werden. Es können mehr als eine zusätzliche Befehlsleitung verwendet werden, um unterschiedliche Sequenzzugriffsbefehlskodierungen in einigen Ausführungsformen anzugeben.
  • 2a bis 2c zeigen beispielhafte Signalformen, die in einer Ausführungsform eines Speichersystems erzeugt werden. In diesem Beispielen ist CL (CAS-Verarbeitungszeit) = 4, AL (aktive Verarbeitungszeit) = 0, RL (Leseverarbeitungszeit) = 4 und WL (Schreibverarbeitungszeit) = 3. In diesen Beispielen wird die Sequenzlängeneinstellung in dem Modusregister durchwegs als auf 4 eingestellt angenommen. Z. B. wird in 2a die Sequenzlängeneinstellung des Modusregister nicht in den Zeiten modifiziert, in denen der Lesebefehl BL=4 und der Lesebefehl BL=8 ausgeführt werden, und die Einstellung wird auch nicht modifiziert in den Zeiten, in denen Lesebefehle BL=8 und Befehle BL=4 ausgeführt werden.
  • 2a zeigt das Verhalten eines BL (Sequenzlänge) = 4 – Lesebefehls, an den sich ein Lesebefehl mit BL=8 und ein weiterer Lesebefehl mit BL=4 anschließt. In diesem Beispiel wird der Lesebefehl mit BL=4 initiiert, indem eine Befehlskodierung bereitgestellt wird, die angibt, dass die aktuelle Sequenzlängeneinstellung in dem Speicherbauelement verwendet werden sollte. Der Lesebefehl mit BL=8 wird initiiert, indem eine Befehlskodierung bereitgestellt wird, die angibt, dass ein Sequenzzugriff mit einer Länge von 8 (unabhängig von der aktuellen Sequenzlängeneinstellung) verwendet werden soll. Wie dieses Beispiel zeigt, kann das Speicherbauelement auf die Befehle reagieren, indem ein kontinuierlicher Datenstrom ausgegeben wird, wobei ein Zugriff ausgeführt wird, sobald der vorhergehende Zugriff abgeschlossen ist. Zu beachten ist, dass jeder Zugriff als eine Anzahl von Zyklen entsprechend der angeforderten Anzahl an Sequenzen ausgeführt wird (beispielsweise erfordert das Ausführen eines Befehls mit BL=4 nicht mehr als zwei Taktzyklen). 2b zeigt die Ausführung eines Schreibbefehls mit BL=4, gefolgt von der Ausführung eines Lesebefehls mit BL=8. 2c zeigt das Ausführen eines Lesebefehls mit BL=8, gefolgt von der Ausführung eines Schreibbefehls mit BL=4.
  • 3 zeigt eine Ausführungsform eines Verfahrens zum Betreiben eines Speichersystems. In dieser Ausführungsform wird bei 301 eine Anforderung empfangen, dass ein Speicherbauelement einen Sequenzzugriff mit einer speziellen Sequenzlänge auszuführen hat. Wenn die angeforderte Sequenzlänge gleich ist der aktuellen Sequenzlängeneinstellung des Speicherbauelements (wie dies beispielsweise einem Sequenzmodusregister angegeben ist), wird eine erste Befehlskodierung dem Speicherbauelement zugeführt, wie dies durch 303 bis 305 angegeben ist. Die erste Befehlskodierung gibt an, dass eine aktuelle Sequenzlängeneinstellung verwendet werden sollte. Alternativ kann die erste Befehlskodierung insbesondere die Sequenzlänge des auszuführenden Sequenzzugriffs angeben, indem eine Sequenzlänge spezifiziert wird, die gleich der aktuellen Sequenzlängeneinstellung ist. In Reaktion auf das Empfangen der ersten Befehlskodierung führt das Speicherbauelement einen ersten Sequenzzugriff mit der angeforderten Sequenzlänge aus, wie dies bei 309 gezeigt ist.
  • Wenn die angeforderte Sequenzlänge nicht gleich der aktuellen Sequenzlängeneinstellung des Speicherbauelements ist, wird eine zweite Befehlskodierung dem Speicherbauelement zugeführt, wie dies bei 303 und 309 angegeben ist. Die zweite Befehlskodierung unterscheidet sich von der ersten Befehlskodierung durch einen Wert mindestens eines Steuersignals. Die zweite Befehlskodierung gibt an, dass ein Sequenzzugriff mit einer spezifizierten Sequenzlänge, die sich von der Sequenzlänge unterscheidet, die durch die aktuelle Sequenzlängeneinstellung angegeben ist, auszuführen ist. In Reaktion auf die zweite Befehlskodierung führt das Speicherbauelement einen Sequenzzugriff mit der durch die zweite Befehlskodierung spezifizierten Sequenzlänge aus, wie dies bei 311 gezeigt ist. Die erste und die zweite Befehlskodierung können beide verwendet werden, um die gleiche Art an Zugriff zu spezifizieren (z. B. einem Lesezugriff). Es können weitere Befehlskodierungen verwendet werden, um Zugriffe mit Sequenzlängen auszuführen, die sich von der in der ersten und der zweiten Befehlskodierung spezifizierten Länge unterscheiden und/oder um Zugriffe einer anderen Art im Vergleich zu der in der ersten und der zweiten Befehlskodierung spezifizierten Art auszuführen.
  • 4 zeigt eine Blockansicht einer Ausführungsform eines Computersystems 400, das einen Prozessor 10 aufweist, der mit mehreren Systemkomponenten über eine Busbrücke 402 verbunden ist. Das Computersystem 400 umfasst in einer Ausführungsform ein Speichersystem ähnlich, wie es in den 1 bis 2 gezeigt ist. Zu beachten ist, dass die dargestellte Ausführungsform lediglich beispielhafter Natur ist und andere Ausführungsformen eines Computersystems möglich und hierin mit eingeschlossen sind. In dem dargestellten System ist ein Hauptspeicher 404 mit der Busbrücke 402 über einen Speicherbus 406 verbunden und eine Graphiksteuerung 408 ist mit der Busbrücke 402 über einen AGP-Bus 410 verbunden. Mehrere PCI-Geräte 412a bis 412b sind mit der Busbrücke 402 über einen PCI-Bus 414 verbunden. Eine sekundäre Busbrücke 416 kann vorgesehen sein, um eine elektrische Schnittstelle zu einem oder mehreren EISA- oder ISA-Geräten 418 über einen EISA/ISA-Bus 420 bereitzustellen. In diesem Beispiel ist der Prozessor 10 mit der Busbrücke 402 über einen CPU-Bus 424 und mit einem optionalen L2-Cache-Speicher 428 verbunden. In einigen Ausführungsformen umfasst der Prozessor 10 einen integrierten L1-Cache-Speicher 10 (nicht gezeigt). Der Prozessor 10 weist in einigen Ausführungsformen eine Ausführungsform einer Speichersteuerung 100 auf.
  • Die Busbrücke 402 stellt eine Schnittstelle zwischen dem Prozessor 10, dem Hauptspeicher 404, der Graphiksteuerung 408 und den mit den PCI-Bus 414 verbundenen Geräten bereit. Wenn eine Operation von einem der Geräte, die mit der Busbrücke 402 verbunden sind, empfangen wird, erkennt die Busbrücke 402 das Ziel der Operation (z. B. ein spezielles Gerät oder im Fall des PCI-Busses 414, dass das Ziel auf dem PCI-Bus 414 liegt). Die Busbrücke 402 leitet die Operation an das Zielgerät weiter. Die Busbrücke 402 übersetzt im Wesentlichen eine Operation aus dem Protokoll, das von dem Quellengerät oder dem Quellenbus verwendet wird, in das Protokoll, das von dem Zielgerät oder Bus verwendet wird. In einer Ausführungsform umfasst die Busbrücke 402 eine Ausführungsform einer Speichersteuetung 100, wie sie zuvor beschrieben ist.
  • Zusätzlich zur Bereitstellung einer Schnittstelle zu einem ISA/EISA-Bus für den PCI-Bus 414 kann die sekundäre Busbrücke 416 zusätzliche Funktionen aufweisen. Eine Eingabe/Ausgabe-Steuerung (nicht gezeigt), die extern vorgesehen ist oder in der sekundären Busbrücke 416 integriert ist, kann ebenfalls in dem Computersystem 400 vorgesehen sein, um Funktionsunterstützungen für eine Tastatur und eine Maus 422 und diverse serielle und parallele Anschlüsse bereitzustellen. Eine externe Cache-Speichereinheit (nicht gezeigt) kann ebenso mit dem CPU-Bus 424 zwischen dem Prozessor 10 und der Busbrücke 402 in weiteren Ausführungsformen verbunden sein. Alternativ kann der externe Cache-Speicher mit der Busbrücke 402 verbunden sein, und eine Cache-Steuerlogik für den externen Cache-Speicher kann in der Busbrücke 402 integriert sein. Der L2-Cache-Speicher 428 ist in einer Rückseitenkonfiguration mit dem Prozessor 10 gezeigt. Zu beachten ist, dass der L2-Cache-Speicher 428 von dem Prozessor 10 getrennt sein kann, oder in einem Gehäuse (beispielsweise Schlitz 1 oder Schlitz A) zusammen mit dem Prozessor 10 aufgebaut sein kann oder sogar auf einem Halbleitersubstrat zusammen mit dem Prozessor 10 ausgebildet sein kann.
  • Der Hauptspeicher 404 ist ein Speicher, in welchem Anwenderprogramme gespeichert sind und aus dem heraus der Prozessor 10 hauptsächlich arbeitet. Ein geeigneter Hauptspeicher 404 weist etwa einen DRAM (dynamischer Speicher mit wahlfreiem Zugriff) auf. Z. B. sind mehrere Bänke aus SDRAM (synchrone DRAM) oder RAMBUS-DRAM (RDRAM) geeignet. Der Hauptspeicher 404 ist ausgebildet, auf unterschiedliche Befehlskodierungen zu reagieren, die andere Sequenzlängen angeben als die Sequenzlänge, die durch die aktuelle Sequenzlängeneinstellung festgelegt ist.
  • Die PCI-Geräte 412a bis 412b sollen eine Vielzahl von Peripheriegeräten repräsentieren, etwa Netzwerkschnittstellenkarten, Videobeschleuniger, Klangkarten, Festplatten oder Diskettenlaufwerke oder Laufwerkssteuerungen, SCI-(Kleincomputersystemschnittstellen-) Adapter und Telefoniekarten. In ähnlicher Weise ist das ISA-Gerät 418 ein Repräsentant diverser Arten von Peripheriegeräten, etwa von einem Modem, einer Klangkarte und einer Vielzahl von Datennahmekarten, etwa GPIB oder Feldbusschnittstellenkarten.
  • Die Graphiksteuerung 408 ist vorgesehen, um das Erzeugen von Text und Bildern auf einer Anzeige 426 zu steuern. Die Graphiksteuerung 408 repräsentiert einen typischen Graphikbeschleuniger, der im Stand der Technik bekannt ist, um dreidimensionale Datenstrukturen zu erzeugen, die effizient in den Hauptspeicher 404 geschoben und daraus ausgelesen werden können. Die Graphiksteuerung 408 kann daher eine übergeordnete Einrichtung oder ein Master des AGP-Busses 410 sein, indem diese Zugriff zu einer Zielschnittstelle innerhalb der Busbrücke 402 anfordern und erhalten kann, um damit einen Zugriff auf den Hauptspeicher 404 zu erhalten. Spezielle Graphikbusse beinhalten die Funktion des schnellen Abrufens von Daten aus dem Hauptspeicher 404. Für gewisse Operationen ist die Graphiksteuerung 408 ferner ausgebildet, PCI-Protokolltransaktionen auf dem AGP-Bus 410 zu erzeugen. Die AGP-Schnittstelle der Busbrücke 402 enthält daher eine Funktion, um sowohl AGP-Protokolltransaktionen sowie auch PCI-Protokollziel- und Initiatortransaktionen zu unterstützten. Die Anzeige 426 kann eine beliebige elektronische Anzeige sein, auf der Bild und Text dargestellt werden können. Eine geeignete Anzeige 426 kann eine Kathodenstahlröhre („CRT") eine Flüssigkristallanzeige („LCD"), etc. umfassen.
  • Zu beachten ist, dass obwohl die AGP-, PCI- und ISA- oder EISA-Busse in der obigen Beschreibung als Beispiele angegeben sind, beliebige Busarchitekturen nach Bedarf eingesetzt werden können. Ferner ist zu beachten, dass das Computersystem 400 ein Multiprozessorcomputersystem sein kann, wobei zusätzliche Prozessoren (beispielsweise der Prozessor 10a, der als optionale Komponente des Computersystems 400 gezeigt ist) vorgesehen sind. Der Prozessor 10a kann ähnlich dem Prozessor 10 ausgebildet sein. Insbesondere kann der Prozessor 10a eine identische Kopie des Prozessors 10 sein. Der Prozessor 10a ist mit der Busbrücke 402 über einen unabhängigen Bus (wie in 5 gezeigt) verbunden oder kann den CPU-Bus 224 zusammen mit dem Prozessor 10 nutzen. Des weiteren kann der Prozessor 10a mit einem optionalen LC2-Cache-Speicher 428a ähnlich zu dem LC2-Cache-Speicher 428 verbunden sein.
  • 5 zeigt eine weitere Ausführungsform eines Computersystems 400, das ein oben beschriebenes Speichersystem aufweist. Andere Ausführungsformen sind möglich und hierin mit eingeschlossen. In der Ausführungsform aus 5 umfasst das Computersystem 400 mehrere Verarbeitungsknoten 612a, 612b, 612c und 6124. Jeder Verarbeitungsknoten ist mit einem entsprechenden Speicher 614a bis 614b über eine Speichersteuerung 616a bis 616b, die in dem jeweiligen entsprechenden Verarbeitungsknoten 612a bis 612d enthalten sind, verbunden. Ferner besitzen die Verarbeitungsknoten 612a bis 612d eine Schnittstellenlogik, die zur Kommunikation zwischen den Verarbeitungsknoten 612a bis 612d verwendet wird. Beispielsweise enthält der Verarbeitungsknoten 612a eine Schnittstellenlogik 618a zur Kommunikation mit dem Verarbeitungsknoten 612b, eine Schnittstellenlogik 618b zur Kommunikation mit dem Verarbeitungsknoten 612c und eine dritte Schnittstellenlogik 618c zur Kommunikation mit einem weiteren Verarbeitungsknoten (nicht gezeigt). In ähnlicher Weise umfasst der Verarbeitungsknoten 612b Schnittstellenlogiken 618d, 618e und 618f; der Verarbeitungsknoten 612c umfasst Schnittstellenlogiken 618d, 618h und 618i; und der Verarbeitungsknoten 612d umfasst Schnittstellenlogiken 618j, 618h und 618l. Der Verarbeitungsknoten 612d ist so angeschlossen, dass dieser mit mehreren Eingabe/Ausgabe-Geräten (beispielsweise Geräte 620a bis 620b in einer Prioritätskettenanordnung) über eine Schnittstellenlogik 618l kommuniziert. Andere Verarbeitungsknoten können mit anderen I/O-Geräten in ähnlicher Weise verbunden sein.
  • Die Verarbeitungsknoten 612a bis 612d bilden eine paketbasierte Verbindung für die Kommunikation zwischen dem Verarbeitungsknoten. In der vorliegenden Ausführungsform ist die Verbindung als eine Gruppe unidirektionaler Leitungen eingerichtet (z. B. werden die Leitungen 624a verwendet, um Pakete von dem Verarbeitungsknoten 612a zu dem Verarbeitungsknoten 612b zu übertragen, und Leitungen 624b werden verwendet, um Pakete von dem Verarbeitungsknoten 612b zu dem Verarbeitungsknoten 621a zu übertragen). Andere Gruppen mit Leitungen 624c bis 624h werden verwendet, um Pakete zwischen anderen Verarbeitungsknoten auszutauschen, wie in 5 gezeigt ist. Im Allgemeinen kann jede Gruppe aus Leitungen 624 eine oder mehrere Datenleitungen, eine oder mehrere Taktleitungen entsprechend den Datenleitungen und eine oder mehrere Steuerleitungen, die die Art der zu übertragenden Pakete angeben, aufweisen. Die Verbindung kann in einer mit dem Cache-Speicher kohärenten Weise zur Kommunikation zwischen dem Verarbeitungsknoten oder in einer nicht kohärenten Weise zur Kommunikation zwischen einem Verarbeitungsknoten und einem I/O-Gerät betrieben werden (oder einer Busbrücke zu einem I/O-Bus mit konventionellem Aufbau, etwa dem PCI-Bus oder dem ISA-Bus). Daher kann die Verbindung in einer nicht kohärenten Weise unter Anwendung der Prioritätskettenstruktur zwischen I/O-Geräten betrieben werden, wie dies gezeigt ist. Zu beachten ist, dass ein Paket von einem Verarbeitungsknoten zu einem weiteren Knoten zum Übertragen des Pakets durch einen oder mehrere dazwischenliegende Knoten laufen kann. Beispielsweise kann ein Paket, das von dem Verarbeitungsknoten 612a zu dem Verarbeitungsknoten 612d zu übertragen ist, durch den Verarbeitungsknoten 612b oder den Verarbeitungsknoten 612c laufen, wie in 5 gezeigt ist. Es kann ein beliebiger geeigneter Routenfindungsalgorithmus verwendet werden. In anderen Ausführungsformen des Computersystems 400 können mehr oder weniger Verarbeitungsknoten verwendet sein, als dies in 5 gezeigt ist.
  • Im Allgemeinen werden die Pakete als eine oder mehrere Bitzeiten auf den Leitungen 624 zwischen den Verarbeitungsknoten übermittelt. Eine Bitzeit kann die ansteigende oder abfallende Flanke des Taktsignals auf den entsprechenden Taktleitungen sein. Die Pakete können Befehlspakete zum Initiieren von Transaktionen, Abfragepakete zur Beibehaltung der Cache-Speicherkohärenz und Antwortpakete für das Antworten auf Abfragen und Befehle enthalten.
  • Die Verarbeitungsknoten 612a bis 612d können zusätzlich zu einer Speichersteuerung und einer Schnittstellenlogik einen oder mehrere Prozessoren aufweisen. Allgemein gesagt, ein Verarbeitungsknoten beinhaltet mindestens einen Prozessor und kann optional eine Speichersteuerung zur Kommunikation mit einem Speicher und anderer Logik nach Bedarf enthalten. Insbesondere kann jeder Verarbeitungsknoten 612a bis 612d eine oder mehrere Kopien des Prozessors 10 aufweisen. Eine externe Schnittstelleneinheit 18 kann die Schnittstellenlogik 618 innerhalb des Verarbeitungsknotens sowie die Speichersteuerung 616 enthalten. Jede Speichersteuerung 616 kann eine Ausführungsform einer Speichersteuerung 100 aufweisen, wie sie zuvor beschrieben ist.
  • Die Speicher 614a bis 614d enthalten beliebige geeignete Speichereinrichtungen. Beispielsweise kann ein Speicher 615a bis 614d einen oder mehrere RAMBUS DRAM's (RDRAM's) synchrone DRAM's (SDRAM's), statische RAM's etc. aufweisen. Der Adressen raum des Computersystems 400 ist unter den Speichern 614a bis 614d aufgeteilt. Jeder Verarbeitungsknoten 612a bis 612d kann eine Speicherkarte enthalten, die verwendet wird, um zu bestimmen, welche Adressen welchen Speichern 614a bis 614d zugewiesen werden, und somit zu welchen Verarbeitungsknoten 612a bis 612d eine Speicheranforderung für eine spezielle Adresse zuzuleiten ist. In einer Ausführungsform ist der Kohärenzpunkt für eine Adresse innerhalb des Computersystems 400 die Speichersteuerung 616a bis 616d, die mit dem Speicher verbunden ist, der die der Adresse entsprechenden Bytes speichert. Anders ausgedrückt, die Speichersteuerung 616a bis 616d ist dafür verantwortlich sicherzustellen, dass jeder Speicherzugriff auf den entsprechenden Speicher 614a bis 614d in einer mit dem Cache-Speicher kohärenten Weise abläuft. Die Speichersteuerungen 616a bis 616d können eine Steuerschaltung zur Verbindung mit den Speichern 614a bis 614d aufweisen. Ferner können die Speichersteuerungen 616a bis 616d Anforderungswarteschlangen zur Aneinanderreihung von Speicheranforderungen enthalten.
  • Jede Schnittstellenlogik 618a bis 6181 enthält eine Vielzahl von Puffern zum Empfangen von Paketen von der Verbindung und zum Puffern von Paketen, die über die Verbindung zu senden sind. Das Computersystem 400 kann einen beliebigen geeigneten Ablaufsteuerungsmechanismus zum Senden von Paketen anwenden. Beispielsweise speichert in einer Ausführungsform jede Schnittstellenlogik 618 eine Angabe über die Nummer jedes Puffers innerhalb des Empfängers am anderen Ende der Verbindung, der mit der Schnittstellenlogik verbunden ist. Die Schnittstellenlogik sendet kein Paket, sofern nicht die empfangende Schnittstellenlogik einen freien Puffer aufweist, um das Paket zu speichern. Wenn ein Empfangspuffer durch Weiterleiten eines Paketes wieder frei ist, sendet die empfangende Schnittstellenlogik eine Nachricht zu der sendenden Schnittstellenlogik, um anzugeben, dass der Puffer wieder verfügbar ist. Ein derartiges System kann als ein Coupon-basiertes" System bezeichnet werden.
  • Die I/O- bzw. Eingabe/Ausgabe-Geräte 620a bis 620b können beliebige geeignete I/O-Geräte sein. Beispielsweise können zu den I/O-Geräten 620a bis 620b Geräte zur Kommunikation mit einem weiteren Computersystem gehören, mit welchem die Geräte verbunden sind (beispielsweise Netzwerkschnittstellenkarten oder Modems). Ferner können zu den I/O-Geräten 620a bis 620b Videobeschleuniger, Audio-Karten, Festplatten oder Diskettenlaufwerke oder Laufwerkssteuerungen, SCSI-(Kleincomputersystemschnittstellen-) Adapter und Telefoniekarten, Klangkarten und eine Vielzahl von Datennahmekarten, etwa GPIB oder Feldbusschnittstellenkarten gehören. Zu beachten ist, dass der Begriff „I/O- bzw. Eingabe/Ausgabe-Gerät" und der Begriff „Peripheriegerät" hierin als synonym verwendet sind.
  • Der Fachmann erkennt, dass diverse Variationen und Modifizierungen im Lichte der obigen Offenbarung möglich sind. Es ist beabsichtigt, dass die folgenden Patentansprüche so interpretiert werden, dass alle derartigen Variationen und Modifizierungen mit eingeschlossen sind.
  • Industrielle Anwendbarkeit
  • Diese Erfindung ist im Allgemeinen auf ein Computersystem anwendbar.

Claims (10)

  1. Verfahren mit: Erhalten einer Anforderung für ein Speicherbauelement (150), um einen Sequenzzugriff mit einer Sequenzlänge auszuführen; wenn die Sequenzlänge einer ersten Sequenzlänge entspricht, die durch eine aktuelle Sequenzlängeneinstellung (154) des Speicherbauelements (150) gekennzeichnet ist, Bereitstellen einer ersten Befehlscodierung für das Speicherbauelement; und wenn die Sequenzlänge einer zweiten Sequenzlänge entspricht, die nicht gleich der ersten Sequenzlänge ist, die durch die Sequenzlängeneinstellung (154) gekennzeichnet ist, Bereitstellen einer zweiten Befehlscodierung für das Speicherbauelement (150); wobei das Speicherbauelement (150) den Sequenzzugriff mit der ersten Sequenzlänge in Reaktion auf die erste Befehlscodierung ausführt; und wobei das Speicherbauelement (150) den Sequenzzugriff mit der zweiten Sequenzlänge in Reaktion auf die zweite Befehlscodierung ausführt.
  2. Verfahren nach Anspruch 1, wobei der Sequenzzugriff ein Lesezugriff ist.
  3. Verfahren nach Anspruch 2, das ferner umfasst: Erhalten einer Anforderung für das Speicherbauelement, um einen zweiten Sequenzzugriff mit einer dritten Sequenzlänge auszuführen; B ereitstellen einer dritten Befehlscodierung für das Speicherbauelement, wenn die dritte Sequenzlänge nicht gleich der ersten Sequenzlänge ist, die durch die Sequenzlängeneinstellung gekennzeichnet ist; und wobei das Speicherbauelement den zweiten Sequenzzugriff mit der dritten Sequenzlänge in Reaktion auf die dritte Befehlscodierung ausführt, und wobei der zweite Sequenzzugriff ein Schreibsequenzzugriff ist.
  4. Verfahren nach Anspruch 1, wobei das Speicherbauelement eine DDR-(doppelte Datenrate-) II DRAM- (dynamischer Speicher mit wahlfreiem Zugriff) Einrichtung ist.
  5. Verfahren nach Anspruch 1, wobei das Bereitstellen der ersten Befehlscodierung umfasst: Steuern von Werten eines Chipauswahlsignals, eines Spaltenadressenaktivienangssignals, eines Reihenadressenaktivierungssignals und eines Schreibfreigabesignals, und wobei das Bereitstellen der zweiten Befehlscodierung umfasst: Steuern der Werte des Chipauswahlsignals, des Spaltenadressenaktivierungssignals, des Reihenadressenaktivierungssignals und des Schreibfreigabesignals.
  6. Speichereinrichtung mit: einem Modus-Register (154), das ausgebildet ist, einen eine aktuelle Sequenzlänge kennzeichnenden Wert zu speichern; und einem Speicherarray (152); wobei das Speicherarray (152) ausgebildet ist, einen codierten Befehl zu empfangen, wobei der codierte Befehl eine Sequenzlänge angibt, wobei in Reaktion auf das Empfangen des codierten Befehls das Speicherarray (152) ausgebildet ist, einen Sequenzzugriff mit der Sequenzlänge, die durch den codierten Befehl gekennzeichnet ist, auszuführen, wobei die Sequenzlänge sich von der aktuellen Sequenzlänge unterscheidet.
  7. Speichereinrichtung nach Anspruch 6, wobei das Speicherarray ausgebildet ist, einen zweiten codierten Befehl zu empfangen, der eine zweite Sequenzlänge kennzeichnet, und in Reaktion darauf einen zweiten Sequenzzugriff mit der zweiten Sequenzlänge auszuführen, wobei die zweite Sequenzlänge unterschiedlich ist zu der Sequenzlänge, und wobei das Speicherarray ausgebildet ist, einen Lesezugriff in Reaktion auf den codierten Befehl und den zweiten codierten Befehl auszuführen.
  8. Speichereinrichtung nach Anspruch 6, wobei die Speichereinrichtung eine DDR (doppelte Datenrate) II-DRAM-(Speicher mit wahlfreiem Zugriff) Einrichtung ist.
  9. Speichereinrichtung nach Anspruch 6, wobei der codierte Befehl als Werte eines Chipauswahlsignals, eines Spaltenadressenaktivierungssignals, eines Reihenadressenaktivierungssignals und eines Schreibfreigabesignals empfangen wird.
  10. System mit: einer Speichersteuerung (100), die ausgebildet ist, eine erste Befehlscodierung in Reaktion auf das Empfangen einer ersten Speicherzugriffsanforderung mit einer ersten Sequenzlänge zu erzeugen und eine zweite Befehlscodierung in Reaktion auf das Empfangen einer zweiten Speicherzugriffsanforderung mit einer zweiten Sequenzlänge zu erzeugen, wobei die erste Befehlscodierung die erste Sequenzlänge und die zweite Befehlscodierung die zweite Sequenzlänge kennzeichnet; und einer Speichereinrichtung (150) nach Anspruch 6, die mit der Speichersteuerung (100) verbunden und ausgebildet ist, einen ersten Sequenzzugriff mit der ersten Sequenzlänge in Reaktion auf das Empfangen der ersten Befehlscodierung auszuführen und einen zweiten Sequenzzugriff mit der zweiten Sequenzlänge in Reaktion auf das Empfangen der zweiten Befehlscodierung auszuführen.
DE60313323T 2002-07-11 2003-07-09 Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern Expired - Lifetime DE60313323T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/193,828 US6957308B1 (en) 2002-07-11 2002-07-11 DRAM supporting different burst-length accesses without changing the burst length setting in the mode register
US193828 2002-07-11
PCT/US2003/021286 WO2004008329A1 (en) 2002-07-11 2003-07-09 Dram supporting different burst-length accesses without changing the burst length setting in the mode register

Publications (2)

Publication Number Publication Date
DE60313323D1 DE60313323D1 (de) 2007-05-31
DE60313323T2 true DE60313323T2 (de) 2007-12-27

Family

ID=30114615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60313323T Expired - Lifetime DE60313323T2 (de) 2002-07-11 2003-07-09 Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern

Country Status (9)

Country Link
US (1) US6957308B1 (de)
EP (1) EP1522021B1 (de)
JP (1) JP4507186B2 (de)
KR (1) KR101005114B1 (de)
CN (1) CN1333353C (de)
AU (1) AU2003258997A1 (de)
DE (1) DE60313323T2 (de)
TW (1) TWI307464B (de)
WO (1) WO2004008329A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543088B2 (en) 2004-03-11 2009-06-02 Sonics, Inc. Various methods and apparatuses for width and burst conversion
US7475168B2 (en) * 2004-03-11 2009-01-06 Sonics, Inc. Various methods and apparatus for width and burst conversion
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
US8032676B2 (en) 2004-11-02 2011-10-04 Sonics, Inc. Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
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
US20070206586A1 (en) * 2006-03-02 2007-09-06 Matti Floman Method, mobile device, system and software for flexible burst length control
KR100799132B1 (ko) 2006-06-29 2008-01-29 주식회사 하이닉스반도체 초기값변경이 가능한 모드레지스터셋회로.
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
US20080059748A1 (en) * 2006-08-31 2008-03-06 Nokia Corporation Method, mobile device, system and software for a write method with burst stop and data masks
US20080301391A1 (en) * 2007-06-01 2008-12-04 Jong-Hoon Oh Method and apparatus for modifying a burst length for semiconductor memory
KR101260313B1 (ko) * 2007-06-12 2013-05-03 삼성전자주식회사 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법
US7688628B2 (en) * 2007-06-30 2010-03-30 Intel Corporation Device selection circuit and method
TWI358735B (en) * 2008-01-03 2012-02-21 Nanya Technology Corp Memory access control method
US20100325333A1 (en) * 2008-10-14 2010-12-23 Texas Instruments Incorporated Method Allowing Processor with Fewer Pins to Use SDRAM
US8266471B2 (en) * 2010-02-09 2012-09-11 Mosys, Inc. Memory device including a memory block having a fixed latency data output
US8856579B2 (en) * 2010-03-15 2014-10-07 International Business Machines Corporation Memory interface having extended strobe burst for read timing calibration
US9319880B2 (en) * 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
KR101873526B1 (ko) * 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
KR101964261B1 (ko) 2012-05-17 2019-04-01 삼성전자주식회사 자기 메모리 장치
EP3025347A1 (de) * 2013-07-26 2016-06-01 Hewlett Packard Enterprise Development LP Erste daten als reaktion auf eine zweite leseanforderung
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US10846253B2 (en) 2017-12-21 2020-11-24 Advanced Micro Devices, Inc. Dynamic page state aware scheduling of read/write burst transactions
KR102671077B1 (ko) 2018-11-15 2024-06-03 에스케이하이닉스 주식회사 반도체장치
US11270416B2 (en) 2019-12-27 2022-03-08 Nxp Usa, Inc. System and method of using optimized descriptor coding for geometric correction to reduce memory transfer bandwidth overhead
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
US12307095B2 (en) 2022-03-14 2025-05-20 Mediatek Inc. Electronic system and method for controlling burst length to access memory device of electronic system
US12475969B2 (en) 2022-09-14 2025-11-18 Rambus Inc. Dynamic random access memory (DRAM) device with variable burst lengths

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754825A (en) 1995-05-19 1998-05-19 Compaq Computer Corporation Lower address line prediction and substitution
US7681005B1 (en) * 1996-01-11 2010-03-16 Micron Technology, Inc. Asynchronously-accessible memory device with mode selection circuitry for burst or pipelined operation
JPH10208468A (ja) * 1997-01-28 1998-08-07 Hitachi Ltd 半導体記憶装置並びに同期型半導体記憶装置
US6226724B1 (en) * 1997-09-03 2001-05-01 Motorola, Inc. Memory controller and method for generating commands to a memory
JPH11134243A (ja) * 1997-10-31 1999-05-21 Brother Ind Ltd 記憶装置の制御装置及びデータ処理システムにおける記憶装置の制御方法
JP3948141B2 (ja) * 1998-09-24 2007-07-25 富士通株式会社 半導体記憶装置及びその制御方法
US6606352B2 (en) 1999-01-15 2003-08-12 Broadcom Corporation Method and apparatus for converting between byte lengths and burdened burst lengths in a high speed modem
US6393500B1 (en) 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
KR20020014563A (ko) * 2000-08-18 2002-02-25 윤종용 반도체 메모리 장치
US6549991B1 (en) * 2000-08-31 2003-04-15 Silicon Integrated Systems Corp. Pipelined SDRAM memory controller to optimize bus utilization
JP4025002B2 (ja) 2000-09-12 2007-12-19 株式会社東芝 半導体記憶装置
US6895474B2 (en) * 2002-04-29 2005-05-17 Micron Technology, Inc. Synchronous DRAM with selectable internal prefetch size

Also Published As

Publication number Publication date
CN1669012A (zh) 2005-09-14
US6957308B1 (en) 2005-10-18
KR20050025960A (ko) 2005-03-14
EP1522021B1 (de) 2007-04-18
TW200401191A (en) 2004-01-16
CN1333353C (zh) 2007-08-22
WO2004008329A1 (en) 2004-01-22
DE60313323D1 (de) 2007-05-31
JP4507186B2 (ja) 2010-07-21
JP2005532657A (ja) 2005-10-27
KR101005114B1 (ko) 2010-12-30
TWI307464B (en) 2009-03-11
AU2003258997A1 (en) 2004-02-02
EP1522021A1 (de) 2005-04-13

Similar Documents

Publication Publication Date Title
DE60313323T2 (de) Dram, der zugriffe verschiedener burst-länge unterstützt, ohne die burst-längeneinstellung im modusregister zu verändern
DE19982871B4 (de) Speichersystem mit jeweils einen Speichermodul-Controller enthaltenden Speichermodulen
DE69232458T2 (de) Programmierbare Zeitsteuerung für Speicher
DE69020220T2 (de) Direktspeicherzugriff zwischen unterschiedlichen Bussystemen mit Cachespeicherübereinstimmung.
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE19855645C2 (de) Verfahren und Anordnung zum Betreiben eines Direktzugriffsspeichers mit verringertem Energieverbrauch
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE69522294T2 (de) Direktspeicherzugriff-Emulation
DE112010002425B4 (de) Delegieren einer Anfrageoperation an eine ander Einrichtung
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE112010001467T5 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE202019005663U1 (de) Vorrichtung und System zum verbesserten Datenvorabrufen basierend auf NUMA-Eigenschaften
DE112005000219T5 (de) Verfahren und Vorrichtung zum Verwalten von Speicherzugriffsanforderungen
DE69122520T2 (de) Vielfachbus-Systemspeicherarchitektur
DE102009043263A1 (de) Abfragen eines Gerätes nach Information
DE112019002100T5 (de) Zugriff auf dram durch wiederverwendung von pins
DE102004050037B4 (de) Speicherbauelement, Speichersystem und Betriebsmodussetzverfahren
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE102013018135A1 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition