(57)【要約】【課題】ランダム性を確保しつつ省電力化を図ることができる乱数発生装置を提供すること。【解決手段】乱数発生装置１００は、電源投入後に最初に起動された場合には、カウンタ１３０の値を保持し、それ以外の時には停止指示のあったときのＭ系列カウンタ１２０の値を保持するレジスタ１５０を備え、Ｍ系列カウンタ１２０は、レジスタ１５０出力値を初期値としてその値から計数を行い、Ｍ系列カウンタ１２０を必要なときだけ動作させる。【選択図】図１
2009294873.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ系列を生成するＭ系列カウンタと、
前記Ｍ系列カウンタのカウント期間を計数するカウンタと、
前記Ｍ系列カウンタ及び前記カウンタを起動する起動手段と、
前記起動に同期して前記Ｍ系列カウンタに第１のクロックに同期したクロックを供給し、停止によって前記クロックの供給を遮断するクロック制御手段と、
前記Ｍ系列カウンタの停止時の値を保持する保持手段とを備え、
前記Ｍ系列カウンタは、前記起動手段によって起動され、前記カウンタのカウントアップにより動作を停止し、前記保持手段の出力値を初期値としてその値から計数を行い、
前記保持手段は、電源投入後に最初に起動された場合には、前記カウンタの値を保持し、それ以外の時には停止指示のあったときの前記Ｍ系列カウンタの値を保持し、
前記カウンタは、前記起動手段によって起動され、前記第１のクロックとは非同期の第２のクロックに同期して動作し、カウントアップにより前記Ｍ系列カウンタを停止させる乱数発生装置。
【請求項２】
前記カウンタは、前記Ｍ系列カウンタから出力される乱数値により前記カウント期間を変更する請求項１記載の乱数発生装置。
【請求項３】
前記Ｍ系列カウンタを複数有し、
前記保持手段に保持された値に基づいて、前記複数のＭ系列カウンタから一つを選択して出力するセレクタを備え、
前記クロック制御手段は、選択されたＭ系列カウンタに前記クロックを供給する請求項１記載の乱数発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不規則な数字の列で構成される乱数を発生する乱数発生装置に関する。
【背景技術】
【０００２】
情報通信処理の各局面においては、乱数、すなわち無作為に選ばれた全く不規則で偏りのない数字の列がしばしば利用される。例えば、データの暗号化や電子認証を行う際などに、各数値の間に相関性がなく、第三者が予測しにくい乱数を使用する。また、各種の自然現象や経済現象などのシミュレーションを行う場合その他、人為的でない自然で一様な一塊の数字を必要とする場合にも、乱数が用いられる。また、映像シーンの切り替えなどを行う映像処理装置においては、ランダムな色配列の連続画像を生成するために、乱数を適用することもある。さらに、画像処理において、量子化雑音によるモアレを目立ちにくくするために、入力されたＣＭＹＫ ４色の画像データに対して、意図的にノイズを加算することが行われる。
【０００３】
物理現象を利用する自然乱数（真正乱数）発生方法は、一様性（乱数の確率値及び出現率に差異が生じないこと）を有し、かつ乱数出現の規則性や前後の相関性、周期性などを有しない高性能な乱数発生装置が可能となる。しかし、物理現象によるランダムパルスを利用した乱数発生装置では、ランダムパルス発生源、信号増幅器、波形整形回路、一様性適正化回路などのアナログ要素が多く含まれるため、回路規模が大きくかつ複雑になってしまう。また、熱雑音を利用したものは外部ノイズなどの影響を受けやすいため動作の安定性に欠ける。さらに、放射線を利用したものは環境への影響が懸念される。
【０００４】
また、数学的な方法は、ハードウェアの構成は容易になるものの、通常の方法では、同じようにアクセスすれば同じ値が出力され、とても乱数といえるものにはならない。
【０００５】
一般的な乱数発生装置は、カウンタと、あらかじめ乱数テーブルを格納したＲＯＭと、フリップ・フロップとを備え、カウンタは、クロック信号の入力に応答して逐次インクリメントされるカウント値を出力し、ＲＯＭは入力されたカウント値に該当するテーブル・エントリの乱数を出力し、フリップ・フロップは、クロック信号に同期して乱数を外部出力する。ＲＯＭに格納される乱数テーブルは、例えばＭ系列（maximal-period sequence）乱数など各種の乱数発生方式等を用いて作成される。乱数は、数字の列が不規則すなわち統計的精度で偏りがない一様性が充分保たれていることが好ましい。また、乱数は、再び同じ数字の列が繰り返されるようになるまでの周期が長いことが好ましいとされている。例えば、８ビットのＭ系列カウンタは、１ビットのシフト・レジスタを８個と、原始多項式に基づく演算を行うための排他的論理和装置（ＸＯＲ）とで構成される。Ｍ系列乱数によって生成される８ビットの擬似乱数の周期は、理論上、２8−１＝２５５となる。
【０００６】
特許文献１には、乱数値生成回路にアクセスして値を読み出すためのアクセス権を調停する非同期アービタ回路を備え、乱数値を読み出す際には、予め定められた非同期アービタ回路に対して予め定められた順序に従ってアクセス権を要求し、非同期アービタ回路から要求した全てのアクセス権を得たときに、上記乱数値生成回路から読み出した値を乱数値とする乱数生成器が開示されている。
【０００７】
また、特許文献２には、クロックパルスとは非同期のパルスを出力する発振器と、複数ビットの計数長を有し前記発振器の出力パルスを計数する複数のカウンタと、読出し信号供給時に前記カウンタの内容を乱数として取出す乱数発生装置が開示されている。特許文献２に記載の乱数発生装置では、読み出しを行うＣＰＵとは非同期のクロックで動作するカウンタを使用している。非同期のクロックを用いることで、ＣＰＵの読み出しサイクルとカウンタの動作サイクルは同じにはならず、予測不可能な値が出力されることとなる。
【特許文献１】特開２００３−１２２５５９号公報
【特許文献２】特開平２−２４２３２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来の乱数発生装置にあっては、非同期のクロックでカウンタを常に動作させておいて、ＣＰＵが読み出す構造となっているので、ランダム性を確保するためには、カウンタを停止することができない。このため、消費電力が問題となる。
【０００９】
また、普通にカウントアップしていくだけなので、もしも同じような周期で読み出した場合に、同じような値が加算されていくだけで、乱数が出力されてくるとは言えない状況が考えられる。
【００１０】
本発明は、かかる点に鑑みてなされたものであり、ランダム性を確保しつつ省電力化を図ることができる乱数発生装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の乱数発生装置は、Ｍ系列を生成するＭ系列カウンタと、前記Ｍ系列カウンタのカウント期間を計数するカウンタと、前記Ｍ系列カウンタ及び前記カウンタを起動する起動手段と、前記起動に同期して前記Ｍ系列カウンタに第１のクロックに同期したクロックを供給し、停止によって前記クロックの供給を遮断するクロック制御手段と、前記Ｍ系列カウンタの停止時の値を保持する保持手段とを備え、前記Ｍ系列カウンタは、前記起動手段によって起動され、前記カウンタのカウントアップにより動作を停止し、前記保持手段の出力値を初期値としてその値から計数を行い、前記保持手段は、電源投入後に最初に起動された場合には、前記カウンタの値を保持し、それ以外の時には停止指示のあったときの前記Ｍ系列カウンタの値を保持し、前記カウンタは、前記起動手段によって起動され、前記第１のクロックとは非同期の第２のクロックに同期して動作し、カウントアップにより前記Ｍ系列カウンタを停止させる構成を採る。
【発明の効果】
【００１２】
本発明によれば、Ｍ系列カウンタの値を保持しその値から計数を行うことにより、乱数必要とするときだけＭ系列カウンタを動作させることができ、ランダム性を確保しつつ省電力化を図ることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１４】
（実施の形態１）
図１は、本発明の実施の形態１の乱数発生装置の構成を示すブロック図である。本実施の形態の乱数発生装置は、情報通信処理機能を搭載する通信機器に適用可能である。
【００１５】
図１において、乱数発生装置１００は、ＣＰＵ１１０、Ｍ系列カウンタ１２０、カウンタ１３０、クロック制御部１４０、レジスタ１５０、及びセレクタ１６０を備えて構成される。
【００１６】
ＣＰＵ１１０は、乱数発生の起動を行い、停止後に値を読み出す。ＣＰＵ１１０は、Ｍ系列カウンタ１２０及びカウンタ１３０を起動する起動手段としての機能を有する。
【００１７】
Ｍ系列カウンタ１２０は、ＣＰＵ１１０の起動によって動作し、カウンタ１３０のカウントアップによって動作を停止する。Ｍ系列カウンタ１２０は、レジスタ１５０出力値を初期値としてその値から計数を行い、乱数値をセレクタ１６０及びレジスタ１５０を介してＣＰＵ１１０に返す。Ｍ系列カウンタ１２０は、例えば３２ビット幅の場合、００００_００００を除いて００００_０００１からｆｆｆｆ_ｆｆｆｆまでのすべてのビットパターンを出力する。
【００１８】
カウンタ１３０は、Ｍ系列カウンタ１２０と同じＣＰＵ１１０によって起動され、Ｍ系列カウンタ１２０のカウント期間を計数する。カウンタ１３０は、第１のクロックＣＬＫ１とは非同期の第２のクロックＣＬＫ２に同期して動作する。カウンタ１３０は、Ｍ系列カウンタ１２０からセレクタ１６０及びレジスタ１５０を介して出力される乱数値によってカウント値が変化（カウント期間が変動）する。カウンタ１３０は、カウントアップによりＭ系列カウンタ１２０を停止させる。
【００１９】
クロック制御部１４０は、起動に同期してＭ系列カウンタ１２０に第１のクロックに同期したクロックを供給し、停止によってクロックの供給を遮断する。すなわち、クロック制御部１４０は、起動から停止までの期間は、Ｍ系列カウンタ１２０にクロックを供給し、停止期間にはクロックを停止する。
【００２０】
レジスタ１５０は、セレクタ１６０を経由して入力されたＭ系列カウンタ１２０の停止時の値を保持する。レジスタ１５０は、電源投入後の最初の起動時には、カウンタ１３０の出力値でＭ系列カウンタ１２０に初期値として取り込まれる値をセットする。すなわち、レジスタ１５０は、電源投入後に最初に起動された場合には、カウンタ１３０の値を保持し、それ以外の時には停止指示のあったときのＭ系列カウンタ１２０の値を保持する。レジスタ１５０は、カウンタ１３０の出力値を保持し、Ｍ系列カウンタ１２０に対して初期値として出力する。レジスタ１５０は、保持したＭ系列カウンタ１２０の乱数値をＣＰＵ１１０に出力する。
【００２１】
セレクタ１６０は、電源投入後の状態では、カウンタ１３０の出力値を選択し、それ以外はＭ系列カウンタ１２０の値を選択してレジスタ１５０に出力する。
【００２２】
以下、上述のように構成された乱数発生装置の動作について説明する。まず、乱数発生装置１００の全体動作を述べる。
【００２３】
ＣＰＵ１１０は、第１のクロックＣＬＫ１に同期して動作している。Ｍ系列カウンタ１２０も第１のクロックＣＬＫ１に同期して動作する。
【００２４】
カウンタ１３０は、第１のクロックＣＬＫ１とは非同期の第２のクロックＣＬＫ２で動作する。
【００２５】
Ｍ系列カウンタ１２０の動作開始は、ＣＰＵ１１０によって行われる。
【００２６】
レジスタ１５０は、Ｍ系列カウンタ１２０に初期値をセット（図１ａ．参照）してからカウンタ１３０の動作を開始させる（図１ｄ．参照）。
【００２７】
セレクタ１６０は、電源投入後の最初の起動時点では、カウンタ１３０の値を出力している。その後の起動では、Ｍ系列カウンタ１２０の値を出力する。
【００２８】
Ｍ系列カウンタ１２０は、最初はカウンタ１３０の値を初期値としてカウントを行い、その後は、生成した乱数を初期値として用いてカウントを行うこととなる。
【００２９】
カウンタ１３０は、通常の動作状態では、ＣＰＵ１１０からの起動によって動作を開始し（図１ｂ．参照）、カウントアップによって動作を停止する（図１ｃ．参照）。カウンタ１３０は、電源投入後の初期状態だけは、ＣＰＵ１１０から乱数計数の起動要求（図１ｂ．参照）があるまで動作を続けている。ＣＰＵ１１０から起動要求があったタイミングでカウンタ１３０の値がＭ系列カウンタ１２０の初期値としてＭ系列カウンタ１２０にセットされる（図１ａ．参照）。
【００３０】
カウンタ１３０は、レジスタ１５０の値によって、カウント値を変化させる（図１ｄ．参照）。乱数として出力されるすべてのビット幅を使用するわけではない。この場合、レジスタ１５０の値に依存する期間、カウンタ１３０が動作してカウントアップすることになる。このカウントアップが、Ｍ系列カウンタ１２０の停止の指示となる（図１ｅ．参照）。
【００３１】
Ｍ系列カウンタ１２０が停止した時点の値が乱数データとしてＣＰＵ１１０に取り込まれる。具体的には、Ｍ系列カウンタ１２０が停止した時点の値（乱数データ）が、セレクタ１６０を介してレジスタ１５０に保持され（図１ｆ．参照）、レジスタ１５０に保持した乱数データがＣＰＵ１１０に取り込まれる（図１ｇ．参照）。また、レジスタ１５０に保持された乱数データは、次の起動の時にＭ系列カウンタ１２０の初期値として利用される。
【００３２】
クロック制御部１４０は、ＣＰＵ１１０による起動からＭ系列カウンタ１２０にクロックを供給し、カウンタ１３０のカウントアップで停止した後は、クロックの供給を止めて消費電力の低減を図る。
【００３３】
次に、乱数発生装置１００の詳細な動作を説明する。
【００３４】
図２は、乱数発生装置１００のノーマル動作時の制御を示すシーケンス図である。
（１）
ＣＰＵ１１０は、乱数部を構成するＭ系列カウンタ１２０に対して起動信号を送出する。具体的には、メモリ空間にレジスタ（図示せず）が配置されていて、ＣＰＵ１１０はそのレジスタのビットをオンする。レジスタのビットが起動信号となる。
（２）
この起動信号によって、クロック制御部１４０（図１）のクロックのイネーブル信号がオンしてクロック制御部１４０（図１）からクロックがＭ系列カウンタ１２０に出力される。
（３）
レジスタ１５０に保持されている前の計数の出力値がＭ系列カウンタ１２０にロードされる。
（４）
Ｍ系列カウンタ１２０に初期値がロードされた後にカウント期間を計数するカウンタ１３０とＭ系列カウンタ１２０がそれぞれのクロックに同期してカウント動作を開始する。
（５）
レジスタ１５０に保持されている前の出力値に基づいてカウンタ１３０のカウント値が決定される。
（６）
カウンタ１３０の値がレジスタ１５０に設定されたカウント値に達したときに停止信号がオンする。
（７）
この停止信号によって、Ｍ系列カウンタ１２０の値がレジスタ１５０にセットされる。Ｍ系列カウンタ１２０及びカウンタ１３０は、カウント動作を停止する。
（８）
その後、クロックのイネーブル信号がオフしてＭ系列カウンタ１２０に対するクロックの供給が停止する。
（９）
また、ＣＰＵ１１０に対して、計数終了を通知する。具体的には、ステータスレジスタ（図示せず）のビットをオンすると共に、割り込み信号によりＣＰＵ１１０に通知する。
【００３５】
図３は、乱数発生装置１００のイニシャル時の制御を示すシーケンス図である。
（１）
カウント期間を計数するカウンタ１３０は、図２に示す通常のシーケンスではＣＰＵ１１０からの起動信号がオンしたときに動作を開始する。しかし、電源投入後の最初の状態では、リセット解除後に動作を開始して動き続けている。
（２）
カウンタ１３０は、ＣＰＵ１１０及びＭ系列カウンタ１２０が動作する第１のクロックＣＬＫ１とは非同期の第２のクロックＣＬＫ２で動作している。
（３）
ＣＰＵ１１０が乱数部を構成するＭ系列カウンタ１２０に対して起動信号を送出する。
具体的には、メモリ空間にレジスタ（図示せず）が配置されていて、ＣＰＵ１１０はそのレジスタのビットをオンする。レジスタのビットが起動信号となる。
（４）
ＣＰＵ１１０の起動信号によって、カウンタ１３０は動作を停止するとともに、値をレジスタ１５０にロードする。
（５）
レジスタ１５０にロードされた段階で、動作を続けていたカウンタ１３０は、一旦リセットされる。
（６）
この後の動作は、図２のノーマルシーケンスと同じ動作をする。
（７）
起動信号によって、クロックのイネーブル信号がオンしてクロックがＭ系列カウンタ１２０に出力される。
（８）
レジスタ１５０に保持された値がＭ系列カウンタ１２０にロードされる。
（９）
Ｍ系列カウンタ１２０に初期値がロードされた後にカウンタ１３０とＭ系列カウンタ１２０がそれぞれのクロックに同期してカウント動作を開始する。
（１０）
以下は、図２のノーマルシーケンスと同様であるため説明を省略する。
【００３６】
次に、タイミングチャートを参照してＭ系列カウンタ１２０の動作を説明する。
【００３７】
図４は、ノーマル時のＭ系列カウンタ１２０の動作を示すタイミングチャート、図５は、イニシャル時のＭ系列カウンタ１２０の動作を示すタイミングチャートである。
【００３８】
図４に示すように、ＣＰＵ１１０は、第１のクロックＣＬＫ１に同期して動作している。ＣＰＵ１１０からクロック制御部１４０に起動信号を送出する（ａ．参照）。
【００３９】
この起動信号によって、クロック制御部１４０のクロックのイネーブル信号（クロックイネーブル）がオンし（ｂ．参照）、クロック制御部１４０から初期値ロードタイミング（ｃ．参照）でクロックがＭ系列カウンタ１２０に出力される（ｃ．参照）。
【００４０】
このクロックを受けてレジスタ１５０に保持されている前の計数の出力値がＭ系列カウンタ１２０にロードされる（ｄ．参照）。また、このクロックを受けてＭ系列カウントイネーブルがオンし（ｅ．参照）、このＭ系列カウントイネーブルによりＭ系列カウンタ１２０のカウントが開始される（ｆ．参照）。Ｍ系列カウンタ１２０も第１のクロックＣＬＫ１に同期して動作することになる。
[Ｍ系列カウンタ１２０の動作例]
３２ｂｉｔのＭ系列カウンタ１２０の動作を例に採る。
【００４１】
初期値として、ｅｆ５４_３ｅｆ２が与えられ、その後、カウント動作を開始している。
【００４２】
ｅｆ５４_３ｅｆ２（初期値）
ｄｅａ８_７ｄｅ４
ｂｄ５０_ｆｂｃ８
７ａａ１_ｆ７９１
ｆ５４３_ｅｆ２２
ｅａ８７_ｄｅ４４
.....
図４のタイミングチャートには示されていないが、初期値の所定の部分を用いて、計数期間を決定する。例えば、下位８ｂｉｔを用いるとすると、１６進数「ｆ２」は、１０進「２４２」となるので、２４２カウントしたところで停止する。
【００４３】
一方、図４ｃ．のクロックを受けてカウンタ１３０カウントイネーブルがオンし（ｇ．参照）、このカウントイネーブルによりカウンタ１３０のカウントが開始される（ｈ．参照）。カウンタ１３０は、第１のクロックＣＬＫ１とは非同期の第２のクロックＣＬＫ２で動作する。
【００４４】
これにより、Ｍ系列カウンタ１２０に初期値がロードされた後にカウント期間を計数するカウンタ１３０とＭ系列カウンタ１２０がそれぞれのクロックに同期してカウント動作を開始する。
【００４５】
レジスタ１５０に保持されている前の出力値に基づいてカウンタ１３０のカウント値が決定される（ｉ．参照）。
【００４６】
カウンタ１３０内部では、レジスタ１５０に設定されたカウント値とカウンタ１３０の値が一致すると一致信号を生成する（ｊ．参照）。一致信号によりカウンタ１３０カウントイネーブルがオフし（ｋ．参照）、このカウントイネーブルのオフによりカウンタ１３０のカウントは停止する。
【００４７】
また、カウンタ１３０内部では、図４ｊ．の一致信号を第１のクロックＣＬＫ１に同期化し（同期化１：ｌ．参照）、さらに同期化１後の一致信号の立下りで停止信号を生成する（同期化２：ｍ．参照）。
【００４８】
図４ｍ．の停止信号によりＭ系列カウントイネーブルがオフし（ｎ．参照）、このＭ系列カウントイネーブルによりＭ系列カウンタ１２０のカウントが停止する。そして、図４ｍ．の停止信号によって、Ｍ系列カウンタ１２０の値がレジスタ１５０にロードされる（ｏ．参照）。Ｍ系列カウンタ１２０及びカウンタ１３０は、カウント動作を停止する。
【００４９】
また、カウンタ１３０は、図４ｍ．の停止信号の立下りでＣＰＵ１１０に対するカウント終了通知を生成し（ｐ．参照）、適当なタイミングでＣＰＵ１１０に対して、計数終了を通知する。例えば、ステータスレジスタ（図示せず）のビットをオンすると共に、割り込み信号によりＣＰＵ１１０に通知する。
【００５０】
その後、停止信号によって、起動信号をオフする（ｑ．参照）。また、停止信号によって、クロックイネーブルをオフする（ｒ．参照）。クロックイネーブルがオフしてＭ系列カウンタ１２０に対するクロックの供給が停止する。
【００５１】
図５のタイミングチャートにおいて、カウンタ１３０は、リセット解除後すぐにカウント動作を行う（ａ．参照）リセットを受けてカウンタ１３０カウントイネーブルがオンし、このカウントイネーブルによりカウンタ１３０のカウントが開始される（ｂ．参照）。カウンタ１３０は、第１のクロックＣＬＫ１とは非同期の第２のクロックＣＬＫ２で動作する。
【００５２】
ＣＰＵ１１０の起動信号によって、カウンタ１３０は動作を停止し（ｃ．参照）、停止したときのカウンタ１３０のカウンタ値をレジスタ１５０にロードする（ｄ．参照）。
【００５３】
この起動信号によって、クロック制御部１４０のクロックのクロックイネーブルがオンすると同時に（ｅ．参照）、初期値ロードタイミングがオンする（ｆ．参照）。１クロック後の初期値ロードタイミングの立下りでカウンタ１３０リセット信号を生成する（ｇ．参照）。起動信号によりカウント停止したときのカウンタ値がレジスタ１５０に確実にロードされた段階で、動作を続けていたカウンタ１３０は、一旦リセットされることになる。
【００５４】
このカウンリセットを受けてＭ系列カウントイネーブルがオンし（ｈ．参照）、このＭ系列カウントイネーブルによりＭ系列カウンタ１２０のカウントが開始される（ｉ．参照）。すなわち、Ｍ系列カウンタ１２０は、初期値ロード後にカウントを開始する。
【００５５】
また、初期値ロードタイミングから作成されたカウンタ１３０リセット（ｊ．参照）でレジスタ１５０の値がＭ系列カウンタ１２０にロードされる（ｋ．参照）。
【００５６】
その後、このロードのタイミングでカウンタ１３０カウントイネーブルがオンし（ｌ．参照）、このカウントイネーブルによりカウンタ１３０のカウントが再開される（ｍ．参照）。
【００５７】
以上詳細に説明したように、本実施の形態によれば、乱数発生装置１００は、電源投入後に最初に起動された場合には、カウンタ１３０の値を保持し、それ以外の時には停止指示のあったときのＭ系列カウンタ１２０の値を保持するレジスタ１５０を備え、Ｍ系列カウンタ１２０は、レジスタ１５０出力値を初期値としてその値から計数を行うので、Ｍ系列カウンタ１２０を必要なときだけ動作させることができ、省電力化を図ることができる。すなわち、Ｍ系列カウンタ１２０は、ランダム性を確保した上で、動作が要求されたときだけ動作するので省電力に貢献するこができる。
【００５８】
また、電源投入後は、非同期のクロックで動作しているカウンタ１３０の値を初期値として使用することで、値が固定することがなくまた、値の予測が困難である。また、カウンタ１３０の動作の起動から停止までの期間（カウント期間）は、Ｍ系列カウンタ１２０の乱数値を使用して変更するので、Ｍ系列カウンタ１２０の停止もランダムとなり、より一層予測が困難となる。
【００５９】
さらに、電源投入後の最初の初期値は、非同期クロックで動作するカウンタの値を使用し、それ以外は、Ｍ系列カウンタ１２０の出力値を保持しておいて、次のカウントの初期値として使用する。必要なときだけ動作して、かつ停止したときの値からカウントを開始することで、Ｍ系列カウンタ１２０が一周するためにかなりの時間を要することになる。これにより、同一の値を出力しにくい効果が得られる。
【００６０】
（実施の形態２）
図６は、本発明の実施の形態２の乱数発生装置のＭ系列カウンタの構成を示す図である。本実施の形態の乱数発生装置のＭ系列カウンタは、図１のＭ系列カウンタ１２０に代えて適用される。
【００６１】
図６において、Ｍ系列カウンタ２００は、レジスタ２１０と、デコーダ２２０と、複数のクロックゲート２３０−１，２３０−２，…，２３０−ｎと、複数のＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎと、セレクタ２５０とを備えて構成される。
【００６２】
レジスタ２１０は、Ｍ系列カウンタ２４０−１，２４０−２，…，２４０−ｎの値を保持する。
【００６３】
デコーダ２２０は、Ｍ系列カウンタ２４０−１，２４０−２，…，２４０−ｎのうち該当するＭ系列カウンタを動作させるため、所定ビットのデータの一部をデコードして選択信号を生成する。例えば、デコーダ２２０は、２ビットの選択信号から該当するＭ系列カウンタのクロックゲートをオンするための４本の信号を生成する。
【００６４】
クロックゲート２３０−１，２３０−２，…，２３０−ｎは、動作するＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎにだけクロックＣＬＫを供給する。
【００６５】
複数のＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎは、それぞれ別の生成多項式に基づいてＭ系列を生成する。
【００６６】
セレクタ２５０は、値を出力するＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎのいずれか一つを選択する。この選択のための信号は、レジスタ２１０に保持されている乱数値の一部が使用される。例えば、４個のＭ系列カウンタ２４０−１，２４０−２，…，２４０−４を選択する場合は２ビットが使用され、８個のＭ系列カウンタ２４０−１，２４０−２，…，２４０−８を選択する場合は３ビットが使用される。
【００６７】
なお、煩雑となるので、図６には記載していないが、図１の場合と同様に、Ｍ系列カウンタ２４０−１，２４０−２，…，２４０−ｎは、起動された時にレジスタ２１０に値を初期値として、計数を開始する。
【００６８】
デコーダ２２０は、例えば２ビットの選択信号から該当するＭ系列カウンタのクロックゲートをオンするための４本の信号を生成する。
【００６９】
次に、Ｍ系列カウンタ２００を有する乱数発生装置の動作を説明する。基本動作は、図１に記載の乱数発生装置１００と同様であるため説明を省略する。
【００７０】
図１に記載の乱数発生装置１００と同じように、ＣＰＵなどから乱数発生の動作が起動される。
【００７１】
Ｍ系列カウンタ２００は、Ｍ系列カウンタを複数有し、レジスタ２１０の値によって、動作するＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎを選択する。
【００７２】
これによって、生成される乱数列は、複数のＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎから選択されたものとなり、かつ、以前の乱数を初期値としてカウントし、乱数に基づいたカウント期間によって停止するため、より一層予測困難な値が出力される。
【００７３】
また、Ｍ系列カウンタ２００は、複数のＭ系列カウンタ２４０−１，２４０−２，…，２４０−ｎを備えているものの、動作に与るＭ系列カウンタは１個だけであるため消費電力が増加することはない。
【００７４】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。例えば、本実施の形態の乱数発生装置は、乱数発生装置として情報通信処理機能を搭載する通信機器に適用可能であるが、情報通信装置に限らず画像処理装置など一様性のある擬似乱数を必要とする様々な装置に適用可能である。
【００７５】
また、本実施の形態では乱数発生装置という名称を用いたが、これは説明の便宜上であり、乱数生成装置、乱数発生方法等であってもよいことは勿論である。
【００７６】
さらに、上記乱数発生装置を構成する各回路部、例えばレジスタ等の種類、数及び接続方法などは前述した実施の形態に限られない。
【産業上の利用可能性】
【００７７】
本発明に係る乱数発生装置は、乱数発生装置として情報通信処理機能を搭載する通信機器、一様性のある擬似乱数を必要とする画像処理装置など一様性のある擬似乱数を必要とする様々な装置として有用である。特に、省電力化が要求される携帯電話機などの乱数発生装置、携帯用電子機器の用途に有用である。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態１の乱数発生装置の構成を示すブロック図
【図２】上記実施の形態１に係る乱数発生装置のノーマル動作時の制御を示すシーケンス図
【図３】上記実施の形態１に係る乱数発生装置のイニシャル時の制御を示すシーケンス図
【図４】上記実施の形態１に係る乱数発生装置のノーマル時のＭ系列カウンタの動作を示すタイミングチャート
【図５】上記実施の形態１に係る乱数発生装置のイニシャル時のＭ系列カウンタの動作を示すタイミングチャート
【図６】本発明の実施の形態２の乱数発生装置のＭ系列カウンタの構成を示す図
【符号の説明】
【００７９】
１００  乱数発生装置
１１０  ＣＰＵ
１２０，２００，２４０  Ｍ系列カウンタ
１３０  カウンタ
１４０  クロック制御部
１５０，２１０  レジスタ
１６０，２５０  セレクタ
２３０  クロックゲート
【図１】
2009294873.tif 000003
【図２】
2009294873.tif 000004
【図３】
2009294873.tif 000005
【図４】
2009294873.tif 000006
【図５】
2009294873.tif 000007
【図６】
2009294873.tif 000008