(57)【要約】【課題】セキュリティー性により優れたデジタルＩＤデータと乱数データを高速かつ低消費電力で読み出す技術を提供する。【解決手段】不揮発性メモリ装置は、不揮発メモリと、不揮発メモリの抵抗値に応じたタイミングで終了信号を出力する抵抗時間変換器と、開始信号が入力されてから終了信号が入力されるまでの時間をデジタル値に変換する時間デジタル変換器と、を備える。時間デジタル変換器は、リング状に接続された複数の遅延素子を含む遅延リング回路と、複数の遅延素子のうちの１つからの出力の立ち上がりエッジの回数または立ち下りエッジの回数をカウントするカウンタ回路と、終了信号に基づいて、複数の遅延素子の複数の出力を第１のデータとして記憶する第１のメモリ回路と、終了信号に基づいて、カウンタ回路のカウント値を第２のデータとして記憶する第２のメモリ回路と、を含む。【選択図】図５
2017191627.tif 000002
【特許請求の範囲】
【請求項１】
抵抗値に対応して所定の情報を記憶している第１の不揮発メモリと、
前記第１の不揮発メモリに接続され、前記第１の不揮発メモリの前記抵抗値に応じたタイミングで第１の終了信号を出力する第１の抵抗時間変換器と、
開始信号が入力されてから前記第１の終了信号が入力されるまでの第１の時間を第１のデジタル値に変換する時間デジタル変換器と、を備え、
前記時間デジタル変換器は、
リング状に接続された複数の遅延素子を含む遅延リング回路と、
前記複数の遅延素子のうちの１つからの出力の立ち上がりエッジの回数または立ち下りエッジの回数をカウントするカウンタ回路と、
前記第１の終了信号に基づいて、前記複数の遅延素子の複数の出力を第１のデータとして記憶する第１のメモリ回路と、
前記第１の終了信号に基づいて、前記カウンタ回路のカウント値を第２のデータとして記憶する第２のメモリ回路と、を含む、
不揮発性メモリ装置。
【請求項２】
前記第１の抵抗時間変換器は、
前記第１の不揮発メモリに接続された第１のキャパシタと、
前記第１のキャパシタの電位と第１の参照電位との比較結果に応じて前記第１の終了信号を出力する第１のコンパレータと、を含み、
前記第１のキャパシタの電位は、前記第１の不揮発メモリの前記抵抗値に応じた速度で減少又は増加する、
請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記複数の遅延素子は複数のデジタルバッファであり、
前記複数のデジタルバッファからの前記複数の出力は、前記開始信号が前記遅延リング回路に入力されてから所定期間が経過する毎に順次変化する、
請求項１又は２に記載の不揮発性メモリ装置。
【請求項４】
抵抗値に対応して所定の情報を記憶している第２の不揮発メモリと、
前記第２の不揮発メモリに接続され、前記第２の不揮発メモリの前記抵抗値に応じたタイミングで第２の終了信号を出力する第２の抵抗時間変換器と、をさらに備え、
前記時間デジタル変換器は、さらに、前記開始信号が入力されてから前記第２の終了信号が入力されるまでの第２の時間を第２のデジタル値に変換し、
前記時間デジタル変換器は、
前記第２の終了信号に基づいて、前記複数の遅延素子の前記複数の出力を第３のデータとして記憶する第３のメモリ回路と、
前記第２の終了信号に基づいて、前記カウンタ回路の前記カウント値を第４のデータとして記憶する第４のメモリ回路と、をさらに含む、
請求項１から３のいずれか一項に記載の不揮発性メモリ装置。
【請求項５】
前記第２の抵抗時間変換器は、
前記第２の不揮発メモリに接続された第２のキャパシタと、
前記第２のキャパシタの電位と第２の参照電位との比較結果に応じて前記第２の終了信号を出力する第２のコンパレータとを含み、
前記第２のキャパシタの電位は、前記第２の不揮発メモリの前記抵抗値に応じた速度で減少又は増加する、
請求項４に記載の不揮発性メモリ装置。
【請求項６】
前記時間デジタル変換器は、
前記第１のデータと前記第２のデータに基づいて前記第１のデジタル値を生成する第１のデコーダと、
前記第３のデータと前記第４のデータに基づいて前記第２のデジタル値を生成する第２のデコーダと、をさらに含む、
請求項４又は５に記載の不揮発性メモリ装置。
【請求項７】
前記遅延リング回路は、反転回路をさらに含み、
前記反転回路は、前記開始信号に応じて前記複数の遅延素子のうちの１つの出力を反転させて、前記複数の遅延素子のうちの他の１つに前記反転された出力を出力する、
請求項１から６のいずれか一項に記載の不揮発性メモリ装置。
【請求項８】
前記時間デジタル変換器は、第１の遅延回路をさらに含み、
前記第１の遅延回路は、前記第１の終了信号が入力されてから所定期間が経過した後で、前記第２のメモリ回路に前記カウンタ回路から前記第２のデータを取得させる、
請求項１から７のいずれか一項に記載の不揮発性メモリ装置。
【請求項９】
前記カウンタ回路は、前記立ち上がりエッジ及び前記立ち下がりエッジの一方に応じて、カウントアップし、
前記第１の遅延回路は、前記第１の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、取込信号を出力し、
前記第２のメモリ回路は、前記取込信号に従って、前記カウンタ回路から前記第２のデータを取得する、
請求項８に記載の不揮発性メモリ装置。
【請求項１０】
前記第１の遅延回路は、前記第１の終了信号を所定の遅延時間だけ遅延させてから前記第２のメモリ回路に出力し、
前記第２のメモリ回路は、遅延された前記第１の終了信号に従って、前記カウンタ回路から前記第２のデータを取得する、
請求項８に記載の不揮発性メモリ装置。
【請求項１１】
前記時間デジタル変換器は、第１のサンプリングメモリ回路と、第１の補正回路と、をさらに含み、
前記第１のサンプリングメモリ回路は、前記第１の遅延回路を介さずに入力された前記第１の終了信号に従って、前記カウンタ回路の前記カウント値の少なくとも一部を第１のサンプリングデータとして記憶し、
前記第１の補正回路は、前記第１のサンプリングデータ、前記第１のデータ及び前記第２のデータから補正データを生成し、
前記第１のデジタル値は、前記第１のデータ及び前記補正データから生成される、
請求項８から１０のいずれか一項に記載の不揮発性メモリ装置。
【請求項１２】
前記時間デジタル変換器は、第１の遅延回路と、第２の遅延回路と、をさらに含み、
前記第１の遅延回路は、前記第１の終了信号が入力されてから所定期間が経過した後で、前記第２のメモリ回路に前記カウンタ回路から前記第２のデータを取得させ、
前記第２の遅延回路は、前記第２の終了信号が入力されてから所定期間が経過した後で、前記第４のメモリ回路に前記カウンタ回路から前記第４のデータを取得させる、
請求項４から６のいずれか一項に記載の不揮発性メモリ装置。
【請求項１３】
前記カウンタ回路は、前記立ち上がりエッジ及び前記立ち下がりエッジの一方に応じて、カウントアップし、
前記第１の遅延回路は、前記第１の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第１の取込信号を出力し、
前記第２のメモリ回路は、前記第１の取込信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第２の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第２の取込信号を出力し、
前記第４のメモリ回路は、前記第２の取込信号に従って、前記カウンタ回路から前記第４のデータを取得する、
請求項１２に記載の不揮発性メモリ装置。
【請求項１４】
前記第１の遅延回路は、前記第１の終了信号を所定の遅延時間だけ遅延させてから前記第２のメモリ回路に出力し、
前記第２のメモリ回路は、遅延された前記第１の終了信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第２の終了信号を所定の遅延時間だけ遅延させてから前記第４のメモリ回路に出力し、
前記第４のメモリ回路は、遅延された前記第２の終了信号に従って、前記カウンタ回路から前記第４のデータを取得する、
請求項１２に記載の不揮発性メモリ装置。
【請求項１５】
前記時間デジタル変換器は、第１のサンプリングメモリ回路と、第２のサンプリングメモリ回路と、第１の補正回路と、第２の補正回路と、をさらに含み、
前記第１のサンプリングメモリ回路は、前記第１の遅延回路を介さずに入力された前記第１の終了信号に従って、前記カウント値の少なくとも一部を第１のサンプリングデータとして記憶し、
前記第１の補正回路は、前記第１のサンプリングデータ、前記第１のデータ及び前記第２のデータから第１の補正データを生成し、
前記第１のデジタル値は、前記第１のデータ及び前記第１の補正データから生成され、
前記第２のサンプリングメモリ回路は、前記第２の遅延回路を介さずに入力された前記第２の終了信号に従って、前記カウント値の前記少なくとも一部を第２のサンプリングデータとして記憶し、
前記第２の補正回路は、前記第２のサンプリングデータ、前記第３のデータ及び前記第４のデータから第２の補正データを生成し、
前記第２のデジタル値は、前記第３のデータ及び前記第２の補正データから生成される、
請求項１２から１４のいずれか一項に記載の不揮発性メモリ装置。
【請求項１６】
前記時間デジタル変換器は、
前記開始信号に基づいて、前記複数の遅延素子の前記複数の出力を第３のデータとして記憶する第３のメモリ回路と、
前記開始信号に基づいて、前記カウンタ回路の前記カウント値を第４のデータとして記憶する第４のメモリ回路と、
前記第１のデータと前記第２のデータに基づいて第１のデコーダ出力を生成する第１のデコーダと、
前記第３のデータと前記第４のデータに基づいて第２のデコーダ出力を生成する第２のデコーダと、
前記第１のデコーダ出力と前記第２のデコーダ出力から前記第１のデジタル値を生成する第１の生成回路と、をさらに含む、
請求項１又は２に記載の不揮発性メモリ装置。
【請求項１７】
前記複数の遅延素子は、複数のデジタルバッファであり、
前記複数のデジタルバッファからの前記複数の出力は、所定の信号が前記遅延リング回路に入力されてから所定期間が経過する毎に順次変化する、
請求項１６に記載の不揮発性メモリ装置。
【請求項１８】
前記時間デジタル変換器は、第１の遅延回路と、第２の遅延回路と、をさらに含み、
前記第１の遅延回路は、前記開始信号が入力されてから所定期間が経過した後で、前記第２のメモリ回路に前記カウンタ回路から前記第２のデータを取得させ、
前記第２の遅延回路は、前記第１の終了信号が入力されてから所定期間が経過した後で、前記第４のメモリ回路に前記カウンタ回路から前記第４のデータを取得させる、
請求項１６又は１７に記載の不揮発性メモリ装置。
【請求項１９】
前記カウンタ回路は、前記立ち上がりエッジ及び前記立ち下がりエッジの一方に応じて、カウントアップし、
前記第１の遅延回路は、前記開始信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第１の取込信号を出力し、
前記第２のメモリ回路は、前記第１の取込信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第１の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第２の取込信号を出力し、
前記第４のメモリ回路は、前記第２の取込信号に従って、前記カウンタ回路から前記第４のデータを取得する、
請求項１８に記載の不揮発性メモリ装置。
【請求項２０】
前記第１の遅延回路は、前記開始信号を所定の遅延時間だけ遅延させてから前記第２のメモリ回路に出力し、
前記第２のメモリ回路は、遅延された前記開始信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第１の終了信号を所定の遅延時間だけ遅延させてから前記第４のメモリ回路に出力し、
前記第４のメモリ回路は、遅延された前記第１の終了信号に従って、前記カウンタ回路から前記第４のデータを取得する、
請求項１８に記載の不揮発性メモリ装置。
【請求項２１】
前記時間デジタル変換器は、第１のサンプリングメモリ回路と、第２のサンプリングメモリ回路と、第１の補正回路と、第２の補正回路とをさらに含み、
前記第１のサンプリングメモリ回路は、前記第１の遅延回路を介さずに入力された前記開始信号に従って、前記カウント値の少なくとも一部を第１のサンプリングデータとして記憶し、
前記第１の補正回路は、前記第１のサンプリングデータ、前記第１のデータ及び前記第２のデータから第１の補正データを生成し、
前記第１のデコーダは、前記第１のデータ及び前記第１の補正データから前記第１のデコーダ出力を生成し、
前記第２のサンプリングメモリ回路は、前記第２の遅延回路を介さずに入力された前記第１の終了信号に従って、前記カウント値の前記少なくとも一部を第２のサンプリングデータとして記憶し、
前記第２の補正回路は、前記第２のサンプリングデータ、前記第３のデータ及び前記第４のデータから第２の補正データを生成し、
前記第２のデコーダは、前記第３のデータ及び前記第２の補正データから前記第２のデコーダ出力を生成する、
請求項１８から２０のいずれか一項に記載の不揮発性メモリ装置。
【請求項２２】
抵抗値に対応して所定の情報を記憶している第２の不揮発メモリと、
前記第２の不揮発メモリに接続され、前記第２の不揮発メモリの前記抵抗値に応じたタイミングで第２の終了信号を出力する第２の抵抗時間変換器と、をさらに備え、
前記時間デジタル変換器は、さらに、前記開始信号が入力されてから前記第２の終了信号が入力されるまでの第２の時間を第２のデジタル値に変換し、
前記時間デジタル変換器は、
前記第２の終了信号に基づいて、前記複数の遅延素子の前記複数の出力を第５のデータとして記憶する第５のメモリ回路と、
前記第２の終了信号に基づいて、前記カウンタ回路の前記カウント値を第６のデータとして記憶する第６のメモリ回路と、
前記第５のデータと前記第６のデータに基づいて第３のデコーダ出力を生成する第３のデコーダと、
前記第１のデコーダ出力と前記第３のデコーダ出力から前記第２のデジタル値を生成する第２の生成回路と、をさらに含む、
請求項１６又は１７に記載の不揮発性メモリ装置。
【請求項２３】
前記時間デジタル変換器は、第１の遅延回路と、第２の遅延回路と、第３の遅延回路と、をさらに含み、
前記第１の遅延回路は、前記開始信号が入力されてから所定期間が経過した後で、前記第２のメモリ回路に前記カウンタ回路から前記第２のデータを取得させ、
前記第２の遅延回路は、前記第１の終了信号が入力されてから所定期間が経過した後で、前記第４のメモリ回路に前記カウンタ回路から前記第４のデータを取得させ、
前記第３の遅延回路は、前記第２の終了信号が入力されてから所定期間が経過した後で、前記第６のメモリ回路に前記カウンタ回路から前記第６のデータを取得させる、
請求項２２に記載の不揮発性メモリ装置。
【請求項２４】
前記カウンタ回路は、前記立ち上がりエッジ及び前記立ち下がりエッジの一方に応じて、カウントアップし、
前記第１の遅延回路は、前記開始信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第１の取込信号を出力し、
前記第２のメモリ回路は、前記第１の取込信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第１の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの他方が生じたタイミングで、第２の取込信号を出力し、
前記第４のメモリ回路は、前記第２の取込信号に従って、前記カウンタ回路から前記第４のデータを取得し、
前記第３の遅延回路は、前記第２の終了信号が入力された後、前記立ち上がりエッジ及び前記立ち下がりエッジの前記他方が生じたタイミングで、第３の取込信号を出力し、
前記第６のメモリ回路は、前記第３の取込信号に従って、前記カウンタ回路から前記第６のデータを取得する、
請求項２３に記載の不揮発性メモリ装置。
【請求項２５】
前記第１の遅延回路は、前記開始信号を所定の遅延時間だけ遅延させてから前記第２のメモリ回路に出力し、
前記第２のメモリ回路は、遅延された前記開始信号に従って、前記カウンタ回路から前記第２のデータを取得し、
前記第２の遅延回路は、前記第１の終了信号を所定の遅延時間だけ遅延させてから前記第４のメモリ回路に出力し、
前記第４のメモリ回路は、遅延された前記第１の終了信号に従って、前記カウンタ回路から前記第４のデータを取得し、
前記第３の遅延回路は、前記第２の終了信号を所定の遅延時間だけ遅延させてから前記第６のメモリ回路に出力し、
前記第６のメモリ回路は、遅延された前記第２の終了信号に従って、前記カウンタ回路から前記第６のデータを取得する、
請求項２３に記載の不揮発性メモリ装置。
【請求項２６】
前記時間デジタル変換器は、第１のサンプリングメモリ回路と、第２のサンプリングメモリ回路と、第３のサンプリングメモリ回路と、第１の補正回路と、第２の補正回路と、第３の補正回路と、をさらに含み、
前記第１のサンプリングメモリ回路は、前記第１の遅延回路を介さずに入力された前記開始信号に従って、前記カウント値の少なくとも一部を第１のサンプリングデータとして記憶し、
前記第１の補正回路は、前記第１のサンプリングデータ、前記第１のデータ及び前記第２のデータから第１の補正データを生成し、
前記第１のデコーダは、前記第１のデータ及び前記第１の補正データから前記第１のデコーダ出力を生成し、
前記第２のサンプリングメモリ回路は、前記第２の遅延回路を介さずに入力された前記第１の終了信号に従って、前記カウント値の前記少なくとも一部を第２のサンプリングデータとして記憶し、
前記第２の補正回路は、前記第２のサンプリングデータ、前記第３のデータ及び前記第４のデータから第２の補正データを生成し、
前記第２のデコーダは、前記第３のデータ及び前記第２の補正データから前記第２のデコーダ出力を生成し、
前記第３のサンプリングメモリ回路は、前記第３の遅延回路を介さずに入力された前記第２の終了信号に従って、前記カウント値の前記少なくとも一部を第３のサンプリングデータとして記憶し、
前記第３の補正回路は、前記第３のサンプリングデータ、前記第５のデータ及び前記第６のデータから第３の補正データを生成し、
前記第３のデコーダは、前記第５のデータ及び前記第３の補正データから前記第３のデコーダ出力を生成する、
請求項２３から２５のいずれか一項に記載の不揮発性メモリ装置。
【請求項２７】
前記時間デジタル変換器は、前記複数の遅延素子のそれぞれの遅延時間を調整する調整回路をさらに含む、
請求項１から２６のいずれか一項に記載の不揮発性メモリ装置。
【請求項２８】
前記時間デジタル変換器は、調整モードにおいて、
第１のテスト信号が入力されてから第２のテスト信号が入力されるまでの時間をデジタル値に変換し、
前記デジタル値が所定の範囲内にあるか否かを判定し、
前記デジタル値が所定の範囲内にない場合には、前記複数の遅延素子のそれぞれの前記遅延時間を調整し、
前記第１のテスト信号と前記第２のテスト信号は共通の基準信号に基づいて生成されている、
請求項２７に記載の不揮発性メモリ装置。
【請求項２９】
請求項１から２８のいずれか一項に記載の不揮発性メモリ装置を備えた集積回路カード。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、抵抗変化型の不揮発性メモリセルを有し、かつ耐タンパ性を有する不揮発性メモリ装置に関する。
【背景技術】
【０００２】
ネットバンキングやネットショッピングなど、インターネットを介して行われる電子商取引サービスの市場は急速に拡大している。このときの決済方法として電子マネーが用いられ、その媒体として利用されるＩＣ（”Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ”、以下同じ。）カードやスマートフォン端末も同様に利用が拡大している。これらのサービスには、決済時の安全性のため、通信における相互認証や通信データの暗号化にあたって常により高いレベルのセキュリティー技術が求められる。一般的に、セキュリティーを強化したＩＣでは、内部に搭載する暗号回路を用いて機密情報を暗号化して利用しており、情報の漏洩を防止している。この場合、内部に保持している暗号鍵（「秘密鍵」ともいう。）の情報を外部に漏洩させないことが必須となる。
【０００３】
これらの課題を解決するために、ＰＵＦ（物理的複製困難関数；ＰＨＹＳＩＣＡＬＬＹ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）技術が提案されている。ＰＵＦ技術は、製造ばらつきを活用してＩＣごとに異なるユニークな固体識別情報を生成する技術である。以降、本明細書ではＰＵＦ技術により生成された固体識別情報を「デジタルＩＤデータ」と呼ぶ。デジタルＩＤデータは、ＩＣの物理特性のばらつきに関連づけられた各デバイス固有の乱数データであると言える。ＩＣごとにその物理特性を人為的に制御することが不可能であるため、物理的な複製が不可能なデータを生成することができる（例えば、特許文献１参照）。
【０００４】
また、暗号鍵の生成には予測できない真性乱数を用いた使い捨ての秘密鍵が使用される（例えば、特許文献２参照）。真性乱数（物理乱数）とは、例えば半導体デバイス中の熱雑音のように、本質的にランダムな性質を有する物理現象を利用することによって生成される乱数のことをいう。このように、真性乱数には再現性がなく誰にも予測することが不可能であるので、真性乱数を用いて生成した秘密鍵を用いて行う暗号化は、安全性が高い。
【０００５】
特許文献１では、不揮発性メモリの固有の抵抗値のばらつきをデジタルＩＤデータとして利用する方法を示している。また、特許文献２では、不揮発性メモリの抵抗値の時間揺らぎを真性乱数源として利用している。
【０００６】
上記の不揮発性メモリの抵抗値読み出しにおいて、読み出しスピードの高速化を図るには、容量の電荷の放電を早くし、時間測定用カウンタを高速に動作させることが必要となる。しかし、ＩＣカードは、通信時に得られるワイヤレス給電による電力で短時間のうちに各種機能の実行が必要であり、超低省電力と高速生成が同時に求められる。時間測定用カウンタを高速に動作させると消費電力が増大し、ワイヤレス給電では賄えなくなる可能性がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５６８９５７１号公報
【特許文献２】特開２０１５−２１２９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
セキュリティー性を向上させるには、秘密鍵の長さ（鍵長）を長くする必要がある。しかし、鍵長を長くする場合、デジタルＩＤデータ量と乱数データ量が増加し、抵抗値の読取りや乱数生成の時間が増大する。また、相互認証や通信データの暗号化に時間がかかると、使用感の悪化を招くため、暗号化を高速に行う必要がある。しかし、暗号化を高速に行うと、消費電流が増大するといった問題が発生する。
【０００９】
そこで、本開示は、セキュリティー性に優れたデジタルＩＤデータを低消費電力で高速で生成することができる不揮発性メモリ装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本開示の一態様に係る不揮発性メモリ装置は、抵抗値に対応して所定の情報を記憶している第１の不揮発メモリと、前記第１の不揮発メモリに接続され、前記第１の不揮発メモリの前記抵抗値に応じたタイミングで第１の終了信号を出力する第１の抵抗時間変換器と、開始信号が入力されてから前記第１の終了信号が入力されるまでの第１の時間を第１のデジタル値に変換する時間デジタル変換器と、を備える。前記時間デジタル変換器は、リング状に接続された複数の遅延素子を含む遅延リング回路と、前記複数の遅延素子のうちの１つからの出力の立ち上がりエッジの回数または立ち下りエッジの回数をカウントするカウンタ回路と、前記第１の終了信号に基づいて、前記複数の遅延素子の複数の出力を第１のデータとして記憶する第１のメモリ回路と、前記第１の終了信号に基づいて、前記カウンタ回路のカウント値を第２のデータとして記憶する第２のメモリ回路と、を含む。
【００１１】
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
【発明の効果】
【００１２】
本開示に係る不揮発性メモリ装置は、セキュリティー性に優れたデジタルＩＤデータを低消費電力で高速で生成することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、不揮発性メモリ装置の基本構成の一例を示すブロック図である。
【図２】図２は、図１に示した不揮発性メモリ装置の具体的な構成の一例を示すブロック図である。
【図３】図３は、不揮発性メモリ装置において放電方式にてメモリを読み出す場合のタイミングチャートの一例を示す図である。
【図４】図４は、不揮発性メモリ装置において充電方式にてメモリを読み出す場合のタイミングチャートの一例を示す図である。
【図５】図５は、実施形態１に係る不揮発性メモリ装置の詳細構成の一例を示すブロック図である。
【図６】図６は、実施形態１に係る遅延素子リングと遅延メモリの詳細構成の一例を示すブロック図である。
【図７】図７は、図６に示した遅延素子リングと遅延メモリの動作を示すタイミングチャートの一例を示す図である。
【図８】図８は、実施形態１に係るカウンタとカウンタメモリの詳細構成の一例を示すブロック図である。
【図９】図９は、実施形態１に係るカウンタとカウンタメモリの動作を示すタイミングチャートの一例を示す図である。
【図１０】図１０は、実施形態１に係る遅延素子リングと遅延メモリとカウンタとカウンタメモリの動作を示すタイミングチャートの一例を示す図である。
【図１１】図１１は、実施形態２に係るカウンタメモリ取込信号生成回路の一例を示すブロック図である。
【図１２】図１２は、実施形態２に係る遅延素子リングとカウンタに遅延が存在した場合の、カウンタメモリ取込信号生成回路の動作を示したタイミングチャートの一例を示す図である。
【図１３】図１３は、実施形態２に係るカウンタメモリ取込信号生成回路とサンプリングメモリと補正回路を含んだ時間デジタル変換器の一例を示すブロック図である。
【図１４】図１４は、実施形態２に係る補正回路がカウント値を補正する処理フローの一具体例を示すフローチャートである。
【図１５】図１５は、実施形態２に係る補正回路がカウント値を補正しない場合の第１のタイミングチャートである。
【図１６】図１６は、実施形態２に係る補正回路がカウント値を補正しない場合の第２のタイミングチャートである。
【図１７】図１７は、実施形態２に係る補正回路がカウント値を補正する場合のタイミングチャートである。
【図１８】図１８は、実施形態２に係る補正回路がカウント値を補正しない場合の第３のタイミングチャートである。
【図１９】図１９は、実施形態３に係る時間デジタル変換器の時間測定開始時の時間と時間測定終了時の時間の両方を保存して差分を出力する構成の一例を示すブロック図である。
【図２０】図２０は、実施形態４に係る遅延素子リングの電流量を変更できる構成の一例を示す回路図である。
【図２１】図２１は、実施形態４に係る遅延素子リングの電圧量を変更できる構成の一例を示す回路図である。
【図２２】図２２は、実施形態４に係る遅延素子リングの電流量を調整する構成の一例を示すブロック図である。
【図２３】図２３は、実施形態４に係る遅延素子リングの電流量を調整する場合のタイミングチャートである。
【図２４】図２４は、実施形態１の変形例に係る時間デジタル変換器を示すブロック図である。
【図２５】図２５は、実施形態２の変形例に係る時間デジタル変換器を示すブロック図である。
【図２６】図２６は、実施形態３の変形例に係る時間デジタル変換器を示すブロック図である。
【発明を実施するための形態】
【００１４】
（本開示の基礎となった知見）
上述した特許文献１および２では、不揮発性メモリの抵抗値を読みだす回路は、コンデンサに一定電圧までチャージされた電荷を不揮発性メモリの抵抗において放電し、しきい値電圧を下回った時間を測定している。この方法では、いわば抵抗値を時間として伸長していることになり、正確な抵抗値を算出することができる。
【００１５】
当該時間を測定する方法として、クロック信号源でカウントする回路を採用している。コンデンサ容量を調整することで、放電時間を調整することも可能である。コンデンサの容量が大きければ放電時間も遅くなるため、カウント値は長くなる。また、コンデンサの容量が小さければ放電時間は速くなり、カウント値は短くなる。カウントの間隔は、クロック信号源で決定されるため、その動作周波数が抵抗カウント値の分解能となる。コンデンサの容量値が大きくなるほど放電時間が長くなり、カウント値に対する抵抗値情報の分解能が向上する。逆に、コンデンサの容量値が小さくなるほど放電時間が短くなるが、カウント値に対する抵抗値情報の分解能は低下する。
【００１６】
また、特許文献２では、不揮発性メモリの抵抗値の時間的揺れをランダムな性質とし、真性乱数を生成する方法を示している。抵抗値の読みだし方法は、前述の特許文献１の場合と同様、コンデンサの電荷が放電される時間を計測する方法を用いる。しかし、不揮発性メモリの抵抗値の時間揺れは、固有の抵抗値のばらつきよりも小さいため、特許文献２に示した技術では特許文献１に示した場合よりも高い分解能を必要とする。
【００１７】
上記の不揮発性メモリの抵抗値読み出しにおいて、読み出しスピードの高速化を図るには、容量の電荷の放電を早くし、時間測定用カウンタを高速に動作させることが必要となる。前述したＩＣカードといったモバイル型電子マネーは、ＩＣ（半導体集積回路）チップを搭載したカードであり、ＩＣカード内においても内蔵のデジタルＩＤデータを読み取り、真性乱数を生成して秘密鍵に適用することが望ましい。しかし、ＩＣカードは、通信時に得られるワイヤレス給電による電力で短時間のうちに各種機能の実行が必要であり、超低省電力と真性乱数の高速生成が同時に求められる。時間測定用カウンタを高速に動作させると消費電力が増大し、ワイヤレス給電では賄えなくなる可能性がある。
【００１８】
また、セキュリティー性を向上させるには、鍵長を長くする必要がある。しかし、鍵長を長くする場合、デジタルＩＤデータ量と乱数データ量が増加し、抵抗値読取りや乱数生成の時間が増大する。また、相互認証や通信データの暗号化に時間がかかると、使用感の悪化を招くため、暗号化を高速に行う必要がある。しかし、暗号化を高速に行うと、消費電流が増大するといった問題が発生する。
【００１９】
以下に説明する、本開示の一態様に係る不揮発性メモリ装置では、デジタルＩＤデータ読み取りスピードと乱数生成スピードを向上させつつも消費電流の増加を抑えることができる。また、取得した抵抗値データに誤りが発生しない。これにより、セキュリティー性に優れたデジタルＩＤデータを低消費電力で高速で生成することができる。
【００２０】
本開示の一態様に係る不揮発性メモリ装置は、少なくとも１つの閾値で抵抗値を判別することによりデータを記憶する不揮発メモリと、前記不揮発メモリに記憶された抵抗値を時間情報に変換する第１の変換回路と、前記時間情報をデジタル値に変換する第２の変換回路とを備え、前記第２の変換回路は、複数の遅延素子が接続された遅延リング回路と、前記複数の遅延素子のいずれかの遅延素子から出力されるデータの立ち上がりエッジまたは立ち下がりエッジの回数を測定するカウンタ回路と、前記複数の遅延素子のそれぞれから出力されたデータを保存する第１のメモリ回路と、前記カウンタ回路に保持されたデータを保存する第２のメモリ回路とを備え、時間測定開始信号が入力された時刻から時間測定終了信号が入力された時刻までの時間差に基づいて、前記第１のメモリ回路に保存されたデータと前記第２のメモリ回路に保存されたデータとを参照し、前記不揮発メモリの抵抗値に関する抵抗値情報を取得する。
【００２１】
これにより、セキュリティー性に優れたデジタルＩＤデータを低消費電力で高速で生成することができる。
【００２２】
また、前記遅延リング回路は、接続された前記複数の遅延素子のいずれかの出力を反転する反転回路を備え、前記反転回路により反転された前記複数の遅延素子のいずれかの出力が、前記複数の遅延素子のうちの第一段目の遅延素子の入力に接続されてもよい。
【００２３】
さらに、前記複数の遅延素子のいずれかの遅延素子から出力されるデータの立ち上がりエッジまたは立ち下がりエッジにより前記カウンタ回路に保持されるデータが変化した後に、前記複数の遅延素子のいずれかの遅延素子から出力されるデータの立ち上がりエッジまたは立ち下がりエッジの逆のエッジを生成するか、または、前記複数の遅延素子のいずれかの遅延素子が出力する立ち上がりエッジまたは立ち下がりエッジを遅延させるカウンタメモリ取込信号生成回路と、前記時間測定終了信号に基づいて前記カウンタ回路に保持されたデータを保存する第３のメモリ回路と、前記第１のメモリ回路に保存されたデータ、前記第２のメモリ回路に保存されたデータおよび前記第３のメモリ回路に保存されたデータを参照し、所定の判定基準に基づいて前記第３のメモリ回路に保存されたデータを補正する補正回路と、を備えてもよい。
【００２４】
また、前記第１のメモリ回路は、前記時間測定開始信号により前記複数の遅延素子のそれぞれから出力されるデータを保存し、前記時間測定終了信号により当該保存されたデータを出力し、前記第２のメモリ回路および前記第３のメモリ回路は、前記時間測定終了信号により前記第２のメモリ回路および前記第３のメモリ回路のそれぞれに保存されたデータを出力し、前記補正回路は、前記第１のメモリ回路、前記第２のメモリ回路および前記第３のメモリ回路から出力されるデータに基づいて、前記時間測定開始信号が入力されてから前記時間測定終了信号が入力されるまでの時間を算出してもよい。
【００２５】
また、前記遅延リング回路は、前記遅延素子の電源側か接地側の少なくともいずれかに、前記遅延素子に印加される電圧または電流を変更する変更回路と、前記遅延素子の遅延時間を変更するための調整回路と、を備えてもよい。
【００２６】
また、前記時間測定開始信号および前記時間測定終了信号は、外部より入力された基準信号により生成されており、前記調整回路は、前記時間測定開始信号が入力された時刻から前記時間測定終了信号が入力される時刻までの時間差が予め定められた目標値となるように前記遅延素子の遅延時間を変更してもよい。
【００２７】
また、本開示の一態様に係る集積回路カードは、上述した特徴を有する不揮発性メモリ装置を備えている。
【００２８】
まず、本開示に係る不揮発性メモリ装置等の理解を容易にするために、不揮発性メモリ装置の基本構成について説明する。
【００２９】
図１は、抵抗変化型の不揮発性メモリ装置１００の基本構成の一例を示すブロック図である。
【００３０】
図１に示すように、不揮発性メモリ装置１００は、抵抗変化型の不揮発性メモリセル（以下、単に「不揮発メモリ」と呼ぶ。）１０１と読み出し装置１０２とで構成されている。読み出し装置１０２は、抵抗時間変換器１０３と時間デジタル変換器１０４とで構成されている。不揮発性メモリ装置１００は、抵抗変化型の不揮発メモリ１０１を１つ以上有している。不揮発メモリ１０１は、少なくとも１つの閾値で抵抗値を判別することによりデータを記憶する。
【００３１】
不揮発メモリ１０１は、抵抗時間変換器１０３と接続されており、時間測定開始信号が抵抗時間変換器１０３に入力されると不揮発メモリ１０１が備えている抵抗変化素子２１０の抵抗値を時間情報に変換して時間測定終了信号を出力する。時間デジタル変換器１０４は、時間測定開始信号と時間測定終了信号の間の時間をカウントし、時間データとして出力する。つまり、不揮発メモリ１０１が備えている抵抗変化素子２１０の抵抗値が時間データとして出力されるので、時間データの値を確認すれば不揮発メモリ１０１が備えている抵抗変化素子２１０の抵抗値が分かることになる。
【００３２】
図２は、図１に示した不揮発性メモリ装置１００の具体的な構成の一例である。読み出し装置１０２は、放電方式の抵抗時間変換器１０３を有している。抵抗時間変換器１０３は、コンパレータ２０２と、ロードＰＭＯＳトランジスタ２０３と、プリチャージＰＭＯＳトランジスタ２０４と、クランプＮＭＯＳトランジスタ２０５で構成されたクランプ回路２０６と、チャージ用容量２０１を備えている。
【００３３】
時間デジタル変換器１０４は、時間測定用カウンタ２０７とＶＣＯ２０８で構成されている。コンパレータ２０２の出力は、時間測定用カウンタ２０７に接続されている。時間測定用カウンタ２０７は、ＲＳＴがロウレベルとなることで、時間測定用カウンタ内のカウント値が初期化された後、クロック信号ＣＬＫによるカウントを開始する。
【００３４】
クロック信号ＣＬＫは、ＶＣＯ２０８から出力される信号であって、抵抗変化素子２１０の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。クロック信号ＣＬＫは、例えば一定の周波数を維持する矩形波である。このクロック信号ＣＬＫが立ち上がる毎に、時間測定用カウンタ２０７のカウント値が１つ加算され、ノードＳＥＮがＶＲＥＦを下回ると時間測定用カウンタ２０７のカウントアップが停止し、そのときのカウント値がＣＯＵＮＴ＿ＯＵＴに維持される。このとき、ＶＲＥＦには閾値が入力される。
【００３５】
プリチャージＰＭＯＳトランジスタ２０４は、ゲート端子にプリチャージ制御信号ＰＲＥが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【００３６】
ロードＰＭＯＳトランジスタ２０３は、ゲート端子にロード制御信号ＬＯＡＤが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【００３７】
クランプＮＭＯＳトランジスタ２０５は、ゲート端子にクランプ制御信号ＣＬＭＰが入力され、ソース端子もしくはドレイン端子の何れか一方にノードＳＥＮが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図２ではカラムデコーダ回路は省略している。
【００３８】
ここで、読み出し装置１０２がカウント値（抵抗カウント値の一例）を出力する動作について、図２、図３および図４を用いて、具体的に説明する。図３は、不揮発性メモリ装置１００において放電方式にてメモリを読み出す場合のタイミングチャートの一例である。図４は、不揮発性メモリ装置１００において充電方式にてメモリを読み出す場合のタイミングチャートの一例である。
【００３９】
図３は、選択されたメモリセルに記憶されたメモリを放電方式にて読み出す場合のタイミングチャートである。
【００４０】
Ｔ１のプリチャージ期間では、制御信号ＰＲＥはロウレベルとなり、プリチャージＰＭＯＳトランジスタ２０４はオン状態になる。一方で、制御信号ＬＯＡＤはハイレベルとなり、ロードＰＭＯＳトランジスタ２０３はオフ状態となる。選択ワード線ＷＬｓの電位はロウレベルでトランジスタ２０９はオフ状態となっている。
【００４１】
ここで、クランプ回路２０６のクランプＮＭＯＳトランジスタ２０５のゲート端子にＶＣＬＭＰの電圧が印加されることで、選択ビット線ＢＬｓの電位は、ＶＣＬＭＰからＶＴ（クランプＮＭＯＳトランジスタ２０５の閾値）を引いた電位までプリチャージされる。また、選択ソース線ＳＬｓは、ＧＮＤに固定される。ノードＳＥＮは、ＶＤＤまでプリチャージされる。また、コンパレータの出力に接続されている時間測定用カウンタの制御信号ＲＳＴは、ハイレベルとなっている。これにより、時間測定用カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴには、０の固定値が出力される。
【００４２】
Ｔ２のセンス期間では、制御信号ＰＲＥをハイレベルとする。これにより、プリチャージＰＭＯＳトランジスタ２０４はオフ状態となり、制御信号ＬＯＡＤはロウレベルになる。これにより、ロードＰＭＯＳトランジスタ２０３はオン状態になる。また、選択ワード線ＷＬｓの電位をハイレベルにする。これにより、ＮＭＯＳトランジスタ２０９はオン状態となる。
【００４３】
そして、選択ビット線ＢＬｓから、選択された抵抗変化素子２１０を介して選択ソース線ＳＬｓへと電圧が印加される。すなわち、放電が開始される。放電開始と同時に、時間デジタル変換器１０４のＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ２０２によって、ノードＳＥＮの電位と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２１０の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
【００４４】
また、チャージ用容量２０１の容量を調整することで、放電時間を調整することも可能である。チャージ用容量２０１の容量が大きければ、ノードＳＥＮの放電時間も遅くなるため、カウント値は長くなり、容量が小さければ、ノードＳＥＮの放電時間は速くなり、カウント値は短くなる。
【００４５】
チャージ用容量２０１を用いることは、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔は、クロック信号ＣＬＫで決定されるため、クロック信号ＣＬＫの動作周波数が抵抗変化素子２１０の抵抗値を時間として換算するときのカウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る、すなわち、放電時間が１カウント値にかかる時間よりも短い可能性があるため、区別できなくなる場合がある。そこで、ノードＳＥＮに容量負荷を上乗せし、遅延させることで、意図的にカウント値の分解能で検出できるレベルの放電特性に調整することが可能となる。
【００４６】
しかしながら、原理上、放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それにともなって時間に対する放電量が緩やかに変化するため、カウント値に対する抵抗値情報の分解能が向上する。つまり、放電方式の場合は、抵抗変化素子２１０の高抵抗側の抵抗値について高精度な情報を得ることができる。
【００４７】
Ｔ３のラッチ期間では、放電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを下回ったときの時間デジタル変換器１０４のカウント値がラッチされる。ラッチされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力される。
【００４８】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択された不揮発メモリ１０１のトランジスタ２０９がオフとなり、読み出し動作が終了する。
【００４９】
図４は、選択されたメモリセルに記憶されたメモリを充電方式にて読み出す場合のタイミングチャートである。
【００５０】
Ｔ１のディスチャージ期間では、制御信号ＰＲＥ、ＬＯＡＤ共にハイレベルとなり、プリチャージＰＭＯＳトランジスタ２０４とロードＰＭＯＳトランジスタ２０３は何れもオフ状態となる。また、選択ワード線ＷＬｓの電位はロウレベルでトランジスタ２０９もオフ状態となっている。
【００５１】
ここで、クランプ回路のクランプＮＭＯＳトランジスタ２０５のゲート端子にＶＣＬＭＰの電圧が印加され、選択ワード線ＷＬｓの電位をハイレベルにすることで、ＮＭＯＳトランジスタ２０９はオン状態となる。これにより、ノードＳＥＮ、選択ビット線ＢＬｓは、抵抗変化素子２１０を介してＧＮＤへ接続され、ＧＮＤレベルまでディスチャージされる。また、コンパレータの出力に接続されている時間測定用カウンタの制御信号ＲＳＴは、ハイレベルとなっている。これにより、時間測定用カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴには、０の固定値が出力される。
【００５２】
Ｔ２のセンス期間では、制御信号ＬＯＡＤがロウレベルになることで、ロードＰＭＯＳトランジスタ２０３はオン状態になる。これにより、ロードＰＭＯＳトランジスタ２０３、クランプＮＭＯＳトランジスタ２０５、選択された不揮発メモリ１０１の電流パスが形成され、ノードＳＥＮ、選択ビット線ＢＬｓへ充電が開始される。充電開始と同時に、時間デジタル変換器１０４の制御信号ＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ２０２によって、ノードＳＥＮの電位と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２１０の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
【００５３】
また、チャージ用容量２０１を用いることは、放電方式において放電時間を調整するときと同様に、充電方式において充電時間を調整することが可能である。詳細な説明は放電方式での説明と同様であるため、割愛する。
【００５４】
原理上、充電方式の場合は、低抵抗になればなるほど充電時間が長くなり、それにともなって時間に対する充電量が緩やかに変化するため、カウント値に対する抵抗値情報の分解能が向上する。つまり、充電方式の場合は、抵抗変化素子２１０の低抵抗側の抵抗値について高精度な情報を得ることができる。
【００５５】
Ｔ３のラッチ期間では、充電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを上回ったときの時間デジタル変換器１０４のカウント値がホールドされる。ホールドされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力され、抵抗変化素子２１０の抵抗値情報を表すカウント値として扱われる。
【００５６】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択された不揮発メモリ１０１のトランジスタ２０９がオフとなり、読み出し動作が終了する。
【００５７】
このように、読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式はデジタルＩＤデータが高い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に、充電方式はデジタルＩＤデータが低い抵抗値範囲を用いて保存される場合に用いることが好ましい。
【００５８】
しかしながら、一方で、図２に示した時間デジタル変換器１０４のカウンタ幅は、ハードウェアの制約上有限な量である。つまり、前述したような放電時間や充電時間が長すぎる場合は、カウンタのレンジをオーバーしてしまい、正確な抵抗値情報が得られない問題がある。
【００５９】
このため、必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式はデジタルＩＤデータが低い抗値範囲を用いて保存される場合に用いるのが好ましい。逆に、充電方式は、デジタルＩＤデータが高い抵抗値範囲を用いて保存される場合に用いることが好ましい。
【００６０】
（実施形態１）
以下、実施形態１に係る不揮発メモリ装置について、図５〜図１０を用いて説明する。
【００６１】
はじめに、本実施形態に係る不揮発性メモリ装置の構成について説明する。図５は、本実施形態に係る不揮発性メモリ装置の構成を示すブロック図である。図６は、本実施形態に係る遅延素子リング５０１と遅延メモリ５０３の詳細構成の一例を示すブロック図である。
【００６２】
図５に示すように、本実施形態に係る不揮発性メモリ装置１００ａは、抵抗変化型の不揮発メモリ１０１と、読み出し装置１０２ａとを備えている。
【００６３】
読み出し装置１０２ａは、抵抗時間変換器１０３と、時間デジタル変換器１０４ａとを有している。抵抗変化型の不揮発メモリ１０１および抵抗時間変換器１０３は、図２に示した抵抗変化型の不揮発メモリ１０１および抵抗時間変換器１０３と同様の構成である。また、時間デジタル変換器１０４ａは、図２に示した時間デジタル変換器１０４と内部構成が異なっている。
【００６４】
時間デジタル変換器１０４ａは、遅延素子リング５０１と、遅延素子リング５０１の位相の状態（保持しているデータ。具体的には、後に詳述するＡ〜Ｈ）を保存する遅延メモリ５０３と、カウンタ５０２と、カウンタ５０２の状態（保持しているデータ。具体的にはカウント値）を記録するカウンタメモリ５０４と、遅延メモリ５０３とカウンタメモリ５０４の出力をデコードするデコーダ５０５とで構成されている。ここで、遅延素子リング５０１の位相の状態とは、遅延素子リング５０１が保持しているデータのことをいう。具体的には、後に詳述する出力データＡ〜Ｈである。また、カウンタ５０２の状態とは、カウンタ５０２が保持しているデータのことをいう。具体的には、後に詳述するカウント値である。
【００６５】
遅延素子リング５０１は、図６に示すように、例えばバッファ等に代表される、入力と出力とが同じ論理となる遅延素子６０２と、ＮＡＮＤ素子６０１とで構成される。遅延素子リング５０１では、遅延素子６０２が複数個直列に連結され、当該複数の遅延素子６０２のうちのいずれかの遅延素子は、入力のＮＡＮＤ素子６０１に接続されている。例えば、最終段の遅延素子６０２が、入力のＮＡＮＤ素子６０１に接続されている。なお、図６では、一例として、遅延素子６０２が４段連結された遅延素子リング５０１を示している。また、各遅延素子６０２に対応する出力データをビットとも呼ぶ。なお、後述するカウンタ５０２に対応する出力データもビットとも呼ぶ。
【００６６】
また、遅延メモリ５０３は、直列に連結された複数個の遅延フリップフロップ６０３で構成される。図６では、一例として、遅延フリップフロップ６０３が４段連結された遅延メモリ５０３を示している。各遅延フリップフロップ６０３は、４段の遅延素子６０２それぞれの出力に接続されている。
【００６７】
なお、抵抗時間変換器１０３および時間デジタル変換器１０４ａは、それぞれ本開示における第１の変換回路および第２の変換回路の一例である。また、遅延素子リング５０１は、本開示における遅延リング回路の一例である。カウンタ５０２は、本開示におけるカウンタ回路の一例である。遅延メモリ５０３およびカウンタメモリ５０４は、それぞれ本開示における第１のメモリ回路および第２のメモリ回路の一例である。また、ＮＡＮＤ素子６０１は、本開示における反転回路の一例である。
【００６８】
次に、本実施形態に係る不揮発性メモリ装置１００ａの動作について説明する。図７は、図６に示した遅延素子リング５０１と遅延メモリ５０３の動作を示したタイミングチャートである。
【００６９】
なお、以下において「立ち上がりエッジ」とは、出力信号がＬｏｗからＨｉｇｈに変わる境界、すなわち、出力データが０から１に変わる境界をいう。また、「立ち下がりエッジ」とは、出力信号がＨｉｇｈからＬｏｗに変わる境界、すなわち、出力データが１から０に変わる境界をいう。
【００７０】
図７に示すように、遅延素子リング５０１において時間測定開始信号が入力されると、立ち下がりエッジが第１段目の遅延素子６０２から第２、第３および第４段目の遅延素子６０２へと順に伝達される。第１段目から第４段目までのそれぞれの遅延素子６０２から出力されるデータをＤ０、Ｄ１、Ｄ２、Ｄ３とすると、図７に示すＴ１→Ｔ２→Ｔ３→Ｔ４→Ｔ５の区間ではそれぞれの遅延素子６０２から出力されるデータは、（Ｄ０，Ｄ１，Ｄ２，Ｄ３）＝（１，１，１，１）→（０，１，１，１）→（０，０，１，１）→（０，０，０，１）→（０，０，０，０）と順に変化する。第４段目の遅延素子６０２まで伝達された立ち下がりエッジは、遅延素子リング５０１のＮＡＮＤ素子６０１に伝達され、ＮＡＮＤで立ち上がりエッジへと変換される。
【００７１】
続けて、立ち上がりエッジが第１段目の遅延素子６０２から第２、第３および第４段目の遅延素子６０２へと伝わり、Ｔ５→Ｔ６→Ｔ７→Ｔ８→Ｔ９の区間ではそれぞれの遅延素子６０２から出力されるデータは、（Ｄ０，Ｄ１，Ｄ２，Ｄ３）＝（０，０，０，０）→（１，０，０，０）→（１，１，０，０）→（１，１，１，０）→（１，１，１，１）と順に変化する。第４段目の遅延素子６０２まで伝達された立ち上がりエッジは、遅延素子リング５０１のＮＡＮＤ素子６０１に伝達され、ＮＡＮＤで立ち下がりエッジへと変換される。以下、最初と同じ動作が繰り返される。
【００７２】
上記のように、４ビットで表される遅延素子６０２の出力データ（Ｄ０、Ｄ１、Ｄ２、Ｄ３）は、二進数の単純増加とはならない。そこで、（１，１，１，１）＝Ａ、（０，１，１，１）＝Ｂ、（０，０，１，１）＝Ｃ、（０，０，０，１）＝Ｄ、（０，０，０，０）＝Ｅ、（１，０，０，０）＝Ｆ、（１，１，０，０）＝Ｇ、（１，１，１，０）＝Ｈとすると、遅延素子リング５０１は、ＡからＨまでの８種類のデータの出力を繰り返す３ビットカウンタの動作をすることとなる。
【００７３】
以上のように、遅延素子リング５０１では、時間測定開始信号が入力されると、立ち上りエッジと立ち下がりエッジが交互に第１段目の遅延素子６０２から第２、第３および第４段目の遅延素子６０２へと順に伝達される。各遅延素子６０２のそれぞれの出力側には、遅延フリップフロップ６０３が接続されている。遅延メモリ５０３に時間測定終了信号が入力されると、各遅延素子６０２からの出力データ（１または０）が遅延フリップフロップ６０３に保存される。遅延メモリ５０３に保存された出力データを参照することで、時間測定開始信号が入力されてから時間測定終了信号が入力されるまでの時間を判別することができる。例えば、遅延素子６０２の１個当たりの遅延量が１００ピコ秒の場合、（Ｄ０，Ｄ１，Ｄ２，Ｄ３）＝（０，０，０，１）だった場合、時間測定開始信号が入力されてから時間測定終了信号が入力されるまでの時間は３００ピコ秒であることが分かる。
【００７４】
しかし、遅延メモリ５０３に時間測定終了信号が入力されるまで、立ち上がりエッジおよび立ち下がりエッジは交互に永久に遅延素子リング５０１を回り続ける。したがって、遅延メモリ５０３に時間測定終了信号が入力されるまでに立ち上がりエッジおよび立ち下がりエッジが何周したかの判別がつかない。そこで、図５に示したように、遅延素子リング５０１の最終段の遅延素子６０２の出力を、カウントアップ信号としてカウンタ５０２の入力に接続している。
【００７５】
図８は、本実施形態に係るカウンタ５０２とカウンタメモリ５０４の詳細構成の一例を示すブロック図である。図９は、本実施形態に係るカウンタ５０２とカウンタメモリ５０４の動作を示すタイミングチャートの一例である。
【００７６】
カウンタ５０２は、直列に連結された複数個のフリップフロップ８０３で構成される。図８では、一例として、フリップフロップ８０３が４段連結されたカウンタ５０２を示している。
【００７７】
カウンタメモリ５０４は、直列に連結された複数個のカウンタフリップフロップ８０２で構成される。図８では、一例として、カウンタフリップフロップ８０２が４段連結されたカウンタメモリ５０４を示している。各カウンタフリップフロップ８０２は、４段のフリップフロップ８０３それぞれの出力に接続されている。
【００７８】
カウンタ５０２は、図８に示した非同期式のカウンタでなく、同期式のカウンタを用いてもよい。カウンタ５０２は、カウントアップ信号が入力されるごとにカウント値を１加算する。つまり、遅延素子リング５０１の最終段の遅延素子６０２の出力Ｄ３がＬｏｗからＨｉｇｈに変わる毎に、カウント値が１加算される。
【００７９】
具体的には、フリップフロップ８０３の出力（Ｃ０，Ｃ１，Ｃ２，Ｃ３）は、（０，０，０，０）、（１，０，０，０）、（０，１，０，０）、（１，１，０，０）と１ずつ増加する。フリップフロップ８０３の出力は、カウンタメモリ５０４に接続されている。各カウンタフリップフロップ８０２に時間測定終了信号が入力されると、各カウンタフリップフロップ８０２にカウント値が格納される。カウンタメモリ５０４に格納されたカウント値を参照することで、遅延素子リング５０１は、立ち上がりまたは立ち下がりエッジが遅延素子リング５０１を何周したかを判別することができる。
【００８０】
さらに、上述の遅延メモリ５０３に取り込まれた値と、カウンタメモリ５０４に取り込まれたカウント値をデコーダ５０５でデコードし、足し合わせることで、遅延素子何段分の時間が経っているかを判別できる。遅延バッファ１段あたりの遅延量が数ピコ秒から数ナノ秒であれば、従来のカウンタで時間を測定する方法に置き換えれば、数百メガヘルツ〜数百ギガヘルツでカウンタが動作しているのと同様の解像度が得られることになる。
【００８１】
例えば、図６に示した遅延素子リング５０１および遅延メモリ５０３と、図８に示したカウンタ５０２およびカウンタメモリ５０４の組み合わせの場合では、遅延素子リング５０１における遅延素子６０２を４段、カウンタ５０２におけるフリップフロップ８０３を４ビットで構成すると、遅延バッファは８段、カウンタは１６カウントできることになり、トータルで８×１６＝１２８段測定できることになる。
【００８２】
図１０は、本実施形態に係る遅延素子リング５０１と遅延メモリ５０３とカウンタ５０２とカウンタメモリ５０４の動作を示したタイミングチャートの一例である。
【００８３】
時間測定終了信号が入力された場合、遅延メモリ５０３には遅延素子リング５０１の出力、カウンタメモリ５０４にはカウンタ５０２の出力が格納される。例えば、図１０に示したタイミングチャートに示す時刻ＴＡのタイミングで時間測定終了信号が入力された場合、遅延メモリ５０３にはＤ、カウンタメモリ５０４には十進数で９が格納される。遅延メモリ５０３の出力のＤは、遅延素子６０２の３個分に相当する。
【００８４】
さらに、デコーダ５０５は、遅延メモリ５０３の出力とカウンタメモリ５０４の出力に基づいて、時間測定開始から時間測定終了までの時間を、遅延素子６０２の何個分の遅延時間であるかを計算して出力する。図６に示した遅延素子リング５０１および遅延メモリ５０３と、図８に示したカウンタ５０２およびカウンタメモリ５０４の組み合わせの場合では、カウンタ５０２のカウント値１は遅延素子６０２の８個分に相当するので、全て遅延素子６０２の段数で表現すると３＋８×９＝７５段となる。さらに、遅延素子６０２での処理時間が１段当たり１００ピコ秒だったとすると、時間測定開始から時間測定終了までの時間は７．５ナノ秒であったことが分かる。このようにして得た時間から、不揮発メモリ１０１に設けられた抵抗変化素子２１０抵抗値（抵抗値情報）を取得することができる。
【００８５】
なお、図６における遅延素子リング５０１は、ＮＡＮＤ素子６０１と遅延素子６０２とで構成されているが、ＮＡＮＤ素子６０１の代わりにＡＮＤ素子を用いてもよい。また、遅延素子リング５０１は、ＮＡＮＤ素子６０１を用いずに遅延素子６０２のみで構成されてもよい。これらの場合、遅延素子６０２の出力を元の状態に戻す機構を新たに設けてもよい。
【００８６】
以上、本開示の一態様に係る不揮発性メモリ装置１００ａによると、遅延素子リング５０１、カウンタ５０２、遅延メモリ５０３、カウンタメモリ５０４、およびデコーダ５０５を用いて時間デジタル変換器１０４を構成することにより、カウンタの動作速度を上げることなく高い時間分解能を得ることができる。カウンタの動作速度を上げることがないため、消費電力の増加を抑えることができる。
【００８７】
図２４は、第１の実施形態の変形例に係る時間デジタル変換器１０４ｄを示す。
【００８８】
時間デジタル変換器１０４ｄは、遅延素子リング５０１と、カウンタ５０２と、遅延メモリ５０３ａ、５０３ｂと、カウンタメモリ５０４ａ、５０４ｂと、デコーダ５０５ａ、５０５ｂとを含む。遅延メモリ５０３ａと、カウンタメモリ５０４ａと、デコーダ５０５ａとは、第１のチャネルを構成し、遅延メモリ５０３ｂと、カウンタメモリ５０４ｂと、デコーダ５０５ｂは第２のチャネルを構成する。
【００８９】
遅延メモリ５０３ａ、５０３ｂの構成は、例えば、上記の遅延メモリ５０３と同様である。カウンタメモリ５０４ａ、５０４ｂの構成は、例えば、上記のカウンタメモリ５０４と同様である。デコーダ５０５ａ、５０５ｂの構成は、例えば、上記のデコーダ５０５と同様である。
【００９０】
時間デジタル変換器１０４ｄの各チャネルにおける動作は、例えば、遅延メモリ５０３、カウンタメモリ５０４、及びデコーダ５０５の動作として上記で説明されたものと同様である。
【００９１】
時間デジタル変換器１０４ｄは、例えば、外部から時間測定開始信号を受け取り、第１の抵抗時間変換器（図示せず）から第１の時間測定終了信号を受け取り、かつ、第２の抵抗時間変換器（図示せず）から第２の時間測定終了信号を受け取る。これらの抵抗時間変換器のそれぞれは、例えば、上記の抵抗時間変換器１０３と同様の構成を有する。第１の時間測定終了信号には、例えば、第１の不揮発メモリ（図示せず）の抵抗値が反映されており、第２の時間測定終了信号には、例えば、第２の不揮発メモリ（図示せず）の抵抗値が反映されている。
【００９２】
第１のチャネルは、時間測定開始時刻から第１の時間測定終了時刻までの時間の情報を、第１のデコーダ出力として出力する。第２のチャネルは、時間測定開始時刻から第２の時間測定終了時刻までの時間の情報を、第２のデコーダ出力として出力する。これにより、時間デジタル変換器１０４ｄは、異なる時間測定終了信号に基づいて、複数の時間情報を並列に出力することができる。そのため、例えば、時間デジタル変換器１０４ｄと複数の抵抗時間変換器と含む読み出し装置は、複数の不揮発メモリの抵抗値の情報を並列に取得することができる。
【００９３】
なお、時間デジタル変換器１０４ｄは、３つ以上のチャネルを備えてもよい。これにより、時間デジタル変換器１０４ｄは、３つ以上の時間情報を得ることができる。時間デジタル変換器１０４ｄにおいて、デコーダは、チャネル毎に設けられていなくてもよく、複数のチャネルで共用されてもよい。この場合、例えば、デコーダは、複数のチャネルから選択的に１組の遅延メモリ出力及びカウンタメモリ出力を取得し、これらに基づいて１つのデコーダ出力を生成する。これにより、１つのデコーダから複数のデコーダ出力が出力されうる。
【００９４】
以上より、本実施形態にかかる不揮発性メモリ装置１００ａは、セキュリティー性に優れたデジタルＩＤデータを低消費電力で高速で生成することができる。
【００９５】
（実施形態２）
次に、本実施形態に係る不揮発性メモリ装置ついて、図１１〜図１８を用いて説明する。図１１は、本実施形態に係るカウンタメモリ取込信号生成回路の一例を示すブロック図である。図１２は、本実施形態に係る遅延素子リングとカウンタに遅延が存在した場合の、カウンタメモリ取込信号生成回路の動作を示したタイミングチャートの一例である。図１３は、本実施形態に係るカウンタメモリ取込信号生成回路とサンプリングメモリと補正回路を含んだ時間デジタル変換器の一例を示すブロック図である。図１４は、本実施形態に係る補正回路がカウント値を補正する処理フローの一具体例を示すフローチャートである。
【００９６】
実際は各遅延素子６０２に動作遅延があるとき、不揮発性メモリ装置１００ａが想定通りに動作しない場合がある。特に、図８に示すような非同期式のカウンタ５０２の場合は、上位ビット（複数のフリップフロップ８０３のうちの、より後段からの出力）ほどフリップフロップ８０３の回路遅延の影響が累積され、各ビットが同時に変化しない。仮に、カウンタ５０２を同期型のカウンタで構成した場合、フリップフロップ８０３の遅延こそ累積されないものの、各ビットの出力素子には製造時のバラツキや、寄生抵抗、寄生容量などが付随しており、同時に変化をすることはない。
【００９７】
例えば、後に説明する図１２に示すように、カウンタ５０２の各ビット出力Ｃ１、Ｃ２、Ｃ３、Ｃ４は、カウントアップ信号と同じタイミングで動作しておらず、カウントアップ信号に対してそれぞれ遅延して出力される。時刻ＴＢのタイミングでは、カウンタ５０２の各ビットの変化が完了しているため、時間測定終了信号が入力されてもカウンタメモリ５０４に正常な値がとりこまれる。しかし、時刻ＴＣのタイミングで時間測定終了信号が入力されると、カウンタ５０２の各ビットの変化（例えば、ビット出力Ｃ１）が完了していないので、カウンタメモリ５０４に誤った値が保存される。
【００９８】
また、遅延素子リング５０１とカウンタ５０２の動作タイミングのずれも問題になる。例えば、図１２に示すように、遅延素子リング５０１からの出力が７から０に切り替わったタイミングでカウントアップ信号が立ち上がり、カウンタ５０２の値が１加算される。しかし、実際はカウントアップ信号の立ち上がりから時刻ＴＤの遅延時間の経過後にカウンタ５０２の０ビット目であるＣ０が変化する。時刻ＴＤの期間に時間測定終了信号が入力されても、誤った値がカウンタメモリ５０４に入力される原因となる。
【００９９】
このような問題を防ぐために、本実施形態に係る不揮発性メモリ装置では、図１１に示すようなカウンタメモリ取込信号生成回路（図１１では、単に「信号生成回路」と示している。）１１０１を設ける。
【０１００】
カウンタメモリ取込信号生成回路１１０１は、時間測定終了信号を遅らせる回路である。詳細には、カウンタメモリ取込信号生成回路１１０１は、複数の遅延素子６０２のいずれかの遅延素子から出力されるデータの立ち上がりエッジまたは立ち下がりエッジによりカウンタ回路に保持されるデータが変化した後に、複数の遅延素子６０２のいずれかの遅延素子から出力されるデータの立ち上がりエッジまたは立ち下がりエッジの逆のエッジを生成する。または、カウンタメモリ取込信号生成回路１１０１は、複数の遅延素子６０２のいずれかの遅延素子が出力する立ち上がりエッジまたは立ち下がりエッジを遅延させる。
【０１０１】
図１１に示すように、カウンタメモリ取込信号生成回路１１０１は、反転素子１１０２とフリップフロップ回路１１０３で構成されている。カウンタメモリ取込信号生成回路１１０１は、図１３に示すように時間デジタル変換器１０４ｂに設置すると、カウントアップ信号の反転時に時間測定終了信号をリサンプリングする動作を行う。
【０１０２】
具体的には、図１２のタイミングチャートに示すように、時刻ＴＣにおいて時間測定終了信号が入力された後、最初のカウントアップ信号の立ち下がりエッジ（時刻ＴＥ）において、カウンタメモリ取込信号生成回路１１０１は、カウンタメモリ取込信号を生成する。カウンタ５０２は、カウントアップ信号の立ち上がりエッジでカウント値を１加算する。
【０１０３】
カウンタメモリ５０４は、時間測定終了信号が入力された場合に、その後のカウンタメモリ取込信号によってカウント値を保存する。カウントアップ信号の半周期よりもカウンタ５０２の各ビット出力が安定する時間の方が短ければ、カウンタ５０２の出力の各ビットが動作完了した後に、必ずカウンタメモリ５０４にカウント値が保存されることになる。これにより、カウンタ出力の各ビットの動作バラツキによる誤動作を防ぐことができる。
【０１０４】
なお、上述したカウンタメモリ取込信号生成回路１１０１は、カウンタ５０２の動作とカウンタメモリ５０４のタイミングをずらすことができればよく、例えば、反転素子１１０２とフリップフロップ回路１１０３とで構成されなくてもよい。カウンタメモリ取込信号生成回路１１０１の代わりに、例えば遅延素子６０２を複数段接続して時間測定終了信号を遅らせる回路を設けてもよい。
【０１０５】
しかし、上記の方法では、時間測定終了信号が入力された時間よりもカウンタメモリ５０４が値を取り込んだ時間の方が後であるため、時間測定終了信号が入力された時間のカウント値よりも１加算されてからカウンタメモリ５０４が値を取り込む条件が存在しており、誤った値が取得されるおそれがある。
【０１０６】
これを回避するため、本実施形態に係る不揮発性メモリ装置における時間デジタル変換器１０４ｂでは、図１３に示すように、サンプリングメモリ１３０２および補正回路１３０３を追加している。
【０１０７】
サンプリングメモリ１３０２は、時間測定終了信号の入力と同時にカウンタ５０２の最下位ビット（１段目のフリップフロップ８０３からの出力）の値を取り込む。なお、サンプリングメモリ１３０２は、本開示における第３のメモリ回路に相当する。
【０１０８】
また、補正回路１３０３は、遅延メモリ５０３とカウンタメモリ５０４とサンプリングメモリ１３０２から、所定の判定基準に基づいてカウント値を補正する。なお、所定の判定基準とは、一例として、以下に説明するように、時間測定終了信号が０から１に変化し、カウンタメモリ５０４の出力（すなわち、カウンタメモリ５０４に保存されたデータ）が０でなく、遅延メモリ５０３の出力（すなわち、遅延メモリ５０３に保存されたデータ）が一周期の後半部分（例えば、図６に示したＥ、Ｆ、Ｇ、Ｈ）の値であり、カウンタメモリ５０４の最下位ビットの値とサンプリングメモリ１３０２の値が同じではない場合をいう。
【０１０９】
図１４のフローチャートにその処理手順を示す。時間デジタル変換器１０４ｂに入力される時間測定終了信号が０から１に変化すると（ステップＳ１１においてＹＥＳ）、遅延メモリ５０３とカウンタメモリ５０４とサンプリングメモリ１３０２に値が取り込まれた後、補正回路１３０３は、カウンタメモリ５０４の出力が０（４ビットの場合、正確には００００）でないかを確認する（ステップＳ１２）。
【０１１０】
カウンタメモリ５０４の出力が０でない場合（ステップＳ１２においてＮＯ）、補正回路１３０３は、遅延メモリ５０３の値を参照し、後半の範囲内（図６の様に遅延素子６０２が４段であれば、実施形態１に示したＡ〜Ｈの一周期の出力のうちの後半部分であるＥ、Ｆ、Ｇ、Ｈ）であるかを確認する（ステップＳ１３）。
【０１１１】
後半の範囲内である場合（ステップＳ１３においてＹＥＳ）、補正回路１３０３は、カウンタメモリ５０４の最下位ビットの値とサンプリングメモリ１３０２の値を比較し、カウンタメモリ５０４の最下位ビットの値とサンプリングメモリ１３０２の値が異なっているかを確認する（ステップＳ１４）。
【０１１２】
ここで、カウンタメモリ５０４の最下位ビットの値とサンプリングメモリ１３０２の値が同じではなく（ステップＳ１４においてＮＯ）、上述した全ての条件に該当する場合、カウンタメモリ５０４は時間測定終了信号が入力された時間のカウント値よりも１加算された値を取り込んでいることになる。そこで、補正回路１３０３は、カウンタメモリ５０４のカウント値を１減算（ステップＳ１５）する補正を行う。その後、補正回路１３０３は、補正したカウント値をデコーダ５０５へ出力する（ステップＳ１７）。
【０１１３】
また、上述したいずれかの条件に当てはまらなかった場合は、補正回路１３０３は、カウンタメモリ５０４のカウント値を、時間測定終了信号が入力された時間のカウント値そのままとし（ステップＳ１６）、デコーダ５０５へ出力する（ステップＳ１７）。
【０１１４】
なお、上述したカウンタメモリ５０４では、カウンタメモリ５０４における最下位ビットの値をサンプリングメモリ１３０２に取り込む場合を示したが、最下位ビット以外のビットをサンプリングメモリ１３０２取り込んで判定に使用してもよい。
【０１１５】
次に、実際にタイミングチャートを用いて補正回路１３０３の効果を説明する。遅延素子リング５０１は４ビット（Ａ〜Ｈ）、カウンタ５０２は４ビット、サンプリングメモリ１３０２はカウンタ５０２の最下位１ビットを使用する場合の例を図１５〜図１８に示す。図１５は、本実施形態に係る補正回路がカウント値を補正しない場合の第１のタイミングチャートである。図１６は、本実施形態に係る補正回路がカウント値を補正しない場合の第２のタイミングチャートである。図１７は、本実施形態に係る補正回路がカウント値を補正する場合のタイミングチャートである。図１８は、本実施形態に係る補正回路がカウント値を補正しない場合の第３のタイミングチャートである。ここで、カウントアップ信号、カウンタ出力およびカウンタメモリ取込信号には時間遅れを持たせており、より現実的なタイミングチャートとしている。
【０１１６】
図１５に示すタイミングチャートにおいて、時間測定終了信号が入力されたタイミングでは、遅延素子リング出力＝Ｄ、カウンタ出力＝０９、サンプリングメモリ出力＝１となっている。遅延メモリ出力＝Ｄ、カウンタメモリ出力＝０９（最下位ビット＝１）であり、遅延メモリ５０３が前半（Ａ〜Ｄ）で、サンプリングメモリ出力値とカウンタメモリ出力の最下位ビットが一致しているため、補正回路１３０３は１減算を行わずにそのままカウンタメモリ出力の値を出力する。
【０１１７】
次に、図１６に示すタイミングチャートにおいて、時間測定終了信号が入力されたタイミングでは、遅延素子リング出力＝Ｆ、カウンタ出力＝０９、サンプリングメモリ出力＝１となっている。遅延メモリ出力＝Ｆ、カウンタメモリ出力＝０９（最下位ビット＝１）であり、遅延メモリ５０３が後半（Ｅ〜Ｈ）であるが、サンプリングメモリ出力とカウンタメモリ出力の最下位ビットが一致しているため、補正回路１３０３は１減算を行わずにそのままカウンタメモリ出力の値を出力する。
【０１１８】
次に、図１７に示すタイミングチャートにおいて、時間測定終了信号が入力されたタイミングでは、遅延素子リング出力＝Ｇ、カウンタ出力＝０９、サンプリングメモリ出力＝１となっている。遅延メモリ出力＝Ｇ、カウンタメモリ出力＝１０（最下位ビット＝０）であり、遅延メモリ５０３が後半（Ｅ〜Ｈ）であり、かつサンプリングメモリ出力とカウンタメモリ出力の最下位ビットが異なっているため、補正回路１３０３はカウンタメモリ出力の値から１減算を行ってから出力する。
【０１１９】
次に、図１８に示すタイミングチャートにおいて、時間測定終了信号が入力されたタイミングでは、遅延素子リング出力＝Ａ、カウンタ出力＝１０、サンプリングメモリ出力＝１となっている。時間測定終了信号が入力されたタイミングではカウンタ出力＝０９であるが、カウンタメモリ出力＝１０である理由は、遅延素子リング出力に比べてカウンタ出力に遅延があるためであって、本来はカウンタ出力＝１０となるのが正しい値となる。遅延メモリ出力＝０、カウンタメモリ出力＝１０（最下位ビット＝０）、サンプリングメモリ出力＝１であり、遅延メモリが前半（Ａ〜Ｄ）であるため、補正回路は１減算を行わずにそのままカウンタメモリ出力の値を出力する。
【０１２０】
このように、補正回路１３０３は、適切にカウンタメモリ出力の値を減算し、正しい時間を得る。
【０１２１】
以上により、本実施形態にかかる不揮発性メモリ装置によると、カウンタ５０２の各ビットの動作遅延と遅延素子リング５０１とカウンタ５０２の動作遅延の影響をなくし、正確な時間測定を行うことができる。このようにして得た正確な時間から、不揮発メモリ１０１の正確な抵抗値（抵抗値情報）を取得することができる。
【０１２２】
なお、上述の動作遅延の影響をなくす手法は、抵抗変化型の不揮発メモリに関わらず、遅延素子リング５０１とカウンタ５０２とを用いる全てのシステムでその効果を発揮することができる。
【０１２３】
図２５は、第２の実施形態の変形例に係る時間デジタル変換器１０４ｅを示す。
【０１２４】
時間デジタル変換器１０４ｅは、遅延素子リング５０１と、カウンタ５０２と、カウンタメモリ取込信号生成回路１１０１ａ、１１０１ｂと、遅延メモリ５０３ａ、５０３ｂと、サンプリングメモリ１３０２ａ、１３０２ｂと、カウンタメモリ５０４ａ、５０４ｂと、補正回路１３０３ａ、１３０３ｂと、デコーダ５０５ａ、５０５ｂとを含む。カウンタメモリ取込信号生成回路１１０１ａと、遅延メモリ５０３ａと、サンプリングメモリ１３０２ａと、カウンタメモリ５０４ａと、補正回路１３０３ａと、デコーダ５０５ａとは、第１のチャネルを構成する。カウンタメモリ取込信号生成回路１１０１ｂと、遅延メモリ５０３ｂと、サンプリングメモリ１３０２ｂと、カウンタメモリ５０４ｂと、補正回路１３０３ｂと、デコーダ５０５ｂとは、第２のチャネルを構成する。
【０１２５】
カウンタメモリ取込信号生成回路１１０１ａ、１１０１ｂの構成は、例えば、上記のカウンタメモリ取込信号生成回路１１０１と同様である。遅延メモリ５０３ａ、５０３ｂの構成は、例えば、上記の遅延メモリ５０３と同様である。サンプリングメモリ１３０２ａ、１０３０２ｂの構成は、例えば、上記のサンプリングメモリ１３０２と同様である。カウンタメモリ５０４ａ、５０４ｂの構成動作は、例えば、上記のカウンタメモリ５０４と同様である。補正回路１３０３ａ、１３０３ｂの構成は、例えば、上記の補正回路１３０３と同様である。デコーダ５０５ａ、５０５ｂの構成は、例えば、上記のデコーダ５０５と同様である。
【０１２６】
時間デジタル変換器１０４ｅの各チャネルにおける動作は、例えば、カウンタメモリ取込信号生成回路１１０１、遅延メモリ５０３、サンプリングメモリ１３０２、カウンタメモリ５０４、補正回路１３０３及びデコーダ５０５の動作として上記で説明されたものと同様である。
【０１２７】
第１のチャネルは、時間測定開始信号及び第１の時間測定終了信号に基づいて、時間測定開始時刻から第１の時間測定終了時刻までの時間の情報を、第１のデコーダ出力として出力する。第２のチャネルは、時間測定開始信号及び第２の時間測定終了信号に基づいて、時間測定開始時刻から第２の時間測定終了時刻までの時間の情報を、第２のデコーダ出力として出力する。これにより、時間デジタル変換器１０４ｅは、異なる時間測定終了信号に基づいて、複数の時間情報を並列に出力することができる。そのため、例えば、時間デジタル変換器１０４ｅと複数の抵抗時間変換器とを含む読み出し装置は、複数の不揮発メモリの抵抗値の情報を並列に取得することができる。
【０１２８】
なお、時間デジタル変換器１０４ｅは、３つ以上のチャネルを備えてもよい。これにより、時間デジタル変換器１０４ｅは、３つ以上の時間情報を得ることができる。なお、時間デジタル変換器１０４ｅにおいて、デコーダはチャネル毎に設けられていなくてもよく、複数のチャネルで共用されてもよい。この場合、例えば、デコーダは、複数のチャネルから選択的に１組の遅延メモリ出力及びカウンタメモリ出力を取得し、これらに基づいて１つのデコーダ出力を生成する。これにより、１つのデコーダから複数のデコーダ出力が出力されうる。
【０１２９】
（実施形態３）
次に、実施形態３に係る不揮発性メモリ装置ついて、図１９を用いて説明する。図１９は、本実施形態に係る時間デジタル変換器の時間測定開始時の時間と時間測定終了時の時間の両方を保存して差分を出力する構成の一例を示すブロック図である。
【０１３０】
上述した実施形態にかかる不揮発性メモリ装置では、時間測定開始信号が入力されてから遅延素子リング５０１とカウンタ５０２が動作を開始し、時間測定終了信号が入力された時点の遅延素子リング５０１とカウンタ５０２の状態（保持しているデータ）を、遅延メモリ５０３とカウンタメモリ５０４とサンプリングメモリ１３０２に保存し参照することで、時間測定開始から時間測定終了までの時間を測定した。その結果、遅延素子リング５０１が動作を開始してしばらくは遅延量が変化し、一定時間後に安定するような現象が起こる場合があった。そのため、正確な時間測定のためには、遅延素子リング５０１の動作が安定した後に時間測定を開始することが望ましい。
【０１３１】
そこで、本実施形態に係る不揮発性メモリ装置では、図１９に示すように、時間デジタル変換器１０４ｃにおいて時間測定開始時間を保存するメモリと時間測定終了時間を保存するメモリとを別に備えた構成とする。これにより、時間測定の安定性を改善することができる。
【０１３２】
図１９に示すように、時間デジタル変換器１０４ｃは、時間測定開始時間を保存するための構成として、スタート遅延メモリ１９０１と、スタートカウンタメモリ１９０２と、スタートカウンタメモリ取込信号生成回路１９０３と、スタートサンプリングメモリ１９０４と、スタート補正回路１９０５と、スタートデコーダ１９１２とを備えている。また、時間デジタル変換器１０４ｃは、時間測定終了時間を保存するための構成として、ストップ遅延メモリ１９０６と、ストップカウンタメモリ１９０７と、ストップカウンタメモリ取込信号生成回路１９０８と、ストップサンプリングメモリ１９０９と、ストップ補正回路１９１０と、ストップデコーダ１９１３とを備えている。さらに、時間デジタル変換器１０４ｃは、保存された時間測定開始時間と時間測定終了時間との差分を計算し出力する差分計算回路１９１１を備えている。
【０１３３】
時間デジタル変換器１０４ｃにおいて、遅延素子リング５０１に遅延素子リング開始信号が入力されると、遅延素子リング５０１とカウンタ５０２が動作を開始する。遅延素子リング５０１の動作が安定した後、時間デジタル変換器１０４ｃに時間測定開始信号を入力する。これにより、遅延素子リング５０１の状態がスタート遅延メモリ１９０１に、カウンタ５０２の状態がスタートサンプリングメモリ１９０４およびスタートカウンタメモリ１９０２に保存される。そして、実施形態２に示した補正回路１３０３と同様、スタート補正回路１９０５によって、時間測定開始信号が入力されたときのカウンタメモリ出力が補正される。さらに、補正されたカウンタメモリ出力がスタート補正回路出力としてスタートデコーダ１９１２に出力される。
【０１３４】
その後、時間デジタル変換器１０４ｃにおいて、時間測定終了信号が入力されると、遅延素子リング５０１の状態がストップ遅延メモリ１９０６、カウンタ５０２の状態がストップサンプリングメモリ１９０９とストップカウンタメモリ１９０７に保存される。そして、実施形態２に示した補正回路１３０３と同様、ストップ補正回路１９１０によって時間測定終了信号が入力されたときのカウンタメモリ出力が補正され、補正されたカウンタメモリ出力がストップ補正回路出力としてスタートデコーダ１９１２に出力される。
【０１３５】
さらに、差分計算回路１９１１には、スタートデコーダ１９１２からスタートデコーダ出力が、ストップデコーダ１９１３からストップデコーダ出力が入力される。差分計算回路１９１１は、スタートデコーダ出力すなわち時間測定開始信号が入力された時間の補正値と時間測定終了信号が入力された時間の補正値との差分を計算し、差分計算出力として出力する。これにより、遅延素子リング５０１の動作が安定した後に時間測定を開始することができるため、より正確な時間を得ることができる。このようにして得た正確な時間から、不揮発メモリ１０１の正確な抵抗値（抵抗値情報）を取得することができる。
【０１３６】
図２６は、第３の実施形態の変形例に係る時間デジタル変換器１０４ｆを示す。
【０１３７】
時間デジタル変換器１０４ｆは、遅延素子リング５０１と、カウンタ５０２と、スタートカウンタメモリ取込信号生成回路１９０３と、スタート遅延メモリ１９０１と、スタートサンプリングメモリ１９０４と、スタートカウンタメモリ１９０２と、スタート補正回路１９０５と、スタートデコーダ１９１２と、ストップカウンタメモリ取込信号生成回路１９０８ａ、１９０８ｂと、ストップ遅延メモリ１９０６ａ、１９０６ｂと、ストップサンプリングメモリ１９０９ａ、１９０９ｂと、ストップカウンタメモリ１９０７ａ、１９０７ｂと、ストップ補正回路１９１０ａ、１９１０ｂと、ストップデコーダ１９１３ａ、１９１３ｂと、差分計算回路１９１１ａ、１９１１ｂとを含む。スタートカウンタメモリ取込信号生成回路１９０３と、スタート遅延メモリ１９０１と、スタートサンプリングメモリ１９０４と、スタートカウンタメモリ１９０２と、スタート補正回路１９０５と、スタートデコーダ１９１２とは、スタートチャネルを構成する。ストップカウンタメモリ取込信号生成回路１９０８ａと、ストップ遅延メモリ１９０６ａと、ストップサンプリングメモリ１９０９ａと、ストップカウンタメモリ１９０７ａと、ストップ補正回路１９１０ａと、ストップデコーダ１９１３ａとは、第１のストップチャネルを構成する。ストップカウンタメモリ取込信号生成回路１９０８ｂと、ストップ遅延メモリ１９０６ｂと、ストップサンプリングメモリ１９０９ｂと、ストップカウンタメモリ１９０７ｂと、ストップ補正回路１９１０ｂと、ストップデコーダ１９１３ｂとは、第２のストップチャネルを構成する。
【０１３８】
ストップカウンタメモリ取込信号生成回路１９０８ａ、１９０８ｂの構成は、例えば、上記のストップカウンタメモリ取込信号生成回路１９０８と同様である。ストップ遅延メモリ１９０６ａ、１９０６ｂの構成は、例えば、上記のストップ遅延メモリ１９０６と同様である。ストップサンプリングメモリ１９０９ａ、１９０９ｂの構成は、例えば、上記のストップサンプリングメモリ１９０９と同様である。ストップカウンタメモリ１９０７ａ、１９０７ｂの構成は、例えば、上記のストップカウンタメモリ１９０７と同様である。ストップ補正回路１９１０ａ、１９１０ｂの構成は、例えば、上記のストップ補正回路１９１０と同様である。ストップデコーダ１９１３ａ、１９１３ｂの構成は、例えば、上記のストップデコーダ１９１３と同様である。差分計算回路１９１１ａ、１９１１ｂの構成は、例えば、上記の差分計算回路１９１１と同様である。
【０１３９】
時間デジタル変換器１０４ｆの各ストップチャネルにおける動作は、例えば、ストップカウンタメモリ取込信号生成回路１９０８、ストップ遅延メモリ１９０６、ストップサンプリングメモリ１９０９、ストップカウンタメモリ１９０７、ストップ補正回路１９１０、ストップデコーダ１９１３の動作として上記で説明されたものと同様である。
【０１４０】
スタートチャネルは、遅延素子リング開始信号及び時間測定開始信号に基づいて、遅延素子リング５０１の開始時刻から時間測定開始時刻までの時間の情報を、スタートデコーダ出力として出力する。第１のストップチャネルは、遅延素子リング開始信号及び第１の時間測定終了信号に基づいて、遅延素子リング５０１の開始時刻から第１の時間測定終了時刻までの時間の情報を、第１のストップデコーダ出力として出力する。差分計算回路１９１１ａは、スタートデコーダ出力と第１のストップデコーダ出力とに基づいて、時間測定開始時刻から第１の時間測定終了時刻までの時間の情報を、第１の差分計算出力として出力する。第２のストップチャネルは、遅延素子リング開始信号及び第２の時間測定終了信号に基づいて、遅延素子リング５０１の開始時刻から第２の時間測定終了時刻までの時間の情報を、第２のストップデコーダ出力として出力する。差分計算回路１９１１ｂは、スタートデコーダ出力と第２のストップデコーダ出力とに基づいて、時間測定開始時刻から第２の時間測定終了時刻までの時間の情報を、第２の差分計算出力として出力する。これにより、時間デジタル変換器１０４ｆは、異なる時間測定終了信号に基づいて、複数の時間情報を並列に出力することができる。そのため、例えば、時間デジタル変換器１０４ｆと複数の抵抗時間変換器と含む読み出し装置は、複数の不揮発メモリの抵抗値の情報を並列に取得することができる。
【０１４１】
なお、時間デジタル変換器１０４ｆは、３つ以上のチャネルを備えてもよい。これにより、時間デジタル変換器１０４ｆは、３つ以上の時間情報を得ることができる。なお、時間デジタル変換器１０４ｆにおいて、デコーダはチャネル毎に設けられていなくてもよく、複数のチャネルで共用されてもよい。この場合、例えば、デコーダは、複数のチャネルから選択的に１組の遅延メモリ出力及びカウンタメモリ出力を取得し、これらに基づいて１つのデコーダ出力を生成する。これにより、１つのデコーダから複数のデコーダ出力が出力されうる。
【０１４２】
（実施形態４）
次に、実施形態４に係る不揮発性メモリ装置ついて、図２０〜図２３を用いて説明する。図２０は、本実施形態に係る遅延素子リングの電流量を変更できる構成の一例を示す回路図である。図２１は、本実施形態に係る遅延素子リングの電圧量を変更できる構成の一例を示す回路図である。図２２は、本実施形態に係る、遅延素子リングの電流量を調整する構成の一例を示すブロック図である。図２３は、本実施形態に係る、遅延素子リングの電流量を調整する場合のタイミングチャートである。
【０１４３】
遅延素子リング５０１の遅延素子６０２は、常に同じ遅延量であるのが理想だが、実際は製造バラツキや温度変動により遅延素子リング５０１から出力される信号の遅延時間（遅延量）が変化する場合がある。そこで、図２０に示すように、遅延素子６０２の電源側と接地側に電流源２００１を設け、電流量を変更できる構成とする。例えば、遅延素子６０２に流れる電流量を減らすと、遅延量は大きくなる。電流源２００１により各遅延素子６０２に流れる電流量を調整することで、遅延素子リング５０１において所望の遅延量を得ることができる。
【０１４４】
また、図２１のように遅延素子６０２の電源側と接地側に電圧源２１０１から電圧を供給する方法も考えられる。例えば、遅延素子６０２の電源電圧もしくは接地電圧を制限すると、遅延量は大きくなる。電圧源２１０１により各遅延素子６０２への供給電圧の大きさを調整することで、遅延素子リング５０１において所望の遅延量を得ることができる。
【０１４５】
さらに、不揮発性メモリ装置は、上述した電流源２００１および電圧源２１０１に代えて、電流量または電圧量を調整できる調整回路２２０１を備えていてもよい。調整回路２２０１は、時間測定開始信号が入力された時刻から時間測定終了信号が入力される時刻までの時間差が予め定められた目標値となるように、遅延素子６０２の遅延時間を変更する。このとき、時間測定開始信号と時間測定終了信号は、外部より入力された基準信号により生成されてもよい。具体的には、以下の通りである。
【０１４６】
図２２に遅延量を調整する場合のブロック図を示す。ここでは、電流量を調整する場合について説明する。時間デジタル変換器１０４には図１３に示したものを使用し、調整回路２２０１には図２０に示した電流量を調整できる構成が搭載されている場合を考える。また、遅延素子６０２を所望の遅延量に調整する場合のタイミングチャートを図２３に示す。
【０１４７】
目標値となるデコーダ５０５の出力値は、例えば１０以上１５以下とする。基準信号は、クリスタル発振器等の周期の安定したクロック信号であり、調整回路２２０１で使用される。調整回路２２０１は、基準信号の立ち上がりと同時に電流設定と時間測定開始信号とを出力し、基準信号の次のクロック信号もしくは複数後のクロック信号において時間測定終了信号を入力する。これにより、時間デジタル変換器１０４ｂのデコーダ５０５からデコーダ出力が得られる。デコーダ５０５からのデコーダ出力が目標値（１０以上１５以下）でない場合には、調整回路２２０１は、再び基準信号の立ち上がりと同時に、先ほどとは異なった電流設定と時間測定開始信号を出力し、基準信号の次のクロック信号もしくは複数後のクロック信号にて時間測定終了信号を入力する。これにより、時間デジタル変換器１０４ｂのデコーダ５０５から新たなデコーダ出力が得られる。以上を繰り返し、デコーダ出力が目標値に達した場合に調整を終了する。
【０１４８】
上述の方法を用いれば、遅延素子リング５０１の遅延素子６０２の遅延量を調整することができ、所望の遅延量を得ることができる。時間デジタル変換器１０４で時間をデジタル値に変換する直前に電流量の調整を行えば、遅延素子６０２の製造バラツキだけでなく温度、電源電圧の変動による遅延量のずれも補正し、目標の遅延量を得ることができる。
【０１４９】
以上、本開示の実施の形態に係る不揮発性メモリ装置について説明したが、本開示は、この実施の形態に限定されるものではない。
【０１５０】
例えば、カウンタ回路は、複数の遅延素子のいずれかの出力の立ち上がりエッジの回数を測定してもよいし、立ち下がりエッジの回数を測定してもよい。
【０１５１】
また、遅延素子リングにおいて、ＮＡＮＤ素子の代わりにＡＮＤ素子を用いてもよい。また、ＮＡＮＤ素子を用いずに遅延素子と遅延フリップフロップのみで構成してもよい。これらの構成の場合、遅延素子の出力を元の状態に戻す機構を新たに設けてもよい。
【０１５２】
また、上述したカウンタメモリ取込信号生成回路は、反転素子とフリップフロップ回路とで構成せずに、例えば遅延素子を複数段接続して時間測定終了信号を遅らせてもよい。
【０１５３】
また、上述した実施形態では、抵抗値を判別する閾値を１つ示したが、抵抗値を判別する閾値は複数あってもよい。上述した実施形態では、不揮発メモリに１または０のデータを記憶するとしたが、抵抗値を判別する閾値を増加することにより、他のデータを記憶してもよい。
【０１５４】
また、上述した実施形態では、不揮発性メモリ装置について説明したが、上述した特徴を有する不揮発性メモリ装置を備えた集積回路カードも本開示に含まれる。
【０１５５】
また、上述した動作遅延の影響をなくす手法は、抵抗変化型の不揮発メモリに関わらず、遅延素子リングとカウンタとを用いる全てのシステムについて使用してもよい。
【０１５６】
以上、一つまたは複数の態様に係る不揮発性メモリ装置について、実施形態に基づいて説明したが、本開示は、この実施形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施形態に施したものや、異なる実施形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【０１５７】
（補足）
図５において、不揮発性メモリ装置１００ａは、不揮発メモリ１０１と、抵抗時間変換器１０３と、時間デジタル変換器１０４ａとを備える。
【０１５８】
不揮発メモリ１０１は、その抵抗値に対応して所定の情報（例えば０又は１）を記憶している。
【０１５９】
抵抗時間変換器１０３は、不揮発メモリ１０１の抵抗値に応じたタイミングで時間測定終了信号を出力する。抵抗時間変換器１０３は、キャパシタなどのチャージ用容量２０１と、コンパレータ２０２とを含む。チャージ用容量２０１は不揮発メモリ１０１と電気的に接続可能である。チャージ用容量２０１には、不揮発メモリ１０１の抵抗値に応じた電荷が蓄積される。そのため、チャージ用容量２０１の電位は、チャージ用容量２０１の放電によって、不揮発メモリ１０１の抵抗値に応じた速度で減少する。あるいは、チャージ用容量２０１の電位は、チャージ用容量２０１の充電によって、不揮発メモリ１０１の抵抗値に応じた速度で増大する。コンパレータ２０２は、チャージ用容量２０１の電位と参照電圧ＶＲＥＦを比較し、その結果に応じて時間測定終了信号を出力する。なお、本開示における「チャージ用容量」は、デバイスに限定されず、例えば、寄生容量であってもよい。
【０１６０】
時間デジタル変換器１０４ａには、時間測定開始信号と時間測定終了信号が入力される。時間デジタル変換器１０４ａは、時間測定開始信号が入力されてから時間測定終了信号が入力されるまでの時間をデジタル値に変換する。
【０１６１】
時間デジタル変換器１０４ａは、遅延素子リング５０１と、カウンタ５０２と、遅延メモリ５０３と、カウンタメモリ５０４と、デコーダ５０５とを含む。
【０１６２】
図６に示されるように、遅延素子リング５０１は複数の遅延素子６０２を含み、それらがリング状に接続されている。複数の遅延素子６０２のそれぞれは、例えば、デジタルバッファである。複数の遅延素子６０２は、出力Ｄ０〜Ｄ３を出力する。図６において、遅延素子リング５０１は、ＮＡＮＤ素子６０１を含む。ＮＡＮＤ素子６０１は、時間測定開始信号に応じて、最終段の遅延素子６０２からの出力Ｄ３を反転させて、この反転した値を第１段の遅延素子６０２に出力する。これにより、出力Ｄ０〜Ｄ３は、例えば、時間測定開始信号が第１段の遅延素子６０２に入力されてから所定の遅延期間が経過する毎に順次変化する。なお、この遅延期間は、多少ばらつくことがありうる。遅延素子リング５０１は、例えば、最終段の遅延素子６０２からの出力Ｄ３を、カウントアップ信号として出力する。遅延メモリ５０３は、時間測定終了信号に基づいて、複数の遅延素子６０２の出力Ｄ０〜Ｄ３を、記憶する。
【０１６３】
図８に示されるように、カウンタ５０２は、カウントアップ信号の立ち上がりエッジの回数または立ち下りエッジの回数をカウントする。カウンタメモリ５０４は、時間測定終了信号に基づいて、カウンタ５０２の出力Ｃ０〜Ｃ３を、記憶する。
【０１６４】
デコーダ５０５は、データＤ０〜Ｄ３とデータＣ０〜Ｃ３に基づいて、デコーダ出力を生成する。本開示において、「Ｘに基づいて（ｂａｓｅｄ  ｏｎ  Ｘ）」とは、Ｘを直接的又は間接的に利用することを意味する。
【０１６５】
時間測定開始信号は、本開示における「開始信号」の一例であり、時間測定終了信号は、本開示における「第１の終了信号」の一例である。遅延素子リング５０１は、本開示における「遅延リング回路」の一例であり、カウンタ５０２は、本開示における「カウンタ回路」の一例である。ＮＡＮＤ素子６０１は、本開示における「反転回路」の一例である。遅延メモリ５０３は、本開示における「第１のメモリ回路」の一例であり、カウンタメモリ５０４は、本開示における「第２のメモリ回路」の一例である。複数の遅延素子６０２の出力Ｄ０〜Ｄ３は、本開示における「第１のデータ」の一例であり、カウンタ５０２の出力Ｃ０〜Ｃ３は、本開示における「第２のデータ」の一例である。デコーダ５０５のデコーダ出力は、本開示における「第１のデジタルデータ」の一例である。
【０１６６】
図１３において、時間デジタル変換器１０４ｂは、時間デジタル変換器１０４ａの構成に加えて、さらに、カウンタメモリ取込信号生成回路１１０１と、サンプリングメモリ１３０２と、補正回路１３０３とを備える。
【０１６７】
カウンタメモリ取込信号生成回路１１０１は、時間測定終了信号が入力されてから所定期間が経過した後で、カウンタメモリ５０４にカウンタ５０２のデータＣ０〜Ｃ３を取得させる。
【０１６８】
図１２に示される例では、最終段の遅延素子６０２の出力Ｄ３が立ち上がるタイミングで、カウントアップ信号が立ち上がり、カウンタ５０２がカウントアップする。そして、時間測定終了信号が入力された後、出力Ｄ３が立ち下がるタイミングで、カウンタメモリ取込信号が立ち上がる。この場合、カウンタメモリ５０４は、カウンタメモリ取込信号に従って、カウンタ５０２からデータＣ０〜Ｃ３を取得する。
【０１６９】
あるいは、別の例では、時間デジタル変換器１０４ｂは、カウンタメモリ取込信号生成回路１１０１に代えて、遅延回路（図示せず）を備える。この遅延回路は、時間測定終了信号を所定の遅延時間だけ遅延させてからカウンタメモリ５０４に出力する。この場合、カウンタメモリ５０４は、遅延された時間測定終了信号に従って、カウンタ５０２からデータＣ０〜Ｃ３を取得する。
【０１７０】
サンプリングメモリ１３０２は、カウンタメモリ取込信号生成回路１１０１を介さずに時間測定終了信号を受け取り、これに従って、カウンタ５０２の第１段のフリップフロップ８０３の出力Ｃ０を記憶する。
【０１７１】
補正回路１３０３は、遅延メモリ５０３、サンプリングメモリ１３０２、及びカウンタ５０２の出力から、元のカウント値又は補正されたカウント値のデータを生成する。デコーダ５０５は、遅延メモリ５０３及び補正回路１３０３の出力から、デコーダ出力を生成する。
【０１７２】
カウンタメモリ取込信号生成回路１１０１及び上記の遅延回路は、いずれも、本開示における「第１の遅延回路」の一例であり、サンプリングメモリ１３０２は、本開示における「第１のサンプリングメモリ回路」の一例であり、補正回路１３０３は、本開示における「第１の補正回路」の一例である。カウンタメモリ取込信号は、本開示における「取込信号」の一例である。
【０１７３】
図１９において、時間デジタル変換器１０４ｃは、遅延素子リング５０１と、カウンタ５０２と、スタートカウンタメモリ取込信号生成回路１９０３と、スタート遅延メモリ１９０１と、スタートサンプリングメモリ１９０４と、スタートカウンタメモリ１９０２と、スタート補正回路１９０５と、スタートデコーダ１９１２と、ストップカウンタメモリ取込信号生成回路１９０８と、ストップ遅延メモリ１９０６と、ストップサンプリングメモリ１９０９と、ストップカウンタメモリ１９０７と、ストップ補正回路１９１０と、ストップデコーダ１９１３と、差分計算回路１９１１とを備える。
【０１７４】
スタートカウンタメモリ取込信号生成回路１９０３は、本開示における「第１の遅延回路」の一例であり、ストップカウンタメモリ取込信号生成回路１９０８は、本開示における「第２の遅延回路」の一例である。スタート遅延メモリ１９０１は、本開示における「第１のメモリ回路」の一例であり、ストップ遅延メモリ１９０６は、本開示における「第３のメモリ回路」の一例である。スタートサンプリングメモリ１９０４は、本開示における「第１のサンプリングメモリ回路」の一例であり、ストップサンプリングメモリ１９０９は、本開示における「第２のサンプリングメモリ回路」の一例である。スタートカウンタメモリ１９０２は、本開示における「第２のメモリ回路」の一例であり、ストップカウンタメモリ１９０７は、本開示における「第４のメモリ回路」の一例である。スタート補正回路１９０５は、本開示における「第１の補正回路」の一例であり、ストップ補正回路１９１０は、本開示における「第２の補正回路」の一例である。スタートデコーダ１９１２は、本開示における「第１のデコーダ」の一例であり、ストップデコーダ１９１３は、本開示における「第２のデコーダ」の一例である。差分計算回路１９１１は、本開示における「第１の生成回路」の一例である。
【０１７５】
図２０〜２２において、遅延素子リング５０１に、電流源２００１、電圧源２１０１、又は調整回路２２０１が接続されている。これにより、複数の遅延素子６０２のそれぞれの遅延時間が調整されうる。電流源２００１、電圧源２１０１、及び調整回路２２０１は、いずれも、本開示における「調整回路」の一例である。
【０１７６】
図２２において、調整回路２２０１は、基準信号に基づいて、テスト用の時間測定開始信号とテスト用の時間測定終了信号を生成し、時間デジタル変換器１０４ｂに出力する。時間デジタル変換器１０４ｂは、時間測定開始信号が入力されてから、時間測定終了信号が入力されるまでの時間をデコーダ出力として出力する。調整回路２２０１は、デコーダ出力の値が所定の範囲内にあるか否かを判定する。調整回路２２０１は、デコーダ出力の値が所定の範囲内にない場合には、複数の遅延素子６０２のそれぞれの前記遅延時間を調整する。
【０１７７】
テスト用の時間測定開始信号は、本開示における「第１のテスト信号」の一例であり、テスト用の時間測定終了信号は、本開示における「第２のテスト信号」の一例である。時間デジタル変換器１０４ｂから調整回路２２０１に出力されるデコーダ出力は、本開示における「デジタル値」の一例である。
【０１７８】
図２４において、時間デジタル変換器１０４ｄは、遅延素子リング５０１と、カウンタ５０２と、遅延メモリ５０３ａ、５０３ｂと、カウンタメモリ５０４ａ、５０４ｂと、デコーダ５０５ａ、５０５ｂとを含む。
【０１７９】
第１の時間測定終了信号は、本開示における「第１の終了信号」の一例であり、第２の時間測定終了信号は、本開示における「第２の終了信号」の一例である。遅延メモリ５０３ａは、本開示における「第１のメモリ回路」の一例であり、遅延メモリ５０３ｂは、本開示における「第３のメモリ回路」の一例である。カウンタメモリ５０４ａは、本開示における「第２のメモリ回路」の一例であり、カウンタメモリ５０４ｂは、本開示における「第４のメモリ回路」の一例である。遅延素子リング５０１から遅延メモリ５０３ａへ出力されるデータは、本開示における「第１のデータ」の一例であり、カウンタ５０２からカウンタメモリ５０４ａへ出力されるデータは、本開示における「第２のデータ」の一例である。遅延素子リング５０１から遅延メモリ５０３ｂへ出力されるデータは、本開示における「第３のデータ」の一例であり、カウンタ５０２からカウンタメモリ５０４ｂへ出力されるデータは、本開示における「第４のデータ」の一例である。デコーダ５０５ａのデコーダ出力は、本開示における「第１のデジタルデータ」の一例であり、デコーダ５０５ｂのデコーダ出力は、本開示における「第２のデジタルデータ」の一例である。
【０１８０】
図２５において、時間デジタル変換器１０４ｅは、時間デジタル変換器１０４ｄの構成に加えて、さらに、カウンタメモリ取込信号生成回路１１０１ａ、１１０１ｂと、サンプリングメモリ１３０２ａ、１３０２ｂと、補正回路１３０３ａ、１３０３ｂとを備える。
【０１８１】
カウンタメモリ取込信号生成回路１１０１ａは、本開示における「第１の遅延回路」の一例であり、カウンタメモリ取込信号生成回路１１０１ｂは、本開示における「第２の遅延回路」の一例である。サンプリングメモリ１３０２ａは、本開示における「第１のサンプリングメモリ回路」の一例であり、サンプリングメモリ１３０２ｂは、本開示における「第２のサンプリングメモリ回路」の一例である。補正回路１３０３ａは、本開示における「第１の補正回路」の一例であり、補正回路１３０３ｂは、本開示における「第２の補正回路」の一例である。
【０１８２】
図２６において、時間デジタル変換器１０４ｆは、遅延素子リング５０１と、カウンタ５０２と、スタートカウンタメモリ取込信号生成回路１９０３と、スタート遅延メモリ１９０１と、スタートサンプリングメモリ１９０４と、スタートカウンタメモリ１９０２と、スタート補正回路１９０５と、スタートデコーダ１９１２と、ストップカウンタメモリ取込信号生成回路１９０８ａ、１９０８ｂと、ストップ遅延メモリ１９０６ａ、１９０６ｂと、ストップサンプリングメモリ１９０９ａ、１９０９ｂと、ストップカウンタメモリ１９０７ａ、１９０７ｂと、ストップ補正回路１９１０ａ、１９１０ｂと、ストップデコーダ１９１３ａ、１９１３ｂと、差分計算回路１９１１ａ、１９１１ｂとを備える。
【０１８３】
ストップ遅延メモリ１９０６ａは、本開示における「第３のメモリ回路」の一例である。ストップ遅延メモリ１９０６ｂは、本開示における「第５のメモリ回路」の一例である。ストップサンプリングメモリ１９０９ａは、本開示における「第２のサンプリングメモリ回路」の一例であり、ストップサンプリングメモリ１９０９ｂは、本開示における「第３のサンプリングメモリ回路」の一例である。ストップカウンタメモリ１９０７ａは、本開示における「第４のメモリ回路」の一例であり、ストップカウンタメモリ１９０７ｂは、本開示における「第６のメモリ回路」の一例である。ストップ補正回路１９１０ａは、本開示における「第２の補正回路」の一例であり、ストップ補正回路１９１０ｂは、本開示における「第３の補正回路」の一例である。ストップデコーダ１９１３ａは、本開示における「第２のデコーダ」の一例であり、ストップデコーダ１９１３ｂは、本開示における「第３のデコーダ」の一例である。差分計算回路１９１１ａは、本開示における「第１の生成回路」の一例であり、差分計算回路１９１１ｂは、本開示における「第２の生成回路」の一例である。
【産業上の利用可能性】
【０１８４】
本開示に係る不揮発性メモリ装置は、データ暗号を行うＩＣ及びＳｏＣ、並びに、ホストコンピュータ及びサーバに認証を伴うアクセスを行うＩＣ及びＳｏＣなどへ搭載するメモリ装置として有用である。
【符号の説明】
【０１８５】
１００、１００ａ  不揮発性メモリ装置
１０１  不揮発メモリ
１０２、１０２ａ  読み出し装置
１０３  抵抗時間変換器
１０４、１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ、１０４ｅ、１０４ｆ  時間デジタル変換器
２０１  チャージ用容量
２０２  コンパレータ
２０３  ロードＰＭＯＳトランジスタ
２０４  プリチャージＰＭＯＳトランジスタ
２０５  クランプＮＭＯＳトランジスタ
２０６  クランプ回路
２０７  時間測定用カウンタ
２０８  ＶＣＯ
２０９  トランジスタ
２１０  抵抗変化素子
５０１  遅延素子リング
５０２  カウンタ
５０３、５０３ａ、５０３ｂ  遅延メモリ
５０４、５０４ａ、５０４ｂ  カウンタメモリ
５０５、５０５ａ、５０５ｂ  デコーダ
６０１  ＮＡＮＤ素子
６０２  遅延素子
６０３  遅延フリップフロップ
８０２  カウンタフリップフロップ
８０３  フリップフロップ
１１０１、１１０１ａ、１１０１ｂ  カウンタメモリ取込信号生成回路
１３０２、１３０２ａ、１３０２ｂ  サンプリングメモリ
１３０３、１３０３ａ、１３０３ｂ  補正回路
１９０１  スタート遅延メモリ
１９０２  スタートカウンタメモリ
１９０３  スタートカウンタメモリ取込信号生成回路
１９０４  スタートサンプリングメモリ
１９０５  スタート補正回路
１９０６、１９０６ａ、１９０６ｂ  ストップ遅延メモリ
１９０７、１９０７ａ、１９０７ｂ  ストップカウンタメモリ
１９０８、１９０８ａ、１９０８ｂ  ストップカウンタメモリ取込信号生成回路
１９０９、１９０９ａ、１９０９ｂ  ストップサンプリングメモリ
１９１０、１９１０ａ、１９１０ｂ  ストップ補正回路
１９１１、１９１１ａ、１９１１ｂ  差分計算回路
１９１２  スタートデコーダ
１９１３、１９１３ａ、１９１３ｂ  ストップデコーダ
２００１  電流源
２１０１  電圧源
２２０１  調整回路
【図１】
2017191627.tif 000003
【図２】
2017191627.tif 000004
【図３】
2017191627.tif 000005
【図４】
2017191627.tif 000006
【図５】
2017191627.tif 000007
【図６】
2017191627.tif 000008
【図７】
2017191627.tif 000009
【図８】
2017191627.tif 000010
【図９】
2017191627.tif 000011
【図１０】
2017191627.tif 000012
【図１１】
2017191627.tif 000013
【図１２】
2017191627.tif 000014
【図１３】
2017191627.tif 000015
【図１４】
2017191627.tif 000016
【図１５】
2017191627.tif 000017
【図１６】
2017191627.tif 000018
【図１７】
2017191627.tif 000019
【図１８】
2017191627.tif 000020
【図１９】
2017191627.tif 000021
【図２０】
2017191627.tif 000022
【図２１】
2017191627.tif 000023
【図２２】
2017191627.tif 000024
【図２３】
2017191627.tif 000025
【図２４】
2017191627.tif 000026
【図２５】
2017191627.tif 000027
【図２６】
2017191627.tif 000028