-
Die
vorliegende Erfindung bezieht sich auf ein Halbleiterplattensteuerbauelement
(semiconductor solid state disk control device) und auf ein Verfahren
zum Bereitstellen eines Taktsignals für ein Halbleiterplattensteuerbauelement.
-
Magnetspeicherplatten
oder Festplattenspeicher werden in vielen elektronischen Geräten traditionell
als Datenspeicherbauelemente verwendet. Fortschritte in der Halbleitertechnologie
haben jedoch in Bereichen wie Computersystemen und tragbaren Geräten zu einem
Anstieg der Verwendung von Halbleiterplatten (semiconductor solid
state disk – SSD)
geführt,
die Flashspeicher als Speicherbauelemente verwenden. Daher scheint
es einen Trend zur Verwendung von SSDs als Speicherbauelemente anstelle
von Magnetplatten zu geben. Trotz Eigenschaften wie beispielsweise
geringer Speicherkapazität
und hohem Preis weisen die SSDs einige andere Eigenschaften auf,
die sie als Speicherbauelemente attraktiver als herkömmliche
Festplatten (HDD) machen.
-
Die
Eigenschaften, die SSDs zu bevorzugten Speicherbauelementen machen,
sind beispielsweise eine hohe Zugriffsrate, eine hohe Integrationsdichte und
Stabilität
gegen externe Einflüsse.
Des Weiteren führen
Fortschritte bei den Herstellungstechnologien für SSDs wahrscheinlich zu Reduzierun gen
der Produktionskosten der SSDs und zudem zur Erhöhung der Speicherkapazitäten der
SSDs. Diese Entwicklungen führen
wahrscheinlich dazu, dass SSDs HDDs als verwendete Speicherbauelemente
ablösen.
-
Wenn
die SSD in Computersystemen und tragbaren Geräten als Speicherbauelement
oder Speichermedium verwendet wird, wird allgemein ein Steuerbauelement
verwendet, um Datenübertragungen
zwischen einem Host und einem Flashspeicher abzuwickeln. Herkömmlicherweise
haben Computersysteme ein Advanced-Technology-Attachment-Protokoll
(ATA-Protokoll) von IBM Inc. und eine zum ATA-Protokoll kompatible
Schnittstelle verwendet, um Daten von und zu einem Speicherbauelement
mit einer großen
Kapazität
zu übertragen,
z.B. zu einer HDD. Daraus folgt, dass wenn die Computersysteme SSDs
als ausgewählte
Speicherbauelemente mit großer
Kapazität übernehmen,
SSDs eine Schnittstelle aufweisen sollten, die in der Lage ist,
Daten von und zu dem Flashspeicher auf eine Weise zu übertragen,
die mit dem ATA-Protokoll kompatibel ist. Nachfolgend wird ein Bauelement
zum Steuern einer Gesamtfunktion im Hinblick auf die Datenübertragung von
und zu einer SSD beschrieben, das als Halbleiterplattensteuerbauelement
oder SSD-Steuerschaltkreis bezeichnet wird.
-
1 ist ein schematisches
Blockdiagramm, das einen herkömmlichen
SSD-Steuerschaltkreis 10 darstellt. Der SSD-Steuerschaltkreis 10 umfasst
eine zentrale Prozessoreinheit (CPU) 11, eine ATA-Schnittstelle 12,
einen SRAM-Cachespeicher 13, eine Flash-Schnittstelle 14,
einen Phasenregelschaltkreis (PLL) 15 und einen Demultiplizierer
oder Teilerschaltkreis 16. Unter Bezugnahme auf 1 kann der herkömmliche
SSD-Steuerschaltkreis 10 Daten
aus den Flashspeichern 20 bis 23 lesen oder in
die Flashspeicher 20 bis 23 schreiben. Diese Lese- und
Schreibvorgänge
des SSD-Steuerschaltkreises 10 können gesteuert von der CPU 11 ausgeführt werden.
Die CPU 11 steuert den SSD-Steuerschaltkreis 10 insbesondere
in Reaktion auf Befehle eines nicht dargestellten Hosts. Das bedeutet,
dass die CPU 11 Befehle des Hosts empfängt und dann basierend auf den empfangenen
Befehlen bestimmt, ob Daten des Hosts in einem Flashspeicher gespeichert
werden sollen oder ob Daten des Flashspeichers ausgelesen werden
sollen, d.h. zum Host übertragen
werden sollen.
-
Die
ATA-Schnittstelle 12 tauscht gesteuert von der CPU 11 Daten
mit dem Host aus. Insbesondere holt die ATA-Schnittstelle 12 die
Befehle und Adressen vom Host und überträgt sie an die CPU 11. Des
Weiteren werden Daten, die über
die ATA-Schnittstelle 12 zum oder vom Host übertragen werden, über den
SRAM-Cachespeicher 13 anstatt über einen CPU-Bus unter der
Steuerung der CPU 11 übertragen.
-
Der
SRAM-Cachespeicher 13 speichert temporär die zum Host oder zu den
Flashspeichern 20 bis 23 zu übertragenden Daten. Zusätzlich wird
der SRAM-Cachespeicher 13 auch zum Speichern von Programmen
benutzt, die durch die CPU 11 ausgeführt werden. Auf dieser Seite
kann der SRAM-Cachespeicher 13 ein
Pufferspeicher oder irgendeine andere Speicherart sein. Die Flash-Schnittstelle 14 tauscht
Daten mit den Flashspeichern 20 bis 23 aus. Die
Flash-Schnittstelle 14 kann derart konfiguriert werden,
dass sie mit verschiedenen Flashspeichertypen zusammenwirkt. Die
Flash-Schnittstelle 14 kann beispielsweise
konfiguriert werden, um mit einem NAND-Flashspeicher, einem One-NAND-Flashspeicher,
einem Mehrfachpegelflashspeicher usw. zusammenzuwirken.
-
Die
Flash-Schnittstelle 14 ist im Wesentlichen dazu konfiguriert,
basierend auf einem Taktsignalsystem zu arbeiten. Für einen
solchen Fall umfasst der SSD-Steuerschaltkreis 10 ein Bauelement, das
der Flash-Schnittstelle 14 ein Taktsignal zur Verfügung stellt.
Wie aus 1 ersichtlich
ist, umfasst der SSD-Steuerschaltkreis 10 einen Phasenregelschaltkreis 15,
welcher der Flash-Schnittstelle 14 ein Treibertaktsignal
mit einer Frequenz f1 zur Verfügung stellt.
Basierend auf dieser Treibertaktfrequenz f1 erzeugt die Flash-Schnittstelle 14 während Lese-
und Schreibvorgängen
der Flashspeicher 20 bis 23 ein Schreibfreigabesignal
WE und ein Lesefreigabesignal RE. Die Flash-Schnittstelle 14 demultipliziert
oder teilt beispielsweise das Treibertaktsignal mit der Frequenz
f1 und erzeugt das Schreibfreigabesignal nWE und das Lesefreigabesignal
nRE.
-
Der
Phasenregelschaltkreis 15 ist ein Taktgenerator, der den
Komponenten des SSD-Steuerschaltkreises 10 ein Treibertaktsignal
zur Verfügung stellt.
Im Wesentlichen erzeugt der Phasenregelschaltkreis 15 ein
Taktsignal mit einer Frequenz, die auf dem Datenübertragungsprotokoll des Hosts
basiert, d.h. auf dem ATA-Protokoll. Dieses Treibertaktsignal mit
der Frequenz f1, das vom Phasenregelschaltkreis 15 erzeugt
wird, wird an die ATA-Schnittstelle 12,
den SRAM-Cachespeicher 13, die Flash-Schnittstelle 14,
den Teilerschaltkreis 16 und die CPU 11 angelegt.
Während
der Phasenregelschaltkreis 15 ein Taktsignal mit der Frequenz
f1 erzeugt, ist für
die CPU 11 ein Treibertaktsignal mit einer Frequenz erforderlich,
die niedriger als eine Taktfrequenz eines Datenübertragungsprotokolls ist.
Daher empfängt
die CPU 11 ein geteiltes Treibertaktsignal vom Teilerschaltkreis 16.
-
Der
Teilerschaltkreis 16 ist ein Frequenzkonvertierungsschaltkreis,
welcher der CPU 11 ihr Treibertaktsignal zur Verfügung stellt.
Die CPU 11 verwendet das Treibertaktsignal vom Teilerschaltkreis 16,
um logische Berechnungen auszuführen.
In anderen Worten, der Teilerschaltkreis 16 erzeugt eine Taktfrequenz
fc durch Teilen des Taktsignals mit der Frequenz f1, das vom Phasenregelschaltkreis 15 ausgegeben
wird, und überträgt das Taktsignal
mit der Frequenz fc an die CPU 11. Die Frequenz fc ist niedriger
als die Frequenz f1, die zur Datenübertragung zwischen der Flash-Schnittstelle 14 und
den Flashspeichern 20 bis 23 verwendet wird.
-
Wie
oben ausgeführt,
verwendet der herkömmliche
SSD-Steuerschaltkreis nur ein Taktsignal mit der Frequenz f1, das
vom internen Phasenregelschaltkreis erzeugt wird. Diese Taktfrequenz
kann jedoch durch einen Teilerschaltkreis geteilt werden. Daher
können
die ATA-Schnittstelle 12 und die Flash-Schnittstelle 14 Treibertaktsignale
verwenden, die in den Teilerbereich der Frequenz f1 fallen, d.h.
in einen geteilten Satz von Frequenzen. Dieses System weist verschiedene
Unzulänglichkeiten
auf. So bedeutet das Vorhandensein von nur einem Taktgenerator beispielsweise,
dass die Periodenzeiten des Schreibfreigabesignals nWE und des Lesefreigabesignals
nRE innerhalb des Teilerbereichs der Frequenz f1 begrenzt sind,
die durch den Phasenregelschaltkreis 15 erzeugt wird. Es
kann jedoch für
das SSD-System schwierig
sein, effizient zu arbeiten, wenn die Periodenzeiten des Schreibfreigabesignals nWE
und des Lesefreigabesignals nRE des Flashspeichers innerhalb des
Teilerbereichs der Frequenz f1 liegen, die nur von einem Phasenregelschaltkreis 15 erzeugt
wird. Dies ist darin begründet,
dass die Zugriffszeiten für
den SSD-Steuerschaltkreis und die Datenübertragungsraten zum und vom
SSD-Steuerschaltkreis durch die Anzahl von verfügbaren geteilten Frequenzen
begrenzt sind.
-
Der
Erfindung liegt das technische Problem zugrunde, ein Halbleiterplattensteuerbauelement und
ein Verfahren zum Bereitstellen eines Taktsignals für ein Halbleiterplattensteuerbauelement
bereitzustellen, die in der Lage sind, eine geeignete Frequenz im
SSD-Steuerschaltkreis zu erzeugen, um eine Zugriffszeit auf den
SSD-Steuerschaltkreis zu reduzieren und eine Datenübertragungsrate
zu erhöhen.
-
Die
Erfindung löst
dieses Problem durch Bereitstellung eines Halbleiterplattensteuerbauelements
mit den Merkmalen des Patentanspruchs 1, 11 oder 19 und eines Verfahrens
zum Bereitstellen eines Taktsignals für ein Halbleiterplattensteuerbauelement
mit den Merkmalen des Patentanspruchs 24.
-
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.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie das zu deren besserem Verständnis oben erläuterte,
herkömmliche
Ausführungsbeispiel
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Blockdiagramm eines herkömmlichen
Halbleiterplattensteuerbauelements,
-
2 ein
Blockdiagramm eines Halbleiterplattensteuerbauelements in Übereinstimmung
mit einem erfindungsgemäßen Ausführungsbeispiel,
-
3 ein
Blockdiagramm eines Halbleiterplattensteuerbauelements in Übereinstimmung
mit einem alternativen erfindungsgemäßen Ausführungsbeispiel und
-
4(A) und 4(B) Zeitablaufdiagramme
von Lese- und Schreibvorgänge
eines SSD-Steuerschaltkreises.
-
2 ist
ein Blockdiagramm, das ein Halbleiterplattensteuerbauelement (einen
SSD-Steuerschaltkreis) 100 in Übereinstimmung mit einem erfindungsgemäßen Ausführungsbeispiel
darstellt. Der SSD-Steuerschaltkreis 100 umfasst eine zentrale Prozessoreinheit
(CPU) 110, eine ATA-Schnittstelle 120, einen SRAM-Cachespeicher 130,
einen First-In-First-Out-Puffer (FIFO) 140, eine Flash-Schnittstelle 150,
einen ersten Phasenregelschaltkreis (PLL1) 160, einen Teilerschaltkreis 170, ein
Register 180 und einen zweiten Phasenregelschaltkreis (PLL2) 190.
Der PLL2 190 im SSD-Steuerschaltkreis 100 ist
ein zusätzlicher
Taktgenerator, der dazu konfiguriert ist, der Flash-Schnittstelle 150 ein
Treibertaktsignal zur Verfügung
zu stellen, um eine Datenübertragungsrate
zu und von Flashspeichern 20 bis 23 zu optimieren.
-
In
einem Ausführungsbeispiel
empfängt
die CPU 110 Betriebsbefehle und Adressen von einem externen
Host, um die Datenübertragung
zu und vom SSD-Steuerschaltkreis 100 zu steuern. Die externen Betriebsbefehle
und die Adressen werden insbesondere über die ATA-Schnittstelle 120 und
einen CPU-Bus zur CPU 110 übertragen. Des Weiteren überträgt die CPU 110 die
Betriebsbefehle und die Adressen an die Flash-Schnittstelle 150,
um auf die Flashspeicher 20 bis 23 zuzugreifen.
-
Die
CPU 110 kann Steuersignale über den CPU-Bus übertragen.
Dem Fachmann ist jedoch bekannt, dass ein Steuerpfad der CPU 110 nicht
auf den CPU-Bus begrenzt sein muss. Zusätzlich bestimmt die CPU 110 durch
Lesen einer Bauelement-ID während
des Bootens des SSD-Steuerschaltkreises 100,
d.h. durch Ausführen
eines ID-Lesevorgangs, die Typen der im SSD-Steuerschaltkreis 100 installierten
Flashspeicher 20 bis 23. Das bedeutet, dass die
CPU 110 einen Bauelementtyp während des ID-Lesevorgangs detektieren
kann. Basierend auf dem während
des ID-Lesevorgangs
detektierten Flashspeichertyps schreibt die CPU 110 Daten
in das Register 180, um eine optimierte Treiberfrequenz
für die
Flashspeicher 20 bis 23 zu setzen bzw. einzustellen.
Die Funktionsweise des Registers 180 wird später detaillierter
beschrieben.
-
Die
ATA-Schnittstelle 120 tauscht gesteuert von der CPU 110 Daten
mit dem Host aus. Insbesondere holt die ATA-Schnittstelle 120 die
Befehle und Adressen vom Host und überträgt sie über den CPU-Bus an die CPU 110.
Des Weiteren kann die ATA-Schnittstelle 120 zusätzliche
interne Register zum Zwischenspeichern der vom Host übertragenen Befehle
und Adressen umfassen.
-
Der
SRAM-Cachespeicher 130 ist als Pufferspeicher zum temporären Speichern
von Daten konfiguriert, die zwischen dem Host und den Flashspeichern 20 bis 23 übertragen
werden. Die Flashspeicher 20 bis 23 weisen insbesondere
relativ langsame Geschwindigkeiten für Lese- und Schreibvorgänge auf.
Insoweit wird der SRAM-Cachespeicher 130, der mit höheren Geschwindigkeiten
arbeiten kann, als Puffer für
eine schnelle Datenübertra gung
zwischen den Flashspeichern 20 bis 23 und dem
Host verwendet. Die Speicherkapazität des SRAM-Cachespeichers 130 kann
entsprechend den Typen der Flashspeicher 20 bis 23 festgelegt
werden.
-
Zusätzlich zum
Speichern von Daten, die zwischen den Flashspeichern 20 bis 23 übertragen werden,
kann der SRAM-Cachespeicher 130 auch zum Speichern von
Programmen verwendet werden, die von der CPU 110 ausgeführt werden.
In dem in 2 dargestellten Ausführungsbeispiel
werden die über
die ATA-Schnittstelle 120 eingegebenen oder ausgegebenen
Daten des Host nicht über
den CPU-Bus zu den Flashspeichern 20 bis 23 übertragen,
sondern über
den SRAM-Cachespeicher 130, der von der CPU 110 gesteuert
wird.
-
Der
FIFO 140 ist dazu konfiguriert, zwischen Datentransferraten
von Bauelementen zu vermitteln, die von unterschiedlichen Taktfrequenzen
getrieben werden. Bei einem Ausführungsbeispiel
ist der FIFO 140 zwischen dem SRAM-Cachespeicher 130 und der
Flash-Schnittstelle 150 eingeschleift. Dies ist dadurch
begründet,
dass die Flash-Schnittstelle 150 relativ langsamer als
der SRAM-Cachespeicher 130 ist, soweit Dateneingabe-/Datenausgaberaten
betroffen sind. Um eine Datenübertragungsrate
zwischen zwei Bauelementen zu vermitteln, die verschiedene Übertragungsgeschwindigkeiten
aufweisen, wird der FIFO 140 dazwischen eingeschleift,
um als Warteschlange während
des Datenübertragungsvorgangs zu
wirken. Somit bildet der FIFO-Puffer 140 einen Datenübertragungspfad
zwischen dem SRAM-Cachespeicher 130 und der Flash-Schnittstelle 150.
-
Die
Flash-Schnittstelle 150 sendet Befehle und Adressen von
der CPU 110 an die Flashspeicher 20 bis 23.
Wie aus 2 ersichtlich ist, schreibt
die Flash-Schnittstelle 150 unter Verwendung von Steuersignalen
CE, CLE, ALE, WE, RE usw. Daten in die Flashspeicher 20 bis 23 oder
liest Daten aus den Flashspeichern 20 bis 23 aus.
Insbesondere empfängt
die Flash-Schnittstelle 150 ein
Taktsignal mit der Frequenz f2, um optimierte Perio denzeiten tWC und
tRC der Schreib- und Lesefreigabesignale nWE und nRE zu setzen.
Des Weiteren gibt die Flash-Schnittstelle 150 das Schreibfreigabesignal nWE
und das Lesefreigabesignal nRE an die Flashspeicher 20 bis 23 aus,
um Daten mit einer Rate zu übertragen,
die mit einer Rate korrespondiert, mit der die Signale nWE und nRE
arbeiten.
-
Bei
einem Ausführungsbeispiel
ist der PLL1 160 ein Taktgenerator, der ein Taktsignal
mit einer Frequenz f1 entsprechend dem ATA-Protokoll ausgibt. Wie
dem Fachmann bekannt ist, ist das ATA-Protokoll ein externer Datenübertragungsstandard.
Insbesondere wird das vom ersten PLL1 160 erzeugte Taktsignal
mit der Frequenz f1 an alle im SSD-Steuerschaltkreis 100 enthaltenen
Bauelemente außer
an die Flash-Schnittstelle 150 angelegt.
-
Der
Teilerschaltkreis 170 stellt der CPU 110 ein Treibertaktsignal
zur Verfügung.
Das vom Teilerschaltkreis 170 der CPU 110 zur
Verfügung
gestellte Treibersignal weist eine andere Frequenz auf als das von
den anderen Bauelementen, wie der ATA-Schnittstelle 120 und
dem SRAM-Cachespeicher 130, im SSD-Steuerschaltkreis 100 verwendete Signal.
Im Wesentlichen ist eine in der CPU 110 verwendete Frequenz
fc des Treibertaktsignals niedriger als eine Frequenz f1 eines Taktsignals,
das für
Datenübertragungsvorgänge verwendet
wird. Bei einem Ausführungsbeispiel
wird die Frequenz fc durch Teilen der Frequenz f1 erzeugt. Wenn
beispielsweise ein ATA66-Standard
als Protokoll für
eine externe Datenübertragung
verwendet wird, erzeugt der erste PLL1 160 ein Taktsignal
mit 66MHz. Des Weiteren empfängt
der Teilerschaltkreis 170 das Taktsignal mit 66MHz und
erzeugt ein Taktsignal mit 33MHz = f1/2, das der CPU als Treibertaktsignal
zur Verfügung
gestellt wird.
-
Das
Register 180 kann Informationen speichern, die mit der
Frequenz des Taktsignals assoziiert sind, das vom zweiten PLL2 190 ausgegeben wird.
Diese gespeicherten zum Erzeugen einer speziellen Frequenz verwendeten
Informationen werden allgemein als „Verriegelungsdaten" bezeichnet. Die Verriegelungsdaten
des Registers 180 definieren eine Ausgabefrequenz des zweiten
PLL2 190. Insbesondere kann ein Standard- oder Defaultwert
der Verriegelungsdaten im Register 180 gesetzt werden, der
bewirkt, dass der zweite PLL die Frequenz f1 erzeugt. Der Wert der
Verriegelungsdaten kann jedoch in vorteilhafter Weise optimiert
werden, um die Frequenz f2 zu erzeugen. Diese Optimierung kann unter Verwendung
von Informationen aus verschiedenen Quellen auftreten. Die Informationen
können
beispielsweise von einem externen Befehl oder Steuersignal oder
von einer Komponente innerhalb des SSD-Steuerschaltkreises 100 erhalten
werden, wie beispielsweise von der CPU 110.
-
Es
kann viele Umstände
geben, in denen ein Standardwert für die Verriegelungsdaten ungeeignet ist.
Unter diesen Umständen
ist der zweite PLL2 190 dazu konfiguriert, unter Verwendung
von Verriegelungsdaten zu arbeiten, die keinen Standardwert aufweisen.
Wenn beispielsweise die in der Flash-Schnittstelle 150 verwendete
Taktfrequenz als Ergebnis einer gelesenen ID nicht im Teilerbereich der
Frequenz f1, d.h. dem Standardwert, enthalten ist, lädt die CPU 110 die
Verriegelungsdaten zum Erzeugen der optimierten Frequenz f2 in das
Register 180. Andererseits können während eines Datenübertragungsvorgangs
der Flash-Schnittstelle 150 die Verriegelungsdaten zum
Erzeugen der optimierten Frequenz in einem anderen nichtflüchtigen
Speicher oder einem anderen Register gespeichert werden. Zusätzlich können die
Verriegelungsdaten für
die optimierte Frequenz in einer Firmware enthalten sein, welche
die CPU 110 treibt. In diesem Fall variiert die optimierte
Frequenz entsprechend den Typen von Flashspeichern 20 bis 23,
die mit dem SSD-Steuerschaltkreis 100 zusammenwirken. Das
bedeutet, dass die CPU 110 die IDs der Flashspeicher 20 bis 23 während eines
Bootvorgangs lesen kann und dann die Verriegelungsdaten für die optimierte
zur ID passende Frequenz in das Register 180 oder einen anderen
nichtflüchtigen
Speicher lädt.
-
Der
zweite PLL2 190 empfängt
die Verriegelungsdaten für
die optimierte Frequenz und erzeugt ein Taktsignal mit einem Teilerbereich,
der sich von dem Taktsignal unterscheidet, das vom ersten PLL1 160 erzeugt
wird. Wenn beispielsweise die vom ersten PLL1 160 ausgegebene
Frequenz f1 66MHz ist, entspricht der zugehörige Teilerbereich einer Kombination
von Frequenzen, die durch Teilen der Frequenz f1 mit einer Intergerzahl
bzw. ganzen Zahl erzeugt werden. Daher umfasst der Teilerbereich
der Frequenz f1 in diesem Beispiel 33MHz, 16,5MHz, 8,25MHz usw.
Wenn die für
die Datenübertragung
erforderliche optimierte Frequenz f2 jedoch nicht im Teilerbereich
der Frequenz f1 liegt, kann die CPU 110 die Verriegelungsdaten
für die
optimierte Frequenz f2 im Register 180 speichern. Diese
Verriegelungsdaten können
in vorteilhafter Weise verwendet dazu werden, zu bewirken, dass
der zweite PLL2 190 ein Taktsignal mit der optimierten
Frequenz f2 erzeugt, die für
eine Datenübertragung
mit den Flashspeichern 20 bis 23 erforderlich
ist.
-
Es
versteht sich, dass beliebige andere Signalerzeugungsbauelemente
anstelle des zweiten PLL2 190 verwendet werden können. Beispielsweise kann
ein Oszillatorschaltkreis anstelle des zweiten PLL2 190 verwendet
werden. Insbesondere kann, wenn im SSD-Steuerschaltkreis 100 ein
Oszillatorschaltkreis anstelle des zweiten PLL2 190 verwendet wird,
ein anderer Datentyp im Register 180 gespeichert werden,
um eine Erzeugung eines Taktsignals zu unterstützen, das eine optimierte Frequenz
f2 aufweist.
-
Unter
der Annahme, dass der zweite PLL2 190 verwendet wird, um
das zweite Taktsignal zu erzeugen, umfassen die im Register 180 gespeicherten Verriegelungsdaten
im Wesentlichen Informationen, die mit einem Nenner eines nicht
dargestellten internen Teilers im zweiten PLL2 190 assoziiert
sind. Der Nenner des Teilers führt
eine Frequenz zurück,
die vom zweiten PLL2 190 ausgegeben wird, um die Frequenz
f2 festzulegen, welche die Flash-Schnittstelle 150 treibt.
Wie oben ausgeführt
ist, bestätigt
die CPU 110 die optimierten Verriegelungsdaten durch Lesen von
IDs der vorhande nen Flashspeicher 20 bis 23, d.h.
der gelesenen ID. Dann kann die CPU 110 die optimierten
Verriegelungsdaten in das Register 180 laden. Die geladenen
optimierten Verriegelungsdaten werden zum zweiten PLL2 190 übertragen,
um das Treibertaktsignal für
die Flash-Schnittstelle 150 zu erzeugen. Zusätzlich kann
die CPU 110 in Reaktion auf externe Befehle und Steuersignale
auch die im Register 180 gespeicherten Verriegelungsdaten
aktualisieren.
-
Der
zweite PLL2 190 erzeugt in Reaktion auf die vom Register 180 ausgegebenen
Verriegelungsdaten das Treibertaktsignal mit der optimierten Frequenz
f2. Wie oben ausgeführt
ist, wird das Treibertaktsignal mit der optimierten Frequenz f2
zur Flash-Schnittstelle 150 übertragen. Daher kann die Datenübertragung
zwischen der Flash-Schnittstelle 150 und den Flashspeichern 20 bis 23 passend
ausgeführt
werden.
-
Es
sei angemerkt, dass der zweite PLL2 190 das Treibertaktsignal
wie im herkömmlichen
SSD mit der Frequenz f1 erzeugt, wenn die Verriegelungsdaten im
Register 180 auf einen Standardwert gesetzt sind. Wenn
die im Register 180 gesetzten Verriegelungsdaten jedoch
auf den optimierten Wert verändert
werden, gibt der zweite PLL2 190 in vorteilhafter Weise
ein Taktsignal mit der Frequenz f2 aus, das der Flash-Schnittstelle 150 eine
optimierte Datenübertragungsrate
ermöglicht.
Die Flash-Schnittstelle 150 empfängt das optimierte Taktsignal
mit der Frequenz f2 und erzeugt das Schreibfreigabesignal nWE und das
Lesefreigabesignal nRE, um Daten mit den Flashspeichern 20 bis 23 auszutauschen.
-
In
einem Ausführungsbeispiel
umfasst der SSD-Steuerschaltkreis 100 zwei Treibersignale
mit zwei verschiedenen Frequenzen f1 und f2. Der erste PLL1 160 gibt
das Treibertaktsignal mit der Frequenz f1 an die ATA-Schnittstelle 120 und
den SRAM-Cachespeicher 130 aus. Das Treibertaktsignal mit
der Frequenz f1 entspricht der Frequenz des Hosts. In vorteilhafter
Weise kann die zweite PLL2 190 der Flash-Schnittstelle 150 ein
Treiber taktsignal mit einer Frequenz f2 zur Verfügung stellen, so dass die Flash-Schnittstelle 150 Daten
mit einer optimierten Datenübertragungsrate
zu bzw. von den Flashspeichern 20 bis 23 übertragen
kann. Zudem wird ein erster First-In-First-Out-Puffer (FIFO) 140 zwischen
dem SRAM-Cachespeicher 130 und der Flash-Schnittstelle 150 eingeschleift.
Der FIFO 140 vermittelt insbesondere die Datenübertragung
zwischen dem SRAM-Cachespeicher 130 und der Flash-Schnittstelle 150,
da diese verschiedene Betriebsfrequenzen aufweisen. Da der zweite
PLL2 190 ein Signal bereitstellt, das eine gewünschte Frequenz
aufweist, sind die Periodenzeiten der den Flashspeichern 20 bis 23 zur
Verfügung
gestellten Signale nWE und nRE wie gewünscht eingestellt. Dadurch
können
die Flashspeicher 20 bis 23 mit der günstigsten
Rate arbeiten.
-
3 ist
ein Blockdiagramm, das ein anderes Ausführungsbeispiel der Erfindung
zeigt. Die gleichen Bezugszeichen wie in 2 bezeichnen
die gleichen Komponenten. Unter Bezugnahme auf 3 empfängt der
SSD-Steuerschaltkreis 100 ein Treibertaktsignal
für die
Flash-Schnittstelle 150 von einem externen Oszillator 192.
Zusätzlich
zum Register 180 umfasst der SSD-Steuerschaltkreis 100 einen
Multiplexer 191. In vorteilhafter Weise ändert der SSD-Steuerschaltkreis 100 gemäß 3 eine
Default- bzw. Standardfrequenz des Treibertaktsignals, das der Flash-Schnittstelle
zur Verfügung
gestellt wird, in eine optimierte Frequenz. In einem Ausführungsbeispiel,
wenn das Register 180 durch die CPU 110 auf einen
Standardwert, d.h. auf Standardverriegelungsdaten, gesetzt wird,
empfängt
die Flash-Schnittstelle 150 ein
Treibertaktsignal, das die gleiche Frequenz wie eine Ausgabe des
ersten PLL1 160 aufweist. Wenn das Register 180 jedoch
auf Verriegelungsdaten zum Erzeugen des optimierten Frequenzwertes
gesetzt wird, empfängt
die Flash-Schnittstelle 150 vom externen Oszillator 192 ein
Treibertaktsignal mit der optimierten Frequenz. Das bedeutet, dass
die von der CPU 110 in das Register 180 geladenen
Verriegelungsdaten bestimmen, ob die Standardfrequenz f1 oder die
optimierte Frequenz f2 der Flash-Schnittstelle 150 zur
Verfügung
gestellt wird.
-
Der
Multiplexer 191 kann verwendet werden, um der Flash-Schnittstelle 150 die
vom ersten PLL1 160 und vom Oszillator 192 erzeugten
Signale zur Verfügung
zu stellen. Insbesondere versorgt der Multiplexer 191 die
Flash-Schnittstelle 150 entsprechend den
in das Register 180 geladenen Verriegelungsdaten mit der
vom ersten PLL1 160 erzeugten Frequenz f1 oder mit der
extern bereitgestellten optimierten Frequenz f2.
-
Der
Oszillator 192 ist ein externen Taktgenerator und erzeugt
in vorteilhafter Weise ein Taktsignal, das eine optimierte Frequenz
für eine
Datenübertragung
zu und von den Flashspeichern 20 bis 23 aufweist,
die mit dem SSD-Steuerschaltkreis 100 zusammenwirken.
-
In
einem anderen Ausführungsbeispiel
kann der SSD-Steuerschaltkreis 100 keinen zusätzlichen Taktsignalgenerator
aufweisen. Bei einer solchen Ausführungsform können die
Verriegelungsdaten, die zum Erzeugen einer gewünschten Frequenz erforderlich
sind, von der CPU 110 in das Register 180 vorgeladen
werden. Basierend auf den im Register 180 gespeicherten
Verriegelungsdaten kann die Flash-Schnittstelle 150 entweder
die Standardfrequenz f1 oder die optimierte Taktfrequenz f2 empfangen.
-
4(A) und 4(B) sind
Zeitablaufdiagramme, die Lese- und Schreibvorgänge des SSD-Steuerschaltkreises 100 darstellen,
die mit einer optimierten Datenübertragungsrate
ablaufen. 4(A) zeigt insbesondere
die Lese- und Schreibvorgänge
unter Verwendung eines Taktsignals mit der Frequenz f1 als Treibertaktsignal
für die
Flash-Schnittstelle 150. Andererseits zeigt 4(B) die Lese- und Schreibvorgänge unter
Verwendung eines Taktsignals mit der Frequenz f2 als Treibertaktsignal
für die Flash-Schnittstelle 150.
Nachfolgend werden die Lese- und Schreibvorgänge des SSD-Steuerschaltkreises 100 unter
Bezugnahme auf 4 ausführlich beschrieben.
-
Wenn
der Host über
die ATA-Schnittstelle 120 Befehle und Adressen sendet,
empfängt
die CPU 110 die Befehle und Adressen und stellt die empfangenen
Betriebsbefehle und Adressen der Flash-Schnittstelle 150 zur
Verfügung.
Die Flash-Schnittstelle 150 erzeugt einen Schreibbefehl 00h
und Adressen CA1 bis RA3 für
die Flashspeicher 20 bis 23. Zudem erzeugt die
Flash-Schnittstelle 150 einen Lesebefehl 30h für die Flashspeicher 20 bis 23. Zusätzlich werden
Daten D0 bis D6 in einem Zellenfeld der Flashspeicher 20 bis 23 erzeugt,
die mit den Adressen CA1 bis RA2 korrespondieren.
-
Wenn
das Treibertaktsignal, das die gleiche Frequenz f1 wie das im Host
verwendete Taktsignal aufweist, der Flash-Schnittstelle 150 in 4(A) zur Verfügung gestellt wird, können die
Raten der Lese- und Schreibvorgänge
nicht optimiert werden. Da eine Schreibperiodenzeit tWCO und eine
Leseperiodezeit tRCO von der Frequenz f1 abhängig sind, ist es für die Flash-Schnittstelle 150 schwierig,
die Periodenzeit tWCO und die Leseperiodenzeit unabhängig einzustellen.
Das bedeutet, dass die ausgewählte
Frequenz von der optimierten Betriebsfrequenz der Flashspeicher 20 bis 23 abweichen
kann, wenn die Flash-Schnittstelle 150 die günstigste
Frequenz aus einem Bereich von Frequenzen auswählt, die durch Teilen der Frequenz
f1 erzeugt werden.
-
Wie
jedoch oben ausgeführt
ist, kann in einem Ausführungsbeispiel
der SSD-Steuerschaltkreis 100 den zweiten PLL2 190 zum
Erzeugen des Taktsignals mit der Frequenz f2 und das Register 180 zur unabhängigen Steuerung
des Taktsignals umfassen. 4(B) ist
ein Zeitablaufdiagramm, das die Funktionsweise des SSD-Steuerschaltkreises 100 gemäß einem
dargestellten Ausführungsbeispiel
zeigt. Durch die Verwendung des zweiten PLL2 190 und des
Registers 180 zum Erzeugen der einstellbaren Frequenz f2
können
die Schreibperiodenzeit tWC1 und die Leseperiodenzeit tRC1 der Flashspeicher 20 bis 23 wie
erforderlich gesteuert werden. Während
eines Testlaufs können
beispielsweise jeweils die optimierten Schreib- und Leseperiodenzeiten
tWC und tRC bestimmt werden. Des Weiteren können die Verriegelungsdaten
zur Erzeugung der optimierten Frequenz f2 in vorteilhafter Weise
basierend auf den optimierten Periodenzeiten tWC und tRC in das
Register 180 geschrieben werden. Dann erzeugen der interne
zweite PLL2 190 oder der externe Oszillator 192 des
SSD-Steuerschaltkreises 100 das Treibertaktsignal mit der
optimierten Frequenz f2 gemäß den Verriegelungsdaten.
Dadurch können
die Lese- und Schreibzeiten reduziert werden, wie aus 4(B) ersichtlich ist.
-
Der
oben beschriebene SSD-Steuerschaltkreis kann in verschiedenen Speichersystemen
verwendet werden. Wie oben ausgeführt ist, umfasst der SSD-Steuerschaltkreis 100 unabhängig steuerbare interne
oder externe Taktgeneratoren 190 und 192. Des
Weiteren kann das der Flash-Schnittstelle 150 zur
Verfügung
gestellte einstellbare Taktsignal die Datenübertragungsrate der Flashspeicher 20 bis 23 verbessern.
Daher können
diese Taktgeneratoren von dem SSD-Steuerschaltkreis 100 benutzt
werden, um die Zugriffszeit des SSD-Steuerschaltkreises zu reduzieren,
die durch die Datenübertragungsrate
bestimmt wird.