DE60006336T2 - Absolutwertvergleicher - Google Patents

Absolutwertvergleicher Download PDF

Info

Publication number
DE60006336T2
DE60006336T2 DE2000606336 DE60006336T DE60006336T2 DE 60006336 T2 DE60006336 T2 DE 60006336T2 DE 2000606336 DE2000606336 DE 2000606336 DE 60006336 T DE60006336 T DE 60006336T DE 60006336 T2 DE60006336 T2 DE 60006336T2
Authority
DE
Germany
Prior art keywords
value
absolute value
calculation
complement
sign
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
DE2000606336
Other languages
English (en)
Other versions
DE60006336D1 (de
Inventor
Masakazu Osaka-shi Fujimoto
Michihiro Ashiya-shi Matsumoto
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60006336D1 publication Critical patent/DE60006336D1/de
Application granted granted Critical
Publication of DE60006336T2 publication Critical patent/DE60006336T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • 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/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Berechnungsvorrichtung zum Ausführen einer Verarbeitung, die ermittelt, welches von zwei Datenstücken einen größeren Absolutwert hat, um Daten zu ermitteln, die unter mehreren Daten den maximalen Absolutwert haben, auf ein Berechnungsverfahren, das diese Verarbeitung unter Verwendung der Berechnungsvorrichtung ausführt, und auf einen Prozessor, der eine solche Berechnungsvorrichtung enthält. Genauer bezieht sich die vorliegende Erfindung auf eine Berechnungsvorrichtung, die zum Komprimieren von AV-Daten wie etwa digitalisierten Musikdaten nutzbar ist, deren Vergleich der Absolutwerte eine große Last darstellt; auf ein Berechnungsverfahren, das diese Verarbeitung unter Verwendung der Berechnungsvorrichtung ausführt; und auf einen Prozessor, der eine solche Berechnungsvorrichtung enthält.
  • 2. BESCHREIBUNG DES VERWANDTEN GEBIETS:
  • In aktuellen AV-Systemen werden Signale häufig als digitale Signale verarbeitet. Ein digitales Signal wird weniger durch Umgebungsrauschen beeinflusst als ein analoges Signal und kann somit selbst dann, wenn es in einem Aufzeichnungsmedium wie etwa z. B. einer Compact Disc (CD) gespeichert oder von einem Ort zu einem anderen übertragen wird, sehr zufrieden stellend wiedergegeben werden. Um die digitalen Daten mit diesen ausgezeichneten Eigenschaften in größerer Menge in einem Aufzeichnungsmedium zu speichern oder zu übertragen, ist die Komprimierung der digitalen Daten unverzichtbar. Zur Standardisierung der Komprimierungstechnologie ist die MPEG (Moving Picture Experts Group) gegründet worden. Die durch die MPEG standardisierten Komprimierungsformate umfassen MPEG1 und MPEG2 zum Komprimieren von Bewegtbildsignalen sowie MPEG-Audio zum Komprimieren von Audiosignalen.
  • In Übereinstimmung mit dem MPEG-Audio-Format wird ein Audiosignal wie folgt komprimiert.
  • Die Audiodaten in einem Zeitbereich werden in Daten in 32 entsprechenden Frequenzbändern umgewandelt. Daraufhin werden die Daten in jedem Frequenzband in eine Signalform und in ein Verstärkungsverhältnis getrennt. Die Signalform wird normiert, so dass die maximale Amplitude in der Nähe von 1,0 liegt, und die normierte Signalform als eine Probe codiert. Mit anderen Worten, durch die Normierung der Signalform liegt der einzelne Wert A, der das Signalformsignal repräsentiert, in dem Bereich –1 ≤ A < 1, ohne die Ähnlichkeit der Form zu beschädigen. Das Verstärkungsverhältnis zum Zeitpunkt der Normierung wird als ein Normierungsfaktor ebenfalls codiert. Anschließend werden den Daten mit einer höchsten Quantisierungsgenauigkeit, die angesichts der menschlichen Höreigenschaften durch das menschliche Ohr unterscheidbar sind, vorzugsweise Bits zugewiesen. Somit wird die Datenkomprimierung ausgeführt.
  • Die Größe eines Signalformsignals muss in jedem Frequenzband unter Verwendung einer bestimmten Bitbreite dargestellt werden. Um die Größen aller Signalformsignale, die eine minimale Bitbreite verwenden, ohne irgendeine Verschwendung darzustellen, muss der minimale Absolutwert unter den Absolutwerten der Signalformsignale ermittelt werden.
  • Diese Verarbeitung wird heute häufig von einem programmierbaren Prozessor ausgeführt. 16 ist ein Blockschaltplan, der eine herkömmliche, für das Ermitteln des maximalen Absolutwerts verwendete allgemeine Struktur 160 zeigt. Der Prozessor 160 enthält einen Steuerabschnitt 1 und einen Datenbusabschnitt 2, welcher eine ALU 6 enthält, die die Berechnungen ausführt.
  • Der Steuerabschnitt 1 enthält einen Programmzähler 3, einen Ausführungsbefehlsspeicher 4 und einen Decodierer 5. Der Ausführungsbefehlsspeicher 4 besitzt einen Ausführungsbefehl, der als ein Programm gespeichert ist. Der Programmzähler 3 zeigt eine Adresse in dem Ausführungsbefehlsspeicher 4 an, der einen nachfolgend auszuführenden Ausführungsbefehl speichert. Üblicherweise wird der Programmzähler 3 durch ein Steuersignal 12 von dem Decodierer 5 inkrementiert. Wenn ein Verzweigungsbefehl oder dergleichen auszuführen ist, stellt der Programmzähler 3 die Adresse des Ziels der Verzweigung ein. Der Decodierer 5 gibt anhand des Ausführungsbefehls aus dem Ausführungsbefehlsspeicher 4 und des Werts eines Merkereinstellabschnitts 9 ein Steuersignal 10 an den Datenbusabschnitt 2 aus und gibt außerdem das Steuersignal 12 an den Programmzähler 3 aus.
  • Der Datenbusabschnitt 2 enthält die ALU 6, eine Registerdatei 7, einen Datenspeicher 8 und den Merkereinstellabschnitt 9. Die ALU 6 führt anhand des Steuersignals 10 an einem von der Registerdatei 7 ausgegebenen Wert eine Berechnung aus und speichert das Berechnungsergebnis in der Registerdatei 7. Die Registerdatei 7 ist eine Zusammenstellung mehrerer Register. Durch das Steuersignal 10 wird unter den mehreren Registern ein Register bestimmt, dessen Inhalt an die ALU 6 oder an den Datenspeicher 8 ausgegeben wird. Durch das Steuersignal 10 wird das Register bestimmt, in das die Ausgabe von der ALU 6 oder von dem Datenspeicher 8 zu schreiben ist. Der Inhalt des bestimmten Registers wird als ein Adressensignal 11 an den Datenspeicher 8 ausgegeben.
  • Die Registerdatei 7 enthält fünf Register A, B, C, D und P. Der Datenspeicher 8 ist dazu vorgesehen, die für die Berechnungen verwendeten Daten zu speichern. Durch das Adressensignal 11 wird eine Adresse in dem Datenspeicher 8 bestimmt, wobei eine Ausgabe aus der Registerdatei 7 an die bestimmte Adresse geschrieben wird. Der Inhalt an der durch das Adressensignal 11 bestimmten Adresse in dem Datenspeicher 8 wird gelesen und in die Registerdatei 7 geschrieben. Der Merkereinstellabschnitt 9 enthält einen Merker N, der ein Merkerregister N enthält, sowie einen Merker Z, der ein Merkerregister Z enthält. Der Merker N wird auf "1" gesetzt, wenn das von der ALU 6 ausgegebene Berechnungsergebnis negativ ist, während er sonst auf "0" gesetzt wird. Der Merker Z wird auf "1" gesetzt, wenn das von der ALU 6 ausgegebene Berechnungsergebnis null ist, während er sonst auf "0" gesetzt wird.
  • Die Bitbreiten der Register A, B, C, D und P, die Bitbreite des Datenspeichers 8, die Bitbreite der in die ALU 6 eingegebenen und aus ihr ausgegebenen Daten und die Bitbreite in Bezug auf die Rechengenauigkeit betragen sämtlich 4 Bits.
  • Der Prozessor besitzt die folgenden Ausführungsbefehle: "move a, b: Datenübertragung aus dem Register b in das Register a", "movei a, imm: der Zwischenwert imm wird im Register a eingestellt", "cmp a, b: Datenvergleich zwischen dem Register a und dem Register b; in der ALU 6 wird eine Subtraktion ausgeführt, das Ergebnis aber nicht in das Register (a-b) geschrieben", "cmpi a, imm: Vergleich zwischen dem Register i und dem Zwischenwert imm; in der ALU 6 wird eine Subtraktion ausgeführt, das Ergebnis aber nicht in das Register (a-imm) geschrieben", "addi a, imm: der Zwischenwert imm wird zu dem Wert des Registers a addiert und im Register a eingestellt", "abs a, b: der Absolutwert des 2er-Kom plements des Registers b wird im Register a eingestellt", "jmp label: springe unbedingt zur Marke", "jmp(b) label: springe zur Marke, wenn der Merker N und der Merker Z beide 0 sind" und "jmp(e) label: springe zur Marke, wenn der Merker Z 1 ist".
  • 17 zeigt ein Programm zum Ausführen der Verarbeitung zum Ermitteln des maximalen Absolutwerts unter Verwendung des herkömmlichen allgemeinen Prozessors.
  • In diesem Beispiel sind die Daten, deren maximaler Absolutwert zu ermitteln ist, in dem Datenspeicher 8 (16), genauer, in einem Speicherbereich von der Adresse 0 bis zur Adresse 3, gespeichert.
  • Im Schritt (1) wird im Register P 0 (Adresse 0) eingestellt. Im Schritt (2) wird im Register C 0, d. h. der minimale Absolutwert, als Leerdaten eingestellt. Im Schritt (3) wird der Wert der durch das Register P angezeigten Adresse im Register A eingestellt. Im Schritt (4) wird das Ergebnis einer Absolutwertberechnung des Werts des Registers A im Register B eingestellt. Im Schritt (5) wird das Ergebnis einer Absolutwertberechnung des Werts des Registers C im Register D eingestellt. Im Schritt (6) werden die Werte der Register D und B verglichen. Im Schritt (7) schreitet die Verarbeitung zu Schritt (9) fort, wenn das Vergleichsergebnis im Schritt (6) positiv ist (Merker N = 0, Merker Z = 0). Sonst schreitet die Verarbeitung zu Schritt (8) fort. Im Schritt (8) wird der Wert des Registers A ins Register C übertragen. Im Schritt (9) wird bestimmt, ob die durch den Wert des Registers P angezeigte Adresse eine Adresse des Endzustands der Datengruppe, d. h. gleich der Adresse 3, ist. Wenn das Bestimmungsergebnis im Schritt (9) ja lautet (Merker Z = 1), schreitet die Verarbeitung im Schritt (10) zu Schritt (13) fort. Im Schritt (11) wird der Wert des Registers P um 1 inkrementiert und wird auf die nächsten Daten gezeigt. Im Schritt (12) kehrt die Verarbeitung zu Schritt (3) zurück. Im Schritt (13) wird die Verarbeitung abgeschlossen. Durch diese Verarbeitung können im Register C die Daten mit dem maximalen Absolutwert unter den in Adresse 0 bis Adresse 3 des Datenspeichers 8 gespeicherten Daten ermittelt werden.
  • In den Schritten (4) bis (6) werden die Absolutwerte der zwei Werte verglichen; während in den Schritten (7) und (8) derjenige der zwei Werte ermittelt wird, der den größeren Absolutwert hat.
  • Im Folgenden wird beschrieben, wie durch das in 17 gezeigte Programm diejenigen Daten unter vier Stücken praktischer Daten, die in 18 gezeigt sind, ermittelt werden, die den maximalen Absolutwert haben.
  • Im Schritt (1) wird im Register P 0 eingestellt. Im Schritt (2) wird im Register C 0 eingestellt.
  • Die Verarbeitung in einem ersten Zyklus wird die folgt ausgeführt.
  • Im Schritt (3) wird im Register A der Wert der an der Adresse {0} gespeicherten Daten, d. h. der Wert "3", eingestellt. Im Schritt (4) wird im Register B das Ergebnis der Absolutwertberechnung des Werts "3" im Register A, d. h. der Wert "3", eingestellt. Im Schritt (5) wird im Register D das Ergebnis der Absolutwertberechnung des Werts "0" im Register C, d. h. der Wert "0", eingestellt. Im Schritt (6) werden der Wert "0" des Registers D und der Wert "3" des Registers B miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "0 – 3 = –3", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Da der Merker N = 1 und der Merker Z = 0 ist, schreitet die Verarbeitung im Schritt (7) zu Schritt (8) fort. Im Schritt (8) wird im Register C der Wert "3" des Registers A eingestellt. Im Schritt (9) werden der Wert "0" des Registers P und die Adresse {3} der Enddaten miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "0 – 3 = –3", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Im Schritt (10) ist der Merker Z = 0, so dass die Verarbeitung zu Schritt (11) fortschreitet. Im Schritt (11) wird der Wert des Registers P um 1 auf "1" inkrementiert. Im Schritt (12) kehrt die Verarbeitung zu Schritt (3) zurück.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Im Schritt (3) wird im Register A der Wert der an der Adresse {1} gespeicherten Daten, d. h. Wert "–5", eingestellt. Im Schritt (4) wird im Register B das Ergebnis der Absolutwertberechnung des Werts "–5" im Register A, d. h. der Wert "5", eingestellt. Im Schritt (5) wird im Register D das Ergebnis der Absolutwertberechnung des Werts "3" im Register C, d. h. der Wert "3", eingestellt. Im Schritt (6) werden der Wert "3" des Registers D und der Wert "5" des Registers B miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "3 – 5 = –2", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Da der Merker N = 1 und der Merker Z = 0 ist, schreitet die Verarbeitung im Schritt (7) zu Schritt (8) fort. Im Schritt (8) wird im Register C der Wert "–5" des Registers A eingestellt. Im Schritt (9) werden der Wert "1" des Registers P und die Adresse {3} der Enddaten miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "1 – 3 = –2", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Im Schritt (10) ist der Merker Z = 0, so dass die Verarbeitung zu Schritt (11) fortschreitet. Im Schritt (11) wird der Wert des Registers P um 1 auf "2" inkrementiert. Im Schritt (12) kehrt die Verarbeitung zu Schritt (3) zurück.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Im Schritt (3) wird im Register A der Wert der an der Adresse {2} gespeicherten Daten, d. h. der Wert "–2", eingestellt. Im Schritt (4) wird im Register B das Ergebnis der Absolutwertberechnung des Werts "–2" im Register A, d. h. der Wert "2", eingestellt. Im Schritt (5) wird im Register D das Ergebnis der Absolutwertberechnung des Werts "–5" im Register C, d. h. der Wert "5", eingestellt. Im Schritt (6) werden der Wert "5" des Registers D und der Wert "2" des Registers B miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "5 – 2 = 3", d. h. positiv, so dass der Merker N = 0 und der Merker Z = 0 gesetzt werden. Da der Merker N = 0 und der Merker Z = 0 ist, schreitet die Verarbeitung im Schritt (7) zu Schritt (9) fort. Im Schritt (9) werden der Wert "2" des Registers P und die Adresse {3} der Enddaten miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "2 – 3 = –1", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Im Schritt (10) ist der Merker Z = 0, so dass die Verarbeitung zu Schritt (11) fortschreitet. Im Schritt (11) wird der Wert des Registers P um 1 auf "3" inkrementiert. Im Schritt (12) kehrt die Verarbeitung zu Schritt (3) zurück.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Im Schritt (3) wird im Register A der Wert der an der Adresse {3} gespeicherten Daten, d. h. der Wert "6", eingestellt. Im Schritt (4) wird im Register B das Ergebnis der Absolutwertberechnung des Werts "6" im Register A, d. h. der Wert "6", eingestellt. Im Schritt (5) wird im Register D das Ergebnis der Absolutwertberechnung des Werts "–5" im Register C, d. h. der Wert "5", eingestellt. Im Schritt (6) werden der Wert "5" des Registers D und der Wert "6" des Registers B miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "5 – 6 = –1", d. h. negativ, so dass der Merker N = 1 und der Merker Z = 0 gesetzt werden. Da der Merker N = 1 und der Merker Z = 0 ist, schreitet die Verarbeitung im Schritt (7) zu Schritt (8) fort. Im Schritt (8) wird im Register C der Wert "6" des Registers A eingestellt. Im Schritt (9) werden der Wert "4" des Registers P und die Adresse {3} der Enddaten miteinander verglichen. Das Ergebnis des Vergleichs (der Subtraktion) ist "3 – 3 = 0", so dass der Merker N = 0 und der Merker Z = 1 gesetzt werden. Im Schritt (10) ist der Merker Z = 1, so dass die Verarbeitung zu Schritt (13) fortschreitet. Im Schritt (13) wird die Verarbeitung abgeschlossen Durch diese Verarbeitung kann im Register C der maximale Absolutwert "6" ermittelt werden.
  • Die oben beschriebene Verarbeitung erfordert viele Berechnungen und wird in einem herkömmlichen Prozessor somit durch eine Spezialberechnungsvorrichtung ausgeführt, um die Geschwindigkeit zu erhöhen.
  • 19 ist ein Blockschaltplan, der einen herkömmlichen Prozessor 190 zeigt, der eine Spezialberechnungsvorrichtung enthält. Wie der Prozessor 160 enthält der Prozessor 190 einen Datenbusabschnitt 2 und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2. Der Steuerabschnitt 1 wirkt auf die gleiche Weise wie der Steuerabschnitt 1 in dem Prozessor 160 in 16. Außer den Elementen, die in dem Datenbusabschnitt 2 in dem in 16 gezeigten Prozessor 160 enthalten sind, enthält der Datenbusabschnitt 2 eine 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14, d. h. eine Spezialberechnungsvorrichtung. Die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 führt an dem aus der Registerdatei 7 ausgegebenen Wert die 2er-Komplement-Absolutwert-Subtraktionsverarbeitung aus.
  • Die ALU 6, die Registerdatei 7 und der Datenspeicher 8 wirken auf die gleiche Weise wie jene in dem Prozessor 160 (16). Der Merkereinstellabschnitt 9 führt die Merkereinstellung auf die gleiche Weise wie in dem Prozessor 160 aus und widerspiegelt außerdem die Ausgabe von der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14.
  • 20 zeigt eine Struktur der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14. Die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung enthält eine erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50, eine zweite 2er-Komplement-Absolutwertberechnungsvorrichtung 51 und eine Subtraktionsvorrichtung 22. Die erste 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 50 enthält einen Inverter 52, einen +1-Addierer 53 und eine Auswahleinrichtung 54. Der Inverter 52 invertiert alle Bits der Eingangsdaten (wobei die Eingabe A durch das Bezugszeichen 69 dargestellt ist), während der +1-Addierer 53 zu dem vom Inverter 52 ausgegeben Wert "1" addiert. Das heißt, das 2er-Komplement der Eingabe A (69) wird dadurch erhalten, dass die Bits der Eingabe A (69) invertiert werden und zu den invertierten Bits 1 addiert wird. Somit wird das 2er-Komplement der Eingabe A (69) als ein invertierter Wert 60 ausgegeben. Wenn das Vorzeichen der Eingabe A (69) negativ ist, wählt die Auswahleinrichtung 54 den invertierten Wert 60 aus, während sie sonst die Eingabe A (69) auswählt. Durch diese Verarbeitung wird von der ersten 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 (Auswahleinrichtung 54) ein positiver Wert mit einem gleichen Absolutwert wie die Eingabe A (69) ausgegeben (62), wenn die Eingabe A (69) einen negativen Wert besitzt. Wenn die Eingabe A (69) einen positiven Wert hat, wird von der ersten 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 (von der Auswahleinrichtung 54) die Eingabe A (69) wie sie ist ausgegeben (62). Diese Verarbeitung wird als Absolutwert-Berechnungsverarbeitung bezeichnet.
  • Ähnlich enthält die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 einen Inverter 55, einen +1-Addierer 56 und eine Auswahleinrichtung 57. Der Inverter 55 invertiert alle Bits der Eingangsdaten (wobei die Eingabe B durch das Bezugszeichen 70 dargestellt ist), während der +1-Addierer 56 zu dem vom Inverter 55 ausgegebenen Wert "1" addiert. Das heißt, das 2er-Komplement der Eingabe B (70) wird dadurch erhalten, dass die Bits der Eingabe B (70) invertiert werden und zu den invertierten Bits 1 addiert wird. Somit wird das 2er-Komplement der Eingabe B (70) als ein invertierter Wert 61 ausgegeben. Wenn das Vorzeichen der Eingabe B (70) negativ ist, wählt die Auswahleinrichtung 57 den invertierten Wert 61 aus, während sie sonst die Eingabe B (70) auswählt. Durch diese Verarbeitung wird von der zweiten 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 (Auswahleinrichtung 57) ein positiver Wert mit einem gleichen Absolutwert wie die Eingabe B (70) ausgegeben (63), wenn die Eingabe B (70) einen negativen Wert besitzt. Wenn die Eingabe B (70) einen positiven Wert hat, wird von der zweiten 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 (von der Auswahleinrichtung 57) die Eingabe B (70) wie sie ist ausgegeben (63).
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts (den im Ergebnis der Absolutwertberechnung erhaltenen Wert) von dem Wert 62 nach der Berechnung des Absolutwerts und gibt ein Subtraktionsergebnis 65 (Ergebnis 65 der Berechnung des Absolutwertvergleichs) aus.
  • Die Bitbreiten der Register A, B, C, D und P, die Bitbreite des Datenspeichers 8 und die Bitbreite der in die ALU 6 eingegebenen und der aus ihr ausgegebenen Daten sind sämtlich 4 Bits. Die Bitbreite der in die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 eingegebenen und aus ihr ausgegebenen Daten und die Bitbreite in Bezug auf die Rechengenauigkeit sind sämtlich 4 Bits.
  • Außer den Ausführungsbefehlen des Prozessors 160 (16) besitzt der Prozessor 190 (19) den folgenden Ausführungsbefehl: "abcmp a, b: Vergleich zwischen den Absolutwerten des Registers a und des Registers b; das Ergebnis wird nicht in das Register (|a| – |b|) geschrieben.
  • Im Folgenden wird hauptsächlich hinsichtlich des Befehls "abcmp", der die in dem Prozessor 190 enthaltene 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 (20) verwendet, beschrieben, wie unter Verwendung des Prozessors 190 (19) die Daten mit dem maximalen Absolutwert unter den vier Stücken praktischer Daten ermittelt werden.
  • 21 zeigt ein Programm zum Ausführen der Verarbeitung zum Ermitteln des maximalen Absolutwerts unter Verwendung des herkömmlichen allgemeinen Prozessors 190, der die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 enthält. Die Schritte (1) bis (3) und (7) bis (13) sind völlig gleich denen, die unter Verwendung des herkömmlichen allgemeinen Prozessors 160 ausgeführt werden. Im Schritt (14) werden unter Verwendung des Befehls "abcmp" die Absolutwerte des Registers C und des Registers A miteinander verglichen. Im Schritt (14) wird die Verarbeitung ausgeführt, die unter Verwendung des herkömmlichen allgemeinen Prozessors 160 in den Schritten (4) bis (7) ausgeführt wird. Der Wert des Registers C wird als die Eingabe A (69) der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 eingegeben, während der Wert des Registers A als die Eingabe B (70) der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 eingegeben wird.
  • Die in dem Datenspeicher 8 gespeicherten Daten werden durch ein 2er-Komplement mit einem Vorzeichenbit in dem MSB (höchstwertigen Bit unter den 4 Bits) dargestellt. Das Vorzeichen des Werts der Daten ist negativ, wenn der Wert des MSB 1 ist, während er positiv ist, wenn der Wert des MSB 0 ist. Wenn der Wert der Daten auf binäre Art dargestellt wird, wird dem Datenstrom "0b" vorangestellt. Wenn der Bitstrom einen Wert darstellt, wird der Wert "0b" vorangestellt.
  • Da die Eingaben A (69) und B (70) beide 4 Bits haben, ist der Bereich der Zahlenwerte, die durch jede der Eingaben A (69) und B (70) dargestellt werden können, –8 bis 7(0b1000 bis 0b0111).
  • Das Programm wird nun genauer beschrieben. Die Verarbeitung in den Schritten (1) und (2) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Die Verarbeitung in einem ersten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 ausgeführt. Diese wird anhand von 22A beschrieben.
  • Der Wert des Registers C, "0(0b0000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b0011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "0(0b0000)", wird in die erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 eingegeben. Der Wert wird durch die Inverter 52 invertiert und durch den +1-Addierer 53 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 60 "0(0b0000)". Die Auswahleinrichtung 54 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "0(0b0000)", null ist, wählt somit die Eingabe A (69) aus und gibt "0(0b0000)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "3(0b0011)", wird in die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 eingegeben. Der Wert wird durch den Inverter 55 invertiert und durch den +1-Addierer 56 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 61 "-3(0b1101)". Die Auswahleinrichtung 57 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "3(0b0011)" positiv ist, wählt somit die Eingabe B (70) aus und gibt "3(0b0011)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "–3(0b1101)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt eine Bestimmung an dem Eingabewert "–3(0b1101)" vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (9) bis (11) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 ausgeführt. Diese wird anhand von 22B beschrieben.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–5(0b1011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "3(0b0011)", wird in die erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 eingegeben. Der Wert wird durch den Inverter 52 invertiert und durch den +1-Addierer 53 zu dem Wert "1" addiert. Somit ist der invertierte Wert 60 "–3(0b1101)". Die Auswahleinrichtung 54 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe A (69), "3(0b0011)", vor, wählt somit die Eingabe A (69) aus und gibt "3(0b0011)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–5(0b1011)", wird in die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 eingegeben. Der Wert wird durch den Inverter 55 invertiert und durch den +1-Addierer 56 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 61 "5(0b0101)". Die Auswahleinrichtung 57 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe B (70), "–5(0b1011)", vor, wählt somit den invertierten Wert 61 aus und gibt "5(0b0101)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "–2(0b1110)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt eine Bestimmung an dem Eingabewert "–2(0b1110)" vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 ausgeführt. Diese wird anhand von 22C beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–2(0b1110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 eingegeben. Der Wert wird durch den Inverter 52 invertiert und durch den +1-Addierer 53 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 60 "5(0b0101)". Die Auswahleinrichtung 54 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe A (69), "–5(0b1011)", vor, wählt somit die Eingabe A (69) aus und gibt "5(0b0101)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–2(0b1110)", wird in die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 eingegeben. Der Wert wird durch den Inverter 55 invertiert und durch den +1-Addierer 56 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 61 "2(0b0010)". Die Auswahleinrichtung 57 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe B (70), "–2(0b1110)", vor, wählt somit den invertierten Wert 61 aus und gibt "2(0b0010)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "3(0b0011)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt eine Bestimmung an dem Eingabewert "3(0b0011)" vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 0: Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 ausgeführt. Diese wird anhand von 22D beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "6(0b0110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 eingegeben. Der Wert wird durch den Inverter 52 invertiert und durch den +1-Addierer 53 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 60 "5(0b0101)". Die Auswahleinrichtung 54 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe A (69), "-5(0b1011)", vor, wählt somit den invertierten Wert 60 aus und gibt "5(0b0101)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "6(0b0110)", wird in die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 eingegeben. Der Wert wird durch den Inverter 55 invertiert und durch den +1-Addierer 56 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 61 "–6(0b1010)". Die Auswahleinrichtung 57 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe B (70), "6(0b0110)", vor, wählt somit die Eingabe B (70) aus und gibt "6(0b0110)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "–1(0b1111)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt eine Bestimmung an dem Eingabewert "–1(0b1111)" vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen allgemeinen Prozessors 160.
  • Durch diese Verarbeitung kann im Register C der maximale Absolutwert "6" ermittelt werden.
  • Durch den herkömmlichen Prozessor 190 (19) wird die Geschwindigkeit der Berechnung unter Verwendung der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 (20) erhöht.
  • Allerdings besitzt die 2er-Komplement-Absolutwert-Berechnungsvorrichtung 14 das folgende Problem. Wenn ein negativer Wert den maximalen Absolutwert besitzt, der durch die vorgeschriebene Bitbreite dargestellt werden kann ("–8", falls die Zahlenwerte –8 bis 7 durch die Breite von 4 Bits dargestellt werden können), kann eine Unannehmlichkeit auftreten. Anhand von 22E wird im Folgenden ein Beispiel beschrieben. In diesem Beispiel ist im Register A "0"(0b0000)" eingestellt und ist im Register C "–8(0b1000)" eingestellt. Im Schritt (14) wird der Befehl "abcmp C, A" ausgeführt.
  • Der Wert des Registers C, "–8(b1000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "0(0b0000)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–8(0b1000)", wird in die erste 2er-Komplement-Absolutwert-Berechnungsvorrichtung 50 eingegeben. Der Wert wird durch den Inverter 52 zu "(0b0111)" invertiert. Wenn durch den +1-Addierer 53 zu dem invertierten Wert "1" addiert wird, tritt ein Überlauf auf. Somit gibt der +1-Addierer 53 als den invertierten Wert 60 "–8(0b1000)" aus. Das heißt, es sollte ein durch Invertieren von "–8(0b1000)" erhaltener positiver Wert (Absolutwert) ermittelt werden, während der invertierte Wert 60 wegen des Überlaufs negativ bleibt. Die Auswahleinrichtung 54 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe A (69), "–8(0b1000)", vor, wählt somit den invertierten Wert 60 (der ein positives Vorzeichen haben sollte) aus und gibt "–8(0b1000)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "0(0b0000)", wird in die zweite 2er-Komplement-Absolutwert-Berechnungsvorrichtung 51 eingegeben. Der Wert wird durch den Inverter 55 invertiert und durch den +1-Addierer 56 zu dem invertierten Wert "1" addiert. Somit ist der invertierte Wert 61 "(0b0000)". Die Auswahleinrichtung 57 nimmt eine Bestimmung an dem Vorzeichen des Werts der Eingabe B (70), "0(0b0000)", vor, wählt somit die Eingabe B (70) aus und gibt "0(0b0000)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "–8(0b1000)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus. Das heißt, das Ergebnis von |–8|–|0| ist ein negativer Wert.
  • Der Merkereinstellabschnitt 9 nimmt an der Eingabe "–8(0b1000)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Da das Merkerregister N = 1 und das Merkerregister Z = 0 ist, schreitet die Verarbeitung im Schritt (7) zu Schritt (8) fort. Im Schritt (8) wird der Wert des Registers A, "0(0b0000)", im Register C eingestellt.
  • Beim Vergleich von "–8(0b1000)" und "0(0b0000)" ist der Absolutwert von "–8(0b1000)" viel größer. Somit sollte "–8(0b1000)" im Register C eingestellt werden. Bei dem herkömmlichen Prozessor 190 (19) wird wegen des Überlaufs ein falscher Wert erhalten.
  • Um dies zu vermeiden, muss verhindert werden, dass als die Eingabe der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 ein negativer Wert mit dem maximalen Absolutwert eingegeben wird, der durch die vorgeschriebene Bitbreite dargestellt werden kann. Die Realisierung dieser Einstellung mit Hardware erfordert eine zusätzliche Schaltung, die die Anzahl der Schaltungen und außerdem die Größe des Schaltungssubstrats erhöht. Die Realisierung dieser Einstellung mit Software erhöht die Anzahl der Schritte und verringert somit die Rechengeschwindigkeit.
  • Außerdem besitzt der herkömmliche Prozessor 190, der die 2er-Komplement-Absolutwert-Berechnungsvorrichtung 14 enthält, das folgende Problem.
  • Wenn zwei Werte, die verglichen werden, den gleichen Absolutwert haben, verbleibt derjenige der beiden Werte, der zuerst erscheint, unabhängig vom Vorzeichen als der Wert mit dem maximalen Absolutwert im Register C. Wenn ein negativer Wert (z. B. –4) als der Wert mit dem maximalen Absolutwert erhalten wird, kann er dementsprechend unabhängig davon, ob die Daten einen positiven Wert mit dem gleichen Absolutwert wie der erhaltene Wert (z. B. 4) enthalten, nicht ermittelt werden.
  • Hier werden mehrere durch 2er-Komplemente dargestellte Datenstücke (mehrere numerische Zahlen) erzeugt, die den Werten mit einer bestimmten Bitbreite entsprechen. Die mehreren numerischen Zahlen werden vorzugsweise mit einer kleinstmöglichen Bitbreite ohne Verschwendung dargestellt. Um dies zu erreichen, werden aus der Datengruppe die Daten A mit dem maximalen Absolutwert erhalten, während die minimale Bitbreite vorbereitet wird, die erforderlich ist, um die 2A + 1 Werte darzustellen, die in dem Bereich von –A bis A einschließlich 0 enthalten sind.
  • Es wird angenommen, dass unter Verwendung des herkömmlichen Prozessors im Register C "–4(0b1100)" als die Daten mit dem maximalen Absolutwert erhalten wird. Es kann nicht ermittelt werden, ob die untersuchten Daten "4(0b0100)" enthalten. Somit ist zu betrachten, dass die Daten in dem Bereich von "–4" bis "4" dargestellt werden müssen. Um die Zahlenwerte von "–4" bis "4" darzustellen, sind 9 Werte einschließlich 0 erforderlich, wobei die erforderliche Bitbreite 4 (0000 bis 1000) ist. Es ist klar, dass die Datengruppe "4" mit dem gleichen Absolutwert wie "–4" nicht enthält, wobei der Bereich der darzustellenden Zahlenwerte "–4" bis "3" ist. Um den Zahlenwert von "–4" bis "3" darzustellen, sind 8 Werte einschließlich 0 erforderlich, wobei die erforderliche Bitbreite 3 (000 bis 111) ist. Somit ist es möglich, dass der herkömmliche Prozessor unnötig Bits zuweist.
  • Die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 hat das folgende Problem.
  • Die 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 enthält zwei +1-Addierer 53 und 56. Somit ist die Rechengeschwindigkeit der gesamten 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14 um die Zeitdauer niedriger, die für die von den zwei +1-Addierern 53 und 56 ausgeführte Addition erforderlich ist. Außerdem erhöht die Verwendung der zwei +1-Addierer 53 und 56 die Größe der 2er-Komplement-Absolutwert-Subtraktionsvorrichtung 14.
  • JP 10-161850 A offenbart einen digitalen Datenkomparator mit einer ersten selektiven Dateninversionsschaltung, die erste Eingangsdaten invertiert, wenn das Vorzeichen der ersten Eingangsdaten negativ ist, oder die ersten Eingangsdaten ausgibt, wenn das Vorzeichen positiv ist, mit einer ersten Additionsschaltung, die mit einem Ausgang der ersten selektiven Dateninversionsschaltung gekoppelt ist, und die zu dem niedrigstwertigen Bit eins addiert, wenn das Vorzeichen der ersten Eingangsdaten negativ ist, oder die ersten Eingangsdaten ausgibt, wenn das Vorzeichen positiv ist, mit einer zweiten selektiven Dateninversionsschaltung, die die zweiten Eingangsdaten invertiert, wenn das Vorzeichen der zweiten Eingangsdaten positiv ist, oder die zweiten Eingangsdaten ausgibt, wenn das Vorzeichen negativ ist, und mit einer zweiten Additionsschaltung, die eine Ausgabe der ersten Additionsschaltung und eine Ausgabe der zweiten selektiven Dateninversionsschaltung addiert.
  • US 3.829.671 offenbart eine Arithmetik-Logik-Schaltung, die einen Algorithmus ausführt, der die Quadratwurzel der Summe von zwei Quadraten annähert. Eine Hardware-Anordnung und ein Verfahren verwenden EXKLUSIV-ODER-Schaltungen anstelle einer durch herkömmliche Addierer-Subtrahierer-Schaltungen bereitgestellten herkömmlichen 2er-Komplementanordnung. Die zu quadrierenden Werte werden in positivwertige digitale Signale umgewandelt, verglichen, und das Steuersignal von der Vergleichsschaltung verwendet, um den vollen Wert des größeren digitalen Signals und den halben Wert des kleineren digitalen Signals in einer Addiererschaltung zu befehlen, die ein Korrektursignal empfängt, falls einer der digitalen Eingabewerte negativ ist. Je nachdem, ob das größere oder das kleinere der digitalen Signale negativ ist, kann das Korrektursignal zu der niedrigstwertigen Ordnung des Addiererausgangssignals oder zu der zweitniedrigstwertigen Ordnung addiert werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem Aspekt der Erfindung wird eine Rechenvorrichtung zum Empfangen einer 2er Komplement Darstellung eines ersten Werts und einer 2er Komplement Darstellung eines zweiten Werts und zum Ausgeben einer Information, welche angibt, welcher eines absoluten Werts des ersten Werts oder eines absoluten Werts des zweiten Werts größer ist, geschaffen.
  • Die wie in dem unabhängigen Anspruch 1 definierte Rechenvorrichtung enthält eine erste 1er Komplement Absolutwert-Berechnungsvorrichtung zum Umwandeln des ersten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des ersten Werts negativ ist, und zum Ausgeben des ersten Werts wie er ist, wenn das Vorzeichen des ersten Werts nicht negativ ist; eine zweite 1er Komplement Absolutwert-Berechnungsvorrichtung zum Umwandeln des zweiten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des zweiten Werts negativ ist, und zum Ausgeben des zweiten Werts wie er ist, wenn das Vorzeichen des zweiten Werts nicht negativ ist; und eine Anzeigeinformations-Ausgabevorrichtung zum Ausgeben einer Anzeigeinformation, welche anzeigt, welcher des Absolutwerts des ersten Werts oder des Absolutwerts des zweiten Werts größer ist, basierend auf der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung, wobei die Berechnungsvorrichtung weiter eine Auswahlvorrichtung zum Ausgeben entweder des ersten Werts oder des zweiten Werts, welcher den größeren Absolutwert hat, aufweist.
  • In einer Ausführungsform der Erfindung wählt die Auswahlvorrichtung aus und gibt entweder den ersten Wert oder den zweiten Wert aus, welcher ein positives Vorzeichen hat, wenn der Absolutwert des ersten Werts und der Absolutwert des zweiten Werts gleich zueinander sind und das Vorzeichen des ersten Werts und das Vorzeichen des zweiten Werts voneinander verschieden sind.
  • In einer Ausführungsform der Erfindung subtrahiert die Anzeigeinformations-Ausgabevorrichtung die Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung von der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und gibt das Subtraktionsergebnis aus.
  • In einer Ausführungsform der Erfindung umfasst die zweite 1er Komplement Absolutwert-Berechnungsvorrichtung eine Inversionsvorrichtung zum Invertieren von jedem der Bits der 1er-Komplement Darstellung des zweiten Werts, wenn das Vorzeichen des zweiten Werts negativ ist, und zum Invertieren von jedem der Bits des zweiten Werts, wenn das Vorzeichen des zweiten Werts positiv ist. Die Anzeigeinformations-Ausgabevorrichtung erhält eine Summe der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung, addiert 1 zu der Summe, und gibt das Additionsergebnis aus.
  • In einer Ausführungsform der Erfindung weist die Berechnungsvorrichtung weiter eine Nullwert-Bestimmungsvorrichtung zum Bestimmen auf, ob die Ausgabe der Anzeigeinformations-Ausgabevorrichtung 0 ist oder nicht, wobei die Auswahlvorrichtung den zweiten Wert auswählt und ausgibt, wenn die Ausgabe der Anzeigeinformations-Ausgabevorrichtung negativ ist oder wenn die Ausgabe der Anzeigeinformations-Ausgabevorrichtung 0 ist und das Vorzeichen des zweiten Werts negativ ist, und wählt sonst den ersten Wert aus und gibt ihn aus.
  • Gemäß einem weiteren Aspekt der Erfindung, wie er im unabhängigen Anspruch 6 definiert ist, wird ein Berechnungsverfahren zum Herausfinden, welcher eines Absolutwerts einer 2er-Komplement Darstellung eines ersten Werts oder eines Absolutwerts einer 2er-Komplement Darstellung eines zweiten Werts größer ist, geschaffen. Das Berechnungsverfahren weist einen ersten 1er Komplement Absolutwert-Berechnungsschritt zum Umwandeln des ersten Werts in eine 1er Komplement Darstellung, wenn ein Vorzeichen des ersten Werts negativ ist, und zum Beibehalten des ersten Werts wie er ist, wenn das Vorzeichen des ersten Werts nicht negativ ist; einen zweiten 1er Komplement Absolutwert-Berechnungsschritt zum Umwandeln des zweiten Werts in eine 1er Komple ment Darstellung, wenn ein Vorzeichen des zweiten Werts negativ ist und zum Beibehalten des zweiten Werts wie er ist, wenn das Vorzeichen des zweiten Werts nicht negativ ist; und einen Anzeigeinformationsschritt zum Auffinden einer Anzeigeinformation, welche anzeigt, welcher, der Absolutwert des ersten Werts oder der Absolutwert des zweiten Werts größer ist, basierend auf dem Wert, welcher erhalten wurde durch den ersten 1er Komplement Absolutwert-Berechnungsschritt und dem Wert, welcher erhalten wurde durch den zweiten 1er Komplement Absolutwert-Berechnungsschritt, wobei das Berechnungsverfahren weiter einen Auswahlschritt zum Auswählen entweder des ersten Werts oder des zweiten Werts, welcher den größeren Absolutwert hat, aufweist.
  • In einer Ausführungsform der Endung umfasst das Berechnungsverfahren den Schritt des Auswählens entweder des ersten Werts oder des zweiten Werts, welcher ein positives Vorzeichen hat, als einen Wert, welcher einen größeren Absolutwert hat, wenn der Absolutwert des ersten Wertes und der Absolutwertes des zweiten Wertes gleich zueinander sind und das Vorzeichen des ersten Werts und das Vorzeichen des zweiten Werts verschieden voneinander sind In einer Ausführungsform der Erfindung umfasst das Berechnungsverfahren den Schritt des Subtrahierens der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung von der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und das Ausgeben des Subtraktionsergebnisses.
  • In einer Ausführungsform der Erfindung umfasst der zweite 1er Komplement Absolutwert-Berechnungsschritt den Schritt des Invertierens von jedem der Bits der 1er Komplement Darstellung des zweiten Werts, wenn das Vorzeichen des zweiten Werts negativ ist, und das Invertieren von jedem der Bits des zweiten Werts, wenn das Vorzeichen des zweiten Werts nicht negativ ist. Der Anzeigeinformations-Ausgabeschritt enthält den Schritt des Erhaltens einer Summe der Ausgabe erhalten durch den ersten 1er Komplement Absolutwert-Berechnungsschritt und der Ausgabe erhalten durch den zweiten 1er Komplement Absolutwert-Berechnungsschritt, des Addierens von 1 zu der Summe, und des Ausgebens des Additionsergebnisses.
  • In einer Ausführungsform der Erfindung weist das Berechnungsverfahren weiter einen Nullwertbestimmungsschritt zum Bestimmen, ob die Ausgabe, welche erhalten wurde durch den Anzeigeinformationsschritt, 0 ist oder nicht, auf, wobei der Auswahlschritt den Schritt des Auswählens und Ausgebens des zweiten Werts als einen Wert umfasst, welcher einen größeren Absolutwert hat, wenn der Wert, welcher erhalten wurde durch den Anzeigeinformationsschritt, negativ ist oder wenn der Wert, welcher erhalten wurde durch den Anzeigeinformationsschritt, 0 ist, und das Vorzeichen des zweiten Werts negativ ist, und Auswählen und Ausgeben des ersten Werts sonst.
  • Gemäß einem nochmals weiteren Aspekt der Erfindung enthält ein Prozessor einen Datenbusabschnitt; und einen Steuerabschnitt zum Steuern des Datenbusabschnitts. Der Steuerabschnitt enthält eine Ausführungsbefehl-Speichervorrichtung zum Speichern eines Ausführungsbefehls und eine Decodiervorrichtung zum Ausgeben eines Steuersignals, das durch Decodieren des aus der Ausführungsbefehl-Speichervorrichtung gelesenen Ausführungsbefehls erhalten wird. Der Datenbusabschnitt enthält eine Berechnungsvorrichtung zum Empfangen einer 2er Komplement Darstellung eines ersten Werts und einer 2er Komplement Darstellung eines zweiten Werts und zum Ausgeben einer Information, welche anzeigt, welcher eines Absolutwerts des ersten Werts oder eines Absolutwerts des zweiten Werts größer ist. Die Berechnungsvorrichtung enthält eine erste 1er Komplement Absolutwert-Berechnungsvorrichtung zum Umwandeln des ersten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des ersten Werts negativ ist, und zum Ausgeben des ersten Werts wie er ist, wenn das Vorzeichen des ersten Werts nicht negativ ist; eine zweite 1er Komplement Absolutwert-Berechnungsvorrichtung zum Umwandeln des zweiten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des zweiten Werts negativ ist, und zum Ausgeben des zweiten Werts wie er ist, wenn das Vorzeichen des zweiten Werts nicht negativ ist; und eine Anzeigeinformations-Ausgabevorrichtung zum Ausgeben einer Anzeigeinformation, welche anzeigt, welcher des Absolutwerts des ersten Werts oder des Absolutwerts des zweiten Werts größer ist, basierend auf der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung.
  • In einer Ausführungsform der Erfindung enthält die Berechnungsvorrichtung ferner eine Auswahlvorrichtung zum Ausgeben entweder des ersten Werts oder des zweiten Werts, welcher den größeren Absolutwert hat, wobei die Auswahlvorrichtung entweder den ersten Wert oder den zweiten Wert auswählt und ausgibt, welcher ein positives Vorzeichen hat, wenn der Absolutwert des ersten Werts und der Absolutwert des zweiten Werts gleich sind und das Vorzeichen des ersten Werts und das Vorzeichen des zweiten Werts verschieden voneinander sind.
  • Somit ermöglicht die hier beschriebene Erfindung die Vorteile, eine Berechnungsvorrichtung die einen negativen Wert mit dem maximalen Absolutwert in dem Bereich der Zahlenwerte, die mit einer vorgeschriebenen Bitbreite dargestellt werden können, genau verarbeitet und die minimal mögliche Bitbreite zur Darstellung der gegebenen Daten bestimmt, ein Berechnungsverfahren, das diese Verarbeitung unter Verwendung der Berechnungsvorrichtung ausführt, und einen Prozessor, der eine solche Berechnungsvorrichtung enthält, zu schaffen.
  • Diese und weitere Vorteile der vorliegenden Erfindung werden für den Fachmann auf dem Gebiet beim Lesen und Verständnis der folgenden ausführlichen Beschreibung anhand der beigefügten Figuren offensichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 ist ein Blockschaltplan eines Prozessors in einem ersten Beispiel gemäß der vorliegenden Erfindung;
  • 2A ist ein Blockschaltplan einer in 1 gezeigten 1er-Komplement-Absolutwert-Subtraktionsvorrichtung;
  • 2B zeigt ein Programm zum Ausführen einer Berechnung gemäß der vorliegenden Erfindung;
  • 2C zeigt verschiedene Zahlenwerte in einem ersten Zyklus eines ersten Operationsbeispiels des in 1 gezeigten Prozessors;
  • 2D zeigt verschiedene Zahlenwerte in einem zweiten Zyklus des ersten Operationsbeispiels des in 1 gezeigten Prozessors;
  • 2E zeigt verschiedene Zahlenwerte in einem dritten Zyklus des ersten Operationsbeispiels des in 1 gezeigten Prozessors;
  • 2F zeigt verschiedene Zahlenwerte in einem vierten Zyklus des ersten Operationsbeispiels des in 1 gezeigten Prozessors;
  • 2G zeigt verschiedene Zahlenwerte in einem zweiten Operationsbeispiel des in 1 gezeigten Prozessors;
  • 2H zeigt verschiedene Zahlenwerte in einem dritten Operationsbeispiel des in 1 gezeigten Prozessors;
  • 3A ist ein Blockschaltplan eines Prozessors in einem zweiten Beispiel gemäß der vorliegenden Erfindung;
  • 3B ist ein Blockschaltplan einer in 3A gezeigten 1er-Komplement-Absolutwert-Subtraktionsvorrichtung;
  • 3C zeigt verschiedene Zahlenwerte in einem ersten Zyklus eines ersten Operationsbeispiels des in 3A gezeigten Prozessors;
  • 3D zeigt verschiedene Zahlenwerte in einem zweiten Zyklus des ersten Operationsbeispiels des in 3A gezeigten Prozessors;
  • 3E zeigt verschiedene Zahlenwerte in einem dritten Zyklus des ersten Operationsbeispiels des in 3A gezeigten Prozessors;
  • 3F zeigt verschiedene Zahlenwerte in einem vierten Zyklus des ersten Operationsbeispiels des in 3A gezeigten Prozessors;
  • 3G zeigt verschiedene Zahlenwerte in einem zweiten Operationsbeispiel des in 3A gezeigten Prozessors;
  • 3H zeigt verschiedene Zahlenwerte in einem dritten Operationsbeispiel des in 3A gezeigten Prozessors;
  • 4 ist ein Blockschaltplan eines Prozessors in einem dritten Beispiel gemäß der vorliegenden Erfindung;
  • 5A ist ein Blockschaltplan einer in 4 gezeigten Vorrichtung zur Berechnung des maximalen Absolutwerts;
  • 5B zeigt ein Programm zum Ausführen einer durch den in 4 gezeigten Prozessor ausgeführten Berechnung;
  • 5C zeigt verschiedene Zahlenwerte in einem ersten Zyklus eines ersten Operationsbeispiels des in 4 gezeigten Prozessors;
  • 5D zeigt verschiedene Zahlenwerte in einem zweiten Zyklus des ersten Operationsbeispiels des in 4 gezeigten Prozessors;
  • 5E zeigt verschiedene Zahlenwerte in einem dritten Zyklus des ersten Operationsbeispiels des in 4 gezeigten Prozessors;
  • 5F zeigt verschiedene Zahlenwerte in einem vierten Zyklus des ersten Operationsbeispiels des in 4 gezeigten Prozessors;
  • 5G zeigt verschiedene Zahlenwerte in einem zweiten Operationsbeispiel des in 4 gezeigten Prozessors;
  • 5H zeigt verschiedene Zahlenwerte in einem dritten Operationsbeispiel des in 4 gezeigten Prozessors;
  • 6A ist ein Blockschaltplan eines Prozessors in einem vierten Beispiel gemäß der vorliegenden Erfindung;
  • 6B ist ein Blockschaltplan einer in 6A gezeigten Vorrichtung zur Berechnung des maximalen Absolutwerts;
  • 6C zeigt verschiedene Zahlenwerte in einem ersten Zyklus eines ersten Operationsbeispiels des in 6A gezeigten Prozessors;
  • 6D zeigt verschiedene Zahlenwerte in einem zweiten Zyklus des ersten Operationsbeispiels des in 6A gezeigten Prozessors;
  • 6E zeigt verschiedene Zahlenwerte in einem dritten Zyklus des ersten Operationsbeispiels des in 6A gezeigten Prozessors;
  • 6F zeigt verschiedene Zahlenwerte in einem vierten Zyklus des ersten Operationsbeispiels des in 6A gezeigten Prozessors;
  • 6G zeigt verschiedene Zahlenwerte in einem zweiten Operationsbeispiel des in 6A gezeigten Prozessors;
  • 6H zeigt verschiedene Zahlenwerte in einem dritten Operationsbeispiel des in 6A gezeigten Prozessors;
  • 6I zeigt verschiedene Zahlenwerte in einem vierten Operationsbeispiel des in 6A gezeigten Prozessors;
  • 6J zeigt eine weitere Menge verschiedener Zahlenwerte in einem vierten Operationsbeispiel des in 6A gezeigten Prozessors;
  • 6K zeigt ein Programm zum Ausführen einer durch den in 6A gezeigten Prozessor ausgeführten Berechnung;
  • 7 ist ein Blockschaltplan einer weiteren 1er-Komplement-Absolutwert-Berechnungsvorrichtung, die in dem in 6A gezeigten Prozessor verwendet werden kann;
  • 8 ist ein Diagramm, das eine Struktur einer Exklusiv-ODER-Berechnungsvorrichtung veranschaulicht, die in der in 7 gezeigten 1er-Komplement-Absolutwert-Berechnungsvorrichtung enthalten ist;
  • 9 ist ein Diagramm, das eine Struktur einer Exklusiv-ODER-Berechnungsvorrichtung veranschaulicht, die in einer weiteren 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung enthalten ist, die in dem in 6A gezeigten Prozessor verwendet werden kann;
  • 10 ist ein Blockschaltplan einer nochmals weiteren 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung, die in dem in 6A gezeigten Prozessor verwendet werden kann;
  • 11 zeigt eine Datengruppe, aus der die Daten mit dem maximalen Absolutwert erhalten werden;
  • 12 zeigt die Änderung der durch die Prozessoren gemäß der vorliegenden Erfindung und durch den herkömmlichen Prozessor ausgewählten Daten, bis die Daten mit dem maximalen Absolutwert bestimmt sind, sowie die erhaltenen Daten mit dem maximalen Absolutwert;
  • 13 ist ein Blockschaltplan eines Prozessors in einem fünften Beispiel gemäß der vorliegenden Erfindung;
  • 14 ist ein Blockschaltplan einer in dem in 13 gezeigten Prozessor enthaltenen ALU;
  • 15 zeigt verschiedene Typen von durch den in 13 gezeigten Prozessor ausgeführten Berechnungen sowie die erhaltenen Berechnungsergebnisse;
  • 16 ist ein Blockschaltplan eines herkömmlichen Prozessors;
  • 17 zeigt ein Programm zum Ausführen einer Berechnung unter Verwendung des herkömmlichen Prozessors;
  • 18 zeigt eine Datengruppe, aus der der Wert mit dem maximalen Absolutwert ermittelt wird;
  • 19 ist ein Blockschaltplan eines weiteren herkömmlichen Prozessors;
  • 20 ist ein Blockschaltplan einer in dem in 19 gezeigten Prozessor enthaltenen 2er-Komplement-Absolutwert-Berechnungsvorrichtung;
  • 21 zeigt ein Programm zum Ausführen einer Berechnung, die durch die Prozessoren gemäß der vorliegenden Erfindung und durch den herkömmlichen Prozessor ausgeführt wird;
  • 22A zeigt verschiedene Zahlenwerte in einem ersten Zyklus einer Operation des in 19 gezeigten Prozessors;
  • 22B zeigt verschiedene Zahlenwerte in einem zweiten Zyklus einer Operation des in 19 gezeigten Prozessors;
  • 22C zeigt verschiedene Zahlenwerte in einem dritten Zyklus einer Operation des in 19 gezeigten Prozessors;
  • 22D zeigt verschiedene Zahlenwerte in einem vierten Zyklus einer Operation des in 19 gezeigten Prozessors; und
  • 22E zeigt verschiedene Zahlenwerte, wenn durch den in 19 gezeigten Prozessor ein negativer Wert mit dem maximalen Absolutwert verarbeitet wird.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Im Folgenden wird die vorliegende Erfindung anhand der beigefügten Zeichnung über veranschaulichende Beispiele beschrieben.
  • In dieser Beschreibung ist der Ausdruck "Umwandeln in eine 1er-Komplement-Darstellung" als Ausführung einer 1er-Komplement-Darstellungsprozedur, d. h. als Invertieren aller Bits der Eingangsdaten, definiert.
  • Außerdem wird dem Bitstrom in dieser Beschreibung "0b" vorangestellt, wenn Daten auf binäre Weise dargestellt werden. Wenn der Bitstrom einen Wert darstellt, wird der Wert "0b" vorangestellt. Das Vorzeichen des Werts der Daten ist negativ, wenn der Wert des MSB (höchstwertigen Bit) 1 ist, während er positiv ist, wenn der Wert des MSB 0 ist. Beispielsweise ist der Wert "5" im Dezimalsystem "5(0b0101)", wenn er in dem Binärsystem mit dem 2er-Komplement dargestellt wird, und außerdem "5(0b0101)", wenn er im Binärsystem mit dem 1er-Komplement dargestellt wird. Der Wert "–5" im Dezimalsystem ist "–5(0b1011)", wenn er in dem Binärsystem mit dem 2er-Komplement dargestellt wird, und außerdem "–5(0b1010)", wenn er im Binärsystem mit dem 1er-Komplement dargestellt wird.
  • In den folgenden Beispielen tragen Elemente, die jenen entsprechen, die hinsichtlich des herkömmlichen Gebiets oder in irgendeinem zuvor beschriebenen Beispiel beschrieben worden sind, gleiche Bezugszeichen.
  • (Beispiel 1)
  • Anhand von 1 wird ein erstes Beispiel gemäß der vorliegenden Erfindung beschrieben. 1 ist ein Blockschaltplan eines Prozessors 100 in dem ersten Beispiel. Der Prozessor 100 enthält einen Datenbusabschnitt 2 zum Ausführen von Berechnungen und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2.
  • Der Steuerabschnitt 1 enthält einen Programmzähler 3, einen Ausführungsbefehlsspeicher 4 und einen Decodierer 5. Der Programmzähler 3, der Ausführungsbefehlsspeicher 4 und der Decodierer 5 sind völlig gleich zu jenen in dem Prozessor 190 (19), so dass ihre ausführlichen Beschreibungen weggelassen werden.
  • Der Datenbusabschnitt 2 enthält eine ALU 6, eine 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 als eine Berechnungsvorrichtung, eine Registerdatei 7, einen Datenspeicher 8 und einen Merkereinstellabschnitt 9. Die ALU 6, die Registerdatei 7 und der Datenspeicher 8 sind völlig gleich zu jenen in dem Prozessor 190 (19), so dass ihre ausführlichen Beschreibungen weggelassen werden. Der Merkereinstellabschnitt 9 enthält ein Merkerregister N und ein Merkerregister Z wie die, die in 19 gezeigt sind. Die Bedingungen zum Einstellen der Merker widerspiegeln das Berechnungsergebnis der ALU 6 und außerdem das Subtraktionsergebnis der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13.
  • Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 vergleicht unter Verwendung des 1er-Komplements die Absolutwerte der zwei Werte, die jeweils in den zwei durch das Steuersignal 10 bestimmten Registern in der Registerdatei 7 enthalten sind. Das Vergleichsergebnis wird als Anzeigeinformationen ausgegeben, die anzeigen, welcher der zwei Werte den größeren Absolutwert hat.
  • 2A zeigt eine Struktur der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13. Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 enthält eine erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20, eine zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 und eine Subtraktionsvorrichtung 22 (als eine Anzeigeinformations-Ausgabevorrichtung).
  • Die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 führt unter Verwendung einer 1er-Komplement-Darstellungsprozedur an der Eingabe A (69) eine Absolutwertberechnung aus und gibt den Wert 62 nach der Berechnung des Absolutwerts aus. Die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 führt unter Verwendung der 1er-Komplement-Darstellungsprozedur an der Eingabe B (70) eine Absolutwertberechnung aus und gibt das Ergebnis 63 nach der Berechnung des Absolutwerts aus. Das heißt, wenn das Vorzeichen des Eingabewerts negativ ist, verwenden die erste und die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 und 21 anstelle der 2er-Komplement-Darstellungsprozedur die 1er-Komplement-Darstellungsprozedur, um den Eingabewert zu invertieren und den invertierten Wert auszugeben. Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt das Ergebnis 65 der Berechnung des Absolutwertvergleichs (die Anzeigeinformationen 65) aus.
  • Die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 enthält einen Inverter 23 mit einer Auswahleinrichtung 24. Der Inverter 23 invertiert alle Bits der Eingangsdaten (Eingabe A (69)) (1er-Komplement-Darstellungsprozedur) und gibt den invertierten Wert 60 aus. Die Auswahleinrichtung 24 wählt den invertierten Wert 60 aus, wenn das Vorzeichen der Eingabe A (69) negativ ist, während sie sonst die Eingabe A (69) auswählt. Der ausgewählte Wert wird als der Wert 62 nach der Berechnung des Absolutwerts ausgegeben.
  • Die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 enthält einen Inverter 25 und eine Auswahleinrichtung 26. Der Inverter 25 invertiert alle Bits der Eingangsdaten (Eingabe B (70)) (1er-Komplement-Darstellungsprozedur) und gibt den invertierten Wert 61 aus. Die Auswahleinrichtung 26 wählt den invertierten Wert 61 aus, wenn das Vorzeichen der Eingabe B (70) negativ ist, während sie sonst die Eingabe B (70) auswählt. Der ausgewählte Wert wird als der Wert 63 nach der Berechnung des Absolutwerts ausgegeben.
  • Die Bitbreiten der 5 Register A, B, C, D und P, die Bitbreite des Datenspeichers 8 und die Bitbreite der in die ALU 6 eingegebenen und der aus ihr ausgegebenen Daten sind sämtlich 4 Bits. Die Bitbreite der in die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 eingegebenen und aus ihr ausgegebenen Daten sowie die Bitbreite in Bezug auf die Rechengenauigkeit betragen alle 4 Bits.
  • Der Prozessor 100 (1) besitzt die gleichen Ausführungsbefehle wie der Prozessor 190 (19). Der Befehl "abcmp" wird durch die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 (1 und 2A) ausgeführt. Das heißt, durch den Befehl "abcmp" werden die Absolutwerte der durch Ausführen der 1er-Komplement-Darstellungsprozedur erhaltenen Zahlenwerte miteinander verglichen. 2B zeigt ein Programm, das ausführlich die in 21 gezeigte Verarbeitung unter Verwendung mehrerer Schritte darstellt. In diesem Programm ist "absl a, b" ein Befehl zum Erhalten des Absolutwerts der 1er-Komplement-Darstellung des Werts im Register b und zum Einstellen des erhaltenen Absolutwerts im Register a, während "jmp(be) label" ein Befehl zum Springen zur Marke ist, wenn das Merkerregister N = 0 ist. Die Schritte (16), (17) und (6) entsprechen dem Befehl "abcmp".
  • Im Folgenden wird eine Operation des Prozessors 100 in dem ersten Beispiel beschrieben.
  • <Operationsbeispiel 1>
  • Hauptsächlich hinsichtlich des Befehls "abcmp", der die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 (2A) verwendet, wird beschreiben, wie die Daten mit dem maximalen Absolutwert unter vier Stücken praktischer Daten, die in 18 gezeigt sind, ermittelt werden.
  • Außerdem verwendet der Prozessor 100 wie der herkömmliche Prozessor 190 (19) das in 21 gezeigte Programm, um die Verarbeitung zum Ermitteln des maximalen Absolutwerts auszuführen. Die Verarbeitung in den Schritten (1) und (2) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem ersten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 ausgeführt. Diese wird anhand von 2C beschrieben.
  • Der Wert des Registers C, "0(0b0000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b0011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "0(0b0000)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1111)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "0(0b0000)", null ist, wählt somit die Eingabe A (69) aus und gibt "(0b0000)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "3(0b0011)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b1100)". Die Auswahleinrichtung 26 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "3(0b0011)", positiv ist, wählt somit die Eingabe B (70) aus und gibt "(0b0011)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b1101)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1101)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 ausgeführt. Diese wird anhand von 2D beschrieben.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–5(0b1011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "3(0b0011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "3(0b0011)", positiv ist, wählt somit die Eingabe A (69) aus und gibt "(0b0011)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–5(0b1011)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b0100)". Die Auswahleinrichtung 26 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0100)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b1111)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1111)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 ausgeführt. Diese wird anhand von 2E beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–2(0b1110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "(0b0100)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–2(0b1110)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b0001)". Die Auswahleinrichtung 26 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "–2(0b1110)", positiv ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0001)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b0011)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0011)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 ausgeführt. Diese wird anhand von 2F beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "6(0b0110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "(0b0100)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "6(0b0110)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b1001)". Die Auswahleinrichtung 26 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "6(0b0110)", positiv ist, wählt somit die Eingabe B (70) aus und gibt "(0b0110)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b1110)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1110)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Durch diese Verarbeitung kann unter Verwendung der 1er-Komplement-Darstellungsprozedur anstelle der 2er-Komplement-Darstellungsprozedur in dem Register C der maximale Absolutwert "6" ermittelt werden.
  • <Operationsbeispiel 2>
  • Anhand von 2G wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "0(0b0000)" eingestellt ist und wenn im Register C "–8(0b1000)" eingestellt ist. Wie oben beschrieben wurde, ist "–8(0b1000)" ein negativer Wert mit dem maximalen Absolutwert im Bereich der Zahlenwerte, die durch die 2er-Komplemente mit einer vorgeschriebenen Bitbreite dargestellt werden können. Bei dem herkömmlichen Prozessor 190 findet der Überlauf statt, wobei eine genaue Berechnung unmöglich ist. Es wird der Befehl "abcmp C, A" verwendet.
  • Der Wert des Registers C, "–8(0b1000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "0(0b0000)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–8(0b1000)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0111)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–8(0b1000)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "0(0b0111)" als den Wert 62 nach der Berechnung des Absolutwerts aus. Somit wird das Vorzeichen normalerweise invertiert, ohne dass dies wie bei dem Prozessor 190 (19) einen Überlauf verursacht.
  • Der Wert der Eingabe B (70), "0(0b0000)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b1111)". Die Auswahleinrichtung 26 bestimmt, dass der Wert der Eingabe B (70), "0(0b0000)", null ist, wählt somit die Eingabe B (70) aus und gibt "(0b0000)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b0111)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus. Das heißt, das Subtraktionsergebnis von |–8|–|0| ist positiv; d. h., der Vergleich zwischen |–8| und |0| erfolgt richtig.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0111)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 0.
  • Da im Schritt (7) das Merkerregister N = 0 und das Merkerregister Z = 0 ist, schreitet die Verarbeitung zu Schritt (9) fort. Der Wert des Registers A wird nicht im Register C eingestellt.
  • Auf diese Weise verursacht der Prozessor 100 selbst dann keinen Überlauf, wenn der negative Wert mit dem maximalen Absolutwert eingegeben wird, während er die zwei Zahlenwerte richtig vergleicht.
  • <Operationsbeispiel 3>
  • Anhand von 2H wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "–4(0b1100)" eingestellt ist und wenn im Register C "3(0b0011)" eingestellt ist. Es wird der Befehl "abcmp C, A" verwendet.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–4(0b1100)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "3(0b0011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "3(0b0011)", positiv ist, wählt somit die Eingabe A (69) aus und gibt "(0b0011)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–4(0b1100)", wird in die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 eingegeben. Da alle Bits des Werts durch den Inverter 25 invertiert werden, ist der invertierte Wert 61 "(0b0011)". Die Auswahleinrichtung 26 bestimmt, dass der Wert der Eingabe B (70), "–4(0b1100)", negativ ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0011)" als den Wert 63 nach der Berechnung des Absolutwerts aus.
  • Die Subtraktionsvorrichtung 22 subtrahiert den Wert 63 nach der Berechnung des Absolutwerts von dem Wert 62 nach der Berechnung des Absolutwerts und gibt "(0b0000)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0000)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 1.
  • Da im Schritt (7) das Merkerregister N = 0 und das Merkerregister Z = 1 ist, schreitet die Verarbeitung zu Schritt (9) fort. Der Wert des Registers A, "–4(0b1100)", wird nicht im Register C eingestellt. Der Wert des Registers C bleibt "3(0b0011)", was den kleineren Absolutwert hat.
  • Wenn im Schritt (14) der Befehl "abcmp C, A" ausgeführt wird und wo der Wert des Registers A ein negativer Wert (z. B. –4) ist, während der Wert des Registers C ein positiver Wert, der einen um 1 kleineren Absolutwert als der Wert des Registers A (z. B. 3) hat, wird ermittelt, dass das Ergebnis der Berechnung des Absolutwertvergleichs 0 ist. Somit erfolgt der Vergleich der Absolutwerte nicht richtig. Dementsprechend wird ein Wert mit einem Absolutwert, der um 1 kleiner ist als der Absolutwert, der als der maximale Absolutwert zu ermitteln ist, falsch als der maximale Absolutwert ermittelt. Allerdings werden Audiodaten mit der Bitbreite von 16 verarbeitet, wobei der Bereich der Zahlenwerte, die durch 16 Bits dargestellt werden können, –32768 bis 32767 ist. Selbst dann, wenn der erhaltene Absolutwert von dem richtigen Absolutwert um 1 verschieden ist, ist der Fehler etwa 0,003% in Bezug auf den vollen Bereich der 16-Bit-Daten und vernachlässigbar.
  • Wie oben beschrieben wurde, kann der Prozessor 100 in dem ersten Beispiel gemäß der vorliegenden Erfindung den maximalen Absolutwert mit einem vernachlässigbaren Fehler ermitteln. Selbst dann, wenn ein negativer Wert mit dem maximalen Absolutwert unter den Zahlenwerten, die mit 2er-Komplementen mit einer vorgeschriebenen Bitbreite dargestellt werden können, eingegeben wird, können die Berechnungen richtig ausgeführt werden. Da die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 in dem Prozessor 100 keinen +1-Addierer enthält, kann die Größe der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 und ebenfalls die Größe des Prozessors 100 verringert werden. Da die Addition von +1, die herkömmlich zweimal ausgeführt wird, in der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 nicht ausgeführt wird, kann die Rechenzeit, die erforderlich ist, um den maximalen Absolutwert unter mehreren Datenstücken zu ermitteln, verkürzt werden.
  • (Beispiel 2)
  • Anhand von 3A wird ein zweites Beispiel gemäß der vorliegenden Erfindung beschrieben. 3A ist ein Blockschaltplan eines Prozessors 200 in dem zweiten Beispiel. Der Prozessor 200 enthält einen Datenbusabschnitt 2A zum Ausführen von Berechnungen und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2A. Der Datenbusabschnitt 2A enthält anstelle der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 (2A) die 1er-Komplement-Absolut wert-Subtraktionsvorrichtung 213. Abgesehen davon ist die Struktur des Prozessors 200 im Wesentlichen gleich der des Prozessors 100 (1).
  • 3B zeigt eine Struktur der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213. Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 enthält eine erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20, eine 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 (die als eine zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung und als eine Inversionsvorrichtung wirkt) und eine Additionsvorrichtung 28 (als eine Anzeigeinformations-Ausgabevorrichtung).
  • Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 vergleicht unter Verwendung des 1er-Komplements die Absolutwerte der zwei Werte, die jeweils in den zwei durch das Steuersignal 10 bestimmten Registern in der Registerdatei 7 gespeichert sind. Das Vergleichsergebnis wird als Anzeigeinformationen ausgegeben, die anzeigen, welcher der zwei Werte den größeren Absolutwert besitzt.
  • Die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 besitzt die gleiche Struktur und wirkt auf die gleiche Weise wie die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 in dem ersten Beispiel. Die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 führt an der Eingabe B (70) eine Absolutwertberechnung aus, wenn das Vorzeichen der Eingabe B (70) negativ ist. Daraufhin invertiert die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 alle Bits der Eingabe B (70) und gibt das Ergebnis als einen Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 enthält einen Inverter 29, einen Inverter 31 und eine Auswahleinrichtung 30. Der Inverter 29 invertiert alle Bits der Eingangsdaten (Eingabe B (70)) und gibt den invertierten Wert 61 aus. Die Auswahleinrichtung 30 wählt den invertierten Wert 61 aus, wenn das Vorzeichen der Eingabe B (70) negativ ist, während sie sonst die Eingabe B (70) auswählt. Der ausgewählte Wert wird als der Wert 63 nach der Berechnung des Absolutwerts ausgegeben. Der Inverter 31 invertiert alle Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt einen invertierten Wert 64 aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den invertierten Wert 64 und "1" und gibt das Additionsergebnis 65 (das Ergebnis 65 der Berechnung des Absolutwertvergleichs, das die Anzeigeinformationen anzeigt) aus.
  • Anders als bei der an den zwei Absolutwerten in dem ersten Beispiel ausgeführten Subtraktion, werden die Absolutwerte in dem Prozessor 200 durch Invertieren aller Bits des Subtraktionsergebnisses, Addieren des invertierten Subtraktionsergebnisses zu dem Wert vor der Subtraktion und Addieren von "1" zu dem Additionsergebnis verglichen.
  • Der Prozessor 200 besitzt die gleichen Ausführungsbefehle wie der Prozessor 100 (1). Der Befehl "abcmp" wird durch die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 (3A und 3B) ausgeführt.
  • Im Folgenden wird eine Operation des Prozessors 200 in dem zweiten Beispiel beschrieben.
  • <Operationsbeispiel 1>
  • Hauptsächlich hinsichtlich des Befehls "abcmp", der die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 (3B) verwendet, wird beschrieben, wie die Daten mit dem maximalen Absolutwert unter vier Stücken praktischer Daten, die in 18 gezeigt sind, ermittelt werden.
  • Außerdem verwendet der Prozessor 200 wie der herkömmliche Prozessor 100 (1) und der herkömmliche Prozessor 190 (19) das in 21 gezeigte Programm, um die Verarbeitung zum Ermitteln des maximalen Absolutwerts auszuführen. Die Verarbeitung in den Schritten (1) und (2) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem ersten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 ausgeführt. Diese wird anhand von 3C beschrieben.
  • Der Wert des Registers C, "0(0b0000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b0011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "0(0b0000)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1111)". Die Auswahleinrichtung 24 bestimmt, dass der Wert der Eingabe A (69) "0(0b0000)" null ist, wählt somit die Eingabe A (69) aus und gibt "(0b0000)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "3(0b0011)", wird in die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b1100)". Die Auswahleinrichtung 30 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "3(0b0011)", positiv ist, wählt somit die Eingabe B (70) aus und gibt "(0b0011)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1100)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung des Absolutwerts und "1" und gibt "(0b1101)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1101)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 ausgeführt. Diese wird anhand von 3D beschrieben.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–5(0b1011)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "3(0b0011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "3(0b0011)", positiv ist, wählt somit die Eingabe A (69) aus und gibt "(0b0011)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–5(0b1011)", wird in die 1er-Komplement-Absolutwert-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b0100)". Die Auswahleinrichtung 30 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0100)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1011)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung der Absolutwertinversion und "1" und gibt "(0b1111)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1111)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 ausgeführt. Diese wird anhand von 3E beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–2(0b1110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "(0b0100)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–2(0b1110)", wird in die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b0001)". Die Auswahleinrichtung 30 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "–2(0b1110)", positiv ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0001)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1110)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung der Absolutwertinversion und "1" und gibt "(0b0011)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0011)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (14) wird eine Berechnung unter Verwendung der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 ausgeführt. Diese wird anhand von 3F beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "6(0b0110)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–5(0b1011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–5(0b1011)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "(0b0100)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "6(0b0110)", wird in die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b1001)". Die Auswahleinrichtung 30 bestimmt, dass das Vorzeichen des Werts der Eingabe B (70), "6(0b0110)", positiv ist, wählt somit die Eingabe B 70 aus und gibt "(0b0110)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1001)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung der Absolutwertinversion und "1" und gibt "(0b1110)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b1110)" eine Bestimmung vor und setzt das Merkerregister N = 1 und das Merkerregister Z = 0.
  • Die Verarbeitung in den Schritten (7) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Durch diese Verarbeitung kann unter Verwendung der Addition anstelle der in dem ersten Beispiel verwendeten Subtraktion in dem Register C der maximale Absolutwert "6" ermittelt werden.
  • <Operationsbeispiel 2>
  • Anhand von 3G wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "0(0b0000)" eingestellt ist und wenn im Register C "–8(0b1000)" eingestellt ist. Wie oben beschrieben wurde, ist "–8(0b1000)" ein negativer Wert mit dem maximalen Absolutwert im Bereich der Zahlenwerte, die durch die 2er-Komplemente mit einer vorgeschriebenen Bitbreite dargestellt werden können. Bei dem herkömmlichen Prozessor 190 findet der Überlauf statt, wobei eine genaue Berechnung unmöglich ist. Es wird der Befehl "abcmp C, A" verwendet.
  • Der Wert des Registers C, "–8(0b1000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "0(0b0000)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "–8(0b1000)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b0111)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "–8(0b1000)", negativ ist, wählt somit den invertierten Wert 60 aus und gibt "0(0b0111)" als den Wert 62 nach der Berechnung des Absolutwerts aus. Somit wird das Vorzeichen normalerweise invertiert, ohne dass dies wie bei dem Prozessor 190 (19) einen Überlauf verursacht.
  • Der Wert der Eingabe B (70), "0(0b0000)", wird in die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b1111)". Die Auswahleinrichtung 30 bestimmt, dass der Wert der Eingabe B (70), "0(0b0000)", null ist, wählt somit die Eingabe B (70) aus und gibt "(0b0000)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1111)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung der Absolutwertinversion und "1" und gibt "(0b0111)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus. Das heißt, das Subtraktionsergebnis von |–8|–|0| ist positiv; d. h., der Vergleich zwischen |–8| und |0| erfolgt richtig.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0111)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 0.
  • Da im Schritt (7) das Merkerregister N = 0 und das Merkerregister Z = 0 ist, schreitet die Verarbeitung zu Schritt (9) fort. Der Wert des Registers A wird nicht im Register C eingestellt.
  • Auf diese Weise bewirkt der Prozessor 200 selbst dann keinen Überlauf, wenn der negative Wert mit dem maximalen Absolutwert eingegeben wird, während er die zwei Zahlenwerte richtig vergleicht.
  • <Operationsbeispiel 3>
  • Anhand von 3H wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "–4(0b1100)" eingestellt ist und wenn im Register C "3(0b0011)" eingestellt ist. Es wird der Befehl "abcmp C, A" verwendet.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–4(0b1100)", als die Eingabe B (70) eingegeben wird.
  • Der Wert der Eingabe A (69), "3(0b0011)", wird in die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 eingegeben. Da alle Bits des Werts durch den Inverter 23 invertiert werden, ist der invertierte Wert 60 "(0b1100)". Die Auswahleinrichtung 24 bestimmt, dass das Vorzeichen des Werts der Eingabe A (69), "3(0b0011)", positiv ist, wählt somit die Eingabe A (69) aus und gibt "(0b0011)" als den Wert 62 nach der Berechnung des Absolutwerts aus.
  • Der Wert der Eingabe B (70), "–4(0b1100)", wird in die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 eingegeben. Da alle Bits des Werts durch den Inverter 29 invertiert werden, ist der invertierte Wert 61 "(0b0011)". Die Auswahleinrichtung 30 bestimmt, dass der Wert der Eingabe B (70), "–4(0b1100)", negativ ist, wählt somit den invertierten Wert 61 aus und gibt "(0b0011)" als den Wert 63 nach der Berechnung des Absolutwerts aus. Der Inverter 31 invertiert die Bits des Werts 63 nach der Berechnung des Absolutwerts und gibt "(0b1100)" als den Wert 64 nach der Berechnung der Absolutwertinversion aus.
  • Die Additionsvorrichtung 28 addiert den Wert 62 nach der Berechnung des Absolutwerts, den Wert 64 nach der Berechnung der Absolutwertinversion und "1" und gibt "(0b0000)" als das Ergebnis 65 der Berechnung des Absolutwertvergleichs aus.
  • Der Merkereinstellabschnitt 9 nimmt an dem Eingabewert "(0b0000)" eine Bestimmung vor und setzt das Merkerregister N = 0 und das Merkerregister Z = 1.
  • Da im Schritt (7) das Merkerregister N = 0 und das Merkerregister Z = 1 ist, schreitet die Verarbeitung zu Schritt (9) fort. Der Wert des Registers A, "–4(0b1100)", wird nicht im Register C eingestellt. Der Wert des Registers C bleibt "3(0b0011)", was den kleineren Absolutwert hat.
  • Wenn im Schritt (14) der Befehl "abcmp C, A" ausgeführt wird und wo der Wert des Registers A ein negativer Wert (z. B. –4) ist, während der Wert des Registers C ein positiver Wert, der einen um 1 kleineren Absolutwert als der Wert des Registers A (z. B. 3) hat, wird ermittelt, dass das Ergebnis der Berechnung des Absolutwertvergleichs 0 ist. Somit erfolgt der Vergleich der Absolutwerte nicht richtig. Dementsprechend wird ein Wert mit einem Absolutwert, der um 1 kleiner ist als der Absolutwert, der als der maximale Absolutwert zu ermitteln ist, falsch als der maximale Absolutwert ermittelt. Allerdings werden Audiodaten mit der Bitbreite von 16 verarbeitet, wobei der Bereich der Zahlenwerte, die durch 16 Bits dargestellt werden können, –32768 bis 32767 ist. Selbst dann, wenn der erhaltene Absolutwert von dem richtigen Absolutwert um 1 verschieden ist, ist der Fehler etwa 0,003 % in Bezug auf den vollen Bereich der 16-Bit-Daten und vernachläs sigbar.
  • Wie oben beschrieben wurde, kann der Prozessor 200 in dem zweiten Beispiel gemäß der vorliegenden Erfindung den maximalen Absolutwert mit einem vernachlässigbaren Fehler ermitteln. Selbst dann, wenn ein negativer Wert mit dem maximalen Absolutwert unter den Zahlenwerten, die mit 2er-Komplementen mit einer vorgeschriebenen Bitbreite dargestellt werden können, eingegeben wird, können die Berechnungen richtig ausgeführt werden. Da die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 in dem Prozessor 200 nur einen +1-Addierer (die Additionsvorrichtung 28) enthält, kann die Größe der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 und ebenfalls die Größe des Prozessors 200 verhältnismäßig klein gehalten werden. Da die Addition von +1, die herkömmlich zweimal ausgeführt wird, in der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 213 nur einmal ausgeführt wird, kann die Rechenzeit, die erforderlich ist, um den maximalen Absolutwert unter mehreren Datenstücken zu ermitteln, verkürzt werden.
  • (Beispiel 3)
  • Anhand von 4 wird ein drittes Beispiel gemäß der vorliegenden Erfindung beschrieben. 4 ist ein Blockschaltplan eines Prozessors 300 in dem dritten Beispiel. Der Prozessor 300 enthält einen Datenbusabschnitt 2B zum Ausführen von Berechnungen und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2B. Anders als in dem ersten und in dem zweiten Beispiel werden der Vergleich der Absolutwerte und die Auswahl eines der Absolutwerte anhand des Vergleichsergebnisses in dem Prozessor 300 durch Hardware ausgeführt.
  • Der Steuerabschnitt 1 enthält einen Programmzähler 3, einen Ausführungsbefehlsspeicher 4 und einen Decodierer 5. Der Programmzähler 3, der Ausführungsbefehlsspeicher 4 und der Decodierer 5 sind völlig gleich denen in dem Prozessor 190 (19), wobei ihre ausführlichen Beschreibungen weggelassen werden.
  • Der Datenbusabschnitt 2B enthält eine ALU 6, eine Vorrichtung 15 zur Berechnung des maximalen Absolutwerts, eine Registerdatei 7, einen Datenspeicher 8 und den Merkereinstellabschnitt 9. Die ALU 6, die Registerdatei 7 und der Datenspeicher 8 sind völlig gleich denen in dem Prozessor 190 (19), wobei ihre ausführlichen Beschreibungen weggelassen werden. Der Merkereinstellabschnitt 9 ist völlig gleich dem in dem Prozessor 190 (19), wobei seine ausführlichen Beschreibungen weggelassen werden.
  • 5A zeigt eine Struktur der Vorrichtung 15 zur Berechnung des maximalen Absolutwerts. Die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts vergleicht unter Verwendung des 1er-Komplements die Absolutwerte der zwei Werte, die jeweils in den zwei durch das Steuersignal 10 bestimmten Registern in der Registerdatei 7 gespeichert sind. Das Vergleichsergebnis wird als Anzeigeinformationen ausgegeben, die anzeigen, welcher der zwei Werte den größeren Absolutwert besitzt. Die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts gibt anhand der Anzeigeinformationen den Wert mit dem größeren Absolutwert aus. Der Ausgangswert wird in das durch das Steuersignal 10 bestimmte Register in der Registerdatei geschrieben.
  • Wie in 5A gezeigt ist, enthält die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts eine 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 (die als eine erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung, als eine zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung und als eine Anzeigeinformations-Ausgabevorrichtung wirkt) und eine Auswahleinrichtung 33 (als eine Auswahlvorrichtung).
  • Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 subtrahiert den Wert der Eingabe B (70) oder den Absolutwert der 1er-Komplement-Darstellung der Eingabe B (70) von dem Wert der Eingabe A (69) oder von dem Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69) und gibt das Subtraktionsergebnis als das Ergebnis 65 einer Berechnung des Absolutwertvergleichs (als die Anzeigeinformationen 65) aus. Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 besitzt die gleiche Struktur wie die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 in dem ersten und in dem zweiten Beispiel, wobei ihre ausführliche Beschreibung weggelassen wird. Die Auswahleinrichtung 33 wählt die Eingabe B (70) aus, wenn das Absolutwert-Berechnungsergebnis 65 negativ ist, während sie sonst die Eingabe A (69) auswählt, und gibt den ausgewählten Wert als das Ergebnis 68 einer Berechnung der Auswahl des maximalen Absolutwerts aus.
  • Die Bitbreiten der 5 Register A, B, C, D und P in dem Prozessor 300 (4), die Bitbreite des Datenspeichers 8, die Bitbreite der in die ALU 6 eingegebenen und aus ihr ausgegebenen Daten betragen alle 4 Bits. Die Bitbreite der in die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts eingegebenen und aus ihr ausgegebenen Daten und die Bitbreite in Bezug auf die Rechengenauigkeit betragen alle 4 Bits.
  • Der Prozessor 300 besitzt die gleichen Ausführungsbefehle wie der herkömmliche Prozessor 190 (19) sowie die folgenden Ausführungsbefehle, die durch die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts ausgeführt werden: "abmax a, b: die Absolutwerte der im Register a bzw. b gespeicherten Werte werden miteinander verglichen, und der Wert mit dem größeren Absolutwert wird im Register a eingestellt".
  • Im Folgenden wird eine Operation des Prozessors 300 in dem dritten Beispiel beschrieben.
  • <Operationsbeispiel 1>
  • Hauptsächlich hinsichtlich des Befehls "abmax", der die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts verwendet, wird beschrieben, wie die Daten mit dem maximalen Absolutwert unter den vier Stücken praktischer Daten, die in 18 gezeigt sind, ermittelt werden (5A).
  • 5B zeigt ein Programm zum Ermitteln des Werts mit dem maximalen Absolutwert durch den Prozessor 300, der die Vorrichtung 15 zur Berechnung des maximalen Absolutwerts enthält. Die Schritte (1) bis (3) und (9) bis (13) sind völlig gleich zu denen im Fall des herkömmlichen Prozessors 190 (19). Im Schritt (15) werden die Absolutwerte des Werts des Registers C und des Werts des Registers A unter Verwendung des Befehls "abmax" miteinander verglichen. Der Wert mit dem größeren Absolutwert wird im Register C eingestellt. Die Verarbeitung im Schritt (15) ist gleichwertig der Verarbeitung in den Schritten (4) bis (8), die durch den herkömmlichen Prozessor 190 ausgeführt wird. Der Wert des Registers C wird als die Eingabe A (69) eingegeben, während der Wert des Registers A als die Eingabe B (70) eingegeben wird.
  • Die Verarbeitung in den Schritten (1) und (2) ist völlig gleich zu der im Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem ersten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 15 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 5C beschrieben.
  • Der Wert des Registers C, "0(0b0000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b0011)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2C beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1101)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, wählt die Auswahleinrichtung 33 die Eingabe B (70) aus und gibt sie "3(0b0011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "3(0b0011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Verarbeitung unter Verwendung der Vorrichtung 15 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 5D beschrieben.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–5(0b1011)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2D beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1111)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, wählt die Auswahleinrichtung 33 das Eingangssignal B (70) aus und gibt sie "–5(0b1011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–5(0b1011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 15 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 5E beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–2(0b1110)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2E beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0011)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist, wählt die Auswahleinrichtung 33 die Eingabe A (69) aus und gibt sie "–5(0b1011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–5(0b1011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 15 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 5F beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "6(0b0110)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2F beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. das Ausgangssignal von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1110)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, wählt die Auswahleinrichtung 33 die Eingabe B (70) aus und gibt sie "6(0b0110)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "6(0b0110)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190: Durch diese Verarbeitung kann im Register C der maximale Absolutwert "6" ermittelt werden.
  • <Operationsbeispiel 2>
  • Anhand von 5G wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "0(0b0000)" eingestellt ist und wenn im Register C "–8(0b1000)" eingestellt ist. Wie oben beschrieben wurde, ist "–8(0b1000)" ein negativer Wert mit dem maximalen Absolutwert in dem Bereich der Zahlenwerte, die durch 2er-Komplemente mit einer vorgeschriebenen Bandbreite dargestellt werden können. Bei dem herkömmlichen Prozessor 190 tritt der Überlauf auf, wobei eine genaue Berechnung unmöglich ist. Es wird der Befehl "abmax C, A" verwendet.
  • Der Wert des Registers C, "–8(0b1000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "0(0b0000)", als die Eingabe B (70) eingege ben wird.
  • Wie in dem anhand von 2G beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0111)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist, wählt die Auswahleinrichtung 33 die Eingabe A (69) aus und gibt sie "–8(0b1000)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–8(0b1000)" einstellt.
  • Auf diese Weise verursacht der Prozessor 300 keinen Überlauf, selbst wenn der negative Wert mit dem maximalen Absolutwert eingegeben wird, wobei er die zwei Zahlenwerte richtig vergleicht.
  • <Operationsbeispiel 3>
  • Anhand von 5H wird die Verarbeitung im Schritt (14) beschrieben, wenn im Register A "–4(0b1100)" eingestellt ist und wenn im Register C "3(0b0011)" eingestellt ist. Es wird der Befehl "abmax C, A" verwendet.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–4(0b1100)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2H beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0000)". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist, wählt die Auswahleinrichtung 33 die Eingabe A (69) aus und gibt sie "3(0b0011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "3(0b0011)" einstellt.
  • Wenn im Schritt (15) der Befehl "abmax C, A" ausgeführt wird und der Wert des Registers A ein negativer Wert (z. B. –4) ist, während der Wert des Registers C ein positiver Wert ist, dessen Absolutwert um 1 kleiner als der des Werts des Registers A (z. B. 3) ist, wird ermittelt, dass das Ergebnis der Vergleichsberechnung 0 ist. Somit wird der Vergleich der Absolutwerte nicht richtig ausgeführt. Dement sprechend wird ein Wert mit einem Absolutwert, der um 1 kleiner ist als der Absolutwert, der als der maximale Absolutwert zu ermitteln ist, falsch als der maximale Absolutwert ermittelt. Allerdings werden Audiodaten mit der Bitbreite von 16 verarbeitet, wobei der Bereich der Zahlenwerte, die durch 16 Bits dargestellt werden können, –32768 bis 32767 ist. Selbst wenn der erhaltene Absolutwert um 1 von dem richtigen Absolutwert verschieden ist, beträgt der Fehler etwa 0,003 % in Bezug auf den vollen Bereich der 16-Bit-Daten und ist vernachlässigbar.
  • Wie oben beschrieben wurde, kann der Prozessor 300 in dem dritten Beispiel gemäß der vorliegenden Erfindung den maximalen Absolutwert mit vernachlässigbarem Fehler ermitteln. Selbst wenn ein negativer Wert mit dem maximalen Absolutwert unter den Zahlenwerten, die mit 2er-Komplementen mit einer vorgeschriebenen Bitbreite dargestellt werden können, eingegeben wird, könnten die Berechnungen richtig ausgeführt werden. Außerdem können die Berechnungen mit einer höheren Geschwindigkeit als in den vorangehenden zwei Beispielen ausgeführt werden, da die in 21 gezeigten Schritte (14), (7) und (8) durch Hardware anstatt, wie in dem ersten und in dem zweiten Beispiel, durch Software ausgeführt werden.
  • (Beispiel 4)
  • Anhand von 6A wird ein viertes Beispiel gemäß der vorliegenden Erfindung beschrieben. 6A ist ein Blockschaltplan eines Prozessors 400 in dem vierten Beispiel. Der Prozessor 400 enthält einen Datenbusabschnitt 2D zum Ausführen von Berechnungen und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2D. Der Datenbusabschnitt 2D enthält anstelle der Absolutwert-Berechnungsvorrichtung 15 (5A) in dem dritten Beispiel eine Absolutwert-Berechnungsvorrichtung 415. Abgesehen davon besitzt der Prozessor 400 die gleiche Struktur wie der Prozessor 300 (4).
  • 6B zeigt eine Struktur der Vorrichtung 415 zur Berechnung des maximalen Absolutwerts. Die Vorrichtung 415 zur Berechnung des maximalen Absolutwerts vergleicht unter Verwendung des 1er-Komplements die Absolutwerte der zwei Werte, die jeweils in den zwei durch das Steuersignal 10 bestimmten Registern in der Registerdatei 7 gespeichert sind. Das Vergleichsergebnis wird als Anzeigeinformationen ausgegeben, die anzeigen, welcher der zwei Werte den größeren Absolutwert besitzt. Die Vorrichtung 415 zur Berechnung des maximalen Absolutwerts gibt anhand der Anzeigeinformationen den Wert mit dem größeren Absolutwert aus. Der Ausgangswert wird in das durch das Steuersignal 10 bestimmte Register in der Registerdatei geschrieben.
  • Wie in 6B gezeigt ist, enthält die Vorrichtung 415 zur Berechnung des maximalen Absolutwerts eine 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 (die als eine erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung, als eine zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung und als eine Anzeigeinformations-Ausgabevorrichtung wirkt), eine Nullerfassungsvorrichtung 34 und eine Ausgangswert-Auswahlvorrichtung 35 (als eine Ausgangswert-Auswahlvorrichtung).
  • Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 subtrahiert den Wert der Eingabe B (70) oder den Absolutwert der 1er-Komplement-Darstellung der Eingabe B (70) von dem Wert der Eingabe A (69) oder von dem Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69) und gibt das Subtraktionsergebnis als ein Ergebnis 65 der Berechnung des Absolutwertvergleichs (als die Anzeigeinformationen 65) aus. Die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 besitzt die gleiche Struktur wie die 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13 in dem ersten und in dem zweiten Beispiel, wobei ihre ausführliche Beschreibung weggelassen wird.
  • Die Nullerfassungsvorrichtung 34 (als eine Nullwertbestimmungsvorrichtung) gibt "1" als ein Nullwertbestimmungsergebnis 66 aus, wenn der Wert des Ergebnisses der Berechnung des Absolutwertvergleichs null ist (alle 4 Bits 0 sind, d. h. "0b0000"), während sie andernfalls "0" ausgibt Die Ausgangswert-Auswahlvorrichtung 35 enthält eine Auswahlsignal-Erzeugungsvorrichtung 36 und eine Auswahleinrichtung 37. Die Auswahlsignal-Erzeugungsvorrichtung 36 gibt als ein Auswahlsignal 67 "1" aus, wenn das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist oder wenn das Nullwert-Bestimmungsergebnis 66 "1" ist und das Vorzeichen der Eingabe B (70) negativ ist, während sie sonst "0" ausgibt. Die Auswahleinrichtung 37 wählt die Eingabe A (69) aus, wenn das Auswahlsignal 67 "0" ist, während sie die Eingabe B (70) auswählt, wenn das Auswahlsignal 67 "1" ist, wobei sie die ausgewählte Eingabe als das Ergebnis 68 der Berechnung der Auswahl des ma ximalen Absolutwerts ausgibt.
  • Der Prozessor 400 besitzt die gleichen Ausführungsbefehle wie der herkömmliche Prozessor 300 (4). Durch die Vorrichtung 415 zur Berechnung des maximalen Absolutwerts (6B) wird der Befehl "abmax" ausgeführt.
  • Im Folgenden wird eine Operation des Prozessors 400 in dem vierten Beispiel beschrieben.
  • <Operationsbeispiel 1>
  • Hauptsächlich hinsichtlich des Befehls "abmax", der die Vorrichtung 415 zur Berechnung des maximalen Absolutwerts verwendet, wird beschrieben, wie die Daten mit dem maximalen Absolutwert unter den vier Stücken praktischer Daten, die in 18 gezeigt sind, ermittelt werden (6B). Das in dem dritten Beispiel verwendete Programm wird ebenfalls in dem vierten Beispiel verwendet.
  • Die Verarbeitung in den Schritten (1) und (2) ist völlig gleich zu der im Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem ersten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 415 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 6C beschrieben.
  • Der Wert des Registers C, "0(0b0000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b0011)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2C beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1101)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "0b0000" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "1" aus. Da das Auswahlsignal 67 "1" ist, wählt die Auswahleinrichtung 37 die Eingabe B (70) aus und gibt sie "3(0b0011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "3(0b0011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem zweiten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Verarbeitung unter Verwendung der Vorrichtung 415 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 6D beschrieben.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–5(0b1011)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2D beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1111)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "0b0000" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "1" aus. Da das Auswahlsignal 67 "1" ist, wählt die Auswahleinrichtung 37 die Eingabe B (70) aus und gibt sie "–5(0b1011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–5(0b1011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem dritten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 415 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 6E beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–2(0b1110)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2E beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0011)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "0b0000" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist und das Nullwert-Bestimmungsergebnis 66 "0" ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "0" aus. Da das Auswahlsignal 67 "0" ist, wählt die Auswahleinrichtung 37 die Eingabe A (69) aus und gibt sie "–5(0b1011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–5(0b1011)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Die Verarbeitung in einem vierten Zyklus wird wie folgt ausgeführt.
  • Die Verarbeitung im Schritt (3) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Im Schritt (15) wird eine Berechnung unter Verwendung der Vorrichtung 415 zur Berechnung des maximalen Absolutwerts ausgeführt. Diese wird anhand von 6F beschrieben.
  • Der Wert des Registers C, "–5(0b1011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "6(0b0110)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2F beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. das Ausgangssignal von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b1110)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "(0b0000)" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "1" aus. Da das Auswahlsignal 67 "1" ist, wählt die Auswahleinrichtung 37 die Eingabe B (70) aus und gibt sie "6(0b0110)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "6(0b0110)" einstellt.
  • Die Verarbeitung in den Schritten (9) bis (12) ist völlig gleich zum Fall des herkömmlichen Prozessors 190.
  • Durch diese Verarbeitung kann im Register C der maximale Absolutwert "6" ermittelt werden.
  • <Operationsbeispiel 2>
  • Anhand von 6G wird die Verarbeitung im Schritt (15) dargestellt, wenn im Register A "0(0b0000)" eingestellt ist und wenn im Register C "–8(0b1000)" eingestellt ist. Wie oben beschrieben wurde, ist "–8(0b1000)" ein negativer Wert mit dem maximalen Absolutwert in dem Bereich der Zahlenwerte, die durch 2er-Komplemente einer vorgeschriebenen Bandbreite dargestellt werden können. Bei dem herkömmlichen Prozessor 190 tritt der Überlauf auf, wobei eine genaue Berechnung unmöglich ist. Es wird der Befehl "abmax C, A" verwendet.
  • Der Wert des Registers C, "–8(0b1000)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "0(0b0000)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2G beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0111)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "(0b0000)" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist und das Nullwert-Bestimmungsergebnis 66 "0" ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "0" aus. Da das Auswahlsignal 67 "0" ist, wählt die Auswahleinrichtung 37 die Eingabe A (69) aus und gibt sie "–8(0b1000)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–8(0b1000)" einstellt.
  • Auf diese Weise verursacht der Prozessor 400 keinen Überlauf, selbst wenn der negative Wert mit dem maximalen Absolutwert eingegeben wird, wobei er die zwei Zahlenwerte richtig vergleicht.
  • <Operationsbeispiel 3>
  • Anhand von 6H wird die Verarbeitung im Schritt (15) beschrieben, wenn im Register A "–4(0b1100)" eingestellt ist und wenn im Register C "3(0b0011)" eingestellt ist. Es wird der Befehl "abmax C, A" verwendet. In den oben beschriebenen Prozessoren 100, 200 und 300 können die Absolutwerte bei diesen Eingaben nicht richtig vergleichen werden.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "–4(0b1100)", als die Eingabe B (70) eingegeben wird.
  • Wie in dem anhand von 2H beschriebenen ersten Beispiel ist das Ergebnis 65 der Berechnung des Absolutwertvergleichs, d. h. die Ausgabe von der 1er-Komplement-Absolutwert-Subtraktionsvorrichtung 13, "(0b0000)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs "(0b0000)" ist (alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "1 ". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist, sondern das Nullwert-Bestimmungsergebnis 66 "1" ist und das Vorzeichen der Eingabe B (70) negativ ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "1" aus. Da das Auswahlsignal 67 "1" ist, wählt die Auswahleinrichtung 37 die Eingabe B (70) aus und gibt sie "–4(0b1100)" als das Ergebnis 68 der Berech nung der Auswahl des maximalen Absolutwerts aus, wobei sie im Register C "–4(0b1100)" einstellt.
  • Auf diese Weise kann der Prozessor 400 die Absolutwerte selbst dann richtig vergleichen, wenn der Wert des Registers A ein negativer Wert (z. B. –4) ist und der Wert des Registers C ein positiver Wert ist, dessen Absolutwert um 1 kleiner als der des Werts des Registers A (z. B. 3) ist.
  • <Operationsbeispiel 4>
  • In diesem Operationsbeispiel werden zwei Eingabewerte mit einem gleichen Absolutwert und entgegengesetzten Vorzeichen miteinander verglichen.
  • Anhand von 6I wird die Verarbeitung im Schritt (15) beschrieben, wenn im Register A "–3(0b1101)" eingestellt ist und wenn im Register C "3(0b0011)" eingestellt ist. Es wird der Befehl "abmax C, A" verwendet.
  • Der Wert des Registers C, "3(0b0011)", wird als die Eingabe A (69) eingeben, während der Wert des Registers A, "–3(0b1101)", als die Eingabe B (70) eingegeben wird.
  • Das Ergebnis 65 der Berechnung des Absolutwertvergleichs, das durch Subtraktion von "(0b0010)" (Absolutwert der 1er-Komplement-Darstellung der Eingabe B (70)) von "(0b0011)" (Eingabe A (69)) erhalten wird, ist "(0b0001)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "(0b0000)" ist (nicht alle 4 Bits null sind), ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs nicht negativ ist und das Nullwert-Bestimmungsergebnis 66 "0" ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 66 als das Auswahlsignal 67 "0" aus. Da das Auswahlsignal 67 "0" ist, wählt die Auswahleinrichtung 37 die Eingabe A (69) aus, gibt sie "3(0b0011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus und stellt sie in dem Register C "3(0b0011)" ein.
  • Anhand von 6J wird die Verarbeitung im Schritt (15) beschrieben, wenn im Register A "3(0b1101)" eingestellt ist und wenn im Register C "–3(0b0011)" eingestellt ist. Es wird der Befehl "abmax C, A" verwendet.
  • Der Wert des Registers C, "–3(0b1101)", wird als die Eingabe A (69) eingegeben, während der Wert des Registers A, "3(0b1101)", als die Eingabe B (70) eingegeben wird.
  • Das Ergebnis 65 der Berechnung des Absolutwertvergleichs, das durch Subtrahieren von "(0b0011)" (Eingabe B (70)) von "(0b0010)" (Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69)) erhalten wird, ist "(0b1111)". Da das Ergebnis 65 der Berechnung des Absolutwertvergleichs nicht "(0b0000)" ist (nicht alle 4 Bits null sind) ist, ist das Nullwert-Bestimmungsergebnis 66 "0". Da das Vorzeichen des Ergebnisses 65 der Berechnung des Absolutwertvergleichs negativ ist, gibt die Auswahlsignal-Erzeugungsvorrichtung 36 als das Auswahlsignal 67 "1" aus. Da das Auswahlsignal 67 "1" ist, wählt die Auswahleinrichtung 37 die Eingabe B (70) aus, gibt sie "3(0b0011)" als das Ergebnis 68 der Berechnung der Auswahl des maximalen Absolutwerts aus und stellt sie im Register C "3(0b0011)" ein.
  • Wie aus dem Operationsbeispiel 4 klar ist, gibt der Prozessor 400 konsistent den positiven Wert aus, wenn zwei Werte mit einem gleichen Absolutwert und entgegengesetzten Vorzeichen eingegeben werden.
  • Wie oben beschrieben wurde, kann der Prozessor 400 in dem vierten Beispiel gemäß der vorliegenden Endung den maximalen Absolutwert ohne Fehler ermitteln. Selbst wenn ein negativer Wert mit dem maximalen Absolutwert unter den Zahlenwerten, die mit 2er-Komplementen mit einer vorgeschriebenen Bitbreite dargestellt werden können, eingegeben wird, können die Berechnungen richtig ausgeführt werden. Außerdem können die Berechnungen mit höherer Geschwindigkeit als in den vorangehenden zwei Beispielen ausgeführt werden, da die in 21 gezeigten Schritte (14), (7) und (8) durch Hardware anstatt wie in dem ersten und zweiten Beispiel durch Software ausgeführt werden.
  • Wenn zwei Werte mit einem gleichen Absolutwert und entgegengesetzten Vorzeichen eingegeben werden, gibt der Prozessor 400 konsistent den positiven Wert aus. Dementsprechend ist, wenn die Berechnung zum Ermitteln des Werts mit dem maximalen Absolutwert unter der Datengruppe unter Verwendung des Prozessors 400, der die Absolutwert-Berechnungsvorrichtung 415 enthält, ausgeführt wird und im Ergebnis ein negativer Wert (z. B. –4) ermittelt wird, sichergestellt, dass die Datengruppe keinen positiven Wert enthält, dessen Absolutwert gleich dem des erhaltenen Werts (z. B. 4) ist. Dies ist im folgenden Fall vorteilhaft.
  • Es wird angenommen, dass unter Verwendung des Prozessors 400 "–4(0b1100)" als der Wert mit dem maximalen Absolutwert unter der Datengruppe ermittelt wird. Es ist sichergestellt, dass die Datengruppe "4(0b0100)" nicht enthält. Dementsprechend ist selbstverständlich eine Breite von 3 Bits, die die 8 Werte –4 bis 3 darstellen kann, ausreichend, um jedes Datenstück, das in dem Bereich enthalten ist, aus dem der Wert mit dem maximalen Absolutwert erhalten worden ist, mit einer kleinstmöglichen Bitbreite ohne Verschwendung darzustellen. Falls nicht sichergestellt werden könnte, dass die Datengruppe "4(0b0100)" nicht enthält, wäre eine Breite von 4 Bits erforderlich, um die 9 Werte von –4 bis 4 darzustellen. Auf diese Weise kann der Prozessor 400 die Bitbreite für die Darstellung jedes Datenstücks in der Datengruppe ohne Verschwendung mit höherer Geschwindigkeit als in dem herkömmlichen Prozessor 190 (19) ermitteln.
  • 6K zeigt ein Programm zum Ermitteln des Werts mit dem maximalen Absolutwert unter Verwendung des Prozessors 400, jedoch ohne Verwendung der Absolutwert-Berechnungsvorrichtung 415. Der Befehl "abmax" ist durch mehrere Schritte ausführlich gezeigt. In dem in 6K gezeigten Programm ist "absl a, b" ein Befehl, um den Absolutwert der 1er-Komplement-Darstellung des Werts im Register b zu erhalten und den Absolutwert im Register a einzustellen; ist jmp(be) label" ein Befehl, um zur Marke zu springen, wenn das Merkerregister N = 0 ist; und ist "jmp(ne) label" ein Befehl, um zur Marke zu springen, wenn das Merkerregister Z = 0 ist. Im Schritt (20) verwendet der Befehl "jmp(be)" das Berechnungsergebnis im Schritt (19) für die Zustandsbestimmung, wenn das Berechnungsergebnis im Schritt (6) "0" ist, während er das Berechnungsergebnis im Schritt (6) für die Zustandsbestimmung verwendet, wenn das Berechnungsergebnis im Schritt (6) nicht "0" ist. Die Schritte (16), (17) und (6) entsprechen dem Befehl "abmax".
  • In dem ersten und in dem zweiten Beispiel sind die erste 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20 (2A und 3B) und die zweite 1er-Komplement-Absolutwert-Berechnungsvorrichtung 21 (2A) als eine Vorrichtung zum Ausführen von 1er-Komplement-Absolutwert-Berechnungen vorgesehen, wobei aber irgendeine andere Vorrichtung verwendbar ist, die die gleiche Funktion ausführen kann.
  • 7 zeigt eine weitere 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20A, die in dem Prozessor gemäß der vorliegenden Erfindung verwendet werden kann. Die 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20A enthält eine Exklusiv-ODER-Berechnungsvorrichtung 94, die eine Exklusiv-ODER-Berechnung eines Vorzeichenbits der Eingangsdaten und jedes Bits der Eingangsdaten ausführt. Das Vorzeichenbit der Eingangsdaten wird als ein Steuersignal für die Exklusiv-ODER-Berechnungsvorrichtung 94 eingegeben.
  • 8 zeigt eine beispielhafte Struktur der Exklusiv-ODER-Berechnungsvorrichtung 94. Die Eingabe in die Exklusiv-ODER-Berechnungsvorrichtung 94 sind 4-Bit-Daten. Wie in 8 gezeigt ist, enthält die Exklusiv-ODER-Berechnungsvorrichtung 94 mehrere Exklusiv-ODER-Berechnungselemente 38, die die Exklusiv-ODER-Berechnung eines Vorzeichenbits der Eingangsdaten und des Steuersignals ausführen.
  • Im Folgenden wird eine beispielhafte Operation der 1er-Komplement-Absolutwert-Berechnungsvorrichtung 20A (7) beschrieben. Es wird angenommen, dass beispielsweise "3(0b0011)" eingegeben wird. An dem Wert des Vorzeichenbits "0b0" und jedem Bit der Eingangsdaten, d. h. "3(0b0011)", wird eine Exklusiv-ODER-Berechnung ausgeführt. Im Ergebnis wird "(0b0011)" ausgegeben. In diesem Fall werden die Bits der Eingangsdaten nach der Exklusiv-ODER-Berechnung nicht invertiert. Wenn "–5(0b1011)" eingegeben wird, wird an dem Wert des Vorzeichenbits "0b1" und jedem Bit der Eingangsdaten, d. h. an "–5(0b1011)", eine Exklusiv-ODER-Berechnung ausgeführt. Im Ergebnis wird "(0b0100)" ausgegeben. In diesem Fall werden die Bits der Eingangsdaten nach der Exklusiv-ODER-Berechnung invertiert. Es ist klar, dass die in 7 gezeigte Struktur als eine 1er-Komplement-Absolutwert-Berechnungsvorrichtung wirken kann.
  • In dem zweiten Beispiel ist eine 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27 (3B) als eine Vorrichtung vorgesehen, die 1er-Komplement-Absolutwert-Inversionsberechnungen ausführt, wobei aber irgendeine andere Vorrichtung verwendet werden kann, die die gleiche Funktion ausführen kann.
  • 9 zeigt eine weitere 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27A, die in dem Prozessor gemäß der vorliegenden Erfindung verwendet werden kann. Die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27A enthält mehrere Exklusiv-ODER- und Inversionsberechnungselemente 39, die eine Exklusiv-ODER-Berechnung eines Vorzeichenbits der Eingangsdaten und jedes Bit der Eingangsdaten ausführen, das Ergebnis daraufhin invertieren und das invertierte Ergebnis ausgeben.
  • Beispielsweise wird angenommen, dass "3(0b0011)" eingegeben wird. An dem Wert des Vorzeichenbits "0b0" und jedem Bit der Eingangsdaten, d. h. "3(0b0011)", wird eine Exklusiv-ODER-Berechnung ausgeführt. Nach der Exklusiv-ODER- und Inversionsberechnung des Ergebnisses wird "0b0011)" ausgegeben. Wenn "–5(0b1011)" eingegeben wird, wird an dem Wert des Vorzeichenbits "0b1" und jedem Bit der Eingangsdaten, d. h. "–5(0b1011)", eine Exklusiv-ODER-Berechnung ausgeführt. Nach der Exklusiv-ODER- und Inversionsberechnung des Ergebnisses wird "(0b1011)" ausgegeben. Es ist klar, dass die in 9 gezeigte Struktur als 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung wirken kann.
  • 10 zeigt eine nochmals weitere 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27B, die in dem Prozessor gemäß der vorliegenden Erfindung verwendet werden kann. Die 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27B enthält einen Inverter 40, der das Vorzeichenbit der Eingangsdaten invertiert, und eine Exklusiv-ODER-Berechnungsvorrichtung 94, die eine Exklusiv-ODER-Berechnung des invertierten Vorzeichenbits der Eingangsdaten und jedes Bits der Eingangsdaten ausführt. Die Exklusiv-ODER-Berechnungsvorrichtung 94 besitzt die gleiche Struktur wie die in 8 gezeigte Exklusiv-ODER-Berechnungsvorrichtung 94, und ihre ausführliche Beschreibung wird weggelassen.
  • Im Folgenden wird eine beispielhafte Operation der 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung 27B (10) beschrieben. Es wird angenommen, dass beispielsweise "3(0b0011)" eingegeben wird. An "0b1" (dem invertierten Wert des Vorzeichenbits, "0b0") und jedem Bit der Eingangsdaten, d. h. "3(0b0011)", wird eine Exklusiv-ODER-Berechnung ausgeführt. Als Ergebnis wird "(0b1100)" ausgegeben. Wenn "–5(0b1011)" eingegeben wird, wird an "0b0" (dem invertierten Wert des Vorzeichenbits "0b1") und jedem Bit der Eingangsdaten, d. h. "–5(0b1011)", eine Exklusiv-ODER-Berechnung ausgeführt. Im Ergebnis wird "(0b1011)" ausgegeben. Es ist klar, dass die in 10 gezeigte Struktur als 1er-Komplement-Absolutwertinversions-Berechnungsvorrichtung wirken kann.
  • 12 zeigt die Änderung der durch den Prozessor ausgewählten Daten, bis die Daten mit dem maximalen Absolutwert bestimmt sind, sowie die erhaltenen Daten mit dem maximalen Absolutwert. Die Daten mit dem maximalen Absolutwert werden aus den in 11 gezeigten Daten unter Verwendung der Prozessoren 100 (Beispiel 1), 200 (Beispiel 2), 300 (Beispiel 3) und 400 (Beispiel 4) gemäß der vorliegenden Erfindung und unter Verwendung des herkömmlichen Prozessors 190 (Stand der Technik) erhalten.
  • Wie in 12 gezeigt ist, erhält der herkömmliche Prozessor 190 "2" anstelle von "–8", das als der Wert mit dem maximalen Absolutwert erhalten werden sollte. Die Differenz des Absolutwerts zwischen dem erhaltenen Wert und dem zu erhaltenden richtigen Wert ist bezeichnenderweise groß. Dies ergibt sich, da eine richtige Berechnung hinsichtlich "–8", d. h. des Werts mit dem maximalen Absolutwert im Bereich der Zahlenwerte, die durch 2er-Komplemente mit der Breite von 4 Bits dargestellt werden können, nicht ausgeführt werden kann. Die Prozessoren 100, 200 und 300 erhalten "7", was wesentlich näher in Bezug auf den Absolutwert zu dem zu erhaltenden richtigen Wert als im Fall des herkömmlichen Prozessors 190 ist. Der Prozessor 400 erhält richtig "–8". Wie daraus klar ist, erhalten die Prozessoren gemäß der vorliegenden Erfindung den Wert mit dem maximalen Absolutwert mit einer wesentlich verbesserten Genauigkeit im Vergleich zu dem herkömmlichen Prozessor.
  • (Beispiel 5)
  • Anhand von 13 wird ein Prozessor 500 in einem fünften Beispiel gemäß der vorliegenden Erfindung beschrieben. Der Prozessor 500 enthält einen Datenbusabschnitt 2E und einen Steuerabschnitt 1 zum Steuern des Datenbusabschnitts 2E. Der Datenbusabschnitt 2E enthält eine in 14 gezeigt ALU 506. Abgesehen davon besitzt der Prozessor 500 im Wesentlichen die gleiche Struktur wie der herkömmliche allgemeine Prozessor 160 (16). Die ALU 506 ist gegenüber der in dem herkömmlichen allgemeinen Prozessor 160 enthaltenen ALU 6 geändert, so dass sie die Funktion der 1er-Komplement-Absolutwert-Subtraktion besitzt.
  • Wie in 14 gezeigt ist, enthält die ALU 506 eine Exklusiv-ODER-Berechnungsvorrichtung 71, einen Inverter 72, eine Auswahleinrichtung 73, eine Exklusiv-ODER-Berechnungsvorrichtung 74, einen Inverter 75, eine Auswahleinrichtung 76, einen Addierer 78 und eine Auswahleinrichtung 77. Außer der Ausführung der üblichen Addition und Subtraktion vergleicht die ALU 506 unter Verwendung des 1er-Komplements die Absolutwerte der zwei Werte, die jeweils in den zwei durch das Steuersignal 10 bestimmten Registern in der Registerdatei 7 gespeichert sind. Das Vergleichsergebnis wird als Anzeigeinformationen ausgegeben, die anzeigen, welcher der zwei Werte den größeren Absolutwert besitzt.
  • Die Exklusiv-ODER-Berechnungsvorrichtung 71 besitzt die gleiche Struktur wie die Exklusiv-ODER-Berechnungsvorrichtung 94 (8, die mehrere Exklusiv-ODER-Berechnungselemente 38 enthält). Die Exklusiv-ODER-Berechnungsvorrichtung 71 führt eine Exklusiv-ODER-Berechnung der als eine Eingabe empfangenen Eingabe A (69) und eines von der Auswahleinrichtung 73 empfangenen 1-Bit-Steuersignals aus. Der Inverter 72 invertiert die Eingabe A (69) und gibt den invertierten Wert als invertiertes Vorzeichensignal 84 aus. Die Auswahleinrichtung 73 wählt anhand des Steuersignals A (79) ein Vorzeichensignal 83 der Eingabe A (69) oder das invertierte Vorzeichensignal 84 oder das Signal 85 mit einem festen Wert 0 oder das Signal 86 mit einem festen Wert 1 oder das ausgewählte 1-Bit-Signal aus. Dementsprechend gibt die Exklusiv-ODER-Berechnungsvorrichtung 71 den Absolutwert des Eingangssignals A (69) aus, wenn sie das Vorzeichensignal 83 der Eingabe A (69) empfängt. Genauer wird eine Exklusiv-ODER-Berechnung der Eingabe A (69) und von "1111" ausgeführt, wenn das Vorzeichenbit "1 ", d. h. negativ, ist. Somit wird jedes Bit der Eingangsdaten A (69) invertiert und von der Exklusiv-ODER-Berechnungsvorrichtung 71 der Absolutwert der 1er-Komplement-Darstellung ausgegeben. Wenn das Vorzeichenbit "0", d. h. positiv, ist, wird eine Exklusiv-ODER-Berechnung der Eingabe A (69) und von "0000" ausgeführt. Somit wird die Eingabe A (69) von der Exklusiv-ODER-Berechnungsvorrichtung 71 wie sie ist ausgegeben. Wenn die Exklusiv-ODER-Berechnungsvorrichtung 71 von der Auswahleinrichtung 73 das invertierte Vorzeichensignal 84 als das Steuersignal empfängt, wird der Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69) ausgegeben.
  • Die Exklusiv-ODER-Berechnungsvorrichtung 74 besitzt die gleiche Struktur wie die Exklusiv-ODER-Berechnungsvorrichtung 94 (8, die mehrere Exklusiv-ODER-Berechnungselemente 38 enthält). Die Exklusiv-ODER-Berechnungsvorrichtung 74 führt eine Exklusiv-ODER-Berechnung der als eine Eingabe empfangenen Eingabe B (70) und eines von der Auswahleinrichtung 76 empfangenen 1-Bit-Steuersignals aus. Der Inverter 75 invertiert die Eingabe B (70) und gibt den invertierten Wert als ein invertiertes Vorzeichensignal 88 aus. Die Auswahlein richtung 76 wählt anhand eines Steuersignals B (80) ein Vorzeichensignal 87 der Eingabe B (70) oder das invertierte Vorzeichensignal 88 oder ein Signal 89 mit dem festen Wert 0 oder ein Signal 90 mit dem festen Wert 1 oder das ausgewählte 1-Bit-Signal aus.
  • Die Auswahleinrichtung 77 wählt anhand eines Steuersignals C (81) entweder das Signal 91 mit einem festen Wert 0 oder das Signal 92 mit einem festen Wert 1 aus und gibt das ausgewählte 1-Bit-Signal aus.
  • Der Addierer 78 addiert das Ausgangssignal von der Exklusiv-ODER-Berechnungsvorrichtung 71, das Ausgangssignal von der Exklusiv-ODER-Berechnungsvorrichtung 74 und das Ausgangssignal von der Auswahleinrichtung 77 und gibt das Ergebnis als eine Ausgabe 82 aus.
  • Die Steuersignale A (79), B (80) und C (81) werden von dem Decodierer 5 (13) zusammen als das Steuersignal 10 gesendet.
  • Im Folgenden wird eine Operation der ALU 506 in dem Prozessor 500 beschrieben.
  • <Operationsbeispiel 1>
  • In diesem Beispiel wird anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Vorzeichensignal 83 ausgegeben, wird anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das invertierte Vorzeichensignal 88 ausgegeben und wird anhand des Steuersignals C (81) von der Auswahleinrichtung 77 das Signal 92 mit dem festen Wert 1 ausgegeben. In diesem Fall subtrahiert die ALU 506 die Eingabe B (70) von der Eingabe A (69).
  • Wenn anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Vorzeichensignal 83 in die Exklusiv-ODER-Berechnungsvorrichtung 71 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 71 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe A (69) und des Vorzeichenbits der Eingabe A (69) aus.
  • Wenn anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das invertierte Vorzeichensignal 88 in die Exklusiv-ODER-Berechnungsvorrichtung 74 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 74 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe B (70) und des Vorzeichenbits der Eingabe B (70) aus und invertiert das Ergebnis.
  • Der Addierer 78 addiert den Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69), des invertierten Werts des Absolutwerts der 1er-Komplement-Darstellung der Eingabe B (70) und der Ausgabe "1" von der Auswahleinrichtung 77. In diesem Fall subtrahiert die ALU 506 den invertierten Wert des Absolutwerts der 1er-Komplement-Darstellung der Eingabe B (70) von dem Absolutwert der 1er-Komplement-Darstellung der Eingabe A (69) und gibt das Ergebnis als die Ausgabe 82 aus.
  • <Operationsbeispiel 2>
  • In diesem Beispiel wird anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Signal 85 mit dem festen Wert 0 ausgegeben, wird anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das Signal 89 mit dem festen Wert 0 ausgegeben und wird anhand des Steuersignals C (81) von der Auswahleinrichtung 77 das Signal 91 mit dem festen Wert 0 ausgegeben. In diesem Fall addiert die ALU 506 die Eingabe A (69) und die Eingabe B (70).
  • Wenn anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Signal 85 mit dem festen Wert 0 in die Exklusiv-ODER-Berechnungsvorrichtung 71 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 71 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe A (69) und von "0" aus. Im Ergebnis gibt die Exklusiv-ODER-Berechnungsvorrichtung 71 die Ausgabe A (69) wie sie ist aus.
  • Wenn anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das Signal 89 mit dem festen Wert 0 in die Exklusiv-ODER-Berechnungsvorrichtung 74 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 74 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe B (70) und von "0" aus. Im Ergebnis gibt die Exklusiv-ODER-Berechnungsvorrichtung 74 die Eingabe B (70) wie sie ist aus.
  • Der Addierer 78 addiert den Wert der Eingabe A (69) von der Exklusiv-ODER-Berechnungsvorrichtung 71, den Wert der Eingabe B (70) von der Exklusiv- ODER-Berechnungsvorrichtung 74 und die Ausgabe "0" von der Auswahleinrichtung 77. In diesem Fall addiert die ALU 506 die Eingabe A (69) und die Eingabe B (70).
  • <Operationsbeispiel 3>
  • In diesem Beispiel wird anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Signal 85 mit dem festen Wert 0 ausgegeben, wird anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das Signal 90 mit dem festen Wert 1 ausgegeben und wird anhand des Steuersignals C (81) von der Auswahleinrichtung 77 das Signal 92 mit dem festen Wert 1 ausgegeben.
  • Wenn anhand des Steuersignals A (79) von der Auswahleinrichtung 73 das Signal 85 mit dem festen Wert 0 in die Exklusiv-ODER-Berechnungsvorrichtung 71 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 71 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe A (69) und von "0" aus. Im Ergebnis gibt die Exklusiv-ODER-Berechnungsvorrichtung 71 die Eingabe A (69) wie sie ist aus.
  • Wenn anhand des Steuersignals B (80) von der Auswahleinrichtung 76 das Signal 90 mit dem festen Wert 1 in die Exklusiv-ODER-Berechnungsvorrichtung 74 eingegeben wird, führt die Exklusiv-ODER-Berechnungsvorrichtung 74 eine Exklusiv-ODER-Berechnung jedes Bits der Eingabe B (70) und von "1" aus. Im Ergebnis gibt die Exklusiv-ODER-Berechnungsvorrichtung 74 die invertierte Eingabe B (70) aus.
  • Der Addierer 78 addiert den Wert der Eingabe A (69) von der Exklusiv-ODER-Berechnungsvorrichtung 71, die invertierte Eingabe B (70) von der Exklusiv-ODER-Berechnungsvorrichtung 74 und die Ausgabe "1" von der Auswahleinrichtung 77. In diesem Fall subtrahiert die ALU 506 die Eingabe B (70) von der Eingabe A (69).
  • Wie oben beschrieben wurde, kann die ALU 506 des Prozessors 500 in dem fünften Beispiel durch Kombinieren verschiedener Ausgaben durch, die Steuersignale A (79), B (80) und C (81) unter Verwendung der Eingabe A (69) und der Eingabe B (70) mehrere verschiedene Typen von Berechnungen ausführen. 15 zeigt verschiedene Ausgaben durch die Steuersignale A (79), B (80) und C (81) sowie die erhaltenen Berechnungsergebnisse einschließlich der oben in den Operationsbeispielen 1 bis 3 beschriebenen Ergebnisse.
  • Der Prozessor 500 führt unter Verwendung der Berechnungsvorrichtung gemäß der vorliegenden Erfindung die Addition und Subtraktion der Absolutwerte der 1er-Komplemente sowie wie üblich die Addition und die Subtraktion aus.
  • Der Prozessor 500 kann verschiedene Strukturen besitzen, um zusätzlich zur Addition und Subtraktion der Absolutwerte der 1er-Komplemente die übliche Addition und Subtraktion auszuführen.
  • In dem ersten bis vierten Beispiel wird die Breite von 4 Bits verwendet, wobei aber andere Bitbreiten verwendet werden können.
  • In dem dritten und vierten Beispiel kann durch Austausch der Auswahlbedingungen, die von den Auswahleinrichtungen 33 und 37 verwendet werden, anstelle des Werts mit dem maximalen Absolutwert der Wert mit dem minimalen Absolutwert ermittelt werden.
  • Das Berechnungsverfahren gemäß der vorliegenden Erfindung kann durch ein Computerprogramm dargestellt und auf einem computerlesbaren Aufzeichnungsmedium aufgezeichnet sein. Das Computerprogramm kann in dem Zustand, in dem es von dem Computer gelesen wird, ausgeführt werden.
  • Alternativ kann das Berechnungsverfahren gemäß der vorliegenden Erfindung durch einen Mikrocode eines Prozessors dargestellt sein und als der Ausführungsbefehl des Prozessors ausgeführt werden.
  • Die Prozessoren in dem ersten bis fünften Beispiel verwenden Absolutwerte der 1er-Komplement-Darstellungen. Dementsprechend kann die Vergleichsberechnung selbst dann richtig ausgeführt werden, wenn ein negativer Wert mit dem maximalen Absolutwert in dem Bereich der Zahlenwerte eingegeben wird, die mit einer vorgeschriebenen Bitbreite dargestellt werden können.
  • Der Prozessor in dem vierten Beispiel gibt konsistent den positiven Wert als den Wert mit dem größeren Absolutwert aus, wenn zwei Werte mit einem gleichen Absolutwert und entgegengesetzten Vorzeichen eingegeben werden. Dement sprechend ist sichergestellt, dass die geprüfte Datengruppe keinen positiven Wert mit einem gleichen Absolutwert wie der negative Wert A enthält, wenn mit diesem Prozessor ein negativer Wert A ermittelt wird. Dementsprechend kann ohne Verschwendung die kleinstmögliche Bitbreite eingestellt werden, die erforderlich ist, um jedes Datenstück in der Datengruppe darzustellen.
  • Falls ein positiver Wert von einem negativen Wert subtrahiert wird und der positive Wert einen Absolutwert besitzt, der um 1 kleiner als der Absolutwert des negativen Werts ist, gibt der Prozessor in dem vierten Beispiel richtig den positiven Wert als den Wert mit einem größeren Absolutwert aus. Dementsprechend kann die Vergleichsberechnung unter Verwendung der 1er-Komplement-Darstellungsprozedur fehlerfrei ausgeführt werden.
  • Das Verfahren gemäß dem ersten bis fünften Beispiel erleichtert die durch einen Prozessor gemäß der vorliegenden Erfindung ausgeführte Berechnung und ist auf ein Computerprogramm oder dergleichen anwendbar.
  • Wie oben beschrieben wurde, schafft die vorliegende Erfindung eine Berechnungsvorrichtung, die einen negativen Wert mit dem maximalen Absolutwert in dem Bereich der Zahlenwerte, die mit einer vorgeschriebenen Bitbreite dargestellt werden können, genau verarbeitet und die minimal mögliche Bitbreite zur Darstellung der gegebenen Daten bestimmt, ein Berechnungsverfahren, das diese Verarbeitung unter Verwendung der Berechnungsvorrichtung ausführt, und einen Prozessor, der eine solche Berechnungsvorrichtung enthält.

