DE102009037984B4 - Speichereinheit für eine hierarchische Speicherarchitektur - Google Patents
Speichereinheit für eine hierarchische Speicherarchitektur Download PDFInfo
- Publication number
- DE102009037984B4 DE102009037984B4 DE102009037984.3A DE102009037984A DE102009037984B4 DE 102009037984 B4 DE102009037984 B4 DE 102009037984B4 DE 102009037984 A DE102009037984 A DE 102009037984A DE 102009037984 B4 DE102009037984 B4 DE 102009037984B4
- Authority
- DE
- Germany
- Prior art keywords
- memory
- nand
- hierarchical
- interface
- storage unit
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 163
- 238000004891 communication Methods 0.000 claims abstract description 18
- 239000000872 buffer Substances 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims abstract description 13
- 230000008859 change Effects 0.000 claims abstract description 8
- 230000011664 signaling Effects 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 239000000835 fiber Substances 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 17
- 239000004065 semiconductor Substances 0.000 description 15
- 238000007726 management method Methods 0.000 description 9
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10N—ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10N70/00—Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
- H10N70/20—Multistable switching devices, e.g. memristors
- H10N70/231—Multistable switching devices, e.g. memristors based on solid-state phase change, e.g. between amorphous and crystalline phases, Ovshinsky effect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
- Hintergrund der Erfindung
- Bei gegenwärtigen Microprozessoren ist der Datenaustausch zwischen der CPU und/oder der Kern-Logik und dem Systemspeicher die Schwachstelle der Systemleistung. Bei Übertragung von Binärdaten wird wegen der intrinsischen Kapazitäten der System-Busse ein signifikanter Teil der Leistung an der Input/Output(I/O)-Schnittstelle eines Prozessors abgeführt. Zur Verbesserung der Systemleistung werden kritische Designanforderungen wie Leistungs- und Timing-Optimierung zur Berücksichtigung von Bus-Latenz gleichzeitig in Betracht gezogen. Weitere Verbesserungen an der Schnittstelle zu Massenspeicher-Einheiten sind notwendig.
-
WO 2008/121 559 A1 - Aus der Druckschrift
US 5 924 115 A ist außerdem ein hierarchischer Speicheraufbau mit Baumstruktur bekannt. -
US 2008/0229026 A1 - Aufgabe der vorliegenden Erfindung ist, eine Speichereinheit in einer hierarchischen Struktur mit verbessertem Speicherzugriff bereitzustellen und Probleme der bekannten Vorrichtungen und Verfahren zu überwinden.
- Nach einem ersten Aspekt stellt die vorliegende Erfindung eine hierarchische Speichereinheit gemäß dem unabhängigen Anspruch 1, eine hierarchische Speichereinheit gemäß dem unabhängigen Anspruch 6, eine hierarchische Speichereinheit gemäß dem unabhängigen Anspruch 11 und eine gekapselte Speichereinheit gemäß dem unabhängigen Anspruch 23 bereit. Bevorzugte Ausführungsbeispiele der Erfindung ergeben sich aus den abhängigen Ansprüchen, der nachfolgenden Beschreibung und den Figuren.
- Kurzbeschreibung der Figuren
- Der Gegenstand der Erfindung ist angegeben und klar beansprucht im anschließenden Teil der Beschreibung. Die erfinderische Vorrichtung und das erfinderische Verfahren zusammen mit deren Merkmalen, Kennzeichen und Vorteilen lässt sich am besten aufgrund der folgenden detaillierten Beschreibung zusammen mit den zugehörigen Figuren verstehen, wobei:
-
1 ist ein hierarchisches Speicherelement, das als Speicherblock in einer hierarchischen Architektur gemäß der vorliegenden Erfindung verwendet werden kann; -
2 ist eine schematische Darstellung von verschiedenen hierarchischen Speicher-Konfigurationen gemäß der vorliegenden Erfindung; -
3 illustriert den hierarchischen Speicher, der mit NAND- und RAM-Speicher in unterschiedlichen Kombinationen gemäß der vorliegenden Erfindung konfiguriert ist; und -
4 zeigt gekapselte Einheiten, bei denen die Halbleiter-Chips auf einem Substrat montiert werden können, die dann mit Bumps versehen werden können, um entweder ein sog. Chip-Scale-Package (CSP) oder ein Ball-Grid-Array (BGA) als endgültiges Halbleitergehäuse zu bilden. - Zur Vereinfachung und Klarheit ist die Darstellung in den Figuren nicht notwendigerweise maßstabsgetreu. Beispielsweise können aus Gründen der klaren Darstellung die Abmessungen einiger Elemente übertrieben im Vergleich zu anderen Elementen dargestellt sein. Weiterhin werden, wo es angemessen erscheint, in unterschiedlichen Figuren dieselben Bezugszeichen verwendet, um anzuzeigen, dass es sich um korrespondierende oder analoge Elemente handelt.
- Detaillierte Beschreibung
- Um ein gründliches Verständnis der Erfindung zu erlangen, wird im Folgenden eine detaillierte Beschreibung mit vielen Details der Erfindung dargelegt. Jedoch kann die Erfindung durch den Fachmann auch ohne diese spezifischen Details ausgeführt werden. Um nicht den Blick auf das Wesentliche der Erfindung zu verstellen, wurden andererseits bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht im Detail dargelegt.
- Die Bezeichnungen „gekoppelt” und „verbunden” nebst deren Derivativen sollen nicht als Synonym verstanden werden. In den Ausführungsbeispielen soll „verbunden” dann verwendet werden, um anzuzeigen, dass zwei oder mehrere Elemente in direktem physikalischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” soll verwendet werden, um anzuzeigen, dass zwei oder mehrere Elemente entweder in direktem oder indirektem (mit weiter eingreifenden Zwischenelementen) in physikalischem oder elektrischem Kontakt miteinander stehen, und/oder dass die zwei oder mehreren Elemente miteinander kooperieren oder interagieren (beispielsweise in einem Ursache-Wirkungs-Zusammenhang).
- Die in
1 dargestellte Architektur zeigt eine hierarchische Speichereinheit100 , die mehrere Schnittstellen und einen Prozessor-Kern (uC core)148 umfasst, um Kommunikation mit anderen Speichereinheiten in einer hierarchischen Anordnung gemäß der vorliegenden Erfindung zu ermöglichen. Bus104 kann eine Verbindung zu einer Multi-Processing-Schnittstelle herstellen, die eine Kommunikation zwischen dem Prozessor und jedweder angebundenen I/O-Einheit und unterschiedlichen Speichertypen erlaubt. Bus104 bietet Hochgeschwindigkeits-Kommunikation mit Unterstützung von direkten Schreiboperationen und weiterhin Bus-Transaktionen mit Hochgeschwindigkeit. Die Signale auf Bus104 können unterschiedliche Signalisierungsmethoden verwenden. Beispielsweise kann Bus104 Signale nach der sog. Single-Ended Signalisierungsmethode oder nach der Gunning-Transceiver-Logic (GTL+) verwenden. Bei letzterer werden von den Empfängern differenzielle Eingangspuffer mit Referenzpegeln benutzt, um festzustellen, ob ein Signal eine logische „0” oder eine logische „1” aufweist. Der Anwendungsbereich der vorliegenden Erfindung soll nicht auf diese Beispiele beschränkt sein und andere Signalisierungsmethoden können ebenso verwendet werden. - Speichereinheit
100 beinhaltet eine RAM-Schnittstelle130 , eine NAND-Schnittstelle132 , eine Netzwerk-Schnittstelle134 , eine Speicher-Schnittstelle136 und eine Peripherie-Schnittstelle138 . Über die RAM-Schnittstelle130 können der Host-Kontroller und die Speichereinheit100 unter Benutzung einer Schnittstellenschaltung, die bei selektiv ansteigend höheren Vielfachen der grundlegenden Lese-Rate arbeitet, miteinander kommunizieren. Beispielsweise kann die RAM-Schnittstelle130 als serieller Dateneingang realisiert werden, oder alternativ dazu, eine höhere Bandbreite über eine synchrone Schnittstelle realisieren, die auf ein Taktsignal wartet, bevor sie auf Kontrolleingangs-Signale antwortet (Synchronous Dynamic Random Access Memory (SDRAM)). - RAM-Schnittstelle
130 kann auch Daten als ein sog. Double-Data-Rate-Random-Access Memory (DDR-RAM) empfangen, oder von deren nächster Generation, DDR2. Bei letzterer ist der Datenbus mit der doppelten Rate als jene der Speicherzellen getaktet, so dass DDR2-RAM effektiv bei der doppelten Busrate als herkömmliches DDR-RAM arbeiten kann. RAM-Schnittstelle130 kann ebenfalls als sog. Double-Data-Rate drei Synchronous Dynamic Random-Access-Memory(DDR3-SDRAM)-Schnittstelle ausgebildet sein, wobei Daten bei der doppelten Datenrate als DDR2 übertragen werden können, und damit sogar noch höhere Busraten und höhere Spitzenraten als frühere Speichertechnologie ermöglichen. Speichereinheit100 könnte ebenfalls DDR4 unterstützen, das mit I/O-Schnittstellen bei 1,2 V arbeitet. Die hierarchische Speichereinheit100 unterstützt ebenfalls Schnittstellen mit reduzierter Leistung wie Low-Power Double-Data-Rate (LPDDR) und LPDDR2 mit geringeren Versorgungsspannungen. - NAND-Schnittstelle
132 kontrolliert die Operationen zur Unterstützung einer Anbindung von NAND-Speicher an einen Host-Prozessor. Im Verhältnis zu einer RAM-Schnittstelle130 weist diese eine geringere Bandbreite und eine längere Latenzzeit auf, jedoch lässt sich eine derartige Schnittstelle mit Einfachheit im Design und einem reduzierten Pin-Count realisieren. Speicher-Block140 empfängt zur Unterstützung von NAND-Flash-Speicher Daten, die für Massenspeicher-Anwendungen benutzt werden können. Um NAND-Flash zu unterstützen, führt Speichereinheit100 drei grundlegende Operationen durch, nämlich die sog. „read-page”, „program-page” und die „erase-block”-Operation. Hierbei besteht Speicherblock140 aus einer Menge von Blöcken und Speicherseiten, wobei jede Speicherseite einen Datenteil, in dem die Benutzerdaten, und einen zusätzlichen Teil, in dem die mit den Benutzerdaten zugeordneten Metadaten, beispielsweise die ECC-Information gespeichert sind, aufweist. - Befehls- und Operation-Information wird zur Kontrolle der NAND-Schnittstelle
132 extrahiert und basierend auf dem Befehl und der Adresse wird der Daten-Input und/oder Daten-Output zwischen der NAND-Schnittstelle und dem Pufferspeicher132 abgeglichen. Zur Durchführung der Fehlerkorrektur können Daten von der NAND-Schittstelle132 zur Fehlerkorrektur-Einheit (Error-Detection & Configuration)114 ausgegeben werden. Mit seinen integrierten Leistungsmerkmalen hat die Speichereinheit100 die Möglichkeit, als Multi-Core-NAND-Managment-Subsystem oder als autonomes Computing-Subsystem zu agieren. - Netzwerk-Schnittstelle
134 unterstützt Ethernet, Infiniband und 802.11. Ethernet ist eine sog. Local Area Network(LAN)-Schnittstelle, welche das Carrier-Sense-Multiple-Access mit Collision-Detection(CSMA/CD)-Verfahren benutzt, um gleichzeitige Zugriffe zu handhaben. Das CSMA/CD Protokoll bietet einen fairen Zugang zu dem gemeinsam genutzten Kanal, so dass verbundene Stationen eine Möglichkeit bekommen, das Netzwerk zu benutzen. Nach jeder Paket-Übertragung bestimmt das CSMA/CD-Protokoll, welcher Station es Zugriff gewährt, um den Ethernet-Kanal als nächstes benutzen zu können. Das Ethernet-Protokoll spezifiziert die Regeln zur Konstruktion von Rahmen, wobei sowohl eine Zieladresse als auch eine Quelladresse spezifiziert sind. - Netzwerk-Schnittstelle
134 unterstützt das Point-to-Point-Bidirectional-Serial-Link-Protokoll, das sog. InfiniBand, welches den Host-Prozessor mit Hochgeschwindigkeits-Peripherie-Geräten, beispielsweise einer Speicherplatte, verbindet. Die Schnittstelle kann mehrere Verbindungen mit unterschiedlichen Signalisierungs-Raten unterstützen. Die Netzwerk-Schnittstelle134 kann auch Kommunikationsverbindungen nach 802.11 unterstützen. - Speicher-Schnittstelle
136 unterstützt industrielle und eingebettete Anwendungen. Speicher-Schnittstelle136 unterstützt eine Serial-ATA(SATA)-Speicher-Schnittstelle, welche die Kommunikation zwischen einem Host-Bus und Massenspeichereinheiten erlaubt. Zur Bildung einer Point-to-Point-Verbindung treibt die SATA-Schnittstelle ein Kabel mit einem Minimum von vier Drähten. Eine weitere Schnittstelle, die von Speicher-Schnittstelle136 unterstützt wird, ist die Serial-Attached-SCSI(SAS)-Schnittstelle, die zur Verbindung der Speichereinheit100 mit einem Speicherplatten-Laufwerk eine Point-to-Point serielle Schnittstelle bildet. SAS kann verwendet werden, um über Kabel mehrere Geräte von unterschiedlicher Größe und Typ gleichzeitig mit Speichereinheit100 zu verbinden. Die parallele SCSI-Schnittstelle (PSI, aka SCSI) ist eine der Schnittstellen-Implementierungen der SCSI-Familie, die von Speichereinheit100 unterstützt werden kann. Sog. SCSI an the Fibre Channel (PC) benutzt das Fibre-Channel-Protocol (FCP) als Schnittstellen-Protokoll. Fibre-Channel-Laufwerke sind Dual-Port-Einheiten mit Native-Command-Queuing (NCQ)-Technologie, bei der bei einer einzelnen Festplatte die Reihenfolge, mit der empfangene Schreib- und Lese-Befehle ausgeführt werden, intern optimiert werden können. - Während der Datenaustausch durch einen Speicher-Kontroller ausgeführt wird, werden durch eine zusätzliche Logik und zusätzliche Register verschiedene Benutzerprofil-Parameter, wie beispielsweise Örtlichkeits- und Sequenzierungs-Information identifiziert und protokolliert. Der Speicher-Kontroller umfasst die Logik, um Speicherzugriffe zu identifizieren und anzupassen. Der Host-Kontroller kann diese Register-Information lesen und sein Verfahren, mit dem Transaktions-Anforderungen an die Speichereinheit gesendet werden, anpassen. Alternativ kann der Host-Kontroller auch die Register-Information lesen und Mikrocode an die Speichereinheit senden.
- Peripherie-Schnittstelle
138 kann für Konsumer-, Server- und industrielle Anwendungen benutzt werden; sowohl, um auf Motherboard-Ebene auf dem Motherboard montierte Peripherie-Geräte zu verbinden als auch als Zusatzkarten-Schnittstelle für Steckkarten. Beispielsweise erlaubt das Peripheral-Component-Interconnect-Express (PCI Express bzw. PCIe) das „Channel-Grouping”, wobei mehrere Spuren an ein einzelnes Gerätepaar gebunden sind, um eine höhere Bandbreite zur Verfügung zu stellen. Die Anzahl der Spuren kann während des Einschaltens „verhandelt” werden oder explizit während des Betriebs definiert werden. - Zur Kontrolle der Speicheroperationen umfasst die hierarchische Speichereinheit
100 einen Mikrocontroller(uC)-Kern148 , welcher Zähler/Timer und eine Interrupt-Struktur integriert, konfigurierbare I/O-Ports definiert, und unter vielen weiteren Prozessfunktionen Modi der Leistungs-Absenkung auswählt. Beispielsweise kann Mikrocontroller148 einen Betriebsmodus umfassen, der Sicherheitsmerkmale aktiviert, welche den Zugang zu Inhalten von Bereichen des Programmspeichers reglementieren. Mit aktivierten Sicherheitsmerkmalen kann gleichzeitige Programmierung, d. h. Programmierung eines Speicherbereichs unter Benutzung von Ausführungsanweisungen von einem anderen Speicherbereich, unter vorbestimmten, sicheren Bedingungen initiiert werden. - Ein Daten-Speicher-Array
150 dient zum Speichern von für die hierarchische Speichereinheit100 spezifischer Konfigurations-Information und kann entweder von dem Hersteller oder von dem Benutzer mit Daten geladen werden. Die Software, die vom Mikrocontroller-Kern148 ausgeführt wird, wendet die Konfiguration-Daten auf die Schnittstellen-Blöcke an, um unterschiedliche Protokolle auszuwählen, und um die Schnittstellen-Konfiguration der hierarchischen Speichereinheit100 , die dem Host, den zugehörigen Peripheriegeräten, und anderen Speichergeräten zur Verfügung stehen, zu kontrollieren. - Mikrocontroller-Kern
148 interpretiert zusammen mit der Befehls-Warteschlange144 den Befehlssatz und sendet Speicher-Befehle aus. Ein interner Kontroller handhabt die im Betrieb auftretenden Timings und verifiziert die korrekte Ausführung der Speicher-Befehle, wie z. B. Schreib-Befehle, Lese-Befehle und Flush-Befehle. Zusätzlich können in dieser Architektur weitere Befehle wie „status read”, „copy”, „move”, oder „error-correct” unterstützt werden. Der Kontroller liefert in einem Status-Block146 , dessen Register Informationen über den Status enthalten, und über Fehler, die während des Speicherbetriebs auftreten können, berichten. Das Status-Register kann gelesen werden, um den Fortschritt während der Befehls-Ausführung zu überwachen oder um über das Ergebnis von Speicheroperationen zu berichten. - Ein Pufferspeicher
142 hält mehrere Speicherworte, die als Gruppe in einen Speicher-Block140 hinein übertragen werden können, wenn der entsprechende Programmierbefehl abgesetzt wird, und puffert auch eine große Datenmenge, die aus dem Speicherblock gelesen wurde. Auf diese Weise wird eine Speicherseite programmiert, und, nachdem die Programmier- und Verifikations-Prozesse komplettiert sind, können die Programmier- und Verifikations-Prozesse für eine nächste Speicherseite ausgeführt werden. Ein Lesebefehl bewirkt das Lesen von Daten aus einer Speicherzelle zum Pufferspeicher, welche dann nach außen transferiert werden. Es ist wichtig zu verstehen, dass die Programmierung bereits beginnen kann, bevor alle Daten über die Host-Schnittstelle transferiert werden. Wie aus der in2 gezeigten hierarchischen Struktur deutlich wird, können Daten bereits mit einem gewissen Grad an Zwischenpufferung durch die Hierarchie propagieren, bis eine ausreichende Informationsmenge zum Ziel transferiert ist, so dass die Programmierung beginnen kann. - Speicher-Block
140 kann aus Gründen der Flexibilität, und damit Code- und Datenbereiche in den Speicher-Arrays getrennt sind, eine Architektur mit mehreren Bänken aufweisen. Der duale Betrieb erlaubt die Ausführung von Programmcode aus der einen Bank, während die andere Bank gerade programmiert oder gelöscht wird. Während der Programmierung oder der Lösch-Operation in einer Bank sind Lese-Operationen in der anderen Bank möglich. In einer Ausführungsform sind die Speicher-Arrays Phase-Change-Memory(PCM)-Arrays, die man auch als Phase-Change-Random-Access-Memory (PRAM oder PCRAM), Ovonic Unified Memory (OUM) oder Chalcogenide Random-Access-Memory (C-RAM) bezeichnet. In einer anderen Ausführungsform können die Speicher-Arrays als Magnetic Random-Access-Memory(MRAM)-Zellen ausgeführt sein, wobei magnetische Speicherelemente aus zwei ferromagnetischen Ebenen (nicht gezeigt) geformt werden, die an einer Kreuzung einer Zeilen- und Spaltenleitung angebracht sind und von einer Magnetic Tunnel Junction(MTJ)-Einheit (nicht gezeigt) ausgewählt werden. In einer weiteren Ausführung können die Speicher-Arrays als Ferroelectric Random-Access-Memory(FRAM)-Zellen ausgeführt sein. - Die hierarchische Speichereinheit
100 kann die Host-Schnittstellen-Logik umfassen, die in die hierarchische Speichereinheit integriert ist. Die Host-Schnittstellen-Logik kann einige oder alle von den folgenden Funktionen ausführen: Kommunikation mit dem Host-Prozessor; Aggregation von mehreren Bäumen von hierarchischen Speichern; Wear-Leveling, Ausscheiden von schlechten Speicher-Sektoren, statistisches Erfassen der Speicherbenutzung für Performance- und Zuverlässigkeits-Management, und Benutzung von inhalts-adressierbaren Speicher im hierarchischen Speicherbaum. - Ein als „Address & Sector Translation”
110 bezeichneter Block stellt die Adressierung innerhalb der hierarchischen Speichereinheit100 zur Verfügung, indem die Adressinformation durch Bus104 , der benutzt werden kann, um auf die an verschiedenen Stellen in der Hierarchie angebrachten Speichereinheiten zugreifen zu können, empfangen wird. Wenn durch die hierarchische Speichereinheit100 eine NAND-Adressinformation empfangen wird, dann kann beim Durchlauf durch den Hierarchiebaum ein Address-Remapping erfolgen oder auch nicht. Die hierarchische Speichereinheit100 kennt über einen Discovery-Prozess die angebundenen Typen von Speichereinheiten, und eine interne Zuordnungstabelle assoziiert „lange Adressen” zu „kurzen Adressen”. Die langen Adressen beinhalten einen kompletten Laufplan zum Ziel-Port derart, dass z. B. eine „0” den Port auf der linken Seite repräsentiert, und eine „1” den Port auf der rechten Seite. Die kurzen Adressen können für die Kommunikation zwischen den Einheiten benutzt werden und umfassen eine sequentielle Liste von gültigen Ports für den unteren Baumabschnitt. - Wear-Leveling
112 verteilt Lösch-Befehle über die verwalteten Speicherblöcke und erzwingt ein gelegentliches Verlagern von Blöcken mit geringen Zugriffs-Zyklenzahlen, und erlaubt Daten mit hohen Zugriffs-Zyklenzahlen eine Platzierung in Blöcken mit geringen Zugriffs-Zyklenzahlen. Die Mehrheit der Blöcke wird nicht zykliert, aber Blöcke mit hohen Zugriffs-Zyklenzahlen haben eine große Wahrscheinlichkeit des Ausfalls und die Wear-Leveling-Hardware und der Mikrocode tauscht während des Lösch-Algorithmus die Adressen von Blöcken mit hohen Zugriffs-Zyklenzahlen mit solchen von Blöcken mit geringen Zugriffs-Zyklenzahlen. Bemerkenswert ist, dass alle Adresstausch-Operationen dem Endbenutzer transparent sind. - Die Möglichkeit zur Fehler-Detektion und -Korrektur wird durch eine Fehler-Korrektureinheit (Error Correcting Code (ECC) Engine)
114 zur Verfügung gestellt. Fehler-Detektions- und Korrekturverfahren kompensieren die mit der Schreibgenauigkeit und Wiederholbarkeit zusammenhängenden Probleme. Ein fehlerkorrigierender Code stellt sicher, dass jedes Datensignal spezifischen Konstruktionsregeln gehorcht, und dass Abweichungen von dieser Konstruktion im Empfangssignal automatisch detektiert und korrigiert werden können. Somit überwacht, verbessert und verhindert die konfigurierbare Fehlerkorrektureinheit114 Speicherbitfehler. - Eine Kompressions- und Dekompressions-Einheit (Compression & Decompression)
116 bietet Kompression eines Eingangs-Datensatzes auf einen gespeicherten Datensatz, welcher weniger Datenbits im Speicher benötigt. Wenn auf die gespeicherten Daten zugegriffen wird, werden sie dekomprimiert und an den Host zurückgegeben. Dabei kann die Datenkompression verlustlos sein derart, dass garantiert ist, dass gelesene Daten die gleichen sind als die vorher geschriebenen Daten. Andererseits kann durch eine verlustbehaftete Kompression ein höherer Kompressionsgrad erreicht werden, jedoch können Änderungen in den Daten auftreten. Verlustbehaftete Kompression kann angemessen sein für die Speicherung von Videodaten, wo geringe Änderungen in den Datenfolgen keine signifikante Degradation in der Wahrnehmung durch den Benutzer hervorrufen würde. - Eine Zwischenspeicher-Verwaltungs-Einheit (Caching Management)
118 arbeitet in dem hierarchischen Speicherbaum oder in den hierarchischen Speicherbäumen und optimiert die Speicherorte der Information basierend auf Zugriffsprofilen. Beispielsweise wird „Hot Data” in einem Speicher mit höchster Leistungsfähigkeit und größter Robustheit gespeichert; und „Cold Data” wird in weniger teuren, weniger leistungsfähigen und weniger robusten Speicher gespeichert. - Eine Datenmanipulations-Einheit (Data Manipulation)
152 verwendet vorteilhaft Hintergrund-Zeit zur Vorbehandlung von Speichersektionen, die einen langsameren Zustand haben derart, dass schnelle Zustandswechsel während Vordergrundoperationen möglich sind. Es ist häufig der Fall, dass Schreiboperationen in einen Speicherzustand länger benötigen, wenn der Zustand einer „1” gespeichert werden soll, als wenn der Zustand einer „0” gespeichert werden soll. In derartigen Fällen ist der Vorteil der Manipulation der Daten dadurch gegeben, dass weniger Bits in den langsameren Zustand übergehen. In diesen Fällen, wo die Daten derart manipuliert sind, dass sie invertiert werden, wird ein zusätzliches Bit gespeichert, um anzuzeigen, dass die Daten zur Optimierung der Leistungsfähigkeit invertiert wurden. Ähnliche Szenarien gibt es bei der Verwaltung der Zuverlässigkeit (z. B. höhere Bitfehlerraten für den Wert „0” als für den Wert „1”), wobei hierfür ähnliche Techniken benutzt werden können. - Eine Speicher-Partitionierungs-Verwaltungs-Einheit (Memory Partitioning Management)
120 kann Speicher-Partitionierungs-Optionen bereitstellen, um den Speicher über unterschiedliche Prozessor-Kerne und Partionen zu schützen, wobei Software-Wiederverwendbarkeit, Systemzuverlässigkeit, und Design-Flexibilität erhalten bleiben. Die Partitionierung ermöglicht es den höheren Softwareschichten, die von den nicht-flüchtigen Medien Gebrauch machen, den zur Verfügung stehenden Speicherlatz zu segmentieren und dort unterschiedliche Typen von Daten oder Code zu speichern. Die hierarchische Speichereinheit100 bietet die Möglichkeit, den durch logische Adressen zugänglichen Bereich zu partitionieren, um die Einheit an unterschiedliche Gebrauchs-Modelle und während der Systemlebensdauer an Änderungen der Gebrauchs-Modelle selbst anzupassen. -
2 zeigt mehrere hierarchische Speichereinheiten100 , die mit zusätzlichem Speicher in einer Vielzahl von Konfigurationen verbunden sind. Die Figur zeigt, dass sachgerecht eingerichtete Einheit(en)100 eine Abfolge von Speichereinheiten erlaubt und das Anbinden von Speichertiefe an einen Prozessor-Kontroller mit begrenztem Pin-Count ermöglicht. Hierarchische Speichereinheit(en)100 öffnen den System-Massenspeicher und ermöglichen eine hierarchische Speicherarchitektur mit einer Speicherkapazität, die hauptsächlich durch praktische physikalische Randbedingungen begrenzt sind. - Um eine höhere I/O-Gesamtbandbreite für Kurzstrecken-Kommunikation zur Verfügung zu stellen, können die Inter-Chip-Busse bidirektional ausgeführt werden, d. h. die Busse können als unabhängige Busse ausgestaltet werden, wobei ein Bus für die Signalisierung in Aufwärtsrichtung dient und ein anderer Bus für die Signalisierung in Abwärtsrichtung dient. Zusätzlich zur simultanen bidirektionalen Signalisierung kann sog. Low-Voltage Differential Signaling (LVDS) als Signalisierungsprotokoll für die Inter-Chip-Kommunikation und zur Verbindung zu LVDS-Speicher für Universal Flash Storage (UFS) eingesetzt werden.
- Die hierarchische Speichereinheit
100 ist zwischen einem Prozessor und den Speichereinheiten, die unterschiedliche Speichermechanismen und unterschiedliche Schnittstellen-Formate aufweisen können, platziert. Die hierarchische Speichereinheit100 bietet eine Schnittstelle, um die unterschiedlichen Speicherformate so wie z. B. NOR mit Random-Access Lesezugriff, NAND mit seitenweisem Zugriff, und RAM, das DDR ermöglicht, aufzunehmen. Die hierarchische Speichereinheit100 kann an einen Host-Kontroller202 angebunden sein oder in einer anderen Ausführungsform, sollten Speicher-Kontrollerfunktionen in die Speichereinheit100 mit integriert sein, direkt an den Host angebunden sein. - Die Figur zeigt hierarchische Speichereinheiten, die in einer Baumhierarchie
204 miteinander verbunden sind, wobei jede hierarchische Speichereinheit100 den Verkehr zwischen ihrem aufwärtigen Port und einem von N abwärtigen Ports schaltet. Diese Konfiguration minimiert die Roundtrip-Latenz zur untersten Schicht des Baums auf Kosten von einigen zusätzlichen Interconnects. Die Figur zeigt außerdem in einer Daisy-Chain206 verbundene hierarchische Speichereinheiten100 . In der Daisy-Chain-Hierarchie interpretiert jeder Knoten den Verkehr, um zu bestimmen, ob dieser Verkehr für den lokalen Knoten bestimmt ist oder für einen aufwärtigen/abwärtigen Knoten. Mit für den lokalen Knoten bestimmten Verkehr wird derart verfahren, dass die entsprechenden Aktionen getätigt werden, wohingegen aufwärtiger/abwärtiger Verkehr durch die hierarchische Speichereinheit mit einem Minimum an Latenz-Zeit durchgereicht wird. Zusätzlich können hybride Konfigurationen unterschiedliche Variationen der Hierarchien kombinieren. Beispielsweise kann es vorteilhaft sein, einen Baum mit drei Ebenen und vier Terminal-Knoten zu bilden, wobei an jeden Terminal-Knoten eine Daisy-Chain mit einer Tiefe von 16 Einheiten angebunden ist. - In dem hierarchischen Speicher-Subsystem können auch nicht-hierarchische Standard-Speichereinheiten
208 an die hierarchischen Speichereinheiten100 angebunden sein. Beispielsweise kann Multi-Level-Cell (MLC) NAND-Speicher an einen Baum von hierarchischem PCM-Speicher angebunden sein. In diesem Beispiel kann PCM dazu verwendet werden, um die Verbindung von NAND-Speicher mit sehr hohen Dichten zu bewerkstelligen, wobei dies auch der Reduktion der Beanspruchung des NAND-Speichers durch zwischengespeicherte Leseoperationen und sich vereinenden bzw. zwischengespeicherten Schreibzugriffsoperationen dient. Obwohl der NAND-Speicher unregelmäßig gelesen wird und unregelmäßig beschrieben wird, können Schreibzugriffe auf den NAND-Speicher derart zusammengeführt werden, dass nur noch Schreib-Operationen auftreten, die das Beschreiben von kompletten Datenblocks beinhalten. Wird in der hierarchischen Speichereinheit100 PCM-Speicher anstelle von flüchtigem RAM-Speicher zur Zwischenspeicherung (caching) verwendet, werden die Probleme im Falle eines Spannungsverlusts reduziert und der Verlust von Daten verhindert. Der PCM-Speicher kann außerdem eine Fehlerkorrektur (ECC) durchführen, derart, dass Schreibfehler auf den NAND-Speicher während mehrerer Schreiboperationen nicht akkumuliert werden. - Unabhängig von der Host-Schnittstelle gibt es mehrere Möglichkeiten, wie das hierarchische Speicher-Subsystems dem System aus logischer Sicht erscheint. Hierunter fallen I/O-mapped, memory-mapped Verfahren und memory-mapped-I/O. Als I/O-mapped Einheit erscheint das Subsystem gegenüber dem Host und der Host-Software als eine sektorbasierte Einheit. Bei diesem Typ von Einheiten werden alle Zuordnungen und Umwandlungen, wie die Umwandlung von Sektoren auf Seiten durch den Host vorgenommen. Generell ist die Information in atomischen Sektoren, die beispielsweise, zwischen 512 Byte bis 8 Kilobyte oder länger sein können, enthalten. Generell werden die I/O-mapped Einheiten von I/O-Device-Treibern gehandhabt, die zu einer zusätzlichen Software-Latenz zu der bereits in dem Subsystem und dem zugehörigen Schnittstellen vorhandenen Hardware-Latenz führt.
- Als eine memory-mapped Einheit erscheint das Subsystem dem Host und der Host-software als ein flaches Speicherabbild. Generell werden auf Speicher abgebildete Einheiten direkt als Speicher angesprochen, wobei die Latenz durch das Betriebssystem eliminiert wird. Ähnlich wie die I/O-mapped Schnittstelle erscheint das Subsystem gegenüber dem Host und der Host-Software als eine sektorbasierte Einheit. Zusätzlich kann die hierarchische Speichereinheit als memora-mapped Einheit wirken. Der memory-mapped Zugriff kann helfen, die durch die I/O-Device-Treiber und die Kontroller-Logik hervorgerufenen Verzögerungen zu unterbinden.
-
3 zeigt die hierarchische Speichereinheit100 in Kombination mit nichtflüchtigem Speicher in unterschiedlichen Konfigurationen gemäß der vorliegenden Erfindung. Im Halbleitergehäuse302 sind die Ausgangs-Ports des hierarchischen Speichers100 mit zwei NAND-Speicherchips verbunden, um eine Speicher-Kombination zu bilden, die insbesondere im Solid-State-Drive(SSD)-Design angewendet wird. Ein SSD-Datenspeicher benutzt Solid-State-Speicher, um persistente Daten zu speichern, wobei die Dichte der SSD weiter erhöht werden kann, indem weiterer NAND-Speicher unter Benutzung von mehreren Halbleitergehäusen302 hinzugefügt wird. Weiterhin ist in der Figur ein Halbleitergehäuse304 gezeigt, das den hierarchischen Speicher100 mit einem RAM-Chip am selben Bus umfasst, wobei zwei NAND-Speicherchips mit den Ausgangs-Ports an der Rückseite des hierarchischen Speichers100 verbunden sind. - Ein Halbleitergehäuse
306 zeigt wenigstens zwei hierarchische Speicherchips und einen damit gekoppelten RAM-Speicher an der Vorderseite, wobei mehrere NAND-Ports an der Rückseite vorhanden sind, an die, wie gezeigt, dichte NAND-Stacks angebunden werden können. Alternativ zeigt Halbleitergehäuse308 , dass zwei oder mehr hierarchische Speicherchips, ein oder mehrere RAM-Chips, und dichte NAND-Stacks, die an die NAND-Ports des hierarchischen Speichers angebunden sind, kombiniert werden können. -
4 zeigt, dass die Halbleitergehäuse302 ,304 ,306 und308 , bei denen die Halbleiterchips auf ein Substrat montiert sind, das dann mit Bumps versehen werden kann, um entweder ein Chip-Scale-Package (CSP) oder ein Ball-Grid-Array (BGA) als endgültiges Halbleitergehäuse zu bilden. Die Halbleiterchips können side-by-side auf einem Substrat angeordnet werden oder sog. Die-Stacking-Techniken werden benutzt, um kleinere Halbleiterchips auf größeren Halbleiterchips zu montieren und das Wire-Bonding von beiden zu ermöglichen. Zur Unterstützung der Interconnects können die Halbleiterchips mit Thru-Silicon-Vias versehen werden und Die-to-die-Bonding kann angewendet werden. In der in der Figur gezeigten Ausführung sind zwei hierarchische Speichereinheiten100 mit einem Stack aus NAND-Einheiten402 umfasst. Ein RAM-Speicherchip kann auch in den Stack eingebunden werden. Zur weiteren Erhöhung der Speicherdichte und der Speicherbandbreite, die in einem gegebenen Size-Footprint zur Verfügung steht, kann die Package-on-Package (PoP)-Technik benutzt werden, um vertikal mehrere Halbleitergehäuse, wie beispielsweise NAND-Stack-Gehäuse mit dem hierarchischen Speicher zu verbinden. - Es sollte klar sein, dass die Ausführungen der vorliegenden Erfindung eine erhöhte Effizienz der Speicherung durch hierarchischen Datenspeicher gemäß den Merkmalen der vorliegenden Erfindung ermöglichen. Durch die hierarchischen Speichereinheiten mit einer Host-Schnittstelle können diese Einheiten mit einem Host-System verbunden werden. Innerhalb der hierarchischen Struktur und dem Speicher-Kontroller können eine Anzahl von Algorithmen zur Verwaltung der Performance und Zuverlässigkeit angewendet werden wie beispielsweise Wear-Leveling; Zwischenspeicherung (caching); Fehler-Detektion und Fehler-Korrektur; Bad Page Management, Bad Block Management; und Daten-Manipulation, um so eine optimale Speicherkapazität für die Speicherhierarchie zur Verfügung zu stellen. Somit ergibt sich eine hierarchische Speicherarchitektur durch Einfüngen von einer oder mehreren hierarchischen Speichereinheiten in ein Speichersystem.
Claims (25)
- Hierarchische Speichereinheit (
100 ), umfassend: ein Phase-Change-Speicher(PCM)-Array (140 ); mehrere Schnittstellen mit unterschiedlichen Speicherformaten, wobei die mehreren Schnittstellen eine NAND-Schnittstelle (132 ) und eine Speicher-Schnittstelle (136 ) zu einer Massenspeichereinheit umfassen; wenigstens einen Prozessorkern (148 ) zum Ausführen von Multi-Core-NAND-Management und autonomen Computing Funktionen, wobei die NAND-Management Funktionen ausgestaltet sind zum Abgleichen von Daten-Input und/oder Daten-Output zwischen der NAND-Schnittstelle (132 ) und einem Pufferspeicher, der mit der NAND-Schnittstelle gekoppelt ist, wobei der Abgleich basiert auf extrahierten Steuer- und Betriebsinformationen, die empfangene Befehlssätze und Adressen von mit der hierarchischen Speichereinheit verbundenen Speichereinheiten beinhalten, wobei der wenigstens eine Prozessorkern (148 ) ferner ausgestaltet ist, die empfangenen Befehlssätze zu interpretieren und Speicher-Befehle auszusenden; und wenigstens einen Eingangs-Port und eine Mehrzahl von Ausgangs-Ports, so dass die hierarchische Speichereinheit gleichzeitig sowohl in einer Daisy-Chain-Hierarchie als auch in einer hierarchischen Baumstruktur mit anderen hierarchischen Speichereinheiten verbindbar ist und so dass Verkehr zwischen dem wenigstens einen Eingangs-Port und einem der Mehrzahl von Ausgangs-Ports geschaltet werden kann, um eine Roundtrip-Latenz zu einer untersten Schicht der hierarchischen Baumstruktur zu minimieren, wobei die Mehrzahl von Ausgangs-Ports ausgebildet ist, wenigstens mit einem NAND-Speicher extern zur hierarchischen Speichereinheit (100 ) kommunikativ verbunden zu sein, wobei die NAND-Schnittstelle (132 ) ausgebildet ist, Kommunikationen zwischen dem PCM-Array (140 ) und dem wenigsten einen NAND-Speicher so zu steuern, dass das PCM-Array (140 ) Daten zwischenspeichern kann, die es von dem wenigstens einen NAND-Speicher empfangen hat, wobei der wenigstens eine Eingangs-Port und die Mehrheit von Ausgangs-Ports durch den wenigstens einen Prozessorkern (148 ) konfigurierbar sind. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 1, wobei die mehreren Schnittstellen eine RAM-Schnittstelle (130 ), eine Netzwerkschnittstelle (134 ), eine Speicherschnittstelle (136 ) und eine Peripherie-Schnittstelle (138 ) umfassen. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 1, die konfigurierbar ist, um als eine I/O-mapped, memory-mapped, oder memory-mapped I/O Einheit betrieben zu werden. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 1, eingerichtet um den Verkehr in der Daisy-Chain-Hierarchie zu interpretieren, um festzustellen, ob der Verkehr für die hierarchische Speichereinheit oder für einen aufwärtigen/abwärtigen Knoten bestimmt ist. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 1, wobei der wenigstens eine Eingangs-Port ausgebildet ist, wenigstens mit einem RAM-Speicher extern zur hierarchischen Speichereinheit (100 ) kommunikativ verbunden zu sein. - Hierarchische Speichereinheit (
100 ) zur Benutzung in einem Speicher-Subsystem, umfassend: ein Phase-Change-Speicher(PCM)-Array (140 ); einen Prozessor-Kern (148 ), um Algorithmen für Wear-Leveling, Zwischenspeicherung, Fehlererkennung und -Korrektur, und Datenmanipulation zur Vorbehandlung von Speichersektionen, die einen langsameren Zustand haben, zur Verwaltung von Leistungsfähigkeit und Zuverlässigkeit auszuführen; wenigstens einen Eingangs-Port und wenigstens einen Ausgangs-Port, um die hierarchische Speichereinheit (100 ) in einer Daisy-Chain-Hierarchie oder in einer hierarchischen Baumstruktur zu verbinden, wobei der wenigstens eine Ausgangs-Port ausgebildet ist, mit wenigstens einem NAND-Speicher extern zur hierarchischen Speichereinheit (100 ) kommunikativ verbunden zu sein; und eine NAND-Schnittstelle (132 ), die ausgebildet ist, Kommunikationen zwischen dem PCM-Array (140 ) und dem wenigsten einen NAND-Speicher so zu steuern, dass das PCM-Array (140 ) Daten zwischenspeichern kann, die es von dem wenigstens einen NAND-Speicher empfangen hat, wobei der Prozessor-Kern (148 ) ferner ausgebildet ist zum Ausführen von Multi-Core-NAND-Management und autonomen Computing Funktionen, wobei die NAND-Management Funktionen ausgestaltet sind zum Abgleichen von Daten-Input und/oder Daten-Output zwischen der NAND-Schnittstelle (132 ) und einem Pufferspeicher, der mit der NAND-Schnittstelle gekoppelt ist, wobei der Abgleich basiert auf extrahierten Steuer- und Betriebsinformationen, die empfangene Befehlssätze und Adressen von mit der hierarchischen Speichereinheit verbundenen Speichereinheiten beinhalten, wobei der wenigstens eine Prozessorkern (148 ) ferner ausgestaltet ist, die empfangenen Befehlssätze zu interpretieren und Speicher-Befehle auszusenden, wobei die Befehlssätze „copy” und „move” Befehle umfassen. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 6, wobei die hierarchische Speichereinheit als sektorbasierte Einheit betrieben wird. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 6, wobei die hierarchische Speichereinheit mit anderen hierarchischen Speichereinheiten in einer Daisy-Chain-Konfiguration verbunden ist. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 6, wobei die hierarchische Speichereinheit mit anderen hierarchischen Speichereinheiten in einer Baumstruktur verbunden ist. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 6, wobei die hierarchische Speichereinheit konfigurierbar ist, um als eine I/O-mapped, memory-mapped, oder memorymapped I/O Einheit betrieben zu werden. - Hierarchische Speichereinheit (
100 ) mit einem Pufferspeicher, umfassend: ein Phase-Change-Speicher(PCM)-Array (140 ); eine RAM-Schnittstelle (130 ); eine NAND-Schnittstelle (132 ) zur Extraktion von Befehlsinformation, um basierend auf dem Befehl eine Datenrate zwischen der NAND-Schnittstelle (132 ) und dem Pufferspeicher anzupassen, wobei die NAND-Schnittstelle (132 ) ausgebildet ist, Kommunikationen zwischen dem PCM-Array (140 ) und wenigsten einen NAND-Speicher extern zu der hierarchischen Speichereinheit (100 ) so zu steuern, dass das PCM-Array (140 ) Daten zwischenspeichern kann, die es von dem wenigstens einen NAND-Speicher empfangen hat, und wobei die NAND-Schnittstelle (132 ) ferner ausgebildet ist, mit einem Ausgangs-Port der hierarchischen Speichereinheit (100 ) zu koppeln; eine Netzwerkschnittstelle (134 ) zur Unterstützung von Signalisierungsraten und Datenpaket-Übertragungen über Kommunikationsverbindungen; wenigstens einen Prozessorkern (148 ) zum Ausführen von Multi-Core-NAND-Management und autonomen Computing Funktionen, wobei die NAND-Management Funktionen ausgestaltet sind zum Abgleichen von Daten-Input und/oder Daten-Output zwischen der NAND-Schnittstelle (132 ) und einem Pufferspeicher, der mit der NAND-Schnittstelle gekoppelt ist, wobei der Abgleich basiert auf extrahierten Steuer- und Betriebsinformationen, die empfangene Befehlssätze und Adressen von mit der hierarchischen Speichereinheit verbundenen Speichereinheiten beinhalten, wobei der wenigstens eine Prozessorkern (148 ) ferner ausgestaltet ist, die empfangenen Befehlssätze zu interpretieren und Speicher-Befehle auszusenden; und eine Speicherschnittstelle (136 ). - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die RAM-Schnittstelle (130 ) eine Kommunikation zwischen einem Host und der Speichereinheit als ein Double-Data-Rate Random Access Memory(DDR RAM)-Speicher zur Verfügung stellt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die RAM-Schnittstelle (130 ) eine Kommunikation zwischen einem Host und der Speichereinheit als ein Double-Data-Rate drei Synchronous Dynamic Random Access Memory (DDR3 SDRAM)-Speicher zur Verfügung stellt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die RAM-Schnittstelle (130 ) eine Low Power Double-Data-Rate(LPDDR)-Schnittstelle mit reduzierter Leistung darstellt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die NAND-Schnittstelle (132 ) sektorbasiert arbeitet. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Netzwerkschnittstelle (134 ) ein Ethernet-Protokoll unterstützt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Netzwerkschnittstelle (134 ) eine InfiniBand point-to-point bidierctional serielle Verbindung unterstützt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Netzwerkschnittstelle (134 ) Kommunikationsverbindungen nach dem 802.11-Standard unterstützt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Speicherschnittstelle (136 ) eine Serial ATA(SATA)-Speicherschnittstelle ist, die Kommunikation zwischen einem Hostbus und Massenspeichereinheiten erlaubt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Speicherschnittstelle (136 ) eine point-to-point serielle Serial-Attached SCSI(SAS)-Schnittstelle zur Verbindung von einer Speichereinheit und einem Plattenlaufwerk ist. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, wobei die Speicherschnittstelle (136 ) ein Fibre-Channel Protokoll (FCP) unterstützt. - Hierarchische Speichereinheit (
100 ) gemäß Anspruch 11, ferner umfassend eine Peripherie-Schnittstelle (138 ). - Gekapselte Speichereinheit, umfassend: wenigstens einen hierarchischen Speicher (
100 ), aufweisend Phase-Change-Speicher(PCM)-Arrays (140 ), mehrere Ausgangs-Ports und mehrere Schnittstellen zur Handhabung von unterschiedlichen Speicherformaten umfassend eine NAND-Schnittstelle (132 ); wenigstens einen NAND-Speicher extern zu der wenigstens einen hierarchischen Speichereinheit (100 ) und verbunden mit einem entsprechenden Ausgangs-Port der mehreren Ausgangs-Ports des hierarchischen Speichers (100 ), wobei die NAND-Schnittstelle (132 ) ausgebildet ist, Kommunikationen zwischen den PCM-Arrays (140 ) und dem wenigstens einen NAND-Speicher so zu steuern, dass die PCM-Arrays (140 ) Daten zwischenspeichern können, die sie von dem wenigstens einen NAND-Speicher empfangen haben; und wenigstens einen Prozessorkern (148 ) zum Ausführen von Multi-Core-NAND-Management und autonomen Computing Funktionen, wobei die NAND-Management Funktionen ausgestaltet sind zum Abgleichen von Daten-Input und/oder Daten-Output zwischen der NAND-Schnittstelle (132 ) und einem Pufferspeicher, der mit der NAND-Schnittstelle gekoppelt ist, wobei der Abgleich basiert auf extrahierten Steuer- und Betriebsinformationen, die empfangene Befehlssätze und Adressen von mit der hierarchischen Speichereinheit verbundenen Speichereinheiten beinhalten, wobei der wenigstens eine Prozessorkern (148 ) ferner ausgestaltet ist, die empfangenen Befehlssätze zu interpretieren und Speicher-Befehle auszusenden. - Gekapselte Speichereinheit gemäß Anspruch 23, weiter umfassend einen Random Access Memory(RAM)-Speicher, der mit der hierarchischen Speichereinheit (
100 ) gemeinsame Adress- und Daten-Ports aufweist. - Gekapselte Speichereinheit gemäß Anspruch 23 oder Anspruch 24, umfassend: einen ersten und einen zweiten hierarchischen Speicher (
100 ), jeder aufweisend Phase-Change-Speicher(PCM)-Arrays (140 ), mehrere Schnittstellen zur Handhabung von unterschiedlichen Speicherformaten und Ausgangs-Ports; einen ersten und einen zweiten NAND-Speicher, die mit den Ausgangs-Ports des ersten hierarchischen Speichers verbunden sind; und einen dritten und einen vierten NAND-Speicher, die mit den Ausgangs-Ports des zweiten hierarchischen Speichers verbunden sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/483,198 | 2009-06-11 | ||
US12/483,198 US9123409B2 (en) | 2009-06-11 | 2009-06-11 | Memory device for a hierarchical memory architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102009037984A1 DE102009037984A1 (de) | 2010-12-16 |
DE102009037984B4 true DE102009037984B4 (de) | 2017-10-19 |
Family
ID=43069944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102009037984.3A Active DE102009037984B4 (de) | 2009-06-11 | 2009-08-19 | Speichereinheit für eine hierarchische Speicherarchitektur |
Country Status (5)
Country | Link |
---|---|
US (4) | US9123409B2 (de) |
JP (1) | JP5566650B2 (de) |
KR (1) | KR101557624B1 (de) |
CN (1) | CN101923447B (de) |
DE (1) | DE102009037984B4 (de) |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9741398B1 (en) | 2009-05-08 | 2017-08-22 | Micron Technology, Inc. | Using out-of-band signaling to communicate with daisy chained nonvolatile memories |
US8331857B2 (en) * | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8516166B2 (en) * | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US20110242427A1 (en) * | 2010-04-01 | 2011-10-06 | Timothy Ramsdale | Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory |
US20120117303A1 (en) | 2010-11-04 | 2012-05-10 | Numonyx B.V. | Metadata storage associated with flash translation layer |
US8880817B2 (en) * | 2010-12-16 | 2014-11-04 | Dell Products L.P. | Storage subsystem backplane management system |
US8595415B2 (en) * | 2011-02-02 | 2013-11-26 | Micron Technology, Inc. | At least semi-autonomous modules in a memory system and methods |
US8576570B2 (en) * | 2011-03-21 | 2013-11-05 | NCS Technologies, Inc. | Adaptive computing system with modular control, switching, and power supply architecture |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
KR20120137051A (ko) * | 2011-06-10 | 2012-12-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 패키지 및 그의 제조 방법 |
JP5694101B2 (ja) * | 2011-09-20 | 2015-04-01 | 株式会社東芝 | メモリ・デバイス、ホスト・デバイス |
US9294224B2 (en) | 2011-09-28 | 2016-03-22 | Intel Corporation | Maximum-likelihood decoder in a memory controller for synchronization |
CN103946826B (zh) | 2011-09-30 | 2019-05-31 | 英特尔公司 | 用于在公共存储器通道上实现多级存储器层级的设备和方法 |
EP2761466B1 (de) | 2011-09-30 | 2020-08-05 | Intel Corporation | Vorrichtung und verfahren zur implementierung einer mehrstufigen speicherhierarchie |
EP2761469B1 (de) | 2011-09-30 | 2019-11-13 | Intel Corporation | Nichtflüchtiger direktzugriffsspeicher (nvram) als ersatz für herkömmlichen massenspeicher |
EP2761476B1 (de) | 2011-09-30 | 2017-10-25 | Intel Corporation | Vorrichtung, verfahren und system zur bios-speicherung in einer nichtflüchtige ram-speicherzelle |
EP2761472B1 (de) | 2011-09-30 | 2020-04-01 | Intel Corporation | Speicherkanal zur unterstützung von nah- und fern-speicherzugriffen |
WO2013048467A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
CN103946814B (zh) | 2011-09-30 | 2017-06-06 | 英特尔公司 | 计算机系统中的非易失性随机存取存储器的自主初始化 |
CN103946811B (zh) | 2011-09-30 | 2017-08-11 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
CN103946824B (zh) | 2011-11-22 | 2016-08-24 | 英特尔公司 | 一种用于非易失性随机访问存储器的访问控制方法、装置及系统 |
WO2013089686A1 (en) | 2011-12-13 | 2013-06-20 | Intel Corporation | A method and system for providing instant responses to sleep state transitions with non-volatile random access memory |
WO2013089685A1 (en) | 2011-12-13 | 2013-06-20 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
US9286205B2 (en) | 2011-12-20 | 2016-03-15 | Intel Corporation | Apparatus and method for phase change memory drift management |
KR101915073B1 (ko) | 2011-12-20 | 2018-11-06 | 인텔 코포레이션 | 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단 |
US9448922B2 (en) | 2011-12-21 | 2016-09-20 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
WO2013095530A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Efficient pcms refresh mechanism background |
DE112011106032B4 (de) | 2011-12-22 | 2022-06-15 | Intel Corporation | Energieeinsparung durch Speicherkanal-Abschaltung |
WO2013097105A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Efficient dynamic randomizing address remapping for pcm caching to improve endurance and anti-attack |
US9841920B2 (en) | 2011-12-29 | 2017-12-12 | Intel Corporation | Heterogeneous memory die stacking for energy efficient computing |
CN104011691B (zh) | 2011-12-29 | 2016-12-14 | 英特尔公司 | 非易失性ram盘 |
CN104126181A (zh) * | 2011-12-30 | 2014-10-29 | 英特尔公司 | 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换 |
CN106469029B (zh) * | 2011-12-31 | 2019-07-23 | 华为数字技术(成都)有限公司 | 数据分层存储处理方法、装置和存储设备 |
US8832506B2 (en) * | 2012-01-20 | 2014-09-09 | International Business Machines Corporation | Bit error rate based wear leveling for solid state drive memory |
US20130262942A1 (en) * | 2012-03-27 | 2013-10-03 | Yung-Chiang Chu | Flash memory lifetime evaluation method |
KR20130114354A (ko) | 2012-04-09 | 2013-10-18 | 삼성전자주식회사 | 메모리 시스템 및 컨트롤러의 동작 방법 |
US9323608B2 (en) | 2012-06-07 | 2016-04-26 | Micron Technology, Inc. | Integrity of a data bus |
US9009570B2 (en) | 2012-06-07 | 2015-04-14 | Micron Technology, Inc. | Integrity of an address bus |
US9152428B2 (en) | 2012-09-28 | 2015-10-06 | Intel Corporation | Alternative boot path support for utilizing non-volatile memory devices |
US9032177B2 (en) | 2012-12-04 | 2015-05-12 | HGST Netherlands B.V. | Host read command return reordering based on time estimation of flash read command completion |
US9093170B2 (en) * | 2013-03-01 | 2015-07-28 | Intel Corporation | Multi-level cell (MLC) non-volatile memory data reading method and apparatus |
US9324450B2 (en) * | 2013-03-13 | 2016-04-26 | Winbond Electronics Corporation | NAND flash memory |
US9042198B2 (en) | 2013-03-21 | 2015-05-26 | Yutaka Shirai | Nonvolatile random access memory |
JP6070357B2 (ja) | 2013-03-28 | 2017-02-01 | 富士通株式会社 | ストレージ装置 |
US10599433B2 (en) * | 2013-07-15 | 2020-03-24 | Texas Instruments Incorported | Cache management operations using streaming engine |
CN103500147A (zh) * | 2013-09-27 | 2014-01-08 | 浪潮电子信息产业股份有限公司 | 一种嵌入分层存储的pb级集群存储系统的方法 |
CN103810118B (zh) * | 2014-02-28 | 2016-08-17 | 北京航空航天大学 | 一种stt-mram缓存设计方法 |
US10204047B2 (en) | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
US10387259B2 (en) | 2015-06-26 | 2019-08-20 | Intel Corporation | Instant restart in non volatile system memory computing systems with embedded programmable data checking |
US10073659B2 (en) | 2015-06-26 | 2018-09-11 | Intel Corporation | Power management circuit with per activity weighting and multiple throttle down thresholds |
US10108549B2 (en) | 2015-09-23 | 2018-10-23 | Intel Corporation | Method and apparatus for pre-fetching data in a system having a multi-level system memory |
US10261901B2 (en) | 2015-09-25 | 2019-04-16 | Intel Corporation | Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory |
US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10095618B2 (en) | 2015-11-25 | 2018-10-09 | Intel Corporation | Memory card with volatile and non volatile memory space having multiple usage model configurations |
US9747041B2 (en) | 2015-12-23 | 2017-08-29 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
US10007606B2 (en) | 2016-03-30 | 2018-06-26 | Intel Corporation | Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory |
US10185619B2 (en) | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
US10120806B2 (en) | 2016-06-27 | 2018-11-06 | Intel Corporation | Multi-level system memory with near memory scrubbing based on predicted far memory idle time |
KR102612003B1 (ko) * | 2016-07-11 | 2023-12-08 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템 |
US10698732B2 (en) * | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US10783146B2 (en) | 2016-07-19 | 2020-09-22 | Sap Se | Join operations in hybrid main memory systems |
US10474557B2 (en) | 2016-07-19 | 2019-11-12 | Sap Se | Source code profiling for line-level latency and energy consumption estimation |
US10387127B2 (en) | 2016-07-19 | 2019-08-20 | Sap Se | Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases |
US11977484B2 (en) | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10540098B2 (en) | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
KR102656189B1 (ko) | 2016-07-19 | 2024-04-11 | 삼성전자주식회사 | 직렬로 연결되는 스토리지 장치들 중 직접 연결되지 않은 스토리지 장치를 제어하도록 구성되는 전자 장치, 그것에 포함되는 스토리지 장치, 그것을 포함하는 컴퓨팅 시스템, 및 스토리지 장치의 컨트롤러의 동작 방법 |
US10437798B2 (en) | 2016-07-19 | 2019-10-08 | Sap Se | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems |
US10452539B2 (en) | 2016-07-19 | 2019-10-22 | Sap Se | Simulator for enterprise-scale simulations on hybrid main memory systems |
US20180175772A1 (en) * | 2016-12-21 | 2018-06-21 | Rockwell Automation Technologies, Inc. | Motor drive with multi-function high speed communications interface |
US10915453B2 (en) | 2016-12-29 | 2021-02-09 | Intel Corporation | Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures |
US10445261B2 (en) | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10304814B2 (en) | 2017-06-30 | 2019-05-28 | Intel Corporation | I/O layout footprint for multiple 1LM/2LM configurations |
US11010379B2 (en) | 2017-08-15 | 2021-05-18 | Sap Se | Increasing performance of in-memory databases using re-ordered query execution plans |
US11188467B2 (en) | 2017-09-28 | 2021-11-30 | Intel Corporation | Multi-level system memory with near memory capable of storing compressed cache lines |
US10585598B2 (en) | 2017-09-29 | 2020-03-10 | Hewlett Packard Enterprise Development Lp | Modifying accessibility based on memory access patterns |
US10866899B2 (en) * | 2017-10-02 | 2020-12-15 | Arm Ltd | Method and apparatus for control of a tiered memory system |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
US10977198B2 (en) * | 2018-09-12 | 2021-04-13 | Micron Technology, Inc. | Hybrid memory system interface |
US10607712B1 (en) * | 2018-09-28 | 2020-03-31 | Toshiba Memory Corporation | Media error reporting improvements for storage drives |
US11449268B2 (en) * | 2018-11-20 | 2022-09-20 | Samsung Electronics Co., Ltd. | Deep solid state device (deep-SSD): a neural network based persistent data storage |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
WO2020220556A1 (en) | 2019-04-30 | 2020-11-05 | Yangtze Memory Technologies Co., Ltd. | Three-dimensional memory device with three-dimensional phase-change memory |
US11416422B2 (en) * | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
CN110914994B (zh) * | 2019-10-14 | 2021-05-25 | 长江存储科技有限责任公司 | 用于形成三维相变存储器件的方法 |
KR20220066741A (ko) | 2020-11-16 | 2022-05-24 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220077400A (ko) | 2020-12-02 | 2022-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이의 동작 방법 |
US20230396272A1 (en) * | 2022-06-02 | 2023-12-07 | Micron Technology, Inc. | Error correction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924115A (en) * | 1996-03-29 | 1999-07-13 | Interval Research Corporation | Hierarchical memory architecture for a programmable integrated circuit having an interconnect structure connected in a tree configuration |
US20080229026A1 (en) * | 2007-03-15 | 2008-09-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method for concurrently checking availability of data in extending memories |
WO2008121559A1 (en) * | 2007-03-30 | 2008-10-09 | Rambus Incorporated | System including hierarchical memory modules having different types of integrated circuit memory devices |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1031992B1 (de) * | 1989-04-13 | 2006-06-21 | SanDisk Corporation | EEprom-System mit Blocklöschung |
US5696917A (en) * | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
US5504882A (en) * | 1994-06-20 | 1996-04-02 | International Business Machines Corporation | Fault tolerant data storage subsystem employing hierarchically arranged controllers |
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
KR100578143B1 (ko) | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
JP2006338370A (ja) | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
JP4942446B2 (ja) | 2006-10-11 | 2012-05-30 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
CN101681282A (zh) | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
JP4897524B2 (ja) | 2007-03-15 | 2012-03-14 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのライト性能低下防止方法 |
US20080270811A1 (en) * | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
US7822936B2 (en) | 2007-06-27 | 2010-10-26 | International Business Machines Corporation | Memory chip for high capacity memory subsystem supporting replication of command data |
US8037258B2 (en) * | 2007-06-27 | 2011-10-11 | International Business Machines Corporation | Structure for dual-mode memory chip for high capacity memory subsystem |
US8140739B2 (en) * | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
-
2009
- 2009-06-11 US US12/483,198 patent/US9123409B2/en active Active
- 2009-08-19 DE DE102009037984.3A patent/DE102009037984B4/de active Active
- 2009-08-27 CN CN2009101712619A patent/CN101923447B/zh active Active
- 2009-08-27 KR KR1020090079938A patent/KR101557624B1/ko active IP Right Grant
- 2009-08-28 JP JP2009217985A patent/JP5566650B2/ja active Active
-
2015
- 2015-08-31 US US14/840,733 patent/US9626327B2/en active Active
-
2017
- 2017-04-17 US US15/489,434 patent/US10031879B2/en active Active
-
2018
- 2018-07-02 US US16/025,889 patent/US10725956B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924115A (en) * | 1996-03-29 | 1999-07-13 | Interval Research Corporation | Hierarchical memory architecture for a programmable integrated circuit having an interconnect structure connected in a tree configuration |
US20080229026A1 (en) * | 2007-03-15 | 2008-09-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method for concurrently checking availability of data in extending memories |
WO2008121559A1 (en) * | 2007-03-30 | 2008-10-09 | Rambus Incorporated | System including hierarchical memory modules having different types of integrated circuit memory devices |
Also Published As
Publication number | Publication date |
---|---|
JP2010287203A (ja) | 2010-12-24 |
US10031879B2 (en) | 2018-07-24 |
DE102009037984A1 (de) | 2010-12-16 |
US10725956B2 (en) | 2020-07-28 |
US20100318718A1 (en) | 2010-12-16 |
KR20100133288A (ko) | 2010-12-21 |
US20180322085A1 (en) | 2018-11-08 |
US20150370750A1 (en) | 2015-12-24 |
US9123409B2 (en) | 2015-09-01 |
US9626327B2 (en) | 2017-04-18 |
US20170220516A1 (en) | 2017-08-03 |
CN101923447A (zh) | 2010-12-22 |
CN101923447B (zh) | 2013-04-24 |
JP5566650B2 (ja) | 2014-08-06 |
KR101557624B1 (ko) | 2015-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102009037984B4 (de) | Speichereinheit für eine hierarchische Speicherarchitektur | |
DE102020125046A1 (de) | Konfigurationsschnittstelle zum auslagern von fähigkeiten an eine netzwerkschnittstelle | |
DE112020005060T5 (de) | Ratengrenze für den übergang von zonen zum öffnen | |
DE112017003334T5 (de) | Lastreduzierte nichtflüchtige speicherschnittstelle | |
DE102009026178A1 (de) | Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten | |
DE102010013388A1 (de) | Hierarchische Speichervorrichtung zur Verbindung von Massenspeichern | |
DE102011086227A1 (de) | Adress mapping method, data storage device and user device | |
DE102020116362B3 (de) | Dynamische zuweisung von unterblöcken | |
DE112011103208T5 (de) | Hochgeschwindigkeits-Speichersystem | |
DE112011106013T5 (de) | System und Verfahren für den intelligenten Datentransfer von einem Prozessor in ein Speicheruntersystem | |
DE102016204283A1 (de) | Datenspeichervorrichtungen, Datenverarbeitungssysteme, die diese aufweisen, Verfahren zum Betreiben und Verfahren zum Herstellen derselben. | |
DE112020005044T5 (de) | Zonenanhang-befehlsplanung basierend auf zonenzustand | |
DE102020211544A1 (de) | Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben | |
DE102021122233A1 (de) | Beschleuniger-controller-hub | |
DE112020005395T5 (de) | Kapazitätserweiterung für speicher-untersysteme | |
DE102020119400A1 (de) | Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung | |
DE112020000159T5 (de) | Systeme und verfahren zum definieren von speicher-unterblöcken | |
CN104409099A (zh) | 基于FPGA的高速eMMC阵列控制器 | |
DE112021001848T5 (de) | Mehrere pinkonfigurationen von speichervorrichtungen | |
WO2021179164A1 (en) | Maintaining queues for memory sub-systems | |
DE112019005506T5 (de) | Systeme und verfahren zum finden einer letzten guten seite in einem offenen nand-block | |
US11809710B2 (en) | Outstanding transaction monitoring for memory sub-systems | |
DE112022000518T5 (de) | Implizierte streams | |
DE112020004975T5 (de) | SPEICHERUNGSVORRICHTUNGEN MIT MINIMALEN SCHREIBGRÖßEN VON DATEN | |
US10725857B2 (en) | Data storage system for improving data throughput and decode capabilities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: NUMONYX B.V., ROLLE, CH |
|
8181 | Inventor (new situation) |
Inventor name: LEINWANDER, MARK, FOLSOM, CALIF., US Inventor name: EILERT, SEAN, PENRYN., CALIF., US |
|
R081 | Change of applicant/patentee |
Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNER: SEAN EILERT,MARK LEINWANDER, , US Effective date: 20110311 Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNERS: EILERT, SEAN, PENRYN, CALIF., US; LEINWANDER, MARK, FOLSOM, CALIF., US Effective date: 20110311 |
|
R082 | Change of representative |
Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, 80538 MUENCHEN, Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE |
|
R081 | Change of applicant/patentee |
Owner name: MICRON TECHNOLOGY, INC., BOISE, US Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH Effective date: 20120521 Owner name: MICRON TECHNOLOGY, INC., US Free format text: FORMER OWNER: NUMONYX B.V., ROLLE, CH Effective date: 20120521 |
|
R082 | Change of representative |
Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE Effective date: 20120521 Representative=s name: SAMSON & PARTNER, PATENTANWAELTE, DE Effective date: 20120521 |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |