DE102010006139A1 - System und Verfahren zur Finalisierung eines Halbleiterspeichers - Google Patents

System und Verfahren zur Finalisierung eines Halbleiterspeichers Download PDF

Info

Publication number
DE102010006139A1
DE102010006139A1 DE102010006139A DE102010006139A DE102010006139A1 DE 102010006139 A1 DE102010006139 A1 DE 102010006139A1 DE 102010006139 A DE102010006139 A DE 102010006139A DE 102010006139 A DE102010006139 A DE 102010006139A DE 102010006139 A1 DE102010006139 A1 DE 102010006139A1
Authority
DE
Germany
Prior art keywords
memory
data
value
indicator
semiconductor 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
DE102010006139A
Other languages
English (en)
Inventor
Donald Ray Bryant-Rich
Tal Sagy
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.)
Western Digital Israel Ltd
Original Assignee
SanDisk IL Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk IL Ltd filed Critical SanDisk IL Ltd
Publication of DE102010006139A1 publication Critical patent/DE102010006139A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

Es werden Systeme und Verfahren zur Finalisierung eines Halbleiterspeichers beschrieben. Ein Verfahren beinhaltet den Empfang eines Befehls zum Finalisieren von Daten in einer Datenspeichervorrichtung (502), welche einen mit einem Halbleiterspeicher (532) gekoppelten Controller (530) beinhaltet. Die Datenspeichervorrichtung (502) beinhaltet auch einen Statusindikator zum Anzeigen eines Finalisierungsstatus des Halbleiterspeichers (530). In Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in der Datenspeichervorrichtung (502), wird der Statusindikator auf einen Finalisiert-Wert (546) gesetzt. In Reaktion darauf, dass der Statusindikator den Finalisiert-Wert (546) aufweist, were verhindert.

