DE102010053097A1 - Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling - Google Patents

Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling Download PDF

Info

Publication number
DE102010053097A1
DE102010053097A1 DE102010053097A DE102010053097A DE102010053097A1 DE 102010053097 A1 DE102010053097 A1 DE 102010053097A1 DE 102010053097 A DE102010053097 A DE 102010053097A DE 102010053097 A DE102010053097 A DE 102010053097A DE 102010053097 A1 DE102010053097 A1 DE 102010053097A1
Authority
DE
Germany
Prior art keywords
bit
mpr
data
memory
memory controller
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
Application number
DE102010053097A
Other languages
English (en)
Other versions
DE102010053097B4 (de
Inventor
Kuljit S. Wash. Bains
Joseph H. Calif. Salmon
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102010053097A1 publication Critical patent/DE102010053097A1/de
Application granted granted Critical
Publication of DE102010053097B4 publication Critical patent/DE102010053097B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein Memory-Controller, der ein Swizzling-Muster zwischen dem Memory-Controller und den Speichergeräten bestimmen kann. Der Memory-Controller generiert eine Swizzling-Karte aufgrund des bestimmten Swizzling-Musters. Der Memory-Controller kann intern Daten unter Verwendung der Swizzling-Karte vor dem Schreiben der Daten zum Speicher swizzeln, sodass die Daten in der korrekten Reihenfolge an den Pins der Speicherchips erscheinen. Bei Lesevorgängen kann der Controller intern die Daten vor dem Ausführen der Fehlerberichtigungsoperationen unter Verwendung der Swizzling-Karte entswizzeln.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der Erfindung beziehen sich auf Speicherarchitekturen in der Elektronik. Insbesondere beziehen sich Ausführungsformen der Erfindung auf Techniken zur Unterstützung von Daten-Swizzling und Entswizzling.
  • HINTERGRUND
  • Wenn ein Speicher-Datenbus einer Elektronik dafür konzipiert und von einem Memory-Controller zu den Speicherbausteinen geroutet ist, dann ist es üblich, die Spuren zu „swizzeln”, um das Routing innerhalb eines Bytes oder Halbbytes von Daten zu optimieren. Daten-Swizzling bezieht sich auf das Routing von Datenleitungen auf einer Leiterplatte (printed circuit board; PCB), wo die Datenbitsortierung auf der Memory-Controller-Seite und der Speicherbaustein-Seite unterschiedlich ist.
  • 1 zeigt ein Beispiel des Daten-Swizzlings zwischen einem Memory-Controller und einem Speicherbaustein. 1 bietet ein 4-Bit-Beispiel mit nur zwei Bits geswizzelt. Bei einer tatsächlichen Implementierung kann irgendeine Anzahl von Bits mit irgendeiner Menge von Swizzling unterstützt werden. Die Leitungen für zwei Datenbits (D1 und D3) sind direkt zwischen den entsprechenden Pins von Memory-Controller 120 und Speichergerät 140 verbunden. D. h. Datenbit D1 und Datenbit D3 gesendet vom Memory-Controller 120 werden als Datenbit D1 und Datenbit D3 durch das Speichergerät 140 empfangen. Die Übertragung vom Speichergerät 140 zum Memory-Controller 120 funktioniert in derselben Weise.
  • Die anderen zwei Datenbits (D0 und D2) sind geswizzelt. Im Beispiel von 1 ist die Leitung für den Pin, der dem Datenbit D0 von Memory-Controller 120 entspricht, mit dem Pin gekoppelt, der dem Datenbit D2 von Speichergerät 140 entspricht. Ähnlich ist die Leitung für den Pin, der dem Datenbit D2 von Memory-Controller 120 entspricht, mit dem Pin gekoppelt, der dem Datenbit D0 von Speichergerät 140 entspricht.
  • Daher werden Daten, während sie sich vom Memory-Controller 120 zum Speichergerät 140 bewegen, durch die Datenleitungen geswizzelt. Während die Daten sich vom Speichergerät 140 zum Memory-Controller 120 zurückbewegen, werden sie entswizzelt und die Daten, die vom Memory-Controller 120 empfangen werden, sind richtig geordnet und verwendungsbereit.
  • Diese Herangehensweise an das Daten-Swizzling ist in zahlreichen Situationen wirksam gewesen. Während Systeme jedoch an Komplexität und Robustheit zunehmen, könnten einfache Swizzling-Techniken nicht ausreichend sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der Erfindung werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, wobei gleiche Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden.
  • 1 zeigt ein Beispiel des Daten-Swizzlings zwischen einem Memory-Controller und einem Speicherbaustein.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer Elektronik.
  • 3 ist ein Flussdiagramm der Ausführungsform einer Technik zur Generierung einer Swizzling-Karte.
  • 4 ist ein Flussdiagramm von einer Ausführungsform einer Technik des Schreibens von Daten zum Speicher unter Verwendung einer Swizzling-Karte und eines Fehlerkorrekturcodes (error correcting code; ECC).
  • 5 ist ein Flussdiagramm von einer Ausführungsform einer Technik des Lesens von Daten vom Speicher unter Verwendung einer Swizzling-Karte und eines Fehlerkorrekturcodes.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei der folgenden Beschreibung werden zahlreiche spezifische Details gegeben. Verschiedene erfindungsgemäße Ausführungsformen können jedoch ohne diese spezifischen Details umgesetzt werden. In anderen Fällen wurden wohlbekannte Schaltungen, Strukturen und Techniken nicht im Detail gezeigt, um das Verständnis dieser Beschreibung nicht in den Hintergrund rücken zu lassen.
  • In Systemen, die Fehlerkontrolle und/oder Fehlerberichtigungsfunktionalität unterstützen, ist die im Beispiel von 1 gezeigte Swizzling-Technik wirkungslos. Fehlerberichtigungsmechanismen erfordern eine Datensortierung, um in wirksamer Weise zu funktionieren. Hier werden Trainingstechniken beschrieben, die von einem Memory-Controller verwendet werden können, um eine Swizzling-Karte zu generieren, die für Fehlerberichtigungsoperationen verwendet werden kann.
  • Bei einer Ausführungsform kann der Memory-Controller intern Daten unter Verwendung der Swizzling-Karte vor dem Schreiben der Daten zum Speicher swizzeln, sodass die Daten in der korrekten Reihenfolge an den Pins der Speicherchips erscheinen. Bei Lesevorgängen kann der Controller intern die Daten vor dem Ausführen der Fehlerberichtigungsoperationen unter Verwendung der Swizzling-Karte entswizzeln.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer Elektronik. Die in 2 gezeigte Elektronik ist dazu beabsichtigt, einen Bereich an Elektronik (entweder verdrahtet oder drahtlos) zu repräsentieren, wie zum Beispiel Desktop-Computersysteme, Laptop-Computersysteme, Mobilfunktelefone, Personal Digital Assistants (PDAs) einschließlich mobilfunkaktivierten PDAs und Set-Top-Boxen. Alternative Elektronik kann mehr, weniger und/oder unterschiedliche Komponenten einschließen.
  • Elektronik 200 umfasst Bus 205 oder ein anderes Kommunikationsgerät, um Information zu kommunizieren, und Prozessor 210 gekoppelt mit Bus 205, welcher Information verarbeiten kann. Während Elektronik 200 mit einem einzelnen Prozessor gezeigt wird, kann Elektronik 200 mehrere Prozessoren und/oder Koprozessoren enthalten. Elektronik 200 kann weiter Random Access Memory (RAM) oder ein anderes dynamisches Speichergerät 225 (als Speicher bezeichnet) umfassen, das mit Memory-Controller 220 gekoppelt ist, welcher mit Bus 205 gekoppelt ist, und sie kann Information und Anweisungen speichern, die durch Prozessor 210 ausgeführt werden können. Der Speicher 225 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch Prozessor 210 verwendet werden.
  • Die Speichergeräte 225 können irgendwelche von einer Vielzahl von Speichergeräten sein, die zum Beispiel als Single Inline Memory Modules (SIMMs), Dual Inline Memory Modules (DIMMs) usw. konfiguriert sind. Die Speichermodule umfassen einen oder mehrere Dynamic Random Access Memory-(DRAM)-Chips, die gekoppelt sind, um die Datenbits zu empfangen, die im Speicher 225 zu speichern sind. Die DRAM-Chips können zum Beispiel 4 Bit breite Speicherchips, 8 Bit breite Speicherchips, 16 Bit breite Speicherchips usw. sein.
  • Elektronik 200 kann ebenfalls Read Only Memory (ROM) und/oder ein anderes statisches Speichergerät 230 gekoppelt mit dem Bus 205 umfassen, das statische Information und Anweisungen für den Prozessor 210 speichern kann. Das Datenspeichergerät 240 kann mit Bus 205 gekoppelt sein, um Information und Anweisungen zu speichern. Das Datenspeichergerät 240 (beispielsweise eine Magnetdiskette oder optische Disk und ein entsprechendes Laufwerk) kann mit der Elektronik 200 gekoppelt sein.
  • Elektronik 200 kann ebenfalls über den Bus 205 mit Anzeigegerät 250 gekoppelt sein, wie beispielsweise eine Kathodenstrahlröhre (CRT) oder Flüssigkristallanzeige (LCD), um einem Anwender Information anzuzeigen. Das alphanumerische Eingabegerät 260, einschließlich alphanumerischer und anderer Tasten, kann mit Bus 205 gekoppelt sein, um Information und Befehlsauswahlen zu Prozessor 210 zu kommunizieren. Eine andere Art von Benutzereingabegerät ist Cursorsteuerung 270, wie z. B. eine Maus, ein Trackball oder Cursorpfeiltasten für die Kommunikation von Richtungsanweisungsdaten und Befehlsauswahlen an Prozessor 210 sowie für die Steuerung der Cursorbewegung an Anzeige 250.
  • Elektronik 200 kann weiter Netzwerkschnittstellen 280 umfassen, um Zugriff zu einem Netzwerk, wie beispielsweise einem lokalen Netzwerk zu ermöglichen. Die Netzwerkschnittstellen 280 können zum Beispiel eine drahtlose Netzwerkschnittstelle einschließen, die Antenne 285 aufweist, welche eine oder mehrere Antennen repräsentieren kann. Die Netzwerkschnittstellen 280 können ebenfalls beispielsweise eine verdrahtete Netzwerkschnittstelle einschließen, um mit entfernten Geräten über das Netzwerkkabel 287 zu kommunizieren, das beispielsweise ein Ethernetkabel, ein Koaxialkabel, ein Lichtwellenleiter, ein serielles Kabel oder ein paralleles Kabel sein kann.
  • Bei einer Ausführungsform können die Netzwerkschnittstellen 280 Zugriff zu einem lokalen Netzwerk ermöglichen, indem sie beispielsweise dem IEEE 802.11b und/oder IEEE 802.11g Standard entsprechen, und/oder die drahtlose Netzwerkschnittstelle kann Zugriff auf ein Personal Area Network ermöglichen, indem sie beispielsweise Bluetooth-Standards entspricht. Andere drahtlose Netzwerkschnittstellen und/oder Protokolle können ebenfalls unterstützt werden.
  • IEEE 802.11b entspricht IEEE Std. 802.11b-1999 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen: Erweiterung der physikalischen Schicht mit höherer Geschwindigkeit im 2,4-GHz-Band", zugelassen am 16. September 1999, sowie zugehörige Dokumente. IEEE 802.11g entspricht IEEE Std. 802.11 g-2003 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen, Zusatz 4: Weitere Erweiterung mit höherer Geschwindigkeit im 2,4-GHz-Band", zugelassen am 27. Juni 2003, sowie zugehörige Dokumente. Bluetooth-Protokolle sind beschriebenen in „Spezifikation des Bluetooth-Systems: Kern, Version 1.1", veröffentlicht am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc. Associated, und vorherige oder nachfolgende Versionen des Bluetooth-Standards können ebenfalls unterstützt werden.
  • Bei einer Ausführungsform wird eine Swizzling-Karte durch einen Memory-Controller, der mit den Speichergeräten gekoppelt ist, generiert und von diesem verwendet. Der Memory-Controller kann fest verdrahtet sein, um diese Funktionen auszuführen, oder der Memory-Controller kann Anweisungen ausführen, die in Speicher, Firmware oder Mikrocode gespeichert sind. Weiter kann jede Kombination des oben genannten unterstützt werden.
  • 3 ist ein Flussdiagramm der Ausführungsform einer Technik zur Generierung einer Swizzling-Karte. Das Beispiel von 3 gilt für ein 8 Bit breites Speichergerät; es können jedoch andere Speicherbreiten (z. B. 4 Bits, 16 Bits) unterstützt werden. Wie nachfolgend ausführlicher beschrieben, ermöglicht die Swizzling-Karte dem Memory-Controller die Daten intern vor dem Schreiben der Daten zum Speicher zu swizzeln, sodass die Datenbits in der korrekten Reihenfolge an den Speichergeräte-Pins erscheinen.
  • Der Trainingsprozess wird ausgeführt, indem ein Datenmuster in ein Mehrzweckregister (multi-purpose register; MPR) im Speichergerät 300 geschrieben wird. Bei einer Ausführungsform wird ein „Walking 0”-Muster verwendet. Bei einer alternativen Ausführungsform kann ein „Walking 1”-Muster verwendet werden. Unter Verwendung des Walking 0-Musterbeispiels ist das erste Datenmuster, das in das MPR geschrieben wird „1111 1110” für ein 8 Bit breites Gerät. Das Datenmuster wird in das MPR unter Verwendung des Adressbus geschrieben, der nicht geswizzelt ist.
  • Das Datenmuster wird vom MPR im Speichergerät 310 gelesen. Die Datenleitung, die „0” zurückgibt, wird zum entsprechenden Memory-Controller-Bit zugeordnet, 320. Wenn zum Beispiel das Muster, das in das MPR geschrieben wird „1111 1110” ist und das vom MPR gelesene Muster „1110 1111”, dann wird das Bit Null (DQ0) des Memory-Controllers zum Bit Vier (D4) des Speichergeräts zugeordnet.
  • Der Prozess 300, 310 und 320 wird für alle Iterationen des Datenmusters abgeschlossen. Wenn nicht alle Muster abgeschlossen sind, 330, dann wird ein nachfolgendes Muster in das MPR geschrieben, 300. Unter Fortführung des Walking 0-Beispiels von oben kann das zweite Muster, das in das MPR geschrieben wird „1111 1101” sein. Das Muster wird vom MPR gelesen, 310. Die Datenleitung, die „0” zurückgibt, wird zum entsprechenden Memory-Controller-Bit zugeordnet, 320. Wenn zum Beispiel das Muster, das in das MPR geschrieben wird „1111 1101” ist und das vom MPR gelesene Muster „1111 0111”, dann wird das Bit Eins (DQ1) des Memory-Controllers zum Bit Drei (D3) des Speichergeräts zugeordnet.
  • Wenn alle Muster vollständig sind, 330, kann das Swizzling-Training abgeschlossen werden, 340. Die Durchführung des Swizzling-Trainings kann zum Beispiel das Speichern von Mapping-Daten in einer Tabelle im Memory-Controller, das Senden eines Hinweises, dass das Training abgeschlossen wurde und dass Datenoperationen beginnen können, umfassen.
  • 4 ist ein Flussdiagramm von einer Ausführungsform einer Technik des Schreibens von Daten zum Speicher unter Verwendung einer Swizzling-Karte und eines Fehlerkorrekturcodes (error correcting code; ECC). Der Memory-Controller empfängt Daten, die in den Speicher zu schreiben sind, 400. Fehlerkorrekturcode-Operationen werden an den Daten ausgeführt, 410. Jeder ECC kann polynomisch verwendet werden.
  • Die Datenbits werden unter Verwendung der Swizzling-Karte neu umgeordnet, 420. Die Bits werden umgeordnet, sodass die Datenbits die Pins des Speichergeräts in der korrekten Reihenfolge erreichen. Das ermöglicht dem Speichergerät, ECC-Operationen anzuwenden, um Datenfehler zu erkennen und/oder zu korrigieren. Die durch das Speichergerät empfangenen Daten werden gespeichert, 430.
  • 5 ist ein Flussdiagramm von einer Ausführungsform einer Technik des Lesens von Daten vom Speicher unter Verwendung einer Swizzling-Karte und eines Fehlerkorrekturcodes. Die Daten werden vom Speichergerät gelesen, 500. Die Datenbits werden unter Verwendung der Swizzling-Karte umgeordnet, 510. ECC-Operationen werden an den umgeordneten Datenbits ausgeführt, 520. Die Daten werden (z. B. an einen Prozessor) zur Verwendung zurückgegeben, 530.
  • Verweise in der Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform.
  • Während die Erfindung bezogen auf verschiedene Ausführungsformen der Erfindung beschrieben wurde, wird der Fachmann erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen der Erfindung beschränkt ist, sondern auch mit Abwandlungen und Änderungen im Sinne und innerhalb des Schutzbereichs der angefügten Ansprüche genutzt werden kann. Die Beschreibung ist daher als eine nicht einschränkende Veranschaulichung zu verstehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 802.11b [0022]
    • IEEE 802.11g [0022]
    • IEEE Std. 802.11b-1999 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen: Erweiterung der physikalischen Schicht mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 16. September 1999, sowie zugehörige Dokumente [0023]
    • IEEE Std. 802.11 g-2003 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen, Zusatz 4: Weitere Erweiterung mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 27. Juni 2003, sowie zugehörige Dokumente [0023]
    • „Spezifikation des Bluetooth-Systems: Kern, Version 1.1”, veröffentlicht am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc. Associated [0023]

Claims (20)

  1. System, umfassend: ein Speichergerät, das ein n-Bit-Mehrzweckregister (MPR) aufweist; und ein Memory-Controller gekoppelt mit dem Speichergerät, wobei der Memory-Controller für mindestens N Kombinationen von N Bits ein Bitmuster zum MPR über einen nicht geswizzelten Bus schreibt und das Bitmuster vom MPR über einen geswizzelten Bus liest und eine Zuordnung der Bit-Sortierung zwischen dem Speichergerät und dem Memory-Controller generiert, die dem geswizzelten Bus entspricht, und wobei der Memory-Controller Daten in eine Speicherstelle im Speichergerät unter Verwendung der Zuordnung und der Anwendung eines Fehlerkorrekturcodes auf die Daten schreibt.
  2. System nach Anspruch 1, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
  3. System nach Anspruch 1, wobei der Memory-Controller für mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreibt, was das sequenzielle Schreiben eines Walking „0”-Musters zum MPR für ein 8-Bit-Speichergerät umfasst.
  4. System nach Anspruch 1, wobei der Memory-Controller für mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreibt, was das sequenzielle Schreiben eines Walking „1”-Musters zum MPR für ein 8-Bit-Speichergerät umfasst.
  5. System nach Anspruch 1, das weiter eine Vielzahl von Speichergeräten umfasst, wobei der Memory-Controller eine Zuordnung von Bits zwischen dem Memory-Controller und der Mehrheit von Speichergeräten für jede Ebene des Speichers generiert.
  6. System nach Anspruch 1, wobei die zum Speicher geschriebenen Daten einen 72-Bit-Block umfassen, der ein 64-Bit-Datenteil aufweist, das vom Memory-Controller gemäß der Zuordnung und einer 8-Bit-ECC-Checksumme umgeordnet ist.
  7. System nach Anspruch 1, wobei der Memory-Controller weiter einen Datenblock vom Speichergerät liest und die Zuordnung und den Fehlerkorrekturcode auf die vom Speichergerät gelesenen Daten anwendet.
  8. Verfahren, umfassend: das Schreiben eines Bitmusters für mindestens N Kombinationen von N Bits zu einem Mehrzweckregister (MPR) in einem Speichergerät über einen nicht geswizzelten Bus; das Lesen des Bitmusters vom MPR über einen geswizzelten Bus; das Generieren einer Zuordnung der Bit-Sortierung des geswizzelten Busses zwischen dem Speichergerät und einem Memory-Controller basierend auf einem Vergleich der Bitmuster, die zum MPR geschrieben werden, und den entsprechenden Bitmustern, die vom MPR gelesen werden; und das Schreiben von Daten in eine Speicherstelle im Speichergerät unter Verwendung der Zuordnung und das Anwenden eines Fehlerkorrekturcodes auf die Daten.
  9. Verfahren nach Anspruch 8, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
  10. Verfahren nach Anspruch 8, wobei mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreiben, was das sequenzielle Schreiben eines Walking „0”-Musters zum MPR für ein 8-Bit-Speichergerät umfasst, wobei die Bitmuster mindestens umfassen: 1111 1110, 1111 1101, 1111 1011, 1111 0111, 1110 1111, 1101 1111, 1011 1111 und 0111 1111.
  11. Verfahren nach Anspruch 8, wobei mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreiben, was das sequenzielle Schreiben eines Walking „1”-Musters zum MPR für ein 8-Bit-Speichergerät umfasst, wobei die Bitmuster mindestens umfassen: 0000 0001, 0000 0010, 0000 0100, 0000 1000, 0001 0000, 0010 0000, 0100 0000, 1000 0000.
  12. Verfahren nach Anspruch 8, in einem System mit vielfachen Speichergeräten, weiter umfassend das Generieren einer Zuordnung für jedes Speichergerät.
  13. Verfahren nach Anspruch 8, wobei die zum Speicher geschriebenen Daten einen 72-Bit-Block umfassen, der ein 64-Bit-Datenteil aufweist, das vom Memory-Controller gemäß der Zuordnung und einer 8-Bit-ECC-Checksumme umgeordnet wird.
  14. Verfahren nach Anspruch 8, weiter umfassend das Lesen eines Datenblocks vom Speichergerät mit dem Memory-Controller und die Anwendung der Zuordnung und des Fehlerkorrekturcodes auf die vom Speichergerät gelesenen Daten.
  15. Ein Produkt, das ein computerlesbares Medium mit darauf gespeicherten Anweisungen umfasst, die, wenn sie ausgeführt werden, einen Memory-Controller veranlassen: ein Bitmusters für mindestens N Kombinationen von N Bits zu einem Mehrzweckregister (MPR) in einem Speichergerät über einen nicht geswizzelten Bus zu schreiben; das Bitmuster vom MPR über einen geswizzelten Bus zu lesen; eine Zuordnung der Bit-Sortierung des geswizzelten Busses zwischen dem Speichergerät und einem Memory-Controller basierend auf einem Vergleich der Bitmuster, die zum MPR geschrieben werden, und den entsprechenden Bitmustern, die vom MPR gelesen werden zu generieren; und Daten in eine Speicherstelle im Speichergerät unter Verwendung der Zuordnung und des Anwendens eines Fehlerkorrekturcodes auf die Daten zu schreiben.
  16. Produkt nach Anspruch 15, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
  17. Produkt nach Anspruch 15, wobei mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreiben, was das sequenzielle Schreiben eines Walking „0”-Musters zum MPR für ein 8-Bit-Speichergerät umfasst, wobei die Bitmuster mindestens umfassen: 1111 1110, 1111 1101, 1111 1011, 1111 0111, 1110 1111, 1101 1111, 1011 1111 und 0111 1111.
  18. Produkt nach Anspruch 15, wobei mindestens N Kombinationen von N Bits ein Bitmuster zum MPR schreiben, was das sequenzielle Schreiben eines Walking „1” zum MPR für ein 8-Bit-Speichergerät umfasst, wobei die Bitmuster mindestens umfassen: 0000 0001, 0000 0010, 0000 0100, 0000 1000, 0001 0000, 0010 0000, 0100 0000, 1000 0000.
  19. Produkt nach Anspruch 15, wobei die zum Speicher geschriebenen Daten einen 72-Bit-Block umfassen, der ein 64-Bit-Datenteil aufweist, das vom Memory-Controller gemäß der Zuordnung und einer 8-Bit-ECC-Checksumme umgeordnet wird.
  20. Produkt nach Anspruch 15, weiter umfassend das Lesen eines Datenblocks vom Speichergerät mit dem Memory-Controller und die Anwendung der Zuordnung und des Fehlerkorrekturcodes auf die vom Speichergerät gelesenen Daten.
DE102010053097.2A 2009-12-22 2010-12-01 Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling Active DE102010053097B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/644,803 US8595428B2 (en) 2009-12-22 2009-12-22 Memory controller functionalities to support data swizzling
US12/644,803 2009-12-22

Publications (2)

Publication Number Publication Date
DE102010053097A1 true DE102010053097A1 (de) 2011-07-07
DE102010053097B4 DE102010053097B4 (de) 2015-02-05

Family

ID=43598679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010053097.2A Active DE102010053097B4 (de) 2009-12-22 2010-12-01 Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling

Country Status (5)

Country Link
US (1) US8595428B2 (de)
CN (1) CN102103557B (de)
DE (1) DE102010053097B4 (de)
GB (1) GB2476571B (de)
TW (1) TWI484487B (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713379B2 (en) 2011-02-08 2014-04-29 Diablo Technologies Inc. System and method of interfacing co-processors and input/output devices via a main memory system
US8760945B2 (en) * 2011-03-28 2014-06-24 Samsung Electronics Co., Ltd. Memory devices, systems and methods employing command/address calibration
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
WO2013028849A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
KR101918464B1 (ko) 2011-09-14 2018-11-15 삼성전자 주식회사 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치
CN104636271B (zh) * 2011-12-22 2018-03-30 英特尔公司 访问命令/地址寄存器装置中存储的数据
US9442871B2 (en) * 2011-12-22 2016-09-13 Intel Corporation Accessing data stored in a command/address register device
WO2013109284A1 (en) * 2012-01-20 2013-07-25 Intel Corporation Multi-purpose register programming via per dram addressability mode
EP2624082B1 (de) * 2012-01-31 2014-03-19 Sick Ag Mobiler Datenspeicher
US9280454B1 (en) * 2012-03-02 2016-03-08 Cadence Design Systems, Inc. Method and system for re-ordering bits in a memory system
US10020036B2 (en) * 2012-12-12 2018-07-10 Nvidia Corporation Address bit remapping scheme to reduce access granularity of DRAM accesses
US9026725B2 (en) 2012-12-27 2015-05-05 Intel Corporation Training for command/address/control/clock delays under uncertain initial conditions and for mapping swizzled data to command/address signals
US9934143B2 (en) 2013-09-26 2018-04-03 Intel Corporation Mapping a physical address differently to different memory devices in a group
EP3049942B1 (de) * 2013-09-27 2021-10-20 Intel Corporation Zuordnung von speichersteuerungsverbindern zu speicherverbindern
US9336401B2 (en) 2014-01-20 2016-05-10 International Business Machines Corporation Implementing enhanced security with storing data in DRAMs
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9769356B2 (en) * 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
KR102461453B1 (ko) 2015-06-10 2022-11-02 삼성전자주식회사 스토리지 장치
US9805802B2 (en) 2015-09-14 2017-10-31 Samsung Electronics Co., Ltd. Memory device, memory module, and memory system
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US10997096B2 (en) 2017-05-22 2021-05-04 Intel Corporation Enumerated per device addressability for memory subsystems
US10380043B2 (en) 2017-09-28 2019-08-13 Intel Corporation Memory bus MR register programming process
US20210149811A1 (en) * 2019-11-15 2021-05-20 Intel Corporation Parallel decompression mechanism
KR20220031776A (ko) 2020-09-03 2022-03-14 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US6691276B2 (en) * 2001-06-25 2004-02-10 Intel Corporation Method for detecting and correcting failures in a memory system
US6611944B2 (en) * 2001-12-28 2003-08-26 Intel Corporation Calculating interconnect swizzling patterns for capacitive and inductive noise cancellation
CN100493075C (zh) * 2003-11-06 2009-05-27 西安电子科技大学 变长数据分组与定长信元混合传送的方法与适配装置
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US20060236042A1 (en) * 2005-03-31 2006-10-19 Sandeep Jain Training sequence for deswizzling signals
US20070005836A1 (en) * 2005-06-07 2007-01-04 Sandeep Jain Memory having swizzled signal lines
US7702874B2 (en) * 2005-06-22 2010-04-20 Intel Corporation Memory device identification

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Spezifikation des Bluetooth-Systems: Kern, Version 1.1", veröffentlicht am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc. Associated
IEEE 802.11b
IEEE 802.11g
IEEE Std. 802.11 g-2003 "Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen, Zusatz 4: Weitere Erweiterung mit höherer Geschwindigkeit im 2,4-GHz-Band", zugelassen am 27. Juni 2003, sowie zugehörige Dokumente
IEEE Std. 802.11b-1999 "Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Lager (PHY) Spezifikationen: Erweiterung der physikalischen Schicht mit höherer Geschwindigkeit im 2,4-GHz-Band", zugelassen am 16. September 1999, sowie zugehörige Dokumente

Also Published As

Publication number Publication date
GB2476571A (en) 2011-06-29
CN102103557B (zh) 2015-01-28
TWI484487B (zh) 2015-05-11
US20110153925A1 (en) 2011-06-23
DE102010053097B4 (de) 2015-02-05
US8595428B2 (en) 2013-11-26
GB2476571B (en) 2012-10-17
CN102103557A (zh) 2011-06-22
GB201021586D0 (en) 2011-02-02
TW201137874A (en) 2011-11-01

Similar Documents

Publication Publication Date Title
DE102010053097B4 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
DE102013110085B4 (de) Nicht-flüchtige speichervorrichtung
DE112011106021B4 (de) Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
DE102013106154B4 (de) Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik
DE112015003397T5 (de) Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE112016004314T5 (de) Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE102011086097B4 (de) Mehrkanal-Speicher mit eingebetteter Kanalauswahl
DE102010044529B4 (de) Autonomes speicher-sub-system mit hardwarebeschleuniger
DE102010044867A1 (de) Speicher-Link-Initialisierung
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
DE102017128967A1 (de) Speichervorrichtung, welche eine Hashing-basierte Übersetzung zwischen einer logischen Adresse und einer physikalischen Adresse durchführt
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112019000211B4 (de) Effizientes und selektives ersatzweises Speichern von Bits in Arbeitsspeichersystemen
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE102016206170B4 (de) Serielle draht-debug-brücke
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE102022121767A1 (de) In-memory-assoziativverarbeitung für vektoren
DE102022121773A1 (de) In-memory-assoziativverarbeitungssystem
DE112006004185T5 (de) Verfahren zum Verwalten von Daten in einem nichtflüchtigen Speicher

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013400000

Ipc: G06F0013160000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013400000

Ipc: G06F0013160000

Effective date: 20111221

R018 Grant decision by examination section/examining division
R020 Patent grant now final