DE19635110C2 - Generator zum Erzeugen einer Sequenz von Zufallszahlen - Google Patents
Generator zum Erzeugen einer Sequenz von ZufallszahlenInfo
- Publication number
- DE19635110C2 DE19635110C2 DE19635110A DE19635110A DE19635110C2 DE 19635110 C2 DE19635110 C2 DE 19635110C2 DE 19635110 A DE19635110 A DE 19635110A DE 19635110 A DE19635110 A DE 19635110A DE 19635110 C2 DE19635110 C2 DE 19635110C2
- Authority
- DE
- Germany
- Prior art keywords
- processor
- shift register
- generator
- random numbers
- sequence
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/581—Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/58—Indexing scheme relating to groups G06F7/58 - G06F7/588
- G06F2207/583—Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
Description
Die Erfindung betrifft einen Generator zum Erzeugen einer
Sequenz von Zufallszahlen nach dem Oberbegriff des Anspruchs 1.
Es sind Zufallszahlengeneratoren mit einem Schieberegister be
kannt, das linear rückgekoppelt ist, wobei bei Ansteuerung mit einem
Systemtakt der Inhalt des Schieberegisters z. B. nach rechts verschoben
wird. Das niedrigststellige Bit wird bei jedem Schiebevorgang verworfen,
und dafür wird ein neues höchststelliges Bit eingegeben, das mittels ei
ner kombinatorischen Logik aus mehreren Stellen des Registers abgelei
tet wird. Der Inhalt des Schieberegisters oder ein Teil davon kann zu
irgendeinem Zeitpunkt beispielsweise von einem Prozessor abgerufen wer
den, wenn dieser eine Zufallszahl benötigt. Die abgerufenen Zahlen sind
jedoch dann nicht "zufällig genug", wenn der Prozessor kurz nach einem
ersten Abruf bereits eine neue Zufallszahl benötigt.
Ein derartiger Zufallsgenerator gemäß dem Oberbegriff des Anspruchs 1 ist
aus der DE 35 13 916 C2 bekannt.
Aus der DE-Z. Elektronik 19/23.9.1983, S. 61-64, ist es bekannt,
gleichverteilte, sich zwangsläufig wiederholende Pseudo-Zufallszahlen unter
Verwendung deterministischer Rekursionsverfahren zu erzeugen. Diese Pseudo-
Zufallszahlen dienen zur Erzeugung stochastischer Impulsfolgen, wobei eine
Impulsfolge aus den Pseudo-Zufallszahlen durch Herunterzählen eines mit diesen
geladenen Zählers erzeugt wird. Bis der Zähler den Wert Null erreicht, wird eine
Zählersperre gesetzt, und bei Erreichen des Nullwertes wird ein kurzer
Ausgangspuls fester Länge abgegeben. Die Zählersperre erfüllt somit den Zweck,
für den Pseudo-Zufallszahlen entsprechende Zeitintervalle zwischen den
gleichlangen Impulsen zu sorgen.
Aufgabe der vorliegenden Erfindung es ist, einen Generator zum Erzeugen
einer Sequenz von Zufallszahlen nach dem Oberbegriff des Anspruchs 1 zu
schaffen, bei dem die "Zufälligkeit" der bereitgestellten Zahlen erhöht wird.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des
Anspruchs 1 gelöst.
Die Erfindung wird nachstehend anhand eines in den beigefügten
Abbildungen dargestellten Ausführungsbeispiels näher erläutert.
Fig. 1 zeigt ein Blockdiagramm eines Generators zum Erzeugen einer
Sequenz von Zufallszahlen.
Fig. 2 zeigt ein detaillierteres Blockdiagramm des Generators von Fig. 1.
Fig. 3 zeigt ein Blockdiagramm eines Schaltkreises des Generators von
Fig. 2.
Fig. 4 zeigt ein Zustandsdiagramm, das die Arbeitsweise einer
Wartesteuerschaltung des Schaltkreises von Fig. 3 illustriert.
Der in Fig. 1 dargestellte Generator 100 zum Erzeugen einer Sequenz von
Zufallszahlen verwendet ein linear rückgekoppeltes Schieberegister 101, das
sechzehn Bit hält, die vom niedrigststelligen bis zum höchststelligen Bit als b1 bis
616 bezeichnet sind. In Reaktion auf Flanken eines periodischen Taktsignals
SYSCLK, bereitgestellt am Takteingang des Schieberegisters 101, werden die in
dem Schieberegister 101 gehaltenen Bits nach rechts verschoben. Beim
Verschieben nach rechts ersetzt ein Rückkopplungsbit (bf) das höchststellige Bit
b16, während das niedrigststellige Bit b1 verworfen wird. Wenn eine Zufallszahl,
beispielsweise von einem Prozessor 206, benötigt wird, werden die Bits in dem
Schieberegister 101 über einen sechzehn Bit umfassenden lokalen Bus 104 als
Zufallszahl gelesen.
Die Zufallseigenschaft der Bitwerte in dem Schieberegister 101 beruht auf
einer Anzapfschaltung 102, die verwendet wird, um das Rückkopplungsbit bf zu
erzeugen, d. h. bestimmte der in dem Schieberegister 101 gehaltenen Bits werden
einer kombinatorischen Logikschaltung 106 zugeführt und von dieser kombiniert,
beispielsweise mittels einer Exklusiv-
ODER-Schaltungsanordnung, um den Wert des Rückkopplungsbits bf zu
bestimmen. Die Bits b15 und b3 werden beispielsweise kombiniert, um den
Wert des Rückkopplungsbits bf zu bestimmen. Obwohl in Fig. 1 nicht dar
gestellt, kann die kombinatorische Logikschaltung auch die unstabilen
Ausgänge von Ringoszillatoren kombinieren, um die Sequenz von Zufalls
zahlen noch zufälliger zu machen.
Eine Bus-Schnittstelle 202 ist zwischen einem Prozessorbus
204 und einem lokalen Bus 104 des Generators 100 angeordnet, um dem Pro
zessor 206 auf Anforderung durch den Prozessor 206 Zufallszahlen zur
Verfügung zu stellen.
Signalleitungen zwischen der Bus-Schnittstelle 202 und dem Pro
zessorbus 204 sind in der folgenden Tabelle beschrieben:
SYSCLK | Ein periodisches Systemtaktsignal, das über die Bus-Schnittstelle 202 zu dem Generator 100 gelangt, ohne verändert zu werden. |
DATA | Eine Zweirichtungsverbindung für den Transfer von Daten in ein Steuerregister der Bus-Schnittstelle 202 und für den Transfer von Zufallszahlendaten aus dem Generator 100. |
ADR | Adresssignale, erzeugt durch den Prozessor 206. |
R/W | Steuerverbindung, die anzeigt, ob die Adresse auf der ADR-Verbindung eine Leseadresse oder eine Schreibadresse ist. |
WAIT_BUS | Wenn durch die Bus-Schnittstelle 202 angesteuert, fügt diese Wartezustände auf den Prozessorbus 204 ein. |
Die besondere Bedeutung des WAIT_BUS-Signals ergibt sich aus
Fig. 3, welche die Bus-Schnittstelle 202 in Blockform wiedergibt.
Zusätzlich ist Fig. 4 ein Zustandsdiagramm, das die Arbeitsweise einer
Wartesteuerschaltung 304 der Bus-Schnittstelle 202 illustriert.
Gemäß Fig. 3 fordert der Prozessor 206 eine Zufallszahl vom
Generator 100 an, indem er ein Adress-Signal entsprechend der Adresse
des Generators 100 auf dem ADR-Signalabschnitt des Prozessorbusses 204
ausgibt. Eine Decoderschaltung 302 erkennt die Adresse und stellt in
Reaktion darauf ein Steuersignal RND_DCD_ACTIVE bereit. Die Decoder
schaltung 302 liefert das RND_DCD_ACTIVE-Steuersignal an eine UND-Schal
tung 308, wo das RND_DCD_ACTIVE-Signal mit einem WAIT_RND-Signal ver
knüpft wird, das durch eine WAIT_CNTL-Wartesteuerschaltung 304 erzeugt
wird. Wenn das WAIT_RND-Signal und das RND_DCD_ACTIVE-Signal beide an
stehen, wird das WAIT_Bus-Signal von der UND-Schaltung 308 bereitge
stellt.
Wie im einzelnen weiter unten unter Bezugnahme auf Fig. 4
erörtert wird, empfängt die Wartesteuerschaltung 304 das Systemtaktsig
nal SYSCLK. Zusätzlich liefert die Decoderschaltung 302 ein Signal RND
DCD END, das am Ende eines Lesezyklus des Generators 100 erzeugt wird.
Das RND_DCD_ACTIVE-Signal entsperrt auch eine Treiberschaltung 305, um
die Zufallszahl vom Generator 100 auf die Datenleitungen des Prozessor
busses 204 zu bringen.
Die Wartesteuerschaltung 304 arbeitet wie in dem Zustandsdia
gramm der Fig. 4 gezeigt. Wenn die Bus-Schnittstelle 202 erstmalig ini
tialisiert wird, kommt die Wartesteuerschaltung 304 in den Zustand 402.
Dort wird eine mit COUNT bezeichnete lokale Variable auf null initia
lisiert. Die Wartesteuerschaltung 304 bleibt im Zustand 402 bis zum Ende
eines Generatorlesezyklus, wie durch ein RND_DEC_END angegeben, das von
der Decoderschaltung 302 geliefert wird.
An dieser Stelle bewegt sich die Wartesteuerschaltung 304 zum
Zustand 404, in welchem sie das WAIT_RND-Signal bereitstellt. Während
demgemäß die Wartesteuerschaltung 304 im Zustand 404 bleibt, werden
Wartezustände auf dem Prozessorbus 204 eingefügt, wenn die Adresse des
Generators 100 auf dem ADR-Signalabschnitt des Prozessorbusses 204 vom
Prozessor 206 angewählt wird. Die Wartesteuerschaltung 304 bleibt im
Zustand 404, bis eine Anzahl von Zyklen REG_CNT des Systemtaktes SYSCLK
vorübergehen. Das heißt, bei jedem Zyklus des Systemtaktes SYSCLK wird
die lokale Variable COUNT inkrementiert und die Wartesteuerschaltung 304
kehrt zum Zustand 402 erst zurück, wenn COUNT gleich REG_CNT wird. An
diesem Punkt werden keine Wartezustände auf den Prozessorbus 204 einge
fügt, wenn der Prozessor 206 versucht, eine Zufallszahl vom Generator
100 zu lesen.
Die Wartesteuerschaltung 304 erhält REG_CNT von einem durch
den Prozessor 206 programmierbaren REG_CNT_Zählstand-Register inner
halb einer Registerschaltung 306 (in Fig. 3 als "BI_REGS" bezeichnet)
der Bus-Schnittstelle 202. Der Prozessor 206 programmiert das REG_CNT-
Register, indem er einfach den gewünschten REG_CNT-Wert auf die Daten
leitungen des Prozessorbusses 204 plaziert, während die Adresse des REG
CNT-Registers auf die Adressleitungen des Prozessorbusses 204 plaziert
werden und das R/W-Signal des Prozessorbusses 204 in den "Schreib"-Zu
stand gebracht wird. Dies kann beispielsweise mittels einer konventio
nellen in einen Speicher umgesetzten Eingangs-Ausgangsschaltung gesche
hen. Die Decoderschaltung 302 erkennt die Adresse des REG_CNT-Registers
und steuert eine REG ADR-Steuerleitung zu der BI_REGS-Registerschaltung
306 an. In Reaktion darauf liest die BI_REGS-Registerschaltung 306 den
READ_CNT-Wert aus den Datenleitungen des Prozessorbusses 204.
Claims (2)
1. Generator zum Erzeugen einer Sequenz von Zufallszahlen, um
fassend ein linear rückgekoppeltes Schieberegister (101), das eine Viel
zahl von Schieberegister-Bits (b1, . . ., b16) hält und in Reaktion auf ein
periodisches Systemtaktsignal (SYSCLK) die Schieberegister-Bits (b1, . . .,
b16) verschiebt, wobei eines derselben ausgeschoben und ein Rückkopp
lungs-Bit (bf) eingeschoben wird, dessen Wert an einem Rückkopplungsein
gang des Schieberegisters (101) bereitgestellt wird, eine das Rückkopp
lungs-Bit (bf) erzeugende Anzapfschaltung (102, 106), eine Abtastschal
tung (104), die mindestens einen Abschnitt, der Schieberegister-Bits (b1,
. . ., b16) als eine Zufallszahl der Sequenz von Zufallszahlen bereit
stellt, und eine Bus-Schnittstelle (202), die die bereitgestellte Zu
fallszahl einem Prozessor (206) in Reaktion auf die Erfassung eines Pro
zessor-Anforderungssignals zuführt, dadurch gekennzeichnet, daß die
Bus-Schnittstelle (202) eine Wartesteuerschaltung (304) enthält, die das
erfaßte Prozessor-Anforderungssignal empfängt und Wartezustände auf einem
Prozessorbus (204) einführt, wenn das erfaßte Prozessor-Anforderungssig
nal um weniger als eine Minimalzahl von Perioden des Systemtaktsignals
(SYSCLK) nach einem vorhergehenden Prozessor-Anforderungssignal auftritt.
2. Generator nach Anspruch 1, gekennzeichnet durch ein program
mierbares Zählstand-Register, durch welches die Minimalzahl von System
taktsignalen (SYSCLK) aus einem Wert in dem programmierbaren Zählstand-
Register bestimmt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/523,002 US5633816A (en) | 1995-09-01 | 1995-09-01 | Random number generator with wait control circuitry to enhance randomness of numbers read therefrom |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19635110A1 DE19635110A1 (de) | 1997-04-10 |
DE19635110C2 true DE19635110C2 (de) | 2001-06-07 |
Family
ID=24083267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19635110A Expired - Lifetime DE19635110C2 (de) | 1995-09-01 | 1996-08-30 | Generator zum Erzeugen einer Sequenz von Zufallszahlen |
Country Status (3)
Country | Link |
---|---|
US (1) | US5633816A (de) |
KR (1) | KR970016939A (de) |
DE (1) | DE19635110C2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10212605A1 (de) * | 2002-03-21 | 2003-10-16 | Infineon Technologies Ag | Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2842389B2 (ja) * | 1996-07-11 | 1999-01-06 | 日本電気株式会社 | 乱数発生装置 |
US20030118190A1 (en) * | 1998-05-29 | 2003-06-26 | Siemens Aktiengesellschaft | Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit |
US7230600B1 (en) * | 2000-09-28 | 2007-06-12 | Intel Corporation | Repairable memory in display devices |
JP2002268874A (ja) * | 2001-03-07 | 2002-09-20 | Toshiba Corp | 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム |
US7139397B2 (en) * | 2001-07-20 | 2006-11-21 | Stmicroelectronics S.R.L. | Hybrid architecture for realizing a random numbers generator |
DE10216240A1 (de) | 2002-04-12 | 2003-10-30 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung |
US7502815B1 (en) * | 2004-02-20 | 2009-03-10 | Xilinx, Inc. | True random number generator and method of generating true random numbers |
DE102009023112A1 (de) * | 2009-05-28 | 2010-12-02 | Continental Automotive Gmbh | Verfahren zur Überprüfung einer Funktion einer Recheneinheit und Anordnung mit zwei Recheneinheiten |
US20140197865A1 (en) | 2013-01-11 | 2014-07-17 | International Business Machines Corporation | On-chip randomness generation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3513916C2 (de) * | 1984-04-19 | 1994-03-10 | Loire Serel Electronique | Pseudo-Zufallsgenerator |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3675217A (en) * | 1969-12-23 | 1972-07-04 | Ibm | Sequence interlocking and priority apparatus |
US3790768A (en) * | 1972-09-28 | 1974-02-05 | Prayfel Inc | Random number generator |
US4451916A (en) * | 1980-05-12 | 1984-05-29 | Harris Corporation | Repeatered, multi-channel fiber optic communication network having fault isolation system |
US4545024A (en) * | 1983-04-27 | 1985-10-01 | At&T Bell Laboratories | Hybrid natural random number generator |
US4853884A (en) * | 1987-09-11 | 1989-08-01 | Motorola, Inc. | Random number generator with digital feedback |
US4905176A (en) * | 1988-10-28 | 1990-02-27 | International Business Machines Corporation | Random number generator circuit |
US5488376A (en) * | 1994-04-26 | 1996-01-30 | Texas Instruments Incorporated | Transponder interface circuit |
-
1995
- 1995-09-01 US US08/523,002 patent/US5633816A/en not_active Expired - Lifetime
-
1996
- 1996-08-30 DE DE19635110A patent/DE19635110C2/de not_active Expired - Lifetime
- 1996-08-30 KR KR1019960036666A patent/KR970016939A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3513916C2 (de) * | 1984-04-19 | 1994-03-10 | Loire Serel Electronique | Pseudo-Zufallsgenerator |
Non-Patent Citations (1)
Title |
---|
DE-Z: Elektronik 19/23.9.1987, S. 61-64 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10212605A1 (de) * | 2002-03-21 | 2003-10-16 | Infineon Technologies Ag | Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements |
DE10212605B4 (de) * | 2002-03-21 | 2004-09-23 | Infineon Technologies Ag | Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements |
Also Published As
Publication number | Publication date |
---|---|
DE19635110A1 (de) | 1997-04-10 |
KR970016939A (ko) | 1997-04-28 |
US5633816A (en) | 1997-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3300260C2 (de) | ||
DE3300262C2 (de) | ||
DE3300263C2 (de) | ||
DE3300261C2 (de) | ||
DE2556822C2 (de) | Monolithische hochintegrierte Halbleiterschaltung | |
DE68925307T2 (de) | Zeilenspeicher für Geschwindigkeitsumwandlung | |
DE4206286C2 (de) | Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes | |
DE19635110C2 (de) | Generator zum Erzeugen einer Sequenz von Zufallszahlen | |
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
DE69125874T2 (de) | Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben | |
DE2461090A1 (de) | Sende- und empfangsgeraet zur ueberwachung von ereignissen | |
DE2357654A1 (de) | Assoziativspeicher | |
CH657487A5 (de) | Funktionsgenerator zur erzeugung einer anzahl von sich wiederholenden digitalen wellenformen. | |
DE69732727T2 (de) | Signalerkennungsanordnung unter Verwendung von Kadenztabellen | |
DE3411149A1 (de) | Verarbeitungssystem fuer die bildwiedergabe | |
DE69635664T2 (de) | Redundanzstruktur in einer digitalen vermittlungsstelle | |
DE2455440C3 (de) | Verifizierungsanordnung für ein bestimmtes Impulsmuster | |
DE1805623C3 (de) | Prüfeinrichtung für Selbstwählämter mit zentraler elektronischer Steuerung durch einen Rechner | |
DE3633461A1 (de) | Taktsignalgebervorrichtung | |
DE4135278A1 (de) | Verfahren und schaltkreis zum abtasten von tasten fuer ein mikrocomputersystem | |
DE2729361A1 (de) | Speicherschaltung | |
DE60025435T2 (de) | Parallelverarbeitungsvorrichtung und -verfahren | |
DE2718593C2 (de) | ||
DE4122236C2 (de) | Steuereinrichtung für direkten Speicherzugriff | |
DE2017879C3 (de) | Speicheranordnung mit freiem Zugriff |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |