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

Generator zum Erzeugen einer Sequenz von Zufallszahlen

Info

Publication number
DE19635110A1
DE19635110A1 DE19635110A DE19635110A DE19635110A1 DE 19635110 A1 DE19635110 A1 DE 19635110A1 DE 19635110 A DE19635110 A DE 19635110A DE 19635110 A DE19635110 A DE 19635110A DE 19635110 A1 DE19635110 A1 DE 19635110A1
Authority
DE
Germany
Prior art keywords
processor
generator
shift register
sysclk
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.)
Granted
Application number
DE19635110A
Other languages
English (en)
Other versions
DE19635110C2 (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.
Aufgabe der Erfindung ist es, einen Generator nach dem Ober­ begriff des Anspruchs 1 zu schaffen, bei dem die bereitgestellten Zahlen "noch zufälliger" sind.
Diese Aufgabe wird entsprechend dem kennzeichnenden Teil des Anspruchs 1 gelöst.
Die Erfindung wird nachstehend anhand eines in den beigefüg­ ten 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 Genera­ tors 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 Schie­ beregister 101, das sechzehn Bit hält, die vom niedrigststelligen bis zum höchststelligen Bit als b₁ bis b₁₆ bezeichnet sind. In Reaktion auf Flanken eines periodischen Taktsignals SYSCLK, bereitgestellt am Takt­ eingang 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 b₁₆, während das niedrigststellige Bit b₁ verworfen wird. Wenn eine Zufallszahl, bei­ spielsweise 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ück­ kopplungsbit 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 Exklu­ siv- ODER-Schaltungsanordnung, um den Wert des Rückkopplungsbits bf zu bestimmen. Die Bits b₁₅ und b₃ 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 Adreßsignale, erzeugt durch den Prozessor 206.
R/W Steuerverbindung, die anzeigt, ob die Adresse auf der ADR-Verbindung eine Leseadresse oder eine Schreibadresse ist.
WAITBUS 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 266 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 (b₁, . . ., b₁₆) hält und in Reaktion auf ein periodisches Systemtaktsignal (SYSCLK) die Schieberegister-Bits (b₁, . . ., b₁₆) 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 (b₁, . . ., b₁₆) 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 true DE19635110A1 (de) 1997-04-10
DE19635110C2 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
DE10216240A1 (de) * 2002-04-12 2003-10-30 Infineon Technologies Ag Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung

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
DE10212605B4 (de) * 2002-03-21 2004-09-23 Infineon Technologies Ag Verfahren und Vorrichtung zur getakteten Ansteuerung eines Schaltelements
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
DE10216240A1 (de) * 2002-04-12 2003-10-30 Infineon Technologies Ag Verfahren und Vorrichtung zur Berechnung eines iterierten Zustands einer rückgekoppelten Schieberegisteranordnung
US7426528B2 (en) 2002-04-12 2008-09-16 Infineon Technologies Ag Method and device for calculating an iterated state for a feedback shift register arrangement

Also Published As

Publication number Publication date
DE19635110C2 (de) 2001-06-07
US5633816A (en) 1997-05-27
KR970016939A (ko) 1997-04-28

Similar Documents

Publication Publication Date Title
DE3224034C2 (de)
DE3687787T2 (de) Speicherzugriff-steuerungsschaltung.
DE3300263C2 (de)
DE3338345C2 (de)
DE68925307T2 (de) Zeilenspeicher für Geschwindigkeitsumwandlung
DE69026479T2 (de) Datenprozessor mit Wartezustandsteuerungseinheit
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2145120A1 (de) Digitales Datenverarbeitungsgerat
DE4206286C2 (de) Speicherzugriffssystem und Verfahren zum Ausgeben eines digitalen Datenstromes
DE2455803A1 (de) Mehrprozessor-datenverarbeitungsanlage
DE2719247A1 (de) Datenverarbeitungssystem
DE69120765T2 (de) Verfahren zum Datentransfer zu oder von Vorrichtungen über eine Boundary-Scan-Test-Schnittstelle
DE2401995A1 (de) Pruefsystem mit einem feinprogrammierbaren steuerspeicher
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2912287A1 (de) Datenverarbeitungsgeraet
DE3126363A1 (de) Verfahren und vorrichtung zur steuerung einer datenuebertragung mit direktem speicherzugriff
DE69125874T2 (de) Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben
DE19635110A1 (de) Generator zum Erzeugen einer Sequenz von Zufallszahlen
DE19722803A1 (de) Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner
DE4428502A1 (de) Bussystem
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE2720842C3 (de) Datenübertragungssystem
DE4135031C2 (de) Eingabe/Ausgabe-Einrichtung und Verfahren zum Betreiben einer Eingabe/Ausgabe-Einrichtung
DE3938950C2 (de)
DE69031529T2 (de) Speichersteuerungssystem

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