DE69936246T2 - Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren - Google Patents

Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren Download PDF

Info

Publication number
DE69936246T2
DE69936246T2 DE69936246T DE69936246T DE69936246T2 DE 69936246 T2 DE69936246 T2 DE 69936246T2 DE 69936246 T DE69936246 T DE 69936246T DE 69936246 T DE69936246 T DE 69936246T DE 69936246 T2 DE69936246 T2 DE 69936246T2
Authority
DE
Germany
Prior art keywords
data
logical
block
memory
physical
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.)
Expired - Lifetime
Application number
DE69936246T
Other languages
English (en)
Other versions
DE69936246D1 (de
Inventor
Kenichi Shinagawa-ku Iida
Noriyuki Shinagawa-ku Koga
Eiichi Shinagawa-ku Yamada
Mari Shinagawa-ku Sugiura
Shuji Shinagawa-ku Obayashi
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE69936246D1 publication Critical patent/DE69936246D1/de
Publication of DE69936246T2 publication Critical patent/DE69936246T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/322Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • G11B2220/61Solid state media wherein solid state memory is used for storing A/V content

Description

  • Die vorliegende Erfindung bezieht sich auf einen nichtflüchtigen Speicher, der eine Steuertabelle für logische/physikalische Adressen zur Steuerung des nichtflüchtigen Speichers enthält, in welchem Daten diskret aufgezeichnet werden bzw. sind. Der betreffende nichtflüchtige Speicher besteht aus einer Vielzahl von Blöcken, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine feste Länge besitzt und als Daten-Lese-/Schreibeinheit dient. Die vorliegende Erfindung bezieht sich ferner auf eine Aufzeichnungsvorrichtung sowie auf ein Aufzeichnungsverfahren zur Erzeugung von Steuerdaten, die in der Steuertabelle für logische/physikalische Adressen katalogisiert sind und die bei der Vornahme eines Zugriffs auf den nichtflüchtigen Speicher benutzt werden.
  • In den vergangenen Jahren ist eine kompakte Speichervorrichtung (oder ein kompaktes Speichermedium) entwickelt worden, welches eine Festspeichervorrichtung, wie einen Flash-Speicher enthält und welches in verschiedenen Arten von Geräten, wie einer Videokamera, untergebracht ist, um Video-, Audio- und Computerdaten zu speichern.
  • Da eine derartige Speichervorrichtung kompakter ist als das typische Speichermedium, wie eine 3,5-Zoll-Floppydisk bzw. Diskette und eine Ansteuereinrichtung von geringer Größe benötigt, kann die Vorrichtung in geeigneter Weise in einem Gerät, wie einem Aufzeichnungsgerät und einem tragbaren Computergerät untergebracht werden.
  • Nebenbei sei angemerkt, dass ein Flash-Speicher eine Eigenschaft zeigt, gemäß der dessen Lebensdauer durch die Anzahl von wiederholten Schreib- und Löschoperationen beeinflusst wird. Im Hinblick auf ein Dateisystem zum Schreiben und Lesen von Daten in eine bzw. aus einer Speichervorrichtung, die einen Flash-Speicher, wie oben beschriebenen, verwendet, ist das Konzept von logischen und physikalischen Adressen eingeführt worden. Bei einem mit diesem eingeführten Konzept erfolgten Aufbau werden Operationen zum Schreiben und Auslesen von Daten in die bzw. aus der Speichervorrichtung unter Heranziehung von logischen und physikalischen Adressen ausgeführt.
  • Bei einem solchen in einem System angewandten Aufbau ist es zur Vornahme eines Zugriffs auf die durch einen Flash-Speicher in dem System ausgeführte Speichervorrichtung bei einer Operation zum Schreiben oder Lesen von Daten in den bzw. aus dem Speicher notwendig, eine Tabelle bereitzustellen, welche Beziehungen zwischen logischen Adressen und physikalischen Adressen zeigt. Eine derartige Tabelle wird nachstehend als Steuertabelle für logische/physikalische Adressen bezeichnet.
  • Im konventionellen System ist eine Steuertabelle für logische/physikalische Adressen im Hauptgerät bzw. in der Hauptvorrichtung vorgesehen, das bzw. die die Speichervorrichtung verwendet.
  • Eine große Steuertabelle für logische/physikalische Adressen weist übrigens eine typische Datengröße von etwa 16KB auf, und zwar in Abhängigkeit von der Speicherkapazität des Flash-Speichers. Andererseits beträgt die Speicherkapazität eines RAM-Speichers (das ist ein Schreib-Lese-Speicher mit wahlfreiem Zugriff), der in einem 1-Chip-Mikroprozessor eingebettet ist, welcher in der Hauptvorrichtung verwendet wird, höchstens lediglich mehrere 10KB. Falls die Steuertabelle für logische/physikalische Adressen in dem RAM-Speicher enthalten ist, der in einem in der Hauptvorrichtung verwendeten Mikroprozessor eingebettet ist, dann wird der meiste Speicherbereich des RAM-Speichers durch die Steuertabelle für logische/physikalische Adressen belegt. Damit ist es ziemlich schwierig, die Steuertabelle für logische/physikalische Adressen in dem RAM-Speicher zu speichern, der in dem Mikroprozessor eingebettet ist, ohne die Verarbeitungsleistung des Mikroprozessors zu opfern. Überdies kann ein billiger Mikroprozessor eine RAM-Kapazität von lediglich etwa 10KB aufweisen. In diesem Fall ist es unmöglich, die Steuertabelle für logische/physikalische Adressen in dem eingebetteten RAM-Speicher eines derartigen Mikroprozessors zu speichern, und zwar aufgrund der Tatsache, dass die Größe der Steuertabelle für logische/physikalische Adressen größer ist als die RAM-Kapazität.
  • Um die obigen Probleme zu lösen, ist die Hauptvorrichtung, die eine durch einen Flash-Speicher aufgebaute Speichervorrichtung verwendet, mit einem externen RAM-Speicher versehen, der zur Speicherung einer Steuertabelle für logische/physikalische Adressen genutzt werden kann.
  • Ein extern bereitgestellter RAM-Speicher ruft jedoch Probleme durch steigende Kosten und erhöhten Leistungsverbrauch infolge von zusätzlicher Leistung hervor, die zur Steuerung des externen RAM-Speichers benötigt wird. Insbesondere dann, wenn die Hauptvorrichtung ein tragbares Gerät ist, welches batterie- bzw. akkumulatorgespeist ist, ruft das Problem des erhöhten Leistungsverbrauchs ein weiteres ernsthaftes Problem hervor, welches die Lebensdauer der Batterie bzw. des Akkumulators beeinflusst.
  • Darüber hinaus werden Informationen, die in der in dem externen RAM-Speicher gespeicherten Steuertabelle für logische/physikalische Adressen aufgezeichnet sind, gelöscht, wenn die betreffende Speichervorrichtung von der Hauptvorrichtung weggenommen wird. Informationen werden in einer Steuertabelle für logische/physikalische Adressen normalerweise jedes Mal aufgezeichnet, wenn die Speichervorrichtung an die Hauptvorrichtung angebracht ist.
  • Bei der Erzeugung einer Steuertabelle für logische/physikalische Adressen überprüft der Mikroprozessor des Hauptgeräts den internen Zustand der an der Hauptvorrichtung angebrachten Speichervorrichtung und bildet Informationen in der Steuertabelle für logische/physikalische Adressen als Teil eines Dateiverwaltungs- bzw. Dateimanagementsystems. Sodann wird die Steuertabelle für logische/physikalische Adressen in dem externen RAM-Speicher gespeichert.
  • Die Zeit, die für die Ausführung einer derartigen Vorbereitungsverarbeitung gebraucht wird, beträgt zumindest etwa mehrere Sekunden. Im Falle eines billigen Mikroprozessors mit einer geringen Verarbeitungsfähigkeit ist eine Verarbeitungszeit von einer Dauer eines Mehrfachen dieser mehreren Sekunden erforderlich. Da ein Zugriff für das Schreiben oder Lesen von Daten in die oder aus der Speichervorrichtung lediglich nach Abschluss der Vorbereitungsverarbeitung erfolgen kann, erscheint die Dauer, die für die Ausführung der Vorbereitungsverarbeitung gebraucht wird, für den Benutzer beispielsweise als Wartezeit. Falls der Gebrauch des Geräts in einer Weise, die der Benutzer mag, in Betracht gezogen wird, ist die Zeitspanne, die für die Ausführung einer derartigen Vorbereitungsverarbeitung gebraucht wird, so stark wie möglich zu verkürzen. In EP 0 887 732 A1 ist die Anwendung eines Flash-Speichers zum Vergleichen von gesammelten und verteilten Managementdaten unter Heranziehung von logischen Adressen der Daten und einer Kettungsinformation beschrieben, um zu bestimmen, ob Fehler in den Daten vorhanden sind, und um redundante Daten zu nutzen, falls Fehler ermittelt werden.
  • In GB 2 251 323 A ist ein nichtflüchtiger Halbleiterspeicher mit einer Lese-/Schreibeinheit und einer Daten-Detektiereinheit sowie mit einer Abbildungstabelle zum Abbilden von physikalischen Adressen auf logische Adressen beschrieben; die Merkmale dieses Dokuments bilden den Oberbegriff der unabhängigen Ansprüche.
  • In US 5,404,485 ist die Abbildung von physikalischen Adressen auf logische Adressen innerhalb eines Flash-Speichers beschrieben.
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, einen nichtflüchtigen Speicher mit einer Steuertabelle für logische/physikalische Adressen sowie eine Aufzeichnungsvorrichtung und ein Aufzeichnungsverfahren zur Erzeugung von Steuerdaten bereitzustellen, die in der Steuertabelle für logische/physikalische Adressen katalogisiert werden bzw. sind und bei der Vornahme eines Zugriffs auf den nichtflüchtigen Speicher herangezogen werden, wobei der nichtflüchtige Speicher einem Mikroprozessor, der lediglich einen kleinen Arbeitsspeicher aufweist, ermöglicht, die Steuertabelle für logische/physikalische Adressen bei einem Zugriff auf den nichtflüchtigen Speicher zu nutzen.
  • Ein nichtflüchtiger Speicher, der eine Vielzahl von Blöcken aufweist, deren jeder als Datenlöscheinheit dient, und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine feste Länge besitzt und als Daten-Lese-/-Schreibeinheit dient, umfasst einen Speicherbereich des betreffenden nichtflüchtigen Speichers, wobei der betreffende nichtflüchtige Speicher einen Hauptdatenbereich, der zumindest einen der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten aufweist, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Speicherdaten voneinander und für die Speicherung der Hauptdaten benutzt wird, und einen Steuerdatenbereich umfasst, der irgendeinen anderen Block der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten aufweist, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten benutzt wird, welche Beziehungen der Zuordnung von logischen Adressen zu physikalischen Adressen repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet sind, die in die betreffenden Blöcke geschrieben sind, und wobei die betreffenden physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
  • Der betreffende nichtflüchtige Speicher ist dadurch gekennzeichnet, dass die physikalische Adresse eines als nicht benutzter Block behandelten Blockes einer logischen Adresse zugehörig ist, die dem betreffenden nichtflüchtigen Block zugewiesen ist.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist eine Speichervorrichtung zur Speicherung von Daten in einem nichtflüchtigen Speicher bereitgestellt, der eine Vielzahl von Blöcken aufweist, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine feste Länge besitzt und als Daten-Lese-/-Schreibeinheit dient, wobei ein Speicherbereich des nichtflüchtigen Speichers einen Hauptdatenbereich, der zumindest einen Block der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten aufweist, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Speicherdaten voneinander und für die Speicherung der Hauptdaten genutzt wird, und einen Steuerdatenbereich umfasst, der irgendeinen anderen Block der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten benutzt wird, welche Beziehungen in der Zuordnung von logischen Adressen zu physikalischen Adressen repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet sind, die in die betreffenden Blöcke geschrieben sind, und wobei die betreffenden physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
  • Diese Speichervorrichtung ist dadurch gekennzeichnet, dass der physikalischen Adresse eines als nicht benutzter Block behandelten Blockes eine logische Adresse zugehörig ist, die dem betreffenden nicht benutzten Block zugewiesen ist, dass die betreffende Speichervorrichtung eine Attribut-Bestimmungseinrichtung zur Bestimmung, ob in den betreffenden nichtflüchtigen Speicher zu schreibende Daten Hauptdaten oder Steuerdaten sind, eine Identifikator-Erzeugungseinrichtung zur Erzeugung eines Identifikators, der entsprechend einem von der genannten Attribut-Bestimmungseinrichtung abgegebenen Bestimmungsergebnis angibt, ob die in dem betreffenden nichtflüchtigen Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind, und eine Speichersteuereinrichtung zum Zusammensetzen der in den betreffenden nichtflüchtigen Speicher zu schreibenden Daten und des von der Identifikator-Erzeugungseinrichtung abgegebenen Identifikators sowie zum Einschreiben der zusammengesetzten Daten in den betreffenden nichtflüchtigen Speicher umfasst.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Speicherungsverfahren zum Speichern von Daten in einem nichtflüchtigen Speicher bereitgestellt, der eine Vielzahl von Blöcken aufweist, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten aufweist, deren jede eine feste Länge besitzt und als Daten-Lese-/-Schreibeinheit dient; dabei umfasst ein Speicherbereich des betreffenden nichtflüchtigen Speichers einen Hauptdatenbereich, der zumindest einen der genannten Blöcke mit einer Vielzahl der benachbarten Seiten aufweist, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Hauptdaten genutzt wird, und einen Steuerdatenbereich, der irgendeinen anderen Block der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten enthält, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten genutzt wird, welche Beziehungen in der Zuordnung von logischen Adressen zu physikalischen Adressen repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugewiesen sind, die in die betreffenden Blöcke geschrieben sind, und wobei die genannten physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
  • Dieses Speicherungsverfahren ist dadurch gekennzeichnet, dass die physikalische Adresse eines als nicht benutzter Block behandelten Blockes einer dem betreffenden nicht benutzten Block zugehörigen bzw. zugewiesenen logischen Adresse zugeordnet wird, wobei das betreffende Speicherungsverfahren einen Attribut-Bestimmungsschritt zur Bestimmung, ob in den betreffenden nichtflüchtigen Speicher zu schreibende Daten Hauptdaten oder Steuerdaten sind, einen Identifikator-Erzeugungsschritt zur Erzeugung eines Identifikators, der entsprechend einem bei dem betreffenden Attribut-Bestimmungsschritt abgegebenen Bestimmungsergebnis angibt, ob die in den nichtflüchtigen Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind, und einen Schritt zum Zusammensetzen der in den betreffenden nichtflüchtigen Speicher zu schreibenden Daten und des bei dem Identifikator-Erzeugungsschritt abgegebenen Identifikators sowie zum Einschreiben der zusammengesetzten Daten in den nichtflüchtigen Speicher umfasst.
  • Unter Bezugnahme auf die beigefügten Zeichnungen werden nunmehr Ausführungsformen der Erfindung lediglich beispielhaft beschrieben. In den Zeichnungen zeigen:
  • 1 in einem Blockdiagramm den Aufbau eines konventionellen Systems mit einer Hauptvorrichtung und einem flachen Speicher zum Zwecke eines Vergleichs mit einer Ausführungsform der vorliegenden Erfindung,
  • 2 ein erläuterndes Diagramm, in welchem konzeptionell ein Interface zwischen einem in einer Hauptvorrichtung verwendeten Mikroprozessor und dem flachen Speicher in dem konventionellen System zum Zwecke eines Vergleichs mit der Ausführungsform veranschaulicht ist,
  • 3 ein Blockdiagramm, welches den Aufbau eines Systems mit einer Hauptvorrichtung und dem flachen Speicher in der Realisierung durch die Ausführungsform der vorliegenden Erfindung veranschaulicht,
  • 4 ein erläuterndes Diagramm, in welchem konzeptionell ein Interface zwischen einem in der Hauptvorrichtung verwendeten Mikroprozessor und dem flachen Speicher bei der Ausführungsform veranschaulicht ist,
  • 5A ein Diagramm, in welchem eine Vorderseite der äußeren Form des flachen Speichers veranschaulicht ist,
  • 5B ein Diagramm, welches eine Draufsicht auf die äußere Form des flachen Speichers veranschaulicht,
  • 5C ein Diagramm, in welchem eine Seitenansicht der äußeren Form des flachen Speichers veranschaulicht ist,
  • 5D ein Diagramm, in welchem eine Unteransicht der äußeren Form des flachen Speichers veranschaulicht ist,
  • 6 ein erläuterndes Diagramm, in welchem eine Verarbeitungshierarchie eines durch die Ausführungsform bereitgestellten Dateisystems veranschaulicht ist,
  • 7A ein erläuterndes Diagramm, in welchem ein Segment in einer physikalischen Datenstruktur eines Flash-Speichers veranschaulicht ist,
  • 7B ein erläuterndes Diagramm, in welchem ein Start- bzw. Boot-Block in der physikalischen Datenstruktur des Flash-Speichers veranschaulicht ist,
  • 7C ein erläuterndes Diagramm, in welchem eine Sicherung eines Boot-Blocks in der physikalischen Datenstruktur des Flash-Speichers veranschaulicht ist,
  • 7D ein erläuterndes Diagramm, in welchem ein Block in der physikalischen Datenstruktur des Flash-Speichers veranschaulicht ist,
  • 7E ein erläuterndes Diagramm, in welchem eine Seite in der physikalischen Datenstruktur des Flash-Speichers veranschaulicht ist,
  • 7F ein erläuterndes Diagramm, in welchem ein redundanter Bereich der Seite in der physikalischen Datenstruktur des Flash-Speichers veranschaulicht ist,
  • 8 ein erläuterndes Diagramm, in welchem der Inhalt eines Management-Flags veranschaulicht ist,
  • 9A ein erläuterndes Diagramm, in welchem ein Vorverarbeitungszustand bei der Beschreibung des Konzepts der Verarbeitung zur Aktualisierung von Daten in einem Flash-Speicher, eine logische Adresse und eine physikalische Adresse veranschaulicht sind,
  • 9B ein erläuterndes Diagramm, in welchem ein Nachverarbeitungszustand bei der Beschreibung des Konzepts der Verarbeitung veranschaulicht ist, um Daten in einem Flash-Speicher zu aktualisieren, sowie eine logische Adresse und eine physikalische Adresse,
  • 10 ein erläuterndes Diagramm, welches zur konzeptionellen Beschreibung des Konzepts der Verwaltung einer Steuertabelle für logische/physikalische Adressen benutzt wird,
  • 11A ein Diagramm, in welchem die gesamte Datenstruktur der durch diese Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen veranschaulicht ist,
  • 11B ein Diagramm, in welchem eine Datenstruktur eines Segments der durch diese Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen veranschaulicht ist,
  • 12A ein erläuterndes Diagramm, welches zur Beschreibung der Verwaltung von nicht benutzten Blöcken durch Nutzung der durch die Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen herangezogen wird,
  • 12B ein erläuterndes Diagramm, welches zur Beschreibung der Verwaltung von nicht benutzten Blöcken durch Nutzung der Steuertabelle für logische/physikalische Adressen in dem konventionellen System herangezogen wird,
  • 13 ein erläuterndes Diagramm, welches Beziehungen zwischen der Speicherkapazität eines Flash-Speichers, der Anzahl von Blöcken, der Größe eines Blocks, der Größe einer Seite und der Größe der Steuertabelle für logische/physikalische Adressen veranschaulicht,
  • 14A ein erläuterndes Diagramm, welches die physikalische Datenstruktur eines Segments in einem durch die Ausführungsform bereitgestellten Flash-Speicher veranschaulicht,
  • 14B ein erläuterndes Diagramm, welches die physikalische Datenstruktur eines Hauptdatenblockes in dem durch die Ausführungsform bereitgestellten Flash-Speicher veranschaulicht,
  • 14C ein erläuterndes Diagramm, welches die physikalische Datenstruktur eines Steuerdatenblocks in dem durch die Ausführungsform bereitgestellten Flash-Speicher veranschaulicht,
  • 14D ein erläuterndes Diagramm, welches die Struktur der Steuertabelle für logische/physikalische Adressen in dem durch die Ausführungsform bereitgestellten Flash-Speicher veranschaulicht,
  • 15 ein Ablaufdiagramm, in welchem ein Aufzeichnungsverfahren dargestellt ist, welches in einer durch die Ausführungsform realisierten Aufzeichnungsvorrichtung angewandt ist,
  • 16 ein Ablaufdiagramm, in welchem ein Verfahren zur Bestimmung eines zu benutzenden Blocks in einer Operation zum Neuschreiben von Daten und bei der verwandten Verarbeitung dargestellt ist, die in der Steuertabelle für logische/physikalische Adressen in der durch die Ausführungsform realisierten Aufzeichnungsvorrichtung ausgeführt wird,
  • 17 ein Ablaufdiagramm, in welchem ein Verfahren zum Neuschreiben von Hauptdaten bei der durch die Ausführungsform realisierten Aufzeichnungsvorrichtung veranschaulicht ist, und
  • 18 ein Ablaufdiagramm, in welchem ein Verfahren zum Neuschreiben von Steuerdaten in der durch die Ausführungsform realisierten Aufzeichnungsvorrichtung veranschaulicht ist.
  • Nachstehend wird eine Ausführungsform der vorliegenden Erfindung beschrieben. Es sei darauf hingewiesen, dass eine durch die Ausführungsform bereitgestellte Speichervorrichtung ein durch die Ausführungsform bereitgestellter flacher bzw. planarer Speicher mit einer ebenen äußeren Form ist.
  • Die Ausführungsform wird in folgender Reihenfolge beschrieben:
  • 1
    Äußere Form des Speichers,
    2
    Speicherformat
    2-1
    Verarbeitungshierarchie eines Speicher-Dateisystems,
    2-2
    physikalische Datenstruktur,
    2-3
    Konzept von physikalischen und logischen Adressen,
    2-4
    Steuertabelle für logische/physikalische Adressen gemäß der Ausführungsform,
    3
    Systemkonfiguration.
  • 1. Äußere Form des Speichers
  • Die Beschreibung beginnt unter Bezugnahme auf die 5A, 5B, 5C und 5D mit der Planaren bzw. ebenen Form eines flachen Speichers 1, bei dem es sich um eine Speichervorrichtung handelt, die durch eine Ausführungsform der vorliegenden Erfindung bereitgestellt wird.
  • Der flache Speicher 1 ist durch eine Speichervorrichtung realisiert, die in einem ebenen Gehäuse eingeschlossen ist, wie dies in 5A, 5B, 5C und 5D veranschaulicht ist. Die betreffende Speichervorrichtung weist in typischerweise eine bestimmte Speicherkapazität auf. Bei dieser Ausführungsform ist die Speichervorrichtung ein Flash-Speicher.
  • 5A, 5B, 5C und 5D veranschaulichen in Diagrammen eine Draufsicht, eine Vorderansicht, eine Seitenansicht bzw. eine Unteransicht des Gehäuses, welches beispielsweise als Kunststoffformteil mit einer typischen Länge W11 von 60mm und einer typischen Breite W12 von 20mm, wie in 5B veranschaulicht, und einer typischen Höhe W13 von 2,8mm, wie in 5A veranschaulicht, gebildet ist.
  • Die Anschlusseinheit 2, die auf der Oberfläche des Gehäuses gebildet ist, weist neun Elektroden auf, die in einer solchen Art und Weise angeordnet sind, dass sie sich von dem unteren Bereich der Vorderseite zur Unter- bzw. Bodenseite hin erstrecken. Daten werden durch diese Anschlusseinheit 2 in die interne Speichervorrichtung geschrieben oder aus dieser ausgelesen.
  • Ein Einschnitt 3 ist an der oberen linken Ecke in dem die Draufsicht des Gehäuses veranschaulichenden Diagramm gebildet. Der Einschnitt 3 verhindert beispielsweise, dass der flache Speicher 1 in einer falschen Einführrichtung in einen Gehäuseanbringungs-/-abnahmemechanismus eines Laufwerks bzw. einer Steuervorrichtung der Hauptvorrichtung eingeführt wird.
  • An der Unterseite des Gehäuses ist eine wellige Fläche 4 gebildet, um ein Durchrutschen des Gehäuses zu verhindern, was die Benutzerfreundlichkeit des Gehäuses verbessert.
  • Ferner ist an der Unterseite ein Schiebeschalter 5 gebildet, um ein unabsichtliches Löschen von in der internen Speichervorrichtung gespeicherten Daten zu verhindern.
  • 2. Speicherformat
  • 2-1. Verarbeitungshierarchie eines Speicher-Dateisystems
  • Anhand der anschließenden Beschreibung wird ein Format erläutert, welches in dem System angewandt wird, wobei der flache Speicher 1 als Aufzeichnungsträger bzw. – medium verwendet wird.
  • 6 veranschaulicht in einem erläuternden Diagramm eine Dateisystem-Verarbeitungshierarchie des Systems, in welchem der flache Speicher 1 als Aufzeichnungsträger verwendet wird.
  • Wie in 6 gezeigt, umfasst die Dateisystem-Verarbeitungshierarchie an der Oberseite eine Anwendungsverarbeitungsschicht, gefolgt aufeinanderfolgend von einer Datei-Verwaltungs-Verarbeitungsschicht, einer logischen Adressenschicht, einer physikalischen Adressenschicht und einer Flash-Speicher-Zugriffsschicht an der Unterseite der Hierarchie. Die Datei-Verwaltungs-Verarbeitungsschicht in der betreffenden Hierarchie wird FAT (Datei-Zuweisungstabelle) genannt. Wie aus 6 auch ersichtlich ist, führt das Dateisystem gemäß der Ausführungsform das Konzept der logischen und physikalischen Adressen ein, was später beschrieben wird.
  • 2-2. Physikalische Datenstruktur
  • 7A bis 7F veranschaulichen in Diagrammen eine physikalische Datenstruktur eines Flash-Speichers, der als Speichervorrichtung des flachen Speichers 1 verwendet wird.
  • Der Speicherbereich des Flash-Speichers ist in Segmente unterteilt, d.h. in Grund-Dateneinheiten, die jeweils eine feste Länge aufweisen. Die Größe eines Segments ist mit 4MB oder 8MB vorgeschrieben. Somit variiert die Anzahl der einen Flash-Speicher bildenden Segmente in Abhängigkeit von der Kapazität des Flash-Speichers.
  • Wie in 7A veranschaulicht, ist ein Segment weiter in Blöcke unterteilt, deren jeder eine Dateneinheit darstellt, die eine vorgeschriebene Länge von 8KB oder 16KB aufweist. Grundsätzlich ist ein Segment in 512 Blöcke unterteilt, nämlich in Blöcke 0 bis n, wobei n=511 ist, wie dies in 7A veranschaulicht ist. Einem Flash-Speicher ist indessen erlaubt, einen defekten Bereich aufzuweisen, der Blöcke bis zu einer bestimmten Anzahl umfasst. Ein defekter Bereich ist ein beschädigter Bereich, in den Daten nicht eingeschrieben werden können. Somit ist die Anzahl der effektiven Blöcke, in die Daten tatsächlich eingeschrieben werden können, geringer als 512, d.h. tatsächlich ist n kleiner als 511.
  • Wie in 7A veranschaulicht, werden zwei Blöcke am Kopfende der Blöcke 0 bis n, nämlich die Blöcke 0 und 1, Boot-Blöcke genannt. Tatsächlich werden jedoch die beiden Blöcke am Kopfende der effektiven Blöcke als Boot-Blöcke genutzt. Somit besteht keine Gewähr dafür, dass Boot-Blöcke stets die Blöcke 0 und 1 sind.
  • Die übrigen Blöcke stellen Benutzerblöcke zur Speicherung von Benutzerdaten dar.
  • Wie in 7D veranschaulicht, ist ein Block weiter in Seiten 0 bis m unterteilt. Wie in 7E gezeigt, umfasst eine Seite einen Datenbereich aus 512 Bytes sowie einen redundanten Bereich bzw. Teil aus 16 Bytes, was eine feste Größe von 528 Bytes ergibt. Es sei darauf hingewiesen, dass die Struktur des redundanten Bereiches später unter Bezugnahme auf 7F erläutert wird.
  • Die Anzahl der Seiten in einem Block beträgt 16 bei einer Blockgröße von 8KB, und sie beträgt 32 für eine Blockgröße von 16KB.
  • Die in 7D gezeigte Blockstruktur und die in 7E gezeigte Seitenstruktur trifft für die Boot-Blöcke und die Benutzerblöcke zu.
  • Daten werden in Seiteneinheiten in einen Flash-Speicher geschrieben und aus diesem ausgelesen. Daten werden jedoch aus einem Flash-Speicher in Blockeinheiten gelöscht. Ein Flash-Speicher ist dadurch gekennzeichnet, dass Daten nicht in einen Bereich geschrieben werden können, in welchem bereits zuvor andere Daten eingeschrieben worden sind. Somit sind neue oder Ersatzdaten in eine Seite zu schreiben, die durch das Dateiverwaltungssystem als nicht benutzter Bereich angezeigt wird. Das Dateiverwaltungssystem ändert den Status eines Blocks vom „benutzten" Status in einen „nicht benutzten" Status, indem lediglich bestimmte Daten für den Block in der Tabelle geändert werden, die den Status von Blöcken steuert, und zwar in einen neuen Wert, der angibt, dass der Block ein nicht benutzter Block ist, ohne dass der Inhalt des Blocks gelöscht wird. Aus diesem Grund ist es vor dem Einschreiben von Daten in diesen nicht benutzten Block notwendig, dessen Inhalt zu löschen. Da Inhalte, wie zuvor beschrieben, lediglich in Blockeinheiten gelöscht werden können, werden neue oder Ersatzdaten tatsächlich in den Flash-Speicher in Blockeinheiten anstatt in Seiteneinheiten geschrieben.
  • Wie in 7B veranschaulicht, ist auf der Seite 0 des ersten Boot-Blocks ein Header gespeichert. Auf der Seite 1 ist eine Information gespeichert, die eine Adresse angibt, welche die Position des Beginns von schlechten bzw. fehlerhaften Daten anzeigt. Auf der Seite 2 ist eine Information gespeichert, die als CIS/IDI-Information bezeichnet ist (das ist eine Karteninformationsstruktur-/Identifizierungs-Laufwerksinformation).
  • Wie in 7C veranschaulicht, wird der zweite Boot-Block als Sicherungsbereich genutzt.
  • Der in 7E dargestellte redundante 16-Byte-Bereich weist eine Struktur auf, wie sie in 7F veranschaulicht ist.
  • Wie in 7F gezeigt, stellen die ersten drei Bytes des redundanten Bereiches, nämlich die Bytes 0 bis 2, einen Überschreibbereich dar, in welchem in Abhängigkeit von der Aktualisierung des Inhalts des Datenbereichs neu geschrieben werden kann. Genauer gesagt wird das Byte 0 zur Speicherung des Blockstatus herangezogen, und das Byte 1 wird zur Speicherung des Datenstatus (Block-Flag-Daten) benutzt. Eine bestimmte Anzahl von höherwertigen Bits im Byte 2 wird zur Speicherung eines Aktualisierungsstatus (Aktualisierungs-Status) genutzt.
  • Grundsätzlich liegen die Inhalte der Bytes 3 bis 15 entsprechend den auf der Seite gespeicherten Daten fest. Dies bedeutet, dass diese Bytes sich in einem Bereich zur Speicherung von Informationen befinden, die nicht umgeschrieben werden können.
  • Genauer gesagt ist ein Verwaltungs- bzw. Management-Flag (Block-Info) im Byte 3 gespeichert, und eine logische Adresse (Logik-Adresse) ist in einem Bereich gespeichert, der den folgenden 2-Byte-Bereich, nämlich die Bytes 4 und 5 umfasst.
  • Der folgende 5-Byte-Bereich, der die Bytes 6 bis 10 umfasst, wird als Format-Reservebereich genutzt. Der folgende 2-Byte-Bereich, der die Bytes 11 und 12 umfasst, wird zur Speicherung einer verteilten Information ECC (das ist ein Fehlerkorrekturcode) zur Fehlerkorrektur für die Formatreserve genutzt.
  • Die übrigen Bytes 13 bis 15 werden zur Speicherung von ECC-Daten für eine Fehlerkorrektur bezüglich der in dem in 7E gezeigten Datenbereich gespeicherten Daten genutzt.
  • Wie in 8 veranschaulicht, sind die Inhalte der Bits 7 bis 0 des in dem Byte 3 des in 7F veranschaulichten redundanten Bereichs gespeicherten Management-Flags individuell festgelegt.
  • Die Bits 7, 6, 1 und 0 sind nicht festgelegte reservierte Bits.
  • Das Bit 5 enthält ein Flag, welches angibt, ob eine Zulässigkeit für einen Zugriff auf den Block gültig oder ungültig ist. Genauer gesagt gibt ein Wert von 1 an, dass ein Zugriff auf den Block frei vorgenommen werden kann, während ein Wert von 0 angibt, dass der Block lese-geschützt ist. Das Bit 4 enthält ein ein Kopieren unterbindendes Spezifikations-Flag, dessen Wert 1 bedeutet, dass eine Kopieroperation zugelassen ist, während ein Wert von 0 bedeutet, dass eine Kopieroperation verboten ist.
  • Das Bit 3 stellt ein Steuertabellen-Flag dar, welches angibt, ob es sich bei dem Block um einen Block zur Speicherung einer später zu beschreibenden Steuertabelle für logische/physikalische Adressen handelt oder nicht. Genauer gesagt gibt ein Wert von 0 im Bit 3 an, dass der Block ein Block zur Speicherung einer Steuertabelle für logische/physikalische Adressen ist. Bin im Bit 3 festgelegter Wert von 1 gibt andererseits eine Ablehnung an, d.h., dass der Block nicht einen Block zur Speicherung einer Steuertabelle für logische/physikalische Adressen darstellt.
  • Das Bit 2 ist ein System-Flag. Ein Wert von 1 gibt an, dass der Block ein Benutzerblock ist, während ein Wert von 0 angibt, dass der Block ein Boot-Block ist.
  • Anschließend wird unter Bezugnahme auf 13 eine Beziehung zwischen der Speicherkapazität eines Flash-Speichers und der Anzahl von Blöcken oder der Anzahl von Segmenten erläutert.
  • Wie in der betreffenden Zeichnungsfigur veranschaulicht, ist die Speicherkapazität des Flash-Speichers des flachen Speichers 1 vorgeschrieben mit 4MB, 8MB, 16MB, 32MB, 64MB oder 128MB.
  • Im Falle der minimalen Speicherkapazität von 4MB ist die Blockgröße mit 8KB vorgeschrieben, und die Anzahl der Blöcke beträgt 512. Dies bedeutet, dass die Speicherkapazität von 4MB gerade gleich der Größe eines Segments ist. Ein flacher Speicher 1 mit einem Flash-Speicher, der eine Speicherkapazität von 8MB besitzt, umfasst 1024 Blöcke, deren jeder eine vorgeschriebene Größe von 8KB aufweist, wie dies oben beschrieben worden ist. Die 1024 Blöcke stellen zwei Segmente dar. Überdies umfasst, wie oben beschrieben, ein 8KB-Block 16 Seiten.
  • Im Falle eines flachen Speichers 1 mit einem Flash-Speicher, der eine Speicherkapazität von 16MB besitzt, kann die Größe eines Blocks indessen 8KB oder 16KB betragen. Hierbei kann der flache Speicher 1 somit 2048 8KB-Blöcke (oder vier Segmente) oder 1024 16KB-Blöcke (oder zwei Segmente) umfassen. Ein 16KB-Block umfasst 32 Seiten.
  • Im Falle eines flachen Speichers 1 mit einem Flash-Speicher, der eine Speicherkapazität von 32MB, 64MB oder 128MB aufweist, beträgt die Größe eines Blocks in vorgeschriebener Weise lediglich 16KB. Somit umfasst ein flacher Speicher 1 mit einem Flash-Speicher, der eine Speicherkapazität von 32MB aufweist, 2048 Blöcke (oder vier Segmente), und ein flacher Speicher 1 mit einem Flash-Speicher, der eine Speicherkapazität von 64MB aufweist, umfasst 4096 Blöcke (oder acht Segmente). Demgegenüber umfasst ein flacher Speicher 1 mit einem Flash-Speicher, dessen Speicherkapazität 128MB beträgt, 8192 Blöcke (oder 16 Segmente).
  • 2-3. Konzept von physikalischen und logischen Adressen
  • Im Zuge der folgenden Beschreibung wird ein Konzept von physikalischen und logischen Adressen erläutert, die in einem durch diese Ausführungsform bereitgestellten Dateisystem angewandt werden, indem eine Operation veranschaulicht wird, wie sie in 9A und 9B verdeutlicht ist, um Daten in der zuvor erwähnten physikalischen Datenstruktur eines Flash-Speichers zu aktualisieren.
  • 9A veranschaulicht in einem Diagramm vier Blöcke, die als Modell aus einem Segment extrahiert sind.
  • Eine physikalische Adresse ist jedem der Blöcke zugewiesen. Wie in der Zeichnungsfigur dargestellt, nimmt die physikalische Adresse entsprechend der physikalischen Anordnung der Blöcke im Speicher zu. Die Beziehung zwischen einem Block und einer physikalischen Adresse, die dem Block zugewiesen ist, liegt fest. Die Werte der physikalischen Adressen, die den in 9A dargestellten vier Blöcken zugewiesen sind, betragen 105 für den oberen Block sowie 106, 107 und 108 in der Reihenfolge darauffolgend. Es sei darauf hingewiesen, dass eine tatsächliche physikalische Adresse eine Länge von zwei Bytes besitzt.
  • Bei dem in 9A gezeigten Beispiel werden die Blöcke mit den physikalischen Adressen 105 und 106 als Blöcke genutzt, in denen Daten gespeichert werden bzw. sind. Andererseits sind die Blöcke mit den physikalischen Adressen 107 und 108 nicht genutzte Blöcke oder Bereiche ohne Aufzeichnung, aus denen Daten gelöscht wurden.
  • Eine logische Adresse ist eine Adresse, die Daten zugewiesen ist, welche in einen Block geschrieben werden bzw. sind. Eine logische Adresse ist eine Adresse, die durch das FAT-Dateisystem benutzt wird.
  • Bei dem in 9A gezeigten Beispiel sind die Werte der logischen Adressen, die Teilen von Daten in den vier Blöcken zugewiesen sind, gegeben mit 102 für die Daten in dem oberen Block sowie mit 103, 104 und 105 in der folgenden Reihenfolge. Es sei darauf hingewiesen, dass eine tatsächliche logische Adresse ebenfalls eine Länge von 2 Bytes aufweist.
  • In dem in 9A beispielsweise gezeigten Zustand werden unter der physikalischen Adresse 105 gespeicherte Daten aktualisiert, was bedeutet, dass die Inhalte unter der betreffenden Adresse neu geschrieben oder zum Teil gelöscht werden.
  • In einem solchen Fall werden in dem Dateisystem des Flash-Speichers aktualisierte Daten nicht in denselben zu aktualisierenden Block wieder eingeschrieben. Vielmehr werden die aktualisierten Daten in einen nicht benutzten Block geschrieben.
  • Dies bedeutet, dass, wie in 9B veranschaulicht, bei der Verarbeitung (1) die unter der physikalischen Adresse 105 gespeicherten Daten gelöscht werden und dass sodann die aktualisierten Daten in einen Block unter der physikalischen Adresse 107 geschrieben werden, der soweit ein nicht benutzter Block gewesen ist.
  • Sodann wird bei der Verarbeitung (2) die Zuweisung von logischen Adressen derart geändert, dass die logische Adresse 102, welche der physikalischen Adresse 105 im Zustand vor dem in 9A dargestellten Datenaktualisierungsprozess zugewiesen worden ist, der physikalischen Adresse 107 neu zugewiesen wird, die dem Block zugeordnet ist, in den die aktualisierten Daten geschrieben wurden, wie dies in 9B veranschaulicht ist. Dadurch wird die logische Adresse 104, die vor dem Datenaktualisierungsprozess der physikalischen Adresse 107 zugeordnet worden war, der physikalischen Adresse 105 neu zugeordnet bzw. zugewiesen.
  • Dies bedeutet, dass eine physikalische Adresse einem Block dauerhaft zugeordnet ist, während eine logische Adresse als eine Adresse betrachtet werden kann, die Daten permanent zugewiesen ist, welche die Größe einer Blockeinheit aufweisen und einmal in einen Block geschrieben sind.
  • Durch Tauschen von Blöcken, wie oben beschrieben, wird ein Zugriff nicht in einer konzentrierten Art und Weise wiederholt auf denselben Speicherbereich (Block) vorgenommen, was es ermöglicht, die Lebensdauer des Flash-Speichers zu verlängern, die durch die Anzahl der Schreiboperationen bestimmt ist, welche in ihm ausgeführt werden.
  • Beim Tauschen von logischen Adressen zwischen Blöcken durch Behandeln einer logischen Adresse bei der Verarbeitung (2) in der oben beschriebenen Weise werden Daten von der physikalischen Adresse eines Blockes, der von den Daten vor dem Datenaktualisierungsprozess belegt ist, zu der physikalischen Adresse eines Blockes verschoben, der durch die aktualisierten Daten belegt ist. Dem FAT-Dateisystem erscheinen die Daten jedoch als unter derselben logischen Adresse verblieben, was anschließende Zugriffe darauf richtig und korrekt vorzunehmen erlaubt.
  • Es sei darauf hingewiesen, dass zur Vereinfachung der Steuerung der Aktualisierung von in der Steuertabelle für logische/physikalische Adressen gespeicherten Informationen die Verarbeitung des Tauschens von logischen Adressen zwischen Blöcken als Verarbeitung vorgeschrieben ist, um logische Adressen lediglich zwischen Blöcken zu tauschen, die dasselbe Segment betreffen. Anders dargestellt heißt dies, dass logische Adressen nicht zwischen Blöcken unterschiedlicher Segmente getauscht werden.
  • 2-4. Steuertabelle gemäß der Ausführungsform für logische/physikalische Adressen
  • Wie aus der Erläuterung unter Bezugnahme auf 9A und 9B ersichtlich sein dürfte, ändert das Tauschen von logischen Adressen zwischen Blöcken die Zuordnung einer logischen Adresse zu einer physikalischen Adresse. Eine Steuertabelle für logische/physikalische Adressen wird zur Speicherung von Informationen bezüglich Zuordnungen von logischen Adressen zu physikalischen Adressen benutzt. Um einen Zugriff auf den Flash-Speicher zu realisieren, damit Daten in den Flash-Speicher geschrieben oder aus diesem gelesen werden, ist somit die Steuertabelle für logische/physikalische Adressen erforderlich. Um dies im Einzelnen darzulegen, bezieht sich das FAT-Dateisystem auf die Steuertabelle für logische/physikalische Adressen, um eine physikalische Adresse zu identifizieren, die der logischen Adresse zugeordnet ist, welche bei dem Zugriff durch das FAT-Dateisystem spezifiziert ist. Der Zugriff erfolgt dann auf einen Block unter der identifizierten physikalischen Adresse. Anders ausgedrückt heißt dies, dass ein Zugriff durch das FAT-Dateisystem auf den Flash-Speicher nicht ohne die Steuertabelle für logische/physikalische Adressen vorgenommen werden kann.
  • Wenn in dem konventionellen System der flache Speicher 1 an dem Hauptgerät bzw. der Hauptvorrichtung angebracht ist, ist eine Steuertabelle für logische/physikalische Adressen durch einen Mikroprozessor gebildet, der in dem Hauptgerät verwendet wird, indem logische Adressen von redundanten Bereichen, wie in 7F veranschaulicht, für sämtliche Seiten in dem flachen Speicher 1 geprüft und dann in einem RAM-Speicher gespeichert werden, der ebenfalls in dem Hauptgerät verwendet ist. Dies bedeutet, dass der flache Speicher 1 keine in der Steuertabelle für logische/physikalische Adressen gespeicherte Information enthält.
  • Im Falle der Ausführungsform ist demgegenüber eine Steuertabelle für logische/physikalische Adressen in dem flachen Speicher 1 gespeichert, wie dies später beschrieben wird.
  • 10 veranschaulicht in einem Diagramm konzeptionell den Aufbau einer Steuertabelle für logische/physikalische Adressen, die in dem durch die vorliegende Erfindung bereitgestellten flachen Speicher 1 zu speichern ist.
  • Bei dieser Ausführungsform werden logische Adressen, die in typischer Weise in steigender Reihenfolge festgelegt werden bzw. sind, den physikalischen 2-Byte-Adressen zugeordnet, wie dies durch Informationen in der Zuordnung angegeben wird, die in der gebildeten Steuertabelle für logische/physikalische Adressen gespeichert wird bzw. ist.
  • Es sei darauf hingewiesen, dass tatsächlich die logischen und physikalischen Adressen jeweils, wie zuvor beschrieben, durch zwei Bytes ausgedrückt werden. Die Anzahl der Bits in den zwei Bytes ist groß genug, um 8192 Blöcke abzudecken, aus denen ein Flash-Speicher mit einer maximalen Speicherkapazität von 128MB besteht.
  • In entsprechender Weise wie die physikalischen Adressen weisen die logischen Adressen, wie in 10 veranschaulicht, jeweils tatsächlich eine Länge von zwei Bytes auf. Überdies sind die logischen/physikalischen 2-Byte-Adressen jeweils in einem hexadezimalen Format dargestellt. Dies bedeutet, dass die der Angabe „0x" folgende Zahl hexadezimale Ziffern umfasst. Es sei darauf hingewiesen, dass die hexadezimale Darstellung unter Heranziehung der Schreibweise „0x" dazu herangezogen wird, eine Hexadezimalzahl in derselben Weise während des übrigen Teiles der Beschreibung auszudrücken.
  • 11A und 11B veranschaulichen in Diagrammen eine typische Struktur der Steuertabelle für logische/physikalische Adressen auf der Grundlage des in 10 veranschaulichten Konzepts, wie es durch diese Ausführungsform bereitgestellt wird. Zum leichteren Verständnis der Beschreibung ist hier der in 7E und 7F dargestellte redundante 16-Byte-Bereich weggelassen.
  • Die durch diese Ausführungsform bereitgestellte Steuertabelle für logische/physikalische Adressen ist in einem bestimmten Block des Flash-Speichers gespeichert, wie dies in 11A und 11B veranschaulicht ist. Es sei darauf hingewiesen, dass ein Block zur Speicherung der Steuertabelle für logische/physikalische Adressen stets als ein Block im letzten Segment vorgeschrieben ist.
  • Wie in 11A gezeigt, werden die ersten zwei Seiten des Blockes, nämlich die Seiten 0 und 1 als ein Bereich zur Speicherung von Informationen der Steuertabelle für logische/physikalische Adressen für das Segment 0 genutzt. Im Falle eines Flash-Speichers mit einer Speicherkapazität von 4MB, wie in 13 veranschaulicht, werden lediglich die Seiten 0 und 1 als ein Bereich zur Speicherung von Informationen der Steuertabelle für logische/physikalische Adressen für das alleinige 1-Segment genutzt, welches in dem Flash-Speicher existiert.
  • Ein Flash-Speicher mit einer Speicherkapazität von 8MB umfasst zwei Segmente. In diesem Fall werden die Seiten 0 und 1 als ein Bereich zur Speicherung von Informationen der Steuertabelle für logische/physikalische Adressen für das Segment 0 genutzt, während die Seiten 2 und 3 als ein Bereich zur Speicherung von Informationen der Steuertabelle für logische/physikalische Adressen für das Segment 1 genutzt werden.
  • Da die Speicherkapazität des Flash-Speichers danach zunimmt, werden die folgenden zwei Seiten als ein Bereich zur Speicherung von Informationen der Steuertabelle fit logische/physikalische Adressen bezüglich eines zusätzlichen Segments des Flash-Speichers genutzt. Schließlich umfasst ein Flash-Speicher mit der maximalen Speicherkapazität von 128MB damit 16 Segmente. In diesem Fall werden sämtliche Seiten als Bereiche zur Speicherung von Informationen der Steuertabelle für logische/physikalische Adressen bezüglich sämtlicher Segmente genutzt, die im letzten Segment, das ist das Segment 15, enthalten sind. In einem Flash-Speicher mit der maximalen Speicherkapazität von 128MB werden somit alle 32 Seiten des Blockes genutzt. In 11A ist die letzte Seite des Blockes die Seite N, wobei N gegeben ist mit 31.
  • Wie aus der obigen Erläuterung ersichtlich sein dürfte, wird die Information der Steuertabelle für logische/physikalische Adressen in Segmenteinheiten gesteuert.
  • 11B veranschaulicht in einem Diagramm die Struktur einer 2-Seiten-Information, die aus der Steuertabelle für logische/physikalische Adressen bezüglich eines Segments extrahiert ist. Da der Datenbereich einer Seite eine Größe von 512 Bytes besitzt, wie dies in 7E veranschaulicht ist, weist die in 11B dargestellte Information eine Länge von 1024 (= 512 × 2) Bytes auf.
  • Wie in 11B veranschaulicht, ist der 1024 Bytes umfassende 2-Seiten-Datenbereich in Unterbereiche abgegrenzt, die jeweils aus zwei Bytes bestehen. Die mit dem Byte 0 beginnenden und mit dem Byte 991 endenden Unterbereiche sind als Unterbereiche vorgeschrieben, die dauerhaft der logischen Adresse 0, der logischen Adresse 1, usw. bis zur logischen Adresse 495 zugeordnet sind. Somit ist die logische Adresse 495 den letzten zwei Bytes, nämlich dem Byte 990 und dem Byte 991 zugeordnet. Jeder dieser 2-Byte-Unterbereiche wird zur Speicherung einer physikalischen Adresse herangezogen, die einer logischen Adresse zugeordnet ist, der der Unterbereich zugeordnet ist. Somit werden logische Adressen zwischen Blöcken als Teil einer Operation zur Aktualisierung von tatsächlichen Daten getauscht, denen eine der logischen Adressen, wie zuvor beschrieben, zugeordnet ist, indem Zuordnungen der logischen Adressen zu physikalischen Adressen geändert werden, die als Informationen in der durch diese Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen gespeichert sind. Um konkret zu werden, werden die Zuordnungen der logischen Adressen zu physikalischen Adressen durch Tauschen der physikalischen Adressen in dem in 11B gezeigten 2-Seiten-Datenbereich zwischen 2-Byte-Unterbereichen geändert, die den logischen Adressen dauerhaft zugeordnet sind.
  • Der verbleibende 32-Byte-Bereich in dem 2-Seiten-Datenbereich vom Byte 992 bis zum Byte 1023 wird zur Speicherung von physikalischen Adressen der verbleibenden 16 Blöcke in dem Segment genutzt. Damit können die physikalischen Adressen der übrigen 16 Blöcke gesteuert werden. Ein verbleibender Block dient in typischer Weise als sogenannter Arbeitsblock, der beispielsweise zur temporären Sicherung von Daten benutzt wird, die bei einer Operation zur Aktualisierung von Daten in Blockeinheiten neu zu schreiben sind.
  • Nebenbei sei angemerkt, dass in Anbetracht des Umstandes, dass ein Segment 512 Blöcke umfasst, wie dies früher beschrieben worden ist, in der in 11A und 11B gezeigten Tabellenstruktur lediglich 496 Blöcke als steuerbare Blöcke dargestellt sind, denen die logischen Adressen 0 bis 495 zugeordnet sind. Der Grund hierfür liegt darin, dass der Rest zur Speicherung von physikalischen Adressen der verbleibenden Blöcke, wie oben beschrieben, genutzt wird und dass in einem Flash-Speicher das Vorhandensein von einigen fehlerhaften Blöcken, die als nicht nutzbare Blöcke behandelt werden, unvermeidbar ist. Tatsächlich enthalten die verbleibenden Blöcke eine ziemlich große Zahl von fehlerhaften Blöcken.
  • Tatsächlich sind 496 steuerbare Blöcke ausreichend für die Verwendung als gültige Blöcke, in die Daten geschrieben oder aus denen Daten gelöscht werden können.
  • Wie oben beschrieben, umfasst der Block zur Speicherung der Steuertabelle für logische/physikalische Adressen Seiten, deren jede einen redundanten Bereich zur Speicherung eines Management- bzw. Verwaltungs-Flags aufweist, wie dies in 8 veranschaulicht ist. Das Bit 3 des Management-Flags ist auf 0 gesetzt, um anzugeben, dass der Block zur Speicherung einer Steuertabelle für logische/physikalische Adressen genutzt wird.
  • Wenn der die Steuertabelle für logische/physikalische Adressen enthaltende Block aktualisiert wird, d.h. dann, wenn die Inhalte der Steuertabelle für logische/physikalische Adressen geändert werden, wird die Verarbeitung zum Tauschen von logischen Adressen zwischen Blöcken, wie dies früher unter Bezugnahme auf die 9A und 9B erläutert worden ist, ohne Ausnahme durchgeführt. Dies bedeutet, dass der Block zur Speicherung der Steuertabelle für logische/physikalische Adressen nicht festgelegt bzw. begrenzt ist oder dass es unmöglich ist, einen Block vorzuschreiben, der für die Speicherung der Steuertabelle für logische/physikalische Adressen zweckbestimmt ist.
  • Somit nimmt das FAT-Dateisystem Zugriffe auf den Flash-Speicher vor, um den Speicher nach einem Block mit einer 0 abzusuchen, die im Bit 3 seines Management-Flags gesetzt ist, und es erfolgt eine Erkennung eines derartigen Blocks als Block zur Speicherung der Steuertabelle für logische/physikalische Adressen. Um es für das FAT-Dateisystem zu erleichtern, den Flash-Speicher nach einem Block zur Speicherung der Steuertabelle für logische/physikalische Adressen abzusuchen, ist es bezüglich der Steuertabelle für logische/physikalische Adressen bei dieser Ausführungsform vorgeschrieben, dass sie stets in einem Block betreffend das letzte Segment des Flash-Speichers zu speichern ist, d.h. in einem Segment, welches durch die letzte Segmentnummer identifiziert ist. Demgemäß braucht die FAT-Datei lediglich das letzte Segment nach einem Block zur Speicherung der Steuertabelle für logische/physikalische Adressen abzusuchen. Dies bedeutet, dass es für die FAT-Datei nicht notwendig ist, sämtliche Segmente in dem Flash-Speicher nach einem Block zur Speicherung der Steuertabelle für logische/physikalische Adressen abzusuchen.
  • Die in 11A und 11B dargestellte Steuertabelle für logische/physikalische Adressen wird in einem Block in typischer Weise während eines Herstellungsprozesses zur Herstellung des flachen Speichers 1 gespeichert.
  • In der folgenden Beschreibung wird ein Beispiel unter Bezugnahme auf die 14A, 14B, 14C und 14D erläutert, um dem Leser Hilfe für ein besseres Verständnis darüber zu vermitteln, was soweit beschrieben worden ist. Die 14A, 14B, 14C und 14D veranschaulichen in Diagrammen einen Flash-Speicher mit einer Speicherkapazität von 4MB. Wie früher unter Bezugnahme auf 13 erläutert, enthalt der 4MB-Flash-Speicher lediglich ein Segment mit 512 Blöcken, deren jeder 16 Seiten aufweist.
  • Wie in 14A veranschaulicht, ist das Segment des Flash-Speichers das Segment 0 mit den Blöcken 0 und 1, die jeweils als Boot-Block dienen. Da das Segment 0 außerdem das letzte Segment ist, sind darin sowohl Hauptdaten als auch Steuerdaten gespeichert. Die physikalische Adresse des Blocks 0 ist gegeben mit 0x0000, die keiner logischen Adresse zugeordnet ist. Durch dasselbe Merkmal ist die physikalische Adresse des Blocks 1 gegeben mit 0x0001, die ebenfalls keiner logischen Adresse zugeordnet ist.
  • Der Block 2 unter einer physikalischen Adresse von 0x0002 wird zur Speicherung von Hauptdaten genutzt; der betreffenden physikalischen Adresse ist die logische Adresse 0x0001 zugeordnet. In entsprechender Weise wird der Block 3 unter einer physikalischen Adresse 0x0003 zur Speicherung von Hauptdaten genutzt, wobei der betreffenden physikalischen Adresse eine logische Adresse 0x0000 zugeordnet ist. In entsprechender Weise wird der Block 4 unter einer physikalischen Adresse 0x0004 zur Speicherung von Hauptdaten genutzt, wobei der betreffenden physikalischen Adresse eine logische Adresse 0x0004 zugeordnet ist. Der Block 5 wird unter einer physikalischen Adresse 0x0005 zur Speicherung von Hauptdaten genutzt, und der betreffenden physikalischen Adresse ist eine logische Adresse 0x0003 zugeordnet. Nach demselben Merkmal wird der Block 6 unter einer physikalischen Adresse 0x0006 zur Speicherung von Hauptdaten genutzt, und der betreffenden physikalischen Adresse ist eine logische Adresse 0x0002 zugeordnet. Der Block 511 unter einer physikalischen Adresse 0x01FF wird zur Speicherung von Hauptdaten genutzt, und der betreffenden physikalischen Adresse ist eine logische Adresse 0x1FD zugeordnet. Andererseits wird der Block 123 unter einer physikalischen Adresse 0x007B zur Speicherung von Steuerdaten benutzt, und der betreffenden physikalischen Adresse ist eine logische Adresse 0x0005 zugeordnet.
  • 14B veranschaulicht in einem Diagramm den Block 2, der für die Speicherung von Hauptdaten genutzt wird, und 14C veranschaulicht in einem Diagramm den Block 123, der für die Speicherung von Steuerdaten genutzt wird. Wie in 14B und 14C gezeigt, gibt es überhaupt keinen Unterschied um Aufbau bzw. der Konfiguration zwischen Blöcken, die zur Speicherung von Hauptdaten und zur Speicherung von Steuerdaten genutzt werden. Der Unterschied zwischen den beiden Blöcken ist der Wert des Steuertabellen-Flags, welches in dem redundanten Teil bzw. Bereich der Seite 0 jedes der Blöcke gespeichert ist. Die in 14B und 14C dargestellten Blöcke seien als Beispiel herangezogen. Der Wert des Steuertabellen-Flags im Block 2 beträgt, wie in 14B angegeben, 1, um anzuzeigen, dass dieser Block zur Speicherung von Hauptdaten genutzt wird. Demgegenüber beträgt der Wert des Steuertabellen-Flags im Block 123, wie in 14C angegeben, 0, um anzuzeigen, dass dieser Block zur Speicherung von Steuerdaten genutzt wird. Wie in 14B und 14C veranschaulicht, wird ein logisches Adressenfeld des redundanten Bereiches in einem Block zur Speicherung einer logischen Adresse genutzt, die in dem Block gespeicherte Daten zugeordnet ist.
  • Um die Zeichnungsfiguren zu vereinfachen, sind die logische Adresse in dem in 14B dargestellten redundanten Teil bzw. Bereich, die logische Adresse in dem in 14C dargestellten redundanten Teil bzw. Bereich und die physikalischen Adressen in der in 14D gezeigten Steuertabelle für logische/physikalische Adressen jeweils im Hexadezimalformat unter Weglassung des Codes 0x ausgedrückt. Nicht speziell genutzt sind die schraffierten Bereiche in den redundanten Teilen bzw. Bereichen innerhalb der in 14B und 14C gezeigten Blöcke jeweils mit unbestimmten Inhalten.
  • Wie oben beschrieben, wird der in 14C gezeigte Block zur Speicherung von Steuerdaten genutzt, und zwar bei diesem Beispiel in einem Flash-Speicher von 4MB. Wie in 14C veranschaulicht, sind lediglich zwei Seiten des Blockes für die Speicherung von Steuerdaten erforderlich, welche die Beziehungen zwischen logischen Adressen und physikalischen Adressen bezüglich des Segments 0 des 4MB-Flash-Speichers darstellen, der die Extrablöcke enthält. Die übrigen Seiten des Blockes sind nicht benutzt. Die Datenstruktur der in diesen zwei Seiten gespeicherten Steuertabelle für logische/physikalische Adressen ist in 14D veranschaulicht. Zwei Seiten sind erforderlich zur Speicherung von Steuerdaten, welche Beziehungen zwischen logischen Adressen und physikalischen Adressen bezüglich eines Segments angeben. Im Falle eines Flash-Speichers, der mehr Segmente umfasst, werden somit mehr Seiten in dem Block sogar dann genutzt, obwohl unbenutzte Seiten in dem Block, wie in 14C veranschaulicht, stets vorhanden sind, allerdings mit Ausnahme eines Flash-Speichers mit einer Speicherkapazität von 128MB, wie in 13 gezeigt.
  • 14D veranschaulicht in einem Diagramm die Steuertabelle für logische/physikalische Adressen, in der Steuerdaten in den Seiten 0 und 1 des in 14C gezeigten Blockes gespeichert sind. Es sei darauf hingewiesen, dass die logische Adresse 0x0000 abgekürzt einfach die logische Adresse 0 ist, um 14D einfacher zu gestalten, wobei diese Abkürzung bei den anderen logischen Adressen eingewandt ist, die in 14D angegeben sind. 14D zeigt nicht explizit, welches der beiden Bytes zur Speicherung des höherwertigen Bytes der physikalischen Adresse genutzt wird und welches der beiden Bytes zur Speicherung des niederwertigen Bytes der physikalischen Adresse genutzt wird.
  • Physikalisch umfasst ein Flash-Speicher mit einer Speicherkapazität von 4MB 512 Blöcke, wie in 13 veranschaulicht. Da fehlerhafte Blöcke in dem Flash-Speicher vorhanden sind, werden maximal lediglich 493 Blöcken ausschließlich der beiden Boot-Blöcke logische Adressen zugeordnet, wie dies in 14D veranschaulicht ist.
  • Wie in 14A veranschaulicht, ist die logische Adresse 0x0000 Daten zugeordnet, die in einem Block unter der physikalischen Adresse 0x0003 gespeichert sind. In diesem Fall wird die physikalische Adresse 0x0003 in zwei Bytes der Steuertabelle gemäß 14D für logische/physikalische Adressen gespeichert, wobei diese beiden Bytes der logischen Adresse 0 zugeordnet sind. Nach demselben Merkmal wird bzw. ist die physikalische Adresse 0x0002 in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei die betreffende physikalische Adresse der logischen Adresse 1 zugeordnet ist. Die physikalische Adresse 0x0006 ist in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei diese physikalische Adresse der logischen Adresse 2 zugeordnet ist. In entsprechender Weise ist die physikalische Adresse 0x0005 in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei die betreffende physikalische Adresse der logischen Adresse 3 zugeordnet ist. Die physikalische Adresse 0x0004 ist in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei diese physikalische Adresse der logischen Adresse 4 zugeordnet ist. In entsprechender Weise ist die physikalische Adresse 0x007B in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei die betreffende physikalische Adresse der logischen Adresse 5 zugeordnet ist. die physikalische Adresse 0x01FF ist in der Steuertabelle für logische/physikalische Adressen gespeichert, wobei der betreffenden physikalischen Adresse die logische Adresse 493 zugeordnet ist.
  • Bei einem Zugriff auf Daten in dem flachen Speicher 1 setzt das Dateisystem eine bei dem Zugriff spezifizierte logische Adresse in eine physikalische Adresse des die Daten enthaltenden Blocks um, indem die Steuertabelle für logische/physikalische Adressen herangezogen wird. Es sei beispielsweise angenommen, dass ein Anwendungsprogramm einen Befehl zum sequenziellen Auslesen von Daten aus den logischen Adressen 0x0002, 0x0003 und 0x0004 an das Dateisystem abgibt. In diesem Fall verarbeitet das Dateisystem den Befehl entsprechend der folgenden Prozedur.
  • Zunächst wird der flache Speicher 1, wie in 14A veranschaulicht, nach einem Block mit einem Null-Steuertabellen-Flag im redundanten Teil bzw. Bereich seiner Seite 0 abgesucht. Als Ergebnis der Suche wird der Block 123 zur Speicherung der Steuertabelle für logische/physikalische Adressen ermittelt. Da in diesem Fall die logischen Adressen 0x0002, 0x0003 und 0x0004 offensichtlich dem ersten Teil der Steuertabelle für logische/physikalische Adressen zugehörig sind und da die Größe eines eingebetteten RAM-Speichers zur temporären Speicherung von Steuerdaten der Steuertabelle für logische/physikalische Adressen klein ist, werden lediglich Steuerdaten der Seite 1 des Blockes 123 ausgelesen. Durch Heranziehen der Steuerdaten werden sodann die logischen Adressen 0x0002, 0x0003 und 0x0004 in die physikalischen Adressen 0x0006, 0x0005 bzw. 0x0004 umgesetzt. Schließlich liest das Dateisystem Teile der Daten sequenziell aus Blöcken unter den physikalischen Adressen 0x0006, 0x0005 und 0x0004 aus, wie dies durch den von dem Anwendungsprogramm abgegebenen Befehl gefordert ist.
  • Zurückkommend auf 13 werden nunmehr Beziehungen zwischen der Speicherkapazität eines Flash-Speichers und der Größe einer Steuertabelle für logische/physikalische Adressen erläutert.
  • Wie früher unter Bezugnahme auf die 11A und 11B erläutert, beträgt die in der Steuertabelle für logische/physikalische Adressen gespeicherte Informationsmenge zur Steuerung eines Segments 1024 Bytes (oder 1KB), was zwei Seiten entspricht. Zur Steuerung eines Flash-Speichers von einem Segment mit einer Speicherkapazität von 4MB, wie in 13 veranschaulicht, beträgt somit die Größe der Steuertabelle für logische/physikalische Adressen 1KB. Zur Steuerung eines Flash-Speichers aus zwei Segmenten mit einer Speicherkapazität von 8MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 2KB, was vier Seiten entspricht.
  • Zur Steuerung eines Flash-Speichers mit bzw. aus vier Segmenten (=2048 Blöcken) mit einer Speicherkapazität von 16MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 4KB, was acht Seiten entspricht. Zur Steuerung eines Flash-Speichers mit zwei Segmenten (= 1024 Blöcke) mit einer Speicherkapazität von 16MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 2KB, was vier Seiten entspricht.
  • Zur Steuerung eines Flash-Speichers aus vier Segmenten mit einer Speicherkapazität von 32MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 4KB, was acht Seiten entspricht. Zur Steuerung eines Flash-Speichers aus acht Segmenten mit einer Speicherkapazität von 64MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 8KB, was 16 Seiten entspricht. Zur Steuerung eines Flash-Speichers aus 16 Segmenten mit einer Speicherkapazität von 128MB belegt die Steuertabelle für logische/physikalische Adressen einen Bereich von 16KB, was 32 Seiten entspricht.
  • Nebenbei sei angemerkt, dass in der Steuertabelle für logische/physikalische Adressen eines Dateisystems mit dem konventionellen Aufbau für einen Flash-Speicher ein scheinbar unbestimmter Wert als physikalische Adresse genutzt wird, die einer nicht benutzten logischen Adresse zugeordnet ist.
  • Um konkreter zu werden, sei eine Steuertabelle für logische/physikalische Adressen, wie in 12B veranschaulicht, als Beispiel herangezogen. Bei diesem Beispiel werden die logischen Adressen 0x0000, 0x0001, 0x0002 und 0x0003 bereits genutzt, und sie sind den physikalischen Adressen 0x0002, 0x0006, 0x0007 bzw. 0x0008 zugeordnet. Dies heißt, dass die physikalischen Adressen 0x0002, 0x0006, 0x0007 und 0x0008, unter denen Teile von Daten bereits gespeichert worden sind, den logischen Adressen 0x0000, 0x0001, 0x0002 bzw. 0x0003 zugeordnet sind.
  • Wenn andererseits die logische Adresse 0x0004 nicht benutzt wird, wird ein ungültiger Wert von 0xFFFF als physikalische Adresse genutzt, die der logischen Adresse 0x0004 zugeordnet ist. Der ungültige Wert 0xFFFF, der als physikalische Adresse festgelegt ist, zeigt an, dass ein Speicherbereich unter diesen physikalischen Adresse nicht benutzt wird.
  • In einem Versuch, neuerlich Daten in den nicht benutzten Speicherbereich zu schreiben, der der logischen Adresse 0x0004 zugeordnet ist, indem auf die in 12B gezeigte Steuertabelle für logische/physikalische Adressen Bezug genommen wird, sucht das FAT-Dateisystem somit in typischer Weise nach einem physikalisch nicht benutzten Block in einer hierarchischen Ebene, die von der Steuertabelle für logische/physikalische Adressen verschieden ist, bevor eine Operation zum Einschreiben der Daten in den bei der Suche gefundenen Block ausgeführt wird. Sodann werden die Inhalte der Steuertabelle für logische/physikalische Adressen durch Katalogisierung der physikalischen Adresse des Blocks, in den die Daten neuerlich geschrieben wurden, in der Steuertabelle für logische/physikalische Adressen unter einem Tabelleneintrag aktualisiert, der der logischen Adresse 0x0004 zugeordnet ist.
  • Bei einer solchen Ausführung der Steuertabelle für logische/physikalische Adressen wird jedoch das Auftreten des folgenden Problems erwartet.
  • Es sei angenommen, dass durch das Hauptgerät bzw. die Hauptvorrichtung verarbeitete Daten sogenannte Echtzeitdaten sind, die längs der Zeitachse betrachtet werden, wie Bewegtbilddaten oder Audiodaten eines Musikstücks oder dergleichen.
  • In dem Hauptgerät werden die längs der Zeitachse festgestellten Eingabe- bzw. Eingangsdaten einer Signalverarbeitung unterzogen, die in einer Echtzeitweise ausgeführt wird, bevor die betreffenden Daten in dem flachen Speicher 1 als Aufzeichnungsdaten aufgezeichnet werden.
  • Wenn die Ausführung der Steuertabelle für logische/physikalische Adressen, wie früher unter Bezugnahme auf 12B erläutert, angewandt wird, dann muss bei der Operation zur Aufzeichnung der Daten in dem flachen Speicher 1 der betreffende flache Speicher 1 natürlich nach einem nicht benutzten Block abgesucht werden, wie dies oben beschrieben worden ist. Bei einer Operation zur Aufzeichnung von Daten, die längs der Zeitachse festgestellt worden sind, wie dies oben beschrieben worden ist, ist es notwendig, die Eingangsdaten in den flachen Speicher 1 mit bzw. unter einer solchen mittleren Geschwindigkeit einzuschreiben, dass kein Datenüberlauf auftritt. Die Suche, die zu dieser Zeit nach einem nicht benutzten Block durchgeführt wird, ist eine durch den Mikroprozessor 109 äußerst schwierig auszuführende Verarbeitung.
  • Dies heißt, dass es beim derzeitigen Stand der Technik sehr schwierig ist, Echtzeitdaten in dem flachen Speicher 1 aufzuzeichnen. Praktisch werden solche Daten lediglich in einer Standbilddatei oder in einer Textdatei aufgezeichnet, die keine Echtzeitanforderungen auferlegt.
  • Um das oben beschriebene Problem zu lösen, ist in der durch diese Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen die physikalische Adresse eines Blockes, der als nicht benutzter Bereich gesteuert ist, einer nicht benutzten logischen Adresse zugeordnet. Ein Beispiel der durch diese Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen ist in 12A veranschaulicht.
  • Bei diesem Beispiel werden die logischen Adressen 0x0000, 0x0001, 0x0002 und 0x0003 bereits benutzt, und sie sind den physikalischen Adressen 0x0002, 0x0006, 0x0007 bzw. 0x0008 zugeordnet. Dies bedeutet, dass die physikalischen Adressen 0x0002, 0x0006, 0x0007 und 0x0008, unter denen Teile von Daten bereits gespeichert worden sind, den logischen Adressen 0x0000, 0x0001, 0x0002 bzw. 0x0003 zugeordnet sind, und zwar wie im Falle des in 12B gezeigten Beispiels. Überdies ist eine logische Adresse 0x0004, wie im Falle des in 12B gezeigten Beispiels, nicht benutzt.
  • Wie in 12A veranschaulicht, ist bei dieser Ausführungsform indessen eine physikalische Adresse 0x0009 eines typischen nicht benutzten Blockes, welche die physikalische Adresse 0xFFFF ersetzt, der nicht benutzten logischen Adresse 0x0004 zugeordnet. Bei diesem Beispiel ist lediglich ein nicht benutzter Block dargestellt, der einer nicht benutzten logischen Adresse zugeordnet ist. Es sei jedoch darauf hingewiesen, dass andere bzw. weitere nicht benutzte Blöcke weiteren bzw. anderen nicht benutzten logischen Adressen zugeordnet sein können und dass die physikalischen Adressen der betreffenden weiteren bzw. anderen nicht benutzten Blöcke den weiteren bzw. anderen nicht benutzten logischen Adressen in derselben Weise zugeordnet sind wie die physikalische Adresse 0x0009 der logischen Adresse 0x0004 zugeordnet ist.
  • In einer auf diese Art und Weise aufgebauten Steuertabelle für logische/physikalische Adressen kann ein Bereich unter einer physikalischen Adresse, die einer logischen Adresse zugeordnet ist, als der logischen Adresse zugeordneter freier Bereich interpretiert werden.
  • Somit ist das FAT-Dateisystem imstande, vor einer Bezugnahme auf die Steuertabelle für logische/physikalische Adressen in einer Aufzeichnungsoperation eine physikalische Adresse eines nicht benutzten Blockes zu bestimmen, der einer logischen Adresse zugeordnet ist, und es ist nicht länger notwendig, eine Verarbeitung zur Suche nach einem nicht benutzten Block auszuführen, wie im Falle der Ausführung der in 12B gezeigten Steuertabelle für logische/physikalische Adressen. Dies bedeutet, dass es unter Bezugnahme auf die Steuertabelle für logische/physikalische Adressen möglich ist, eine physikalische Adresse, die einer logischen Adresse zugeordnet ist, für einen freien Bereich durch das FAT-Dateisystem zu erhalten. Sodann werden Daten in einem nicht benutzten Block unter der physikalischen Adresse eingeschrieben, indem ein Zugriff auf den Block erfolgt. Infolgedessen ist die von dem Mikroprozessor, der in dem Hauptgerät verwendet ist, getragene Verarbeitungslast nennenswert herabgesetzt, und es kann ohne Weiteres beispielsweise einen Operation zur Aufzeichnung von Daten, die längs der Zeitachse festgestellt werden, wie oben beschrieben, ausgeführt werden. Außerdem kann bei einer Operation zur Aufzeichnung von Daten, die keine Echtzeitverarbeitung benötigen, wie Textdateidaten oder Standbilddaten, die Zeit, die zum Einschreiben der Daten in den Flash-Speicher gebraucht wird, selbstverständlich verkürzt werden, indem das durch die Ausführungsform, wie in 12A veranschaulicht, bereitgestellte System im Vergleich zu dem konventionellen System angewandt wird.
  • Nunmehr wird unter Bezugnahme auf ein in 15 dargestelltes Ablaufdiagramm eine Prozedur zur Aufzeichnung von Daten erläutert, die durch eine gemäß der Ausführungsform ausgeführte Aufzeichnungs-/Wiedergabevorrichtung ausgeführt wird.
  • Wie in 15 veranschaulicht, beginnt das Ablaufdiagramm mit einem Schritt S1, bei dem der als flacher Speicher 1 ausgeführte nichtflüchtige Speicher zur Durchführung einer Aufzeichnungsoperation nach einem Block abgesucht wird, der als Steuerdatenbereich zur Speicherung von Steuerdaten der Steuertabelle für logische/physikalische Adressen genutzt wird, bevor die Aufzeichnungsoperation begonnen wird. Tatsächlich wird lediglich das letzte Segment des die Steuertabelle für logische/physikalische Adressen enthaltenden nichtflüchtigen Speichers nach einem Block mit einem Null-Steuertabellen-Flag im redundanten Teil bzw. Bereich der ersten Seite oder der Seite 0 des betreffenden Blockes abgesucht, wie dies in 14C veranschaulicht ist.
  • Der Ablauf der Prozedur geht dann weiter zu einem Schritt S2, bei dem eine Entscheidung darüber getroffen wird, ob der lokale Speicher der Aufzeichnungs-/Wiedergabevorrichtung bereits einige Steuerdaten der Steuertabelle für logische/physikalische Adressen in einer Menge enthält, die groß genug ist, um einen Zugriff auf den nichtflüchtigen Speicher vorzunehmen. Falls das Ergebnis der Entscheidung anzeigt, dass der lokale Speicher bereits einige Steuerdaten der Steuertabelle für logische/physikalische Adressen in einer Menge enthält, die groß genug ist, um einen Zugriff auf den nichtflüchtigen Speicher vorzunehmen, geht der Verarbeitungsablauf weiter zu einem Schritt S5. Wenn das Ergebnis der Entscheidung beim Schritt S2 anzeigt, dass der lokale Speicher keine Steuerdaten der Steuertabelle für logische/physikalische Adressen enthält, die notwendig sind für die Vornahme eines Zugriffs auf den nichtflüchtigen Speicher, dann geht der Verarbeitungsablauf andererseits weiter zu einem Schritt S17. Bei den Schritten S17, S18 und S19 wird ein Teil der derzeit in dem lokalen Speicher gespeicherten Steuerdaten mit anderen Steuerdaten getauscht. Beim Schritt S17 wird ein redundanter Bereich der derzeit in dem lokalen Speicher gespeicherten Steuerdaten mit dem Steuertabelle-Flag im Falle dieser Ausführungsform erzeugt, um anzugeben, dass es sich bei den einzuschreibenden Daten um Steuerdaten der Steuertabelle für logische/physikalische Adressen handelt.
  • Die Steuerdaten bilden einen Teil der Steuertabelle für logische/physikalische Adressen. Eine logische Adresse, die vorab der Steuertabelle für logische/physikalische Adressen zugeordnet ist, wird ebenfalls in dem redundanten Bereich aufgezeichnet.
  • Beim Schritt S18 werden die Steuerdaten der Steuertabelle für logische/physikalische Adressen, die derzeit in dem lokalen Speicher gespeichert sind, und der redundante Bereich, der beim Schritt S17 erzeugt worden ist, unter der logischen Adresse in den nichtflüchtigen Speicher geschrieben. Wie früher beschrieben, wird die logische Adresse durch das Dateisystem unter Heranziehung der Steuertabelle für logische/physikalische Adressen in eine physikalische Adresse in dem nichtflüchtigen Speicher umgesetzt, in welchem die Steuerdaten und der redundante Bereich tatsächlich gespeichert werden bzw. sind.
  • Beim Schritt S19 werden einige Steuerdaten aus der Steuertabelle für logische/physikalische Adressen, die für die Vornahme eines Zugriffs auf den nichtflüchtigen Speicher benötigt werden, wie dies beim Schritt S2 bestimmt ist, aus dem nichtflüchtigen Speicher zu dem lokalen Speicher übertragen. Nach Abschluss der Verarbeitung gemäß dem Schritt S19 geht der Prozedurablauf weiter zum Schritt S5.
  • Beim Schritt S5 wird ein Attribut der in den nichtflüchtigen Speicher einzuschreibenden Daten überprüft, um eine Entscheidung darüber zu treffen, ob die Daten Steuerdaten oder Hauptdaten sind. Falls das Ergebnis der Entscheidung ein Attribut von Hauptdaten anzeigt, geht der Prozedurablauf weiter zu einem Schritt S8. Falls demgegenüber das Ergebnis der Entscheidung ein Attribut von Steuerdaten anzeigt, geht der Prozedurablauf weiter zu einem Schritt S3.
  • Beim Schritt S3 wird ein redundanter Bereich der beim Schritt S5 erkannten Steuerdaten mit dem Steuertabellen-Flag des redundanten Bereichs im Falle dieser Ausführungsform erzeugt, um anzuzeigen, dass die einzuschreibenden Daten Steuerdaten der Steuertabelle für logische/physikalische Adressen sind. Die Steuerdaten bilden einen Teil der Steuertabelle für logische/physikalische Adressen. Außerdem wird in dem redundanten Bereich eine logische Adresse aufgezeichnet, die vorab der Steuertabelle für logische/physikalische Adressen zugeordnet worden ist.
  • Der Prozedurablauf geht dann weiter zu einem Schritt S4, bei dem die beim Schritt S5 erkannten Steuerdaten und der beim Schritt S3 erzeugte redundante Bereich unter der logischen Adresse in den nichtflüchtigen Speicher geschrieben werden. Wie früher beschrieben, wird die logische Adresse durch das Dateisystem unter Heranziehung der Steuertabelle für logische/physikalische Adressen in eine physikalische Adresse in dem nichtflüchtigen Speicher umgesetzt, unter der die Steuerdaten und der redundante Bereich tatsächlich gespeichert werden.
  • Beim Schritt S8 wird ein nächster Block, in den die Hauptdaten zu schreiben sind, bestimmt, indem ein Teil der derzeit in dem lokalen Speicher gespeicherten Steuertabelle für logische/physikalische Adressen herangezogen wird. Der Prozedurablauf geht dann weiter zu einem Schritt S9, bei dem eine Anzahl von Seiten, in die die Hauptdaten zu schreiben sind, bei 0 initialisiert wird.
  • Der Prozedurablauf geht dann weiter zu einem Schritt S10, bei dem Hauptdaten einer Seite von dem digitalen Signalprozessor DSP 102 eingegeben werden.
  • Bei einem Schritt S11 wird eine Entscheidung darüber getroffen, ob die Nummer einer Seite, in die die Hauptdaten zu schreiben sind, gegeben ist mit 0 oder nicht. Falls die Seitennummer gegeben ist mit 0, geht der Prozedurablauf weiter zu einem Schritt S12. Falls demgegenüber die Seitennummer nicht gegeben ist mit 0, geht der Prozedurablauf weiter zu einem Schritt S13. Bei dieser Ausführungsform weist eine Nicht-Null-Flag-Nummer einen Wert im Bereich von 1 bis 15 auf.
  • Beim Schritt S12 wird ein redundanter Bereich der erkannten Hauptdaten erzeugt, wobei das Steuertabellen-Flag des redundanten Bereichs im Falle dieser Ausführungsform auf 1 gesetzt wird bzw. ist, um anzuzeigen, dass die zu schreibenden Daten Hauptdaten sind. Vorab wird der Steuertabelle für logische/physikalische Adressen eine logische Adresse zugewiesen, die ebenfalls in dem redundanten Bereich aufgezeichnet wird.
  • Der Schritt S13 ist dem Schritt S12 ähnlich, allerdings mit der Ausnahme, dass die Inhalte eines erzeugten redundanten Bereichs beliebig sind. Die Inhalte können die Werte sein, die beim Schritt S12 festgelegt worden sind.
  • Nach Abschluss der Verarbeitung gemäß dem Schritt S12 oder S13 geht der Prozedurablauf weiter zu einem Schritt S14, bei der der beim Schritt S12 oder S13 erzeugte redundante Teil und die beim Schritt S10 erhaltenen 1-Seite-Hauptdaten in eine Seite des Blockes in den nichtflüchtigen Speicher geschrieben werden. Der Block wurde beim Schritt S8 bestimmt, und die Seite wird durch eine Seitennummer angezeigt, die beim Schritt S9 initialisiert wurde.
  • Der Prozedurablauf geht dann weiter zum Schritt S15, bei dem die Seitennummer inkrementiert wird.
  • Der Prozedurablauf geht dann weiter zu einem Schritt S16, um eine Entscheidung darüber zu treffen, ob die beim Schritt S15 inkrementierte Seitennummer die Nummer bzw. Anzahl der Seiten pro Block im nichtflüchtigen Speicher erreicht hat oder nicht. Bei dieser Ausführungsform ist die Anzahl der Seiten pro Block im nichtflüchtigen Speicher gegeben mit 16. Somit zeigt eine Seitennummer, die gleich 16 ist, an, dass die Operation zum Einschreiben von Daten in eine Blockeinheit abgeschlossen worden ist. In diesem Fall geht der Prozedurablauf zurück zum Schritt S2. Falls demgegenüber beim Schritt S16 festgestellt wird, dass die Seitennummer kleiner ist als 16, geht der Prozedurablauf zurück zum Schritt S10.
  • Durch Ausführen der oben beschriebenen Operationen ist die Aufzeichnungs-/Wiedergabevorrichtung imstande, Hauptdaten in dem flachen Speicher 1 aufzuzeichnen.
  • In der folgenden Beschreibung wird unter Bezugnahme auf die 16, 17 und 18 eine Operation zum Neuschreiben von Hauptdaten oder Steuerdaten erläutert. In der folgenden Beschreibung werden die Hauptdaten und die Steuerdaten einfach als Daten bezeichnet.
  • Bei dieser Ausführungsform, bei der der durch einen nichtflüchtigen Flash-Speicher realisierte flache Speicher 1 angewandt wird, werden Daten erneut in Blockeinheiten geschrieben. Der Grund hierfür liegt darin, dass im Unterschied zu einer Operation des Schreibens von neuen Daten in einen Flash-Speicher Daten bereits in einen Block neu geschrieben worden sind, aus dem zuvor Daten gelöscht worden sind. Als eine Charakteristik eines Flash-Speichers werden die kleinsten physikalischen Speichereinheiten von gelöschten Daten, die jeweils eine Zelle genannt werden, alle auf „1" gesetzt. Somit kann die kleinste physikalische Speichereinheit als ein Bit von logischen Daten betrachtet werden. Bei einer Operation zum Einschreiben von Daten in einen Flash-Speicher werden lediglich Nullen in Zellen eingeschrieben, die 0-Bits der Daten entsprechen. Genauer gesagt werden derartige Zellen jeweils in einen elektrischen Zustand 0 gebracht. Nachdem eine Zelle in einen elektrischen Zustand 0 gebracht ist, kann die Zelle nicht wieder in einen elektrischen Zustand 1 gebracht werden, und zwar auch dann nicht, wenn ein Bit mit einem Wert 1 in die Zelle geschrieben wird. Eine derartige Zelle kann in den elektrischen Zustand 1 lediglich in einer Block-Löschoperation zurückgebracht werden. Außerdem werden, wie früher beschrieben, bei dieser Ausführungsform aktualisierte Daten nicht wieder in denselben Bereich geschrieben, um die Lebensdauer des Flash-Speichers zu verlängern, die sonst durch wiederholte Operationen des Schreibens von Daten in denselben Bereich verkürzt werden kann. Vielmehr werden aktualisierte Daten in einen Block neu geschrieben, der derzeit nicht benutzt ist. Dies heißt, dass bei einer Neuschreiboperation die aktualisierten Daten von dem durch Daten soweit belegten Block zu dem nicht benutzten Block verschoben oder in diesen kopiert werden.
  • Wie zuvor beschrieben, weist die Steuertabelle für logische/physikalische Adressen einen Aufbau auf, bei dem jede logische Adresse dauerhaft einem Tabelleneintrag zugeordnet ist und bei dem eine dynamisch veränderbare physikalische Adresse, die der logischen Adresse zugeordnet ist, in dem Tabelleneintrag gespeichert wird bzw. ist. Bei einer Operation zum Neuschreiben von Daten in einen nicht benutzten Block ist es notwendig, die physikalische Adresse des nicht benutzten Blocks zu kennen. Wie in 11B veranschaulicht, umfasst ein Teil der Steuertabelle für logische/physikalische Adressen bezüglich des Segments 1 2Byte-Tabelleneinträge von 0 bis 495, die dauerhaft logischen Adressen von 0 bis 495 zugeordnet sind. Eine einer logischen Adresse zugehörige physikalische Adresse ist einem aufgezeichneten Tabelleneintrag zugeordnet. Tabelleneinträge nach dem Tabelleneintrag 495 werden jeweils zur Speicherung der physikalischen Adresse eines Extrablockes genutzt. Der Kopfteil der Tabelleneinträge zur Speicherung von physikalischen Adressen von Extrablöcken wird eindeutig durch eine Segmentnummer bestimmt.
  • 16 veranschaulicht in einem Ablaufdiagramm ein Verfahren zum Bestimmen eines Blockes, der bei einer Operation zum Neuschreiben von Daten als Schreib-Zielblock zu verwenden ist, sowie die zugehörige Verarbeitung, die in der Steuertabelle für logische/physikalische Adressen ausgeführt wird.
  • Wie in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das Ablaufdiagramm beim Schritt S21, bei dem eine physikalische Adresse beliebig aus den Tabelleneinträgen für Extrablöcke, wie in 11B veranschaulicht, als physikalische Adresse eines Schreib-Zielblockes ausgewählt wird. Ein Schreib-Zielblock stellt einen Block dar, in den Daten tatsächlich einzuschreiben sind.
  • Beim Schritt S22 wird die physikalische Adresse, welche der logischen Adresse zugehörig ist, die einem Block zugeordnet ist, der der Neuschreiboperation unterzogen wird, aus der in 11B gezeigten Steuertabelle für logische/physikalische Adressen ermittelt. Es sei darauf hingewiesen, dass Daten tatsächlich in einen Schreib-Zielblock anstatt in den Block geschrieben werden, der der Schreiboperation unterzogen wird.
  • Beim Schritt S23 wird die physikalische Adresse des beim Schritt S21 ausgewählten Schreib-Zielblocks in einen Tabelleneintrag katalogisiert, aus dem die physikalische Adresse des Blocks, der der Neuschreiboperation unterzogen wird, beim Schritt S22 ermittelt wurde. Beim Schritt S24 wird die beim Schritt S22 ermittelte physikalische Adresse des Blockes, der der Neuschreiboperation unterzogen wird, in einen Tabelleneintrag für einen Extrablock katalogisiert, aus dem die physikalische Adresse des Schreib-Zielblocks beim Schritt S21 ermittelt wurde.
  • Anschließend wird unter Bezugnahme auf ein in 17 gezeigtes Ablaufdiagramm eine Prozedur zum Neuschreiben von Hauptdaten erläutert.
  • Wie in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das Ablaufdiagramm beim Schritt S31, bei dem ein Schreib-Zielblock in derselben Weise ermittelt wird, wie beim Schritt S21 gemäß dem in 16 gezeigten Ablaufdiagramm. Beim Schritt S32 werden Daten aus dem Schreib-Zielblock gelöscht. Daten müssen aus dem Schreib-Zielblock angesichts des früher bereits beschriebenen Grundes gelöscht werden.
  • Beim Schritt S33 wird ein Aktualisierungs-Status-Flag des in 7F gezeigten Schreib-Quellblocks gesetzt. Der Schreib-Quellblock stellt einen Block dar, welcher der Neuschreiboperation unterzogen wird. Die Verarbeitung gemäß dem Schritt S33 wird ausgeführt, um mit einem Störfall, wie einem Spannungsversorgungsausfall, fertig zu werden. Im Falle eines Spannungsversorgungsausfalls kann sogar dann, wenn es Blöcke gibt, die dieselbe logische Adresse im selben Segment aufweisen, bei gesetztem Aktualisierungs-Status-Flag der Schreib-Quellblock mit Leichtigkeit identifiziert werden. Nachdem der Schreib-Quellblock identifiziert ist, wird es leicht, den Schreib-Zielblock wieder zu bestimmen.
  • Beim Schritt S34 werden die Inhalte der Steuertabelle für logische/physikalische Adressen in derselben Weise wie bei den Schritten S22, S23 und S24 in dem in 16 gezeigten Ablaufdiagramm aktualisiert. Auf diese Weise wird die physikalische Adresse des Schreib-Zielblocks in einem Tabelleneintrag der Steuertabelle für logische/physikalische Adressen als physikalische Adresse katalogisiert, die einer logischen Adresse zugehörig ist, welche dem Tabelleneintrag zugeordnet ist.
  • Beim Schritt S35 werden die ursprünglichen Daten aktualisiert, während die aktualisierten Daten in den Schreib-Zielblock neu geschrieben werden.
  • Anschließend wird unter Bezugnahme auf ein in 18 gezeigtes Ablaufdiagramm eine Prozedur zum Neuschreiben der Steuerdaten selbst, das heißt der Steuertabelle für logische/physikalische Adressen erläutert.
  • Wie in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das Ablaufdiagramm beim Schritt S41, bei dem ein Schreib-Zielblock in derselben Weise wie beim Schritt S21 in dem in 16 gezeigten Ablaufdiagramm ermittelt wird. Beim Schritt S42 werden Daten aus dem Schreib-Zielblock gelöscht. Daten müssen aus dem Schreib-Zielblock angesichts des bereits früher beschriebenen Grundes gelöscht werden.
  • Beim Schritt S43 wird ein Aktualisierungs-Status-Flag des in 7F gezeigten Schreib-Quellblocks gesetzt. Die Verarbeitung gemäß dem Schritt S43 wird ausgeführt, um mit einem Störfall, wie mit einem Spannungsversorgungsausfall, fertig zu werden. Im Falle eines Spannungsversorgungsausfalls kann sogar in dem Fall, dass Blöcke, die dieselbe logische Adresse im selben Segment besitzen, bei gesetztem Aktualisierungs-Status-Flag der Schreib-Quellblock mit Leichtigkeit identifiziert werden. Nachdem der Schreib-Quellblock identifiziert ist, ist es ein Leichtes, den Schreib-Zielblock wieder zu bestimmen.
  • Beim Schritt S44 wird ein Steuertabellen-Flag im redundanten Teil der Seite 0 des Schreib-Zielblocks auf 0 zurückgesetzt, um anzuzeigen, dass dieser Schreib-Zielblock ein Block zur Speicherung der Steuertabelle für logische/physikalische Adressen ist. Wie früher beschrieben, ist ein Flash-Speicher dadurch gekennzeichnet, dass nach erfolgter Rücksetzung einer Zelle des Flash-Speichers auf 0 diese solange nicht wieder auf 1 zurückgebracht werden kann, bis Daten in dem die Zelle enthaltenden Block durch ein Blocklöschen gelöscht wird. Auf diese Weise wird der Schreib-Zielblock als Block zur Speicherung der Steuertabelle für logische/physikalische Adressen erkannt, bis die Tabelle aus dem Block gelöscht wird.
  • Beim Schritt S45 werden die Inhalte der Steuertabelle für logische/physikalische Adressen in derselben Weise aktualisiert wie bei den Schritten S22, S23 und S24 in dem in 16 gezeigten Ablaufdiagramm. Auf diese Weise wird die physikalische Adresse des Schreib-Zielblocks in einem Tabelleneintrag in der Steuertabelle für logische/physikalische Adressen als physikalische Adresse katalogisiert, die einer logischen Adresse zugehörig ist, welche dem Tabelleneintrag zugeordnet ist.
  • Beim Schritt S546 werden die ursprünglichen Daten aktualisiert, während die aktualisierten Daten in den Schreib-Zielblock neu bzw. umgeschrieben werden.
  • 3. Systemkonfiguration
  • 3 veranschaulicht in einem Blockdiagramm den Aufbau bzw. die Konfiguration eines Hauptgeräts, welches imstande ist, Daten in den durch die soweit beschriebene Ausführungsform der vorliegenden Erfindung bereitgestellten flachen Speicher 1 zu schreiben und aus diesem auszulesen. Das Hauptgerät 100, wie es in 3 dargestellt ist, und der flache Speicher 1 bilden ein elektronisches Gerätesystem, welches durch die Ausführungsform realisiert ist. In diesem Fall ist das Hauptgerät bzw. die Hauptvorrichtung 100 imstande, zumindest Audiodaten in den flachen Speicher 1 zu schreiben und aus diesem auszulesen.
  • Der Aufbau des Hauptgeräts 100 umfasst einen Gehäuse-Anbringungs-/-Loslösungsmechanismus 120 zum Anbringen und Lösen des flachen Speichers 1 an bzw. von dem Hauptgerät 100. Daten werden zwischen dem flachen Speicher 1, der an dem Gehäuse-Anbringungs-/-Loslösungsmechanismus 120 angebracht ist, und dem Mikroprozessor 109 durch ein Host-Interface-IC 101 ausgetauscht.
  • Darüber hinaus weist das Hauptgerät 100 in typischer Weise auch ein Mikrofon 103 zur Eingabe eines Audiosignals auf, welches durch Sprache oder Schall repräsentiert ist. Das analoge Audiosignal wird dann einem digitalen Signalprozessor (DSP) 102 mittels eines Mikrofonverstärkers 104 zugeführt. In dem DSP-Prozessor 102 wird das eingangsseitige analoge Audiosignal in digitale Audiodaten umgesetzt, die einer notwendigen Signalverarbeitung unterzogen werden, wie einem Codierungsprozess, bevor sie an den Mikroprozessor 109 als Aufzeichnungsdaten abgegeben werden.
  • Der Mikroprozessor 109 ist imstande, eine Verarbeitung zur Aufzeichnung der Aufzeichnungsdaten in dem flachen Speicher 1 mittels des Host-Interface-IC 101 auszuführen.
  • Überdies liest der Mikroprozessor 109 in dem flachen Speicher 1 aufgezeichnete Audiodaten über das Host-Interface-IC 101 aus und gibt die Daten an den DSP-Prozessor 102 ab.
  • In dem DSP-Prozessor 102 werden die von dem Mikroprozessor 109 her empfangenen Daten einer notwendigen Signalverarbeitung, wie einer Demodulation, unterzogen. Der DSP-Prozessor 102 gibt schließlich ein analoges Audiosignal, welches als Ergebnis der Verarbeitung erhalten wird, an einen Lautsprecherverstärker 105 ab. Der Lautsprecherverstärker 105 verstärkt das von dem DSP-Prozessor 104 her erhaltene analoge Audiosignal und gibt ein verstärktes Signal an einen Lautsprecher 106 ab. Auf diese Weise wird ein Wiedergabe-Audiosignal abgegeben.
  • Durch Steuern eines Anzeige- bzw. Display-Treibers 107 ist der Mikroprozessor 109 imstande, ein gewünschtes Bild auf einer Display- bzw. Anzeigeeinheit 108 anzuzeigen. Es sei angenommen, dass Bilddaten, die ein Bewegtbild oder ein Standbild darstellen, in dem flachen Speicher 1 gespeichert worden sind. In diesem Falle ist der Mikroprozessor imstande, die aus dem flachen Speicher 1 ausgelesenen Bilddaten auf der Anzeige- bzw. Displayeinheit 108 anzuzeigen.
  • Eine Bedienungseinheit 112 ist mit einer Vielzahl von Tasten versehen, die vom Benutzer zu nutzen sind, um eine Vielfalt von Operationen für das Hauptgerät 100 auszuführen. Der Mikroprozessor 109 empfangt einen Befehl, der durch den Benutzer per Bedienung der Bedienungseinheit 112 eingegeben ist, und er führt die notwendige Steuerungsverarbeitung entsprechend dem Befehl aus.
  • Es sei darauf hingewiesen, dass der Aufbau des Hauptgerätes 100, wie es in 3 veranschaulicht ist, letztlich typisch ist. Dies heißt, dass das Hauptgerät 100 nicht auf den in der Figur gezeigten typischen Aufbau beschränkt ist. Mit anderen Worten ausgedrückt heißt dies, dass das Hauptgerät 100 als elektronisches Gerät irgendeines Typs realisiert sein kann, solange das elektronische Gerät imstande ist, Daten mit dem durch die Ausführungsform bereitgestellten flachen Speicher 1 auszutauschen.
  • Um Operationen zum Aufzeichnen und Wiedergeben (oder Schreiben und Lesen) von Daten in den bzw. aus dem zuvor erwähnten flachen Speicher 1 mittels des Hauptgeräts 100, welches den in 3 gezeigten Aufbau besitzt, zu realisieren, ist es erforderlich, dass auf die Steuertabelle für logische/physikalische Adressen durch das FAT-Dateisystem, wie es oben beschrieben worden ist, Bezug genommen wird.
  • 4 veranschaulicht in einem erläuternden Diagramm konzeptionell ein Interface zwischen dem Mikroprozessor 109, der in dem Hauptgerät 100 aufgrund des in 3 gezeigten Aufbaus verwendet ist, und der in dem flachen Speicher 1 gespeicherten Steuertabelle für logische/physikalische Adressen.
  • Wenn der durch die Ausführungsform bereitgestellte flache Speicher 1 beispielsweise an dem Hauptgerät 100 angebracht ist, liest der Mikroprozessor 109 notwendige Daten in der Steuertabelle TB für logische/physikalische Adressen aus dem flachen Speicher 1 durch das Host-Interface-IC 101 aus und speichert die Daten in einem internen RAM-Speicher 111.
  • Der Aufbau des konventionellen Systems ist in 1 zum Vergleich mit dem System veranschaulicht, das durch die in 3 gezeigte Ausführungsform bereitgestellt wird. In dem konventionellen System ist die Steuertabelle für logische/physikalische Adressen nicht in dem flachen Speicher 1A gespeichert, wie im Falle des in 1 gezeigten Aufbaus. Es sei darauf hingewiesen, dass Komponenten des in 1 gezeigten Aufbaus, die mit jenen identisch sind, welche in 3 gezeigt sind, durch dieselben Bezugszeichen wie dort bezeichnet sind und dass ihre Erläuterung nicht wiederholt wird.
  • Der in 1 gezeigte Systemaufbau unterscheidet sich von dem in 3 gezeigten Systemaufbau dadurch, dass im Falle des erstgenannten Aufbaus ein externer RAM- Speicher 113 in dem Hauptgerät 100A vorgesehen ist. Der RAM-Speicher 113 ist mit dem Mikroprozessor 109 verbunden.
  • Zum Zwecke eines Vergleichs mit dem Interface der in 4 dargestellten Ausführungsform zeigt 2 ein Interface zwischen dem Mikroprozessor 109, der in dem Hauptgerät 100A verwendet ist, und dem flachen Speicher 1A bei dem in 1 gezeigten konventionellen Systemaufbau.
  • Der RAM-Speicher 113 wird zur Speicherung der Steuertabelle für logische/physikalische Adressen benutzt. Wenn der flache Speicher 1A ohne die in ihm gespeicherte Steuertabelle für logische/physikalische Adressen angebracht ist, nimmt der Mikroprozessor 109 einen Zugriff mittels des Host-Interface-IC 101 auf den flachen Speicher 1A vor, um Dateninhalte des Speichers 1A im Hinblick auf die Ausführung einer Verarbeitung zum Aufbau einer Steuertabelle für logische/physikalische Adressen zu überprüfen. Die auf diese Weise aufgebaute Steuertabelle TB für logische/physikalische Adressen wird dann in dem RAM-Speicher 113 gespeichert.
  • Der RAM-Speicher 111, der in typischer Weise im Mikroprozessor 109 eingebettet ist, verfügt über eine Speicherkapazität von höchstens etwa mehreren 10KB. Es ist somit absolut unmöglich, die Steuertabelle für logische/physikalische Adressen mit einer Größe bis zu 16KB in dem RAM-Speicher 111 zu speichern, da das Vorhandensein der Steuertabelle für logische/physikalische Adressen in dem RAM-Speicher 111 ein Hindernis für eine weitere Verarbeitung bereitstellt. Einige Mikroprozessoren 109 weisen sogar einen RAM-Speicher 111 mit einer Größe auf, die kleiner ist als die Steuertabelle für logische/physikalische Adressen. Dies heißt, dass es im Falle eines Aufbaus, bei dem eine Steuertabelle für logische/physikalische Adressen in dem Hauptgerät aufgebaut und gesichert ist, nicht realistisch ist, die Steuertabelle für logische/physikalische Adressen in dem RAM-Speicher 111 zu speichern. Dies ist der Grund dafür, weshalb der externe RAM-Speicher 113 erforderlich ist.
  • Andererseits wendet die Ausführungsform einen Aufbau an, bei dem die Steuertabelle für logische/physikalische Adressen in dem flachen Speicher 1 gespeichert ist. In diesem Fall werden lediglich einige notwenige Daten der Steuertabelle für logische/physikalische Adressen einfach aus dem flachen Speicher 1 ausgelesen und in dem eingebetteten RAM-Speicher 111 gespeichert, wie dies früher unter Bezugnahme auf 4 erläutert worden ist. Der Mikroprozessor 109 benötigt lediglich Daten der Steuertabelle für logische/physikalische Adressen bezüglich eines Segments, welches einen Bereich von 1024 Bytes in der Steuertabelle für logische/physikalische Adressen belegt, wie dies in 11 gezeigt ist. Die Größe derartiger Daten wird kaum einen irgendwelche Probleme hervorrufenden Einfluss auf den RAM-Speicher 111 haben.
  • Aus diesem Grunde kann der externe RAM-Speicher 113 bei der in 3 gezeigten Ausführungsform eliminiert bzw. weggelassen werden. Infolgedessen können die Kosten des Hauptgeräts 100 gesenkt werden, und außerdem kann der Leistungsverbrauch durch die Energiemenge verringert werden, die für die Ansteuerung des externen RAM-Speichers 113 erforderlich ist.
  • Darüber hinaus ist im Falle der Ausführungsform der in dem Hauptgerät 100 verwendete Mikroprozessor 109 von der Verarbeitung entlastet, eine Steuertabelle für logische/physikalische Adressen aufzubauen. Es ist nicht länger eine Zeitspanne erforderlich, um auf die Verarbeitung zu warten, den Aufbau einer Steuertabelle für logische/physikalische Adressen abzuschließen. Infolgedessen nimmt die Ausführungsform eine solche Verwaltung vor, dass sie beispielsweise mit einer Verkürzung der Zeitspanne, die zur Ausführung der Aufbauverarbeitung des Dateisystems bezüglich des flachen Speichers 1 gebraucht wird, im Vergleich zu dem konventionellen System auskommt.
  • Ferner ist in der durch die Ausführungsform bereitgestellten Steuertabelle für logische/physikalische Adressen die physikalische Adresse des jeweiligen nicht benutzten Blocks einer nicht benutzten logischen Adresse zugehörig, wie dies früher unter Bezugnahme auf 12A und 12B beschrieben worden ist. Somit kann ein Zugriff auf einen nicht benutzten Block durch das FAT-Dateisystem in einer einfachen Verarbeitung und innerhalb einer kurzen Zeitspanne im Vergleich zu dem konventionellen System vorgenommen werden. Diese schnelle Verarbeitung ist besonders effektiv bezüglich eines Aufbaus gemäß 3, der durch das Hauptgerät 100 zur Aufzeichnung von Daten angewandt ist, die eine Echtzeitverarbeitung benötigen, wie Audiodaten.
  • Es sei darauf hingewiesen, dass die Ausführungsform der vorliegenden Erfindung nicht auf die oben beschriebene Ausführungsform beschränkt ist. Falls erforderlich, können Änderungen und Modifikationen bezüglich der Ausführungsform vorgenommen werden. So ist beispielsweise die durch die vorliegende Erfindung bereitgestellte Speichervorrichtung nicht auf die in 5A, 5B, 5C und 5D gezeigte äußere Form beschränkt. Die Speichervorrichtung kann in irgendeiner anderen äußeren Form ausgelegt sein. Darüber hinaus können beispielsweise detaillierte Vorschriften bezüglich des oben beschriebenen Formats des Dateisystems ebenfalls entsprechend aktuellen Anwendungen geändert werden. Überdies sind Änderungen in der Speicherkapazität des Flash-Speichers nicht auf die in 13 gezeigten Daten beschränkt.
  • Wie oben beschrieben, ist die Steuertabelle für logische/physikalische Adressen in der Speichervorrichtung gespeichert.
  • Somit ist es nicht notwendig, eine Verarbeitung zur Bildung einer Steuertabelle für logische/physikalische Adressen auszuführen. Infolgedessen kann zumindest die Zeitspanne, die zur Beendigung des Aufbauprozesses bezüglich des Dateisystems gebraucht wird, verkürzt werden. Während der Benutzer normalerweise warten muss, damit das Hauptgerät in einen Zustand eintritt, in welchem es imstande ist, Daten in die Speichervorrichtung zu schreiben und aus dieser zu lesen, nachdem die Speichervorrichtung beispielsweise an dem Hauptgerät angebracht ist, kann die Zeitspanne, die beim Warten auf einen solchen Zustand gebraucht wird, genauer gesagt im Falle der Ausführungsform daher verkürzt werden bzw. sein. Infolgedessen ist es dem Benutzer ermöglicht, das elektronische Gerät mehr in einer Weise zu nutzen, die er mag.
  • Darüber hinaus braucht bei einem solchen Aufbau das Hauptgerät beispielsweise lediglich einige notwendige Daten der Steuertabelle für logische/physikalische Adressen aus der Speichervorrichtung zu lesen und die Daten in typischer Weise in einem Speicherbereich des RAM-Speichers zu speichern, der in dem in dem Hauptgerät verwendeten Mikroprozessor eingebettet ist. Die Tabelle nimmt dabei lediglich einen kleinen Bereich des eingebetteten RAM-Speichers in Anspruch, so dass die Operation zur Erzielung der notwendigen Daten nahezu keine zusätzliche Belastung für den Mikroprozessor schafft.
  • Da es nicht notwendig ist, das Hauptgerät mit einem externen RAM-Speicher zu versehen, der über einen Speicherbereich verfügt, welcher sämtlichen Daten der Steuertabelle für logische/physikalische Adressen zugeordnet ist, können somit die Kosten des Hauptgeräts entsprechend verringert werden. Überdies kann auch der Leistungsverbrauch um den Betrag der elektrischen Leistung gesenkt werden, der für die Ansteuerung des externen RAM-Speichers erforderlich ist.
  • Bei der vorliegenden Erfindung werden Daten in eine Seite geschrieben, die eine der Speichereinheiten eines Flash-Speichers darstellt, und zwar in einem gleichmäßigen Format ohne Bezug auf den Datentyp. Jede Seite enthält stets Daten, die darin aufgezeichnet sind, und einen redundanten Teil, der Attribute der Daten als Paar zeigt. Eine Vielzahl von benachbarten Seiten stellt einen Block dar. Teile der Daten, die in Seiten gespeichert sind, welche einen Block darstellen, weisen dieselben Attribute auf. Durch Überprüfen lediglich des redundanten Teiles bzw. Bereiches zur Speicherung von Datenattributen in der Seite 0, welche die erste Seite eines Blocks darstellt, ist es somit möglich, die Attribute sämtlicher Teile der Daten im Block zu kennen. Da das Datenformat unabhängig von den Datenattributen gleichmäßig ist, ist es überdies nicht notwendig, eine Einrichtung und ein Verfahren zur Erzeugung einer Seite für jedes Datenattribut bereitzustellen. Im Hinblick auf die Erzeugung eines redundanten Bereiches bzw. Teiles, der in einer Seite zu speichern ist, ist es darüber hinaus nicht notwendig, eine Einrichtung und ein Verfahren zur Erzeugung eines redundanten Teiles bezüglich jeder Datenattribute bereitzustellen, die ein Paar mit den Daten bilden, da das Format des redundanten Teiles gleichmäßig ist. Ganz oben davon steht, dass die Datenstrukturen von Blöcken und Seiten unabhängig von den Attributen der darin gespeicherten Daten gleichmäßig sind. Es ist somit nicht notwendig, eine Vielzahl von Leseinrichtungen und Leseverfahren bereitzustellen, die jeweils für einen Block geeignet sind, wenn eine Wiedergabevorrichtung zur Wiedergabe der Daten von Seiten und Blöcken ausgebildet wird. Dies bedeutet außerdem, dass die Anzahl von Schaltungsblöcken und die Anzahl von Programmverarbeitungsschritten nennenswert reduziert werden kann. Somit zeigt sich ein Effekt der Hinzufügung von Funktionen zu einer Wiedergabevorrichtung in einem Gerät, welches so aufgebaut ist, dass es eine geringe Größe, ein geringes Gewicht und einen geringen Leistungsverbrauch aufweist, wie die durch die vorliegende Erfindung bereitgestellte Vorrichtung bzw. das betreffende Gerät.
  • Gemäß der vorliegenden Erfindung ist überdies eine Information zum Identifizieren der Steuertabelle für logische/physikalische Adressen ebenfalls in einem Block der Speichervorrichtung zur Speicherung der Steuertabelle für logische/physikalische Adressen aufgezeichnet. Somit kann bei einer Operation zum Absuchen der Speichervorrichtung nach einem die Steuertabelle für logische/physikalische Adressen enthaltenden Block die betreffende Steuertabelle für logische/physikalische Adressen aus den in der Speichervorrichtung gespeicherten Daten identifiziert werden.
  • Darüber hinaus wird gemäß der vorliegenden Erfindung eine nicht benutzte logische Adresse in der in der Speichervorrichtung gespeicherten Steuertabelle für logische/physikalische Adressen dadurch katalogisiert, dass eine Zuordnung der nicht benutzten logischen Adresse zu der physikalischen Adresse eines nicht benutzten Blocks erfolgt, das heißt eines Blockes, in dem keine Daten aufgezeichnet sind. Somit kann die Stelle bzw. Lage eines nicht benutzten Blocks dadurch leicht bestimmt werden, dass auf die physikalische Adresse des Blocks Bezug genommen wird, ohne nach einem nicht benutzten Block in einer anderen hierarchischen Schicht suchen zu müssen. Da die Verarbeitung zum Suchen eines nicht benutzten Blocks bei einer Operation zum Schreiben von Daten nicht erforderlich ist, heißt dies, dass die Daten in einen nicht benutzten Block mit einer hohen Geschwindigkeit unter einer geringen Verarbeitungsbelastung geschrieben werden können. Die schnelle Verarbeitung ist insbesondere in einem Fall wirksam, in welchem aufzuzeichnende Daten gegeben sind durch Daten, die längs der Zeitachse festgestellt werden, wie Audiodaten oder Bewegtbilddaten, welche eine Echtzeitverarbeitung benötigen.

Claims (15)

  1. Nichtflüchtiger Speicher (100) mit einer Vielzahl von Blöcken, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine feste Länge besitzt und als Daten-Lese-/Schreibeinheit dient, wobei ein Speicherbereich des betreffenden nichtflüchtigen Speichers umfasst: einen Hauptdatenbereich, der zumindest einen der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Speicherdaten voneinander und für die Speicherung der Hauptdaten genutzt wird, und einen Steuerdatenbereich, der irgendeinen anderen Block der betreffenden Blöcke mit einer Vielzahl der betreffenden benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten genutzt wird, welche Beziehungen in der Zuordnung von logischen Adressen (102, 103, 104, 105) zu physikalischen Adressen (105, 106, 107, 108) repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet sind, die in die betreffenden Blöcke geschrieben sind, und wobei die betreffenden physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen, dadurch gekennzeichnet, dass die physikalische Adresse eines als nicht benutzter Block behandelten Blockes einer logischen Adresse zugeordnet ist, die dem betreffenden nicht benutzten Block zugewiesen ist.
  2. Nichtflüchtiger Speicher (100) nach Anspruch 1, wobei die Länge der die Seiten des genannten Hauptdatenbereiches belegenden Hauptdaten gleich der Länge der die Seiten des genannten Steuerdatenbereiches belegenden Steuerdaten ist.
  3. Nichtflüchtiger Speicher (100) nach Anspruch 1 oder 2, wobei die betreffenden Steuerdaten eine Anordnung von physikalischen Adressen sind, die in einer Reihenfolge angeordnet sind, welche durch die logischen Adressen festgelegt ist, denen die betreffenden physikalischen Adressen zugeordnet sind.
  4. Nichtflüchtiger Speicher (100) nach Anspruch 1, 2 oder 3, wobei die betreffenden Steuerdaten in einem der genannten Blöcke im letzten Segment des genannten Speicherbereiches des nichtflüchtigen Speichers gespeichert sind.
  5. Nichtflüchtiger Speicher (100) nach Anspruch 1, 2, 3 oder 4, wobei ein Attribut-Speicherbereich eines Speicherbereiches, der die genannten Steuerdaten enthält, ein Attribut enthält, welches angibt, dass die in dem betreffenden Speicherbereich gespeicherten Daten die genannten Steuerdaten sind.
  6. Nichtflüchtiger Speicher (100) nach einem der vorhergehenden Ansprüche, wobei ein Block, aus dem Daten gelöscht wurden, als nicht benutzter Block behandelt wird.
  7. Nichtflüchtiger Speicher (100) nach Anspruch 6, wobei in dem Fall, dass neue Daten vermutlich in einen belegten Block geschrieben werden, in welchen bereits alte Daten geschrieben sind, die betreffenden neuen Daten in einen nicht benutzten Block geschrieben und die betreffenden alten Daten aus dem genannten belegten Block gelöscht werden.
  8. Speichervorrichtung (1) zur Speicherung von Daten in einem nichtflüchtigen Speicher (100), der eine Vielzahl von Blöcken aufweist, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine feste Länge besitzt und als Daten-Lese-/Schreibeinheit dient, wobei ein Speicherbereich des nichtflüchtigen Speichers umfasst: einen Hauptdatenbereich, der zumindest einen Block der betreffenden Blöcke, mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Speicherdaten voneinander und für die Speicherung der Hauptdaten genutzt wird, und einen Steuerdatenbereich, der irgendeinen anderen Block der betreffenden Blöcke, mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten genutzt wird, welche Beziehungen in der Zuordnung von logischen Adressen (102, 103, 104, 105) zu physikalischen Adressen (105, 106, 107, 108) repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet sind, die in die betreffenden Blöcke geschrieben sind, und wobei die betreffenden physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen, dadurch gekennzeichnet, dass der physikalischen Adresse eines als nicht benutzter Block behandelten Blockes eine logische Adresse zugeordnet ist, die dem betreffenden nicht benutzten Block zugewiesen ist, dass die betreffende Speichervorrichtung umfasst: eine Attribut-Bestimmungseinrichtung zur Bestimmung, ob in den betreffenden nichtflüchtigen Speicher zu schreibende Daten Hauptdaten oder Steuerdaten sind, eine Identifikator-Erzeugungseinrichtung zur Erzeugung eines Identifikators, der entsprechend einem von der genannten Attribut-Bestimmungseinrichtung abgegebenen Bestimmungsergebnis angibt, ob die in den betreffenden nichtflüchtigen Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind, und eine Speichersteuereinrichtung (109) zum Zusammensetzen der in den betreffenden nichtflüchtigen Speicher zu schreibenden Daten und des von der Identifikator-Erzeugungseinrichtung abgegebenen Identifikators sowie zum Einschreiben der zusammengesetzten Daten in den nichtflüchtigen Speicher.
  9. Speichervorrichtung (1) nach Anspruch 8, ferner enthaltend einen lokalen Speicher (111) zum temporären Festhalten eines Teiles der betreffenden Steuerdaten, die aus dem nichtflüchtigen Speicher gelesen sind.
  10. Speichervorrichtung (1) nach Anspruch 9, umfassend eine Entscheidungseinrichtung zum Treffen einer Entscheidung (S2) darüber, ob der lokale Speicher (111) genügend Steuerdaten einer logischen/physikalischen Adressen-Steuertabelle enthält, um einen Zugriff auf den betreffenden nichtflüchtigen Speicher vorzunehmen.
  11. Speichervorrichtung (1) nach Anspruch 9 oder 10, ferner enthaltend eine Sucheinrichtung zum Absuchen des betreffenden nichtflüchtigen Speichers nach einer als nicht benutzt behandelten Seite der genannten Seiten, wobei in dem Fall, dass in dem betreffenden nichtflüchtigen Speicher existierende erste Daten durch zweite Daten ersetzt werden, die betreffende Sucheinrichtung den nichtflüchtigen Speicher nach einer nicht benutzten Seite absucht und sodann die Speichersteuereinrichtung die genannten zweiten Daten in die durch die betreffende Sucheinrichtung gefundene nicht benutzte Seite schreibt und die genannten ersten Daten löscht.
  12. Speicherungsverfahren zum Speichern von Daten in einen nichtflüchtigen Speicher, der eine Vielzahl von Blöcken aufweist, deren jeder als Datenlöscheinheit dient und eine Vielzahl von benachbarten Seiten aufweist, deren jede eine feste Länge besitzt und als Daten-Lese-/Schreibeinheit dient, wobei ein Speicherbereich des betreffenden nichtflüchtigen Speichers umfasst: einen Hauptdatenbereich, der zumindest einen der genannten Blöcke mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Hauptdaten genutzt wird, und einen Steuerdatenbereich, der irgendeinen anderen Block der betreffenden Blöcke mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und für die Speicherung von Steuerdaten genutzt wird, welche Beziehungen in der Zuordnung von logischen Adressen zu physikalischen Adressen repräsentieren, wobei die betreffenden logischen Adressen Teilen von Daten zugewiesen sind, die in die betreffenden Blöcke geschrieben sind, und wobei die genannten physikalischen Adressen eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen, dadurch gekennzeichnet, dass die physikalische Adresse eines als nicht benutzter Block behandelten Blockes einer dem betreffenden nicht benutzten Block zugewiesenen logischen Adresse zugeordnet wird, wobei das betreffende Speicherungsverfahren umfasst: einen Attribut-Bestimmungsschritt (S5) zur Bestimmung, ob in den betreffenden nichtflüchtigen Speicher zu schreibende Daten Hauptdaten oder Steuerdaten sind, einen Identifikator-Erzeugungsschritt zur Erzeugung eines Identifikators, der entsprechend einem bei dem betreffenden Attribut-Bestimmungsschritt abgegebenen Bestimmungsergebnis angibt, ob die in den nichtflüchtigen Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind, und einen Schritt zum Zusammensetzen (S12) der in den betreffenden nichtflüchtigen Speicher zu schreibenden Daten und des bei dem Identifikator-Erzeugungsschritt abgegebenen Identifikators sowie zum Einschreiben (S14) der zusammengesetzten Daten in den nichtflüchtigen Speicher.
  13. Speicherungsverfahren nach Anspruch 12, ferner umfassend den Schritt der Nutzung eines lokalen Speichers zum temporären Festhalten eines Teiles der aus dem betreffenden nichtflüchtigen Speicher gelesenen Steuerdaten (S18).
  14. Speicherungsverfahren nach Anspruch 13, umfassend einen Entscheidungsschritt (S2) zum Treffen einer Entscheidung darüber, ob der lokale Speicher (111) genügend Steuerdaten einer logischen/physikalischen Adressen-Steuertabelle enthält, um einen Zugriff auf den nichtflüchtigen Speicher vorzunehmen.
  15. Speicherungsverfahren nach Anspruch 12, 13 oder 14, wobei in dem nichtflüchtigen Speicher existierende erste Daten durch zweite Daten ersetzt werden, indem die Schritte ausgeführt werden: Absuchen (S1) des nichtflüchtigen Speichers nach einer als nicht benutzt behandelten Seite der genannten Seiten und Schreiben (S14) der betreffenden zweiten Daten in die in dem genannten Suchschritt ermittelte nicht benutzte Seite sowie Löschen der genannten ersten Daten.
DE69936246T 1998-07-28 1999-07-26 Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren Expired - Lifetime DE69936246T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP21263098 1998-07-28
JP21263098A JP4085478B2 (ja) 1998-07-28 1998-07-28 記憶媒体及び電子機器システム

Publications (2)

Publication Number Publication Date
DE69936246D1 DE69936246D1 (de) 2007-07-19
DE69936246T2 true DE69936246T2 (de) 2008-01-31

Family

ID=16625856

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69936246T Expired - Lifetime DE69936246T2 (de) 1998-07-28 1999-07-26 Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren

Country Status (9)

Country Link
US (2) US6591328B1 (de)
EP (1) EP0977121B1 (de)
JP (1) JP4085478B2 (de)
KR (1) KR100631887B1 (de)
CN (1) CN1295706C (de)
AT (1) ATE364205T1 (de)
DE (1) DE69936246T2 (de)
MY (1) MY121835A (de)
RU (1) RU2243588C2 (de)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2339044B (en) * 1998-03-02 2003-06-04 Lexar Media Inc Flash memory card with enhanced operating mode detection and user-friendly interfacing system
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP2001056760A (ja) * 1999-08-19 2001-02-27 Murata Mfg Co Ltd データ処理装置
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2001338497A (ja) * 2000-05-24 2001-12-07 Fujitsu Ltd メモリ試験方法
US7155559B1 (en) 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6772307B1 (en) * 2001-06-11 2004-08-03 Intel Corporation Firmware memory having multiple protected blocks
CN1255733C (zh) * 2001-07-25 2006-05-10 索尼株式会社 非易失性存储器和非易失性存储器的数据改写方法
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
EP1461762B1 (de) * 2001-12-17 2007-11-07 Nxp B.V. Kommunikationsstation zur transponderinventur mittels wählbarer speicherbereiche der transponder
WO2003071853A2 (en) * 2002-02-22 2003-09-04 Lexar Media, Inc. Removable memory media with integral indicator light
CN100592270C (zh) * 2002-07-18 2010-02-24 夏普株式会社 图像处理装置
JP2004062554A (ja) * 2002-07-30 2004-02-26 Oki Electric Ind Co Ltd フラッシュメモリの管理方法
CA2461446A1 (en) * 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. Semiconductor memory apparatus and method for writing data into the flash memory device
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
JP2005128771A (ja) * 2003-10-23 2005-05-19 Fujitsu Ltd データファイルシステム、データアクセスサーバ、およびデータアクセスプログラム
KR20070007264A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
TW200523946A (en) * 2004-01-13 2005-07-16 Ali Corp Method for accessing a nonvolatile memory
US8271752B2 (en) 2004-03-12 2012-09-18 Lg Electronics, Inc. Recording medium, method and apparatus for recording on recordable recording medium, and method for managing backup files of the same
KR20060043573A (ko) 2004-03-12 2006-05-15 엘지전자 주식회사 기록매체 및 기록매체에의 기록방법 및 기록장치와 기록매체의 백업 파일 관리방법
JP2005285191A (ja) * 2004-03-29 2005-10-13 Nec Electronics Corp 不揮発性半導体記憶装置及びその駆動方法
JP4182928B2 (ja) * 2004-07-07 2008-11-19 セイコーエプソン株式会社 情報処理装置、メモリ管理プログラムおよびメモリ管理方法
EP1630657A1 (de) * 2004-08-30 2006-03-01 STMicroelectronics S.r.l. Eingebetteter Speicher mit integrierter Datenverwaltung und Speichersystem dazu
JP4192129B2 (ja) * 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
US20060075183A1 (en) * 2004-10-06 2006-04-06 Phison Electronics Corp. [method of applying flash memory as buffer in electrical appliance]
US7480761B2 (en) * 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
US7743417B2 (en) * 2005-02-28 2010-06-22 Hitachi Global Storage Technologies Netherlands B.V. Data storage device with code scanning capability
ATE381061T1 (de) * 2005-03-08 2007-12-15 Bosch Gmbh Robert Verfahren und vorrichtung zum wiederbeschreiben eines sektors mit bootloader-software in einem sektor-löschbaren nichtflüchtigen halbleiterspeicher
CA2597692A1 (en) 2005-04-21 2006-11-02 Violin Memory, Inc. Interconnection system
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
JP2007011522A (ja) * 2005-06-29 2007-01-18 Hitachi Ltd データの消去方法、ストレージ・デバイス及び計算機システム
US7558804B1 (en) 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
FR2901035B1 (fr) * 2006-05-11 2008-07-11 St Microelectronics Sa Procede et dispositif de gestion d'une table de correspondance d'acces a une memoire
CN101115246B (zh) * 2006-07-25 2010-06-09 中兴通讯股份有限公司 一种移动终端的数据存储方法
KR100791325B1 (ko) * 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법
US20080189473A1 (en) * 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
US7657572B2 (en) * 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US7966518B2 (en) * 2007-05-15 2011-06-21 Sandisk Corporation Method for repairing a neighborhood of rows in a memory array using a patch table
US7958390B2 (en) * 2007-05-15 2011-06-07 Sandisk Corporation Memory device for repairing a neighborhood of rows in a memory array using a patch table
JP2008090870A (ja) * 2007-12-27 2008-04-17 Sony Corp 記憶媒体及び電子機器システム
EP2111583A4 (de) 2008-02-29 2010-06-02 Toshiba Kk Speichersystem
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8732388B2 (en) 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
WO2010144587A2 (en) * 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN102012869B (zh) * 2009-09-04 2012-11-14 威刚科技股份有限公司 闪存储存系统的数据刻录方法
TWI407305B (zh) * 2010-01-20 2013-09-01 Silicon Motion Inc 快閃記憶體之資料存取方法以及快閃記憶體裝置
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US9110702B2 (en) * 2010-06-02 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine migration techniques
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
FR2977047B1 (fr) * 2011-06-22 2013-08-16 Starchip Procede de gestion de l'endurance de memoires non volatiles.
JP5597666B2 (ja) * 2012-03-26 2014-10-01 株式会社東芝 半導体記憶装置、情報処理システムおよび制御方法
JP2016506585A (ja) * 2013-01-08 2016-03-03 ヴァイオリン メモリー インコーポレイテッド データストレージのための方法及びシステム
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
JP6083416B2 (ja) * 2014-06-12 2017-02-22 コニカミノルタ株式会社 ジョブ実行装置、プログラム、データ削除方法
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
JP2016071447A (ja) * 2014-09-26 2016-05-09 ラピスセミコンダクタ株式会社 不揮発性記憶装置及び不揮発性記憶装置の制御方法
WO2016112957A1 (en) * 2015-01-13 2016-07-21 Hitachi Data Systems Engineering UK Limited Computer program product, method, apparatus and data storage system for managing defragmentation in file systems
US10296236B2 (en) * 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
RU2636107C1 (ru) * 2016-10-28 2017-11-20 Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники" Способ записи данных на накопитель цифровой информации на базе flash-памяти типа nand
WO2018165957A1 (en) * 2017-03-16 2018-09-20 Microsoft Technology Licensing, Llc. Log-appended-structured storage management with byte-level accessibility
US20180349036A1 (en) * 2017-06-01 2018-12-06 Seagate Technology Llc Data Storage Map with Custom Map Attribute
DE102020120488A1 (de) * 2019-12-20 2021-06-24 Taiwan Semiconductor Manufacturing Co. Ltd. Verfahren zur nachschlagtabellenfreien speicherreperatur
US11367500B2 (en) 2019-12-20 2022-06-21 Taiwan Semiconductor Manufacturing Company, Ltd. Method for LUT-free memory repair
US11500775B2 (en) 2021-02-24 2022-11-15 Macronix International Co., Ltd. File system management in memory device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3978449A (en) * 1975-01-27 1976-08-31 Computer Transmission Corporation Method and apparatus for in-band signalling in data transmission
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4755985A (en) * 1986-12-09 1988-07-05 Racal Data Communications Inc. Method and apparatus for facilitating moves and changes in a communication system
JPH03212884A (ja) * 1990-01-17 1991-09-18 Nec Corp 磁気ディスク装置
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JPH0736175B2 (ja) * 1991-10-11 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムのシステム構成設定方法、データ処理システム、及びデータ処理システム用拡張ユニット
US5638537A (en) * 1993-01-29 1997-06-10 Mitsubishi Denki Kabushiki Kaisha Cache system with access mode determination for prioritizing accesses to cache memory
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5524231A (en) * 1993-06-30 1996-06-04 Intel Corporation Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card
DE4426094C2 (de) * 1994-07-22 1998-04-16 Siemens Nixdorf Inf Syst Datenreduktion für Buskoppler
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof
US6192504B1 (en) * 1997-05-14 2001-02-20 International Business Machines Corporation Methods and systems for functionally describing a digital hardware design and for converting a functional specification of same into a netlist
JP3044005B2 (ja) * 1997-05-29 2000-05-22 公一 柴山 データ格納制御方式
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
US6188835B1 (en) * 1998-08-21 2001-02-13 Lsi Logic Corporation Optical disk system and method for storing data allowing playback of selected portions of recorded presentations
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function

Also Published As

Publication number Publication date
JP2000047932A (ja) 2000-02-18
CN1295706C (zh) 2007-01-17
DE69936246D1 (de) 2007-07-19
US6591328B1 (en) 2003-07-08
RU2243588C2 (ru) 2004-12-27
KR100631887B1 (ko) 2006-10-04
US20020124130A1 (en) 2002-09-05
KR20000011959A (ko) 2000-02-25
US6625713B2 (en) 2003-09-23
CN1243317A (zh) 2000-02-02
JP4085478B2 (ja) 2008-05-14
EP0977121A3 (de) 2004-05-19
MY121835A (en) 2006-02-28
EP0977121B1 (de) 2007-06-06
ATE364205T1 (de) 2007-06-15
EP0977121A2 (de) 2000-02-02

Similar Documents

Publication Publication Date Title
DE69936246T2 (de) Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren
DE60032531T2 (de) Aufzeichnungsverfahren, Verwaltungsverfahren und Aufzeichnungsgerät
DE60019903T2 (de) Speichersystem
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE60319563T2 (de) Verwaltung der anzahl von löschungen in einem nicht-fluchtigem speicher
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE69630624T2 (de) EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern
DE60317551T2 (de) Aufrechterhaltung gleichförmiger löschhäufigkeit in einem nichtflüchtigen speichersystem
DE60121697T2 (de) Verfahren zum ansteuern von remapping in einem flash-speicher und in einer dafür geeigneten flash-speicher-architektur
DE69233228T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C. Speicherkarte mit solchem Datenverwaltungssystem
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE60017870T2 (de) Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte
DE19623853A1 (de) Halbleiter-Speichervorrichtung
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE602004005939T2 (de) Vorrichtung und Verfahren zur Datenverwaltung nichtflüchtiger Speicher
DE19537305A1 (de) Halbleiter-Platteneinrichtung und Speicherverwaltungsmethode
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE102005063250A1 (de) Datenspeicherungssteuersystem, Speicher- und Rechnersystem und Betriebsverfahren
DE10243586A1 (de) Speichersteuerung für eine Speicherkarten-Verwaltet-Datei-Zuordnungstabelle
DE102006003261A1 (de) Speichersystem und Verfahren zur Datenzusammenführung
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE69923629T2 (de) Aufzeichnungsmedium zur Speicherung von stillstehenden Bildern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition