(57)【特許請求の範囲】
【請求項１】
番地を示すアドレス信号に応じて前記番地に格納されているデータを読み出すメモリ部と、前記メモリ部から読み出された前記データを外部出力する出力部と、を含む半導体メモリであって、
前記メモリ部の特定番地には前記データの外部出力を許可するか否か示す出力可否フラグが格納されており、
前記出力部は、電源投入後、前記出力可否フラグが前記外部出力の許可を示し且つ前記特定番地を示す前記アドレス信号がクロック信号のクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されるまでの間は前記データの外部出力を禁止することを特徴とする半導体メモリ。
【請求項２】
前記出力部は、前記アドレス信号によって示される番地が前記特定番地と一致している間だけ前記クロック信号のクロックパルス数をカウントし、このカウント値が前記Ｎに到達した時に特定番地確定信号を生成する特定番地判定部と、
前記出力可否フラグが前記外部出力の許可を示し且つ前記特定番地確定信号が生成されるまでの間は前記外部出力を禁止させる一方、前記出力可否フラグが前記外部出力の許可を示し且つ前記特定番地確定信号が生成された後は前記メモリ部から読み出された前記データを外部出力させる出力判断部と、を含むことを特徴とする請求項１記載の半導体メモリ。
【請求項３】
前記Ｎは、前記メモリ部から読み出される際の前記データの遅延時間を、前記メモリ部が正常に動作する前記クロック信号の最小限界周期で除算して得られた除算結果以上の値であることを特徴とする請求項１又は２に記載の半導体メモリ。
【請求項４】
前記メモリ部は、不揮発性メモリ、メタルフューズセル又は電気フューズセルであることを特徴とする請求項１〜３のいずれか１に記載の半導体メモリ。
【請求項５】
前記クロック信号から所定周波数よりも高いクロックパルスを除去するフィルタを更に備えたことを特徴とする請求項１〜４のいずれか１に記載の半導体メモリ。
【請求項６】
番地を示すアドレス信号に応じて前記番地に格納されているデータを読み出すメモリ部と、前記メモリ部から読み出された前記データを外部出力する出力部と、を含む半導体メモリにおけるデータ読出方法であって、
前記メモリ部の特定番地には前記データの外部出力を許可するか否か示す出力可否フラグが格納されており、
前記特定番地を示す前記アドレス信号に応じて前記出力可否フラグを読み出し、
前記出力可否フラグが前記外部出力の許可を示すか否かを判定し、
電源投入後、前記特定番地を示す前記アドレス信号がクロック信号のクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されたか否かを判定し、
前記出力可否フラグが前記外部出力の許可を示すと判定され且つ前記特定番地を示す前記アドレス信号が前記クロック周期のＮ倍の期間に亘り継続して供給されたと判定されるまでの間は、前記出力部による前記データの外部出力を禁止することを特徴とするデータ読出方法。
【請求項７】
前記クロック信号の周波数が所定周波数よりも高い場合には前記メモリ部及び前記出力部の動作を停止させる一方、
前記クロック信号の周波数が前記所定周波数よりも低い場合には、前記メモリ部における前記データの読み出し遅延時間を、前記メモリ部を正常に動作し得る前記クロック信号の最小限界周期で除算した結果に対応したクロックパルス数の前記クロック信号の供給期間に亘って前記特定番地を示す前記アドレス信号が継続して供給されるまでの間は、前記出力部による前記データの外部出力を禁止することを特徴とする請求項６記載のデータ読出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ、特にセキュリティ情報を担うデータが格納されている半導体メモリ及びそのデータ読出方法に関する。
【背景技術】
【０００２】
ＩＣ（集積回路）カードは、その外部端子を通して端末機などの接続装置との間で電気信号を送受信することにより情報交換を行う。また、ＩＣカードには、クレジット決済やバンキングなどのセキュリティが必要とされるシステムで用いられるものがある。このようなシステムで用いられるＩＣカードには、所有者の個人情報、クレジット番号、決算履歴などのセキュリティ情報を記憶しておく為のメモリが形成されている。よって、かかるＩＣカードとして、不正使用によるセキュリティ情報の読み出しを防止する機能を搭載した半導体集積装置が提案されている（例えば、特許文献１の図１参照）。かかる半導体集積装置には、セキュリティ情報が記憶されたメモリに対してデータの外部読み出しを禁止する信号が一旦入力されると、その後、外部からメモリに対するデータ読み出しが為されてもこれを受け付けないようにした読出禁止制御回路が搭載されている。
【０００３】
しかしながら、クロック周波数等を変動させることにより、読出禁止制御回路に対して故意にエラーを発生させ、この際に得られた誤った出力結果に基づき記憶内容を推定するという、いわゆる故障利用解析が実施された場合には、セキュリティ情報が漏洩する虞があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−２９２９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、格納されているデータを不正に読み出そうとする攻撃に対する耐性が高い半導体メモリ及びデータ読出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る半導体メモリは、番地を示すアドレス信号に応じて前記番地に格納されているデータを読み出すメモリ部と、前記メモリ部から読み出された前記データを外部出力する出力部と、を含む半導体メモリであって、前記メモリ部の特定番地には前記データの外部出力を許可するか否か示す出力可否フラグが格納されており、前記出力部は、電源投入後、前記出力可否フラグが前記外部出力の許可を示し且つ前記特定番地を示す前記アドレス信号がクロック信号のクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されるまでの間は前記データの外部出力を禁止する。
【０００７】
また、本発明に係るデータ読出方法は、番地を示すアドレス信号に応じて前記番地に格納されているデータを読み出すメモリ部と、前記メモリ部から読み出された前記データを外部出力する出力部と、を含む半導体メモリにおけるデータ読出方法であって、前記メモリ部の特定番地には前記データの外部出力を許可するか否か示す出力可否フラグが格納されており、前記特定番地を示す前記アドレス信号に応じて前記出力可否フラグを読み出し、前記出力可否フラグが前記外部出力の許可を示すか否かを判定し、電源投入後、前記特定番地を示す前記アドレス信号がクロック信号のクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されたか否かを判定し、前記出力可否フラグが前記外部出力の許可を示すと判定され且つ前記特定番地を示す前記アドレス信号が前記クロック周期のＮ倍の期間に亘り継続して供給されたと判定されるまでの間は、前記出力部による前記データの外部出力を禁止する。
【発明の効果】
【０００８】
本発明に係る半導体メモリでは、電源投入後、メモリ部に格納されている出力可否フラグが外部出力の許可を示し且つこの出力可否フラグが格納されている特定番地を示すアドレス信号がクロック信号におけるクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されるまでの間は、データの外部出力を禁止するようにしている。
【０００９】
よって、かかる構成によれば、製品出荷前のテスト時には、出力可否フラグとして外部出力の許可を示す値を格納しておくことにより、メモリから読み出されたデータの外部出力を可能とする。一方、製品出荷時にはこの出力可否フラグとして外部出力を不許可とする値を格納しておくことにより、データの外部出力を禁止する。これにより、メモリに格納されているデータの外部漏洩が防止される。
【００１０】
また、出荷後の半導体メモリに対して推奨周波数よりも高周波数のクロック信号を供給して誤動作させることにより、特定番地に格納されている、外部出力を不許可とする値とは異なる値、つまり外部出力を許可する値を読み出して格納データを不正に外部出力させようとする攻撃に対しても高い耐性を発揮することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る半導体メモリが形成されている半導体チップ１０の概略構成を示すブロック図である。
【図２】出力判断部１０４及び特定番地判定部１０５の内部構成を示すブロック図である。
【図３】半導体チップ１０をテストする際のシステム構成を示す図である。
【図４】テスタ２００によって実施されるテスト動作、及びかかるテストによる半導体チップ１０の内部動作を示すタイムチャートである。
【図５】推奨周波数のクロック信号ＣＬＫを供給した場合、及び推奨周波数よりも高い不正な周波数のクロック信号ＣＬＫを供給した場合各々でのメモリ１０２の読み出し動作を示すタイムチャートである。
【発明を実施するための形態】
【００１２】
本発明は、番地を示すアドレス信号（Ａ0-7）に応じて各番地に格納されているデータを読み出すメモリ部（１０２）から読み出されたデータを、出力部（１０４、１０５）にて外部出力するにあたり、以下の如き出力制御を行う。すなわち、メモリ部の特定番地にはデータの外部出力を許可するか否か示す出力可否フラグが格納されており、出力部は、電源投入後、この出力可否フラグが外部出力の許可を示し且つ特定番地を示すアドレス信号がクロック信号（ＣＬＫ）のクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されるまでの間は、データの外部出力を禁止する。
【実施例】
【００１３】
図１は、本発明に係る半導体メモリが形成されている半導体チップ１０の概略構成を示すブロック図である。
【００１４】
図１に示すように、半導体チップ１０には、フィルタ１００、コントローラ１０１、メモリ１０２、データレジスタ１０３、出力判断部１０４及び特定番地判定部１０５を含む。
【００１５】
フィルタ１００は、半導体チップ１０の外部端子を介して供給されたクロック信号ＣＬＫに対して、上記した各モジュールが動作不可となる限界周波数以上の高い周波数成分、つまりクロックパルスを除去したクロック信号をメモリ１０２、データレジスタ１０３及び特定番地判定部１０５に供給する。すなわち、限界周波数よりも高い周波数を有するクロック信号ＣＬＫが供給された場合には、メモリ１０２、データレジスタ１０３及び特定番地判定部１０５は動作停止状態となる。
【００１６】
メモリ１０２は、例えばフラッシュメモリ等からなる２５６バイトの不揮発性のメモリであり、各種のセキュリティデータが格納される。尚、このセキュリティデータは、メモリ部１０２の番地［０ｘ００]〜［０ｘＦＦ］の内の［０ｘ０１］〜［０ｘＦＦ］の領域に格納される。一方、メモリ１０２の番地［０ｘ００]には、メモリ１０２から読み出された読出データの外部出力を許可するか否かを示す出力可否フラグが格納される。例えば、読出データの外部出力を許可する場合には［０ｘＦＦ］が格納される一方、読出データの外部出力を不許可とする場合には［０ｘＦＦ］以外の値が格納される。ここで、本半導体チップ１０の製造直後の時点では、メモリ１０２の全領域、つまり番地［０ｘ００]〜［０ｘＦＦ］には、初期値として［０ｘＦＦ］が格納された状態となっている。よって、この時点でメモリ１０２の番地［０ｘ００］には読出データの外部出力を許可することを示す［０ｘＦＦ］が格納されていることになる。尚、以降、上記した出力可否フラグが記憶される番地［０ｘ００］を、特定番地とも称する。
【００１７】
メモリ１０２は、半導体チップ１０の外部端子を介して供給されたクロック信号ＣＬＫ、チップイネーブル信号ＣＥ、出力イネーブル信号ＯＥ及び外部アドレス信号Ａ0-7に応じて、格納されているデータを８ビットのデータ信号ＤＡ0-7として読み出す。尚、クロック信号ＣＬＫによるクロック周期は、メモリ１０２に対する１アドレス分のアクセス周期である。すなわち、メモリ１０２は、クロック信号ＣＬＫに同期して各番地を示す外部アドレス信号Ａ0-7に応じて、各番地に格納されているデータをデータ信号ＤＡ0-7として読み出し、これをコントローラ１０１及びデータレジスタ１０３に供給する。尚、メモリ１０２は、コントローラ１０１から内部アドレス信号ＡＩ0-7が供給された場合にも、この内部アドレス信号ＡＩ0-7にて示される番地に格納されているデータをデータ信号ＤＡ0-7として読み出し、これをコントローラ１０１及びデータレジスタ１０３に供給する。
【００１８】
コントローラ１０１は、メモリ１０２に格納されているデータを用いた各種処理（説明せず）を行う為に、上記した内部アドレス信号ＡＩ0-7をメモリ１０２に供給しつつ、このメモリ１０２から読み出されたデータを示すデータ信号ＤＡ0-7の取り込みを行う。
【００１９】
データレジスタ１０３は、メモリ１０２から読み出されたデータ信号ＤＡ0-7を、上記したクロック信号ＣＬＫに応じて取り込み、これを読出データ信号ＤＲ0-7として出力判断部１０４に供給する。
【００２０】
図２は、出力判断部１０４及び特定番地判定部１０５の内部構成を示す回路図である。
【００２１】
図２に示すように、特定番地判定部１０５は、アドレス判定回路１０５１、カウンタ１０５２、及びＪＫフリップフロップ（以下、ＪＫ−ＦＦと称する）１０５３からなる。アドレス判定回路１０５１は、外部アドレス信号Ａ0-7にて示される番地が上記した特定番地［０ｘ００］を示すか否かを判定する。アドレス判定回路１０５１は、外部アドレス信号Ａ0-7が特定番地［０ｘ００］を示す場合には論理レベル１、外部アドレス信号Ａ0-7が特定番地［０ｘ００］以外の番地を示す場合には論理レベル０の特定番地一致信号ＡＥを生成し、これをカウンタ１０５２に供給する。カウンタ１０５２は、論理レベル１の特定番地一致信号ＡＥが供給されている間だけ、クロック信号ＣＬＫのクロックパルス数をカウントし、そのカウント値が「１２８」に到達した場合に論理レベル０の状態から論理レベル１の状態に遷移するキャリーアウト信号ＣＯをＪＫ−ＦＦ１０５３の端子Ｊに供給する。尚、カウンタ１０５２は、論理レベル０の特定番地一致信号ＡＥが供給されている間はリセット状態となり、そのカウント値は初期値固定となる。ＪＫ−ＦＦ１０５３は、電源投入時の初期状態では、特定番地では無いことを示す論理レベル０の特定番地確定信号ＦＫを出力判断部１０４に供給する。尚、電源投入後、キャリーアウト信号ＣＯが論理レベル０の状態にある間は、ＪＫ−ＦＦ１０５３は、論理レベル０の特定番地確定信号ＦＫを出力判断部１０４に供給し続ける。ここで、カウンタ１０５２から論理レベル１のキャリーアウト信号ＣＯがその端子Ｊに供給されると、ＪＫ−ＦＦ１０５３は、特定番地であることを示す論理レベル１の特定番地確定信号ＦＫを出力判断部１０４に供給する。
【００２２】
かかる構成により、特定番地判定部１０５は、外部アドレス信号Ａ0-7にて示された番地が特定番地［０ｘ００］であり、且つその状態がクロック信号ＣＬＫにおけるクロック周期の１２８倍の供給期間に亘って継続したら、それ以降、論理レベル１の特定番地確定信号ＦＫを出力判断部１０４に供給し続ける。つまり、外部アドレス信号Ａ0-7が特定番地［０ｘ００］以外の番地を示す場合、又は特定番地［０ｘ００］を示す状態がクロック周期の１２８倍の供給期間よりも短い期間しか継続していない場合には、特定番地判定部１０５は、論理レベル０の特定番地確定信号ＦＫを出力判断部１０４に供給するのである。
【００２３】
出力判断部１０４は、図２に示すように、フラグ値判定回路１０４１、Ｄフリップフロップ（以下、Ｄ−ＦＦと称する）１０４２、アンドゲート１０４３及びＪＫ−ＦＦ１０４４からなる。
【００２４】
フラグ値判定回路１０４１は、データレジスタ１０３から供給された読出データ信号ＤＲ0-7にて示される値と、読出データの外部出力を許可することを示す外部出力許可値［０ｘＦＦ］とを比較し、両者が一致している場合には論理レベル１、不一致である場合には論理レベル０の出力可否フラグ一致信号ＦＥを生成し、これをＤ−ＦＦ１０４２に供給する。Ｄ−ＦＦ１０４２は、かかる出力可否フラグ一致信号ＦＥをクロック信号ＣＬＫに応じて取り込み、これを出力可否フラグ一致信号ＦＥＤとしてアンドゲート１０４３に供給する。アンドゲート１０４３は、この出力可否フラグ一致信号ＦＥＤ、及び上記した特定番地確定信号ＦＫが共に論理レベル１である場合には、読出データを外部出力させるべき論理レベル１の出力制御信号ＯＣＮを生成し、その他の場合には外部出力を禁止すべき論理レベル０の出力制御信号ＯＣＮを生成する。アンドゲート１０４３は、かかる出力制御信号ＯＣＮをＪＫ−ＦＦ１０４４の端子Ｊに供給する。ＪＫ−ＦＦ１０４４は、電源投入時の初期状態では、読出データの外部出力を禁止させるべき論理レベル０の出力制御信号ＯＣをアンドゲート１０４５に供給する。尚、電源投入後、上記した出力制御信号ＯＣＮが論理レベル０の状態にある間は、ＪＫ−ＦＦ１０４４は、論理レベル０の出力制御信号ＯＣをアンドゲート１０４５に供給し続ける。ここで、アンドゲート１０４３から論理レベル１の出力制御信号ＯＣＮが供給されると、ＪＫ−ＦＦ１０４４は、読出データを外部出力させるべき論理レベル１の出力制御信号ＯＣをアンドゲート１０４５に供給し続ける。アンドゲート１０４３は、論理レベル０の出力制御信号ＯＣが供給されている間は、全ビットが論理レベル０となる８ビットのデータ信号Ｄ0-7を半導体チップ１０の外部端子を介して出力する。一方、論理レベル１の出力制御信号ＯＣが供給されている間は、アンドゲート１０４３は、データレジスタ１０３から供給された読出データ信号ＤＲ0-7をそのままデータ信号Ｄ0-7とし、これを半導体チップ１０の外部端子を介して出力する。
【００２５】
かかる構成により、出力判断部１０４は、電源投入後、特定番地判定部１０５から論理レベル１の特定番地確定信号ＦＫが供給され、且つメモリ１０２から読み出された読出データ信号ＤＲ0-7の値が読出データの外部出力を許可することを示す値［０ｘＦＦ］となるまでの間に亘り、読出データ信号ＤＲ0-7の外部出力を禁止するのである。つまり、この間、出力判断部１０４は、メモリ１０２から読み出された読出データ信号ＤＲ0-7の値に拘わらず、全ビットが論理レベル０となる８ビットのデータ信号Ｄ0-7を半導体チップ１０の外部端子を介して出力するのである。そして、論理レベル１の特定番地確定信号ＦＫが供給され、且つメモリ１０２から読み出された読出データ信号ＤＲ0-7の値が［０ｘＦＦ］となった以降、読出データ信号ＤＲ0-7の外部出力が可能となるのである。
【００２６】
ここで、上記した半導体チップ１０の製造後、その製品出荷前に、メモリ１０２に対してセキュリティデータの書き込みが為される。すなわち、メモリ１０２内において特定番地［０ｘ００]を除く［０ｘ０１］〜［０ｘＦＦ］の領域に対して、セキュリティデータの書き込みが為され、これが格納される。
【００２７】
このセキュリティデータの格納後、半導体チップ１０に対して、セキュリティデータが正しくメモリ１０２に書き込まれているか否かを確認する為の読出テストが実施される。
【００２８】
図３は、かかる読出テストを実施する際のシステム構成を示す図である。
【００２９】
図３に示されるように、半導体チップ１０の各外部端子にはテスタ２００が接続される。
【００３０】
図４は、テスタ２００によって実施されるテスト動作、及びかかるテストによる半導体チップ１０の内部動作を示すタイムチャートである。
【００３１】
先ず、テスタ２００は、図４に示す如きクロック信号ＣＬＫ及びこの半導体チップ１０を活性化させるべき論理レベル０のチップイネーブル信号ＣＥを半導体チップ１０に供給する。
【００３２】
次に、テスタ２００は、メモリ１０２からデータを読み出すべき論理レベル０の出力イネーブル信号ＯＥを半導体チップ１０に供給する。
【００３３】
ここで、テスタ２００は、メモリ１０２から読み出されたデータを外部出力可能にする為の設定を行う。つまり、テスタ２００は、特定番地［０ｘ００］を指定する外部アドレス信号Ａ0-7を、図４に示す如く、クロック信号ＣＬＫにおけるクロック周期の１２８倍の供給期間に亘り半導体チップ１０に供給する。これにより、かかる特定番地［０ｘ００］を示す外部アドレス信号Ａ0-7の供給開始時点から特定番地判定部１０５のカウンタ１０５２がカウント動作を開始する。この際、カウンタ１０５２のカウント値が「１２７」以下の間は特定番地確定信号ＦＫが論理レベル０を維持しているので、読出データの外部出力を禁止する論理レベル０の出力制御信号ＯＣがアンドゲート１０４５に供給される。よって、この間、メモリ１０２から読み出された読出データ信号ＤＲ0-7の値に拘わらず、全ビットが論理レベル０となる８ビットのデータ信号Ｄ0-7が外部出力される。しかしながら、カウンタ１０５２のカウント値が「１２８」に到ると、図４に示すように、特定番地確定信号ＦＫが論理レベル０から論理レベル１の状態に遷移する。この際、上記した特定番地［０ｘ００］の指定によってメモリ１０２から読み出された読出データ信号ＤＲ0-7の値は、読出データの外部出力を許可することを示す値［０ｘＦＦ］である。よって、図４の時点Ｑ１において、出力制御信号ＯＣは、読出データの外部出力を禁止する論理レベル０の状態から読出データを外部出力させるべき論理レベル１の状態に遷移する。これにより、出力判断部１０４のアンドゲート１０４５は、読出データ信号ＤＲ0-7をそのままデータ信号Ｄ0-7として外部出力する。すなわち、図４に示す時点Ｑ１以降、メモリ１０２から読み出された読出データの外部出力が可能となるのである。
【００３４】
そこで、図４に示す時点Ｑ１以降、テスタ２００は、クロック信号ＣＬＫの各クロックパルス毎に異なる番地を示す外部アドレス信号Ａ0-7を供給してメモリ１０２に格納されているデータを順次読み出す。この際、半導体チップ１０は、メモリ１０２から読み出された読出データをデータ信号Ｄ0-7として外部出力する。そこで、テスタ２００は、半導体チップ１０から出力されたデータ信号Ｄ0-7を取り込み、このデータ信号Ｄ0-7が期待値と一致しているか否かを判定することにより、セキュリティデータが正しくメモリ１０２に書き込まれたか否かをテストする。
【００３５】
かかるテストにより、セキュリティデータが正しくメモリ１０２に書き込まれていることが確認できた場合、メモリ１０２の特定番地［０ｘ００］に格納されている値を、読出データの外部出力を不許可とする値、つまり［０ｘＦＦ］以外の値に書き換える。これにより、メモリ１０２に格納されているセキュリティデータの外部出力が不可となり、この形態で半導体チップ１０が出荷される。
【００３６】
よって、図１に示される半導体チップ１０によれば、製品出荷前のテスト時には、出力可否フラグとして外部出力の許可を示す値を格納しておくことにより、メモリ１２０から読み出されたデータの外部出力を可能とする。すなわち、メモリ１２０から読み出したセキュリティデータをデータ信号Ｄ0-7として半導体チップ１０から外部出力させることにより、テスタ２００において、セキュリティデータが正しくメモリ１２０に格納されているか否かの確認を行うことが可能となる。一方、製品出荷時にはこの出力可否フラグとして外部出力を不許可とする値を格納しておくことにより、データの外部出力を禁止する。これにより、メモリに格納されているセキュリティデータの外部漏洩が防止される。
【００３７】
また、上記実施例によれば、出荷後の半導体チップ１０に対して、推奨周波数よりも高い周波数を有する不正なクロック信号ＣＬＫを供給することにより故意に誤動作を生じさせて、不正にメモリ１２０に格納されているデータを外部出力させようとする攻撃に対しても高い耐性を発揮することができる。
【００３８】
すなわち、推奨周波数のクロック信号ＣＬＫを半導体チップ１０に供給してメモリ１２０からデータを読み出す場合には、例えば図５（ａ）に示すように、外部アドレス信号Ａ0-7にて示される番地ａ１はクロック信号ＣＬＫにおけるクロックパルスＣＰ1の立ち上がりエッジタイミングでメモリ１２０に取り込まれる。この際、メモリ１２０は、かかる番地ａ１に格納されているデータｄ１をクロックパルスＣＰ1のタイミングで読み出す。しかしながら、実際には、内部動作の遅延によりメモリ１２０は、図５（ａ）に示す如くクロックパルスＣＰ1の立ち上がりエッジタイミングよりも遅延時間ＴＤだけ遅延したタイミングで、データｄ１を示すデータ信号ＤＡ0-7を送出する。従って、データレジスタ１０３は、クロックパルスＣＰ1の次のクロックパルスＣＰ2の立ち上がりエッジタイミングでデータｄ１を示すデータ信号ＤＡ0-7を取り込み、これを読出データ信号ＤＲ0-7として出力判断部１０４に供給する。
【００３９】
すなわち、推奨周波数のクロック信号ＣＬＫによれば、クロックパルスＣＰ1のタイミングで指定された番地ａ１に格納されているデータは、次のクロックパルスＣＰ2のタイミングでデータレジスタ１０３に取り込まれ、これが読出データ信号ＤＲ0-7として出力判断部１０４に供給される。
【００４０】
一方、クロック信号ＣＬＫの周波数を、例えば図５（ｂ）に示すように高周波数に変動させた場合、メモリ１２０は、クロックパルスＣＰ1の立ち上がりエッジタイミングよりも遅延時間ＴＤだけ遅延したタイミングでデータｄ１を示すデータ信号ＤＡ0-7を送出するものの、その遅延時間ＴＤの間に次のクロックパルスＣＰ2が供給される。よって、データレジスタ１０３は、クロックパルスＣＰ2の立ち上がりエッジタイミングで、その直前にメモリ１２０が送出したデータｄ０を取り込み、これを読出データ信号ＤＲ0-7として出力判断部１０４に供給することになる。
【００４１】
すなわち、クロック信号ＣＬＫの周波数を図５（ｂ）に示すように高い周波数に変動させると、クロックパルスＣＰ2のタイミングでは、番地ａ１に格納されているデータｄ１ではなく、その直前にメモリ１０２から読み出されたデータｄ０がデータレジスタ１０３に取り込まれ、これが読出データ信号ＤＲ0-7として出力判断部１０４に供給されるのである。つまり、メモリ１０２に対して番地ａ１に格納されているデータを読み出すべきアクセスを行った場合、この番地ａ１に格納されているデータｄ１とは異なるデータｄ２が読み出されるのである。
【００４２】
従って、図５（ｂ）に示す如き不正なアクセスによれば、例え製品出荷時にメモリ１０２の特定番地［０ｘ００］に格納されている値を読出データの外部出力を不許可とする値に書き換えても、読出データの外部出力を許可する値が読み出されてしまう虞が生じる。
【００４３】
そこで、図１及び図２に示す構成では、出力可否フラグの値として読出データの外部出力を許可する値がメモリ１０２から読み出されてしまっても、外部アドレス信号Ａ0-7による特定番地［０ｘ００］の指定がクロック信号ＣＬＫにおけるクロック周期の１２８倍の供給期間に亘り継続して実施されない限り、その読出データの外部出力を禁止するようにしている。つまり、例え図５（ｂ）に示す如くクロック信号ＣＬＫの周波数を高周波数に変動させても、外部アドレス信号Ａ0-7による特定番地［０ｘ００］の指定がクロック周期の１２８倍の供給期間に亘り継続して実施されない限り、カウンタ１０５２から論理レベル１のはキャリーアウト信号ＣＯが送出されることはない。よって、この間、特定番地確定信号ＦＫ及び出力制御信号ＯＣは共に論理レベル０固定の状態となり、アンドゲート１０４５によって読出データの出力が禁止される。
【００４４】
更に、外部アドレス信号Ａ0-7による特定番地［０ｘ００］の指定がクロック周期の１２８倍の供給期間に亘り継続した後は、メモリ１０２から読み出されたデータＤＡ0-7は、図５（ａ）又は図５（ｂ）に示す如き遅延時間ＴＤの経過後の安定した状態となる。よって、データレジスタ１０３は、この安定した状態にあるデータＤＡ0-7を最終的に取り込みこれを出力判断部１０４に供給することになるので、例えクロック信号ＣＬＫの周波数が推奨周波数よりも高くなっていても、必ず、特定番地［０ｘ００］に格納されている値、つまり読出データの外部出力を不許可とする値がフラグ値判定部１０４１に供給される。これにより、フラグ値判定部１０４１は、論理レベル０の出力可否フラグ一致信号ＦＥを生成するので、出力制御信号ＯＣは論理レベル０固定の状態となり、アンドゲート１０４５によって読出データの出力が禁止される。
【００４５】
よって、本発明によれば、クロック信号ＣＬＫの周波数を推奨周波数よりも高くして誤動作させることにより不正にメモリに格納されているデータを取得しようとする攻撃から、そのデータの漏洩を防止することが可能となる。
【００４６】
尚、上記実施例では、メモリ１２０の全記憶容量を２５６バイト、データ信号のサイズを８ビットとしたが、これに限定されるものではない。
【００４７】
また、上記実施例では、読出データ信号ＤＲ0-7の外部出力を許可するか否かを示す出力可否フラグをメモリ１０２の番地［０ｘ００]に格納するようにしているが、これを他の番地に格納するようにしても良い。更に、上記実施例では、読出データの外部出力を許可する場合には出力可否フラグとして［０ｘＦＦ］を格納するようにしているが、外部出力を許可する出力可否フラグの値としては［０ｘＦＦ］以外の他の値であっても良く、そのビット数も８ビットに限定されるものではない。
【００４８】
また、上記実施例では、クロック周期の１２８倍の供給期間に亘り継続して特定番地［０ｘ００]を示す外部アドレス信号Ａ0-7が供給された場合に、メモリ１０２から出力可否フラグを読み出すようにしているが、特定番地を確定する期間は、この期間に限定されるものではない。すなわち、クロック周期のＮ（Ｎは２以上の整数）倍の供給期間に亘って特定番地を示す外部アドレス信号Ａ0-7が供給された場合に、メモリ１０２から出力可否フラグを読み出すようにしても良い。この際、上記したＮは、メモリ１０２からデータの読み出しが開始されてからその読み出されたデータの値が安定するまでに掛かる遅延時間ＴＤを、メモリ１０２が正常に動作するクロック信号ＣＬＫの最小限界周期で除算した除算結果以上の値とする。
【００４９】
要するに、本発明に係る半導体メモリは、番地を示すアドレス信号（Ａ0-7）に応じて各番地に格納されているデータを読み出すメモリ部（１０２）から読み出されたデータを、出力部（１０４、１０５）にて外部出力するにあたり、以下の如き出力制御を行うようにしたものである。すなわち、電源投入後、メモリ部の特定番地に格納されている出力可否フラグが外部出力の許可を示し且つ特定番地を示すアドレス信号がクロック信号（ＣＬＫ）におけるクロック周期のＮ（Ｎは２以上の整数）倍の期間に亘り継続して供給されるまでの間は、データの外部出力を禁止するのである。
【００５０】
また、上記実施例では、出力可否フラグをメモリ１０２内に格納するようにしているがこれをメモリ１０２に格納するのではなく、半導体チップ１０内に設けた固定電源（図示せぬ）によって出力可否フラグの値を表すようにしても良い。
【００５１】
また、上記実施例では、出力可否フラグをメモリ１０２の全記憶領域に対して１つだけ設定するようにしているが、メモリ１０２の記憶領域を複数の領域に分割し、それぞれの領域毎に出力可否フラグを設けてもよい。
【００５２】
また、メモリ１０２としては、不揮発性メモリセル以外にも、メタルフューズや電気フューズのように１度しか書込みできないフューズセルを採用しても良い。
【符号の説明】
【００５３】
１０２                メモリ
１０４                出力判断部
１０５                特定番地判定部
１０５１              アドレス判定回路
１０５２              カウンタ
１０４３、１０４５    アンドゲート
【図１】
0005876364.tif 000002
【図２】
0005876364.tif 000003
【図３】
0005876364.tif 000004
【図４】
0005876364.tif 000005
【図５】
0005876364.tif 000006