DE10308510B3 - Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur - Google Patents

Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur Download PDF

Info

Publication number
DE10308510B3
DE10308510B3 DE2003108510 DE10308510A DE10308510B3 DE 10308510 B3 DE10308510 B3 DE 10308510B3 DE 2003108510 DE2003108510 DE 2003108510 DE 10308510 A DE10308510 A DE 10308510A DE 10308510 B3 DE10308510 B3 DE 10308510B3
Authority
DE
Germany
Prior art keywords
data
signal
bit
bits
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2003108510
Other languages
English (en)
Inventor
Achim Rettberg
Mauro C Zanella
Thomas Lehmann
Christophe Bobda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE2003108510 priority Critical patent/DE10308510B3/de
Application granted granted Critical
Publication of DE10308510B3 publication Critical patent/DE10308510B3/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

1. Schnittstelle für synchrone bitserielle Datenübertragung, insbesondere innerhalb von Datenverarbeitungsprozessoren, mit den Merkmalen: DOLLAR A È Die Signale der Schnittstelle werden durch einen gemeinsamen Takt bestimmt. DOLLAR A È Die Schnittstelle umfasst eine Datenleitung und eine in Gegenrichtung dazu wirkende Warteleitung. DOLLAR A È Auf der Datenleitung werden aufeinander folgend Startsignale, Datenwörter und Pausensignale übertragen, wobei das Pausensignal aus einer beliebig langen Folge gleicher Pausenbits besteht und das Startsignal mit dem Inversen eines Pausenbits beginnt. DOLLAR A È Durch ein Wartesignal auf der Wartesignalleitung ist die Dauer des Startsignals vor Beginn eines Datenworts verlängerbar. DOLLAR A 2. Schnittstelle nach Anspruch 1, wobei das Wartesignal durch ein Freigabesignal realisert wird. DOLLAR A 3. Schnittstelle nach einem der vorherigen Ansprüche, wobei durch das Wartesignal zusätzlich die Dauer des Pausensignals verlängert wird. DOLLAR A 4. Baugruppe für bitserielle Verarbeitung, wobei eine Schnittstelle nach einem der vorherigen Ansprüche verwendet wird. DOLLAR A 5. Baugruppe nach Anspruch 4, wobei vor den Datenbits Steuerbits übertragen werden, die die Funktion der Schnittstelle modifizieren. DOLLAR A 6. Rechner mit Baugruppen, entsprechend den beiden vorherigen Ansprüchen.

