DE102010053097A1 - Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling - Google Patents
Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling Download PDFInfo
- 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
Links
- 238000012937 correction Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 6
- 230000009977 dual effect Effects 0.000 claims description 4
- 238000012549 training Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling 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-Controller120 und Speichergerät140 verbunden. D. h. Datenbit D1 und Datenbit D3 gesendet vom Memory-Controller120 werden als Datenbit D1 und Datenbit D3 durch das Speichergerät140 empfangen. Die Übertragung vom Speichergerät140 zum Memory-Controller120 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-Controller120 entspricht, mit dem Pin gekoppelt, der dem Datenbit D2 von Speichergerät140 entspricht. Ähnlich ist die Leitung für den Pin, der dem Datenbit D2 von Memory-Controller120 entspricht, mit dem Pin gekoppelt, der dem Datenbit D0 von Speichergerät140 entspricht. - Daher werden Daten, während sie sich vom Memory-Controller
120 zum Speichergerät140 bewegen, durch die Datenleitungen geswizzelt. Während die Daten sich vom Speichergerät140 zum Memory-Controller120 zurückbewegen, werden sie entswizzelt und die Daten, die vom Memory-Controller120 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 in2 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 Bus205 oder ein anderes Kommunikationsgerät, um Information zu kommunizieren, und Prozessor210 gekoppelt mit Bus205 , welcher Information verarbeiten kann. Während Elektronik200 mit einem einzelnen Prozessor gezeigt wird, kann Elektronik200 mehrere Prozessoren und/oder Koprozessoren enthalten. Elektronik200 kann weiter Random Access Memory (RAM) oder ein anderes dynamisches Speichergerät225 (als Speicher bezeichnet) umfassen, das mit Memory-Controller220 gekoppelt ist, welcher mit Bus205 gekoppelt ist, und sie kann Information und Anweisungen speichern, die durch Prozessor210 ausgeführt werden können. Der Speicher225 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch Prozessor210 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 Speicher225 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ät230 gekoppelt mit dem Bus205 umfassen, das statische Information und Anweisungen für den Prozessor210 speichern kann. Das Datenspeichergerät240 kann mit Bus205 gekoppelt sein, um Information und Anweisungen zu speichern. Das Datenspeichergerät240 (beispielsweise eine Magnetdiskette oder optische Disk und ein entsprechendes Laufwerk) kann mit der Elektronik200 gekoppelt sein. - Elektronik
200 kann ebenfalls über den Bus205 mit Anzeigegerät250 gekoppelt sein, wie beispielsweise eine Kathodenstrahlröhre (CRT) oder Flüssigkristallanzeige (LCD), um einem Anwender Information anzuzeigen. Das alphanumerische Eingabegerät260 , einschließlich alphanumerischer und anderer Tasten, kann mit Bus205 gekoppelt sein, um Information und Befehlsauswahlen zu Prozessor210 zu kommunizieren. Eine andere Art von Benutzereingabegerät ist Cursorsteuerung270 , wie z. B. eine Maus, ein Trackball oder Cursorpfeiltasten für die Kommunikation von Richtungsanweisungsdaten und Befehlsauswahlen an Prozessor210 sowie für die Steuerung der Cursorbewegung an Anzeige250 . - Elektronik
200 kann weiter Netzwerkschnittstellen280 umfassen, um Zugriff zu einem Netzwerk, wie beispielsweise einem lokalen Netzwerk zu ermöglichen. Die Netzwerkschnittstellen280 können zum Beispiel eine drahtlose Netzwerkschnittstelle einschließen, die Antenne285 aufweist, welche eine oder mehrere Antennen repräsentieren kann. Die Netzwerkschnittstellen280 können ebenfalls beispielsweise eine verdrahtete Netzwerkschnittstelle einschließen, um mit entfernten Geräten über das Netzwerkkabel287 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 von3 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 und320 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)
- 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.
- System nach Anspruch 1, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 8, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
- 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.
- 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.
- Verfahren nach Anspruch 8, in einem System mit vielfachen Speichergeräten, weiter umfassend das Generieren einer Zuordnung für jedes Speichergerät.
- 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.
- 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.
- 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.
- Produkt nach Anspruch 15, wobei das Speichergerät einen Dynamic Random Access Memory-(DRAM)-IC auf einem Dual Inline Memory Module (DIMM) umfasst.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2009
- 2009-12-22 US US12/644,803 patent/US8595428B2/en not_active Expired - Fee Related
-
2010
- 2010-11-22 TW TW099140165A patent/TWI484487B/zh not_active IP Right Cessation
- 2010-12-01 DE DE102010053097.2A patent/DE102010053097B4/de active Active
- 2010-12-17 GB GB1021586.1A patent/GB2476571B/en active Active
- 2010-12-21 CN CN201010602381.2A patent/CN102103557B/zh active Active
Non-Patent Citations (5)
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 |