-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft allgemein die Verbindungen zwischen
Geräten
und spezieller eine Mehrkanalschnittstelle zwischen Geräten, Schaltungen,
Halbleiterchips oder dergleichen.
-
Allgemeiner
Stand der Technik
-
Von
elektronischen Systemen und Geräten wird
gefordert, dass sie mehr Funktionen in kürzerer Zeit ausführen. Solche
elektronischen Systeme und Geräte
enthalten mehrere Halbleiterchips, -schaltungen oder dergleichen.
Von den Halbleiterchips oder -schaltungen wird normalerweise gefordert,
dass sie miteinander kommunizieren, um besondere Operationen oder
Funktionen auszuführen.
Um diese Kommunikation auszuführen,
müssen
mehrere Kommunikationsverbindungen oder -leiter die Halbleiterchips oder
-schaltungen miteinander verbinden. Diese elektronischen Verbindungen
können
eine beträchtliche
Fläche
auf einem Substrat einnehmen und können auch mehrere Pins auf
jedem der Chips für
die Kommunikation zwischen den Chips erfordern. Komplexe Software
kann ebenfalls benötigt
werden, um die Kommunikation zwischen Chips oder Schaltungen zu
implementieren, und um Datensignale oder -informationen genau zu
verschiedenen Komponenten zu lenken oder zu adressieren, um besondere Funktionen
oder Operationen auszuführen.
-
Das
US-Patent Nr. 5,915,127 betrifft eine Datenverarbeitungsvorrichtung
zum Bereitstellen der kontinuierlichen Wiedergabe sich bewegender
Bilder in Echtzeit. Die Vorrichtung umfasst erste und zweite Speicher,
eine erste Schnittstelle und eine zweite Schnittstelle.
-
Aus
dem oben angeführten
Grund und aus anderen Gründen,
die beim Lesen und Verstehen der vorliegenden Patentschrift ersichtlich
werden, besteht demgemäß ein Bedarf
an einer mehrkanaligen Kommunikationsschnittstelle, die die Zahl
der Verbindungen zwischen Chips und Pins auf jedem Chip minimiert.
Weiterhin gibt es einen Bedarf an einer mehrkanaligen Kommunikationsschnittstelle,
die die Software vereinfacht, welche zur Implementierung erforderlich
ist, und Zusatzaufwand minimiert und skalierbar ist, um je nach
den vorherrschenden Konstruktionsbedingungen mehr oder weniger Kommunikationskanäle bereitzustellen.
-
Kurzbeschreibung
der Zeichnungen
-
1 ist
ein schematisches Blockdiagramm eines elektronischen Systems gemäß der vorliegenden
Erfindung.
-
2 ist
ein schematisches Blockdiagramm eines weiteren elektronischen Systems
gemäß der vorliegenden
Erfindung.
-
3 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
4 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle
gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung.
-
5 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle,
das Beispiele von Befehlsregistern illustriert, die zum Übertragen
von Daten auf andere Chips oder Vorrichtungen gemäß der vorliegenden
Erfindung verwendet werden können.
-
6 ist
eine Tabelle, die ein Beispiel für
ein Bitlayout und Bitdefinitionen für ein Kanalstatusregister gemäß der vorliegenden
Erfindung zeigt.
-
7 ist
eine Tabelle, die ein Beispiel für
ein Bitlayout und Bitdefinitionen für ein Kanalkonfigurationsregister
gemäß der vorliegenden
Erfindung zeigt.
-
8 ist
eine Tabelle, die ein Beispiel für
ein Bitlayout und Bitdefinitionen für ein Kanalidentifikationsregister
gemäß der vorliegenden
Erfindung zeigt.
-
9 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle,
das Beispiele von Befehlsregistern illustriert, die zum Empfang
von Daten von anderen Chips oder Vorrichtungen gemäß der vorliegenden
Erfindung verwendet werden können.
-
10 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle,
das Beispiele von Befehlsregistern illustriert, die zum Senden und
Empfangen von Standard-Eingangs-/Ausgangs-(GPIO-)Signalen
oder -Daten gemäß der vorliegenden
Erfindung verwendet werden können.
-
11 ist
ein schematisches Blockdiagramm einer Quellen-Kommunikationsschnittstelle und einer
Ziel-Kommunikationsschnittstelle, die durch unterschiedliche Kommunikationsverbindungen
oder Pins gemäß der vorliegenden
Erfindung angeschlossen werden können.
-
12 ist
eine Tabelle, die ein Beispiel für Kanalzuweisungen
für eine
Kommunikationsschnittstelle gemäß der vorliegenden
Erfindung illustriert.
-
13 ist
ein Beispiel für
Signalwellenformen zum Übertragen
einer Nachricht oder von Daten zwischen einer Quellen-Kommunikationsschnittstelle und
einer Ziel-Kommunikationsschnittstelle gemäß der vorliegenden Erfindung.
-
14 ist
ein Beispiel für
Signalwellenformen zum Auswählen
eines neuen Kanals zum Übertragen
von Daten zwischen einer Quellen-Kommunikationsschnittstelle und
einer Ziel-Kommunikationsschnittstelle
gemäß der vorliegenden
Erfindung.
-
15 ist
ein Beispiel für
Signalwellenformen, das die Steuerung des Flusses von Nachrichten gemäß der vorliegenden
Erfindung illustriert.
-
16 ist
ein Flussdiagramm eines Beispiels für ein Verfahren zum Übertragen
von Daten zwischen Halbleiterchips oder -vorrichtungen gemäß der vorliegenden
Erfindung.
-
Beschreibung
der bevorzugten Ausführungsformen
-
In
der folgenden detaillierten Beschreibung der bevorzugten Ausführungsformen
wird auf die begleitenden Zeichnungen verwiesen, die einen Teil derselben
bilden und in denen durch Illustrierung spezielle Ausführungsformen
gezeigt werden, in denen die Erfindung ausgeführt werden kann. Es versteht
sich, dass andere Ausführungsformen
genutzt werden können
und strukturelle Veränderungen
vorgenommen werden können,
ohne den Geltungsbereich der vorliegenden Erfindung zu verlassen.
-
Die
Erfindung ist so, wie in den Ansprüchen 1 und 18 dargelegt.
-
1 ist
ein schematisches Blockdiagramm eines elektronischen Systems 100 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das elektronische System 100 umfasst
mindestens zwei Halbleiterchips 102a und 102b,
Vorrichtungen oder Schaltungen, die miteinander kommunizieren. Das elektronische
System 100 kann zusätzliche
Halbleiterchips, Vorrichtungen oder Schaltungen 102c und 102d umfassen.
Das elektronische System 100 kann auch als einzelner Chip
geformt sein, und die Schaltungen oder Vorrichtungen 102 können jeweils
ein chipinternes Siliziummodul sein. Die Halbleiterchips 102a und 102c können zum
Beispiel Prozessoren sein, wie zum Beispiel Zentraleinheiten (CPUs),
digitale Signalprozessoren (DSPs) oder dergleichen, und die Halbleiterchips 102b und 102d können Speichervorrichtungen,
periphere Einrichtungen oder dergleichen sein. Die Chips 102a und 102c sind
an einen internen Bus 110, wie zum Beispiel einen Prozessorbus
oder einen peripheren Bus, angeschlossen, und der interne Bus 110 ist
an eine erste Kommunikationsschnittstelle 112 oder an mehrere
Kanalschnittstellen zur Kommunikation zwischen den Chips 102a, 102b, 102c und 102d angeschlossen. Die
erste Kommunikationsschnittstelle 112 kann eine Kommunikationsschnittstelle
zwischen verschiedenen Arten von Chips sein oder kann eine Breitband-Multimedia
(BB-MM)-Schnittstelle zur Kommunikation zwischen einem Multimediaprozessor
und einem Basisbandchip sein. Die erste Kommunikationsschnittstelle 112 ist
elektrisch an eine zweite Kommunikationsschnittstelle 114 durch
mehrere ausgehende (Pin-)Verbindungen 116 und mehrere eingehende
(Pin-)Verbindungen 118 angeschlossen. Die ausgehenden (Pin-)Verbindungen 116 von
der ersten Kommunikationsschnittstelle 112 sind die eingehenden
(Pin-)Verbindungen
für die
zweite Kommunikationsschnittstelle 114, und die eingehenden
Verbindungen 118 zur ersten Kommunikationsschnittstelle 112 sind
die ausgehenden Verbindungen von der zweiten Kommunikationsschnittstelle 114.
Die zweite Kommunikationsschnittstelle 114 ist elektrisch an
einen internen Bus 120 angeschlossen, und der Bus 120 ist
elektrisch an die Halbleiterchips 102b und 102d angeschlossen,
falls es mehr als einen Chip 102 gibt, der an die zweite
Kommunikationsschnittstelle 114 angeschlossen ist.
-
2 ist
ein schematisches Blockdiagramm eines elektronischen Systems 200 gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung. Im elektronischen System 200 kann
mindestens einer der Chips 102a und 102c (1)
eine Speichervorrichtung oder dergleichen sein, die an einen Bus 204 angeschlossen
ist, welcher als Prozessorbus bezeichnet werden kann. Der Prozessorbus 204 kann an
einen Controller 208 für
direkten Speicherzugriff (DMA) angeschlossen sein. Direkter Speicherzugriff ermöglicht das
Lesen oder Schreiben direkt auf den Speicherchip 102a.
Der DMA-Controller 208 kann an die erste Kommunikationsschnittstelle 112 durch
den internen Bus 110 angeschlossen werden, der als Peripheriebus
bezeichnet werden kann. In ähnlicher Weise
kann die zweite Kommunikationsschnittstelle 114 an einen
zweiten DMA-Controller 214 durch den peripheren oder internen
Bus 120 angeschlossen werden, und der zweite DMA-Controller 214 kann
an den Chip 102b angeschlossen werden, welcher ein Prozessor
oder dergleichen sein kann. Der Chip 102b ist mit dem DMA-Controller 214 durch
einen Prozessorbus 220 angeschlossen. Das elektronische System 200 kann
zumindest einen zweiten Prozessorchip 102d oder weitere
Vorrichtungen umfassen, die an den DMA-Controller 214 durch
den Prozessorbus 220 angeschlossen sind. Die Kommunikationsschnittstellen 112 und 114 können Kommunikationsschnittstellen
zur Kommunikation zwischen beliebigen Arten von Chips sein oder
können BB-MM-Schnittstellen
sein.
-
3 ist
ein schematisches Blockdiagramm der ersten Kommunikationsschnittstelle 112 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die zweite Kommunikationsschnittstelle 114 kann identisch
mit der ersten Kommunikationsschnittstelle 112 sein. Die
erste Kommunikationsschnittstelle 112 kann eine Busschnittstelle 300 umfassen,
die an den internen Bus 110 angeschlossen ist. Die Busschnittstelle 300 umfasst
mehrere Sendesteuer- oder Sendebefehlsregister 302 und
mehrere Empfangssteuer oder Empfangsbefehlsregister 304.
Die mehreren Sendesteuerregister 302 sind an mehrere Sendekanäle 306 angeschlossen.
Die mehreren Sendekanäle 306 können auch
einen oder mehrere virtuelle Standard-Eingangs-/Ausgangs-(GPIO-)Kanäle 307 umfassen.
Die mehreren Sendekanäle 306 und
der virtuelle GPIO-Kanal 307 sind an einen Sendesteuerblock
(TX) 308 angeschlossen. Die Ausgänge des Sendesteuerblocks 308 sind
die ausgehenden Verbindungen oder Pins 116. Die Empfangsbefehlsregister 304 sind
an mehrere Empfangskanälen 310 angeschlossen.
Die Empfangskanäle 310 sind
an einen Empfangs(RX)-Steuerblock 312 angeschlossen. Jeder
der Sendekanäle 306 kann
einen Puffer oder eine Speichervorrichtung 314 vom Typ
FIFO umfassen, und jeder der Empfangskanäle 310 kann ein Empfangs-FIFO 316 umfassen.
Der GPIO-Kanal 307 kann auch einen Puffer oder eine Speichervorrichtung 314 vom
Typ FIFO umfassen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann der Sendesteuerblock 308 eine
Verbindungssteuerung 318 und einen Kanal-Arbiter 320 umfassen.
Der Kanal-Arbiter 320 bestimmt, welcher der mehreren Sendekanäle 306 zum Übertragen
von Daten als Nächster
aktiviert oder ausgewählt
werden soll. Wie detaillierter unten beschrieben wird, könnte dies
einer der mehreren Datenkanäle, ein
virtueller Standard-Eingabe/Ausgabe(GPIO)-Kanal 307 oder
ein Nachrichtenflusssteuerungskanal (Message Flow Control Channel,
MFC channel) sein. Der Kanal-Arbiter 320 verwendet als
Eingänge
die Sendekanäle 306,
falls vorhanden, die sich in einem „Wartezustand" befinden können und
daher die Daten aus einem gewissen Grund nicht übertragen können, die Kanalnummer des aktuell
aktivierten Sendekanals 306 und die Informationen von jedem
der Sendekanäle 306 oder
Sende-FIFOs 314,
die angeben, ob sie Daten, die gesendet werden sollen, enthalten. Der
Kanal-Arbiter 320 gibt die Kanalnummer des nächsten Sendekanals 306 oder
des FIFO 314 aus, der zum Übertragen von Daten aktiviert
werden soll.
-
Die
Verbindungssteuerung 318 sendet Daten vom aktiven Sendekanal 306 oder
FIFO 314 oder vom virtuellen GPIO-Kanal 307 auf
eines der ausgehenden (Pin-)Verbindungen 116. Wenn die
ausgehende Verbindung 116 im Leerlauf ist oder die Verbindungssteuerung 318 das
Senden eines Datenblocks auf die ausgehende Verbindung 116 beendet, verwendet
die Verbindungssteuerung 318 die Kanalnummer, die vom Kanal-Arbiter 320 erzeugt
wird, um festzustellen, auf welchen der mehreren Sendekanäle umzuschalten
ist oder welcher als Nächstes
zu wählen
ist. Nach dem Umschalten auf einen neuen Sendekanal 306 sendet
die Verbindungssteuerung 318 wieder Daten auf das ausgewählte unter
den ausgehenden (Pin-)Verbindungen 116.
Es sollte bemerkt werden, dass die Verbindungssteuerung 318 und
der Kanal-Arbiter 320 in Software implementiert werden
können.
-
Der
Empfangssteuerblock 312 kann eine Ablaufsteuereinheit 322 umfassen,
die die Kanalnummer des aktuell aktiven Empfangskanals 310 oder des
FIFO 316, die Zahl der Datenbits im aktuellen Byte, die übertragen
worden sind, und die Datenbits selbst im aktuellen Byte, die bereits
empfangen worden sind, speichert. Unter Verwendung dieser Informationen
schreibt die Ablaufsteuereinheit 322 jedes Byte in den
richtigen Empfangskanal 310 oder Empfangs-FIFO 316,
nachdem die Ablaufsteuereinheit 322 ein komplettes Byte
von Daten empfangen hat. Die Ablaufsteuereinheit 322 kann
auch in Software implementiert werden.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann die Kommunikationsschnittstelle 112 eine
Leistungsmanagementeinheit 324 umfassen. Die Leistungsmanagementeinheit 324 kann
in der Busschnittstelle 300 enthalten sein oder kann außerhalb
der Busschnittstelle 300 liegen. Die Leistungsmanagementeinheit 324 kann
an die mehreren Sendekanäle 306,
die mehreren Empfangskanäle 310,
den Sende- und den Empfangssteuerblock 308 und 112 sowie
die Halbleiterchips 102 (1 und 2)
angeschlossen sein. Die Leistungsmanagementeinheit 324 erleichtert
das Versetzen der Komponenten von System 200 in den Ruhezustand oder
den Energiesparzustand oder -modus, um Energie zu sparen, wie detaillierter
unten beschrieben wird. Vor dem Eintritt in den Energiesparzustand
können
die Komponenten einen Software-Handshake vornehmen. Die Komponenten
können
zum Beispiel bewirken, dass eine Anforderungsnachricht für den Ruhezustand
gesendet wird, eine OK-Antwort empfangen und dann in den Schlafmodus
wechseln. Das Senden und Empfangen dieser Nachrichten kann durch
Verwenden eines Kanals 306 oder 307 und eines
damit verknüpften
Befehlsregisters 302 implementiert werden. Vor dem Senden
einer Anforderungsnachricht für
den Ruhezustand sollten die anfordernden Chips 102 alle
ihre Daten oder Nachrichten in Sendekanäle 306 oder FIFOs 314 übertragen, um
die ausgehende Aktivität
zu stoppen. Vor dem Antworten mit der Nachricht über das Wechseln in den Schlafmodus
sollte der Empfangschip 102 alle Nachrichten empfangen,
die an ihn gerichtet sind, oder alle Empfangskanäle 310 oder FIFOs 316,
die Nachrichten für
den Empfangschip 102 enthalten, leeren und alle Empfangsaktivitäten beenden.
Sobald die anfordernden Chips 102 die OK-Antwort für den Schlafmodus
erhalten, können
sie sicher in den Schlafmodus wechseln.
-
Falls
der Chip 102 den Ruhezustand beendet, kann dies erfolgen,
ohne die anderen Chips 102 zu benachrichtigen. Es wird
jedoch empfohlen, dass der „aufwachende" Chip eine Nachricht über einen Kanal 306 oder 307 sendet,
die erkennen lässt,
dass er gerade aufwacht.
-
4 ist
ein schematisches Blockdiagramm der Kommunikationsschnittstelle 112,
das Beispiele für
einen Sendesteuerblock 308 und einen Empfangssteuerblock 312 gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung illustriert. Der Sendesteuerblock 308 kann
einen Multiplexer oder Mux 400 umfassen, der an die mehreren
Sendekanäle 306 angeschlossen
ist. Der Multiplexer 400 ist an einen Parallel-Serien-Umsetzer
(PISO-Umsetzer) 402 angeschlossen. Der PISO-Umsetzer 402 ist
an einen Kanalwähler 404 und
eine Steuerlogikschaltung 406 angeschlossen. Der Kanalwähler 404 und die
Steuerlogikschaltung 406 sind jeweils an ein Kanalregister 408 angeschlossen, das
auch an den PISO-Umsetzer 402 angeschlossen ist. Der Kanalwähler 404 und
die Steuerlogikschaltung 406 sind auch an ein Kanalkonfigurationsregister 410 und
ein Kanalstatusregister 412 angeschlossen. Das Kanalkonfigurationsregister 410 und
das Kanalstatusregister 412 können Teil des Sendesteuerregister 302 (3)
sein und können
in der Busschnittstelle 300 enthalten sein. Ein Kanalkonfigurationsregister 410 kann
mit jedem Sendekanal 306 oder jedem Empfangskanal 310 verknüpft sein
und liefert Informationen über
den speziellen Sendekanal 306 oder Empfangskanal 310,
wie zum Beispiel die Art des Service, der gewählt wurde (DMA, Interrupt),
den Schwellwert, die Art der Nachrichtenflusssteuerung und dergleichen.
Ein Kanalstatusregister 412 kann ebenfalls mit jedem Sendekanal 306 und
jedem Empfangskanal 310 verknüpft sein und liefert Informationen über den
Kanal 306 oder 310, wie zum Beispiel, ob Kanal 306 oder 310 oder
FIFO 314 in einem „Warte"-Zustand ist, leer
oder voll ist und den Grad der Füllung oder
die Füllmenge
oder Leerheit und ob es Daten in FIFO 314 oder 316 gibt.
-
Beim
Betrieb bestimmt der Kanalwähler 404, welcher
Sendekanal 306 als Nächstes
gewählt
oder aktiviert werden soll. Der gewählte Sendekanal 306 kann
ein Datenkanal, der virtuelle GPIO-Kanal 307 oder ein Nachrichtenflusssteuerungskanal
(MFC) sein, wie detaillierter unten beschrieben wird. Der Kanalwähler 404 nutzt
als Eingaben Konfigurationsdaten aus dem Kanalkonfigurationsregister 410 und Statusdaten
aus dem Kanalstatusregister 412, um den nächsten Sendekanal 306 zu
bestimmen oder auszuwählen,
der zum Senden von Daten oder Informationen aktiviert werden soll.
Der Kanalwähler 404 liefert
als Ausgabe die Kanalnummer des nächsten Sendekanals 306 und
des entsprechenden Empfangskanals 310, die ausgewählt oder
aktiviert werden sollen. Der Kanalwähler 404 bestimmt,
welche der Sendekanäle 306 zur
Aktivierung bereit sind, als Reaktion auf die Konfigurations- und
Statusdaten aus dem Kanalkonfigurationsregister 410 und
dem Kanalstatusregister 412. Zum Beispiel sind die Sendekanäle 306 ohne
Daten in ihren FIFOs 314 oder in einem Wartezustand zur
Aktivierung nicht bereit. Ein festgelegter Algorithmus kann dazu
verwendet werden, den nächsten
Sendekanal 306, der zum Übertragen der Daten, die in
seinem FIFO 314 enthalten sind, aktiviert werden soll,
zu bestimmen. Ein beliebiger Algorithmus kann dazu verwendet werden,
den nächsten
Sendekanal 306 unter den bereiten Sendekanälen 306 auszuwählen. Zum
Beispiel kann ein Round-Robin-Algorithmus oder Auswahlprozess verwendet
werden.
-
Die
Steuerlogikschaltung 406 bestimmt, wann ein neuer Sendekanal 306 aktiviert
werden soll. Von der Steuerlogikschaltung 406 wird ein
Freigabesignal (Strobe-Signal, STB-Signal) 414 erzeugt
und durch eine ausgehende Freigabeverbindung 415 an die
andere empfangende oder Ziel-Kommunikationsschnittstelle 114 (2) übertragen,
wenn die Steuerlogikschaltung 406 bestimmt, dass ein neuer
Kanal 306 aktiviert oder ausgewählt werden soll. Das STB-Signal 414 bewirkt
auch, dass die neue Sendekanalnummer aus dem Kanalwähler 404 vom
Kanalregister 408 gespeichert wird. Das Kanalregister 408 teilt
die neue Sendekanalnummer dem PISO-Konverter 402, der Steuerlogikschaltung 406 und
dem Multiplexer 400 mit. Der PISO-Konverter 402 sendet die
neue Kanalnummer über
eine ausgehende Verbindung oder einen Pin 116 oder Datenverbindung (DAT-Verbindung)
auch an die andere empfangende oder Ziel-Kommunikationsschnittstelle 114.
-
Datensignale
oder Nachrichten von einem aktuell ausgewählten oder aktivierten der
mehreren Sendekanäle 306 oder
FIFOs 314 werden von Multiplexer 400 unter Verwendung
der aktuell aktivierten Kanalnummer als Funktionsauswahlbit für den Multiplexer 400 zeitlich
verschachtelt. Die Daten werden von Multiplexer 400 an
den PISO-Konverter 402 über tragen,
oder die Daten werden vom PISO-Konverter 402 zusammen mit
der Kanalnummer des Sendekanals 306, der aktiviert werden
soll, aus dem Kanalregister 408 als Reaktion auf das STB-Signal 414,
das vom Kanalregister 408 und dem PISO-Konverter 402 empfangen wird,
gelesen. Der PISO-Konverter 402 wandelt die parallelen
Daten, die aus dem Sende-FIFO 314 gelesen werden, in einen
seriellen Bitstrom oder in Datensignale (DAT) 413 um, die über ausgehende
Verbindungen oder Pins 116 gesendet werden. Die ausgehenden
Verbindungen oder Pins 116 entsprechen den eingehenden
Verbindungen oder Pins 118 der empfangenden oder Ziel-Kommunikationsschnittstelle 114.
Der PISO-Konverter 402 serialisiert auch und überträgt die neue
Kanalnummer, die mit dem Datenstrom DAT 413 aktiviert wird.
-
Der
Empfangssteuerblock 312 umfasst einen Serien-Parallel-Umsetzer (SIPO-Konverter) 416, der
an die eingehenden Verbindungen oder Pins 118 angeschlossen
ist. Der SIPO-Konverter 416 ist
an einen Demultiplexer 418 und ein Kanalregister 420 angeschlossen.
Das Kanalregister 420 ist an den Demultiplexer 418 und
eine Steuerlogikschaltung 422 angeschlossen. Der Demultiplexer 418 ist
an mehrere Empfangskanäle 310 angeschlossen,
und die Steuerlogikschaltung 422 ist an ein weiteres Konfigurationsregister 410 und
ein weiteres Kanalstatusregister 412 angeschlossen, das
Teil des Empfangsbefehlsregisters 304 sein kann und in
der Busschnittstelle 300 enthalten sein kann. Beim Betrieb
wandelt der SIPO-Konverter 416 kontinuierlich Datenstrom (DAT)-Signale 413 an
den eingehenden Verbindungen oder Pins 118 aus seriellen
Daten in parallele Daten um. Diese Daten werden sowohl zum Kanalregister 420 als
auch zum Demultiplexer 418 übertragen. Das Kanalregister 420 speichert
die parallelisierten eingehenden Daten als Reaktion auf das STB-Signal 414 an
der Freigabeverbindung 415. Das STB-Signal 414 zeigt
an, dass ein neuer Sendekanal 306 und ein neuer entsprechender
Empfangskanal 310 gerade ausgewählt oder aktiviert werden.
Die Steuerlogikschaltung 422 empfängt auch das STB-Signal 414 und
die Kanalnummer des neuen Empfangskanals 310, der ausgewählt werden
soll.
-
Die
Empfangsteuerlogikschaltung 422 kann ein „Warte"-Signal 423 über eine „Warte"-Verbindung 424 zur
Sendesteuerlogikschaltung 406 des Sendesteuerblocks 308 übertragen,
wenn die Konfigurations- und Statusdaten aus dem Empfangskanalkonfigurationsregister 410 und
dem Empfangskanalstatusregister 412 anzeigen, dass der
neue Empfangskanal 310 oder FIFO 316 voll, deaktiviert
ist oder anderweitig keine Daten empfangen kann. Die Steuerlogikschaltung 422 erzeugt
auch ein Freigabesignal („WRITE
STROBE"-Signal) 425 und
sendet es an den Demultiplexer 418, wenn ein ganzes oder
vollständiges
Byte der Daten vom SIPO-Konverter 416 empfangen wurde.
Der Demultiplexer 418 wählt
den geeigneten Empfangskanal 310 als Reaktion auf die Kanalnummer
aus dem Kanalregister 420 aus. Parallelisierte Daten aus
dem SIPO-Konverter 416 werden dann
in den ausgewählten
der Empfangs-FIFOs 316 als
Reaktion auf das Freigabesignal 425 geschrieben.
-
5 ist
ein schematisches Blockdiagramm der Kommunikationsschnittstelle 112,
das Beispiele für
Befehlsregister 302 (3) zeigt,
die zum Übertragen
von Signalen oder Daten an andere Chips 102 oder Vorrichtungen
gemäß einer
Ausführungsform der
vorliegenden Erfindung verwendet werden können. Die Befehlsregister 302 werden
so gezeigt, dass sie zumindest einen Teil der Busschnittstelle 300 bilden,
obwohl sich die Befehlsregister 302 außerhalb der Busschnittstelle 300 befinden
und unabhängig von
derselben sein könnten.
Die Befehlsregister 302 können ein Schnittstellenmodusregister 502,
ein Sende-FIFO-Register 504, das mit jedem Kanal 306 verknüpft ist,
ein Kanalstatusregister 412, das mit jedem Kanal 306 verknüpft ist,
wie vorher mit Bezug auf 4 diskutiert, ein Nachrichtenende(EOM)-Register 508,
das mit jedem Kanal 306 verknüpft ist, ein Kanalkonfigurationsregister 412,
das mit jedem Kanal 306 verknüpft ist, wie vorher mit Bezug
auf 4 diskutiert, ein Schnittstellen-Interruptidentifizierungs(ID)-Register 512,
ein Sendefrequenzwahlregister 514, ein Wartezählregister 516,
ein Taktstoppzeitregister 518 und ein Schnittstellenbreitenregister 520 umfassen.
-
Das
Schnittstellenmodusregister 502 kann an den Chip 102 angeschlossen
werden, der eine Prozessorchip-Speichervorrichtung oder eine andere Vorrichtung
sein kann. Die Kommunikationsschnittstelle 112 kann in
verschiedenen Betriebsarten betrieben werden, wie zum Beispiel einem
Standardmodus, einem Legacy-Modus oder in anderen Modusarten. Das
Schnittstellenmodusregister 502 steuert, in welchem Modus
die Kommunikationsschnittstelle 112 betrieben wird.
-
Das
Sende-FIFO-Register 504 schreibt Daten vom Chip 102 in
den zugehörigen
Sendekanal 306 oder FIFO 314. Auf das Sende-FIFO-Register 504 kann
zugegriffen werden, nachdem der Sendekanal 306 oder FIFO 314 unter
einen Schwellwert fällt,
der im Kanalkonfigurationsregister 410 definiert ist. Auf
das Sende-FIFO-Register 504 kann entweder direkt vom Prozessor,
Speicher oder einem Chip 102 anderer Art nach einem Interrupt-
oder Pollingsignal zugegriffen werden, oder über direkten Speicherzugriff
(DMA). Wenn eine Übertragung
einer Nachricht bestehend aus mehreren Bytes stattfindet, können die
Bytes in der sogenannten „little
endian"-Reihenfolge
oder beginnend mit der rangniedrigsten Ziffer angeordnet werden.
-
Das
Kanalstatusregister 412 ist an den Sendekanal 306 und
an den Sendesteuerblock 308 angeschlossen. 6 zeigt
ein Beispiel eines Bitlayouts und Bitdefinitionen für das Kanalstatusregister 412.
Das Bitlayout des Kanalstatusregisters, das in 6 gezeigt
wird, kann entweder für
einen Sendekanal 306 oder einen Empfangskanal 310 verwendet werden.
Das Kanalstatusregister 412 kann Informationen darüber umfassen,
ob der Empfangskanal 310 ein Nachrichtenende (EOM)-Signal 602 erhalten
hat; ob der Empfangskanal oder FIFO 310 oder der Sendekanal
oder FIFO 306 sich in einem Wartezustand befindet; ob Empfangs-FIFO 310 oder
Sende-FIFO 306 voll oder leer 606 oder 608 ist;
und die Zahl der Bytes von Daten 610 entweder im FIFO 310 oder
im Sende-FIFO 306.
-
Unter
Rückverweis
auf 5, wird das Kanalkonfigurationsregister 410 an
den Sendekanal 306 und an den Sendesteuerblock 308 angeschlossen
und zeigt an, dass eine ganze oder vollständige Nachricht in den entsprechenden
Sende-FIFO 314 geschrieben wurde.
-
Wie
vorher diskutiert, ist das Kanalkonfigurationsregister 410 an
den Sendekanal 306 und an den Sendesteuerblock 308 angeschlossen. 7 zeigt ein
Beispiel für
ein Bitlayout und Bitdefinitionen für das Kanalkonfigurationsregister 410.
Das Bitlayout des Kanalstatusregisters, das in 7 gezeigt
wird, kann entweder für
einen Sendekanal 306 oder einen Empfangskanal 310 verwendet
werden. Das Kanalkonfigurationsregister 410 kann Informationen
darüber
umfassen, ob der Dienst zur frühzeitigen
Beendigung der Deskriptorkette (early end of descriptor chain service,
(EOC service)(ausgewählt
ist 702, das heißt,
ob eine Nachricht unterbrochen werden kann, bevor das Ende der Nachricht
gelesen wurde; sowie die Art des Empfangs- oder Sende-FIFO-Service,
der gewählt
wurde, DMA oder Interrupt 704; den Schwellwert 706 des
Empfangs- oder Sende-FIFO-Service; Übertragungs-
und Empfangsflusssteuerung, direkte Flusssteuerung (DFC) oder Nachrichtenflusssteuerung
(MFC) 708 und 710, und ob ein zugehöriger Sende-FIFO 314 freigegeben
ist, um Nachrichten oder Daten zu empfangen oder zu übertragen 712.
-
Unter
Rückverweis
auf 5, kann das Schnittstellen-Interrupt-ID-Register 512 an
den Chip 102 und an den Sendesteuerblock 308 angeschlossen
werden. 8 zeigt ein Beispiel für ein Bitlayout und
Bitdefinitionen für
das Schnittstellen-Interrupt-ID-Register 512. Unterbrechungen
(interrupts) können
erzeugt werden, wenn ein Sende-FIFO 314 oder ein Empfangs-FIFO 316 seinen
Schwellwert erreicht, der durch seine entsprechenden Kanalkonfigurationsregister 410 gesetzt
wird, wenn ein Nachrichtenende (EOM) empfangen wird oder wenn eine DMA-Deskriptorkette
erreicht wird, bevor das Ende der Nachricht gelesen ist. Das Erzeugen
einer Unterbrechung bei einem frühen
DMA-Ende des Kanals ist notwendig, um einen Chip 102 vom
Prozessortyp über
eine ungeeignete DMA-Programmierung zu informieren. Wie in 8 gezeigt,
hat jede Art von Schnittstellenunterbrechung ein Bit, das mit derselben
im Schnittstellen-Interrupt-ID-Register 512 verknüpft ist.
Wenn eine Schnittstellenunterbrechung auftritt, wird das entsprechende
Bit im Schnittstellen-Interrupt-ID-Register 512 gesetzt.
-
Unter
Rückverweis
auf 5, können
das Sendefrequenzwahlregister 514, das Wartezählregister 516,
das Taktstoppzeitregister 518 und das Schnittstellenbreitenregister 520 jeweils
zwischen dem Chip 102 und dem Sendesteuerblock 308 angeschlossen
werden. Das Sendefrequenzwahlregister 514 wählt die
Taktfrequenz der ausgehenden Verbindung 116 aus. Das Wartezählregister 516 bestimmt die
Zeit (in Übertragungstaktzyklen),
die der Sendesteuerblock 308 wartet, bevor er erneut eine Übertragung
an einen Empfangskanal 310, der ein Wartesignal 423 (4)
gesendet hat, versucht. Jeder Sendekanal 306 hat ein unabhängiges Wartezählregister 516,
das die Zeit vor einer erneuten Übertragung
an den Empfangskanal 310, der das Senden des Wartesignals 423 bewirkt
hat, zählt,
nachdem ein Wartesignal 423 empfangen wurde. Das Taktstoppzeitregister 518 bestimmt
die Zeit (in Übertragungstaktzyklen),
während
der ein Taktsignal aufhört
durchzulaufen, nachdem eine ausgehende Verbindung 116 in den
Ruhezustand übergegangen
ist. Es sollte bemerkt werden, dass ein Tastsignal nur von den Schnittstellen 112 und 114 der
vorliegenden Erfindung bei Bedarf erzeugt werden kann. Das Schnittstellenbreitenregister 520 legt
die Breite oder Zahl der Datenverbindungen 116 fest, über welche
die erste Kommunikationsschnittstelle 112 gleichzeitig zur
zweiten Kommunikationsschnittstelle 114 überträgt.
-
9 ist
ein schematisches Blockdiagramm der ersten Kommunikationsschnittstelle 112,
das Beispiele für
Befehlsregister 304 illustriert, die zum Empfang von Daten
von der zweiten Kommunikationsschnittstelle 114 gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden können. Die Befehlsregister 304 werden
in 9 als Teil der Busschnittstelle 300 gezeigt,
können
aber auch getrennt von der Busschnittstelle 300 sein. Die
Befehlsregister 304 können
ein Schnittstellenmodusregister 502, ein Empfangs-FIFO-Register 600,
das mit jedem Empfangskanal 310 verbunden ist, ein Kanalstatusregister 412,
das mit jedem Empfangskanal 310 verbunden ist, ein Nachrichtenende
(EOM)-Register 508,
das mit jedem Empfangskanal 310 verbunden ist, ein Kanalstartschwellwertregister 602, das
mit jedem Empfangskanal 310 verbunden ist, ein Kanalstoppschwellwertregister 604,
das mit jedem Empfangskanal 310 verbunden ist, ein Schnittstellen-Interrupt-ID-Register 512,
ein Weckregister 606, ein Kanalkonfigurationsregister 410,
das mit jedem Empfangskanal 310 verbunden ist, und ein
Schnittstellenbreitenregister 520 umfassen. Das Schnittstellenmodusregister 502,
das Kanalstatusregister 412, das Nachrichtenende (EOM)-Register 508,
das Schnittstellen-Interrupt-ID-Register 512,
das Kanalkonfigurationsregister 410 und das Schnittstellenbreitenregister 520 sind
dieselben oder ähnliche
Register wie die vorher in Bezug auf die 4 und 5 beschriebenen.
-
Das
Empfangs-FIFO-Register 600 ist zwischen einem zugehörigen Empfangskanal 310 oder FIFO 316 und
dem Chip 102 zum Empfangen von Daten angeschlossen. Das
Empfangs-FIFO-Regis ter 600 liest Daten aus dem zugehörigen der
Empfangskanäle 310 oder
FIFOs 316. Wenn eine Mehrbyteübertragung auftritt, können die
Bytes in „little
endian"-Reihenfolge
angeordnet werden. Wenn die Empfangsdaten aus dem Empfangs-FIFO 316 durch
das zugehörige
Empfangs-FIFO-Register 600 gelesen werden, können die
Daten aus dem Empfangs-FIFO 316 entfernt werden. Im Allgemeinen
kann auf das Empfangs-FIFO-Register 600 zugegriffen werden, nachdem
der Empfangs-FIFO 316 seinen Schwellwert, wie im Kanalkonfigurationsregister 410 definiert, überschritten
hat, oder wenn eine EOM-Nachricht oder ein -signal von Schnittstelle 112 empfangen wird.
Auf das Empfangs-FIFO-Register 600 kann nach einem Unterbrechungs-
oder Pollingsignal von Chip 102 direkt zugegriffen werden,
oder auf das Empfangs-FIFO-Register 600 kann direkt über DMA zugegriffen
werden.
-
Das
Kanalstartschwellwertregister 602 und das Kanalstoppschwellwertregister 604 sind
jeweils zwischen einem der Empfangskanäle oder FIFOs 316 und
dem Chip 102, der Daten empfängt, angeschlossen. Das Kanalstartschwellwertregister 602 und
das Kanalstoppschwellwertregister 604 speichern die jeweiligen
Start- bzw. Stoppschwellwerte für
das zugehörige
Empfangs-FIFO 316. Wenn die Menge an Daten oder Bits in
einem Empfangs-FIFO 316 den gespeicherten Wert im Kanalstoppschwellwertregister 604 übersteigt,
wird eine Stoppnachricht für
das zugehörige
Empfangs-FIFO 316 an die Quellen-Kommunikationsschnittstelle 112 gesandt,
die die Daten sendet, um das zugehörige Sende-FIFO 314 in
einen Wartezustand zu versetzen. Wenn die Menge der Daten oder Bits
im Empfangs-FIFO 316 unter den Wert im Kanalstartschwellwertregister 602 fällt, wird
eine Startnachricht für
diesen Empfangs-FIFO 316 an die Quellen-Kommunikationsschnittstelle 112 gesandt,
die die Daten sendet, und das zugehörige Sende-FIFO 314 wird
wieder aktiviert oder aus dem Wartezustand herausgeholt, um mit
dem Senden der Daten oder Nachrichten fortzufahren. Der Schwellwert,
der im Kanalstoppschwellwertregister 604 gespeichert ist,
sollte für
ein ordnungsgemäßes Funktionieren
höher als
der Schwellwert sein, der vom Kanalstartschwellwertregister 602 für die Schnittstelle 112 gespeichert
wird.
-
Das
Weckregister 606 ist zwischen dem Empfangskanal 310 oder
FIFO 316 und dem Chip 102 angeschlossen. Das Weckregister 606 wird
zum Wecken des angeschlossenen Chips 102 verwendet.
-
10 ist
ein schematisches Blockdiagramm einer Kommunikationsschnittstelle 112,
das Beispiele von Befehlsregistern 302 illustriert, die
zum Senden und Empfangen von Standard-Eingangs-/Ausgangs-(GPIO-)Signalen 1000 oder
Daten gemäß der vorliegenden
Erfindung verwendet werden können.
Die Befehlsregister 302 zum Ausführen von virtuellen GPIO-Funktionen können ein
virtuelles GPIO-Eingangs- und Ausgangs-Pin-Level-Register 1001,
das mit jedem virtuellen GPIO-Kanal 307 verbunden ist,
ein virtuelles GPIO-Ausgangs-Pin-Set-Register 1002 und
ein virtuelles GPIO-Pin-Clear-Register 1004,
die beide mit jedem virtuellen GPIO-Kanal 307 verbunden
sind, ein virtuelles GPIO-Anstiegs- und Abfallflankenfeststellregister 1006,
das mit jedem virtuellen GPIO-Kanal 307 verbunden ist,
ein virtuelles GPIO-Flankenfeststellstatusregister 1008,
das mit jedem virtuellen GPIO-Kanal 307 verbunden ist,
und ein virtuelles GPIO-Wertunterbrechungsregister 1010 umfassen. Das
virtuelle GPIO-Eingangs- und Ausgangs-Pin-Level-Register 1001 ist
zwischen dem virtuellen GPIO-Kanal 307 und dem Chip 102 angeschlossen und
liefert den Zustand oder Status jedes GPIO-Pins 1012 zum
Senden der GPIO-Daten. Die virtuellen GPIO-Ausgangs-Pin-Set- und
Pin-Clear-Register 1002 steuern den Zustand jedes GPIO-Pins 1012. Der
virtuelle Ausgangs-GPIO-Pin 1012 wird durch Schreiben einer
1 in das entsprechende virtuelle GPIO-Ausgangs-Pin-Set-Register 1002 eingestellt, und
der virtuelle GPIO-Ausgangs-Pin 1012 wird durch
Schreiben einer 1 in das entsprechende virtuelle GPIO-Pin-Clear-Register 1002 gelöscht. Das
virtuelle GPIO-Anstiegs- und Abfallflankenfeststellregister 1006 ist
zwischen dem virtuellen GPIO-Kanal 307 und dem Chip 102 angeschlossen.
Das virtuelle GPIO-Anstiegs- und Abfallflankenfeststellregister 1006 konfiguriert
den GPIO-Pin 1012 zum
Feststellen entweder eines Anstiegsflankenübergangs, eines Abfallflankenübergangs
oder beider. Wenn solch ein Übergang
festgestellt wird, wird ein Bit im virtuellen GPIO-Flankenfeststellstatusregister 1008 gesetzt. Das
virtuelle GPIO-Wertunterbrechungsregister 1010 enthält ein Konfigurationsbit,
das zum Angeben, ob eine Unterbrechung erzeugt wird, wenn ein virtueller
GPIO-Wert oder -Signal von der ersten Kommunikationsschnittstelle 112 über eine
eingehende Verbindung 118 (1) empfangen
wird, gesetzt werden kann.
-
11 ist
ein schematisches Blockdiagramm eines Beispiels für die erste
Kommunikationsschnittstelle 112 und die zweite Kommunikationsschnittstelle 114,
die durch verschiedene ausgehende Kommunikationsverbindungen oder
Pins 116 und eingehende Kommunikationsverbindungen oder
Pins 118 verbunden sind, und Beispiele von Signalen, die über jede
der Verbindungen 116 und 118 zwischen der ersten
Kommunikationsschnittstelle 112 und der zweiten Kommunikationsschnittstelle 114 übertragen werden
können.
Die ausgehenden Kommunikationsverbindungen oder Pins 116 können eine
Taktverbindung oder einen Pin 1102 zum Senden eines CLK-Signals, eine Übernahmeverbindung
oder einen Pin 1104 zum Senden eines STB-Signals, eine
Warteverbindung oder einen Pin 1106 zum Senden eines WARTE-Signals
und mehrere Datenverbindungen oder Pins 1108, die zur erleichterten Übertragung
von Daten verwendet werden, DAT-Signale oder Nachrichten von der
ersten Schnittstelle 112 an die zweite Schnittstelle 114 umfassen.
Analog können
die eingehenden Kommunikationsverbindungen oder Pins 118 auch
eine Taktverbindung 1110 zum Senden eines CLK-Signals,
eine Übernahmeverbindung 1112 zum
Senden eines STB-Signals, eine Warte verbindung 1114 zum
Senden eines WARTE-Signals und mehrere Datenverbindungen oder Pins 1116 zur
Erleichterung der Übertragung
von Daten, DAT-Signalen oder Nachrichten von der zweiten Schnittstelle 114 zur
ersten Schnittstelle 112 umfassen. Eine Schnittstelle 112 oder 114,
die Daten sendet oder überträgt, kann
als Quelle oder als Quellen-Schnittstelle bezeichnet werden, und
eine Schnittstelle 112 oder 114, die Daten empfängt, kann
als Ziel oder Ziel-Schnittstelle bezeichnet werden.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird ein Beispiel für Kanalnummerzuweisungen oder
-bezeichnungen für
die Sende- und Empfangskanäle 306 und 310 (3)
und eine Beschreibung der Funktion jedes Kanals 306 und 310 gemäß seiner
Nummernzuweisung in 12 gezeigt. Kanal 0 kann ein
Nullkanal zum Senden eines Nachrichtenende(EOM)-Signals sein, wie vorher diskutiert.
Die Kanäle
1–7 können zum Übertragen
von Daten oder Nachrichten verwendet werden. Wenn eine Quellen-Kommunikationsschnittstelle 112 das Übertragen
einer Nachricht anhalten muss, ohne einen neuen Kanal 1–7 zu aktivieren, kann
die Kommunikationsschnittstelle 112 Kanal 11, den leeren
Kanal, aktivieren. Kanal 11 kann auch als Kanal B in hexadezimaler
Notation bezeichnet werden. Kanal 13 oder D kann als virtueller
GPIO-Kanal 307 verwendet werden (3). Kanal
14 oder E und Kanal 15 oder F können
zum Senden von Start- und Stoppnachrichten verwendet werden, wenn
die Übertragung
von Daten auf ein ausgewähltes
Empfangs-FIFO 316 aus einem bestimmten Grund angehalten
werden muss.
-
13 ist
ein Beispiel für
Wellenformen zum Übertragen
der Nachricht „7B3D" über den Datenkanal 3. Die erste
Wellenform ist das Takt- oder CLK-Signal 1302 und wird
auf die Taktverbindung oder den Pin 1102 übertragen
(11). Die zweite Wellenform ist das Daten- oder
DAT-Signal 1304 und wird auf die Datenverbindungen 1108 (11) übertragen.
Die dritte Wellenform ist das Übernahme-
oder STB-Signal 1306 und wird auf die Übernahmeverbindung oder den
Pin 1104 übertragen
(11). Die vierte Wellenform ist das Wartesignal 1308 und
wird auf die Warteverbindung oder den Pin 1106 übertragen (11).
Einer der Datenkanäle
1–7 (12)
wird durch Erzeugen eines STB-Signals
oder -impulses 1310 an der Übernahmeverbindung 1104 oder
dem Pin und durch Anzeige der Datenkanalnummer 1–7, in diesem Fall Kanalnummer
3, die von Impuls 1312 in 13 illustriert
wird, an einer entsprechenden Datenverbindung (DAT) 1198 vor
dem nächsten CLK-Signal
oder dem -Impuls 1314 aktiviert. Wenn die Kommunikationsschnittstelle 112 so
eingestellt ist, dass sie Anstiegsflanken, im Gegensatz zu Abfallflanken,
des CLK-Signals 1302 feststellt, wird Kanal 3 ausgewählt oder
er wird zum aktiven Kanal 106 und 310 zum Übertragen
und Empfangen von Daten, wenn der nächste Anstiegsflankenübergang
des CLK-Signals festgestellt wird. Die Datensignale oder die Nachricht „3D7B" wird über Kanal
3 auf jeden der folgenden Anstiegsflankenübergänge des CLK-Signals 1302 übertragen.
-
Wie
vorher erwähnt,
können
die Kommunikationsschnittstellen 112 und 114 unterschiedliche Schnittstellenbreiten
unterstützen.
Das geeignete Bit im Schnittstellenbreitenregister 520 kann
zum Bereitstellen der unterschiedlichen Schnittstellenbreiten eingestellt
werden, wie zum Beispiel eine serielle Breite oder Modus (1 Bit),
eine Zweibitbreite oder -modus, eine Halbbytebreite oder -modus
(4 Bit) usw. In dem Beispiel, das in 13 gezeigt
wird, sind die Signale 1302, 1304, 1306 und 1308 in
der Halbbytebreite oder im -modus. Dementsprechend können vier
Datenverbindungen oder Pins 1108 in 11, DAT(0),
DAT(1), DAT(2) und DAT(3), zum Übertragen einer
Nachricht im Halbbytemodus verwendet werden.
-
Wenn
die Übertragung
der Nachricht durch einen Datenkanal 1–7 (12) beendet
ist, kann die Datenverbindung (DAT) 1108 (11)
die aktive Kanalbezeichnung in Kanal 0 oder den Nullkanal ändern (12).
Das Umschalten auf den Nullkanal lässt das Ende einer Nachricht
(EOM) erkennen und löst das
Aktivieren des Service an der Ziel-Kommunikationsschnittstelle 114 für das entsprechende
Empfangs-FIFO 316 oder Kanal 310 aus. Ein Nachrichtenende
(EOM)-Signal oder -Impuls 1316 wird am Ende des Datenbitstroms
oder -signals 1304 in 13 gezeigt.
-
Das
Aktivieren eines neuen Datenkanals 1–7 erfordert die erneute Bekräftigung
des STB-Signals 1306 auf der Übernahmeverbindung oder dem
Pin 1104 (11) und die Übertragung der neuen Datenkanalnummer
1–7 auf
die Datenverbindungen 1108. Der neue Datenkanal 1–7 kann
aktiviert werden, wenn gerade keine Datenübertragungen stattfinden, in
der Mitte einer Datenübertragung
auf einen anderen Datenkanal 1–7
oder direkt, nachdem die aktuelle Datenübertragung beendet wurde und
der Nullkanal 0 aktiviert wurde, um das Ende einer Nachricht anzuzeigen.
Im Beispiel von 14 ist Kanal 3 durch das STB-Signal
oder den -Impuls 1402 aktiviert worden und sendet einen
Kanalnummer „3"-Impuls 1404 auf die
Datenverbindung 1108, um die Nachricht „3D7B" zu senden. Nach der Übertragung
des „7B"-Signals 1406 wird
ein weiteres STB-Signal oder -Impuls 1408 erzeugt und ein
Datensignal 1410, das Kanalnummer 2 bezeichnet, wird auf
der Datenverbindung 1108 gesendet, um Kanal 2 zum Senden
der Nachricht „AE" 1412 zu
aktivieren. Nach dem Nachrichtenende (EOM)-Signal 1414 wird
Kanal 3 wieder durch ein STB-Signal oder -Impuls 1416 und
ein Kanalnummer „3"-Signal 1418 aktiviert, um Kanal
Nr. 3 zu reaktivieren und den Rest der Nachricht „3D" 1420 zu
senden. Die Nachricht auf Kanal 3 kann durch die Nachricht auf Kanal
2 zwangsweise zurückgestellt
werden, weil die Nachricht von Kanal 2 eine höhere Priorität haben kann.
-
Während des
Empfangs der Daten kann das Empfangs-FIFO 316 (3)
voll werden, was Empfangs-FIFO 316 an der Annahme neuer
Daten hindern würde.
Ein Beispiel für
ein Flusssteue rungsverfahren zur Benachrichtigung der Quellen-Kommunikationsschnittstelle 112 über diesen
Zustand kann als Direktflusssteuerung (DFC) bezeichnet werden, und
ein weiteres Beispiel für
ein Flusssteuerungsverfahren für
den Zustand ,FIFO voll' kann
als Nachrichtenflusssteuerung (MFC) bezeichnet werden. Beide Verfahren
deaktivieren zeitweilig Datenübertragungen,
indem sie den aktiven Sendekanal 306 oder FIFO 314 in
einen "Warte"-Zustand versetzen.
Wenn der aktive Sendekanal 306 sich in einem Wartezustand
befindet, kann die Quellen-Kommunikationsschnittstelle 112 keine
Daten durch Kanal 306 senden. Jeder Versuch, Daten zu senden,
wird ignoriert. Es kann jedes Flusssteuerungsverfahren oder beide von
den Kommunikationsschnittstellen 112 und 114 verwendet
werden.
-
Unter
Rückverweis
auf 11, bekräftigt
bei dem Direktflusssteuerungsverfahren die Zielschnittstelle 114 ein „Warte"-Signal 1308 über die
Warteverbindung oder den Pin 1106 an die Quellenschnittstelle 112,
wenn der aktive Empfangskanal 310 oder FIFO 316 deaktiviert,
ungültig
oder voll ist. Das „Warte"-Signal 1308 wird
auch nach einem Reset gesendet und während die Datenverbindung 1108 im
Ruhezustand ist, d.h. es gibt keine Daten oder Nachrichten, die
gerade übertragen
werden. Die Quellenschnittstelle 112 tastet das „Warte"-Signal 1308 bei jedem
CLK-Impuls 1302 der CLK-Verbindung 1102 ab, während der
aktive Datenkanal 1–7
in einem Wartezustand ist, solange das „Warte"-Signal 1308 bekräftigt wird.
Wenn das „Warte"-Signal 1308 abfällt oder
nicht mehr bekräftigt
wird, kann die Datenübertragung
wieder aufgenommen werden. Ein weiterer Datenkanal 1–7 kann
aktiviert werden, während
der aktuell aktive Kanal 1–7
durch Übertragen
des STB-Signals 1306 auf der Übernahmeverbindung 1104 und
durch Übertragen
einer neuen Datenkanalnummer 1–7
auf einer entsprechenden Datenverbindung 1108 sich in einem
Wartezustand befindet.
-
15 ist
ein Beispiel für
eine Nachrichtenflusssteuerung (MFC), die Stopp- und Startnachrichten 1502 und 1504 verwendet,
um einen aktiven Datenkanal 1–7
in einen Wartezustand zu versetzen. Wenn ein Empfangs-FIFO 316 ein
benutzerprogrammierbares Schwellniveau, das im Kanalstoppschwellwertregister 604 eingestellt
ist, übersteigt,
wird der entsprechende Kanal 1–7
durch Senden einer Stoppnachricht 1502 in einen Wartezustand
versetzt. Die Stoppnachricht 1502 wird durch Übertragen
der Kanalnummer, z.B. Kanal 4, auf Kanal 14 oder Kanal E hexedezimal
auf Datenverbindung 1116 (11) von der
Zielschnittstelle 114 zur Quellenschnittstelle 112 gesendet.
Dementsprechend wird ein Übernahmesignal
oder -impuls zusammen mit der Stoppkanalnummer E 1502 gesendet,
um den Stoppkanal 14 oder E (12) zu
aktivieren. Die Nummer des Datenkanals 1–7, der in den Wartezustand
versetzt werden soll, wird dann auf dem Stoppkanal E übertragen.
In dem Beispiel von 15 wird ein Signal 1508,
das Kanal 4 bezeichnet, auf Kanal E oder den Stoppkanal übertragen.
Wenn die Quellenschnittstelle 112 die Stoppnachricht 1502 erhält, tritt
der aktive Datenkanal 1–7
in einen Wartezustand ein und hört auf,
Daten zu senden, bis er aus dem Wartezustand herausgeführt wird.
Kanal 1–7
verlässt
den Wartezustand, wenn die Quellenschnittstelle 112 eine
Startnachricht 1504 erhält.
Wenn Empfangs-FIFO 316 für den aktiven Kanal 1–7 unter
einen vom Benutzer gewählten
Schwellpegel fällt,
der im Kanalstartschwellwertregister 602 festgelegt ist,
wird eine Startnachricht 1504 durch Übertragen der Kanalnummer von Kanal
1–7, der
reaktiviert werden soll, über
Kanal 15 oder Kanal F hexadezimal auf einer ausgehenden Datenverbindung 1116 von
der Zielschnittstelle 114 zur Quellenschnittstelle 112 gesendet.
Dementsprechend wird in dem Beispiel von 15 ein
weiteres Übernahmesignal
oder -impuls 1510 auf die Übernahmeverbindung 1104 übertragen,
und das Signal 1504 zur Startkanalbezeichnung „F" wird auf die Datenverbindung 1116 übertragen,
gefolgt von dem Signal 1512 der Kanalnummer „4", um den Kanal 4
aus dem Wartezustand herauszuführen.
Wie vorher diskutiert, können
die Schwellwertpegel zum Senden der Kanalstopp- und -startnachrichten 1502 und 1504 von
einem Benutzer im Kanalstoppschwellwertregister 604 und
im Kanalstartschwellwertregister 602 (9)
eingestellt werden. Die Nachrichtenflusssteuerung hat eine höhere Priorität als andere Nachrichten,
die gerade auf den Datenverbindungen 1108 und 1116 gesendet
werden, und verdrängt
den anderen Nachrichtenverkehr, sobald das aktuelle Byte gesendet
wird.
-
16 ist
ein Flussdiagramm eines Beispiels für ein Verfahren 1600 zur Übertragung
von Daten oder Nachrichten zwischen den Halbleiterchips 102 oder
anderen Vorrichtungen gemäß einer Ausführungsform
der vorliegenden Erfindung. In Block 1602 werden Daten
in mindestens einen der mehreren Sende-FIFOs 314 geschrieben.
In Block 1604 wird ein der mehreren Sende-FIFOs 314,
der Daten enthält
und sich nicht in einem Wartezustand befindet, gemäß einem
festgelegten Algorithmus, wie zum Beispiel einem Ringprozess (round
robin) oder dergleichen, ausgewählt,
um einen aktiven Kanal 1–7 zur Übertragung
der Daten von der Quellenschnittstelle 112 auf die Zielschnittstelle 114 zu
bilden. In Block 1606 wird ein Übernahmesignal von der Quellenschnittstelle 112 zur
Zielschnittstelle 114 gesendet, um die Übertragung von Daten auszulösen. In Block 1608 wird
die gewählte
Kanalnummer des aktiven Kanals 1–7 über eine gewählte Datenverbindung 1108 von
der Quellenschnittstelle 112 zur Zielschnittstelle 114 übertragen.
In Block 1610 wird ein entsprechender der mehreren Empfangs-FIFOs 316, der
nicht voll oder in einem Wartezustand ist, ausgewählt, um
den aktiven Kanal 1–7
zu bilden, und in Block 1612 werden Daten oder Nachrichten über eine
entsprechende Datenverbindung 1108 vom Sende-FIFO 314 des
aktiven Kanals 1–7
der Quellenschnittstelle 112 zum entsprechenden der Empfangs-FIFOs 316 der
Zielschnittstelle 114 übertragen.
In Block 1614 wird ein Nachrichtenende (EOM)-Signal 1308 gesendet,
nachdem alle Daten übertragen
worden sind. In Block 1616 kann ein Wartesignal 1308 oder
eine Stoppnachricht 1502 von der Zielschnittstelle 114 an
die Empfangsschnittstelle 112 gesendet werden, wenn das
entsprechende der Empfangs-FIFOs 316 keine Daten empfangen
kann, weil er deaktiviert, unzulässig
oder voll ist oder aus einem anderen Grund keine Daten empfangen
kann. In Block 1618 wird das Wartesignal 1308 entfernt, oder
es kann eine Startnachricht 1504 gesendet werden, wenn
das entsprechende der Empfangs-FIFOs 316 nun Daten empfangen
kann. In Block 1620 kann mindestens ein weiteres Sende-FIFO 314 und
ein weiteres entsprechender Empfangs-FIFO 316 ausgewählt oder
aktiviert werden, um einen aktiven Kanal 1–7 zu bilden, während das
eine Empfangs-FIFO 316 keine Daten empfangen kann.
-
Obwohl
spezielle Ausführungsformen
hierin illustriert und beschrieben wurden, ist für die Fachleute auf diesem
Gebiet erkennbar, dass jede Anordnung, die zum Erreichen desselben
Zwecks entwickelt wurde, die spezielle Ausführungsform, die gezeigt wird,
ersetzen kann. Diese Anwendung soll alle Anpassungen oder Abwandlungen
der vorliegenden Erfindung erfassen. Es ist daher beabsichtigt,
dass diese Erfindung nur durch die Ansprüche begrenzt wird.