Description

  • Die Erfindung betrifft Datenprozessoren mit serieller synchroner Arbeitsweise.
  • In der Anfangszeit der digitalen Rechenautomaten wurden aus Gründen der Materialökonomie zunächst synchrone serielle Rechner entworfen. Da sich bei gegebener Taktrate durch Parallelverarbeitung eines vollen Datenworts die Rechengeschwindigkeit gegenüber einem seriellen Rechner wesentlich steigern lässt, wurden serielle Rechner kaum noch verwendet.
  • Mit gleichzeitig ansteigenden Taktraten und in der räumlichen Ausdehnung grösser werdenden Rechnern nehmen jedoch auch Probleme in parallelen synchronen Rechnern durch Laufzeitunterschiede zu, die wiederum teilweise nur durch Reduktion der Taktrate auffangbar sind.
  • Für Sonderanwendungen wie die digitale Signalverarbeitung werden daher weiterhin synchrone serielle Rechner verwendet, die häufig für ein spezielles Problem zugeschnitten sind und dort dann z.B. weniger Leistung als ein entsprechender paralleler Entwurf benötigen. Kaskadenschaltungen ('pipelining') von Baugruppen ist hier weit verbreitet, da diese lediglich die Gesamtverzögerung, aber nicht den Durchsatz verschlechtern und die Daten meist ohnehin seriell anfallen.
  • Insbesondere durch die Kaskadierung ist bei den seriellen synchronen Schaltkreisen die Ablaufsteuerung bei hohen Taktraten nicht problemlos. Wegen der synchronen getakteten Arbeitsweise ist ein hoher Aufwand notwendig, um sicherzustellen, dass die von einer zentralen Steuerung vorausgesetzen Datenwörter zur richtigen Zeit an der richtigen Baugruppe vorliegen.
  • Zwar sind auf dem Gebiet der asynchronen, eigengetakteten Schaltungen in letzter Zeit wesentliche Fortschritte erreicht worden. Da dieser Schaltungstyp sich lokal selbst synchronisiert, kann er immer mit höchstmöglicher Geschwindigkeit ungeachtet von Streuungen in den Verzögerungszeiten arbeiten. Jedoch ist die Entwurfsmethodik noch nicht auf einem den synchronen Schaltungen vergleichbaren Stand.
  • Die Erfindung stellt sich daher die Aufgabe, bei synchronen seriellen Rechenschaltungen durch eine lokale Synchronisation ähnliche Vorteile wie bei den ungektakten asynchronen Schaltungen zu erzielen, ohne dass hierzu die Entwurfsmethodik der synchronen Schaltungen verlassen werden muss.
  • Eine bitserielle Datenübermittlung ist insbesondere aus der Datenfernübertragung bekannt. Hierbei wurden insbesondere die nachfolgend beschriebenen Verfahren benutzt:
    Eines davon wird üblicherweise als asynchron bezeichnet und mit den Abkürzungen 'V24' oder 'RS232' assoziiert. Hierbei befindet sich die Datenleitung in einem Ruhezustand, wenn keine Daten übertragen werden. Durch einen nicht zwischen Sender und Empfänger synchronisierten Pegelwechsel, als Startbit bezeichnet, wird im Empfänger ein lokaler Taktgenerator gestartet, der mit einer vorab zwischen Sender und Empfänger vereinbarten Frequenz schwingt. Anschliessend an das Startbit werden 7, 8 oder 9 Bits (ebenfalls vorab vereinbart) synchron zum Taktgenerator des Senders gesendet; gefolgt von einem Stopbit mit dem auch im Ruhezustand benutzten Wert. Es ist also erforderlich, dass der Taktgenerator im Empfänger sofort mit der richtigen Geschwindigkeit arbeitet. Da nur wenige Bits übertragen werden, sind die beiden Taktgeneratoren in etwa synchron. Das empfangene Datenwort muss sodann noch mit dem restlichen Systemtakt synchronisiert werden. Nach dem Stopbit und einer darauf möglichen Sendepause werden die beiden Taktgeneratoren durch das nächste Startbit erneut synchronisiert. Die dafür geeignete Bezeichnung 'plesiosynchron' hat sich nicht durchgesetzt.
  • Um Datenverluste zu vermeiden, wenn der Empfänger langsamer arbeitet als der Sender, wurde als Hardware-Lösung neben der Datenleitung eine Anzahl von Steuerleitungen sowohl in Daten- als auch in Gegenrichtung vorgesehen, mit denen beispielsweise der Empfänger signalsieren kann, dass kein Puffer für ein neues Zeichen vorhanden ist. Damit wird dann bewirkt, dass der Sender die Pausen zwischen zwei Zeichen verlängert, bis dieses Signal wieder deaktiviert wird.
  • Eine Verwendung dieser Methode zur seriellen Datenübertragung zum Datentransport in Baugruppen eines Prozessors ist allein deshalb nicht möglich, weit die Daten nicht mit dem vollen Prozessortakt übertragen werden können. Ausserdem beanspruchen die Zeiten für die Start- und Stopbits bei acht Bit Nutzdaten 20% der Bandbreite.
  • Daher wurde ein als HDLC bzw. SDLC bekanntes Verfahren von der Firma IBM entwickelt, bei dem zusätzlich zu der Datenleitung noch eine Taktleitung vorhanden ist, beide Seiten also mit demselben Takt arbeiten. Hier werden, wenn keine Daten vorliegen, reservierte Zeichen gesendet. Anstelle einer Taktleitung werden auch Füllbits eingefügt, um eine Mindestanzahl von Pegelwechseln zu erreichen und so über Phasensychronisation die Taktgeneratorn auf beiden Seiten synchron zu hatten. Auch diese Lösung jedoch kann nicht mit vollem Prozessortakt übertragen.
  • Für die Kopplung von integrierten Schaltkreisen wird häufig der IIC-Bus verwendet. Dieser verfügt über eine Takt- und eine Datenleitung, bei der die Flanken auf der Taktleitung die Datenübernahmen bestimmen; es handelt sich insoweit um ein synchrones Verfahren. Das Wartesignal besteht dabei jedoch darin, dass das Taktsignal durch geschaltete Veroderung von dem Empfänger verlängert werden kann. Dies ist nur bei niedrigen Taktraten beherrschbar.
  • Im Bereich der Kopplung von Prozessoren wurde von der damaligen Firma INMOS für die Transputer-Zentraleinheiten eine wenig aufwendige asynchrone serielle Schnittstelle verwendet. Hierbei werden zwei gleiche Startbits verwendet, auf die acht Datenbits und ein Stopbit folgen. Da diese Verbindungen immer einem Paar von Leitungen, für jede Richtung eine, benutzt werden, ist ein spezielles Quittungssignal 'ack' vorgesehen. Diese besteht lediglich aus einem Start- und einem Stopbit und kann daher, da ein Datenpaket mit zwei Startbits anfängt, davon unterschieden werden. Ein 'ack' Paket quittiert das aktuelle Datenbyte und signalisiert gleichzeitig, dass ein Puffer für ein weiteres Datenbyte frei ist. Die Abwesenheit eines solchen 'ack' verlängert also in bekannter Art die Pause zwischen zwei Datenpaketen.
  • In der Patentschrift US 6,215,817 B1 wird eine serielle Schnittstelle beschrieben, bei der eine gemeinsame Leitung für beide Signalrichtungen verwendet wird. Die Schnittstelle wird synchron gemäß den oben beschriebenen Verfahren getaktet.
  • In der Offenlegungsschrift WO 01/59577 A1 wird ein Buskoppler gezeigt, bei dem für jede Richtung getrennte synchron getaktet serielle Schnitstellen verwendet werden.
  • In der Offenlegungsschrift DE 197 37 369 A1 wird ein Datenspeicher beschrieben, bei dem die Übertragung nach einem der oben genannten seriellen Verfahren (V24, I2C) erfolgt.
  • In keiner dieser Schriften wird vorgesehen, daß das Startsignal vor Beginn der Datenbits verlängerbar ist.
  • In allen diesen Fällen wird davon ausgegangen, dass der Empfänger zumindest ein Datenbyte oder -wort in einem Eingangspuffer hält. Daher ist nirgendwo vorgesehen, dass zwischen Startbit und den Datenbits eine Wartezeit eingeschoben wird. Dies hängt auch damit zusammen, dass bei einer parallelen Weiterverarbeitung die Daten ohnehin durch den Serien-Parallel-Wandler gepuffert werden müssen.
  • Will man jedoch innerhalb einer Zentralheinheit und insbesonderer bei kaskadierter Verarbeitung für jeden Operator sowohl Eingangs- als auch Ausgangspuffer für die vollen Datenworte vorsehen, so entsteht ein sehr hoher Aufwand und eine hohe Gesamtverzögerungszeit.
  • Die vorliegende Erfindung erlaubt es, Datenwörter mit der vollen Taktgeschwindigkeit zu übertragen und dennoch ohne zentrale Steuerung sowohl beliebig lange Pausen zwischen Datenworten (wenn der Sender noch keine Daten bereit hat) als auch ein Anhalten der Übertragung (wenn der Empfänger noch keine Daten aufnehmen kann) zu bewirken.
  • Dabei wird ein konstanter Ruhepegel, d.h. eine Folge von Nullen, verwendet. Liegt im Sender ein Datenwort fertig vor, so sendet dieser ein Startbit, indem die Datenleitung mit der für den zentralen Takt notwendigen Vorlaufzeit auf Eins gesetzt wird. Anders als bei der asynchronen Datenübertragung wird also nicht die ansteigende Flanke, sondern das Vorliegen einer Eins relativ zum Taktimpuls ausgewertet. Durch eine in Gegenrichtung führende Signalleitung kann der Empfänger signalisieren, ob er für die Übernahmen von Daten bereit ist. Dies kann nicht nur ein noch nicht ausreichend entleerter Ausgangspuffer sein. Bei mehrstelligen Operatoren müssen alte Operanden gleichzeitig anliegen, so dass ein solches Wartesignal auch notwendig ist, wenn der andere Operatoreingang noch keine Daten vorliegen hat.
  • Liegt ein solcher Fall vor, so wird das Startbit verlängert. Wegen der synchronen Arbeitsweise von Sender und Empfänger kann dieses praktisch beliebig lange andauern. Bei der asynchronen Datenübertragung ist diese Methode überhaupt nicht möglich, da sonst die Taktgeneratoren in Sender und Empfänger schnell ausser Phase geraten würden.
  • Kann die empfangende Baugruppe Daten aufnehmen, wird ein Datenwort von vorbestimmter Länge ohne Unterbrechung übertragen. In der Regel wird daraufhin ein Stopbit gesendet, um das Schaltungsdesign zu vereinfachen. Notwendig ist es nicht; auf das letzte Datenbit kann durchaus bereits unmittelbar ein neues Startbit folgen. In den folgenden Auführungsbeispielen wird immer mindestens ein Stopbit verwendet, um die Schaltungen übersichtlich zu halten.
  • Zwar ist auch hier wieder ein Verlust von Bandbreite durch zumindest das Startbit zu verzeichnen. Es können aber beliebig lange Datenwörter verwendet werden, da beide Seiten vollständig synchron getaktet werden. Bei längeren Datenwörtern ist der Verlust an Bandbreite entsprechend geringer. Da durch die lokale Steuerung der Datenübernahme die entsprechende globale Komponente samt Datenleitungen entfällt, wird dieser Verlust mehr als kompensiert. Erfahrungsgemäß erfordert eine globale Steuerung eine Vielzahl von Synchronisationspunkten, da eine vollständige Modellierung des Datenflusses nicht beherrschbar ist und durch die Partitionierung des Problems willkürliche Zeitschnitte notwendig werden, die die Datenrate signifikant reduzieren.
  • Ob man das Signal entgegen Datenrichtung als Freigabesignal, Wartesignal oder Abrufsignal bezeichnet, kann für das Verständnis nützlich sein, ist aber im Endeffekt technisch ohne Belang. Die Interpertation hängt davon ab, welcher Pegel als aktiv und welcher als inaktiv bezeichnet wird. Ist beispielsweise das Signal zu Beginn des Startsignals inaktiv und wird es in einem fest Taktabstand vor Beginn des Datenworts aktiv, dann passt die Bezeichung Freigabe- oder Abrufsignal. In diesem Fall findet immer ein Pegelwechsel statt.
  • Wird hingegen das Signal entgegen Datenrichtung nur dann aktiviert, wenn eine Verlängerung des Startsignals notwendig ist, dann würde man eher eine Bezeichung wie Warte- oder Hinhaltesignal verwenden. In diesem Fall findet nur dann ein Pegelwechsel statt, wenn Wartetakte vor Beginn des Datenworts eingeschoben werden.
  • Entscheidend ist in allen Fällen, das das Signal in Gegenrichtung dazu führt, das nach dem Startbit zusätzliche Takte gewartet wird, bevor dann die Datenbits übertragen werden. Auch kann es sinnvoll sein, nach dem Startbit noch obligatorisch ein Füllbit vorzusehen, damit die Setup- und Haltezeiten gegenüber dem Taktsignal eingehalten werden können.
  • Mit der Erkenntnis, das es sich um eine alternierende Abfolge von Ablaufinformation und Datenwörtern handelt, hängt eine Weiterbildung der Erfindung zusammen. Bei dieser werden mehrere aufeinanderfolgenen Bits anstelle eines einzigen Startbits verwendet, die die Funktion der nachfolgend Schaltung steuern. Mit einer zentralen Steuerung zusätzlich zum zentralen Takt sind solche Ablaufvarianten nur schwer überschaubar zu halten.
  • In den nachfolgenden Beispielen wird ein Datenwort von vier Bit verwendet, um die Beispiele klein zu halten. Die Anzahl der Datenbits ist selbstverständlich beliebig, wenn auch pro Schnittstelle vorab festzulegen. Mit entsprechendem Aufwand kann auch die Ausgabeschnittstelle eines Addierers z.B. ein um ein Bit längeres Ausgabeformat verwenden, um Abschneiden durch Überlauf zu vermeiden.
  • Die Erfindung wird an Hand der der folgenden Variante beschrieben. Dabei werden Datenpakete übermittelt. Ausserhalb der Datenpakete liegt die Datenleitung auf Null; diese Pausenzeiten können beliebig lang sein. Jedes Datenpaket besteht aus einem Kopfteil, der immer mit einem Eins-Bit beginnt. Darauf kann eine vordefinierte Anzahl von Bits folgen, die in Weiterbildungen der Erfindung Anwendung finden. Falls dies für die Synchronisation sinnvoll ist, kann der Kopfteil ein oder mehrere Einsen am Ende enthalten. In dem folgenden Beispiel wird zur besseren Übersicht eine weitere Eins nach dem Startbit verwendet, so dass der Kopf zwei Bit lang ist. Darauf folgen, weiterhin getaktet durch den zentralen Takt, n Datenbits. Auf die Datenbits folgen ein oder mehrere Null-Bits als Stopbits. Diese Null-Bits bestimmen die Pausenzeit zwischen zwei Datenpaketen. Es ist von der Logik her durchaus möglich, zwei Datenpakete ohne Stopbits unmittelbar aufeinander folgen zu lassen, da das Bit nach dem letzen Datenbit eindeutig angibt, ob eine Pause oder ein neues Starbit folgt. Diese Option wird in den folgenden Darstellung nicht weiter ausgeführt.
  • In 1 ist die Struktur einer einfachen einwertigen Funktion symbolisch dargestellt. Der Eingang IN führt zu einem Operator 10 mit einem Eingang I. Der Operator 10 hat ferner einen Ausgang 0, der über einen Schalter 12 zu dem Ausgang OUT der Schaltung führt. Der Eingang IN führt zudem direkt zum Schalter 12. Je nach Stelung des Schalters 12 gelangen die Daten vom Eingang IN oder vom Ausgang 0 des Operators 10 an den Ausgang OUT. Der Schalter 12 wird von einem Zustands-Flip-Flop 14 gestellt. Der Operator 10 hat ferner einen Aktivierungsseingang E, welcher gleichzeitig mit dem Schalter aktiviert wird. Das Zustands-Flip-Flop 14 wird von einer 2-Bit Verzögerung 16, die mit dem Moduleingang IN verbunden ist, gesetzt, und zwar zwei Takte, nachdem ein Ein-Bit am Moduleingang IN lag. Eine n+2-Bit Verzögerung 18 setzt des Zustands-Flip-Flop 14 zurück, wenn das letzte Datenbit erzeugt wurde.
  • 2 zeigt dieselbe Struktur mit konkreten digitalen Bausteinen. Der Operator 10 besteht aus einem 1-Bit Addierer U26a und einem Speicher U26b für das Übertragsbit. Der Aktivierungseingang E setzt den Übertrag, so dass eine Addition von Eins erfolgt. Anstelle der Verzögerungen 16 und 18 und dem FlipFlop 14 wird hier ein Schieberegister U24b verwendet, in dem ein Bitmuster umläuft. Solange einer der Eingange von U24c gesetzt ist, wird durch U24a ein Nullbit eingetaktet. Ist das Schieberegister leer, so kann es über den anderen Eingang von U24a wieder gefüllt werden. Der Ausgang von U24c zeigt an, dass Datenbits zu bearbeiten sind. Da wegen des zweiten Startbits (Füllbits) der erste Ausgang des Schieberegisters nicht verschaltet ist, werden zwei aufeinanderfolgende Bits erzeugt. Daher sind für U24c nur drei Eingänge notwendig, damit nicht das Übertragsbit anstelle des Stopbits weitergegeben wird.
  • Die nun folgenden Beispiele verwenden Brems- oder Wartesignale, im englischen häufig als 'stall Signal' bezeichnet, mit denen ein Datenpaket verzögert werden kann. Dies erfolgt, wie oben bereits er wähnt, immer nach dem Startbit, wenn es vom Empfänger veranlasst wurde. Diese Signalformen sind weiter unten in 6 noch genauer beschrieben.
  • 3 zeigt an einem einfachen Puffer die Verwendung von Wartesignalen. Am Eingang In liegt ein Datenstrom an, der von einem Schieberegister U39 gepuffert und über den Ausgang Out weitergegeben wird. Dabei wird ein vollständiger Datenblock, bestehend aus zwei Startbits, vier Datenbits und Stopbit im Schieberegister U39 gepuffert. Im Ruhezustand sind alte Signalleitungen inaktiv und das Schieberegister U39 leer. Mit jedem Takt wird eine Null in das Schieberegister geschoben; hierdurch ändert sich jedoch nichts. Das D-FlipFlop U38a synchronisiert das Signal OutS mit dem Takt, damit der Eingang zum Gatter U38b nicht verändert wird, während das Taktsignal Cl aktiv ist. An den Ausgängen stehen das Signal OutS und dessen invertierter Wert zur Verfügung. Ist OutS aktiv, so werden die Takte Cl zum Schiebregister U39 gesperrt; sonst freigegeben.
  • Trifft nun das erste Datenpaket am Eingang In ein, so erscheint dort das Startbit. Da das Signal von OutS weiterhin Null ist, schaltet das UND-Gatter 31 nicht, und es wird kein Wartesignal erzeugt. Dies gilt auch für die folgenden Takte, bis das Datenpaket vollständig in das Schieberegister U39 übernommen ist. Dann ist das Startbit im letzten Bit von U39 angekommen; da dort der Ausgang Out angeschlossen ist, erscheint bei der folgenden Stufe das Startbit. Gemäß Protokoll kann nun entweder die folgende Stufe ihr Wartesignal Outs aktivieren, wenn sie zur Aufnahme von Daten nicht bereit ist. Anderfalls verbleibt OutS inaktiv. Dann werden die Startbits und der Rest des Datenpakets aus dem Schieberegister herausgeschoben und von der folgenden Stufe übernommen. Aktiviert die folgenden Stufe jedoch das Wartesignal OutS, so wird zum einen mit dem Schalter U38b das Taktsignal zum Schieberegister U39 gesperrt. Dessen Zustand bleibt also solange mit dem (zweiten) Startbit auf Out erhalten, wie das Wartesignal OutS aktiv bleibt. Solange die vorige Stufe in der Pause zwischen zwei Datenblöcken weiterhin Nullen sendet, gehen diese verloren, weil der Takt von U39 gesperrt ist. Das ist aber ohne Belang, weil es sich um Pausenbits ohne Information handelt.
  • Will nun während dieser Zeit die vorige Stufe Daten senden, so wird auf In das Startbit sichtbar. Da in diesem Fall das Wartesignal OutS der vorigen Stufe aktiv ist, schaltet das UND-Gatter U31 und aktiviert seinerseits das Wartesignal für die vorige Stufe. Gemäss Protokoll wird nun solange mit der Bereitstellung der Datenbits gewartet, bis das Wartesignal InS deaktiviert wird. Im vorliegende Fall muss während dieser Zeit eine Eins anliegen, damit das Gatter U31 weiter aktiviert bleibt.
  • Sobald nun das Wartesignal der folgenden Stufe deaktiviert wird, werden die Takte für das Schieberegister U39 wieder freigegeben und das Wartesignal für die vorherige Stufe gleichfalls deaktiviert. Die Übertragung der vorigen Stufe kann bereits jetzt beginnen, da laut den Regeln der Schnittstelle die eigentlichen Datenbits synchron zu einem gemeinsamen Takt übertragen werden und genausoviele Bits in das Schieberegister U39 eingeschoben wie ausgeschoben werden.
  • In 4 sind nunmehr für den beispielhaften Inkrement-Operator nach 2 noch die Wartesignale und der Puffer nach 3 zusammengefügt. Die Funktion entspricht der kombinierten Funktion beider Teile und baucht daher nicht weiter erläutert zu werden. Es sei lediglich darauf hingewiesen, dass U44c nur drei Eingänge umfasst, da wegen des unbenutzten ersten Ausgangs von U44b zwei aufeinanderfolgende Bits auftreten und sonst anstelle des Stopbits der Übertrag ausgegeben werden würde.
  • In 5 ist nunmehr ein Addierer für zwei Datenströme gezeigt. Hierbei stellt sich das Problem, dass zunächst die beiden Eingangs-Datenströme synchronisiert werden müssen, da die Datenbits taktsynchron an dem bitseriellen Addierer vorliegen müssen.
  • Die Ausgangsstufe ist mit U59 sowie U58a und U58b wie in 4 bzw. 3 aufgebaut. Mit U56a, U56b, U56c und U56d ist ein bitserieller Addierer aufgebaut, dessen Übertrag wie bei den Inkrementern in 2 und 4 gesteuert wird. Der Bitzähler mit U54a, U54b und U45c entspricht dem von 4 und 2. Hinzugefügt ist ein weiteres ODER-Gatter U54d, das immer dann ein Signal liefert, wenn der Zähler nicht leer (auf Null) ist.
  • Für jeden der Eingange In1 und In2 sind die Haltesignale In1S und In2S vorgesehen, die von UND-Gattern U51a bzw. U51b angesteuert werden. Im Gegensatz zu 3 und 4 kann als Freigabesignal für das Wartesignal aber nicht einfach das Wartesignal vom Ausgang dienen. Denn bevor dieses relevant wird, sind zunächst die Datenpakete an den Eingängen zu synchronisieren. Hierzu dienen die Gatter U52a, U52b und U53.
  • Sind in der Zeit zwischen zwei Datenpaketen die Eingangssignale In1 und In2 beide Null, dann sind die beiden Gatter U52a und U53 auch am Ausgang Null. Damit sind die gemeinsamen Eingänge von U51a und U51b auch Null.
  • Tritt nunmehr an einem der Eingänge, hier im Beispiel In1, das Startbit auf, dann wird der Ausgang von dem ODER-Gatter U52a aktiv. Da der invertierte Eingang von U52b inaktiv ist, wird auch dessen Ausgang aktiv, der beide Gatter U51a und U51b freigibt. Für den soeben Eins gewordenen Eingang, hier In1, wird als das Wartesignal In1S erzeugt und die sendende Schaltung angehalten.
  • Wenn nun der zweite Eingang In2 aktiv wird, wird auch hier ein Haltesignal erzeugt. Dies ist deshalb notwendig, damit für beide Eingänge die Deaktivierung des Wartesignals auf gleiche Bedingungen trifft. Wegen der in einem synchronen System für die Auswertung des Wartesignals notwendigen Zeit steht nämlich In1 bereits auf dem Pufferbit und wird unmittelbar nach Deaktivierung von In1S das erste Datenbit ausgeben. Würde man anstelle der beiden Gatter U52a und U52b lediglich ein XOR verwenden, dann wäre das zweite Eingangssignal ein Takt zu spät.
  • Sobald nun beide Eingänge In1 und In2 aktiv sind, ist auch der Eingang des Bitzählers, hier U54a, aktiv, so dass das Taktsignal Cl2 ein Bit in das Zäht-Schieberegister U54b einschiebt. Das Taktsignal Cl2 ist, da OutS nicht aktiv ist, gleich dem normalen Taktsignal Cl. Es ist zu beachten, dass Eingang In1 auf dem Pufferbit und Eingang In2 auf dem Startbit befindlich sind.
  • Durch den folgenden Taktimpuls erscheint ein Eins-Bit an dem Gatter 54d und sperrt damit U52b. Damit verschwinden die Wartesignale In1S und In2S zu gleicher Zeit. Durch den Taktimpuls ist auch In2 auf den gleichen Zustand weitergeschaltet.
  • In den folgenden vier Takten liegen nunmehr die Datenbits der beiden Eingänge synchron an dem Addierer U56a an. Da der Schalter U57 umgeschaltet wurde, werden die Summenbits in das Ausgangsregister U59 eingetaktet. Da in den beiden Takten zuvor an beiden Eingängen Eins-Bits anlagen, war auch der Ausgang von U53 Eins, so dass sich bereits zwei Startbits im Ausgangs-Schieberegister befinden. Weit beide Eingänge synchron nach den Startbits Nullen als Stopbits liefern, liegt zu diesem Zeitpunkt, wenn U57 wieder auf den Ausgang von U53 geschaltet hat, ein Stopbit vor und wird als letztes in das Ausgangsschieberegister eingetaktet.
  • Nunmehr sei der Fall betrachtet, dass das Wartesignal OutS der nachfolgenden Stufe aktiviert wird. Dies ist nur dann der Fall, wenn ein Startbit an dem Ausgang Out anliegt. Das bedingt aber, dass soeben synchron zwei Datenpakete an den Eingängen In1 und In2 angelegen haben und die Stopbits zwischen zwei Datenpaketen anliegen. Über U58a und U58b wird dann das Taktsignal Cl gesperrt und nicht mehr auf das Taktsignal Cl2 weitergeleitet, so dass das Schieberegister nicht weiterschaltet.
  • Trifft nun während dieser Wartezeit ein Startbit an In1 oder In2 (oder beiden) ein, dann wird, wie oben beschrieben, das Wartesignal aktiviert. Sind beide Start- bzw. Pufferbits an In1 und In2 vorhanden, wird zwar der Ausgang von U53 aktiv. Da jedoch U54b von dem angehaltenen Taktsignal Cl2 versorgt wird, schaltet U54b nicht. Damit fehlt das Signal an U54d und damit an U52b, so dass das Wartesignal zu den vorigen Stufen bestehen bleibt. Erst wenn das Wartesignal OutS deaktiviert wird und das der Takt an Cl2 weitergeleitet wird, wird auch U54b wieder geschaltet; die Wartesignale am Eingang werden inaktiv, die beiden Datenblöcke können eingelesen werden.
  • In 6 ist der Ablauf der Signale an der Schnittstelle für verschiedene Fälle dargestellt.
  • In 6a ist der optimale Fall gezeigt, bei dem kein Wartetakt notwendig ist. Im Takt 1 erscheint das Startbit S, gefolgt von den Datenbits 0 bis 3, gefolgt von dem Stopbit Z. Da kein Wartetakt notwendig ist, ist das Wartesignal DW immer inaktiv.
  • In 6b wird ein Wartetakt benötigt. In dem selben Takt 1, in dem das Startbit S erscheint, wird vom Empfänger das Wartesignal DW aktiviert. Daraufhin sendet der Sender im nächsten Takt 2 nicht ein Datenbit, sondern ein Wartebit W. Dieses ist im Prinzip beliebig; es ist meist günstig, das Startbit einfach zu wiederholen. Da das Wartesignal in Takt 2 nicht mehr gesetzt ist, werden nunmehr ab Takt 3 die Datenbits 0 bis 3 und das Stopbit gesendet.
  • Voraussetzung für diese Betriebsart ist, dass die empfangende Seite noch in demselben Takt das Wartesignal aktivieren kann, in dem das Startsignal aktiviert wurde. Die entsprechende Schaltung ist also dort als asynchron als frei Logik aufgebaut. Falls diese Bedingungen nicht gegeben sind, dann muss nach dem Startbit immer ein transientes Pufferbit T eingefügt werden. In diesem Takt kann die sendende Schaltung das Wartebit auswerten.
  • In 6c ist der Fall dargestellt, dass ein transientes Pufferbit ohne Wartetakt verwendet wird. Im Unterschied zu 6a ist lediglich das Pufferbit T in in Takt 2 eingeschoben.
  • In 6d ist der Fall mit Pufferbit und einem Wartetakt dargestellt. Wegen der vollständig synchronen Arbeitsweise ist das Wartesignal nunmehr in Takt 2 aktiv. Das gesendete Bit in Takt 2 wird damit zum Wartebit. Da in Takt 3 das Wartesignal nicht mehr aktiv ist, kann die sendende Schaltung in der Taktzeit des Pufferbits T diesen Fall erkennen und in den folgenden Takten die Datensignale und das Stopbit bereitstellen.
  • Die Beispiele verwenden die Lösung mit dem Pufferbit nach 6c und 6d, da diese leichter zuverlässig zu halten ist.
  • In 6d ist noch als Alternativ zu einem Wartesignal ein Aktivierungssignal ('enable') dargestellt. Diese ist immer in dem Takt nach dem Wartesignal aktiv; ob es nur einen Takt, n Takte, n+1 Takte dauert, hängt von dem jeweiligen Schaltungsentwurf ab. Im Unterschied zum invertierten Wartungssignal wird ein Aktivierungssignal in der Regel in den Pausen zwischen zwei Datenpaketen nicht aktiv sein.
  • In 7 wird eine Weiterbildung gezeigt, bei der vor den eigentlichen Datenbits noch Steuerinformation übertragen wird.
  • Im Beispiel von 7 ist lediglich die Anzahl der Bits um eines erhöht. Am zweiten Abgriff von U74b wird damit gesteuert, ob das Übertrags-FlipFlop U76b gesetzt oder zurückgesetzt wird, ob also ein Inkrement erfolgt oder die Daten unverändert weitergegeben werden. Auf diese Art kann durch Modifikation der Eingabedaten die Funktion einer Schaltung insoweit geändert werden, als lediglich die Funktion von Baugruppen ungeschaltet wird. Dies ist zum Beispiel bei der in der Bildverarbeitung vielfach verwendeten Diskreten Cosinus-Transformation (DCT) und ihrer Inversen (iDCT) der Fall.
  • Es können auch Verteiler gebildet werden, die, abhängig vom Steuerbit, die Datenpakete zu einem von zwei Ausgängen weiterleiten. Der andere Ausgang bleibt inaktiv; dies gilt gemäss der Erfindung auch für die nachfolgenden Stufen, die erst beim Auftreten eines Datenpakets wieder aktiv werden.
  • In dieser Fortbildung sind zwei Varianten möglich: Zum einen kann, wie in 7, das Steuerbit in dem Paket verbleiben und zur Steuerung nachfolgender Stufen dienen. Dies ist die bevorzugte Ausführung. Zum einen ist sie einfacher anwendbar. Zum anderen ist bei Anwendungen wie der DCT/iDCT eine Vielzahl von Stufen in eine von zwei Varianten umzusteuern. Es ist aber auch möglich, dieses Steuerbit in einer Stufe zu entfernen, wenn es in alten nachfolgenden Stufen nicht mehr benötigt wird.
  • Die Anzahl der Steuerbits ist ersichtlich beliebig, aber zumindest pro Schnittstelle festgelegt.
  • In den bisherigen Ausführungsformen war das Wartesignal während der Pausen zwischen Datenpaketen immer inaktiv. Es ist aber auch möglich, zusätzlich das Wartesignal vor dem Startbit zu aktivieren und damit die Pause zu verlängern, ohne dass die empfangende Bau gruppe durch den Empfang des Startbits aus dem inaktiven Zustand in den Wartezustand von den Datenbits wechselt.

