第1の抵抗変化素子と第1の選択トランジスタとを有する第1のメモリセルが、マトリクス状に配置された第1のセルアレイと、第2の抵抗変化素子と第2の選択トランジスタとを有する第2のメモリセルが、マトリクス状に配置された第2のセルアレイと、前記第1のセルアレイの複数の第1のメモリセルの中から参照用に選定された第1の参照セルに流れる電流に基づいて、第1の参照電流を出力する第1の参照電流設定回路と、前記第2のセルアレイの複数の第2のメモリセルの中から参照用に選定された第2の参照セルに流れる電流に基づいて、第2の参照電流を出力する第2の参照電流設定回路と、前記第1のセルアレイの選択された第1のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第2の参照電流とを比較し、その比較結果に応じた第1の読み出し信号を出力し、一方、前記第2のセルアレイの選択された第2のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第1の参照電流とを比較し、その比較結果に応じた第2の読み出し信号を出力するセンスアンプ回路と、前記第1、第2の参照電流設定回路を制御する制御回路と、を備え、前記制御回路は、前記複数の第1のメモリセル全の抵抗値を大きくした状態で、第1の選択トランジスタをオンして流れる読み出し電流が一番大きくなる第1のメモリセルを前記第1の参照セルとして前記第1のセルアレイから選定し、一方、前記複数の第2のメモリセル全抵抗値を大きくした状態で、第2の選択トランジスタをオンして流れる読み出し電流が一番大きくなる第2のメモリセルを前記第2の参照セルとして前記第2のセルアレイから選定し、前記第1の参照電流設定回路は、前記第1の参照セルの読み出し電流に第1の調整電流を加算して得られた電流を前記第1の参照電流として設定し、前記第2の参照電流設定回路は、前記第2の参照セルの読み出し電流に第2の調整電流を加算して得られた電流を前記第2の参照電流として設定することを特徴とする半導体記憶装置。比較電流を出力する可変電流生成回路を、さらに備え、前記制御回路は、前記複数の第1のメモリセル全の抵抗値を大きくした状態で、前記比較電流と第1の選択トランジスタをオンして流れる読み出し電流とを、前記センスアンプ回路により比較し、この比較結果に基づいて、読み出し電流が一番大きくなる第1のメモリセルを前記第1の参照セルとして前記第1のセルアレイから選定し、一方、前記複数の第2のメモリセル全の抵抗値を大きくした状態で、前記比較電流と第2の選択トランジスタをオンして流れる読み出し電流とを、前記センスアンプ回路により比較し、この比較結果に基づいて、読み出し電流が一番大きくなる第2のメモリセルを前記第2の参照セルとして前記第2のセルアレイから選定することを特徴とする請求項1に記載の半導体記憶装置。第1の抵抗変化素子と第1の選択トランジスタとを有する第1のメモリセルが、マトリクス状に配置された第1のセルアレイと、第2の抵抗変化素子と第2の選択トランジスタとを有する第2のメモリセルが、マトリクス状に配置された第2のセルアレイと、前記第1のセルアレイの複数の第1のメモリセルの中から参照用に選定された第1の参照セルに流れる電流に基づいて、第1の参照電流を出力する第1の参照電流設定回路と、前記第2のセルアレイの複数の第2のメモリセルの中から参照用に選定された第2の参照セルに流れる電流に基づいて、第2の参照電流を出力する第2の参照電流設定回路と、前記第1のセルアレイの選択された第1のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第2の参照電流とを比較し、その比較結果に応じた第1の読み出し信号を出力し、一方、前記第2のセルアレイの選択された第2のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第1の参照電流とを比較し、その比較結果に応じた第2の読み出し信号を出力するセンスアンプ回路と、前記第1、第2の参照電流設定回路を制御する制御回路と、を備え、前記制御回路は、前記複数の第1のメモリセル全ての抵抗値が小さくした状態で、第1の選択トランジスタをオンして流れる読み出し電流が一番小さくなる第1のメモリセルを前記第1の参照セルとして前記第1のセルアレイから選定し、一方、前記複数の第2のメモリセルの全ての抵抗値を小さくした状態で、第2の選択トランジスタをオンして流れる読み出し電流が一番小さくなる第2のメモリセルを前記第1の参照セルとして前記第2のセルアレイから選定し、前記第1の参照電流設定回路は、前記第1の参照セルの読み出し電流から第1の調整電流を減算して得られた電流を前記第1の参照電流として設定し、前記第2の参照電流設定回路は、前記第2の参照セルの読み出し電流から第2の調整電流を減算して得られた電流を前記第2の参照電流として設定することを特徴とする半導体記憶装置。比較電流を出力する可変電流生成回路を、さらに備え、前記制御回路は、前記複数の第1のメモリセル全ての抵抗値が小さくした状態で、前記比較電流と第1の選択トランジスタをオンして流れる読み出し電流とを、前記センスアンプ回路により比較し、この比較結果に基づいて、前記読み出し電流が一番小さくなる第1のメモリセルを前記第1の参照セルとして前記第1のセルアレイから選定し、一方、前記複数の第2のメモリセル全ての抵抗値が小さくした状態で、前記比較電流と第2の選択トランジスタをオンして流れる読み出し電流とを、前記センスアンプ回路により比較し、この比較結果に基づいて、読み出し電流が一番小さくなる第2のメモリセルを前記第2の参照セルとして前記第2のセルアレイから選定することを特徴とする請求項3に記載の半導体記憶装置。第1の抵抗変化素子と第1の選択トランジスタとを有する第1のメモリセルが、マトリクス状に配置された第1のセルアレイと、第2の抵抗変化素子と第2の選択トランジスタとを有する第2のメモリセルが、マトリクス状に配置された第2のセルアレイと、第1の参照電流を出力する第1の参照電流設定回路と、第2の参照電流を出力する第2の参照電流設定回路と、前記第1のセルアレイの選択された第1のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第2の参照電流とを比較し、その比較結果に応じた第1の読み出し信号を出力し、一方、前記第2のセルアレイの選択された第2のメモリセルに対する読み出し動作時において、選択されたビット線に流れる電流と前記第1の参照電流とを比較し、その比較結果に応じた第2の読み出し信号を出力するセンスアンプ回路と、および、前記第1、第2の参照電流設定回路を制御する制御回路と、を備え、前記第1の参照電流設定回路は、前記複数の第1のメモリセル全ての抵抗値を大きくした状態で、第1の選択トランジスタをオンして流れる読み出し電流が一番大きくなる第1のメモリセルの第1の読み出し電流と、前記複数の第1のメモリセル全ての抵抗値を小さくした状態で、第1の選択トランジスタをオンして流れる読み出し電流が一番小さくなる第1のメモリセルの第2の読み出し電流と、の間の電流を、前記第1の参照電流として設定し、前記第2の参照電流設定回路は、前記複数の第2のメモリセル全ての抵抗値を大きくした状態で、第2の選択トランジスタをオンして流れる読み出し電流が一番大きくなる第2のメモリセルの第3の読み出し電流と、前記複数の第2のメモリセル全ての抵抗値を小さくした状態で、第2の選択トランジスタをオンして流れる読み出し電流が一番小さくなる第2のメモリセルの第4の読み出し電流と、の間の電流を、前記第2の参照電流として設定することを特徴とする半導体記憶装置。前記第1の参照電流設定回路は、前記第1の読み出し電流の分布の第1の標準偏差と前記第2の読み出し電流の分布の第2の標準偏差との割合に基づいて、前記第1の参照電流を設定し、前記第2の参照電流設定回路は、前記第3の読み出し電流の分布の第3の標準偏差と前記第4の読み出し電流の分布の第4の標準偏差との割合に基づいて、前記第2の参照電流を設定することを特徴とする請求項5に記載の半導体記憶装置。前記第1の参照電流と前記第1の読み出し電流との差と、前記第1の参照電流と前記第2の読み出し電流との差との比は、前記第1の標準偏差と前記第2の標準偏差との比であり、前記第2の参照電流と前記第3の読み出し電流との差と、前記第2の参照電流と前記第4の読み出し電流との差との比は、前記第3の標準偏差と前記第4の標準偏差との比であることを特徴とする請求項6に記載の半導体記憶装置。前記抵抗変化素子は、第1の反転閾値電流以上の第1の極性の電流が流れた場合には、第1の抵抗値を有し、第2の反転閾値電流以上の電流が第1の極性と異なる第2の極性に流れた場合には、第2の抵抗値を有することを特徴とする請求項1ないし7のいずれか一項に記載の半導体記憶装置。前記抵抗変化素子は、磁気抵抗素子であることを特徴とする請求項1ないし8のいずれか一項に記載の半導体記憶装置。前記磁気抵抗素子は、MTJ素子であることを特徴とする請求項9に記載の半導体記憶装置。前記半導体記憶装置は、スピン注入型MRAMであることを特徴とする請求項1ないし10のいずれか一項に記載の半導体記憶装置。データの読み出しマージンの改善を図ることが可能な半導体記憶装置を提供する。実施例に従った半導体記憶装置は、抵抗変化素子の抵抗値に応じて2値の論理を記憶するメモリセルを用いた半導体記憶装置である。半導体記憶装置は、抵抗変化素子と選択トランジスタとが異なるビット線間で直列に接続された複数の第1のメモリセルが、マトリクス状に配置された第1のセルアレイを備える。半導体記憶装置は、抵抗変化素子と選択トランジスタとが異なるビット線間で直列に接続された複数の第2のメモリセルが、マトリクス状に配置された第2のセルアレイを備える。半導体記憶装置は、前記選択トランジスタの制御端子にそれぞれ接続された複数のワード線の電圧を制御するワード線ドライバを備える。半導体記憶装置は、前記第1のセルアレイの前記第1のメモリセルに接続された前記ビット線に接続された第1のカラム選択スイッチ回路を備える。半導体記憶装置は、前記第2のセルアレイの前記第2のメモリセルに接続された前記ビット線に接続された第2のカラム選択スイッチ回路を備える。半導体記憶装置は、前記第1のセルアレイの複数の第1のメモリセルの中から参照用に選定された第1の参照セルに流れる電流に基づいて、第1の参照電流を出力する第1の参照電流設定回路を備える。半導体記憶装置は、前記第2のセルアレイの複数の第2のメモリセルの中から参照用に選定された第2の参照セルに流れる電流に基づいて、第2の参照電流を出力する第2の参照電流設定回路を備える。半導体記憶装置は、前記第1のセルアレイの選択された第1のメモリセルに対する読み出し動作時において、前記第1のカラム選択スイッチ回路により選択されたビット線に流れる電流と前記第2の参照電流とを比較し、その比較結果に応じた第1の読み出し信号を出力し、一方、前記第2のセルアレイの選択された第2のメモリセルに対する読み出し動作時において、前記第2のカラム選択スイッチ回路により選択されたビット線に流れる電流と前記第1の参照電流とを比較し、その比較結果に応じた第2の読み出し信号を出力するセンスアンプ回路を備える。半導体記憶装置は、前記第1、第2のカラム選択スイッチ回路、および、前記第1、第2の参照電流設定回路を制御する制御回路を備える。前記制御回路は、前記複数の第1のメモリセルの全てに抵抗値が大きくなる同じ第1の論理を記憶させた状態で、選択トランジスタをオンして流れる読み出し電流が一番大きくなる第1のメモリセルを前記第1の参照セルとして前記第1のセルアレイから選定し、一方、前記複数の第2のメモリセルの全てに抵抗値が大きくなる同じ前記第1の論理を記憶させた状態で、選択トランジスタをオンして流れる読み出し電流が一番大きくなる第2のメモリセルを前記第2の参照セルとして前記第2のセルアレイから選定する。前記第1の参照電流設定回路は、前記第1の参照セルの読み出し電流に第1の調整電流を加算して得られた電流を前記第1の参照電流として設定する。前記第2の参照電流設定回路は、前記第2の参照セルの読み出し電流に第2の調整電流を加算して得られた電流を前記第2の参照電流として設定する。半導体集積回路の高集積化や電源電圧の低下に伴い、MRAMメモリマクロ内部のメモリセルの動作マージン性不良の増加する可能性がある。実施例では、MRAMセルのデータの読み出しマージンを改善する方法について提案する。以下、各実施例について図面に基づいて説明する。図1は、実施例1に係る半導体記憶装置100の構成の一例を示す図である。図1に示す半導体記憶装置例えば、スピン注入型MRAM100は、抵抗変化素子Rの抵抗値に応じて2値の論理0または1を記憶するメモリセルM1、M2を用いる。図1に示すように、この半導体記憶装置100は、複数のワード線WL1、WL2と、複数のビット線BL1、/BL1、BL2、/BL2と、ワード線ドライバ1と、第1のセルアレイ2aと、第2のセルアレイ2bと、第1のカラム選択スイッチ回路3aと、第2のカラム選択スイッチ回路3bと、センスアンプ回路4と、制御回路5と、第1の参照電流設定回路6aと、第2の参照電流設定回路6bと、可変電流生成回路7と、を備える。複数のワード線WL1、WL2は、ロウ方向に並んで配置されている。複数のビット線BL1、/BL1、BL2、/BL2は、カラム方向に並んで配置されている。第1のセルアレイ2aは、抵抗変化素子Rと選択トランジスタTrとが異なるビット線BL1、/BL1間で直列に接続された複数の第1のメモリセルM1が、マトリクス状に配置されている。第2のセルアレイ2bは、抵抗変化素子Rと選択トランジスタTrとが異なるビット線BL2、/BL2間で直列に接続された複数の第2のメモリセルM2が、マトリクス状に配置されている。ここで、図2は、図1に示すメモリセルM1の具体的な構成の一例を示す図である。図2に示すように、選択トランジスタTrは、MOSトランジスタであり、選択トランジスタTrの制御端子ゲートは、ワード線WL1に接続されている。選択トランジスタTrの電流経路の一端は、ビット線/BLに接続され、他端は抵抗変化素子Rに接続されている。なお、本実施例では、選択トランジスタTrの一端ソースは、ビット線BLに接続されている。そして、抵抗変化素子Rは、選択トランジスタTrの他端ドレインとビット線/BLとの間に接続されている。抵抗変化素子Rは、ビット線BLとビット線/BLとの間で選択トランジスタTrと直列に接続されている。この抵抗変化素子Rの抵抗値は、流れる電流に応じて変化する。なお、図1に示すメモリセルM2も、図2に示すメモリセルM2と同様の構成を有する。この抵抗変化素子Rは、ビット線BLとビット線/BLとの電位差により、第1の反転閾値電流以上の第1の極性の電流が流れた場合には、第1の抵抗値を有する。一方、抵抗変化素子Rは、ビット線BLとビット線/BLとの電位差により、第2の反転閾値電流以上の電流が第1の極性と異なる第2の極性に流れた場合には、第2の抵抗値を有する。すなわち、抵抗変化素子Rは、所定値以上の電流が流れた場合には、抵抗値が変化する。この抵抗変化素子Rは、本実施例では、磁気抵抗素子例えば、MTJ素子である。また、例えば、同じワード線WL1に接続され、且つ隣接する2つのメモリセルM1は、1つのビット線を共有するようにしてもよい。図3は、図1に示すビット線/BLを共有する2つのメモリセルM1の具体的な構成の一例を示す図である。例えば、図3に示すように、同じワード線WL1に接続され、且つ隣接する2つのメモリセルM1は、1つのビット線/BLを共有している。なお、図1に示す同じワード線WL2が接続され且つ隣接する2つのメモリセルM2も、図3に示すメモリセルM1と同様にビット線を共有するようにしてもよい。また、図1に示すように、ワード線ドライバ1は、選択トランジスタTrの制御端子ゲートにそれぞれ接続された複数のワード線WL1、WL2それぞれの電圧を制御する。このワード線WL1、WL2の電圧を制御することにより、各選択トランジスタTrのオン/オフが制御される。第1のカラム選択スイッチ回路3aは、第1のセルアレイ2aの第1のメモリセルM1に接続されたビット線BL1、/BL1に接続されている。例えば、この第1のカラム選択スイッチ回路3aは、複数のビット線BL1、/BL1の中から、1つの第1のメモリセルM1に接続された1組のビット線BL1、/BL1を選択する。第2のカラム選択スイッチ回路3bは、第2のセルアレイ2bの第2のメモリセルM2に接続されたビット線BL2、/BL2に接続されている。例えば、この第2のカラム選択スイッチ回路3bは、複数のビット線BL2、/BL2の中から、1つの第2のメモリセルM2に接続された1組のビット線BL2、/BL2を選択する。第1の参照電流設定回路6aは、第1のセルアレイ2aの複数の第1のメモリセルM1の中から参照用に選定された第1の参照セル図1ではS1と表記に流れる電流に基づいて、第1の参照電流Iref1をセンスアンプ回路4に出力する。第2の参照電流設定回路6bは、第2のセルアレイ2bの複数の第2のメモリセルM2の中から参照用に選定された第2の参照セル図1ではS2と表記に流れる電流に基づいて、第2の参照電流Iref2をセンスアンプ回路4に出力する。センスアンプ回路4は、第1のセルアレイ2aの選択された第1のメモリセルM1に対する読み出し動作時において、第1のカラム選択スイッチ回路3aにより選択されたビット線BL1、/BL1に流れる電流と該第2の参照電流Iref2とを比較し、その比較結果に応じた第1の読み出し信号を出力する。この第1の読み出し信号に基づいて、第1のメモリセルM1に記憶されている論理が判断される。一方、このセンスアンプ回路4は、第2のセルアレイ2bの選択された第2のメモリセルM2に対する読み出し動作時において、第2のカラム選択スイッチ回路3bにより選択されたビット線BL2、/BL2に流れる電流と第1の参照電流Iref1とを比較し、その比較結果に応じた第2の読み出し信号を出力する。この第2の読み出し信号に基づいて、第2のメモリセルM2に記憶されている論理が判断される。可変電流生成回路7は、可変の比較電流Icを出力する。制御回路5は、ワード線ドライバ1、第1、第2のカラム選択スイッチ回路3a、3b、センスアンプ回路4、第1、第2の参照電流設定回路6a、6b、および、可変電流生成回路7を制御する。次に、以上のような構成を有する半導体記憶装置100の参照電流を設定する動作の例について説明する。なお、以下の図4から図6では、一例として、第1の参照電流Iref1を設定する場合について説明するが、第2の参照電流Iref2を設定する場合も同様に説明される。先ず、メモリセルアレイの論理0を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例について説明する。例えば、制御回路5は、ワード線ドライバ1、第1のカラム選択スイッチ回路3a、およびセンスアンプ回路4を制御して、複数の第1のメモリセルM1の全てに抵抗値が大きくなる同じ論理例えば0を記憶させた状態にする。そして、制御回路5は、上記状態で、ワード線ドライバ1、第1のカラム選択スイッチ回路3a、センスアンプ回路4、および、可変電流生成回路7を制御して、比較電流Icを徐々に上昇させて、比較電流Icと選択トランジスタTrをオンして流れる読み出し電流とを、センスアンプ回路4により比較する。そして、制御回路5は、この比較結果に基づいて、選択トランジスタTrをオンして流れる読み出し電流が一番大きくなる第1のメモリセルM1を第1の参照セルS1として第1のセルアレイ2aから選定する後述の図4において、電流Iread0maxを有する第1のメモリセルM1を第1の参照セルS1とする。すなわち、比較電流Icを徐々に上昇させて、第1のセルアレイ2a内の複数のメモリセルのうち、最後までオン状態を維持したメモリセルを第1の参照セルS1とする。最後に、第1の参照電流設定回路6aは、第1の参照セルS1の読み出し電流に第1の調整電流を加算後述の図4において、調整電流Im0を加算して得られた電流を第1の参照電流Iref1として設定する。一方、制御回路5は、ワード線ドライバ1、第2のカラム選択スイッチ回路3b、および、センスアンプ回路4を制御して、複数の第2のメモリセルM2の全てに抵抗値が大きくなる同じ論理例えば、0を記憶させた状態にする。そして、制御回路5は、上記状態で、ワード線ドライバ1、第2のカラム選択スイッチ回路3b、センスアンプ回路4、および、可変電流生成回路7を制御して、比較電流Icを徐々に上昇させて、比較電流Icと選択トランジスタTrをオンして流れる読み出し電流とを、センスアンプ回路4により比較する。そして、制御回路5は、この比較結果に基づいて、選択トランジスタTrをオンして流れる読み出し電流が一番大きくなる第2のメモリセルM2を第2の参照セルS2として第2のセルアレイ2bから選定する後述の図4において、電流Iread0maxを有する第2のメモリセルM2を第2の参照セルS2とする。すなわち、比較電流Icを徐々に上昇させて、第2のセルアレイ2b内の複数のメモリセルのうち、最後までオン状態を維持したメモリセルを第2の参照セルS2とする。最後に、第2の参照電流設定回路6bは、第2の参照セルS2の読み出し電流に第2の調整電流を加算後述の図4において、調整電流Im0を加算して得られた電流を第2の参照電流Iref2として設定する。ここで、図4は、図1に示す半導体記憶装置100のメモリセルアレイの論理0を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例を示す図である。図4に示すように、第1のメモリセルアレイ2aの第1のメモリセルM1の全てに抵抗値が小さくなる論理0を記憶させた状態で流れる読み出し電流のうち最大の読み出し電流Iread0maxを抽出する。そして、この最大の読み出し電流Iread0maxから、所定の調整電流Im0を加算した電流を、第1の参照電流Iref1に設定する。これにより、第1の参照電流Iref1を、論理0を記憶した第1のメモリセルM1の読み出し電流の分布の最大値よりも大きく設定することができるため、論理0を記憶したメモリセルの読み出しをより確実にすることができる。さらに、例えば、比較例では、論理0を記憶したメモリセルの読み出し電流と、論理1を記憶したメモリセルの読み出し電流との中間の電流を参照電流に設定する。生成される参照電流は分布を持つため、この比較例では、読み出しマージンが小さくなり得る。しかし、図4の例では、上述のように、参照電流を、論理0を記憶した第1のメモリセルM1の読み出し電流の分布の最大値よりも確実に大きく設定することができる。本実施形態は、比較例と比較して、第1の参照電流Iref1を小さく設定することが可能となる。その結果、第1の参照電流Iref1をより適切な値に設定し、読み出しマージンを大きくすることができる。次に、メモリセルアレイの論理1を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例について説明する。例えば、制御回路5は、ワード線ドライバ1、第1のカラム選択スイッチ回路3a、およびセンスアンプ回路4を制御して、複数の第1のメモリセルM1の全てに抵抗値が小さくなる同じ論理例えば、1を記憶させた状態にする。そして、制御回路5は、上記状態で、ワード線ドライバ1、第1のカラム選択スイッチ回路3a、センスアンプ回路4、および、可変電流生成回路7を制御して、比較電流Icと選択トランジスタTrをオンして流れる読み出し電流とを、センスアンプ回路4により比較する。そして、制御回路5は、この比較結果に基づいて、読み出し電流が一番小さくなる第1のメモリセルM1を第1の参照セルS1として第1のセルアレイ2aから選定する。最後に、第1の参照電流設定回路6aは、第1の参照セルS1の読み出し電流から第1の調整電流を減算して得られた電流を第1の参照電流Iref1として設定する。一方、制御回路5は、ワード線ドライバ1、第2のカラム選択スイッチ回路3b、および、センスアンプ回路4を制御して、複数の第2のメモリセルM2の全てに抵抗値が小さくなる同じ論理例えば、1を記憶させた状態にする。そして、制御回路5は、上記状態で、ワード線ドライバ1、第2のカラム選択スイッチ回路3b、センスアンプ回路4、および、可変電流生成回路7を制御して、比較電流Icと選択トランジスタTrをオンして流れる読み出し電流とを、センスアンプ回路4により比較する。そして、制御回路5は、この比較結果に基づいて、読み出し電流が一番小さくなる第2のメモリセルM2を第2の参照セルS2として第2のセルアレイ2bから選定する。最後に、第2の参照電流設定回路6bは、第2の参照セルS2の読み出し電流から第2の調整電流を減算して得られた電流を第2の参照電流Iref2として設定する。ここで、図5は、図1に示す半導体記憶装置100のメモリセルアレイの論理1を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例を示す図である。図5に示すように、第1のメモリセルアレイ2aの第1のメモリセルM1の全てに抵抗値が大きくなる論理1を記憶させた状態で流れる読み出し電流のうち最小の読み出し電流Iread1minを抽出する。そして、この最小の読み出し電流Iread1minから、所定の調整電流Im1を引いた電流を、第1の参照電流Iref1に設定するようにしてもよい。これにより、第1の参照電流Iref1を、論理1を記憶したメモリセルの読み出し電流の分布の最大値よりも大きく設定することができるため、論理1を記憶したメモリセルの読み出しをより確実にすることができる。さらに、図5の例では、上述のように、参照電流を、論理1を記憶したメモリセルの読み出し電流の分布の最大値よりも確実に大きく設定することができる。本実施形態は、比較例と比較して、第1の参照電流Iref1を大きく設定することが可能となる。これにより、論理0を記憶したメモリセルの読み出しもより確実にすることができる。その結果、参照電流Irefをより適切な値に設定し、読み出しマージンを大きくすることができる。最後に、メモリセルアレイの論理0を記憶したメモリセルの読み出し時に流れる読み出し電流の分布、および、論理1を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例について説明する。第1の参照電流設定回路6aは、複数の第1のメモリセルM1の全てに抵抗値が大きくなる同じ第1の論理例えば、0を記憶させた状態で、選択トランジスタTrをオンして流れる読み出し電流が一番大きくなる第1のメモリセルM1の第1の読み出し電流と、複数の第1のメモリセルM1の全てに抵抗値が小さくなる第2の論理例えば、1を記憶させた状態で、選択トランジスタTrをオンして流れる読み出し電流が一番小さくなる第1のメモリセルM1の第2の読み出し電流と、の間の電流を、第1の参照電流Iref1として設定する。なお、第1の参照電流設定回路6aは、該第1の読み出し電流の分布の第1の標準偏差と該第2の読み出し電流の分布の第2の標準偏差との割合に基づいて、第1の参照電流Iref1を設定する。例えば、第1の参照電流Iref1と該第1の読み出し電流との差と、第1の参照電流Iref1と該第2の読み出し電流との差との比を、該第1の標準偏差と該第2の標準偏差との比となるように第1の参照電流Iref1を設定する。一方、第2の参照電流設定回路6bは、複数の第2のメモリセルM2の全てに該第1の論理例えば、0を記憶させた状態で、選択トランジスタTrをオンして流れる読み出し電流が一番大きくなる第2のメモリセルM2の第3の読み出し電流と、複数の第2のメモリセルM2の全てに第2の論理例えば、1を記憶させた状態で、選択トランジスタTrをオンして流れる読み出し電流が一番小さくなる第2のメモリセルM2の第4の読み出し電流と、の間の電流を、第2の参照電流Iref2として設定する。なお、第2の参照電流設定回路6bは、該第3の読み出し電流の分布の第3の標準偏差と該第4の読み出し電流の分布の第4の標準偏差との割合に基づいて、第2の参照電流Iref2を設定する。例えば、第2の参照電流Iref2と該第3の読み出し電流との差と、第2の参照電流Iref2と該第4の読み出し電流との差との比を、該第3の標準偏差と該第4の標準偏差との比となるように第2の参照電流Iref2を設定する。ここで、図6は、図1に示す半導体記憶装置100のメモリセルアレイの論理0を記憶したメモリセルの読み出し時に流れる読み出し電流の分布、および、論理1を記憶したメモリセルの読み出し時に流れる読み出し電流の分布から、参照電流を設定する例を示す図である。図6に示すように、第1のメモリセルアレイ2aの第1のメモリセルM1の全てに抵抗値が大きくなる論理1を記憶させた状態で流れる読み出し電流のうち最小の読み出し電流Iread1minを抽出する。さらに、第1のメモリセルアレイ2aの第1のメモリセルM1の全てに抵抗値が小さくなる論理0を記憶させた状態で流れる読み出し電流のうち最大の読み出し電流Iread0maxを抽出する。そして、この最小の読み出し電流Iread1minと最大の読み出し電流Iread0maxとの間の電流を第1の参照電流Iref1に設定するようにしてもよい。これにより、第1の参照電流Iref1を、論理1を記憶した第1のメモリセルM1の読み出し電流の分布標準偏差ρ1の最小値よりも小さく、且つ、論理0を記憶した第1のメモリセルM1の読み出し電流の分布標準偏差ρ0の最大値よりも大きく設定することができるため、論理1または0を記憶したメモリセルの読み出しをより確実にすることができる。特に、図6の例では、第1の参照電流Irefと読み出し電流Iread0maxとの差Im0と、参照電流Irefと読み出し電流Iread1minとの差Im1との比は、標準偏差ρ1と標準偏差ρ1との比に設定される。その結果、第1の参照電流Iref1をより適切な値に設定し、読み出しマージンを大きくすることができる。なお、既述のように、第1のメモリセルM1の読み出し動作時は、第2の参照電流Iref2と第1のメモリセルM1の読み出し電流とを比較し、一方、第2のメモリセルM2の読み出し動作時は、第1の参照電流Iref1と第2のメモリセルM2の読み出し電流とを比較することになる。すなわち、或るセルアレイの読み出し電流の分布から生成した参照電流を、異なるセルアレイの読み出しに用いている。しかし、第1のセルアレイ2aと第2のセルアレイ2bとは同じプロセスで形成され、読み出し電流の分布も第1のセルアレイ2aと第2のセルアレイ2bとは同様になる。したがって、本実施例のように、或るセルアレイの読み出し電流の分布から、異なるセルアレイの読み出しに用いる参照電流を生成しても、参照電流をより適切な値に設定することができると考えられる。以上のように、本実施例1に係る半導体記憶装置によれば、データの読み出しマージンの改善を図ることができる。なお、本実施例は、参照電流用のメモリセルを別途設ける必要がなくなり、回路面積の削減を図ることができる。また、参照セルに選定されたメモリセルは、一般的な冗長技術により、冗長セル図示せずに置き換えられて、データの読み出し書き込みの対象から外される。なお、本実施例においては、メモリセルが2値を記憶する場合について説明した。しかし、メモリセルが多値を記憶する場合も、隣接する値の組み合わせに対して上記2値の場合と同様の条件で参照電流が設定され、同様の作用効果を奏することができる。また、実施形態は例示であり、発明の範囲はそれらに限定されない。