"ソフトウェア処理によってシード値を発生するシード値発生処理部と、前記シード値が与えられてハードウェア処理によって乱数を発生する乱数発生部とを具備したことを特徴とする乱数発生回路。前記シード値発生処理部は、ソフトウェア処理によって求めたシード値を用いてソフトシェア処理によって乱数を求め、求めた乱数に基づくシード値を前記乱数発生部に与えることを特徴とする請求項1に記載の乱数発生回路。半導体メモリと、ソフトウェア処理によってシード値を発生するシード値発生処理部と、前記シード値が与えられてハードウェア処理によって乱数を発生する乱数発生部と前記半導体メモリへの書き込みデータを前記乱数発生部からの乱数を用いてランダマイズ処理して前記半導体メモリに書き込むと共に、前記半導体メモリからの読み出しデータ前記乱数発生部からの乱数を用いてランダマイズ解除処理するランダマイズ部と、を具備したことを特徴とする半導体記憶装置。前記シード値発生処理部は、ソフトウェア処理によって求めたシード値を用いてソフトシェア処理によって乱数を求め、求めた乱数に基づくシード値を前記乱数発生部に与えることを特徴とする請求項3に記載の半導体記憶装置。半導体メモリと、ソフトウェア処理によってシード値を発生するシード値発生処理部と、ハードウェア処理によってシード値を発生するシード値発生回路と、前記半導体メモリのページ先頭フレームからのデータの読み出しに際して、前記シード値発生回路からのシード値が与えられ、前記半導体メモリのページ先頭以外のフレームからのデータの読み出しに際して、前記シード値発生処理部からのシード値が与えられて、ハードウェア処理によって乱数を発生する乱数発生部と前記半導体メモリへの書き込みデータを前記乱数発生部からの乱数を用いてランダマイズ処理して前記半導体メモリに書き込むと共に、前記半導体メモリからの読み出しデータ前記乱数発生部からの乱数を用いてランダマイズ解除処理するランダマイズ部と、を具備したことを特徴とする半導体記憶装置。本発明の実施形態は、回路規模を縮小しながら、十分に高いランダマイズ性能を確保すると共に、ランダマイズ解除処理に要する時間を短縮することができる乱数発生回路及び半導体記録装置を提供することを目的とする。実施形態の乱数発生回路は、ソフトウェア処理によってシード値を発生するシード値発生処理部と、前記シード値が与えられてハードウェア処理によって乱数を発生する乱数発生部とを具備する。以下、図面を参照して本発明の実施の形態について詳細に説明する。第1の実施の形態図1は本発明の第1の実施の形態に係る半導体記憶装置を含むメモリシステムを示すブロック図である。メモリシステムは、メモリカード1及びホスト機器2を備えている。ホスト機器2は、バスインタフェース14を介して接続されるメモリカード1に対しアクセスを行うためのハードウェア及びソフトウェアを備えている。メモリカード1は、ホスト機器2に接続された時に電源供給を受けて動作し、ホスト機器2からのアクセスに応じた処理を行う。メモリカード1は、ホスト機器2とバスインタフェース14を介して情報の授受を行う。メモリカード1は、NAND型フラッシュメモリ11、フラッシュメモリ11を制御するカードコントローラ12、及び複数の信号ピン13を備えている。複数の信号ピン13は、図示しない配線によってカードコントローラ12と電気的に接続されている。メモリカード1を例えばホスト機器2に設けられた図示しないスロットに装着することで、ホスト機器2に設けられた図示しないホストコントローラと信号ピン13とが電気的に接続されて、ホストコントローラとメモリカード1内のカードコントローラ12との間で各種信号及びデータの通信が行われるようになっている。カードコントローラ12とNAND型フラッシュメモリ11とは、図示しない入出力I/O線によって接続されており、この入出力線を介してNAND型フラッシュメモリ11に対するデータの書き込み及び読み出しを行うようになっている。なお、本実施の形態では、NAND型フラッシュメモリ11及びカードコントローラ12はメモリカード1に搭載されているが、メモリカード1に搭載されることに限定されない。例えば、PC等の電子機器内に組み込み搭載される態様でもよい。また、本実施形態では、半導体メモリとしてNAND型フラッシュメモリ11を例に挙げているが、例えば、NOR型フラッシュメモリ、磁気ランダムアクセスメモリMRAM:MagneticRandomAccessMemory等に置き換えることも可能である。図2は図1中のカードコントローラ12の具体的な構成を示すブロック図である。カードコントローラ12は、フラッシュメモリ11を管理する。例えば、カードコントローラ12は、フラッシュメモリ11の物理アドレス及び論理アドレスを管理し、データの書き込み及び読み出しを制御する。図2に示すように、カードコントローラ12は、ホストインタフェースモジュール21、MPUMicroProcessingUnit22、フラッシュコントローラ23、ROMReadOnlyMemory24、RAMRandomAccessMemory25、及びランダマイズ回路26を有する。ホストインタフェースモジュール21は、カードコントローラ12とホスト機器2との間のインタフェース処理を行う。MPU22は、メモリカード1全体の動作を制御する。MPU22は、例えばメモリカード1が電源供給を受けたときに、ROM24に格納されているファームウェア制御プログラムをRAM25上に読み出して所定の処理を実行することにより、各種のテーブルをRAM25上に作成する。また、MPU22は、ホスト機器2から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、フラッシュメモリ11に対して所定の処理を実行する。ランダマイズ回路26は、ランダマイズ処理部及びランダマイズ解除処理部を有する。MPU22は、ランダマイズ回路26を制御して、書き込みデータに対するランダマイズ処理及びランダマイズ解除処理を行う。本実施の形態においては、MPU22は、ランダマイズ処理及びランダマイズ解除処理において用いるシード値を生成する。書き込みデータのランダマイズ処理及びランダマイズ解除処理については、後に詳述する。MPU22がシード値を生成するためのプログラムは、ROM24にファームウェアとして格納されている。ROM24は、MPU22により制御される制御プログラム等を格納する。RAM25は、MPU22の作業エリアとして使用され、制御プログラムや各種のテーブル表を記憶する。さらに、RAM25は、予め作成されたシードテーブル27を保持する。シードテーブル27については、後に詳述する。フラッシュコントローラ23は、カードコントローラ12とフラッシュメモリ11との間のインタフェース処理を行う。図3は図1中のNAND型フラッシュメモリ11の構成を説明するための説明図である。図3に示すように、NAND型フラッシュメモリ11は、メモリセルアレイ30、ページバッファ28、及びロウデコーダ29を備えている。メモリセルアレイ30は、複数のメモリブロックBLK0、BLK1、...を含んでいる。データの消去は、メモリブロックBLKn単位で行われる。すなわち、同一メモリブロックBLKn内のデータは一括して消去される。メモリブロックBLKnの各々は、複数のメモリセルMCEを備えている。また、メモリブロックBLKn内には、複数のワード線WL0、WL1、...と、ワード線WL0、WL1、...に直交するビット線BL0、BL1、...とが設けられている。以下、ワード線WL0、WL1、...を特に区別しない場合には単にワード線WLと呼び、ビット線BL0、BL1、...を特に区別しない場合には単にビット線BLと呼ぶ。同一行にあるメモリセルMCEは、同一のワード線WLに共通接続されている。また、同一列にあるメモリセルMCEは、複数のメモリセル単位でビット線BLに共通接続されている。なお、データの書き込み及び読み出しは、一本のワード線WLに接続される複数のメモリセルMCEの集合毎に行われ、このメモリセルMCEの集合を1ページと呼ぶ。読み出し時及び書き込み時において、ロウアドレスによっていずれかのワード線WLが選択され、カラムアドレスによっていずれかのビット線BLが選択される。ページバッファ28は、フラッシュメモリ11へのデータ入出力を行い、データを一時的に保持する。ページバッファ28が保持可能なデータサイズは、各メモリブロックBLKnのページサイズと同じである。データ書き込み等の際、ページバッファ28は、フラッシュメモリ11に対するデータ入出力処理を、1ページ分の単位で実行する。また、読み出しの際は、1ページ分のメモリセルのデータをページバッファ28に転送し、図示しないI/O線を介してページバッファ28からシリアルに読み出される。ロウデコーダ29は、データの書き込み時及び読み出し時において、いずれかのワード線WLを選択する。図3の例では、フラッシュメモリ11の各メモリブロックBLKnは、例えば256ページによって構成される。各ページは、誤り訂正単位であるECCフレームを4つ含み、各ECCフレームには16ビットのビット線BLを1カラムとして複数のカラムが含まれる。なお、図3は一例であれ、これに限定されるものではない。図4は図3中のメモリブロックBLKnの詳細な構成を示す等価回路図である。図4に示すように、メモリブロックBLKnは、ワード線WL方向に沿って配置されたm1個のNANDストリングを備えているmは1以上の自然数。各々のNANDストリングは、選択トランジスタST1、ST2、及び図3のメモリセルMCEに相当する256個のメモリセルトランジスタMTを備えている。各NANDストリングに含まれる選択トランジスタST1は、ドレインがビット線BL0~BLmのいずれかに接続され、ゲートがセレクトゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートがセレクトゲート線SGSに共通接続されている。各メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された積層ゲートを備えたMOSトランジスタである。積層ゲートは、ゲート絶縁膜上に形成された電荷蓄積層フローティングゲートと、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを含んでいる。各NANDストリングにおいて、256個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、各々の電流経路が直列接続されるように配置されている。そして、最もソース側に位置するメモリセルトランジスタMTから順に、制御ゲートがワード線WL0~WL255にそれぞれ接続されている。従って、ワード線WL255に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WL0に接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。ワード線WL0~WL255は、メモリブロックBLKn内のNANDストリング間で、同一行のメモリセルトランジスタMTの制御ゲートに共通接続されている。つまり、メモリブロックBLKn内において同一行にあるメモリセルトランジスタMTの制御ゲートは、同一のワード線WLに接続される。また、ビット線BL0~BLmは、各メモリブロックBLKnの選択トランジスタST1のドレインに接続されている。つまり、同一列のメモリセルトランジスタTMは、同一のビット線BLに接続される。なお、メモリセルトランジスタMTは、閾値電圧のVthの与え方によっては、2値だけでなく多値の情報を保持可能である。本実施の形態においては、データのランダマイズのために発生する疑似乱数を、ソフトウェア処理によってシードSeed値を発生するシード値発生処理部であるMPU22と、MPU22からのシード値がセットされて疑似乱数を発生するM系列回路とによって発生させる。NAND型フラッシュメモリ11へ書き込むデータとM系列回路からの疑似乱数との排他的論理和をとることで、データをランダマイズ化する。先ず、比較のために、ハードウェアによってシード値を発生する関連技術としての疑似乱数発生回路について、図5乃至図9を参照して説明する。図5はM系列回路を示す回路図であり、図6はシード値発生回路を示す回路図である。図5a乃至dは、M系列回路MA~MDをガロア型で構成した例を示している。図5a~dに示すように、M系列回路MA~MDは、夫々13ビット構成、17ビット構成、19ビット構成又は23ビット構成である。M系列回路MAは、第1乃至第13ビットに夫々対応した13ビット分のシフトレジスタR1~R13を有している。シフトレジスタR1の出力は排他的論理和回路に与えられて、シフトレジスタR13の出力との排他的論理和演算結果が次段のシフトレジスタR2に与えられる。同様に、シフトレジスタR3,R4の出力は、夫々排他的論理和回路に与えられて、シフトレジスタR13の出力との排他的論理和演算結果が次段のシフトレジスタR4,R5に夫々与えられる。M系列回路MAによって与えられる各帰還多項式G13xは下記1式にて表される。G13x=x13x4x3x11...1M系列回路MBは、第1乃至第17ビットに夫々対応した17ビット分のシフトレジスタR1~R17を有している。シフトレジスタR3の出力は排他的論理和回路に与えられて、シフトレジスタR17の出力との排他的論理和演算結果が次段のシフトレジスタR4に与えられる。M系列回路MBによって与えられる各帰還多項式G17xは下記2式にて表される。G17x=x17x31...2M系列回路MCは、第1乃至第19ビットに夫々対応した19ビット分のシフトレジスタR1~R19を有している。シフトレジスタR1,R2,R4の出力は夫々排他的論理和回路に与えられて、シフトレジスタR19の出力との排他的論理和演算結果が次段のシフトレジスタR2,R3,R5に夫々与えられる。M系列回路MCによって与えられる各帰還多項式G19xは下記3式にて表される。G19x=x19x5x2x11...3M系列回路MDは、第1乃至第23ビットに夫々対応した23ビット分のシフトレジスタR1~R23を有している。シフトレジスタR6の出力は排他的論理和回路に与えられて、シフトレジスタR23の出力との排他的論理和演算結果が次段のシフトレジスタR7に与えられる。M系列回路MDによって与えられる各帰還多項式G23xは下記4式にて表される。G23x=x23x51...4M系列回路MA~MDは、夫々周期が異なる4種類の疑似乱数を発生する。関連技術である疑似乱数発生回路は、図5に示すM系列回路と図6に示すシード値発生回路とによって構成される。図7はカラム方向ランダマイズのための疑似乱数の発生を説明するための説明図である。図7は1カラムを構成するビット線BL0~BL15に対して割当てるM系列回路MA~MDを示している。なお、各フレーム中の全てのカラムについて図7と同様の割当てが行われる。即ち、図7に示すように、隣接する4ビット線BLについては、異なる周期のM系列回路を用い、16ビット線に対して4種類のM系列回路MA~MDを用いることでランダマイズ性能を向上させている。M系列回路MA~MDは、各ビットのシフトレジスタに、シード値seed値を与えることで、順次疑似乱数を発生する。1カラム中において4つのビット線には同一種類のM系列回路が割当てられるが、これらの同一種類のM系列回路に異なるシード値を与えることで、1カラム中の全てのビット線に対応して異なるシード値を割当てることができる。図5は各M系列回路MA~MDにシード値を与えるシード値発生回路を示している。なお、各種類のM系列回路MA~MDに夫々対応したシード値発生回路を設ける必要がある。シード値発生回路のインデックス値Index07のビット数及び値を変化させることで、図5のシード値発生回路によってビット数が異なる4種類のM系列回路に対応したシード値を供給することができる。即ち、1カラム中の異なる種類のM系列回路が割当てられたビット線に対応して、異なるシード値が供給される。更に、1カラム中の同一種類のM系列回路が割当てられた4つのビット線に対応して、異なるシード値を発生させる。このように、1カラムの全てのビット線に対応して異なるシード値が設定される。例えば、ページ先頭のカラムに設定したシード値を初期値として、M系列回路MA~MDを動作させることで、ページ内の全てのカラムのビット線に対応した疑似乱数を発生させることができる。更に、ページ方向についても、シード値をページ毎に変化させることでページ毎に異なる疑似乱数によるランダマイズが可能である。M系列回路MA~MDに夫々対応するシード値発生回路は、入力されるインデックス値に応じたシード値を発生する。セレクタ41には、8種類のインデックス値が与えられる。なお、M系列回路MA~MDの種類毎に8種類のインデックス値として異なるインデックス値が用いられる。この8種類のインデックス値をそのままシード値として切換えて出力することで、8種類のシード値が得られる。なお、1カラムにおいて同一種類のM系列回路にシード値を供給するシード値発生回路においては、インデックス値の初期値を相互に変化させることで、1カラム中の全てのビット線毎に異なるシード値を設定する。セレクタ41は、3ビットのページアドレス[2:0]であるセレクト信号seedindexによって制御され、ページ毎にインデックス値を切換えてローテータ42に出力する。これにより、8ページ分は異なるシード値が得られる。ローテータ42は、入力されたインデックス値をローテーションさせる。例えば、ローテータ42は、M系列回路MAのための13ビットのインデックス値が入力されると、第1乃至第12ビットを第2乃至第13ビットにシフトし、第13ビットを第1ビットにシフトする。このローテータ42を制御する制御信号seedrotateとしては、4ビットのページアドレス[6:3]が用いられる。これにより、8ページ毎に、16回のローテーションが行われ、8×16=128ページ分は異なるシード値が得られる。ローテータ42の出力は排他的論理和回路43に与えられる。排他的論理和回路43には、セレクタ44の出力も与えられる。セレクタ44は、1ビットのページアドレス[7]であるセレクト信号clmbaseselによって制御されて、全ビットが固定値0であるか又は1である入力を切換えて出力する。排他的論理和回路43は、ローテータ42の出力とセレクタ44の出力との排他的論理和演算結果をシード値として出力する。これにより、128ページ毎にローテータ42の出力が反転し、256ページ分は異なるシード値が得られる。こうして、メモリブロックBLKn内では、同一のシード値が設定されないようになっている。このように構成された疑似乱数発生回路を用いてデータをランダマイズして書き込みを行う。即ち、ページの先頭カラムの16ビット線に対して16種類のシード値が設定される。M系列回路MA~MDは、夫々シード値が設定されて先頭カラムの各ビット線に用いる疑似乱数を発生させる。そして、M系列回路MA~MDにおいてビットをシフトさせることで、他のカラムの各ビットに用いる疑似乱数を発生させる。そして、ページが切換ると、シード値も切換り、前のページとは異なる疑似乱数が発生する。このようにして、ブロック内で疑似乱数を変化させることで、高いランダマイズ性能を得ることができる。ところで、ランダマイズ解除処理においては、書き込み時と同じシード値を用いる必要がある。シード値発生回路によるシード値は、ページの先頭カラムの各ビット線に対応している。従って、ページ内の先頭フレーム以外のフレームから読み出しを行う場合でも、シード値発生回路を動作させ、ページの先頭カラムに対応したシード値をM系列回路MA~MDに与えて、M系列回路MA~MDにより、ページ先頭フレームから全てのビット線に対応する疑似乱数を順次発生させる必要がある。図8はこの状態を示しており、例えば、ページ0のDataF1が格納されている2つ目のフレームから読み出しを行う場合でも、図8の破線矢印に示すように、DataF0が格納されたページ先頭フレームに対応した疑似乱数を先ず発生させる、即ち、M系列回路MA~MDを空回しさせる必要がある。次に、図8の実線矢印に示すように、DataF1が格納されている2つ目フレーム以降の疑似乱数を順次発生させて、ランダマイズ解除処理を行う。従って、図5及び図6に示す疑似乱数発生回路を採用した場合には、ページの途中のフレームから読み出しを行う場合でも、ページ先頭のフレームから読み出しを行う場合と同様の読み出し時間が必要であり、リード時の応答性能が低い。このような欠点を解消するために、シード値をフレーム毎に発生させる方法が考えられる。即ち、図6のシード値発生回路のセレクト信号seedindex、制御信号seedrotate及びセレクト信号clmbaseselの生成論理を下記表1に示すものとすると共に、セレクタ44に0乃至7の固定値を入力する。表1┌──────┬───────────────────────────┐│信号│生成論理│├──────┼───────────────────────────┤│seedindex│ページアドレス[2:0]│├──────┼───────────────────────────┤│seedrotate│ページアドレス[4:3]、フレームアドレス[1:0]│├──────┼───────────────────────────┤│clmbasesel│ページアドレス[7:5]│└──────┴───────────────────────────┘セレクタ41は、3ビットのページアドレス[2:0]であるセレクト信号seedindexによって制御され、ページ毎にインデックス値を切換えてローテータ42に出力する。ローテータ42は、入力されたインデックス値をローテーションさせる。ローテータ42を制御する制御信号seedrotateとしては、2ビットのページアドレス[4:3]と2ビットのフレームアドレス[1:0]が用いられる。これにより、8ページ毎に、4回のローテーションが行われると共に、ページ内の各フレーム毎にローテーションが行われる。ローテータ42によって、8×4=32ページ分は異なるシード値が得られる。セレクタ44は、3ビットのページアドレス[7:5]であるセレクト信号clmbaseselによって制御されて、全ビットが固定値0乃至7のいずれかである入力を切換えて出力する。排他的論理和回路43は、ローテータ42の出力とセレクタ44の出力との排他的論理和演算結果をシード値として出力する。これにより、32ページ毎にローテータ42の出力が8回変化し、256ページ分は異なるシード値が得られる。こうして、メモリブロックBLKn内では、同一のシード値が設定されないようになっている。こうして、各フレーム毎に異なるシード値を設定可能である。この場合には、例えば、ページ0のDataF1が格納されている2つ目フレームから読み出しを行う場合には、図9の実線矢印に示すように、最初からDataF1が格納されている2つ目フレーム以降の疑似乱数を順次発生させて、ランダマイズ解除処理を行うことができる。しかしながら、表1の設定に基づくシード値は、フレーム毎に発生することになり、M系列回路MA~MDは、図9の矢印に示すように、フレーム毎にシード値を設定して乱数発生を初期化するので、ランダマイズ性能が低下する。そこで、上述したように、本実施の形態においては、シード値をソフトウェア処理によって発生させる。なお、本実施の形態においても、図7に示すように、1カラムを構成するビット線BL0~BL15に対して4種類のM系列回路MA~MDを割当てるものとして説明する。そして、各フレーム中の全てのカラムについて図7と同様の割当てを行う。図10はランダマイズ回路26中のランダマイズ処理部31の構成を示すブロック図である。また、図11はランダマイズ回路26中のランダマイズ解除処理部35の構成を示すブロック図である。図10に示すように、ランダマイズ処理部31は、1カラム分のビット線BLに夫々対応して設けられたM系列回路MA~MDからなるM系列回路群Mを有する。なお、M系列回路MA~MDの構成は、図5a~dに示す回路と同一であるものとする。M系列回路群Mの各M系列回路MA~MDは、信号線32を介してMPU22からシード値が供給される。なお、M系列回路MA~MDにはクロックも与えられる図示省略。M系列回路MA~MDは、シード値が入力され、クロックが入力される毎に疑似乱数を出力する。M系列回路MA~MDからの疑似乱数は、M系列回路MA~MDの構成及び入力されるシード値によって決定される。M系列回路MA~MDからの疑似乱数は、1カラム分のビット線に対応して設けられた排他的論理和回路33に与えられる。排他的論理和回路33は、1カラム分の各ビット線に対応して入力される1カラム分のデータI0~I15と16個のM系列回路MA~MDからの疑似乱数との排他的論理和を求めて、演算結果をランダマイズ処理後の書き込みデータとして切換回路36に出力する。切換回路36は、入力された書き込みデータを対応する1カラム分のビット線BLc0~BLc15BL0~BL15,BL16~BL31,...に出力する。図11に示すように、ランダマイズ解除処理部35もランダマイズ処理部31と同様の構成であり、1カラム分のビット線BLc0~BLc15からの信号を切換回路36を介して取り込む。これらの1カラム分の読み出しデータと、16個のM系列回路MA~MDからの疑似乱数との排他的論理和を排他的論理和回路33に求めることにより、ランダマイズを解除して出力O0,O1,O2,...として出力する。ランダマイズ解除処理部35は、データの読み出し時において、データ書き込みに用いた疑似乱数と同じ疑似乱数を用いることで、ランダマイズを解除した読み出しデータを得る。図12はこれらのM系列回路MA~MDに供給するシード値を発生するための基本シード値を有するシードテーブル27を示している。シードテーブル27はM系列回路MA~MDに夫々対応した4つの領域を有しており、各領域には夫々8種類の基本シード値が格納されている。なお、図12では、M系列回路MA用の基本シード値としてSeed0_MA~Seed7_MAが記憶され、M系列回路MB用の基本シード値としてSeed0_MB~Seed7_MBが記憶され、M系列回路MC用の基本シード値としてSeed0_MC~Seed7_MCが記憶され、M系列回路MD用の基本シード値としてSeed0_MD~Seed7_MDが記憶される例を示している。なお、基本シード値は、M系列回路MA~MDのビット数に対応した2進数である。1ページのランダマイズ処理には、8種類の基本シード値のうちの1つのみを用いる。1カラム内において、同一種類のM系列回路についても異なるシード値を供給するために、MPU22はシード値をローテーションさせる。図13はこのローテーションの一例を示している。図13の例は、M系列回路MA用の基本シード値についてのローテーションの例である。図13に示すように、MPU22は、ビット線BL0のM系列回路MAには基本シード値をそのまま与え、ビット線BL4,BL8,BL12のM系列回路MAには基本シード値をローテーションさせて与える。図13の例において、例えば、ビット線BL0のM系列回路MAに基本シード値Seed0_MAを与える場合には、ビット線BL4,BL8,BL12のM系列回路MAには夫々基本シード値Seed1_MA,Seed2_MA,Seed3_MAを与える。図13に示すローテーション処理によって、1カラム中の全てのM系列回路MA~MDに相互に異なるシード値を供給することができる。更に、MPU22は、プログラムによって、図6の41,44、ローテータ42及び排他的論理和回路43と同様の処理、即ち、基本シード値の1つをページ毎に選択する処理、選択したシード値の配列をシフトする処理、及びシフトしたシード値と固定値との排他的論理和によってシード値を得る処理を行うことが可能である。これにより、MPU22は例えば256ページ分の異なるシード値を発生してM系列回路MA~MDに供給することができる。図5及び図6の関連技術では、1カラム分の各ビット線に対応してシード値発生回路が必要であったの対し、本実施の形態においては、MPU22によってシード値を発生することができることから、16個のシード値発生回路を省略することができ、メモリカード1の回路規模を著しく削減することができる。更に、本実施の形態においては、MPU22は、プログラムによってM系列の生成演算を実行することにより、ページ途中のフレームの先頭カラムにおいてランダマイズ解除処理に必要なシード値を算出することができる。従って、読み出し時に、ページ途中のフレームからの読み出しが行われる場合でも、M系列回路MA~MDを空回しすることなく、必要なシード値をM系列回路MA~MDに供給して、ランダマイズ解除処理を行うことができる。次に、図14乃至図16を参照して、ランダマイズ処理及びランダマイズ解除処理時のシード値の発生方法について詳細に説明する。図14は書き込み時におけるシード値設定処理を示すフローチャートであり、図15はシード値の生成を説明するための説明図である。また、図16は読み出し時におけるシード値設定処理を示すフローチャートである。データ書き込みいま、ホスト機器2はデータの書き込み命令及び書き込みデータをメモリカード1に与えるものとする。カードコントローラ12のホストインタフェースモジュール21は、ホスト機器2からの書き込み命令及び書き込みデータを受信する。MPU22は、受信した書き込みデータを基に書き込むべきメモリセルMCEのアドレスを算出する。MPU22は、書き込みデータを書き込むべきページアドレス及びビットアドレスを取得するステップS1。本実施の形態においては、MPU22は、書き込みデータをランダマイズ処理するために必要なシード値をソフトウェア処理によって求めて、ランダマイズ回路26に出力する。即ち、MPU22は、ステップS2において、M系列回路の種類に応じた基本シード値をシードテーブル27から読み出す。いま、例えば、図7に示す1カラム中のビット線BL0,BL4,BL8,BL12に割当てたM系列回路MAに供給するシード値を発生させるものとする。例えば、MPU22が図15aに示すM系列回路MAに対応する基本シード値Seed0MA~Seed7MAを用いるものとする。MPU22は、1カラム中でいずれのビット線に対応したシード値を算出するかを決定するステップS3。MPU22は例えば、ビット線BL0,BL4,BL8,BL12の順に対応するシード値を算出する。MPU22は、ビット線BL0に対応したシード値を求める場合には、基本シード値をそのまま用いる。MPU22は、ビット線BL4,BL8,BL12に対応したシード値を求める場合には、ステップS4から処理をステップS5に移行して、基本シード値をローテーションさせる。例えば、MPU22は、ビット線BL4に対応したシード値を求める場合には、図15bに示すように基本シード値をローテーションさせる。こうして、同一種類のM系列回路であっても、異なるビット線に割当てるシード値は異なるものとなる。次に、MPU22は、基本シード値の各シード値をページ単位で切換えて選択する。MPU22はシード値を設定するページのページアドレスの下位3ビットを用いて、基本シード値の中から1つのシード値を選択するステップS6。図15cは図15bの基本シード値の具体例を16進数表記で示したものである。例えば、MPU22が、第0,8,...ページのカラムに設定するシード値を求めるものとする。この場合には、MPU22は、基本シード値として0x056cを選択する。図15dは選択したシード値を示している。次に、MPU22は、ステップS7において、選択したシード値をページアドレス[6:3]を用いてローテーションする。8つの基本シード値を4ビットのページアドレスでローテーションすることにより、128ページ分のシード値を生成することができる。図15eは、第8ページ用のシード値を生成するために、図15dのシード値を1ビット分だけローテーションさせたものを示している。更に、MPU22は、256ページ分のシード値を生成するために、ページアドレス[7]を用いて全ビットが0か又は1の固定値を決定しステップS8、ローテーション結果と固定値との排他的論理和演算EXORを行う。図15fは固定値として0を選択した場合の排他的論理和演算結果を示している。MPU22はこうして求めたシード値を対応するM系列回路のシフトレジスタに転送するステップS10。上述した説明では、図15fのシード値は、第8ページのビット線BL4用のシード値であり、MPU22は、ビット線BL4に接続されたM系列回路MAの13ビットのシフトレジスタに、生成したシード値を転送する。MPU22は、ステップS11,S12において、1カラム中の同一種類のM系列回路用の全てのシード値を求めたか否か、1カラム中の全てのビット線用のシード値を求めたか否かを判定し、1カラム分の全てのシード値を求めた場合には処理を終了する。ランダマイズ回路26には、クロック毎に、ホストインタフェースモジュール21を介して1カラム分の書き込みデータが与えられる。MPU22は1カラム分のシード値をランダマイズ回路26のM系列回路MA~MDに与える。これにより、1カラム分のM系列回路MA~MDは疑似乱数を発生し、排他的論理和回路33は入力データと乱数との排他的論理和演算によってランダマイズした書き込みデータを得る。この書き込みデータが1カラム分ずつ、ビット線に供給されて書き込みが行われる。なお、16個のM系列回路MA~MDには、MPU22からページが切換る毎に、算出されたシード値が与えられる。データ読み出しNAND型フラッシュメモリから11のデータの読み出し時においても、MPU22は、ソフトウェア処理によってシード値を算出する。データの読み出し時には、MPU22は、ステップS21において読み出し開始フレームを取得する。次いで、MPU22は、読み出し開始フレームがページ先頭のフレームであるか否かを判定する。MPU22は、ページ先頭のフレームの場合には、ステップS26において、通常のシード値設定処理を行う。即ち、図14と同様のフローによって、シード値が設定される。ランダマイズ回路26は、クロック毎に、1カラム分のビット線BLc0~BLc15からの読み出しデータが入力される。MPU22は書き込み時と同じシード値を発生して、1カラム分ずつランダマイズ回路26のM系列回路MA~MDに与える。これにより、1カラム分のM系列回路MA~MDは疑似乱数を発生し、排他的論理和回路33は読み出しデータと疑似乱数との排他的論理和演算によってランダマイズを解除した読み出しデータを得る。16個のM系列回路MA~MDには、読み出すページが切換る毎に、MPU22から算出されたシード値が与えられる。ここで、読み出し開始フレームがページ先頭のフレームでないものとする。この場合には、MPU22は、図14と同様の手法により、ページ先頭の1カラム分に対応するシード値の演算を行うステップS23。次に、MPU22は、演算結果のシード値を用いた16種類のM系列演算を行う。MPU22は、読み出し開始フレームのアドレスに応じたカラム数クロック数における16種類のM系列を発生する。次に、MPU22は発生した演算結果をシード値して1カラム分のM系列回路MA~MDに供給する。M系列回路MA~MDは、供給されたシード値に基づいて疑似乱数を発生させることで、書き込み時と同一の疑似乱数を発生させることができる。なお、16個のM系列回路MA~MDには、読み出すページが切換る毎に、MPU22から算出されたシード値が与えられる。図17はこの状態を示しており、例えば、ページ0のDataF1が格納されている2つ目のフレームから読み出しを行う場合でも、本実施の形態においては、図17の実線矢印に示すように、DataF1が格納されている2つ目フレームから疑似乱数を順次発生させて、ランダマイズ解除処理を行うことができる。このように本実施の形態においては、ページの途中のフレームから読み出しを行う場合でも、M系列回路を空回しすることなく、読み出し開始から比較的短時間で疑似乱数を発生して、読み出したフレームのランダマイズ解除処理が可能である。また、本実施の形態においては、疑似乱数の発生に、シード値発生回路が不要である。1カラム分のシード値発生回路を不要にすることができるので、回路面積を縮小することが可能である。なお、M系列回路をガロア型で構成したことから、M系列演算においては、他のビットの演算結果を蓄積して排他的論理和演算をする必要はなく、排他的論理和演算を全てのビットの演算と同時に行うことができるので、ソフトウェアによる処理を高速化することができる。なお、本実施の形態においては、ページ途中のフレームからの読み出しのために、ページ途中のフレームに対応するシード値を算出する例を説明したが、このシード値をシードテーブルに保持しておき、読み出してM系列回路に与えるようにしてもよい。第2の実施の形態図18は本発明の第2の実施の形態を示すブロック図である。図18において図2及び図6と同一の構成には同一符号を付して説明を省略する。本実施の形態はMPU22だけでなくシード値発生回路40を用いてシード値を発生するものであり、シード値発生回路40及びセレクタ45を付加した点が第1の実施の形態と異なる。シード値発生回路40は、図6と同様の構成であり、セレクタ41はページアドレス[2:0]であるセレクト信号seedindexによって入力端のIndex0~Index7を選択する。ローテータ42はページアドレス[6:3]である制御信号seedrotateによって、セレクタ41の出力をローテーションする。セレクタ44は、全てのビットが0又は1の固定値を、ページアドレス[7]のセレクト信号clmbaseselによって選択する。排他的論理和回路43は、セレクタ44の出力とローテータ42の出力との排他的論理和演算を行って、演算結果をシード値発生回路40の出力としてセレクタ45に出力する。セレクタ45には、MPU22からのシード値も与えられる。セレクタ45はMPU22からの制御信号によって制御されて、MPU22からのシード値又はシード値発生回路40からのシード値を選択して出力する。図18のシード値発生回路40は、1カラム分のM系列回路の夫々に対応して設けられる。次に、このように構成された実施の形態の動作について図19を参照して説明する。図19はMPU22における読み出し時におけるシード値設定処理を示すフローチャートである。図19において図14及び図16のフローと同一の手順には同一符号を付して説明を省略する。図19のフローは、図14のフローからステップS6~S9の手順を省略すると共に、ステップS13の手順及び図16のステップS24,S25の手順を追加した点が図14及び図16のフローと異なる。本実施の形態においては、書き込み時においては、MPU22はセレクタ45を制御して、シード値発生回路40の出力を選択させる。即ち、書き込み時においては、MPU22はシード値を生成せず、シード値発生回路40からのシード値がM系列回路MA~MDに供給される。本実施の形態においては、読み出し時において、読み出し開始フレームがページ先頭である場合には、MPU22はセレクタ45を制御してシード値発生回路40からのシード値を選択させて、M系列回路MA~MDに与える。本実施の形態においては、読み出し時において、読み出し開始フレームがページ先頭でない場合には、図19のフローに従ってシード値を発生する。図19のフローは、図14のフローに対してページ毎のシード値の生成処理を省略したものであり、1カラム分のシード値を生成することができる。MPU22は1カラム分のシード値を生成すると、ステップS24において、算出したシード値を用いて読み出し開始フレーム対応するクロック数におけるM系列演算を行い、ステップS25においてM系列回路に演算結果のシード値を設定する。MPU22はセレクタ45を制御してシード値発生回路40からのシード値を選択させて、M系列回路MA~MDに与える。これにより、M系列回路は読み出し開始フレーム以降のフレームにおける疑似乱数を発生する。MPU22は、読み出し開始フレームに対応するシード値を出力すると、セレクタ45に制御信号を出力して、セレクタ45に、次のフレーム以降シード値発生回路40からのシード値を選択してM系列回路MA~MDに出力させる。こうして、次のフレーム以降においては、MPU22によるシード値算出演算を行うことなく、シード値発生回路40から順次シード値がM系列回路MA~MDに供給される。全てのページにおいて、MPU22によってシード値を発生させる場合には、ページ毎に、シード値を算出するための演算処理が必要である。これに対し、本実施の形態においては、最初のページのみMPU22によってシード値を発生させており、次のページからはシード値発生回路40によってシード値を発生させているので、ページ毎のシード値演算処理を省略することができ、読み出し速度を第1の実施の形態よりも高速にすることができる。このように本実施の形態においては、MPUによるソフトウェア処理によってシード値を求めると共に、シード値発生回路によるハードウェア処理によってもシード値を求めており、ページ途中からの読み出しを短時間に行うと共に、ページ毎のシード値演算処理を省略して読み出しの高速化が可能である。本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。"