説明

電子機器、及び、電子機器システム。

【課題】電子機器に入力される認証情報の漏洩の危険性を低減する。
【解決手段】コントローラ101に接続されたメモリ103であって、前記コントローラ101に接続される外部インタフェースと、認証情報AKEを前記コントローラ101から前記外部インタフェースを介して受信する制御部113とを有し、前記認証情報AKEは、第1値を有し、前記第1値は、第1パラメータ値又はそれの基になる値であり、前記制御部113は、前記認証情報AKE内の前記第1値に従う第1パラメータ値を用いた制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証情報を受信する電子機器に関する。
【背景技術】
【0002】
例えば、ユーザが、第1の電子機器を用いて第2の電子機器を使用する場合、第1の電子機器を通じて第2の電子機器にパスワードを入力する。第2の電子機器は、入力されたパスワードが正しいと判断した場合、その第2の電子機器の使用を許可する(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−148276号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
悪意のあるユーザは、第2の電子機器を使用できないとわかった場合、第2の電子機器を使用するために認証情報を不正な方法で取得しようとする。このため、認証情報が不正に知られてしまうおそれがある。言い換えれば、認証情報の漏洩の危険性がある。
【0005】
そこで、本発明の目的は、電子機器に入力される認証情報の漏洩の危険性を低減することにある。
【課題を解決するための手段】
【0006】
第1の電子機器に予め認証情報が設定される。認証情報は、パラメータ値を含む。第2の電子機器が、その認証情報を第1の電子機器から受信し、その認証情報内のパラメータ値を用いた制御を行う。
【0007】
また、認証情報がパラメータ値を含み、第2の電子機器が、その認証情報の正当性に関わらず、認証情報内のパラメータ値を用いた制御を行う。従って、ユーザは、第2の電子機器が受信した認証情報が正当であるか否かわからない。ケースによっては、第2の電子機器に認証情報が入力されたか否かもわからない。このため、認証情報を不正に取得するという動機が悪意のあるユーザに与えられない。それ故、認証情報の漏洩の危険性を低減することができる。
【0008】
本明細書において、「認証情報」とは、第1の電子機器の正当性に関する情報であって、第2の電子機器に所望動作(所望される動作)を実行させるための情報である。従って、第1の電子機器が、第2の電子機器にとって正当な機器であれば、認証情報もその第2の電子機器にとって正当である。それ故、その第2の電子機器が認証情報内のパラメータ値を用いた制御を行うことで、その第2の電子機器が所望動作を行うことができる。一方、第1の電子機器が、第2の電子機器にとって不当な機器であれば、認証情報もその第2の電子機器にとって不当な情報である。それ故、その第2の電子機器が認証情報内のパラメータ値を用いた制御を行っても、その第2の電子機器が所望動作を行うことはできない。
【0009】
このため、不当な認証情報が第2の電子機器に入力された場合、第2の電子機器が認証情報の不正取得の動機をユーザに与えることなく、非所望動作(第2の電子機器に正当な認証情報が入力された場合に行われる操作である所望動作以外の動作)が行われることになる。別の言い方をすれば、第1の電子機器と第2の電子機器との組合せが正当な場合にのみ、第2の電子機器が所望動作を行い、その組合せが不当な場合には、第2の電子機器が非所望動作を行う。
【0010】
認証情報内のパラメータ値は、その認証情報が設定される第1の電子機器に接続される第2の電子機器に固有のバラツキ値に従い補正された値を含んで良い。
【0011】
「所望動作」は、例えば、正しいパラメータ値(例えば最適なパラメータ値)を使用した結果として行われる動作である。
【0012】
「非所望動作」は、前述したように、所望動作以外の動作である。具体的には、例えば、非所望動作としては、下記の2種類の動作、
(1)第1種の非所望動作、
(2)第2種の非所望動作、
のうちの一方又は両方が行われる。
【0013】
第1種の非所望動作は、第1の電子機器から入力された誤った認証情報(以下、入力認証情報)内のパラメータ値を使用して行われる動作である。従って、第1種の非所望動作によれば、動作の非所望の度合いは、外部から入力されたパラメータ値に依存する。
【0014】
第2種の非所望動作は、入力認証情報に基づいて取得されたパラメータ値を使用して行われる動作である。従って、第2種の非所望動作によれば、動作の非所望の度合いは、第1種の非所望動作と違い、内部で取得されたパラメータ値に依存する。このため、非所望の度合いを、任意の度合いにすることができる。
【0015】
第2種の非所望動作の一例によれば、入力認証情報と所定の基準情報(例えば、正当な認証情報)との差(以下、ずれ幅)を基に、取得するパラメータ値(例えば、電流、電圧、時間又は温度に関するパラメータ値)が決定され、そのパラメータ値を用いた動作が行われる。その動作は、第1の電子機器にとって必要な動作であっても良いし、第1の電子機器にとって不必要な動作であっても良い。
【0016】
取得されるパラメータ値によって、センサ等によって検出可能な対象(例えば、所定の回路素子を流れる電流、所定の回路素子に印加される電圧、所定の動作周期、或いは、所定の回路素子の温度)の大きさが異なる。例えば、ずれ幅が大きい場合には、所望動作により消費される電力とは別に大きい電力を消費するためのパラメータ値が取得され、ずれ幅が小さい場合には、所望動作により消費される電力とは別に小さい電力を消費するためのパラメータ値が取得されてよい。
【0017】
ここで、入力認証情報及び基準情報がいずれも10進数で表現された数値の場合、基準情報から入力情報を減じることで、ずれ幅を算出することが可能である。
【0018】
また、入力認証情報及び基準情報がいずれも2進数で表現された数値の場合、基準情報「0101」に対して、第1の入力認証情報「0110」と第2の入力認証情報「1101」のどちらがずれ幅が大きいかを判断することは難しい。この場合、例えば、「0000」から「1111」までシーケンシャルに最下位ビットからカウントしていった場合、第1の入力認証情報「0110」と基準情報「0101」との差(ずれ幅)は「1」となり、第2の入力認証情報「1101」と基準情報「0101」との差(ずれ幅)は「8」となる。入力認証情報と基準情報との差(ずれ幅)は、入力認証情報及び基準情報のそれぞれのビット数と、どのビットからカウントしていくか等の規則によって異なる。
【0019】
取得されるパラメータ値が、シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値であると、正しい認証情報の推測が容易になってしまう。
【0020】
そこで、入力認証情報が正当な認証情報でない場合(例えばずれ幅が0ではない場合)、取得されるパラメータ値は、ずれ幅に関わらずランダムに決定された値であっても良い。また、入力認証情報が正当な認証情報でない場合、ずれ幅は、ランダムに算出されても良い。
【0021】
従って、第2種の非所望動作としては、
(1)シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値を使用する動作、
(2)ランダムに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値を使用する動作、
(3)ランダムに決定されたパラメータ値を使用する動作、
がある。
【0022】
本発明は、認証情報が入力されるあらゆる電子機器、及び、そのような電子機器を含んだ電子機器システムに適用可能である。
【図面の簡単な説明】
【0023】
【図1】本発明の実施例1に係るメモリシステムを示す。
【図2】コントローラ101及びメモリ103の構成を示す。
【図3】ATC(Analog Trim Compartor)コントローラ218の構成を示す。
【図4】図3に示したATCコントローラ218の信号入出力パターンを示す。
【図5】実施例1に係るメモリシステムのタイミングチャートである。
【図6】本発明の実施例2に係るメモリシステムの構成を示す。
【図7】Vmaジェネレータ661の構成を示す。
【図8】Vmaセレクタ662の構成を示す。
【図9】実施例2に係るメモリシステムのタイミングチャートである。
【図10】リーク電流制御回路の構成を示す。
【図11】発振周波数制御回路の構成を示す。
【発明を実施するための形態】
【0024】
以下、図面を参照して本発明の幾つかの実施例を説明する。なお、以下の実施例では、第2の電子機器が、NAND型のフラッシュメモリ装置(以下、メモリ)であり、第1の電子機器が、メモリのコントローラであり、電子機器システムが、メモリシステムであるとする。
【実施例1】
【0025】
図1は、本発明の実施例1に係るメモリシステムを示す。
【0026】
メモリ103にコントローラ101が接続される。
【0027】
コントローラ101は、AKE(Analog Key Equipment)提供部111を有する。AKE提供部111は、予めAKEを記憶している。AKEは、認証情報の一種である。AKE提供部111は、AKEを、コントローラ101に接続されているメモリ103に送信する。
【0028】
メモリ103は、制御部113と、メモリ部115とを有する。制御部113は、コントローラ101からAKEを受信し、そのAKEに基づく動作を行う。メモリ部115は、メモリセルアレイやそのデコーダを含む。
【0029】
本実施例において、AKEは、メモリ103の動作で使用される1種類以上のパラメータ値を含む。少なくとも1つのパラメータ値は、例えば、コントローラ101に接続されるべきメモリ103にとって最適なパラメータ値である。そのようなパラメータ値として、例えば、トリム値(又はそのトリム値を生成するための基になるデータ(以下、トリムデータ))がある。トリム値は、メモリ103に固有の性質(バラツキ値)に従い補正された値の一例である。
【0030】
すなわち、例えば、複数のメモリ103が、同じウェハから切り出され且つそれぞれが良品であったとしても、異なった性質となってしまうことが多い。例えば、リード時に印加すべき最適なワードライン電圧が5V(ボルト)であるメモリ103もあれば、その最適なワードライン電圧が4.5Vであるメモリ103もある。このように、複数のメモリ103が同じ種類であっても、メモリ103毎に性質が異なることが多い(これは、メモリ103以外の電子機器でも同じである)。それ故、一般に、メモリ103の動作のためのパラメータ値は、メモリ103の試験の結果に基づいて調整される。つまり、メモリ103毎に、メモリ103に固有のトリム値が設定される。
【0031】
一方、認証情報は、メモリ103にとって固有であることが好ましい。
【0032】
そこで、本実施例では、メモリ103の性質がメモリ103毎に異なってしまうという特性を活かした工夫、具体的には、メモリ103に入力される認証情報(AKE)が、そのメモリ103に固有のトリムデータを含むことが採用される(トリムデータに代えてトリム値が含まれても良い)。本実施例では、認証情報の一例を、Analog Key Equipmentを略して「AKE」と呼ぶ。
【0033】
本実施例によれば、メモリ103と、そのメモリ103に固有のトリムデータを含んだAKEを予め記憶しているコントローラ101との組合せでのみ、メモリ103が安定した動作を行うことができる。
【0034】
AKEは、トリムデータを含むが、そのトリムデータは、暗号化或いはハッシュ化されている等、何らかの加工が施されていても良い。メモリ103に固有のAKEが、予め、非公開に、メモリベンダ(例えば、メモリ103のメーカ或いはサプライヤ)からコントローラベンダ(例えば、コントローラ103のメーカ或いはサプライヤ)のみに提供される。コントローラベンダは、或るメモリ103についてメモリベンダから提供されたAKEをコントローラ101に設定する。そのコントローラ101が、上記或るメモリ103にとってのコントローラとなる。そして、そのコントローラ101に設定されているAKEが、メモリ103の使用のためのキーとなる。コントローラ101は、メモリ103にアクセスする際に、予め記憶しているAKEを、そのメモリ103に送信する。メモリ103は、コントローラ103からのアクセスの前にAKEを受信する。受信したAKEが正当か否かによって、コントローラ103からのアクセスが安定して行われるか否かが決まる。
【0035】
以下、本実施例をより詳細に説明する。
【0036】
図2は、コントローラ101及びメモリ103の構成を示す。
【0037】
コントローラ101において、AKE提供部111が、AKG(Analog Key Generator)201と、I/O(Input/Output)回路203とを有する。
【0038】
AKG201は、AKEを出力する。本実施例では、出力されるAKEは、メモリベンダから予め提供され記憶されている情報それ自体であるが、メモリベンダから提供された情報を加工することにより生成された情報でも良い。AKEは、例えば、パラメータ値として、電圧値(例えば、リード時及び/又はプログラム時に印加すべきワードライン電圧の値)に関するトリムデータと、トリムテーブルアドレスとを含んで良い。また、それらのパラメータ値は、AKEに含まれる値を基に生成されても良い。なお、トリムテーブルアドレスは、トリムテーブル213のアドレス(行と列のそれぞれを表すアドレス)である。
【0039】
I/O回路203が、メモリ103のI/O回路211にI/Oバス251を介して接続される。I/O回路203には、AKG201から出力されたAKEが入力される。I/O回路203は、入力されたAKEを出力する。出力されたAKEは、I/O回路203に接続されているメモリ103に入力される。なお、I/O回路203は、入力されたAKEを加工することなく出力しても良いし、入力されたAKEを暗号化など加工して出力しても良い。I/O回路203は、AKE以外の情報として、例えば、I/Oコマンド(例えば、ライトコマンド或いはリードコマンド)、ステータス取得コマンド、及び、データ(メモリセルアレイ220に対して入出力されるデータ)を出力することができる。
【0040】
コントローラ101からメモリ103に、複数種類の信号が入力される。複数種類の信号は、例えば、下記の信号、
(*)メモリ103の有効/無効を制御するチップイネーブル信号(/CE)、
(*)データのライト(プログラム)のために有効とされるライトイネーブル信号(/WE)、
(*)データのリードのために有効とされるリードイネーブル信号(/RE)、
(*)コマンドのライト(ラッチ)のために有効とされるコマンドラッチイネーブル信号(CLE)、
(*)アドレスのライト(ラッチ)のために有効とされるアドレスラッチイネーブル信号(ALE)、
を含んで良い。AKEは、例えば、/WEのトグルにより、I/O回路203からI/Oバスを経由して出力されて良い。
【0041】
メモリ103において、メモリ部115が、メモリセルアレイ220と、Xデコーダ221と、センスアンプ222と、データレジスタ223と、Yデコーダ224とを含む。Xデコーダ221によって選択されたワードラインとYデコーダ224によって選択されたビットラインとに対応したメモリセルについて、データの入出力(リード又はプログラム)が行われる。入出力されるデータは、センスアンプ222に一時記憶される。また、データは、データレジスタ223を通じて、メモリセルアレイ220に対して入出力される。
【0042】
メモリ103において、制御部113が、論理制御回路212と、I/O回路211と、トリムテーブル記憶領域213と、Xポインタ214と、Yポインタ215と、コマンドデコーダ216と、ファンクションコントローラ217と、ATC(Analog Trim Compartor)コントローラ218と、アナログジェネレータ219とを含む。
【0043】
論理制御回路212は、コントローラ101から各種信号を受信する。論理制御回路212は、各種信号のレベル(High、Low)に応じてI/O回路211を制御する。
【0044】
トリムテーブル記憶領域213は、トリムテーブルを記憶する。トリムテーブル記憶領域213は、複数のサブ記憶領域で構成されており、各サブ記憶領域が、TDAT(Trim DATa)を記憶する。TDATは、トリム値の基になるデータである。トリムテーブル記憶領域213は、複数種類のトリム値にそれぞれ対応する複数種類のTDATを記憶する。トリム値としては、例えば、リード時、ベリファイ時及びプログラム時のうちの少なくとも1つについてのワードライン電圧値及び/又はビットライン電圧値、時間パラメータ値(例えば、リード時のラッチタイミング)、電流値など、種々のパラメータ値のトリム値を採用することができる。
【0045】
Xポインタ214は、トリムテーブル記憶領域213を構成する複数の行のうち、I/O回路211から出力されたTADD(Trim ADDress)に従うXアドレス値に該当する行を指定する回路である。
【0046】
Yポインタ215は、トリムテーブル記憶領域213を構成する複数の列のうち、I/O回路211から出力されたTADDに従うYアドレス値に該当する列を指定する回路である。Yポインタ215で指定された列とXポインタ214で指定された行に該当するサブ記憶領域にあるTDATが読み出される。読み出されたTDATは、ATCコントローラ218に入力される。
【0047】
I/O回路211は、情報(例えば、コントローラ101から受信した情報)を一時記憶する記憶領域(例えばレジスタ)を有して良い。I/O回路は、例えば、下記の機能を有する。
(A)I/O回路211は、I/Oコマンドをコントローラ101から受信した場合、下記を行う。
(a1)I/O回路211は、受信したI/Oコマンドを出力する。出力されたI/Oコマンドは、コマンドデコーダ216に入力される。
(a2)I/O回路211は、受信したI/Oコマンドで指定されている論理ブロックアドレスに対応するMADD(Memory ADDress)(物理ブロックアドレス)を特定する。I/O回路211は、特定されたMADDに従うXアドレス値を、Xデコーダ221に出力し、且つ、特定されたMADDに従うYアドレス値を、Yデコーダ224に出力する。
(a3)I/Oコマンドがリードコマンドの場合、I/O回路211は、上記特定されたMADDに対応するメモリセルからリードされたデータをデータレジスタ223から受け、そのデータを、コントローラ101に出力する。
(a4)I/Oコマンドがライトコマンド(プログラムコマンド)の場合、I/O回路211は、データも受け、そのデータをデータレジスタ223に出力する。データレジスタ223から、上記特定されたMADDに対応するメモリセルに、そのデータがプログラムされる。
(B)I/O回路211は、AKEを受信した場合、下記を行う。
(b1)I/O回路211は、AKEを基に、AKM(Analog Key Memory)とFGF(Force Go Flag)とを生成し、AKM及びFGFを出力する。AKM及びFGFは、AKEに含まれている値を基に生成された値であっても良いし、AKEに含まれているパラメータ値それ自体であっても良い。出力されたAKM及びFGFは、ATCコントローラ218に入力される。
(b2)I/O回路211は、AKEを基に、TADDを生成し、そのTADDを出力する。TADDに従うXアドレス値が、Xポインタ214に入力され、TADDに従うYアドレス値が、Yポインタ215に入力される。
【0048】
コマンドデコーダ216は、I/O回路211から入力されたコマンドの種類(例えば、リード、ライト)をファンクションコントローラ217に通知する。また、コマンドデコーダ216は、AKSCMD(Analog Key Set CoMmanD)及びAKCCMD(Analog Key Confirm CoMmanD)を出力する。出力されたAKSCMD及びAKCCMDは、ATCコントローラ218に入力される。AKSCMDは、AKMと、トリムテーブル213から取得されたTDATとの比較をすることのコマンドである。AKCCMDは、比較の結果を出力することのコマンドである。なお、AKMが、TDATに対応するデータ以外のデータを含んでいる場合には、AKMの一部(TDATに対応するデータ)のみが、TDATと比較されて良い。
【0049】
ATCコントローラ218は、入力されたAKM、FGF及びTDATを基に、出力する各種信号(UNMATCH、MTRIM(Memory TRIM)及びGFLAG(Go FLAG))の値を制御する。具体的には、例えば、ATCKコントローラ218は、AKMとTDATとを比較する比較回路と、その比較の結果を保持する記憶領域(例えばレジスタ)とを有する。UNMATCHは、AKMとTDATが互いに不一致であるか否かを表す信号である。UNMATCHは、I/O回路211に入力され、I/O回路211から、コントローラ101に出力される。MTRIMは、1種類以上のトリム値である。MTRIMは、アナログジェネレータ219に入力される。GFLAGは、メモリ部115の動作を許可するか否かを表す信号である。GFLAGは、ファンクションコントローラ217に入力される。GFLAGのレベルが第1のレベル(例えばHigh)の場合、メモリ部115の動作が許可され、GFLAGのレベルが第2のレベル(例えばLow)の場合、メモリ部115の動作が許可されない。
【0050】
ファンクションコントローラ217は、コマンドデコーダ216から通知されたコマンド種類と、入力されたGFALGの値とを基に、アナログジェネレータ219と、メモリ部115とを制御する。例えば、MTRIMが、リード時のワードライン電圧値と、プログラム時のワードライン電圧値とを含んでいるとする。この場合、例えば、ファンクションコントローラ217は、下記の通りに動作する。
(A)コマンド種類が「リード」であって、GFLAGのレベルが第1のレベル(例えばHigh)の場合、ファンクションコントローラ217は、MTRIMのうちのリード時のワードライン電圧値をアナログジェネレータ219に指定する。また、ファンクションコントローラ217は、Xデコーダ221、センスアンプ222及びYデコーダ224に、動作することの指令(動作指令)を出す。これにより、その動作指令を受けたXデコーダ221が、MADDに従うXアドレス値に対応するワードラインを選択する。選択されたワードラインに、アナログジェネレータ219から指定された、リード時のワードライン電圧値(トリム値)が印加される。また、上記動作指令を受けたYデコーダ224が、MADDに従うYアドレス値に対応するビットラインを選択する。選択されたビットラインに、リード時のビットライン電圧値が印加される。
(B)コマンド種類が「ライト」であって、GFLAGのレベルが第1のレベル(例えばHigh)の場合、ファンクションコントローラ217は、MTRIMのうちのプログラム時のワードライン電圧値をアナログジェネレータ219に指定する。また、ファンクションコントローラ217は、Xデコーダ221、センスアンプ222及びYデコーダ224に、動作指令を出す。これにより、その動作指令を受けたXデコーダ221が、MADDに従うXアドレス値に対応するワードラインを選択する。選択されたワードラインに、アナログジェネレータ219から指定された、プログラム時のワードライン電圧値(トリム値)が印加される。また、上記動作指令を受けたYデコーダ224が、MADDに従うYアドレス値に対応するビットラインを選択する。選択されたビットラインに、プログラム時のビットライン電圧値が印加される。
(C)GFLAGのレベルが第2のレベル(例えばLow)の場合、ファンクションコントローラ217は、Xデコーダ221、センスアンプ222及びYデコーダ224に、動作指令を出さない(例えば、動作しないことの指令(非動作指令)を出す)。
【0051】
アナログジェネレータ219は、ファンクションコントローラ217から指定されたトリム値(入力されたMTRIMに含まれているトリム値)に従う信号を生成し、その信号(例えばアナログ信号)を出力する。例えば、指定されたトリム値が、リード時又はプログラム時のワードライン電圧値であれば、アナログジェネレータ219は、そのワードライン電圧値通りのワードライン電圧を印加する。
【0052】
図3は、ATCコントローラ218の構成を示す。
【0053】
ATCコントローラ218には、例えば、5種類の信号、すなわち、AKSCMD、AKCCMD、FGF、AKM[n:0]、及びTDAT[n:0]が入力される(nは整数)。本明細書の説明において、「xxx[n:0]」は、信号「xxx」が0〜n番目のビットで構成されていること(つまり、(n+1)ビットの信号「xxx」)を表す。また、「xxx[k]」は、信号「xxx」のk番目のビットであることを表す(kは、0〜nのいずれかの整数)。
【0054】
また、ATCコントローラ218からは、3種類の信号、すなわち、UNMATCH、GFLAG、及びMTRIM[n:0]が出力される。
【0055】
ATCコントローラ218は、下記の機能を実現するような構成、
(A)AKM[n:0]とTDAT[n:0]とを基にMTRIM[n:0]を生成し、MTRIM[n:0]を出力する、
(B)AKM[n:0]とTDAT[n:0]が互いに不一致であれば、UNMATCHのレベルを第1のレベル(例えばHigh)にし、AKM[n:0]とTDAT[n:0]が互いに一致であれば、UNMATCHのレベルを第2のレベル(例えばLow)にする、
(C)AKSCMDが入力されたときに、AKM[n:0]とTDAT[n:0]とを比較する、
(D)AKCCMDが入力されたときに、UNMATCHのレベルを制御する(AKM[n:0]とTDAT[n:0]との比較の結果を出力する)、
を有する。
【0056】
ATCコントローラ218は、例えば、論理回路である。具体的には、例えば、ATCコントローラ218は、MTRIM回路310と、UNMATCH回路303とを有する。
【0057】
MTRIM回路310は、(n+1)個のサブ回路301−0〜301−nを有する。サブ回路301−k(kは、0〜nのいずれかの整数)は、第1の回路311−nと、第2の回路312−kと、第3の回路313−kとを有する。
【0058】
第1の回路311−kに、AKSCMD及びAKM[k]が入力される。第1の回路311−kは、AKSCMD及びAKM[k]に基づく値(AKMI[k])を生成し、AKMI[k]を出力する。
【0059】
第2の回路312−kに、AKMI[k]及びTDAT[k]が入力される。第2の回路312−kは、AKMI[k]及びTDAT[k]に基づく値(IMAT[k])を生成し、IMAT[k]を出力する。
【0060】
第3の回路313−kに、IMAT[k]及びAKMI[k]が入力される。第3の回路313−kは、IMAT[k]及びAKMI[k]に基づく値(MTRIM[k])を生成し、MTRIM[k]を出力する。
【0061】
従って、サブ回路301−0〜301−nから、(n+1)ビットの信号であるMTRIM[n:0]が出力される。前述したように、MTRIM[n:0]が、アナログジェネレータ219に入力される。また、MTRIM回路310の構成によれば、AKSCMDが入力されたときに、AKM[n:0]とTDAT[n:0]が比較される。
【0062】
UNMATCH回路303に、IMAT[n:0]、FGF及びAKCCMDが入力される。UNMATCH回路303は、IMAT[n:0]に基づく値(LMAT)を生成する。LMATは、例えば1ビットである。UNMATCH回路303は、FGF(例えば1ビットの値)とLMATとを基にGFLAGを生成し、GFLAGを出力する。また、UNMATCH回路303は、AKCCMDが入力されたときに、FGF、LMAT及びAKCCMDを基にUNMATCHのレベルを制御する。
【0063】
図4は、図3に示したATCコントローラ218の信号入出力パターンを示す。
【0064】
図3に示した構成によれば、図4に示すような信号入出力パターン(a)乃至(d)がある。
【0065】
パターン(a)及び(b)は、FGFがLow(0)の場合に採用されるパターンである。
【0066】
パターン(a)は、AKM[n:0]とTDAT[n:0]が互いに不一致である場合(LMATがLow(0)の場合)のパターンである。パターン(a)によれば、AKM[n:0]とTDAT[n:0]が互いに不一致であるので、GFLAGのレベルがLowとなる。このため、メモリ部115は動作しない。また、UNMATCHのレベルがHighとなる。これは、AKM[n:0]とTDAT[n:0]が互いに不一致であることを意味する。
【0067】
パターン(b)は、AKM[n:0]とTDAT[n:0]が互いに一致である場合(LMATがHigh(1)の場合)のパターンである。パターン(b)によれば、AKM[n:0]とTDAT[n:0]が互いに一致しているので、GFLAGのレベルがHighとなり、結果として、MTRIM[n:0]に基づく動作が行われる。その動作は、所望される動作である。なぜなら、AKM[n:0]とTDAT[n:0]が互いに一致であるので、MTRIM[n:0]は正しい値であるからである。また、パターン(a)によれば、UNMATCHのレベルがLowとなる。これは、AKM[n:0]とTDAT[n:0]が互いに一致していることを意味する。
【0068】
パターン(c)及び(d)は、FGFがHigh(1)の場合に採用されるパターンである。
【0069】
パターン(c)は、AKM[n:0]とTDAT[n:0]が互いに不一致である場合(LMATがLow(0)の場合)のパターンである。パターン(c)によれば、AKM[n:0]とTDAT[n:0]が互いに不一致であっても、GFLAGのレベルがHighとなり、結果として、MTRIM[n:0]に基づく動作が行われる。しかし、その動作は、典型的には、非所望動作(所望動作以外の動作)である。なぜなら、AKM[n:0]とTDAT[n:0]が互いに不一致であるので、MTRIM[n:0]は誤った値となるからである。また、パターン(c)によれば、UNMATCHのレベルがLowとなる。このため、AKM[n:0]とTDAT[n:0]が互いに不一致であっても、一致を意味する結果が出力されることになる。
【0070】
パターン(d)は、AKM[n:0]とTDAT[n:0]が互いに一致である場合(LMATがHigh(1)の場合)のパターンである。パターン(d)は、FGFのレベル(値)を除いて、パターン(b)と同じである。
【0071】
図3及び図4によれば、コントローラ101から入力されるAKE内のFGFのレベル(値)によって、パターン(a)〜(d)のいずれのパターンを採用するかが制御される。具体的には、例えば、FGFのレベルがHighであれば、AKM[n:0]とTDAT[n:0]が互いに不一致であったとしても、それらが互いに一致するという結果がコントローラ101に通知され、且つ、誤ったトリム値(最適値とは異なるパラメータ値)を基にメモリ103の動作が制御される。
【0072】
図5は、実施例1に係るメモリシステムのタイミングチャートである。なお、図5(及び図9)を参照した説明において、「時刻Pから時刻Qまでの期間」は、時刻Pを含むが時刻Qを含まないこととする。
【0073】
(1)時刻t1からt2までの期間
【0074】
コントローラ101が、/CEのレベルをHighからLowに変える(メモリ103を有効にする)。そして、コントローラ101が、第1のコマンドをメモリ103に送信する。第1のコマンドは、AKEの入力を開始することを表すコマンド(以下、コマンド(A1))である。コントローラ101が、CLEのレベルをLowからHighに変え(コマンドのラッチを有効にすることをメモリ103に指示し)、且つ、/WEのレベルを一旦LowにしてからHighに戻す。これにより、コマンド(A1)が、I/O回路211を通じてコマンドデコーダ216に入力される。
【0075】
(2)時刻t2からt3までの期間
【0076】
コントローラ101が、AKEに従うTADDをメモリ103に送信する。コントローラ101が、CLEのレベルをHighからLowに変え、ALEをLowからHighに変え、且つ、/WEのレベルを一旦LowにしてからHighに戻す。これにより、I/O回路211を通じてTADDが入力され、TADDに従うXアドレス値(及びYアドレス値)がXポインタ214(及びYポインタ215)に入力され、TDATがトリムテーブル213からATCコントローラ218に入力される。
【0077】
(3)時刻t3からt4までの期間
【0078】
コントローラ101が、AKEに従うAKMをメモリ103に送信する。コントローラ101が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、AKMがI/O回路211を通じてATCコントローラ218に入力される。
【0079】
(4)時刻t4からt5までの期間
【0080】
コントローラ101が、AKEに従うFGFをメモリ103に送信する。コントローラ101が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、FGFがI/O回路211を通じてATCコントローラ218に入力される。
【0081】
(5)時刻t5からt6までの期間
【0082】
コントローラ101が、ダミーサイクルをメモリ103に送信する。コントローラ101が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、ダミーサイクルがI/O回路211を通じて入力される。
【0083】
なお、AKMが、例えば、ダミーサイクル数を表す情報であるダミーサイクル数情報を含んで良い。この場合、ダミーサイクルは、認証に利用されてよい。例えば、制御部113(例えばATCコントローラ218)が、入力されたダミーサイクルの数とダミーサイクル数情報が表すダミーサイクル数とが一致すれば、GFLAGをHighにし、それらが不一致であれば、GFLAGをLowにして良い。従って、例えば、図5の例によれば、ダミーサイクル数が1である。ダミーサイクル数が0であれば、ダミーサイクルが入力されない。
【0084】
また、TADD、AKM、FGF及びダミーサイクルの4種類の情報の入力順序が、認証に利用されてよい。例えば、AKMが、入力順序を表す情報(入力順序情報)を含み、制御部113(例えばATCコントローラ218)が、入力順序情報が表す入力順序と、実際の入力順序とが一致していれば、GFLAGをHighにし、それらが不一致であれば、GFLAGをLowにして良い。
【0085】
(6)時刻t6からt7までの期間
【0086】
コントローラ101が、第2のコマンドをメモリ103に送信する。第2のコマンドは、AKEの入力を終了することを表すコマンド(以下、コマンド(A2))である。コントローラ101が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、コマンド(A2)がI/O回路211を通じてコマンドデコーダ216に入力される。
【0087】
(7)時刻t7からt8までの期間
【0088】
コントローラ101が、CLEのレベルをHighからLowに変える。メモリ103の制御部113において、コマンドデコーダ216が、論理制御回路212に、コントローラ101への信号であるR/B#(Ready/Busy信号)のレベルをHighからLowに変えさせ(つまりメモリ103をビジー状態にし)、且つ、AKSCMDをATCコントローラ218に入力する。これにより、AKMとTDATとの比較が行われ、その比較の結果が、ATCコントローラ218内のレジスタに保持される。また、ATCコントローラ218が、FGFと比較の結果とを基に、GFLAGのレベル(値)を決定する。決定されたレベルのGFLAGが、ファンクションコントローラ217に入力される。
【0089】
(8)時刻t8からt9までの期間
【0090】
コントローラ101が、第3のコマンドをメモリ103に送信する。第3のコマンドは、AKMとTDATとの比較の結果を出力することを表すコマンド(以下、コマンド(A3))である。コントローラ101が、CLEのレベルをLowからHighに変える。これにより、コマンド(A3)がI/O回路211を通じてコマンドデコーダ216に入力される。また、メモリ103の制御部113において、コマンドデコーダ216が、論理制御回路212に、R/BのレベルをLowからHighに変えさせる(つまりメモリ103をレディー状態にする)。
【0091】
(9)時刻t9からt10までの期間
【0092】
コマンドデコーダ216が、AKCCMDをATCコントローラ218に入力する。これにより、ATCコントローラ218内のレジスタが保持する比較結果に従うレベルのUNMATCHがI/O回路211に出力される。このUNMATCHのレベル(値)が、例えば、I/O回路211内のレジスタに保持されてよい。コントローラ101が、/REのレベルを一旦LowにしてからHighに変えることで、上記比較結果(I/O回路211内のレジスタが保持する、UNMATCHのレベル(値))を、メモリ103から受信することができる。これにより、コントローラ101は、送信したAKEについての認証の結果を知ることができる。但し、FGFが「1」の場合は、上記比較結果が不一致を意味する結果であったとしても、一致を意味する結果を受けることになる(図4のパターン(c)参照)。
【0093】
図5を参照して説明した一連の流れは、下記のうちの少なくとも1つのタイミングで行われて良い。
(*)コントローラ101が初めてメモリ103に接続されたとき。
(*)コントローラ101が初めてメモリ103にアクセスするとき。
(*)コントローラ101がメモリ103にN回アクセスする都度(Nは1以上の整数)。
(*)コントローラ101がメモリ103にアクセスするときと異なるタイミング。
【0094】
以上が、実施例1の説明である。
【0095】
実施例1によれば、コントローラ101からメモリ103に送信されるAKEは、ユーザによりマニュアルで入力された情報ではなく、コントローラ101が予め記憶している情報である。従って、AKEが漏洩することの危険性を軽減することが期待される。
【0096】
また、実施例1によれば、FGFが「1」の場合、AKMとTDATとの比較の結果が不一致でも(つまり、AKEが不当でも)、不一致であるという比較結果はコントローラ101に通知されず、且つ、メモリ103は動作する。このため、不正に正当なAKEを取得しようとする動機をユーザに与えなくて済む。それ故、AKEが漏洩することの危険性を軽減することが期待される。
【0097】
また、実施例1によれば、FGFが「1」の場合、AKEが不当でも、メモリ103は動作するが、その動作は、非所望動作となる。AKEが正当である場合は最適な動作が期待されるが、AKEが不当な場合は、AKEが正当である場合に比べて適性の低い動作となる。
【0098】
なお、実施例1について、下記の変形例のうちの少なくとも1つが考えられる。
(変形例1)UNMATCHは、常に、認証の結果(AKMとTDATとの比較の結果)に関わらず、Low(0)で良い。
(変形例2)比較の結果(UNMATCHのレベル(値)が表す情報)それ自体が、コントローラ101に通知されなくて良い。
(変形例3)MTRIMは、AKM及びTDATのうちの一方には基づかず他方に基づく値であっても良い。
(変形例4)AKEがトリム値それ自体を含んでいても良いし、トリムテーブル213がトリム値を含んでいても良い。
(変形例5)制御部113が、認証失敗用の1種類以上のトリム値(以下、NGトリム値)を有していても良い。制御部113は、認証失敗の場合、1種類以上のNGトリム値のうちのいずれかのNGトリム値を基にメモリ部115を制御しても良い。NGトリム値は、正しいトリム値と異なる値である。例えば、リード時のワードライン電圧値として、正しいトリム値が4.5Vであって、NGトリム値が4.8Vであっても良い。
(変形例6)AKEが、コマンド種別毎にあっても良い。例えば、リードコマンド用のAKEと、ライトコマンド用のAKEがあっても良い。コントローラ101は、送信するコマンドの種別に対応したAKEを選択して出力して良い。制御部113は、コマンド種別毎にTDATを有していて良い。制御部113は、コントローラ101からのAKE内のAKMを、コントローラ101から受信したコマンドの種別に対応したTDATと比較して良い。
(変形例7)AKM、FGF及びTADDは、AKEに含まれる値を基に生成された値であっても良い。
【実施例2】
【0099】
以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
【0100】
図6は、本発明の実施例2に係るメモリシステムの構成を示す。なお、図6において、図2に示した要素と同じ要素には、図2に示した要素の参照符号に400を加算した参照符号が付されている。
【0101】
実施例2によれば、AKEの認証が行われない。従って、認証の結果がコントローラ601に通知されることがない。
【0102】
また、AKEが正当であるか不当であるかに関わらず、AKE内のパラメータ値を用いた制御が行われる。従って、AKEが正当であれば、所望動作が行われるが、AKEが不当であれば、非所望動作が行われる。
【0103】
AKE内のパラメータ値を用いた制御は、例えば、どの電源からの電圧をどこの電圧とするかの制御である。
【0104】
コントローラ501が、ADO(Analog Direct Output)ピン671と、電源回路(例えばスイッチングレギュレータ)605とを有する。ADOピン671は、アナログ電圧の出力ピンである。電源回路605は、ADOを通じてアナログ電圧(Vea)を出力する。Veaは、例えば、メモリベンダに決定された電圧値である。Veaは、メモリ503に入力されて、メモリ503内部の電圧(又は、その電圧に基づく電圧)として利用されても良い。
【0105】
メモリ503が、ADI(Analog Direct Input)ピン673を有する。ADIピン673に、ADOピン671から出力されたVeaが入力される。
【0106】
メモリ503において、制御部513が、ADIコントローラ651を有する。ADIピン673に入力されたVeaは、内部電圧の一種としてADIコントローラ651に入力される。また、アナログジェネレータ619からアナログ電圧(Via)がADIコントローラ651に入力される。また、I/O回路611から、AKEに従う3種類の値、ADIC(Analog Direct Input Control)、RTR(Resister TRim)、ADIS(ADI Signal)が入力される。これら3種類の値は、AKEに含まれているパラメータ値でも良いし、AKEに含まれている値を基に生成されたパラメータ値でも良い。
【0107】
ADIコントローラ651は、Vea及びViaを含む複数種類の内部電圧の少なくとも1つを基にワードライン電圧(VWL)を生成し、VWLをワードラインに印加する。複数種類の内部電圧に、Veaが含まれなくても良い。すなわち、必ずしも、コントローラ501からアナログ電圧が供給されなくて良い。しかし、Veaは、メモリ503のベンダによって決められた値であり、コントローラ501がそのメモリ503にとって正当なコントローラでなければ、Veaの値は正当な値でないので、コントローラ501からのアナログ電圧を内部電圧の一種として利用することは好ましいと考えられる。また、生成されるアナログ電圧は、ワードライン電圧(VWL)でなくても良い。更に、ADIコントローラ651から出力される信号は、アナログ電圧以外の信号でも良い。
【0108】
さて、ADIコントローラ651は、ハードウェア回路として、Vmaジェネレータ661と、Vmaセレクタ662とを有する。Vmaジェネレータ661は、複数種類の内部のうちのどの内部電圧をVmaとするかを決定する。Vmaセレクタ662は、Vmaをどのような内部電圧とするかを決定する。
【0109】
コマンドデコーダ616は、ADICMD(ADI CoMmanD)をVmaジェネレータ661に送信する。ADICMDを受けて、Vmaジェネレータ661が、Vmaを出力する。
【0110】
図7は、Vmaジェネレータ661の構成を示す。
【0111】
Vmaジェネレータ661は、Vear出力回路701と、Vma出力回路703とを有する。
【0112】
Vear出力回路701は、内部電圧(Vear)を出力する回路である。Vearは、ベースとなる内部電圧(Vea)と、AKEに従うRTRとを基に生成される。AKEが正当であれば、RTRも正当であり、その場合、正しい値のVearが出力される。
【0113】
具体的には、例えば、Vear出力回路701は、直列に接続された複数の抵抗と、複数の抵抗のうちの2以上の抵抗に接続された2以上のスイッチング素子(例えばMOS−FET(Metal-Oxide-Semiconductor Field-Effect Transistor))とを有する。入力電圧が、Veaであり、出力電圧が、Vearである。
【0114】
スイッチング素子は、1つの抵抗に並列に接続される(1つの抵抗の両端に接続される)。そのスイッチング素子がオン状態の場合、そのスイッチング素子に並列に接続されている抵抗ではなく、そのスイッチング素子を電流が流れ、そのスイッチング素子がオフ状態の場合、そのスイッチング素子に並列に接続されている抵抗を電流が流れる。スイッチング素子の数は、AKEに従うRTRのビット数と同じである。すなわち、RTR[n:0]が(n+1)個のスイッチング素子に入力される。RTR[k]の値が「1」の場合、そのRTR[k]が入力されるスイッチング素子がターンオンする。
【0115】
Vear出力回路701によれば、オン状態のスイッチング素子の数に応じて、Vearが定まる。
【0116】
Vma出力回路703は、Vmaを出力する回路である。Vmaは、制御部513内部で生成された電圧Via、コントローラ501から入力されたVea、又は、VeaがVear出力回路701によって変圧されたVear(Veaがトリミングされた値)である。Vma出力回路703には、ADICMDと、AKEに従うADIC[1:0](ADICは3ビット以上でも良い)とが入力される。Vma出力回路703は、ADICMDが入力された場合、ADIC[1:0]の値に応じて、Via、Vea及びVearのうちのいずれかをVmaとして出力する。従って、AKEが正当であれば、ADIC[1:0]が正当なので、Vmaとして内部電圧が正しく選択される。
【0117】
図8は、Vmaセレクタ662の構成を示す。
【0118】
Vmaセレクタ662は、AKEに従うADIS[1:0](ADICは3ビット以上でも良い)の値を基に、Vmaを、リード時のワードライン電圧(Vread)、プログラム時のベリファイの際のワードライン電圧(Vpgmv)、又は、プログラム時のワードライン電圧(Vprog)として出力する。従って、AKEが正当であれば、ADIS[1:0]が正当なので、Vmaとして出力されるワードライン電圧の種類が正しく選択される。
【0119】
Vmaセレクタ662は、READV出力回路801と、PGMV出力回路802と、PGM出力回路803と、Vread出力回路811と、Vpgmv出力回路812と、Vprog出力回路813とを有する。
【0120】
READV出力回路801、PGMV出力回路802及びPGM出力回路803は、いずれも、ADIS[1:0]の値を基に、出力信号する値を決定する。具体的には、READV出力回路801は、ADIS[1:0]の値を基に、出力信号(READV)の値を決定する。PGMV出力回路802は、ADIS[1:0]の値を基に、出力信号(PGMV)の値を決定する。PGM出力回路803は、ADIS[1:0]の値を基に、出力信号(PGM)の値を決定する。
【0121】
Vread出力回路811は、READVの値を基に、VmaをVreadとして出力するか否かを制御する。
【0122】
Vpgmv出力回路812は、PGMVの値を基に、VmaをVpgmvとして出力するか否かを制御する。
【0123】
Vprog出力回路813は、PGMの値を基に、VmaをVprogとして出力するか否かを制御する。
【0124】
Vmaとして出力され得るアナログ電圧として、Vread、Vpgmv及びVprogのいずれかであるが、これらのうちの少なくとも1つに代えて又は加えて、他種のアナログ電圧が出力されて良い。また、Vmaとして出力されたアナログ電圧(制御対象の一種)は、ワードラインに印加されるが、ワードラインに代えて又は加えて、他種の被制御対象(例えばビットライン電圧)に印加されても良い。
【0125】
図9は、実施例2に係るメモリシステムのタイミングチャートである。
【0126】
(1)時刻t1からt2までの期間
【0127】
コントローラ501から、ADOピン671及びADIピン673を通じて、Veaがメモリ503に入力される。
【0128】
(2)時刻t2からt3までの期間
【0129】
コントローラ501が、/CEのレベルをHighからLowに変える(メモリ503を有効にする)。そして、コントローラ501が、第1のコマンドをメモリ503に送信する。第1のコマンドは、AKEの入力を開始することを表すコマンド(以下、コマンド(B1))である。コントローラ501が、CLEのレベルをLowからHighに変え、且つ、/WEのレベルを一旦LowにしてからHighに戻す。これにより、コマンド(B1)が、I/O回路611を通じてコマンドデコーダ616に入力される。
【0130】
(3)時刻t3からt4までの期間
【0131】
コントローラ501が、AKEに従うADICをメモリ503に送信する。コントローラ501が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、ADICがI/O回路611を通じてADIコントローラ651に入力される。
【0132】
(4)時刻t4からt5までの期間
【0133】
コントローラ501が、AKEに従うRTRをメモリ503に送信する。コントローラ501が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、RTRがI/O回路611を通じてADIコントローラ651に入力される。
【0134】
(5)時刻t5からt6までの期間
【0135】
コントローラ501が、AKEに従うADISをメモリ503に送信する。コントローラ501が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、ADISがI/O回路611を通じてADIコントローラ651に入力される。
【0136】
(6)時刻t6からt7までの期間
【0137】
コントローラ501が、ダミーサイクルをメモリ503に送信する。コントローラ501が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、ダミーサイクルがI/O回路611を通じて入力される。AKEが、例えば、ダミーサイクル数を表す情報であるダミーサイクル数情報を含んで良い。この場合、ダミーサイクルは、認証に利用されてよい。
【0138】
(7)時刻t7からt8までの期間
【0139】
コントローラ501が、第2のコマンドをメモリ503に送信する。第2のコマンドは、AKEの入力を終了することを表すコマンド(以下、コマンド(B2))である。コントローラ501が、/WEのレベルを一旦LowにしてからHighに戻す。これにより、コマンド(B2)がI/O回路611を通じてコマンドデコーダ616に入力される。
【0140】
(8)時刻t8からt9までの期間
【0141】
コントローラ501が、CLEのレベルをHighからLowに変える。メモリ503の制御部113において、コマンドデコーダ616が、論理制御回路612に、コントローラ501への信号であるR/B#のレベルをHighからLowに変えさせ、且つ、ADICMDをADIコントローラ651に入力する。これにより、Vmaとして出力される内部電圧の選択と、どんな種類のワードライン電圧としてVmaが出力されるかの選択とが行われる。
【0142】
(9)時刻t9からt10までの期間
【0143】
ADIコントローラ651から、期間(8)で選択された種類のワードライン電圧(VML)がワードラインに印加される。
【0144】
図9を参照して説明した一連の流れのうち、例えば、期間(2)〜(9)での処理は、コントローラ501がメモリ503にアクセスする都度に行われて良い。
【0145】
以上が、実施例2の説明である。
【0146】
実施例2によれば、コントローラ501からメモリ503に送信されるAKEは、ユーザによりマニュアルで入力された情報ではなく、コントローラ501が予め記憶している情報である。従って、AKEが漏洩することの危険性を軽減することが期待される。
【0147】
また、実施例2によれば、AKEに従うパラメータ値(ADIC、RTR及びADIS)を基に、被制御対象(例えばワードライン)に提供される制御対象(例えばアナログ電圧)が制御される。このため、AKEが正当であれば、正しい制御対象が被制御対象に提供され、AKEが不当であれば、誤った制御対象が被制御対象に提供される。このため、メモリ503では非所望動作が行われることになる。
【0148】
また、実施例2によれば、コントローラ501から出力される対象(例えばアナログ電圧)が、制御対象又はその基になることがある。コントローラ501から出力される対象の値は、例えば、メモリ503のベンダによって定められた値である。従って、コントローラ501が不当であれば、コントローラ501から出力される対象の値が誤っており、故に、制御対象が誤ってしまう。このため、メモリ503では非所望動作が行われることになる。
【実施例3】
【0149】
以下、本発明の実施例3を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。実施例3は、実施例1及び2のいずれにも適用することができる。
【0150】
実施例1及び2によれば、AKEが不当であれば、そのAKEを基に非所望動作(第1種の非所望動作)が行われるが、実施例3によれば、第1種の非所望動作に加えて(又は代えて)、AKEに従う値(以下、キー値)と基準値との差(以下、ずれ幅)に応じた第2種の非所望動作が行われる。ずれ幅が大きい程、非所望の度合いが大きい。キー値は、AKEに含まれている値でも良いし、AKEに含まれている値を基に生成された値であっても良い。基準値は、メモリに予め記憶されている値であり、キー値と比較される値である。実施例1を例に採れば、キー値は、AKMであり、基準値は、TDATである。実施例2を例に採れば、キー値は、例えば、ADIC、RTR及びADISのいずれでも良く、基準値が、メモリ503に用意されていて良い。また、一般的な認証システムを例に採れば、キー値は、ユーザから入力されたパスワードで良く、基準値は、そのパスワードと比較される情報で良い。すなわち、実施例3に係るシステムは、一般的な認証システムにも適用することができる。
【0151】
本実施例に係る第2種の非所望動作は、例えば、所望動作に必要な電力よりも大きい電力(以下、過剰電力)を消費するための動作である。ずれ幅が大きい程、過剰電力が大きい。過剰電力は、ずれ幅の大きさに応じてリニアに大きくなっても良いし、段階的に大きくなっても良い。本実施例では、ずれ幅が小さい場合、リーク電流が少なくなるよう制御され、且つ、発振周波数が低くなるよう制御される。このため、消費される過剰電力(消費電力ロス)は小さい。ずれ幅が大きい場合、リーク電流が多くなるよう制御され、且つ、発振周波数が高くなるよう制御される。このため、消費される過剰電力(消費電力ロス)は大きい。
【0152】
ずれ幅の大きさに応じた過剰電力消費を実現するための装置として、本実施例では、図10に示すリーク電流制御回路と、図11に示す発振周波数制御回路とが採用される。
【0153】
図10は、リーク電流制御回路の構成を示す。
【0154】
リーク電流制御回路は、FFT出力回路1001と、過剰電力消費回路1003とを有する。
【0155】
FFT出力回路1001は、比較器1011を有する。比較器1011は、キー値と基準値とを比較し、それら差を表す値(FFT)を出力する回路である。FFTは、例えば、4ビットであるが、4ビットでなくても良い。
【0156】
過剰電力消費回路1003は、リーク電流を流すことにより過剰電力を消費する回路である。過剰電力消費回路1003は、FFT[3:0]に応じた大きさのリーク電流を流す。具体的には、例えば、過剰電力消費回路1003は、並列に接続された4つの抵抗と、4つの抵抗と電源(Vcc)との間に接続された4つのスイッチング素子とを含む。4つのスイッチング素子に、FFT[3:0]が入力される。FFT[k]が「1」の場合、スイッチング素子がターンオンし、電源からの電流が抵抗を流れる。FFT[k]が「0」の場合、スイッチング素子がターンオフし、電源からの電流が流れない。本実施例では、ずれ幅がゼロであれば、いずれのスイッチング素子もターンオンせず、ずれ幅が大きい程、ターンオンするスイッチング素子の数が多い。このため、ずれ幅が大きい程、多くのリーク電流が流れる。
【0157】
図11は、発振周波数制御回路の構成を示す。
【0158】
発振周波数制御回路は、FFT出力回路1111と、オシレータ1112と、チャージポンプ1113とを有する。
【0159】
FFT出力回路1111は、上述したFFT出力回路1001と同様の機能及び構成を有する。FFT出力回路1111から出力されたFFTは、オシレータ1112に入力される。
【0160】
オシレータ1112は、発振の周波数を、入力されたFFTに応じた周波数にする。ずれ幅が大きいほど、発振周波数が高くなる。例えば、FFT[3:0]を構成する4つのビットが全ての「1」の場合、発振周波数が最も高い。
【0161】
チャージポンプ1113は、例えば、NAND型のフラッシュメモリに特有のチャージポンプである。オシレータ1112の発振周波数が高い程、大きい電力を消費する。
【0162】
以上が、実施例3の説明である。
【0163】
実施例3によれば、ずれ幅が大きい程、大きな過剰電力が消費される。従って、コントローラが不当の度合いが高いほど、メモリの電力消費を促進させることができる。例えば、電池からの電力で駆動するタイプのメモリの場合、ずれ幅が大きければ、メモリを継続して使用可能な時間が短くなる。従って、不当なコントローラを使用するユーザは、正当なコントローラを使用するユーザよりも、メモリ(及び、本メモリ又は本メモリシステムが搭載されているモバイル機器)を使用できる時間が短くなる。
【0164】
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0165】
例えば、メモリ103は、NAND型のフラッシュメモリ以外のメモリ、例えば、NOR型のフラッシュメモリでも良い。また、メモリ103は、ハードディスク装置などの物理記憶デバイス、或いは他種の電子機器であっても良い。
【0166】
また、例えば、信号のレベル(Low、High)の関係は、上記に限られない(例えば、その関係は、反転されていても良い)。
【0167】
また、実施例3において、非所望動作としては、過剰電力の消費以外の動作が採用されても良い。すなわち、第2種の非所望動作は、入力されたキー値に基づいて取得されたパラメータ値を使用して行われる動作であれば、どのような動作でも良い。実施例3により即して言えば、第2種の非所望動作は、ずれ幅を基に取得されるパラメータ値、電流又は電圧に関するパラメータ値に限らず、時間又は温度等に関するパラメータ値でも良い。この場合、所定の動作周期(例えば、DRAM(Direct Random Access Memory)のリフレッシュの周期)、或いは、所定の回路素子(例えばプロセッサ)の温度が、非最適な周期又は温度となる。
【0168】
取得されるパラメータ値は、シーケンシャルに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値でも良い。しかし、そうであると、正しい認証情報の推測が容易になってしまう。このため、取得されるパラメータ値は、下記(a)又は(b)、
(a)ランダムに算出されたずれ幅を用いてシーケンシャルに決定されたパラメータ値、
(b)ランダムに決定されたパラメータ値、
で良い。
【符号の説明】
【0169】
101…コントローラ 103…メモリ

【特許請求の範囲】
【請求項1】
第1の電子機器に接続された第2の電子機器であって、
前記第1の電子機器に接続される外部インタフェースと、
認証情報を前記第1の電子機器から前記外部インタフェースを介して受信する制御部と
を有し、
前記認証情報は、第1値を有し、
前記第1値は、第1パラメータ値又はそれの基になる値であり、
前記制御部は、前記認証情報内の前記第1値に従う第1パラメータ値を用いた制御を行う、
電子機器。
【請求項2】
請求項1記載の電子機器であって、
第2値を記憶している記憶領域を有し、
前記第2値は、第2パラメータ値又はそれの基になる値であり、
前記第2パラメータ値は、この電子機器に固有のバラツキ値に従い補正されたパラメータ値であり、
前記固有のバラツキ値は、同じ種類の複数の第2の電子機器について第2の電子機器によってバラつく値である複数のバラツキ値のうちの1つであり、
前記制御部は、前記第1値と、前記記憶領域に記憶されている前記第2値とを比較し、それらの値が互いに適合しない場合に、その第1値に従う第1パラメータ値を用いた制御を行う、
電子機器。
【請求項3】
請求項1記載の電子機器であって、
複数の記憶領域を有し、
前記第1パラメータ値として、前記複数の記憶領域のうちの特定の記憶領域に割り当てられているアドレスがあり、
前記複数の記憶領域が、複数の第2値を記憶しており、
前記第1パラメータ値を用いた制御とは、前記複数の記憶領域のうちの、前記受信した認証情報が含むアドレスが割り当てられている記憶領域から、第2値を読み出すことであり、
前記制御部は、その読み出された第2値に従う第2パラメータ値を用いた制御を行う、
電子機器。
【請求項4】
請求項1記載の電子機器であって、
複数の記憶領域を有し、
前記認証情報が、第1の第1値と、第2の第1値とを含み、
前記第1の第1値に従う第1のパラメータ値が、前記複数の記憶領域のうちの特定の記憶領域に割り当てられているアドレスであり、
前記複数の記憶領域が、複数の第2値を記憶しており、
前記第1パラメータ値を用いた制御とは、前記複数の記憶領域のうちの、前記受信した認証情報が含むアドレスが割り当てられている記憶領域から、第2値を読み出すことであり、
前記制御部は、前記認証情報内の第2の第1値と前記読み出した第2値とを比較し、それらの値が互いに適合していなければ、前記第2の第1値に従う第1パラメータ値又はその第2値に従う第2パラメータ値を用いた制御を行う、
電子機器。
【請求項5】
請求項2又は4記載の電子機器であって、
前記制御部は、前記第1値及び第2値が互いに適合していない場合、互いに適合していることに対応した通知である認証成功通知を前記第1の電子機器に送信して、前記制御を行う、
電子機器。
【請求項6】
請求項2又は4記載の電子機器であって、
前記制御部は、前記第1値及び第2値同士の比較の結果を前記第1の電子機器に通知することなく、前記制御を行う、
電子機器。
【請求項7】
請求項2又は4記載の電子機器であって、
前記認証情報が、付加的に行われる動作を表す値であるオプション動作値を含み、
前記制御部が、前記オプション動作値通りの付加的な動作が行われたか否かに応じた制御を行う、
電子機器。
【請求項8】
請求項7記載の電子機器であって、
前記オプション動作値は、ダミーサイクル数であり、
前記オプション動作値通りの付加的な動作が行われたか否かとは、前記認証情報内のダミーサイクル数と同じ数のダミーサイクルが検出されたか否かである、
電子機器。
【請求項9】
請求項2又は4記載の電子機器であって、
前記第1値と前記第2値との差が無ければ、前記制御部によって、所望される動作である所望動作が実行され、
前記第1値と前記第2値との差が有れば、前記制御部によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器。
【請求項10】
請求項9記載の電子機器であって、
前記非所望動作は、前記第1及び第2パラメータ値と異なるパラメータ値である特定のパラメータ値を基に行われ、
前記特定のパラメータ値は、前記第1値と前記第2値との差の大きさに応じた値である、
電子機器。
【請求項11】
請求項10記載の電子機器であって、
前記特定のパラメータ値は、前記第1値と前記第2値との差に応じた大きさのリーク電流を流すためのパラメータ値である、
電子機器。
【請求項12】
請求項10記載の電子機器であって、
前記特定のパラメータ値は、前記第1値と前記第2値との差に応じた発振周波数に従う発振を行うためのパラメータ値である、
電子機器。
【請求項13】
請求項12記載の電子機器であって、
前記差が大きいほど、前記発振周波数が大きい、
電子機器。
【請求項14】
請求項9記載の電子機器であって、
前記非所望動作は、前記第1及び第2パラメータ値と異なるパラメータ値である特定のパラメータ値を基に行われ、
前記パラメータ値は、前記第1値と前記第2値との差の大きさに依存しないランダムな値である、
電子機器。
【請求項15】
請求項1記載の電子機器であって、
前記制御部が、前記認証情報内の前記第1値に従う第1パラメータ値を基に、制御対象及び/又はその使用ケースを決定する、
電子機器。
【請求項16】
請求項15記載の電子機器であって、
前記外部インタフェースが、前記第1の電子機器から供給される対象が通るインタフェースである対象インタフェースを含み、
前記制御対象は、前記第1パラメータ値を基に、複数の制御対象から選択された対象であり、
前記複数の制御対象は、
(1)前記対象インタフェースを通じて供給された対象、又は、
(2)その供給された対象を基に、前記第1パラメータ値を用いて生成された対象、
を含む、
電子機器。
【請求項17】
請求項1記載の電子機器であって、
前記認証情報は、前記第1の電子機器に予め記憶されている情報であって前記第1の電子機器のユーザがマニュアルで入力した情報ではない情報である、
電子機器。
【請求項18】
第1の電子機器に接続された第2の電子機器であって、
前記第1の電子機器に接続される外部インタフェースと、
第1値を含んだ認証情報を前記第1の電子機器から前記外部インタフェースを介して受信する制御部と
を有し、
前記第1値と第2値との差が無ければ、前記制御部によって、所望される動作である所望動作が実行され、
前記第1値と前記第2値との差が有れば、前記制御部によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器。
【請求項19】
認証情報を送信する第1の電子機器と、
前記第1の電子機器から前記認証情報を受信する第2の電子機器と
を有し、
前記認証情報は、第1値を有し、
前記第1値は、第1パラメータ値又はそれの基になる値であり、
前記第2の電子機器は、前記認証情報内の前記第1値に従う第1パラメータ値を用いた制御を行う、
電子機器システム。
【請求項20】
第1値を含んだ認証情報を送信する第1の電子機器と、
前記第1の電子機器から前記認証情報を受信する第2の電子機器と
を有し、
前記第1値と第2値との差が無ければ、前記第2の電子機器によって、所望される動作である所望動作が実行され、
前記第1値と前記第2値との差が有れば、前記第2の電子機器によって、前記所望動作以外の動作である非所望動作が実行される、
電子機器システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−38059(P2012−38059A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−177180(P2010−177180)
【出願日】平成22年8月6日(2010.8.6)
【出願人】(596180124)Spansion Japan株式会社 (16)
【Fターム(参考)】