DE2619418A1 - Verfahren und vorrichtung zur umwandlung einer binaerzahl in eine zahl modulo m - Google Patents

Verfahren und vorrichtung zur umwandlung einer binaerzahl in eine zahl modulo m

Info

Publication number
DE2619418A1
DE2619418A1 DE19762619418 DE2619418A DE2619418A1 DE 2619418 A1 DE2619418 A1 DE 2619418A1 DE 19762619418 DE19762619418 DE 19762619418 DE 2619418 A DE2619418 A DE 2619418A DE 2619418 A1 DE2619418 A1 DE 2619418A1
Authority
DE
Germany
Prior art keywords
adder
binary
modulo
sum
input
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.)
Granted
Application number
DE19762619418
Other languages
English (en)
Other versions
DE2619418C2 (de
Inventor
Chandrakant Ratilal Vora
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.)
Unisys Corp
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2619418A1 publication Critical patent/DE2619418A1/de
Application granted granted Critical
Publication of DE2619418C2 publication Critical patent/DE2619418C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/18Conversion to or from residue codes

Description

BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Burroughs Place, Detroit, Michigan 48232, V.St.A.
Verfahren und Vorrichtung zur Umwandlung einer Binärzahl in eine Zahl Modulo M
Die Erfindung beschäftigt sich mit einem Verfahren und einer Vorrichtung zur Umwandlung einer großen Binärzahl in eine Zahl Modulo M, das inbesondere sehr schnell ausgeführt werden kann und eine zuverlässig arbeitende und preiswerte Vorrichtung zur Ausführung des Verfahrens zu entwickeln gestattet.
Dieses Verfahren wird beispielsweise bei Matrix-Berechnungen angewandt, die durch große Rechner mit parallelen Speicherfeldern ausgeführt werden, wie etwa in The Organization and Use of Parallel Memories, veröffentlicht in IEE, Translations on Computers, Dezember 1971, Seiten 1566-1569 beschrieben ist. Bei diesen Berechnungen kann eine Modulo Umsetzung an einer Binärzahl in der Größenordnung von 23 bits ausgeführt werden.
HZ/gs
609847/0909
Eine direkte Umwandlung einer großen Zahl in eine Zahl Modulo M wird dadurch ausgeführt, daß die Zahl durch M dividiert und der Rest als Ergebnis gespeichert wird. Die Division einer großen Zahl ist jedoch außerordentlich langsam und für sehr schnell ablaufende Berechnungen unpraktisch.
Nach der Restklassen-Arithmetik kann eine Binärzahl von η Bits als eine Summe von geeignet bewichteten η Binärbits dargestellt werden. Die Restklasse Modulo M kann zunächst für jedes der η Bits bestimmt werden, wodurch die Umsetzung von binärer Zahl zur Zahl Modulo M durch Ausführen von η Modulo M-Additionen ermöglicht wird. Jedoch können für große Werte η die η Additionen immer noch eine viel zu große Zeit beanspruchen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein schnelles Verfahren zur Ausführung einer Umsetzung einer Binärzahl in eine Modulo M Zahl zu schaffen, die insbesondere für große Zahlen geeignet ist. Weiter soll die Umsetzung gemäß der Erfindung einfache, zuverlässige und preiswerte digitale Schaltungsbausteine verwenden.
Das Ziel wird gemäß der Erfindung dadurch erreicht, daß stückweise Modulo M-Umsetzungen an einer großen Binärzahl ausgeführt und die Teilergebnisse Modulo M addiert werden. Eine Binärzahl wird in zusammenhängende Segmente von ungefähr k bits unterteilt, wobei jedes k Bit-Segment einen speziellen, zugehörigen ROM (Lese-Speicher) adressiert. Die Modulo M-Umsetzungen sind für jedes Segment vorgegeben und in den einzelnen zugehörigen Lesespeichern abgespeichert. Die Lesespeicherausgänge werden im Rahmen einer Modulo M Addition verknüpft und beenden und vervollständigen damit die Umsetzung.
609847/0909
Die System-Konfiguration und die Einzelheiten des Betriebs entsprechend Vorstehendem werden in vereinfachter Form nachfolgend angegeben. Weitere Merkmale der Erfindung werden im einzelnen aus den Zeichnungen und der beigefügten Beschreibung hervorgehen. Im einzelnen zeigen:
Fig. 1 ein Diagramm eines Binär/Modulo M - Umsetzers gemäß der Erfindung für eine vorζeichen-behaftete 23 Bit umfassende Binärzahl und M = 67;
Fig. 2 eine Tabelle zur Erläterung des Verfahrens . der vorgespeicherten Modulo M - Umsetzungen in einem gemäß der Erfindung verwendeten Lesespeicher;
Fig. 3 ein schematisches Diagramm eines Modulo M .: Addierers, der in dem Binär/Modulo M - Umsetzer gemäß der Erfindung verwendet wird;
Fig. 4 einen Binär/Modulo M - Umsetzer gemäß der
Erfindung für eine mit Vorzeichen versehene 15 Bit umfassende Binärzahl; und :
Fig. 5 ein Diagramm eines Binär/Modulo M - Umsetzers , gemäß der Erfindung für eine positive Binärzahl mit 23 Bits.
Die Umsetzung einer Binärzahl in eine Zahl Modulo M wird gemäß der Erfindung dadurch ausgeführt, daß die Binärzahl in Gruppen von Bits aufgeteilt wird, die unabhängig umgesetzt und danach mit einer Modulo M - Addition zum Endergebnis zusammengesetzt werden. Beispieleweise kann die bereichsweise Aufteilung wie folgt geschehen:
|B|m s I bn 1^"1 bo| » :
IB! * |(bn) (2n) ♦ (bn-1)"(2aW1) +.....(bn-7) (2n'7) / m
|(bn-8) (2n-8) ♦ .... (bn-15) (2n"15)J m %
|(bn-l6) (2n-16) ♦ ..... (1) (2) + (bo)|m
w . ■ ■ " ■ · I *
60 9 847/0909
Dabei bedeuten B eine binäre Länge n, bn das Binärbit (entweder eine 1 oder eine 0) an der nten Stelle und B die Modulo M - Umsetzung der Binärzahl B mit M ganzzahlig und die Modulo M -Umsetzung den Rest, der bei Division B durch M verbleibt.
Spezielle Beispiele des erfindungsgemäßen Verfahrens, angewandt auf unterschiedliche Längen von Binärzahlen bei festem M werden nachstehend angegeben und verdeutlichen die schaltungsmäßige Verwirklichung und Ausführung des erfindungsgemäßen Verfahrens und Erhellen die erheblichen Realzeitvorzüge, die sich damit erreichen lassen.
Gemäß Fig. 1 wird eine mit Vorzeichen versehene 23 Bit um- . fassende Binärzahl 11 gemäß der Erfindung in eine Zahl Modulo 67 . nur mit Hilfe zweier relativ kleiner Lesespeicher 13 und 15 und 256x7. Bit, zweier Modulo-Addierer 17 und 19 und einem Einfach-Addierer 21 umgesetzt. Wie aus dem Nachfolgenden weiter deutlich wird, findet eine derartige Umsetzung innerhalb der minimalsten Prozessorzeit oder Taktzeit statt.
Die Bits der Binärzahl 11 werden in drei Abschnitte unterteilt. Die acht höchststelligen Bits adressieren den 256x7 Lesespeicher 13, die achts Bits mittlerer Position adressieren den 256x7 Lesespeicher 15 und die sechs niedrigststelligen Bits geben einen ersten Eingang 29 für den Modulo-Addierer 19. Eine Beschreibung der Betriebsweise und der konkreten Jisführungsform des Modulo-Addierers 19 schließt sich an die Erörterung der Lesespeicher 13 und 15 an.
609847/0909
Die Lesespeicher 13 und 15 sind übliche Lesespeicher
mit 256 (= 2 ) Adressen und einer erforderlichen Wortlänge von 7 Bits für die Modulo 65-Umsetzung, da 67 kleiner als 128 ( =2 ) und mehr als 64 (=2 ) ist. Jeder Lesespeicher oder auch beide Lesespeicher zusammen können auf einem einzigen LSI-Chip (= Chip mit schaltungsmäßiger Groß-Integration) hergestellt werden. In einem Arbeitsmodell der Erfindung wurde ein zufriedenstellender Lesespeicher durch Parallelschalten zweier Motorola MCM10150 Lesespeicher zu einem 256x8 Lesespeicher gebildet.
Die Lesespeichef 13 und 15 werden durch ausgewählte acht Bitsegmente der Binärzahl 11 adressiert und geben vorbestimmte Modulo-Umformungen für die gewählten acht Bit Binäradressen aus. Lesespeicher 15 wird durch die acht Bits adressiert, die die äquivalenten Dezimalwerte von 128x1 repräsentieren, wobei I alle ganzen Zahlen zwischen 0 und 255 einschließlich bedeutet. Fig. 2 zeigt alle 256 Modulo 67 Ausgänge für die acht Bits, die dem Lesespeicher 15 eingegeben werden. Als illustratives Beispiel beträgt der Ausgang für die dezimal äquivalente Adresse 128x2 = (256), nämlich 55 (=256-3x67). Die anderen 255 Lesespeicherausgänge sind in ähnlicher Weise vorbestimmt und in dem Lesespeicher 15 gespeichert. Die Modulo-Ausgänge für den Lesespeicher 13 sind in ähnlicher Weise bestimmt, werden jedoch für die Werte 32768 mal I berechnet, wobei I alle genannten Zahlen zwischen 0 und 255 einschließlich bedeutet.
Der Lesespeicher 15-Ausgang wird zu einem zweiten Eingang des Modulo-Addierers 19. Der Modulo-Addierer 19 summiert sämtliche Eingänge und gibt das Modulo M Resultat aus. Da beide Eingänge 29 und 31 für den Modulo-Addierer 19 kleiner als das Modulo M von 67 sind, ist die Modulo-Addition ledig-
609847/0909
lieh die Summe der Eingänge oder die Summe der Eingänge minus 67, wenn die Eingangssumme größer oder gleich 67 ist. Die Modulo-Addition könnte daher auch dadurch ausgeführt werden, daß die Eingänge summiert, die Summe mit 67 verglichen und 67 von der Summe subtrahiert wird, wenn dies sich aus dem Vergleich ergibt.
Wie jedoch Fig. 3 zeigt, findet die bevorzugte Ausführungsform der erfindungsgemäßen Modulo-Addition dadurch statt, daß parallel die Eingänge summiert und die Eingänge minus 67 summiert werden und dann entweder die direkte Eingangssumme oder die Eingangssumme minus 67 ausgegeben wird, je nachdem ob die letztere negativ oder positiv ist. Der Modulo-Addierer 19 mit den Eingängen 29 und 31 summiert diese Eingänge in einem ersten Addierer 31 mit laufendem übertrag. Ein geeigneter Addierer für diese Aufgabe ist die 4-Bit Arithmetic Logic Unit, der Motorola MC10181. Da die Eingänge 29 und 31 jeweils eine Breite von 7 Bits haben, werden für die volle Addition zwei parallel betriebene MC10181 Einheiten benötigt.
Parallel mit der direkten Summierung der Eingänge wird das Summieren der Eingänge minus 67 in einer Reihenoperation eines Addierers 35 mit gesondertem übertrag und einem zweiten Addierer 37 mit fortlaufendem übertrag ausgeführt. Der Addierer 35 mit gesondertem Übertrag (carry save adder) kann aus einem Parallel-Betrieb zweiter Motorola Dual High Speed Adders/ Subtractors MC10180 erhalten werden. Der zweite Addierer 37 mit fortlaufendem Übertrag (Carry Propagate Adder) kann in identischer Weise wie der erste Addierer 35 aufgebaut sein.
Die Ausgänge 39 und 41 des ersten Addierers 35 sowie des zweiten Addierers 37 stellen Eingänge für einen Multiplexor
609847/0909
-r-
dar, der entweder den Ausgang 39 oder den Ausgang 41 durchschaltet, je nachdem ob Ausgang 41 negativ oder positiv ist, wie das der Kipp- oder Steuereingang 44 anzeigt. Multiplexer 43 kann durch Parallelschalten zweier Motorola Quad 1-Input MUX MC10173 Multiplexer aufgebaut werden.
Wie man der Fig. 1 entnimmt, wird der Ausgang 45 des Multiplexors 43 als ein Eingang dem Modulo-Addierer 17 zugeführt, der ebenso wie der Modulo-Addierer 19 arbeitet. Ein zweiter Eingang für den Modulo-Addierer 17 kommt vom Ausgang 47 des Lesespeichers 13. Lesespeicher 13 speichertdie Modulo 67-Umsetzungen für die höchststelligen acht Bits der mit Vorzeichen, versehenen Binärzahl 11, ebenso wie Lesespeicher 15 die Modulo 67-Umsetzungen für die mittleren acht Bits speichert. Die Modulo 67 - Umsetzungen für den Lesespeicher 13 sind in ähnlicher Weise vorbestimmt unter Anwendung des Verfahrens, das zur Festlegung der Modulo 67 - Umsetzungen für den Lesespeicher 15 wie oben erwähnt dient.
Der Ausgang des Modulo-Addierers 17 wird als erster Eingang einem Addierer .21 zugeführt. Der zweite Eingang 51 stellt die Modulo-Zahl 67 dar. Ein St euereingang 53 wird durch das Vorzeichen-Bit 55 der Binärzahl 11 gebildet. Wenn das Vorzeichen-Bit 55 positiv ist, dann wird der erste Eingang 49 praktisch direkt durch den Addierer 21 zum Addierer-Ausgang 57 durchgeleitet, der die fertige Binär/Modulo 67-r Umsetzung repräsentiert. Wenn andererseits das Vorzeichenbit 55 negativ ist, dann wird der erste Eingang 49 vom zweiten Eingang 51, der die Zahl 67 darstellt, subtrahiert, und das Ergebnis wird ausgegeben, daß dann die fertige Umsetzung darstellt.
Addierer 21 kann aus zwei parallelen Motorola.'MC 10181 4-Bit Arithmetic Logic Units zusammengebaut werden. Einige
609847/0909
im Handel erhältliche Addierer/Subtrahierer führen die Subtraktion einfach durch Komplementieren eines Eingangs und nachfolgendes Addieren aus. Das Ergebnis ergibt den richtigen Differenzwert minus 1. In solchem Fall muß die Zahl 68 dem zweiten Addierereingang zugeführt werden, um die richtige Binär/Modulo 67-Umsetzung zu gewährleisten.
Wie aus dem vorstehenden entnommen werden kann, wird dann, wenn die umzusetzende Binärzahl stets positiv ist, der Addierer 21 nicht benötigt, da der Ausgang-Modulo 67 die vollständige Umsetzung darstellt. Zur weiteren Erläuterung Und Klärung der Merkmale der Erfindung sind zwei weitere Beispiele von Modul 67 - Umsetzungen hier mitgeteilt.
Zunächst wird gemäß Fig. 4 eine Binärzahl 59 mit 15 Bit und Vorzeichen in eine Zahl-Modulo 67 umgesetzt, wobei nur ein Lesespeicher, ein Modulo-Addierer und ein Einfach-Addierer benötigt werden. Durch Vergleich mit Fig. 1 ergibt sich deutlich, daß die Umsetzung der mit Vorzeichen behafteten 15 Bit-Binärzahl in gleicher Weise abläuft wie die Umsetzung der Vorzeichen behafteten 23 Bit umfassende Binärzahl, jedoch ohne Lesespeicher 13 und ohne Modulo-Addierer 17, die zum Umsetzen 15 Bit-Zahl nicht erforderlich sind.
Gemäß Fig. 5 ist weiter eine stets positive 23 Bit umfassende Binärzahl 61 in Modulo 67 umgesetzt, wobei nur zwei Lesespeicher, zwei Modulo-Addierer und ein Einfach-Addierer sowie ein Multiplexer verwendet werden.Durchvergleich mit Fig. ergibt sich deutlich, daß die Umsetzung der stets positiven 23 Bit-Binärzahl in gleicher Weise abläuft wie die Umsetzung der mit beliebigem Vorzeichen versehenen Binärzahl mit 23 Bits mit Ausnahme der Umsetzung der niedrigststelligen 7 Bits. 7 Bits können die Zahlen von 0 bis 127 darstellen. Daher ist die Modulo 67 - Umsetzung entweder direkt die Binärzahl, wenn
609847/0909
diese nur von 0 bis 66 reicht, oder die Binärzahl minus 67, wenn ihr Wert zwischen 67 und 127 liegt. Die Zahl 67 wird von den letzten sieben Bits 63 im Addierer 65 subtrahiert, der aus zwei parallel geschalteten Motoraola MC 10181 4-Bit Arithmetic Logic Units gebildet werden kann. Der Ausgang des Addierers 6 5 wird als erster Eingang 69 dem Multiplexer 71 zugeführt, der aus zwei Motorola-MC10173 Quad 2-Input MUX Multiplexern aufgebaut werden kann. Die niedrigststelligen sieben Bits 63 bilden den zweiten Eingang 73 für den Multiplexer 71. Der Ausgang 75 des Multiplexers 71 ist identisch entweder zum ersten Eingang 69 oder mit dem zweiten Eingang 73, je nachdem, ob das Ergebnis aus dem Addierer 65 negativ oder positiv ist. Ein Steuereingang 77 für den Multiplexer 71 kommt von dem Addierer 65 und stellt den Multiplexer 71 entweder zwischen dem ersten Eingang 69 oder dem zweiten Eingang 73 nach Erfordernis um. Die Beendigung der Modul 67- Umsetzung für die positive 23 Bit Binärzahl 61 findet in ähnlicher Weise wie oben beschrieben für 23 Bit umfassende mit Vorzeichen behaftete Binärzahl 11 statt.
Die vorstehende Beschreibung der verschiedenen Binär/Modul 67 - Umsetzungen erläutert die Geschwindigkeit, Einfachheit und Flexibilität der Erfindung. Es versteht sich natürlich, daß die Erfindung auf Einzelheiten der dargestellten Schaltungen nicht beschränkt ist.
Insgesamt wird nach der Erfindung die Modulo M - Umsetzung an einer großen Binärzahl von η Bits dadurch ausgeführt, daß die Binärzahl in zusammeunängende Gruppen von jeweils ungefähr k Bits unterteilt wird, daß die Modulo M Reste für jede k Bitgruppe in einem eigenen zugehörigen Lesespeicher vorgespeichert werden, und daß die Modulo M - Reste für das zugehörige k Bitsegment der Binärzahl aus dem zugehörigen
609847/0909
2619A 1 8
Lesespeicher ausgelesen und eine Modulo M Addition an den ausgelesenen Resten ausgeführt wird. Auf diese Weise wird die Modulo M - Umsetzung einer positiven Zahl in n/k Modulo M -Additionen und einer Tabellen-Nachschau ausgeführt, wobei die zu inspizierende Tabelle in n/k Lesespeichern gespeichert ist. Eine nachfolgende Modulo M Subtraktion wird ausgeführt, wenn die Binärzahl negativ ist.
609847/0909

Claims (15)

  1. Patentansprüche
    Verfahren zur Ausführung einer Umsetzung einer Binärzahl in eine Zahl -Modulo M, wobei die Binärzahl größer als M ist, dadurch gekennzeichnet, daß die Binärzahl in einen höherstelligen Abschnitt und einen niedrigerstelligen Abschnitt so unterteilt wird, daß der niedrigerstellige Abschnitt eine Binärzahl darstellt, die kleiner als M ist, daß Modulo M - Umsetzungen für alle Binärzahlen, die durch die Binärziffer des höherstelligen Abschnittes repräsentiert werden können, lesbar gespeichert werden und daß ein dem höherstelligen Abschnitt der Binärzahl entsprechender Modulo M - Wert ausgelesen und Modulo M mit dem niedrigerstelligen Wert der Binärzahl addiert wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der höherstellige Abschnitt in einen ersten und zweiten Teil untergliedert wird und daß die Modulo M - Umsetzungen für den ersten und den zweiten Teil gesondert gespeichert werden.
  3. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß für M eine Primzahl gewählt wird.
  4. 4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß für M die Zahl 67 gewählt wird.
  5. 5. Einrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche gekennzeichnet durch einen Addierer zum Addieren zweier Modulo M - Eingänge, wobei
    609847/0909
    jeder Eingang ein Binärwert ist, der kleiner als M ist; durch einen Speicher zur Umsetzung eines zweiten Teils der Binärzahl, wobei einem ersten Eingang des Addierers ein erster Teil der Binärzahl und dem zweiten Eingang der umgesetzte zweite Teil der Binärzahl zugeführt wird.
  6. 6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der Addierer ein Modulo M - Addierer ist.
  7. 7. Einrichtung nach Anspruch 5 oder 6 gekennzeichnet durch einen ersten Binäreingang zur Übertragung eines Binärwertes, der kleiner ist als M; durch einen zweiten Binäreingang zur Übertragung einer weiteren Binärzahl, die kleiner als M ist; durch einen Addierer, in dem die Binärzahlen der ersten und zweiten Binäreingänge addiert werden; durch einen zweiten Addierer, der parallel zum ersten Addierer arbeitet und die Binärzahlen auf den ersten und zweiten Binäreingängen minus einer Binärdarstellung von M addiert; und durch einen Multiplexer, der auf das Summieren des zweiten Addierers anspricht und die Summe des zweiten Addierers ausgibt, wenn die Summe des zweiten Addierers positiv ist und die Summe des ersten Addierers ausgibt, wenn die Summe des zweiten Addierers negativ ist.
  8. 8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß der erste Addierer mitlaufenden Übertrag hat und daß der zweite Addierer eine Reihenschaltung aus einem Addierer mit gesondertem übertrag und einem Addierer mit mitlaufendem Übertrag ist.
  9. 9. Einrichtung nach einem der Ansprüche 5-8, dadurch gekenn-
    zeichnet, daß M eine Primzahl ist.
    609847/0909
  10. 10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Primzahl 67 beträgt.
  11. 11. Einrichtung nach einem der Ansprüche 5-10 gekennzeichnet durch einen ersten Modulo M - Umsetzer, in welchem ein erster Teil der Binärzahl umgesetzt wird und der erste Teil der Binärzahl kleiner ist als 2M, wobei der erste Modulo M Umsetzer einen Addierer und einen Multiplexer enthält, und der Addierer den ersten Teil sowie die Zahl M als Eingänge erhält und M minus dem ersten Teil addiert und das Vorzeichen des Ergebnisses anzeigt, und der Multiplexer den Addier-Ausgang ausgibt, wenn er positiv ist und den ersten Teil aisgibt, wenn der Addierer-Ausgang negativ ist; durch einen zweiten Modulo M - Umsetzer zur Umsetzung des restlichen Teiles der Binärzahl, der größer als 2M ist, wobei der zweite Modulo M - Umsetzer einen Speicher aufweist, der von dem restlichen Teil adressiert wird und wenigstens zwei Unterspeicher aufweist, wobei jeder der beiden Unterspeicher durch ein eigenes Segment der zusammenhängenden Bits aus dem restlichen Abschnitt adressiert wird und eine vorgespeicherte Modulo M - Umsetzung für jede Speicheradresse ausgibt, und wobei der zweite Modulo M - Umsetzer mehrere Modulo M - Addierer enthält, von denen jeder genau einem Unterspeicher zugeordnet ist und wobei jeder der beiden Unterspeicher mit einem ihm zugehörigen Modulo M - Addierer verbunden ist, der Multiplexer mit einem der Modulo M -Addierer und die Modulo M -Addierer untereinander verbunden sind, derart, daß sich am Ausgang eines der Modulo M Addierer eine Modulo M Umsetzung der Binärzahl ergibt, deren Äquivalent größer als 2M ist.
  12. 12. Einrichtung nach Anspruch 11, dadurch gekennzeichnet, daß jeder der Modulo M - Addierer einen ersten Binäreingang
    6 0 9847/0909
    und einen zweiten Binäreingang aufweist, wobei an den beiden Binäreingängen eine Binärzahl steht, deren Wert kleiner als die Zahl M ist; daß ein erster Addierer die Binärwerte an dem ersten und zweiten Binäreingang addiert; daß der zweite Addierer parallel zum ersten Addierer geschaltet ist und die Binärwerte auf den beiden Binäreingängen minus einer Binärdarstellung der Zahl M addiert; und daß der Multiplexer die Summe des zweiten Addierers ausgibt, wenn sie positiv ist und die Summe des ersten Addierers ausgibt, wenn die Summe des zweiten Addierers negativ ist.
  13. 13. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß M eine Primzahl ist.
  14. 14. Einrichtung nach Anspruch 13, dadurch gekennzeichnet, daß als Primzahl 67 gewählt wird.
  15. 15. Einrichtung insbesondere nach einem der Ansprüche 5-14, dadurch gekennzeichnet, daß der Modulo M -Addierer einen ersten Binäreingang zur Aufnahme einer Binärzahl mit einem kleineren Wert als M und einem zweiten Binäreingang zur Aufnahme einer Binärzahl mit einem Wert kleiner als M, einen ersten Addierer zur Addition der Binärzahlen an den ersten und zweiten Binäreingang, einen zum ersten Addierer parallel geschalteten zweiten Addierer, in welchem die Binärzahlen auf die beiden Eingänge minus einer Binärdarstellung der Zahl M addiert wird, und einen Multiplexer aufweist, der die Summe des zweiten Addierers ausgibt, wenn sie positiv ist oder die Summe des ersten Addierers ausgibt, wenn die Summe des zweiten Addierers negativ ist.
    60 9 8 47/0909
DE2619418A 1975-05-09 1976-05-03 Einrichtung zum Umsetzen einer Binärzahl in eine Zahl Modulo M Expired DE2619418C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/576,002 US3980874A (en) 1975-05-09 1975-05-09 Binary to modulo M translation

Publications (2)

Publication Number Publication Date
DE2619418A1 true DE2619418A1 (de) 1976-11-18
DE2619418C2 DE2619418C2 (de) 1986-05-15

Family

ID=24302582

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2619418A Expired DE2619418C2 (de) 1975-05-09 1976-05-03 Einrichtung zum Umsetzen einer Binärzahl in eine Zahl Modulo M

Country Status (9)

Country Link
US (1) US3980874A (de)
JP (1) JPS5932817B2 (de)
BE (1) BE838859A (de)
BR (1) BR7602549A (de)
CA (1) CA1075818A (de)
DE (1) DE2619418C2 (de)
FR (1) FR2310592A1 (de)
GB (3) GB1513102A (de)
NL (1) NL7603875A (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2718849A1 (de) * 1976-05-03 1977-11-10 Burroughs Corp Rechenspeicher mit mehrdimensionalem, parallelem zugriff
DE3326044A1 (de) * 1983-07-20 1985-02-07 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren zur ausfuehrung der galois-feld-multiplikation oder -division und schaltungsanordnung zur durchfuehrung des verfahrens
EP0151459A2 (de) * 1984-02-01 1985-08-14 Hitachi, Ltd. Kodemodulationssystem

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4041284A (en) * 1976-09-07 1977-08-09 The United States Of America As Represented By The Secretary Of The Navy Signal processing devices using residue class arithmetic
US4095275A (en) * 1977-02-14 1978-06-13 Westinghouse Electric Corp. Pulse width modulated sine cosine generator
US4190893A (en) * 1977-11-17 1980-02-26 Burroughs Corporation Modular modulo 3 module
US4202035A (en) * 1977-11-25 1980-05-06 Mcdonnell Douglas Corporation Modulo addressing apparatus for use in a microprocessor
FR2420167B1 (fr) * 1978-03-14 1985-10-04 Constr Telephoniques Systeme de manipulation de champs d'elements binaires
US4189767A (en) * 1978-06-05 1980-02-19 Bell Telephone Laboratories, Incorporated Accessing arrangement for interleaved modular memories
US4187549A (en) * 1978-09-05 1980-02-05 The United States Of America As Represented By The Secretary Of The Navy Double precision residue combiners/coders
US4218587A (en) * 1978-09-18 1980-08-19 Storage Technology Corporation Complex signal generation and transmission
US4433389A (en) * 1978-12-26 1984-02-21 Burroughs Corporation Memory address translation system for accessing memory locations via job names
US4281391A (en) * 1979-01-15 1981-07-28 Leland Stanford Junior University Number theoretic processor
JPS55161281A (en) * 1979-06-01 1980-12-15 Canon Kk Display control unit
US4418394A (en) * 1980-08-13 1983-11-29 Environmental Research Institute Of Michigan Optical residue arithmetic computer having programmable computation module
JPS5936854A (ja) * 1982-08-25 1984-02-29 Matsushita Electric Ind Co Ltd 自然数の剰余数変換装置
US4538238A (en) * 1983-01-18 1985-08-27 Honeywell Information Systems Inc. Method and apparatus for calculating the residue of a signed binary number
US4555769A (en) * 1983-05-25 1985-11-26 International Business Machines Corporation Circuit apparatus for generating modulus-N residues
US4742479A (en) * 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
US4722067A (en) * 1985-03-25 1988-01-26 Motorola, Inc. Method and apparatus for implementing modulo arithmetic calculations
JPS6270936A (ja) * 1985-09-24 1987-04-01 Nec Corp モジユロ3剰余発生器
JPS63200233A (ja) * 1987-02-16 1988-08-18 Fujitsu Ltd 高速並列乗除計算機
JP2553548B2 (ja) * 1987-03-27 1996-11-13 松下電器産業株式会社 乗算剰余演算装置
US4833602A (en) * 1987-06-29 1989-05-23 International Business Machines Corporation Signal generator using modulo means
EP0308963A3 (de) * 1987-09-25 1990-04-25 Kabushiki Kaisha Toshiba Verfahren und Anordnung zum Resterechnen
EP0312030A3 (de) * 1987-10-12 1990-08-29 Sony Corporation Verfahren und Vorrichtung zur Kodierung und Dekodierung von Daten in Residuendarstellung
US5293607A (en) * 1991-04-03 1994-03-08 Hewlett-Packard Company Flexible N-way memory interleaving
US5617538A (en) * 1991-07-02 1997-04-01 Tm Patents, L.P. Message transfer system and method for parallel computer with message transfers being scheduled by skew and roll functions to avoid bottlenecks
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
KR950015177B1 (ko) * 1993-12-06 1995-12-23 한국전기통신공사 사전 계산 테이블을 이용한 모듈로 리덕션 방법
US5623423A (en) * 1994-12-12 1997-04-22 Univ. Of Texas Apparatus and method for video decoding
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7827471B2 (en) * 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US8886898B2 (en) * 2009-08-19 2014-11-11 Oracle America, Inc. Efficient interleaving between a non-power-of-two number of entities
US8930431B2 (en) 2010-12-15 2015-01-06 International Business Machines Corporation Parallel computation of a remainder by division of a sequence of bytes
US8984039B2 (en) 2012-02-06 2015-03-17 International Business Machines Corporation Residue-based error detection for a processor execution unit that supports vector operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3137788A (en) * 1960-11-04 1964-06-16 Emi Ltd Error checking system using residue redundancy

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3316393A (en) * 1965-03-25 1967-04-25 Honeywell Inc Conditional sum and/or carry adder
US3863248A (en) * 1973-01-02 1975-01-28 Univ Sherbrooke Digital compressor-expander
US3882483A (en) * 1973-05-07 1975-05-06 Electronic Associates Code converter system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3137788A (en) * 1960-11-04 1964-06-16 Emi Ltd Error checking system using residue redundancy

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2718849A1 (de) * 1976-05-03 1977-11-10 Burroughs Corp Rechenspeicher mit mehrdimensionalem, parallelem zugriff
DE3326044A1 (de) * 1983-07-20 1985-02-07 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Verfahren zur ausfuehrung der galois-feld-multiplikation oder -division und schaltungsanordnung zur durchfuehrung des verfahrens
EP0151459A2 (de) * 1984-02-01 1985-08-14 Hitachi, Ltd. Kodemodulationssystem
EP0151459A3 (en) * 1984-02-01 1987-03-04 Hitachi, Ltd. Code modulation system

Also Published As

Publication number Publication date
BE838859A (fr) 1976-06-16
JPS5284937A (en) 1977-07-14
NL7603875A (nl) 1976-11-11
DE2619418C2 (de) 1986-05-15
FR2310592B1 (de) 1980-10-31
GB1513102A (en) 1978-06-07
US3980874A (en) 1976-09-14
BR7602549A (pt) 1976-11-16
JPS5932817B2 (ja) 1984-08-11
GB1513103A (en) 1978-06-07
GB1513229A (en) 1978-06-07
CA1075818A (en) 1980-04-15
FR2310592A1 (fr) 1976-12-03

Similar Documents

Publication Publication Date Title
DE2619418A1 (de) Verfahren und vorrichtung zur umwandlung einer binaerzahl in eine zahl modulo m
DE19839627B4 (de) Digitaler Signalprozessor
EP0049216B1 (de) Rechenwerkeinheit mit einer parallelen bidirektionalen Schiebeeinrichtung
DE2247534C3 (de) Additions- und Subtraktionsvorrichtung
DE3609250C2 (de)
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE2364253A1 (de) Schaltungsanordnung fuer mikroprogrammierte geraete der datenverarbeitung
DE2918692A1 (de) Digitalfilter
DE3440680C2 (de)
DE4019646C2 (de) Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung
DE3303269A1 (de) Verfahren und vorrichtung zur division von bcd-zahlen
DE3340362C2 (de)
DE2527153A1 (de) Schnelles numerisches multiplizierwerk, und seine anwendungen
DE3434777A1 (de) Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer
EP0598112B1 (de) Verfahren und anordnung zum bilden der summe einer kette von produkten
DE2727051A1 (de) Einrichtung zur binaeren multiplikation einer zahl mit einer summe aus zwei zahlen
DE2952689C2 (de)
DE2046685A1 (de) Einrichtung zum Konvertieren einer Dezimalzahl in eine Binarzahl
DE2601379C3 (de) Schaltungsanordnung zum Umwandeln virtueller Adressen in reelle Adressen
EP0144568A2 (de) Multiplikationswerk und Verfahren zu dessen Betrieb
DE3302013A1 (de) Divisionsvorrichtung
EP0489952A1 (de) Schaltungsanordnung zur digitalen Bit-seriellen Signalverarbeitung
DE2356078A1 (de) Digitaler multiplizierer
DE1915493C3 (de) Schaltung für Multiplikation nach dem Prinzip der fortgesetzten, stellenversetzten Addition
DE1808159C (de) Einrichtung zur Umsetzung von Dualzahlen in binär codierte Dezimalzahlen in paralleler Darstellung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING.

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee