DE3786474T2 - Systolisches Supersummiergerät. - Google Patents
Systolisches Supersummiergerät.Info
- Publication number
- DE3786474T2 DE3786474T2 DE87101193T DE3786474T DE3786474T2 DE 3786474 T2 DE3786474 T2 DE 3786474T2 DE 87101193 T DE87101193 T DE 87101193T DE 3786474 T DE3786474 T DE 3786474T DE 3786474 T2 DE3786474 T2 DE 3786474T2
- Authority
- DE
- Germany
- Prior art keywords
- mantissa
- sieve
- bit
- accumulator
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000033001 locomotion Effects 0.000 claims description 48
- 238000007667 floating Methods 0.000 claims description 30
- 238000004581 coalescence Methods 0.000 claims description 15
- 238000005096 rolling process Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 206010048669 Terminal state Diseases 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 claims 10
- 238000012216 screening Methods 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 277
- 238000000034 method Methods 0.000 description 53
- 230000008569 process Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 34
- 230000001413 cellular effect Effects 0.000 description 30
- 230000035508 accumulation Effects 0.000 description 25
- 238000009825 accumulation Methods 0.000 description 25
- 238000010606 normalization Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 239000000969 carrier Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 6
- 230000010267 cellular communication Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003892 spreading Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 210000003771 C cell Anatomy 0.000 description 1
- 101100228469 Caenorhabditis elegans exp-1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 210000003850 cellular structure Anatomy 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000007873 sieving Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- 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/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
- G06F7/5095—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/388—Skewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
- G06F2207/3892—Systolic array
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein systolisches Summiergerät für den hohen und präzisen Durchsatz wiederholter Summen von Gleitkommazahlen.
- Die Gleitkommaarithmetik ist ein fundamentaler Bestandteil in wissenschaftlichen Berechnungen. Die vier grundlegenden Gleitkommaoperationen , , und waren lange Zeit Bestandteil arithmetischer Einheiten digitaler Computer. Heutzutage kann ein Prozessor, der in wissenschaftlichen oder technischen Anwendungen eingesetzt werden soll, nicht darauf verzichten, zumindest teilweise leistungsfähige Gleitkommaarithmetik mit einzubeziehen (intrinsische Hardware, Co-Prozessor-Hardware, mikrokodierte Implementierung usw.).
- Als Annäherung an die exakten arithmetischen Operationen +, - · und /, die an realen Zahlenpaaren durchgeführt werden, liefern die Gleitkommaoperationen , , und , wenn sie an Gleitkommazahlenpaaren durchgeführt werden, Ergebnisse, die im Computer bis auf die letzte Stelle genau sind. Freilich beruht diese Aussage auf einer geeigneten Implementierung sowohl eines Rundungsoperators als auch einer Gleitkommaarithmetik auf dem Computer. Wenn jedoch Gleitkommaoperationen kombiniert werden, so kann, selbst bei so elementaren Berechnungen wie a b c, der relative Fehler des Ergebnisses so groß sein wie die größte Gleitkommazahl, die im Computer darstellbar ist. Zusätzlich zu den realen Zahlen werden in der wissenschaftlichen Berechnung höhere Berechnungsdatenarten wie beispielsweise komplexe Zahlen, Vektoren und Matrizen realer und komplexer Zahlen sowie Intervalle über alle diese Zahlen verwendet. Zu den Basisoperationen für solche Datenarten gehören beispielsweise Ausdrücke wie a b c. Diese Basisoperationen beziehen innere Produkte von n-tuples von Gleitkommazahlen mit ein. Selbst mit der bestmöglichen Implementierung der Gleitkommaoperationen , , und liefert der Computer häufig schlechte Ergebnisse bei Basisoperationen in der wissenschaftlichen Berechnung.
- Eine neue Theorie der Gleitkommaarithmetik, die von U.W. Kulisch und W. L. Miranker in Computer Arithmetic in Theory and Practice, Academic Press, 1981, vorgestellt wurde, liefert eine Lösung zum Problem der begrenzten Genauigkeit in wissenschaftlichen Berechnungen. Die Ergänzung der vier herkömmlichen Gleitkommaoperationen durch eine fünfte Gleitkommaoperation , das sogenannte innere Produkt, ermöglicht die Erzielung der vollständigen Computer-Genauigkeit, wie sie in Gleitkommaoperationen für reale Zahlenpaare zur Verfügung steht, auch für alle anderen Gleitkommaoperationen und für alle höheren Datenarten in der wissenschaftlichen Berechnung. In diesem Sinne sind die Ergebnisse solcher Operationen die Datenarten, die den idealen vollständig genauen Ergebnissen am nächsten kommen.
- Bei den gegebenen beiden Vektoren x = (xi, . . . , xN) und y = (y&sub1;, . . . , yN) von Gleitkommazahlen ist die Operation folgendermaßen definiert:
- Das heißt, x y ist diejenige Gleitkommazahl, die man durch Berechnung von
- in exakter Arithmetik und anschließende einmalige Rundung der Summe erhalten würde. Man kann sagen, daß x y diejenige Gleitkommazahl ist, die das exakte innere Produkt
- mit einer Genauigkeit darstellt, die zum Datenverlust, der durch eine einzige Rundungsoperation dargestellt ist, äquivalent ist.
- Eine solche Operation läßt sich durch iterative Algorithmen simulieren, wie dies in der angeführten Publikation von Kulisch und Miranker beschrieben ist. Parallele Versionen dieser Algorithmen wurden ebenfalls untersucht. Siehe H. Leuprecht et al, "Parallel Algorithms for the Rounding Exact Summation of Floating Point Numbers", Computing 28, 1982. Zur Implementierung einer höheren Leistung wurde auch eine Hardware-Einheit entworfen. Siehe G. Bohlender et al, "Features of a Hardware Implementation of an Optimal Arithmetic", A New Approach to Scientific Computation, herausgegeben von U.W. Kulisch und W.L. Miranker, Academic Press, 1983. Diese spezielle Hardware- Implementierung enthält einen sogenannten langen Akkumulator. Diese letztere Ausführung wurde mit Hilfe von Mikrokodierungsmitteln in einem handelsüblichen Prozessor, nämlich dem IBM 4361, mit dem die fünfte Gleitkommaoperation Ei möglich ist, mehr oder weniger implementiert.
- Eine normalisierte Gleitkommazahl x (in Zeichen-Größe- Darstellung) ist eine reale Zahl x in der Form
- x = σmbe
- In diesem Fall ist σε {+,-} das Zeichen der Zahl (Zeichen (x)), m ist die Mantisse (mant (x)), b ist die Basis des in Verwendung befindlichen Zahlensystems und e ist der Exponent (exp (x)). b ist eine ganze Zahl größer als Einheit. Der Exponent ist eine ganze Zahl zwischen zwei festen Ganzzahlgrenzen e1, e2, und normalerweise ist e1 ≤ 0 ≤ e2. Die Mantisse m hat die Form
- d [i] sind die Ziffern der Mantisse, die in absteigender Reihenfolge der Bedeutung numeriert sind. Sie besitzen die Eigenschaften d [i] ε {0,1, . . . , b-1} für alle i = 1(1)1 und d [1] ungleich 0. Ohne die Bedingung d [i] ungleich 0 werden Gleitkommazahlen als denormalisiert bezeichnet. Der Satz an normalisierten Gleitkommazahlen enthält nicht 0. Für eine einmalige Darstellung von 0 wird angenommen, daß Zeichen (0) = +, mant (0) = 0.00 . . . 0 (1 Nullen nach dem Radixpunkt) und exp (0) = e1. Ein Gleitkommasystem ist abhängig von den Konstanten b, 1, e1 und e2; diese werden nachfolgend durch R = R(b, 1, e1, e2) bezeichnet.
- x = (x&sub1;, . . . , xN) und y = (yi . . . , yN) seien Vektoren von normalisierten Gleitkommazahlen. Es sei
- Es sei
- wobei
- Dann gilt: zi ε R(b, 21, 2e1, 2e2). Darüberhinaus könnte x y berechnet werden, wenn
- bestimmt werden könnte. An dieser Stelle wird darauf hingewiesen, daß benötigt wird, um R(b, 21, 2e1, 2e2) → R(b, 1, e, 1, e2) anzuzeigen.
- Daher besteht das Ziel der vorliegenden Erfindung darin, ein systolisches Summiergerät zur Berechnung von Summen von Gleitkommazahlen mit höchst präzisem und schnellem Durchsatz anzubieten.
- Ein weiteres Ziel der vorliegenden Erfindung besteht darin, dieses Summiergerät in einer kompakten Anordnung mit minimaler Hardware-Komplexität zu entwickeln.
- Zusammenfassend läßt sich sagen, daß sich diese und andere Ziele der Erfindung durch die Merkmale in Anspruch 1 erreichen lassen. Die Unteransprüche enthalten weitere vorteilhafte Anordnungen.
- Die Erfindung ist anhand der folgenden Beschreibung leichter verständlich, wobei auf folgende Zeichnungen Bezug genommen wird:
- Fig. 1 ist eine schematische Übersicht über das systolische Supersummiergerät der vorliegenden Erfindung;
- Fig. 2 ist eine Darstellung der zylindrischen Anordnung des Summiergeräts der vorliegenden Erfindung;
- Fig. 3 ist ein Diagramm, das das parallele Eintreffen der Summandenbits darstellt;
- Fig. 4 ist eine Darstellung des seriellen-parallelen Eintreffens von Summanden, nachdem bit-parallele Summanden zeitlich abgeschrägt werden, wobei die gestrichelten Linien in Fig. 4 diejenigen Bits umrahmen, die das i-Eingabewort wi enthalten;
- Fig. 5 stellt die Bitabschrägung von Fig. 1 dar, die bitparallele Summanden empfängt und seriell-parallele Summandenausgänge liefert;
- Fig. 6 ist ein Diagramm zur Beschreibung der Operation der Bitabschrägung 14 in Fig. 1, für W = C+M = 8;
- Fig. 7 ist ein Diagramm zur Beschreibung der Eingabe-Ausgabe- Charakteristika einzelner Zellen in der Darstellung von Fig. 6;
- Fig. 8 ist ein Raum-Zeit-Diagramm für die Bewegung eines Bits wj durch die Zellspalte j mit einer Periode von 0(1) und einer Latenz von 0(j);
- Fig. 9 ist ein weiteres Raum-Zeit-Diagramm für die Bewegung eines Bits wj durch die Zellspalte j, wobei die Verzögerungen der einzelnen Zellen aus Fig. 6 für die zellulare Operation gestreckt sind.
- Fig. 10 ist eine Darstellung eines Baumnetzwerks zur Verfolgung von Mantissen aufgrund ihrer Charakteristikum-Werte;
- Fig. 11 ist eine Darstellung zur Beschreibung der Sortierung von Mantissen analog zu den verschiedenen Größen;
- Fig. 12 stellt eine Alternativanordnung für die Sortierung von Mantissen aufgrund ihres "Gewichts" dar;
- Fig. 13 stellt aufeinanderfolgende Vergleiche von Summandeigenschaften mit " Größen" -Werten in Übereinstimmung mit entsprechenden Falltüren dar;
- Fig. 14 ist ein Logikdiagramm zur Implementierung einer einzelnen Vergleichsphase aus Fig. 13.
- Fig. 15 ist ein Logikdiagramm einer Zellenanordnung zur Implementierung einzelner Vergleichsstufen aus Fig. 13;
- Fig. 16 ist ein Diagramm einer einzelnen Zelle 30 in Fig. 15;
- Fig. 17 ist ein Diagramm zur Beschreibung der Operation einer einzelnen Siebzelle;
- Fig. 18 ist eine Darstellung der Bewegung eines Summanden durch ein Sieb, welches von einer Matrix aus Zellen gebildet wird, für C=2 und M=3;
- Fig. 19 ist ein Diagramm zur Beschreibung der Rampenbewegung zweier verschiedener Mantissen wi und wi+1, wobei Wi+1 vor wi dekodiert wird und daher durch wi verläuft;
- Fig. 20 ist eine Darstellung einer Bitkollision, wobei der Summand wi+1 dekodiert wird und mit dem Summanden wi, der noch nicht dekodiert wurde, kollidiert;
- Fig. 21-26 stellen Bitkollisionen dar, wobei der Summand wi+1 dekodiert wird und mit seiner Rampenbewegung beginnt, während der Summand wi undekodiert bleibt, solange das Zeitintervall andauert, in dem die Mantissen der beiden Summanden kollidieren, so daß jede Mantisse die andere durchläuft;
- Fig. 27-31 stellen den Summanden wi dar, der einen Zyklus später als der Summand wi+1 dekodiert wird, wobei sich die Summanden gegenseitig durchlaufen;
- Fig. 32-37 stellen die Summanden wi und wi+1 dar, die zum selben Zeitpunkt dekodiert werden, wobei das Merkmal von wi+1 um zwei Einheiten kleiner ist als das von wi und wobei die Mantissenbits 1-3 von wi mit den Mantissenbits 3-5 von wi+1 zusammenliegen;
- Fig. 38-41 stellen den Fall für M=4 dar, in dem die Merkmale aufeinanderfolgende Summanden gleichzeitig dekodiert werden, wobei eine Zelle von vier Mantissenbits belegt ist;
- Fig. 42-47 sind eine Folge von Darstellungen zur Beschreibung des Koaleszenzverfahrens der vorliegenden Erfindung;
- Fig. 48 ist ein Diagramm einer erweiterten Version der Zelle aus Fig. 17 mit dem Zusatz eines Trägerbits c;
- Fig. 49 ist eine vergrößerte schematische Darstellung eines Teils des Summiergeräts aus Fig. 1;
- Fig. 50 und 51 sind Vorder- bzw. Draufsichten einer zylindrischen Version des Siebs aus Fig. 49, wobei die in Fig. 51 angezeigten Zellen die Zellen des Superakkumulators in Fig. 49 sind;
- Fig. 52 und 53 sind Vorder- bzw. Draufsichten eines zweiten zylindrischen Siebversatzes in bezug auf das Sieb der Fig. 50 und 51;
- Fig. 54 und 55 sind Darstellungen der Folge von Charakteristikum-Werten, die in den Charakteristikum- Dekodierbereichen des Siebs in den Fig. 50 bzw. 52 verwendet wurden;
- Fig. 56 und 57 sind Vorder- bzw. Draufsichten eines Siebs mit zwei Sinkbereichen, die durch Aufeinanderlagerung der Siebe aus den Fig. 50 und 52 erzielt werden;
- Fig. 58 ist eine ähnliche Ansicht wie Fig. 56, wobei die vdiagonalen Striche entlang der linken Grenze Teile der linken Grenzen derjenigen Bereiche anzeigen, die links eingehende Rollmantissen empfangen können;
- Fig. 59 und 60 sind Vorder- bzw. Draufsichten eines zylindrischen Siebs mit (2C+M)/M = 8 Sinkbereichen;
- Fig. 61 ist eine Darstellung dreier rangniedriger Zellen in einem Superakkumulator zusammen mit drei Siebzellen, die diese speisen;
- Fig. 62 ist eine schematische Darstellung einer verbesserten Version der drei rangniedrigen Zellen im Superakkumulator und dreier Siebzellen der untersten Reihe, die diese speisen, wobei die Siebzellen der untersten Reihe verstärkt sind, um zweitrangige Trägeraktivitäten im Akkumulator zu vermeiden;
- Fig. 63 ist eine Darstellung zur Beschreibung der Unterteilung und Übertragung des Summenende-Signals σ;
- Fig. 64 ist eine Darstellung der Ausbreitung eines Trägerbits durch die gesamte Länge des Superakkumulators hindurch;
- Fig. 65 ist ein Diagramm zur Beschreibung der A-Pipeline- Anordnung;
- Fig. 66 ist ein Zellendiagramm aus Zellen in der Schnittstellenspalte des äußerst linken Sinkbereichs, wobei die Siebzelle auf der untersten Reihe (nicht dargestellt) mit einem Eingang und einem Ausgang ca versehen ist;
- Fig. 67 ist ein Zellendiagramm für die übrigen Zellen im unteren Dreieck des Siebbereichs von Fig. 63, wobei die Eingabe- und Ausgabebits ca auch in der Siebzelle der untersten Reihe (nicht dargestellt) vorhanden sind;
- Fig. 68 ist ein Zellendiagramm für eine Akkumulationszelle, wobei sTin gleich sa für Akkumulator α&sub1; ist;
- Fig. 69 ist ein Diagramm zur Beschreibung der Träger- Auflösungs-Pipeline;
- Fig. 70 und 71 enthalten eine Darstellung der Elemente, die für die Durchführung der Normalisation und der Charakteristikum- Kodierung für M=5 und C=4 erforderlich sind, wobei Fig. 70 die Komponenten vor der Normalisation für den Fall sieben führender Nullen und Fig. 71 die Komponenten nach der Normalisation zeigt;
- Fig. 72 ist eine schematische Darstellung zur Beschreibung der Hardware für die Normalisation und die Charakteristikum- Kodierung;
- Fig. 73 ist eine ausführlichere Darstellung des Zählers 64 in Fig. 72, wobei b eine Entnahme anzeigt;
- Fig. 74 ist ein Raum-Zeit-Diagramm, welches die Operation des Mantissenakkumulators 60 in Fig. 72 darstellt;
- Fig. 75 ist ein geändertes Raum-Zeit-Diagramm, das die Zelloperation des Mantissenakkumulators 60 in Fig. 72 darstellt;
- Fig. 76 ist ein Zellendiagramm einer geänderten Zelle des Mantissenakkumulators 60;
- Fig. 77 ist eine Darstellung der linken Verschiebung im Superakkumulator;
- Fig. 78 ist eine Darstellung einer erweiterten Architektur zur Ausführung der Normalisation, zur Charakteristikum-Kodierung und zur Rundung;
- Fig. 79 ist eine schematische Darstellung der Hardware zur Ausführung der Normalisation, zur Charakteristikum-Kodierung und zur Rundung einschließlich der endgültigen Einstellungen an der Mantisse und der Charakteristikum-Kodierung;
- Fig. 80 ist eine schematische Darstellung einer Zellenversion des Kodiergeräts von Fig. 79, wobei "*" die Kommunikation von α1,p·s und α1,p·c bezeichnet;
- Fig. 81 ist ein Diagramm der DELAY-Zelle 82 in Fig. 80;
- Fig. 82 ist eine schematische Darstellung der Architektur zur Durchführung der endgültigen Kodierung; die Bewegung des Protoexit-Signals xp und des exit-Signals wird dargestellt;
- Fig. 83 und 84 sind Darstellungen des Abschrägungseffekts des exit-Signals auf die Inhalte des Mantissenakkumulators 60 und den Exponentenzähler 78;
- Fig. 85 ist ein Diagramm eines endlichen Zeichenerkennungsautomaton;
- Fig. 86 ist eine Darstellung des Superakkumulators αi> 0, die nach links in drei verschiedene Nachverarbeitungsgeräte verschoben werden, wobei jedes Nachverarbeitungsgerät für eine andere Rundungsart zuständig ist;
- Fig. 87 ist eine Darstellung eines B-Zylinders, der die Facetten zeigt, in denen sich die Speicherelemente βj j=0, . . . H-1 befinden; und
- Fig. 88 ist ein Diagramm zur Darstellung der Abläufe zwischen der A-Pipeline und dem B-Zylinder über den Gewichtsbehälter w&sub0;; außerdem werden die Phasen des Hineinschreibens und des Auslesens dargestellt.
- Nachfolgend wird eine Anordnung für eine Hardware- Implementierung von FLIP beschrieben. Der Einfachheit halber wird lediglich der Fall der binären Arithmetik betrachtet, das heißt b = 2. Des weiteren wird M = 21 und C = 2 + log&sub2; e1 + log&sub2; e2 angenommen, wobei i den ganzzahligen Teil von i bezeichnet. Das heißt, es wird angenommen, daß die binären Gleitkommazahlen zi M Mantissenbits und C Bits in ihrem Charakteristikum-Exponenten besitzen.
- Zur Darstellung der Anordnung ist es einfacher, von der Annahme auszugehen, daß die Zahlen zi unsigniert sind. Dies ergibt eine Aufteilung der Summanden in einem inneren Produkt in zwei Untersummen; eine Untersumme für die positiven Summanden und eine Untersumme für die negativen. Summanden. Die beiden dazugehörigen Summen werden unabhängig voneinander bestimmt und ihre Ergebnisse werden kombiniert. Zunächst wird eine Übersicht über die Anordnung gegeben. Danach folgt eine eher formale Anordnung. Schließlich werden Verfeinerungen und Erweiterungen untersucht, das heißt, die signierte Summierung, die gerichtete Rundung und ein Akkumulationsmodus.
- Das in dieser Beschreibung verwendete Berechnungsmodell ist das Synchronmodell von VLSI, wie dies beispielsweise beschrieben wird in C. D. Thomson "Area-Time Complexity for VLSI", Proc. 11th Annual Sym. on the Theory of Computing, April 1979; R. P. Brent et al, "The Area-Time Complexity of Binary Multiplication", JACM Vol. 28, Nr. 3, Juli 1981, und G. Bilardi et al "A Critique and an Appraisal of VLSI Models of Computation", VLSI Systems and Computations, herausgegeben von H. T. Kung, et al, Computer Science Press, Rockville, Maryland, 1981. (Wie an nachfolgender Stelle deutlich werden wird, asynchronisiert ein Verfahren zur Erhöhung der Leistungsfähigkeit der endgültigen Phase der vorliegenden Erfindung die Architektur, doch diese Asynchronität befindet sich nicht auf der Zellenebene.) Die vorliegende Anwendung beschäftigt sich mit einer Familie von Funktionen und Schaltungen, die durch einen Vektor π = (M,C) parameterisiert sind. Die asymptotische Komplexität wird durch die gesamte Beschreibung hindurch in bezug auf den Parametervektor π gemessen.
- Vor der Fortsetzung sind die folgenden Punkte zu definieren:
- Die funktionale Latenz (oder Zeit) einer Schaltung ist der Zeitabstand zwischen dem Auftauchen des ersten Eingabebits auf einem beliebigen Port und dem Auftauchen des letzten Ausgabebits auf einem beliebigen Port für eine Berechnung der Funktion f mit der Bezeichnung Tf. Dies entspricht der gebräuchlichen Verwendung des Ausdrucks "Operationsgeschwindigkeit". Ein "100 Nanosekunden"-Multiplikator beispielsweise bedeutet, daß zwischen dem Auftauchen des ersten Eingabebits der Multiplikanden und dem letzten Ausgabebit des Produkts 100 Nanosekunden verstreichen.
- Die direkte Kommunikation zwischen zwei Zellen ist zellular, wenn die räumliche Trennung der beiden Zellen 0(1) ist. Wenn sämtliche Zellen in einer Anordnung nur die zellulare Kommunikation verwenden, dann ist die Anordnung zellular (wie die eines zellularen Automatons, beschrieben in Essays on Cellular Automata, herausgegeben von A. W. Burks, Univ. of Illinois Press, Urbana, IL, 1970).
- Das Gerät der vorliegenden Erfindung hat das vorrangige Ziel, eine hohe Durchsatzgeschwindigkeit zu erreichen, wobei der Gesichtspunkt der Latenz zweitrangig ist. Diese Zielsetzung hat zwei miteinander verknüpfte Gründe. Erstens wird ein hoher Durchsatz, nicht eine kurze Latenz, als Anforderung für die Anwendungen unter Verwendung des Geräts betrachtet. Zweitens können Anordnungen mit hohem Durchsatz im allgemeinen unter Verwendung der zellularen Kommunikation erreicht werden; diese Kommunikation eignet sich sowohl für die VLSI- als auch für die Leiterplattentechnologie.
- Das Interesse an einem hohen Durchsatz ist teilweise auf technologische Beschränkungen zurückzuführen. Darüberhinaus ist die Verwendung des Geräts der vorliegenden Erfindung in einer vorwiegend parallelen Prozessorumgebung vorgesehen. Viele Prozessoren können arbeiten, während ihre arithmetischen Einheiten einen starken Fluß an Vektorpaaren erzeugen, deren innere Produkte benötigt werden. Diese werden zur Bestimmung an das Gerät der vorliegenden Erfindung gesendet. Wie hier beschrieben wird, führt das Gerät der vorliegenden Erfindung lediglich die kritische Summierung des inneren Produkts aus. Natürlich ist die Ermittlung der elementaren Produkte eine Funktion, die auch angehängt werden könnte. Weil diese Funktion zellular ist und weil sie extrem lange Akkumulatoren (Superakkumulatoren) verwendet, wird die Erfindung als "Systolisches Supersummiergerät" bezeichnet.
- Es folgt eine Übersicht der Anordnung in bezug auf Fig. 1. Es wird davon ausgegangen, daß ein Block aus Gleitkommazahlen in R(2, M, 2e1, 2e2), welche Summanden darstellen, in bit-paralleler Reihenfolge am systolischen Supersummiergerät ankommen. Die 0 Gleitkommazahl wurde an das Ende eines Blocks angehängt, um das Gerät zu löschen und zu initialisieren. Jeder Block erhält bei seiner Ankunft ein Kennzeichen. Das Kennzeichen fließt stufenweise mit dem Summierungsprozeß entlang des Geräts einen Kennzeichen-Kanal 12 hinab. Auf diese Weise wird jede Summe, eine Zahl in R(2, 1, e1, e2), mit einem Kennzeichen versehen, sobald sie das Gerät verläßt. Die Mantissenlänge in der Analyse darf also ein Gerätparameter mit der Bezeichnung < M sein. Daher ist die vollständige Summe eine Zahl in R(2, , e1, e2).
- Am Eingang fließen die Summanden durch ein Bitabschrägungsgerät 14 und verlassen dieses in seriell-paralleler Reihenfolge, um im Sieb 16 eine zellulare Operation zu erreichen. Die abgeschrägten Summanden gehen in ein Sieb 16. Ein Bit 18 folgt dem letzten Summanden in das Sieb; das Bit 18 ist das Summenendsignal, das später mit σ bezeichnet wird. Das Sieb 16 ist ein systolisches Paketschaltnetz mit Signalkombination. Die Mantisse eines eingehenden Summanden wird von ihrem Eingang an der Oberseite des Siebs zu einer geeigneten Position an der Unterseite des Siebs geschaltet. Der Schaltpfad wird durch den (Charakteristikum-) Exponenten des Summanden bestimmt. Die richtig geschaltete Summandmantisse, die das Sieb verläßt, geht in eine A-Pipeline 20 aus Akkumulatoren, die ihrerseits nacheinander die Bezeichnung α&sub0;, α&sub1;, . . . , αp+1 tragen. Diese Akkumulatoren besitzen die Fähigkeit, jede Mantisse als Fixpunktzahl aufzunehmen; das Sieb ist ein Schaltgerät zur Bestimmung der korrekten Fixpunktposition für die Addition der Summanden in α&sub0;. α&sub0; ist M + 2C Bits lang, ein (langer) Superakkumulator. Mehrere, beispielsweise F, Überfluß- Bitpositionen werden links (das ranghohe Ende) von α&sub0; sowie an alle anderen Akkumulatoren in der A-Pipeline angehängt.
- Die Summe wird im Akkumulator α&sub0; akkumuliert. Das Summenendsignal 18 überträgt die Inhalte aus dem Akkumulator α&sub0; in den nächsten Akkumulator α&sub1;. Auf diese Weise wird α&sub0; initialisiert und für die nächste Summe vorbereitet, die aus dem Sieb austreten kann. Im Akkumulator α&sub1; wird der Trägerauflösungsprozeß in der Summierung, falls erforderlich, fortgesetzt. Dies wird kombiniert mit der Kodierung der Summe in eine Gleitkommazahl in R(2, , e1, e2). Das heißt, wenn neue Summen eintreffen und vorherige Summen die A-Pipeline hinableiten, so vervollständigen letztere ihre Trägerauflösung und verschieben führende Nullen (normalisierend) nach außen, kodieren erneut den Exponenten und führen abschließend eine Rundung aus; all das mehr oder weniger im gleichen Zeitintervall.
- Da Summen in einer ganz anderen Reihenfolge als der, in der sie in das supersummiergerät eingetreten sind, vervollständigt werden können, ist die A-Pipeline 20 mit einer Funktion zur Erkennung der Summenvervollständigung ausgestattet. Sobald eine vervollständigte Summe festgestellt wird, wird diese dazu veranlaßt, die A-Pipeline zu durchlaufen und am Gerät ausgegeben zu werden. Eine vollständige Summe kann andere Summen durchlaufen, die noch nicht vervollständigt wurden. Diese frühzeitige Summenablösungsfunktion asynchronisiert den Prozeß. Aus diesem Grund wird das Summen-Tagging verwendet. Ein Identitätskennzeichen (Kennzeichen) tritt zusammen mit jedem Summandblock in das Gerät ein. Das Kennzeichen durchläuft den Kennzeichen-Kanal 12 schrittweise mit dem Summierprozeß und begleitet die Summe beim Verlassen des Geräts.
- Durch den Eingang einer Summe in das Sieb 16 wird nur M der M + 2C Bitbreite des Siebs belegt. Die Auslegung der bevorzugten Anordnung wird geändert, um die Eingabekapazität zu erhöhen. Das Sieb wird in ein sogenanntes Zylindersieb erhöht, wie dies in Fig. 2 dargestellt ist. Jedes unterbrochene Band von Breite M wird zu einem Eingabeport in das Sieb 16, wodurch der Durchsatz erhöht wird. Das resultierende Protokoll der Paketschaltung und der Signalkombination ist komplizierter; dessen Regulierung ist ein wesentlicher Faktor in der Anordnung der vorliegenden Erfindung.
- Es folgt eine ausführlichere Beschreibung, wobei zunächst mit der Bitabschrägung 14 begonnen wird.
- Ein Summand wird bezeichnet als c&sub1;c&sub2; . . . cCm&sub1;m&sub2; . . . my wobei x1≤j≤c die charakteristikum-Bitwerte und m1≤j≤M die Mantissenbitwerte sind. Wie gewöhnlich werden diese Bits in absteigender Reihenfolge der Bedeutung numeriert. Manchmal liegt es näher, eine Eingabe lediglich als Bitkette zu betrachten: w&sub1;w&sub2; . . . wW = c&sub1;c&sub2; . . . cCm&sub1;m&sub2; . . . mM, wobei
- W = C + M.
- Der Index i wird verwendet, um zwischen unterschiedlichen Summanden zu unterscheiden, so daß wij das Bit j des Summanden i bezeichnet. Die Bezeichnungen cij und mij werden in ähnlicher Weise verwendet.
- Es wird davon ausgegangen, daß ein Summand in bit-paralleler Reihenfolge eintrifft, wie dies in Fig. 3 dargestellt ist. In der vorliegenden Erfindung ist es erforderlich, daß das Eintreffen von Summandenbits seriell-parallel verläuft (das heißt, bit-parallel aber zeitlich abgeschrägt). Diese Anordnung ist mit dem Ziel einer rein zellularen Kommunikation vereinbar. Die erste Aufgabe besteht also darin, die Summandbits zeitlich abzuschrägen, so daß deren Eingabe in das Sieb 16 seriellparallel erfolgt, wie dies allgemein in Fig. 4 dargestellt ist. (Es wird darauf hingewiesen, daß die Bitabschrägung weggelassen werden könnte, wenn der Prozeß, in dem das Supersummiergerät der vorliegenden Erfindung verwendet werden soll, die Summanden bereits in seriell-paralleler Form erstellt, das heißt, wobei die Summanden einzelne Produkte in einer inneren Produktberechnung sind, in dem das Produkt in einem in Pipeline befindlichen Multiplikator erstellt wird.)
- Das Abschrägungsgerät 14 ist in Fig. 5 abgebildet. Zwei Anordnungen der Abschrägung werden hier beschrieben. In der ersten wird das sogenannte Broadcasting verwendet. Diese Anordnung wird in eine andere Anordnung umgewandelt, in der lediglich eine zellulare Kommunikation verwendet wird. In Fig. 6 ist ein Zellendiagramm für die erste Abschrägung dargestellt. Das Bit wj wird um j Zyklen verzögert. Schwarze Zellen sind Verzögerungen; weiße Zellen geben ihre Eingänge ohne Verzögerung aus, wie dies in Fig. 7 dargestellt ist. Bei einer allgemeinen Zellenanordnung ist die Färbung wie folgt:
- Die Zelle ij ist schwarz für 1≤i≤j≤W.
- Die Zelle ij ist weiß für 1≤j≤i≤W,
- wobei i die Reihe und j die Spalte in Fig. 6 darstellt. Das heißt, das obere Dreieck der rechteckigen Zellenanordnung ist schwarz, Zellen unterhalb der Hauptdiagonale sind weiß. Schwarze Zellen verhalten sich wie folgt:
- Weiße Zellen verhalten sich wie folgt:
- In dieser Anordnung, die mit Γ bezeichnet wird, sendet die Zelle i, i-1 ihren Wert durch weiße Zellen an Zelle i,W, so daß man eine weiße Zelle ganz einfach als Kabel betrachten kann. Das Raum-Zeit-Diagramm von F ist für die Bewegung des Bits wj durch die Spalte j der Zellen in Fig. 8 dargestellt.
- Die Broadcast-Anordnung Γ wird durch eine lineare Umwandlung T in eine zellulare Anordnung umgewandelt. Das Ergebnis dieser Umwandlung ist für die Bewegung des Bits wj durch die Spalte j der Zellen in Fig. 9 abgebildet. Das Zellendiagramm in Fig. 6 kann diese Abschrägung ebenfalls darstellen. Hier jedoch stellen schwarze Punkte eine Verzögerung von zwei Zyklen dar, weiße Punkte stellen eine Verzögerung um einen Zyklus dar. Das Broadcasting wird also in eine zellulare Kommunikation umgewandelt. Dies ist im Raum-Zeit-Diagramm von Fig. 9 ersichtlich; darin kann man auch erkennen, daß die Kommunikationslinie durch Raum-Zeit nie senkrecht zur Zeit läuft.
- Nach der Bitabschrägung besteht die nächste Aufgabe darin, die Mantisse in den korrekten Teil des Superakkumulators α&sub0; in Fig. 1 zu plazieren, wobei die genaue Position von der Charakteristik des Summanden abhängig ist. Summanden mit der kleinsten Charakteristik, beispielsweise, werden in den am wenigsten bedeutenden Teil des Superakkumulators α&sub0;, das heißt, die am weitesten rechts liegenden M Bits, plaziert.
- Eine Möglichkeit zur Behandlung von Mantissen wäre die Paketschaltung mit einem Baumnetzwerk, wie dies in Fig. 10 dargestellt ist. Wäre das bedeutendste Charakteristikum-Bit 1, würde die Mantisse den linken Zweig des Baums hinabgeleitet; andernfalls würde sie den rechten Zweig hinabgeleitet werden. Die zweite Ebene würde dazu verwendet, das zweitbedeutendste Bit zu leiten usw., bis das am wenigsten bedeutungstragende Charakteristikum-Bit untersucht würde; hierbei wird der exakte Schlitz für die Mantisse innerhalb des Superakkumulators ermittelt. In der bevorzugten Anordnung dieser Erfindung wird dieses Schema nicht verwendet, da es nicht zellular ist. Die Baumverzweigung erfordert Kabel, die nicht 0(1) sind und die mehrere Chips abdecken.
- Eine in der vorliegenden Erfindung verwendete Alternativlösung ist die analoge Berechnung eines Siebs. Summanden werden als Rippen unterschiedlicher Größen und Farben betrachtet. Eine Rippenfarbe entspricht analog einer Summandmantisse. Es gibt 2M verschiedene Farben, die jedoch zu einem späteren Zeitpunkt näher erläutert werden. Das Rippengewicht entspricht analog einer Summandeigenschaft. Das Sieb sortiert die Rippen, indem es diejenigen mit demselben Gewicht in denselben Korb setzt (derselbe Teil des Superakkumulators). Eine Methode zu dieser Durchführung ist in Fig. 11 als Rampe 22 abgebildet, die Löcher 24 mit zunehmender Größe besitzt. Jede Rippe rollt die Rampe hinab, bis er das erste Loch erreicht, das groß genug ist, um die Rippe aufzunehmen. An dieser Stelle fällt er in den Korb zur Aufnahme von Rippen genau dieser Größe. Diese Siebanordnung beruht auf der Annahme, daß alle Rippen sphärische Massen homogenen Materials sind, so daß also ein Rippengewicht mit zunehmendem Durchmesser größer wird.
- Die Urheber der vorliegenden Erfindung fanden ein solches Sieb geeigneter, das die Rippen direkt und nicht indirekt anhand der Größe wiegt. In diesem Sieb, welches schematisch in Fig. 12 dargestellt ist, verläuft die Reihenfolge der Bewegungen umgekehrt. Eine Rippe verläuft zunächst direkt durch eine Sequenz von Falltüren 26. Die Falltüren benötigen nacheinander immer mehr Kraft, um sich zu öffnen. Die schwersten Rippen fallen durch alle Türen hindurch. Die leichtesten Rippen sind zu leicht, um selbst durch die oberste Falltür zu fallen. Die Sequenz von Falltüren bestimmt also das Gewicht einer Rippe. Wenn eine Rippe zu leicht ist, um durch eine Falltür hindurch zu fallen, rollt dieser nach rechts auf eine Rampe 28, die die Rippe in den richtigen Korb leitet (das heißt, seine richtige Position im Superakkumulator α&sub0;).
- Das wesentliche an diesen beiden Sieben ist ein Gerät zur Bestimmung des Rippengewichts. Dies ist der Zweck der Charakteristikum-Dekodierung, nämlich die Bestimmung der Größe des Summanden und damit die Bestimmung der "Rampe", die eine Rippe in den richtigen "Korb" leitet. Jeder Falltür ist ein Charakteristikum-Wert zugeordnet. Weil es C Charakteristikum- Bits gibt, gibt es 2C verschiedene "Rippengewichte", "Falltüren", "Rampen" und "Körbe". Auch hier fällt gemäß dem Schema der vorliegenden Erfindung eine Rippe durch Falltüren mit zunehmender Federspannung und wird festgehalten, sobald die erste Falltür zu viel Federspannung aufweist, um die Rippe durchzulassen. Ein Summand vergleicht analog hierzu seine Charakteristik mit einer Sequenz ansteigender Werte, bis eine Übereinstimmung gefunden wird. Diese Berechnung ist in Fig. 13 abgebildet. Jedes Charakteristikum-Bit c wird mit einem entsprechenden Falltür-Federspannungsbit d verglichen, das nachfolgend als Größenbit bezeichnet wird. Das Charakteristikum stimmt nur dann mit einer Falltür oder einer entsprechenden Größenordnung überein, wenn es sich bei sämtlichen Bitvergleichen um Übereinstimmungen handelt. Ein solches Schema ist in Fig. 14 abgebildet. Es wird angenommen, daß i=0, . . . , 2C-1 die Ebenen des Siebs indexiert, beginnend am oberen Ende, so daß die Größenbits auf der i-Ebene dij j=0, . . . , C-1 sind. dij ist das Bit j in der binären Ausdehnung von i. Es wird empfohlen, das in Fig. 14 abgebildete C- AND zu vermeiden, da es beinhaltet, die Ergebnisse der einzelnen Vergleiche zwischen Charakteristikum-Bits zu senden. Ein Grund für die Abschrägung von Summanden besteht darin, eine zellulare Dekodierung von Charakteristiken zu ermöglichen. Die Ankunft der Bits eines Charakteristikums an der Oberseite der Falltür-Pipeline in Fig. 13 wird zeitlich abgeschrägt; um aus dieser Tatsache einen Vorteil zu ziehen, kann das Zellendiagramm einer Falltür wie in Fig. 15 abgebildet werden. Die Charakteristikum-Bits fließen vertikal durch die Falltürzellen 30, wobei jede Zelle 30 das empfangene Charakteristikum-Bit mit dem Größenbit vergleicht und eine exakte Passung anzeigt, wenn eine entsprechende Übereinstimmung vorliegt und wenn außerdem von der Zelle 30 direkt zur linken ebenfalls eine exakte Passung angezeigt wird. Die Anzeige der direkten Passung (f) wird horizontal akkumuliert. Eine einzelne Falltürzelle kann wie in Fig. 16 aussehen. Ihr Verhalten ist wie folgt:
- Fin ← 1, für Zelle &sub1;.
- Es ist zu beachten, daß der Zeitindex aller Ausgabevariablen um eins höher ist als der der Eingabevariablen. Dies trifft allgemein im seriell-parallel-Bereich zu. Demzufolge wird der Zeitindex ab hier in unseren Eingabe-Ausgabegleichungen weggelassen.
- Die Anzeige der Passung, fout, von Zelle c ist nur dann "1", wenn alle Charakteristikum-Bits mit ihren entsprechenden Größenbits übereinstimmen. Dies geschieht genau für eine Größenordnung pro Charakteristikum. An dieser Stelle wurde das Charakteristikum gewogen oder dekodiert und dessen "Gewicht", "Rampe" und "Korb" identifiziert. Dieses Dekodierungsverfahren ist eine Implementierung eines Paketschaltprotokolls, wobei das Paket w&sub1; . . . wW in seine Schaltadressen c&sub1; . . . cC und seine Information m&sub1; . . . mM aufgeteilt ist.
- Die obige Erläuterung der Rippengewichtbestimmung oder der Charakteristikum-Dekodierung beschreibt auf eingängige Weise den Ablauf, der im Charakteristikum-Dekodierbereich 32 des Siebs 16 in Fig. 1 stattfindet. Der Sinkbereich 34 in Fig. 1 entspricht dem Teil des Siebs, durch das die Mantissen laufen, bis das Charakteristikum dekodiert und die richtige Rampe gefunden wurde. In der bisher beschriebenen Anordnung befindet sich der Sinkbereich 34 direkt über den am weitesten links liegenden M Bits des Akkumulators α&sub0;.
- Nach der Größenanpassung muß das Charakteristikum nun die richtige Rampe in seine korrekte Position im Akkumulator α&sub0; hinabrollen. Dieser Übergang wird anschließend ausführlich beschrieben.
- Die zwei wesentlichen Eigenschaften einer Rippe sind seine Größe und seine Farbe, das heißt, das Charakteristikum und die Mantisse des Summanden. Nur die Mantisse muß die Rampe hinab in den Superakkumulator α&sub0; rollen, da die Rampe selbst die zuvor festgelegte Charakteristikum-Information berücksichtigt.
- Zellen, die Farbinformationen, das heißt, Mantisseninformationen, übertragen, verhalten sich wie folgt
- Wenn eine ankommende Mantisse eine Rampe hinabrollt (z. B. durch diagonale Bewegung nach unten), dann rollt sie weiterhin nach unten, ansonsten sinkt sie direkt nach unten. Ist die Anzeige der Passung aktiv (das heißt, daß dies die erste "Falltür" ist, daß diese Rippe zu leicht ist, um durchzufallen), dann beginnt die Farbe mit ihrer Rampenbewegung, andernfalls bewegt sie sich direkt nach unten.
- Die Anzeige der Passung f zeigt an, daß der richtige Zeitpunkt da ist, um zu "rollen". Dieses Rollen geht solange weiter, bis eine Mantisse ihren Korb erreicht. Die Variablen, die zur "Choreographie" dieses Bewegungsübergangs benötigt werden, sind:
- f ε {Continue(0), Switch(1)}, die Anzeige der Passung;
- ms ε {0,1}, eine Mantissenbitvariabel für sinkende Mantissen; und
- mr ε {0,1}, eine Mantissenbitvariabel für rollende Mantissen.
- Es gibt eine Eingabeversion (in) und eine Ausgabeversion (out) jeder der oben angeführten Boolschen Variablen. Nur eines der ms und mr enthalten das Mantissenbit in jeder Siebzelle. Fig. 17 ist eine schematische Darstellung einer Siebzelle 38, die sich in Übereinstimmung mit den obigen Kriterien verhält. Der Rampenbereich 36 in Fig. 1 bestünde aus einer Matrix von Zellen 38.
- Wir konzentrieren uns nun auf die Zeit, in der die Bewegung sich ändert. Das Schema, das die Bewegungsänderung implementiert, ist in Fig. 18 für C=2 und M=3 dargestellt. Jede der Zellen 30 im Charakteristikum-Dekodierbereich 32 von Fig. 18 sieht aus wie in Fig. 16 dargestellt, wobei jede der Zellen 38 im Rampenbereich 36 von Fig. 18 aussieht wie in Fig. 17. Wir beginnen unsere Darstellung zu einem beliebigen Zeitpunkt i bei fin=1 für Zelle 30&sub1; in Fig. 18. Die Übereinstimmung in Zelle 30&sub1; zum Zeitpunkt i bewirkt, daß fout von Zelle 30&sub1; zum Zeitpunkt i "1" ist. Die Übereinstimmung in Zelle 30&sub2; zum Zeitpunkt i+1 bewirkt, daß fout von Zelle 30&sub2; zum Zeitpunkt i+1 "1" ist; dies zeigt eine Übereinstimmung eines Charakteristikums an. Dadurch wiederum wird jedem Mantissenbit eine Bewegungsänderung signalisiert. Als Folge fährt das Mantissenbit mit dem nächsten Schritt fort. Zum Zeitpunkt i+2 wird das am weitesten links liegende Mantissenbit m&sub1; am Rollausgang mrout von Zelle 38&sub1; geliefert, und das "Rollsignal" wird an den Eingang bin der nächsten Zelle 382 in derselben Reihe geliefert. Dieser Ablauf setzt sich fort, bis alle Mantissenbits eines einzelnen Summanden rollen. Zu diesem Zeitpunkt werden sie vertikal ausgerichtet; sie bewegen sich diagonal und der Übergang ist daraufhin abgeschlossen.
- Das Verhalten einer "Farbzelle" oder Siebbereichszelle läßt sich präzise in Boolschen Variablen ausdrücken:
- fout + fin
- Wenn die Anzeige der Passung falsch ist, dann wird ins nach unten übertragen:
- mrout ← msin fin
- Die Rampenbewegung wird fortgesetzt, wenn sie bereits begonnen wurde. Sie beginnt, wenn die Anzeige der Passung richtig ist.
- mrout ← mrm (msin fin).
- In der obigen Beschreibung wurden Bewegungsänderungen der Mantissenbits so behandelt, als würden Summanden das Sieb nacheinander einzeln durchlaufen. Tatsächlich befindet sich das Sieb in einer Pipeline-Anordnung und die Summanden durchlaufen ihren Weg durch das Sieb einzeln nacheinander, wie dies in Fig. 4 dargestellt ist. An dieser Stelle bietet es sich an, die Bezeichnungen zu ändern. wi gibt ab jetzt den gesamten Summanden i an, und wi,j, j=1, . . . , M+C bezeichnet das Bit j dieses Summanden. In ähnlicher Weise bezeichnet mi die Mantisse von wi und mi,j, j=1, . . . , M bezeichnet das Bit j von mi. Ist das Charakteristikum des Summanden wi+1 kleiner als das des Summanden wi, dann ist wi+1 eine kleinere Zahl als wi. Von einem beliebigen j an wird das Mantissenbit j von wi, das heißt, mij, dazu bestimmt, zur rechten von mi+1,j im Superakkuinulator α&sub0; plaziert zu werden. Wie dies in Fig. 19 dargestellt ist, liegt die Rampe, die von wi+1 gefolgt wird, über der, die von wi gefolgt wird, so daß einige der Mantissenbits von wi+1 gleichzeitig dieselben Rampenzellen belegen, die von den Mantissenbits von wi belegt sind. Die Folge ist eine "Kollision". Ein Beispiel hierfür ist in Fig. 20 dargestellt, wobei die Mantissenbits des Summanden wi durch horizontale Schraffur gekennzeichnet werden. Die Mantissenbits des Summanden wi+1 sind durch vertikale Schraffur gekennzeichnet.
- Angenommen, das Mantissenbit j des undekodierten Summanden mit der Bezeichnung mij kollidiert mit dem Mantissenbit j-1 des dekodierten Summanden i+1 (mi+1j-1). Zwei Fälle werden in Betracht gezogen:
- 1. Während des Zeitintervalls, indem die Mantissenbits von wi+1 die Mantissenbits von wi durchlaufen, bleibt wi undekodiert. In diesem Fall läuft wi weiter nach unten, während wi+1 seine Rampenbewegung fortsetzt; beide bleiben durch die Kollision unbeeinflußt. Diese Sequenz ist in den Fig. 21-26 dargestellt und ähnelt zwei Wellenfronten Licht, die sich gegenseitig stören. Am Kontaktpunkt stören sich die Wellenfronten. Sie treten jedoch relativ unbeeinflußt wieder aus, indem sie sich einfach gegenseitig durchlaufen.
- 2. Während des Zeitintervalls, indem die Mantissenbits von wi+1 die Mantissenbits von wi durchlaufen, wird wi dekodiert. In diesem Fall beginnen die Mantissenbits von wi mit ihrer Rampenbewegung. Diese Sequenz ist in den Fig. 27-31 dargestellt. Überraschenderweise durchlaufen sich in beiden Fällen die Mantissenbits der Summanden gegenseitig und bleiben durch die Kollision unbeeinflußt.
- Solche Kollisionen werden als Übertragungskollisionen bezeichnet, das heißt, die Mantissen werden durch sich hindurch übertragen.
- Es kann jedoch der Fall auftreten, daß zwei Mantissenbits, die in einem Zyklus kollidieren, auch in nachfolgenden Zyklen kollidieren. Tritt dieser Fall ein, so werden die Siebzellen von den Mantissenbits zusammen belegt. Ein Beispiel dieses Phänomens ist in der Sequenz der Fig. 32-37 abgebildet. Das Mantissenbit j des Summanden wi belegt nur dann zusammen mit dem Mantissenbit k des Summanden Wi+h die Siebzelle, wenn j = k + h und das Charakteristikum von wi um genau h Einheiten größer ist als das von Wi+h.
- Eine solche Siebzelle kann von höchstens M weiteren Mantissenbits belegt sein. Dieses Ziel ist durchaus erreichbar. Fig. 38-41 stellen diesen schlimmsten Fall für M = 4 dar. Das Charakteristikum von wi+1 ist um eine Einheit größer als das von wi+2. Das Charakteristikum von wi+2 ist um eine Einheit größer als das von wi+3. Das Charakteristikum von wi+3 ist um eine Einheit größer als das von wi+4. Wenn die Zellen zur Übertragung in der Lage sein müssen, im schlimmsten Fall M Mantissenbits pro Zyklus, dann muß der Bereich einer solchen Siebzelle gleich Ω (M) sein.
- Diese gemeinsame M-Belegung kann jedoch vermieden werden, indem eine Siebzelle des Bereichs 0(1) ermöglicht wird, wie der nachfolgenden Beschreibung entnommen werden kann. Da gemeinsam belegende Mantissenbits auch während ihrer Rampenbewegung dieselbe Zelle belegen, sind sie für dieselbe Bitposition im Superakkuinulator bestimmt, wo sie hinzugefügt werden. Wenn also Mantissenbits gemeinsam eine Zelle belegen, können sie sofort hinzugefügt werden und erzeugen dann ein Summenmantissenbit und ein Trägermantissenbit. Dieses Verfahren wird nachfolgend als Koaleszenz bezeichnet, was eine Form der Signalkombination darstellt. Das Summenmantissenbit rollt weiterhin dieselbe Rampe hinab wie die zuvor kollidierten Mantissenbits, während das Trägermantissenbit eintritt und die benachbarte linke Rampe für Mantissenbits der höheren Ordnung hinabrollt. Sobald Summen- und Trägermantissenbits einmal erstellt sind, verhalten sie sich genauso wie jedes andere rollende (das heißt, dekodierte) Mantissenbit und können selbst mit anderen Mantissenbits kollidieren. Fig. 42-47 stellen die Erzeugung von dekodierten Summen- und Trägerbits im Fall von M = 4 dar, wobei aufeinanderfolgende Summanden gleichzeitig dekodieren. Es ist zu beachten, daß eine gemeinsame Belegung einer Zelle durch die Koaleszenz vermieden wird. Daß dies ein allgemeines Phänomen ist, läßt sich an der Feststellung erkennen, daß die Anzahl an Mantissenbits, einschließlich derjenigen, die durch Koaleszenz erzeugt wurden, die gleichzeitig in eine Siebzelle eintreten, höchstens zwei beträgt.
- Die resultierende erweiterte Siebzelle 38 wird in Fig. 48 dargestellt und ist so ausgelegt, daß sie sich sowohl für die Übertragung als auch für die Koaleszenz richtig verhält. Eine Matrix der Zellen 38 kann eine Pipeline aus Mantissenbits verarbeiten, unabhängig von den relativen Größen der Charakteristika. Darüberhinaus ist der Bereich dieser Siebzellen 0(1). Es folgen die Eingabe-Ausgabe-Gleichungen für die Siebzellen. (Variablen auf der rechten Seite des Zuordnungsoperators (←) sind stets die "in"-Version der Variablen; diejenigen auf der linken Seite sind die "out"- Versionen. Folglich können diese Subskripts ohne Ambiguität fallen gelassen werden.)
- Die Anzeige der Passung wird weiterhin übertragen, ohne daß alle Mantissenbits geändert werden:
- f ← f.
- Sinkende Mantissenbits sinken auch weiterhin, sofern die Anzeige der Passung keine Bewegungsänderung signalisiert:
- ms ← ms.
- Das Mantissenrainpenbit wird auf eins gesetzt, wenn eine der folgenden Bedingungen zutrifft (treffen zwei zu, dann ist mr ← 0 und c ← 1):
- 1. Der Summand empfängt das Dekodiersignal (Passungssignal) auf diesem Zyklus und ms ist eins. Dann ist ms ← 0; mr ← 1, und das Bit beginnt zu rollen.
- 2. Ein rollendes Mantissenbit wird empfangen (dies kann das Summenbit einer vorherigen Kollision sein).
- 3. Ein Trägerbit auf eins wird aufgrund einer Koaleszenz in der obigen Siebzelle im vorherigen Zyklus empfangen. (Eine Analyse der Operation läßt erkennen, daß für alle Rampenbereichszellen mr und c während desselben Zyklus niemals beide Zellen gleichzeitig auf "1" gesetzt sind. Folglich können die Bedingungen 1 und 3 niemals gleichzeitig auftreten.)
- Jede dieser Bedingungen werden im nachstehenden Term reflektiert. Alle werden dann modulo 2( ) addiert:
- mr ← (f ms) mr C
- Das Trägerbit wird unter zwei Bedingungen gesetzt:
- 1. Eine Kollision zweier dekodierter Mantissenbits ist vorhanden (der erste Term unten),
- 2. Eine Kollision eines Mantissenbits (mr), welches das Summenbit einer vorherigen Kollision sein kann, mit einem Trägerbit. Dieser Fall wird im zweiten nachfolgenden Term ausgedrückt. Der Fall einer Kollision eines soeben dekodierten Mantissenbits und eines Trägerbits ist nicht möglich, wie dies aus der nachfolgenden Beschreibung hervorgeht.
- c ← (f ms mr) (mr c)
- Es ist wichtig zu wissen, daß die Ankunftszeit eines Mantissenbits im Superakkumulator nicht durch Dekodierung oder Kollision beeinträchtigt wird. Die Bewegung der Mantissenbits erfolgt nach dem Gesetz:
- Geschwindigkeit·Zeit = Distanz
- Die vertikale Distanz zum Superakkumulator wird in siebzellenreihen gemessen. Die Ankunftszeit von Mantissenbits (nicht die Ankunftsstelle) wird durch Dekodierung oder Kollision nicht beeinträchtigt, da die vertikale Geschwindigkeit der Mantissenbits von diesen Phänomenen unbeeinträchtigt bleibt. Die Geschwindigkeit des Hinabrollens ist 1 Reihe/Zyklus. Erstens bleibt diese Geschwindigkeit durch die Dekodierung unbeeinflußt; die Änderung der Rampenbewegung fügt lediglich der Mantissengeschwindigkeit eine horizontale Komponente hinzu. Zweitens ist die Übertragungskollision so ausgelegt, daß die Geschwindigkeit der beteiligten Mantissenbits unverändert bleibt. Die Koaleszenz erzeugt schließlich zwei Mantissenbits, doch jedes hat eine vertikale Geschwindigkeit, die mit der der kollidierenden Bits, nämlich 1 Reihe/Zyklus, übereinstimmt.
- Somit bleibt die Ankunftszeit der Mantissenbits, einschließlich der aus der Koaleszenz hervorgehenden, im Superakkuinulator durch Dekodierung oder Kollision unbeeinträchtigt.
- Diese Eigenschaft wird zur Synchronisation des Entladevorgangs im Superakkuinulator genutzt, wie dies an späterer Stelle beschrieben wird.
- Bis jetzt wurde ein zellularer Algorithmus und eine zellulare Architektur beschrieben, die als Eingabe eine unsignierte Gleitkommazahl akzeptiert und die ihre Mantisse in den richtigen Teil des Superakkumulators überträgt. Die Geschwindigkeit, mit der die Eingänge verarbeitet werden, ist 1 Gleitkommazahl/Zyklus. Der Chipbereich des Siebs ist 0((2C + M)²). Das Verhältnis zwischen Chipbereich und Summandeingangsgeschwindigkeit (A/U) ist somit 0((2C + M)²). Dies erscheint möglicherweise übermäßig groß, da ein Bauinnetzwerk, obwohl es nicht zellular ist, das zum selben Ergebnis führt, einen Bereich und ein A/U-Verhältnis von 0((2C + M)log(2C + M)). Daher wäre es wünschenswert, die Architektur/den Algorithmus des Systems der vorliegenden Erfindung zu verstärken, um den Durchsatz zu erhöhen.
- In der bevorzugten Anordnung wird die Architektur/der Algorithmus verstärkt, so daß der Durchsatz nicht eine Zahl pro Zyklus, sondern (2C + M)/M Zahlen pro Zyklus ist. Der Bereich bleibt jedoch 0((2C + M)²), das heißt, sein A/U-Verhältnis ist 0(M(2C + M)). Im Gegensatz zum Baumnetzwerk ist diese Architektur zellular.
- Fig. 49 stellt in vergrößerter Form die grundlegende Siebanordnung dar, wie sie in Fig. 1 mit dem Dekodierbereich I des Charakteristikums gezeigt wird, wo die Charakteristika in Übereinstimmung gebracht und die entsprechenden Rampen ausgewählt werden, sowie einen M-Bit breiten Sinkbereich II (Bezugsnummer 34), wo die Mantissenbits direkt nach unten verlaufen und wo außerdem der Übergang zur Rampenbewegung stattfindet, sowie einen Rampenbereich 111 (Bezugsnummer 36), wo die Mantissen ihre entsprechenden Rampen hinabrollen. Der Superakkuinulator α&sub0; mit der Länge 2C + M ist das Ziel der Mantissen. Der Sinkbereich befindet sich direkt oberhalb der M- Zellen des Suprakkumulators hoher Ordnung. Diese Zellen besitzen von links nach rechts die Numerierung 2C + M-1, 2C + M-2, . . . , 2C Mantissen, die für diesen Schlitz höchster Ordnung bestimmt sind und die Bezeichnung [2C + M-1,2C] tragen (diejenigen mit dem höchsten zulässigen Charakteristikum 2C-1), sinken direkt nach unten und rollen niemals auf einer Rampe.
- Anschließend werden die Verbesserungen dieser Anordnung beschrieben. Zunächst wird angenommen, daß die Bereiche II und 111 des Siebs der Krümmung der Seitenwände eines Zylinders angepaßt werden, wie dies in der Vorderansicht in Fig. 50 und im Querschnitt von Fig. 51 dargestellt ist. Außerdem wird angenommen, daß der Dekodierbereich I des Charakteristikums gefaltet wird, so daß es mehr oder weniger senkrecht zum Zylinder angeordnet ist. Ein zweites Sieb 16a ist in den Fig. 52 und 53 abgebildet und kann so angeordnet sein, daß sich sein Sinkbereich 34a über dem Schlitz [2C-1, 2C-M + 1] des Superakkumulators befindet. Von oben gesehen befindet sich der Sinkbereich 34a des zweiten Siebs 16a genau um M Positionen im Gegenuhrzeigersinn in Bezug auf den Sinkbereich 34 des Siebs 16, das in den Fig. 50 und 51 abgebildet ist. Im Sieb 16a werden Mantissen, die für den Superakkumulatorschlitz [2C-1, 2C- M] bestimmt sind, dort durch Bewegung vollständig innerhalb seines Sinkbereichs 34a, niemals unter Verwendung von Rampen, positioniert. Das Erreichen eines anderen Schlitzes erfordert eine Rampenbewegung im Rampenbereich 36a des Siebs 16a. Eine Mantisse, die beispielsweise für den Schlitz [2C, 2C-M] bestimmt ist, wird mit Rampenbewegung positioniert. Die Bewegung einer solchen Mantisse ist in Fig. 52 skizzenhaft dargestellt. Die Bewegung der Mantisse wie in Fig. 52 dargestellt erscheint unter Änderung der Richtung, indem sie am linken und am rechten Rand des Siebs abgelenkt wird. Tatsächlich ist ihre Bewegung ein stetiges Hinabrollen im Uhrzeigersinn einer spiralförmigen Rampe. Fig. 54 zeigt die Sequenz von Charakteristika entsprechend aufeinanderfolgender Stufen des Charakteristikum- Dekodierbereichs 32 des Siebs 16. Fig. 55 zeigt die entsprechende Sequenz für verschiedene Stufen des Charakteristikum-Dekodierbereichs 32a des zweiten Siebs 16a.
- Als nächstes wird ein Sieb mit zwei Sinkbereichen, das heißt, ein Sieb, in das zwei Zahlen gleichzeitig eintreten können, angenommen. Fig. 56 liefert eine Vorderansicht eines solchen Siebs 40, während Fig. 57 das Sieb 40 in einer Draufsicht darstellt. Das Sieb 40 der Fig. 56 und 57 ist im wesentlichen eine übereinanderliegende Anordnung der Siebe 16 und 16a in den Fig. 50 bzw. 52. In diesem Sieb 40 überlappen sich die Sinkbereiche und die Rampenbereiche. Dies hat folgende Konsequenzen: Die Anzeige f der Passung des ersten Charakteristikum-Dekodierbereichs wandelt die Sinkbewegungen in Rollbewegungen um und ist nur im ersten Sinkbereich ausschlaggebend. In ähnlicher Weise ist die zweite Anzeige der Passung des zweiten Charakteristikum-Dekodierbereichs nur im zweiten Sinkbereich ausschlaggebend. Die Ausbreitung jeder Anzeige der Passung ist am rechten Rand des entsprechenden Sinkbereichs begrenzt.
- Nun werden die möglichen Kollisionen betrachtet. Eine Zelle im Sinkbereich kann, wie auch zuvor, Sinkmantissenbits, die von oben eintreten sowie Rollmantissenbits, die von der nordwestlichen Diagonale eintreten, aufweisen. Im Gegensatz zu Sieb 16 jedoch können einige der Zellen in der im Sinkbereich ganz links liegenden Spalte von Rollmantissenbits belegt werden. Der an vorhergehender Stelle beschriebene Koaleszenzmechanismus funktioniert selbst in dieser neuen Umgebung korrekt. Fig. 58 zeigt durch diagonale Strichelung diejenigen Teile der Sinkbereiche 34 und 34a an, die Rollmantissenbits aufweisen können, die in die am weitesten links liegende Spalte der Zelle eintreten können. Auf diese Weise können in diesem neuen Sieb 40 zwei Pipelines an Mantissen parallel positioniert werden.
- Schließlich wird angenommen, daß das zylindrische Sieb weiter verstärkt wird, so daß der Umfang mit sinkbereichen versehen ist. Da jeder Sinkbereich eine Breite von M Bits aufweist, kann das zylindrische Sieb
- S = [(2C + M)/M]
- parallel arbeitende getrennte Pipelines an Mantissen aufweisen. Angenommen, das zylindrische Sieb ist mit diesen Pipelines ausgestattet und die getrennten Pipelines (sinkbereiche) bedecken das Sieb. Das heißt, man nimmt an, daß (2C+M)/M eine ganze Zahl ist. Ein solches Sieb wird als MDSR-Sieb bezeichnet. Ein solches Sieb 42 ist in einer Vorderansicht in Fig. 59 und in einer Draufsicht in Fig. 60 abgebildet. Das Sieb 42 weist die getrennten Sinkbereiche 34i i = 1, . . . , S auf, wobei jeder Sinkbereich einen entsprechenden Charakteristikum- Dekodierbereich 32i aufweist. Das Sieb 42 ist zellular und hat einen Bereich 0((2C+M)²).
- Es wird ersichtlich werden, daß der zellulare Koaleszenz- Mechanismus selbst in einem MDSR-Sieb korrekt funktioniert, da die Anzahl der Mantissenbits einschließlich der durch Koaleszenz erstellten Mantissenbits, die gleichzeitig eine MDSR-Siebzelle belegen, höchstens zwei beträgt. uij bezeichnet die Siebzelle in der Reihe i und der Spalte j. ui bezeichnet die Reihe i an Siebzellen. Da die Siebgeometrie zylindrisch ist, ui, j+2C+M = ui,j. (Später wird zur Bezeichnung des Werts der Boolschen Variablen b entsprechend der Zelle uij das Kürzel uij·b verwendet. Vor der Dekodierung der ersten Mantisse sind alle Bewegungen vertikal und es können keine Kollisionen eintreten. Eine Kollision zweier Bits ist ein Übergang oder eine Koaleszenz. In beiden Fällen ist das Resultat zwei Bits, wobei sich jedes der Bits in einer der beiden soeben beschriebenen Arten bewegt. Somit kann in keinem dieser Fälle eine einzelne Zelle zwei Bits an eine andere Zelle liefern.
- Es bestehen keine weiteren Möglichkeiten für Bewegungen oder Kollisionen. Zum Beweis hierfür wird angenommen, daß drei oder mehr Bits zum ersten mal in Zelle uij ankommen. Nachdem alle vorhergehenden Bewegungen beschrieben wurden, daß von den drei in Zelle uij ankommenden Bits zwei von Zelle ui-1,j-1 (das heißt, von oben) stammen, oder daß zwei von Zelle ui-1,j-1 (das heißt, von oben links) stammen. Dies ist ein Widerspruch, da vor der ersten angenommenen dreifachen Kollision keine Zelle an eine andere Zelle zwei Bits weiterleiten kann.
- Bisher kann gemäß Beschreibung das Verfahren der vorliegenden Erfindung als Umwandlung der Gleitkommadarstellung in Fixpunktdarstellung betrachtet werden. Der nächste Schritt ist die Akkumulation. Die Akkumulation wird in Fixpunktdarstellung durchgeführt, um einen Informationsverlust (das heißt, Rundungsfehler) auszuschließen. Der einzige Unterschied zwischen dem Akkumulator dieser Erfindung und einem normalen Akkumulator besteht darin, daß der vorliegende Akkumulator größer ist. Er besitzt L = 2C + M + F Bits (wobei angenommen wird, daß F und C beide 9 sind und M 48 ist, so daß L = 569 ist), so daß er ohne Informationsverlust sehr große Zahlen zu sehr kleinen Zahlen hinzuaddieren kann.
- Es wird angestrebt, daß der Basis-Superakkumulator aus einer linearen Anordnung von L identischen Zellen besteht.
- Fig. 61 stellt ein solches Schema dar. In diesem Schema sind die Bits mr, ms und c Ausgänge der Siebzellen 38 und Eingänge an die Akkumulatorzellen 50. Es wird daran erinnert, daß höchstens einer der Ausgänge ins und c einer beliebigen Siebzelle 38 während jedes beliebigen Zyklus den Wert "1" hat. Aufgrund dieser Eingänge muß eine Akkumulatorzelle 50 ein Summenbit und ein Trägerbit erzeugen. Das Summenbit ist eine Eingabe derselben Akkumulatorzelle im nachfolgenden Zyklus (daher der Begriff Akkumulator). Das Trägerbit ist eine Eingabe der benachbarten Akkumulatorzelle höherer Ordnung. Demzufolge besteht die Möglichkeit für vier Eingaben mit dem Wert "1". In diesem Fall ist eine Trägerbitausgabe der zweiten Ordnung erforderlich. Das Trägerbit der zweiten Ordnung ist eine Eingabe der Akkumulatorzelle, der sich um zwei Positionen links befindet.
- Um das Trägerbit der zweiten Ordnung zu vermeiden, ist das Schema durch Erhöhung des Siebs mit einer speziellen Reihe aus Zellen an der Basis des Siebs zu ändern. Fig. 62 stellt dieses geänderte Schema dar. Zunächst ist zu beachten, daß die unterste Reihe der Siebzellen 52 sich nun vom Rest unterscheidet. Jede Zelle 52 in der untersten Reihe erzeugt ein Summenbit sa und ein Trägerbit ca. Das Summenbit sa ist eine Eingabe an die geänderte Akkumulatorzelle 54, und das Trägerbit ca ist eine Eingabe an die benachbarte Siebzelle höherer Ordnung. Diese neuen Siebzellen 52 haben vier Eingänge: mr, ms und c aus der höherrangigen Reihe von Siebzellen und ca aus der tieferrangigen (rechts) benachbarten Reihe der Zelle. Da nur entweder ms oder c gleich "1" sein können, ist das Maximum an Eingängen, die gleich "1" sein können, drei. Daher sind die Bits sa und ca ausreichend zur Charakterisierung der Ausgabe einer Siebzelle 52 der unteren Reihe. Jede Superakkumulatorzelle 54 besitzt nun die drei Eingänge sa, s und c, von denen jeder die Ausgänge s und c erzeugt.
- Die Eingabe-Ausgabe-Gleichungen für jede Siebzelle der unteren Reihe sind wie folgt:
- sa ← mr ms c ca
- ca ← (mr ms) (mr c) (mr ca) (ms ca) (c ca)
- Für die Siebzelle aus der Reihe der tieferen Ordnung gilt cain 0.
- Die Eingabe-Ausgabe-Gleichungen für jede Superakkumulatorzelle sind wie folgt. Das Summenbit s wird erzeugt und für jeden nachfolgenden Zyklus gespeichert:
- s ← sa c
- Das Trägerbit c wird erzeugt und an den Nachbar höherer Ordnung gesendet:
- c ← (s sa) (s c) (sa c)
- Für die Akkuinulatorzelle der niedrigeren Ordnung gilt cin 0. Die untere Reihe der Siebzellen ist selbst ein Akkuinulator, da sie die Trägerbits ca akkumuliert. Diese Tatsache tritt bei der Vervollständigung einer Summe und dem Beginn der nächsten Summe ins Spiel, wie dies nachfolgend beschrieben wird.
- Im Zyklus, der der Eingabe der letzten Summandinantisse(n) in der Abschrägung oder in den Abschrägungen folgt, wird in jede Abschrägung ein Initialisierungswort eingegeben. Das Initialisierungswort besteht aus einer Nullmantisse und einem geeigneten Charakteristikum. Das Charakteristikum besteht aus einer Abschrägung und ist derart ausgelegt, daß jedes initialisierende Mantissenwort den entsprechenden Sinkbereich nach unten durchläuft und den Superakkumulator erreicht, ohne dekodiert zu werden. Im Zyklus nach der Eingabe der Initialisierungswörter, tritt ein Summenendsignal σ in die am weitesten links liegende Abschrägung ein. Dieses Summenendsignal tritt an der Zelle in die Abschrägung ein, an der auch das am meisten bedeutungstragende Mantissenbit eintritt, wie dies der allgemeinen Darstellung von Fig. 63 zu entnehmen ist. Die am weitesten links liegende Abschrägung wird willkürlich ausgewählt als diejenige Abschrägung, dessen Ausgänge in die Zellen ui,j, j = 1, . . . , M des zylindrischen Siebs eintreten. σ wird im Zyklus nach der Eingabe des letzten Bits des initialisierenden Nullwortes auf "1" und in allen anderen Zyklen auf "0" gesetzt.
- Die am weitesten links liegende Abschrägung unterteilt und verbreitet das Signal σ, so daß im Zyklus nach dem Eingang in das Sieb des letzten Bits der initialisierenden Nullmantissen das Signal σ gleichzeitig in die Siebzellen u1,j, j = 1, . . . , M sowie in die oberste Zellenreihe in dem am weitesten links liegenden Charakteristikum-Dekodierbereich eintritt. Die näheren Einzelheiten der Auslegung der Abschrägungszelle zur Erzielung dieser σ-Verbreitung wird anhand der folgenden Beschreibung der σ-Verbreitung im Sieb deutlich.
- Die Summanden einer neuen Summe können im selben Zyklus wie das Summenendsignal beginnen, in die Abschrägungen einzutreten. Wenn ein Summenendsignal σ=1 die unterste Reihe der Siebzellen erreicht, sind die Bits mr, ms und c allesamt Null, was aus den Nullmantissen resultiert. Während dieses Zyklus hat also jede Siebzelle der untersten Reihe höchstens eine Eingabe mit dem Wert "1", das heißt die Eingabe cain, deren Wert "1" aus der Addition des letzten Bits der letzten wahren Summanden, die in die unterste Reihe eintreten, resultiert. Folglich gilt für jede dieser Zellen caout 0 und saout cain. Auf diese Weise wird die untere Reihe der Siebzellen entladen und neu initialisiert.
- N bezeichnet die Anzahl an Summanden und T bezeichnet den Zyklus, in dem das erste Bit sa in den Superakkumulator eintritt. Danach wird einschließlich der Eingabe der initialisierenden Nullmantissen das letzte Bit sa im Zyklus T + N/S + M-1 akkumuliert, wobei x die kleinste ganze Zahl bezeichnet, die größer als oder gleich x ist. Einschließlich dieses letzten Zyklus kann jedoch die Verbreitung des Trägerbits im schlimmsten Fall L zusätzliche Zyklen benötigen. Ein Beispiel dieses schlimmsten Falls ist in Fig. 64 dargestellt.
- Es ist wünschenswert, daß das systolische Supersummiergerät mit hochwertiger Pipeline-Ausstattung versehen ist. Nachdem ein Satz an Summanden in den Superakkumulator eingespeist wurde, muß sofort die Verarbeitung einer weiteren Summe beginnen. Es ist daher erforderlich, den Superakkumulator zu entladen und ihn neu einzustellen, sogar noch bevor die L Trägerauflösungszyklen verstrichen sind. Diese Anforderung resultiert in einer Pipeline aus Superakkuinulatoren, deren Zweck, unter anderen Summenabschlußaufgaben, die Vervollständigung der Trägerauflösung ist. Diese Pipeline aus Akkumulatoren wird nachfolgend als A-Pipeline bezeichnet.
- Zur Bestimmung der Anforderungen für die schlimmsten Fälle für die Anzahl der Akkumulatoren in der A-Pipeline ist zunächst zu beachten, daß eine Summe mindestens aus zwei Summanden besteht. Wenn N = 2 und S ≥ 2, dann würde das erste Bit einer nachfolgenden Summe im Superakkumulator M+1 Zyklen nach dem Beginn der Ankunft dieser Summe minimaler Länge angekommen sein. (Dies schließt einen Zyklus für das Löschen von Nullmantissen zwischen Summen ein.) Daher ist M die geringste Anzahl an Zyklen, für die jede beliebige Summe den ursprünglichen Superakkuinulator belegt. Durch Wiederholung der Summe dieses schlimmsten (kürzesten) Falls erhält man die Akkumulatoren- Pipeline des schlimmsten (längsten) Falls; diese Pipeline wird zur Auflösung der Trägerbitverbreitung benötigt: (2C+M)/M Superakkuinulatoren. Wiederum werden diese Akkumulatoren zusätzlich zum ursprünglichen Akkumulator benötigt.
- Die Anzahl der Superakkumulatoren werde mit P = (2C+M)/M + 1 bezeichnet. Für die vermuteten Werte von C und M gilt P = (2&sup9; + 48)/48 + 1 = 13. Die Anordnung wird schematisch in Fig. 65 dargestellt.
- In der folgenden Beschreibung sei der Superakkumulator i bezeichnet durch αi = 0, . . . , P, und die Zelle j des Superakkumulators i bezeichnet durch αi,j, j = 1, . . . , L. Der Index j numeriert die Zellen von rechts nach links in aufsteigender Reihenfolge der Bedeutung.
- Anschließend wird die Synchronisation der A-Pipeline beschrieben. Für 0 ≤ i ≤ P-1 wird der gesamte Akkumulator nach αi+1 in einem Zyklus übertragen. Diese Übertragung enthält die Inhalte aus dem Überflußbitbereich jedes Akkumulators. Dies wird erzielt durch Aufteilung und Übertragung des Summenendsignals σ, so daß dieses alle Zellen in einem bestimmten Akkuinulator und seinen Überflußbereich im selben Zyklus erreicht. Es erreicht alle Zellen, insbesondere in α&sub0;, genau einen Zyklus nach dem Eintreffen des letzten Bits sa in seiner Zelle α&sub0;. Darüberhinaus muß σ ohne Broadcasting übertragen werden. Die Siebanordnung der vorliegenden Erfindung wird zur Aufteilung und Übertragung von σ in zellularer Weise verwendet. Fig. 63 stellt die Aufteilung und Übertragung von σ sowohl durch die Abschrägung als auch durch die Siebzellen dar. (Obwohl das Sieb tatsächlich eine zylindrische Form aufweist, wie dies oben beschrieben wurde, wird es der Einfachheit halber in planarer Form dargestellt.) Aus Fig. 63 kann man schließen, daß lediglich die Mantissenzellen im ganz links liegenden Sinkbereich (Zellen ui,j, i = 1, . . . , 2C, j = 1, . . . , M) und der entsprechende ganz links liegende Charakteristikum- Dekodierbereich σ aufteilen müssen, da alle Zellen im unteren Dreieck des Siebs σ lediglich diagonal nach unten übertragen. Die Sinkbereichszellen ui,j, i = 1, . . . , 2C, j = 1, . . . , M sowie die Zellen des ganz links liegenden Charakteristikum- Dekodierbereichs werden so modifiziert, daß sie ein σ Statusbit mit der folgenden Eingabe-Ausgabe-Gleichung enthalten:
- σr ← σs
- Die Schnittstellenzellen ui,M, i = 1, . . . , 2C, das heißt, die am weitesten rechts liegende Spalte an Siebzellen im ganz links liegenden Sinkbereich besitzen ein zusätzliches σ Statusbit mit der folgenden Eingabe-Ausgabe-Gleichung:
- σr ← σs
- Diese Schnittstellenzellen werden in Fig. 66 dargestellt. Das untere Dreieck der verbleibenden Siebzellen überträgt σ lediglich diagonal. Ein Zellendiagramm für diese unteren Dreieckszellen ist in Fig. 67 dargestellt; diese Dreieckszellen besitzen die folgende neue Übertragungsgleichung:
- σr ← σr
- Die Zellen im oberen Dreieck des Siebs können dieselben sein wie in Fig. 67 dargestellt, wobei die σ-Eingänge und -Ausgänge unverwendet bleiben.
- Im unteren Teil des Siebs verbreitet sich σ durch die Pipeline der Akkumulatoren. Wenn die Zellen von αi im Zyklus T einen Wert von σ erhalten, dann erhalten die Zellen von αi+1 diesen Wert von σ im Zyklus T+1. Die Zellen von αi müssen ihre Inhalte an αi+1 übertragen, wenn sie das Signal σ=1 erhalten; andernfalls müssen sie sich so verhalten, wie dies oben beschrieben wurde. Ein Zellendiagramm für eine αi Akkumulationszelle ist in Fig. 68 dargestellt. Eine schematische Darstellung der Trägerauflösungs-Pipeline ist in Fig. 69 enthalten. Die Boolschen Variablen s und c besitzen nun zwei Varianten: eine für Normalbetrieb (wenn σ=0 ist) und eine τ-Variante für die Registerübertragung sτ und cτ (wenn σ=1 ist). Es folgen die Eingabe-Ausgabe-Gleichungen für eine allgemeine Zelle αij.
- Das Übertragungssignal σ wird einfach übertragen:
- σ ← σ.
- Das Summenbit wird berechnet wie zuvor, wenn keine Registerübertragung stattfindet. Wenn eine Registerübertragung stattfindet, wird das Summenbit aus den eingehenden Übertragungsvariablen berechnet. Es ist zu beachten, daß Bit sa nur für α&sub0; existiert:
- s ← ( (s + sa c)) (σ (sa cτ)).
- Die Übertragungsversion des Summenbits ist 0, wenn keine Übertragung stattfindet:
- sτ ← σ (s sa c).
- Das Trägerbit wird berechnet wie zuvor, wenn keine Registerübertragung stattfindet. Wenn eine Registerübertragung stattfindet, wird das Trägerbit aus den eingehenden Übertragungsvariablen berechnet.
- c ← ( ((s sa) (s c) (sa c))) (α sτ cτ).
- Die Übertragungsversion des Trägerbits ist Null, sofern keine Übertragung erfolgt:
- cτ ← ((s sa) (s c) (sa c)).
- Nun werden die Begrenzungsbedingungen bezeichnet. Für alle i,j, αi,0·cin α0,j·cτin 0, wobei αi,j·c das Trägerbit der Zelle j des Superakkumulators i und für alle j, α0,j·sτin 0 bezeichnet. In diesen Begrenzungsbedingungen beziehen sich die Tiefstellungen "in" auf die Eingabeversion einer Variablen.
- Der normalisierende Bereich - Endgültige Kodierung der Summe
- Die endgültige Kodierung der Summe besteht aus mehreren Prozessen. Es gibt die normalisierende (die linke Verschiebung einer Summe zur Entfernung führender Nullen) und die Charakteristikum-Kodierung (die entsprechende Bestimmung des Exponenten der Summe). Diese Prozesse können beide gestartet werden, wenn eine Summe nach unten zu einem α&sub1; gedrückt wird. Eine Trägerverbreitung wird im allgemeinen nicht vervollständigt, wenn dies der Fall ist. Daher wird die normalisierende und die Charakteristikum-Kodierung mit der Trägerauflösung kombiniert. Der letzte Schritt der endgültigen Kodierung ist die Rundung. Die Rundung wird normalerweise erst dann ausgeführt, wenn die anderen drei Prozesse abgeschlossen sind. Das Summiergerät der vorliegenden Erfindung führt die Rundung allerdings auch dann aus, während die Trägerauflösung noch läuft, jedoch nicht bevor die formale normalisierende und charakterisierende Kodierungen selbst abgeschlossen sind. (Wie bereits beschrieben wurde, kann die ursprüngliche Summe entsprechend der positiven und negativen Terme in zwei unsignierte Untersummen aufgeteilt werden. Die beiden vervollständigten Untersummen sind nach Beendigung der formalen normalisierenden und charakterisierenden Kodierung, jedoch vor der Rundung, zu kombinieren. Diese Änderung ließe sich in einfacher Weise implementieren. Die Summierung signierter Summanden wird nachfolgend beschrieben.) Im Interesse der Leistungsfähigkeit werden diese vier Prozesse multiplexiert.
- Der Klarheit halber und zum einfacheren Verständnis wird die Beschreibung nun schrittweise fortgeführt. Zunächst wird eine Nicht-Pipeline-Anordnung für die normalisierende und die charakterisierende Kodierung unter der Annahme, daß alle Träger aufgelöst werden, beschrieben. Anschließend werden die erforderlichen Änderungen zur Gewährleistung einer korrekten Funktion in Anwesenheit der Trägerauflösung einbezogen. Danach wird die Rundung durchgeführt und im Gerät ein weiteres Mal Änderungen vorgenommen, um die korrekte Funktion aller der miteinander verknüpften Prozesse sicherzustellen. Damit ist die Nicht-Pipeline-Anordnung abgeschlossen. In einem letzten Schritt wird die Anordnung zellular gemacht. Dieser letzte Schritt erfordert weitere Änderungen der Anordnung. Wie bereits erwähnt wurde, muß es sich bei der Gerätausgabe um eine Gleitkommazahl in R(b, , e1, e2) handeln. Aufgrund der Länge der Akkumulatoren kann die tatsächliche Summe eine Fixpunktzahl sein, deren Gleitkommadarstellung in R(b, . . . ,) einen Exponenten außerhalb des Intervalls [e1, e2] besitzt. Dies stellt eine Überflußbedingung des Geräts dar; in diesem Fall ist eine Fehlerausgabe durchzuführen.
- Zum gegenwärtigen Zeitpunkt wird davon ausgegangen, daß alle Träger aufgelöst werden. Zur Fortsetzung wird dieser Zähler eingeführt:
- exp:counter [1 . . . C],
- genannt "exp" mit der Kapazität C. Außerdem wird dieses Register eingeführt:
- mant:register [1 . . . ],
- genannt "mant" mit Zellen. Wie bereits angegeben wurde, ist L = 2C + M + F, so daß α1,L die am weitesten links liegende Zelle (der höchsten Ordnung) im Superakkumulator α&sub1; ist. Das Verfahren zur Erzielung einer normalisierten Mantisse und zur Kodierung des Charakteristikums kann durch folgendes Verfahren beschrieben werden.
- {
- exp:counter [2 . . . C]; /* enthält Charakteristikum, wenn erledigt */
- mant:register [1 . . . ); /* enthält Mantisse, wenn erledigt */ i: integer; exp ← 2C-1;
- While α1,L·s = 0 do } exp ← exp -1; shiftleft super accumulator; };
- for i ← 1 to do { shiftleft mant; mant [1] ← α1,L·s; shiftleft super accumulator } }
- Die Fig. 70 und 71 stellen diese Normalisierungs/charakteristikum-Kodierprozedur dar, wobei Fig. 70 die Inhalte der verschiedenen Register vor der Normalisierung und Fig. 71 die Register nach der Normalisierung zeigt.
- Anschließend wird eine Implementierung dieser Prozedur in zellularer Hardware beschrieben. Eine schematische Darstellung dieser Anordnung wird in Fig. 72 gezeigt. Zusätzlich zum Superakkuinulator enthält die Hardware das Mant-Register 60, das die normalisierte Mantisse enthält, und ein - Verzögerungselement 62 zur Zeiteinstellung der Erzeugung eines Modussignals. Dieses Modussignal beendet die Verschiebung von Superakkumulatorbits in das Mantissenregister. Die Hardware enthält außerdem einen C-Zellen-exp-Zähler 64, der ausführlich in Fig. 73 dargestellt ist und der das Charakteristikum enthält, und schließlich ein Register 66 für eine "Normalisierungs"-Variable , die von 1 auf 0 gesetzt wird, wenn das s-Bit von α1,L gleich "1" (nachfolgende Bezeichnung α1,L·s = 1) ist. Das heißt, zeigt an, ob alle führenden Nullen aus dem Superakkumulator verschoben wurden oder nicht.
- Zur Vereinfachung der Synchronisation und der Steuerung des Superakkuinulators wird die Verschiebung bedingungslos implementiert, das heißt, die Bedingung "while α1,L·s = 0" in der obigen Prozedur wird fallengelassen, so daß die Inhalte von α&sub1; in jedem Zyklus nach links verschoben werden. Zur weiteren Vereinfachung der Steuerung werden die s-Bits, die aus dem Superakkumulator herausverschoben werden, in das Mant-Register hineinverschoben. Hierfür gibt es kein berechnetes Startsignal. Die Initialisierung von Variablen wird im Zusammenhang mit der Beschreibung der Pipeline-Anordnung behandelt. Zum gegenwärtigen Zeitpunkt wird angenommen, daß die Normalisierungsstatusvariabel n anfänglich "1" ist. Solange α1,L·s = 0 ist, behält seinen Wert "1". Dies zeigt den unnormalisierten Status an. Wenn α1,L·s = 1 ist, dann ist n "0".
- Der Wert von wird für den exp-Zähler 64, der anfänglich 2C -1 ist, als Dekrementierungssignal verwendet. Jede Zelle im Zähler 64 enthält ein Bit, das mit e bezeichnet wird. Der Zähler 64 ist ein einfacher zellularer (Abwärts-) Zähler der Länge C, so daß die Verbreitung ganz sicher C Zyklen, nachdem die Mantisse im Superakkumulator normalisiert ist, vollständig ist. Die Eingabe- Ausgabe-Gleichungen der Zellen von Zähler 64 sind wie folgt:
- e ← e + b.
- b ← b.
- Für die Zelle niedriger Ordnung von Zähler 64 gilt: bin n.
- Nun wird das Laden der Mantisse in den Mant-Register beschrieben. Der Mant-Register 60 ist eine linear angeschlossene Anordnung von Zellen. Jede Zelle hat zwei Betriebsarten: den "Shift"-Modus und den "Hold"-Modus. Diese beiden Betriebsarten werden durch ein Modussignal , das diese beiden Werte annimmt, überwacht. Jede Zelle befindet sich anfänglich im "Shift"-Modus. Die Anordnung aus Mantissenzellen fungiert folglich als ein Linksverschiebungsregister, und α1,L·s wird in die Mantissenzelle niedriger Ordnung verschoben. Bei Beginn der Normalisierung werden die führenden Nullen von α&sub1; in das Register 60 verschoben. Sobald die Mantisse in α&sub1; normalisiert ist, beginnt das Mantissenregister 60 mit dem Empfang der normalisierten Mantissenbits. In anderen Worten ausgedrückt, das Mantissenregister sollte genau Zyklen, nachdem die Mantisse im Superakkumulator normalisiert ist, mit der Linksverschiebung aufhören, da genau an diesem Punkt das Mantissenregister 60 die korrekte Mantisse enthält. Ein Modussignal "hold" wird anschließend genau nach Zyklen, nachdem der Superakkumulator normalisiert ist, an alle Zellen des Registers 60 gesendet, das heißt, genau Zyklen, nachdem in den "normalisierten" Status (n=0) gesetzt wurde.
- Anschließend wird die Erzeugung des Modussignals beschrieben, gefolgt von der Umwandlung der Mantissenregisteroperation von einer eine Übertragung benötigende Operation in eine Operation, die rein zellular ist.
- Anfänglich gilt n 1. Wenn die "normalisierte" Anzeige in den normalisierten Status gesetzt wird, bleibt diese dort. Daher gilt:
- n ← n α1,L·s.
- Der Modus der Zellen im Register 60 schaltet sich genau Zyklen, nachdem n in den "normalisierten" Status geschaltet wurde, auf "hold". Dies wird erreicht, indem das -Zyklus- Verzögerungseleinent 62 zwischen dem -Signalregister 66 und der Modussignalleitung eingefügt wird.
- In Übereinstimmung mit der vorliegenden Beschreibung erfordert die Operation des Mantissenregisters 60 eine Übertragung des Modussignals. Zum besseren Verständnis der Übertragung dieser Anordnung auf eine zellulare Anordnung wird zunächst auf das Raum-Zeit-Diagramm der Mantissenregisteroperation Bezug genommen, die in Fig. 74 dargestellt ist. Die Modussignalübertragung wird durch die lineare Übertragung von Raum-Zeit, die in Fig. 75 dargestellt ist, eliminiert. Wie aus Fig. 75 ersichtlich ist, wird das Modussignal nicht länger durch die Zellen des Mantissenregisters 60 übertragen, sondern mit einer Geschwindigkeit von 1 Zelle/Zyklus nach links bewegt. Der Ankunftsplan der Mantissenbits am Ende der unteren Ordnung des Mantissenregisters 60 bleibt durch die Übertragung unverändert, da es nicht wünschenswert ist, den Ausgabeplan des Superakkuinulators zu ändern. Sobald sich diese Mantissenbits jedoch im Mantissenregister befinden, bewegen sie sich mit einer Geschwindigkeit von 1 Zelle/2 Zyklen nach links. Die Latenz der zellularen Anordnung ist daher 2 -1 Zyklen, verglichen mit Zyklen bei der Übertragungsanordnung. Diese langsamere Geschwindigkeit der Mantissenbitbewegung wird durch Einfügen eines zusätzlichen 1-Zyklus-Verzögerungselements in jede Zelle des Mantissenregisters 60 implementiert.
- In Fig. 76 ist eine Zelle im Mantissenregister 60 einschließlich einer neuen Boolschen Variabel dm abgebildet. Diese Variabel ist das Verzögerungsbit, das zur Beschreibung der Bitbewegung im Mantissenregister 60 verwendet wird. Die Eingabe- Ausgabe-Gleichungen für die Zellen des Registers 60 sind wie folgt. Anfänglich befinden sich die Zellen des Mantissenregisters 60 im "shift"-Modus, wobei p 1. Das Modussignal wird mit einer Geschwindigkeit von 1 Zelle/Zyklus übertragen.
- p ← p
- Für die Mantissenregisterzelle niedriger Ordnung gilt: p ← n*z&supmin; , das heißt, das Signal p, das in das rechte Ende des Mantissenregisters 60 eintritt, ist lediglich eine verzögerte Version des Signals .
- Das Mantissenbit wird nur dann verschoben, wenn sich die Zelle im shift-Modus befindet. Dies erfolgt in zwei Zyklen. Das heißt, wenn p = 1 ist, erfolgt dm ← min im ersten Zyklus und anschließend mout ← dm im nächsten Zyklus:
- dm ← (p m) ( dm),
- m ← (p dm) ( mout).
- Wenn p = 0, dann ist mout ← mout, das heißt, die Verschiebung der Mantissenbits wird angehalten.
- Schließlich werden diejenigen Änderungen im Superakkumulator berücksichtigt, die zur Implementierung der bedingungslosen Linksverschiebung erforderlich sind. In Fig. 77 ist der neue α&sub1; Superakkuinulator abgebildet. Auch diese Anordnung enthält keine Pipeline. Die Boolschen Gleichungen bleiben unverändert, nur jetzt bewegt sich das s-Bit mit einer Geschwindigkeit von 1 Zelle/Zyklus nach links. In Erwartung der gleichzeitigen Behandlung der Trägerauflösung in α&sub1; ist auch zu berücksichtigen, daß sich das c-Bit nun mit einer Geschwindigkeit von 2 Zellen/Zyklus nach links bewegt.
- Wir entfernen uns nun von der Annahme, daß die Träger vor dem Beginn der Normalisierung aufgelöst werden und nehmen anstatt dessen an, daß während der Normalisierung der Mantisse und während der Kodierung des Charakteristikums sich die Träger im Superakkumulator immer noch nach links ausbreiten können. Um die Träger während der Normalisierung auflösen zu können, muß das Mantissenregister in einen Mantissenakkumulator umgewandelt werden. Das heißt, sowohl die s-Bits als auch die c-Bits werden in die Zellen des Mantissenregisters verschoben, die, wie die Zellen des Superakkuinulators, jetzt die Trägerauflösung fortsetzen.
- Die am meisten bedeutungstragende Superakkumulatorzelle soll die am weitesten links liegende Superakkumulatorzelle bezeichnen, die ein Nichtnull-s-Bit und/oder ein Nichtnull-c-Bit trägt. Die Inhalte der am meisten bedeutungstragenden Superakkuinulatorzelle wird nachfolgend als führende Mantissenzelle oder als m bezeichnet. Die Mantissenzelle zu ihrer rechten wird als m -1 bezeichnet, und so weiter. Es ist zu berücksichtigen, daß nicht auf die Mantissenzelle , . . . Bezug genommen wird, sondern auf die Inhalte der Superakkumulatorzelle, die schließlich in der Mantissenzelle , . . . sitzen wird.
- Da nun die s- und c-Bits von α&sub1; nach links verschoben werden, ist schließlich die am meisten bedeutungstragende Zelle Das heißt, die am meisten bedeutungstragende Superakkumulatorzelle ist schließlich abhängig von α1,L·s und α1,L·c. Letztere Abhängigkeit erfordert eine Neudefinition der Normalisierungsanzeige , die nun den Übergang in den normalisierten Status laut folgender Formel durchführt:
- n ← n (α1,L·s α1,L.c)
- Nun wird die Auflösung der c-Bits betrachtet, die in den Mantissenakkumulator mit den s-Bits verschoben werden. Den entsprechenden Trägern ist es möglich, sich von der führenden Mantissenzelle aus um höchstens eine Position nach links zu verlagern. Dies wird als Mantissenüberfluß, oder einfach Überfluß, bezeichnet. Wenn beispielsweise bei der Feststellung der führenden Mantissenzelle im Superakkumulator diese ein Nichtnull-s-Bit und ein Nichtnull-c-Bit hatte, dann würde ein Träger nach links verschoben werden. Ob dieser Mantissenüberfluß eintritt oder nicht, ist eine Fragestellung, die berechnet werden kann, während die s- und c-Bits von α&sub1; in den Mantissenakkumulator verschoben werden. An dieser Stelle wird eine Überflußanzeige eingeführt, die drei Werte hat: "ja", "nein" und "vielleicht". Wenn beispielsweise sowohl die sin- als auch die cin-Bits von m gleich "1" sind, dann wird o auf "ja" gesetzt. Ist nur eines der sin und cin-Bits gleich "1", dann behält seinen Wert "vielleicht". In diesem "vielleicht"-Fall tritt ein Mantissenüberfluß auf, wenn in m -1 sowohl die sinals auch die cin-Bits gleich "1" sind; dieser tritt nicht auf, wenn nur einer den Wert "1" hat. "ja" oder "nein" ist der Endstatus der Überflußanzeige; "vielleicht" ist ein Übergangsstatus.
- Nachdem Mantissenzellen in ihre Position verschoben wurden, das heißt, nachdem der Mantissenakkumulator geladen wurde, kann sich noch immer im "vielleicht"-Status befinden. Im Zyklus, in dem die volle Ladung des Mantissenakkumulators auftritt, gilt es als sicher, daß eine notwendige Bedingung dafür, daß sich im "vielleicht"-Status befindet, darin liegt, daß für alle Mantissenzellen genau eines seiner sin- und cin-Bits den Wert "1" hat. Das heißt, alle Zellen des Mantissenakkumulators haben den Wert "1". In jedem anderen Fall wurde bestimmt, daß entweder "ja" oder "nein" ist. Es gibt jedoch zwei Ereignisse, die in den "ja"-Status setzen können. Der eine ist eine Trägerausbreitung, die noch immer in α&sub1; aufgelöst wird, die zweite ist die Rundungsoperation.
- In der vorliegenden Beschreibung wird die Rundungsoperation als Rundung auf die nächste Stelle verstanden. Gerichtete Rundungen werden an späterer Stelle beschrieben. Andere Rundungen, so beispielsweise Rundungen in Richtung oder weg von Null sind einfache Varianten der Rundungsoperationen, die hier beschrieben werden und müssen daher nicht ausführlicher erläutert werden.
- Die Rundung wird ausgeführt, indem "1" zu m&sub0; hinzuaddiert wird; m&sub0; ist eine Zelle, die zur rechten einer Zelle m&sub1; niedriger Ordnung im Mantissenregister 60 angehängt werden soll. Wenn diese Addition einen Träger erzeugt und wenn = "vielleicht", dann gilt ← "ja". Wenn kein Träger erzeugt wird, dann behält seinen Wert von "vielleicht".
- Fig. 78 ist eine schematische Darstellung der architektonischen Änderungen, die für die Rundung miteinbezogen wurden. Das Mantissenregister 60 wird von Zellen auf +1 Zellen ausgeweitet und erhält die Bezeichnung mant , mant-1, . . . , mant&sub0;, wobei mant&sub0; die "Rundungs"-Zelle ist. Das M-Verzögerungselement 62 wird auf ein +1-Verzögerungselement ausgeweitet. Wenn das Modussignal mit dem Wert "hold" erzeugt wird, belegen +1 Mantissenzellen den Mantissenakkumulator 60. An diesem Punkt wird mant&sub0; eine "1" hinzugefügt. Der zu mant&sub0; hinzuaddierte Wert wird als Rundungssignal bezeichnet; dieser Wert ist nur einmal pro Summe "1". Er wird durch Vergleich aufeinanderfolgender Werte von hold in einer Verzögerungs- und Vergleichsschaltung 68 erzeugt. Ursprünglich ist r 0. Wenn das Modussignal seinen Wert ändert, wird eine Rundung von "1" erzeugt, das heißt,
- r ← p*z&supmin;¹ p
- Hierdurch wird die Rundung erzielt und die -Anzeige 70 entsprechend aktualisiert.
- Das andere Ereignis, durch das in einen Endstatus übergeht, wenn es sich nicht bereits im Endstatus befindet, ist die Trägerausbreitung von Zellen niedriger Ordnung aus. Sobald der Mantissenakkuinulator 60 geladen ist, werden diese Superakkumulatorzellen niedriger Ordnung nicht länger benötigt, außer zur Lösung der Frage des Überflusses. Wenn sich der Mantissenakkumulator 60 im "hold"-Modus befindet, verschiebt der Superakkumulator seine verbleibenden Inhalte nach links und diese Inhalte "fallen" vom linken Ende des Superakkumulators herab. Während jeder Verschiebung einer Superakkumulatorzelle nach außen wird untersucht, ob der Superakkumulator die Frage des Überflusses gelöst hat.
- Wenn = "vielleicht"
- Dann wenn α1,L·s = α1,L·c = 1
- dann o ← "ja"
- sonst wenn α1,L·s = α1,L·c = 0 dann o ← "nein", ansonsten behält o seinen Wert "vielleicht" und die nächste Superakkumulatorzelle, die im nächsten Zyklus herausgeschoben wird, wird untersucht.
- Dieser Ablauf findet garantiert zu einem Abschluß, da, während der Superakkumulator nach links verschoben wird, "0"-Werte in die rechte Zelle für seine s- und c-Bits eingespeist werden. Auf diese Weise ist die Frage des Überflusses schon L Zyklen nach Beginn der Normalisierung gelöst.
- In der bislang beschriebenen Anordnung müssen bei Auftreten eines Mantissenüberflusses die Mantisse und das Charakteristikum eingestellt werden. Die Anordnung muß nun erweitert werden, um diese Einstellungsänderungen zu berücksichtigen. Fig. 79 ist eine schematische Darstellung dieser Erweiterungen. Das Ziel besteht darin, die Mantisse und das Charakteristikum einzustellen, wenn kein Überfluß vorhanden ist. Zunächst wird eine weitere Mantissenakkumulatorzelle angehängt, die die Bezeichnung mant+1 trägt. Der Mantissenakkumulator besteht nun aus M+2 Zellen mit der Numerierung +1, , -1, . . . , 0, wobei mant+1 dazu verwendet wird, den Mantissenüberfluß zu speichern, wenn dieser eintritt. In den Mantissenakkumulator 60 erfolgen nur +1 Verschiebungen, mit denen mant , mant-1, . . . , mant&sub0; gefüllt werden, wobei mant+1 den Überfluß von mant empfängt.
- Wenn andererseits kein Überfluß vorhanden ist, wäre es wünschenswert, den Mantissenakkumulator 60 ein weiteres mal zu verschieben, so daß in jedem Fall die endgültige Mantisse in den Mantissenzellen mant+1, . . . , mant&sub2; liegt. Das heißt, wenn kein Überfluß eintritt, ist ein letztes Modussignal mit dem Wert "shift" zu erzeugen.
- In ähnlicher Weise wollen wir jetzt, daß der Exponentenzähler 64 den korrekten Wert aufweist, wenn ein Überfluß eintritt; wenn kein Überfluß eintritt, soll ein letztes Dekrementsignal erzeugt werden. Eine einfache Art, dies zu erreichen, besteht darin, mit dem Exponentenzähler 64 bei 2C zu beginnen (das heißt, alle Nullen, weil der Exponentenzähler ein mod 2C-Zähler ist). Bei Vorhandensein von k führenden Nullen enthält der Zähler 2C-k. Wenn ein Überfluß eintritt, ist 2C-k der korrekte Wert, das heißt, 2C-1-(k-1). Tritt kein Überfluß auf, muß der Zähler ein letztes mal dekrementiert werden, um 2C-(k+1) = 2C-1-k zu erhalten, was der korrekte Wert ist.
- Daher wird ein Einstellungssignal benötigt, das erstens den Wert "1" hat, wenn ein Überfluß auftritt, das zweitens diesen Wert nur in einem Zyklus aufweist, da es wünschenswert ist, nur eine einzige zusätzliche Dekrementierung und Verschiebung zu erhalten, und das drittens diesen Wert in einem Zyklus hat, in dem andernfalls weder die Verschiebung noch die Dekrementierung erfolgen würde.
- Der erste Zyklus, in dem diese zusätzliche Verschiebung stattfinden kann, kann erst erfolgen, nachdem sowohl ein Überfluß bestimmt als auch die Mantisse im Mantissenakkumulator 60 richtig positioniert wurde (dies geschieht, nachdem das letzte Dekrementsignal zum Exponentenzähler 64 gesendet wurde).
- Daher kann das Einstellungssignal folgendermaßen aussehen:
- a ← (o = "no")
- Es gilt jedoch die Ausnahme, daß nur in einem Zyklus pro Summe 1 sein darf. Dies wird mit derselben Methode erreicht, die auch zur Erzeugung des Rundungssignals "1" lediglich einmal pro Summe verwendet wird:
- a ← ((o = "nein") )*z&supmin;¹ ((o = "nein") )
- Das Signal nimmt nun während höchstens eines Zyklus pro Summe den Wert "1" an, das heißt, der erste Zyklus, wenn ((o = "nein") ) einen Wert von "1" annimmt. Dieses Signal kann in der in Fig. 79 dargestellten einfachen Logikschaltung 72 erzeugt werden.
- Schließlich ist es notwendig, die Dekrement- und Modussignale zu kombinieren, so daß sie entweder so wie zuvor oder aufgrund eines Signals auftreten. Es ist zu beachten, daß das Signal seinen Wert "1", wenn überhaupt, nur dann annimmt, nachdem sowohl in den "normalisierten" Status übergegangen ist und auf "hold" gewechselt hat. Somit erfolgen die Verschiebung und die Dekrementierung, die durch den Wert "1" hervorgerufen werden, nur zusätzlich zu den Verschiebungen und Dekrementierungen, die von den Signalen und hervorgerufen werden.
- Folgende sind die neuen Signale. Erstens gibt es ein Dekrementsignal , das von der einfachen Dekrementlogik 74 erzeugt wird; dieses ist "1", wenn entweder oder selbst "1" sind:
- d ← n a
- Es gibt außerdem ein Linksverschiebungssignal 1, das von der einfachen Verschiebungssignallogik 76 erzeugt wird; dieses ist "1", wenn entweder oder selbst "1" sind:
- l ← p a
- Dieses Gerät löst Träger auf, normalisiert die Mantisse, rundet und kodiert das Charakteristikum. Mehr noch, alle diese Funktionen werden gleichzeitig ausgeführt.
- Das Gerät in Fig. 79 ist nicht zellular und wird daher nun in eine zellulare Architektur umgewandelt. Die zellulare Version ist in Fig. 80 abgebildet. Die s- und c-Bits, die aus dem Superakkumulator herausgeschoben werden, werden zellular entlang des Pfads, der mit "*" gekennzeichnet ist, durch die Zellen des Exponentenzählers 78, eine D'-Zelle 80, eine DELAY-Zelle 82 und eine L'-Zelle 84 an den Mantissenakkumulator 60 übertragen.
- Der Einfachheit halber sind die Zellen niedriger und höherer Ordnung des Exponentenzählers 78 von links nach rechts angeordnet.
- Die wichtigen Signale, die in der nichtzellularen Architektur erzeugt werden, sind und l. Diese Signale werden auch in der zellularen Architektur erzeugt. Das Signal kann bezüglich zusammengesetzter Signale folgendermaßen umgeschrieben werden:
- d = n a = n (((o="nein") )*z&supmin;¹ + ((o="nein") ))
- Im obigen Ausdruck ist ein Statusbit in der D' Zelle 80, deren Wert "1" ist, bis α1,L·c α1,L·s. Das heißt, n="1", bis das führende Mantissenbit erkannt wird. Dieses wird an die DELAY- Zelle 82 übertragen. ist ein zweites Statusbit in der D' Zelle 80, deren Wert nur dann "1" ist, wenn mindestens zwei von α1,L·s, α1,L·c und während desselben Zyklus "1" sind. Da die D' Zelle 80 Zugriff auf die s- und c-Bits hat, und r p + p*z&supmin;¹ ist, kann sie die Statusbits und berechnen. Die D' Zelle 80 benötigt außerdem ein drittes Statusbit, um den alten Wert von p:p*z&supmin;¹ zu speichern.
- Die DELAY-Zelle 82 nimmt das Signal auf und gibt M+1 Zyklen später ein Signal ab. Eine schematische Darstellung der DELAY- Zelle 82 ist Fig. 80. Ein Signal wird auch auf der linken Seite der DELAY-Zelle 82 erzeugt. Die s- und c-Bits, die an der linken Seite der Zelle 82 heraustreten, werden um +1 Zyklen verzögert. Das Signal wird jedoch um 2M+2 Zyklen verzögert. Es ist daher bezüglich der s- und c-Bits tatsächlich ein Signal .
- Schließlich überträgt die L'-Zelle 84 die s- und c-Bits und erzeugt ein gewünschtes l-Signal:
- l p a = p (((o="nein") )*z&supmin;¹ ((o="nein") )).
- Somit benötigt die L'-Zelle ein Statusbit, um die alte Version von p:p*z&supmin;¹ zu speichern. Sie benötigt ein zweites Bit zur Aufzeichnung des Status . Wie auch die D'-Zelle 80 hat sie die s- und c-Bits und kann daher berechnen.
- Die Anordnung kann, wie sie jetzt beschrieben wird, gleichzeitig Träger auflösen, die Mantisse normalisieren, eine Rundung durchführen und das Charakteristikum kodieren. Darüberhinaus ist sie zellular. Die Architektur ist nun einer Pipeline-Anordnung anzupassen, und das Verfahren zur Pipeline-Anordnung ist mit dem an früherer Stelle für die Anordnung einer A-Pipeline beschriebenen Verfahren identisch. Die Anordnung von Fig. 80 wird aufgeteilt, und jedesmal, wenn eine neue Summe begonnen wird, wird der Kodierprozeß zur nächsten Kopie des Geräts gestoßen. Wie auch zuvor, wird σ dazu verwendet, die Übertragung zu signalisieren. Die Anzahl an "Kopien" des Geräts, das heißt, die Länge der Pipeline, ist lediglich die schlimmste Latenz des Kodierprozesses geteilt durch die Zeit, die die kürzeste Summe benötigt, um im anfänglichen Akkumulator α&sub0; vollendet zu werden. Letztere ist M+1 Zyklen. Im schlimmsten Fall ist der letzte Teil der Kodierberechnung der Träger in mantM+1 basierend auf einem Mantissenüberfluß, der am letztmöglichen Punkt festgestellt wird, und zwar L Zyklen nach Beginn der Normalisierung. Dieser Überfluß erfordert zusätzliche C + 1 + M + 1 + 1 + M + 2 = 2M + C + 5 Zyklen zur Ausbreitung in mantM+1. Daher werden (2C + M + 2M + C + 5)/M Kopien des Geräts in Fig. 80 benötigt. Für voraussichtliche Werte von C, M und M gilt:
- (2C + M + 2 + C + 5)/M = 13
- Der abschließende Kodiermechanismus, wie er in Fig. 80 abgebildet ist, ist als formale Erweiterung eines Akkumulators zu betrachten. In diesem Zusammenhang wird daran erinnert, daß alle Boolschen Variablen in einer A-Pipeline in zwei Varianten existieren müssen, nämlich einer Standard-Variante und einer Übertragungsvariante (letztere wird mit der Hochstellung τ gekennzeichnet), wobei die Übertragungsvariante als Reaktion auf das Signal σ verwendet wird, um die Bewegung der Statusvariablen von αi nach αi+1 zu leiten. Es ist zu beachten, daß die Superakkuinulatoren in jeder Phase um M+1 Zellen gekürzt werden können, da in jeder Phase mindestens so viele Linksverschiebungen stattfinden.
- Die Beschreibung fährt nun fort mit dem Prozeß der Entfernung einer vollständigen Summe aus dem Gerät. In jedem Zyklus enthält die A-Pipeline der Akkumulatoren α&sub0;, . . . αp Summen in unterschiedlichen Vollständigkeitsphasen. Vollständige Summen können sich zwischen Summen befinden, die noch aufgelöst werden. In der bisherigen Beschreibung bewirkt nur das Eintreffen eines Summenendsignals σ, daß sich die Summe einen einzelnen Schritt zum nächsten Akkumulator in der A-Pipeline weiterbewegt. Im Prinzip ist das Eintreffen P aufeinandertreffender Signale σ erforderlich, um eine Summe, vollständig oder nicht, von α&sub0;bis hin zu αp zu treiben. Außerdem kann aufgrund der schlimmsten Wahl von p das Eintreffen eines (P + 1)-ten σ-Signals nicht erfolgen, bevor die Summe, die αp belegt, vollständig ist. Daher wird die A-Pipeline um ein zusätzliches Register αp+1 der Länge M+C erhöht, dessen Inhalte nur vollständige Summen sein dürfen.
- Die Anordnung der A-Pipeline wird nun so abgeändert, daß eine Summe mit einem Verfahren, das, sobald die Summe vollständig ist, initiiert wird, aus dem Gerät austreten kann. Daneben gestattet dieser Austrittsmechanismus aufgrund der Einschränkungen, die dem Gerät durch die Anordnung selbst auferlegt sind, den Austritt einer Summe, sobald diese vollständig ist; dabei spielt die Aktivität anderer Summen in der Pipeline im wesentlichen keine Rolle. Dieser Mechanismus stört die Reihenfolge aufeinanderfolgender Summen, die in das Gerät eingetreten sind, daher ist eine Summenkennzeichnung erforderlich, die nachfolgend beschrieben wird.
- Zunächst wird der abschließende Kodierprozeß durch ein Ausgabesignal erhöht. Der Zweck dieses Signals ist es, anzuzeigen, daß der Summierungsprozeß abgeschlossen ist und daß das resultierende Mantissenbit und das resultierende Charakteristikum-Bit mit dem Austritt aus der A-Pipeline beginnen kann. Dieses Signal ähnelt sehr dem Einstellungssignal . Nach der Erzeugung des Rundungssignals und nach der Lösung der Überflußfrage ist der Kodierprozeß abgeschlossen. Die endgültige Einstellung, falls vorhanden, ist an den Mantissenakkumulator und an den Exponentenzähler zu leiten ("modulo"). Diese Bedingung läßt sich folgendermaßen ausdrücken:
- Dieser Signalausdruck wird mit dem bereits bekannten Verfahren in einen Impulssignalausdruck umgewandelt (das heißt, der hohe Wert ist nur in einem Zyklus vorhanden):
- Dieses Proto-Ausgabesignal xp wird erst dann zu einem gültigen Ausgabesignal , wenn die endgültige Einstellung, falls vorhanden, abgeschlossen ist. Um dies zu gewährleisten, verläuft xp entlang des linken Verschiebungssignals 1 und des Dekrementsignals ; die Signale basieren auf einer Eigenschaft, die die endgültige Einstellung induzieren. Erst wenn 1 und d (und xp) sich im Mantissenakkuinulator bzw. im Exponentenzähler ausgebreitet haben, ist der Kodierprozeß abgeschlossen. Zu diesem Zeitpunkt wird das Signal xp zurück in den Mantissenakkuinulator und den Exponentenzähler reflektiert und ist dort das Ausgabesignal . Fig. 82 stellt die Bewegung der Signale xp und durch das erhöhte endgültige Kodiergerät dar. Das Signal durchläuft zellular von links nach rechts den Mantissenakkumulator 60, und läuft von rechts nach links durch den Exponentenzähler 78. Das Signal bewirkt, daß die Summe die A-Pipeline nach unten durchläuft. Zunächst wird die grundlegende Ausgabebewegung beschrieben, anschließend folgt eine Beschreibung der Wechselwirkung mit voranstehenden Summen und schließlich wird die Wechselwirkung des Ausgabesignals mit dem Übertragungssignal σ beschrieben.
- Das Ausgabesignal bewegt sich zeitlich horizontal und teilt den Mantissenbits mit, daß sie sich in ihrer endgültigen Form befinden. Beim Empfang des Ausgabesignals liefert eine Zelle folgendes:
- 1. das Ausgabesignal an seinen horizontalen Nachbarn niedrigerer Ordnung (das heißt, nach rechts im Mantissenakkumulator 60 und nach links im Exponentenzähler 78); und
- 2. ihr Mantissenbit (oder ihr Charakteristikumbit) an ihren unteren Nachbarn. Der Netzeffekt dieser Bewegungen liegt darin, die Mantisse und das Charakteristikum abzuschrägen, wie dies in den Fig. 83 und 84 dargestellt ist.
- Es kann der Fall auftreten, daß eine Summe vor der vorhergehenden Summe vollständig ist. Um zu vermeiden, daß eine noch im Ablauf befindliche Summe durch eine bereits vollständige und austretende Summe überschrieben wird, müssen Mantissenbit und Exponentenbit in je zwei Varianten existieren: einer Standardvariante (m und e) und einer Übertragungsvariante (mτ und eτ). Der Mechanismus für die Bewegung einer vollständigen Mantisse durch den Rest der A-Pipeline ist wie folgt:
- Wenn ein vollständiges Mantissenbit mτ in eine Zelle eintritt, die nicht gleichzeitig ein Ausgabesignal empfängt, dann durchläuft das vollständige Mantissenbit diese Ebene der A- Pipeline nach unten; ansonsten unterbricht das vollständige Mantissenbit seine Abwärtsbewegung für einen Zyklus und läßt inzwischen das vorherige Mantissenbit, das ebenfalls vollständig ist, zuerst die Abwärtsbewegung ausführen.
- Es folgen die Boolschen Eingabe-Ausgabe-Gleichungen, die diese Ausgabebewegungen beschreiben:
- Wenn das Ausgabesignal den Wert "0" hat, dann bleibt das Bit in unbeeinflußt, ansonsten tritt das aktuelle Bit in aus und dieses Speicherbit wird zur Speicherung des ankommenden mτ verwendet.
- m ← ( m) (x mτ).
- Wenn das Ausgabesignal den Wert "1" hat, dann beginnt das aktuelle Bit in die Ausgabe, indem es in mτ plaziert wird, ansonsten, wenn das Ausgabesignal im vorhergehenden Zyklus den Wert "1" hatte, dann enthält der aktuelle Wert von in einen unterbrochenen Wert von mτ, das nun seine Austrittsbewegung wieder fortsetzen muß; ansonsten wird der Wert von mτ einfach durch diese Mantissenzelle übertragen.
- Im zuletzt genannten Fall unterscheidet sich die Reihenfolge, in der Summierungen das Gerät verlassen, von der Reihenfolge, in der ihre zugehörigen Summanden in das Gerät eingetreten sind.
- Hier bezeichnet, wie dies bekannt ist, z&supmin;¹ eine Verzögerung um einen Zyklus. Die entsprechenden Gleichungen für das Austreten der Exponentenbits sind vollkommen analog zu diesen Gleichungen. Es wird darauf hingewiesen, daß diese Austrittsbewegung allen anderen Bitverarbeitungen in der A-Pipeline angehängt wird, die ansonsten so belassen wird, wie sie an früherer Stelle beschrieben wurde.
- Schließlich beobachten wir jene Verhaltensänderungen von Zellen, die zur Koordinierung der Akkumulatorübertragung erforderlich sind, was durch σ signalisiert wird, wobei die Austrittsbewegung durch initiiert wird. Wenn eine Akkumulatorzelle αij ein Übertragungssignal σ empfängt, dann werden ihre Inhalte um eine Ebene nach unten übertragen, unabhängig davon, welche Aktivität gerade stattfindet. Der Austrittsmechanismus wird in keinster Weise durch die Aktion von σ unterbrochen. Die Vorgehensweise ähnelt sehr der der Trägerausbreitung in Anwesenheit der Akkumulatorübertragung, und wird unabhängig fortgeführt. Wie bei allen statusvariablen in der A-Pipeline muß in einer Übertragungsvariante xτ existieren, um die Bewegung aufnehmen zu können, die durch das Eintreten eines Signals σ induziert wird.
- Beim Eintritt eines Signals σ in das Gerät tritt eine Kennzeichnung in den Kennzeichnungskanal 12 (Fig. 1) ein und durchläuft diesen Kanal schrittweise mit dem Signal σ nach unten. Diese Kennzeichnung wird als T-Kennzeichnung bezeichnet; sie bewegt sich asynchron gemäß den eintretenden σ-Signalen. Die T-Kennzeichnung ist eine ganze Zahl T, die Summen mod(P+2) zählt. Jede Summe innerhalb des Geräts hat also eine nur einmal vorhandene T-Kennzeichnung.
- Wenn ein Ausgabesignal erstellt wird und die resultierende Summe mit dem Austritt aus dem Gerät beginnt, steht parallel dazu die T-Kennzeichnung bereit. Auf diese Weise wird die Ausgabe für die Übertragung gekennzeichnet.
- Dies vollendet die Beschreibung des Basisgeräts der vorliegenden Erfindung, einem zellularen Hardware-Gerät für die schnelle Berechnung wiederholter Gleitkommasummen mit einer Genauigkeit von nur einer einzigen Rundungsoperation. Die bevorzugte Anordnung des Summiergeräts enthält ein Sieb mit einem Charakteristikum-Dekodierbereich, das aus Zellen besteht; diese Anordnung ist in Fig. 16 dargestellt. Die Sieb- und Akkuinulator-Pipeline wird in einer zylindrischen Konfiguration angeordnet, wobei das Sieb eine Mehrzahl an Sinkbereichen aufweist, wie dies in den Fig. 58 und 59 dargestellt ist. Die Zellen im am weitesten links liegenden Sinkbereich sehen aus wie in Fig. 66 dargestellt, während die restlichen Zellen aussehen wie in Fig. 67 dargestellt. Im oberen Dreieck des Siebbereichs, wo die Ausbreitung des Summenendsignals nicht notwendig ist, bleiben in der bevorzugten Anordnung die Eingabe- und Ausgabe- Terminals für die Verbreitung dieses Signals lediglich ungenutzt. Die untere Reihe an Zellen im Sieb- und im Sinkbereich wird erweitert, wie dies in Fig. 62 dargestellt ist, und enthält dann eine zusätzliche ca-Ausgabe, die einen Träger zweiter Ordnung im Akkuinulator vermeidet. Die Akkumulator-Pipeline besteht aus einzelnen Zellen, wie dies in Fig. 68 dargestellt ist, und ist in einer Matrix konfiguriert, wie dies in Fig. 69 dargestellt ist. Neben jedem Akkumulator befindet sich in der bevorzugten Anordnung eine Kodier- und Rundungsschaltung, wie dies in Fig. 80 dargestellt ist, was im wesentlichen eine Erweiterung des Akkuinulators zellularen Aufbaus ist. Bei jeder Übertragung der Inhalte aus dem Akkumulator αi nach αi+1, wobei die entsprechenden Inhalte im Mantissenakkuinulator verarbeitet werden, wird die Verzögerung 82 usw. in ähnlicher Weise an den Mantissenakkumulator, die Verzögerung usw. der nächsten Ebene übertragen. Wie bereits gesagt wurde, ist die Kodierungs- und Rundungsschaltung lediglich als Erweiterung und Bestandteil der Akkumulator- Pipeline zu betrachten. Die einzelnen Zellen können in der bevorzugten Anordnung in beliebiger Weise konfiguriert werden, solange diese Konfiguration für einen durchschnittlichen Fachmann einfach zu überblicken ist. Anstelle einer Darstellung unterschiedlicher Beispiele der internen Details dieser Zellen wurden die Zellen mathematisch sorgfältig definiert und ihre Funktionen erläutert, so daß es keine Schwierigkeiten bereitet, geeignete Logikschaltungen zu implementieren, um die erforderlichen Funktionen auszuführen.
- Die vorliegende Erfindung ist gemäß der Beschreibung für die Hochgeschwindigkeitsberechnung von Gleitkommasummen geeignet. Auf Zellenebene verwendet die Anordnung ein Synchronmodell von VLSI. Die vom Gerät der vorliegenden Erfindung benötigte Zeit zur Berechnung einer vollständigen Summe ist abhängig von den Werten der Summanden, da die Operation in der A-Pipeline asynchron wird. Der Durchsatz pro Flächeneinheit der Hardware ist annähernd der eines Baumnetzwerks, jedoch findet hier nicht die lange Kabel- und Signalverbreitung statt, die bei Baumnetzwerken vorhanden ist. Die Vorteile der Erfindung werden weitgehend durch die Anordnung des Siebs ermöglicht, die wiederum nur dadurch möglich ist, daß die Erfinder ein Verfahren angewandt haben, das es einer großen Zahl an Mantissen ermöglicht, sich vertikal und diagonal abwärts zu bewegen und dabei zerstörungsfrei gegenseitig zu kollidieren; all dies ist ohne übermäßig komplexe Zellkonfigurationen möglich. Dies wird erreicht, indem ein Signal geliefert wird, das die Funktion im Sieb kombiniert, wodurch ein unbegrenztes Ansteigen der Anzahl an Bits vermieden wird, die sonst eine einzige Zelle belegen müßten.
- Es gibt natürlich eine ganze Reihe von Verfeinerungen und Erweiterungen der Grundanordnung. Einige davon sollen hier beschrieben werden, beispielsweise die Summierung signierter Summanden, die Behandlung gerichteter Rundungen, die für die Intervall-Arithmetik benötigt werden, und die Einführung eines Akkumulationsspeichermodus, der für die Berechnungsmethode der iterativen Restkorrektur benötigt wird.
- Zunächst werden einige architektonischen Änderungen beschrieben, die die Summierung signierter Zahlen ermöglichen. Es wird angenommen, daß das Format einer Eingabe
- c&sub1;c&sub2; . . . cC s m&sub1;m&sub2; . . . mM
- ist, wobei s 1 nur dann zutrifft, wenn die Zahl negativ ist. Die beschriebene schematische Darstellung basiert auf der Vorstellung signierter Bits. Ein signiertes Bit hat einen von drei Werten: positiv (+), negativ (-) und Null (das heißt, neutral) (0). Da es drei Werte annehmen kann, werden zwei Bits zur Darstellung eines signierten Bits verwendet. Die hier beschriebene Vorgehensweise umfaßt:
- 1. Konvertierung unsignierter Mantissenbits in signierte Mantissenbits;
- 2. Verarbeitung dieser Bits durch das Sieb;
- 3. Akkumulierung signierter Bits im Superakkumulator; und
- 4. Nachverarbeitung der signierten Akkumulation: Zeichenerkennung, Normalisierung, Charakteristikum-Kodierung, Rundung und Trägerauflösung.
- Jedes unsignierte Mantissenbit in wird in ein signiertes Mantissenbit konvertiert, während das Mantissenbit in der Bitabschrägung 14 abgeschrägt wird. Beim Eintritt in die Bitabschrägung, beispielsweise eine Bitabschrägung des in Fig. 6 dargestellten Typs, werden die Mantissenbits folgendermaßen kodiert:
- Ein Mantissenbit "0" wird als "0" kodiert.
- Ein Mantissenbit "1" wird als "+" kodiert.
- Das Zeichenbit verbreitet sich durch die Zellen, die die Mantissenbits abschrägen, nach unten und nach rechts. Wenn ein Zeichenbit "1", die Anzeige eines negativen Summanden, sich in eine Abschrägungszelle ausbreitet, die ein "+"-Mantissenbit enthält, dann wird das "+"-Mantissenbit in ein "-"-Mantissenbit umkonvertiert. In allen anderen Fällen bleibt das signierte Mantissenbit unverändert. Nach Abschluß der Bitabschrägung sind die Nichtnull-Mantissenbits eines Summanden alle "+" oder "-", je nach Wert des Zeichenbits .
- Das Sieben des Mantissenbits erfolgt wie auch zuvor. Der einzige Unterschied liegt darin, daß nun die Mantissenbits, die verschoben werden, signiert sind. Dieser Unterschied hat einen Einfluß auf die Natur der Koaleszenz. Besitzen die beiden koaleszierenden Bits nicht zwei verschiedene Vorzeichen, so ist die Koaleszenz-Logik wie zuvor und das jeweilige Vorzeichen wird an die koaleszierten Bits übertragen. Besitzen jedoch die beiden koaleszierenden Bits unterschiedliche Vorzeichen, so werden diese rückgängig gemacht und die ausgesendeten mτ und c-Bit- Werte sind beide "0". Es wird darauf hingewiesen, daß die Koaleszenz signierter Mantissenbits die Struktur des Siebprozesses weder belastet noch ungültig macht. Die Ankunftszeit der Mantissenbits am Akkumulator einschließlich derjenigen Mantissenbits, die aus der Koaleszenz resultieren, bleiben durch die Dekodierung und die Kollisionen unbeeinträchtigt; nach wie vor gibt es höchstens zwei Mantissenbits einschließlich derjenigen Bits, die durch Koaleszenz erstellt wurden, die gleichzeitig in eine Siebzelle eintreten.
- Da die Mantissenbits signiert sind, muß die Logik des Superakkumulators geändert werden. Eine Möglichkeit, dies zu tun, besteht darin, alle drei Eingaben der Superakkumulatorzelle zu signieren. Die Akkumulierungslogik wird auf das Ziel der Nachverarbeitung ausgerichtet: Zeichenerkennung, Normalisierung usw. Zu diesem Zweck wird die folgende einfache Tatsache genutzt:
- -x = -2X + x.
- Das heißt, wo normalerweise ein "-"-Bit in eine Akkumulatorzelle gesetzt würde, wird es durch ein "+"-Bit ersetzt, indem ein "-"- Trägerbit an die linke Seite gesendet wird. Auf diese Weise breitet sich ein "-"-Bit nach links aus, bis es durch ein "+"- Bit mit gleichem Gewicht aufgehoben wird. Ist die Summe negativ, dann breiten sich manche "-"-Bits nach links aus. Diese werden durch "+"-Bits nicht aufgehoben. Diese Tatsache wird im nachfolgenden Prozeß der Zeichenerkennung genutzt.
- Die Akkumulatorlogik läßt sich daher wie folgt zusammenfassen: Die "+"- und "-"-Bits werden unter den drei signierten Eingaben der Akkumulatorzelle gezählt. Diese Zählung befindet sich im Bereich [-3, +3]. Die signierten Werte des Summenbits s und des Trägerbits c werden gemäß der nachstehenden Tabelle zugeordnet: ZÄHLUNG
- Auch hier hat der c-Bit-Wert, der aus einer Zählung von -1 resultiert, den Effekt, daß sich das "-"-Bit nach links bewegt, bis es entweder aufgehoben wird oder zum führenden Nichtnull-Bit wird. Wenn eine Summe negativ ist, dann erhält sie abschließend ein führendes "-"-Bit, das sich vom linken Ende des Superakkumulators aus ausbreitet. Dabei hinterläßt es eine Spur von "+"-Bits zu seiner rechten. Der Netzeffekt dieser Logik besteht darin, daß alle "-"-Bits abschließend in "+"-Bits konvertiert werden. Der resultierende Superakkuinulator, der nur aus "0"-Bits und "+"-Bits besteht, ist eine Zweierkomplementkodierung der Summe. Die Logikänderung der unteren Reihe an Siebzellen wird ähnlich behandelt wie zuvor.
- Wie bereits zuvor ist es auch hier notwendig, während der Trägerauflösung die normalisierte Mantisse zu finden, das Charakteristikum zu kodieren und die Rundung auszuführen. Das Vorzeichen der Summe muß ebenfalls festgestellt werden. Sobald die Summe an α&sub1; übertragen wurde, wird sie pro Zyklus um eine Position nach links verschoben. Die Vorzeichenerkennung wird, wie auch andere Berechnungen, durch eine serielle Untersuchung von α&sub1; ausgeführt, und zwar von den Zellen höherer Ordnung zu den Zellen niedrigerer Ordnung. In α&sub1; existieren nur signierte s- und c-Bits; keine neuen Bits werden akkumuliert. Eine Zelle kann daher charakterisiert werden durch die Summe der Werte der eingehenden s- und c-Bit-Werte. Diese Summe liegt im Bereich von [-2, +2]. Die Vorzeichenerkennung kann beschrieben werden als ein endliches Automaton des Alphabets
- = {-2, -1, 0, +1, +2}.
- Fig. 85 zeigt das Automaton, das Superakkumulatorzellen von links nach rechts liest und einen Statussatz aufweist:
- Q = {-2, -1, 0, +1, +2}.
- Diese Statusformen lassen sich folgendermaßen beschreiben:
- +2: Die Summe ist positiv.
- -2: Die Summe ist negativ.
- +1: Die Summe wird als tendenziell positiv bezeichnet.
- -1: Die Summe wird als tendenziell negativ bezeichnet.
- 0: Es ist kein Vorzeichen bekannt. Dies ist der Ausgangszustand des Automatons (q0).
- Es ist zu beachten, daß +2 und -2 Statusformen sind, die, wenn sie eingegeben wurden, durch nachfolgende Eingaben unverändert bleiben, das heißt, es sind endgültige Statusformen. Die Vorzeichenerkennung ist daher abgeschlossen, sobald eine dieser Statusformen eingegeben ist. Wenn sich das Autoinaton nach Untersuchung des gesamten Superakkumulators nicht in einem endgültigen Status befindet (das heißt, q ε {-1, 0, +1}), dann wird einem endgültigen Status qf wie folgt ein endgültiger Wert zugeordnet:
- Wenn q = +1 dann qf ← +2;
- Wenn q = -1 dann qf ← -2;
- Ansonsten gilt qf ← +2 und die Summe ist genau 0. In diesem Fall ist der Exponent für die Ausgabe C = e1. Diese Aufgabe der Erkennung des Akkumulatorendes läßt sich mit einem Akkuinulatorende-Kennzeichen ausführen, das an α1,0 eingegeben wird, wenn α&sub0; nach α&sub1; übertragen wird. Dieses Akkumulatorende- Kennzeichen verschiebt sich zusammen mit der restlichen Zellinformation nach links.
- Durch eine Summe mit dem Wert Null wird dieser schlimmste Fall in der Zeichenerkennung erzielt.
- Die verbleibenden Aufgaben der signierten Summierung lassen sich durch entsprechende Änderung der existierenden Logik in einfacher Weise erreichen. Deren nähere Einzelheiten müssen an dieser Stelle nicht ausführlich erläutert werden.
- Die als Bestandteil einer Gleitkommaoperation durchzuführende Rundung muß durch diese Operation spezifiziert werden. Natürlich kann eine grundlegende Maschinenrundung, beispielsweise eine Rundung auf die nächste Zahl, standardmäßig angegeben werden. Eine gute Computer-Arithmetik enthält die Intervall-Operationen. Zur Implementierung dieser Operationen ist es ausreichend, die zwei gerichteten Rundungen zu liefern: (Rundung nach unten) und (Rundung nach oben). Für jede reale Zahl x (die im Intervall zwischen den größten und kleinsten Gleitkommazahlen liegt), ist
- x = größte Zahl in R(2, , e1, e2) ≤ x.
- x = kleinste Zahl in R(2, , e1, e2) ≥ x.
- Daraus folgt, daß
- x = - (-x)
- Der Eintritt des Summenendsignals σ in das Gerät sollte mit dem Eintritt der Spezifikation des auszuführenden Rundungsoperators zusammenfallen. Erwartungsgemäß ist dies entweder die grundlegende Maschinenrundung, , oder beide der gerichteten Rundungen und .
- Die Verbreitung dieser Rundung vom Eintritt in das Gerät bis zur A-Pipeline, wo die Rundung stattfinden soll, kann auf einfache Weise erreicht werden. Die näheren Einzelheiten werden an dieser Stelle nicht ausführlich beschrieben. Die Beschreibung bezieht sich auf die Implementierung von und in der A- Pipeline. Da die Rundung auf die nächste Zahl bereits ausführlich beschrieben wurde, kann die gerichtete Rundung dadurch erklärt werden, daß einfach die in der Anordnung Rundung auf die nächste Zahl erforderlichen Änderungen notiert werden.
- Das systolische Supersummiergerät läßt sich so erweitern, daß alle drei Rundungsarten durchgeführt werden können. Im allgemeinen erfolgen alle drei Rundungsarten über unterschiedliche Mechanismen. Aus Gründen der architektonischen Einfachheit besitzen daher alle drei Rundungsprozesse ihr eigenes Gerät, von denen jedes vom Superakkumulator abgeht, wie dies in Fig. 86 dargestellt ist. Die bereits beschriebenen Verfahren für das Pipelining der Berechnung und für die Durchführung eines frühzeitigen Austritts lassen sich auf diese multiple Rundungsumgebung in einer vom Aufbau her unkomplizierten Weise anwenden. Folglich konzentriert sich die vorliegende Beschreibung auf den Rundungsprozeß selbst.
- Das obige Verhältnis (1) ermöglicht es, unsere Aufmerksamkeit auf positive Zahlen zu beschränken. Da x = größte Zahl in R(2, , e1, e2) ≤ x, wird die normalisierte Mantisse durch einfaches Abkürzen abgerundet. Es ist kein neuer Prozeß erforderlich. Was das Aufrunden anbelangt, so gilt, daß, wenn die Normalisierung gerade abgeschlossen wurde, die normalisierte Mantisse im Mantissenakkumulator 60 bleibt (mant&sub0; ist die "Rundungs"-zelle) und der Superakkumulator den Bestandteil der Summe niedriger Ordnung speichert.
- Das Aufrunden wird folgendermaßen durchgeführt:
- A. Durch Addition von +1 zur Rundungszelle, wenn das Vorzeichen des Bestandteils der Summe niedriger Ordnung positiv ist;
- B. Ansonsten durch Addition von 0 (das heißt, Abkürzen).
- Somit kann das in Fig. 85 dargestellte endliche Automaton zur Berechnung der Werte des Rundungssignals verwendet werden. Es wird angepaßt, um nur dann einen Wert von "+1" auszusenden, wenn sein endgültiger Status "+2" ist (das heißt, nur wenn der Bestandteil der Summe niedriger Ordnung positiv ist).
- Die Verfahren einer iterativen Restkorrektur erfordern die präzise Akkumulation eines Summenbündels, das heißt, Q als Zahl.
- sj = sj-1 + Rj,
- Hier ist S&sub0; 0. si (j) ε R(2, , 2e1, 2e2), i=1, . . . , Nj j=1, . . . , Q bezeichnet den Summanden i der j-Summe Rj die akkuinuliert wird. Nj ist die Anzahl der Summanden in der j-Summe Rj. Dieser Prozeß wird als Speicherakkumulation bezeichnet. Die Quantität, die vom Gerät geliefert werden soll, ist
- O SQ ε R(2, , e1, e2), O ε { , , }.
- An dieser Stelle wird eine zweite Form von Summenendsignal eingeführt, die als αH für eine Speicherakkumulation bezeichnet wird. Wie auch das σ-Signal breitet sich σH durch die Bitabschrägungen und das Sieb aus. σH wird anstelle von σ verwendet, um das Ende jeder Bestandteilsumme Rj j=1, . . . , Q zu signalisieren. Jedes Rj wird in α&sub0; auf die gewöhnliche Weise akkumuliert. σH stößt jedoch Rj nicht in ein α&sub1;, sondern in einen Speicherakkumulator oder Behälter β&sub0;, wo Rj zu Sj-1 hinzuaddiert wird. β&sub0; wird mit S&sub0; (das heißt, mit 0) initialisiert.
- Die Trägerauflösung wird in β&sub0; wiederhergestellt, so daß das Eintreffen eines Rj für jede Zelle von β&sub0; vier Eingaben erzeugt. Diese Situation ist analog zur anfänglichen Akkumulation, die an früherer Stelle bereits beschrieben wurde. Um in den Zellen von β&sub0; die Ausgabe von Trägerbits zweiter Ordnung zu vermeiden, wird der gleiche Lösungsmechanismus übernommen, das heißt, β&sub0; wird mit einem Vorläufer-Akkumulator pβ&sub0; erhöht, der mit der speziellen unteren Zellenreihe des Siebs selbst identisch ist. Nachfolgend kann ein Verweis auf einen Behälter entweder β&sub0;, pβ&sub0; oder beides bedeuten, was sich jeweils vom Kontext her erschließen läßt. Das Ende von RQ, die letzte Summe in einem Bündel, wird sowohl durch σ und σH signalisiert. Das Eintreffen von σ und σH an α&sub1; bewirkt, daß RQ wie gewöhnlich in pβ&sub0; gestoßen wird. Zwei Zyklen nach der Bewegung von RQ von pβ&sub0; zu β&sub0; werden die Inhalte von β&sub0; in α&sub1; gestoßen. Dieser letztere Stoßvorgang ist ein Prozeß, der zum Stoß durch ein σ-Signal der Inhalte von α&sub0; zu α&sub1; vollkommen analog ist. Der einzige Unterschied besteht darin, daß a&sub0; durch β&sub0; ersetzt wird. Im Prinzip ist es möglich, daß ein weiteres σ-Signal, das an α&sub0; im selben Zyklus ankommt wie das fragliche an β&sub0;, an α&sub1; einen Konflikt verursacht. Dies läßt sich verhindern, wenn M > 2 ist, was von nun an angenommen wird.
- Wie man noch aus der obigen Beschreibung weiß, wird einem Summandblock ein T-Kennzeichen zugeordnet, was durch das Signal a ausgelöst wird. Das σ-Signal ist nur ein einziges Mal während einer gesamten Speicherakkumulation eingeschaltet, das heißt, nach dem Eintreffen des allerletzten Summanden SNQ(Q). Somit wird jeder Speicherakkumulation ein einziges T-Kennzeichen zugeordnet, das zur Identifizierung der Ausgabe dieser Speicherakkumulation dient.
- Es wird angenommen, daß vom Gerät verlangt wird, mehrere verschiedene Speicherakkumulationen gleichzeitig zu bearbeiten. Um diese verschiedenen Akkumulationen verarbeiten zu können, stehen H unterschiedliche Speicherbehälter, βj j=0,1, . . . , H-1 zur Verfügung. Das Gerät gilt als gesättigt, wenn zu einem beliebigen Zeitpunkt mehr als H Speicherbehälter erforderlich sind. Man kann sich die H Speicherbehälter als in der Oberfläche eines facettierten Zylinders implementiert vorstellen, einen "B- Zylinder", der aus L·H Zellen besteht. Der B-Zylinder besitzt eine Länge von L Zellen und einen Umfang von H Zellen, wie dies in Fig. 87 dargestellt ist. Die Behälter entsprechen den Facetten des Zylinders, und die Behälter und ihre Inhalte zirkulieren synchron um den Zylinder und bewegen dabei alle zwei Zyklen eine Zelle. Um die zellulare Struktur des Geräts zu wahren, findet eine Bewegung von Daten von α&sub0; zu einem Behälter nur dann statt, wenn dieser Behälter in eine zuvor ausgewählte Phase rotiert wird. Entsprechend können Daten aus einem Behälter entfernt werden, um sie von einer zuvor ausgewählten Phase aus an α&sub1; zu liefern; diese Daten befinden sich höchstwahrscheinlich eine Facette von der Einlesephase entfernt in Richtung der Zirkulation der Behälter auf dem Zylinder, wie dies in Fig. 88 dargestellt ist.
- Für die Aufnahme der Inhalte von α&sub0; kann ein Behälter erforderlich sein (jedoch nicht öfter als einmal alle M+1 Zyklen). In diesem Fall steht ein Wartebehälter w&sub0; zur Verfügung, um die Inhalte von α&sub0; zu speichern, die für einen Speicherbehälter auf dem Zylinder vorgesehen sind. Die Bedingung
- H ≤ (M+1) /2
- gewährleistet, daß der Zylinder die Inhalte von w&sub0; aufnimmt, bevor eine zusätzliche Verwendung von w&sub0; möglich ist. Größere Werte von H können auf einfache Weise durch Anhängen zusätzlicher Wartebehälter w&sub1;, w&sub2;, . . . , aufgenommen werden.
- Eine Speicherakkuinulation ist ein asynchroner Vorgang, der einen Kennzeichnungsmechanismus erfordert. Jedem Summenbündel wird ein Behälterkennzeichen B, oder ein "B-Kennzeichen", zugeordnet, das das Bündel aufgrund seiner Position auf dem B-Zylinder identifiziert. B ist eine ganze Zahl mod H, die die Behälter auf dem B-Zylinder zyklisch identifiziert. Das Signal σH aktiviert den Mechanismus zur Zuordnung von B-Kennzeichen. Das Eintreffen von SN1(1), dem letzten Summanden im ersten Block einer Speicherakkuinulation, wird gefolgt vom Eintreffen eines σH- Signals und einer B-Kennzeichnungs-Anzeige BTI = 0. Nachfolgend eintreffende σH-Signale, die einer bestimmten Speicherakkuinulation entsprechen, besitzen einen BTI-Wert von Einheit. Durch BTI = 0 wird die Zuordnung eines B-Kennzeichens durch das Gerät ausgelöst. Anfänglich ist das B-Kennzeichen = 0 und die Zuordnung eines B-Kennzeichens bewirkt
- B-Kennzeichen ← (B-Kennzeichen + 1) mod H.
- Der Prozessor, der eine Speicherakkumulation durchführt, muß das entsprechende B-Kennzeichen speichern, so daß die nachfolgende Akkumulation im richtigen Behälter ausgeführt wird. Beim Eintreffen des nächsten relevanten Bündels aus diesem Prozeß und aufgrund des daraus hervorgehenden Signals σH liefert der Prozessor auch das zugeordnete B-Kennzeichen. Der Wert BTI=1 signalisiert das Vorhandensein eines zugeordneten B- Kennzeichens.
- Das B-Kennzeichen wird durch die Bitabschrägung und das Sieb wie ein σ-Signal verbreitet. Natürlich sind hierfür log&sub2;H Bits pro Zelle erforderlich. Das Eintreffen von σH und das B-Kennzeichen an α&sub0; bewirkt ein Stoßen der Inhalte von α&sub0; zum Behälter βB- Kennzeichen für die Akkumulation.
- Der B-Zylinder-Mechanismus hat auf die Verbreitung des T- Kennzeichens im Gerät einen Verzögerungseffekt. Insbesondere muß das T-Kennzeichen zwischen 3 und 3+H Zyklen bei der Bewegung von α&sub0; zu α&sub1; warten, da die Inhalte von α&sub0; bei der Bewegung nach α&sub1; mit dem B-Zylinder so viele Zyklen benötigen.
Claims (17)
1. Ein Gerät zur Berechnung von Summen eines Blocks aus
Gleitkommazahlen, die die Summanden xiyi = c&sub1;c&sub2; . . . ccm&sub1;m&sub2;
mM = w&sub1;w&sub2; . . . ww darstellen, wobei c die charakteristischen
Bitwerte und in die Mantissenbitwerte sind, und W = M+C;
diese Summanden kommen in bitparalleler Reihenfolge an (w1,1
wi,2 . . . wi,w; wi+1,1 wi+1,2 . . . wi+1,w; . . . ), wobei wi den
gesamten i-ten unkodierten Summanden und wi,j j=1 . . . , M+C
das j-te Bit dieses Summanden bezeichnet, und wobei mi die
Mantisse von wi und mi,j j=1, . . . ; M das j-te Bit von mi
bezeichnet und wobei die Nullgleitkommazahl an das Ende des
Blocks angehängt wird;
bei der Eingabe durchlaufen die Summanden eine
Bitverschiebungseinrichtung (14), um diese bitparallele
Ordnung in eine serien-parallele Ordnung (wi,1 wi-1,2 . . .
wi,w; wi-w-1,w; wi+1,1 wi,2 . . . wi-w-2,w; . . . ), umzuwandeln;
eine Sieb-Pipeline (16) zur Plazierung der Mantisse in die
korrekte Position eines Akkumulators (20) abhängig von der
Eigenschaft des Summanden, bestehend aus: einem
charakteristischen Dekodierbereich (32), der eine Matrix aus
Vergleichszellen zur Bestimmung des Werts der Eigenschaft
jedes Summanden enthält, wobei die charakteristischen Bits
vertikal die Reihen der Matrix durchfließen; jede Reihe
enthält Vergleichszellen für jede Bitposition der
Eigenschaften und erzeugt ein Steuersignal;
ein Sinkbereich (34) und ein Siebbereich (36), die zusammen
eine Matrix aus Siebzellen bilden, wobei jede Zelle in einer
Reihe auf das entsprechende Steuersignal anspricht und
bewirkt, daß die Zelle die Bewegungsrichtung der Mantisse
entweder in vertikaler oder diagonaler Richtung ändert, um
die Mantisse dieses Summanden über einen Pfad auf eine
geeignete Matrixposition aus Siebzellen zu leiten, wobei
im Sinkbereich die Mantissenbits direkt die Reihen
hinabsinken, bis die Eigenschaft dekodiert ist, und wobei
im Siebbereich (36) die Mantissenbits dieses Summanden
diagonal über einen Pfad auf eine geeignete Position am
Ausgang des Siebs geleitet werden,
wobei, wenn die Eigenschaft von wi+1 kleiner ist als die von
wi, wi+1 kleiner ist als wi, so daß im Akkumulator der
größere Summand links vom kleineren Summand plaziert wird,
und wobei, weil der Pfad, der von wi+1 gefolgt wird, größer
ist als der, der von wi gefolgt wird, einige der
Mantissenbits von w&sub1;+&sub1; gleichzeitig in dieselben Siebzellen,
die von den Mantissenbits von wi besetzt sind, eintreten und
eine Kollision verursachen, so daß, wenn das Mantissenbit j
des Summanden wi mit der Bezeichnung wi mit dem Mantissenbit
j-1 des dekodierten Summanden wi+1 kollidiert, und wenn
diese Mantissenbits, die in einem Zyklus kollidieren, in
nachfolgenden Zyklen ebenfalls kollidieren, diese Bits
zusammen eine Siebzelle belegen;
ein Mittel im Sieb zur sofortigen Addierung mehrerer eine
Siebzelle belegende Mantissenbits, welches ein
Summenmantissenbit und ein Trägermantissenbit erzeugt, wobei
das Summenmantissenbit weiter denselben diagonalen Pfad
hinabrollt wie die zuvor kollidierten Mantissenbits, wobei
die Trägermantisse im linken benachbarten diagonalen Pfad
bei Mantissenbits höherer Ordnung hinabrollt; hierbei
handelt es sich um eine Koaleszenz;
ein Akkumulator (20), der die Ausgaben dieses Siebs
akkumuliert und die akkumulierte Summe in Gleitkommaform
umwandelt, um so eine Gleitkommadarstellung jeder Summe zu
erhalten.
2. Eine Einrichtung in Übereinstimmung mit Anspruch 1, wobei
die Summanden in serieller-paralleler Reihenfolge von einem
Sieb aufgenommen werden und wobei der charakteristische
Dekodierbereich eine Mehrzahl an Stufen enthält; jede Stufe
enthält zum Vergleich entsprechender Bits einer Eigenschaft
mit Referenzbitwerten, die einer bestimmten Größenordnung
jeder Stufe entsprechen, eine Mehrzahl an einzelnen
Bitkoinparatoren; jede Stufe des charakteristischen
Dekodierbereichs entspricht einer dazugehörigen Zellenreihe
in diesem Siebbereich und liefert ein Steuersignal, welches
bewirkt, daß die Siebzellen in der entsprechenden Reihe die
Bewegungsrichtung der Mantissenbits entsprechend der auf
jeder Stufe dekodierten Eingenschaft ändern.
3. Eine Einrichtung in Übereinstimmung mit Anspruch 1, wobei
jeder Summand charakteristische Bits und Mantissenbits
enthält und wobei die Siebregion aus einer Mehrzahl an
Siebzellen (38) besteht, durch die die Mantissenbits zu
ihren entsprechend geeigneten Positionen am Ausgang des
Siebs laufen; dieses Koaleszenzmittel enthält Mittel zur
Kombinierung der Mantissenbits, die auf dem Weg zur selben
Position am Ausgang des Siebs gleichzeitig eine Siebzelle
belegen.
4. Eine Einrichtung in Übereinstimmung mit Anspruch 3, wobei
das Koaleszenzmittel ein Mittel zur Erzeugung von Summen-
und Trägerbits enthält, das der Summe der kombinierten
Mantissenbits entspricht, die zur selben Position geleitet
werden; dieses Sieb leitet die Summenbits zur selben
Position, während es die Trägerbits an die Ausgabe des Siebs
auf eine Position höherer Ordnung leitet.
5. Eine Einrichtung in Übereinstimmung mit Anspruch 4, wobei
das Koaleszenzmittel des weiteren ein Mittel zur
Kombinierung von Summen-, Träger- oder Mantissenbits
besitzt, die dieselbe Siebzelle auf dem Weg zur selben
Position am Ausgang des Siebs belegen.
6. Eine Einrichtung in Übereinstimmung mit Anspruch 3, wobei
jeder Summand des weiteren mit einem Signaturbit versehen
ist, welches die Signatur jedes Summanden anzeigt; diese
Einrichtung enthält ein Mittel zur Konvertierung der
Mantissenbits in signierte Mantissenbits und zur Lieferung
der signierten Mantissenbits zum Sieb; wobei der Akkumulator
eine Mehrzahl an Bitpositionen von der Position des
bedeutungstragendsten Bits bis zu der Position des am
wenigsten bedeutungstragendsten Bits enthält, sowie
Signatursensormittel zur Bestimmung der Signatur der Summe
in einem Akkuinulator durch aufeinanderfolgende Untersuchung
der Signaturen einzelner Bitpositionen, beginnend mit der
Position des am meisten bedeutungstragenden Bits.
7. Eine Einrichtung in Übereinstimmung mit Anspruch 6, wobei
das Signatursensormittel eine endliche Automaton mit einer
Mehrzahl an Stati mit mindestens einem Terminal-Status
enthält; dieser Signatursensor vervollständigt bei Erreichen
mindestens eines Terminal-Status die Bestimmung der Signatur
dieser Summe im Akkumulator, unabhängig von der Anzahl der
einzelnen untersuchten Bitpositionen.
8. Eine Einrichtung in Übereinstimmung mit Anspruch 1, wobei
jede Siebzelle mit einem ersten und einem zweiten Eingang
für die Aufnahme eines ersten und zweiten Mantissenbits und
einem ersten und zweiten Ausgang versehen ist; diese
Siebzelle enthält Mittel zur Weiterleitung des ersten und
zweiten Mantissenbits an den ersten bzw. den zweiten
Ausgang, wenn sich erstes und zweites Mantissenbit auf dem
Weg zu verschiedenen Siebausgangspositionen befinden, wobei
das Koaleszenzmittel das erste und das zweite Mantissenbit
kombiniert, wenn sie auf dem Weg zur selben
Siebausgabeposition sind.
9. Eine Einrichtung in Übereinstimmung mit Anspruch 8, wobei
das Koaleszenzmittel ein Mittel zur Erzeugung von Summen-
und Trägerbits enthält, das der Kombination aus erstem und
zweitein Mantissenbit entspricht, wobei das Summenbit an den
zweiten Ausgang geliefert wird und die Siebzelle ein
Trägerbit zur Lieferung dieses Trägerbits an eine
benachbarte Zelle im Sieb enthält.
10. Eine Einrichtung in Übereinstimmung mit Anspruch 1, wobei
der Siebbereich eine Matrix aus Siebzellen (38) enthält;
diese Siebzellen sind in Reihen und Spalten angeordnet und
enthalten einen Siebbereich (34) und einen Steigungsbereich
(36); diese Einrichtung leitet jede Mantisse vertikal durch
eine Spalte in diesem Sinkbereich, bis die entsprechende
Eigenschaft dekodiert werden kann, danach leitet dieser
Steigungsbereich die Mantisse diagonal durch mindestens
einen Teil des Steigungsbereichs zu einer geeigneten
Position am Ausgang des Siebs.
11. Eine Einrichtung in Übereinstimmung mit Anspruch 10, wobei
jede Zelle im Sinkbereich erste (ms) und zweite (mr)
Eingaben und erste (ms) und zweite (mr) Ausgaben sowie eine
Steuereingabe (f) für den Empfang eines Steuersignals mit
einem Wert, der anzeigt, ob die dem Mantissenbit
entsprechende Eigenschaft am ersten Eingang dekodiert wurde,
enthält; diese Zelle leitet ihre zweite Eingabe, unabhängig
vom Wert des Steuersignals, an ihre zweite Ausgabe und ihre
erste Eingabe in Übereinstimmung mit dem Wert des
Steuersignals an ihre erste und zweite Ausgabe.
12. Eine Einrichtung in Übereinstimmung mit Anspruch 11, wobei
der Siebbereich eine Mehrzahl an Sinkbereichen aufweist;
jeder der Sinkbereiche besitzt einen entsprechenden
charakteristischen Dekodierbereich, der die Eigenschaften in
unterschiedlicher Abfolge dekodiert.
13. Eine Einrichtung in Übereinstimmung mit Anspruch 12, wobei
der Akkumulator und das Sieb in einer zylindrischen
Konfiguration angeordnet sind, und wobei die Mehrzahl an
Sinkbereichen gegenseitig um den Umfang des Zylinders
versetzt werden.
14. Eine Einrichtung in Übereinstimmung mit Anspruch 1, wobei
der Akkumulator eine Mehrzahl an Akkumulatoren enthält,
nämlich einen ersten Akkumulator α&sub0; und mindestens einen
weiteren Akkumulator; diese Einrichtung enthält ein
Umlagerungsmittel, das beim Eingang einer letzten
Summandmantisse in den ersten Akkumulator zur Konversion in
eine Gleitkommadarstellung die Inhalte des ersten
Akkumulators in mindestens einen weiteren Akkumulator
umlagert, während der erste Akkumulator mit der Akkumulation
von Summanden entsprechend einer weiteren Summe beginnt.
15. Eine Einrichtung in Übereinstimmung mit Anspruch 14, das
weiterhin ein Mittel zur Lieferung eines Summenendsignals an
den Akkuinulator enthält; dieses Signal wird dann geliefert,
nachdem die letzte Summandmantisse in den Akkumulator
eingegeben wurde, wobei die Akkumulator-Pipeline eine
Mehrzahl an weiteren Akkumulatoren enthält; die Inhalte
jedes Akkumulators werden dabei beim Eingang des
Summenendsignals in jeden Akkumulator auf einen
nachfolgenden Akkumulator umgelagert, während die Umwandlung
in Gleitkommadarstellung fortgeführt wird; das Gerät enthält
weiterhin ein Mittel zur Anzeige der vollständig
durchgeführten Umwandlung in die Gleitkommadarstellung sowie
ein Mittel, welches auf diese Anzeige anspricht, um eine
Gleitkommasumme an eine Geräteausgabe zu liefern.
16. Eine Einrichtung in Übereinstimmung mit Anspruch 1 zur
Berechnung einer iterativen Summierung einer Mehrzahl
aufeinanderfolgender Summen, wobei das Akkumulatormittel
eine Mehrzahl an Akkumulatoren enthält, nämlich einen ersten
Akkumulator α&sub0;, einen Halteakkumulator β&sub0; und mindestens
einen weiteren Akkumulator; diese Einrichtung enthält ein
Umlagerungsmittel, das beim Eingang einer letzten
Summandmantisse in den ersten Akkumulator in jeder
aufeinanderfolgenden Summe die Inhalte des ersten
Akkumulators in den Halteakkumulator umlagert, um die
Summierung mit den Inhalten des Halteakkumulators
durchzuführen, und das beim Eingang einer letzten Summe der
iterativen Summierung in den Halteakkumulator die Inhalte
des Halteakkumulators auf mindestens einen weiteren
Akkumulator für die Konversion in Gleitkoininadarstellung
umlagert, während der erste Akkumulator und der
Halteakkumulator mit der Berechnung einer weiteren
iterativen Summierung beginnen.
17. Eine Einrichtung in Übereinstimmung mit Anspruch 16 zur
gleichzeitigen Durchführung einer Mehrzahl an iterativen
Summierungen, wobei das Akkumulatormittel eine Mehrzahl an
Halteakkumulatoren enthält, von denen jeder die Summen aus
dem ersten Akkumulator entsprechend einer zugehörigen
iterativen Summierung akkumuliert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/832,282 US4751665A (en) | 1986-02-24 | 1986-02-24 | Systolic super summation device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3786474D1 DE3786474D1 (de) | 1993-08-19 |
DE3786474T2 true DE3786474T2 (de) | 1994-02-17 |
Family
ID=25261217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE87101193T Expired - Fee Related DE3786474T2 (de) | 1986-02-24 | 1987-01-28 | Systolisches Supersummiergerät. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4751665A (de) |
EP (1) | EP0239737B1 (de) |
JP (1) | JPS62202232A (de) |
DE (1) | DE3786474T2 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US7831204B1 (en) | 1981-11-03 | 2010-11-09 | Personalized Media Communications, Llc | Signal processing apparatus and methods |
USRE47642E1 (en) | 1981-11-03 | 2019-10-08 | Personalized Media Communications LLC | Signal processing apparatus and methods |
US4872133A (en) * | 1988-02-18 | 1989-10-03 | Motorola, Inc. | Floating-point systolic array including serial processors |
JP2540366B2 (ja) * | 1989-06-27 | 1996-10-02 | セイコー電子工業株式会社 | 光書込液晶ライトバルブ |
WO1992000560A1 (en) * | 1990-06-29 | 1992-01-09 | Luminis Pty. Ltd. | A generalised systolic array serial floating point adder and accumulator |
JP2684003B2 (ja) * | 1993-10-06 | 1997-12-03 | 株式会社エイ・ティ・アール人間情報通信研究所 | ニューロン型セルラオートマトンおよびこれを用いた最適化装置 |
JP6410637B2 (ja) * | 2015-02-25 | 2018-10-24 | ルネサスエレクトロニクス株式会社 | 浮動小数点加算器、半導体装置及び浮動小数点加算器の制御方法 |
DE102019202532B4 (de) * | 2019-02-25 | 2023-01-26 | Volkswagen Aktiengesellschaft | Ablage- und/oder Servicefach sowie Fahrzeug mit einem derartigen Ablage- und/oder Servicefach |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
JPS59188740A (ja) * | 1983-04-11 | 1984-10-26 | Hitachi Ltd | フロ−テイング加算器 |
-
1986
- 1986-02-24 US US06/832,282 patent/US4751665A/en not_active Expired - Fee Related
- 1986-12-19 JP JP61301940A patent/JPS62202232A/ja active Granted
-
1987
- 1987-01-28 DE DE87101193T patent/DE3786474T2/de not_active Expired - Fee Related
- 1987-01-28 EP EP87101193A patent/EP0239737B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS62202232A (ja) | 1987-09-05 |
EP0239737A3 (en) | 1990-04-25 |
US4751665A (en) | 1988-06-14 |
EP0239737B1 (de) | 1993-07-14 |
DE3786474D1 (de) | 1993-08-19 |
JPH0444287B2 (de) | 1992-07-21 |
EP0239737A2 (de) | 1987-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750791T2 (de) | Sehr schnelle Transformationsvorrichtung. | |
DE60222163T2 (de) | Akkumulations-(mac-)einheit für einzelanweisungs-/ mehrfachdaten-(simd-) anweisungen | |
DE69232431T2 (de) | Vorrichtung zur Lösung von linearen Gleichungssystem | |
DE68928385T2 (de) | Neuronenrechner | |
DE4131778C2 (de) | Verfahren und Vorrichtung zur Kantenerkennung für ein Bildverarbeitungssystem | |
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE69416283T2 (de) | Überlaufsteuerung für arithmetische Operationen | |
DE4293456B4 (de) | Elektronische Logikschaltung | |
DE69811877T2 (de) | ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert. | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE69130390T2 (de) | Schaltkreis schaltbar als matrix-multiplizierer oder convolver für farbbildverarbeitung | |
EP0123921B1 (de) | Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf | |
DE112017000855B4 (de) | Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze | |
DE69031674T2 (de) | Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE3786474T2 (de) | Systolisches Supersummiergerät. | |
DE68927611T2 (de) | Digitales neuronales Netwerk | |
DE3700323C2 (de) | ||
DE1549477B1 (de) | Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden | |
DE4101004C2 (de) | Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum | |
DE3322705A1 (de) | Verfahren und schaltungsanordnung zur videoschnellen bestimmung des medianwertes eines auswertefensters | |
DE69025182T2 (de) | Digitaler prozessor für zweierkomplementberechnungen | |
DE3889150T2 (de) | Filter n-ten Ranges. | |
DE69229325T2 (de) | Schaltung zur Detektierung der Position eines äussersten "1"-Bits in eine Binärzahl | |
EP0349819B1 (de) | In integrierter Schaltungstechnik ausgeführtes digitales neuronales Netz |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |