DE2900324C2 - - Google Patents
Info
- Publication number
- DE2900324C2 DE2900324C2 DE2900324A DE2900324A DE2900324C2 DE 2900324 C2 DE2900324 C2 DE 2900324C2 DE 2900324 A DE2900324 A DE 2900324A DE 2900324 A DE2900324 A DE 2900324A DE 2900324 C2 DE2900324 C2 DE 2900324C2
- Authority
- DE
- Germany
- Prior art keywords
- arithmetic
- control
- field
- mantissa
- bit
- 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
Links
- 230000015654 memory Effects 0.000 claims description 89
- 238000007667 floating Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 23
- 238000012360 testing method Methods 0.000 description 22
- 238000003860 storage Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 239000000872 buffer Substances 0.000 description 16
- 238000012546 transfer Methods 0.000 description 12
- 238000007792 addition Methods 0.000 description 11
- 230000001143 conditioned effect Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000010606 normalization Methods 0.000 description 7
- 238000002360 preparation method Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 101000980673 Homo sapiens Multicilin Proteins 0.000 description 3
- 102100024179 Multicilin Human genes 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010011878 Deafness Diseases 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- 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/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Description
Die vorliegende Erfindung bezieht sich auf ein mikroprogrammierbares,
rekonfigurierbares Rechenwerk nach dem Oberbegriff des
Patentanspruchs 1.
Das erfindungsgemäße Rechenwerk soll insbesondere auch in der Lage sein,
Gleitkommaoperationen durchzuführen. Das Rechenwerk
ist ausgestattet mit einem adressierbaren Befehlsspeicher zur Speicherung
von Mikrobefehlsworten, die je eine Vielzahl von Steuerfeldern
umfassen, mit einem mit dem Befehlsspeicher verbundenen Ausgangsregister
zur Speicherung eines ausgelesenen Mikrobefehlswortes
und mit einer Mehrzahl von binären Rechenwerkschaltstufen.
Allgemein sind arithmetische Rechenwerke strukturell so zu gestalten,
daß eine gewisse Flexibilität sichergestellt ist, wenn es darauf ankommt,
Rechenoperationen von unterschiedlichem Typus durchzuführen. Beispielsweise
benötigt man bestimmte arithmetische Rechnereinheiten,
um befehlsspezifische Operationen mit Operanden von unterschiedlichem
Format durchführen zu können. Genauer gesagt, bei der Gleitkommaarithmetik
im Falle bestimmter Befehle für die Multiplikation und Division,
umfassen die Operanden in der Regel einen kurzen Mantissenwert
(z. B. 56 Bits). Im Falle anderer Befehle, etwa solcher für die
Addition und Subtraktion, können die Operanden in gewissen Phasen
der Befehlsdurchführung lange Mantissenwerte beinhalten (z. B. 64 Bits).
Um den Befehlsanforderungen bezüglich längerer und kürzerer Operanden
genügen zu können, besitzen die Rechenwerkeigenschaften getrennte
Sektionen für Exponent und Mantisse, wobei die Mantissensektionen
in der Regel umfangreicher mit einer ausreichenden Anzahl von Stufen
ausgestattet sind, um auch die größten, bei der Verarbeitung auftretenden
Mantissenwerte behandeln zu können.
Derartige Anordnungen weisen einen beträchtlichen Schaltungsaufwand
innerhalb der arithmetischen Verarbeitungseinheit auf, was einen
relativ großen Raumbedarf bedingt und zu relativ hohen Herstellungskosten
führt.
Als Stand der Technik sind bereits arithmetische Recheneinrichtungen
in Datenverarbeitungsanlagen bekannt geworden (z. B. DE-OS 25 01 985)
mit getrennten Rechenwerken für Exponent und Mantisse.
Eine Rekonfiguration dieser zwei Werke zu einer einzigen Rechenfunktionseinheit
ist dabei jedoch nicht vorgesehen. Für das
Rechnen mit doppelter Genauigkeit muß das betreffende Register
die nötige Kapazität aufweisen, d. h., es bedarf eines größeren
Schaltungsaufwands. Wenn man dann aber Operationen auszuführen
hat, die nur einfache Genauigkeit verlangen, liegt die halbe
Kapazität des genannten Registers brach. Auch bei doppelter
Genauigkeit sind immer eine bestimmte Anzahl von Bits für Vorzeichen
und Exponent reserviert; eine Rekonfiguration der z. B.
ersten acht Bits in einen Mantissenteil ist nicht vorgesehen.
In einer anderen druckschriftlichen Veröffentlichung (DE-AS
15 49 478 ist ein Gleitkomma-Rechenwerk offenbart mit einer
Schaltung zur Ausrichtung der Operandenmantissen, mit einer hieran
angeschlossenen Schaltung zur Paralleladdition und einer mit dem
Ausgang der Additionsschaltung verbundenen Schaltung zur Mantissen-
Resultatnormalisierung und zur Exponentenkorrektur sowie
mit einer Schaltung zur Weiterleitung der Additions- und Subtraktionsresultate
an nachgeschaltete Einheiten. Auch hier
ist keine Rekonfiguration von Schaltungseinheiten des Rechenwerks
vorgesehen.
Die britische Patentschrift 13 90 384 betrifft eine mikroprogrammgesteuerte
Datenverarbeitungsanlage mit einem Rechenwerk,
das Befehle an Operanden praktisch beliebiger Länge auszuführen
im Stande ist. Dort besteht das Problem, eine Lösung zu
finden, wenn die Datentransfer-Sammelleitungen bei parallel
zu verarbeitenden Operanden schmalbandiger sind als die zu
übertragenden Operandenwerte. Das Problem wird dort so gelöst,
daß die Operanden abschnittsweise verarbeitet werden,
wobei die so gewählten Operandenabschnitte in ihrer Bandbreite
innerhalb der Bandbreite der Datentransfer-Sammelleitungen
liegen. Auch hier ist keine Rekonfiguration von
Schaltungseinheiten des Rechenwerks vorgesehen.
Kommen in einem Rechenwerk arithmetische Operationen zur Ausführung,
bei denen die Zahlendarstellung keine Exponenten umfaßt
oder nach einer Normierung vorzugsweise mit expandierten
Mantissen gerechnet werden soll (z. B. bei Additionen), so würden
die zur Exponentenbearbeitung in der Hardware vorgesehenen
Mikroprozessoren brach liegen. Dies soll mit der vorliegenden
Erfindung vermieden werden.
Demgemäß besteht die Aufgabe der vorliegenden Erfindung
darin, ein Rechenwerk zu schaffen, das unterschiedliche Arten
von arithmetischen Operationen, wie z. B. Gleitkommaoperationen,
Rechenoperationen mit expandierten Mantissen, usw., bei einem
Minimalaufwand von Schaltungselementen auszuführen in der Lage
ist, mit anderen Worten, das bei optimaler Ausnutzung der verfügbaren
Hardware die Durchführung arithmetischer Operationen
an Operanden gestattet, die je nach durchzuführender Rechenoperation
unterschiedlich dargestellt sein können, z. B. Gleit-
oder Festkommadarstellung.
Die dargestellte Aufgabe der vorliegenden Erfindung,
die sich auch von den spezifischen Aufgabenstellungen beim
aufgezählten Stand der Technik unterscheidet, wird dadurch
gelöst, daß mehrere Rechenwerkschaltstufen zu funktionellen
Recheneinheiten zusammengeschaltet sind, wobei eine erste
funktionelle Recheneinheit die Bearbeitung von Mantissen
und die zweite funktionelle Recheneinheit die Bearbeitung
der Exponenten durchzuführen in der Lage ist, daß mit den
beiden funktionellen Recheneinheiten Steuerschaltmittel verbunden
sind, die es in Abhängigkeit von Steuerfeldsignalen
des Mikrobefehlswortes gestatten, die beiden genannten funktionellen
Recheneinheiten selektiv zusammenzuschalten, um mit
allen vorhandenen Rechenwerkschalterstufen die arithmetische
Operation in durchgehender Zahlendarstellung an den Operanden
durchzuführen.
Das mikroprogrammierbare, rekonfigurierbare Rechenwerk gemäß der
Erfindung wird nun anhand eines Beispiels beschrieben, wobei im Rahmen
der Detailbeschreibung auf nachfolgend aufgeführte Figuren Bezug
genommen wird. Es bedeuten:
Fig. 1 ein Blockdiagramm des gesamten Datenverarbeitungssystems einschließlich des Rechenwerks;
Fig. 2 ein Blockdiagramm des für wissenschaftliche Rechenoperationen
zu verwendenden Prozessors aus Fig. 1;
Fig. 3 ein in weitere Einzelheiten gehendes Blockdiagramm von den
Haupteinheiten des wissenschaftlichen Prozessors;
Fig. 4a ein Schaltungsdiagramm der Übertragungsvorbereitungsschaltungen
(carry look-ahead) 40-82 der Fig. 2 und 3;
Fig. 4b ein Schaltungsdiagramm des Detektors 40-86 für führende
Nullen, des Detektors 40-88 für den Exponentenunterschied und der
Verschiebungsteuerlogik 40-72 der Fig. 2 und 3;
Fig. 5 ein Blockdiagramm des Mikroprozessorchips, das in dem Prozessor
verwendet wird;
Fig. 6 ein in weitere Einzelheiten gehendes Blockdiagramm mit
Schaltungseinzelheiten des Mikroprozessorchips von Fig. 5 und
der Haupteinheiten von Fig. 3;
Fig. 7 das Format der Mikrobefehlswörter, wie sie im Steuerspeicher
von Fig. 2 vorkommen; und
Fig. 8 ein Flußdiagramm zur Erklärung der Operationsweise des
Prozessors.
Das mikroprogrammierbare, rekonfigurierbare Rechenwerk der vorliegenden
Erfindung umfaßt eine einzige mikroprogramm-gesteuerte Gleitkommandoeinheit,
die einen mikroprogrammierbaren Steuerungsbereich und
eine Mehrzahl von Schaltungsbereichen für arithmetische und logische
Operationen und für die Übertragungsvorbereitung (carry look-ahead) aufweist.
Die Schaltungsstufen sind in zwei arithmetische und logische Bereiche
aufgeteilt, von denen jeder eine unterschiedliche
vorgegebene Anzahl von in Reihe verbundenen Stufen besitzt.
Ein Bereich wird zur Verarbeitung von Exponenten oder
langen Mantissen verwendet. Der andere Bereich besitzt
eine andere Anzahl von reihenverbundenen Stufen, die miteinander
gekoppelt sind, um die Mantissen der Gleitkommaoperanden
zu verarbeiten.
Das Rechenwerk besitzt weiterhin Steuerschaltungen, die sowohl
die arithmetischen als auch die logischen Bereiche
und die Übertragungsvorbereitungsschaltungen
miteinander verbinden. Die Steuerschaltungen verbinden bzw.
teilen wahlweise in Reaktion auf Signale von
dem mikroprogrammierten Steuerungsbereich die beiden Bereiche
für den Betrieb in eine einzige Einheit zur Verarbeitung der
Matissen bzw. in zwei Einheiten zur Verarbeitung von
Exponenten und Mantissen unabhängig voneinander.
Die Steuerschaltungen verhindern bzw. ermöglichen wahlweise
die Übertragung der durch die Übertragsvorbereitungsschaltung
erzeugten Überträge durch die zwei arithmetischen und logischen
Abschnitte, wenn sie entweder unabhängig voneinander
(das heißt, gespalten) oder zusammen in einem Stück (das
heißt, verbunden) arbeiten.
Der Steuerspeicherbereich besitzt einen adressierbaren
Steuerspeicher mit Mikrobefehlswortfolgen, und jedes Mikrobefehlswort hat ein codiertes
Ein-Bit-Feld, um zu spezifizieren, ob die
beiden Abschnitte unabhängig voneinander (geteilt) oder zusammen
in einem Stück (verbunden) während desjenigen Operationszyklus
arbeiten sollen, indem das spezielle
Mikrobefehlswort adressiert ist und aus dem Steuerspeicher
ausgelesen wird. Jedes CRSPLT-Feld des Mikrobefehlswortes
erzeugt beim Auslesen aus dem Steuerspeicher Signale,
die die verschiedenen Steuerschaltungen innerhalb der
mikroprogrammierten Verarbeitungseinheit so einstellen, daß entweder ein
Betrieb in zwei Abschnitten oder in einem einzigen Abschnitt (′′in einem Stück′′)
realisiert wird.
Unter der Mikroprogrammsteuerung können die Steuerschaltungen auch so konditioniert werden,
daß sie einzelne Bit-Verschiebungen von langen Mantissen
ausführen. Für diesen Fall werden die beiden Abschnitte
miteinander an den Schnittstellen zwischen den beiden Abschnitten
durch die Steuerschaltungen verbunden. Wenn
eine Verschiebung des Exponenten oder der Mantisse erforderlich
ist, verursachen die Steuerschaltungen unter dem Einfluß der Mikroprogrammsteuerung
eine Unterbrechung zwischen den beiden Abschnitten.
Bei der Unterbrechung führen die Steuerschaltungen eine
Null in den speziellen, zu verschiebenden Stellenwert ein (das
ist der Stellenwert, der sich von der Unterbrechungsstelle weg
bewegt). Auch andere Abschnitte jedes Mikrobefehlsworts sind
codiert, um die betreffenden Überträge den Übertragsvorbereitungsschaltungen
zuzuführen, wie es für die auszuführenden
Rechenoperationen erforderlich ist.
Das mikroprogrammierte, rekonfigurierbare Rechenwerk
besitzt weiterhin
Nulldetektorschaltungen zur Normierung der
Gleitkommaoperanden. Diese Normierung bewirkt einen
Operationsschritt, um den Mantissenwert so groß wie möglich zu
machen, das heißt, der Mantissenwert wird so weit wie möglich nach
links verschoben, die führenden Nullen werden dabei eliminiert,
während zugleich der Exponent für jede Linksverschiebung
um Eins reduziert wird. Die Nulldetektorschaltung
besitzt Zählschaltungen, welche einen Zählwert für die Verschiebungen
erzeugen, welcher die Anzahl der führenden Nullstellen in dem Mantissenwert
spezifiziert, ferner Schaltungen zur Erzeugung und Speicherung
eines Ausgangssignals, das anzeigt, wenn der Mantissenwert
nur Nullen enthält. Die Nulldetektorschaltungen sind
an bestimmten Anschlußpunkten mit jeder Stufe in beiden
Abschnitten verbunden, um von dort ein Steuersignal zu empfangen.
Jede arithmetische und logische Stufe besitzt
Schaltungen, die das Steuersignal an den genannten Anschlußpunkten auf
Eins setzen, wenn der Stellenwert der zugeordneten Stufe
einen Wert Null enthält.
Diese Anordnung ermöglicht es der arithmetischen
und logischen Einheit festzustellen, ob eine lange
oder kurze Mantisse nur Nullen enthält, ungeachtet
der Operationen, die in beiden Abschnitten durchgeführt werden
müssen. Da die Nullanzeige in den Detektorschaltungen
gespeichert wird, steht sie zur Abfrage während eines nachfolgenden
Operationszyklus′ zur Verfügung.
Da während jedes Operationszyklus′ die beiden Bereiche oder Abschnitte
gemäß der vorliegenden Erfindung wahlweise getrennt oder verbunden
werden können, lassen sich unabhängige Operationen, für die Exponent-
und Mantissenwerte notwendig sind, parallel durchführen.
Dies gestattet die Durchführung arithmetischer
Operationen mit praktisch derselben Geschwindigkeit,
wie wenn das Verarbeiten mittels zweier
separater Einheiten erfolgen würde.
Die Erfindung wird nachstehend in weiteren Details beschrieben,
wobei zur besseren Erläuterung auf die beigefügten Figuren Bezug
genommen wird.
Fig. 1 zeigt ein Blockdiagramm eines Datenverarbeitungssystems, in dem
die erfindungsgemäße Vorrichtung
verwendet wird. Wie der Figur zu entnehmen ist, ist eine
Hauptdatenleitung 10 (Datenbus) vorgesehen, die an einen Hauptspeicher
(main memory = MM) 30 an eine zentrale Verarbeitungseinheit 20
(central processor unit = CPU), an einen für die
Durchführung von wissenschaftlichen Rechenoperationen geeigneten Prozessor 40 (scientific instruction
processor = SIP) und periphere Steuereinheiten 50,
die den Betrieb
von peripheren Anschlußgeräten 52 steuern, angeschlossen ist. Jede mit
der Datenleitung 10 verbundene Einheit kann den Hauptspeicher 30
oder jede andere Einheit, die mit dem Datenbus
verbunden ist, ansteuern. Der
Datenbus 10 besitzt eine Anzahl von Steuerleitungen, Adreßleitungen
und Datenleitungen zur Übertragung von Befehlen und Daten.
Für weitere Informationen, die den Betrieb des Systems nach
Fig. 1 betreffen, wird Bezug genommen auf die US-Patentschrift
3 993 981.
Fig. 2 zeigt ein Blockdiagramm der Haupteinheiten des wissenschaftlichen
Prozessors (SIP) 40, wie er in der
vorliegenden Erfindung realisiert ist.
In Fig. 2 ist zu sehen, daß der wissenschaftliche Prozessor (SIP) 40 eine Anzahl von Abschnitten
oder Bereichen, besitzt. Die Abschnitte sind ein Datenleitungs- oder
Bussteuerabschnitt 40-2, ein Registerabschnitt 40-4, ein
Steuerspeicherabschnitt 40-6, ein Schiebelogikabschnitt 40-7
und ein Mikroprozessorabschnitt 40-8. Der Abschnitt 40-2 besitzt
eine Busabfragelogik und eine Busantwortelogik in den
Blöcken 40-20, bzw. 40-22. Diese Schaltungen ermöglichen es
der SIP 40, über den Bus 10 unter Steuerung des Abschnittes
40-6 Verbindungen aufzunehmen.
Der Registerabschnitt 40-4 besitzt eine Vielzahl von Registern
40-40 bis 40-48, die miteinander wie dargestellt verbunden
sind. Vier dieser Register 40-4, 40-42, 40-44 und
40-48 liefern Eingangssignale, um die Logikschaltungen eines
Blocks 40-66 im Abschnitt 40-6 zu testen. Das Funktionsregister
40-40 ist ein 6-Bit-Register, das einen Funktionscode
speichert, der den Adreßleitungen des Bus 10 während eines
Eingangs- oder eines Ausgangsbuszyklus′ der Operation zugeführt
wird. Danach prüft die SIP 40 unter Mikroprogrammsteuerung
die Inhalte der Register 40-40 durch die Testlogik
40-66 und führt den spezifizierten Befehl aus. Die ausgewählten
Mikroprogrammroutinen bestimmen die Information und
steuern die Übertragung dieser Information zwischen dem Bus 10
und den verschiedenen Registern, Datenleitungen und Abschnitten
von SIP 40. Das Adreßregister 40-42 ist ein 22-Bit-
Register, das üblicherweise zur Speicherung einer Hauptspeicheroperandenadresse
verwendet wird, die über die Adreßleitung
von Bus 10 empfangen wird, wenn SIP 40 einen Ausgangsbefehl
von der CPU 20 annimmt.
Das nächste Register 40-44 (Aufgabenregister) ist ein 12-Bit-
Register, das verwendet wird, um ein erstes Wort eines wissenschaftlichen
Befehls, der von der Datenleitung des Bus 10 empfangen
wird, zu speichern, wenn die SIP 40 einen Ausgangsbefehl
von der CPU 20 annimmt. Die SIP 40 decodiert unter der
Mikroprogrammsteuerung das erste Befehlswort über die in den
nächsten Adreßerzeugungsschaltungsblöcken 40-64 enthaltenen
Schaltungen und erzeugt die Startadresse der Mikroprogrammroutine,
die zur Verarbeitung dieses Befehls erforderlich ist.
Ebenfalls werden gewisse Bits dieses Registers dazu verwendet,
zu spezifizieren, welches wissenschaftliche Akkumulatorregister
verwendet werden soll. Beispielsweise spezifizieren die
Bit-Positionen 2 und 3 das wissenschaftliche Akkumulator- oder
Zwischenspeicherregister, das als A-Operandquelle/Ergebnisablage
für den laufenden Befehl verwendet wird. Die Aufgabenregisterbit-
Positionen 14 und 15 spezifizieren das wissenschaftliche
Akkumulatorregister, das als B-Operand (effektive
Adresse) für den laufenden Befehl verwendet wird.
Das Modusregister 40-48 ist ein 8-Bit-Register, das die von
der CPU 20 erhaltene Information speichert. Die Information
wird zuerst von der Datenleitung des Bus 10 aufgenommen und
in das Busdatenregister 40-46 geladen. Danach werden die
Inhalte des Registers 40-46 über die Abschnitte 40-8 und 40-7
übertragen und in das Register 40-48 geladen. Die Information
wird verwendet, um die Durchführung der Mikrobefehlsfolgen
zu steuern, die der Operandenlänge oder zum Runden/Abschneiden
der Operation dienen.
Die Busdatenregister 40-46 und 40-47, die als BD 1 und BD 2
bezeichnet sind, sind 16-Bit-Register, die verwendet werden,
um die von der Datenleitung des Bus 10 bezogenen Informationen
zu speichern. Das Register 40-46 empfängt üblicherweise
Daten, die aus Einwort-Operationen entstehen (beispielsweise
Befehlswort von der CPU 20), während das Register 40-47 üblicherweise
Daten aufnimmt, die von Doppelwort-Operationen
(zweites Wort einer doppelten Integergröße oder ganzen Zahl
von der CPU 20) herrühren.
Der Steuerabschnitt 40-6 besitzt einen Steuerspeicher 40-60,
der aus 1024 Lesespeichern (read only storage = ROS) aufgebaut
ist, von denen jeder 64 Bits aufweist, ein ROS-Lokalregister
40-62 zur Speicherung eines Mikrobefehlsworts, das
aus dem Steuerspeicher 40-60 während eines Operationszyklus′
ausgelesen worden ist, eine Unterbefehlsgeneratorschaltung
40-63 zur Decodierung und Verteilung von Steuersignalen zu
den verschiedenen Abschnitten der SIP 40, Schaltungen 40-64
zur Erzeugung der nächsten ROS-Adresse und eine Testlogikschaltung
in Block 40-66. Wie hier erklärt, erzeugen die
Schaltungen 40-61 üblicherweise die Adresse der nächsten
Speicherstelle als Funktion eines nächsten Adreßfeldes des
Mikrobefehlsworts und Ausgangssignalen von den Testlogikschaltungen
40-66. Das heißt, die Testlogikschaltungen 40-66
wählen eine der 64 möglichen Testbedingungen aus, die auf
der Codierung eines anderen Feldes des Mikrobefehlswortes
basieren. Die Ausgangssignale, die in Verbindung mit dem
nächsten Adressenfeld erzeugt werden, werden verwendet, um
die nächste Adresse zu bilden.
Wie bereits erwähnt, erzeugen die Schaltungen 40-64 zusätzlich
die nächste Adresse für den ersten Speicherplatz des
Mikroprogramms zur Verarbeitung des Befehls durch Docodierung
des Befehlswortes, das in dem Aufgabenregister 40-44
gespeichert ist. In der vorliegenden Erfindung können die
Testlogikschaltungen 40-66 und die Adreßerzeugungsschaltungen
40-64 in ihrer Auslegung wie bisher üblich betrachtet werden.
Beispielsweise können sie die Schaltungsformen besitzen, die
in dem US-Patent 3 909 800 beschrieben sind, über das ebenfalls
die Anmelderin verfügt.
Die verschiedenen erwähnten Felder sind in dem Format des
Mikrobefehlswortes in Fig. 8 dargestellt. Aus dieser Figur
ist zu entnehmen, daß jedes Mikrobefehlswort 19 unterschiedliche
Felder besitzt, die mit DA bis CK bezeichnet sind. Diese
Felder werden wie folgt verwendet:
- 1. Das Direktadressenfeld (DA) besitzt die Bits 0 bis 3 des Mikrobefehlsworts. Dieses Feld liefert eine direkte Adresse, die verwendet wird, um einen der 16 Unterspeicher, die in dem wissenschaftlichen Speicher enthalten sind, auszuwählen.
- 2. Das A-Wahlfeld (AS) besitzt die Bits 4 und 5 des Mikrobefehlsworts und wird verwendet, um auszuwählen, welcher der vier Eingänge des A-Adreßmultiplexers 40-840 ausgewählt wird.
- 3. Das B-Wahlfeld (BS) besitzt die Bits 6 und 7 des Mikrobefehlsworts und wird verwendet, um einen der vier Eingänge des B-Adreßmultiplexers 40-842 auszuwählen.
- 4. Das Exponentenquellenfeld (ES) besitzt die Bits 9 bis 11 des Mikrobefehlswortes und steuert die Addierungseingangsmultiplexer für die Bits 56 bis 63 des Fließkommaworts (das heißt, den Exponentteil des Wortes). Deshalb bestimmt das ES-Feld die Operandenquelle für die A- und B-Eingänge der jeder Exponentenstelle zugeordneten Addierungseinheit.
- 5. Das Mantissenquellenfeld (MS) besitzt die Bits 13 bis 15 des Mikrobefehlswortes und steuert die Addierungseingangsmultiplexer für die Bits 0 bis 55 des Fließkommaworts (das heißt den Mantissenteil des Wortes). Deshalb bestimmt das MS-Feld die Operandenquelle für die A- und B-Eingänge der jeder Mantissenstelle zugeordneten Addierungseinheit.
- 6. Das externe Busfunktionsfeld (BF) besitzt die Bits 16 bis 19 des Mikrobefehlswortes und wird verwendet, um verschiedene der externen Bus- (interface) zugeordneten Verarbeitungsoperationen zu steuern.
- 7. Das Verschiebungssteuerungsfeld (SC) besitzt die Bits 21 bis 23 des Mikrobefehlswortes und wird verwendet, um die durch die Vielfachstellen-Verschiebungsschaltungen bewirkten Operationsarten zu steuern.
- 8. Das Exponentfunktionsfeld (EF) besitzt die Bits 25 bis 27 des Mikrobefehlswortes. Diese drei Bits schaffen eine Steuerung für alle Operationen innerhalb der arithmetischen Logikeinheit, die jeder Exponentenstelle (das heißt den Bits 56 bis 63 des Fließkommaworts) zugeordnet ist.
- 9. Das Mantissenfunktionsfeld (MF) besitzt die Bits 29 bis 31 des Mikrobefehlswortes. Diese drei Bits liefern eine Steuerung für alle Operationen innerhalb der arithmetischen Logikeinheit, die jeder Mantissenstelle (das heißt den Bits 0 bis 55 des Fließkommaworts) zugeordnet ist.
- 10. Das Testbedingungsfeld (TC) besitzt die Bits 32 bis 35 des Mikrobefehlsworts. Dieses Feld wird in Verbindung mit einem Zweigmaskenfeld (BM) verwendet, um die speziellen Testfunktionen auszuwählen, die zur Erzeugung der nächsten Steuerspeicheradresse verwendet werden.
- 11. Das Zweigmaskenfeld (BM) besitzt die Bits 36 bis 39 des Mikrobefehlswortes. Wie erwähnt, wird dieses Feld in Verbindung mit dem TC-Feld verwendet, um die spezielle Testfunktion auszuwählen, die zur Erzeugung der nächsten Adresse verwendet wird.
- 12. Das Exponentbestimmungsfeld (ED) besitzt die Bits 41 bis 43 des Mikrobefehlsworts. Dieses Feld steuert die drei Sets des Multiplexers, der dem Exponentabschnitt des Fließkommaworts (das heißt Bits 56 bis 63) zugeordnet ist, wodurch alle Datenbewegungen und Verschiebungsoperationen innerhalb des Mikroprozessors ALU (Exponentstellen) gesteuert werden.
- 13. Das Mantissenbestimmungsfeld (MD) besitzt die Bits 45 bis 47 des Mikrobefehlswortes. Dieses Feld steuert die drei Sets des Multiplexers, der dem Mantissenabschnitt des Fließkommaworts (das heißt Bits 0 bis 55) zugeordnet ist, wodurch alle Datenbewegungen und Verschiebungsoperationen innerhalb des Mikroprozessors ALU (Mantissenstellen) gesteuert werden.
- 14. Allgemeines Feld (GP) besitzt die Bits 48 bis 53 des Mikrobefehlswortes. Das GP-Feld wird verwendet, um entweder Konstanten oder SIP-Unterbefehle, abhängig von dem Zustand des Bits 48 (das heißt Bit 48 logisch wahr - erzeuge Unterbefehls, Bit 48 logisch falsch - erzeuge Konstanten) zu erzeugen.
- 15. Das Feld für die nächste Adresse (NA) besitzt die Bits 54 bis 63 des Mikrobefehlswortes und bestimmt die nächste folgende Adresse.
- 16. Das Matrixsteuerungsfeld (MC) besitzt die Bits 8 und 12 des Mikrobefehlswortes. Diese Bits bestimmten die Verschiebungsquelle (Verschiebungszählung) für die Matrixschiebeschaltung.
- 17. Das Split- oder Aufteilfeld (SP) umfaßt das Bit 20 des Mikrobefehlswortes. Erfindungsgemäß bestimmt die Codierung dieses Bits, ob die Exponent- oder Mantissenteile des Fließkommawortes getrennt oder als einziger Operand durch die Stufen des Mikroprozessorabschnitts 40-8 verarbeitet werden. Wie erklärt, werden die Mantissen- und Exponentabschnitte getrennt und unabhängig voneinander verarbeitet, wenn Bit 20 bestimmt, daß CRSPLT eine binäre Eins ist. Wenn das CRSPLT-Bit 20 eine binäre Null ist, werden die beiden Teile als ein einziger Operand behandelt.
- 18. Das Carry-In-Feld (CI) besitzt die Bits 24 und 28 des Mikrobefehlswortes. Diese Bits versorgen die Carry- oder Übertragseingänge für die Exponent- bzw. Mantissenabschnitte des Fließkommawortes.
- 19. Das Taktsteuerungsfeld (CK) besitzt die Bits 40 und 44 des Mikrobefehlswortes und bildet die Steuerungsspeicherzykluszeit.
Der Mikroprozessorabschnitt 40-8 besitzt eine Mikroprozessoreinheit
40-80 und A- und B-Adreßmultiplexer-Schaltungen eines
Blocks 40-84, RAM-Schiebesteuerungsschaltungen 40-86, eine
Anzahl von Carry- oder Übertragserzeugungsschaltungen eines
Blocks 40-82, einen Detektor 40-86 für die führenden Nullen
und einen Detektor 40-88 für die Exponentdifferenz. Der Abschnitt
40-80 ist aus 17 large-scale-integrates (LSI) Mikroprozessorchips
aufgebaut, die in Fig. 3 mit 40-300 bis 40-832
bezeichnet sind. In einer bevorzugten Ausführungsform entspricht
das Chip dem Typ 2901-Chips der Advanced Micro Devices
Inc. Jedes dieser Chips, die in Blockform in Fig. 4
dargestellt sind, verarbeitet vier Bits. 16 derartiger Chips
können, wie in Fig. 3 dargestellt, miteinander verbunden werden,
um eine 64-Bit- oder eine 56-Bit- oder eine 8-Bit-
Mikroprozessoreinheit, wie hier erklärt, zu bilden. Die ersten
14 Chips, die den Bits 0 bis 55 entsprechen, speichern und
verarbeiten die Mantissenwerte einer Fließkommazahl. Die
nächsten zwei Chips speichern und verarbeiten entweder die
Exponentwerte oder zusätzliche, am wenigsten signifikante
Mantissenwerte der Fließkommazahl. Ein letztes Chip speichert
das Dezimalkomma und die Vorzeichenwerte, wie hier erklärt
wird.
Wie aus Fig. 2 zu ersehen ist, ist der Mikroprozessorabschnitt
40-80 horizontal in einer Anzahl von RAM-Schiebe- und Multiplexer-
Abschnitten, Q-Shift- und Q-Register-Abschnitte, wissenschaftliche
Speicherabschnitte, Wahlabschnitte, arithmetische
und logische (ALU) Abschnitte und Ausgangsmultiplexer-
Abschnitte unterteilt. Fig. 5 zeigt in größeren Einzelheiten
die Abschnitte jedes Chips. Zusätzlich besitzen die RAM-
Schiebe- und Multiplexer-Abschnitte zwei 64-Bit-Multiplexer-
Schaltungen, die sowohl für Schiebeoperationen als auch für
übliche Datenübertragungen verwendet werden. Das heißt, diese
Schaltungen liefern eine direkte Übergabe oder eine Verschiebung
der Daten von links nach rechts, bevor sie in die Speicherabschnitte
geladen werden.
Wie in Fig. 3 dargestellt, sind die RAM-Schiebeverbindungen
zwischen den Chips, die Mantissenwerte und die Exponentenwerte
speichern, in vorbestimmter Weise in Übereinstimmung mit der
vorliegenden Erfindung angeordnet. Das heißt, der RF 3 RAM-
Schiebeausgangsanschluß des Chips, der das letzte signifikante
Mantissenbit (das heißt Bit 55 von Chip 40-828) speichert,
liegt an einem Dateneingangsanschluß einer Multiplexer-
Schaltung 40-810, deren Ausgang den RF 0 RAM-Schiebeeingang des
signifikanten Exponentenbits (das heißt Bit 56 von Chip
40-830) ansteuert. Den anderen Dateneingangsanschluß erdet
die Multiplexer-Schaltung 40-811.
Zusätzlich kann aus Fig. 3 entnommen werden, daß der RF 0 RAM-
Schiebeausgangsanschluß von 40-830 den einen Dateneingangsanschluß
eines weiteren Multiplexers 40-813 ansteuert, deren
Ausgang mit dem FR 3 RAM-Schiebeeingang von Chip 40-828 verbunden
ist. Der andere Dateneingangsanschluß der Multiplexer-
Schaltung 40-813 ist geerdet. Beide Multiplexer-Schaltungen
40-811 und 40-813 werden durch Signale CRSPLT 10 und
CREDL 110 gesteuert, die vom Steuerabschnitt 40-6 in Fig. 2
erzeugt werden, und enthalten den Block 40-81.
Im einzelnen wird das Signal CREDL 110 binär Null, wenn die
Inhalte der Exponent-/Schutzchips 40-830 und 40-832 nach
rechts verschoben werden. Das Signal CREDL 110 ermöglicht den
Betrieb der Multiplexer-Schaltung 40-811. Umgekehrt wird das
Signal CRED 110 auf binär Eins gesetzt, wenn die Inhalte der
Exponent-/Schutzchips 40-830 und 40-832 nach links verschoben
sind. Das Signal CREDL 110, das durch eine Inverterschaltung
40-815 invertiert wird, steuert die Operation der Multiplexer-
Schaltung 40-813.
Es ist der Zustand des Signals CRSPLT 10, das festsetzt, ob
die Chipstufen als zwei Abschnitte oder als ein einziger Abschnitt
betrieben werden. Insbesondere, wenn das Signal
CRSPLT 10 eine binäre Null darstellt, was ′′verbundenen′′ Betrieb
spezifiziert und das Signal CREDL 110 eine binäre Eins (Verschiebung
nach links) ist, wird der Ausgang ERRSDX 10 des
RF 0-Anschlusses der am signifikantesten Bitstelle des Exponentenchips
40-830 durch die Multiplexer-Schaltung 40-813 zum
RF 3-Anschluß der letzten signifikanten Bitstelle des Mantissenchips
40-823 verschoben. Wenn jedoch das Signal CREDL 110
eine binäre Null (Verschiebung nach rechts) darstellt, wird
der Ausgang ERRSDE 10 vom RF 3-Anschluß der letzten signifikanten
Bitstelle des Mantissenchips 40-823 durch die Multiplexer-
Schaltung 40-811 in den RF 0-Anschluß der am meisten
signifikanten Bitstelle des Exponentchips 40-830 geschoben.
Wenn das Signal CRSPLT 10 eine binäre Eins ist, die "aufgespaltenen"
Betrieb spezifiziert, und das Signal CREDL 110
eine binäre Eins (Verschiebung nach links) darstellt, wird
eine binäre Null (geerdet) durch die Multiplexer-Schaltung
40-813 zum RF 3-Anschluß der letzten signifikanten Bitposition
des Mantissenchips 40-828 geschoben. Wenn jedoch das Signal
CREDL 110 eine binäre Null (Verschiebung nach rechts) darstellt,
wird eine binäre Null durch die Multiplexer-Schaltung 40-811
zum RF 0-Anschluß der am meisten signifikanten Bitstelle des
Exponentenchips 40-830 geschoben.
Wie in Fig. 3 dargestellt, sind die Verschiebeverbindungen
zwischen den Chips, die die Mantissenwerte speichern, in vorgegebener
Weise wie in der Patentanmeldung "Apparatus for
performing floating point arithmetic operation using submultiple
storage" von David E Cushing mit dem Aktenzeichen
815 891, angemeldet am 15. Juli 1977 beim US-Patentamt vom
Anmelder der vorliegenden Anmeldung, angeordnet. Das heißt,
daß der Q 3-Verschiebungsausgang jedes Chips mit dem Eingang
Q 0 jedes dritten Chips verbunden ist (das heißt der Q 3-Ausgang
von Chip 1 liegt am Q 0-Eingang von Chip 4). Dies ermöglicht
das Verschieben nach rechts von acht Bitstellungen
(zwei hexadezimale Stellen) innerhalb eines einzigen Schiebezyklus′
der Operation. Die Q-Schiebeverbindungen zwischen den
Chips, die die Exponentwerte speichern, sind in gleicher
Weise angeordnet.
Die Q-Schiebe- und Q-Registerabschnitte besitzen eine 64-Bit-
Multiplexer-Schaltung und ein 64-Bit-Q-Register zur Speicherung
der Bits des Multipliers. Der 64-Bit-Multiplexer
ermöglicht eine direkte Übertragung oder eine Verschiebung
nach links oder nach rechts der Multiplizier-Bits, bevor
sie in das Q-Register geladen werden.
Der wissenschaftliche Speicherabschnitt enthält 16 64-Bits-
Speicherstellen, wobei zwei getrennte Anordnungen der 16
Stellen zugleich zum Zugriff bereitstehen, um sowohl einen
A- als auch einen B-Operanden zu schaffen. Wie hier erklärt,
werden die Speicherstellen durch die A- und B-Adreßmultiplexer-
Schaltungen von Block 40-84 adressiert. Die Stellen 1,
2 und 3 dienen als wissenschaftliche Zwischenspeicher SA 1,
SA 2 und SA 3, während die restlichen Stellen für zwischenzeitliche
Speicherungen verwendet werden. Wie erklärt, werden die
Zwischenspeicher mit Operandenwerten durch Befehle auf übliche
Weise geladen. Kurz gesagt werden die Datenbits der ersten
beiden Wörter (32 Bits) eines Vier-Wort-Operanden, der auf
die Datenleitungen des Bus 10 durch die CPU gelegt wurde, in
die Busdatenregister 40-46 und 40-47 geladen. Die beiden ersten
Wörter in diesen Registern, die einem Eingangsbus zugeführt
werden, werden durch die Schiebelogikschaltungen 40-70
des Abschnitts 40-7 ohne Verschieben übertragen und einem
Ausgangsbus zugeführt. Von dort werden die beiden ersten
Wörter durch die arithmetische und logische Einheit geführt
und in einem der Zwischenspeicherstellen des wissenschaftlichen
Speicherabschnitts gespeichert.
Die nächsten beiden Wörter des Vier-Wort-Operanden, der von
dem CPU 10 empfangen wird, werden zu den Schiebelogikschaltungen
40-70 übertragen und durch 32 Bit-Positionen durch
den Schiebeabschnitt 4-7 verschoben. Die Wörter werden danach
durch die arithmetischen und logischen Abschnitte geführt und
in der gleichen Zwischenspeicherstelle gespeichert. In dem
Modusregister 4-44 sind gewisse Bitpositionen auf vorgegebene
Zustände gesetzt, um der SIP 40 die Länge der gespeicherten
Operanden anzuzeigen (das heißt, daß die spezielle Zwischenspeicherstelle
einen 4-Wort-Operanden speichert). Die
den Stellen zugewiesenen Adressen 1₁₆ und 3₁₆ dienen als
wissenschaftliche Zwischenspeicher oder Akkumulatoren SA 1,
SA 2, SA 3, wie oben erwähnt. Die den Stellen zugewiesenen Adressen
0₁₆, 4₁₆, 5₁₆, 6₁₆ und 7₁₆ dienen als Arbeitszwischenspeicher
und beziehen sich nicht auf die vorliegende Erfindung.
Die Selektor- oder Wahlabschnitte besitzen zwei 64-Bit-
Latches, 16 Paare von 2 zu 1 Dateneingangsmultiplexern und
16 3 zu 1 Dateneingangsmultiplexern. Wie hier erklärt, ermöglichen
es die Dateneingangsmultiplexer, daß Datensignale von
dem Eingangsbus über die Eingangsanschlüsse D 0 bis D 3, die
beiden Latch-Einheiten oder das Q-Register den ALU-Abschnitten
zugeführt werden. Die beiden Latch-Einheiten halten die aus
den wissenschaftlichen Speicherabschnitten ausgelesenen
Datensignale, um sicherzustellen, daß genügend Zeit zur Durchführung
der Paralleloperationen während der Lese- und Abfrageoperationen
bereitsteht.
Die ALU-Abschnitte führen alle üblichen arithmetischen und
logischen Operationen einschließlich der Erzeugung des Übertrags,
des Overflows oder Überlaufs, des Ergebnisvorzeichens
und alle Null-Erfassungen, Ein-Komplement- und Zwei-Komplementarithmetik
durch. Wie hier erklärt, werden die Eingangs-Bitsignale
I 3 bis I 5 vom Steuerspeicher 40-60 codiert, um zu
bestimmen, welche der drei möglichen binären arithmetischen
und fünf logischen Operationen durchgeführt werden sollen.
Wie aus Fig. 3 zu ersehen ist, bilden Signale von den Übertragserzeugungsanschlüssen
und den Übertragsfortpflanzungsanschlüssen
jeder der Chipsabschnitte in Verbindung
mit dem Übertragserzeugungschip 40-82 a bis 40-82 f des Blocks
40-82 Vorbereitungsschaltungen, die bestimmen, wenn die Signale,
die an die Übertragseingangsanschlüsse (CN) angelegt
werden, durch die verschiedenen Chipabschnitte fortgeführt
werden sollen. Mit der Ausnahme, die unter Bezugnahme auf
Fig. 4 hier erklärt wurde, können die Übertragsvorbereitungschip-
Schaltungen des Blocks 40-82 herkömmlich im Aufbau sein
und beispielsweise aus standardisierten integrierten Schaltungen
wie zum Beispiel dem Typ SN74S182 der Texas Instruments
Inc. aufgebaut werden.
Wie aus Fig. 3 entnommen werden kann, sind die Übertragsvorbereitungsschaltungen
40-82 a bis 40-82 f in größeren Einzelheiten
dargestellt, wobei die Schaltung 40-82 f gemäß der
vorliegenden Erfindung angeschlossen ist. Insbesondere werden
die Steuerspeichersignale CRSPLT 10 und CRMCIN 10 über ein
AND-Gatter 40-822 und eine Inverterschaltung 40-824 einem
Eins erzeugenden Übertragseingangsanschluß der Schaltung
40-82 zugeführt. Das Signal CRSPLT 10 wird ebenso einem
Fortpflanzungsübertragseingangsanschluß der Schaltung 40-82 f
zugeführt.
Wie aus Fig. 3 zu sehen ist, liegt das Signal CRMCIN 10 auch
als Übertragseingang (CN) an jeder der Schaltungen 40-82 a
und 40-82 d. Ein weiteres Steuerspeichersignal CRECIN 10 liegt
als Übertragseingang an Schaltung 40-82 f. Die bezeichneten
arithmetischen und logischen Einheitschipausgänge und
liegen an den anderen Eingangsanschlußsätzen, wie es dargestellt
ist. Während Subtraktionen sind die Steuerspeicherübertragssignale
CRECIN 10 und CRMCIN 10 binäre Einsen, um das
korrekte Ergebnis durch eine Einser-Komplementaddition zu
bilden. Im Falle von Additionen sind diese Signale binäre
Nullen.
Es ist jedoch festzuhalten, daß beim Übertragseingang
CIND 10 zum am letzten signifikanten Mantissenchip 40-823
der am meisten signifikante Exponent durch den Zustand des
Steuerspeichersignals CRSPLT 10 gesteuert wird. Wenn das Signal
CRSPLT 10 eine binäre Eins (geteilte Operation) ist,
werden die normalen Überträge von den -Anschlüssen der Chips
40-828, 40-830, 40-832 nicht durch die Schaltung 40-82 f
durchgeführt. Statt dessen wird das Übertragssignal CIND 10
lediglich als Funktion des Zustands des Steuerspeichersignals
CRMCIN 10 erzeugt. Das heißt, das Signal MRGBRL 00 wird binär
Eins oder binär Null in Übereinstimmung mit dem Zustand des
Signals CRMCIN 10. Das andere Übertragssignal, CINE 10, bleibt
ungeändert (das heißt, in üblicher Weise erzeugt).
Die Ausgangsmultiplexer-Abschnitte besitzen einen 64-Bit-
Multiplexer. Dieser Multiplexer empfängt Daten entweder direkt
von dem wissenschaftlichen Speicherabschnitt über eines der
Latch-Glieder oder von der ALU. Der Multiplexer legt Ausgangssignale
an den Eingangsbus zur Verteilung zu den verschiedenen
Abschnitten der SIP 40. Der letzte Abschnitt 48-84,
wie aus Fig. 3 zu sehen ist, besitzt eine A-Adreßmultiplexer-
Schaltung 40-840 und eine B-Adreßmultiplexer-Schaltung 40-842.
Diese Schaltungen liefern 4-Bit-A-Wahladressen und 4-Bit-
B-Wahladressen, die an die Eingangsanschlüsse A 0 bis A 4 und
B 0 bis B 4 jedes der Chipabschnitte, wie in Fig. 3 dargestellt,
angelegt werden. Die A-Wahladresse veranlaßt, daß die 64-
Bit-Inhalte einer ausgewählten Stelle ausgelesen werden und
als A-Operandeingang zur Verwendung durch die ALU oder zur
Verteilung als Ausgangssignal verwendet werden.
Vier Sätze von Eingangssignalen, die an die A-Adreßmultiplexer-
Schaltung 40-840 angelegt werden, besitzen die Bits 0 bis 3
des Steuerspeichers 40-60, die Signale MLTSS 010 bis MLTSS 210
und die Bitsignale 2 und 3 vom Aufgabenregister 40-44. Die
Steuerbits 4 und 5 werden codiert, um zu bezeichnen, welcher
der vier Sätze von Eingängen zur Erzeugung der A-Wahl-Adreßsignale,
die den Eingängen A 0 bis A 3 zugeführt werden soll,
ausgesucht wird. Die Steuerspeicherbits 0 bis 3 werden codiert,
um direkt eine beliebige der 16 wissenschaftlichen
Speicherstellen zu adressieren.
Die Signale MLTSS 010 bis MTSS 210 entsprechen den Signalen,
die von den Q-Registerbispositionen 47, 51 und 55 den Q-
Verschiebungsausgangs-Anschlüssen der Chipabschnitte 12,
13 und 14 in Fig. 3 zugeführt werden.
Die Aufgabenregisterbits 2 und 3 werden verwendet, um eine
der drei wissenschaftlichen Zwischenspeicherstellen zu adressieren,
die die Adressen 1 bis 3 haben und verwendet werden,
um den A-Operanden oder die Ergebnisdaten zu speichern. Die
Aufgabenregisterbits 14 und 15 werden verwendet, um eine
weitere der drei wissenschaftlichen Zwischenspeicherstellen
zu adressieren, die zur Speicherung der P-Operandenquellendaten
verwendet werden.
Die B-Wahladresse sorgt dafür, daß die 64-Bit-Inhalte der
ausgewählten Speicherstelle ausgelesen werden und als B-Operand
zur Verwendung durch die ALU oder zur Verteilung als
Ausgangssignal angelegt werden. Die vier Sätze der Eingangssignale,
die an die B-Adreßmultiplexer-Schaltung 40-842 angelegt
werden, umfassen die Steuerspeicherbits 6 und 7, die
Steuerspeicherbits 60 bis 63, die Aufgabenregisterbitsignale
2 und 3 und die Aufgabenregisterbitsignale 14 und 15. Die
letzten beiden Sätze von Eingängen bewirken die gleiche
Operation, wie oben bezüglich der A-Adreßmultiplexer-Schaltung
40-840 angezeigt. Die Steuerspeicherbits 6 und 7 werden codiert,
um zu bezeichnen, welche Eingangssätze verwendet werden,
um die B-Wahl-Adreßsignale, die den Eingängen B 0 bis
B 3 zugeführt werden, erzeugt werden. Die Steuerspeicherbits
60 bis 63 sind codiert, um eine der 16 wissenschaftlichen
Speicherstellen zu adressieren.
Der Verschiebungslogikschaltungsabschnitt 40-7 wird verwendet,
um entweder den Exponenten- oder den Mantissenabschnitt einer
Fließkommazahl vor (beispielsweise Normierung) oder während
der Durchführung eines wissenschaftlichen Befehls zu verschieben.
Wie aus Fig. 3 entnommen werden kann, besitzt dieser
Abschnitt vier 16 × 16 Vielfachstellen-Verschiebungsmatrix-
Chips 40-70 a bis 40-70 d und logische Schaltungen in Block
40-72. Das Verschiebungsnetzwerk kann im Aufbau zum Zwecke
der vorliegenden Erfindung herkömmlich ausgelegt werden. Beispielsweise
können die Netzwerke die Form der Matrixverschiebungseinheit
besitzen, die in dem US-Patent Nr. 3 818 203
offenbart ist.
Die Dateneingangsleitungen I 0 bis I 15 der Verschiebungsmatrix-
Chips 40-70 a bis 40-70 d sind mit dem Eingangsbus zur Aufnahme
der Datenbits (Exponent- oder Matissenanteil) der zu verschiebenden
Zahl verbunden. Die spezielle Operationsart (das heißt
Verschiebung, nach rechts rotierende Arithmetik), die durchgeführt
werden soll, wird durch die Codierung der Steuerspeicherbits
21 bis 23 bestimmt, die den Funktionseingangsanschlüssen
S 0 - S 1 und R 0 - R 1 der Matrixverschiebungs-Chips
40-70 a bis 40-70 d angelegt sind.
Wie aus Fig. 3 zu entnehmen ist, besitzt jedes Matrixverschiebungs-
Chip einen Satz von Verschiebungseingangsanschlüssen
D 0 bis D 3, die die Verschiebung der Bits von den Dateneingangsleitungen
I 0 bis I 15 zu einem Satz von Datenausgangsleitungen
I 0 bis I 15 zu einem Satz von Datenausgangsleitungen
O 0 bis O 15 (das heißt von dem Eingangsbus zum Ausgangsbus)
steuern. Beispielsweise soll angenommen werden, daß die
Steuerspeicherbits 21 bis 23 codiert sind, um einen Wert von
110 (was eine Rechtsverschiebungsoperation spezifiziert) zu
haben und der Verschiebungswert auf einen Wert von 0001
(Verschiebung um eine Stelle) codiert ist. Unter diesen
Bedingungen wird das Bit, das am I 0-Eingangsanschluß (das
heißt das Bit 0) um eine Bitstellung verschoben und am
Ausgangsanschluß 01 angelegt. Da jedoch der Ausgangsanschluß
01 dem Ausgangsbusbit 4 entspricht, wird das Bit 0 vier Bits
oder eine hexadezimale Stelle verschoben, wie es durch den
Verschiebungscodewert von 0001 gefordert wurde.
Die Schaltungen des Blocks 40-72 erzeugen die codierten Verschiebungswerte.
Wie hier unter Bezugnahme auf die Fig. 4b
erklärt wurde, besitzen diese Schaltungen Multiplexer-Chips,
die, herkömmlich im Aufbau, Signale von anderen Quellen wie
zum Beispiel der Detektorschaltung 40-86 für die führenden Nullen
für Normierungsoperationen, die Exponentdifferenzdetektor-
Schaltung 40-88 für Angleichungsoperationen auswählen, die
spezifizieren, wieviele Stellenverschiebungen durchgeführt
werden müssen, und einer konstanten Erzeugungsschaltung.
Wie aus der Fig. 4b zu ersehen ist, empfangen die Multiplexer-
Schaltungen 40-722 a bis 40-722 d einen unterschiedlichen Satz
von Eingangssignalen von der Detektorschaltung 40-86 für die
führenden Nullen, der Exponentdifferenzdetektorschaltung
40-88, den Steuerspeicherbitpositionen 0 bis 3 und den Steuerspeicherbitpositionen
60 bis 63. Wie angegeben, wird die
Auswahl eines speziellen Satzes von Eingangssignalen durch
die Codierung der Steuerspeicherbits 8 und 12 gebildet (das
heißt, "00" wählt die Signale CRMAD 010 bis CRMAD 310, während
"11" die Signale CRNAB 610 bis CRNAB 910 auswählt). Die Verschiebungsausgangswerte
D 0 bis D 3 der Schaltungen 40-722 a
bis 40-722 d werden den D 0- bis D 3-Anschlüssen jeder der
Verschiebungsmatrizen 40-70 a bis 40 d zugeführt.
Wie aus Fig. 4b zu ersehen ist, besitzt die Detektorschaltung
40-86 für die führenden Nullen ein Paar Prioritätscodierschaltungen
40-860 und 40-862, vier Normierungs-Flip-Flops
40-864 bis 40-870, ein Null-Flip-Flop 40-872 und eine Mehrzahl
von AND-Gattern 40-874, 40-876 und 40-878. Zusätzlich
sind erfindungsgemäß ein Paar OR-Gatter 40-880 und 40-882
angeschlossen, um wahlweise Ausgangssignale anzulegen, die
durch die Exponentchips 40-830 und 450-832 in Übereinstimmung
mit dem Zustand des Steuerspeichersignals CRSPLT 10 erzeugt
werden, wie erklärt wurde.
Die in Reihe verbundenen Prioritätscodierschaltungen 40-860
und 40-862 sind so angeschlossen, daß sie die F = 0-Ausgangssignale
von jedem der Chips 40-8-2 bis 40-832 empfangen. Wie
hier erklärt wurde, bringt jedes Chip das F = 0-Ausgangssignal
auf eine binäre Eins, um das Erfassen eines Nullstellen-
Ausgangsergebnisses anzuzeigen. Die Prioritätscodierschaltungen
40-860 und 40-862 konvertieren die 16 F = 0-Ausgangssignale
in eine Verschiebungszählung, die die Anzahl der führenden
Nullstellen in der Mantisse angibt. Die Verschiebungszählung
wird in den Flip-Flops 40-864 bis 40-870 gespeichert.
Insbesondere wird jede Codierschaltung aus den ICs SN74148,
hergestellt von der Texas Instruments, Inc., aufgebaut und
konvertiert 8 Eingangssignale in einen 3-Bit-Binär-(Oktal-)
Code. Die oktale Codierung wird durch ein Verbinden des
Einschaltausgangs E 0 der Schaltung 40-860 mit dem Einschalteingang
E 1 der Schaltung 40-862 ausgeweitet. Die Ausgänge der
Codierschaltungen 40-860 und 40-862 sind mit den AND-Gattern
40-874 bis 40-878 kombiniert, um die Vier-Bit-Verschiebungszählung
mit einem Wert von 0 bis 15 zu erzeugen.
Wie aus Fig. 4b zu sehen ist, ermöglicht der Zustand des
Steuersignales CRSPLT 10 ein Testen der Mantissen-Bits 0 bis
55 oder ein Testen der Bits 0 bis 63 für Nullen. Wenn das
Steuersignal CRSPLT 10 eine binäre Eins ist, werden die beiden
letzten F = 0-Werte binäre Einsen, um anzuzeigen, daß die letzten
beiden Stellen Nullen waren. Das bedeutet, wenn die Bits
0 bis 55 alle null sind, ein Nicht-gleich-null-Signal MR64E000
zu binär null schaltet, was den Null-Flip-Flop 40-872 veranlaßt,
auf eine binäre Null zu schalten. Das Ausgangssignal
MR640F00 vom Flip-Flop 40-872 wird als Testeingang an die
Testlogikschaltungen des Blocks 40-66 gelegt.
Wenn jedoch das Steuersignal CRSPLT 10 eine binäre Null ist,
werden die F = 0-Signale von den Exponent-Chips 40-830 und
40-832 als Eingänge für die beiden letzten Stellen an die
Codierschaltung 40-862 gelegt.
Die Exponentendifferenz-Detektorschaltung 40-88 besitzt eine
ALU Funktionsgeneratorschaltung 40-888, die aus einer
74S381-Schaltung, hergestellt durch die Texas Instruments,
Inc., aufgebaut ist, sowie vier Equalisations- oder Abgleich-
Flip-Flops 40-890 bis 40-896. Die Erzeugungsschaltung 40-888
konvertiert die Signale, die an den B-Eingangsanschlüssen
anliegen und repräsentativ für eine positive oder negative
Exponentendifferenz sind, zu einem absoluten Wert.
Der erzeugte Verschiebungszahlenwert wird in den Ausgleich-
Flip-Flops 40-890 bis 40-896 gespeichert und gibt an, um wieviele
Verschiebungen nach rechts der Mantissenwert, der einen
kleinen Exponenten besitzt, verschoben werden muß, um den
Exponentenwert den beiden Operanden, die addiert oder subtrahiert
werden, anzupassen. Im einzelnen wird ein Übertragssignal
ERCOUT 10 auf binär Null während der Subtraktion der
Exponentenwerte gesetzt, wenn zwischen ihnen ein negative
Differenz besteht. Dies konditioniert die ALU Erzeugungsschaltung
40-888 zur Subtraktion der Exponentendifferenzsignale
von den an den A-Eingangsanschlüssen angelegten Nullsignalen.
Wie aus Fig. 3 zu ersehen ist, besitzt die Schaltung 40-72
eine read only memory (ROM) 40-720 Funktions/Konstanten-
Erzeugungsschaltung, die zur Erleichterung der Erklärung so
dargestellt ist, daß sie direkt mit den Verschiebungsschaltungen
verbunden ist. Signale vom Steuerspeicher 40-60 werden
an die Eingangsschaltungen der ROM-Schaltung 40-720 gelegt.
Die Schaltung 40-720, die auf herkömmliche Weise ausgelegt
ist, erzeugt eine Konstante, die repräsentativ für eine Verschiebungszählrate
ist, die spezifiziert, wieviele Stellenverschiebungen
(Mantissenstellen) durch die Verschiebungseinheit
40-70 durchgeführt werden müssen. Somit arbeitet die
ROM-Schaltung 40-720 auch zur Konvertierung der Signalsätze,
die an ihren Eingangsschaltungen angelegt sind, zu einer
Verschiebungszählrate.
Das Mikroprozessor-Chip nach den Fig. 5 und 6, das verwendet
wird, um die Mikroprozessor-Abschnitte in den Figuren 2
und 3 aufzubauen, wird nun im einzelnen besprochen. Zuerst
wird Bezug auf Fig. 5 genommen, in der zu sehen ist, daß
jedes Chip 38 Anschlüsse besitzt, zu denen die Anschlüsse
einer Versorgungsspannung (Anschluß ) und ein Takteingang
(Anschluß CP) gehören. Die Anschlüsse D 0 bis D 3 sind angeschlossen,
um Datensignale von dem Ausgangsbus zu empfangen.
Die Anschlüsse und liefern Ausgangssignale zu einer der
Stufen der Übertragsvorbereitungsschaltungen. Der Übertrag-
Ein-(CN)Anschluß empfängt ein Eingangssignal von derartigen
Vorbereitungsschaltungen, wie bereits erwähnt. Ein weiterer
Übertragsanschluß (CN + 4) wird verwendet, um einen
Übertragsausgang für den Fall einer Subtraktion zu schaffen.
Der Verschiebung-Aus/Verschiebung-Ein-(RF 0)Anschluß empfängt
ein Eingangssignal von dem Verschiebungs-Aus-/Verschiebungs-
Ein-(RF₃)Anschluß eines vorhergehenden Chips. Der Verschiebung-
Q-Aus-/Verschiebung-Q-Ein-(Q 0)Anschluß empfängt ein
Eingangssignal von dem Verschiebungs-Aus-/Verschiebungs-
Ein-(Q 3)Anschluß eine vorhergehenden Chips. Der Funktionssignal-
0-Anschluß (F = 0) sorgt für das Erfassen eines Null-
Ergebnisses. Der Überlauf- oder Overflow-(OVF)Anschluß und
der Ausgangsanschluß für das signifikanteste Bit (F 0) liefern
zusätzliche Anzeigen, die nicht im Zusammenhang mit der vorliegenden
Erfindung stehen.
Die Anschlüsse Y 0 bis Y 3 sind so angeschlossen, daß sie Ausgangssignale
für die Verschiebungsmatrix-Chips bilden, während
die Anschlüsse I 0 bis I 8 so angeschlossen sind, daß sie
Steuersignale empfangen, die von den Steuerspeicher-
Mikrobefehlsfeldern MS, MF und MD oder ES, EF und ED in Fig. 7
für die Mantissenstellen oder Exponentstellen erhalten. Die
Anschlüsse A 0 bis A 3 und B 0 bis B 3 sind, wie oben erwähnt,
so angeschlossen, daß sie die A-Wahl- und B-Wahl-Adreßsignale
von den Schaltungen in Block 40-84 empfangen.
Es wird jetzt Bezug auf Fig. 6 genommen, aus der zu entnehmen
ist, daß jedes Chip, das durch das Chip 2 repräsentiert wird,
ein 16-Wort-durch-4-Bit-RAM 40-918 und eine schnelle ALU
40-902 besitzt. Unter der Steuerung der 4-Bit-Adresse,
die den Anschlüssen A 0 bis A 3 angelegt wird, werden die Inhalte
jeder der 16 Wortstellen zu einem Satz von A Anschlüssen
ausgelesen. Gleichermaßen werden unter der Steuerung der
4-Bit-Adresse, die den Anschlüssen B 0 bis B 3 angelegt wird,
die Inhalte jeder der gleichen 16 Wortstellen zu einem Satz
von B Anschlüssen ausgelesen.
Wenn sie durch ein Signal angesteuert werden, das einem RAMEN-
Eingang durch die ALU-Bestimmungsdecodierschaltungen des
Blocks 40-926 zugeführt wird, werden neue Datensignale, die
über eine Drei-Eingangs-Multiplexerschaltung 40-920 zugeführt
werden, in die Wortstellen geschrieben, die durch die B-Wahl-
Adreßsignale definiert werden. Wie aus Fig. 6 zu sehen ist,
sind die Eingänge der Dreifach-Eingangs-Multiplexerschaltung
40-920 so angeschlossen, daß sie es ermöglichen, daß die Eingangssignale
von den ALU 40-920-Ausgangsanschlüssen F 0 bis
F 4 nach rechts um eine Bitstelle, nach links um eine Bitstelle
oder in keine Richtung unter der Steuerung der Schaltungen
des Blocks 40-926 verschoben werden, bevor sie in die
bezeichnete Speicherstelle geschrieben werden.
Die A-Ausgangsanschlüsse und B-Ausgangsanschlüsse sind mit
einem Satz von A-Latch-Gliedern bzw. einem Satz von B-Latch-
Gliedern verbunden. Diese Latch-Glieder speichern die Signale,
die ihnen übertragen worden sind, während des Intervalls, in
dem das Signal, das an dem Takteingang CP liegt, eine binäre
Null ist. Dies schließt die Möglichkeit eines Verlorengehens
aus, das auftreten kann während des Intervalls, in dem neue
Daten in dem RAM 40-918 geschrieben werden. Wie erwähnt, ist
die ALU, die durch die Signale konditioniert wird, die an
die Anschlüsse I 3 bis I 5, decodiert durch die Schaltungen
des Blocks 40-906, angelegt werden, in der Lage, irgendeine
der drei binären arithmetischen oder fünf logischen Operationen
durchzuführen, wenn die zwei 4-Bit-Eingangssignale an die
R-Operanden oder S-Operanden Eingangsanschlüsse angelegt
werden.
Die R-Operanden-Eingangsanschlüsse empfangen Signale direkt
von den Anschlüssen D 0 bis D 3 oder von den A-Latch-Gliedern
40-916 über eine Zwei-Eingangs-Multiplexerschaltung 40-908,
wie es in Fig. 5 dargestellt ist.
Die S-Operanden-Eingangsanschlüsse empfangen Signale von den
A-Latch-Gliedern 40-916, den B-Latch-Gliedern 40-914 oder
von dem Q-Register 40-922 über eine Drei-Eingangs-Multiplexerschaltung
40-910. Die Multiplexer 40-908 und 40-910 stehen
unter der Steuerung der Signale, die an den Anschlüssen I 0
bis I 2 anliegen, die durch die Operandendecodierungs-
Schaltungen des Blocks 40-912 decodiert sind. Die Anschlüsse
D 0 bis D 3 werden verwendet, um Datensignale in die Arbeitsregister
des Chips zu laden und die Inhalte der RAM-Speicherstellen
zu modifizieren. Das Q-Register 40-922 ist ein
4-Bit-Register, das, wie bereits erwähnt, verwendet wird, um
die Multipliziereinheit während Multiplikations-Operationen
zu speichern.
Die ALU Ausgangssignale, die an den Anschlüssen F 0 bis F 3 anstehen,
werden dem einen Eingang eines Zwei-Eingang-Ausgang-
Multiplexers zu einem Eingang des Drei-Eingangs-Multiplexers
40-920 und zu einem Eingang eines Drei-Eingangs-Multiplexers
40-924, der dem Q-Register 40-922 zugeordnet ist, angelegt.
Die tatsächliche Bestimmung (das heißt Datenausgang am Anschluß
Y 0 bis Y 3, Eingang zum RAM 40-918 oder Q-Register
40-922) wird durch die Signale ausgewählt, die an den Anschlüssen
I 6 bis I 8 anliegen, die durch die Schaltungen des
Blocks 40-926 decodiert sind.
Wie aus Fig. 6 ersehen werden kann, wird die Multiplizierschaltung
40-904 verwendet, um Signale auszuwählen, die aus
dem A-Anschluß des RAM 40-918 ausgelesen sind, oder Signale
von den Ausgangsanschlüssen F 0 bis K 4 der ALU 40-902. Die
Auswahl geschieht unter der Steuerung der Signale, die an
die Anschlüsse I 6 bis I 8 angelegt sind, wie oben erwähnt.
Die Multiplexer-Schaltung 49-920 liefert Eingänge von drei
Quellen einschließlich der ALU 40-902.
Dadurch wird es den ALU-Ausgängen ermöglicht, unverschoben,
nach rechts um eine Stelle verschoben (das heißt dividiert
durch 2) oder nach links um eine Stelle verschoben (das
heißt ×2) gespeichert zu werden. Es dürfte einleuchten, daß
die Verschiebungsschaltungen Anschlüsse RF 0 bis RF 3 besitzen,
die die Pufferansteuerungsschaltungen 40-934 bzw. 40-946 verbinden.
Bei Verschiebung nach links wird die Ansteuerungsschaltung
40-934 versorgt und der RF 0-Multiplexer-Eingang
angesteuert. Bei einer Verschiebung nach rechts wird die
Ansteuerungsschaltung 40-936 versorgt und der RF 3-Multiplexer-
Eingang angesteuert. Falls keine Verschiebung stattfindet,
werden weder die Ansteuerungsschaltung 40-934 noch die
Schaltung 40-936 versorgt und die oben erwähnten Multiplexer-
Eingänge nicht ausgewählt. Die Auswahl der Operationen findet
unter der Steuerung der an den Anschlüssen I 6 bis I 8 angelegten
Signale statt.
Gleichermaßen wird das Q-Register 40-922 ebenfalls mit der
Drei-Eingangs-Multiplizierschaltung 40-924 verbunden, die
ebenfalls Schiebeschaltungen besitzt. Dies ermöglicht es, daß
die ALU-Ausgangssignale unverschoben, nach rechts um eine
Stelle verschoben (das heißt ×2) oder nach links um eine
Stelle verschoben (das heißt dividiert durch 2) gespeichert
werden. Die Verschiebeschaltungen besitzen Anschlüsse Q 0 und
Q 3, die mit den Pufferansteuerungsschaltungen 40-932, bzw.
40-930 verbunden sind. Bei Verschiebung nach links wird die
Pufferschaltung 40-932 angesteuert und der Q 0-Multiplexer-
Eingang versorgt. Bei Verschiebung nach rechts wird die
Pufferschaltung 40-930 angesteuert und der Q 3-Multiplexer-
Eingang versorgt. Findet keine Verschiebung statt, werden
weder die Pufferschaltung 40-932 noch die Schaltung 40-930
angesteuert und die oben erwähnten Multiplexer-Eingänge
werden nicht gewählt. Wiederum werden die Verschiebungsoperationen
unter der Steuerung der Signale gewählt, die
an den Anschlüssen I 6 bis I 8 liegen. Datensignale werden in
das Q-Register 40-922 unter der Steuerung der Signale getaktet,
die an dem Takteingangsanschluß CP liegen.
Fig. 6 stellt auch die Art und Weise dar, in der die Ausgangsanschlüsse
Y 0 bis Y 3 des zweiten Chips mit einem anderen der
Eingangsanschlüsse jeder der Vielfachpositions-Verschiebungsschaltungschips
40-70 a bis 40-70 e über den Eingangsbus verbunden
sind. Zusätzlich zeigt Fig. 6 die Verschiebungsschaltungsanschlüsse
von dem Ausgangsbus zu den Dateneingangsanschlüssen
D 0 bis D 3 des Chip 2.
Die Taktschaltungen des Blocks 40-9 erzeugen Taktsignale, die
den verschiedenen Abschnitten der Fig. 1 zugeführt werden.
Diese Schaltungen können im Rahmen der vorliegenden Erfindung
als herkömmlich im Aufbau angesehen werden. Die Schaltungen
40-9 empfangen Eingangssignale von unterschiedlichen Registern
und vom Steuerregister 40-9. Die Signale der Register
werden mit den Signalen vom Register 40-9 kombiniert, um die
Rate und den Betrieb der Taktschaltungen 40-9 zu steuern.
Beispielsweise verhindert die Abwesenheit der Signale von
unterschiedlichen Registern den Betrieb der Taktschaltungen
40-9.
Unter Bezugnahme auf die Fig. 1 bis 7 und das Flußdiagramm
in Fig. 8 wird die Wirkungsweise der vorliegenden Erfindung
nunmehr beschrieben. Vor dem Beispiel ist es wünschenswert,
kurz zu diskutieren die Art und Weise, in der Fließkomma-
Additionen- und -Subtraktionen bewirkt werden. Alle Zahlen in
hexadezimaler Fließkommanotation besitzen eine Mantisse, die
niedriger als eins ist und einen Exponenten, dessen Teil der
Zahl die Größe angibt. Der Bereich der Exponenten geht von
+63₁₀ bis -64₁₀ in dem vorliegenden System.
Für Zahlen größer als eins wird das hexadezimale Komma nach
links (das heißt dividiert durch 16) geschoben, bis die am
weitesten links stehende Stelle 1, die nicht null ist, rechts
des hexadezimalen Kommas liegt. Für Zahlen, die bereits Brüche
sind, wird das hexadezimale Komma nach rechts verschoben
(das heißt multipliziert mit 16), bis die erste Stelle, die
nicht null ist, angetroffen wird. In einem solchen Fall sind
alle Zahlen Brüche, die größer oder gleich 1/2 sind, jedoch
kleiner als 1, sie werden "normiert" genannt. Für zusätzliches
Quellenmaterial, das sich auf Normierungen bezieht, wird Bezug
genommen auf das Kapital 15 des Textes "The Logic of Computer
Arithmetic" von Ivan Flores, veröffentlicht von Prentice-Hall,
Inc., 1963.
Im vorliegenden Beispiel soll angenommen werden, daß die Operation
eine Subtraktion ist mit einem Operandenwert, der in
einem wissenschaftlichen Zwischenspeicher 1 (SA 1) gespeichert
ist und einem Operandenwert, der in einer Speicherstelle gespeichert
ist, die durch die effektive Adresse eines zu verarbeitenden
Befehls spezifiziert wird. Der Speicherapparat
soll kurz (das heißt eine Länge von zwei Wörtern) sein und
nicht normiert, während der SA 1-Operand lang (das heißt eine
Länge von vier Wörtern) und normiert sein soll.
Es wird jetzt Bezug genommen auf das Flußdiagramm in Fig. 8.
Diese Figur zeigt die durchgeführten Operationen während
verschiedener Operationszyklen. Die verschiedenen Abkürzungen,
die verwendet werden, und ihre Bedeutung sind folgende:
1. S= Vorzeichen (engl. sign);
2. M= Matisse;
3. X= Exponent;
4. T= zwischenzeitliches Register mit Adresse 0;
5. BI= Eingangsbus;
6. BO= Ausgangsbus;
7. (A)= Inhalt der durch die Adresse in Klammern
(das heißt, A) spezifizierte Speicherstelle.
Im Flußdiagramm von Fig. 8 kann erkannt werden, daß der
Mikroprozessor-Abschnitt 40-8 der SIP 40 unter der Mikroprogrammsteuerung
die Operationen während eines Operationszyklus′
durchführt, der als $ SAD-MEM bezeichnet wird, wobei
ein Mikrobefehlswort in der Stelle 3C 4 gespeichert ist und
zum Steuerregister 40-62 ausgelesen wird. Dies tritt auf,
nachdem die SIP eine Operandenadresse von der CPU 20, die
in das Register 40-42 geladen wurde, empfangen hat. Das heißt,
die Taktschaltungen 40-9 sind abgeschaltet und verhindern die
Auslese des nächsten Mikrobefehlswortes von der Stelle 3C 4,
bis ein Signal vom Register 40-42 empfangen wird, das anzeigt,
daß das Register über den Bus 10 geladen wurde. Zu diesem
Zeitpunkt werden die Schaltungen 40-9 zur Erzeugung weiterer
Taktsignale angesteuert, die die Auslese des Mikrobefehlswortes
von der Speicherstelle 3C 4 veranlassen.
Das ausgelesene Mikrobefehlswort wird codiert, damit das DA-
Feld die Adresse #0 spezifiziert, das B-Adreßwahlfeld (BS)
direkt spezifiziert, das Mantissenquellenfeld (MS) das Q-Register
spezifiziert, die Mantissenfunktion (MF) das AND- und
das Mantissenbestimmungsfeld (MD) den RAM-Speicher spezifiziert.
Während dieses Zyklus′ wird der erste 56-Bit-Mantissenabschnitt
des Zwischenspeicherplatzes MT durch das DA-Feld
adressiert, das über die B-Adreß-Multiplexerschaltungen 40-482
angelegt wird. Die Inhalte der Q-Register laufen über AND-
Glieder, was als Ergebnis eine Null erzeugt. Dieses Null-
Ergebnis wird in die ersten 56 Bit-Stellen des Speicherplatzes
MT geschrieben, der durch die Multiplexer-Schaltungen
40-482 adressiert wird. Diese Operation führt dazu, daß
alle Nullen in die Mantissenabschnitte der Zwischenspeicherstelle
MT gesetzt werden, die durch die Codierung des DA-
Feldes ausgewählt werden. Das nächste Adreß-NA-Feld des
Mikrobefehls konditioniert die Schaltungen 40-64, um die
Stelle 041 zu adressieren, wie es aus Fig. 8 entnommen
werden kann.
Während des nächsten Operationszyklus′ wird das Mikrobefehlswort,
das in Speicherstelle 041 gespeichert ist, in das
Steuerrgister 40-62 ausgelesen. Das Busfunktionsfeld (BF)
dieses Wortes wird codiert, damit die Bussteuerschaltungen
des Blockes 40-2 eine Speicherleseabfrage auf dem Bus 10
erzeugen, die spezifiziert, der Hauptspeicher 30 ausgelesen
wird und die beiden Operandenwörter, die bei der Adresse
gespeichert sind, vorher in das Register 40-42 zu übertragen
zur SIP 40 geladen werden. Im Rahmen der vorliegenden Erfindung
kann ausgenommen werden, daß diese Operation in herkömmlicher Weise
durchgeführt wird.
Wie aus Fig. 8 zu sehen ist, führt das nächste Adressenfeld
des Mikrobefehlswortes dazu, daß der Steuerspeicher 40-60
zur Speicherstelle 032 weiterläuft. Bevor jedoch diese Sequenz
auftritt, stellen die Taktschaltungen 40-9 ihren
Betrieb ein, bis das erste Operandenwort vom Hauptspeicher 30
in das BD 1-Register 40-46 geladen ist. Dann werden die Inhalte
des Mikrobefehlswortes, das in Speicherstelle 032 gespeichert
ist, zum Register 40-62 zur Decodierung ausgelesen.
Das Mikrobefehlswort ist auf folgende Weise codiert: Das
DA-Feld spezifiziert Adresse 0; die AS-, BS- und MC-Felder
spezifizieren jeweils das DA-Feld als Adreßquelle; die
Exponentquellen- und Mantissenquellenfelder spezifizieren
beide die D-Eingänge; die Exponentfunktions- und Mantissenfunktionsfelder
spezifizieren beide OR; das Exponentbestimmungsfeld
(ED) spezifiziert eine RAM-Rechtsverschiebung
und das Matrixsteuerfeld (SC) spezifiziert eine Rechtsdrehung.
Wie in Fig. 8 angezeigt, ist das Teilungsbitfeld des
Mikrobefehlswortes codiert, um eine "Teilungs"-Operation in
Übereinstimmung mit der vorliegenden Erfindung zu spezifizieren
(CRSPLT 10 ist eine binäre Eins). Bis hierher spielte es
keine Rolle, welchen Wert dieses Feld beinhaltete, da die
Operationstypen, die unter der Mikroprogrammsteuerung durchgeführt
wurden, nicht berührt wurden. In solchen Fällen ist
das Teilungssteuerfeld üblicherweise eine binäre Eins.
Jedoch haben in diesem Zyklus die Exponent- und Vorzeichenstellen,
die vom Hauptspeicher 30 empfangen werden, die Form
eines 7-Bit-Exponenten und ein Vorzeichen-Bit (das heißt
"XXXX XXXS") und werden in eine Form konvertiert, die einen
8-Bit-Exponenten besitzt und ein 4-Bit-Vorzeichen, die verwendet
wird für arithmetische Operationen durch die SIP 40
(das heißt, OXXX XXXX S 000). Dies bedeutet, daß die beiden
Gruppen von Stufen unabhängig voneinander betrieben werden,
um ein Verschieben des Vorzeichenbits (S), das nach rechts
um eine Bitstellung verschoben werden soll, zu ermöglichen,
und es in die am meisten signifikante Bitstellung des Vorzeichenchips
40-800 zu placieren.
Insbesondere wird die DA-Feldbezeichnungsadresse 0 ausgewählt
als Adresse, die über die A-Adreßmultiplexer- und B-Adreßmultiplexer-
Schaltungen 40-480 und 40-482 an die A- und B-
Adreßeingänge der Stufen 40-800 bis 40-832 angelegt werden
soll. Dies ermöglicht die Auslese der Inhalte der Speicherstelle
MT zum Eingangsbus. Wie aus Fig. 8 zu entnehmen ist,
werden die ersten Wortinhalte des BD 1-Registers 40-46 dem
Eingangsbus zugeführt. Zu diesem Zeitpunkt werden die Matrixschiebeschaltungen
40-70 a bis 40-70 d konditioniert, um eine
Rechtsdreh-Operation der Nullstellen durchzuführen (das
heißt ein Vorbeilaufenlassen der Daten ohne Verschieben).
Die Exponent- und Vorzeichenchips werden konditioniert, um
eine 1-Bit-Verschiebung durchzuführen, bei der das am wenigsten
signifikante Bit vom Anschluß RF 3 des Chips 40-832 in
den RF 0-Anschluß des Vorzeichenchips 40-800 verschoben wird.
Das Teilungssteuerungsbitsignal CRSPLT 10 konditioniert die
Multiplexer-Schaltung 40-811 zur Auswahl einer binären Null
als Wert, der in die am meisten signifikante Bitstelle des
Exponentenchips 40-830 geschoben werden soll, während die
Multiplexer-Schaltung 40-811 für eine Verschiebung nach rechts
durch das Signal CRED 110 (das heißt gesetzt auf eine binäre
Null) angesteuert wird. Zu diesem Zeitpunkt sind die Exponentenchips
40-830 und 40-832 durch das ED-Feld konditioniert,
um eine 1-Bit-RAM-Rechtsverschiebung durchzuführen, während
die Mantissenchips 40-802 bis 40-828 nicht verschoben werden
(das heißt die Mantissenquellen-, Mantissenfunktions- und
Mantissenbestimmungsfelder spezifizieren keine Rechtsverschiebung).
Das Ergebnis der obigen Operation ist, daß die Exponentenstellen
(Bits 0 bis 7) die vom Hauptspeicher 30 empfangen wurden und
in dem BD 1-Register 40-46 gespeichert wurden, in die Exponentchips
40-830 und 40-832 in dem korrekten Format, wie oben diskutiert
wurde, geladen werden.
Wie aus Fig. 8 zu entnehmen ist, werden in dem gleichen Zyklus
gewisse Bits innerhalb des Mode-Registers 40-48 durch das
Testbedingungsfeld (TC) ausgewählt, um einzurichten, ob die
Länge des Operanden vom Speicher lang oder kurz ist. Da in
diesem Beispiel die Länge kurz ist, führen die nächsten
Adreßschaltungen 40-64 dazu, daß das Mikrobefehlswort, das
in Speicherstelle 0C 0 gespeichert ist, in das Steuerregister
40-62 ausgelesen wird.
Das Mikrobefehlswort ist auf folgende Weise codiert: Das
AS-Feld spezifiziert Register 40-44; das BS-Feld spezifiziert
das DA-Feld, das die Nullen speichert, die Exponentenquelle
(ES) spezifiziert die A-B-Latch-Glieder, die Exponentenfunktion
(EF) spezifiziert ein Subtraktionsergebnis, die Exponentenbestimmung
(ED) spezifiziert das Q-Register, die Mantissenquelle
(MS) spezifiziert die A-Latch-Glieder, die Mantissenfunktion
(MF) spezifiziert ADD, das MCIN-Feld spezifiziert
keinen Mantissenübertrag, und das ECIN-Feld spezifiziert einen
Exponentenübertrag. Zusätzlich wird das Teilungssteuerbit auf
binär Eins gesetzt, da der Mantissenabschnitt zu überprüfen
ist.
Während dieses Zyklus werden die Exponentwerte der beiden
Operanden subtrahiert. Das heißt der Exponentabteil des
Operanden wird im Zwischenspeicher SA 1 gespeichert, wie durch
den Befehl spezifiziert, welcher als gespeichert in dem
Aufgabenregister 40-44 angenommen werden kann, und der Exponentenabschnitt
des Operanden, der vom Hauptspeicher 30
empfangen wurde, wird im Zwischenspeicher 0 gespeichert.
Der Grund ist, um die Größe der Angleichsverschiebung zu
bestimmen, falls eine erforderlich ist.
Die A-Adreßmultiplexerschaltungen 40-480 werden durch das
AS-Feld konditioniert, um den Exponentchipstufen die Adressen
innerhalb des ursprünglichen Befehls zuzuführen, während die
B-Adreßmultiplexerschaltungen 40-482 konditioniert werden, um
die Null-Adresse vom DA-Feld abzulegen. Die Exponentchipstufen
werden durch das EF-Feld konditioniert, um eine Subtraktion
mit einem Übertrag durchzuführen, während zugleich
die Mantissenchipstufen konditioniert werden, um eine Addition
ohne Übertrag zu bewirken.
Erfindungsgemäß arbeitet das Teilungssteuerbis so, daß es
die Übertragssignale, die durch die Mantissen- und Exponentchipstufen
erzeugt werden, getrennt hält. Das heißt, es verhindert,
daß das Ergebnis, das durch die Mantissenchipstufen
erzeug wird, durch irgendwelche Überträge, die durch die
Exponentchipstufen erzeugt werden, beeinträchtigt wird, und
umgekehrt.
Das kann aus der Fig. 4b entnommen werden. Das heißt, das
Exponenten-Carry-in- oder Übertragssignal CRECIN 10 ist eine
binäre Eins, das Mantissen-Carry-in-Signal CRMCIN 10 ist
eine binäre Null, während das Teilungsbitsignal CRSPLT 10
eine binäre Eins ist. Das Signal CRSPLT 10 verhindert irgendwelche
Übertragsfortpflanzung von den vorherigen Stufen
(das heißt der Anschluß P ist eine binäre Eins, was anzeigt,
daß kein Übertrag fortgeführt wurde). Da das Signal CRMCIN 10
eine binäre Null ist, wird kein Übertrag erzeugt, und das
Carry-in-Signal CIND 10 wird auf binär null gesetzt. Die restlichen
Überträge werden üblicherweise erzeugt (das heißt
CINE 10 während einer Subtraktion ist eine binäre Null).
Wie aus Fig. 8 entnommen werden kann, wird während dieses
Zyklus die Exponentendifferenz, die dem Eingangsbus (das
heißt BIMS 60-BIMS 63) zugeführt wird, in einen absoluten Wert
durch die Funktionsgeneratorschaltung 40-888 konvertiert.
Dieser Wert (XF) wird in die Flip-Flops 40-890 bis 40-896
in Fig. 4b geladen und dem Eingangsbus zugeführt.
Der Vorzeichenstelle des in dem SA 1 gespeicherten Operanden
wird das Komplement der Vorzeichenstelle des in der Zwischenspeicherstelle
0 (das heißt ST) gespeicherten Operanden hinzugefügt.
Das Ergebnis wird in dem Q-Register der Vorzeichenchipstufe
40-800 gespeichert. Da angenommen wird, daß die
Vorzeichen beide gleich sind (beide positiv), ist der
Q-Bit-Null-Registerwert Eins.
Zusätzlich wird die am meisten signifikante Stelle des Mantissenabschnittes
des Operanden, der von dem Hauptspeicher empfangen
wird und über die B-Latch-Glieder dem Chip ALU zugeführt
wird, während dieses Zyklus auf den Wert null getestet.
Falls er null ist, enthält der Mantissenabschnitt des Speicheroperanden
eine oder mehrere führende Nullen und muß normiert
werden. Da dieser Operand nicht normiert ist, ist der F = 0-
Ausgang des Chips 40-802, der zu der Testlogikschaltung
40-66 geführt wird, eine binäre Eins. Das Testzustandsfeld
(TC) und das Zweigmaskenfeld (BM) des Mikrobefehlswortes
wird codiert, um das F = 0-Ausgangssignal zur Verzweigung zur
nächsten Speicherstelle auszuwählen.
Wie aus Fig. 8 entnommen werden kann, führen die nächsten
Adressenschaltungen 40-64 dazu, daß der Steuerspeicher 40-60
das Mikrobefehlswort von der Speicherstelle 033 ausliest.
Dieses Mikrobefehlswort ist wie folgt codiert: AS-, BS- und
MC-Felder, von denen jedes so codiert ist, daß es das
DA-Feld als eine Adreßquelle auswählt, die Mantissenquelle
(MS) spezifiziert die D-Eingänge, die Mantissenfunktion (MF)
spezifiziert OR, das Mantissenbestimmungsfeld (MD) spezifiziert
RAM, und das Matrixsteuerungsfeld (SC) spezifiziert
eine Rechtsdrehung. Zusätzlich wird das Teilungsbitfeld
codiert, um zu spezifizieren, daß die Gruppen von Stufen
geteilt sind.
Wie aus Fig. 8 ersehen werden kann, wird, bevor das Mikrobefehlswort
decodiert werden kann, der Betrieb der Taktschaltungen
40-9 eingestellt, bis das zweite Operandenwort vom
Hauptspeicher 30 erhalten wurde. Als Ergebnis obiger Operationen
enthält die Speicherstelle MT die ersten acht signifikantesten
Bits der Mantisse, wobei die vorderste Stelle den
Wert null besitzt.
Die 32 Null-Bits, die vorher an der Speicherstelle 0 erzeugt
wurden (das heißt durch obige Operation ungeändert), werden
zusammen mit dem Inhalt der BD 1-Register 40-46, die noch das
erste Wort des Speicheroperanden enthalten, mit dem BD 2-Register
40-47, das das zweite enthält, dem Eingangsbus, wie in
Fig. 8 dargestellt, zugeführt. Diese Bits werden durch die
Schiebeschaltungen 40-70 a bis 40-70d zum Ausgangsbus ohne
Abänderung geführt (das heißt, gedreht durch 0 MC = 0). Von
dort aus wird der gesamte 24-Bit-Mantissenabschnitt des
Speicheroperanden und die 32 Null-Bits in die Speicherstelle
(MT), die durch den Null-Adressenwert, der in dem DA-Feld
enthalten ist, spezifiziert werden, eingeschrieben.
Während dieses Zyklus arbeitet die Detektorschaltung 40-82
für die vorderen Nullen in Fig. 4b, um den 56-Bit- oder
14-Stellen-Mantissenwert zu überprüfen, um zu bestimmen, ob
alle Nullen enthalten. Erfindungsgemäß setzt das Teilungssteuerbit
die beiden letzten Stellen (Exponentenstellen) auf
Null. Dies ermöglicht den Test von nur 14 Stellen der Mantisse.
Das Ergebnis eines derartigen Tests wird in dem Null-
Flip-Flop 40-872 zum nachfolgenden Testen gespeichert. Da
angenommen wurde, daß die Mantisse nicht nur Nullen enthält,
wird das Flip-Flop 40-872 auf eine binäre Eins gesetzt.
Wie aus Fig. 8 entnommen werden kann, werden die Ausgangssignale,
die durch die Codierschaltungen 40-860 und 40-862
erzeugt werden und die die Anzahl der führenden Nullen, die
in der 14-Stellen-Mantisse enthalten sind, anzeigen, in die
Normierungs-Flip-Flops 40-864 bis 40-870 geladen. Die
Schaltungen 40-64 werden durch das nächste Adressenfeld des
Mikrobefehlswortes konditioniert, damit der Steuerspeicher
40-60 die Speicherstelle 006 adressiert.
Während dieses Zyklus wird das Mikrobefehlswort, das zum
Steuerregister 40-62 ausgelesen wurde, wie folgt codiert:
Die AS- und BS-Felder spezifizieren beide das DA-Feld als
eine Adreßquelle, das MC-Feld spezifiziert die NORM-
Flip-Flops als Quelle, das ES-Feld spezifiziert die D-Eingänge-
A-Latch-Glieder, das EF-Feld spezifiziert das Subtraktionsergebnis, das ECIN-Feld spezifiziert einen Übertrag, das
ED-Feld den RAM-Y, das MS-Feld die D-Eingänge, das MF-Feld
spezifiziert OR, das MD-Feld spezifiziert den RAM und das
SC-Feld eine Verschiebung nach links.
Die 56-Bit-Mantisse, die im Speicher 0 gespeichert ist, wie
durch das Null-codierte DA-Feld spezifiziert, wird zum Eingabebus
ausgelesen. Die letzten beiden signifikanten Stellen
(Exponent) werden auf Null durch das allgemeine Steuerfeld
(GP) des Mikrobefehlswortes gesetzt. Das heißt, die
Tristate- oder Dreifach-Eingangsanschlüsse der beiden Exponentchips
werden auf binäre Eins gesetzt, während eine
Gesamt-Null-Konstante, die durch ein ROM-Chip, das ähnlich der
Schaltung 40-720 ist, erzeugt wird und dem Eingangsbus zugeführt
wird. Als nächstes wird die Verschiebungszählrate, die
in den NORM-Flip-Flops 40-864 bis 40-870 gespeichert ist,
D 0- bis D 3-Eingängen der Schiebeschaltungen 40-70 a bis 40-70 d
über die Multiplexer-Schaltungen 40-722 a bis 40-722 d zugeführt.
Die 56-Bit-Mantisse wird nach links um die Anzahl der Stellen
verschoben, die durch die Verschiebungszählung angegeben
wird, und das Ergebnis, das zum Ausgangsbus geführt ist, wird
zurück in die Speicherstelle 0 (MT) geschrieben. Auch während
dieses Zyklus′ wird die Zählrate, die in den NORM-Flip-Flops
40-864 bis 40-870 gespeichert ist, vom Exponentenwert, der
in der Speicherstelle 0 gespeichert ist, subtrahiert.
Es ist festzuhalten, daß, während der Zustand des Teilungssteuerbits
binär Eins ist, dieses jedoch für diesen Zyklus
nicht wesentlich ist. Der Grund dafür ist, daß ein Übertrag
von dem Exponentenchip in die Mantissenchips das Ergebnis
nicht beeinträchtigt, da die Chips so eingestellt sind, daß
sie zu diesem Zeitpunkt eine OR-Operation durchführen. Während
des letzten Zyklusteils konditionieren das Testbedingungsfeld
(TC) und das Zweigmaskenfeld (BM) des Mikrobefehlswortes
die Schaltungen 40-66, um den Zustand des Null-Flip-
Flops 40-872 zu testen. Da die Mantissenbits nicht alle Null
waren, liest der Steuerspeicher 40-60 das in der Speicheradresse
0C 9 gespeicherte Mikrobefehlswort aus.
Das in der Speicherstelle 0C 9 gespeicherte Mikrowort ist
wie folgt codiert: Das AS-Feld spezifiziert das Register 40-44
als Adreßquelle (SA 1), das BS-Feld das DA-Feld, das nur
Nullen enthält, das ES-Feld die A- und B-Latch-Glieder, das
EF-Feld das Subtraktionsergebnis, das ECIN-Feld einen Übertrag,
das ED-Feld das Q-Register, das MS-Feld die A-Latch-
Glieder, das MF-Feld eine Additon, und das MCIN-Feld keinen
Übertrag. Während dieses Zyklus′ wird der Exponentteil des
Speicheroperanden, der in der Speicherstelle 0 gespeichert
ist und durch die DA-Feldadresse ausgewählt wird, von dem
Exponententeil des Operanden, der in SA 1 gespeichert ist,
und durch die Signale im Aufgabenregister 40-44 ausgewählt
wird, subtrahiert. Das Ergebnis dieser Subtraktion wird in
dem Q-Register der Exponentchipstufen 40-830 und 40-832
gespeichert. Das Teilungssteuerbit ist für das Ausmaß des
Trennens der Überträge wichtig und deshalb binär Eins (das
heißt es verhindert Übertrag in das Vorzeichenchip).
Wie aus Fig. 8 zu ersehen, werden Signale, die repräsentativ
für die Exponentendifferenz sind, in einen absoluten Wert
durch die Funktionsgeneratorschaltung 40-888 konvertiert
und in den EQUIZ-Flip-Flops 40-890 bis 40-896 gespeichert.
Der Vorzeichenstellenwert des Operanden, der in SA 1 gespeichert
ist, wird ebenfalls ohne einen Übertrag zu dem Komplement
des Vorzeichenwertes des Speicheroperanden, der in der
Speicherstelle 0 gespeichert ist, hinzugefügt, um zu bestimmen,
ob die Vorzeichen gleich sind. Da sie es sind, ist das
Ergebnis, das in dem Q-Registerbit 0 der Vorzeichenchipstufe
40-800 gespeichert wird, eine Eins.
Während des letzten Zyklusteils bilden die Testlogikschaltungen
40-66 unter der Steuerung der TC- und BM-Felder das
nächste Mikrobefehlswort, das von dem Steuerspeicher 40-60
auszulesen ist. Da die durchgeführte Operation eine Subtraktion
ist und die Vorzeichen beider Operanden gleich sind,
tritt der Steuerspeicher 40-60 als nächstes ist eine Subtraktionsroutine
ein. Da jedoch die Exponentendifferenz nicht
Null ist, veranlaßt die nächste Adressenschaltung 40-64 den
Steuerspeicher 40-60, das Mikrobefehlswort, das in der Speicherstelle
102 gespeichert ist, auszulesen.
Das Mikrobefehlswort ist wie folgt codiert: Die AS- und BS-
Felder spezifizieren beide die Aufgabenregister 40-44 als
Adreßquelle, das MC-Feld spezifiziert die EQUIZ-Flip-Flops
als Quelle, das ES-Feld die D-Eingänge, das EF-Feld spezifiziert
OR, das ED-Feld spezifiziert RAM-Y, das MS-Feld die
D-Eingänge, das MF-Feld OR, das MD-Feld RAM und das SC-Feld
eine Verschiebung nach rechts.
Während dieses Zyklus′ wird der Mantissenabschnitt des
Operanden, der in SA 1 gespeichert ist und durch die Inhalte
der Register 40-44 spezifiziert ist, über den Eingangsbus
ausgelesen und den Schiebeschaltungen, 40-70 a bis 40-70 d zugeführt.
Danach wird der Mantissenanteil nach rechts um die
Anzahl der Stellen verschoben, die durch den Wert spezifiziert
wird, der in den EQUIZ-Flip-Flops 40-890 bis 40-896 gespeichert
ist, und zugleich werden führende Nullen anstelle der
verschobenen Stellen eingefügt.
Es ist festzuhalten, daß die Mantissenstellen in die Exponentchipstufen
40-830 und 40-832 durch die Schiebeschaltungen
40-70 a bis 40-70 d geschoben werden. Deshalb hat der Zustand
des Teilungssteuerbits keinen Einfluß auf die Operation.
Jedoch ist festzuhalten, daß die erfindungsgemäße Anordnung
eine Speicherung innerhalb der zwei zusätzlichen Stellenpositionen
ermöglicht, was eine vergrößerte Genauigkeit und
Präzision in der arithmetischen Operation bildet. Das heißt,
daß nach dem Verschieben die beiden am wenigsten signifikanten
Stufen Stellenwerte enthalten könnten, die bedeutend zur
Erzeugung des endgültigen Resultates sind.
Wie aus Fig. 8 entnommen werden kann, wird der verschobene
Mantissenabschnitt, der dem Eingangsbus durch die Schiebeschaltungen
zugeführt wird, zurück in die vollen 64 Bitstellen
der Speicherstellen SA 1, die durch das Aufgabenregister
40-44 spezifiziert wird, zurückgeschrieben, wodurch die
vergrößerte, oben erwähnte Präzision geschaffen wird. Als
nächstes veranlassen die Adreßschaltungen 40-64 den Steuerspeicher
40-60, das in der Speicherstelle 124 eingespeicherte
Mikrobefehlswort auszulesen.
Das ausgelesene Mikrobefehlswort ist wie folgt codiert:
Das AS-Feld spezifiziert als Adressenquelle das DA-Feld,
das den Wert 4 enthält, das BS-Feld spezifiziert das Aufgabenregister
40-44 als Adreßquelle, das ES-Feld die A- und
B-Latch-Glieder, das EF-Feld ein Exklusiv-OR, und das ED-
Feld spezifiziert RAM-Y. Während dieses Zyklus′ wird die
Vorzeichenstellenchipstufe 40-800 so konditioniert, daß sie
das Vorzeichenbit mit Exklusiv-Or verarbeitet, das i 10360 00070 552 001000280000000200012000285911024900040 0002002900324 00004 10241n der
Speicherstelle SA 1 enthalten ist, die durch das Register
40-44 mit einer vorher in der Speicherstelle 4 gespeicherten
Konstante spezifiziert ist, die durch das DA-Feld angegeben
wird. Dies ergänzt den Vorzeichenstellenwert und setzt ihn in
die geeignete Form. Diese Operation steht jedoch mit der
vorliegenden Erfindung nicht in Zusammenhang und wird deshalb
nicht weiter besprochen.
Als nächstes konditionieren die Adreßschaltungen 40-64 den
Steuerspeicher 40-60 zur Auslese des Mikrobefehlswortes von
der Speicherstelle 0AA. Es ist dieses Mikrobefehlswort, das
die 16 Chipstufen konditioniert, um den 64-Bit-Operanden,
der in der Speicherstelle SA 1 gespeichert ist, von dem 64
Bitspeicheroperanden, der in der Speicherstelle 0 (MT) gespeichert
ist, zu subtrahieren.
Das Mikrobefehlswort ist wie folgt codiert: Das AS-Feld
spezifiziert das DA-Feld, das alles Nullen enthält, das
BS-Feld das Aufgabenregister 40-44 als Adreßquelle, das
ES-Feld die B-Latch-Glieder, das ES-Feld die Subtraktion,
das ECIN-Feld einen Übertrag, das ED-Feld spezifiziert
RAM-Y, das MS-Feld die A- und B-Latch-Glieder, das MS-Feld
die Subtraktion, das MCIN-Feld einen Übertrag und das MC-
Feld RAM-Y. Erfindungsgemäß wird das Teilungssteuerfeld gesetzt,
um eine ′′verbundene′′ Operation zu spezifizieren. Das
heißt das Steuersignal CRSPLT 10 ist binär Null.
Wie aus Fig. 4a zu sehen ist, werden, das CRSPLT 10 eine binäre
Null ist, die Übertrags- und Fortpflanzungssignale (GP)
die durch die Exponentchipstufen erzeugt werden, zu den
Mantissenstufen weitergeführt. Somit liefert die Anordnung
die oben erwähnte Präzision bei der Verwendung eines Minimums
von Hardware. Das heißt, wenn die Werte, die in den Mantissen-
und Exponentchipstufen gespeichert sind, von den 56 Mantissenbits
und den beiden Null-Exponentenstellen subtrahiert werden,
sind diese ′′Borg′′-Signale, die so erzeugt werden, in das endgültige
Ergebnis eingeschlossen. Das Ergebnis der Subtraktion
wird zurück in die Speicherstelle SA 1 geschrieben.
Während der Subtraktion ist festzuhalten, daß das Ergebnis,
das den ALU Einheiten der Chipstufen zugeführt wird, den
Detektor 40-86 für die führenden Nullen ansteuert, um festzustellen,
ob irgendwelche führenden Nullen erzeugt wurden.
Da das Steuersignal CRSPLT 10 eine binäre Null ist, prüfen die
Prioritätscodierschaltungen 40-860 und 40-862 alle 16
Stellen, wodurch die irgendwelche beliebigen Nullresultate,
die durch die Exponentchipstufen 40-830 und 40-832 erzeugt
wurden, einschließen (das heißt Überwachungsgebiet). Der erzeugte
Wert wird in den NORM-Flip-Flops 40-864 und 40-870 zur
Verwendung im nächsten Operationszyklus für eine Renomierung
des Ergebnisses gespeichert.
Wie aus Fig. 8 entnommen werden kann, werden während des letzten
Abschnitts des Zyklus′ die Inhalte des Mode-Registers
40-48 überprüft, um festzustellen, ob die Zwischenspeicherlänge
lang (das heißt 64 Bits) ist und nicht rund. Da dem im
vorliegenden Falle so ist, führen die Adreßschaltungen dazu,
daß der Steuerspeicher 40-60 das Mikrobefehlswort von der
Speicherstelle 112 ausliest.
Das ausgelesene Mikrobefehlswort ist wie folgt codiert: Die
AS- und BS-Felder spezifizieren beide die Aufgabenregister
40-44 als Adreßquelle, das MC-Feld spezifiziert die NORM-
Flip-Flops, das ES- und MS-Feld jeweils die D-Eingänge, das
EF- und MF-Feld jeweils ein OR, das ED- und MD-Feld jeweils
RAM und das SC-Feld eine Verschiebung nach links. Da diese
Operationen lediglich die Schiebeschaltungen 40-70 a bis
40-70 d berühren, ist es unnötig, daß das Teilungssteuerbit
auf binär Eins, wie es ist, gesetzt wird.
Während dieses Zyklus′ wird das Ergebnis, das in der Speicherstelle
SA 1 gespeichert ist, nach links um die Anzahl der
durch die Inhalte der NORM-Flip-Flops spezifizierten Stellen
verschoben, die den D 0- bis D 3-Eingangsanschlüssen der
Schiebeschaltungen 40-70 a bis 40-70 d zugeführt werden. Das
Verschiebungsergebnis wird danach in die Speicherstelle SA 1
geschrieben. Als nächstes läßt die Schaltung 40-64 den
Steuerspeicher 40-60 das Mikrobefehlswort, das in der Steuerspeicherstelle
056 gespeichert ist, auslesen.
Das ausgelesene Mikrobefehlswort ist wie folgt codiert:
Das AS-Feld spezifiziert das DA-Feld, das alle Nullen enthält,
das BS-Feld das Aufgabenregister 40-44 als Adreßquelle, das
ES-Feld die A- und B-Latch-Glieder, das EF-Feld eine Subtraktion,
das ECIN-Feld einen Übertrag und das ED-Feld
spezifiziert RAM-Y. Während dieses Zyklus subtrahiert die
SIP 40 den Exponentenwert (# X) von dem Wert, der vorher als
der Exponent des Ergebnisses berechnet wurde. Das heißt,
falls eine Nachnorminierung druchgeführt wurde, wird der Ergebnisexponent
während dieses Zyklus durch die angegebene
Subtraktion korrigiert. Wiederum ist der Zustand des Steuerspeicherbits
für diese Operation nicht von Bedeutung.
Wie aus Fig. 8 zu ersehen ist, tritt die SIP 40 in einen
$YOUR MOVE-Zyklus, in dem sie der CPU 20 signalisiert, daß
sie die Subtraktionsoperation durchgeführt hat.
Aus dem Vorangegangenen ist zu ersehen, wie die erfindungsgemäße
Vorrichtung in der Lage ist, arithmetische Operationen
bei einem Minimum von operativem Aufwand und mit dem erforderlichen
Präzisionsgrad durchzuführen.
Zusätzlich zur oben beschriebenen Operation kann die vorliegende
Erfindung im Zusammenhang mit der in der US-Patentanmeldung
Aktenzeichen 815 891 offenbarten Vorrichtung verwendet
werden. Dort sind gewisse Erzeugungen von partiellen
Produkten besprochen, zu denen Ein-Bit-Verschiebungen gehören.
Unter Verwendung der vorliegenden Erfindung wird das Teilungssteuerbit
innerhalb des Mikrobefehlsworts, das während eines
speziellen Operationszyklus′ ausgelesen wird, zur Spezifizierung
einer "Verbindung" gesetzt. Dies würde die Fortpflanzung
der Überträge von den Exponentchipstufen zu den Mantissenchipstufen
während Additons- und Verschiebungsoperationen
ermöglichen.
Dadurch, daß die beiden Abschnitte des arithmetischen Teils
der vorliegenden Erfindung während jedes beliebigen Operationszyklus′
unter Mikroprogrammsteuerung "geteilt" oder
"verbunden" werden können, wird eine Befehlsausführung ermöglicht,
die so wirkungsvoll durchgeführt werden kann, als
wenn sie durch zwei getrennte Einheiten durchgeführt würde.
Es dürfte einleuchten, daß die Konvention, die zur Ortsbestimmung
der Chipbitstellen in der bevorzugten Ausführung
der vorliegenden Erfindung eine ist, in der die signifikanteste
Bitstellung mit "3" (Q 3, F 3) bezeichnet worden ist. Die
Hersteller von Mikroprozessorchips können unterschiedliche
Konventionen zur Beschreibung ihrer Chips verwenden, was zu
Abänderungen der speziellen Anschlußverbindungen führt, wenn
sie in der bevorzugten Ausführung miteinander verbunden
werden. Beispielsweise verwendet der Hersteller Advanced
Micro Devices Inc. eine Konvention, die entgegengesetzt zu
der in Verbindung mit der bevorzugten Ausführungsform beschriebenen
ist. Somit wären die Q 0, Q 3 und F 0, F 3-Anschlüsse
miteinander zu vertauschen, wenn derartige Chips in der vorliegenden
Erfindung verwendet werden.
Es dürfte dem Fachmann einleuchten, daß viele Änderungen in
der bevorzugten Ausführungsform der vorliegenden Erfindung
gemacht werden können. Beispielsweise kann der Mikroprozessor
der vorliegenden Erfindung mit anderen Chips, beispielsweise
dem AMD2901A, ebenfalls hergestellt von der Advanced Micro
Devices, Inc., und der MMI6701, hergestellt durch die Monolithic
Memories, Inc., ausgetauscht werden. Es dürfte auch
einleuchten, daß derartige Chips unter Verwendung unterschiedlicher
Technologien, CML, I²L usw., hergestellt werden können.
Um ein unbilliges Eingrenzen der Beschreibung innerhalb des
Rahmens eines Durchschnittfachmanns zu verhindern, wurde ein
Blockdiagramm angehängt mit einer detaillierten funktionellen
Beschreibung jedes Blocks und einer genauen Identifizierung
der Schaltung, die es darstellt. Der jeweilige Fachmann kann
wahlweise Elemente und Komponenten wie zum Beispiel Flip-
Flops, Schieberegister etc. aus einer eigenen Kenntnis oder
von üblichen Standardbezugsquellen auswählen, wie zum Beispiel
"Arithmetic Operations in Digital Computers", von
R. K. Richards (Van Nostrand Publishing Company), "Computer
Design Fundamentals" von Chu (McGraw-Hill Book Company, Inc.)
und "Pulse, Digital and Switichin Waveforms" von Millman
and Taub (McGraw-Hill Book Company, Inc.).
Während hier die beste bekannte Form der Erfindung dargestellt
und beschrieben wurde, können in dem oben beschriebenen System
gewisse Änderungen gemacht werden, ohne von dem Rahmen und
Gedanken der Erfindung, wie er in den Ansprüchen zum Ausdruck
kommt, abzuweichen, und in manchen Fällen können gewisse Merkmale
der Erfindung vorteilhafterweise ohne eine entsprechende
Verwendung anderer Merkmale angewandt werden.
Claims (3)
1. Mikroprogrammierbares rekonfigurierbares Rechenwerk zur
Durchführung arithmetischer Operationen an je nach durchzuführender
Rechenoperation unterschiedlich dargestellten Operanden mit
einem adressierbaren Befehlsspeicher (40-60) zur Speicherung von
Mikrobefehlsworten (Fig. 7), die je eine Vielzahl von Steuerfeldern
(NA, GP, MD, . . . BS, AS, DA) umfassen, und mit einem mit dem
Befehlsspeicher verbundenen Ausgangsregister (40-62) zur Speicherung
eines ausgelesenen Mikrobefehlswortes, und mit einer Mehrzahl von
binären Rechenwerkschaltstufen (40-800 bis 40-832), dadurch
gekennzeichnet, daß mehrere Rechenwerkschaltstufen zu funktionellen
Recheneinheiten (40-800 bis 40-828; 40-830 bis 40-832) zusammengeschaltet
sind, wobei eine erste funktionelle Recheneinheit
die Bearbeitung von Mantissen und eine zweite funktionelle Recheneinheit
die Bearbeitung der Exponenten durchzuführen bestimmt ist,
daß mit den beiden funktionellen Recheneinheiten Steuerschaltmittel
(40-80) verbunden sind, die es in Abhängigkeit von Steuerfeldsignalen
(CRSPLT) des Mikrobefehlswortes gestatten, die beiden genannten
funktionellen Recheneinheiten (40-800 bis 40-828; 40-830 bis 40-832)
selektiv zusammenzuschalten, um mit allen vorhandenen Rechenwerkschaltstufen
eine arithmetische Operation in durchgehender Zahlendarstellung
an den Operanden durchzuführen.
2. Rechenwerk nach Anspruch 1, dadurch gekennzeichnet,
daß jede Rechenwerkschaltstufe aus einem integrierten Mehr-Bit-
Mikroprozessor (Fig. 5 und 6) besteht, die sequentiell zu den genannten
funktionellen Recheneinheiten zusammengeschaltet sind und daß in Abhängigkeit
von den genannten Steuerfeldsignalen (CRSPLT) die Steuerschaltmittel
(40-81) an der Schnittstelle (40-828/40-830) zwischen den beiden
funktionellen Recheneinheiten die bei der Durchführung der arithmetischen
Operationen auftretenden Rechensignale von einem Mikroprozessor
der ersten funktionellen Recheneinheit (40-828) zu einem Mikroprozessor
der zweiten funktionellen Recheneinheit (40-830) so durchzuschalten
gestatten, wie es auch zwischen zwei Mikroprozessoren innerhalb
derselben funktionellen Recheneinheit ermöglicht ist.
3. Rechenwerk nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß beim jeweiligen Auslesen der Signale des Mikrobefehlswortes
aus dem Ausgangsregister (40-62) jeweils von neuem
festgelegt wird, ob die zwei genannten funktionellen Recheneinheiten
zusammengeschaltet werden zur Durchführung einer gemeinschaftlichen
arithmetischen Operation an den Operanden (z. B. Fixkommarechnung
mit verlängerter Mantisse) oder ob sie nicht zusammengeschaltet
werden zur Durchführung unterschiedlicher arithmetischer
Teiloperationen an den Operanden (z. B. Gleitkommarechnung, bei
der Exponent und Mantisse unterschiedlichen Rechenoperationen
unterworfen werden).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/867,242 US4161784A (en) | 1978-01-05 | 1978-01-05 | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2900324A1 DE2900324A1 (de) | 1979-07-19 |
DE2900324C2 true DE2900324C2 (de) | 1989-01-19 |
Family
ID=25349402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19792900324 Granted DE2900324A1 (de) | 1978-01-05 | 1979-01-05 | Mikroprogrammierbare arithmetische fliesskommaeinheit |
Country Status (7)
Country | Link |
---|---|
US (1) | US4161784A (de) |
JP (1) | JPS5498146A (de) |
AU (1) | AU518371B2 (de) |
CA (1) | CA1120594A (de) |
DE (1) | DE2900324A1 (de) |
FR (1) | FR2414227B1 (de) |
GB (1) | GB2015783B (de) |
Families Citing this family (135)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4954951A (en) * | 1970-12-28 | 1990-09-04 | Hyatt Gilbert P | System and method for increasing memory performance |
US5526506A (en) * | 1970-12-28 | 1996-06-11 | Hyatt; Gilbert P. | Computer system having an improved memory architecture |
US5459846A (en) * | 1988-12-02 | 1995-10-17 | Hyatt; Gilbert P. | Computer architecture system having an imporved memory |
JPS5833572B2 (ja) * | 1977-10-21 | 1983-07-20 | 株式会社東芝 | 情報処理方式 |
US4229801A (en) * | 1978-12-11 | 1980-10-21 | Data General Corporation | Floating point processor having concurrent exponent/mantissa operation |
US4293907A (en) * | 1978-12-29 | 1981-10-06 | Bell Telephone Laboratories, Incorporated | Data processing apparatus having op-code extension register |
US4240144A (en) * | 1979-01-02 | 1980-12-16 | Honeywell Information Systems Inc. | Long operand alignment and merge operation |
US4310879A (en) * | 1979-03-08 | 1982-01-12 | Pandeya Arun K | Parallel processor having central processor memory extension |
US4308589A (en) * | 1979-11-08 | 1981-12-29 | Honeywell Information Systems Inc. | Apparatus for performing the scientific add instruction |
US4598358A (en) * | 1980-02-11 | 1986-07-01 | At&T Bell Laboratories | Pipelined digital signal processor using a common data and control bus |
US4360891A (en) * | 1980-04-14 | 1982-11-23 | Sperry Corporation | Address and data interface unit |
JPS56147260A (en) * | 1980-04-18 | 1981-11-16 | Nec Corp | Lsi for digital signal processing |
US4418383A (en) * | 1980-06-30 | 1983-11-29 | International Business Machines Corporation | Data flow component for processor and microprocessor systems |
IT1150998B (it) * | 1980-09-02 | 1986-12-17 | Telecomucicazioni Siemens Spa | Unita' di controllo di un modulo ingresso-uscita di un elaboratore elettronico |
US4422143A (en) * | 1980-11-24 | 1983-12-20 | Texas Instruments Incorporated | Microprocessor ALU with absolute value function |
US4366548A (en) * | 1981-01-02 | 1982-12-28 | Sperry Corporation | Adder for exponent arithmetic |
US4484276A (en) * | 1981-02-19 | 1984-11-20 | Sperry Corporation | Shift matrix preselector control circuit |
US4493025A (en) * | 1981-05-22 | 1985-01-08 | Data General Corporation | Digital data processing system using unique means for comparing operational results and locations at which such results are to be stored |
US4468748A (en) * | 1981-06-11 | 1984-08-28 | Data General Corporation | Floating point computation unit having means for rounding the floating point computation result |
US4476537A (en) * | 1981-06-11 | 1984-10-09 | Data General Corporation | Fixed point and floating point computation units using commonly shared control fields |
US4720783A (en) * | 1981-08-24 | 1988-01-19 | General Electric Company | Peripheral bus with continuous real-time control |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4491910A (en) * | 1982-02-22 | 1985-01-01 | Texas Instruments Incorporated | Microcomputer having data shift within memory |
US4586131A (en) * | 1982-02-22 | 1986-04-29 | Texas Instruments Incorporated | Microcomputer having data move circuits for within-memory shift of data words |
US4612628A (en) * | 1983-02-14 | 1986-09-16 | Data General Corp. | Floating-point unit constructed of identical modules |
US4914578A (en) * | 1983-04-18 | 1990-04-03 | Motorola, Inc. | Method and apparatus for interrupting a coprocessor |
JPS6043751A (ja) * | 1983-08-18 | 1985-03-08 | Hitachi Ltd | 情報処理装置 |
US5093775A (en) * | 1983-11-07 | 1992-03-03 | Digital Equipment Corporation | Microcode control system for digital data processing system |
US4660143A (en) * | 1984-09-24 | 1987-04-21 | The United States Of America As Represented By The Secretary Of The Air Force | Programmable realtime interface between a Block Floating Point processor and memory |
US5034879A (en) * | 1984-10-01 | 1991-07-23 | Unisys Corp. (Formerly Burroughs Corp.) | Programmable data path width in a programmable unit having plural levels of subinstruction sets |
US4773035A (en) * | 1984-10-19 | 1988-09-20 | Amdahl Corporation | Pipelined data processing system utilizing ideal floating point execution condition detection |
US4736317A (en) * | 1985-07-17 | 1988-04-05 | Syracuse University | Microprogram-coupled multiple-microprocessor module with 32-bit byte width formed of 8-bit byte width microprocessors |
US4858115A (en) * | 1985-07-31 | 1989-08-15 | Unisys Corporation | Loop control mechanism for scientific processor |
US4763294A (en) * | 1985-12-19 | 1988-08-09 | Wang Laboratories, Inc. | Method and apparatus for floating point operations |
JPS62229436A (ja) * | 1986-03-31 | 1987-10-08 | Toshiba Corp | 二進数デ−タ判別回路 |
US4841435A (en) * | 1986-10-29 | 1989-06-20 | Saxpy Computer Corporation | Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus |
US4800516A (en) * | 1986-10-31 | 1989-01-24 | Amdahl Corporation | High speed floating-point unit |
US4839801A (en) * | 1986-11-03 | 1989-06-13 | Saxpy Computer Corporation | Architecture for block processing computer system |
US5091845A (en) * | 1987-02-24 | 1992-02-25 | Digital Equipment Corporation | System for controlling the storage of information in a cache memory |
US5226170A (en) * | 1987-02-24 | 1993-07-06 | Digital Equipment Corporation | Interface between processor and special instruction processor in digital data processing system |
US5032986A (en) * | 1987-07-28 | 1991-07-16 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
US4901268A (en) * | 1988-08-19 | 1990-02-13 | General Electric Company | Multiple function data processor |
US5062041A (en) * | 1988-12-29 | 1991-10-29 | Wang Laboratories, Inc. | Processor/coprocessor interface apparatus including microinstruction clock synchronization |
DE69227604T2 (de) * | 1991-03-11 | 1999-06-24 | Silicon Graphics Inc Mountain | Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum |
US5375080A (en) * | 1992-12-18 | 1994-12-20 | Xerox Corporation | Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component |
GB2274730B (en) * | 1993-01-30 | 1997-05-28 | Motorola Inc | A mantissa addition system for a floating point adder |
US5574928A (en) * | 1993-10-29 | 1996-11-12 | Advanced Micro Devices, Inc. | Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments |
US5689672A (en) * | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
US5878245A (en) | 1993-10-29 | 1999-03-02 | Advanced Micro Devices, Inc. | High performance load/store functional unit and data cache |
DE69434669T2 (de) * | 1993-10-29 | 2006-10-12 | Advanced Micro Devices, Inc., Sunnyvale | Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge |
EP0651332B1 (de) | 1993-10-29 | 2001-07-18 | Advanced Micro Devices, Inc. | Linearadressierter Mikroprozessorcachespeicher |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices Inc | Superskalarmikroprozessoren |
EP0651320B1 (de) | 1993-10-29 | 2001-05-23 | Advanced Micro Devices, Inc. | Superskalarbefehlsdekoder |
DE69424626T2 (de) * | 1993-11-23 | 2001-01-25 | Hewlett Packard Co | Parallele Datenverarbeitung in einem Einzelprozessor |
US5541865A (en) * | 1993-12-30 | 1996-07-30 | Intel Corporation | Method and apparatus for performing a population count operation |
DE69519449T2 (de) * | 1994-05-05 | 2001-06-21 | Conexant Systems Inc | Raumzeigersdatenpfad |
US5696955A (en) * | 1994-06-01 | 1997-12-09 | Advanced Micro Devices, Inc. | Floating point stack and exchange instruction |
US5642306A (en) * | 1994-07-27 | 1997-06-24 | Intel Corporation | Method and apparatus for a single instruction multiple data early-out zero-skip multiplier |
US5574670A (en) * | 1994-08-24 | 1996-11-12 | Advanced Micro Devices, Inc. | Apparatus and method for determining a number of digits leading a particular digit |
US6275834B1 (en) * | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
US6738793B2 (en) * | 1994-12-01 | 2004-05-18 | Intel Corporation | Processor capable of executing packed shift operations |
ZA9510127B (en) * | 1994-12-01 | 1996-06-06 | Intel Corp | Novel processor having shift operations |
AU4738396A (en) * | 1994-12-01 | 1996-06-19 | Intel Corporation | A microprocessor having a multiply operation |
US5819101A (en) * | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
BR9509845A (pt) * | 1994-12-02 | 1997-12-30 | Intel Corp | Microprocessador com operação de compactação de elementos de operação compósitos |
US5687359A (en) * | 1995-03-31 | 1997-11-11 | International Business Machines Corporation | Floating point processor supporting hexadecimal and binary modes using common instructions with memory storing a pair of representations for each value |
US5752001A (en) * | 1995-06-01 | 1998-05-12 | Intel Corporation | Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5721892A (en) * | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US5936872A (en) * | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
US6470370B2 (en) | 1995-09-05 | 2002-10-22 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US5983253A (en) * | 1995-09-05 | 1999-11-09 | Intel Corporation | Computer system for performing complex digital filters |
US6058408A (en) * | 1995-09-05 | 2000-05-02 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US5761105A (en) * | 1995-09-26 | 1998-06-02 | Advanced Micro Devices, Inc. | Reservation station including addressable constant store for a floating point processing unit |
US5878266A (en) * | 1995-09-26 | 1999-03-02 | Advanced Micro Devices, Inc. | Reservation station for a floating point processing unit |
US5748516A (en) * | 1995-09-26 | 1998-05-05 | Advanced Micro Devices, Inc. | Floating point processing unit with forced arithmetic results |
US5822459A (en) * | 1995-09-28 | 1998-10-13 | Intel Corporation | Method for processing wavelet bands |
US5796974A (en) * | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
US5984515A (en) * | 1995-12-15 | 1999-11-16 | Intel Corporation | Computer implemented method for providing a two dimensional rotation of packed data |
US5935240A (en) * | 1995-12-15 | 1999-08-10 | Intel Corporation | Computer implemented method for transferring packed data between register files and memory |
US5757432A (en) * | 1995-12-18 | 1998-05-26 | Intel Corporation | Manipulating video and audio signals using a processor which supports SIMD instructions |
US5815421A (en) * | 1995-12-18 | 1998-09-29 | Intel Corporation | Method for transposing a two-dimensional array |
US5835748A (en) * | 1995-12-19 | 1998-11-10 | Intel Corporation | Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file |
US5940859A (en) * | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US5852726A (en) * | 1995-12-19 | 1998-12-22 | Intel Corporation | Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner |
US5701508A (en) | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US5857096A (en) * | 1995-12-19 | 1999-01-05 | Intel Corporation | Microarchitecture for implementing an instruction to clear the tags of a stack reference register file |
US6792523B1 (en) * | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
WO1997024681A1 (en) * | 1995-12-19 | 1997-07-10 | Intel Corporation | A computer system performing a two-dimensional rotation of packed data representing multimedia information |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US6036350A (en) * | 1995-12-20 | 2000-03-14 | Intel Corporation | Method of sorting signed numbers and solving absolute differences using packed instructions |
US5787026A (en) * | 1995-12-20 | 1998-07-28 | Intel Corporation | Method and apparatus for providing memory access in a processor pipeline |
US5880979A (en) * | 1995-12-21 | 1999-03-09 | Intel Corporation | System for providing the absolute difference of unsigned values |
US5742529A (en) * | 1995-12-21 | 1998-04-21 | Intel Corporation | Method and an apparatus for providing the absolute difference of unsigned values |
US5793661A (en) * | 1995-12-26 | 1998-08-11 | Intel Corporation | Method and apparatus for performing multiply and accumulate operations on packed data |
US5983257A (en) * | 1995-12-26 | 1999-11-09 | Intel Corporation | System for signal processing using multiply-add operations |
US5740392A (en) * | 1995-12-27 | 1998-04-14 | Intel Corporation | Method and apparatus for fast decoding of 00H and OFH mapped instructions |
US5835392A (en) * | 1995-12-28 | 1998-11-10 | Intel Corporation | Method for performing complex fast fourier transforms (FFT's) |
US6092184A (en) * | 1995-12-28 | 2000-07-18 | Intel Corporation | Parallel processing of pipelined instructions having register dependencies |
US5764943A (en) * | 1995-12-28 | 1998-06-09 | Intel Corporation | Data path circuitry for processor having multiple instruction pipelines |
US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
US6009191A (en) * | 1996-02-15 | 1999-12-28 | Intel Corporation | Computer implemented method for compressing 48-bit pixels to 16-bit pixels |
US5621674A (en) * | 1996-02-15 | 1997-04-15 | Intel Corporation | Computer implemented method for compressing 24 bit pixels to 16 bit pixels |
US5959636A (en) * | 1996-02-23 | 1999-09-28 | Intel Corporation | Method and apparatus for performing saturation instructions using saturation limit values |
US5822232A (en) * | 1996-03-01 | 1998-10-13 | Intel Corporation | Method for performing box filter |
US6070237A (en) * | 1996-03-04 | 2000-05-30 | Intel Corporation | Method for performing population counts on packed data types |
US5835782A (en) * | 1996-03-04 | 1998-11-10 | Intel Corporation | Packed/add and packed subtract operations |
US5831885A (en) * | 1996-03-04 | 1998-11-03 | Intel Corporation | Computer implemented method for performing division emulation |
US6049864A (en) * | 1996-08-20 | 2000-04-11 | Intel Corporation | Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor |
US5881279A (en) * | 1996-11-25 | 1999-03-09 | Intel Corporation | Method and apparatus for handling invalid opcode faults via execution of an event-signaling micro-operation |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US6081824A (en) * | 1998-03-05 | 2000-06-27 | Intel Corporation | Method and apparatus for fast unsigned integral division |
US7395302B2 (en) | 1998-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing horizontal addition and subtraction |
US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
US7392275B2 (en) * | 1998-03-31 | 2008-06-24 | Intel Corporation | Method and apparatus for performing efficient transformations with horizontal addition and subtraction |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US6205461B1 (en) | 1998-09-18 | 2001-03-20 | Ati International Srl | Floating point arithmetic logic unit leading zero count using fast approximate rounding |
US6199089B1 (en) | 1998-09-18 | 2001-03-06 | Ati International Srl | Floating point arithmetic logic unit rounding using at least one least significant bit |
US6272512B1 (en) | 1998-10-12 | 2001-08-07 | Intel Corporation | Data manipulation instruction for enhancing value and efficiency of complex arithmetic |
FR2802660B1 (fr) * | 1999-12-21 | 2002-11-29 | St Microelectronics Sa | Procede pour effectuer des operations avec une arithmetique variable |
US6725360B1 (en) * | 2000-03-31 | 2004-04-20 | Intel Corporation | Selectively processing different size data in multiplier and ALU paths in parallel |
US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US20040054877A1 (en) | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7739319B2 (en) * | 2001-10-29 | 2010-06-15 | Intel Corporation | Method and apparatus for parallel table lookup using SIMD instructions |
US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US7624138B2 (en) | 2001-10-29 | 2009-11-24 | Intel Corporation | Method and apparatus for efficient integer transform |
US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US7047383B2 (en) * | 2002-07-11 | 2006-05-16 | Intel Corporation | Byte swap operation for a 64 bit operand |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE629725A (de) * | 1962-03-29 | |||
US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US3551665A (en) * | 1966-09-13 | 1970-12-29 | Ibm | Floating point binary adder utilizing completely sequential hardware |
US3571803A (en) * | 1968-06-04 | 1971-03-23 | Bell Telephone Labor Inc | Arithmetic unit for data processing systems |
US3739352A (en) * | 1971-06-28 | 1973-06-12 | Burroughs Corp | Variable word width processor control |
US3751650A (en) * | 1971-06-28 | 1973-08-07 | Burroughs Corp | Variable length arithmetic unit |
US3725649A (en) * | 1971-10-01 | 1973-04-03 | Raytheon Co | Floating point number processor for a digital computer |
DE2222195A1 (de) * | 1972-05-05 | 1973-11-22 | Siemens Ag | Anordnung zur verarbeitung von operanden von programmen |
CA1015065A (en) * | 1974-01-21 | 1977-08-02 | Richard T. Mcandrew | Floating point apparatus and techniques |
US3987291A (en) * | 1975-05-01 | 1976-10-19 | International Business Machines Corporation | Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location |
-
1978
- 1978-01-05 US US05/867,242 patent/US4161784A/en not_active Expired - Lifetime
- 1978-12-21 CA CA000318364A patent/CA1120594A/en not_active Expired
-
1979
- 1979-01-02 AU AU43045/79A patent/AU518371B2/en not_active Ceased
- 1979-01-05 DE DE19792900324 patent/DE2900324A1/de active Granted
- 1979-01-05 FR FR7900272A patent/FR2414227B1/fr not_active Expired
- 1979-01-05 GB GB7900404A patent/GB2015783B/en not_active Expired
- 1979-01-05 JP JP57279A patent/JPS5498146A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
FR2414227A1 (fr) | 1979-08-03 |
GB2015783B (en) | 1982-05-19 |
JPS5498146A (en) | 1979-08-02 |
FR2414227B1 (fr) | 1987-12-31 |
AU518371B2 (en) | 1981-09-24 |
DE2900324A1 (de) | 1979-07-19 |
GB2015783A (en) | 1979-09-12 |
CA1120594A (en) | 1982-03-23 |
US4161784A (en) | 1979-07-17 |
AU4304579A (en) | 1979-07-12 |
JPS618446B2 (de) | 1986-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2900324C2 (de) | ||
DE2755273C2 (de) | ||
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE19983175B4 (de) | Verfahren, Prozessor und Einrichtung für Gleitkommaoperationen und Formatkonvertierungsoperationen | |
DE2846117C2 (de) | Datenprozessor | |
DE1237363B (de) | Arithmetisch-Logische-Einheit | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE3306084A1 (de) | Rechnerarchitektur zur gleitkomma -addition | |
DE2911096C2 (de) | ||
DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem | |
DE2421130C2 (de) | ||
DE60006971T2 (de) | Bedingte befehlsausführung in einem rechner | |
DE112015003584T5 (de) | Maschinenbefehle zum Umsetzen von einem dezimalen Gleitkommaformat zu einem gepackten Dezimalformat | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE1197650B (de) | Parallel-Addierer | |
CH644461A5 (de) | Digitale multipliziereinrichtung. | |
DE112015003588T5 (de) | Maschinenbefehle zum Umsetzen von einem gepackten Dezimalformat zu einem dezimalen Gleitkommaformat | |
DE2830334C2 (de) | ||
DE2222197A1 (de) | Anordnung zur Auf- bzw. Abrundung von Zweierkomplement-Zahlen | |
DE3314035C2 (de) | ||
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
DE3434777C2 (de) | ||
DE2336676B2 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
DE2658950A1 (de) | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben | |
DE3933172A1 (de) | Akkumulator fuer komplexe zahlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: BARDEHLE, H., DIPL.-ING., PAT.-ANW., 8000 MUENCHEN |
|
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |