DE112008002273T5 - Optimale Lösung zur Steuerung von Datenkanälen - Google Patents
Optimale Lösung zur Steuerung von Datenkanälen Download PDFInfo
- Publication number
- DE112008002273T5 DE112008002273T5 DE112008002273T DE112008002273T DE112008002273T5 DE 112008002273 T5 DE112008002273 T5 DE 112008002273T5 DE 112008002273 T DE112008002273 T DE 112008002273T DE 112008002273 T DE112008002273 T DE 112008002273T DE 112008002273 T5 DE112008002273 T5 DE 112008002273T5
- Authority
- DE
- Germany
- Prior art keywords
- memory controller
- memory
- bit data
- bit
- data path
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Dram (AREA)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
Abstract
Verfahren zum Zugreifen auf einen Speicherkanal mit einem (2n)-Bit Datenpfad, wobei n eine positive Ganzzahl ist, wobei das Verfahren umfasst:
Übertragen von Zugriffsinformation zu einer ersten Speichersteuerung (406) mit einem n-Bit-Datenpfad, um (2n)-Bit Datenblöcke über den Speicherkanal zu übertragen und/oder zu empfangen;
Kopieren der Zugriffsinformation in eine zweite Speichersteuerung (404) mit einem n-Bit-Datenpfad;
in Reaktion auf das Übertragen der Zugriffsinformation und des Kopierens der Zugriffsinformation:
Übertragen und/oder Empfangen eines ersten n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die erste Speichersteuerung über ihren n-Bit-Datenpfad; und
Übertragen und/oder Empfangen eines verbleibenden n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die zweite Speichersteuerung über ihren n-Bit-Datenpfad.
Übertragen von Zugriffsinformation zu einer ersten Speichersteuerung (406) mit einem n-Bit-Datenpfad, um (2n)-Bit Datenblöcke über den Speicherkanal zu übertragen und/oder zu empfangen;
Kopieren der Zugriffsinformation in eine zweite Speichersteuerung (404) mit einem n-Bit-Datenpfad;
in Reaktion auf das Übertragen der Zugriffsinformation und des Kopierens der Zugriffsinformation:
Übertragen und/oder Empfangen eines ersten n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die erste Speichersteuerung über ihren n-Bit-Datenpfad; und
Übertragen und/oder Empfangen eines verbleibenden n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die zweite Speichersteuerung über ihren n-Bit-Datenpfad.
Description
- 1. Technisches Gebiet
- Diese Erfindung betrifft allgemein das Gebiet der Speichersysteme und betrifft insbesondere die Steuerung mehrerer Speicherkanäle.
- 2. Hintergrund
- Durch die zunehmende Komplexität aktueller Computersysteme und durch die Fortschritte der Technologie, die zu immer höheren Prozessorgeschwindigkeiten führen, ist es zunehmend schwierig, das Systemverhalten zu optimieren, das häufig wesentlich von der Brandbreite und der Bearbeitungszeit bzw. Latenzzeit des Speichers des gegebenen Systems abhängt. Folglich kann das Zugreifen auf den Speicher mit der geringsten Wartezeit und der höchsten Ausnutzung der Speicherbandbreite das Verhalten des Systems verbessern und/oder optimieren. Wenn die erforderliche Zeit zum Zugreifen auf den Speicher und zum Abschließen einer gegeben Speicheranforderung anwächst, verlangsamt sich das System. Somit kann eine Verringerung der Zugriffszeit und/oder eine Zunahme des Durchsatzes auf dem Speicherbus das Systemverhalten vorteilhaft beeinflussen.
- In einer Vielzahl an Systemen, wozu Tischrechner, graphische Adapterkarten und Notebook-Computer u. a. gehören, werden dynamische Speicherelemente mit wahlfreiem Zugriff (DRAM) verwendet. DRAM-Bauelemente liefern viele Vorteile gegenüber anderen Speichertechnologien, wozu insbesondere statische Speicherbauelemente mit wahlfreiem Zugriff (SRAM) gehören. Diese Vorteile sind die hohe Speicherdichte und die geringe Leistungsaufnahme. Jedoch gehen diese Vorteile mit diversen Zeitverzögerungen einher, die beim Präparieren der Speicherzellen und anderer Komponenten in den DRAM-Bauelementen für einen nachfolgenden Zugriff auftreten, beispielsweise vor/nach jedem Lese/Schreibzugriff. Zu Beispielen derartiger Verzögerungen gehört die Zeit, die zum Ausführen einer Zeilenvoraufladung, einer Zeilenauffrischung und einer Zeilenaktivierung erforderlich ist. Um Speicheroperationen präziser zu verwalten und zu steuern, um diese Verzögerungen zu vermeiden, wurden zusätzliche Befehle – die zwischen dem Lese/Schreibzugriffen übertragen werden – eingeführt, woraus sich zusätzlicher Aufwand ergibt. Um das Systemverhalten und den Aufbau zu verbessern, indem die Speicherverwaltung für zentrale Verarbeitungseinheiten transparent gemacht wird, wird der Speicherzugriff typischerweise durch spezielle Speichersteuerungen verwaltet, die den Datenstrom zu/von dem Speicher steuern und die erforderlichen Speicherverwaltungsbefehle, etwa die Zeilenvoraufladung und die Zeilenaktivierung, ausführen. Ein großer Anteil an DRAM's, die heutzutage verwendet werden, gehören zur Familie der synchronen DRAM's mit doppelter Datenrate (DDR SDRAM. Ein DDR SDRAM (einschließlich eines DDR2 und DDR3) erreicht eine größere Bandbreite als ein SDRAM mit Einzeldatenrate, indem Daten auf der ansteigenden und abfallenden Flanke eines Synchronisiersignals auf der Grundlage des Systemtaksignals übertragen werden. Dies verdoppelt effektiv die Übertragungsrate, wodurch das Systemverhalten verbessert wird, ohne dass eine Vergrößerung der Frequenz des Speicherbusses erforderlich ist. Zusätzlich zur Datenübertragungsgeschwindigkeit wird das Leistungsverhalten eines Systems auch durch die Speicherbusbreite beeinflusst. Im Allgemeinen ist die Busbreite dadurch bestimmt, wie viele parallele Datenleitungen verfügbar sind, um mit den Speicherzellen zu kommunizieren. Die Busbreite einer Speichersteuerung legt auch fest, wie viele Datenbits die Steuerung gleichzeitig bewältigen kann. Dies kann von etwa 8 Bits in frühen Systemen bis 256 Bits in komplizierteren Systemen und Graphikkarten reichen. Um das DRAM-Verhalten weiter zu verbessern, werden im Hinblick auf die Busbreite viele Hauptplatinen mit Doppelkanalspeicherung konfiguriert, wodurch der Datendurchsatz zwischen dem DRAM und der Speichersteuerung durch effektives Verdoppeln der Busbreite verdoppelt wird.
- Die Doppelkanaltechnologie (oder allgemein de Mehrkanaltechnologie) wurde entwickelt, um hauptsächlich das Problem von Engstellen zu lösen. Wie zuvor angegeben ist, bestimmt der Aufbau einer Speichersteuerung typischerweise die Art und die Geschwindigkeit des DRAM's, der verwendet werden kann, sowie auch die maximale Größe jedes einzelnen Speichermoduls und die Gesamtspeicherkapazität des Systems. Es gibt Speichersteuerungen mit einer Vielzahl von eingebauten Merkmalen und Eigenschaften, aber diese waren in der Vergangenheit typischerweise so ausgebildet, dass eine Steuerung eines einzelnen Speicherkanals erreicht wurde. Vorteile einer Einzelkanalspeichersteuerung sind die geringen Kosten und die Flexibilität. Jedoch erzeugen Einzelkanalspeichersteuerungen eine Engstelle, wenn ihr Leistungsverhalten nicht ausreichend ist, um mit dem Leistungsverhalten der CPU Schritt zu halten. In vielen Fällen bleibt die CPU untätig, da keine Daten zum Bearbeiten vorhanden sind, wenn die Speichersteuerung nicht in der Lage ist, den erforderlichen Datenstrom aufrecht zu erhalten. Als allgemeine Regel gilt, dass die meisten Einzelkanalspeicher diese Engstelle bilden, wenn der Durchsatz des CPU-Busses den Busdurchsatz des einzelnen Speicherkanals übersteigt.
- Eine Doppelkanalkonfiguration umgeht typischerweise die Problematik einer Engstelle durch effektives Verdoppeln des Betrags an verfügbarer Speicherbandbreite. Anstelle eines Einzelspeicherkanals wird ein zweiter paralleler Kanal hinzugefügt, um die Engstelle zu reduzieren, indem zwei Speicherkanäle gleichzeitig betrieben werden. Somit kann die Doppelkanalarchitektur die bestehende SDRAM-(beispielsweise DDR)Technologie ausnutzen und kann das oder die Verfahren verbessern, mit denen auf den Speicher zugegriffen wird. Um Doppelkanalspeichersteuerungen zu verwenden, sind die DRAM-Bauelemente typischerweise auf zwei unterschiedliche Busse aufgeteilt, um den Speichersteuerungen den parallelen Zugriff zu ermöglichen, wodurch somit die theoretische Größe der Bandbreite des Busses verdoppelt wird. Aus Sicht des Funktionsverhaltens könnten mehr Kanäle eingerichtet werden (ein Kanal für jede DRAM-Zelle könnte eine ideale Lösung sein), aber auf Grund der Anschlusszahl, der Leitungskapazität und der Notwendigkeit für gleiche Länge für Leitungen mit parallelem Zugriff können zusätzliche Kanäle im Allgemeinen nur sehr schwer eingerichtet werden. Gegenwärtig werden graphische Subsysteme höherer Leistungsfähigkeit mit vier 64-Bit-simultanen Speichersteuerungen, die parallel arbeiten, versehen, um insgesamt 256 Datenleitungen gleichzeitig zu verwalten. In einigen Fällen werden Speichersteuerungen, die mehrere Kanäle handhaben können, so gestaltet, dass sie in einem „Mehrfachmodus” arbeiten, wobei beispielsweise zwei 64-Bit-Speichersteuerungen verwendet werden, um ein 128-Bit-Speicherbauelement abzurufen, oder um eine einzelne logische 128-Bit-Schnittstelle zu verwalten.
- In vielen Rechnerarchitekturen, in denen hoch zuverlässige Speichersubsysteme erforderlich sind, werden redundante Speicherbauelemente und eine Fehlerkorrekturcodierung (ECC) verwendet, um mögliche Fehler zu korrigieren, die während des Betriebs auftreten können. Die ECC wird häufig mittels einem Mehr-Bit-Symbol aufgebaut, um Fehler zu korrigieren, die sich durch ein nicht funktionsfähiges Speicherbauelement ergeben. Diese Konfiguration/Verwendung der ECC wird häufig als „Chiptötungs-ECC” bezeichnet. Doppelkanalkonfigurationen sind für die Chiptötungs-ECC relevant. Insbesondere ist die Chiptötungs-ECC ein Grund, warum Speichersteuerungen, die mehrere Kanäle unterstützen, so ausgebildet sind, dass sie in einem Mehrfachmodus arbeiten, wenn die durch die Chiptötungs-ECC erforderliche Bandbreite größer war als die Datenpfadbreite der Speicherbauelemente. Beispielsweise würde eine Unterstützung für eine x4-Chiptötungs-ECC bedeuten, dass jegliches 4-Bit-Symbol reparierbar ist, selbst wenn es vollständig falsch ist. Die Anzahl an x4-Symbolen, die von der Chiptötungs-ECC verwendet wird, bestimmt die Größe der erforderlichen Schnittstelle, d. h. der erforderlichen Breite des Datenpfads. Wenn beispielsweise 32-4 Symbole verwendet werden, würde eine 128-Bit-Schnittstelle erforderlich sein.
- Obwohl das gesamte Systemverhalten wesentlich verbessert werden kann, indem eine Peripherie für einen Doppelkanalspeicher vorgesehen wird, werden die Entwurfskomplexität und die Größe der Speichersteuerungen, die für die Handhabung von Doppelkanalkonfigurationen ausgebildet sind, unvermeidbar größer als bei Speichersteuerungen, die lediglich einen einzelnen Kanal verwalten, insbesondere, wenn eine Doppelkanalhandhabung sowohl in einer „vereinten” als auch in einer „nicht vereinten” Konfiguration erforderlich ist. Es ist daher problematisch, Speichersteuerungen zu gestalten und aufzubauen, die für eine Doppelkanalspeichersteuerung ausgebildet sind, während die Flächeneffizienz beibehalten wird und nicht wesentlich mehr Komplexität als in Speichersteuerungen erzeugt wird, die für die Handhabung lediglich eines einzelnen Speicherkanals ausgebildet sind.
- Andere entsprechende Probleme, die mit dem Stand der Technik verknüpft sind, werden für den Fachmann beim Vergleich derartiger konventioneller Technologie mit der vorliegenden Erfindung, wie sie hierin beschrieben ist, ersichtlich.
- Überblick über die Erfindung
- Ein System (beispielsweise ein Computersystem) umfasst DRAM-(dynamische Speicher mit wahlfreiem Zugriff)Bauelemente, die mit einem DRAM-Bus gekoppelt sind, und umfasst eine DRAM-Steuerung, die ausgebildet ist, den Zugriff auf die DRAM-Bauelemente zu verwalten und zu steuern. In einer Gruppe aus Ausführungsformen umfasst die DRAM-Steuerung zwei unabhängige DRAM-Substeuerungen, um Doppelspeicherkanäle zu steuern. Im Mehrfachmodus bzw. vereinten Modus, der beispielsweise durch Chiptötungs-ECC erforderlich ist, arbeiten die beiden unabhängigen DRAM-Substeuerungen als eine einzelne (zwei mal N)-Bit-(beispielsweise 128-Bit breite) Doppelkanalspeichersteuerung, während im nicht vereinten Modus die beiden unabhängigen DRAM-Substeuerungen als zwei Einzelkanal-N-Bit (beispielsweise 64-Bit) breite Speichersteuerungen arbeiten.
- In einer Gruppe aus Ausführungsformen sind die beiden DRAM-Substeuerungen so gestaltet und eingerichtet, dass sie identisch zueinander sind, wobei jede ausgebildet so ist, dass sie eine physikalische 64-Bit-Schnittstelle besitzt, um zusätzlich einen 64-Bit-Datenpfad zu handhaben. D. h., der Datenpfad durch jede Steuerung umfasst lediglich 64-Bits. Obwohl jede DRAM-Substeuerung lediglich Zugriff auf eine 64-Bit-Schnittstelle besitzt, kann beim Betrieb im vereinten Modus jede DRAM-Substeuerung so arbeiten, als ob sie auf einen 128-Bit-Datenpfad Zugriff hat. D. h., jede DRAM-Substeuerung verhält sich logisch so, als ob sie 128-Bit-Datenblöcke handhaben würde. In einer Gruppe aus Ausführungsformen besitzt jede DRAM-Substeuerung einen entsprechenden Anschluss (Kanal), der von dem System zum Speicherzugriff verwendet wird. Einer der Anschlüsse (der einer der DRAM-Substeuerungen entspricht) ist als eine einzelne 128-Bit-DRAM-Steuerung ausgebildet. Danach wird der gesamte Datenverkehr auf dem konfigurierten Anschluss (beispielsweise mittels einer konfigurierten Nordbrücke, die mit den DRAM-Substeuerungen gekoppelt ist) für den anderen Anschluss dupliziert. Jede DRAM-Substeuerung kann somit 128-Bit bearbeiten im Hinblick auf die Steuerlogik, während lediglich auf tatsächliche Datenpfade mit 64 Bit zugegriffen wird.
- In einer Gruppe aus Ausführungsformen umfasst das Übertragen innerhalb des Systems das Auslesen und das Beschreiben von Cache-Zeilen, die eine größere Breite als ein Speicherbus, beispielsweise eine Breite von 64 Bytes, aufweisen. Das Auslesen und/oder das Beschreiben von Cache-Zeilen unter Anwendung eines 128-Bit-Speicherkanals anstelle eines 64-Bit-Speicherkanals verringert die Größe der Übertragungsblöcke, die zum Lesen und/oder Schreiben von Daten auf einer einzelnen Cache-Zeile erforderlich sind. Folglich kann die Größe von Blockübertragungen für einen 128-Bit breiten Speicherkanal halb so groß sein wie die Größe von Blockübertragungen für einen 64-Bit breiten Speicherkanal. Jede DRAM-Substeuerung kann daher die Anzahl an Einheiten (d. h. die Größe) für Blockübertragungen einstellen, um der Tatsache Rechnung zu tragen, dass sie nunmehr logisch einen 128-Bit breiten Speicherkanal steuert (wobei physikalisch lediglich ein 24-Bit breiter Datenpfad gesteuert wird).
- Ein System umfasst eine erste und eine zweite Speichersteuerung und ein erstes und ein zweites Speichermodul. Jede Speichersteuerung besitzt einen jeweiligen n-Bit-Datenpfad, und jedes Speichermodul umfasst n Datenleitungen (d. h. einen n-Bit-Datenanschluss bzw. Port), wobei der n-Bit-Datenpfad der ersten Speichersteuerung mit dem n-Bit-Datenpfad des ersten Speichermoduls verbunden ist und wobei der n-Bit-Datenpfad der zweiten Speichersteuerung mit dem n-Datenanschluss des zweiten Speichermoduls verbunden ist. Das System ist ausgebildet, einen logischen Speicherkanal mit einem (2n-Bit) breiten Datenpfad zu verwenden, auf den unter Anwendung der beiden separaten Speichersteuerungen zugegriffen werden kann. Konfigurationsinformation kann in die beiden Speichersteuerungen (beispielsweise durch das BIOS) geschrieben werden, um die zwei Speichersteuerungen so zu konfigurieren, dass diese im vereinten Modus arbeiten, und ein Kanal entsprechend einem der Speichersteuerungen kann als ein (2n)-Bit breiter Speicherkanal ausgewiesen werden. Nachfolgend werden alle Zugriffe zu dem ausgewiesenen Kanal und damit zu seiner entsprechenden Speichersteuerung simultan zu der anderen Speichersteuerung kopiert. Jede Speichersteuerung arbeitet daher so, als ob sie eine (2n)-Bit-Steuerung repräsentieren, während tatsächlich auf einen n-Bit-Datenpfad zugegriffen wird.
- Das System kann Speicheranforderungen zu der ausgewiesenen Speichersteuerung senden, um (2n)-Bit-Blöcke an Daten über den (2n)-Bit breiten Speicherkanal zu übertragen und/oder zu empfangen. Diese Speicheranforderungen können zu der anderen Speichersteuerung dupliziert bzw. gespiegelt werden, und in Reaktion auf diese Anforderungen kann die erste Speichersteuerung einen ersten n-Bit-Bereich jedes der (2n)-Bitblöcke an Daten zu und/oder von dem ersten Speichermodul übertragen und/oder empfangen, und die zweite Speichersteuerung kann den verbleibenden n-Bit-Bereich des (2n)-Bit Blöcke an Daten zu und/oder von dem zweiten Speichermodul übertragen und/oder von diesem empfangen. Die Daten können somit für das System in (2n)-Bit-Blöcken bereitgestellt werden. Das System ist ferner konfigurierbar, so dass es in einem nicht vereinten Modus arbeitet, wobei die zwei logischen Speicherkanäle verwendet werden, wobei jeder n-Bit breit ist, wobei die beiden Speichersteuerungen individuell jeden Speicherkanal unter Anwendung ihrer jeweiligen n-Bit-Datenpfade steuern. Entsprechende Speichersteuerungsbefehle werden zu beiden Speichersteuerungen gesendet, oder zu jeder der beiden entsprechenden Anschlüsse, die für die Speichersteuerungen konfiguriert sind, um auf Daten über den jeweiligen n-Bit-Datenpfad der zugehörigen Speichersteuerung zuzugreifen.
- Kurze Beschreibung der Zeichnungen
- Andere Aspekte der Erfindung gehen aus dem Studium der folgenden detaillierten Beschreibung unter Bezugnahme auf die begleitenden Zeichnungen hervor, in denen:
-
1 eine Blockansicht eines anschaulichen Systems mit einer Speichersteuerung ist, die zum Zugreifen auf einen Speicher mittels eines Speicherbusses ausgebildet ist; -
2 eine Teillogikblockansicht einer Ausführungsform der Speichersteuerung aus1 ist; -
3 eine detailliertere Blockansicht ist, in der eine Ausführungsform der Speichersteuerungskonfiguration aus2 gezeigt ist; und -
4 eine Blockansicht ist, in der eine Ausführungsform eines Aufbaus gezeigt ist, in welchem zwei 64-Bit-Speichersteuerungen verwendet werden, um 128-Bit-Daten für einen 128-Bit-Logikspeicherkanal bereitzustellen. - Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen gezeigt und werden nachfolgend detaillierter beschrieben. Zu beachten ist jedoch, dass die Zeichnungen und die Beschreibung nicht beabsichtigen, die Erfindung auf die spezielle offenbarte Form einzuschränken, sondern die Erfindung soll vielmehr alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und des Schutzbereichs der vorliegenden Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist.
- Art bzw. Arten zum Ausführen der Erfindung
-
1 zeigt eine Blockansicht eines grundlegenden anschaulichen Systems100 , das ein Computersystem sein kann, in welchem eine Verarbeitungseinheit100 mit einem Prozessorkern101 eingerichtet ist, der mit einer Speichersteuerung103 verbunden ist. In einigen Ausführungsformen ist der Prozessorkern101 mit der Speichersteuerung103 über eine Nordbrücke107 gekoppelt, die ausgebildet ist, den Datenstrom zu und von dem Prozessorkern101 zu verwalten. Die Speichersteuerung103 ist mit einem Speicherbus111 gekoppelt, über welchen die Speichersteuerung103 den Zugriff zu dem Speicher105 regelt, um den Datenaustausch zwischen der Verarbeitungseinheit100 und dem Speicher105 zu ermöglichen. Der Fachmann erkennt, dass das System100 in vielfältiger Weise eingerichtet werden kann und dieses nur gezeigt ist, um den grundlegenden Aufbau darzustellen, in welchem der Speicherzugriff mittels einer Speichersteuerung gesteuert ist. - In einer Gruppe aus Ausführungsformen umfasst die Speichersteuerung
103 Subschaltungen und/oder Komponenten, wozu Register zur Handhabung einer Reihe von Funktionen gehören, wie sie für das System100 erforderlich sind. Beispielsweise enthält die Speichersteuerung103 diverse Puffer für die Zwischenspeicherung von Daten, die zwischen dem Speicher105 und dem Prozessorkern101 ausgetauscht werden, und es kann eine Aufteilung in Sub-Steuerblöcke vorgesehen sein. In ähnlicher Weise kann der Speicher105 mehrere Speicherelemente oder Speicherbauelemente in diversen Konfigurationen aufweisen, die ausgebildet sind, die Kommunikation mit der Speichersteuerung103 über einen Speicherbus111 abzuwickeln. Es sind diverse Ausführungsformen möglich und hierin berücksichtigt. Der Speicher105 kann ein DRAM (dynamischer Speicher mit wahlfreiem Zugriff) sein und die Speichersteuerung103 ist in diesem Falle eine DRAM-Steuerung. Insbesondere kann das System100 einen DRAM mit doppelter Datenrate (DDRDRAM) beispielsweise einen DDR3-Speicher (Speicher105 ) umfassen, der durch DDR3-Speichersteuerung103 gesteuert ist. In einer Gruppe aus Ausführungsformen ist die DRAM-Steuerung103 ausgebildet, den Zugriff auf die DRAM-Bauelemente105 über mehr als einen Kanal, beispielsweise über duale Kanäle zu verwalten oder zu steuern. - Beide DRAM-Kanäle besitzen eine spezifizierte Größe, beispielsweise eine Breite von 64-Bits. Somit ist ggf. ein einzelner DRAM-Kanal 64-Bits breit. Zwei DRAM-Kanäle parallel zueinander können daher eine effektive Busbreite von 128 Bits liefern. In einigen Systemkonfigurationen werden die beiden DRAM-Kanäle vorzugsweise miteinander „vereint”, um als eine einzelne logische 128-Bit-Schnittstelle zu fungieren. In gewissen anderen Systemkonfigurationen sind die beiden DRAM-Kanäle vorzugsweise „nicht vereint”, so dass diese als zwei unabhängige 64-Bit-Kanäle fungieren. Das Berücksichtigen beider Systemkonfigurationen erfordert das Bewahren der Unabhängigkeit der kleineren einzelnen Kanal-(Bus)Breite, was in dem zuvor genannten Beispiel das Beibehalten einer 64-Bit-Unabhängigkeit bedeuten würden. Zu beachten ist, dass, obwohl in den hierin erläuterten Ausführungsformen ein einzelner Kanal eine Busbreite von 64-Bits besitzt, in anderen Ausführungsformen ein einzelner Kanal eine andere Busbreite aufweisen kann, und es sind eine Vielzahl an Ausführungsformen und Systemkonfigurationen möglich und hierin berücksichtigt, in denen die Busbreite größer oder kleiner ist als 64 Bits.
- In einer Gruppe aus Ausführungsformen umfasst der DRAM
105 mehrere physikalische DIMM-(Doppelreihenspeichermodule). Das System100 kann so ausgebildet sein, dass ein von der DRAM-Steuerung103 angesprochner logischer DIMM entweder zwei identische physikalische 64-Bit DIMM's, die parallel betrieben werden, aufweist, um eine einzelne 128-Bit-Schnittstelle zu bilden (wie in einem vereinten Modus), oder er kann zwei physikalische 64-Bit-DIMM aufweisen (wie in einem nicht vereinten Modus). Um unabhängige 64-Bit-Kanäle beizubehalten, um damit die Möglichkeit zu bewahren, auf zwei 64-Bit breite logische DIMM zuzugreifen, ist die DRAM-Steuerung105 mit zwei Speichersubsteuerungen versehen. Wie in2 gezeigt ist, ist jede Speichersubsteuerung ausgebildet, mindestens einen jeweiligen einzelnen 64-Bit breiten Kanal im nicht vereinten Modus zu steuern, wobei eine der Steuerungen auch ausgebildet ist, einen 128-Bit-Kanal zu steuern. Wenn die beiden Speichersubsteuerungen im vereinten Modus betrieben werden, ist ein logisches DIMM ggf. zwei Kanäle breit. Für jedes physikalische DIMM eines logischen Doppelkanal-DIMM ist es unter Umständen erforderlich, dass sie in der Größe und somit den gesamten Zeitgeberparametern gleich sind, wobei beide Speichersubsteuerungen mit der gleichen Information programmiert sind. Wenn die Speichersubsteuerungen in einem 64-Bit-Modus betrieben werden, ist ein logischen DIMM äquivalent zu einem physikalischen 64-Bit-DIMM, wobei eine zugeordnete Speichersubsteuerung jeden Kanal steuert. - Die in
2 gezeigte DRAM-Steuerung203 repräsentiert eine mögliche Ausführungsform der DRAM-Steuerung103 , die in1 gezeigt ist, und kann Speichersubsteuerungen204 und206 aufweisen, um entsprechend den Speicherkanal 0 bzw. 1 zu steuern. Die DRAM-Steuerung203 ist ausgebildet, die Speichersubsteuerungen204 und206 entweder im vereinten oder nicht vereinten Modus zu betreiben. In der in2 gezeigten Ausführungsform ist die Speichersubsteuerung206 ausgebildet, einen 64-Bit-Datenpfad zu verwalten, und die Speichersubsteuerung204 ist ausgebildet, einen 64-Bit-Datenpfad (im nicht vereinten Modus) oder einen 128-Bit-Datenpfad (im vereinten Modus) zu verwalten. Somit steuert im nicht vereinten Modus die Speichersubsteuerung204 den 64-Bit-Datenpfad des Kanals 0, und die Speichersubsteuerung206 steuert den 64-Bit-Datenpfad des Kanals 1. Im vereinten Modus ist die Speichersubsteuerung206 deaktiviert und die Speichersubsteuerung204 wird im 128-Bit-Modus betrieben, um beide Kanäle zu steuern. Dies macht es jedoch notwendig, dass der 64-Bit-Datenpfadausgang des Kanals 1 entsprechend in einem Multiplexbetrieb betrieben wird, abhängig davon, ob der Kanal 1 von der Speichersubsteuerung206 (im nicht vereinbarten Modus) gesteuert wird, oder von der Steuerung204 (im vereinten Modus) gesteuert wird. Somit ist ein Multiplexer (MUX)208 ausgebildet, zwischen den jeweiligen 64-Bit-Datenpfaden unter Anwendung eines Vereinigungsmodussignals als Steuersignal auszuwählen. Wenn die Speichersubsteuerungen204 und206 in einem vereinten Modus betrieben werden, arbeitet der MUX208 so, dass ein 64-Bit-Datenpfad212 ausgewählt wird, wohingegen beim Betrieb im nicht vereinten Modus der MUX208 so arbeitet, dass ein 64-Datenpfad210 ausgewählt wird. - Eine detailliertere Darstellung dieser Ausführungsform ist in
3 gezeigt. Der Speicher105 umfasst physikalische 64-Bit DIMM's302 und304 . Das DIMM302 ist mit dem Datenpfad der DRAM-Substeuerung204 verbunden, und das DIMM304 ist mit dem Ausgangs-MUX306 verbunden. Wie gezeigt, wird eine Nordbrücke310 verwendet, um eine Schnittstelle zwischen beispielsweise einer zentralen Recheneinheit und den DRAM-Substeuerungen204 und206 bereitzustellen. In dieser Ausführungsform ist der Anschluss 0 (beispielsweise mittels Software) als eine 128-Bit-Steuerung konfiguriert, wenn im vereinten Modus gearbeitet wird. Folglich ist die DRAM-Substeuerung204 mit einem 128-Bit-Datenpfad versehen, wobei die Bits 63:0 dem Kanal 0 (wie zuvor angegeben) entsprechen, und wobei die Bits 127:64 dem Kanal 1 entsprechen, wenn die DRAM-Substeuerung204 im vereinten Modus verwendet wird. Somit wird der 64-Bit-Datenpfad, der dem Kanal 1 entspricht, ebenfalls zwischen der Nordbrücke310 und dem DRAM-Substeuerungen204 und206 im Multiplexbetrieb ausgetauscht. - Beim Betrieb im nicht vereinten Modus wird der MUX
208 verwendet, um die 64-Bit-Daten, die dem Kanal (Anschluss 1) entsprechen und von der Nordbrücke310 erhalten werden, an die DRAM-Substeuerung206 weiterzuleiten. Der MUX306 wird dann verwendet, um die Daten aus der DRAM-Steuerung206 zur Übertragung an das DIMM304 des Kanals 1 auszuwählen. Bei Betriebsweise im vereinten Modus wird der MUX308 verwendet, um die 64-Bit-Daten, die dem Anschluss 1 entsprechen und von der Nordbrücke310 empfangen werden, an die DRAM-Substeuerung204 als Bits 127:64 des 128-Bit-Datenpfads, der von der DRAM-Substeuerung204 gesteuert wird, weiterzuleiten. Der MUX306 wird dann verwendet, um die Bits 127:64 des Datenpfads von der DRAM-Steuerung204 zur Ankopplung an das DIMM304 des Kanals 1 auszuwählen. Des weiteren kann der MUX306 auch verwendet werden, um die Adressen/Befehlsinformationen, die zum Adressieren von und zum Zugreifen auf die DIMM302 und304 auszuwählen. Im nicht vereinten Modus wird der MUX306 verwendet, um Adressen- und Befehlsinformationen von der DRAM-Substeuerung206 auszuwählen, während im vereinten Modus der MUX306 verwendet wird, um Adressen- und Befehlsinformationen aus der DRAM-Substeuerung204 auszuwählen. - Obwohl dies eine Lösung darstellt, um der DRAM-Steuerung
103 die Fähigkeit zu verleihen, auf zwei unabhängige 64-Bit-Kanäle oder einen einzelnen 128-Bit-Kanal zuzugreifen (im Allgemeinen zwei unabhängige n-Bit-Kanäle oder ein einzelner (2n)-Bitkanal) führt das Konfigurieren der DRAM-Substeuerung derart, dass diese tatsächlich in der Lage ist 128 Bits zu verwalten, indem ein tatsächlicher 128-Bit-Datenpfad gesteuert wird, zu einer größeren Fläche, die von der DRAM-Substeuerung204 eingenommen wird. Ferner kann der Multiplexbetrieb, der von dem MUX306 und dem MUX308 ausgeführt wird, problematisch sein, da das Einrichten der Quellensynchronisierbusse äußerst problematisch ist. Ferner kann es eine 128-Bit-Schnittstelle erforderlich machen, dass die DRAM-Substeuerung204 einen wesentlichen Anteil an Daten in Konfigurationsregistern ablegt, um die DIMM-Art und den Speicherbereich der zusätzlichen DIMM's für den anderen 64-Bit-Kanal (d. h. für die Datenbits 127:64) zu bestimmen. Wie in3 gezeigt ist, erfordert eine derartige Konfiguration auch einen vollständig 128-Bit-Datenpfad zwischen der DRAM-Substeuerung204 und den DIMM302 und304 , sowie zwischen der DRAM-Substeuerung204 und der Nordbrücke310 , was in Anwesenheit einer weiteren Steuerung, etwa der DRAM-Substeuerung206 , die in einem nicht vereinten Modus arbeiten muss, schwierig einzurichten ist. -
4 zeigt eine alternative Ausführungsform400 , in der DRAM-Substeuerungen404 und406 beide ausgebildet sind, unabhängig entsprechende 64-Bit-Datenpfade zu steuern, wobei sie auch ausgebildet sind, zusammen einen einzelnen 128-Bit-Datenpfad zu steuern, wobei jede Substeuerung nicht mit einem tatsächlichen 128-Bit-Datenpfad versehen sein muss (wie in der in3 gezeigten Konfiguration). In dieser Ausführungsform sind die unabhängigen DRAM-Substeuerungen204 und205 ausgebildet, als eine einzelne 128-Bit breite Doppelkanal-DRAM-Steuerung in einem vereinten Modus zu arbeiten, oder um als zwei Einzelkanal-DRAM-Steuerung mit 64 Bitbreite in einem nicht vereinten Modus zu arbeiten. - Im Allgemeinen sind die DRAM-Substeuerungen
404 und406 ausgebildet, um als eine einzelne <2n>-Bitbreite Doppelkanal-DRAM-Steuerung im vereinten Modus zu arbeiten, oder um als zwei Einzelkanal-DRAM-Steuerungen mit einer Breite von n-Bit im nicht vereinten Modus zu arbeiten. Im vereinten Modus sind beide DRAM-Subssteuerungen406 und404 mit der gleichen Information programmiert. Somit werden Informationen/Daten, die in eine erste Gruppe aus Registern geschrieben werden und die der DRAM-Substeuerung404 entsprechen, beiden Kanälen (Anschlüssen) zugeleitet. Information/Daten, die in eine zweite Gruppe aus Registern geschrieben werden, die der DRAM-Substeuerung406 entsprechen, werden ignoriert. Lese- und Schreiboperation werden auf die Größe der Cache-Zeile zugeschnitten, die in dem System verwendet werden. Beispielsweise werden in einer Gruppe aus Ausführungsformen 64-Byte-Cache-Zeilen verwendet. Für eine 64-Bit-Schnittstelle würde dies bedeuten, dass ein 8-Einheiten-Blockdatentransfer (oder eine Blocklänge von 8) vorgesehen ist. Für eine 128-Bit-Schnittstelle würde dies eine Blocklänge von 4 bedeuten. - Vereinter Modus
- Beim Betrieb im vereinten Modus arbeiten in der in
4 gezeigten Konfiguration die DRAM-Substeuerungen406 und404 jeweils so, als ob sie die gesamte 128-Bit-Schnittstelle steuern würden, wobei jede tatsächlich eine Hälfte der 128-Bit-Schnittstelle steuert. Somit greift selbst beim Betrieb im vereinten Modus die DRAM-Substeuerung406 auf das DIMM304 zu und die DRAM-Substeuerung404 greift auf das DIMM302 zu. Jede Substeuerung stellt die Anzahl an Zeiteinheiten in einem Blocktransfer ein und stellt auch die Adressenzuordnung ein, so dass eine Funktion stattfindet, als ob der volle 128-Bit-Bus gesteuert würde. Somit repräsentiert die in4 gezeigte Konfiguration eine optimale Lösung, da die DRAM-Substeuerung404 und die DRAM-Substeuerung406 so gestaltet und aufgebaut sind, dass sie identisch sind, und somit kein Multiplex-Betrieb erforderlich ist. - Jede Substeuerung kann prinzipiell eine n-Bit-(beispielsweise 64-Bit-)Schnittstelle handhaben. Der Datenpfad durch jede Steuerung ist gleich, n-Bits, was in diesem Falle 64-Bits bedeutet. Obwohl jede Substeuerung lediglich eine entsprechende 64-Bit-Schnittstelle (n-Bit) steuert, ist somit jede Substeuerung für 128-Bit ausgelegt (2n)-Bit im Hinblick auf die Steuerlogik, beispielsweise zum Steuern eines logischen 128-Bit- Datenpfads ((2n)-Bit). Anders ausgedrückt, jede Substeuerung verhält sich logisch so, als ob sie Daten in 128-Bit-((2n)-Bit)-Blöcken handhaben würde, d. h. es werden gleichzeitig 128 Bits an Daten ((2n-Bits)) übertragen und empfangen. Die volle Bandbreite wird erreicht, indem festgelegt wird, dass eine der Substeuerungen, beispielsweise die DRAM-Substeuerung
404 , die ersten 64-Bits (n-Bits) jedes der 128-Bit-Datenblöcke ((2n)-Bitdatenblöcke) handhabt, und dass die andere Substeuerung, beispielsweise die DRAM-Substeuerung406 , eine zweite „Kopie” der Befehle mit entsprechenden anderen 64-Bits (n-Bits) an Daten handhabt (die die verbleibende Hälfte jedes der vollständigen 128-Bit-Datenblöcke ((2n)-Bitdatenblöcke) repräsentieren), wobei beide Substeuerungen so betrieben werden, als ob sie den gesamten 128-Bit-Datenpfad ((2n)-Bit-Datenpfad) handhaben. - In einer Gruppe an Ausführungsformen kann beim Systemhochlauf das BIOS die Substeuerungen konfigurieren und initialisieren, so dass sie in einem vereinten Modus arbeiten, wenn eine Steuerung eines einzelnen (2n)-Bit breiten Kanals gewünscht ist, und einer der Kanäle entsprechend einer der beiden Substeuerungen (beispielsweise der Kanal, der der DRAM-Substeuerung
404 entspricht) wird als der (2n)-Bit breite Kanal spezifiziert, der verwendet wird. Nach Beendigung der Initialisierung kann das BIOS einfach auf den spezifizierten Kanal zugreifen, wobei alle nachfolgenden Konfigurationszugriffe auf den spezifizierten Kanal (und damit auf die entsprechende Substeuerung) „gespiegelt” oder kopiert werden auf die andere Substeuerung (mit der möglichen Ausnahme gewisser spezifizierter Übungsregister, die das BIOS individuell in jeder Substeuerung beschreibt, um sicherzustellen, dass die Substeuerung korrekt mit den jeweiligen Kanälen arbeitet). Nach Beendigung der Initialisierung muss im Allgemeinen das BIOS und jegliche (System) Software nicht mehr wissen, dass die Substeuerungen im vereinten Modus arbeiten, und es wird lediglich der als der (2n)-Bit breite Kanal spezifizierte Kanal (beispielsweise der Kanal, der der DRAM-Substeuerung404 entspricht) angesprochen, wobei alle nachfolgenden Zugriffe auf den spezifizierten Kanal mittels der Nordbrücke410 auf die andere Substeuerung gespiegelt werden (beispielsweise die DRAM-Substeuerung406 ). - Obwohl die vorliegende Erfindung mit Bezug zu speziellen Ausführungsformen beschrieben ist, ist zu beachten, dass die Ausführungsformen lediglich anschaulicher Natur sind und den Schutzbereich der Erfindung nicht beschränken. Es sind jegliche Variationen, Modifizierungen und Hinzufügungen und Verbesserungen an den beschriebenen Ausführungsformen möglich. Diese Variationen, Modifizierungen, Hinzufügungen und Verbesserungen liegen innerhalb des Schutzbereichs der Erfindung, wie sie in den folgenden Patentansprüchen angegeben ist.
- Industrielle Anwendbarkeit
- Diese Erfindung ist allgemein auf Mikroprozessoren anwendbar.
- Zusammenfassung
- Eine DRAM-Steuerung (
103 ) umfasst zwei Substeuerungen (406 ,404 ), wovon jede in der Lage ist, eine entsprechende n-Bit-Schnittstelle (beispielsweise eine 64-Bit-Schnittstelle) zu handhaben. Jede Substeuerung ist ferner ausgebildet, dass sie (2n)-Bitfähig ist (beispielsweise 128-Bit) im Hinblick auf die Steuerlogik, um einen logischen 128-Bit-Datenpfad zu steuern. In einem vereinten Modus arbeitet jede Substeuerung so, als ob sie Daten in 128-Bit-Blöcken verarbeitet (d. h. den gesamten 128-Bit-Datenpfad verarbeitet), während tatsächlich die volle Bandbreite erreicht wird, indem eine der Substeuerungen veranlasst wird, auf Befehlen und auf einem ersten n-Bit-Bereich jedes (2n)-Bit Datenblock zu operieren, und indem die andere Substeuerung veranlasst wird, auf einer „Kopie” der Befehle und einem entsprechenden verbleibenden n-Bit-Bereich jedes (2n)-Bit Datenblock zu operieren. Sobald die BIOS die beiden DRAM-Steuerungen konfiguriert und initialisiert hat, so dass diese im vereinten Modus arbeiten, brauchen das BIOS und jegliche Softwareanwendungen nicht mehr wissen, dass zwei Speichersteuerungen zum Zugreifen auf einen einzelnen (2n)-Bit breiten Kanal verwendet werden.
Claims (10)
- Verfahren zum Zugreifen auf einen Speicherkanal mit einem (2n)-Bit Datenpfad, wobei n eine positive Ganzzahl ist, wobei das Verfahren umfasst: Übertragen von Zugriffsinformation zu einer ersten Speichersteuerung (
406 ) mit einem n-Bit-Datenpfad, um (2n)-Bit Datenblöcke über den Speicherkanal zu übertragen und/oder zu empfangen; Kopieren der Zugriffsinformation in eine zweite Speichersteuerung (404 ) mit einem n-Bit-Datenpfad; in Reaktion auf das Übertragen der Zugriffsinformation und des Kopierens der Zugriffsinformation: Übertragen und/oder Empfangen eines ersten n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die erste Speichersteuerung über ihren n-Bit-Datenpfad; und Übertragen und/oder Empfangen eines verbleibenden n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die zweite Speichersteuerung über ihren n-Bit-Datenpfad. - Verfahren nach Anspruch 1, das ferner umfasst: Übertragen und/oder Empfangen des ersten n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die erste Speichersteuerung über ihren n-Bit-Datenpfad zu und/oder von einem ersten physikalischen Speicher (
304 ) mit n-Datenzeilen, die mit dem n-Bit-Datenpfad der ersten Speichersteuerung verbunden sind; und Übertragen und/oder Empfangen des verbleibenden n-Bit-Bereichs jedes der (2n)-Bit Datenblöcke durch die zweite Speichersteuerung über ihren n-Bit-Datenpfad zu und/oder von einem zweiten physikalischen Speicher (302 ) mit n-Datenleitungen, die mit dem n-Bit-Datenpfad der zweiten Speichersteuerung verbunden sind. - Verfahren nach Anspruch 1, das ferner umfasst: vor dem Übertragen der Zugriffsinformation und dem Kopieren der Zugriffsinformation, Konfigurieren der ersten Speichersteuerung und der zweiten Speichersteuerung, um in einem vereinten Modus zu arbeiten; und Ausführen von Firmware-Befehlen zum Initialisieren eines Systems, das die erste Speichersteuerung und die zweite Speichersteuerung aufweist; wobei das Ausführen der Firmeware-Befehle das Konfigurieren der ersten Speichersteuerung und der zweiten Speichersteuerung umfasst.
- Verfahren nach Anspruch 1, wobei das Übertragen von Zugriffsinformation an die erste Speichersteuerung das Übertragen von Adresseninformationen umfasst: wobei das Verfahren ferner umfasst: Übertragen an die erste Speichersteuerung einen oder mehrere (2n)-Bit Datenblöcke, die der Adresseninformation entsprechen, um den einen oder die mehreren (2n)-Bit Datenblöcke entsprechend der Adresseninformation zu speichern; und Kopieren des einen oder der mehreren (2n)-Bit Datenblöcke, die der Adresseninformation entsprechen in die zweite Speichersteuerung.
- Verfahren nach Anspruch 4, das ferner umfasst: Übertragen eines ersten n-Bit-Bereichs jedes der einen oder der mehreren (2n)-Bit Datenblöcke, die der Adresseninformation entsprechen, durch die erste Speichersteuerung über ihren n-Bit-Datenpfad zu einem ersten physikalischen Speicher, der n-Datenleitungen besitzt, die mit dem n-Bit-Datenpfad der ersten Speichersteuerung verbunden sind; und Übertragen eines verbleibenden n-Bit-Bereichs jedes der einen oder der mehreren (2n)-Bit Datenblöcke, die der Adresseninformation entsprechen, durch die zweite Speichersteuerung über ihren n-Bit-Datenpfad zu einem zweiten physikalischen Speicher, der n-Datenleitungen besitzt, die mit dem n-Bit-Datenpfad der zweiten Speichersteuerung verbunden sind.
- Speichersystem mit: einer ersten Speichersteuerung (
103 ,406 ) mit einem n-Bit-Datenpfad, wobei die erste Speichersteuerung ausgebildet ist, eine erste Art an Zugriffsinformation zu empfangen, die zum Übertragen und/oder Empfangen entsprechender (2n)-Bit Datenblöcke über einen (2n)-Bit Speicherkanal vorgesehen ist; einer zweiten Speichersteuerung (103 ,404 ) mit einem n-Bit-Datenpfad; und einem Steuerblock (410 ), der mit der ersten Speichersteuerung und der zweiten Speichersteuerung verbunden und ausgebildet ist, die erste Art an Zugriffsinformation, die von der ersten Speichersteuerung empfangen wird, in die zweite Speichersteuerung zu spiegeln; wobei die erste Speichersteuerung ausgebildet ist, einen ersten n-Bit-Bereich jedes der (2n)-Bit Datenblöcke über ihren n-Datenpfad entsprechend der empfangen ersten Art an Zugriffsinformation zu übertragen und/oder zu empfangen, und wobei die zweite Speichersteuerung ausgebildet ist, einen verbleibenden n-Bit-Bereich jedes der (2n)-Bit Datenblöcke über ihren n-Bit-Datenpfad gemäß der gespiegelten ersten Art an Zugriffsinformation zu übertragen und/oder zu empfangen. - Speichersystem nach Anspruch 6, wobei die erste Speichersteuerung und die zweite Speichersteuerung ferner ausgebildet sind, jeweils eine entsprechende zweite Art an Zugriffsinformation zu empfangen, die zum Übertragen und/oder Empfange entsprechender n-Bit-Datenblöcke über entsprechende n-Bit-Speicherkanäle vorgesehen sind; wobei die erste Speichersteuerung ausgebildet ist, ihre jeweiligen n-Bit-Datenblöcke über ihren n-Bit-Datenpfad gemäß ihrer empfangenen zugeordneten zweiten Art an Zugriffsinformation zu übertragen und/oder zu empfangen, und wobei die zweite Speichersteuerung ausgebildet ist, ihre jeweiligen n-Bit-Datenblöcke über den n-Bit-Datenpfad gemäß ihrer empfangenen zweiten Art an Zugriffsinformation zu übertragen und/oder zu empfangen.
- Speichersystem nach Anspruch 6, das ferner umfasst: ein erstes Speichermodul (
304 ) mit n-Datenleitungen, die mit dem n-Bit-Datenpfad der ersten Speichersteuerung verbunden sind; und ein zweites Speichermodul (302 ) mit n-Datenleitungen, die mit dem n-Bit-Datenpfad der zweiten Speichersteuerung verbunden sind; wobei die erste Speichersteuerung ausgebildet ist, einen ersten n-Bit-Bereich jedes der (2n)-Bit Datenblöcke zu und/oder von dem ersten Speichermodul über ihren n-Bit-Datenpfad zu übertragen und/oder zu empfangen; und wobei die zweite Speichersteuerung ausgebildet ist, einen verbleibenden n-Bit-Bereich jedes der (2n)-Bit Datenblöcke zu und/oder von dem zweiten Speichermodul über ihren n-Bit-Datenpfad zu übertragen und/oder zu empfangen. - Speichersystem nach Anspruch 6, wobei die erste Speichersteuerung und die zweite Speichersteuerung ausgebildet sind, um zu fungieren als: eine einzelne (2n)-Bit breite Doppekanalspeichersteuerung; oder zwei n-Bit breite Einzelkanal-Speichersteuerungen.
- System (
100 ), das ein Speichersystem gemäß einem der Ansprüche 6 bis 9 aufweist, und das weiterhin eine Verarbeitungseinheit (101 ) aufweist, die ausgebildet ist, Befehle zum Konfigurieren der ersten Speichersteuerung und der zweiten Speichersteuerung über den Steuerblock auszuführen.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/843,434 | 2007-08-22 | ||
| US11/843,434 US8006032B2 (en) | 2007-08-22 | 2007-08-22 | Optimal solution to control data channels |
| PCT/US2008/009101 WO2009025713A1 (en) | 2007-08-22 | 2008-07-28 | An optical solution to control data channels |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE112008002273T5 true DE112008002273T5 (de) | 2010-08-05 |
| DE112008002273B4 DE112008002273B4 (de) | 2022-06-09 |
Family
ID=40009288
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE112008002273.9T Active DE112008002273B4 (de) | 2007-08-22 | 2008-07-28 | Optimale Lösung zur Steuerung von Datenkanälen |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US8006032B2 (de) |
| JP (1) | JP2010537311A (de) |
| KR (1) | KR20100075847A (de) |
| CN (1) | CN101836194B (de) |
| DE (1) | DE112008002273B4 (de) |
| GB (1) | GB2465317A (de) |
| TW (1) | TW200928751A (de) |
| WO (1) | WO2009025713A1 (de) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8098539B2 (en) * | 2009-08-26 | 2012-01-17 | Qualcomm Incorporated | Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation |
| TWI420982B (zh) * | 2010-12-03 | 2013-12-21 | Hon Hai Prec Ind Co Ltd | 印刷電路板 |
| JP5864957B2 (ja) * | 2011-08-31 | 2016-02-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| JP6070374B2 (ja) | 2013-03-29 | 2017-02-01 | 富士通株式会社 | 情報処理装置、メモリ試験プログラムおよびメモリ試験方法 |
| KR20160120004A (ko) | 2015-04-07 | 2016-10-17 | 삼성전자주식회사 | 시스템 온-칩 및 이를 포함하는 전자 기기 |
| US10956342B1 (en) * | 2017-02-03 | 2021-03-23 | Cadence Design Systems, Inc. | Variable channel multi-controller memory system |
| US10546628B2 (en) * | 2018-01-03 | 2020-01-28 | International Business Machines Corporation | Using dual channel memory as single channel memory with spares |
| CN114661641A (zh) * | 2020-12-24 | 2022-06-24 | 华为技术有限公司 | 一种内存模组和内存总线信号处理方法 |
| US11360897B1 (en) * | 2021-04-15 | 2022-06-14 | Qualcomm Incorporated | Adaptive memory access management |
| US11960735B2 (en) * | 2021-09-01 | 2024-04-16 | Micron Technology, Inc. | Memory channel controller operation based on data types |
| KR20240029938A (ko) * | 2022-08-29 | 2024-03-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
| JP2024044793A (ja) * | 2022-09-21 | 2024-04-02 | キオクシア株式会社 | メモリシステム、制御装置および方法 |
| US12271627B2 (en) | 2022-09-30 | 2025-04-08 | Advanced Micro Devices, Inc. | Off-chip memory shared by multiple processing nodes |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5828856A (en) | 1994-01-28 | 1998-10-27 | Apple Computer, Inc. | Dual bus concurrent multi-channel direct memory access controller and method |
| US5604714A (en) | 1995-11-30 | 1997-02-18 | Micron Technology, Inc. | DRAM having multiple column address strobe operation |
| JP4084428B2 (ja) | 1996-02-02 | 2008-04-30 | 富士通株式会社 | 半導体記憶装置 |
| KR100244268B1 (ko) | 1997-04-02 | 2000-02-01 | 김영환 | 비휘발성 메모리 소자 및 제조 방법 |
| US6026466A (en) | 1997-06-16 | 2000-02-15 | Integrated Silicon Solution, Inc. | Multiple row address strobe DRAM architecture to improve bandwidth |
| US6108745A (en) | 1997-10-31 | 2000-08-22 | Hewlett-Packard Company | Fast and compact address bit routing scheme that supports various DRAM bank sizes and multiple interleaving schemes |
| US6545935B1 (en) | 2000-08-29 | 2003-04-08 | Ibm Corporation | Dual-port DRAM architecture system |
| US6452834B1 (en) | 2001-02-13 | 2002-09-17 | Silicon Access Networks | 2T dual-port DRAM in a pure logic process with non-destructive read capability |
| US6816889B1 (en) | 2001-07-03 | 2004-11-09 | Advanced Micro Devices, Inc. | Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node |
| US6999091B2 (en) | 2001-12-28 | 2006-02-14 | Intel Corporation | Dual memory channel interleaving for graphics and video |
| US6794254B1 (en) | 2003-05-15 | 2004-09-21 | Taiwan Semiconductor Manufacturing Company | Embedded dual-port DRAM process |
| TWI224261B (en) * | 2003-08-06 | 2004-11-21 | Via Tech Inc | Mother board utilizing a single-channel memory controller to control multiple dynamic-random-access memories |
| TWI299497B (en) | 2004-06-24 | 2008-08-01 | Via Tech Inc | Method and related apparatus for accessing memory apparatus |
| US7110306B2 (en) | 2004-06-28 | 2006-09-19 | United Memories, Inc. | Dual access DRAM |
| CN100487673C (zh) * | 2005-05-30 | 2009-05-13 | 欧阳昌廉 | 次级内存装置及使用次级内存的方法 |
| US7587521B2 (en) | 2005-06-23 | 2009-09-08 | Intel Corporation | Mechanism for assembling memory access requests while speculatively returning data |
-
2007
- 2007-08-22 US US11/843,434 patent/US8006032B2/en active Active
-
2008
- 2008-07-28 CN CN200880112465.9A patent/CN101836194B/zh active Active
- 2008-07-28 DE DE112008002273.9T patent/DE112008002273B4/de active Active
- 2008-07-28 JP JP2010521846A patent/JP2010537311A/ja active Pending
- 2008-07-28 WO PCT/US2008/009101 patent/WO2009025713A1/en not_active Ceased
- 2008-07-28 KR KR1020107006165A patent/KR20100075847A/ko not_active Withdrawn
- 2008-08-22 TW TW097132034A patent/TW200928751A/zh unknown
-
2010
- 2010-03-15 GB GB1004207A patent/GB2465317A/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| GB2465317A (en) | 2010-05-19 |
| TW200928751A (en) | 2009-07-01 |
| GB201004207D0 (en) | 2010-04-28 |
| US8006032B2 (en) | 2011-08-23 |
| US20090055572A1 (en) | 2009-02-26 |
| CN101836194B (zh) | 2012-08-15 |
| KR20100075847A (ko) | 2010-07-05 |
| DE112008002273B4 (de) | 2022-06-09 |
| CN101836194A (zh) | 2010-09-15 |
| JP2010537311A (ja) | 2010-12-02 |
| WO2009025713A1 (en) | 2009-02-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE112008002273B4 (de) | Optimale Lösung zur Steuerung von Datenkanälen | |
| DE102006002526B4 (de) | Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben | |
| DE69839374T2 (de) | Multitorspeicher verwendende intelligente datenbusschnittstelle | |
| DE102021117636A1 (de) | Speichervorrichtung mit direct-memory-access-engine, system mit der speichervorrichtung und verfahren zum betrieb der speichervorrichtung | |
| DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
| DE69722117T2 (de) | Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung | |
| DE69329904T2 (de) | Echtzeitverarbeitungssystem | |
| DE102019122363A1 (de) | Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte) | |
| DE102009061252B3 (de) | Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes | |
| DE112008001679T5 (de) | Cache-Speicher mit konfigurierbarer Assoziativität | |
| DE69422221T2 (de) | Genaue und komplette Übertragung zwischen verschiedenen Busarchitekturen | |
| DE112013005044T5 (de) | Ausführen von eingehenden PCIE-Schreiboperationen in einen Speicher und Partnereinrichtungen per Dualcast | |
| DE102006050233A1 (de) | Speichermodul, Speichersteuereinheit, Speichersystem und Verfahren zum Steuern eines Speichersystems | |
| DE10048402B4 (de) | Datenspeichersystem | |
| DE102018005759A1 (de) | Verbinden von beschleunigerressourcen unter verwendung einesswitches | |
| DE102013018135B4 (de) | Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen | |
| DE69033412T2 (de) | Datenübertragungssteuervorrichtung für Parallelverarbeitungssysteme | |
| DE69029815T2 (de) | Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung | |
| DE102015203202B4 (de) | Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen | |
| DE102006043311A1 (de) | Speichersystem | |
| DE68924368T2 (de) | Datenverarbeitungssystem mit verzögertem Cache-Schreibvorgang. | |
| DE112022004504T5 (de) | Dynamische port-zuweisung im pcie-gabelungssystem | |
| EP0477595A2 (de) | Cachespeichereinrichtung mit m Busanschlüssen | |
| DE60314641T2 (de) | Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen | |
| DE102023124268A1 (de) | Verfahren und Einrichtung zum Zurücksetzen von Komponenten in einer Seitenbandbusschnittstelle in einem Speichermodul |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R081 | Change of applicant/patentee |
Owner name: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, US Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
| R082 | Change of representative |
Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE |
|
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final |