Claims (5)

  1. Schnittstelle für synchrone bitserielle Datenübertragung, insbesondere innerhalb von Datenverarbeitungsprozessoren, mit den Merkmalen: a) die Signale der Schnittstelle werden durch einen gemeinsamen Takt bestimmt; b) die Schnittstelle umfasst eine Datenleitung und eine in Gegenrichtung dazu wirkende Warteleitung; c) auf der Datenleitung werden aufeinanderfolgend Startsignale, Datenwörter und Pausensignale übertragen, wobei das Pausensignal aus einer beliebig langen Folge gleicher Pausenbits besteht und das Startsignal mit dem Inversen eines Pausenbits beginnt; dadurch gekennzeichnet, dass d) durch ein Wartesignal auf der Wartesignalleitung die Dauer des Startsignals vor Beginn eines Datenworts verlängerbar ist.
  2. Schnittstelle nach Anspruch 1, wobei das Wartesignal durch ein Freigabesignal realisiert wird.
  3. Schnittstelle nach einem der vorherigen Ansprüche, wobei durch das Wartesignal zusätzlich die Dauer des Pausensignals verlängert wird.
  4. Baugruppe für bitserielle Verarbeitung, wobei die Baugruppe – eine Schnittstelle nach einem der Ansprüche 1 bis 3 umfaßt, – und vor den Datenbits Steuerbits übertragen werden, die die Funktion der Baugruppe modifizieren.
  5. Baugruppe für bitserielle Verarbeitung, wobei die Baugruppe – mindesten zwei Schnittstellen für bitserielle Verarbeitung gemäß einem der Ansprüche 1 bis 3 umfaßt, – und die Wartesignale der Schnittstellen zur Synchronisation der Datenbits der Schnittstellen verwendet werden.
