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 mInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/104—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/18—Conversion 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| » :
|(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)
- PatentansprücheVerfahren 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. 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. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß für M eine Primzahl gewählt wird.
- 4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß für M die Zahl 67 gewählt wird.
- 5. Einrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche gekennzeichnet durch einen Addierer zum Addieren zweier Modulo M - Eingänge, wobei609847/0909jeder 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. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der Addierer ein Modulo M - Addierer ist.
- 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. 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. Einrichtung nach einem der Ansprüche 5-8, dadurch gekenn-zeichnet, daß M eine Primzahl ist.609847/0909
- 10. Einrichtung nach Anspruch 9, dadurch gekennzeichnet, daß die Primzahl 67 beträgt.
- 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. Einrichtung nach Anspruch 11, dadurch gekennzeichnet, daß jeder der Modulo M - Addierer einen ersten Binäreingang6 0 9847/0909und 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. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß M eine Primzahl ist.
- 14. Einrichtung nach Anspruch 13, dadurch gekennzeichnet, daß als Primzahl 67 gewählt wird.
- 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
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)
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)
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)
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)
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 |
-
1975
- 1975-05-09 US US05/576,002 patent/US3980874A/en not_active Expired - Lifetime
-
1976
- 1976-02-11 FR FR7603782A patent/FR2310592A1/fr active Granted
- 1976-02-24 BE BE164565A patent/BE838859A/xx unknown
- 1976-04-09 GB GB14561/76A patent/GB1513102A/en not_active Expired
- 1976-04-09 GB GB17051/77A patent/GB1513103A/en not_active Expired
- 1976-04-09 GB GB17052/77A patent/GB1513229A/en not_active Expired
- 1976-04-12 NL NL7603875A patent/NL7603875A/xx not_active Application Discontinuation
- 1976-04-22 CA CA250,788A patent/CA1075818A/en not_active Expired
- 1976-04-23 JP JP51047139A patent/JPS5932817B2/ja not_active Expired
- 1976-04-26 BR BR2549/76A patent/BR7602549A/pt unknown
- 1976-05-03 DE DE2619418A patent/DE2619418C2/de not_active Expired
Patent Citations (1)
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)
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 |