Claims (12)

  1. Rechenvorrichtung zum Empfangen einer 2er Komplement Darstellung eines ersten Werts und einer 2er Komplement Darstellung eines zweiten Werts und zum Ausgeben einer Information, welche angibt, welcher eines absoluten Werts des ersten Werts oder eines absoluten Werts des zweiten Werts größer ist, wobei die Berechnungsvorrichtung aufweist: eine erste 1er Komplement Absolutwert-Berechnungsvorrichtung (20) zum Umwandeln des ersten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des ersten Werts negativ ist, und zum Ausgeben des ersten Werts wie er ist, wenn das Vorzeichen des ersten Wertes nicht negativ ist; eine zweite 1er Komplement Absolutwert-Berechnungsvorrichtung (21) zum Umwandeln des zweiten Werts in eine 1er Komplement Darstellung und zum Ausgeben der erhaltenen 1er Komplement Darstellung, wenn ein Vorzeichen des zweiten Werts negativ ist, und zum Ausgeben des zweiten Werts wie er ist, wenn das Vorzeichen des zweiten Werts nicht negativ ist; und eine Anzeigeinformations-Ausgabevorrichtung (22) zum Ausgeben einer Anzeigeinformation, welche anzeigt, welcher des absoluten Werts des ersten Werts oder des absoluten Werts des zweiten Werts größer ist, basierend auf der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung (20) und der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung (21), weiter aufweisend eine Auswahlvorrichtung (33) zum Ausgeben entweder des ersten Werts oder des zweiten Werts, welcher den größeren Absolutwert hat.
  2. Rechenvorrichtung nach Anspruch 1, wobei wenn der Absolutwert des ersten Werts und der Absolutwert des zweiten Werts gleich zueinander sind und das Vorzeichen des ersten Werts und das Vorzeichen des zweiten Werts voneinander verschieden sind, wählt die Auswahlvorrichtung (33) aus und gibt entweder den ersten Wert oder den zweiten Wert aus, welcher ein positives Vorzeichen hat.
  3. Rechenvorrichtung nach Anspruch 1, wobei die Anzeigeinformations-Ausgabevorrichtung (22) die Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung (21) von der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung (20) subtrahiert und das Subtraktionsergebnis ausgibt.
  4. Rechenvorrichtung nach Anspruch 1, wobei: die zweite 1er Komplement Absolutwert-Berechnungsvorrichtung (27) umfasst eine Inversionsvorrichtung (29) zum Invertieren von jedem der Bits der ler Komplement Darstellung des zweiten Werts, wenn das Vorzeichen des zweiten Werts negativ ist, und zum Invertieren von jedem der Bits des zweiten Werts, wenn das Vorzeichen des zweiten Werts positiv ist, die Anzeigeinformations-Ausgabevorrichtung (28) erhält eine Summe der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung (20) und der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung (27), addiert 1 zu der Summe, und gibt das Additionsergebnis aus.
  5. Rechenvorrichtung nach Anspruch 1, weiter aufweisend eine Nullwert-Bestimmungsvorrichtung (34) zum Bestimmen, ob die Ausgabe der Anzeigeinformations-Ausgabevorrichtung (13) 0 ist oder nicht, wobei die Auswahlvorrichtung (35) den zweiten Wert auswählt und ausgibt, wenn die Ausgabe der Anzeigeinformations-Ausgabevorrichtung (13) negativ ist oder wenn die Ausgabe der Anzeigeinformations-Ausgabevorrichtung (13) 0 ist und das Vorzeichen des zweiten Werts negativ ist, und wählt sonst den ersten Wert aus und gibt ihn aus.
  6. Berechnungsverfahren zum Herausfinden welcher eines absoluten Werts einer 2er Komplement Darstellung eines ersten Werts oder eines absoluten Werts einer 2er Komplement Darstellung eines zweiten Werts größer ist, wobei das Berechnungsverfahren aufweist: einen ersten 1er Komplement Absolutwert-Berechnungsschritt zum Umwandeln des ersten Werts in eine 1er Komplement Darstellung, wenn ein Vorzeichen des ersten Werts negativ ist, und zum Beibehalten des ersten Werts wie er ist, wenn das Vorzeichen des ersten Wertes nicht negativ ist; einen zweiten 1er Komplement Absolutwert-Berechnungsschritt zum Umwandeln des zweiten Werts in eine 1er Komplement Darstellung, wenn ein Vorzeichen des zweiten Werts negativ ist und zum Beibehalten des zweiten Werts wie er ist, wenn das Vorzeichen des zweiten Werts nicht negativ ist; und einen Anzeigeinformationsschritt zum Auffinden einer Anzeigeinformation, welche anzeigt, welcher, der Absolutwert des ersten Werts oder der Absolutwert des zweiten Werts größer ist, basierend auf dem Wert, welcher erhalten wurde durch den ersten 1er Komplement Absolutwert-Berechnungsschritt und dem Wert, welcher erhalten wurde durch den zweiten 1er Komplement Absolutwert-Berechnungsschritt, weiter aufweisend einen Auswahlschritt zum Auswählen entweder des ersten Werts oder des zweiten Werts, welcher den größeren Absolutwert hat.
  7. Berechnungsverfahren nach Anspruch 6, wobei der Auswahlschritt den Schritt umfasst, wenn der Absolutwert des ersten Wertes und der Absolutwertes des zweiten Wertes gleich zueinander sind und das Vorzeichen des ersten Wertes und das Vorzeichen des zweiten Werts verschieden voneinander sind, auswählen entweder des ersten Wertes oder des zweiten Wertes, welcher ein positives Vorzeichen hat, als einen Wert, welcher einen größeren Absolutwert hat.
  8. Berechnungsverfahren nach Anspruch 6, wobei der Anzeigeinformationsschritt den Schritt des Subtrahierens der Ausgabe der zweiten 1er Komplement Absolutwert-Berechnungsvorrichtung von der Ausgabe der ersten 1er Komplement Absolutwert-Berechnungsvorrichtung und das Ausgeben des Subtraktionsergebnisses umfasst.
  9. Berechnungsverfahren nach Anspruch 6, wobei: der zweite 1er Komplement Absolutwert-Berechnungsschritt den Schritt des Invertierens von jedem der Bits der 1er Komplement Darstellung des zweiten Werts umfasst, wenn das Vorzeichen des zweiten Werts negativ ist, und das Invertieren von jedem der Bits des zweiten Werts umfasst, wenn das Vorzeichen des zweiten Werts nicht negativ ist, der Anzeigeinformations-Ausgabeschritt umfasst den Schritt des Erhaltens einer Summe der Ausgabe erhalten durch den ersten 1er Komplement Absolutwert-Berechnungsschritt und der Ausgabe erhalten durch den zweiten ler Komplement Absolutwert-Berechnungsschritt, Addieren von 1 zu der Summe, und Ausgeben des Additionsergebnisses.
  10. Berechnungsverfahren nach Anspruch 6, weiter aufweisend einen Nullwertbestimmungsschritt zum Bestimmen, ob die Ausgabe, welche erhalten wurde durch den Anzeigeinformationsschritt, 0 ist oder nicht, wobei der Auswahlschritt den Schritt des Auswählens und Ausgebens des zweiten Werts als einen Wert umfasst, welcher einen größeren absoluten Wert hat, wenn der Wert, welcher erhalten wurde durch den Anzeigeinformationsschritt, negativ ist oder wenn der Wert, welcher erhalten wurde durch den Anzeigeinformationsschritt, 0 ist, und das Vorzeichen des zweiten Werts negativ ist, und Auswählen und Ausgeben des ersten Werts sonst.
  11. Prozessor mit: einem Datenbusabschnitt (2); und einem Steuerabschnitt (1) zum Steuern des Datenbusabschnitts (2), wobei: der Steuerabschnitt (1) umfasst: eine Ausführbefehl-Speichervorrichtung (4) zum Speichern eines Ausführbefehls, und eine Dekodiervorrichtung (5) zur Ausgabe eines Steuersignals, erhalten durch das Dekodieren des Ausführbefehls, gelesen von der Ausführbefehl-Speichervorrichtung (4) und der Datenbusabschnitt (2) umfasst eine Berechnungsvorrichtung nach Anspruch 1.
  12. Prozessor nach Anspruch 11, wobei die Auswahlvorrichtung (33) entweder den ersten Wert oder den zweiten Wert auswählt und ausgibt, welcher ein positives Vorzeichen hat, wenn der Absolutwert des ersten Werts und der Absolutwert des zweiten Werts gleich zueinander sind, und das Vorzeichen des ersten Werts und das Vorzeichen des zweiten Werts verschieden voneinander sind.
