-
Die
vorliegende Erfindung bezieht sich auf eine Speicherkarte, ein Speicherkatensystem,
ein Verfahren zum Steuern eines Hosts und ein Verfahren zum Betreiben
einer Speicherkarte.
-
Ein
Flashspeicherbauelement ist ein nichtflüchtiges Speicherbauelement,
welches keine Energie benötigt,
um Informationen in einem Speicherchip zu erhalten. Während Flashspeicherbauelemente langsamer
als dynamische Speicher mit direktem Zugriff (DRAMs) sein können, welche
als ein Hauptspeicher für
einen Personal-Computer (PC) verwendet werden, weisen Flashspeicher
im Vergleich mit Festplattenlaufwerken (HDD) eine relativ hohe Lesegeschwindigkeit
auf und sind gegenüber
Einflüssen
weniger empfindlich, welche durch einen Aufprall verursacht werden.
Mit diesen Eigenschaften sind Flashspeicher als Speicherbauelemente
für batteriebetriebene
Geräte
weit verbreitet. Eine andere Eigenschaft eines Flashspeichers besteht
darin, dass er im Wesentlichen resistent gegenüber ungünstigen Umgebungsbedingungen
ist, wie beispielsweise hohem Druck oder kochendem Wasser.
-
In
Flashspeicherbauelementen können
Daten elektrisch gelöscht
und neu geschrieben werden. Im Gegensatz zu einem elektrisch löschbaren
und programmierbaren Nur-Lese-Speicher (EEPROM) sind Flashspeicherbauelemente
relativ kostengünstig.
Entsprechend werden Flashspeicher primär verwendet, wenn eine hohe
Kapazität
von nichtflüchtigen
Festkörperspeicherbauelementen
erforderlich ist. Flashspeicher werden in Geräten, wie beispielsweise digitalen
Musikwiedergabegeräten,
digitalen Kameras und zellularen Telefonen verwendet. Ein anderes
Beispiel für
ein Gerät,
welches Flashspeicher verwendet, ist ein Universal-Serial-Bus(USB)-Treiber,
welcher zum Speichern von allgemeinen Daten und zum Übertragen
von Daten zwischen Computern weit verbreitet ist.
-
Neuerdings
sind Secure-Digital(SD)-Karten und Multimediakarten (MMC), welche
Flashspeicher umfassen, weit verbreitet. Die MMC ist ein relativ kostengünstiges
Datenspeicher- und Datenkommunikationsmedium. Die MMC wurde entworfen,
um einen breiten Anwendungsbereich abzudecken, wie beispielsweise
intelligente Telefone, Kameras, persönliche digitale Assistenten
(PDAs), digitale Aufnahmegeräte,
MP3-Player und Pager.
Beispiele für
die Eigenschaften der MMC umfassen eine hohe Mobilität und eine
hohe Leistungsfähigkeit
zu einem niedrigen Preis. Diese Eigenschaften umfassen einen niedrigen
Energieverbrauch und eine extensive Datenverarbeitung an einer Speicherkartenschnittstelle.
-
Der
Erfindung liegt das technische Problem zugrunde, eine Speicherkarte
bzw. ein Speicherkartenbauelement, ein Speicherkartensystem, ein
Verfahren zum Steuern eines Hosts und ein Verfahren zum Betreiben
einer Speicherkarte bereitzustellen, welche in der Lage sind, Boot-Daten
in einer Speicherkarte zu speichern und/oder elektronische Geräte freizugeben,
welche eine Speicherkarte aufweisen und unter Verwendung der Speicherkarte
gebootet werden.
-
Die
Erfindung löst
dieses Problem durch Bereitstellung einer Speicherkarte bzw. eines
Speicherkartenbauelements mit den Merkmalen des Patentanspruchs
1, eines Speicherkartensystems mit den Merkmalen des Patentanspruchs
8, eines Verfahrens zum Steuern eines Hosts mit den Merkmalen des
Patentanspruchs 9 und eines Verfahrens zum Betreiben einer Speicherkarte
mit den Merkmalen des Patentanspruchs 12.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben,
deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird, um unnötige
Textwiederholungen zu vermeiden.
-
Beispielhafte
Ausführungsformen
der vorliegenden Erfindung stellen einen Ansatz zum Speichern von
Boot-Daten in einer Speicherkarte in elektronischen Geräten bereit.
-
Zudem
stellen beispielhafte Ausführungsformen
der vorliegenden Erfindung einen Ansatz für einen Zugriff auf eine Speicherkarte
bereit, welche Boot-Daten speichert.
-
In
einigen beispielhaften Ausführungsformen umfasst
eine Speicherkarte einen Flashspeicher, welcher einen Boot-Bereich
zum Speichern von Boot-Daten und einen Benutzerbereich zum Speichern
von Benutzerdaten umfasst, und eine Steuereinheit, welche in Reaktion
auf einen externen Befehl auf den Boot-Bereich oder den Benutzerbereich
zugreift. Der Benutzerbereich kann einen Master-Boot-Record-Bereich
zum Speichern einer Master-Boot-Datei (Master-Boot-File), einen
Partition-Boot-Record-Bereich,
welcher durch die Master-Boot-Datei bestimmt ist und Partition-Boot-Informationen
speichert, und einen File-Allocation-Table-Bereich umfassen, welcher durch die File-Boot-Informationen
bestimmt ist.
-
Bei
einigen beispielhaften Ausführungsformen
kann die Speicherkarte eine eingebaute Speicherkarte sein.
-
Vorteilhafte,
nachfolgend im Detail beschriebene Ausführungsformen der Erfindung
sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
-
1 ein
Blockdiagramm eines Speichersystems gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung,
-
2 eine
Ansicht zur Darstellung der Struktur eines Flashspeichers gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung,
-
3 eine
konzeptuelle Ansicht zur Darstellung eines Betriebsmodus einer Speichersteuereinheit,
wenn auf einen Flashspeicher von einem Host zugegriffen wird,
-
4 ein
Flussdiagramm zur Darstellung einer Steuersequenz, welche es einem
Host erlaubt, einen Boot-Code in einen Boot-Bereich eines Flashspeichers
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zu schreiben,
-
5 ein
Flussdiagramm zur Darstellung einer Steuersequenz, welche es einem
Host erlaubt, einen Boot-Code, welcher in einem Boot-Bereich eines
Flashspeichers gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung gespeichert ist, zu lesen, und
-
6 ein
Flussdiagramm zur Darstellung einer Betriebssequenz für die in 1 dargestellte Speichersteuereinheit
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
1 ist
ein Blockdiagramm eines Speichersystems gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung. Bezugnehmend auf 1 umfasst
ein Speicherbauelement eine Speichersteuereinheit 200 und
einen Flashspeicher 300. Der Flashspeicher 300 arbeitet
unter der Steuerung der Speichersteuereinheit 200. Der
Flashspeicher 300 kann ein nichtflüchtiges Speicherbauelement, wie
beispielsweise ein NAND-Flashspeicherbauelement, ein NOR-Flashspeicherbauelement,
ein Phasenwechselspeicherbauelement mit direktem Zugriff und/oder
ein magnetisches Speicherbauelement mit direktem Zugriff sein.
-
Die
Speichersteuereinheit 200 steuert den Flashspeicher 300 gemäß einer
Anforderung eines Hosts 100. Die Speichersteuereinheit 200 umfasst eine
Hostschnittstelle 210, eine Speicherschnittstelle 220,
eine Steuereinheit 230 und eine Fehlersteuercode(ECC)-Steuereinheit 240.
Die Hostschnittstelle 210 stellt eine Schnittstelle zum
Host 100 bereit und die Speicherschnittstelle 220 stellt
eine Schnittstelle zum Flashspeicher 300 bereit. Die Steuereinheit 230 kann
ein Prozessor zur Steuerung eines Gesamtbetriebs der Speichersteuereinheit 200 sein.
Der Host 100 und die Speichersteuereinheit 200 sind
dazu konfiguriert, über
verschiedene Kommunikationsschnittstellen, wie beispielsweise eine
Peripheral-Component-Interconnect(PCI)-Verbindung oder einen USB,
miteinander zu kommunizieren. Zudem kann die Speichersteuereinheit 200 für einen
Fall, bei dem ein Speicherbauelement, das die Speichersteuereinheit 200 und
den Flashspeicher 300 umfasst, im Host 100 eingebettet
ist, direkt mit dem Host 100 verbunden sein.
-
Die
Speichersteuereinheit 200 und der Flashspeicher 300 sind
dazu konfiguriert, miteinander über
eine allgemein bekannte NAND/NOR-Schnittstelle
zu kommunizieren. Das Speichersystem, welches die Speichersteuereinheit 200 und
den Flashspeicher 300 umfasst, kann eine Speicherkarte,
wie beispielsweise eine Flashspeicherkarte, eine Smart-Card, eine SD-Card
oder eine MMC sein.
-
Die
ECC-Steuereinheit 240 ist dazu konfiguriert, ECC-Daten
für im
Flashspeicher 300 gespeicherte Daten zu erzeugen. Die ECC-Daten
werden zum Detektieren und/oder Korrigieren eines Fehlers verwendet.
Die ECC-Steuereinheit 240 detektiert und korrigiert einen
Fehler in Daten, welche aus dem Flashspeicher 300 gelesen
werden.
-
Der
Flashspeicher 300 in beispielhaften Ausführungsformen
der vorliegenden Erfindung umfasst einen Boot-Bereich zum Speichern
von Boot-Daten und
einen Benutzerbereich zum Speichern von Benutzerdaten. Die Steuereinheit 230 in
beispielhaften Ausführungsformen
der vorliegenden Erfindung greift gemäß einem Befehl, welcher vom
Host 100 eingegeben wird, auf den Boot-Bereich oder den
Benutzerbereich zu.
-
2 ist
eine Ansicht zur Darstellung der Struktur eines Flashspeichers gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
Bezugnehmend
auf 2 umfasst der Flashspeicher 300 einen
Boot-Bereich 310 und
einen Benutzerbereich. Der Benutzerbereich umfasst einen Master-Boot-Record(MBR)-Bereich 320,
einen Partition-Boot-Record(PBR)-Bereich 321,
eine File-Allocation-Table(FAT)-Bereich 322 und einen Datenbereich 323.
-
Wie
aus dem Stand der Technik bekannt ist, ist eine Master-Boot-Datei
bzw. ein Master-Boot-File im nullten Sektor eines Festplattenlaufwerks (HDD) angeordnet.
Analog ist ein im Flashspeicher 300 gespeichertes Master-Boot-File
ab einer logischen Adresse des Flashspeichers 300 gespeichert,
welche mit 0 × 0000
beginnt. Das innerhalb des MBR-Bereichs 320 gespeicherte
Master-Boot-File bestimmt eine logische Startadresse des PBR-Bereichs 321.
Partition-Boot-Daten innerhalb des PBR-Bereichs 321 bestimmen
eine logische Startadresse des FAT-Bereichs 322. Der Datenbereich 323 ohne
den MBR-Bereich 320, den PBR-Bereich 321 und den
FAT-Bereich 322 wird zum Bestimmen von Benutzerdaten verwendet.
-
Der
Flashspeicher 300 gemäß beispielhaften Ausführungsformen
der vorliegenden Erfindung umfasst den Boot-Bereich 310 zum
Speichern eines Boot-Codes sowie den Benutzerbereich. Auf den Boot-Bereich 310 des
Flashspeichers 300 kann durch einen Boot-File-Anforderungsbefehl
vom Host 100 oder durch einen vorbestimmten Zugriffsbefehl zugegriffen
werden. Bei dieser beispielhaften Ausführungsform ist die logische
Startadresse des Boot-Bereichs 310 des Flashspeichers 300 0 × 00000,
welche gleich der logischen Startadresse des MBR-Bereichs 320 ist. Physikalische
Adressen, an denen der Boot-Bereich 310 und der MBR-Bereich 320 aktuell
im Flashspeicher 300 gespeichert sind, sind jedoch voneinander
verschieden. Bei einer beispielhaften Ausführungsform kann die logische
Startadresse des Boot-Bereichs 310 als eine spezielle logische
Adresse benannt werden, welche nicht 0 × 00000 ist.
-
3 ist
eine konzeptuelle Ansicht zur Darstellung eines Betriebsmodus der
Speichersteuereinheit 200, wenn auf den Flashspeicher 300 durch
den Host 100 zugegriffen wird. Wenn die Betriebsenergie zur
Verfügung
gestellt ist und der Host 100 einen Boot-Code von der Speichersteuereinheit 200 anfordert,
wird der Betriebsmodus der Speichersteuereinheit 200 auf
den Boot-Modus gesetzt. Die Speichersteuereinheit 200 liest
in Reaktion auf den Boot-Code vom Host 100 ein Boot-Code-Image,
wel ches im Boot-Bereich 310 des Flashspeichers 300 gespeichert
ist, und überträgt das Boot-Code-Image
an den Host 100.
-
Nachdem
die Boot-Operation des Hosts 100 vollständig ausgeführt ist, wird ein Befehl CMD0
zum Initialisieren des Flashspeichers 300 zur Speichersteuereinheit 200 übertragen
und der Betriebsmodus der Speichersteuereinheit 200 wird
auf einen normalen Modus gesetzt.
-
Die
Speichersteuereinheit 200 greift in Reaktion auf einen
Lese-/Schreibbefehl,
welcher vom Host 100 während
des normalen Modus eingegeben wird, auf den Benutzerbereich des
Flashspeichers 300 zu.
-
Für den Fall,
bei dem der Host 100 einen Zugriff auf den Boot-Bereich 310 des
Flashspeichers 300 benötigt, überträgt der Host 100 einen
Moduswechselbefehl CMD6 an die Speichersteuereinheit 200.
Wenn der Moduswechselbefehl CMD6 empfangen wird, wechselt die Speichersteuereinheit 200 den
Betriebsmodus auf den Boot-Modus und greift dann in Reaktion auf
einen Lese-/Schreibbefehl, welcher vom Host 100 eingegeben
wird, auf den Boot-Bereich 310 zu.
-
Für den Fall,
bei dem der Host 100 beabsichtigt, den Zugriff auf den
Boot-Bereich 310 des Flashspeichers 300 zu beenden, überträgt der Host 100 den
Moduswechselbefehl CMD6 an die Speichersteuereinheit 200.
Die Speichersteuereinheit 200 wechselt den Betriebsmodus
in Reaktion auf den Moduswechselbefehl CMD6 auf den normalen Modus und
greift dann in Reaktion auf einen Lese-/Schreibbefehl, welcher vom
Host 100 eingegeben wird, auf den Benutzerbereich des Flashspeichers 300 zu.
-
Auf
einen im Flashspeicher 300 gespeicherten Boot-Code kann
gemäß dem oben
beschriebenen Schema zugegriffen werden.
-
4 ist
ein Flussdiagramm zur Darstellung einer Steuersequenz, welche es
dem Host 100 erlaubt, einen Boot-Code in den Boot-Bereich 310 des Flashspeichers 300 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zu schreiben.
-
Bezugnehmend
auf 4 überträgt der Host 100 im
Schritt 410 einen Befehl zum Setzen einer Speicherkarte
in einen Transferzustand. Die Speichersteuereinheit 200 führt in Reaktion
auf den Befehl vom Host 100 einen Übergang von einem Bereitschaftszustand
in den Transferzustand aus.
-
Im
Schritt 420 überträgt der Host 100 einen Befehl
zum Setzen der Speichersteuereinheit 200 in den Boot-Modus.
Beispiele für
Befehle zum Setzen des Boot-Modus umfassen beispielsweise einen Boot-Code-Anforderungsbefehl
und einen Moduswechselbefehl CMD6, wie in 3 dargestellt.
Die Speichersteuereinheit 200 wird in Reaktion auf den Befehl
vom Host 100 in den Boot-Modus gesetzt.
-
Der
Host 100 überträgt im Schritt 430 Informationen,
welche eine Blocklänge
eines Boot-Codes, welcher in den Boot-Bereich 310 geschrieben wird,
und die Anzahl bzw. Nummern von Blöcken betreffen, an die Speichersteuereinheit 200.
-
Im
Schritt 440 überträgt der Host 100 einen Schreibbefehl,
einen Boot-Code
und eine Adresse an die Speichersteuereinheit 200, um den
Boot-Code in den
Boot-Bereich 310 zu schreiben. Die Speichersteuereinheit 200 schreibt
den Boot-Code in den Boot-Bereich 310 des Flashspeichers 300 in
Reaktion auf die Informationen, welche die Blocklänge des Boot-Codes,
welcher vom Host 100 empfangen wird, die Blockanzahl bzw.
Blocknummer, den Schreibbefehl, den Boot-Code und die Adresse betreffen.
-
Wenn
die Speichersteuereinheit 200 das Schreiben des Boot-Codes
in den Boot-Bereich 310 des Flashspeichers 300 abgeschlossen
hat, überträgt der Host 100 im
Schritt 450 einen Befehl zum Setzen des Betriebsmodus der
Speichersteuereinheit 200 auf den normalen Modus an die
Speichersteuereinheit 200. Durch den obigen Prozess kann der
Host 100 den Boot-Code in den Boot-Bereich 310 des
Flashspeichers 300 schreiben.
-
5 ist
ein Flussdiagramm zur Darstellung einer Steuersequenz, welche es
dem Host 100 erlaubt, einen Boot-Code, welcher im Boot-Bereich 310 des
Flashspeichers 300 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung gespeichert ist, zu lesen.
-
Bezugnehmend
auf 5 überträgt der Host 100 im
Schritt 510 einen Befehl zum Setzen einer Speicherkarte
in einen Transferzustand. Die Speichersteuereinheit 200 führt in Reaktion
auf den Befehl vom Host 100 einen Übergang von einem Bereitschaftszustand
in den Transferzustand aus.
-
Im
Schritt 520 überträgt der Host 100 einen Befehl
zum Setzen der Speichersteuereinheit 200 in den Boot-Modus.
Beispiele für
Befehle zum Setzen des Boot-Modus umfassen einen Boot-Code-Anforderungsbefehl
und einen Moduswechselbefehl CMD6, wie in 3 dargestellt.
Die Speichersteuereinheit 200 wird in Reaktion auf den
Befehl vom Host 100 in den Boot-Modus gesetzt.
-
Der
Host 100 überträgt im Schritt 530 Informationen,
welche die Blocklänge
eines Boot-Codes, welcher aus dem Boot-Bereich 310 gelesen
wird, und die Anzahl von Blöcken
betreffen, an die Speichersteuereinheit 200.
-
Im
Schritt 540 überträgt der Host 100 einen Lesebefehl,
einen Boot-Code
und eine Adresse an die Speichersteuereinheit 200, um den
Boot-Code aus dem
Boot-Bereich 310 zu lesen. Die Speichersteuereinheit 200 liest
den Boot-Code aus dem Boot-Bereich 310 des Flashspeichers 300 in
Reaktion auf die Informationen, welche die Blocklänge des Boot-Codes, welcher vom
Host 100 empfangen wird, die Blockanzahl, den Lesebefehl
und die Adresse betreffen.
-
Wenn
die Speichersteuereinheit 200 das Lesen des Boot-Codes
aus dem Boot-Bereich 310 des Flashspeichers abgeschlossen
hat, überträgt der Host 100 im
Schritt 550 einen Befehl zum Setzen des Betriebsmodus der
Speichersteuereinheit 200 auf den normalen Modus an die
Speichersteuereinheit 200. Durch den obigen Prozess kann
der Host 100 den Boot-Code aus dem Boot-Bereich 310 des Flashspeichers 300 lesen.
-
Verfahren,
welche es dem Host 100 erlauben, einen Boot-Code aus dem
Boot-Bereich 310 des Flashspeichers 300 zu lesen,
sind nicht auf das in 5 dargestellte Verfahren begrenzt.
So kann beispielsweise ein vollständiger Boot-Code des Boot-Bereichs 310 in
Reaktion auf eine Boot-Code-Anforderung vom Host 100 an
den Host 100 übertragen
werden, wie in 3 dargestellt.
-
6 ist
ein Flussdiagramm zur Darstellung einer Betriebssequenz für die in 1 dargestellte Speichersteuereinheit 200 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
Bezugnehmend
auf 6 empfängt
die Speichersteuereinheit 200 im Schritt 610 einen
Lese-/Schreibbefehl vom Host 100. Wenn der Betriebsmodus
die Speichersteuereinheit 200 auf den normalen Modus gesetzt
ist, d. h. die Antwort der Abfrage im Schritt 620 ist „Ja", konvertiert die
Speichersteuereinheit 200 im Schritt 630 eine
Adresse, welche ge meinsam mit dem Lese-/Schreibbefehl eingegeben wird,
in eine logische Adresse des Benutzerbereichs. Wenn der Betriebsmodus
der Speichersteuereinheit 200 auf den Boot-Modus gesetzt
ist, d. h. die Antwort der Abfrage im Schritt 620 ist „Nein", konvertiert die Speichersteuereinheit 200 im
Schritt 640 eine Adresse, welche gemeinsam mit dem Lese-/Schreibbefehl eingegeben
wird, in eine logische Adresse des Boot-Bereichs 310.
-
Die
Speichersteuereinheit 200 schreibt/liest im Schritt 650 in
Reaktion auf den Lese-/Schreibbefehl, welcher vom Host 100 eingegeben
wird, Daten in eine/aus einer Speicherstelle des Flashspeichers 300,
welche durch die konvertierte logische Adresse bestimmt sind.
-
Die
Speichersteuereinheit 200 kann gemäß dem in 6 dargestellten
Verfahren während
des normalen Modus Daten in Reaktion auf den Lese-/Schreibbefehl,
welcher vom Host 100 eingegeben wird, in den/aus dem Benutzerbereich
des Flashspeichers 300 schreiben/lesen. Zudem kann die Speichersteuereinheit 200 während des
Boot-Modus Daten in Reaktion auf den Lese-/Schreibbefehl, welcher
vom Host 100 eingegeben wird, in den/aus dem Boot-Bereich
des Flashspeichers 300 schreiben/lesen.
-
Gemäß beispielhaften
Ausführungsformen der
vorliegenden Erfindung sind Boot-Daten in einer Speicherkarte in
elektronischen Geräten
gespeichert. Zudem kann auf die Boot-Daten/Benutzerdaten unter der
Steuerung der Speichersteuereinheit zugegriffen werden, wenn der
Host einen Zugriff auf die in der Speicherkarte gespeicherten Boot-Daten/Benutzerdaten
anfordert. Daher können
die elektronischen Geräte
unter Verwendung der eingebauten Speicherkarte gebootet werden.