AT413895B - Digitale signalverarbeitungseinrichtung - Google Patents
Digitale signalverarbeitungseinrichtung Download PDFInfo
- Publication number
- AT413895B AT413895B AT0140603A AT14062003A AT413895B AT 413895 B AT413895 B AT 413895B AT 0140603 A AT0140603 A AT 0140603A AT 14062003 A AT14062003 A AT 14062003A AT 413895 B AT413895 B AT 413895B
- Authority
- AT
- Austria
- Prior art keywords
- unit
- rounding
- signal processing
- format
- digital signal
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and 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
-
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Complex Calculations (AREA)
- Analogue/Digital Conversion (AREA)
Description
2
AT 413 895 B
Die Erfindung betrifft eine digitale Signalverarbeitungseinrichtung, insbesondere eine digitale Recheneinrichtung, gemäß dem einleitenden Teil von Anspruch 1.
In der digitalen Signalverarbeitung werden digitale Signale durch Anwendung verschiedenster 5 Algorithmen digital behandelt, wobei die digitalen Signale beispielsweise aus ursprünglich analogen Signalen durch Abtastung hergeleitet werden. Die Signalverarbeitung kann in Form von Berechnungen entsprechend nachrichtentechnischen Algorithmen erfolgen, um beispielsweise ein Bandpassfilter oder dgl. zu realisieren. Für eine solche digitale Signalverarbeitung werden die digitalen Signalwerte in Speichermitteln in binärer Form gespeichert, wobei die Werte zu-io 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 Gleitkomma-Darstellung (Floating-Point Format) zurückgegriffen werden.
Zur Durchführung der digitalen Signalverarbeitung werden zumeist digitale Signalprozessoren 15 (DSP) eingesetzt, bei Anwendungen mit sehr hohen Durchsatzraten, wie beispielsweise im Zuge einer Bildkompression oder in der DSL (digital subscriber linej-Technik, werden auch speziell zugeschnittene Rechenwerke eingesetzt, die wesentlich höhere Rechengeschwindigkeiten erlauben. 20 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 Dezimalpunktes 25 angepasst werden. Bei diesen Formatumwandlungen und Dezimalpunktanpassungen ergeben sich naturgemäß numerische Fehler, welche sich in der Folge auf die Genauigkeit des Ergebnisses und somit auf die Qualität des Ausgangssignals auswirken; die Reduktion der Qualität des Ausgangssignals kann sich beispielsweise bei nachrichtentechnischen Anwendungen als Signalrauschen (Signal noise) äußern, und es kann z.B. im Fall der Realisierung von integrie-30 renden Filtern ein Totalausfall dieser Filter verursacht werden.
Die exakte Format-Umwandlung sowie gegebenenfalls auch ein signaltechnisch richtiges Runden sind demgemäß im Zuge einer solchen digitalen Signalverarbeitung sehr kritische Aspekte, wobei diese Manipulationen überdies in den üblichen praktischen Anwendungen ergänzend zu 35 den eigentlichen mathematischen Berechnungen, wie Multiplizieren oder Addieren, häufig Vorkommen. Eine derartige Format-Umwandlung hat demgemäß auch wesentliche Auswirkungen auf die erzielbaren Verarbeitungsgeschwindigkeiten, d.h. auf die jeweils erzielbare Taktfrequenz, wodurch in der Folge auch die technische und wirtschaftliche Realisierbarkeit bestimmt wird. 40
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 45 von Taktzyklen für die eigentliche algorithmische Signalverarbeitung oder -berechnung, was natürlich besonders nachteilig ist.
Es ist nun Aufgabe der Erfindung, eine besonders effiziente Verarbeitung von digitalen Signalen unter Anwendung von Zahlenformat-Umwandlungen und gegebenenfalls Rundungs-50 Operationen zu ermöglichen, wobei insbesondere eine 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 Signalverarbeitungseinrichtung mit 55 den Merkmalen des Anspruches 1 vor. Besonders vorteilhafte Ausführungsformen und Weiter- 3
AT 413 895 B bildungen sind in den Unteransprüchen definiert.
Gemäß der Erfindung wird somit entsprechend einem besonders bevorzugten Aspekt eine Format-Umwandlungseinheit, bevorzugt mit einer Rundungseinheit direkt in den Datenpfad des 5 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 vereinfacht wird, da dem Programmierer die Probleme im Zusammenhang mit der Format-Umwandlung automatisch abgenommen werden, io Die Zahlenformat-Umwandlungseinheit, gegebenenfalls mit der integrierten Rundungseinheit, kann auf ein vorab bestimmtes Format ausgelegt sein, es ist aber mit besonderem Vorteil eine Format-Vorgabe oder -Einstellung möglich, wozu bevorzugt 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-Umwandlungen und Rundungen und 15 somit die exakte Funktionsweise dieser Einheiten. Insbesondere kann das Format-Register Felder zu Festlegung des Datenformats, wie die Anzahl der Stellen insgesamt und die Anzahl der Stellen nach dem Komma, enthalten.
Weiters kann in die Zahlenformat-Umwandlungseinheit auch eine Saturierungsfunktion (auch 20 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-Umwandlungseinheit, wird ebenfalls erreicht, dass kein zusätzlicher Taktzyklus erforderlich ist, und es werden wie erwähnt Fehler, die unter Umständen im Zusammenhang mit der Format-25 Umwandlung und Rundungsfunktion entstehen könnten, durch diese Saturierungsfunktion verhindert. Eine vergleichbare Saturierungsfunktion wird bevorzugt auch der Rundungseinheit zugeordnet, um so einen etwaigen Überlauf bei einem Aufrunden zu erkennen und das korrekte Ergebnis zu liefern. 30 Die Erfindung wird nachfolgend anhand von bevorzugten Ausführungsbeispielen, 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 Signalprozessors; Fig. 2 ein schematisches Blockschaltbild eines Rechenwerks eines solchen Prozessors, und zwar mit einer Zahlenformat-Umwandlungseinheit gemäß der Erfindung, der eine Format-Vorgabeeinheit zugeordnet ist; 35 Fig. 3 ein solches Rechenwerk mit Zahlenformat-Umwandlungseinheit mehr im Detail; Fig. 4 schematisch ein Format eines Format-Registers als Format-Vorgabeeinheit; Fig. 5 einen detaillierten Aufbau der Zahlenformat-Umwandlungseinheit samt Rundungseinheit und Saturierungseinheit; Fig. 6 beispielhaft eine Tabelle mit Vorzeichen-behafteten positiven und negativen 4 Bit-Binärzahlen, mit einem Wertebereich von -8 bis +7; Fig. 7 eine vergleichbare Tabelle mit 4 Bit-40 Binärzahlen, die jeweils 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-Umwandlung mit Rundung und Saturierung, nun jedoch mit einer Unterschreitung (Unterlauf). 45
In Fig. 1 ist schematisch in einem Blockschaltbild der an sich bekannte Aufbau eines Prozessors dargestellt, wobei ein Programmspeicher 1 vorgesehen ist, an den eine Programmsteuerung 2 angeschlossen ist, um ein die zu verarbeitenden Daten von einem Datenspeicher 3 erhaltendes Rechenwerk 4 entsprechend anzusteuern. Bekannt für den Aufbau derartiger Re-50 chenwerke 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 selbstverstä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 55 einen Datenpfad. 4
AT 413 895 B
In einem solchen digitalen Signal-Prozessor wird jede Programminstruktion 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 ausgelesen und der Programmsteuerung 2 zugeführt, wie in Fig. 1 mit 5 dem Bezugszeichen 1a veranschaulicht ist. In der danach folgenden Decode (Dekodier)-Phase wird dieses Befehlswort dekodiert und in einzelne Mikrooperationen aufgespalten, mit denen das Rechenwerk 4 angesteuert wird. Dies ist in Fig. 1 mit der Verbindung 2a zwischen Programmsteuerung 2 und Rechenwerk 4 angedeutet. In der dritten Phase, der Execu-te (Exekutier)-Phase, wird die Instruktion abgearbeitet, und demgemäß werden in dieser Phase io die Mikrooperationen in Form von Steuersignalen über die Verbindung 2a und das Rechenwerk 4 zur tatsächlichen Ausführung weitergegeben, wobei zusätzlich über die Datenverbindung 3a Daten aus dem Datenspeicher 3 in das Rechenwerk 4 geladen werden; im Rechenwerk 4 erfolgt die rechnerische Verarbeitung dieser Daten und die Zwischenspeicherung in Registern. Nach dieser Bearbeitung werden die erhaltenen Daten beispielsweise über eine Verbindung 4a 15 wieder im Datenspeicher 3 abgespeichert. Insofern bildet der Datenspeicher 3 beispielsweise Eingangs-Speichermittel und zugleich Ausgangs-Speichermittel 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 verknüpfende Daten A, B beispielsweise Eingangsregistern 5A, 20 5B zugeführt werden (z.B. aus dem Datenspeicher 3 gemäß Fig. 1), wonach sie 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 angedeu-25 tet ist. Die einzelnen Komponenten 5A, 5B bis 8 definieren dabei einen Datenpfad 9, und in diesem Datenpfad 9 ist unmittelbar auch eine Zahlenformat-Umwandlungseinheit 10 angeordnet, die zugleich eine Rundungseinheit enthält, wie nachstehend noch näher erläutert werden wird. Diese Zahlenformat-Umwandlungseinheit 10, nachstehend kurz Umwandlungseinheit oder Anpassungseinheit genannt, kann dabei die zugeführten Daten in ein vorgegebenes festes 30 Zahlenformat umwandeln, vorzugsweise ist jedoch, wie in Fig. 2 gezeigt, eine Format-Vorgabeeinheit 11 vorgesehen, 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 11a angedeutet ist. Diese Format-Vorgabeeinheit 11 kann für den jeweiligen Rechenvorgang oder Datenbearbeitungsvorgang mit entsprechenden Format-Informationen gefüllt 35 werden, wie in Fig. 2 schematisch beim Eingang 11b angedeutet ist.
Die Anordnung der Umwandlungseinheit 10 unmittelbar im von den Eingangsregistern 5A, 5B zum Ergebnisregister 8 führenden Datenpfad 9 in der dargestellten Weise bedeutet, dass die gewünschten Format-Umwandlungen und gegebenenfalls Rundungs-Operationen im selben 40 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 Umwandlungseinheit 10 auftreten. Dies bedeutet eine zeitliche Beschleunigung gegenüber der herkömmlichen 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 45 eigentlichen Berechnungsvorgängen, in eigenen Umwandlungs- und Rundungsschritten des Programms erfolgen. Die vorliegende Hardware-mäßige Realisierung dieser Umwandlungsund Rundungsaufgaben 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, höchstens die gewünschten Zielformate für die Abspeicherung in der so Format-Vorgabeeinheit 11 vorzusehen sind (sofern sich diese Formate nicht von vornherein aus dem Speicherformat des Datenspeichers 3 von selbst ergeben, wie dies zumeist der Fall sein wird), jedoch keinerlei Umwandlungs- und Rundungsoperationen ausprogrammiert werden müssen. Sofern die vorstehend angeführte Verzögerungszeit, die bei der vorliegenden Technologie zu berücksichtigen ist, im Vergleich zur Taktzeit eher lang sein sollte, z.B. bereits einen 55 halben Taktzyklus dauern sollte, was bei besonders schnellen Rechenwerken 4, mit besonders 5
AT 413 895 B kurzen Taktzyklen, unter Umständen der Fall sein könnte, so kann durchaus 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 5 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-Digitaler Signalprozessor). In der digitalen Signalverarbeitung ist io eine wichtige Aufgabe beispielsweise die so genannte Multiplizier- Akkumulier-Funktion (MAC-Funktion; MAC-Multiply-Accumulate). Bei dieser Funktion werden zwei Eingangszahlen (Operanden) multipliziert, und das Multiplikationsergebnis wird anschließend zum Inhalt eines Akkumulators addiert. Eine derartige MAC-Funktion ist beispielsweise mit dem Rechenwerk 4 gemäß Fig. 3 realisiert, wobei überdies das erhaltene Ergebnis mit Hilfe der erfindungsgemäßen Tech-15 nik einer Zahlenbereichsanpassung unterworfen wird (Zahlenformat-Umwandlung 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 selbstverständlich nicht auf derartige Darstellungen beschränkt sein soll. In der nachfolgenden Beschreibung wird jedoch der Einfachheit halber 20 durchgehend eine derartige vorzeichenbehaftete 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 ausgelesen und in die Register 5A, 5B geladen, was durch entsprechende Ladebefehle LOAD von der Programmsteuerung (Programmsteuerung 2 in 25 Fig. 1) bewerkstelligt wird. In vergleichbarer Weise erhält überdies der Datenspeicher 3 über eine Steuerleitung 3b CONTROL -Steuerbefehle von der Programmspeicherung 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 entsprechendes Steuersignal (MUL/DIV-Multiplizieren/Dividieren) angelegt wird. Das Multiplikationsergebnis wird über 30 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 angedeutet ist. Das Ergebnis dieser Addition wird wieder im Akkumulator 12 35 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 ) 40 von der Programmsteuerung 2 her veranlasst.
Der Multiplizier-Akkumulier-Befehl wird üblicherweise in einer Schleife mehrmals wiederholt; sobald das Endergebnis im Akkumulator 12 vorliegt, wird dieses im vorliegenden Beispiel wieder im Datenspeicher 3 abgespeichert, wobei allerdings zuvor noch das Zahlenformat ange-45 passt wird, da die Breite des Akkumulators 12 in der Regel größer ist als die Breite der aus dem Datenspeicher 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. 50
Der Inhalt des Akkumulators 12 (Ausgang 12a) wird somit wie erwähnt vor dem Rückspeichem im Datenspeicher 3 zwecks Zahlenformat-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 Zahlenformats und die Rundung durchge-55 führt werden. Dadurch wird erreicht, dass das Rechenergebnis dem vorgegebenen Speicher- 6
AT 413 895 B format entspricht, wobei nichtsdestoweniger für die im Rechenwerk 4 durchgeführten Rechenvorgänge eine größere Wortbreite (Zahlenbreite, d.h. eine größere Anzahl von Bits pro Zahl), für eine hohe Genauigkeit der Berechnung, verwendet werden kann. Die entsprechenden Steuerinformationen erhält die Umwandlungseinheit 10 von der Format-Vorgabeeinheit 11, bevorzugt 5 einem Register, das Steuerdaten betreffend das jeweils festgelegte Format (FXD FORMAT) enthält; diese Steuerinformationen werden im Vorhinein, am Beginn des Programms, während einer Initialisierungsphase, 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 ausgelesen, siehe den Ausgang 3a in Fig. 3, und in die Vorgabeeinheit io 11 mit Hilfe eines Steuersignals 11b ( LOAD ) geladen. Dieses Wort gibt somit das Zielformat an, das das erhaltene Ergebnis Y (vgl. Fig. 2) aufweisen soll, wobei in der Format-Vorgabeeinheit bzw. im Register 11 ein entsprechender Bereich DST (DST-Destination-Ziel) enthalten ist, abgesehen von einem Speicherbereich SRC (SRC-Source-Quelle) für entsprechende Formatangaben zum während der Berechnung im Rechenwerk 4 verwendeten Format. 15 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 Ziel-20 format der Datenwörter für die Abspeicherung im Datenspeicher 3 angibt. Jedes Feld DST bzw. SRC im Register 11 enthält die Position des Dezimalpunktes 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. 25
Die Umwandlungseinheit 10 liefert gemäß Fig. 3 an ihrem eigentlichen Ausgang 10a das Ergebnis (Y; siehe auch Fig. 2), welches in Ausgangs-Speichermitteln, gemäß Fig. 3 unmittelbar im Datenspeicher 3 abgelegt wird; zusätzlich können sich bei der Format-Umwandlung und -Rundung auch ein Überlauf oder eine Unterschreitung bei der Zahlenanpassung ergeben 30 (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 Statusregister 14 zugeführt werden, um für eine Behandlung von Ausnahmefällen zur Verfügung zu stehen. 35 Anhand der Fig. 5 soll nunmehr die Arbeitsweise der Umwandlungseinheit 10 (Format-Umwandlung, Rundung) mehr im Einzelnen erläutert werden, wobei nachfolgend auch auf die Fig. 6-9 bezug genommen werden soll. In Fig. 5 sind dabei weiters auch beispielhafte Dimensionsangaben betreffend Bitanzahl oder Bitbreite der einzelnen im Zuge der Verarbeitung anstehenden Datenwerte enthalten, wobei diese Dimensionsangaben durchaus gängigen prakti-40 sehen Beispielen entsprechen. Nachstehend sollen anhand von konkreten, jedoch vereinfachten Zahlenbeispielen, 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. 45
Die erfindungsgemäße 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 Akkumulators 12 ist in der Folge durch so die Umwandlungseinheit 10 entsprechend der Vorgabe durch das Register 11 (allgemein Format-Vorgabeeinheit genannt) so anzupassen, dass das endgültig erhaltene Datenwort (Ausgang 10a) für eine Speicherung im Datenspeicher 3 (oder irgend einem anderen Datenspeicher, gegebenenfalls mit einem anderen Zahlenformat) geeignet ist. Die Umwandlungseinheit 10 ist dabei im Datenpfad (s. Datenpfad 9 in Fig. 2) des Rechenwerkes 4 direkt angeordnet, 55 d.h. im Normalfal! werden die durch die Umwandlungseinheit 10 ausgeführten Operationen 7
AT 413 895 B bevorzugt 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 auftritt. Sollten jedoch extrem kurze Taktzyklen vorgegeben sein und die Schaltungsbausteine, mit denen die einzelnen Komponenten, insbesondere die Umwandlungseinheit 10, 5 realisiert sind, eine im Vergleich dazu etwas zu große Verzögerung bewirken, 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 Taktzyklus einen zweiten Teil der Operationen vorzunehmen. In Fig. 5 wurde jedoch von der zeichnerischen Darstellung einer io derart einzufügenden Zwischenspeichereinheit (insbesondere Register) abgesehen, da im Normalfall eine derartige Pufferung nicht erforderlich 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 15 auch eine Rundungseinheit 15, die aus einzelnen Logikbausteinen und einem Addierer besteht, wie nachfolgend noch näher erläutert wird; weiters ist eine so genannte 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. 20
Im Beispiel gemäß Fig. 5 hat der Akkumulator 12 eine Breite von 80 Bit (vgl. die Bitstellen Nr. 0-79), 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 25 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 Quellenzahl) ihren Dezimalpunkt rechts von Bit Nr. 40 hat, wogegen die 32 Bit-Zielzahl (DST-Zahl) nach dem Anpassungs- bzw. Umwandlungsvorgang ihren Dezimalpunkt rechts von Bit Nr. 16 haben soll. 30 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) wer-35 den 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 Bitfeld SIGN(SRC) der Erweiterungseinheit 16 in Fig. 5. Insgesamt wird somit eine Breite von 32 + 80 + 32 = 40 144 Bits, vom Bit Nr. 0 bis Bit Nr. 143, erhalten, wobei die Bits an den Stellen 32-111 die ur sprü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 45 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 Wertigkeit 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 so (40-16=) 24 Bits nach rechts (gemäß der Darstellung in Fig. 5) erfolgen. Diese Verschiebung wird mit Hilfe der Verschiebeeinheit 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 beispielsweise durch einen Multiplexer-Steuerblock gebildet sein kann, die entsprechende 55 Steuerinformation für diese Verschiebung von einer die Verschiebungsgröße berechnenden 8
AT 413 895 B
Steuereinheit 17' zugeführt; diese Steuereinheit 17' berechnet den Verschiebebetrag aus den Werten des Format-Vorgaberegisters 11, welche an dessen Ausgang 11a liegen und der Steuereinheit 17' zugeführt werden. Der berechnete Verschiebebetrag ergibt sich aus dem Unterschied zwischen den Dezimalpunkt-Positionen des Quellenformats (SRC-Feld im Register 11) 5 und des Zielformates (DST-Feld im Register 11; siehe Fig. 4). Konkret kann somit die Steuereinheit 17' aus einem Subtrahierer bestehen, welcher die Differenz 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. io In Fig. 5 ist die so erhaltene Bit-Kette schematisch durch einen Bock 18 veranschaulicht, wobei durch strichlierte, 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 verschoben worden ist. Bei dieser Verschiebung müssen auf der linken Seite die durch die Verschiebung frei werdenden Bitstellen vorzeichenrichtig aufgefüllt werden, d.h. es werden 15 Bits mit dem Wert des Vorzeichenbits der Quellenzahl (Bit Nr. 79 im Akkumulator 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 Nachkommastellen vorzusehen), dann werden die auf der rechten Seite frei 20 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 - entnommen werden. Im vorliegenden 25 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 bezeichnet werden, und in Fig. 5 ist diese Operation mit dem Pfeil 18a veranschaulicht. Das Ergebnis davon ist in Fig. 5 mit der Teilfeldeinheit 19 veranschaulicht, wobei ersichtlich ist, dass das eigentliche Zahlenfeld 19DST (DST-Destination-30 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) enthalten, wobei ein einfaches Wegschneiden einem Abrunden entspricht, hingegen unter bestimmten Voraussetzungen, wie nachstehend noch näher erläutert, mit Hilfe der Rundungseinheit 15 ein Aufrunden erfolgt. Bei der 35 Entnahme der Bits für die Zielzahl (Ausgang 19a) kann eine Überschreitung bzw. Unterschrei-tung des gegebenen Zahlenbereiches erfolgen. Eine Überschreitung ist dabei nur möglich, wenn die Quellenzahl positiv war, eine Unterschreitung nur dann, wenn die Quellenzahl negativ war. 40 Zur Erkennung einer etwaigen Überschreitung oder Unterschreitung (Overflow oder Un-derflow) des Zahlenbereichs ist eine Logikeinheit 20 vorgesehen, der über eine Verbindung 19b vom Ausgang der Teilfeldeinheit 19 alle 80 Vorzeichenbits des Vorzeichenfeldes 19SIGN sowie das Vorzeichenbit des Zielwortes im Zielwortfeld 19DST (Bit an der Stelle 31 , in der Zeichnung mit DST (31) angegeben) zugeführt werden. Im Fall einer gültigen Zahl in der Teiles feldeinheit 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 Vorzeichenfeldes 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, so wenn das Ausgangssignal (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 Unterschreitung vorliegt, und diese Feststellung erfolgt mit Hilfe des Vorzeichenbits der Quellenzahl, wie sie im Akkumulator 12 55 enthalten ist, vgl. auch die Verbindung 12s zum Prüfblock 12 in Fig. 5. Hat dieses Vorzeichenbit 9
AT 413 895 B (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 5 das bereits in der Beschreibung der Fig. 3 angesprochene Status-Signal UFL am Ausgang 10b der Umwandlungseinheit 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 io 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 15 auf den jeweils maximalen Endwert. Mehr im Detail ist dies im Fall eines Überlaufs (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, wohingegen die Vorzeichenbits an den Stellen 31 und 32 auf 0 gestellt werden. Im Falle einer Unterschreitung (UFL) wird die größte negative Zahl (d.h. die negative Zahl mit dem größten absoluten Betrag) am Ausgang 24a abgegeben, d.h. es 20 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 bereits angeführt wird zusätzlich an den Ausgängen 10b bzw. 10c ein entsprechendes Unterschreitungssignal UFL bzw. Überlaufsignal OFL ergänzend abgegeben. 25 Beim Abschneiden der niederwertigen Bits (bei der Teilfeldeinheit 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 akkumuliert werden) diese Fehler ungünstig summieren und unter Umständen eine totale Fehlfunktion von bestimmten Algorithem nach sich ziehen können. Um dem 30 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 ΙΕΕΕ-Runden verwendet werden (vgl. beispielsweise IEEE Standard for Binary Floating-Point Arithmetic IEEE 754-1985). Bei diesem Runden werden Aufrundungen dann und nur dann vorgenommen, wenn an den Nachkommastellen (hier die Bitpositionen Nr. 0-31) 35 zumindest ein 1 -Bit zusätzlich zu einem 1 -Bit an der Stelle Nr. 31 irgendwo vorkommt (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 Logik-40 einheit 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 45 gelegt wird. Das erwähnte ΙΕΕΕ-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. so 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 Ausgang 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. 55 1 0
AT 413 895 B
Da ein solches Aufrunden wieder zu einem Zahlenüberlauf (Overflow-OFL) führen kann, ist eine weitere Saturierungseinheit 29 an den Ausgang 25a des Addierers 25 angeschlossen, und diese Saturierungseinheit 29 begrenzt in der gleichen Weise wie zuvor anhand der Saturierungseinheit 24 beschrieben das Ausgangsergebnis (das Zielwort) auf den höchstmöglichen 5 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 entsprechendes OFL-Signal beim Ausgang 29b der Saturierungseinheit 29 abgegeben, und dieses OFL-Signal wird mit dem OFL-Signal am Ausgang 23o des Prüfblocks 23 gemäß einer ODER-Funktion io verknüpft, siehe das ODER-Gatter 31 in Fig. 5, 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 Überschreitung oder Unterschreitung der Zahl bei der Rückführung auf das Teilfeld (siehe Teilfeldeinheit 19) erfolgt, die Einheiten 24, 15 25 und 29 funktionslos bleiben und die Ausgangszahl 19a der Teilfeldeinheit 19 direkt zum
Register 30 (als Ausgangs-Speichermittel) gelangt und dort gespeichert wird.
Damit ist die Zahlenformat-Umwandlung und etwaige Rundung abgeschlossen, und das Endergebnis, d.h. die Zielzahl DST, mit der gewünschten Bitbreite (entsprechend der Bitbreite des 20 Zielzahlenfeldes 10DST der Teilfeldeinheit 19), kann nun, wie vorstehend anhand insbesondere der Fig. 1 und 3 erläutert, als Ergebnis Y wieder in den allgemeinen Datenspeicher 3 eingeschrieben werden. Die Statussignale UFL und OFL werden hingegen in das Statusregister 14 (vgl. Fig. 3) geladen. 25 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 Operationen gemäß Fig. 5 zugrunde gelegt wurde. In Fig. 6 sind dabei mit einem Vorzeichen bit S versehene 4 Bit-Binärzahlen in einer Tabelle veranschaulicht, wobei bei diesem Beispiel der Wertebereich von -8 bis +7 reicht. Die positiven Zahlen sind bei P gezeigt, 30 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 negative 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. Beispielsweise kann im Fall einer 35 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 (betragsmäßig) addiert wird (siehe Pfeil 41 in Fig. 6), eine positive Zahl 40 entstehen (nämlich mit einer 0 an der Stelle des Vorzeichenbits S), so dass sich ein Unterlauf oder eine Unterschreitung des Wertebereichs ergibt.
In Fig. 7 sind ebenfalls mit einem Vorzeichen (wiederum in der 1. Spalte der Bits) behaftete 4 Bit-Binärzahlen mit ganzzahligen Anteilen I (l-lnteger) und zwei Nachkommastellen F (F-45 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 lEEE-Rundens würde beispielsweise bei den Zahlen +0,75, +1,5 und +1,75 ein Aufrunden auf +1, +2 bzw. +2 erfolgen, sollten die Nachkommastellen weggeschnitten werden; kein Aufrunden würde jedoch bei der Zahl +0,5 durchgeführt werden. Bei diesem ΙΕΕΕ-Runden wird nämlich die Zahl 0,5 so 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) gezeigten, vereinfachten Bitdarstellungen (mit gegenüber Fig. 5 wesentlich kleineren Bitbreiten) Beispiele mit Formatumwandlung 55 und Rundung, einmal mit einem Überlauf (Fig. 8) und einmal mit einer Unterschreitung (Fig. 9), 1 1
AT 413 895 B veranschaulicht.
Im Einzelnen zeigt die 1. Zeile in Fig. 8 eine 8 Bit-Quellenzahl SRC, die einen ganzzahligen 4 Bit-Anteil und 4 Bit-Nachkommastellen enthält. Das am weitesten links stehende Bit bei den 5 ganzzahligen Anteilen ist das Vorzeichenbit S. Die in der 8. 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. 10
Gemäß der Zeile (2) wird links vom Vorzeichenbit S eine Erweiterung vorgenommen, wobei dieselbe Anzahl (nämlich 6) von Bits (hier 0 -Bits) wie die Anzahl der Bits der Zielzahl DST vorangesetzt wird. Gleichzeitig werden genau so viele 0 -Bits (also 6 0 -Bits) rechts an die Quellenzahl SRC angehängt. 15 Für die nun erforderliche Verschiebung ist die Differenz zwischen der Anzahl der Nachkommastellen der Quellenzahl SRC und jener der Zielzahl DST zu berechnen (was in Fig. 5 mit der Steuereinheit 17 bewerkstelligt wird), und diese Differenz beträ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 20 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ß 6 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. Zeile von Fig. 8 negativ ( 1 -Bit an der ganz 25 linken Stelle). Die links davon stehenden 9 Bits (einschließlich des Vorzeichenbits der Zielzahl) werden nun auf Gleichheit überprü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 vorliegenden Fall den Wert 0 , so dass ein 30 Überlauf (OFL) festgestellt 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. Zeile in Fig. 8 ersichtlich 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 7 am weitesten 35 rechts stehenden Bits hierfür heranzieht. Demgemäß wird die Zielzahl DST um den Wert 0,125 (der mit 3 Bits kleinste darstellbare Wert) inkrementiert, wobei dieser Additionswert in der 6. Zeile von Fig. 8 dargestellt ist, hingegen der höchste positive Wert, der von der Saturierungseinheit 24 erhalten wird, in der 5. Zeile dargestellt ist. 40 Bei dieser Addition der Zahlen ergibt sich neuerlich eine negative Zahl, vgl. die 6. 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. Zeile von Fig. 8 gezeigt ist, und die so erhaltene Zahl wird an das Register 30 (siehe Fig. 5) als endgültige Zielzahl DST weitergegeben, wie in der 8. Zeile von Fig. 8 veranschaulicht ist. Gleichzeitig wird auch ein entspre-45 chendes Ü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 4 Bit-Nachkommastellen, wobei die dargestellte Quellenzahl SRC den (dem Betrag nach) größten negativen Wert, nämlich -4,000, hat. Die Zielzahl soll wieder 6 Bitstellen haben so und entsprechend dieser Bitanzahl werden gemäß der 2. 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. Zeile von Fig. 9 - eine Verschiebung 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. Zeile in Fig. 9, um die Bitzahl auf 6, gemäß der 55 Anzahl der Bits der Zielzahl DST, zu reduzieren, wird erkennbar, dass die Zahl nunmehr einen
Claims (10)
1 2 AT 413 895 B positiven Wert angenommen hat (das linke Bit, das Vorzeichenbit, hat den Wert 0 ), und weiters wird bei der Überlauf-/Unterlauf-Prüfung auch festgestellt, dass die 9 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. Zeile in Fig. 9. (Die Überprüfung auf Überlauf bzw. Unterlauf 5 (OFL/UFL) ergibt in diesem Beispiel, dass ein Unterlauf oder eine Unterschreitung 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. io Zeile in Fig. 9. Die weitere Saturierungseinheit 29 erkennt nun keinen Überlauf oder aber Unterlauf (7. Zeile in Fig. 9) und gibt den Zahlenwert unverändert an das nachfolgende Register 30 weiter, vgl. die 8. Zeile in Fig. 9. Die insbesondere anhand der Fig. 5 beschriebene Konfiguration kann in der Praxis bevorzugt in 15 kombinatorischer Logik (also insbesondere mit UND- und ODER-Gattern sowie mit Multiplexer-Ketten zum Verschieben etc.) realisiert werden, ohne dass speichernde Elemente (Register) dazwischen vorgesehen werden. Auf diese Weise wird erreicht, dass im selben Taktzyklus, in dem die Rechenoperationen durchgeführt werden, auch die Formatanpassungen und etwaigen Rundungs-Operationen erfolgen können. Falls ganz kurze Taktzeiten zu realisieren sind, kön-20 nen auch wie bereits erwähnt Speicherelemente (Register) zwischen einzelnen Einheiten vorgesehen werden. Vorstehend wurde in Zusammenhang mit der Rundung als Beispiel das ΙΕΕΕ-Runden erläutert. Selbstverständlich sind jedoch im Rahmen der Erfindung auch andere Arten von Rundungen 25 denkbar, wie etwa ein kaufmännisches Runden, ein bloßes Wegschneiden der hinteren Stellen und andere bekannte Rundungsarten. Von Bedeutung ist hier nur, dass die entsprechende Logik Hardware-mäßig realisiert ist, anstatt eine Programmierung für das Rechenwerk 4 vorzusehen. 30 Patentansprüche: 1. Digitale Signalverarbeitungseinrichtung mit Eingangs-Speichermitteln (3; 5), mit einem daran angeschlossenen Rechenwerk (4), das einen Datenpfad (9) definiert und zumindest 35 eine arithmetische Einheit (6) enthält sowie einen Steuereingang (2a) zur Vorgabe von Re chenoperationen aufweist, sowie mit Ausgangs-Speichermitteln (8), wobei im Datenpfad (9) zwischen der arithmetischen Einheit (6; 7) und den Ausgangs-Speichermitteln (8) eine Zahlenformat-Umwandlungseinheit (10) mit einer Verschiebeeinheit (17) enthalten ist, dadurch gekennzeichnet, dass der Zahlenformat-Umwandlungseinheit (10) eine Zahlenfor-40 mat-Vorgabeeinheit (11), z.B. in Form eines Registers, sowie eine damit verbundene, auf Basis der Zahlenformat-Vorgabe erforderliche Verschiebeoperationen berechnende Steuereinheit (17') zugeordnet sind, wobei Formatierungsoperationen automatisch aus Eingangs- und Ausgangsformat-Informationen errechnet und entsprechende Befehle an die Verschiebeeinheit (17) angelegt werden. 45
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, so dass die Steuereinheit (17’) in die Verschiebeeinheit (17) integriert ist.
4. Digitale Signalverarbeitungseinrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Zahlenformat-Umwandlungseinheit (10) eine die Breite einer Eingangszahl (SRC) erweiternde Erweiterungseinheit (16) aufweist, wobei die mit dieser Er- 55 Weiterungseinheit (16) verbundene Verschiebeeinheit (17) die Bits der erweiterten Ein- 1 3 AT 413 895 B gangszahl um einen vorgegebenen Betrag verschiebt.
5. Digitale Signalverarbeitungseinrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass an die Verschiebeeinheit (17) eine Teilfeldeinheit (19) angeschlossen 5 ist.
6. Digitale Signalverarbeitungseinrichtung nach Anspruch 5, dadurch gekennzeichnet, dass die Teilfeldeinheit (19) ein Vorzeichenfeld (19SIGN) aufweist, an das eine Logikeinheit (20) angeschlossen ist, die erkennt, ob das Vorzeichenfeld (19SIGN) nur 0 (Nullen) oder nur io 1 (Einser) enthält, oder ob verschiedene Vorzeichen-Bitpositionen vorliegen, wobei der Zustand nur Nullen einem Überlauf (OFL) und der Zustand nur Einser einer Überschreitung (UFL) entspricht.
7. Digitale Signalverarbeitungseinrichtung nach Anspruch 6, dadurch gekennzeichnet, dass 15 die Logikeinheit (20) ein ODER-Gatter (21) zum Erkennen des Zustandes nur Nullen und ein UND-Gatter (22) zum Erkennen des Zustandes nur Einser aufweist.
8. Digitale Signalverarbeitungseinrichtung nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass an die Logikeinheit (20) sowie an die Teilfeldeinheit (19) eine Saturierungseinheit (24) 20 angeschlossen ist, die bei einem Überlauf (OFL) die von der Teilfeldeinheit (19) abgegebe ne Zahl auf die größte positive Zahl und bei einer Überschreitung (UFL) auf die größte negative Zahl setzt.
9. Digitale Signalverarbeitungseinrichtung nach einem der Ansprüche 6 bis 8, dadurch ge- 25 kennzeichnet, dass die Zahlenformat-Umwandlungseinheit (10) mit einer Rundungseinheit (15) kombiniert ist, die einen Addierer (25) enthält, der über eine Logikeinheit (26) an die Teilfeldeinheit (19) angeschlossen ist.
10. Digitale Signalverarbeitungseinrichtung nach Anspruch 9 und Anspruch 8, dadurch gern kennzeichnet, dass an die Rundungseinheit (15) und an die Saturierungseinheit (24) eine weitere Saturierungseinheit (29) angeschlossen ist, die bei einem auf ein Aufrunden erfolgenden Überlauf die Ergebniszahl auf die größte positive Zahl setzt und zugleich ein Überlauf-Signal (OFL) abgibt. 35 Hiezu 5 Blatt Zeichnungen 40 45 50 55
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT0140603A AT413895B (de) | 2003-09-08 | 2003-09-08 | Digitale signalverarbeitungseinrichtung |
US10/571,021 US20070033152A1 (en) | 2003-09-08 | 2004-09-07 | Digital signal processing device |
CA002537549A CA2537549A1 (en) | 2003-09-08 | 2004-09-07 | Digital signal processing device |
EP04761027A EP1665029A2 (de) | 2003-09-08 | 2004-09-07 | Digitale signalverarbeitungseinrichtung |
PCT/AT2004/000305 WO2005024542A2 (de) | 2003-09-08 | 2004-09-07 | Digitale signalverarbeitungseinrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AT0140603A AT413895B (de) | 2003-09-08 | 2003-09-08 | Digitale signalverarbeitungseinrichtung |
Publications (2)
Publication Number | Publication Date |
---|---|
ATA14062003A ATA14062003A (de) | 2005-10-15 |
AT413895B true AT413895B (de) | 2006-07-15 |
Family
ID=34229714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AT0140603A AT413895B (de) | 2003-09-08 | 2003-09-08 | Digitale signalverarbeitungseinrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070033152A1 (de) |
EP (1) | EP1665029A2 (de) |
AT (1) | AT413895B (de) |
CA (1) | CA2537549A1 (de) |
WO (1) | WO2005024542A2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7515456B2 (en) * | 2006-09-11 | 2009-04-07 | Infineon Technologies Ag | Memory circuit, a dynamic random access memory, a system comprising a memory and a floating point unit and a method for storing digital data |
US11226840B2 (en) | 2015-10-08 | 2022-01-18 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that interrupts processing core upon condition |
US10725934B2 (en) | 2015-10-08 | 2020-07-28 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processor with selective data storage (of accelerator) operable as either victim cache data storage or accelerator memory and having victim cache tags in lower level cache wherein evicted cache line is stored in said data storage when said data storage is in a first mode and said cache line is stored in system memory rather then said data store when said data storage is in a second mode |
US10776690B2 (en) | 2015-10-08 | 2020-09-15 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with plurality of selectable output functions |
US11221872B2 (en) | 2015-10-08 | 2022-01-11 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that interrupts processing core upon condition |
US11216720B2 (en) | 2015-10-08 | 2022-01-04 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that manages power consumption based on memory accesses per period |
US10380481B2 (en) | 2015-10-08 | 2019-08-13 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs concurrent LSTM cell calculations |
US10664751B2 (en) | 2016-12-01 | 2020-05-26 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either cache memory or neural network unit memory |
CN106485318B (zh) * | 2015-10-08 | 2019-08-30 | 上海兆芯集成电路有限公司 | 具有混合协处理器/执行单元神经网络单元的处理器 |
US11029949B2 (en) | 2015-10-08 | 2021-06-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit |
US10353860B2 (en) | 2015-10-08 | 2019-07-16 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with neural processing units dynamically configurable to process multiple data sizes |
US10228911B2 (en) * | 2015-10-08 | 2019-03-12 | Via Alliance Semiconductor Co., Ltd. | Apparatus employing user-specified binary point fixed point arithmetic |
US10430706B2 (en) | 2016-12-01 | 2019-10-01 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either last level cache slice or neural network unit memory |
US10423876B2 (en) | 2016-12-01 | 2019-09-24 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either victim cache or neural network unit memory |
US10515302B2 (en) | 2016-12-08 | 2019-12-24 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with mixed data and weight size computation capability |
US10565492B2 (en) | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10565494B2 (en) | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10586148B2 (en) | 2016-12-31 | 2020-03-10 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with re-shapeable memory |
US10140574B2 (en) | 2016-12-31 | 2018-11-27 | Via Alliance Semiconductor Co., Ltd | Neural network unit with segmentable array width rotator and re-shapeable weight memory to match segment width to provide common weights to multiple rotator segments |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4876660A (en) * | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
US5844827A (en) * | 1996-10-17 | 1998-12-01 | Samsung Electronics Co., Ltd. | Arithmetic shifter that performs multiply/divide by two to the nth power for positive and negative N |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07109975B2 (ja) * | 1989-10-02 | 1995-11-22 | 富士ゼロックス株式会社 | ディジタルフィルタ |
US5666300A (en) * | 1994-12-22 | 1997-09-09 | Motorola, Inc. | Power reduction in a data processing system using pipeline registers and method therefor |
US5764549A (en) * | 1996-04-29 | 1998-06-09 | International Business Machines Corporation | Fast floating point result alignment apparatus |
US5930159A (en) * | 1996-10-17 | 1999-07-27 | Samsung Electronics Co., Ltd | Right-shifting an integer operand and rounding a fractional intermediate result to obtain a rounded integer result |
US5745393A (en) * | 1996-10-17 | 1998-04-28 | Samsung Electronics Company, Ltd. | Left-shifting an integer operand and providing a clamped integer result |
KR100236533B1 (ko) * | 1997-01-16 | 2000-01-15 | 윤종용 | 배럴 쉬프터와 산술논리 연산기가 연결되어 있는 디지탈 신호 처리기 및 그 오버플로 검출방법 |
US6317770B1 (en) * | 1997-08-30 | 2001-11-13 | Lg Electronics Inc. | High speed digital signal processor |
US6289365B1 (en) * | 1997-12-09 | 2001-09-11 | Sun Microsystems, Inc. | System and method for floating-point computation |
US6535900B1 (en) * | 1998-09-07 | 2003-03-18 | Dsp Group Ltd. | Accumulation saturation by means of feedback |
KR100325430B1 (ko) * | 1999-10-11 | 2002-02-25 | 윤종용 | 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법 |
US6829627B2 (en) * | 2001-01-18 | 2004-12-07 | International Business Machines Corporation | Floating point unit for multiple data architectures |
-
2003
- 2003-09-08 AT AT0140603A patent/AT413895B/de not_active IP Right Cessation
-
2004
- 2004-09-07 US US10/571,021 patent/US20070033152A1/en not_active Abandoned
- 2004-09-07 WO PCT/AT2004/000305 patent/WO2005024542A2/de not_active Application Discontinuation
- 2004-09-07 EP EP04761027A patent/EP1665029A2/de not_active Withdrawn
- 2004-09-07 CA CA002537549A patent/CA2537549A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4876660A (en) * | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
US5844827A (en) * | 1996-10-17 | 1998-12-01 | Samsung Electronics Co., Ltd. | Arithmetic shifter that performs multiply/divide by two to the nth power for positive and negative N |
Also Published As
Publication number | Publication date |
---|---|
WO2005024542A3 (de) | 2005-05-26 |
US20070033152A1 (en) | 2007-02-08 |
CA2537549A1 (en) | 2005-03-17 |
EP1665029A2 (de) | 2006-06-07 |
ATA14062003A (de) | 2005-10-15 |
WO2005024542A2 (de) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AT413895B (de) | Digitale signalverarbeitungseinrichtung | |
DE2616717C2 (de) | Digitales Addierwerk | |
DE2246968C2 (de) | Einrichtung zur Multiplikation zweier Gleitkommazahlen | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE4302898A1 (en) | Arithmetic logic unit with accumulator function - has two memories and counter with selection to reduce delay in processing | |
DE1499722B1 (de) | Einrichtung zur modifizierung von informationswoertern | |
DE69324730T2 (de) | Multiplizier-Akkumulator | |
DE1268886B (de) | Binaeres Serienaddierwerk | |
DE2816711A1 (de) | Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau | |
DE2814078A1 (de) | Addierschaltung mit zeitweiliger zwischenspeicherung des uebertrags | |
DE2063199B2 (de) | Einrichtung zur Ausführung logischer Funktionen | |
DE2758130A1 (de) | Binaerer und dezimaler hochgeschwindigkeitsaddierer | |
EP0344347B1 (de) | Einrichtung zur digitalen Signalverarbeitung | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE3447634A1 (de) | Dividiervorrichtung | |
DE1499286B2 (de) | Datenbearbeitungsanlage | |
DE1499227C3 (de) | Schaltungsanordnung für arithmetische und logische Grundoperationen | |
DE1184122B (de) | Addiervorrichtung | |
DE3104256C2 (de) | ||
DE19637369C2 (de) | Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren | |
DE10329608A1 (de) | Verringerung von Rundungsfehlern bei der Bearbeitung digitaler Bilddaten | |
DE69702206T2 (de) | Parallele dezimationsvorrichtung | |
DE1549485A1 (de) | Anordnung zur Division binaerer Operanden | |
DE2708637C3 (de) | Schaltungsanordnung zur Bildung einer BCD-Summe oder einer reinen Binär-Summe aus einem ersten und einem zweiten Operanden | |
DE10139099C2 (de) | Carry-Ripple Addierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ELJ | Ceased due to non-payment of the annual fee |