(57)【要約】  【課題】  ボルテージ・アイランドが適用されたＳｏＣにおいて、所定のモジュールの電源投入時に他のモジュールにおけるメモリアクセスができなくなることを回避する。  【解決手段】  冗長性を持たせた複数のメモリと、この複数のメモリにおけるメモリ素子の切り替えを制御するためのコンフィギュレーション情報を格納したフューズ・セル１０１と、個々のメモリに対応させて設けられ、フューズ・セル１０１からメモリに対するコンフィギュレーション情報を受信して保持するシフトレジスタ１０と、このシフトレジスタ１０の動作を制御する制御回路２０とを備える。シフトレジスタ１０は、コンフィギュレーション情報のデータを受信し他のシフトレジスタ１０に転送するためのシフト部と、このシフト部に入力されるデータを保持するラッチ部とを備える。制御回路２０は、シフトレジスタ１０のシフト部に入力されたデータをラッチ部に保持させるか否かを制御する。  【選択図】  図４
2006172335.tif 000002
【特許請求の範囲】
【請求項１】
単体のチップとして構成されたマイクロコンピュータにおいて、
予備のメモリ素子を備えて冗長性を持たせた複数のメモリと、
前記複数のメモリにおけるメモリ素子の切り替えを制御するためのコンフィギュレーション情報を格納したフューズ・セルと、
個々のメモリに対応させて設けられ、前記フューズ・セルから当該メモリに対する前記コンフィギュレーション情報を受信して保持するシフトレジスタと、
前記シフトレジスタの動作を制御する制御回路とを備え、
前記シフトレジスタは、
前記コンフィギュレーション情報のデータを受信し他のシフトレジスタに転送するためのシフト部と、
前記シフト部に入力されるデータを保持するラッチ部とを備え、
前記制御回路は、前記シフトレジスタの前記シフト部に入力されたデータを前記ラッチ部に保持させるか否かを制御することを特徴とするマイクロコンピュータ。
【請求項２】
前記制御回路は、マイクロコンピュータのチップ上に形成され独立の電源から電力を供給されて動作する複数のモジュールに対して個別に設けられ、対応する前記モジュールにおける電源のオン・オフに応じて、当該モジュールにおける前記シフトレジスタの前記シフト部に入力されたデータを前記ラッチ部に保持させるか否かを制御することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記制御回路は、前記フューズ・セルから前記コンフィギュレーション情報が送信された後、前記シフト部に入力されるデータを前記ラッチ部に取り込まないように、前記シフトレジスタを制御することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項４】
前記フューズ・セルを含むモジュールは、前記コンフィギュレーション情報の送信が終了した後、送信終了を示すコンプリート信号を前記制御回路に送信し、
前記制御回路は、前記コンプリート信号を受信した場合に、前記シフト部に入力されるデータを前記ラッチ部に取り込まないように、前記シフトレジスタを制御することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項５】
前記制御回路は、対応する前記モジュールにおける電源のオン・オフに伴い出力されるリセット信号を受信した場合に、シフト部に入力されるデータがラッチ部に取り込み可能となるように、前記シフトレジスタを制御することを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項６】
前記複数のメモリに対応する複数の前記シフトレジスタは、連鎖的に接続されて、前記フューズ・セルから送信される前記コンフィギュレーション情報を伝播させるスキャンチェーンを構成することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項７】
独立の電源から電力を供給されて動作する複数のモジュールを備えたマイクロコンピュータにおいて、
前記複数のモジュールに設けられ、予備のメモリ素子を備えて冗長性を持たせたメモリと、
前記メモリにおけるメモリ素子の切り替えを制御するためのコンフィギュレーション情報を格納したフューズ・セルと、
前記フューズ・セルに格納されている前記コンフィギュレーション情報を前記複数のモジュールの前記メモリに伝播させるためのスキャンチェーンと、
前記複数のモジュールにそれぞれ設けられ、前記スキャンチェーンにより伝播される前記コンフィギュレーション情報を保持する情報保持手段とを備え、
前記フューズ・セルは、個々の前記モジュールにおけるリセット動作に応じて前記コンフィギュレーション情報を前記スキャンチェーンに送出し、
リセット動作を行った特定のモジュールの前記情報保持手段は、前記リセット動作に応じて送出された前記コンフィギュレーション情報を入力して保持し、
他の前記モジュールの前記情報保持手段は、前記特定のモジュールのリセット動作に応じて送出された前記コンフィギュレーション情報を保持せず、それ以前に保持していたコンフィギュレーション情報をそのまま保持することを特徴とするマイクロコンピュータ。
【請求項８】
前記情報保持手段は、
前記スキャンチェーンを構成するシフトレジスタに入力されたデータを保持する記憶手段と、
対応する前記モジュールの動作状態に応じて、前記シフトレジスタに入力されたデータを取り込むか否かを制御する制御手段と
を備えることを特徴とする請求項７に記載のマイクロコンピュータ。
【請求項９】
前記制御手段は、前記フューズ・セルから前記コンフィギュレーション情報が送信された後、前記シフトレジスタに入力されるデータを前記記憶手段に取り込まず、それ以前に保持していたデータをそのまま保持するように制御することを特徴とする請求項８に記載のマイクロコンピュータ。
【請求項１０】
前記制御手段は、対応する前記モジュールがリセット動作を行った場合に、その後に前記シフトレジスタに入力されるデータを前記記憶手段に取り込んで記憶内容を書き換えるように、当該記憶手段を制御することを特徴とする請求項８に記載のマイクロコンピュータ。
【請求項１１】
前記記憶手段は、前記フューズ・セルから出力されるスキャンクロックにしたがって、前記シフトレジスタに入力されたデータを取り込むフリップフロップ回路であり、
前記制御手段は、前記フリップフロップ回路に入力されるスキャンクロックを打ち消す信号を当該フリップフロップ回路に送信する回路であることを特徴とする請求項８に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単体のチップとして構成され、独立の電源から電力を供給されて動作する複数のモジュールを備えたマイクロコンピュータに関し、特にそのメモリ制御に関する。
【背景技術】
【０００２】
ＬＳＩの集積度の向上に伴って、シリコン上にシステムを構成するチップ、いわゆるＳｏＣ（System on Chip）と呼ばれるＬＳＩが実現されている。ＳｏＣでは、チップ内部にメモリを搭載する場合が多く、搭載されるメモリの記憶容量は、年々増大している。メモリの記憶容量の増大に伴い、チップの歩留まりを向上させるため、メモリに冗長性を持たせることが行われている（例えば、特許文献１参照）。そして、ＳｏＣの製造時に、搭載されたメモリ素子に故障が発見された場合、このメモリ素子を予備のメモリ素子（冗長ビット）と置き換える。メモリ素子の置き換えは、チップ内部に埋め込まれた、フューズ（Fuse）をレーザー等で焼ききることで実現される。
【０００３】
ＳｏＣでは、汎用のメモリとは異なり、多種多様なメモリが組み込まれるのが一般的である。このため、１つのメモリに１個のフューズという構成をとると、フューズの個数が増え、チップに占めるフューズの割合が非常に大きくなってしまうため経済的ではない。そこで従来、１個のフューズ・セルにチップ内部の全てのメモリの冗長性のための情報（コンフィギュレーション情報）を格納しておき、このコンフィギュレーション情報を各メモリに伝播させてメモリの構成（Configuration：予備のメモリ素子との置き換え制御）を実現する構成が取られる。また、一般的にデータの圧縮効率はデータ量が大きくなればなるほど顕著になるため、フューズデータ（コンフィギュレーション情報）を別々のフューズに格納するよりも、１つのセルにまとめたほうが、データ圧縮効率を上げることができる。
【０００４】
図８は、従来のＳｏＣの構成を概略的に示した図である。
図８に示す例では、チップ内部の全てのメモリ（モジュール８１０のデータキャッシュ８１２とプログラムキャッシュ８１３およびモジュール８２０のデータキャッシュ８２２およびプログラムキャッシュ８２３）は、単一のフューズ・セル８０１の制御により、メモリ素子を予備のメモリ素子に切り替えることができる。図８において、フューズ・セル８０１に格納されるデータ（コンフィギュレーション情報）は、データ量を減少させるために圧縮されている。ＳｏＣ８００に電源が投入されると、パワーオン・リセットによりフューズ・セル８０１から圧縮データが出力され、解凍器（Decompression）８０２で解凍される。
【０００５】
一方、図８のＳｏＣにおいて、ＤＲＡＭ（Dynamic Random Access Memory）８０３を含む各メモリには、図９に示すようなシフトレジスタ（フリップフロップ回路）が設けられている。そして、各メモリのシフトレジスタを連鎖的に接続させてスキャンチェーンが構成されている。そして、解凍器８０２で解凍されたデータ（コンフィギュレーション情報）は、このスキャンチェーンによりＤＲＡＭ８０３およびモジュール８１０、８２０の各メモリに伝播される。
【０００６】
ところで、ＳｏＣとして実現された、特定の用途のために設計・製造されるＡＳＩＣ（Application Specific Integrated Circuit）では、消費電力を低減させるため、ボルテージ・アイランドと呼ばれる省電力設計が行われる場合がある（例えば、非特許文献１参照）。ボルテージ・アイランドでは、ＡＳＩＣ内の回路を複数のモジュールに分割し、電源を分割された個々のモジュールごとに独立してオン・オフ切り替え可能とする。そして、使用されていないモジュールの電源を切る（オフ）ことにより、このモジュールのリーク電流を完全になくすことができる。この技術を用いると、例えば携帯電話において、待ち受け時に、この待ち受けにおいて必要なモジュールのみに電力を供給し、必要のない大部分の回路の電源をオフにすることができるため、ＡＳＩＣのリーク電流を最小限に抑え、バッテリーの持続時間を大幅に向上させることができる。
【０００７】
図８に示したＳｏＣにおいて、モジュール８１０、モジュール８２０がそれぞれボルテージ・アイランドの適用のために分割された回路のモジュールである。モジュール８１０には電源ＶＤＤ１から、モジュール８２０には電源ＶＤＤ２から、それぞれ独立に電力が供給されている（実際には、ＳｏＣ全体に共通の電源ＶＤＤから独立のスイッチを介して各モジュール８１０、８２０に電力を供給することにより、独立の電源ＶＤＤ１、ＶＤＤ２が実現される）。そのため、電源ＶＤＤ１、ＶＤＤ２の一方をオフにすることにより、モジュール８１０、８２０の一方を停止させ、他方のみを動作させることができる。
【０００８】
【特許文献１】特開平７−３２０４９５号公報
【非特許文献１】“デザインシステム  ボルテージ・アイランド”、［online］、日本ＩＢＭ、［２００４年１１月８日検索］、インターネット＜http://www-6.ibm.com/jp/chips/products/asics/products/v_island.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、ＳｏＣでは、メモリに冗長性を持たせる構成や、また省電力設計であるボルテージ・アイランドが実現されている。しかし、冗長性を持たせたメモリを、ボルテージ・アイランドを持つＳｏＣに搭載する場合、以下のような問題がある。
【００１０】
まず、ＳｏＣ全体の電源が投入（オン）されたとき、全てのメモリは、初期状態で冗長回路に対する情報を持っていない。このため、パワーオン・リセットにより、フューズ・解凍器モジュール（図８のフューズ・セル８０１および解凍器８０２）を初期化する。この結果、フューズ・セル８０１に格納されているデータが、解凍器８０２で解凍され、スキャンチェーンで各メモリに伝播される。転送が終了した時点で、図１０に示すように、メモリの構成（Configuration）が完了し、ＣＰＵ（Central Processing Unit）等がメモリにアクセスできる状態となる。
【００１１】
電源が投入（オン）された後、しばらくして、モジュール８２０の機能が必要なくなったとする。すると、消費電力を軽減するため、モジュール８２０の電源ＶＤＤ２がオフとなる。このとき、モジュール８２０では電力の供給が断たれるため、図１１に示すように、モジュール８２０に含まれるメモリ（データキャッシュ８２２およびプログラムキャッシュ８２３）のコンフィギュレーション情報は消滅する。
【００１２】
その後、再び、モジュール８２０を使用するアプリケーションが実行されたため、モジュール８２０の電源ＶＤＤ２がオンになったとする。しかし、モジュール８２０のメモリのコンフィギュレーション情報は失われているため、メモリを使用するためには、フューズ・解凍器モジュールを改めて初期化し、モジュール８２０のメモリに対するコンフィギュレーション情報をスキャンチェーンで伝播させなければならない。
【００１３】
しかし、このスキャンチェーンによるコンフィギュレーション情報の伝播が行われると、モジュール８１０のメモリ（データキャッシュ８１２およびプログラムキャッシュ８１３）のコンフィギュレーション情報も同時に書き換えられることとなる。そのため、スキャンチェーンによるコンフィギュレーション情報の転送が終了するまで、一時的に、モジュール８１０においてもＣＰＵ８１１によるメモリ（ＤＲＡＭ８０３を含む）へのアクセスができなくなる。
【００１４】
これを回避する手段として、フューズ・解凍器モジュールをドメインごとに持つ方法が考えられる。ドメイン（モジュール）ごとにフューズ・解凍器モジュールがあれば、コンフィギュレーション情報の伝播の影響はそのドメイン以外のモジュールには及ばない。したがって、上記のようにモジュール８２０の電源がオンになった際にモジュール８１０の動作が妨げられることはなくなる。しかし、このような構成とすると、チップ上に非常に大きな面積を占めるフューズ・解凍器モジュールを複数個設けることとなり、かつフューズ・セルの分散により、フューズ・セルが保持するデータの圧縮の効果が薄れてしまうため、チップ面積を増大させてしまう。
【００１５】
そこで本発明は、ドメイン（モジュール）ごとにフューズ・セルを設けることなく、ボルテージ・アイランドにおいて所定のモジュールの電源投入時に他のモジュールにおけるメモリアクセスができなくなることを回避する手段を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記の目的を達成する本発明は、単体のチップとして構成された、次のようなマイクロコンピュータとして実現される。このマイクロコンピュータは、予備のメモリ素子を備えて冗長性を持たせた複数のメモリと、この複数のメモリにおけるメモリ素子の切り替えを制御するためのコンフィギュレーション情報を格納したフューズ・セルと、個々のメモリに対応させて設けられ、フューズ・セルからメモリに対するコンフィギュレーション情報を受信して保持するシフトレジスタと、このシフトレジスタの動作を制御する制御回路とを備える。そして、シフトレジスタは、コンフィギュレーション情報のデータを受信し他のシフトレジスタに転送するためのシフト部と、このシフト部に入力されるデータを保持するラッチ部とを備える。制御回路は、シフトレジスタのシフト部に入力されたデータをラッチ部に保持させるか否かを制御する。
【００１７】
より詳細には、この制御回路は、マイクロコンピュータのチップ上に形成され独立の電源から電力を供給されて動作する複数のモジュールに対して個別に設けられる。そして、対応するモジュールにおける電源のオン・オフに応じて、モジュールにおけるシフトレジスタのシフト部に入力されたデータをラッチ部に保持させるか否かを制御する。さらに具体的には、フューズ・セルを含むモジュールは、コンフィギュレーション情報の送信が終了した後、送信終了を示すコンプリート信号を制御回路に送信する。そして、制御回路は、コンプリート信号を受信した場合に、シフト部に入力されるデータをラッチ部に取り込まないように、シフトレジスタを制御する。また、制御回路は、対応するモジュールにおける電源のオン・オフに伴い出力されるリセット信号を受信した場合に、シフト部に入力されるデータがラッチ部に取り込み可能となるように、シフトレジスタを制御する。
【００１８】
さらに、上記の目的を達成する他の本発明は、独立の電源から電力を供給されて動作する複数のモジュールを備えた、次のようなマイクロコンピュータとしても実現される。このマイクロコンピュータは、複数のモジュールに設けられ、予備のメモリ素子を備えて冗長性を持たせたメモリと、このメモリにおけるメモリ素子の切り替えを制御するためのコンフィギュレーション情報を格納したフューズ・セルと、このフューズ・セルに格納されているコンフィギュレーション情報を複数のモジュールのメモリに伝播させるためのスキャンチェーンと、複数のモジュールにそれぞれ設けられ、スキャンチェーンにより伝播されるコンフィギュレーション情報を保持する情報保持手段とを備える。そして、フューズ・セルは、個々のモジュールにおけるリセット動作に応じてコンフィギュレーション情報をスキャンチェーンに送出する。これに対して、リセット動作を行った特定のモジュールの情報保持手段は、リセット動作に応じて送出されたコンフィギュレーション情報を入力して保持する。一方、他のモジュールの情報保持手段は、特定のモジュールのリセット動作に応じて送出されたコンフィギュレーション情報を保持せず、それ以前に保持していたコンフィギュレーション情報をそのまま保持することを特徴とする。
【発明の効果】
【００１９】
以上のように構成された本発明によれば、電源がオフからオンに切り換えられてリセット動作が行われたモジュールでは、フューズ・セルから出力されてスキャンチェーンにより伝播されるコンフィギュレーション情報がシフトレジスタのラッチ部（記憶手段）に取り込まれてメモリの構成（Configuration）が行われるのに対し、リセット動作が行われなかったモジュールでは、コンフィギュレーション情報がシフトレジスタのラッチ部に取り込まれることなく、シフト部を通過する。したがって、リセット動作が行われなかったモジュールでは、コンフィギュレーション情報の書き換えがなされないため、メモリへのアクセス動作が妨げられることがなくなる。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。
本実施形態では、ＳｏＣ上の各メモリにコンフィギュレーション情報を伝播させるためのスキャンチェーンを、シフト部とラッチ部とを備えた新たな構成のシフトレジスタ（フリップフロップ回路）にて構成する。また、このシフトレジスタの動作を制御するための制御回路をボルテージ・アイランドが適用されたＳｏＣ上の各ドメイン（モジュール）に設ける。かかる構成により、所定のモジュールで電源がオフからオンに切り替えられた際に、そのモジュールでのみ（すなわち他のモジュールに影響を及ぼすことなく）メモリのコンフィギュレーション情報の書き込みが行われるような制御を実現する。
【００２１】
図１は、本実施形態で用いられるシフトレジスタの回路構成を示す図である。
図１に示すシフトレジスタ１０は、シフト部１１とラッチ部１２とを備える。このシフトレジスタ１０は、ＳｏＣ上の各メモリに設けられ、メモリ素子の切り替え制御を行うためのコンフィギュレーション情報を伝播するために用いられる。
【００２２】
シフト部１１は、図９に示した従来のシフトレジスタと同一の構成を有するフリップフロップ回路である。このシフト部１１は、スキャンクロック（Scan clk）に同期して、データ（コンフィギュレーション情報）をスキャンイン（Scan in）から入力し、スキャンアウト（Scan out）から出力して、順次後方のシフトレジスタ１０へシフトしていく。
【００２３】
ラッチ部１２は、シフト部１１に入力されたデータを入力して保持するフリップフロップ回路である。また、ラッチ部１２は、後述するイネーブル信号（Enable）によりシフト部１１からのデータ入力を制御される。本実施形態では、イネーブル信号とスキャンクロックとがＡＮＤ回路１３を介してラッチ部１２に入力されているので、イネーブル信号の値が「１」であるときには、スキャンクロックにしたがってシフト部１１に入力されたデータがラッチ部１２にも入力される。一方、イネーブル信号の値が「０」のときは、ラッチ部１２にはスキャンクロックが入力されないので、シフト部１１に入力されたデータはラッチ部１２に入力されない。このため、イネーブル信号の値が「０」となっていれば、所定のデータがスキャンチェーンを伝播しても、その所定の電波はシフト部１１を通過するだけであり、ラッチ部１２にはそれ以前のデータが保持されることとなる。
【００２４】
図２は、上述したシフトレジスタ１０にイネーブル信号を供給してシフトレジスタ１０の動作を制御する制御回路の回路構成を示す図である。
図２に示す制御回路２０は、コンプリート信号（Comp）の入力によりセットされ、リセット信号（Power on ResetまたはDomain Reset）の入力によりリセットされるフリップフロップ回路を有する。そして、コンプリート信号がアクティブとなったときに出力であるイネーブル信号の値が「０」となり、リセット信号が入力されたときにイネーブル信号の値が「１」となる。この制御回路２０は、ＳｏＣ上に設けられたボルテージ・アイランドによるドメイン（モジュール）ごとに設けられる。
【００２５】
コンプリート信号は、メモリの構成（Configuration）に用いられるコンフィギュレーション情報の転送が終了した後にＳｏＣのフューズ・解凍器モジュールから出力される。また、制御回路２０が入力するリセット信号は、ＳｏＣ全体のパワーオン・リセット（Power on Reset）またはその制御回路２０が存在するドメインの個別のパワーオン・リセット（Domain Reset）である。
【００２６】
図３は、本実施形態のシフトレジスタ１０および制御回路２０の動作を説明するフローチャートである。
図３を参照すると、ＳｏＣ１００の電源が投入されたとき、または個々のドメインがリセットされたときに（ステップ３０１）、制御回路２０はそのリセット信号に応じて、イネーブル信号を「１」にする（ステップ３０２）。そして、各メモリのシフトレジスタ１０のシフト部１１が、スキャンクロックに同期してコンフィギュレーション情報をシフトしていく（ステップ３０３）。このとき、各シフトレジスタ１０のラッチ部１２は、シフト部１１に入力されたデータを取り込んでいく。コンフィギュレーション情報の送信が終了すると、解凍器１０２からコンプリート信号が出力される（ステップ３０４）。これに応じて、制御回路２０はイネーブル信号を「０」にする（ステップ３０５）。
【００２７】
図４は、上述したシフトレジスタ１０および制御回路２０を備えたＳｏＣの構成例を示す図である。
図４に示すＳｏＣ１００は、フューズ・セル１０１、解凍器１０２、ＤＲＡＭ１０３と、２つのモジュール１１０、１２０を備える。ＤＲＡＭ１０３には、ＳｏＣ１００全体の電源ＶＤＤから直接電力が供給されており、モジュール１１０、１２０には、独立の電源ＶＤＤ１、ＶＤＤ２から電力が供給されている。
【００２８】
図４において、モジュール１１０は、ＣＰＵ１１１と、メモリとしてデータキャッシュ１１２およびプログラムキャッシュ１１３と、制御回路２０−１（制御回路２０に添え字１を付記）とを備える。また、データキャッシュ１１２およびプログラムキャッシュ１１３にはそれぞれシフトレジスタ１０が設けられており、このシフトレジスタ１０は制御回路２０−１により制御される。モジュール１２０は、ＤＳＰ（Digital Signal Processor）１２１と、メモリとしてデータキャッシュ１２２およびプログラムキャッシュ１２３と、制御回路２０−２（制御回路２０に添え字２を付記）とを備える。また、データキャッシュ１２２およびプログラムキャッシュ１２３にはそれぞれシフトレジスタ１０が設けられており、このシフトレジスタ１０は制御回路２０−２により制御される。さらに、ＤＲＡＭ１０３にもシフトレジスタ１０が設けられており、このシフトレジスタ１０は独立の制御回路２０−０（制御回路２０に添え字０を付記）により制御される。
【００２９】
上記の各メモリに設けられたシフトレジスタ１０は、連鎖的に接続されてスキャンチェーンを構成している。したがって、図中、矢印で示したように、フューズ・セル１０１から送出されたデータ（各メモリのコンフィギュレーション情報）は、解凍器１０２で解凍された後、ＤＲＡＭ１０３、モジュール１１０のデータキャッシュ１１２、プログラムキャッシュ１１３、次いでモジュール１２０のプログラムキャッシュ１２３、データキャッシュ１２２と、順に伝播されていく。
【００３０】
解凍器１０２は、フューズ・セル１０１に格納されたデータを全て送出した時点でコンプリート信号（Comp）を出力する。このコンプリート信号は、制御回路２０−０、２０−１、２０−２に供給される。各制御回路２０−０、２０−１、２０−２は、このコンプリート信号を受信すると、シフトレジスタ１０を制御するイネーブル信号を「０」にする。
【００３１】
また、ＳｏＣ１００には、ＳｏＣ１００全体の電源ＶＤＤがオンとなった際に、これを検知してリセット信号（Power on Reset）を出力するリセット信号出力回路（ＰＯＲ）１０４が設けられている。一方、モジュール１１０には、モジュール１１０単体で電源ＶＤＤ１がオフからオンに切り替えられた際に、これを検知してリセット信号（Domain Reset）を出力するリセット信号出力回路（ＰＯＲ）１１４が設けられている。同様に、モジュール１２０には、モジュール１２０単体で電源ＶＤＤ２がオフからオンに切り替えられた際に、これを検知してリセット信号（Domain Reset）を出力するリセット信号出力回路（ＰＯＲ）１２４が設けられている。
【００３２】
フューズ・セル１０１および解凍器１０２からなるフューズ・解凍器モジュールは、これらのＰＯＲ１０４、１１４、１２４のいずれかからリセット信号が出力されると、これを受信して、コンフィギュレーション情報を送出する。制御回路２０−０は、ＰＯＲ１０４から出力されたリセット信号を受信し、これに応じてシフトレジスタ１０を制御するイネーブル信号を「１」にする。制御回路２０−１は、ＰＯＲ１０４から出力されたリセット信号とモジュール１１０のＰＯＲ１１４から出力されたリセット信号のいずれかが受信されると、これに応じてシフトレジスタ１０を制御するイネーブル信号を「１」にする。同様に、制御回路２０−２は、ＰＯＲ１０４から出力されたリセット信号とモジュール１２０のＰＯＲ１２４から出力されたリセット信号のいずれかが受信されると、これに応じてシフトレジスタ１０を制御するイネーブル信号を「１」にする。
【００３３】
すなわち、本実施形態のＳｏＣ１００では、全体の電源ＶＤＤがオンになったときだけでなく、個々のモジュール１１０、１２０において電源ＶＤＤ１、ＶＤＤ２がオフからオンに切り替えられたときにもコンフィギュレーション情報が送出される。そして、モジュール１１０では、全体の電源ＶＤＤがオンになったときと、モジュール１１０の電源ＶＤＤ１がオフからオンに切り替わったときにのみ、スキャンチェーンにより伝播されるコンフィギュレーション情報がシフトレジスタ１０のラッチ部１２に取り込まれる。同様に、モジュール１２０では、全体の電源ＶＤＤがオンになったときと、モジュール１２０の電源ＶＤＤ２がオフからオンに切り替わったときにのみ、スキャンチェーンにより伝播されるコンフィギュレーション情報がシフトレジスタ１０のラッチ部１２に取り込まれる。
【００３４】
言い換えれば、モジュール１１０では、モジュール１１０以外のモジュールが独立にリセットされた場合（図４の例ではモジュール１２０の電源ＶＤＤ２がオフからオンに切り替わりリセット信号が出力された場合）は、スキャンチェーンにより伝播されるコンフィギュレーション情報は、シフトレジスタ１０のシフト部１１を通過するのみであり、ラッチ部１２には取り込まれない。同様に、モジュール１２０では、モジュール１２０以外のモジュールが独立にリセットされた場合（図４の例ではモジュール１１０の電源ＶＤＤ１がオフからオンに切り替わりリセット信号が出力された場合）は、スキャンチェーンにより伝播されるコンフィギュレーション情報は、シフトレジスタ１０のシフト部１１を通過するのみであり、ラッチ部１２には取り込まれない。
【００３５】
このように本実施形態では、シフトレジスタ１０のラッチ部１２と制御回路２０とで情報保持手段として機能し、シフトレジスタ１０のシフト部１１はコンフィギュレーション情報を伝播するための情報転送手段として動作する。以下、図５乃至図７を参照して、本実施形態のＳｏＣ１００の具体的な動作を説明する。
【００３６】
まず、ＳｏＣ１００全体の電源ＶＤＤが投入（オン）されたとき、ＰＯＲ１０４からリセット信号が出力されて、フューズ・解凍器モジュール（図４のフューズ・セル１０１および解凍器１０２）を初期化する。そして、フューズ・セル１０１に格納されているデータが、解凍器１０２で解凍され、スキャンチェーンで各メモリ（ＤＲＡＭ１０３、モジュール１１０のデータキャッシュ１１２およびプログラムキャッシュ１１３、モジュール１２０のデータキャッシュ１２２およびプログラムキャッシュ１２３）に伝播される。また、ＰＯＲ１０４から出力されたリセット信号は、制御回路２０−０、モジュール１１０の制御回路２０−１およびモジュール１２０の制御回路２０−２に入力される。そして、このリセット信号を入力した制御回路２０−０、２０−１、２０−２は、イネーブル信号を「１」にする。これにより、各メモリのシフトレジスタ１０は、シフト部１１に入力されたデータをラッチ部１２に保持できることとなる。
【００３７】
コンフィギュレーション情報の送信が終了した時点で、ＳｏＣ１００上の各メモリのシフトレジスタ１０は、各々自身のコンフィギュレーション情報をラッチ部１２に保持する。これにより、図５に示すように、メモリの構成（Configuration）が完了し、各モジュール１１０、１２０においてＣＰＵ１１１およびＤＳＰ１２１がメモリにアクセスできる状態となる。なお、図ではコンフィギュレーション情報をシフトレジスタのラッチ部１２に保持してメモリの構成（Configuration）が完了した状態を「Configured」と記載している。
【００３８】
また、コンフィギュレーション情報の送信終了に伴い、解凍器１０２からコンプリート信号が出力され、制御回路２０−０、２０−１、２０−２に送信される。そして、このコンプリート信号を受信した制御回路２０−０、２０−１、２０−２は、イネーブル信号を「０」にする。これにより、各メモリのシフトレジスタ１０は、これ以後シフト部１１に入力されたデータをラッチ部１２に取り込まなくなる。
【００３９】
電源が投入（オン）された後、しばらくして、モジュール１２０の機能が必要なくなったとする。すると、消費電力を軽減するため、モジュール１２０の電源ＶＤＤ２がオフとなる。このとき、モジュール１２０では電力の供給が断たれるため、図６に示すように、モジュール１２０のデータキャッシュ１２２およびプログラムキャッシュ１２３のコンフィギュレーション情報は消滅する。なお、図ではコンフィギュレーション情報が消失した状態を「Unknown」と記載している。
【００４０】
その後、再び、モジュール１２０を使用するアプリケーションが実行されたため、モジュール１２０の電源ＶＤＤ２がオンになったとする。しかし、モジュール１２０におけるデータキャッシュ１２２およびプログラムキャッシュ１２３のコンフィギュレーション情報は失われているため、メモリを使用するためには、改めて、モジュール１２０のメモリに対するコンフィギュレーション情報をスキャンチェーンで伝播させる必要がある。
【００４１】
そこで、モジュール１２０では、電源ＶＤＤ２がオンになった際に、ＰＯＲ１２４からリセット信号が出力される。このリセット信号により、フューズ・解凍器モジュールが初期化され、コンフィギュレーション情報の送出が行われる。一方、このリセット信号は、モジュール１２０の制御回路２０−２に受信され、制御回路２０−２のイネーブル信号を「１」にする。これによりモジュール１２０におけるデータキャッシュ１２２およびプログラムキャッシュ１２３のシフトレジスタ１０は、シフト部１１に入力されたデータをラッチ部１２に保持できることとなる。
【００４２】
この状態で、コンフィギュレーション情報の送信が終了すると、モジュール１２０では、データキャッシュ１２２およびプログラムキャッシュ１２３のシフトレジスタ１０が、シフト部１１に入力された自身のコンフィギュレーション情報をラッチ部１２に保持し、図７に示すように、メモリの構成（Configuration）が完了する。
【００４３】
一方、ＤＲＡＭ１０３やモジュール１１０のデータキャッシュ１１２およびプログラムキャッシュ１１３では、制御回路２０−０、２０−１のイネーブル信号が「０」のままなので、シフトレジスタ１０のシフト部１１に何らかのデータが入力されても、そのデータはラッチ部１２に取り込まれない。したがって、今回送信されたコンフィギュレーション情報は、シフト部１１を通過するのみであり、ラッチ部１２に保持されたデータは書き換えられてしまうことがない。そのため、モジュール１２０の電源ＶＤＤ２がオンとなってからコンフィギュレーション情報が伝播されてモジュール１２０のデータキャッシュ１２２およびプログラムキャッシュ１２３の構成（Configuration）が完了するまでの間、モジュール１１０のＣＰＵ１１１は、通常通り、データキャッシュ１１２やプログラムキャッシュ１１３、ＤＲＡＭ１０３へのアクセスが可能となる。
【００４４】
以上、本実施形態について説明したが、実際のＳｏＣの回路構成は、図４に示した回路構成に限定されるものではなく、シフトレジスタ１０および制御回路２０の構成についても、図１、図２に示した構成に限定されるものではない。これらの具体的な回路構成は、本発明の技術的思想の範囲内で適宜の構成を取り得るものであることは言うまでもない。
【図面の簡単な説明】
【００４５】
【図１】本実施形態で用いられるシフトレジスタの回路構成を示す図である。
【図２】本実施形態で用いられる制御回路の回路構成を示す図である。
【図３】本実施形態のシフトレジスタおよび制御回路の動作を説明するフローチャートである。
【図４】本実施形態のシフトレジスタおよび制御回路を備えたＳｏＣの構成例を示す図である。
【図５】図４のＳｏＣにおいて、各メモリの構成（Configuration）が完了した状態を示す図である。
【図６】図５のＳｏＣにおいて、特定のモジュールの電源がオフとなった場合のメモリの状態を示す図である。
【図７】図６のＳｏＣにおいて、特定のモジュールの電源が再びオンとなった場合のメモリの状態を示す図である。
【図８】従来のＳｏＣの構成を示す図である。
【図９】従来のＳｏＣのメモリに設けられるシフトレジスタの回路構成を示す図である。
【図１０】図８のＳｏＣにおいて、各メモリの構成（Configuration）が完了した状態を示す図である。
【図１１】図１０のＳｏＣにおいて、特定のモジュールの電源がオフとなった場合のメモリの状態を示す図である。
【符号の説明】
【００４６】
１０…シフトレジスタ、１１…シフト部、１２…ラッチ部、２０…制御回路、１００…ＳｏＣ、１０１…フューズ・セル、１０２…解凍器、１０３…ＤＲＡＭ、１０４、１１４、１２４…リセット信号出力回路（ＰＯＲ）、１１０、１２０…モジュール、１１２、１２２…データキャッシュ、１１３、１２３…プログラムキャッシュ、ＶＤＤ、ＶＤＤ１、ＶＤＤ２…電源
【図１】
2006172335.tif 000003
【図２】
2006172335.tif 000004
【図３】
2006172335.tif 000005
【図４】
2006172335.tif 000006
【図５】
2006172335.tif 000007
【図６】
2006172335.tif 000008
【図７】
2006172335.tif 000009
【図８】
2006172335.tif 000010
【図９】
2006172335.tif 000011
【図１０】
2006172335.tif 000012
【図１１】
2006172335.tif 000013