DE102004059750A1 - Siliziumspeichermedium, Steuereinheit und Steuerverfahren hiervon und ein auf einem Datenframe basierendes Speichermedium - Google Patents

Siliziumspeichermedium, Steuereinheit und Steuerverfahren hiervon und ein auf einem Datenframe basierendes Speichermedium Download PDF

Info

Publication number
DE102004059750A1
DE102004059750A1 DE102004059750A DE102004059750A DE102004059750A1 DE 102004059750 A1 DE102004059750 A1 DE 102004059750A1 DE 102004059750 A DE102004059750 A DE 102004059750A DE 102004059750 A DE102004059750 A DE 102004059750A DE 102004059750 A1 DE102004059750 A1 DE 102004059750A1
Authority
DE
Germany
Prior art keywords
data
memory block
address
translation table
data frame
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.)
Ceased
Application number
DE102004059750A
Other languages
English (en)
Inventor
Hsiang-An Hsieh
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.)
Carry Computer Engineering Co Ltd
Original Assignee
Carry Computer Engineering 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 Carry Computer Engineering Co Ltd filed Critical Carry Computer Engineering Co Ltd
Publication of DE102004059750A1 publication Critical patent/DE102004059750A1/de
Ceased legal-status Critical Current

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/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/0608Saving storage space on storage 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/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/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/0658Controller construction arrangements
    • 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)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die vorliegende Erfindung stellt eine Steuereinheit für ein Siliziumspeichermedium bereit, um ein Siliziumspeichermedium gemäß einer Translationstabelle und einem Adressen-Mapping-Modul zu verwenden, welche die Information von vorangehenden Deskriptionsbits eines Datenframes umfassen. Wenn der Lese- und Schreibprozess von Daten anfänglich ausgeführt wird, dann empfängt die Steuereinheit des Siliziumspeichermediums einen Datenframe und berücksichtigt die Translationstabelle und das Adressen-Mapping-Modul, um die Geschwindigkeit des Lesens und Aktualisierens von Daten zu erhöhen, so dass ein Translationstabellenpuffer und ein Adressen-Mapping-Modul für die Steuereinheit bereitgestellt werden. Außerdem beinhalten diese den Speicherblockzustand, die Startadresse, die Datenlänge, den Kompressionsalgorithmusanzeiger, und der Parameteranzeiger sind in der vorangehenden Deskriptionseinheit umfasst, die den Datenframe führt, um die Translationstabelle zu etablieren.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Steuereinheit für ein Siliziumspeichermedium, und insbesondere eine Steuereinheit für ein Siliziumspeichermedium mit einem Datenframe von variabler Länge.
  • Beschreibung der zugehörigen Technik
  • Gegenwärtig ist es üblich, einen Speicher, der aus einem Siliziumchip gemacht ist, als Siliziumspeichermedium zu verwenden. Die Meisten der Siliziumspeichermedien sind mit einer Systemschnittstelle über eine Steuereinheit zum Schreiben von Informationen in einen Speicher oder zum Lesen von Informationen aus einem Speicher verbunden und übertragen Informationen zum System. Worin, seitdem es durch dessen geringen Energieverbrauch, hohe Zuverlässigkeit, hohe Kapazität und schnelle Zugriffsgeschwindigkeit charakterisiert ist, das Siliziumspeichermedium weitgehend in verschiedenen tragbaren digitalen elektronischen Geräten angewandt wurde, wie den Produkten der digitalen Kamera, des digitalen Walkman und des persönlichen digitalen Assistenten (PDA), und dessen Absatzmarkt wächst nun rapide. Mehrere Typen des Siliziumspeichermediums sind von dem ursprünglichen Siliziumspeichermedium abgeleitet, diese sind: Compact-Flash-Karte (CF), Memory-Stick-Karte (MS), Secure-Digital-Karte (SD), Smart-Media-Karte (SM), usw. Ferner ist auf dem Gebiet der Personal-Computer-Anwendung die tragbare USB-Diskette, die über den seriellen Universal-Bus (USB) installiert wird, unlängst ein sehr weit verbreitetes neues Produkt geworden.
  • Die Speicherkapazität von verschiedenen tragbaren Speichergeräten, die als das Siliziumspeichermedium verwendet werden und aus dem oben genannten Siliziumchip bestehen, ist durch die Kapazität von dessen eingebautem Speicher begrenzt. Die Steuereinheit im Inneren des tragbaren Speichergeräts besitzt nur eine Schnittstelle, die mit einem System verbunden ist, um Befehle zu erhalten und dementsprechend auf den Speicherinhalt zuzugreifen. Weil der Speicherchip den größten Kostenanteil an einem tragbaren Speichergerät hat, ist deshalb die Hauptaufgabe, die beschränkte Kapazität des Speichers vollständig auszunutzen, um die Kosten zu reduzieren.
  • Die herkömmliche Steuereinheit für ein Siliziumspeichermedium speichert die Originaldaten direkt in den Speicher gemäß dem Mapping-Verfahren, in dem eine Seite als die minimale Speichereinheit den Lese-/Schreib-Vorgang ausführt und ein redundanter Bereich auf der Seite verwendet wird, um die Information des Mapping-Codes und des Korrekturcodes der logischen Adresse aufzuzeichnen. Gewöhnlich beträgt eine einzelne Sektorgröße 528 Byte als die gängigste Kapazitätseinheit, die vom Speichergerät verwendet wird, dessen Größe der Kapazität eines Einheitssektors ebenfalls gleich ist. Eine neuer Typ des Speichers mit bis zu 2048 Byte an Speicherkapazität der einzelnen Seite und 64 Byte an Kapazität des redundantem Bereichs wird ferner im Stand der Technik bereitgestellt. Die Steuereinheit benutzt jedoch immer noch die gleiche Technik, um ihn zu steuern. Mit anderen Worten ist die Datenkomprimierungs-/dekomprimierungsfunktion in den Mapping-Code der logischen Adresse nicht einbezogen, der aufgezeichnet wird und mit einer einzelnen Seite übereinstimmt.
  • Bezugnehmend auf die 1A, ist ein Blockdiagramm der internen Struktur eines herkömmlichen Siliziumspeichermediums gezeigt. Das Siliziumspeichermedium 100 umfasst eine Steuereinheit 110 und einen oder mehrere Speicher 120. Die Steuereinheit 110 umfasst einen Mikroprozessor 114 und der Mikroprozessor 114 kommuniziert und überträgt Befehle und Daten an eine System über eine Systemschnittstelle 112, worin auf das Siliziumspeichermedium vom System zugegriffen wird. Nachdem Daten in einem Datenpuffer 116 temporär gespeichert wurden, werden die Daten entweder in den Speicher 120 über eine Speicherschnittstelle 118 geschrieben oder aus dem Speicher 120 gelesen und in einem Datenpuffer 116 temporär gespeichert. Danach werden die Daten über die Systemschnittstelle 112 zum System zurück gesendet, welches die Daten zum Lesen anfordert.
  • Während dem Prozess der Aufzeichnung der Originaldaten, die vom System in den Speicher übertragen wurden, speichert der Prozess ferner zugehörige Steuerinformationen, wie das Zustandskennzeichen, den Fehlerkorrekturcode, die logische Adresse und weiteren nicht verwendeten, reservierten Raum, der zu einigen Daten des Datenspeicherblocks gehört. Jedes Bit in der zur Steuerung gehörigen Information wird definiert hiernach, worin:
    Zustandskennzeichen: den Zustand der Daten, die in einem Speicherblock gespeichert sind, mit "gelöscht", "in Benutzung" oder "fehlerhaft" angibt. Wenn er "gelöscht" ist, dann kann der Speicherblock zum Speichern von aktualisierten Daten verwendet werden und das Zustandskennzeichen wird geändert zu "in Benutzung". Wenn es während des Schreibvorgangs vorkommt, dass der Speicher zum Aufzeichnen der Daten defekt ist und nicht weiter zum einwandfreien Speichern verwendet werden kann, wird der Block als "fehlerhaft" gekennzeichnet. Nachdem die Daten, die im Speicherblock mit dem Kennzeichen "in Benutzung" gespeichert sind, aktualisiert und in den anderen "gelöschten" Block verschoben wurden, erlangt der Speicherblock wieder den Zustand "gelöscht" durch den Löschvorgang.
  • Fehlerkorrekturcode: mehrere Byte des Fehlerkorrekturcodes werden aus den Originaldaten unter Verwendung eines spezifischen Algorithmus generiert. Wenn der Fehlerkorrekturcode erfasst wurde, dann erfolgt der Korrekturprozess, um den Fehler zu korrigieren, und die korrekten Daten werden dann zum System zurück gesendet. Wenn der Mikroprozessor einen Fehler erfasst, der in der Speichereinheit aufgetreten ist, in dem die Originaldaten gespeichert sind, dann werden die korrekten Daten unverzüglich verschoben und in einen anderen "gelöschten" Block kopiert und der defekte Datenblock als "fehlerhaft" gekennzeichnet.
  • Logische Adresse: eine Translationstabelle wird gemäß des Planungsprozesses der Speicherkonfiguration erzeugt, um die Originaldaten zu spiegeln. Wenn die Originaldaten in den Speicher gespeichert werden, muss der Mikroprozessor die Speicheranpassung an das physische Adressierungsverfahren, das für den Speicher geeignet ist, einwandfrei planen, anordnen und ausnützen. Deshalb bestand ein großer Unterschied zwischen der von ihm benutzten Anordnungssequenz und der logischen Adressensequenz, die vom System angewandt wird, um auf den Speicher zuzugreifen. Dementsprechend ist es erforderlich, eine Adressenkonvertierungs-Schaltungsanordnung oder einen Adressenkonvertierungs-Steuerprozess in der Steuereinheit zu installieren. Die Translationstabelle wird zum Konvertieren der logischen Adresse verwendet, welche vom System an/von die/der physischen Adresse in dem Speicher bereitgestellt wird. Um eine derartige Translationsbeziehung aufrecht zu erhalten, auch nachdem die Stromversorgung das System heruntergefahren hat, ist es erforderlich, sowohl die Originaldaten als auch ihre entsprechende logische Adresse gleichzeitig zu erhalten.
  • Wie oben erwähnt, wird ein herkömmlicher NAND-Flash-Speicher hier beispielhaft erläutert, um ein Speicherformat eines Datenblocks in dem Speicher zu beschreiben, wie in der 1B gezeigt ist. Ein NAND-Flash-Speicher mit 528 Byte als Speichereinheit dient im Folgenden als Beispiel. Unter den 528 Byte der Speichereinheit werden 512 Byte als ein Speicherbereich zum Aufzeichnen der Originaldaten verwendet und die restlichen 16 Byte (auch als Speicherbereich für Steuerinformationen bekannt) werden zum Aufzeichnen der oben genannten Steuerinformationen verwendet. Nachdem die erforderliche Steuerinformationen gespeichert ist, ist es üblich, dass in dem Speicherbereich für Steuerinformationen noch etwas Speicherplatz übrig geblieben ist.
  • Bezugnehmend auf die 2, ist eine Konfiguration eines Siliziumspeichermediums und einer Steuereinheit hiervon gezeigt, wie es der Stand der Technik bereitstellt. Worin ein Siliziumspeichermedium 200 mit Datenkomprimierungsfunktion eine Steuereinheit 210 und mindestens einen Speicher 220 umfasst. Die Steuereinheit 210 umfasst eine Systemschnittstelle 211, die als ein Datenaustauschkanal zwischen dem System und der Steuereinheit des Siliziumspeichermediums dient; einen Mikroprozessor 212, der Lese-, Schreib- und Löschvorgänge ausführt; und eine Speicherschnittstelle 216, die als ein Datenaustauschkanal zwischen dem Speicher 220 und der Steuereinheit 210 des Siliziumspeichermediums dient. Ferner, um die Datenkomprimierungsfunktion zu implementieren, umfasst die Steuereinheit 210 des Weiteren ein Datenkomprimierungs-/Dekomprimierungsmodul 214. Um den Datenzugriff zwischen dem System und dem Speicher 220 zu beschleunigen, umfasst die Steuereinheit 210 darüber hinaus einen ersten Systemdatenpuffer 213a und einen zweiten Systemdatenpuffer 213b zum temporären Speichern der Daten, die mit dem System ausgetauscht werden, und einen ersten Speicherdatenpuffer 215a und einen zweiten Speicherdatenpuffer 216b zum temporären Speichern der Daten, die mit dem Speicher ausgetauscht werden. Alternativ dazu ist es auch möglich, dass nur der einzelne Systemdatenpuffer 213a und der Speicherdatenpuffer 215a als der Puffer zum temporären Speichern der Daten benutzt werden, und deren physische Implementierung von Gesichtspunktender Bauart abhängt.
  • Zusammenfassend werden in der herkömmlichen Konfiguration der Steuereinheit des Siliziumspeichermediums und der herkömmlichen Datenaufzeichnungsstruktur, die Originaldaten direkt an einen vorgesehenen Ort im Speicher, ohne komprimiert zu werden, gespeichert. Daraus resultiert, dass die Speicherkapazität eines derartigen Typs von Siliziumspeichermedium nur durch das Hinzufügen neuer Speicherhardware verbessert werden kann und dass das Komprimierungsverfahren bei der Steigerung der Speicherkapazität dieses Speicherkartentyps nicht helfen kann. Des Weiteren verwendet das herkömmliche Siliziumspeichermedium "Seite" als eine Einheit zum Lesen oder Schreiben, so dass der Komprimierungsmechanismus die Leistung des Datenprozesses nicht verbessern konnte, weil die Einheit zu klein ist. Obwohl die Steuerinformation, die sich auf den Translationsanzeiger bezieht, und der Fehlererfassungs-Korrekturcode in dem reservierten redundanten Bereich auf jeder Seite gekennzeichnet sind, bleibt zudem immer noch ein gewisser Speicherplatz verfügbar. Des Weiteren wird dessen Translationstabelle durch Mapping der festgelegten Länge der Originaldaten zu der Speicherseite generiert. Mit anderen Worten werden alle Operationen, die das Lesen, Schreiben, Aktualisieren der Daten und das Aktualisieren der Translationstabelle einschließen, auf der Basis der festgelegten Länge der Originaldaten betrieben. Dieser Speicherstrukturtyp der festgelegten Datenlänge kann seine bestehende Translationstabelle jedoch nicht benutzen, um die Lese-/Schreibtranslation der Daten im Siliziumspeichermedium mit einem Komprimierungsmechanismus auszuführen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Daher ist die vorliegenden Erfindung dazu vorgesehen, ein Siliziumspeichermedium mit einer größeren Zugriffseinheit, beispielsweise einem Speicherblock, als das Datenspeicherformat und mit einer Mapping-Betriebsart für einen Datenframe auszustatten. Außerdem existiert ein Translationstabellenpuffer, der durch die Steuereinheit konfiguriert wird, um eine Translationstabelle für weitere Zugriffsvorgänge aufzeichnen.
  • Die vorliegende Erfindung ist dazu vorgesehen, um ein Siliziumspeichermedium und dessen Steuereinheit mit einer Anordnung, einem Steuerverfahren, einem Datenaufzeichnungsformat und einer Mapping-Betriebsart hiervon zu konfigurieren. Worin, wenn die Steuereinheit den Datenframe aktualisiert, die Translationstabelle, die im Translationstabellenpuffer aufgezeichnet ist, ebenfalls gleichzeitig aktualisiert wird und die Translationsbeziehung in einer vorangehenden Beschreibungseinheit gekennzeichnet ist, welche zu dem aktualisierten Datenframe führt.
  • Die vorliegende Erfindung ist des Weiteren dazu vorgesehen, das Suchen des Datentranslationscodes im Translationstabellenpuffer, gemäß des Lese-/Schreibzugriffsbefehls zu beschleunigen, der vom System für eine entsprechende Speicherblockadresse bereitgestellt wird, um den Datenframe rasch zu lesen und die Daten zurück zum System zu schicken oder die Daten zu aktualisieren. Außerdem wurde der Steuereinheit ein Adressen-Mapping-Modul hinzugefügt.
  • Um die Speicherkapazität des Speichermediums zu erhöhen, wurde der Steuereinheit des Siliziumspeichermediums des Weiteren eine Datenkomprimierungs-/dekomprimierungseinheit hinzugefügt, und die Daten werden vor dem Speichern komprimiert und dekomprimiert, nachdem sie aus dem Speichermedium ausgelesen wurden. Deshalb kann in der vorliegenden Erfindung erstens der Bereich, der von den Originaldaten eingenommen wird, auf dem Wege der Datenkomprimierung verringert werden. Bevor die Daten an dem vorgesehenen Ort in dem Speicher aufgezeichnet werden, wird die "vorangehende Deskriptionseinheit" vor den Daten angefügt, die von der Steuereinheit komprimiert wurden, und ein "späterer Datenfehler-Prüfungscode" hinter dessen Ende angefügt, um ein "Datenframe" zu bilden, der nahe der Speicherkapazität eines "Speicherblocks" liegt. Zweitens sind der Translationsanzeiger und der Korrekturcode der Fehlererfassung beide in der "vorangehenden Deskriptionseinheit" des "Datenframes" gekennzeichnet, der im "Speicherblock" gespeichert ist. Deshalb ist der Speicherplatz jeder Seite, die durch die Information eingenommen wird, weiter reduziert und der effektive Bereich an Speicherkapazität im Siliziumspeichermedium, welcher physisch von der gültigen Information im System verwendet werden kann, kann dementsprechend verbessert werden. Schließlich ist die Translationstabelle, gemäß der Basis des "Datenframes" etabliert, der dementsprechend aus der Längenvariablen der Originaldaten gebildet wird. Dann werden alle Vorgänge des Lesens, Schreibens, der Datenaktualisierung und Translationstabellenaktualisierung auf der Basis des "Datenframes" betrieben, welcher der variablen Länge der Originaldaten entspricht.
  • In der vorliegenden Erfindung kann der Datenframe an jedem Ort des Speichers gespeichert werden. Die Steuereinheit stellt die Translationsbeziehung des Datenframes und die Originaldaten entsprechend der vorangehenden Deskriptionseinheit wieder her, wenn sie initialisiert wird, und beginnt mit dem Ausführen der Suche. Die "Translationstabelle" wird von der Steuereinheit generiert, wenn sie dazu initialisiert wurde, das Durchsuchen der Datenframes zu beginnen, die in allen Speicherblöcken des Speichers gespeichert sind. Nachdem die Translationstabelle generiert wurde, wird die Translationstabelle kontinuierlich aktualisiert, wenn das System schreibt oder Daten aktualisiert, so dass die Exaktheit der Translationsbeziehung aufrechterhalten wird. Die "Translationstabelle" wurde durch eine Vielzahl von "Mapping-Eingaben" erstellt und jede Mapping-Eingabe zeichnet einen Zustand eines Satzes von Speicherblöcken im Speicher auf.
  • Abhängig von der Größe des eingebauten Translationstabellenpuffers und der Anzahl der Speicherblöcke, welche im adaptiven Speicher enthalten sind, kann die Steuereinheit entweder eine vollständige Translationstabelle zu einem Zeitpunkt erzeugen oder eine partielle Translationstabelle erzeugen, die auf einem Intervall basiert, auf das das System gegenwärtig zugreift, oder zwei oder mehrere Sätze an partiellen Translationstabellen erzeugen, indem sie diese in einige spezifische Bereiche unterteilt, um die Effektivität des Zugriffs auf den Puffer zu verbessern.
  • Der Inhalt im Inneren der Mapping-Eingabe ist gemäß des entsprechenden Speicherblockzustandes oder der Information gekennzeichnet, die durch den gespeicherten Datenframe angezeigt wird.
  • Nach der Initialisierung der Steuereinheit werden beide, der Blockzustand, der in jedem Speicherblock des Speichers gekennzeichnet ist, und die vorangehende Deskriptionseinheit des Datenframes zuerst gelesen und dann wird die gelesene Information in der Mapping-Eingabe gespeichert, worin sich die Mapping-Eingabe in der Translationstabelle befindet und an den Speicherblock adressiert ist. Die Translationstabelle kann von einem bidirektionalen Serienlink implementiert sein, um der Steuereinheit zu ermöglichen, die Systemadresse, die dem Datenframe entsprach, und die Position des gespeicherten Speicherblocks in einer absteigenden oder aufsteigenden Sequenz zu verknüpfen.
  • Nachdem die Translationstabelle etabliert wurde, wird sich die Steuereinheit den Zugriffsbefehl vom System holen. Nachdem das System einen Lesebefehl herausgegeben hat, führt die Steuereinheit unverzüglich eine Suche in der Translationstabelle durch, um die Adresse des Speicherblocks und den Datenframe zu erhalten, der dem Systemlesezugriff entspricht, der aus der Translationstabelle bezogen wurde. Wenn die entsprechende Adresse des Datenframes erhalten wurde, dann wird der Datenframe in den Datenpuffer eingelesen und die Originaldaten werden zum System zurück geschickt, nachdem sie dekomprimiert wurden. Wenn die entsprechende Adresse des Datenframes nicht erhalten wurde, dann wird eine Aufzeichnung mit einem vorbestimmten Format direkt an das System zurückgeschickt.
  • Auf der anderen Seite, nachdem das System eine Leseanweisung erteilt hat, führt die Steuereinheit unverzüglich einen Suchvorgang in der Translationstabelle durch, um zu überprüfen und zu bestimmen, ob die Adresse des Speicherblocks, die dem Systemlesezugriff entspricht, und die Adresse des Datenframes aus der Translationstabelle erhalten werden können oder nicht. Wenn die entsprechende Adresse des Datenframes erhalten wurde, dann wird der Datenframe in den Datenpuffer eingelesen und dekomprimiert. Dann wird der Datenframe durch die aktuellen Daten, die vom System übermittelt wurden, aktualisiert und der Datenframe wird beschafft, der vom Speicherblock nicht aufgezeichnet und aktualisiert wurde. Der Speicherblock zum Aufzeichnen des nicht-aktualisierten Datenframes wird dann gelöscht. Während die oben genannten Vorgänge ausgeführt werden, wird die Translationstabelle synchron aktualisiert. Wenn die entsprechende Adresse des Datenframes nicht erhalten wurde, dann werden die vom System geschriebenen Daten zum direkten Generieren des Datenframes benutzt und der neugebildete Datenframe erhalten, der vom nicht verwendeten Speicherblock aufgezeichnet wurde. Während die oben genannten Vorgänge ausgeführt werden, wird die Translationstabelle synchron aktualisiert.
  • Zusammengefasst kann durch Integrieren der komprimierten Originaldaten und des dekomprimierten Datenframes, der im Speicher in das Datenframe-basierte Siliziumspeichermedium aufgezeichnet wird, und in Übereinstimmung mit dem Translationsverfahren, das in der vorliegenden Erfindung beschrieben wird, eine Translationstabelle generiert werden, wenn das Siliziumspeichermedium initialisiert ist, und die Translationstabelle wird aktualisiert, wenn darauf zugegriffen wird. Sogar die herkömmliche Steuereinheit des Siliziumspeichermediums besitzt einen ähnlichen Mechanismus, wobei die Originaldaten nach dem Stand der Technik direkt aufgezeichnet und gespeichert werden und der Weg, die Situation zu handhaben, nachdem die Daten komprimiert wurden, ist bisher in dem Stand der Technik noch nicht offenbart. Deshalb trägt der permanente Hochgeschwindigkeits-Speicher in der weitverbreiteten Anwendung des Siliziumspeichermediums immer einen großen Anteil an den Gesamtproduktionskosten. Im Falle dessen, dass das Komprimierungs-/Dekomprimierungsverfahren in die vorliegende Erfindung integriert und auf das Siliziumspeichermedium angewandt werden kann, ist es möglich, die Aufgabe zu erzielen, eine höhere physische Speicherkapazität bei geringerer Speichergröße bereitzustellen, um die Produktionskosten weiter zu reduzieren und den Wert des Produkts zu steigern.
  • Des Weiteren kann der Vorgang der vorliegenden Erfindung mittels einer Firmware der Steuereinheit implementiert werden. Um den Datenzugriff in dem System zu beschleunigen, können einige Funktionen in das Adressen-Mapping-Modul mit der Hardwareschaltungsanordnung eingebaut werden, so dass die Steuereinheit rasch suchen und den Zustand der Zieladresse bestimmen kann, auf die vom System-Mapping an die Translationstabelle zum Ausführen weiterer Vorgänge zugegriffen wurde.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die begleitenden Abbildungen sind enthalten, um ein weiteres Verständnis der Erfindung zu verschaffen, und sind einbezogen in und stellen einen Teil dieser Beschreibung dar. Die Abbildungen zeigen Ausführungsformen der Erfindung und dienen zusammen mit der Beschreibung zur Erklärung der Grundlagen der Erfindung.
  • 1A ist ein schematisches Diagramm eines herkömmlichen Siliziumspeichermediums und dessen interne Konfiguration.
  • 1B ist ein schematisches Diagramm, das ein Aufzeichnungsformat eines Datenblocks in einem Speicher zeigt, der aus einem Flash-Speicher des NAND-Typs besteht.
  • 2 ist ein schematisches Diagramm eines herkömmlichen Siliziumspeichermediums mit Datenkomprimierungsfunktion.
  • 3 ist ein schematisches Diagramm eines auf einem translatierten Datenframe basierenden Siliziumspeichermediums und einer Steuereinheit davon, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4A ist ein schematisches Diagramm, welches ein Format eines Datenframes und dessen vorangehende Deskriptionseinheit gemäß einer Ausführungsform der Erfindung zeigt.
  • 4B ist ein schematisches Diagramm, welches gemäß einer Ausführungsform der Erfindung eine Translationsbeziehung zeigt, nachdem das Siliziumspeichermedium initialisiert wurde.
  • 5 ist ein Flussdiagramm, welches einen Prozess zum Erzeugen einer Translationstabelle zeigt, nachdem das auf . dem translatierten Datenframe basierende Speichermedium gemäß einer Ausführungsform der vorliegenden Erfindung initialisiert wurde.
  • 6 ist ein Flussdiagramm, das ein Verfahren zum Aktualisieren einer nicht verwendeten Verknüpfungstabelle einer Blockreihe zeigt, wenn der Speicherblock gemäß einer Ausführungsform der vorliegenden Erfindung nicht verwendet wird.
  • 7 ist ein Flussdiagramm, welches ein Verfahren zum Betreiben einer Verknüpfungstabelle einer neuen "in Benutzung"-Blockreihe zeigt, wenn der Speicherblock gemäß einer Ausführungsform der vorliegenden Erfindung in Benutzung ist.
  • 8 ist ein Flussdiagramm, das einen Prozess für das System zeigt, Daten gemäß einer Ausführungsform der vorliegenden Erfindung zu lesen.
  • 9 ist ein Flussdiagramm, welches einen Prozess für das System zeigt, Daten gemäß einer Ausführungsform der vorliegenden Erfindung zu Schreiben.
  • 10 ist ein Flussdiagramm, das einen Prozess für das System zeigt, Daten unter einer spezifischen Bedingung gemäß einer Ausführungsform der vorliegenden Erfindung zu schreiben.
  • 11 ist ein Flussdiagramm, welches einen Prozess für das System zeigt, Daten unter einer weiteren spezifischen Bedingung gemäß einer Ausführungsform der vorliegenden Erfindung zu schreiben.
  • 12 ist ein Flussdiagramm, das einen Prozess für das System zeigt, Daten unter einer noch weiteren spezifischen Bedingung gemäß einer Ausführungsform der vorliegenden Erfindung zu schreiben.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bezugnehmend auf die 3 ist gemäß einer Ausführungsform der vorliegenden Erfindung ein Translationstabellenpuffer 317 in der Steuereinheit 310 zum Unterstützen des Siliziumspeichermediums mit der oben genannten Komprimierungskonfiguration eingebaut. Worin die Translationstabelle zum Aufzeichnen einer Adressentranslationsbeziehung zwischen der festgelegten Datenlänge (übermittelt vom System) und der variablen Datenlänge (generiert durch den Komprimierungsmechanismus) im Translationstabellenpuffer 317 (der Weg zum Erzeugen der Translationstabelle ist nachstehend erklärt) für den Datenzugriff gespeichert ist. Ferner ist ein Adressen-Mapping-Modul 318 in der Steuereinheit 310 hinzugefügt, um die Datensuche zu beschleunigen. Das Adressen-Mapping-Modul 318 wird als Basis des Zugriffsbefehls, das von dem System zum Beziehen einer Speicherblockadresse des entsprechenden Speichers 220 bereitgestellt wird, und zum Lesen des Datenframes verwendet, um den Aktualisierungsvorgang auszuführen oder die Daten zum System zurück zu schicken.
  • Das Siliziumspeichermedium 310 umfasst einen Speicher 320, und der Speicher 320 besteht aus einer Vielzahl von Speicherblocks. Worin jeder der Speicherblocks auf einem spezifischen Datenframeformat basiert. Der Datentyp, der in jedem Datenframe eingeschlossen ist, ist von variabler Datenlänge, welche anhand der feststehende Datenlänge konvertiert wird, die vom System übertragen und von einem Datenkomprimierer 314a komprimiert wurde. Um die komprimierten Daten zu verwalten, wird ein Satz an vorangehenden Deskriptionseinheiten vor dem Anfang des Datenframes platziert und ein Fehlerprüfungscode wird hinter das Ende des Datenframes platziert (mit Bezug auf die 4). Mit einem derartigen Design wird eine Platzierung der Steuerinformation in jeder Seite nicht mehr benötigt, und somit wird die Verwendung des unbenutzten Speicherplatzes verbessert. Ferner werden eine Vielzahl an komprimierten Sektordaten zwischen der vorangehenden Deskriptionseinheit und dem Fehlerprüfungscode aufgezeichnet.
  • Worin eine Startadresse der Originaldaten und eine den komprimierten Daten entsprechende Datenlänge in der "vorangehenden Deskriptionseinheit" angegeben sind und die vorangehende Deskriptionseinheit den Datenframe führt, wie in der Tabelle 1 gezeigt ist: Tabelle 1
    Figure 00130001
  • Es sollte beachtet werden, dass das Hinzufügen des Algorithmusanzeigers und des Parameteranzeigers in die vorangehende Deskriptionseinheit nur erforderlich ist, wenn die Komprimierungs-/Dekomprimierungsfunktion im Siliziumspeichermedium der vorliegenden Erfindung erforderlich ist. Ferner ist das Format der vorangehenden Deskriptionseinheit nicht notwendigerweise auf das in der Tabelle 1 gezeigte Format beschränkt, solange das Datenattribut und die Datenlänge, die von jedem Bit aufgezeichnet wurden, die Originaldaten erfolgreich abbilden können, befinden sie sich innerhalb des Schutzumfangs der vorliegenden Erfindung.
  • Die oben genannte Translationstabelle wird durch das Lesen der vorangehenden Deskriptionseinheit generiert und führt den Datenframe, und die Translationstabelle besteht aus einer Vielzahl an Mapping-Eingaben (mit Bezug auf die 4B). Worin die Translationstabelle zum Bestimmen der Kapazität und des Speicherortes der den Datenframes entsprechenden Originaldaten verwendet wird, und als eine Adressentranslationsmode für die lineare kontinuierliche Adresse im System und für die nichtlineare Segmentadresse des Speichers auf der Seite des Siliziumspeichermediums verwendet wird.
  • In einer Ausführungsform der vorliegenden Erfindung, bezüglich der vorangehenden im Speicherblock gespeicherten Deskriptionseinheit, die den Translationseinheiten entspricht, sind das konstituierte Format und die Bedeutung in der folgenden Tabelle gezeigt.
  • Tabelle 2
    Figure 00140001
  • Figure 00150001
  • Worin, abhängig von der Kapazität des Translationstabellenpuffers 317, der in der Steuereinheit 310 eingebaut ist, und der Anzahl der Speicherblöcke, die im adaptiven Speicher 320 enthalten sind, kann die Steuereinheit 310 entweder eine vollständige Translationstabelle zu einem Zeitpunkt generieren oder eine partielle Translationstabelle, basierend auf dem Intervall, auf den das System gegenwärtig zugreift, oder zwei oder mehrere Sätze an partiellen Translationstabellen durch Unterteilung dessen in einige spezifische Bereiche erzeugen.
  • Ein spezifisches Siliziumspeichermedium ist nachfolgend detailliert beschrieben, worin der Speicher nur die Basisdaten speichert, die nach der Initialisierung des Systems geladen wurden. Ein herkömmliches FAT12-File-System wird hierin zur Verdeutlichung beispielhaft erläutert, worin die Originaldaten, die auf dem Siliziumspeichermedium gespeichert sind, mindestens einen Master-Boot-Record, eine Partitionstabelle, einen Partitions-Boot-Sektor, ein Hauptverzeichnis und eine Dateizuordnungstabelle umfasst. Beispielsweise ist das Siliziumspeichermedium ein 16MB (MByte) Speicher, wobei jede Seite 528B (Byte) beinhaltet und jeder Speicherblock 16KB (KByte) groß ist, der 32 Seiten entspricht. Durch die Verwendung eines systemlinearen kontinuierlichen Adressierungsverfahrens nehmen die oben genannten Originaldaten 48 Adressensektoren 0~47 ein, welche einem Speicherplatz von 24KB entsprechen. Deren Aufteilung ist in der Tabelle 3 gezeigt.
  • Tabelle 3
    Figure 00160001
  • Nachdem die oben genannten Informationen komprimiert worden sind, befinden sich keine Informationen auf der Originaldatenadresse 1~26 und sämtliche Inhalte dessen werden mit einem Ausgangswert 0xFF belegt, so dass eine hohe Komprimierungsrate erreicht werden kann. Der Rest der Informationen belegt nur 22 Sektoren, die 11KB der Originaldaten entsprechen. Als Resultat dessen ist bekannt, dass ein Datenframe mit einer Kapazität unterhalb 16KB, leicht durch Komprimierung der oben genannten initialisierten Originaldaten erhalten werden kann.
  • Währenddessen wird nur ein Datenframe zum Speichern der Basisinformationen benötigt, die nach dem Initialisieren des Systems geladen wurden. Worin die entsprechende Originalstartadresse 0 und die Datenlänge 48 ist. Des Weiteren ist der Zustand der vorangehenden Deskriptionseinheit des Datenframes in der Tabelle 4 gezeigt.
  • Tabelle 4
    Figure 00160002
  • Worin AI und PI von dem adaptivsten Komprimierungsverfahren abhängen, das von der Steuereinheit auf Basis der Originaldatencharakteristik ausgewählt wurde, und als 0xmm und 0xnn dargestellt wird.
  • Bezugnehmend auf die 4B, wenn die Steuereinheit 310 die vorangehende Deskriptionseinheit durchsucht, die in der oben erwähnten Tabelle 3 gezeigt ist, weil das Siliziumspeichermedium sich im Initialisierungszustand befindet, wird der erste Speicherblock, dessen Adresse 0 ist, zum Aufzeichnen des Datenframes verwendet und die Beziehung zwischen den linearen kontinuierlichen Originaldaten und dem Datenframe ist in der 4B gezeigt.
  • Die "systemlineare kontinuierliche Adresse" zeigt, nachdem das Siliziumspeichermedium auf einem oben genannten Wege initialisiert wurde, dass nur 48 Sektoren (von LAB=0 bis LBA=47) sinnvolle Informationen gespeichert haben, worin der "in Benutzung"-Block von einer ausgefüllten dunklen Farbe im Diagramm dargestellt ist. Die "speicherseitige nichtlineare Segmentadresse" in der 4B kennzeichnet einen internen Teil des Speichers, an dem die komprimierten Daten derart gespeichert werden, dass ein Datenblock als eine Einheit zum Speichern des Datenframes verwendet wird. Des Weiteren kennzeichnet die "Translationstabelle im Inneren der Steuereinheit" aus der 4B einen internen Teil der Steuereinheit, worin die Translationstabelle zum Verknüpfen der systemlinearen kontinuierlichen Adresse mit der speicherseitigen Segmentadresse generiert wird, nachdem das Siliziumspeichermedium initialisiert wurde. Weil es der erste "in Benutzung"-Speicherblock ist, wird eine Translationseinheit in der Translationstabelle entsprechend generiert und die darin aufgezeichneten Informationen werden in der Tabelle 5 dargestellt: Tabelle 5
    Figure 00180001
  • Der Schritt der Erzeugung der Translationstabelle ist nachfolgend detailliert beschrieben.
  • Bezugnehmend auf die 5 ist ein Flussdiagramm gezeigt, das einen Prozess der Erzeugung der Translationstabelle darstellt, nachdem die Steuereinheit initialisiert wurde (s502). Als Erstes wird der Typ und die Kapazität des adaptiven Speichers erfasst (s504), worin zuerst ein letzter Block als "last_block" definiert, dann der Translationstabellenpuffer geplant und initialisiert (s506) und der Speicherblock BA=0 gelesen wird (s508). Danach wird die vorangehende Deskriptionseinheit jedes Speicherblocks gelesen (s510) und der gekennzeichnete Blockstatus, der gelesen wird, in den Translationseinheiten aufgezeichnet (s512). Währenddessen wird bestimmt, ob der Speicherblock in Benutzung ist oder nicht (s501). Wenn bestimmt wurde, dass der Block in Benutzung ist, dann werden die Startadresse (SA) und die Datenlänge (DL) der Translationseinheiten gekennzeichnet (s514), der Satz der "in Benutzung"-Blöcke in der Translationstabelle aktualisiert (s506) und die Verknüpfung der unbenutzten Blockreihe in der Translationstabelle aktualisiert (s518). Wenn bestimmt wurde, dass der Block nicht verwendet wird, dann wird die Verknüpfung der unbenutzten Blockreihe in der Translationstabelle direkt aktualisiert (s518). Währenddessen, wenn erkannt wurde, dass einige Blöcke fehlerhaft sind, kehrt der Prozess wieder zum Bestimmungsschritt des Speicherblockzustandes zurück (s501). Wenn kein fehlerhafter Block vorhanden ist, wird dann festgelegt, ob der letzte Block mit BA=last_block übereinstimmt oder nicht (s503). Wenn ja, dann ist die Erzeugung der Translationstabelle vollständig abgeschlossen (s522). Anderenfalls wird der nächste Speicherblock BA=BA+1 durchsucht und die vorangehende Deskriptionseinheit des Speicherblocks fortlaufend eingelesen (s510).
  • Weil eine Verknüpfungstabelle einer unbenutzten und einer benutzten Blockreihe beim Generieren der Translationstabelle verwendet wird, wird in einer bevorzugten Ausführungsform der vorliegenden Erfindung eine Datenstruktur einer bidirektionalen Serienverknüpfung derart verwendet, dass die Steuereinheit die entsprechende Systemadresse und die aufgezeichnete Startposition des Speicherblocks aus der Startadresse in einer absteigenden oder einer aufsteigenden Reihenfolge verknüpfen kann.
  • Der Prozess der Erzeugung dieser zwei Serienverknüpfungstabellen ist nachfolgend detailliert erklärt.
  • Bezugnehmend auf die beiden 4B und 6, die schematisch den Prozess der Aktualisierung der unbenutzten Serienverknüpfungstabelle zeigen, wenn der Speicherblock noch nicht verwendet wurde. Zwei Kennzeichen, EMPTY und EMP_END, die in der 4B gezeigt werden, werden als Referenzkennzeichen zum Generieren der Verknüpfungstabelle der unbenutzten Blockreihen benutzt. Als Erstes werden zwei Kennzeichen zu einem vorgegebenen Wert (z.B. FFF) definiert und die Blockadresse (BA) des Speichers auf 0 gesetzt (s602). Wenn in dem Schritt s601 festgestellt wurde, dass kein unbenutzter Speicherblock (BS=FF) vorhanden ist, dann wird bestimmt, ob der Anzeiger EMPTY einen vorgegebenen Wert besitzt oder nicht (d.h. der Eintrag ist entweder FFF oder nicht, wie in dem Schritt s603 gezeigt ist). Wenn er es ist, was bedeutet, dass er ein erster unbenutzter Speicherblock ist, dann werden in einem derartigen Fall zwei Kennzeichen an die Adresse des gegenwärtigen unbenutzten Blocks (EMPTY=BA und EMP_END=BA) gesetzt und PE(BA)=FFF und NE(BA)=FFF werden in den Translationseinheiten, die dem Block entsprechen, gleichzeitig aufgezeichnet (s604). Wenn festgestellt wurde, dass es nicht der erste erkannte unbenutzte Block ist, werden die Translationseinheiten, die den unbenutzten Blöcken entsprechen, ebenso aktualisiert, das bedeutet, dass PE(BA) auf EMP_END und NE(BA) auf FFF gesetzt wird, und das Kennzeichen EMP_END zeigt auf die Speicherblockadresse (BA) (s606). Ungeachtet dessen, ob der Schritt s604 oder s606 ausgeführt wird, wird bestimmt, ob der Block der letzte Block ist oder nicht (s605). Wenn er nicht der letzte Block ist, dann werden die dem Schritt s601 nachfolgenden Schritte, der oben genannt wurde, auf den nächsten Block ausgeführt. Wenn er der letzte Block ist, dann wird die Generierung der Serienverknüpfungstabelle des unbenutzten Speicherblocks vervollständigt (s610).
  • Bezugnehmend auf die beiden 4B und 7, welche schematisch einen Prozess der Aktualisierung der "in Benutzung"-Serienverknüpfungstabelle zeigen, wenn der Speicherblock in Benutzung ist. Zwei Kennzeichen START und END, die in der 4B gezeigt sind, werden als Referenzkennzeichen zum Generieren der Verknüpfungstabelle der benutzten Blockreihe verwendet. Gleichermaßen werden zwei Kennzeichen START und END zu einem vorbestimmten Wert (z.B. FFF) initialisiert und die Blockadresse (BA) des Speichers wird auf 0 gesetzt (s702). Eine Position in der Datenstruktur der Serienverknüpfung, an der die Translationseinheiten eingefügt werden, wird als erstes entsprechend der Startadressen-(SA)- und der Datenlängen-(DL)-Parameter abgesucht, die durch die vorangehende Deskriptionseinheit des Datenframes gekennzeichnet sind, und sowohl das NE-Kennzeichen der Translationseinheit der vorherigen Eingabe als auch das PE-Kennzeichen der Translationseinheit der nächsten Eingabe werden aktualisiert. Des Weiteren wird die Blockadresse (BA) der vorherigen Eingabetranslationstabelle als NE-Kennzeichen der momentanen Eingabetranslationseinheit registriert und die Blockadresse (BA) der nächsten Eingabetranslationseinheit als das PE-Kennzeichen der momentanen Eingabetranslationseinheit registriert. Dann wird festgelegt, ob der benutzte Block BS=F0 gefunden wurde oder nicht (s701). Wenn er gefunden wurde, dann wird bestimmt, ob er ein erster gefundener benutzter Block ist oder nicht (s703). Wenn er der erste gefundene benutzte Block ist, dann werden folgende Werte gesetzt: START=BA, END=BA, PE(BA)=FFF und NE(BA)=FFF (s704). Wenn er nicht der erste gefundene benutzte Block ist, dann wird nach einer Stelle zum Einfügen gesucht. Worin ein repräsentatives Kennzeichen BA_INS des Einfügepunktes in die Translationseinheit gesetzt wird, auf welches vom Startkennzeichen gezeigt wird (s710). Bevor es eingefügt wird, muss bestimmt werden, ob der SA-Wert des nicht zum ersten Mal gefundenen Blocks geringer ist, als der Wert, auf den vom Kennzeichen BA INS des Einfügepunktes gezeigt wird, oder nicht. Wenn er das ist, dann wird festgelegt, ob die vorherige Translationseinheit des BA_INS-Kennzeichenwertes der erste benutzte Block ist oder nicht (s707). Wenn er der erste benutzte Block ist, dann wird das START-Kennzeichen zuerst zur gefundenen Blockadresse aktualisiert und dann die Translationseinheit in die Serienverknüpfung eingefügt (s706). Wenn er nicht der erste benutzte Block ist, dann wird die Translationseinheit direkt in die Serienverknüpfung eingefügt (s706). Wenn bestimmt wurde, dass der SA-Wert des gefundenen benutzten Blocks größer oder gleich dem Wert ist, auf den durch das Kennzeichen BA_INS des Einfügungspunktes gezeigt wird (s705), dann wird bestimmt, ob die nächste Translationseinheit des BA_INS der letzte benutzte Block ist oder nicht (s709). Wenn er der letzte benutzte Block ist, dann wird das END-Kennzeichen aktualisiert und der gefundene benutzte Block als der letzte benutzter Block gekennzeichnet (s714). Dann wird die Translationseinheit, die dem letzten benutzten Block entspricht, in die "in Benutzung"-Serienverknüpfung eingefügt (s708). Wenn jedoch die nächste Translationseinheit des BA_INS nicht der letzte benutzte Block ist, dann wird der Bestimmungsvorgang auf dem nächsten BA_INS ausgeführt. Wenn der oben genannte Suchprozess auf dem letzten Block ausgeführt wurde, dann ist die Erzeugung der Verknüpfungstabelle der "in Benutzung"-Blockreihe vollendet.
  • Es sollte beachtet werden, dass in einer Ausführungsform der vorliegenden Erfindung die Translationtabelle eine Datenstruktur einer bidirektionalen Serienverknüpfung verwendet, um die Translationsbeziehung zwischen dem benutzten Speicherblock und der Systemadresse zu generieren. Um die eingebaute Puffergröße der Steuereinheit zu reduzieren oder um die Leistung bei der Suche nach der entsprechenden Speicherblockadresse zu verbessern, können andere Datenstrukturen in der vorliegenden Erfindung angewandt werden.
  • Bezugnehmend auf die 8, nachdem die Translationstabelle generiert wurde (s902), ist die Steuereinheit bereit, den Zugriffsbefehl zu erhalten, der vom System gegeben wird (s804). Wenn das System den Lesebefehl erteilt hat, werden sowohl die LBA-Adresse als auch die Datenlänge der benötigten Daten an das Siliziumspeichermedium übertragen (s806). Währenddessen sucht die Steuereinheit des Siliziumspeichermediums in der Translationstabelle nach einem entsprechenden Datenframe, beginnend bei der Speicherblockadresse, auf die vom START-Kennzeichen gezeigt wird (s808). Worin, wenn der Startpunkt und die Länge der Daten, die gelesen werden sollen, außerhalb des Startpunktes einer vordersten Speicherblockadresse (s801 und s803) liegen, der Prozess einen Verbindungsknoten B betritt und ein vorgegebener Wert wird zurückgesendet, der angibt, dass sich die Daten, die gelesen werden sollen, gegenwärtig nicht im Speicher befinden. Wenn jedoch ein Teil der Datenlänge über den Startpunkt der vordersten Speicherblockadresse (s801 und s803) hinausgeht, dann werden in diesem Fall ein Teil des vorgegebenen Wertes und ein Teil der gelesenen Daten zum System zurück gesendet (s810, s805 und s812). Des Weiteren wird, wenn sich die Startadresse der Daten, die gelesen werden sollen, und der Datenblock innerhalb des Startpunktes der vordersten Speicherblockadresse und des Bereiches der Datenframegröße befinden (s805 und s807), der Datenframe zur Dekomprimierung in den Datenpuffer eingelesen (s812). Nachdem der Datenframe dekomprimiert wurde, werden die Originaldaten zum System zurück gesendet (s816). Wenn sich die Startadresse der Daten, die gelesen werden sollen, an dem Startpunkt der vordersten Speicherblockadresse befindet, sich jedoch ein Teil der Daten, die gelesen werden sollen, außerhalb des Bereiches der Dateframegröße befindet (s805 und s807), dann wird in diesem Fall ein Teil der Datenlänge zum System zurück gesendet und die Startadresse wird gleichzeitig aktualisiert, um alle verbleibenden Daten das nächste Mal vollständig zu übertragen. Für andere Bedingungen anstatt der einen oben genannten wird mit anderen Worten, wenn die entsprechende Datenframeadresse nicht erhalten wurde, dann ein vorgegebenes Datenformat zum System direkt zurück gesendet (s818).
  • Worin, wenn sich die Steuereinheit im Aktualisierungsprozess des Datenframes befindet, der Translationstabellenpuffer gleichermaßen aktualisiert und die Translationsbeziehung in der vorangehenden Deskriptionseinheit aufgezeichnet wird. Das Adressen-Mapping-Modul zeichnet die Adresse der Originaldaten auf und durchsucht den Translationstabellenpuffer gemäß des gelesenen Zugriffsbefehls, der vom System zum Erhalten des entsprechenden Speicherblocks geliefert wurde, und liest schließlich den Datenframe aus dem entsprechenden Speicherblock.
  • Bezugnehmend auf die 912, worin die 9 schematisch den Hauptablauf eines Schreibvorgangs und die 1012 schematisch Teilabläufe des Prozesses gemäß verschiedener Beziehungen zwischen der Übertragung von Startpunkt/-Bereich und dem Datenframe zeigt.
  • Bezugnehmend auf die 9, nachdem die Translationstabelle generiert wurde (s902), ist die Steuereinheit nun bereit, den Zugriffsbefehl zu erhalten, der vom System geliefert wurde (s904). Wenn das System den Schreibbefehl erteilt (s906), dann durchsucht die Steuereinheit unmittelbar die Translationstabelle, um zu prüfen, ob es die Speicherblockadresse, die der Leseadresse des Systems entspricht, aus der Translationstabelle erhalten kann oder nicht (s908). Danach werden die fünf Schritte s901, s903, s905, s909 und s911 bezüglich der Bestimmung ausgeführt, ob die Daten, die geschrieben werden sollen, aktualisierte Daten oder neu geschriebene Daten darstellen. Deshalb gibt es folgende fünf unterschiedliche Bedingungen: Die Bedingung A (s910), in der sich sowohl der Übertragungsstarpunkt als auch der Datenbereich außerhalb des Datenframes befinden; die Bedingung B (s912), in der sich der Übertragungsstarpunkt außerhalb des Datenframes befindet, aber der Datenbereich innerhalb des Datenframes ist; die Bedingung C (s914), in der sich sowohl der Übertragungsstarpunkt als auch der Datenbereich innerhalb des Datenframes befinden; die Bedingung D (s916), in der sich der Übertragungsstarpunkt innerhalb des Datenframes befindet, aber ein Teil des Datenbereiches außerhalb des Datenframes ist; und die Bedingung E (s920), worin sowohl der Übertragungsstarpunkt als auch der Datenbereich außerhalb des Datenframes und ferner hinter dem letzten Datenframe befinden. Diese fünf Bedingungen sind nachfolgend detailliert beschrieben.
  • Es sollte beachtet werden, dass der oben genannte Prozess durch die Firmware-Implementierung der Steuereinheit erreicht werden kann. Zum Beschleunigen des Datenzugriffs im System ist es des Weiteren möglich, die Hardwareschaltungsanordnung in das Adressen-Mapping-Modul zu integrieren, so dass die Steuereinheit schnell suchen und die Beziehung zwischen der Objektadresse des Systemzugriffs und der Translationstabelle für weitere Vorgänge bestimmen kann.
  • Fünf verschiedene Bedingungen A, B, C, D und E, wie in den 1012 gezeigt ist, sind nachfolgend erklärt:
  • Bedingung A:
  • Bezugnehmend auf die 10, ist in der oben genannten Bedingung A aus dem Resultat der Durchsuchung der Translationstabelle bekannt, dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens als auch der Bereich der Übertragungsdatenlänge außerhalb des existierenden Datenframes befinden und dass die Startadresse gleich der Datenlänge ist, welche durch den Datenframe BA gekennzeichnet ist. Deshalb wird ein Wert EMPTY direkt aus der Translationstabelle des unbenutzten Speicherblocks erhalten und der neue Datenframe gespeichert und aufgezeichnet. Wenn BA exakt der Startadresse START der "in Benutzung"-Translationstabelle entspricht, dann wird der neu hinzugefügte Datenframe NEW an das vorderste Ende der "in Benutzung"-Translationstabelle eingefügt. Anderenfalls wird der neu hinzugefügte Datenframe NEW vor der "in Benutzung"-Translationstabelle BA und hinter PE (BA) eingefügt und alle zugehörigen Kennzeichen werden aktualisiert.
  • Bedingung B:
  • Bezugnehmend auf die 10 befindet sich in der oben genannten Bedingung B der Startpunkt der Objektadresse des Systemschreibens außerhalb des existierenden Datenframes und ein Teil des Bereichs der Übertragungsdatenlänge befindet sich innerhalb des existierenden Datenframes. Währenddessen ist der Prozess zum Verarbeiten des vorderen Sektion, der nicht innerhalb des existierenden Datenframes liegt, der selbe Prozess, wie derjenige, der in der Bedingung A verwendet wird, wohingegen die hintere Sektion weiter durch den Hauptablauf verarbeitet wird.
  • Bedingung C:
  • Bezugnehmend auf die 11 ist in oben genannter Bedingung C aus dem Ergebnis des Durchsuchens der Translationstabelle bekannt, dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens als auch der Bereich der Übertragungsdatenlänge innerhalb des existierenden Datenframes befinden. Deshalb wird ein entsprechender Speicherblock BA direkt von der Translationstabelle des benutzten Speicherblocks erhalten und die Daten gelesen und dekomprimiert. Nachdem die Originaldaten mit dem XFR_Length, das vom System geliefert wird, aktualisiert und die Daten rekomprimiert wurden, wird ein neuer Datenframe generiert. Dann wird ein Wert von EMPTY aus der Translationstabelle des unbenutzten Speicherblocks erhalten und der aktualisierte Datenframe gespeichert und in dem Speicherblock EMPTY aufgezeichnet. Wenn BA exakt der Startadresse START der "in Benutzung"-Translationstabelle entspricht, dann wird der neu aktualisierte Datenframe NEW in das vorderste Ende der "in Benutzung"-Translationstabelle eingefügt. Anderenfalls wird der neu aktualisierte Datenframe NEW hinter der "in Benutzung"-Translationstabelle BA und PE (BA) eingefügt und alle zugehörigen Kennzeichen aktualisiert. Der BA Speicherblock wird zuerst gelöscht und dann hinter dem Ende der Translationstabelle des unbenutzten Speicherblocks eingefügt.
  • Bedingung D:
  • Bezugnehmend auf die 11 ist in der oben genannten Bedingung D aus dem Ergebnis des Durchsuchens der Translationstabelle bekannt, dass sich der Startpunkt der Objektadresse des Systemschreibens innerhalb des existierenden Datenframes befindet, sich aber der Translationsbereich außerhalb der Originaldatenlänge des entsprechenden Datenframes befindet. Währenddessen ist der Prozess zum Verarbeiten der vorderen Sektion innerhalb des existierenden Datenframes der gleiche, wie derjenige, der in der Bedingung C verwendet wird, und die hintere Sektion außerhalb des existierenden Datenframes wird ferner durch den Hauptablauf verarbeitet, nachdem die Übertragungsstartadresse START_LBA und die Datenübertragungslänge XFR_Length abgestimmt wurden.
  • Bedingung E:
  • Bezugnehmend auf die 12 ist in der oben genannten Bedingung E aus dem Ergebnis des Durchsuchens der Translationstabelle bekannt, dass sich sowohl der Startpunkt der Objektadresse des Systemschreibens als auch der Bereich der Datenübertragungslänge außerhalb des existierenden Datenframes befinden, und dass die Startadresse über die Datenlänge des letzten Datenframes BA (d.h. PE(BA)=FFF) hinausgeht. Deshalb wird ein Wert EMPTY direkt aus der Translationstabelle des unbenutzten Speicherblocks erhalten und die Originaldaten, die vom System bereitgestellt werden, werden zum Generieren des Datenframes empfangen, welcher dann in dem neu hinzugefügten Datenframe NEW gespeichert und aufgezeichnet wird. Dann wird der neu hinzugefügte Datenframe NEW hinter dem Ende der Translationstabelle des benutzten Speicherblocks eingefügt und alle zugehörigen Kennzeichen werden aktualisiert.
  • Obwohl die Erfindung unter Bezugnahme auf eine bestimmte Ausführungsform davon beschrieben wurde, wird es für einen Fachmann offensichtlich sein, dass Modifikationen der beschriebenen Ausführungsform gemacht werden können, ohne vom Wesen der Erfindung abzuweichen. Dementsprechend wird der Schutzumfang der Erfindung durch die beigefügten Ansprüche und nicht durch die obige detaillierte Beschreibung definiert.

