-
Die
vorliegende Erfindung betrifft ein Halbleiterplattenlaufwerk, das
mit einer Zentralvorrichtung verbunden ist, die aus Informationsverarbeitungsvorrichtungen
besteht, und als ein Speichermedium verwendet wird, das einen nicht-flüchtigen
Speicher verwendet, der Erstdefekte (early-stage defects) eines Flash-Speichers
und dergleichen in einem vorbestimmten Verhältnis zuläßt. Die vorliegende Erfindung
betrifft ebenfalls ein Verfahren zum Erzeugen einer logisch/physikalischen
Adressenumsetzungstabelle in dem Halbleiterplattenlaufwerk.
-
Gegenwärtig ist
der Öffentlichkeit
ein Flash-Speicher als ein nicht-flüchtiger Speicher bekannt, der
elektrisches Löschen
und Schreiben zuläßt. Die
Löschoperation
in einem Flash-Speicher wird üblicherweise
mittels eines Stapellöschverfahrens
für eine
Vielzahl von Speicherzellen durchgeführt. Jedoch ist ein Flash-Speicher,
der Löschen
und Schreiben in Einheiten von Sektoren zuläßt, als ein Produkt der letzten
Jahre entwickelt worden. Nun wird ein Prozeß des Anwendens des neuen Produktes
auf ein Halbleiterplattenlaufwerk, das dieselbe Schnittstelle wie
in dem Magnetplattenlaufwerk besitzt, gegenwärtig vorangetrieben. Ein Steuerschaltkreis,
der das Management bzw. die Verwaltung der Defekte des Mediums zuläßt bzw.
ermöglicht,
ist in solch einem Plattenlaufwerk installiert. Eine Speichervorrichtung,
die MGM (Mostly Good Memory) genannt wird und Erstdefekte (early-stage
defects) in einem gewissen Verhältnis
zuläßt, wird
als ein Produkt zum Zwecke des Erhöhens der Produktionsausbeute von
hochintegrierten Flash-Speichern entwickelt.
-
In
solch einen Flash-Speicher mit Erstdefekten wird vor der Verschiffung
ein Nichtschadhaftigkeits-Code (nondefectiveness code) eingeschrieben, in
Einheiten von Sektoren oder Blöcken,
welche die Einheiten zum Löschen
sind, um anzuzeigen, ob ein Sektor oder Block defekt bzw. schadhaft
oder defektfrei bzw. nicht schadhaft ist. Beispielsweise besteht
in einem 64Mb-Flash-Speicher vom UND-Typ, der Löschen und Schreiben in Einheiten
von Sektoren zuläßt, jeder
Sektor aus 528 B, die aus einem Datenbereich von 512 B und einem
Managementbereich bzw. Verwaltungsbereich von 16 B bestehen.
-
6 veranschaulicht die Zustände der
Sektoren in dem 64Mb-Flash-Speicher vom UND-Typ nach dem Stand der
Technik und den in ihre Verwaltungsbereiche geschriebenen Nichtschadhaftigkeits-Code
(nondefectiveness code). Wie in 6 zu sehen
ist, falls ein Sektor aus 528 B besteht, dann besteht ein 64Mb-Flash-Speicher
aus 16384 Sektoren oder 2048 Blöcken,
wobei ein Block aus 8 Sektoren besteht. Bei diesem Aufbau wird ein
6B-Nichtschadhaftigkeits-Code, beispielsweise "ABC" in 6, nur in den Verwaltungsbereich
eines jeden defektfreien Sektors geschrieben.
-
Das
Lesen und Schreiben von Daten von und in die zwei Bereiche, den
Datenbereich und den Verwaltungsbereich, können jeweils unabhängig voneinander
durchgeführt
werden. Jedoch kann das Löschen
von Daten nur in Einheiten von Sektoren oder Blöcken durchgeführt werden.
Das Lesen der Daten wird in Einheiten von Sektoren durchgeführt, so
daß eine
Erstzugriffszeit (initial access time) von mehreren Mikrosekunden
zum Erreichen des Kopfes der Daten erforderlich ist. Jedoch, nach
der Erstzugriffszeit, können
die Daten sequentiell in einem Taktzyklus in der Größenordnung
von 10 Nanosekunden für
jeden Sektor ausgelesen werden.
-
Jedoch,
in dem bisher bekannten Flash-Speicher mit solch einem Aufbau, muß der Nichtschadhaftigkeits-Code jedesmal
bestätigt
werden, wenn auf einen Sektor zugegriffen wird. Jedoch, wenn Daten
gelöscht
werden, wird der Nichtschadhaftigkeits-Code ebenfalls gelöscht, so
daß die
Operation des Schützens
des Nichtschadhaftigkeits-Codes vor dem Löschen und die Operation des
Wiedereinschreibens des Nichtschadhaftigkeits-Codes nach dem Löschen notwendig
sind. Solche Operationen des Bestätigens und Erhaltens des Nichtschadhaftigkeits-Codes
bewirken die Verringerung in dem Leistungsvermögen bzw. Leistungsverhalten
eines Plattenlaufwerkes, das solch einen Speicher verwendet.
-
Folglich
ist eine logisch/physikalische Adressumsetzungstabelle bereitgestellt
worden, die jede logische Sektoradresse, die durch die Zentralvorrichtung
zugewiesen wird, in eine physikalische Sektoradresse eines defektfreien
Sektors umwandelt bzw. umsetzt. Die Zentralvorrichtung kann auf
einen nutzbaren defektfreien Sektor mit einer hohen Geschwindigkeit
zugreifen, indem sie die Umsetzungstabelle zu Rate zieht bzw. auf
diese zugreift. In einem Beispiel zum Erzeugen solch einer logisch/physikalischen
Adressumsetzungstabelle wird die physikalische Adresse in dem Flash-Speicher,
die der logischen Adresse 0 entspricht, wie folgt bestimmt.
-
Als
erstes wird der Verwaltungsbereich des Sektors bei der physikalischen
Adresse 0 untersucht bzw. überprüft, um zu
testen, ob der Sektor bei der physikalischen Adresse 0 nutzbar ist
oder nicht. Falls er nutzbar ist, dann wird bestimmt, daß die physikalische
Adresse 0 diejenige ist, die der logischen Adresse 0 entspricht,
und dies wird in die logisch/physikalische Adressentabelle eingeschrieben.
Falls der Sektor mit der physikalischen Adresse 0 nicht nutzbar
ist, dann wird getestet, ob der Sektor mit der physikalischen Adresse
1 nutzbar ist oder nicht. Auf diese Weise werden die physikalischen
Adressen, die all den logischen Adressen des Flash-Speichers entsprechen,
erhalten und nacheinander in der Tabelle gespeichert.
-
Jedoch,
wenn eine logisch/physikalische Adressenumsetzungstabelle gemäß diesem
Verfahren erzeugt wird, sollte der Nichtschadhaftigkeits-Code für all die
logischen Adressen des Flash-Speichers ausgelesen werden. Folglich
erfordert es eine beträchtliche
Menge an Zeit, die logisch/physikalische Umsetzungstabelle in einem
Halbleiterplattenlaufwerk mit großer Kapazität zu erzeugen.
-
In
der offengelegten japanischen Patentveröffentlichung 63-59618 ist ein
Halbleiter-RAM offenbart, in welchem eine Sektorenverwaltungstabelle
installiert ist, um 0 und 1 aufzuzeichnen, in Abhängigkeit
davon, ob jeder Sektor defekt ist oder nicht. In der offengelegten
japanischen Patentveröffentlichung
9-212411 ist eine Flash-Speicherkarte offenbart, in welcher ein
flüchtiger
Speicher installiert ist, um Adreßinformationen über nutzbare
Blöcke
zu speichern. Sie speichern die Adreßinformationen und die Informationen über defekte
Sektoren in einem flüchtigen
Speicher.
-
Die
US 5 418 752 A offenbart
ein Halbleiterplattenlaufwerk mit: einem Schnittstellenabschnitt, der
eine Schnittstelle mit einer Informationsverarbeitungsvorrichtung
aufweist; einem Speicherabschnitt, der einen wiederbeschreibbaren
nicht-flüchtigen Speicher
aufweist, der eine gewisse Anzahl von Defekten zuläßt, wobei
Adreßinformationen über defekte
Sektoren in einem Teil des Speichers abgelegt sind; und einem Steuerabschnitt
zum Übertragen
von Daten zwischen Informationsverarbeitungsvorrichtung und Speicher
durch den Schnittstellenabschnitt und zur Umsetzung von logischen
Sektoradressen zu physikalischen Sektoradressen des Speichers und
zur Verwaltung des Speichers, wobei der Steuerabschnitt die logisch/physikalische
Adressenumsetzungstabelle auf der Grundlage der in dem Speicher abgelegten
Adreßinformationen
defekter Sektoren erzeugt.
-
Aufgabe
der vorliegenden Erfindung ist es, ein Halbleiterplattenlaufwerk
und ein Verfahren zum Erzeugen einer physikalisch/logischen Adressenumsetzungstabelle
bereitzustellen, die einen nicht-flüchtigen Speicher MGM (Mostly
Good Memory) wie z.B. einen Flash-Speicher und dergleichen verwenden, die
auf einen defektfreien Sektor oder Block mit hoher Geschwindigkeit
zugreifen und die die Zeit zum Erzeugen der logisch/physikalischen
Adressumsetzungstabelle verkürzen.
-
Die
Lösung
dieser Aufgabe erfolgt durch die Merkmale der Ansprüche 1 bzw.
8.
-
Ein
Halbleiterplattenlaufwerk gemäß der vorliegenden
Erfindung verwendet einen Speicherabschnitt, der als MGM (Mostly
Good Memory) ausgebildet ist und Erstdefekte (early-stage defects,
initial stage defects, first-stage defects) in einem vorbestimmten
Verhältnis
zuläßt, und
wird mit einer Zentralvorrichtung verwendet, die aus Informationsverarbeitungsvorrichtungen
besteht. Das Halbleiterplattenlaufwerk umfaßt einen Schnittstellenabschnitt,
der mit der Zentralvorrichtung eine Schnittstelle hat, einen Speicherabschnitt,
der aus einem wiederbeschreibbaren nichtflüchtigen Speicher besteht, der als
MGM (Mostly Good Memory) ausgebildet ist, für den Schreiben und Löschen elektrisch
durchgeführt werden,
und einen Steuerabschnitt, der Daten zwischen der Zentralvorrichtung
und dem Plattenlaufwerk durch den Schnittstellenabschnitt hindurch überträgt, logische
Sektoradressen in physikalische Sektoradressen des Speicherabschnittes
umwandelt bzw. umsetzt und die Speicherverwaltung durchführt. Der
Speicherabschnitt besitzt eine Mehrzahl von vorbestimmten Sektoren,
in denen Adreßinformationen über defekte
Sektoren gespeichert sind. Der Steuerabschnitt erzeugt eine logisch/physikalische
Adressenumsetzungstabelle auf der Grundlage der in dem Speicherabschnitt
gespeicherten Adreßinformationen über defekte
Sektoren.
-
Gemäß dem obigen
Aufbau kann, wenn eine logisch/physikalische Adressenumsetzungstabelle erzeugt
wird, die Anzahl, wie oft auf den wiederbeschreibbaren nichtflüchtigen
Speicher in dem Speicherabschnitt zugegriffen wird, um die Adressen
der defekten Sektoren zu erhalten, verringert werden. Folglich kann
die logisch/physikalische Adressenumsetzungstabelle mit hoher Geschwindigkeit
erzeugt werden.
-
Weiterhin
kann, in dem Speicherabschnitt, ein Verwaltungscode bzw. Managementcode
in einem vorbestimmten Bereich eines jeden Sektors geschrieben werden,
in dem Adreßinformationen über defekte
Sektoren gespeichert werden. Der Managementcode bzw. Verwaltungscode
zeigt an, daß Adreßinformationen über defekte
Sektoren in jenem Sektor gespeichert sind. Dann liest der Steuerabschnitt
Adreßinformationen über defekte
Sektoren von den Sektoren aus, in die Verwaltungscode geschrieben
ist. In diesem Fall, wenn eine logisch/physikalische Adressenumsetzungstabelle
erzeugt wird, findet der Steuerabschnitt die Sektoren heraus, in
denen Adreßinformationen über defekte
Sektoren gespeichert sind, indem er den Verwaltungscode überprüft. Auf
diese Weise kann die Anzahl, wie oft auf den wiederbeschreibbaren
nicht-flüchtigen
Speicher in dem Speicherabschnitt zugegriffen wird, um die Adressen
der defekten Sektoren zu erhalten, verringert werden. Folglich kann
die logisch/physikalische Adressenumsetzungstabelle mit hoher Geschwindigkeit
erzeugt werden.
-
Weiterhin
können,
in dem Speicherabschnitt, die Adreßinformationen über defekte
Sektoren in dem ersten oder letzten Block gespeichert werden. In diesem
Fall kennt der Steuerabschnitt den Block, in dem Adreßinformationen über defekte
Sektoren gespeichert sind. Auf diese Weise kann die Anzahl, wie oft
auf den wiederbeschreibbaren nichtflüchtigen Speicher in dem Speicherabschnitt
zugegriffen wird, um die Adressen der defekten Sektoren zu erhalten, weiter
verringert werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden.
-
Als
ein alternatives Verfahren können,
im Speicherabschnitt, Adreßinformationen über defekte Sektoren
in dem ersten nutzbaren Block oder dem letzten nutzbaren Block gespeichert
werden. In diesem Fall kennt der Steuerabschnitt den Block, in dem die
Adreßinformationen über die
defekten Sektoren gespeichert sind. Auf diese Weise kann die Anzahl, wie
oft auf den wiederbeschreibbaren nicht-flüchtigen Speicher in dem Speicherabschnitt
zugegriffen wird, um die Adressen der defekten Sektoren zu erhalten,
verringert werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden. Weiterhin kann, sogar
falls der erste oder letzte Block in dem Speicherabschnitt einen
nicht nutzbaren Sektor enthält,
das Plattenlaufwerk verwendet werden, so daß die Ausbeute der Speichervorrichtungen
erhöht
werden kann.
-
Weiterhin
können,
in dem Speicherabschnitt, die Adreßinformationen über die
defekten Sektoren nacheinander bzw. der Reihe nach in Sektoren von der
ersten Adresse aus vorwärts
oder von der letzten Adresse aus rückwärts gespeichert werden. In
diesem Fall kennt der Steuerabschnitt die Sektoren, in denen die
Adreßinformationen über die
defekten Sektoren gespeichert sind. Auf diese Weise kann die Anzahl,
wie oft auf den wiederbeschreibbaren nicht-flüchtigen Speicher in dem Speicherabschnitt zugegriffen
wird, um die Adressen der defekten Sektoren zu erhalten, verringert
werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden.
-
Weiterhin
können
die Adreßinformationen über die
defekten Sektoren nacheinander bzw. der Reihe nach in nutzbaren
Sektoren von dem ersten nutzbaren Sektor aus vorwärts oder dem
letzten nutzbaren Sektor aus rückwärts gespeichert
werden. In diesem Fall kennt der Steuerabschnitt die Sektoren, in
denen die Adreßinformationen über die
defekten Sektoren gespeichert sind. Auf diese Weise kann die Anzahl,
wie oft auf den wiederbeschreibbaren nicht-flüchtigen Speicher in dem Speicherabschnitt zugegriffen
wird, um die Adressen der defekten Sektoren zu erhalten, verringert
werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden. Darüberhinaus kann, sogar falls
der erste oder letzte Sektor in dem Speicherabschnitt ein nicht
nutzbarer Sektor ist, das Plattenlaufwerk verwendet werden, so daß die Ausbeute
der Speichervorrichtungen erhöht werden
kann.
-
Das
Verfahren zum Erzeugen der logisch/physikalischen Adressenumsetzungstabelle gemäß der vorliegenden
Erfindung ist ein Verfahren zum Erzeugen einer logisch/physikalischen
Adressenumsetzungstabelle in einem Speicherabschnitt eines Halbleiterplattenlaufwerks,
der einen Speicherabschnitt verwendet, der als MGM (Mostly Good
Memory) ausgebildet ist und die Erstdefekte (first-stage defects)
in einem vorbestimmten Verhältnis
zuläßt. Das
vorliegende Verfahren schreibt Adreßinformationen, die die Adressen
der defekten Sektoren anzeigen, und einen Verwaltungscode, der einen
Sektor anzeigt, in dem Adreßinformationen
gespeichert sind, in einer Mehrzahl von vorbestimmten Sektoren des
Speicherabschnittes. Dann liest das Verfahren die Adreßinformationen über die
defekten Sektoren aus den Sektoren aus, in die Verwaltungscode geschrieben
ist, und erzeugt eine logisch/physikalische Adressenumsetzungstabelle
auf der Grundlage der Adreßinformationen über die
defekten Sektoren.
-
Gemäß diesem
Verfahren sind, wenn die logisch/physikalische Adressenumsetzungstabelle
erzeugt wird, die Sektoren, in denen Adreßinformationen über defekte
Sektoren gespeichert sind, bekannt. Auf diese Weise kann die Anzahl,
wie oft auf den wiederbeschreibbaren nichtflüchtigen Speicher in dem Speicherabschnitt
zugegriffen wird, um die Adressen der defekten Sektoren zu erhalten,
verringert werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden.
-
Beim
Implementieren dieses Verfahrens können die vorbestimmten Sektoren
Sektoren in einem ersten Block oder dem letzten Block sein. Auf diese
Weise ist, wenn die logisch/physikalische Umsetzungstabelle erzeugt
wird, der Block bekannt, in dem Adreßinformationen über defekte
Sektoren eingeschrieben sind. Auf diese Weise kann die Anzahl, wie
oft auf den wiederbeschreibbaren nicht-flüchtigen Speicher in dem Speicherabschnitt
zugegriffen wird, um die Adressen der defekten Sektoren zu erhalten,
verringert werden. Folglich kann die logisch/physikalische Adressenumsetzungstabelle
mit hoher Geschwindigkeit erzeugt werden.
-
Die
Unteransprüche
beziehen sich auf vorteilhafte Ausgestaltungen der Erfindung.
-
Weitere
Aufgaben, Einzelheiten, Merkmale und Vorteile der Erfindung ergeben
sich aus der nachfolgenden Beschreibung der bevorzugten Ausführungsform
in Verbindung mit den beigefügten Zeichnungen,
in denen gleiche Teile mittels gleicher Bezugszeichen gekennzeichnet
sind, und die zeigen:
-
1 ein Blockdiagramm eines
Halbleiterplattenlaufwerkes der bevorzugten Ausführungsform der vorliegenden
Erfindung;
-
2 den Zustand eines jeden
Sektors in dem Speicherabschnitt und den in den Verwaltungsbereich
geschriebenen Nichtschadhaftigkeits-Code;
-
3 ein Beispiel des Datenbereichs
und Verwaltungsbereichs in einem Sektor, der die Adressen defekter
Sektoren speichert;
-
4 ein Beispiel einer logisch/physikalischen
Adressenumsetzungstabelle;
-
5 ein Flußdiagramm,
das die mittels einer CPU für
die interne Steuerung ausgeführte
Operation zur Erzeugung der logisch/physikalischen Adressenumsetzungstabelle
veranschaulicht; und
-
6 den Zustand eines jeden
Sektors in einem Flash-Speicher
nach dem Stand der Technik und den in den Verwaltungsbereich geschriebenen Nichtschadhaftigkeits-Code.
-
Die
bevorzugte Ausführungsform
gemäß der vorliegenden
Erfindung wird unten in Verbindung mit den beigefügten Zeichnungen
beschrieben werden. 1 ist
ein Blockdiagramm, das ein Halbleiterplattenlaufwerk der Ausführungsform
in der vorliegenden Erfindung veranschaulicht. In 1 ist das Plattenlaufwerk eine PC-Karte,
die einen 64Mb-Flash-Speicher vom UND-Typ verwendet, und erfüllt den ATA-Standard
(erweiterter AT-Standard).
-
Wie
in 1 gezeigt ist, umfasst
eine PC-Karte 1 einen Anschlußstecker 3, der Verbindungen
zu einer Zentralvorrichtung 2 herstellt, die aus Informationsverarbeitungsvorrichtungen
besteht, einen Speicherabschnitt 4, der aus wenigstens
einem IC-Speicher besteht, der aus einem Flash-Speicher vom UND-Typ gebildet wird,
und eine ATA-Kontrollerkarte 5,
die den Speicherabschnitt 4 steuert, logische Adressen
in physikalische Adressen umwandelt bzw. umsetzt und die teilweise
Schadhaftigkeit des Speicherabschnittes 4 steuert bzw.
kontrolliert. Der Speicherabschnitt 4 verwendet eine Speichervorrichtung namens
MGM (Mostly Good Memory), die Erstdefekte (earlystage defects) zuläßt.
-
Die
ATA-Kontrollerkarte 5 umfasst einen Schnittstellenschaltkreis 6,
einen Bussteuerschaltkreis 7, eine CPU 8 für die interne
Steuerung, einen Speicher 9 für die CPU, einen Sektorpuffer 10 zur
Dateneingabe/-ausgabe, einen fehlerkorrigierenden Schaltkreis bzw.
ECC-Schaltkreis 11 und einen Flash-Speicher-Steuerschaltkreis 12.
Diese Komponenten können
in einem IC integriert sein. Der Schnittstellenschaltkreis 6 ist
durch den Anschlußstecker 3 hindurch
mit der Zentralvorrichtung 2 verbunden, und ist ebenfalls
mit dem Bussteuerschaltkreis 7 verbunden. Der Bussteuerschaltkreis 7 ist
mit der CPU 8 für
die interne Steuerung, dem Sektorpuffer 10, dem ECC-Schaltkreis 11 und
dem Flash-Speicher-Steuerschaltkreis 12 verbunden.
Die CPU 8 für die
interne Steuerung ist mit dem Speicher 9 für die CPU
verbunden.
-
Wenn
die PC-Karte 1 mit der Zentralvorrichtung 2 verbunden
ist, ist die Zentralvorrichtung 2 durch den Anschlußstecker 3 hindurch
mit dem Schnittstellenschaltkreis 6 verbunden. Der Anschlußstecker 3 und
der Schnittstellenschaltkreis 6 bilden einen Schnittstellenabschnitt.
Der Bussteuerschaltkreis 7, die CPU 8 für die interne
Steuerung, der Speicher 9 für die CPU, der Sektorpuffer 10,
der ECC-Schaltkreis 11 und der Flash-Speicher-Steuerschaltkreis 12 bilden
einen Steuerabschnitt.
-
Der
Schnittstellenschaltkreis 6 überträgt Daten zwischen der PC-Karte 1 und
der Zentralvorrichtung 2. Der Bussteuerschaltkreis 7 steuert
das Schalten der internen Busse, um die Verbindungen zwischen dem
Schnittstellenschaltkreis 6 und der CPU 8 für die interne
Steuerung, dem Sektorpuffer 10, dem ECC-Schaltkreis 11 und
dem Flash-Speicher-Steuerschaltkreis 12 zu
steuern. Die CPU 8 für
die interne Steuerung führt
die Signalsteuerung innerhalb der PC-Karte 1 durch, um
die Operation bzw. den Betrieb der PC-Karte 1 zu managen bzw. zu
verwalten. Der Speicher 9 für die CPU speichert eine logisch/physikalische
Adressenumsetzungstabelle, die jede logische Sektoradresse, die
durch einen Befehlscode der CPU 8 für die interne Steuerung und
durch die Zentralvorrichtung 2 zugewiesen wird, in eine
physikalische Sektoradresse eines defektfreien Sektors in dem Speicherabschnitt 4 umwandelt
bzw. umsetzt.
-
Der
ECC-Schaltkreis 11 fügt
einen fehlerkorrigierenden Code, im Folgenden ECC (error correcting
code) genannt, zu der Dateneingabe von der Zentralvorrichtung 2,
die in dem Speicherabschnitt 4 gespeichert werden soll,
hinzu, um diese ECC-hinzugefügten
Daten in dem Speicherabschnitt 4 zu speichern. Der ECC-Schaltkreis 11 führt eine
Fehlerkorrekturabwicklung für
die aus dem Speicherabschnitt 4 ausgelesenen Daten mittels
der ECC-hinzugefügten
Daten durch. Der ECC-Schaltkreis 11 gibt dann die verarbeiteten
Daten in die Zentralvorrichtung 2 durch den Bussteuerschaltkreis 7,
den Schnittstellenschaltkreis 6 und den Anschlußstecker 3 hindurch aus.
Der Flash-Speicher-Steuerschaltkreis 12 gibt ein Steuersignal
wie ein Ausgabe-Freigabesignal bzw. Ausgabe-Enable-Signal und ein
Chip-Freigabesignal
bzw. Chip-Enable-Signal an den Speicherabschnitt 4 aus,
um ihn zu steuern, in Abhängigkeit
von Schreib- oder Lesekomandos und Adressdaten, die den Speicherabschnitt 4 betreffen, übergeben
von der CPU 8 für
die interne Steuerung. Zum Beispiel erzeugt, wenn eine Sektorzahl
von der CPU 8 für
die interne Steuerung eingegeben wird, der Flash-Speicher-Steuerschaltkreis 12 Adreßdaten,
die der eingegebenen Sektorzahl entsprechen, um sie in den Speicherabschnitt 4 auszugeben.
-
Wenn
Daten in die PC-Karte 1 geschrieben werden, werden die
von der Zentralvorrichtung 2 in Einheiten von 512 B übertragenen
Daten zuerst in dem Sektorpuffer 10 gespeichert und dann
mittels eines Befehls der CPU 8 für die interne Steuerung in den
Speicherabschnitt 4 geschrieben. Ebenfalls, wenn Daten
von der PC-Karte 1 ausgelesen werden, werden die Daten,
die bei der physikalischen Sektoradresse gespeichert sind, die einer
durch die Zentralvorrichtung 2 zugewiesenen logischen Adresse
entspricht, zuerst von dem Speicherabschnitt 4 zu dem Sektorpuffer 10 übertragen
und dann zu der Zentralvorrichtung 2 übertragen, in Synchronisation
mit einem von der Zentralvorrichtung 2 übergebenen Daten-Lesesignal.
Auf diese Weise wird der Sektorpuffer 10 verwendet, um
während
der Datenübertragung zwischen
der Zentralvorrichtung 2 und dem Speicherabschnitt 4 Daten
vorübergehend
zu speichern.
-
Der
Betrieb bzw. die Arbeitsweise der PC-Karte 1 wird, zum
Beispiel, durch PC-Kartenstandards spezifiziert, die von der Japan
Electric Industry Development Association eingerichtet wurden.
-
Der
Speicherabschnitt 4 wird von einem 64Mb-Flash-Speicher vom UND-Typ
gebildet. Jeder Sektor des Speicherabschnittes 4 besteht
aus 528 B, die aus einem 512B-Datenbereich und einem 16B-Verwaltungsbereich
bestehen. Ein 64Mb-Flash-Speicher vom UND-Typ besitzt 16384 Sektoren
oder 2048 Blöcke,
unter der Annahme, daß ein
Block aus 8 Sektoren gebildet wird. Übrigens können in diesem 64Mb-Flash-Speicher vom
UND-Typ 16384 logische Sektoren von 12 B installiert werden, so
daß er
ein 64Mb-Speicher genannt wird. Jedoch besitzt er die Kapazität von 16384
Sektoren von 528 B.
-
In
diesem Aufbau wird ein MGM (Mostly Good Memory) für den Flash-Speicher
des Speicherabschnittes 4 verwendet, so daß es zugelassen
ist, daß bis
zu 2% der 16384 Sektoren defekt bzw. schadhaft sind. In dem in dem
Speicherabschnitt 4 verwendeten Flash-Speicher wird vor
der Verschiffung ein Nichtschadhaftigkeits-Code (nondefectiveness
code), der anzeigt, daß ein
Sektor defektfrei bzw. nicht schadhaft ist, in dem Managementbereich bzw.
Verwaltungsbereich jenes Sektors gespeichert.
-
2 veranschaulicht den Zustand
eines jeden Sektors in dem Speicherabschnitt und den in den Verwaltungsbereich
geschriebenen Nichtschadhaftigkeits-Code. Wie in 2 zu sehen ist, wird der Code "ABC", der anzeigt, daß ein Sektor
defektfrei bzw. nicht schadhaft ist, in den Verwaltungsbereich eines
nutzbaren Sektors mittels einer Testvorrichtung während des
Testvorganges bzw. Testens der Flash-Speichervorrichtungen vor der Verschiffung geschrieben.
Die Sektoren, in denen die Adressen aller defekten bzw. schadhaften
Sektoren in der Speichervorrichtung aufgelistet sind, befinden sich
in dem letzten physikalischen Block, dessen Adresse 2047 ist. In
diese Sektoren wird der Code "XYZ" geschrieben, der
anzeigt, daß ein
Sektor der defektfreie Sektor ist, in dem die Adressen von defekten
Sektoren gespeichert sind.
-
Wie
der Nichtschadhaftigkeits-Code "ABC" werden diese Adreßinformationen über defekte
Sektoren und der Code "XYZ" vor der Verschiffung
mittels einer Testvorrichtung während
des Testvorganges der Flash-Speichervorrichtungen eingeschrieben.
Der in dem Speicherabschnitt 4 verwendete Flash-Speicher besitzt
64 Mb, so daß die
Gesamtzahl der physikalischen Sektoren 16384 beträgt. Folglich
können
2B-Daten alle Sektoradressen anzeigen. Folglich kann, wie in 3 gezeigt, der 512B-Datenbereich
eines Sektors, in dem die Adressen defekter Sektoren gespeichert
werden, ein Maximum von 256 Adressen defekter Sektoren enthalten.
-
Bei
dem im Speicherabschnitt 4 verwendeten Flash-Speicher ist es zugelassen
bzw. möglich, daß er bis
zu 2% defekte bzw. schadhafte Sektoren besitzt, d.h., ein Maximum
von 328 Erstdefektsektoren, so daß zwei Sektoren zum Speichern
der Adressen der defekten bzw. schadhaften Sektoren ausreichen.
Nebenbei bemerkt, ist in 2 all
den Sektoren in dem letzten Block zugewiesen bzw. angewiesen worden,
die Adressen der defekten Sektoren zu speichern. Durch diese Maßnahme kann
verhindert werden, daß fehlerhafterweise
Adreßinformationen über defekte
Sektoren beim Löschen
gewöhnlicher Sektoren
von Adresse 0 bis Adresse 16375 gelöscht werden, und die Adressen
der durch spätere
Stufen erzeugten defekten Sektoren können zusätzlich gespeichert werden.
-
Als
nächstes
wird die Operation des Erzeugens der logisch/physikalischen Adressenumsetzungstabelle
während
des Herstellens der PC-Karte 1 im Folgenden beschrieben.
Außer
dem flüchtigen Speicher,
besitzt der Speicher 9 für die CPU einen nicht-flüchtigen
Speicher, für
den Datenschreiben und Datenlöschen
nicht elektrisch durchgeführt
werden kann. Nachdem Energie bzw. Strom der PC-Karte 1 zugeführt wurde,
auf die Herstellung der PC-Karte folgend, und nachdem die Operation
eines anfänglichen
Rücksetzens
durchgeführt
wurde, liest die CPU 8 für die interne Steuerung alle
die Adressen der defekten Sektoren aus den Sektoren aus, in denen
die Adressen der defekten Sektoren in dem Speicherabschnitt 4 gespeichert
sind. Die CPU 8 für
die interne Steuerung speichert diese Adressen in den flüchtigen
Speicher des Speichers 9 für die CPU. Weiterhin, dadurch,
daß sie
die Adressen der defekten Sektoren verwendet, die in dem flüchtigen
Speicher des Speichers 9 für die CPU gespeichert sind, führt die
CPU 8 für
die interne Steuerung die Operation des Erzeugens der logisch/physikalischen Adressenumsetzungstabelle
durch, um die Tabelle in dem Speicherabschnitt 4 bei vorbestimmten
Adressen zu speichern.
-
4 veranschaulicht ein Beispiel
für die
logisch/physikalische Adressenumsetzungstabelle. Die Operation,
die durch die CPU 8 für
die interne Steuerung zum Erzeugen der logisch/physikalischen Adressenumsetzungs tabelle
durchgeführt
wird, wird im Folgenden in Verbindung mit 4 beschrieben. Die CPU 8 für die interne
Steuerung verschafft sich die kleinste Sektoradresse A1 der
in dem flüchtigen Speicher
des Speichers 9 für
die CPU gespeicherten Sektoradressen der defekten Sektoren, um eine
logisch/physikalische Adressenumsetzungstabelle zu erzeugen, derart,
daß für jede logische
Sektoradresse von 0 bis A1 – 1 die
physikalische Sektoradresse gleich der logischen Sektoradresse ist.
Als nächstes verschafft
sich die CPU 8 für
die interne Steuerung die zweitkleinste Sektoradresse A2 der
in dem flüchtigen
Speicher des Speichers 9 für die CPU gespeicherten Sektoradressen
der defekten Sektoren, um eine logisch/physikalische Adressenumsetzungstabelle
zu erzeugen, derart, daß für jede logische
Sektoradresse von A1 bis A2 – 2 die
physikalische Sektoradresse gleich der logischen Sektoradresse +1
ist.
-
Weiterhin
verschafft sich die CPU 8 für die interne Steuerung die
drittkleinste Sektoradresse A3 der in dem
flüchtigen
Speicher des Speichers 9 für die CPU gespeicherten Sektoradressen
der defekten Sektoren, um eine logisch/physikalische Adressenumsetzungstabelle
zu erzeugen, derart, daß für jede logische
Sektoradresse von A2 – 1 bis A3 – 3 die physikalische
Sektoradresse gleich der logischen Sektoradresse +2 ist. Gleichermaßen, für jede Sektoradresse
An, wobei n eine positive Ganzzahl und An ≤ 16384
ist, der in dem flüchtigen
Speicher des Speichers 9 für die CPU gespeicherten defekten
Sektoren, erzeugt die CPU 8 für die interne Steuerung eine logisch/physikalische
Adressenumsetzungstabelle, derart, daß für jede logische Sektoradresse
von An – (n – 1) bis
An + 1 – (n
+ 1) die physikalische Sektoradresse gleich der logischen Sektoradresse
+n ist.
-
Auf
diese Weise erhält
die CPU 8 für
die interne Steuerung die physikalische Sektoradresse, die jeder
logischen Sektoradresse der PC-Karte entspricht, und speichert nacheinander
bzw. der Reihe nach die physika lische Sektoradresse in einer Tabelle
in der Reihenfolge der logischen Sektoradressen, um in den flüchtigen
Speicher des Speichers 9 für die CPU eine logisch/physikalische
Adressenumsetzungstabelle zu erzeugen. Danach überträgt die CPU 8 für die interne
Steuerung die Adressenumsetzungstabelle im Speicher 9 für die CPU
zu einem vorbestimmten Bereich des Speicherabschnittes 4. Nach
diesen Prozeduren wird, jedesmal, wenn die Energie bzw. der Strom
der PC-Karte 1 zurückgesetzt
wird, die Adressenumsetzungstabelle im Speicher 4 in den
flüchtigen
Speicher des Speichers 9 für die CPU geladen, so daß ein Speicherzugriff
erhalten werden kann, indem man die Adressenumsetzungstabelle zu
Rate zieht bzw. auf die Adressenumsetzungstabelle zugreift.
-
5 ist ein Flußdiagramm,
das die durch die CPU 8 für die interne Steuerung ausgeführte Operation
zum Erzeugen der logisch/physikalischen Adressenumsetzungstabelle
veranschaulicht. Die Operation durch die CPU 8 für die interne
Steuerung zum Erzeugen der logisch/physikalischen Adressenumsetzungstabelle
wird im Folgenden ausführlicher in
Zusammenhang mit 5 beschrieben.
Wie in 5 zu sehen ist,
wird die logisch/physikalische Adressenumsetzungstabelle für 15360
Sektoren des Flash-Speichers mit einer Gesamtzahl von 16384 Sektoren
im Speicherabschnitt 4 erzeugt. In diesem Fall werden die
Sektoren, deren physikalische Sektoradressen nicht in der logisch/physikalischen Adressenumsetzungstabelle
erscheinen, zu reservierten Ersatzsektoren. Der Ablauf bzw. die
Verarbeitung, die in jedem Schritt des Flusses durchgeführt wird,
wird durch die CPU 8 für
die interne Steuerung ausgeführt,
sofern nicht anders angegeben.
-
Wie
in 5 gezeigt ist, werden
in dem ersten Schritt S1 die Sektoradressen der defekten Sektoren
aus all den Sektoren des Speicherabschnittes 4 ausgelesen,
in denen die Sektoradressen der defekten Sektoren gespeichert sind, und
die Sektoradressen A1, A2,...,
wobei An < An + 1 ist, werden zu dem flüchtigen
Speicher des Speichers 9 für die CPU übertragen. Als nächstes wird
im Schritt S2 der Wert von n als n = 1 festgesetzt, und im Schritt
S3 wird die Sektoradresse An für den momentanen
Wert von n erhalten. In Schritt S4 wird eine logisch/physikalische Adressenumsetzungstabelle
erzeugt, derart, daß für jede logische
Sektoradresse von An-1 – (n – 2) bis An – n die
physikalische Sektoradresse gleich der logischen Sektoradresse +(n – 1) ist,
wobei A0 = –1. Folglich sind beispielsweise
für n =
1 die physikalischen Sektoradressen von 0 bis A1 – 1 gleich
den logischen Sektoradressen von 0 bis A1 – 1. Und
für n =
2 sind die physikalischen Sektoradressen von A1 +
1 bis A2 – 1 gleich den logischen Sektoradressen
von A1 bis A2 – 2. Und
für n =
3 sind dann die physikalischen Sektoradressen von A2 +
1 bis A3 – 1 gleich den logischen Sektoradressen
von A2 – 1
bis A3 – 3,
und so weiter.
-
Dann,
in Schritt S5, wird der Wert von n um 1 erhöht. Als nächstes wird in Schritt S6 getestet,
ob eine Sektoradresse An der defekten Sektoren
existiert oder nicht. Falls eine Sektoradresse An existiert (JA),
dann kehrt der Fluß zu
Schritt S3 zurück.
Falls es keine Sektoradresse An gibt (NEIN),
dann geht der Fluß zu
Schritt S7 weiter. In Schritt S7 wird eine logisch/physikalische
Adressenumsetzungstabelle erzeugt, derart, daß für jede logische Sektoradresse von
An-1 – (n – 2) bis
15359 die physikalische Sektoradresse gleich der logischen Sektoradresse
+(n – 1) ist,
und der Fluß wird
beendet.
-
Allgemein
kann getestet werden, ob eine physikalische Sektoradresse nutzbar
ist oder nicht, indem man den Verwaltungsbereich der physikalischen
Sektoradresse liest, um zu überprüfen, ob
darin ein Nichtschadhaftigkeits-Code eingeschrieben ist oder nicht.
Jedoch, in dem Flash-Speicher, auf den in Einheiten von Sektoren
zugegriffen wird, umfaßt
die Zugriffszeit zum Lesen des Datenbereiches oder Verwal tungsbereiches
eines jeden Sektors, im Folgenden erste Zugriffszeit genannt, eine
große
Zeitspanne, d.h. mehrere Mikrosekunden. Folglich wird eine beträchtliche
Zeitspanne benötigt,
um die logisch/physikalische Adressenumsetzungstabelle für eine PC-Karte
zu erzeugen, die einen Speicherabschnitt von einer großen Speichergröße besitzt,
falls die Verwaltungsbereiche der physikalischen Sektoradressen,
die all den logischen Sektoradressen entsprechen, getestet werden.
Falls zum Beispiel in dem 64Mb-Flash-Speicher vom UND-Typ die erste
Zugriffszeit 5 μs
beträgt,
dann beträgt
die reine Gesamtzeit für
den ersten Zugriff, die notwendig ist, um die logisch/physikalische
Adressenumsetzungstabelle zu erzeugen, 5 μs·16384 = 82 ms.
-
Andererseits
liest die CPU 8 für
die interne Steuerung in der Ausführungsform der vorliegenden Erfindung
Adreßinformationen über defekte
Sektoren aus, die in den Sektoren gespeichert sind, in denen die
Sektoradressen aller defekten Sektoren in dem Speicherabschnitt 4 gespeichert
sind, und speichert die Adreßinformationen
in dem flüchtigen
Speicher des Speichers 9 für die CPU. Die Zugriffszeit
für den flüchtigen
Speicher des Speichers 9 für die CPU liegt üblicherweise
in der Größenordnung
von 10 ns oder 100 ns. Folglich kann die CPU 8 für die interne
Steuerung die logisch/physikalische Adressenumsetzungstabelle schnell
erzeugen, indem sie die in dem flüchtigen Speicher des Speichers 9 für die CPU
gespeicherten Adreßinformationen
zu Rate zieht bzw. auf diese zugreift, und indem sie eine nutzbare
physikalische Sektoradresse bestimmt, die jeder logischen Sektoradresse
entspricht.
-
Beispielsweise
sei angenommen, daß die CPU 8 für die interne
Steuerung 100 μs
benötigt,
um Adreßinformationen über defekte
Sektoren aus dem Speicherabschnitt 4 auszulesen, und es
sei ebenfalls angenommen, daß die
Zugriffszeit für
den Speicher 9 für
die CPU 500 ns beträgt.
In diesem Fall beträgt
die Zeit, die für
den Speicherzugriff notwendig ist, um die logisch/physikalische
Adressenumsetzungstabelle zu erzeugen, 100 μs + 500 ns·16384 = 8,3 ms, was nur 1/10
der Zeit für
ein Verfahren nach dem Stand der Technik ist.
-
In
der Ausführungsform
der vorliegenden Erfindung wird die logisch/physikalische Adressenumsetzungstabelle
in dem flüchtigen
Speicher des Speichers 9 für die CPU erzeugt. Falls jedoch
der nicht-flüchtige
Speicher des Speichers 9 für die CPU elektrisch beschreibbar
und löschbar
ist wie ein Flash-Speicher, dann kann die logisch/physikalische Adressenumsetzungstabelle
in dem nicht-flüchtigen Speicher
des Speichers 9 für
die CPU während
des Herstellungsprozesses der PC-Karte 1 erzeugt werden.
In diesem Fall ist es nicht erforderlich, die logisch/physikalische
Adressenumsetzungstabelle jedesmal in den flüchtigen Speicher des Speichers 9 für die CPU
zu laden, wenn die Energie bzw. der Strom der PC-Karte 1 zurückgesetzt
wird. Weiterhin kann die logisch/physikalische Adressenumsetzungstabelle
mit einer hohen Geschwindigkeit während des Herstellungsprozesses
der PC-Karte 1 erzeugt werden, so daß die Effektivität bzw. Ausbeute
bei der Herstellung erhöht
werden kann.
-
In
der obigen Ausführungsform
der vorliegenden Erfindung sind die Adressen der defekten bzw. schadhaften
Sektoren in dem letzten Block des Speicherabschnittes 4 gespeichert
worden. Die Adressen der defekten Sektoren können jedoch auch in dem ersten
Block des Speicherabschnittes 4 gespeichert werden. Sie
können
ebenfalls nacheinander bzw. der Reihe nach in dem Speicherabschnitt 4 von
dem letzten Sektor aus rückwärts oder
von dem ersten Sektor aus vorwärts
gespeichert werden.
-
Wie
oben beschrieben wurde, werden in dem Halbleiterplattenlaufwerk
der vorliegenden Erfindung die Adressen aller defekten Sektoren
in einem vorbestimmten Block oder Sektoren des Speicherabschnittes 4 während der
Herstellung gespeichert, und die logisch/physikalische Adressenumsetzungstabelle wird
auf der Grundlage der gespeicherten Adressen aller defekten Sektoren
erzeugt. Folglich kann, wenn die logisch/physikalische Adressenumsetzungstabelle
erzeugt wird, die Zugriffszeit für
den Flash-Speicher des Speicherabschnittes 4, um die Adressen
der defekten Sektoren zu erhalten, verringert werden, so daß die logisch/physikalische
Adressenumsetzungstabelle mit hoher Geschwindigkeit erzeugt werden kann.
-
Um
die Ausbeute des in der PC-Karte verwendeten Flash-Speichers zu erhöhen, können die Adressen
der defekten Sektoren in dem letzten oder ersten defektfreien Block
oder in den letzten oder ersten defektfreien Sektoren gespeichert
werden. In diesem Fall ist eine Suchoperation, die die Verwaltungsbereiche
der Sektoren ausliest, erforderlich, um die Sektoren zu erreichen,
in denen die Adressen der defekten Sektoren gespeichert sind. Jedoch
kann, nachdem die Adressen der defekten Sektoren ausgelesen worden
sind, die logisch/physikalische Adressenumsetzungstabelle auf dieselbe
Weise wie in der obigen Ausführungsform
erzeugt werden.
-
In
der obigen Ausführungsform
sind die physikalischen Adressen aller defekten Sektoren als Adreßinformationen über defekte
Sektoren aufgelistet worden. Alternativ kann die Schadhaftigkeit/Nichtschadhaftigkeit
aller Sektoren in dem Flash-Speicher durch eine Bitfolge einer Zustandstabelle
bzw. Zustandskarte repräsentiert
werden, die in den Sektoren gespeichert ist. Falls zum Beispiel
das Bit 0 einem defektfreien bzw. nicht schadhaften Sektor zugewiesen
ist, und falls das Bit 1 einem defekten bzw. schadhaften Sektor
zugewiesen ist, dann können
die Nichtschadhaftigkeits/Schadhaftigkeits-Zustände aller Sektoren eines 64Mb-Flash-Speichers
vom UND-Typ durch eine Bitfolge von 16384 b = 2048 B repräsentiert
werden.
-
Folglich
benötigt
die Bitfolge 4 Sektoren. Obwohl der Ablauf bzw. die Abwicklung des
Erzeugens der Bitfolge komplex wird, kann die logisch/physikalische
Adressenumsetzungstabelle leicht auf der Grundlage der Bitfolge
einer Zustandskarte erzeugt werden.
-
Weiterhin
kann die physikalische Adresse, die der logischen Adresse entspricht,
einen Offset-Wert in Bezug auf die physikalische Kopfadresse einer
Platte besitzen, obwohl in der obigen Ausführungsform der vorliegenden
Erfindung angenommen wurde, daß mit
der physikalischen Kopfadresse begonnen wird.
-
Obwohl
die vorliegende Erfindung vollständig
in Verbindung mit ihrer bevorzugten Ausführungsform und den beigefügten Zeichnungen
beschrieben worden ist, ist zu beachten, daß verschiedene Änderungen
und Modifikationen für
Fachleute offensichtlich sind. Es versteht sich, daß solche Änderungen und
Modifikationen innerhalb des Anwendungsbereiches der vorliegenden
Erfindung, wie er durch die beigefügten Ansprüche definiert wird, enthalten
sind.