DE69432878T2 - Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher - Google Patents

Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher Download PDF

Info

Publication number
DE69432878T2
DE69432878T2 DE69432878T DE69432878T DE69432878T2 DE 69432878 T2 DE69432878 T2 DE 69432878T2 DE 69432878 T DE69432878 T DE 69432878T DE 69432878 T DE69432878 T DE 69432878T DE 69432878 T2 DE69432878 T2 DE 69432878T2
Authority
DE
Germany
Prior art keywords
data
memory
address
block
write
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
DE69432878T
Other languages
English (en)
Other versions
DE69432878D1 (de
Inventor
Tsunehiro Yokohama-shi Tobita
Jun Yokohama-shi Kitahara
Takashi Ebina-shi Tsunehiro
Kunihiro Totsuka-ku Katayama
Ryuichi Kawasaki-shi Hattori
Yukihiro Yokohama-shi Seki
Hajime Ebina-shi Yamagami
Takashi Machida-shi Totsuka
Takeshi Akishima-shi Wada
Yosio Funabashi-shi Takaya
Manabu Inba-gun Saito
Kenichi Zama-shi Kaki
Takao Higashioume Okubo
Takashi Sagamihara-shi Kikuchi
Masamichi Tachikawa-shi Kishi
Takeshi Inagi-shi Suzuki
Shigeru Akishima-shi Kadowaki
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.)
Hitachi Ltd
Hitachi Keiyo Engineering Co Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
Hitachi Keiyo Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP12240193A external-priority patent/JPH06332806A/ja
Priority claimed from JP5174372A external-priority patent/JPH0728690A/ja
Priority claimed from JP17561993A external-priority patent/JPH0736759A/ja
Application filed by Hitachi Ltd, Hitachi ULSI Systems Co Ltd, Hitachi Keiyo Engineering Co Ltd filed Critical Hitachi Ltd
Publication of DE69432878D1 publication Critical patent/DE69432878D1/de
Application granted granted Critical
Publication of DE69432878T2 publication Critical patent/DE69432878T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/068Hybrid storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/789Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using non-volatile cells or latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf ein informationsverarbeitendes System gemäß den Ansprüchen 1 bzw. 10.
  • 2. Beschreibung der verwandten Technik
  • Ein Flash-Speicher ist verfügbar als einer der Speicher, die in kleinen informationsverarbeitenden Vorrichtungen, Maschinen etc. verwendet werden. Der Flash-Speicher hat die folgenden vier Vorteile als ein viel versprechender Speicher zum Ersetzen einer Festplatte:
    • 1. Daten werden behalten, wenn der Strom abgeschaltet wird (Daten in einem DRAM gehen verloren, wenn der Strom abgeschaltet wird).
    • 2. Schnelles Datenlesen im Vergleich zu einer Festplatte.
    • 3. Halbleiter-Vorrichtung, die eine hohe Widerstandsfähigkeit gegenüber Vibrationen aufweist im Vergleich zu einer Festplatte.
    • 4. Weniger teuer im Vergleich zu einem SRAM.
  • Der Flash-Speicher weist jedoch die folgenden Nachteile auf:
    • 1. Wenn Daten geschrieben werden, muss der Inhalt des Schreibbereichs gelöscht worden sein.
    • 2. Löschen wird in Chip-Einheiten oder Block-Einheiten einer gegebenen Größe durchgeführt.
    • 3. Schreiben benötigt Zeit aus den unter 1 und 2 genannten Gründen.
    • 4. Da Elemente abgenutzt werden durch Wiederholen eines Schreibens, ist die Schreibanzahl begrenzt.
  • 97 ist ein schematisches Diagramm eines Flash-Speichers, der 1024 Blöcke enthält, die jeweils aus 512 Bytes (insgesamt 524 288 Bytes) bestehen. In 97 bezeichnet das Bezugszeichen 4110 einen Block in dem Flash-Speicher und das Bezugszeichen 4111 bezeichnet einen 1-Byte-Daten-Rückhalte-Abschnitt im Block 4110, auf den im Folgenden als eine Zelle Bezug genommen wird. Bezugszeichen 4105 ist ein Steuerschaltkreis. Wenn ein Lesezugriff in den Flash-Speicher gemacht wird, werden Daten von der Zelle gelesen, die bestimmt ist durch das Adress-Signal A0–A8, ein Puffer 4121 und ein Dekodierer 4122 in dem Block, der bestimmt ist durch das Adress-Signal A9–A18, ein Puffer 4131 und ein Dekodierer 4132, und wird ausgegeben über ein Register 4141 an E/A 0 –E/A 7. Das Bezugszeichen 4123 ist ein Steuersignal des Puffers 4121 und des Dekodierers 4122. Das Bezugszeichen 4133 ist ein Steuersignal des Puffers 4131 und des Dekodierers 4132. Das Bezugszeichen 4142 ist ein Steuersignal des Registers 4141. Auf der anderen Seite, wenn ein Schreibzugriff gemacht wird in den Flash-Speicher in 97, wird der Inhalt des Blocks bestimmt durch das Adress-Signal A9–A18, der Puffer 4131 und der Dekodierer 4132 werden gelöscht und Eingabedaten von E/A 0–E/A 7 werden über das Register 4141 in die Zelle geschrieben, die bestimmt ist durch das Adress-Signal A0–A8, der Puffer 4121 und der Dekodierer 4122. Das Bezugszeichen 401 ist ein Steuersignal der Steuereinheit 4105.
  • Die oben erwähnte Begrenzung der Schreibanzahl führt auf ein schwerwiegendes Problem bei der Verwendung des Flash-Speichers als Speicher-Medium einer Halbleiterplatte. Beispielsweise werden Daten in Gebiete wie z. B. ein Dateiverzeichnis oder ein FAT (file allocation table bzw. Datei-Belegungstabelle) auf einer Platte häufiger als in andere Gebiete geschrieben, d. h. Daten werden lediglich in besondere Blöcke des Flash-Speichers geschrieben, die für das Dateiverzeichnis und FAT belegt werden und die Wahrscheinlichkeit ist groß, dass die Schreibanzahl-Begrenzung des Flash-Speichers in den bestimmten Blöcken schneller überschritten wird als in anderen Blöcken. Wenn die Schreibanzahl-Begrenzung überschritten ist, sind die Elemente abgenutzt und es kann unmöglich sein, ein herkömmliches Lesen oder Schreiben auszuführen. Falls ein Dateiverzeichnis oder FAT auf einer Platte zerstört ist, kann die gesamte Platte nicht gelesen werden. Deshalb macht eine Fehlfunktion lediglich in besonderen Blöcken die gesamte Halbleiterplatte unbenutzbar, was zu einer geringen Effizienz führt.
  • Ein Flash-EEPROM-(electrically erasable and programmable read only memory bzw. elektrisch lösch- und programmierbarer schreibgeschützter Speicher)-System wird in der japanischen Patentoffenlegung Nr. Hei 2-292798 als verwandte Technik eines Dateispeichers beschrieben, welche einen Flash-Speicher als Speicher-Medium verwendet.
  • Die verwandte Technik stellt eine korrigierende Handlung bereit, wenn eine schadhafte Stelle im Flash-Speicher auftritt. Z. B. schlägt die verwandte Technik vor, dass Ersatzzellen bereitgestellt werden und dass eine Fehlerkorrektur-Steuerung durchgeführt wird, so dass Daten zu normalen Daten korrigiert werden, welche gestört wurden aufgrund des Auftretens einer schadhaften Zelle, womit die Schreib-Anzahl-Begrenzung als Nachteil des Flash-Speichers überwunden wird und die Lebenszeit des Systems ausgedehnt wird. Das System wird auch mit einem Schreib-Cache-Speicher bereitgestellt und ein Zurückschreiben in den Flash-Speicher wird durchgeführt auf der Grundlage der Zeit, die verstrichen ist zwischen dem letzten Schreiben in den Cache-Speicher. Häufig zurückgeschriebene Daten werden in den Cache-Speicher zurückgeschrieben anstatt in den Flash-Speicher, um den Betrieb des Flash-Speichers zu verringern, um die gesamte Lebenszeit des Systems auszudehnen.
  • Bei der Fehler-Korrektursteuerung wird ein Fehler-Korrektur-Code für jeden Sektor (512 Bytes) vergeben, was die Speichereinheit des Flash-Speichers darstellt, die übereinstimmt mit einer Speichereinheit der Magnetplatten-Vorrichtung und wenn ein Datenfehler auftritt aufgrund eines Element-Ausfalls, wird er detektiert und korrigiert auf der Grundlage des Fehler-Korrektur-Codes, womit die Anzahl der Male, für die ein Schreiben ausgeführt werden kann, wesentlich erhöht wird. Insbesondere wird in der Zeit-Überwachungs-Steuerung für das Zurückschreiben einer Datei die Zeit bis eine einmal geschriebene Datei nachfolgend wieder beschrieben wird, überwacht, und falls die Datei nicht die am längsten nicht zurückgeschriebene Datei ist, werden die Daten in der Datei gespeichert in einem flüchtigen Speicher (Cache-Speicher), um die wesentliche Schreibanzahl des Flash-Speichers für häufig zurückgeschriebene Dateien, wie z. B. einem Datenverzeichnis und einem FAT, zu reduzieren.
  • Mit dieser Idee wird das Ziel verfolgt, die praktische Lebenszeit eines Speichers sicherzustellen unter Verwendung des Flash-Speichers.
  • Die Verwendung der Korrektur-Codes erfordert jedoch viel Zeit und einen erheblichen Durchsatz, um die Codes zu generieren und Fehler zu detektieren und zu korrigieren, womit die Leistung vermindert und der Schaltkreis kompliziert wird.
  • Die Verwendung des flüchtigen Puffer-Speichers (Cache-Speicher) zielt nicht darauf ab, ein langsames Zurückschreiben abzudecken, was einen anderen Nach teil des Flash-Speichers darstellt. Häufig zurückgeschriebene Dateien werden im Cache-Speicher gespeichert, aber eine große Datei kann nicht im Cache-Speicher gespeichert werden.
  • Wenn z. B. eine große Datei, die zum ersten Mal geschrieben wird, direkt in den Flash-Speicher gespeichert wird, welcher eine niedrige Schreibgeschwindigkeit aufweist, an Stelle eine Cache-Speichers, wird damit ein Schreibzugriff langsam. Für umfängliche zusammenhängende Daten, auf die mit hoher Geschwindigkeit auf einer Magnetplatten-Einheit zugegriffen werden kann, ist das Dateisystem gegenüber der Magnetplatten-Einheit viel minderwertiger bezüglich der Zugriffsleistung.
  • In der japanischen Patentoffenlegungsschrift Nr. Hei 5-204561, welche früher von diesem Anmelder eingereicht wurde, um das Problem zu lösen, wird ein Ersatz-Speicherbereich erstellt, um die Lebenszeit der Halbleiterplatte zu verlängern. Da jedoch der Ersatz-Speicherbereich vorher als fester Bereich belegt wurde, wird zusätzlicher Ersatz-Speicherbereich nicht verfügbar, wenn einmal der Platz ausgegangen ist.
  • Darüber hinaus werden in der japanischen Patentoffenlegungsschrift Nr. Hei 2-292798 Daten aus dem Cache-Speicher in den Flash-Speicher übertragen, wenn zusätzlicher Platz im Cache-Speicher erforderlich ist. Wenn jedoch zusätzlicher Platz erforderlich ist, kann eine Anfrage zum Speichern von Daten innerhalb des Systems auftreten, und damit würde ein Schreiben in den Flash-Speicher, welches langsam ist beim Zurückschreiben, die Systemleistung vermindern.
  • Wie oben beschrieben ist die Steuerung dazu angelegt, häufig geschriebene Daten nur in den Cache-Speicher zu schreiben, womit nicht alle Schreibdaten mit hoher Geschwindigkeit geschrieben werden können. Wenn eine schadhafte Zelle in einem Sektor auftritt, wird Zeit benötigt, um die entsprechende geeignet Aktion durchzuführen. Damit wird die Daten-Transferzeit verlängert und ein Daten-Transfer verzögert. Insbesondere wird die Verarbeitung unter Verwendung des Fehler-Korrektur-Codes kompliziert. Das Cache-System in der japanischen Patentoffenlegungsschrift Nr. Hei 2-292798 wird bereitgestellt, um die System-Lebensdauer zu verlängern.
  • Obwohl das Verfahren über die Handhabung von Cache-Daten beim Datenschreiben offenbart wird, werden keine Verfahren über eine Übertragung von Lesedaten vom Zentralrechner, der ein externes System darstellt, offenbart. Deshalb stellt der Stand der Technik keine Mittel bereit, auf die mit hoher Geschwindigkeit zugegriffen werden kann.
  • Der Hauptzweck des Standes der Technik wird darin gesehen, Magnetplatten-Einheiten zu ersetzen. Der Stand der Technik nimmt an, dass ein Zugriff in Sektor-Einheiten über einen externen E/A-Bus für das System bereitgestellt wird, um Daten von und zu externen Vorrichtungen zu übertragen. Er berücksichtigt jedoch nicht, einen wahlfreien Zugriff von der CPU, wenn ein Flash-Speicher als Hauptspeicher verwendet wird, d. h. eine direkte Datenübertragung in kleinen Einheiten von einigen Bytes, etc. Das Ersatzzellen-Verfahren und die Verarbeitung von Fehler-Korrektur-Codes sind dazu bestimmt, Daten in Sektor-Einheiten zu übertragen; Daten können nicht in Byte- oder Wort-Einheiten übertragen werden.
  • Andererseits verwenden Hochleistungs-Personalcomputer, etc. oft ein DRAM-SRAM-Cache-System als Mittel zum Verkürzen der Lese- oder Schreibzeit. Im Allgemeinen ist der Cache-Speicher zwischen der CPU und einem Speicher angeordnet und benötigt Zugriffszeit, um als Puffer-Speicher zu dienen. Wenn die CPU den Speicher liest, werden die Leseadresse und die Daten im Cache-Speicher gespeichert. Wenn die CPU dann dieselbe Leseadresse vom Speicher liest, werden die Daten, die der Adresse entsprechen, vom Cache-Speicher erhalten, womit die Zugriffszeit verkürzt wird. Die folgenden beiden Systeme von Cache-Speichern sind bekannt: Durchschreiben (write through) und Zurückkopieren (copy back). Das Durchschreib-System ist ein System, welches sowohl den Speicher als auch den Cache-Speicher gleichzeitig zurückschreibt in Antwort auf eine Schreibanforderung in einen Speicher. Auf der anderen Seite ist das Zurückkopier-System ein System, welches eine Schreibanforderung in einen Speicher lediglich zum Zurückschreiben in den Cache-Speicher beantwortet, ohne in den Speicher zurückzuschreiben, was eine Menge von Verarbeitungszeit erfordert und dazu gedacht ist, die Zugriffszeit zu verkürzen.
  • Das Cache-Speicher-System, welches im Allgemeinen mit Verarbeitungssystemen, wie z. B. Personalcomputern, verwendet wird, umfasst gegenwärtig den Hauptspeicher aus DRAM (dynamic random access memory bzw. dynamischer Speicher mit wahlfreiem Zugriff) und ein Cache-Speicher aus SRAM (static random access memory bzw. statischer Speicher mit wahlfreiem Zugriff), um den Schwachpunkt auszumerzen, dass die DRAM-Zugriffsoperation nicht Schritt halten kann mit der Betriebsgeschwindigkeit der CPU. Adressen, auf die zugegriffen wird, werden dem SRAM zugewiesen und der DRAM, auf den mit niedriger Geschwindigkeit zugegriffen wird, wird verwendet um Daten zu sichern, so als ob der SRAM, auf den mit hoher Geschwindigkeit zugegriffen wird, der Hauptspeicher wäre, wenn er von der CPU aus betrachtet wird. Bei diesem Verfahren ist die SRAM-Zugriffszeit mehrere Male schneller als die DRAM-Zugriffszeit und obwohl sie weniger als zehn Mal so schnell ist. Auf diese Weise ist, wenn ein Schreibzugriff gemacht wird auf eine Adresse, welche nicht dem Cache-Speicher zugewiesen ist, nämlich dann, wenn ein Schreibfehler auftritt, die Rückstellzeit nicht so groß. Wenn der Flash-Speicher als der Hauptspeicher angenommen wird, weist der Flash-Speicher eine Rückschreibzeit, welche 1 000 bis 100 000 Mal länger ist als der DRAM, und die Rückstellzeit bei einem Schreibfehler wird sehr groß, womit die Systemleistung heruntergesetzt wird. Deshalb muss dieser Gesichtspunkt berücksichtigt werden, wenn ein System implementiert wird.
  • Um die Kosten für einen Flash-Speicher-Chip zu vermindern, richtet der Fachmann seine Aufmerksamkeit auf eine Zellstruktur, um die Chip-Fläche des Flash-Speichers zu verringern. So wird z. B. ein Flash-Speicher, welcher eine so genannte NAND-Struktur aufweist angewandt. Bei dieser Struktur wird ein Leitungszugriff an Stelle eines wahlfreien Zugriffs durchgeführt und Daten werden einausgegeben in Folgen von Leitungseinheiten. Für den zukünftigen Flash-Speicher wird angenommen, dass das Leistungszugriffssystem, welches für eine hohe Integration von Speicher vorgesehen ist, die Hauptrichtung werden wird. Zusätzlich wird die Entwicklung eines Speichers, der ein Zugriffssystem ähnlich zu dem des Leistungszugriffssystems anwendet, verfolgt. Selbst wenn ein Speicher mit einem solchen Aufbau verwendet wird, wird es ein wichtiges Verfahren werden hinsichtlich der Durchführung von wahlfreien Zugriffen mit hoher Geschwindigkeit. Dieser Punkt wird nicht berücksichtigt in der verwandten Technik einschließlich der japanischen Patentoffenlegungsschrift Nr. Hei 2-292798, die oben diskutiert wurde.
  • Ob der Hauptspeicher flüchtig oder nicht-flüchtig ist, macht einen großen System-Unterschied.
  • Z. B. für den Fall, dass der Hauptspeicher flüchtig ist, werden, wenn der System-Netzstrom abgeschaltet wird, in einem Zustand, in dem lediglich der Cache-Speicher zurückgeschrieben wird, Daten sowohl im Hauptspeicher als auch im Cache-Speicher gelöscht, womit kein Problem verursacht wird. Wenn jedoch der Hauptspeicher nicht-flüchtig ist, können, wenn der Netzstrom abgeschaltet wird in einem Zustand, in dem lediglich die neuesten Daten im Cache-Speicher gespei chert sind, genau gesagt, die Daten, die gerade eingegeben wurden und vom Benutzer immer noch berücksichtigt werden, vom Cache-Speicher verschwinden.
  • Falls der Hauptspeicher eines informationsverarbeitenden Systems flüchtig ist, ist es gebräuchlich, einen Hilfsspeicher vorzusehen, um Dateidaten zu sichern. In dem Fall, in dem der Hauptspeicher nicht-flüchtig ist, ist jedoch kein Hilfsspeicher erforderlich. (Der Hauptspeicher dient als Daten sicherungsbereich.) Dieser Gesichtspunkt ist einer der Vorteile des Systems, welches mit nicht-flüchtigem Hauptspeicher ausgestattet ist, aber er stellt vor ein Problem. Z. B. könnte ein informationsverarbeitendes System eine Steuerung ausführen aufgrund eines Programmfehlers oder eines Bedienerfehlers. Wenn dieser Fehler auftritt, ist es möglich, falls der Hauptspeicher flüchtig ist, die Hardware zurückzusetzen oder, als äußerste Maßnahme, den Netzstrom zeitweise abzuschalten und das System neu zu starten, um so den Inhalt des Hauptspeichers zu löschen und wieder Daten in den Hauptspeicher vom Hilfsspeicher zu laden, um das System in einen normalen Zustand zurückzuführen. In dem Fall jedoch, in dem der Hauptspeicher nichtflüchtig ist, werden, wenn das System außer Kontrolle gerät und Daten im Hauptspeicher gespeichert sind, zerstört, wobei die richtigen Daten verloren gehen und es schwierig ist, das System in den Normalzustand zurückzuführen.
  • Deshalb müssen die informationsverarbeitenden Systeme, welche einen nichtflüchtigen Hauptspeicher aufweisen, mit einem System ausgestattet sein, welches den Zusammenbruch des Verarbeitungssystems korrigiert.
  • US 4,530,054 bezieht sich auf ein Datenverarbeitungssystem, welches eine zentrale Verarbeitungseinheit (CPU), ein flüchtiges Speichermittel, nicht-flüchtiges Speichermittel, Datensteuermittel zum Steuern einer Datenübertragung zwischen zwei Speichermitteln, Mittel zum Registrieren von Adressen von Daten, die im flüchtigen Speicher gespeichert sind und Vergleichsmittel zum Vergleichen der Adressen von der CPU mit Adressen, die registriert sind im Adress-Registriermittel, umfassen.
  • Als nicht-flüchtiges Speichermittel wird eine Festplatte verwendet. Deshalb enthält diese Schrift keine Lehre darüber, wie Datenblöcke gelöscht werden müssen im Fall dass Speichermittel verwendet werden, welche ein blockweises Löschen erfordern bevor irgendein Zurückschreiben stattfindet.
  • Es ist deshalb eine Aufgabe der Erfindung, ein Dateisystem bereitzustellen unter Verwendung eines Flash-Speichers mit hoher Leistung bei niedrigen Kosten.
  • Diese Aufgabe wird gelöst durch das System gemäß Ansprüchen 1 bzw. 10. Weitere Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen bestimmt.
  • Insbesondere wird die Lebenszeit des Dateisystems verlängert ohne Verwendung eines Schreib-Puffers (Cache-Speicher) oder Fehlererkennungs-Konektur-Codes.
  • Ein Dateisystem, das einen Flash-Speicher mit hoher Geschwindigkeit wieder beschreiben kann, wird bereitgestellt.
  • Ein System, welches einen Zugriff auf Bereiche von Daten mit hoher Geschwindigkeit erlaubt, wird bereitgestellt.
  • Ein Dateisystem, welches die Verschlechterung eines Flash-Speichers durch einen einfachen Aufbau und durch einfache Verarbeitung unterdrückt, wird bereitgestellt.
  • Es ist eine weitere Aufgabe der Erfindung, Ersatzbereiche dynamisch zu ändern, um verschlechterte Bereiche eines Flash-Dateisystems zu ersetzen, um damit die Lebensdauer weiter auszudehnen und um den Benutzer in Kenntnis zu setzen, dass Ersatzbereiche nicht länger benutzbar sind, wenn keine weiteren Ersatzbereiche verfügbar sind, um damit eine Benutzerschnittstelle zu verbessern.
  • Es ist eine weitere Aufgabe der Erfindung ein informationsverarbeitendes System bereitzustellen, welches einen Flash-Speicher als Hauptspeicher aufweist.
  • Insbesondere wird ein wahlfreier Zugriff von der CPU ermöglicht.
  • Weiterhin wird ein informationsverarbeitendes System bereitgestellt, welches einen hochintegrierten Flash-Speicher unterstützt oder damit in einem Leistungszugriffssystem kompatibel ist, wird bereitgestellt.
  • Weiterhin wird die Rückstellzeit von einem verfehlten Zugriffstreffer verkürzt, um die Leistung zu verbessern.
  • Des Weiteren, wenn der Netzstrom abgeschaltet wird, wird eine Vorgehensweise berücksichtigt, welche die Zuverlässigkeit verbessert, um zu verhindern, dass wichtige Daten aufgrund eines außer Kontrolle Geratens zerstört werden aufgrund eines Programmfehlers oder eines Bedienerfehlers, und nachdem der Betrieb angehalten wurde, wird die Zugriffsleistung verbessert, nachdem der Betrieb wieder aufgenommen wurde zur Verbesserung der gesamten Operabilität.
  • Es wird ein Halbleiter-Dateisystem bereitgestellt, welches umfasst: einen ersten nicht-flüchtigen Speicher, der elektrisch löschbar ist, einen zweiten nichtflüchtigen Speicher, der nicht elektrisch löschbar ist, einen flüchtigen Speicher, eine Steuereinheit, welche die Speicher steuert und einen Steuerabschnitt, der die Steuereinheiten steuert, worin auf eine physikalische Adresse zugegriffen wird, die einer logischen Adresse entspricht, welche von einem externen System spezifiziert wird, wobei der erste nicht-flüchtige Speicher Daten für das externe System speichert, um Operationen auszuführen, erste Verwaltungsinformation den Bezug angibt zwischen physikalischen Adressen, bei denen die Daten gespeichert sind und logische Adressen und zweite Verwaltungsinformation, welche einen Zustand des ersten nicht-flüchtigen Speichers angibt, wobei der zweite nicht-flüchtige Speicher vorher Schnittstellen-Information speichert, die erforderlich ist zum Eingeben und Ausgeben der Daten von und zum externen System und schreibgeschützte Daten von Daten, wobei die Steuereinheit Steuermittel umfasst zum Bestimmen einer physikalischen Sektoradresse, welche vorbestimmte Bits höherer Ordnung bildet von den physikalischen Adressen, wenn Daten ausgegeben werden vom ersten nicht-flüchtigen Speicher oder wenn Daten eingegeben werden in den flüchtigen Speicher, Mittel zum Speichern der bestimmten physikalischen Sektoradresse und Mittel zum nacheinander Erzeugen von Adressen in einem Sektor, der bestimmt ist durch die physikalische Sektoradresse, wobei der Steuerabschnitt auf Schnittstellen-Informationen antwortet, wobei die erste Verwaltungsinformation und die zweite Verwaltungsinformation zum Steuern der Ein- /Ausgabe von Daten von und zum externen System und zum temporären Speichern Daten in den ersten nicht-flüchtigen Speicher vom externen System in den flüchtigen Speicher schreiben und dann die Schreibdaten übertragen vom flüchtigen Speicher in den ersten nicht-flüchtigen Speicher und das darauf folgende Adress-Erzeugungsmittel und das Sektoradress-Speichermittel zum Ausgeben der physikalischen Sektoradresse und der darauf folgenden erzeugten Adressen in den ersten nicht-flüchtigen Speicher und den flüchtigen Speicher, wenn Daten an der physikalischen Sektoradresse ausgegeben werden vom ersten nicht-flüchtigen Speicher oder wenn Daten bei der physikalischen Sektoradresse eingegeben werden in den flüchtigen Speicher.
  • In der Erfindung wird die Datenspeicher-Einheit auf gleiche Weise gemacht, wie ein Sektor einer Festplatte. Daten werden stets in Sektor-Einheiten übertragen nach und vom Zentralrechner. Um die Daten mit hoher Geschwindigkeit zu übertragen, werden Mittel zum Erzeugen von Adressen mit hoher Geschwindigkeit bereitgestellt. Um die Schreibgeschwindigkeit mit der Hochgeschwindigkeits-Adresserzeugung in Übereinstimmung zu bringen, wird der nicht-flüchtige Speicher als Schreib-Puffer verwendet und alle Schreibdaten werden temporär in dem Schreib-Puffer gespeichert. Der Schreib-Puffer wird verwendet, um temporäre Sicherungsdaten zu speichern. Nachdem die Datenübertragung vom Zentralrechner beendet ist, werden die Daten vom Schreib-Puffer schnell in den Flash-Speicher übertragen. D. h. der Schreib-Puffer wird nicht verwendet, um die Lebensdauer des Flash-Speichers zu verlängern und wird lediglich für Hochgeschwindigkeits-Datenübertragung verwendet. Die Lebensdauer des Flash-Speichers wird verlängert z. B. durch Verwalten des Lösch-Zählers. Der Lösch-Zähler wird aufgezeichnet als die zweite Verwaltungsinformation in Flash-Speicher-Lösch-Einheiten. Wie sehr sich der Flash-Speicher verschlechtert hat, wird gemäß dem Lösch-Zähler bestimmt und es werden Schreibstellen bestimmt, um die fortschreitende Verschlechterung auszugleichen. Es werden also Lösch-Zähler im flüchtigen Speicher aufgezeichnet, der für den Schreib-Puffer verwendet wird.
  • Andererseits werden ein elektrisch löschbarer Flash-Speicher (first nonvolatile memory bzw. nicht-flüchtiger Speicher) und nicht elektrisch löschbarer nichtflüchtiger Speicher (second nonvolatile memory bzw. zweiter nicht-flüchtiger Speicher), wie z. B. ein Masken-ROM oder Einmal-PROM als Speicher verwendet, um Daten zu speichern. Der nicht elektrisch löschbare nicht-flüchtige Spei cher wird als Speicher verwendet, um Schnittstellen-Information zu speichern, wie z. B. der interne IC-Karten-Aufbau und ein Zugriffsformat.
  • Damit wird, wenn Daten übertragen werden vom Zentralrechner zum Halbleiter-Dateisystem, eine Adresse generiert, welche mit der Datenübertragungs-Geschwindigkeit des Zentralrechners übereinstimmt und dem Speicher übergeben, der als der Schreib-Puffer dient, um damit ein Schreiben mit hoher Geschwindigkeit zu ermöglichen, unabhängig von der Rückschreib-Geschwindigkeit des Flash-Speichers.
  • Andererseits, wenn Daten gelesen werden, ist es möglich, wenn eine Adresse, die vom Adress-Erzeugungsmittel erzeugt wurde, zum Flash-Speicher gegeben wird, die Daten-Leserate mit dem Zentralrechner in Übereinstimmung zu bringen. Dieser Gesichtspunkt ist besonders nützlich, wenn die Betriebsgeschwindigkeit des Steuermittels im Halbleiter-Dateisystem langsam ist im Vergleich mit dem Zentralrechner und die Adress-Erzeugung vom Steuermittel einen Engpass erzeugt.
  • Die Lebensdauer des Flash-Speichers kann verlängert werden durch Verwalten der Lösch-Zähler. Da das Speichermittel, welches erforderlich ist, um die Lösch-Zähler zu verwalten, der flüchtige Speicher ist, der als der Schreib-Puffer verwendet wird, erhöht sich die Zahl der Bauteile nicht.
  • Der nicht-flüchtige Speicher wird verwendet als Speicher, um die erste Verwaltungsinformation und die zweite Verwaltungsinformation zu speichern, wobei die Verwaltungsinformation gespeichert und mit hoher Geschwindigkeit und Effizienz erreicht werden kann.
  • Andererseits wird, zusätzlich zum Flash-Speicher, ein preiswerter nicht-flüchtiger Speicher, der nicht elektrisch löschbar ist, als Datenspeicher verwendet, wobei weniger teure Datei-Speichermedien bereitgestellt werden können.
  • Falls der nicht-flüchtiger Speicher, der nicht elektrisch löschbar ist, verwendet wird um IC-Karten-Information zu speichern, wird es möglich gemacht, mit den PCMCIA-Spezifikationen (Standard-Spezifikationen), etc. übereinzustimmen. Falls all die oben erwähnten Gesichtspunkte implementiert werden, können die drei Arten von Speicher unterschiedliche Anwendungen abdecken und die Zahl der Bauteile kann vermindert werden im Vergleich mit einem Einbau eines Speichers für jede Anwendung. Insbesondere trägt es durch die Absicht der Miniaturisierung für IC-Karten, etc. wesentlich zur Verminderung der Anzahl der Bauteile bei.
  • Gemäß der Erfindung wird weiterhin ein Flash-Speicher-System bereitgestellt, welches umfasst: einen Flash-Speicher zum Speichern von Daten von einem externen System, Mittel zum zeitweisen Speichern der Daten von dem externen System beim Empfang einer Anforderung, die Daten in den Flash-Speicher zu schreiben, und einen Kontrollabschnitt, der die Daten in das Speichermittel speichert beim Empfang der Anforderung, die Daten zu schreiben und dann die Daten in den Flash-Speicher überträgt, wobei beim Empfang einer Anforderung Daten zu lesen oder zu schreiben vom externen System, bevor die Übertragung der Daten in den Flash-Speicher abgeschlossen ist, der Steuerabschnitt die Datenübertragung zum Flash-Speicher unterbricht und auf die Anforderung, die externen Daten zu lesen oder zu schreiben, antwortet.
  • Des Weiteren wird ein Flash-Speicher-System bereitgestellt, welches umfasst: einen Flash-Speicher zum Speichern von Daten von einem externen System, Mittel zum zeitweisen Speichern der Daten von dem externen System beim Empfang einer Anforderung, die Daten in den Flash-Speicher zu schreiben und einen Kontrollabschnitt, der die Daten im Daten-Speichermittel speichert beim Empfang der Anforderung, die Daten zu schreiben und dann die Daten in den Flash-Speicher überträgt, wobei beim Empfang einer neuen Anforderung Daten in dieselbe Adresse zu schreiben, vom externen System bevor die Übertragung der Daten in den Flash-Speicher abgeschlossen ist, der Kontrollabschnitt die Datenübertragung zum Flash-Speicher unterbricht und die neuen Daten vom externen System in das Daten-Speichermittel speichert und die augenblicklichen Daten, die übertragen worden sind, zum Flash-Speicher ungültig macht.
  • Es wird ein Flash-Speicher-System bereitgestellt, welches umfasst: einen Flash-Speicher zum Speichern von Daten von einem externen System, Mittel zum Messen der Zeit, die erforderlich ist, um die Daten in den Flash-Speicher zu schreiben, Mittel, die auf das Messergebnis des Schreib-Zeit-Messmittels antworten, um einen Verschlechterungsgrad des Flash-Speichers zu diagnostizieren, Mittel zum Speichern der Diagnoseergebnisse, die vom Verschlechterungsgrad-Diagnosemittel angeboten werden und Steuermittel, die auf das Diagnoseergebnis antworten zum Bestimmen einer Speicherstelle im Flash-Speicher für die Daten und zum Speichern der Daten an dieser Stelle.
  • Wie oben beschrieben wird der Schreib-Puffer-Speicher (Daten-Speichermittel) zum zeitweisen Speichern von Daten bereitgestellt zum Schreiben mit hoher Geschwindigkeit. Die Daten, die im Puffer-Speicher gespeichert sind, werden übertragen zum Flash-Speicher wenn das externe System, wie z. B. das Zentralrechner-System, keine Zugriffsanforderung macht, d. h., wenn das Flash-Speicher-System darauf wartet, dass das externe System eine Zugriffsanforderung stellt. Damit wird die Übertragungszeit im Wesentlichen in dem gesamten Speichersystem verborgen gehalten. Alle Daten, die vom Zentralrechner-System geschrieben werden müssen, werden immer im Puffer-Speicher gespeichert. Die Daten werden nicht unmittelbar vom Zentralrechner in den Flash-Speicher geschrieben, welcher eine niedrige Schreibgeschwindigkeit aufweist. Eine Datenübertragung vom Puffer-Speicher zum Flash-Speicher wird begonnen, wenn das Schreiben von Daten vom Zentralrechner abgeschlossen ist. Die Daten können vom Puffer-Speicher in den Flash-Speicher übertragen werden bis eine Anforderung vom Zentralrechner-System, auf die Daten zuzugreifen oder andere Daten empfangen werden, d. h. während das Flash-Speicher-System darauf wartet, dass das Zentralrechner-System eine Zugriffsanforderung stellt. Wenn eine Zugriffsanforderung vom Zentralrechner-System empfangen wird, unterbricht die Steuervorrichtung unmittelbar die Datenübertragung vom Puffer-Speicher in den Flash-Speicher und beantwortet die Zugriffsanforderung. Nach Abschluss der Verarbeitung der Anforderung wird die unterbrochene Datenübertragung vom Puffer-Speicher zum Flash-Speicher am Unterbrechungspunkt wieder aufgenommen. Als Ergebnis wird das Schreiben von Daten vom Zentralrechner-System in den Puffer-Speicher schnell abgeschlossen und das Zentralrechner-System kann die nächste Verarbeitung durchführen ohne darauf zu warten, dass die Daten tatsächlich zum Flash-Speicher übertragen werden, womit die Leistung des gesamten Flash-Speicher-Systems verbessert wird. D. h. die Flash-Speicher-Schreib-Geschwindigkeit ist transparent gegenüber dem Zentralrechner-System; die niedrige Flash-Speicher-Schreib-Geschwindigkeit kann verborgen werden. Nach Abschluss der Verarbeitung der Zugriffsanforderung, die vom Zentralrechner-System empfangen wird, werden die Daten im Puffer-Speicher in den Flash-Speicher übertragen; die Datenübertragung wird fortgesetzt bis das Zentralrechner-System eine neue Zugriffsanforderung stellt. Deshalb kann das Zentralrechner-System die augenblickliche Datenübertragung vom Puffer-Speicher in den Flash-Speicher unterbrechen, um eine weitere Übertragungsanforderung zu stellen; es gibt keine Wartezeit für das Zentralrechner-System.
  • Der Puffer-Speicher wird bereitgestellt mit mehr als genug Kapazität zum Speichern von Daten vom Zentralrechner-System im normalen Betriebszustand, um zu verhindern, dass das Zentralrechner-System warten muss, weil der Puffer-Speicher mit Daten vom Zentralrechner-System überläuft.
  • Um die Daten-Übertragungszeit vom Puffer-Speicher zum Flash-Speicher so weit wie möglich zu reduzieren, werden, wenn dieselben Daten, die noch nicht in den Flash-Speicher übertragen worden sind und im Puffer-Speicher verbleiben, z. B. die Daten in derselben Datei, wieder übertragen werden vom Zentralrechner-System, die augenblicklichen Daten ungültig gemacht und die neuesten Daten werden immer in den Flash-Speicher übertragen. Durch das Rückübertragen derselben Datei werden die alten Daten in der Datei nicht mehr benötigt und können ungültig gemacht werden; eine unnötige Datenübertragung muss nicht ausgeführt werden und der Flash-Speicher-Schreib-Zähler kann vermindert werden.
  • Um ein aufeinanderfolgendes Schreiben von Massendaten vom Zentralrechner-System zu ermöglichen, ist es ebenso notwendig, Daten in den Flash-Speicher so schnell wie möglich zu schreiben. Wenn jedoch der Flash-Speicher verschlechtert ist, wird die Zeit, die für das Schreiben oder Löschen erforderlich ist, verlängert, was zum langsamen Schreiben führt. Um mit diesem Problem fertig zu werden, wird die Zeit, die zum Schreiben oder Löschen erforderlich ist, gemessen, um stets zu wissen, wie sehr der Flash-Speicher verschlechtert ist und es wird eine weniger verschlechterte Stelle zum Schreiben der Daten ausgewählt. Die Verkürzung der Schreibzeit wird es ermöglichen, zu verhindern, dass der Puffer-Speicher in die Lage versetzt wird, unzureichend dafür zu sein, Massendaten vom Zentralrechner-System durch fortlaufendes Schreiben zu speichern.
  • Weiterhin wird ein Speichersystem bereitgestellt, welches einen Halbleiter-Speicherabschnitt aufweist, der umfasst: einen Speicherabschnitt, der einen Flash-Speicher als Speichermedium verwendet und ein Zentralrechner-System, welches Information zum und vom Halbleiter-Speicherabschnitt überträgt, wobei der Halbleiter-Speicherabschnitt einen Schnittstellen-Schaltkreis umfasst zum Übertragen von Information zum und vom Zentralrechner-System, einen Steuerschaltkreis zum Steuern eines Lesens/Schreibens von Information von/in den Speicherabschnitt und zum Detektieren eines Bereichs des Speicherabschnitts, in dem Fehler auftreten und ein Speicher-Verwaltungsmittel zum Bewahren eines benutzt-oder-unbenutzt-Zustands für jeden Bereich des Speicherabschnitts, beim Detektieren eines Fehlers durch den Steuerabschnitt, zum Belegen eines nicht verwendeten Bereichs als ein Ersatzbereich an Stelle des Bereichs des Speicherabschnitts, in dem Fehler auftauchen und Bewahren des Zusammenhangs zwischen dem belegten Ersatzbereich und dem Bereich, in dem Fehler auftreten, und der Steuerschaltkreis das Speicher-Verwaltungsmittel referenziert zum Steuern eines Lesens/Schreibens von Information von/in den Speicherabschnitt.
  • In diesem Fall kann der Steuerschaltkreis ein Informationsmittel umfassen bei der Detektion eines Bereichs des Speicherabschnitts, in dem Fehler auftreten, um Fehlerinformation, die die Detektion des unzuverlässigen Bereichs des Speicherabschnitts angibt zum Zentralrechner-System und das Zentralrechner-System kann Mittel umfassen zum Detektieren des Empfangs der Fehlerinformation vom Informationsmittel und Mittel zum Ausgeben von Fehlerinformation beim Detektieren des Empfangs der Fehlerinformation durch das Informations-Detektionsmittel.
  • Der Halbleiter-Speicherabschnitt kann weiterhin umfassen Mittel zum Behalten von vorbestimmter Fehlerinformation. Der Steuerschaltkreis kann beim Detektieren eines unzuverlässigen Bereichs des Speicherabschnitt Fehlerinformation einstellen, welche die Detektion des unzuverlässigen Bereichs anzeigt im Bewahrungsmittel für Fehlerinformation und das Zentralrechner-System kann Detektionsmittel umfassen zum Referenzieren des Bewahrungsmittels für Fehlerinformation zum Detektieren der Fehlerinformation und Mittel zum Ausgeben von Fehlerinformation beim Detektieren der Fehlerinformation durch das Detektions mittel. Das Zentralrechner-System kann bereitgestellt werden mit einem sichtbaren Informationsmittel wie z. B. einer LED-Anzeige oder einer Fehlermeldungsanzeige auf einer Kathodenstrahlröhre und Mittel für Sprachinformation mit einem Tonsignal, einer synthetischen Stimme, etc.
  • Der Steuerschaltkreis kann des Weiteren detektieren, dass kein Ersatzbereich im Steuerabschnitt verfügbar wird und kann des Weiteren Fehlerinformation einstellen, die angibt, dass kein Ersatzbereich verfügbar wird im Speicherabschnitt im Bewahrungsmittel für Fehlerinformation.
  • Das Zentralrechner-System umfasst Eingabemittel zum Annehmen eines Befehls zum vorherigen Einstellen eines Datengebiets zum Speichern von Daten und des Ersatzbereichs des Speichermittels als Initialisierungsinformation und Einstellmittel, welches auf den Befehl antwortet, der angenommen wurde durch das Eingabemittel zum Setzen der Initialisierungsinformation im Speicher-Verwaltungsmittel und das Speicher-Verwaltungsmittel antwortet auf das Einstellen des Einstellmittels zum Teilen des Speicherabschnitts in das Speichergebiet und das Ersatzgebiet zur Verwaltung. Das Speicher-Verwaltungsmittel umfasst Wiederbelegungsmittel zum Detektieren eines nicht verwendeten Blocks eines leeren Bereichs des Datenbereichs, wenn das Ersatzgebiet nicht verfügbar ist und zum Wiederbelegen des detektierten nicht verwendeten Blocks zum Ersatzgebiet und Informationsmittel zur Wiederbelegung zum in Kenntnis setzen des Zentralrechner-System, dass der nicht verwendete Block eingestellt ist als der Ersatzbereich, wenn der Block wieder belegt wird durch das Wiederbelegungsmittel und das Zentralrechner-System kann eine Verwendung des nicht verwendeten Blocks verhindern, beim Empfang vom Informationsmittel zur Wiederbelegung.
  • Es wird ein Verfahren bereitgestellt zum Steuern eines Speichers in einem Halbleiterspeicher unter Verwendung eines Flash-Speichers als Speichermittel umfassend die Schritte des vorherigen Zurückhaltens einer Schreibadresse, die der Adress-Information entspricht, die angegeben ist für ein Schreiben von einem externen System, dem Beibehalten eines verwendet- oder nicht verwendet-Zustands eines Bereichs, der angegeben wird durch die Speichermedium-Schreibadresse und beim Empfang eines Schreibbefehls zusammen mit der Adress-Information vom externen System, dem Referenzieren der vorher zurückgehaltenen Schreibadresse, die der Adress-Information entspricht, dem Schreiben in den Bereich, welcher durch die Schreibadresse angegeben ist, dem Einstellen des Verwendet-Zustands für den Bereich, wenn geschrieben wird und wenn der Zustand beibehalten wird, des Bestimmens ob oder nicht ein Schreibfehler während des Schreibens auftritt, falls ein Schreibfehler auftritt, Belegen eines nicht verwendeten Bereichs als ein Ersatzbereich an Stelle des Bereichs, in dem der Fehler aufgetreten ist und Schreiben in den Ersatzbereich, des Änderns der vorher zurückgehaltenen Schreibadresse in eine Schreibadresse des Ersatzbereichs zum Aktualisieren der Schreibadresse und des in Kenntnis Setzens des externen Systems, dass der Ersatzbereich verwendet worden ist.
  • Es wird ein anderes Verfahren bereitgestellt zum Steuern des Speichers in einem Halbleiterspeicher unter Verwendung eines Flash-Speichers als Speichermittel umfassend die Schritte des Annehmens eines Befehls zum Teilen eines Halbleiter-Speicherbereichs in einen Speicherbereich zum Speichern von Daten und einem Ersatzbereich, wenn ein Schreibfehler auftritt, zum Belegen eines Bereichs, der sich von dem Bereich unterscheidet, wo der Fehler aufgetreten ist und des vorherigen Zurückhaltens einer Schreibadresse von dem Datenbereich, der der Adress-Information entspricht und einer Adresse eines Ersatzbereiches in Antwort auf den Befehl, des Zurückhaltens eines benutzt-oder-unbenutzt-Zustands des Datenbereichs und des Ersatzbereichs für jede Adresse, beim Empfang eines Schreibbefehls zusammen mit der Adress-Information, des Referenzierens der vorher zu rückgehaltenen Schreibadresse, die der Adress-Information entspricht, des Schreibens in den Bereich, der durch die Schreibadresse angegeben ist, des Setzens des benutzt-Zustands für das Gebiet, wenn geschrieben wird und der Zustand zurückgehalten wird, des Bestimmens ob oder nicht ein Schreibfehler während des Schreibens auftritt, falls ein Schreibfehler auftritt, des Belegens eines nicht benutzten Bereiches als Ersatzbereich an Stelle des unzuverlässigen Bereichs und des Schreibens in den Ersatzbereich, wobei die vorher zurückgehaltene Schreibadresse geändert wird in eine Schreibadresse des Ersatzbereichs zum Aktualisieren der Schreibadresse und des Setzens des Benutzt-Zustands des Ersatzbereichs und des Zurückhaltens des Zustands.
  • Der benutzt-oder-unbenutzt-Zustand für jeden Block des Speicherabschnitts wird zurückgehalten im Speicher-Verwaltungsmittel (Speicher-Block-Verwaltungstabelle). Wenn ein Fehler detektiert wird durch den Steuerschaltkreis, wird ein nicht benutzter Block belegt als Ersatzblock anstelle des Blocks des Speicherabschnitts, bei dem der Fehler auftritt und die Entsprechung zwischen dem belegten Ersatzbereich und dem Block, bei dem ein Fehler aufgetreten ist, wird zurückgehalten im Speicher-Verwaltungsmittel oder einer Tabelle.
  • Um Daten zu schreiben, sendet das Zentralrechner-System einen Schreibbefehl zusammen mit Adress-Information (Block-Identifiaktionsinformation, falls Daten in jeden Block geschrieben werden) zu dem Halbleiter-Speicherabschnitt. Wenn der Schreibbefehl empfangen wird über den Schnittstellen-Schaltkreis, liest der Steuerschaltkreis des Halbleiter-Speicherabschnitts die Schreibadresse des Halbleiter-Speicherabschnitts, die der gegebenen Adress-Information entspricht, von der Speicherblock-Verwaltungstabelle, und schreibt die gegebenen Daten in den Ziel-Bereich (Block) des Datenspeichers. Wenn der Steuerschaltkreis detektiert, dass ein Fehler auftritt in dem Block zur Zeit des Schreibens, liest das Speicher-Verwaltungsmittel Adress-Information eines nicht benutzten Blocks des Ersatzspeicherabschnitts, belegt ihn als Ersatzblock und setzt Information, die angibt, dass der Ersatzblock benutzt ist. Der Steuerschaltkreis schreibt die Daten in den Ersatzblock.
  • Falls ein leerer Bereich zum Schreiben von Daten nicht vorhanden ist, wenn ein Fehler bei der Schreiboperation auftritt, wird das Zentralrechner-System in Kenntnis gesetzt durch Fehlerinformation, welche die Detektion eines Bereichs des Speicherabschnitts, in dem ein Fehler auftritt, angibt durch das Informationsmittel. Ein Unterbrechungssignal kann verwendet werden als das Informationsmittel. Das Informations-Detektionsmittel im Zentralrechner-System detektiert den Empfang der Fehlerinformation vom Informationsmittel und das Ausgabemittel gibt Fehlerinformation aus, wenn das Informations-Detektionsmittel den Empfang der Fehlerinformation detektiert. Falls der Halbleiter-Speicherabschnitt ein Mittel einschließt zum Zurückhalten von vorbestimmter Fehlerinformation, setzt der Steuerabschnitt bei Detektion eines Bereichs des Speicherabschnitts, in dem ein Fehler auftritt, Fehlerinformation, welche die Detektion angibt, des Bereichs des Speicherabschnitts, in dem ein Fehler auftritt, im Rückhaltemittel der Fehlerinformation. Das Detektionsmittel im Zentralrechner-System referenziert das Bewahrungsmittel der Fehlerinformation zum Detektieren der Fehlerinformation und das Ausgabemittel gibt Fehlerinformation aus bei Detektion der Fehlerinformation durch das Detektionsmittel. Der Steuerschaltkreis kann detektieren, dass kein Ersatzbereich im Speicherabschnitt verfügbar wird und kann Fehlerinformation setzen, die angibt, dass kein Ersatzbereich im Speicherabschnitt im Bewahrungsmittel der Fehlerinformation verfügbar wird. Auf diese Weise kann Fehlerinformation auf dem Ausgabemittel angezeigt werden, wie z. B. einer Kathodenstrahlröhre (CRT), um den Benutzer zu informieren, dass die Platte keinen leeren Bereich enthält, womit der Benutzer eine geeignete Handlung vornehmen kann.
  • Weiterhin nimmt das Eingabemittel im Zentralrechner-System einen Befehl an, um vorher einen Datenbereich von Daten zu speichern und den Ersatzbereich des Speicherabschnitts als Initialisierungsinformation einzustellen. Das Einstellmittel kann auf den Befehl antworten, der angenommen wird, durch das Eingabemittel zum Einstellen der Initialisierungsinformation im Speicher-Verwaltungsmittel. Das Speicher-Verwaltungsmittel kann antworten auf das Einstellen des Einstellmittels zum Teilen des Speicherabschnitts in den Datenbereich und den Ersatzdatenbereich zur Verwaltung. In diesem Fall umfasst das Speicher-Verwaltungsmittel Wiederbelegungsmittel zum Detektieren eines nicht benutzten Block von einem leeren Bereich des Datenbereichs, wenn der Ersatzbereich nicht verfügbar ist, und des Wiederbelegens des detektierten nicht benutzten Blocks des Ersatzbereichs und Informationsmittel der Wiederbelegung zum Informieren des Zentralrechner-Systems, dass der nicht benutzte Block eingestellt ist als der Ersatzbereich, wenn der Block wieder belegt wird durch das Wiederbelegungsmittel, und das Zentralrechner-System kann die Verwendung des nicht verwendeten Blocks beim Empfangen der Information zur Wiederbelegung vom Informationsmittel zur Wiederbelegung verhindern.
  • Um Daten im Zielblock zu lesen von der Halbleiterplatte, wird der Halbleiter-Speicherbereich, welcher der Adress-Information für die zu lesenden Daten entspricht, gelesen vom Speicher-Verwaltungsmittel und die Daten werden gelesen vom Zielblock des Speicherabschnitts. Falls ein Fehler in dem Block auftritt, wird Adress-Information des Ersatzbereichs für den Block vom Speicher-Verwaltungsmittel gelesen und die Daten werden vom Ersatzbereich gelesen.
  • Gemäß der Erfindung wird ein informationsverarbeitendes System bereitgestellt umfassend eine Zentraleinheit, Eingabemittel zum Eingeben von Daten, Ausgabemittel zum Ausgeben von Daten, ein flüchtiges Speichermittel zum Speichern von Daten, ein nicht-flüchtiges Speichermittel, welches in der Lage ist, gespeicherte Daten elektrisch zurückzuschreiben, für die ein Adressraum, der für die Zentraleinheit zugänglich ist, belegt ist, Datensteuermittel, um zumindest Daten zu übertragen zwischen dem flüchtigen Speichermittel und dem nicht-flüchtigen Speichermittel, Mittel zum Registrieren von Adressen von Daten, die gespeichert sind im flüchtigen Speichermittel durch das Datensteuermittel von dem nichtflüchtigen Speichermittel in das nicht-flüchtige Speichermittel und Mittel zum Vergleichen der Adressen, die registriert sind im Adress-Registriermittel mit einer Adresse, die ausgegeben wird von der Zentraleinheit, um einen Datenzugriff durchzuführen.
  • Wenn die Adressausgabe durch die Zentraleinheit, um einen Datenzugriff durchzuführen, eingegeben wird in das Adress-Vergleichsmittel und das Adress-Vergleichsmittel einen Vergleich dazwischen anstellt und ein Vergleichsergebnis ausgibt, bestimmt das Daten-Steuermittel ob oder nicht die Adresse eine der Adressen ist, die registriert sind im Adress-Registriermittel in Antwort auf das Vergleichsergebnis und wenn die Adresse eine ist von den registrierten Adressen, greift die registrierte Adresse auf den flüchtigen Speicher zu; im Gegensatz dazu, wenn die Adresse eine der registrierten Adressen ist, registriert das Daten-Steuermittel neuerlich wenigstens einen vorbestimmten Bereich von Adressen, der die Adresse enthält im Adress-Registriermittel, speichert erneut Daten in das nicht-flüchtige Speichermittel, entsprechend den neu registrierten Adressen im flüchtigen Speichermittel und greift auf mindestens eine der neu registrierten Adressen zu.
  • Der besondere Betrieb des Mittels wird als ein Beispiel beschrieben.
  • Um der CPU zu ermöglichen, direkt auf gespeicherte Daten im Flash-Speicher zuzugreifen und nicht über einen externen E/A-Bus, muss ein wahlfreier Zugriff von hoher Geschwindigkeit bereitgestellt werden. Durch einen Direktzugriff auf den Flash-Speicher erlaubt der Flash-Speicher des wahlfreien Zugriffs-Typs einen wahlfreien Zugriff mit hoher Geschwindigkeit wie ein DRAM in einem Schreibzugriff, aber es kann nur zurückgeschrieben werden in Blockeinheiten mit niedri ger Geschwindigkeit in einem Schreibzugriff. Wie oben beschrieben ist es in dem Flash-Speicher im Zugriffssystem der Leitung, was für wahrscheinlich gehalten wird, die Hauptrichtung in die Zukunft zu werden, nicht anpassbar an einen wahlfreien Zugriff, selbst bei einem Lesezugriff.
  • Dann ist ein Puffer-Speicher, der als Cache-Speicher dient, zwischen dem Flash-Speicher und der. CPU angeordnet. In einer optimalen Situation ist der Cache-Speicher aus DRAM oder SRAM gemacht.
  • Ein Adressfeld zum Aufzeichnen von Adressen von Daten, die im Cache-Speicher gespeichert sind und ein Steuermittel zum Aufzeichnen einer Zugriffsgeschichte in den Cache-Speicher werden bereitgestellt.
  • Um das Problem des sehr langsamen Flash-Speicher-Zurückschreibens zu lösen im Vergleich mit einem Zugriff auf den Cache-Speicher, wird ein leerer Bereich im Cache-Speicher bereitgestellt, so dass Daten an den nicht gespeicherten Adressen stets geschrieben werden können.
  • Um Daten vor der Zerstörung im Hauptspeicher durch das System, welches außer Kontrolle gerät, zu bewahren, wird ein Schreibschutz-(inhibieren)-Kennzeichen für jeden Datenbereich bereitgestellt. Falls ein Versuch gemacht wird, schreibgeschützte Daten wieder zu beschreiben, kann das Kennzeichen verwendet werden, um die CPU zur Warnung zu unterbrechen. Wenn das Kennzeichen wieder beschrieben wird, wird die CPU ebenfalls zur Warnung unterbrochen, womit doppelte Sicherheit erreicht wird. Danach, falls die CPU keinen vorbestimmten Code in ein bestimmtes Schreib-Anforderungsregister schreibt, wird das Daten zurückschreiben nicht ermöglicht.
  • Zum Hochgeschwindigkeitsbetrieb, falls Daten im Cache-Speicher durch die CPU zurückgeschrieben werden, wird der Flash-Speicherbereich, der den Daten entspricht, vorher gelöscht, um die Zeit zu gewinnen, die benötigt wird, um den Flash-Speicherbereich zu löschen, wenn die Daten zurückgeschrieben werden.
  • Falls die Stromversorgung des Systems abgeschaltet wird, sind die Daten im Adress-Registriermittel nicht verloren und werden behalten, wenn die Stromversorgung wieder gestartet wird, um den Systembetrieb neu zu starten. Die Daten im Cache-Speicher werden wieder hergestellt auf der Grundlage der Daten im Adress-Registriermittel.
  • Eine genauere Beschreibung wird jetzt gegeben.
  • Beim Installieren des Cache-Speichers kann der Nachteil des Flash-Speichers, der darin besteht, langsam im Zurückschreiben zu sein, abgedeckt werden und eine äußere Schnittstelle wird verbunden durch den seriellen Puffer, um einen wahlfreien Zugriff zum Cache-Speicher zu ermöglichen für den Flash-Speicher, zu welchem ein wahlfreier Zugriff mit hoher Geschwindigkeit nicht ausgeführt werden kann. Sie können offensichtlich verwendet werden als Hauptspeicher, der bereitgestellt wird mit dem Flash-Speicher, der unmittelbar verbunden ist mit dem CPU-Speicher-Bus.
  • Wie oben beschrieben werden das Adressfeld zum Aufzeichnen logischer Adressen von Daten, die im Cache-Speicher gespeichert sind und der Speicherbereich zum Aufzeichnen einer Zugriffsgeschichte, welche das Alter der Daten angibt, die im Cache-Speicher gespeichert sind, bereitgestellt, womit bestimmt werden kann, ob auf eine Adresse, die im Cache-Speicher vorkommt, zugegriffen wird oder nicht. Falls auf eine Adresse, die nicht im Cache-Speicher vorkommt, zugegriffen wird, wird die Zugriffsgeschichte durchsucht nach Daten, auf die zuletzt seit dem letzten Zugriff zugegriffen wurde, und die Daten werden in den Flash-Speicher zurückgeschrieben, den Hauptspeicher, um einen leeren. Bereich im Cache-Speicher zu erzeugen, in welchem neue Daten gespeichert werden. Dies ist bekannt als ein Cache-Speicher-Ersatz-Algorithmus.
  • Wenn eine Daten-Schreib-Anforderung von der CPU empfangen wird, falls die Adresse, die den Daten entspricht, nicht im Cache-Speicher gespeichert ist, tritt eine große Leistungsverschlechterung in dem mit einer langsamen Schreiboperation behafteten Flash-Speicher auf, falls ein leerer Bereich zum Speichern der Schreibdaten erzeugt wird, nachdem die Anforderung empfangen wurde. Dann wird ein leerer Bereich stets im Cache-Speicher reserviert und die Daten werden zeitweise in dem reservierten leeren Bereich gespeichert. Nachdem die Schreibdaten von der CPU übertragen worden sind, kann ein Schritt des Erzeugens eines leeren Bereichs im Flash-Speicher begonnen werden.
  • Weiterhin wird ein Schreibschutz-(inhibieren)-Kennzeichen bereitgestellt, um das System zu behandeln, welches außer Kontrolle gerät. Wenn das Kennzeichen zurückgeschrieben wird, oder ein Versuch gemacht wird, einen schreibgeschützten Bereich zurückzuschreiben, wird die CPU unterbrochen und sie antwortet auf die Unterbrechung mit einem Alarm, womit sie überprüft, ob oder nicht die CPU einen Versuch macht, ein abnormales Rückschreiben durchzuführen.
  • Falls die CPU Daten nicht in ein spezifisches Register zurückschreibt, werden die gespeicherten Daten nicht zurückgeschrieben, womit verhindert wird, dass die Daten in den Absturz geraten.
  • Wenn die Unterbrechung empfangen wird, kann die CPU eine Routine ausführen, um den Benutzer aufzufordern zu bestimmen, ob ein Daten-Zurückschreiben ausgeführt werden soll oder nicht. In der Routine bestimmt der Benutzer ob oder nicht das System außer Kontrolle gerät und gibt eine geeignete Anweisung an das informationsverarbeitende System. In diesem Fall ist es unnötig zu sagen, dass der Benutzer vorzugsweise befehlen kann, dass der Systembetrieb angehalten wird oder neu gestartet wird.
  • Unter Bezugnahme auf 98 wird der Betrieb eines informationsverarbeitenden Systems zur Implementierung des Aufbaus, der oben erwähnt wurde, besprochen. Wenn die CPU 4101 einen Schreibzugriff durchführt auf den Speicher 4104, wenn der Cache-Speicher-Block 4300 getroffen wird, werden Zieldaten auf dem Cache-Speicher-Block 4300 gelesen. Falls der Cache-Speicher-Block 4300 beim Lesezugriff einen Missgriff darstellt, liest die CPU 4101 Daten unmittelbar aus dem Speicher 4104. Dann werden die Daten und die Adresse in einem neu ausgewählten Register im Cache-Speicher-Block 4300 gehalten gemäß dem Ersatz-Algorithmus, der oben beschrieben ist. Falls die Adresse und die Daten, welche aktualisiert wurden, im vorangegangenen Zugriff behalten werden in dem neu ausgewählten Register, werden die Adresse und die Daten zurückgeschrieben in den Speicher 4104, dann werden die neuen Daten und die Schreibadresse in dem Register behalten. Da der Speicher 4104 erfindungsgemäß als Flash-Speicher ausgebildet ist, wird, falls der Block nicht dadurch gelöscht wird, dass er geschrieben wird, der Block gelöscht bevor die Daten geschrieben werden.
  • Andererseits, da der Cache-Speicher-Block 4300 gemäß der Erfindung ein Kopier-zurück-System-fache darstellt, wird, falls der fache-Speicher-Block 4300 getroffen wird, bei einem Schreibzugriff von der CPU 4101, lediglich das Register im fache-Speicher-Block 4300 aktualisiert und das Schreiben in den Speicher 4104 wird übersprungen. D. h. Daten werden zurückgeschrieben in den entsprechenden Block des Speichers 4104 bei einem späteren Ersatz. Das bedeutet, dass die Daten in dem entsprechenden Block des Speichers 4104 in Zukunft gelöscht werden. Deshalb wird gemäß der Erfindung, wenn der Block noch nicht gelöscht ist, der Block vorher gelöscht. In dem vorherigen Löschprozess schreibt die CPU 4101 nicht unmittelbar in den Block, dessen Löschen abgeschlossen ist, und deshalb muss sie nicht darauf warten, dass der Löschprozess abgeschlossen ist. Danach, wenn es notwendig wird, Daten in den Block zurückzuschreiben, wird der Löschprozess, welcher dem Schreiben vorangeht, übersprungen (wurde bereits ausgeführt), womit die Zugriffszeit verkürzt wird.
  • Falls der Cache-Speicher-Block 4300 ein Fehlgriff bei dem Schreibzugriff von der CPU 4101 darstellt, wird ein neues Ersatzziel-Register im Cache-Speicher-Block 4300 ausgewählt und falls das Register bereits aktualisiert ist, werden die aktualisierten Daten in dem Register zurückgeschrieben in den Speicher 4104, dann werden die Zugriffsadresse und die Daten von der CPU 4101 in dem Register im Cache-Speicher-Block 4300 gespeichert. Falls das Ersatzziel-Register noch nicht aktualisiert ist, wird das Register aktualisiert. Der Rückschreib-Vorgang in den Speicher 4104 ist dem Schreibvorgang in den Speicher 4104 ähnlich, wenn der Cache-Speicher-Block 4300 ein Fehlgriff beim Lesezugriff darstellt.
  • Als Nächstes wird der Betrieb zu Behalten von Daten im Adress-Registermittel besprochen. Die Daten, welche im Cache-Speicher gespeichert sind, werden dort zeitweise platziert, so dass die Daten von der CPU mit hoher Geschwindigkeit gelesen geschrieben werden können. Da die Kapazität des Cache-Speichers begrenzt ist, werden die Daten, welche die höchste Zugriffswahrscheinlichkeit und Zugriffsfrequenz in der CPU aufweisen, ausgewählt und im Cache-Speicher angeordnet. Falls auf Daten, die nicht im Cache-Speicher angeordnet sind, nacheinander zugegriffen wird, verschlechtert sich die Systemleistung merklich. Um zu verhindern, dass ein solches Ereignis eintritt, müssen der Cache-Speicher-Aufbau, der Ersatz-Algorithmus, etc. optimiert werden.
  • Selbst wenn sie optimiert sind, tritt jedoch, wenn die Daten im Cache-Speicher verloren gehen und keine Daten im Cache-Speicher gespeichert sind, stets ein Fehlgriff bei einem Lesezugriff auf, der die Systemleistung merklich verschlechtert. Die Lesezugriffsgeschwindigkeit ist solange langsam, bis die Daten zu einem gewissen Grad im Cache-Speicher wieder hergestellt sind vom Hauptspeicher. Die Cache-Speicher-Daten können jedoch wieder hergestellt werden, selbst wenn die Daten im Cache-Speicher verloren gehen aufgrund einer Beendigung der Stromzufuhr, in den Zustand bevor die Stromzufuhr endet, selbst wenn Information von vergleichsweise geringem Umfang im Adress-Registriermittel behalten wird. Die Adress-Information, welche im Adress-Registriermittel registriert ist, kann vom Hauptspeicher in den Cache-Speicher ausgedehnt werden. Ein Verfahren, die Daten im Adress-Registriermittel zu behalten besteht darin, die Daten in einem Speicher mit einer Sicherheitsbatterie zu behalten, als Adress-Registriermittel oder einen nicht-flüchtigen Speicher zu verwenden, der wahlfrei gelesen/geschrieben werden kann, als Adress-Registriermittel. Als Alternative, wenn die Stromzufuhr endet, werden die Daten im Adress-Registriermittel gesichert in einem Teil des Hauptspeichers, der einen nicht-flüchtigen Speicher darstellt oder einem entsprechenden Speicher, und wenn die Stromzufuhr wieder beginnt, werden die Daten im Adress-Registriermittel wieder hergestellt.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm von einem Halbleiter-Datensystem gemäß der ersten Ausführungsform;
  • 2 ist ein Schaltkreis-Diagramm von der Karte in 1;
  • 3 ist ein Schaltkreis-Diagramm von der Karte in 1;
  • 4 ist ein Verbindungs-Diagramm zu einem Zentralrechner gemäß der ersten Ausführungsform;
  • 5 ist ein Block-Diagramm von einer Kartensteuer-Vorrichtung gemäß der ersten Ausführungsform;
  • 6 ist ein Block-Diagramm von einem Daten-Registerabschnitt gemäß der ersten Ausführungsform;
  • 7 ist ein Block-Diagramm von einem lokalen Adress-Erzeugungsabschnitt gemäß der ersten Ausführungsform;
  • 8 ist ein Block-Diagramm von einem Steuerabschnitt gemäß der ersten Ausführungsform;
  • 9 ist eine Veranschaulichung eines Datenflusses beim Sektor-Schreiben gemäß der ersten Ausführungsform;
  • 10 ist ein Zeitgabe-Diagramm beim Sektor-Schreiben gemäß der ersten Ausführungsform;
  • 11 ist eine Veranschaulichung eines Datenflusses beim PSRAM-Sektor-Lesen gemäß der ersten Ausführungsform;
  • 12 ist eine Veranschaulichung eines Datenflusses beim FLASH-Sektor-Lesen gemäß der ersten Ausführungsform;
  • 13 ist ein Zeitgabe-Diagramm beim FLASH-Sektor-Lesen und PSRAM-Sektor-Lesen gemäß der ersten Ausführungsform;
  • 14 ist eine Veranschaulichung von einem Datenfluss beim MASK ROM-Sektor-Lesen gemäß der ersten Ausführungsform;
  • 15 ist ein Zeitgabe-Diagramm beim MASK ROM-Sektor-Lesen gemäß der ersten Ausführungsform;
  • 16 ist eine Veranschaulichung einer physikalischen Sektoranzahl-Änderungsoperation im Mehrfachsektor-Übertragungsmodus gemäß der ersten Ausführungsform;
  • 17 ist ein Zeitgabe-Diagramm im Mehrfachsektor-Übertragungsmodus gemäß der ersten Ausführungsform;
  • 18 ist eine Veranschaulichung einer lokalen Adress-Erzeugungsoperation gemäß der ersten Ausführungsform;
  • 19 ist eine Veranschaulichung einer lokalen Adress-Erzeugungsoperation gemäß der ersten Ausführungsform;
  • 20 ist eine Veranschaulichung einer Mikrocomputer-Adresskarte gemäß der ersten Ausführungsform;
  • 21 ist eine Veranschaulichung einer physikalischen Adresskarte von einem Dateibereich gemäß der ersten Ausführungsform;
  • 22 ist eine Veranschaulichung einer Dateibereichs-Lokal-Adress-Erzeugungsfolge gemäß der ersten Ausführungsform;
  • 23 ist eine Veranschaulichung einer physikalischen Adresskarte des PSRAM gemäß der ersten Ausführungsform;
  • 24 ist eine Veranschaulichung einer PSRAM Lokal-Adress-Erzeugungsfolge gemäß der ersten Ausführungsform;
  • 25 ist ein Block-Diagramm von einem Daten-Bus-Schaltabschnitt gemäß der ersten Ausführungsform;
  • 26 ist eine Veranschaulichung einer lokalen Sektor-Tabelle gemäß der ersten Ausführungsform;
  • 27 ist eine Veranschaulichung einer physikalischen Sektor-Tabelle gemäß der ersten Ausführungsform;
  • 28 ist eine Veranschaulichung einer Speicher-Bereinigung gemäß der ersten Ausführungsform;
  • 29 ist eine Veranschaulichung einer Lösch-Verwaltungstabelle gemäß der ersten Ausführungsform;
  • 30 ist eine Veranschaulichung einer Block-Kennzeichen-Tabelle gemäß der ersten Ausführungsform;
  • 31 ist ein Fluss-Diagramm der internen Verarbeitung nach einem Sektor-Schreib-Transfer gemäß der ersten Ausführungsform;
  • 32 ist eine Veranschaulichung einer Block-Statustabelle gemäß der ersten Ausführungsform;
  • 33 ist eine Veranschaulichung der Verarbeitung, wenn Strom abgeschaltet wird gemäß der ersten Ausführungsform;
  • 34 ist eine Veranschaulichung der Verarbeitung, wenn Strom eingeschaltet wird gemäß der ersten Ausführungsform;
  • 35 ist ein Ablauffolge, wenn Strom ausgeschaltet wird, gemäß der ersten Ausführungsform;
  • 36 ist ein Ablauffolge einer Sektor-Transfer-Vorverarbeitung gemäß der ersten Ausführungsform;
  • 37 ist eine Ablauffolge während eines FLASH-Sektor-Lese-Transfers gemäß der ersten Ausführungsform;
  • 38 ist eine Ablauffolge während eines MASK ROM-Sektor-Lese-Transfers gemäß der ersten Ausführungsform;
  • 39 ist eine Ablauffolge während eines PSRAM-Sektor-Schreib-Transfers gemäß der ersten Ausführungsform;
  • 40 ist eine Ablauffolge einer Sektor-Transfer-Beendigungsverarbeitung gemäß der ersten Ausführungsform;
  • 41 ist eine Ablauffolge einer internen Verarbeitung nach Beendigung eines Sektor-Transfers gemäß der ersten Ausführungsform;
  • 42 ist eine Ablauffolge einer Speicherbereinigung gemäß der ersten Ausführungsform;
  • 43 ist ein Block-Diagramm eines PSRAM-Auffrisch-Steuerabschnitts gemäß der ersten Ausführungsform;
  • 44 ist eine Veranschaulichung einer Unterbrechungssignal-Erzeugungsoperation gemäß der ersten Ausführungsform;
  • 45 ist eine Veranschaulichung des Setzens von MCC-Anschluss-Stiften gemäß der ersten Ausführungsform;
  • 46 ist ein Fluss-Diagramm des Überwachens der FLASH-Speicher-Löschzeit gemäß der ersten Ausführungsform;
  • 47 ist ein Fluss-Diagramm des Überwachens der FLASH-Speicherzeit gemäß der ersten Ausführungsform;
  • 48 ist eine Veranschaulichung eines Beispiels in welchem schnelle und langsame FLASH-Chips gemischt verwendet werden gemäß der ersten Ausführungsform;
  • 49 ist ein Block-Diagramm eines Beispiel-System zum Zurückschreiben von Cache-Speicher-Daten zur jeweils gegebenen Zeit gemäß der vierten Ausführungsform;
  • 50 ist ein Block-Diagramm eines FLASH-Speichersystems gemäß der zweiten Ausführungsform;
  • 51 ist ein Fluss-Diagramm von einer Hauptroutine eines Steuerprogramms in der zweiten Ausführungsform;
  • 52 ist ein Fluss-Diagramm einer Zugriffsroutine des Steuerprogramms in der zweiten Ausführungsform;
  • 53 ist ein Fluss-Diagramm einer Schreib-Zugriffsroutine des Steuerprogramms in der zweiten Ausführungsform;
  • 54 ist ein Fluss-Diagramm einer Hauptroutine zum Behandeln einer Hardware-Unterbrechung in der zweiten Ausführungsform;
  • 55 ist ein Fluss-Diagramm einer Hauptroutine, welche den Stromabschaltvorgang abdeckt in der zweiten Ausführungsform;
  • 56 ist ein Fluss-Diagramm einer Hauptroutine, welche einen Sicherungsprozess einer Übersetzungstabelle umfasst in der zweiten Ausführungsform;
  • 57 ist ein Block-Diagramm eines FLASH-Speichersystems, in welchem eine Verschlechterungsdiagnose durchgeführt wird auf der Basis der Schreibzeit in der zweiten Ausführungsform;
  • 58 ist ein Fluss-Diagramm einer Schreibroutine, in welcher eine Verschlechterungsdiagnose durchgeführt wird auf der Basis der Schreibzeit in der zweiten Ausführungsform;
  • 59 ist ein Fluss-Diagramm, welches einen Vorgang zeigt, wenn eine nicht übertragene Datei aktualisiert wird in der zweiten Ausführungsform;
  • 60 ist eine Veranschaulichung einer Adress-Übersetzungstabelle in der zweiten Ausführungsform;
  • 61 ist ein Block-Diagramm eines Halbleiter-Plattensystems gemäß der dritten Ausführungsform;
  • 62 ist eine Veranschaulichung, die ein Beispiel der Entsprechung zeigt zwischen einer Speicher-Block-Verwaltungstabelle und einer Speichertabelle gemäß der dritten Ausführungsform;
  • 63 ist ein Fluss-Diagramm, welches eine Prozessfolge zeigt von einer Lese-Operation in der dritten Ausführungsform;
  • 64 ist ein Fluss-Diagramm, welches eine Prozessfolge zeigt von einer Schreib-Operation gemäß der dritten Ausführungsform;
  • 65 ist ein Fluss-Diagramm, welches eine andere Prozessfolge von einer Schreib-Operation gemäß der dritten Ausführungsform zeigt;
  • 66 ist ein Fluss-Diagramm, welches eine Registrier-Prozessfolge von einem Ersatzblock zeigt in der dritten Ausführungsform;
  • 67 ist ein Fluss-Diagramm, welches eine Prozessfolge von einer Initialisierungsoperation in der dritten Ausführungsform zeigt;
  • 68 ist ein Block-Diagramm eines Beispiels von einem Halbleiter-Plattensystem gemäß der dritten Ausführungsform;
  • 69 ist eine Veranschaulichung, welche ein Beispiel einer Speicherblock-Verwaltungstabelle zeigt im Beispiel in 68;
  • 70 ist ein Fluss-Diagramm, welches eine Schreib-Prozessfolge zeigt im Beispiel von 68;
  • 71 ist ein Block-Diagramm eines zweiten Beispiels von einem Halbleiter-Plattensystem gemäß der dritten Ausführungsform;
  • 72 ist ein Block-Diagramm einer dritten Beispiels von dem Halbleiter-Plattensystem gemäß der dritten Ausführungsform;
  • 73 ist ein Block-Diagramm eines Zentralrechner-Systems gemäß der dritten Ausführungsform;
  • 74 ist eine Veranschaulichung, welche Beispiele von Fehlermelde-Ausgaben darstellt gemäß der dritten Ausführungsform;
  • 75 ist ein Block-Diagramm eines vierten Beispiels des Halbleiter-Plattensystems gemäß der dritten Ausführungsform;
  • 76 ist ein Fluss-Diagramm, welches eine Neukonfiguration der Halbleiter-Platteneinheit in der dritten Ausführungsform zeigt;
  • 77 ist eine Veranschaulichung des Inhalts des Bereichs der Initialisierungsinformation in der dritten Ausführungsform;
  • 78 ist ein Fluss-Diagramm des Setzens des Bereichs der Initialisierungsinformation in der dritten Ausführungsform;
  • 79 ist eine Veranschaulichung, welche das Format eines Fehler-Informationsregisters zeigt gemäß der dritten Ausführungsform;
  • 80 ist ein Fluss-Diagramm, welches eine Unterbrechungsantwort-Operation in der dritten Ausführungsform zeigt;
  • 81 ist eine Veranschaulichung, welche das Format eines anderen Beispiels eines Fehler-Informationsregisters in der dritten Ausführungsform zeigt;
  • 82 ist ein schematisches Block-Diagramm einer vierten Ausführungsform eines informationsverarbeitenden Systems, welches einen FLASH-Speicher als Hauptspeicher verwendet;
  • 83 ist ein Block-Diagramm einer Steuervorrichtung im informationsverarbeitenden System, welches den FLASH-Speicher als Hauptspeicher in 82 verwendet;
  • 84 ist ein Bearbeitungs-Fluss-Diagramm der Steuereinrichtung im informationsverarbeitenden System, welches den FLASH-Speicher als Hauptspeicher in 82 verwendet;
  • 85 ist ein Fluss-Diagramm, welches eine Bearbeitung der Steuervorrichtung zur Hochgeschwindigkeitsverarbeitung bei einem Missgriff in der vierten Ausführungsform der vorliegenden Erfindung zeigt;
  • 86 ist eine Veranschaulichung einer Bearbeitung des FLASH-Speichers in einem Leitungszugriff-System gemäß der vierten Ausführungsform der vorliegenden Erfindung;
  • 87 ist ein Block-Diagramm von einem Hauptspeicher-System, welches einen FLASH-Speicher gemäß der vierten Ausführungsform der vorliegenden Erfindung verwendet;
  • 88 ist ein Block-Diagramm von einer Steuervorrichtung im Hauptspeicher-System, welches den FLASH-Speicher gemäß der vierten Ausführungsform der vorliegenden Erfindung verwendet;
  • 89 ist ein Fluss-Diagramm, welches die Arbeitsweise der Steuervorrichtung, die in 88 gezeigt ist, veranschaulicht;
  • 90(A) und 90(B) sind Veranschaulichungen der Datenübertragung zwischen einem seriellen Puffer eines FLASH-Speichers und eines Cache-Speichers im Leitungszugriff,
  • 91 ist ein Fluss-Diagramm, welches die Arbeitsweise der Steuervorrichtung veranschaulicht, wenn ein FLASH-Speicher, worin eine Adresse in einem seriellen Puffer gesetzt werden kann, verwendet wird in der vierten Ausführungsform der vorliegenden Erfindung;
  • 92 ist eine Veranschaulichung eines Beispiels einer Konfiguration eines Schreib-Sperrmittels in der vierten Ausführungsform der vorliegenden Erfindung;
  • 93 ist ein schematisches Block-Diagramm, welches ein Beispiel zeigt, das gedacht ist zur Hochgeschwindigkeits-Rückschreib-Verarbeitung in dar vierten Ausführungsform der Erfindung;
  • 94 ist ein Bearbeitungs-Fluss-Diagramm eines Steuerschaltkreises, der in 93 gezeigt ist;
  • 95 ist ein schematisches Block-Diagramm, welches ein anderes Beispiel zeigt, das zur Hochgeschwindigkeits-Rückschreib-Verarbeitung gedacht ist in der vierten Ausführungsform der vorliegenden Erfindung;
  • 96 ist ein Prozess-Fluss-Diagramm eines Steuerschaltkreises, der in 95 gezeigt ist;
  • 97 ist eine schematische Zeichnung, welche einen FLASH-Speicher zeigt, der eine Speichergröße von 524 288 Bytes umfasst;
  • 98 ist ein Block-Diagramm von einer Ausführungsform eines Systems zur Verkörperung der Erfindung;
  • 99 ist eine Zeichnung, die ein Beispiel zeigt von dem Effekt der vierten Ausführungsform der vorliegenden Erfindung;
  • 100 ist ein Fluss-Diagramm, welches einen Arbeitsfluss zeigt, der bereitgestellt wird durch Verbinden der Arbeitsflüsse in 94 und 96;
  • 101 ist ein Block-Diagramm eines Beispiel-Systems zur Erhaltung von Daten in einem Adressfeld gemäß der vierten Ausführungsform der vorliegenden Erfindung;
  • 102 ist ein Fluss-Diagramm, welches einen Arbeitsfluss des Sicherns von Adressfelddaten durch eine Steuervorrichtung im Beispiel-System in 101 zeigt; und 103 ist ein Fluss-Diagramm, welches einen Arbeitsfluss der Wiederherstellung von Adressfelddaten und Cache-Speicher-Daten durch die Steuervorrichtung im Beispiel-System in 101 zeigt.
  • Unter Bezugnahme auf die begleitenden Zeichnungen werden nun bevorzugte und andere Ausführungsformen gezeigt.
  • Ausführungsform 1:
  • Eine erste Ausführungsform wird beschrieben.
  • 1 zeigt ein Blockdiagramm einer Ausführungsform eines Halbleiter-Dateisystems. Das Halbleiter-Dateisystem weist auf einen lokalen Speicher 1006, einen Steuer-Mikrocomputer (Steuerabschnitt) 1007, eine Karten- Steuervorrichtung (Steuervorrichtung) 1009, welche die Übertragung von Daten zum und vom JEIDA-(Japan Electronic Industry Development Association bzw. Entwicklungsverband der japanischen Elektronik-Industrie)-Schnittstellen-Bus 1008 steuert. Der lokale Speicher 1006 weist auf einen nicht-flüchtigen Speicher zum Speichern von Daten 1001, einen nicht-flüchtigen Speicher zum Speichern von Attribut-Information 1002, eine Steuertabelle 1003, einen Schreib-Puffer 1004 und einen Abfall-Puffer 1005. Die 2 und 3 zeigen detaillierte Schaltkreis-Diagramme des Halbleiter-Dateisystems. Das Halbleiter-Dateisystem be steht aus der Karten-Steuervorrichtung 1009, dem Mikrocomputer (H8/325) 1007, einem Takt-Oscillator 1010, einem integrierten Einschalt-Rücksetz-Schaltkreis (IC) 1011, einem VPP-Schalt-Schaltkreis 1012, einem PSRAM-(pseudo static random access memory bzw. pseudo-statischer Speicher mit wahlfreiem Zugriff)-Chip 1013 (512 KB × 8 Bits), acht FLASH-Chips 1014 (je 1 MW × 8 Bits) und sechs MASK ROM-Chips 1015 (je 512 KW × 8 Bits). Die Karten-Steuervorrichtung 1009 dient als eine Schnittstelle mit dem JEIDA-Schnittstellen-Bus 1008 des Halbleiter-Dateisystems, und Daten werden zum und vom Zentralrechner stets über die Karten-Steuereinheit 1009 übertragen. Zugriffsbefehlssignale des PSRAM 1013, FLASH 1014 und MASK ROM 1015 werden von der Karten-Steuervorrichtung 1009 erzeugt. VPP 1016 ist erforderlich zum FLASH-Schreiben. Der VPP-Schaltungsschaltkreis 1012 wird mit Hilfe eines Anschlusses P41 (1017) des Mikrocomputers 1007 geschaltet zum Ein-/Ausschalten der Zuführung des VPP 1016 zum FLASH 1014. Der 20-MHz Takt-Oszillator 1010 ist im Halbleiter-Datensystem eingebaut und die Karten-Steuervorrichtung 1009 und der Mikrocomputer 1007 arbeiten synchron mit einem Taktsignal 1018 des Takt-Oszillator 1010. Der Einschalt-Rücksetz-IC 1011 ist eine Schaltkreis zum Erzeugen eines Rücksetzsignals 1019 der Karten-Steuervorrichtung 1009 und des Mikrocomputers 1007, wenn der Strom eingeschaltet wird. In dem Halbleiter-Dateisystem kann die Installationskapazität des FLASH 1014 und des MASK ROM 1015 mit Hilfe von externen Anschlüssen MCC0–MCC3 (10201023) verändert werden.
  • Als Nächstes werden die Schnittstellen-Spezifikationen gezeigt. Wie gezeigt in 4 ist das Halbleiter-Dateisystem verbunden über eine Schnittstellen-Steuervorrichtung 1024 mit einem System-Bus 1025 des Zentralrechners, um Daten zum und vom Zentralrechner zu übertragen.
  • Als Nächstes werden die Blöcke des Halbleiter-Speichersystems besprochen. Als erstes wird die Karten-Steuervorrichtung 1009 beschrieben. 5 zeigt ein Blockdiagramm der Karten-Steuervorrichtung 1009. Die Karten-Steuervorrichtung 1009 umfasst einen Dekodierer A 1044 zum Dekodieren einer Zentralrechner-Adresse 1043, einen Datenregisterabschnitt 1045, der als ein Übertragungsanschluss von Dateidaten zum und vom Zentralrechner dient, einen Registerabschnitt 1046, der aus E/A-Platz-Registern besteht, einen Daten-Bus-Schaltabschnitt 1047, einen lokalen Adress-Erzeugungsabschnitt (Adress-Erzeugungsabschnitt) 1049, der eine Adresse 1048 des lokalen Speichers 1006 erzeugt, einen Dekodierer B 1050 zum Dekodieren der lokalen Adresse 1048, einen Dekodierer C 1052 zum Dekodieren einer Adresse des Steuer-Mikrocomputers 1007, einen Takt-Verteilungs- und Teilungsabschnitt 1053, der den Takt 1018 des Takt-Oszillators 1010 teilt in 10 MHz und 5 MHz und die sich ergebenden Signale zu den Blöcken verteilt, einen Steuerabschnitt 1059, der ein Steuersignal 1054 vom Zentralrechner empfängt und Steuersignale 1055 von den Blöcken und ein Steuersignal 1059 des lokalen Speichers 1006 erzeugt und ebenso ein Unterbrechungssignal 1057 erzeugt, das dem Wirt gegeben wird und ein Unterbrechungssignal 1058, das dem Steuer-Mikrocomputer 1007 gegeben wird. Hier wird der Wirt-Adressbus 1043 SA genannt, der Wirt-Adressbus 1060 SD, der Mikrocomputer-Adress-Bus 1051 PA, der Mikrocomputer-Daten-Bus 1061 PD, der lokale Adress-Bus 48 LA und der lokale Daten-Bus 1062 LD.
  • Als Nächstes werden die Blöcke der Karten-Steuervorrichtung beschrieben. 6 zeigt ein Block-Diagramm des Daten-Registerabschnitt 1045. Der Daten-Registerabschnitts 1045 besteht aus einem ersten Datenregister 1063 und einem zweiten Datenregister 1064. Das erste Datenregister 1063 ist verbunden mit dem SD 1060 und beide, die ersten und zweiten Datenregister 1063 und 1064, sind verbunden mit dem Daten-Bus-Schaltabschnitt 1047. Das erste Datenregister 1063 weist die Funktionen des Einklinkens von 16-Bit-Daten auf vom Zentralrechner und des Ausgebens von jeweils 8 Bit an den lokalen Daten-Bus, des Einklinkens von 16-Bit-Daten, die im zweiten Datenregister 1064 enthalten sind und des Ausgebens derselben zum Zentralrechner und des Einklinkens von 16-Bit-Daten vom lokalen Speicher und des Ausgebens derselben zum Zentralrechner. Das zweite Datenregister 1064 ist ein 16-Bit-Register, welches Daten vom lokalen Speicher jeweils zu 8 Bit einklinkt und dieselben ausgibt an das erste Datenregister 1053. Die Steuersignale 1055 der ersten und zweiten Datenregister werden durch den Steuerabschnitt 1056 erzeugt.
  • 7 zeigt ein Block-Diagramm des lokalen Adress-Erzeugungsabschnitts 1049. Der lokale Adress-Erzeugungsabschnitt 1049 besteht aus Bankregistern 1065 zum Ausgeben der hochwertigen Adresse der lokalen Adresse 1048, einem 9-Bit-Zähler 1066 zum Erzeugen der niedrigwertigen Adresse bei einer Sektor-Übertragung (zusammenhängendes Adress-Erzeugungsmittel und Mittel zum Ausgeben eines Signals für die Annahme einer physikalischen Sektoradresse, die enthalten ist in einem Sektoradress-Steuermittel durch das andere Sektoradress-Steuermittel nach Beendigung der Eingabe/Ausgabe von Ein-Sektordaten in einer Multi-Sektor-Übertragung), und einem Multiplexer 1068 zum Auswählen einer Ausgabe 1067 des 9-Bit-Zählers 1066 oder des PA 1051. Auf die Bankregister 1065 kann vom Mikrocomputer 1007 zugegriffen werden und sie sind verbunden mit dem PD 1061 und werden ausgewählt vom Dekodierer C 1052. Ein erstes Datei-Bankregister 1651 und ein zweites Datei-Bankregister 1652, die Sektoradress-Speichermittel darstellen, sind mit den Bankregistern 1065 verbunden.
  • Die Steuersignale 1055 des 9-Bit-Zählers 1066 und des Multiplexers 1068 werden vom Steuerabschnitt 1059 erzeugt.
  • 8 zeigt ein Block-Diagramm des Steuerabschnitts 1059. Der Steuerabschnitt 1059 besteht aus Steuer-Registern 1069, die gelesen/geschrieben werden vom Mikrocomputer 1007, um eine Sektor-Übertragung zu steuern und einem Steuersignal-Erzeugungsabschnitt 1070, der ein Steuersignal 54 vom Zentralrechner empfängt und erzeugt Steuersignale 1055 der Blöcke, weiterhin ein Steuersignal 1056 des lokalen Speichers und Unterbrechungssignale 1057 und 1058. Auf die Steuenegister 1069 kann vom Mikrocomputer 1007 zugegriffen werden und sie sind mit dem PD 1061 verbunden und werden vom Dekodierer C 1052 ausgewählt.
  • Die Arbeitsweise des Halbleiter-Dateisystems gemäß der Ausführungsform wird nun besprochen. Zuerst wird eine Sektor-Übertragung beschrieben. Die Sektor-Übertragung schließt ein Sektor-Schreiben zum Ausführen einer Sektor-Übertragung vom Zentralrechner zum Schreib-Puffer im PSRAM ein, ein Sektor-Schreiben zum Ausführen einer Sektor-Übertragung vom PSRAM, FLASH und MASK ROM zum Zentralrechner, Mehrfachübertragung zum Ausführen der mehrmaligen Sektor-Übertragung und lange Übertragung mit ECC-Daten. Der Sektor-Übertragungsmodus wird vom Mikrocomputer ausgewählt, der einen Befehl analysiert, der in ein Befehlsregister geschrieben wird (nicht gezeigt), welches im Registerabschnitt 1046, gezeigt in 5, enthalten ist und schreibt den Übertragungsmodus in ein Sektor-Übertragungs-Steuerregister 1692, das in 8 gezeigt ist. Nachdem der Übertragungsmodus vom Mikrocomputer im Sektor-Übertragungsbeginn-Register 1691 gesetzt ist, wird die Sektor-Übertragung, wie vom Zentralrechner angestoßen, gestartet.
  • Als erstes wird die Arbeitsweise der Sektor-Schreibübertragung besprochen unter Bezugnahme auf 9 (Hardware-Aufbau) und 10 (Zeitgabe-Diagramm). Da der PSRAM 1013 verbunden ist mit der Karten-Steuervorrichtung 1009 über den 8-Bit-Bus, wird die Sektor-Schreibübertragung in der folgenden Reihenfolge ausgeführt. 16-Bit-Daten 1060 vom Zentralrechner werden in einem ersten Datenregister 1063 gespeichert und Auswahlsignale (A) 1071 und (B) 1072 der niedrigwertigen acht und der hochwertigen acht Bit werden vom Steuerabschnitt 1059 erzeugt. Wenn das Signal (A) 1071 bestimmt ist, werden die niedrigwertigen 8-Bit-Daten ausgegeben durch den Multiplexer 1073 zum LD 1062; wenn das Signal (B) 1072 bestimmt ist, werden die hochwertige 8-Bit-Daten ausgegeben. Die Signale CEN 1074 und WEN 1075 für den PSRAM 1013 werden durch den Kontrollabschnitt 1059 erzeugt. Ein Abzählsignal 1077, welches vom Steuerabschnitt 1059 erzeugt wird, in Synchronisation mit LOWRN 1076, wird zum lokalen Adress-Erzeugungsabschnitt 1049 ausgegeben und die niedrigwertige Adresse 1067 wird beim 9-Bit-Zähler 1066 erzeugt und kombiniert mit einer physikalischen Sektorzahl 1078, um die lokale Adresse 1048 zu erzeugen. Die lokale Adresse 1048 wird ausgegeben zum PSRAM 1013. Wie in 10 gezeigt wird, werden 16-Bit-Daten, die von dem SD 1060 eingegeben werden, eingeklinkt in das erste Datenregister 1063 zur ansteigenden Kante des IOWRN 1076. Dann werden die Daten in den PSRAM 1013 in der Reihenfolge der niedrigwertigen 8 Bits und der hochwertigen 8 Bits geschrieben als Daten von 512 Worten × 8 Bits unter Verwendung von (A) 1071, (B) 1072, CEN 1074 und WEN 1075, welche erzeugt werden unter Verwendung der aufsteigenden Flanken des IOWRN 1076 und des 20 MHz Takts 1079 sowie des LA 1048, dessen Abzähl-Zeitgabe mit diesen Signalen übereinstimmt. Die Ziffern in 10 bezeichnen, zu welcher Zeitgabe des Takts 1079 eine Synchronisation durchgeführt wird. Nach der Sektor-Übertragung führt der Mikrocomputer 1007 eine interne Verarbeitung der Datenübertragung vom PSRAM zum FLASH von jeweils einem Byte durch.
  • Als Nächstes wird die Arbeitsweise der Sektor-Leseübertragung vom PSRAM und diejenige vom FLASH beschrieben unter Bezugnahme auf 11 und 12. Die Zeitgaben werden beschrieben unter Bezugnahme auf ein gemeinsames Zeitgabe-Diagramm in 13, weil die Sektor-Leseübertragung vom FLASH 1014 und diejenige vom PSRAM 1013 in derselben Reihenfolge durchgeführt werden. Bevor die Sektor-Leseübertragung begonnen wird, werden die ersten 1-Wort-Daten eingeklinkt in die niedrigwertigen 8 Bit und die hochwertigen 8 Bit des zweiten Datenregisters 1064 vom FLASH 1014 oder PSRAM 1013. (Dieser Vorgang wird im Folgenden einfach Vor-Lesen genannt.) Für das Vor-Lesen werden ein Abzählsignal 1077 des LA 1048, PSRAM-CEN 1074, FLASH-CEN 1080, PSRAM-OEN 1081, FLASH-OEN 1082, (C) 1083 und (D) 1084 erzeugt durch den Steuerabschnitt 1059 in Antwort auf die Zeitgabe des Setzens des Sektor-Übertragungs-Beginnregisters bei der Sektor-Übertragungs-Vorverarbeitung. Als Nächstes werden 8-Bit-Daten vom PSRAM 1013 oder FLASH 1014 eingegeben in den niedrigwertigen 8-Bit-Teil des zweiten Datenregisters 1064 zur aufsteigenden Flanke des (C)-Signals, und die nachfolgenden 8-Bit-Daten werden eingegeben in den hochwertigen 8-Bit-Teil des zweiten Datenregisters 1064 zur aufsteigenden Flanke des (D)-Signals. Die Daten im zweiten Datenregister 1064 werden eingegeben als 16-Bit-Daten in das erste Datenregister 1063 zur aufsteigenden Flanke des (E)-Signals 1085. Während das (E)-Signal 1085 hoch bleibt, werden die 16-Bit-Daten eingegeben in den Zentralrechner-Daten-Bus SD 1060. Auf diese Weise werden 512 Wörter × 8 Bit umgewandelt in sequentielle Daten von 256 Wörtern × 16 Bit. Die abfallende Flanke des IORDN 1086 wird synchronisiert mit dem Takt 1079, und die Signale PSRAM-CEN 1074, PSRAM-OEN 1081, (C) 1083 und (D) 1084 werden erzeugt zu den Zeitgaben, die durch die Ziffern in 13 angegeben werden. (E) 1085 ist ein Signal, welches bereitgestellt wird durch Invertieren des IORDN 1086. FLASH-CEN 1080 und FLASH-OEN 1082 während der Datenübertragung bleibt bestimmt, weil sie beim Adress-Umschalten nicht negiert werden müssen.
  • Als Nächstes wird die Sektor-Leseübertragungsoperation vom MASK ROM beschrieben unter Bezugnahme auf 14 (Hardware-Aufbau) und 15 (Zeitgabe-Diagramm). In diesem Beispiel ist die Zugriffszeit zum MASK ROM 1015 langsam und eine 8-Bit-verzahnte Übertragung, wie bei der PSRAM- und FLASH-Sektor-Leseübertragung, kann nicht ausgeführt werden; deshalb ist das MASK ROM verbunden mit der Karten-Steuervorrichtung 1009 durch einen 16-Bit-Bus zum Einklinken von Daten von 16 Bit Länge in das erste Datenregister 1063 und nicht über das zweite Datenregister 1065. In diesem Fall können lokale Adressen 48 erzeugt werden für 256 Wörter und LA0 1087 (Ausgabe des 9-Bit-Zählers 1066), die verwendet wird, um die niedrigwertigen und die hochwertigen Bytes zu schalten, wird nicht mehr benötigt, deshalb werden LA1–LA19 1088 eingegeben bei Adresse A0–A18 des MASK ROM und CEN 1089 wird verbunden mit den niedrigwertigen und hochwertigen Teilen. Daten werden eingegeben in das erste Datenregister 1063 zur aufsteigenden Flanke des (F)-Signals 1090. Wenn das (F)-Signal 1090 bestimmt ist, werden die Daten im ersten Datenregister 1063 zum Zentralrechner ausgegeben. Das (F)-Signal 1090 wird bereitgestellt durch Invertieren von IORDN 1086. Die aufsteigende Flanke des IORDN 1086 wird synchronisiert mit dem 20-MHz-Takt 1079 und die Adresse wird hinaufgezählt zu den Zeitgaben, die durch die Ziffern in 15 angegeben sind.
  • Als Nächstes wird die Mehrfachsektor-Übertragung beschrieben. Die Mehrfachsektor-Übertragung wird ausgeführt durch Wiederholen einer Sektor-Übertragung. Das Sektor-Übertragungsverfahren ist dasselbe wie das 1-Sektor-Übertragungsverfahren wie oben beschrieben. Unter Bezugnahme auf 16 (Hardware-Aufbau) und 17 (Zeitgabe-Diagramm) wird besprochen, wie physikalische Sektorzahlen verändert werden zwischen einer Sektor-Übertragung und einer anderen Sektor-Übertragung. Zuerst fragt der Mikrocomputer 1007 das zweite Datei-Bankregister 1091 zyklisch ab. Falls es "FFFFh" ist, schreibt der Mikrocomputer 1007 eine physikalische Sektorzahl (in diesem Fall die physikalische Sektorzahl m) in das zweite Datei-Bankregister 1091. Als Nächstes zählt der 9-Bit-Zähler 512. Beim Zähler 512 wird ein Wellensignal 1092 ausgegeben. Zur aufsteigenden Flanke des Wellensignals 1092 wird die physikalische Sektorzahl, die ein 16-Bit-Datum darstellt, welches in das zweite Datei-Bankregister 1091 geschrieben ist, eingeklinkt in das erste Datei-Bankregister 1093. Zur gleichen Zeit wird es ausgegeben zum LA 1048. Damit kann die Sektorzahl eingestellt werden zu der Zeitgabe, zu der die Adresse von 511 auf 0 wechselt, womit eine Mehrfachsektor-Übertragung ermöglicht wird. Nachdem die physikalische Sektorzahl geändert ist, setzt die Karten-Steuervorrichtung 1009 das zweite Datei-Bankregister 1091 auf das Datum "FFFFh", dem keine physikalische Sektorzahl zugewiesen ist. Wenn der Mikrocomputer 1007 diese Tatsache bestätigt durch zyklisches Abfragen des zweiten Datei-Bankregisters 1091, schreibt er die nächste physikalische Sektorzahl (in dem Beispiel n) in das zweite Datei-Bankregister 1091. Dieser Vorgang wird so viele Male wiederholt wie die Anzahl der Sektoren. Der Steuerabschnitt verwaltet die Anzahl der Wiederholungen auf solche Weise, dass der Mikrocomputer 1007 die Sektorzahl liest, die in das Sektor-Zählregister (nicht gezeigt) geschrieben ist, welches sich im Registerabschnitt 1046, der in 5 gezeigt ist, enthalten ist und schreibt es in ein Mehrfachübertragungs-Umfangsregister 1693 zur Mehrfachübertragung, das in 8 gezeigt ist. Für den ersten Sektor wird die physikalische Sektorzahl in das zweite Datei-Bankregister 1091 geschrieben, bei der Sektor-Übertragungs-Vorverarbeitung und wenn das Sektor-Übertragungs-Beginnregister gesetzt ist, wird die physikalische Sektorzahl übertragen vom zweiten Datei-Bankregister 1091 zum ersten Datei-Bankregister 1093. Danach wird das zweite Datei-Bankregister 1093 selbsttätig auf "FFFFh" gesetzt.
  • Als Nächstes wird eine lange Übertragung besprochen. Das lange Übertragungsverfahren ist dasselbe wie das 1-Sektor-Übertragungsverfahren mit der Ausnahme, dass dann, wenn 4 Bytes der 8-Bit-ECC-Daten ausgegeben werden, nachdem 256 Wort × 16-Bit-Daten eingegeben sind von dem Wirt zur Sektor-Schreibübertragung, die Karten-Steuervorrichtung das Sektor-Übertragungsende verlängert während der Zeit zum Schreiben der ECC-Daten, und mit der Ausnahme, dass nachdem 256-Wort × 16-Bit-Daten ausgegeben sind zum Zentralrechner für eine Sektor-Leseübertragung, die Karten-Steuervorrichtung das Ende der Sektor-Übertragung verlängert, um 4 Bytes der 8-Bit-ECC-Daten zu erzeugen und auszugeben.
  • Als Nächstes wird die lokale Adress-Erzeugungsoperation besprochen.
  • Zuerst wird die lokale Adress-Erzeugungsoperation im Sektor-Übertragungsmodus besprochen unter Bezugnahme auf 18 und 19 (Hardware-Aufbau). Die Rechenoperation der physikalischen Sektorzahl wird besprochen unter Bezugnahme auf 18. Der Zentralrechner schreibt eine Zylinderzahl, Kopfzahl und Sektorzahl in Register im Registerabschnitt 1046. Dann liest der Mikrocomputer 1007 die drei Zahlen zur Analyse und wandelt die Zahlen in eine logische Sektorzahl um. Weiterhin schreibt der Mikrocomputer die logische Sektorzahl in ein logisches Tabellen-Setzregister 1094 im lokalen Adress-Erzeugungsabschnitt 1049, dann liest er eine PSRAM-logische Sektortabelle 1095 in einer Mikrocomputer-Adresskarte, um die physikalische Sektorzahl auszugeben, die der logischen Sektorzahl entspricht. Die logische Sektortabelle 1095 ist eine Tabelle, welche physikalische Sektorzahlen entsprechend den logischen Sektorzahlen speichert.
  • Die nachfolgende Operation wird besprochen unter Bezugnahme auf 19. Die eingegebene physikalische Sektorzahl wird in das zweite Datei-Bankregister 1091 vom Mikrocomputer 1007 geschrieben. Dann, wenn die Übertragung begonnen ist, wird die physikalische Sektorzahl im zweiten Datei-Bankregister 1091 eingeklinkt in das erste Datei-Bankregister 1093 und 15 Bit (1096) werden ausgegeben. Eine 9-Bit serielle Adresse im Bereich zwischen 0 bis 511 (1067) wird ausgegeben vom 9-Bit-Zähler. Die 15-Bit-Daten (hochwertiger Teil) 1096 und die 9-Bit-Daten (niedrigwertiger Teil) 1067 werden zusammengefasst, um eine 24-Bit lokale Adresse zu erzeugen. Die hochwertigen 4 Bits der 24-Bit-Daten werden eingegeben in den Dekorierer B 1050, um MASK ROM-CEN 1089 und FLASH- CEN 1080 zu erzeugen. Die niedrigwertigen 20 Bit werden als LA0–LA19 ausgegeben.
  • Die lokale Adress-Erzeugungsoperation für den Mikrocomputer 1007 für den Zugriff des lokalen Speichers wird beschrieben unter beispielhafter Verwendung eines Dateidaten-Zugriffs mit Bezugnahme auf 20 (Mikrocomputer-Adresskarte), 21 (physikalische Adresskarte des Dateibereichs) und 22 (lokale Adress-Erzeugungsfolge). In der Ausführungsform kann unter Angabe einer Adresse auf einer Mikrocomputer-Speicherkarte, gezeigt in 20, auf einen FLASH-Adressraum 1097 und einen MASK ROM-Raum 1098 (insgesamt 16M Byte) gezeigt in 21, zugegriffen werden durch ein 512-Byte-(1-Sektor)-Fenster 1096. Insbesondere wird die physikalische Sektorzahl des Sektors, auf den zugegriffen werden soll, in das erste Datei-Bankregister 1093 in 22 vom Mikrocomputer geschrieben. Dann, wenn das Datei-Datenfenster 1096 auf der Mikrocomputer-Adresskarte in 20 vom Mikrocomputer gelesen/geschrieben ist, werden die niedrigwertigen 9-Bit, deren Mikrocomputer-Adresse den niedrigwertigen 9-Bit der lokalen Adresse (1099) zugewiesen sind und die physikalische Sektorzahl im ersten Datei-Bankregister wird der hochwertigen Adresse (1100) zugewiesen, wie in 22 gezeigt. FLASH-CEN 1080 und MASK ROM-CEN 1091 werden erzeugt durch Dekodieren der hochwertigen 4 Bit. Damit kann auf einen Datei-Datenraum zugegriffen werden, der größer ist als der Mikrocomputer-Adressraum.
  • Als nächstes wird die lokale Adress-Erzeugungsoperation beschrieben unter beispielhafter Verwendung eines Zugriffs auf eine logische Sektortabelle in der Steuertabelle und unter Bezugnahme auf 20 (Mikrocomputer-Adresskarte), 23 (physikalische Adresskarte des PSRAM) und 24 (lokale Adress-Erzeugungsfolge). Durch Spezifizieren der Adresse eines logischen Sektor-Tabellenfensters 1101 in der Speicherkarte, die in 20 gezeigt ist, kann auf eine 64 KByte logische Sektortabelle 1095 im PSRAM, gezeigt in 23, zugegriffen werden über das 2-Byte-Fenster.
  • Insbesondere wird die logische Sektorzahl in das logische Sektor-Tabellen-Setzregister 1094 vom Mikrocomputer geschrieben. Dann, wenn auf das logische Sektor-Tabellen-Fenster 1101 der Mikrocomputer-Adresskarte zugegriffen wird, werden die niedrigwertigen 3 Bits der lokalen Adresse (LA16–LA18) auf 011 gesetzt durch den logischen Schaltkreis (1102) von den hochwertigen 15 Bit der Mikrocomputer-Adresse 1051 und das am wenigsten signifikante Bit wird zum am wenigsten signifikanten Bit der lokalen Adresse in Takt (1103) ausgegeben, wie in 24 gezeigt. Weiterhin werden die niedrigwertigen 15 Bit des ersten Datei-Bankregisters in LA1–LA15 der lokalen Adresse durch (1104) gesetzt. Damit sind die lokalen Adress-Bits LA0–LA18 zum PSRAM erzeugt. Das erste Datei-Bankregister 1093 wird für eine physikalische Sektor-Tabelle 1105, eine Block-Kennzeichen-Tabelle 1106 und eine Block-Statustabelle 1107 verwendet. Das Schreib-Puffer-Bankregister wird verwendet für einen Schreib-Puffer 1004 und das Abfall-Puffer-Bankregister wird verwendet als Abfall-Puffer 1005. Da die Fenstergröße der Größe des physikalischen Adressraums entspricht, wird kein Bankregister verwendet für eine Lösch-Verwaltungstabelle 1108 und die hochwertige Adresse wird lediglich unter Verwendung des logischen Schaltkreises erzeugt.
  • Als Nächstes wird die Daten-Bus-Umschaltoperation besprochen unter Bezugnahme auf 25 (Hardware-Aufbau). PD0–PD7 1061 und die niedrigwertigen 8 Bits des lokalen Daten-Busses 1062, LD0–LD7 sind bidirektional und werden in der Karten-Steuervorrichtung getrennt in Eingabe- und Ausgabe-Bussen. Die hochwertigen 8 Bits des lokalen Daten-Busses 1062, LD8–LD15, dienen als Eingabe-Bus, welcher dem MASK ROM 1015 (hochwertiger Byte-Teil) überlassen werden. TFDO0–TFDO7 und TFDI0–TFDI7 sind Ausgabe- und Eingabe-Busse von und zu dem Daten-Registerabschnitt 1045 und dem Registerabschnitt 1046.
  • Der Daten-Bus-Umschaltabschnitt 1047 führt eine Bus-Umschaltung durch unter Verwendung von Steuersignalen 1055, welche vom Steuerabschnitt 1059 erzeugt werden.
  • Als Nächstes wird nun die Verwendung der Steuertabelle beschrieben. Die Steuertabelle besteht aus fünf Tabellen: einer logischen Sektortabelle, einer physikalischen Sektortabelle, einer Lösch-Verwaltungstabelle, einer Block-Kennzeichen-Tabelle und einer Block-Statustabelle. Zuerst wird die Rolle der logischen Sektortabelle 1095 im FLASH-Sektor-Lese-Transfermodus besprochen unter Bezugnahme auf 26. Die logische Sektortabelle 1095 ist eine 64K-Byte-Tabelle, die physikalische Sektorzahlen speichert, die logischen Sektorzahlen entsprechen. Die gespeicherten physikalischen Sektorzahlen stimmen überein mit Adressen der physikalischen Sektortabelle 1005; Die Zahlen 1–16 384 sind als valide Sektoren definiert, FFFFh ist definiert als ein schreibbarer Sektor und 0 ist definiert als ein nicht-valider Sektor. Der Zentralrechner schreibt eine Zylinderzahl in niedrige und hohe Zylinderzahl-Register 1031 und 1032, eine Kopfzahl in ein SDH-Register 1033 und eine Sektorzahl in ein Sektorzahl-Register 1030. Dann, wenn der Zentralrechner einen Befehl schreibt, liest der Mikrocomputer 1007 und dekodiert den Befehl und berechnet eine logische Sektorzahl. Der Mikrocomputer 1007 referenziert die Adresse der logischen Sektortabelle 1095, die angezeigt ist durch die logische Sektorzahl und schreibt die physikalische Sektorzahl, die in der Adresse gespeichert ist, in das zweite Datei-Bankregister 1091 der Karten-Steuervorrichtung. Die physikalische Sektorzahl im zweiten Datei-Bankregister 1091 wird übertragen zum ersten Datei-Bankregister 1093 zur Verwendung als die hochwertigen 15 Bits der lokalen Adresse (1078). Die niedrigwertigen 9 Bits 1067 werden erzeugt beim 9-Bit-Zähler 1066. Durch 512-maliges Zählen der niedrigwertigen 9 Bits (1067), kann auf Daten in jedem Sektor des FLASH zugegriffen werden.
  • Als Nächstes wird die physikalische Sektortabelle 1105 beschrieben unter Bezugnahme auf 27. Die physikalische Sektortabelle 1105 ist eine 64K-Tabelle, die logische Sektorzahlen speichert, entsprechend den physikalischen Sektorzahlen. Die gespeicherten Sektorzahlen stimmen überein mit den Adressen der logischen Sektortabelle; Zahlen 1–16 384 sind als valide Sektoren bestimmt, FFFFh ist bestimmt als schreibbarer Sektor und 0 ist bestimmt als nicht-valider Sektor. Die Tabelle wird verwendet, um zu bestimmen ob oder nicht eine Speicherbereinigung durchgeführt werden muss für den Block, zu dem der physikalische Sektor, auf den durch den Schreibzeiger gezeigt wird, gehört, wenn eine interne Verarbeitung nach einer Sektor-Schreibübertragung durchgeführt wird, nämlich, wenn Daten in den FLASH geschrieben werden vom Schreib-Puffer. Insbesondere findet der Mikrocomputer 1007 "0" wieder in der physikalische Sektortabelle 1105 für den Block (in dem Beispiel, 00400H bis 004FFh). Falls "0" existiert, nämlich ein nicht-valider Sektor existiert, wird eine Speicherbereinigung begonnen. Der Schreibzeiger ist ein Zeiger, der den physikalischen Sektor des FLASH angibt, in welchen ein Schreiben ausgeführt wird und er wird verwaltet durch den Mikrocomputer 1007. Die Speicherbereinigung wird beschrieben unter Bezugnahme auf 28. Der Mikrocomputer 1007 kondensiert und überträgt Daten lediglich in validen Sektoren in dem FLASH-Block (in dem Beispiel in Block n) zum Abfall-Puffer 1005. Danach löscht der Mikrocomputer 1007 den Block und schreibt die Daten im Abfall-Puffer 1005 in den Block. D. h. die kondensierten Daten werden in denselben Block des FLASH geschrieben. Danach werden die physikalische Sektortabelle und die logische Sektortabelle aktualisiert, so dass sie mit der Verarbeitung der Kondensierung übereinstimmen. Um die physikalische Sektortabelle zu aktualisieren, wird dieselbe Verarbeitung der Kondensierung durchgeführt wie oben beschrieben. Die logische Sektortabelle wird aktualisiert auf der Grundlage der kondensierten physikalischen Sektortabelle.
  • Als Nächstes wird die Lösch-Verwaltungstabelle besprochen unter Bezugnahme auf 29. Die Lösch-Verwaltungstabelle 1108 ist eine 512-Byte-Tabelle zur Löschverwaltung des FLASH und speichert die Löschzahl (0–65 536) für jeden FLASH-Block in der Reihenfolge der physikalischen FLASH-Block-Zahlen. Die Tabelle kann ein Maximum von 16 Chips abdecken, von denen jeder aus 16 Blöcken besteht, nämlich einem Maximum von 256 Blöcken.
  • Als Nächstes wird die Block-Kennzeichen-Tabelle beschrieben unter Bezugnahme auf 30. Die Block-Kennzeichen-Tabelle 1106 ist eine 256-Byte-Tabelle, welche den schreibbaren Zustand jedes FLASH-Blocks speichert in der Reihenfolge der physikalischen FLASH-Block-Zahlen. Ein Austausch an Anforderungskennzeichen 1109, ein Ausgetauscht-Kennzeichen 1110, ein Zerstörungskennzeichen 1111 und ein Voll-Kennzeichen 1112, welche in der Tabelle enthalten sind, werden beschrieben. Das Austausch-Anforderungskennzeichen 1109 wird vom Mikrocomputer 1007 gesetzt, jedes Mal wenn der Löschzähler des Blocks n × 1000 (n ist eine natürliche Zahl) überschreitet. Wenn der Strom angeschaltet wird, sieht der Mikrocomputer das Kennzeichen und tauscht Daten in dem Block aus, der dem Kennzeichen entspricht und Daten in dem Block, der den geringsten Löschzähler aufweist. Das Kennzeichen wird gelöscht nachdem der Austausch ausgeführt ist. Das Ausgetauscht-Kennzeichen 1110 wird in dem Block gesetzt, welcher den Löschzähler n überschreitet, um zu verhindern, dass ein weiterer Austausch durchgeführt wird. Damit werden Daten, welche eine hohe Zugriffsfrequenz und Daten, welche eine niedrige Zugriffsfrequenz aufweisen, ausgetauscht, um die Löschzähler im FLASH zu verteilen. Die Lösch-Verwaltungstabelle wird referenziert und das Zerstörungskennzeichen 1111 wird auf 1 gesetzt für einen Block, der nicht gelöscht/geschrieben werden kann als ein Zerstörungsblock. Wenn ein Block voll wird mit validen und nicht-validen Sektoren und keine schreibbaren Sektoren enthält, wird das Voll-Kennzeichen 1112 für den Block auf 1 gesetzt. Das Kennzeichen wird verwendet, um zu überprüfen, ob ein schreibbarer Sektor in dem Block existiert, zu dem der physikalische Sektor, auf welchen der Schreibzeiger zeigt, gehört. 31 zeigt ein Fluss-Diagramm der internen Verarbeitung nach einer Sektor-Schreibübertragung. Falls das Voll- Kennzeichen 1112 im Schritt 1113 0 ist, werden Daten im Schreib-Puffer in einen schreibbaren Sektor des FLASH im Schritt 1114 geschrieben und die Verarbeitung wird im Schritt 1115 beendet. Ist das Voll-Kennzeichen 1 im Schritt 1113 und das Zerstörungskennzeichen 0 im Schritt 1116 ist und der Block einen nicht validen Sektor enthält, für den eine Speicherbereinigung im Schritt 1117 ausgeführt werden kann, wird eine Speicherbereinigung im Schritt 1118 ausgeführt, dann wird ein Schreiben im Schritt 1114 ausgeführt und die Bearbeitung wird abgeschlossen im Schritt 1115. Falls das Voll-Kennzeichen 1 ist im Schritt 1113 und das Zerstörungskennzeichen 0 ist im Schritt 1116 und alle Sektoren, welche in dem Block enthalten sind, valide Sektoren sind im Schritt 1117, wird der Schreibzeiger vorgerückt zum nächsten Block im Schritt 1119 und die interne Verarbeitung wird erneut durchgeführt, beginnend mit einem Referenzieren der Block-Kennzeichentabelle im Schritt 1113. Falls das Zerstörungskennzeichen 1 in Schritt 1116 ist, wird der Schreibzeiger in Schritt 1119 vorgerückt zum nächsten Block und eine interne Verarbeitung wird erneut durchgeführt, beginnend mit einem Referenzieren der Block-Kennzeichentabelle im Schritt 1113. Der Zweig wird durch Wiederauffinden der physikalischen Sektoradresse wie oben beschrieben durchlaufen.
  • Als Nächstes wird die Block-Statustabelle 1107 besprochen unter Bezugnahme auf 32. Die Block-Statustabelle 1107 ist eine 256-Byte-Tabelle, die die Anzahl der Schreibsektoren für jeden FLASH-Block speichert in der Reihenfolge der physikalischen FLASH-Block-Zahlen. Die Zahl der Schreibsektoren reicht von 0 bis 128; wenn sie 128 beträgt, gibt sie an, dass der Block voll ist. Die Tabelle wird verwendet, um zu sehen, wie viele schreibbare Sektoren jeder Block enthält, wenn Daten, die sich über eine Anzahl von Sektoren erstrecken, in einen einzigen Block geschrieben werden.
  • Eine Verarbeitung der Informationstabellen, wenn der Strom abgeschaltet wird, wird beschrieben unter Bezugnahme auf 33 und diejenige, wenn der Strom eingeschaltet wird, wird beschrieben unter Bezugnahme auf 34. Die physikalische Sektortabelle 1105, die Lösch-Verwaltungstabelle 1108 und die Block-Kennzeichentabelle 1106 sind Tabellen, welche sowohl in den PSRAM- und in den FLASH-Bereichen resident sind. Die Tabellen im PSRAM sind nicht zu sichernde Tabellen und sie werden aktualisiert wann immer es notwendig ist; die Tabellen im FLASH sind sichere Tabellen und sie werden lediglich dann aktualisiert, wenn der Strom abgeschaltet wird. Wenn der Strom abgeschaltet wird, werden die Daten in der physikalischen Sektortabelle 1105, der Lösch-Verwaltungstabelle 1108 und der Block-Kennzeichentabelle 1106 im FLASH-Bereich gesichert. Wenn der Strom eingeschaltet wird, werden die Daten in den drei Tabellen im FLASH-Bereich in das PSRAM geladen. Auf der Grundlage der logischen Sektorzahlen, welche in die physikalische Sektortabelle 1105 geschrieben sind, werden physikalische Sektorzahlen, die Adressen darstellen, der physikalischen Sektortabelle 1105 in der Reihenfolge in die logische Sektortabelle 1095 geschrieben. Die Zahl der Schreibsektoren in der physikalischen Sektortabelle 1105 wird gezählt und die Block-Statustabelle 1107 wird vorbereitet. Zu dieser Zeit, wenn der Mikrocomputer erkennt, dass ein Austausch-Anforderungskennzeichen in der Block-Kennzeichentabelle 1106 gesetzt ist, dann beginnt die Block-Austauschverarbeitung entsprechend dem Austausch-Anforderungs-Kennzeichen. Nachdem der Strom eingeschaltet ist, werden die Tabellen im PSRAM aktualisiert wann immer es nötig ist.
  • Eine Ablauffolge, wenn der Strom ausgeschaltet wird, wird unter Bezugnahme auf 35 beschrieben. Wenn der Strom ausgeschaltet wird, schreibt der Zentralrechner 1 in Bit 2 eines Konfigurations-Statusregisters im Schritt 1125. Wenn die Karten-Steuervorrichtung es empfängt, löscht sie Bit 5 des Anschluss-Stift-Ersatzregisters im Schritt 1126, und sendet dann ein Unterbrechungssignal (IRQ0N) zum Mikrocomputer. Wenn er das Unterbrechungssignal empfängt, führt der Mikrocomputer eine Stromabschalt-Verarbeitung durch, um Sicherungstabellen im Schritt 1127 zu speichern, nachdem die augenblickliche Ausfüh rungsverarbeitung abgeschlossen ist. Nach Abschluss der Stromabschalt-Verarbeitung setzt der Mikrocomputer Bit 5 des Anschluss-Stift-Ersatzregisters in der Karten-Steuervorrichtung im Schritt 1128. Inzwischen fragt der Zentralrechner das Anschluss-Stift-Ersatzregister zyklisch ab und wenn Bit 5 zu 1 im Schritt 1129 gesetzt ist, schaltet er den Strom ab.
  • Es wird eine Ablauffolge einer Vorverarbeitung einer Sektor-Übertragung beschrieben unter Bezugnahme auf 36. Zuerst schreibt der Zentralrechner eine Zylinderzahl, Kopfzahl und Sektorzahl in entsprechende Register im Schritt 1130 und einen Befehl in ein Befehlsregister im Schritt 1131. Dann analysiert die Karten-Steuervorrichtung den Befehl und schreibt seine Quelle in ein Unterbrechungs-Quellenregister und schickt ein Unterbrechungssignal (IRQ2N) zum Mikrocomputer im Schritt 1132. Wenn der Mikrocomputer das Unterbrechungssignal empfängt, liest er das Unterbrechungs-Quellenregister im Schritt 1133, um die Sektor-Übertragung zu erkennen und liest das Befehlsregister im Schritt 1134, um den Inhalt des Befehls zu analysieren. Danach liest der Mikrocomputer die logische Sektorzahl im Sektor-Zahlregister und schreibt sie in das logische Sektortabellen-Setzregister. Dann, wenn der Mikrocomputer auf die Adresse E100 im Speicher-Adressraum zugreift, wird die physikalische Sektorzahl von der logischen PSRAM-Sektortabelle im Schritt 1135 gelesen und im Sektor-Lesemodus, wird sie in das zweite Datei-Bankregister geschrieben im Schritt 1136. Im Sektor-Schreibmodus wird die Sektorzahl im Sektor-Puffer in das zweite Datei-Bankregister im Schritt 1136 geschrieben. Dann setzt der Mikrocomputer den Sektor-Übertragungsmodus im Steuerregister der Sektor-Übertragung im Schritt 1137 und schreibt 1 in das IREQ-Register im Schritt 1138. Wenn sie es empfängt, bestimmt die Karten-Steuervorrichtung ein Unterbrechungssignal (IREQN), welches zum Zentralrechner gesandt wird in Schritt 1139. Dann, wenn der Mikrocomputer das Sektorübertragungs-Startregister in Schritt 1140 setzt, schreibt die Karten-Steuervorrichtung die Daten im zweiten Datei-Bankregister (physikalische Sektorzahl) in das erste Datei-Bankregister und schreibt 1 in Bit 3 des Statusre gisters im Schritt 1141. Der Zentralrechner, der das Unterbrechungssignal empfängt, fragt das Statusregister zyklisch ab und falls Bit 3 (Anforderungs-Bit für Datenübertragung) 1 ist, startet er eine Übertragung im Schritt 1142. In Antwort auf das Lesen des Statusregisters negiert die Karten-Steuervorrichtung IREQN im Schritt 1143.
  • Eine Ablauffolge während der Sektor-Übertragung wird beschrieben unter Bezugnahme auf 37 bis 39. Zuerst wird eine FLASH-Sektor-Leseübertragung in 37 besprochen. Niedrigwertige 8-Bit-Daten werden ausgegeben im Schritt 1144 und hochwertige 8-Bit-Daten werden ausgegeben im Schritt 1145 vom FLASH-Speicher. Die Daten werden eingeklinkt in den Daten-Registerabschnitt in der Steuervorrichtung im Schritt 1146, um zu ermöglichen, dass 16-Bit-Daten ausgegeben werden, wenn der Zentralrechner das Datenregister im Schritt 1147 liest. Diese Bearbeitung wird 256 mal pro Sektor wiederholt. Als Nächstes wird eine MASK ROM-Sektor-Leseübertragung in 38 besprochen. 16-Bit-Daten, die ausgegeben werden vom MASK ROM im Schritt 1148, werden eingeklinkt in den Daten-Registerabschnitt in der Karten-Steuervorrichtung im Schritt 1149, um zu erlauben, dass 16-Bit-Daten ausgegeben werden, wenn der Zentralrechner das Datenregister im Schritt 1150 liest. Diese Bearbeitung wird 256 mal pro Sektor wiederholt. Als Nächstes wird eine Sektor-Schreibübertragung zum PSRAM in 39 besprochen. Wenn der Zentralrechner 16-Bit-Daten in das Datenregister im Schritt 1151 schreibt, werden sie im Schritt 1152 in den Daten-Registerabschnitt in der Karten-Steuervorrichtung eingeklinkt. Zunächst werden die niedrigwertigen 8 Bits der 16-Bit-Daten im Schritt 1153 in das PSRAM geschrieben und dann werden im Schritt 1154 die hochwertigen 8 Bit in das PSRAM geschrieben. Diese Bearbeitung wird 256 mal pro Sektor wiederholt. Im Mehrfachsektor-Transfermodus wird die Verarbeitung nacheinander durchgeführt für so viele Sektoren wie angegeben sind.
  • Eine Ablauffolge für eine Beendigungsverarbeitung der Sektor-Übertragung wird beschrieben unter Bezugnahme auf 40. Wenn das 256ste Datenregister-Lesen/Schreiben stattfindet im Schritt 1155, bedeutet es die Beendigung einer Sektor-Übertragung. Dann löscht die Karten-Steuervorrichtung das Sektorübertragungs-Startregister im Schritt 1156 und löscht Bit 3 (Anforderungs-Bit für die Datenübertragung) des Statusregisters im Schritt 1157. Danach setzt die Karten-Steuervorrichtung Bit 6 des Unterbrechungs-Quellenregisters im Schritt 1158 und gibt ein Unterbrechungssignal (IRQ2N) zum Mikrocomputer aus. Wenn der Mikrocomputer das Unterbrechungssignal empfängt, liest er das Unterbrechungs-Quellenregister im Schritt 1159 und erkennt, dass die Sektor-Übertragung endet und setzt das IREQ-Register in der Karten-Steuervorrichtung im Schritt 1160. Dann sendet die Karten-Steuervorrichtung ein Unterbrechungssignal (IREQN) zum Zentralrechner, der dann das Statusregister liest. D. h. der. Zentralrechner sieht, dass Bit 3 des Statusregisters 0 ist und erkennt, dass die Sektor-Übertragung im Schritt 1161 endet. In Antwort auf das Lesen des Statusregisters negiert die Karten-Steuervorrichtung IREQN im Schritt 1162.
  • Eine interne Verarbeitungsablauffolge, nachdem die Sektor-Schreibübertragung endet, wird beschrieben unter Bezugnahme auf 41. Zuerst liest der Mikrocomputer die Block-Kennzeichentabelle im Schritt 1163, um den Status des Blocks zu sehen, welcher den Sektor der physikalischen Sektorzahl enthält, auf die durch den Schreibzeiger gezeigt wird. Die Block-Kennzeichentabelle speichert Zerstörungskennzeichen, Voll-Kennzeichen, Austausch-Anforderungskennzeichen und Ausgetauscht-Kennzeichen. Falls das Zerstörungskennzeichen oder das Ausgetauscht-Kennzeichen für den Block zu 1 gesetzt sind, wird der Schreibzeiger (hochwertige 7 Bit der physikalischen Sektorzahl) aktualisiert und ein schreibbarer Block wird im Schritt 1164 gefunden. Falls das Voll-Kennzeichen für den Block zu 1 gesetzt ist und die Sektoren, die im Block enthalten sind, alle valide Sektoren sind, wird der Block-Zeiger aktualisiert und ein schreibbarer Block wird im Schritt 1164 gefunden. Falls das Voll-Kennzeichen für den Block auf 1 gesetzt ist und der Block einen nicht-validen Sektor enthält, wird eine Speicherbereinigung durchgeführt im Schritt 1118. Falls keine Kennzeichen für den Block gesetzt sind und der Block einen schreibbaren Sektor enthält oder wenn die Speicherbereinigung ausgeführt worden ist, wird die folgende Verarbeitung durchgeführt: zuerst schreibt der Mikrocomputer die Sektorzahl des Sektor-Puffers, der 1-Sektor-Daten enthält, in das Schreib-Puffer-Bankregister im Schritt 1165 und schreibt die physikalische Sektorzahl, auf die vom Schreibzeiger gezeigt wird, in das erste Datei-Bankregister im Schritt 1166. Danach liest der Mikrocomputer 1-Byte-Daten vom Sektor-Puffer im Schritt 1167 und schreibt die Daten in den FLASH im Schritt 1168. Die Verarbeitung wird 512 mal pro Sektor (512 Bytes) wiederholt. Danach wird die physikalische Sektortabelle, die logische Sektortabelle und die Block-Statustabelle aktualisiert. Im Mehrfachsektor-Schreibmodus werden alle oben beschriebenen Schritte wiederholt.
  • Eine Ablauffolge der Speicherbereinigung wird beschrieben unter Bezugnahme auf 42. Zuerst schreibt der Mikrocomputer die Sektorzahl des Sektor-Puffers, der 1-Sektor-Daten speichert, in das Bankregister des Abfall-Puffers im Schritt 1169. Dann überträgt der Mikrocomputer Daten in einem validen Sektor (512 Bytes) in dem Block Byte-weise zum Abfall-Puffer im Schritt 1170. Die Verarbeitung wird wiederholt für alle validen Sektoren in dem Block. Dann löscht der Mikrocomputer die Daten im FLASH in dem Block im Schritt 1171 und aktualisiert im Schritt 1172 die Block-Lösch-Zähl-Verwaltungstabelle. Danach schreibt der Mikrocomputer die Daten im Abfall-Puffer in den FLASH im Schritt 1173 und aktualisiert die physikalische Sektortabelle, die logische Sektortabelle und die Statustabelle im Schritt 1174. Dann kehrt der Mikrocomputer zum Schritt 1165 der internen Verarbeitung zurück, nach Beendigung des Sektor-Schreibens in 41, und schreibt die Schreibdaten im gegenwärtigen Sektor in den Schreib-Puffer in den FLASH.
  • Als Nächstes wird ein Verfahren zum PSRAM-Auffrischen besprochen. Zuerst wird die Zuteilung von einer PSRAM-Auffrischung und andere Speicheroperationen besprochen unter Bezugnahme auf 43. 43 zeigt ein Block-Diagramm der logischen Blöcke zum Ausführen der Zuteilung im Steuerabschnitt 1059, der in der Karten-Steuervorrichtung 1009 enthalten ist. Die logischen Blöcke sind ein in-Phasen Bestimmungsschaltkreis 1175 zum Bestimmen ob zwei Takte derselben Frequenz dividiert durch zwei unterschiedliche Vorrichtungen in Phase oder in entgegengesetzter Phase sind, ein Auffrisch-Steuerungs-Zählerabschnitt 1176, bestehend aus zwei Zählern zum Messen des Auffrischzählers und der verstrichenen Zeit vom Beginn des Auffrischens, ein Erzeugungsabschnitt für das Auffrisch-Anforderungssignal 1178 zum Erzeugen eines PSRAM-Auffrisch-Anforderungssignals 1177 und ein PSRAM-Zugriffssignal-Erzeugungsabschnitt 1181 zum Erzeugen eines PSRAM-Steuersignals 1179 und ein Erweiterungssignal für Bus-Zyklen 1180, das zum Mikrocomputer gesandt wird. Der Erzeugungsabschnitt für das Auffrisch-Anforderungssignal 1178 und der PSRAM-Zugriffssignal-Erzeugungsabschnitt 1181 bilden ein Auffrisch-Steuersignal-Ausgabemittel.
  • Zuerst wird die grundlegende Operation besprochen, wenn PSRAM nicht geschrieben oder gelesen wird. Zu der Zeit, zu der ein Strom-Ein-Rücksetzen negiert wird, beginnt Block 1178 ein Auffrisch-Anforderungssignal 1177 auszugeben zum Block 1181. Wenn er das Signal empfängt, gibt der Block 1181 ein Auffrisch-Steuersignal 1179 zum PSRAM. Der Block 1176 misst den Auffrischzähler und die verstrichene Zeit vom Starten des Auffrischens, wenn der Auffrischzähler einen gegebenen Zähler erreicht, wird ein Auffrisch-Stopp-Signal 1182 ausgegeben zum Block 1178, um Stromverbrauch vom PSRAM zu unterdrücken. Wenn er das Signal empfängt, beendet der Block 1178 das Ausgeben des Auffrisch-Anforderungssignals 1177. Als Ergebnis endet das PSRAM-Auffrisch-Steuersignal 1179 vom Block 1181. Danach, wenn die verstrichene Zeit vom Beginn des Auffrischens eine gegebene Zeit erreicht, stoppt der Block 1176 das Ausgeben des Auffrisch-Stopp-Signals 1182. Der Block 1178 startet das Ausgeben des Auffrisch-Anforderungssignals 1177 neu. Gleichzeitig wird auch das Ausgeben des PSRAM-Auffrisch-Steuersignals vom Block 1181 neu gestartet. Als Nächstes wird die Bearbeitung, wenn eine Sektor-Übertragung zum und vom PSRAM beginnt, wenn das PSRAM aufgefrischt wird, beschrieben. Falls das PSRAM während einer Sektor-Übertragung aufgefrischt wird, wird die Daten-Transferleistung des System-Busses erniedrigt. Zu dieser Zeit beendet der Block 1178 dann das Ausgeben des Auffrisch-Anforderungssignals 1177. Als Ergebnis endet das PSRAM-Auffrisch-Steuersignal 1179 von dem Block 1181. Nachdem die Sektor-Übertragung endet, startet der Block 1178 die Ausgabe des Auffrisch-Anforderungssignals 1177 neu und der Block 1181 startet das Ausgeben des PSRAM-Auffrisch-Steuersignals neu.
  • Als Nächstes wird die Operation beschrieben, wenn der Mikrocomputer Daten schreibt oder liest in oder vom PSRAM, wenn es aufgefrischt wurde. Ein PSRAM-Auffrischen und ein PSRAM-Schreiben oder Lesen vom Mikrocomputer werden im selben Bus-Zyklus durchgeführt durch Erweitern des Mikrocomputer-Bus-Zyklus'. Nebenbei gesagt, beim Rücksetzen des Stromeinschaltens, können 10ϕ Taktausgabe des Mikrocomputers und 10ϕ Takt bereitgestellt durch Teilen des Systemtakts zum Erzeugen des Auffrisch-Steuersignals 1179 aus der Phase sein. Deshalb müssen das Zeitgabeverhältnis zwischen dem Schreib- oder Lesen-Steuersignal und dem Auffrisch-Steuersignal 1179 und ein außer Phase sein der Takte berücksichtigt werden, um zu bestimmen, wie viele Takte erweitert werden sollen. Deshalb, wenn der Mikrocomputer auf das PSRAM zugreift, bestimmt der Block 1175 einen aus-der-Phase-Zustand der Takte und sendet Information zum Block 1181, dann gibt der Block 1181 PSRAM-Scheib- oder Lese- und Auffrisch-Steuersignale aus und ein Wartesignal (WAITN) zu 1180, um den Mikrocomputer-Bus-Zyklus auszudehnen.
  • Als Nächstes wird die Arbeitsweise von Unterbrechungssignalen, die von der Karten-Steuervorrichtung ausgegeben werden, unter Bezugnahme auf 44 (Hardware-Aufbau) beschrieben. Die Karten-Steuervorrichtung stellt vier Unterbrechungssignale bereit IRQ0N 1289, IRQ1N 1190, IRQ2N 1191 und IREQN 1192, IRQ0N 1289 wird bereitgestellt, um den Mikrocomputer 1007 zu veranlassen, eine Stromabschalt-Verarbeitung durchzuführen. Insbesondere wird die Unterbrechung bestimmt, wenn der Zentralrechner 1 in Bit 2 (Strom-aus-Bit) des Konfigurations-Statusregisters in der Karten-Steuervorrichtung 1009 schreibt. IRQ1N 1190 wird bereitgestellt; um den Mikrocomputer 1007 zu veranlassen, eine Initialisierungsverarbeitung durchzuführen, wenn ein Hardware-Rücksetzen angewandt wird. Insbesondere wird eine Unterbrechung bestimmt, wenn ein Hardware-Rücksetzsignal (RESET) 1194 vom Zentralrechner empfangen wird. IRQ2N 1191 wird bereitgestellt, um den Mikrocomputer 1007 zu veranlassen eine Initialisierungsverarbeitung durchzuführen, wenn ein Software-Rücksetzen angewandt wird und um eine Befehls-Schreibverarbeitung durchzuführen, wenn ein Befehl geschrieben wird. Es wird ebenso verwendet, um den Mikrocomputer 1007 über eine Beendigung der Sektor-Übertragung zu informieren und um den Mikrocomputer 1007 zu veranlassen, eine Beendigungsverarbeitung der Sektor-Übertragung und eine interne Verarbeitung nach der Beendigung durchzuführen. Insbesondere, wenn der Zentralrechner 1 in Bit 2 eines digitalen Ausgaberegisters der Karten-Steuervorrichtung 1009 schreibt, wenn ein Software-Rücksetzen angewandt wird, wenn der Zentralrechner einen Befehl in das Befehlsregister schreibt oder wenn der Beendigungszähler der Sektor-Übertragung 1193 im Steuersignal-Erzeugungsabschnitt 1070 die Beendigung der Sektor-Übertragung detektiert, wird IRQ2N 1191 bestimmt. Zu dieser Zeit befinden sich, um es dem Mikrocomputer zu erlauben, die drei Unterbrechungsquellen voneinander zu unterscheiden, die Quelleninhalte in einem Unterbrechungs-Quellenregister (Unterbrechungs-Quellenspeichermittel) 2890 in der Karten-Steuervorrichtung. IREQN 1192 ist eine Unterbrechungsausgabe zum Zentralrechner bei Abschluss einer Mikrocomputer-Verarbeitung beim Befehlsschreiben oder beim Abschluss einer Übertragungs-Beendigungsverarbeitung durch den Mikrocomputer 1007 nach Beendigung der Sektor-Übertragung. Insbesondere wird die Unterbrechung bestimmt, wenn der Mikrocomputer 1007 1 in das IREQ-Setzregister setzt. Wenn der Strom eingeschaltet wird, wird IREQN 1192 bestimmt, wenn RESN 1019 (2) empfangen wird vom Strom-Ein-Rücksetz-IC; es zeigt BUSY an während einer Initialisierung. Die IREQN 1192 Sendeoperation ist im Detail beschrieben in der Beschreibung der Ablauffolgen und wird deshalb nicht noch einmal besprochen.
  • Als Nächstes wird der Betrieb der MCC-Anschluss-Stifte zum Setzen des FLASH-Speichers und MASK ROM-Installationskapazitäten beschrieben unter Bezugnahme auf 45. MCC0-Anschluss-Stift 1023, MCCI-Anschluss-Stift 1022, MCC2-Anschluss-Stift 1021 und MCC3-Anschluss-Stift 1020 der Karten-Steuervorrichtung sind verbunden mit Vcc oder GND.
  • Wenn der Strom eingeschaltet wird, liest der Mikrocomputer 1007 ein Speicher-Größenregister 1195 zur Berechnung der FLASH- und MASK ROM-Installationskapazitäten. Das Speicher-Größenregister 1195 ist ein 8-Bit-Register, bei dem die Bits 0–3 den Werten von MCC0–MCC3 entsprechen; Bits 4–7 werden nicht verwendet. Eine besondere MCC-Anschluss-Stift-Einstellung wird besprochen. Die FLASH-Installationskapazität kann gesetzt werden auf 4 MB, 6 MB oder 8 MB mit Hilfe des MCC3-Anschluss-Stifts 1020 und des MCC2-Anschluss-Stifts 1021. Da 1-MW × 8-Bit-FLASH verwendet wird in der Ausführungsform entsprechend 4 MB, 6 MB und 8 MB jeweils 4, 6 und 8 FLASH-Chips. Die MASK ROM-Installationskapazitäten können auf 4 MB, 6 MB oder 8 MB gesetzt werden mit Hilfe des MCC1-Anschluss-Stifts 1022 und des MCC0-Anschluss-Stifts 1023. Da acht 512-KW × 8-Bit MASK ROM-Chips als 4 MB oder 6 MB oder 8 MB 1-MW × 8-Bit MASK ROM-Chips als 6 MB oder 8 MB verwendet werden in der Ausführungsform, wird die Dekodieradresse eines MASK ROM-CEN-Dekodierers 1196 (hochwertige Adresse der lokalen Adresse) geändert gemäß dem Wert des MCC1-Anschluss-Stifts 1022 und des MCC0-Anschluss-Stifts 1023.
  • Als Nächstes wird die Bestimmung des Zerstörungsblocks beschrieben. In der Ausführungsform wird, wenn die Daten in einer Sektoreinheit, die zeitweise in den PSRAM-Schreib-Puffer-Bereich geschrieben werden, im Dateibereich des FLASH-Speichers gespeichert werden, die obere Begrenzungszeit des FLASH-Speicher-Schreibens oder -Löschens wird überwacht, womit ein defekter Block detektiert wird und als Zerstörungsblock registriert wird. Es wird beschrieben wie der Zerstörungsblock bestimmt wird. Eine Messung wird begonnen, wenn der Mikrocomputer einen FLASH-Speicher-Lösch oder -Schreib-Befehl ausgibt. Als erstes wird ein Verfahren zum Überwachen der FLASH-Speicher-Löschzeit besprochen. 46 zeigt ein Fluss-Diagramm des Überwachens der Löschzeit. Als Initialisierung werden ein Zeitüberschreitungszähler (TC) und ein Abfrage-Wiederholungszähler (PC) gelöscht und ein Lösch-Kennzeichen (EFG) wird im Schritt 1197 gesetzt. Ein 16-Bit-Zeitgeber des Mikrocomputers wird verwendet, um ein Ausgabe-Vergleichskennzeichen A alle 100 ms zu setzen, um eine Unterbrechung im Mikrocomputer im Schritt 1198 zu erzeugen. Nach dem Löschen des Ausgabevergleich-Kennzeichens A in Schritt 1199 inkrementiert der Mikrocomputer den Abfrage-Wiederholungszähler um 1 im Schritt 1200. Wenn der Abfrage-Wiederholungszähler auf 5 gesetzt wird im Schritt 1201, liest der Mikrocomputer das Statusregister des FLASH-Speichers im Schritt 1202. (Das bedeutet, dass das Statusregister alle 500 ms gelesen wird.) Falls eine Löschung abgeschlossen ist im Schritt 1203, gibt sie an, dass der Block nicht defekt ist. Das Löschkennzeichen wird im Schritt 1204 gelöscht und die Routine wird beendet. Falls eine Löschung nicht abgeschlossen ist im Schritt 1203, wird der Zeit-Überschreitungszähler um 1 inkrementiert im Schritt 1205. Zu dieser Zeit, falls der Zeit-Überschreitungszähler nicht 40 ist im Schritt 1206, wird keine Bearbeitung durchgeführt. Falls der Zeit-Überschreitungsfehler 40 ist im Schritt 1206, bedeutet dies, dass der Nicht-Lösch-Status andauert für 500 ms × 40 = 20 s. Der Block wird registriert als ein Zerstörungsblock im Schritt 1207 und dann wird die Routine beendet. Dies wird deshalb durchgeführt, weil die maximale Löschzeit in Block-Einheiten des FLASH-Speichers 10 s beträgt.
  • Als Nächstes wird ein Verfahren durch Überwachung der FLASH-Speicher-Schreibzeit besprochen. 47 zeigt ein Fluss-Diagramm des Überwachens der Schreibzeit. Als Initialisierung wird der TC gelöscht und ein Schreib-Kennzeichen (WFG) wird im Schritt 1208 gesetzt. Ein 8-Bit-Zeitgeber des Mikrocomputers wird verwendet, um ein Kennzeichen zur Vergleichsübereinstimmung A alle 10,4 μs zu setzen, um eine Unterbrechung im Mikrocomputer im Schritt 1209 zu erzeugen. Nach dem Löschen des Kennzeichens zur Vergleichsübereinstimmung A im Schritt 1210 liest der Mikrocomputer das Statusregister des FLASH-Speichers im Schritt 1211. Falls das Schreiben abgeschlossen ist im Schritt 1212, gibt es an, dass der Block nicht defekt ist. Das Schreibkennzeichen wird im Schritt 1213 gelöscht und die Routine wird beendet. Falls das Scheiben im Schritt 1212 nicht abgeschlossen ist, wird der Zeitüberschreitungszähler im Schritt 1214 um 1 inkrementiert. Zu dieser Zeit, falls der Zeitüberschreitungszähler im Schritt 1215 nicht 40 ist, wird keine Bearbeitung durchgeführt. Falls der Zeitüberschreitungszähler im Schritt 1215 40 ist, bedeutet dies, dass der Nicht-Schreibstatus andauert für 10,4 μs × 40 = 416 μs. Der Block wird registriert als ein Zerstörungsblock im Schritt 1216, wenn die Routine beendet wird. Obwohl zu jeder gegebenen Zeit eine Unterbrechung erzeugt wird, um die Zeit in dem Beispiel zu überwachen, falls es Zeit braucht, um eine Unterbrechungsverarbeitung durchzuführen und die Rückschreibleistung negativ beeinflusst wird, kann das Statusregister des FLASH-Speichers zyklisch abgefragt werden, um die Schreib- oder Lösch-Beendigung einfach zu bestimmen.
  • Als Nächstes wird ein Erweiterungsbeispiel besprochen, in welchem ein FLASH-Speicher, der eine langsame Zugriffszeit, 1239, aufweist und ein FLASH-Speicher, der eine schnelle Zugriffszeit, 1014, aufweist, bei der Verwendung ge mischt. In der Ausführungsform wird, um Lösch-Block-Einheiten zu bilden, welche Chip-Block-Einheiten gleichen, wobei der FLASH-Speicher eine schnelle Zugriffszeit, 1014, aufweist, verwendet, um eine verzahnte Übertragung von jeweils 8 Bit auszuführen. Andererseits können, um den FLASH-Speicher, der eine langsame Zugriffszeit, 1239, aufweist, zusammen mit dem FLASH-Speicher 1014 zu verwenden, wegen einer Kostenbeschränkung etc., diese zur Verwendung gemischt werden, wie in 48 gezeigt, durch Ändern des Schaltkreises der Karten-Steuervorrichtung 1009. D. h., der FLASH-Speicher 1014 mit schnellem Zugriff und der FLASH-Speicher 1239 mit langsamem Zugriff werden verwendet. In diesem Fall jedoch müssen hochwertige 8 Bits und niedrigwertige 8 Bits in unterschiedlichen Chips des langsamen FLASH-Speichers 1239 gespeichert werden, womit die Lösch-Block-Einheiten doppelt werden. Es wird lediglich der Änderungsteil beschrieben. In der Ausführungsform, wenn die FLASH-Sektor-Leseübertragung ausgeführt wird, wird ein Lesen zweimal ausgeführt für ein Lesen vom Zentralrechner. Wenn jedoch zwei Lesevorgänge ausgeführt werden für den langsamen FLASH-Speicher 1239, kann der Betrieb nicht Schritt halten mit dem Zentralrechner-Lesezyklus. Dann wird das am geringsten signifikante Bit von einer Adresse, LA0, nicht verwendet und CEN des Chips hoher Ordnung und CEN des Chips niedrigerer Ordnung werden zur selben Zeitgabe bestimmt, so dass die beiden Chips wie ein Wort behandelt werden können, wenn auf das MASK ROM zugegriffen wird. LD8–LD15 sind verbunden mit dem hochwertigen Chip des FLASH-Speichers 1239 als ein bidirektionaler Bus zum Schreiben. LD0–LD7 des bidirektionalen Busses sind verbunden mit dem Chip niedrigerer Ordnung des FLASH-Speichers 1239 wie vorher. Wenn jedoch ein Zugriff vom Mikrocomputer in 8-Bit-Einheiten durchgeführt wird, in welchem Fall CEN des Chips hoher Ordnung und CEN des Chips niedrigerer Ordnung getrennt gesteuert werden müsste. Deshalb können 16 Bit in einer Leseoperation gelesen werden.
  • Gemäß der Erfindung wird ein System bereitgestellt, mit einer ausgezeichneten Hochgeschwindigkeits-Zugriffsleistung im Vergleich mit anderen Datei- Speichersystemen, welches nämlich keine Suchzeit benötigt und Lesen und Schreiben mit hoher Geschwindigkeit durchführt im Vergleich mit magnetischen Platteneinheiten und einen Schreib-Puffer aufweist, der insbesondere für ein Hochgeschwindigkeits-Schreiben gedacht ist im Vergleich mit einem Speichersystem, welches einen herkömmlichen Flash-Speicher verwendet. Das System gemäß der Erfindung ist langsamer im Vergleich mit einem Speicher, welcher einen flüchtigen Speicher als Speichermedium verwendet, weist jedoch Vorteile auf, wie z. B. der nicht benötigten Leistung zum Sichern und niedrigen Kosten im Vergleich mit dem Speicher.
  • Der Löschzähler wird aufgezeichnet und Daten werden ausgetauscht zwischen einem Block, der einen großen Löschzähler aufweist und einem Block, der einen kleinen Löschzähler aufweist, so dass die Flash-Speicher-Rückschreib-Lebenszeit innerhalb der Blöcke gleich wird, womit die effektive Lebenszeit verlängert wird. Dies beruht auf der Tatsache, dass die Daten, welche gespeichert sind in dem Block, der einen großen Löschzähler aufweist, als von Daten häufig beschrieben betrachtet wird.
  • Deshalb kann eine praktische System-Lebensdauer wie bei einem Datei-Speichersystem bereitgestellt werden.
  • Zu dieser Zeit wird eine Vielzahl von Datenarten in einer Art von Chip gespeichert, z. B. werden Systemdateien und Schnittstellen-Information im Masken-ROM gespeichert. Damit kann die Anzahl der notwendigen Teile vermindert werden im Vergleich zu dem Fall, in welchem lediglich eine Art von Daten gespeichert wird auf einer An von Chip. Dieser Gesichtspunkt trägt zur Miniaturisierung bei, wie z. B. beim Unterbringen des Systems auf einer Karte.
  • Ein Dateispeicher, der einen teuren Flash-Speicher verwendet im Vergleich zu einer magnetischen Speichereinheit, wie sie gegenwärtig als Speichermedium verwendet wird, kann bereitgestellt werden zu niedrigen Kosten unter Verwendung eines nicht teuren ROM in Teilen.
  • IC-Karten-Konfigurations-Information und Zugriffsinformation werden intern gespeichert und können extern zugegriffen werden, so dass das System gemäß der Erfindung dem IC-Karten-Standard folgen kann.
  • Falls die Zentralrechner-Bus-Breite 16 Bit beträgt, muss die Speicher-Bus-Breite angepasst werden, weil viele Flash-Speicher gegenwärtig in 8-Bit-Breite hergestellt werden. Bei Verwendung von Masken-ROM, welches eine 16-Bit-Breite aufweist als Masken-ROM, ist eine Bus-Breiten-Anpassung nicht erforderlich für ein Masken-ROM, womit die Leistung verbessert werden kann und die Zahl der Schaltkreise reduziert werden kann.
  • Ein Speicher, welcher eine Auffrisch-Operation erfordert, wird verwendet als flüchtiger Speicher wegen der niedrigen Kosten. Falls nicht auf den Speicher zugegriffen wird, wird er aufgefrischt und eine Auffrisch-Operation wird minimiert unter der Steuerung, womit unnötige Verarbeitungszeit eliminiert wird und ein Beitrag geleistet wird zur Leistungsverbesserung.
  • Ausführungsform 2:
  • Eine zweite Ausführungsform wird beschrieben. 50 ist ein Block-Diagramm von der zweiten Ausführungsform der Erfindung. Ein Flash-Speicher-System gemäß der zweiten Ausführungsform der Erfindung umfasst einen Flash-Speicher 2001 als Speichermedium, einen Bus 2002, eine Informationsvorrichtung, die verwendet wird als ein Zentralrechner des Flash-Speicher-Systems, einen Schnittstellen-Schaltkreis 2003, der aus Registern, Bussen etc. besteht, um eine Schnittstelle mit dem Zentralrechner-Bus 2002 zu bilden, eine Steuervorrichtung (Steuerabschnitt) 2004, die das gesamte Flash-Speicher-System steuert, eine Adress-Übersetzungstabelle (Informationsspeichermittel) 2005 zum Umwandeln von logischen Adressen, die für den Zentralrechner verwendet werden, um Dateidaten zu verwalten in physikalische Adressen, die physikalische Speicherstellen angeben, einen Schreib-Puffer 2006 zum Speichern von Dateidaten mit hoher Geschwindigkeit, die übertragen werden vom Zentralrechner, um eine wahrnehmbare Verarbeitungsgeschwindigkeit zu erhöhen (deshalb flüchtiger Speicher, wie z. B. SRAM oder DRAM, welcher der Anforderung des Schreibens mit hoher Geschwindigkeit genügt), einer DMA-(dynamic memory access bzw. dynamischer Speicherzugriff)-Steuervorrichtung 2007, um den Schwachpunkt zu überwinden, dass die Betriebsgeschwindigkeit der Steuervorrichtung 2004 niedriger ist als die des Zentralrechner-Busses 2002, um Daten mit hoher Geschwindigkeit zu übertragen, und ein Unterbrechungs-Informationsregister (Unterbrechungs-Informations-Speichermittel) 2008 zum Speichern des Betriebszustands, wenn eine Verarbeitung unterbrochen wird auf den Empfang einer Zugriffsanforderung hin vom Zentralrechner, während Daten in den Schreib-Puffer 2006 übertragen werden zum Flash-Speicher 2001. (Der Betriebszustand wird für einen späteren Neustart gespeichert.)
  • 60 zeigt ein Beispiel einer Übersetzungstabelle 2005, worin 3-Sektor-Daten, die übertragen werden vom Zentralrechner-Bus 2001, zurückgehalten werden in Blöcken 1–3 des Schreib-Puffers 2006 und die Daten in Blöcken 1 bis 3 geschrieben werden in den Sektor 3 des Chip 0 auf dem Flash-Speicher 2001, Sektor 2 auf Chip 1 bzw. Sektor 7 auf Chip 2. Das Kennzeichen gibt an, dass die Daten vom Zentralrechner noch nicht zum Flash-Speicher übertragen sind und im Schreib-Puffer verbleiben.
  • Die Übersetzungstabelle ist nicht beschränkt auf das Beispiel in 60; es ist möglich, dass keine Kennzeichen bereitgestellt werden, in welchem Fall die Block-Zahlen des Schreib-Puffer-Speichers gelöscht werden können für die Daten, die zum Flash-Speicher übertragen worden sind anstelle der Kennzeichen-Funktion. Falls die physikalischen Adressen des Schreib-Puffers und des Flash-Speichers zusammenhängend gemacht sind, kann die Lage von Daten von den physikalischen Adressen bekannt sein und die Kapazität der Tabelle kann vermindert werden.
  • Im Betrieb, wenn es notwendig wird, Dateidaten zu speichern oder zu lesen, schickt der Zentralrechner eine Zugriffsanforderung über den Zentralrechner-Bus 2002. Wenn Dateidaten gespeichert werden, spezifiziert der Zentralrechner die logische Adresse, um die Daten zu speichern und überträgt die Daten; wenn Dateidaten gelesen werden, spezifiziert der Zentralrechner die logische Adresse bei der Verwaltung und fordert an, dass Dateidaten, die hier gespeichert sind, übertragen werden sollen. Diese Anforderungen werden dadurch gemacht, dass sie gesetzt werden in Register, welche im Schnittstellen-Schaltkreis 2003 enthalten sind. Wenn sie die Inhalte der Verarbeitungsanforderung, die im Schnittstellen-Schaltkreis 2003 gesetzt sind, erkennt, differenziert die Steuervorrichtung 2004 die Übersetzungstabelle oder schreibt den Inhalt der Übersetzungstabelle 2005 neu, um sicherzustellen, dass die logische Adresse, wie sie vom Zentralrechner spezifiziert wird, gegenwärtig mit der physikalischen Adresse übereinstimmt, welche die gegenwärtige Speicherstelle der Daten angibt. Falls die Anforderung darin besteht, Dateidaten zu speichern, schreibt die Steuervorrichtung 2004 die logische Adresse, die vom Zentralrechner spezifiziert wird und die physikalische Adresse des Schreib-Puffers, in welchen die Daten gespeichert werden sollen, in die Übersetzungstabelle 2005. Falls die Dateidaten, die bereits in der Vergangenheit gespeichert wurden, aktualisiert werden sollen, werden die vergangenen Daten hinfällig und die Steuervorrichtung 2004 gibt Information ein, die anzeigt ob oder nicht die physikalische Adresse, an der die vergangenen Daten gespeichert sind, gültig sind (diese Information ist erforderlich, weil Daten in derselben logischen Adresse gespeichert sind, in unterschiedlichen physikalischen Adressen des Flash-Speichers) in die Übersetzungstabelle 2004.
  • Um Schreibdaten, die vom Zentralrechner übertragen werden, anzunehmen, startet die Steuervorrichtung 2004 den DMAC 2007 zum Speichern der Daten in den Schreib-Puffer 2006. Falls Daten, die nicht mehr benötigt werden, die im Flash-Speicher 2001 gespeichert sind, zur selben Zeit gelöscht werden, kann die Verarbeitungszeit wirksam verwandt werden. Andererseits, falls die Anforderung darin besteht, Dateidaten zu lesen, referenziert die Steuervorrichtung 2004 die Übersetzungstabelle 2005 von der logischen Adresse, die durch den Zentralrechner angegeben wird, um herauszufinden, wo die Dateidaten, die vom Zentralrechner angefordert worden sind, physikalisch gespeichert sind und setzt sie in den DMAC 2007, dann beginnt der DMAC 2007 Daten mit hoher Geschwindigkeit zum Zentralrechner-Bus 2002 zu übertragen.
  • Die Dateidaten-Speicherstelle kann der Flash-Speicher 2001 oder der Schreib-Puffer 2006 sein. Dies sollte herausgefunden werden durch Referenzieren der Übersetzungstabelle 2005. Deshalb muss die Steuervorrichtung 2004 den Speicher auswählen, auf den durch den DMAC zugegriffen werden soll in Antwort auf den Inhalt der referenzierten Übersetzungstabelle 2005.
  • Ein Abriss des Betriebs des Flash-Speicher-Systems in Antwort auf die Zugriffsanforderung vom Zentralrechner ist bereits gegeben worden. Die Steuervorrichtung führt eine interne Verarbeitung der Übertragung der Daten durch, die im Schreib-Puffer gespeichert sind zum Flash-Speicher 2001, bis der Zentralrechner eine neue Zugriffsanforderung macht nach Beendigung der Verarbeitung für die Zugriffsanforderung vom Zentralrechner. Wenn jedoch alle Daten im Schreib-Puffer zum Flash-Speicher übertragen worden sind, tritt das Flash-Speicher- System vollständig in den Wartezustand, damit der Zentralrechner einen neuen Befehl ausgibt. Falls die Datenübertragung vom Schreib-Puffer zum Flash-Speicher nicht ausgeführt wird, wenn der Strom abgeschaltet wird, die Daten im Schreib-Puffer, ein flüchtiger Speicher kann seine Daten nicht zurückhalten und die zuletzt gespeicherten Dateidaten gehen verloren. Da der Datenumfang der Daten, die im Schreib-Puffer gespeichert werden können, beschränkt ist, wird die Datenübertragung zum Flash-Speicher vorzugsweise stets durchgeführt solange Daten, die nicht im Flash-Speicher gespeichert sind, im Schreib-Puffer verbleiben.
  • Falls eine Zugriffsanforderung vom Zentralrechner empfangen wird, während eine Datenübertragung vom Schreib-Puffer zum Flash-Speicher ausgeführt wird, wird die Übertragungsverarbeitung, die gerade ausgeführt wird, unterbrochen und das Flash-Speicher-System antwortet auf die Zugriffsanforderung des Zentralrechners. Erforderliche Statusdaten werden im Unterbrechungs-Informationsregister 2008 aufgezeichnet, so dass die unterbrochene Verarbeitung, nach Beendigung der Verarbeitung für die Zugriffsanforderung vom Zentralrechner, neu gestartet werden kann. Ein Register oder Speicher in der Steuervorrichtung 2004 kann als Unterbrechungs-Informationsregister 2008 verwendet werden.
  • Der Betrieb der Steuervorrichtung 2004, der oben besprochen wurde, wird in Fluss-Diagrammen der 51 und danach beschrieben. 51 ist ein Fluss-Diagramm von einer Hauptroutine der Steuervorrichtung 2004. Im grundlegenden Arbeitsablauf wird eine erste Prüfung durchgeführt, um zu sehen, ob eine Zugriffsanforderung vom Zentralrechner im Schritt 2a empfangen wird. Falls sie empfangen wird, springt die Steuerung zu einer Zugriffsroutine; andernfalls führt die Steuerung den nächsten Schritt aus. Eine Überprüfung wird durchgeführt, um zu sehen, ob die Daten, die nicht im Flash-Speicher gespeichert sind, im Schreib-Puffer im Schritt 2b vorhanden sind. Falls sie vorhanden sind, werden die Daten zum Flash-Speicher übertragen zum Speichern in vorbestimmten Einheiten, wie z. B. Sektoren oder Wörtern im Schritt 2c. Falls alle Daten bereits im Flash- Speicher gespeichert sind, wird für den Zentralrechner ein Warten durchgeführt, um auf das Flash-Speicher-System zuzugreifen. Falls die Steuerung zur Zugriffsroutine im Schritt 2a springt, wenn die Zugriffsroutine endet und die Ablaufsteuerung der Hauptroutine zurückgegeben wird, wird der Zustand wieder hergestellt zum Zustand, der im Unterbrechungs-Informationsregister im Schritt 2d aufgezeichnet ist, um die Hauptroutine neu zu starten. Der Ablauf wird in der Hauptroutine wiederholt.
  • 52 und 53 sind Fluss-Diagramme von Zugriffsroutinen. In 52 wird zuerst der Zustand in der Hauptroutine, wenn die Steuerung zur Zugriffsroutine springt, im Unterbrechungs-Informationsregister 2008 in 50 im Schritt 3a gespeichert, so dass der Betrieb der Hauptroutine neu gestartet werden kann, wenn die Ablaufsteuerung zur Hauptroutine zurückgegeben wird. Die logische Adresse und physikalische Adresse eines Schreibsektors etc. sind im Register 2008 gespeichert. Als Nächstes wird die Zugriffsart vom Zentralrechner bestimmt und die Ablaufsteuerung verzweigt zu dem entsprechenden Prozess im Schritt 3b. Die nachfolgende Lese-Zugriffsverarbeitung wird in 52 gezeigt. In der Lese-Zugriffsverarbeitung wird zuerst eine Adress-Umwandlung durchgeführt. Der Zentralrechner bestimmt eine bestimmte Datei durch Angabe der logischen Adresse, aber die logische Adresse gibt nicht die tatsächliche Speicherstelle im Speicher an; deshalb wird auf die Adress-Umwandlungstabelle zugegriffen, um von der logischen Adresse in die physikalische Adresse umzuwandeln und die tatsächliche Speicherstelle im Speicher wird evaluiert für ein Lesen im Schritt 3c. Nachdem die Adress-Umwandlung durchgeführt wurde, wird die DMAC-Zugriffsadresse gesetzt und der DMAC wird im Schritt 3d gestartet. Lesedaten werden zum Zentralrechner-Bus übertragen und der Zugriff wird im Schritt 3e abgeschlossen. Dann wird die Ablaufsteuerung zur Hauptroutine zurückgegeben.
  • Andererseits ist ein Schreibzugriff in 53 gezeigt. Zuerst wird eine Überprüfung gemacht, um zu sehen ob die angegebene Datei in der Vergangenheit gespei chert war im Schritt 4a. Ob oder nicht die Datei in dem Bereich gespeichert war kann bestimmt werden durch überprüfendes Sehen, ob seine physikalische Adresse in der Tabelle vorkommt. Falls die Datei eine Datei ist, welche in der Vergangenheit gespeichert wurde, wird die Übersetzungstabelle referenziert und die physikalische Stelle der Datei wird evaluiert, dann wird die Übersetzungstabelle aktualisiert (selbst wenn die logische Adresse der Datei dieselbe bleibt, die Datei wird in einer anderen physikalischen Adresse gespeichert, um die Rückschreib-Lebensdauer zu verlängern; deshalb muss die physikalische Adresse der Datei aktualisiert werden) und eine Löschoperation wird für den Flash-Speicher durchgeführt im Schritt 4b. Zur selben Zeit wird eine Schreiboperation der Aktualisierungsdatei durchgeführt. Da eine Löschoperation selbsttätig im Flash-Speicher durchgeführt wird, falls der Chip, wo die Löschoperation ausgeführt wird, sich unterscheidet von dem Chip, wo die Schreiboperation ausgeführt wird, können die Löschoperation und die Schreiboperation gleichzeitig durchgeführt werden. Falls die Datei neu ist im Schritt 4a, wird eine Schreiboperation gestartet. Zuerst wird die Speicherstelle der Datei bestimmt und die Entsprechung zwischen der logischen Adresse und der physikalischen Adresse wird aufgezeigt im Schritt 4c. Als Nächstes wir die DMAC-Zugriffsadresse gesetzt und der DMAC wird im Schritt 4d gestartet. Daten vom Zentralrechner werden gespeichert im Schreib-Puffer im Schritt 4e. Die Schreiboperation ist jetzt vollständig und die Steuerung wird zurückgegeben zur Hauptroutine. Die Ablauffolge im Fluss-Diagramm kann verändert werden wo immer es geeignet erscheint. Da der DMAC eine tatsächliche Datenübertragung zu und vom Zentralrechner ausführt, nachdem der DMAC eingestellt und gestartet ist in 52 und 53, tritt die Steuervorrichtung in der Zugriffszeit in den Warte- oder Haltezustand. Obwohl die Löschoperation, durchgeführt in der Schreibroutine in 53, ausgeführt werden kann, wenn Daten in den Flash-Speicher in der Hauptroutine geschrieben werden, kann eine andere Datei-Anordnungsroutine zum Löschen bereitgestellt werden. Insbesondere, wenn Flash-Speicher-Löscheinheiten größer sind als Verwaltungseinheiten und wenn es nicht vermeidbar ist, dass eine Anzahl von Dateien in einer Löscheinheit vor kommen, stellt die Bereitstellung einer Speicher-Bereinigungsroutine, in welcher eine Löschoperation durchgeführt wird, die effizienteste Lösung dar.
  • Ein Beispiel, in welchem Daten vom Zentralrechner im Schreib-Puffer gespeichert werden als eine Anwendung von 53, wird besprochen unter Bezugnahme auf 59. Wenn Daten, die noch nicht zum Flash-Speicher übertragen sind und die im Schreib-Puffer verbleiben, aktualisiert werden, werden die vorher gespeicherten Daten hinfällig. Dann werden die Daten nicht gelöscht oder ein Kennzeichen zum Ungültigmachen der Daten wird gesetzt und die Daten werden nicht zum Flash-Speicher übertragen.
  • Nebenbei wird ein anderes Beispiel in der Hauptroutine in 51 gegeben. In dem Beispiel in 51 wird eine Zugriffsanforderung vom Zentralrechner in Software empfangen. Es ist ebenfalls möglich, erzwungenermaßen den Übergang zur Zugriffsroutine zu machen in Antwort auf eine Hardware-Unterbrechung. In diesem Fall wird die Hauptroutine vereinfacht, wie in 54 gezeigt, und der Übergangsschritt zur Zugriffsroutine wird nicht durch Software ausgeführt. Das Verfahren kann schnell auf eine Zugriffsanforderung vom Zentralrechner antworten. Software wird ein wenig kompliziert zur Durchführung einer normalen Verarbeitung, wenn der Übergang zur Zugriffsroutine gemacht wird in Antwort auf eine Unterbrechung und wenn die Ablaufsteuerung zur Hauptroutine zurückgegeben wird, nachdem eine Unterbrechungsbehandlung endet, aber falls der Unterbrechungszustand im Detail aufgezeichnet wird, kann eine normale Rückkehr durchgeführt werden.
  • Zusätzlich zeigt 55 eine Hauptroutine, die einen Rücksetz- und Stromabschalt-Prozess enthält. Der Prozess wird wichtig, insbesondere wenn die Übersetzungstabelle in einem flüchtigen Speicher gespeichert ist. Falls Daten in der Übersetzungstabelle verloren gehen, bedeutet dies, dass die gesamten Dateidaten verlo ren gegangen sind, deshalb müssen die Daten in der Übersetzungstabelle gesichert werden in einem nicht-flüchtigen Speicher beim Rücksetzen oder Stromabschalten. Ein schreibbarer nicht-flüchtiger Speicher, der lediglich zum Sichern der Übersetzungstabelle verwendet wird, kann bereitgestellt werden. Falls ein Teil des Flash-Speichers zum Speichern der Daten für diesen Zweck verwendet wird, kann die Zahl der Teile vermindert werden.
  • Eine Routine, die in 56 gezeigt ist, kann verwendet werden, um den Sicherungsprozess zu vermeiden. In der Routine, wenn die Daten vom Schreib-Puffer in den Flash-Speicher zum Speichern übertragen werden und die Steuervorrichtung auf den Zentralrechner wartet, dass er einen Befehl ausgibt, wird der Sicherungsprozess ausgeführt. Das beseitigt den Bedarf, eine besondere Verarbeitung durchzuführen beim Rücksetzen oder Stromabschalten; deshalb muss der Benutzer nicht warten. Es muss jedoch Sorge getragen werden, dass nicht zurückgesetzt wird oder der Strom abgeschaltet wird während einer Schreib- oder Sicherungsverarbeitung.
  • Da die gesicherte Übersetzungstabelle häufig neu geschrieben wird, muss, falls sie in einem nicht-flüchtigen Speicher, dessen Schreibzähler beschränkt ist, gesichert wird, die Lebensdauer des nicht-flüchtigen Speichers überprüft werden. Falls ein Teil des Flash-Speichers verwendet wird als Sicherungsbereich der Übersetzungstabelle, wie oben beschrieben, sollte der Sicherungsbereich bewegt werden ohne dabei lediglich einen Platz anzugeben. Dieses Verfahren kann leicht ausgeführt werden durch Aufzeichnen eines Codes, der einen Sicherungsbereich in dem Teil des Speichers angibt, der als der Sicherungsbereich verwendet wird. Wenn die Übersetzungstabelle in einem flüchtigen Speicher aufgrund einer Stromabschaltung verloren geht, kann der Sicherungsbereichs-Code wiedergefunden werden für alle Speicherbereiche des Flash-Speichers, um die Stelle des Sicherungsbereichs zu bestimmen. Als ein alternatives Verfahren, wenn lediglich die physikalische Stelle des endgültigen Speicherbereichs in einen Teil eines nicht flüchtigen Speichers geschrieben wird, wenn der Strom abgeschaltet wird, kann Zeit gespart werden.
  • Als Nächstes wird eine Ausführungsform zum Verhindern der Erniedrigung der Zugriffsleistung aufgrund der Verschlechterung des Flash-Speichers besprochen unter Bezugnahme auf 57, die Mittel zum Feststellen der Verschlechterung des Flash-Speichers zeigt. In 57 bezeichnet das Kennzeichen 2101 einen Steuerschaltkreis eines Flash-Speichers, das Bezugszeichen 2102 einen Schreibzeit-Messschaltkreis und das Bezugszeichen 2103 eine Informationstabelle für den Verschlechterungsgrad (Verschlechterungsgrad-Speichermittel), welche in der Übersetzungstabelle bereitgestellt wird und die jedem Löschblock des Flash-Speichers entspricht. Andere Bezugszeichen bezeichnen dieselben Elemente wie oben beschrieben. Wenn in den Flash-Speicher 2001 geschrieben wird, startet die Steuervorrichtung 2004 (Verschlechterungsgrad-Diagnosemittel) den Schreib-Steuerschaltkreis 2101 und den Schreibzeit-Messschaltkreis 2102 zum Aufnehmen der Zeit, die zum Scheiben verstreicht. Die Steuervorrichtung 2004 bestimmt, wie viel des Flash-Speichers verschlechtert ist in Antwort auf die Zeit, und schreibt den Verschlechterungsgrad in die Informationstabelle für den Verschlechterungsgrad in der Übersetzungstabelle. Für den Verschlechterungsgrad wird z. B. die Schreibzeit in acht Niveaus eingeteilt. Niveau 1 wird im Bereich von 10–100 μs gesetzt und Niveau 2 wird im Bereich von 100–1000 μs gesetzt, z. B. Falls das Niveau 8 gesetzt ist, nämlich wenn die erlaubte Schreibzeit überschritten ist, beim Eintritt in den nichtbenutzbaren Zustand, kann die Information ebenso als eine Aufzeichnung von defekten Sektoren dienen.
  • Die Steuervorrichtung 2004 verwendet den Verschlechterungsgrad, wenn die physikalische Adresse bestimmt ist, um Daten zu speichern. D. h., ein Datenschreiben in Blöcken, deren Verschlechterung als groß beurteilt wird, wird so weit wie möglich vermieden, womit verhindert wird, dass sich die Leistung aufgrund einer Verschlechterung verringert. Ein Fluss-Diagramm, welches die Steuerfolge zeigt, wird unter Bezugnahme auf 58 beschrieben. 58 ist ein Fluss-Diagramm des Messens der Schreibzeit, um den Verschlechterungsgrad in einer Flash-Speicher-Schreiboperation zu diagnostizieren. Die Diagnose wird auf der Grundlage der Tatsache durchgeführt, dass der Flash-Speicher ein Merkmal aufweist, das die Zeit, die zum Schreiben erforderlich ist, sich verlängert, wenn die Verschlechterung fortschreitet. Die Flash-Speicher-Schreibroutine in 58 zeigt ein Schreiben in einen gelöschten Block. Wenn der Zentralrechner einen Schreibzugriff durchführt und Schreibdaten im Schreib-Puffer gespeichert werden, wird die Routine gestartet. Als erstes wird ein Block, der den niedrigsten Verschlechterungsgrad aufweist, nachgeschlagen in der Informationstabelle für den Verschlechterungsgrad im Schritt 9a. Falls alle Blöcke denselben Verschlechterungsgrad aufweisen, wird jeder gewünschte Block ausgewählt. Als Ergebnis werden sich alle Blöcke gleichmäßig verschlechtern. Wenn ein Schreibblock gefunden wird, wird der Schreibzeit-Messschaltkreis für jede Schreibeinheit gestartet, um ein Messen der Schreibzeit zu starten, und zur selben Zeit wird ein tatsächliches Speicherschreiben im Schritt 9b gestartet. Ein Warten wird durchgeführt, bis das Speicherschreiben beendet ist im Schritt 9c. Nach Beendigung des Schreibens wird die für das Schreiben erforderliche Zeit vom Schreibzeit-Messschaltkreis gelesen und der Verschlechterungsgrad wird diagnostiziert im Schritt 9d. Falls das Diagnoseergebnis des Verschlechterungsgrads das schlechteste ist unter den Schreibeinheiten, die soweit in den einzelnen Block geschrieben wurden, wird das Ergebnis in der Informationstabelle für den Verschlechterungsgrad im Schritt 9e gespeichert. In dem Flash-Speicher, in welchem eine Vielzahl von Schreiboperationen einen Löschblock bilden, wird ein Stück der Verschlechterungsgrad-Information bereitgestellt für einen Löschblock. Der Verschlechterungsgrad wird diagnostiziert in jeder Schreibeinheit und der schlechteste Wert in dem einzelnen Block wird als Verschlechterungsgrad des Blocks beurteilt. Der Verschlechterungsgrad wird als in jedem Bit unterschiedlich angesehen und selbst wenn ein Bit sich verschlechtert, verschlechtert sich die Zuverlässigkeit des gesamten Bereichs in dem Block. Zur Vereinfachung des Steuerprogramms kann jedoch lediglich die Zeit zu einem bestimmten Zeitpunkt gemessen werden, um den gesamten Verschlechterungsgrad zu bestimmen.
  • Wenn alle gewünschten Daten im Schritt 9f geschrieben sind, wird die Schreibroutine beendet. Falls Daten zur Verarbeitung übrig bleiben, kehrt die Ablaufsteuerung zu Schritt 9b zurück.
  • Auf diese Weise kann die Verschlechterung des Flash-Speichers auch gemittelt werden über den gesamten Flash-Speicherbereich. Obwohl die Schreibzeit gemessen wird, um den Verschlechterungsgrad in dieser Ausführungsform zu evaluieren, kann die Löschzeit gemessen werden, um den Verschlechterungsgrad zu evaluieren.
  • Die Zeit wird gemessen durch den Schaltkreis, aber falls sie durch die Software der Steuervorrichtung gemessen wird, kann Hardware vermindert werden.
  • Als Auswirkung wird ein langsames Schreiben des Flash-Speichers nicht zu einer Verlangsamung der Speicherleistung führen. Der Flash-Speicher erreicht DRAM in der Lesezugriffszeit, aber er hat eine Schreibzugriffszeit, die 10 mal so lang ist wie das DRAM. Darüber hinaus erfordert der Flash-Speicher eine Löschoperation und falls Daten einfach in den Flash-Speicher geschrieben werden, wird die Speicherleistung erniedrigt. Selbst wenn ein einfacher Schreib-Puffer bereitgestellt wird, um das Problem zu lösen, wenn der Zentralrechner zu diesem Zeitpunkt auf das Flash-Speicher-System zugreift, muss der Zentralrechner in einen Wartezustand versetzt werden, womit die Leistung vermindert wird. Gemäß der Erfindung lässt das Flash-Speicher-System den Zentralrechner nicht warten und kann auf eine Zugriffsanforderung antworten vom Zentralrechner solange der Schreib-Puffer nicht überläuft. Eine Datenübertragung kann ausgeführt werden vom Schreib-Puffer zum Flash-Speicher, wenn immer es geeignet erscheint zu verhindern, dass der Schreib-Puffer überläuft.
  • Das Flash-Speicher-System weist ein Verarbeitungsmittel auf, um Maßnahmen zu ergreifen, wenn der Strom abgeschaltet wird und die Wartezeit des Benutzers des Flash-Speicher-Systems kann gemäß der Erfindung so weit wie möglich vermindert werden. Eine Erhöhung in der Löschzeit oder Schreibzeit aufgrund einer Verschlechterung, welches ein Merkmal des Flash-Speichers darstellt, wird berücksichtigt und eine Erhöhung in der Wartezeit für den Benutzer aufgrund der Verschlechterung des Flash-Speichers wird unterdrückt.
  • Ausführungsform 3:
  • Eine dritte Ausführungsform wird beschrieben unter Bezugnahme auf Block-Diagramme und Fluss-Diagramme. Die Ausführungsform ist durch die Tatsache charakterisiert, dass wenn ein Schreibfehler auftritt, in einer Halbleiterplatte, welche aus Flash-Speicher-Chips besteht, Daten in einen Ersatzschreibbereich geschrieben werden, um die Plattenlebensdauer auszudehnen. Weiterhin werden ein Verfahren zur Abhilfe, wenn der Ersatzschreibbereich ausgeht und ein Verfahren zum Informieren des Benutzers über einen Fehler besprochen.
  • In der folgenden Beschreibung können die Kapazitäten der Flash-Speicher-Vorrichtungen, der Halbleiterplatten, Speichertabellen etc. auf jede gewünschte Größe eingestellt werden. Geeignete Werte werden als die Kapazitäten verwendet, aber die Erfindung wird davon nicht betroffen, selbst wenn die Werte verändert werden. Ebenso wird ein Zuweisungsverfahren des Löschspeichers, Speichertabellen etc. zum Adressraum nicht eindeutig bestimmt und sie können jeder ge wünschte Adresse zugewiesen werden; die Erfindung wird nicht berührt vom Verfahren der Zuweisung zum Adressraum.
  • 61 zeigt ein Block-Diagramm der dritten Ausführungsform der Erfindung, worin das Bezugszeichen 3102 eine Halbleiter-Platteneinheit ist, die verbunden ist mit einem E/A-Bus 3102 von einem Zentralrechner-System 3101 zur Übertragung von Information zum und vom Zentralrechner-System 3101. Die Halbleiter-Platteneinheit 3102 umfasst ein Fehler-Informationsregister 3105, einen Schnittstellen-Schaltkreis 3107, einen Puffer-Speicher 3115, einen Halbleiterplatten-Steuerschaltkreis 3111, eine Speicherblock-Verwaltungstabelle 3112 und einen Halbleiterspeicher 3106, die miteinander verbunden sind über einen internen Bus a 3116, einen internen Bus b 3117, einen Adress-Bus 3113, einen Daten-Bus 3114 und ein Steuersignal 3110. Weiterhin umfasst der Halbleiterspeicher 3106 einen Daten-Speicherabschnitt 3108, der Dateidaten speichert und einen Ersatzspeicherabschnitt 3109, der verwendet wird als Ersatzspeicher.
  • Der Puffer-Speicher 3115 ist ein Speicher, der Daten zeitweise speichert, welche geschrieben werden in oder gelesen werden von dem Halbleiterspeicher 3106 und es verwendet SRAM oder DRAM, von denen gelesen und in die leicht und mit hoher Geschwindigkeit geschrieben werden kann. Der Halbleiterspeicher 3106 besteht aus Flash-Speicher-(nicht-flüchtige Speicher)-Chips; der Daten-Speicherabschnitt 3108 und der Ersatzspeicherabschnitt 3109 werden bereitgestellt mit 16 Flash-Speicher-Chips, von denen jeder aus 2M Bytes (1M Byte = 220 Bytes = 1 048 576 Bytes). Deshalb beträgt die Speicherkapazität des Halbleiterspeichers 3106 32M Byte. 2M Byte Speicherplatz der 32 M Bytes wird dem Ersatzspeicherabschnitt 3109 zu gewiesen; auf diese Weise beträgt die Speicherkapazität der Halbleiter-Platteneinheit 3102 30 M Bytes. Die Verwaltungstabelle des Speicherblocks 3112 verwendet einen 512K-Byte Flash-Speicher (1K Byte = 210 Bytes = 1024 Bytes) zum Speichern von Adress-Information des Halbleiterspeichers 3106, entsprechend den Platten-Blockzahlen und der jedem Block entspre chenden Verwendung eines Speicherbereichs. Daten werden in den Halbleiterspeicher 3106 geschrieben und die Verwaltungstabelle des Speicherblocks 3112 wird in 512 Byte Blockeinheiten geschrieben, vor bestimmte Schreibeinheiten. Die Kapazitäten der Flash-Speicher-Vorrichtungen, einer Halbleiterplatte, einer Speicher-Block-Verwaltungstabelle etc. können auf jeden gewünschten Wert gesetzt werden wie oben beschrieben. Sie können auch aus diskreten Speicher-Chips gebildet werden.
  • Das Fehler-Informationsregister 3105 ist ein Mittel, um vorbestimmte Fehlerinformation zu behalten; um das Zentralrechner-System 3101 von einem Fehler zu informieren, der in der Halbleiter-Platteneinheit 3102 auftritt, wird Information über den Fehler in das Fehler-Informationsregister 3105 geschrieben. Der Schnittstellen-Schaltkreis 3107 empfängt einen Befehl vom E/A-Bus 3104 oder gibt ein Unterbrechungssignal 3103 an den E/A-Bus 3104.
  • Der Halbleiterplatten-Steuerschaltkreis 3111 steuert die gesamte Halbleiter-Platteneinheit 3102 unter Verwendung des internen Busses a 3116, des internen Busses b 3117, des Adressbusses 3113, des Daten-Busses 3114 und eines Steuersignals 3110. Halbleiterplatten-Steuerschaltkreis 3111 steuert ein Lesen/Schreiben des Puffer-Speichers 3115, des Fehler-Informationsregisters 3105, der Speicherblock-Verwaltungstabelle 3112 und des Halbleiterspeichers 3106 unter Verwendung des Adressbusses 3113, des Daten-Busses 3114 und eines Steuersignals 3110. Der Halbleiterplatten-Steuerschaltkreis 3111 steuert auch eine Löschoperation in der Speicherblock-Verwaltungstabelle 3112 und im Halbleiterspeicher 3106, die aus Flash-Speicher-Chips bestehen, welche eine Löschoperation erfordern.
  • 62 zeigt ein Beispiel der Entsprechung zwischen einer Speicheradresskarte des Halbleiterspeichers 3106 und der Speicherblock-Verwaltungstabelle 3112.
  • Die Speicherblock-Verwaltungstabelle 3112 ist ein Speicher-Verwaltungsmittel zum Behalten von Information, ob oder nicht jeder Block des Halbleiterspeichers verwendet wird in einer Block-Verwendungstabelle, und wenn der Steuerschaltkreis einen Fehler detektiert, zum Zuweisen eines nicht verwendeten Blocks als Ersatzblock an Stelle des Blocks des Halbleiterspeichers, in dem ein Fehler auftritt, und Behalten der Entsprechung zwischen dem zugewiesenen Ersatzblock und dem Block, in dem ein Fehler auftritt, in einer Block-Registriertabelle. Wie gezeigt, umfasst in der Speicheradresskarte 3201 der 30 M Byte-Daten-Speicherabschnitt 3108 einen Datenspeicherbereich 3202 (30 M Byte Adressraum von Adresse 0000000H (H bezeichnet eine hexadezimale Schreibweise) bis zur Adresse 1DFFFFFH) und der 2 M Byte Ersatzspeicherabschnitt 3109 umfasst einen Ersatz-Speicher-Bereich 3203 (2 M Byte Adressraum von Adressen 1E00000H bis 1FFFFFFH). Da Daten in 512-Byte-Einheiten in der Ausführungsform geschrieben werden, umfasst ein Block 200H Adressen. Z. B. reicht Block 0 von Adresse 0000000H bis zur Adresse 00001FFH. Entsprechend reicht Block 1 von Adresse 0000200H bis zur Adresse 00003FFH, Block 2 reicht von Adresse 0000400H bis Adresse 00005FFH, Block 3 reicht von Adresse 0000600H bis Adresse 00007FFH, ... , wie gezeigt in der Speicheradresskarte 3201. Die Adresse 1E00000H und weitere werden den Ersatzspeicherblöcken auf dieselbe Weise zugewiesen. Wie oben beschrieben, ist die Zuweisung von Adressen nicht eindeutig und es können Adressen in jeder gewünschten Weise zugewiesen werden.
  • Die Speicherblock-Verwaltungstabelle umfasst eine Block-Registriertabelle 3205 zum Registrieren von Halbleiter-Speicheradressen, die den Blöcken entsprechen, eine Speicherblock-Verwendungstabelle 3206 zum Registrieren von Information, ob oder nicht jeder Block des Daten-Speicherabschnitts 3108 verwendet wird, und einen Initialisierungs-Informationsbereich 3207 zum Registrieren von Initialisierungsinformation des gesamten Systems.
  • Die Formate der Block-Registriertabelle 3205 und der Speicherblock-Verwendungstabelle 3206 sind in 62 gezeigt. Die Block-Registriertabelle 3205, die Adressen auflistet des Halbleiterspeichers 3106 entsprechend den Blöcken, weist eine Kapazität von vier Bytes (32 Bits) pro Eintrag in einen Block auf. Die Block-Registriertabelle 3205 beginnt bei Adresse 2000000H und stellt alle 4H-Adressen einen Block dar. Block 0 wird angegeben durch die Adress-Information, die in dem 4-Byte-Eingang 3216 gespeichert ist, beginnend mit der Adresse 2000000H. Ebenso wird Block 1 angegeben durch die Adress-Information, die in den 4-Byte-Eingang 3217 gespeichert ist, beginnend mit der Adresse 2000004H und Block 2 wird angegeben durch die Adress-Information, die gespeichert ist in dem 4-Byte-Eingang 3218, beginnend mit der Adresse 2000008H.
  • Die Block-Verwendungstabelle 3206 speichert Information, ob oder nicht jeder Block des Daten-Speicherabschnitts 3106 und des Ersatzspeicherabschnitt 3109 verwendet werden. Der Gebrauchszustand eines Blocks wird dargestellt durch 1-Bit-Information; in der Ausführungsform wird ein nicht benutzter Block dargestellt als 0 und ein benutzter Block als 1. Ein leerer Block in einem Ersatzspeicherabschnitt 3109 kann aufgefunden werden durch Durchsuchen der Block-Verwendungstabelle nach einem "0" Bit, welches einen nicht verwendeten Block angibt. Die Block-Verwendungstabelle, 3206 beginnt bei der Adresse 2020000H und stellt den Gebrauchszustand von 8 Blöcken dar pro 1-Byte-Verwendungsinformationseintrag. Das am wenigsten signifikante Bit eines Bytes stellt den Block dar, der die kleinste Blockzahl aufweist. D. h., dass die 1-Byte-Verwendungsinformation 3214 bei der Adresse 2020000H den Gebrauchszustand von 8 Blöcken darstellt von Blöcken 0 bis 7. Zum Beispiel, falls die Bitfolge von einem Byte 11011111b (b bezeichnet eine binäre Schreibweise) ist, gibt es an, dass lediglich Block 5 nicht verwendet wird. Die Region von Adressen 2020000H bis 2021DFFH stellt den Verwendungszustand des Daten-Speicherabschnitts 3108 dar und die Region von den Adressen 2021E00H bis 2021FFFH stellt den Verwendungszustand des Ersatz-Speicherabschnitts 3109 dar.
  • Weiterhin zeigt 77 ein besonderes Beispiel von Information, die im Initialisierungs-Informationsbereich 3207 gespeichert ist. In 77 stellt der Initialisierungs-Informationsbereich 3207 einen Bereich dar, der Initialisierungsinformation speichert, wie z. B. Start-Adress-Information 3231 des Datenspeicherbereichs 3202, End-Adress-Information 3232 des Datenspeicherbereichs 3202, Datenbereichskapazität 3233, Datenkapazität pro Block 3234, die Anzahl von verfügbaren Blöcken 3235, Start-Adress-Information 3236 des Ersatzspeicherbereichs 3203, End-Adress-Information 3237 des Ersatzspeicherbereichs 3203 und einen reservierten Informationsbereich 3238. Notwendige Information wird in den Initialisierungs-Informationsbereich 3207 geschrieben, wenn das gesamte Plattensystem initialisiert wird.
  • Als Nächstes wird die Initialisierungsoperation des gesamten Plattensystems beschrieben unter Bezugnahme auf 67. Die Initialisierungsoperation, die erforderlich ist, um die Platteneinheit zu verwenden, wird durchgeführt durch das Zentralrechner-System, welches einen Formatbefehl etc. ausführt. In der Initialisierungsoperation der Ausführungsform werden zuerst die Kapazitäten der Datenspeicherbereiche 3202 und des Ersatzspeicherbereichs 3203 bestimmt im Schritt 3701. Der Benutzer kann die Kapazitäten durch eine Tastatur 3122 (gezeigt in 73) angeben oder durch ein Speichersystem-Eingabemittel, um die Kapazitäten des Ersatzspeicherbereich 3203 einzustellen, wie er oder sie es wünscht. Der Benutzer gibt Information an wie z. B. Datenspeicher-Bereichskapazität und Speicherkapazität pro Block. Brücken-Einstellstifte, etc., können verwendet werden zum Einstellen der Hardware in einem Halbleiterplatten-Steuerschaltkreis 3111. Die Kapazitäten können berechnet werden aus der Block-Verwendungstabelle oder sie können bestimmt werden durch Ausführen einer Schreib-/Leseprüfung in dem Datenspeicherbereich 3202 und alternativ im Ersatzspeicherbereich 3203.
  • Die spezifizierte Initialisierungsinformation wird in den Initialisierungs-Informationsbereich 3207 im Schritt 3702 geschrieben. Schritt 3710 bis 3716 in 78 zeigen einen Schreibfluss in den Initialisierungs-Informationsbereich 3207. Das Zentralrechner-System befiehlt durch den Schnittstellen-Schaltkreis 3107 der Halbleiterplatten-Steuereinheit 3111 die angegebene Initialisierungsoperation in die Eingänge des Initialisierungs-Informationsbereich 3207 zu schreiben, die angegeben werden durch vorbestimmte Adressen. Die Initialisierungsinformation, welche in den Initialisierungs-Informationsbereich 3207 geschrieben wurde, kann die Adressräume des Daten-Speicherabschnitts 3108 und des Ersatz-Speicherabschnitts 3109 bestimmen.
  • Als Nächstes wird die Block-Registriertabelle 3205 und die Block-Verwendungstabelle 3206 initialisiert im Schritt 3703. Zuerst wird Adress-Information, die jedem Platten-Block entspricht, in die Block-Registriertabelle 3205 geschrieben. Z. B. wird, um Block 0 zu initialisieren, Adress-Infonnation 0000000H entsprechend dem Block 0 des Datenspeicherbereichs 3202 geschrieben in den 4-Byte-Eingang, beginnend mit Adresse 2000000H der Block-Registriertabelle 3205 entsprechend dem Block 0. Ebenso wird, um Block 1 zu initialisieren, Adress-Information 0000200H entsprechend dem Block 1 des Datenspeicherbereichs 3202 in den 4-Byte-Eingang geschrieben, beginnend mit der Adresse 2000004H der Block-Registriertabelle 3205. Die Operation wird wiederholt für alle Blöcke des Datenspeicherbereichs 3202 und des Ersatzspeicherbereichs 3203 im Schritt 3704. Weiterhin, falls nötig, wird das Fehler-Informationsregister 3105 und der Puffer-Speicher 3115 initialisiert. Die Initialisierung der gesamten Platte ist jetzt abgeschlossen. Die Initialisierungsoperation muss lediglich ausgeführt werden, wenn die Halbleiter-Platteneinheit 3102 zum ersten Mal verwendet wird oder wenn ein Plattenformatbefehl ausgeführt wird.
  • Wie die Block-Registriertabelle 3205 zu bestimmen ist und die Block-Verwendungstabelle 3206 für die Kapazitäten des Datenspeicherbereichs 3202 und des Ersatzspeicherbereichs 3203 ist ebenfalls beschrieben. Der Datenspeicherbereich 3202 und der Ersatzspeicherbereich 3203 sind 32M Bytes insgesamt und die Mindesteinheit, die in der Block-Registriertabelle verwaltet wird, ist ein Block, 512 Bytes mithin 32 M Bytes/512 M Bytes = 65536, nämlich 64 K Bytes (1 K Byte sind 1024 Bytes) sind erforderlich. Deshalb können mindestens 64K Bytes im Bereich der Adressen 0000H bis FFFFH (in der Ausführungsform Adressen 2000000H bis 200FFFFH) belegt werden für die Block-Registriertabelle 3205. Da 128K Bytes von Adressen 2000000H bis 200FFFFH in der Ausführungsform belegt sind, kann Adress-Information des Adressraums für ein Maximum von 64 M Bytes registriert werden sowohl für den Datenspeicherbereich 3202 als auch den Ersatzspeicherbereich 3203. In der Block-Verwendungstabelle 3206 ist ein Bit pro Block erforderlich und 8 Blöcke können pro Byte verwaltet werden. Deshalb beträgt die gesamte Anzahl von Blöcken 65536/8 = 8192, nämlich mindestens ein 8 K Byteraum für die Block-Verwendungstabelle 3206 belegt werden. Da 16 K Bytes von den Adressen 2020000H bis 2021 FFFH in der Ausführungsform belegt sind, kann die Verwendung von einem Maximum von 131072 Blöcken, nämlich 67108864 Bytes (64K Bytes) verwaltet werden. Ein Halbleiterspeicher für jede gewünschte Größe kann gesteuert werden durch Belegen eines geeigneten Adressraums für die Block-Registriertabelle 3205 und die Block-Verwendungstabelle 3206.
  • Als Nächstes zeigt 73 ein Block-Diagramm des Zentralrechner-Systems 3101. In dem Zentralrechner-System 3101 ist die CPU 3120 verbunden mit einem Hauptspeicher 3121 über einen Zentralrechner-Bus 3125 und weiter verbunden über den E/A-Bus 3104 mit dem ROM 3126, der Tastatur 3122, der Kathodenstrahlröhre (CRT) 3123 und einem Lautsprecher 3124. Die Tastatur 3122 ist ein Eingabemittel zum Annehmen von Daten und Initialisierungsinformation wird vom Benutzer eingegeben. Die Kathodenstrahlröhre (CRT) 3123, eines der Ausgabemittel zeigt Information an wie z. B. das Operationsergebnis der CPU 3120 und Fehlerinformation. Der Lautsprecher 3124, eines der Ausgabemittel, erzeugt eine Warnung oder einen Alarmton, etc., wenn ein Fehler auftritt. Das ROM 3126 oder der Hauptspeicher 3121 speichert Programme zum vorbestimmten Verarbeiten wie z. B. Lesen/Schreiben und Unterbrechungsbehandlung.
  • Als Nächstes werden die Schreiboperationen und Leseoperationen der Halbleiter-Platteneinheit 3102 gemäß der Ausführungsform besprochen unter Bezugnahme auf 63 bis 65.
  • Zuerst sei angenommen, dass ein Dateidaten-Lesebefehl empfangen wird über den E/A-Bus 3104 vom Zentralrechner-System 3101. In diesem Fall bearbeitet die Halbleiterplatten-Steuereinheit 3111 zuerst den Befehl. Die Befehlsoperation variiert in Abhängigkeit davon wie der Befehl gegeben wird. Zum Beispiel, wenn Belegungsinformation von Lesedateidaten gegeben werden mit der Sektornummer und der Spurnummer, wie bei einer Magnetplatte etc., muss die Belegungsinformation umgewandelt werden in eine physikalische Adresse des Datenspeicherbereichs 3108. Der Einfachheit halber, in der Ausführungsform, wird Datei-Belegungsinformation vom E/A-Bus 3104 angegeben mit einer Blockzahl des Datenspeicherbereichs 3108. Die Blockzahl wird umgewandelt in die hochwertigen Bits der physikalischen Adresse.
  • 63 zeigt eine Lese-Ablauffolge des Halbleiterplatten-Steuerschaltkreises 3111. Wie in 63 gezeigt, liest der Halbleiterplatten-Steuerschaltkreis 3111 Adress-Information vom Halbleiterspeicher 3106, entsprechend der Blockzahl, die vom E/A-Bus 3104 empfangen wird aus der Block-Registriertabelle 3205 der Speicherblock-Verwaltungstabelle 3112 im Schritt 3301. Zum Beispiel, um Block 0 zu lesen, 4 Byte-Adress-Information 3216 beginnend mit Adresse 2000000H der Block-Registriertabelle 3205, um Block 1 zu lesen, 4 Byte-Adress-Information 3217 beginnend mit Adresse 2000004H der Block-Registriertabelle 3205. Als Nächstes, auf der Grundlage der Adress-Information, welche im Schritt 3101 gelesen wird, wird 512-Byte-Information von der Region gelesen, die der Blockzahl des Daten-Speicherabschnitt 3108 entspricht, z. B. wenn Block 0 gelesen wird, Adresse 0000000H angegeben durch die Adress-Information 3216 im Schritt 3302. Die Daten werden zeitweise in den Puffer-Speicher im Schritt 3303 übertragen. Dann werden die Daten übertragen über den Schnittstellen-Schaltkreis 3107 zum E/A-Anschluss 3104 im Schritt 3304.
  • Hier wird für den Block, der defekt beim vorigen Schreiben wurde, wie die Region 3208 des Blocks 2 beginnend mit Adresse 0000400H des Datenspeicherbereichs 3202, gezeigt in 62, Adress-Information des Ersatzspeicherbereichs 3109 registriert in der Block-Registriertabelle 3205. Das heißt, die Adress-Information der 512-Byte-Region 3211, beginnend mit der Adresse 1E00000H des Ersatzspeicherbereichs 3203, wird registriert. Deshalb, um Block 2 zu lesen, werden Daten von der Block 2 Ersatzregion in dem Ersatzspeicherabschnitt 3109 gelesen, nämlich die 512-Byte-Region 3211, beginnend mit Adresse 1E00000H beim Schritt 3302 und wird übertragen über den Schnittstellen-Schaltkreis 3107 zum E/A-Bus 3104. Das Registrierverfahren des Ersatzspeicherbereichs wird in der Schreiboperation unten beschrieben.
  • Der Halbleiterplatten-Steuerschaltkreis 3111 steuert ein Datenlesen von der Speicherblock-Verwaltungstabelle 3112, dem Daten-Speicherabschnitt 3108 und dem Ersatzspeicherabschnitt 3109. Der Halbleiterplatten-Steuerschaltkreis 3111 steuert auch eine Übertragung der Lesedaten zum E/A-Bus 3104 durch Steuern des internen Busses a 3116, des internen Busses b 3117, des Adressbusses 3113, des Daten-Busses 3114, des Steuersignals 3110 und des Schnittstellen-Schaltkreises 3107. Somit wird, um Dateidaten zu lesen, die Adress-Information des Halbleiterspeichers entsprechend dem Zielblock gelesen und Daten in dem Datenspeicherbereich 3108 oder dem Ersatzspeicherbereich 3109 werden in Antwort auf die Adress-Information gelesen.
  • Als Nächstes wird angenommen, dass ein Dateidaten-Schreibbefehl über den E/A-Bus 3104 empfangen wird vom Zentralrechner-System 3101. 64 zeigt eine Schreibablauffolge des Halbleiterplatten-Steuerschaltkreises 3111. Zuerst, wenn ein Schreibbefehl vom Schnittstellen-Schaltkreis 3107 im Schritt 3400 angenommen wird, überträgt der Halbleiterplatten-Steuerschaltkreises 3111 Dateidaten, die vom E/A-Bus 3104 gegeben werden zum Puffer-Speicher 3115 im Schritt 3401. Da das Schreiben in den Flash-Speicher, Zeit benötigt im Vergleich zum Lesen vom Flash-Speicher, wird der Schritt ausgeführt, um die Wartezeit des Zentralrechner-Systems zu vermindern. Die Mindestkapazität des Puffer-Speichers 3115 sollte die Schreibeinheitskapazität in den Flash-Speicher sein oder größer. Als Nächstes wird die Adress-Information des Halbleiterspeichers 3106 entsprechend der Blockzahl für das Schreiben gelesen von der Block-Registriertabelle 3205 und der Block-Verwendungstabelle 3112 im Schritt 3402. Als Nächstes werden die Dateidaten im Puffer-Speicher 3115 in den Halbleiterspeicher 3106 geschrieben im Schritt 3403 auf der Grundlage der Adress-Information, welche im Schritt 3402 gelesen wurde. Um z. B. in der Ausführungsform in Block 3 zu schreiben, wird die 4-Byte-Adressinformation 3129, beginnend mit der Adresse 200000AH der Block-Registriertabelle 3205 ausgelesen. Die Daten werden in den 512-Byte-Block 3212, beginnend mit Adresse 1E00200H (Ersatzspeicherabschnitt 3109), angegeben durch die Adress-Information. Als Nächstes wird eine Prüfung durchgeführt im Schritt 3404, um zu sehen, ob das Schreiben in den Datenspeicherbereich 3108 oder den Ersatzspeicherbereich 3109 normal durchgeführt wurde. Ein Schreibfehler tritt im Flash-Speicher dann auf, wenn eine Schreiboperation häufig nur in besondere Blöcke ausgeführt wird und die Schwelle des Flash-Speicher-Schreibzählers überschritten ist. Falls der Flash-Speicher eine Überprüfungsfunktion als ein Befehl besitzt, kann die Prüfung im Schritt 3404 leicht durchgeführt werden unter Verwendung des Befehls; andernfalls durch Lesen von Daten von der gegenwärtigen Schreibadresse und Vergleichen der Daten mit dem Inhalt des Puffer-Speichers 3115. Falls das Schreiben im Schritt 3404 normal ist, wird die Verarbeitung des Dateidaten-Schreibbefehls, der über den E/A-Bus 3104 vom Zentralrechner-System empfangen wurde, beendet (Schritt 3410).
  • Andererseits, wenn das Schreiben im Schritt 3404 nicht normal ist, wird die nachfolgende Arbeitsfolge beschrieben. Zum Beispiel, wenn ein Schreiben im Block 3 nicht normal durchgeführt werden kann, wird zuerst die Block-Verwendungstabelle 3206 nach einem nicht verwendeten Block des Ersatzspeicherbereichs 3109 im Schritt 3405 durchsucht; die Region bei Adresse 2021 E00H und später der Block-Verwendungstabelle 3206 wird durchsucht nach einem "0" Bit. In der Ausführungsform ist das sechst-wenigst signifikante Bit der 1-Byte-Information 3214 bei Adresse 2021E00H 0, mithin bestimmt der Halbleiterplatten-Steuerschaltkreis 3111, dass der sechste Block des Ersatzspeicherbereichs 3203, nämlich der 512-Byte-Block, beginnend mit Adresse 1E00A00H ein nicht verwendeter Block ist. Als Nächstes wird im Schritt 3406 überprüft ob oder nicht ein nicht verwendeter Block gefunden wurde. In der Ausführungsform kommt ein nicht verwendeter Block vor und wird deshalb verwendet als der Ersatzblock 3. Die Adress-Information 1E00A00H, welche den sechsten Block des Ersatz-Speicherabschnitts 3109 angibt, wird in Adresse 200000CH der Block-Registriertabelle 3205 entsprechend dem Block 3 der Halbleiter-Platteneinheit 3102 geschrieben und das Bit 3220 der Block-Verwendungstabelle 3206, welches den Block 3213 bezeichnet wird auf 1 gesetzt im Schritt 3407. Als Nächstes wird eine Blocklöschung durchgeführt für den Block 3213, der im Schritt 3408 als der Ersatzblock verwendet wird und der Inhalt des Puffer-Speichers 3115 wird in den Ersatzblock im Schritt 3409 geschrieben. Falls der Ersatzspeicherabschnitt keinen Ersatzblock im Schritt 3406 enthält, wird ein geeigneter Fehler-Code in das Fehler-Informationsregister 3105 geschrieben, das in 61 gezeigt ist und ein Unterbrechungssignal 3103 wird ausgegeben an den E/A-Bus 3104 im Schritt 3411. Wenn das Unterbrechungssignal 3103 quittiert wird, unterbricht das Zentralrechner-System die gegenwärtig ausgeführte Verarbeitung und liest den Inhalt des Fehler-Informationsregisters 3105. Dann führt das Zentralrechner-System 3101 wiederum eine Schreiboperation in einen anderen Block des Daten-Speicherabschnitts 3108 der Halbleiter-Platteneinheit 3102 durch oder setzt den Benutzer in Kenntnis, dass der Ersatzspeicherabschnitt 3109 der Halbleiter-Platteneinheit 3102 aufgebraucht ist, wie unten beschrieben.
  • Damit kann, selbst wenn es einen defekten Block gibt, die Lebensdauer des gesamten Flash-Speichers ausgedehnt werden durch Verwendung von Ersatzblöcken. Obwohl eine Schreibprüfung lediglich in Schritt 3404 in der Ausführungsform durchgeführt wird, kann geprüft werden, ob oder nicht eine Löschung normal durchgeführt wurde, in dem Schritt, der auf Schritt 3408 folgt. Eine Überprüfung ob oder nicht ein Schreiben normal durchgeführt wurde, kann hinzugefügt werden in dem Schritt, der auf Schritt 3409 folgt. Falls ein Fehler bei der Überprüfung detektiert wird, wird eine Schreibverarbeitung in einen gegebenen Ersatzblock in den Schritten 3405 bis 3410 erneut durchgeführt.
  • Als Nächstes werden der Inhalt des Fehler-Informationsregisters 3105 und die Zentralrechner-Systemverarbeitung besprochen unter Bezugnahme auf 79 und 80. 79 zeigt den Inhalt des Fehler-Informationsregisters 3105. 80 zeigt die Zentralrechner-System-Antwortoperation auf ein Unterbrechungssignal.
  • Wenn ein Schreibfehler auftritt, erzeugt der Halbleiterplatten-Steuerschaltkreis 3111 ein Unterbrechungssignal durch ein Informationsmittel und speichert Information über den Fehler im Fehler-Informationsregister 3105 wie in 79 gezeigt. Als die gespeicherte Fehlerinformation werden ein Bit, welches angibt ob oder nicht ein Fehler auftritt und ein Bit, welches keine leeren Ersatzblöcke angibt, gesetzt, wenn kein nicht-verwendeter Block im Ersatzspeicherbereich 3203 vorkommt, wie oben beschrieben. Wenn kein leerer Datenblock im Datenspeicherbereich 3202 vorkommt, werden ein Bit, welches angibt ob oder nicht ein Fehler auftritt und ein Bit, welches keine leeren Datenblöcke angibt, gesetzt. Für den Block, in welchem der Fehler auftritt, kann Adress-Information, wie z. B. die Blockzahl des Blocks, gesetzt werden im Blockzahl-Registrierfeld des Fehler-Informationsregisters 3105.
  • Das Fehler-Informationsregister kann geteilt werden in ein Artfeld der Fehlerinformation, ein reserviertes Informationsfeld und Blockzahl-Registrierfelder 1 und 2 wie in 81 gezeigt. Wenn ein Fehler auftritt, setzt der Halbleiterplatten-Steuerschaltkreis 3111 Fehlerinformation wie oben beschrieben. Wenn ein Fehler auftritt, führt das Zentralrechner-System eine Verarbeitung durch wie in 80 gezeigt. In 80 führt, wenn es ein Unterbrechungssignal von der Halbleiter-Platteneinheit 3102 im Schritt 3141 empfängt, das Zentralrechner-System 3101 eine Unterbrechungsantwortbehandlung durch. Anstatt ein Unterbrechungssignal zu empfangen, kann das Zentralrechner-System 3101 auch das Fehler-Informationsregister 3105 zyklisch abfragen, um den Registerinhalt zu lesen. Wenn eine Unterbrechung auftritt, wird eine Behandlungsroutine für die Unterbrechung, die im ROM 3126 oder im Hauptspeicher 3121 gespeichert ist, im Schritt 3142 aufgerufen. Der Inhalt des Fehler-Informationsregisters 3105 wird im Schritt 3143 gelesen. Das Bit, das angibt, ob oder nicht ein Fehler auftritt, wird im Schritt 3144 bestimmt. Falls kein Fehler auftritt, wird ein anderer Prozess der Behandlungsroutine für die Unterbrechung ausgeführt und die Unterbrechungsbehandlung wird im Schritt 3149 beendet. Falls das Fehler-Bit gesetzt ist, wird der weitere Inhalt des Fehler-Informationsregisters 3105 im Schritt 3145 gelesen. Eine Fehlermeldung, die dem Fehlerinhalt entspricht, wird aus dem ROM 3126 oder dem Hauptspeicher 3121 im Schritt 3146 gelesen. Die Lese-Fehlermeldung wird zu einer Anzeige eines Anzeigemittels ausgegeben oder einem Alarmton, oder eine Sprachmitteilung, welche das Auftreten eines Fehlers angibt, wird ausgegeben durch Ausgabemittel im Schritt 3147. Andere vorbestimmte Prozesse, welche der Fehlerinformation entsprechen, können ausgeführt werden.
  • 74 zeigt ein Beispiel wie der Benutzer von einem Fehler in Kenntnis zu setzen ist.
  • In 74, wenn ein Fehler auftritt, gibt die CPU 3120 Fehlerinformation aus, welche im Hauptspeicher 3121 o. ä. gespeichert ist, an die CRT 3123. Die Fehlermeldung kann eine Mitteilung sein, wie das Beispiel 3130, welches den Benutzer in Kenntnis setzt, dass die Halbleiterplatte keine leeren Blöcke enthält oder eine andere Mitteilung, wie das Beispiel 3131, welches den Benutzer in Kenntnis setzt, dass ein Schreibfehler aufgetreten ist. Ein Piepton oder eine synthetische Stimme kann verwendet werden als Alarmton. Zusätzlich kann die Halbleiter-Platteneinheit 3102 bereitgestellt werden mit einem oder mehreren LEDs, die eingeschaltet werden in Abhängigkeit auf den Fehlerinhalt.
  • Somit kann der Benutzer in Kenntnis gesetzt werden, dass ein Fehler aufgetreten ist.
  • Als Nächstes zeigt 65 ein Schreiboperations-Fluss-Diagramm, worin ein nicht benutzter Block im Ersatzspeicherabschnitt 3109 nicht gefunden wird im oben beschriebenen Schreibprozess und ein nicht benutzter Block des Daten-Speicherabschnitts 3108 gefunden wird zur Verwendung als Ersatzblock.
  • In 65 wird, wie im Prozess, der in 64 gezeigt ist, wenn ein Schreibfehler auftritt, ein leerer Block des Ersatz-Speicherabschnitts 3109 gefunden im Schritt 3405. Falls kein leerer Block im Schritt 3406 gefunden wird, wird ein leerer Block des Daten-Speicherabschnitts 3109 gefunden und in Schritt 3501 einem Ersatzblock zugewiesen. Die detaillierte Arbeitsweise des Schritts 3501 wird besprochen unter Bezugnahme auf ein Fluss-Diagramm, das in 66 gezeigt ist.
  • Andere Schritte in 65 sind dieselben wie diejenigen in 64 und werden deshalb nicht wieder besprochen.
  • In 66 wird zuerst die Block-Verwendungstabelle 3206 der Speicherblock-Verwaltungstabelle 3204, die in 62 gezeigt ist, durchsucht nach einem nicht verwendeten Block des Daten-Speicherabschnitts 3108 im Schritt 3601. Insbesondere wird die Region bei den Adressen 2020000H bis 2021DFFFH der Block-Verwendungstabelle 3206 durchsucht nach einem auf 0 gesetzten Bit. In der Ausführungsform ist das sechste am wenigsten signifikanten Bit der 1-Byte-Information 3214 bei Adresse 2020000H 0. Wie oben beschrieben bedeutet dies, dass der sechste Block des Datenspeicherbereichs 3202, nämlich der 512-Byte-Block 3210, beginnend bei Adresse 0000A00H, ein nicht verwendeter Block ist. Als Nächstes wird überprüft, ob oder nicht der Daten-Speicherabschnitt 3108 im Schritt 3602 einen nicht verwendeten Block enthält. Da der Block 3210 als ein leerer Block in der Ausführungsform vorkommt, wird das Bit 3220 der Block-Verwendungstabelle 3206 entsprechend dem Block 3210 im Schritt 3603 auf 1 (benutzt) gesetzt. Als Nächstes wird die Adress-Information 3221 des gefundenen leeren Blocks des Datenspeicherbereichs 3202 in den 4-Byte-Eingang geschrieben, beginnend mit der Adresse 200000EH der Block-Registriertabelle 3205 in 62 entsprechend dem Block 3210, in welchen Daten geschrieben werden sollen. In der Ausführungsform wird, um Daten in Block 5 zu schreiben, Adress-Information 0000A00H in Adresse 200000EH der Block-Registriertabelle 3205 geschrieben. Danach wird eine Blocklöschung durchgeführt für den leeren Block des Datenspeicherbereichs 3108 im Schritt 3605 und der Inhalt des Puffer-Speichers 3115 wird im Schritt 3606 in den leeren Block 3210 geschrieben.
  • Nebenbei bemerkt, der Block 3210 des Daten-Speicherabschnitts 3108, der verwendet wird als Ersatzschreibbereich in den oben erwähnten Schritten, ist ein Block, der ursprünglich als Datenbereich verwendet wurde. Deshalb besteht die Möglichkeit, dass das Zentralrechner-System 3101 einen weiteren Schreibbefehl in den Block 3210 des Daten-Speicherabschnitts 3108 ausgibt. In diesem Fall wird Information, wie z. B. die Blockzahl des leeren Blocks des Daten-Speicherabschnitts 3108, der verwendet wird als Ersatzbereich, in das Fehler-Informationsregister 3105 geschrieben im Schritt 3607 und ein Unterbrechungssignal 3103 wird im Schritt 3608 zum Zentralrechner-System 3101 ausgegeben. Wenn es das Unterbrechungssignal quittiert, kann das Zentralrechner-System 3101 die gegenwärtige Verarbeitung unterbrechen, die Blockzahl, welche im Fehler-Informationsregister 3105 enthalten ist, lesen und eine geeignete Verarbeitung durchführen, wie z. B. um die Verwendung des Blocks zu verhindern.
  • Falls der Daten-Speicherabschnitt 3108 keinen leeren Block im Schritt 3602 enthält, wird Fehlerinformation, die angibt, dass keine leeren Blöcke mehr gefunden wurden, in dass Fehler-Informationsregister 3105 im Schritt 3609 geschrieben und ein Unterbrechungssignal 3103 wird ausgegeben zum Zentralrechner-System 3101 in Schritt 3608. Wenn es das Unterbrechungssignal 3103 quittiert, kann das Zentralrechner-System 3101 die gegenwärtig ausgeführte Verarbeitung unterbrechen und eine geeignete Verarbeitung durchführen, wie z. B. den Benutzer darüber in Kenntnis zu setzen, dass die Halbleiter-Platteneinheit 3102 verbraucht ist.
  • Die Rekonfigurationsoperation des Daten-Speicherabschnitts und des Ersatzspeicherabschnitts als Verarbeitungsverfahren in dem Halbleiterplatten-Steuerschaltkreis in der Ausführungsform wird beschrieben unter Bezugnahme auf ein Fluss-Diagramm, welches in 76 gezeigt ist. In der Ausführungsform, wenn ein Schreibfehler auftritt, wird ein leerer Block aufgefunden im Ersatzspeicherabschnitt 3109 und Daten werden geschrieben in den aufgefundenen Block, wie oben beschrieben. Wenn es keine leeren Blöcke des Ersatz-Speicherabschnitts 3109 gibt, können leere Blöcke gefunden werden im Daten-Speicherabschnitt 3108, um die Halbleiter-Platteneinheit 3102 zu rekonfigurieren. Um das zu tun, wird in 76 zuerst in Schritt 3181 Initialisierungsinformation von dem Speicherblock-Verwaltungsmittel 3112 gelesen, die in 62 gezeigt ist und die Block-Verwendungstabelle wird nach "0"-Bits durchsucht für den Daten-Speicherabschnitt 3108, um im Schritt 3182 nicht verwendete Blöcke zu finden, bis das Ende der Tabelle im Schritt 3183 für den Daten-Speicherabschnitt erreicht wird.
  • Im Schritt 3184 wird eine Prüfung durchgeführt, um zu sehen, ob leere Blöcke vorkommen. Falls keine leeren Blöcke vorkommen, wird der Benutzer in Kenntnis gesetzt, dass kein leerer Bereich im Schritt 3088 vorkommt. Falls einer oder mehrere leere Blöcke vorkommen, werden die Blöcke neu zugewiesen zum Ersatzspeicherabschnitt 3109 und neue Initialisierungsinformation wird in den Bereich der Initialisierungsinformation der Speicherblock-Verwaltungstabelle 3112 im Schritt 3185 geschrieben. Des Weiteren werden Blöcke, die im Ersatzspeicherabschnitt belegt werden, dem Zentralrechner-System gemeldet durch das Fehler-Informationsregister 3105, um die Verwendung der Blöcke zu verhindern im Schritt 3186. Dann wird der Benutzer darüber in Kenntnis gesetzt, dass eine Platten-Rekonfiguration im Schritt 3187 abgeschlossen ist. Der Vorgang der Rekonfiguration ist jetzt abgeschlossen.
  • Ein Ersatzspeicherabschnitt kann auf dieselbe Weise rekonfiguriert werden wie oben beschrieben.
  • Als Nächstes wird ein Beispiel des Halbleiter-Plattensystems gemäß der dritten Ausführungsform besprochen. In dem Beispiel sind der Daten-Speicherabschnitt 3108 und der Ersatzspeicherabschnitt 3109 des Halbleiterspeichers 3106 gemischt als gemischter Datenspeicher 3801, wie in 68 gezeigt. 69 zeigt ein Beispiel der Entsprechung zwischen einer Speicherkarte des gemischten Datenspeichers 3801, der in 68 gezeigt ist, und einem Speicherblock-Verwaltungsmittel 3112. In 69, wie gezeigt in der Speicheradresskarte 3201, weist ein gemischter Datenbereich 3901 Datenblöcke und Ersatzdatenblöcke gemischt auf und weist eine Kapazität auf von insgesamt 32 M Bytes im Bereich der Adressen 0000000H bis 1FFFFFFH. In dem Beispiel wird der 30M-Byte-Raum tatsächlich als Datenbereich verwendet und der verbleibende 2M-Byte-Raum wird als Ersatzblockbereich verwendet. Die Kapazitäten dieser beiden Bereiche sind nicht festgelegt und können vom Benutzer geändert werden, der im Initialisierungs-Informationsbereich geeignete Werte setzt, wenn die Halbleiterplatte initialisiert wird. Wie die Kapazitäten zu bestimmen sind vom Initialisierungs-Informationsbereich 3207, der Block-Registriertabelle 3205 und der Block-Verwendungstabelle 3206, ist dasselbe wie in dem Beispiel in 62.
  • Als Nächstes wird die Arbeitsweise in dem Beispiel, das in 68 gezeigt ist, beschrieben unter Bezugnahme auf 70. Die Leseoperation kann ausgeführt werden, wie in dem Fluss-Diagramm in 63 gezeigt ist. Die Schreiboperation wird ausgeführt wie bei Schritten 3401 bis 3404 im Schreibverarbeitungs-Fluss-Diagramm von 64. In dem Beispiel, das in 69 gezeigt ist, sind Daten-Blockbereiche und Ersatz-Blockbereiche vermischt. Deshalb, wenn ein Schreibfehler im Schritt 3404 in 70 auftritt, wird die gesamte Block-Verwendungstabelle 3206 nach den "0"-Bits durchsucht (welche leere Blöcke angeben) im Schritt 3405. Die nachfolgenden Schritte der Schreiboperation werden ausgeführt wie diejenigen, die im Fluss-Diagramm von 64 gezeigt sind.
  • Weiterhin zeigt 71 ein zweites Beispiel des Halbleiter-Plattensystems gemäß der dritten Ausführungsform der Erfindung. In dem Beispiel, wie es in 71 gezeigt ist, wird ein Mikrocomputer 3800, genannt eine CPU, MPU, MCU o. ä., als Halbleiterspeicher-Steuerschaltkreis 3111 verwendet, wie in 61 gezeigt ist, und ein Puffer-Speicher 3115, ist enthalten im Schnittstellen-Schaltkreis 3107. Die Halbleiter-Platteneinheit 3102, welche den Mikrocomputer 3800 verwendet, wird normalerweise von einem Programm gesteuert, welches in einem schreibgeschützten Speicher (ROM) gespeichert ist. In dem Beispiel, welches in 71 gezeigt ist, kann der Mikrocomputer 3800 ein Mikrocomputer auf einem Chip sein, der ein ROM oder besonderen Adressraum der Speicherblock-Verwaltungstabelle 3112 enthält oder der Halbleiterspeicher 3106 kann im Steuerprogramm des Mikrocomputers 3800 zugewiesen sein. Ein diskreter ROM-Chip kann angebracht sein. Die Arbeitsweise des. Halbleiter-Plattensystems, die in 71 gezeigt ist, ist im Wesentlichen dieselbe, welche in 61 gezeigt ist, mit der Ausnahme, dass der Mikrocomputer 3800 den Halbleiterplatten-Steuerschaltkreis 3111 ersetzt.
  • Obwohl lediglich ein Ersatzspeicherbereich 3203 und ein Datenspeicherbereich 3202 bereitgestellt werden in den Beispielen, die in 61, 68 und 71 gezeigt sind, können mehr als ein Ersatzspeicherbereich 3202 und mehr als ein Datenspeicherbereich bereitgestellt werden durch Hinzufügen neuer Adress-Information und Kapazitäten zum Initialisierungs-Informationsbereich.
  • Als Nächstes zeigt 72 ein drittes Beispiel des Halbleiter-Plattensystems gemäß der dritten Ausführungsform, in welchem kein Unterbrechungssignal 3103 verwendet wird. Wenn ein Flash-Speicher-Schreibfehler o. ä. in der Halbleiter-Platteneinheit 3102 auftritt, schreibt der Halbleiterplatten-Steuerschaltkreis 3111 Fehlerinformation in das Fehler-Informationsregister 3105 und das Zentralrechner-System 3101 fragt das Fehler-Informationsregister 3105 zyklisch ab, um den Registerinhalt durch den E/A-Bus 3104 zu lesen und zu entdecken, dass der Fehler aufgetreten ist. Die weitere Arbeitsweise des Halbleiter-Plattensystems, das in 72 gezeigt ist, ist dieselbe wie diejenige, welche in 61 gezeigt ist.
  • Als Nächstes wird ein viertes Beispiel des Halbleiter-Plattensystems gemäß der dritten Ausführungsform besprochen, in welchem der Ersatzspeicherabschnitt 3109 in 61 nicht vorkommt, d. h., dass der Halbleiterspeicher 3106 lediglich aus dem Daten-Speicherabschnitt 3108 besteht. In dem Beispiel, wenn ein Flash-Speicher-Fehler auftritt, wird Speicherblock-Verwendungsinformation wieder aufgefunden in der Speicherblock-Verwaltungstabelle 3112, um einen leeren Block im Daten-Speicherabschnitt 3108 aufzufinden, und Daten werden geschrieben in den aufgefundenen leeren Block als einen Ersatzblock. Weiterhin wird Blockinformation des Blocks, des Daten-Speicherabschnitts 3108, der als Ersatzblock verwendet wird, in das Fehler-Informationsregister 3105 geschrieben, um das Zentralrechner-System 3101 in Kenntnis zu setzen. Der weitere Betrieb des Halbleiter-Plattensystems, das in 75 gezeigt ist, ist derselbe wie derjenige, der in 61 gezeigt ist.
  • Wie oben beschrieben ist die Erfindung durch die Tatsache charakterisiert, dass wenn der Flash-Speicher aufgebraucht ist oder der Ersatzspeicherbereich, verwendet als Ersatzblöcke, wenn ein Schreibfehler auftritt, unbrauchbar ist in der Halbleiter-Platteneinheit, die den Flash-Speicher verwendet, eine geeignete Verarbeitung, wie z. B. das Informieren des Zentralrechner-Systems und des Benutzers durchgeführt wird. Deshalb sind die Verfahren des Flash-Speicher-Lesed- /Schreib-Steuersystems und das Verfahren zur Bildung der Speicherblock-Verwaltungstabelle nicht beschränkt auf diejenigen, die in der Beschreibung beschrieben sind. Die Mittel zum Informieren des Benutzers vom Auftreten eines Fehlers sind nicht beschränkt auf die hier beschriebenen Mittel. Entsprechend der Ausführungsform der Erfindung kann die Halbleiter-Platteneinheit vor einem Flash-Speicher-Schreibfehler bewahrt werden, womit die Lebensdauer der Halbleiter-Platteneinheit verlängert werden kann.
  • Gemäß der Erfindung kann eine Halbleiterplatte, welche einen Flash-Speicher als Speichermedium verwendet, von einem Schreibfehler bewahrt werden, der durch die Begrenzung des Flash-Speicher-Schreibzählers verursacht wird und deshalb kann die Lebensdauer der Halbleiterplatte verlängert werden. Wenn die Halbleiterplatte nicht vor einem Fehler bewahrt werden kann, wird der Benutzer von dieser Tatsache in Kenntnis gesetzt und kann damit geeignete Schritte unternehmen, um zu verhindern, dass Daten verloren gehen.
  • Ausführungsform 4:
  • Eine vierte Ausführungsform, welche die bevorzugte Ausführungsform der Erfindung ist, wird beschrieben unter Bezugnahme der begleitenden Zeichnungen.
  • 82 ist ein Block-Diagramm eines informationsverarbeitenden Systems gemäß der vierten Ausführungsform der Erfindung, worin das Bezugszeichen 4001 eine CPU (central processing unit bzw. Zentraleinheit), die Programme ausführt und Daten verarbeitet, Bezugszeichen 4002 ist ein Flash-Speicher, der ein nichtflüchtiger Speicher mit großer Kapazität ist, welcher die Programme, Daten, etc., speichert, bearbeitet durch die CPU 4001, und Bezugszeichen 4003 ist ein Cache-Speicher, der ein flüchtiger Speicher ist, welcher zeitweise Daten speichert, wie z. B. Daten, die übertragen werden vom Flash-Speicher und Schreibdaten von der CPU 4001. Der Cache-Speicher 4003 kann aus DRAM (dynamic random access memory bzw. dynamischer Speicher mit wahlfreiem Zugriff) gemacht sein, einem SRAM (static random access memory bzw. statischer Speicher mit wahlfreiem Zugriff) o. ä., z. B. Das Bezugszeichen 4004 ist ein Adressfeld, welches CPU-Adressen aufzeichnet, die den Daten zugewiesen sind, die im Cache-Speicher 4003 gespeichert sind, welche von der CPU ausgegeben werden, um auf die Daten zuzugreifen, und deren anhängende Information. Bezugszeichen 4005 ist ein Adress-Vergleichsschaltkreis zum Vergleichen der Adresse, die den Daten entspricht, deren Zugriff von der CPU 4001 verlangt wird mit den Adressen, die aufgezeichnet sind im Adressfeld 4004. Das Bezugszeichen 4006 ist eine Steuervorrichtung, welche das informationsverarbeitende System steuert, so dass so viel wie möglich auf genaue Daten zugegriffen werden kann mit hoher Geschwindigkeit in Antwort auf eine Zugriffsanforderung, die von der CPU 4001 gemacht wird. Das Bezugszeichen 4007 ist ein Speicher-Bus der CPU 4001. Das Adressfeld 4004, der Adress-Vergleichsschaltkreis 4005 und die Steuervorrichtung 4006 können aus elektronischen Vorrichtungen gemacht sein, wie z. B. CMOS (complementary metal oxide semiconductor bzw. komplementärer Metalloxid-Halbleiter), Transistoren, Widerstände, ROM, welches vorbestimmte Verarbeitungsprogramme speichert, RAM und CPU. In der folgenden Beschreibung sei angenommen, dass der Adressraum existiert, in welchem auf Adressen durch die CPU 4001 zugegriffen wird, vom Flash-Speicher 4002 belegt ist. Das Bezugszeichen 4060 ist ein Eingabemittel, welches zumindest eine Funktion für ein externes System aufweist, einschließlich der Möglichkeit, dass der Benutzer Befehle eingibt, wie z. B. Daten-Zugriffsbefehle und Adressen; z. B. wird es implementiert durch eine Maus oder eine Tastatur. Das Bezugszeichen 4061 ist ein Mittel, welches eine Ausgabefunktion von Mitteilungen aufweist (die unten beschrieben sind) und von notwendiger Information; es kann implementiert werden durch Druckmittel, wie z. B. einem Drucker oder Anzeigemittel, wie z. B. einer CRT, einer EL-Anzeige oder einer Flüssigkristallanzeige.
  • Als Nächstes wir der Betrieb des informationsverarbeitenden Systems beschrieben.
  • In einem allgemeinen informationsverarbeitenden System, welches eine CPU und Speicher umfasst, wird ein flüchtiger Speicher, wie z. B. ein DRAM, als Hauptspeicher verwendet zur Berücksichtigung der Zugriffsgeschwindigkeit. Im Gegensatz dazu muss ein nicht-flüchtiger Speicher verwendet werden, um eine so genannte Fortsetzungsfunktion, Schnellstartfunktion, etc., bereitzustellen, welche sehr gefragt sind für z. B. tragbare Personalcomputer, etc.; SRAM, gesichert mit einer Batterie, hat hinsichtlich der Kapazität und der Zuverlässigkeit viele Nachteile und elektrisch löschbares programmierbares ROM weist eine sehr langsame Rückschreibzeit auf und ist schwierig zu benutzen.
  • Darum wird in der vierten Ausführungsform ein flüchtiger Speicher angepasst als Cache-Speicher zum zeitweisen Speichern von Daten etc. und wird unmittelbar verbunden mit dem Speicher-Bus 4007 der CPU 4001 und der Flash-Speicher wird als der hauptsächliche Hauptspeicher verwendet. Das bedeutet, dass auf den Flash-Speicher 4002, der den Hauptspeicher darstellt, nicht unmittelbar von der CPU 4001 zugegriffen wird und deshalb die langsame Zugriffszeit zum Hauptspeicher den Betrieb der CPU 4001 kaum berührt.
  • Unter Bezugnahme wiederum auf 82 greift die CPU 4001 auf den Cache-Speicher 4003 über den Speicher-Bus 4007 zu. Die Zugriffsadresse wird eingegeben in den Adress-Vergleichsschaltkreis 4005, der dann die Adresse vergleicht mit Adressen, welche vorher im Adressfeld 4004 registriert wurden. Falls die Adresse mit einer der registrierten Adressen übereinstimmt, worauf im Folgenden Bezug genommen wird als ein "Adress-Treffer", greift die Steuervorrichtung 4006 auf die Stelle im Cache-Speicher 4003 zu, welche der Adresse entspricht. Im Gegensatz dazu, wenn die Adresse nicht mit einer der registrierten Adressen übereinstimmt, worauf im Folgenden Bezug genommen wird, als "Adress-Fehlschlag", registriert die Steuervorrichtung 4006 die Adresse in dem Adressfeld 4004. Danach überträgt die Steuervorrichtung 4006 die Daten, die der Adresse entsprechen, in den Cache-Speicher zum Speichern und greift auf die Stelle im Flash-Speicher 4002 zu, welche der Adresse entspricht.
  • 83 zeigt ein Block-Diagramm der Steuervorrichtung 4006.
  • In 83 ist das Bezugszeichen 4011 eine DMA-(direct memory access bzw. direkter Schreibzugriff)-Steuervorrichtung zum Erzeugen aufeinanderfolgender Adressen mit hoher Geschwindigkeit und zum Zugreifen der Speicher mit hoher Geschwindigkeit. Sie wird verwendet, wenn aufeinanderfolgende Daten von mehreren zehn bis mehreren hundert Bytes übertragen werden sollen. Das Bezugszei chen 4012 ist ein Erzeugungsschaltkreis für das Speicher-Steuersignal zum Erzeugen von Steuersignalen, um den Betrieb des Cache-Speichers, des Adressfelds, etc. zu steuern und ebenso des Flash-Speichers. Zum Beipsiel kann es implementiert werden durch CPU, ROM, RAM, Gatter oder ein Programm, welches im ROM gespeichert ist. Falls DRAM verwendet wird als Cache-Speicher etc., kann der Erzeugungsschaltkreis für das Speicher-Steuersignal eine Auffrisch-Steuervorrichtung bereitstellen, um das DRAM wieder aufzufrischen. Das Bezugszeichen 4013 ist ein Speicher-Steuerzeitgeber, welcher ein Mittel darstellt zum Messen der Zeit, des Löschens, Schreibens etc. vom Inhalt des Flash-Speichers; er kann implementiert werden durch CPU, ROM, RAM, CMOS oder einem Programm, welches im ROM gespeichert ist. Das Bezugszeichen 4014 ist ein flüchtiger Datenspeicher, der verwendet wird als Arbeitsbereich zur Ausführung des Steuerprogramms oder als Bereich zum zeitweisen Speichern von Daten vom Speicher-Bus, Adressfeld-Information oder Daten, die in das System übertragen werden. Das Bezugszeichen 4015 ist ein ROM, welches ein Steuerprogramm speichert und das Bezugszeichen 4016 ist ein Prozessor, der ein Steuerprogramm zum Steuern des gesamten informationsverarbeitenden Systems der Erfindung ausführt. Das Bezugszeichen 4017 ist ein Bus, der bereitgestellt wird, um Adressen, Daten etc. innerhalb des Systems zu übertragen.
  • 84 zeigt ein Fluss-Diagramm zur Erläuterung des Betriebs der Steuervorrichtung 4006, nämlich der Verarbeitung, die vom Steuerprogramm durchgeführt wird.
  • Wie in 84 gezeigt, wird zuerst eine Zugriffsanforderung zu einer Adresse von der CPU 4001 ausgegeben im Schritt a. Die Adresse wird eingegeben in den Adress-Vergleichsschaltkreis 4005, der dann die Adresse mit den Adressen vergleicht, die im Adressfeld 4004 registriert sind im Schritt b. Falls ein Adress-Treffer auftritt, bedeutet dies, dass die gewünschten Daten im Cache-Speicher 4003 vorkommen. Dann wird die Adresse umgewandelt in eine entsprechende Adresse im Cache-Speicher 4003 in Antwort auf die Information, welche im Adressfeld 4004 im Schritt c gespeichert ist und es wird auf die entsprechende Stelle im Cache-Speicher 4003 zugegriffen gemäß der Cache-Speicheradresse im Schritt d. Das heißt, wenn ein Lesezugriff durchgeführt wird, werden die Daten im Cache-Speicher 4003 zur CPU 4001 über den Speicher-Bus 4007 ausgegeben; wenn ein Schreibzugriff durchgeführt wird, werden Daten, die von der CPU 4001 über den Speicher-Bus 4007 an die entsprechende Stelle im Cache-Speicher 4003 eingegeben werden, geschrieben. Andererseits, wenn ein Adress-Fehlschlag auftritt, wird ein neuer Datenbereich zum Speichern von Daten im Cache-Speicher 4003 im Schritt e geschaffen. Die Verarbeitung im Schritt e wird im Detail nach der Beschreibung des Fluss-Diagramms besprochen.
  • Nun, falls ein neuer Datenbereich geschaffen wurde, wird auf den Datenbereich zugegriffen. Falls ein Lesezugriff durchgeführt wird, werden Daten, die an der entsprechenden Adresse gespeichert sind, vom Flash-Speicher 4002 gelesen und übertragen zum Cache-Speicher 4003 zum Speichern im Schritt f und weiter ausgegeben zum Speicher-Bus 4007 im Schritt g. Falls ein Schreibzugriff durchgeführt wird, werden Daten von der CPU 4001 in den neuen Datenspeicherbereich des Cache-Speichers 4003 geschrieben im Schritt h. Als Letztes wird das Adressfeld aktualisiert zu dem neuen Schreiben. D. h. die Fehlschlag-Adresse wird registriert im Adressfeld im Schritt i.
  • Der Betrieb der Steuervorrichtung 4006 ist umrissen worden.
  • Die Verarbeitung im Schritt e wird im Detail beschrieben. Vorzugsweise ist die Steuervorrichtung 4006 entworfen, um den Umfang der Daten zu überwachen, die im flüchtigen Speichermittel gespeichert sind und einen Bereich bereitzustellen, in welchem keine Daten gespeichert sind, der eine vorbestimmte Kapazität aufweist oder mehr, so dass der Datenumfang einen vorbestimmten Wert nicht überschreitet.
  • Nun, wenn das informationsverarbeitende System nicht viel Verarbeitung durchführt, nachdem es seinen Betrieb aufgenommen hat, enthält der Cache-Speicher eine große Anzahl nicht verwendeter Datenblöcke und ein neuer Speicherbereich kann im unbenutzten Datenspeicherbereich belegt werden ohne eine besondere Verarbeitung durchzuführen. Wenn jedoch der unbenutzte Bereich nicht verfügbar ist, muss ein Datenspeicherbereich geschaffen werden, selbst durch Löschen bereits gespeicherter Daten. Damit wird eine "Zugriffsgeschichte ", die Information darstellt, die angibt, in welcher Folge die CPU auf den Cache-Speicher zugegriffen hat, gespeichert, entsprechend jeder registrierten Adresse im Adressfeld 4004. Daten, die im Cache-Speicher gespeichert sind und von denen geschätzt wird, dass auf sie in der Zukunft am Wenigsten zugegriffen wird, werden gefunden zur Verbesserung der Leistung, wie z. B. der Prozentsatz der Anwesenheit von Daten, auf die im Cache-Speicher zugegriffen werden soll, worauf im Nachfolgenden Bezug genommen wird als "Trefferwahrscheinlichkeit" und die Zugriffsgeschwindigkeit.
  • Zu diesem Zweck kann Information, welche das relative Alter von Adressen, auf die zuletzt zugegriffen wurde, aufgezeichnet werden. Eine Adresse, auf die der letzte Zugriff der älteste ist (sie kommt in der am meisten vergangenen Richtung auf der Zeitachse vor) unter den aufgezeichneten Adressen, kann gefunden werden in Antwort auf den Aufzeichnungsinhalt und die Daten in der Adresse können vom Cache-Speicher 4003 gelöscht werden. Falls die Information, welche die Zugriffsgeschichte betrifft, im Adressfeld 4004 gespeichert ist, bewirkt sie eine Verbesserung der Verarbeitungsgeschwindigkeit etc.
  • Wenn jedoch die Cache-Speicher-Kapazität groß wird, wird die Zugriffsgeschichte sehr kompliziert und eine große Kapazität ist erforderlich, um das relative Alter aufzuzeichnen; ein anderer Ansatz ist erforderlich.
  • Als ein Ansatz kann die Zugriffsgeschichten-Aufzeichnung vereinfacht werden, obwohl der Trefferdurchschnitt weitgehend vermindert wird. Z. B. ist es möglich, die Daten, die gelöscht werden sollen, zufällig auszuwählen oder wenn Daten geschrieben werden, am Anfang des Cache-Speichers 4003 geordnet zu beginnen und die geschriebenen Daten werden ebenso gelöscht, am Anfang geordnet beginnend, eine so genannte FIFO-Steuerung kann leicht bereitgestellt werden zum Löschen von Daten in der Reihenfolge, in der sie geschrieben worden sind. Falls ein Mengen-assoziatives Verfahren, welches mit allgemeinen Cache-Speichern verwendet wird, angenommen wird, wird der Adressvergleich vereinfacht. Das Mengen-assoziative Verfahren ist wohl bekannt und wird deshalb hier nicht besprochen.
  • Nebenbei bemerkt treten einige Probleme auf bei der praktischen Anwendung, das Mengen-assoziative Verfahren anzunehmen. Wenn eine Anforderung zum Schreiben in eine Adresse von der CPU 4001 empfangen wird und ein Adress-Fehlschlag auftritt, werden Adressdaten im Cache-Speicher zurückgeschrieben in den Flash-Speicher und ein neuer Datenspeicherbereich wird geschaffen, wie oben beschrieben. In diesem Fall benötigt das Zurückschreiben von Flash-Speicherdaten eine lange Zeit, was dazu führt, die Systemleistung extensiv zu vermindern, wie z. B. die Verarbeitungsgeschwindigkeit zu vermindern. Dann kann eine Steuerung der Steuervorrichtung 4006 ausgeführt werden, wie in 85 gezeigt, um zu verhindern, dass die Systemleistung vermindert wird.
  • Der Verarbeitungsfluss in 85 ist derselbe wie der in 84 mit der Ausnahme der Erzeugung einer Zeitgabe eines neuen Speicherbereichs im Schritt e. In
  • 85 erfolgt der Eintritt in den Schritt des Erzeugens eines neuen Speicherbereichs nach Beendigung der Datenübertragung von der CPU 4001. D. h. ein neuer Speicherbereich wird immer bereitgestellt und wenn eine Schreibanforderung, die von der CPU 4001 empfangen wird, ein Adress-Fehlschlag ist, werden die Daten in den neuen Speicherbereich geschrieben, womit verhindert wird, dass die Zeit zum Zurückschreiben in den Flash-Speicher den Betrieb der CPU 4001 beeinflusst. In diesem Verfahren wird jedoch ein Bereich, in welchem keine Daten vorkommen, im Cache-Speicher stets bereitgestellt und die gespeicherte Datenkapazität des Cache-Speichers wird um diesen Bereich vermindert. Deshalb muss in Betracht gezogen werden, dass der Trefferdurchschnitt abnehmen wird. Die Wirkung der Unterdrückung der Verminderung der Systemleistung aufgrund der Flash-Speicher-Rückschreibzeit ist natürlich groß.
  • Zu dieser Zeit wird, unter der Annahme, dass der Cache-Speicher 4003 ein wohlbekanntes 4-Wege-Mengen-assoziatives Verfahren annimmt, Daten in lediglich drei Mengen gespeichert und die verbleibende eine Menge wird stets leer gehalten mit Ausnahme nach einem Schreibzugriff für einen Fehlschlag, der auftritt, wenn eine Anforderung von der CPU empfangen wird. Deshalb kann Zugriffsinformation bis zur dritten Menge gehalten werden und aktualisiert werden.
  • Ein anderes Problem ist, dass die gestapelte Löscheinheit-Kapazität im Flash-Speicher sehr groß ist im Vergleich zu einem Zugriffsdatum. Das bedeutet, dass die CPU auf Daten von mehreren Bytes auf einmal zugreift, während der Flash-Speicher in Einheiten von mehreren hundert Bytes und mehr gelöscht wird. Deshalb, falls, nachdem mehrere Byte-Daten vom Flash-Speicher zum Cache-Speicher für einen Lesezugriff übertragen werden, ein Zurückschreiben der Daten auftritt und die Daten in den Cache-Speicher zurückgeschrieben werden, werden die entsprechenden Daten im Flash-Speicherbereich in einem zukünftigen Zeitpunkt zurückgeschrieben. Zu dieser Zeit ist ein Zurückschreiben von lediglich mehrere Bytes umfassenden Daten im Flash-Speicher nicht freigegeben, womit der gesamte Löschbereich in einen anderen flüchtigen Speicher zum Speichern gelesen wird und der entsprechende Datenabschnitt im flüchtigen Speicher zurückgeschrieben wird; dann werden die Daten im flüchtigen Speicher wieder in den Flash-Speicherbereich geschrieben, von welchem die Daten gelöscht worden sind. Das bedeutet, dass ein Schritt des Zurückschreibens von Daten in den Flash-Speicher erforderlich ist. Zu dieser Zeit, falls Datenstücke in einem einzigen Löschbereich im Cache-Speicher getrennt vorkommen, ist es wirksam, das Rückschreiben zur selben Zeit durchzuführen. Deshalb, wenn Daten in den Flash-Speicher zurückgeschrieben werden, wird eine Verarbeitung kompliziert und verbraucht Verarbeitungszeit. Deshalb, wenn Daten im Flash-Speicher in den Cache-Speicher übertragen werden, wird der Einheitslöschbereich in einem Stapel übertragen, eine Zugriffsgeschichte wird für jeden Einheitslöschbereich aufgezeichnet und ein Zurückschreiben in den Flash-Speicher wird ebenso durchgeführt für jeden Einheitslöschbereich. Das beseitigt die Notwendigkeit für eine Verarbeitung, in welcher Cache-Speicher-Daten, welche im selben Bereich des Flash-Speichers vorkommen, gesichert werden und geschrieben oder gefunden werden. D. h. falls ein Schreibzugriff auftritt, können alle Daten im Einheitslöschbereich, die Daten enthalten, die in dem Schreibzugriff angegeben sind, im Cache-Speicher ausgedehnt werden.
  • Wenn jedoch Daten gelesen werden, falls mehrere hundert Bytes oder mehr gelesen werden müssen, um Daten vom Umfang von mehreren Bytes zu lesen, ist es ineffizient. Dann, wenn die gewünschten Daten zum Cache-Speicher für einen Schreibzugriff übertragen werden, werden so viel Bytes wie nötig zum Cache-Speicher übertragen und wenn Daten für einen Schreibzugriff übertragen werden, werden alle Einheitslöschbereiche übertragen, womit die Leseoperation und die Schreiboperation effizient durchgeführt werden können.
  • Als Information, die im Adressfeld gespeichert ist, kann ein Kennzeichen, das angibt ob oder nicht Daten im Cache-Speicher zurückgeschrieben worden sind, gesetzt werden, um eine große Wirkung zu entfalten hinsichtlich der Verbesserung der Verarbeitungsgeschwindigkeit etc.
  • Als Nächstes wird ein Beispiel, welches einen seriellen Puffer enthält besprochen als ein Anwendungsbeispiel eines Flash-Speichers. In der Erfindung werden die Flash-Speicherkosten zu einem wichtigen Faktor zur Bestimmung der Systemkosten. Da der Hauptspeicher aus nicht-flüchtigem Speicher gemacht ist, müssen die Chips eine große Kapazität aufweisen, die Flash-Speicher-Chips, welche den Hauptspeicher ausmachen, müssen günstig sein. Einer der großen Faktoren zur Bestimmung der Speicherkosten ist ein "Zellbereich", welcher die Größe einer Zelle darstellt, einer Einheit, welche die Speicherfunktion bereitstellt. Da die große Speicherkapazität eines gegebenen Bereichs bestimmt wird durch die Fläche, die eine Speicherzelle belegt, ist die Zellenfläche nahe verwandt mit den Speicher-Chip-Kosten. Das Opfer eines wahlfreien Zugriffs muss gemacht werden, um die Fläche einer Zelle im Flash-Speicher soweit wie möglich zu miniaturisieren. Auf Daten in einer Zeile auf einem Chip, welcher eine bestimmte Kapazität aufweist, werden zugegriffen in einem Stapel und übertragen an einen seriellen Puffer, auf den sequentiell zugegriffen werden kann. Dann wird ein serieller Zugriff zum externen Bereich durchgeführt vom seriellen Puffer zum Ausgeben der Daten. Deshalb, um auf einen Dateneintrag zuzugreifen, wird auf Daten in derselben Zeile in einem Stapel zugegriffen; Zugriffszeit wird benötigt und im Ergebnis wird die wahlfreie Zugriffsleistung erniedrigt. In diesem Fall jedoch ist für eine Anforderung auf zusammenhängende Daten zuzugreifen, der erste Zugriff langsam aber danach kann ein serieller Zugriff mit hoher Geschwindigkeit durchgeführt werden. Normalerweise ist während einer Programmausführung ein schneller serieller Zugriff von einer Zugriffsstelle sehr nützlich.
  • Nun wird ein Beispiel der Anwendung des seriellen Zugriffs in der Erfindung besprochen.
  • 86 ist ein Konfigurationsbeispiel eines Flash-Speichers, der in dem Beispiel verwendet wird.
  • In 86 bezeichnet das Bezugszeichen 4031 einen Flash-Speicher-Chip, Bezugszeichen 4032 ein Flash-Speicherfeld, Bezugszeichen 4033 einen seriellen Puffer, Bezugszeichen 4034 eine Zugriffsadresse, Bezugszeichen 4035 einen seriellen Takt, Bezugszeichen 4036 sind Zeilendaten, welche übertragen werden zwischen dem Flash-Speicherfeld 4032 und dem seriellen Puffer 4033, und Bezugszeichen 4037 sind Daten, welche ein-/ausgegeben werden zum/vom Speicher-Chip. Die Adresse bedeutet eine Zeilenadresse zum Übertragen aller Daten in einer Zeile.
  • Beim Betrieb, wenn ein Lesezugriff gemacht wird, werden zuerst, wenn die Zeilenadresse 4034 zum Zugreifen auf den Flash-Speicher-Chip 4031 eingegeben wird, die Daten 4036, welche in der Zeile im Flash-Speicherfeld 4032 entsprechend der Zeilenadresse vorkommen, übertragen zum seriellen Puffer 4033 in einem Stapel. Die übertragenen Daten werden in der Reihenfolge vom seriellen Puffer 4033 herausgenommen durch Eingeben des seriellen Takts 4035. Falls ein Schreibzugriff durchgeführt wird, werden zuerst Daten in den seriellen Puffer 4033 eingegeben, um mit der Eingabe-Zeitgabe des seriellen Taktes 4035 übereinzustimmen. Nachdem die Dateneingabe abgeschlossen ist, werden die Daten übertragen zu der Zeile, die von der Zeilenadresse 4034 im Flash-Speicherfeld 4032 gesetzt ist. Der Betrieb des Flash-Speichers ist umrissen worden.
  • Ein Beispiel, in welchem der Flash-Speicher verwendet wird, wird unter Bezugnahme auf 87 bis 89 besprochen.
  • 87 zeigt einen Hardwareaufbau, der beinahe derselbe ist wie derjenige, der in 82 gezeigt ist, mit der Ausnahme der Konfiguration der Steuervorrichtung 4006 (unten beschrieben). Andere Elemente, welche identisch sind mit denen, die vorher unter Bezugnahme auf 82 beschrieben wurden, werden mit denselben Bezugszeichen wie in 87 bezeichnet. Die Flash-Speicher-Chips 4031, die unter Bezugnahme auf 86 beschrieben sind, werden als der Abschnitt des Flash-Speichers 4002 in 82 verwendet.
  • 88 zeigt ein Aufbaubeispiel der Steuervorrichtung 4006 in dem Beispiel, wobei das Bezugszeichen 4038 ein Takt-Erzeugungsschaltkreis für den seriellen Puffer 4033 ist. Andere Elemente, die identisch sind mit denen, die vorher beschrieben wurden unter Bezugnahme auf 83, sind mit denselben Bezugszeichen bezeichnet wie in 88.
  • 89 ist ein Fluss-Diagramm, das den Betrieb der Steuervorrichtung 4006 zeigt, wobei der Unterschied in der Behandlung der Adressen der CPU 4001 und derer des Flash-Speichers 4031 eine Rolle spielen.
  • Der Betrieb wird beschrieben unter Bezugnahme auf 86, 87 und 89. Zuerst wird eine Zugriffsanforderung von der CPU 4001 bei Schritt a empfangen. Wenn ein Adress-Treffer auftritt, wird auf den Cache-Speicher 4003 im Schritt b zugegriffen; falls ein Adress-Fehlschlag auftritt, wird ein neues Speichergebiet zum Speichern der Daten im Cache-Speicher 4003 im Schritt c geschaffen.
  • Die Adresse 4034 der Zeile, welche die Adresse für den Zugriff auf den Flash-Speicher 4031 enthält, wird gegeben; die Zeilendaten werden übertragen zum seriellen Puffer 4033 und der serielle Takt 4035 wird eingegeben zum Lesen von Daten im Schritt d. Die gelesenen Daten werden gespeichert im neuen Speicher bereich des Cache-Speichers 4003 im Schritt e. Falls der Zugriff ein Lesen ist, werden weiterhin gewünschte Daten ausgegeben auf den Speicher-Bus 4007 der CPU 4001 vom neuen Speicherbereich im Schritt f.
  • Andererseits, falls der Zugriff ein Schreiben ist, werden Daten an die Stelle geschrieben, die der Zugriffsadresse im neuen Speicherbereich in Schritt g entspricht.
  • Zuletzt wird der Inhalt des Adressfelds aktualisiert im Schritt h und die Verarbeitung wird abgeschlossen. Um die Verarbeitungsleistung bei einem Fehlschlag zu verbessern, wird vorzugsweise, nachdem der Zugriff auf die CPU 4001 endet, ein Schritt der Schaffung eines neuen Speicherbereichs ausgeführt, um den Bereich bereitzustellen bevor eine tatsächliche Schreibanforderung auftritt, wie in der Verarbeitung, die in 85 gezeigt ist.
  • Das Beispiel nimmt an, dass Adressfeld- und Zugriffsgeschichten-Aufzeichnungen alle in Zeileneinheiten eingestellt sind.
  • Ein anderes Beispiel der Verwendung eines Flash-Speicher-Chips, der einen seriellen Puffer enthält, wobei die serielle Zugriffsstartadresse gesetzt werden kann, wird besprochen. Insbesondere wird zuerst, um auf die gewünschte Zeile zuzugreifen, die Adresse der Zeile eingegeben. Die Lage zwischen den Zeilen der ersten Daten, die ausgegeben werden sollen, wenn ein serieller Takt eingegeben wird, nachdem Daten in der Zeile zum seriellen Puffer übertragen wurden, kann durch Angabe einer Adresse spezifiziert werden.
  • Z. B., wenn das 128ste Datenstück von 512 Datenstücken verlangt wird, unter der Annahme dass die Länge eines Datenstücks 1 Byte beträgt, und dass eine Zeile aus 512 Bytes besteht, werden die Adresse der Zeile und die Adresse, die den 128sten Eintrag in der Zeile anzeigt, angegeben. Damit wird das erste Ausgabedatum, nachdem ein serieller Takt eingegeben wird, das 128ste Datenstück; auf die gewünschten Daten kann sofort zugegriffen werden. Falls ein Zugriff in einer solchen Weise durchgeführt werden kann, wenn Daten an einer dazwischen liegenden Stelle einer Zeile herausgenommen werden, müssen so viele serielle Taktpulse wie die Platznummer in der Zeile nicht eingegeben werden und ein wahlfreier Zugriff kann mit vergleichsweise hoher Geschwindigkeit ausgeführt werden, unabhängig von der Zeilenzugriffsstruktur.
  • Das Beispiel einer Verwendung des Flash-Speichers wird beschrieben in größerem Detail unter Bezugnahme auf 90(A), 90(B) und 91.
  • 90(A) und 90(B) zeigen eine Datenbearbeitung bei einem Lesezugriff im Vergleich mit dem Beispiel, welches in 87 und 88 gezeigt ist. In 90(A) ist das Bezugszeichen 4003 ein Cache-Speicher und das Bezugszeichen 4033 ist äquivalent zum seriellen Puffer 4033 des Flash-Speichers 4031 der in 86 gezeigt ist. Daten können ein-/ausgegeben zum/vom seriellen Puffer 4003 werden, wenn ein serieller Takt 4035 eingegeben wird. Es sei angenommen, dass die oberste Adresse im seriellen Puffer 4033, die in 90(B) gezeigt ist; angegeben werden kann. Bezugszeichen 4041 ist ein Zielbereich im Cache-Speicher und weist eine Kapazität auf, die der des seriellen Puffers 4033 gleicht. Das Bezugszeichen 4042 bezeichnet ein Feld, welches ein bis mehrere Bytes entfernt ist von der Adresse, die angegeben ist als die oberste Adresse im seriellen Puffer 4033 und weist eine Kapazität auf, die gleich der Daten-Speichereinheit des Cache-Speichers 4003 ist. Die Kapazität wird bestimmt durch die CPU-Leistung, die Cache-Speicher-Kapazität etc. Das Bezugszeichen 4043 bezeichnet ein Ziel einer Datenübertragung 4042 in den seriellen Puffer 4033 und ist eines der Felder, in welches der Bereich des Cache-Speichers 4003 geteilt ist in Speichereinheiten.
  • In 90(A) werden 1-Zeilen-Daten, die vom Flash-Speicherfeld zum seriellen Puffer 4033 übertragen werden, im Takt zum Cache-Speicher 4003 zum Speichern übertragen. Das bedeutet, dass Daten verarbeitet werden gemäß dem Fluss-Diagramm, das in 89 gezeigt ist. Der Datenumfang hängt vom Ausbau des Flash-Speichers ab, insbesondere der seriellen Puffer-Kapazität.
  • Da der Flash-Speicher entwickelt ist, gespeicherte Daten in einem Stapel in einer Kapazitätseinheit zu löschen, wird eine hohe Integration des Speicheraufbaus ermöglicht. Die serielle Puffer-Größe hängt von der Einheitskapazität des Stapel Löschens ab, womit ein gewisser Größengrad wegen der Charakteristiken des Flash-Speichers unvermeidlich ist.
  • Gegenwärtig wird ein Speicher, der eine Stapellöscheinheit-Kapazität von 512 Bytes aufweist, welche der Sektor-Kapazität eines Festplattenlaufwerks (HDD) entspricht, entwickelt. Wenn ein solcher Speicher angenommen wird, wird die Datenübertragungseinheit 512 Bytes in 90(A) betragen.
  • Andererseits, in 90(B) wird die Kapazität zum Übertragen von Daten weiter unterteilt. Deshalb können Daten auch in kleinen Einheiten übertragen werden wie z. B. mehrere Bytes, womit die Übertragungszeit verbessert wird.
  • Da der Bereich des Cache-Speichers 4003 in eine große Anzahl von Speicherstellen in kleine Einheiten geteilt ist, kann erwartet werden, dass der Trefferdurchschnitt während der Ausführung eines Programms erhöht wird, in welchem ein langer sequentieller Zugriff nicht häufig auftritt. Natürlich können die Daten einfach an zusammenhängende Adressen gespeichert werden, um mit einem sequentiellen Zugriff umzugehen.
  • 91 zeigt ein Fluss-Diagramm zur Erläuterung der in 90(B) gezeigten Operation.
  • Zuerst wird eine Zugriffsanforderung empfangen von der CPU 4001 im Schritt a. Als Nächstes wird der Adresswert verglichen mit den Adressen im Adressfeld 4004, um einen Adress-Treffer oder Fehlschlag im Schritt b zu bestimmen. Falls ein Adress-Treffer auftritt, wird auf den Cache-Speicher 4003 zugegriffen. Falls ein Fehlschlag auftritt, wird eine Zeile, welche die Zugriffsadresse enthält, vom Flash-Speicher 4032 zum seriellen Puffer 4033 im Schritt c übertragen. Falls der Zugriff ein Lesen ist, wird die oberste Adresse in der Zugriffsdatenzeile im Schritt d gesetzt. Ein serieller Takt 4035 wird in den seriellen Puffer 4033 eingegeben und die gewünschten Daten werden heraus genommen im Schritt e. Als Nächstes werden die Daten, welche in einem neuen Speicherbereich gespeichert sind, im Cache-Speicher 4003 im Schritt f bereitgestellt. Die CPU 4001 greift auf den Cache-Speicher 4003 zu und die zugegriffenen Daten werden ausgegeben auf den Speicher-Bus 4007 im Schritt g.
  • Falls der Zugriff ein Schreiben ist, werden alle Daten, die zum seriellen Puffer 4033 übertragen wurden im Schritt c, übertragen zum Cache-Speicher 4003 im Schritt h. Für die Daten, die vom Cache-Speicher 4003 übertragen wurden, werden Schreibdaten von der CPU 4001 geschrieben an die Zugriffsstelle im Schritt i. Im Schritt j wird im Cache-Speicher 4003 für den nächsten Zugriffsfehlschlag ein neuer Speicherbereich geschaffen. Zuletzt wird Information, die im Adressfeld 4004 gespeichert ist, im Schritt k aktualisiert, um mit dem gegenwärtigen Zustand übereinzustimmen. Zur Erzeugung eines neuen Speicherbereichs im Schritt j, falls ein Lesezugriff auf einen Einheitsspeicherbereich des Cache-Speicher 4003 ausgeführt wird, müssen Daten nicht zurückgeschrieben werden; deshalb können Daten einfach in den Einheitsspeicherbereich überschrieben werden; falls ein Schreibzugriff durchgeführt wird, wird eine Verarbeitung in Zeileneinheiten durchgeführt; auf diese Weise wird eine Kandidatenzeile bestimmt und Daten, die in der Zeile vorkommen, werden im seriellen Puffer 4033 gespeichert und übertragen zum Flash-Speicherfeld 4032.
  • Im Cache-Speicher-System, welches in einem informationsverarbeitenden System unter Verwendung von DRAM und SRAM in Kombination angebracht ist, werden mehrere Bytes bis mehrere 10 Bytes verwendet als 1-Block-Kapazität, um die Cache-Kapazität zu erhöhen. Ebenso kann in der Ausführungsform der Erfindung eine Steuerung vereinfacht werden und eine Trefferwahrscheinlichkeit kann verbessert werden durch Übertragen von Daten zwischen dem Cache-Speicher und dem Flash-Speicher in Einheit von 16 Bytes, 64 Bytes etc. anstatt in Worteinheiten der CPU.
  • Schritte, die unternommen werden, wenn die CPU aus einem bestimmten Grund in einem System, welches einen nicht-flüchtigen Speicher hoher Kapazität verwendet, außer Kontrolle gerät, werden besprochen.
  • Um mit einem solchen Ereignis fertig zu werden, wird z. B. ein Register, welches ein Schreib-Sperrkennzeichen speichert, bereitgestellt für jede Löscheinheit des Flash-Speichers und das Schreib-Sperrkennzeichen wird eingeschaltet für normalerweise nicht zurückgeschriebene Daten. Um einen schreibgesperrten Bereich zurückzuschreiben, wird sein entsprechendes Schreib-Sperrkennzeichen ausgeschaltet, um die CPU davon abzuhalten, unterbrochen zu werden; dann werden neue Daten in den Bereich geschrieben. Falls ein Schreiben in den Bereich auftritt mit dem Kennzeichen ein, wird die CPU unterbrochen und veranlasst den Benutzer, eine geeignete Handlung auszuführen, z. B. durch Anzeigen einer Mitteilung auf eine Anzeige, wie z. B. eines CRT des Ausgabemittels 4061. Zu dieser Zeit kann der Benutzer erkennen, dass die CPU am Weglaufen ist, z. B. aus der Anzei gemitteilung, und er kann Daten unter den Daten im Cache-Speicher auswählen, die gerettet werden sollen. Ein Programmzähler, der in der CPU enthalten ist, kann ebenfalls zurückgesetzt werden. Falls ein Ähnlich-Kennzeichenregister im Adressfeld ebenfalls bereitgestellt ist, wird die Sicherheit für Daten im Cache-Speicher verbessert.
  • 92 zeigt ein Block-Diagramm eines Systems, welches die Verarbeitung ausführt.
  • In 92 ist das Bezugszeichen 4001 eine CPU, das Bezugszeichen 4003 ist ein Adressfeld, Bezugszeichen 4006 ist eine Steuervorrichtung, Bezugszeichen 4060 ist ein Eingabemittel, Bezugszeichen 61 ist ein Ausgabemittel, Bezugszeichen 4051 ist ein redundantes Feld, welches bereitgestellt wird für jede Löscheinheit des Flash-Speichers, Bezugszeichen 4052 ist ein Schreib-Sperrkennzeichen, welches im redundanten Feld 4051 gesetzt wird, Bezugszeichen 4053 ist ein Schreib-Sperrkennzeichen, welches bereitgestellt wird im Adressfeld und Bezugszeichen 4054 ist ein Unterbrechungs-Anforderungssignal, welches zur CPU gesendet wird, vorzugsweise ein nicht maskierbares Unterbrechungssignal.
  • Das Eingabemittel 4060 hat mindestens eine Funktion für ein externes System einschließlich der Möglichkeit, dass der Benutzer Befehle eingibt, wie z. B. Datenzugriffsbefehle und Befehle, die gegeben werden, um auf Mitteilungen zu antworten (unten beschrieben); z. B. wird es implementiert durch eine Maus oder eine Tastatur. Das Ausgabemittel hat eine Ausgabefunktion von Mitteilungen (unten beschrieben) und andere notwendige Information. Es kann implementiert sein als Anzeigemittel wie z. B. einer CRT, EL-Anzeige oder einer Flüssigkristallanzeige.
  • Wenn eine Anforderung zum Schreiben in den Flash-Speicher 4031 oder den Cache-Speicher 4003 auftritt, referenziert die Steuervorrichtung das Schreib-Sperrkennzeichen 52 oder 53, entsprechend dem Schreibzugriff, falls das Schreib-Sperrkennzeichen 1 ist, erzeugt sie ein Unterbrechungs-Anforderungssignal 4054, das zur CPU 4001 gegeben wird. Wenn sie das Signal empfängt, führt die CPU 4001 bedingungslos eine Folge aus, in welcher der Benutzer aufgefordert wird, auf die Anfrage zu antworten. Die Folgenden sind mögliche Benutzerantworten: (1) schreibe, (2) bestimme Zusammenbruchszustand, (3) spezifiziere Daten, die im Hauptspeicher vom Cache-Speicher gerettet sind, (4) Lösche den Programmzähler, (5) Lösche den Cache-Speicher, etc. Eine Mitteilung kann angezeigt werden auf einer Anzeige, wie z. B. einer CRT, welche vom Benutzer verlangt, eine Antwort auf eine Anfrage zu geben. Der Benutzer kann antworten auf die Anfrage mit einem notwendigen Befehl, der durch eine Eingabevorrichtung eingegeben wird, wie z. B. einer Maus oder Tastatur. Die CPU 4001 kann angepasst werden, eine Verarbeitung durchzuführen, die dem Befehl entspricht, entsprechend einem vorgespeicherten Programm.
  • Nun, der Verlust wichtiger Daten aufgrund eines CPU-Absturzes kann zu einem gewissen Grad vermieden werden.
  • In allen oben gegebenen Beispielen ist der Cache-Speicher 4003 unmittelbar verbunden mit der CPU 4001 über den Bus. In einigen informationsverarbeitenden Vorrichtungen jedoch kann eine Speicher-Bus-Steuervorrichtung, ein SRAM-Cache-System o. ä. zwischen die CPU 4001 und den Cache-Speicher 4003 eingefügt werden. In der Erfindung umfasst die CPU 4001 ebenso diesen Aufbau. Ein wichtiger Punkt ist, dass der Cache-Speicher 4003 unmittelbar verbunden ist mit dem Speicher-Bus, der im informationsverarbeitenden System enthalten ist.
  • Wenn der Strom abgeschaltet wird, um einen Auftrag anzuhalten, müssen Daten im Cache-Speicher in dem Flash-Speicher gesichert werden. Daten im Cache-Speicher, auf die während eines Lesens zugegriffen wird und deshalb nicht zurückgeschrieben werden, müssen nicht gerettet werden. Im Gegensatz dazu, kommen, für Daten, auf die als ein Schreiben zugegriffen wird und die deshalb zurückgeschrieben werden, neue Daten im Cache-Speicher vor, aber nicht im Flash-Speicher. Falls die Daten nicht gesichert werden, gehen die neuesten Daten verloren.
  • Um eine so genannte Fortsetzungsfunktion bereitzustellen, wenn Daten gesichert werden, ist es ebenfalls notwendig, Information, welche in Registern der CPU gespeichert ist und interne Daten, welche in Daten-Speicherabschnitten von einer Anzeige vorkommen Ein-/Ausgabe-Vorrichtungen, etc. zu speichern. Das heißt, die Fortsetzungsfunktion kann bereitgestellt werden durch Retten aller Daten, welche zum Neustarten erforderlich sind. Deshalb wird der Strom nicht durch einen mechanischen Schalter abgeschaltet und Mittel zum Ausführen einer Folge der logischen Verarbeitung von Stromabschalt-Information ist erforderlich. Ein solches Mittel kann bereitgestellt werden unter Verwendung von CPU, ROM, RAM, CMOS. In diesem Fall kann ein Programm für die CPU, um die notwendige Verarbeitung durchzuführen, im ROM gespeichert werden.
  • Um zu verhindern, dass Daten, welche im Cache-Speicher gespeichert sind, verloren gehen, ist es effektiv, die Daten im Cache-Speicher periodisch in den Flash-Speicher zurückzuschreiben. Falls ein SRAM oder FRAM (ferroelectric random access memory bzw. ferroelektrischer Speicher mit wahlfreiem Zugriff) mit Sicherungsleistung verwendet wird als der Cache-Speicher, werden keine Daten verloren gehen, obwohl ein wahlfreier Zugriff mit hoher Geschwindigkeit ermöglicht wird.
  • Wie oben beschrieben kann erfindungsgemäß ein System aufgebaut werden, welches einen Flash-Speicher verwendet, der eine niedrige Daten-Rückschreibgeschwindigkeit wie der Hauptspeicher aufweist, und die Fortsetzungsfunktion und die Schnellstartfunktion können leicht ohne Batteriesicherung bereitgestellt werden.
  • Da der Flash-Speicher, der günstiger als ein DRAM sein kann, als Hauptspeicher verwendet wird, kann der Hauptspeicher mit großen Kapazitäten zu niedrigen Kosten bereitgestellt werden.
  • Weiterhin ist der Hauptspeicher aus nicht-flüchtigen Speichermitteln gemacht, wobei eine Magnetplatteneinheit oder andere externe Speichervorrichtungen überflüssig werden, womit das System vereinfacht wird. Weiterhin kann ein Dateizugriff während einer Datenverarbeitung mit hoher Geschwindigkeit durchgeführt werden, womit die Systemleistung verbessert wird. Zusätzlich ist die Erfindung durch die Tatsache charakterisiert, dass das Speichersystem verschiedene Flash-Speicher-Chips verwenden kann, nicht nur der NOR-Typen, die hauptsächlich für eine wahlfreie Zugriffsleistung vorgesehen sind, sondern auch NAND- und AND-Typen im Zeilenzugriffssystem.
  • 93 zeigt ein schematisches Block-Diagramm eines weiteren Beispielsystems.
  • In 93 ist das Bezugszeichen 4101 eine CPU, Bezugszeichen 4102 ist ein Bus, Bezugszeichen 4300 ist ein Cache-Speicher-System in einem Kopier-zurück-System, Bezugszeichen 4104 ist ein Hauptspeicher, welcher aus Flash-Speicher-Chips besteht, worin ein Block aus m Bytes (wobei m eine ganze Zahl ist) besteht und Bezugszeichen 4105 ist ein Steuerschaltkreis. Das Cache-Speicher-System 4300 enthält ein Adressfeld 4310 zum Behalten von Adress-Information, einen Cache-Speicher 4320 zum Behalten von Daten und einen Adress-Vergleicher 4330 zum Vergleichen der Adressen im Adressfeld 4310 mit Adressen von der CPU 4101. Der Cache-Speicher zum Behalten von Daten, 4320, besteht aus n m-Byte-Registern 4321 (wobei n eine ganze Zahl ist). Das Adressfeld zum Behalten von Adressen, 4310, ist aus n-Registern 4311 gemacht, von denen jedes aus einem Adressfeld a zum Behalten von Adress-Information, einem Löschinformationsfeld b zum Behalten von Information, die angibt ob oder nicht der Block im Speicher 4104 entsprechend der Adress-Information, welche im Adressfeld a behalten wird, bereits gelöscht ist und ein Informationsfeld zur Aktualisierung c zum Behalten von Information, die angibt ob oder nicht das entsprechende Register im Adressfeld 4310 aktualisiert ist, besteht. Das Informationsfeld zur Aktualisierung c ist ein bereits existierendes Feld aber das Löschinformationsfeld bist ein neues Feld, welches von der Erfindung bereitgestellt wird. Bezugszeichen 4312 und 4322 sind Steuersignale des Adressfelds 4310 und des Cache-Speichers 4320.
  • 94 ist ein Verarbeitungs-Fluss-Diagramm des Steuerschaltkreises 4105 in 93. Das Beispielsystem in 93 und 94 nimmt an, dass die CPU 4101 stets auf den Speicher 4104 in Block-Größeneinheiten des Speichers 4104 zugreift.
  • Der Arbeitsablauf welcher in 94 gezeigt ist, wird besprochen.
  • Wenn ein Lesezugriff auf den Speicher 4104 von der CPU 4101 im Schritt 1 auftritt, wenn ein Cache-Treffer in Antwort auf ein Treffer-Bestimmungssignal 4331 vom Vergleicher 4330 im Schritt 2 bestimmt ist, werden Daten vom entsprechenden Register 4321 in den Cache-Speicher 4320 ausgegeben zum Bus 4102 im Schritt 21 und die CPU 4101 liest die Daten. Ebenso, falls ein Fehlschlag bei dem Lesezugriff bestimmt wurde, wenn es erkannt wurde, dass das Register 4321, in welches die Daten zurückgeschrieben werden sollen im Cache-Speicher 4320, nicht mit Information im Aktualisierungs-Informationsfeld c des Registers 4311 aktualisiert ist, ausgewählt gemäß einem Cache-Speicher-Ersatzalgorithmus im Schritt 22, Schritt 226, bei dem Daten im Register 4321 zurückgeschrieben werden in den Speicher 4104, wird ausgelassen und Daten im entsprechenden Block im Speicher 4104 werden zum Bus 4102 ausgegeben und Adressen und Daten werden in die entsprechenden Register 4311 bzw. 4321 im Cache-Speicher 4300 geschrieben im Schritt 227.
  • In der Beschreibung bezieht sich der Zustand, in welchem das Register 4321 nicht aktualisiert wird, auf einen Zustand, in welchem die Daten im entsprechenden Block im Speicher 4104 dieselben sind wie die Daten im Register 4321 gespeichert sind. Im Schritt 227 wird Information, welche ein nicht Aktualisieren anzeigt, in das Aktualisierungs-Informationsfeld c vom Register 4311 geschrieben. Nach Abschluss des Schrittes 227 wird die Ablaufsteuerung zum Schritt 1 zurückgegeben, bei welchem ein Warten durchgeführt wird, darauf, dass die CPU 4101 einen weiteren Zugriff durchführt.
  • Wenn ein Fehlschlag bei einem Lesezugriff bestimmt wird von der CPU 4101, wird erkannt, dass das Register 4321 im Cache-Speicher 4320 aktualisiert wird, von Information im Aktualisierungs-Informationsfeld c des Registers 4311, welches ausgewählt ist gemäß dem Ersatzalgorithmus im Schritt 22. Die Ablaufsteuerung geht zum Schritt 2226 über, in welchem ein Schreiben im entsprechenden Block im Speicher 4104 durchgeführt wird vom Register 4321, die aktualisierten Daten im Cache-Speicher werden nämlich zurückgeschrieben in den entsprechenden Block im Speicher 4104. Danach werden die Daten in dem Block im Speicher 4104, auf welche als Lesen von der CPU 4101 zugegriffen wird, ausgegeben zum Bus 4102 und zur selben Zeit werden die Daten und eine Adresse in die Register 4321 und 4311 geschrieben im Schritt 227. Wie oben beschrieben im Schritt 227 wird Information, welche ein nicht Aktualisieren anzeigt in das Aktualisierungs-Informationsfeld c des Registers 4311 geschrieben und nach Beendigung des Schrittes 227 wird die Ablaufsteuerung zum Schritt 1 zurückgegeben, bei wel chem ein Warten durchgeführt wird darauf, dass die CPU 4101 einen weiteren Zugriff durchführt.
  • Wenn ein Schreibzugriff auf den Speicher 4104 von der CPU 4101 im Schritt auftritt, falls ein Cache-Treffer im Schritt 3 bestimmt ist, werden eine Schreibadresse und Daten in Register 4311 und 4321 im Schritt 323 geschrieben.
  • Wenn ein Fehlschlag im Schritt 3 bestimmt ist und wenn erkannt wird, dass Daten, welche im Register 4321 zurückgehalten werden, bereits aktualisiert sind mit Information vom Aktualisierungs-Informationsfeld c des Registers 4311, welches ausgewählt ist gemäß dem Ersatzalgorithmus im Schritt 31, werden alle Daten im Register 4321 in den entsprechenden Block im Speicher 4104 im Schritt 322 zurückgeschrieben. Im Schritt 322 wird Information, welche ein nicht Löschen anzeigt ebenfalls in das Lösch-Informationsfeld b des Registers 4311 geschrieben. Nach Abschluss des Schritt 322 werden die Schreibadresse und Daten von der CPU 4101 in die Register 4311 und 4321 im Schritt 323 geschrieben. Im Schritt 323 wird Information, welche angibt, dass bereits aktualisiert wurde, ebenso in das Aktualisierungs-Informationsfeld c des Registers 4311 geschrieben.
  • Falls erkannt wird, dass die Daten, welche im Register 4321 behalten werden, nicht mit Information im Aktualisierungs-Informationsfeld c des Registers 4311 im Schritt 31 aktualisiert sind, geht die Ablaufsteuerung zum Schritt 323 über, weil ein Zurückschreiben der Daten im Schritt 322 nicht erforderlich ist.
  • Nach Abschluss des Schritts 323, wird bestimmt ob oder nicht der Block, der geschrieben werden soll, bereits gelöscht ist. Falls er nicht gelöscht ist, wird ein vorhergehender Löschvorgang des Blocks im Schritt 33 begonnen. Dann wird die Ablaufsteuerung zum Schritt 1 zurückgegeben, bei welchem ein Warten darauf durchgeführt wird, das die CPU 4101 einen neuen Zugriff durchführt.
  • Der Verarbeitungsfluss in 94 ist charakterisiert durch die Tatsache, dass der entsprechende Block in Speicher 4104 vorher im Schritt gelöscht wurde, nachdem die Register 4311 und 4321 im Schritt 323 aktualisiert wurden. In diesem Fall hätte ursprünglich ein Aktualisieren der Register 4311 und 4321 im Cache-Speicher im Kopier-zurück-System ausgereicht. Da jedoch Information, welche Aktualisiert angibt, im Aktualisierungs-Informationsfeld c, welches die Aktualisierung begleitet, gesetzt ist, wird der Inhalt des Registers 4321 künftig in den entsprechenden Block in Speicher 4104 zurückgeschrieben. Zu dieser Zeit wird ein Löschen des Blocks, bevor er zurückgeschrieben wird, erforderlich sein. Da der entsprechende Block, der künftig gelöscht werden wird, vorher in dem Beispielsystem gelöscht wurde, wird der Löschschritt, der durchgeführt werden sollte, bevor die Daten zurückgeschrieben werden, in einen neuen Block im Speicher 4101 (Schritt 322), wenn ein Fehlschlag auftritt beim nächsten oder späteren Schreibzugriff, nämlich ausgelassen, wird die Löschzeit gespart.
  • Unter Bezugnahme auf 99 wird die Wirkung dieses Beispielsystems beschrieben. Um die Zugriffszeit in einem herkömmlichen System mit der des Beispielsystems zu vergleichen, sei angenommen, dass die Block-Löschzeit 10 ms beträgt, dass die Schreibzeit in den Block 4 ms beträgt und dass die Aktualisierungszeit des Cache-Speichers, der in Schritt 98 gezeigt ist, 100 ns beträgt. Nun sei angenommen, dass die CPU 4101 einen Schreibzugriff auf den Speicher 4104 durchführt und dass ein Adress-Fehlschlag auftritt. In dem herkömmlichen System, wenn ein Adress-Fehlschlag auftritt, wird ein Löschen des Blocks, in welchen die Daten zurückgeschrieben werden sollen, von einem ausgewählten Datenregister (10 ms) begonnen, dann werden die Daten im Register 4321 im Cache-Speicher 4300 zurückgeschrieben in den Block in Speicher 4104 (4 ms) und darüber hinaus wird der Cache-Speicher 4300 aktualisiert (100 ns). Der Schreib zugriff ist jetzt abgeschlossen und die CPU 4101 beginnt die nächste Operation. Deshalb benötigt der Schreibzugriff ungefähr 14 ms insgesamt.
  • Im Gegensatz dazu, im Beispielsystem der Erfindung, wenn ein Adress-Fehlschlag auftritt, wurde der Block, in welchen Daten zurückgeschrieben werden sollen, bereits gelöscht, selbst wenn das ausgewählte Datenregister bereits aktualisiert ist (Zurückschreiben erforderlich). Deshalb kann der Schritt des Daten Zurückschreibens in den Block (4 ms) unmittelbar begonnen werden. Damit beträgt der Schreibzugriff im Beispielsystem ungefähr 4 ms insgesamt, womit gezeigt wird, dass die Schreibzugriffszeit um ungefähr 70% für die CPU 4101 zum Beginnen der nächsten Operation vermindert werden kann im Vergleich mit der des herkömmlichen Systems. Als der nächste Schritt wird ein Löschen des entsprechenden Blocks durchgeführt, wenn die Daten, die im Cache-Speicher 4300 aktualisiert werden, zurückgeschrieben werden.
  • 95 zeigt ein schematisches Block-Diagramm eines Beispielsystems, wenn die Größe von Zugriffsdaten im Speicher 4104 von der CPU 4101 kleiner ist als die Blockgröße des Speichers 4104. Elemente, welche identisch sind mit denen, die in 93 gezeigt sind, werden mit denselben Bezugszeichen wie in 95 bezeichnet.
  • In 95 ist Bezugszeichen 4113 ein Register, bestehend aus einem Adress-Informationsfeld a zum Behalten von Adress-Information, einem Aktualisierungs-Informationsfeld c zum Behalten von Information, welche angibt ob oder nicht das entsprechende Register 4321 im Cache-Speicher 4320 aktualisiert wurde und ein Aktualisierungsbereichs-Informationsfeld d zum Behalten von Information, die einen aktualisierten Bereich im Register 4321 angibt. Das Bezugszeichen 4350 ist ein Adress-Informationsregister, welches verwendet wird, um in den Speicher 4104 zu schreiben und das Bezugszeichen 4340 ist ein m-Byte- Datenregister, welches verwendet wird, um in den Speicher zu schreiben (m-Bytes entsprechen einem Block des Speichers 4104). n Adress-Informationsregister 4350 werden bereitgestellt entsprechend den Registern 4313 des Adressfelds 4310. Ebenso werden n Datenregister 4340 bereitgestellt in entsprechenden Registern 4321 des Cache-Speichers 4320.
  • 96 zeigt einen Arbeitsablauf des Steuerschaltkreises 4105 in 95. Der Arbeitsablauf wird besprochen. In dem Prozess, für die Block-Löschoperation im Beispielsystem in 93, werden lediglich Schritte, die unternommen werden für den Unterschied zwischen der Zugriffsdatengröße und der Blockgröße, beschrieben. Ein Arbeitsablauf, welcher die Block-Löschoperation beabsichtigt, wird unten beschrieben.
  • Wenn ein Lesezugriff zum Speicher 4104 von der CPU 4101 im Schritt 1 auftritt, wenn ein Cache-Treffer bestimmt wird in Antwort auf ein Treffer-Bestimmungssignal 4331 vom Vergleicher 4330 im Schritt 2, werden Daten in den entsprechenden Bereich des zugegriffenen Registers 4321 ausgegeben zum Bus 4102 im Schritt 21 und die CPU 4101 liest die Daten. Ebenso, wenn ein Fehlschlag im Lesezugriff im Schritt 2 bestimmt ist, wenn erkannt wird, dass das Register 4321, in welches die Daten zurückgeschrieben werden sollen, in dem Cache-Speicher 4320 nicht aktualisiert ist von Information im Aktualisierungs-Informationsfeld c des Registers 4313, welches ausgewählt ist gemäß einem Cache-Speicher-Ersatzalgorithmus im Schritt 22, werden alle Daten im Block des Speichers 4104, die der Leseadresse von der CPU 4101 entsprechen, in das Register 4321 im Schritt 224 geschrieben.
  • In der Spezifikation, wie oben beschrieben, bezieht sich der Zustand, in welchem das Register 4321 nicht aktualisiert wird, auf einen Zustand, in welchem die Daten, welche im Register 4321 gespeichert sind, dieselben sind wie die entspre chenden Daten im Speicher 4104. Beim Schritt 224 wird Information, welche nicht Aktualisieren anzeigt, in das Aktualisierungs-Informationsfeld e des Registers 4311 geschrieben. Nach Beendigung des Schritts 224 werden die zugegriffenen Daten im Register 4321, die von der CPU 4101 angefordert wurden, ausgegeben zum Bus 4102 im Schritt 225.
  • Falls erkannt wird, dass das Register 4321, in welches Daten zurückgeschrieben werden sollen, aktualisiert wurde im Schritt 22, werden alle Daten in den Block des Speichers 4104, in der Adress-Information im Register 4113 ausgelesen und in das Register 4340 geschrieben im Schritt 221. Nach Beendigung des Schritts 221 werden lediglich Daten, die im Register 432I aktualisiert wurden, in den entsprechenden Bereich des Registers 4240 geschrieben in Antwort auf Information im Aktualisierungsbereichs-Informationsfeld d des Registers 4313 und die Adress-Information im Register 4313 wird in das Register 4350 im Schritt 222 geschrieben. Nach Beendigung des Schritts 222 wird der Block des Speichers 4104, der der Adress-Information im Register 4350 entspricht, gelöscht und alle Daten im Register 4340 werden in den gelöschten Block im Schritt 223 geschrieben. Nach Beendigung des Schritts 223 geht die Ablaufsteuerung auf die Schritte 224 und 225 über. Nach Beendigung des Schritts 225 wird die Ablaufsteuerung an Schritt 1 zurückgegeben, in welchem ein Warten darauf durchgeführt wird, dass die CPU 4301 einen weiteren Zugriff durchführt.
  • Wenn ein Schreibzugriff auf den Speicher 4104 von der CPU 4101 im Schritt 1 auftritt, wenn ein Cache-Treffer im Schritt 3 bestimmt wird, geht die Ablaufsteuerung auf Schritt 314 über, in welchem Schreibdaten von der CPU 4101 in den entsprechenden Bereich des Registers 4321 geschrieben werden und Information, welche Aktualisiert anzeigt, wird in das Aktualisierungs-Informationsfeld c des Registers 4313 geschrieben und Information, welche den aktualisierten Bereich des Registers 4321 angibt, wird in das Aktualisierungsbereichs-Informationsfeld d geschrieben. Wenn ein Fehlschlag im Schritt 3 bestimmt wird und wenn erkannt wird, dass das Register 4321, in welches Daten zurückgeschrieben werden sollen, nicht aktualisiert wird von Information im Aktualisierungs-Informationsfeld c des Registers 4311 im Schritt 31, geht die Ablaufsteuerung über zum Schritt 314 und die Register werden aktualisiert wie oben beschrieben. Wie oben in der Spezifikation beschrieben bezieht sich der Zustand, in welchem das Register 4321 nicht aktualisiert wird, auf einen Zustand, in welchem die entsprechenden Daten im Speicher 4104 dieselben sind wie die Daten, die im Register 4321 gespeichert sind. Falls erkannt wird, dass das Register 4321, in welches Daten zurückgeschrieben werden sollen, im Speicher 4104 bereits aktualisiert wurden im Schritt 31, werden alle Daten in den Block des Speichers 4104, entsprechende Adress-Information im Register 4313 ausgelesen und in das Register 4340 geschrieben im Schritt 311. Nach Abschluss des Schritts 311, werden lediglich Daten im Register 4321 in den entsprechenden Bereich des Registers 4340 geschrieben in Antwort auf Information im Aktualisierungsbereichs-Informationsfeld d des Registers 4313 und die Adress-Information im Register 4313 wird in das Register 4350 geschrieben im Schritt 312. Nach Beendigung des Schritt 312 wird der Block des Speichers 4104, der der Adress-Information im Register 4350 entspricht, gelöscht und alle Daten im Register 4340 werden in den gelöschten Block im Schritt 313 geschrieben. Nach Beendigung des Schritts 313 geht die Ablaufsteuerung über zu Schritten 314 und die Register werden wie oben beschrieben aktualisiert. Nach Beendigung des Schritts 314 wird die Ablaufsteuerung zurückgegeben zum Schritt 1, in welchem ein Warten durchgeführt wird darauf, dass die CPU 4101 einen weiteren Zugriff durchführt.
  • Gemäß dem Beispielsystem, welches unter Bezugnahme auf 95 besprochen wird, selbst wenn die Größe des Schreibzugriffs von der CPU 4101 kleiner ist als die Blockgröße des Speichers 4104, werden Daten in dem Block, der zurückgeschrieben werden soll, zeitweise gespeichert in einem Register 4340 und lediglich der Blockteil, in welchen neue Daten geschrieben werden sollen, wird aktualisiert im Register 4340, dann werden alle Daten im Register 4340 in den entsprechen den Block im Speicher 4104 in einen Stapel geschrieben, womit ein partielles Schreiben ermöglicht wird. Selbst wenn die Größe eines Lesezugriffs von der CPU 4101 kleiner ist als die Blockgröße des Speichers 4104, werden alle Daten in einem gegebenen Block zeitweise gespeichert im Register 4321 und lediglich die entsprechenden Daten im Register 4321 werden ausgegeben zum Bus 4102, womit partielle Daten in dem Block ausgelesen werden können.
  • 100 ist ein Arbeitsablauf, der bereitgestellt wird durch Kombinieren der Schritte in 94 und 96 zur Betrachtung einer vorhergehenden Blocklöschung in 94 im Arbeitsablauf in 96. Deshalb wird das Lösch-Informationsfeld b, welches in 93 gezeigt ist, hinzugefügt zum Register 4313 in 95.
  • Schritte, welche identisch oder ähnlich sind mit denen, welche vorher beschrieben worden sind unter Bezugnahme auf 94 und 96, sind mit denselben Bezugszeichen in 100 bezeichnet. Schritt 223 in 96 wird ersetzt durch Schritt 801 und Schritt 322 in 94 und Schritt 313 in 96 werden ersetzt durch Schritt 802. Schritt 803 ist neu hinzugefügt vor Schritt 33 in 94. Der Ablauf erlaubt vorhergehendes Blocklöschen, falls die Größe eines Schreibzugriffs von der CPU 4101 kleiner ist als die Blockgröße des Speichers 4104.
  • Der Ablauf, in welchem ein Cache-Speicher-Treffer auftritt im Schritt 3, und die Information im Aktualisierungs-Informationsfeld b des entsprechenden Registers 4313 gibt an, dass der Block des Speichers 4104 entsprechend dem Speicher-Schreibzugriff nicht aktualisiert ist und somit ist ein Übergang der Ablaufsteuerung im Schritt 803 unter jeder der folgenden beiden Bedingungen möglich: In einer Bedingung, bevor ein Aktualisieren ausgeführt wird vom Treffer-Speicher-Schreibzugriff werden Schritte 224 und 225 ausgeführt von einem Fehlschlag-Lesezugriff, womit Daten vom Block des Speichers 4104 gelesen werden und die Daten im Register 4321 gespeichert werden. In diesem Fall wird der Leseblock des Speichers 4104 nicht gelöscht. Damit, falls ein Schreibzugriff durchgeführt wird auf dieselbe Adresse in dem Zustand, wird er zu einem Cache-Treffer-Speicher-Schreibzugriff und die Ablaufsteuerung geht zu Schritt 803 über vom Schritt 3. In der anderen Bedingung tritt ein Speicher-Schreibzugriff zum Speicher 4104 auf, wenn nur die Daten im Speicher 4104 gültig sind und die Daten in Cache-Speicher-Registern 4321, 4313, 4340, 4350 ungültig sind, nämlich im leeren Zustand, nachdem der Aus-zu-An-Übergang der Stromzufuhr durchgeführt wurde. Da zu dieser Zeit kein Registerersatz stattfindet, kann der Schreibzugriff als ein Cache-Treffer behandelt werden. Der entsprechende Block im Speicher 4104 wird lediglich gelöscht und ein Aktualisieren wird umgangen. Lediglich das entsprechende Register 4321 wird aktualisiert. Deshalb geht die Ablaufsteuerung zum Schritt 803 über vom Schritt 3.
  • Ein anderes Beispiel der vierten Ausführungsform wird besprochen unter Bezugnahme auf 101 bis 103. 101 ist eine Zeichnung, die zeigt, dass ein Bereich zum Sichern von Adressfelddaten im Flash-Speicher 4002 reserviert ist. Elemente, welche identisch sind mit denen die vorher beschrieben worden sind, werden mit denselben Bezugszeichen in 101 bezeichnet. In 101 ist Bezugszeichen 4201 ein Stromschalter des informationsverarbeitenden System. Der Stromschalter 4201 ist kein Schalter zum mechanischen Abschalten des Stroms und hat eine Funktion des Ausgebens eines Stromabschalt-Anforderungssignals 4202 zur CPU 4001 durch eine Stromversorgungseinheit 4204 des informationsverarbeitenden Systems. Wenn sie das Stromabschalt-Anforderungssignal 4202 empfängt, wird die CPU 4001 angepasst, eine Stromabschalt-Routine auszuführen. Das Bezugszeichen 4203 ist ein Adressfeld-Datenbereich, der reserviert ist im Flash-Speicher 4002. Das Bezugszeichen 4205 ist ein Stromabschalt-Freigabesignal, welches ausgegeben wird zur Stromversorgungseinheit 4204 von der CPU 4001. Das Stromabschalt-Freigabesignal 4205 wird nur dann negiert, wenn das informationsverarbeitende System arbeitet; wenn der Stromschalter 4201 ausgeschaltet wird und die CPU 4001 eine Ausführung der Stromabschalt- Routine beendet, wird das Signal 4205 bestimmt und zu dieser Zeit arbeitet die Stromversorgungseinheit 4204 so, dass sie die Stromzufuhr beendet. 102 ist eine Stromabschalt-Routine, welche durchgeführt wird, nachdem die CPU 4001 das Stromabschalt-Anforderungssignals 4202 empfängt.
  • Mit Bezugnahme auf 101 wird der Betrieb des Beispielsystems gemäß dem Ablauf in 102 beschrieben.
  • Es sei angenommen, dass die CPU 4001 das Stromabschalt-Anforderungssignal 4202 empfängt während sie eine gewisse Verarbeitung durchführt. Die augenblickliche Verarbeitung wird unterbrochen im Schritt a, mit Ausnahme, wenn die augenblickliche Verarbeitung nicht unterbrochen werden kann, weil sie auf eine externe Vorrichtung bezogen ist. Wenn sie nicht unterbrochen werden kann, fährt die CPU 4001 mit der augenblicklichen Verarbeitung fort, bis sie eine Bedingung erreicht, in welcher sie unterbrochen werden kann. Vorzugsweise sollte die Verarbeitung in jeder Bedingung unterbrechbar sein. Als Nächstes werden Schreibdaten von der CPU 4001, welche im Cache-Speicher 4003 gespeichert sind, zurückgeschrieben in den entsprechenden Bereich des Flash-Speichers 4002 durch Referenzieren des Adressfelds 4004 im Schritt b. Falls Schreibdaten und Lesedaten nicht unterschieden werden oder ein Prozess vereinfacht werden soll, können alle Daten im Cache-Speicher zurückgeschrieben werden. Es braucht jedoch Zeit und vorzugsweise werden lediglich Schreibdaten zurückgeschrieben. Als Nächstes werden Adressdaten, die im Adressfeld 4004 gespeichert sind, welche die entsprechenden Zwischendaten im Cache-Speicher 4003 und Daten im Flash-Speicher 4002 angeben, gesichert im Sicherungsbereich 4203 des Flash-Speichers 4002 im Schritt c. Nach Beendigung dieser Schritte gibt die CPU 4001 das Stromabschalt-Freigabesignal 4205 zur Stromversorgungseinheit 4204 im Schritt d. Wenn sie das Signal 4205 empfängt, beendet die Stromversorgungseinheit 4204 eine Stromzufuhr zu dem informationsverarbeitenden System im Schritt e.
  • Andererseits stellt 103 einen Ablauf dar, wenn eine Stromzufuhr begonnen wird. Mit Bezugnahme auf 101 wird der Ablauf besprochen. Zuerst, wenn der Stromschalter eingeschaltet wird, arbeitet die Stromversorgungseinheit 4204 bedingungslos so, dass sie Strom zum informationsverarbeitenden System im Schritt f liefert. Als Nächstes führt die CPU 4001 eine Initialisierungsverarbeitung durch, welche erforderlich ist für das informationsverarbeitende System im Schritt g, wie z. B. ein Prüfen des Betriebs der Vorrichtung und Setzen der internen Register. Als Nächstes werden die Daten im Adressfeld-Datensicherungsbereich 4203 des Flash-Speichers 4002 übertragen zum Adressfeld 4004 im Schritt h. Als Nächstes wird das Adressfeld 4 referenziert und die Daten, welche im Cache-Speicher 4003 gespeichert wurden, gerade bevor der Strom abgeschaltet wurde, werden herausgenommen vom entsprechenden Bereich des Flash-Speichers 4002 und im entsprechenden Bereich des Cache-Speichers 4003 gespeichert im Schritt i. Durch Ausführen dieser Schritte kann der Cache-Speicher leicht wieder hergestellt werden in den Zustand, bevor der Strom abgeschaltet wurde und kann antworten auf einen späteren Zugriff von der CPU mit einem hohen Treffer-Durchschnitt. Falls diese Schritte nicht ausgeführt werden, treten mehrere aufeinanderfolgende Fehlschläge auf beim Zugreifen für einige Zeit, nachdem der Strom wieder zugeführt wird, um das informationsverarbeitende System zu starten, womit eine beträchtliche Leistungsverminderung verursacht wird.
  • Ein flüchtiger Speicher wird verwendet als Adressfeld 4004 in den Beispielen. Wenn jedoch ein nicht-flüchtiger Speicher verwendet wird als das Adressfeld 4004, wird, nachdem der Strom wieder eingeschaltet ist, weder der Schritt des Sicherns der Daten, die im Adressfeld 4004 gespeichert sind; noch des wieder Herstellens der gesicherten Daten des Adressfelds 4004 erforderlich. In diesem Fall kann auf das Adressfeld 4004 vorzugsweise wahlfrei zugegriffen werden (sowohl zum Lesen als auch zum Schreiben), deshalb sollte ein SRAM oder FRAM (ferroelectric random access memory bzw. ferroelektrischer Speicher mit wahlfreiem Zugriff) mit Sicherungsleistung verwendet werden.
  • Ein Beispiel eines Systems zum Vermindern eines Schadens, wenn der Strom abrupt abgeschaltet wird, wird besprochen. Die Daten, die geschrieben werden von einem Schreibzugriff und im Cache-Speicher gespeichert werden, gehen verloren, wenn der Strom abgeschaltet wird, bevor die Daten zurückgeschrieben sind in den Flash-Speicher. Deshalb, wenn der Strom abgeschaltet wird, müssen die Daten im Flash-Speicher gespeichert werden. Um die Daten zu sichern, wenn der Strom abgeschaltet wird, wird eine Stromabschalt-Anforderung erkannt, bevor die tatsächliche Stromabschaltung ausgeführt wird, und nachdem die Daten im Flash-Speicher gespeichert sind wird der Strom abgeschaltet. Wird jedoch der Strom abrupt abgeschaltet, können die Daten nicht gespeichert werden im Flash-Speicher und die Daten, die im Cache-Speicher gespeichert sind, aber nicht in den Flash-Speicher zurückgeschrieben wurden, gehen verloren. Dies trifft ebenso auf das Sichern der Adressfelddaten im oben angegebenen Beispiel zu. Um so weit wie möglich zu verhindern, dass ein solcher Unfall passiert, werden die Daten im Cache-Speicher periodisch in den Flash-Speicher zurückgeschrieben.
  • 49 zeigt einen Aufbau für diesen Zweck, worin das Bezugszeichen 4211 ein Zeitgeber zum Messen der periodischen Zeit ist und Bezugszeichen 4212 ein Zeitgabe-Unterbrechungssignal darstellt zur CPU zu jeder gegebenen Zeitspanne. Andere Bezugszeichen sind dieselben wie diejenigen die früher besprochen wurden. Der Zeitgeber 4211 erzeugt das Zeitgabe-Unterbrechungssignal 4212 zu jeder gegebenen Zeitspanne und schickt es zu der CPU 4001. Wenn sie das Signal empfängt, schreibt die CPU 4001 die Daten, die im Cache-Speicher 4003 gespeichert sind, aber nicht in den Flash-Speicher 4002 zurückgeschrieben sind, in den entsprechenden Bereich des Flash-Speichers 4002.
  • Wenn die gegebene Zeitspanne, welche vom Taktgeber 4211 gemessen wird, kurz ist, tritt ein Zurückschreiben des Flash-Speichers 4002 häufig auf, womit der Flash-Speicher 4002 verschlechtert wird. Im Gegensatz dazu, wenn die Zeitspanne lang ist, wenn eine abrupte Stromabschaltung auftritt, wird die Wahrscheinlichkeit, dass die Daten verloren gehen und der Umfang der verlorenen Daten wird groß. Deshalb sollte das Zeitintervall so kurz wie möglich gemacht werden in dem Umfang, in dem der Flash-Speicher nicht zerstört wird. Vorzugsweise wird das Zeitintervall bestimmt durch die Anzahl der Male, mit denen der Flash-Speicher zurückgeschrieben werden kann, und durch die Lebensdauer des informationsverarbeitenden Systems. Ein Ausdruck zur Berechnung des Zeitintervalls wird unten gegeben:
  • Figure 01360001
  • Angenommen z. B., dass das informationsverarbeitende System durchschnittlich für acht Stunden am Tag benutzt wird und seine Ziellebensdauer fünf Jahre beträgt und dass die Zahl der Male, die ein Flash-Speicher zurückgeschrieben werden kann, 1 000 000 beträgt, können Daten alle 53 Sekunden gesichert werden. Falls die Daten, die im Adressfeld gespeichert sind, zur selben Zeit gesichert werden, selbst wenn ein flüchtiger Speicher als Adressfeld benutzt wird, wird die Wahrscheinlichkeit, dass die Daten verloren gehen, aufgrund einer abrupten Stromabschaltung niedrig und eine Erniedrigung der Trefferwahrscheinlichkeit unmittelbar nach einem Neustart kann vermieden werden.
  • Unnötig zu sagen, dass selbst, wenn das Beispielsystem bereitgestellt wird, die Schlussdaten gesichert werden sollten, wenn der Strom abgeschaltet wird.
  • Gemäß der Erfindung kann ein Flash-Speicher verwendet werden als Hauptspeicher in einem informationsverarbeitenden System, um die Wiederholungsfunktion und die Schnellstartfunktion ohne Sicherungsleistung bereitzustellen; ein Hauptspeicher mit großer Kapazität kann mit niedrigen Kosten aufgebaut werden.
  • Zu dieser Zeit wird eine sichere Verarbeitung beim Stromabschalten durchgeführt, um Datensicherheit zu gewährleisten. Weiterhin wird ein Schreibschutzmittel, welches zum Aufsetzen von Programmen verwendet wird, bereitgestellt, um die Sicherheit von Daten zu erhöhen.
  • Gemäß der Erfindung wird ein Speicherblock, der in der Zukunft gelöscht werden wird, vorher gelöscht, zusammen mit der Aktualisierung des Inhalts des Kopierzurück-Cache-Speichers, womit ein Zurückschreiben in den Block auftritt, ein Löschschritt wird ausgelassen und ein Schreibschritt kann unmittelbar begonnen werden. Deshalb kann die Zugriffszeit zu einem Speichersystem unter Verwendung eines Flash-Speichers vermindert werden. Es können Mittel bereitgestellt werden, die erlauben, dass Cache-Speicher-Daten wieder hergestellt werden, wenn der Strom zeitweise ab- und wieder angeschaltet wird, zur Verbesserung des Trefferdurchschnitts, nachdem der Strom wieder eingeschaltet wird.
  • Daten im Cache-Speicher oder im Adressfeld werden periodisch in den Flash-Speicher geschrieben, wobei die Daten nicht verloren gehen, oder der Umfang der verlorenen Daten vermindert werden kann, selbst wenn die Stromzufuhr abrupt beendet wird.

Claims (24)

  1. Ein Informationsverarbeitungssystem, umfassend: eine Zentraleinheit (4001), Eingabemittel zum Eingeben von Daten (4060), Ausgabemittel zum Ausgeben von Daten (4061), flüchtige Speichermittel zum Speichern von Daten (4003), nicht-flüchtige Speichermittel (4002), das in der Lage ist, gespeicherte Daten elektrisch zu löschen auf der Basis von Blöcken und welches in der Lage ist, gespeicherte Daten elektrisch zurückzuschreiben, welchen ein Adressraum zugeteilt ist, der zugänglich ist durch die Zentraleinheit, Datensteuermittel (4006), um mindestens Daten zu übertragen zwischen dem flüchtigen Speichermittel (4003) und dem nicht-flüchtigen Speichermittel (4002), Adressregistriermittel (4004) zum Registrieren von Adressen von Daten, die in dem flüchtigen Speichermittel gespeichert sind in dem nichtflüchtigen Speichermittel, und Adressvergleichsmittel (4005) zum Vergleichen der registrierten Adressen in dem Adressregistriermittel (4004) mit einer Adressausgabe von der Zentraleinheit (4001), um einen Datenzugriff durchzuführen, wobei beim Datenlesen und Datenschreiben, wenn die Adresse, die ausgegeben wird von der Zentraleinheit, um einen Datenzugriff zu machen, eingegeben wird in das Adressvergleichsmittel und das Adressvergleichsmittel einen Vergleich dazwischen durchführt und ein Vergleichsergebnis ausgibt, das Datensteuermittel (4006) bestimmt ob oder nicht die Adresse eine der Adressen ist, welche registriert ist in dem Adressregistriermittel in Antwort auf das Vergleichsergebnis, und wenn die Adresse eine der registrierten Adressen ist, auf die registrierte Adresse zugreift in dem flüchtigen Speichermittel (4003) und eine Löschverarbeitung durchführt für einen entsprechenden Schreibblock des nicht-flüchtigen Speichermittels (4002); im Gegensatz dazu, wenn die Adresse keine der registrierten Adressen darstellt, registriert es mindestens einen vorbestimmten Bereich von Adressen neu, welcher die Adresse in dem Adressregistriermittel (4004) enthält, erzeugt ein neues Datenspeichergebiet, welches den neu registrierten Adressen entspricht im flüchtigen Speichermittel (4003), und greift auf mindestens eine der neu registrierten Adressen zu.
  2. Informationsverarbeitungssystem gemäß Anspruch 1, weiter umfassend ein Zugriffsverlaufaufzeichnungsmittel zum Aufzeichnen von Zugriffsverlaufsinformation.
  3. Informationsverarbeitungssystem gemäß Anspruch 2, wobei, wenn sich das flüchtige Speichermittel (4003) mit Daten füllt und kein neues Datenspeichergebiet mehr enthält, das Datensteuermittel die Zugriffsverlaufsinformation referenziert im Zugriffsverlaufsaufzeichnungsmittel, um eine Adresse zu detektieren des letzten Zugriffs, welcher der älteste unter den aufgezeichneten Adressen ist, und es entfernt die Adresse von dem Adressregistriermittel (4004).
  4. Informationsverarbeitungssystem gemäß Anspruch 3, wobei das Datensteuermittel (4406) weiter Daten überträgt in das flüchtige Speichermittel (4003), welche der Adresse entsprechen, die entfernt wurde von dem Adressregistriermittel (4004) zu dem nicht-flüchtigen Speichermittel (4002).
  5. Informationsverarbeitungssystem gemäß Anspruch 1, wobei das nichtflüchtige Speichermittel (4002) aus einem fenoelektrischen Speicher mit wahlfreiem Zugriff (FRAM) gebildet ist.
  6. Informationsverarbeitungssystem gemäß Anspruch 1, weiter umfassend ein Netzabschaltmittel (4201), welches durch eine Netzabschaltoperation gestartet wird, wenn eine Stromversorgung (4204), welche dem System beigegeben ist, abgeschaltet wird, ein Sicherungsprozessmittel (4001), welches auf einen Netzabschaltprozess reagiert durch das Netzabschaltmittel (4201) zum Speichern von Information, welche den Inhalt interner Register umfasst, welche in dem Informationsverarbeitungssystem enthalten sind, und den Inhalt interner Register, welche im nicht-flüchtigen Speichermittel enthalten sind, und Mittel zum Anhalten der Stromversorgung des Systems bei Beendigung des Prozesses des Sicherungsprozessmittels (4001).
  7. Informationsverarbeitungssystem gemäß Anspruch 1, wobei das Datensteuermittel (4006) weiter einen Umfang von Daten überwacht, der in dem flüchtigen Speichermittel (4003) gespeichert ist und jedes mal ein ungespeichertes Datengebiet reserviert, welches eine Kapazität hat, die gleich oder größer als eine vorbestimmte Kapazität ist.
  8. Informationsverarbeitungssystem gemäß Anspruch 1, weiter umfassend ein Schreibsperrinformationsspeichermittel, in welchem ein Schreibsperrkennzeichen gesetzt werden kann, welches angibt, dass ein Datenschreiben gesperrt ist für jeden von einer Anzahl von Blöcken, in welche das nichtflüchtige Speichermittel (4002) eingeteilt ist, wobei, wenn Daten in einem Block gespeichert werden von dem nichtflüchtigen Speichermittel, das Schreibspenkennzeichen bereit gestellt wird, welches dem Block entspricht, dann gibt das Datensteuermittel (4006) eine Nachricht aus mit der Wirkung, dass eine Schreibanforderung in den Block an das Ausgabemittel (4061) gestellt wird.
  9. Informationsverarbeitungssystem gemäß Anspruch 1, wobei das nichtflüchtige Speichermittel (4002) aus einem Flash-Speicher gebildet wird.
  10. Informationsverarbeitungssystem, welches einen Flash-Speicher (4002) enthält, der verlangt, dass alle Daten in einem Schreibblock des Flash-Speichers gelöscht werden sollen, bevor Daten von einer CPU in einen Block geschrieben werden, wobei das Informationsverarbeitungssystem umfasst: einen flüchtigen Speicher (4003) in einem Rückkopiersystem, welches eine Vielzahl von Datengebieten aufweist, von denen jedes eine Kopie zurückbehält von Blockdaten in einem Teil des Flash-Speichers (4002); und Steuermittel (4006), wenn ein Speichertreffer auftritt bei einer Schreibverarbeitung in den Flash-Speicher (4002) von der CPU (4001), zum Aktualisieren von Daten in einer zugehörigen Datenregion des flüchtigen Speichers und zum Durchführen einer Löschverarbeitung für einen entsprechenden Schreibblock des Flash-Speichers (4002).
  11. Informationsverarbeitungssystem gemäß Anspruch 10, wobei der flüchtige Speicher (4403) ein Cache-Speicher ist.
  12. Informationsverarbeitungssystem gemäß Anspruch 11, wobei das Steuermittel (4006) den Löschprozess überspringt, wenn ein entsprechender Block des Flash-Speichers (4002) bereits gelöscht ist, selbst wenn ein Cache-Speichertreffer auftritt bei einer Schreibverarbeitung in den Flash-Speicher (4002) von der CPU (4001).
  13. Informationsverarbeitungssystem gemäß Anspruch 12, wobei der Cache-Speicher (4003) ein Mittel aufweist zum Zurückhalten von Löschinforma tion, welche angibt, ob oder nicht jeder Block des Flash-Speichers (4002), dessen Datenkopie zurückgehalten wird, im Cache-Speicher (4003) bereits gelöscht ist und das Steuermittel die Löschinformation referenziert zum Überspringen des Löschprozesses in Antwort auf das Referenzierergebnis.
  14. Informationsverarbeitungssystem gemäß Anspruch 11, wobei, wenn ein Cache-Speicher-(4003)-Ausfall auftritt bei einer Schreibverarbeitung in den Flash-Speicher (4002) von der CPU (4001), wenn ein Datengebiet des Cache-Speichers (4003), das ausgewählt ist, um eine Datenkopie zurückzuhalten in einem Schreibzielblock des Flash-Speichers (4002), nicht aktualisiert ist, das Steuermittel (4006) das Datengebiet aktualisiert mit Schreibdaten und Daten löscht in dem Schreibzielblock des Hauptspei- chers (4002).
  15. Informationsverarbeitungssystem gemäß Anspruch 14, wobei der Cache-Speicher (4003) ein Mittel aufweist zum Zurückhalten von Aktualisierungsinformation, welche angibt, ob oder nicht Daten in jedem Datenge biet aktualisiert wurden durch eine Schreibverarbeitung von der CPU (4001) und das Steuermittel (4006) die Aktualisierungsinformation referenziert zum Löschen der Daten in dem Block in Antwort auf das Referenzierergebnis.
  16. Informationsverarbeitungssystem gemäß Anspruch 11, weiter umfassend Mittel, wenn eine Größe von jedem Block des Flash-Speichers und eine Größe von jedem Datengebiet des Cache-Speichers jeweils m Bytes betragen (wobei m eine beliebige positive ganze Zahl ist) und die CPU (4001) Daten von einer geringeren Größe als m Bytes von dem Hauptspeicher (4002) liest, um temporär alle Daten in einem Block zu lesen, welche die Daten im Flash-Speicher (4002) enthalten, und lediglich die Daten zu selektieren, die von der CPU (4001) unter all den Daten in dem Block zum Ausgeben der ausgewählten Daten auf einen Bus (4102) angefordert werden.
  17. Informationsverarbeitungssystem gemäß Anspruch 11, wobei, wenn eine Größe von jedem Block des Flash-Speichers (4002) und eine Größe von jedem Datengebiet des Cache-Speichers (4003) jeweils m Bytes betragen (wobei m eine beliebige positive ganze Zahl ist) und die CPU (4001) Daten von. einer kleineren Größe schreibt als m Bytes vom Flash-Speicher (4002), das Speichermittel temporär alle Daten in einen entsprechenden Block des Flash-Speichers (4002) liest und die Daten nur in einem partiellen Gebiet, in welches die CPU (4001) Daten schreiben soll, aktualisiert und dann alle 1-Blockdaten in den entsprechenden Block des Flash-Speichers (4002) schreibt.
  18. Informationsverarbeitungssystem gemäß Anspruch 17, wobei der Cache-Speicher ein Mittel aufweist zum Zurückhalten von Aktualisierungsgebietsinformation, welche angibt, welches partielle Gebiet in jeder Datenregion aktualisiert wurde, und das Steuermittel die Aktualisierungsgebietsinformation referenziert zum Aktualisieren lediglich des partiellen Gebiets, in welches die CPU (4001) Daten schreiben soll in Antwort auf das Referenzierergebnis.
  19. Informationsverarbeitungssystem gemäß Anspruch 1, wobei, falls das Netz des Informationsverarbeitungssystems abgeschaltet wird, Daten im Adressregistriermittel (4004) mindestens zurückgehalten werden, bis wieder Strom zum Informationsverarbeitungssystem zugeführt wird.
  20. Informationsverarbeitungssystem gemäß Anspruch 18, wobei, wenn der Betrieb des Informationsverarbeitungssystems wieder gestartet wird durch Wiederzuführen von Strom, nachdem eine Stromversorgung (4204) des Informationssystems nicht vollständig gestoppt ist, die Daten, welche zu rückgehalten werden im Adressregistriermittel (4004), referenziert werden und Daten, die in einem Gebiet gespeichert sind des nicht-flüchtigen Speichermittels (4002), welches spezifiziert werden kann von den registrierten Adressdaten, transferiert werden zu und gespeichert werden in einem Gebiet des flüchtigen Speichermittels, welches spezifiziert werden kann von einer Stelle, in welcher das Adressregistriermittel die Adressdaten speichert, wobei Speicherinhalte des flüchtigen Speichermittels wiederhergestellt werden auf einen Zustand, zu dem die Stromversorgung augenblicklich gestoppt war.
  21. Informationsverarbeitungssystem gemäß Anspruch 1, wobei, wenn der Strom des Informationsverarbeitungssystems abgeschaltet wird, Daten im Adressregistriermittel (4004) übertragen und gespeichert werden an einer besonderen Stelle des nicht-flüchtigen Speichermittels (4002) zum Retten der Daten, die zurückgehalten sind im Adressregistriermittel (4004), und, wenn eine Stromzufuhr wieder gestartet wird, die geretteten Daten wiederhergestellt werden im Adressregistriermittel, womit verhindert wird, dass die Daten im Adressregistriermittel (4004) verloren sind.
  22. Informationsverarbeitungssystem gemäß Anspruch 1, wobei Daten, die im flüchtigen Speichermittel (4003) durch einen Schreibzugriff von der Zentraleinheit (4001) gespeichert sind, in das nicht-flüchtige Speichermittel (4002) zu jeder gegebenen Zeitspanne zurückgeschrieben werden.
  23. Informationsverarbeitungssystem gemäß Anspruch 22, wobei Daten im Adressregistriermittel (4004) ebenso gerettet werden im nicht-flüchtigen Speichermittel (4002), wenn die Daten, die gespeichert sind, im flüchtigen Speichermittel in das nicht-flüchtige Speichermittel (4002) zu jeder gegebenen Zeitspanne zurückgeschrieben werden.
  24. Informationsverarbeitungssystem gemäß Anspruch 1, wobei ein elektrisch wiederbeschreibbares, nicht-flüchtiges Speichermittel (4002), welches einen seriellen Puffer (4033) enthält, der eine Kapazität von einer Vielzahl von Bytes aufweist, um Daten ein-/auszugeben zu/von einem externen System, verwendet wird als das nicht-flüchtige Speichermittel und worin Daten von weniger Bytes als die Anzahl der Speicher-Bytes des seriellen Puffers (4033) übertragen werden vom nicht-flüchtigen Speichermittel (4002) zum flüchtigen Speichermittel (4003) und Daten-Bytes, welche gleich sind der Anzahl der Speicher-Bytes des seriellen Puffers (4033), übertragen werden vom flüchtigen Speichermittel (4003) zum nichtflüchtigen Speichermittel (4002).
DE69432878T 1993-04-08 1994-04-08 Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher Expired - Lifetime DE69432878T2 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
JP8164293 1993-04-08
JP8164293 1993-04-08
JP12240193A JPH06332806A (ja) 1993-05-25 1993-05-25 フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JP12240193 1993-05-25
JP17437293 1993-07-14
JP5174372A JPH0728690A (ja) 1993-07-14 1993-07-14 フラッシュメモリシステム
JP17561993A JPH0736759A (ja) 1993-07-15 1993-07-15 半導体ファイルシステム
JP17561993 1993-07-15
JP24652093 1993-10-01
JP24652093 1993-10-01

Publications (2)

Publication Number Publication Date
DE69432878D1 DE69432878D1 (de) 2003-08-07
DE69432878T2 true DE69432878T2 (de) 2004-05-27

Family

ID=27524933

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69432878T Expired - Lifetime DE69432878T2 (de) 1993-04-08 1994-04-08 Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher

Country Status (5)

Country Link
US (5) US5530673A (de)
EP (1) EP0619541B1 (de)
KR (1) KR970008188B1 (de)
DE (1) DE69432878T2 (de)
TW (1) TW403871B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004037785A1 (de) * 2004-08-03 2006-03-16 Endress + Hauser Gmbh + Co. Kg Feldgerät für die Automatisierungstechnik

Families Citing this family (343)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (de) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH07114500A (ja) * 1993-10-19 1995-05-02 Matsushita Electric Ind Co Ltd 不揮発性メモリ記憶装置
JP3154892B2 (ja) * 1994-05-10 2001-04-09 株式会社東芝 Icメモリカードおよびそのicメモリカードの検査方法
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5970251A (en) * 1994-06-16 1999-10-19 Robert Bosch Gmbh Process for optimizing program parts for motor vehicle controllers
EP0729609A1 (de) * 1994-09-19 1996-09-04 Koninklijke Philips Electronics N.V. Mikrokontrollersystem zum ausführen von behandlungen mehrerer mikrokontroller
ATE218003T1 (de) * 1995-02-10 2002-06-15 Micron Technology Inc Schneller leseverstärker für einen flash-speicher
US5682496A (en) 1995-02-10 1997-10-28 Micron Quantum Devices, Inc. Filtered serial event controlled command port for memory
US6108237A (en) 1997-07-17 2000-08-22 Micron Technology, Inc. Fast-sensing amplifier for flash memory
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
US6223311B1 (en) * 1995-03-15 2001-04-24 Hitachi, Ltd. Semiconductor memory device having deterioration determining function
JP3364356B2 (ja) * 1995-03-30 2003-01-08 富士通株式会社 メモリ書替え装置
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
DE19539746A1 (de) * 1995-10-26 1997-04-30 Sel Alcatel Ag Rechner
JPH09282103A (ja) * 1995-12-22 1997-10-31 Ricoh Co Ltd 情報処理装置
US5829013A (en) 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
JP3140957B2 (ja) * 1996-02-16 2001-03-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション デイスク装置およびデイスク装置におけるエラー処理方法
JPH09237162A (ja) * 1996-02-23 1997-09-09 Hewlett Packard Co <Hp> 走査型データ記憶システム、及びその針摩耗管理方法、媒体摩耗管理方法、並びに残存寿命表示装置
JP2792501B2 (ja) * 1996-02-28 1998-09-03 日本電気株式会社 データ転送方式およびデータ転送方法
AU3832297A (en) 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
JPH09288888A (ja) * 1996-04-22 1997-11-04 Mitsubishi Electric Corp 半導体記憶装置
US6243667B1 (en) * 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
JPH1021012A (ja) * 1996-06-28 1998-01-23 Toshiba Corp 磁気ディスク装置及び同装置のコマンド処理方法
KR980013092A (ko) 1996-07-29 1998-04-30 김광호 교환시스템의 화일관리장치 및 방법
KR100260028B1 (ko) * 1996-08-13 2000-06-15 윤종용 화일시스템의 정보 복구방법
JPH1069420A (ja) * 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
EP0834812A1 (de) * 1996-09-30 1998-04-08 Cummins Engine Company, Inc. Verfahren zum Zugreifen auf einen Flash-Speicher und elektronisches Steuersystem eines Kraftfahrzeuges
GB2317722B (en) * 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US6031757A (en) * 1996-11-22 2000-02-29 Macronix International Co., Ltd. Write protected, non-volatile memory device with user programmable sector lock capability
WO1998022950A1 (en) * 1996-11-22 1998-05-28 Macronix International Co., Ltd. Write protected, non-volatile memory device with user programmable sector lock capability
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6182188B1 (en) 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6088759A (en) * 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
JPH10341396A (ja) * 1997-04-09 1998-12-22 Seiko Epson Corp デジタルカメラの機能付加方法およびデジタルカメラ
KR100251636B1 (ko) * 1997-04-10 2000-05-01 윤종용 소형컴퓨터시스템인터페이스방식접속을위한메모리장치
US6175891B1 (en) * 1997-04-23 2001-01-16 Micron Technology, Inc. System and method for assigning addresses to memory devices
US6694460B2 (en) 1997-09-11 2004-02-17 Renesas Technology Corporation Semiconductor memory device having deterioration determining function
JP2914360B2 (ja) 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6262937B1 (en) 1998-03-13 2001-07-17 Cypress Semiconductor Corp. Synchronous random access memory having a read/write address bus and process for writing to and reading from the same
US6262936B1 (en) 1998-03-13 2001-07-17 Cypress Semiconductor Corp. Random access memory having independent read port and write port and process for writing to and reading from the same
US6157979A (en) * 1998-03-14 2000-12-05 Advanced Technology Materials, Inc. Programmable controlling device with non-volatile ferroelectric state-machines for restarting processor when power is restored with execution states retained in said non-volatile state-machines on power down
US6069839A (en) * 1998-03-20 2000-05-30 Cypress Semiconductor Corp. Circuit and method for implementing single-cycle read/write operation(s), and random access memory including the circuit and/or practicing the method
JP3730423B2 (ja) * 1998-11-24 2006-01-05 富士通株式会社 半導体記憶装置
JP3242890B2 (ja) * 1998-12-16 2001-12-25 株式会社ハギワラシスコム 記憶装置
KR100284430B1 (ko) * 1998-12-18 2001-04-02 구자홍 프로그램 갱신 방법 및 장치
JP4135049B2 (ja) * 1999-03-25 2008-08-20 ソニー株式会社 不揮発性メモリ
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US6754680B1 (en) * 1999-05-20 2004-06-22 Matsushita Electric Industrial Co., Ltd. Data control equipment, method to control data and recording medium to record data control procedure
JP4074029B2 (ja) * 1999-06-28 2008-04-09 株式会社東芝 フラッシュメモリ
US6839782B1 (en) * 1999-07-30 2005-01-04 Emc Corporation Computer storage system incorporating on-board EEPROMS containing product data
US6636963B1 (en) * 1999-12-30 2003-10-21 Cardiac Pacemakers, Inc. Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
KR100380250B1 (ko) * 2000-02-21 2003-04-18 트렉 2000 인터네셔널 엘티디. 휴대용 데이터 저장장치
EP1168259A3 (de) * 2000-06-28 2003-12-17 Hitachi, Ltd. Datenverwaltungssystem und Verfahren für eine Chip-Karte
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US6993887B2 (en) * 2000-08-07 2006-02-07 Dsd Communications, Inc. System and method for including packets with goods during automated packaging
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6795896B1 (en) * 2000-09-29 2004-09-21 Intel Corporation Methods and apparatuses for reducing leakage power consumption in a processor
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US6970891B1 (en) * 2000-11-27 2005-11-29 Microsoft Corporation Smart card with volatile memory file subsystem
US6868496B2 (en) * 2001-01-16 2005-03-15 Gateway, Inc. Host protected area (HPA) duplication process
CZ300977B6 (cs) * 2001-02-26 2009-09-30 Iss Europe, Spol. S R.O. Radic se sbernicemi PCI a SCSI a výpocetní systém s elektronickým polovodicovým diskem
US20020194186A1 (en) * 2001-03-27 2002-12-19 Foundation Software, Inc. Report design and data manipulation system and method of operation
US20020156983A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method and apparatus for improving reliability of write back cache information
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
CN1220328C (zh) * 2001-06-21 2005-09-21 株式会社村田制作所 噪声滤波器
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
US7809806B1 (en) 2001-08-02 2010-10-05 Cisco Technology, Inc. Neighbor discovery using address registration protocol over ELMI
JP3979486B2 (ja) * 2001-09-12 2007-09-19 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB2411499B (en) * 2001-09-28 2006-02-08 Lexar Media Inc Method of writing data to non-volatile memory
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
JP4408601B2 (ja) * 2001-12-27 2010-02-03 富士通株式会社 情報再生装置およびセキュアモジュール
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
ATE401599T1 (de) * 2002-04-30 2008-08-15 Lexar Media Inc Dateienverwaltung für einmalig programmierbare nichtflüchtige speicheranordnungen
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
JP4086584B2 (ja) * 2002-08-08 2008-05-14 富士通株式会社 試験工程を簡略化できるメモリカード及びメモリカードの試験方法
US20040039871A1 (en) * 2002-08-26 2004-02-26 Colin Stobbs Replacement memory device
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US20040049628A1 (en) * 2002-09-10 2004-03-11 Fong-Long Lin Multi-tasking non-volatile memory subsystem
JP4129381B2 (ja) * 2002-09-25 2008-08-06 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
CN101231618B (zh) * 2002-10-02 2012-06-13 松下电器产业株式会社 非易失性存储器装置的控制方法
TWI236004B (en) * 2002-10-15 2005-07-11 Mediatek Inc Method and system for background formatting in optical recording medium
US20040088474A1 (en) * 2002-10-30 2004-05-06 Lin Jin Shin NAND type flash memory disk device and method for detecting the logical address
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
US7155357B2 (en) * 2003-01-09 2006-12-26 Silicon Storage Technology, Inc. Method and apparatus for detecting an unused state in a semiconductor circuit
US20040139307A1 (en) * 2003-01-09 2004-07-15 Barnett Philip C. Method and apparatus for initializing a semiconductor circuit from an external interface
US6928511B2 (en) * 2003-03-03 2005-08-09 High Tech Computer, Corp. Method and system for managing virtual memory
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
KR100560851B1 (ko) * 2003-09-03 2006-03-17 주식회사 이온라이트 음이온 발생과 대기정화 기능을 갖는 삼파장 램프
JP4412947B2 (ja) * 2003-09-08 2010-02-10 株式会社ルネサステクノロジ メモリカード
EP2157505A1 (de) * 2003-09-18 2010-02-24 Panasonic Corporation Halbleiter-Speicherkarte, Halbleiter-Speichersteuervorrichtung und Halbleiter-Speichersteuerverfahren
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
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
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
KR100966895B1 (ko) * 2004-01-06 2010-06-30 삼성전자주식회사 불휘발성 메모리의 테스트 장치 및 방법
JP4679370B2 (ja) * 2004-02-03 2011-04-27 パナソニック株式会社 データ処理装置並びにメモリカードの設定方法
KR101085406B1 (ko) * 2004-02-16 2011-11-21 삼성전자주식회사 불 휘발성 메모리를 제어하기 위한 컨트롤러
US7295049B1 (en) * 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
JP4212503B2 (ja) * 2004-03-30 2009-01-21 シャープ株式会社 制御システム、制御装置、記憶装置、及びコンピュータプログラム
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US20050246494A1 (en) * 2004-05-03 2005-11-03 Leon Jose L Jr Data storage arrangement and method for storing and transferring data
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
JP4214978B2 (ja) * 2004-05-18 2009-01-28 ソニー株式会社 半導体記憶装置および信号処理システム
US20080126449A1 (en) * 2004-07-07 2008-05-29 Koninklijke Philips Electronics, N.V. Method of Distributing Data Files and Memory System for Storing Data Files
WO2006009069A1 (ja) * 2004-07-21 2006-01-26 Matsushita Electric Industrial Co., Ltd. 半導体記憶装置、書き換え処理方法およびプログラム
US7562202B2 (en) * 2004-07-30 2009-07-14 United Parcel Service Of America, Inc. Systems, methods, computer readable medium and apparatus for memory management using NVRAM
US20110029723A1 (en) * 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
US7398348B2 (en) * 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
JP5007485B2 (ja) * 2004-08-26 2012-08-22 ソニー株式会社 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP4956922B2 (ja) * 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7529921B2 (en) * 2004-12-17 2009-05-05 Cardiac Pacemakers, Inc. Fast initialization of medical device system having multiple operating systems
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7332976B1 (en) * 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
JP4871260B2 (ja) * 2005-03-03 2012-02-08 パナソニック株式会社 メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
JP2006294143A (ja) * 2005-04-12 2006-10-26 Toshiba Corp 不揮発性半導体記憶装置
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US7788668B2 (en) * 2005-06-09 2010-08-31 Lockheed Martin Corporation System and method for implementing distributed priority inheritance
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
JP2007035179A (ja) * 2005-07-28 2007-02-08 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US8230175B1 (en) * 2005-08-09 2012-07-24 Hewlett-Packard Development Company, L.P. Data throughput optimization of a storage device having sequential data access
US7362611B2 (en) * 2005-08-30 2008-04-22 Micron Technology, Inc. Non-volatile memory copy back
JP5008845B2 (ja) 2005-09-01 2012-08-22 株式会社日立製作所 ストレージシステムとストレージ装置及びその制御方法
US7426605B2 (en) * 2005-09-30 2008-09-16 Rudelic John C Method and apparatus for optimizing flash device erase distribution
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
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
TWI282140B (en) * 2005-11-10 2007-06-01 Realtek Semiconductor Corp Display controller and method for updating parameters of the same
CN101176074B (zh) * 2005-12-09 2010-12-15 松下电器产业株式会社 非易失性存储器件,写入数据的方法,和读出数据的方法
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
JP5065618B2 (ja) * 2006-05-16 2012-11-07 株式会社日立製作所 メモリモジュール
US8307148B2 (en) 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
US20090282185A1 (en) * 2006-06-30 2009-11-12 Nxp B.V. Flash memory device and a method for using the same
KR101134743B1 (ko) * 2006-07-11 2012-04-13 엘지전자 주식회사 휴대용 전자 기기의 배터리 전원 부족시의 비상 데이터송수신 장치 및 방법
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
JP2008090477A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報記録装置、情報処理装置および書き込み制御方法
JP2008097736A (ja) * 2006-10-13 2008-04-24 Spansion Llc 半導体装置およびその制御方法
DE102007052107B4 (de) * 2006-11-02 2017-09-21 Hitachi, Ltd. Elektronische Steuerungseinrichtung und Verfahren zum Eintragen von Backup-Daten in dieselbe
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
JP5103668B2 (ja) * 2006-11-30 2012-12-19 株式会社メガチップス 半導体メモリおよび情報処理システム
KR100818802B1 (ko) * 2007-01-03 2008-04-02 삼성전자주식회사 파워다운 응답신호를 발생하는 반도체 메모리 장치 및 상기반도체 장치의 파워다운 방법
TW200832440A (en) * 2007-01-25 2008-08-01 Genesys Logic Inc Flash memory translation layer system
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US8752396B2 (en) * 2007-02-23 2014-06-17 Bosch Automotive Service Solutions, LLC Component identification system and method
JP2008251138A (ja) 2007-03-30 2008-10-16 Toshiba Corp 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード
US7737724B2 (en) * 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8111577B2 (en) 2007-04-17 2012-02-07 Cypress Semiconductor Corporation System comprising a state-monitoring memory element
US8040266B2 (en) * 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
KR101434567B1 (ko) * 2007-05-18 2014-08-27 삼성전자 주식회사 비휘발성 메모리의 맵핑 테이블 관리 장치 및 방법
US7752383B2 (en) * 2007-05-25 2010-07-06 Skymedi Corporation NAND flash memory system with programmable connections between a NAND flash memory controller and a plurality of NAND flash memory modules and method thereof
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US7890690B2 (en) * 2007-06-07 2011-02-15 International Business Machines Corporation System and method for dual-ported flash memory
US20090006720A1 (en) * 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US7770079B2 (en) * 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory
US8788740B2 (en) * 2007-12-21 2014-07-22 Spansion Llc Data commit on multicycle pass complete without error
US8566431B2 (en) * 2008-01-16 2013-10-22 Razer (Asia-Pacific) Pte. Ltd. Identification device and method for device identification
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP5010505B2 (ja) 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP2009230414A (ja) * 2008-03-21 2009-10-08 Toshiba Corp 複数の不揮発性メモリデバイスを有する記憶装置
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
JP5075761B2 (ja) 2008-05-14 2012-11-21 株式会社日立製作所 フラッシュメモリを用いたストレージ装置
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8176233B1 (en) * 2008-07-17 2012-05-08 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US20100073379A1 (en) * 2008-09-24 2010-03-25 Sadan Eray Berger Method and system for rendering real-time sprites
US8325541B2 (en) * 2008-10-15 2012-12-04 SK Hynix Inc. Non-volatile semiconductor memory apparatus
US8149643B2 (en) 2008-10-23 2012-04-03 Cypress Semiconductor Corporation Memory device and method
US20100146239A1 (en) * 2008-12-08 2010-06-10 Infinite Memories Ltd. Continuous address space in non-volatile-memories (nvm) using efficient embedded management of array deficiencies
US9092387B2 (en) * 2008-12-10 2015-07-28 Micron Technology, Inc. Non-volatile memory device capable of initiating transactions
CN101552032B (zh) * 2008-12-12 2012-01-18 深圳市晶凯电子技术有限公司 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
TWI417884B (zh) * 2009-04-23 2013-12-01 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8495467B1 (en) 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US8412985B1 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
KR101581857B1 (ko) * 2009-08-06 2015-12-31 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US8743629B2 (en) 2009-08-31 2014-06-03 Sandisk Il Ltd. Preloading data into a flash storage device
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
US8250319B2 (en) * 2009-09-29 2012-08-21 Freescale Semiconductor, Inc. Operating an emulated electrically erasable (EEE) memory
WO2011046217A1 (ja) * 2009-10-15 2011-04-21 株式会社エルイーテック マイクロコンピュータ及びその動作方法
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
TWI417889B (zh) * 2009-12-30 2013-12-01 Silicon Motion Inc 快閃記憶體之寫入逾時控制方法及其記憶裝置
ES2583327T3 (es) * 2010-02-02 2016-09-20 Adc Telecommunications, Inc. Mazo de cables de fibra óptica con conectores escalonados
JP5612508B2 (ja) * 2010-03-25 2014-10-22 パナソニック株式会社 不揮発性メモリコントローラ及び不揮発性記憶装置
CN102207875B (zh) * 2010-03-30 2014-11-12 鸿富锦精密工业(深圳)有限公司 媒体数据播放装置及其重新启动方法
DE102010028231A1 (de) * 2010-04-27 2011-10-27 Robert Bosch Gmbh Speichermodul zur gleichzeitigen Bereitstellung wenigstens eines sicheren und wenigstens eines unsicheren Speicherbereichs
US8683148B2 (en) 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
JP5601053B2 (ja) * 2010-07-02 2014-10-08 富士通株式会社 制御装置、制御モジュールおよび制御方法
KR20120070408A (ko) * 2010-12-21 2012-06-29 에스케이하이닉스 주식회사 블록을 관리하는 비휘발성 메모리 장치의 제어 방법
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8645773B2 (en) * 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US8593866B2 (en) * 2011-11-11 2013-11-26 Sandisk Technologies Inc. Systems and methods for operating multi-bank nonvolatile memory
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
TWI459201B (zh) * 2012-04-27 2014-11-01 Toshiba Kk Information processing device
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US20140013031A1 (en) * 2012-07-09 2014-01-09 Yoko Masuo Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus
CN104583973B (zh) 2012-08-07 2017-09-08 松下知识产权经营株式会社 记录装置、记录系统以及记录方法
US9141537B2 (en) * 2012-10-30 2015-09-22 Mangstor, Inc. Magnetic random access memory journal
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9792989B2 (en) * 2013-02-07 2017-10-17 Toshiba Memory Corporation Memory system including nonvolatile memory
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
KR102101304B1 (ko) 2013-03-15 2020-04-16 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
CN103927128B (zh) * 2013-07-11 2017-03-01 威盛电子股份有限公司 数据储存装置以及快闪存储器控制方法
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
JP5889848B2 (ja) * 2013-08-28 2016-03-22 京セラドキュメントソリューションズ株式会社 情報処理端末、印刷用プログラム、印刷装置及び印刷システム
US20150095551A1 (en) * 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
WO2015145932A1 (ja) * 2014-03-28 2015-10-01 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
JP6593978B2 (ja) * 2014-06-09 2019-10-23 キヤノン株式会社 印刷装置、その制御方法とプログラム
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9753793B2 (en) 2014-06-30 2017-09-05 Intel Corporation Techniques for handling errors in persistent memory
JP6448254B2 (ja) * 2014-08-19 2019-01-09 ラピスセミコンダクタ株式会社 メモリ制御装置及びメモリ制御方法
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
TWI534618B (zh) * 2015-07-13 2016-05-21 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
US9632869B1 (en) * 2015-09-08 2017-04-25 Xilinx, Inc. Error correction for interconnect circuits
CN109348730B (zh) 2015-09-18 2022-05-24 株式会社日立制作所 存储器控制器、存储器控制方法以及半导体存储装置
US10261707B1 (en) * 2016-03-24 2019-04-16 Marvell International Ltd. Decoder memory sharing
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
JP6734536B2 (ja) * 2016-07-29 2020-08-05 富士通株式会社 情報処理装置及びメモリコントローラ
KR102456173B1 (ko) * 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US20210055882A1 (en) * 2019-08-22 2021-02-25 Micron Technology, Inc. Hierarchical memory apparatus
TWI735984B (zh) * 2019-10-23 2021-08-11 瑞昱半導體股份有限公司 資料收發裝置及其操作方法
CN112749118B (zh) * 2019-10-29 2024-03-29 瑞昱半导体股份有限公司 数据收发装置及其操作方法
JP7366795B2 (ja) 2020-02-14 2023-10-23 キオクシア株式会社 メモリシステムおよび制御方法
US11507294B2 (en) * 2020-10-22 2022-11-22 EMC IP Holding Company LLC Partitioning a cache for fulfilling storage commands

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2840305C3 (de) * 1978-09-15 1981-03-26 Siemens AG, 1000 Berlin und 8000 München Verfahren zum Programmieren von wiederholt beschreibbaren Festwertspeichern
DE3200872A1 (de) * 1982-01-14 1983-07-21 Sartorius GmbH, 3400 Göttingen Elektronische waage
US4530054A (en) * 1982-03-03 1985-07-16 Sperry Corporation Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory
NL8202365A (nl) * 1982-06-11 1984-01-02 Philips Nv Serie-parallel-serie schuifregistergeheugen, hetwelk redundante parallelgeschakelde opslagregisters bevat, en afbeeldtoestel, voorzien van een zodanig georganiseerd beeldgeheugen.
JPS60179857A (ja) * 1984-02-28 1985-09-13 Fujitsu Ltd キヤツシユ装置の制御方式
JP3099046B2 (ja) 1985-08-09 2000-10-16 株式会社日立製作所 不揮発性記憶装置
JPH01106152A (ja) 1987-10-20 1989-04-24 Casio Comput Co Ltd データ記憶方式
US4899272A (en) * 1987-10-23 1990-02-06 Chips & Technologies, Inc. Addressing multiple types of memory devices
US4924375A (en) * 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
JPH01235075A (ja) * 1988-03-14 1989-09-20 Fuji Xerox Co Ltd ディスクメモリ制御装置
KR0135082B1 (ko) 1988-04-28 1998-04-20 오가 노리오 정보 기억방법 및 그 장치
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
JPH02189790A (ja) * 1989-01-18 1990-07-25 Mitsubishi Electric Corp ダイナミック形半導体記憶装置
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
US5535328A (en) * 1989-04-13 1996-07-09 Sandisk Corporation Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells
JPH0325798A (ja) * 1989-06-23 1991-02-04 Ricoh Co Ltd Eepromを使用した記憶装置
JPH0330034A (ja) * 1989-06-28 1991-02-08 Hitachi Ltd 光デイスクフアイル管理方法
US5065364A (en) * 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
JPH03283094A (ja) * 1990-03-29 1991-12-13 Nec Corp 半導体メモリ
JPH0498342A (ja) 1990-08-09 1992-03-31 Mitsubishi Electric Corp 半導体記憶装置
JPH04123243A (ja) * 1990-09-14 1992-04-23 Toshiba Corp データ書込装置
US5222109A (en) * 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JP3137993B2 (ja) * 1991-01-16 2001-02-26 富士通株式会社 不揮発性半導体記憶装置
US5295255A (en) * 1991-02-22 1994-03-15 Electronic Professional Services, Inc. Method and apparatus for programming a solid state processor with overleaved array memory modules
JPH04281541A (ja) 1991-03-11 1992-10-07 Fujitsu Ltd 書込回数制限付記憶装置への書込方式
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
FR2675287B1 (fr) * 1991-04-15 1993-06-18 Bull Sa Circuit coupleur et son utilisation dans une carte et procede.
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP2549034B2 (ja) * 1991-07-22 1996-10-30 株式会社メルコ 記憶装置
US5245572A (en) * 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
JP3163124B2 (ja) 1991-08-09 2001-05-08 株式会社東芝 電子スチルカメラ装置
JPH0546490A (ja) 1991-08-09 1993-02-26 Toshiba Corp メモリカード装置
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US5263003A (en) * 1991-11-12 1993-11-16 Allen-Bradley Company, Inc. Flash memory circuit and method of operation
JP3231832B2 (ja) * 1991-11-26 2001-11-26 株式会社日立製作所 フラッシュメモリを記憶媒体とした半導体ディスク
JP3122201B2 (ja) * 1991-11-30 2001-01-09 株式会社東芝 メモリカード装置
US5267218A (en) * 1992-03-31 1993-11-30 Intel Corporation Nonvolatile memory card with a single power supply input
US5341489A (en) * 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
KR0121800B1 (ko) * 1992-05-08 1997-11-22 사또오 후미오 메모리 카드장치
US5280447A (en) * 1992-06-19 1994-01-18 Intel Corporation Floating gate nonvolatile memory with configurable erasure blocks
JP3328605B2 (ja) * 1992-06-22 2002-09-30 株式会社日立製作所 半導体記憶装置
JP3328321B2 (ja) 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5437020A (en) 1992-10-03 1995-07-25 Intel Corporation Method and circuitry for detecting lost sectors of data in a solid state memory disk
JP3105092B2 (ja) 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
JP3283094B2 (ja) 1993-03-31 2002-05-20 太平洋セメント株式会社 混合セメント
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
JPH0955091A (ja) * 1995-08-07 1997-02-25 Fujitsu Ltd フラッシュメモリ装置
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
JPH11175311A (ja) * 1997-12-05 1999-07-02 Tdk Corp フラッシュメモリシステム
JP2000349853A (ja) * 1999-06-01 2000-12-15 Victor Co Of Japan Ltd データ伝送方法
JP2001034822A (ja) * 1999-07-22 2001-02-09 Sanden Corp 自動販売機の制御装置
US6147618A (en) * 1999-09-15 2000-11-14 Ilife Systems, Inc. Apparatus and method for reducing power consumption in physiological condition monitors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004037785A1 (de) * 2004-08-03 2006-03-16 Endress + Hauser Gmbh + Co. Kg Feldgerät für die Automatisierungstechnik

Also Published As

Publication number Publication date
EP0619541A3 (de) 1995-03-01
DE69432878D1 (de) 2003-08-07
EP0619541A2 (de) 1994-10-12
US20020051394A1 (en) 2002-05-02
TW403871B (en) 2000-09-01
US5973964A (en) 1999-10-26
US6421279B1 (en) 2002-07-16
US6275436B1 (en) 2001-08-14
US5530673A (en) 1996-06-25
US5862083A (en) 1999-01-19
KR970008188B1 (ko) 1997-05-21
EP0619541B1 (de) 2003-07-02

Similar Documents

Publication Publication Date Title
DE69432878T2 (de) Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102017128952B4 (de) Datenspeichervorrichtung, die konfiguriert ist, um eine nicht-blockierende Steuerungs-Aktualisierungsoperation auszuführen
DE102017124079B4 (de) Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE69827949T2 (de) Gerät und verfahren um speicherfehler zu erkennen und zu berichten
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102018105773A1 (de) Handhabung einer thermischen Abschaltung für Speichervorrichtungen
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112006001636T5 (de) Technik zum Beschreiben eines nicht-flüchtigen Speichers
DE112015004863T5 (de) Verfolgen der Vermischung von Schreibvorgängen und Entabbildungsbefehlen über Stromversorgungszyklen
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE112012004571T5 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE102005025399A1 (de) System und Verfahren zur SCSI- und SAS-Hardwarevalidierung
DE102004036323A1 (de) Erweiterte Speicherverwaltungsarchitektur für große Datenumfänge
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102016010276A1 (de) Verfahren und systeme zur verbesserung von flash-speicher-leerung
DE102020202379A1 (de) Speichersystem, speicher-controller und deren betriebsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition