(57)【要約】【課題】パワーゲーティングを適用するＳＲＡＭマクロにおいて、効率的に不良を救済することができる半導体集積回路を提供する。【解決手段】半導体集積回路は、メモリセルアレイと、メモリセルアレイからの読み出しデータを、メモリセルアレイのビット毎に、比較対象データと比較することにより不良検出する不良検出回路と、不良検出回路により検出された不良の有無を示す不良検出結果をビット毎に格納する結果保持回路と、結果保持回路の格納する不良検出結果に基づき冗長シフト動作を行う冗長シフト回路と、メモリセルアレイに供給する第１の電源と結果保持回路に供給する第２の電源とが独立であり、第２の電源を供給している状態において第１の電源を遮断する電源制御回路を含むことを特徴とする。【選択図】図２
2020198142.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと、
前記メモリセルアレイからの読み出しデータを、前記メモリセルアレイのビット毎に、比較対象データと比較することにより不良検出する不良検出回路と、
前記不良検出回路により検出された不良の有無を示す不良検出結果を前記ビット毎に格納する結果保持回路と、
前記結果保持回路の格納する前記不良検出結果に基づき冗長シフト動作を行う冗長シフト回路と、
前記メモリセルアレイに供給する第１の電源と前記結果保持回路に供給する第２の電源とが独立であり、前記第２の電源を供給している状態において前記第１の電源を遮断する電源制御回路
を含むことを特徴とする半導体集積回路。
【請求項２】
前記冗長シフト回路は前記第１の電源を供給される請求項１記載の半導体集積回路。
【請求項３】
前記冗長シフト回路は前記第２の電源を供給される請求項１記載の半導体集積回路。
【請求項４】
前記半導体集積回路の起動時において前記不良検出回路に不良検出動作を実行させる試験制御回路を更に含む請求項１乃至３いずれか一項記載の半導体集積回路。
【請求項５】
前記不良検出回路は、前記メモリセルアレイからデータが読み出されるタイミングに対して、不良の有無を検出する相対的なタイミングを調整可能である請求項１乃至４いずれか一項記載の半導体集積回路。
【請求項６】
スキャンチェーンを介して冗長データを前記結果保持回路に格納可能である請求項１乃至５いずれか一項記載の半導体集積回路。
【請求項７】
メモリセルアレイと、
前記メモリセルアレイからの読み出しデータを、前記メモリセルアレイのビット毎に、比較対象データと比較することにより不良検出する不良検出回路と、
前記不良検出回路により検出された不良の有無を示す不良検出結果を前記ビット毎に格納する結果保持回路と、
前記結果保持回路の格納する前記不良検出結果に基づき冗長シフト動作を行う冗長シフト回路と、
を含むことを特徴とするメモリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、半導体集積回路及びメモリ回路に関する。
【背景技術】
【０００２】
マイクロプロセッサなどのシステムＬＳＩの電力を削減するための対策の一つとして、ある時間に動作していない部分の電源をオフにすることで、余分な動作電力と待機電力を削減するパワーゲーティング方式がある。パワーゲーティング方式では、ＬＳＩの動作中に回路ブロックが使用されない期間をオペレーティングシステムが検出し、当該回路ブロックの電源を一時的にオフにし、使用する前に電源を再投入して回路ブロックを復帰させる。
【０００３】
一方、ＳＲＡＭメモリセルは、低い動作電圧になると記憶保持の不良や読み出し速度の不足などの故障を起こす可能性がある。このため、ＳＲＡＭマクロ部分（メモリ回路部分）については、他のロジック回路部分とは異なる電源を接続することにより、高い動作電圧を確保する場合がある。しかしながら高い電圧を印加すると、消費電力が増大するという問題がある。また高い電圧を印加すると、時間経過と共にBias  Temperature  InstabilityやHot  Carrier  Injectionなどの経年劣化が早く進行して閾値電圧が増加し、速度低下に起因する故障が発生し得るという問題がある。これらの電力消費の増大及び劣化進行速度の増大の問題への対策として、パワーゲーティングを適用することが考えられる。
【０００４】
しかしながら、ＳＲＡＭマクロにパワーゲーティングをそのまま適用することには問題がある。従来のＳＲＡＭマクロは、ウェハ試験の段階で初期不良によるビット故障を検査し、故障したビットに対応した冗長情報を、出荷前に、ＳＲＡＭマクロ外部の不揮発性記憶素子（ＬＳＩ内蔵の電子ヒューズ等）へ書き込んでおく。ＬＳＩ使用時には、システムの電源が投入されたときに、電子ヒューズから冗長情報を読み出し、ＳＲＡＭマクロの冗長シフト回路により、冗長情報に対応するビットのシフトを行い故障ビットを救済する。しかしながら、この冗長シフト回路のシフト状態は、ＳＲＡＭマクロに対してパワーゲーティングを適用した場合、電源遮断により失われてしまう。従って、電源が復帰するたびに、冗長情報をＳＲＡＭマクロの外から読み込む必要が生じ、冗長シフトを完了するまでの時間遅れが生じることになる。複数のＳＲＡＭマクロが内蔵されている場合には、全てのＳＲＡＭマクロの冗長情報の読み込みとシフトが完了するまで、システムはそのメモリブロックを使用できない状態となる。
【０００５】
従って、パワーゲーティングを適用するＳＲＡＭマクロにおいて、効率的に不良を救済することが好ましい。
【０００６】
また従来のＳＲＡＭマクロから電子ヒューズへの冗長情報の書き出しは、出荷前にのみ実施しており、冗長シフト処理により救済される不良は初期故障のみである。経年劣化等により出荷後に不良が発生した場合には、誤り訂正符号による誤り検出及び訂正により対応し、訂正しきれない場合には故障ＬＳＩとなる。前述のようにＳＲＡＭマクロに対して他のロジック回路よりも高い電圧を印加した場合、劣化進行速度が増大することにより、劣化故障の可能性が高くなる。従って、出荷後の経年劣化により発生する不良を効率的に救済するための適切な対策が必要となる。
【０００７】
従って、パワーゲーティングを適用するＳＲＡＭマクロにおいて、劣化不良も含めた不良に対して効率的に不良を救済することが好ましい。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１０９３９５号公報
【特許文献２】特開２００６−１２０２４１号公報
【特許文献３】特開２００６−１５５６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上を鑑みると、パワーゲーティングを適用するＳＲＡＭマクロにおいて、効率的に不良を救済することができる半導体集積回路が望まれる。
【課題を解決するための手段】
【００１０】
半導体集積回路は、メモリセルアレイと、前記メモリセルアレイからの読み出しデータを、前記メモリセルアレイのビット毎に、比較対象データと比較することにより不良検出する不良検出回路と、前記不良検出回路により検出された不良の有無を示す不良検出結果を前記ビット毎に格納する結果保持回路と、前記結果保持回路の格納する前記不良検出結果に基づき冗長シフト動作を行う冗長シフト回路と、前記メモリセルアレイに供給する第１の電源と前記結果保持回路に供給する第２の電源とが独立であり、前記第２の電源を供給している状態において前記第１の電源を遮断する電源制御回路を含むことを特徴とする。
【発明の効果】
【００１１】
少なくとも１つの実施例によれば、パワーゲーティングを適用するＳＲＡＭマクロにおいて、効率的に不良を救済することができる半導体集積回路が提供される。
【図面の簡単な説明】
【００１２】
【図１】マイクロプロセッサの構成の一例を示す図である。
【図２】ＳＲＡＭマクロの構成の一例を示す図である。
【図３】ＳＲＡＭマクロの構成の一部を拡大して示す図である。
【図４】不良検出部及び結果保持部の回路構成の一例を示す図である。
【図５】冗長シフト回路の構成の一例を示す図である。
【図６】冗長シフト回路の動作の一例を示す表である。
【図７】冗長シフト回路の動作の一例を示す表である。
【図８】ＳＲＡＭマクロの構成の別の一例を示す図である。
【図９】出荷前に実行するウェハ試験の一例を示すフローチャートである。
【図１０】システム起動時におけるＳＲＡＭマクロ試験及びシステム動作中におけるパワーゲーティング処理の一例を示すフローチャートである。
【図１１】複数のＳＲＡＭマクロに対する同時試験の様子を示す図である。
【図１２】図４に示す回路による不良検出動作を示すタイミングチャートである。
【図１３】図４に示す回路によるタイミング試験時の動作を示すタイミングチャートである。
【図１４】不良検出回路及び結果保持回路の構成の別の一例を示す図である。
【図１５】図１４に示す共通制御部、比較判定部、及び結果保持部の回路構成の一例を示す図である。
【図１６】図１５に示す回路による不良検出動作を示すタイミングチャートである。
【図１７】図１５に示す回路によるタイミング試験時の動作を示すタイミングチャートである。
【図１８】パワーゲーティングによる電源遮断からのＳＲＡＭマクロの復帰時間を示す図である。
【図１９】電子ヒューズを用いる場合の構成の一例を示す図である。
【図２０】電子ヒューズを用いる場合において図４に示す回路に関する信号設定を示す表である。
【図２１】電子ヒューズを用いる場合において図１５に示す回路に関する信号設定を示す表である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１４】
図１は、本願開示のＳＲＡＭマクロを用いた半導体集積回路の一例としてマイクロプロセッサの構成の一例を示す図である。図１及び以降の同様の図において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。
【００１５】
図１に示すマイクロプロセッサ１０は、複数のプロセッサコア回路１１、複数のキャッシュメモリ１２、試験制御回路１３、パワーゲーティング制御回路１４、及び入出力回路（Ｉ／Ｏ）１５を含む。各プロセッサコア回路１１は、１次キャッシュメモリ（Ｌ１）１６を含む。キャッシュメモリ１２は、２次キャッシュメモリ（Ｌ２）１７及びキャッシュ最下位層に相当するラストレベルキャッシュメモリ（ＬＬ）１８を含む。１次キャッシュメモリ１６、２次キャッシュメモリ１７、及びラストレベルキャッシュメモリ１８に対して、本願開示のＳＲＡＭマクロを適用することができる。
【００１６】
パワーゲーティング制御回路１４は、プロセッサコア回路１１を対象とする複数の電源領域と、キャッシュメモリ１２を対象とする複数の電源領域に対して、電源の供給及び遮断を独立に制御可能である。パワーゲーティング制御回路１４は、例えば、全プロセッサコア回路１１のうちの一部である１つ又は複数のプロセッサコア回路１１に対して電源を供給し、その他のプロセッサコア回路１１に対して電源を遮断することが可能である。またパワーゲーティング制御回路１４は、全キャッシュメモリ１２のうちの一部である１つ又は複数のキャッシュメモリ１２に対して電源を供給し、その他のキャッシュメモリ１２に対して電源を遮断することが可能である。これらの電源供給及び遮断に関する制御動作は、対象回路と電源配線との間に挿入されたパワーゲート（トランジスタ素子）をオン又はオフすることにより実行される。
【００１７】
試験制御回路１３は、後述する試験動作を各キャッシュメモリに実行させる。試験制御回路１３は、システム起動時（即ちマイクロプロセッサ１０を含むシステムが起動された時）に各キャッシュメモリに試験動作を実行させることにより、ＳＲＡＭマクロの不良を検出することができる。また試験制御回路１３は、出荷前に各キャッシュメモリにタイミング試験を実行させる。このタイミング試験の結果は、マイクロプロセッサ１０の動作速度に応じたランク分け等のために用いることができる。
【００１８】
図２は、ＳＲＡＭマクロの構成の一例を示す図である。図２に示すＳＲＡＭマクロ２０は、メモリセルアレイ２１、冗長セル領域２１Ａ、センスアンプ（Ｓ／Ａ）２２、不良検出回路２３、結果保持回路２４、冗長シフト回路２５、及び入出力回路（ＩＯ）２６を含む。
【００１９】
メモリセルアレイ２１は、縦横にマトリクス状に配置されたメモリセルと、複数のワード線と、複数のビット線を含む。データの読み書き動作においては、試験制御回路１３から供給されるアドレス信号ＡＤＤにより一本のワード線が特定される。特定されたワード線が選択的に活性化されると、読み出し動作の場合には、当該ワード線に接続される複数のメモリセルのデータが、それぞれ対応するビット線対に読み出される。また書き込み動作の場合には、複数のビット線対を介して供給されるデータが、選択活性化されたワード線に接続されるそれぞれ対応する複数のメモリセルに格納される。センスアンプ２２は、メモリセルアレイ２１から読み出されたデータを増幅する。
【００２０】
冗長セル領域２１Ａには、メモリセルアレイ２１と同様に冗長用のメモリセルが縦横にマトリクス状に配置されており、メモリセルアレイ２１と共通のワード線に接続されている。選択活性化されたワード線に接続される複数の冗長メモリセルのデータが、それぞれ対応するビット線対に読み出される。また複数のビット線対を介して供給されるデータが、選択活性化されたワード線に接続されるそれぞれ対応する複数の冗長メモリセルに格納される。
【００２１】
不良検出回路２３は、メモリセルアレイ２１からの読み出しデータを、メモリセルアレイ２１のビット毎に、比較対象データと比較することにより不良検出する。比較対象データは、試験制御回路１３から供給される書き込みデータＷｄである。試験の種類には、“０”書き込み＆“０”読み出し試験と、“１”書き込み＆“１”読み出し試験とがある。“０”書き込み＆“０”読み出し試験の場合には、試験制御回路１３がメモリセルアレイ２１の各メモリセルに“０”を書き込み、その後各メモリセルから格納データを読み出す。このとき試験制御回路１３は、“０”である書き込みデータＷｄを不良検出回路２３に供給する。不良検出回路２３では、メモリセルアレイ２１からの読み出しデータを、メモリセルアレイ２１のビット毎に、書き込みデータＷｄと比較することにより不良検出する。“１”書き込み＆“１”読み出し試験の場合には、書き込みデータが“０”ではなく“１”となることが、“０”書き込み＆“０”読み出し試験と異なるのみである。
【００２２】
結果保持回路２４は、不良検出回路２３により検出された不良の有無を示す不良検出結果をビット毎に格納する。結果保持回路２４は、例えばビット毎に設けられたラッチ回路に不良検出結果を格納してよい。
【００２３】
冗長シフト回路２５は、結果保持回路２４の格納する不良検出結果に基づき冗長シフト動作を行う。この冗長シフト動作に応じて、メモリセルアレイ２１及び冗長セル領域２１Ａの複数のビットと、複数の入出力ビットとが一対一に対応付けられる。例えば、メモリセルアレイ２１にｎ本のビット線対が設けられているとする。これらｎ本のビット線対に対応するｎ個のビットｂ１乃至ｂｎのうちいずれのビットにも不良が存在しない場合、これらｎ個のビットｂ１乃至ｂｎが、入出力回路２６を介して入出力されるｎ個の入出力ビットｉｏ１乃至ｉｏｎに対して一対一に割り当てられる。一方、例えばｋ番目のビットに不良が存在する場合、ビットｂ１乃至ｂｋ−１及びｂｋ＋１乃至ｂｎ＋１が入出力ビットｉｏ１乃至ｉｏｎに対して一対一に割り当てられる。ここでビットｂｎ＋１は冗長セル領域２１Ａに属する一対のビット線に対応する。冗長セル領域２１Ａにｍ個のビット線対（即ち各ワードアドレスに対してｍビット）が設けられている場合、冗長処理により、メモリセルアレイ２１におけるｍビットの故障まで救済することができる。
【００２４】
メモリセルアレイ２１、センスアンプ２２、及び入出力回路２６に供給する第１の電源Ａと、結果保持回路２４に供給する第２の電源Ｂとは独立である。図２に示す例においては、冗長シフト回路２５には第１の電源Ａが印加されている。
【００２５】
図１に示すパワーゲーティング制御回路１４は、第２の電源Ｂを供給している状態において第１の電源Ａを遮断することにより、パワーゲーティングを実行することができる。ＳＲＡＭマクロ２０に対してパワーゲーティングにより第１の電源Ａを遮断する場合であっても、第２の電源Ｂを電源供給し続けることで、シフト処理を行うための冗長情報（不良ビット位置を示す情報）は失われない。従って、電源遮断状態からの復帰時に、外部の電子ヒューズ等から冗長情報を読み出してＳＲＡＭマクロ２０に供給する必要はなく、迅速に冗長シフト回路２５にシフト動作を実行させることができる。即ち、パワーゲーティングにより電力消費を最大限に削減しながらも、結果保持回路２４の電源は遮断することなく、迅速な電源遮断状態からの復帰が可能になる。この効果を得るためには、結果保持回路２４の冗長情報を保持できるような電源供給構成となっていればよい。
【００２６】
図３は、ＳＲＡＭマクロ２０の構成の一部を拡大して示す図である。メモリセルアレイ２１には複数のワード線のうちの一本のワード線ＷＬが示されている。また複数のビット線対のうち、１番目のビット線対ＢＬ１とｎ番目のビット線対ＢＬｎとが示されている。センスアンプ２２は、ビット線対毎に設けられたセンスアンプ回路ＳＡにより、対をなす２本のビット線間の電圧差を増幅するように動作する。センスアンプ回路ＳＡによる増幅後のビット値（対をなす２本のビット線のうち所定の一本のビット線に現れる論理値）が不良検出回路２３に供給される。
【００２７】
図３において、不良検出回路２３及び結果保持回路２４は、ビット毎に設けられた不良検出部３１及び結果保持部３２を含む。不良検出部３１は、センスアンプ回路ＳＡからの読み出しビット値を、比較対象データ（書き込みデータＷｄ）と比較することにより不良検出する。結果保持部３２は、不良検出部３１により検出された不良の有無を示す１ビットの不良検出結果を格納する。結果保持部３２は、１ビットの値を格納するラッチを含んでよい。結果保持部３２が格納する１ビットの不良検出結果は、冗長シフト回路２５に試験結果端子ＦＤを介して供給される。
【００２８】
図３に示す例においては、ワード線ＷＬとビット線対ＢＬｎとの交点位置に設けられたメモリセルに欠陥が存在する。この場合、冗長シフト回路２５は、信号接続経路２５−１乃至２５−ｎ＋２のうちで信号接続経路２５−ｎ乃至２５−ｎ＋２の接続先をずらすことにより、ビット線対ＢＬｎのビット位置を避けるようにシフト動作を実行する。
【００２９】
図４は、不良検出部３１及び結果保持部３２の回路構成の一例を示す図である。図４に示す回路は、ＮＡＮＤ回路４１及び４２、ＮＯＲ回路４３、転送ゲート４４乃至４６、及びインバータ４７乃至５３を含む。メモリセルアレイ２１又は冗長セル領域２１Ａから読み出されたデータＱが図４に示される回路に入力される。
【００３０】
不良検出動作時において、制御信号ＴＷは“０”に設定されると共に、制御信号ＷＳ及びＪｄは“１”に設定される。このときインバータ５２及び５３は、互いに他方の出力を自らの入力とすることによりラッチを形成する。例えば制御信号ＷＳを最初に“０”に設定しておき、その後“１”に設定することにより、試験結果端子ＦＤの値が“１”となるように、ラッチの初期状態を設定してよい。この初期状態において、転送ゲート４６は導通状態となっている。
【００３１】
上記のラッチ及び転送ゲート４６が、結果保持部３２に相当し、検出結果を保持する機能を提供する。また以下に説明するように、転送ゲート４４及び４５並びにインバータ４９が、不良検出部３１に相当し、不良を検出する機能を提供する。
【００３２】
書き込みデータＷｄが“０”のとき転送ゲート４４が導通状態となり転送ゲート４５が遮断状態となる。読み出しデータＱが正しい値“０”のとき、この値“０”が転送ゲート４６を介して上述のラッチ（インバータ５２及び５３により形成されるラッチ）に格納され、試験結果端子ＦＤの出力は“１”となる。読み出しデータＱが誤った値“１”のとき、この値“１”が転送ゲート４６を介してラッチに格納され、試験結果端子ＦＤの出力は“０”となる。
【００３３】
書き込みデータＷｄが“１”のとき転送ゲート４４が遮断状態となり転送ゲート４５が導通状態となる。読み出しデータＱが正しい値“１”のとき、この値“１”の反転値“０”が転送ゲート４６を介してラッチに格納され、試験結果端子ＦＤの出力は“１”となる。読み出しデータＱが誤った値“０”のとき、この値“０”の反転値“１”が転送ゲート４６を介してラッチに格納され、試験結果端子ＦＤの出力は“０”となる。
【００３４】
以上のようにして、読み出しデータＱが正しい値である場合には試験結果端子ＦＤの出力は“１”となり、読み出しデータＱが誤った値である場合には試験結果端子ＦＤの出力は“０”となる。誤った読み出しデータＱが検出されると、転送ゲート４６は遮断状態となり、試験結果端子ＦＤの出力が“０”である状態にラッチが固定される。
【００３５】
図２及び図３に示すメモリセルアレイ２１及び冗長セル領域２１Ａのワード線を順次選択活性化し、図４に示す回路により読み出しデータＱを書き込みデータＷｄと順次比較することにより、各ビット位置における不良を検出することができる。いずれかのワードアドレス（何れかのワード線）においてあるビットに不良が検出されると、当該ビット位置においては試験結果端子ＦＤの出力は“０”に固定される。
【００３６】
図５は、冗長シフト回路２５の構成の一例を示す図である。図５に示す冗長シフト回路２５は、ＡＮＤ回路６１−０乃至６１−ｎ、ＡＮＤ回路６２−０乃至６２−ｎ、ＯＲ回路６３−０乃至６３−ｎ、インバータ６４−０乃至６４−ｎ、及びＡＮＤ回路６５−１乃至６５−ｎを含む。図５に示す冗長シフト回路２５は、冗長ビットが１ビットのみであり、最大で１ビットの不良の救済が可能な回路である。
【００３７】
冗長シフト回路２５には、メモリセルから読み出されたｎ個の読み出しビットＱ０乃至Ｑｎが入力される。冗長シフト回路２５には更に、ｎ個の読み出しビットＱ０乃至Ｑｎに一対一に対応するｎ個の結果保持部３２の試験結果端子ＦＤから、ｎ個の不良検出ビットＪＳ０乃至ＪＳｎが入力される。不良検出ビットＪＳ０乃至ＪＳｎは、不良が検出されたビット位置において“０”となり、不良が検出されていないビット位置において“１”となる。
【００３８】
０〜ｋ−１番目（ｋ：１以上且つｎ以下の整数）のビット位置において不良が検出されずに、不良検出ビットＪＳ０乃至ＪＳｋ−１が“１”であるとする。この場合、ＡＮＤ回路６５−０乃至６５−ｋ−１の出力が“１”となり、０〜ｋ−１番目のビットにおける出力ＯＴ０乃至ＯＴｋ−１はそれぞれ読み出しビットＱ０乃至Ｑｋ−１に等しくなる。
【００３９】
ｋ番目（ｋ：２以上且つｎ以下の整数）のビット位置において不良が検出され、不良検出ビットＪＳｋが“０”になったとする。この場合、ＡＮＤ回路６５−ｋ乃至６５−ｎの出力が“０”となり、ｋ乃至ｎ番目のビットにおける出力ＯＴｋ乃至ＯＴｎはそれぞれ読み出しビットＱｋ＋１乃至ＱＲに等しくなる。即ち、ｋ乃至ｎ番目のビットにおいては、出力ビットと読み出しビットとの関係が１ビットずれることになる。
【００４０】
図６は、冗長シフト回路の動作の一例を示す表である。図６に示されるのは全ビットの試験結果が正しい場合であり、不良検出ビットＪＳ０乃至ＪＳｎは全て“１”となっている。この場合、読み出しビットＱ０乃至Ｑｎがそのまま出力ＯＴ０乃至ＯＴｎに割り当てられる。
【００４１】
図７は、冗長シフト回路の動作の別の一例を示す表である。図６に示されるのは第１番目のビットのみが不良である場合であり、不良検出ビットＪＳ１が“０”であり、それ以外の不良検出ビットＪＳ０及びＪＳ２乃至ＪＳｎは全て“１”となっている。この場合、読み出しビットＱ０はそのまま出力ＯＴ０に割り当てられるが、読み出しビットＱ１は破棄され、読み出しビットＱ２乃至ＱＲがそれぞれ出力ＯＴ１乃至ＯＴｎに割り当てられる。
【００４２】
図２に示されるＳＲＡＭマクロ２０の構成の場合、冗長シフト回路２５は電源Ａに接続されており、パワーゲーティング時において冗長シフト回路２５の電源は遮断される。パワーゲーティング時においても電源が保持される結果保持回路２４に冗長情報は残されるが、冗長シフト回路２５の電源が遮断されることにより、図５に示される全ての論理素子の出力はフローティング状態となる。
【００４３】
その後、冗長シフト回路２５の電源が回復され、冗長シフト動作を実現するための信号経路が回復される。図７に示される回路の場合、冗長シフト回路２５における信号経路の回復のために特にトリガは必要ないが、何らかのトリガが必要な場合には、図２に示すように試験制御回路１３から回復信号Ｒｅｐａｉｒを供給してトリガをかけるようにしてもよい。図７に示される冗長シフト回路２５において、電源が回復されると、結果保持回路２４から供給される冗長情報（不良検出ビットＪＳ０乃至ＪＳｎ）の“０／１”に応じてＡＮＤ回路６５−１乃至６５−ｎの出力がロー電圧又はハイ電圧に順次確定していく。これにより、冗長シフト動作を実現する信号経路が確定される。ＡＮＤ回路６５−１乃至６５−ｎは縦続接続されているために、この電圧確定動作が伝搬していくためには、論理ゲートｎ段分の遅延時間が発生する。
【００４４】
ＳＲＡＭマクロのビット幅は用途により異なるが、例えば１バイトが９ビットであり、１ワードが８バイトからなるとすると、ＳＲＡＭマクロの読み出しデータは７２ビット幅となる。この場合、図５に示す回路のクリティカルパスは７１段のＡＮＤゲートの縦続接続となる。高性能マイクロプロセッサにおいて、１サイクル内に伝搬するゲート段数は多くても１０段前後であることを考えると、約７０段の伝搬が完了するには５〜１０サイクル程度の時間が必要になる。この長さの時間遅れがパワーゲーティングからの復帰時において必ず発生するとすると、パワーゲーティングを多用した場合にプロセッサ性能への影響が懸念される。
【００４５】
図８は、ＳＲＡＭマクロの構成の別の一例を示す図である。図８に示されるＳＲＡＭマクロ２０では、冗長シフト回路２５は、不良検出回路２３及び結果保持回路２４と同様に、電源Ｂに接続されている。従って、パワーゲーティング時においてＳＲＡＭマクロ２０の他の回路に対して電源が遮断されても、冗長シフト回路２５、不良検出回路２３、及び結果保持回路２４には電源が供給され続ける。即ち、冗長シフト回路２５において冗長シフト動作を実現する信号経路の選択状態はそのまま保持されている。従って、電源遮断状態からのＳＲＡＭマクロ２０の復帰時において、冗長シフト回路２５は既に冗長シフト後の動作を実行可能な状態にあり、ＡＮＤゲートの多段の縦続接続を冗長情報が順次伝搬していくために必要な時間遅れが発生することはない。
【００４６】
図９は、出荷前に実行するウェハ試験の一例を示すフローチャートである。図９に示すウェハ試験は、出荷前にウェハ状態のマイクロプロセッサに対して実行される。
【００４７】
なお図９及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、Ａステップの次にＢステップを実行することが可能なだけでなく、Ｂステップの次にＡステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Ｂステップの次にＡステップが実行されてもよいことは自明である。Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【００４８】
図９のステップＳ１において、マイクロプロセッサ１０に試験装置を接続し、試験装置によるロジック試験を開始する。ステップＳ２において、試験装置から１つのＳＲＡＭマクロ２０に対して“０”書き込み＆“０”読み出し試験と“１”書き込み＆“１”読み出し試験とを実行する。この際、不良検出回路２３により不良検出を行い、メモリセルアレイ２１及び冗長セル領域２１Ａの全てのビット位置について、結果保持回路２４が不良検出結果を保持してよい。或いは、通常の書き込み及び読み出し動作を実行して、試験装置において、書き込みデータと読み出しデータとを比較してもよい。
【００４９】
ステップＳ３で、試験装置は、書き込みデータと読み出しデータとが同一であるか否かを判断する。具体的には、結果保持回路２４に不良検出結果が保持されている場合には、不良検出結果をＳＲＡＭマクロ２０内のスキャンチェーンを介して外部の試験装置に読み出せばよい。或いは、通常の書き込み及び読み出し動作を実行して、試験装置により書き込みデータと読み出しデータとを比較して不良の有無を判断してもよい。
【００５０】
不良が検出されない場合（ステップＳ３でＹｅｓ）には、ステップＳ４で、試験装置は、試験対象のＳＲＡＭマクロ２０が残っているか否かを判断する。試験すべきＳＲＡＭマクロ２０が存在しない場合には、ウェハ試験を終了する。試験すべきＳＲＡＭマクロ２０が存在する場合には、ステップＳ２に戻り、次の一つのＳＲＡＭマクロ２０に対してステップＳ２及び以降のステップの処理を実行する。
【００５１】
不良が検出された場合（ステップＳ３でＮｏ）には、ステップＳ５で、不良ビット数が冗長可能な範囲内であるか否かを判断する。冗長可能である場合（ステップＳ５でＹｅｓ）、処理はステップＳ４に進む。冗長可能でない場合（ステップＳ５でＮｏ）、処理はステップＳ６に進み、当該マイクロプロセッサ１０が初期故障チップであると判断する。初期故障チップと判断された製品は出荷されることはない。
【００５２】
なお本実施形態のマイクロプロセッサ１０においては、システム起動時にＳＲＡＭマクロ２０の各ビット位置に対して不良検出試験を実行して冗長情報を得るので、従来のように出荷前の段階において冗長情報を電子ヒューズ等に格納しておく必要はない。
【００５３】
図１０は、システム起動時におけるＳＲＡＭマクロ試験及びシステム動作中におけるパワーゲーティング処理の一例を示すフローチャートである。
【００５４】
ステップＳ１１において、マイクロプロセッサ１０を含むシステムに電源が投入され、システム起動される。ステップＳ１２において、マイクロプロセッサ１０の試験制御回路１３が、全てのＳＲＡＭマクロ２０に対して、例えば“１”書き込み＆“１”読み出し試験を最初に実行する。この際、一つ一つのＳＲＡＭマクロ２０に対して順次試験を実行するのではないく、全てのＳＲＡＭマクロ２０に対して同時に試験を実行する。ステップＳ１３において、各ＳＲＡＭマクロ２０の不良検出回路２３により、書き込みデータと読み出しデータとをビット位置毎に比較して不良検出を行う。この時に検出される不良は、製品出荷時から存在する初期不良と、その後の経年劣化などにより発生した劣化不良とが含まれる。
【００５５】
図１１は、複数のＳＲＡＭマクロに対する同時試験の様子を示す図である。複数個のＳＲＡＭマクロ２０に対して同時にアドレス信号ＡＤＤ、制御信号ＣＴＬ、及び書き込みデータ（Ｗｒｉｔｅ  ｄａｔａ）を供給することで、全てのＳＲＡＭマクロ２０に対して同時に書き込み＆読み出し試験を実行することができる。なおアドレス信号ＡＤＤ、制御信号ＣＴＬ、及び書き込みデータは、図２に示されるように試験制御回路１３から供給してよい。
【００５６】
図１２は、図４に示す回路による不良検出動作を示すタイミングチャートである。システム起動時の不良検出試験においては、制御信号ＴＷは“０”に設定されると共に、制御信号ＷＳ及びＪｄは“１”に設定される。制御信号ＷＳを最初に“０”に設定しておき、その後“１”に設定することにより、試験結果端子ＦＤの値が“１”となるように、ラッチ（図４参照）の初期状態を設定することができる。
【００５７】
図１２には書き込みデータＷｄが“１”の場合の動作が示される。クロックタイミング＃ｎ−２及び＃ｎ−１に示されるように、クロック信号Ｃｌｏｃｋに同期して読み出される読み出しデータＱが正しい値“１”のとき、この値“１”の反転値“０”がラッチに格納され、試験結果端子ＦＤの出力は“１”の値をそのまま保持する。クロックタイミング＃ｎに示されるように、読み出しデータＱが誤った値“０”のとき、この値“０”の反転値“１”がラッチに格納され、試験結果端子ＦＤの出力は“０”となる。その後読み出しデータＱが正しい値となっても、試験結果端子ＦＤの出力が“０”である状態がそのまま保持される。
【００５８】
図１０に戻り、書き込みデータと読み出しデータとが一致しない場合（ステップＳ１３でＮｏ）、処理はステップＳ１４に進み、結果保持回路２４に不良検出を示す結果が格納される。なお実際には、図４に示す回路の場合、結果保持回路２４に不良検出無しを示す結果又は不良検出有りを示す結果がビット位置毎に格納されることになる。即ちステップＳ１３の判定結果Ｙｅｓ又はＮｏに応じた判定値が、結果保持回路２４にビット位置毎に格納される。
【００５９】
ステップＳ１５で、書き込み及び読み出し試験（“１”に対する試験及び“０”に対する試験）が全て終了したかを判定する。書き込み及び読み出し試験が全て終了していない場合、処理はステップＳ１２に戻り、以降のステップの処理を繰り返すことにより、残りの試験、例えば“０”書き込み＆“０”読み出し試験を実行する。
【００６０】
全ての書き込み及び読み出し試験が終了すると、処理はステップＳ１６に進み、冗長シフト回路２５が冗長シフト処理を実行する。ステップＳ１７において、マイクロプロセッサ１０の試験制御回路１３が、全てのＳＲＡＭマクロ２０に対して書き込み＆読み出し試験を再度実行する。ステップＳ１８で、各ＳＲＡＭマクロ２０の不良検出回路２３により、書き込みデータと読み出しデータとをビット位置毎に比較して不良検出を行う。不良が検出された場合には、冗長処理により不良ビットを救済しきれていないことを意味するので、ステップＳ１９において、当該マイクロプロセッサ１０が劣化故障チップであると判断する。この場合、マイクロプロセッサ１０のチップの交換が必要となる。
【００６１】
不良が検出されなかった場合（ステップＳ１８でＹｅｓ）、処理はステップＳ２０に進む。ステップＳ２０において、マイクロプロセッサ１０が、オペレーションシステムを実行すると共に、アプリケーションを適宜実行する。即ち、システムの動作が実行される。
【００６２】
以上のように、システムの電源投入後に各ＳＲＡＭマクロ２０において不良検出試験を実行することで、初期不良だけでなく劣化不良を救済することができる。この際、全ＳＲＡＭマクロ２０において試験を並列且つ同時に実行することで、短時間にシステムを起動することが可能となる。
【００６３】
ステップＳ２１において、オペレーションシステムは、所定期間以上使用されない回路ブロックを検出することにより、ＳＲＡＭマクロ２０に対して電源を一時的に遮断するパワーゲーティングを実行するか否かを判断する。パワーゲーティングを実行する場合、ステップＳ２２において、オペレーションシステムの制御の下で、パワーゲーティング制御回路１４（図１参照）が、パワーゲーティング対象であるＳＲＡＭマクロ２０の電源を遮断する。この際、前述のように、図２の回路（タイプ１とする）の場合には、不良検出回路２３及び結果保持回路２４に電源が供給され続ける。また図８の回路（タイプ２とする）の場合には、不良検出回路２３、結果保持回路２４、及び冗長シフト回路２５に電源が供給され続ける。
【００６４】
ステップＳ２３で、オペレーションシステム等が、電源遮断されているＳＲＡＭマクロ２０の電源を復帰するか否かを判断する。復帰すると判断した場合、処理はステップＳ２４に進み、オペレーションシステムが、冗長シフト回路２５が専用電源部に属する否か、即ち冗長シフト回路２５の電源が維持されているか否かを判断する。冗長シフト回路２５が専用電源部に属する場合（即ちＳＲＡＭマクロ２０がタイプ２の場合）、電源復帰した当該ＳＲＡＭマクロ２０は、オペレーションシステムの制御下で直ちにシステム動作に組み込まれる（ステップＳ２０）。
【００６５】
冗長シフト回路２５が専用電源部に属しない場合（即ちＳＲＡＭマクロ２０がタイプ１の場合）、ステップＳ２５で、オペレーションシステムは、電源復帰したＳＲＡＭマクロ２０において、冗長シフト回路２５における冗長シフト動作を完了させる。例えば、所定のクロックサイクル数の時間待つことにより、冗長シフト回路２５において冗長シフト動作を完了させる。その後、電源復帰したＳＲＡＭマクロ２０はシステム動作に組み込まれる（ステップＳ２０）。この際、必要に応じて、試験制御回路１３が回復信号Ｒｅｐａｉｒを各ＳＲＡＭマクロ２０の冗長シフト回路２５に供給してよい。
【００６６】
ステップＳ２６でオペレーションシステムの稼働を終了するか否かを判定する。終了しない場合には（ステップＳ２６でＮｏ）、処理はステップＳ２０に戻る。終了する場合には（ステップＳ２６でＹｅｓ）、ステップＳ２７においてシャットダウン処理を実行する。これによりシステム動作が終了する。
【００６７】
図１３は、図４に示す回路によるタイミング試験時の動作を示すタイミングチャートである。
【００６８】
出荷前にウェハ状態で実行する試験においては、タイミング試験用の矩形波としてタイミングウィンドウ信号ＴＷをＳＲＡＭマクロ２０に印加することで、ビット毎にタイミング故障を検出することができる。図１３に示されるように、初期設定時において制御信号ＷＳの“０”入力により、試験結果端子ＦＤが“１”に設定される。その後、制御信号ＷＳを“１”に設定してから、クロック信号ＣｌｏｃｋがＳＲＡＭマクロ２０に印加されて、タイミング試験が開始される。
【００６９】
タイミング試験においては、タイミングウィンドウ信号ＴＷが“０”の期間中、図４に示す回路の転送ゲート４６が導通状態となり、書き込みデータＷｄと読み出しデータＱとの比較結果が前述のラッチに格納される。タイミングウィンドウ信号ＴＷが“０”になるタイミングにおいて既に読み出し完了している場合、書き込みデータＷｄと読み出しデータＱとが一致し、試験結果端子ＦＤの値は“１”となる。タイミングウィンドウ信号ＴＷが“０”になるタイミングにおいて未だ読み出し完了していない場合、書き込みデータＷｄと読み出しデータＱとが不一致となり、試験結果端子ＦＤの値は“０”となる。この際、例えば、“０”読み出しと“１”読み出しとを交互に行うようにしてもよい。試験結果端子ＦＤの値が“０”となり不良（タイミング不足）が検出されると、上記の転送ゲート４６が非導通状態となり、不良検出を示す状態がその後は維持される。
【００７０】
上記説明から分かるように、図２に示すＳＲＡＭマクロ２０において、不良検出回路２３は、メモリセルアレイからデータが読み出されるタイミングに対して、不良の有無を検出する相対的なタイミングを調整可能である。即ち、図４に示す回路においてタイミングウィンドウ信号ＴＷにより転送ゲート４６の開閉タイミングを制御することにより、不良の有無を検出する相対的なタイミングを調整可能である。このようにタイミング試験を行う場合において、タイミングウィンドウ信号ＴＷの立ち下がりエッジのタイミングを変化させることにより、ＳＲＡＭマクロ２０に印加するクロック信号Ｃｌｏｃｋの周波数とは独立に、タイミング試験が可能となる。
【００７１】
従来の構成のように複数のＳＲＡＭマクロに対して一つの判定器を用いる場合、各ＳＲＡＭマクロから判定器までの距離にばらつきがあり、高速かつ低電圧の組み合わせで試験するときに、長い距離の転送パスでエラーが発生してしまうことがある。即ち、距離の長い転送パスにおける遅延が試験周期より大きいと、ＳＲＡＭマクロが正常に動作していても判定が間に合わず、偽のエラーが発生してしまう。出荷時における製品ランク付け等のことを考慮すると、低電圧かつ高速である試験条件において偽のエラーが発生することは問題である。このような偽のエラーを回避するためには、ＳＲＡＭマクロ２０から読み出しデータを転送する転送パスについて、低電圧かつ高速の試験条件下でタイミングに問題がないように設計する必要があり、設計の手間及びコストが増大してしまう。
【００７２】
上述のＳＲＡＭマクロ２０においては、ＳＲＡＭマクロの動作速度を試験する電圧−速度シュムー測定時において、各ＳＲＡＭマクロ２０に設けられた不良検出回路２３を用いてタイミング試験を実行できる。従って、転送パスでの遅延による偽エラーが発生することが無く、適切なタイミング試験結果を保証することができる。
【００７３】
図１４は、不良検出回路及び結果保持回路の構成の別の一例を示す図である。図１４に示される回路構成では、不良検出回路２３及び結果保持回路２４に相当する回路部分が、各ビットに対して設けられる複数個のビット毎動作回路７１と各ビット共通に設けられる共通制御部７２とを含む。ビット毎動作回路７１は、ビット毎に比較判定部７３と結果保持部７４とを含む。ビット毎動作回路７１は、メモリセルアレイ２１及び冗長セル領域２１Ａから読み出しデータＱを受け取ると共に、試験制御回路１３からの制御信号（タイミングウィンドウ信号）Ｔｗと別途供給される制御信号Ｊｄとを受け取る。共通制御部７２は、試験制御回路１３から書き込みデータＷｄ及び制御信号Ｗｓを受け取る。
【００７４】
図１５は、図１４に示す共通制御部、比較判定部、及び結果保持部の回路構成の一例を示す図である。共通制御部７２は、ＰＭＯＳトランジスタ８１及び８２、ＮＭＯＳトランジスタ８３及び８４、及びインバータ８５を含む。ビット毎動作回路７１は、ＮＡＮＤ回路９１、ＸＯＲ回路９２、ＮＯＲ回路９３及び９４、ＡＮＤ回路９５、転送ゲート９６、及びインバータ９７乃至９９を含む。ビット毎動作回路７１において、ＸＯＲ回路９２が比較判定部７３に該当し、インバータ９８及び９９が構成するラッチが結果保持部７４に該当する。
【００７５】
初期設定動作において、共通制御部７２のインバータ８５を介して、書込みデータＷｄの反転値がＸＯＲ回路９２の一方の入力に印加される。書込みデータＷｄが結果保持部（ラッチ）７４の内部ノードｋに初期設定され、書込みデータＷｄの反転値がＸＯＲ回路９２の他方の入力に印加される。この状態において、ＸＯＲ回路９２の２入力は互いに等しく、ＸＯＲ回路９２の出力は“０”となっている。
【００７６】
図１６は、図１５に示す回路による不良検出動作を示すタイミングチャートである。上述した初期設定の後、ＳＲＡＭマクロ２０のアドレス＃ｎからの読み出しデータＱが不良ビットである場合、転送ゲート９６を通過したこの読み出しデータＱによりノードｋが反転され、ＸＯＲ回路９２の出力が“１”となることにより、試験結果端子ＦＤの値が“０”となる。このときに、転送ゲート９６が閉じることで、アドレス＃ｎ＋１以降において読み出しデータＱの値が正常に戻っても、試験結果端子ＦＤは不良ビットであることを示し続ける。
【００７７】
図１７は、図１５に示す回路によるタイミング試験時の動作を示すタイミングチャートである。出荷前にウェハ状態で実行するタイミング試験においては、所望のタイミングで“０”となる負の矩形パルスであるタイミングウィンドウ信号ＴＷを印加する。
【００７８】
タイミングウィンドウ信号ＴＷのパルスの立ち下がりエッジをクロック信号Ｃｌｏｃｋの立ち下がりエッジに合わせておき、メモリセルアレイからの読み出しデータＱが、タイミングウィンドウ信号ＴＷの示すタイミングウィンドウ内で遷移すると、試験結果端子ＦＤは“１”に設定される。読み出しデータＱのタイミングが遅れた場合には、試験結果端子ＦＤの値は変化しない。タイミングウィンドウ信号ＴＷの立ち上がりエッジのタイミングを変化させることにより、ＳＲＡＭマクロ２０に印加するクロック信号Ｃｌｏｃｋの速度とは独立に、タイミング試験が可能となる。
【００７９】
図１８は、パワーゲーティングによる電源遮断からのＳＲＡＭマクロの復帰時間を示す図である。図１８において、横軸が時間であり、縦軸はＳＲＡＭマクロに印加される電源電圧である。時間ｔ１においてパワーゲーティングが開始され電源が遮断され、時間ｔ２において電源が復帰する。上段がＳＲＡＭマクロ２０の動作を示し、下段が従来のＳＲＡＭマクロの動作を示す。
【００８０】
上述のＳＲＡＭマクロ２０の場合、期間Ｔ１においてＳＲＡＭマクロ２０は通常動作状態にあり、その後パワーゲーティングにより、期間Ｔ２においてＳＲＡＭマクロ２０は電源遮断状態となる。但し結果保持回路２４への電源は保持される。その後パワーゲーティングが終了してＳＲＡＭマクロ２０の電源が復帰され、冗長シフト回路２５において冗長シフト動作を実現するための信号経路が、結果保持回路２４に保持されていた冗長データを基にして期間Ｔ３において確定される（復元される）。期間Ｔ４においては、必要な記憶データがＳＲＡＭマクロ２０にロードされる。例えばＳＲＡＭマクロ２０がキャッシュである場合、下位階層のメモリ又はキャッシュ領域からのデータがロードされてよい。その後、期間Ｔ５においてＳＲＡＭマクロ２０は通常動作状態にある。
【００８１】
一方従来のＳＲＡＭマクロの場合、期間Ｔａ１においてＳＲＡＭマクロは通常動作状態にあり、その後パワーゲーティングにより、期間Ｔａ２においてＳＲＡＭマクロ２０は電源遮断状態となる。その後パワーゲーティングが終了してＳＲＡＭマクロの電源が復帰され、期間Ｔａ３において電子ヒューズからＳＲＡＭマクロに冗長データが転送される。その後、冗長シフト回路において冗長シフト動作を実現するための信号経路が、冗長データを基にして期間Ｔａ４において確定される（復元される）。期間Ｔａ５においては、必要な記憶データがＳＲＡＭマクロ２０にロードされる。その後、期間Ｔａ６においてＳＲＡＭマクロ２０は通常動作状態にある。
【００８２】
本願のＳＲＡＭマクロ２０の動作と従来のＳＲＡＭマクロの動作とを比較すると、ＳＲＡＭマクロ２０が通常動作状態に復帰するタイミングは時間ｔ３であり、従来のＳＲＡＭマクロが通常動作状態に復帰するタイミングは時間ｔ４である。時間ｔ３と時間ｔ４との差が、本願のＳＲＡＭマクロ２０の動作復帰と従来のＳＲＡＭマクロの動作復帰との時間差となる。
【００８３】
この時間差についてより具体的に検討すると以下のようになる。パワーゲーティング対象のＳＲＡＭマクロが、４ＭＢの記憶容量のキャッシュメモリであると仮定する。ＳＲＡＭマクロのアドレスを４ｋワード、１バイトのビット幅を９ビット（ＥＣＣ含む）として、４ｋワード×７２ビットのＳＲＡＭマクロを用いると、４ＭＢの記憶容量を実現するためには１２８個のＳＲＡＭマクロが必要となる。
【００８４】
従来技術のＳＲＡＭマクロに対して、ビット列毎に対応した冗長情報をスキャン動作により電子ヒューズから読み出すと、１２８×７２ビット＝９，２１６ビットの長さのスキャンチェーンが用いられることになる。仮にスキャンクロックを１００ＭＨｚとして電子ヒューズから冗長データを読み出したとき、全ビット分の冗長情報を読み出すには、９２．１６μｓを要する。即ち、４ＭＢのキャッシュメモリがパワーゲーティングで電源オフから復帰し、冗長情報を読み込んでシフトを行い、キャッシュメモリが使用可能になるには、約９２．２μｓが必要になる。そしてその後、下位メモリ階層からデータをロードするための期間（例えばシステムクロックで２００サイクル程度）を経て、キャッシュメモリが効き始める。
【００８５】
一方、本願のＳＲＡＭマクロ２０（タイプ１）を用いると、復帰時は冗長情報がすでにビット毎の結果保持回路２４に格納されているので、電子ヒューズからのスキャン読み出しは不要である。冗長シフト回路２５においてシフト用の信号経路を確定させれば使用可能となり、下位メモリからのデータをロードすればキャッシュメモリが効き始める。システムクロックを２ＧＨｚ（周期０．５ｎｓ）、シフトの期間をシステムクロック１０クロック分（５ｎｓ）、ロード期間を２００サイクル分（１００ｎｓ）とすると、１０５ｎｓ程度の期間でキャッシュメモリが効き始める。従来の９２．３μｓと比較して、約９００分の１に時間を短縮する効果が得られる。
【００８６】
更に、システム起動時に本願のＳＲＡＭマクロ２０により不良検査する場合に必要となる起動時間について検討する。
【００８７】
メモリブロックを構成する同一のアドレス深さのＳＲＡＭマクロ２０に対して、一斉に試験を行うとする。試験においては、“０”書き込み、“０”読み出し、“１”書き込み、“１”読み出し、冗長シフト処理、“０”書き込み、“０”読み出し、“１”書き込み、及び“１”読み出しが、この順番で順次実行されることになる。仮に４ｋワードとすると、４ｋワードを８回アクセスすることになり、合計で３２ｋ回アクセスすることになる。システム起動後における同時試験を仮に３３ＭＨｚのスキャンクロックで実行したとすると、９９３μｓ（約１ｍｓ）の処理時間でシステム起動時の不良検査が完了することになる。この処理時間は体感的に問題になるオーダーではなく、システム起動時に必要となる処理時間としては問題がない程度である。
【００８８】
図１９は、電子ヒューズを用いる場合の構成の一例を示す図である。図１９は、電子ヒューズに冗長情報を格納する従来のシステムに本願のＳＲＡＭマクロ２０を用いた場合の構成の一例を示す。本願のＳＲＡＭマクロ２０は、従来のＳＲＡＭマクロと同様に、スキャンチェーンを介して冗長データを結果保持回路に格納可能なように設計されており、様々な仕様のシステムに適用可能となっている。
【００８９】
図１９に示すシステムは、試験制御回路１３、ＳＲＡＭマクロ２０、電子ヒューズ１０１、読み出し回路１０２、スキャンチェーン１０３、判定回路１０４、書き込み回路１０５を含む。図１９には、システムの構成要素のうち説明に必要な部分のみを示してあり、プロセッサコア回路１１やパワーゲーティング制御回路１４等が更にシステムに設けられていてよい。
【００９０】
出荷前に行う不良検出試験において、ＳＲＡＭマクロ２０に対する書き込み＆読み出し試験を実行する。判定回路１０４は、ＳＲＡＭマクロ２０から読み出された読み出しデータを、試験制御回路１３から供給される期待値と比較することにより、不良検出を行う。判定回路１０４は、テスト応答圧縮回路として機能するＭＩＳＲ（Multiple  Input  Shift  Register）及び比較回路を含む。ＭＩＳＲにより、試験対象となる多数のビット値の系列である読み出しデータを圧縮して圧縮データ（シグネチャ）を生成する。比較回路が、圧縮データと期待値とを比較することにより、故障の有無を判定すると共に故障箇所を検出する。検出された故障に関する情報は、冗長情報として書き込み回路１０５により電子ヒューズ１０１に格納される。
【００９１】
システム起動時には、電子ヒューズ１０１に格納されている冗長情報を読み出し回路１０２が読み出す。読み出された冗長情報は、システム内のＤ−フリップフロップを縦続接続することにより形成されたシフトレジスタであるスキャンチェーン１０３を介して、ＳＲＡＭマクロ２０に供給される。供給された冗長情報は、結果保持回路２４に格納される。
【００９２】
図２０は、電子ヒューズを用いる場合において図４に示す回路に関する信号設定を示す表である。電子ヒューズ１０１から供給される冗長情報は、冗長信号Ｊｄとして図４に示す回路に印加される。図４に示される回路において、制御信号ＴＷが“１”に設定されることにより、転送ゲート４６は非導通状態に固定される。冗長信号Ｊｄが“１”であるビット位置においては、端子ＦＤの値が“１”になるようにラッチの状態が設定される。冗長信号Ｊｄが“０”であるビット位置においては、ＮＯＲ回路４３の出力が“０”となることにより、端子ＦＤの値が“０”になるようにラッチの状態が設定される。
【００９３】
図２１は、電子ヒューズを用いる場合において図１５に示す回路に関する信号設定を示す表である。電子ヒューズ１０１から供給される冗長情報は、冗長信号Ｊｄとして図１５に示す回路に印加される。図１５に示される回路において、制御信号ＴＷが“１”に設定されることにより、転送ゲート９６は非導通状態に固定される。更に、制御信号ＷＳ、Ｗｄ、Ｊｃをそれぞれ“０”、“０”、“０”に設定する。この状態では、冗長信号Ｊｄが、ＮＡＮＤ回路９１、インバータ９８、ＸＯＲ回路９２、及びＮＯＲ回路９３を介して、端子ＦＤから出力される。冗長信号Ｊｄが“１”となるビットにおいては、端子ＦＤの値が“１”となり、冗長信号Ｊｄが“０”となるビットにおいては、端子ＦＤの値が“０”となる。
【００９４】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００９５】
１０  マイクロプロセッサ
１１  プロセッサコア回路
１２  キャッシュメモリ
１３  試験制御回路
１４  パワーゲーティング制御回路
１５  入出力回路（Ｉ／Ｏ）
１６  １次キャッシュメモリ
１７  ２次キャッシュメモリ
１８  ラストレベルキャッシュメモリ
２１  メモリセルアレイ
２１Ａ  冗長セル領域
２２  センスアンプ
２３  不良検出回路
２４  結果保持回路
２５  冗長シフト回路
２６  入出力回路
【図１】
2020198142.tif 000003
【図２】
2020198142.tif 000004
【図３】
2020198142.tif 000005
【図４】
2020198142.tif 000006
【図５】
2020198142.tif 000007
【図６】
2020198142.tif 000008
【図７】
2020198142.tif 000009
【図８】
2020198142.tif 000010
【図９】
2020198142.tif 000011
【図１０】
2020198142.tif 000012
【図１１】
2020198142.tif 000013
【図１２】
2020198142.tif 000014
【図１３】
2020198142.tif 000015
【図１４】
2020198142.tif 000016
【図１５】
2020198142.tif 000017
【図１６】
2020198142.tif 000018
【図１７】
2020198142.tif 000019
【図１８】
2020198142.tif 000020
【図１９】
2020198142.tif 000021
【図２０】
2020198142.tif 000022
【図２１】
2020198142.tif 000023