-
HINTERGRUND DER ERFINDUNG
-
1. GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft allgemein die Steuerung des Datentransfers zu
und/oder von Speicherbauelementen und betrifft insbesondere SATA
(Serie ATA) Steuerungen.
-
2. BESCHREIBUNG DES STANDS
DER TECHNIK
-
In
Computersystemen sind Festplatten und andere Laufwerken, etwa CD
oder DVD-Laufwerke, Bandlaufwerke,
nicht stationäre
Geräte
mit hoher Kapazität,
ZIP-Laufwerke und CDRW-Laufwerke Speichereinrichtungen, die mit
dem Computer über
eine Schnittstelle zum Definieren physikalischer und logischer Erfordernisse
für das
Ausführen
eines Datentransfers zu und von den Einrichtungen verbunden werden
können.
Eine der populärsten
Schnittstellen, die in modernen Computersystemen verwendet wird, ist
im Allgemeinen als IDE (integrierte Ansteuerelektronik) bekannt
ist. Die IDE-Ansteuerschnittstelle, die besser als AT- (anspruchsvolle
Technologie) Anbindungs-(ATA)Scbnittstelle bezeichnet wird, wurde 1986
entwickelt und wurde etwa um 1988 standardisiert. Die Spezifikation,
die eine Möglichkeit
bietet, Zusatzdiskettenlaufwerke an der PC-(Personalcomputer)Architektur
vorzusehen, wurde zu einer Vielzahl jüngerer Spezifikationen, etwa
ATA/ATAPI, EIDE, ATA-2, Fast ATA, ATA-3, Ultra ATA, Ultra DMA (UDAMA),
ATA-4 sowie viele weitere Weiterentwicklungen ergänzt. All
diese Spezifikationen definieren Speicherschnittstellen für das Anbinden
paralleler Speicherbauelemente und werden im Weiteren als kompatibel
mit ATA bezeichnet.
-
Während die
parallele ATA-Verbindung die wesentliche interne Speicherbindung
für Arbeitsplatzrechner
und Mobilrechner bislang auf Grund ihrer relativen Einfachheit,
hohen Leistungsfähigkeit und
geringen Kosten repräsentiert,
besitzen ATA-kompatible Schnittstellen eine Reihe von Einschränkungen,
die ihr die Möglichkeit
nehmen, eine weitergehende Leistungsfähigkeit zu entwickeln. Einige
dieser Einschränkungen
sind beispielsweise die Erfordernis eines 5-Volt-Signalpegels und
die hohe Anschlussstiftzahl. Diese und andere Eigenschaften paralleler
ATA-Schnittstellen sind die Gründe,
warum derartige Schnittstellen nicht erweitert werden können, um
diverse Geschwindigkeitsverdoppelungsstufen zu unterstützen, wie
dies in der Vergangenheit der Fall war, so dass diese Schnittstelle
sich ihrer Leistungsgrenze nähert.
-
Aus
diesem Grund und auch um ein weiterentwickelbares Leistungsverhalten
für die
nächste Dekade
bereitzustellen, wurde die serielle ATA (SATA) als eine ATE-Spezifikation
der nächsten
Generation entwickelt. SATA ist ein entwicklungsbedingter Ersatz
für die
parallele ATA-Schnittstelle für
physikalische Speicher und ist so gestaltet, um 100% softwarekompatibel
mit heutigen ATA's
zu sein, dabei aber eine wesentlich geringere Anschlussstiftzahl aufzuweisen,
so dass dünnere
flexiblere Kabel möglich
sind. Auf Grund der beibehaltenen Softwarekompatibilität sind keine Änderungen
in heutigen Treibern und Betriebssystemen erforderlich. Ferner trägt die geringere
Anschlussstiftzahl ebenso zu Vorteilen im Systementwurf von Hauptplatinen
und ihren Chipsätzen
und anderen integrierten Siliziumkomponenten bei.
-
Wie
zuvor erwähnt
ist, ist eine der Hauptmerkmale der SATA-Schnittstelle die Softwarekompatibilität zu parallelen
ATA-Steuerungen. Dies kann besser verstanden werden aus einem Vergleich
der 1 und 2, die die Verbindung bei
der standardmäßigen ATA
und der seriellen ATA (SATA) zeigen.
-
1 zeigt, wie ATA-kompatible
parallele Speicherelemente mit einem Computersystem verbunden sind,
um einen Datentransfer zu und von den Elementen zu ermöglichen,
wobei das Computersystem ein Betriebssystem 115 aufweist,
das die Hauptsoftware darstellt, die auf dem Computer läuft. Es
können
weitere mehrere Anwendungsprogramme 100, 105, 110 vorhanden
sein, die für
gewöhnlich eine
Anwenderschnittstelle zur Bereitstellung von Information für den Anwender
und zum Empfang von Eingabedaten aufweisen. Selbstverständlich existieren
auch Anwendungsprogramme ohne Anwenderschnittstelle. Ferner gibt
es im Allgemeinen eine Betreibersoftware 120, die eine
zusätzliche
Softwarekomponente oder ein Teil des Betriebssystems 115 sein
kann und die insbesondere betrieben wird, um mit der ATA-kompatiblen
Hardware zu wechselwirken. Diese Hardware beinhaltet den ATA-Adapter 125,
der Datensignale mit Elementen 135, 140 über einen
parallelen Anschluss 130 austauscht. Der ATA-Adapter 125 wird
auch als ATA-Steuerung – häufig zusammen
mit dem parallelen Anschluss 130 – bezeichnet.
-
2 zeigt die entsprechenden
Teile eines Computersystems mit einer SATA-Schnittstelle, wobei
keine Änderung
in den Anwendungsprogrammen 100, 105, 110,
dem Betriebssystem 115 oder dem Treiber 120 erforderlich
sind. Auf der Hardwareseite ist ein SATA-Adapter 200 vorgesehen,
der mit einem oder mehreren seriellen Anschlüssen 210, 215 zum Austausch
von Signalen mit seriellen Elementen 220, 225 verbunden
ist. D. h., während
lediglich ein SATA-Adapter 200 in 2 gezeigt ist, beinhalten andere Konfigurationen
einen einzelnen SATA-Adapter 200 für jedes Element 220, 225.
Das SATA unterstützende
Computersystem aus 2 unterscheidet sich
von dem System aus 1 dahingehend,
dass die Elemente und Anschlüsse
seriell sind und das ein geeigneter SATA kompatibler Adapter 200 vorgesehen
ist. Bei genauerer Betrachtung des Adapters kann man erkennen, dass
der SATA-Adapter 200 so verstanden werden kann, dass dieser
einen ATA-Adapter 125 aufweist, der mit einem Parallel-Seriell-Wandler 205 in
Verbindung steht, um eine parallel zu seriell und seriell zu parallel-Umwandlung
von Datensignalen durchzuführen.
-
Da
weder in dem Betriebssystem 115 noch in der Treibersoftware 120 spezifische
Anpassungen an die SATA-Spezifikation erforderlich sind, ist die Schnittstelle
aus 2 softwarekompatibel
zu der Technik aus 1.
Somit ist SATA eine Austauschlösung
und heutige Software läuft
auf der neuen Architektur ohne Modifizierung. In Anbetracht dieses Merkmals
und der zuvor beschriebenen anderen Vorteile und wenn ferner berücksichtigt
wird, dass SATA kompatible Steuerungen und Bauelemente ungefähr die gleichen
Kosten wie konventionelle Einheiten aufweisen, kann erwartet werden,
das SATA letztlich vollständig
parallele ATA-Schnittstellen ersetzen wird. Die Anwendung von SATA
durch die Industrie wird einem Übergang
in Phasen folgen und es wird einen Punkt geben, an dem parallele
und serielle ATA-Fähigkeiten
verfügbar
sind.
-
In
SATA-Zentral(host)steuerungen und anderen Zentralsteuerungen für Speicherelemente
gibt es Datenkommunikation in zwei Richtungen, d. h. von dem Zentralrechner
zu dem Speicherelement und von dem Element zu dem Zentralrechner.
Ferner kann es für
jede Richtung zwei mögliche
Datentransfermodi geben: den DMA (direkter Speicherzugriff) Modus
und den PIO (programmierter Ein/Aus) Modus. Das Betreiben der Zentralsteuerung
in dem PIO-Modus wird typischerweise in Hinblick auf die Rückwärtskompatibilität durchgeführt. Bei
Berücksichtigung
der beiden möglichen
Datentransfermodi und der beiden Kommunikationsrichtungen ist es
für eine
derartige Zentralsteuerung erforderlich, vier unterschiedliche Datenströme zu handhaben.
-
Wie
es sich gezeigt hat, führt
dies zu einer Reihe von Nachteilen. Beispielsweise die Erfordernis,
vier verschiedene Datenströme
zu handhaben, macht es erforderlich, Schaltungskomponenten bereitzustellen,
die speziell für
jeden einzelnen Strom geeignet sind. Dies vergrößert den Schaltungsaufwand
auf einem integrierten Schaltungschip und führt daher zu erhöhten Herstellungskosten.
Da ferner die gesamte spezifische Schaltung an die Gesamtarchitektur
angepasst werden muss, ergibt sich ein deutlicher Abfall in der
Effizienz.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Es
wird eine verbesserte Zentralsteuerungstechnik bereitgestellt, die
die Effizienz und die Schaltungsdichte verbessern kann, ohne die
Herstellungskosten zu erhöhen.
-
In
einer Ausführungsform
wird eine SATA-Zentralsteuerung bereitgestellt, die in der Lage ist,
einen Rechner-zu-Gerät
und Gerät-zu-Rechner-Kommunikation
auszuführen.
Die Steuerung ist in einem PIO-Datentransfermodus und in einem DMA-Datentransfermodus
betreibbar. Die Zentralsteuerung umfasst eine Puffereinheit zum
Speichern von Daten und eine Datenstromauswahleinheit zum Auswählen eines
Datenstromes zur Zuleitung an die Puffereinheit. Die Datenstromauswahleinheit
ist so angeschlossen, um jederzeit einen Rechner-zu-Gerät-Datenstrom
in dem PIO-Datentransfermodus und/oder einen Rechner-zu-Gerät-Datenstrom
in dem DMA-Datentransfermodus und/oder einen Gerät-zu-Rechner-Datenstrom in dem
PIO-Datentransfermodus und/oder einen Gerät-zu-Rechner-Datenstrom in
dem DMA-Datentransfermodus zu empfangen. Die Datenstromauswahleinheit
ist ferner so ausgebildet, um aus den empfangenen Datenströmen den
Datenstrom auszuwählen,
der der Puffereinheit zuzuleiten ist.
-
In
einer weiteren Ausführungsform
wird eine Speicherelementzentralsteuerung bereitgestellt, die in
der Lage ist, eine Rechner-zu-Gerät und eine Gerät-zu-Rechner-Kommunikation auszuführen. Die Zentralsteuerung
ist in einen programmierten Eingabe/Ausgabe-Datentransfermodus und
in einen Datentransfermodus mit direktem Speicherzugriff betreibbar.
Die Zentralsteuerung umfasst eine Puffereinheit zum Speichern von
Daten und eine Datenstromauswahleinheit zur Auswahl eines Datenstroms zur
Zuleitung zu der Puffereinheit. Die Datenstromauswahleinheit ist
so angeschlossen, um jederzeit einen Rechner-zu-Gerät-Datenstrom
in dem programmierten Eingage/Ausgabe- Datentransfermodus und/oder einen Rechner-zu-Gerät-Datenstrom
in dem Datentransfermodus mit direktem Speicherzugriff und/oder
einen Gerät-zu-Rechner-Datenstrom
in dem programmierten Eingabe/Ausgabe-Datentransfermodus und/oder
einen Gerät-zu-Rechner-Datenstrom in dem
Datentransfermodus mit direktem Speicherzugriff zu empfangen. Die
Datenstromauswahleinheit ist ferner so ausgebildet, um aus den empfangenen
Datenströmen
den Datenstrom auszuwählen, der
der Puffereinheit zuzuleiten ist.
-
In
einer weiteren Ausführungsform
wird ein integrierter Schaltungschip zum Ausführen einer Rechner-zu-Gerät- und einer
Gerät-zu-Rechner-ATA-Kommunikation
durchzuführen,
wobei der integrierte Schaltungschip in einem PIO-Datentransfermodus
und einem DMA-Datentransfermodus
betreibbar ist. Der integrierte Schaltungschip umfasst eine Pufferschaltung
zum Speichern von Daten und eine Datenstromauswahlschaltung zum
Auswählen eines
Datenstroms für
die Zuleitung zu der Pufferschaltung. Die Datenstromauswahlschaltung
ist so angeschlossen, um zu jeder Zeit einen Rechner-zu-Gerät-Datenstrom
in dem PIO-Datentransfermodus und/oder einen Rechner-zu-Gerät-Datenstrom
in dem DMA-Datentransfermodus
und/oder einen Gerät-zu-Rechner-Datenstrom
in dem PIO-Datentransfermodus
und/oder einen Gerät-zu-Rechner-Datenstrom
in dem DMA-Datentransfermodus
zu empfangen. Die Datenstromauswahlschaltung ist ferner ausgebildet,
aus den empfangenen Datenströmen
den Datenstrom auszuwählen,
der der Pufferschaltung zuzuleiten ist.
-
In
einer noch weiteren Ausführungsform
wird ein Verfahren zum Betreiben einer SATA-Zentralsteuerung zur Durchführung einer
Rechner-zu-Gerät- und
einer Gerät-zu-Rechner-Kommunikation in
einem PIO-Datentransfermodus und einem DMA-Datentransfermodus bereitgestellt.
Das Verfahren umfasst das Empfangen eines Rechner-zu-Gerät-Datenstromes in dem
PIO-Datentransfermodus und/oder eines Rechner-zu-Gerät-Datenstroms in dem
DMA-Datentransfermodus und/oder eines Gerät-zu-Rechner-Datenstroms in dem
PIO-Datentransfermodus und/oder eines Gerät-zu-Rechner-Datenstroms in dem
DMA-Datentransfermodus, Auswählen
aus den empfangenen Datenströmen
eines Datenstroms, der zu speichern ist, und Speichern der Daten
des ausgewählten
Datenstroms in einer Puffereinheit.
-
In
einer noch weiteren Ausführungsform
wird ein Verfahren zum Betreiben einer Speicherelementszentralsteuerung
zur Durchführung
einer Rechner-zu-Gerät-
und einer Gerät-zu- Rechner-Kommunikation
in einem programmierten Eingabe/Ausgabe-Datentransfermodus und in
einem Datentransfermodus mit direktem Speicherzugriff bereitgestellt.
Das Verfahren umfasst: Empfangen zu einer beliebigen Zeit einen
Rechner-zu-Gerät-Datenstrom
in dem programmierten Eingabe/Ausgabe-Datentransfermodus und/oder
einen Rechner-zu-Gerät-Datenstrom
im Datentransfermodus mit direktem Speicherzugriff und/oder einen
Gerät-zu-Rechner-Datenstrom
in dem programmierten Eingabe/Ausgabe-Datentransfermodus und/oder
einen Gerät-zu-Rechner-Datenstrom
in dem Datentransfermodus mit direktem Speicherzugriff, Auswählen aus den
empfangenen Datenströmen
einen zu puffernden Datenstrom und Speichern der Daten des ausgewählten Datenstromes
in einer Puffereinheit.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
begleitenden Zeichnungen sind in die Anmeldung mit integriert und
bilden einen Teil davon, um die Prinzipien der Erfindung zu erläutern. Die Zeichnungen
sind nicht dazu gedacht, die Erfindung lediglich auf die dargestellten
und beschriebenen Beispiele einzuschränken, wie die Erfindung hergestellt
und verwendet werden kann. Weitere Merkmale und Vorteile gehen aus
der folgenden spezielleren Beschreibung der Erfindung hervor, wie
sie auch in den begleitenden Zeichnungen dargestellt ist, wobei:
-
1 eine
Blockansicht ist, die eine konventionelle ATA-Verbindung darstellt;
-
2 eine
Blockansicht ist, die eine standardmäßige SATA-Verbindung zeigt;
-
3 eine
Blockansicht ist, die eine SATA-Architektur gemäß einer Ausführungsform
zeigt;
-
4 eine
SATA-Schleifenabarbeitung zeigt, wenn eine Gerät-zu-Rechner-Kommunikation im
DMA-Datentransfermodus stattfindet;
-
5 Pufferfüllpegel
zeigt gemäß einer
Ausführungsform,
die bei einem Gerät-zu-Rechner-Kommunikation im
DMA-Datentransfermodus zu verwenden ist;
-
6 die
Komponenten der Puffereinheit gemäß einer Ausführungsform
zeigt;
-
7 ein
Zeitablaufdiagramm ist, das das Verhalten des Ausleseports der Puffereinheit
gemäß einer
Ausführungsform
zeigt;
-
8 ein
Zeitablaufdiagramm ist, das das Verhalten des Schreibports der Puffereinheit
in einem vorbelegten Modus gemäß einer
Ausführungsform zeigt;
-
9 ein
Zeitablaufdiagramm ist, das das Verhalten des Schreibports der Puffereinheit
in einem Direktadressiermodus gemäß einer Ausführungsform
zeigt; und
-
10 ein
Flussdiagramm ist, das Schritte darstellt, die in einer Ausführungsform
zum Betreiben der Puffereinheit angewendet werden.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Die
anschaulichen Ausführungsformen
der vorliegenden Erfindung werden nun mit Bezug zu den Figuren beschrieben,
wobei ähnliche
Elemente und Strukturen durch gleiche Bezugszeichen belegt sind.
-
Es
sei nun auf die Figuren hingewiesen und insbesondere auf 3,
die die SATA-Rechnerarchitektur
gemäß einer
Ausführungsform
zeigt, und wobei eine SATA-Zentralsteuerung 300 vorgesehen
ist, die mit einer physikalischen Schnittstelleneinheit 335 verbunden
ist. Die SATA-Zentralsteuerung 300 ist in zwei wesentliche
Blöcke
unterteilt; die Zentralschnittstelleneinheit 305 und die
SATA-Steuerungseinheit 310. Die Zentralschnittstelleneinheit 305 stellt
in der vorliegenden Ausführungsform
eine interne Hochgeschwindigkeitsschnittstelle zu einer Hypertransport-Steuerung
bereit, die vorgeschaltet ist. Die SATA-Steuerungseinheit 310 kann
eine Transport-, Verbindungs- und physikalische Ebeneneinheit enthalten,
wie sie in der SATA-Spezifikation bezeichnet ist. Die physikalische
Schnittstelleneinheit 335 kann für das Seriellmachen/Parallelmachen
und das Übertragen/Empfangen
der analogen Differenzsignale zuständig sein und kann vollständig von
der SATA-Zentralsteuerung 300 getrennt sein.
-
Die
Zentralschnittstelleneinheit 305 umfasst eine Busmastereinrichtung 315,
die DMA-Übertragungen
durch Zugriff auf den Rechnerspeicher mittels einer internen Hochgeschwindigkeitsschnittstelle durchführt, und
umfasst eine Zielschnittstelleneinheit 220, die diverse
Konfigurations-, Steuer- und Statusregister enthalten kann, auf
die von der Rechnersoftware über
eine interne Hochgeschwindigkeitszielschnittstelle zugegriffen wird.
-
Auf
Grund der beiden möglichen
Datentransfermodi (PIO, DMA) für
die Rechner-zu-Gerät- und Gerät-zu-Rechner-Kommunikation
werden vier unterschiedliche Datenströme gehandhabt. Wie in 3 dargestellt
ist, werden die Gerät-zu-Rechner-PIO
und DMA-Daten in die Zentralschnittstelleneinheit 305 von
der SATA-Steuerungseinheit 310 eingespeist. Die Gerät-zu-Rechner-PIO-Daten
erreichen dann die Zielschnittstelleneinheit 320, während die
Gerät-zu-Rechner-DMA-Daten
die Busmastereinrichtung 315 erreichen. In Richtung stromabwärts werden
Rechner-zu-Gerät-PIO-Daten
von der Zielschnittstelleneinheit 220 ausgegeben, während Rechner-zu-Gerät-DMA-Daten
von der Busmastereinrichtung 315 eintreffen. In beiden
Datentransfermodi werden dann die Rechner-zu-Gerät-Daten von der Zentralschnittstelleneinheit 305 an
die SATA-Steuerungseinheit 210 weitergeleitet.
-
Wie
man aus 3 erkennen kann, kann die Zentralschnittstelleneinheit 305 ferner
eine Puffereinheit 325 aufweisen, die ein FIFO-Puffer (als
erstes eingelesen als erstes ausgelesen) sein kann, und kann eine
Datenstromauswahleinheit 330 aufweisen, die ein Multiplexer
sein kann. Der Multiplexer 330 ist mit der Busmastereinrichtung 315 so
verbunden, um Rechner-zu-Gerät-DMA-Daten
zu empfangen und ist mit der Zielschnittstelleneinheit 320 so
verbunden, um Rechner-zu-Gerät-PIO-Daten
zu empfangen, und ist mit der SATA-Steuerungseinheit 310 so verbunden,
um Gerät-zu-Rechner-PIO
und DMA-Daten zu empfangen. Der Multiplexer 330 wählt einen
der empfangenen Datenströme
aus und leitet die ausgewählten
Daten zu der Puffereinheit 325. Die Puffereinheit 325 ist
mit der Busmastereinrichtung 315 verbunden, um Gerät-zu-Rechner-DMA-Daten
bereitzustellen, ist mit der Zielschnittstelleneinheit 320 verbunden,
um Gerät-zu-Rechner-PIO-Daten
zu liefern und ist mit der SATA-Steuerungseinheit 310 verbunden,
um Rechner-zu-Gerät-PIO-
und DMA-Daten zu liefern.
-
Somit
wird ein gemeinsam genutzter Datenpuffer bereitgestellt, der kontinuierlich
Datenströme an
der SATA-Datenverbindung für
gemeinsame Betriebsmodi bereitstellen kann. Die Puffertechnik der Ausführungsformen
stellt sicher, dass kein Datenverlust auftritt, sofern nicht ein
Systemfehler auftritt. Somit wird eine Puffertechnik für SATA-Zentralsteuerungen
oder andere Speicherelementsteuerungen bereitgestellt, wobei ein
Datenpuffer gemeinsam für
den PIO und den DMA-Modus in beiden Richtungen verwendet wird.
-
Wenn
die Rechner-zu-Gerät-Kommunikation in
dem DMA-Datentransfermodus ausgeführt wird, kann die Puffereinheit 325 insbesondere
so ausgebildet sein, um von der Hypertransportsteuerung ankommende
Daten zu speichern. Die Busmastereinrichtung 315 kann dann
sicherstellen, dass freier Pufferplatz für alle anstehenden Leseanforderungen
bereitsteht. Jeder Lesebefehl kann eine maximale dWort-(Doppelwort)Anzahl
von 16 anfordern. Die Anzahl der anstehenden Leseanforderungen kann
dann die Größe der Puffereinheit 325 für Rechner-zu-Gerät-DMA-Daten
definieren.
-
Die
erreichte Rechner-zu-Gerät-Datenrate hängt hauptsächlich von
der Latenzzeit des Zentralrechners und der Zeit, die zum Leeren
des Puffers 325 erforderlich ist, ab. Charakteristisch
für die
Rechnerlatenzzeit sind Werte zwischen 0.8 μs < LH < 1.2 μs. Die Zeit,
die zum Auslesen einer Speicherzeile aus dem Datenpuffer 325 erforderlich
ist, kann für
die volle SATA-Datenrate von 1.50 MB/s zu 0.43 μs abgeschätzt werden. Wenn angenommen
wird, dass lediglich Zugriffe bei voller Rechnerspeicherzeile erfolgen,
kann die Nutzgröße durch
64 Bytes definiert werden, wobei die Zeit für das Übertragen von 16 dWörtern ohne
Pausierung bei 100 MHz Taktfrequenz 160 ns trägt, die Bearbeitungszeit 40
ns beträgt,
die durchschnittliche Latenzzeit 0.08 μs und die Zentralrechnerlatenzzeit
1.2 μs beträgt. Die
maximal erreichte Datenrate kann als eine Funktion der Anzahl der
anstehenden Anforderungen von 33.51 MB/s × n definiert werden.
-
Um
daher die volle SATA-Datenrate von 150 MB/s mit diesen Parametern
zu erreichen, sollten mindestens 5 anstehende Leseanforderungen
von der Busmastereinrichtung 315 unterstützt werden. Die
Puffereinheit 325 der vorliegenden Ausführungsform besitzt daher eine
minimale Puffergröße von 5 Speicherzeilen,
d.h. 320 Bytes. Bei dieser Rechnung wird unterstellt, dass alle
Antworten in der gleichen Sequenz eintreffen, in der diese angefordert
wurden, unter der Voraussetzung der fixierten Rechnerlatenzzeit.
Wenn jedoch Antworten außerhalb
der Reihenfolge eintreffen, müssen
diese ggf. neu geordnet werden, bevor diese dem SATA-Gerät zugeleitet
werden. Dies verringert die erreichte Rechner-zu-Gerät-DMA-Datenrate, die zuvor
berechnet wurde.
-
Die
maximale Schnittstellendatenrate kann erreicht werden, wenn Pakete
mit der maximalen Paketlänge
von 16 dWörtern
angefordert werden. Dies kann sichergestellt werden durch die Rechnersoftware,
die Deskriptoren für
die physikalischen Gebiete (PRD) definiert, die auf große Speichergebiete
zeigen. Ansonsten muss die Busmastereinrichtung 315 auch
kleinere Pakete anfordern, um der Regel von Cachespeicherzeilen
angepassten Anforderungen zu entsprechen.
-
Die
volle SATA-Schnittstellendatenrate von 150 MB/s wird für den gemeinsamen
Betriebsmodus bereitgestellt, in welchem andere Geräte mit der
Hypertransport-Steuerung verbunden sind und auch andere Paketlängen, die
kleiner als 16 dWörter
sind, auftreten. Somit kann die Anzahl der unterstützten anstehenden
Anforderungen größer als
5 sein. Um die geforderte Datenrate sicherzustellen, wird in der vorliegenden
Ausführungsform
eine Puffergröße von 6
Speicherzeilen, d. h. 96 dWörter
oder 384 Bytes gewählt,
um 6 anstehende Datenleseanforderungen zu unterstützen.
-
Im
Falle, dass die Puffereinheit 325 in dem Rechner-zu-Gerät-DMA-Datentransfermodus
gelehrt wird, kann die SATA-Steuerungseinheit 310 "Halte"-Anweisungen in den übertragenen
Datenstrom anstelle von Daten einfügen.
-
Es
wird nun der Funktionsmodus erläutert,
in dem die Puffereinheit 325 so gesteuert wird, um Gerät-zu-Rechner-DMA-Daten
zu handhaben; dabei wählt
der Multiplexer 330 den ankommenden Gerät-zu-Rechner-DMA-Datenstrom
von der SATA-Steuerungseinheit 310 aus, und die Puffereinheit 325 gibt
die übertragenen
Daten an den Zentralrechner mittels der Busmastereinrichtung 315 weiter.
Die vorliegende Ausführungsform
stellt ferner einen Mechanismus bereit, um ein Überlaufen des Puffers zuverlässig zu
vermeiden.
-
In
der vorliegenden Ausführungsform
sendet der Zentralrechner, wenn die Puffereinheit 325 in
Begriff ist, voll gefüllt
zu werden, Halteanweisungen zu dem Gerät, um den Datentransfer zu
stoppen. Das Gerät
antwortet dann mit spezifischen Halteanweisungen anstelle von Daten.
Der Datentransfer von dem Gerät
kann jedoch unter Umständen
nicht unmittelbar nach Empfang der Halteanweisung gestoppt werden,
da es möglich
sein kann, dass bis zu 20 gültige
Daten-dWörter
folgen, nachdem der Zentralrechner Halteanweisungen zu dem Gerät über die serielle
Schnittstelle gesendet hat. Zudem kann die SATA-Zentralsteuerung 300 selbst
eine Latenzzeit von 12 dWörtern
zwischen dem Erkennen des letzten Puffer speicherplatzes und dem
Aussenden der Halteanweisungen aufweisen. Wenn Daten von der seriellen
Schnittstelle empfangen werden, kann die gleiche Latenzzeit auch
innerhalb der Busmastereinrichtung 315 auftreten bis Daten
an der Puffereinheit 325 eintreffen. Somit kann eine 44
dWortschleifenabarbeitung (Pipeline) vorhanden sein, wie dies in 4 gezeigt
ist.
-
Um
diese Situation zu handhaben, kann die Puffereinheit 325 der
vorliegenden Ausführungsform so
gestaltet sein, dass diese zwei vordefinierte Füllpegel aufweist, wenn eine
Gerät-zu-Rechner-Kommunikation
in dem DMA-Datentransfermodus ausgeführt wird. Dies ist detaillierter
in 5 gezeigt.
-
Der "Hochwasser" Füllpegel 500 ist
so definiert, dass immer noch 44 dWörter frei sind, so dass Halteanweisungen
rechtzeitig gesendet werden können.
Um zu vermeiden, dass der Datentransfer wieder und wieder unterbrochen
wird, ist ein "Fortsetzungs-"Füllpegel 505 so definiert,
dass 48 dWörter frei
sind. Der Füllpegel 505 kann
angewendet werden, um zu spezifizieren, wenn der Zentralrechner den
Datentransfer fortsetzen darf, wenn dieser zuvor unterbrochen wurde.
-
Um
nicht nur Pufferüberläufe, sondern
auch unnötige
Festplattenstoppvorgänge
für den
gemeinsamen Betriebsmodus zu vermeiden, kann die Arbitrationszeit
des Hypertransportsteuerungsblocks in Betracht gezogen werden. Während dieser
Zeit kann die Speichereinheit 325 unter Umständen nicht
geleert werden, sondern mit 150 MB/s gefüllt werden, was maximal zu
135 Bytes oder 33.75 dWörtern führt, die
an dem SATA-Gerät
ankommen. Um diese Menge an Daten zwischenzuspeichern, ohne den "Hochwasser-"Füllpegel 500 zu
erreichen, kann die Größe der Puffereinheit 325 auf
5 Speicherzeilen, d.h. 80 dWörter
oder 320 Bytes festgelegt werden.
-
Es
wird nun der PIO-Datentransfermodus der Puffereinheit 325 erläutert; die
PIO-Datenhandhabung
kann durch eine große
CPU-Auslastung, durch eine geringe Nutzgröße und durch Nichtverwenden
mehrfacher anstehender Anforderungen begrenzt sein. Die vorliegende
Ausführungsform
kann daher einfach die Datenintegrität in dem Sinne sicherstellen,
dass Pufferüberläufe und
Unterläufe
vermieden werden. Somit wird der SATA-Ablaufsteuerungsmechanismus sowohl in
der Gerät-zu-Rechner und
in der Rechner-zu-Gerät-Richtung
angewendet, wie dies auch für
die DMA-Zugriffe der Fall ist.
-
Somit
nutzt die vorliegende Erfindung zwei 32-Bit-Register zum Sammeln
vollständiger
dWörter für Rechner-zu-Gerät-PIO-Übertragungen
und die Flusssteuerung kann ohne weitere Verzögerung angewendet werden, indem
nur Halteanweisungen anstelle von Daten gesendet werden. Wenn der
Flusssteuerungsmechanismus für
Gerät-zu-Rechner-PIO-Datenübertragungen
angewendet wird, kann die SATA-Schleifenabarbeitung betrachtet werden,
wie sie zuvor mit Bezug zu 4 erläutert ist. Somit
kann der Datenpuffer 325 der vorliegenden Ausführungsform
so gestaltet sein, um eine Speichertiefe von wenigstens 45 dWörtern in
dem Gerät-zu-Rechner-PIO-Datentransfermodus
aufzuweisen.
-
Zusammengefasst
gilt: die Puffereinheit 325 der vorliegenden Ausführungsform
besitzt eine minimale Speicherkapazität von 384 Bytes für Rechner-zu-Gerät-DMA-Daten,
320 Bytes für
Gerät-zu-Rechner-DMA-Daten,
8 Bytes für
Rechner-zu-Gerät-PIO-Daten
und 180 Bytes für
Gerät-zu-Rechner-PIO-Daten.
Da die SATA-Spezifikation sicherstellen kann, dass niemals zwei
dieser vier Datenströme
gleichzeitig auftreten, sind in den Ausführungsformen lediglich ein
Datenpuffer, der für
alle Datenübertragungen
verwendet wird, vorgesehen, wobei ein beachtlicher Betrag an Chipfläche gespart wird.
Die Tiefe des gemeinsamen Puffers 325 kann dann durch die
größte minimale
Pufferkapazität,
d. h. diejenige, die für
die Rechner-zu-Gerät-DMA-Übertragungen
berechnet ist, definiert werden.
-
Wie
bereits zuvor erwähnt
ist, werden die vier Datenströme
durch den Multiplexer 330 gebündelt. Der Multiplexer 330 verwendet
ein Auswahlsignal, das aus dem Busmasteraktivsignal, dem Busmasterlese/Schreibauswahlsignal
und dem PIO-Lesesignal aus der Transportschichteinheit der SATA-Steuerungseinheit 310 erzeugt
wird.
-
Die
Puffereinheit 325 kann so implementiert sein, dass Leseantworten
(Rechner-zu-Gerät-DMA-Daten), die von
der Busmastereinrichtung 315 angefordert werden, außer der
Reihe eintreffen und wieder geordnet werden, bevor diese an die
SATA-Steuerungseinheit 310 übertragen werden. Daher kann
die interne Schreibadresse so manipuliert werden, um den Puffer 325 wie
einen RAM (Speicher mit wahlfreiem Zugriff) zu beschreiben, aber
diesen wie einen gewöhnlich
bekannten FIFO auszulesen.
-
In 6 sind
die Komponenten des gemeinsam genutzten SATA-Puffers 325 gemäß einer
Ausführungsform
dargestellt. Der Puffer 325 stellt einen 32-Bit Lese- und
Schreibdatenan schlussport bereit, besitzt eine konfigurierbare Tiefe
von beispielsweise 128 dWörtern,
ermöglicht
Wort/dWort Lese- und Schreibvorgänge,
erlaubt gleichzeitige Lese- und Schreibprozesse, ermöglicht es,
auf direkte FIFO-Adressen zu schreiben (Wort-justiert mit 8 Bit breiten
Adressen), ermöglicht
ein Löschen
des FIFO (d. h. ein Zurücksetzen
der Lese- und Schreibzeiger) und liefert Statussignale, etwa voll,
leer, verbleibende Daten und freier Speicherplatz.
-
Der
gemeinsam genutzte, an die Geschwindigkeit angepasste SATA-FIFO
aus 6 kann eine Antwortneuordnung für Rechner-zu-Gerät-DMA-Übertragungen
unterstützen.
Somit kann es möglich
sein, Daten in den FIFO zu schreiben, wobei eine direkte Adresse
(FIFO-Adresse),
die in der für den
Busmaster zuständigen
Tabelle gespeichert ist, anstelle des internen Schreibzeigers genutzt
wird. Der Schreibzeiger kann verwendet werden, um die Anzahl der
gültigen
in den FIFO 325 geschriebenen Daten zu berechnen. Eine
direkte Adressierung kann aktiviert werden, indem das Signal für den Direktadressenmodus
gesetzt wird. Nachdem die gleiche Menge an Daten in den FIFO 325 unter
Nutzung der direkten Adressierung geschrieben wurde, kann der Schreibzeiger
aktualisiert werden. Das Aktualisierungswertsignal spezifiziert
die Anzahl der Wörter, mit
denen der Zeiger zu setzen ist. Der FIFO Lesezeiger kann aktualisiert
werden, wenn das Aktualisierungssignal bestätigt ist. Zwei Taktzyklen nach
dem Aktualisieren des Schreibzeigers kennzeichnet das Signal für die verbleibenden
Daten den neuen Betrag gültiger
Daten, die an den FIFO-Ausleseanschluss anstehen.
-
In
der vorliegenden Ausführungsform
schreiben die SATA-Steuerungseinheit 310 oder die Zielschnittstelleneinheit 320 nicht
in den FIFO 325 unter dem direkten Adressierungsmodus.
In diesem Falle kann der Schreibzeiger mit jedem Schreibzugriff
aktualisiert werden. Somit ist das Aktualisierungssignal mit dem
negierten Schreibfreigabesignal verbunden, wohingegen das Aktualisierungswertsignal
zwischen zwei und eins für
gWort-weise oder wortweise Zugriffe hin- und herspringt. Das Direktadressierungsmodussignal
kann dann auf logisch Null festgelegt werden. Für das Blockauslesen aus dem
FIFO 325 kann es unter Umständen nicht sichtbar sein, ob
der FIFO 325 im direkten Adressierungsmodus beschrieben wird
oder nicht.
-
PIO
und DMA-Daten werden über
die interne Hochgeschwindigkeitsschnittstellenverbindung in Worteinheiten
oder dWorteinheiten übertragen,
und ein Datenrahmen, der an dem Gerät eintrifft, kann auch eine
ungerade Anzahl von Wörtern
enthalten. Somit kann es möglich
sein, den gemeinsam genutzten FIFO 325 auch in Worteinheiten
zu lesen und zu beschreiben. Das Wort-Freigabesignal kann dann verwendet
werden, um das höchst-
und niedrigst signifikante Wort der FIFO-Dateneingabe freizugeben. Wenn
das dWortlesesignal gesetzt wird, werden Daten in dWorteinheiten
gelesen. Ansonsten enthält
das niedrigst signifikante Wort der Datenausgabe das gültige Wort,
das aus dem FIFO 325 gelesen wird.
-
Um
einen wortweisen und dwortweisen Zugriff zu ermöglichen, enthält der FIFO 325 zwei
16 Bit breite RAM-Elemente mit zwei Anschlüssen 600, 605,
die beide einen 16 Bit Datenport und eine Kapazität von 128
Wörtern
aufweisen. Somit kann es möglich
sein, ein dWort mit einem wortjustieren Adressenoffset zu lesen
oder zu schreiben.
-
Lese-
und Schreibzeiger 615, 610 der vorliegenden Erfindung
besitzen eine Breite von 9 Bits (1 Bit mehr als die FIFO-Adresse),
um in der Lage zu sein, zwischen einem vollen und einem leeren Füllstand
zu unterscheiden, wenn der Lese- und der Schreibzeiger verglichen
werden. Daher kann das signifikanteste Bit des Lesezeigers 615 invertiert
werden, bevor der Schreibzeiger 610 verwendet wird, um das
Vollsignal und das Freisignal zu berechnen.
-
Alle
Schreibporteinträge
der beiden RAM-Elemente mit zwei Anschlüssen 600, 605 können in
Register zwischengespeichert werden, um einen korrekten Zeitablauf
sicherzustellen. Somit kann der Schreibzeiger 610 in ein
Register eingelesen werden, bevor dieser mit dem Lesezeiger 615 verglichen
wird, um das Leeranzeige(flag)signal und das Signal für verbleibende
Daten zu berechnen. Ansonsten kann die Information, dass etwas in
den RAM geschrieben wurde, schneller zu dem Leseanschluss übertragen
worden sein, als die Daten in dem RAM verfügbar sind.
-
In
der vorliegenden Ausführungsform
wird auf den FIFO 325 an seinen Lese- und Schreibport mit
dem selben Taktsignal zugegriffen, so dass keine Taktsignalsynchronisierung
erforderlich ist.
-
7 bis 9 sind
Zeitablaufdiagramme, die den Zeitablauf des Schnittstellensignals
zeigen.
-
In 7 ist
das Verhalten des Leseports dargestellt. Das Verhalten des Schreibports
ist in den 8 und 9 im voreingestellten
Modus (8) und im Direktadressiermodus (9) gezeigt.
In dem Direktadressiermodus werden das Freisignal und das Vollsignal
nicht verwendet.
-
In
den 6 bis 9 ist das Taktsignal das Leseschreibtaktsignal.
Alle Flipflops werden mit der ansteigenden Flanke dieses Signals
angesteuert. Die Dateneingabe ist 32 Bits breit. Das Wort Freigabesignal
gibt das niedrigst signifikante Wort mit Bit 0 und das signifikanteste
Wort mit Bit 1 frei. Das Schreibfreigabesignal ist aktiv bei niedrigem
Pegel. Das Direktadressierungsmodussignal ist ein Signal, das bei
hohem Pegel aktiv ist, um den Schreibport Direktadressierungsmodus
freizugeben. Das FIFO-Adresssignal ist die 8 Bit breite direkte
FIFO Wortadresse. Das Aktualisierungssignal aktualisiert den Schreibzeiger
und ist im hohen Pegel aktiv. Das Aktualisierungswertsignal wird
dem Schreibzeiger hinzugefügt,
wenn es bestätigt
ist. Das Aktualisierungswertsignal spezifiziert die Anzahl von Wörtern, die
dem Schreibzeiger hinzuzuaddieren sind. Das Freisignal spezifiziert
den verfügbaren
freien FIFO-Speicherplatz in Worteinheiten. Das Vollsignal ist eine
1 Bit-Marke. Das Löschsignal
ist aktiv im hohen Pegel, um den Lese- und Schreibzeiger zurückzusetzen.
Das Datenausgangssignal ist 32 Bit breit. Das Lesefreigabesignal
ist aktiv bei niedrigem Pegel. Das Signal für die verbleibenden Daten spezifiziert die
Anzahl der in dem FIFO verbleibenden Daten in Wörtern.
-
Gemäß 10 kann
die Zentralsteuerung betrieben werden, in dem ein Auswahlsignal
im Schritt 100 erzeugt wird, um den Multiplexer 330 zu steuern,
wie dies oben beschrieben ist. Abhängig von dem Auswahlsignal
wählt der
Multiplexer 330 einen der empfangenen Datenströme im Schritt 1005 aus und
leitetet den ausgewählten
Datenstrom zu der Puffereinheit 325. Der Puffer 325 führt dann
die zuvor erläuterten
Speicheroperationen aus (Schritt 1010).
-
Zusammenfassend
gilt: Die Ausführungsformen
ermöglichen
die gemeinsame Nutzung eines Datenpuffers für den PIO und den DMA-Modus
in beiden Richtungen. In einer Ausführungsform ist der DMA-Modus
ein UDMA-Modus.
-
Es
wird die volle SATA-Datenrate für
den gemeinsamen Betriebsmodus mit ausreichender Flexibilität für Variationen
der zugeführten
Hypertransportdaten bereitgestellt.
-
Die
bereitgestellte Architektur erleichtert eine im Hinblick auf die
Chipfläche
optimierte Implementierung. Die erforderliche kombinatorische Logik,
die Zustandsmaschinen mit begrenzten Zuständen und die Konfigurationsregister
können
am besten mit Synthesewerkzeugen optimiert werden. Durch Ausnutzen
eines gemeinsam verwendeten FIFO's,
um Rechner-zu-Gerät-
und Gerät-zu-Rechner-Datenströme für PIO und
DMA-Übertragungen
zwischenzuspeichern, wird die Datenpufferung am effizientesten ausgeführt.
-
Ferner
ist der Entwurf modular, so dass ein Wiederverwenden von Untermodulen
für andere
Projekte oder Zwecke möglich
ist. Die Zentralschnittstelleneinheit 305 liefert einen
Zugriff für
die SATA-Steuerungseinheit 310 über die PIO und FIFO-Schnittstelle.
Somit ist es möglich,
den Zentralschnittstelleneinheitsblock 305 nicht nur für eine SATA-Implementierung,
sondern auch als eine IDE-Steuerungszentralschnittstelle einzusetzen.
Die IDE-Steuerung liefert dann die parallele Schnittstelle und die
diversen PIO-DMA-Zeitabläufe,
da diese innerhalb der ATA/ATAPI-Spezifikation definiert sind.
-
Es
sollte beachtet werden, dass nicht nur die Gesamtmenge des Speichers
reduziert wird, indem ein gemeinsam genutzter Puffer anstelle von
vier separaten Puffern verwendet wird. Es wird auch eine gewisse
kombinatorische Fläche
eingespart, da die Puffersteuerungslogik lediglich einmal vorgesehen ist.
-
Des
weiteren stellt der gemeinsame genutzte Puffer 325 eine
einfache Datenschnittstelle zu der Transportebeneneinheit in der
SATA-Steuerungseinheit 310 bereit. Somit muss die Transportebeneneinheit
nicht unterschiedliche Datenschnittstellen für DMA- und PIO-Zugriffe bereitstellen.
Die Transportebeneneinheit muss nicht zwischen PIO- und DMA-Daten unterscheiden.
Dies wird von dem FIFO-Multiplexer 330 bewerkstelligt,
der dann lediglich ein Signal von der Transportebeneneinheit erfordert.
-
Ferner
ist anzumerken, dass ein großer
gemeinsam genutzter FIFO 320 mehr Flexibilität für Gerät-zu-Rechner-DMA
und PIO-Daten-Übertragungen bereitstellt.
-
Obwohl
die Erfindung in Bezug auf die physikalischen Ausführungsformen,
die mit der Erfindung konform sind, beschrieben ist, erkennt der
Fachmann, dass diverse Modifizierungen, Variationen und Verbesserungen
der vorliegenden Erfindung im Lichte dieser technischen Lehre und
angesichts der angefügten
Patentansprüche
durchgeführt
werden können, ohne
von dem Grundgedanken und dem Bereich der Erfindung abzuweichen.
Ferner wurden die Bereiche, von denen angenommen wird, dass der Fachmann
mit diesen vertraut ist, hierin nicht beschrieben, um nicht unnötigerweise
die hierin beschriebene Erfindung zu verdunkeln. Daher ist es selbstverständlich,
dass die Erfindung nicht durch die speziellen anschaulichen Ausführungsformen
beschränkt
ist, sondern lediglich durch den Bereich der angefügten Patentansprüche.