DE102008033518A1 - Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement - Google Patents
Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement Download PDFInfo
- Publication number
- DE102008033518A1 DE102008033518A1 DE102008033518A DE102008033518A DE102008033518A1 DE 102008033518 A1 DE102008033518 A1 DE 102008033518A1 DE 102008033518 A DE102008033518 A DE 102008033518A DE 102008033518 A DE102008033518 A DE 102008033518A DE 102008033518 A1 DE102008033518 A1 DE 102008033518A1
- Authority
- DE
- Germany
- Prior art keywords
- sector
- bit map
- memory
- map values
- volatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
Eine Solid-State-Disk-Steuereinheit (30) einen flüchtigen Speicher (31) mit einem Speicherbereich (33, 35, 37), der Sektorbitabbildungswerte speichert, und eine Speichersteuereinheit (39), die dazu ausgebildet ist, selektiv mindestens einen Sektor aus einer Mehrzahl von Sektoren, die eine Seite eines externen nichtflüchtigen Speichers (50) bilden, basierend auf den Sektorbitabbildungswerten, die in dem Speicherbereich (33, 35, 37) gespeichert sind, der durch einen Zeiger angezeigt ist, in einer Leseoperation zu lesen.
Description
- Die vorliegende Erfindung betrifft ein Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, eine Solid-State-Disk-Steuereinheit und ein Datenspeicherelement.
- Herkömmlicherweise werden Magnetplatten als Datenspeicherelemente in elektronischen Systemen, wie Computersystemen, verwendet. Mit der Entwicklung der Halbleitertechnologie wurden anstelle von Magnetplatten Solid-State-Disks (SSDs) unter Verwendung von elektrisch löschbaren und programmierbaren Nurlesespeichern (EEPROM) (z. B. EEPROM vom NAND-Typ oder EEPROM vom NOR-Typ) basierend auf einem nichtflüchtigen Speicher als Datenspeicherelement in Computersystemen und tragbaren Geräten zunehmend verwendet.
- Da die SSDs keine mechanischen Antriebselemente, wie einen Motor, enthalten, der im Wesentlichen in Festplattenlaufwerken (HDDs) enthalten ist, erzeugen die SSDs während des Betriebs kaum Wärme und Geräusche. Außerdem weisen die SSDs eine hohe Zugriffsgeschwindigkeit, eine hohe Integration und Stabilität gegen äußere Einflüsse auf und werden daher als Datenspeicherelemente bevorzugt.
- Darüber hinaus ist die Datenübertragungsgeschwindigkeit der SSDs viel höher als die von HDDs.
- Wenn eine SSD als Datenspeicherelement verwendet wird, steuert eine Steuereinheit die Datenübertragung zwischen einem Host und einem EEPROM-basierten nichtflüchtigen Speicher. Die Steuereinheit überträgt Daten zu und empfängt Daten vom nichtflüchtigen Speicher unter der Steuerung einer Firmware, wenn Daten jeder Seite verarbeitet werden, was die Leistung der SSD beeinträchtigt.
- Der Erfindung liegt die technische Aufgabe zugrunde, ein Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, eine Solid-State-Disk-Steuereinheit und ein Datenspeicherelement zur Verfügung zu stellen, die eine optimale Leistungsfähigkeit aufweisen und/oder eine verschachtelte Leseoperation mittels Hardware ohne Einsatz von Firmware durchführen.
- Die Erfindung löst diese Aufgabe durch ein Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit mit den Merkmalen des Anspruch 1, 5 oder 9, eine Solid-State-Disk-Steuereinheit mit den Merkmalen des Anspruch 10, 12 oder 13 und ein Datenspeicherelement mit den Merkmalen des Anspruch 15.
- Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme zum Inhalt dieser Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
- Vorteilhafte Ausführungsformen der Erfindung, die unten ausführlich beschrieben werden, sind in den Zeichnungen dargestellt. Hierbei zeigt/zeigen:
-
1 ein Blockdiagramm eines Systems einer Solid-State-Disk(SSD)-Steuereinheit gemäß einigen Ausführungsformen der vorliegenden Erfindung, -
2 ein Flussdiagramm eines Datenverarbeitungsverfahrens der in1 dargestellten SSD-Steuereinheit, -
3A und3B Schaubilder zur Erläuterung der zufälligen Datenausgabeoperation der in1 dargestellten SSD-Steuereinheit, -
4 ein Flussdiagramm einer verschachtelten Hardware-Leseoperation, die von der in1 dargestellten SSD-Steuereinheit durchgeführt wird, und -
5A und5B Diagramme zur Erläuterung einer zufälligen Datenausgabeoperation für die verschachtelte Hardware-Leseoperation der in1 dargestellten SSD-Steuereinheit. - In den Zeichnungen können die Abmessungen und relativen Abmessungen von Schichten und Bereichen zum Zwecke der Deutlichkeit vergrößert sein. Gleiche Bezugszeichen bezeichnen gleiche Elemente.
- Es versteht sich, dass, wenn ein Element als "verbunden" oder "gekoppelt" mit einem anderen Element bezeichnet ist, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann, oder dazwischen liegende Elemente vorhanden sein können. Wenn hingegen ein Element als "direkt verbunden" oder "direkt gekoppelt" mit einem anderen Element bezeichnet ist, sind keine dazwischen liegende Elemente vorhanden.
-
1 ist ein Blockdiagramm eines Systems10 , das eine Solid-State-Disk(SSD)-Steuereinheit30 gemäß einigen Ausführungsformen der vorliegenden Erfindung beinhaltet. Mit Bezug zu1 beinhaltet das System10 , das ein Computersystem oder ein mobiles Gerät sein kann, einen Host20 , die SSD-Steuereinheit30 und ein nichtflüchtiges Speicherelement50 . Eine SSD beinhaltet das nichtflüchtige Speicherelement50 oder sie beinhaltet die SSD-Steuereinheit30 und das nichtflüchtige Speicherelement50 . - Der Host
20 überträgt einen Operationsbefehl (z. B. einen Lesebefehl, einen Programmierbefehl oder einen Löschbefehl) und Adressen über eine Hostschnittstelle (Host-I/F)49 und einen Systembus BUS zur SSD-Steuereinheit30 . Alternativ kann der Host20 den Operationsbefehl und die Adressen direkt über die Host-I/F49 zur SSD-Steuereinheit30 übertragen. Die SSD-Steuereinheit30 beinhaltet einen flüchtigen Speicher31 , eine Speichersteuereinheit (oder eine Flashspeichersteuereinheit)39 , einen Pufferspeicher47 und die Host-I/F49 . - Der flüchtige Speicher
31 ist durch einen dynamischen Direktzugriffspeicher (DRAM) oder einen statischen Direktzugriffspeicher (SRAM) implementiert und beinhaltet eine Mehrzahl von Speicherbereichen33 ,35 und37 , die jeweils Sektorbitabbildungswerte (sector bit map values) speichern. Die in den Speicherbereichen33 ,35 und37 gespeicherten Sektorbitabbildungswerte können unter Verwendung spezieller Hardware oder Firmware programmiert oder festgesetzt werden. - Die Speichersteuereinheit
39 beinhaltet ein erstes Register (oder ein Sektorbitabbildungszeigerregister)41 , das einen Sektorbitabbildungszeiger speichert, ein zweites Register (oder ein Sektorbitabbildungsregister)43 , das Sektorbitabbildungswerte speichert, die vom flüchtigen Speicher31 basierend auf dem Sektorbitabbildungszeiger ausgegeben sind, und eine Zustandsmaschine45 . Die Zustandsmaschine45 schreibt über mindestens einen zugehörigen Kanal aus einer Mehrzahl von Kanälen51 ,57 ,63 und69 Daten DATA in das nichtflüchtige Speicherelement50 ein oder liest Daten DATA daraus aus, wobei eine Mehrzahl von Steuersignalen, wie ein Befehlzwischenspeicherfreigabe(CLE)-Signal, ein Chipfreigabe(CE)-Signal, ein Schreibfreigabe(WE)-Signal, ein Adressenzwischenspeicherfreigabe(ALE)-Signal, ein Lese/Belegt(R/B)-Ausgabesignal und ein Schreibfreigabe(RE)-Signal, verwendet wird. - Die von der Zustandsmaschine
45 aus dem nichtflüchtigen Speicherelement50 gelesenen Daten DATA können über den Systembus BUS temporär im Pufferspeicher47 gespeichert werden. Der Pufferspeicher47 kann Daten DATA, die zwischen dem Host20 und dem nichtflüchtigen Speicherelement50 übertragen werden, temporär speichern. Die Host-I/F49 überträgt die Daten DATA zum Host20 und empfängt sie von ihm. Die Host-I/F49 kann ein serielles Advanced-Technology-Attachment(ATA)-Protokoll, ein paralleles ATA-Protokoll oder andere Kommunikationsprotokolle verwenden. - Die SSD-Steuereinheit
30 und das nichtflüchtige Speicherelement50 übertragen die Daten DATA über mindestens einen Kanal aus der Mehrzahl von Kanälen51 ,57 ,63 und69 . Die beiden Chips53 und55 ,59 und61 ,65 und67 oder71 und73 können mit jedem der Kanäle51 ,57 ,63 und69 verbunden sein. Die Anzahl der mit jedem der Kanäle51 ,57 ,63 und69 verbundenen Chips kann jedoch Eins oder mehr als Zwei betragen. - Jeder der Chips
53 ,55 ,59 ,61 ,65 ,67 ,71 und73 beinhaltet einen Seitenpuffer (nicht gezeigt) und ein Speicherzellenfeld (nicht gezeigt), das eine Mehrzahl von Speicherzellen beinhaltet. Jede der Speicherzellen kann durch elektrisch löschbare und programmierbare Flash-Nurle sespeicher (EEPROM) implementiert sein. Der Flash-EEPROM kann durch eine Single-Level-Cell(SLC)-Zelle oder eine Multi-Level-Cell(MLC)-Zelle implementiert sein. -
2 ist ein Flussdiagramm eines Datenverarbeitungsverfahrens der in1 dargestellten SSD-Steuereinheit30 . Die3A und3B sind Diagramme zur Erläuterung der zufälligen Datenausgabeoperation von der in1 dargestellten SSD-Steuereinheit30 . Hier bezeichnet "tR" die Datenübertragungsdauer von einer Speicherzelle im Speicherzellenfeld zum Seitenpuffer. - Mit Bezug zu den
1 bis3B wird eine zufällige Datenausgabeoperation durch Lesen mindestens eines Sektors mit einem Sektorbitabbildungswert von "1" aus "n" Sektoren (wobei "n" eine natürliche Zahl ist, zum Beispiel 8), die eine erste Seite des mit dem ersten Kanal51 verbundenen ersten Chips53 bilden, durchgeführt. Hier kann ein einzelner Sektor "m" Bytes umfassen (wobei "m" eine natürliche Zahl ist, zum Beispiel 512 oder 1024). - Bei der zufälligen Datenausgabeoperation erzeugt die Zustandsmaschine
45 die Mehrzahl von Steuersignalen, d. h. das CLE-Signal, das CE-Signal, das WE-Signal, das ALE-Signal, das R/B-Ausgabesignal und das RE-Signal, um in Abhängigkeit von einem Lesebefehl READ, der vom Host20 ausgegeben worden ist, die Daten DATA zu lesen, die in der ersten Seite des ersten Chips53 gespeichert sind, der mit dem ersten Kanal51 verbunden ist. Der erste Chip53 analysiert die Steuersignale und führt den Lesebefehl READ aus. - Die Zustandsmaschine
45 liest einen Sektorbitabbildungszeiger, der im ersten Register41 gespeichert ist, liest Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich33 des flüchtigen Speichers31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, und speichert die Sektorbitabbildungswerte im zweiten Register43 in Operation S10 (2 ). Beispielsweise gibt unter den Sektorbitabbildungswerten, z. B. 01100010, eine "1" einen gültigen Sektor an und eine "0" gibt einen ungültigen Sektor an oder umgekehrt. - Die Zustandsmaschine
45 liest und analysiert die Sektorbitabbildungswerte (z. B. 01100010), die im zweiten Register43 gespeichert sind, und gibt eine Sektoradresse und einen zufälligen Datenausgabebefehl sequentiell aus, um Sektor 2, Sektor 6 und Sektor 7 aus der ersten Seite (oder dem Seitenpuffer des ersten Chips53 ) basierend auf dem Ergebnis der Analyse in Operation S20 (2 ) sequentiell zu lesen, wie es in3A dargestellt ist. Mit anderen Worten, die Zustandsmaschine45 liest gemäß der zufälligen Datenausgabeoperation aus den Sektorbitabbildungswerten (z. B. 01100010), die im zweiten Register43 gespeichert sind, von der ersten Seite oder dem Seitenpuffer des ersten Chips53 nur Sektoren (z. B. Sektor 2, Sektor 6 und Sektor 7), die einen Sektorbitabbildungswert von "1" aufweisen. - Die Zustandsmaschine
45 kann den gelesenen Sektor 2, Sektor 6 und Sektor 7 über den Systembus BUS zum Pufferspeicher47 übertragen, um sie im Pufferspeicher47 zu speichern. Alternativ kann die Zustandsmaschine45 den gelesenen Sektor 2, Sektor 6 und Sektor 7 direkt zum Pufferspeicher47 übertragen. Dementsprechend liest die SSD-Steuereinheit30 nicht alle Sektoren von einer Seite, sondern liest stattdessen nur selektiv mindestens einen gültigen Sektor von der Seite, basierend auf Sektorbitabbildungswerten, wodurch sie eine erhöhte Leistungsfähigkeit aufweist. -
4 ist ein Flussdiagramm einer verschachtelten Hardware-Leseoperation, die von der in1 abgebildeten SSD-Steuereinheit30 durchgeführt wird. Die5A und5B sind Diagramme zur Erläuterung einer zufälligen Datenausgabeoperation für die verschachtelte Hardware-Leseoperation der in1 abgebildeten SSD-Steuereinheit30 . Mit Bezug zu den1 und4 und den5A und5B wird die zufällige Datenausgabeoperation durch eine verschachtelte Operation ausgeführt, bei der nur Sektoren mit einem Sektorbitabbildungswert von "1" aus den "n" Sektoren, die die erste Seite des ersten Chips53 bilden, der mit dem ersten Kanal51 verbunden ist, und nur Sektoren mit einem Sektorbitabbildungswert von "1" aus den "n" Sektoren, die eine zweite Seite des fünften Chips55 bilden, der mit dem ersten Kanal51 verbunden ist, gelesen werden. - Hierbei gibt in Operation S11 (
4 ) die Zustandsmaschine45 die Mehrzahl von Steuersignalen (d. h. das CLE-Signal, das CE-Signal, das WE-Signal, das ALE-Signal, das R/B-Ausgabesignal und das RE-Signal) an den ersten Kanal aus, um in Abhängigkeit von einem Lesebefehl READ (5A ), der vom Host20 ausgegeben ist, in der ersten Seite des ersten Chips53 gespeicherte Daten und in der zweiten Seite des fünften Chips55 gespeicherte Daten zu lesen. - Danach liest in Operation S21 (
4 ) die Zustandsmaschine45 einen Sektorbitabbildungszeiger, der im ersten Register41 gespeichert ist, liest erste Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich33 des flüchtigen Speichers31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, speichert die ersten Sektorbitabbildungswerte im zweiten Register43 und liest den Sektor 2, Sektor 6 und Sektor 7 aus den "n" Sektoren, die die erste Seite des ersten Chips53 bilden, basierend auf den ersten Sektorbitabbildungswerten (z. B. 01100010), die im zweiten Register43 gespeichert sind, wie es in5A dargestellt ist. Mit anderen Worten, die Zustandsmaschine45 liest durch die zufällige Datenausgabeoperation nur Sektoren "(d. h. den Sektor 2, Sektor 6 und Sektor 7) mit einem Sektorbitabbildungswert von "1" aus den Sektorbitabbildungswerten, 01100010, die im zweiten Register43 gespeichert sind, aus der ersten Seite (5B ) oder dem Seitenpuffer des ersten Chips53 . Die Zustandsmaschine45 kann den gelesenen Sektor 2, Sektor 6 und Sektor 7 zum Pufferspeicher47 direkt oder über den Systembus BUS übertragen, um sie im Pufferspeicher47 zu speichern. - Nachdem die zufällige Datenausgabeoperation der ersten Seite abgeschlossen ist, liest die Zustandsmaschine
45 zweite Sektorbitabbildungswerte (z. B. 10101000), die im zweiten Speicherbereich35 des flüchtigen Speichers31 gespeichert sind, speichert die zweiten Sektorbitabbildungswerte im zweiten Register43 und liest Sektor12 , Sektor14 und Sektor16 aus den "n" Sektoren, die die zweite Seite des fünften Chips55 bilden, der zweiten Seite (5B ) oder dem Seitenpuffer des fünften Chips55 basierend auf den zweiten Sektorbitabbildungswerten (d. h. 10101000), die im zweiten Register43 gespeichert sind, in Operation S31 (4 ), wie es in5A dargestellt ist. Der zweite Speicherbereich35 kann ein Speicherbereich sein, der den Sektorbitabbildungszeiger, der im ersten Speicherbereich33 angezeigt ist, erweitert. Mit anderen Worten, die Zustandsmaschine45 liest nur Sektoren (d. h. den Sektor12 , Sektor14 und Sektor16 ) mit einem Sektorbitabbildungswert von "1" aus den Sektorbitabbildungswerten, 10101000, die im zweiten Register43 gespeichert sind, aus der zweiten Seite oder dem Seitenpuffer des fünften Chip55 durch die zufällige Datenausgabeoperation. Die Zustandsmaschine45 kann den gelesenen Sektor12 , Sektor14 und Sektor16 direkt oder über den Systembus BUS zum Pufferspeicher47 übertragen, um sie im Pufferspeicher47 zu speichern. - Dementsprechend liest in der verschachtelten Leseoperation die SSD-Steuereinheit
30 gemäß einigen Ausführungsformen der vorliegenden Erfindung automatisch Sektorbitabbildungswerte, die in jedem der Mehrzahl von Speicherbereichen des flüchtigen Speichers31 gespeichert sind, ohne dass Firmware beteiligt ist, und liest selektiv nur mindestens einen Sektor einer bestimmten Seite, wodurch sie eine verbesserte Leistungsfähigkeit aufweist. Zur Verdeutlichung wurde die Leseoperation beschrieben, aber das Datenverarbeitungsverfahren unter Verwendung eines Zeigers gemäß einiger Ausführungsformen der vorliegenden Erfindung kann ebenso in einer Schreib- oder Programmieroperation angewendet werden. - Zum Beispiel liest bei der Schreiboperation (oder Programmieroperation) die Zustandsmaschine
45 einen im ersten Register41 gespeicherten Sektorbitabbildungszeiger, liest Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich33 des flüchtigen Speichers31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt wird, und speichert die Sektorbitabbildungswerte (d. h. 01100010) im zweiten Register43 . Danach liest und analysiert die Zustandsmaschine45 die Sektorbitabbildungswerte, 01100010, die im zweiten Register43 gespeichert sind, und schreibt (oder programmiert) selektiv nur Sektor 2, Sektor 6 und Sektor 7 aus den Daten, die vom Host 20 zum ersten Chip53 über den Kanal51 ausgegeben sind, basierend auf dem Ergebnis der Analyse (z. B. dem Ergebnis der Analyse, ob jeder Sektorbitabbildungswert "1" oder "0" beträgt). - Außerdem kann die Zustandsmaschine
45 in der verschachtelten Operation nur mindestens einen Sektor mit einem Sektorbitabbildungswert von "1" in die erste Seite des ersten Chips53 , der mit dem ersten Kanal51 verbunden ist, und nur mindestens ein Sektor mit einem Sektorbitabbildungswert von "1" in die zweite Seite des fünften Chips55 , der mit dem ersten Kanal51 verbunden ist, schreiben oder programmieren. - Zum Beispiel liest die Zustandsmaschine
45 einen Sektorbitabbildungszeiger, der im ersten Register41 gespeichert ist, in Abhängigkeit von einem Schreib- oder Programmierbefehl, der vom Host20 ausgegeben worden ist. Danach liest die Zustandsmaschine45 die ersten Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich33 des flüchtigen Speichers31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, speichert die ersten Sektorbitabbildungswerte im zweiten Register43 und schreibt selektiv den Sektor 2, Sektor 6 und Sektor 7 von Daten, die vom Host20 ausgegeben sind, in die erste Seite des ersten Chips53 basierend auf den ersten Sektorbitabbildungswerten (d. h. 01100010), die im zweiten Register43 gespeichert sind. Nach Beenden der Schreib- oder Programmieroperation der ersten Seite liest die Zustandsmaschine45 die zweiten Sektorbitabbildungswerte (z. B. 10101000), die im zweiten Speicherbereich35 des flüchtigen Speichers31 gespeichert sind, speichert die zweiten Sektorbitabbildungswerte im zweiten Register43 und schreibt selektiv Sektor12 , Sektor14 und Sektor16 von Daten, die vom Host20 ausgegeben sind, in die zweite Seite des fünften Chips55 basierend auf den zweiten Sektorbitabbildungswerten (d. h. 10101000), die im zweiten Register43 gespeichert sind. - Dementsprechend liest bei der verschachtelten Schreib- oder Programmieroperation die SSD-Steuereinheit
30 gemäß einigen Ausführungsformen der vorliegenden Erfindung automatisch Sektorbitabbildungswerte, die in jedem der Mehrzahl von Speicherbereichen des flüchtigen Speichers31 gespeichert sind, ohne dass Firmware beteiligt ist, und schreibt oder programmiert basierend auf den Sektorbitabbildungswerten selektiv nur mindestens einen Sektor in Daten, die von einem Host ausgegeben sind, in eine bestimmte Seite. Da die SSD-Steuereinheit30 nicht unnötig alle Daten auf eine bestimmte Seite schreibt oder programmiert, ist die Leistungsfähigkeit der SSD-Steuereinheit30 erhöht. - Gemäß der vorliegenden Erfindung liest in einer verschachtelten Leseoperation eine SSD-Steuereinheit automatisch Sektorbitabbildungswerte, die in jedem einer Mehrzahl von Speicherbereichen eines flüchtigen Speichers gespeichert sind, ohne Beteiligung von Firmware und liest selektiv nur mindestens einen Sektor aus einer bestimmten Seite, wodurch sie eine erhöhte Leistung aufweist. Außerdem liest die SSD-Steuereinheit automatisch Sektorbitabbildungswerte, die in jedem der Mehrzahl von Speicherbereichen des flüchtigen Speichers gespeichert sind, ohne Beteiligung von Firmware und schreibt oder programmiert nur mindestens einen Sektor in von einem Host ausgegebenen Daten in eine bestimmte Seite basierend auf den Sektorbitabbildungswerten, wodurch sie eine erhöhte Leistung aufweist.
Claims (15)
- Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit (
30 ) mit den Schritten: – Lesen von Sektorbitabbildungswerten, die in einem Speicherbereich (33 ,35 ,37 ) eines flüchtigen Speichers (31 ) gespeichert sind, der durch einen Zeiger angegeben ist, in einer Leseoperation und – selektives Lesen mindestens eines Sektors aus einer Mehrzahl von Sektoren, die eine Seite eines externen nichtflüchtigen Speichers (50 ) bilden, basierend auf den Sektorbitabbildungswerten. - Datenverarbeitungsverfahren nach Anspruch 1, wobei das selektive Lesen des mindestens einen Sektors in Abhängigkeit von mindestens einem zufälligen Datenausgabebefehl durchgeführt wird.
- Datenverarbeitungsverfahren nach Anspruch 1 oder 2, wobei ein jeweiliger Sektorbitabbildungswert anzeigt, ob ein jeweiliger der Mehrzahl von Sektoren gültig ist.
- Datenverarbeitungsverfahren nach einem der Ansprüche 1 bis 3, weiter umfassend, dass der mindestens eine, selektiv gelesene Sektor in einem Pufferspeicher gespeichert wird.
- Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit (
30 ) mit den Schritten: – selektives Lesen mindestens eines Sektors aus einer Mehrzahl von Sektoren, die eine erste Seite eines ersten nichtflüchtigen Speichers (53 ) bilden, basierend auf ersten Sektorbitabbildungswerten, die in einem ersten Speicherbereich (33 ) eines flüchtigen Speichers (31 ) gespeichert sind, der durch einen Zeiger in einer Leseoperation angegeben wird, und – selektives Lesen mindestens eines Sektors aus einer Mehrzahl von Sektoren, die eine zweite Seite eines zweiten nichtflüchtigen Speichers (55 ) bilden, basierend auf zweiten Sektorbitabbildungswerten, die in einem zweiten Speicherbereich (35 ) des flüchtigen Speichers (50 ) gespeichert sind. - Datenverarbeitungsverfahren nach Anspruch 5, weiter umfassend, dass für eine verschachtelte Leseoperation ein Lesebefehl zu einem Kanal übertragen wird, der mit dem ersten nichtflüchtigen Speicher und dem zweiten nichtflüchtigen Speicher verbunden ist.
- Datenverarbeitungsverfahren nach Anspruch 5 oder 6, wobei das selektive Lesen mindestens eines Sektors basierend auf den ersten Sektorbitabbildungswerten umfasst: – Lesen der ersten Sektorbitabbildungswerte, die in dem ersten Speicherbereich gespeichert sind, – Analysieren der ersten Sektorbitabbildungswerte und selektives Lesen des mindestens einen Sektors aus der Mehrzahl von Sektoren, die die erste Seite bilden, basierend auf einem Ergebnis der Analyse in Abhängigkeit von mindestens einem ersten zufälligen Datenausgabebefehl.
- Datenverarbeitungsverfahren nach Anspruch 7, wobei das selektive Lesen mindestens eines Sektors basierend auf den zweiten Sektorbitabbildungswerten umfasst: – Lesen der zweiten Sektorbitabbildungswerte, die in dem zweiten Speicherbereich gespeichert sind, und – Analysieren der zweiten Sektorbitabbildungswerte und selektives Lesen des mindestens einen Sektors aus der Mehrzahl von Sektoren, die die zweite Seite bilden, basierend auf einem Ergebnis der Analyse in Abhängigkeit von mindestens einem zweiten zufälligen Datenausgabebefehl.
- Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit (
30 ), wobei das Datenverarbeitungsverfahren in einer Programmieroperation die Schritte umfasst: – Lesen von Sektorbitabbildungswerten, die in einem Speicherbereich (33 ,35 ,37 ) eines flüchtigen Speichers (31 ) gespeichert sind, der durch einen Zeiger angegeben ist, und – selektives Programmieren mindestens eines Sektors von Daten, die von einem Host ausgegeben sind, in eine Seite eines externen nichtflüchtigen Speichers (50 ) basierend auf den Sektorbitabbildungswerten. - Solid-State-Disk-Steuereinheit (
30 ), umfassend: – einen flüchtigen Speicher (31 ) mit einem Speicherbereich (33 ,35 ,37 ), der Sektorbitabbildungswerte speichert, – und eine Speichersteuereinheit (39 ), die dazu ausgebildet ist, selektiv mindestens einen Sektor aus einer Mehrzahl von Sektoren, die eine Seite eines externen nichtflüchtigen Speichers (50 ) bilden, basierend auf den Sektorbitabbildungswerten, die in dem Speicherbereich (33 ,35 ,37 ) gespeichert sind, der durch einen Zeiger angezeigt ist, in einer Leseoperation zu lesen. - Solid-State-Disk-Steuereinheit nach Anspruch 10, wobei die Speichersteuereinheit umfasst: – ein erstes Register (
41 ), das zum Speichern des Zeigers ausgebildet ist, – ein zweites Register (43 ) und – eine Zustandsmaschine (45 ), die dazu ausgebildet ist, die Sektorbitabbildungswerte aus dem Speicherbereich zu lesen und die Sektorbitabbildungswerte in dem zweiten Register basierend auf dem Zeiger zu speichern, die Sektorbitabbildungswerte, die in dem zweiten Register gespeichert sind, zu analysieren und den mindestens einen Sektor aus der Mehrzahl von Sektoren des externen nichtflüchtigen Speichers basierend auf einem Ergebnis der Analyse in Abhängigkeit von mindestens einem zufälligen Datenausgabebefehl zu lesen. - Solid-State-Disk-Steuereinheit (
30 ), umfassend: – einen flüchtigen Speicher (31 ) mit einem Speicherbereich (33 ,35 ,37 ), der Sektorbitabbildungswerte speichert, und – eine Speichersteuereinheit (39 ), die dazu ausgebildet ist, in einer Programmieroperation mindestens einen Sektor von Daten, die von einem Host ausgegeben sind, in eine Seite eines externen nichtflüchtigen Speichers (50 ) basierend auf den Sektorbitabbildungswerten, die in dem Speicherbereich (33 ,35 ,37 ) gespeichert sind, der durch einen Zeiger angezeigt ist, selektiv zu programmieren. - Solid-State-Disk-Steuereinheit (
30 ), umfassend: – einen flüchtigen Speicher (31 ) mit einem ersten Speicherbereich (33 ), der erste Sektorbitabbildungswerte speichert, und einem zweiten Speicherbereich (35 ), der zweite Sektorbitabbildungswerte speichert, und – eine Speichersteuereinheit (39 ), die dazu ausgebildet ist, mindestens einen Sektor aus einer Mehrzahl von Sektoren, die eine erste Seite eines ersten externen nichtflüchtigen Speichers (53 ) bilden, basierend auf den ersten Sektorbitabbildungswerten, die in dem ersten Speicherbereich (33 ) gespeichert sind, der durch einen Zeiger angezeigt ist, selektiv zu lesen und mindestens einen Sektor aus einer Mehrzahl von Sektoren, die eine zweite Seite eines zweiten externen nichtflüchtigen Speichers (55 ) bilden, basierend auf den zweiten Sektorbitabbildungswerten, die in dem zweiten Speicherbereich (35 ) gespeichert sind, in einer Leseoperation selektiv zu lesen. - Solid-State-Disk-Steuereinheit nach Anspruch 13, wobei die Speichersteuereinheit einen Lesebefehl an einen Kanal ausgibt, der mit dem ersten externen nichtflüchtigen Speicher und dem zweiten externen nichtflüchtigen Speicher verbunden ist, wenn die Leseoperation eine überlappende Leseoperation ist.
- Datenspeicherelement, umfassend: – einen nichtflüchtigen Speicher (
50 ), – eine Solid-State-Disk-Steuereinheit (30 ) nach einem der Ansprüche 10 bis 14 und – einen Kanal (51 ,57 ,63 ,69 ), der zwischen dem nichtflüchtigen Speicher (50 ) und der Solid-State-Disk-Steuereinheit (30 ) eingeschleift ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2007-0071998 | 2007-07-19 | ||
KR1020070071998A KR101424782B1 (ko) | 2007-07-19 | 2007-07-19 | 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102008033518A1 true DE102008033518A1 (de) | 2009-02-05 |
DE102008033518B4 DE102008033518B4 (de) | 2021-10-14 |
Family
ID=40176125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102008033518.5A Active DE102008033518B4 (de) | 2007-07-19 | 2008-07-14 | Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement |
Country Status (6)
Country | Link |
---|---|
US (1) | US8738842B2 (de) |
JP (1) | JP5368735B2 (de) |
KR (1) | KR101424782B1 (de) |
CN (1) | CN101349963B (de) |
DE (1) | DE102008033518B4 (de) |
TW (1) | TWI479502B (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101070511B1 (ko) * | 2009-03-20 | 2011-10-05 | (주)인디링스 | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 |
WO2011007989A2 (en) * | 2009-07-13 | 2011-01-20 | Lg Electronics Inc. | Disk drive |
US8164936B2 (en) * | 2009-10-14 | 2012-04-24 | Seagate Technology Llc | Switched memory devices |
US9229809B2 (en) | 2011-09-11 | 2016-01-05 | Microsoft Technology Licensing Llc | Nonvolatile media journaling of verified data sets |
US8456972B2 (en) * | 2011-09-12 | 2013-06-04 | Microsoft Corporation | Efficient access to storage devices with usage bitmaps |
CN103377130A (zh) * | 2012-04-13 | 2013-10-30 | 日立(中国)研究开发有限公司 | 数据存储设备以及相应的数据存储方法 |
CN106155578A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 手机闪存芯片数据重组的方法 |
KR102465321B1 (ko) | 2016-03-02 | 2022-11-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
KR102535104B1 (ko) * | 2018-03-19 | 2023-05-23 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20190128392A (ko) * | 2018-05-08 | 2019-11-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN110262753A (zh) * | 2019-05-30 | 2019-09-20 | 合肥致存微电子有限责任公司 | 一种加快命令响应的方法、系统以及ssd |
CN114063933B (zh) * | 2021-12-02 | 2022-06-28 | 深圳市宝佳乐电子科技有限公司 | 区块管理方法、存储器控制器和存储器存储装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6481028A (en) * | 1987-09-22 | 1989-03-27 | Fanuc Ltd | Data memory system |
JPH0628261A (ja) | 1992-04-17 | 1994-02-04 | Hitachi Ltd | データ転送方法及び装置 |
JPH07262059A (ja) | 1994-03-25 | 1995-10-13 | Sony Corp | ファイル管理方法 |
JPH07319636A (ja) | 1994-05-27 | 1995-12-08 | Fuji Xerox Co Ltd | 磁気ディスクのデータ格納制御装置 |
JPH0877099A (ja) * | 1994-09-02 | 1996-03-22 | Fuji Xerox Co Ltd | Dmaコントローラ |
GB2291990A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Flash-memory management system |
JP3063669B2 (ja) | 1997-04-04 | 2000-07-12 | 三菱電機株式会社 | 情報処理システム |
JP3849241B2 (ja) * | 1997-08-11 | 2006-11-22 | ソニー株式会社 | 記憶装置 |
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
JP2000285017A (ja) * | 1999-03-31 | 2000-10-13 | Seiko Epson Corp | 記憶装置 |
US7394661B2 (en) | 2004-06-30 | 2008-07-01 | Super Talent Electronics, Inc. | System and method for providing a flash memory assembly |
US7318117B2 (en) * | 2004-02-26 | 2008-01-08 | Super Talent Electronics, Inc. | Managing flash memory including recycling obsolete sectors |
US20050114587A1 (en) | 2003-11-22 | 2005-05-26 | Super Talent Electronics Inc. | ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines |
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US20060075395A1 (en) * | 2004-10-01 | 2006-04-06 | Lee Charles C | Flash card system |
JP3923715B2 (ja) * | 2000-09-29 | 2007-06-06 | 株式会社東芝 | メモリカード |
US7089379B1 (en) * | 2002-06-28 | 2006-08-08 | Emc Corporation | Large high bandwidth memory system |
US7675828B2 (en) * | 2003-02-25 | 2010-03-09 | Lg Electronics Inc. | Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses |
KR100528482B1 (ko) * | 2003-12-31 | 2005-11-15 | 삼성전자주식회사 | 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 |
EP1607879A1 (de) * | 2004-06-14 | 2005-12-21 | Dialog Semiconductor GmbH | Speicherverschachtelung in einem Rechnersystem |
JP4665510B2 (ja) * | 2004-12-20 | 2011-04-06 | ソニー株式会社 | 暗号化データ記録装置 |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
-
2007
- 2007-07-19 KR KR1020070071998A patent/KR101424782B1/ko active IP Right Grant
-
2008
- 2008-06-16 JP JP2008156807A patent/JP5368735B2/ja active Active
- 2008-06-26 US US12/147,067 patent/US8738842B2/en active Active
- 2008-07-10 TW TW097126165A patent/TWI479502B/zh active
- 2008-07-14 DE DE102008033518.5A patent/DE102008033518B4/de active Active
- 2008-07-15 CN CN2008101361001A patent/CN101349963B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
KR20090008766A (ko) | 2009-01-22 |
US20090024791A1 (en) | 2009-01-22 |
US8738842B2 (en) | 2014-05-27 |
JP2009026301A (ja) | 2009-02-05 |
TW200905696A (en) | 2009-02-01 |
JP5368735B2 (ja) | 2013-12-18 |
CN101349963A (zh) | 2009-01-21 |
KR101424782B1 (ko) | 2014-08-04 |
CN101349963B (zh) | 2013-03-06 |
TWI479502B (zh) | 2015-04-01 |
DE102008033518B4 (de) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102008033518B4 (de) | Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement | |
DE60030876T2 (de) | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität | |
DE60319407T2 (de) | Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems | |
DE112018000180T5 (de) | System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers | |
DE102017128939A1 (de) | System und Verfahren zum dynamischen und adaptiven Zusammenführen von Interrupts | |
DE102018105943A1 (de) | Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem | |
DE102018123891A1 (de) | Handhabung nichtabgestimmter Schreibvorgänge | |
DE112018000834T5 (de) | System und verfahren zur adaptiven befehlsabruf-aggregation | |
DE112015005102T5 (de) | Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen | |
DE112008002553T5 (de) | Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten | |
DE102008009235A1 (de) | Speichersystem | |
DE102013108491A1 (de) | Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen | |
DE112018000230T5 (de) | System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers | |
DE102019135863B4 (de) | Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren | |
DE102020202379A1 (de) | Speichersystem, speicher-controller und deren betriebsverfahren | |
DE112019000161T5 (de) | Speicher-cache-verwaltung | |
DE112020000159T5 (de) | Systeme und verfahren zum definieren von speicher-unterblöcken | |
DE102020119190A1 (de) | Speichervorrichtung und Betriebsverfahren derselben | |
DE102021118940A1 (de) | Speichersteuerung und speichereinrichtung mit derselben | |
DE102010037064A1 (de) | Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung | |
DE102020211544A1 (de) | Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben | |
DE102022101607A1 (de) | Verwaltung der hostspeicherpufferzuweisung | |
DE102017120826A1 (de) | Verfahren und Vorrichtung zum Überwachen von Speicher unter Verwendung einer Hintergrundmedienabtastung | |
DE112015003569T5 (de) | Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern | |
DE112020005395T5 (de) | Kapazitätserweiterung für speicher-untersysteme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0012000000 Ipc: G11C0008000000 |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |