DE19782214B4 - Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays - Google Patents

Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays Download PDF

Info

Publication number
DE19782214B4
DE19782214B4 DE19782214A DE19782214A DE19782214B4 DE 19782214 B4 DE19782214 B4 DE 19782214B4 DE 19782214 A DE19782214 A DE 19782214A DE 19782214 A DE19782214 A DE 19782214A DE 19782214 B4 DE19782214 B4 DE 19782214B4
Authority
DE
Germany
Prior art keywords
data
flash eeprom
eeprom memory
command
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19782214A
Other languages
English (en)
Other versions
DE19782214A1 (de
Inventor
Kurt B. Newscastle Robinson
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE19782214A1 publication Critical patent/DE19782214A1/de
Application granted granted Critical
Publication of DE19782214B4 publication Critical patent/DE19782214B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems

Abstract

Eine Schnittstelle zum Empfangen von Daten und Kommandos, die an ein Blöcke von Flash-EEPROM-Speicher enthaltendes Array in einem Bauelement gerichtet sind, und zum Erzeugen von Signalen zum Bewirken der Zwecke der Kommandos in dem Bauelement,
wobei die Schnittstelle aufweist:
Einrichtungen zum Empfangen eines Kommandos; und
Einrichtungen zum Beantworten des Kommandos, indem Daten zurückgegeben werden, die die Eigenschaft des Bauelements in Form von sich auf den Flash-EEPROM-Speicher beziehenden Grundausdrücken definieren.

Description

  • Die Erfindung bezieht sich auf eine Schnittstelle zum Empfangen von Daten und Kommandos, die an ein Blöcke von Flash-EEPROM-Speicher enthaltendes Array in einem Bauelement gerichtet sind, und zum Erzeugen von Signalen zum Bewirken der Zwecke der Kommandos in dem Bauelement, ein eine solche Schnittstelle enthaltendes Speicher-Bauelement, ein Verfahren zum Initialisieren eines Software-Gerätetreibers für ein derartiges Bauelement, ein Verfahren zum Zugreifen auf ein solches Bauelement sowie auf ein Computersystem, welches ein derartiges Bauelement aufweist.
  • Flash-EEPROM-Speicher-Arrays werden bei heutigen digitalen Systemen (z.B. Computern) wegen der Fähigkeiten der Flash-EEPROM-Speicher-Arrays, die Daten zu behalten, wenn die Stromversorgung entfernt wird, und auf einfache Weise neu programmierbar zu sein, ohne sie aus einem System zu entfernen, für viele Zwecke verwendet. Ein Flash-EEPROM-Speicher-Array besteht aus Floating-Gate-Feldeffekt-Transistorbauelementen, die in Zeilen und Spalten angeordnet sind. Die auf dem Floating-Gate eines solchen Speichertransistors gespeicherte Ladung kann durch Programmierung geändert werden, und der Zustand der Ladung kann durch ein Abtasten der Spannung über dem Bauelement erfaßt werden. Da diese Flash-EEPROM-Arrays einfach neu programmiert werden können, werden sie als Ersatz für normale EPROM-Arrays verwendet, um Nur-Lese-Speicher zur Verfügung zu stellen, die einfach aktualisiert werden können.
  • Auf ein Flash-Speicher-Array wird zum Lesen und Schreiben auf die gleiche Weise zugegriffen, wie auf Arrays dynamischen Speichers mit wahlfreiem Zugriff (DRAM-Arrays), wobei eine Zeilen- und Spaltenadressierung in Byte-, Wort- oder größeren Sequenzen von Bits verwendet wird. Jedoch kann aufgrund der Art und Weise, auf welche Daten gespeichert werden, ein Flash-Speicher-Array im Unterschied zu einem typischen DRAM-Bauele ment nicht überschrieben werden, ohne zunächst die Bauelemente zu löschen. Als Ersatz für EPROM-Arrays verwendete Flash-Speicher-Arrays werden üblicherweise in großen Blöcken (die das gesamte Array bilden können) gelöscht, bevor sie neu programmiert werden.
  • Flash-EEPROM-Speicher-Arrays werden darüber hinaus verwendet, um kleinere, leichtere funktionelle Äquivalente für elektromechanische Festplattenlaufwerke zu schaffen. Flash-Speicher-Arrays, die Festplattenlaufwerke ersetzen sollen (im folgenden als "Flash-Plattenlaufwerke" bezeichnet), arbeiten zuverlässiger und sind gegenüber physischer Störung nicht so empfindliche wie elektromechanische Festplattenlaufwerke. Wegen dieser Eigenschaften sind Flash-Plattenlaufwerke besonders in transportablen Computern nützlich, wo der Platzbedarf vorrangig und das Gewicht wichtig ist.
  • Elektro-mechanische Festplattenlaufwerke benutzten historisch eine Industrie-Standard-Schnittstelle, die als "ATA-Schnittstelle" bezeichnet wird. Die ATA-Schnittstelle wurde insbesondere konstruiert, um eine Kommunikation zwischen einem Computersystem und einem rotierenden elektromechanischen Plattenlaufwerk zur Verfügung zu stellen. Deshalb wurde die ATA-Schnittstelle auf der Grundlage primitiver Funktionen definiert, die direkt auf rotierende elektromechanische Plattenlaufwerke anwendbar sind. Ein elektromechanisches Festplattenlaufwerk ist ein direkt überschreibbares, rotierendes Block-Lese-Schreib-Medium, das in der Lage ist, primitive Funktionen auszuführen, die "Führe ein langsames Aufsuchen einer logischen Adresse oder eines Zylinderkopfsektors aus", "Lies einen Sektor oder mehrere Sektoren" und "Schreibe einen Sektor" einschließen.
  • Flash-EEPROM-Array-Grundfunktionen umfassen beispielsweise "Lies und schreib auf der Byte-, Wort- oder kleinen Blockebene" und "Lösche auf der großen Blockebene". Die ATA-Schnittstelle kommuniziert nicht mittels der Flash-Speicher-Array-Grundfunktionen. Wenn ein Flash-Plattenlaufwerk ein elektromechanisches Plattenlaufwerk ersetzt, verwendet es die ATA-Schnittstelle, um mit anderen Computerkomponenten zu kom munizieren. Folglich ist es notwendig, eine Schaltung zur Verfügung zu stellen, durch welche die von einem Computer zum Zugreifen auf elektromechanische Plattenlaufwerke verwendeten Signale durch das Flash-Plattenlaufwerk verstanden werden können. Der Prozeß des Übersetzens von Funktionen elektromechanischer rotierender Plattenlaufwerke in Flash-Plattenlaufwerksfunktionen erforderte einen beträchtlichen Mehraufwand an Hardware und Software.
  • Beispielsweise wird bei einer Art eines Flash-Plattenlaufwerks eine Kommandobenutzerschnittstelle auf dem gleichen Siliziumsubstrat (Chip) vor dem Flash-Speicher-Array zwischengeschaltet, um die an der ATA-Schnittstelle zur Verfügung gestellten Kommandos zu interpretieren. Die Flash-Plattenlaufwerk-Kommandobenutzerschnittstelle nimmt die ATA-Signale auf und steuert die zum Zugreifen auf das Flash-Plattenlaufwerk erforderlichen Operationen. Die Flash-Plattenlaufwerk-Kommandobenutzerschnittstelle enthält typischerweise Zustandsmaschinen, die für eine sich drehende Platte gedachte Kommandos empfangen, diese Kommandos dekodieren und Kommandos erzeugen, die so angepaßt sind, daß sie die, Zwecke der ATA-Kommandos innerhalb eines Flash-Plattenlaufwerks ausführen können.
  • Jüngst tauchte eine kostengünstigere Alternative für ein Flash-Plattenlaufwerk auf, die auf einem Wirts-Computer ablaufende Plattenemulationssoftware mit einem preiswerten Flash-Speicher-Bauelement-Array kombiniert. Das Flash-Speicher-Bauelement-Array weist ein oder mehrere Flash-Speicher-Bauelemente auf, die in einer von verschiedenen Systemverkapselungsoptionen enthalten sind, einschließlich einer entfernbaren Speicherkarte, einem systemresidenten Single-in-Line-Speichermoduls (SIMM) und eines residenten Flash-Arrays, Einrichtungen, die direkt auf der Systemmutterplatine montiert sind. Die Kombination beliebiger dieser einfachen Flash-Speicherbauelement-Subsysteme mit Plattenemulationssoftware wird in dieser Beschreibung als Flash-Platten-Emulator bezeichnet.
  • Viele der Operationen, die entweder für eine Kommandobenutzerschnittstelle oder einen Flash-Platten-Emulator erforderlich sind, um aus in Grundelementen einer rotierenden Platte formulierten Kommandos zu übersetzen, sind ziemlich kompliziert. Beispielsweise werden bei einigen Flash-Plattenlaufwerken und anderen Flash-Speicherbauelementen die Daten zunächst in leere Blöcke des Speicher-Arrays geschrieben, die unter der Steuerung der Kommandobenutzerschnittstelle ausgewählt wurden, und dann die physikalischen Adressen, zu welchen die Daten gespeichert werden, in Nachschlagetabellen zusammen mit den extern zur Verfügung gestellten Adressen der rotierenden Platte aufgezeichnet. Dies gestattet es, daß die Daten wiedergewonnen werden, wenn die Adressen der rotierenden. Platte zur Verfügung gestellt werden.
  • Frühe Flash-Speicher-Arrays adressierten Daten in einzelnen Bytes. Als sich die Flash-Speicher-Arrays weiterentwickelten, wurde die Adressierung in Worten und Doppelworten möglich, oftmals in dem gleichen Array. Die Fähigkeit, diese unterschiedlichen Arten der Adressierung zur Verfügung zu stellen, verkomplizierte die Operationen der Bauelement-Kommandobenutzer-Schnittstelle. Jüngst wurden Flash-Plattenlaufwerke ersonnen, die eine Pufferung verwenden, um die Übertragung großer Datenmengen zu gestatten, selbst wenn das Array wegen seiner langsameren kombinierten Lösch- und Schreibgeschwindigkeit diese Daten nicht sofort behandeln kann. Diese Verbesserungen erhöhen die Komplexität der Flash-Plattenlaufwerks- und Flash-Emulator-Operationen.
  • Das grundlegende Flash-Erfordernis, in großen Blöcken zu löschen, verkompliziert die Operationen, die Flash-Plattenlaufwerke und Flash-Platten-Emulatoren ausführen müssen, noch weiter. Wenn Daten aktualisiert werden, müssen alte Daten, die nicht überschrieben werden können, als ungültig markiert werden, die neuen Daten müssen in einen leeren Array-Raum geschrieben werden und die Adreßtabellen müssen aktualisiert werden, um eine neue physikalische Adresse zur Verfügung zu stellen. Dieses Verfahren der Aktualisierung bewirkt, daß die Daten in einer Datei an nicht zusammenhängenden Positionen geschrieben werden. Wenn eine ausreichende Datenmenge in einem großen Block ungültig wird, müssen die verbleibenden gültigen Daten in einen leeren Array-Raum in irgendeinem anderen Block kopiert werden, die Adreßtabellen müssen aktualisiert werden, und der Block muß gelöscht werden, um den Array-Raum zurückzugewinnen.
  • Das Schreiben von Flash-EEPROM-Bauelementen ist langsamer als das Schreiben von DRAM-Speicher, da das Speichern von Daten auf dem Floating-Gate eines Transistors beträchtliche Spannungen und relativ lange Aufladezeiten erfordert. Sowohl der Schreibprozeß als auch der Kopierprozeß sind somit zu lang, um mit DRAM-Schreibzeiten mithalten zu können. Eine Schreibzustandsmaschine wird typischerweise auf dem Chip angeordnet, um eine Kommandobenutzerschnittstelle zu unterstützen, und wird verwendet, um Schreib- und Kopieroperationen zu leiten, so daß die Daten ohne ein Überschreiben anderer Daten in dem Array richtig gespeichert werden. Darüber hinaus ist der Löschprozeß (ein durch einen DRAM oder einen elektromechanischen Speicher nicht erforderlicher Prozeß) typischerweise langsam, bei einigen Flash-Laufwerken bis zu einer halben Sekunde. Deswegen wird der Löschprozeß typischerweise als ein Hintergrundprozeß durchgeführt, der von der Schreibzustandsmaschine oder durch zusätzliche chipeigene Zustandsmaschinen unter Steuerung der Flash-Plattenlaufwerks-Firmware oder der Flash-Platten-Emulator-Software, die unterhalb ihrer jeweiligen Kommandobenutzerschnittstellen arbeiten, abgearbeitet. Die zum Durchführen von Löschoperationen erforderliche Zeit ist derart lang, daß einige Flash-Speicherbauelemente-Kommandobenutzerschnittstellen Kommandos akzeptieren, die die Löschoperation aussetzen, um verschiedene andere Operationen zu ermöglichen.
  • Aus der Patentanmeldung EP 0 613 151 A2 ist ein Speichersystem mit mehreren Flash-EEPROM-Speicherlaufwerken bekannt.
  • Jüngst wurden Flash-Speicher-Arrays konstruiert, die die Speicherung von mehr als einem Datenbit in einer einzelnen Speicherzelle gestatten. Dies hat die Kompliziertheit der zum Übersetzen von Kommandos und Daten zwischen dem Flash-Speicher-Array und der ATA(Flash-Plattenlaufwerks)- und Flash-Platten-Emulator-Schnittstellen erforderlichen Schaltung beträchtlich erhöht. Es ist klar, daß dieser gesamte Mehraufwand teuer ist und den Betrieb des Flash-Speicher-Arrays verlang samt.
  • Die ATA-Schnittstelle verbirgt die Komplexität der darun ter liegenden internen Flash-Plattenlaufwerks-Software (Firm ware). Ein Wirtssystem benutzt typischerweise einen einzelnen ATA-Gerätetreiber, der Instruktionen aus einem Plattendateisystem übersetzt, das von dem Betriebssystem aufrechterhalten wird, wie beispielsweise das Boot-Parameter-Block/Datei-Zuweisungstabellen("BPB/FAT")-Dateisystem bei den Microsoft-DOS- und Windows-Betriebssystemen. Dieser Treiber wird von sämtlichen ATA-kompatiblen Einrichtungen, sowohl rotierenden als auch flash-basierten, verwendet. Die ATA-Schnittstelle wurde so konstruiert, daß sie eine Vorwärts- und Rückwärts-Kompatibilität für sämtliche ATA-Einrichtungen zur Verfügung stellt, ohne Software-Aktualisierungen für die Wirtssystem-Gerätetreiber zu erfordern. Jedoch eliminiert die ATA-Schnittstelle, wie sie gegenwärtig aufgebaut ist, die Möglichkeit, Flash-Platteneinrichtungen für viele Operationen zu verwenden, für welche Transistorspeicher besonders gut geeignet sind Obwohl beispielsweise auf ein Flash-Speicher-Array naturgemäß so schnell zugegriffen werden kann, wie auf einen dynamischen Speicher mit wahlfreiem Zugriff, ist ein direkter wahlfreier Zugriff unter Verwendung der ATA-Schnittstellen wegen des Übersetzungsmehraufwands und aufgrund der Weise, auf welche die Daten gespeichert sind, nicht möglich. Da die Zellen des Flash-Speicher-Arrays nicht überschrieben werden können und demzufolge Dateidaten in nicht zusammenhängenden Positionen des Flash-Arrays speichern, muß eine Datendatei, die von einem Flash-Speicher-Array gelesen worden ist, im Hauptspeicher neu zusammengesetzt werden, bevor sie verwendet werden kann. Da das Speichermanagement des Flash-Speicher-Arrays es erforderlich macht, die aus der Flash-Speichereinrichtung in den DRAM-Speicher gelesenen Dateien zu rekonstruieren, bevor sie verwendet werden, wurde eine direkte Ausführung von Anwendungen bei Flash-Plattenlaufwerken mit einer ATA-Schnittstelle ausgeschlossen.
  • Selbst wenn es möglich wäre, Abschnitte einer Anwendung zusammenhängend in einem Flash-Speicher-Bauelement zu speichern, wäre eine Ausführung einer Anwendung direkt aus einem Flash-Speicherbauelement sehr schwierig. Zunächst stellt die ATA-Schnittstelle keinerlei direkten Zugriff auf das Speicher-Array für eine direkte Ausführung von Befehlen in der Zugriffszeit zur Verfügung, die ein einfacher Flash-Speicher selbst für Leseoperationen zur Verfügung stellt. Darüber hinaus gibt es einfach keine Art und Weise, auf die die Eigenschaften oder Charakteristika des speziellen Flash-Speicherbauelements, mit welchem die Kommunikation versucht wird, bestimmt werden kann, so daß die Kommunikation direkt in Formen durchgeführt werden kann, auf welche die Daten in dem Array manipuliert werden können.
  • Wegen dieser Probleme wurden Flash-Plattenlaufwerke typischerweise für die Langzeitspeicherung von Daten verwendet, wo die Fähigkeit zum schnellen Lesen und Schreiben von Daten nicht entscheidend ist.
  • Gegenwärtig weist ein Flash-Platten-Emulator Stärken und Schwächen auf, die sich stark von denjenigen eines ATA-kompatiblen Flash-Laufwerks unterscheiden. Der Flash-Platten-Emulator besteht aus einem 2-Schichten-Software-Treiber und einer Speicherkarte oder einem anderen Flash-Array. Die obere Treiberschicht wird als Flash-Übersetzungsschicht("FTL"; Flash Translation Layer)-Treiber bezeichnet (PCMCIA-Spezifikation, Ausgabedatum Mai 1996), während jeder untere Treiber ("LLD"; Low Level Driver) üblicherweise von einem ursprünglichen Ausrüstungshersteller (OEM) konstruiert wird und für die Kombination von Flash-Speicherbauelement und -karte einzigartig ist. Zusätzlich zur Unterstützung der Plattenemulation kann die Speicherkarte oder das Speicher-Array in eine oder mehrere zusätzliche Regionen partitioniert sein, die einen direkten wahlfreien Speicherzugriff unterstützen. So gestattet es eine "einfache" Flash-Speicherkarte oder ein "einfaches" Flash-Array dem Wirtssystem und seinem Benutzer, Vorteil aus einem schnellen Direktzugriff auf die Flash-Speicher-Bauelement-In halte bei der Unterstützung einer direkten Befehlscodeausführung zu ziehen.
  • Der Nachteil gegenwärtiger Flash-Platten-Emulator-Implementierungen besteht in der benutzerabhängigen Natur der Treiber auf niedriger Ebene. Ein Treiber auf niedriger Ebene liest gegenwärtig einen Geräteidentifizierer ("Geräte-ID") und nimmt auf eine Nachschlagetabelle Bezug, um sowohl eine Kommandosequenz oder einen Algorithmus als auch einen Satz von Karten- und/oder Geräte-Geometrie- und Systemschnittstellen-Parametern, wie beispielsweise Spannungen und Zeitvorgaben, die von der Einrichtung verwendet werden sollen, zu bestimmen.
  • Ein derartiger Treiber hat keine Möglichkeit, die Charakteristika irgendeines speziellen Flash-Speicherbauelements, dem er zugeordnet ist, zu bestimmen, ausgenommen über die Nachschlagetabelle. Demzufolge kann dann, wenn ein neues Flash-Speicher-Bauelement in das Wirtssystem eingeführt wird, der Wirt nicht den neuen Bauelemente-Identifizierer erkennen und folglich nicht die neue Karten/Bauelemente-Kombination verwenden. Dies verhindert eine Vorwärtskompatibilität und schafft eine Härte für den typischen Flash-Kartenbenutzer, der den neuen erforderlichen Gerätetreiber nicht einfach auffinden oder implementieren kann. Da jeder Treiber auf unterer Ebene so geschrieben werden muß, daß er den speziellen Plattenemulator einschließt, muß jedesmal dann, wenn eine verbesserte Version eines Flash-Speicherbauelements erscheint, der Treiber auf der unteren Ebene neu geschrieben werden, so daß er die neuen Merkmale, die das Flash-Speicherbauelement bietet, einschließt. Beispielsweise müssen die Treiber so umgeschrieben werden, daß sie größere Datenworte, erhöhte Pufferübertragungsgrößen und dergleichen enthalten.
  • Außerdem sieht sich der Schreiber der Software dann, wenn ein neuer Gerätetreiber für das Wirtssystem verfügbar gemacht wird, Einschränkungen der Befehlscodegröße und Komplexität gegenüber, die zu der Entscheidung führen können, ältere Treiberalgorithmen fallen zu lassen. Somit kann bei dem neuen Treiber die Rückwärtskompatibilität geopfert werden.
  • Es ist wünschenswert, eine Schnittstelle für ein Flash-Speicherbauelement zur Verfügung zu stellen, die eine Kommunikation mit dem Flash-Speicher-Array in Form der Grundelemente gestattet, die zum Steuern des Flash-Speicher-Arrays innerhalb eines derartigen Flash-Speicherbauelements verwendet werden, so daß das Bauelement für Zwecke verwendet werden kann, für welche Transistor-Speicher-Arrays besonders geeignet sind.
  • Es ist darüber hinaus bei Flash-Speicher-Arrays verwendenden Bauelementen erwünscht, eine kompatible Schnittstelle einzuschließen, durch welche die Charakteristika der Bauelemente bestimmt werden können, um Initialisierungswerte für Software-Treiber zur Verfügung zu stellen.
  • Die der Erfindung zugrundeliegende Aufgabe wird durch eine Schnittstelle mit den Merkmalen des Anspruchs 1, ein Bauelement mit den Merkmalen des Anspruchs 7, ein Verfahren mit den Merkmalen des Anspruchs 13, ein Verfahren mit den Merkmalen des Anspruchs 15 bzw. ein Computersystem mit den Merkmalen des Anspruchs 17 gelöst.
  • Es wird ein Bauelement beschrieben, das ein Speicher-Array, einen Abfragespeicher und eine Schnittstelle enthält. Das Speicher-Array enthält eine Mehrzahl von Blöcken von Flash-EEPROM-Speicherbauelementen, die so angeordnet sind, daß auf sie in Zeilen und Spalten zugegriffen wird. Der Abfragespeicher speichert Daten, die Charakteristika des Flash-Speicherbauelements definieren. Die Schnittstelle empfängt Daten und Kommandos, die an das Flash-Speicherbauelement adressiert sind. Die Schnittstelle erzeugt Signale zum Bewirken der Zwecke der Kommandos innerhalb der Flash-Speicherbauelemente. Die Schnittstelle enthält eine Schaltung zum Empfangen eines Kommandos und zum Antworten durch Rückgabe der in dem Abfragespeicher gespeicherten Daten als Ausgabe.
  • Andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung sind aus den beigefügten Zeichnungen und aus der unten folgenden detaillierten Beschreibung ersichtlich.
  • Die vorliegende Erfindung wird beispielhaft und nicht in einem einschränkenden Sinne anhand der Figuren der beigefügten Zeichnungen veranschaulicht, in welchen die Bezugszeichen auf ähnliche Elemente hinweisen, und in welchen
  • 1 ein Blockschaltbild eines Computersystems mit einem Flash-Speicherbauelemente-Array ist.
  • 2 ist eine Blockdarstellung eines bekannten elektromechanischen Festplattenlaufwerks, eines bekannten Flash-Plattenlaufwerks und eines Flash-Speicherbauelemente-Arrays, das gemäß einem Ausführungsbeispiel der vorliegenden Erfindung konstruiert ist.
  • 3 ist ein Blockschaltbild eines Flash-Speicherbauelements.
  • 4 ist eine Darstellung, die Signale veranschaulicht, die in Erwiderung eines sich auf ein Flash-Speicherbauelement beziehenden Abfragekommandos zurückgegeben werden können.
  • Wie es unten detaillierter beschrieben ist, enthält ein Ausführungsbeispiel der Erfindung eine Schnittstelle zum Anschließen einer Langzeitspeichereinrichtung, die ein Flash-EEPROM-Speicherbauelement-Array enthält, das so konstruiert ist, daß es ein Abfragekommando von anderen Komponenten eines Computersystems aufnehmen und Daten zurückgeben kann, die die physikalischen Eigenschaften und die Funktionen des Flash-Speicherbauelements in einer Form definieren, die sich direkt auf ein Flash-EEPROM-Speicher-Array beziehen. Die durch ein Abfragekommando gewonnenen Daten können verwendet werden, um einen Systemgerätetreiber zu initialisieren, so daß er Kommandos zur Verfügung stellt, die auf effektivste Weise Daten in dem Flash-Speicherbauelement bearbeiten.
  • 1 ist ein Blockschaltbild eines Computersystems 10, das gemäß einem Ausführungsbeispiel der vorliegenden Erfindung konfiguriert ist. Bei einem Ausführungsbeispiel ist das Computersystem 10 ein Personalcomputer oder ein Laptop-Computer. Bei anderen Ausführungsbeispielen hält sich das Computersystem 10 in einem zellularen Telefon, einer digitalen Kamera, einem persönlichen digitalen Assistenten oder einer anderen Vorrichtung, die unter Computersteuerung steht, auf. Das veranschaulichte System 10 enthält eine zentrale Verarbeitungseinheit (CPU) 11, die verschiedene Befehle ausführt, die zur Verfügung gestellt sind, um die Operationen des Systems 10 zu steuern. Bei einem Ausführungsbeispiel ist die CPU 11 ein Mikroprozessor. Bei anderen Ausführungsbeispielen ist die CPU 11 ein Mikrocontroller oder eine andere Art eines Prozessors. Die CPU 11 ist durch einen Prozessorbus mit einer Brückenschaltung 14 verbunden, die den Zugriff auf einen Eingabe/Ausgabebus 12 steuert, der Informationen zwischen den verschiedenen Komponenten des Systems 10 übertragen kann. Die Brücke 14 ist darüber hinaus über einen Speicherbus mit dem Hauptspeicher 13 verbunden, der typischerweise aus dynamischem Speicher mit wahlfreiem Zugriff konstruiert ist, und der Informationen während einer Zeitdauer speichern kann, in welcher eine Stromversorgung dem System 10 zur Verfügung gestellt wird. In 1 ist der Bus 12 vorzugsweise ein Peripheriekomponenten-Schnittstellen(PCI)-Bus oder ein anderer lokaler Bus, der eine besonders schnelle Übertragung von Daten zur Verfügung stellen kann. Bei anderen Ausführungsbeispielen können andere Arten von Bussen verwendet werden. Verschiedene Eingabe/Ausgabe-Einrichtungen sind als Bus-Master- und Bus-Slave-Schaltungen mit dem Bus 12 verbunden. Ein Flash-Speicherbauelemente-Array 18 ist mit dem PCI-Bus 12 verbunden. Bei einem alternativen Ausführungsbeispiel ist das Flash-Speicherbauelemente- Array 18 mit einem (nicht gezeigten) sekundären Bus verbunden, wie beispielsweise einem Industriestandardarchitektur(ISA)-Bus oder einem erweiterten Industriestandardarchitektur(EISA)-Bus. Bei einem Ausführungsbeispiel verwendet das Flash-Speicherbauelemente-Array 18 die unten detaillierter beschriebene Schnittstelle, um sich mit einem Bus zu verbinden.
  • Das Flash-Speicherbauelemente-Array 18 ist ein Langzeitspeicher. Das Flash-Speicherbauelemente-Array 18 kann eine Flash-Speicherkarte oder eine andere Art eines Flash-Speicher-Arrays sein, wie beispielsweise ein Single-in-line-Speichermodul oder ein residentes Flash-Array. In der Vergangenheit wäre ein Langzeitspeicher üblicherweise ein elektromechanisches Festplattenlaufwerk. Jedoch kann ein Flash-EEPROM-Speicher-Array in Form eines Flash-Plattenlaufwerks oder eines Flash-Speicherbauelemente-Arrays anstelle eines solchen Festplattenlaufwerks als Langzeitspeicher verwendet werden. Um die Unterschiede gegenüber dem Stand der Technik zu veranschaulichen, zeigt 2 drei Arten von mit dem Bus 12 gekoppelten Langzeitspeichern, nämlich ein bekanntes elektromechanisches Festplattenlaufwerk 16, ein bekanntes Flash-Plattenlaufwerk 17 und ein Flash-Speicherbauelemente-Array 18, wobei das letztgenannte ein Ausführungsbeispiel der vorliegenden Erfindung ist. Das Flash-Speicherbauelemente-Array 18 kann als Langzeitspeicher anstelle des elektromechanischen Festplattenlaufwerks 16 verwendet werden. Bei dem Flash-Speicherbauelemente-Array 18 oder irgendeinem Flash-Speicher-Array kann es sich um eines handeln, bei welchem eine Speicherzelle ein einzelnes Datenbit speichert oder um ein Mehr-Pegel-Speichersystem, bei welchem eine Speicherzelle mehr als ein Bit Daten speichern kann. Ein Flash-Plattenlaufwerk kann ein Array von einem oder mehreren Flash-Speicherbauelementen enthalten, die jeweils eine Schaltung zum Lesen, Programmieren (Schreiben) und Löschen der Zellen dieses Flash-Speicherbauelements und eine gegenüber dem Flash-Speicherbauelement externe Schaltung zum Steuern der Operationen des gesamten Speicher-Arrays aufweist. Ein Flash-Platten-Emulator benutzt typischerweise ein Flash-Speicherbauelemente-Array, das ein Array von einem oder mehreren Flash-Speicherbauelementen enthält, bei welchem die Schaltung zum Lesen, Programmieren und Löschen der Zellen jedes Flash-Speicherbauelements vollständig in jedem derartigen Bauelement enthalten ist.
  • 2 veranschaulicht eine Systemsoftware/Hardware-Schnittstelle, die an einem Bus 12 zur Verfügung gestellt wird, an welchen ein ATA-kompatibles elektromechanisches Festplattenlaufwerk 16, das Flash-Plattenlaufwerk 17 und das Flash-Speicherbauelemente-Array 18 gekoppelt sind. 2 veranschaulicht ein im Systemspeicher angeordnetes Software-Anwendungsprogramm, das auf einem Computermikroprozessor mit Unterstützung eines Betriebssystems ausgeführt wird, und das den Zugriff auf verschiedene Eingabe/Ausgabe-Einrichtungen des Computers steuert. Das Betriebssystem enthält ein Betriebssystem-Kernel, das ein Software-Plattendateisystem im Speicher aufrechterhält, über welches die verschiedenen Dateien aufrechterhalten werden. Das Betriebssystem verwendet das Plattendateisystem, um Daten aus in dem Speichersystem des Computers gehaltenen Dateien zu gewinnen und diese zu speichern. Wenn eine Datei auf dem elektromechanischen Plattenlaufwerk 16 gespeichert wird, überträgt das Betriebssystem die Steuerung auf einen Software-IDE/ATA-Gerätetreiber, der verwendet wird, um auf das Laufwerk 16 zuzugreifen, und der als Teil des Betriebssystems gehalten wird.
  • In ähnlicher Weise wird dann, wenn eine Datei auf einem Flash-Plattenlaufwerk 17 gespeichert wird, ein Zugriff über das Betriebssystem unter Verwendung des gleichen IDE/ATA-Gerätetreibers erlangt. Bei der veranschaulichten Anordnung empfängt das Flash-Plattenlaufwerk 17 Kommandos und darauf bezogene Daten aus dem ATA-Gerätetreiber, die in einer Form definiert sind, die direkt für ein rotierendes elektromechanisches Festplattenlaufwerk verwendbar sind. Da ein ATA-Gerätetreiber so konstruiert ist, daß er Informationen für ein elektromechanisches Festplattenlaufwerk zur Verfügung stellt, können die zu dem Flash-Plattenlaufwerk von dem ATA-Gerätetreiber übertragenen Kommandos anweisen, daß eine Aufsuchoperation für einen speziellen Sektor des rotierenden Festplattenlaufwerks ausgeführt werden sollte, das ein Lesen eines derartigen Sektors oder mehrerer derartiger Sektoren erfolgen sollte oder daß ähnliche sektor-bezogene Operationen stattfinden sollten.
  • Das bekannte Flash-Plattenlaufwerk 17, das in 2 veranschaulicht ist, enthält ein Array 23 von Flash-EEPROM-Speicherbauelementen, die so konstruiert sind, daß auf sie unter Verwendung von Chip-, Block-, Zeilen- und Spaltenadressierungen zugegriffen wird. Um beim Zugreifen auf ein Zeilen- und Spaltenbauelement mit Kommandos zurechtzukommen, die für eine rotierende Platteneinrichtung konstruiert sind, enthält die Flash-Platte 17 eine externe Kommandobenutzerschnittstelle (CUI) zum Empfangen und Behandeln von Kommandos, die an eine Mehrzahl von Siliziumchips adressiert sind, die gemeinsam ein Flash-Speicher-Array 23 bilden. Bei einem Ausführungsbeispiel enthält diese externe Kommandobenutzerschnittstellenschaltung einen ASIC-Logikblock 20, der von dem ATA-Gerätetreiber auf dem PCI-Bus 12 gelieferte Kommandos empfängt. Der Logikblock 20 wird durch einen Prozessor 21 unterstützt, der einen zugeordneten Speicher mit wahlfreiem Zugriff und einen Nur-Lese-Speicher zum Unterstützen seiner Operationen aufweist. Diese bilden zusammen, was im Endeffekt ein kleiner Mehrzweckcomputer zum Ausführen der verschiedenen, auf das Flash-Plattenlaufwerk 17 gerichteten Operationen ist. Der Logikblock 20 nimmt direkt an das Laufwerk 17 gerichtete Kommandos auf und übersetzt diese und die zugeordneten Adressen mit Hilfe des Prozessors 21 in Informationen, die zum Zugreifen auf ein Zeilen- und Spalten-Array verwendbar sind. Der Logikblock 20 und der Prozessor 21 können so betrachtet werden, daß sie als Gesamtkommandobenutzerschnittstelle für das Flash-Plattenlaufwerk 17 funktionieren.
  • Das gezeigte Flash-Speicher-Array 23 enthält Flash-EEPROM-Bauelemente 24, die jeweils eine Anzahl von Blöcken 25 von Speichertransistoren aufweisen. Ein Ausführungsbeispiel enthält 32 einzelne große Blöcke, die jeweils 64 Kilobyte Flash-EEPROM-Speicherzellen aufweisen. Jedes Bauelement 24 enthält darüber hinaus eine Schaltung zum Steuern des Anlegens von Signalen und Spannungen, um die Lese-, Schreib-, Kopier- und Löschfunktion in den einzelnen Blöcken auszuführen. Jedes Flash-EEPROM-Bauelement 24 des Arrays 23 enthält eine Kommandobenutzerschnittstelle (CUI) einschließlich einer oder mehrerer Zustandsmaschinen. Eine typische Flash-Bauelement-Kommandobenutzerschnittstelle ist so konstruiert, daß sie sämtliche an die einzelnen Flash-Bauelemente 24 adressierten Kommandos von dem Logikblock 20 unabhängig von ihrer Adresse in dem Bauelement empfängt und daß sie die Kommandos verwendet, um die verschiedenen angewiesenen Operationen durchzuführen. Die Flash-Bauelement-CUI verwendet oftmals eine Schreibzustandsmaschine, um Schreib-, Kopier- und Löschoperationen und bestimmte andere interne Operationen der Speicherbauelemente des Flash-Bauelements zu steuern. Somit werden die Kommandobenutzerschnittstellen in jedem der Flash-Speicherbauelemente 24 üblicherweise verwendet zum Löschen der Blöcke 25 von Zellen und zum Lesen oder Schreiben von Daten in Zeilen- und Spaltenadressen, während sich die ATA-Kommandobenutzerschnittstelle (einschließlich des Logikblock 20 und des Prozessors 21) außerhalb der Bauelemente 24 mit Zylinder/Kopf/Sektor- oder Logikblockadressen, wie sie für ein mechanisches Plattenlaufwerk repräsentativ sind, befaßt.
  • Bekannte Flash-Platten-Emulatoren (obwohl sie nicht in 2 gezeigt sind) enthalten einen Treiber auf niedriger Ebene zwischen dem IDE/ATA-Gerätetreiber und dem Emulator, der die in der Einrichtung 17 von der externen Kommandobenutzerschnittstelle, die aus dem Logikblock 20 und dem Prozessor 21 und zugehörigem Speicher zum Übersetzen der ATA-Kommandos in Kommandos, die von einem Zeilen- und Spalten- Array ausgeführt werden können, besteht, ausgeführten Funktionen ausführt. Wie oben ausgeführt, ist ein derartiger Treiber auf niedriger Ebene nicht vorwärtskompatibel und funktioniert somit nicht mit neuen Flash-Platten-Emulatoren, wenn diese erscheinen.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung werden eine Vorrichtung und ein Verfahren zur Verfügung gestellt zum direkten Definieren der Charakteristika von Flash-Speicherbauelementen in Form von Flash-EEPROM-Grundelementen anstelle von Grundelementen rotierender Platten, wie sie bei bekannten Anordnungen definiert worden sind. Dies gestattet den direkten Zugriff eines Flash-Speicher-Arrays zum Lesen und Ausführen der darin gespeicherten Daten unter Verwendung von Software-Treibern, die durch Werte initialisiert werden, die im Ergebnis einer Abfragefunktion, die von dem Flash-Speicherbauelement zur Verfügung gestellt wird, gewonnen wurden.
  • Gemäß 2 wird ein neuer Softwaretreiber 35 einer hohen Ebene als Teil des Betriebssystems zur Verfügung gestellt. Dieser Softwaretreiber (genannt Flash-Übersetzungs-Schicht(FTL)-Treiber) übersetzt die von dem Plattendateisystem zur Verfügung gestellten Informationen in Flash-EEPROM-Grundelemente. Der Treiber 35 hoher Ebene stellt Adressen und Daten an einen Treiber 36 niederer Ebene zur Verfügung, der speziell angepaßt ist, um mit dem zur Verfügung gestellten Flash-Bauelement zu funktionieren. Der Treiber 36 niederer Ebene stellt viele der hierfür von der Kommandobenutzerschnittstelle 20 des Flash-Plattenlaufwerks 17 zur Verfügung gestellten Funktionen zur Verfügung.
  • Wie in 2 zu sehen ist, enthält das Flash-Speicherbauelemente-Array 18 eine Mehrzahl einzelner Flash-EEPROM-Speicherbauelemente 27 und einen Dekodierer 29 zum Richten von Kommandos an die Speicherzellen in Blöcken der einzelnen Bauelemente 27. Das Flash-Speicherbauelemente-Array 18 und die beiden Softwaretreiber 35 und 36 bilden zusammen den Flash-Plattenemulator gemäß der vorliegenden Erfindung (in der Figur in gestrichelte Linien eingeschlossen gezeigt). Wie unter Bezugnahme auf die bekannten Flash-Plattenemulatoren dargelegt wurde, wurden verschiedene der in der Hardware in dem Flash-Plattenlaufwerk 17 enthaltenen Funktionen durch Funktionen in dem hohen und dem niedrigen Software-Treiber ersetzt.
  • 3 veranschaulicht ein Flash-Speicherbauelement 27, das gemäß einem Ausführungsbeispiel der vorliegenden Erfindung aufgebaut ist. Das Flash-Speicherbauelement 27 gemäß 3 enthält eine Bauelement-Kommandoschnittstelle 40 mit Adreßdekodierschaltung 43 und Zustandsmaschinen 44. Eine zusätzliche Schreibzustandsmaschine 41 ist der Kommandobenutzerschnittstelle zugeordnet, um bei der Programmierung und Löschung der Zellen von Blöcken von Flash-EEPROM-Speicherzellen 48 Unterstützung zu leisten. Ein Schreibpuffer 45 ist vorgesehen, durch welchen Daten an die Blöcke von Flash-Speicherzellen 48 geliefert werden. Ein Statusregister 46 liefert den Betriebsstatus des Bauelements 27 und ein Datenmultiplexer 47 steuert die Übertragung von Daten aus dem Bauelement 27 hinaus.
  • Das Flash-Speicherbauelement 27 enthält darüber hinaus einen Identifikations/Abfragemodus-Nur-Lese-Speicher (ROM) 31, in welchen Details der Charakteristika der speziellen Flash-Speicherzellentechnologie und Steuerschaltung jedes Flash-Speicherbauelements 27 gespeichert sind. Der Identifikations/Abfragemodus-ROM 31 antwortet auf ein Abfragekommando, das als Teil der Software des Gerätetreibers 35 der oberen Ebene zur Verfügung gestellt und durch die Bauelemente-Kommandobenutzerschnittstelle 40 dekodiert wird.
  • Die Gerätetreiber 35 und 36 liefern einen Algorithmus zur Schnittstellenbildung mit dem Flash-Speicherbauelement 27, der einen Kommandosatz enthalten kann. Die Kommandos des grundlegenden Kommandosatzes können ein Abfragekommando, ein Lesekommando, ein Schreibkommando, ein Statuslesekommando, ein Löschkommando und ein Aussetzkommando umfassen. Der Kommandosatz kann darüber hinaus zusätzliche Kommandos enthal ten, die von den verschiedenen Schaltungen unter Steuerung dieser Gerätetreiber ausgeführt werden können.
  • Ein an einen Adreßdekodierer 29 gerichtetes Abfragekommando veranlaßt den ROM 31, Daten zur Verfügung zu stellen, die die physikalischen Parameter des Flash-Plattenlaufwerks anzeigen. 4 veranschaulicht Daten, die aufgrund eines Abfragekommandos zurückgegeben werden können.
  • Bei einem Ausführungsbeispiel des Flash-Speicherbauelements 27 empfängt der Treiber 35 der hohen Ebene Kommandos, die übersetzt und an den Treiber 36 der niedrigen Ebene gesendet werden. Sämtliche dieser Kommandodaten werden dem Treiber 36 der niedrigen Ebene durch den Treiber 35 der hohen Ebene in Form von Flash-Speicherbauelement-Grundelementen zur Verfügung gestellt, die keine weitere Übersetzung erfordern, um bei einem Flash-Speicherbauelement benutzt zu werden.
  • Normalerweise hält der Treiber 36 der niederen Ebene das Flash-Speicherbauelement 27 in einem Array-Lesemodus. Jedoch kann ein gültiges Kommando irgendein Bauelement 27 in einen anderen Modus umschalten. Wenn ein Lese-Abfrage-Kommando an den Treiber 36 der niedrigen Ebene gerichtet wird, sendet der Treiber ein Abfragekommando an die Bauelemente-Kommandobenutzerschnittstelle 40, das die Abfrage des Abfragemodus-ROM 31 und die Rückgabe der Abfragedaten bewirkt. Typischerweise werden die in Erwiderung des Abfragekommandos zurückgegebenen Abfragedaten in einer seriellen Sequenz zur Verfügung gestellt. Diese Daten können dann verwendet werden, um die Software-Treiber der niedrigen und hohen Ebene 35 und 36, die mit dem Flash-Speicherbauelemente-Array 18 verwendet werden, zu initialisieren, so daß die von den Treibern verwendeten Kommandos mit den Fähigkeiten des Flash-Speicherbauelements 27 übereinstimmen. Dies gestattet ein Implementieren gleicher Treiber, die durch verbesserte Versionen von Flash-Speicherbauelemente-Arrays aktualisiert werden können, wenn jene verbesserten Arrays konstruiert sind.
  • 4 veranschaulicht ein Ausführungsbeispiel von Daten, die in einem Abfrage-ROM 31 gespeichert und in Erwiderung eines an der Kommandobenutzerschnittstelle 40 empfangenen Abfragekommandos zurückgegeben werden können. Die Daten können in einer seriellen Zeichenkette zurückgegeben werden, in welcher die ersten 16 Bytes für die Übertragung von Daten reserviert sind, die für einen speziellen Flash-Speicher-Anbieter spezifisch sind. Die nächsten elf Bytes werden verwendet, um Daten zu übertragen, die einen speziellen Kommandosatz beschreiben, der verfügbar ist, um mit dem Flash-Array verwendet zu werden. Von diesen elf Datenbytes werden die ersten drei Bytes verwendet, um einen Abfragezeichenkettenindikator, wie beispielsweise den ASCII-Wert für "QRY", zu übertragen. Dies zeigt dem Computer an, daß das Array in der Lage ist, Abfragekommandos aufzunehmen und zu beantworten. Die nächsten zwei Bytes werden verwendet, um einen 16-Bit-Identifikationscode zu übertragen, der einen speziellen, von diesem bestimmten Flash-Speicherbauelement 27 verwendeten allgemeinen Anbieter-Kommandosatz definiert. Im allgemeinen ist ein derartiger Kommandosatz ein definierter Kommandosatz, der als Standard für jeden Anbieter zur Verwendung in einem Gerätetreiber verfügbar ist. Ein solcher Kommandosatz kann durch einen oder mehrere Anbieter verwendet werden, gibt aber exakt die Grundkommandos an, mit welchen die Schnittstelle funktioniert. Die nächsten zwei Bytes übertragen dann eine Adresse für einen erweiterten Abschnitt von grundsätzlich unbegrenztem Ausmaß, der zu dem durch die letzten zwei Bytes definierten Kommandosatz hinzugefügt werden kann. Diese Adresse gestattet es einem Anbieter, den primären Kommandosatz durch Kommandos zu erweitern, die der Anbieter als Teil des Kommandosatzes für das Flash-Speicherbauelement 27 wünscht. Grundsätzlich werden solche zusätzlichen Kommandos auf die gleiche Weise definiert, wie die Kommandos, die in allgemeinen Kommandosätzen der Gerätetreiber verfügbar sind. In 4 stellen zwei als "Offset-Adresse P" und "Offset-Adresse A" bezeichnete Abschnitte einen Raum variabler Länge zum Übertragen von Daten zur Verfügung, die primäre und alternative erweiterte Abfragetabellenelemente definieren. Auf diese Weise kann ein Anbieter zusätzliche Kommandos hinzufügen, die für das Flash-Speicherbauelement, das von dem Gerätetreiber implementiert werden soll, spezifisch sind. Die nächsten zwei Bytes werden verwendet, um 16 Bit Daten zu übertragen, die einen zweiten allgemeinen Kommandosatz anzeigen, der von dem Flash-Speicherbauelement 27 implementiert werden kann. Wenigstens zwei Bytes werden verwendet, um die Adresse für Erweiterungen dieses alternativen Kommandosatzes für das Flash-Speicherbauelement 27 zu übertragen.
  • Diese Anordnung gestattet es einem Anbieter, einen primären Basissatz von Kommandos zum Betreiben des Arrays zu verwenden, zusätzliche Kommandos zu dem primären Basissatz von Kommandos zum Ausführen der Funktionen des Arrays hinzuzufügen, einen zweiten Basissatz von Kommandos zum Betreiben des Arrays zu verwenden und zusätzliche Kommandos zu dem zweiten Basissatz von Kommandos zum Ausführen der Funktionen des Arrays hinzuzufügen. Dies gestattet es einem Anbieter, zusätzliche Kommandos hinzuzufügen, wenn Verbesserungen zu dem Flash-Speicherbauelement 27 hinzugefügt werden. Die in Erwiderung des Abfragekommandos übertragenen Daten gestatten es dann einem Gerätetreiber, modifiziert zu werden, um den richtigen Kommandosatz zum Implementieren der Operationen des Arrays zur Verfügung zu stellen.
  • 4 veranschaulicht darüber hinaus einen zweiten Satz von 12 Bytes, die eine Beschreibung der Systemschnittstelle zur Verfügung stellen und in Erwiderung eines Abfragekommandos zurückgegeben werden. Bei dem veranschaulichten Ausführungsbeispiel definiert ein erstes Byte die minimale Versorgungsspannung, die von dem Array unter seinen normalen Betriebsbedingungen verwendet wird. Ein zweites Byte definiert die maximale Versorgungsspannung, die von dem Array unter seiner normalen Betriebsbedingung verwendet wird. Ein drittes Byte definiert die minimale Versorgungsspannung, die von dem Array im Programmierzustand verwendet wird. Ein viertes Byte definiert die maximale Versorgungsspannung, die von dem Array im Programmierzustand verwendet wird. Die nächsten acht Bytes definieren verschiedene Systemzeitgabeparameter für unterschiedliche Operationen.
  • Diese Werte gestatten die Initialisierung von Gerätetreibern, um die richtigen Werte für jede der speziellen Operationen zur Verfügung zu stellen, die das Array beim Ausführen seiner Lese-, Schreib-, Kopier- und Löschfunktionen implementiert.
  • 4 veranschaulicht darüber hinaus zusätzliche 10 Bytes, die bei dem veranschaulichten Ausführungsbeispiel verwendet werden können, um Daten zu übertragen, die die spezielle Geometrie des Flash-Speicherbauelements 27 definieren. Bei diesem Ausführungsbeispiel wird ein erstes Byte verwendet, um die Flash-Speicherbauelementegröße zu definieren. Als zweites werden zwei Bytes verwendet, um die Schnittstelle zu beschreiben, z.B. Asynchron 8 Bit, Asynchron 16 Bit oder beides. Als drittes definieren zwei Bytes die Maximalanzahl von Bytes bei einem Mehr-Byte-Schreiben. Bei einem Ausführungsbeispiel der Erfindung wird ein Löschblockieren verwendet, um einen oder mehrere Blöcke innerhalb eines Löschblockbereichs des Arrays "nur lesbar" zu machen. Es können Löschblöcke unterschiedlicher Größe existieren. Ein viertes Byte definiert die Anzahl derartiger Löschblockbereiche in einem Bauelement. Als fünftes definieren vier Bytes die Größe und Anzahl der Löschblöcke in einem Löschblock einer Matrix. Durch Definieren der Größe und Anzahl der unterschiedlichen Löschblöcke, die in dem Array vorhanden sind, kann ein Software-Treiber über die unterschiedlichen Flächen unterrichtet werden, die "nur lesbar" gemacht wurden oder die in einer Einzeloperation gelöscht werden können.
  • Sämtliche dieser Werte werden darüber hinaus verwendet, um den mit dem speziellen Flash-Speicherbauelement 27 ver wendeten Treiber so zu initialisieren, daß er sich auf effektive Weise mit dem Array befassen kann.
  • Sobald die Gerätetreiber auf die Werte des speziellen Flash-Speicherbauelements 27 initialisiert worden sind, können verschiedene Kommandos verwendet werden, und das Flash-Speicherbauelement 27 wird diese Kommandos akzeptieren. Die Schreib-, Lese- und Löschkommandos bewirken ähnliche Operationen wie bei dem Flash-Plattenlaufwerk 17 gemäß 2, da der Flash-Übersetzungs-Schicht-Treiber derartige Plattenkommandos in Flash-Grundkommandos übersetzt, die von dem Treiber der niedrigen Ebene ausführbar sind. Die richtige Übersetzung von Anforderungen nach Datenübertragungen spezieller Plattengrundeinheiten oder Sektoren in variable Flash-Bauelement-spezifische Blocklösch- und Byte- oder Puffer-Schreibkommandos wird durch die Kenntnis der Software-Treiber über die Löschblockgrößen, Löschblockbereichsgrößen, Schreibpuffergrößen und die Größe des gesamten Bauelemente-Arrays erleichtert. Die durch Auslesen des Inhalts des Abfrage-ROM 31 zur Verfügung gestellten Informationen gestatten es den Gerätetreibern des Flash-Platten-Emulators, verschiedene Größen von Plattenlaufwerken zu emulieren, wie beispielsweise das elektromechanische Laufwerk 16 oder das Flash-Plattenlaufwerk 17, unter Verwendung beliebiger Kombinationen unterschiedlicher Flash-Speicherbauelemente 27 in einer Flash-Speicherkarte oder einer anderen Flash-Speichermatrix, die in einem Flash-Platten-Emulator verwendet wird. Darüber hinaus sind diese Informationen sogar nützlich zum Vereinfachen der Firmware innerhalb eines Flash-Plattenlaufwerks 17, das Flash-Speicherbauelemente 27 enthält, die in der Art der vorliegenden Erfindung implementiert sind, so daß es die gleiche Firmware gestattet, daß das Flash-Plattenlaufwerk zu einem späteren Datum unter Verwendung neuerer Flash-Speicherbauelemente mit verbesserten Merkmalen oder größeren Kapazitäten hergestellt wird.
  • Die Flash-Speicherbauelementekommandos gestattet es darüber hinaus, daß ein Abschnitt des Arrays "Nur lesbar" für spezielle Operationen gemacht wird. Daten, die in einem "Nur-Lese"-Löschblockbereich des Arrays gespeichert sind, können dann direkt aus dem Array in einem Modus gelesen werden, bei welchem auf Daten auf einer Zeilen- und Spaltenbasis zugegriffen wird. Solch ein "Nur-Lese"-Abschnitt des Arrays kann verwendet werden, um Programme direkt aus dem Array heraus auszuführen.
  • In einem solchen Fall werden Daten zu dem Flash-Speicherbauelement 27 in der typischen Weise über eine in 3 gezeigte Bauelemente-Kommandoschnittstelle 40 geschrieben, die Zustandsmaschinen zum Ausführen der verschiedenen Zugriffs- und Steueroperationen enthält. Die Schnittstelle 40 ist einer Schreibzustandsmaschine 41 zugeordnet, die bei jedem Chip zum Schreiben, Kopieren und Löschen der Blöcke des Flash-Speichers verwendet wird. Wenn jedoch die Daten für eine direkte Befehlscodeausführung geschrieben werden, so werden die Blöcke 48, in welchen die Daten gespeichert sind, als "nur lesbar" markiert. Dies veranlaßt die Anwendungsbefehle in den Blöcken, in der Dateireihenfolge zu verbleiben und nicht unzusammenhängend angeordnet zu werden. Demzufolge braucht die Datei nicht extern umgeordnet zu werden, bevor die Befehle ausgeführt werden. Dann findet ein Lesen der Befehle, die eine Anwendung bilden, in einem separaten Lese-Array-Modus des Flash-Speicherbauelements 27 statt. Dieser Modus kann durch ein Lese-Array-Kommando initiiert werden, der das Flash-Speicherbauelement 27 veranlaßt, in dem Lese-Array-Modus zu funktionieren. Alternativ kann ein separates Lese-Array-Pin zur Verfügung gestellt werden. Die Lese-Array-Modus-Auswahl gestattet es einem Prozessor oder anderen Bus-Master, direkt Daten aus dem Flash-Speicherbauelement 27 zu lesen, indem die richtigen Chip-, Block-, Zeilen- und Spalten-Leseadressen innerhalb des Kommandos zur Verfügung gestellt werden.
  • Wenn es sich in dem Lese-Array-Modus befindet, können die in dem Array gespeicherten Befehle aus dem Array so schnell gelesen werden, wie Befehle üblicherweise aus einem DRAM-Speicher gelesen werden. Aus diesem Grund kann das Array nicht nur zum Ersetzen von Langzeitspeicher, wie beispielsweise einem rotierenden Plattenspeicher, verwendet werden, sondern darüber hinaus zum Ersetzen bestimmter Hauptspeicherfunktionen, wo sich Daten nicht schnell ändern, sondern nur aus dem Array gelesen zu werden brauchen.
  • Zusätzlich zu den von dem hier beschriebenen Ausführungsbeispiel zur Verfügung gestellten Kommandos könnten außerdem andere Kommandos bei einem Flash-Speicherbauelement 27 verwendet werden oder durch andere Bauelemente, die ein Flash-Speicher-Array verwenden und Abfragedaten gemäß der vorliegenden Erfindung zurückgeben. Beispielsweise kann das Abfragekommando darüber hinaus Daten zurückgeben, die anzeigen, ob ein Lesen und Schreiben auf der Byte-Ebene stattfinden kann, die interne Busbreite und die Größe des Eingabepuffers 28. Das Abfragekommando kann darüber hinaus Daten zurückgeben, die anzeigen, ob Lösch-, Schreib- und Kopierfunktionen ausgesetzt werden können und für welche anderen Operationen sie ausgesetzt werden können. Zusätzliche Daten, die zur Verfügung gestellt werden können, umfassen Angaben, ob ein Bereit/Besetzt-Signal vorhanden ist. Sofern das Array eine Mehrbit-Zellen-Speicherung zur Verfügung stellen kann, kann ein Abfragekommando Daten zurückgeben, die sich auf die Art der Mehrbit-Speicherung, einschließlich der Anzahl der Bits pro Zelle, beziehen, ob Fehlerkorrekturcodierung verwendet wird und andere Charakteristika. Andere von einem Abfragekommando zurückgegebene Daten können anzeigen, daß das Array in einem Einzelbitmodus funktioniert, daß das Array in der Lage ist, in einem Zwei-Zustands-Modus oder in einem anderen Mehr-Bit-Modus zu arbeiten, und die Anzahl von in jeder Zelle in irgendeinem derartigen Mehr-Bit-Modus gespeicherten Bits. Auf diese Weise kann die Schnittstelle bei Flash-Speicherbauelementen verwendet werden, die es gestatten, daß ein einzelnes Bit oder eine Mehrzahl von Bits durch eine Speicherzelle gespeichert werden. Eine Abfrageantwort könnte darüber hinaus einem Prozessor anzeigen, ob das Array eine Fehlererfassung und -korrektur beim Speichern und Wiedergewinnen von Daten implementiert. Andere Antworten auf ein Abfragekommando könnten die Art des logischen Laufwerks anzeigen, die das Array bildet, z.B., ob das Array von einem PCMCIA-Typ oder eines anderen Typs eines Laufwerks ist.
  • Durch Verwenden eines Abfragekommandos, das Daten zurückgibt, die die physikalischen Eigenschaften des Arrays anzeigen, gestattet die Schnittstelle eine Array-Gerätetreiberinitialisierung, so daß die Mehrzahl von Kommandos, die von einem Prozessor erzeugt werden können, so angepaßt werden, daß sie den Ablauf von Operationen in einer Weise bewirken, die für die physikalischen Eigenschaften des Arrays am besten geeignet ist. Die zentrale Verarbeitungseinheit in einem System, das eine Flash-Speichereinrichtung mit einer derartigen Schnittstelle verwendet, kann die Ergebnisse des Abfragekommandos lesen, um zu bestimmen, welche Art von Schnittstelle es zu irgendeinem Flash-Speicher-Bauelement, das in dem System angeordnet ist, bilden soll. Durch Verwenden eines fest vorgegebenen Kommandosatzes, stellt ein Abfragekommando Antworten zur Verfügung, die von sämtlichen Anbietern in der Industrie verwendet werden können. Obwohl der Kommandosatz fest in seiner Bedeutung ist, stellt er außerdem Mittel zur Verfügung, durch welche er aktualisiert werden kann, um zukünftige Bauelemente einzuschließen, ohne das Neuschreiben der Gerätetreiber niedriger Ebene, die bei derartigen Bauelementen verwendet werden, zu erfordern.
  • In der vorstehenden Beschreibung wurde die Erfindung unter Bezugnahme auf spezielle Ausführungsbeispiele beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom breiteren Geist und Umfang der Erfindung abzuweichen, wie er in den anhängigen Ansprüchen angegeben ist. Die Beschreibung und Zeichnungen sind dementsprechend in einem veranschaulichenden und nicht in einem einschränkenden Sinne zu verstehen.

Claims (19)

  1. Eine Schnittstelle zum Empfangen von Daten und Kommandos, die an ein Blöcke von Flash-EEPROM-Speicher enthaltendes Array in einem Bauelement gerichtet sind, und zum Erzeugen von Signalen zum Bewirken der Zwecke der Kommandos in dem Bauelement, wobei die Schnittstelle aufweist: Einrichtungen zum Empfangen eines Kommandos; und Einrichtungen zum Beantworten des Kommandos, indem Daten zurückgegeben werden, die die Eigenschaft des Bauelements in Form von sich auf den Flash-EEPROM-Speicher beziehenden Grundausdrücken definieren.
  2. Eine Schnittstelle nach Anspruch 1, bei welcher die die Eigenschaft des Bauelements definierenden Daten umfassen: Daten, die die Größe des Speicher-Arrays beschreiben; Daten, die die Größe und die Ausdehnung von Blöcken von Flash-EEPROM-Speicher beschreiben, welche gemeinsam gelöscht werden können; und einen Kommandosatz.
  3. Eine Schnittstelle nach Anspruch 2, bei welcher die die Eigenschaft des Bauelements definierenden Daten ferner Erweiterungen für den Kommandosatz umfassen.
  4. Eine Schnittstelle nach Anspruch 2, bei welcher die die Eigenschaft des Bauelements definierenden Daten ferner einen zweiten Kommandosatz umfassen.
  5. Eine Schnittstelle nach Anspruch 4, bei welcher die die Eigenschaft des Bauelements definierenden Daten ferner Erweiterungen für den zweiten Kommandosatz umfassen.
  6. Eine Schnittstelle nach Anspruch 1, ferner aufweisend Mittel zum Lesen des Arrays durch ein Kommando, das in sich auf das Speicher-Array beziehenden Grundbegriffen definiert ist.
  7. Ein Bauelement, aufweisend: ein Speicher-Array mit einer Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen, die so angeordnet sind, daß auf sie in Zeilen und Spalten zugegriffen werden kann; einen Abfragespeicher, der Charakteristika des Flash-Speicherbauelements definierende Daten speichert; und eine Schnittstelle zum Empfangen von Daten und Kommandos, die an Blöcke des Flash-EEPROM-Speicherbauelements adressiert sind und zum Erzeugen von Signalen zum Bewirken des Zweckes der Kommandos in dem Bauelement, wobei die Schnittstelle eine Schaltung zum Empfangen eines Kommandos und zum Antworten durch Rückgabe der in dem Abfragespeicher gespeicherten Daten als Ausgabe aufweist.
  8. Ein Bauelement nach Anspruch 7, bei welchem der Abfragespeicher Daten speichert, die Standardcharakteristika des Bauelements und des eine Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen enthaltenden Speicher-Arrays umfassen.
  9. Ein Bauelement nach Anspruch 8, bei welchem der Abfragespeicher Daten speichert, die die Standardcharakteristika des Bauelements in Grundelementen des eine Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen enthaltenden Speicher-Arrays beschreiben.
  10. Ein Bauelement nach Anspruch 9, bei welchem die Schnittstelle zum Empfangen von Daten und Kommandos ferner Einrichtungen zum direkten Zugreifen auf die Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen von einem Systembus aufweist, um Daten an Zeilen- und Spaltenadressen zu lesen, die in Grundelementen des Speicher-Arrays definiert sind.
  11. Ein Bauelement nach Anspruch 7, bei welchem die Schnittstelle zum Empfangen von Daten und Kommandos ferner Einrichtungen zum direkten Zugreifen auf die Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen von einem Systembus unter Verwendung von Zeilen- und Spaltenadressierungen zum Lesen von Daten aufweist.
  12. Ein Bauelement nach Anspruch 7, bei welchem die Schnittstelle zum Empfangen von Daten und Kommandos ferner aufweist eine Bauelemente-Kommandoschnittstelle mit einer Mehrzahl von Zustandsmaschinen zum Zugreifen auf die Mehrzahl von Blöcken von Flash-EEPROM-Speicherzellen, wobei die Bauelement-Kommandoschnittstelle einen auswählbaren Modus zur Verfügung stellt, der Mittel zum direkten Lesen der Mehrzahl von Blöcken der Flash-EEPROM-Speicherzellen ohne Verwendung der Zustandsmaschinen einschließt.
  13. Ein Verfahren zum Initialisieren eines Software-Gerätetreibers für ein Bauelement, das ein Flash-EEPROM-Speicher-Array enthält, umfassend die Schritte: Richten eines Abfragekommandos an ein Bauelement; Liefern der Charakteristika des Bauelements in Form von Grundelementen des Flash-EEPROM-Speicher-Arrays in Beantwortung des Abfragekommandos; und Einstellen von Anfangswerten für den Software-Gerätetreiber in Abhängigkeit von den in Beantwortung des Abfragekommandos zur Verfügung gestellten Charakteristika.
  14. Ein Verfahren zum Initialisieren eines Software-Gerätetreibers nach Anspruch 13, ferner umfassend den Schritt des Erzeugens eines Lesekommandos, das auf das Bauelement unter Verwendung einer Zeilen- und Spaltenadressierung zugreift.
  15. Ein Verfahren zum Zugreifen auf ein Bauelement, das einen Flash-EEPROM-Speicher enthält, umfassend die Schritte: Abfragen des Bauelements, um seine Charakteristika in Form von Flash-EEPROM-Speichergrundelementen zu bestimmen; Initialisieren eines Gerätetreibers für das Bauelement unter Verwendung der bestimmten Charakteristika; Schreiben von Daten in das Bauelement unter Verwendung der bestimmten Charakteristika über eine Schnittstelle, die Zustandsmaschinen zum Löschen und Schreiben des Flash-EEPROM-Speichers zur Verfügung stellt; Einrichten eines Abschnitts der in den Flash-EEPROM-Speicher geschriebenen Daten als Nur-Lesbar; und Lesen des Abschnittes der in den Flash-EEPROM-Speicher als Nur-Lesbar geschriebenen Daten aus dem Bauelement mit Hilfe eines Lesekommandos, das eine direkte Zeilen- und Spaltenadressierung des Flash-EEPROM-Speichers verwendet.
  16. Ein Verfahren zum Zugreifen auf ein Bauelement nach Anspruch 15, bei welchem der Schritt des Abfragens des Bauelements, um seine Charakteristika in Form von Flash-EEPROM-Speichergrundelementen zu bestimmen, das Lesen von die Charakteristika definierenden Daten aus einem Abfragespeicher in dem Bauelement umfaßt.
  17. Ein Computersystem, aufweisend: eine zentrale Verarbeitungseinheit; einen Hauptspeicher; einen die Komponenten des Computersystems mit der zentralen Verarbeitungseinheit und dem Hauptspeicher verbindenden Bus; und ein mit dem Bus verbundenes Bauelement, das aufweist: ein eine Mehrzahl von Blöcken von Flash-EEPROM-Speicher enthaltendes Speicher-Array, das so angeordnet ist, daß auf es in Zeilen und Spalten zugegriffen werden kann; einen Abfragespeicher, der Daten speichert, die Charakteristika des Flash-EEPROM-Speichers definieren; und eine Schnittstelle zum Empfangen von Daten und Kommandos, die an die Blöcke von Flash-EEPROM-Speicher adressiert sind, und zum Erzeugen von Signalen zum Bewirken des Zweckes der Kommandos in dem Flash-EEPROM-Speicher, wobei die Schnittstelle Mittel zum Empfangen eines Kommandos und zum Beantworten des Kommandos durch Rückgabe der in dem Abfragespeicher gespeicherten Daten als Ausgabe aufweist.
  18. Ein Computersystem nach Anspruch 17, bei welchem der Abfragespeicher Daten speichert, welche die Standardcharakteristika des Bauelements in Form von Grundelementen des Flash-EEPROM-Speichers beschreiben.
  19. Ein Computersystem nach Anspruch 18, bei welchem die Schnittstelle zum Empfangen von Daten und Kommandos ferner Mittel zum direkten Zugreifen der Mehrzahl von Blöcken von Flash-EEPROM-Speicher von einem Systembus aufweist, um Daten an Zeilen- und Spaltenadressen zu lesen, die in Grundelementen des Flash-EEPROM-Speichers definiert sind.
DE19782214A 1996-12-26 1997-10-10 Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays Expired - Fee Related DE19782214B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/773,167 US6260102B1 (en) 1996-12-26 1996-12-26 Interface for flash EEPROM memory arrays
US08/773,167 1996-12-26
PCT/US1997/019456 WO1998029801A1 (en) 1996-12-26 1997-10-10 Improved interface for flash eeprom memory arrays

Publications (2)

Publication Number Publication Date
DE19782214A1 DE19782214A1 (de) 2000-02-24
DE19782214B4 true DE19782214B4 (de) 2005-12-22

Family

ID=25097406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782214A Expired - Fee Related DE19782214B4 (de) 1996-12-26 1997-10-10 Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays

Country Status (6)

Country Link
US (1) US6260102B1 (de)
KR (1) KR100297202B1 (de)
AU (1) AU5001497A (de)
DE (1) DE19782214B4 (de)
TW (1) TW351785B (de)
WO (1) WO1998029801A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19708755A1 (de) 1997-03-04 1998-09-17 Michael Tasler Flexible Schnittstelle
US6802453B1 (en) * 1997-06-04 2004-10-12 Sony Corporation External storage apparatus and control apparatus thereof, and data transmission reception apparatus
US5973734A (en) 1997-07-09 1999-10-26 Flashpoint Technology, Inc. Method and apparatus for correcting aspect ratio in a camera graphical user interface
JP2000030375A (ja) * 1998-07-10 2000-01-28 Tokyo Electron Ltd データ処理システム、アクセス装置及び記録媒体
US6317141B1 (en) 1998-12-31 2001-11-13 Flashpoint Technology, Inc. Method and apparatus for editing heterogeneous media objects in a digital imaging device
US6396594B1 (en) * 1999-03-31 2002-05-28 International Business Machines Corporation Method for providing flexible and secure administrator-controlled watermarks
JP2001025053A (ja) 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
DE10064649A1 (de) 2000-12-22 2002-07-04 Bosch Gmbh Robert Schnittstelle für einen Speicher und Verfahren zum variablen Konfigurieren einer Speichervorrichtung
US6901007B2 (en) * 2001-01-11 2005-05-31 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
US6587372B2 (en) 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
EP1345236B1 (de) * 2002-03-14 2011-05-11 STMicroelectronics Srl Nichtflüchtige Speicheranordnung
KR100626392B1 (ko) * 2005-04-01 2006-09-20 삼성전자주식회사 읽기 속도를 향상시킬 수 있는 플래시 메모리 장치
US9224145B1 (en) 2006-08-30 2015-12-29 Qurio Holdings, Inc. Venue based digital rights using capture device with digital watermarking capability
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP2009086988A (ja) * 2007-09-28 2009-04-23 Toshiba Corp メモリカード
US8838876B2 (en) * 2008-10-13 2014-09-16 Micron Technology, Inc. Translation layer in a solid state storage device
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
CN106502919B (zh) * 2016-10-11 2019-05-31 上海东软载波微电子有限公司 一种Flash闪存的写操作方法及装置
US10976947B2 (en) * 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613151A2 (de) * 1993-02-26 1994-08-31 Kabushiki Kaisha Toshiba Halbleiterspeichersystem mit Flash-EEPROM

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353431A (en) * 1991-04-29 1994-10-04 Intel Corporation Memory address decoder with storage for memory attribute information
US5666526A (en) * 1993-09-02 1997-09-09 Microsoft Corp. Method and system for supporting scrollable, updatable database queries
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5598540A (en) * 1992-09-30 1997-01-28 Texas Instruments Incorporated Memory module including read-write memory and read-only configuration memory accessed only sequentially and computer system using at least one such module
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US6421754B1 (en) * 1994-12-22 2002-07-16 Texas Instruments Incorporated System management mode circuits, systems and methods
US5727057A (en) * 1994-12-27 1998-03-10 Ag Communication Systems Corporation Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services
US5687081A (en) * 1994-12-30 1997-11-11 Crown Equipment Corporation Lift truck control system
US5628028A (en) * 1995-03-02 1997-05-06 Data Translation, Inc. Reprogrammable PCMCIA card and method and apparatus employing same
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5835772A (en) * 1995-12-29 1998-11-10 Intel Corporation Method and apparatus for providing an interface between a system and a peripheral device
US5805796A (en) * 1996-03-27 1998-09-08 Dell Usa, Lp System architecture for implementing modular diagnostics
US5661677A (en) * 1996-05-15 1997-08-26 Micron Electronics, Inc. Circuit and method for on-board programming of PRD Serial EEPROMS
US5761732A (en) * 1996-06-28 1998-06-02 Intel Corporation Interleaving for memory cards
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613151A2 (de) * 1993-02-26 1994-08-31 Kabushiki Kaisha Toshiba Halbleiterspeichersystem mit Flash-EEPROM

Also Published As

Publication number Publication date
AU5001497A (en) 1998-07-31
TW351785B (en) 1999-02-01
KR20000069729A (ko) 2000-11-25
WO1998029801A1 (en) 1998-07-09
KR100297202B1 (ko) 2001-09-29
US6260102B1 (en) 2001-07-10
DE19782214A1 (de) 2000-02-24

Similar Documents

Publication Publication Date Title
DE19782214B4 (de) Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69635962T2 (de) Flash-Speicher-Massenspeichersystem und Verfahren dafür
DE69635663T2 (de) vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM
DE60005563T2 (de) Rechnersysteminitialisierung durch in einem speicher mit sequentiellem zugriff gespeicherten urlade-code
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE69630624T2 (de) EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
KR100899242B1 (ko) 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
US6279069B1 (en) Interface for flash EEPROM memory arrays
DE102019116520A1 (de) Datenspeichersysteme und -verfahren für eine verbesserte datenumlagerung basierend auf lesepegelspannungen, die mit einer fehlerwiederherstellung verbunden sind
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
CN108664418A (zh) 数据储存装置以及其操作方法
DE102008033518B4 (de) Datenverarbeitungsverfahren für eine Solid-State-Disk-Steuereinheit, Solid-State-Disk-Steuereinheit und Datenspeicherelement
DE102010018765A1 (de) Speichervorrichtung und Speicherverfahren
DE10046022A1 (de) Nichtflüchtige Halbleiterspeichervorrichtung mit einer Konstruktion zum Speichern mehrwertiger Daten und Datenablagesystem, das diese nichtflüchtige Halbleiterspeichervorrichtung enthält
DE102009034836A1 (de) Verfahren und Vorrichtung zum Speichern von Daten in einem Festkörperspeicher
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
KR20000070451A (ko) 기억장치 및 액세스방법
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
DE102010006139A1 (de) System und Verfahren zur Finalisierung eines Halbleiterspeichers
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE102008003938A1 (de) Verfahren zum Scramblen von Adressendaten und Speichersystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8180 Miscellaneous part 1

Free format text: DIE VEROEFFENTLICHUNG DER PCT-ANMELDUNG IST AM 24.FEB.2000 VERSEHENTLICH ALS OFFENLEGUNGSSCHRIFT ERFOLGT. EINE VEROEFFENTLICHUNG ALS DE-WO-SCHRIFT ERFOLGT NICHT

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee