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 PDF

Info

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
Application number
DE102008033518A
Other languages
English (en)
Other versions
DE102008033518B4 (de
Inventor
Tae Hack Yongin Lee
Kyu Wook Han
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102008033518A1 publication Critical patent/DE102008033518A1/de
Application granted granted Critical
Publication of DE102008033518B4 publication Critical patent/DE102008033518B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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 in 1 dargestellten SSD-Steuereinheit,
  • 3A und 3B Schaubilder zur Erläuterung der zufälligen Datenausgabeoperation der in 1 dargestellten SSD-Steuereinheit,
  • 4 ein Flussdiagramm einer verschachtelten Hardware-Leseoperation, die von der in 1 dargestellten SSD-Steuereinheit durchgeführt wird, und
  • 5A und 5B Diagramme zur Erläuterung einer zufälligen Datenausgabeoperation für die verschachtelte Hardware-Leseoperation der in 1 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 Systems 10, das eine Solid-State-Disk(SSD)-Steuereinheit 30 gemäß einigen Ausführungsformen der vorliegenden Erfindung beinhaltet. Mit Bezug zu 1 beinhaltet das System 10, das ein Computersystem oder ein mobiles Gerät sein kann, einen Host 20, die SSD-Steuereinheit 30 und ein nichtflüchtiges Speicherelement 50. Eine SSD beinhaltet das nichtflüchtige Speicherelement 50 oder sie beinhaltet die SSD-Steuereinheit 30 und das nichtflüchtige Speicherelement 50.
  • 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-Steuereinheit 30. Alternativ kann der Host 20 den Operationsbefehl und die Adressen direkt über die Host-I/F 49 zur SSD-Steuereinheit 30 übertragen. Die SSD-Steuereinheit 30 beinhaltet einen flüchtigen Speicher 31, eine Speichersteuereinheit (oder eine Flashspeichersteuereinheit) 39, einen Pufferspeicher 47 und die Host-I/F 49.
  • Der flüchtige Speicher 31 ist durch einen dynamischen Direktzugriffspeicher (DRAM) oder einen statischen Direktzugriffspeicher (SRAM) implementiert und beinhaltet eine Mehrzahl von Speicherbereichen 33, 35 und 37, die jeweils Sektorbitabbildungswerte (sector bit map values) speichern. Die in den Speicherbereichen 33, 35 und 37 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 Speicher 31 basierend auf dem Sektorbitabbildungszeiger ausgegeben sind, und eine Zustandsmaschine 45. Die Zustandsmaschine 45 schreibt über mindestens einen zugehörigen Kanal aus einer Mehrzahl von Kanälen 51, 57, 63 und 69 Daten DATA in das nichtflüchtige Speicherelement 50 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 Speicherelement 50 gelesenen Daten DATA können über den Systembus BUS temporär im Pufferspeicher 47 gespeichert werden. Der Pufferspeicher 47 kann Daten DATA, die zwischen dem Host 20 und dem nichtflüchtigen Speicherelement 50 übertragen werden, temporär speichern. Die Host-I/F 49 überträgt die Daten DATA zum Host 20 und empfängt sie von ihm. Die Host-I/F 49 kann ein serielles Advanced-Technology-Attachment(ATA)-Protokoll, ein paralleles ATA-Protokoll oder andere Kommunikationsprotokolle verwenden.
  • Die SSD-Steuereinheit 30 und das nichtflüchtige Speicherelement 50 übertragen die Daten DATA über mindestens einen Kanal aus der Mehrzahl von Kanälen 51, 57, 63 und 69. Die beiden Chips 53 und 55, 59 und 61, 65 und 67 oder 71 und 73 können mit jedem der Kanäle 51, 57, 63 und 69 verbunden sein. Die Anzahl der mit jedem der Kanäle 51, 57, 63 und 69 verbundenen Chips kann jedoch Eins oder mehr als Zwei betragen.
  • Jeder der Chips 53, 55, 59, 61, 65, 67, 71 und 73 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 in 1 dargestellten SSD-Steuereinheit 30. Die 3A und 3B sind Diagramme zur Erläuterung der zufälligen Datenausgabeoperation von der in 1 dargestellten SSD-Steuereinheit 30. Hier bezeichnet "tR" die Datenübertragungsdauer von einer Speicherzelle im Speicherzellenfeld zum Seitenpuffer.
  • Mit Bezug zu den 1 bis 3B 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 Kanal 51 verbundenen ersten Chips 53 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 Host 20 ausgegeben worden ist, die Daten DATA zu lesen, die in der ersten Seite des ersten Chips 53 gespeichert sind, der mit dem ersten Kanal 51 verbunden ist. Der erste Chip 53 analysiert die Steuersignale und führt den Lesebefehl READ aus.
  • Die Zustandsmaschine 45 liest einen Sektorbitabbildungszeiger, der im ersten Register 41 gespeichert ist, liest Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich 33 des flüchtigen Speichers 31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, und speichert die Sektorbitabbildungswerte im zweiten Register 43 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 Register 43 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 Chips 53) basierend auf dem Ergebnis der Analyse in Operation S20 (2) sequentiell zu lesen, wie es in 3A dargestellt ist. Mit anderen Worten, die Zustandsmaschine 45 liest gemäß der zufälligen Datenausgabeoperation aus den Sektorbitabbildungswerten (z. B. 01100010), die im zweiten Register 43 gespeichert sind, von der ersten Seite oder dem Seitenpuffer des ersten Chips 53 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 Pufferspeicher 47 übertragen, um sie im Pufferspeicher 47 zu speichern. Alternativ kann die Zustandsmaschine 45 den gelesenen Sektor 2, Sektor 6 und Sektor 7 direkt zum Pufferspeicher 47 übertragen. Dementsprechend liest die SSD-Steuereinheit 30 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 in 1 abgebildeten SSD-Steuereinheit 30 durchgeführt wird. Die 5A und 5B sind Diagramme zur Erläuterung einer zufälligen Datenausgabeoperation für die verschachtelte Hardware-Leseoperation der in 1 abgebildeten SSD-Steuereinheit 30. Mit Bezug zu den 1 und 4 und den 5A und 5B 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 Chips 53 bilden, der mit dem ersten Kanal 51 verbunden ist, und nur Sektoren mit einem Sektorbitabbildungswert von "1" aus den "n" Sektoren, die eine zweite Seite des fünften Chips 55 bilden, der mit dem ersten Kanal 51 verbunden ist, gelesen werden.
  • Hierbei gibt in Operation S11 (4) 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) an den ersten Kanal aus, um in Abhängigkeit von einem Lesebefehl READ (5A), der vom Host 20 ausgegeben ist, in der ersten Seite des ersten Chips 53 gespeicherte Daten und in der zweiten Seite des fünften Chips 55 gespeicherte Daten zu lesen.
  • Danach liest in Operation S21 (4) die Zustandsmaschine 45 einen Sektorbitabbildungszeiger, der im ersten Register 41 gespeichert ist, liest erste Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich 33 des flüchtigen Speichers 31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, speichert die ersten Sektorbitabbildungswerte im zweiten Register 43 und liest den Sektor 2, Sektor 6 und Sektor 7 aus den "n" Sektoren, die die erste Seite des ersten Chips 53 bilden, basierend auf den ersten Sektorbitabbildungswerten (z. B. 01100010), die im zweiten Register 43 gespeichert sind, wie es in 5A dargestellt ist. Mit anderen Worten, die Zustandsmaschine 45 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 Register 43 gespeichert sind, aus der ersten Seite (5B) oder dem Seitenpuffer des ersten Chips 53. Die Zustandsmaschine 45 kann den gelesenen Sektor 2, Sektor 6 und Sektor 7 zum Pufferspeicher 47 direkt oder über den Systembus BUS übertragen, um sie im Pufferspeicher 47 zu speichern.
  • Nachdem die zufällige Datenausgabeoperation der ersten Seite abgeschlossen ist, liest die Zustandsmaschine 45 zweite Sektorbitabbildungswerte (z. B. 10101000), die im zweiten Speicherbereich 35 des flüchtigen Speichers 31 gespeichert sind, speichert die zweiten Sektorbitabbildungswerte im zweiten Register 43 und liest Sektor 12, Sektor 14 und Sektor 16 aus den "n" Sektoren, die die zweite Seite des fünften Chips 55 bilden, der zweiten Seite (5B) oder dem Seitenpuffer des fünften Chips 55 basierend auf den zweiten Sektorbitabbildungswerten (d. h. 10101000), die im zweiten Register 43 gespeichert sind, in Operation S31 (4), wie es in 5A dargestellt ist. Der zweite Speicherbereich 35 kann ein Speicherbereich sein, der den Sektorbitabbildungszeiger, der im ersten Speicherbereich 33 angezeigt ist, erweitert. Mit anderen Worten, die Zustandsmaschine 45 liest nur Sektoren (d. h. den Sektor 12, Sektor 14 und Sektor 16) mit einem Sektorbitabbildungswert von "1" aus den Sektorbitabbildungswerten, 10101000, die im zweiten Register 43 gespeichert sind, aus der zweiten Seite oder dem Seitenpuffer des fünften Chip 55 durch die zufällige Datenausgabeoperation. Die Zustandsmaschine 45 kann den gelesenen Sektor 12, Sektor 14 und Sektor 16 direkt oder über den Systembus BUS zum Pufferspeicher 47 übertragen, um sie im Pufferspeicher 47 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 Speichers 31 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 Register 41 gespeicherten Sektorbitabbildungszeiger, liest Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich 33 des flüchtigen Speichers 31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt wird, und speichert die Sektorbitabbildungswerte (d. h. 01100010) im zweiten Register 43. Danach liest und analysiert die Zustandsmaschine 45 die Sektorbitabbildungswerte, 01100010, die im zweiten Register 43 gespeichert sind, und schreibt (oder programmiert) selektiv nur Sektor 2, Sektor 6 und Sektor 7 aus den Daten, die vom Host 20 zum ersten Chip 53 über den Kanal 51 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 Chips 53, der mit dem ersten Kanal 51 verbunden ist, und nur mindestens ein Sektor mit einem Sektorbitabbildungswert von "1" in die zweite Seite des fünften Chips 55, der mit dem ersten Kanal 51 verbunden ist, schreiben oder programmieren.
  • Zum Beispiel liest die Zustandsmaschine 45 einen Sektorbitabbildungszeiger, der im ersten Register 41 gespeichert ist, in Abhängigkeit von einem Schreib- oder Programmierbefehl, der vom Host 20 ausgegeben worden ist. Danach liest die Zustandsmaschine 45 die ersten Sektorbitabbildungswerte (z. B. 01100010), die im ersten Speicherbereich 33 des flüchtigen Speichers 31 gespeichert sind, der durch den Sektorbitabbildungszeiger angezeigt ist, speichert die ersten Sektorbitabbildungswerte im zweiten Register 43 und schreibt selektiv den Sektor 2, Sektor 6 und Sektor 7 von Daten, die vom Host 20 ausgegeben sind, in die erste Seite des ersten Chips 53 basierend auf den ersten Sektorbitabbildungswerten (d. h. 01100010), die im zweiten Register 43 gespeichert sind. Nach Beenden der Schreib- oder Programmieroperation der ersten Seite liest die Zustandsmaschine 45 die zweiten Sektorbitabbildungswerte (z. B. 10101000), die im zweiten Speicherbereich 35 des flüchtigen Speichers 31 gespeichert sind, speichert die zweiten Sektorbitabbildungswerte im zweiten Register 43 und schreibt selektiv Sektor 12, Sektor 14 und Sektor 16 von Daten, die vom Host 20 ausgegeben sind, in die zweite Seite des fünften Chips 55 basierend auf den zweiten Sektorbitabbildungswerten (d. h. 10101000), die im zweiten Register 43 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 Speichers 31 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-Steuereinheit 30 nicht unnötig alle Daten auf eine bestimmte Seite schreibt oder programmiert, ist die Leistungsfähigkeit der SSD-Steuereinheit 30 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)

  1. 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.
  2. Datenverarbeitungsverfahren nach Anspruch 1, wobei das selektive Lesen des mindestens einen Sektors in Abhängigkeit von mindestens einem zufälligen Datenausgabebefehl durchgeführt wird.
  3. Datenverarbeitungsverfahren nach Anspruch 1 oder 2, wobei ein jeweiliger Sektorbitabbildungswert anzeigt, ob ein jeweiliger der Mehrzahl von Sektoren gültig ist.
  4. Datenverarbeitungsverfahren nach einem der Ansprüche 1 bis 3, weiter umfassend, dass der mindestens eine, selektiv gelesene Sektor in einem Pufferspeicher gespeichert wird.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
DE102008033518.5A 2007-07-19 2008-07-14 Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement Active DE102008033518B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 반도체 디스크 제어 장치

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