DE19635110C2 - Generator zum Erzeugen einer Sequenz von Zufallszahlen - Google Patents

Generator zum Erzeugen einer Sequenz von Zufallszahlen

Info

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
Application number
DE19635110A
Other languages
English (en)
Other versions
DE19635110A1 (de
Inventor
William C Wallace
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor 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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE19635110A1 publication Critical patent/DE19635110A1/de
Application granted granted Critical
Publication of DE19635110C2 publication Critical patent/DE19635110C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/58Random or pseudo-random number generators
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial 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:
TABELLE 1 BUS-SIGNALE
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.
DE19635110A 1995-09-01 1996-08-30 Generator zum Erzeugen einer Sequenz von Zufallszahlen Expired - Lifetime DE19635110C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
DE-Z: Elektronik 19/23.9.1987, S. 61-64 *

Cited By (2)

* Cited by examiner, † Cited by third party
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