Claims (19)

  1. Ein Verfahren zum Steuern eines Siliziumspeichermediums, das auf ein System zum Lesen und Schreiben von Daten zugreift, umfassend einen Speicher und eine Steuereinheit, wobei der Speicher eine Vielzahl von Speicherblöcken umfasst, wobei jeder der Speicherblöcke eine Vielzahl von Datenframes umfasst, die eine vorangehende Deskriptionseinheit, eine Vielzahl von komprimierter Sektordaten und einen Fehlerprüfungscode einschließen; und wobei die Steuereinheit einen Translationstabellepuffer und ein Adressen-Mapping-Modul umfasst; wobei die Mittel folgendes umfassen: das Lesen eines Datenframes, um auf eine vorangehende Deskriptionseinheit zuzugreifen, und das Erstellen einer Translationstabelle; das Zugreifen auf einen Speicherblock, der von dem Datenframe gemäß der Translationstabelle gespiegelt wird; und das Lesen oder Schreiben von Daten aus/in den Speicherblock.
  2. Das Verfahren gemäß Anspruch 1, wobei die vorangehende Deskriptionseinheit folgendes umfasst: einen Blockstatus (BS); eine Startadresse (SA), welche die Adresse angibt, wohin der Speicherblock ursprünglich die Daten speichert; und eine Datenlänge (DL), welche die Länge der Daten angibt, die der Speicherblock speichert.
  3. Das Verfahren gemäß Anspruch 1, wobei die vorangehende Deskriptionseinheit ferner folgendes umfasst: einen Algorithmusanzeiger (AI), der eine Prozedur anzeigt, den die Steuereinheit wählt, um die Daten zu komprimieren/dekomprimieren; und einen Parameteranzeiger (PI), der eine Parametertabelle anzeigt, den die Steuereinheit zum Spiegeln wählt.
  4. Das Verfahren gemäß Anspruch 1, wobei das Verfahren der Etablierung der Translationstabelle ferner ein Verfahren der Etablierung einer Translationstabelle mit unbenutztem Speicherblock und der Etablierung einer Translationstabelle mit benutztem Speicherblock und das Aktualisieren der unbenutzten/benutzten Translationstabelle gemäß dem Lese-/Schreibindex umfasst.
  5. Das Verfahren gemäß Anspruch 4, wenn die unbenutzte Translationstabelle etabliert wird, umfasst ferner folgendes: das sequentielle Durchsuchen der Speicherblöcke; das Empfangen eines unbenutzten Speicherblocks (BS=FF); das Erfassen, ob der Parameter des unbenutzten Speicherblocks einem vorbestimmten Wert (EMPTY=FFF) entspricht oder nicht, und wenn ja, das Ersetzen der Werte des Parameters und des letzten Parameters des unbenutzten Speicherblocks durch die Adresse des sequentiellen Speicherblocks (EMPTY=BA, EMP_END=BA) und das Ersetzen der Werte der vorherigen Eingabe und der nächsten Eingabe des unbenutzten Speicherblocks durch den vorbestimmten Wert (PE(BA)=FFF, NE(BA)=FFF); und nach dem Durchsuchen des letzten Speicherblocks, das Etablieren der unbenutzten Translationstabelle gemäß der Aufzeichnung der Ersetzung der Werte.
  6. Das Verfahren gemäß Anspruch 5, wenn der Parameter des unbenutzten Speicherblocks dem vorbestimmten Wert nicht gleich ist, wobei das Verfahren das Ersetzen der Werte des letzten Parameters des unbenutzten Speicherblocks und dessen gespiegelte nächste Eingabe durch die Adresse des sequentiellen Speicherblocks (NE(EMP_END)=BA, EMP_END=BA) umfasst; das Ersetzen der Werte der vorherigen Eingabe und der nächsten Eingabe des unbenutzten Speicherblocks durch den letzten Parameter (PE(BA)=EMP_END) und des vorbestimmten Werts (NE(BA)=FFF) umfasst; um die Aufzeichnung für die Etablierung der unbenutzten Translationstabelle bereitzustellen.
  7. Das Verfahren gemäß Anspruch 4, wenn die benutzte Translationstabelle etabliert wird, umfasst ferner folgendes: das sequentielles Durchsuchen der Speicherblöcke; das Empfangen eines benutzten Speicherblocks (BS=F0); das Erfassen, ob der Parameter des benutzten Speicherblocks einem vorbestimmten Wert (START=FFF) entspricht oder nicht, und wenn ja, das Ersetzen der Werte des Parameters und des letzten Parameters des benutzten Speicherblocks durch die Adresse des sequentiellen Speicherblocks (START=BA, END=BA) und das Ersetzen der Werte der vorherigen Eingabe und der nächsten Eingabe des benutzten Speicherblocks durch den vorbestimmten Wert (PE(BA)=FFF, NE(BA)=FFF); und nach dem Durchsuchen des letzten Speicherblocks, das Etablieren der benutzten Translationstabelle gemäß der Aufzeichnung der Ersetzung der Werte.
  8. Das Verfahren gemäß Anspruch 7, wenn der Parameter des benutzten Speicherblocks dem vorbestimmten Wert nicht gleich ist, umfasst ferner folgendes: das Empfangen der vorangehenden Deskriptionseinheit des Datenframes, der vom benutzten Speicherblock gespiegelt wird, um die Adresse eines eingefügten Punktes abzuleiten, welcher vom benutzten Speicherblock (BA_INS=START) gespiegelt wird; wenn die Startadresse des benutzten Speicherblocks kleiner als die Startadresse des eingefügten Punktes ist, das Bestimmen, ob der Parameter des vorherigen Datenframes des eingefügten Punktes der vorbestimmte Wert (PE(BA_INS)=FFF) ist oder nicht ist, und wenn ja, das Ersetzen des Parameters des benutzten Speicherblocks durch die Adresse des sequentiellen Speicherblocks (START=BA); wenn nein, das Ersetzen des vorderen Datenframe des Speicherblocks durch den gleichen eingefügten Punkt (PE(BA)=PE(INS_BA), das Ersetzen der nächsten Eingabe des Speicherblocks durch die Adresse des eingefügten Punktes (NE(BA)=INS_BA), und das Ersetzen der vorherigen Eingabe des eingefügten Punktes durch die Adresse des sequentiellen Speicherblocks (PE(BA_INS)=BA); wenn die Startadresse des benutzten Speicherbocks nicht kleiner als die Startadresse des eingefügten Punktes ist, das Bestimmen, ob der Parameter des nächsten Datenframes des eingefügten Punktes der vorbestimmte Wert (NE(BA_INS)=FFF) ist oder nicht ist, und wenn nicht, das kontinuierliche Bestimmen der Startadresse des nächsten eingefügten Punktes; wenn ja, das Ersetzen des letzten Parameters des benutzten Speicherblocks durch die Adresse des sequentiellen Speicherblocks (END=BA), das Ersetzen des vorderen Datenframes des Speicherblocks durch den gleichen eingefügten Punkt (PE(BA)=PE(INS_BA), das Ersetzen der nächsten Eingabe des Speicherblocks durch den vorbestimmten Wert (NE(BA)=FFF) und das Ersetzen der nächsten Eingabe des eingefügten Punktes durch die Adresse des sequentiellen Speicherblocks (NE(BA_INS)=BA); und nach dem Durchsuchen des letzten Speicherblocks, das Etablieren der benutzten Translationstabelle gemäß der Aufzeichnung der Ersetzung der Werte.
  9. Das Verfahren gemäß Anspruch 1, wenn das System einen Lesebefehl überträgt, umfasst ferner folgendes: das Suchen einer Adresse, die von den Daten des Speicherblocks gespiegelt wird, welcher dem Lesebefehl gemäß der Translationstabelle entspricht; und das Bestimmen, ob die gespiegelte Adresse erhalten wurde, und wenn ja, das Lesen des Datenframes der gespiegelten Adresse und das Dekomprimieren und Übertragen der Originaldaten zum System zurück; wenn nein, das Übertragen des vorbestimmten Datenframes zum System.
  10. Das Verfahren gemäß Anspruch 1, wenn das System einen Schreibbefehl überträgt, umfasst ferner folgendes: das Suchen einer Adresse, die von den Daten des Speicherblocks gespiegelt wird, welcher dem Lesebefehl gemäß der Translationstabelle entspricht; das Bestimmen, ob die gespiegelte Adresse erhalten wurde, und wenn ja, das Lesen des Datenframes der gespiegelten Adresse zum Dekomprimieren, und das Aktualisieren des Datenframes, der den vom System übertragenen Daten entspricht; das Löschen der Daten in dem Datenframe der gespiegelten Adresse und das Speichern des aktualisierten Datenframes in einem unbenutzten Speicherblock; und das Aktualisieren der Translationstabelle.
  11. Das Verfahren gemäß Anspruch 10, wenn bestimmt wird, ob die gespiegelte Adresse erhalten wurde, und wenn nein, das Errichten eines Datenframes, der den Daten entspricht, die das System schreiben will, und das Speichern in einem unbenutzten Speicherblock und das Aktualisieren der Translationstabelle.
  12. Das Verfahren gemäß Anspruch 11, wenn sich die Startadresse und die Länge der vom System übertragenen Daten außerhalb des Datenframes befinden, wobei das System die Daten komprimiert, und das Aktualisieren der benutzten Translationstabelle und der Startadresse.
  13. Das Verfahren gemäß Anspruch 11, wenn sich die Startadresse der Daten außerhalb des Datenframes befindet, das Anpassen und Komprimieren der Länge der Daten und das Aktualisieren der benutzten Translationstabelle und der Startadresse.
  14. Das Verfahren gemäß Anspruch 11, wenn sich die Startadresse und die Länge der Daten innerhalb des Datenframes befinden, wobei das System die Daten dann dekomprimiert und die dekomprimierten Daten und die Daten mit Rücksicht auf den Schreibbefehl re-komprimiert, um einen Datenframe zu bilden, und die benutzte Translationstabelle, die Startadresse und die unbenutzte Translationstabelle aktualisiert.
  15. Das Verfahren gemäß Anspruch 11, wenn sich die Länge der Daten außerhalb des Datenframes befindet, das Anpassen der Länge und das Dekomprimieren der Daten, das Re-Komprimieren der dekomprimierten Daten und der Daten mit Rücksicht auf den Schreibbefehl, um einen Datenframe zu bilden, und das Aktualisieren der benutzten Translationstabelle, der Startadresse und der unbenutzten Translationstabelle.
  16. Das Verfahren gemäß Anspruch 11, wenn sich die Startadresse und die Länge der Daten nicht nur außerhalb sondern auch hinter dem Datenframe befinden, wobei dann das System die Daten komprimiert, um erneut einen weiteren Datenframe zu bilden, und aktualisiert die benutzte Translationstabelle und die unbenutzte Translationstabelle.
  17. Ein Siliziumspeichermedium, das Daten in Verbindung mit einem System liest und schreibt, das folgendes umfasst: einen Speicher mit einer Vielzahl von Speicherblöcken und jeder Speicherblock besitzt eine Vielzahl von Datenframes; und eine Steuereinheit, die ferner folgendes umfasst: eine Systemschnittstelle, die als ein Schnittstellenkanal zwischen dem System und der Steuereinheit dient; einen ersten Systemdatenpuffer, der temporäre Daten speichert; einen Mikroprozessor, der den Lese-, Schreib- und Löschprozess ausführt; einen ersten Speicherdatenpuffer, der temporäre Daten speichert; und eine Speicherschnittstelle, die als ein Schnittstellenkanal zwischen der Steuereinheit und der Vielzahl von Speichern dient.
  18. Das Siliziumspeichermedium gemäß Anspruch 17, wobei die Steuereinheit ferner ein Datenkomprimierungs-/Dekomprimierungsmodul umfasst.
  19. Das Siliziumspeichermedium gemäß Anspruch 17, wobei die Steuereinheit ferner einen zweiten Systemdatenpuffer und einen zweiten Speicherdatenpuffer zum temporären Speichern von Daten zwischen dem Datenkomprimierungs-/Dekomprimierungsmodul und der Systemschnittstelle bzw. der Speicherschnittstelle umfasst.
DE102004059750A 2004-05-06 2004-12-11 Siliziumspeichermedium, Steuereinheit und Steuerverfahren hiervon und ein auf einem Datenframe basierendes Speichermedium Ceased DE102004059750A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW93112722 2004-05-06
TW093112722A TWI233616B (en) 2004-05-06 2004-05-06 Silicon storage media and controller thereof, controlling method thereof, and data frame based storage media

Publications (1)

Publication Number Publication Date
DE102004059750A1 true DE102004059750A1 (de) 2005-11-24

Family

ID=35220076

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004059750A Ceased DE102004059750A1 (de) 2004-05-06 2004-12-11 Siliziumspeichermedium, Steuereinheit und Steuerverfahren hiervon und ein auf einem Datenframe basierendes Speichermedium

Country Status (4)

Country Link
US (1) US20050249008A1 (de)
JP (1) JP2005322209A (de)
DE (1) DE102004059750A1 (de)
TW (1) TWI233616B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429375B1 (en) * 2006-06-16 2013-04-23 Synopsys, Inc. Memory management unit (MMU) to make only one time programmable (OTP) memory appear multiple times programmable (MTP)
US9553604B2 (en) 2009-03-30 2017-01-24 Nec Corporation Information processing system, information compression device, information decompression device, information processing method, and program
US20120191943A1 (en) * 2009-10-13 2012-07-26 Rambus Inc. Dynamic protocol for communicating command and address information
CN103729315B (zh) 2012-10-15 2016-12-21 华为技术有限公司 一种地址压缩、解压缩的方法、压缩器和解压缩器
CN105426317B (zh) * 2015-10-29 2018-10-23 浙江卓奥科技股份有限公司 一种往Flash中存放用户数据的存储方法及读取方法
US9946462B1 (en) * 2016-02-15 2018-04-17 Seagate Technology Llc Address mapping table compression
US9952771B1 (en) * 2016-03-31 2018-04-24 EMC IP Holding Company LLC Method and system for choosing an optimal compression algorithm
KR102659832B1 (ko) * 2019-03-05 2024-04-22 삼성전자주식회사 데이터 저장 장치 및 시스템

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61281636A (ja) * 1985-05-29 1986-12-12 Kenwood Corp 時分割多重伝送方式
JPH0736373A (ja) * 1993-07-16 1995-02-07 Omron Corp プログラマブルコントローラ
US5655113A (en) * 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
JPH0879672A (ja) * 1994-09-02 1996-03-22 Sanyo Electric Co Ltd 静止画再生装置
JP3123366B2 (ja) * 1994-09-30 2001-01-09 日本ビクター株式会社 情報記憶管理装置
JP3593818B2 (ja) * 1996-09-30 2004-11-24 株式会社日立製作所 非接触icカード
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6477143B1 (en) * 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
JP4240610B2 (ja) * 1998-11-27 2009-03-18 株式会社日立製作所 計算機システム
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
JP2001043092A (ja) * 1999-07-30 2001-02-16 Nec Ic Microcomput Syst Ltd タスク間メッセージ通信方法
US20030185301A1 (en) * 2002-04-02 2003-10-02 Abrams Thomas Algie Video appliance
US7373500B2 (en) * 2003-04-15 2008-05-13 Sun Microsystems, Inc. Secure network processing
US20040210663A1 (en) * 2003-04-15 2004-10-21 Paul Phillips Object-aware transport-layer network processing engine

Also Published As

Publication number Publication date
TW200537497A (en) 2005-11-16
US20050249008A1 (en) 2005-11-10
JP2005322209A (ja) 2005-11-17
TWI233616B (en) 2005-06-01

Similar Documents

Publication Publication Date Title
DE112010003650B4 (de) Container-Markierungsschema zum Verringern einer Schreibverstärkung bei Halbleiter-Einheiten
DE3586956T2 (de) Speicherzuordnungsverfahren fuer rechnersysteme.
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE69936246T2 (de) Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren
DE112014005521B4 (de) Speichermodul und Verfahren zum Verwalten des Abbildens logischer Adressen auf physikalische Adressen
DE69718543T2 (de) Ebenenkompression mit Löchern in Dateiensystemen
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE69801112T2 (de) Dateispeicherverwaltungssystem für schnappschusskopieroperationen
DE69635962T2 (de) Flash-Speicher-Massenspeichersystem und Verfahren dafür
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE69031494T2 (de) Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien
DE112018004256T5 (de) Redundanzcodierstreifen basierend auf internen adressen von speichervorrichtungen
DE102015012621A1 (de) Offline-Deduplikation für Halbleiterspeichervorrichtungen
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE19623853A1 (de) Halbleiter-Speichervorrichtung
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE10334423A1 (de) Übertragung von Daten in auswählbaren Übertragungsmodi
DE19537305A1 (de) Halbleiter-Platteneinrichtung und Speicherverwaltungsmethode
DE102007006307A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
DE112010004573T5 (de) System und verfahren zur optimierten wiedernutzbarmachungsverarbeitung in einem virtuellen bandbibliotheksystem
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/00 AFI20051017BHDE

8131 Rejection