Description

  • Erfindungsgebiet
  • Die vorliegende Erfindung betrifft allgemein die Finalisierung von Halbleiterspeichern.
  • Hintergrund
  • Tragbare Speichervorrichtungen und Speichermedien können bei einer Vielzahl von Anwendungen verwendet werden. Eine Anwendung von tragbaren Medien ist, als ein Archiv von gespeicherten Daten zu dienen. Zum Beispiel können einige Technologien mit optischen Medien, wie z. B. Compact-Disk-Recordable (CD-R) oder Digital-Versatile-Disk-Recordable (DVD-R), ermöglichen, Daten auf den Medien zu speichern, und die Medien können unter Verwendung eines Finalisierungsvorgangs finalisiert werden. Nach der Finalisierung können zusätzliche Daten nicht mehr auf der Disk gespeichert werden, und Daten können nicht mehr von der Disk gelöscht werden. In diesem Zustand, kann die finalisierte Disk zu Archivierungszwecken verwendet werden.
  • Nicht-flüchtige Halbleiterspeichervorrichtungen, wie z. B. auswechselbare Speicherkarten oder USB-Flash-Speichervorrichtungen (USB: Universal Serial Bus), haben eine erhöhte Portabilität von Daten und Softwareanwendungen ermöglicht. Nicht-flüchtige Halbleiterspeichervorrichtungen können in einer oder mehreren Betriebsweisen arbeiten, wie z. B. als ein erneut beschreibbarer Speicher, welcher ermöglicht, dass an einer Speicherstelle gespeicherte Daten überschrieben oder gelöscht werden, oder als ein einmal beschreibbarer und mehrfach auslesbarer Speicher bzw. WORM-Speicher (WORM: Write-Once Read-Many), welcher es nicht ermöglicht, nach dem Schreiben Daten von einer Speicherstelle zu löschen.
  • Zusammenfassung
  • Gemäß der vorliegenden Erfindung werden ein Verfahren gemäß Anspruch 1 und eine Vorrichtung gemäß Anspruch 6 bereitgestellt. Die abhängigen Ansprüche definieren Weiterbildungen der Erfindung.
  • Es werden somit Systeme und Verfahren zur Finalisierung von Halbleiterspeicher offenbart. Eine Halbleiterspeichervorrichtung, wie z. B. eine Flash-Speichervorrichtung oder eine einmal programmierbare Speichervorrichtung bzw. OTP-Speichervorrichtung (OTP: One-Time-Programmable), implementiert eine Finalisierungsfunktion, um Änderungen an in dem Speicher abgelegten Daten zu verhindern. Bei ihrer Ausführung kann die Finalisierungsfunktion bewirken, dass in dem Speicher ein persistenter Wert gesetzt wird, welcher einen finalisierten Status des Speichers anzeigt. Nachdem der persistente Wert zum Anzeigen des finalisierten Status gesetzt ist, werden nachfolgende Versuche, Daten in den Speicher zu schreiben oder Daten aus dem Speicher zu löschen, verhindert, und die Vorrichtung kann permanent anzeigen, dass sie einen Nur-Lese-Status aufweist.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagram eines ersten Ausführungsbeispiels eines Systems zur Finalisierung eines Halbleiterspeichers;
  • 2 ist ein Blockdiagram eines zweiten Ausführungsbeispiels eines Systems zur Finalisierung eines Halbleiterspeichers;
  • 3 ist ein Blockdiagram eines dritten Ausführungsbeispiels eines Systems zur Finalisierung eines Halbleiterspeichers;
  • 4 ist ein Blockdiagram eines vierten Ausführungsbeispiels eines Systems zur Finalisierung eines Halbleiterspeichers;
  • 5 ist ein allgemeines Diagram zur Veranschaulichung eines Ausführungsbeispiels für die Arbeitsweise eines Systems zur Finalisierung eines Halbleiterspeichers vor und nach einem Finalisierungsbefehl;
  • 6 ist ein Flussdiagram für ein Ausführungsbeispiel eines Verfahrens zur Finalisierung eines Halbleiterspeichers;
  • 7 ist ein Blockdiagram für ein erstes veranschaulichendes System, welches zur Finalisierung eines Halbleiterspeichers verwendet werden kann; und
  • 8 ist ein Blockdiagram eines zweiten veranschaulichenden Systems, welches zur Finalisierung eines Halbleiterspeichers verwendet werden kann.
  • Detaillierte Beschreibung
  • In 1 ist ein veranschaulichendes Ausführungsbeispiel eines Systems zur Finalisierung eines Halbleiterspeichers dargestellt und allgemein mit 100 bezeichnet. Das System 100 beinhaltet einen Host 102, welcher mit einer Datenspeichervorrichtung 104 kommuniziert. Die Datenspeichervorrichtung 104 beinhaltet einen Controller 120, welcher auf einer Controllerkomponente 160 ausgebildet ist, und einen Halbleiterspeicher 130, welcher auf einer Speicherkomponente 162 ausgebildet ist. Die Datenspeichervorrichtung 104 ist dazu ausgestaltet, einen Finalisierungsbefehl 103 zu empfangen und, in Reaktion auf den Finalisierungsbefehl 103, einen Statusindikator auf einen Finalisiert-Wert zu setzen, um Schreibvorgänge an dem Halbleiterspeicher 130 zu verhindern.
  • Bei einem Ausführungsbeispiel ist der Host 102 ein Computer, wie z. B. ein Personal-Computer (PC) oder Notebook-Computer, eine tragbare Drahtlosvorrichtung, wie z. B. ein Mobiltelefon oder ein persönlicher digitaler Assistent (PDA: Personal Digital Assistent), eine Multimediavorrichtung, wie z. B. ein Videoplayer oder eine Set-Top-Box-Vorrichtung, oder ein beliebiger anderer Typ von Vorrichtung, welcher mit der Datenspeichervorrichtung 104 kommunizieren kann. Bei einem veranschaulichenden Ausführungsbeispiel ist die Datenspeichervorrichtung 104 von dem Host 102 entfernbar, wie z. B. ein Flash-Laufwerk (Flash-Drive) oder eine entfernbare Speicherkarte. Bei einem weiteren veranschaulichenden Ausführungsbeispiel ist die Datenspeichervorrichtung 104 innerhalb des Hosts 102 implementiert, z. B. als ein interner Speicher eines digitalen Musikabspielgeräts.
  • Bei einem Ausführungsbeispiel beinhaltet die Controllerkomponente 160 eine Host-Schnittstelle 110, den mit der Host-Schnittstelle 110 gekoppelten Controller 120 und eine mit dem Controller 120 gekoppelte Speicherschnittstellenschaltung 112. Die Host-Schnittstelle 110 ermöglicht Kommunikation mit dem Host 102, wie z. B., als veranschaulichende nicht einschränkende Beispiele, durch Verwendung eines USB-Protokolls (USB: Universal Serial Bus) oder eines CF-Protokolls (CF: Compact Flash). Die Speicherschnittstellenschaltung 112 ermöglicht Kommunikation mit der Speicherkomponente 162, wie z. B. über einen parallelen Bus. Die Controllerkomponente 160 kann auch ein erstes Register 140 beinhalten, in welchem ein Speichertypindikator 142 gespeichert ist. Die Controllerkomponente 160 kann auch ein zweites Register 150 beinhalten, welches einen Befehlsunterstützungsindikator 152 und einen Schreibschutzstatusindikator 154 beinhaltet.
  • Bei einem Ausführungsbeispiel ist der Controller 120 dazu ausgestaltet, in Reaktion auf den Empfang des Finalisierungsbefehls 103 einen Finalisierungsvorgang 122 durchzuführen. Der Finalisierungsvorgang 122 kann bewirken, dass der Cont roller 120 einen Statusindikator 128 auf einen Finalisiert-Wert setzt. Bei einem Ausführungsbeispiel kann ein „Indikator” ein Datenwert sein, welcher an einer vorbestimmten Speicheradresse oder in einem vorbestimmten Speicherfeld gespeichert ist und einen Status oder Zustand darstellt. Zum Beispiel beinhaltet der Statusindikator 128 einen an einer spezifizierten Speicherposition gespeicherten Wert, welcher dem Controller 120 anzeigt, ob der Halbleiterspeicher 130 finalisiert wurde. Der Statusindikator 128 kann in einem persistenten Speicher 126 eines Statusregisters 124 gespeichert sein. Das Setzen des Statusindikators 128 kann durchgeführt werden, indem eine oder mehrere persistente Speicherzellen des persistenten Speichers 126 auf einen logischen Wert programmiert werden, welcher persistent gehalten wird, wie z. B. ein Wert, der eine logische Eins darstellt. Das Statusregister 124 kann innerhalb des Controllers 120 integriert sein oder für den Controller 120 zugänglich sein. Indem unter Verwendung des persistenten Speichers 126 ein Finalisiert-Wert in dem Statusindikator 128 gespeichert wird, kann, nachdem der Status Indikator 128 auf den Finalisiert-Wert gesetzt wurde, der Statusindikator 128 nicht mehr auf einen Nicht-Finalisiert-Wert zurückgebracht werden. Beispiele von persistenten Speicherzellen beinhalten eine einmalig beschreibbare Speicherzelle oder einmal programmierbare Speicherzelle (OTP-Speicherzelle) oder eine erneut beschreibbare Speicherzelle, wie z. B. eine Flash-Zelle, welche derart gesteuert ist, dass ein Löschen des gespeicherten Finalisiert-Werts verhindert wird.
  • Bei einem Ausführungsbeispiel kann der Controller 120 dazu ausgestaltet sein, in Reaktion darauf, dass die Datenspeichervorrichtung 104 eine Anfrage zum Schreiben von Daten in den Halbleiterspeicher 130 der Speicherkomponente 162 oder zum Löschen von Daten aus dem Halbleiterspeicher 130 der Speicherkomponente 162 empfängt, einen Wert des Statusindikators 128 zu bestimmen. Wenn der Statusindikator 128 den Finalisiert-Wert aufweist, kann der Controller 120 dazu ausges taltet sein, einen Zugriff zum Schreiben von Daten in den Halbleiterspeicher 130 zu deaktivieren, wodurch die Durchführung von Schreib- oder Löschvorgängen an dem Halbleiterspeicher 130 verhindert wird. Im Ergebnis können Daten, welche in dem Halbleiterspeicher 130 gespeichert sein können, wie z. B. gespeicherte Daten 132, persistent in der Speicherkomponente 162 gespeichert werden, und die Daten 132 sind über Befehle, welche von dem Host 102 an die Datenspeichervorrichtung 104 übermittelt werden, nicht veränderbar.
  • Im Betrieb kann der Host 102 Datenlesebefehle und Datenschreibbefehle an die Datenspeichervorrichtung 104 übermitteln. Zum Beispiel kann der Host 102 Datenschreibbefehle übermitteln, um zu bewirken, dass die Controllerkomponente 160 die gespeicherten Daten 132 in den Halbleiterspeicher 130 schreibt. Der Host 102 kann nachfolgend den Finalisierungsbefehl 103 ausgeben.
  • In Reaktion auf den Empfang des Finalisierungsbefehls 103 kann der Controller 120 den Statusindikator 128 auf einen Finalisiert-Wert setzen. Der Controller 120 kann darüber hinaus wenigstens einen Wert eines Registers setzen, welches für den Host 102 zugänglich ist, wie z. B. durch Anpassen des Speichertypindikators 142 von einem Wert für „wiederbeschreibbar” (Wiederbeschreibbar-Wert), einem Wert für „einmal schreiben mehrfach lesen” (WORM-Wert) oder einem Wert für „einmalig programmierbar” (OTP-Wert) auf einen Wert für „Nur-Lese-Typ-Speicher” (ROM-Typ-Wert). Außerdem kann der Controller 120 dazu ausgestaltet sein, den Befehlsunterstützungsindikator 152 anzupassen, um anzuzeigen, dass Datenschreibevorgänge an dem Halbleiterspeicher 130 nicht unterstützt werden. Der Controller 120 kann darüber hinaus dazu ausgestaltet sein, einen Wert des Schreibschutzindikators 154 anzupassen, um anzuzeigen, dass der Halbleiterspeicher 130 schreibgeschützt ist. Der Controller 120 kann eine oder mehrere interne Einstellungen (nicht dargestellt) vornehmen, welche anzeigen, dass von dem Host 102 empfangene Datenschreibbefehle oder Löschbefehle abzublocken, zu verhindern oder anderweitig für den Halbleiterspeicher 130 unwirksam zu machen sind.
  • Nach Empfang des Finalisierungsbefehls 103 kann der Controller 120 Statusinformationen 105, z. B. in Form eines Statusindikators, an den Host 102 übermitteln. Die Statusinformationen 105 können eine Angabe beinhalten, dass der Speichertyp des Halbleiterspeichers 130 ein Nur-Lese-Speichertyp ist, dass der Halbleiterspeicher 130 Datenschreibvorgänge nicht unterstützt, dass der Halbleiterspeicher 130 schreibgeschützt ist, oder eine Kombination der genannten Angaben beinhalten. Zum Beispiel kann der Controller 120 bewirken, dass der Host 102 seine Verbindung zu der Datenspeichervorrichtung 104 löst und wiederaufbaut, so dass der Host 102 bei erneuter Verbindung mit der Datenspeichervorrichtung 104 aktualisierte Werte des ersten Registers 140 und des zweiten Registers 150, wie z. B. die Indikatoren 142, 152 und 154, ausliest.
  • Obwohl die Controllerkomponente 160 als das erste Register 140 und das zweite Register 150 beinhaltend dargestellt ist, können bei anderen Ausführungsbeispielen der Speichertypindikator 152, der Befehlunterstützungsindikator 152, der Schreibschutzindikator 154 oder eine beliebige Kombination davon nicht in Registern der Controllerkomponente 160 enthalten sein, sondern wenigstens ein solcher Indikator kann an anderen Stellen gespeichert sein oder nach Bedarf berechnet werden, wie z. B., als veranschaulichende nicht einschränkende Beispiele, bei Bestimmung eines Wertes des Statusindikators 128 oder in Reaktion auf eine Anfrage von dem Host 102.
  • Die Datenspeichervorrichtung 104 kann daher als eine Archivierungsmedienvorrichtung verwendet werden, indem Datenschreibvorgänge und Datenlöschvorgänge vor Empfang des Finalisierungsbefehls 103 ermöglicht werden und Datenschreibvorgänge und Datenlöschvorgänge nach Empfang des Finalisierungsbefehls 103 verhindert werden. Weil der Statusindikator 128 persistent den Finalisiert-Wert speichert, verbleibt die Da tenspeichervorrichtung 104 in dem finalisierten Zustand, nachdem der Finalisierungsvorgang durchgeführt wurde. In dem Halbleiterspeicher 130 gespeicherte Daten, wie z. B. die gespeicherten Daten 132, können zuverlässig in dem Halbleiterspeicher 130 archiviert werden, und ein Zustand des Halbleiterspeichers 130 kann nicht weiter verändert werden.
  • In 2 ist ein zweites Ausführungsbeispiel eines Systems zur Finalisierung eines Halbleiterspeichers dargestellt und allgemein mit 200 bezeichnet. Das System 200 beinhaltet einen Host 202, welcher mit einer Datenspeichervorrichtung 204 kommuniziert. Die Datenspeichervorrichtung 204 beinhaltet eine Host-Schnittstelle 210, einen Controller 220, eine Speicherschnittstellenschaltung 212 und einen Halbleiterspeicher 230. Der Controller 220 und der Halbleiterspeicher 230 sind in einem einzigen Halbleiterbauteil 260 integriert.
  • Der Controller 220 ist dazu ausgestaltet, in Reaktion auf den Empfang eines Finalisierungsbefehls 203 von dem Host 202 einen Finalisierungsvorgang 222 zu implementieren. Der Controller 220 beinhaltet darüber hinaus ein Statusregister 224, welches eine oder mehrere persistente Speicherzellen 226 beinhaltet, um wenigstens einen Teil eines Wertes eines Statusindikators 228 persistent zu speichern. Zum Beispiel kann das Statusregister 224 mehrere Bits beinhalten, welche verschiedene Statusattribute der Datenspeichervorrichtung 204 anzeigen. Wenigstens ein Bit des Statusregisters 224 kann dem Statusindikator 228 entsprechen, wie z. B. ein bestimmtes Bit, welches einen einer logischen Null entsprechenden Wert aufweist, um einen nicht finalisierten Status anzuzeigen, und einen Wert einer logischen Eins aufweist, um einen finalisierten Status anzuzeigen. Obwohl ein oder mehrere Bits des Statusregisters 224, welche dem Finalisierungsstatus entsprechen, als logische Werte in den persistenten Speicherzellen 226 gespeichert sein können, können andere Bits des Statusindikators 228 oder andere Indikatoren nicht persistent sein. Solche nicht persistenten Bits können in erneut beschreibba ren Speicherzellen (nicht dargestellt) des Statusregisters 224, welche programmierte Werte nicht persistent speichern, abgelegt sein.
  • Der Controller 220 ist mit einem ersten Register 240 und einem zweiten Register 250 gekoppelt. Das erste Register 240 kann einen Speichertypindikator 224 beinhalten. Das zweite Register 250 kann einen Befehlsunterstützungsindikator 252 und einen Schreibschutzindikator 254 beinhalten. Bei anderen Ausführungsbeispielen können der Speichertypindikator 242, der Befehlsunterstützungsindikator 252, der Schreibschutzindikator 254 oder eine beliebige Kombination davon nicht in den Registern 240 und 250 gespeichert sein, sondern anstelle dessen in dem Halbleiterspeicher 230 oder dem Controller 220 gespeichert sein oder nach Bedarf berechnet werden.
  • Im Betrieb kann der Host 202 Befehle senden, um Datenlesevorgänge und Datenschreibvorgänge an dem Halbleiterspeicher 230 durchzuführen. Zum Beispiel kann der Host 202 einen Befehl zum Schreiben von Daten, wie z. B. zum Schreiben von gespeicherten Daten 232, in den Halbleiterspeicher 230 senden. Der Host 202 kann den Finalisierungsbefehl 203 an die Datenspeichervorrichtung 204 senden. In Reaktion auf den Finalisierungsbefehl 203 kann der Controller 220 den Statusindikator 228 auf einen Finalisiert-Wert setzen. Das Setzen des Finalisiert-Werts kann beinhalten, dass eine oder mehrere der persistenten Speicherzellen 226 auf einen logisch hohen Wert gesetzt werden, aus welchem die persistenten Speicherzellen 262 nicht von dem Controller 220 in einen logisch niedrigen Wert zurückgebracht werden können. Zum Beispiel können die persistenten Speicherzellen 226 einen einmal programmierbaren Speicher beinhalten, welcher eine oder mehrere Fuse-Elemente oder Anti-Fuse-Elemente verwendet, um einen Datenwert zu speichern, oder kann wiederbeschreibbare Zellen beinhalten, wie z. B. Flash-Speicherzellen, welche derart gesteuert sind, dass eine Änderung eines gespeicherten Finalisiert-Werts auf einen Nicht-Finalisiert-Wert verhindert wird.
  • In Reaktion auf den Empfang des Finalisierungsbefehls 203, kann der Controller 220 auch Werte des Speichertypindikators 242, des Befehlsunterstützungsindikators 252, des Schreibschutzindikators 254 oder einer beliebigen Kombination davon aktualisieren, um anzuzeigen, dass der Halbleiterspeicher 230 finalisiert wurde und dass weitere Datenschreibvorgänge, Löschvorgänge oder andere Versuche zur Änderung von Daten in dem Halbleiterspeicher 230 verhindert werden. Zum Beispiel kann der Controller 220 dazu ausgestaltet sein, dem Host 202 anzuzeigen, dass der Halbleiterspeicher 230 einen Nur-Lese-Typ aufweist, keine Schreibbefehle unterstützt und schreibgeschützt ist, wie z. B. über eine Statusinformationsmeldung 205. Die Datenspeichervorrichtung 204 kann daher als eine Archivierungsmedienvorrichtung dienen, welche in der Lage ist, in Reaktion auf den Finalisierungsbefehl 203 einen Zustand des Halbleiterspeichers 230 und der gespeicherten Daten 232 beizubehalten.
  • In 3 ist ein drittes Ausführungsbeispiel eines Systems zur Finalisierung eines Halbleiterspeichers dargestellt und allgemein mit 300 bezeichnet. Das System 300 beinhaltet einen Host 302, welcher mit einer Datenspeichervorrichtung 304 kommuniziert. Die Datenspeichervorrichtung 304 beinhaltet eine Host-Schnittstelle 310, einen Controller 320, ein oder mehrere Register 340 und einen persistenten Speicher 330.
  • Bei einem Ausführungsbeispiel ist der persistente Speicher 330 dazu ausgestaltet, zu ermöglichen, dass Daten geschrieben werden, aber ermöglicht nicht, dass Daten gelöscht oder überschrieben werden. Zum Beispiel kann der persistente Speicher 330 einen einmal programmierbaren Speicher beinhalten, so dass, sobald ein Wert einer logischen Eins in eine Speicherzelle geschrieben wird, die Speicherzelle nicht mehr in einen Zustand einer logischen Null zurückgebracht werden kann. Ein solches Beispiel kann eine Fuse-basierte oder Anti-Fuse-basierte Speicherzelle beinhalten, z. B. eine Speicherzelle mit wenigstens einem Fuse-Element und/oder Anti-Fuse-Element. Als ein weiteres Beispiel kann der persistente Speicher 330 einen einmal beschreibbaren mehrfach auslesbaren Speicher bzw. WORM-Speicher (WORM: Write-Once Read-Many) beinhalten. Der WORM-Speicher kann dem Host 302 als wiederbeschreibbar erscheinen. Jedoch können einzelne Speicherzellen nicht wiederbeschreibbar sein. Anstelle dessen können Aktualisierungen an Dateien als zusätzliche Dateien in den Speicher gespeichert werden, und entsprechende Dateisystemdaten können erneut geschrieben oder aktualisiert werden, bis in dem persistenten Speicher 330 der gesamte verfügbare Speicherplatz aufgebraucht ist. Als noch ein weiteres Beispiel kann der persistente Speicher 330 ein Flash-Speicher sein, bei welchem ein Überschreiben und Löschen von Daten durch den Controller 320 verhindert werden.
  • Der persistente Speicher 330 beinhaltet eine bestimmte Gruppe von persistenten Speicherzellen 336. Die Gruppe von persistenten Speicherzellen 336 beinhaltet einen Finalisierungsstatusindikator 328, welcher ein oder mehrere Finalisierungsstatusbits 334 beinhalten kann. Der persistente Speicher 330 kann auch gespeicherte Daten 332 beinhalten.
  • Im Betrieb reagiert der Controller 320 auf den Empfang eines Finalisierungsbefehls 303, indem er einen Finalisierungsvorgang 322 durchführt. Die Durchführung des Finalisierungsvorgangs 322 kann beinhalten, dass bei dem wenigstens einen Finalisierungsstatusbit 334 des Statusindikators 328 in der Gruppe von persistenten Speicherzellen 336 ein Finalisiert-Wert gesetzt wird. Zusätzlich kann der Controller 320 einen oder mehrere Statusinformationswerte aktualisieren, wie z. B. einen Befehlsunterstützungswert, einen Speichertypinformationswert, einen Schreibschutzstatuszustandswert oder eine beliebige Kombination davon, und kann solche Informationen als Statusinformationen 305 an den Host 302 zurückgeben.
  • In 4 ist ein viertes Ausführungsbeispiel eines Systems zur Finalisierung eines Halbleiterspeichers dargestellt und allgemein mit 400 bezeichnet. Das System 400 beinhaltet einen Host 402, welcher mit einer Datenspeichervorrichtung 404 kommuniziert. Die Datenspeichervorrichtung 404 beinhaltet eine Host-Schnittstellencontrollerkomponente 460, welche über einen Bus 464 mit einer Speicherkomponente 462 gekoppelt ist. Bei einem Ausführungsbeispiel beinhaltet die Host-Schnittstellencontrollerkomponente 460 eine Host-Schnittstelle 410, welche dazu ausgestaltet ist, Befehle und Daten von dem Host 402 zu empfangen und Daten und andere Informationen an den Host 402 zu übermitteln. Die Host-Schnittstellencontrollerkomponente 460 beinhaltet auch einen Controller 420, welcher mit der Host-Schnittstelle 410 gekoppelt ist und darüber hinaus mit einer Speicherschnittstellenschaltung 412 gekoppelt ist. Der Controller 420 kann auch mit einem oder mehreren Registern 440 gekoppelt sein.
  • Bei einem Ausführungsbeispiel beinhaltet die Speicherschnittstellenschaltung 412 mehrere elektrische Verbinder, welche mit dem Bus 464 gekoppelt sind. Zum Beispiel kann der Bus 464 einen Bus mit einer Größe von 8 Bit, 16 Bit oder einer anderen Größe beinhalten, welcher dazu ausgestaltet ist, Daten und Befehle, wie z. B. einen Finalisierungsbefehl 465, an die Speicherkomponente 462 zu übermitteln. Der Bus 464 kann darüber hinaus dazu ausgestaltet sein, Daten und andere Informationen, wie z. B. einen Bestätigungsindikator (nicht dargestellt) von der Speicherkomponente 462 an die Speicherschnittstellenschaltung 412 zurückzugeben.
  • Bei einem Ausführungsbeispiel beinhaltet die Speicherkomponente 462 einen Halbleiterspeicher 430 und eine Schnittstellensschaltung 468, welche mit dem Bus 464 gekoppelt ist. Die Schnittstellenschaltung 468 ist dazu ausgestaltet, über den Bus 464 Befehle und Daten zu empfangen und Statusinformationen und andere Daten zurückzugeben, indem bei dem Bus 464 elektrische Signale gesteuert werden. Die Speicherkomponente 462 beinhaltet auch einen Controller 470, welcher mit der Schnittstellenschaltung 468 gekoppelt ist und welcher auch mit dem Halbleiterspeicher 430 gekoppelt ist.
  • Der Controller 470 kann dazu ausgestaltet sein, in Reaktion auf den Empfang des Finalisierungsbefehls 465 von der Host-Schnittstellencontrollerkomponente 460 einen Finalisierungsvorgang 472 durchzuführen. Zum Beispiel kann der Controller 470, welcher bei einem Ausführungsbeispiel unter Verwendung von kombinatorischen Schaltungen implementiert sein kann, den Finalisierungsvorgang 472 ausführen, um den Halbleiterspeicher 430 zu finalisieren, wie z. B. durch Setzen eines Finalisierungsstatusindikators 428, welcher in einer oder mehreren Speicherzellen 426 des Halbleiterspeichers 430 gespeichert ist. Indem der Finalisierungsstatusindikator 428 auf einen Finalisiert-Wert gesetzt wird, können in dem Halbleiterspeicher 430 gespeicherte Daten, wie z. B. gespeicherte Daten 432, persistent in dem Halbleiterspeicher 430 gehalten werden, und das Schreiben von zusätzlichen Daten in den Halbleiterspeicher 430 kann verhindert werden.
  • Zur Veranschaulichung, wenn der Controller 470 eine Datenschreibanforderung oder Datenleseanforderung zum Zugriff auf den Halbleiterspeicher 430 empfängt, kann der Controller 470 den Finalisierungsstatusindikator 428 abfragen. Wenn bestimmt wurde, dass der Finalisierungsstatusindikator 428 einen Finalisiert-Wert aufweist, kann der Controller 470 in Reaktion darauf über den Bus 464 eine negative Bestätigung oder einen Fehlerindikator an die Host-Schnittstellencontrollerkomponente 460 zurückgeben. Auf diese Weise kann die Speicherkomponente 462, welche repräsentativ für eine oder mehrere Speicherkomponenten innerhalb der Datenspeichervorrichtung 404 sein kann, individuell finalisiert werden und eine solche Finalisierung kann innerhalb der Speicherkomponente 462 durchgeführt werden, und nicht durch die Host-Schnittstellencontrollerkomponente 460.
  • In 5 ist ein Ausführungsbeispiel eines Systems zur Implementierung eines Finalisierungsbefehls in einem Halbleiterspeicher dargestellt und allgemein mit 500 bezeichnet. Eine Datenspeichervorrichtung 502 ist mit einem Host 520 kommunizierend dargestellt. Die Datenspeichervorrichtung beinhaltet einen Controller 530 und einen Speicher 532. Bei einem Ausführungsbeispiel ist die Datenspeichervorrichtung 502 die Datenspeichervorrichtung 104 von 1, die Datenspeichervorrichtung 204 von 2, die Datenspeichervorrichtung 304 von 3, die Datenspeichervorrichtung 404 von 4 oder eine beliebige Kombination davon.
  • Die Datenspeichervorrichtung 502 beinhaltet einen persistenten Speicher 504, welcher wenigstens einen Finalisierungsstatusindikator aufweist, der einen Nicht-Finalisiert-Wert 506 speichert. Zum Beispiel kann der Nicht-Finalisiert-Wert 506 ein Wert sein, welcher einer binären Null entspricht. Die Datenspeichervorrichtung 502 beinhaltet auch einen Speichertypindikator, welcher einen Wert 508 speichert, der einen Wert „beschreibbarer Speicher”, einen Wert „einmal programmierbar” (OTP: One-Time-Programmable), einen Wert „einmal schreiben mehrfach lesen” (WORM: Write-Once Read-Many) oder eine Kombination davon beinhaltet. Die Datenspeichervorrichtung 502 beinhaltet einen Befehlsunterstützungsindikator, welcher einen Wert „Schreiben unterstützt” 510 speichert. Der Wert „Schreiben unterstützt” 510 zeigt an, dass die Datenspeichervorrichtung 502 auf das Schreiben von Daten in den Speicher 532 gerichtete Schreibbefehle unterstützt. Die Datenspeichervorrichtung 502 beinhaltet auch einen Schreibschutzindikator, welcher einen Wert „nicht schreibgeschützt” 512 aufweist.
  • Wie dargestellt kann die Datenspeichervorrichtung 502 einen Statusindikator 521 an den Host 520 übermitteln, welcher anzeigt, dass der Speicher 532 einen beschreibbaren Status aufweist. In Reaktion auf den Statusindikator 521, welcher den beschreibbaren Status anzeigt, kann der Host 520 einen Datenschreibbefehl 523 an die Datenspeichervorrichtung 502 über mitteln, um Daten in den Speicher 532 zu schreiben. In Reaktion auf den Datenschreibbefehl 523 kann die Datenspeichervorrichtung 502 Daten in den Speicher 532 schreiben und eine Bestätigung 525 an den Host 520 senden.
  • Nach Durchführung eines Finalisierungsvorgangs, schematisch als ein Pfeil 522 dargestellt, ist die Datenspeichervorrichtung 502 derart dargestellt, dass sie einen Finalisiert-Wert 546 in dem den Finalisierungsstatusindikator speichernden persistenten Speicher 504 speichert. Zum Beispiel kann der Finalisiert-Wert 546 ein Wert sein, welcher einer binären Eins entspricht, was anzeigt, dass der Speicher 532 einen finalisierten Status aufweist. Der Speichertyp kann einen Wert „nur Lesespeicher” (ROM: Read-Only Memory) 548 speichern, welcher anzeigt, dass der Speicher 532 gelesen werden kann, jedoch nicht beschreibbar ist. Der Befehlsunterstützungsindikator kann einen Wert „Schreiben nicht unterstützt” 550 beinhalten, welcher anzeigt, dass Schreibbefehle bei dem Speicher 532 nicht unterstützt werden. Der Schreibschutzindikator kann einen Wert „schreibgeschützt” 552 speichern, welcher anzeigt, dass der Speicher 532 schreibgeschützt ist.
  • Nach dem Finalisierungsvorgang 522 verhindert die Datenspeichervorrichtung 502 bei dem Speicher 532 weitere Datenschreibvorgänge. Außerdem beinhaltet die Datenspeichervorrichtung 502 einen oder mehrere Indikatorwerte, welche an eine Host-Vorrichtung übermittelt werden können, um der Hostvorrichtung anzuzeigen, dass bei dem Speicher 532 zusätzliche Datenschreibvorgänge nicht erlaubt sind. Zum Beispiel kann die Datenspeichervorrichtung 502 eine Statusanzeigemeldung 527 an den Host 520 übermitteln, welche anzeigt, dass der Status des Speichers 532 „nur lesen” ist. Der Host 520 kann nach der Finalisierung einen Datenschreibbefehl 529 an die Datenspeichervorrichtung 502 senden, woraufhin die Datenspeichervorrichtung 502 eine Fehlermeldung 531 senden kann.
  • In 6 ist ein Flussdiagramm für ein Ausführungsbeispiel eines Verfahrens zur Finalisierung eines Halbleiterspeichers dargestellt und allgemein mit 600 bezeichnet. Bei einem veranschaulichenden Ausführungsbeispiel kann das Verfahren 600 durchgeführt werden von der Datenspeichervorrichtung 104 von 1, der Datenspeichervorrichtung 204 von 2, der Datenspeichervorrichtung 304 von 3, der Datenspeichervorrichtung 404 von 4, der Datenspeichervorrichtung 502 von 5 oder einer beliebigen Kombination davon.
  • Bei 602 wird ein Befehl zur Finalisierung von Daten in einer Datenspeichervorrichtung empfangen, welche einen mit einem Halbleiterspeicher gekoppelten Controller beinhaltet. Die Datenspeichervorrichtung beinhaltet darüber hinaus einen Statusindikator zum Anzeigen eines Finalisierungsstatus des Halbleiterspeichers. Zum Beispiel kann der Statusindikator bei dem Controller vorgesehen sein, wie z. B. der Statusindikator 128 von 1, oder bei dem Halbleiterspeicher vorgesehen sein, wie z. B. der Statusindikator 328 von 3.
  • Bei 604 wird in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in der Datenspeichervorrichtung der Statusindikator auf einen Finalisiert-Wert gesetzt. Der Controller ist dazu ausgestaltet, Schreibvorgänge an dem Halbleiterspeicher zu verhindern, wenn der Statusindikator den Finalisiert-Wert aufweist. Der Controller kann auch dazu ausgestaltet sein, Löschvorgänge an dem Halbleiterspeicher zu verhindern, wenn der Statusindikator den Finalisiert-Wert aufweist. Somit kann in Reaktion darauf, dass der Statusindikator auf den Finalisiert-Wert gesetzt wird, der Halbleiterspeicher in einem finalisierten Zustand konserviert werden und kann als Archivierungsmedienspeicher verwendet werden.
  • Bei einem Ausführungsbeispiel beinhaltet das Setzen des Statusindikators auf den Finalisiert-Wert bei 606 ein Programmieren einer persistenten Speicherzelle der Datenspeichervorrichtung. Die persistente Speicherzelle kann, als nicht ein schränkende Beispiele, eine einmal programmierbare Speicherzelle sein, welche wenigstens einen Teil des Statusindikators als einen Logikwert speichert, eine wiederbeschreibbare Speicherzelle sein, bei welcher nachfolgende Schreibvorgänge durch den Controller verhindert werden, oder ein anderer Typ von Speicherzelle sein, welche dazu ausgestaltet ist, einen Wert trotz nachfolgender Befehle zum Löschen oder Überschreiben des Wertes zu speichern. Bei einem Ausführungsbeispiel befindet sich die persistente Speicherzelle bei oder in dem Controller, wie z. B. die persistenten Speicherzellen 126 von 1. Bei einem weiteren Ausführungsbeispiel befindet sich die persistente Speicherzelle bei oder in dem Halbleiterspeicher, wie z. B. die persistenten Speicherzellen 336 von 3.
  • Bei einem Ausführungsbeispiel sind der Controller und der Halbleiterspeicher in einem einzigen Halbleiterbauteil integriert. Zum Beispiel können der Controller und der Halbleiterspeicher der Controller 220 und der Halbleiterspeicher 230 sein, welche in dem Halbleiterbauteil 260 von 2 integriert sind. Bei einem weiteren Ausführungsbeispiel ist der Controller in einer Controllerkomponente ausgebildet und der Halbleiterspeicher ist in einer Speicherkomponente ausgebildet. Zum Beispiel kann die Controllerkomponente die Controllerkomponente 160 von 1 sein, und die Speicherkomponente kann die Speicherkomponente 162 von 1 sein.
  • Bei einem Ausführungsbeispiel wird bei 608, in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in dem Halbleiterspeicher, bei der Datenspeichervorrichtung ein Speichertypindikator auf einen Wert gesetzt, welcher einen Nur-Lese-Speichertyp anzeigt. Zum Beispiel kann der Speichertypindikator, als veranschaulichende nicht einschränkende Beispiele, der Speichertypindikator 142 von 1, der Speichertypindikator 242 von 2 oder der in 5 gezeigte Speichertypindikator mit dem Nur-Lese-Wert (ROM-Wert) 548 sein. Ein Wert des Speichertypindikators kann an eine Host vorrichtung übermittelt werden, um der Hostvorrichtung anzuzeigen, dass der Halbleiterspeicher vom Nur-Lese-Speichertyp ist, wie z. B. über Statusinformationen, welche dem Host bei Verbindung oder Neuverbindung mit dem Host gesendet werden.
  • Bei einem Ausführungsbeispiel wird bei 610, in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in dem Halbleiterspeicher, bei der Datenspeichervorrichtung ein Befehlsunterstützungsindikator auf einen Wert gesetzt, welcher anzeigt, dass Datenschreibvorgänge an dem Halbleiterspeicher nicht unterstützt sind. Zum Beispiel kann der Befehlsunterstützungsindikator, als veranschaulichende nicht einschränkende Beispiele, der Befehlsunterstützungsindikator 152 von 1, der Befehlsunterstützungsindikator 252 von 2 oder der in 5 gezeigte Befehlsunterstützungsindikator mit dem Wert „Schreiben nicht unterstützt” 550 sein. Ein Wert des Befehlsunterstützungsindikators kann an eine Hostvorrichtung übermittelt werden, um der Hostvorrichtung anzuzeigen, dass die Datenspeichervorrichtung Schreibvorgänge an dem Halbleiterspeicher nicht unterstützt, wie z. B. über Statusinformationen, welche dem Host bei Verbindung oder Neuverbindung mit dem Host gesendet werden.
  • Bei einem Ausführungsbeispiel wird bei 612, in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in dem Halbleiterspeicher, bei der Datenspeichervorrichtung ein Schreibschutzindikator auf einen Wert gesetzt, welcher anzeigt, dass der Halbleiterspeicher schreibgeschützt ist. Zum Beispiel kann der Schreibschutzindikator, als veranschaulichende nicht einschränkende Beispiele, der Schreibschutzindikator 154 von 1, der Schreibschutzindikator 254 von 2 oder der in 5 gezeigte Schreibschutzindikator mit dem Wert „schreibgeschützt” 552 sein. Ein Wert des Schreibschutzindikators kann an eine Hostvorrichtung übermittelt werden, um der Hostvorrichtung anzuzeigen, dass der Halbleiterspeicher schreibgeschützt ist, wie z. B. über Statusinformationen, welche dem Host bei Verbindung oder Neuverbindung mit dem Host gesendet werden.
  • Bei einem weiteren Ausführungsbeispiel wird in Reaktion auf den Empfang einer Anfrage von einer Hostvorrichtung, ein Wert des Statusindikators ausgelesen, und wenigstens eines von einem Wert, welcher einen Speichertyp anzeigt, einem Wert, welcher anzeigt, ob Datenschreibvorgänge unterstützt sind, oder einem Wert, welcher anzeigt, ob der Halbleiterspeicher schreibgeschützt ist, wird auf dem aus dem Statusindikator ausgelesenen Wert basierend erzeugt. Als Ergebnis können ein oder mehrere solche Werte basierend auf dem Statusindikator „bei Bedarf” bestimmt werden, anstelle sie unmittelbar in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in dem Halbleiterspeicher zu setzen.
  • Bei einem Ausführungsbeispiel, bei welchem der Halbleiterspeicher einen Flash-Speicher beinhaltet, wird optional bei 614 als Teil eines Finalisierungsvorgangs wenigstens ein Zyklus eines Löschens von Daten aus dem Flash-Speicher und eines erneuten Schreibens der Daten in den Flash-Speicher durchgeführt. Zum Beispiel kann der Halbleiterspeicher ein Flash-Speicher sein, welcher eine verbesserte Beibehaltung von Daten in einer Speicherzelle zeigt, nachdem mehrere Schreibvorgänge an der Speicherzelle durchgeführt wurden. Als veranschaulichendes nicht einschränkendes Beispiel könnte der erste jemals in der Speicherzelle gespeicherte Datenwert statistisch nicht so lange beibehalten werden wie ein Datenwert, welcher aus einem dritten Datenschreibvorgang in die Speicherzelle resultiert. Die Datenspeichervorrichtung kann dazu ausgestaltet sein, eine Anzahl von Datenschreibvorgängen in Speicherzellen zu verfolgen und, wenn die Anzahl von Datenschreibvorgängen zu einer vorhergesagten Datenbeibehaltung führt, für welche eine Verbesserung durch Ausführung eines oder mehrerer zusätzlicher Zyklen eines Löschens und eines erneuten Schreibens der Daten in die Speicherzellen erwartet wird, können ein oder mehrere zusätzliche Zyklen eines Lö schens und eines erneuten Schreibens der Daten durchgeführt werden. Bei einem weiteren Ausführungsbeispiel kann es vorteilhaft sein, Daten, welche korrigierbare Fehler aufweisen, in den Flash-Speicher zu schreiben, ohne die Fehler zu korrigieren, um die Schreibleistung im normalen Betrieb zu verbessern. Bevor der Speicher finalisiert wird, können derartige Fehler in den gespeicherten Daten zeitgleich mit der Durchführung des wenigstens einen zusätzlichen Zyklus eines Löschens und eines Programmierens der Daten korrigiert werden.
  • Bei einem Ausführungsbeispiel werden bei 616 ein oder mehrere aktualisierte Indikatorwerte an den Host gesendet. Zum Beispiel können der Speichertypindikatorwert, der Befehlsunterstützungswert, der Schreibschutzwert, ein oder mehrere andere Werte oder eine beliebige Kombination davon an den Host gesendet werden, um ein Ergebnis des Finalisierungsvorgangs anzuzeigen. In einigen Fällen kann der Host ein oder mehrere Register der Datenspeichervorrichtung bei Verbindung mit der Vorrichtung auslesen, und die Datenspeichervorrichtung kann bewirken, dass der Host die Verbindung löst und mit der Datenspeichervorrichtung neu verbunden wird, so dass der Host aktualisierte Indikatorwerte ausliest, welche in dem wenigstens einen Register gespeichert sind.
  • Nach Veranlassung des Finalisierungsvorgangs können bei 618 Schreibvorgänge an den Halbleiterspeicher verhindert werden. Zum Beispiel können an den Host gesendete Indikatoren verhindern, dass der Host versucht, Datenlöschvorgänge oder Datenschreibvorgänge an dem Halbleiterspeicher durchzuführen. Zusätzlich oder als Alternative können der Controller oder ein anderer interner Mechanismus der Datenspeichervorrichtung verhindern, dass Löschvorgänge aus dem Halbleiterspeicher oder Schreibvorgänge in den Halbleiterspeicher ausgeführt werden oder sich auf den Halbleiterspeicher auswirken.
  • Obwohl das Verfahren 600 mit einer bestimmten Reihenfolge beschrieben und veranschaulicht wurde, können bei anderen Aus führungsbeispielen dem Empfang des Befehls zur Finalisierung der Daten bei 602 nachfolgende Vorgänge in einer beliebigen anderen Reihenfolge ausgeführt werden. Außerdem können ein oder mehrere Vorgänge im Wesentlichen gleichzeitig oder wenigstens teilweise parallel zueinander ausgeführt werden. Weiterhin kann, obwohl ein Ausführungsbeispiel für das Verfahren 600 veranschaulicht wurde, welches mehrere Vorgänge beinhaltet, bei anderen Ausführungsbeispielen das Verfahren einen oder mehrere der dargestellten Vorgänge nicht beinhalten oder kann zusätzliche Vorgänge beinhalten.
  • In 7 zeigt ein veranschaulichendes Ausführungsbeispiel für ein System, welches zur Finalisierung eines Halbleiterspeichers verwendet werden kann und allgemein mit 700 bezeichnet ist. Das System 700 beinhaltet eine Speichervorrichtung 702, welche eine Controllerkomponente 704 beinhaltet, die mit einer Speicherkomponente 708 gekoppelt ist.
  • Bei einem Ausführungsbeispiel kann die Speichervorrichtung 702 die Datenspeichervorrichtung 104 von 1, die Datenspeichervorrichtung 204 von 2, die Datenspeichervorrichtung 304 von 3, die Datenspeichervorrichtung 404 von 4, die Datenspeichervorrichtung 502 von 5 oder eine beliebige Kombination davon sein. Die Controllerkomponente 704 kann eine Host-Schnittstellenschaltung 710, einen Controller 712 und eine Speicherschnittstellenschaltung 714 beinhalten. Die Controllerkomponente 704 kann über einen Bus 706 mit der Speicherkomponente 708 gekoppelt sein, wie z. B., als veranschaulichendes nicht einschränkendes Beispiel, ein paralleler Datenbus mit 8 Bit oder 16 Bit. Die Controllerkomponente 704 kann über die Host-Schnittstellenschaltung 710 Befehle und Daten mit einem externen Host (nicht dargestellt) austauschen. Der Controller 712 kann dazu ausgestaltet sein, auf von der Host-Schnittstellenschaltung 710 empfangene Befehle zu reagieren und/oder antworten, und kann auch dazu ausgestaltet sein, über die Speicherschnittstellenschaltung 714 Daten und Befehle an die Speicherkomponente 708 zu senden und von dieser zu empfangen.
  • Bei einem Ausführungsbeispiel beinhaltet die Speicherkomponente 708 eine Schnittstellenschaltung 720, einen mit der Schnittstellenschaltung 720 gekoppelten Controller 730 und ein dem Controller 730 zugängliches Speicherarray 740. Die Speicherkomponente 708 kann eine Zeilendekoderschaltung 750 und eine Spaltendekoderschaltung 752 beinhalten, welche Zugriff auf Daten ermöglichen, welche in wenigstens einer bestimmten Zeile und Spalte des Speicherarrays 740 gespeichert sind, wie z. B. zum Auslesen eines Werts oder Schreiben eines Werts in einer bestimmten Speicherzelle 742 bei einer Bitleitung WLj und einer Wortleitung WLi. Ein Cache-Register 760, ein Datenregister und ein Leseverstärker 762 können darüber hinaus mit dem Speicherarray 740 gekoppelt sein und können verwendet werden, um Daten, welche in das Speicherarray 740 geschrieben werden sollen oder Daten, welche aus dem Speicherarray 740 ausgelesen wurden, zu cachen bzw. vorübergehend zu speichern. Bei einem Ausführungsbeispiel kann das Speicherarray 740 einen Flash-Speicher beinhalten. Bei einem Ausführungsbeispiel kann es vorteilhaft sein, Daten, welche korrigierbare Fehler aufweisen, ohne Korrektur der Fehler in den Flash-Speicher zu schreiben, so dass im normalen Betrieb die Schreibleistung verbessert wird. Vor Finalisierung des Speichers können derartige Fehler in den gespeicherten Daten zeitgleich mit der Durchführung des wenigstens einen zusätzlichen Zyklus eines Löschens und eines Programmierens der Daten korrigiert werden.
  • Bei einem Ausführungsbeispiel beinhaltet der Controller 730 einen Zwischenspeicher bzw. Puffer 732 zum Speichern von Befehlen, Daten oder einer beliebigen Kombination davon. Der Controller 730 kann auch wenigstens ein Statusregister 734, eine Zustandsmaschinensteuerschaltung 736, welche einen Finalisierungsbefehlzustand beinhaltet, eine Hochspannungsgeneratorschaltung 738 und eine On-Chip-Adressdekoderschaltung 739 beinhalten. Der Controller 730 kann verschaltet sein, um elektrische Signale an die Zeilendekoderschaltung 750, an die Spaltendekoderschaltung 752, an das Cache-Register 760 sowie an das Datenregister und den Leseverstärker 762 zu liefern. Bei einem Ausführungsbeispiel kann der Controller 730, welcher den wenigstens einen Puffer 732, das Statusregister 734, die Zustandsmaschinensteuerschaltung 736, die Hochspannungsgeneratorschaltung 738 und die On-Chip-Adressdekoderschaltung 739 beinhaltet, im Zusammenhang mit der Schnittstellenschaltung 720 und dem Speicherarray 740 wenigstens einen Teil des Verfahrens 600 von 6 auszuführen.
  • Bei einem Ausführungsbeispiel kann das Statusregister 437 des Controllers 730 einen oder mehrere Indikatoren beinhalten, welche Werte speichern, wie z. B. einen Wert „bestanden/nicht bestanden” (P/F: Pass/Fail) 742, einen Wert „beschäftigt/bereit” (B/R: Busy/Ready) 744, einen Schreibschutzwert bzw. WP-Wert (WP: Write Protect) 746 und einen Wert eines Finalisierungsindikators 748. Zum Beispiel kann der Finalisierungsindikator 748 als veranschaulichende nicht einschränkende Beispiele, der Finalisierungsstatusindikator 328 von 3 oder der Finalisierungsstatusindikator 428 von 4 sein. Das Statusregister 734 kann für die Zustandsmaschinensteuerschaltung 736, welche den Finalisierungsbefehlzustand beinhaltet, zugänglich sein.
  • Die Zustandsmaschinensteuerschaltung 736 kann spezielle Hardware und Schaltungen beinhalten, um einen Betrieb des Controllers 730 in Reaktion auf einen oder mehrere empfangene Befehle und interne Zustände, wie z. B. in dem Statusregister 734 dargestellt, zu steuern. Die Zustandsmaschinensteuerschaltung 736 kann zusätzlich zu dem Finalisierungsbefehlsstatus weitere Zustände beinhalten, wie z. B., als veranschaulichende nicht einschränkende Beispiele, einen Lesestatuszustand, einen Datenschreibzustand oder einen Datenlesezustand. Zum Beispiel kann, wenn die Zustandsmaschinensteuerschaltung 736 einen Finalisierungsbefehl empfängt, wie z. B. über den Bus 706, die Zustandsmaschinensteuerschaltung 736 in den Finalisierungsbefehlzustand übergehen, was dazu führen kann, dass der Finalisierungsindikator 748 auf einen Finalisiert-Wert gesetzt wird und dass ein oder mehrere Werte anderer Indikatoren des Statusregisters 734 gesetzt werden. Zum Beispiel kann bei einem Ausführungsbeispiel, bei welchem die Speicherkomponente einen dedizierten Schreibschutzpin (nicht dargestellt) aufweist, der Controller 730 nach Empfang des Finalisierungsbefehls dauerhaft emulieren, dass der Schreibschutzpin gesetzt ist.
  • Bei einem Ausführungsbeispiel kann die Hochspannungsgeneratorschaltung 738 auf die Zustandsmaschinensteuerschaltung 736 reagieren und kann dazu ausgestaltet sein, eine Hochspannung zu erzeugen, um Werte in das Speicherarray 740 zu programmieren oder Werte daraus zu löschen. Zum Beispiel kann das Speicherarray 740 ein Flash-Speicher oder anderer Speicher sein, welcher über eine „hohe” Spannung, wie z. B. 5 Volt, programmierbar oder löschbar ist. Der Controller 730 kann auch die On-Chip-Adressdekoderschaltung 739 beinhalten, welche Hardware und Logikschaltungen beinhalten kann, um Speicheradressinformationen von der Controllerkomponente 704 zu empfangen und die Speicheradressinformationen in spezifische Zeilen und Spalten zur Übermittlung an die Zeilendekoderschaltung 750 und die Spaltendekoderschaltung 752 zu dekodieren.
  • Die Schnittstellenschaltung 720 kann Datenbusverbinder 722, einen mit den Datenbusverbindern 722 gekoppelten Ausgangstreiber 724, Eingangs/Ausgangs-Puffer (I/O-Puffer) und Latch-Register 726 beinhalten. Die I/O-Puffer und Latch-Register 726 können dazu ausgestaltet sein, über die Datenbusverbinder 722 empfangene Daten oder über die Datenbusverbinder 722 auf den Datenbus 706 zu schreibende Daten zu speichern bzw. „latchen”. Der Datenbusverbinder 722 kann physikalische elektrische Verbinder beinhalten, welche die Schnittstellenschaltung 720 mit dem Datenbus 706 verbinden. Der Ausgangstreiber 724 kann spezielle Schaltungen und elektrische Verbindungen bein halten, um der Schnittstellenschaltung 720 zu ermöglichen, elektrische Signale über den Bus 706 zu treiben. Bei einem Ausführungsbeispiel ist die Schnittstellenschaltung 720 derart ausgestaltet, dass sie einem oder mehreren Buskommunikationsprotokollen oder -standards entspricht.
  • In 8 ist ein veranschaulichendes Ausführungsbeispiel eines Systems dargestellt, welches zur Finalisierung eines Halbleiterspeichers verwendet werden kann und allgemein mit 800 bezeichnet ist. Das System 800 beinhaltet eine Speichervorrichtung 802, welche eine Controllerkomponente 804 beinhaltet, die über einen Bus 806 mit einer oder mehreren Speicherkomponenten, wie z. B. einer repräsentativ dargestellten Speicherkomponente 808, gekoppelt ist. Die repräsentativ dargestellte Speicherkomponente 808 beinhaltet eine Schnittstellenschaltung 890 zur Kommunikation über den Bus 806. Die Speicherkomponente 808 beinhaltet auch einen Controller 892, welcher mit der Schnittstellenschaltung 890 gekoppelt ist und welcher auch mit einem Speicher gekoppelt ist, wie z. B. einem Speicherarray 894. Das Speicherarray 894 kann einen oder mehrere Typen von Speichermedien beinhalten, wie z. B. einen Flash-Speicher, einen einmal programmierbaren Speicher, anderen Speicher oder eine beliebige Kombination davon. Bei einem Ausführungsbeispiel kann die Speichervorrichtung 802 die Datenspeichervorrichtung 104 von 1, die Datenspeichervorrichtung 204 von 2, die Datenspeichervorrichtung 304 von 3, die Datenspeichervorrichtung 404 von 4, die Datenspeichervorrichtung 502 von 5 oder beliebige Kombination davon sein.
  • Bei einem Ausführungsbeispiel beinhaltet die Controllerkomponente 804 eine Host-Schnittstellenschaltung 810, welche mit einem DMA/Bus-Controller (DMA: Direct Memory Access, Direktspeicherzugriff) 802 gekoppelt ist. Die Controllerkomponente 804 beinhaltet auch eine Speicherschnittstellenschaltung 840, welche mit dem DMA/Bus-Controller 820 gekoppelt ist. Ein Prozessorkern 830, ein Wahlzugriffspeicher (RAM: Random Access Memory) 822 und ein Nur-Lese-Speicher (ROM: Read Only Memory) 824 sind über einen internen Bus mit dem DMA/Bus-Controller 820 gekoppelt.
  • Bei einem Ausführungsbeispiel beinhaltet die Host-Schnittstellenschaltung 810 Busverbinder 812, welche mit Eingang/Ausgang-Puffern (I/O-Puffern) und Latch-Registern 814 gekoppelt sind. Die Busverbinder 812 sind darüber hinaus mit einer Ausgangstreiberschaltung 816 gekoppelt. Die Host-Schnittstellenschaltung 810 beinhaltet auch einen Controller 818. Bei einem Ausführungsbeispiel arbeitet die Host-Schnittstellenschaltung 810 entsprechend einem USB-Protokoll (USB: Universal Serial Bus). Zum Beispiel kann der Controller 818 programmiert sein, über die Busverbinder 812, welche mit einem Bus gemäß dem USB-Protokoll gekoppelt sind, Befehle und Daten von einer Host-Vorrichtung (nicht dargestellt) zu empfangen. Der Controller 818 kann Prozessor-Hardware beinhalten, welcher in einem internen Speicher, wie z. B. einem Nur-Lese-Speicher (nicht dargestellt), gespeicherte Befehle ausführt, um den Empfang und die Bestätigung von USB-Befehlen und Daten zu ermöglichen. Alternativ oder zusätzlich kann die Host-Schnittstellenschaltung 810 dazu ausgestaltet sein, andere Kommunikationsprotokolle zu unterstützen, wie z. B. ein SD-Protokoll (SD: Secure Digital), ein SCSI-Protokoll (SCSI: Small Computer System Interface), ein SPI-Protokoll (SPI: SCSI-Parallel Interface), ein CF-Protokoll (CF: Compact Flash), ein oder mehrere andere Protokolle oder eine beliebige Kombination davon.
  • Bei einem Ausführungsbeispiel beinhaltet der Prozessorkern 830 einen Befehlscache 832, eine Lade/Speicher-Einheit 834, eine arithmetisch-logische Einheit (ALU: Arithmetic Logic Unit) 826 und ein Register-File 838, welches einen Finalisierungsindikator speichern kann. Der Prozessorkern 830 kann, als ein veranschaulichendes nicht einschränkendes Beispiel, einen ARM-Kern (ARM: Acorn RISC Maschine) beinhalten oder im Wesentlichen ähnlich zu einem solchen arbeiten. Zum Beispiel kann der Prozessorkern 830 eine RISC-Mikroarchitektur (RISC: Reduced Instruction Set Computer) unterstützen. Der Prozessorkern 830 kann dazu ausgestaltet sein, Daten und ausführbare Instruktionen 826 über die Lade/Speicher-Einheit 834 aus dem Nur-Lese-Speicher 824 abzurufen. Die ausführbaren Befehle 826 können einen Finalisierungsbefehl 828 beinhalten, welcher dazu ausgestaltet ist, einen Halbleiterspeicher, wie z. B. ein Speicherarray 894 in der Speicherkomponente 808, zu finalisieren.
  • Alternativ oder zusätzlich können wenigstens einige der ausführbaren Befehle 826, einschließlich des Finalisierungsbefehls 828, nicht in dem ROM 824, sondern in dem Speicherarray 894 gespeichert sein. Die ausführbaren Befehle, einschließlich des Finalisierungsbefehls 828, können aus dem Speicherarray 824 abgerufen werden und in den RAM 822 gespeichert werden. Der Prozessorkern 830 kann dazu ausgestaltet sein, die ausführbaren Befehle, einschließlich des Finalisierungsbefehls 828, zur Ausführung aus dem RAM 822 abzurufen.
  • Die ausführbaren Befehle 826, wie z. B. der Finalisierungsbefehl 828, können von der Lade/Speicher-Einheit 834 abgerufen werden und in dem Befehlscache 832 gespeichert werden. Der Finalisierungsbefehl 828 in dem Befehlscache 832 kann einem Scheduling bzw. einer Zeitablaufsteuerung zugeführt werden und einer oder mehreren Ausführungs-Pipelines, wie z. B. einer Ausführungs-Pipeline, welche die ALU 836 beinhaltet, zugeführt werden. Die ALU 836 kann spezielle Schaltungen beinhalten, um arithmetische und logische Operationen auszuführen, wie z. B. Addition und Subtraktion, AND (Logisches Und), NOT (Logisches Nicht), OR (Logisches Oder), XOR (Logisches Entweder-Oder), andere arithmetische oder logische Operationen oder eine beliebige Kombination davon.
  • Das Register-File 838 kann mehrere Speicherzellen beinhalten, welche dem Prozessorkern 830 einen Hochgeschwindigkeitszugriff auf Daten zur Verwendung bei der Ausführung von Be fehlen bieten. Eine oder mehrere Speicherzellen in dem Register-File 838 können der Speicherung eines Statusindikators, wie z. B. der Finalisierungsstatusindikator, zugeordnet sein. Der Finalisierungsbefehl 828 kann in einer Ausführungspipeline ausgeführt werden, was dazu führen kann, dass der Finalisierungsindikator des Register-Files 838 auf einen Finalisiert-Wert gesetzt wird. Zusätzliche Datenwerte, wie z. B. Werte zum Anzeigen eines Speichertyps, eines Speicherschreibstatus und eines Schreibschutzstatus, können ebenfalls während der Ausführung des Finalisierungsbefehls 828 durch den Prozessorkern 830 gesetzt werden.
  • Somit kann bei einem Ausführungsbeispiel der Prozessorkern 830 dazu programmiert sein, wenigstens einen Teil des Verfahrens 600 von 6 auszuführen. Zum Beispiel kann der Prozessorkern 830 dazu programmiert sein, einen Hinweis zu empfangen, dass über die Host-Schnittstellenschaltung 810 ein Finalisierungsbefehl empfangen wurde. Der Prozessorkern 830 kann auch dazu programmiert sein, eine Registerschreibschaltung (nicht dargestellt) zum Schreiben eines Wertes, wie z. B. ein oder mehrere vorbestimmte Bitwerte oder Bytewerte, in das Registerfile 838 in einer dem Finalisierungsindikator zugewiesenen Position anzusteuern, um den Finalisierungsstatus anzuzeigen. Der Prozessorkern 830 kann auch programmiert sein, zu bewirken, dass ein oder mehrere andere Indikatoren in Reaktion auf den Empfang des Finalisierungsbefehls aktualisiert werden, wie z. B. ein Speichertypindikator, ein Schreibschutzindikator, ein Befehlsunterstützungsindikator, ein oder mehrere andere Indikatoren oder eine beliebige Kombination davon. Zum Beispiel können der Indikator bzw. die Indikatoren in einem oder mehreren Registern (nicht dargestellt) der Host-Schnittstellenschaltung 810 gespeichert sein und können von dem Controller 818 in Reaktion auf einen Registerschreibbefehl des Prozessorkerns 830 geschrieben werden. Der Prozessorkern 830 kann darüber hinaus dazu programmiert sein, Daten abzurufen, welche eine Anzahl von Datenschreibvorgängen wenigstens eines Teils des Speicherarrays 894 anzeigen, und eine Anzahl von Lösch-Wiederbeschreib-Zyklen zur Durchführung an dem Speicherarray 894 zu bestimmen, um die Datenbeibehaltung in dem Speicherarray 894 zu verbessern.
  • Die Speicherschnittstellenschaltung 840 kann Datenbusverbinder 842, einen Ausgangstreiber 844, Eingang/Ausgang-Puffer und Latch-Register 846 sowie eine ECC-Schaltung (ECC: Error Correcting Code, Fehlerkorrekturcode) 848 beinhalten. Die Datenbusverbinder 842 können elektrische Verbinder zur Ermöglichung von elektrischer Signalausbreitung über den Bus 806 beinhalten. Die I/O-Puffer und Latch-Register 846 können dazu ausgestaltet sein, Daten zu speichern, welche über den DMA/Bus-Controller 820 zur Übermittlung über den Bus 806 empfangen werden, wobei elektrische Signale an den Datenbusverbindern 842 verwendet werden, welche von dem Ausgangstreiber 844 erzeugt werden. Außerdem oder als Alternative können die I/O-Puffer und Latch-Register 846 Datenwerte speichern, welche durch elektrische Signale dargestellt werden, die an den Datenbusverbindern 842 über den Datenbus 806 empfangen werden, wie z. B. von der Schnittstellenschaltung 890 der Speicherkomponente 808 erzeugte Signale.
  • Die ECC-Schaltung 848 kann dedizierte Hardware und Schaltungen beinhalten, welche dazu ausgestaltet sind, Operationen durchzuführen, wobei Daten und den Daten entsprechende Fehlerkorrekturcodeinformationen, welche als Ergebnis eines Speicherlesevorgangs aus der Speicherkomponente 808 empfangen werden, verwendet werden, und kann logische oder arithmetische Operationen ausführen, um zu verifizieren, dass die empfangenen Daten nicht fehlerbehaftet erfasst wurden. Zum Beispiel können die empfangenen Daten einen Fehlerkorrekturcode darstellende zusätzliche Bits beinhalten, welche basierend auf Werten der Daten bei Speicherung in den Speicherarray 894 kodiert sein können. Verfälschung von einem oder mehreren Bits der Daten oder einem oder mehreren Bits des Fehlerkorrekturcodes kann durch die ECC-Schaltung 848 erfassbar sein.
  • Zum Beispiel kann die Speicherschnittstellenschaltung 840 eine Flash-Speicherschnittstelle beinhalten, und die ECC-Schaltung 848 kann einem oder mehreren Flash-Fehlerkorrekturcodeprotokollen entsprechen.
  • Obwohl verschiedene hierin dargestellte Komponenten als Blockkomponenten veranschaulicht und auf allgemeine Weise beschrieben wurden, können derartige Komponenten einen oder mehrere Mikroprozessoren, Zustandsmaschinen oder andere Schaltungen beinhalten, welche dazu ausgestaltet sind, den beschriebenen Datenspeichervorrichtungen, wie z. B. der Datenspeichervorrichtung 104 von 1, die Ausführung der diesen Komponenten zugewiesenen besonderen Funktionen zu ermöglichen. Zum Beispiel können die Host-Schnittstelle 110 und/oder der Controller 120 von 1 physikalische Komponenten darstellen, wie z. B. Controller, Zustandsmaschinen, Logikschaltungen oder andere Strukturen, um der Datenspeichervorrichtung 104 zu ermöglichen, Datenanfragen von einer Host-Vorrichtung oder von anderen externen Vorrichtungen zur Finalisierung eines Halbleiterspeichers der Datenspeichervorrichtung 104 zu empfangen und darauf zu reagieren bzw. zu antworten.
  • Zum Beispiel kann der Controller 120 von 1 unter Verwendung eines Mikroprozessors oder Mikrocontrollers implementiert sein, welcher dazu programmiert ist, auf den Finalisierungsbefehl 103 zu reagieren, indem er einen Finalisiert-Wert in den Statusindikator 128 schreibt und verhindert, dass nachfolgende Datenschreibbefehle oder Löschbefehle an dem Halbleiterspeicher 130 ausgeführt werden. Bei einem Ausführungsbeispiel beinhaltet der Controller 120 von 1 ausführbare Befehle, welche von einem Prozessor ausgeführt werden, und die Befehle können in dem Halbleiterspeicher 130 gespeichert sein. Alternativ oder zusätzlich können ausführbare Befehle, welche von dem Prozessor ausgeführt werden, an einer separaten Speicherstelle abgelegt sein, welche nicht Teil des Halbleiterspeichers 130 ist, wie z. B. in einen (nicht darge stellten) Nur-Lese-Speicher (ROM) bei oder in dem Controller 120.
  • Bei einem Ausführungsbeispiel kann die Datenspeichervorrichtung 104 eine tragbare Vorrichtung sein, welche dazu ausgestaltet ist, selektiv mit einer oder mehreren externen Vorrichtungen gekoppelt zu werden. Jedoch kann bei weiteren Ausführungsbeispielen die Datenspeichervorrichtung auch innerhalb einer oder mehrerer Host-Vorrichtungen angebracht oder eingebettet sein, wie z. B. innerhalb eines Gehäuses einer tragbaren Kommunikationsvorrichtung. Zum Beispiel kann die Datenspeichervorrichtung sich innerhalb eines geschlossenen Geräts befinden, wie z. B. innerhalb eines drahtlosen Telefons, eines persönlichen digitalen Assistenten (PDA), eines Spielgeräts oder einer Spielkonsole, eines tragbaren Navigationsgeräts oder einer anderen Vorrichtung, welches einen internen nicht flüchtigen Speicher verwendet. Bei einem Ausführungsbeispiel beinhaltet die Datenspeichervorrichtung 104 einen nicht flüchtigen Speicher, wie z. B. einen Flash-Speicher, z. B. NAND-Flash-Speicher, NOR-Flash-Speicher, MLC-Flash-Speicher (MLC: Multi-Level Cell), DINOR-Flash-Speicher (DINOR: Divided Bit-Line NOR), AND-Flash-Speicher, HiCR-Flash-Speicher (HiCR: High Capacitive Coupling Ratio), ACT-Flash-Speicher (ACT: Asymmetrical Contactive Transistor) oder andere Flash-Speicher, einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Nur-Lese-Speicher (ROM), einen einmal programmierbaren Speicher (OTP-Speicher) oder einen beliebigen anderen Speichertyp.
  • Die Darstellungen der hierin beschriebenen Ausführungsbeispiele sind dazu gedacht, ein allgemeines Verständnis der Struktur der verschiedenen Ausführungsbeispiele zu ermöglichen. Die Darstellungen sollen nicht als eine vollständige Beschreibung aller Elemente und Merkmale von Geräten und Systemen, welche die hierin beschriebenen Strukturen oder Verfahren nutzen, dienen. Viele weitere Ausführungsbeispiele können denjenigen mit Kenntnissen der Technik anhand der Beschreibung ersichtlich sein. Weitere Ausführungsbeispiele können genutzt werden und aus der Beschreibung abgeleitet werden, wie z. B. durch strukturelle oder logische Ersetzungen oder Änderungen, welche vorgenommen werden können, ohne vom offenbarten Rahmen der Erfindung abzuweichen. Obwohl hierin spezielle Ausführungsbeispiele beschrieben und dargestellt wurden, versteht es sich, dass eine spätere Anordnung, welche dazu ausgestaltet ist, den gleichen oder einen ähnlichen Zweck zu erfüllen, anstelle der speziellen dargestellten Ausführungsbeispiele verwendet werden kann. Diese Beschreibung ist dazu gedacht, jegliche und zukünftige Anpassungen oder Variationen von verschiedenen Ausführungsbeispielen abzudecken. Kombinationen der obigen Ausführungsbeispiele oder andere hierin nicht speziell beschriebene Ausführungsbeispiele werden denjenigen mit Kenntnissen der Technik anhand der Beschreibung ersichtlich sein. Folglich sind die Beschreibung und die Figuren als veranschaulichend und nicht einschränkend anzusehen.
  • In der vorangegangen detaillierten Beschreibung können verschiedene Merkmale zur Vereinfachung der Beschreibung zusammengruppiert oder in einem einzigen Ausführungsbeispiel beschrieben sein. Es versteht sich jedoch, dass die hierin beschriebenen erfinderischen Konzepte nicht notwendigerweise alle die beschriebenen Merkmale erfordern.