DE2003108510 2003-02-26 2003-02-26 Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur Expired - Fee Related DE10308510B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003108510 DE10308510B3 (de) 2003-02-26 2003-02-26 Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003108510 DE10308510B3 (de) 2003-02-26 2003-02-26 Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur

Publications (1)

Publication Number Publication Date
DE10308510B3 true DE10308510B3 (de) 2004-12-02

Family

ID=33393742

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003108510 Expired - Fee Related DE10308510B3 (de) 2003-02-26 2003-02-26 Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur

Country Status (1)

Country Link
DE (1) DE10308510B3 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19737369A1 (de) * 1997-08-27 1999-03-04 Tq Systems Gmbh Datenspeicherungs- und Datentransporteinrichtung
US6215817B1 (en) * 1997-05-27 2001-04-10 Oki Electric Industry Co., Ltd. Serial interface device
WO2001059577A1 (de) * 2000-02-07 2001-08-16 Siemens Aktiengesellschaft Verfahren und schnittstelleneinrichtung zur kopplung unabhängiger prozessorbussysteme

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215817B1 (en) * 1997-05-27 2001-04-10 Oki Electric Industry Co., Ltd. Serial interface device
DE19737369A1 (de) * 1997-08-27 1999-03-04 Tq Systems Gmbh Datenspeicherungs- und Datentransporteinrichtung
WO2001059577A1 (de) * 2000-02-07 2001-08-16 Siemens Aktiengesellschaft Verfahren und schnittstelleneinrichtung zur kopplung unabhängiger prozessorbussysteme

