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
Application number
DE2900324A
Other languages
English (en)
Other versions
DE2900324A1 (de
Inventor
David E. Chelmsford Mass. Us Cushing
Steven A. Billerica Mass. Us Tague
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2900324A1 publication Critical patent/DE2900324A1/de
Application granted granted Critical
Publication of DE2900324C2 publication Critical patent/DE2900324C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge 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).
DE19792900324 1978-01-05 1979-01-05 Mikroprogrammierbare arithmetische fliesskommaeinheit Granted DE2900324A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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