Claims (10)

  1. Verfahren, umfassend: Empfangen eines Befehls zur Finalisierung von Daten in einer Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802), welche einen Speichercontroller (120; 220; 320; 420, 470; 530; 704; 730; 804, 892) umfasst, wobei die Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802) darüber hinaus einen Statusindikator (128; 228; 328) umfasst, um einen Finalisierungsstatus des Halbleiterspeichers (130; 230; 330; 430; 532; 740; 894) anzuzeigen; und in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten in der Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802), Setzen des Statusindikators (128; 228; 328; 428) auf einen Finalisiert-Wert, wobei Schreibvorgänge an dem Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) von dem Speichercontroller (120; 220; 320; 420, 470; 530; 730; 892) verhindert werden, wenn der Statusindikator (128; 228; 328; 428) den Finalisiert-Wert aufweist.
  2. Verfahren nach Anspruch 1, darüber hinaus umfassend: in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten, Setzen eines Speichertypindikators (142; 442) der Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802) auf einen Wert, welcher einen Nur-Lese-Speichertyp anzeigt.
  3. Verfahren nach Anspruch 1 oder 2, darüber hinaus umfassend: in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten, Setzen eines Befehlsunterstützungsindikators (152; 252) der Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802) auf einen Wert, welcher anzeigt, dass Datenschreibvorgänge bei dem Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) nicht unterstützt sind.
  4. Verfahren nach einem der vorhergehenden Ansprüche, darüber hinaus umfassend: in Reaktion auf den Empfang des Befehls zur Finalisierung der Daten, Setzen eines Schreibschutzindikators (154; 254) der Datenspeichervorrichtung (104; 204; 304; 404; 502; 702; 802) auf einen Wert, welcher anzeigt, dass der Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) schreibgeschützt ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, darüber hinaus umfassend: in Reaktion auf den Empfang einer Anfrage von einer Host-Vorrichtung (102; 202; 302; 402; 520), Auslesen eines Werts des Statusindikators (128; 228; 328; 428) und Erzeugen wenigstens eines Werts auf Grundlage des Werts des Statusindikators (128; 228; 328; 428), wobei der erzeugte wenigstens eine Wert umfasst: einen Wert, welcher einen Speichertyp anzeigt, einen Wert, welcher anzeigt, ob Datenschreibvorgänge unterstützt sind, und/oder einen Wert, welcher anzeigt, ob der Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) schreibgeschützt ist.
  6. Vorrichtung, umfassend: einen Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804), welcher dazu ausgestaltet ist, einen mit dem Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804) gekoppelten Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) zu finalisieren, indem in Reaktion auf den Empfang eines Befehls von einem Host (102; 202; 302; 402; 520) ein Statusindikator (128; 228; 328; 428) auf einen Finalisiert-Wert gesetzt wird, und wobei der Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804) weiterhin dazu ausgestaltet ist, einen Zugriff des Hosts (102; 202; 302; 402; 520) zum Schreiben von Daten in den Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) zu verhindern, wenn der Statusindikator (128; 228; 328; 428) den Finalisiert-Wert aufweist.
  7. Vorrichtung nach Anspruch 6, darüber hinaus umfassend eine Speicherschnittstellenschaltung (112; 212; 412; 714; 840), welche mit dem Speichercontroller (120; 220; 420, 470; 730; 804) gekoppelt ist.
  8. Vorrichtung nach Anspruch 6 oder Anspruch 7, wobei der Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804) dazu ausgestaltet ist, in Reaktion auf den Empfang des Befehls: einen Speichertypindikator (142; 242) auf einen Wert zu setzen, welcher einen Nur-Lese-Speichertyp anzeigt; und den Wert, welcher den Nur-Lese-Speichertyp anzeigt, an den Host (102; 202; 302; 402; 520) zu senden.
  9. Vorrichtung nach einem der Ansprüche 6–8, wobei der Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804) weiterhin dazu ausgestaltet ist, in Reaktion auf den Empfang des Befehls wenigstens einen Wert eines Registers (150; 250; 340; 440; 734), welches für den Host (102; 202; 302; 402; 520) zugänglich ist, zu setzen, wobei der wenigstens eine Wert anzeigt, dass Schreibvorgänge an dem Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) nicht möglich sind.
  10. Vorrichtung nach einem der Ansprüche 6–9, wobei der Speichercontroller (120; 220; 320; 420, 470; 530; 730; 804) dazu ausgestaltet ist, in Reaktion auf den Empfang eines Statuslesebefehls von dem Host (102; 202; 302; 402; 520) nach Setzen des Statusindikators (128; 228; 328; 428) auf den Finalisiert-Wert, dem Host (102; 202; 302; 402; 520) einen Schreibschutzindikatorwert zu übermitteln, wobei der Schreibschutzindikatorwert anzeigt, dass der Halbleiterspeicher (130; 230; 330; 430; 532; 740; 894) schreibgeschützt ist.
