Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DIGITAL SIGNAL PROCESSING DEVICE
Document Type and Number:
WIPO Patent Application WO/2005/024542
Kind Code:
A2
Abstract:
The invention relates to a digital signal processing device comprising: input storage means (3; 5); a computational device (4) that is connected to said means, defines a data path (9) and contains at least one arithmetic unit (6) in addition to a control input (2a) for specifying calculation operations; and output storage means (8). The data path (9) between the arithmetic unit (6; 7) and the output storage means (8) is equipped with a number-format conversion unit (10) comprising a shift unit (17). A number-format specification unit (11) and a control unit (17'), which is connected to the latter and calculates required shift operations on the basis of the number-format specification, are assigned to the number-format conversion unit (10). Formatting operations are calculated automatically using input and output format information and corresponding commands are applied to the shift unit (17).

Inventors:
HAHN ALOIS (AT)
VACLAVIK PREMYSL (AT)
KROTTENDORFER HEINZ GERALD (AT)
TIRINGER CHRISTIAN (AT)
Application Number:
PCT/AT2004/000305
Publication Date:
March 17, 2005
Filing Date:
September 07, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ON DEMAND MICROELECTRONICS GMB (AT)
HAHN ALOIS (AT)
VACLAVIK PREMYSL (AT)
KROTTENDORFER HEINZ GERALD (AT)
TIRINGER CHRISTIAN (AT)
International Classes:
G06F5/01; G06F7/57; H03M7/24; G06F7/544; (IPC1-7): G06F/
Foreign References:
US5764549A1998-06-09
US6564238B12003-05-13
US6535900B12003-03-18
US5144572A1992-09-01
US20010039557A12001-11-08
US5666300A1997-09-09
US5907498A1999-05-25
Other References:
SEEHYUN KIM ET AL: "Fixed-point optimization utility for C and C++ based digital signal processing programs" VLSI SIGNAL PROCESSING, VIII, 1995. IEEE SIGNAL PROCESSING SOCIETY YWORKSHOP ON SAKAI, JAPAN 16-18 SEPT. 1995, NEW YORK, NY, USA,IEEE, US, 16. September 1995 (1995-09-16), Seiten 197-206, XP010193918 ISBN: 0-7803-2612-1
Attorney, Agent or Firm:
SONN & PARTNER (Wien, AT)
Download PDF:
Claims:
Patentansprüche :
1. Digitale Signalverarbeitungseinrichtung mit EingangsSpei chermitteln (3 ; 5), mit einem daran angeschlossenen Rechenwerk (4), das einen Datenpfad (9) definiert und zumindest eine arith metische Einheit (6) enthält sowie einen Steuereingang (2a) zur Vorgabe von Rechenoperationen aufweist, sowie mit AusgangsSpei chermitteln (8), wobei im Datenpfad (9) zwischen der arithme tischen Einheit (6 ; 7) und den AusgangsSpeichermitteln (8) eine ZahlenformatUmwandlungseinheit (10) mit einer Verschiebeeinheit (17) enthalten ist, dadurch gekennzeichnet, dass der Zahlen formatUmwandlungseinheit (10) eine ZahlenformatVorgabeeinheit (11) sowie eine damit verbundene, auf Basis der Zahlenformat Vorgabe erforderliche Verschiebeoperationen berechnende Steuereinheit (17') zugeordnet sind, wobei Formatierungsopera tionen automatisch aus Eingangsund AusgangsformatInforma tionen errechnet und entsprechende Befehle an die Verschiebeeinheit (17) angelegt werden.
2. Digitale Signalverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Steuereinheit (17') durch einen Subtrahierer gebildet ist.
3. Digitale Signalverarbeitungseinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Steuereinheit (17') in die Verschiebeeinheit (17) integriert ist.
4. Digitale Signalverarbeitungseinrichtung nach einem der An sprüche 1 bis 3, dadurch gekennzeichnet, dass die Zahlenformat Vorgabeeinheit (11) in Form eines Registers ausgebildet ist.
5. Digitale Signalverarbeitungseinrichtung nach einem der An sprüche 1 bis 4, dadurch gekennzeichnet, dass die Zahlenformat Umwandlungseinheit (10) eine die Breite einer Eingangszahl (SRC) erweiternde Erweiterungseinheit (16) aufweist, wobei die mit dieser Erweiterungseinheit (16) verbundene Verschiebeeinheit (17) die Bits der erweiterten Eingangszahl um einen vorgegebenen Betrag verschiebt.
6. Digitale Signalverarbeitungseinrichtung nach einem der An sprüche 1 bis 5, dadurch gekennzeichnet, dass an die Verschiebe einheit (17) eine Teilfeldeinheit (19) angeschlossen ist.
7. Digitale Signalverarbeitungseinrichtung nach Anspruch 6, da durch gekennzeichnet, dass die Teilfeldeinheit (19) ein Vorzei chenfeld (19SIGN) aufweist, an das eine Logikeinheit (20) angeschlossen ist, die erkennt, ob das Vorzeichenfeld (19SIGN) nur"0" (Nullen) oder nur"1" (Einsen) enthält, oder ob ver schiedene VorzeichenBitpositionen vorliegen, wobei der Zustand "nur Nullen"einem Überlauf (OFL) und der Zustand"nur Einsen" einer Unterschreitung (UFL) entspricht.
8. Digitale Signalverarbeitungseinrichtung nach Anspruch 7, da durch gekennzeichnet, dass die Logikeinheit (20) ein ODERGatter (21) zum Erkennen des Zustandes"nur Nullen"und ein UNDGatter (22) zum Erkennen des Zustandes"nur Einsen"aufweist.
9. Digitale Signalverarbeitungseinrichtung nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass an die Logikeinheit (20) sowie an die Teilfeldeinheit (19) eine Saturierungseinheit (24) ange schlossen ist, die bei einem Überlauf (OFL) die von der Teil feldeinheit (19) abgegebene Zahl auf die größte positive Zahl und bei einer Unterschreitung (UFL) auf die größte negative Zahl setzt.
10. Digitale Signalverarbeitungseinrichtung nach einem der An sprüche 7 bis 9, dadurch gekennzeichnet, dass die Zahlenformat Umwandlungseinheit (10) mit einer Rundungseinheit (15) kom biniert ist, die einen Addierer (25) enthält, der über eine Lo gikeinheit (26) an die Teilfeldeinheit (19) angeschlossen ist.
11. Digitale Signalverarbeitungseinrichtung nach Anspruch 10 und Anspruch 9, dadurch gekennzeichnet, dass an die Rundungseinheit (15) und an die Saturierungseinheit (24) eine weitere Satu rierungseinheit (29) angeschlossen ist, die bei einem auf ein Aufrunden erfolgenden Überlauf die Ergebniszahl auf die größte positive Zahl setzt und zugleich ein ÜberlaufSignal (OFL) ab gibt.
Description:
Digitale Signalverarbeitungseinrichtung Die Erfindung betrifft eine digitale Signalverarbeitungseinrich- tung, insbesondere eine digitale Recheneinrichtung, gemäß dem einleitenden Teil von Anspruch 1.

In der digitalen Signalverarbeitung werden digitale Signale durch Anwendung verschiedenster Algorithmen digital behandelt, wobei die digitalen Signale beispielsweise aus ursprünglich ana- logen Signalen durch Abtastung hergeleitet werden. Die Signal- verarbeitung kann in Form von Berechnungen entsprechend nach- richtentechnischen Algorithmen erfolgen, um beispielsweise ein Bandpassfilter oder dgl. zu realisieren. Für eine solche digi- tale Signalverarbeitung werden die digitalen Signalwerte in Speichermitteln in binärer Form gespeichert, wobei die Werte zu- meist in einer 2er-Komplement-Darstellung als ganze Zahl oder aber als Fixkomma-Zahl (Fixed-Point Format) gespeichert werden.

Bei bestimmten Anwendungen kann auch auf die aufwendigere Gleit- komma-Darstellung (Floating-Point Format) zurückgegriffen werden.

Zur Durchführung der digitalen Signalverarbeitung werden zumeist digitale Signalprozessoren (DSP) eingesetzt, bei Anwendungen mit sehr hohen Durchsatzraten, wie beispielsweise im Zuge einer Bildkompression oder in der DSL (digital subscriber line)- Technik, werden auch speziell zugeschnittene Rechenwerke einge- setzt, die wesentlich höhere Rechengeschwindigkeiten erlauben.

Im Zuge der Signalverarbeitung wird häufig eine Formatumwandlung benötigt, d. h. die Zahlendarstellung muss im Hinblick auf die gewünschte Genauigkeit verändert werden. Typisch ist es hierbei, dass für eine höhere Genauigkeit die Anzahl der verwendeten Bits, also die Bitbreite der Datenwörter, vergrößert wird, wobei nachfolgend auch wieder eine Verkleinerung erforderlich ist, und überdies muss bei diesen Format-Änderungen auch die Lage des De- zimalpunktes angepasst werden. Bei diesen Formatumwandlungen und Dezimalpunktanpassungen ergeben sich naturgemäß numerische Feh- ler, welche sich in der Folge auf die Genauigkeit des Ergeb- nisses und somit auf die Qualität des Ausgangssignals auswirken ; die Reduktion der Qualität des Ausgangssignals kann sich bei- spielsweise bei nachrichtentechnischen Anwendungen als Signal- rauschen (signal noise) äußern, und es kann z. B. im Fall der Realisierung von integrierenden Filtern ein Totalausfall dieser Filter verursacht werden.

Die exakte Format-Umwandlung sowie gegebenenfalls auch ein si- gnaltechnisch richtiges Runden sind demgemäß im Zuge einer sol- chen digitalen Signalverarbeitung sehr kritische Aspekte, wobei diese Manipulationen überdies in den üblichen praktischen Anwendungen ergänzend zu den eigentlichen mathematischen Berech- nungen, wie Multiplizieren oder Addieren, häufig vorkommen. Eine derartige Format-Umwandlung hat demgemäß auch wesentliche Aus- wirkungen auf die erzielbaren Verarbeitungsgeschwindigkeiten, d. h. auf die jeweils erzielbare Taktfrequenz, wodurch in der Folge auch die technische und wirtschaftliche Realisierbarkeit bestimmt wird.

Bei den derzeit verwendeten bzw. bekannten Signalprozessoren werden Format-Anpassungen und Rundungen programmtechnisch mit Hilfe einer Reihe von einzelnen Befehlen vorgenommen, wobei für die Durchführung dieser Befehle mehrere Taktzyklen benötigt werden ; in manchen Fällen kann dann die hierfür benötigte Anzahl von Taktzyklen größer sein als die Anzahl von Taktzyklen für die eigentliche algorithmische Signalverarbeitung oder-berechnung, was natürlich besonders nachteilig ist.

Aus US 4 041 461 A, US 4 876 660 A und US 5 844 827 A sind Pro- zessoreinrichtungen bekannt, bei denen im Zuge von Signalver- arbeitungsvorgängen auch Umformatierungen vorgenommen werden.

Allerdings ist bei den bekannten Techniken die Information für eine Umformatierung im Vorhinein auf Grund einer entsprechenden Programmierung über einen Steuerprozessor konkret vorgegeben und in einem Register abgelegt, d. h. es sind hier die jeweiligen Verschiebeoperationen im Einzelnen durch Programmierung vorzu- geben, wobei ein Übergehen auf andere Zahlenformate entspre- chende neue Programmierungseingaben erfordert. Diese bekannten Techniken sind somit hinsichtlich Format-Änderungen starr und unhandlich.

Es ist nun Aufgabe der Erfindung, eine besonders effiziente Ver- arbeitung von digitalen Signalen unter Anwendung von flexiblen Zahlenformat-Umwandlungen und gegebenenfalls Rundungs-Opera- tionen zu ermöglichen, wobei insbesondere eine beliebig vorgeb- bare Format-Umwandlung innerhalb eines einzigen Taktzyklus ermöglicht werden soll, und zwar auch in demselben Schritt wie die eigentlichen mathematischen Operationen.

Zur Lösung dieser Aufgabe sieht die Erfindung eine digitale Si- gnalverarbeitungseinrichtung mit den Merkmalen des Anspruches 1 vor. Besonders vorteilhafte Ausführungsformen und Weiterbil- dungen sind in den Unteransprüchen definiert.

Gemäß der Erfindung wird somit entsprechend einem besonders be- vorzugten Aspekt eine spezielle Format-Umwandlungseinheit, be- vorzugt mit einer Rundungseinheit, direkt in den Datenpfad des Rechenwerkes integriert. Die etwaigen Format-Umwandlungen sowie gegebenenfalls Rundungs-Operationen werden damit unmittelbarer Bestandteil eines jeden Signalverarbeitungs-Befehles, so dass in der Regel kein eigener Taktzyklus benötigt wird. Ein weiterer Vorteil liegt darin, dass die Programmerstellung wesentlich ver- einfacht wird, da dem Programmierer die Probleme im Zusammenhang mit der Format-Umwandlung automatisch abgenommen werden. Die Zahlenformat-Umwandlungseinheit, gegebenenfalls mit der in- tegrierten Rundungseinheit, braucht nicht auf ein vorab bestimm- tes Format ausgelegt werden, es ist vielmehr mit besonderem Vorteil eine Format-Vorgabe oder-Einstellung möglich, wozu be- vorzugt als Format-Vorgabeeinheit ein Format-Register vorgesehen wird. Dieses Format-Register wird je nach Bedarf einmal geladen und bestimmt danach aufgrund seines Inhalts die Format-Umwand- lungen und Rundungen und somit die exakte Funktionsweise dieser Einheiten. Insbesondere enthält das Format-Register Felder zu Festlegung des Datenformats, wie die Anzahl der Stellen insge- samt und die Anzahl der Stellen nach dem Komma, und zwar für das Ausgangsformat ebenso wie für das Zielformat.

Weiters kann in die Zahlenformat-Umwandlungseinheit auch eine Saturierungsfunktion (auch Clipping-Funktion genannt) integriert werden, um das Überlaufen eines Signalwertes bei Überschreitung des Maximalwertes in das verkehrte Vorzeichen zu verhindern.

Durch Integration einer derartigen Saturierungsfunktion, d. h.

Einbau einer Saturierungseinheit in der Format-Umwandlungs- einheit, wird ebenfalls erreicht, dass kein zusätzlicher Taktzy- klus erforderlich ist, und es werden wie erwähnt Fehler, die unter Umständen im Zusammenhang mit der Format-Umwandlung und Rundungsfunktion entstehen könnten, durch diese Saturierungs- funktion verhindert. Eine vergleichbare Saturierungsfunktion wird bevorzugt auch der Rundungseinheit zugeordnet, um so einen etwaigen Überlauf bei einem Aufrunden zu erkennen und das kor- rekte Ergebnis zu liefern.

Die Erfindung wird nachfolgend anhand von bevorzugten Ausfüh- rungsbeispielen, auf die sie jedoch nicht beschränkt sein soll, noch weiter erläutert. Im Einzelnen zeigen in der Zeichnung : Fig. 1 ein Blockschaltbild eines an sich bekannten Signalpro- zessors ; Fig. 2 ein schematisches Blockschaltbild eines Rechenwerks eines solchen Prozessors, und zwar mit einer Zahlenformat-Umwandlungs- einheit gemäß der Erfindung, der eine Format-Vorgabeeinheit zugeordnet ist ; Fig. 3 ein solches Rechenwerk mit Zahlenformat-Umwandlungs- einheit mehr im Detail ; Fig. 4 schematisch ein Format eines Format-Registers als Format- Vorgabeeinheit ; Fig. 5 in zwei zusammengehörigen Teilfiguren 5A und 5B einen de- taillierten Aufbau der Zahlenformat-Umwandlungseinheit samt Rundungseinheit und Saturierungseinheit ; Fig. 6 beispielhaft eine Tabelle mit Vorzeichen-behafteten posi- tiven und negativen 4 Bit-Binärzahlen, mit einem Wertebereich von-8 bis +7 ; Fig. 7 eine vergleichbare Tabelle mit 4 Bit-Binärzahlen, die je- weils zwei Stellen vor dem Komma und zwei Stellen nach dem Komma haben, wobei sich die Werte von-2 bis +1,75 erstrecken ; Fig. 8 schematisch in Zuordnung zur Anordnung von Fig. 5 ein Beispiel für eine Zahlenformat-Umwandlung mit Rundung und Satu- rierung, mit einem Überlauf ; und Fig. 9 ein vergleichbares Beispiel für eine Zahlenformat-Umwand- lung mit Rundung und Saturierung, nun jedoch mit einer Un- terschreitung (Unterlauf).

In Fig. 1 ist schematisch in einem Blockschaltbild der an sich bekannte Aufbau eines Prozessors dargestellt, wobei ein Pro- grammspeicher 1 vorgesehen ist, an den eine Programmsteuerung 2 angeschlossen ist, um ein die zu verarbeitenden Daten von einem Datenspeicher 3 erhaltendes Rechenwerk 4 entsprechend anzu- steuern. Bekannt für den Aufbau derartiger Rechenwerke 4 sind die Harvard-Architektur, wie gezeigt, oder auch die Von Neumann- Architektur, wobei hier im Weiteren von einem Rechenwerk 4 mit Harvard-Architektur ausgegangen wird, auch wenn dies selbstver- ständlich nicht einschränkend zu sehen ist. Das Rechenwerk 4 enthält dabei, wie nachfolgend beispielsweise anhand Fig. 3 noch näher erläutert werden wird, ganz allgemein eine arithmetische Einheit (ARU-arithmetic unit), und es definiert einen Daten- pfad.

In einem solchen digitalen Signalprozessor wird jede Programm- instruktion in drei Phasen ausgeführt, wobei die Steuerung des Ablaufes mit Hilfe der Programmsteuerung 2 erfolgt. In der ersten Phase, der so genannten"Fetch"-Phase (Fetch-Befehls- Aufruf), wird ein Befehlswort aus dem Programmspeicher ausge- lesen und der Programmsteuerung 2 zugeführt, wie in Fig. 1 mit dem Bezugszeichen la veranschaulicht ist. In der danach folgenden"Decode"(Dekodier)-Phase wird dieses Befehlswort deko- diert und in einzelne Mikrooperationen aufgespalten, mit denen das Rechenwerk 4 angesteuert wird. Dies ist in Fig. 1 mit der Verbindung 2a zwischen der Programmsteuerung 2 und dem Rechen- werk 4 angedeutet. In der dritten Phase, der"Execute" (Exeku- tier) -Phase, wird die Instruktion abgearbeitet, und demgemäß werden in dieser Phase die Mikrooperationen in Form von Steuer- signalen über die Verbindung 2a und das Rechenwerk 4 zur tat- sächlichen Ausführung weitergegeben, wobei zusätzlich über die Datenverbindung 3a Daten aus dem Datenspeicher 3 in das Rechen- werk 4 geladen werden ; im Rechenwerk 4 erfolgt die rechnerische Verarbeitung dieser Daten und die Zwischenspeicherung in Regis- tern. Nach dieser Bearbeitung werden die erhaltenen Daten bei- spielsweise über eine Verbindung 4a wieder im Datenspeicher 3 abgespeichert. Insofern bildet der Datenspeicher 3 beispiels- weise Eingangs-Speichermittel und zugleich Ausgangs-Speicher- mittel für das Rechenwerk 4.

In Fig. 2 ist etwas mehr im Detail in einem Blockschaltbild der Aufbau eines Rechenwerks 4 gezeigt, wobei miteinander zu ver- knüpfende Daten A, B beispielsweise Eingangsregistern 5A, 5B zugeführt werden (z. B. aus dem Datenspeicher 3 gemäß Fig. 1), die als Eingangs-Speichermittel 5 angesehen werden können, wo- nach die Daten bei Abarbeiten der erwähnten Mikrooperationen in die arithmetische Einheit gelangen, wobei hier beispielsweise eine Multiplizierer-Einheit 6 in Serie mit einer Addierer- Einheit 7 vorgesehen ist. Das Ergebnis dieser Rechenoperationen wird normalerweise Ausgangs-Speichermitteln, hier schematisch durch ein Ergebnis-Register 8 veranschaulicht, zugeführt, wobei das Ergebnis mit"Y"angedeutet ist. Die einzelnen Komponenten 5A, 5B bis 8 definieren dabei einen Datenpfad 9, und in diesem Datenpfad 9 ist unmittelbar auch eine Zahlenformat-Umwandlungs- einheit 10 angeordnet, die zugleich eine Rundungseinheit ent- hält, wie nachstehend noch näher erläutert werden wird. Diese Zahlenformat-Umwandlungseinheit 10, nachstehend kurz Umwand- lungseinheit oder auch Anpassungseinheit genannt, kann dabei die zugeführten Daten in ein vorgegebenes Zahlenformat umwandeln, wobei, wie in Fig. 2 gezeigt, eine Format-Vorgabeeinheit 11 vorgesehen ist, die insbesondere in Form eines Format-Registers ausgeführt ist, und deren Ausgang mit der Umwandlungseinheit 10 verbunden ist, wie in Fig. 2 mit der Verbindung lla angedeutet ist. Diese Format-Vorgabeeinheit 11 kann für den jeweiligen Re- chenvorgang oder Datenbearbeitungsvorgang mit entsprechenden Format-Informationen gefüllt werden, wie in Fig. 2 schematisch beim Eingang llb angedeutet ist.

Die Anordnung der Umwandlungseinheit 10 unmittelbar im von den Eingangsregistern 5A, 5B zum Ergebnisregister 8 führenden Daten- pfad 9 in der dargestellten Weise bedeutet, dass die gewünschten Format-Umwandlungen und gegebenenfalls Rundungs-Operationen im selben Taktzyklus erfolgen können, in dem die Rechenoperationen durchgeführt werden, wobei nur eine gewisse Verzögerungszeit in Kauf zu nehmen ist, bis die Daten am Ausgang der Umwandlungs- einheit 10 auftreten. Dies bedeutet eine zeitliche Beschleuni- gung gegenüber einer Technik, bei der die Format-Umwandlungen und Rundungs-Operationen über das Programm durchgeführt werden, so dass sie jeweils erst in nachfolgenden Taktzyklen, nach den eigentlichen Berechnungsvorgängen, in eigenen Umwandlungs-und Rundungsschritten des Programms erfolgen. Die vorliegende Hard- ware-mäßige Realisierung dieser Umwandlungs-und Rundungs- aufgaben unmittelbar im Datenpfad 9 ermöglicht weiters auch eine Vereinfachung der Programmierung, da beim jeweiligen Programm, das im Programmspeicher 1 in Fig. 1 zu speichern ist, einfach die gewünschten Formate für die Abspeicherung in der Format- Vorgabeeinheit 11 vorzusehen sind (sofern sich diese Formate nicht von vornherein aus dem Speicherformat des Datenspeichers 3 von selbst ergeben), jedoch keinerlei Umwandlungs-und Rundungs- operationen ausprogrammiert werden müssen. Sofern die vorstehend angeführte Verzögerungszeit, die bei der vorliegenden Technolo- gie zu berücksichtigen ist, im Vergleich zur Taktzeit eher lang sein sollte, z. B. bereits einen halben Taktzyklus dauern sollte, was bei besonders schnellen Rechenwerken 4, mit besonders kurzen Taktzyklen, unter Umständen der Fall sein könnte, so kann durch- aus vorgesehen werden, innerhalb der Umwandlungseinheit 10 ein Speicherelement (Register) zum Puffern einzubauen, so dass dann die im gegebenen Taktzyklus begonnene Format-Umwandlungs-und Rundungstätigkeit in einem zweiten Taktzyklus zu Ende geführt werden kann, ohne dass die gegebenen Verzögerungszeiten das Resultat der Operationen im Rechenwerk, das als Ergebnis Y im Register 8 abgelegt wird, beeinträchtigen könnten.

Aus Fig. 3 ergeben sich weitere Details für den Aufbau eines solchen typischen Rechenwerkes 4 für DSP-Anwendungen (DSP-Digi- taler Signalprozessor). In der digitalen Signalverarbeitung ist eine wichtige Aufgabe beispielsweise die so genannte Multi- plizier-Akkumulier-Funktion (MAC-Funktion ; MAC-Multiply-Accu- mulate). Bei dieser Funktion werden zwei Eingangszahlen (Operanden) multipliziert, und das Multiplikationsergebnis wird anschließend zum Inhalt eines Akkumulators addiert. Eine der- artige MAC-Funktion ist beispielsweise mit dem Rechenwerk 4 ge- mäß Fig. 3 realisiert, wobei überdies das erhaltene Ergebnis einer Zahlenbereichsanpassung unterworfen wird (Zahlenformat-Um- wandlung und Rundung). Für derartige Funktionen wird häufig für die Zahlen die vorzeichenbehaftete 2er-Komplement-Darstellung verwendet, wie sie nachfolgend anhand der Fig. 6 und 7 noch nä- her erläutert werden soll, wobei die Erfindung aber selbstver- ständlich nicht auf derartige Darstellungen beschränkt sein soll. In der nachfolgenden Beschreibung wird jedoch der Einfachheit halber durchgehend eine derartige vorzeichenbehafte- te 2er-Komplement-Darstellung zugrunde gelegt.

Gemäß Fig. 3 werden zu Beginn die gewünschten Zahlen A, B für die durchzuführende Multiplikation aus dem Datenspeicher 3 aus- gelesen und in die Register 5A, 5B geladen, was durch entspre- chende Ladebefehle"LOAD"von der Programmsteuerung (Programmsteuerung 2 in Fig. 1) bewerkstelligt wird. In ver- gleichbarer Weise erhält überdies der Datenspeicher 3 über eine Steuerleitung 3b"CONTROL"-Steuerbefehle von der Programmspei- cherung 2 zugeführt. Die Daten bzw. Operanden A, B werden sodann im nächsten Schritt der arithmetischen Einheit 6 zugeführt, wobei an diese von der Programmsteuerung 2 bei 6b ein entspre- chendes Steuersignal (MUL/DIV-Multiplizieren/Dividieren) ange- legt wird. Das Multiplikationsergebnis wird über die Verbindung 6a dem Addierer/Subtrahierer 7 zugeführt, dem in entsprechender Weise von der Programmsteuerung 2 über eine Steuerverbindung 7b ein Addierbefehl (bzw. Subtrahierbefehl ; ADD/SUB) zugeführt wird. Einem zweiten Eingang dieses Addierers/Subtrahierers 7 wird vom Ausgang eines Akkumulators 12 der aktuelle Inhalt dieses Akkumulators 12 zugeführt, wie in Fig. 3 bei 12a angedeu- tet ist. Das Ergebnis dieser Addition wird wieder im Akkumulator 12 gespeichert, vgl. den Ausgang 7a des Addierers 7, wobei ein Multiplexer 13 zwischengeschaltet ist, der über einen Steuereingang 13b ("SELECT") von der Programmsteuerung 2 her so eingestellt wird, dass der Multiplexer 13 den Addiererausgang 7a an den entsprechenden Eingang des Akkumulators 12 (siehe die Verbindung 13a zwischen Multiplexer 13 und Akkumulator 12) bringt. Die Funktion des Akkumulators 12 wird mit einem Steuereingang 12b ("OPERATION") von der Programmsteuerung 2 her veranlasst.

Der Multiplizier-Akkumulier-Befehl wird üblicherweise in einer Schleife mehrmals wiederholt ; sobald das Endergebnis im Akkumu- lator 12 vorliegt, wird dieses im vorliegenden Beispiel wieder im Datenspeicher 3 abgespeichert, wobei allerdings zuvor noch das Zahlenformat angepasst wird, da die Breite des Akkumulators 12 in der Regel größer ist als die Breite der aus dem Datenspei- cher 3 gelesenen Datenwerte A, B. Der Multiplexer 13 dient im vorliegenden Beispiel dazu, um mit einer eigenen Instruktion am Beginn einer Schleife den Akkumulator 12 mit einem Anfangswert aus dem Datenspeicher 3 zu laden. Üblicherweise wird als dieser Anfangswert der Wert"00"verwendet.

Der Inhalt des Akkumulators 12 (Ausgang 12a) wird somit wie erwähnt vor dem Rückspeichern im Datenspeicher 3 zwecks Zahlen- format-Umwandlung und bevorzugt auch zwecks allfälliger Rundung an die Umwandlungseinheit 10 übergeben, in der die nachstehend noch näher anhand der Fig. 5 zu beschreibende Anpassung des Zah- lenformats und die Rundung durchgeführt werden. Dadurch wird er- reicht, dass das Rechenergebnis dem vorgegebenen Speicherformat entspricht, wobei nichtsdestoweniger für die im Rechenwerk 4 durchgeführten Rechenvorgänge eine größere Wortbreite (Zahlen- breite, d. h. eine größere Anzahl von Bits pro Zahl), für eine hohe Genauigkeit der Berechnung, verwendet werden kann. Die ent- sprechenden Steuerinformationen erhält die Umwandlungseinheit 10 von der Format-Vorgabeeinheit 11, bevorzugt einem Register, das Steuerdaten betreffend das jeweils festgelegte Format (FXDFORMAT) enthält ; diese Steuerinformationen werden im Vor- hinein, am Beginn des Programms, während einer Initialisierungs- phase, in Entsprechung zu den Speicherformat-Vorgaben etwa des Datenspeichers 3 geladen. Beispielsweise wird hierzu am Beginn des Programms direkt ein Wert aus dem Datenspeicher 3 ausge- lesen, siehe den Ausgang 3a in Fig. 3, und in die Vorgabeeinheit 11 mit Hilfe eines Steuersignals llb ("LOAD") geladen. Dieses Wort gibt somit das Zielformat (DST-Destination-Ziel) an, das das erhaltene Ergebnis Y (vgl. Fig. 2) aufweisen soll, wobei in der Format-Vorgabeeinheit bzw. im Register 11 ein entspre- chender Bereich DST enthalten ist, abgesehen von einem Speicher- bereich SRC (SRC-Source-Quelle) für entsprechende Formatangaben zum während der Berechnung im Rechenwerk 4 verwendeten Format. Die entsprechenden Formatangaben können im Register 11 jeweils 8 Bit lang sein (vgl. die Bitstellen 0-7, insgesamt 0-15, in der Vorgabeeinheit 11 gemäß Fig. 4).

Das Format SRC in der Vorgabeeinheit 11 bezieht sich somit auf das Format der am Ausgang des Akkumulators 12 gegebenen Zahl, der"Quellenzahl", wogegen das Format DST das Zielformat der Da- tenwörter für die Abspeicherung im Datenspeicher 3 angibt. Jedes Feld DST bzw. SRC im Register 11 enthält die Position des De- zimalpunktes in Form einer vorzeichenlosen Binärzahl, wobei ein Wert von"2"beispielsweise anzeigt, dass die zu betrachtende Zahl zwei Kommastellen besitzen soll, d. h. zwei Stellen rechts vom Dezimalpunkt, so dass also der Dezimalpunkt um zwei Stellen von der äußersten rechten Stelle nach links verschoben ist.

Die Umwandlungseinheit 10 liefert gemäß Fig. 3 an ihrem eigent- lichen Ausgang 10a das Ergebnis (Y ; siehe auch Fig. 2), welches in Ausgangs-Speichermitteln, gemäß Fig. 3 unmittelbar im Daten- speicher 3 abgelegt wird ; zusätzlich können sich bei der Format- Umwandlung und-Rundung auch ein Überlauf oder eine Unter- schreitung bei der Zahlenanpassung ergeben (Underflow-UFL ; Overflow-OFL), und entsprechende Statussignale UFL und OFL liegen an Ausgängen 10b und 10c der Umwandlungseinheit 10 vor ; diese beiden Statussignale UFL, OFL können bevorzugt einem Sta- tusregister 14 zugeführt werden, um für eine Behandlung von Aus- nahmefällen zur Verfügung zu stehen.

Anhand der Fig. 5 soll nunmehr die Arbeitsweise der Umwandlungs- einheit 10 (Format-Umwandlung, Rundung) mehr im Einzelnen erläu- tert werden, wobei nachfolgend auch auf die Fig. 6-9 bezug genommen werden soll. Die Fig. 5 setzt sich dabei aus den Fig.

5A und 5B zusammen, die längs der strichlierten Trennlinien in Fig. 5A und 5B aneinander gelegt zu denken sind. In Fig. 5 sind weiters auch beispielhafte Dimensionsangaben betreffend Bitan- zahl oder Bitbreite der einzelnen im Zuge der Verarbeitung an- stehenden Datenwerte enthalten, wobei diese Dimensionsangaben durchaus gängigen praktischen Beispielen entsprechen. Nach- stehend sollen anhand von konkreten, jedoch vereinfachten Zah- lenbeispielen, mit niedrigeren Bitzahlen, unter Bezugnahme insbesondere auf die Fig. 8 und 9 zum einfacheren Verständnis weitere Erläuterungen erfolgen, wobei auch vorhergehend anhand der Fig. 6 und 7 2er-Komplement-Zahlendarstellungen im Hinblick auf"Overflow"und"Underflow"erläutert werden sollen.

Die Umwandlungseinheit 10, auch ALIGN-und ROUND-Einheit (im Hinblick auf die Formatanpassung und Rundung) genannt, erhält wie bereits erwähnt den Ausgangswert 12a des Akkumulators 12 zugeführt, wie dies außer in Fig. 3 auch in Fig. 5 ersichtlich ist. Das Format dieses Ausgangswertes am Ausgang 12a des Akkumu- lators 12 ist in der Folge durch die Umwandlungseinheit 10 ent- sprechend der Vorgabe durch das Register 11 (allgemein Format- Vorgabeeinheit 11 genannt) so anzupassen, dass das endgültig erhaltene Datenwort (Ausgang 10a) für eine Speicherung im Daten- speicher 3 (oder irgend einem anderen Datenspeicher, gegebenen- falls mit einem anderen Zahlenformat) geeignet ist. Die Umwandlungseinheit 10 ist direkt im Datenpfad (s. Datenpfad 9 in Fig. 2) des Rechenwerkes 4 angeordnet, d. h. im Normalfall werden die durch die Umwandlungseinheit 10 ausgeführten Operationen be- vorzugt im selben Taktzyklus wie die Rechenoperationen in den vorhergehenden arithmetischen Einheiten 6,7 durchgeführt, wobei nur eine geringfügige Verzögerungszeit von Stufe zu Stufe auf- tritt. Sollten jedoch extrem kurze Taktzyklen vorgegeben sein und die Schaltungsbausteine, mit denen die einzelnen Komponenten, insbesondere die Umwandlungseinheit 10, realisiert sind, eine im Vergleich dazu etwas zu große Verzögerung bewir- ken, kann wie bereits erwähnt eine Zwischenspeicherung innerhalb der Umwandlungseinheit 10, gegebenenfalls auch vor und/oder nach der Umwandlungseinheit 10, vorgesehen werden, um so in einem ersten Taktzyklus einen ersten Teil und in einem zweiten Taktzy- klus einen zweiten Teil der Operationen vorzunehmen. In Fig. 5 wurde jedoch von der zeichnerischen Darstellung einer derart einzufügenden Zwischenspeichereinheit (insbesondere Register) abgesehen, da im Normalfall eine derartige Pufferung nicht er- forderlich sein wird, vielmehr in ein und demselben Taktzyklus die Rechenoperationen sowie die Formatumwandlungen erfolgen können.

Die vorliegende Umwandlungseinheit 10 enthält als integralen Hardware-mäßigen Bestandteil auch eine Rundungseinheit 15, die aus einzelnen Logikbausteinen und einem Addierer besteht, wie nachfolgend noch näher erläutert wird ; weiters ist eine so ge- nannte"Saturierungsfunktion"integriert, um zu verhindern, dass bei einem Zahlen-Überlauf bzw. -Unterlauf (Overflow, Underflow) ein Vorzeichenwechsel stattfindet, vgl. auch die nachfolgenden Ausführungen im Zusammenhang mit den Fig. 6 und 7.

Im Beispiel gemäß Fig. 5 hat der Akkumulator 12 eine Breite von 80 Bit (vgl. die Bitstellen Nr. 0-79 in Fig. 5A), und es soll in der Umwandlungseinheit 10 eine Umwandlung in eine Zahl mit einer Breite von 32 Bit erfolgen, was der Breite eines Datenworts im Datenspeicher 3 entspricht. Das Format-Register 11 enthält zu diesem Zweck überdies im SRC-Feld (siehe Fig. 4) einen Wert von 40 und im DST-Feld einen Wert von 16, was bedeutet, dass die 80 Bit-Zahl aus dem Akkumulator 12 (die SRC-Zahl, also die Quellen- zahl) ihren Dezimalpunkt rechts von Bit Nr. 40 hat, wogegen die 32 Bit-Zielzahl (DST-Zahl) nach dem Anpassungs-bzw. Umwand- lungsvorgang ihren Dezimalpunkt rechts von Bit Nr. 16 haben soll.

Am Beginn der Zahlenformat-Anpassung oder-Umwandlung wird mit Hilfe einer Erweiterungseinheit 16 die 80 Bit-Zahl auf beiden Seiten erweitert, und zwar auf der rechten Seite, der LSB-Seite (LSB-Least Significant Bit = geringstwertiges Bit) um 32 Bits, also um so viele Bits als das Zielwort DST aufweist, wobei diese neu hinzugefügten 32 Bits alle auf"0"gesetzt werden. Auf der anderen, linken Seite, der MSB-Seite (MSB-Most Significant Bit = höchstwertiges Bit), werden ebenfalls 32 Bits, entsprechend der Bitbreite des Zielwortes, zur Erweiterung hinzugefügt, wobei der Wert dieser Bits entsprechend dem Wert des Vorzeichenbits, der aus dem Akkumulator 12 übernommenen wird, also das Bit an der Stelle"79", gewählt wird. Dieser Vorgang wird auch als"Sign Extend" (Vorzeichen-Erweiterung) bezeichnet, vgl. auch das Bit- feld SIGN (SRC) der Erweiterungseinheit 16 in Fig. 5A. Insgesamt wird somit eine Breite von 32 + 80 + 32 = 144 Bits, vom Bit Nr.

0 bis Bit Nr. 143, erhalten, wobei die Bits an den Stellen 32- 111 die ursprüngliche Zahl am Ausgang 12a des Akkumulators 12 bilden.

In Anschluss daran ist nun der Dezimalpunkt dieser auf insgesamt 144 Bits verlängerten Zahl anzupassen, und zwar derart, dass der Dezimalpunkt exakt an der erforderlichen Stelle im Hinblick auf die Zielzahl am Ausgang 10a der Umwandlungseinheit 10 zu liegen kommt. Es sei angenommen, dass das Bit Nr. 0 in der Quellenzahl, also am Ausgang 12a des Akkumulators 12, als Bit mit der Wertig- keit 2° immer links vom Dezimalpunkt liegt, so dass dieses Bit in der Quellenzahl an der Stelle"40"vorhanden ist, wobei es in der Zielzahl (Ausgang 10a der Umwandlungseinheit 10) an der Stelle"16"liegen soll. Es muss also eine"Verschiebung"um (40-16=) 24 Bits nach rechts (gemäß der Darstellung in Fig. 5A) erfolgen. Diese Verschiebung wird mit Hilfe der Verschiebe- einheit 17 ("SHIFT") bewerkstelligt, wobei durch die schräge Darstellung ihres Ausganges 17a dieser Verschiebevorgang nach rechts (um 24 Stellen) schematisch veranschaulicht ist. An ihrem Steuereingang 17b erhält die Verschiebeeinheit 17, die bei- spielsweise durch einen Multiplexer-Steuerblock gebildet sein kann, die entsprechende Steuerinformation für diese Verschiebung von einer die Verschiebungsgröße berechnenden Steuereinheit 17' zugeführt. Diese Steuereinheit 17'berechnet den Verschiebebe- trag aus den Werten des Format-Vorgaberegisters 11, welche an dessen Ausgang lla liegen und der Steuereinheit 17'zugeführt werden. Der berechnete Verschiebebetrag ergibt sich aus dem Un- terschied zwischen den Dezimalpunkt-Positionen des Quellen- formats (SRC-Feld im Register 11) und des Zielformates (DST-Feld im Register 11 ; siehe Fig. 4). Konkret kann somit die Steuer- einheit 17'aus einem Subtrahierer bestehen, welcher die Diffe- renz zwischen den beiden Inhalten der Felder SRC und DST des Registers 11 bildet, und sie kann auch als Steuerstufe in die Verschiebeeinheit 17 direkt integriert sein.

In Fig. 5, konkret Fig. 5A, ist die so erhaltene Bit-Kette sche- matisch durch einen Bock 18 veranschaulicht, wobei durch strich- lierte, schräge Linien veranschaulicht ist, dass die ursprünglich aus dem Akkumulator 12 stammende Zahl nunmehr um eine entsprechende Anzahl (nämlich um 24 Bits) nach rechts ver- schoben worden ist. Bei dieser Verschiebung müssen auf der lin- ken Seite die durch die Verschiebung frei werdenden Bitstellen vorzeichenrichtig aufgefüllt werden, d. h. es werden Bits mit dem Wert des Vorzeichenbits der Quellenzahl (Bit Nr. 79 im Akkumula- tor 12) zum Auffüllen verwendet.

Sollte anders als in Fig. 5 dargestellt eine Verschiebung nach links benötigt werden (um eine größere Anzahl von Nachkomma- stellen vorzusehen), dann werden die auf der rechten Seite frei werdenden Bitstellen mit"0"-Bits gefüllt.

Nach dieser Verschiebung ist der Dezimalpunkt bereits an der richtigen Stelle, entsprechend jener in der Zielzahl, und die Zielzahl kann nun entsprechend der gewünschten Genauigkeit als Teilfeld aus dem Gesamtwort-d. h. aus der Bit-Kette 18-ent- nommen werden. Im vorliegenden Fall ergibt sich die Genauigkeit für die Zielzahl durch deren Stellen mit 32 Bits. Die Felder des Gesamtwortes werden nicht verändert, sondern nur im Format der Zielzahl interpretiert. Dies kann auch als"Maskenwechsel"be- zeichnet werden, und in Fig. 5 ist diese Operation mit dem Pfeil 18a veranschaulicht. Das Ergebnis davon ist in Fig. 5 (genauer : Fig. 5B) mit der Teilfeldeinheit 19 veranschaulicht, wobei er- sichtlich ist, dass das eigentliche Zahlenfeld 19DST (DST-Des- tination-Zielzahl) nunmehr 32 Bits breit ist, wobei links davon in einem Vorzeichenfeld 19SIGN 80 Bits enthalten sind. Auf der rechten Seite sind an den Bit-Positionen"0"bis"31"die Bits für die wegzuschneidenden Stellen (Nachkommastellen) ent- halten, wobei ein einfaches Wegschneiden einem Abrunden ent- spricht, hingegen unter bestimmten Voraussetzungen, wie nachstehend noch näher erläutert, mit Hilfe der Rundungseinheit 15 ein Aufrunden erfolgt. Bei der Entnahme der Bits für die Zielzahl (Ausgang 19a) kann eine Überschreitung bzw. Un- terschreitung des gegebenen Zahlenbereiches erfolgen. Eine Über- schreitung ist dabei nur möglich, wenn die Quellenzahl positiv war, eine Unterschreitung nur dann, wenn die Quellenzahl negativ war.

Zum Erkennen einer etwaigen Überschreitung oder Unterschreitung ("Overflow"oder"Underflow") des Zahlenbereichs ist eine Logik- einheit 20 vorgesehen, der über eine Verbindung 19b vom Ausgang der Teilfeldeinheit 19 alle 80 Vorzeichenbits des Vorzeichen- feldes 19SIGN sowie das Vorzeichenbit des Zielwortes im Ziel- wortfeld 19DST (Bit an der Stelle"31", in der Zeichnung mit DST (32) angegeben) zugeführt werden. Im Fall einer gültigen Zahl in der Teilfeldeinheit 19 sind alle Vorzeichenbits gleich, und zwar entweder alle gleich"0"oder alle gleich"1". Mit Hilfe eines ODER-Gatters 21 wird nun erkannt, ob alle Bitpositionen des Vorzeichenfeldes den Wert"0"aufweisen, und mit Hilfe eines UND-Gatters 22 wird erkannt, ob alle Bitpositionen des Vorzei- chenfeldes den Wert"1"aufweisen. Die Ausgänge dieser Gatter 21,22 sind an Eingänge eines Prüfblocks 23 gelegt, der eine Überschreitung oder Unterschreitung feststellt, wenn das Aus- gangssignal (Ausgang 21a) des ODER-Gatters 21 ungleich"0"ist, oder das Ausgangssignal 22a des UND-Gatters 22 ungleich"1"ist.

Vom Prüfblock 23 muss dann, wenn das Ausgangssignal 21a ungleich "0"ist oder das Ausgangssignal 22a ungleich"1"ist, nur mehr festgestellt werden, ob eine Überschreitung oder aber eine Un- terschreitung vorliegt, und diese Feststellung erfolgt mit Hilfe des Vorzeichenbits der Quellenzahl, wie sie im Akkumulator 12 enthalten ist, vgl. auch die Verbindung 12s zum Prüfblock 23 in Fig. 5. Hat dieses Vorzeichenbit (Bit Nr."79") den Wert"0", so liegt ein Überlauf oder eine Überschreitung (Overflow) vor, und es wird am Ausgang 23o des Prüfblocks 23 ein-vorläufiges- Überlaufsignal OFL aktiviert. Hat das Vorzeichenbit jedoch den Wert"1", so liegt eine Unterschreitung (Underflow) vor, und es wird am Ausgang 23u des Prüfblocks 23 ein Unterschreitungssignal UFL aktiviert. Dies ist dann auch das bereits in der Beschreibung der Fig. 3 angesprochene Status-Signal UFL am Aus- gang 10b der Umwandlunseinheit 10.

Das Auswertungsergebnis des Prüfblocks 23 wird weiters auch über eine Verbindung 23a an eine Saturierungseinheit 24 abgegeben, die 33 Bits breit ist, also um ein Bit mehr als die Breite der Zielzahl beträgt, um so einen neuerlichen eventuellen Überlauf nach einer-noch zu beschreibenden-Rundungs-Addition erkennen zu können.

Die Saturierungseinheit 24 setzt entsprechend der Prüfauswertung durch den Prüfblock 23 (Ausgang 23a betreffend UFL/OFL-Zustand) die bei 19a zugeführte Zahl an ihrem Ausgang 24a auf den jeweils maximalen Endwert. Mehr im Detail ist dies im Fall eines Über- laufs (OFL) die größte positive Zahl, d. h. es werden in diesem Fall alle Bits mit Ausnahme der Vorzeichenbits (Bits Nr. 31 und 32) auf"1"gesetzt, wogegen die Vorzeichenbits an den Stellen 31 und 32 auf"0"gestellt werden. Im Falle einer Unter- schreitung (UFL) wird die"größte"negative Zahl (d. h. die nega- tive Zahl mit dem größten absoluten Betrag) am Ausgang 24a abgegeben, d. h. es werden in dieser Ausgangszahl alle Bits auf den Wert"0"gesetzt, mit Ausnahme der beiden Vorzeichenbits Nr.

31 und Nr. 32, welche auf den Wert"1"gesetzt werden. Wie be- reits angeführt wird zusätzlich an den Ausgängen 10b bzw. 10c ein entsprechendes Unterschreitungssignal UFL bzw. Überlaufsi- gnal OFL ergänzend abgegeben.

Beim Abschneiden der niederwertigen Bits (bei der Teilfeld- einheit 19 rechts vom Zielwort-Feld 19DST, also die Bits an den Stellen Nr. 0-31) entsteht ein systematischer Fehler, wobei sich bei mehrfacher Durchführung der beschriebenen Operationen (etwa wenn im Zuge von Filterrealisierungen Ergebnisse akkumu- liert werden) diese Fehler ungünstig summieren und unter Um- ständen eine totale Fehlfunktion von bestimmten Algorithmen nach sich ziehen können. Um dem entgegen zu wirken, ist die bereits erwähnte Rundungseinheit 15 vorgesehen, welche die erzeugten systematischen Fehler im Mittel auf 0 reduzieren soll. In der Praxis kann beispielsweise das so genannte IEEE-Runden verwendet werden (vgl. beispielsweise IEEE Standard for Binary Floating- Point Arithmetic IEEE 754-1985). Bei diesem Runden werden Auf- rundungen dann und nur dann vorgenommen, wenn an den Nachkommas- tellen (hier die Bitpositionen Nr. 0-31) zumindest ein"1"-Bit zusätzlich zu einem"1"-Bit an der Stelle Nr. 31 irgendwo vor- kommt (es genügt ein einziges solches zusätzliches"1"-Bit), oder aber wenn nur das Bit Nr. 31 den Wert 1 hat, und wenn auch das LSB-Bit im Zielwort-Feld 19DST den Wert"1"hat. Ein solches Aufrunden bedeutet, dass mit Hilfe eines Addierers 25 zur am Ausgang der Saturierungseinheit 24 erhaltenen Zahl eine"1" (allgemein : der kleinste positive Wert) hinzu addiert wird. Eine Logikeinheit 26 mit einem ODER-Gatter 27 und einem UND-Gatter 28 erkennt, ob ein solches Runden (genau Aufrunden) tatsächlich durchzuführen ist. Dazu werden das niederwertigste Bit (LSB-Bit) aus dem Zielwort-Feld 19DST (siehe Verbindung 19c) sowie die abgeschnittenen Bits (siehe Verbindung 19d) an das ODER-Gatter 27 gelegt, dessen Ausgang 27a ebenso wie das Bit Nr. 31 der abgeschnittenen niederwertigen Bits (siehe Ausgang 19e) an das UND-Gatter 28 gelegt wird. Das erwähnte IEEE-Runden sieht ein Aufrunden, also das Addieren einer"1"im Addierer 25, dann vor (Ausgang"1"des UND-Gatters 28, Verbindung 28a), wenn irgendein Bit 19d oder 19c auf 1 gesetzt ist und gleichzeitig das Bit 19e (Bit Nr. 31 der Teilfeldeinheit 19) ebenfalls den Wert 1 hat.

Ein solches Aufrunden erfolgt jedoch auch nur dann, wenn keine Unterschreitung (Signal UFL) durch den Prüfblock 23 festgestellt wurde, d. h. der Addierer 25 liegt mit einem Eingang auch am Aus- gang 23u des Prüfblocks 23. Ist eine derartige Unterschreitung nicht festgestellt worden und ein Aufrunden durchzuführen, dann addiert der Addierer 25 die kleinstmögliche positive Zahl zum Ergebnis im Ausgang 24a der Saturierungseinheit 24.

Da ein solches Aufrunden wieder zu einem Zahlenüberlauf (Over- flow-OFL) führen kann, ist eine weitere Saturierungseinheit 29 an den Ausgang 25a des Addierers 25 angeschlossen, und diese Sa- turierungseinheit 29 begrenzt in der gleichen Weise wie zuvor anhand der Saturierungseinheit 24 beschrieben das Ausgangsergeb- nis (das Zielwort) auf den höchstmöglichen Zahlenwert. Dieser höchstmögliche Zahlenwert wird am Ausgang 29a abgegeben und in einem Register 30 gespeichert. Sollte kein Überlauf erfolgen, so wird die vom Addierer 25 erhaltene Zahl direkt in das Register 30 eingeschrieben. Im Fall eines Überlaufs wird ein entspre- chendes OFL-Signal beim Ausgang 29b der Saturierungseinheit 29 abgegeben, und dieses OFL-Signal wird mit dem OFL-Signal am Aus- gang 23o des Prüfblocks 23 gemäß einer ODER-Funktion verknüpft, siehe das ODER-Gatter 31 in Fig. 5B, so dass auch im Fall bloß eines Überlaufs ein entsprechendes OFL-Signal am Ausgang 10c der Umwandlungseinheit 10 erhalten wird.

Aus Vorstehendem ist ersichtlich, dass im Fall, dass keine Über- schreitung oder Unterschreitung der Zahl bei der Rückführung auf das Teilfeld (siehe Teilfeldeinheit 19) erfolgt, die Einheiten 24,25 und 29 funktionslos bleiben und die Ausgangszahl 19a der Teilfeldeinheit 19 direkt zum Register 30 (als Ausgangs-Spei- chermittel) gelangt und dort gespeichert wird.

Damit ist die Zahlenformat-Umwandlung und etwaige Rundung abge- schlossen, und das Endergebnis, d. h. die Zielzahl DST, mit der gewünschten Bitbreite (entsprechend der Bitbreite des Zielzah- lenfeldes 10DST der Teilfeldeinheit 19), kann nun, wie vor- stehend anhand insbesondere der Fig. 1 und 3 erläutert, als Ergebnis Y wieder in den allgemeinen Datenspeicher 3 einge- schrieben werden. Die Statussignale UFL und OFL werden hingegen in das Statusregister 14 (vgl. Fig. 3) geladen.

Zur Ergänzung soll nun anhand der Fig. 6 und 7 noch kurz die so genannte 2er-Komplement-Darstellung der Binärzahlen als Beispiel erläutert werden, da diese 2er-Komplement-Darstellung den Opera- tionen gemäß Fig. 5 zugrunde gelegt wurde. In Fig. 6 sind dabei mit einem Vorzeichenbit S versehene 4 Bit-Binärzahlen in einer Tabelle veranschaulicht, wobei bei diesem Beispiel der Wertebe- reich von-8 bis +7 reicht. Die positiven Zahlen sind bei P ge- zeigt, die negativen bei N. Wie ersichtlich ist dann, wenn das Vorzeichenbit S den Wert"0"hat, die Zahl positiv (wobei auch die Zahl 0 zu den positiven Zahlen hinzugerechnet werden soll) ; ist das Vorzeichenbit S hingegen"1", so ist die Zahl eine nega- tive Zahl N. Bei einem Addieren oder aber Subtrahieren kann nun der Fall eintreten, dass die Zahlenbereichs-Grenzen über-bzw. unterschritten werden, vgl. die Pfeile 40 und 41 in Fig. 6. Bei- spielsweise kann im Fall einer Addition einer positiven Zahl zu einer positiven Zahl (vgl. Pfeil 40) der Bereich P der positiven Zahlen überschritten werden ("Überlauf"), so dass eine negative Zahl"entsteht", da auf das Bitwort"0111" (für die Zahl +7) in der gezeigten Binärzahlendarstellung die Zahl"1000"folgt, die aber bereits die größte negative Zahl (-8) ist. In ähnlicher Weise kann, wenn eine negative Zahl zu einer negativen Zahl (be- tragsmäßig) addiert wird (siehe Pfeil 41 in Fig. 6), eine posi- tive Zahl entstehen (nämlich mit einer"0"an der Stelle des Vorzeichenbits S), so dass sich ein Unterlauf oder eine Un- terschreitung des Wertebereichs ergibt.

In Fig. 7 sind ebenfalls mit einem Vorzeichen (wiederum in der l. ten Spalte der Bits) behaftete 4 Bit-Binärzahlen mit ganzzah- ligen Anteilen I (I-Integer) und zwei Nachkommastellen F (F- Fraktion) veranschaulicht, wobei sich der Wertebereich dieser Binärzahlen von-2 bis +1,75 erstreckt. Bei Zugrundelegung des vorstehend anhand der Fig. 5 erwähnten IEEE-Rundens würde bei- spielsweise bei den Zahlen +0,75, +1,5 und +1,75 ein Aufrunden auf +1, +2 bzw. +2 erfolgen, sollten die Nachkommastellen wegge- schnitten werden ; kein Aufrunden würde jedoch bei der Zahl +0,5 durchgeführt werden. Bei diesem IEEE-Runden wird nämlich die Zahl 0,5 abgerundet, 0,51 wird bereits aufgerundet, ebenfalls wird die Zahl 1,5 aufgerundet, nicht jedoch die Zahl 2,5, jedoch wiederum die Zahl 3,5 usw.

In den Fig. 8 und 9 sind in Form von in Zeilen (1) bis (8) ge- zeigten, vereinfachten Bitdarstellungen (mit gegenüber Fig. 5 wesentlich kleineren Bitbreiten) Beispiele mit Formatumwandlung und Rundung, einmal mit einem Überlauf (Fig. 8) und einmal mit einer Unterschreitung (Fig. 9), veranschaulicht.

Im Einzelnen zeigt die l. te Zeile in Fig. 8 eine 8 Bit-Quellen- zahl SRC, die einen ganzzahligen 4 Bit-Anteil und 4 Bit-Nachkom- mastellen enthält. Das am weitesten links stehende Bit bei den ganzzahligen Anteilen ist das Vorzeichenbit S. Die in der 8. ten Zeile dargestellte Zielzahl DST besteht dagegen aus 6 Bits, wobei die ersten drei Bits die ganzzahligen Anteile einschließ- lich des Vorzeichenbits darstellen und die weiteren drei Bits die Nachkommastellen repräsentieren. Der Wert der Quellenzahl SRC beträgt +7,9375, was hier dem größten darstellbaren Wert entspricht.

Gemäß der Zeile (2) wird links vom Vorzeichenbit S eine Erweite- rung vorgenommen, wobei dieselbe Anzahl (nämlich sechs) von Bits (hier"0"-Bits) wie die Anzahl der Bits der Zielzahl DST vorangesetzt wird. Gleichzeitig werden genau so viele"0"-Bits (also sechs"0"-Bits) rechts an die Quellenzahl SRC angehängt.

Für die nun erforderliche Verschiebung ist die Differenz zwi- schen der Anzahl der Nachkommastellen der Quellenzahl SRC und jener der Zielzahl DST zu berechnen (was gemäß Fig. 5 mit der Steuereinheit 17 bewerkstelligt wird), und diese Differenz be- trägt im Beispiel von Fig. 8"1", d. h. die Bit-Kette wird um eine Stelle nach rechts geschoben, siehe Zeile (3) in Fig. 8 ; dabei wird auf der linken Seite mit dem Wert des Vorzeichenbits aufgefüllt, d. h. konkret wird hier ein"0"-Bit hinzugefügt.

Sodann wird gemäß der Zeile (4) in Fig. 8 über diese Kette eine neue Maske, nun mit bloß sechs Stellen, entsprechend der Anzahl der Bits der Zielzahl DST, gelegt. Dabei ist diese Maske in Fig.

8 durch einen kürzeren Block (im Vergleich zu den Zeilen (1) bis (3) ) erkenntlich. Wie ersichtlich wird dadurch die 6-Bit-Zahl in der 4. ten Zeile von Fig. 8 negativ ("1"-Bit an der ganz linken Stelle). Die links davon stehenden neun Bits (einschließlich des Vorzeichenbits der Zielzahl) werden nun auf Gleichheit über- prüft, und da sie nicht alle gleich sind, wird eine Unterlauf-/ Überlauf-Bedingung festgestellt, vgl. die Logikeinheit 20 in Fig. 5. Um nun exakt zu bestimmen, ob ein Überlauf oder aber eine Unterschreitung vorliegt, wird das Vorzeichenbit der Quellenzahl SRC herangezogen ; dieses Vorzeichenbit hat im vor- liegenden Fall den Wert"0", so dass ein Überlauf (OFL) festge- stellt wird. Hätte das Vorzeichenbit der Quellenzahl SRC den Wert"1", würde ein Unterlauf festgestellt werden. Mit Hilfe der Saturierungseinheit 24 (Fig. 5) erhält nun das Zielwort DST den höchsten positiven Wert, wie aus der 5. ten Zeile in Fig. 8 er- sichtlich ist, wobei dieser Wert nun +3,875 beträgt. Die Rundungseinheit 15 (siehe Fig. 5) erkennt bei R in Fig. 8 die Notwendigkeit eines Aufrundens, wobei die Rundungseinheit 15 die sieben am weitesten rechts stehenden Bits hierfür heranzieht.

Demgemäß wird die Zielzahl DST um den Wert 0,125 (der mit drei Bits kleinste darstellbare Wert) inkrementiert, wobei dieser Additionswert in der 6. ten Zeile von Fig. 8 dargestellt ist, hingegen der höchste positive Wert, der von der Saturierungs- einheit 24 erhalten wird, in der 5. ten Zeile dargestellt ist.

Bei dieser Addition der Zahlen ergibt sich neuerlich eine nega- tive Zahl, vgl. die 6. te Zeile in Fig. 8, was von der zweiten Saturierungseinheit 29 (siehe Fig. 5) erkannt wird. Die Zielzahl wird daher erneut auf den größten positiven Wert gestellt, was in der 7. ten Zeile von Fig. 8 gezeigt ist, und die so erhaltene Zahl wird an das Register 30 (siehe Fig. 5) als endgültige Ziel- zahl DST weitergegeben, wie in der 8. ten Zeile von Fig. 8 ver- anschaulicht ist. Gleichzeitig wird auch ein entsprechendes Überlauf-Signal OFL an das Statusregister 14 (siehe Fig. 3) abgegeben.

Beim Beispiel in Fig. 9 ist die Quellenzahl SRC wiederum eine 8 Bit-Zahl mit einem Vorzeichenbit S und vier Bit-Nachkommas- tellen, wobei die dargestellte Quellenzahl SRC den (dem Betrag nach) größten negativen Wert, nämlich-4,000, hat. Die Zielzahl soll wieder sechs Bitstellen haben, und entsprechend dieser Bi- tanzahl werden gemäß der 2. ten Zeile von Fig. 9 auf der linken Seite die Vorzeichenbits mit sechs"1"-Bits erweitert, hingegen werden die Bits auf der rechten Seite mit"0"aufgefüllt. Danach erfolgt wiederum-siehe die 3. te Zeile von Fig. 9-eine Ver- schiebung der Kette um eine Stelle nach rechts, wobei neuerlich auf der linken Seite ein"1"-Bit eingefügt wird. Beim Ändern der Maske, gemäß der 4. ten Zeile in Fig. 9, um die Bitzahl auf sechs Bits, gemäß der Anzahl der Bits der Zielzahl DST, zu reduzieren, wird erkennbar, dass die Zahl nunmehr einen positiven Wert ange- nommen hat (das linke Bit, das Vorzeichenbit, hat den Wert"0"), und weiters wird bei der Überlauf-/Unterlauf-Prüfung auch fest- gestellt, dass die neun Bits auf der linken Seite nicht gleich sind. Daher wird, da dies als Unterlauf erkannt wird, die Zahl auf den größten negativen Wert gesetzt, vgl. die 5. te Zeile in Fig. 9. (Die Überprüfung auf Überlauf bzw. Unterlauf (OFL/UFL) ergibt in diesem Beispiel, dass ein Unterlauf oder eine Un- terschreitung vorliegt, da das Vorzeichenbit S der Quellenzahl SRC den Wert"1"hat.) Bei einem Unterlauf ist es dem Addierer 25 aber nicht möglich, ein etwaiges Rundungsergebnis zur Zielzahl zu addieren, d. h. die Zahl bleibt am Ausgang des Addierers 25 gleich, vgl. die 6. te Zeile in Fig. 9. Die weitere Saturierungseinheit 29 erkennt nun keinen Überlauf oder aber Unterlauf (7. te Zeile in Fig. 9) und gibt den Zahlenwert unverändert an das nachfolgende Register 30 weiter, vgl. die 8. te Zeile in Fig. 9.

Die insbesondere anhand der Fig. 5 beschriebene Konfiguration kann in der Praxis bevorzugt in kombinatorischer Logik (also insbesondere mit UND-und ODER-Gattern sowie mit Multiplexer- Ketten zum Verschieben etc. ) realisiert werden, ohne dass spei- chernde Elemente (Register) dazwischen vorgesehen werden. Auf diese Weise wird erreicht, dass im selben Taktzyklus, in dem die Rechenoperationen durchgeführt werden, auch die Formatan- passungen und etwaigen Rundungs-Operationen erfolgen können.

Falls ganz kurze Taktzeiten zu realisieren sind, können auch wie bereits erwähnt Speicherelemente (Register) zwischen einzelnen Einheiten vorgesehen werden.

Vorstehend wurde in Zusammenhang mit der Rundung als Beispiel das IEEE-Runden erläutert. Selbstverständlich sind jedoch im Rahmen der Erfindung auch andere Arten von Rundungen denkbar, wie etwa ein kaufmännisches Runden, ein bloßes Wegschneiden der hinteren Stellen und andere bekannte Rundungsarten. Von Bedeu- tung ist hier nur, dass die entsprechende Logik Hardware-mäßig realisiert ist, anstatt eine Programmierung für das Rechenwerk 4 vorzusehen.