-
Die
Erfindung betrifft eine Einrichtung und Verfahren zum Erzeugen von
internen Takt- bzw. Zeitsteuersignalen für Hochleistungscomputersysteme.
Inbesondere betrifft die Erfindung eine Einrichtung und ein Verfahren
für eine
selbstgetaktete algorithmische Ausführung, welche nicht starr bezüglich einer
Master- bzw. Hauptzeitbasis synchronisiert ist.
-
In
Hochleistungscomputersystemen ist eine Master- oder Hauptzeitbasis
erforderlich, um verschiedene notwendige Schaltaktivitäten nacheinander
durchzuführen.
In einigen Computersystemen wird ein einheitliches Taktsignal durch
mehrere Taktverstärker
gepuffert, um so als die einzige Quelle einer zeitlich richtigen Synchronisierung
für alle
Speicher zu wirken, die in dem System verwendet sind. In anderen
Systemen können mehrere
zusätzliche
unterschiedlich phasengesteuerte Taktsignale verwendet werden, um
gesonderte Gruppen von Speicher anzusteuern, die jedoch alle in
herkömmlicher
Weise mit der Masterzeitbasis in dem System synchronisiert sind.
-
Wenn
mehrere Taktsignale verwendet werden, wechseln oder ändern die
verschiedenen Speicher einen Zustand mit Datenströmen oder
Befehlsfolgen bei verhältnismäßig verschiedenen
Raten. Solche mehrfach getakteten Schaltungen sind oft so ausgelegt,
daß eine funktionelle
Logik zwischen den Speichern mit der schnellstmöglichen Geschwindigkeit durchlaufen
wird. In Pipelinesystemen ist beispielsweise die funktionelle Logik
auf die Speicher verteilt, so daß eine Systemdesign-Beschränkung bei
einer minimalen Sollausführungszeit
erhalten wird, ohne gleichzeitig die Anzahl an funktionellen Logik-
oder Speicherelementen erhöhen
zu müssen.
-
In
derartigen Pipelinesystemen wird ein superharmonischer Takt verwendet,
um die internen Ränge bestimmter
funktioneller Pipeline-Einheiten mit einer schnelleren Rate zu durchlaufen,
während
die Eingabe-Ausgabebereiche der funktionellen Einheit mit einer
langsameren Rate durchlaufen werden, die mit dem Rest der funktionellen
Pipeline-Einheiten in dem System kompatibel ist. Diese herkömmliche
Methode ist als "Mikropipelining" bekannt und schließt Einrichtungen
ein, in welchen die inneren Speicher einer funktionellen Pipeline-Einheit
ein strikt synchrones, superharmonisches Taktsignal haben, welches
die Mikrooperationen des Pipelinesynchronismus mit der langsameren
(Daten-)Stromrate verschachtelt, die an den Eingangs- und Ausgangsanschlüssen der
Pipeline vorliegt.
-
Leider
sind aufgrund der Nachteile des "Mikropipelining" mehrere Taktverstärker in
einer Baumorganisation mit geringer Schräge (low-skew) erforderlich,
um die niedrigste mögliche
Schräge
in dem Triggersignal sicherzustellen, das tatsächlich von jedem der Speicher
empfangen worden ist, und es ist ein einheitliches Zeitsteuerintervall
erforderlich. Folglich sind Gruppen von logischen Elementen in einer
Mikropipeline schwierig unterzubringen, die keine Übertragungsverzögerungen
hat, die kurz genug sind, um in dem einheitlichen Zeitsteuerintervall
zu arbeiten. Ferner sind Mikropipelining-Konzepte besonders schwierig
mit Hilfe von rekonfigurierbaren Logikeinrichtungen (RLDs), wie
feldprogrammierbaren Gate-Arrays (FPGAs) durchzuführen, da
die Übertragungsverzögerungen
in einer RLD-Einheit sich von funktioneller zu funktioneller Einheit ändern, was einen
halb-globalen Mikropipeline-Takt schwierig macht.
-
Wenn
RLD-Einheiten verwendet worden sind, um verschiedene logi sche Strukturen
durchzuführen, wird
bei der Mehrheit von "Werkzeugen", die verwendet worden
sind, um die tatsächlichen
RLD-Verbindungen zu erzeugen, ein Register-Transfer-Sprachen-(RTL)
Paradigma angewendet. Ein derartiges Paradigma vertraut stark auf
das Vorhandensein von gesonderten Master-Zeitbasis-Takten zum Ansteuern
der funktionellen Logik- und Speichereinheiten in der RLD-Einheit.
Ein derartiges Paradigma ignoriert die Wirkungen, welche die Implementierung
der Logikausführung
in die RLD-Einheit auf Forderungen bezüglich Silizium-Ressourcen haben.
In der Tat verlangen die RLD-Werkzeughersteller oft, daß ein "Vorteil" ihres Logik-Ausführungsparadigmas
darin besteht, daß es
nicht auf die charakteristischen RLD-Merkmale zugeschnitten ist.
-
Bei
anderen Hochleistungs-Computersystemen ist versucht worden, die
vorstehend erwähnten Schwierigkeiten
bei auf einer Masterzeitbasis synchronisierten Taktsystemen zu vermeiden,
indem funktionelle Computeraufgaben in eine Reihe von zeitlich asynchron
gesteuerten Unteraufgaben aufgeteilt werden. Leider haben bestehende
asynchrone Logikausführungen
auch viele Einschränkungen:
so müssen
beispielsweise "Abschlußsignale" bei Beendigen von
funktionellen Aufgaben erzeugt werden; sie haben variable oder unbekannte
Abschlußzeiten;
sie erfordern externe Taktelemente; sie haben datenabhängige Abschlußzeiten;
sie sind asynchron an eine externe Schaltungsanordnung anzuschließen; es
liegt ein inkohärenter
Phasenabgleich bei Datenaustausch mit einer externen Schaltungsanordnung
vor; es ist schwierig, sie mit einer synchronen externen Schaltung
zusammenzubringen, und es ist schwierig, die gesamte systemweite
Performance mit dem Netz von externen taktgebündelten Schaltungen zusammenzubringen.
-
Aus
NOVAK J. H., BRUNVALD E.: "Using
FPGAs to Prototype a Self-Timed Floating Point Co-Processor, In:
Proceedings of the IEEE 1994 Custom Integrated Circuits Conference,
1994, S. 85–88" sind FPGAs bekannt.
Die dort beschriebene Schaltung Arbeitet mit einem System mittels
sogenannter „handshaking"-Signale zusammen. Das dort beschriebenen
System stellt ein asynchrones System dar. Aufgrund der „handshaking"-Prozesse ergeben
sich Verzögerungen
zwischen den einzelnen Stufen.
-
Aus
ROSENBERGER F. U.: Q-Modules: internally Clocked Delay-Insensitive Modules.
In: IEEE Transactions on Computers, Vol. 37, No. 9, 1988, S. 1005–1018" sind sogenannte
Q-Module bekannt. Die dort beschriebenen Schaltung ist selbstgetaktet.
Bedingungen, wie eine logische Verzögerung müssen erfüllt sein. Die Frequenz der
Q-Module ist langsamer als die Taktfrequenz, die durch den Taktgenerator
vorgegeben ist.
-
Aufgabe
der Erfindung ist es eine Einrichtung und ein entsprechendes Verfahren
zum Ausführen
algorithmischer Operationen bereit zu stellen, in die bzw. bei denen
Daten mit einem vorgegebenen Referenztakt eingehen und die Daten
mit einem zum Referenztakt synchronen Takt ausgegeben werden, wobei
die Einrichtung dazu in der Lage sein soll, die Daten schneller
zu verarbeiten, als dies mit dem Referenztakt möglich wäre, wobei je nach durchzuführendem
Algorithmus jeweils ein optimales Ergebnis erzielt werden soll.
-
Vorstehende
Aufgabe wird durch die Gegenstände
der Ansprüche
1 und 13 erreicht. Vorteilhafte Weiterbildungen gehen aus den Unteransprüchen hervor.
-
Vorteilhaft
weist eine Einrichtung eine funktionelle Logikanordnung, einen Referenz-Takteingang
und einen Impulszuordner auf. Die funktionelle Logikanordnung erhält Eingangsdaten
synchron mit einem Referenztakt, der an dem Referenz-Takteingang erhalten
worden ist, führt
algorithmische Berechnungen an den eingegebenen Daten mit einer
Maximalrate, welche von dem Impulszuordner festgelegt worden ist,
entsprechend den physikalischen Kenndaten der funktionellen Logikanordnung
durch, erzeugt Ausgangsdaten und überträgt die Ausgangsdaten synchron
mit dem Referenztakt. Die Maximalrate, die mittels des Impulszuordners
eingestellt worden ist, ist von dem Referenztakt unabhängig.
-
Vorteilhaft
weist ein Verfahren für
eine selbstgetaktete algorithmische Ausführung die Schritte auf. Übertragen
von eingegebenen Daten an eine Logikanordnung synchron mit einem
Referenztakt; Erzeugen einer Impulsfolge mit einer Maximalrate zum
Ansteuern der funktionellen Logikanordnung mit einer Rate, die von einer
Algorithmus-Ausführungszeit
für die
funktionelle Logikanordnung abhängt,
von dem Referenztakt aber unabhängig
ist; Erzeugen von Ausgangsdaten von der funktionellen Logikanordnung
aus entsprechend der Impulsfolge mit maximaler Rate, und Übertragen
der Ausgangsdaten von der funktionellen Logikanordnung synchron
mit dem Referenztakt.
-
Nachfolgend
wird die Erfindung anhand von bevorzugten Ausführungsformen unter Bezugnahme
auf die anliegenden Zeichnungen im einzelnen erläutert. Es zeigen:
-
1 ein Blockdiagramm einer
bevorzugten Ausführungsform
einer Einrichtung für
eine selbstgetaktete algorithmische Ausführung;
-
2A ein Blockdiagramm einer
bevorzugten Ausführungsform
eines Impulszuordners gemäß der Erfindung;
-
2B ein Blockdiagramm einer
bevorzugten Ausführungsform
einer Startlogik in dem Impulszuordner;
-
2C ein Blockdiagramm einer
bevorzugten Ausführungsform
einer Verzögerungseinheit
in dem Impulszuordner;
-
2D ein Blockdiagramm einer
bevorzugten Ausführungsform
eines Impulszählers
in dem Impulszuordner;
-
2E ein Blockdiagramm einer
bevorzugten Ausführungsform
einer Sequenz-Gate-Logik in dem Impulszuordner;
-
3 ein Blickdiagramm einer
bevorzugten Ausführungsform
einer funktionellen Logik gemäß der Erfindung;
-
4 ein Blockdiagramm einer
bevorzugten Ausführungsform
eines Multiplexers in der funktionellen Logik;
-
5 ein Blockdiagramm einer
bevorzugten Ausführungsform
eines partiellen Produktgenerators in der funktionellen Logik;
-
6 ein Blockdiagramm einer
bevorzugten Ausführungsform
einer partiellen Produktsummiereinheit in der funktionellen Logik;
-
7 ein Blockdiagramm einer
bevorzugten Ausführungsform
eines Produktakkumulators in der funktionellen Logik;
-
8 ein bevorzugten Zeitsteuerdiagramm,
das die Arbeitsweise der Erfindung wiedergibt;
-
9A eine Matrix, die bevorzugte
partielle Produktadditionen für
eine 16 Bit mal 16 Bit-Multiplikation gemäß der Erfindung wiedergibt;
-
9B eine Matrix, die bevorzugte
partielle Produktadditionen für
eine 8 Bit mal 8 Bit-Multiplikation der Erfindung wiedergibt;
-
10 ein Ablaufdiagramm eines
bevorzugten Verfahrens für
eine selbstgetaktete algorithmische Ausführung;
-
11 ein Ablaufdiagramm eines
bevorzugten Verfahrens zum Erzeugen einer Impulsfolge, und
-
12 ein Ablaufdiagramm eines
bevorzugten Verfahrens zum Erzeugen von Ausgangsdaten entsprechend
der Impulsfolge.
-
Die
vorliegende Erfindung betrifft eine Verfahren und eine Einrichtung
für eine
selbstgetaktete algorithmische Ausführung. Durch eine Paarbildung
einer Verzögerungseinheit
mit einer funktionellen Logikanordnung, die ausgelegt ist, um einen
ausgewählten
Algorithmus auszuführen,
wird gemäß der Erfindung
der ausgewählte
Algorithmus mit der schnellstmöglichen
Geschwindigkeit unabhängig
von irgendwelchen Referenztakten durchgeführt, welche andere funktionelle
Logikanordnungen bzw. -gruppen ansteuern. Folglich brauchen im Unterschied
zu bekannten Zeitsteuereinrichtungen und -Verfahren charakteristische
Zeitsteuerkenndaten für
eine funktionelle Logikanordnung, welche den Algorithmus durchführt, nicht
entweder durch eine Referenztakt-Geschwindigkeit eingeschränkt zu werden
oder davon abhängig
zu sein.
-
Statt
dessen erhält
die vorliegende Erfindung erstens Daten von anderen funktionellen
Logikanordnungen, arbeitet zweitens an den Daten mit einer selbstgetakteten
Rate, die auf einer funktionellen Logikanordnung basiert, welche
den Algorithmus entsprechend dem Erzeugen eines Satzes von selbstgetakteten
Impulsen durchführt,
und gibt drittens Daten zu einem spezifischen bekannten Zeitpunkt
ab, der von den anderen funktionellen Logikanordnungen angenommen
wird. Folglich sind die Einrichtung und das Verfahren gemäß der Erfindung
insbesondere vorteilhaft gegenüber
dem Stand der Technik, da sie eine funktionelle Logikanordnung ermöglicht,
mit einer Geschwindigkeit zu arbeiten, die unabhängig von der Operationsgeschwindigkeit anderer
funktioneller Logikanordnungen oder von Referenztakten ist; folglich
vereinfacht dies die Hardware-Auslegung, während die schnellstmöglichen
algorithmischen Ausführungsgeschwindigkeiten
erhalten werden.
-
Gemäß der Erfindung
werden diese Vorteile dadurch erreicht, daß funktionelle Logikeinheiten
hinsichtlich ihrer meist fundamentalen physikalischen Strukturen
betrachtet werden. Die vorliegende Erfindung verläßt sich
nicht auf ein Register-Transfer-Logik(RTL-)Paradigma. Vielmehr schafft
die Erfindung eine besonders vorteilhafte Zeitsteuerschaltung für eine funktionelle
Logikanordnung, welche einen Algorithmus durchführt, so daß die funktionelle Logikanordnung
mit ihrer schnellstmöglichen
Rate arbeiten kann. Folglich definiert die vorliegende Erfindung
ein neues Paradigma zum Ausführen
logischer Strukturen in Silizium-Ressourcen,
wobei die Silizium-Ressourcen als Incremental-Arbiter nicht nur
von der algorithmischen Ausführung,
sondern auch von Zeitsteuerraten betrachtet werden.
-
Bei
dem Stand der Technik ist dieses neue Paradigma nicht bekannt, da
erstens die temporale Auswirkung auf Implementierung von Logik in
bekannten Systemen von den Nebenwirkungen abhängt, die nur an den Speichervorrichtungen
zu sehen sind; zweitens funktionelle Logikgruppen beim Stand der
Technik mechanistisch als Leitungen zum Durchlassen von Daten betrachtet
werden, während
in Wirklichkeit die funktionelle Logikgruppe auch als eine Möglichkeit
betrachtet werden kann, eine Gesamtausführungszeit von funktionellen Logiksätzen zu
verringern, drittens das RTL-Paradigma
die Analyse von vorteilhaften oder integralen Verbindungswirkungen
zwischen der funktionellen Logik und Speichervorrichtungen beeinträchtigt,
und viertens beim Stand der Technik der Nachdruck auf funktionelle
Logik Gestaltungen stark beeinflussen, welche ein lokalisiertes
Rückkoppeln
einschließen,
um individuell gestaltete bzw. Zeitsteuerschaltungen auf dem Niveau einer
algorithmischen Implementierung zu erzeugen.
-
Die
Erfindung ist vorzugsweise in einer rekonfigurierbaren Logikeinheit
(RLD) dargestellt, wie beispielsweise eine feldprogrammierbaren
Gate-Array (FPGA), der Xilinx XC4000-Serie (Xilinx, San Jose, Kalifornien).
Rekonfigurierbare Logikeinheiten (RLDs) weisen einen Satz konfigurierbarer
Logikblöcke
(CLBs) auf. Jeder konfigurierbare Logikblock (CLB) enthält vorzugsweise
mindestens einen Funktionsgenerator sowie ein oder mehrere Übertraglogikelemente.
Die innere Struktur eines feldprogrammierbaren Gate-Array (FPGA)
ist dynamisch rekonfigurierbar durch Verwenden eines Konfigurationsdatenbestandes
oder eines Konfigurations-Bitstroms. In einem vorgegebenen konfigurierbaren
Logikblock (CLB) werden ganz bestimmte logische Funktionen über die
Funktionsgeneratoren entsprechend dem Konfigurationsbitstrom erzeugt.
-
Jeder
Funktionsgenerator hat eine charakteristische stabile Signalausbreitungsverzögerung.
Beispielsweise haben in einem konfigurierbaren Logikblock (CLB)
der Xilinx XC4000-Serie jeweils ein erster und ein zweiter Funktionsgenerator
(Typ "F" und "G") eine Übertragungsverzögerung von
annähernd
4,5 ns, und ein dritter Funktionsgenerator (Typ "H")
hat eine Ausbreitungsverzögerung
von annähernd
2,5 ns. Die Übertraglogikelemente
weisen bekanntlich eine Übertrag-Ausbreitungslogik
auf, die entsprechend ausgelegt ist, um sehr kleine stabile Übertragungsverzögerungen
zu haben. Die Übertrag-Ausbreitungslogik
in einem FPGA der Xilinx XC4000 Serie hat eine Übertragungsverzögerung von
1,5 ns.
-
Die
Erfindung schafft Vielfachrückkopplungspegel
bzw. -ebenen, um selektiv Ressourcen in der rekonfigurierbaren Logikeinheit
(RLD) zu kombinieren, um verschiedene interne Übertragungsverzögerungen
zu erzeugen. Diese Rückkopplung
wird verwendet, um individuelle Zeitsteuerschaltungen zu schaffen,
um ein oder mehrere funktionelle Logikeinheiten in der RLD-Einheit
anzusteuern. Vorzugsweise nutzt die vorliegende Erfindung "Intertial"-Verzögerungen
und verläßt sich
nicht nur auf "reine" Verzögerungen.
Eine Inertialverzögerung
ist definiert als eine Verzögerung,
bei welcher eine Übertragung
eine minimale Impulsbreite erfordert, während eine reine Verzögerung eine
ist, bei welcher die Verzögerungsübertragung
im wesentlichen unabhängig
von der Impulsbreite ist. Vorteilhafterweise sind Inertialverzögerungen
stabile, gut gesteuerte Verzögerungen.
Der Fachmann erkennt daher, daß die
vorliegende Erfindung nicht in einer rekonfigurierbaren Logikeinheit (RLD)
ausgeführt
zu werden braucht, sondern stattdessen auch in anderen herkömmlichen
bekannten Logikeinheiten ausgeführt
werden kann.
-
Obwohl
in der vorliegenden Beschreibung eine funktionelle Logikeinheit
beschrieben ist, welche eine X-Bit mal Y-Bit-Multiplikation ausführt, die
ein P-Bit-Produkt ergibt, (wobei X, Y und P ganze Zahlen sind),
weiß der
Fachmann, daß die
funktionelle Logikeinheit auch so ausgelegt sein könnte, um
eine große
Anzahl alternativer Algorithmen durchzuführen. Derartige alternative
Algorithmen können
Schritte aufweisen, um jede Art von arithmetischen, logischen, grafischen,
wortverarbeitenden, signalverarbeitenden oder Netz-Operationen durchzuführen. Beispielsweise
kann diese Erfindung dazu verwendet werden, um Zeitsteuersignale
für die
effiziente Nutzung eines internen RLD-Randomspeichers (RAM), Vielfachregisterdateien
oder eine Datenwegwahl in einer RLD-Einheit zu schaffen (beispielsweise
Cross-Barschalter in einem FPGA).
-
Zur
Verdeutlichung zeigen 3 bis 7 unten Einzelheiten einer
beispielshaften 16 Bit mal 16 Bit-Multiplikation, die ein 32 Bit-Produkt ergibt. Der
Fachmann erkennt jedoch, daß die
Erfindung auch verwendet werden kann, um Multiplikationen mit mehr
oder weniger als 16 Bits durchzuführen. In der folgenden Beschreibung haben
die Signale und Bits, die nachstehend beschrieben sind, vorzugsweise
nur zwei Zustände,
nämlich
logisch "1" und logisch "0". Obwohl die Elemente der Erfindung
so beschrieben sind, daß sie
nur auf eine Anstiegsflanke eines Zustandsübergangs (d.h. eines Übergangs
von logisch "0" auf logisch "1") ansprechen, ist dem Fachmann bekannt,
daß die
rekonfigurierbare Logikeinheit (RLD) auch entsprechend konfiguriert
sein kann, um entweder nur auf Zustandsübergänge mit einer fallenden Flanke
oder sowohl auf solche mit einer ansteigenden als auch einer fallenden
Flanke anzusprechen.
-
In 1 ist ein Blockdiagramm
einer bevorzugten Ausführungsform
einer Einrichtung zur selbstgetakteten algorithmischen Ausführung dargestellt.
Die Einrichtung 20 weist einen Eingangspuffer 22,
eine funktionelle Logik 24, einen Ausgangspuffer 26,
eine synchrone Zustandseinrichtung (state machine) 30 und
einen Impulszuordner 34 auf. Der Eingangspuffer 22 ist
eine bekannte Einrichtung, die entweder einen X Bit-Multiplikanden
oder einen Y-Bit-Multiplikator
lädt, der über eine
Leitung 19 von einer (nicht dargestellten) externen Schaltung
jedesmal dann erhalten worden ist, wenn die externe Schaltung ein
eingegebenes Freigabesignal auf einer Leitung 29 in einem
logischen "1"-Zustand hält, während ein
Referenztaktsignal auf einer Leitung 28 erhalten wird.
Der Refererenztakt wird vorzugsweise mit Hilfe eines Taktmechanismus
ausgeführt,
der in der US-Patentanmeldung SN 08/501,970 "System und Methode zum phasensychronen
frequenzflexiblen Takten und Nachrichtenübermitteln" beschrieben ist. Selbstverständlich kann
der Referenztakt stattdessen auch mit einer bekannten Takterzeugungseinrichtung
geschaffen werden.
-
Der
Eingangspuffer 22 gibt den X-Bit-Multiplikanden über eine
Leitung 21 und den Y-Bit-Multiplikator über eine Leitung 23 an
die funktionelle Logik 24 ab. Die funktionelle Logik 24 erhält den Multiplikanden
und den Multiplikator und multipliziert sie entsprechend einem Multiplikationsalgorithmus
mit einer Taktrate, die von dem Impulszuordner 34 abhängt, aber
nicht von dem Referenztakt abhängig
ist. Die Zeit, welche von der funktionellen Logik 24 gefordert
wird, um den Multiplikationsalgorithmus durchzuführen, ist die Algorithmus-Ausführungszeit.
-
Die Übertragungsverzögerungen
in der funktionellen Logik 24 bestimmen deren Algorithmus-Ausführungszeit
und werden üblicherweise
basierend auf einem Satz von darin enthaltenen Logikvorrichtungen
berechnet. Die funktionelle Logik 24 gibt ein P-Bit-Produkt über eine
Leitung 25 an den Ausgangspuffer 26 ab. Einzelheiten
der funktionellen Logik 24 werden nachstehend anhand von 3 beschrieben. Der Ausgangspuffer 26 ist
ein bekannter Puffer, welcher das P-Bit-Produkt lädt und dann über eine
Leitung 27 an die externe Schaltung abgibt, wenn die externe
Schaltung einen Ausgabe-Freigabe-Impuls auf einer Leitung 31 in
einem logischen "1"-Zustand erhält, während der
Referenztakt über
die Leitung 28 erhalten wird.
-
Die
synchrone Zustandseinrichtung 30 ist eine bekannte Einrichtung,
welche ein Startsignal 90 (siehe 8) in einen logischen "1"-Zustand umwandelt, nachdem der Referenztakt
auf der Leitung 28 zweimal gewechselt hat und die externe
Schaltung gleichzeitig das eingegebene Freigabesignal auf einer
Leitung 29 in einem logischen "1"-Zustand
gehalten hat. Die synchrone Zustandseinrichtung 30 wartet
zwei Referenztaktwechsel ab, bevor sie das Startsignal 90 in
einen logischen Zustand "1" setzt, so daß der Eingangspuffer 22 fortlaufend
sowohl den X-Bit-Multiplikanden als auch den Y-Bit-Multiplikator
von der externen Schaltung erhalten kann.
-
Der
Impulszuordner 34 überwacht
das Startsignal 90 auf einer Leitung 32 von der
synchronen Zustandseinrichtung 30 und erzeugt und sendet
seinerseits einen Satz Signale über
eine Leitung 33 an die funktionelle Logik 24,
wenn das Startsignal 90 auf logisch "1" übergeht.
Einzelheiten der Arbeitsweise des Impulszuordners 34 und
des Satzes Signale, die er abgibt, werden nachstehend anhand von 2A beschrieben. Sobald die
Einrichtung 20 in einer konkreten Vorrichtung verwirklicht
ist oder gemäß den Beschränkungen
einer vorgegebenen konkreten Vorrichtung ausgelegt ist, sind die Übertragungsverzögerungen
der funktionellen Logik 24 und eine Taktrate des Pulszuordners 34 bekannt.
Folglich sind die Ausgabedaten an dem Ausgangspuffer 26 in
bekannter Zeit vorhanden, wenn die Eingangsdaten in den Eingangspuffer 22 getaktet
sind.
-
Diese
bekannte Zeit ändert
sich jedoch etwas infolge von normalen Ausführungsschwankungen der konkreten
Vorrichtung als Funktion der Temperatur und Alterung der Vorrichtung.
Da jedoch der Impulszuordner 34 vorzugsweise ein integraler
Bestandteil der funktionalen Logik 24 ist, wie unten noch
beschrieben wird, machen sowohl der Impulszuordner 34 als
auch die funktionelle Logik 24 dieselben Temperatur- und
Zeitschwankungen durch. Folglich sind der Impulszuordner 34 und
die funktionelle Logik 24 sehr gut angepaßt und die
funktionelle Logik 24 wird von dem Impulszuordner 34 weder "übertaktet" noch "untertaktet".
-
In 2A ist ein Blockdiagramm
einer bevorzugten Ausführungsform
eines Impulszuordners 34 gemäß der Erfindung dargestellt.
Der Impulszuordner 34 weist eine Startlogik 36,
eine Verzögerungseinheit 38, einen
Impulszähler 40 und
eine Sequenz-Gatelogik 42 auf. Die Impulsrate, -dauer und
-periodizität
(wenn überhaupt)
des Impulszuordners 34 werden vorzugsweise für die funktionelle
Logik 24 optimiert, welche er ansteuert. Der Impulszuordner 34 ist
ebenfalls vorzugsweise mit Hilfe logischer Einrichtungen ausgeführt, die
der funktionellen Logik 24 angenähert sind, um so in entsprechender
Weise auf Temperatur- und Alterungswirkungen anzusprechen, wie oben
ausgeführt
ist.
-
Obwohl
nur ein Impulszuordner 34 nachstehend beschrieben wird,
um die gesamte funktionelle Logik 24 anzusteuern, könnten alternativ
hierzu auch mehrere Impulszuordner 34 vorgesehen sein,
um spezifische Untergruppen der funktionellen Logik 34 mit
verschiedenen Raten und zu verschiedenen Zeiten während der Operation
der funktionellen Logik 24 anzusteuern. In einer solchen
alterntiven Ausführungsform
würde jeder der
Impulszuordner 34 vorzugsweise den Startimpuls 104 erhalten.
-
Wenn
das Startsignal 90 auf der Leitung 32 auf logisch "1" übergeht,
erzeugt die Startlogik 36 einen Rücksetz(1)-Impuls 105 (siehe 8) auf einer Leitung 48 und
einen Startimpuls auf einer Leitung 35. Der Rücksetz(1)-Impuls 105 initialisiert
den Impulszähler 40.
Einzelheiten der Startlogik 36 werden nachstehend anhand
von 2B angegeben. Die
Verzögerungseinheit 38 erhält den Startimpuls
und erzeugt nach einer ersten bekannten Verzögerung ein Ausgangssignal 133 der
Verzögerungseinheit
(siehe 8) auf der Leitung 39.
Nach einer zweiten bekannten Verzögerung erzeugt die Verzögerungseinheit 38 ein
Rückkopplungssignal 132 (siehe 8) auf einer Leitung 37.
Einzelheiten der Verzögerungseinheit 38 werden
nachstehend anhand von 2C beschrieben.
-
Die
Startlogik 36 erhält
ein Rückkopplungssignal 132 über eine
Leitung 37 und erzeugt ihrerseits den nächsten Startimpuls auf der
Leitung 35, wodurch eine selbstgetaktete Schwingung erzeugt
ist. Die Periode dieser selbstgetakteten Schwingung ist duch die Übertragungsverzögerungen
festgelegt, die durch die Startlogik 36, die Verzögerungseinheit 38 und
die Leitung 37 bedingt sind.
-
Vorzugsweise
sind die Startlogik 36 und die Verzögerungseinheit 38 in
einer RLD-Einheit untergebracht, so daß die Verzögerungszeit, die auf der Leitung 37 beruht,
minimiert ist. In einer beispielhaften Ausführungsform mit einer FPGA der
Xilinx XC4000-Serie liegt die durch die Leitung 37 bedingte
Verzögerung
zwischen 1,7 ns und 2,2 ns, wenn übliche Anordnungsvorschriften
angewendet werden, um CLB-Anordnungen zu definieren. Bei Erhalt
eines Haltesignals auf einer Leitung 41 von dem Impulszähler 40 stoppt
die Startlogik 36 das Erzeugen von Startimpulsen auf der
Leitung 35; folglich wird die selbstgetaktete Schwingung
angehalten.
-
Der
Impulszähler 40 erhält ein Ausgangssignal 133 von
der Verzögerungseinheit 38 auf
der Leitung 39 und erzeugt dementsprechend ein Impulszählen auf
der Leitung 44 und das Haltesignal auf der Leitung 41. Der
Impulszählstand
wird über
eine Leitung 43 auf den anfänglichen Impulszählstand
(vorzugsweise "1") zurückgesetzt
und wird jedesman inkrementiert, wenn das Ausgangssignal 133 von
der Verzögerungseinheit wechselt.
Sobald der Impulszählstand
den größten Impulszählstand
errreicht, erzeugt der Impulszähler 40 das Haltesignal
auf der Leitung 41. Eine Leitung 44 besteht aus
einer Anzahl binärer
Bitleitungen, die ausreichen, um den größten Impulszählstand
zu übertragen.
Beispielsweise erfordert bei einer 16 Bit mal 16 Bit-Multiplikation
der Impulszählstand
acht Zustände
aus Gründen,
die nachstehend noch beschrieben werden. Folglich muß die Leitung 44 aus
mindestens drei binären
Bitleitungen gebildet sein, die hier als MUX(0) 92 (das niedrigstwertige
Bit (LSB)), MUX(1) 94 und MUX(2) 96 (das höchstwertige
Bit (MSB)) definiert sind (siehe 3).
Einzelheiten des Impulszählers 40 werden
nachstehend anhand von 2D beschrieben.
-
Die
Sequenz-Gate-Logik 42 erhält den Impulszählstand über eine
Leitung 44 und das Ausgangssignal 133 der Verzögerungseinheit über die
Leitung 39. Dementsprechend erzeugt die Logik 42 ein
Rücksetz(2)-Signal 97 (siehe 8) auf einer Leitung 45,
ein Partialprodukt-Summierer-Taktsignal (PPS-CLK) 98 (siehe 8), ein Produkt-Akkumulator-Takt(1)-Signal
(PA-CLK(1)) 99 (siehe 8)
auf einer Leitung 47, ein PA-CLK(2) 100 (siehe 8) auf einer Leitung 48 und
eine PA-CLK(3) 101 (siehe 8)
auf einer Leitung 49. Jeder der Takte 98 bis 101 ist
vorzugsweise ein Rechtecksignal, das von dem Impulszählstand
und dem Ausgangssignal 133 der Verzögerungseinheit abgeleitet ist.
-
Das
Impulszählsignal 44,
das Rücksetz(2)-Signal 97,
der PPS-CLK 46 und die PA-CLKs 47 bis 49 fungieren
zusammen als der Satz Signale, die auf einer Leitung 33 an
die funktionelle Logik 24 abgegeben worden sind, wie in 1 dargestellt ist. Gemäß dem selbst-getakteten
Paradigma ist absichtlich keines der Signale des Satzes Signale,
die an die Leitung 33 abgegeben worden sind, mit dem Referenztakt
auf der Leitung 28 synchronisiert. Einzelheiten der Sequenz-Gate-Logik 42 werden
nachstehend anhand von 2E beschrieben.
-
In 2B ist ein Blockdiagramm
einer bevorzugten Ausführungsform
der Startlogik 36 gemäß der Erfindung
dargestellt. Die Startlogik 36 weist eine Gruppe von Logikeinrichtungen
auf, die so, wie in 2B dargestellt,
verbunden sind. In einer beispielhaften Ausführungsform, die mit Hilfe einer
FPGA der Xilinx XC4000-Serie realisiert ist, weist die Startlogik 36 herkömmliche
Xilinx-Programmelemente FDS, AND2B1, AND2B0 und OR2B1 auf.
-
In 2C ist ein Blockdiagramm
einer bevorzugten Ausführungsform
der Verzögerungseinheit 38 der Erfindung
dargestellt. Die Verzögerungseinheit 38 ist
vorzugsweise in einer RLD-Einheit untergebracht und besteht aus Übertrag-Logikelementen
in einem Satz aus "n" CLBs 138, 144, 150, 154,
wobei n eine ganze Zahl ist. Vorzugsweise weist jedes Übertraglogikelement
eine Hochleistungsübertrag-Übertragungsschaltung
auf. Die Verzögerungseinheit 38 weist
zusätzlich
eine Untergruppe der Funktionsgeneratoren in diesem Satz von n CLBs
auf, um einen Signalleitweg zwischen der Verzögerungseinheit 38 und
der Logik außerhalb
der Verzögerungs einheit 38,
nämlich
der Startlogik 36, dem Impulszähler 40 und der Sequenz-Gate-Logik 42,
zu erleichtern. In einer beispielhaften Ausführungsform ist die Verzögerungseinheit 38 in
einer FPGA der Xilinx XC4000-Serie durch das Verwenden von Anweisungen "CI PRÜFEN" und "CI FORCIEREN" ausgeführt, was einem
Prüfen
bzw. Forcieren eines Übertragsignals
von einer vorhergehenden Stelle (carry-in Signal) entspricht.
-
Die
Logik, die in jedem CLB 138, 144, 150, 154 verwendet
ist, addiert eine bekannte Verzögerung
(1,5 ns für
ein Xilinx XC4000-Übertrag-Logik-Element
und 4,5 ns für
einen Xilinx XC4000-Funktionsgenerators des F-Typs) zu derjenigen
der Verzögerungseinheit 38.
Die Operationsfrequenz der Verzögerungseinheit 38 wird vorzugsweise
entweder durch Erhöhen
oder Erniedrigen der Anzahl von in Reihe geschalteten Übertrag-Logikelementen
geändert.
In der bevorzugten Ausführungsform
wird ein mit maximaler Rate selbstgetakteter Impulszuordner 34 gefordert.
-
Die
Anzahl an CLBs 138, 144, 150, 154,
welche die Verzögerungseinheit 38 aufweisen,
hängt daher von
dem langsamsten Teil der funktionellen Logik 24 ab. Wenn
der langsamste Teil der funktionellen Logik 24 "t" ns benötigt, dann weist die Verzögerungseinheit 38 "n" CLBs mit einer Gesamtverzögerung auf,
die gleich einer Hälfte
von "t" ns (d.h. einer halben
Periode) ist. Da RLD in Realzeit umzuprogrammieren ist, kann die Verzögerung der
Verzögerungseinheit 38 dynamisch
während
des Verlaufs der Verarbeitungsoperationen der funktionellen Logik 24 geändert werden.
Dadurch kann ein erster Satz von Operationen der funktionellen Logik 24 mit
einer ersten selbst-getakteten Rate durchgeführt werden, ein zweiter Satz
von anderen Operationen der funktionellen Logik 24 kann
mit einer zweiten selbstgetakteten Rate durchgeführt werden, usw.
-
In
einer ersten CLB 138 erhält der Funktionsgenerator(1) 140 den
Startimpuls auf der Leitung 35 und läßt den Impuls zu dem Übertrag-Logikelement(1) 139 durch.
Das Übertrag-Logikelement(1) 139 läßt dann den
Impuls über
eine Übertragleitung 142 zu
einem zweiten CLB 144 durch. In der zweiten CLB 144 erhält das Übertrag-Logikelement(2) 145 den
Impuls und läßt ihn zu
dem Funktionsgenera tor(2) 146 durch und überträgt auch
den Impuls über
die Austragleitung 148 an einen dritten CLB 150.
Nachdem der Impuls den Funktionsgenerator(2) 146 durchlaufen
hat, kann der Impuls von der Verzögerungseinheit 38 an
dieser Stelle "abgegriffen" werden, um so das
Ausgangssignal 133 der Verzögerungseinheit auf der Leitung 39 zu
werden. Hierbei ist ein "Abgriff" als eine Verbindung
in der Verzögerungseinheit 38 definiert,
die einen Signalleitweg extern zu der Verzögerungseinheit 38 erleichtert.
-
Dieses "Abgreifen" ist als eine Verbindung
in der Verzögerungseinheit 38 definiert,
welche einen Signalleitweg außerhalb
der Verzögerungseinheit 38 erleichtert.
Dies "Abgeifen" kann auch an einer
anderen Stelle in der Verzögerungseinheit 38 erfolgen
oder kann an mehreren Stellen in Abhängigkeit von der zu implementierenden
funktionellen Logik 24 erfolgen. Die genaue Position in
der Verzögerungseinheit 38,
wo die Leitung 39 abgegriffen wird, wird vorzugsweise so
gewählt,
daß die
Signale, die auf der Leitung 33 von dem Impulszuordner
erzeugt worden sind, bezüglich
der (nicht dargestellten) externen Schaltung, welche die Arbeitsweise
der Einrichtung 20 initiiert, phasenabgeglichen sind, wie
anhand von 1 ausgeführt ist.
-
In
dem dritten konfigurierbaren Logikblock (CLB) 151 erhält das Übertrag-Logikelement(3) 151 den
Impuls und läßt ihn zu
einem Übertrag-Logikelement
in einem nächsten
CLB durch, usw., bis der Impuls zu dem Übertrag-Logikelement (n) in
einem "n-ten" CLB 154 durchgekommen
ist. Konfigurierbare Logikblöcke
(CLBs) zwischen dem dritten CLB 150 und dem "n-ten" CLB 154 haben
vorzugsweise dieselbe Ausführung
und haben vorzugsweise dasselbe Interface, wie der dritte CLB 150.
In dem dritten CLB 151 ist der Funktionsgenerator(3) 152 für den Betrieb
der Verzögerungseinheit 38 nicht
erforderlich, da der dritte CLB 151 nicht abgegriffen wird, um
den Impuls zu einem Bestimmungsort außerhalb der Verzögerungseinheit 38 zu
leiten. Folglich kann der Funktionsgenerator(3) 152 vorzugsweise
dazu verwendet werden, einen Teil der Operationen der funktionellen Logik 24 auszuführen.
-
In
dem n-ten CLB erhält
das Übertrag-Logikelement
(n) 155 den Im puls und läßt ihn zu dem Funktionsgenerator(n) 156 durch,
welcher den Impuls invertiert und den invertierten Impuls auf der
Leitung 37 als das Rückkopplungssignal 132 abgibt.
Aufgrund dieser Impulsinversion hat der selbstgetaktete Oszillator Übergänge zwischen
logisch "1" und logisch "0". Wie dem Fachmann geläufig, könnte der
Impuls stattdessen auch von dem Funktionsgenerator(1) 140 invertiert
worden sein.
-
Die
Betriebsfrequenz der Verzögerungseinheit 38 kann
durch Erhöhen
oder Erniedrigen der Anzahl an in Reihe geschalteten Übertrag-Logikelementen
(d.h. durch Ändern
des Wertes von "n") geändert werden.
In einer alternativen Ausführungsform
könnte "n" null sein, mit der Folge, daß der Startimpuls,
das Rückkopplungssignal 132 und
das Ausgangssignal 133 der Verzögerungseinheit dasselbe Signal
werden. In einer weiteren alternativen Ausführungsform könnte die
Betriebsfrequenz der Verzögerungseinheit 38 durch
einen zusätzlichen
Signalweg über
einen oder mehrere Funktionsgeneratoren geändert werden.
-
In
noch einer weiteren Ausführungsform
könnte
die Betriebsfrequenz der Verzögerungseinheit 38 mit Hilfe
von Signalleitweg-Ressourcen
in der RLD einige genau definierte Verzögerungs-Kenndaten haben, modifiziert
oder eingestellt werden. Dem Fachmann ist bekannt, daß die Verzögerungseinheit 38 auch
in nicht-rekonfigurierbaren Einheiten mit Hilfe einer Logik untergebracht
werden könnte,
in welcher einzelne Elemente eine bekannte maximale Signalübertragungsverzögerung haben.
-
In
2D ist ein Blockdiagramm
einer bevorzugten Ausführungsform
des Impulszählers
40 der
Erfindung dargestellt. Der Impulszähler
40 ist aus einer
Anzahl Logikeinheiten
160,
162,
164 gebildet
(die vorzugsweise in einem FPGA der Xilinx XC4000-Serie mit Hilfe
der Elemente ROM16x1, FDR und AND3B3 gebildet sind), wobei die logischen
Einrichtungen
160,
162,
164 so, wie in
2D dargestellt, angeordnet
miteinander verbunden sind. Die ROMs
160 sind mit Flip-Flops
162 verbunden,
um dadurch das Impulszählen
durchzuführen.
Ein vorliegender Zustandscode Q3, Q2, Q1, Q0 der Flip-Flops
162 wird
dazu verwendet, den Impulszählstand
zu erzeugen, wobei ein vorliegender Zustandscode dem Haltesignal
134 entspricht.
Der Impulszähler
40 inkrementiert,
bis der Rücksetz(1)-Impuls
105 auf
der Leitung
43 erhalten wird. Die Codes, die in den ROM's
160 zu
speichern sind, werden entsprechend der folgenden Tabelle erzeugt,
in welcher der vorliegende sowie der nächste Zustand wiedergegeben
sind:
-
In 2E ist ein Blockdiagramm
einer bevorzugten Ausführungsform
einer Sequenz-Gate-Logik 42 der Erfindung dargestellt.
Die Sequenz-Gate-Logik 42 ist durch eine Anzahl Logikeinheiten
gebildet, die so, wie in 2E dargestellt,
angeordnet und miteinander verbunden sind (die logischen Einheiten
sind vorzugsweise partiell in einer FPGA der Xilinx XC4000-Serie
mit Hilfe der Elemente D3_8E, AND2B1, FD, FD_1, NOR2, OR8 und OR7)
gebildet. Die Sequenz-Gate-Logik 42 decodiert acht Zustände mit
Hilfe einer Anzahl von Störungs-Überwachungsschaltungen 170,
wie in 2E dargestellt
ist. Das Decodieren erfolgt zeitlich in der Reihenfolge des Impulszählens auf
der Leitung 44. Der letzte Impulszählzustand (d.h. (0,0,0)) wird
genau zu einem Zeitpunkt decodiert. Die CLKs 46, 47, 48 werden
durch ein "Oder-Schalten" der Ausgänge der
Störungsüberwachungsschaltung 170 erzeugt.
Fachleuten, die den Aufbau der FPGA kennen, ist bekannt, daß in alternativen
Ausführungsformen
der Sequenz-Gate-Logik 42 die verdrahteten ODER-Glieder
durch verdrahtete UND-Glieder mit Hilfe einer DeMorganisation der
lokalen Zustandsdecodierer ersetzt werden. Die bevorzugten Sequenz-Gate-Logik 42 weist
eine gerade Anzahl von durch eine negative Flanke getriggerten Flip-Flops und
von durch eine positive Flanke getriggerten Flip-Flops auf, die
ein hocheffizientes duales Flip-Flop pro CLB-Packungsstrategie liefern,
wobei gleiche getaktete Flip-Flops verbunden sind.
-
In 3 ist ein Blockdiagramm
einer bevorzugten Ausführugnsform
einer funktionellen Logik 24 der Erfindung dargestellt.
Die funktionelle Logik 24 weist einen Multiplexer (MUX) 50,
einen partiellen Produktgenerator (PPG) 42, einen partiellen
Produkt-Summierer (PPS) 54 und eine Produktakkumulator
(PA) 56 auf. Der Multiplexer 50 erhält einen
X-Bit-Multiplikanden auf der Leitung 21 und gibt eine S-Bit-Multiplikanden-Untergruppe
entsprechend dem Impulszählen
auf der Leitung 44 ab, wie im einzelnen anhand von 4 nachstehend beschrieben
wird. Der PP-Generator 52 multipliziert den Y-Bit-Multiplikator
auf der Leitung 23 mit der S-Bit-Multiplikanden-Untergruppe und gibt
einen Satz partieller Produkte an den PP-Summierer 54 ab,
wie im einzelnen nachstehend anhand von 5 beschrieben wird.
-
Der
PP-Summierer 54 verknüpft
den Satz partieller Produkte und gibt eine partielle Produktsumme
an den Produktakkumulator 56 entsprechend dem PPS-CLK 98 auf
der Leitung 46 ab, wie im einzelnen anhand von 6 nachstehend beschrieben
wird. Der P-Akkumulator 56 erhält einen Rücksetz(2)-Impuls 207 (siehe 8) auf der Leitung 45 von
der Startlogik 36 und setzt dementsprechend dessen interne
Flip-Flops (FFs) auf null. Vor dem Empfang dieses Rücksetz(2)-Impulses 107 verbleibt
ein vorheriges P-Bit-Produkt auf der Leitung 25. Der P-Akkumulator 56 erzeugt
eine Produktakkumulation, indem die partielle Produktsumme zu einer Untergruppe
von Produkt-Akkumulationsbits addiert wird, und gibt ein P-Bit-Produkt auf der Leitung 25 entsprechend
dem PA-CLK (1,2,3) 99, 100, 101 (siehe 8) auf Leitungen 47 bis 49 ab,
wie im einzelnen anhand von 7 nachstehend
beschrieben wird. Eine vollständige
Multiplikation X-Bit mal Y-Bit wird von der funktionellen Logik 24 durchgeführt, nachdem
jede S-Bit-Multiplikanden-Untergruppe mit dem Y-Bit-Multiplikator
multipliziert und durch den P-Akkumulator 56 akkumuliert
worden ist.
-
In 4 ist ein Blockdiagramm
einer bevorzugten Ausführungsform
des Multiplexers (MUX) 50 in der funktionellen Logik 24 dargestellt.
Der MUX 50 weist einen ersten MUX 58 und einen
zweiten MUX 60 auf. Jeder MUX 58, 60 ist
mit dem Eingangspuffer 22 über die Leitung 21 verbunden,
so daß jeder
eine Hälfte
des X-Bit-Multiplikanden erhält.
Der erste MUX 58 erhält
die geradzahligen Multiplikanden-Bits (d.h. 20,
22,....214 für einen
16 Bit-Multiplikanden) während
der zweite MUX 60 die ungeradzahligen Multiplikanden-Bits
(d.h. 21, 23,....215 für
einen 16-Bit-Multiplikanden) erhält.
Jeder MUX 58, 60 erhält den Impulszählstand über die
Leitungen 44.
-
Im
Verlaufe der Multiplikation von X-Bit mal Y-Bit wird der Impulszählstand
von dem Anfangsimpulszählstand
bis einschließlich
auf den höchsten
Impulszählstand
inkrementiert. Im Falle eines 16 Bit-Multiplikanden entspricht der
Anfangsimpulszählstand
vorzugsweise (0,0,1) auf der Leitung 44, wobei "1" das niedrigstwertige Bit (LSB) ist,
und der höchste
Impulszählstand
vorzugsweise (0,0,0) entspricht. Der Impulszählstand geht folglich von (0,0,1)
auf (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) und dann
(0,0,0).
-
Die
ersten und zweiten Multiplexer 58, 60 geben eine
S-Bit-Multiplikanden-Untergruppe an den PP-Generator 52 ab.
Folglich wird eine 2-Bit-Multiplikanden-Untergruppe (21 und
2i+1) an den PPG 52 gesetzt, wobei
das Bit 21 aus dem ersten MUX 58 und das Bit 2i+1 aus dem zweiten MUX 60 gewählt wird.
Für eine Multiplikation
16 Bit mal 16 Bit ist "S" gleich "2" und "i" ist
eine ganze Zahl, welche vorzugsweise von null bis vierzehn geht,
wenn der Impulszählstand
von (0,0,1) bis (0,0,0) reicht.
-
In 5 ist ein Blockdiagramm
einer bevorzugten Ausführungsform
des partiellen Produktgenerators (PPG) 42 in der funktionellen
Logik dargestellt. Der PPG 52 weist eine erste Gruppe von
partiellen Produktmultiplikatoren (PPMs) 51 und eine zweite
Gruppe von PPMs 53 auf, deren Eingänge miteinander verbunden sind,
um die S-Bit-Multiplikanden-Untergruppe von den ersten und zweiten
Multiplexern 58, 60 und dem Y-Bit-Multilikator
auf der Leitung 23 aufzunehmen. Die Ausgänge der
ersten und zweiten Gruppe von PPMs 51, 53 sind
mit dem PPS 54 verbunden. Für eine Multikplkation 16 Bit
mal 16 Bitt weist jede Gruppe von PPMs 51, 53 vier
PPMs 2 Bit mal 2 Bit auf, die parallen betrieben werden, so daß folglich
insgesamt 32 Bits nach jeder Multiplikation an den PPS 54 abgegeben
werden.
-
Jedes 2 Bit-Multiplikatorpaar
von dem 16 Bit-Multiplikator auf der Leitung 23 wird zu
einem der acht PPMs geleitet und während jeder partiellen Produkt-Multiplikationsoperation
konstant gehalten. Für
jeden Impulszählstand
wird eine 2-Bit-Multiplikanden-Untergruppe (d.h. 2i und
2i+1) zu jedem der acht PPMs geleitet, wobei
mit einem ersten 2-Bit-Multiplikandenpaar (20 und
21) begonnen wird, wenn der Impulszählstand
auf eins gesetzt ist, und endet mit einem letzten 2-Bit-Multiplikandenpaar
(214 und 215) wenn
der Impulszählstand
auf null gesetzt ist.
-
Wie
in 5 zur Verdeutlichung
dargestellt ist, sind die Spaltenpositionen der zwei 16-Bit-Partialprodukte
von der ersten und zweiten Gruppe von PPMs 51, 53 vertikal
ausgerichtet, wenn deren Bits von dem PPS 54 addiert werden,
wie es im Stand der Technik bekannt ist. Das Bit 20 ist
das niedrigswertige Bit (LSB) und das Bit 217 ist
das höchstwertige
Bit (MSB). Obwohl eine 16 Bit mal 16 Bit-Partialproduktgeneration
beschrieben worden ist, weiß der
Fachmann, daß dieselbe
Beschreibung analog auch bei dem allgemeinen Fall einer Partialproduktgeneration
von X-Bit mal Y-Bit gilt.
-
In 6 ist ein Blockdiagramm
einer bevorzugten Ausführungsform
des PPS 54 in der funktionellen Logik 24 dargestellt.
Der PPS 54 weist einen PPS-Addierer 24, eine PPS-Inkrementiereinheit 66 und
einen Satz PPS-Flip-Flops 68 auf. Der PPS 54 ist
entsprechend ge schaltet, um die zwei Partialprodukte zu erhalten, die
von dem PPG 52 erzeugt worden sind. Der PPS 54 addiert
die zwei Partialprodukte und erzeugt eine Partialproduktsumme. Im
Falle einer Multiplikation 16 Bit mal 16 Bit werden die zwei LBSs
(20 bis 21) von
dem ersten Satz PPMs 51 unmittelbar von den PPS-Flip-Flops 68 aufgenommen;
der PPS-Addierer 64 addiert 14 Bit (22 bis
215) sowohl von dem ersten als auch von
dem zweiten Satz PPMs 51, 52; die PPS-Inkrementiereinheit 66 nimmt
die zwei MSBs (216 bis 217)
von dem zweiten Satz PPMs 53 und einen Übertrag von dem 14 Bit-PPS-Addierer 64 an;
eine 18-Bit-Partialproduktsumme (20 bis
217) wird erzeugt und abgegeben. Die Partialproduktsumme,
die sich aus der Addition ergibt, wird in den PPS-Flip-Flops 68 entsprechend
einem PPS-CLK 98 auf der Leitung 46 gespeichert.
-
In 7 ist ein Blockdiagramm
einer bevorzugten Ausführungsform
des P-Akkumulators (PA) 58 in der funktionellen Logik 24 dargestellt.
Der PA 56 weist einen PA-Addierer 70, der entsprechend
geschaltet ist, um die Partialproduktsumme von dem PPS 54 aufzunehmen
und um Akkumulationen durchzuführen,
eine PA-Inkrementiereinheit 71, und eine Gruppe von PA-Flip-Flops 72 bis 88 auf,
um schließlich
das P-Bit-Produkt zu speichern.
-
Für eine Multiplikation
16 Bit mal 16 Bit ist der PA-Addierer 70 ein 16 Bit-Addierer;
die PA-Inkrementiereinheit 71 ist eine 2 Bit-Inkrementiereinheit
und der Satz PA-Flip-Flops 72 bis 88 weist einen
ersten Flip-Flop-Satz 72, einen zweiten Flip-Flop-Satz 74,
einen dritten Flip-Flop-Satz 76, einen vierten Flip-Flop-Satz 78,
einen fünften
Flip-Flop-Satz 80, einen sechsten Flip-Flop-Satz 82,
einen siebten Flip-Flop-Satz 84, einen achten Flip-Flop-Satz 86 und
einen neunten Flip-Flop-Satz 88 auf, um ein 32 Bit-Produkt
(p0 bis P31, wobei
p0 das LSB und p31 das
MSB ist) zu speichern.
-
Die
zwei LSBs 20 bis 21 von
einer ersten Partialproduktsumme, die von dem PPS 54 erhalten
worden sind, werden in dem zweiten Flip-Flop-Satz 74 entsprechend der
Anstiegsflanke des PA-CLK(1) 99 auf der Leitung 47 gespeichert,
wodurch die zwei LSBs (p0 bis p1)
des 32 Bit-Produkts entstehen. Eine 16 Bit-Produktakkumulations-Un tergruppe
(Bits 22 bis 217 von
dem Ausgang des 16 Bit-Addierers 70 und der 2 Bit-Inkrementiereinheit 71)
wird in dem ersten Flip-Flop-Satz 72 entsprechend
der Vorderflanke des PA-CLK(2) 100 auf der Leitung 48 gespeichert.
Der 16 Bit-Addierer 70 addiert Bits 20 bis
215 jeder Partialproduktsumme, die von dem PPS 54 erhalten
worden ist, zu der 16 Bit-Produktakkumulations-Untergruppe, um eine
Produktakkumulation zu erzeugen (Bits 20 bis
216 von dem Ausgang des 16 Bit-Addierers 70 und
der 2 Bit-Inkrementiereinheit 71).
-
Die
Bits 22 bis 217 jeder
Produktakkumulation werden dann die Produktakkumulations-Untergruppe, welche
zu dem ersten Flip-Flop-Satz 72 rückgekoppelt
wird, während
Produktakkumulationsbits 20 und 21 sequentiell nach jeder Produktakkumulation über die
dritten bis neunten Flip-Flop-Sätze 76 bis 88 entsprechend einer
Anstiegsflanke des PA-CLK(3) 101 auf der Leitung 49 verschoben
werden. Folglich werden nach einem PA-CLK(1) 99-Wechsel Bits p0 und p1 in dem zweiten
Flip-Flop-Satz 74 gespeichert. Nach acht PA-CLK(2) 100-Wechsel
werden Bits p16 bis p31 in
dem ersten Flip-Flop-Satz 72 gespeichert
und nach sieben PA-CLK(3) 101-Wechsel werden Bits p2 und
p3 in dem neunten Flip-Flop-Satz 88,
Bits p4 und p5 in
dem achten Flip-Flop-Satz 86, Bits p6 und
p7 in dem siebten Flip-Flop-Satz 84,
Bits p8 und p9 in
dem sechsten Flip-Flop-Satz 82,
Bits p10 und p11 in
dem fünften
Flip-Flop-Satz 80, Bits p12 und
p13 in dem vierten Flip-Flop-Satz 78 und
Bits p14 und p15 werden
in dem dritten Flip-Flop-Satz 76 gespeichert. Das 32 Bit-Produkt
(Bit p0 bis p31)
wird dann an den Ausgangspuffer 26 über die Leitung 25 abgegeben.
-
In 8 ist ein bevorzugtes Zeitdiagramm 89 der
Arbeitsweise der Erfindung dargestellt. Die in 8 dargestellten Wellenformen sind idealisiert
und folglich werden logische Wirkungen betrachtet, die im Augenblick
eines Zustandsübergangs
auftreten. Das Zeitdiagramm 89 weist ein Startsignal 90,
ein Q-Startsignal 128, ein Start-Impulssignal 130,
ein Rückkopplungssignal 132,
ein Ausgangssignal 133 der Verzögerungseinheit, ein Haltesignal 134,
ein Rücksetz(1)-Signal 91,
ein MUX(0)-Signal 92, ein MUX(1)-Signal 94, ein
MUX(2)-Signal 96, ein PPS-CLK-Signal 98, ein Rücksetz(2)- Signal 97,
ein PA-CLK(1)-Signal 99, ein PA-CLK(2)-Signal 100,
ein PA-CLK(3)-Signal 101, ein Produktsignal 102,
ein erstes Startsignal 104, ein nächstes Startsignal (106)
ein erstes PPS-CLK-Signal 108,
ein ersten PA-CLK(1)-Signal 109, ein erstes PA-CLK(2)-Signal 110,
ein erstes PA-CLK(3)-Signal 112 und eine Produktberechnungszeit 114 auf.
-
Das
erste Startsignal 104 wird von dem Impulszuordner 34 über die
Leitung 32 erhalten, wie in 2A dargestellt
ist. Entsprechend dem ersten Startsignal 104 initialisiert
die Startlogik 36 das MUX(0) 92 (das LSB)-, das
MUX(1) 94 und das MUX(2) 96 (das MSB)-Signal bei (0,0,1),
indem der Rücksetz(1)-Impuls 105 über die
Leitung 143 und die MUX(0) 92, MUX(1) 94 und
die MUX(2)-Signale an den MUX 50 über die Leitung 44 gesendet
werden. Dementsprechend wählt
der MUX 50 das erste 2 Bit-Multiplikandenpaar (20 bis 21) für eine Multiplikation
16 Bit mals 16 Bit aus, wie oben erörtert ist. Die Sequenz-Gate-Logik 72 verzögert das
Abgeben des ersten PPS-CLK-Signals 108 an den PPS 54,
bis eine erste 18 Bit-Partialproduktsumme
an den Eingängen
der PPS-Flip-Flops 68 vorhanden ist.
-
Nachdem
die ersten 18 Bit-Partialproduktsumme in den PPS-Flip-Flops 68 gespeichert
worden ist, werden die MUX(0) 92, MUX(1) 94 und
die MUX(2)-Signale in einen nächsten
Zustand (d.h. (0,1,0)) in Vorbereitung einer nächsten 18 Bit-Partialproduktsumme
inkrementiert. Die Sequenz-Gate-Logik 42 verzögert auch das
Aussenden des ersten PA-CLK(1)-Signals 109 über die
Leitung 47, bis die erste 18 Bit-Partialproduktsumme an
den Eingängen
des zweiten Flip-FlopSatzes 74 anliegt. Unmittelbar bevor
der PA-CLK(1)-Impuls 109 über die
Leitung 47 abgegeben wird, erzeugt die Startlogik 36 den
Rücksetz(2)-Impuls 107 über die
Leitung 45, um das vorherige P-Bit-Produkt 102 zu
löschen.
-
Der
PA-CLK(1) 99 wird einmal bei jeder vollständigen 16
Bit mal 16 Bit-Multiplikationsoperation gewechselt bzw. umgeschaltet.
Das erste PA-CLK(2)-Signal 110 auf der Leitung 48 wird
nur erzeugt, nachdem eine erste 16 Bit-Produktakkumulations-Untergruppe
an den Eingängen 72 des
ersten Flip-Flop-Satzes 72 anliegt, worauf der PA-CLK(2) 100 geschaltet
wird, jedesmal wenn eine nächste
16 Bit-Produktakkumulations-Untergruppe
an den Eingängen
des ersten Flip-Flop-Satzes 72 anliegt. Der PA-CLK(2) 100 wird
acht mal pro jeder vollständigen
16 Bit mal 16 Bit-Multiplikationsoperation umgeschaltet. Das erste
PA-CLK(3)-Signal 112 auf der Leitung 49 wird nur
erzeugt, nachdem eine zweite 18 Bit-Produktakkumulation an den Eingängen des
dritten Flip-Flop-Satzes 76 anliegt, worauf der PA-CLK(3) 101 umgeschaltet
wird, jedesmal, wenn eine nächste
18 Bit-Produktakkumulation an den Eingängen des dritten Flip-Flop-Satzes 72 anliegt.
-
Der
PA-CLK(3) 101 wird sieben mal für jede vollständige 16
Bit mal 16 Bit-Multiplikationsoperation umgeschaltet. Infolge der
bekannten Übertragungsverzögerungen,
die in einer konkreten Einrichtung vorliegen, die in der vorliegenden
Erfindung verwendet wird, ist das Produkt 102 bekannt,
das in der Produktberechnungszeit 114 zu berechnen ist.
Folglich gibt es einen ersten Zeitpunkt nach dem ersten Startsignal 104,
an welchem das zweite Startsignal 106 an den Impulszuordner 34 abgegeben
werden kann, nachdem sich das Produktsignal 102 stabilisiert
hat. Obwohl nur eine 16 Bit mal 16 Bit-Multiplikation beschrieben
worden ist, weiß der
Fachmann, daß in
entsprechender Weise eine X-Bit mal Y-Bit-Multiplikation durchgeführt werden
kann.
-
In 9A ist eine Matrix von bevorzugten
Partialproduktadditionen für
eine 16 Bit mal 16 Bit-Multiplikation dargestellt, die gemäß der Erfindung
durchgeführt
worden ist. Für
diese 16 Bit mal 16 Bit-Multiplikation geht der PPS 54 über acht
Summiervorgänge
und der PA 56 geht über
sieben Akkumulationen, so daß sich schließlich ein
32 Bit-Produktausgangssignal auf der Leitung 25 an dem
Ausgangspuffer 26 ergibt, wie vorstehend ausgeführt ist.
In der obersten Zeile der Matrix ist eine Spalte für jedes
Bit des 32 Bit-Produkts dargestellt, wobei das niedristwertige Bit
(LSB) 20 und das höchstwertige Bit (MSB) 231 ist. Bezüglich der Teile der Matrix, die
mit "I" bis "VIII" bezeichnet sind,
ist ein Abgleich der acht Partialprodukt-Multiplikatoren 62 in
dem PPG 52 dargestellt. Im Teil "I" werden
Bits 20 und 21 der
16 Bit-Multiplikanden mit dem 16 Bit-Multiplikator multipliziert; im
Teil "II" werden Bits 22 und 23 des 16 Bit-Multiplikanden
mit dem 16 Bit-Multiplikator multipliziert, und so weiter, bis im
Teil "VIII" Bits 214 und
215 der 16 Bit-Multiplikanden mit dem 16
Bit-Multiplikator
multipliziert werden. Der P-Akkumulator 56 addiert alle
acht Teil in der Weise, die in der Matrix wiedergegeben ist, wodurch
sich das 32 Bit-Produkt ergibt.
-
In 9B ist eine Matrix von bevorzugten
Partialprodukt-Additionen für
eine gemäß der Erfindung durchgeführte 8 Bit
mal 8 Bit-Multiplikation
dargestellt. Für
die 8 Bit mal 8 Bit-Multiplikation würde der PPS 54 entsprechend
ausgelegt, um über
vier Summierungen zu gehen und der PR 56 würde über drei
Akkumulationen gehen, so daß sich
schließlich
ein 16 Bit-Produkt ergibt, das über
die Leitung 25 an den Augabepuffer 26 abgegeben
wird, wie oben ausgeführt
ist. In der obersten Zeile der Matrix ist eine Spalte für jedes
Bit des 16 Bit-Produkts dargestellt, wobei das LSB 20 und
MSB 215 ist. An den Teilen der Matrix, die
mit "1" bis "IV" bezeichnet sind,
ist ein Abgleich der nunmehr vier Partialprodukt-Multiplikatoren 62 in
dem PPG 52 dargestellt. Im Teil "I" werden
Bits 20 und 21 des
8 Bit-Multiplikanden mit dem 8 Bit-Multiplikator multipliziert;
in Teil "II" werden Bits 22 und 23 des 8 Bit-Multiplikanden
mit dem 8 Bit-Multiplikator multipliziert, usw., bis im Teil "IV" Bits 26 und
27 des 8 Bit-Multiplikanden mit dem 8 Bit-Multiplikator
multipliziert werden. Der PA 56 addiert vier Teile in der
in der Matrix angegebenen Weise, wodurch sich dann das 16 Bit-Produkt
ergibt.
-
In 10 ist ein Ablaufdiagramm
eines bevorzugten Verfahrens für
eine selbst-getaktete algorithmische Ausführung dargestellt. Das bevorzugte
Verfahren beginnt beim Schritt 200, bei welchem ein Wechsel des
Referenztaktes, während
das eingegebene Freigabesignal auf der Leitung 29 logisch "1" gesetzt wird, bewirkt, daß der Eingangspuffer 22 die
Eingangsdaten über
Leitungen 21 und 23 an die Eingänge der
funktionellen Logik 24 synchron mit dem Referenztakt-Umschalten
in der vorstehend beschriebenen Weise überträgt. Als nächstes erzeugt beim Schritt 202 und
entsprechend dem Übergang
des Startsignals 30 von logisch "0" auf
logisch "1" auf der Leitung 32 der
Impulszuordner 34 eine Maximalraten-Impulsfol ge über die
Leitung 33, um die funktionelle Logik 24 mit einer
Rate in Abhängigkeit
von der Algorithmus-Ausführungszeit
für die
funktionelle Logik 24, aber unabhängig von dem Referenztakt auf
der Leitung 28 anzusteuern.
-
Schritt 202 wird
im einzelnen anhand von 11 beschrieben.
Beim Schritt 204 erzeugt die funktionelle Logik 24 Ausgangsdaten
auf der Leitung 25 entsprechend der Maximalraten-Impulsfolge
auf der Leitung 33. Schritt 204 wird im einzelnen
anhand von 12 beschrieben.
Beim Schritt 206 werden die Ausgangsdaten von der funktionellen
Logik 24 über
die Leitung 25 und in den Ausgangspuffer 26 synchron
mit und entsprechend einem Umschalten des Referenztaktes auf der
Leitung 28 übertragen,
während
das Ausgangsfreigabesignal auf der Leitung 31 auf logisch "1" gesetzt wird, wie vorstehend beschrieben
ist. Nach dem Schritt 206 endet das bevorzugte Verfahren.
-
In 11 ist ein Ablaufdiagramm
eines bevorzugten Verfahrens zum Erzeugen einer Impulsfolge (Schritt 202 der 10) dargestellt. Das bevorzugte
Verfahren beginnt bei Schritt 250, wobei die Startlogik 36 den
Zustand des Startsignals auf der Leitung 32 und des Haltesignals
auf der Leitung 41 überwacht.
Bei Schritt 252 geht, wenn das Startsignal 90 auf
logisch "1" übergeht, während das Haltesignal auf logisch "0" gesetzt bleibt, das Verfahren auf Schritt 254 über; sonst
geht das Verfahren auf Schritt 250 zurück. Beim Schritt 254 initialisiert
die Startlogik 36 den Impulszähler 40, wie oben
ausgeführt
ist. Beim Schritt 255 überträgt die Startlogik 36 einen
Startimpuls an die Verzögerungseinheit 38,
wie oben beschrieben ist.
-
Als
nächstes
inkrementiert beim Schritt 256 der Impulszähler 40 das
Impulszählsignal
(d.h. MUX(0) 92, MUX(1) 94 und MUX(2) 96 für eine 16
Bit mals 16 Bit-Multiplikation) entsprechend dem Ausgangssignal 133 der
Verzögerungseinheit,
wie oben beschrieben ist. Die Stelle in der Verzögerungseinheit 38,
an welcher das Ausgangssignal 133 der Verzögerungseinheit
abgegriffen wird, kann geändert
werden, um die Zeitsteuerimpulse des Impulszuordners 34 bezüglich einer
externen Schaltungsanordnung, die mit der Ein richtung 20 verbunden
ist, in der Phase abzugleichen.
-
Beim
Schritt 258 erzeugt die Sequenz-Gate-Logik 42 das
PPS-CLK-Signal 98 und
die PA-CLK-Signale 99 bis 101 entsprechend dem
Impulszählsignal
in der vorstehend beschriebenen Weise. Beim Schritt 260 geht, wenn
das Impulszählsignal
gleich dem größten Impulszählsignal
ist, das Verfahren auf Schritt 262 über; andernfalls geht das Verfahren
auf Schritt 256 zurück.
Beim Schritt 262 stoppt der Impulszähler 40 mit dem Übertragen
von Startimpulsen an die Verzögerungseinheit 38,
indem das Haltesignal auf Leitung 41 auf logisch "1" gesetzt wird. Nach dem Schritt 262 endet
das bevorzugte Verfahren.
-
In 12 ist ein Ablaufdiagramm
eines bevorzugten Verfahrens zum Erzeugen von Ausgangsdaten entsprechend
der Impulsfolge (Schritt 204 in 12) dargestellt. Das bevorzugte Verfahren
beginnt bei Schritt 300, wobei der MUX 50 den
X-Bit-Multiplikanden eingibt, der PPG 52 den Y-Bit-Multiplikator
eingibt und die Startlogik 36 die Partialproduktsumme und
die Produktakkumulation auf null initialisiert, wie oben beschrieben ist.
Beim Schritt 302 wählt
der MUX 50 eine nächste
S-Bit-Multiplikanden-Untergruppe in der vorbeschriebenen Weise aus.
Beim Schritt 304 multipliziert der PPG 52 eine
aktuelle S-Bit-Multiplikanden-Untergruppe (d.h. die aktuelle Untergruppe
ist die nächste
Untergruppe, die beim Schritt 302 gewählt wurde) mit dem Y-Bit-Multiplikator,
um die an den PPS 54 abgegebenen Partialprodukte zu erzeugen,
wie vorstehend beschrieben ist.
-
Als
nächstes
erzeugt beim Schritt 306 der PPS 54 die Partialproduktsumme
und gibt sie in der vorbeschriebenen Weise an den PA 56 ab.
Beim Schritt 308 addiert der PA 56 die Partialproduktsumme
zu der Produktakkumulation, wie oben beschrieben ist. Beim Schritt 310 kehrt,
wenn eine nächste,
S-Bit-Multiplikanden-Untergruppe noch mit dem Y-Bit-Multiplikator
zu multiplizieren ist, das Verfahren auf Schritt 302 zurück; andernfalls
geht das Verfahren auf Schritt 312 über. Beim Schritt 312 gibt
der PA 56 ein P-Bit-Produkt an den Ausgangspuffer 26 ab.
Nach dem Schritt 312 endet das bevorzugte Verfahren.
-
Die
Erfindung wird vorzugsweise in Verbindung mit einem Rechensystem
verwendet. Beim Stand der Technik sind Schaltungen, die entsprechend
ausgelegt sind, um hochschnelle Implementierungen von ganz speziellen
Algorithmen durchzuführen,
aus mehreren Schaltungsschichten gebildet. Jede Schaltungsschicht erhält einen
Satz Signale, führt
ganz bestimmte Operationen durch und gibt einen Satz Ergebnisse
synchron mit einem Taktimpuls ab. Signale werden von einer Schaltungschicht
zur anderen übertragen.
Solche bekannten Schaltungsausführungen
erfordern oft viele Schaltungsschichten, wozu eine große Anzahl
von Hardware-Ressourcen verwendet werden müssen, was unerwünscht ist.
-
Im
Unterschied zum Stand der Technik wird bei der Erfindung ein Algorithmus
ausgeführt,
indem eine minimale Anzahl von Hardware-Ressourcen immer wieder mit einer maximalen
selbstgetakteten Rate verwendet wird, um ein Ergebnis zu erhalten.
Das heißt,
dieselbe Menge an Hardware-Ressourcen wird wiederholt nach Empfang
des Startsignals bis zum Vorliegen des Haltesignals verwendet, um
ein Ergebnis zu erzielen. Gemäß der Erfindung
ist ein Mittel geschaffen, um einen Algorithmus mit Hilfe erheblich
weniger Hardware-Ressourcen
durchzuführen,
als sie bei den bekannten Hochleistungsschaltungen erforderlich
sind. Dies ist insbesondere vorteilhaft, wenn ein oder mehrere Versionen
der Erfindung in einer RLD implementiert werden.
-
Die
vorstehend beschriebene Erfindung liefert viele weitere Vorteile
gegenüber
den derzeit existierenden logischen Konzeptionen. Die Erfindung
ist insbesondere vorteilhaft im Hinblick auf aktuelle asynchrone
Logikkonzeptionen. Beispielsweise erfordert die vorliegende Erfindung
nicht das Erzeugen von "Abschlußsignalen" bei Beenden von
operationellen Aufgaben; sie hat bekannte und voraussagbare Abschlußzeiten;
sie erfordert keine externen Taktelemente, sondern hat stattdessen
ihr eigenes integrales Impulszuordner-Zeitsteuerelement; sie hat
Abschlußzeiten,
welche datenunabhängig
sind; sie kann sich synchron mit einer externen Schaltungsanordnung
kombinieren lassen; sie kann kohärent
Phasendaten mit einer externen Schaltungsanordnung austauschen;
sie erhöht
nur eine zusätzliche örtlich festgelegte
Schaltungskomplexität, wenn
die Verzögerung
in dem Zeitsteuerelement zunimmt; sie ist sehr leicht in einer synchronen
externen Schaltungsanordnung unterzubringen und sie beeinflußt das Leistungsvermögen nur
einer örtlich
begrenzten Schaltungsgruppe statt eines ganzen Systems einer externen
Schaltungsanordnung.
-
Modifikationen
der Erfindung können
altenative Ausführungsformen
ergeben. Beispielsweise könnte die
Verzögerungseinheit 28 entsprechend
ausgelegt werden, damit ein Impuls entsprechend der RDL-Konfiguration
kontinuierlich zurückgeführt wird;
dadurch entfällt
die Startlogik 36. In einer derartigen Ausführungsform
könnte
ein RS-Flip-Flop einen Multiplexer freigeben, damit er das Ausgangssignal
der Verzögerungseinheit
zu dem Impulszähler
und der Sequenz-Gate-Logik 32 entsprechend dem Startsignal
passieren läßt. Somit ist
die funktionelle Logik nicht auf den Fall einer selbst getakteten
Multipliziereinheit beschränkt.
Die funktionelle Logik kann entsprechend modifiziert werden, um
Funktionen einschließlich
eines selbstgetakteten Teilers, eines selbstgetakteten Convolvers
oder eines selbst getakteten Signalprozessors zu schaffen, ohne
hierauf beschränkt
zu werden.