-
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 (1020–1023)
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:
-
-
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.