(57)【特許請求の範囲】
【請求項１】
機能ブロックと、前記機能ブロックに電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する、システム制御回路とを備え、
前記システム制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整するタイミング制御回路と、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給するプログラマブルシーケンサとを備える、
半導体集積回路であって、
前記システム制御回路は、第１ブート制御回路と基本タイミング生成回路とをさらに備え、
前記第１ブート制御回路は、外部からの起動信号に基づいて、前記プログラマブルシーケンサを起動するための、電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを前記プログラマブルシーケンサに供給し、
前記基本タイミング生成回路は、前記第１ブート制御回路によって起動され、前記タイミング制御回路に電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを供給する、
半導体集積回路。
【請求項２】
請求項１において、前記システム制御回路は、前記暗号化されたシーケンスコード及びデータを保持するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を接続可能であり、前記復号されたシーケンスコードとデータを保持するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備える、
半導体集積回路。
【請求項３】
機能ブロックと、前記機能ブロックに電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する、システム制御回路とを備え、
前記システム制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整するタイミング制御回路と、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給するプログラマブルシーケンサとを備える、
半導体集積回路であって、
前記半導体集積回路は、それぞれが１個または複数の機能ブロックから成る複数のドメインを備え、
前記システム制御回路は、前記複数のドメインのそれぞれに対応する複数のタイミング制御回路と前記複数のドメインのそれぞれに対応する複数のプログラマブルシーケンサとを備え、前記複数のドメインのそれぞれに対応するシステム制御信号群を供給し、
前記システム制御回路は、前記複数のドメインに対応する複数のドメイン制御回路を備え、
それぞれのドメイン制御回路は、当該ドメインに対応するシステム制御信号群と当該ドメインに関する状態監視信号が入力され、当該ドメインに含まれる１個または複数の機能ブロックへの電源供給、リセット、またはクロックの供給のシーケンスを制御する、
半導体集積回路。
【請求項４】
請求項３において、前記システム制御回路は、前記暗号化されたシーケンスコード及びデータを保持するＲＯＭを接続可能であり、前記複数のプログラマブルシーケンサのそれぞれに対応して復号されたシーケンスコードとデータを保持する複数のＲＡＭを備える、
半導体集積回路。
【請求項５】
請求項３において、前記システム制御回路は、前記暗号化されたシーケンスコード及びデータを保持するＲＯＭを接続可能であり、前記複数のプログラマブルシーケンサのそれぞれに対応して復号されたシーケンスコードとデータを保持する１個のＲＡＭを備える、
半導体集積回路。
【請求項６】
機能ブロックと、前記機能ブロックに電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する、システム制御回路とを備え、
前記システム制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整するタイミング制御回路と、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給するプログラマブルシーケンサとを備える、
半導体集積回路であって、
前記半導体集積回路は、それぞれが１個または複数の機能ブロックから成る複数のドメインを備え、
前記システム制御回路は、前記複数のドメインに共通のタイミング制御回路とプログラマブルシーケンサとを備え、前記複数のドメインにそれぞれ対応するシステム制御信号群を供給し、
前記システム制御回路は、前記複数のドメインに対応する複数のドメイン制御回路を備え、
それぞれのドメイン制御回路は、当該ドメインに対応するシステム制御信号群と当該ドメインに関する状態監視信号が入力され、当該ドメインに含まれる１個または複数の機能ブロックへの電源供給、リセット、またはクロックの供給のシーケンスを制御する、
半導体集積回路。
【請求項７】
請求項６において、前記システム制御回路は、前記暗号化されたシーケンスコード及びデータを保持するＲＯＭを接続可能であり、前記復号されたシーケンスコードとデータを保持するＲＡＭを備える、
半導体集積回路。
【請求項８】
請求項７において、前記複数のドメインに含まれる１個のドメインは、耐タンパ性を備えるセキュアＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を機能ブロックとして含み、
前記セキュアＣＰＵは、当該ドメインに対応するドメイン制御回路を介して、他のドメ
インに対応するドメイン制御回路を制御する、
半導体集積回路。
【請求項９】
請求項８において、前記セキュアＣＰＵは、前記ＲＡＭにアクセス可能である、
半導体集積回路。
【請求項１０】
機能ブロックと、前記機能ブロックに電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する、システム制御回路とを備え、
前記システム制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整するタイミング制御回路と、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給するプログラマブルシーケンサとを備える、
半導体集積回路であって、
前記半導体集積回路は、それぞれが１個または複数の機能ブロックから成る複数のドメインを備え、
前記システム制御回路は、複数のタイミング制御回路と、それぞれに対応する複数のプログラマブルシーケンサと、それぞれに対応する複数のドメイン制御回路とを備え、
それぞれのドメイン制御回路には、対応するタイミング制御回路とプログラマブルシーケンサからシステム制御信号群が供給され、
前記複数のドメインを構成する１個のドメインに関する状態監視信号は、複数のドメイン制御回路に入力され、当該複数のドメイン制御回路が当該ドメインに含まれる１個または複数の機能ブロックへの電源供給、リセット、またはクロックの供給のシーケンスを制御する、
半導体集積回路。
【請求項１１】
機能ブロックと、前記機能ブロックに電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する、システム制御回路とを備え、
前記システム制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整するタイミング制御回路と、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給するプログラマブルシーケンサとを備える、
半導体集積回路であって、
前記半導体集積回路は、複数のプロセッサエレメントから成るドメインを備え、
前記システム制御回路は、２個のタイミング制御回路と、それぞれに対応する２個のプログラマブルシーケンサと、それぞれに対応する２個のドメイン制御回路とを備え、
前記２個のドメイン制御回路には、対応するタイミング制御回路とプログラマブルシーケンサからシステム制御信号群が供給され、
前記２個のドメイン制御回路は、前記複数のプロセッサエレメントに関する状態監視信号が入力され、当該複数のプロセッサエレメントへの電源供給、リセット、またはクロックの供給のシーケンスを制御する、
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にマイコンのシステム制御回路に好適に利用できるものである。
【背景技術】
【０００２】
マイコン（マイクロコンピュータ）などに搭載されるシステム制御回路は、ＬＳＩ（Large Scale Integrated circuit）全体に、電源、リセット信号、クロックなどを供給する回路ブロックである。ＬＳＩチップ内の各機能ブロックへ供給するタイミングなどを制御する。各機能ブロックへの電源やクロックの供給と停止を制御する場合もあるし、供給する電源電圧とクロック周波数を制御する場合もある。このような制御を正常に行うためには、シーケンスやタイミングが重要であり、製品ごとにカスタマイズされる。そのため、システム制御回路の設計には、検証に要する期間（ＴＡＴ：Turn Around Time）が長いという課題がある。さらに、ＬＳＩの外部に接続される他の部品との関係で、シーケンスやタイミングが満たすべき仕様が制限され、または変更される場合もある。このため、システム制御回路は、開発の初期段階では仕様の確定が他の機能ブロックと比較して遅くなる傾向にあり、さらに開発の後半では、外部に接続される部品の仕様変更などに伴って、一部の検証項目の再検証や追加の検証項目が発生するために、チップ全体の開発ＴＡＴを長くする原因になる場合があった。近年、ＬＳＩの低消費電力化の要求の高まりに伴って、システム制御回路には、よりきめ細かな制御仕様への対応が求められる傾向がある。このため、システム制御回路には、プログラマブルな仕様変更技術が求められている。
【０００３】
特許文献１には、電源供給システムのための起動シーケンス制御装置が開示されている。起動シーケンス制御装置は、端子から入力される電圧値をディジタル値に変換するアナログ／ディジタル変換器と、変換されたディジタル値を保持するレジスタとを備え、レジスタに保持されたディジタル値によって決定される、起動シーケンスまたは遮断シーケンスで電源回路を制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−８９０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００６】
特許文献１に記載される起動シーケンス制御装置は、レジスタに格納されるディジタルに基づいて、複数のシーケンスの中から指定されるシーケンスを選択することができ、例えば８ビットであれば２５６通りの組合せが可能である（同文献の第００２３段落）とされる。つまり、選択可能なシーケンスを予め何通りか規定しておく必要があり、それ以外のシーケンスに変更することはできない。そのため、上述のように、よりきめ細かな制御仕様への対応が求められるようになると、予め規定しておくべき選択可能のシーケンスの数が膨大となり、その仕様決定のための開発ＴＡＴが長くなり、合せて、その検証のために長い期間を要することとなり、さらには、想定外の仕様変更があった場合にＴＡＴをさらに長期化するおそれがある。
【０００７】
このような課題を解決するためには、複数のレジスタを備えて、ＣＰＵ（Central Processing Unit）などから自由に設定することができるように構成すればよいと考えられる。ところが、ＣＰＵを搭載すると、セキュリティ上の問題が発生することがわかった。特に起動シーケンスでは、電源、クロック及びリセットの供給が複数の機能ブロックで並列に或いは順次に開始されるので、セキュリティホールを生じる危険性が高いと予想される。そのような環境下でＣＰＵを動作させると、そのＣＰＵが不正目的を持つ第三者に乗っ取られる恐れが高いことがわかった。また、システム制御回路はＬＳＩ全体の制御を司る要（かなめ）であるため、不正に乗っ取られたときの影響が極めて大きいことがわかった。このとき、レジスタの数は問題ではなく、例え１個のレジスタであっても、外部のＣＰＵ等から自由に設定することができるように構成すると、同様の問題が発生する。
【０００８】
以上のように、システム制御回路をプログラマブルな仕様変更に対応可能とするために、レジスタを設けＣＰＵなどから設定可能とするだけでは、セキュリティ上の危険を生じるという新たな課題を発生させることがわかった。
【０００９】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、下記の通りである。
【００１１】
すなわち、機能ブロックとシステム制御回路とを備える半導体集積回路であって、以下のように構成する。システム制御回路は、タイミング制御回路とプログラマブルシーケンサとを備え、機能ブロックに対して、電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含むシステム制御信号群を供給する。システム制御回路において、タイミング制御回路は、供給されるパラメータに基づいて前記システム制御信号群を前記機能ブロックに供給するシーケンスまたはタイミングの一方または両方を調整し、プログラマブルシーケンサは、暗号化されたシーケンスコード及びデータを読み込んで復号し復号されたシーケンスコードとデータに基づいて前記パラメータを前記タイミング制御回路に供給する。
【発明の効果】
【００１２】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、耐タンパ性を有するセキュアな環境下で、システム制御回路をパラメータによるプログラマブルな仕様変更に対応可能とすることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施形態１のシステム制御回路の構成例を示すブロック図である。
【図２】図２は、第１ブート制御回路（1st Boot HW Controller）の構成例を示すブロック図である。
【図３】図３は、基本タイミング生成回路（Basic Timing Generator）の構成例を示すブロック図である。
【図４】図４は、プログラマブルシーケンサ（2nd Boot Programmable Sequencer）の構成例を示すブロック図である。
【図５】図５は、タイミング制御回路（Programmable Timing Controller）の構成例を示すブロック図である。
【図６】図６は、実施形態１のシステム制御回路の動作例を示すフロー図である。
【図７】図７は、実施形態２のシステム制御回路の構成例を示すブロック図である。
【図８】図８は、実施形態２のシステム制御回路の動作例を示すフロー図である。
【図９】図９は、実施形態３のシステム制御回路の構成例を示すブロック図である。
【図１０】図１０は、実施形態４のシステム制御回路の構成例を示すブロック図である。
【図１１】図１１は、実施形態５のシステム制御回路の構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
実施の形態について詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００１６】
〔実施形態１〕＜セキュアなプログラマブルシーケンサによるシステム制御回路の仕様変更＞
図１は、実施形態１のシステム制御回路１の構成例を示すブロック図である。システム制御回路１が搭載される半導体装置は、例えば、複数のＣＰＵを含む複数の機能ブロックで構成される内部チップ領域（Internal CHIP Domain）を１個または複数個含む、システムオンチップ（ＳｏＣ：System on Chip）のＬＳＩである。このような半導体装置は、特に制限されないが、例えば、公知のＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）ＬＳＩ製造技術を用いて、シリコンなどの単一半導体基板上に形成される。なお、図１に図示される信号は、１本または複数の配線からなる１〜多数ビットのディジタル信号であるが、バス表記は省略される。これらの点は、本願で開示する他の実施形態、及び、引用する他のブロック図についても同様である。
【００１７】
システム制御回路１は、例えばチップの外部から入力されるリセットや、電源の投入を感知して発生するパワーオンリセットなどの起動信号Invokeによって起動され、内部チップ領域にシステム制御信号群Master IFを供給する。Master IFは、電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含む信号群である。内部チップ領域から関連する状態を示すステータス信号Slave IFがフィードバックされてもよい。ステータス信号Slave IFは、例えば、電源電圧やクロック信号の安定状況、ＣＰＵなどの演算負荷の状況、ハイバーネーションの状況、外部からの攻撃によると思われるエラーの発生など、電源制御、リセット、クロックのシーケンス制御に関わる、いかなる情報であってもよい。ここで、ハイバーネーションの状況とは、例えば、スタンバイモードへ遷移するのに先立ってレジスタの退避などを実行する場合のready/busy/doneなどのステータス情報である。
【００１８】
システム制御回路１は、第１ブート制御回路（1st Boot HW Controller）４と基本タイミング生成回路（Basic Timing Generator）５とプログラマブルシーケンサ（2nd Boot Programmable Sequencer）２とタイミング制御回路（Programmable Timing Controller）３とを備える。プログラマブルシーケンサ２は、
ＲＯＭ（Read Only Memory）６に接続され、セキュアメモリ（Secured RAM）７を内蔵する。ＲＯＭ６は、例えばフラッシュメモリであり、システム制御回路１に含まれ、同一チップ上の別の機能ブロックとして搭載され、或いは、チップに外付けされる。ＲＯＭ６には、暗号化されたシーケンスコード及びデータが格納されている。セキュアメモリ７は、アクセス主体がプログラマブルシーケンサ２に限定されるなど、公知のセキュリティ技術によって、耐タンパ性を持たせたＲＡＭ（Random Access Memory）である。第１ブート制御回路４は、起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２に、電源制御信号、リセット信号、クロック信号などを供給する。基本タイミング生成回路５は、第１ブート制御回路４によって起動され、タイミング制御回路３に電源制御信号、リセット信号、クロック信号などの基本的な信号を供給する。プログラマブルシーケンサ２は、第１ブート制御回路４から供給される信号によって起動されると、ＲＯＭ６から暗号化されたシーケンスコードとデータを読み込んで復号し、復号したシーケンスコードとデータをセキュアメモリ７に格納する。プログラマブルシーケンサ２は、復号したシーケンスコードに基づいて動作するシーケンサであって、復号したデータに基づいて、タイミング制御回路３に対するパラメータ設定を行う。タイミング制御回路３は、パラメータが書き込まれるレジスタを備え、電源制御信号、リセット信号、クロック信号などの供給開始タイミングや停止タイミングを制御する。
【００１９】
第１ブート制御回路４と基本タイミング生成回路５は、基本的にはパラメータ設定可能なようなプログラマブルな要素が排除された、非プログラマブルタイミングシーケンサ機能（Non-programmable Timing Sequencer Function）１０を提供する。一方、プログラマブルシーケンサ２と、タイミング制御回路３は、仕様変更に柔軟に対応する事を可能とするためのパラメータ設定を可能とする、プログラマブルな要素が集約され、プログラマブルタイミングシーケンサ機能（Programmable Timing Sequencer Function）２０を提供する。本システム制御回路１は、搭載される半導体装置のブートを、非プログラマブルタイミングシーケンサ機能１０による第１ブートとプログラマブルタイミングシーケンサ機能２０による第２ブートからなる２段階で実行する。非プログラマブルタイミングシーケンサ機能１０はプログラマブルな要素が排除されているので、乗っ取りなどの外部からの攻撃に強い。一方、プログラマブルタイミングシーケンサ機能２０は、シーケンスコードとデータはＲＯＭ６に格納されてはいるが暗号化されており、復号された後はセキュアメモリ７に保持されるので、プログラマブルな要素を含んでいても耐タンパ性は高い。このように、システム制御回路１全体の機能を、本質的に乗っ取りなどの外部からの攻撃に強い非プログラマブルなタイミングシーケンサ機能１０と、プログラマブルな要素を暗号やセキュアメモリ７によって保護することによって耐タンパ性を有するプログラマブルタイミングシーケンサ機能２０の２段階に階層化する。これにより、耐タンパ性を有するセキュアな環境下で、システム制御回路をパラメータによるプログラマブルな仕様変更に対応可能とすることができる。
【００２０】
システム制御回路１は、さらに、ドメイン制御回路（Parameterized System Controller）８を備えてもよい。ドメイン制御回路８は、プログラマブルシーケンサ２から起動コマンドなどによって制御され、またはパラメータ設定されるシーケンサである。ドメイン制御回路８は、タイミング制御回路３から基本的なタイミング制御をされた、電源制御信号、リセット信号、クロック信号などが入力され、内部チップ領域からステータス信号Slave IFが入力されており、内部チップ領域にシステム制御信号群Master IFを供給する。タイミング制御回路３から供給されるのは、ブートシーケンスを経たのみの基本的な、電源制御信号、リセット信号、クロック信号などである。ドメイン制御回路８は、内部チップ領域から入力されるステータス信号Slave IFに基づいて、これらを制御して、より高度にシーケンス制御されたシステム制御信号群Master IFを内部チップ領域に供給する。
【００２１】
ステータス信号Slave IFは、上述のように例えば、電源電圧やクロック信号の安定状況、ＣＰＵなどの演算負荷の状況、ハイバーネーションの状況（例えばready/busy/done）、外部からの攻撃によると思われるエラーの発生などである。例えば、ステータス信号Slave IFに含まれる電源電圧とクロック信号の安定状況を示す信号により、電源とクロックの安定が確認された後にリセット信号を入力する。例えば、ステータス信号Slave IFに含まれる信号によって、外部からの攻撃が疑われるエラーが発生しているときには、ハイバーネーションを行った後に攻撃されている機能ブロックの電源を遮断する。また例えば、ステータス信号Slave IFに含まれるＣＰＵなどの演算負荷の状況に基づいて、電源電圧やクロック周波数を調整する。このように、ドメイン制御回路８を設けることにより、種々の高機能なシーケンス制御が可能となる。また、ドメイン制御回路８はプログラマブルシーケンサ２によって制御されるため、耐タンパ性は保たれる。
【００２２】
図２は、第１ブート制御回路４の構成例を示すブロック図である。第１ブート制御回路４は、前述のように、外部からの起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２に、電源制御信号、リセット信号、クロック信号などを供給する回路である。第１ブート制御回路４は、例示されるように、電源電圧レギュレータ（VDC Regulator）４１と、フラッシュメモリ制御回路（FLASH Controller）４２と、ＰＬＬ（Phase Locked Loop）４３と、クロック発生回路（Clock Pulse Generator）４４と、リセット制御回路（Reset Controller）４５を備える。外部電源（Power Supply）ＶＣＣが電源電圧レギュレータ４１に供給され、所定の電圧に降圧され安定化されて、フラッシュメモリ制御回路４２とＰＬＬ４３に供給される。図示は省略されているが、クロック発生回路４４と、リセット制御回路４５を含む他の回路、及び、第１ブート制御回路４の外部の各回路にも、電源電圧レギュレータ４１から安定化された電源が供給されても良い。フラッシュメモリ制御回路４２は、ＲＯＭ６がフラッシュメモリであるときに、それに合わせて各種の制御信号を生成して供給する。ＰＬＬ４３には発振回路ＯＳＣ（Main Oscillator）から基本的なクロック信号が入力され、逓倍・分周されてクロック発生回路４４に供給され、種々の周波数のクロック信号が生成される。生成された各種のクロック信号は、ＲＯＭ６、プログラマブルシーケンサ２、セキュアメモリ７及び基本タイミング生成回路５などに供給される。リセット制御回路４５には、チップの外部から入力されるリセットPinResetと、電源ＶＣＣの投入を感知して発生するパワーオンリセット（Power On Reset）信号が入力され、ＲＯＭ６、プログラマブルシーケンサ２、セキュアメモリ７及び基本タイミング生成回路５などにそれぞれのリセット信号として配布される。
【００２３】
図３は、基本タイミング生成回路５の構成例を示すブロック図である。基本タイミング生成回路５は、例えば３種類の周波数のクロック信号High Clock, Mid Clock, Low Clockに対応する、３種類のクロック分周回路（High/Mid/Low Clock Divider）５１、５２、５３を備える。基本タイミング生成回路５には、第１ブート制御回路４内のクロック発生回路４４から、３種類の周波数のクロック信号High Clock, Mid Clock, Low Clockと、リセット制御回路４５から基本リセット信号Basic Resetが供給される。クロック分周回路（High Clock Divider）５１は、高い周波数のクロック信号High Clockを分周して、基本クロック群Basic clocksの一部としてタイミング制御回路３に供給する。同様に、クロック分周回路（Mid Clock Divider）５２とクロック分周回路（Low Clock Divider）５３は、中程度の周波数と低い周波数のクロック信号Mid ClockとLow Clockをそれぞれ分周して、基本クロック群Basic clocksの一部としてタイミング制御回路３に供給する。ここで、例えば、高い周波数のクロック信号High ClockはＣＰＵに供給する数100MHz〜数GHzの周波数である。中程度の周波数のクロック信号Mid Clockは負荷の重いバスや周辺の機能モジュールに供給する数MHz〜数100MHzの周波数である。低い周波数のクロック信号Low Clockは時計（Real Time Clock）ブロックなど、スタンバイ状態での最小限の動作を保証する機能ブロックに供給する数Hz〜数100kHzの周波数である。ただし、クロックの周波数として３種類を例示したのは単なる一例に過ぎず、何種類のクロックを扱う回路としてもよいし、具体的な周波数の値も、上述の例に制限されることなく適宜選定されれば良い。
【００２４】
図４は、プログラマブルシーケンサ２の構成例を示すブロック図である。プログラマブルシーケンサ２は、例えば内部バス２５に接続されるマイクロＣＰＵ（Micro CPU）２１、暗号アクセラレータ（Decrypt HW Accelerator）２２、暗号鍵（Encryption Key）記憶回路２３、制御インターフェース（Control Interface）２４及びセキュアメモリ７を含んで構成される。セキュアメモリ７については、図１ではプログラマブルシーケンサ２に外付けされる例を示したが、図４では専用のセキュアＲＡＭ（Dedicated Secured RAM）７としてプログラマブルシーケンサ２に内蔵されている。一方ＲＯＭ６は、プログラマブルシーケンサ２には内蔵されず、図１と同様に外付けされる。マイクロＣＰＵ２１、暗号アクセラレータ２２、制御インターフェース２４及びセキュアメモリ７には、第１ブート制御回路４から、基本的なリセット信号Resetとクロック信号Clockとが入力されている。暗号鍵記憶回路２３には、耐タンパ性を担保された状態で暗号鍵が記憶されている。ＲＯＭ６に格納されている暗号化されたシーケンスコードとデータ（Encrypted Code/Data）は、ＲＯＭ６から読み出され、バス２５を介して暗号アクセラレータ２２に転送される。暗号アクセラレータ２２は暗号鍵記憶回路２３に記憶されている暗号鍵を使って、ＲＯＭ６から読み出されたデータの暗号を復号し、復号されたシーケンスコードとデータをセキュアメモリ７に保存する。シーケンスコードは、例えばＲＩＳＣ（Reduced Instruction Set Computer）の命令セットに含まれる命令であって、マイクロＣＰＵ２１はこの命令セットを実行することができるＲＩＳＣプロセッサとして実現することができる。マイクロＣＰＵ２１は、シーケンスコードをセキュアメモリ７から読み出してフェッチ、デコード、実行する。この命令セットは、極めて単純な命令のみで構成されればよい。例えばデータをセキュアメモリ７から読み出して、そのまま制御インターフェース２４を介して、タイミング制御回路３やドメイン制御回路８へパラメータとして転送し、或いはタイミング制御回路３やドメイン制御回路８が備えるレジスタをセットまたはリセットする。また、例えばデータをセキュアメモリ７から読み出して、それに基づいてタイミング制御回路３やドメイン制御回路８を制御するための制御信号を生成する。図４に例示されるように暗号アクセラレータ２２を備える代わりにこれを省略して、マイクロＣＰＵ２１上で動作するソフトウェアによって、暗号を復号する構成としてもよい。
【００２５】
図５は、タイミング制御回路３の構成例を示すブロック図である。タイミング制御回路３は、例えば、レジスタ制御ホストインターフェース（Register controlled Host IF）３９と、ゲーテッドクロック制御回路（Gated Clock Controller）３１、３２、３３と、タイミングスケジューラー（Timing Scheduler）３４、３５、３６とを備える。レジスタ制御ホストインターフェース３９は、シーケンスコントロール回路２からパラメータが設定されるレジスタを備え、ゲーテッドクロック制御回路３１、３２、３３とタイミングスケジューラー３４、３５、３６を制御する。ゲーテッドクロック制御回路３１、３２、３３は、クロック信号を半導体装置内に分配するクロックツリーの根元（ＲＯＯＴ）の近傍において、内部チップ領域へのクロック信号の供給と停止を制御する回路である。動作を停止する内部チップ領域へのクロック信号の供給を停止することにより、その内部チップ領域の消費電力を抑えることができる。これに加え、できるだけ根元（ＲＯＯＴ）に近い部分でゲーティングすることにより、クロックツリーで消費される電力も抑えることができる。ゲーテッドクロック制御回路３１、３２、３３には、基本タイミング生成回路５から供給される、３種類の周波数のクロック信号High Clock, Mid Clock, Low Clockにそれぞれ対応する基本クロック群Basic clocksが入力される。ゲーテッドクロック制御回路３１、３２、３３は、３種類の周波数のクロック信号High/Mid/Low Clockにそれぞれ対応しており、レジスタ制御ホストインターフェース３９によって制御され、それぞれの周波数に対応するゲーテッドクロック（Gated Clocks）を出力して、タイミングスケジューラー３４、３５、３６とドメイン制御回路８に供給する。タイミングスケジューラー３４、３５、３６も、３種類の周波数のクロック信号High/Mid/Low Clockにそれぞれ対応しており、レジスタ制御ホストインターフェース３９によって制御され、それぞれの周波数に対応してスケジューリングされた制御信号（Scheduled Signals）を、ドメイン制御回路８に供給する。
【００２６】
図６は、実施形態１のシステム制御回路１の動作例を示すフロー図である。横方向にはシステム制御回路１の動作に関連する各要素を示し、縦方向には時間軸を示す。ただし、時間軸は定量的な軸ではなく、単にイベント（事象）の発生順序を例示するに過ぎない。
【００２７】
外部（External）から、端子リセットPinResetが入力されると、第１ブート制御回路４は、パワーオンリセットを初期化（Power ON Init）して、ＲＯＭ６、セキュアメモリ７及びプログラマブルシーケンサ２にクロック信号とリセット信号を供給し、それぞれをリセット解除する。ＲＯＭ６とセキュアメモリ７は初期化（Init）され、プログラマブルシーケンサ２はブートアップされる（BOOTUP Init）。
【００２８】
次に、プログラマブルシーケンサ２は、初期化されたＲＯＭ６から暗号化されたシーケンスコードとデータ（code/data）を読み出して安全に復号（Decrypt）し、セキュアメモリ７に書き込む。但し、暗号化するファームウェアについては使用するメモリ容量等を考慮して、その安全性の確保に必要な最小限で構わない。
【００２９】
次に、プログラマブルシーケンサ２は、復号されたシーケンスコードとデータをセキュアメモリ７から読み出してファームウェアを実行することによって、タイミング制御部３へ起動コマンドを送信するなどのパラメータ設定（Set Parameter）を行ってタイミング制御部３を初期化（Init）し、合せて、ドメイン制御回路８を初期化（Init）する。
【００３０】
次に、プログラマブルシーケンサ２は、ファームウェアをさらに実行することによって、ドメイン制御回路８に対するシステム制御を開始する（Start System Control）。これにより、ドメイン制御回路８はシステム制御動作（System Control Operating）を開始し、内部チップ領域（Inter CHIP Domain）の動作（Domain Operating）が開始される。
【００３１】
以上説明したように、本実施形態１のシステム制御回路１によれば、ＲＯＭ６のシーケンスコードとデータを書き換えるだけで、起動シーケンスやシステム制御タイミングの半導体装置毎のカスタマイズに対応することができる。この際、ＲＯＭ６のコード書き換えを可能としたファームウェアやパラメータは、暗号化によって保護され、安全なシステムが提供される。ブートを２階層で構成し、第２ブートに専用のプログラマブルシーケンサ２を設けることで、パラメータ設定を行う方式が、半導体装置の製品ごとの仕様に依存することなく共通化される。第２ブートに専用のプログラマブルシーケンサ２を設けることで、システム制御回路を柔軟に管理することができる。例えば、低消費電力化のために必要なきめ細かな制御方式に対して、動作を必要としないＣＰＵを含むドメイン全体を停止し、その電源遮断まで実施することができる。また、初回電源立ち上げ時から、動作を必要としない全てのＣＰＵを電源遮断したままにすることができる。例えば、マイコン製品について、機能限定されたローエンドから可能な限り全ての機能が搭載されるハイエンドまでスケーラブルな仕様で開発でき、このときの設計ＴＡＴの課題を解決する。きめ細かな制御方式が持てることで、設計ＴＡＴの課題を解決するだけでなく、制御方式を顧客へ提供することで、顧客アプリケーションに最適な条件で、低電力システムを構築することができる。
【００３２】
〔実施形態２〕＜ドメイン毎のプログラマブルシーケンサ＞
１チップの半導体装置は、複数のドメインに分割されて、それぞれドメイン毎に電源やクロックの管理が行われる場合が多い。それぞれのドメインには、共通に制御される複数の機能ブロックが含まれる。よりきめ細かい制御を行う場合には、１個の機能ブロックが１個のドメインを形成してもよいし、さらに、１個の機能ブロックの一部だけで１個のドメインを形成してもよく、または、複数の機能ブロックのそれぞれの一部だけを集めて１個のドメインを形成してもよい。このように、半導体装置が複数のドメインで構成される場合には、システム制御回路１もそれに対応した構成を採用すると、より好適である。
【００３３】
図７は、実施形態２のシステム制御回路の構成例を示すブロック図である。システム制御回路１が搭載される半導体装置は、例えば、２個のＣＰＵを有しそれぞれが独立したドメイン９＿１と９＿２に配置されている。ドメイン９＿１はメインＣＰＵ＿ＰＥ１によるサブシステム（Main CPU PE1 Subsystem）であり、ドメイン９＿２はメインＣＰＵ＿ＰＥ２によるサブシステム（Main CPU PE2 Subsystem）である。
【００３４】
システム制御回路１は、チップの外部から入力されるリセットや、電源の投入を感知して発生するパワーオンリセットなどの起動信号Invokeによって起動され、ドメイン９＿１と９＿２にシステム制御信号群Master IF_1とMaster IF_2をそれぞれ供給する。Master IF_1とMaster IF_2は、それぞれ電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含む信号群である。ドメイン９＿１と９＿２からは、それぞれ関連する状態を示すステータス信号Slave IF_1とSlave IF_2が、ドメイン制御回路８＿１と８＿２に、それぞれフィードバックされている。
【００３５】
システム制御回路１は、図１と同様に、第１ブート制御回路４と、基本タイミング生成回路５と、セキュアメモリ（Secured RAM）７を備え、ＲＯＭ６は外付けまたは内蔵されるが、各ドメインに対応して、それぞれ２個ずつのプログラマブルシーケンサ２＿１と２＿２、タイミング制御回路３＿１と３＿２、及び、ドメイン制御回路８＿１と８＿２を備える点で異なる。さらに、２個のドメイン制御回路８＿１と８＿２は相互にドメインデータを交換するインターフェースExchange IFを備える。ＲＯＭ６は、プログラマブルシーケンサ２＿１のためのシーケンスコード及びデータと、プログラマブルシーケンサ２＿２のためのシーケンスコード及びデータとをそれぞれ暗号化して格納しており、プログラマブルシーケンサ２＿１と２＿２のどちらからもアクセスすることができる。セキュアメモリ７も、プログラマブルシーケンサ２＿１と２＿２のどちらからもアクセスすることができるように構成されており、プログラマブルシーケンサ２＿１用と、プログラマブルシーケンサ２＿２用の両方の復号されたシーケンスコード及びデータを格納することができる。このような共通の構成に代えて、プログラマブルシーケンサ２＿１と２＿２のそれぞれに専用のセキュアメモリを設けてもよい。図示されるような共通の構成によれば、セキュアメモリ７のレイアウト効率が高められるので、チップ面積を抑えることができる。一方、上述のようにプログラマブルシーケンサ２＿１と２＿２のそれぞれに専用のセキュアメモリを設けると、アクセスが競合することがないので、調停が不要となり、アクセス速度に余裕が生じる。
【００３６】
第１ブート制御回路４は、起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２＿１と２＿２に、電源制御信号、リセット信号、クロック信号などを供給する。基本タイミング生成回路５は、第１ブート制御回路４によって起動され、タイミング制御回路３＿１と３＿２に電源制御信号、リセット信号、クロック信号などの基本的な信号を供給する。プログラマブルシーケンサ２＿１は、第１ブート制御回路４から供給される信号によって起動されると、ＲＯＭ６から暗号化されたシーケンスコードとデータを読み込んで復号し、復号したシーケンスコードとデータをセキュアメモリ７に格納する。暗号化されたシーケンスコードとデータの復号は、プログラマブルシーケンサ２＿１と２＿２がそれぞれ実行してもよい。プログラマブルシーケンサ２＿１と２＿２は、復号したシーケンスコードとデータに基づいてそれぞれシーケンス動作し、タイミング制御回路３＿１と３＿２に対するパラメータ設定や制御をそれぞれ行う。プログラマブルシーケンサ２＿１とタイミング制御回路３＿１は、ドメイン制御回路８＿１を介してドメイン９＿１の電源制御信号、リセット信号、クロック信号などのシーケンスを制御し、プログラマブルシーケンサ２＿２とタイミング制御回路３＿２は、ドメイン制御回路８＿２を介してドメイン９＿２の電源制御信号、リセット信号、クロック信号などのシーケンスを制御する。それぞれの制御方法については、実施形態１と同様であるので、説明を省略する。ドメイン９＿１の制御とドメイン９＿２の制御は、基本的には独立に行うことができ、相互の状態に依存するときには、それに関わるステータス信号をインターフェースExchange IFを介して送受信する。
【００３７】
ここではドメインが２個の例を示したが、ドメインの数は任意である。このように、半導体装置が同一チップ内に複数のドメインを持つ場合に、システム制御回路１において、プログラマブルシーケンサ２とタイミング制御回路３とドメイン制御回路８を１組として、それぞれのドメインに対応して１組ずつ設けることにより、システム制御回路１をスケーラブルに構成することができる。
【００３８】
図８は、実施形態２のシステム制御回路１の動作例を示すフロー図である。図６と同様に、横方向にはシステム制御回路１の動作に関連する各要素を示し、縦方向には時間軸を示す。ただし、時間軸は定量的な軸ではなく、単にイベント（事象）の発生順序を例示するに過ぎない。
【００３９】
外部（External）から、端子リセットPinResetが入力されると、第１ブート制御回路４は、パワーオンリセットを初期化（Power ON Init）して、ＲＯＭ６、セキュアメモリ７及びプログラマブルシーケンサ２＿１と２＿２にクロック信号とリセット信号を供給し、それぞれをリセット解除する。ＲＯＭ６とセキュアメモリ７は初期化（Init）され、プログラマブルシーケンサ２＿１と２＿２はそれぞれブートアップされる（BOOTUP Init）。
【００４０】
次に、プログラマブルシーケンサ２＿１は、初期化されたＲＯＭ６から暗号化されたシーケンスコードとデータ（code/data）を読み出して安全に復号（Decrypt）し、セキュアメモリ７に書き込む。プログラマブルシーケンサ２＿１と２＿２がそれぞれ並列に読み出して復号し、復号されたシーケンスコードとデータをそれぞれセキュアメモリ７に書き込んでもよい。
【００４１】
次に、プログラマブルシーケンサ２＿１と２＿２は、復号されたシーケンスコードとデータをそれぞれセキュアメモリ７から読み出して、それぞれ対応するドメイン用のファームウェアを実行する。プログラマブルシーケンサ２＿１と２＿２は、ファームウェアを実行することによって、タイミング制御部３＿１と３＿２へ起動コマンドを送信するなどのパラメータ設定（Set Parameter）をそれぞれ行って、タイミング制御部３＿１と３＿２をそれぞれ初期化（Init）し、合せて、ドメイン制御回路８＿１と８＿２をそれぞれ初期化（Init）する。
【００４２】
次に、プログラマブルシーケンサ２＿１と２＿２は、それぞれ対応するドメイン用のファームウェアをさらに実行することによって、ドメイン制御回路８＿１と８＿２に対するシステム制御をそれぞれ開始する（Start System Control）。これにより、ドメイン制御回路８＿１と８＿２は、それぞれ、システム制御動作（System Control Operating）を開始し、ドメイン９＿１と９＿２の動作（Domain Operating）がそれぞれ開始される。ドメイン９＿１と９＿２の動作の開始は、時間差があるように図示されているが、これは単に図示する上での錯綜を避ける趣旨であって、どちらが先に開始されても良いし、同時に開始されても良い。
【００４３】
以上説明したように、本実施形態２のシステム制御回路１によれば、複数のドメインを有するＬＳＩを構成する場合に、システム制御回路をスケーラブルに構成することができ、設計ＴＡＴの課題が解決される。さらに、プロセッサエレメントＰＥの数をスケーラブルとし、個々のプロセッサエレメントＰＥを１個のドメインを割り当てることにより、プロセッサエレメントＰＥ毎にクロックの停止、電源の遮断などの制御を独立に行うことができるため、消費電力の削減効果が大きい。
【００４４】
〔実施形態３〕＜複数のドメインに共通のプログラマブルシーケンサ＞
実施形態２では、半導体装置が同一チップ内に複数のドメインを持つ場合に、システム制御回路１において、プログラマブルシーケンサ２とタイミング制御回路３とドメイン制御回路８を１組として、それぞれのドメインに対応して１組ずつ設けることにより、システム制御回路１をスケーラブルに構成する。これに対して、プログラマブルシーケンサ２とタイミング制御回路３は複数のドメインに共通に設けて、それらのドメインに共通の制御を分担させ、ドメイン制御回路８をドメイン毎に設けて、ドメイン毎に固有の制御を分担させることができる。
【００４５】
図９は、実施形態３のシステム制御回路１の構成例を示すブロック図である。システム制御回路１が搭載される半導体装置は、例えば、２個のＣＰＵを有し、それぞれが独立したドメイン９＿１と９＿２に配置されている。ドメイン９＿１はメインＣＰＵ＿ＰＥ１によるサブシステム（Main CPU PE1 Subsystem）であり、ドメイン９＿２はメインＣＰＵ＿ＰＥ２によるサブシステム（Main CPU PE2 Subsystem）である。
【００４６】
システム制御回路１は、チップの外部から入力されるリセットや、電源の投入を感知して発生するパワーオンリセットなどの起動信号Invokeによって起動され、ドメイン９＿１と９＿２にシステム制御信号群Master IF_1とMaster IF_2をそれぞれ供給する。Master IF_1とMaster IF_2は、それぞれ電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含む信号群である。ドメイン９＿１と９＿２からは、それぞれ関連する状態を示すステータス信号Slave IF_1とSlave IF_2が、ドメイン制御回路８＿１と８＿２に、それぞれフィードバックされている。
【００４７】
システム制御回路１は、図１、図７と同様に、第１ブート制御回路４と、基本タイミング生成回路５と、セキュアメモリ（Secured RAM）７を備え、ＲＯＭ６は外付けまたは内蔵される。図７に示す実施形態２では、各ドメインに対応してそれぞれ２個ずつのプログラマブルシーケンサ２＿１と２＿２、タイミング制御回路３＿１と３＿２、及び、ドメイン制御回路８＿１と８＿２を備える。これに対して本実施形態３では、２個のドメインに共通に１個ずつのプログラマブルシーケンサ２とタイミング制御回路３とを備える点では異なり、各ドメインに対応して２個のドメイン制御回路８＿１と８＿２を備える点、及び、インターフェースExchange IFを備える点では同じである。インターフェースExchange IFは、ドメイン間の情報交換だけではなく、プログラマブルシーケンサ２がドメイン制御回路８＿２との間で情報を送受信するためにも使用される。
【００４８】
第１ブート制御回路４は、起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２に、電源制御信号、リセット信号、クロック信号などを供給する。基本タイミング生成回路５は、第１ブート制御回路４によって起動され、タイミング制御回路３に電源制御信号、リセット信号、クロック信号などの基本的な信号を供給する。プログラマブルシーケンサ２は、第１ブート制御回路４から供給される信号によって起動されると、ＲＯＭ６から暗号化されたシーケンスコードとデータを読み込んで復号し、復号したシーケンスコードとデータをセキュアメモリ７に格納する。プログラマブルシーケンサ２は、復号したシーケンスコードとデータに基づいてシーケンス動作し、タイミング制御回路３に対するパラメータ設定や制御をそれぞれ行う。プログラマブルシーケンサ２とタイミング制御回路３は、ドメイン制御回路８＿１を介してドメイン９＿１の電源制御信号、リセット信号、クロック信号などのシーケンスを制御し、ドメイン制御回路８＿１からインターフェースExchange IFを経てドメイン制御回路８＿２を介してドメイン９＿２の電源制御信号、リセット信号、クロック信号などのシーケンスを制御する。それぞれの制御方法については、実施形態１と同様であるので、説明を省略する。
【００４９】
ここではドメインが２個の例を示したが、ドメインの数は任意である。また、実施形態２と実施形態３を組合せて実施することも可能である。即ち、半導体装置が同一チップ内に複数のドメインを持つ場合に、一部の複数のドメインに対してプログラマブルシーケンサ２とタイミング制御回路３とドメイン制御回路８を１組としてそれぞれのドメインに対応して１組ずつ設け（実施形態２）、他の複数のドメインに対してはプログラマブルシーケンサ２とタイミング制御回路３とを共通に設ける（実施形態３）ことができる。
【００５０】
〔実施形態４〕＜１つのドメインがセキュアＣＰＵ＞
図７や図９に例示したように、半導体装置が同一チップ内に複数のドメインを持ち、それぞれのドメインがＣＰＵを備えるとき、そのうちの１個がセキュアＣＰＵである場合がある。このセキュアＣＰＵには、プログラマブルシーケンサ２の機能の一部を分担させることができる。
【００５１】
図１０は、実施形態４のシステム制御回路１の構成例を示すブロック図である。システム制御回路１が搭載される半導体装置は、例えば、２個のＣＰＵを有し、それぞれが独立したドメイン９＿１と９＿２に配置されている。ドメイン９＿１はメインＣＰＵ＿ＰＥ１によるサブシステム（Main CPU PE1 Subsystem）であり、ドメイン９＿２はメインＣＰＵ＿ＰＥ２によるサブシステム（Main CPU PE2 Subsystem）である。本実施形態４では、ドメイン９＿１のメインＣＰＵ＿ＰＥ１が、セキュアＣＰＵであるものとして説明する。
【００５２】
システム制御回路１は、チップの外部から入力されるリセットや、電源の投入を感知して発生するパワーオンリセットなどの起動信号Invokeによって起動され、ドメイン９＿１と９＿２にシステム制御信号群Master IF_1とMaster IF_2をそれぞれ供給する。Master IF_1とMaster IF_2は、それぞれ電源制御信号、リセット信号、または、クロック信号のうちの少なくとも１つを含む信号群である。ドメイン９＿１と９＿２からは、それぞれ関連する状態を示すステータス信号Slave IF_1とSlave IF_2がドメイン制御回路８＿１と８＿２にそれぞれフィードバックされている。
【００５３】
システム制御回路１は、図９と同様に、第１ブート制御回路４と、基本タイミング生成回路５と、セキュアメモリ（Secured RAM）７を備え、ＲＯＭ６は外付けまたは内蔵されるが、図９とは異なり、セキュアメモリ７とＲＯＭ６は、ドメイン９＿１のセキュアＣＰＵからもアクセスすることができるように構成されている。２個のドメインに共通にプログラマブルシーケンサ２とタイミング制御回路３とを備え、各ドメインに対応して２個のドメイン制御回路８＿１と８＿２を備え、さらに、インターフェースExchange IFを備える。インターフェースExchange IFは、ドメイン間の情報交換に加え、プログラマブルシーケンサ２だけでなくドメイン９＿１のセキュアＣＰＵがドメイン制御回路８＿２との間で情報を送受信するためにも使用される。本実施形態４では、このようにして、プログラマブルシーケンサ２とタイミング制御回路３とドメイン制御回路８＿１とドメイン９＿１のセキュアＣＰＵとが、プログラマブルタイミングシーケンサ機能２０を実現する。
【００５４】
第１ブート制御回路４は、起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２に、電源制御信号、リセット信号、クロック信号などを供給する。基本タイミング生成回路５は、第１ブート制御回路４によって起動され、タイミング制御回路３に電源制御信号、リセット信号、クロック信号などの基本的な信号を供給する。プログラマブルシーケンサ２は、第１ブート制御回路４から供給される信号によって起動されると、ＲＯＭ６から暗号化されたシーケンスコードとデータを読み込んで復号し、復号したシーケンスコードとデータをセキュアメモリ７に格納する。プログラマブルシーケンサ２は、復号したシーケンスコードとデータに基づいてシーケンス動作し、タイミング制御回路３に対するパラメータ設定や制御をそれぞれ行う。プログラマブルシーケンサ２とタイミング制御回路３は、ドメイン制御回路８＿１を介してドメイン９＿１の電源制御信号、リセット信号、クロック信号などのシーケンスを制御する。これにより、ドメイン９＿１のセキュアＣＰＵがブートアップされる。セキュアＣＰＵは、インターフェースExchange IFを介してドメイン制御回路８＿２に必要なパラメータを設定し、コマンドを送信するなどにより、ドメイン９＿２の電源制御信号、リセット信号、クロック信号などのシーケンスを制御する。制御の主体は代わってもそれぞれの制御方法については、実施形態１と同様である。
【００５５】
これにより、システム制御回路の機能の一部を、セキュアＣＰＵに担わせることができ、シーケンス制御をより高度化することができる。また、セキュアＲＡＭ７がプログラマブルシーケンサ２とドメイン９＿１のセキュアＣＰＵとの間で共有され、チップ面積の増大を抑えることができる。
【００５６】
ここではドメインが２個の例を示したが、ドメインの数は任意である。また、実施形態２と実施形態３のうち一方または両方と、実施形態４とを組合せて実施することも可能である。即ち、半導体装置が同一チップ内に複数のドメインを持つ場合に、プログラマブルシーケンサ２とタイミング制御回路３とを、一部の複数のドメインに対してはそれぞれに対応して設け、他の複数のドメインに共通に設け、さらに他の複数のドメインに共通に設けた上で、セキュアＣＰＵを備えるドメイン以外のドメインの制御をセキュアＣＰＵに分担させることができる。
【００５７】
〔実施形態５〕＜複数のＣＰＵを２個のプログラマブルシーケンサから制御＞
実施形態２では、半導体装置が同一チップ内に複数のドメインを持つ場合に、１個のドメインに１個のドメイン制御回路８を対応付けて設ける。このとき、ドメインの数に比例してドメイン制御回路８を設けることとなる。例えば多数のＣＰＵを備え、個々のＣＰＵを１個のドメインとして電源制御、クロック制御の単位とするときには、ドメイン制御回路８をこれに比例して設けることとなる。これに対して本実施形態５では、複数のドメインを構成する１個のドメインを複数のドメイン制御回路からの制御の組合せによって制御する。
【００５８】
図１１は、実施形態５のシステム制御回路の構成例を示すブロック図である。システム制御回路１が搭載される半導体装置は、例えば、ｎ個のＣＰＵ＿ＰＥ１〜ＰＥｎを有し、ドメイン９＿１〜９＿ｎに配置されている。ドメイン９＿１はメインＣＰＵ＿ＰＥ１によるサブシステム（Main CPU PE1 Subsystem）であり、ドメイン９＿ｎはメインＣＰＵ＿ＰＥｎによるサブシステム（Main CPU PEn Subsystem）である。
【００５９】
システム制御回路１は、第１ブート制御回路４と、基本タイミング生成回路５とを備え、チップの外部から入力されるリセットや、電源の投入を感知して発生するパワーオンリセットなどの起動信号Invokeによって起動される。システム制御回路１は、さらに、セキュアメモリ（Secured RAM）７を備え、ＲＯＭ６は外付けまたは内蔵され、それぞれ２個ずつのプログラマブルシーケンサ２＿１と２＿２、タイミング制御回路３＿１と３＿２、及び、ドメイン制御回路８＿１と８＿２を備える。２個のドメイン制御回路８＿１と８＿２は、ドメイン９＿１〜９＿ｎにシステム制御信号群Master IF_1とMaster IF_2を供給し、ドメイン９＿１と９＿２からは、それぞれ関連する状態を示すステータス信号Slave IF_1とSlave IF_2がそれぞれフィードバックされている。２個のドメイン制御回路８＿１と８＿２は相互に情報を交換するインターフェースExchange IFを備える。
【００６０】
図７を引用して説明した実施形態２と同様に、ＲＯＭ６は、プログラマブルシーケンサ２＿１のためのシーケンスコード及びデータと、プログラマブルシーケンサ２＿２のためのシーケンスコード及びデータとをそれぞれ暗号化して格納しており、プログラマブルシーケンサ２＿１と２＿２のどちらからもアクセスすることができる。セキュアメモリ７も、プログラマブルシーケンサ２＿１と２＿２のどちらからもアクセスすることができるように構成されており、プログラマブルシーケンサ２＿１用と、プログラマブルシーケンサ２＿２用の両方の復号されたシーケンスコード及びデータを記憶することができる。このような共通の構成に代えて、プログラマブルシーケンサ２＿１と２＿２のそれぞれに専用のセキュアメモリを設けてもよい。第１ブート制御回路４は、起動信号Invokeに基づいて、基本タイミング生成回路５と、ＲＯＭ６と、プログラマブルシーケンサ２＿１と２＿２に、電源制御信号、リセット信号、クロック信号などを供給する。基本タイミング生成回路５は、第１ブート制御回路４によって起動され、タイミング制御回路３＿１と３＿２に電源制御信号、リセット信号、クロック信号などの基本的な信号を供給する。プログラマブルシーケンサ２＿１は、第１ブート制御回路４から供給される信号によって起動されると、ＲＯＭ６から暗号化されたシーケンスコードとデータを読み込んで復号し、復号したシーケンスコードとデータをセキュアメモリ７に格納する。暗号化されたシーケンスコードとデータの復号は、プログラマブルシーケンサ２＿１と２＿２がそれぞれ実行してもよい。プログラマブルシーケンサ２＿１と２＿２は、復号したシーケンスコードとデータに基づいてそれぞれシーケンス動作し、タイミング制御回路３＿１と３＿２に対するパラメータ設定や制御をそれぞれ行う。
【００６１】
プログラマブルシーケンサ２＿１とタイミング制御回路３＿１は、ドメイン制御回路８＿１を介して、ドメイン９＿１〜９＿ｎに対してパラメータやコマンド或いは制御信号を、Master IF_1によって供給する。プログラマブルシーケンサ２＿２とタイミング制御回路３＿２は、ドメイン制御回路８＿２を介して、ドメイン９＿１〜９＿ｎに対してパラメータやコマンド或いは制御信号を、Master IF_2によって供給する。ドメイン９＿１〜９＿ｎは、Master IF_1とMaster IF_2から供給されたパラメータやコマンド或いは制御信号に基づいて、電源制御信号、リセット信号、クロック信号などのシーケンス制御を行う。ドメイン９＿１〜９＿ｎは、Slave IF_1とSlave IF_2により、各ドメインに関連する状態を示すステータス情報を、ドメイン制御回路８＿１と８＿２にそれぞれフィードバックする。複数のドメインのシーケンス制御が相互の状態に依存するときには、それに関わるステータス情報をインターフェースExchange IFを介して送受信する。
【００６２】
以上の構成により、１つのプロセッサエレメントＰＥを異なる２つのドメイン制御回路８から制御することで、ＰＥの動作条件に応じて制御するパスを変更することができる。基本的には制御するパスを２重化し、何れからも制御できるように選択可能な構成としておくとよいが、一部の制御については片側のみのものがあってもよい。並列に動かしたい複数のＰＥに対して共通の１つのドメイン制御回路８で制御を行うことで、ドメイン制御回路８と制御パスの数を軽減でき、一方、異なる制御を行いたいＰＥに対しては、他方のドメイン制御回路８を使用することができる。１つのＰＥを制御するために異なる２つのドメイン制御回路８が選択可能なことで、片側のシステム制御が故障した際にも他方の制御によってカバーできる。また、チップデバイス上で発生する消費電力やノイズ等の電気的特性の課題に応じて、最適な制御パスを選択して電気的特性を制御することができる。
【００６３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６４】
例えば、ブロック図に示したブロック分割は、単なる一例に過ぎず、１つのブロックの一部または全部の機能を他のブロックの機能と渾然一体に実現した別のブロックに変更して実現するなどの変更は、適宜任意に行うことができる。
【符号の説明】
【００６５】
１  システム制御回路
２  プログラマブルシーケンサ（2nd Boot Programmable Sequencer）
３  タイミング制御回路（Programmable Timing Controller）
４  第１ブート制御回路（1st Boot HW Controller）
５  基本タイミング生成回路（Basic Timing Generator）
６  ＲＯＭ（Read Only Memory）
７  セキュアメモリ（Secured RAM）
８  ドメイン制御回路（Parameterized System Controller）
９  ドメインまたはドメインに含まれる機能ブロック（例：Main CPU, PE Subsystem）
９０  機能ブロック（例：Main CPU, PE Subsystem）
１０  非プログラマブルタイミングシーケンサ機能（Non-programmable Timing Sequencer Function）
２０  プログラマブルタイミングシーケンサ機能（Programmable Timing Sequencer Function）
２１  マイクロＣＰＵ（Micro CPU）
２２  暗号アクセラレータ（Decrypt HW Accelerator）
２３  暗号鍵（Encryption Key）記憶回路
２４  制御インターフェース（Control Interface）
２５  内部バス
３１、３２、３３  ゲーテッドクロック制御回路（Gated Clock Controller）
３４、３５、３６  タイミングスケジューラー（Timing Scheduler）
３９  レジスタ制御ホストインターフェース（Register controlled Host IF）
４１  電源電圧レギュレータ（VDC Regulator）
４２  フラッシュメモリ制御回路（FLASH Controller）
４３  ＰＬＬ（Phase Locked Loop）
４４  クロック発生回路（Clock Pulse Generator）
４５  リセット制御回路（Reset Controller）
５１、５２、５３  クロック分周回路（High/Mid/Low Clock Divider）
【図１】
0006513463.tif 000002
【図２】
0006513463.tif 000003
【図３】
0006513463.tif 000004
【図４】
0006513463.tif 000005
【図５】
0006513463.tif 000006
【図６】
0006513463.tif 000007
【図７】
0006513463.tif 000008
【図８】
0006513463.tif 000009
【図９】
0006513463.tif 000010
【図１０】
0006513463.tif 000011
【図１１】
0006513463.tif 000012