-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft Computersysteme. Im Besonderen betrifft
die vorliegende Erfindung die Kommunikation zwischen verschiedenartigen
Vorrichtungen an Low-Pin-Count-Bus bzw. einem Bus mit einer reduzierten
Anzahl von Leitungen in einem Computersystem.
-
BESCHREIBUNG
DES STANDS DER TECHNIK
-
Herkömmliche
Legacy-Computersysteme weisen eine Vielzahl von Peripherie- und
Speichervorrichtungen auf, die über
einen Bus gemäß der Industry
Standard Architecture (ISA) oder einen Erweiterungsbus (X-Bus) mit
dem Chipsatz oder dem Prozessor des Systems kommunizieren. Der Chipsatz
oder Prozessor des Systems muss eine große Anzahl von Pins (z.B. ungefähr 50 bis
70 Pins) sowie eine zugeordnete Schaltkreisanordnung aufweisen,
um die ISA-Bus- oder X-Bus-Signale zu unterstützen, die eingesetzt werden,
um eine Schnittstelle zwischen dem Chipsatz oder dem Prozessor und
den Legacy-Peripheriegeräten
vorzusehen, mit Ein-/Ausgabe-Steuervorrichtungen (E/A-Steuervorrichtungen)
wie etwa Parallelanschluss-Steuereinheiten,
Steuereinheiten für
serielle Anschlüsse,
Super-E/A-Steuereinheiten, Floppy-Diks-Steuereinheiten, Tastatur-Steuereinheiten
und Speichervorrichtungen wie etwa nichtflüchtige Speichervorrichtungen,
die zum Beispiel BIOS-Informationen
speichern (BIOS als englische Abkürzung von Basic Input-Output
System).
-
Die
große
Anzahl an Pins, die zur Unterstützung
der Standards für
den ISR-Bus und den X-Bus erforderlich ist, erhöhen allgemein die Kosten für das Gesamtsystem.
Zum Beispiel sind größere Einheiten
für einen Chipsatz
oder einen Prozessor erforderlich. Größere Einheiten für eine hohe
Anzahl von Pins kosten allgemein mehr als kleinere Einheiten für weniger
Pins, und wobei sie ferner anfälliger
sind für
Probleme in Bezug auf die Fertigungsqualität und die Zuverlässigkeit
während
der Montage der Einheit und den Systemintegrationsprozessen. Ferner
benötigen
Einheiten mit größerer Anzahl
von Pins einen größeren Anteil
der Oberfläche
auf der gedruckten Leiterplatte (PCB), auf der ein Computersystem
implementiert werden kann. Somit wäre es wünschenswert, den ISA-Bus oder
den X-Bus in einem Computersystem durch einen Bus zu ersetzen; der
die gleichen Arten von Peripheriegeräten unterstützt, jedoch eine im Verhältnis geringere
Anzahl von Pins oder Signalleitungen verwendet.
-
Die
ISA-Bus- und X-Bus-Standards begrenzen ferner den Speicherplatz
oder den E/A-Adressraum auf 24 Bits oder ungefähr 24 MByte Speicherplatz oder
E/A-Adressraum. Da bestimmte Prozessoren und Chipsätze einen
Adressraum von 32 Bit oder 64 Bit unterstützen können, war bislang ein Aliasing
erforderlich, um den Prozessoradressraum auf den ISA-Adressraum umzusetzen.
Aliasing kann erheblichen zusätzlichen
Platzbedarf erzeugen, so dass die Leistung des Computersystems negativ
beeinflusst werden kann. Somit wäre
es wünschenswert,
die ISA-Bus- und X-Bus-Standards durch einen Bus zu ersetzen, der
einen Adressraum unterstützen
kann, der mit dem Adressraum des Prozessors oder des Chipsatzes
kompatibel und der potenziell unbegrenzt ist.
-
Die
ISA-Bus- und X-Bus-Standards weisen den zusätzlichen Nachteil auf, dass
sie asynchron sind. Dies erhöht
allgemein die Komplexität
der Konstruktion für
Bauteile, die ISA-Bus- und
X-Bus-Signale erzeugen und auf diese ansprechen müssen. Wünschenswert
wäre es
somit, die ISA-Bus- und X-Bus-Standards durch einen Bus zu ersetzen,
der eine synchrone Kommunikation zwischen Komponenten bzw. Bauteilen
unterstützen
kann, um die Komplexität
der Schaltkreisanordnung der Busschnittstelle allgemein zu verringern.
-
Ein
Computersystem, das ein Weiterleitungsprotokoll für eine DMA-Anforderung
implementiert, ist aus dem U.S. Patent US-A-5.664.197 bekannt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Vorgesehen
ist gemäß einem
ersten Aspekt der vorliegenden Erfindung ein System gemäß dem gegenständlichen
Anspruch 1.
-
Vorgesehen
ist gemäß einem
zweiten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen
Anspruch 6.
-
Beschrieben
wird ein System mit einem Host, der mit einer Speichervorrichtung
und einer peripheren Steuervorrichtung gekoppelt ist. Der Host ist über einen
Bus mit der peripheren Steuervorrichtung gekoppelt, wobei der Bus
eine Mehrzahl von Universalsignalleitungen aufweist, die dazu dienen,
zeitmultiplexierte Adressen, Daten und Steuerinformationen zu übertragen.
Die periphere Steuervorrichtung führt Transaktionen eines Direktspeicherzugriffs
(DMA) mit der Speichervorrichtung über den Host und den Bus aus.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung werden aus den
beigefügten
Zeichnungen und der folgenden genauen Beschreibung deutlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Merkmale und Vorteile der vorliegenden Erfindung sind in den Abbildungen
der beigefügten
Zeichnungen beispielhaft und ohne einzuschränken dargestellt, wobei gleiche
Elemente mit den gleichen Bezugszeichen bezeichnet sind. In den
Zeichnungen zeigen:
-
1 ein
Ausführungsbeispiel
eines Computersystems mit einem Low-Pin-Count-Bus (LPC);
-
2 ein
Ausführungsbeispiel
einer LPC-Schnittstelle für
einen Host;
-
3 ein
Ausführungsbeispiel
eines Zustandsmaschinendiagramms zur Implementierung einer Direktspeicherzugriffsanforderung
(DMA-Anforderung);
-
4 ein
Ausführungsbeispiel
einer DMA-Anforderungstransaktion;
-
5 ein
Ausführungsbeispiel
einer Zustandsmaschine zur Implementierung von DMA-Lese- und Schreibtransaktionen;
-
6 ein
Ausführungsbeispiel
einer DMA-Schreibtransaktion;
-
7 ein
Ausführungsbeispiel
einer DMA-Lesetransaktion; und
-
8 ein
Ausführungsbeispiel
eines Taktdiagramms für
einen Schwachleistungsbetriebsmodus.
-
GENAUE BESCHREIBUNG
DER ERFINDUNG
-
Offenbart
wird ein Computersystem mit einem Low-Pin-Count-Bus (LPC-Bus). Der
LPC-Bus kann den ISA-Bus oder den X-Bus in einem Computersystem
ersetzen, wobei ein Kommunikationsmechanismus zwischen einem Host,
wie etwa einem Prozessor oder einem Chipsatz, und Peripheriegeräten, wie
etwa E/A- oder E/A-Steuerbausteinen und Speicherbausteinen, vorgesehen
wird. In einem Ausführungsbeispiel
kann der LPC-Bus Universalsignalleitungen aufweisen, die im Wesentlichen
alle zeitmultiplexierten Adressen, Daten und Steuerinformationen übertragen,
um Speicher-, E/A-, Direktspeicherzugriffs- (DMA) und Bus-Master-Transaktionen
zischen dem Host und den peripheren Bausteinen zu implementieren.
-
Ein
beabsichtigter Vorteil des LPC-Busses ist es, dass er mit deutlich
weniger Signalleitu9ngen (z.B. ungefähr 6 bis 8 Signalleitungen)
zur Ausführung
aller Funktionen auskommen kann, die vorher von den ungefähr 50 bis
70 Signalleitungen gemäß dem ISA-
Bus- oder dem X-Bus-Standards ausgeführt worden sind. Da die Anzahl
der Signalleitungen bei dem LPC-Bus im Vergleich zu den ISA-Bus-
und X-Bus-Standards erheblich reduziert werden kann, kann auch die
Anzahl der erforderlichen Pins an dem Chipsatz oder Prozessor eines
Computers zur Unterstützung
des LPC-Busses erheblich reduziert werden. In ähnlicher Weise kann eine in
jedem peripheren Baustein vorgesehene LPC-Schnittstelle eine gleichermaßen geringe
Anzahl von Pins für eine
Schnittstellenfunktion mit dem Chipsatz oder Prozessor über den
LPC-Bus verwenden. Dies kann bei dem Komponentenhersteller zu niedrigeren
Kosten für
Einheiten führen
sowie zu niedrigeren Systemkosten für den Hersteller des Computersystems.
Dies kann zusätzlich
zu einer höherwertigen
und zuverlässigeren
Packung und Systemintegration führen.
-
Ein
weiterer beabsichtigter Vorteil des LPC-Busses ist es, dass der
Speicher- und/oder E/A-Adressraum nicht auf eine bestimmte Anzahl
von Adressleitungen in einem Datenübertragungsbus beschränkt ist, vielmehr
kann der LPC-Bus seriell so viele Adresssignale übertragen, wie dies für die Adressierung
jedes Adressraums erforderlich ist. Somit kann auf ein herkömmliches
Aliasing des Speicher- oder E/A-Adressraums verzichtet
werden.
-
Ein
weiterer beabsichtigter Vorteil des LPC-Busses ist es, dass es sich
bei der LPC-Schnittstellenlogik und/oder – Software, die für die Schnittstellenfunktion
zwischen einem Chipsatz oder einem Prozessor mit einem peripheren
Baustein verwendet werden kann, um eine Software handeln kann, die
mit existierenden Computern kompatibel ist, die ISA-Bus- oder X-Bus-Standards kompatibel
sind. Das heißt,
seitens der Betriebssystemsoftware oder der Anwendungsprogramme
sind keine speziellen Treiber oder Konfigurationen für die Ausführung auf
einem LPC-Bus-System im Vergleich zu einem ISA-Bus- oder X-Bus-System erforderlich.
-
Ein
wiederum weiterer beabsichtigter Vorteil des LPC-Busses ist es,
dass es sich um einen synchronen Bus handeln kann, der eine LPC-Schnittstellenschaltung
in Host- und peripheren Bausteinen freigibt, so dass allgemein eine
weniger komplexe Schaltkreisanordnung als bei asynchronen Busschnittstellen-Konstruktionen erforderlich
ist.
-
Die
Abbildung aus 1 zeigt ein Ausführungsbeispiel
eines Computersystems 100 mit einem Host 102,
der über
einen LPC-Bus 124 mit peripheren Vorrichtungen bzw. Bausteinen
gekoppelt ist, die E/A- oder E/A-Steuervorrichtungen 104 und 106 und
die Speichervorrichtung 108 aufweist. Bei dem Host 102 kann
es sich um einen Chipsatz, Prozessor oder jede andere Steuerlogik
handeln, die eine Intelligenz für
eine Schnittstellenfunktion mit dem LPC-Bus 124 aufweist.
Der Host 102 kann auch die erforderliche Logik für eine Schnittstellenfunktion
mit einem optionalen ISA-Bus 126 und einem optionalen PCI-
oder Host-Bus 128 aufweisen. Der Host 102 überträgt Adressen,
Daten und Steuerinformationen über
den Bus 130, bei dem es sich um einen lokalen Bus oder
einen anderen Speicherbus handeln kann, mit dem Speicher 110.
Der Speicher 130 kann der Haupt- oder primäre Speicher
für das
System 100 sein, wie etwa ein dynamischer Direktzugriffsspeicher (DRAM),
ein statischer Direktzugriffsspeicher (SRAM) oder jeder andere flüchtige oder
nichtflüchtige
Speichertyp, der zum Beispiel Betriebssystemsoftware, Anwendungscode
oder Programmdaten speichern kann.
-
Bei
den E/A-Vorrichtungen 104 und 106 kann es sich
um E/A-Steuervorrichtungen
handeln, die in einem E/A-Adressraum adressierbar sind und den Zugriff
auf periphere Komponenten wie etwa Floppy-Disk-Laufwerke, Tastaturen
und dergleichen steuern. Bei den E/A-Vorrichtungen 104 und 106 kann
es sich zum Beispiel jeweils zum eine Floppy-Disk-Steuereinheit,
eine Steuereinheit für
einen seriellen Anschluss, eine Parallelanschluss-Steuereinheit,
eine Infrarot-Steuereinheit (IR-Steuereinheit), eine Tastatur-Steuereinheit,
eine Audio-Steuervorrichtung
oder eine Video-Steuervorrichtung handeln. Die E/A-Vorrichtung 104 kann eine
Super-E/A-Vorrichtung sein, die E/A-Steuereinheiten 120 und 122 aufweist,
bei denen es sich jeweils zum Beispiel um eine Floppy-Disk-Steuereinheit,
eine Steuereinheit für
einen seriellen Anschluss, eine Parallelanschluss-Steuereinheit,
eine Infrarot-Steuereinheit (IR-Steuereinheit), eine Tastatur-Steuereinheit,
eine Audio-Steuervorrichtung
oder eine Video-Steuervorrichtung handeln kann.
-
Bei
der Speichervorrichtung 108 handelt es sich um eine periphere
Vorrichtung, die in dem Speicherraum adressierbar ist. Zum Beispiel
kann die Speichervorrichtung 108 jede Art von flüchtigem
oder nichtflüchtigem
Speicher aufweisen, wie etwa DRAM, SRAM, Flash-Speicher, elektrisch
programmierbaren Nur-Lesespeicher (EPROM), elektrisch löschbaren,
programmierbaren Nur-Lesespeicher (EEPROM), magnetische Speichermedien
oder optische Speichermedien. Die Speichervorrichtung 108 kann
Systemstartcode bzw. Systemhochlaufcode, Verwaltbarkeitscode, Betriebssystemdaten,
Anwendungscode oder Programmdaten speichern oder als Notizblock
für den
Host 102 oder die E/A-Vorrichtungen 104 und 106 fungieren.
Der Systemhochlaufcode kann die erforderliche Software für die Konfiguration
oder Boot-Komponenten in dem System 100 und auch BIOS-Informationen
aufweisen.
-
Der
Host 102 und alle peripheren Bausteine bzw. Vorrichtungen 104, 106 und 108 weisen
entsprechende LPC-Schnittstellen 118, 112, 114 und 116 zur
Erzeugung von LPC-Signalen und zur Reaktion auf LPC-Signale an dem
LPC-Bus 124 auf. Die LPC-Schnittstellen können dem System 100 die
Implementierung von Speicher-, E/A-, DMA- und Bus-Master-Transaktionen über den
LPC-Bus 124 ermöglichen.
Jede LPC-Schnittstelle weist entweder einen bzw. mehrere Eingabe-
oder Ausgabe-Pin(s) für
den Empfang oder das Übertragen
der Signale LAD[3:0], LCLK und LFRAME# auf. Hiermit wird festgestellt,
dass das einem Signalnamen folgende Rautensymbol "#" anzeigt, dass es sich bei dem Signal
um ein aktiv niedriges Signal handelt. Bei alternativen Ausführungsbeispielen
können
aktiv niedrige Signale als aktiv hohe Signale verändert werden.
-
Die
Signalleitungen LAD[3:0] sind Universalsignalleitungen, die zeitmultiplexierte
Adressen, Daten und Steuerinformationen über den LPC-Bus 124 und
zwischen dem Host 102 und den peripheren Vorrichtungen 104, 106 und 108 übertragen.
Ob LAD[3:0] Adressen, Daten oder Steuerinformationen zu einem bestimmten
Zeitpunkt überträgt kann
durch den Betriebskontext des Systems 100 bestimmt werden,
wie dies nachstehend im Text näher
beschrieben wird. LAD[3:0] ist zwar als 4-Bit-Bus dargestellt, wobei
er aber auch jede andere Anzahl von Signalleitungen aufweisen kann,
um einen gewünschten
Zweck für
die Übertragung
von zeitmultiplexierten Adressen, Daten und Steuerinformationen
zu erfüllen.
Ein 4-Bit-Bus kann von Vorteil sein, um die Anzahl der erforderlichen
Pins an jeder LPC-Schnittstelle 112 – 118 zu reduzieren
sowie um die Anzahl der Pins und Packungsgrößen des Hosts 102 und
der peripheren Vorrichtungen 104, 106 und 108 zu
reduzieren.
-
LCLK
ist ein Taktsignal, das von der LPC-Schnittstelle 118 oder
jede andere Schaltkreisanordnung in dem Host 102 (nicht
abgebildet) erzeugt werden kann. Alternativ kann LCLK durch einen
Systemtakt (nicht abgebildet) erzeugt werden, mit einem Kristall
oder einer anderen Taktschaltung. In einem Ausführungsbeispiel kann es sich
bei LCLK um den PCI-Takt von dem PCI-Bus 128 handeln.
-
LFRAME#
wird durch die LPC-Schnittstelle 118 des Host 102 erzeugt,
um den Anfang und/oder das Ende von LPC-Transaktionen oder Zyklen
anzuzeigen. Jede der LPC-Schnittstellen 112, 114 und 116 kann
LFRAME# überwachen
oder abtasten, um zu bestimmen, wann eine LPC-Transaktion beginnt
oder endet. Wenn zum Beispiel LFRAME# durch den Host 102 behauptet
(z.B. niedrig) wird, überwachen
die LPC-Schnittstellen 112, 114 und 116 der
entsprechenden peripheren Vorrichtungen 104, 106 bzw. 108 LAD[3:0],
um zu bestimmen-, ob die Transaktion oder der Zyklus für sie bestimmt
ist. Wenn eine Transaktion nicht an eine bestimmte periphere Vorrichtung
gerichtet ist, kann diese periphere Vorrichtung in vorteilhafter
Weise in einen Niederleistungsmodus eintreten und ihre Zustandsmaschinen
von dem Bus trennen und/oder die eigenen takte torsteuern. Wenn
LFRAME# über
mehr als einen LCLK-Zyklus behauptet wird, können die LPC-Schnittstellen 112, 114 und 116 nur
auf die Startsteuerinformationen an LAD[3:0] während dem letzten LCLK-Zyklus ansprechen, während dem
LFRAME# aktiv ist. In Tabelle 1 sind beispielhafte Definitionen
der Startsteuerinformationen an LAD[3:0] bei behauptetem LFRAME#
zusammengefasst.
-
-
LFRAME#
kann auch zum Abbrechen oder Beenden von LPC-Transaktionen verwendet werden. Zum Beispiel überwachen
die LPC-Schnittstellen 112, 114 und 116 der
peripheren Vorrichtungen 104, 106 bzw. 108 weiter
LFRAME# während LPC-Transaktionen.
Wenn LFRAME# während
einer LPC-Transaktion behauptet wird, beenden die peripheren Vorrichtungen 104, 106 und 108 die
Ansteuerung von LAD[3:0] und brechen ihre LPC-Transaktion ab. In einem Ausführungsbeispiel
behauptet der Host 102 LFRAME# für eine Anzahl von LCLK-Zyklen
(z.B. vier Taktzyklen), um sicherzustellen, dass die Abbruchanzeige
von allen peripheren Vorrichtungen erkannt wird. Während einem
oder mehren dieser LCLK-Zyklen kann der Host 102 auch vorbestimmte Daten
an LAD[3:0] steuern. In einem Ausführungsbeispiel steuert der
Host 102 1111 an LAD[3:0], während LFRAME# behauptet wird,
um eine Abbruchsequenz anzuzeigen. Am Ende der Abbruchsequenz kann
die Behauptung von LFRAME# aufgehoben werden, bevor eine neue LPC-Transaktion
beginnt.
-
In
alternativen Ausführungsbeispielen
kann LFRAME# zwischen zwei beliebigen Vorrichtungen bzw. Bausteinen
(z.B. einem Host und einer peripheren Vorrichtung) in einem beliebigen
System als unabhängiges Steuersignal
an einer unabhängigen
Steuerleitung (getrennt von dem Bus) verwendet werden, um den Beginn oder
den Abbruch einer Transaktion anzuzeigen, wie etwa einer Speicher-,
E/A-, Bus-Master- oder DMA-Transaktion.
-
Der
LPC-Bus 124 kann auch ein Rücksetzsignal LRESET# aufweisen,
das in jede der LPC-Schnittstellen 112, 114, 116 und 118 eingegeben
wird und die LPC-Schnittstellen auf einen bekannten Zustand zurücksetzt
(z.B. einen Ruhezustand). In einem Ausführungsbeispiel kann es sich
bei LRESET# um das gleiche Rücksetzsignal
wie ein PCI-Rücksetzsignal
an dem PCI-Bus 128 handeln.
-
Die
E/A-Vorrichtungen 104 und 106 können auch
entsprechende DMA-Anforderungssignale LDRQ0# und LDRQ1# aufweisen,
die auf separaten Steuerleitungen an die LPC-Schnittstelle 118 des
Host 102 vorgesehen werden. LDRQ0# und LDRQ1# können zur Übermittlung
von codierten DMA-Kanalanforderungen an den Host 102 vor
der Ausführung
einer DMA- oder Bus-Master-Transaktion verwendet werden. Jede E/A-Vorrichtung
kann ein eindeutiges LDRQ#-Signal aufweisen, so dass die E/A-Steuereinheiten 120 und 122 der
peripheren Vorrichtung eine DMA-Kanalanforderung an LDRQ0# gemeinsam
nutzen.
-
Der
LPC-Bus 124 kann auch ein Niederleistungs- oder Bereitschaftssignal
LPCPD# aufweisen, das durch den Host 102 an jede der peripheren
Vorrichtungen 104 – 108 auf
einer separaten Steuerleitung ausgegeben werden kann. Wie dies in
der Abbildung aus 8 veranschaulicht ist, kann
der Host 102 LPCPD# (z.B. niedrig) zum Zeitpunkt t0 asynchron
behaupten, um zu bewirken, dass die peripheren Vorrichtungen 104 – 108 in
einen Niederleistungsmodus eintreten. Nach der Erkennung der Behauptung
von LPCPD# durch den Host 102 halten die peripheren Vorrichtungen 104 – 108 alle
LPC-Transaktionen an und können
auch einen Dreizustand oder eine Steuerung von LAD[3:0] an einen
bekannten Zustand vorsehen. Der Host 102 kann auch LFRAME#
nach der Behauptung von LPCPD# an einen bekannten Zustand steuern
(hoch oder niedrig). In dem Niederleistungsmodus kann LCLK zum Zeitpunkt
t1 abgeschaltet werden, und die peripheren Vorrichtungen 104–108 können ihre
Zustandsmaschinen und/oder eine andere Logik abschalten. In einem
Ausführungsbeispiel
beträgt
der zeitliche Abstand zwischen t0 und t1 mindestens 30 Mikrosekunden.
Beim Verlassen des Niederleistungsmodus kann LCLK zum Zeitpunkt
t2 erneut asynchron gestartet und über einen Zeitraum ausgeführt werden,
bevor die Behauptung von LPCPD# zum Zeitpunkt t3 aufgehoben wird.
In einem Ausführungsbeispiel
beträgt
der zeitliche Abstand zwischen t2 und t3 mindestens 100 Mikrosekunden.
-
Danach
kann LRESET# zum Zurücksetzen
von peripheren Vorrichtungen 104 – 108 vom Zeitpunkt
t3 auf t4 verwendet werden. In einem Ausführungsbeispiel beträgt der zeitliche
Abstand zwischen t3 und t4 mindestens 60 Mikrosekunden.
-
Der
Host 102 und die peripheren Vorrichtungen 104 – 108 können auch
zusätzliche
Seitenband-Eingabe- und/oder -Ausgabesignale aufweisen, die in ISA-
oder PCI-Bussen verwendet werden, einschließlich Unterbrechungssignale
(z.B. SERIRQ und SMI#), zusätzliche
Taktsignale (z.B. CLKRUN#) und Power-Management-Signale, wie dies nachstehend im Text
näher beschrieben
wird.
-
Unter
Verwendung von ungefähr
6 bis 9 Signalleitungen kann der LPC-Bus 124 in einem Ausführungsbeispiel
erhebliche Signal- und
Pin-Count-Einsparungen gegenüber
herkömmlichen
ISA-Bus- oder X-Bus-Bauteilen
oder -Systemen vorsehen. Zum Beispiel kann es sein, dass die folgenden
ISA-Bus- oder X-Bus-Signale, die für gewöhnlich in Plug&Play-Vorrichtungen
vorkommen, nicht mehr erforderlich sind: D[7:0], SA[15:0], DREQ[3:0],
DACK#[3:0], TC, IOR#, IOW#, IOCHRDY, IOCS16# und MEMCS16#. Dies
kann zur Einsparung von ungefähr
30 bis 40 Signalen an dem Bus, dem Host und/oder den peripheren
Vorrichtungen führen.
In einem Ausführungsbeispiel
kann eine vollständig
funktionsfähige
Super-E/A-Peripherie-Steuervorrichtung, die in ISA- oder X-Bus-kompatiblen
Umgebungen eine Packung von bis zu 160 Pins erfordert, unter Verwendung
einer LPC-Schnittstelle gemäß der Abbildung
aus 1 nur eine Einheit mit 88 Pins (oder weniger)
erfordern.
-
Der
LPC-Bus kann von der LPC-Schnittstelle 112 – 118 zur
Ausführung
von Speicher-, E/A-, DMA- und Bus-Master-Transaktionen oder Zyklen verwendet
werden, einschließlich
Lesen des Speichers, Schreiben in den Speicher, E/A-Lesen, E/A-Schreiben,
DMA-Lesen, DMA-Schreiben, Bus-Master-Speicher lesen, Bus-Master-Speicher
schreiben, Bus-Master-E/A lesen und Bus-Master-E/A schreiben. Die
Transaktionsart kann in einem Feld der Zyklusart und Richtungssteuerinformationen
angezeigt werden, die durch den Host 102 oder die peripheren
Vorrichtungen 104, 106 und 108 an LAD[3:0]
gesteuert werden. Tabelle 2 zeigt ein Ausführungsbeispiel der Zyklusart-
und Steuerinformationen, die auf LAD[3:0] codiert sind. Andere Codierungen auf
den gleichen oder anderen Signalleitungen können ebenfalls verwendet werden.
-
-
Die
Abbildung aus 2 zeigt die LPC-Schnittstelle 200 als
ein Ausführungsbeispiel
der LPC-Schnittstelle 118 des Host 102. Die LPC-Schnittstelle 200 erzeugt
und interpretiert Adresse, Daten und Steuerinformationen an dem
LPC-Bus 124 zur Implementierung der Transaktionen aus 2.
Die LPC-Schnittstelle 200 weist
eine Speicher- und E/A-LPC-Steuerlogik 202 auf, welche
die Speicherlese-, Speicherschreiben-, E/A-Lesen- und E/A-Schreiben-LPC-Transaktionen
zwischen dem Host 102 und einer der peripheren Vorrichtungen 104 – 108 steuern
kann. Die Speicher- und E/A-LPC-Steuerlogik 202 kann eine
Zustandsmaschine oder eine Ablaufsteuerung zur Ablaufsteuerung zwischen
den erforderlichen Zuständen
für die
jeweilige LPC-Transaktion
und zur Erzeugung von Adressen, Daten oder Steuerinformationen an
LAD[3:0], LFRAME# und/oder LCLK aufweisen. Die an LAD[3:0], LFRAME#
und/oder LCLK vorgesehenen Informationen können an dem Bus 214 zur
Ausgabe durch die Logik 208 an den LPC-Bus 124 vorgesehen
werden.
-
In
einem Ausführungsbeispiel
bestimmt die Speicher- und E/A-LPC-Steuerlogik 202,
dass eine LPC-Speicher- oder E/A-Transaktion
durch die Kommunikation mit der LPC-Decodierungslogik 210 über ein oder
mehrere Signale 216 ausgeführt werden muss. Die LPC-Decodierungslogik 210 kann
eine Speicher- oder E/A-Lese- oder Schreibanforderung und eine zugeordnete
Adresse von dem Host 102, dem ISA-Bus 126 oder PCI-
oder Host-Bus 128 empfangen. Die LPC-Decodierungslogik
kann die Adresse decodieren und der Speicher- und E/A-LPC-Steuerlogik 202 signalisieren,
eine Speicher- oder E/A-LPC-Transaktion
zu beginnen. Die LPC-Decodierungslogik 210 kann alternativ
außerhalb
der LPC-Schnittstelle 200 jedoch in dem Host 102 angeordnet
sein. Die decodierten Adressbereiche für die peripheren Vorrichtungen 104 – 108 können so
definiert sein, dass sie mit früheren
ISA-Bus- und X-Bus-Legacy-Peripheriegeräten kompatibel
sind, um die LPC-Transaktionssoftware
für die
Betriebsystemsoftware und die Anwendungssoftware transparent zu
gestaltne. In einem alternativen Ausführungsbeispiel kann die Steuerung
der Speicher- und E/A-LPC-Transaktionen in verschiedene Steuerschaltungen
aufgeteilt werden.
-
Die
LPC-Schnittstelle 200 weist ferner die DMA-LPC-Steuerlogik 204 auf,
welche die DMA-Lese- und Schreib-LPC-Transaktionen zwischen dem
Host 102 und einer der E/A-Vorrichtungen 104 und 106 steuert.
Die DMA-LPC-Steuerlogik 204 kann eine Zustandsmaschine
oder eine Ablaufsteuerung für
eine Ablaufsteuerung zwischen den erforderlichen Zuständen für die DMA-LPC-Transaktion
und zur Erzeugung von Adressen, Daten oder Steuerinformationen an
LAD[3:0], LFRAME# und/oder CLK sowie zum Empfang von DMA-Anforderungssignalen
LDRQ0# und LDRQ1# aufweisen. Die an LAD[3:0], LFRAME#, LDRQ#, LDRQ1#
und/oder LCLK vorgesehenen Informationen können über die Logik 208 und
den Bus 214 an den LPC-Bus 124 oder von diesem
vorgesehen werden.
-
Die
DMA-LPC-Steuerlogik 204 kann über die DMA-Steuereinheit 212,
die sich in dem Host 102 befinden kann, eine Schnittstellenfunktion
mit dem Host 102 und dem Speicher 110 vorsehen.
Die DMA-LPC-Steuerlogik 204 kann über ein oder mehrere Signale 218 mit
der DMA-Steuereinheit 212 kommunizieren. In einem Ausführungsbeispiel
kann die DMA-Steuereinheit 212 eine
oder mehrere 8237- oder 8237-kompatible Steuereinheiten aufweisen.
Die DMA-Steuereinheit 212 kann eine Arbitrierung in dem
Host 102 für
einen DMA-Kanal ausführen,
so dass die E/A-Vorrichtung unter Verwendung des DMA-Kanals über den
Host 102 mit dem Hauptspeicher 110 kommunizieren
kann.
-
Die
DMA-LPC-Steuerlogik 204 kann über die DMA-Steuereinheit 212,
die sich in dem Host 102 befinden kann, eine Schnittstellenfunktion
mit dem Host 102 und dem Speicher 110 vorsehen.
Die DMA-LPC-Steuerlogik 204 kann über ein oder mehrere Signale 218 mit
der DMA-Steuereinheit 212 kommunizieren. In einem Ausführungsbeispiel
kann die DMA-Steuereinheit 212 eine
oder mehrere 8237- oder 8237-kompatible Steuereinheiten aufweisen.
Die DMA-Steuereinheit 212 kann eine Arbitrierung in dem
Host 102 für
einen DMA-Kanal ausführen,
so dass die E/A-Vorrichtung unter Verwendung des DMA-Kanals über den
Host 102 mit dem Hauptspeicher 110 kommunizieren
kann.
-
Die
LPC-Schnittstelle 200 kann auch eine Bus-Master-LPC-Steuerlogik 206 aufweisen,
welche Bus-Master-Speicher-Lese- und
Schreib-LPC-Transaktionen steuert sowie Bus-Master-E/A-Lese- und Schreib-LPC-Transaktionen
zwischen dem Host 102 und den peripheren Vorrichtungen 104 – 108.
Die Bus-Master-LPC-Steuerlogik 206 kann
eine Zustandsmaschine oder Ablaufsteuerung zur Ablaufsteuerung zwischen
den erforderlichen Zuständen
für Bus-Master-LPC-Transaktionen
und zum Erzeugen von Adressen, Daten oder Steuerinformationen an
LAD[3:0], LFRAME# und/oder LCLK sowie zum Empfangen von DMA-Anforderungssignalen
LDRQ0# und LDRQ1# aufweisen. Die an LAD[3:0], LFRAME#, LDRQ0#, LDRQ1# und/oder
LCLK vorgesehen Informationen können über die
Logik 208 und den Bus 214 an oder von dem LPC-Bus 124 vorgesehen
werden.
-
Die
Logik 208 kann einen oder mehrere Puffer oder Transceiver
für eine
Schnittstellenfunktion zwischen dem LPC-Bus 124 und dem
LPC-Bus 214 umfassen. Alternativ kann die LPC-Schnittstelle 200 keinen Bus 214 aufweisen;
wobei die Logik 208 vielmehr direkt und einzeln mit den
Eingabe- und Ausgabesignalen der Speicher- und E/A-LPC-Steuerlogik 202,
der DMA-LPC-Steuerlogik 204 und der Bus-Master-LPC-Steuerlogik 206 verbunden
werden kann. In diesem alternativen Ausführungsbeispiel kann es sich
bei der Logik 208 um eine Selektor- oder Multiplexer-Schaltung
handeln, welche die entsprechenden LPC-Signale zu und von dem LPC-Bus 124 und
der Steuerlogik 202, 204 und 206 unter
der Steuerung des Host 102 ausgibt oder eingibt.
-
Die
Abbildung aus 3 zeigt ein Ausführungsbeispiel
eines Zustandsdiagramms zur Ausführung
einer DMA-Anforderung auf einer oder mehreren DMA-Anforderungssteuerleitungen
LDRQ0# oder LDRQ1#. Das Zustandsdiagramm aus 3 kann durch Zustandsmaschinen
oder Steuerlogik in der LPC-Schnittstelle 118 des Host 102 (z.B.
der DMA-LPC-Steuerlogik 204 aus 2) implementiert
werden oder durch Zustandsmaschinen oder Steuerlogik in LPC-Schnittstellen 112 und 114 der
entsprechenden E/A-Vorrichtungen 104 bzw. 106.
In alternativen Ausführungsbeispielen
kann das Zustandsdiagramm durch Zustandsmaschinen oder Steuerlogik
in jedem System implementiert werden, das eine Host-Vorrichtung
und eine E/A-Vorrichtung
aufweist, die einen DMA-Kanal über
eine Steuerleitung anfordert, die von dem Universalbus unabhängig ist.
-
Wie
dies bereits vorstehend im Text beschrieben worden ist, können die
E/A-Vorrichtungen 104 und 106 DMR-Anforderungssignale
LDRQ0# und LDRQ#1 entsprechend an separaten Steuerleitungen an die LPC-Schnittstelle 118 des
Host 102 vorsehen. LDRQ0# und LDRQ1# können zur Übermittlung codierter DMA- oder
Bus-Master-Kanalanforderungen an den Host 102 verwendet
werden. Jede E/A-Vorrichtung kann ein eindeutiges dediziertes Signal
LDRQ# aufweisen, so dass die E/A-Steuereinheiten 120 und 122 der
peripheren Vorrichtung eine DMA- oder BUs-Master-Anforderungsleitung
LDRQ0# gemeinsam nutzen können.
-
Der
Ablauf der Abbildung aus 3 wird unter Verwendung des
beispielhaften Zeitsteuerungsdiagramms aus 4 beschrieben.
In dem Zustand 302 befinden sich die LPC-Schnittstellen 112, 114 und 116 in
einem DMR-Ruhezustand, wobei die Behauptungen für LDRQ0# und LDRQ1# aufgehoben
sind (z.B. hoch). Wenn zum Beispiel die E/A-Vorrichtung 104 LDRQ0#
behauptet (z.B. niedrig), um eine DMA-Transaktion mit bzw. von dem
Host 102 anzufordern, wechselt der Prozess in dem Zyklus
T0 in den Startzustand 304. Der Host 102 erkennt,
dass LDRQ0# behauptet worden und bereit ist, eine angeforderte DMA-Kanalnummer von der E/A-Vorrichtung 104 zu
empfangen.
-
Der
Prozess wechselt dann zu dem Zustand 306, wobei die angeforderte
Kanalnummer während
den Taktzyklen T1, T2 und T3 seriell und synchron an LDRQ0# von
der E/A-Vorrichtung 104 zu dem Host 102 übertragen
werden kann. Drei Taktzyklen können
zur Codierung von bis zu acht verschiedenen DMA-Kanälen unter Verwendung
eines binären
Formats eingesetzt werden. In alternativen Ausführungsbeispielen kann eine
andere Anzahl serieller Bits übertragen
werden, um jede beliebige Anzahl von DMA-Kanälen zu codieren. In wiederum
anderen Ausführungsbeispielen
können
andere Codierungssysteme als ein binäres Codierungssystem verwendet
werden. Die Kanalnummer kann auch seriell mit dem werthöchsten Bit
zuerst, mit dem wertniedrigsten Bit zuerst oder in jeder anderen
von dem Host 102 erwarteten Reihenfolge bzw. Anordnung übermittelt werden.
-
Nachdem
die Kanalnummer übertragen
worden ist, wechselt der Prozess in den Zustand 308, in
dem die E/A-Vorrichtung 104 ein aktives Bit (ACT) oder
Signal auf LDRQ0# in dem Taktzyklus T4 an den Host 102 übermitteln
kann. Das ACT-Bit kann anzeigen, ob die aktuelle DMA-Anforderung
eine aktive oder inaktive Anforderung ist. Wenn das ACT-Bit zum
Beispiel aktiv ist (z.B. hoch), so kann eine DMA-Steuereinheit des
Host 102 eine Arbitrierung für einen Zugriff auf den Speicher 110 versuchen.
Nachdem ein aktives ACT-Bit von dem Host 102 empfangen
worden ist, kann die E/A-Vorrichtung 104 LDRQ0# für einen
oder mehrere Taktzyklen T5 in dem Endzustand 310 in einen
vorbestimmten Zustand (z.B. hoch oder niedrig) steuern. Danach kann
eine DMA-Transaktion auftreten, die in dem Zyklus T6 oder zu jedem
Zeitpunkt danach beginnt. Wenn das ACT-Bit hingegen inaktiv (z.B.
niedrig) ist, kann der Host 102 diese DMA-Anforderung als
Versuch zur Aufgabe einer vorherigen DMA-Anforderung für die in den Taktzyklen T1 – T3 angezeigten
Kanalnummer interpretieren. Das heißt, wenn ACT inaktiv ist, kann
die E/A-Vorrichtung 104 anfordern, dass der Host 102 eine
vorherige DMA-Anforderung aufgibt. Der Prozess kann danach wieder
zurück
in den Ruhezustand 302 wechseln.
-
Die
LPC-Schnittstellen 112, 114 und 118 können auch
mehrere Pipeline-verarbeitete, serielle DMA-Anforderungen unterstützen. Zum
Beispiel kann eine erste DMA-Anforderung für einen ersten Kanal an LDRQ0#
für die
E/A-Steuereinheit 120 der E/A-Vorrichtung 104 verarbeitet
werden. In der Folge, entweder vor, während oder nach der tatsächlichen
DMA-Transaktion über
den ersten Kanal kann eine zweite DMA-Anforderung vorgenommen und
für einen
zweiten Kanal an LDRQ0# für
die E/A-Steuereinheit 122 verarbeitet
werden. In einem Ausführungsbeispiel
führt der
Host 102 die zweite DMA-Transaktion
unmittelbar nach der ersten DMA-Transaktion aus. Ohne Pipeline-Verarbeitung
kann eine Verzögerung
zwischen DMA-Transaktionen existieren,
während
der Host 102 die zweite DMA-Anforderung an LDRQ0# oder LDRQ1# verarbeitet.
-
Nach
einer DMA-Anforderung kann der Host 102 eine Arbitrierung
vornehmen, um Zugriff auf den Speicher 110 zu erhalten,
so dass Datendateien, Treiberinformationen, Anwendungscode und dergleichen über den
Host 102 zwischen E/A-Vorrichtungen 104 – 106 und
dem Speicher 110 übertragen
werden können. Sobald
der Zugriff auf den Speicher 110 durch den Host 102 erreicht
worden ist (z.B. durch die DMA-Steuereinheit 212 aus 2),
kann eine DMA-Schreib- oder DMA-Lesetransaktion über den LPC-Bus 124 auftreten. Die Abbildung
aus 5 zeigt ein Zustandsdiagramm der DMA-Schreib-
und Lesetransaktionen, die über
den LPC-Bus 124 auftreten können. Das Zustandsdiagramm aus 5 kann
in jeder der LPC-Schnittstellen 112, 114 und 118 implementiert
werden. Zum Beispiel kann das Zustandsdiagramm aus 5 in
der DMA-LPC-Steuerlogik 204 aus 2 implementiert
werden.
-
Eine
DMA-Schreibtransaktion zwischen der LPC-Schnittstelle 112 der
E/A-Vorrichtung 104, der LPC-Schnittstelle 118 des
Host 102 und dem Speicher 110 wird unter Verwendung
des beispielhaften Zeitsteuerungsdiagramms aus 6 beschrieben.
Die DMA-Schreibtransaktion kann das Leasen von Daten durch die LPC-Schnittstelle 118 aus
der E/A-Vorrichtung 104 und das folgende Schreiben dieser
Daten in den Speicher 110 aufweisen.
-
Der
Prozess beginnt in dem Zustand 502, in dem sich die LPC-Schnittstellen 118 und 112 im
Ruhezustand befinden, wenn die Behauptung von LFRAME# aufgehoben
wird (z.B. hoch). Wenn der Host 102 sich den Zugriff auf
den Speicher 110 für
den Kanal sichert, der vorher von der E/A-Vorrichtung 104 (z.B.
dem Prozess aus 3) angefordert worden ist, beginnt
eine DMA-Transaktion
in dem Zustand 504, wenn LFRAME# durch den Host 102 während dem
Zyklus T0 behauptet wird (z.B. niedrig). Der Host 102 steuert
Startsteuerinformationen, welche den Start bzw. den Beginn einer
LPC-Transaktion an LAD[3:0] während
dem Zyklus T0 anzeigen. Zum Beispiel können die Startsteuerinformationen
0000 entsprechen, wie dies in Tabelle 1 angezeigt ist.
-
Der
Prozess wechselt dann zu Zustand 506, in dem der Host 102 die
Zyklustyp- und Richtungssteuerinformationen an LAD[3:0] während dem
Zyklus T1 steuert. Die Zyklustyp- und Richtungssteuerinformationen zeigen
der peripheren Einheit 104 an, dass es sich bei der LPC-Transaktion
um eine DMA-Schreibtransaktion handelt. Die Zyklustyp- und Richtungssteuerinformationen
können
gemäß der Darstellung
in Tabelle 2 101 an LAD[3:1] entsprechen.
-
Der
Prozess wechselt dann zu dem Zustand 508, und der Host 102 kann
während
dem Taktzyklus T2 Kanalnummersteuerinformationen an LAD[2:0] steuern.
Die Kanalnummer stellt die DMA-Kanalnummer
dar, die während
diesem Prozess durch den Host 102 eingeräumt wird.
Die Kanalnummer kann einer Kanalnummer in einer vorherigen DMA-Anforderung
durch die E/A-Vorrichtung 104 über LDRQ0# entsprechen. Die
Kanalnummer kann in einem binären
Format oder in jedem anderen Format codiert sein. Ein Ausführungsbeispiel der
binären
Codierungen ist in der folgenden Tabelle 3 veranschaulicht.
-
-
Terminal-Count-Steuerinformationen
können
ebenfalls durch den Host 102 an LAD[3] während dem gleichen
Taktzyklus T2 übertragen
werden, während
dem die Kanalnummer an LAD[2:0] gesteuert wird. Das Terminal-Count-Steuerbit
kann ein letztes Byte der Übertragung
auf der Basis der Größe der DMA-Transaktion (wird
nachstehend im Text beschrieben) darstellen.
-
Wenn
die Größe der DMA-Transaktion
zum Beispiel 8 Bits entspricht und das TC-Bit gesetzt ist (z.B. hoch),
so kann es sich dabei um das letzte Datenbyte für die DMA-Schreibtransaktion handeln. Wenn das TC-Bit
in ähnlicher
Weise für
eine 16-Bit-DMA-Schreibtransaktion gesetzt ist, so kann es sich
bei dem zweiten Byte nach dem TC-Bit um das letzte Byte für die DMA-Schreibtransaktion
handeln.
-
Der
Prozess wechselt als nächstes
zu dem Zustand 510, und der Host 102 steuert Größensteuerungsinformationen
an LAD[1:0] während
dem Taktzyklus T3. Die Größensteuerungsinformationen
zeigen die Anzahl der Bytes von E/A-Daten an, die über den
Host 102 aus der E/A-Vorrichtung gelesen und in den Speicher 110 geschrieben
werden müssen.
In Tabelle 4 ist ein Ausführungsbeispiel
der Codierung der Anzahl von Bytes an LAD[1:0] zur folgenden Übertragung über LAD[3:0]
vorgesehen. Andere Codierungen auf den gleichen oder anderen LAD-Signalleitungen können ebenfalls
verwendet werden.
-
-
In
einem alternativen Ausführungsbeispiel
können
die Größensteuerungsinformationen
anzeigen, dass eine Anzahl von 2Größe Bytes
von E/A-Daten über
den Host 102 aus der E/A-Vorrichtung 108 und in den Speicher 110 geschrieben
werden müssen.
-
Jeder
der DMA-Kanaäle
kann dedizierte Größen aufweisen.
In einem Ausführungsbeispiel
kann es sich bei den Kanälen
0 bis 3 jeweils um 8-Bit-Kanäle
handeln, während
es sich bei den Kanälen
5–7 jeweils um
16-Bit-Kanäle
handelt. Wenn dedizierte Kanalgrößen eingesetzt
werden, kann die LPC-Schnittstelle 118 Größensteuerungsinformationen übermitteln,
die der Kanalgröße für den durch
die DMA-Schreibtransaktion eingeräumten Kanal entsprechen. In
alternativen Ausführungsbeispielen
können
größere Datengrößen über kleinere
Kanalgrößen übertragen
werden, sowie kleinere Datengrößen über größere Kanalgrößen.
-
Der
Prozess kann danach zu dem Umkehrzustand (TAR) 514 wechseln,
um die Steuerung des LPC-Busses 124 während dem bzw. den n Taktzyklus
bzw. Taktzyklen T4 auf die E/A-Vorrichtung 104 zu übertragen.
Die Steuerung des LPC-Busses 124 kann auf die E/A-Vorrichtung 104 übertragen
werden, so dass diese ihre DMA-Schreibdaten an LAD[3:0] ausgeben
kann. In einem Ausführungsbeispiel
weist der Zustand 514 eine Breite von zwei Takten auf.
In dem ersten Taktzyklus steuert der Host 102 die Leitungen
LAD[3:0] mit vorbestimmten Steuerungsinformationen (z.B. 1111).
In dem zweiten Taktzyklus kann der Host 102 die Leitungen LAD[3:0]
mit einer Dreizustandbedingung vorsehen. An diesen Leitungen können schwache
Endwiderstände angebracht
sein, so dass sie in logisch hohen Zuständen verbleiben. In anderen
Ausführungsbeispielen
kann n einem Taktzyklus oder mehr als zwei Taktzyklen entsprechen,
um LAD[3:0] umzukehren.
-
Der
Prozess wechselt danach zu dem Zustand 516 und wartet n
Taktzyklen, während
die E/A-Vorrichtung 104 während n Taktzyklen T5 Inband-Synchronisierungssteuerinformationen
an LAD[3:0] steuert. Die Synchronisierungssteuerinformationen können zum
Hinzufügen
von Wartezuständen
verwendet werden, bis die Daten zur Ausgabe durch die E/A-Vorrichtung 104 bereit stehen.
Auf diese Weise können
E/A-Vorrichtungen mit unterschiedlichen Geschwindigkeiten oder Zugriffszeiten
mit dem gleichen LPC-Bus gekoppelt werden. Traditionell wurde ein
dediziertes Steuersignal auf einer dedizierten Steuerleitung verwendet,
um anzuzeigen, wenn die Daten bereit sind (z.B. IOCHRDY in dem ISA-Bus
oder X-Bus). Im Gegensatz dazu kann die E/A-Vorrichtung 104 eine
Inband-Signalisierung an LAD[3:0] verwenden, um Wartezustände einzufügen, ohne dass
die Verwendung eines zusätzlichen
dedizierten Pins oder einer entsprechenden Signalleitung erforderlich ist.
-
In
einem Ausführungsbeispiel
kann das Feld für
die Synchronisierungssteuerinformationen zwei Phasen aufweisen.
Die erste Phase steuert erste Steuerinformationen an LAD[3:0] (z.B.
0101 oder 0110 an LAD[3:0]), während
auf die DMA-Schreibdaten
zugegriffen wird. Die zweite Phase steuret zweite Steuerinformationen
an LAD[3:0] (z.B. 0000 LAD[3:0]), wobei angezeigt wird, dass die
Daten zur Ausgabe an den LPC-Bus 124 bereit stehen. Der
Host 102 überacht
die Synchronisierungssteuerinformationen, um zu bestimmen, wenn
DMA-Schreibdaten für
die DMA-Transaktion an LAD[3:0] durch die E/A-Vorrichtung 104 in
folgenden Taktzyklen T6 ausgegeben werden. In einem Ausführungsbeispiel
weisen die ersten Steuerinformationen eine Codierung (z.B. 0110
an LAD[3:0]) auf, die anzeigt, dass die E/A-Vorrichtung 104 eine
verhältnismäßig große Anzahl
von Wartezuständen
an LAD[3:0] steuert (z.B. ungefähr
20+ Wartezustände).
Die ersten Steuerinformationen können
auch eine Codierung (z.B. 0101 an LAD[3:0]) aufweisen, die anzeigt,
dass die E/A-Vorrichtung 104 eine verhältnismäßig kleine Anzahl von Wartezuständen an
LAD[3:0] steuert (z.B. ungefähr
1 – 20
Wartezustände).
Zum Beispiel (siehe die folgende Tabelle 5) kann die E/A-Vorrichtung 104 Synchronisierungsdaten
0101 an LAD[3:0] entsprechend für
ungefähr
1 – 20
Taktzyklen steuern und danach entsprechend eine Zyklus von 0000
an LAD[3:0] steuern, um anzuzeigen, dass die angeforderten Daten
bereit stehen und während
dem folgenden Taktzyklus ausgegeben werden.
-
Wenn
die Anzahl der Wartezustände
hoch ist, kann der Host 120 durch ein Eintreten in den
Zustand 518 einen Abbruch der Transaktion entscheiden.
Wie dies bereits vorstehend im text beschrieben worden ist, kann
der Host 102 die Transaktion durch die Behauptung von LFRAME#
für einen
oder mehrere Taktzyklen abbrechen und vorbestimmte Abbruchsteuerinformationen
(z.B. 1111 wie in Tabelle 1) an LAD[3:0] steuern.
-
Das
Feld der Synchronisierungssteuerinformationen kann auch von der
E/A-Vorrichtung 104 zum Übermitteln einer Inband-Fehlernachricht an
LAD[3:0] an den Host 102 verwendet werden. Die Fehlernachricht kann
jederzeit während
der Synchronisierungssequenz übertragen
werden. Zum Beispiel kann sie als die zweiten Steuerinformationen
in dem Ausführungsbeispiel
mit den ersten und zweiten Synchronisierungssteuerinformationen übermittelt
werden. Die Fehlernachricht kann zum Beispiel anzeigen, dass die
Daten eine bestimmte Korrumpierung aufweisen, dass die periphere
Vorrichtung die Anforderung nicht versteht, dass eine ungültige Anforderung
vorgenommen worden ist, oder dass eine Anforderung erfolgt ist,
während
sich die periphere Vorrichtung in einem Abschaltmodus oder in einem
anderen Modus befindet, in dem sich nicht bereit oder in der Lage
ist, Daten auszugeben. In einem anderen Ausführungsbeispiel kann die Fehlernachricht
anzeigen, dass eine Floppy-Disk-Steuereinheit einen Überlauf
ihres FIFO aufweist. Die Fehlernachricht kann einen Abbruch der
DMA-Schreibtransaktion bewirken.
-
In
einem anderen Ausführungsbeispiel
kann die E/A-Vorrichtung 104 einen Fehlerzustand anzeigen, indem
die Synchronisierungssteuerinformationen von 0000 oder 1010 an LAD[3:0]
eines ungeraden Byte einer 16-Bit- oder 32-Bit-Übertragung
gesteuert werden.
-
In
Tabelle 5 ist ein Ausführungsbeispiel
von Codierungen an LAD[3:0] für
die vorstehend beschriebenen Synchronisierungssteuerinformationen
vorgesehen. Anderen Codierungen können ebenso verwendet werden.
-
-
In
alternativen Ausführungsbeispielen
können
die Inband-Synchronisierungssteuerinformationen
zwischen zwei beliebigen Vorrichtungen (z.B. einer E/A-Vorrichtung 104 und
dem Host 102) über
einen Universal-Zeitmultiplex-Bus in jedem beliebigen System verwendet
werden, um einen Wartezustand, Fehler oder beliebige andere Informationen
zu übertragen,
wie dies vorstehend im Text beschrieben und in Tabelle 5 zusammengefasst
worden ist.
-
Die
E/A-Vorrichtung 104 kann die Synchronisierungssteuerinformationen
mit jedem über
LAD[3:0] an den Host 102 übertragenen Datenbyte verwenden,
um dem Host 102 anzuzeigen, ob es sich um das letzte Byte
der Übertragung
handelt oder ob mehr Bytes zur Übertragung
angefordert worden sind. In einem Ausführungsbeispiel kann Bereit
ohne Fehler (z.B. 0000) oder Bereit mit Fehler (z.B. 1010) dem Host 102 anzeigen, dass
das in dem Zyklus T6 folgende Datenbyte das letzte Datenbyte für die DMA-Schreibtransaktion
ist. Die E/A-Vorrichtung 104 kann
die DMA-Anforderung aktiv halten, indem die Steuerinformationen
DMA Bereit mehr (z.B. 1001 in Tabelle 5) vor dem Zyklus T6 an LAD[3:0]
gesteuert werden. Dies kann dem Host 102 anzeigen, dass
nach dem aktuellen Byte noch mehr Datenbytes zur Übertragung
angefordert worden sind. Der Host 102 kann zu einem späteren Zeitpunkt
aus dem Zustand 502 erneut mit der DMA-Schreibtransaktion
beginnen, um auf zusätzliche
Daten zuzugreifen.
-
Wenn
die E/A-Vorrichtung 104 für die Ausgabe ihrer Daten an
den LPC-Bus 124 nach dem Vorsehen entsprechender Synchronisierungssteuerinformationen
an LAD[3:0] (z.B. 0000) bereit ist, wechselt der Prozess zu dem
Zustand 520 für
n Taktzyklen T6. Die E/A-Vorrichtung 104 kann Daten in
Byte-Inkrementen über zwei
Taktzyklen an LAD[3:0] steuern. Für jedes Byte können die
Daten durch die E/A-Vorrichtung 104 mit der niedrigen 4-Bit-Einheit
zuerst, mit der hohen 4-Bit-Einheit
zuerst oder in jedem anderen Format ausgegeben werden. Wenn es sich
bei der DMA-Schreibtransaktion um eine 16-Bit- oder eine 32-Bit-Übertragung (oder höher) handelt,
kann der Prozess die Zustände 516 und 520 so
oft wiederholen, wie dies erforderlich ist, um die benötigten Datenbytes
zu dem Host 102 zu übertragen.
Jede Gruppe von Bytes, die von der E/A-Vorrichtung 104 ausgegeben
wird, kann mit dem niedrigen Byte zuerst, dem hohen Byte zuerst
oder in jedem anderen Format ausgegeben werden. Danach können die
aus der E/A-Vorrichtung 104 gelesenen Daten durch den Host 102 in
den Speicher 110 geschrieben werden. Der Host 102 kann
auch einen Bestätigungsmodus
unterstützen,
in dem der Prozess aus 5 ausgeführt wird, und zwar ohne den
zusätzlichen
Schritt des Schreibens der aus der E/A-Vorrichtung 104 gelesenen
Daten in den Speicher 110.
-
Nachdem
alle Daten durch die LPC-Schnittstelle 112 der E/A-Vorrichtung 104 ausgegeben
worden sind, wechselt der Prozess zu dem Umkehrzustand (TAR) 522,
in dem die Steuerung von LAD[3:0] während n Taktzyklen T7 an den
Host 102 zurückgeführt wird.
Wie in Zustand 514 kann der Zustand 522 eine Breite
von zwei Takten aufweisen. In dem ersten Taktzyklus steuert die
E/A-Vorrichtung 104 die Leitungen LAD[3:0] mit vorbestimmten
Steuerinformationen (z.B. 1111). In dem zweiten Taktzyklus kann
die E/A-Vorrichtung 103 für die Leitungen LAD[3:0] einen
Dreifachzustand vorsehen. In anderen Ausführungsbeispielen kann n einen
Taktzyklus oder mehr als zwei Taktzyklen für die Umkehr von LAD[3:0] darstellen.
-
Nachstehend
wird in Bezug auf das Zeitsteuerungsdiagramm aus 7 eine
DMA-Lesetransaktion zwischen der LPC-Schnittstelle 112 der E/A-Vorrichtung 104,
der LPC-Schnittstelle 118 des
Host 102 und des Speichers 110 beschrieben.
-
Der
Prozess beginnt mit dem Zustand 502, in dem sich die LPC-Schnittstellen 118 und 112 im
Ruhezustand befinden, wenn die Behauptung von LFRAME# aufgehoben
wird (z.B. hoch). Wenn der Host 102 den Zugriff auf den
Speicher 110 erlangt und Speicherdaten aus diesem liest,
wird LFRAME# durch den Host 102 in dem Zyklus T0 behauptet
(z.B. niedrig). Der Host 102 steuert Startsteuerinformationen,
die den Start bzw. den Beginn einer LPC-Transaktion an LAD[3:0]
während
dem Zyklus T0 anzeigen. Zum Beispiel können die Startsteuerinformationen
gemäß der Darstellung
in Tabelle 1 0000 entsprechen. Der Prozess wechselt danach zu dem
Zustand 506, in dem der Host 102 die Zyklustyp-
und Richtungssteuerungsinformationen während dem Zyklus T1 an LAD[3:0]
steuert. Die Zyklustyp- und Richtungssteuerungsinformationen zeigen
der peripheren Vorrichtung 104 an, dass es sich bei der
LPC-Transaktion um eine DMA-Lesetransaktion handelt. Zum Beispiel können die
Zyklustyp- und Richtungssteuerungsinformationen 100 an
LAD[3:1] entsprechen, wie dies in Tabelle 2 dargestellt ist.
-
Der
Prozess wechselt danach zu dem Zustand 508 und die LPC-Schnittstelle 118 steuert
Kanalnummersteuerinformationen während
dem Taktzyklus T2 an LAD[2:0]. Die Kanalnummer stellt die DMA-Kanalnummer
dar, die während
diesem Prozess durch den Host 102 eingeräumt wird.
Ferner können
Terminal-Count-Steuerinformationen
auch durch den Host 102 an LAD[3] während dem gleichen Taktzyklus
T2 übertragen
werden, indem auch die Kanalnummer an LAD[2:0] gesteuert wird. Das
Terminal-Count-Steuerbit kann
ein letztes Übertragungsbyte
auf der Basis der Größe der DMA-Transaktion
anzeigen. Der Prozess wechselt danach zu dem Zustand 510 und
der Host 102 steuert Größensteuerinformationen
an LAD[1:0] während
dem Taktzyklus T3.
-
Der
Prozess wechselt danach zu dem Zustand 512, in dem der
Host 102 ein Byte oder mehrere Bytes der Speicherdaten
an die E/A-Vorrichtung 104 in n Taktzyklen T3 über LAD[3:0]
schreibt. Der Host 102 kann Daten in Byte-Inkrementen über zwei
Taktzyklen an LAD[3:0] steuern. Für jedes Byte können Daten durch
den Host 102 mit der niedrigen 4-Bit-Einheit zuerst, der
hohen 4-Bit-Einheit zuerst oder in jedem anderen Format ausgegeben
werden. In ähnlicher
Weise kann jede von der LPC-Schnittstelle 118 ausgegebene
Byte-Gruppe mit dem niedrigen Byte zuerst, dem hohen Byte zuerst
oder in jedem anderen Format ausgegeben werden.
-
Wenn
der Schreibvorgang abgeschlossen ist, wechselt der Prozess in den
Umkehrzustand (TAR) 514, um die Steuerung des LPC-Busses 124 während n
Taktzyklen T4 auf die E/A-Vorrichtung 104 zu übertragen. Danach
wechselt der Prozess zu dem Zustand 516 und wartet n Taktzyklen,
während
die E/A-Vorrichtung 104 während n Taktzyklen T5 Inband-Synchronisierungssteuerinformationen
an LAD[3:0] steuert. In einem Ausführungsbeispiel können die
Synchronisierungssteuerinformationen einem oder mehreren Taktzyklen
entsprechen und verwendet werden, um folgendes anzuzeigen: (1) den
Empfang der aus dem Speicher in die E/A-Vorrichtung 104 (z.B. 0000
an LAD[3:0]) gelesenen Daten, dass ein Fehlerzustand aufgetreten
ist (z.B. 1010 an LAD[3:0]), (2) dass das in Zyklus T4 empfangene
Byte das letzte Byte der Speicherdaten darstellen kann (z.B. 0000
an LAD[3:0]), oder (3) dass die E/A-Vorrichtung 104 die
DMA-Anforderung für
mehr DMA-Übertragungen aktiv
halten kann (z.B. 1001 an LAD[3:0]).
-
Wenn
es sich bei der DMA-Lesetransaktion um eine 16-Bit- oder 32-Bit-Übertragung
(oder höher)
handelt, kann der Prozess die Zustände 512, 514 und 516 so
oft wiederholen, wie dies erforderlich ist, um ausreichend viele
Bytes der aus dem Speicher gelesenen Daten an die E/A-Vorrichtung
zu übertragen.
Der Prozess wechselt danach zu dem Umkehrzustand (TAR) 522,
in dem die Steuerung von LAD[3:0] während n Taktzyklen T7 an die
LPC-Schnittstelle 118 und den Host 102 zurückgegeben
wird.