-
Die vorliegende Erfindung bezieht
sich allgemein auf eine Datenspeicherung und -wiedergewinnung. Insbesondere
bezieht sich die vorliegende Erfindung auf Systeme und Verfahren
zum Schreiben von Daten an Speicherkarten und Lesen von Daten von
Speicherkarten in einem einer Anzahl auswählbarer Datenübertragungsmodi.
-
Entwickler haben unterschiedliche
Typen von Festkörperspeichervorrichtungen
zum Speichern digitaler Daten hergestellt. Diese Speichervorrichtungen
können
in etwas gepackt sein, was als Speicherkarten bezeichnet wird, die
sich in den letzten Jahren zunehmender Popularität erfreut haben. Speicherkarten
werden in einer Vielzahl von Anwendungen verwendet, wie z. B. in
Digitalkameras und Camcordern, Musikabspielgeräten, Personaldigitalassistenten
(PDAs), Personalcomputern etc. Diese Speicherkarten weisen üblicherweise
eine sehr kleine Größe auf und
weisen spezifische physische Spezifizierungen oder Formfaktoren
auf. Typische Speicherkarten haben eine Datenspeicherkapazität in einem
Bereich von etwa 2 Megabytes (MB) bis etwa 1 Gigabyte (GB).
-
Obwohl viele Speicherkarten große Speichervolumina
liefern, ist die Datenübertragungsrate zum
Speichern großer
Dateien in einen Speicher und Wiedergewinnen von Dateien aus einem
Speicher manchmal ziemlich langsam. Wenn z. B. ein Photograf eine
Digitalkamera verwendet, die in der Lage ist, 5 Bilder pro Sekunde
aufzunehmen, und wenn jedes Bild etwa 5 MB Daten einnimmt, muß die Speicherkarte
in der Lage sein, mit einer Rate von zumindest 25 MB pro Sekunde
zu speichern. Existierende Speicherkarten sind zu derartigen Übertragungsraten
nicht in der Lage. Bei einem anderen Beispiel können, wenn der Photograf etwa
100 Bilder in einem Speicher speichert und jedes Bild etwa 5 MB
groß ist, die
Bilder auf einer 512 MB-Speicherkarte gespeichert sein.
Mit einer langsamen Datenübertragungsrate
jedoch kann es bis zu 20 Minuten dauern, die Bilder in einen Computer
hochzuladen.
-
Eine Lösung für die langsame Datenübertragungsrate
besteht darin, für
Host-Vorrichtungen (wie z. B. Digitalkameras) große Mengen
eines statischen Direktzugriffsspeichers (SRAM) und dynamischen Direktzugriffsspeichers
(DRAM) bereitzustellen. SRAM und DRAM sind flüchtige Speicher und können als
Datenzwischenspeicher für
nichtflüchtige Speichervorrichtungen
wirken. Diese Datenzwischenspeicher speichern Daten zeitweilig,
wenn dieselben an die Speichervorrichtungen geschrieben oder von
den Speichervorrichtungen gelesen werden, so daß die Daten nicht verloren
gehen. Aufgrund der langsamen Datenübertragungsrate in die nichtflüchtigen
Speichervorrichtungen werden Daten jedoch unter Umständen in
den Datenzwischenspeichern gesichert, was verhindert, daß der Benutzer zusätzliche
Informationen speichern kann, bis die Daten schließlich in
dem nichtflüchtigen
Speicher gespeichert sind. Ein weiteres Problem bei dieser Lösung besteht
darin, daß SRAM
und DRAM relativ teuer sind und dazu neigen, die Kosten der Host-Vorrichtungen nach
oben zu treiben. Als nächstes
besteht in der Industrie ein Bedarf, eine Alternative mit höherer Leistung,
einer schnelleren Datenübertragungsrate und
niedrigeren Kosten zu der SRAM- und DRAM-Lösung zu schaffen und die zuvor
genannten Mängel
und Nachteile anzugehen.
-
Es ist die Aufgabe der vorliegenden
Erfindung, eine Speichersteuerung, ein System, ein Verfahren, eine
ausführbare
Sequenz, eine Host-Vorrichtung oder eine Speicherkarte zu schaffen,
mit deren Hilfe schneller und unkomplizierter auf vorhandene Speicherelemente
in Hostvorrichtungen zugegriffen werden kann.
-
Diese Aufgabe wird durch eine Speichersteuerung
gemäß Anspruch
1, ein System gemäß Anspruch
7 oder 24, ein Ver fahren gemäß Anspruch 29,
eine ausführbare
Sequenz gemäß Anspruch
33, eine Host-Vorrichtung gemäß Anspruch
34 oder eine Speicherkarte gemäß Anspruch
35 oder 36 gelöst.
-
Die vorliegende Offenbarung umfaßt ein Datenspeichersystem
zum Übertragen
von Daten in einem einer Anzahl auswählbarer Datenübertragungsmodi.
Ein Ausführungsbeispiel
des Datenspeichersystems weist eine Speichersteuerung auf, die Daten innerhalb
einer Speicherkomponente verwaltet. Die Speichersteuerung umfaßt eine
Schaltschaltung, die eine Mehrzahl von Daten-Eingangs/Ausgangs- (-I/O-)
Anschlüssen
und mehrere Sätze
von Übertragungsanschlüssen aufweist.
Eine Standardübertragungsschaltung
ist mit einem Satz der Übertragungsanschlüsse verbunden
und eine Schnell-Seriell-Übertragungsschaltung
ist mit einem weiteren Satz verbunden. Die Speichersteuerung kann
ferner eine Kompressions/Dekompressionsmaschine aufweisen, die in
dem Datenübertragungspfad
verbunden ist.
-
Ein weiteres Ausführungsbeispiel des Datenspeichersystems
weist eine Speicherkarte auf, die entfernbar an einem Host angebracht
ist. Die Speicherkarte weist zumindest eine Speicherbank und eine
Speichersteuerung auf, die mit den Speicherbänken verbunden ist. Die Speichersteuerung
weist eine Schaltschaltung auf, die zwischen einem Standardübertragungsmodus
und einem Schnell-Seriell-Übertragungsmodus
schaltet, sowie eine Kompressions/Dekompressionsmaschine, die Daten komprimiert
und dekomprimiert.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen
näher erläutert, in
denen gleiche Bezugszeichen in allen Ansichten entsprechende Teile
bezeichnen. Es zeigen:
-
1 ein
Blockdiagramm einer allgemeinen Übersicht
eines Ausführungsbeispiels
eines Datenspeichersystems;
-
2 ein
Blockdiagramm, das ein exemplarisches Ausführungsbeispiel des Datenspeichersystems
aus 1 darstellt;
-
3 ein
Blockdiagramm, das die Details eines Ausführungsbeispiels des Host darstellt,
der in den 1 und 2 gezeigt ist;
-
4A kombiniert
ein Blockdiagramm, das die Details und 4B eines Ausführungsbeispiels
der Speichersteuerung darstellt, die in den 1 und 2 gezeigt
ist;
-
5 ein
Blockdiagramm eines Ausführungsbeispiels
eines Abschnitts des Hosts, der in 3 gezeigt
ist, wobei das Ausführungsbeispiel
ein Beispiel einer Halb-Duplex-Konfiguration ist;
-
6 ein
Blockdiagramm eines Ausführungsbeispiels
eines Abschnitts der Speichersteuerung aus 4, das konfiguriert ist, um in Verbindung mit
dem Halb-Duplex-Ausführungsbeispiel
aus 5 zu arbeiten;
-
7 ein
Blockdiagramm eines Ausführungsbeispiels
eines Abschnitts des Hosts aus 3,
wobei das Ausführungsbeispiel
ein Beispiel einer Voll-Duplex-Konfiguration
ist;
-
8 ein
Blockdiagramm eines Ausführungsbeispiels
eines Abschnitts der Speichersteuerung aus 4, das konfiguriert ist, um in Verbindung mit
dem Voll-Duplex-Ausführungsbeispiel
aus 7 zu arbeiten;
-
9 ein
Blockdiagramm eines exemplarischen Ausführungsbeispiels der Kompressions/Dekompressionsmaschine
aus 4;
-
10 ein
Blockdiagramm eines ersten Ausführungsbeispiels
der Speichervorrichtungsschnittstelle aus 4;
-
11 ein
Blockdiagramm eines zweiten Ausführungsbeispiels
der Speichervorrichtungsschnittstelle aus 4;
-
12 ein
Flußdiagramm,
das die Schritte eines exemplarischen Datenschreibbefehls darstellt; und
-
13 ein
Flußdiagramm,
das die Schritte eines exemplarischen Datenlesebefehls darstellt.
-
Die vorliegende Offenbarung beschreibt Systeme
und Verfahren zum Überwinden
der Mängel des
Stands der Technik. Diese Systeme und Verfahren verbessern die existierenden
Speicherkarten durch ein Erhöhen
der Datenübertragungsrate,
um schnellere Speicher- und Wiedergewinnungszeiten bereitzustellen,
während
gleichzeitig dem Formfaktor jeder der häufig verwendeten Speicherkarten,
wie z. B. Secure DigitalTM, MultiMediaCardTM und Memory StickTM,
entsprochen wird. Eine Speichersteuerung, wie sie hierin beschrieben
ist, ist vorzugsweise in der Speicherkarte angeordnet und umfaßt eine
Schaltschaltung, die die Auswahl eines Datenübertragungspfades aus mehreren
parallelen Pfaden ermöglicht,
entlang derer Daten übertragen
werden. Ein derartiger Pfad umfaßt eine Schaltung, die Daten in
einem Schnell-Seriell-Übertragungsmodus überträgt, bei
dem Daten und ein Takt über
ein Codierungs/Decodierungsverfahren (z. B. 8b/10b-Codierung) kombiniert
oder getrennt werden. Die Speichersteuerung kann nicht nur konfiguriert
sein, um unter einer Anzahl auswählbarer
Datenübertragungspfade zu
schalten, sondern die Speichersteuerung kann auch konfiguriert sein,
um Daten in Echtzeit zu komprimieren, was die Speicherkapazität der Medien
verbessert. Der Datenpfadschaltschaltungsaufbau kann als ein anderer
Aspekt als der Kompressionsschaltungsaufbau betrachtet werden. Deshalb
kann der Daten pfadschaltschaltungsaufbau unabhängig implementiert sein und
in die Speichersteuerung mit oder ohne den Kompressionsschaltungsaufbau
eingebaut sein und umgekehrt.
-
Eine Übersicht eines Ausführungsbeispiels eines
Datenspeichersystems 100 ist in 1 gezeigt. Diese Figur stellt einen Host 102 dar,
der mit einer Speichersteuerung 104 verbunden ist, die
wiederum mit einem Speicher 106 verbunden ist. Der Host 102 kann
jeder Typ von Benutzervorrichtung sein, der Daten von dem Speicher 106 liest
und/oder Daten an den Speicher 106 schriebt. Der Host 102 kann
z. B. ein Verarbeitungssystem in einer Digitalkamera sein, das in
einem Datenschreibmodus in der Lage ist, ein Bild in digitaler Form
zu erfassen und die digitalen Daten, die das erfaßte Bild
darstellen, in den Speicher 106 zu schreiben. In einem
Datenlesemodus kann das Digitalkameraverarbeitungssystem dann z.
B. Daten aus dem Speicher 106 wiedergewinnen, um Daten
in einen Computer hochzuladen oder Bilder auf einer Flüssigkristallanzeige
(LCD) anzuzeigen. Alternativ kann der Host 102 ein Verarbeitungssystem
eines Audioabspielgerätes
sein, das Musikdaten von dem Speicher 106 liest und die
Musik hörbar über einen
Satz Lautsprecher abspielt. Das Audioabspielgerät-Verarbeitungssystem kann Datenschreibfähigkeiten
umfassen, derart, daß Musik
in dem Speicher 106 aufgezeichnet werden kann. Der Host 102 kann
wahlweise als ein weiteres bekanntes System konfiguriert sein, das
den Speicher 106 verwendet, wie z. B. ein Verarbeitungssystem
eines Personaldigitalassistenten (PDA), ein Verarbeitungssystem
eines Digitalcamcorders usw.
-
Die Speichersteuerung 104 ist
elektrisch zwischen den Host 102 und den Speicher 106 geschaltet.
Die Speichersteuerung 104 verwaltet die Übertragung
von Daten von dem Host 102 an den Speicher 106 während eines
Datenschreibbefehls und die Übertragung
von Daten von dem Speicher 106 an den Host 102 während eines
Datenlesebefehls. Bei den bevorzugten Ausführungsbeispielen sind die Speichersteuerung 104 und
der Speicher 106 auf einem Typ Speicherkarte zusammengruppiert, die
eine Steuerungsfunktionalität
und eine Speicherfähigkeit umfaßt. Gemäß einem
alternativen Ausführungsbeispiel
jedoch kann die Speichersteuerung 104 innerhalb des Hosts 102 angeordnet
sein. Bei diesem alternativen Ausführungsbeispiel können, wenn
die Speichersteuerung 104 Daten unter Verwendung eines
bestimmten Algorithmus komprimiert und die komprimierten Daten auf
einer separaten Speicherkomponente speichert, die Daten nur durch
den gleichen Host 102 zurückgelesen werden oder durch
einen Host, der eine Speichersteuerung aufweist, die die gleichen
Kompressions- und Dekompressionsalgorithmen aufweist.
-
2 ist
ein Ausführungsbeispiel
des Datenspeichersystems 100, bei dem die Speichersteuerung 104 und
der Speicher 106 auf einer Speicherkarte 200 enthalten
sind. Die Speicherkarte 200 kann jede Größe, Form,
Anschlußstiftkonfiguration
und Speicherkapazität
aufweisen. Die Speicherkarte 200 kann z. B. so gebildet
sein, daß sie
den gleichen Formfaktor und die gleichen Spezifizierungen wie jede
der bekannten Speicherkarten aufweist, die auf dem heutigen Markt
verwendet werden, wie z. B. MultiMediaCardTM,
Secure DigitalTM und Memory StickTM. Die Speicherkarte 200 kann rückgerichtet
mit diesen oder anderen Speichervorrichtungen kompatibel sein, die
heute existieren, und kann mit denjenigen kompatibel sein, die in
Zukunft entwickelt werden.
-
Der Speicher 106 ist in 2 als eine Mehrzahl von
Speicherbänken 202 gezeigt,
kann jedoch auch als eine einzelne Speicherbank 202 konfiguriert sein.
Die Anzahl von Speicherbänken 202 kann
von der Fähigkeit
der bestimmten Speicherbänke 202, Daten
zu übertragen,
sowie von der Datenübertragungsrate
des Speicherschnittstellenschaltungsaufbaus innerhalb der Speichersteuerung 104 abhängen. Die
Anzahl kann ferner von der erwünschten Datenübertragungsrate
abhängen,
wie unten detaillierter beschrieben ist. Daten werden vorzugsweise zwischen
der Speichersteuerung 104 und den Speicherbänken 202 in
Blöcken
oder Sektoren übertragen.
Jeder Block oder Sektor von Daten kann z. B. eine vorbe stimmte Blockgröße aufweisen,
wie z. B. 512 Bytes, um der Blockgröße zu entsprechen, mit der
der Host 102 auf Daten zugreift. Die Speicherbänke 202 weisen
Speicherkomponenten auf, die zu einer Hochleistungsübertragung
von Datenblöcken mit
schnellen Datenübertragungsgeschwindigkeiten in
der Lage sind, wie z. B. einen Magnetdirektzugriffsspeicher (MRAM)
oder eine Atomarauflösungsspeicherung
(ARS).
-
Ferner in 2 dargestellt sind Schnittstellenleitungen 204 zwischen
dem Host 102 und der Speichersteuerung 104. Die
Schnittstellenleitungen 204 können Verbindungsanschlüsse, Anschlußstifte, Anschlußflächen, Leiter,
usw. umfassen, die elektrisch die Anschlüsse des Hosts 102 mit
den kompatiblen Anschlüssen
der Speicherkarte 200 verbinden. Eine typische Speicherkarte
enthält
spezifische Anschlüsse,
die eindeutig für
das bestimmte System sind, und die nur mit einem Host gekoppelt
sind, der eine kompatible Konfiguration aufweist. Trotz der Unterschiede
bei dem Ort und der Nomenklatur der Anschlüsse und Leitungen unterschiedlicher
Host/Kartensysteme umfassen die Schnittstellenleitungen 204 eines
typischen Systems eine Mehrzahl von Datenleitungen D1, D2,... DN,
zumindest eine Taktleitung (CLK), zumindest eine Befehlsleitung
(CMD), zumindest eine Leistungsleitung (Vdd) und zumindest eine
Masseleitung (GND). Die Spezifizierungen der meisten Speicherkarten
erfordern normalerweise zumindest zwei Datenleitungen. Bei dem in 2 dargestellten Beispiel
ist die Anzahl von Datenleitungen eine Anzahl N. Vorzugsweise weist
das Datenspeichersystem 100 einen Formfaktor auf, der zumindest
drei Datenleitungen aufweist, um ein Halb-Duplex-Differential-Senden
und einen -Empfang zu ermöglichen,
wie unten beschrieben ist. Wenn fünf oder mehr Datenleitungen
verfügbar
sind, kann eine Voll-Duplex-Differential-Sende- und -Empfangs-Konfiguration
erzielt werden, wie ebenso unten beschrieben ist.
-
3 stellt
ein Blockdiagramm eines Ausführungsbeispiels
des Hosts 102 dar. Das in 3 gezeigte
Ausführungsbeispiel
des Hosts 102 weist ein Benutzervorrichtungsverarbei tungssystem 300 auf,
das einen Benutzerschaltungsaufbau und einen Direktzugriffsspeicher
(RAM) sowie Betriebsinstruktionen aufweisen kann, die in Hardware
und/oder Software konfiguriert sind. Der Benutzerschaltungsaufbau
des Benutzervorrichtungsverarbeitungssystems 300 kann eine
Datenquelle oder einen Schaltungsaufbau zum Erzeugen ursprünglicher
Daten und/oder eine Zielvorrichtung oder einen – Schaltungsaufbau zum Verwenden
von Daten, die aus dem Speicher 106 wiedergewonnen werden,
umfassen. Bei dem Digitalkamerabeispiel kann das Benutzervorrichtungsverarbeitungssystem 300 einen
Bilderfassungsschaltungsaufbau aufweisen, der digital Bilder erfaßt, die
Bilder in digitale Daten umwandelt und die Digitalbilddaten zeitweilig
in einem RAM speichert. Bei diesem gleichen Beispiel kann die Digitalkamera ferner
eine LCD zum Anzeigen vorher erfaßter Bilder aufweisen, die
aus Daten, die aus dem Speicher 106 wiedergewonnen werden,
reproduziert werden. Das Benutzervorrichtungsverarbeitungssystem 300 weist eine
Mehrzahl von Eingangs/Ausgangs- (I/O-) Anschlüssen zum Senden oder Empfangen
von Daten auf. In einem Standardübertragungsmodus
werden Daten entlang eines LANGSAMDATEN-Bus 302 zwischen
dem Benutzervorrichtungsverarbeitungssystem 300 und einer
Standardübertragungsschaltung 304 übertragen.
Bei einem Schnell-Seriell-Übertragungsmodus
werden Daten entlang eines SCHNELLDATEN-Bus 305 zwischen
dem Benutzervorrichtungsverarbeitungssystem 300 und einer Schnell-Seriell-Übertragungsschaltung 306 übertragen.
Zusätzliche
parallele Verzweigungen können
innerhalb des Hosts verbunden sein, wenn zusätzliche Übertragungsmodi erwünscht sind.
-
Die Standardübertragungsschaltung 304 enthält einen
elektrischen Schaltungsaufbau zum Durchführen der Übertragung von Daten in einem Standardübertragungsmodus.
Die Standardübertragungsschaltung 304 ist
konfiguriert, um parallele Daten von dem Bus 302 während einer
Datenschreibprozedur an Leitungen 308 zu übertragen
und parallele Daten von den Leitungen 308 während einer
Datenleseprozedur an den Bus 302 zu übertragen. Eine wesentliche
Operation, die durch die Standardübertragungsschaltung 304 durchgeführt wird,
besteht darin, die Daten von dem Langsam-Bus 302 auf die Breite
zu formatieren, die durch die Leitungen 308 unterstützt wird.
Andere Funktionen können
ein Einwickeln der zu sendenden Daten mit einer zyklischen Redundanzprüfung (CRC)
und ein Decodieren der CRC bezüglich
der empfangenden Daten umfassen.
-
Die Schnell-Seriell-Übertragungsschaltung 306 enthält einen
elektrischen Schaltungsaufbau, der in der Lage ist, Daten unter
Verwendung eines Hochgeschwindigkeits-Differential-Seriell-Übertragungsprotokolls
zu übertragen.
Die Schnell-Seriell-Übertragungsschaltung 306 kann
in der Lage sein, Daten mit einer Rate von zumindest 100 MB pro
Sekunde zu übertragen.
Mit einer derartigen Übertragungsrate können große Dateien
in weniger als einer Sekunde heruntergeladen werden, was im Gegensatz
zu Herunterladezeiten des Stands der Technik von mehreren Minuten
steht.
-
Die Schnell-Seriell-Übertragungsschaltung 306 empfängt ein
Systemtaktsignal CLK von einem Host-Steuerungslogikschaltungsaufbau 318 und multipliziert
die Taktfrequenz unter Verwendung einer Phasenregelschleifen- (PLL-)
Schaltung bis zu einer „Schnelltakt"-Geschwindigkeit.
Die Schnell-Seriell-Übertragungsschaltung 306 weist
ferner Zwischenspeicher zum zeitweiligen Halten von Daten während der Übertragung
von Daten zwischen dem Benutzervorrichtungsverarbeitungssystem 300 und der
Schnell-Seriell-Übertragungsschaltung 306 auf. Die
Schnell-Seriell-Übertragungsschaltung 306 weist vorzugsweise
einen Fehlererfassungs- und -korrekturschaltungsaufbau, einen Synchronisierungserfassungsschaltungsaufbau,
einen Acht-Bit-zu-Zehn-Bit-Codierer und einen Zehn-Bit-zu-Acht-Bit-Decodierer
auf, um eine Codierung von Takt und Daten zu ermöglichen, um eine Trennung von
Takt und Daten zu ermöglichen
und um eine Decodierung von Daten zu ermöglichen. Eine Seriell/Deseriell-Schaltung,
die serielle Daten in parallele umwandelt und parallele Daten in
seriel le umwandelt, ist vorzugsweise innerhalb der Schnell-Seriell-Übertragungsschaltung 306 enthalten.
-
Während
eines Datenschreibbefehls sendet die Schnell-Seriell-Übertragungsschaltung 306 ein aufwärts umgesetztes
Schnelltakt- (SCHNELL-CLK-) Signal an das Benutzervorrichtungsverarbeitungssystem 300.
Wenn das Benutzervorrichtungsverarbeitungssystem 300 das
SCHNELL-CLK-Signal empfängt,
zieht die Schnell-Seriell-Übertragungsschaltung 306 serielle
Daten von dem Benutzervorrichtungsverarbeitungssystem 300 entlang
des SCHNELLDATEN-Bus 305 mit der Schnelltaktgeschwindigkeit.
-
Ferner weist die Schnell-Seriell-Übertragungsschaltung 306 zwei
Differenzverstärker
auf, die Daten entlang der Leitungen 310 senden und empfangen.
Ein sendender Differenzverstärker
wandelt digitale Daten in ein serielles Differentialformat um, wobei
die seriellen Differentialdaten entlang einer positiven Sendeleitung
(DT+) und einer negativen Sendeleitung (DT-) gesendet werden. Ein
empfangender Differenzverstärker
empfängt
serielle Differentialdaten von einer positiven Empfangsleitung (DR+)
und einer negativen Empfangsleitung (DR-) und wandelt die seriellen
Differentialdaten in das digitale Format um. Zusätzlich zu den Leitungen DT-
und DR- kann eine BESETZT-Leitung hinzugefügt werden, um ein Signal von
der Speichersteuerung 104 bereitzustellen, wenn die Speichersteuerung 104 besetzt
und nicht bereit ist, um mehr Daten zu empfangen. Die BESETZT-Leitung
kann auch verwendet werden, um zu kommunizieren, daß ein Fehler
aufgetreten ist. Wenn die Schnell-Seriell-Übertragungsschaltung 306 ein
BESETZT-Signal empfängt,
wird die Übertragung
von Daten gestoppt, bis die Speichersteuerung 104 wieder
bereit zum Empfang ist. Die BESETZT-Leitung, die für eine vorbestimmte
Zeitmenge besetzt bleibt, kann einen Fehler anzeigen.
-
Eine Schaltschaltung 312 ist
mit Leitungen 308 verbunden, die zu der Standardübertragungsschaltung 304 führen, und mit
Leitungen 310, die zu der Schnell-Seriell-Übertragungsschaltung 306 führen. Die
Leitungen 310 sind „DT+", „DT-", „DR+" und „DR-" genannt, wobei „DT" Daten darstellt,
die von der Schnell-Seriell-Übertragungsschaltung 306 gesendet
werden, und „DR" Daten darstellt,
die durch die Schnell-Seriell-Übertragungsschaltung 306 empfangen
werden. Die Schaltschaltung 312 weist eine Anzahl interner
Schaltungselemente auf, die es ermöglichen, daß separate Pfade einer Datenübertragung
ausgewählt
werden. Daten können
durch die Schaltschaltung 312 in einem Schnell-Seriell-Übertragungsmodus
oder in einem Standardübertragungsmodus übertragen
werden. Der Host 102 kann konfiguriert sein, um in dem
Standardübertragungsmodus
hochzufahren und auf einen Bedarf hin zu dem Schnell-Seriell-Übertragungsmodus
zu schalten. In dem Schnell-Seriell-Übertragungsmodus sind die Schaltungselemente
der Schaltschaltung 312 derart konfiguriert, daß Leitungen 314,
die mit einem Ausgang der Schaltschaltung 312 verbunden
sind, elektrisch mit Leitungen 310 gekoppelt sind, die
zu der Schnell-Seriell-Übertragungsschaltung 306 führen. In
dem Standardübertragungsmodus
sind die Schaltungselemente derart konfiguriert, daß die Leitungen 314 elektrisch
mit Leitungen 308 gekoppelt sind, die zu der Standardübertragungsschaltung 304 führen.
-
Leitungen 314 sind zwischen
die Schaltschaltung 312 und ein Verbindungselement 316 geschaltet.
Das Verbindungselement 316 weist die physischen Charakteristika
auf, um eine ordnungsgemäße Verbindung
mit dem Typ verwendeter Speicherkarte 200 zu ermöglichen.
Das Verbindungselement 316 weist sowohl Ausgangsanschlüsse als
auch I/O-Anschlüsse
auf, die mit Schnittstellenleitungen 204 verbunden sind.
Der CLK-, der Vdd- und der GND-Anschluß sind üblicherweise als Ausgangsanschlüsse zum
Bereitstellen des Systemtaktsignals und der Leistungs- und Massespannung
entlang der jeweiligen Schnittstellenleitungen 204 konfiguriert. Diese
Ausgänge
werden üblicherweise
durch den Host-Steuerungslogikschaltungsaufbau 318 des Host 102 erzeugt.
-
Zusätzlich umfaßt das Verbindungselement 316 I/O-Anschlüsse, wie
z. B. Datenanschlüsse
D1, D2,..., DN, die Daten senden und empfangen. Ein Befehlsanschluß (CMD)
kann als ein I/O-Anschluß zum
Senden und Empfangen von Befehlen zwischen dem Host 102 und
der Speichersteuerung 104 konfiguriert sein. Der CMD-Anschluß empfängt Antworten von
der Speichersteuerung 104, die den Host 102 über den
Status der Befehle benachrichtigt. Die Speichersteuerung 104 kann
z. B. ein Signal an den Host 102 entlang der CMD-Leitung
zurückgeben,
um anzuzeigen, ob ein Befehl von dem Host 102 ordnungsgemäß empfangen
wurde oder nicht. Wenn ein Fehler bei dem Senden des Befehls erfaßt wurde,
kann die Speichersteuerung 104 eine Fehlerantwort mit einem
Fehlercode, der den Typ des erfaßten Fehlers anzeigt, senden.
-
Die in 3 gezeigten
Komponenten des Hosts 102 werden durch den Host-Steuerungslogikschaltungsaufbau 318 gesteuert.
Der Host-Steuerungslogikschaltungsaufbau 318 liefert Steuerungssignale
an das Benutzervorrichtungsverarbeitungssystem 300, die
Standardübertragungsschaltung 304,
die Schnell-Seriell-Übertragungsschaltung 306 und
die Schaltschaltung 312. Der Host-Steuerungslogikschaltungsaufbau 318 liefert
Signale an die verschiedenen Schaltungen, um entweder den Schnell-Seriell-Übertragungsmodus
oder den Standardübertragungsmodus
auszuwählen.
Der Host 102 kann wahlweise zusätzliche Übertragungsschaltungen aufweisen,
die ausgewählt
werden sollen, wenn mehrere Übertragungsmodi
erwünscht
sind.
-
Ferner kann der Host-Steuerungslogikschaltungsaufbau 318 einen
Schaltungsaufbau oder eine Software aufweisen, der/die in der Lage
ist zu bestimmen, wann der Standardübertragungsmodus nicht ausreichend
schnell ist, um große
zu übertragende Datenmengen
zu handhaben, und kann dadurch zu dem Schnell-Seriell-Übertragungsmodus
schalten. Alternativ kann der Host-Steuerungslogikschaltungsaufbau 318 eine
Benutzereingabe empfangen, die den Schnell-Seriell-Übertragungsmodus anfordert, wenn
der Benutzer den Bedarf nach einer schnelleren Übertragungsrate antizipiert.
Der Host-Steuerungslogikschaltungsaufbau 318 sendet ein
Signal an entweder die Schnell-Seriell-Übertragungsschaltung 306 oder
die Standardübertragungsschaltung 304,
um die ordnungsgemäße Schaltung
für eine Operation
in dem ausgewählten
Modus zu aktivieren. Der Host-Steuerungslogikschaltungsaufbau 318 signalisiert
ferner der Schaltschaltung 312, die Schaltungselemente
geeignet zu konfigurieren. Zusätzlich weist
der Host-Steuerungslogikschaltungsaufbau 318 einen Oszillator
oder einen anderen Typ von Taktungsvorrichtung zum Bereitstellen
eines Referenztaktsignals, das als ein Systemtakt verwendet wird, auf.
Der Host-Steuerungslogikschaltungsaufbau 318 liefert
ferner Befehlssignale an die Speichersteuerung 104 entlang
einer CMD-Leitung.
-
Bezug nehmend auf die 4A und 4B ist ein Ausführungsbeispiel der Speichersteuerung 104 gezeigt.
Die Komponenten der Speichersteuerung 104 können gemeinsam,
falls dies erwünscht
ist, als eine anwendungsspezifische integrierte Schaltung (ASIC)
hergestellt sein. Die D1-, D2-,..., DN-, CLK-, CMD-, Vdd- und GND-Schnittstellenleitung 204 sind entfernbar
zwischen das Verbindungselement 316 des Hosts 102,
wie oben beschrieben ist, und ein Verbindungselement 400 der
Speichersteuerung 104 geschaltet. Das Verbindungselement 400 ist
derart konfiguriert, daß es
mit dem Verbindungselement 316 kompatibel ist. Anders ausgedrückt entspricht der
Ort der Kontakte des Verbindungselementes 400 der Form
und dem Ort der Kontakte innerhalb einer Aufnahmeeinrichtung (nicht
gezeigt) des Verbindungselementes 316. Wenn die Speicherkarte 200 in die
Aufnahmeeinrichtung eingesteckt ist, sind die Kontakte des Verbindungselementes 400 elektrisch mit
den Kontakten des Verbindungselementes 316 gekoppelt. Das
Verbindungselement 400 ist gemäß dem Formfaktor des bestimmten
verwendeten Speicherkartensystems konfiguriert. Daten, die in dem Host 102 erzeugt
werden, können über die
Verbindungselemente an die Speicherkarte 200 gesendet werden.
Wenn der Host 102 Daten von den Spei cherbänken 202 wiedergewinnt,
werden die Daten von der Speicherkarte 200 über die
Verbindungselemente an den Host 102 gesendet.
-
Die Speichersteuerung 104 weist
ferner eine erste Schaltschaltung 404 auf, die auf die
gleiche Weise wie die Schaltschaltung 312 des Hosts 102 konfiguriert
sein kann. Die erste Schaltschaltung 404 der Speichersteuerung 104 empfängt und
sendet Daten entlang der Leitungen 402, die zwischen das
Verbindungselement 400 und die erste Schaltschaltung 404 geschaltet
sind. Die erste Schaltschaltung 404 weist Schaltungselemente
auf, die es ermöglichen, daß die Leitungen 402 mit
den Leitungen 406 gekoppelt sind, die zwischen die erste
Schaltschaltung 404 und eine Standardübertagungsschaltung 408 gekoppelt
sind, oder mit Leitungen 410, die zwischen die erste Schaltschaltung 404 und
eine Schnell-Seriell-Übertragungsschaltung 412 geschaltet
sind. Die Leitungen 410 sind als „DR+", „DR-", „DT+" und „DT-" bezeichnet, wobei „DR" Daten darstellt,
die von dem Host 102 empfangen werden, und „DT" Daten darstellt,
die an den Host 102 gesendet werden. Die Symbole „+" und „-" stellen die positiven
und negativen Leitungen dar, die bei dem oben erwähnten seriellen
Differentialschema verwendet werden.
-
Die Standardübertragungsschaltung 408 und
die Schnell-Seriell-Übertragungsschaltung 412 der
Speichersteuerung können
einen Schaltungsaufbau aufweisen, der der Standardübertragungsschaltung 304 bzw.
der Schnell-Seriell-Übertragungsschaltung 306 des
Hosts ähnelt. Ähnlich führen die Standardübertragungsschaltung 408 und
die Schnell-Seriell-Übertragungsschaltung
412 im wesentlichen die gleiche Funktion wie die Schaltungen 304 und 306 durch.
-
Ein LANGSAMDATEN-Bus 414 ist
mit I/O-Anschlüssen
der Standardübertragungsschaltung 408 verbunden.
Ein SCHNELLDATEN-Bus 415 ist
mit I/O-Anschlüssen
der Schnell-Seriell-Übertragungsschaltung 412 verbunden.
Die Busse 414 und 415 sind außerdem mit einer zweiten Schaltschaltung 416 verbun den,
die in Verbindung mit der ersten Schaltschaltung 404 wirkt,
um entweder die Standardübertragungsschaltung 408 oder
die Schnell-Seriell-Übertragungsschaltung 412 in
den Datenübertragungspfad
zu verbinden. Daten werden entlang eines Datenbus 417 zu
einer Kompressions/Dekompressionsmaschine 418 übertragen,
die einen Schaltungsaufbau zum Komprimieren von Daten während eines
Datenschreibbefehls aufweist. Die Schaltschaltungen und die verschiedenen
Datenübertragungspfade
verlassen sich nicht auf die Operation der Kompressions/Dekompressionsmaschine 418,
um die Datenpfadschaltungsprozeduren durchzuführen. Ähnlich verläßt sich die Kompressions/Dekompressionsmaschine 418 nicht
auf die Operation der Datenpfadschaltungskonfiguration, um die Kompressions- und
Dekompressionsprozeduren durchzuführen. Deshalb kann die Kompressions/Dekompressionsmaschine 418 ein
optionales Merkmal sein, das zu dem hierin offenbarten Datenspeichersystem 100 hinzugefügt werden
kann. Während
eines Datenlesebefehls verwendet die Kompressions/Dekompressionsmaschine 418 einen
Dekompressionsschaltungsaufbau, um Daten, die unter Verwendung eines
Algorithmus komprimiert wurden, der dem Dekompressionsschaltungsaufbau
bekannt ist, zu dekomprimieren. Die Schnelldatenübertragungsgeschwindigkeit der
Schaltungsanordnung kann durch die Kompressions/Dekompressionsmaschine 418 verbessert
werden, was es ermöglicht,
daß langsamere
Medien Daten mit der gleichen Hochgeschwindigkeitsrate annehmen.
Da die Kompressions/Dekompressionsmaschine 418 weniger
Informationen an den Speicher 106 zur Speicherung sendet,
können
die komprimierten Daten viel schneller als Daten gespeichert werden,
die nicht komprimiert sind. Ein weiterer Vorteil eines Hinzufügens einer
Kompressionsfunktionalität zu
der Speichersteuerung 104 besteht darin, daß weniger
Speicherraum in einem Speicher benötigt wird, was es dem Benutzer
ermöglicht,
mehr Daten zu speichern. Durch ein Komprimieren von Daten während des
Schreibens von Daten in den Speicher 106 nehmen die Daten
weniger Speicherraum in dem Speicher 106 ein. Deshalb kann
die Speicherkapazität
des Speichers
106 aufgrund dieser Kompression von Daten
wirksam erhöht
werden.
-
Die komprimierten Daten werden zwischen der
Kompressions/Dekompressionsmaschine 418 und einem Zwischenspeicher 420 übertragen,
der in der Lage ist, Daten mit der Schnellübertragungsrate zu handhaben.
Während
eines Schreibbefehls sendet der Zwischenspeicher 420 Daten
an eine Speichervorrichtungsschnittstelle 422, die einen
Schaltungsaufbau umfaßt,
der in der Lage ist, die komprimierten Daten zur schnellen Speicherung
zu organisieren. Die Speichervorrichtungsschnittstelle 422 kann
einen Sequenzer zum Verteilen der seriellen Daten unter einer Mehrzahl
von Pfaden aufweisen, die zu der Mehrzahl von Speicherbänken 202 führen. Vorzugsweise
weist die Speichervorrichtungsschnittstelle 422 zusätzliche
Zwischenspeicher zum zeitweiligen Halten der komprimierten Daten
auf, wie dieselben an die Speicherbänke 202 übertragen
werden. Die Speichervorrichtungsschnittstelle 422 weist ferner
einen Fehlerkorrekturcode(ECC-) Schaltungsaufbau zum Hinzufügen einer
Parität
zu den komprimierten Daten auf, was, wenn von dem Speicher 106 zurückgelesen
wird, die Erfassung und Korrektur von Fehlern ermöglicht.
Die Reihenfolge der Kompressions/Dekompressionsmaschine 418 und
der Speichervorrichtungsschnittstelle 422 kann umgekehrt sein.
In einem derartigen Fall ist die Kompression von Daten die letzte
Funktion, die vor einem Speichern der Daten in den Speicherbänken 202 durchgeführt wird,
und die Dekompression von Daten ist die erste Funktion, die durchgeführt wird,
wenn die Daten von den Speicherbänken 202 gelesen
werden.
-
Die Speichersteuerung 104 der 4A und 4B weist ferner einen Speichersteuerungslogikschaltungsaufbau 424 auf,
der eine Steuerungsfunktionalität
für die
Speichersteuerung 104 liefert. Der Speichersteuerungslogikschaltungsaufbau 424 empfängt Befehle
von dem Host 102 entlang der CMD-Leitung und liefert Signale
an die geeigneten Schaltungen zum Ausführen des angeforderten Befehls.
Wenn ein Fehler bei dem Empfang des Befehls von dem Host 102 auftritt,
gibt der Speichersteuerungslogikschaltungsaufbau 424 einen
Fehlercode über
die CMD-Leitung zurück
an den Host 102, um den Host 102 über den Fehler zu informieren.
Die CLK-Leitung liefert das Systemtaktsignal an den Speichersteuerungslogikschaltungsaufbau 424 zum Synchronisieren
der Speichersteuerung 104 mit dem Host 102.
-
Der Speichersteuerungslogikschaltungsaufbau 424 liefert
Signale an die erste Schaltschaltung 404, die Standardübertragungsschaltung 408,
die Schnell-Seriell-Übertragungsschaltung 412 und
die zweite Schaltschaltung 416, um zwischen dem Standardübertragungsmodus
und dem Schnell-Seriell-Übertragungsmodus
auszuwählen.
Der Datenübertragungspfad
geht durch die Schnell-Seriell-Übertragungsschaltung 412,
wenn der Schnell-Seriell-Übertragungsmodus
ausgewählt
ist, und geht durch die Standardübertragungsschaltung 408,
wenn der Standardübertragungsmodus
ausgewählt
ist. Der Speichersteuerungslogikschaltungsaufbau 424 aktiviert
die geeignete Übertragungsschaltung 408 oder 412 und
leitet die entsprechende Konfiguration in den Schaltschaltungen 404 und 416 ein.
-
Die Komponenten des Datenspeichersystems 100 können in
Hardware, Software, Firmware oder einer Kombination derselben implementiert sein.
Bei den offenbarten Ausführungsbeispielen können der
Host-Steuerungslogikschaltungsaufbau 318 und der Speichersteuerungslogikschaltungsaufbau 424 in
Firmware oder Software implementiert sein, die in einem Speicher
gespeichert ist, und die durch ein geeignetes Instruktionsausführungssystem ausführbar ist.
Wenn derselbe in Hardware implementiert ist, wie bei einem alternativen
Ausführungsbeispiel,
können
die Prozessoren mit einer oder einer Kombination der folgenden Technologien
implementiert sein, die in der Technik bekannt sind: einer diskreten
Logikschaltung, die Logikgatter aufweist, zum Implementieren von
Logikfunktionen auf Datensignale hin, einer ASIC, die geeignete
Kombinationslogikgatter aufweist, einem programmierbaren Gatearray (PGA),
einem frei programmierbaren Gatearray (FPGA), usw.
-
Im allgemeinen können Ausführungsbeispiele des Hosts 102 und
der Speichersteuerung 104 so konfiguriert sein, wie in
den 3, 4A und 4B,
wie oben beschrieben ist, dargestellt ist. Die allgemeinen Komponenten
des Hosts 102 und der Speichersteuerung 104 wurden
beschrieben, wobei nun Bezug auf die 5 bis 11 genommen wird, die die
einzelnen Komponenten des Hosts 102 und der Speichersteuerung 104 weiter
definieren. Es wird darauf verwiesen, daß alternative Ausführungsbeispiele
für die
folgenden Komponenten durch Fachleute auf diesem Gebiet, die ein
klares Verständnis
der vorliegenden Offenbarung haben, realisiert werden können.
-
Die 5 und 6 stellen Ausführungsbeispiele
von Abschnitten des Hosts 102 bzw. der Speichersteuerung 104 dar,
wenn das Datenspeichersystem 100 konfiguriert ist, um in
einem Halb-Duplex-Modus zu arbeiten. 5 stellt
einen Abschnitt des Hosts 102 dar, der die Schaltungsanordnung
bildet, und weist Details der Standardübertragungsschaltung 304,
der Schnell-Seriell-Übertragungsschaltung 306 und
der Schaltschaltung 312 auf. Die Ausgänge von der Schnell-Seriell-Übertragungsschaltung 306 sind in
der Schaltschaltung 312 in einer Halb-Duplex-Anordnung
verbunden, wobei die Leitungen DT+ und DR+ einen positiven Anschluß gemeinschaftlich
verwenden und die Leitungen DT- und die DReinen negativen Anschluß gemeinschaftlich
verwenden.
-
Die Schaltschaltung 312 weist
eine Schaltersteuerungsschaltung 500 auf, die ein Signal
von dem Host-Steuerungslogikschaltungsaufbau 318 empfängt, das
den Datenübertragungsmodus
anzeigt, in dem die Datenspeichervorrichtung 100 wirken
soll. Sobald die Schaltersteuerungsschaltung 500 einen Befehl
von dem Host-Steuerungslogikschaltungsaufbau 318 empfangen
hat, behält
die Schaltersteuerungsschaltung 500 den erwünschten
Modus bei. Deshalb muß der
Host-Steuerungslogikschaltungsaufbau 318 die Anforderung
nur einmal ein leiten und die Schaltersteuerungsschaltung 500 hält den erwünschten
Zustand, bis sie zu einem anderen Zustand umprogrammiert wird. Die
Schaltersteuerungsschaltung 500 kann ein Register aufweisen,
das den erwünschten
Zustand hält.
Die Schaltersteuerungsschaltung 500 liefert konstante Signale
an eine Mehrzahl von Schaltern 502 und hält die Schalter 502 in dem
erwünschten
Zustand, bis ein unterschiedlicher Zustand angefordert wird.
-
Wenn der Standardübertragungsmodus angefordert
wird, konfiguriert die Schaltersteuerungsschaltung 500 die
Schalter 502 in einen derartigen Zustand, daß die Datenleitungen
D1, D2,..., DN, die durch die Standardübertragungsschaltung 304 gelangen,
elektrisch mit den Leitungen 314 verbunden sind, die zu
dem Verbindungselement 316 führen. In der Standardübertragungsschaltung 304 werden
Daten entlang des LANGSAMDATEN-Bus 302 in eine Langsam-Verarbeitungsschaltung 503 eingegeben, wo
die parallelen oder seriellen Leitungen in ein Format umgewandelt
werden, das eine Anzahl N von Datenleitungen D1, D2,..., DN aufweist.
Die Datenleitungen D1, D2,..., DN sind mit Push-Pull- bzw. Gegentakt-Sende/Empfangsgeräten 504 verbunden. Die
Push-Pull-Sende/Empfangsgeräte 504 weisen treibende
Verstärker
zum Treiben von Datensignalen in einer Richtung oder der anderen
auf. Die Push-Pull-Sende/Empfangsgeräte 504 entlang der Datenleitungen
D1, D2,..., DN sind ferner mit einem ersten Satz von Kontakten auf
einer Seite der Schalter 502 verbunden. Wenn in den Standardübertragungsmodus
geschaltet wird, ist der LANGSAMDATEN-Bus 302 mit den Datenleitungen 314 über die Push-Pull-Sende/Empfangsgeräte 504 verbunden.
-
In dem Schnell-Seriell-Übertragungsmodus konfiguriert
die Schaltersteuerungsschaltung 500 Schalter 502 in
einen alternativen Zustand, derart, daß die positiven und die negativen
Leitungen von der Schnell-Seriell-Übertragungsschaltung 306 mit den
Leitungen D2 und D3 der Datenleitungen 314 verbunden sind.
Der positive Abschnitt des seriellen Differentialsignals ist mit
der Datenleitung D2 verbun den und der negative Abschnitt ist mit
D3 verbunden. Eine BESETZT-Leitung ist mit der Datenleitung Dl verbunden
und empfängt
ein Signal von der Speichersteuerung 104, wenn die Speichersteuerung 104 besetzt
und nicht bereit zum Empfangen von mehr Daten ist. Ansprechend auf
ein Besetzt-Signal wartet der Host 102 mit dem Senden zusätzlicher
Daten, bis die Speichersteuerung 104 ein „Nicht
Besetzt"-Signal sendet.
Die verbleibenden Datenleitungen D4, D5,..., DN werden bei dem Halb-Duplex-Schnell-Seriell-Übertragungsmodus
nicht verwendet. Obwohl 5 die
Verwendung von Datenleitungen Dl, D2 und D3 in der gezeigten Anordnung
darstellt, kann der Host derart konfiguriert sein, daß drei willkürliche Datenleitungen
für die
BESETZT-, die positive und die negative Leitung verwendet werden.
Die Bestimmung dessen, welche Datenleitungen zu verwenden sind,
kann auf den physischen Charakteristika des Hosts 102 basieren.
-
Ein zweiter Satz von Kontakten von
Schaltern 502, die den BESETZT-, den positiven und den negativen
Anschluß aufweisen,
sind mit Differenzverstärkern 508 und 510 über Schalterpaare 512 bzw. 514 verbunden.
Die Schaltersteuerungsschaltung 500 kann das Schalterpaar 512 schließen, wenn
Daten gesendet werden, oder anders ausgedrückt, wenn Daten von dem Host 102 durch
die Speichersteuerung 104 an den Speicher 106 geschrieben werden
sollen. Wenn die Schaltersteuerungsschaltung 500 das Schalterpaar 512 schließt, wird
DT+ mit der D2-Leitung verbunden und DT- wird mit der D3-Leitung verbunden.
Wenn Daten von dem Speicher 106 gelesen werden, schließt die Schaltersteuerungsschaltung 500 das
Schalterpaar 514, um die Leitungen DR+ und DR- mit D2 und D3 zu
verbinden. Die Differenzverstärker 508 und 510 sind
mit einer Schnellverarbeitungsschaltung 506 verbunden.
Die Schnellverarbeitungsschaltung 506 weist eine Phasenregelschleifen-
(PLL-) Schaltung auf, die das Taktsignal von der CLK-Leitung empfängt und
ihren internen Takt mit dem Referenztaktsignal synchronisiert. Ferner
multipliziert die PLL-Schaltung die Taktfrequenz zur Verwendung
bei dem Schnell-Seriell-Übertragungsmodus.
Die Schnellverarbei tungsschaltung 506 weist ferner eine
Seriell/Deseriell-Schaltung
auf, die Daten von einem Acht-Bit-Parallel-Format in z. B. ein serielles
Format umwandelt oder umgekehrt. Beide Datensignale und Taktsignale sind
in einen Datenstrom für
die Übertragung
von Daten in dem Schnell-Seriell-Übertragungsmodus
eingebettet.
-
Während
eines Datenschreibbefehls ist das Schalterpaar 512 geschlossen
und die Schnellverarbeitungsschaltung 506 sendet Daten
seriell durch den Differenzverstärker 508,
der Differentialdaten entlang der Datenleitungen D2 und D3 ausgibt.
Während
eines Lesebefehls ist das Schalterpaar 514 geschlossen
und der Differenzverstärker 510 empfängt Differentialdaten
von den Datenleitungen D2 und D3 und sendet digitale Daten an die
Schnellverarbeitungsschaltung 506.
-
Die Schalter 502 und die
Schalterpaare 512 und 514 können jeden Typ elektrischer
oder transistorbasierter Vorrichtung in Silizium oder etwas anderem
umfassen, der alternative Verbindungen zwischen einem ersten Kontakt
und einer Mehrzahl auswählbarer
Kontakte liefert, oder der einen alternativen Offen- oder Geschlossen-Zustand
liefert. Die alternativen Verbindungskonfigurationen der Schalter 502 liefern
alternative Pfade von der Gruppe von Datenleitungen 314 zu
mehreren Sätzen
von Leitungen, z. B. Leitungen 302 oder den Leitungen DT-
und der DR-.
-
Wahlweise kann das Datenspeichersystem 100 derart,
wie oben beschrieben ist, konfiguriert sein, daß der Host 102 und
die Speichersteuerung 104 mehr als zwei auswählbare Pfade
aufweisen. Zusätzliche
Pfade und Übertragungsschaltungen
können
hinzugefügt
werden, was die Auswahl zusätzlicher
Datenübertragungsmodi
erlaubt. Bei dem Ausführungsbeispiel,
bei dem zusätzliche
Pfade enthalten sind, können
die Schalter 502 konfiguriert sein, um zusätzliche
Anschlüsse
aufzuweisen, derart, daß die
Leitungen 314 entlang anderer Pfade durch zusätzliche Übertragungsschaltungen
verbunden sein können.
-
6 ist
ein Blockdiagramm eines Ausführungsbeispiels
des Schaltungsabschnitts der Speichersteuerung 104, das
entworfen ist, um in Verbindung mit der Halb-Duplex-Anordnung des
Hosts 102 aus 5 zu
arbeiten. Die erste Schaltschaltung 404 der Speichersteuerung
kann im wesentlichen die gleiche wie die Schaltschaltung 312 des
Hosts sein. Eine Schaltersteuerungsschaltung 600 empfängt einen
Befehl von dem Speichersteuerungslogikschaltungsaufbau 424,
zu dem erwünschten
Datenübertragungsmodus
zu schalten. Vorzugsweise sind die Schaltersteuerungsschaltungen 500 und 600 so
synchronisiert, daß der Übertragungsmodus
auf beiden Seiten konsistent ist. Um diesbezüglich eine Synchronisierung
beizubehalten, sendet der Host-Steuerungslogikschaltungsaufbau 318 einen
Befehl entlang der CMD-Leitung an den Speichersteuerungslogikschaltungsaufbau 424,
der den Speichersteuerungsprozessor 424 anweist, die Schaltersteuerungsschaltung 600 aufzufordern,
zu dem angeforderten Datenübertragungsmodus
zu schalten. Die Schaltersteuerungsschaltung 600 behält ein konstantes
Signal an Schaltern 602 bei, um die Schalter 602 in
dem erwünschten
Zustand zu halten. In dem Schnell-Seriell-Übertragungsmodus sind die Datenleitungen 402 elektrisch
mit den Leitungen DR- und der DT- gekoppelt. In dem Standardübertragungsmodus
sind die Datenleitungen 402 mit dem LANGSAMDATEN-Bus 414 über die
Standardübertragungsschaltung 408 gekoppelt.
-
Push-Pull-Sende/Empfangsgeräte 604 und eine
Langsamverarbeitungsschaltung 605 sind zwischen die Datenleitungen 402 und
den LANGSAMDATEN-Bus 414 in der Standardübertragungsschaltung 408 geschaltet.
Ein Anschluß jedes
der Schalter 602 ist mit Schalterpaaren 612 und 614 verbunden. Das
Schalterpaar 612 verbindet die Leitungen D2 und D3 der
Datenleitungen 402 mit dem Differenzverstärker 608.
Während
eines Datenschreibbefehls in dem Schnell-Seriell-Übertragungsmodus
ist das Schalterpaar 612 geschlossen und die Differentialsignale
entlang der Leitungen DR+ und DRwerden in den Differenzverstärker 608 eingegeben,
der ein Signal an den Eingang einer Schnellverarbeitungsschaltung 606 liefert.
Während
eines Datenlesebefehls in dem Schnell-Seriell-Übertragungsmodus schließt die Schaltersteuerungsschaltung 600 das
Schalterpaar 614 und die Schnellverarbeitungsschaltung 606 liefert
ein Ausgangssignal an einen zweiten Differenzverstärker 610.
Der Differenzverstärker 610 sendet serielle
Differentialausgangssignale entlang der Leitungen DT+ und der DT-
an Leitungen D2 und D3 der Datenleitungen 402.
-
Die 5 und 6 stellen, wie oben beschrieben
ist, ein Beispiel einer Halb-Duplex-Anordnung dar. Als eine Alternative
zu der Halb-Duplex-Anordnung liefern die 7 und 8 ein
Ausführungsbeispiel des
Hosts 102 und der Speichersteuerung 104 in einem
Voll-Duplex-Modus. Der Hauptunterschied zwischen den beiden Sätzen von
Figuren besteht darin, daß bei
der Halb-Duplex-Anordnung der 5 und 6 die positiven Leitungen
DT+ und DR+ einen positiven Anschluß gemeinschaftlich verwenden
und die negativen Leitungen DT- und DR- einen gemeinsamen negativen
Anschluß gemeinschaftlich
verwenden. Deshalb werden in den 5 und 6 Daten auf den gleichen
Datenleitungen D2 und D3 entweder gesendet oder empfangen. Serielle
Differentialdaten werden entlang der Datenleitungen D2 und D3 in
einer Richtung oder der anderen übertragen.
In den 7 und 8 sind die vier Ausgänge von
den Differenzverstärkern 508, 510, 608 und 610 mit
vier Datenleitungen D2, D3, D4 und D5 verbunden. Wie oben erwähnt ist, können alle
der Datenleitungen D1, D2, ..., DN willkürlich als die spezifischen
Datenleitungen für
die Übertragung
der Signale von DT+, DT-, DR+ und DRausgewählt sein. Mit der Verwendung
dieser beiden zusätzlichen
Datenleitungen kann ein serielles Differentialsignal entlang zweier
Datenleitungen gesendet werden und ein weiteres serielles Differentialsignal
kann gleichzeitig entlang zweier unterschiedlicher Datenleitungen
empfangen werden.
-
In 7,
die den Host 102 in dem Voll-Duplex-Modus zeigt, konfiguriert
eine Schaltersteuerungsschaltung 700 fünf Schalter 702 basierend
auf einer Anforderung nach einer Operation des Datenspeichersystems 100 in
dem Standardübertragungsmodus
oder dem Schnell-Seriell-Übertragungsmodus.
Verglichen mit dem Halb-Duplex-Modus aus 5 zeigt 7 zwei
zusätzliche
Schalter 702, die zwischen den Datenleitungen 314 und
den alternativen Pfaden durch die Standardübertragungsschaltung 304 und
die Schnell-Seriell-Übertragungsschaltung 306 hinzugefügt sind.
In dem Schnell-Seriell-Übertragungsmodus
konfiguriert die Schaltersteuerungsschaltung 700 die Schalter 702,
wie in 7 gezeigt ist,
derart, daß die
Leitungen D1, D2, D3, D4 und D5 mit der BESETZT-Leitung bzw. Datenanschlüssen DT+,
DT-, DR+ und DR- verbunden sind. Die Schaltersteuerungsschaltung 700 schließt das Schalterpaar 712 während eines
Schreibbefehls und schließt
das Schalterpaar 714 während
eines Lesebefehls. Die Schalterpaare 712 und 714 können optional
in dem Voll-Duplex-Modus sein, da eine Sendung und ein Empfang gleichzeitig
sein können.
Aus diesem Grund können
die Schalterpaare 712 und 714 entfernt oder durch
eine Durchflußverbindung
ersetzt werden.
-
8 stellst
die Speichersteuerung 104 in der Voll-Duplex-Anordnung dar und arbeitet in
Verbindung mit der Voll-Duplex-Anordnung des Hosts 102 aus 7. 8 ähnelt 6 mit der Ausnahme, daß eine Schaltersteuerungsschaltung 800 fünf Schalter 802 anstelle
von dreien konfiguriert. Differenzverstärker 608 und 610 sind
in dem Voll-Duplex-Modus mit den Datenleitungen D2, D3, D4 und D5
verbunden, anstelle von nur zwei Datenleitungen wie bei dem Halb-Duplex-Modus.
Diese Verbindungen werden durch Schalterpaare 812 und 814 hergestellt,
die in dem Voll-Duplex-Modus
wieder optional sein können.
-
9 stellt
ein Ausführungsbeispiel
der Kompressions/Dekompressionsmaschine 418 dar. In einem Datenschreibmodus
bewegen sich eingehende Daten zu der Kompressi ons/Dekompressionsmaschine
418 zu einer Dateneingangssteuerungsschaltung 900, einer
Kompressionsschaltung 902 und einer Kompressionserfassungsschaltung 904.
Die Kompressionsschaltung 902 komprimiert die eingehenden
Daten und sendet die komprimierten Daten an die Dateneingangssteuerungsschaltung 900 und an
die Kompressionserfassungsschaltung 904. Die Kompressionserfassungsschaltung 904,
die die eingehenden Daten empfangen und die Daten durch die Kompressionsschaltung 902 komprimiert
hat, vergleicht die beiden und bestimmt, ob die eingehenden Daten
bereits vor der Kompression durch die Kompressionsschaltung 902 komprimiert
wurden. Die Kompressionserfassungsschaltung 904 kann diese Bestimmung
basierend auf der Tatsache durchführen, daß, wenn die Kompressionsschaltung 902 Daten,
die bereits komprimiert wurden, komprimiert, der durch die Kompressionsschaltung 902 verwendete Algorithmus
zur Kompression der Daten die Daten tatsächlich erweitern kann. Deshalb
bestimmt, wenn die Daten nicht zu einer weiteren Kompression in
der Lage sind, oder wenn die Daten durch die Kompressionsschaltung 902 anstelle
komprimiert zu werden, erweitert werden, die Kompressionserfassungsschaltung 904,
daß die
Daten bereits komprimiert wurden.
-
Die Kompressionserfassungsschaltung 904 sendet
ein Signal an die Dateneingangssteuerungsschaltung 900,
das die Dateneingangssteuerungsschaltung 900 anweist, zwischen
entweder den eingehenden Daten oder den komprimierten Daten von der
Kompressionsschaltung 902 auszuwählen. Die Kompressionserfassungsschaltung 904 kann
ein zusätzliches
Signal an die Kompressionsschaltung 902 senden, um die
Kompressionsschaltung 902 zu informieren, daß der verwendete
Kompressionsalgorithmus nicht wirksam ist. Folglich kann die Kompressionsschaltung 902,
wenn ihr der nicht wirksame Algorithmus berichtet wird, zu einem
unterschiedlichen Algorithmus schalten. Die Kompressionserfassungsschaltung 904 benachrichtigt
die Dateneingangssteuerungsschaltung 900, ob die eingehenden
Daten bereits komprimiert wurden oder nicht. Wenn die eingehenden
Daten bereits komprimiert wurden, ignoriert die Dateneingangssteuerungsschaltung 900 die Daten
von der Kompressionsschaltung 902 und wählt die bereits komprimierten
eingehenden Daten aus. Wenn die eingehenden Daten zuvor nicht komprimiert
wurden, ignoriert die Dateneingangssteuerungsschaltung 900 die
eingehenden Daten und wählt
die komprimierten Daten aus der Kompressionsschaltung 902 aus.
Die Dateneingangssteuerungsschaltung 900 überträgt die ausgewählten Daten
gemeinsam mit einem Kompressionsanzeigesymbol, das anzeigen kann,
ob die übertragenen
Daten die komprimierten Daten von der Kompressionsschaltung 902 oder
die bereits komprimierten eingehenden Daten sind. Das Kompressionsanzeigesymbol
kann zusätzlich
Informationen bezüglich
des Typs des Algorithmus aufweisen, den die Kompressionsschaltung 902 verwendet
hat, um die eingehenden Daten zu komprimieren.
-
Wenn Daten von dem Speicher 106 gelesen werden,
werden die Daten in den Dekompressionsabschnitt der Kompressions/Dekompressionsmaschine 418 eingegeben.
Gespeicherte Daten gehen zu einer Datenausgangssteuerungsschaltung 906, einer
Dekompressionsschaltung 908 und einer Kompressionssymbolerfassungsschaltung 910.
Die Kompressionssymbolerfassungsschaltung 910 erfaßt das Kompressionsanzeigesymbol,
um zu bestimmen, ob die Kompressionserfassungsschaltung 904 die
gespeicherten Daten komprimiert hat oder nicht, und, falls dies
der Fall ist, den Algorithmus zu bestimmen, der verwendet wurde.
Wenn die Kompressionssymbolerfassungsschaltung 910 bestimmt,
wie die gespeicherten Daten komprimiert wurden, sendet die Kompressionssymbolerfassungsschaltung 910 ein
Signal an die Dekompressionsschaltung 908, um die Dekompressionsschaltung 908 anzuweisen,
wie die gespeicherten Daten zu dekomprimieren sind. Die Kompressionssymbolerfassungsschaltung 910 benachrichtigt
ferner die Datenausgangssteuerungsschaltung 906, ob die
gespeicherten Daten durch einen bekannten Kompressionsalgorithmus
in der Kompressionsschaltung 902 komprimiert wurden oder
nicht. Ansprechend darauf wählt
die Datenausgangssteuerungsschaltung 906 entweder die nicht
dekomprimierten Daten oder die durch die Dekompressionsschaltung 908 dekomprimierten
Daten aus. Die Datenausgangssteuerungsschaltung 906 überträgt die ausgewählten Daten
an den Ausgang der Kompressions/Dekompressionsmaschine 418.
-
Die 10 und 11 stellen zwei exemplarische
Ausführungsbeispiele
der Speichervorrichtungsschnittstelle 422 dar, die als
eine Schnittstelle zwischen der Kompressions/Dekompressionsmaschine 418 der
Speichersteuerung 104 und den Speicherbänken 202, wie in 4 gezeigt ist, wirkt. Bei
einem Schreibbefehl überträgt die Speichervorrichtungsschnittstelle 422 Datenblöcke an die Speicherbänke 202 und
bei einem Lesebefehl gewinnt die Speichervorrichtungsschnittstelle 422 Datenblöcke von
den Speicherbänken 202 wieder.
Bei dem Ausführungsbeispiel
aus 10 überträgt die Speichervorrichtungsschnittstelle 422 serielle
Daten von dem Zwischenspeicher 420 an eine Hochgeschwindigkeits-ECC-Schaltung 1000.
Die ECC-Schaltung 1000 ist mit einem Hochgeschwindigkeitssequenzer 1002 verbunden,
der Daten entlang einer Anzahl von Verzweigungen entlang Pfaden
zu einer entsprechenden Anzahl von Zwischenspeichern 1004 sendet.
Während
eines Datenschreibbefehls empfängt
die ECC-Schaltung 1000 Daten
von dem Zwischenspeicher 420 und fügt Paritätsbits zu den Daten hinzu.
Wenn die Daten von den Speicherbänken 202 gelesen
werden, erfaßt
die ECC-Schaltung 1000 die Daten nach Fehlern und korrigiert
korrigierbare Fehler in den Daten und entfernt dann die Paritätsbits und
sendet die korrigierten Daten zurück an den Zwischenspeicher 420.
-
Während
des Datenschreibbefehls trennt der Hochgeschwindigkeitssequenzer 1002 die
seriellen Daten von der ECC-Schaltung 1000 in
mehrere parallele Pfade. Die Anzahl von Pfaden kann z. B. vier oder
jede Zahl sein, derart, daß die Übertragungsrate jedes
Zwischenspeichers 1004 mal der Anzahl von Zwischenspeichern
ausreicht, um die Übertragung von
Daten mit der hohen Geschwindigkeit während des Schnell-Seriell-Übertragungsmodus
beizubehalten. Die Zwi schenspeicher 1004 speichern die
Daten entlang der Pfade, die durch den Sequenzer 1002 getrennt
sind, zeitweilig, bilden die Daten in Blöcke und übertragen die Datenblöcke in entsprechende Speicherbänke 202.
Es wird darauf verwiesen, daß, wenn
das Datenspeichersystem 100 in dem Standardübertragungsmodus
ist, alle bis auf einen Zwischenspeicher 1004 untätig sein
können,
wenn sie nicht in Verwendung sind. In diesem Fall können Leistungseinsparungen
aufgrund der Verwendung von nur einem Zwischenspeicher 1004 zu
einem Zeitpunkt realisiert werden.
-
11 stellt
ein alternatives Ausführungsbeispiel
der Speichervorrichtungsschnittstelle 422 dar, bei dem
während
eines Datenschreibbefehls ein segmentierter Hochgeschwindigkeitszwischenspeicher 1100 serielle
Daten empfängt
und die Daten an einen Hochgeschwindigkeitssequenzer 1102 überträgt, der
die Daten in separate Blöcke
entlang einer Anzahl separater Pfade unterteilt. Jeder Block von Daten
wird in eine jeweilige ECC-Schaltung 1104 eingegeben, die
eine Parität
zu den Daten hinzufügt.
Die Datenblöcke
mit der hinzugefügten
Parität
werden in Speicherbänken 202 gespeichert.
Während
eines Datenlesebefehls gewinnen die ECC-Schaltungen 1104 Datenblöcke von
den unterschiedlichen Speicherbänken 202 wieder,
erfassen existierende Fehler, korrigieren die Fehler, entfernen
die Paritätsbits
und senden die Datenblöcke
an den Sequenzer 1102, der dann die Blöcke wieder zusammensetzt und
die Daten seriell wieder an den segmentierten Zwischenspeicher 1100 sendet.
-
Im folgenden wird Bezug auf die Verfahren zum
Betreiben des Datenspeichersystems 100 genommen, das oben
detailliert Bezug nehmend auf die 1 bis 11 beschrieben wurde. 12 stellt ein exemplarisches
Ausführungsbeispiel
eines Datenschreibbefehls dar, bei dem Daten, die in dem Host 102 erzeugt
werden, in den Speicher 106 geschrieben werden. 13 stellt ein exemplarisches
Ausführungsbeispiel
eines Datenlesebefehls, durch den Host 102 angefordert,
zum Lesen von Daten von dem Speicher 106 dar.
-
12 stellt
einen Datenschreibbefehl dar, der üblicherweise durch den Host 102 eingeleitet wird.
Der erste Schritt beinhaltet ein Einleiten der Schaltschaltungen
auf den Standardübertragungsmodus,
wie in Block 1200 angezeigt ist. Wie in einem Entscheidungsblock 1202 gezeigt
ist, wird ein Schritt eines Bestimmens, ob der Host 102 den
Schnell-Seriell-Übertragungsmodus
angefordert hat oder nicht, durchgeführt. Wenn der Schnell-Seriell-Übertragungsmodus
angefordert wird, wird der in Block 1204 angezeigte Schritt
durchgeführt.
Der Host-Steuerungslogikschaltungsaufbau 318 und der Speichersteuerungslogikschaltungsaufbau 424 senden
Signale an die Schaltersteuerungsschaltungen 500, 600, 700, 800 der
Schaltschaltungen 312 und 404. Die Schaltersteuerungsschaltungen 500, 600, 700, 800 konfigurieren
die Schalter 502, 602, 702, 802 zu einem
Zustand, der die Übertragung
von Daten in dem Schnell-Seriell-Übertragungsmodus erlaubt. Wenn
kein Befehl für
den Schnell-Seriell-Übertragungsmodus
gemacht wurde, fährt
der Fluß mit
Block 1206 fort. Es sollte ersichtlich sein, daß der Standardübertragungsmodus
ein Vorgabemodus sein kann, wobei das Datenspeichersystem 100 immer
in diesem Modus verbleibt, es sei denn, der Schnell-Seriell-Übertragungsmodus
wurde spezifisch angefordert. Das Datenspeichersystem 100 kann
jedoch auf die entgegengesetzte Weise derart konfiguriert sein, daß der Schnell-Seriell-Übertragungsmodus
der Vorgabemodus ist. Bei Ausführungsbeispielen,
bei denen mehr als zwei Übertragungsmodi
verfügbar
sind, kann der Entscheidungsblock 1202 einen Auswahlschritt
zum Auswählen
unter einer Anzahl unterschiedlicher Übertragungsmodi aufweisen.
-
Das Datenschreibverfahren kann an
diesem Punkt enden, wobei der Host 102 und die Speichersteuerung 104 Daten
in den Speicher 106 in einem der zwei und mehr Datenübertragungsmodi
schreiben. Wenn die Speichersteuerung 104 mit der Kompressions/Dekompressionsmaschine
418 konfiguriert ist, können
die verbleibenden Schritte aus 12 in
dem Datenschreibverfahren durchgeführt werden.
-
In Block 1206 komprimiert
die Kompressionsschaltung 902 die Daten, die in die Kompressions/Dekompressionsmaschine
418 kommen. Dann vergleicht die Kompressionserfassungsschaltung 904 die
eingehenden Daten mit den komprimierten Daten, die aus der Kompressionsschaltung 902 ausgegeben
werden, wie in Block 1208 angezeigt ist. Die Kompressionserfassungsschaltung 904 verwendet diesen
Vergleich, um zu bestimmen, ob die eingehenden Daten vor der Kompression
durch die Kompressionsschaltung 902 komprimiert wurden
oder nicht. Ein Entscheidungsblock 1210 zeigt den Schritt eines
Bestimmens an, ob die eingehenden Daten bereits komprimiert wurden,
und, falls dies der Fall ist, steuert den Fluß von Schritten zu Schritt 1212.
Bei diesem Schritt signalisiert die Kompressionserfassungsschaltung 904 der
Dateneingangssteuerungsschaltung 900, die eingehenden Daten
und nicht die komprimierten Daten auszuwählen. Die Dateneingangssteuerungsschaltung 900 wählt die
eingehenden Daten aus und fügt
ferner eine Kompressionsanzeige hinzu, die anzeigt, daß die gegenwärtigen Daten,
die in dem Speicher 106 gespeichert sind, „nicht komprimiert" sind, wie in Block 1214 angezeigt
ist.
-
Wenn die Kompressionserfassungsschaltung 904 in
dem Entscheidungsblock 1210 bestimmt, daß die eingehenden
Daten vor der Kompression von Daten durch die Kompressionsschaltung 902 nicht komprimiert
waren, fährt
der Verfahrensfluß mit
Block 1216 fort. In diesem Schritt signalisiert die Kompressionserfassungsschaltung 904 der
Dateneingangssteuerungsschaltung 900, daß die eingehenden
Daten zuvor nicht komprimiert wurden, und daß die neu komprimierten Daten
ausgewählt
werden sollen. Die Dateneingangssteuerungsschaltung 900 wählt die komprimierten
Daten aus der Kompressionsschaltung 902 aus und fügt einen
Kompressionsindikator (Block 1218) hinzu, der die vorliegenden
Daten, die in den Speicher 106 geschrieben werden, als „komprimierte" Daten etikettiert.
Nach den Auswahlschritten der Blöcke 1212 und 1216 und
den Kompressionsanzeigehinzufügungsschritten
der Blöcke 1214 und 1218 fährt ein
Fluß mit
Block 1220 fort, bei dem die ausgewählten Daten und der entsprechende
Kompressionsindikator in den Speicher 106 gespeichert werden.
-
13 stellt
ein Ausführungsbeispiel
eines Datenleseverfahrens dar. Blöcke 1306, 1308, 1310, 1312, 1314 und 1316 beziehen
sich auf Schritte, die bei dem Abschnitt des Datenleseverfahrens
enthalten sind, der eine Dekompression beinhaltet. Wenn das Datenspeichersystem 100 eine
Kompressions/Dekompressionsmaschine 418 aufweist, kann diesen
Schritten gefolgt werden. Wenn das Datenspeichersystem 100 keine
Kompression und Dekompression umfaßt, können diese Schritte weggelassen werden.
Ferner kann, wenn das Datenspeichersystem 100 die Schaltungsanordnung
aufweist, die die Schaltschaltungen 312, 404 und 416,
die Standardübertragungsschaltungen 304 und 408 und
die Schnell-Seriell-Übertragungsschaltungen 306 und 412 umfaßt, den
in den Blöcken 1300, 1302 und 1304 gezeigten
Schritten gefolgt werden. Wenn das Datenspeichersystem 100 keine
Schaltungsanordnung aufweist, können
diese Schritte weggelassen werden. Deshalb können der Kompressions- und
Dekompressionsschritt als separat von den Datenübertragungsmodusschaltungsschritten
betrachtet werden. Als ein alternatives Ausführungsbeispiel können die
Schritte der Kompression und Dekompression mit den Schritten der
Datenübertragungsmodusschaltungsschritte
umgekehrt werden, wenn das Datenspeichersystem 100 ein
Ausführungsbeispiel
aufweist, bei dem die Schaltungsanordnung zwischen dem Speicher 106 und
der Kompressions/Dekompressionsmaschine 418 angeordnet ist.
-
13 stellt
die Schritte dar, die bei dem Schalten zwischen den unterschiedlichen Übertragungsmodi
beinhaltet sind. Bei Block 1300 werden die Schaltschaltungen
auf den Standardübertragungsmodus
initialisiert. Der Host-Steuerungslogikschaltungsaufbau 318 und
der Speichersteuerungslogikschaltungsaufbau 424 signalisieren
den entsprechenden Schaltersteuerungsschaltungen 500, 600, 700 oder 800,
die Schalter 502, 602, 702 und 802 und
die Schalterpaare 512,
514, 612, 614, 712, 714, 812 und 814 derart
zu konfigurieren, daß die Standardübertragungsschaltungen 304 und 408 in den
Datenübertragungspfad
gekoppelt sind. Bei einem Entscheidungsblock 1302 bestimmt
das Datenspeichersystem 100, ob ein Befehl durchgeführt wurde
oder nicht, in dem Schnell-Seriell-Übertragungsmodus zu arbeiten.
Wenn der Entscheidungsblock 1302 bestimmt, daß der Schnell-Seriell-Übertragungsmodus angefordert
wurde, fährt
der Fluß mit Block 1304 fort,
bei dem das Datenspeichersystem 100 die Schalter und Schalterpaare
derart konfiguriert, daß die
Schnell-Seriell-Übertragungsschaltungen 306 und 412 in
den Datenübertragungspfad
gekoppelt werden. Sobald der Datenübertragungsmodus eingerichtet
wurde und die ordnungsgemäße Übertragungsschaltung
in den Datenübertragungspfad
geschaltet wurde, können
die Daten, falls dies nötig
ist, weiter dekomprimiert werden.
-
Das in 13 gezeigte
Ausführungsbeispiel weist
ferner einen Schritt auf, bei dem die Dekompressionsschaltung 908 die
gespeicherten Daten von dem Speicher 106 dekomprimiert,
wie in Block 1306 angezeigt ist. In Block 1308 erfaßt die Kompressionssymbolerfassungsschaltung 910 den
Kompressionsindikator, der die gespeicherten Daten begleitet. In
einem Entscheidungsblock 1310 bestimmt die Kompressionssymbolerfassungsschaltung 910 ferner,
ob der Kompressionsindikator der „Komprimiert"-Indikator ist oder
nicht. Falls dies der Fall ist, fährt der Fluß von Schritten mit Block 1312 fort,
bei dem die Kompressionssymbolerfassungsschaltung 910 der
Datenausgangssteuerungsschaltung 906 signalisiert, daß die dekomprimierten
Daten von der Dekompressionsschaltung 908 ausgewählt werden sollen.
Ansprechend wählt
die Datenausgangssteuerungsschaltung 906 die dekomprimierten
Daten aus. Die Schritte 1310 und 1312 können ferner
Schritte eines Erfassens des Typs von Kompressionsalgorithmus, der
während
der Kompression von Daten verwendet wird, und eines Aufforderns
der Dekompressionsschaltung 908, die Daten gemäß dem Typ
von verwendeten Kompressionsalgorithmus zu dekomprimieren, umfassen.
Wenn der Entscheidungsblock 1310 bestimmt, daß ein „Nicht-Komprimiert"-Indikator existiert,
fährt der
Fluß mit
Block 1314 fort, bei dem die Kompressionssymbolerfassungsschaltung 910 der
Datenausgangssteuerungsschaltung 906 signalisiert, die
nicht dekomprimierten Daten direkt von dem Speicher 106 im Gegensatz
zu den dekomprimierten Daten von der Dekompressionsschaltung 908 auszuwählen. An
diesem Punkt entfernt die Datenausgangssteuerungsschaltung 906,
die den geeigneten Satz von Daten ausgewählt hat, den Kompressionsindikator,
der während
einer Kompression hinzugefügt
wurde, wie in Block 1316 angezeigt ist, und die Daten werden
an den Host 102 übertragen (Block 1318).
-
Die Flußdiagramme der 12 und 13 zeigen
die Architektur, Funktionalität
und Operation möglicher
Implementierungen der Datenschreib- und Datenlesesoftware. Diesbezüglich stellt
jeder Block ein Modul, Segment oder einen Abschnitt eines Codes
dar, der eine oder mehrere ausführbare
Instruktionen zum Implementieren der einen oder der mehreren spezifizierten
Logikfunktionen aufweist. Es wird außerdem darauf verwiesen, daß bei einigen
alternativen Implementierungen die in den Blöcken notierten Funktionen außerhalb
der in den 12 und 13 gezeigten Reihenfolge
auftreten können.
Die beiden Blöcke 1310 und 1312 z.
B., die in 3 aufeinanderfolgend
gezeigt sind, können
tatsächlich
im wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal
in der umgekehrten Reihenfolge ausgeführt werden, und zwar abhängig von der
beinhalteten Funktionalität,
wie im Folgenden weiter verdeutlicht wird.
-
Das Datenschreib- und das -leseverfahren können als
ein Programm konfiguriert sein, das eine geordnete Auflistung ausführbarer
Instruktionen zum Implementieren von Logikfunktionen aufweist, können in
jedem computerlesbaren Medium zur Verwendung durch ein Instruktionsausführungssystem,
ein -gerät
oder eine -vorrichtung, wie z. B. ein computerbasiertes System,
ein prozessorgesteuertes System oder ein anderes System, das die
Instruktionen von dem Instruktionsausführungssystem, dem -gerät oder der
-vor richtung holen und die Instruktionen ausführen kann, ausgeführt sein.
In dem Kontext dieses Dokumentes kann ein „computerlesbares Medium" jedes Medium sein,
das das Programm zur Verwendung durch das Instruktionsausführungssystem, das
-gerät
oder die -vorrichtung enthalten, speichern, kommunizieren, weiterleiten
oder transportieren kann. Das computerlesbare Medium kann z. B.
ein elektronisches, magnetisches, optisches, elektromagnetisches,
Infrarot- oder Halbleitersystem, ein -gerät, eine -vorrichtung oder ein
Ausbreitungsmedium sein. Spezifischere Beispiele des computerlesbaren Mediums
umfassen folgende: eine elektrische Verbindung, die einen oder mehrere
Drähte
aufweist, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen
löschbaren,
programmierbaren Nur-Lese-Speicher
(EPROM oder Flash-Speicher) und optische Fasern. Es wird angemerkt,
daß das
computerlesbare Medium selbst Papier oder ein anderes geeignetes
Medium sein könnte,
auf das das Programm gedruckt wird, wenn das Programm elektronisch
z. B. durch ein optisches Abtasten des Papiers oder des anderen
Mediums erfaßt,
dann kompiliert, interpretiert oder anderweitig auf eine geeignete Weise,
falls nötig,
verarbeitet und dann in einem Computerspeicher gespeichert werden
kann. Zusätzlich
umfaßt
der Schutzbereich der vorliegenden Erfindung ein Ausführen der
Funktionalität
der Ausführungsbeispiele
der vorliegenden Offenbarung in einer Logik, die in hardware- und
softwarekonfigurierten Medien ausgeführt ist.