Similar Documents

Publication Publication Date Title
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE69305049T2 (de) Hochfrequenz- cmos-schaltung mit geringen verbrauch
DE69229162T2 (de) Synchronisiergerät und Verfahren
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE60224478T2 (de) Schaltung zur Serialisierung von synchronen Daten
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE69229338T2 (de) Datenpipelinesystem
DE69733407T2 (de) Schnittstelle zur datenübertragung zwischen zwei taktbereichen
DE10303673A1 (de) Asynchrone Hüllschaltung für eine global asynchrone, lokal synchrone (GALS) Schaltung
DE3687956T2 (de) Datensynchronisator zwischen einer sende- und einer empfangsanlage.
EP0574598A1 (de) Datenpufferspeicher
DE69720285T2 (de) Mehralgorithmusbearbeitung von digitalen signalströmen mittels kontextumschaltung
DE10108379C2 (de) Elastische Puffer für eine Serialisierer/Deserialisierer-Wortausrichtung und eine Ratenanpassung zwischen Zeitbereichen
DE3110196A1 (de) Datenverarbeitungssystem
DE4307449A1 (de)
DE69025510T2 (de) Asynchronische Hochgeschwindigkeitsdatenschnittstelle
DE60101169T2 (de) Logikschaltkreis mit Pipeline-Struktur
DE102005041278A1 (de) Synchronisiereinrichtung zum Leiten von Daten von einem ersten System zu einem zweiten System
DE10308510B3 (de) Selbststeuernde rekonfigurierbare bit-serielle Pipelinearchitektur
DE10122702C2 (de) Verfahren und Vorrichtung zum Erzeugen eines zweiten Signals mit einem auf einem zweiten Takt basierenden Takt aus einem ersten Signal mit einem ersten Takt
DE3781590T2 (de) Digitale takteinheit in ttl-technologie.
DE68923271T2 (de) Verfahren und anordnung zur wahrnehmung bevorstehender überläufe und/oder unterschreitungen eines elastischen puffers.
EP1721407A1 (de) Schnittstellenvorrichtung und verfahren zur synchronisation von daten
DE19952747B4 (de) Rechnerchipanordnung für eine Rechnerhauptplatine und Verfahren zu deren Verwendung
DE2610428A1 (de) Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee