DE2222197A1 - Anordnung zur Auf- bzw. Abrundung von Zweierkomplement-Zahlen - Google Patents
Anordnung zur Auf- bzw. Abrundung von Zweierkomplement-ZahlenInfo
- Publication number
- DE2222197A1 DE2222197A1 DE19722222197 DE2222197A DE2222197A1 DE 2222197 A1 DE2222197 A1 DE 2222197A1 DE 19722222197 DE19722222197 DE 19722222197 DE 2222197 A DE2222197 A DE 2222197A DE 2222197 A1 DE2222197 A1 DE 2222197A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- operand
- adder
- rounding
- switching device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
Dipl.-Ing. Heinz Bardehle
Patentanwalt
8 München 22, Herrnstr. 15 ■
8 München 22, Herrnstr. 15 ■
5. .Mai 1072
Mein Zeichen: P 1378
Anmelder: Honeywell Information Systems Inc. 200 Smith Street
Waltham/Mass., V. St. A.
Waltham/Mass., V. St. A.
Anordnung zur Auf- bzw. Abrundung von Zweierkomplement-Zahlen
Die Erfindung bezieht sieh auf die Verarbeitung von Daten
mit Hilfe von Rechnern.
Bei der Verarbeitung von numerischen Daten mit Hilfe digitaler Rechner, und zwar insbesondere für wissenschaftliche
Anwendungsfälle, gibt der jeweilige Rechner Daten durch die
beste Näherungslösung ab, die er mit der zur Verfügung stehenden Anzahl von Bits auszuführen vermag. So kann z.B.
bei 36-Bit-Wörtern eine Zahl dadurch dargestellt werden, daß ein acht Bit umfassender Exponent und eine 28 Bit umfassende
Mantisse oder ein 28 Bit umfassender Bruch für Gleitkommadaten einfacher Genauigkeit verwendet werden.
Werden Doppelwortdaten benutzt, so erweitert sich die Mantisse von 36 Bits auf 64 Bits. Bei bestimmten Zahlen,
wie z.B. bei 0,5, kann die Zahl in binärer Gleitkommadar-
209847/1 1 1 5
22221S7
stellung genau angegeben werden, und zwar als 000000000 100 ... . Im allgemeinen ist die jeweilige
Darstellung jedoch eine Näherungslösung. So kann z.B. die Zahl 1/3 auf der Basis von zwei nicht genau dargestellt
werden. Dieses Problem geht im übrigen auf die Tatsache zurück, daß viele Werte bereits die erforderliche
Näherung bei einer numerischen Untersuchung zeigen, und zwar einschließlich der irrationalen Zahlen, der transzendenten
Zahlen, etc.. Für die Zwecke der vorliegenden Erfindung ist es jedoch weit wichtiger, daß Rechner für
eine Reihe von Rechneroperationen, zu denen Multiplikationen und Divisionen gehören, die Neigung zeigen, allmählich die
Genauigkeit geringer werden zu lassen. Im allgemeinen führen Zahlen, die durch η Bits dargestellt sind, auf eine Multiplikation
hin zu kennzeichnenden 2n Bits. Wird das Ergebnis gespeichert, so muß es auf η Bits verringert werden, wobei
bestimmt werden muß, ob das zu speichernde bzw. gespeicherte Bit niedrigster Wertigkeit eine 1 oder eine 0 sein soll.
Wahrscheinlich besteht die übliche Praxis darin, das Ergebnis einfach zu verkürzen und die Bits hinter den bedeutsamen
η Bits unberücksichtigt zu lassen, wie dies durch den für den Operanden vorgeschriebenen Datentyp
zugelassen ist.
Bei Variablen einfacher Genauigkeit kann die Verkürzung insbesondere zu unannehmbaren Endergebnissen auf Grund
einer Reihe von Berechnungen führen, die gleichbleibend positive oder negative Zwischenergebnisse liefern, was z.B.
bei der mathematischen Programmierung häufig der Fall ist. Bezüglich jeglicher gegebener Verarbeitungsstruktur und
bezüglich einer gegebenen Anzahl von bedeutsamen Bits ist eine Genauigkeitsgrenze vorhanden, die aufrechterhalten
2 0 9 8 /< 7 / "
werden kann. In gewissen Fällen reicht diese Genauigkeit nicht aus, weshalb dann spezielle Programmiervorgänge für
diese Fälle erforderlich sind. Demgemäß besteht das allgemeine Ziel darin, die Datenverarbeitungsstruktur bzw. -anordnung
so zu organisieren, daß die Verkürzungs- und Abrundungsfehler die Neigung zeigen, sich aufzuheben. Die
Erfahrung hat gezeigt, daß in den meisten Anwendungsfällen die besten Ergebnisse dadurch erhalten werden können, daß
auf den nächsten Wert, der dargestellt werden kann, auf-bzw. abgerundet wird.
Bei Binärrechnern besteht eine Lösung zur Abrundung einer Zahl darin, daß eine 1 zu der unberücksichtigt zu lassenden
ersten Bit-Position hinzuaddiert wird und daß ein Übertrag weitergeleitet wird, wenn das betreffende Bit eine 1 ist.
Die übrigen Bits werden dann sozusagen abgeschnitten. Es hat sich jedoch gezeigt, daß jede Anordnung, die denselben
Einfluß auf das letzte Bit bei negativen und positiven Zahlen hat, zu unvereinbaren Ergebnissen führt. In dem Fall, daß
der Rechner zwei Ergebnisse gleicher Größe aber entgegengesetzten Vorzeichens liefert und die Bits, die den gespeicherten
η Bits folgen, zuerst eine 1 und dann nachfolgend nur O-Zeichen umfassen, ist die Größe der gespeicherten Ergebnisse
unterschiedlich. Erfolgt entweder eine Verkürzung oder eine Übertragszuführung bei beiden Ergebnissen, so
ist die Summe beider gespeicherter Ergebnisse nicht Null. Dies geht darauf zurück, daß die Verkürzung der Zweierkomplement-Zahl
die Größe einer positiven Zahl verringert, jedoch die Größe einer negativen Zahl vergrößert bzw. bei
einem Übertragseintrag umgekehrt.
209847/
Ein weiterer Gesichtspunkt besteht darin, daß bei Rechnern der hier angegebenen Art eine Rundung irgendeiner Art die
Genauigkeit einer Reihe von Rechnungen bzw. Berechnungen herabsetzen kann. Dies bedeutet, daß im Falle der Rundung
des Akkumulators die nachfolgenden, den Akkumulatorinhalt modifizierenden Operationen eine entsprechend geringere
Genauigkeit mit sich bringen.
Der Erfindung liegt demgemäß die Aufgabe zu Grunde, eine Anordnung zur Rundung von Zwei^erkomplement-Zahlen zu
schaffen, und zwar zur -Lieferung von übereinstimmenden Ergebnissen sowohl für positive Zahlen als auch für negative
Zahlen.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die im Patentanspruch 1 angegebene Erfindung. Gemäß der Erfindung
ist eine Anordnung geschaffen, die zur Rundung von Zweierkomplement-Zahlen in einem Binärrechner auf Zahlen
dient, welche η Bits weniger enthalten. Diese Anordnung ist erfindungsgemäß dadurch gekennzeichnet,
a) daß ein Addierer vorgesehen ist, der die Binärsumme zweier Operanden zu erzeugen vermag,
b) daß eine Rundungseinrichtung vorgesehen ist, die eine
Rundungszahl 2n~ -1 an den Addierer als ersten Operanden
für eine zu rundende negative Zahl abgibt,
c) daß die Rundungseinrichtung eine Rundungszahl 2 an
den Addierer als ersten Operanden für eine zu rundende positive Zahl abgibt, und
d) daß Einrichtungen vorgesehen sind, die eine Zweierkomplement-Binärzahl
an den Addierer als zweiten Operanden abgeben.
0 9 8 4 7/ ι 1
Gemäß einer Ausführungsform der Erfindung ist eine Anordnung geschaffen, die in einem Binärrechner, in welchem
mit einer Zweierkomplement-Darstellung von Gleitkommazahlen gearbeitet wird, Zahlen für die Speicherung in einer
solchen Weise zu runden gestattet, daß die gespeicherten Ergebnisse der positiven und negativen Zahlen in allen
Fällen für Zahlen derselben Größe gleich sind. In dem Fall, daß η kennzeichnende Bits auf Grund der Speicherwortlängenbeschränkungen
verloren gehen, wird eine Rundungskonstante
n-1
2 -1, d.h. eine Null mit nachfolgenden Einsen, den η Bits niedrigster Wertigkeit des Akkumulators hinzuaddiert, und außerdem wird eine Übertragsweiterleitung ermöglicht. Wenn der Akkumulator eine positive Zahl enthält, wird zu der Bitstelle niedrigster Wertigkeit des Addierers ein Übertragseintrag hinzuaddiert, so daß bezüglich zu speichernder Gleitkommazahlen die gespeicherte Zahl in der Größe aufgerundet wird, wenn der Akkumulatorwert genau in der Mitte zwischen benachbarten Werten, die in dem gespeicherten Format dargestellt werden können, liegt oder größer ist. Im übrigen stellt die gespeicherte Zahl eine verkürzte Form des Akkumulatorwerts dar. Normalerweise bleibt der Akkumulator selbst unverändert, so daß über eine Reihe von Rechnungen hinweg die maximale Kennzeichnung beibehalten wird.
2 -1, d.h. eine Null mit nachfolgenden Einsen, den η Bits niedrigster Wertigkeit des Akkumulators hinzuaddiert, und außerdem wird eine Übertragsweiterleitung ermöglicht. Wenn der Akkumulator eine positive Zahl enthält, wird zu der Bitstelle niedrigster Wertigkeit des Addierers ein Übertragseintrag hinzuaddiert, so daß bezüglich zu speichernder Gleitkommazahlen die gespeicherte Zahl in der Größe aufgerundet wird, wenn der Akkumulatorwert genau in der Mitte zwischen benachbarten Werten, die in dem gespeicherten Format dargestellt werden können, liegt oder größer ist. Im übrigen stellt die gespeicherte Zahl eine verkürzte Form des Akkumulatorwerts dar. Normalerweise bleibt der Akkumulator selbst unverändert, so daß über eine Reihe von Rechnungen hinweg die maximale Kennzeichnung beibehalten wird.
An Hand von Zeichnungen wird die Erfindung nachstehend an einem Ausführungsbeispiel näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm eine bevorzugte Ausführungsform der Erfindung, unter Veranschaulichung von
Registern, Schaltern und Addierern eines Operationswerkes für einen im Zweierkomplement-System arbeitenden binären
Digitalrechner.
2 0 9 81> 7 /1 ι -, r;
Fig. 2 zeigt in einem Blockdiagramm Verknüpfungselemente, die ein Steuerwerk für das Operationswerk gemäß Fig. 1
bilden.
Fig. 3 zeigt in einem Verknüpfungsdiagramm eine Realisierung eines charakteristischen Schalters für das in Fig. 1 dargestellte
Operationswerk.
In Fig. 1 sind die Hauptelemente dargestellt, die für das Rechenwerk und die Verbindungen zur Ausführung der "bevorzugten
Ausführungsform der Erfindung erforderlich sind. Bezüglich einer vollständigeren Beschreibung des Datenverarbeitungssystems
sei auf die US-PS 3 413 613 Bezug genommen.
Ein Hauptspeicher 10 leitet Datenwörter und Befehlswörter über einen ZI-Schalter 11 zu einem ZY-Schalter 88, einem
Befehls-I-Register 78 und einem ZA-Schalter 13 hin. Zwei
Datenwörter werden über den ZA-Schalter 13/cLen ZP-Schalter
-?iiem 72-Bit-M-Register 14 zugeleitet. Ein ZJ-Schalter 20
leitet selektiv Datenwörter aus dem M-Register zu einem 72-Bit-H-Register 36 hin, bei dem es sich um eines der
beiden Operandenregister für den Haupt-Α-Addierer 38
handelt. Das zweite Operandenregister ist ein 72-Bit-N-Register 40, das über den ZQ-Schalter 42 geladen wird. Der
A-Addierer ist ein 72-Bit-Volladdierer, der selektiv
Rechenoperationen bezüglich der Addition und Subtraktion von Zweierkomplement-Zahlen und die Verknüpfungsoperationen
ODER, UND und EXKLUSIV-ODER ausführt. Die Eingangssignale
für den Α-Addierer werden durch das ZH-Gatter 37 bzw. den entsprechend bezeichneten Schalter ausgewählt. Über dieses
Gatter bzw. über diesen Schalter 37 steht das erste Operandeneingangssignal des H-Registers 36 zur Verfügung,
2 0 9 8 4 7 / 1 1 1 S
und über den ZN-Schalter bzw. das ZN-Gatter 41 steht
das zweite Operandeneingangssignal des N-Registers 40 zur Verfügung. Das Ausgangssignal des Α-Addierers wird
in einem 72-Bit-AS-Register 55 gespeichert, oder es kann
selektiv über den ZQ-Schalter 42 zu dem N-Register hin geleitet werden. Der Inhalt des AS-Registers wird jeweils
selektiv über den ZD-Schalter 32 bzw. den ZL-Schalter 48
zur Einspeicherung in den Speicher oder in einen 72-Bit-Akkumulator,
dem AQ-Register 56, weitergeleitet. Über den
ZR-Schalter 46 wird der jeweilige Akkumulatorinhalt selektiv zu dem Η-Register oder zu dem N-Register hingeleitet, und
zwar über den ZJ-Schalter 20 bzw. den ZQ-Schalter 42.
Die Exponententeile von aus dem Speicher 10 herausgeführten Worten, die über den ZI-Schalter 11 gelangen, werden ebenfalls
selektiv und rechtsbündig einem 10-Bit-D-Register 22
zugeleitet, und zwar über den ZU-Schalter 16. Der Zweck
dieser Maßnahme dient dazu, einen Exponenten von einer Gleitkommazahl zu trennen. Es ist aber auch möglich, die
betreffenden Wörter einem 10-Bit-ACT-Register 28 über den ZC-Schalter 27 zuzuleiten. Der Zweck dieser Maßnahme dient
dazu, Verschiebungszählungen und dgl. aufrechtzuhalten.
Ein Exponent-E-Addierer 34 dient zur Ausführung einer Exponentenverarbeitung und zur Ausführung von Hilfsfunktionen.
Die Eingangssignale für den Exponenten-Addierer werden über den ZE-Schalter 25 und den ZG-Schalter 26 geliefert.
An dem Ausgang des Exponenten-Addierers sind der ZF-Schalter 24, der ZU-Schalter 16 und der ZC-Schalter 27
angeschlossen. Der ZF-Schalter leitet Operanden aus dem D-Register und die Ausgangssignale des Exponenten-Addierers
zu einem E-Register 3 0 hin.
0 9 8 4 7/111:
Die in Pig. 1 dargestellte Anordnung besteht aus einer
Kombination von Schaltern, Registern und Addieret. Die
besondere Realisierung dieser Einrichtungen ist jedoch nicht Gegenstand der vorliegenden Erfindung, Zur Realisierung
des A-Addierers 38 genügt es, 72 Volladdierer zu verwenden, deren jeder als Eingangssignale ein Bit aus der entsprechenden
Bitposition des jeweils zugeführten Operanden und ein Übertragseingangssignal von dem Volladdierer der nächstniederen
Stelle bzw. Wertigkeit erhält. Der Volladdierer niedrigster Wertigkeit bzw. an niedrigster Stelle vermag
eine 1 oder eine 0 als Übertragseingangssignal entsprechend den Steuer- bzw. Tastsignalen aufzunehmen. Die Summenausgangssignale
der Volladdierer dienen, als Addiererausgangssignale für die entsprechenden Bitpositionen, und die
Übertragsausgangssignale der Volladdierer stellen Übertrags·*
eingangssignale für den an jeweils nächst höherer Stelle m
stehenden Volladdierer dar. An dem Übertragsausgang des an höchster Stelle stehenden Volladdierers ist ein Addierer-Übertrags-Ausgangsflipflop
angeschlossen. In den betrachteten Elementen ist noch eine Logik vorgesehen, die einen Überlauf
feststellt, der ein OV-Flipflop 92 setzt. In der Praxis
wird der gerade beschriebene einfache Addierer vorzugsweise
so modifiziert, daß die Übertrags-Weiterleitungszeit vermindert ist; erreicht wird dies durch eine Übertrags-Vorschaulogik,
durch eine Bedingungs-Summenlogik, etc., und zwar gemäß der gewünschten Verarbeitungsleistung. Die
Register sind zweckmäßigerweise durch Steuersignale gleichstromgesteuerte Register. Die Schalter bestehen aus einem
Satz paralleler Verknüpfungsgatterstufen, wie dies in Fig.3
bezüglich der ersten Stufe des ZQ-Schalters 42 dargestellt
ist. Im Hinblick auf die wählbaren Eingangssignale sind
0 9 8 4 7/111:
UND-Gatter bzw. -Glieder 301, 302, 303i 304 vorgesehen;
diese UND-Glieder dienen für die Aufnahme der Eingangssignale von dem Verschiebe-ZS-Schalter 45, dem A-Addierer 38,
dem ZR-Schalter 46 und zur Aufnahme einer Dauer-Null. Die betreffenden Eingangssignale werden durch Zuführung der
entsprechenden Steuersignale ^ZS, j£a, ^ZR und £ö gesteuert.
Die Ausgangssignale der betreffenden UND-Glieder sind über ein NOR-Glied 306 odermäßig zusammengefaßt. Das Ausgangssignal des NOR-Gliedes 306 wird durch das NAND-Glied 307
invertiert.
In Fig. 2 sind die Hauptelemente dargestellt, die ein
Steuerwerk bilden, welches Operationscodes decodiert,
Maschinenzyklen einleitet und beendet und verschiedene Steuersignale erzeugt. Aus dem Befehls-I-Register 78 gemäß
Fig. 1 werden die Operationscodeteile der Befehle, nämlich die Bits 18-26 oder 54-62, selektiv über einen ZOR-Schalter
94 in ein Puffer-B1-Register 46 eingeleitet. Das B1-Register liefert ein Eingangssignal für ein P-Register 97»
welches seinerseits ein Eingangssignal für ein S-Register und ein Decodiernetzwerk 95 liefert. Das BI-Register erzeugt
ferner ein Signal B1-Vo.ll, welches anzeigt, daß das betreffende Register, von dem I-Register her geladen worden
ist. Dadurch wird ein B1-Kennzeichenflipflop 101 gesetzt, wenn dem UND-Glied 101 ein CX-Taktsignal zugeführt wird.
Das Flipflop 101 setzt seinerseits ein P-Kennzeichenflipflop
102, welches das B1-Kennzeichenflipflop zurückstellt und einen vorläufigen Operationszyklus CIN einleitet,
indem es ein GIN-RS-Flipflop 121 setzt. Während dieser Zeitspanne
tritt der eingestellte Befehl auf, und der Inhalt des B1-Registers wird zu dem P-Register hin übertragen. *
209 84 7/1115
Dieses S-Register veranlaßt seinerseits das Setzei* des
S-Kennzeichenflipflops 103, und ferner liefert es das
Eingangssignal für den Betrieb des Decodiernetzwerks 99.
Im allgemeinen werden die Maschinenbetriebszyklen bzw.
Maschinenoperationszyklen durch ein von einem Taktgenerator 100 abgegebenes SG-Taktsignal beschränkt bzw. festgelegt.
Dieser Taktgenerator 100 enthält einen Rückkopplungszweig und ein Verzögerungsglied, wie ein Schieberegister. Durch
Bereitstellung einer variablen Verzögerung kann die Dauer des jeweiligen Maschinenzyklus zur Erzielung einer maximalen
Befehlsausführungsleistüng minimisiert werden.
Während des ersten Maschinenzyklus der Befehlsausführung des Befehls GOS wird der Operand aus dem Akkumulator-AQ-Register
in das Operanden-N-Register geschoben. Das Steuersignal wird für diesen Zyklus von dem im Setzzustand befindlichen
GOS-RS-Flipflop 123 geliefert. Die Logik bzw. Verknüpfungslogik
122 steuert das GOS-Flipflop wie folgt: Setzen GOS = SG · GIN · Setzen GOF
Rückstellen GOS = SG · GOS
Rückstellen GOS = SG · GOS
Nachdem der N-Registeroperand eingestellt ist, wird während
des GOM-Zyklus die eigentliche Rundung vorgenommen. Das Steuersignal für diesen Zyklus wird von dem GOM-MS-Flipflop
125 geliefert, das durch die Logik bzw. Verknüpfungslogik 124 wie folgt gesteuert wird:
Setzen GOM = SG · GOS · FCONV
Rückstellen GOM = SG · GOM . FCONV
Rückstellen GOM = SG · GOM . FCONV
Das FCONV-Signal wird von dem Decodiernetzwerk 99 geliefert.
Das Übertrags-Eingangssignal wird von dem UND-Glied 205
geliefert, wenn das Vorzeichen des Operanden RSOO positiv ist.
209847/1115
Um die größtmögliche Genauigkeit bei dem gerundeten Operanden zu erzielen, ist es wünschenswert, einen Normalisierungszyklus nach dem Runden durch einen GON-»Zyklus
auszuführen. Das Steuersignal für diesen Zyklus wird von dem GON-RS-Flipflop 127 geliefert, das durch die Logik
wie folgt gesteuert wird:
Setzen GON = SG . NRM
Rückstellen GON = SG · GON »LNS
Rückstellen GON = SG · GON »LNS
Das NRM-Signal, das anzeigt, daß eine Normalisierung gefordert
wird, wird auf Grund einer Überprüfung des Vorzeichenbits und des benachbarten Bits in dem in dem N-Register befindlichen
gerundeten Ergebnis geliefert. Sind diese Bits gleich, d.h. liegt entweder die Bitfolge 11 oder die Bitfolge
00 vor, so kann eine Normalisierung (NRM = RNOO Φ RN01)
ausgeführt werden. Die Normalisierung wird solange fortgesetzt, bis sich dieser Zustand ändert. Die Änderung wird
durch Überprüfung der zweiten und dritten Bits (LNS = NRM · (RN01 © RN02)) vorweggenommen. Die für die Normalisierung
erforderliche Zeitspanne ist variabel; sie hängt von der Anzahl der erforderlichen Rechenverschiebungen ab.
Zur Verminderung der für die Normalisierung benötigten Zeitspanne werden vorzugsweise eine Mehrzahl von Bitverschiebeoperationen
angewandt. Derartige Verschiebeoperationen werden durch den ZS-Schalter 45 ausgeführt, der die
Eigenschaft besitzt, Links-Rechenverschiebungen (ohne Beeinflussung des Vorzeichenbits) um 4 und 16 Bitpositionen
vorzunehmen. Außerdem werden die betreffenden Verschiebeoperationen durch eine Logik ausgeführt, die den Operanden
daraufhin überprüft, ob er für vier und sechzehn Bitverschiebungen benutzt werden kann oder nicht. Wenn jedoch
2 0 9 8 A 7 / 1 1
der ursprüngliche Operand vor einer Rundung normalisiert wird, entstehen die Überlegungen bezüglich der Normalisierung
nur dann, wenn das gerundete Ergebnis 1,100 .. Null ist. In diesem Fall ist nur eine einzige Verschiebung
erforderlich.
Während des letzten Maschinenzyklus der Befehlsausführung des Befehls GOF wird der gerundete Operand in dem Speicher
gespeichert oder in das Ausgangsregister zurückgeführt. Das Steuersignal für diesen Zyklus wird durch das im Setzzustand
befindliche GOF-RS-Flipflop 129 geliefert. Die Logik 128 steuert das GOF-Flipflop wie folgt:
Setzen GOF =SG · (GOM ·FCONV . MM + GON · LNS)
Rückstellen GOF = SG „ GOF β
Der in der angegebenen Ausführungsform gerundete Befehl wird wie folgt ausgeführt. Die Ausführung der gleitenden
Speicherung und Rundung erfolgt in fünf aufeinanderfolgenden Schritten nach den einleitenden GIN-Einstell-Zyklen. Die
betreffenden Zyklen werden durch die Steuersignale GOS, GOM, GON und GOF von der Steuerlogik gemäß Fig. 2 her ausgelöst
bzw. freigegeben. Bei auftretendem Steuersignal GIN bewirken die Steuersignale jiOC und SACT die Löschung des ACT-Registers,
Bei vorhandenem GOS-Signal geben die Steuersignale jiAQ, ^ZR
bzw. SNN den ZR-Schalter 46, den ZQ-Schalter 42 und das
N-Register 40 gemäß Fig. 1 frei, um den Inhalt des
AQ-Registers 56 in das N-Register zu übertragen. Ferner bewirken die Signale j^DRD und SH, daß die Rundungskonstante
in das H-Register 36 geladen wird. Bei vorhandenem GOM-Signal
wird der Inhalt des N-Registers dadurch gerundet, daß die Rundungskonstante in dem Η-Register als erster Operand für
den A-Addierer 55 und der Inhalt des N-Registers als zweiter
2 Ü 9 8 Z1 7 / 1 1 1 ;
Operand addiert werden, wobei das Ergebnis in das N-Register zurückgeführt wird. Die Steuersignale ^H,
und ^K72 steuern die Rundungskonstante, die zu speichernde
Zahl und die Übertragseinleitung in den Α-Addierer. Das letzte Eingangssignal ist der Bedingung unterworfen, daß
die zu rundende Zahl nicht negativ ist. Das Ausgangssignal des Α-Addierers wird durch die φΑ~ und SNN-Steuersignale
in das N-Register geleitet. Die Bit-Positionen in dem bei der Rundung verlorengegangenen Teil der Zahl werden durch
das Steuersignal bzw. Tastsignal fiOLT gelöschte Dieses
Steuersignal bewirkt die Einleitung von verdrahteten Null-Zeichen in die acht Bitpositionen niedriger Wertigkeit,
und zwar bis zu der Rundungsstelle. Wenn ein Addiererüberlauf auftritt, wird ein OV-Flipflop gesetzt.
Bei vorhandenem Steuersignal GON wird eine Exponentenkorrektur und/oder eine Mantissennormalisierung vorgenommen.
Ist keiner dieser Vorgänge erforderlich, so wird dieser Schritt unterdrückt. Wenn das OV-Flipflop gesetzt
ist, wird der jeweilige Inhalt des N-Registers mittels des ZS-Schalters 43 durchgeschaltet und um eine Bitposition
nach rechts verschoben. Dies erfolgt mit Hilfe des Steuerbzw.
Tastsignals j£SR1. Die Vorzeichenstelle wird dabei mit
dem Komplement des vorhergehenden Vorzeichenbits gefüllt. Das verschobene Ergebnis wird dann durch die Steuersignale
j£ZS und SNN in das N-Register zurückgeleitet. Der Gleitkomma-Exponent
wird durch Hinzuaddieren einer 1 zu dem Inhalt des ACT-Registers 28 aktualisiert. Die Steuer- bzw. Tastsignale
^ZF, ^0F und ^CRRY8 bewirken die Abgabe einer 0 und
eines Übertragseingangssignals in den E-Addierer 34. Das Ausgangssignal des E-Addierers wird durch die Tastsignale
und SACT in das ACT-Register 28 geleitet.
209847/1 1 15
Der Abschlußschritt führt bei vorhandenem Signal GOF dazu,
daß die ersten 64 Bits des N-Registers in den Speicher 10 · übertragen werden, und zwar über die letzten 64 Bits des
ZO-Schalters unter der Steuerung seitens des Signals ^FLA*
Gleichzeitig wird die Summe des E-Registers 30 und de s ACT-Registers 28 mit Hilfe der Steuersignale #3, ff ACT,
j^FLA in die ersten acht Bits des ZO-Schalters 32 geführt,
bis die Mantisse Null ist. In diesem Fall wird die Konstante -128 als Exponent benutzt.
Die Ausführung einer Gleitkomma-Speicheroperation für eine Zahl einfacher Genauigkeit (Einzelwort) bzw. für eine Zahl
einfacher Länge ist im wesentlichen die gleiche wie die für die oben beschriebene Speicheroperation doppelter Genauigkeit
bzw, für eine Zahl doppelter Länge. Die Unterschiede bestehen zum einen darin, daß eine andere Rundungskonstante
benutzt wird, und daß zum anderen der Operandenspeicherteil der Operation an das Einzelwort-Speicherformat angepaßt ist.
Bei der verwendeten Rundungskonstante handelt es sich um die erweiterte Rundungskonstante doppelter Genauigkeit bzw. Länge.
Dies heißt, daß 43 1-Zeichen rechtsbündig mit 29 vorangehenden Null-Zeichen zur Verfügung stehen, indem die Signale ^SRD
und j&DRD während des Auftretens des GOS-Signals dem ZQ-Schalter
zugeführt werden. Die Mantisse ist durch die während des Vorhandenseins des GOM-Signals dem ZQ-Schalter zugeführten
Schaltsignate jfoL, jiOLT und ^OUT gekürzt.
Die Gleitkomma-Operation kann zweckmäßigerweise modifiziert werden, um eine Rundung des Akkumulatorregisterinhalts
vorzunehmen. Obwohl diese Funktion in den meisten Fällen unerwünscht ist, da es zu einem Informationsverlust infolge
der gekürzten Bits führt, ermöglicht dies jedoch einen
209847/11-15
Vergleich des Akkumulatorregisterinhalts mit einer in dem Speicher befindlichen Zahl auf der Basis desselben
Datentyps. Sofern erwünscht, kann der Inhalt des Akkumulators in dem Speicher festgehalten werden. Demgemäß werden
Operationen für eine gleitende Rundung und eine doppelte gleitende Rundung bezüglich des Akkumulatorregisters ausgeführt.
Diese Operationen werden durch geringfügige Modifikationen der gleitenden Speicherrundungsoperationen
ausgeführt.
Die erforderlichen Modifikationen treten dabei lediglich in der letzten Stufe GOF auf. Anstatt den gerundeten
Operanden in den Speicher zu leiten, wird der gerundete Operand dem Akkumulator-AQ-Register 56 zugeleitet, von
welchem er herstammt.
Im Vorstehenden ist zwar eine besondere Ausführungsform der Erfindung erläutert worden; es dürfte jedoch einzusehen
sein, daß die Erfindung darauf nicht beschränkt ist. Vielmehr kann die Erfindung generell bei Digitalrechnern
angewandt werden, die Zweierkomplement-Zahlen verarbeiten und bei denen es erforderlich ist, eine Zahlendarstellung
in eine Darstellung mit η Bits weniger umzusetzen. Wenn z.B. in einem digitalen Allzweckrechner ein in Zweierkomplementdarstellung
vorliegendes ganzzahliges Doppelwort in ein Einzelwort mit η Bits umzusetzen ist, so ist die Erfindung
direkt anwendbar, indem eine Rundungskonstante von 2n -1
benutzt wird.
2 f · 9 H U
Claims (6)
- PatentansprücheAnordnung zur Auf- bzw. Abrundung von Zweierkomplement-Zahlen auf Zahlen, die η Bits weniger aufweisen, in einem binären Rechner, dadurch gekennzeichnet.a) daß ein Addierer (38) vorgesehen ist, der die Binärsumme zweier Operanden zu liefern vermag,b) daß Rundungseinrichtungen (36) vorgesehen sind, die eine Rundungszahl 2-1 an den Addierer (38) als ersten Operanden für eine zu rundende negative Zahl abgeben,c) daß die Rundungseinrichtungen (36) eine Rundungszahl 2n an den Addierer (38) als ersten Operanden für eine zu rundende positive Zahl abgeben undd) daß Einrichtungen (40) vorgesehen sind, die eine Zweierkomplement-Binärzahl an den Addierer (38) als zweiten Operanden abgeben.
- 2. Anordnung zur Auf- bzw. Abrundung von Zweierkomplementzahlen SUf Zahlen, die η Bits weniger aufweisen, in einem binären Rechner, dadurch gekennzeichnet,a) daß ein Addierer (38) vorgesehen ist, der die Binärsumme zweier Operanden zu erzeugen vermag,b) daß Rundungseinrichtungen (36) vorgesehen sind, die eine Rundungszahl 2n -1 an den Addierer (38) als ersten Operanden liefern,c) daß Einrichtungen (40) vorgesehen sind, die eine Zweierkomplement-Binärzahl an den Addierer (38) als zweiten Operanden abgeben, undd) daß Korrektureinrichtungen (205) vorgesehen sind, die ein Übertragseingangssignal an den Addierer (38) in dem Fall abgeben, daß in der Vorzeichenstelle der dem Addierer (38) zugeführten Zweierkomplement-Binärzahl eine Null enthalten ist.209847/111 :
- 3. Anordnung nach Anspruch 2, dadurch gekennzeichnet,a) daß ein Register (40) vorgesehen ist, daß eine dem Addierer (38) als zweiter Operand zuzuführende Binärzahl zu speichern vermag,b) daß das betreffende Register (40) mit dem Addierer (38) über eine Operandenschalteinrichtung (41) verbunden ist, zu der eine Einrichtung zur Abgabe einer Zweierkomplement-Binärzahl an den Addierer (38) gehört,c) daß eine Register-Eingangsschalteinrichtung (42) vorgesehen ist, die selektiv die zu rundende'Zweierkomplement-Binärzahl oder das Addiererausgangssignal dem Register (40) zuzuführen vermag, undd) daß Einrichtungen vorgesehen sind, die den Ausgang des Addierers (38) mit der Register-Eingangsschalteinrichtung (42) verbinden,
- 4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß mit der Register-Eingangsschalteinrichtung ein Akkumulatorregister (56) verbunden ist, das die jeweils zu rundende Zweierkomplement-Binärzahl liefert, und daß eine Akkumulatorregister-Schalteinrichtung (48) das Akkumulatorregister (56) mit dem Addierer (38) derart verbindet, daß der Inhalt des Akkumulatorregisters (56) selektiv gerundet und in das Akkumulatorregister (56) zurückgeführt wird.
- 5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß zwischen dem den zweiten Operanden speichernden Register (40) und der Operandenschalteinrichtung (42) eine Verschiebeschalteinrichtung (45) zur Normalisierung des Operanden vorgesehen ist und daß Steuereinrichtungen (41)209847/11 T5vorgesehen sind, die durch das Operandenregister (40) gesteuert einen in dem betreffenden Operandenregister (40) enthaltenen gerundeten Operanden über die Verschiebeschalteinrichtung (45) und die Operandensehalteinrichtung (42) wieder in das Operandenregister (40) zurückleiten, bis der Operand normalisiert ist.
- 6. Anordnung zur Auf- bzw. Abrundung von in Zweierkomplement-Darstellung vorliegenden Gleitkommazahlen auf Zahlen, die η Bits weniger umfassen, in einem binären Rechner, insbesondere nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet,a) daß ein Addierer (38) vorgesehen ist, der die Binärsumme zweier Operanden zu liefern vermag,b) daß ein Akkumulatorregister (56) vorgesehen ist, welches das Ausgangssignal des Addierers (38) speichert,c) daß ein erstes Operandenregister (36) und ein zweites Operandenregister (40) zur Speicherung von Operanden vorgesehen sind,d) daß die betreffenden Operandenregister (36,40) jeweils über eine gesonderte Operandenregister-Schalteinrichtung (37,41) mit dem Addierer (38) verbunden sind,e) daß ein Ausgäbeschalter vorgesehen ist, der Datenwörter in einem Hauptspeicher (10) zu speichern gestattet,f) daß eine Akkumulatorregister-Eingangsschalteinrichtung (55) vorgesehen ist, die selektiv den Addierer (38) mit dem Akkumulatorregister (56) und dem Ausgabeschalter zu verbinden gestattet,g) daß eine Akkumulatorregister-Ausgabeschalteinrichtung (46) vorgesehen ist, die selektiv das Akkumulator-0 9 8 4 7/111 bregister (56) mit dem zweiten Operandenregister (40) verbindet,h) daß mit der mit dem ersten Operandenregister (36) verbundenen Operandenschalteinrichtung (37) ein Rundungskonstanten-Generator verbunden ist, der den Wert 2n -1 als ersten Operand für den Addierer (38) abgibt, undi) daß Einrichtungen (205) vorgesehen sind, die ein Übertragseingangssignal an den Addierer (38) in dem Fall abgeben, daß in dem zweiten Operandenregister (40) ein positives Vorzeichenbit enthalten ist.209847/ 1 1
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14043771A | 1971-05-05 | 1971-05-05 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2222197A1 true DE2222197A1 (de) | 1972-11-16 |
DE2222197B2 DE2222197B2 (de) | 1978-11-09 |
DE2222197C3 DE2222197C3 (de) | 1979-07-19 |
Family
ID=22491208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2222197A Expired DE2222197C3 (de) | 1971-05-05 | 1972-05-05 | Anordnung zum Auf- bzw. Abrunden von Binärzahlen |
Country Status (8)
Country | Link |
---|---|
US (1) | US3699326A (de) |
JP (1) | JPS5838811B2 (de) |
AU (1) | AU458485B2 (de) |
CA (1) | CA957079A (de) |
DE (1) | DE2222197C3 (de) |
FR (1) | FR2135622B1 (de) |
GB (1) | GB1391841A (de) |
IT (1) | IT950970B (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3891837A (en) * | 1972-07-03 | 1975-06-24 | Drew E Sunstein | Digital linearity and bias error compensating by adding an extra bit |
US3816734A (en) * | 1973-03-12 | 1974-06-11 | Bell Telephone Labor Inc | Apparatus and method for 2{40 s complement subtraction |
US3842250A (en) * | 1973-08-29 | 1974-10-15 | Sperry Rand Corp | Circuit for implementing rounding in add/subtract logic networks |
US3982112A (en) * | 1974-12-23 | 1976-09-21 | General Electric Company | Recursive numerical processor |
FR2448188A1 (fr) * | 1979-02-02 | 1980-08-29 | Anvar | Procede et ensemble de calcul, aleatoirement par exces ou par defaut, pour fournir des resultats de calcul avec le nombre de chiffres significatifs exacts |
US4282582A (en) * | 1979-06-04 | 1981-08-04 | Sperry Rand Corporation | Floating point processor architecture which performs subtraction with reduced number of guard bits |
US4295203A (en) * | 1979-11-09 | 1981-10-13 | Honeywell Information Systems Inc. | Automatic rounding of floating point operands |
JPS5776635A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Floating multiplying circuit |
AU549632B2 (en) * | 1981-04-23 | 1986-02-06 | Data General Corporation | Floating point notation |
US4442498A (en) * | 1981-04-23 | 1984-04-10 | Josh Rosen | Arithmetic unit for use in data processing systems |
JPS57197650A (en) * | 1981-05-29 | 1982-12-03 | Toshiba Corp | Operation circuit |
DE3144015A1 (de) * | 1981-11-05 | 1983-05-26 | Ulrich Prof. Dr. 7500 Karlsruhe Kulisch | "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit" |
JPS5949640A (ja) * | 1982-09-16 | 1984-03-22 | Toshiba Corp | 乗算回路 |
JPS5965540U (ja) * | 1982-10-25 | 1984-05-01 | 富士電機株式会社 | インバ−タ装置 |
US4589084A (en) * | 1983-05-16 | 1986-05-13 | Rca Corporation | Apparatus for symmetrically truncating two's complement binary signals as for use with interleaved quadrature signals |
US5493343A (en) * | 1994-12-28 | 1996-02-20 | Thomson Consumer Electronics, Inc. | Compensation for truncation error in a digital video signal decoder |
JP4847385B2 (ja) | 2007-03-30 | 2011-12-28 | 株式会社テイエルブイ | 液体圧送装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3290493A (en) * | 1965-04-01 | 1966-12-06 | North American Aviation Inc | Truncated parallel multiplication |
US3509330A (en) * | 1966-11-25 | 1970-04-28 | William G Batte | Binary accumulator with roundoff |
-
1971
- 1971-05-05 US US140437A patent/US3699326A/en not_active Expired - Lifetime
-
1972
- 1972-03-31 IT IT22686/72A patent/IT950970B/it active
- 1972-04-04 GB GB1551472A patent/GB1391841A/en not_active Expired
- 1972-04-26 CA CA140,665A patent/CA957079A/en not_active Expired
- 1972-04-27 AU AU41600/72A patent/AU458485B2/en not_active Expired
- 1972-05-01 JP JP47042677A patent/JPS5838811B2/ja not_active Expired
- 1972-05-04 FR FR727215873A patent/FR2135622B1/fr not_active Expired
- 1972-05-05 DE DE2222197A patent/DE2222197C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
AU4160072A (en) | 1973-11-01 |
DE2222197C3 (de) | 1979-07-19 |
FR2135622B1 (de) | 1973-07-13 |
IT950970B (it) | 1973-06-20 |
US3699326A (en) | 1972-10-17 |
JPS5838811B2 (ja) | 1983-08-25 |
FR2135622A1 (de) | 1972-12-22 |
CA957079A (en) | 1974-10-29 |
JPS4827648A (de) | 1973-04-12 |
AU458485B2 (en) | 1975-02-27 |
DE2222197B2 (de) | 1978-11-09 |
GB1391841A (en) | 1975-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2755273C2 (de) | ||
DE2222197A1 (de) | Anordnung zur Auf- bzw. Abrundung von Zweierkomplement-Zahlen | |
DE2724125C2 (de) | ||
DE3144015C2 (de) | ||
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE2900324A1 (de) | Mikroprogrammierbare arithmetische fliesskommaeinheit | |
DE2753062A1 (de) | Einrichtung zur durchfuehrung programmierter befehle | |
DE1178623B (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE1162111B (de) | Gleitkomma-Recheneinrichtung | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE1809219A1 (de) | Binaeres Vielfach-Addierwerk zur gleichzeitigen Addition mehrerer binaerer Zahlen | |
DE3852196T2 (de) | Gruppenbezogenes Adressierungssystem. | |
DE2830334C2 (de) | ||
DE2310553A1 (de) | Vorrichtung zur durchfuehrung arithmetischer und logischer operationen | |
DE2826773A1 (de) | Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern | |
EP0265555B1 (de) | Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen | |
DE2746355A1 (de) | Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden | |
DE2440390C3 (de) | ||
DE1193279B (de) | Elektronen-Ziffernrechner mit eingespeichertem Programm | |
DE1184122B (de) | Addiervorrichtung | |
DE1223177B (de) | Elektronischer Digitalrechner mit Schaltung fuer die Errechnung der Quadratwurzel aus einer Binaerzahl | |
DE2952163A1 (de) | Dv-anlage mit zwei datenprozessoren | |
DE1283895B (de) | Codeumsetzer zum Umsetzen eines beliebigen Eingangscode in einen beliebigen Ausgangscode | |
DE2523755A1 (de) | Divisionsverarbeitungssystem mit 2n-facher genauigkeit | |
DE2220329B2 (de) | Schaltungsanordnung zum Umsetzen einer in Gleitkomma-Darstellung ausgedrückten Zahl in eine Festkomma-Darstellung bei elektronischen Rechnern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
8339 | Ceased/non-payment of the annual fee |