DE2000606336 1999-09-22 2000-09-21 Absolutwertvergleicher Expired - Lifetime DE60006336T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26956699 1999-09-22
JP26956699A JP3672076B2 (ja) 1999-09-22 1999-09-22 演算器および演算方法およびプロセッサ

Publications (2)

Publication Number Publication Date
DE60006336D1 DE60006336D1 (de) 2003-12-11
DE60006336T2 true DE60006336T2 (de) 2004-09-09

Family

ID=17474158

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000606336 Expired - Lifetime DE60006336T2 (de) 1999-09-22 2000-09-21 Absolutwertvergleicher

Country Status (3)

Country Link
EP (1) EP1087290B1 (de)
JP (1) JP3672076B2 (de)
DE (1) DE60006336T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005135090A (ja) 2003-10-29 2005-05-26 Seiko Epson Corp 演算処理装置
WO2017117116A1 (en) * 2015-12-28 2017-07-06 Coherent Logix, Incorporated Processor Instructions to Accelerate FEC Encoding and Decoding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3829671A (en) * 1973-04-25 1974-08-13 Westinghouse Electric Corp Method and circuit for calculating the square root of the sum of two squares
JP3735425B2 (ja) * 1996-11-29 2006-01-18 株式会社東芝 絶対値比較回路

Also Published As

Publication number Publication date
JP3672076B2 (ja) 2005-07-13
EP1087290B1 (de) 2003-11-05
DE60006336D1 (de) 2003-12-11
JP2001092634A (ja) 2001-04-06
EP1087290A1 (de) 2001-03-28

Similar Documents

Publication Publication Date Title
DE69613071T2 (de) Prozessor und Kontrollverfahren zur Ausführung richtiger Saturationsoperation
DE3788965T2 (de) Steuerungsschaltung für Zweirichtungsverschiebung mit variabler Anzahl.
EP0638859B1 (de) Signalverarbeitungseinrichtung
DE112007001989B4 (de) Ausführung von Rundungsoperationen entsprechend einer Anweisung
DE3687724T2 (de) Digitalprozessorsteuerung.
DE69720922T2 (de) Prozessor mit verbessertem Rundungsprozess
DE69703329T2 (de) Verfahren und Anordnung zur Änderung von Ergebnissen einer Computerprogrammausführungsfolge
DE2714805A1 (de) Datenverarbeitungssystem
DE69324730T2 (de) Multiplizier-Akkumulator
DE3339288A1 (de) Erkennungseinrichtung fuer mikrobrueche
DE68914046T2 (de) Verfahren zur Einschachtelung und Verarbeitung von gemischten Datenobjekten in einem Datenfluss mit selektiver Erbschaft der Umgebung.
DE112004001648T5 (de) Verfahren, Vorrichtung und Befehle für parallele Datenumwandlung
DE2611892A1 (de) Mikroprogramm-steuersystem
DE3856139T2 (de) Mikroprozessor
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE69519448T2 (de) Digitale Verarbeitungsanlage mit Befehlen zum Suchen des Minimums und Maximums
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE3650578T2 (de) Informationsverarbeitungssystem mit einer Steuerschaltung zum Abwarten einer Registererneuerung und einem Aufnahmemittel des zu erneuernden Registers
DE60006336T2 (de) Absolutwertvergleicher
DE3751287T2 (de) Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.
DE69028420T2 (de) Entscheidungsvorrichtung für Prioritätsfolge
DE3586709T2 (de) Informationsverarbeitungseinheit.
DE69132261T2 (de) Rückwärts kompatibles Datenverarbeitungssystem
DE69622608T2 (de) Informationsprozessor
DE4019646A1 (de) Vorrichtung fuer echtzeitmultiplikation in 2er-komplement-darstellung in einem digitalen signalprozessorsystem und ein verfahren dafuer

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: PANASONIC CORP., KADOMA, OSAKA, JP