DE102010006139A 2009-02-26 2010-01-29 System und Verfahren zur Finalisierung eines Halbleiterspeichers Withdrawn DE102010006139A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/393,599 US9437312B2 (en) 2009-02-26 2009-02-26 Management of write-protected data in a semiconductor memory
US12/393,599 2009-02-26

Publications (1)

Publication Number Publication Date
DE102010006139A1 true DE102010006139A1 (de) 2010-09-02

Family

ID=42371883

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010006139A Withdrawn DE102010006139A1 (de) 2009-02-26 2010-01-29 System und Verfahren zur Finalisierung eines Halbleiterspeichers

Country Status (4)

Country Link
US (1) US9437312B2 (de)
KR (1) KR20100097596A (de)
DE (1) DE102010006139A1 (de)
TW (1) TW201110138A (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012101343A1 (de) 2012-02-20 2013-08-22 Avisaro AG Mobiler Datenträger und Steuerprogramm dafür
DE102020100973A1 (de) 2020-01-16 2021-07-22 Wincor Nixdorf International Gmbh Kassenvorgangsprotokolliervorrichtungsdatenträger

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117378B2 (en) * 2008-10-29 2012-02-14 Microchip Technology Incorporated Preventing unintended permanent write-protection
US8843804B2 (en) * 2011-04-01 2014-09-23 Cleversafe, Inc. Adjusting a dispersal parameter of dispersedly stored data
US9823860B2 (en) * 2014-03-14 2017-11-21 Nxp B.V. One-time programming in reprogrammable memory
TWI561984B (en) * 2014-12-10 2016-12-11 Silicon Motion Inc Data storage device and data writing method thereof
JP6527054B2 (ja) * 2015-08-28 2019-06-05 東芝メモリ株式会社 メモリシステム
US10303632B2 (en) * 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
KR102618699B1 (ko) 2016-09-28 2024-01-02 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
US10719265B1 (en) * 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787484A (en) * 1996-08-08 1998-07-28 Micron Technology, Inc. System and method which compares data preread from memory cells to data to be written to the cells
US20010011318A1 (en) * 1997-02-27 2001-08-02 Vishram P. Dalvi Status indicators for flash memory
JP3998405B2 (ja) * 2000-07-28 2007-10-24 富士通株式会社 アクセス制御方法及びこれを用いる記憶装置
US6731536B1 (en) * 2001-03-05 2004-05-04 Advanced Micro Devices, Inc. Password and dynamic protection of flash memory data
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
WO2004077432A1 (ja) * 2003-02-28 2004-09-10 Pioneer Corporation 追記型記録媒体、追記型記録媒体用の記録装置および記録方法、並びに追記型記録媒体用の再生装置および再生方法
SG151111A1 (en) * 2003-03-08 2009-04-30 Samsung Electronics Co Ltd An apparatus for reproducing and/or recording from and/or to a recording medium
US20050138314A1 (en) 2003-12-23 2005-06-23 Ming-Jen Liang Write-protected micro memory device
CN100559507C (zh) 2004-01-29 2009-11-11 群联电子股份有限公司 具防写功能的微型存储装置
US7072211B2 (en) * 2004-05-19 2006-07-04 L-3 Integrated Systems Company Systems and methods for write protection of non-volatile memory devices
JP4209820B2 (ja) * 2004-07-15 2009-01-14 株式会社ハギワラシスコム メモリカードシステム及び該メモリカードシステムで使用されるライトワンス型メモリカード、ホストシステムと半導体記憶デバイスとからなるシステム
KR101229493B1 (ko) 2005-10-26 2013-02-04 삼성전자주식회사 기록 방지 기능을 효과적으로 수행할 수 있는 정보 저장매체, 기록/재생 장치 및 기록/재생 방법
KR100813629B1 (ko) * 2007-01-17 2008-03-14 삼성전자주식회사 향상된 섹터 보호 스킴
US20080250509A1 (en) * 2007-04-04 2008-10-09 Nokia Corporation Write Protection For Memory Devices
CN101303670B (zh) 2007-05-11 2014-11-05 群联电子股份有限公司 储存装置及其控制方法
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012101343A1 (de) 2012-02-20 2013-08-22 Avisaro AG Mobiler Datenträger und Steuerprogramm dafür
WO2013124007A1 (de) 2012-02-20 2013-08-29 Avisaro AG Mobiler datenträger und steuerprogramm dafür
DE102012101343B4 (de) * 2012-02-20 2015-01-08 Avisaro AG Mobiler Datenträger und Steuerprogramm dafür
DE102020100973A1 (de) 2020-01-16 2021-07-22 Wincor Nixdorf International Gmbh Kassenvorgangsprotokolliervorrichtungsdatenträger

Also Published As

Publication number Publication date
TW201110138A (en) 2011-03-16
US9437312B2 (en) 2016-09-06
US20100217917A1 (en) 2010-08-26
KR20100097596A (ko) 2010-09-03

Similar Documents

Publication Publication Date Title
DE102010006139A1 (de) System und Verfahren zur Finalisierung eines Halbleiterspeichers
DE602004003275T2 (de) Nichtflüchtiger Speicher mit Seiten-Kopierfunktion und entsprechendes Verfahren
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE602004002947T2 (de) NAND Flash Speicher mit Speicherredundanz
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE102014204716A1 (de) Nichtflüchtiges Speicherbauelement und Programmierverfahren für eine Betriebssystem(OS)-Darstellung
DE102006016247A1 (de) Speicher, Datenverarbeitungssystem, Steuereinheit und Steuerverfahren
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
US8271719B2 (en) Non-volatile memory controller device and method therefor
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
DE102011085989A1 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE112015004531T5 (de) Latch-Initialisierung für eine Datenspeichervorrichtung
DE19782214A1 (de) Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays
DE102010006148A1 (de) Verfahren zum Reagieren auf einen Befehl zum Löschen einer Datei und Datenspeichervorrichtung
KR100746036B1 (ko) 플래시 메모리를 제어하는 장치 및 방법
DE112020000159T5 (de) Systeme und verfahren zum definieren von speicher-unterblöcken
DE102020200513A1 (de) Speichereinrichtung und verfahren zum betreiben derselben
DE102019135863A1 (de) Speichercontroller, Speichervorrichtung und Speichersystem mit verbesserten Schwellenspannungs-Verteilungseigenschaften und ähnliche Betriebsverfahren
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140801