DE69925123T2 - Datenberechnungvorrichtung - Google Patents

Datenberechnungvorrichtung Download PDF

Info

Publication number
DE69925123T2
DE69925123T2 DE69925123T DE69925123T DE69925123T2 DE 69925123 T2 DE69925123 T2 DE 69925123T2 DE 69925123 T DE69925123 T DE 69925123T DE 69925123 T DE69925123 T DE 69925123T DE 69925123 T2 DE69925123 T2 DE 69925123T2
Authority
DE
Germany
Prior art keywords
data
group
block
scaling factor
scaling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69925123T
Other languages
English (en)
Other versions
DE69925123D1 (de
Inventor
Shiro Yokohama-shi KOBAYASHI
Gerhard Fettweis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP Semiconductors Germany GmbH
Asahi Kasei Corp
Original Assignee
Philips Semiconductors Dresden AG
Asahi Kasei Corp
Asahi Kasei Chemicals Corp
Asahi Chemical Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Semiconductors Dresden AG, Asahi Kasei Corp, Asahi Kasei Chemicals Corp, Asahi Chemical Industry Co Ltd filed Critical Philips Semiconductors Dresden AG
Priority to DE69925123T priority Critical patent/DE69925123T2/de
Application granted granted Critical
Publication of DE69925123D1 publication Critical patent/DE69925123D1/de
Publication of DE69925123T2 publication Critical patent/DE69925123T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Description

  • TECHNISCHES GEBIET
  • Die Erfindung betrifft eine Vorrichtung zum Verarbeiten von Daten in einer Datenblockeinheit, die konfiguriert ist zur Gewinnung einer Datengruppe, die ein oder mehrere Stücke von Daten enthält, und darüber hinaus mehrere Datengruppen enthält, und spezieller einen digitalen Signalprozessor vom Block-Fließkommatyp (im folgenden einfach als DSP bezeichnet) zur Durchführung einer Festkommarechnung in einem Block-Fließkommasystem.
  • STAND DER TECHNIK
  • Als ein Verfahren zur Darstellung eines Werts in einer digitalen Signalverarbeitung ist die Festkommadarstellung oder die Fließkommadarstellung bekannt.
  • Bei der Fließkommadarstellung hat jedes Stück von Daten einen Exponenten und eine Mantisse, wodurch eine hohe Genauigkeit und ein weiter dynamischer Bereich garantiert werden. Ein Problem liegt jedoch darin, dass eine komplizierte hoch technische Hardware erforderlich ist.
  • Andererseits ist bei der Festkommadarstellung lediglich eine einfache und wenig umfangreiche Hardware erforderlich, jedoch liegt ein Problem in einer Verschlechterung der Rechengenauigkeit. 10 zeigt ein Beispiel eines typischen DSP vom herkömmlichen Festkommatyp. 10 zeigt einen tatsächlichen Aufbau eines DSP vom herkömmlichen Festkommatyp, und die Anzahl an Bits der Daten in der Eingabe/Ausgabe-Stufe jeder Komponente.
  • Wie in 10 gezeigt, enthält der herkömmliche DSP vom Festkommatyp einen Datenspeicher 100 zum Speichern von Daten in einer n-Bit Länge, eine Multiplikator-Akkumulations-Operationseinheit 12 zum Empfangen von n-Bit Daten von dem Datenspeicher 100 und zum Ausgeben von 2n-Bit berechneten Daten, eine Auswahlschaltung 13 zum Auswählen höherer n-Bit Daten von den 2n-Bit berechneten Daten, und einen Datenbus 110. Der DSP liest Daten, die zu berechnen sind, aus dem Datenspeicher 100, verarbeitet die gelesenen Daten in der Multiplikator-Akkumulations-Operationseinheit 12, wählt durch die Auswahlschaltung 13 die höheren n-Bit Daten von den berechneten Daten aus, die von der Multiplikator-Akkumulations-Operationseinheit 12 empfangen worden sind, und speichert erneut die berechneten Daten von der Auswahlschaltung 13 in den Datenspeicher 100.
  • Die Multiplikator-Akkumulations-Operationseinheit 12 enthält eine erste Registerdatei 12a zum Halten von Daten von dem Datenspeicher 100, einen Multiplizierer 12b zum Multiplizieren der Daten von der ersten Registerdatei 12a, einen Addierer 12c zum Addieren der multiplizierten Daten von dem Multiplizierer 12b, um die Daten, die bis zu diesem Zeitpunkt gewonnen worden sind, zu summieren, und eine Registerdatei 12d zum Halten der summierten Daten von dem Addierer 12c als die berechneten Daten.
  • Die Verschlechterung der Rechengenauigkeit erfolgt durch das Abschneiden der unteren n-Bits, wenn die Auswahlschaltung 13 die n-Bits von den 2n-Bits auswählt.
  • Die Verschlechterung der Rechengenauigkeit bei der Festkommadarstellung wird erklärt, indem die folgenden Gleichungen (1) und (2) verwendet werden. Die Multiplikator-Akkumulations-Operationseinheit 12 führt Operationen durch, indem die folgenden Gleichungen (1) und (2) verwendet werden.
  • Zur einfacheren Erklärung werden die Daten von dem Datenspeicher 100 als 8-Bits angenommen. Die Ausgabe der Multiplikator-Akkumulations-Operationseinheit 12 erfolgt mit 16-Bits, und die Daten X(0) bis X(7) und die Koeffizientendaten (A(0) bis A(3), B(0) bis B(1) werden für die Multiplikator-Akkumulations-Operationseinheit 12 bereitgestellt zur Berechnung. Die Daten X(0) bis X(7) und die Koeffizientendaten (A(0) bis A(3), B(0) und B(1) haben jeweils Werte, wie in 11 gezeigt, und X(–3) = X(–2) = X(–1) = Y(–1) = 0. Darüber hinaus, wie in 2 gezeigt, sind die signifikantesten Bits (MSB) der Daten und der Koeffizientendaten die Vorzeichenbits, und ein Binäreskomma wird zwischen dem Vorzeichenbit und einem rechten benachbarten Bit platziert. Das rechte benachbarte Bit des Vorzeichenbits hat die Signifikanz von 0,5, und die Dezimaldarstellung der Werte jedes Stücks von Daten und Koeffizientendaten ist in 11 gezeigt.
  • 13 zeigt ein Operationsergebnis, das erhalten wird, wenn eine Operation mit den folgenden Gleichungen (1) und (2) durchgeführt wird, indem der DSP vom herkömmlichen Festkommatyp verwendet wird. 13 zeigt auch ein Operationsergebnis (binäre Darstellung und Dezimaldarstellung), das letztendlich im Datenspeicher 100 gespeichert wird, die Ausgabe (16-Bit Binärdarstellung) der Multiplikator-Akkumulations-Operationseinheit 12 als ein Zwischenergebnis, und ein Operationsergebnis, das erhalten wird, wenn eine Operation durchgeführt wird, indem ein Fließkomma zum Vergleich verwendet wird. Da die Daten unterhalb von 8-Bits verloren gehen, wenn 8-Bits von den 16-Bits ausgewählt werden, reduziert sich die Genauigkeit. Ein Signal-zu-Rausch Verhältnis (SNR) wird als Skalierung eingeführt, die das Ausmaß der Verschlechterung der Genauigkeit angibt, und durch die folgende Gleichung (3) definiert ist.
  • Die folgende Gleichung (3) zeigt eine Operation, die durchgeführt wird, indem eine Summe des Quadrats eines Ergebnisses eines Fließkommaoperationsergebnisses durch eine Summe von Quadraten eines Fehlers (Differenz zwischen einem Ergebnis einer Festkommaoperation und einem Ergebnis einer Fließkommaoperation) geteilt wird. Ein kleinerer Wert gibt eine geringere Genauigkeit an. Wenn das SNR berechnet wird, indem das Ergebnis verwendet wird, wie in 13 gezeigt, wird das Ergebnis durch die folgende Gleichung (4) und (5) erhalten. Die folgende Gleichung (4) zeigt das SNR basierend auf dem Operationsergebnis der folgenden Gleichung (1). Die folgende Gleichung (5) zeigt das SNR basierend auf dem Operationsergebnis der folgenden Gleichung (2).
  • Bei der Festkommadarstellung verschlechtert sich bei der Wiederholung von vorteillaufenden Operationen folglich die Genauigkeit erheblich.
  • Das Block-Fließkomma System wurde entwickelt, um das oben genannte Problem zu lösen. Bei diesem System wird eine vorbestimmte Anzahl (beispielsweise m) von Stücken von Daten als ein Datenblock definiert, ein Blockskalierungsfaktor einem Datenblock zugewiesen, und ein "joint scaling" (im folgenden als Blocknormalisierung bezeichnet) durchgeführt für Stücke von Daten in dem Datenblock, wodurch die Verschlechterung der Genauigkeit reduziert wird, indem effizient ein begrenzter dynamischer Bereich verwendet wird.
  • Um effizient das Block-Fließkomma zu realisieren, wird beispielsweise ein DSP, wie in 14 gezeigt, vorgeschlagen (Japanische Patentoffenlegung Nr. 10-40073).
  • Zusätzlich zu der Konfiguration des oben genannten herkömmlichen DSP vom Festkommatyp, enthält der DSP vom Block-Fließkommatyp, wie in 14 gezeigt, den zweiten Schieber 10 zur Blocknormalisierung der Eingabedaten zu der Multiplikator-Akkumulations-Operationseinheit 12 basierend auf einem gegebenen Skalierungsfaktor; einen Blockskalierungsfaktordetektor 54 zum Detektieren eines Blockskalierungsfaktors basierend auf jedem Stück von Daten, das in dem Datenblock enthalten ist; und ein Blockskalierungsfaktorregister 56, das den Blockskalierungsfaktor speichert.
  • Der Blockskalierungsfaktordetektor 54 empfängt die berechneten Daten von der Auswahlschaltung 13, detektiert die Daten, deren absoluter Wert der größte in allen Daten des Datenblocks ist, und die detektierte Anzahl von redundanten Bits wird als ein Blockskalierungsfaktor detektiert.
  • Wenn ein zweiter Schieber 10 den Blockskalierungsfaktor des Blockskalierungsfaktorregisters 56 von der Steuervorrichtung, nicht in den Figuren gezeigt, empfängt, schiebt der zweite Schieber 10 die Bits in einem Ausmaß, das dem Skalierungsfaktor entspricht, in höhere Bitrichtung für jedes Stück von Daten des Datenblocks (im folgenden als Linksschieben bezeichnet).
  • Als nächstes werden im folgenden die Operationen beschrieben, die durchgeführt werden, wenn die folgenden Gleichungen (1) und (2) in dem oben genannten herkömmlichen DSP vom Block-Fließkommatyp verwendet werden.
  • Zuerst wird die Anzahl an Stücken von Daten, die in dem Datenblock enthalten sind, als "Blockgröße" definiert, und eine Reihe von Prozessen, bei denen jedes Stück von Daten in dem Datenblock aus dem Datenspeicher 100 gelesen wird, eine Multiplikator-Akkumulations-Operation mit den Daten durchgeführt wird, und dann die berechneten Daten, die ein Operati onsergebnis sind, in dem Datenspeicher 100 erneut gespeichert werden, als "Block-Prozesse" definiert.
  • In den folgenden Gleichungen (1) und (2) wird eine Operation durch die folgende Gleichung (1) durchgeführt mit der Blockgröße von 8 und einer Eingabe von Datenblöcken X(0) bis X(7) in den ersten Blockprozess, um Y(0) bis Y(7) zu erhalten, und eine Operation wird mit der folgenden Gleichung (2) durchgeführt mit der Blockgröße von 8 und einer Eingabe von Datenblöcken Y(0) bis Y(7) in den zweiten Blockprozess, um Z(0) bis Z(7) zu gewinnen. In dem ersten Blockprozess, da der Blockskalierungsfaktor von 0 in den Blockskalierungsfaktorregister 56 gesetzt ist, wird der Blocknormalisierungsprozess nicht mit dem zweiten Schieber 10 durchgeführt. In der folgenden Beschreibung wird das Verfahren des Setzens der Koeffizientendaten A(0) bis A(3), B(0) und B(1) nicht speziell erklärt, sondern kann aus dem Datenspeicher 100 ausgelesen werden, falls erforderlich.
  • In dem ersten Schritt wird der folgende Prozess für n = 0 bis 7 durchgeführt. Die Daten X(n), X(n – 1), X(n – 2) werden sequentiell aus dem Datenspeicher 100 gelesen und in den zweiten Schieber 10 eingegeben. In dem ersten Blockprozess, da der Blockskalierungsfaktor des Blockskalierungsfaktorregisters 56 gleich 0 ist, wird der Blocknormalisierungsprozess nicht mit dem zweiten Schieber 10 durchgeführt, und X(n), X(n – 1), X(n – 2) wird wie sie sind in die Multiplikator-Akkumulations-Operationseinheit 12 eingegeben. Die Multiplikator-Akkumulations-Operationseinheit 12 führt eine Operation mit der folgenden Gleichung (1) durch, und gibt die berechneten Daten in die Auswahlschaltung 13 ein. Die Auswahlschaltung 13 wählt und gewinnt die höheren n-Bits von den berechneten Daten. Die n-Bit berechneten Daten von der Auswahlschaltung 13 werden in dem Datenspeicher 100 über den Datenbus 110 als Y(n) gespeichert. Andererseits parallel zu dem Speicherprozess werden die berechneten Daten Y(n) in den Blockskalierungsfaktordetektor 54 eingegeben, um den Blockskalierungsfaktor, der in dem zweiten Blockprozess verwendet wird, zu bestimmen.
  • Wenn der Prozess in dem ersten Schritt beendet ist, bestimmt der Blockskalierungsfaktordetektor 54 in dem zweiten Schritt den Blockskalierungsfaktor, der in dem zweiten Blockprozess verwendet wird, und speichert den bestimmten Blockskalierungsfaktor in dem Blockskalierungsfaktorregister 56.
  • Dann, in dem dritten Schritt, wird der folgende Prozess für n = 0 bis 7 durchgeführt. Die Daten Y(n), Y(n – 1) werden sequentiell aus dem Datenspeicher 100 ausgelesen, und in den zweiten Schieber 10 eingegeben. Der zweite Schieber 10 führt den Blocknormalisierungsprozess basierend auf dem Blockskalierungsfaktor des Blockskalierungsfaktorregisters 56 durch, und gibt die blocknormalisierten Daten in die Multiplikator-Akkumulations-Operationseinheit 12 ein. Die Multiplikator-Akkumulations-Operationseinheit 12 führt eine Operation durch die folgende Gleichung (2) durch, und gibt die berechneten Daten in die Auswahlschaltung 13. Die Auswahlschaltung 13 wählt und holt die höheren n-Bits von den berechneten Daten. Die n-Bits berechneten Daten von der Auswahlschaltung 13 werden über den Datenbus 110 in dem Datenspeicher 100 als Z(n) gespeichert. Andererseits, parallel zu dem Speicherprozess, werden die berechneten Daten Z(n) in den Blockskalierungsfaktordetektor 54 eingegeben, um den Blockskalierungsfaktor, der in dem dritten Blockprozess verwendet wird, zu bestimmen.
  • Wenn der Prozess in dem dritten Schritt beendet ist, bestimmt der Blockskalierungsfaktordetektor 54 in dem vierten Schritt den Blockskalierungsfaktor, der in dem dritten Blockprozess verwendet wird, und er speichert den bestimmten Blockskalierungsfaktor in dem Blockskalierungsfaktorregister 56.
  • 15 zeigt das Operationsergebnis des tatsächlichen Block-Fließkommaprozesses, der mit den folgenden Gleichungen (1) und (2) nach den oben genannten Prozessen in den Schritten 1 bis 4 durchgeführt wird. Wenn das SNR durch die folgende Gleichung (3) berechnet wird, indem das Operationsergebnis verwendet wird, werden die Operationen durch die folgenden Gleichungen (6) und (7) ausgedrückt. Die folgende Gleichung (6) zeigt das SNR basierend auf dem Operationsergebnis der folgenden Gleichung (1). Die folgende Gleichung (7) zeigt das SNR basierend auf dem Operationsergebnis der folgenden Gleichung (2).
  • Gemäß den folgenden Gleichungen (6) und (7) wird die Genauigkeit weiter verbessert, als bei einer einfachen Durchführung der Festkommaberechnung.
  • Wie in dem oben genannten Beispiel gezeigt, kann der herkömmliche DSP vom Block-Fließkommatyp die Rechengenauigkeit weiter verbessern, als der herkömmliche DSP vom Festkommatyp, jedoch verbleibt das Problem der Rechengenauigkeit.
  • Da der oben genannte herkömmliche DSP vom Block-Fließkommatyp den Blockskalierungsfaktor nicht bestimmen kann bis zum Ende des Blockprozesses, wählt die Auswahlschaltung 13 die höheren n-Bits, speichert sie in dem Datenspeicher 100, und schiebt die berechneten Daten nach links mit einem Ausmaß an Verschiebung entsprechend dem Blockskalierungsfaktor. Folglich ist die Anzahl an niedrigeren Bits, die dem Blockskalierungsfaktor in den Daten von dem zweiten Schieber 10 entsprechen, gleich 0, was keine Information trägt.
  • 16 zeigt den Vergleich zwischen den idealen Daten und den herkömmlichen Daten, die nach Durchführung eines Blocknormalisierungsprozesses gewonnen werden, unter der Annahme, dass die berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 gleich 16-Bits sind, die Daten von dem Datenspeicher 100 gleich 8-Bits, die berechneten Daten "00001101 11010101", und der Blockskalierungsfaktor, der nach Durchführung des Blockprozesses bestimmt wird, gleich "2" ist. In diesem Beispiel sind die unteren zwei 2 Bits der blocknormalisierten Daten idealerweise "11", der herkömmliche DSP gibt jedoch tatsächlich "00" an. Dies ist ein Faktor, der verhindert, dass die Rechengenauigkeit verbessert wird.
  • Die US 4,872,132 offenbart ein Verfahren und ein Mittel für eine Block-Fließkommaarithmetik, wobei ein Skalierungsfaktor verwendet wird, der der Gesamtanzahl an Rechtsschiebungen, die in einer FFT-Operation durchgeführt werden, entspricht.
  • Die vorliegende Erfindung wurde entwickelt, um die oben genannte Probleme der herkömmlichen Technologie zu lösen, und hat zum Ziel, die Bereitstellung eines Datenberechnungsverfahrens und einer Vorrichtung zur Verbesserung der Rechengenauigkeit, wenn eine Festkommaberechnung mit einem Block-Fließkommasystem durchgeführt wird.
  • Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und eine Vorrichtung nach Anspruch 3 jeweils gelöst.
  • Die Erfindung teilt ferner einen Datenblock, der in der herkömmlichen Technologie ein Datensegment ist, durch Einführung einer Datengruppe, die ein neues Segment ist. Ein Datenblock ist also konfiguriert durch Einfügen mehrerer Datengruppen, während eine Datengruppe konfiguriert ist durch Einfügen mehrerer Stücke von Daten. Die Anzahl an Stücken von Daten, die in einer Datengruppe enthalten sind, wird als "Gruppengröße" definiert.
  • Mit dem Verfahren nach Anspruch 1 wird eine Operation für jedes Stück von Daten der Datengruppe durchgeführt, der Skalierungsfaktor der berechneten Daten, die den größten absoluten Wert aufweisen, als ein Gruppenskalierungsfaktor detektiert, und eine Skalierung für jedes Stück der berechneten Daten basierend auf dem detektierten Gruppenskalierungsfaktor durchgeführt. Die Reihe von Prozessen wird für jede Datengruppe des Datenblocks durchgeführt. Wenn die Prozesse für einen Datenblock beendet sind, wird der Gruppenskalierungsfaktor, der den berechneten Daten entspricht, die den größten absoluten Wert in den Gruppenskalierungsfaktoren aufweisen, die für die entsprechenden Datengruppen detektiert werden, als ein Blockskalierungsfaktor detektiert.
  • Wenn die Operation erneut für die skalierten berechneten Daten durchgeführt wird, führt die Vorrichtung die Skalierung für jedes Stück der berechneten Daten der Datengruppe basierend auf dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor durch.
  • Anschließend wird die Operation für jedes Stück der skalierten berechneten Daten durchgeführt, der Skalierungsfaktor der berechneten Daten, die den größten absoluten Werte in den berechneten Daten aufweisen, als ein Gruppenskalierungsfaktor detektiert, und eine Skalierung für jedes Stück der berechneten Daten basierend auf dem detektierten Gruppenskalierungsfaktor durchgeführt. Die Folgen der Prozesse werden für jede Datengruppe in einem Datenblock durchgeführt. Wenn die Prozesse für einen Datenblock beendet sind, wird ein Gruppenskalierungsfaktor, der den größten absoluten Wert in den Gruppenskalierungsfaktoren aufweist, die für die jeweiligen Datengruppen detektiert worden sind, als ein Blockskalierungsfaktor detektiert.
  • Ein Skalierungsfaktor kann beispielsweise das Ausmaß der Verschiebung bei der Bitverschiebung von Daten sein. In diesem Fall wird eine Skalierung durchgeführt, indem Bits für Daten mit dem Ausmaß der Verschiebung verschoben werden, entsprechend dem Skalierungsfaktor.
  • Die Konfiguration für das Detektieren eines Gruppenskalierungsfaktors kann derart ausgelegt sein, dass nach Durchführen einer Operation für jedes Stück von Daten in einer Datengruppe ein Skalierungsfaktor der berechneten Daten berechnet werden kann, und der kleinste Skalierungsfaktor in den berechneten Skalierungsfaktoren kann als ein Gruppenskalierungsfaktor detektiert werden, oder ein Gruppenskalierungsfaktor kann direkt aus den berechneten Daten detektiert werden, ohne Berechnung der Skalierungsfaktoren der berechneten Daten.
  • Wenn die Operation erneut für die skalierten Daten durchgeführt wird, erfolgt gemäß dem Verfahren nach Anspruch 2 die Skalierung für jedes Stück der berechneten Daten in der Datengruppe basierend auf der Differenz zwischen dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor.
  • Mit der Konfiguration gemäß Anspruch 3 liest das Steuermittel Daten in einer Datenblockeinheit von dem Speichermittel, und ordnet für jede Datengruppe eines Datenblocks die Daten einer Datengruppe dem ersten Skalierungsmittel von jeder der Berechnungseinheiten zu.
  • Da ein Skalierungsfaktor nicht dem ersten Skalierungsmittel im Anfangszustand in jeder der Berechnungseinheiten zugewiesen ist, wird keine Skalierung durch das erste Skalierungsmittel durchgeführt, und die Daten werden so wie sie sind, in das Operationsmittel eingegeben. Das Operationsmittel führt dann eine Operation mit den Daten von dem ersten Skalierungsmittel durch, und das Skalierungsfaktorberechnungsmittel berechnet einen Skalierungsfaktor der berechneten Daten von dem Operationsmittel.
  • Wenn ein Skalierungsfaktor in jeder Berechnungseinheit berechnet ist, detektiert das Gruppenskalierungsfaktordetektionsmittel einen Skalierungsfaktor, der den berechneten Daten entspricht, der den größten absoluten Wert in den Skalierungsfaktoren, die durch das Skalierungsfaktorberechnungsmittel jeder Berechnungseinheit berechnet worden ist, aufweist, als einen Gruppenskalierungsfaktor, und das Steuermittel weist dem berechneten Gruppenskalierungsfaktor dem zweiten Skalierungsmittel jeder Berechnungseinheit zu.
  • Folglich führt in jeder Berechnungseinheit das zweite Skalierungsmittel eine Skalierung der berechneten Daten von dem Operationsmittel basierend auf einem gegebenen Gruppenskalierungsfaktor durch.
  • Wenn eine Skalierung der berechneten Daten in jeder Berechnungseinheit durchgeführt wird, steuert das Steuermittel das Speichermittel, um die berechneten Daten von dem zweiten Skalierungsmittel jeder Berechnungseinheit zu speichern, und das Blockskalierungsfaktordetektionsmittel detektiert einen Gruppenskalierungsfaktor, der den berechneten Daten entspricht, der den größten absoluten Wert in den Gruppenskalierungsfaktoren aufweist, die durch das Gruppenskalierungsfaktordetektionsmittel detektiert worden sind, als einen Blockskalierungsfaktor.
  • Wenn die Operation erneut für die berechneten Daten in dem Speichermittel durchgeführt wird, liest das Steuermittel die berechneten Daten aus dem Speichermittel in einer Datenblockeinheit, und ordnet für jede Datengruppe des Datenblocks die berechneten Daten der Datengruppe dem ersten Skalierungsmittel jeder Berechnungseinheit zu, und weist einen Skalierungsfaktor gewonnen wird, der als Differenz zwischen dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor gewonnen wird, dem ersten Skalierungsfaktor jeder Berechnungseinheit zu.
  • In jeder Berechnungseinheit führt das erste Skalierungsmittel eine Skalierung für die gegebenen berechneten Daten basierend auf dem Skalierungsfaktor durch, der als die Differenz zwischen dem Gruppenskalierungsfaktor, der in dem vorherigen Prozess detektiert worden ist, und dem Blockskalierungsfaktor gewonnen wird, das Operationsmittel führt eine Operation für die berechneten Daten von dem ersten Skalierungsmittel durch, und das Skalierungsfaktorberechnungsmittel berechnet den Skalierungsfaktor der berechneten Daten von dem Operationsmittel.
  • Wenn ein Skalierungsfaktor in jeder Berechnungseinheit berechnet worden ist, detektiert das Gruppenskalierungsfaktordetektionsmittel einen Skalierungsfaktor, entsprechend den berechneten Daten, die den größten absoluten Wert in den Skalierungsfaktoren aufweisen, die durch das Skalierungsberechnungsmittel jeder Berechnungseinheit berechnet worden sind, als einen Gruppenskalierungsfaktor, und das Steuermittel weist den berechneten Gruppenskalierungsfaktor dem zweiten Skalierungsmittel jeder Berechnungseinheit zu.
  • In jeder Berechnungseinheit führt folglich das zweite Skalierungsmittel eine Skalierung für die berechneten Daten von dem Operationsmittel basierend auf dem zugewiesenen Gruppenskalierungsfaktor durch.
  • Wenn eine Skalierung folglich für die berechneten Daten in jeder Berechnungseinheit durchgeführt wird, steuert das Steuermittel das Speichermittel, um die berechneten Daten von dem zweiten Skalierungsmittel jeder Berechnungseinheit zu speichern, und das Blockskalierungsfaktordetektionsmittel detektiert einen Gruppenskalierungsfaktor entsprechend den berechneten Daten, der den größten absoluten Wert in den Gruppenskalierungsfaktoren aufweist, die durch das Gruppenskalierungsfaktordetektionsmittel detektiert worden sind, als einen Blockskalierungsfaktor.
  • Das Speichermittel muss nur Daten speichern, Daten im voraus speichern, oder Daten speichern, wenn die gegenwärtige Vorrichtung arbeitet.
  • Der Skalierungsfaktor kann beispielsweise das Ausmaß der Verschiebung in der Bitverschiebung der Daten sein. In diesem Fall wird eine Skalierung durchgeführt, indem Bits für Daten um das Ausmaß der Verschiebung, das dem Skalierungsfaktor entspricht, verschoben werden.
  • Mit der Konfiguration gemäß Anspruch 4, wenn die Operation erneut für die berechneten Daten in dem Speichermittel durchgeführt wird, ordnet das Steuermittel den Gruppenskalierungsfaktor, der durch das Gruppenskalierungsfaktordetektionsmittel detektiert worden ist, und den Blockskalierungsfaktor, der durch das Blockskalierungsfaktordetektionsmittel detektiert worden ist, den berechneten Daten von dem zweiten Skalierungsmittel jeder Berechnungseinheit zu, und speichert sie in dem zweiten Speichermittel.
  • Wenn die Operation erneut für die berechneten Daten in dem Speichermittel durchgeführt wird, liest das Steuermittel den entsprechenden Gruppenskalierungsfaktor und Blockskalie rungsfaktor von dem zweiten Speichermittel, und ordnet für jede Datengruppe des Datenblocks die berechneten Daten der Datengruppe dem ersten Skalierungsmittel jeder Berechnungseinheit zu, und weist den Skalierungsfaktor, der als Differenz gewonnen wird zwischen dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor dem ersten Skalierungsmittel jeder Berechnungseinheit zu.
  • Folglich führt in jeder Berechnungseinheit das erste Skalierungsmittel eine Skalierung für die gegebenen berechneten Daten basierend auf dem Skalierungsfaktor durch, der als Differenz gewonnen wird zwischen dem Gruppenskalierungsfaktor, der in dem vorherigen Prozess detektiert worden ist, und dem Blockskalierungsfaktor.
  • Das zweite Speichermittel speichert einen Gruppenskalierungsfaktor und einen Blockskalierungsfaktor. Es ist nicht notwendig, dass das zweite Speichermittel diese im voraus speichert.
  • Mit der Konfiguration gemäß Anspruch 5 berechnet das Skalierungsfaktorberechnungsmittel die Anzahl an redundanten Bits der berechneten Daten von dem Operationsmittel, und berechnet diese als einen Skalierungsfaktor.
  • Mit der Konfiguration gemäß Anspruch 6 schiebt in jeder Berechnungseinheit das erste Skalierungsmittel Bits für gegebene Daten um ein Ausmaß der Verschiebung, das dem zugewiesenen Skalierungsfaktor entspricht, und das Operationsmittel führte eine Festkommaberechnung für die Daten von dem ersten Skalierungsmittel durch. Das zweite Skalierungsmittel schiebt Bits für die berechneten Daten von dem Operationsmittel um ein Ausmaß an Verschiebung, das dem zugewiesenen Skalierungsfaktor entspricht.
  • Das erste Skalierungsmittel schiebt Bits für Daten beispielsweise in die Richtung unterer Bits (im folgenden einfach als ein Rechtsschieben bezeichnet). Das zweite Skalierungsmittel schiebt beispielsweise Daten nach links oder nach rechts.
  • Mit der Konfiguration gemäß Anspruch 7 berechnet das Operationsmittel eine Summe von Produkten von dem ersten Skalierungsmittel und einen vorbestimmten Koeffizienten, und die gewonnenen Daten werden als berechnete Daten ausgegeben.
  • Ein Überblick der vorliegenden Erfindung ist in 1 beispielhaft gezeigt. Gemäß der vorliegenden Erfindung wird ein Skalierungsfaktor für jede Datengruppe als ein Gruppenskalierungsfaktor berechnet, und die Daten, die von der Multiplikator-Akkumulations-Operationseinheit 12 ausgegeben werden, werden normalisiert (im folgenden als "Gruppennormalisierte" bezeichnet) mit einem Gruppenskalierungsfaktor, und der Gruppenskalierungsfaktor wird der gruppennormalisierten Datengruppe zugeordnet und in einer Gruppenskalierungsfaktorregisterdatei 52 gespeichert. Die Reihen von Prozessen werden wiederholt für andere Datengruppe, die in dem Datenblock enthalten sind, durchgeführt. Nach dem Durchführen des Prozesses für einen Datenblock, wird der kleinste Skalierungsfaktor von den mehreren Skalierungsfaktoren als ein Blockskalierungsfaktor detektiert, dem Datenblock zugewiesen, und in dem Blockskalierungsfaktorregister 56 gespeichert. Wenn ein Blockprozess für den Datenblock durchgeführt wird, besteht die Möglichkeit, dass der Blockskalierungsfaktor von dem Gruppenskalierungsfaktor verschieden ist, und Positionen der Stellen nicht zwischen Datengruppen ausgerichtet sind. Folglich wird jede Datengruppe verschoben (Blocknormalisierte) und ausgerichtet basierend auf der Differenz zwischen dem Gruppenskalierungsfaktor und dem Blockskalierungsfaktor, und dann in die Multiplikator-Akkumulations-Operationseinheit 12 eingegeben.
  • Folglich werden die Daten, die nach der Multiplikator-Akkumulations-Operation gewonnen werden, temporär gruppennormalisiert in einer Datengruppeneinheit, in dem Datenspeicher 100 gespeichert, und dann blocknormalisiert, wenn sie in dem nachfolgenden Blockprozess verwendet werden. Folglich enthalten die unteren Bits der blocknormalisierten Daten keine bedeutungsvolle Information, wodurch der Operationsfehler reduziert wird, wenn eine Festkommaberechnung in dem Block-Fließkomma System durchgeführt wird.
  • Wie oben beschrieben, wird eine Datenberechnungsvorrichtung vorgeschlagen, um den oben genannten Zweck zu erfüllen. Die Erfindung ist jedoch nicht auf diese Anwendung beschränkt, und die folgenden Datenberechnungsvorrichtungen 1 bis 7 können vorgeschlagen werden.
  • Die erste Datenberechnungsvorrichtung wird verwendet, um eine digitale Signalverarbeitung durchzuführen, bestimmt einen gemeinsamen Skalierungsfaktor für eine Datengruppe, die mehrere Stücke von Daten enthält, die in eine Mantisse und eine Skalierung geteilt werden können, indem eine Skalierung verwendet wird, gruppiert mehrere Mantissen, und verarbeitet Daten durch Bezugnahme auf den gemeinsamen Skalierungsfaktor. Sie bestimmt den kleinsten Wert in den mehreren Skalierungsfaktoren in der ersten Datengruppe als einen Gruppenskalierungsfaktor, skaliert jedes Stück von Daten in der Datengruppe durch Bezugnahme auf den Gruppenskalierungsfaktor, speichert jedes Stück der skalierten Daten, ordnet den Gruppenskalierungsfaktor eindeutig der Datengruppe zu, und speichert sie, wiederholt die Prozesse für die zweite und nachfolgende Datengruppen, bestimmt den kleinsten Wert in den mehreren Gruppenskalierungsfaktoren als einen Blockskalierungsfaktor von mehreren Datengruppen, weist den Blockskalierungsfaktor eindeutig einem Datenblock zu, der die erste und die nachfolgenden Datengruppen enthält, und speichert sie, und skaliert jedes Stück von Daten in jeder der Datengruppen, indem ein Ausrichtungsskalierungsfaktor verwendet wird, der als Differenz zwischen jedem Gruppenskalierungsfaktor und Blockskalierungsfaktor gewonnen wird.
  • Darüber hinaus basiert die zweite Datenberechnungsvorrichtung auf der ersten Datenberechnungsvorrichtung, speichert die mehreren Stücke von Daten, die unter Verwendung des Ausrichtungsskalierungsfaktors skaliert worden sind, als neuen Datenblock, und bestimmt eindeutig den Ausrichtungsskalierungsfaktor als Blockskalierungsfaktor.
  • Die dritte Datenberechnungsvorrichtung basiert auf irgendeiner der ersten und zweiten Datenberechnungsvorrichtung, und verarbeitet durch die Festkommadatendarstellung die Daten, die unter Verwendung des Ausrichtungsfaktors skaliert sind.
  • Die vierte Datenberechnungsvorrichtung basiert auf irgendeiner der oben genannten ersten bis dritten Datenberechnungsvorrichtung, und speichert den Gruppenskalierungsfaktor mit in Bezug gesetzten Datengruppen.
  • Ferner verarbeitet die fünfte Datenberechnungsvorrichtung digitale Daten durch einen digitalen Datenprozessor, der mindestens eine Berechnungseinheit aufweist, ein Register und einen Speicher zum Verarbeiten von Daten, und enthält: ein Mittel zum Berechnen von mehreren Skalierungsfaktoren von mehreren Stücken von Daten; ein Mittel zum Erzeugen von skalierten Werten von den mehreren Stücken von Daten durch Bezugnahme auf den Skalierungsfaktor, ein Mittel zum Speichern der mehreren skalierten Werte als eine Datengruppe (ein Satz von skalierten Werten); ein Mittel zum Detektieren des kleinsten Skalierungsfaktors (Gruppenskalierungsfaktor) in der Datengruppe; ein Mittel zum Speichern des Gruppenskalierungsfaktors, ein Mittel zum Detektieren des kleinsten Skalierungsfaktors (Blockskalierungsfaktor) in mehreren Datengruppen; und ein Mittel zum Speichern des Blockskalierungsfaktors.
  • Darüber hinaus basiert die sechste Datenberechnungsvorrichtung auf der fünften Datenberechnungsvorrichtung, und enthält: ein Mittel zum temporären Speichern des Gruppenskalierungsfaktors, indem eine Registerdatei verwendet wird; ein Mittel zum Zuordnen des temporär gespeicherten Gruppenskalierungsfaktors zu einer entsprechenden Datengruppe; und ein Mittel zum Speichern des Gruppenskalierungsfaktors, der temporär in der Registerdatei gespeichert ist.
  • Die siebente Datenberechnungsvorrichtung basiert auf irgendeiner der fünften und sechsten Datenberechnungsvorrichtung, und enthält: ein Mittel zum Detektieren des kleinsten Skalierungsfaktors; ein Mittel zum Zählen redundanter Vorzeichenbits; und ein Mittel zum Zusammenfügen der Information über die redundanten Vorzeichenbits.
  • Die Datenberechnungsvorrichtungen, wie im vorangegangenen beschrieben, werden vorgeschlagen, um den oben genannten Zweck zu erfüllen, die vorliegende Erfindung ist jedoch nicht auf diese Anwendungen beschränkt. Ein erstes Speichermedium kann ebenfalls vorgeschlagen werden, um den oben genannten Zweck zu erfüllen.
  • Das erste Speichermedium ist ein computerlesbares Speichermedium, speichert ein Programm zum Verarbeiten von Daten in einer Einheit eines Datenblocks, der mehrere Datengruppen enthält, die jeweils ein oder mehrere Stücke von Daten enthalten, und das Programm weist einen Computer an als Berechnungseinheit, als erstes Skalierungsmittel, als das Operationsmittel, als das Skalierungsfaktorberechnungsmittel, als das zweite Skalierungsmittel, als das Gruppenskalierungsfaktordetektionsmittel, als das Blockskalierungsfaktordetektierungsmittel und als das Steuermittel, gemäß irgendeinem der Ansprüche 3 bis 7 gemäß der vorliegenden Erfindung zu arbeiten.
  • Mit der Konfiguration, wird die Information, die in einem Speichermedium gespeichert ist, von einem Computer ausgelesen, und die Operation, die von der Datenberechnungsvorrichtung gemäß irgendeinem der Ansprüche 3 bis 7 der vorliegenden Erfindung durchgeführt wird, kann durchgeführt werden, wenn der Computer als jedes dieser Mittel arbeitet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Blockdiagramm einer Konfiguration einer Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung;
  • 2 zeigt eine Datenstruktur in einem Datenspeicher 100;
  • 3 zeigt eine Multiplikator-Akkumulations-Operation, die von jeder Multiplikator-Akkumulations-Operationseinheit 12 durchgeführt wird;
  • 4 zeigt einen Prozess der Operation, die durchgeführt wird, wenn die vorliegende Erfindung für ein Beispiel von Werten angewendet wird;
  • 5 zeigt ein Beispiel eines Verfahrens der Zuweisung einer Datengruppe zu einem Gruppeninstallierungsfaktor, und ein Speichern dieser;
  • 6 zeigt ein Operationsergebnis, das gewonnen wird, wenn die vorliegende Erfindung für ein Beispiel von Werten angewendet wird;
  • 7 zeigt einen Vergleich der Rechengenauigkeit zwischen dem System gemäß der vorliegenden Erfindung und dem herkömmlichen System;
  • 8 zeigt ein Blockdiagramm einer detaillierten Konfiguration zum Senden von Daten zwischen dem zweiten Schieber 10 und der Multiplikator-Akkumulations-Operationseinheit 12 von jeder der Berechnungseinheiten P0 bis Pk-1
  • 9 zeigt ein Blockdiagramm gemäß einer anderen Konfiguration des Einheitenskalierungsfaktordetektors 14 und eines Gruppenskalierungsfaktordetektors 50;
  • 10 zeigt eine Konfiguration des DSP vom herkömmlichen Festkommatyp und die Anzahl an Bits für die Daten in der Eingabe/Ausgabe-Stufe jeder Komponente;
  • 11 zeigt Werte von Daten, die in einem Beispiel von Werten verwendet werden;
  • 12 zeigt eine Festkommadarstellung der Daten, die in einem Beispiel von Werten verwendet werden;
  • 13 zeigt ein Operationsergebnis eines Beispiels von Werten von dem DSP vom herkömmlichen Festkommatyp;
  • 14 zeigt ein Blockdiagramm der Konfiguration des herkömmlichen DSP vom Block-Fließkommatyp;
  • 15 zeigt ein Operationsergebnis eines Beispiels von Werten von Dem herkömmlichen DSP vom Block-Fließkommatyp; und
  • 16 zeigt ein Problem des herkömmlichen Verfahrens.
  • BESTE AUSFÜHRUNGSFORM DER ERFINDUNG
  • Ausführungsbeispiele der vorliegenden Erfindung werden im folgenden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Die 1 bis 9 zeigen die Ausführungsbeispiele der Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung.
  • Zuerst wird die Konfiguration der Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung im folgenden unter Bezugnahme auf 1 beschrieben. 1 ist ein Blockdiagramm der Konfiguration der Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung.
  • Wie in 1 gezeigt, enthält die Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung: den Datenspeicher 100 zum Speichern von Daten in einer Datenblockeinheit; eine Berechnungseinheit 200 zum Durchführen einer Multiplikator-Akkumulations-Operation für die Daten in dem Datenspeicher 100; eine Steuereinheit 300 zum Durchführen eines Normalisierungsprozesses, der für ein Block-Fließkomma erforderlich ist; eine Steuerlogik 40 zum Steuern der Prozesse; und einen Adressengenerator 500. Der Datenspeicher 100, die Berechnungseinheit 200, die Steuereinheit 300, und die Steuerlogik 400 sind über einen Datenbus 110 derart miteinander verbunden, dass sie Daten untereinander senden und empfangen können. Der Datenspeicher 100, die Steuereinheit 300 und die Adressengenerator 500 sind über einen Datenadressenbus 120 derart miteinander verbunden, dass sie untereinander Daten senden und empfangen können.
  • Der Datenspeicher 100 gibt extern Daten ein, obwohl nicht in den beigefügten Zeichnungen gezeigt, und speichert sie als die Daten, die von der Berechnungseinheit 200 zu verarbeiten sind. Der Datenspeicher 100 speichert Daten in einer Datenblockeinheit, wie in 2 gezeigt. 2 zeigt die Datenstruktur in dem Datenspeicher 100. Der Datenspeicher 100 speichert Daten als eine Datengruppe, die durch das Gruppieren einer Anzahl von Stücken von Daten gewonnen wird (k in diesem Beispiel) gleich der Anzahl an Berechnungseinheiten, und speichert darüber hinaus Daten als Datenblock, der durch Gruppieren mehrerer Datengruppen gewonnen wird. Ein Datenblock enthält also mehrere Datengruppen, und eine Datengruppe enthält Stücke von Daten, deren Anzahl gleich der Anzahl an Berechnungseinheiten ist.
  • Die Berechnungseinheit 200 enthält k Berechnungseinheiten P0 bis Pk-1, die jeweils die gleiche Funktion aufweisen. Die Daten einer Datengruppe werden jeder der Berechnungseinheiten P0 bis Pk-1, zugeordnet, die die Daten parallel in einer Datengruppeneinheit verarbeiten.
  • Jede der Berechnungseinheiten P0 bis Pk-1, ist gebildet durch: einen zweiten Schieber 10 zum Skalieren von Daten basierend auf einem gegebenen Skalierungsfaktor; eine Multiplikator-Akkumulations-Operationseinheit 12 zum Durchführen einer Multiplikator-Akkumulations-Operation für die Daten von dem zweiten Schieber; einen Einheitenskalierungsfaktordetektor 14 zum Berechnen eines Skalierungsfaktors der berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12; und einen ersten Schieber 16 zum Skalieren der berechneten Daten von dem Multiplikator-Akkumulations-Operationseinheit 12 basierend auf dem gegebenen Skalierungsfaktor.
  • Der Einheitenskalierungsfaktordetektor 14 berechnet die Anzahl an redundanten Bits der berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit, und gibt sie als Skalierungsfaktor aus. Gemäß der vorliegenden Erfindung bezieht sich der Skalierungsfaktor auf das Ausmaß der Verschiebung, wenn Daten Bit-Verschoben werden, und gibt die Anzahl an Bits, die zu schieben sind, an. Dies gilt für einen Gruppenskalierungsfaktor und einen Blockskalierungsfaktor.
  • Der zweite Schieber 10 schiebt gegebene Daten nach rechts mit einem Ausmaß an Verschiebung entsprechend einem gegebenen Skalierungsfaktor. Der erste Schieber 16 schiebt die berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 nach links, entsprechend dem gegebenen Skalierungsfaktor.
  • Die Steuereinheit 300 enthält: einen Gruppenskalierungsfaktordetektor 50 zum Detektieren eines Gruppenskalierungsfaktors von dem Skalierungsfaktor, der durch den Einheitenskalierungsfaktordetektor 14 berechnet worden ist; die Gruppenskalierungsfaktorregisterdatei 51 zum Speichern eines Gruppenskalierungsfaktors; einen Blockskalierungsfaktordetektor 54 zum Detektieren eines Blockskalierungsfaktors von dem Gruppenskalierungsfaktor; ein Blockskalierungsfaktorregister 56 zum Speichern des Blockskalierungsfaktors; und einen Stellen-Abgleich-Addierer 60 zum Berechnen der Differenz zwischen dem Gruppenskalierungsfaktor und dem Blockskalierungsfaktor.
  • Der Gruppenskalierungsfaktordetektor 50 detektiert den kleinsten Skalierungsfaktor in den Skalierungsfaktoren, die durch den Einheitenskalierungsfaktordetektor 14 in jeder der Berechnungseinheiten P0 bis Pk-1, berechnet worden ist, als Gruppenskalierungsfaktor, und gibt den detektierten Gruppenskalierungsfaktor an die Gruppenskalierungsfaktorregisterdatei 52 und den ersten Schieber 16 jeder der Berechnungseinheiten P0 bis Pk-1. Beispielsweise, wenn "1", "2" und "3" von dem Einheitenskalierungsfaktordetektor 14 jeder Berechnungseinheit P0 bis Pk-1 (beispielsweise k = 3) als Skalierungsfaktoren eingegeben werden, wird der kleinste Wert 1 als ein Gruppenskalierungsfaktor detektiert.
  • Die Gruppenskalierungsfaktorregisterdatei 52 speichert temporär den Gruppenskalierungsfaktor, der durch den Gruppenskalierungsfaktordetektor 50 detektiert worden ist, und gibt den Gruppenskalierungsfaktor an den Datenspeicher 100 oder den Stellen-Abgleich-Addierer 60 durch Steuerung von der Steuerlogik 40.
  • Der Blockskalierungsfaktordetektor 54 detektiert den kleinsten Gruppenskalierungsfaktor in den Gruppenskalierungsfaktoren, die von dem Gruppenskalierungsfaktordetektor 50 detektiert worden sind, als einen Blockskalierungsfaktor. Wenn beispielsweise ein Gruppenskalierungsfaktor eines Datenblocks als "3", "4" und "5" detektiert worden ist, wird der kleinste Wert von 3 als der Blockskalierungsfaktor detektiert.
  • Das Blockskalierungsfaktorregister 56 speichert temporär den Blockskalierungsfaktor, der von dem Blockskalierungsfaktordetektor 54 detektiert worden ist, und gibt einen Gruppenskalie rungsfaktor an das Datenspeicher 100 oder den Stellen-Abgleich-Addierer 60 durch die Steuerung von der Steuerlogik 400.
  • Der Stellen-Abgleich-Addierer 60 gibt den Gruppenskalierungsfaktor ein, der von der Gruppenskalierungsfaktorregisterdatei 52 ausgegeben wird, und den Blockskalierungsfaktor, der von dem Blockskalierungsfaktorregister 56 ausgegeben wird, berechnet die Differenz zwischen diesen durch Subtrahieren des Blockskalierungsfaktors von dem Gruppenskalierungsfaktor, und gibt den Skalierungsfaktor aus, der als Differenz von dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 gewonnen worden ist, durch die Steuerung von der Steuerlogik 400.
  • Die Steuerlogik 400 führt die den folgenden Steuerungsprozess durch, wenn eine Operation zuerst für die Daten in dem Datenspeicher 100 durchgeführt wird.
  • Die Daten werden zuerst aus dem Datenspeicher 100 in eine Datenblockeinheit gelesen, und die Daten einer Datengruppe dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 zugewiesen, über den Datenbus 110 für jede Datengruppe des Datenblocks.
  • Der Gruppenskalierungsfaktor, der von dem Gruppenskalierungsfaktordetektor 50 detektiert wird, wird dann dem ersten Schieber 16 für jede der Berechnungseinheiten P0 bis Pk-1 zugewiesen, und die berechneten Daten von dem ersten Schieber 16 jeder der Berechnungseinheiten P0 bis Pk-1 werden in dem Datenspeicher 100 über den Datenbus 110 gespeichert.
  • Die Steuerlogik 400 führt den folgenden Steuerprozess durch, wenn eine Operation erneut für die Daten in dem Datenspeicher 100 durchgeführt wird.
  • Zuerst werden die berechneten Daten von dem Datenspeicher 100 in einer Datenblockeinheit gelesen, und die berechneten Daten einer Datengruppe dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 über den Datenbus 110 für jede Datengruppe des Datenblocks zugewiesen. Gleichzeitig, wenn der Gruppenskalierungsfaktor, der für den zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 bereitgestellt wird, und der Blockskalierungsfaktor in der Gruppenskalierungsfaktorregisterdatei 52 und dem Blockskalierungsfaktorregister 56 gespeichert werden, wird der Blockskalierungsfaktor aus dem Blockskalierungsfaktorregister 56 gelesen und für den Stellen-Abgleich-Addierers 60 bereitgestellt, die Gruppenskalierungsfaktoren sequentiell aus der Gruppenskalierungsfaktorregisterdatei 52 gelesen und für den Stellen-Abgleich-Addierer 60 bereitgestellt, der Stellen-Abgleich-Addierer 60 berechnet die Differenz zwischen jedem Gruppenskalierungsfaktor und Blockskalierungsfaktor, und der Skalierungsfaktor, der als Differenz gewonnen wird, wird dem zweiten Schieber 10 für jeder der Berechnungseinheiten P0 bis Pk-1 bereitgestellt.
  • Der Gruppenskalierungsfaktor, der von dem Gruppenskalierungsfaktordetektor 50 detektiert wird, wird dann für den ersten Schieber 16 jeder der Berechnungseinheiten P0 bis Pk-1 bereitgestellt, und die berechneten Daten von dem ersten Schieber 16 jeder der Berechnungseinheiten P0 bis Pk-1 werden in dem Datenspeicher 100 durch den Datenbus 110 gespeichert.
  • Wenn der Gruppenskalierungsfaktor, der für den zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 bereitgestellt wird, und der Blockskalierungsfaktor nicht in der Gruppenskalierungsfaktorregisterdatei 52 und dem Blockskalierungsfaktorregister 56 gespeichert werden, werden der Gruppenskalierungsfaktor, der den Daten entspricht, die für den zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 bereitgestellt werden, und der Blockskalierungsfaktor aus dem Datenspeicher 100 gelesen, und in der Gruppenskalierungsfaktorregisterdatei 52 und dem Blockskalierungsfaktorregister 56 über den Datenbus 110 gespeichert, und dann die oben genannten Prozesse durchgeführt.
  • Die Operationen in dem oben genannten Ausführungsbeispiel werden unter Bezugnahme auf die 3 bis 7 im folgenden beschrieben. Tatsächlich werden die folgenden Gleichungen (1) und (2) für Beispiele verwendet. In den Beispielen sei angenommen, dass die Daten von dem Datenspeicher 108 8-Bits sind, und die Ausgabe von der Multiplikator-Akkumulations-Operationseinheit 12 gleich 16-Bits beträgt.
  • Gemäß dem vorliegenden Ausführungsbeispiel sei angenommen, dass die Berechnungseinheit 200 vier Berechnungseinheiten enthält, ein Datenblock zwei Datengruppen enthält, und eine Datengruppe vier Datenstücke enthält. Darüber hinaus sei angenommen, dass die vorbestimmten Koeffizientendaten A(0) bis A(3), B(0) und B(1) jederzeit verfügbar sind, falls dies erfor derlich ist. Das Verfahren zum Bereitstellen der Koeffizientendaten wird hier nicht beschrieben, da es für die Erfindung nicht von Bedeutung ist. Es sei jedoch angenommen, dass die Daten für die Multiplikator-Akkumulations-Operationseinheit 12 bereitgestellt werden können, indem sie aus dem Datenspeicher 100 bei Bedarf ausgelesen werden.
  • Zuerst wird der Vorgang der Durchführung eines parallelen Prozesses für die Daten in der Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung unter Bezugnahme auf 3 kurz beschrieben. 3 zeigt eine Multiplikator-Akkumulations-Operation, die für jede Multiplikator-Akkumulations-Operationseinheit 12 durchgeführt wird.
  • Wenn eine Operation für die Daten in dem Datenspeicher 100 durch die folgende Gleichung (1) durchgeführt wird, wird die erste Datengruppe, die Daten X(0) bis X(3) enthält, zuerst aus dem Datenspeicher 100 im Zyklus 1 ausgelesen, und jedes Stück der Daten X(0) bis X(3) wird dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis P3 über den Datenbus 110 zugeordnet. Zu diesem Zeitpunkt enthalten die Daten X(0) bis X(3) keine Information über eine Skalierung. Folglich steuert die Steuerlogik 400 den zweiten Schieber 10 derart, dass die Daten X(0) bis X(3) nicht verschoben werden. Es sei angenommen, dass das Mittel zum Halten der Daten in der Multiplikator-Akkumulations-Operationseinheit 12 (beispielsweise die erste Registerdatei der Multiplikator-Akkumulations-Operationseinheit 12 wie in 14 gezeigt) verfügbar ist. Da ein derartiges Haltemittel nicht zu der Erfindung gehört, ist sie in 1 nicht gezeigt.
  • Jede Multiplikator-Akkumulations-Operationseinheit 12 führt eine Multiplikator-Akkumulations-Operation zwischen den Koeffizientendaten A(0) bis A(3) und den Daten X(0) bis X(3) in der in 3 gezeigten Prozedur durch, und die berechneten Daten Y(0) bis Y(3) werden als Ergebnisse der ersten Multiplikator-Akkumulations-Operation in den Zyklen 2 bis 5 gewonnen. In dem Operationsprozess, werden die Daten X(0) bis X(3) zwischen den Berechnungseinheiten P0 bis Pk-1 durch ein Hardwaremittel übertragen.
  • Die berechneten Daten Y(0) bis Y(3) werden dann in den Einheitenskalierungsfaktordetektor 14 eingegeben. Jeder der Einheitenskalierungsfaktordetektoren 14 berechnet die Anzahl an redundanten Bits der errechneten Daten von der Multiplikator-Akkumulations- Operationseinheit 12 und gibt sie als Skalierungsfaktor aus. In dieser Berechnung werden beispielsweise die Daten "00001100" in den berechneten Daten Y(0) bis Y(3) in "01100000" skaliert. In diesem Fall, da die Anzahl an redundanten Bits gleich 3 ist, ist der Skalierungsfaktor gleich 2.
  • Die mehreren Skalierungsfaktoren, die durch den Einheitenskalierungsfaktordetektor 14 berechnet werden, werden dann in den Gruppenskalierungsfaktordetektor 50 eingegeben, und der kleinste Skalierungsfaktor in den mehreren Skalierungsfaktoren wird als ein Gruppenskalierungsfaktor detektiert.
  • Der Gruppenskalierungsfaktor wird in den ersten Schieber 16 jeder der Berechnungseinheiten P0 bis P3 eingegeben. Gleichzeitig werden auch die berechneten Daten Y(0) bis Y(3) von der Multiplikator-Akkumulations-Operationseinheit 12 in den ersten Schieber 16 eingegeben. Gemäß dem Gruppenskalierungsfaktor gruppennormalisiert der erste Schieber 16 16-Bits der berechneten Daten Y(0) bis Y(3). 4 zeigt ein Beispiel eines Berechnungsergebnisses, indem ein tatsächlicher Wert verwendet wird.
  • Die gruppennormalisierten berechneten Daten werden in dem Datenspeicher 100 gespeichert, um für den nachfolgenden Blockprozess vorbereitet zu sein. Da die Anzahl an Bits der Daten in dem Datenspeicher 100 kleiner ist als die berechneten Daten, werden die unteren 8-Bits jedes Stücks der berechneten Daten abgeschnitten und in 8-Bit berechnete Daten gerundet. Die gerundeten berechneten Daten Y(0) bis Y(3) sind in der Eingabespalte des Datenspeichers 100 in 4 gezeigt. Wenn die berechneten Daten Y(0) bis Y(3) in dem Datenspeicher 100 gespeichert werden, wird auch der Gruppenskalierungsfaktor in die Gruppenskalierungsfaktorregisterdatei 52 eingegeben. Der Gruppenskalierungsfaktor wird einer entsprechenden Datengruppe zugeordnet, und in der Gruppenskalierungsfaktorregisterdatei 52 gespeichert. Beispielsweise, wenn eine Datengruppe in dem Datenspeicher 100 gespeichert wird, wird eine Speicheradresse gewonnen, und unter der Annahme, dass auf alle Daten in der Datengruppe gleichzeitig durch eine Speicheraddresse zugegriffen wird, wird die Datengruppe in einem Register, das durch die Adresse spezifiziert ist, an der die berechneten Daten in dem Datenspeicher 100 gespeichert sind. Andererseits, wie in 5 gezeigt, kann die entsprechende Tabelle zwischen der Adresse des Datenspeichers 100, der die Datengruppe speichert, und der Adresse der Gruppenskalierungsfaktorregisterdatei 52, die den Gruppenskalierungsfaktor speichert, in einem Teil des Datenspeichers 100 erzeugt werden, um die Adressen zu verwalten.
  • Der Gruppenskalierungsfaktor wird auch in den Blockskalierungsfaktordetektor 54 eingegeben, und der kleinste Wert in den mehreren Gruppenskalierungsfaktoren wird als ein Blockskalierungsfaktor detektiert. Nachdem die erste Datengruppe in einem Datenblock berechnet worden ist, wird der Gruppenskalierungsfaktor, der gerade berechnet worden ist, also der Wert von 2 in dem Beispiel gemäß 4, als Anfangswert in dem Register (nicht in 1 gezeigt) in dem Blockskalierungsfaktordetektor 54 gespeichert.
  • In Zyklus 6 wird dann die zweite Datengruppe, die die Daten X(4) bis X(7) enthält, aus dem Datenspeicher 100 gelesen, und die Daten X(4) bis X(7) werden dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis P3 zugeordnet. Der Operationsprozess, der ähnlich dem für die erste Datengruppe ist, wird auch für diese Datengruppe durchgeführt. Der einzige Unterschied liegt darin, dass der Gruppenskalierungsfaktor, der für die Daten Y(4) bis Y(7) berechnet wird, mit den Inhalten verglichen wird, die in dem Register in dem Blockskalierungsfaktordetektor 54 gehalten sind, und der kleinere Wert als ein Blockskalierungsfaktor ausgewählt wird. In dem in 4 gezeigten Beispiel wird der Gruppenskalierungsfaktor von 1 aus den berechneten Daten Y(4) bis Y(7) detektiert. In diesem Fall, da 1 kleiner als 2 ist, der in dem Blockskalierungsfaktordetektor 54 gehalten ist, werden die Inhalte des Registers in den Blockskalierungsfaktordetektor 54 aktualisiert.
  • In diesem Beispiel, da die Operationen für alle Daten in einem Datenblock zu diesem Zeitpunkt abgeschlossen sind, wird der Blockskalierungsfaktor auf den augenblicklichen Wert des Registers in dem Blockskalierungsfaktordetektor 54 gesetzt, also auf 1. Wie man einfach von diesem Beispiel annehmen kann, kann der oben genannte Prozess, der für die zweite Datengruppe angewendet wird, wiederholt werden, obwohl mehrere Datengruppen zu berechnen sind.
  • Die Signalverarbeitung durch die folgende Gleichung (2) wird dann gestartet. Vor dem Start der Operation werden die Inhalte des Registers in dem Blockskalierungsfaktordetektor 54 an das Blockskalierungsfaktorregister 56 übertragen.
  • Wenn Operationen erneut für die berechneten Daten in dem Datenspeicher 100 durch die folgende Gleichung (2) durchgeführt werden, wird die erste Datengruppe, die die berechneten Daten Y(0) bis Y(3) enthält, aus dem Datenspeicher 100 gelesen, und jedes Stück der berechneten Daten Y(0) bis Y(3) wird dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 über den Datenbus 110 zugewiesen. Gleichzeitig wird ein entsprechender Gruppenskalierungsfaktor, also "2" in diesem Beispiel ausgewählt gemäß der Adresseninformation, die über den Datenadressenbus 120 bereitgestellt wird, und aus der Gruppenskalierungsfaktorregisterdatei 52 ausgelesen. Das Ausmaß der Rechtsschiebung in dem zweiten Schieber 10 wird der Differenz zwischen dem augenblicklichen Gruppenskalierungsfaktor und dem Blockskalierungsfaktor zugewiesen, also 2 – 1 = 1 in diesem Beispiel. Folglich wird der zweite Schieber 10 derart gesteuert, dass die augenblickliche Eingabe um 1-Bit nach rechts verschoben werden kann. Der Operationsprozess, der anschließend für die berechneten Daten Y(0) bis Y(3) durchgeführt wird, ist der gleiche wie der Operationsprozess, der für die folgende Gleichung (1) beschrieben wurde.
  • Die zweite Datengruppe, die die berechneten Daten Y(4) bis Y(7) enthält, wird dann aus dem Datenspeicher 100 ausgelesen, und die berechneten Daten Y(4) bis Y(7) werden dann dem zweiten Schieber 10 für jede der Berechnungseinheiten P0 bis P3 über den Datenbus 110 zugeordnet. Der Gruppenskalierungsfaktor für die Datengruppe ist 1, wie in 4 gezeigt. Als Ergebnis sind alle berechneten Daten der Datengruppe 1 – 1 = 0, also werden nicht durch den zweiten Schieber 10 verschoben und so wie sie sind ausgegeben.
  • In diesem Zustand werden alle berechneten Daten Y(0) bis Y(7) an der Stelle des maximalen Dezimalkommawerts ausgerichtet. Als Ergebnis kann eine Festkommaberechnung durchgeführt werden, in der nachfolgenden Multiplikator-Akkumulations-Operation.
  • 6 zeigt die berechneten Daten Y(0) bis Y(7) und Z(0) bis Z(7). Unter Verwendung des Operationsergebnisses wird das SNR durch die folgende Gleichung (3) berechnet, und die Operationen werden durchgeführt, wie in den folgenden Gleichungen (8) und (9) gezeigt. Die folgende Gleichung (8) in einer Gleichung für das SNR basierend auf dem Operationsergebnis der folgenden Gleichung (1), und die folgende Gleichung (9) ist eine Gleichung für das SNR, basierend auf dem Gleichungsergebnis der folgenden Gleichung (2).
  • 7 zeigt kollektiv die SNRs, die gewonnen werden, wenn der herkömmliche Festkommaprozess, der herkömmliche Block-Fließkommaprozess und der Block-Fließkommaprozess gemäß der vorliegenden Erfindung durchgeführt werden durch die folgenden Gleichung (1) und (2). In 7 ist klar, dass die Rechengenauigkeit stark bei dem Block-Fließkommaprozess gemäß der vorliegenden Erfindung verbessert ist.
  • Folglich wird in dem vorliegenden Ausführungsbeispiel ein Berechnungsprozess für jedes Stück von Daten einer Datengruppe durchgeführt, und der kleinste Skalierungsfaktor, der die berechneten Daten repräsentierte, wird als ein Gruppenskalierungsfaktor detektiert, eine Serie von Prozessen zum Skalieren jedes Stücks der berechneten Daten unter Verwendung des detektierten Gruppenskalierungsfaktors wird für jede Datengruppe eines Datenblocks durchgeführt und der kleinste Wert der detektierten Gruppenskalierungsfaktoren wird als ein Blockskalierungsfaktor detektiert. Wenn skalierte berechnete Daten einem Operationsprozess erneut unterworfen werden, wird eine Skalierung für jedes Stück der berechneten Daten einer Datengruppe durchgeführt, bevor die Operationen basierend auf dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor durchgeführt werden.
  • Die berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 werden gerundet, nachdem sie, um die Anzahl der redundanten Bits für den größten absoluten Wert der berechneten Daten der Datengruppe links verschoben worden sind, und die berechneten Daten des Datenspeichers 100 werden nach dem Ausrichten berechnet, werden an der Position des Dezimalkommas des größten positiven Werts der berechneten Daten des Datenblocks durchgeführt (die berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 in den vorherigen Operationen), wenn der Berechnungsprozess erneut für die berechneten Daten durchgeführt wird. Folglich können verlorene Stellen von Daten in einem Operationsprozess reduziert werden. Da nur ein kleiner Addierungs- oder Änderungsprozess einer Schaltung mit dem herkömmlichen Aufbau erforderlich, kann die Schaltung leicht konfiguriert werden. Als Ergebnis kann die Rechengenauigkeit bei einer Festkommaberechnung in dem Block-Fließkommasystem mit einer einfacheren Konfiguration, als bei einem herkömmlichen System, verbessert werden.
  • Gemäß der vorliegenden Erfindung enthält die Datenberechnungsvorrichtung mehrere Berechnungseinheiten P0 bis Pk-1, um einen parallelen Prozess für Daten in einer Datengruppeneinheit durchzuführen. Folglich kann die Rechengenauigkeit verbessert werden, wenn eine Festkommaberechnung in einem Block-Fließkommasystem durchgeführt wird, und die Daten können mit hoher Geschwindigkeit berechnet werden.
  • In dem oben genannten Ausführungsbeispiel werden Daten zwischen dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 und der Multiplikator-Akkumulations-Operationseinheit 12 über ein Hardwaremittel übertragen, jedoch kann die Konfiguration in der Praxis erhalten werden, wie in 8 gezeigt. 8 zeigt ein Blockdiagramm der detaillierten Konfiguration zum Übertragen von Daten zwischen dem zweiten Schieber 10 jeder der Berechnungseinheiten P0 bis Pk-1 und der Multiplikator-Akkumulations-Operationseinheit 12.
  • In 8 enthält die Berechnungseinheit P0 ein Register 11a zum Halten der Daten von dem zweiten Schieber 10. Die Berechnungseinheiten P1 und P2 enthalten das Register 11a zum Halten der Daten von dem Register 11a der Berechnungseinheiten P0 und P1 bei der vorherigen Stufe; und einen Auswähler 11b zum Auswählen entweder der Daten von dem Register 11a der Berechnungseinheiten P0 und P1 bei der vorherigen Stufe, oder der Daten von dem zweiten Schieber 10, und zum Ausgeben der ausgewählten Daten an die Multiplikator-Akkumulations-Operationseinheit 12. Die Berechnungseinheit P3 enthält einen Auswähler 11b zum Auswählen entweder der Daten von dem Register 11a der Berechnungseinheit P2 bei der vorherigen Stufe, oder der Daten von der Multiplikator-Akkumulations-Operationseinheit 12, und zum Ausgeben der ausgewählten Daten an die Multiplikator-Akkumulations-Operationseinheit 12.
  • Gemäß dem oben genannten Ausführungsbeispiel enthält die Datenberechnungsvorrichtung einen Einheitenskalierungsfaktordetektor 14 und einen Gruppenskalierungsfaktordetektor 50. Die vorliegende Erfindung ist jedoch nicht auf diese Konfiguration beschränkt. Beispielsweise kann die in 9 gezeigte Konfiguration gewählt werden. 9 zeigt ein Blockdiagramm einer anderen Konfiguration des Einheitenskalierungsfaktordetektors 14 und des Gruppenskalierungsfaktordetektors 50. In 9 ist jede der Berechnungseinheiten P0 bis P4 konfiguriert, indem der Einheitenskalierungsfaktordetektor 14 durch eine lokale Block-Fließkommaeinheit 15 ersetzt ist, die ein XOR-Array 15a enthält. Sie enthält ferner einen Gruppenskalierungsfak tordetektor 51, der einen Prioritätskodierer 21 enthält, und einen verdrahteten ODER Bus zum Verbinden der lokalen Block-Fließkommaeinheit 15 von jeder der Berechnungseinheiten P0 bis P4 mit dem Gruppenskalierungsfaktordetektor 51.
  • Die lokale Block-Fließkommaeinheit 15 gibt die berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 ein, führt eine exklusive logische ODER-Operation für benachbarte Bits der berechneten Daten durch, und gibt das Ergebnis aus. Beispielsweise, wenn 4-Bit berechnete Daten eingegeben werden, wird ein Ergebnis, das durch Durchführen der exklusiven logischen ODER-Operation für das vierte und dritte meiste signifikanteste Bit durchgeführt wird, definiert als das dritte Bit der Ausgabedaten. In ähnlicher Weise werden das dritte und zweite Operationsergebnis definiert als das zweite Bit der Ausgabedaten, das zweite und erste Operationsergebnis als das erste Bit der Ausgabedaten definiert, und das signifikanteste Bit als das signifikanteste Bit der Ausgabedaten ausgegeben.
  • Folglich kann ein Gruppenskalierungsfaktor direkt aus den berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 von jeder der Berechnungseinheiten P0 bis P4 berechnet werden, ohne Berechnung des Skalierungsfaktors der berechneten Daten von der Multiplikator-Akkumulations-Operationseinheit 12 von jeder der Berechnungseinheiten P0 bis P4, und dann eines Gruppenskalierungsfaktors von den Skalierungsfaktoren.
  • In dem oben genannten Ausführungsbeispiel wird die vorliegende Erfindung für arithmetische Operationen angewendet, sie ist jedoch nicht auf diese Anwendung beschränkt, und ist innerhalb eines Schutzbereiches der vorliegenden Erfindung anwendbar.
  • In dem oben genannten Ausführungsbeispiel ist die Steuerlogik 400 konfiguriert, um jede Einheit gemäß einer internen Logik zu steuern, jedoch ist die vorliegende Erfindung nicht auf diese Konfiguration beschränkt, und die Datenberechnungsvorrichtung kann konfiguriert sein, indem eine CPU, RAM und ROM anstelle der Steuerlogik 400 über einen Bus verbunden werden, und ein Programm, das die oben beschriebenen Steuerprozeduren beschreibt, aus den ROM ausgelesen und dann das Programm mit der CPU ausgeführt wird. In diesem Fall, obwohl das Programm, das die Steuerprozedur beschreibt, in dem ROM gespeichert ist, ist die vorliegende Erfindung nicht darauf beschränkt, und ein Programm, das die oben genannte Steuerprozedur beschreibt, kann aus dem RAM zur Ausführung von einem Speichermedium, das das Programm speichert, gelesen werden.
  • In dem oben genannten Ausführungsbeispiel ist die Datenberechnungsvorrichtung gemäß der vorliegenden Erfindung durch Hardware konfiguriert, enthaltend den Datenspeicher 100, die Berechnungseinheit 200, die Steuereinheit 300, die Steuerlogik 400 und den Adressengenerator 500. Die Vorrichtung ist jedoch nicht auf diese Konfiguration beschränkt, sondern eine CPU, RAM und ROM können über einen Bus verbunden sein, um die Vorrichtung insgesamt oder teilweise durch Software zu konfigurieren, derart, dass die CPU ein Steuerprogramm zur Realisierung der Funktion jeder Einheit aus dem ROM zur Ausführung beispielsweise liest. Auch in diesem Fall ist das Steuerprogramm in den ROM gespeichert, jedoch kann das Steuerprogramm auf einem Speichermedium gespeichert sein, und zur Ausführung in das RAM gelesen werden.
  • In diesem Beispiel kann das Speichermedium ein Halbleiterspeichermedium sein, beispielsweise RAM, ROM, etc., ein Magnetspeichermedium, beispielsweise eine FD, eine HD etc., ein optisches Lesesystemspeichermedium, beispielsweise eine CD, eine CDV, LD, DVD etc., und ein Magnetspeichertyp/optisches Lesesystem-Speichermedium, beispielsweise MO, etc., und umfasst alle Speichermedien, solange es ein computerlesbares Speichermedium ist, unabhängig von einem Verfahren des Lesens von Daten durch Elektronikbauteile, magnetische Bauteile, optische Bauteile, etc.
  • In dem oben genannten Ausführungsbeispiel entspricht der Datenspeicher 100 dem Speichermedium gemäß Anspruch 3 oder 4, und die Gruppenskalierungsfaktorregisterdatei 52 und das Blockskalierungsfaktorregister 56 entsprechen dem zweiten Speichermedium gemäß Anspruch 4.
  • Der zweite Schieber 10 entspricht dem ersten Skalierungsmittel gemäß den Ansprüchen 3, 4, 5, 6 oder 7, die Multiplikator-Akkumulations-Operationseinheit 12 entspricht der Operationseinheit gemäß den Ansprüchen 3, 5, 6 oder 7, der Einheitenskalierungsfaktordetektor 14 entspricht dem Skalierungsfaktorberechnungsmittel gemäß den Ansprüchen 3 oder 5, der erste Schieber 16 entspricht dem zweiten Skalierungsmittel gemäß Anspruch 3 oder 6.
  • Der Gruppenskalierungsfaktordetektor 50 entspricht dem Gruppenskalierungsfaktordetektionsmittel gemäß Anspruch 3, der Blockskalierungsfaktordetektor 54 entspricht dem Blockskalierungsfaktordetektionsmittel gemäß Anspruch 3, und die Steuerlogik 400 entspricht dem Steuermittel gemäß Anspruch 3 oder 4.
  • Figure 00300001
  • Figure 00310001
  • GEWERBLICHE ANWENDBARKEIT
  • Wie oben beschrieben, kann gemäß dem Datenberechnungsverfahren und der Vorrichtung gemäß den Ansprüchen 1 bis 7 der vorliegenden Erfindung die Rechengenauigkeit verbessert werden mit einer einfachen Konfiguration in einer Festkommaberechnung von dem herkömmlichen System.
  • Darüber hinaus kann mit der Datenberechnungsvorrichtung gemäß Anspruch 3 der vorliegenden Erfindung die Rechengenauigkeit verbessert werden, wenn die Festkommaberechnung in einem Block-Fließkommasystem durchgeführt wird, und Daten können mit hoher Geschwindigkeit berechnet werden.

Claims (6)

  1. Datenberechnungsverfahren, das in einer Datenberechnungsvorrichtung implementiert wird, zum Bearbeiten von Daten eines Datenblockes, wobei der Datenblock mehrere Datengruppen enthält, wobei jede Datengruppe mehrere Datenstücke enthält, und wobei das Verfahren die Schritte aufweist: a) Ausführen einer Operation für jedes Datenstück einer Datengruppe, was in mehreren berechneten Datenstücken resultiert, b) Detektieren eines Skalierungsfaktors eines berechneten Datenstückes, das den größten Betrag unter den mehreren berechneten Datenstücken aufweist, als einen Gruppenskalierungsfaktor, c) Ausführen, basierend auf dem Gruppenskalierungsfaktor, einer Skalierung bei jedem Stück der berechneten Daten, was in mehreren skalierten berechneten Datenstücken resultiert, d) Speichern der mehreren skalierten berechneten Datenstücke als eine neue Datengruppe und des Gruppenskalierungsfaktors, e) Wiederholen der Schritte a) bis d) für jede Datengruppe des Datenblockes, was in einem neuen Datenblock resultiert, der eine Mehrzahl der neuen Datengruppen enthält, f) Detektieren, unter den detektieren Gruppenskalierungsfaktoren von allen neuen Datengruppen des neuen Datenblockes, des Gruppenskalierungsfaktors einer neuen Datengruppe, die ein berechnetes Datenstück enthält, das den größten Betrag unter allen berechneten Datenstücken in dem neuen Datenblock aufweist, und Speichern des detektierten Gruppenskalierungsfaktors als einen Blockskalierungsfaktor, und g) wenn eine nachfolgende Operation bei einem Stück der skalierten berechneten Datenstücke einer neuen Datengruppe des neuen Datenblockes ausgeführt wird, Ausführen einer Skalierung bei dem berechneten Datenstück der neuen Datengruppe des neuen Datenblockes basierend auf dem Gruppenskalierungsfaktor der neuen Datengruppe und dem Blockskalierungsfaktor des neuen Datenblockes vor dem Ausführen der nachfolgenden Operation.
  2. Datenberechnungsverfahren nach Anspruch 1, bei dem in Schritt g) das Skalieren bei dem skalierten berechneten Datenstück der neuen Datengruppe des neuen Datenblockes basierend auf einer Differenz zwischen dem Gruppenskalierungsfaktor der neuen Datengruppe und dem Blockskalierungsfaktor des neuen Datenblockes vor dem Ausführen der Operation ausgeführt wird.
  3. Datenberechnungsvorrichtung, die angepasst ist zum Verarbeiten von Daten eines Datenblockes, wobei der Datenblock mehrere Datengruppen enthält, wobei jede Datengruppe k Datenstücke enthält (k = 2, 3, 4, ...), mit k Berechnungseinheiten (P0–Pk-1), die jeweils ein erstes Skalierungsmittel (10), das angepasst ist zum Skalieren von Daten basierend auf einem ersten gegebenen Skalierungsfaktor, ein Operationsmittel (12), das angepasst ist zum Ausführen einer Operation bei Daten, die von dem ersten Skalierungsmittel empfangen werden, ein Skalierungsfaktorberechnungsmittel (14), das angepasst ist zum Berechnen eines Skalierungsfaktors des berechneten Datenstückes, das von dem Operationsmittel empfangen wird, und ein zweites Skalierungsmittel (16), das angepasst ist zum Skalieren der berechneten Daten, die von dem Operationsmittel (12) empfangen werden, basierend auf einem zweiten gegebenen Skalierungsfaktor, aufweisen, wobei das Datenberechnungsmittel weiter ein Speichermittel (100, 52, 56), das zum Speichern von Daten angepasst ist, ein Gruppenskalierungsfaktordetektionsmittel (50), das angepasst ist zum Detektieren eines Skalierungsfaktors eines berechneten Datenstückes, das den größten Betrag unter den mehreren berechneten Datenstücken aufweist, als einen Gruppenskalierungsfaktor, ein Blockskalierungsfaktordetektionsmittel (54), das angepasst ist zum Detektieren, unter den delektierten Gruppenskalierungsfaktoren von allen neuen Datengruppen des neuen Datenblockes, des Gruppenskalierungsfaktors einer neuen Datengruppe, die ein berechnetes Datenstück enthält, das den größten Betrag unter allen berechneten Datenstücken in dem neuen Datenblock aufweist, und zum Speichern des delektierten Gruppenskalierungsfaktors als einen Blockskalierungsfaktor, und ein Steuermittel (400), das angepasst ist zum Ausführen einer Steuerung der Datenberechnungsvorrichtung zur Datenverarbeitung derart, dass Daten eines Datenblockes aus dem Speichermittel gelesen werden, für jede Datengruppe des Datenblockes die k Datenstücke der Datengruppe den ersten Skalierungsmitteln einer entsprechenden der k Berechnungseinheiten zugeordnet werden, und die Schritte a) bis g) der Ansprüche 1 und 2 unter Verwendung des Operationsmittels (12) zum Ausführen von Schritt a), des Gruppenskalierungsfaktordetektionsmittels zum Ausführen von Schritt b), des zweiten Skalierungsmittels (16) zum Ausführen von Schritt c) mit dem Gruppenskalierungsfaktor als dem zweiten gegebenen Skalierungsfaktor, dem Blockskalierungsfaktordetektionsmittel zum Ausführen von Schritt f), und dem ersten Skalierungsmittel (10) zum Ausführen von Schritt g) mit der Differenz zwischen dem Gruppenskalierungsfaktor der Datengruppe und dem Blockskalierungsfaktor als dem ersten gegebenen Skalierungsfaktor, aufweist.
  4. Datenberechnungsvorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass das Skalierungsfaktorberechnungsmittel (14) eine Anzahl von redundanten Bits der berechneten Daten von dem Operationsmittel berechnet und die Anzahl als einen Skalierungsfaktor ausgibt.
  5. Datenberechnungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass das Operationsmittel (12) eine Festkomma-Operationseinheit ist, das erste Skalierungsmittel Bits der Daten um einen Verschiebungsbetrag, der dem ersten gegebenen Skalierungsfaktor entspricht, verschiebt, und das zweite Skalierungsmittel (16) Bits der berechneten Daten, die von dem Operationsmittel (12) erhalten werden, um einen Verschiebungsbetrag, der dem zweiten gegebenen Skalierungsfaktor entspricht, verschiebt.
  6. Datenberechnungsvorrichtung nach einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, dass das Operationsmittel (12) eine Multiplikator-Akkumulations-Operationseinheit zum Berechnen einer Summe der Produkte von Daten von dem ersten Skalierungsmittel und einem vorbestimmten Koeffizienten ist.
DE69925123T 1998-06-15 1999-06-14 Datenberechnungvorrichtung Expired - Lifetime DE69925123T2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE69925123T DE69925123T2 (de) 1998-06-15 1999-06-14 Datenberechnungvorrichtung

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE19826252A DE19826252C2 (de) 1998-06-15 1998-06-15 Verfahren zur digitalen Signalverarbeitung
DE19826252 1998-06-15
DE69925123T DE69925123T2 (de) 1998-06-15 1999-06-14 Datenberechnungvorrichtung
PCT/JP1999/003157 WO1999066423A1 (fr) 1998-06-15 1999-06-14 Dispositif pour calcul de donnees

Publications (2)

Publication Number Publication Date
DE69925123D1 DE69925123D1 (de) 2005-06-09
DE69925123T2 true DE69925123T2 (de) 2006-03-02

Family

ID=7870718

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19826252A Expired - Fee Related DE19826252C2 (de) 1998-06-15 1998-06-15 Verfahren zur digitalen Signalverarbeitung
DE69925123T Expired - Lifetime DE69925123T2 (de) 1998-06-15 1999-06-14 Datenberechnungvorrichtung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19826252A Expired - Fee Related DE19826252C2 (de) 1998-06-15 1998-06-15 Verfahren zur digitalen Signalverarbeitung

Country Status (8)

Country Link
US (1) US6728739B1 (de)
EP (1) EP1094401B1 (de)
JP (1) JP3736741B2 (de)
KR (1) KR100398859B1 (de)
AU (1) AU4165799A (de)
DE (2) DE19826252C2 (de)
TW (1) TW457441B (de)
WO (1) WO1999066423A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4594957B2 (ja) * 2001-09-18 2010-12-08 旭化成株式会社 コンパイル装置
EP1429244A4 (de) * 2001-09-18 2006-10-04 Asahi Chemical Ind Compiler
US7620545B2 (en) * 2003-07-08 2009-11-17 Industrial Technology Research Institute Scale factor based bit shifting in fine granularity scalability audio coding
DE102004059979B4 (de) * 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
US8005671B2 (en) 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
US20080213554A1 (en) * 2007-03-02 2008-09-04 Andrei Borisovich Vinokurov Protective Glove for Technical Work
US8370606B2 (en) * 2007-03-16 2013-02-05 Atmel Corporation Switching data pointers based on context
US7797516B2 (en) * 2007-03-16 2010-09-14 Atmel Corporation Microcontroller with low-cost digital signal processing extensions
GB2454201A (en) * 2007-10-30 2009-05-06 Advanced Risc Mach Ltd Combined Magnitude Detection and Arithmetic Operation
US8280939B2 (en) * 2008-05-22 2012-10-02 Videoiq, Inc. Methods and apparatus for automatic accuracy-sustaining scaling of block-floating-point operands
US8805914B2 (en) * 2010-06-02 2014-08-12 Maxeler Technologies Ltd. Method and apparatus for performing numerical calculations
WO2012157132A1 (ja) * 2011-05-16 2012-11-22 日本電気株式会社 演算処理装置及び演算処理方法
JP6225687B2 (ja) * 2013-02-18 2017-11-08 富士通株式会社 データ処理装置、およびデータ処理方法
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
US11791959B2 (en) 2018-10-31 2023-10-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus and machine-readable mediums for signalling in a base station
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282581A (en) * 1979-10-15 1981-08-04 Sperry Corporation Automatic overflow/imminent overflow detector
US4727506A (en) * 1985-03-25 1988-02-23 Rca Corporation Digital scaling circuitry with truncation offset compensation
CA1244955A (en) 1985-05-17 1988-11-15 Yuichi Kawakami Processing circuit capable of raising throughput of accumulation
US4872132A (en) * 1987-03-13 1989-10-03 Zoran Corporation Method and means for block floating point arithmetic
JP3178026B2 (ja) * 1991-08-23 2001-06-18 ソニー株式会社 ディジタル信号符号化装置及び復号化装置
JP2513139B2 (ja) 1993-07-27 1996-07-03 日本電気株式会社 信号処理プロセッサ
US5999960A (en) 1995-04-18 1999-12-07 International Business Machines Corporation Block-normalization in multiply-add floating point sequence without wait cycles
JPH09128213A (ja) 1995-10-31 1997-05-16 Hitachi Ltd ブロックフローティング処理システムおよび方法
JPH1040073A (ja) 1996-07-24 1998-02-13 Matsushita Electric Ind Co Ltd ディジタル信号処理装置

Also Published As

Publication number Publication date
KR20010052899A (ko) 2001-06-25
WO1999066423A1 (fr) 1999-12-23
EP1094401A1 (de) 2001-04-25
KR100398859B1 (ko) 2003-09-19
JP3736741B2 (ja) 2006-01-18
TW457441B (en) 2001-10-01
DE69925123D1 (de) 2005-06-09
EP1094401B1 (de) 2005-05-04
AU4165799A (en) 2000-01-05
DE19826252A1 (de) 1999-12-16
US6728739B1 (en) 2004-04-27
DE19826252C2 (de) 2001-04-05
EP1094401A4 (de) 2002-06-19

Similar Documents

Publication Publication Date Title
DE69925123T2 (de) Datenberechnungvorrichtung
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
EP0875031B1 (de) Prozessor zur bildverarbeitung
DE2724125C2 (de)
EP0079471B1 (de) Schaltungsanordnung und Verfahren zur Bildung von Skalarprodukten und Summen von Gleitkommazahlen mit maximaler Genauigkeit
DE19839627B4 (de) Digitaler Signalprozessor
DE2753062C2 (de) Einrichtung zur wiederholten Durchführung von Programmschleifen
DE212007000102U1 (de) Rekonfigurierbarer Array-Prozessor für Gleitkomma-Operationen
DE2934971A1 (de) Datenverarbeitungssystem
EP0123921A2 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE3609250C2 (de)
CH644461A5 (de) Digitale multipliziereinrichtung.
DE3507584C2 (de)
DE2830334C2 (de)
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
DE60316342T2 (de) Multiplizierer mit nachschlagetabellen
EP0265555B1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE10311714B4 (de) Bildherstellungsvorrichtung und Bildverarbeitungsverfahren
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE2523755C3 (de) Divisionsvorrichtung unter Verwendung einer Näherungsgleichung
DE19846828B4 (de) Kombinierter Binär-/Dezimal-Addierer
DE69930544T2 (de) Verfahren und vorrichtung für bedingte vektoroperationen
DE2846537C2 (de) Mikroprogrammierte Datenverarbeitungseinrichtung
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
DE1801725C3 (de) Digitaler Fourier-Analysator

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: ASAHI KASEI KABUSHIKI KAISHA, OSAKA, JP

Owner name: NXP SEMICONDUCTORS GERMANY GMBH, 22529 HAMBURG, DE