KR100274489B1 - 의사-난수 발생 장치 및 방법 - Google Patents

의사-난수 발생 장치 및 방법 Download PDF

Info

Publication number
KR100274489B1
KR100274489B1 KR1019930014817A KR930014817A KR100274489B1 KR 100274489 B1 KR100274489 B1 KR 100274489B1 KR 1019930014817 A KR1019930014817 A KR 1019930014817A KR 930014817 A KR930014817 A KR 930014817A KR 100274489 B1 KR100274489 B1 KR 100274489B1
Authority
KR
South Korea
Prior art keywords
value
circuit
random number
generating
binary
Prior art date
Application number
KR1019930014817A
Other languages
English (en)
Other versions
KR940004464A (ko
Inventor
마이클지.갤럽
엘.로드니고케
Original Assignee
비센트 비.인그라시아
모토로라 인코포레이티드
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 비센트 비.인그라시아, 모토로라 인코포레이티드 filed Critical 비센트 비.인그라시아
Publication of KR940004464A publication Critical patent/KR940004464A/ko
Application granted granted Critical
Publication of KR100274489B1 publication Critical patent/KR100274489B1/ko

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
    • 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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 의사-난수 발생 방법 및 장치에 관한 것이다.
한 형태로써, 본 발명은 다항식이 의사-난수를 발생하도록 결정하는 프로그램 가능하며 선택가능한 MASK 값을 사용한다.
실행 비율을 증가시켜 의사-난수의 시퀀스 랜덤니스를 개선시키기 위해 의사-난수가 발생되는 동안 MASK 값은 변화될 수 있다. 본 발명은 프로그램 가능한 SEED 값을 사용한다. 초기 SEED 값은 의사-난수를 발생하는데 사용된다. 그때 제 1 의사-난수는 NEW SEED 값으로 사용되여 제 2 의 의사-난수를 발생한다.

Description

의사-난수 발생 장치 및 방법
제1도는 본 발명의 한 실시예에 따른 의사-난수를 발생하는 장치의 블럭 다이어그램.
제2도는 본 발명의 한 실시예에 따른 의사-난수를 발생하는 방법의 플로우 다이어그램.
〈 도면의 주요부분에 대한 부호의 설명 〉
10 : 데이타 처리 시스템 12 : 마스크 레지스터 회로
14 : SEED 레지스터 회로 16 : 시프트 회로
[발명의 분야]
본 발명은 의사-난수(pseudo-random number)에 관한 것으로, 특히, 의사-난수를 발생하는 방법 및 장치에 관한 것이다.
[발명의 배경]
정확한 난수 발생과는 달리, 의사-난수를 발생하는 것은 주어진 동일한 입력 패턴대로 동일한 출력 패턴을 항상 발생한다. 그러나, 정확한 난수가 요구 되지 않고, 의사-난수가 충분한 다양한 응용이 있다. 예를들면, 의사-난수는 데이타 처리 시스템의 테스트 패턴을 발생하는데 사용된다. 또한 의사-난수는 데이타 처리 시스템에서 노이즈를 표시하는데 사용될 수도 있다. 부가적으로, 의사-난수는 계산을 시작하는 난수 시작점으로 작용하는 초기 상태 또는 값을 발생하는데 사용된다. 몇몇 신경 회로망 시스템은 계산을 시작하는 의사 시작점의 이러한 형태를 요구한다. 부가하여, 의사-난수는 데이타 증가 및 감소에 사용될 수도 있다. 또한, 다른 여러 경우에 의사-난수가 사용된다.
현재의 의사-난수 발생기는 의사-난수를 발생하기 위해 선형-피드백 시프트-레지스터(LFSR)를 공통으로 사용한다.
LFSR 는 배타적-OR(XOR) 게이트를 통해 피드백 접속을 갖은 다중-단 시프트 레지스터이다. 마지막 단 및 몇몇 중간 단의 출력은 탭되고 XOR-게이트를 통해 제 1 단에 복귀된다.
레지스터가 좌우로 시프트하면, 제 1 및 마지막 단은 각각 가장왼쪽과 가장 오른쪽에 있다. 현재의 LFSR 에서, 의사-난수를 발생하는데 사용되는 다항 식은 LFSR 의 여러 단으로부터 고정배선된 피드백 접속에 의해 결정된다.
현재의 의사-난수 발생기는, 발생기에 의해 발생되는 수의 시퀀스가 영구적으로 반복하는 특성을 가진다. 그러므로, "시퀀스"는 반복이 발생하기 전에 발생되는 일련의 의사-난수이다. "실행길이(run length)"는 시퀀스에 포함되는 의사-난수의 수이다. 예를 들면, 의사-난수 발생기가 다음의 패턴 2, 6, 1, 2, 6, 12, 6, 1 를 발생하면, 그때 시퀀스는 2, 6, 1 이다. 시퀀스에 3 개의 수가 있기 때문에 실행길이는 3 이 된다. 실행 길이를 증가시키는 것은 시퀀스가 자주 반복되지 않은 것을 보장함으로써 패턴의 "랜덤니스(randomness)"를 개선시킨다.
[발명의 요약]
앞에서 언급된 필요성이 충족되고 다른 장점이 본 발명에 의해 달성된다. 한 형태로서, 본 발명은 의사-난수를 발생하는 장치 및 방법이다.
한 실시예에서, 본 발명은 중간 2 진 값을 발생하도록 제 1 의 2 진 값과 제 2 의 2 진 값을 논리적으로 조합하는 논리 회로를 가진다. 또한, 본 발명은 상기 논리 회로로부터 중간 2 진 값을 수신하며, 중간 2 진 값이 기수의 1을 포함한다면 제 1 의 논리 상태를 갖고, 중간 2 진 값이 우수의 1을 포함한다면 제 2 의 논리 상태를 갖은 2 진 비트를 발생하는 부가적인 논리 회로를 가진다. 상기 논리 회로는 의사-난수의 비트를 결정하기 위한 2 진 비트를 사용한다.
[양호한 실시예의 설명]
프로그램가능한 MASK 값을 사용함으로써, 본 발명은 동일회로가 다른 다항식을 사용하는 의사 난수를 발생하는 것을 허용한다. 그러므로, 고정배선회로는 많은 다른 시퀀스의 의사 난수를 발생할 수 있다. 부가하여, MASK 값은 의사 난수 발생동안 변화될 수 있다. 하나의 MASK 값 이상을 사용함으로써, 실행 길이는 단일 시퀀스의 실행 길이 아래에서 증가될 수 있다.
실제로, 다수의 MASK 값을 사용하는 것은 실행 길이가 증가되는 것을 허용한다. 실행 길이를 증가시키는 것은 시퀀스가 빈번히 반복하지 못하게 보장함으로써 패턴의 "랜덤니스"를 개선시킨다.
제 1 도는 마스크(mask) 레지스터 회로(12), SEED(seed) 레지스터 회로(14), 시프트 회로(16), 제어 논리 회로(18), 논리 유닛 회로(20), 완즈-탤리(ones-tally) 회로(22), 버스(24, 26, 28)를 갖은 디지탈 데이타 처리 시스템(10)을 도시한다.
마스크 레지스터(12)는 버스(26), 버스(28) 및 제어 논리 회로(18)에 접속된다. 시프트 회로(16)는 논리 유닛회로(20), 완즈-탤리회로(22), 버스(24), 및 제어 논리 회로(18)에 접속된다. 명령 페치 회로(30)는 명령 디코드 회로(32)에 접속된다. 명령 디코드 회로(32)는 제어 논리 회로(18)에 접속된다. 명령 페치 회로(30)는 명령을 수신한다.
명령 페치 회로(30)에 의해 수신된 명령은 데이타 처리 시스템(10)의 일부 또는 데이타 처리 시스템(10)의 외부인 메모리(도시되지 않음)로부터 나올수 있는 것에 유의하기로 한다.
본 발명의 동작은 지금부터 기술하기로 한다. 제 1 도를 참조하면, 마스크 레지스터 회로(12)에 저장된 값은 "MASK"로 불리운다. 프로세스의 초기에서 SEED 레지스터 회로(14)에 저장된 값은 "SEED"로 불리운다. 프로세스의 마지막에서 SEED 레지스터 회로(14)에 저장된 값은 "NEN SEED"로 불리운다. 각각의 비트 또는 비트 필드는 브레킷 내에 표시된다.
예를들면, SEED[7:1]는 SEED값을 포함하는 7 개의 비트 내지 1 개의 비트를 의미한다.
완즈-탤리 회로(22)에 의해 수행되는 기능은 "ONES-TALLY"로 불리운다. 본질적으로, ONES-TALLY 동작은 2 진수에서 1 의 수를 카운트 또는 탤리한다.
예를들면, ONES-TALLY(1101)는 2 진수 1101 에서 3 개의 1 이 있기 때문에 3 과 동일하다.
완즈-탤리 회로(22)의 4-비트 출력은 OT[3:0]으로 불리운다.
완즈-탤리회로(22)의 출력중 최소한의 유효 비트는 OT[0]로 불리운다.
표 1 에서 다음 단계를 사용하면, 의사-난수는 본 발명의 한 실시예에 따라 발생된다. 표 1 에서 3 단계 각각은 플로우 다이어그램에서 구형박스로 제 2 도에 도시된다. 각 단계가 수행되는 도시된 예에 2 진수는 포한된다.
구 SEED 및 NEW SEED 포함하는 SEED 값은 의사 난수 시퀀스에서 각각의 수를 표시한다.
제 1 도와 관련하면 의사-난수를 발생하는 상기 3 단계의 각 단계는 지금 부터 상세히 기술하기로 한다.
제 1 단계는 SEED 레지스터(14)의 SEED 값이 마스크 레지스터(12)의 MASK 값에 AND 되는 단순한 논리 AND 동작이다.
MASK 값은 버스(26)를 가로질러 논리 유닛 회로(20)에 전달된다.
SEED 값은 버스(24)를 가로질러서 시프트 회로(16)를 통해 논리 유닛회로(20)에 전달된다. 제 1 단계에서, 시프트 회로(16)는 임의의 시프팅 기능을 수행하지 못하며, 단지 버스(24)에서부터 논리 유닛회로(20)로 SEED 값을 통과시킨다. 본 발명의 도시된 실시예에서, MASK 값 및 SEED 값이 각각 8-비트 일지라도, N 비트중 편리한 임의의 수가 사용된다. 제어 논리 회로(18)의 제어하에서, 논리 유닛 회로(20)는 SEED 값 및 MASK 값을 AND 하여, 나머지 8-비트(SEED & MASK)를 완즈-탤리 회로(22)로 출력한다. 이로써 제 1 단계는 종료한다.
제 2 단계는 ONES-TALLY 동작이다. 동작은 2 진수에서 1 의 진수를 카운트 또는 탤리한다. 예를들면, 완즈-탤리 (10011010)는 2 진수 10011010 에서 4개의 1 이 있기 때문에 4 와 동일하나 완즈-탤리 회로(22)의 4-비트 출력은 OT[3 : 0] 으로 불리운다. 완즈-탤리 회로(22)의 출력중 최소한 유효 비트는 OT[0]으로 불리운다. 완즈-탤리 회로(22)의 출력중 최소한의 유효 비트만이 본 발명의 도시된 실시예에 사용된다.
완즈-탤리회로(22)에 의해 출력된 비트 1, 2 및 3 는 도시된 실시예에 사용되지 않는다. 완즈-탤리 회로(22)는 종래 기술에 숙달된 사람에게 공지되있고, 가산기 셀 또는 XOR-게이트를 사용하는 것과 같은 임의의 이용가능한 방법으로 실행될 수도 있다. 이로써 제 3 단계는 종료한다.
제 3 단계는 NEW SEED 를 발생하는 것과 구 SEED 값을 NEW SEED 값으로 대체하는 것으로 구성된다. 제 1 단계에 기술된 바와 같이, SEED 값은 버스(24)를 가로질러 시프트 회로 (16)를 통해 전달된다. 그러나, 제 1 단계와 달리, 시프트 회로(16)가 버스(24)로 부터 논리 유닛 회로(20)로 SEED 값을 통과시킬때 시프트 회로(16)는 시프팅 기능을 수행한다. 시프트 회로(16)는 SEED 값 1 비트씩 각 비트를 오른쪽으로 시프트시킨다. 즉, 효율적으로 구 SEED[7]를 NEW SEED[6]로, 구 SEED[6]를 NEW SEED[5]로, 구 SEED[5]를 NEW SEED[4]로, 구 SEED[4]를 NEW SEED[3]로, 구 SEED[3]를 NEW SEED[2]로, 구 SEED[2]를 NEW SEED[1]로, 구 SEED[1]를 NEW SEED[0]로 시프트한다.
old SEED, SEED[0]중 최소한 유효 비트는 NEW SEED 값을 발생하는데 필요하지 않고 무시될 수 있는 것에 유의하기로 한다. 완즈-탤리 회로(22)의 출력으로부터 최소한의 유효 비트 OT[0]는 NEW SEED 값의 최대 유효 비트 만큼 시프트된다. 그러므로, NEW SEED 값은 구 SEED 값을 1 비트씩 오른쪽 시프팅하여 NEW SEED 값의 최대 유효 비트로 OT[0]를 삽입함으로써 발생된다.
본 발명의 선택적 실시예에서, NEW SEED 값은 구 SEED 값을 1 비트씩 좌로 시프트하며 NEW SEED 값의 최소한 유효 비트로 OT[0]를 삽입함으로써 발생된다. 좌 시프트 기능은 가산기에 의해 수행된다. 예를 들면, 가산기는 캐리-인 입력으로 OT[0]를 사용하는 구 SEED 값을 구 SEED 값에 부가할 수 있다. 시프트 회로(16) 및 논리 회로(20)는 산술 논리 유닛(ALU)를 형성하도록 조합된다.
제 3 단계에 있어서, 논리 유닛 회로(20)는 임의의 논리 동작을 수행할 수 없으며, 단지, 시프트 회로 NEW SEED 값은 SEED 레지스터(14)에 기록된다. 본 발명의 도시된 실시예에서, NEW SEED 값은 SEED 레지스터(14)의 구 SEED 값을 중복기록한다.
이로써 제 3 단계는 종료한다.
논리 유닛회로(20)는 NEW SEED 값을 통해 다양한 방법으로 통과시킬 수도 있다. 본 발명의 몇몇 실시예에서, 논리 유닛 회로(20)는 논리 AND 동작에 따로 논리 동작을 수행 할 수도 있다. 본 발명의 다른 실시예에서, 논리 유닛 회로(20)는 논리 및 산술 동작을 수행할 수 있는 산술 논리 유닛(ALU)일 수도 있다.
논리 유닛 회로(20)가 임의의 동작을 수행하는 것 없이도 NEW SEED 값을 통과시킨다 할지라도, 논리 유닛 회로(20)는 출력되는 NEW SEED 값을 변화시키는것 없이 논리 또는 산술 동작을 수행할 수도 있다. 예를들면, 논리 유닛 회로(20)는 모든 1 로 NEW SEED 값을 AND 할 수도 있으며, 모든 0 으로 NEW SEED 값을 OR 할 수도 있다. NEW SEED 값을 OR 할 수도 있다. 논리 유닛 회로(20)는 제 2 오퍼랜드로 전체 제로를 사용하는 부가 또는 감산 동작을 수행할 수도 있다.
구 SEED 값은 의사-난수의 시퀀스에서 하나의 수이다.
표 1 에 도시된 3 단계 처리에 의해 발생되는 NEW SEED 값은 의사-난수의 시퀀스에서 다음 수이다. 그때 NEW SEED 값은 의사-난수의 시퀀스에서 다음수를 발생하는데 사용되는 구 SEED 값이다. 그러므로, 각 SEED 값은 의사-난수의 시퀀스에서 다음수를 발생하는데 사용된다. 가장 새로운 의사-난수인 NEW SEED 값은 데이타 처리 시스템(10)의 다른 부분에 전송될 수도 있으며 또는 버스(24)및, 버스(24)에 결합된 다른 추가된 버스(도시되지않음)에 의해 데이타 처리시스템(10)의 외부로 전송될 수도 있다.
제 1 도와 관련하여, 본 발명의 도시된 실시예에서 다음 의사-난수를 발생하기 위해 시프트 회로(16) 및 논리 유닛 회로(20)를 통한 두개의 경로(pass)가 요구된다. 제 1 경로에서, 논리 유닛 회로(20)는 사용되나 시프트 논리 회로(16)는 사용되지 않는다. 제 2 경로에서, 시프트 논리 회로(16)가 사용되나 논리 유닛 회로(20)는 사용되지 않는다.
완즈-탤리 회로(22)는 시프트 회로(16) 및 논리 유닛 회로(20)를 통하는 경로사이에만 사용된다. 마스크 레지스터(12)에 기어된 MASK 값은 시프트 회로(16) 및 논리 유닛 회로(20)를 통한 제 1 경로에서만 사용된다.
버스(28)를 사용하면, 사용자는 소정의 SEED 값을 시드 레지스터(14)에 로드한다. 일단 사용자가 초기 SEED 값을 시드 레지스터(14)로 프로그램하면, SEED 레지스터(14)에 기억된 SEED 값은 표 1 에 기술된 의사-난수 발생처리에 의해 연속적으로 갱신된다. 그러나, 필요하지 않다면, 사용자는 버스(28) 양단 새로운 값을 로딩시킴으로써 시드 레지스터(14)의 SEED 값을 변화시킨다.
또한 버스(28)를 사용하면, 사용자는 소정의 MASK 값을 마스크 레지스터(12)에 로드시킬 수 있다. 일단 사용자가 초기 MASK 값을 마스크 레지스터(12)에 프로그램하면, 마스크 레지스터(12)에 기억된 MASK 값은 표 1 에 기술된 의사-난수 발생 처리에 의해 변화 또는 영향받지 않는다. 그러나, 필요하지 않다면, 사용자는 버스(28) 양단에 새로운 값을 로딩시킴으로써, 마스크 레지스터(12)의 MASK 값을 변화시킨다.
프로그램 제어하에서, MASK 값은 어느 다항식의 의사-난수 발생에 사용되는 선택하는데 사용된다. MASK 값은 다항식에 포함되지 않은 전체 비-제로 SEED 계수를 제외한 제로에 사용된다. 2 진 제로 값을 갖는 MASK 의 각 비트 위치에 있어서, 다항식의 대응계수는 사용되지 않는다. 이진 1 값을 갖는 MASK 의 각 비트 위치에 있어서, 다항식의 대응 계수가 사용된다.
그러므로, 한 다항식에만 고정 배선되는 종래 기술에 따른 선형-피드백 시프트 레지스터와는 달리, 본 발명은 프로그램 제어하에서 사용자가 임의로 가능한 다항식을 선택하는 것을 허용한다. 그러므로, 사용자는 하나의 의사-난수 시퀀스 보다 다수의 의사-난수 시퀀스를 발생할 수 있다.
프로그램 제어하에서 마스크에 대한 초기 값을 선택하는 것에 부가하여, 의사-난수 시퀀스가 발생되는 동안 마스크 레지스터(12)의 MASK 값을 사용자가 변화하는 것을 허용한다.
MASK 값을 변화시키는 것은 의사-난수를 발생하는데 사용되는 다항식을 변화시키는 효과를 가진다. 그리고, 시퀀스를 반복하기 전에 의사-난수의 시퀀스를 변화하는 것은 시퀀스를 연장하는 효과를 가진다.
그러므로, 전체 시퀀스를 반복하기 전에 MASK 값을 연속적으로 변화시킴으로써 전체 시퀀스의 실행 길이는 길게 연장될 수 있다. 이러한 것은 전체 시퀀스가 반복되지 않게 함으로써 전체 시퀀스의 랜덤니스를 개선시키킨다. 이것이 본 발명의 유효한 장점이다.
종래 기술에 따른 전형-피드백 시프트 레지스터(LFSR)의 실행길이는 2N-1 의사-난수보다 더 크지 않으며, 여기서 N 는 LFSR 의 스테이지 수이다. 단일 MASK 값을 사용하는 본 발명의 실행 길이는 2N-1 의사-난수 만큼 많으며, 여기서 N 는 SEED 값에서의 비트수이다. 그러나, 의사-난수가 발생하는 동안 MASK 값을 변화시킴으로써, 본 발명의 실행 길이는 종래 기술에 따른 LFSR 의 2n-1 제한 아래에서 크게 증가될수 있다. MASK 값을 MASK 값의 끝에서 변화시키는 개념을 실행하면, 사용자는 의사-난수가 발생될 때마다 마스크 값을 변화시킴으로써 다른 다항식을 선택할 수 있다.
표 1 에 기술된 3 개의 단계는 데이타 처리 시스템 (10)에 의해 실행될 수 있는 하나의 명령을 형성할 수도 있다.
그러므로, 상기 하나의 명령은, 새로운 의사-난수가 발생될 때마다 실행된다. 그래서, "M" 의사-난수를 발생하기 위해 상기 하나의 명령은 M 번 실행된다. 이러한 하나의 명령은 소프트웨어 루프의 일부로써 사용될 수도 있으며, 상기 소프트웨어 루프는 상기 명령이 선택된 횟수만큼 실행하는 것을 허용한다.
선택적으로, 각각의 3 단계 또는 3 단계의 일부는 표 1 에 기술된 3 단계를 수행하기 위해 사용될 수도 있는 하나 이상의 명령으로 분할될 수도 있다.
한 명령은, 비트 필드의 형태로써 표 1 의 3 단계가 얼마나 많이 반복되는 가를 표시하고 의사-난수가 명령의 한 수행을 위해 얼마나 발생되는 가를 표시하는 파라미터를 포함할 수도 있다. 그러므로 한 명령은 다수의 의사-난수를 발생하는데 사용될 수도 있다.
SEED 값 및 MASK 값은 표 1 에 기술된 3 단계를 수행하는 명령의 아귀먼트로써 사용될 수 있다. 명령은 필드로써 SEED 값을 포함하며, 필드로써 MASK 값을 포함할 수도 있다. SEED 및 MASK 값이 명령의 일부분이라면, 마스크 레지스터 (12) 및 SEED 레지스터(14)는 명령 필드의 일시적 기억 장소로 동작할 수도 있다.
선택적으로, 데이타 레지스터 0 및 데이타 레지스터 1 과 같은 두 레지스터 장소는 표 1 에 기술된 3 단계를 수행하는 명령에 대한 아귀먼트로써 사용될 수도 있다. 이러한 경우, 표시된 두 레지스터는 SEED 및 MASK 의 필요한 값으로 프리로드된다. 선택적으로 표 1 에서 3 단계를 수행하는 명령은 임의의 아귀먼트를 요구하지 않을 수도 있다. 그러나, SEED 값으로써 제 1 의 소정의 기억 장소에 기억된 현재의 값 및, MASK 값으로써 제 2 의 소정의 기억 장소에 기억된 현재의 값을 사용할 수도 있다.
지금부터 양호한 실시예를 기술하기로 한다. 양호한 실시예에서, "RAND" 명령을 표 1 에 도시된 3 단계를 수행함으로써 의사 난수를 발생하는 데 사용된다. RAND 명령은 두개의 아귀먼트를 포함한다. 제 1 아귀먼트는 SEED 값을 포함하는 레지스터의 장소를 결정하는데 사용되는 소스 레지스터 식별기이다. 제 2 아귀먼트는 MASK 값을 포함하는 레지스터의 장소를 결정하는데 사용되는 소스 레지스터 식별기이다. 양호한 실시예에서, 마스크 레지스터(12) 및 SEED 레지스터(14)는 다수의 목적 데이타 레지스터 중 하나이며, NEW SEED 값은 표시된 시드 레지스터(14)에서 SEED 값을 고쳐쓰는데 사용된다.
양호한 실시예에서, 시프트 회로(16) 및 논리 유닛회로 (20)에 의해 수행되는 기능성은 시프트 동작을 수행할 수 있는 멀티플렉싱 능력을 입력에서 갖는 산술 논리 유닛(AUL)(도시되지 않음)에 결합된다. 완즈-탤리 회로(22)는, 5 개의 전(full) 가산기 회로를 사용하여 이행된다.
RAND 명령은 명령 페치 회로(30)에 의해 내부 또는 외부 메모리(도시 되지 않음)중 하나로부터 페치된다. 명령 디코드 회로(32)는 RAND 명령을 디코드하여 적절한 제어 정보를 제어 논리 회로(18)에 전달한다. 그때, 제어 논리 회로(18)는 RAND 명령을 수행하기 위해 적절한 제어 신호를 전달한다. 양호한 실시예에서, 우 시프트(right shift)는 수행되며, OT[0] 비트는 NEW SEED값의 최대 유효 비트의 논리 상태를 결정하는데 사용된다.
요약하면 상기 명세서는 의사-난수를 발생하는 방법 및 장치를 기술한다. 본 발명은 프로그램 제어하에서 사용자가 다항식을 의사-난수를 발생하는데 사용되도록 결정하는 MASK 값을 선택하는 것을 허용한다. 실제로, 사용자는 의사-난수가 실행 길이를 증가시키도록 발생되는 동안 MASK 값을 변화할 수 있으며, 발생되는 의사-난수의 시퀀스 랜덤니스를 개선할 수 있다.
본 발명은, 프로그램 제어하에서 사용자가 초기 SEED값을 선택하는 것을 허용한다. 초기 SEED 값은 제 1 의 의사-난수를 발생하는데 사용된다. 그때 제 1 의 의사-난수는 NEW SEED 값으로 사용되어 제 2 의 의사-난수를 발생한다.
의사-난수를 발생하는 처리가 MASK 또는 SEED 값 중 하나를 사용자가 변화시키는 것을 요구하지 않을지라도, 사용자는 의사-난수가 발생되는 동안 MASK 값 또는 SEED값의 변화를 요구한다.
제 1 도에 도시된 본 발명의 한 실시예에서, 시프트 회로(16), 논리 회로(20), 완즈-탤리 회로(22), 버스(24, 26, 28) 및, 제어 논리 회로(18)의 일부는 본 발명에 관계하지 않은 다른 기능을 위해 데이타 처리 시스템(10)에 의해 사용된다.
마스크 레지스터(12) 및 SEED 레지스터(14)는 일반적인 목적 데이타 레지스터로써 존재한다. 그러므로, 완즈-탤리 회로(22)로부터 제어 논리 회로(18) 및 피드백 통로의 일부를 시프트 회로(16)에 추가함으로써, 데이타 처리 시스템 (10)은의사-난수를 발생하는 부가적인 기능을 수행할 수 있다.
본 발명은 특정 실시예를 참조하여 도시되고 기술되었지만, 종래 기술에 숙달된 사람에게는 수정 및 변형이 가능하다. 예를들면, 다양한 회로가 제 1 도에 도시된 회로(12, 14, 16, 18, 20, 22) 대신에 사용될 수도 있다. 버스(24, 26, 28)는 양-방향 버스에 결합되거나 또는 각각의 버스로 더 분할 될 수도 있다. 다른 회로 및 논리 회로(도시되지 않음)는 데이타 처리 시스템(10)에 포함 될 수도 있으며, 여러 버스에 결합될 수도 있다.
완즈-탤리 회로(22)의 버스 1~3 는 필요하지 않음으로 본 발명의 선택적 실시예는 이들 비트를 발생하지 않는다.
예를들면, 두 입력 XOR-게이트(도시되지 않음)의 네트워크는 OT[3:1]를 출력하는것 없이 그리고 적은수의 회로를 사용하여 OT[0]를 발생하는데 사용될 수도 있다. OT[0]는 2 진수에서 1 의 총수가 우수인지 기수인지 표시한다. OT[0]를 발생할 때 완즈-탤리 회로(22)에 의해 수행된 기능은 패리티 기능과 동일하다. 그러므로 완즈-탤리 회로(22)는 패리티 회로로 대체될 수도 있다. 2 진수에서 1 의 총수가 기수이면, OT[0]는 1 이고, 2 진수에서 1 의 총수가 우수이면, OT[0]는 제로이다.
OT[0](OT[0]의 상보성 값)는 NEW SEED 값을 발생할 때 OT[0] 대신에 사용될 수도 있다. OT[0] 대신에 OT[0]를 사용하는 것은 다른 NEW SEED 값을 발생한다. 그러나, 발생된 NEW SEED 값은 여전히 의사-난수이다.
(SEED & MASK) [(SEED & MASK)의 상보성 값]는 NEW SEED 값을 발생할 때 (SEED & MASK) 대신에 사용될 수도 있다.
(SEED & MASK)는 논리적으로 SEED 와 MASK 를 OR 한 것과 등가인 부린 논리(Boolean logic)이다. 그러므로, 오퍼랜드로써 SEED 및 MASK 를 사용하는 논리 AND 동작을 수행하는 단계는, 오퍼랜드로써 SEED 및 MASK 를 사용하는 논리 OR 동작을 수행하는 단계로 대체될 수도 있다. 그러므로, 논리 유닛 회로(20)는 논리 AND 동작보다도 오히려 논리 OR 동작을 수행할 수도 있다. 그러나, 양쪽의 경우, 논리 유닛 회로(20)는 SEED 값 및 MASK 값의 트루 또는 상보성 값중 하나의 논리 결합을 수행한다.
(SEED & MASK) 및 (SEED OR MASK)에 부가하여, 논리 기능 및 상보성 또는 비-상보성 값이 다른 결합(SEED & MASK), (SEED & MASK), (SEED & MASK), (SEED OR MASK), (SEED OR MASK), 또는(SEED OR MASK)이 사용될 수 있다.
제 1 도에 도시된 본 발명의 한 실시예는, 완즈-탤리 회로(22)를 구현하기 위해 5 개의 전-가산기 단을 사용한다.
왜냐하면, 완즈-탤리 회로(22)의 전체 4 개의 비트 출력은 데이타 처리 시스템(10)의 관련되지 않은 기능(도시되지 않음)을 위해 요구되기 때문이다. 본 발명의 한 실시예에서 완즈-탤리 회로(22)는 XOR-게이트(도시되지 않음) 및 NAND 게이트(도시되지 않음)사용하여 구현된다.
본 발명의 선택적 실시예에서, 완즈-탤리 회로(22)는 완즈-탤리 기능을 발생하는 게이트의 임의의 결합을 사용하여 구현될 수도 있다. "N"이 완즈-탤리 회로(22)에 입력된 비트수이고, N 이 2 의 제곱이라고 가정하면, 제 1 도에 도시된 완즈-탤리회로(22)는 [log2(N)] + 1 비트 수를 발생한다. N = 8 비트를 사용하는 SEED 값에 있어서, 완즈-탤리 회로(22)에 의해 출력된 비트수는 [log2(8)] + 1 비트, 또는 3 + 1 비트, 또는 4 비트이다.
제 1 도에 도시된 본 발명의 실시예가 8-비트 MASK-값을 사용한다 할지라도, MASK 값은 임의의 비트수일 수도 있다. 마찬가지로, 제 1 도에 도시된 본 발명의 실시예가 8-비트 SEED 값을 사용한다할지라도, SEED 값은 임의의 비트 수 일수도 있다. MASK 값의 비트수는 SEED 값의 비트보다 많거나, 적거나, 또는 동일할 수도 있다. 그러나, SEED 값에서 보다 MASK 값에서 비트수가 더 많다면, 여분의 MASK 값 비트는 아무런 영향을 미치지 못한다. 그리고, SEED 값에서 보다 MASK 값에서 비트수가 적다면, 부족한 MASK 값 비트는 임의의 비-제로 SEED 계수를 제외하고 제로에 사용될 수 없다.

Claims (5)

  1. 의사 난수(pseudo-random number)를 발생하는 장치에 있어서, 제 1 의 2진 값과 제 2 의 2진 값을 논리적으로 조합하여 중간 2진 값을 발생하는 제 1 회로와, 상기 제 1 회로와 결합되어, 상기 제 1 회로로부터 중간 2진 값을 수신하고, 상기 중간 2진 값이 기수개의 1을 포함하는 경우 제 1 논리 상태를 갖고 상기 중간 2진 값이 우수개의 1을 포함하는 경우 제 2 논리 상태를 갖는 2진 비트를 발생하며, 상기 2진 비트를 이용하여 의사 난수의 비트를 결정하는 제 2 회로를 포함한 의사 난수 발생 장치.
  2. 다수의 레지스터 및 제어 신호를 발생하는 회로와 접속되어 논리 조합 기느을 수행하는 회로를 구비한 데이타 처리 시스템에서 의사 난수값을 발생하는 방법에 있어서, 제 1 값을 나타내는 다수의 제 1 전기 신호를 다수의 레지스터중 제 1 레지스터로부터 제 1 버스로 전송하는 단계와, 제 2 값을 나타내는 다수의 제 2 전기 신호를 다수의 레지스터중 제 2 레지스터로부터 제 2 버스로 전송하는 단계와, 제 1 값을 나타내는 다수의 제 1 전기 신호와 제 2 값을 나타내는 다수의 제 2 전기 신호를 논리적으로 조합하여 중간값을 발생하는 단계와, 상기 중간값의 2진화 표시에서 1의 개수가 기수이면 제어 신호를 제 1 논리 상태로 배치하는 단계 및, 제 1 값과 제어 신호에 기초하여 의사 난수를 발생하는 단계를 포함한 의사 난수값 발생 방법.
  3. 디지탈 데이타 프로세서를 동작시키는 방법에 있어서, 명령을 디코딩하는 단계와, 상기 명령의 상기 디코딩에 응답하여,
    1) 제 1 기억 회로로부터 제 1 값을 검색하는 단계와,
    2) 제 2 기억 회로로부터 제 2 값을 검색하는 단계와,
    3) 상기 제 1 값 및 상기 제 2 값을 논리적으로 조합하여 중간값을 발생하는 단계와,
    4) 상기 중간값의 2진화 표시에서 1의 개수가 기수인 경우 2진 비트를 제 1 논리 상태로 배치하는 단계 및,
    5) 제 1 값 및 2진 비트에 기초하여 의사 난수를 발생하는 단계를 수행하는 단계를 포함하는 디지탈 테이타 프로세서를 동작시키는 방법.
  4. 의사 난수를 발생하는 장치에 있어서,
    제 1 의 2진 값을 기억하는 제 1 기억 회로와,
    제 2 의 2진 값을 기억하는 제 2 기억 회로와,
    제 1 의 2진 값과 제 2 의 2진 값을 논리적으로 AND하여 중간 2진 값을 생성하는 AND 회로로서, 상기 제 1 기억 회로 및 상기 제 2 기억 회로와 결합된 상기 AND 회로 및, 상기 AND 회로로부터 중간 2진 값을 수신하여, 상기 중간 2진 값이 기수개의 1을 포함하는 경우, 2진 비트를 제 1 논리 상태로 배치하는 논리 회로로서, 제 1 의 2진 값과 2진 비트를 이용하여 의사 난수를 발생하는 상기 논리 회로를 포함한 의사 난수 발생 장치.
  5. 의사 난수를 발생하는 장치에 있어서, 이전에 발생된 의사 난수를 기억하는 기억 회로와, 마스크 값을 기억하는 프로그램가능한 레지스터 회로 및, 이전에 발생된 의사 난수를 수신하기 위해 상기 기억 회로와 결합되고 마스크 값을 수신하기 위해 상기 프로그램가능한 레지스터 회로와 결합된 회로로서, 마스크 값을 이용하여 이전에 발생된 의사 난수의 어느 비트가 마스크되는지를 선택하고, 상기 이전에 발생된 의사 난수 및 마스트 값에 기초하여 의사 난수를 발생하는 회로를 포함하는 의사 난수 발생 장치.
KR1019930014817A 1992-08-05 1993-07-31 의사-난수 발생 장치 및 방법 KR100274489B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92498492A 1992-08-05 1992-08-05
US924,984 1992-08-05

Publications (2)

Publication Number Publication Date
KR940004464A KR940004464A (ko) 1994-03-15
KR100274489B1 true KR100274489B1 (ko) 2000-12-15

Family

ID=25451032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930014817A KR100274489B1 (ko) 1992-08-05 1993-07-31 의사-난수 발생 장치 및 방법

Country Status (3)

Country Link
EP (1) EP0582083A1 (ko)
JP (1) JPH06103035A (ko)
KR (1) KR100274489B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5910956A (en) * 1996-11-05 1999-06-08 Northrop Gruman Corporation Random time interval generator
JP2003122560A (ja) * 2001-10-17 2003-04-25 Oki Electric Ind Co Ltd 乱数発生システム及び乱数発生方法
US9201629B2 (en) * 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US10761809B1 (en) * 2020-03-12 2020-09-01 Katholieke Universiteit Leuven Random number generator
CN116132084A (zh) * 2022-09-20 2023-05-16 马上消费金融股份有限公司 视频流处理方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62195572A (ja) * 1986-02-21 1987-08-28 Mitsubishi Electric Corp 半導体テスト装置
JPH03214809A (ja) * 1990-01-19 1991-09-20 Nec Corp リニアフィードバック・シフトレジスタ

Also Published As

Publication number Publication date
JPH06103035A (ja) 1994-04-15
KR940004464A (ko) 1994-03-15
EP0582083A1 (en) 1994-02-09

Similar Documents

Publication Publication Date Title
US5258936A (en) Method and apparatus for generating pseudo-random numbers
JP2598866B2 (ja) 制御可能な重み付き2進シーケンスを発生するための回路
US5416783A (en) Method and apparatus for generating pseudorandom numbers or for performing data compression in a data processor
JP5266354B2 (ja) ガロア拡大体・積算/積算加算・積和演算装置
JP2937919B2 (ja) 疑似乱数発生回路
US7519795B2 (en) Method and system for performing permutations with bit permutation instructions
US20050097153A1 (en) Pseudorandom number generator
WO2011141726A2 (en) Conditional compare instruction
WO2012016588A1 (en) Bit sequence generator
JPS59125437A (ja) ハツシユ回路
JP2002040933A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
KR100274489B1 (ko) 의사-난수 발생 장치 및 방법
Stroele A self-test approach using accumulators as test pattern generators
US9619206B2 (en) Pseudo-random bit sequence generator
KR20000000772A (ko) 길쌈부호 생성기 및 이를 내장한 디지털 신호프로세서
US8909510B2 (en) LFSR emulation
WO2021038356A1 (en) Non-linear feedback shift register
US6047364A (en) True modulo addressing generator
JP5101253B2 (ja) ランダムエラー発生装置、m系列発生回路及びその設計方法
Cavanagh Verilog HDL design examples
JP3913921B2 (ja) 有限フィールドでの任意要素の逆数具現回路
CN109947391B (zh) 一种数据处理方法和装置
Sarkar et al. The set of reversible 90150 cellular automata is regular
US5691930A (en) Booth encoder in a binary multiplier
EP0936537A1 (en) Cyclic redundancy check in a computer system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070718

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee