-
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.
-
-
-
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.