DE19608713A1 - Speichereinheit - Google Patents

Speichereinheit

Info

Publication number
DE19608713A1
DE19608713A1 DE19608713A DE19608713A DE19608713A1 DE 19608713 A1 DE19608713 A1 DE 19608713A1 DE 19608713 A DE19608713 A DE 19608713A DE 19608713 A DE19608713 A DE 19608713A DE 19608713 A1 DE19608713 A1 DE 19608713A1
Authority
DE
Germany
Prior art keywords
sector
data
address
sectors
parallel memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19608713A
Other languages
English (en)
Inventor
Shinichi Mizoguchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19608713A1 publication Critical patent/DE19608713A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

Die Erfindung bezieht sich auf eine Speichereinheit wie eine Speicherkarte, in der ein auch als "flash memory" bekannter Parallelspeicher eingesetzt ist.
Für eine nachfolgend als PC-Karte bezeichnete Halbleiterspei­ cher-Plattenkarte, die als ein nichtflüchtiger Speicher für das Einschreiben und Auslesen von Daten eingesetzt wird, wird ein Parallelspeicher verwendet. Die PC-Karte wird an einen Verarbeitungsrechner angeschlossen und wirkt als Speicherauf­ zeichnungsträger für diesen.
Durch die Verwendung des Parallelspeichers kann die Zugriff­ geschwindigkeit einer PC-Karte über diejenige einer Festplat­ teneinheit hinaus erhöht werden. Eine PC-Karte mit einem Par­ allelspeicher wird bei der japanischen Elektronikindustrie- Entwicklungsvereinigung (JEIDA) gemäß einem PC-Karten- Schnittstellenstandard oder dem ATA-Standard (AT- Zusatzgerätestandard) eingesetzt, welche bei Schnittstellen für Festplatteneinheiten für Personalcomputer eingesetzt wur­ den. Durch die Anwendung des ATA-Standards ist es nicht er­ forderlich, die Speicherkapazität einzuschränken oder eine ausschließlich für die PC-Karte vorgesehene Treiberstufe ein­ zusetzen.
Bei dem ATA-Standard hat gleichermaßen wie bei einer Fest­ platteneinheit ein Parallelspeicher eine Speicherkapazität, die in einen Sektorkennungsbereich und einen Sektorbereich mit Sektoren unterteilt ist, wobei der jeweilige Sektor in dem Sektorbereich durch den Sektorkennungsbereich verwaltet wird. Ein Problem bei einem in einer PC-Karte eingesetzten Parallelspeicher besteht in der Beschränkung der Anzahl von Neueinschreibungen von Daten in den Parallelspeicher. In ei­ nen Parallelspeicher werden praktisch wiederholt Daten aus einem Verarbeitungsrechner in bestimmte Sektoren eingeschrie­ ben oder neu eingeschrieben und die Lebensdauer dieser Sekto­ ren wird kürzer als diejenige der anderen Sektoren. Falls ein fehlerhaftes Einschreiben von Daten in einen Sektor auftritt, wird von der PC-Karte dem Verarbeitungscomputer der Fehler gemeldet. Der ein fehlerhaftes Einschreiben von Daten erfas­ sende Verarbeitungscomputer entscheidet, daß die PC-Karte nicht verwendet werden kann. Selbst wenn ermittelt wird, daß die bestimmten Sektoren nicht genutzt werden können, können die anderen Sektoren weiterhin auf normale Weise benutzt wer­ den. Die PC-Karte kann jedoch nicht mehr verwendet werden.
Der Erfindung liegt die Aufgabe zugrunde, eine als PC-Karte verwendete Speichereinheit zu schaffen, in der ein Speicher wirkungsvoll darin genutzt wird.
Wenn in einer Speichereinheit gemäß einer Ausführungsform der Erfindung in einen Parallelspeicher-mit einer Vielzahl von Blöcken, von denen jeder eine Vielzahl von Sektoren enthält, wobei der Block bei dem Löschen von Daten eine Einheit bil­ det, bei dem Einschreiben von Daten eine Adresse in einem Sektor in dem Parallelspeicher gemäß einer einer logischen Adresse entsprechenden Adressenumsetzung ermittelt wird und die Daten nicht in einem ersten Sektor an der ermittelten Adresse eingeschrieben werden können, werden die Daten ohne eine durch den Schreibfehler verursachte Unterbrechung in ei­ nen zweiten Sektor in dem gleichen Block wie der erste Sektor eingeschrieben. Dann wird in einer Adressenumsetztabelle eine reale beziehungsweise physikalische Adresse in dem Paral­ lelspeicher entsprechend der logischen Adresse auf eine Adresse des zweiten Sektors umgeschrieben. Ein die Spei­ chereinheit abrufender Verarbeitungscomputer benötigt dann keinen weiteren besonderen Prozeß für den Schreibfehler. Gleichermaßen werden dann, wenn in einem Parallelspeicher mit einer Vielzahl von Sektoren Daten eingeschrieben werden und die Daten nicht in einem ersten Sektor an der ermittelten Adresse eingeschrieben werden können, die Daten in einem von dem ersten Sektor verschiedenen zweiten Sektor eingeschrie­ ben.
Wenn bei einer zweiten Ausführungsform der erfindungsgemäßen Speichereinheit mit einem Parallelspeicher ein jeweiliger Block in dem Parallelspeicher eine Vielzahl von Sektoren und eine Vielzahl von Ausweichsektoren enthält und die Daten nicht in einem ersten Sektor an der ermittelten Adresse ein­ geschrieben werden können, werden die Daten in einen Aus­ weichsektor in dem gleichen Block wie der erste Sektor einge­ schrieben. Dann wird in der Adressenumsetztabelle eine physi­ kalische beziehungsweise reale Adresse in dem Parallelspei­ cher entsprechend der logischen- Adresse auf eine Adresse des zweiten Sektors beziehungsweise Ausweichsektors umgeschrie­ ben. Auf diese Weise wird die Anzahl Verfügbarer Sektoren konstant gehalten. Ferner ist dann eine der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des zweiten Sektors umgeschrieben. Wenn alle Aus­ weichsektoren in dem Block benutzt worden sind, werden vor­ zugsweise die Daten sowie die in dem Block eingeschriebenen Daten in einen unbenutzten zweiten Block der Blöcke einge­ schrieben. Gleichermaßen werden bei dem Einschreiben von Da­ ten in einen Parallelspeicher mit einer Vielzahl von Sektoren dann, wenn die Daten nicht in einem ersten Sektor an der er­ mittelten Adresse eingeschrieben werden können, die Daten in einen Ausweichsektor eingeschrieben.
Bei einer dritten Ausführungsform der Erfindung enthält die Speichereinheit einen Parallelspeicher mit einer Vielzahl von Sektoren und einer Vielzahl von Sektorkenndaten (Kennungen) zum Speichern von Statusdaten hinsichtlich der Sektoren sowie eine Adressenumsetzeinrichtung, die eine durch einen Schreib­ befehl bestimmte logische Adresse auf eine reale Adresse in dem Parallelspeicher umsetzt. Wenn die Daten nicht an der der logischen Adresse entsprechenden realen Adresse eingeschrie­ ben werden können, werden die Daten in einen zweiten Sektor eingeschrieben und in einer Adressenumsetztabelle wird die der logischen Adresse entsprechende reale Adresse auf die reale Adresse des zweiten Sektors umgeschrieben.
Bei einer vierten Ausführungsform weist die erfindungsgemäße Speichereinheit einen Parallelspeicher auf, der eine Vielzahl von Sektoren, eine Vielzahl von Ausweichsektoren und eine Vielzahl von Sektorkenndaten (Kennungen) für das Speichern von logischen Adressen für die Sektoren enthält. Eine Adres­ senumsetzeinrichtung setzt eine durch einen Schreibbefehl be­ stimmte logische Adresse in eine physikalische beziehungswei­ se reale Adresse in dem Parallelspeicher um. Wenn an der der logischen Adresse entsprechenden realen Adresse die Daten nicht eingeschrieben werden können, werden die Daten in einen Ausweichsektor eingeschrieben und die in der Sektorkennung gespeicherte logische Adresse wird in die Sektorkennung für den Ausweichsektor eingespeichert.
Ein mit der Erfindung erzielter Vorteil besteht darin, daß die Lebensdauer der Speichereinheit verlängert werden kann. Ein mit der Erfindung erzielter weiterer Vorteil besteht dar­ in, daß ein Verarbeitungscomputer, an den die Speichereinheit angeschlossen ist, die Speichereinheit abrufen kann, ohne daß spezielle Befehle erforderlich sind.
Die Erfindung wird nachstehend anhand von Ausführungsbeispie­ len unter Bezugnahme auf die Zeichnung näher erläutert, in der
Fig. 1 eine Darstellung eines Verarbeitungscomputers und einer PC-Karte ist,
Fig. 2 ein Schaltbild einer 64 kByte-PC-Karte ist,
Fig. 3 ein Speicherschema eines Speichers ist,
Fig. 4 ein Ablaufdiagramm des Schreibens oder Über­ schreibens bei der Benutzung des Speichers in der PC-Karte ist,
Fig. 5 ein Ablaufdiagramm eines Umschreibeprozesses ist,
Fig. 6 ein Ablaufdiagramm der Anfangseinstellung des Speichers der 64-kByte-PC-Karte ist,
Fig. 7 ein Speicherschema eines anderen Speichers ist,
Fig. 8 ein Ablaufdiagramm des Schreibens oder Über­ schreibens bei der Benutzung des Speichers in der PC-Karte ist,
Fig. 9 ein Ablaufdiagramm eines Umschreibeprozesses ist,
Fig. 10 ein Ablaufdiagramm der Anfangseinstellung des Speichers in einer 64 kByte-PC-Karte 1a ist,
Fig. 11 ein Schaltbild einer 512 Byte-PC-Karte ist,
Fig. 12 ein Speicherschema eines Speichers ist,
Fig. 13 ein Ablaufdiagramm des Schreibens oder Über­ schreibens bei der Benutzung des Speichers ist,
Fig. 14 ein Ablaufdiagramm eines Umschreibeprozesses ge­ mäß einem ersten Beispiel ist,
Fig. 15 ein Ablaufdiagramm eines Leseprozesses ist,
Fig. 16 ein Ablaufdiagramm eines Umschreibeprozesses ge­ mäß einem zweiten Beispiel ist,
Fig. 17 ein Ablaufdiagramm eines Leseprozesses ist und
Fig. 18 ein Ablaufdiagramm der Anfangseinstellung des Speichers der 512 Byte-PC-Karte ist.
Es gibt zwei Arten von Parallelspeichern. Der Speicher der ersten Art ist ein Block-Parallelspeicher, in dem die Daten in einem Format, das gleich einer oder größer als eine Daten­ übertragungseinheit (512 Byte/Sektor) ist, wie in einem For­ mat von 64 kByte gelöscht werden, während in einem Paral­ lelspeicher der zweiten Art die Daten in Datenübertragungs­ einheiten gelöscht werden. Nachstehend wird eine PC-Karte, in der der Block-Parallelspeicher verwendet wird, als 64 kByte- PC-Karte 1a bezeichnet, während eine PC-Karte, in der die Da­ ten in Datenübertragungseinheiten gelöscht werden, als 512 Byte-PC-Karte 1b bezeichnet wird.
In der Zeichnung, in der gleiche oder einander entsprechende Teile durchgehend mit den gleichen Bezugszeichen bezeichnet sind, sind in Fig. 1 ein Verarbeitungscomputer 100 und die 64 kByte-PC-Karte 1a dargestellt. Die PC-Karte 1a (oder 1b) wird in einen Kartenschlitz des Verarbeitungscomputers 100 einge­ führt. Die PC-Karte 1a hat eine Leuchtdiode 2 und einen Schallgeber 3, mit denen einem Benutzer ein Schreibfehler oder Umschreibfehler gemeldet wird. Nachstehend werden Aus­ führungsbeispiele für die 64 kByte-PC-Karte 1a und die 512 Byte-PC-Karte 1b beschrieben.
A. 64 kByte-PC-Karte
Zuerst werden Ausführungsbeispiele der 64 kByte-PC-Karte 1a beschrieben. Die Fig. 2 zeigt eine Schaltung der PC-Karte 1a. Ein Befehl aus dem Verarbeitungscomputer 100 wird von einer Zentraleinheit (CPU) 4 über eine Schnittstellensteuereinheit 5, eine Kartenkonfigurationseinheit 6 und ein Register 7 auf­ genommen. Ein in der PC-Karte 1a enthaltener Speicher 10a oder 10b ist ein Parallelspeicher, in dem Daten in Einheiten von 64 kByte (als ein Block) gelöscht werden. Wenn aus dem Verarbeitungscomputer 100 ein Schreibbefehl für eine logische Adresse empfangen wird, ermittelt die Zentraleinheit 4 durch Abfragen einer Adressenumsetztabelle 8 eine der logischen Adresse entsprechende physikalische bzw. reale Adresse und es werden Informationen (Kenndaten) gelesen, die in einer Sek­ torkennung für die ermittelte reale Adresse gespeichert sind. Falls die Sektorkennung einen Datenwert mit der Bedeutung enthält, daß in die reale Adresse Daten eingeschrieben werden können, werden in den Sektor die Daten aus dem Verarbeitungs­ computer 100 eingeschrieben. Falls ein Schreibfehler auf­ tritt, wird ein Umschreibeprozeß zum Ändern der realen Adres­ se ausgeführt, an der die Daten eingeschrieben werden. Nach­ dem das Einschreiben oder Umschreiben der Daten abgeschlossen ist, wird eine Sektorkennung für diejenige reale Adresse auf den neuesten Stand gebracht, an der die Daten eingeschrieben wurden.
Die Speicher 10a und 10b sind Parallelspeicher, in denen die Daten in Einheiten von 64 kByte (Blockeinheiten) gelöscht werden, wobei die Speicher voneinander verschiedene Speicher­ plätze haben. Der Speicher 10a enthält in seinem Speicherraum (nach Fig. 3) einen Sektorkennungsbereich und einen Sektorbe­ reich, während der andere Speicher 10b in seinem Speicherraum (nach Fig. 7) außer einem Sektorkennungsbereich und einem Sektorbereich einen Ausweichsektorbereich enthält, der be­ nutzt wird, wenn ein fehlerhaftes Einschreiben von Daten auf­ tritt.
A-1. 64 kByte-PC-Karte mit dem Parallelspeicher 10a der er­ sten Art
Es wird die PC-Karte 1a mit dem Parallelspeicher 10a be­ schrieben. In Fig. 3 ist ein Speicherplatz für einen Block in dem Speicher 10a dargestellt. Der Speicherplatz hat zwei Tei­ le, nämlich einen Sektorbereich 21 mit einer Vielzahl von Sektoren 24 und einen Sektorkennungsbereich (Kenndatenbereich) 20, in dem Sektorkennungen 23 gespeichert sind, welche jeweils einem der Sektoren 24 entsprechen. In einem in Fig. 3 schraffiert dargestellten Blockkennungsbe­ reich 22 in dem Sektorkennungsbereich 20 sind Blockkennungen gespeichert. In dem Speicher 10a werden die Daten in einem Format in Einheiten von 64 kByte bzw. von Blöcken gelöscht, welches größer ist als das Format der Datenübertragungsein­ heit von 512 Byte. Der Blockkennungsbereich 22 enthält einen Blockinformationsbereich, in dem Daten über den Nutzungszu­ stand in einem Block gespeichert sind, die beispielsweise an­ zeigen, daß ein entsprechender Sektor nicht benutzt ist oder in diesem Daten gespeichert sind. Ferner enthalten die in dem Bereich außerhalb der Blockkennungen 22 gespeicherten Sektor­ kennungen 23 jeweils einen Logikadressenteil, einen Sektorin­ formationsteil und einen Fehlerkorrekturcodeteil. In dem Lo­ gikadressenteil ist eine logische Adresse enthalten, die ei­ ner physikalischen bzw. realen Adresse entspricht. Der Sek­ torinformationsteil enthält Daten, die beispielsweise die Be­ deutung haben, daß der entsprechende Sektor benutzt ist oder nicht benutzt ist oder der Sektor ein schadhafter Sektor ist, der ein fehlerhaftes Einschreiben verursacht hat.
Die Fig. 4 ist ein Ablaufdiagramm eines von der Zentralein­ heit 4 bei dem Einschreiben oder Umschreiben von Daten ausge­ führten Prozesses. Zuerst wird in einem Statusregister ein Statussignal D3 bzw. Datenanforderungssignal DRQ auf den Pe­ gel "L" rückgesetzt, um dem Verarbeitungscomputer 100 zu mel­ den, daß die Karte 1a für eine Anforderung zum Einschreiben oder Umschreiben von Daten aus dem Verarbeitungscomputer 100 bereit ist (Schritt S100). Nach dem Empfang eines Befehls zum Einschreiben oder Umschreiben an einer logischen Adresse aus dem Verarbeitungscomputer 100 (Schritt S101) wird in dem Sta­ tusregister ein Statussignal D7 bzw. Belegtsignal BSY auf den Pegel "H" gesetzt, um in der Karte den Befehl zu verarbeiten (Schritt S102). Dann werden in einem der aus dem Verarbei­ tungscomputer empfangenen logischen Adresse entprechenden realen Sektor in dem Speicher 10a Daten eingeschrieben oder ungeschrieben (Schritt S103). Falls an diesem realen Sektor ein Schreibfehler auftritt (JA bei einem Schritt S104), wird ein nachfolgend erläuterter Umschreibeprozeß aufgeführt (Schritt S105). Nachdem der Umschreibeprozeß abgeschlossen ist oder kein Schreibfehler aufgetreten ist (NEIN bei dem Schritt 5104) wird das Statussignal D3 bzw. DRQ in dem Sta­ tusregister der Karte 1a auf den Pegel "H" mit der Bedeutung gesetzt, daß der Prozeß in der Karte abgeschlossen ist (Schritt S106), und das Statussignal D7 bzw. BSY in dem Sta­ tusregister wird auf den Pegel "L" rückgesetzt (Schritt S107). Dann wird ein Signal IREQ (Unterbrechungsanforderungssignal auf den Pegel "L" rückge­ setzt (Schritt S108), damit durch den Verarbeitungscomputer 100 eine Prüfung vorgenommen werden kann (Schritt S109).
Als nächstes wird der Umschreibeprozeß bei dem Schritt S105 nach Fig. 4 erläutert. Bei diesem Prozeß werden von der Zen­ traleinheit 4 die Daten in einen unbenutzten anderen Sektor statt in den Sektor eingeschrieben, an dem das Einschreiben der Daten fehlgeschlagen ist. Obgleich dieser Sektor nicht benutzt werden kann, wird auf diese Weise die Lebensdauer der Karte 1a verlängert. In die Kenninformation für diesen Sektor wird ein einen schadhaften Sektor anzeigender Datenwert ein­ geschrieben, um den Zugriff von dem Verarbeitungscomputer 100 her zu verhindern. Andererseits wird in die Kenninformation des anderen Sektors, in den die Daten eingeschrieben werden, ein Datenwert mit der Bedeutung eingeschrieben, daß der Sek­ tor benutzt ist, und die Adressenumsetztabelle wird derart geändert, daß die reale Adresse, die der aus dem Verarbei­ tungscomputer 100 empfangenen logischen Adresse entspricht, die Adresse des anderen Sektors ist. Auf diese Weise ist selbst bei dem Auftreten eines fehlerhaften Einschreibens der Zugriff zu der Karte 1a durch den Verarbeitungscomputer 100 ermöglicht.
Die Fig. 5 ist ein Ablaufdiagramm des Umschreibeprozesses (Schritt S105 nach Fig. 4). Zuerst wird in einen Sektorinfo­ mationsteil für denjenigen Sektor, an dem das Einschreiben der Daten mißlungen ist, ein Datenwert eingeschrieben, der einen schadhaften Sektor anzeigt (Schritt S110). Dann wird in den Sektorkennungen 23 ein Sektor gesucht, für den in einem Sektorinformationsteil für diesen ein Datenwert mit der Be­ deutung eingeschrieben ist, daß der Sektor unbenutzt ist (Schritt S111). Dann werden die Daten in den gefundenen unbe­ nutzten Sektor eingeschrieben und in den Sektorkennungen 23 wird in einem Sektorinformationsteil für diesen Sektor ein Datenwert mit der Bedeutung eingeschrieben, daß dieser Sektor benutzt ist (Schritt S112). Danach wird die Adressenumsetzta­ belle 8 derart umgeschrieben, daß die der logischen Adresse für die Daten entsprechende reale Adresse auf denjenigen Sek­ tor umgeändert wird, in dem die Daten eingeschrieben sind (Schritt S113).
Wenn aus dem Verarbeitungscomputer 100 ein Befehl zum Ein­ schreiben an einer logischen Adresse empfangen wird, werden gemäß der vorangehenden Erläuterung dann, wenn an dem der lo­ gischen Adresse entsprechenden Sektor in dem Parallelspeicher 10a fehlerhaft eingeschrieben wird, die Daten in einen unbe­ nutzten anderen Sektor eingeschrieben. Daher kann selbst dann, wenn die Daten nicht in einen Teil der Sektoren in dem Parallelspeicher 10a eingeschrieben werden können, die Daten in die PC-Karte 1a ohne eine durch das Auftreten eines Feh­ lers verursachte Unterbrechung eingeschrieben werden und es kann die Lebensdauer der PC-Karte 1a verlängert werden.
Als nächstes wird die Initialisierung bzw. Anfangseinstellung der 64 kByte-PC-Karte 1a erläutert. Die PC-Karte 1a steht mit dem Verarbeitungscomputer 100 mittels eines ATA-
Befehlsblockes für die erforderlichen Steuerfunktionen und Statusinformationen in Verbindung. Der Befehlsblock ist ein allgemeines Glied, das sieben Register darstellt, und in dem Register 7 (nach Fig. 2) enthalten. Bei diesem Ausführungs­ beispiel wird zur Anfangseinstellung von Daten in dem Spei­ cher 10a den in dem ATA-Block enthaltenen Befehlen ein Zu­ satzbefehl hinzugefügt. Wenn der Speicher 10a benutzt wird, werden in der 64 kByte-PC-Karte 1a entsprechend dem Zusatzbe­ fehl die Sektoren der Anfangseinstellung unterzogen bzw. die Daten mit Ausnahme an den schadhaften Sektoren gelöscht. Dann wird in den Sektorinformationsteil für einen jeweiligen Sek­ tor, an dem ein fehlerhaftes Löschen von Daten auftritt, ein Datenwert eingeschrieben, der einen schadhaften Sektor an­ zeigt. Nach der Anfangseinstellung wird die an den Verarbei­ tungscomputer 100 auszugebende Information über die Speicher­ kapazität entsprechend der Anzahl derjenigen Sektoren neu ge­ schrieben, die benutzt werden können. Der Verarbeitungscompu­ ter 100 führt das Einschreiben oder Umschreiben von Daten aufgrund dieser Information aus, so daß ein Zugriff zu schad­ haften Sektoren verhindert werden kann.
Die Fig. 6 veranschaulicht den Ablauf eines Prozesses, der von der Zentraleinheit 4 bei dem Empfang des vorangehend ge­ nannten Zusatzbefehls aus dem Verarbeitungscomputer 100 aus­ geführt wird. Ein Anfangswert einer in dem Ablaufdiagramm an­ gewandten Variablen m ist die Anzahl aller Blöcke in dem Speicher 10a. Nachdem aus dem Verarbeitungscomputer 100 der Zusatzbefehl empfangen wurde (Schritt S150), wird die einen zu verarbeitenden Block bezeichnende Variable m geprüft (Schritt S151). Wenn m nicht gleich Null ist (NEIN bei dem Schritt S151) beziehungsweise ein zu verarbeitender Block be­ stimmt ist, wird untersucht, ob in dem Block mindestens eine Sektorkennung enthalten ist, in die ein Datenwert einge­ schrieben ist, der einen schadhaften Sektor anzeigt (Schritt S152). Falls ermittelt wird, daß in dem Block mindestens ein derartiger Sektor enthalten ist (JA bei einem Schritt S153), werden die Daten in dem Block mit Ausnahme der schadhaften Sektoren gelöscht oder voreingestellt (Schritt S154). Falls ermittelt wird, daß kein derartiger Sektor in dem Block vor­ handen ist (NEIN bei dem Schritt S153), werden alle Sektoren in dem Block gelöscht oder voreingestellt (S155). Wenn als nächstes ermittelt wird, daß das Löschen normal abgeschlossen ist (JA bei einem Schritt S156), wird in die Sektorkennungen für die Sektoren, in denen die Daten gelöscht sind, ein Da­ tenwert mit der Bedeutung eingeschrieben, daß der Sektor nicht benutzt ist (Schritt S157). Fall andererseits ermittelt wird, daß ein fehlerhaftes Löschen der Daten aufgetreten ist (NEIN bei dem Schritt 5156), wird in die Sektorkennungen der Sektoren, in denen die Daten auf normale Weise gelöscht sind, ein Datenwert mit der Bedeutung eingeschrieben, daß der Sek­ tor unbenutzt ist, und in die Sektorkennungen für die Sekto­ ren, in denen die Daten fehlerhaft gelöscht wurden, wird ein Datenwert zur Anzeige eines schadhaften Sektors eingeschrie­ ben (Schritt S158).
Die Blockkennungen enthalten jeweils außer dem Blockinforma­ tionsteil für das Einschreiben von Informationen zum Beispiel darüber, daß der Block ungenutzt ist oder beschriftet ist, einen Löschungsanzahlteil, in dem die Häufigkeit der Anfangs­ einstellung des Blockes enthalten ist. Nach Abschluß des Pro­ zesses bei dem Schritt S157 oder S158 wird-dann die in dem Löschungsanzahlteil gespeicherte Anzahl um eins erhöht und in den Blockinformationsteil wird ein Datenwert mit der Bedeu­ tung eingeschrieben, daß der Block unbenutzt ist (Schritt 5159). Als nächstes wird die Variable m um eins verringert (Schritt S160) und der Ablauf kehrt zu dem Schritt S151 zu­ rück, um die Prozesse in den Schritten S152-S160 für einen anderen Block zu wiederholen, bis der Löschprozeß an allen Blöcken abgeschlossen ist.
Wenn der vorangehend beschriebene Löschprozeß an allen Blöc­ ken abgeschlossen ist bzw. die Variable m zu 0 wird (JA bei dem Schritt S151), wird die Anzahl von unbenutzten Sektoren gezählt und es werden die entsprechend einem Erkennungssteu­ erbefehl dem Verarbeitungscomputer 100 zuzuführenden Informa­ tionen wie eine "Zylindernummer", eine "Kopfnummer" und eine Sektorenanzahl neu eingeschrieben (Schritt S161). Dann wird das Statussignal D3 bzw. Datenanforderungssignal DRQ auf den Pegel "H" gesetzt, der den Abschluß des Prozesses in der Kar­ te anzeigt (Schritt S162), und das Statussignal D7 bzw. Be­ legtsignal BSY wird auf den Pegel "L" rückgesetzt (Schritt S163). Als nächstes wird das Unterbrechungsanforderungssignal IREQ zum Anfordern einer Unterbrechung an dem Verarbeitungs­ computer 100 auf den Pegel "L" rückgesetzt (Schritt S164), um eine Prüfung durch den Verarbeitungscomputer 100 zuzulassen (Schritt S165).
Wenn infolge eines Fehlers ein Sektor gewechselt wird, in den Daten eingeschrieben werden, wird gemäß den vorangehenden Er­ läuterungen die der logischen Adresse entsprechende Adresse eines Sektors in der Adressenumsetztabelle auf die Adresse des Sektors umgeändert, in den die Daten eingeschrieben wer­ den. Ferner werden in dem Sektorkennungsbereich 20 die rele­ vanten Daten entsprechend dem Wechsel des Sektors umgeschrie­ ben. Daher muß der Verarbeitungscomputer 100 selbst bei dem Auftreten von schadhaften Sektoren keinen speziellen Prozeß für eine derartige PC-Karte haben. Wenn beispielsweise der Verarbeitungscomputer 100 einen Schreibbefehl sendet, sendet er keinen speziellen Befehl. Bei dem Zugriff des Verarbei­ tungscomputers 100 zu der PC-Karte 1a sendet der Computer der PC-Karte 1a einen Erkennungssteuerbefehl zu. Daraufhin sendet die Zentraleinheit 4 dem Verarbeitungscomputer die Informa­ tionen über die in dem Speicher 10a verfügbare Speicherkapa­ zität wie die "Zylindernummer", die "Kopfnummer" und die Sek­ torenanzahl zu und der Verarbeitungscomputer 100 erhält damit Informationen über die nutzbare Speicherkapazität
A-2. 64 kByte-PC-Karte mit dem Parallelspeicher 10b der zwei­ ten Art
Als nächstes wird die PC-Karte 1a mit dem Parallelspeicher 10b beschrieben. In Fig. 7 ist der Speicherraum in einem Block 33 in dem Speicher 10b dargestellt. Dieser Speicherraum hat drei Teile und ist von dem in Fig. 3 dargestellten da­ durch verschieden, daß ein Ausweichsektorbereich 32 vorgese­ hen ist. Ein erster Teil der drei Teile ist ein Sektorken­ flungsbereich 30. In einem durch Schraffierung in dem Sektor­ kennungsbereich 30 dargestellten Blockkennungsbereich 37 sind Blockkennungen mit einem Blockinformationsbereich gespei­ chert. In dem Blockinformationsbereich sind Statusdaten hin­ sichtlich der Blöcke beispielsweise mit der Bedeutung gespei­ chert, daß der Block unbenutzt ist oder benutzt ist. Mit Kreuzen in dem Sektorkennungsbereich 30 nach Fig. 7 darge­ stellte Bereiche enthalten den Ausweichsektoren entsprechende Ausweichsektorkennungen 38. Außerhalb der in Fig.7 durch Schraffierung und Kreuze dargestellten Bereiche 37 und 38 sind in dem Sektorkennungsbereich 30 Sektorkennungen 34 ge­ speichert Jede der Sektorkennungen entspricht einem Sektor und eine jede Sektorkennung 34 enthält einen Logikadressenbe­ reich, einen Sektorinformationsbereich und einen Fehlerkor­ rekturcodebereich. In dem Logikadressenbereich ist eine logi­ sche Adresse gespeichert, die einer physikalischen bzw. rea­ len Adresse entspricht. In dem Sektorinformationsbereich sind Daten gespeichert, die beispielsweise anzeigen, daß der ent­ sprechende Sektor benutzt ist oder unbenutzt ist oder daß der Sektor ein schadhafter Sektor ist, der ein fehlerhaftes Ein­ schreiben verursacht. Der zweite Teil ist ein Sektorbereich 31, der Sektoren 35 enthält, die den in dem Sektorkennungsbe­ reich 30 gespeicherten Sektorkennungen entsprechen. Der drit­ te Teil ist der Ausweichsektorbereich 32, der eine Vielzahl von Ausweichsektoren 36 enthält, die anstelle von Sektoren benutzt werden, in denen ein fehlerhaftes Einschreiben auf­ tritt.
In Fig. 8 ist der Ablauf eines Prozesses dargestellt, der durch die Zentraleinheit 4 ausgeführt wird, wenn Daten einge­ schrieben oder umgeschrieben werden. Zuerst wird in einem Statusregister in der 64 kByte-PC-Karte 1a das Statussignal D3 bzw. Datenanforderungssignal DRQ auf den Pegel "L" rückge­ setzt, um dem Verarbeitungscomputer 100 zu melden, daß die Karte 1a für eine Anforderung zum Einschreiben oder Umschrei­ ben von Daten aus dem Verarbeitungscomputer 100 bereit ist (Schritt S200). Nachdem aus dem Verarbeitungscomputer 100 ein Befehl zum Einschreiben oder Umschreiben an einer logischen Adresse empfangen wird (Schritt S201), wird in dem Statusre­ gister das Statussignal D7 bzw. Belegtsignal BSY auf den Pe­ gel "H" gesetzt, um den Befehl in der PC-Karte 1a zu verar­ beiten (Schritt S202). Dann werden an einer der aus dem Ver­ arbeitungscomputer 100 empfangenen logischen Adresse entspre­ chenden realen Adresse in der PC-Karte Daten eingeschrieben oder umgeschrieben (Schritt S203). Falls an dem realen Sektor ein Schreibfehler auftritt (JA bei einem Schritt 5204), wird ein nachfolgend erläuterter Umschreibeprozeß (nach Fig. 9) aufgeführt (Schritt 5205). Nachdem der Umschreibeprozeß (Schritt S205) abgeschlossen ist oder kein Schreibfehler auf­ getreten ist (NEIN bei dem Schritt S204), wird das Sta­ tussignal D3 bzw. DRQ in dem Statusregister in der PC-Karte 1a auf den Pegel "H" mit der Bedeutung gesetzt, daß der Pro­ zeß in der Karte abgeschlossen ist (Schritt 5206), und es wird in dem Statusregister das Statussignal D7 bzw. BSY auf den Pegel "L" rückgesetzt (Schritt S207). Danach wird das Signal IREQ auf den Pegel "L" rückgesetzt (Schritt S208), da­ mit eine Prüfung durch den Verarbeitungscomputer 100 vorge­ nommen werden kann (Schritt S209).
Wenn gemäß den vorangehenden Erläuterungen in der PC-Karte 1a der Speicher 10a eingesetzt wird, werden die Daten in einen unbenutzten Sektor statt in einen Sektor eingeschrieben, in dem ein Schreibfehler auftritt. Wenn dagegen bei diesem Aus­ führungsbeispiel der PC-Karte 1a der Speicher 10b eingesetzt wird, wird bei dem Umschreibeprozeß (Schritt S205) ein im Voraus in dem Ausweichsektorbereich 32 bereitgestellter Aus­ weichsektor auf einen benutzbaren Zustand geändert und es werden die Daten in diesen Sektor eingeschrieben. Auf diese Weise kann die Lebensdauer der PC-Karte 1a verlängert werden und die nutzbare Speicherkapazität konstant gehalten werden. Falls ferner ein fehlerhaftes Einschreiben mit einer bestimm­ ten Häufigkeit auftritt, wird dem Benutzer der Schreibfehler durch Aufleuchten der Leuchtdiode 2 oder durch Abgabe eines Warntones durch den Schallgeber 3 gemeldet.
Die Fig. 9 ist ein Ablaufdiagramm des Umschreibeprozesses (Schritt S205 nach Fig. 8). Zuerst wird in dem Sektorinforma­ tionsbereich für den Sektor, in dem die Daten nicht einge­ schrieben werden können, ein einen schadhaften Sektor anzei­ gender Datenwert eingeschrieben (Schritt S220). Dann wird ein Ausweichsektor in den Ausweichsektorkennungen 38 in dem Sek­ orkennungsbereich 30 gesucht, in denen jeweils einen Aus­ weichsektor anzeigende Daten eingeschrieben sind (Schritt 5221). Falls ermittelt wird, daß eine solche Ausweichsektor­ kennung vorhanden ist (JA bei einem Schritt S222), wird zur Anfangseinstellung in den Sektorinformationsbereich der Aus­ weichsektorkennung für den Ausweichsektor ein Datenwert mit der Bedeutung eingeschrieben, daß der Sektor unbenutzt ist (Schritt S223). Nach der Anfangseinstellung der Ausweichsek­ torkennung werden die Daten in den Ausweichsektor einge­ schrieben und in den Sektorinformationsbereich in der Aus­ weichsektorkennung, die dem Sektor entspricht, in den die Da­ ten eingeschrieben sind, wird ein die Benutzung des Sektors anzeigender Datenwert eingeschrieben (Schritt S224). Als nächstes wird die Adressenumsetztabelle 8 derart neu be­ schriftet, daß die der durch den Verarbeitungscomputer 100 bestimmten logischen Adresse entsprechende reale Adresse auf denjenigen Sektor abgeändert wird, in den bei dem Schritt 5224 die Daten eingeschrieben wurden (Schritt 225). Somit werden die Daten in den Ausweichsektor eingeschrieben.
Falls andererseits ermittelt wird, daß in den Ausweichsektor­ kennungen 38 keine Ausweichsektorkennung mit einem Datenwert vorhanden ist, der einen unbenutzten Ausweichsektor anzeigt (NEIN bei dem Schritt S222), wird entschieden, daß alle Aus­ weichsektoren in dem Block 33 schon benutzt sind, und es wird der folgende Prozeß zum Einschreiben der Daten in einen unbe­ nutzten anderen Block ausgeführt. Zuerst werden Daten in ei­ nen Sektor in einem nachfolgend als Ausweichblock bezeichne­ ten anderen Block eingeschrieben, in dessen Blockkennungsbe­ reich 37 im Blockinformationsbereich ein Datenwert mit der Bedeutung eingeschrieben ist, daß der Block unbenutzt ist, und es wird in den Sektorinformationsbereich in der Sektor­ kennung 34, die dem Sektor entspricht, in den die Daten ein­ geschrieben werden, ein einen benutzten Sektor anzeigender Datenwert eingeschrieben (Schritt S226). Dann werden von den Daten in dem Block ohne Ausweichsektor die Daten aus den Sek­ toren, die Sektorkennungen mit dem die Benutzung des Sektors anzeigenden Datenwert entsprechen, fortgesetzt in den Aus­ weichblock kopiert (Schritt S227). Dann wird in die Sektorin­ formationsbereiche der Sektorkennungen 34 für die bei dem Schritt S227 zu dem Ausweichblock kopierten Sektoren ein ei­ nen schadhaften Sektor anzeigender Datenwert eingeschrieben, um den Zugriff zu verhindern (Schritt S228). Dann wird in den Sektorinformationsbereich in den Sektorkennungen 34 für den Ausweichblock ein Datenwert mit der Bedeutung eingeschrieben, daß die Sektoren benutzt sind (Schritt S229), und der Inhalt der Adressenumsetztabelle 8 geändert (Schritt S230). Zum Schluß leuchtet die Leuchtdiode 2 auf und der Schallgeber 3 gibt einen Ton ab, um dem Benutzer zu melden, daß ein Schreibfehler aufgetreten ist und daß die Kapazität der PC- Karte verringert ist (Schritt S231). Die Warnmeldung kann auch nur mit der Leuchtdiode 2 oder nur mit dem Schallgeber 3 abgegeben werden.
Als nächstes wird die Anfangseinstellung bzw. Initialisierung des Speichers 10b erläutert. Wenn gemäß den vorangehenden Ausführungen dem Benutzer mit der Leuchtdiode 2 und/oder dem Schallgeber 3 ein fehlerhaftes Einschreiben gemeldet wird, wird von dem durch den Benutzer bedienten Verarbeitungscompu­ ter 100 ein Zusatzbefehl für eine dieser Meldung entsprechend­ de Anfangseinstellung der 64 kByte-PC-Karte 1a abgegeben. Daraufhin werden von der Zentraleinheit 4 Sektorkennungen ge­ sucht, in die einen schadhaften Sektor anzeigende Daten ein­ geschrieben sind, außer an den diesen Sektorkennungen ent­ sprechenden Sektoren die Anfangseinstellungen der Sektoren vorgenommen und die entsprechend einem aus dem Verarbeitungs­ computer 100 empfangenen Erkennungssteuerbefehl auszugebenden Informationen über die Speicherkapazität neu eingeschrieben In Fig. 10 ist der Ablauf eines Prozesses dargestellt, der von der Zentraleinheit 4 ausgeführt wird, wenn der vorange­ hend genannte Zusatzbefehl empfangen wird. Ein Anfangswert einer Variablen m in dem Ablaufdiagramm ist die Anzahl aller Blöcke in dem Speicher 10a. Nachdem aus dem Verarbeitungscom­ puter 100 der Zusatzbefehl empfangen wurde (Schritt S250), wird die einen zu verarbeitenden Block bestimmende Variable m geprüft (Schritt S251). Wenn die Variable m nicht Null ist bzw. ein zu verarbeitender Block bestimmt ist (NEIN bei dem Schritt S251), wird untersucht, ob der Block eine Sektorken­ nung oder Sektorkennungen mit jeweils einem Datenwert ent­ hält, der einen schadhaften Sektor anzeigt (Schritt S252). Falls ermittelt wird, daß in dem Block eine solche Sektorken­ nung enthalten ist oder solche Sektorkennungen enthalten sind (JA bei einem Schritt S253), werden die Sektoren in dem Block mit Ausnahme der schadhaften Sektoren gelöscht bzw. der An­ fangseinstellung unterzogen (Schritt S254). Falls ermittelt wird, daß in dem Block keine derartige Sektorkennung vorhan­ den ist (NEIN bei dem Schritt S253), werden alle Sektoren in dem Block gelöscht oder voreingestellt (Schritt S255). Wenn als nächstes ermittelt wird, daß die Löschung oder Anfangs­ einstellung auf normale Weise abgeschlossen ist (JA bei einem Schritt S256), wird in die Sektorinformationsbereiche in Aus­ weichsektorkennungen für die auf normale Weise zu löschenden Ausweichsektoren jeweils ein Datenwert zur Anzeige eines Aus­ weichsektors eingeschrieben (Schritt S257) und es wird in die Sektorinformationsbereiche der Sektorkennungen ein einen un­ benutzten Sektor anzeigender Datenwert eingeschrieben (Schritt S258). Falls andererseits ermittelt wird, daß ein fehlerhaftes Löschen von Daten aufgetreten ist (NEIN bei dem Schritt S256), werden in die Sektorinformationsbereiche der Ausweichsektorkennungen 38 für die Sektoren, in denen die Da­ ten normal gelöscht wurden, ein einen Ausweichsektor anzei­ gender Datenwert, in die Sektorinformationsbereiche der Sek­ torkennungen 34 ein einen unbenutzten Sektor anzeigender Da­ tenwert und in die Sektorkennungen oder Ausweichsektor­ kennungen für Sektoren, in denen ein fehlerhaftes Löschen der Daten aufgetreten ist, ein einen schadhaften Sektor anzeigen­ der Datenwert eingeschrieben (Schritt S259). Der Blockken­ nungsbereich 37 enthält außer dem Blockinformationsbereich für das Einschreiben von Informationen beispielsweise dar­ über, daß der Block benutzt ist oder unbenutzt ist, einen Löschungsanzahlbereich für das Speichern der Anzahl von An­ fangseinstellungen bzw. Initialisierungen des Blockes. Nach dem Abschluß der Verarbeitung bei dem Schritt S258 oder S259 wird dann die in dem Löschungsanzahlbereich gespeicherte An­ zahl um "1" erhöht und in den Blockinformationsbereich wird ein Datenwert mit der Bedeutung eingeschrieben, daß der Block unbenutzt ist (Schritt 5260). Als nächstes wird die Variable m um "1" verringert (Schritt S261) und der Ablauf kehrt zu dem Schritt S251 zurück, um die Verarbeitung bei den Schrit­ ten S252 - S261 jeweils an einem anderen Block zu wiederho­ len, bis der Löschprozeß an allen Blöcken abgeschlossen ist.
Wenn der Löschprozeß an allen Blöcken abgeschlossen ist bzw. die Variable m zu 0 wird (JA bei dem Schritt 5251), wird die Anzahl unbenutzter Sektoren gezählt und es werden die Infor­ mationen wie die "Zylindernummer", die "Kopfnummer" und die Sektorenanzahl umgeschrieben (Schritt S262). (Bei dem Zugriff des Verarbeitungscomputers zu der PC-Karte 1a sendet dieser einen Erkennungssteuerbefehl. Daraufhin sendet die Zen­ traleinheit 4 dem Verarbeitungscomputer 100 die Informationen über die in dem Speicher 10a verfügbare Speicherkapazität wie die "Zylindernummer", die "Kopfnummer" bzw. "Spurnummer" und die Sektorenanzahl, so daß der Verarbeitungscomputer 100 die Informationen über die verfügbare Speicherkapazität erhält). Dann wird zur Anzeige des Abschlusses der Verarbeitung in der Karte 1a das Statussignal D3 bzw. Datenanforderungssignal DRQ auf den Pegel "H" gesetzt (Schritt S263) und das Statussignal D7 bzw. Belegtsignal BSY wird auf den Pegel "L" rückgesetzt (Schritt S264). Als nächstes wird das Unterbrechungsanforde­ rungssignal IREQ für das Anfordern einer Unterbrechung an dem Verarbeitungscomputer 100 auf den Pegel "L" rückgesetzt (Schritt S265), damit durch den Verarbeitungscomputer 100 ei­ ne Prüfung vorgenommen werden kann (Schritt S266).
In der vorstehend beschriebenen PC-Karte sind Ausweichsekto­ ren vorgesehen. Wenn ein Befehl zum Schreiben an einer logi­ schen Adresse empfangen wird und an einem der logischen Adresse entsprechenden Sektor in dem Parallelspeicher 10b ein fehlerhaftes Einschreiben auftritt, werden die Daten dadurch in einen unbenutzten Ausweichsektor eingeschrieben, daß die Ausweichsektorkennung für den Ausweichsektor in einen Zustand gebracht wird, bei dem der Ausweichsektor benutzt werden kann. Auf diese Weise können selbst dann, wenn die Daten in einen Teil der Sektoren des Parallelspeichers 10b nicht ein­ geschrieben werden können, die Daten ohne eine durch den Feh­ ler verursachte Unterbrechung des Betriebsvorganges einge­ schrieben werden und es kann die Lebensdauer des Paral­ lelspeichers verlängert werden. Es ist anzumerken, daß die Anzahl von benutzbaren Sektoren in dem Parallelspeicher 10b konstant gehalten werden kann.
Falls ferner alle Ausweichsektoren in einem Block benutzt sind, werden die Daten in einen anderen unbenutzen Block ein­ geschrieben. Auf diese Weise kann die Lebensdauer des Paral­ lelspeichers noch mehr verlängert werden.
Wenn der Sektor gewechselt wird, in den Daten eingeschrieben werden, wird die der logischen Adresse entsprechende Adresse eines Sektors in der Adressenumsetztabelle auf die Adresse desjenigen Sektors umgeändert, in den die Daten eingeschrie­ ben werden. Ferner werden entsprechend dem Sektorwechsel die relevanten Daten in den Sektorbereichen 30 und 32 umgeschrie­ ben. Bei Blockwechsel werden entsprechend der Änderung des Blockes die relevanten Daten in den Sektorbereichen 30 und 32 für den vorherigen ausgewechselten und den anderen zweiten Block umgeschrieben. Daher ist in dem Verarbeitungscomputer 100 für eine derartige PC-Karte 1a selbst bei dem Auftreten von schadhaften Sektoren kein spezieller Prozeß erforderlich. Wenn beispielsweise von dem Verarbeitungscomputer 100 in die PC-Karte Daten eingeschrieben werden, ist kein besonderer Be­ fehl von dem Computer erforderlich. Bei dem Zugriff des Ver­ arbeitungscomputers 100 zu der PC-Karte 1a gibt der Computer an die PC-Karte 1a einen Erkennungssteuerbefehl ab, um die notwendigen Informationen über die Speicherkapazität zu er­ halten.
B. 512 Byte-PC-Karte
Die in Fig. 1 in Klammern angegebenen Bezugszeichen betreffen die 512 Byte-PC-Karte 1b, in der die Daten in Datenübertra­ gungseinheiten (512 Byte/Sektor) gelöscht werden. Die PC- Karte 1b wird in den Kartenschlitz in dem Verarbeitungscompu­ ter 100 eingeführt. Die 512 Byte-PC-Karte 1b hat eine Leucht­ diode 12 und einen Schallgeber 13 als Vorrichtung, mit der dem Benutzer ein Schreibfehler oder Umschreibfehler gemeldet wird.
In Fig. 11 ist die Schaltung der 512 Byte-PC-Karte 1b darge­ stellt. Ein Befehl aus dem Verarbeitungscomputer 100 wird von einer Zentraleinheit (CPU) 14 über eine Schnittstellensteuer­ einheit 15, eine Kartenkonfigurationseinheit 16 und ein Regi­ ster 17 aufgenommen. Ein in der 512 Byte-PC-Karte 1b enthal­ tener Speicher 20 ist ein Parallelspeicher, in dem die Daten in Sektoreneinheiten (512 Byte) gelöscht werden. Die Zen­ traleinheit 14 liest Informationen, die in einer Sektorken­ nung für einen Physikalischen bzw. realen Sektor gespeichert sind, der durch eine Adressenumsetzschaltung 18 entsprechend einer aus dem Verarbeitungscomputer 100 empfangenen logischen Adresse bestimmt wird. Wenn in der Sektorkennung ein Daten­ wert mit der Bedeutung gespeichert ist, daß der Sektor be­ nutzt werden kann, werden die Daten aus dem Verarbeitungscom­ puter 100 an dieser realen Adresse eingeschrieben. Nach dem Einschreiben der Daten wird die Sektorkennung für diesen Sek­ tor fortgeschrieben bzw. auf den neuesten Stand gebracht. Falls der zu beschriftende reale Sektor ein schadhafter Sek­ tor ist, der nicht benutzt werden kann, führt die Zentralein­ heit 14 einen von nachfolgend beschriebenen Umschreibeprozes­ sen aus. Falls die Anzahl von Ausweichsektoren in dem Spei­ cher 20 gleich einem Schwellenwert q oder geringer ist, leuchtet die Leuchtdiode 12 auf und der Schallgeber 13 gibt einen Ton ab, um dem Benutzer einen Fehler zu melden.
In Fig. 12 ist ein Speicherraum des Speichers 20 dargestellt, der ein Parallelspeicher ist, in dem das Löschen in Daten­ übertragungseinheiten (512 Byte/Sektor) erfolgt. Der Spei­ cherraum hat drei Teile. Ein erster Teil ist ein Sektorken­ nungsbereich 51, in dem Sektorkennungen 54 gespeichert sind. Eine Sektorkennung 54 entspricht jeweils einem Sektor. Die Sektorkennung 54 enthält einen Logikadressenbereich, einen Sektorinformationsbereich und einen Fehlerkorrekturcodebe­ reich. In dem Logikadressenbereich ist eine logische Adresse gespeichert, die einer physikalischen bzw. realen Adresse entspricht. In dem Sektorinformationsbereich sind Daten ge­ speichert, die beispielsweise anzeigen, daß der entsprechende Sektor benutzt ist oder nicht benutzt ist oder der Sektor ein schadhafter Sektor ist, der ein fehlerhaftes Einschreiben verursacht hat. Der zweite Teil ist ein Sektorbereich 52 mit Sektoren 55. Der dritte Teil ist ein Ausweichsektorbereich 53, der Ausweichsektoren 56 aus einer Vielzahl von Ausweich­ sektoren 56 enthält, die anstelle von Sektoren zu benutzen sind, in denen Schreibfehler auftreten. Ein in Fig. 12 durch Schraffierung dargestellter Ausweichsektorkennungsbereich 57 in dem Sektorkennungsbereich 51 enthält Ausweichsektorkennun­ gen, die den Ausweichsektoren 56 entsprechen.
In Fig. 13 ist der Ablauf eines von der Zentraleinheit bei dem Einschreiben oder Umschreiben von Daten ausgeführten Pro­ zesses dargestellt. Zuerst wird in einem Statusregister in der PC-Karte 1b ein Statussignal D3 bzw. Datenanforderungs­ signal DRQ auf den Pegel "L" rückgesetzt, um dem Verarbei­ tungscomputer 100 zu melden, daß die Karte 1b für eine Anfor­ derung zum Einschreiben oder Umschreiben von Daten aus dem Verarbeitungscomputer 100 bereit ist (Schritt S300). Nachdem aus dem Verarbeitungscomputer 100 ein Befehl zum Einschreiben oder Umschreiben an einer logischen Adresse empfangen wurde (Schritt S301), wird in dem Statusregister ein Statussignal D7 bzw. Belegtsignal BSY auf den Pegel "H" gesetzt, um den Befehl zu verarbeiten (Schritt S302). Dann werden an einem der aus dem Verarbeitungscomputer 100 empfangenen logischen Adresse entsprechendem realen Sektor in dem Speicher 20 Daten eingeschrieben oder umgeschrieben (Schritt 303). Falls an dem realen Sektor ein Schreibfehler auftritt (JA bei einem Schritt 304), wird ein nachfolgend erläuterter Umschreibepro­ zeß ausgeführt (Schritt S305). Nachdem der Umschreibeprozeß abgeschlossen ist (Schritt 5305) oder kein Schreibfehler auf­ getreten ist (NEIN bei dem Schritt S304), wird in dem Status­ register das Statussignal D3 bzw. DRQ auf den Pegel "H" mit der Bedeutung gesetzt, daß die Verarbeitung in der Karte ab­ geSchlossen ist (Schritt S306) und das Statussignal D7 bzw. BSY in dem Statusregister wird auf den Pegel "L" rückgesetzt (Schritt S307). Dann wird ein Signal IREQ auf den Pegel "L" rückgesetzt (Schritt 5308), damit durch den Verarbeitungscom­ puter 100 eine Prüfung vorgenommen werden kann (Schritt S309).
Bei einem ersten Beispiel für den Umschreibeprozeß (Schritt S305 in Fig. 13) werden von der Zentraleinheit 14 die Daten statt in einen Sektor, in den die Daten nicht auf normale Weise eingeschrieben werden können, in einen unbenutzten Aus­ weichsektor 56 eingeschrieben, um die Anzahl von Sektoren für den Zugriff durch den Verarbeitungscomputer 100 konstant zu halten. Damit kann die Lebensdauer der Karte 1b verlängert werden. Falls ferner die Anzahl von verfügbaren Ausweichsek­ toren gleich q oder geringer ist, wird zur Warnmeldung an den Benutzer die Leuchtdiode 12 eingeschaltet, während der Schallgeber 13 einen Ton abgibt. In den Sektorinformationsbe­ reich der Sektorkennung für den Sektor, in dem der Schreib­ fehler aufgetreten ist, wird ein einen schadhaften Sektor an­ zeigender Datenwert eingeschrieben und in den Logikadressen­ bereich wird die Adresse des Ausweichsektors eingeschrieben. Falls dann in dem Sektorinformationsbereich der Sektorkennung für den abzurufenden Sektor der den schadhaften Sektor anzei­ gende Datenwert eingeschrieben ist, wird von der Zentralein­ seit 14 die in dem Logikadressenbereich der Sektorkennung eingeschriebene Adresse des Ausweichsektors ausgelesen und die Daten werden in den Ausweichsektor mit dieser Adresse eingeschrieben bzw. aus diesem ausgelesen.
Die Fig. 14 ist ein Ablaufdiagramm des vorstehend beschrieben­ nen Umschreibeprozesses (Schritt S305 in Fig. 13). Zuerst wird eine Ausweichsektorkennung 57 mit einem einen Ausweich­ sektor anzeigenden Datenwert gesucht (Schritt S350). Falls ermittelt wird, daß eine solche Ausweichsektorkennung vorhan­ den ist (JA bei einem Schritt S351), wird zur Anfangseinstel­ lung in den Sektorkennungsbereich der Ausweichsektorkennung 57 ein Datenwert mit der Bedeutung eingeschrieben, daß der Sektor unbenutzt ist (Schritt S352). Nach der Anfangseinstel­ lung der Ausweichsektorkennung werden die Daten in den be­ treffenden Ausweichsektor 56 eingeschrieben (Schritt S353). In den Sektorinformationsbereich der Sektorkennung für den Sektor, in dem ein Schreibfehler aufgetreten ist, wird ein Datenwert eingeschrieben, der einen schadhaften Sektor an­ zeigt, und in den Logikadressenbereich wird die reale Adresse des Ausweichsektors 56 eingeschrieben (Schritt S354). Falls andererseits durch den Verarbeitungscomputer 100 aus einem einer logischen Adresse entsprechenden Sektor ausgelesen soll, der als schadhafter Sektor festgestellt ist, werden von dem Verarbeitungscomputer Daten aus dem Ausweichsektor mit der Adresse ausgelesen, die in dem Logikadressenbereich der Sektorkennung für den schadhaften Sektor eingeschrieben ist. Falls schließlich die Anzahl verfügbarer Ausweichsektoren 56 gleich g oder geringer ist (JA bei einem Schritt 5355), wer­ den zur Meldung an den Benutzer die Leuchtdiode 12 und der Schallgeber 13 eingeschaltet (Schritt S356).
Falls ermittelt wird, daß keine Ausweichsektorkennung vorhan­ den ist, in der ein einen Ausweichsektor anzeigender Daten­ wert gespeichert ist (NEIN bei dem Schritt S351), werden in dem Statusregister ein Signal D7 zur Anzeige eines schadhaf­ ten Blockes auf "l" (Schritt S357) und ein Signal D0 zur An­ zeige eines Fehlers auf "1" gesetzt (Schritt S358).
Die Fig. 15 ist ein Ablaufdiagramm eines Leseprozesses Zu­ erst wird ein Befehl zum Lesen an einer logischen Adresse empfangen (Schritt S401). Falls in dem Sektorinformationsbe­ reich der Sektorkennung für den Sektor mit der realen Adres­ se, die durch die Adressenumsetzschaltung 18 entsprechend der logischen Adresse bestimmt ist, ein Datenwert mit der Bedeu­ tung "schadhafter Sektor" eingeschrieben ist (JA bei einem Schritt S402), wird die in den Logikadressenbereich dieser Sektorkennung eingeschriebene Adresse ausgelesen (Schritt S403) und es werden die Daten aus dem Ausweichsektor mit die­ ser Adresse ausgelesen (Schritt 5404). Falls für den Sektor an der durch die Adressenumsetzschaltung 18 bestimmten realen Adresse kein einen schadhaften Sektor anzeigender Datenwert eingeschrieben ist (NEIN bei dem Schritt S402), werden die Daten aus diesem Sektor ausgelesen (Schritt S405).
Als nächstes wird ein zweites Beispiel für den Umschreibepro­ zeß (Schritt S305 in Fig. 13) erläutert. Bei dem zweiten Bei­ spiel wird von der Zentraleinheit 14 in den Sektorinformati­ onsbereich der Sektorkennung für den Sektor, in dem ein feh­ lerhaftes Einschreiben aufgetreten ist, ein einen schadhaften Sektor anzeigender Datenwert eingeschrieben. Dann werden die Daten in einen unbenutzten Ausweichsektor eingeschrieben und in den Logikadressenbereich der Sektorkennung für den Aus­ weichsektor wird eine logische Adresse eingeschrieben, die in den Logikadressenbereich der Sektorkennung für den Sektor eingeschrieben ist, in dem der Schreibfehler aufgetreten ist. Auf diese Weise kann die Anzahl von Sektoren für den Zugriff durch den Verarbeitungscomputer 100 konstant gehalten werden und die Lebensdauer der Karte verlängert werden. Falls ferner die Anzahl verfügbarer Ausweichsektoren gleich einer Be­ zugsanzahl q oder geringer ist, werden zur Warnung bzw. zur Meldung an den Benutzer die Leuchtdiode 12 und der Schallge­ ber 13 eingeschaltet. Falls dann ein abgerufener Sektor ein schadhafter Sektor ist, sucht die Zentraleinheit 14 eine Aus­ weichsektorkennung 57 mit einem Logikadressenbereich, in den die gleiche Adresse wie diejenige für den schadhaften Sektor eingeschrieben ist, und die Daten werden in den der gefunde­ nen Ausweichsektorkennung entsprechenden Ausweichsektor 56 eingeschrieben bzw. aus diesem ausgelesen.
Die Fig. 16 ist ein Ablaufdiagramm des vorstehend beschriebe­ nen Umschreibeprozesses (Schritt S305 in Fig. 13). Zuerst wird in den Sektorinformationsbereich der Sektorkennung für einen Sektor, in dem ein Schreibfehler aufgetreten ist, ein Datenwert mit der Bedeutung "schadhafter Sektor" eingeschrie­ ben (Schritt S500). Als nächstes wird eine Ausweichsektorken­ nung 57 gesucht, in der ein einen Ausweichsektor anzeigender Datenwert eingeschrieben ist (Schritt 5501). Falls ermittelt wird, daß eine solche Ausweichsektorkennung vorhanden ist (JA bei einem Schritt S502), werden die Daten in den Ausweichsek­ tor 56 eiflgeschrieben, nachdem zur Anfangseinstellung in den Sektorinformationsbereich der Ausweichsektorkennung 57 ein Datenwert mit der Bedeutung eingeschrieben wurde, daß der Sektor unbenutzt ist (Schritt S503). Dann wird in den Sek­ torinformationsbereich ein Datenwert mit der Bedeutung einge­ schrieben, daß der Sektor benutzt ist, und in den Logikadres­ senbereich wird die gleiche Adresse wie die logische Adresse eingeschrieben, welche in dem Logikadressenbereich der Sek­ torkennung für den Sektor eingeschrieben ist, in dem der Schreibfehler aufgetreten ist (Schritt S504). Falls schließ­ lich die Anzahl verfügbarer Ausweichsektoren gleich der An­ zahl g oder geringer ist (JA bei einem Schritt S505), werden zur Warnung bzw. zur Meldung an den Benutzer die Leuchtdiode 12 und der Schallgeber 13 eingeschaltet (Schritt 5506).
Falls andererseits ermittelt wird, daß keine Ausweichsektor­ kennung mit einem einen Ausweichsektor anzeigenden Datenwert vorhanden ist (NEIN bei dem Schritt 502), wird das Signal D7 zur Anzeige eines schadhaften Blockes in dem Fehlerregister bzw. Statusregister auf "1" gesetzt (Schritt S507) und das Signal D0 zur Anzeige eines Fehlers in dem Statusregister wird auf "1" gesetzt (Schritt S508).
Die Fig. 17 ist ein Ablaufdiagramm eines Leseprozesses. Zu­ erst wird ein Befehl zum Lesen an einer logischen Adresse empfangen (Schritt S551). Falls in den Sektorinformationsbe­ reich der Sektorkennung für den Sektor an der durch die Adressenumsetzschaltung 18 bestimmten realen Adresse ein ei­ nen schadhaften Sektor anzeigender Datenwert eingeschrieben ist (JA bei einem Schritt S552), wird die Adresse in dem Lo­ gikadressenbereich der Sektorkennung ausgelesen (Schritt 5553). Als nächstes wird ein Ausweichsektor mit einem Logik­ adressenbereich gesucht, in dem die gleiche Adresse wie die bei dem Schritt S553 ausgelesene gespeichert ist (Schritt S554), und es werden die Daten aus dem gefundenen Ausweich­ sektor ausgelesen (Schritt 5555). Falls andererseits in den Sektorinformationsbereich für den auszulesenden Sektor kein einen schadhaften Sektor anzeigender Datenwert eingeschrieben ist (NEIN bei dem Schritt S552), werden die Daten aus dem Sektor ausgelesen (Schritt S556).
Als nächstes wird die Initialisierung bzw. Anfangseinstellung des Speichers 20 erläutert. Wenn nach dem Empfangen einer Meldung durch die Leuchtdiode 12 und den Schallgeber 13, daß Schreibfehler aufgetreten sind, der von dem Benutzer bediente Verarbeitungscomputer 100 einen Zusatzbefehl für eine An­ fangseinstellung der PC-Karte 1b gemäß dieser Meldung abgibt, wird von der Zentraleinheit 14 die Anfangseinstellung von Sektoren mit Ausnahme der Sektoren vorgenommen, die den Sek­ torenkennungen entsprechen, in deren Sektorinformationsbe­ reich der den schadhaften Sektor anzeigende Datenwert einge­ schrieben ist, und es wird die praktisch nutzbare Speicherka­ pazität ermittelt. Die im Ansprechen auf einen aus dem Verar­ beitungscomputer 100 empfangenen Erkennungssteuerbefehl aus­ zugebende Information über die Speicherkapazität wird umge­ schrieben. Damit erhält der Verarbeitungscomputer 100 eine Information über die Speicherkapazität, die genutzt werden kann.
In Fig. 18 ist der Ablauf eines bei dem Empfang des vorste­ hend genannten Zusatzbefehls von der Zentraleinheit 14 ausge­ führten Prozesses dargestellt. Ein Anfangswert einer Varia­ blen n in dem Ablaufdiagramm ist die Anzahl der Sektoren in der Karte. Nachdem der Zusatzbefehl aus dem Verarbeitungscom­ puter 100 empfangen wurde (Schritt S601), wird die jeweils einen Sektor darstellende Variable n geprüft (Schritt S602). Falls die Variable n nicht gleich 0 ist (NEIN bei dem Schritt S602) bzw. n bestimmt ist, wird ermittelt, ob die Sektorken­ nung für diesen Sektor einen einen schadhaften Sektor anzei­ genden Datenwert enthält (Schritt S603). Falls ermittelt wird, daß der Sektor kein Schadhafter Sektor ist (NEIN bei dem Schritt S603), werden die Daten in diesem Sektor gelöscht (Schritt S604). Falls ermittelt wird, daß das Löschen der Da­ ten in dem Sektor richtig abgeschlossen ist (JA bei einem Schritt S605), wird die Initialisierung bzw. Anfangseinstel­ lung des Sektors vorgenommen (Schritt S606). Das heißt, wenn der Sektor ein Ausweichsektor ist, wird in den Sektorinforma­ tionsbereich der Ausweichsektorkennung für den Ausweichsektor ein den Ausweichsektor anzeigender Datenwert eingeschriebe-, während dann, wenn der Sektor ein gewöhnlicher Sektor ist, in den Sektorinformationsbereich der Sektorkennung für den Sek­ tor ein Datenwert mit der Bedeutung eingeschrieben wird, daß der Sektor unbenutzt ist (Schritt S606). Falls andererseits ermittelt wird, daß in dem Sektor ein fehlerhaftes Löschen der Daten aufgetreten ist (NEIN bei dem Schritt S605), wird in die Sektorkennung oder die Ausweichsektorkennung für den Sektor ein Datenwert mit der Bedeutung "schadhafter Sektor" eingeschrieben (Schritt S607). Dann wird die Variable n um "1" verringert (Schritt S608) und der Ablauf kehrt zu dem Schritt 5602 zurück, um die Verarbeitung in den Schritten S604-S608 für einen nächsten Sektor zu wiederholen, bis der Löschprozeß an allen Sektoren abgeschlossen ist.
Wenn der Löschprozeß an allen Sektoren abgeschlossen ist (JA bei dem Schritt S602), wird die Anzahl von unbenutzten Sekto­ ren gezählt und die Information wie die "Zylindernummer", die "Spurnummer" und die Sektorenanzahl auf den neuesten Stand gebracht (Schritt S609). Dann wird das den Abschluß der Ver­ arbeitung in der Karte 1b anzeigende Statussignal D3 bzw. Da­ tenanforderungssignal DRQ auf den Pegel "H" gesetzt (Schritt S610) und das Statussignal D7 bzw. Belegtsignal BSY auf den Pegel "L" rückgesetzt (Schritt S611). Als nächstes wird zur Anforderung einer Unterbrechung an dem Verarbeitungscomputer 100 das Unterbrechungsanforderungssignal IREQ auf den Pegel "L" rückgesetzt (Schritt S612), damit durch den Verar­ beitungsscomputer 100 eine Prüfung vorgenommen werden kann (Schritt S613).
Im Ansprechen auf einen Erkennungssteuerbefehl sendet die Zentraleinheit 14 dem Verarbeitungscomputer 100 die Informa­ tion über die in dem Speicher 20 verfügbare Speicherkapazität wie die "Zylindernummer", die "Spurnummer" und die Sektoren­ anzahl zu. Hinsichtlich der Sektoren, in denen ein fehlerhaf­ tes Einschreiben oder ein fehlerhaftes Löschen aufgetreten ist, wird in die Sektorinformationsbereiche der zugehörigen Sektorkennungen ein Datenwert mit der Bedeutung "schadhafter Sektor" eingeschrieben. Der Verarbeitungscomputer 100 erhält die Informationen über die verfügbare Speicherkapazität.
Die vorangehend erläuterten Umschreibeprozesse an der 512 Byte-PC-Karte 1b werden ausgeführt, wenn ein fehlerhaftes Einschreiben aufgetreten ist. Anstelle der Adressenumsetz­ schaltung 18 kann eine Adressenumsetztabelle vorgesehen wer­ den und die Daten können statt in den Sektor, in dem ein Schreibfehler aufgetreten ist, in einen unbenutzten Sektor eingeschrieben werden. Um die nutzbare Speicherkapazität kon­ stant zu halten, ist es ferner möglich, einen der Ausweich­ sektoren in einen Nutzungszustand zu versetzen, während die Daten statt in den Sektor, in dem der Schreibfehler aufgetre­ ten ist, in einen unbenutzen Sektor eingeschrieben werden. In diesem Fall wird der Inhalt der Adressenumsetztabelle geän­ dert bzw. die einer durch den Verarbeitungscomputer bestimm­ ten logischen Adresse entsprechende reale Adresse eines Sek­ tors auf diejenige des Sektors abgeändert, in dem die Daten eingeschrieben werden. Die Anfangseinstellung des Speichers 20 erfolgt auf gleichartige Weise wie die in Fig. 18 darge­ stellte.
Wenn Daten in eine Speichereinheit mit einem Parallelspeicher eingeschrieben werden, der eine Vielzahl von Blöcken mit je­ weils einer Vielzahl von Sektoren enthält, wobei der Block eine Einheit bei dem Löschen von Daten ist, wird durch eine Adressenumsetzung eine einer logischen Adresse entsprechende Adresse eines Sektors in dem Parallelspeicher festgestellt. Falls die Daten nicht in einen ersten Sektor an der festge­ stellten Adresse eingeschrieben werden können, werden die Da­ ten in einen zweiten Sektor in dem gleichen Block wie der er­ ste Sektor ohne eine durch den Schreibfehler verursachte Un­ terbrechung eingeschrieben. Dann wird in der Adressenumsetz­ tabelle die der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des zweiten Sektors umgeschrieben. Auf gleichartige Weise werden dann, wenn bei dem Einschreiben von Daten in einen Parallelspeicher mit ei­ ner Vielzahl von Sektoren die Daten nicht in einen ersten Sektor mit der festgestellten Adresse eingeschrieben werden können, die Daten in einen von dem ersten Sektor verschiede­ nen zweiten Sektor eingeschrieben. Wenn bei einer andersarti­ gen Speichereinheit mit einem Parallelspeicher, in dem jeder Block eine Vielzahl von Sektoren und eine Vielzahl von Aus­ weichsektoren enthält, die Daten nicht in einen ersten Sektor mit der festgestellten Adresse eingeschrieben werden können, werden die Daten in einen Ausweichsektor im gleichen Block wie der erste Sektor eingeschrieben. Dann wird die der logi­ schen Adresse entsprechende reale Adresse in dem Paral­ lelspeicher in der Adressenumsetztabelle auf die Adresse des Ausweichsektors umgeschrieben. Wenn alle Ausweichsektoren in dem Block benutzt sind, werden vorzugsweise die Daten sowie die in dem Block eingeschriebenen Daten in einen unbenutzten zweiten Block eingeschrieben. Wenn bei dem Einschreiben von Daten in einen Parallelspeicher mit einer Vielzahl von Sekto­ ren die Daten nicht in einen ersten Sektor mit der festge­ stellten Adresse eingeschrieben werden können, werden auf gleichartige Weise die Daten in einen Ausweichsektor einge­ schrieben.

Claims (18)

1. Speichereinheit, gekennzeichnet durch einen Parallelspeicher (10a), der eine Vielzahl von Blöcken mit jeweils einer Vielzahl von Sektoren (24) enthält und in dem Daten in Blockeinheiten gelöscht werden,
eine Adressenumsetztabelle (8), in der jeweils logischen Adressen entsprechende Adressen von Sektoren in dem Paral­ lelspeicher gespeichert sind,
eine Datenschreibeinrichtung (4), die aus der Adressen­ umsetztabelle entsprechend einer logischen Adresse, die durch einen Datenschreibbefehl mit Daten bestimmt ist, eine Adresse eines Sektors in dem Parallelspeicher ermittelt und die die Daten in einen ersten Sektor an der ermittelten Adresse ein­ schreibt oder dann, wenn die Daten nicht in den ersten Sektor eingeschrieben werden können, die Daten in einen zweiten Sek­ tor einschreibt, der von dem ersten Sektor verschieden, aber in dem gleichen Block wie der erste Sektor enthalten ist, und
eine Umschreibeinrichtung (4), die dann, wenn die Daten­ schreibeinrichtung die Daten in den zweiten Sektor ein­ schreibt, in der Adressenumsetztabelle die der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des zweiten Sektors umschreibt.
2. Speichereinheit nach Anspruch 1, gekennzeichnet durch eine Datenlöscheinrichtung (4), die die Daten in dem Parallelspei­ cher (10a) außer in Sektoren löscht, in die die Datenschreib­ einrichtung die Daten nicht einschreiben kann, und die eine Information über eine nutzbare Speicherkapazität des Paral­ lelspeichers aufgrund der Anzahl von Sektoren umschreibt, in denen die Daten gelöscht sind.
3. Speichereinheit, gekennzeichnet durch
einen Parallelspeicher (10b), der eine Vielzahl von Blöcken (33) mit jeweils einer Vielzahl von Sektoren (34) und einer Vielzahl von Ausweichsektoren (36) enthält und in dem Daten in Blockeinheiten gelöscht werden,
eine Adressenumsetztabelle (8), in der Adressen von Sek­ toren in dem Parallelspeicher entsprechend logischen Adressen gespeichert sind,
eine Datenschreibeinrichtung (4), die aus der Adressen­ umsetztabelle entsprechend einer logischen Adresse, die durch einen Datenschreibbefehl mit Daten bestimmt ist, die Adresse eines Sektors in dem Parallelspeicher ermittelt und die die Daten in einen ersten Sektor mit der ermittelten Adresse ein­ schreibt oder dann, wenn die Daten nicht in den ersten Sektor eingeschrieben werden können, die Daten in einen Ausweichsek­ tor der Ausweichsektoren in dem gleichen Block wie der erste Sektor einschreibt, und
eine Umschreibeinrichtung (4), die in der Adressenum­ setztabelle die der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des Ausweich­ sektors umschreibt, wenn die Datenschreibeinrichtung die Da­ ten in den Ausweichsektor einschreibt.
4. Speichereinheit nach Anspruch 3, gekennzeichnet durch eine Datenlöscheinrichtung (4), die die Daten in dem Parallelspei­ cher (10b) außer in Sektoren löscht, in die die Datenschreib­ einrichtung die Daten nicht einschreiben kann, und die eine Information über eine nutzbare Speicherkapazität des Paral­ lelspeichers aufgrund der Anzahl von Sektoren umschreibt, in denen die Daten gelöscht sind.
5. Speichereinheit nach Anspruch 3 oder 4, dadurch gekenn­ zeichnet, daß dann, wenn die Datenschreibeinrichtung (4) bei dem Einschreiben der Daten in den ersten Block feststellt, daß alle Ausweichsektoren (36) in dem ersten Block benutzt worden sind, die Datenschreibeinrichtung die Daten sowie die in den ersten Block eingeschriebenen Daten in einen unbenutz­ ten zweiten Block der Blöcke einschreibt.
6. Speichereinheit nach Anspruch 5, dadurch gekennzeichnet, daß die Datenschreibeinrichtung (4) einen Datenpuffer enthält und dann, wenn die Datenschreibeinrichtung bei dem Einschrei­ ben in den ersten Block entscheidet, daß alle Ausweichsekto­ ren in dem ersten Block benutzt worden sind, die Daten­ schreibeinrichtung die Daten sowie die in den ersten Block eingeschriebenen Daten in den Datenpuffer einspeichert und die Daten in dem Datenpuffer zusammenhängend speichert.
7. Speichereinheit nach Anspruch 5 oder 6, gekennzeichnet durch eine Datenlöscheinrichtung (4), die Daten in dem Paral­ lelspeicher (10b) in Blockeinheiten außer in Sektoren löscht, in denen die Datenschreibeinrichtung keine Daten einschreiben kann, und die eine Information über eine nutzbare Speicherka­ pazität des Parallelspeichers aufgrund der Anzahl von Sekto­ ren umschreibt, in denen die Daten gelöscht wurden.
8. Speichereinheit nach einem der Ansprüche 5 bis 7, gekenn­ zeichnet durch eine Vorrichtung (2, 3), die einem Benutzer meldet, daß die Datenschreibeinrichtung (4) die Daten in ei­ nen unbenutzten Block einschreibt.
9. Speichereinheit, gekennzeichnet durch
einen Parallelspeicher (20) mit einer Vielzahl von Sek­ toren (55),
eine Adressenumsetztabelle (18), in der Adressen von Sektoren in dem Parallelspeicher entsprechend logischen fressen gespeichert sind,
eine Datenschreibeinrichtung (14), die aus der Adressen­ umsetztabelle entsprechend einer logischen Adresse, die durch einen Datenschreibbefehl mit Daten bestimmt ist, eine Adresse eines Sektors in dem Parallelspeicher ermittelt und die die Daten in einen ersten Sektor mit der ermittelten Adresse oder in einen von dem ersten Sektor verschiedenen zweiten Sektor einschreibt, wenn die Daten nicht in den ersten Sektor einge­ schrieben werden können, und
eine Umschreibeinrichtung (14), die in der Adressenum­ setztabelle eine der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des zweiten Sektors umschreibt, wenn die Datenschreibeinrichtung die Da­ ten in den zweiten Sektor einschreibt.
10. Speichereinheit nach Anspruch 9, gekennzeichnet durch ei­ ne Datenlöscheinrichtung (14), die Daten in dem Parallelspei­ cher (20) außer in Sektoren löscht, in die die Datenschreib­ einrichtung die Daten nicht einschreiben kann, und die die Information über die nutzbare Speicherkapazität des Paral­ lelspeichers aufgrund der Anzahl von Sektoren umschreibt, in denen die Daten gelöscht sind.
11. Speichereinheit, gekennzeichnet durch
einen Parallelspeicher (20) mit einer Vielzahl von Sek­ toren (55) und Ausweichsektoren (56),
eine Adressenumsetztabelle (18), in der Adressen von Sektoren in dem Parallelspeicher entsprechend logischen Adressen gespeichert sind,
eine Datenschreibeinrichtung (14), die aus der Adressen­ umsetztabelle entsprechend einer logischen Adresse, die durch einen Datenschreibbefehl mit Daten bestimmt ist, eine Adresse eines Sektors in dem Parallelspeicher ermittelt und die die Daten in einen ersten Sektor mit der ermittelten Adresse ein­ schreibt oder die Daten in einen Ausweichsektor in dem Paral­ lelspeicher einschreibt, wenn die Daten nicht in den ersten Sektor eingeschrieben werden können, und
eine Umschreibeinrichtung (14), die in der Adressenum­ setztabelle eine der logischen Adresse entsprechende reale Adresse in dem Parallelspeicher auf die Adresse des Ausweich­ sektors umschreibt, wenn die Datenschreibeinrichtung die Da­ ten in den Ausweichsektor einschreibt.
12. Speichereinheit nach Anspruch 11, gekennzeichnet durch eine Datenlöscheinrichtung (14), die Daten in dem Paral­ lelspeicher (20) außer in Sektoren löscht, in die die Daten­ schreibeinrichtung die Daten nicht einschreiben kann, und die die Information über die nutzbare Speicherkapazität des Par­ allelspeiches aufgrund der Anzahl von Sektoren umschreibt, in denen die Daten gelöscht sind.
13. Speichereinheit, gekennzeichnet durch
einen Parallelspeicher (20) mit einem Speicherraum, der einen Sektorbereich (52) mit einer Vielzahl von Sektoren (55), einen Sektorkennungsbereich (51) mit einer Vielzahl von Sektorkennungen (54), die jeweils Statusdaten und eine logi­ sche Adresse enthalten, und einen Ausweichsektorbereich (53) mit einer Vielzahl von Ausweichsektoren (56) umfaßt,
eine Adressenumsetzeinrichtung (18) zum Umsetzen einer logischen Adresse auf eine reale Adresse in dem Parallelspei­ cher,
eine Datenschreibeinrichtung (14), die dann, wenn in der Sektorkennung für einen Sektor mit einer von der Adressenum­ setzeinrichtung entsprechend einer logischen Adresse in einem Datenschreibbefehl ausgegebenen realen Adresse kein Datenwert für einen schadhaften Sektor gespeichert ist, die Daten in den Sektor einschreibt oder die dann, wenn in der Sektorken­ nung für den Sektor mit der realen Adresse ein Datenwert für einen schadhaften Sektor gespeichert ist, in die Sektorken­ nung einen Datenwert für einen schadhaften Sektor ein­ schreibt, einen unbenutzten Ausweichsektor vorbereitet, die Daten in den Ausweichsektor einschreibt und in die Sektorken­ nung für den Ausweichsektor statt einer in der Sektorkennung gespeicherten logischen Adresse die reale Adresse des Aus­ weichsektors einschreibt, und
eine Datenleseeinrichtung (14), die dann, wenn in der Sektorkennung für einen Sektor mit einer Adresse in dem Par­ allelspeicher, die von der Adressenumsetzeinrichtung entspre­ chend einer durch einen Datenlesebefehl bestimmten logischen Adresse ausgegeben wird, ein Datenwert für einen schadhaften Sektor gespeichert ist, die Daten aus dem Sektor mit der an­ stelle der logischen Adresse gespeicherten Adresse ausliest.
14. Speichereinheit nach Anspruch 13, gekennzeichnet durch eine Datenlöscheinrichtung (14), die Daten in einem Sektor mit einer Sektorkennung löscht, in der kein Datenwert für ei­ nen schadhaften Sektor gespeichert ist, in die Sektorkennung für einen Sektor, in dem die Daten richtig gelöscht sind, ei­ nen Datenwert für einen unbenutzten Sektor einschreibt, in die Sektorkennung für einen Sektor, in dem die Daten nicht richtig gelöscht sind, einen Datenwert für einen schadhaften Sektor einschreibt und eine Information über eine nutzbare Speicherkapazität aufgrund der Anzahl von Sektoren um­ schreibt, in deren Sektorkennungen der Datenwert für einen unbenutzten Sektor eingeschrieben ist.
15. Speichereinheit nach Anspruch 13 oder 14, gekennzeichnet durch eine Vorrichtung (12, 13), die einem Benutzer meldet, daß die Anzahl von unbenutzten Ausweichsektoren (56) in dem Parallelspeicher (20) kleiner als ein vorbestimmter Wert (q) ist.
16. Speichereinheit, gekennzeichnet durch
einen Parallelspeicher (20) mit einem Speicherraum, der einen Sektorbereich (52) mit einer Vielzahl von Sektoren (55), einen Sektorkennungsbereich (51) mit einer Vielzahl von Sektorkennungen (54), in denen jeweils Statusdaten und eine logische Adresse gespeichert sind, und einen Ausweichsektor­ bereich (53) mit einer Vielzahl von Ausweichsektoren (56) um­ faßt,
eine Adressenumsetzeinrichtung (18) zum Umsetzen einer logischen Adresse auf eine reale Adresse in dem Parallelspei­ cher,
eine Datenschreibeinrichtung (14), die dann, wenn in der Sektorkennung für einen Sektor mit einer realen Adresse, die von der Adressenumsetzeinrichtung entsprechend einer logi­ schen Adresse in einem Datenschreibbefehl ausgegeben wird, kein Datenwert für einen schadhaften Sektor gespeichert ist, die Daten in den Sektor einschreibt oder dann, wenn in der Sektorkennung des Sektors mit der realen Adresse ein Daten­ wert für einen schadhaften Sektor gespeichert ist, in die Sektorkennung einen Datenwert für einen schadhaften Sektor einschreibt, einen unbenutzten Ausweichsektor vorbereitet, die Daten in den Ausweichsektor einschreibt und eine logische Adresse, die in der Sektorkennung für den Sektor gespeichert ist, in den die Daten nicht eingeschrieben werden können, in die Sektorkennung für den Ausweichsektor einschreibt, und
eine Datenleseeinrichtung (14), die dann, wenn in der Sektorkennung für einen Sektor mit einer Adresse in dem Par­ allelspeicher, die von der Adressenumsetzeinrichtung entspre­ chend einem Datenlesebefehl ausgegeben wird, ein Datenwert für einen schadhaften Sektor gespeichert ist, die Daten aus einem Sektor mit einer Sektorkennung ausliest, in der die gleiche logische Adresse wie die in der Sektorkennung für den Sektor gespeichert ist, der nicht benutzt werden kann.
17. Speichereinheit nach Anspruch 16, gekennzeichnet durch eine Datenlöscheinrichtung (14), die Daten in einem Sektor mit einer Sektorkennung löscht, in der kein Datenwert für ei­ nen schadhaften Sektor gespeichert ist, in die Sektorkennung für einen Sektor, in dem die Daten richtig gelöscht sind, ei­ nen Datenwert für einen unbenutzten Sektor einschreibt, in die Sektorkennung für einen Sektor, in dem die Daten nicht richtig gelöscht sind, einen Datenwert für einen schadhaften Sektor einschreibt und eine Information über eine nutzbare Speicherkapazität aufgrund der Anzahl von Sektoren um­ schreibt, in deren Sektorkennungen der Datenwert für einen unbenutzten Sektor eingeschrieben ist.
18. Speichereinheit nach Anspruch 16 oder 17, gekennzeichnet durch eine Vorrichtung (12, 13), die einem Benutzer meldet, daß die Anzahl von unbenutzten Ausweichsektoren (56) in dem Parallelspeicher (20) kleiner als ein vorbestimmter Wert (q) ist.
DE19608713A 1995-08-18 1996-03-06 Speichereinheit Withdrawn DE19608713A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21059295A JPH0954726A (ja) 1995-08-18 1995-08-18 記憶装置

Publications (1)

Publication Number Publication Date
DE19608713A1 true DE19608713A1 (de) 1997-02-20

Family

ID=16591880

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19608713A Withdrawn DE19608713A1 (de) 1995-08-18 1996-03-06 Speichereinheit

Country Status (4)

Country Link
JP (1) JPH0954726A (de)
CN (1) CN1143812A (de)
DE (1) DE19608713A1 (de)
GB (1) GB2304428A (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6446223B1 (en) 1998-09-09 2002-09-03 Hitachi, Ltd. Storage system and method for controlling the same
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
CN1088218C (zh) 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US7155559B1 (en) * 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
JP4031190B2 (ja) 2000-09-29 2008-01-09 株式会社東芝 メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US6891752B1 (en) * 2002-07-31 2005-05-10 Advanced Micro Devices System and method for erase voltage control during multiple sector erase of a flash memory device
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
CN100345123C (zh) * 2004-11-27 2007-10-24 鸿富锦精密工业(深圳)有限公司 延长非易失性存储器使用寿命的装置及方法
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
CN101425337B (zh) * 2007-10-29 2011-11-30 芯邦科技(深圳)有限公司 一种闪存数据存储方法和装置
CN100463492C (zh) * 2007-12-18 2009-02-18 中国电子科技集团公司第五十四研究所 安全接收芯片存储台名的方法
CN102306128B (zh) * 2011-09-16 2013-11-20 北京星网锐捷网络技术有限公司 磁盘管理方法、装置及网络设备
CN110908593B (zh) * 2018-09-17 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间擦除方法、装置、存储设备及存储介质
CN111061649B (zh) * 2019-10-28 2023-09-29 宁波三星智能电气有限公司 一种存储器的存储空间自适应分配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896262A (en) * 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
DE3704213C2 (de) * 1986-02-20 1990-04-12 Sharp K.K., Osaka, Jp

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP2647312B2 (ja) * 1992-09-11 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性半導体記憶装置
US5359570A (en) * 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896262A (en) * 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
DE3704213C2 (de) * 1986-02-20 1990-04-12 Sharp K.K., Osaka, Jp

Also Published As

Publication number Publication date
GB9605873D0 (en) 1996-05-22
JPH0954726A (ja) 1997-02-25
GB2304428A (en) 1997-03-19
CN1143812A (zh) 1997-02-26

Similar Documents

Publication Publication Date Title
DE19608713A1 (de) Speichereinheit
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE69721295T2 (de) Verfahren und gerät zur erweiterung des reservegebiets einer platteneinheit
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE60303895T2 (de) Hybridimplementierung von Fehlerkorrekturkoden eines nichtflüchtigen Speichersystems
DE60032531T2 (de) Aufzeichnungsverfahren, Verwaltungsverfahren und Aufzeichnungsgerät
DE60317551T2 (de) Aufrechterhaltung gleichförmiger löschhäufigkeit in einem nichtflüchtigen speichersystem
DE69031494T2 (de) Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien
DE69432878T2 (de) Informationsverarbeitungssystem mit Flash-Speicher und Cache-Speicher
DE69127752T2 (de) System zur freigabe des raumes gelöschter dateien für ein dynamisch abbildendes virtuelles datenspeichersubsystem
DE69233228T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C. Speicherkarte mit solchem Datenverwaltungssystem
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE69801655T2 (de) System mit schreibbenachrichtigung während eines datensatzkopiervorgang
DE68913605T2 (de) Verfahren zur Handhabung defekter Sektoren auf einem plattenförmigen Informations-Aufzeichnungsträger und Gerät zur Durchführung des Verfahrens.
US5717886A (en) Semiconductor disk device and memory management method
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE112011100618T5 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
JP2734391B2 (ja) 不揮発性メモリのファイル管理装置
DE19623853A1 (de) Halbleiter-Speichervorrichtung
DE102016001066A1 (de) Zuordnung der logischen Blockadresse für Festplattenlaufwerke
DE69626962T2 (de) Verfahren und anordnung zum betrieb eines mit einem hauptrechner verbundenen massenspeicher-computerperipheriegerätes
KR100527610B1 (ko) 저장장치,데이터처리시스템및데이터기록및판독방법
DE69226853T2 (de) Aufnahme- und Wiedergabeanordnung mit einer Block-löschbaren nichtflüchtigen Halbleiterspeicheranordnung für einen Block von spezifischen Datengruppen
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
JPH07306922A (ja) Icメモリカードおよびそのicメモリカードの検査方法

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee