DE10124351A1 - Zeitlich selbstgesteuertes Übertragungssystem und Verfahren zum Verarbeiten von Mehrfachdatensätzen - Google Patents
Zeitlich selbstgesteuertes Übertragungssystem und Verfahren zum Verarbeiten von MehrfachdatensätzenInfo
- Publication number
- DE10124351A1 DE10124351A1 DE10124351A DE10124351A DE10124351A1 DE 10124351 A1 DE10124351 A1 DE 10124351A1 DE 10124351 A DE10124351 A DE 10124351A DE 10124351 A DE10124351 A DE 10124351A DE 10124351 A1 DE10124351 A1 DE 10124351A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- coding
- logic
- designed
- logic paths
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Ein zeitlich selbstgesteuertes Übertragungssystem und Verfahren übertragen eine Mehrzahl von Datenoperanden wirksam aufeinanderfolgend durch herkömmliche digitale Geräte, beispielsweise eine Schiebeeinrichtung, Bus-Netzwerk, Multiplexer oder Puffer auf zeitlich selbstgesteuerte Weise, um Hardwareerfordernisse zu minimieren. Obwohl sie nicht auf diese bestimmte Anwendung beschränkt sind, eignen sich das zeitlich selbstgesteuerte Übertragungssystem und Verfahren besonders für die Implementierung in Verbindung mit Schiebeoperationen in einem kombinierten Gleitkomma-Multiplizierer-Addierer eines hochleistungsfähigen Mikroprozessors. Das zeitlich selbstgesteuerte Übertragungssystem ist wie folgt aufgebaut. Ein Codierer codiert einen ersten und zweiten Datenoperanden, die jeweils auf einen getrennten jeweiligen ersten und zweiten Satz von Logikwegen definiert sind, und auf den gleichen dritten Satz von Logikwegen durch Ändern des Codierschemas. Der erste und der zweite Datenoperand weisen einen mathematischen Bezug auf, und ermöglichen dadurch diesen Neucodierprozeß. Eine Vorrichtung, beispielsweise eine Schiebevorrichtung, ein Bus-Netzwerk, ein Multiplexer oder ein Puffer verarbeitet die ersten und zweiten Daten getrennt, zeitlich aufeinanderfolgend und auf eine zeitlich selbstgesteuerte Weise, und sendet die verarbeiteten ersten und zweiten Daten auf einen vierten Satz von Logikwegen. Ein Decodierer empfängt die verarbeiteten ersten und zweiten Daten aufeinanderfolgend von ...
Description
Die vorliegende Erfindung bezieht sich allgemein auf digi
tale Schaltungen und Prozessoren, und insbesondere auf ein
zeitlich selbstgesteuertes Übertragungssystem und Verfahren
zum wirksamen Übertragen von Mehrfachdatensätzen durch her
kömmliche digitale Schaltungshardware auf zeitlich selbst
gesteuerte Weise, um die Hardwareerfordernisse zu minimie
ren. Obwohl das zeitlich selbstgesteuerte Übertragungssys
tem und -verfahren nicht auf diese bestimmte Anwendung be
schränkt sind, sind sie besonders geeignet für die Imple
mentierung in Verbindung mit Schiebeoperationen bei einem
kombinierten Gleitkomma (floating point = FP) -
Multiplizierer-Addierer eines hochleistungsfähigen Mikro
prozessors.
Momentan werden viele arithmetische Operationen in vorlie
genden Implementationen von Mikroprozessoren durch Verwen
den eines integrierten Gleitkomma- (floating point = FP-)prozessors
beschleunigt, der FP-Berechnungen implemen
tiert, (d. h. Berechnungen, die Operationen mit Ausdrücken
mit einem Festkommateil und einem Exponenten umfassen, wo
bei der Wert jedes Ausdrucks gleich ist wie der Festkomma
anteil derselben multipliziert mit 2Exponent), typischerweise
bei sehr hohen Zahlen. Diese FP-Prozessoren können einen
kombinierten Multiplizierer-Addierer umfassen, um die Leis
tungsfähigkeit von FP-Operationen zu erhöhen.
Kombinierte Multiplizierer-Addierer sind in der Technik
wohl bekannt. Bei einem typischen kombinierten Multiplizie
rer-Addierer werden zwei Operanden, beispielsweise A und B,
miteinander multipliziert, und mit einem anderen Operanden
C multipliziert, so daß das Ergebnis R = A.B + C oder das Er
gebnis R = A.B - C ist. Allgemein werden in der Schaltungsan
ordnung die Operanden A und B zuerst miteinander multipli
ziert, während der andere Operand C geschoben wird, und
dann wird das Produkt aus A und B zu dem geschobenen C ad
diert. Danach wird die Summe durch eine Schiebeoperation
normiert, und schließlich wird die geschobene Summe gerun
det.
Wie bei vielen FP-Operationen ist es regelmäßig erforder
lich, daß ein Ergebnis einer FP-Operation gerundet wird.
IEEE und andere Industriestandards spezifizieren unter
schiedliche Typen von Rundungsprozessen, beispielsweise
Runden auf Null, Runden auf den nächstliegenden Wert, Run
den auf negative Unendlichkeit und Runden auf positive Un
endlichkeit. Die Berechnung, ob die resultierende FP-Zahl
gerundet werden muß, und auch der Rundungsprozeß selber
können die Leistungsfähigkeit und Hardwarekomplexität des
kombinierten Multiplizierer-Addierers wesentlich und uner
wünscht behindern.
Das Ergebnis R wird in einer Form geliefert, die entweder
nicht-inkrementiert oder inkrementiert ist, um die Run
dungsanforderung zu erfüllen. Wenn beispielsweise eine Run
dungsanforderung Runden auf Null oder Runden auf negative
Unendlichkeit wäre, dann würde das nicht-inkrementierte Er
gebnis R ausgegeben werden. Wenn eine Rundungsanordnung
Runden auf positive Unendlichkeit wäre, dann würde das in
krementierte Ergebnis R ausgegeben werden. Wenn ferner die
Rundungsanforderung Runden auf den nächstliegenden Wert wä
re, dann würden entweder das inkrementierte oder das
nicht-inkrementierte Ergebnis R ausgegeben werden.
Um den Rundungs/Inkrementierungsprozeß genauer zu erklären,
betrachte man ein Beispiel eines kombinierten FP-
Multiplizierer-Addierers mit den in Fig. 1 gezeigten Run
dungsfähigkeiten, der allgemein mit dem Bezugszeichen 5 be
zeichnet ist. Der kombinierte Multiplizierer-Addierer 5 von
Fig. 1 ist derart entworfen, um bezüglich der Festkomma
teilabschnitte (Nicht-Exponentteil) der FP-Zahlen wirksam
zu sein. Wie im Stand der Technik gut bekannt, werden die
Exponentenabschnitte solcher FP-Zahlen getrennt von den
Festkommaanteilabschnitten verarbeitet, und der Einfachheit
halber wird solches Verarbeiten hier nicht beschrieben. Wie
in Fig. 1 gezeigt, umfaßt der kombinierte Multiplizierer-Addierer
5 einen Multiplizierer 11, der zwei Zahlen A, B
(jeweils beispielsweise 64 Bits) empfängt und multipli
ziert. Schiebeeinrichtung 12 schiebt den Operanden C um ei
nen vorbestimmten Wert, um denselben bezüglich dem Rechen
produkt von A und B zu normieren, und es demselben dadurch
zu ermöglichen, zu einem späteren Zeitpunkt mit dem Produkt
von A und B auf geeignete Weise kombiniert werden kann.
Die Summe- und Übertragausgangssignale (jeweils beispiels
weise 128 Bit) und das Ausgangssignal der Schiebeeinrich
tung 12 werden in den Übertragsicherungsaddierer 13 einge
geben, dessen Gestaltung und Betrieb in der Technik bekannt
sind. Die Summe- und Übertragdaten von dem Multiplizierer
11 werden jeweils als der Addend und Summand in den Über
tragsicherungsaddierer 13 eingegeben. Das Eingangssignal
von der Schiebeeinrichtung 12 wird angesehen als Übertrag
eingabe von einer weniger signifikanten Stufe des kombi
nierten FP-Multiplizierer-Addierers 5. Der Übertragsiche
rungsaddierer 13 erzeugt ein Summeausgangssignal und ein
Übertragausgangssignal. Sowohl das Summe- als auch das
Übertragausgangssignal werden in einen Übertragausbreitungs
addierer 14 und einen Führungsbitantizipierer (LBA = lea
ding bit anticipator) eingegeben. Der Übertragausbreitungs
addierer 14 kombiniert das Summe- und Übertragausgangssig
nal von dem Übertragsicherungsaddierer 13, um eine FP-Zahl
zu erzeugen, die in die Schiebeeinrichtung 16 eingegeben
wird. Die Gestaltung und der Betrieb eines Übertragausbrei
tungsaddierers sind in der Technik ebenfalls gut bekannt.
Der Führungsbitantizipierer 15 berechnet eine Schiebezahl,
die gleich ist wie die Anzahl der wesentlichen Bits, die
geschoben werden müssen, um die führenden Nullen in der FP-
Zahl, die durch den Übertragsicherungsaddierer 13 erzeugt
wird, auszulöschen. Der Führungsbitantizipierer 15 berech
net die Schiebezahl außerdem in eine bestimmte Richtung.
Dies wird durchgeführt, um die Normierung des Summe- und
Übertragausgangssignals des Übertragsicherungsaddierers 13,
für Addier-, Subtrahier-, Multiplizier- oder Dividieropera
tionen zu bestimmen. Ein Beispiel von einer von vielen mög
lichen Architekturen für den Führungsbitantizipierer 15 ist
im US-Patent Nr. 5,798,962 an Miller et al. beschrieben.
Die Schiebezahl, die durch den Führungsbitantizipierer 15
erzeugt wird, wird in die Schiebeeinrichtung 16 eingegeben.
Die Schiebeeinrichtung 16 führt dann eine Schiebeoperation
an der FP-Zahl aus. Die FP-Zahl wird um eine Anzahl von
Bits geschoben, die gleich ist wie die Schiebezahl, die
durch den Führungsbitantizipierer 15 erzeugt wird. Die
Schiebeeinrichtung 16 führt die Funktion des Schiebens der
FP-Zahl abwechselnd nach links oder rechts aus, wie es von
der Schiebezahl bestimmt wird. Dies löscht die führenden
Nullen der FP-Zahl (d. h. normiert die sich ergebende FP-
Zahl). Die sich ergebende normierte FP-Zahl wird in den In
krementierer 17, die Rundungslogik 18 und den Multiplexer
(MUX) 19 eingegeben.
Der Inkrementierer 17 inkrementiert die normierte FP-Zahl,
um eine inkrementierte normierte FP-Zahl zu liefern. Der
Inkrementierer 17 gibt die inkrementierte normierte FP-Zahl
in den Multiplexer 19 ein.
Die Rundungslogik 18 bestimmt, ob die normierte Zahl, die
von der Schiebeeinrichtung 16 ausgegeben wird, eine Rundung
erfordert, und bestimmt den Typ basierend auf der Untersu
chung von Schutz-, Rundungs- und Haftbits, die die mit dem
Ausgangssignal der Schiebeeinrichtung 16 zusammenhängen.
Die Rundungslogik 18 weist den MUX 19 an, entweder die
nicht-inkrementierte Zahl oder die inkrementierte Zahl aus
zuwählen für das endgültige Ausgangssignal von dem kombi
nierten FP-Multiplizierer-Addierer 5.
Ein Hauptproblem bei der Rundungsarchitektur für einen her
kömmlichen kombinierten FP-Multiplizierer-Addierer liegt
darin, daß es, bis die Zahl, die sich aus einer FP-
Operation ergibt, normiert ist, sehr schwierig, wenn nicht
sogar unmöglich ist, zu bestimmen, ob das normierte Ergeb
nis Rundung erfordert. Da das Inkrementieren eines Ergeb
nisses einer FP-Operation nach der Normierung ausgeführt
wird, wird zusätzliche Zeit benötigt, um die FP-Operation
abzuschließen. Ferner ist der Inkrementierer nachteilhaft,
da er viele unerwünschte Gateverzögerungen, d. h. mindes
tens log2 N Gateverzögerungen hinzufügen kann, wobei N die
Anzahl der Bits ist. Beide diese Probleme beeinträchtigen
die Leistungsfähigkeit des kombinierten
Multiplizierer-Addierers 5 wesentlich.
Daher besteht in der Industrie ein bisher nicht angegange
ner Bedarf nach einer Herangehensweise für die vorher er
wähnten Mängel und Unzulänglichkeiten, insbesondere für ei
nen Weg um das Runden oder Inkrementieren in einem
kombinierten Multiplizierer-Addierer 5 durchzuführen.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah
ren, ein System und einen Prozessor zu schaffen, so daß ei
ne Übertragung von Datenoperanden mit geringeren Hardware
anforderungen ermöglicht wird.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1,
einen Prozessor gemäß Anspruch 12, 24 und 25 und durch ein
System gemäß Anspruch 13 gelöst.
Die vorliegende Erfindung schafft ein zeitlich selbstge
steuertes Übertragungssystem und -verfahren um eine Mehr
zahl von Datenoperanden aufeinanderfolgend durch herkömmli
che digitale Vorrichtungen, beispielsweise eine Schiebeein
richtung, ein Bus-Netzwerk, einen Multiplexer (MUX), oder
einen Puffer, wirksam zu übertragen und zwar auf eine zeit
lich selbstgesteuerte Weise, um Hardwareerfordernisse zu
minimieren. Obwohl das zeitlich selbstgesteuerte
Übertragungssystem und -verfahren nicht auf diese spezielle Anwen
dung beschränkt sind, sind sie besonders geeignet für die
Implementierung in Verbindung mit Schiebeoperationen bei
einem kombinierten Gleitpunkt-Multiplizierer-Addierer eines
hochleistungsfähigen Mikroprozessors.
Bei der Architektur kann mindestens ein Ausführungsbeispiel
des zeitlich selbstgesteuerten Übertragungssystems wie
folgt aufgebaut sein. Ein Codierer codiert einen ersten und
einen zweiten Datenoperanden, die jeweils auf einen separa
ten jeweiligen ersten und zweiten Logikwegsatz definiert
sind, auf den gleichen dritten Logikwegsatz durch Ändern
des Codierschemas. Dieses Neu- bzw. Umcodierschema ist mög
lich, da der erste und zweite Datenoperand einen mathemati
schen Bezug aufweisen. Bei diesem Ausführungsbeispiel sind
der erste und der zweite Datenoperand jeweils auf zwei mo
notonen Logikwegen definiert, und der dritte Logikwegsatz
definiert jeden Operanden, zeitlich beabstandet, auf vier
monotonen Logikwegen. Bei diesem Implementationsbeispiel
unterscheiden sich die Werte der ersten und zweiten Daten
um nicht mehr als 1 Bit (wenn man die Werte X und Y an
nimmt, zeigen sie die folgende mathematische Beziehung zei
gen: X = Y oder X = Y-1). Es wird darauf hingewiesen, daß
auch andere Codierschemen und mathematische Beziehungen
möglich sind. Eine Vorrichtung, beispielsweise eine Schie
beeinrichtung, ein Bus-Netzwerk, ein Multiplexer, oder ein
Puffer verarbeitet die ersten und zweiten Daten getrennt,
aufeinanderfolgend zeitlich und auf eine zeitlich selbstge
steuerte Weise, und sendet die verarbeiteten ersten und
zweiten Daten auf einen vierten Satz von Logikwegen. Ein
Decodierer empfängt die verarbeiteten ersten und zweiten
Daten aufeinanderfolgend von der Vorrichtung auf dem vier
ten Satz von Logikwegen. Der Decodierer decodiert die ers
ten und zweiten Daten auf den jeweiligen fünften und sechs
ten Satz von Logikwegen, die getrennt sind und eine Codie
rung aufweisen, die dem ersten und dem zweiten Originalsatz
von Logikwegen entspricht.
Die vorliegende Erfindung kann auch so gesehen werden, daß
sie eine oder mehrere Verfahren schafft. Ein solches Ver
fahren kann grob beschrieben werden als ein Prozeß (bei
spielsweise für einen kombinierten FP-Multiplizierer-Addierer)
mit den folgenden Schritten: (a) Codieren erster
und zweiter Daten, die je definiert sind auf einem jeweili
gen separaten ersten und zweiten Satz von Logikwegen mit
einem gemeinsamen Codierschema, auf den gleichen dritten
Satz von Logikwegen, wobei der dritte Satz von Logikwegen
ein unterschiedliches Codierschema hat als der erste und
der zweite Satz von Logikwegen; (b) getrenntes Verarbeiten
der ersten und zweiten Daten, aufeinanderfolgend zeitlich
und auf zeitlich selbstgesteuerte Weise, während eine
Eins-zu-eins-Entsprechung zwischen Eingangscodierern und Aus
gangscodierern der ersten und zweiten Daten erhalten wird;
(c) Senden der verarbeiteten ersten und zweiten Daten auf
einen vierten Satz von Logikwegen; und (d) Decodieren der
ersten und zweiten Daten von dem vierten Satz von Logikwe
gen auf den jeweiligen fünften und sechsten Satz von Logik
wegen, die getrennt sind und hinsichtlich des Codierschemas
dem ersten und zweiten Satz von Logikwegen entsprechen.
Andere Systeme, Verfahren, Merkmale und Vorteile der vor
liegenden Erfindung werden für einen Fachmann auf diesem
Gebiet bei dem Untersuchen der folgenden Zeichnungen und
detaillierten Beschreibung offensichtlich werden. Es ist
beabsichtigt, daß alle solche zusätzlichen Systeme, Verfah
ren, Merkmale und Vorteile hierin innerhalb des Schutzbe
reichs der vorliegenden Erfindung enthalten sind.
Die Erfindung kann besser verstanden werden mit Bezug auf
die folgenden Zeichnungen. Die Komponenten in den Zeichnun
gen sind nicht notwendigerweise maßstabsgerecht, der Schwer
punkt wurde statt dessen auf die genaue Darstellung der
Prinzipien der vorliegenden Erfindung gelegt. Darüber hin
aus zeigen gleiche Bezugszeichen in den Zeichnungen ent
sprechende Teile in den verschiedenen Ansichten.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines kombinierten Multiplizie
rer-Addierers nach dem Stand der Technik, der
unerwünschterweise ein Rundungssystem auf der Ba
sis der Nachinkrementierung implementiert.
Fig. 2 ein Blockdiagramm eines Mikroprozessors, der ein
auswahlbasiertes Rundungssystem verwendet.
Fig. 3 ein Blockdiagramm eines ersten Ausführungsbei
spiels eines kombinierten FP-Multiplizierer-Addierers,
der das auswahlbasierte Rundungssystem
von Fig. 2 verwendet.
Fig. 4A ein mathematisches Diagramm, das einen idealen
Inkrementierungsprozeß zeigt.
Fig. 4B ein mathematisches Diagramm, das einen ungefähren
Inkrementierungsprozeß zeigt, der gemeinsam aus
geführt wird durch den Führungsbitantizipierer
und einen Übertragausbreitungsaddierer, verbunden
mit dem auswahlbasierten Rundungssystem von Fig.
2 und 3.
Fig. 4C ein Blockdiagramm eines niedrigstwertigen
Bit- (LSB = least significant bit) Befestigungs-
Mechanismus von Fig. 3.
Fig. 4D eine Wahrheitstabelle, die die Logik zeigt, die
durch den LSB-Befestigungsmechanismus von den
Fig. 3 und 4C implementiert wurde.
Fig. 5 ein Blockdiagramm eines zweiten Ausführungsbei
spiels eines kombinierten FP-Multiplizierer-Addierers,
der das auswahlbasierte Rundungssystem
von Fig. 2 und das zeitlich selbstgesteuerte
Übertragungssystem der vorliegenden Erfindung ver
wendet.
Fig. 6 ein Blockdiagramm des zeitlich selbstgesteuerten
Übertragungssystems von Fig. 5.
Fig. 7A ein Blockdiagramm eines Codierers von Fig. 6.
Fig. 7B ein Schaltungsdiagramm des Codierers der Fig. 6
und 7A.
Fig. 7C eine Wahrheitstabelle, die die statische Logik
übersetzung zeigt, die bei jedem Codierer der
Fig. 6, 7A und 7B auftritt.
Fig. 7D eine Wahrheitstabelle, die die dynamische Logik
übersetzung zeigt, die entlang des zeitlich
selbstgesteuerten Übertragungssystems von Fig. 6
auftritt.
Fig. 8 ein Blockdiagramm einer Schiebeeinrichtung von
Fig. 6.
Fig. 9 ein Blockdiagramm einer zeitlich selbstgesteuer
ten Latchschaltung von Fig. 6.
Fig. 10 ein Blockdiagramm eines Decodierers von Fig. 6.
Fig. 2 ist ein Blockdiagramm eines Prozessors 21 mit einem
kombinierten Multiplizierer-Addierer 39, der das zeitlich
selbstgesteuerte Übertragungssystem 100 (Fig. 5) der vor
liegenden Erfindung verwendet, innerhalb eines auswahlba
sierten Rundungssystems 20 des kombinierten
Multiplizierer-Addierers 39. Mit Ausnahme des auswahlbasierten
Rundungssystems 20 und des zeitlich selbstgesteuerten
Übertragungssystems 100 sind alle der folgenden Elemente in
der Technik gut bekannt und verstanden, und der Einfachheit
halber wird nur eine kurze Erklärung ihrer zugeordneten
Funktionen be
schrieben. Der Prozessoren 21 kann beispielsweise ein
Mikroprozessormikrochip sein, der gemäß gut bekannter Herstel
lungstechniken hergestellt ist, aber er ist nicht darauf
beschränkt. Wie in Fig. 2 dargestellt, umfaßt der Prozessor
21 in der Architektur eine Busschnittstelle 23, die dafür
bestimmt ist, Adressen 24a und Daten 24b zu senden. Eine
Lade/Speicher-Einheit 26 führt die Funktion des Verwaltens
von Datenaustausch zwischen einem entfernten Gerät (der
Einfachheit halber nicht gezeigt; z. B. Speicher, ein Ein
gangs/Ausgangs (I/O - input/output) -Gerät; usw.) und dem
Prozessor 21. In anderen Worten, die Lade/Speicher-Einheit
26 ist entworfen, um Lade- und Speichervorgänge von Daten
in einer Ganzzahl- Registerdatei 29, einer FP-Registerdatei
33, und der entfernten Vorrichtung durchzuführen. Eine
arithmetische Logikeinheit (arithmetic logic unit = ALU) 35
greift auf (liest von oder schreibt auf) die
Ganzzahl-Registerdatei 29 zu und führt mathematische Operationen an
Ganzzahlen durch. Eine FP-Multiplizierer-Summierer-Einheit
(FP multiply accumulate unit = FMAC) 38 greift auf die FP-
Registerdatei 33 zu und führt mathematische Operationen an
FP-Zahlen durch. Die FMAC 38 kann einen oder mehrere kombi
nierte Multiplizierer-Addierer 39 verwenden, welche das
zeitlich selbstgesteuerte Übertragungssystem 100 der vor
liegenden Erfindung implementieren können.
In Fig. 3 wird ein erstes Ausführungsbeispiel (ein mögli
ches, nicht beschränkendes Beispiel) eines kombinierten FP-
Multiplizierer-Addierers dargestellt, der allgemein durch
Bezugszeichen 50 bezeichnet ist, und der ein auswahlbasier
tes Rundungssystem 20 (Fig. 2) verwendet. Der kombinierte
Multiplizierer-Addierer 50 (als auch das zweite Ausfüh
rungsbeispiel in Fig. 4) ist entwickelt, um auf den Fest
kommaanteilabschnitten (Nicht-Exponententeil) der FP-Zahlen
innerhalb eines Prozessors oder einer anderen digitalen
Schaltung wirksam zu sein. Anders als beim zweiten Ausfüh
rungsbeispiel (Fig. 5) verwendet dieses erste Ausführungs
beispiel nicht das zeitlich selbstgesteuerte
Übertragungssystem 100, es wird aber gezeigt und beschrieben, um die
Anwendung des zeitlich selbstgesteuerten Übertragungssys
tems 100 im zweiten Ausführungsbeispiel (Fig. 5) deutlich
darzustellen.
Es wird darauf hingewiesen, daß eine verwandte mitanhängige
US-Patentanmeldung mit dem Titel "Selection Based Rounding
System Ans Method For Floating Operations", mit Seriennr.
09/XXX,XXX und Anwaltdokumentnr. 10971153, die am selben
Datum eingereicht wurde und hierin durch Bezugnahme aufge
nommen ist. Die vorige Anmeldung bezieht sich unter anderem
auf das breite Konzept des auswahlbasierten Rundungssystems
20.
Bei dem kombinierten Multiplizierer-Addierer 50 werden zwei
Operanden, beispielsweise A und B, miteinander multipli
ziert und mit einem anderen Operanden C addiert, so daß das
Ergebnis R = A.B + C, oder alternativ das Ergebnis R = A.B - C ist.
Die Subtraktion von C wird im wesentlichen durchgeführt,
indem das 2-er-Komplement von C genommen und dasselbe zu
dem Produkt von A.B addiert wird. Darüber hinaus wird das
Ergebnis R in einer Form geliefert, die nicht-inkrementiert
oder inkrementiert ist, um eine Rundungsanforderung zu er
füllen. Wenn es beispielsweise eine Rundungsanforderung von
entweder Runden auf Null oder Runden auf negative Unend
lichkeit gibt, dann würde das nicht-inkrementierte Ergebnis
ausgegeben werden. Wenn es eine Rundungsanforderung von
Runden auf positive Unendlichkeit gäbe, dann würde das in
krementierte Ergebnis ausgegeben werden. Wenn es schließ
lich eine Rundungsanforderung von Runden auf den nächstlie
genden Wert gäbe, dann würde entweder das
nicht-inkrementierte Ergebnis oder das inkrementierte Ergebnis
ausgegeben werden.
Für leichtes Vergleichen der Leistungsfähigkeit des kombi
nierten Multiplizierer-Addierers 50 in Fig. 3 mit dem kom
binierten Multiplizierer-Addierer 5 (Fig. 1) des Stands der
Technik wird der kombinierte Multiplizierer-Addierer 50 in
Zeitgebungsabschnitte aufgetrennt oder unterteilt, die Lo
gikoperationen umfassen, die ungefähr während der gleichen
Taktperiode auftreten. Im wesentlichen entspricht jeder der
Zeitgebungsabschnitte einer oder mehrerer logischer Gate
verzögerungen. Wie aus Fig. 3 ersichtlich, ist der kombi
nierte FP-Multiplizierer-Addierer 50 in fünf Taktperioden
aufgetrennt oder aufgeteilt. In den Fällen, in denen eine
Mehrzahl von Logik innerhalb der gleichen Taktperiode
stattfindet, werden die Logikoperationen ungefähr gleich
zeitig ausgeführt. Wie durch Vergleichen der Zeitgebungsab
schnitte des Addierers 50 von Fig. 3, der das auswahlba
sierte Rundungssystem 20 (Fig. 2) verwendet, mit den Zeit
gebungsabschnitten des herkömmlichen kombinierten Multipli
zierer-Addierers 5 (Fig. 1) ersichtlich ist, ist der kombi
nierte Multiplizierer-Addierer 50 der vorliegenden Erfin
dung viel schneller als der herkömmliche Addierer 5. In
Fig. 3 gibt es weniger Zeitgebungsabschnitte als in Fig. 1.
In der Tat beträgt die Geschwindigkeitssteigerung hinsicht
lich der Gateverzögerungen ungefähr 5 bis 6 Gateverzögerun
gen, was bei der Prozessorgestaltung wesentlich ist.
Wie in Fig. 3 ferner gezeigt, umfaßt der kombinierte Mul
tiplizierer-Addierer 50 einen Multiplizierer 51, der zwei
Zahlen A, B, (jeweils beispielsweise 64 Bits) empfängt und
multipliziert. Die Schiebeeinrichtung 52 schiebt den Ope
randen C um einen vorbestimmten Wert, um denselben bezüg
lich des mathematischen Produkts von A und B zu normieren,
und es dadurch zu ermöglichen, daß es mit dem Produkt von A
und B zu einem späteren Zeitpunkt auf geeignete Weise kom
biniert wird.
Die Summe- und Übertragausgangssignale (jeweils beispiels
weise 128 Bits) des Multiplizierers 51 und die Ausgangssig
nale der Schiebeeinrichtung 52 werden in den Übertragsiche
rungsaddierer 53 eingegeben, dessen Entwicklung und Opera
tion im Stand der Technik gut bekannt ist. Die Summe- und
Übertragdaten von dem Multiplizierer 51 werden jeweils als
Addend und Summand in den Übertragsicherungsaddierer 53
eingegeben. Das Eingangssignal von der Schiebeeinrichtung
52 wird angesehen als Übertrageingabe von einer weniger si
gnifikanten Stufe des kombinierten FP-Multiplizierer-Addierers
50. Der Übertragsicherungsaddierer 53 erzeugt ein
Summeausgangssignal und ein Übertragausgangssignal. Sowohl
das Summe- als auch das Übertragausgangssignal werden in
einen Übertragausbreitungsaddierer und einen Führungsbitan
tizipierer 55 eingegeben. Der Übertragausbreitungsaddierer
54 kombiniert die Summe- und Übertragausgangssignale von
dem Übertragsicherungsaddierer 53, um eine FP-Zahl zu er
zeugen, die in die Schiebeeinrichtung 61 eingegeben wird.
Der Führungsbitantizipierer 55 berechnet unter anderem eine
Schiebezahl, die gleich ist wie die Anzahl der wesentlichen
Bits, die geschoben werden müssen, um die führenden Nullen
in der FP-Zahl, die durch den Übertragsicherungsaddierer 53
erzeugt wird, auszulöschen. Der Führungsbitantizipierer 55
berechnet die Schiebezahl außerdem in eine bestimmte Rich
tung. Dies wird durchgeführt, um die Summe- und Übertrag
ausgangssignale des Übertragsicherungsaddierers 53 für Ad
dier-, Subtrahier-, Multiplizier- oder Dividieroperationen
zu normieren. Ein Beispiel von einer der vielen Architektu
ren für den Führungsbitantizipierer 15 in Fig. 13 ist in
dem US-Patent Nr. 5,798,952 an Miller u. a., das hierin
durch Bezugnahme aufgenommen ist, beschrieben.
Der Führungsbitantizipierer 55 kann außerdem berechnen, wo
sich das höchstwertigste Bit (MSB = most significant bit)
in der FP-Zahl befindet, die durch den Übertragsicherungs
addierer 53 erzeugt wird. So bald die Position des MSB be
stimmt ist, ist es möglich, die Position des LSB auf ein
Bit zu schätzen, da die Bitbreite der Vorrichtung bekannt
ist und da es eine bekannte Beziehung zwischen der
nicht-inkrementierten Zahl und der inkrementierten Zahl (die in
krementierte Zahl = nicht-inkrementierte Zahl oder
nicht-inkrementierte Zahl ± 1) gibt. Die Bitbreite der Vorrich
tung kann jede passende Größe n haben, beispielsweise 4, 8,
16, 32, 64, 128, 256, 512, usw. Bei den bevorzugten
Ausführungsbeispielen beträgt die Bitbreite 64 Bits. In den be
vorzugten Ausführungsbeispielen wird die Schiebung auf
(n-1) oder 63 Bits geschätzt, und diese Schiebung ist exakt
oder bis auf ein Bit exakt.
Sobald die Position des LSB geschätzt wurde, ist es durch
Addieren von 1 zu der geschätzten LSB der FP-Zahl dann mög
lich, eine ungefähre inkrementierte FP-Zahl zu berechnen.
Wie in Fig. 4A dargestellt, nimmt man als Beispiel an, daß
die Zahl SUM vom Übertragsicherungsaddierer 53 ausgegeben
wird und die folgende binäre Sequenz zeigt: . . .001011. . .
Um die Zahl zu runden, wird sie um 1 in der LSB Position
inkrementiert. Daher wird ein inkrementiertes Wort
INC = . . .000010. . . addiert mit der SUM = . . .001011. . . um die in
krementierte FP-Zahl SUM+1 = . . .00110x. . . zu erzeugen, wo
bei x entweder 1 oder 0 sein könnte.
Die LSB-Position ist jedoch lediglich eine Schätzung. Wie
in Fig. 4B dargestellt, kann die geschätzte LSB-Position
exakt sein oder um ein Bit geschoben, und daher kann es be
züglich der inkrementierten Zahl SUM+1 um Δ = 1, 2, 3, oder
4 geschoben sein.
Gemäß erneuter Bezugnahme auf Fig. 3, sendet den Führungs
bitantizipierer 55 ein LBA-Wort mit einem Bit mit einem bi
nären logischen Zustand 1, an den Übertragausbreitungsad
dierer 56, der um 63 Bits von der Bitposition der identifi
zierten MSB der Zahl vom Übertragsicherungsaddierer 53 nach
rechts geschoben wird. Vorzugsweise ist die Schiebung im
plizit ausgeführt durch eine fest verdrahtete Verbindung
(d. h. Ausgangsbitverbindung j der Vorgriffseinrichtung 55,
verbunden mit der Eingangsbitverbindung j-63 des Addierers
56), zwischen dem Führungsbitantizipierer 55 und dem Über
tragausbreitungsaddierer 56.
Der Übertragausbreitungsaddierer 56 berechnet eine ungefäh
re inkrementierte Version der FP-Zahl, die von dem Über
tragsicherungsaddierer 53 erzeugt wird durch Addieren der 1
von dem Führungsbitantizipierer 55 mit den Summe- und Über
tragausgängen von dem Übertragsicherungsaddierer 53. Dies
schafft ein Aufrunden oder Inkrementieren der FP-Zahl.
Sowohl die nicht-inkrementierte als auch die ungefähre in
krementierte FP-Zahl werden jeweils für Normierung in die
Schiebeeinrichtung 61 und 62 eingegeben. Die durch den Füh
rungsbitantizipierer 55 berechnete Schiebezahl ist gleich
zu den Bits, die geschoben werden müssen, um die führenden
Nullen in der FP-Zahl, die durch den Übertragsicherungsad
dierer 53 erzeugt wird, zu eliminieren. Die Schiebeeinrich
tungen 61, 62 normieren die jeweiligen nicht-inkrementierten
und ungefähren inkrementierten FP-Zahlen
durch Schieben der FP-Zahlen nach rechts oder links um die
Schiebezahl. Die Schiebevorgänge normieren die Zahlen auf
innerhalb ein Bit-Genauigkeit.
Die normierte nicht-inkrementierte FP-Zahl von der Schiebe
einrichtung 61 wird danach in einen MUX 65 eingegeben.
Die normierte ungefähre inkrementierte FP-Zahl von der
Schiebeeinrichtung 62 hat ihre beiden LSBs abgekürzt, da
diese beiden Bits als Ergebnis der vorher beschrieben LSB-
Schätzung (und der ungefähren Inkrementierung) ungenau sein
können, und die abgekürzte Zahl an den LSB-
Befestigungsmechanismus 64 weitergeleitet wird.
Der LSB-Befestigungsmechanismus 64 ist wie in Fig. 4C ge
zeigt aufgebaut. Der LSB-Befestigungsmechanismus 64 umfaßt
einen Multiplexer (MUX) 66, der durch ein ausgewähltes Sig
nal gesteuert wird, das durch eine Korrektorlogik 67 er
zeugt wird. Die Korrektorlogik 67 ist konfiguriert, um die
Logik zu implementieren, die durch die Wahrheitstabelle von
Fig. 4D definiert wird. Wie in Fig. 4C gezeigt, empfängt
der MUX 66 die Teil-SUM [63 : 2] der normierten
nicht-inkrementierten FP-Zahl-SUM und die Teil-SUM + Δ[63 : 2] der
ungefähren normierten inkrementierten FP-Zahl SUM + Δ und
gibt die Teil-SUM + 1[63 : 2] der genauen normierten
inkrementierten FP-Zahl SUM + 1 aus. Die Korrektorlogik 67 emp
fängt die Teil-SUM [1 : 0] und gibt die SUM + 1[1 : 0] aus.
Schließlich wird SUM + 1[63 : 2] mit SUM + 1[1 : 0] kombiniert,
um eine genaue normierte inkrementierte FP-Zahl SUM + 1[63 : 0]
für die Ausgabe an den MUX 65 zu erhalten (Fig. 3).
Daher wirken der LSB-Befestigungsmechanismus 64 und die
Korrektorlogik 67 wie folgt, unter Bezugnahme sowohl auf
Fig. 4C als auch Fig. 4D. Falls zunächst die beiden LSB
oder SUM [1 : 0] der normierten nicht-inkrementierten FP-Zahl
SUM jeweils "00" sind, dann gibt die Korrektorlogik 67 ein
Auswahlsignal von "0" an den MUX 66 aus, wodurch bewirkt
wird, daß eine Auswahl von SUM [63 : 2] als SUM + 1[63 : 2]
ausgegeben wird, und außerdem gibt die Korrektorlogik 67
ebenfalls "01" als die Bits SUM + 1[1 : 0] aus, die mit
SUM + 1[63 : 2] kombiniert werden, um SUM + 1[63 : 0] zu erzeugen.
Falls zweitens die beiden LSB oder SUM [1 : 0] der normierten
nicht-inkrementierten FP-Zahl SUM jeweils "01" sind, dann
gibt die Korrektorlogik 67 ein Auswahlsignal von "0" an den
MUX 66 aus, wodurch bewirkt wird, daß eine Auswahl von SUM
[63 : 2] als SUM + 1[63 : 2] ausgegeben wird, und ferner gibt
die Korrektorlogik 67 außerdem "10" als die Bits SUM + 1[1 : 0]
aus, die mit SUM + 1[63 : 2] kombiniert werden, um SUM + 1[63 : 0]
zu erzeugen. Falls drittens die beiden LSB oder
SUM [1 : 0] der normierten nicht-inkrementierten FP-Zahl SUM
jeweils "10" sind, dann gibt die Korrektorlogik 67 ein Aus
wahlsignal von "0" an den MUX 66 aus, wodurch bewirkt wird,
daß eine Auswahl von SUM [63 : 2] als SUM + 1[63 : 2] ausgege
ben wird, und ferner gibt die Korrektorlogik 67 außerdem
"11" als die Bits SUM + 1[1 : 0] aus, die mit SUM + 1[63 : 2]
kombiniert werden, um SUM + 1[63 : 0] zu erzeugen. Falls
schließlich die beiden LSB oder SUM [1 : 0] der normierten
nicht-inkrementierten FP-Zahl SUM jeweils "11" sind, dann
gibt die Korrektorlogik 67 ein Auswahlsignal von "0" an den
MUX 66 aus, wodurch bewirkt wird, daß eine Auswahl von SUM
[63 : 2] als SUM + 1[63 : 2] ausgegeben wird, und ferner gibt
die Korrektorlogik 67 ebenfalls "00" als die
Bits SUM + 1[1 : 0] aus, die mit SUM + 1[63 : 2] kombiniert werden, um
SUM + 1[63 : 0] zu erzeugen.
Bei erneuter Bezugnahme auf Fig. 3, wird die sich ergebende
normierte nicht-inkrementierte FP-Zahl SUM, die durch
Schiebeeinrichtung 61 erzeugt wird, in eine Rundungslogik
63 eingegeben. Die Rundungslogik 63 bestimmt, ob die nor
mierte, nicht-inkrementierte Zahl, die von der Schiebeein
richtung 16 ausgegeben wird, Rundung erfordert, und legt
den Rundungstyp (beispielsweise Runden auf Null, Runden auf
den nächstliegenden Wert, Runden auf negative Unendlichkeit
-∞, und Runden auf positive Unendlichkeit +∞) fest, basie
rend auf der Untersuchung der Schutz-, Rundungs- und Haft
bits, die mit dem Ausgangssignal von der Schiebeeinrichtung
61 Verbunden sind. Die Rundungslogik 63 weist den MUX 65
an, entweder die normierte nicht-inkrementierte FP-Zahl SUM
oder die normierte inkrementierte FP-Zahl SUM + 1 auszuwäh
len, um von dem kombinierten FP-Multiplizierer-Addierer 50
als Ergebnis R ausgegeben zu werden.
Fig. 5 ist ein Blockdiagramm eines zweiten Ausführungsbei
spiels eines kombinierten FP-Multiplizierer-Addierers, der
allgemein mit Bezugszeichen 70 bezeichnet ist und der das
auswahlbasierte Rundungssystem 20 (Fig. 2) und im wesentli
chen das zeitlich selbstgesteuerte Übertragungssystem 100
der vorliegenden Erfindung verwendet. Der kombinierte FP-
Multiplizierer-Addierer 70 ist in Zeitgebungsabschnitte
aufgetrennt oder aufgeteilt, die Logikoperationen umfassen,
die ungefähr während der gleichen Taktperiode auftreten.
Wie aus Fig. 5 ersichtlich, ist der kombinierte FP-
Multiplizierer-Addierer 70 in fünf Taktperioden aufgeteilt,
was den Addierer 70 schneller macht als den herkömmlichen
kombinierten Multiplizierer-Addierer 5 (Fig. 1), und unge
fähr gleich schnell wie das erste Ausführungsbeispiel des
kombinierten Multiplizierer-Addierers (Fig. 3). Das zweite
Ausführungsbeispiel hat jedoch den wesentlichen Vorteil von
weniger Hardware als das erste Ausführungsbeispiel, wie es
hier nachfolgend beschrieben wird.
Die Funktionalität des Multiplizierers 71, der Schiebeein
richtung 72, des Übertragsicherungsaddierers 73, des Über
tragausbreitungsaddierers 74, des Führungsbitantizipierers
75 und des Übertragausbreitungsaddierers 76 von Fig. 5 sind
alle im wesentlichen gleich wie die entsprechenden Elemente
51-56, die oben in Bezug auf das erste Ausführungsbeispiel
von Fig. 3 beschrieben werden. Der Hauptunterschied zwi
schen dem ersten Ausführungsbeispiel und dem zweiten Aus
führungsbeispiel liegt darin, daß das zweite Ausführungs
beispiel ein zeitlich selbstgesteuertes Übertragungssystem
100 verwendet, das sowohl die inkrementierte als auch die
nicht-inkrementierte FP-Zahlen in einem gemeinsam verwende
ten Übertragungsweg normiert, der eine normierende Schiebe
einrichtung 82 umfaßt, und der Weg ist selbstgetaktet.
Folglich spart das zweite Ausführungsbeispiel die Kosten
einer Schiebeeinrichtung ein.
Das zeitlich selbstgesteuerte Übertragungssystem 100 des
kombinierten Multiplizierer-Addierers 70 gemäß dem zweiten
Ausführungsbeispiel verwendet normalerweise folgendes: ei
nen Codierer 80, eine Schiebeeinrichtung 82 und einen Deco
dierer 90. Der Codierer 80 verschachtelt im wesentlichen
die nicht-inkrementierte FP-Zahl SUM und die ungefähre in
krementierte FP-Zahl SUM + Δ entlang dem gemeinsamen Weg
81. Die geteilte Schiebeeinrichtung 82 ist mit dem Codierer
80 verbunden, zum aufeinanderfolgenden Empfangen der
nicht-inkrementierten FP-Zahl SUM und der ungefähren inkremen
tierten FP-Zahl SUM + Δ, und zum aufeinanderfolgenden Nor
mieren derselben. Der Decoder 90 entschachtelt im wesentli
chen die normierten inkrementierten und nicht-inkrementierten
FP-Zahlen von dem gemeinsamen Verarbei
tungsweg.
Die Schiebeeinrichtung 82 schiebt die codierten Daten um
die erforderlichen Bits nach links oder die erforderlichen
Bits nach rechts. Die Schiebeeinrichtung 82 wird durch das
Eingangssignal 78 von dem Führungsbitantizipierer 75 über
die erforderliche Zahl von Bits, um die die codierten Zah
len verschoben werden, und die Richtung der Schiebung ange
wiesen. Die normierte codierte Zahl, die von der Schiebe
einrichtung 82 ausgegeben wird, wird dann in den Decodierer
90 eingegeben.
Die Funktionalität der Rundungslogik 93, des LSB-
Befestigungsmechanismus 94 und des MUX 95 sind im wesentli
chen gleich wie die entsprechenden Elemente 63-65, die mit
Bezugnahme auf das erste Ausführungsbeispiel von Fig. 3
oben beschrieben sind.
Die Architektur, Funktionalität und der Betrieb des zeit
lich selbstgesteuerten Übertragungssystems 100 von Fig. 5
werden nun detailliert beschrieben. Das zeitlich selbstge
steuerte Übertragungssystem und Verfahren der vorliegenden
Erfindung können in Verbindung mit jedem Gerät, Mechanismus
oder Vorrichtung implementiert werden, beispielsweise, aber
nicht begrenzt auf, eine Schiebeeinrichtung, Bus-Netzwerk,
MUX, Puffer, usw., bei denen es im wesentlichen eine Eins-
zu-eins-Entsprechung zwischen Eingangscodierung und
Ausgangscodierung der verarbeiteten Daten gibt. Darüber
hinaus kann das zeitlich selbstgesteuerte Übertragungssy
stem 100 in jeden Prozessor (z. B. einen chipbasierten
Mikroprozessor, usw.) oder eine andere geeignete digitale
Schaltung implementiert werden, von denen wiederum jede in
einen beliebigen Computer (z. B. einen Personalcomputer,
Arbeitsstation, usw.) oder in ein anderes geeignetes
digitales Gerät implementiert werden kann.
In Fig. 6 wird ein Beispiel (eine nicht-beschränkende Imp
lementierung, auch andere sind möglich) einer möglichen und
bevorzugten Systemarchitektur für das zeitlich selbstge
steuerte Übertragungssystem 100 (Fig. 5) dargestellt. Wie
in Fig. 6 gezeigt, kann das zeitlich selbstgesteuerte Über
tragungssystem wie folgt aufgebaut sein.
Im allgemeinen codieren bei dem bevorzugten Ausführungsbei
spiel die Codierer 101A, 101B erste Daten Xn. . .X1X0 bzw.
zweite Daten Yn. . .Y1Y0 unter Verwendung einer zeitlich
selbstgesteuerten dynamischen (vorgeladenen) Logik, wie
beispielsweise, aber nicht beschränkt auf, eine dynamischer
Mausefallelogik oder dynamischer Dominologik. In Zusammen
hang mit diesem Dokument bedeutet "zeitlich selbstgesteuert",
daß Logikauswertungen hinsichtlich der (unabhängig
von der) Zeitgebung asynchron auftreten. Der logische Zu
stand jedes Bit jedes eingegebenen Worts X, Y wird gemein
sam durch H-, L-Verbindungen definiert, die einem logisch
hohen Wert (1) bzw. einem logisch tiefen Wert (0) entspre
chen. Darüber hinaus ist ein monotoner Fortschritt imple
mentiert, so daß der logische Zustand jedes Bits definiert
wird, ob es einen niedrig (0) zu hoch (1) Übergang auf je
der der H- oder L-Verbindungen gab oder nicht. Es ist zu
beachten, daß das Codierschema mehr sein kann als ein Zwei
fachführungsschema, wie z. B. ein n-Führungscodierschema,
wobei n 3 oder höher ist.
Die Codierer 101a, 101b definieren die Codierung der Einga
ben (Fig. 7C) neu bzw. um durch Übersetzen derselben von
einem 2-Bit/4-Leitungscodierschema, bei dem jedes Bit durch
zwei Leitungen dadurch definiert ist, ob eine der beiden
von niedrig zu hoch übergeht, in ein 2-Bit/4-Leitungscodierschema,
bei dem zwei Bits gemeinsam dadurch
definiert werden, ob eine der Leitungen von niedrig zu hoch
übergeht. Als Beispiel ist der logische Zustand des Bits X0
des ersten Operanden anfänglich durch den Satz von X0(H)
und X0(L) definiert, und der logische Zustand des benach
barten Bits X1 in dem selben Operanden ist durch den Satz
von X1(H) und X1(L) definiert. Nach der Codierung durch die
Codierer 101A werden sowohl X1 als auch X0 durch den Satz
von logischen Werten E3, D2, E1, E0 definiert, der auf der
Verbindung 102A übertragen wird. Es ist darauf hinzuweisen,
daß die vorhergehende Übersetzung bei der Codierung auf al
len 64 Bits des Operanden X als auch des Operanden Y durch
geführt wird.
Die Codierer 101A, 101B sind beide periodisch vorgeladen
durch Zeitgeber 109, der entworfen ist, um die Dynamiklogik
während einer halben Taktperiode (Zyklus) vorzuladen, und
Logikauswertung (und -entladung) während der anderen halben
Logikperiode zu erlauben. Das Zeitgebungssignal zum Treiben
des Codierers 101B ist durch die Verzögerungsschaltung 108
gelegt. Diese Verzögerung ermöglicht, daß der erste Daten
wert durch den Codierer 101A codiert wird. Die Codierung
des ersten Datenwerts X findet vor der Codierung des dar
auffolgenden zweiten Datenwerts Y durch Codierer 101B
statt. Diese Verzögerung des Treibens des zweiten Daten
werts Y durch Codierer 101B ermöglicht es dem Codierer
101A, den ersten Datenwert X zuerst auf die Schnittstelle
102A zu treiben. Die Verwendung des Codierverfahrens der
vorliegenden Erfindung ermöglicht es einer der vier Aus
gangsleitungen 102A, einen codierten Wert zu übertragen,
der den ersten Datenwert X, der in den Codierer 101A einge
geben wird, repräsentiert. Danach treibt der Codierer 101B
den zweiten Datenwert Y, unter Verwendung des Codierschemas
der vorliegenden Erfindung auf eine der vier Leitungen
102B. Dies ermöglicht es einer der verbleibenden drei Aus
gangsleitungen 102B, den zweiten Datenwert Y zu übertragen,
der in den Codierer 101B eingegeben wird.
Gemäß einem anderen Merkmal des Codierschemas ist zu beach
ten, daß die Eingangsleitungen Y1(H), Y1(L), die zu dem
Eingangsbit Y1 des zweiten Operanden Y gehören, absichtlich
umgekehrt werden im Vergleich zu denen, die zu dem Ein
gangsbit X1 des ersten Operanden X gehören. Diese Umkehrung
stellt sicher, daß die Codierung des ersten Datenwerts X
auf der Reihe von Leitungen 104 (E3, E2, E1, E0) nicht mit
der Codierung des zweiten Datenwerts Y auf der Reihe von
Leitungen 104 zusammen fällt. Da es eine bekannte mathema
tische Beziehung zwischen den ersten und zweiten Datenwer
ten X, Y (X = Y oder X = Y ± 1) gibt, führt dann den Aus
tausch der Leitungen zu einem zweiten Datenwert Y (und ge
schobenen zweiten Datenwert), der mindestens zwei in der
Zahl entfernt ist von dem ersten Datenwert X (und geschobe
nen ersten Datenwert), und dementsprechend gibt es keine
Überlappung bei einem Niedrig-zu-Hoch-Übergang (0 zu 1) auf
dem Satz von monotonen Leitungen E3, E2, E1, E0, wenn sie
letztendlich an einer Nach-Schiebungseinrichtungs-Latch
schaltung 105 zwischengespeichert werden. Dieser Signalaus
tausch wird später durch die Originalcodierung durch den
Decodierer 107B zurückgekehrt, der den geschobenen zweiten
Datenwert Y ausgibt. Codierer 101A, 101B werden unter Be
zugnahme auf Fig. 7A-7C später in diesem Dokument detail
liert beschrieben.
Ein Mischlogikblock 103 empfängt sowohl den ersten als auch
den zweiten codierten Wert aufeinanderfolgend. Der Mischlo
gikblock 103 umfaßt eine Mehrzahl von "OR" Logikgattern,
die den ersten und zweiten codierten Wert zeitlich beab
standet, entlang des gemeinsamen Übertragungswegs, der vier
monotone Leitungen 104 (E3, E2, E1, E0) enthält, an die
Schiebeeinrichtung 82 übertragen. Der Mischlogikblock 103
überträgt im wesentlichen zwei Bits codierte Daten, zeit
lich beabstandet, auf den vier Leitungen 104 (d. h. zwei
derselben werden von 0 auf 1 übergehen) an die Schiebeein
richtung 82. Die Übertragung hat einen zeitlich selbstge
steuerten monotonen Charakter. Das zeitlich selbstgesteuer
te Verfahren reduziert die Anzahl der Leitungen, die erfor
derlich sind, um den ersten und den zweiten codierten Wert
zu übertragen, und wird bei der Manipulation der ersten und
zweiten Daten X, Y schneller, so daß beide Datenoperanden
von der gleichen Hardware bearbeitet werden können.
Der erste und der zweite Datenwert X, Y werden durch die
Schiebeeinrichtung 82 aufeinanderfolgend, zeitlich beab
standet, und auf eine zeitlich selbstgesteuerte Weise über
tragen, die keinen Zeitgeber zum Synchronisieren der Daten
übertragung erfordert, oder sich auf einen verläßt. Das
Ergebnis der Schiebeoperation sind ein geschobener erster
und zweiter Datenwert X, Y mit Codierungen, die sich
gegenseitig nicht beeinträchtigen. Ein Beispiel einer
spezifischen Implementierung der Schiebeeinrichtung 82 wird
mit Bezugnahme auf Fig. 8 später in diesem Dokument detail
liert beschrieben.
Das Datenausgangssignal von der Schiebeeinrichtung 82 wird
in eine zeitlich selbstgesteuerte Latchschaltung 105, und
parallel dazu in eine Trennungslogik 106 eingegeben. Die
zeitlich selbstgesteuerte Latchschaltung 105 erfaßt den
geschobenen ersten Datenwert X und erfaßt den geschobenen
zweiten Datenwert Y nicht. Dies ermöglicht eine vollständi
ge Trennung der Werte X, Y. Die Architektur und der Betrieb
der zeitlich selbstgesteuerten Latchschaltung 105 werden
mit Bezugnahme auf Fig. 9 später in diesem Dokument detail
liert beschrieben.
Der erste codierte Datenwert X wird auf zeitlich selbstge
steuerte Weise von der zeitlich selbstgesteuerten Latch
schaltung 105 zu dem Decodierer 107A übertragen. Der Deco
dierer 107A decodiert den geschobenen ersten codierten Da
tenwert X von 4-zu-1 Codierung (4 Leitungen definieren ei
nen 2-Bit-Operanden) in die originale 2-zu-1 Codierung (2
Leitungen definieren einen 1-Bit-Operanden), das den ersten
Daten X zur weiteren nachfolgenden Verarbeitung zugehört.
Die Trennungslogik 106 ist entwickelt, um den geschobenen
zweiten Datenwert Y von dem geschobenen ersten Datenwert X
auszufiltern. Die Trennungslogik 106 empfängt den ersten
und den zweiten codierten Wert X, Y von dem Ausgangssignal
der Schiebeeinrichtung 82 und dem Ausgangssignal der zeit
lich selbstgesteuerten Latchschaltung 105, kehrt die Latch
schaltungsausgangssignale um, und leitet die Logiksignale,
wie in Fig. 6 gezeigt, von entsprechenden Leitungen durch
jeweilige AND- (UND-)Logikgatter. Die Trennung des gescho
benen zweiten Datenwerts Y von dem ersten wird erreicht
durch Verwenden des Ausgangssignals der zeitlich selbstge
steuerten Latchschaltung 105 als eine Bitmaske zum Elimi
nieren des ersten codierten Datenwerts X, um zu bestimmen,
wann der codierte zweite codierte Datenwert Y auf einer
zweiten Leitung aktiviert ist.
Schließlich wird der Decodierer 107B mit der Trennungslogik
106 wie gezeigt verbunden, um den geschobenen zweiten Da
tenwert Y zu empfangen und von 4-zu-1 Codierung in die ori
ginale 2-zu-1 Codierung zu codieren, das zum zweiten Daten
wert Y für weitere nachfolgende Verarbeitung zugehört. Der
Decodierer 107B kehrt außerdem Y1(H) und Y1(L) um, so daß
die Originalcodierung für die spätere Verarbeitung dieses
Operanden wiederhergestellt ist.
In Fig. 7A wird ein mögliches Beispiel der Architektur für
jeden der Codierer 101A, 101B (Fig. 6) dargestellt, das im
bevorzugten Ausführungsbeispiel identisch ist. Der Codierer
101 (101A und/oder 101B) akzeptiert zwei Bits B1, B0 (ent
weder X1, X0 oder Y1, Y0) von Daten des Operanden (entweder
X oder Y). Andere Codierer (der Einfachheit halber nicht
gezeigt) codieren die verbleibenden Bits des Operanden
(entweder X oder Y) auf eine Weise, die gleich ist wie die
jenige, die bezüglich der Bits B1, B0 gezeigt und beschrie
ben wurde. Diese zwei Bits B1, B0 von Daten werden im Co
dierer 101 codiert, um einen und zwar nur einen Draht in
der Gruppe von Leitungen 121-124 auszulösen. Dies wird er
reicht durch Verwenden einer Schaltungskonfiguration wie
derjenigen, die in Fig. 5A dargestellt ist. Die Logikele
mente 113 bis 116 erzeugen eine Schaltung, die gegenseitig
ausschließlich ist und werden einen und zwar nur einen
Draht in der Gruppe der codierten Datendrähte 121-124 aus
lösen, für jede Kombination von eingegebenen Bits B1, B0.
Fig. 7B zeigt eine spezifische Implementierung des Codie
rers 101, der entworfen ist, um eine zeitlich selbstgesteu
erte monotone Progression bzw. Reihe zu implementieren. Die
Signale, die den Bits B1(H), B1(L), B0(H), B0(L) entspre
chen, werden zu Leiterlogiktransistoren 126A-126H gesendet,
die vorzugsweise n-Typ-Metalloxidhalbleiter-Feldeffekttransistoren
(gut bekannt als MOSFETs) sind,
deren jeweilige Gates wie gezeigt durch die Eingangssignale
betrieben werden. Die Transistoren 128A-128D, die vorzugs
weise p-Typ-MOSFETs (gut bekannt als PMOSFETs) sind, werden
verwendet, um den Vorladungsknoten unter der Steuerung des
Taktsignals CK (clock signal) mit der Spannung VDD vorzula
den. Die Codierer 101A, 101B werden beide periodisch vorge
laden durch den Zeitgeber 109 (Fig. 6) der entworfen ist,
um die dynamische Logik während einer halben Taktperiode
(Zyklus) vorzuladen, und um während der anderen halben Lo
gikperiode eine Logikauswertung (und Entladung) zuzulassen.
Komplementäre MOSFET (jeder umfaßt sowohl einen PMOSFET zum
Hochziehen und einen NMOSFET zum Runterziehen) -Invertierer
129A-129D werden durch die Spannung VDD vorgespannt und
durch ihren jeweiligen Vorladungsknoten aktiviert. Folglich
werden, wenn der Vorladungsknoten vorgeladen wird, die Aus
gangssignale E3, E2, E1, E0 alle niedrig getrieben, während
die CMOSFETs ihre jeweiligen Eingangssignale wirksam umkeh
ren. Sobald eines oder zwei der Bits/Leitungen B1(H),
B1(L), B0(H), B0(L), von niedrig auf hoch übergeht, wird ei
ner der Vorladungsknoten runtergezogen (geerdet) und dar
auffolgend wird eines der Ausgangssignale E3, E2, E1, E0 von
niedrig auf hoch über gehen, um die Werte des Satzes von
Bits/Leitungen B1(H), B1(L), B0(H), B0(L) wesentlich neu de
finiert.
In Fig. 5C ist eine Logikwahrheitstabelle dargestellt, die
ein Beispiel des statischen Codierprozesses im Zusammenhang
mit dem Codierer 101 zeigt. Wie aus der Wahrheitstabelle
ersichtlich, sind die Bits B1, B0 durch den Satz von
Bits/Leitungen B1(H), B1(L), B0(H), B0(L) definiert. Während
der Codierung werden diese Bits neu definiert durch Über
setzen derselben von einem 2-Bit/4-Leitungscodierschema,
bei dem jedes Bit ist durch zwei Leitungen definiert ist
und dadurch, ob eines derselben von niedrig auf hoch über
geht, zu einem 2-Bit/4-Leitungscodierschema, bei dem zwei
Bits gemeinsam dadurch definiert werden, ob eine der Lei
tungen von niedrig auf hoch übergeht. Als Beispiel wird der
logische Zustand des Bits X0 des ersten Operanden
anfänglich durch den Satz von X0(H) und X0(L) definiert, und der
logische Zustand seines benachbarten Bits X1 in der glei
chen Operande ist bestimmt durch den Satz von X1(H) und
X1(L). Nach der Codierung durch Codierer 101A, werden so
wohl X1 als auch X0 durch den Satz von logischen Werten E3,
E2, E1, E0 definiert.
Fig. 7D ist eine Logikwahrheitstabelle, die ein Beispiel
des dynamischen Codierprozesses zeigt, der durch die Kombi
nation der Codierer 101A, 101B implementiert wird, wenn
dieselben zwei Bits von jedem Operanden X, Y auf den glei
chen Satz von vier Bits/Leitungen E3, E2, E1, E0 codieren.
Die ersten zwei Spalten zeigen die Originalcodierung von X,
Y und die letzten zwei Spalten zeigen jeweils die Neucodie
rung von X, Y. Es ist zu beachten, daß die Neucodierung der
X Bits zuerst auftritt, und dann die Neucodierung der Y
Bits danach auftritt. Es ist ferner zu beachten, daß auf
grund des Verbindungsschalters an dem Eingangssignal zu dem
Codierer 101B, der zu Y Bits gehört, es keine Überlappung
von Einsen bei der Codierung von E3, E2, E1, E0 gibt, für
Fälle, bei denen X1X0 und Y1Y0 die gleiche Codierung aufwei
sen. Beispielsweise nehme man den Fall an, wo X1X0 und Y1Y0
beide "00" sind, und ersterer auf "0001" abgebildet ist,
dann wird letzteres auf "0100" abgebildet, und gemeinsam
werden sie auf "0101" abgebildet. Es ist zu beachten, daß
"DC" in Fig. 7D einen unbeachtlichen Zustand ("don't care
condition") bedeutet (und nicht unterstützten Codierungen
entspricht, die nicht innerhalb der mathematischen Bezie
hung der Operandenpaare liegen).
In Fig. 8 ist ein mögliches Beispiel einer Schiebeeinrich
tung 82 dargestellt. Diese Schiebeeinrichtung 82 wird im
folgenden öffentlich erhältlichen Artikel detailliert be
schrieben: Craig Heikes und Glenn Colon-Bonet, "A Dual Flo
ating Point Coprocessor With An FMAC Architecture", 1996
IEEE International Solid State Circuits Conference, S. 254-255
(0-7803-3136-2/96), welcher hierin durch Bezugnahme
aufgenommen ist. Der Einfachheit halber wird nur eine kurze
Erklärung dieser Entwicklung hierin später aufgeführt. Vie
le andere Schiebeeinrichtungsgestaltungen sind möglich.
Die Gestaltung umfaßt eine hierarchische Anordnung von Mul
tiplexern zum wesentlichen Ausführen jeder gewünschten
Schiebung in den Daten (erste Daten X und zweite Daten Y).
Codierer/Treiber 131A-131 G empfangen Daten von den Gruppen
von Codierern 101 und senden die Daten zu den Multiplexern
133. Die Multiplexer 133 schieben die Daten um bis zu 16
Bits nach links, oder um bis zu 16 Bits nach rechts. Die
Multiplexer 133 werden durch Eingang 123 (von oder erhalten
jeweils von dem Führungsbitantizipierer 55, 94 von Fig. 3,
5) darüber angewiesen, wie viele Bits zu schieben sind. Die
geschobenen Ausgangssignale der Multiplexer 133 werden dann
in den Multiplexer 135 eingegeben. Die Multiplexer 135
schieben die geschobenen Daten um bis zu vier Bits nach
links oder um bis zu vier Bits nach rechts. Die Anzahl der
zu schiebenden Bits und die Richtung der Schiebung werden
durch das Eingangssignal 134 (von oder erhalten jeweils von
dem Führungsbitantizipierer 55, 94 der Fig. 3, 5) bestimmt.
Die Ausgangssignale der Multiplexer 135 werden in Multiple
xer 137 eingegeben. Die Multiplexer 137 schieben die Daten
um bis zu 1 Bit nach links oder bis zu 1 Bit nach rechts.
Die Multiplexer 137 werden angewiesen durch Eingangssignal
136 (von oder empfangen jeweils von dem Führungsbitantizi
pierer 55, 94 von den Fig. 3, 5) in der Richtung der 1 Bit-
Schiebung. Dieses Ausgangssignal der Übertragungsleitungs
schiebeeinrichtung wird dann zu den zeitlich selbstgesteu
erten Datenlatchschaltungen 105 übertragen.
In Fig. 9 wird ein mögliches Beispiel einer zeitlich
selbstgesteuerten Latchschaltung 105 (Fig. 6) dargestellt.
Die zeitlich selbstgesteuerte Latchschaltung 105 umfaßt
Schaltungsanordnung, die beim Empfangen der ersten gescho
benen Daten X auf Logikwegen E3, E2, E1, E0, weitere Ein
gangssignale deaktiviert. In anderen Worten, die selbsttak
tende Latchschaltung 105 zwischenspeichert X, nicht Y, und
ermöglicht daher totale Trennung von X und Y durch angemes
sene Logik.
Die zeitlich selbstgesteuerte Datenlatchschaltung 105 über
trägt den ersten Datenwert X zum Decodierer 107A zum Deco
dieren des Werts X vom 4-Bit/Leitungencodieren zurück zum
2-Bit/Leitungencodieren. Die zeitlich selbstgesteuerte Da
tenlatchschaltung 105 führt den ersten codierten Datenwert
X zu der Trennungslogik 106 (Fig. 6) zu, so daß die Tren
nungslogik 106 den zweiten Datenwert Y von dem ersten Da
tenwert X trennen kann. Wie oben angemerkt, verwendet die
Neuanordnungslogik 106 die ersten, codierten Daten X, die
durch die zeitlich selbstgesteuerte Datenlatchschaltung 105
zugeführt werden, um den ersten Datenwert von den Ausgängen
der Schiebeeinrichtung 82 abzudecken, um den zweiten co
dierten Datenwert Y zu bestimmen.
In der wie in Fig. 9 gezeigten Architektur wird der Satz
von Logikwegen E3, E2, E1, E0 weitergeleitet zu der Latch
schaltung 105 und wird spezifisch empfangen durch jeweilige
Transistoren 141A-141D, vorzugsweise NMOSFETs, die verwen
det werden, um Zwischenspeichern des zweiten Datenwerts Y
zu verhindern, nachdem der erste Datenwert X bereits zwi
schengespeichert wurde. Wie gezeigt, werden sie ausgelöst
durch das Ausgangssignal von einem NOR-Logikgatter 155, das
eine logische NOR-Operation empfängt und bei dem Ausgangs
signal der Latchschaltung 105 durchführt. Entsprechend geht
das Ausgangssignal des OR- (ODER-) Logikgatters 155, sobald
es einen Übergang an einem der Ausgangssignale gibt, in ei
nen niedrigen Zustand über, und alle der Transistoren
141A-141D werden ausgeschaltet.
Wenn der erste Datenwert X zu dem Gate übertragen wird,
sind die Knoten 146 alle anfänglich in einem niedrigen Zu
stand, sie wurden bereits durch jeweilige Transistoren
143A-143D niedrig gezogen, die durch das Zeitgebungssignal
CK ausgelöst werden. Die Vorladungsperiode des Zeitsignals
CK bewirkt, daß die Knoten niedrig gezogen werden. Wenn eine
der Leitungen E3, E2, E1, E0 von niedrig zu hoch über
geht, dann wird dieser hohe Wert innerhalb der entsprechen
den Sätze von Flip-Flop-Umkehren (151a-151a' oder 151b,
151b oder 151c, 151c' oder 151d, 151d') zwischengespeichert.
Ein Satz der Flip-Flop-Invertierer, beispielsweise
CMOSFET-Invertierer, ist verbunden mit jedem Bit-Leitungen E3, E2,
E1, E0. Schließlich werden die Bits/Leitungen E3, E2, E1, E0
jeweils durch Invertierer 153A-153D, beispielsweise
CMOSFET-Invertierer, umgekehrt, und werden schließlich zum
Decodierer 107A weitergeleitet.
In Fig. 10 wird ein mögliches Beispiel eines Decodierers
107 (107A und/oder 107B von Fig. 6) dargestellt. Die Deco
dierer 107A und 107B sind in den bevorzugten Ausführungs
beispielen identisch. Der Decodierer 107 akzeptiert Ein
gangssignale E3, E2, E1, E0 von der zeitlich selbstgesteuer
ten Latchschaltung 105 oder der Trennungslogik 106, was je
weils zutreffend ist, und decodiert die 4-Leitungen/1-Bit
Operandencodierung zu 2-Leitungen/1-Bit Operandencodierung.
Dies wird dadurch erreicht, daß, wie in Fig. 10 gezeigt,
einfach Signale durch einen Satz von OR-Logikgattern
161A-161D weitergeleitet werden. Es versteht sich von selbst,
daß auch andere Decodierschemen möglich sind.
Claims (31)
1. Verfahren (100) für einen Prozessor (21), das folgende
Schritte aufweist:
Codieren (80) erster und zweiter Daten (102A, 102B), die jeweils auf einem getrennten ersten beziehungswei se zweiten Satz von Logikwegen mit einem gemeinsamen Codierschema definiert sind, auf den gleichen dritten Satz von Logikwegen, wobei der dritte Satz von Logik wegen ein anderes Codierschema aufweist als der erste und zweite Satz von Logikwegen;
Getrenntes, zeitlich aufeinanderfolgendes Verarbeiten (82) der ersten und zweiten Daten auf eine zeitlich selbstgesteuerte Weise, während eine 1-zu-1-Entsprechung zwischen Eingangscodierung und Ausgangscodierung der ersten und zweiten Daten beibehalten wird;
Senden (82) der verarbeiteten ersten und zweiten Daten auf einen vierten Satz von Logikwegen; und
Decodieren (90) der ersten und zweiten Daten von dem vierten Satz von Logikwegen auf einen getrennten fünf ten beziehungsweise sechsten Satz von Logikwegen, die hinsichtlich des Codierschemas dem ersten und zweiten Satz von Logikwegen entsprechen.
Codieren (80) erster und zweiter Daten (102A, 102B), die jeweils auf einem getrennten ersten beziehungswei se zweiten Satz von Logikwegen mit einem gemeinsamen Codierschema definiert sind, auf den gleichen dritten Satz von Logikwegen, wobei der dritte Satz von Logik wegen ein anderes Codierschema aufweist als der erste und zweite Satz von Logikwegen;
Getrenntes, zeitlich aufeinanderfolgendes Verarbeiten (82) der ersten und zweiten Daten auf eine zeitlich selbstgesteuerte Weise, während eine 1-zu-1-Entsprechung zwischen Eingangscodierung und Ausgangscodierung der ersten und zweiten Daten beibehalten wird;
Senden (82) der verarbeiteten ersten und zweiten Daten auf einen vierten Satz von Logikwegen; und
Decodieren (90) der ersten und zweiten Daten von dem vierten Satz von Logikwegen auf einen getrennten fünf ten beziehungsweise sechsten Satz von Logikwegen, die hinsichtlich des Codierschemas dem ersten und zweiten Satz von Logikwegen entsprechen.
2. Verfahren gemäß Anspruch 1, bei dem die ersten und
zweiten Daten (102A, 102B) einen mathematischen Bezug
aufweisen.
3. Verfahren gemäß Anspruch 1 oder 2, das ferner folgende
Schritte aufweist:
Definieren der ersten und zweiten Daten (102A, 102B) durch zwei logische Variablen;
Umdefinieren (101A, 101B) jeder der ersten und zweiten Daten durch vier logische Variable;
Durchführen (82) einer Schiebeoperation an jeden der ersten und zweiten Daten (102A, 102B), die jede durch vier jeweilige logische Variable bestimmt sind; und
Umdefinieren (105, 106) jeder der ersten und zweiten Daten (102A, 102B) durch zwei logische Variable.
Definieren der ersten und zweiten Daten (102A, 102B) durch zwei logische Variablen;
Umdefinieren (101A, 101B) jeder der ersten und zweiten Daten durch vier logische Variable;
Durchführen (82) einer Schiebeoperation an jeden der ersten und zweiten Daten (102A, 102B), die jede durch vier jeweilige logische Variable bestimmt sind; und
Umdefinieren (105, 106) jeder der ersten und zweiten Daten (102A, 102B) durch zwei logische Variable.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem
der Schritt des Verarbeitens den Schritt des Schiebens
(82) jeder der ersten und zweiten Daten (102A, 102B)
aufweist.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, das fer
ner den Schritt des Implementierens einer monotonen
Progression entlang jedem des ersten bis sechsten Sat
zes von Logikwegen aufweist.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, das fer
ner die folgenden Schritte aufweist:
Übersetzen (101A) der ersten Daten (102A) von einem 2-zu-1-Codierschema in ein 4-1-Codierschema auf dem dritten Satz von Logikwegen;
Verzögern (108) der zweiten Daten (102B); und
Übersetzen (101B) der verzögerten zweiten Daten (102B) von dem 2-zu-1-Codierschema in das 4-zu-1-Codierschema auf dem dritten Satz von Logikwegen.
Übersetzen (101A) der ersten Daten (102A) von einem 2-zu-1-Codierschema in ein 4-1-Codierschema auf dem dritten Satz von Logikwegen;
Verzögern (108) der zweiten Daten (102B); und
Übersetzen (101B) der verzögerten zweiten Daten (102B) von dem 2-zu-1-Codierschema in das 4-zu-1-Codierschema auf dem dritten Satz von Logikwegen.
7. Verfahren gemäß Anspruch 6, das ferner den Schritt des
Tauschens von Bits der verzögerten zweiten Daten mit
dem 2-zu-1-Codierschema vor dem Schritt des
Übersetzens (101B) aufweist.
8. Verfahren gemäß Anspruch 6 oder 7, das ferner den
Schritt des Kombinierens (103) der ersten (102A) und
der zweiten verzögerten (102B) Daten auf den dritten
Satz von Logikwegen aufweist, indem entsprechende Bits
der Daten durch jeweilige OR-Logikgatter gesendet wer
den.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, das fol
gende Schritte aufweist:
aufeinanderfolgendes Zwischenspeichern (105) der ers ten und zweiten Daten, nach dem Schritt des Verarbei tens (82); und
Trennen (106) der zweiten Daten von den ersten Daten, nachdem die ersten Daten zwischengespeichert wurden und etwa dann, wenn die zweiten Daten durch die Latch schaltung empfangen werden.
aufeinanderfolgendes Zwischenspeichern (105) der ers ten und zweiten Daten, nach dem Schritt des Verarbei tens (82); und
Trennen (106) der zweiten Daten von den ersten Daten, nachdem die ersten Daten zwischengespeichert wurden und etwa dann, wenn die zweiten Daten durch die Latch schaltung empfangen werden.
10. Verfahren gemäß Anspruch 1, das ferner folgende
Schritte aufweist:
Übersetzen (101A) der ersten Daten (102A) von einem 2-zu-1-Codierschema in ein 4-1-Codierschema auf dem dritten Satz von Logikwegen;
Verzögern (108) der zweiten Daten (102B);
Übersetzen (101B) der verzögerten zweiten Daten (102B) von dem 2-zu-1-Codierschema in das 4-zu-1-Codierschema auf dem dritten Satz von Logikwegen;
Aufeinanderfolgendes Zwischenspeichern (105) der ers ten und zweiten Daten nach dem Verarbeitungsschritt;
Trennen (106) der zweiten Daten von den ersten Daten, nachdem die ersten Daten zwischengespeichert wurden, dann, wenn die zweiten Daten durch die Latchschaltung empfangen werden; und
getrenntes Decodieren der ersten und zweiten Daten von dem 4-zu-1-Codierschema in das 2-zu-1-Codierschema.
Übersetzen (101A) der ersten Daten (102A) von einem 2-zu-1-Codierschema in ein 4-1-Codierschema auf dem dritten Satz von Logikwegen;
Verzögern (108) der zweiten Daten (102B);
Übersetzen (101B) der verzögerten zweiten Daten (102B) von dem 2-zu-1-Codierschema in das 4-zu-1-Codierschema auf dem dritten Satz von Logikwegen;
Aufeinanderfolgendes Zwischenspeichern (105) der ers ten und zweiten Daten nach dem Verarbeitungsschritt;
Trennen (106) der zweiten Daten von den ersten Daten, nachdem die ersten Daten zwischengespeichert wurden, dann, wenn die zweiten Daten durch die Latchschaltung empfangen werden; und
getrenntes Decodieren der ersten und zweiten Daten von dem 4-zu-1-Codierschema in das 2-zu-1-Codierschema.
11. Prozessor, der entworfen ist, um das Verfahren gemäß
einem der Ansprüche 1 bis 10 zu verwenden.
12. System mit folgenden Merkmalen:
einer Codiereinrichtung (80) zum Codieren erster und zweiter Daten (102A, 102B), die auf einem getrennten ersten beziehungsweise zweiten Satz von Logikwegen de finiert sind, auf den gleichen dritten Satz von Logik wegen;
einer Verarbeitungseinrichtung (82) zum aufeinander folgenden Empfangen der ersten und zweiten Daten von der Codiereinrichtung auf dem dritten Satz von Logik wegen, wobei die Verarbeitungseinrichtung zum getrenn ten zeitlich aufeinanderfolgenden Verarbeiten der ers ten und zweiten Daten auf zeitlich selbstgesteuerte Weise, während eine 1-zu-1-Entsprechung zwischen einer Eingangscodierung und Ausgangscodierung der ersten und zweiten Daten beibehalten wird, vorgesehen ist, und wobei die Verarbeitungseinrichtung zum Treiben der verarbeiteten ersten und zweiten Daten auf einen vier ten Satz von Logikwegen vorgesehen ist; und
einer Decodiereinrichtung (90) zum aufeinanderfolgen den Empfangen der verarbeiteten ersten und zweiten Da ten von der Verarbeitungseinrichtung auf dem vierten Satz von Logikwegen, wobei die Decodiereinrichtung (90) zum Decodieren der ersten und zweiten Daten auf einen getrennten fünften beziehungsweise sechsten Satz von Logikwegen, die hinsichtlich der Codierung dem ersten und zweiten Satz von Logikwegen entsprechen, vorgesehen ist.
einer Codiereinrichtung (80) zum Codieren erster und zweiter Daten (102A, 102B), die auf einem getrennten ersten beziehungsweise zweiten Satz von Logikwegen de finiert sind, auf den gleichen dritten Satz von Logik wegen;
einer Verarbeitungseinrichtung (82) zum aufeinander folgenden Empfangen der ersten und zweiten Daten von der Codiereinrichtung auf dem dritten Satz von Logik wegen, wobei die Verarbeitungseinrichtung zum getrenn ten zeitlich aufeinanderfolgenden Verarbeiten der ers ten und zweiten Daten auf zeitlich selbstgesteuerte Weise, während eine 1-zu-1-Entsprechung zwischen einer Eingangscodierung und Ausgangscodierung der ersten und zweiten Daten beibehalten wird, vorgesehen ist, und wobei die Verarbeitungseinrichtung zum Treiben der verarbeiteten ersten und zweiten Daten auf einen vier ten Satz von Logikwegen vorgesehen ist; und
einer Decodiereinrichtung (90) zum aufeinanderfolgen den Empfangen der verarbeiteten ersten und zweiten Da ten von der Verarbeitungseinrichtung auf dem vierten Satz von Logikwegen, wobei die Decodiereinrichtung (90) zum Decodieren der ersten und zweiten Daten auf einen getrennten fünften beziehungsweise sechsten Satz von Logikwegen, die hinsichtlich der Codierung dem ersten und zweiten Satz von Logikwegen entsprechen, vorgesehen ist.
13. System gemäß Anspruch 12, bei dem die ersten und zwei
ten Daten einen mathematischen Bezug aufweisen.
14. System gemäß Anspruch 12 oder 13, bei dem jede der
ersten und zweiten Daten (102A, 102B) durch zwei logi
sche Variablen definiert sind, wobei die Codierein
richtung (80) jede der ersten und zweiten Daten (102A,
102B) durch vier logische Variablen umdefiniert, wobei
die Verarbeitungseinrichtung (82) an jeden der ersten
und zweiten Daten eine Schiebeoperation durchführt,
von denen jede durch vier jeweilige logische Variablen
definiert sind, und wobei die Decodiereinrichtung (90)
jede der ersten und zweiten Daten durch zwei logische
Variablen umdefiniert.
15. System gemäß einem der Ansprüche 12 bis 14, bei dem
die Verarbeitungseinrichtung (82) eine Schiebefunktion
an jeden der ersten und zweiten Daten durchführt.
16. System gemäß einem der Ansprüche 13 bis 15, bei dem
der erste bis sechste Logikweg jeweils eine monotone
logische Progression implementieren.
17. System gemäß einem der Ansprüche 12 bis 16, bei dem
die Codiereinrichtung (80) folgende Merkmale aufweist:
eine erste Codiereinrichtung (101A) zum Übersetzen der ersten Daten von einer 2-zu-1 Codierung in eine 4-zu-Codierung auf dem dritten Satz von Logikwegen;
eine Verzögerungseinrichtung (108) zum Verzögern der zweiten Daten; und
eine zweite Codiereinrichtung (101B) zum Übersetzen der verzögerten zweiten Daten von 2-zu-1-einer in eine 4-zu-1-Codierung auf dem dritten Satz von Logikwegen.
eine erste Codiereinrichtung (101A) zum Übersetzen der ersten Daten von einer 2-zu-1 Codierung in eine 4-zu-Codierung auf dem dritten Satz von Logikwegen;
eine Verzögerungseinrichtung (108) zum Verzögern der zweiten Daten; und
eine zweite Codiereinrichtung (101B) zum Übersetzen der verzögerten zweiten Daten von 2-zu-1-einer in eine 4-zu-1-Codierung auf dem dritten Satz von Logikwegen.
18. System gemäß Anspruch 19, das ferner eine Verbindungs
umschalteinrichtung zum Ändern der 2-zu-1-Codierung
vor der Übersetzung durch die zweite Codiereinrichtung
(101B) aufweist.
19. System gemäß Anspruch 18, das ferner eine Mehrzahl von
OR-Logikgattereinrichtungen zum Kombinieren der ersten
und zweiten Daten auf dem dritten Satz von Logikwegen
aufweist.
20. System gemäß einem der Ansprüche 12 bis 19, das ferner
folgende Merkmale aufweist:
eine zeitlich selbstgesteuerte Latchschaltung(105) zum Empfangen der ersten und zweiten Daten von der Verar beitungseinrichtung (82); und
eine Trennlogikeinrichtung (106) zum aufeinanderfol genden Empfangen der ersten und zweiten Daten von der zeitlich selbstgesteuerten Latchschaltung (105) und zum Trennen der zweiten Daten von den ersten Daten.
eine zeitlich selbstgesteuerte Latchschaltung(105) zum Empfangen der ersten und zweiten Daten von der Verar beitungseinrichtung (82); und
eine Trennlogikeinrichtung (106) zum aufeinanderfol genden Empfangen der ersten und zweiten Daten von der zeitlich selbstgesteuerten Latchschaltung (105) und zum Trennen der zweiten Daten von den ersten Daten.
21. System gemäß einem der Ansprüche 12 bis 20,
- a) wobei die Codiereinrichtung (80) folgende Merkma
le aufweist:
- 1. eine erste Codiereinrichtung (101A) zum Übersetzen der ersten Daten von einer 2-zu-1-Codierung in eine 4-zu-Codierung auf dem dritten Satz von Logikwegen;
- 2. eine Verzögerungseinrichtung (108)zum Verzö gern der zweiten Daten; und
- 3. eine zweite Codiereinrichtung (101B) zum Übersetzen der verzögerten zweiten Daten von einer 2-zu-1-Codierung in eine 4-zu-1-Codierung auf dem dritten Satz von Logikwe gen; und
- b) wobei die Codiereinrichtung (80) folgende Merkma
le umfaßt:
eine zeitlich selbstgesteuerte Latchschaltung (105) zum Empfangen der ersten und zweiten Daten von der Verarbeitungseinrichtung;
Trennungslogikeinrichtung (106) zum aufeinander folgenden Empfangen der ersten und zweiten Daten von der zeitlich selbstgesteuerten Latchschaltung und zum Trennen der zweiten Daten von den ersten Daten;
eine erste Decodiereinrichtung (107A) zum Empfan gen der ersten Daten von der zeitlich selbstge steuerten Latchschaltung und zum Decodieren der ersten Daten von der 4-zu-1-Codierung zu der 2-zu-1-Codierung; und
eine zweite Codiereinrichtung (107B) zum Empfan gen der zweiten Daten von der Trennlogikeinrich tung (106) und zum Δecodieren der zweiten Daten von der 4-zu-1-Codierung zu der 2-zu-1-Codierung.
22. Prozessor, der das System gemäß einem der Ansprüche 12
bis 21 verwendet.
23. Prozessor mit folgenden Merkmalen:
einem Codierer (80), der entworfen ist, um erste und zweite Daten (102A, 102B), die jeweils auf einem getrennten ersten beziehungsweise zweiten Satz von Lo gikwegen definiert sind, auf den gleichen dritten Satz von Logikwegen zu codieren;
eine Vorrichtung (82), die aus einer Gruppe ausgewählt ist, die eine Schiebeeinrichtung, ein Bus-Netzwerk, einen Multiplexer und einen Puffer umfaßt, wobei die Vorrichtung entworfen ist, um die ersten und zweiten Daten getrennt und zeitlich aufeinanderfolgend und auf eine zeitlich selbstgesteuerte Weise zu verarbeiten, und um die verarbeiteten ersten und zweiten Daten auf den vierten Satz von Logikwegen zu senden; und
einen Decodierer (90), der entworfen ist, um die ver arbeiteten ersten und zweiten Daten aufeinanderfolgend von der Vorrichtung auf dem vierten Satz von Logikwe gen zu empfangen, und entworfen ist, um die ersten und zweiten Daten auf einen getrennten fünften beziehungs weise sechsten Satz von Logikwegen zu decodieren.
einem Codierer (80), der entworfen ist, um erste und zweite Daten (102A, 102B), die jeweils auf einem getrennten ersten beziehungsweise zweiten Satz von Lo gikwegen definiert sind, auf den gleichen dritten Satz von Logikwegen zu codieren;
eine Vorrichtung (82), die aus einer Gruppe ausgewählt ist, die eine Schiebeeinrichtung, ein Bus-Netzwerk, einen Multiplexer und einen Puffer umfaßt, wobei die Vorrichtung entworfen ist, um die ersten und zweiten Daten getrennt und zeitlich aufeinanderfolgend und auf eine zeitlich selbstgesteuerte Weise zu verarbeiten, und um die verarbeiteten ersten und zweiten Daten auf den vierten Satz von Logikwegen zu senden; und
einen Decodierer (90), der entworfen ist, um die ver arbeiteten ersten und zweiten Daten aufeinanderfolgend von der Vorrichtung auf dem vierten Satz von Logikwe gen zu empfangen, und entworfen ist, um die ersten und zweiten Daten auf einen getrennten fünften beziehungs weise sechsten Satz von Logikwegen zu decodieren.
24. Prozessor gemäß Anspruch 23, bei dem die ersten und
zweiten Daten (102A, 102B) einen mathematischen Bezug
aufweisen.
25. Prozessor gemäß Anspruch einem der Ansprüche 25 bis
27, bei dem jede der ersten und zweiten Daten (102A,
102B) durch zwei logische Variablen definiert sind,
wobei der Codierer (80) entworfen ist, um jede der er
sten und zweiten Daten durch vier logische Variablen
neu zu definieren, wobei die Vorrichtung (82) entwor
fen ist, um eine Operation an jeden der ersten und
zweiten Daten durchzuführen, die jeweils durch vier
jeweilige logische Variablen definiert sind, und wobei
der Decodierer (90) entworfen ist, um jede der ersten
und zweiten Daten durch zwei logische Variablen um zu
definieren.
26. Prozessor gemäß einem der Ansprüche 23 bis 25, bei dem
der erste bis sechste Logikweg jeweils eine monotone
logische Progression implementiert.
27. Prozessor gemäß einem der Ansprüche 23 bis 26, bei dem
der Codierer folgende Merkmale aufweist:
einen ersten Codierer (101A) der entworfen ist, um die ersten Daten von einer 2-zu-1-Codierung zu einer 4-1-Codierung auf dem dritten Satz von Logikwegen zu über setzen;
eine Verzögerungseinrichtung (108), die entworfen ist, um eine Verzögerung bezüglich der zweiten Daten zu be wirken; und
einen zweiten Codierer (101B), der entworfen ist, um die verzögerten zweiten Daten von der 2-zu-1-Codierung in die 4-zu-1-Codierung auf dem dritten Satz von Lo gikwegen zu übersetzen.
einen ersten Codierer (101A) der entworfen ist, um die ersten Daten von einer 2-zu-1-Codierung zu einer 4-1-Codierung auf dem dritten Satz von Logikwegen zu über setzen;
eine Verzögerungseinrichtung (108), die entworfen ist, um eine Verzögerung bezüglich der zweiten Daten zu be wirken; und
einen zweiten Codierer (101B), der entworfen ist, um die verzögerten zweiten Daten von der 2-zu-1-Codierung in die 4-zu-1-Codierung auf dem dritten Satz von Lo gikwegen zu übersetzen.
28. Prozessor gemäß Anspruch 27, der ferner eine Über
kreuzverbindung umfaßt, welche die Bits der verzöger
ten zweiten Daten vor der Übersetzung durch die zweite
Codiereinrichtung (101B) umschaltet.
29. Prozessor gemäß Anspruch 27 oder 28, der ferner eine
Mehrzahl von OR-Logikgattern umfaßt, die gestaltet
sind, um die ersten und zweiten Daten auf den dritten
Satz von Logikwegen zu kombinieren.
30. Prozessor gemäß Anspruch 25, der ferner folgende Merk
male aufweist:
eine zeitlich selbstgesteuerte Latsch-Einrichtung (105), die entworfen ist, um die ersten und zweiten Daten von der Vorrichtung (82) zu empfangen; und
eine Trennungslogik (106), die entworfen ist, um die ersten und zweiten Daten aufeinanderfolgend von der zeitlich selbstgesteuerten Latchschaltung (105) zu empfangen und zum Trennen der zweiten Daten von den ersten Daten.
eine zeitlich selbstgesteuerte Latsch-Einrichtung (105), die entworfen ist, um die ersten und zweiten Daten von der Vorrichtung (82) zu empfangen; und
eine Trennungslogik (106), die entworfen ist, um die ersten und zweiten Daten aufeinanderfolgend von der zeitlich selbstgesteuerten Latchschaltung (105) zu empfangen und zum Trennen der zweiten Daten von den ersten Daten.
31. Prozessor gemäß einem der Ansprüche 23 bis 30
- a) bei dem der Codierer (80) folgende Merkmale auf
weist:
- 1. einen ersten Codierer (101A), der entworfen ist, um die ersten Daten von einer 2-zu-1-Codierung in eine 4-1-Codierung auf dem dritten Satz von Logikwegen zu übersetzen;
- 2. einen Verzögerungsmechanismus (108), der entworfen ist, um die zweiten Daten zu ver zögern; und
- 3. einen zweiter Codierer (101B), der entworfen ist, um die verzögerten zweiten Daten von einer 2-zu-1-Codierung in eine 4-zu-1-Codierung auf dem dritten Satz von Logikwe gen zu übersetzen; und
- b) bei dem der Decodierer (90) folgende Merkmale
aufweist:
eine zeitlich selbstgesteuerte Latchschaltung (105), die entworfen ist, um die ersten und zwei ten Daten von der Vorrichtung (82) zu empfangen;
Trennungslogik (106), die entworfen ist, um die ersten und zweiten Daten aufeinanderfolgend von der zeitlich selbstgesteuerten Latchschaltung (105) zu empfangen, und die entworfen ist, um die zweiten Daten von den ersten Daten zu trennen;
einen erster Decoder (107A), der entworfen ist, um die ersten Daten von der zeitlich selbstge steuerten Latchschaltung (105) zu empfangen und entworfen ist, um die ersten Daten von einer 4-zu-1-Codierung in eine 2-zu-1-Codierung zu deco dieren; und
einen zweiten Decodierer (107B), der entworfen ist, um die zweiten Daten von der Trennungslogik (106) zu empfangen und der entworfen ist, um die zweiten Daten von einer 4-zu-1-Codierung in eine 2-zu-1-Codierung zu decodieren.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/583,206 US6738795B1 (en) | 2000-05-30 | 2000-05-30 | Self-timed transmission system and method for processing multiple data sets |
US583206 | 2000-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10124351A1 true DE10124351A1 (de) | 2001-12-20 |
DE10124351B4 DE10124351B4 (de) | 2005-10-27 |
Family
ID=24332126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10124351A Expired - Fee Related DE10124351B4 (de) | 2000-05-30 | 2001-05-18 | Verfahren und Vorrichtung zum Verarbeiten zweier Datenoperanden in einem Prozessor |
Country Status (3)
Country | Link |
---|---|
US (2) | US6738795B1 (de) |
JP (1) | JP2002007111A (de) |
DE (1) | DE10124351B4 (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1500145A1 (de) * | 2002-04-17 | 2005-01-26 | Koninklijke Philips Electronics N.V. | Datenkommunikationsbus |
US7065602B2 (en) * | 2003-07-01 | 2006-06-20 | International Business Machines Corporation | Circuit and method for pipelined insertion |
DE60321010D1 (de) * | 2003-11-26 | 2008-06-26 | Texas Instruments Inc | Scan-testbarer FIFO-Speicher |
US7392270B2 (en) * | 2004-07-29 | 2008-06-24 | International Business Machines Corporation | Apparatus and method for reducing the latency of sum-addressed shifters |
JP4571903B2 (ja) * | 2005-12-02 | 2010-10-27 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理方法 |
US8443030B1 (en) * | 2007-03-09 | 2013-05-14 | Marvell International Ltd. | Processing of floating point multiply-accumulate instructions using multiple operand pathways |
US8176391B2 (en) * | 2008-01-31 | 2012-05-08 | International Business Machines Corporation | System to improve miscorrection rates in error control code through buffering and associated methods |
US9411554B1 (en) | 2009-04-02 | 2016-08-09 | Xilinx, Inc. | Signed multiplier circuit utilizing a uniform array of logic blocks |
US8706793B1 (en) | 2009-04-02 | 2014-04-22 | Xilinx, Inc. | Multiplier circuits with optional shift function |
US7948265B1 (en) | 2009-04-02 | 2011-05-24 | Xilinx, Inc. | Circuits for replicating self-timed logic |
US7982496B1 (en) | 2009-04-02 | 2011-07-19 | Xilinx, Inc. | Bus-based logic blocks with optional constant input |
US7746108B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Compute-centric architecture for integrated circuits |
US7746103B1 (en) * | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Multi-mode circuit in a self-timed integrated circuit |
US9002915B1 (en) | 2009-04-02 | 2015-04-07 | Xilinx, Inc. | Circuits for shifting bussed data |
US7746109B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for sharing self-timed logic |
US8527572B1 (en) | 2009-04-02 | 2013-09-03 | Xilinx, Inc. | Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same |
WO2011137209A1 (en) | 2010-04-30 | 2011-11-03 | Cornell University | Operand-optimized asynchronous floating-point units and methods of use thereof |
US8914430B2 (en) * | 2010-09-24 | 2014-12-16 | Intel Corporation | Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions |
US8402164B1 (en) | 2010-10-27 | 2013-03-19 | Xilinx, Inc. | Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit |
US10318297B2 (en) * | 2015-01-30 | 2019-06-11 | Huawei Technologies Co., Ltd. | Method and apparatus for operating a self-timed parallelized multi-core processor |
CN113489482B (zh) * | 2021-07-06 | 2023-10-20 | 北京中科芯蕊科技有限公司 | 基于Mousetrap的异步微流水线数据流控制器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5040190A (en) * | 1989-12-22 | 1991-08-13 | Adtran | Analog data station terminal |
US5649225A (en) * | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
US5805479A (en) * | 1995-09-25 | 1998-09-08 | United Microelectronics Corp. | Apparatus and method for filtering digital signals |
US5798952A (en) | 1996-02-29 | 1998-08-25 | Hewlett-Packard Company | Leading bit anticipator |
US5757687A (en) * | 1996-08-06 | 1998-05-26 | Hewlett-Packard Co. | Method and apparatus for bounding alignment shifts to enable at-speed denormalized result generation in an FMAC |
US6609189B1 (en) * | 1998-03-12 | 2003-08-19 | Yale University | Cycle segmented prefix circuits |
US6529924B1 (en) * | 2000-03-27 | 2003-03-04 | International Business Machines Corporation | Method and apparatus for generating shift amount signals for an alignment shifter |
-
2000
- 2000-05-30 US US09/583,206 patent/US6738795B1/en not_active Expired - Fee Related
-
2001
- 2001-05-14 JP JP2001143171A patent/JP2002007111A/ja not_active Withdrawn
- 2001-05-18 DE DE10124351A patent/DE10124351B4/de not_active Expired - Fee Related
-
2003
- 2003-09-02 US US10/653,280 patent/US6970897B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6738795B1 (en) | 2004-05-18 |
US20040044716A1 (en) | 2004-03-04 |
US6970897B2 (en) | 2005-11-29 |
DE10124351B4 (de) | 2005-10-27 |
JP2002007111A (ja) | 2002-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10124351A1 (de) | Zeitlich selbstgesteuertes Übertragungssystem und Verfahren zum Verarbeiten von Mehrfachdatensätzen | |
DE3853805T2 (de) | Digitaler Multiplizierer und Multiplizierer-Akkumulator, welcher Zwischenergebnisse vorlädt und akkumuliert. | |
DE60202749T2 (de) | Schnittstelle von synchron zu asynchron zu synchron | |
DE69802865T2 (de) | Logische Domino-Schaltungen | |
DE1549477B1 (de) | Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden | |
DE3306084A1 (de) | Rechnerarchitektur zur gleitkomma -addition | |
DE1549476B2 (de) | Anordnung zur ausfuehrung von divisionen | |
DE60117831T2 (de) | Modul zur erzeugung von decoderschaltungen für faltungscodes, zugehöriges verfahren und schaltung | |
DE69130640T2 (de) | Arithmetische Operationseinheit mit Bit-Invertierungsfunktion | |
DE3888230T2 (de) | Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung. | |
DE1809219A1 (de) | Binaeres Vielfach-Addierwerk zur gleichzeitigen Addition mehrerer binaerer Zahlen | |
DE2222197C3 (de) | Anordnung zum Auf- bzw. Abrunden von Binärzahlen | |
DE1549478B1 (de) | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden | |
DE2758130C2 (de) | Binärer und dezimaler Hochgeschwindigkeitsaddierer | |
DE3889150T2 (de) | Filter n-ten Ranges. | |
EP0453641A2 (de) | CORDIC-Prozessor für Vektordrehungen in Carry-Save-Architektur | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE68927488T2 (de) | Binäre Übertragvorgriffsschaltung | |
EP1540460B1 (de) | Vorrichtung und verfahren zum umsetzen und addiererschaltung | |
DE1803222B2 (de) | Verfahren zum zusammenfassen pulscodierter nachrichten | |
DE69230520T2 (de) | Verfahren und Anordung zur Erzeugung von Summeinformation-/Rundungskontrolle-Signal | |
DE1449564C3 (de) | Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden | |
DE1241159B (de) | UEbertragschaltung fuer ein Schnelladdierwerk | |
DE3889746T2 (de) | Zähler. | |
DE2017132B2 (de) | Binärer Parallel-Addierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |