(57)【要約】  ｅＰＬＸ部（４２０）は、ＳＲＡＭおよびＭＵＸを有するロジック部と、ＳＲＡＭおよびロジック部の配線接続を行なうＴＧを有するスイッチ部とを含む。複合モジュール（４００）が第１のモードに設定された場合、Ａｄｄ／Ｆｌａｇ制御部（４１０）は、ＳＲＡＭをデータフィールドおよびフラグフィールドとして使用し、フラグフィールドに記憶される制御フラグに応じて、データフィールドおよびフラグフィールドの読み出しアドレスを自律的に制御する。また、複合モジュール（４００）が第２のモードに設定された場合、Ａｄｄ／Ｆｌａｇ制御部（４１０）は、ＳＲＡＭにコンフィグレーション情報を書き込んで論理回路を再構成する。したがって、回路構成の粒度を可変とすることができ、機能構成時のフレキシビリティを向上させることが可能となる。
2009107309.tif 000002
【特許請求の範囲】
【請求項１】
制御部（４１０）および機能再構成部（４２０）を有する複合モジュール（４００）が複数接続され、機能をプログラミング可能な半導体装置であって、
前記機能再構成部（４２０）は、第１のメモリセルおよび該第１のメモリセルに記憶される内容を選択的に出力する選択部を有するロジック部と、
第２のメモリセルおよび該第２のメモリセルに記憶される内容に応じて前記ロジック部の配線接続を行なうゲート部を有するスイッチ部とを含み、
前記複合モジュール（４００）が第１のモードに設定された場合、前記制御部（４１０）は、前記第１のメモリセルおよび前記第２のメモリセルをデータフィールドおよびフラグフィールドとして使用し、前記フラグフィールドに記憶される制御フラグに応じて、前記データフィールドおよび前記フラグフィールドの読み出しアドレスを自律的に制御し、
前記複合モジュール（４００）が第２のモードに設定された場合、前記制御部（４１０）は、前記第１のメモリセルおよび前記第２のメモリセルにコンフィグレーション情報を書き込んで論理回路を再構成する、半導体装置。
【請求項２】
前記制御部（４１０）は、インクリメンタ（１１１）と、
前記インクリメンタ（１１１）の出力、外部から入力されるアドレスおよび前記データフィールドから読み出されたデータを選択的に出力する第１のセレクタ（１１２）と、
前記第１のセレクタ（１１２）の出力を保持して前記インクリメンタ（１１１）に出力する保持部（１１３）と、
前記保持部（１１３）の出力および前記第１のセレクタ（１１２）の出力を選択的に出力する第２のセレクタ（４１１）と、
前記フラグフィールドから読み出された制御フラグおよび外部から入力される制御信号に応じて前記第１のセレクタ（１１２）による選択を制御するデコーダ（１１４）とを含む、請求の範囲第１項に記載の半導体装置。
【請求項３】
前記複合モジュール（４００）が第１のモードに設定された場合、前記デコーダ（１１４）は、前記第１のセレクタ（１１２）に前記外部から入力されるアドレスを選択させ、当該アドレスに応じて前記データフィールドおよび前記フラグフィールドの書き込みを制御する、請求の範囲第２項に記載の半導体装置。
【請求項４】
前記半導体装置はさらに、データレジスタ（３０２）に記憶されたデータを並列に演算可能な複数の演算部（３０１−１〜３０１−ｍ）を有する並列プロセッサ（３００）を含み、
前記複合モジュール（４００）の前記第１のメモリセルおよび前記第２のメモリセルが前記並列プロセッサ（３００）の前記データレジスタとして使用される、請求の範囲第１項〜第３項のいずれかに記載の半導体装置。
【請求項５】
中央処理装置（２）と、不揮発性メモリ（３）と、通信インタフェース（６）と、機能を再構成可能な機能ブロック（１）とを有し、
前記機能ブロック（１）は、第１および第２のメモリセルを含む複数のメモリセルとアクセス先のメモリセルを決定するデコーダ（１１４）とを有するメモリ部と、前記第１のメモリセルの内容を選択的に出力する選択回路を有する論理制御部と、前記第２のメモリセルの記憶内容に応じて前記論理制御部間の接続を決定するスイッチ回路とを複数有し、前記不揮発性メモリ（３）に格納される構成情報を前記メモリ部に格納することにより機能の再構成が行なわれ、
前記機能ブロック（１）は第１モードに設定された場合、前記第１のメモリセルを４ビット以上のデータ格納に用い、前記第２のメモリセルを４ビット以上のフラグ情報格納に用い、前記論理制御部と前記スイッチ回路とは前記第１のメモリセルと前記第２のメモリセルとに格納されたデータおよびフラグ情報に応じて次にアクセスするメモリセルを決定する情報を前記デコーダ（１１４）に供給し、
前記機能ブロック（１）は第２モードに設定された場合、前記複数のメモリセル夫々に１ビットのデータを格納し、前記論理制御部は２のメモリセルに格納されたデータに応じた論理演算を行ない、前記デコーダ（１１４）は当該論理演算を行なうメモリセルを決定し、
前記中央処理装置（２）は前記通信インタフェース（６）を介して外部からデータを受信するに応じて、前記機能ブロック（１）は該外部から受信したデータを所定のアルゴリズムに基づき復号するための第１構成情報が格納され、該復号されたデータを前記不揮発性メモリ（３）に格納するように制御をする半導体装置。
【請求項６】
前記第１構成情報は、前記機能ブロック（１）を前記第１モードと前記第２モードとのいずれのモードに設定するかを示す情報を含む、請求の範囲第５項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の構成をプログラミング可能な半導体装置に関し、特に、回路構成の粒度を可変とすることにより機能構成時のフレキシビリティを向上させた半導体装置に関する。
【背景技術】
【０００２】
近年、デジタル家電、パーソナルコンピュータ、携帯電話、自動車応用、白物家電などのデジタル機器分野において、ネットワークを介したリモート診断による安全性の向上、自己診断によるシステム安全性の向上に対する要求が高まってきている。また、これらの要求は、安全性からシステム監視、個人情報の保護などの必要性への展開として検討され始めてきている。さらに、これらの技術は、ネットワークコンテンツ配信、デジタル放送、メディアコンテンツ事業などのデジタルコンテンツ分野において、個人・システム機器の認証機能、暗号化機能として機器に搭載されてゆくことになる。【０００３】
これらを実現するために半導体チップに要求されることは、デジタル家電、白物家電、自動車応用、高性能携帯電話などの機器に内蔵されているセキュリティチップ、システムコントローラなどの代替として置き換えることが可能であり、さらに既存の他のコンテンツ暗号化技術、セキュアストレージ技術などによるセキュリティ強化を可能とすることにある。【０００４】
たとえば、情報家電、白物家電、自動車用途などの機器における知的財産権、個人情報、企業情報などの保護を行なうために、ネットワークを介するデータ処理を含めて、ユーザ情報処理、システムセーフティチェックや、必要に応じて決済処理などを同時に安全に行なうことが必要となる。そのためには、電流モニタ、データ列監視などによる攻撃に耐え得るセキュア機能を実現することが必要となる。【０００５】
また、暗号鍵の流出、決済部分のパスを可能とするコード改造などを防止するために、共通鍵暗号によるコンテンツ復号時の課金機能を自己動的論理再構成機能を有するプログラマブルデバイスで実現することが必要となる。これに関連する技術として、下記の特許文献１〜３に開示された発明がある。【０００６】
特開平１０−９３４２２号公報（特許文献１）に開示された発明においては、論理関数、フリップフロップ、及び配線スイッチ等の機能を提供する複数のプログラマブルな論理セルより構成されるプログラマブル論理回路において、論理セルは、同時には、１つの機能を提供するものとし、論理セルの各機能を実現する回路は、メモリやマルチプレクサなどの回路資源を共有して用いる。これにより、プログラマブル論理回路上に実現される回路が必要とする回路機能が偏っていても効率的な実現が可能となり、プログラマブル論理回路の回路資源を有効に利用することを可能とするものである。【０００７】
特開２０００−２３２１６２号公報（特許文献２）に開示された発明においては、記憶回路と、読み出し回路と、配線間接続スイッチとを備えた基本セルを、プログラマブル論理手段として機能させる際に、プログラマブル結線手段として機能する場合に使用されていた資源を活用する。又、セル間の接続線を一部ツイストさせることで、同一構成のセルを連続して並べた際にも入出力の接続を確保する。さらにプログラマブル論理手段時の入出力信号線をセル内部で接続可能とし、セル内でのフィードバックループの実現を可能とする。【０００８】
特開２００５−１５８８１５号公報（特許文献３）に開示された発明においては、論理演算を行なう論理ブロックを有する複数の基本セルが行列状に配列されている。個々の基本セルは、自身以外の基本セルとの接続関係を与えられた接続情報に応じて決定するスイッチブロックを備えている。規則的に接続された配線トラックからなるネットワークの一部を、所定の確率ｐでランダムに選択された基本セル同士を直結するショートカット配線トラックに置換して、少ない個数のスイッチブロックを使用するだけで所望の配線経路を実現できるモールワールドネットワーク的な配線ネットワークが構築されている。
【特許文献１】特開平１０−９３４２２号公報
【特許文献２】特開２０００−２３２１６２号公報
【特許文献３】特開２００５−１５８８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来のプログラマブイルデバイスは、ハードウェアＩＰ（Intellectual  property）と比較してエリアサイズが非常に大きく、チップサイズの点からコストアップになると共に、動作速度が遅くなるため、上述の特許文献１〜３のように面積や速度に対する改善が行なわれている。しかしながら、予め種々の回路、配線を切替えるスイッチ素子などの回路資源が埋め込まれているため、ＡＳＩＣ（Application  Specific  Integrated  Circuit）のようなスタンダードセルで設計した回路と比較して面積ペナルティが非常に大きくなるといった問題点がある。【００１０】
また、コンテンツ保護の見地からは、暗号を復号する部分や課金部分が安全でないハードウェア上に構成されるため、暗号鍵の流出、決済部分のパスを可能とするコード改造などが容易となっている。そのため、デジタルコンテンツ視聴の利便性を確保しつつ、耐タンパ性についてより強固なシステムが必要となる。また、家電製品の安全性といった問題点もある。【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、機能構成時におけるフレキシビリティを向上させたプログラミング可能な半導体装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施例によれば、Ａｄｄ／Ｆｌａｇ制御部およびｅＰＬＸ部を有する複合モジュールが複数接続され、機能をプログラミング可能な半導体装置が提供される。ｅＰＬＸ部は、ＳＲＡＭおよびＳＲＡＭに記憶される内容を選択的に出力するＭＵＸを有するロジック部と、ＳＲＡＭおよびＳＲＡＭに記憶される内容に応じてロジック部の配線接続を行なうＴＧを有するスイッチ部とを含む。複合モジュールがＰＡ３モードに設定された場合、Ａｄｄ／Ｆｌａｇ制御部は、ＳＲＡＭをデータフィールドおよびフラグフィールドとして使用し、フラグフィールドに記憶される制御フラグに応じて、データフィールドおよびフラグフィールドの読み出しアドレスを自律的に制御する。また、複合モジュールがｅＰＬＸモードに設定された場合、Ａｄｄ／Ｆｌａｇ制御部は、ＳＲＡＭにコンフィグレーション情報を書き込んで論理回路を再構成する。
【発明の効果】
【００１３】
この実施例によれば、複合モジュールをＰＡ３モードおよびｅＰＬＸモードのいずれかに設定することにより、回路構成の粒度を可変とすることができ、機能構成時のフレキシビリティを向上させることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】粗粒度デバイスのアーキテクチャを示す図である。
【図２】細粒度デバイスのアーキテクチャを示す図である。
【図３】ＬＵＴアレイ２２０のアーキテクチャの具体例を示す図である。
【図４】ＬＵＴ論理ユニット２２１の構成例を示す図である。
【図５】スイッチ部２５０の構成例を示す図である。
【図６】ｅＰＬＸ２００によって実現された論路回路の一例を示す図である。
【図７】細粒度デバイスの他のアーキテクチャを示す図である。
【図８】本発明の実施例１における複合モジュールの構成例を示す図である。
【図９】ＰＡ３（１００）のメモリ部１２０と、ｅＰＬＸ２００のＬＵＴ論理ユニット２２１およびスイッチ部２５０との共有化を模式的に示す図である。
【図１０】複合モジュール４００をＰＡ３モードで使用するときの内部構成を示す図である。
【図１１】複合モジュール４００をｅＰＬＸモードで使用するときの内部構成を示す図である。
【図１２】本発明の実施例１におけるプログラマブルデバイスの構成例を示す図である。
【図１３】本発明の実施例１におけるプログラマブルデバイス１を構成する各部品の配置を示す図である。
【図１４】図１３に示すプログラマブルデバイス１にＰＡ３（１００）を実装する場合を示す図である。
【図１５】図１３に示すプログラマブルデバイス１にＰＡ３（１００）およびＭＸ３００を実装する場合を示す図である。
【図１６】最下層におけるレイアウトイメージを示す図である。
【図１７】図１６に示すプログラマブルデバイス上にＰＡ３（１００）を実装する場合を示している。
【図１８】図１６に示すプログラマブルデバイス上にＰＡ３（１００）、組合わせ回路２００およびＭＸ３００を実装する場合を示している。
【図１９】図１８に示すプログラマブルデバイスをさらにソフトウェアにより仮想化ハードウェアとして実装する場合を示す図である。
【図２０】本発明の実施例１におけるプログラマブルデバイスを搭載した情報処理装置の構成例を示す図である。
【図２１】宅内／車両内機器ネットワークシステムの一例を示す図である。
【図２２】プロトコル適応制御および通信セキュア適応制御の機能をどのようにＳＭＧＰに再構成するかを説明するための図である。
【図２３】ＳＭＧＰ１がどのように自己診断および自己修復を行なうかを説明するための図である。
【図２４】ＳＭＧＰ１がどのように自己診断および自己修復を行なうかをさらに詳細に説明するための図である。
【符号の説明】
【００１５】
１  プログラミングデバイス（ＳＭＧＰ）、２  ＣＰＵ、３  不揮発性メモリ、４  ＳＲＡＭ、５  Ｉ／Ｏ、周辺機能ＩＰ、６  通信用Ｔｘ／Ｒｘ、７  バス、８  情報ネットワーク、９  広域ネットワーク、１０  安全監視センタ、１１  コンテンツ／課金サーバ、１００  ＰＡ３、１１０，４１０  Ａｄｄ／Ｆｌａｇ制御部、１１１  インクリメンタ、１１２，４１１  セレクタ、１１３  ＦＦ、１１４  制御タイプデコーダ、１２０  メモリ部、１２１  デコーダ、１２２  フラグフィールド、１２３  データフィールド、２００  ｅＰＬＸ、２２０  ＬＵＴアレイ、２２１  ＬＵＴ論理ユニット、２２２〜２２５  ＳＲＡＭ、２２６  ＭＵＸ、２３０  ＤＦＦ、２４０  インターコネクト部、２５０  スイッチ部、２５１，２５２  ＰチャネルＭＯＳトランジスタ、２５３〜２５６  ＮチャネルＭＯＳトランジスタ、２５７  ＴＧ、３００  ＭＸ、３０１−１〜３０１−ｍ  演算器、３０２  データレジスタ、３０３  コントローラ、３０４  命令メモリ、３０５  バスインタフェース、４００  複合モジュール、４２０  ｅＰＬＸ部、４２１  制御回路、４２２  ロウデコーダ、４２３  カラムデコーダ、５００  ＩＣＢ、６００  ＩＣＥ。
【発明を実施するための最良の形態】
【００１６】
（実施例１）
まず、本発明の実施例１におけるプログラマブルデバイスを説明するために、その基礎となる技術について説明する。なお、以下の説明においては、１〜４ビット単位程度の回路をプログラミングできるデバイスを細粒度デバイスと呼び、４ビット単位以上の回路をプログラミングできるデバイスを粗粒度デバイスと呼ぶものとする。【００１７】
図１は、粗粒度デバイスのアーキテクチャを示す図である。この粗粒度デバイス１００は、ステートマシン、シーケンサ、順序回路などをプログラミングすることができ、以下、ＰＡ３（Programmable  Autonomous  Address-control-memory  Architecture）と呼ぶことにする。なお、詳細は、論文「Yoshifumi  Kawamura;“A  reconfigurable  microcomputer  system  with  PA3”,  ASSCC2007  Proceeding  of  Technical  paper  pp.388-391,  Nov.  2007」を参照されたい。【００１８】
図１に示すＰＡ３（１００）は、Ａｄｄ／Ｆｌａｇ制御部１１０と、メモリ部１２０とを含む。また、Ａｄｄ／Ｆｌａｇ制御部１１０は、インクリメンタ１１１と、セレクタ１１２と、ＦＦ（Flip  Flop）１１３と、制御タイプデコーダ１１４とを含む。【００１９】
メモリ部１２０は、実現する論理回路に関するコンフィグレーション情報が書き込まれる部分であり、デコーダ１２１と、８ビット幅のフラグフィールド１２２と、８ビット幅のデータフィールド１２３とを含む。【００２０】
デコーダ１２１は、ＦＦ１１３から出力されるアドレスをデコードし、フラグフィールド１２２およびデータフィールド１２３のそれぞれにおいて、アクセス単位（８ビット）のメモリセルを選択する。このとき、図示しないリード／ライト信号が与えられ、選択されたメモリセルに対するリード動作またはライト動作が行なわれる。【００２１】
セレクタ１１２は、データフィールド１２３から読み出されたデータ、インクリメンタ１１１から出力されるアドレス、および図示しないバスから供給されるＤａｔａ／Ａｄｄ．信号によって示されるアドレスのいずれかを選択してＦＦ１１３に出力する。【００２２】
ＦＦ１１３は、セレクタ１１２から出力されるアドレスをインクリメンタ１１１およびデコーダ１２１に出力する。インクリメンタ１１１は、ＦＦ１１３から出力されるアドレスをインクリメントしてセレクタ１１２に出力する。【００２３】
制御タイプデコーダ１１４は、Ｃｏｎｄ．信号およびフラグフィールド１２２から出力される制御フラグに応じてセレクタ１１２の選択を制御する。たとえば、制御タイプデコーダ１１４は、セレクタ１１２にＤａｔａ／Ａｄｄ．信号を選択させることにより、フラグフィールド１２２およびデータフィールド１２３に対するランダムアクセスが可能である。【００２４】
また、制御タイプデコーダ１１４は、ＦＦ１１３に保持されるアドレスをスタートアドレスとしてメモリリードサイクルを繰り返し起動し、サイクル毎にフラグフィールド１２２から読み出される制御フラグに従ってセレクタ１１２の選択動作を制御することも可能である。【００２５】
この構成によって、メモリ部１２０の読み出しをＰＡ３（１００）自体で自律的に制御することができ、可変論理機能を実現するためのメモリ部１２０を論理回路と等価な回路として扱うことができる。したがって、実現可能な論理構成や論理規模に融通性を持たせることができ、小さなチップ占有面積で大きな論理規模にも対応可能な可変論理機能を実現可能とする。【００２６】
図２は、細粒度デバイスのアーキテクチャを示す図である。この細粒度デバイス２００は、組合わせ回路、プロトコルなどのＩ／Ｏ（Input/Output）をプログラミングすることができ、以下、ｅＰＬＸ（embedded  Programmable  Logic  matriX）と呼ぶことにする。なお、詳細は、論文「Hirofumi  Nakano,  Takenobu  Iwao,  Tomoo  Hishida,  Hiroshi  Shimomura,  Tomonori  Izumi,  Takeshi  Fujino,  Yoshihiro  Okuno  and  Kazutami  Arimoto,“An  Embedded  Programmable  Logic  Matrix  (ePLX)  for  flexible  functions  on  SoC”,  ASSCC2006  Proceeding  of  Technical  paper  pp.219-222.」を参照されたい。【００２７】
図２に示すｅＰＬＸ２００は、ＬＵＴ（Look  Up  Table）アレイ２２０およびＤＦＦ２３０を含むブロック２１０がインターコネクト部２４０を介して互いに接続される構成を有している。【００２８】
インターコネクト部２４０は、ｅＰＬＸ（２００）外部とブロック２１０との間およびブロック２１０同士の間に介在し、これらの間で信号を入出力させるものである。また、ＤＦＦ２３０は、複数個のＦＦ論理ユニットを１次元アレイとして列状に配置したものである。【００２９】
図３は、ＬＵＴアレイ２２０のアーキテクチャの具体例を示す図である。ＬＵＴアレイ２２０は、複数個のＬＵＴ論理ユニット２２１を２次元アレイとして行列状に高密度集積したものであり、ＬＵＴ論理ユニット２２１間には後述するスイッチ部が配置され、ＬＵＴ論理ユニット２２１同士を接続している。ＬＵＴ論理ユニット２２１間の接続は、このスイッチ部によって切替えられる。【００３０】
図３においては、一例として９行×７列＝６３個のＬＵＴ論理ユニット２２１を備えたＬＵＴアレイ２２０が示されている。ＬＵＴ論理ユニット２２１から出力された信号は、同じ列に配置された上下４つのＬＵＴ論理ユニットと、１列右隣の列に配置された５つのＬＵＴ論理ユニットと、２列右隣の列に配置された１つのＬＵＴ論理ユニットとに入力可能である。【００３１】
図４は、ＬＵＴ論理ユニット２２１の構成例を示す図である。ＬＵＴ論理ユニット２２１は、４ビットのコンフィグレーションメモリ（ＳＲＡＭ）２２２〜２２５と、４入力１出力のマルチプレクサ（ＭＵＸ４）２２６とを含む。４ビットのコンフィグレーションメモリ２２２〜２２５に論理関数に対応する値を設定することによって、論理関数に対応する論理回路を構成することができる。【００３２】
図５は、スイッチ部２５０の構成例を示す図である。このスイッチ部２５０は、ＳＲＡＭ部と、トランスファーゲート（ＴＧ）２５７とによって構成される。【００３３】
ＳＲＡＭ部は、ＰチャネルＭＯＳトランジスタ２５１および２５２と、ＮチャネルＭＯＳトランジスタ２５３〜２５６とを含む。ＰチャネルＭＯＳトランジスタ２５１は、電源ノードとストレージノード２５８との間に接続され、かつそのゲートがストレージノード２５９に接続される。ＰチャネルＭＯＳトランジスタ２５２は、電源ノードとストレジノード２５９との間に接続され、かつそのゲートがストレージノード２５８に接続される。【００３４】
ＮチャネルＭＯＳトランジスタ２５５は、ストレージノード２５８と接地ノードとの間に接続され、かつそのゲートがストレージノード２５９に接続される。ＮチャネルＭＯＳトランジスタ２５６は、ストレージノード２５９と接地ノードとの間に接続され、かつそのゲートがストレージノード２５８に接続される。ＮチャネルＭＯＳトランジスタ２５３および２５４は、ワード線ＷＬ上の電位に応答してストレージノード２５８および２５９を、それぞれビット線ＢＬおよび／ＢＬに接続する。【００３５】
ＴＧ２５７は、ストレージノード２５８および２５９の電位に応じて導通／遮断を行なう。すなわち、ＳＲＡＭ部に“０”が記憶されている場合にはＴＧ２５７がオフとなって配線が切断される。また、ＳＲＡＭ部に“１”が記憶されている場合にはＴＧ２５７がオンとなって配線が接続される。【００３６】
図６は、ｅＰＬＸ２００によって実現された論路回路の一例を示す図である。図４に示すＬＵＴ論理ユニット２２１内のＳＲＡＭ２２２〜２２５に値を設定することによってＬＵＴ論理ユニット２２１に論理回路を構成し、図５に示すスイッチ部２５０のＳＲＡＭ部に値を設定することにより隣接するＬＵＴ論理ユニット２２１間の接続を行なう。なお、ＬＵＴ論理ユニット２２１は、論理回路としてではなく配線として用いることも可能である。【００３７】
インターコネクト部２４０は、縦配線領域の接続を行なうために設けられており、ＤＦＦ２３０を介して隣接するＬＵＴアレイ２２０間の接続を行なう。【００３８】
図７は、細粒度デバイスの他のアーキテクチャを示す図である。この細粒度デバイス３００は、超並列ＳＩＭＤ（Single  Instruction  Multiple  Data）プロセッサであり、以下、ＭＸ（Matrix  Processor）と呼ぶことにする。なお、詳細は、論文「Masami  Nakajima,  Hideyuki  Noda,  Katsumi  Dosaka,  Kiyoshi  Nakata,  Motoki  Higashida,  Osamu  Yamamoto,  Katsuya  Mizumoto,  Hiroyuki  Kondo,  Yukihiko  Shimazu,  Kazutami  Arimoto,  Kazunori  Saitoh  and  Toru  Shimizu,“A  40GOPS  250mW  Massively  Parallel  Processor  Based  on  Matrix  Architecture”,  IEEE  International  Solid  Circuits  Conference,  Dig.  Tech.,  Papers,  pp.410-411,  Feb.  2006」を参照されたい。【００３９】
ＭＸ３００は、ｍ個の演算器３０１−１〜３０１−ｍと、データレジスタ３０２と、コントローラ３０３と、バスインタフェース３０５と、相互接続用スイッチ３０６とを含む。また、コントローラ３０３は、命令メモリ３０４を含む。【００４０】
データレジスタ３０２は、たとえばメディアデータをサンプリングされたデータの配列として記憶する。演算器３０１−１〜３０１−ｍのそれぞれは、データレジスタ３０２に記憶された配列データの各要素に対して演算を行うことにより並列に処理を行なう。【００４１】
バスインタフェース３０５は、図示しない外部バスを介してデータの入出力を行なう。バスインタフェース３０５は、バスを介して信号処理要求を受けると、その信号処理要求をコントローラ３０３に出力する。また、バスインタフェース３０５は、コントローラ３０３から信号処理結果を受けると、その信号処理結果をバスを介して出力する。【００４２】
コントローラ３０３は、バスインタフェース３０５から信号処理要求を受けると、命令メモリ３０４に格納されたマイクロコードに対応する演算を順次演算器３０１−１〜３０１−ｍに行なわせ、信号処理要求に対応した信号処理を行なわせる。そして、コントローラ３０３は、信号処理結果をバスインタフェース３０５に出力する。【００４３】
相互接続用スイッチ３０６は、演算器３０１−１〜３０１−ｍの接続経路を切換えることができ、演算器３０１−１〜３０１−ｍに異なるエントリのデータの演算を行なわせることも可能である。したがって、各エントリに異なるデータを格納しておき、演算器３０１−１〜３０１−ｍに並列演算を行なわせることにより高速にデータ演算を行なうことが可能である。【００４４】
図１を用いて説明したように、ＰＡ３（１００）は、Ａｄｄ／Ｆｌａｇ制御部１１０とメモリ部１２０とによって構成されるが、ＳＲＡＭによって構成することが可能なメモリ部１２０が面積の大部分を占めている。また、図２〜図６を用いて説明したように、ｅＰＬＸ２００は、ＬＵＴ論理ユニット２２１とスイッチ部２５０とによって構成されるが、大部分の面積がＳＲＡＭによって占められている。以下、ＳＲＡＭ部分を共有することによって、ＰＡ３（１００）とｅＰＬＸ２００とのいずれでも動作可能な複合モジュールについて説明する。【００４５】
図８は、本発明の実施例１における複合モジュールの構成例を示す図である。この複合モジュール４００は、Ａｄｄ／Ｆｌａｇ制御部４１０と、ｅＰＬＸ部４２０とを含む。【００４６】
Ａｄｄ／Ｆｌａｇ制御部４１０は、図１に示すＡｄｄ／Ｆｌａｇ制御部１１０と比較して、セレクタ１１２から出力されるアドレスおよびＦＦ１１３から出力されるアドレスを選択的に制御回路４２１に出力するセレクタ４１１が追加されている点と、ｍｏｄｅ信号によってＰＡ３（１００）として動作するか、ｅＰＬＸ２００として動作するかを選択する点が異なる。【００４７】
セレクタ４１１は、ｍｏｄｅ信号によってＰＡ３が選択された場合（以下、ＰＡ３モードと呼ぶ。）、ＦＦ１１３から出力されるアドレスを選択して出力する。また、制御タイプデコーダ１１４は、ＰＡ３モードの場合に、図１に示す制御タイプデコーダ１１４と同様の動作を行なう。したがって、ＰＡ３モードの場合に、Ａｄｄ／Ｆｌａｇ制御部４１０は、図１に示すＡｄｄ／Ｆｌａｇ制御部１１０と同様の動作を行なう。【００４８】
また、セレクタ４１１は、ｍｏｄｅ信号によってｅＰＬＸが選択された場合（以下、ｅＰＬＸモードと呼ぶ。）、セレクタ１１２から出力されるアドレスを選択して出力する。このとき、インクリメンタ１１１は動作しない。また、制御タイプデコーダ１１４は、ｅＰＬＸモードの場合に、Ｃｏｎｄ．信号を受付けず、セレクタ１１２の切換えのみを行なう。したがって、ｅＰＬＸモードの場合に、Ａｄｄ／Ｆｌａｇ制御部４１０は、Ｄａｔａ／Ａｄｄ信号によって示されるアドレスに応じて、ｅＰＬＸ部４２０内のＳＲＡＭに対するリード／ライト動作を行なうことになる。【００４９】
ｅＰＬＸ部４２０は、図２〜図６に示すｅＰＬＸ２００と同様の構成を有しており、１つのＳＲＡＭと１つのトランスファーゲート（ＴＧ）とで１つのスイッチ部（Ｓｗｉｔｃｈ  ｅｌｅｍｅｎｔ）２５０が構成され、４つのＳＲＡＭと１つのＭＵＸとで１つのＬＵＴ論理ユニット（Ｌｏｇｉｃ  ｅｌｅｍｅｎｔ）２２１が構成される。【００５０】
制御回路４２１は、セレクタ４１１から出力されるアドレスをロウデコーダ４２２およびカラムデコーダ４２３に出力すると共に、図示しない制御信号に応じてリード／ライト動作の制御を行なう。このとき、ロウデコーダ４２２およびカラムデコーダ４２３によって選択されたＳＲＡＭに対してリード／ライト動作が行なわれる。【００５１】
図９は、ＰＡ３（１００）のメモリ部１２０と、ｅＰＬＸ２００のＬＵＴ論理ユニット２２１およびスイッチ部２５０との共有化を模式的に示す図である。図１を用いて説明したように、ＰＡ３（１００）内のメモリ部１２０はデータフィールドおよびフラグフィールドを含み、ＳＲＡＭによって構成可能である。また、図２〜図６を用いて説明したように、ｅＰＬＸ２００内のＬＵＴ論理ユニット２２１およびスイッチ部２５０は、ＳＲＡＭとトランスファーゲート（ＴＧ）２５７とによって構成可能である。したがって、ＬＵＴ論理ユニット２２１内のＭＵＸ２２６およびスイッチ部２５０内のＴＧ２５７以外は共有可能であることが分かる。【００５２】
図１０は、複合モジュール４００をＰＡ３モードで使用するときの内部構成を示す図である。複合モジュール４００をＰＡ３モードで使用する場合は、上述のようにＡｄｄ／Ｆｌａｇ制御部４１０は図１に示すＡｄｄ／Ｆｌａｇ制御部１１０と同様の動作を行なう。また、ｅＰＬＸ部４２０内のＦＦ２３０、インターコネクト部２４０、ＴＧ２５７およびＭＵＸ２２６は使用されない。したがって、ｅＰＬＸ部４２０はＳＲＡＭとしての動作を行なうように制御される。【００５３】
図１１は、複合モジュール４００をｅＰＬＸモードで使用するときの内部構成を示す図である。複合モジュール４００をｅＰＬＸモードで使用する場合は、上述のようにＡｄｄ／Ｆｌａｇ制御部４１０はＤａｔａ／Ａｄｄ信号によって示されるアドレスに応じて、ｅＰＬＸ部４２０内のＳＲＡＭに対するリード／ライト動作制御を行なう。また、ｅＰＬＸ部４２０は全ての構成部分が使用されて、論理回路の再構成を行なう。【００５４】
図１２は、本発明の実施例１におけるプログラマブルデバイスの構成例を示す図である。このプログラマブルデバイス１は、基本的には図８に示す複合モジュール４００がマトリクス状に配置され、それぞれの複合モジュールをＰＡ３モードで使用するか、ｅＰＬＸモードで使用するかを外部から選択するものである。【００５５】
複合モジュール４００は、それぞれインターコネクト部（ＩＣＢ）５００を介して接続される。最上段の複合モジュール４００およびＩＣＢ５００は、たとえば１６ビットのデータバス（ＤＡＴＡ０）に接続されている。複合モジュール４００は、このデータバスを介してデータおよびアドレスが与えられる。【００５６】
最上段のＩＣＢ５００は、データバス（ＤＡＴＡ０）を介して右側の複合モジュール４００にデータを出力することが可能である。また、左側の複合モジュール４００からの出力信号を右側の複合モジュール４００に出力することも可能である。さらに、データバスのデータまたは右側の複合モジュール４００からの出力信号を下側のＩＣＢ５００に出力することも可能である。【００５７】
図１２において、ＰＡ３（１００）と記載されているのは複合モジュール４００がＰＡ３モードとして動作する部分であり、ｅＰＬＸ２００と記載されているのはｅＰＬＸモードとして動作する部分である。また、Ｓｐａｒｅと記載されているのは予備の複合モジュール４００である。【００５８】
最下段の右側にはＭＸ３００およびＩＣＥ６００が配置されている。ＭＸ３００については、複合モジュール４００内のＳＲＡＭをＭＸ３００内のデータレジスタ３０２として用いることは可能であるが、演算器３０１−１〜３０１−ｍを複合モジュール４００で構成すると冗長となる。したがって、複合モジュール４００をＭＸ３００内のデータレジスタ３０２として使用し、その他の演算器３０１−１〜３０１−ｍ、相互接続用スイッチ３０６などの構成部分についてはＩＣＥ６００として別途準備する構成としている。【００５９】
各複合モジュール４００への電力供給は、独立して制御可能となっている。また、各複合モジュール４００に供給されるクロックについても、独立して制御可能となっている。したがって、このような構成によって低消費電力化が必要となるパワーゲーティング、ＤＶＳ（動的電圧スケジューリング）、ＤＶＦＳ（動的電圧周波数スケジューリング）への対応が可能となる。また、上述の電圧制御を不揮発性メモリに記憶されるデータに基づいて行なうことにより、瞬時停電への対応が可能となるディペンダビリティ機能を持たせることもできる。【００６０】
図１３は、本発明の実施例１におけるプログラマブルデバイス１を構成する各部品の配置を示す図である。図１３に示すプログラマブルデバイス１において、Ａｄｄ／Ｆｌａｇ制御部４１０、制御回路４２１、ロウデコーダ４２２、カラムデコーダ４２３などの回路は固定回路としている。これらの回路をｅＰＬＸ２００などプログラム可能な回路で構成することも可能であるが、冗長となるため固定回路としている。【００６１】
図１４は、図１３に示すプログラマブルデバイス１にＰＡ３（１００）を実装する場合を示す図である。図１４においては、複合モジュールの一部をＰＡ３（１００）として構成した後、メモリ部１２０のフラグフィールド１２２およびデータフィールド１２３にコンフィグレーション情報を書き込むことによりプログラマブル順序回路として動作させる。【００６２】
図１５は、図１３に示すプログラマブルデバイス１にＰＡ３（１００）およびＭＸ３００を実装する場合を示す図である。図１５においては、複合モジュールの一部をＰＡ３（１００）として構成した後、メモリ部１２０のフラグフィールド１２２およびデータフィールド１２３にコンフィグレーション情報を書き込むことによりプログラマブル順序回路として動作させる。また、複合モジュールの一部をＭＸ３００のデータレジスタ３０２として使用し、別途演算器３０１−１〜３０１−ｍを配置する。【００６３】
図１６〜図１９は、本発明の実施例１におけるプログラマブルデバイスにおいて細粒度デバイスおよび粗粒度デバイスを実装する方法を説明するための図である。【００６４】
図１６は、最下層におけるレイアウトイメージを示す図である。半導体チップ上にＦＦ２３０、ＩＣＢ２４０および複合モジュール４００が配置される。そして、縦配線領域であるＩＣＢ２４０に外部入力ピンに接続される配線および外部出力ピンに接続される配線が設けられる。また、複合モジュール４００とＦＦ２３０との間の接続、複合モジュール４００とＩＣＢ２４０との間の接続なども行なわれる。【００６５】
図１７は、図１６に示すプログラマブルデバイス上にＰＡ３（１００）を実装する場合を示している。複合モジュール４００をそれぞれＰＡ３モードで動作させ、メモリ部１２０にコンフィグレーション情報を書き込むことによりソフトウェアで変更可能な仮想化ハードウェアを構築することができる。【００６６】
図１８は、図１６に示すプログラマブルデバイス上にＰＡ３（１００）、組合わせ回路２００およびＭＸ３００を実装する場合を示している。４つの複合モジュール４００のうち左上の複合モジュール４００および右下の複合モジュール４００をＰＡ３（１００）として動作させる。【００６７】
また、左下の複合モジュール４００をｅＰＬＸ２００として動作させ、ＬＵＴ論理ユニット２２１およびスイッチ部２５０内のＳＲＡＭにコンフィグレーション情報を書き込むことにより組み合わせ回路の実装を行なう。これは、ＨＤＬ（Hardware  Description  Language）によってプログラムすることができるため、ハードウェア実装のプログラマブルデバイスといえる。【００６８】
さらに、右上の複合モジュール４００をＭＸ３００のデータレジスタ３０２として動作させる。【００６９】
図１９は、図１８に示すプログラマブルデバイスをさらにソフトウェアにより仮想化ハードウェアとして実装する場合を示す図である。ＩＣＢ２３０によってＰＡ３（１００）と組合わせ回路２００との間の結線、ＰＡ３（１００）とＨＸ３００との間の結線などをソフトウェア的に行ない、仮想化ハードウェアを実装する。このようにしてソフトウェア的に結合、機能、動作を実装することにより、ＣＰＵに依存しない特定機能やアクセラレータを構築することができる。【００７０】
以上説明したように、本実施例におけるプログラマブルデバイスによれば、複合モジュール４００をマトリクス状に配置した構成とし、複合モジュール４００をＰＡ３モードで動作させるか、ｅＰＬＸモードで動作させるかを選択するようにしたので、粒度の異なるデバイスを任意に配置することができ、フレキシビリティを向上させたプログラマブルデバイスを提供することが可能となった。【００７１】
また、従来のプログラマブルデバイスの目的であるＱＴＡＴ（設計期間短縮）や製品のロングライフ化についても、さらに向上させることが可能となった。
（実施例２）
本発明の実施例２は、実施例１において説明したプログラマブルデバイスを搭載したシステムに関するものである。以下、主に個人情報、企業情報などの保護、システムセーフティチェック、などが必要なシステムについて説明するが、これに限定されるものではない。【００７２】
図２０は、本発明の実施例２におけるプログラマブルデバイスを搭載した情報処理装置の構成例を示す図である。この情報処理装置は、プログラマブルデバイス１と、ＣＰＵ２と、不揮発性メモリ３と、ＳＲＡＭ４と、Ｉ／Ｏ、周辺機能ＩＰ５と、通信用Ｔｘ／Ｒｘ６とを含む。なお、プログラマブルデバイス１は自己動的論理再構成機能を有しているため、以下、ＳＭＧＰ（Scalable  Memory  Grain  Programmable  device）と呼ぶことにする。【００７３】
不揮発性メモリ３は、ＣＰＵ２によって実行されるファームウェア以外に、ＳＭＧＰ１に設定するコンフィグレーション情報も記憶している。ＣＰＵ２は、不揮発性メモリ３に記憶されるファームウェアを実行して初期化を行なう際、不揮発性メモリ３に記憶されるコンフィグレーション情報をＳＭＧＰ１に書き込むことによりＳＭＧＰ１の再構成を行ない、後述するプロトコル適応制御、通信セキュア適応制御、ＳＭＧＰ自己診断、デバイス診断、システム修復などを実現する。また、不揮発性メモリ３は、通信用Ｔｘ／Ｒｘ６を介して受信したＳＭＧＰ１に設定する新たなコンフィグレーション情報を格納することも可能である。【００７４】
ＳＲＡＭ４は、ＣＰＵ２が不揮発性メモリ３に記憶されるファームウェアを実行する際にワークエリアなどとして使用される。Ｉ／Ｏ、周辺機能ＩＰ５は、シリアルＩＦ，ＵＳＢ（Universal  Serial  Bus）などのＩ／Ｏ制御回路やＤＭＡＣ（Dynamic  Memory  Access  Controller）、ＣＯＤＥＣ（COder-DECoder）などの周辺デバイスの機能を有している。通信用Ｔｘ／Ｒｘ（送受信トランシーバ）６は、ＬＡＮ（Local  Area  Network）やインターネットなどのネットワーク８に接続され、パケットの送受信などを行なう。【００７５】
図２０に示すように、ＳＭＧＰ１は、ｅＰＬＸ２００によって実現される組合わせ回路と、ＰＡ３（１００）やＭＸ３００によって実現されるプログラマブル入力回路、プログラマブルステートマシン、プログラマブル分岐出力などとによって構成される。【００７６】
近年のネットワークの発達に伴って、デジタルコンシューマ機器は情報ネットワークを介して相互に接続されてゆき、白物家電もまた安全情報ネットワーク化されてゆく。このような状況下において、セイフティ・セキュリティのために自己診断機能および自己修復機能が搭載されてゆき、これらの技術もますます発達してゆくことになる。さらには、これらの機器が宅内情報ネットワークを介して制御されるようになってゆく。【００７７】
図２１は、宅内／車両内機器ネットワークシステムの一例を示す図である。宅内／車両内機器ネットワークシステムは、家電／車載情報機器１ａと、通信インタフェース１ｂと、一般家電機器／制御機器１ｃとを含み、家電／車載情報機器１ａと通信インタフェース１ｂとが情報ネットワーク８を介して接続される。なお、図２１に示す各機器は図２０に示すような構成を有しているが、簡単のために各機器に搭載されるＳＭＧＰのみを記載している。【００７８】
また、通信インタフェース１ｂは、インターネットなどの広域ネットワーク９を介して安全監視センタ１０内に設置される監視サーバと、コンテンツ／課金サーバ１１内に設置される決済サーバとに接続される。【００７９】
家電／車載情報機器１ａに搭載されるＳＭＧＰは、ユーザ情報データベース、通信セキュア適応制御およびプロトコル適応制御の機能を有している。通信インタフェース１ｂに搭載されるＳＭＧＰは、通信セキュア適応制御およびプロトコル適応制御の機能を有している。また、一般家電機器／制御機器１ｃに搭載されるＳＭＧＰは、自己診断／修復の機能を有している。【００８０】
家電／車載情報機器１ａは、通信インタフェース１ｂを介して安全監視センタ１０内の監視サーバにユーザ情報および製品安全情報を送信すると、監視サーバから修復／バージョンアップコマンドとデータとが送られてくる。このとき、データの送受信の安全を確保するために、セキュアアルゴリズムの実行や暗号化を行なう必要がある。このような通信セキュア適応制御の機能が、家電／車載情報機器１ａや通信インタフェース１ｂ内のＳＭＧＰに適宜再構成される。【００８１】
また、通信プロトコル方式の変更や通信のロバストネス化が必要な場合には、プロトコル適応制御の機能が、家電／車載情報機器１ａや通信インタフェース１ｂ内のＳＭＧＰに適宜再構成される。【００８２】
また、一般家電機器／制御機器１ｃは、ＳＭＧＰを再構成することにより自己診断、自己修復の機能を実現する。【００８３】
図２２は、プロトコル適応制御および通信セキュア適応制御の機能をどのようにＳＭＧＰに再構成するかを説明するための図である。プロトコル適応制御および通信セキュア適応制御の機能をＳＭＧＰを用いて実現することの利点は、ソフトウェアと同じアルゴリズムに基づくセキュア機能であったとしても、デバイスの粒度をコンフィグレーションにより可変とすることができるためにより複雑度が増し、耐タンパ性をより向上することができることである。即ち、コンフィグレーション情報には、デバイスの粒度（粗粒度または細粒度のいずれか）を決定するための情報が含まれる。図２２（ａ）は、プロトコル適応制御の機能をＳＭＧＰにマッピングするところを示している。たとえば、家電／車載情報機器１ａと安全監視センタ１０との間でプロトコルＡで通信が行なわれており、プロトコルがプロトコルＢに変更されるとする。このとき、安全監視センタ１０内の監視サーバからプロトコル変更データが家電／車載情報機器１ａに送られてくる。【００８４】
家電／車載情報機器１ａはＳＭＧＰにこのプロトコル変更データをマッピングすることによりプロトコルＢに対応したプロトコル適応制御の機能を再構成する。これによって、家電／車載情報機器１ａは拡張したクライアントデータの送受信が可能となる。【００８５】
図２２（ｂ）は、通信セキュア適応制御の機能をＳＭＧＰにマッピングするところを示している。たとえば、家電／車載情報機器１ａが安全監視センタ１０内の監視サーバからセキュアアルゴリズムデータを受信すると、家電／車載情報機器１ａはＳＭＧＰにこのセキュアアルゴリズムデータをマッピングすることにより新たな暗号化方式に対応した通信セキュア適応制御の機能を再構成する。これによって、家電／車載情報機器１ａは新たな方式の暗号化／復号でデータを送受信することが可能となる。【００８６】
ＳＭＧＰ１で再構成する機能のコンフィグレーション情報を不揮発性メモリ３に新たに登録する場合、係るコンフィグレーション情報が悪意ある送信者から送信されたものでないことを証明することが必要である。ＳＭＧＰ１でセキュアなプロトコル適応制御および通信セキュア適用制御の機能を構成して通信を行ない、かかる通信で受信した新たなコンフィグレーション情報の送信者が認証された送信者であることを証明し、不揮発性メモリ３に受信したコンフィグレーション情報を登録することで、当初からのセキュアなプロトコル適応制御および通信セキュア適用制御の機能と共に、新たなコンフィグレーション情報により実現されるセキュアなプロトコル適応制御および通信セキュア適用制御の機能をも以後は利用することができるようになり、当初からのセキュアなプロトコル適応制御および通信セキュア適用制御の機能に代えることも可能である。【００８７】
図２３は、ＳＭＧＰ１がどのように自己診断および自己修復を行なうかを説明するための図である。なお、図２３は、ＳＭＧＰ１が図２０に示す情報処理装置に搭載されている場合を示しており、ＳＭＧＰ１以外にＣＰＵ２、ＲＯＭ３、ＲＡＭ４、Ｉ／Ｏ、周辺機能ＩＰ５などを含んでいる。【００８８】
図２３（ａ）は、ＳＭＧＰ１が自己診断する場合を示しており、まず、複合モジュールをすべてＰＡ３モードに設定する。ＰＡ３モードにおいては、ｅＰＬＸ部４２０がＳＲＡＭとして動作するため、従来のメモリＢＩＳＴ（Built  In  Self  Test）と同様の方法によってこれを自己診断することができる。【００８９】
次に、複合モジュールをすべてｅＰＬＸモードに設定し、ｅＰＬＸ部４２０内のＭＵＸ２２６やスイッチ部２５０の自己診断を行なう。このｅＰＬＸモードにおける自己診断方法の詳細な後述する。【００９０】
図２３（ｂ）は、ＳＭＧＰ１がどのようにデバイス診断を行なうかを説明するための図である。まず、ＳＭＧＰ１をＰＡ３モードで動作させ、たとえばＣＰＵ２のモジュール機能をＰＡ３にプログラミングする。そして、ＣＰＵ２とプログラミングしたＰＡ３との間でデータパターンの一致検出試験を実施することによりＣＰＵ２の診断を行なう。他の機能モジュールについても同様の方法により診断を行なうことができる。なお、機能モジュールをプログラミングするためのコンフィグレーション情報は不揮発性メモリ３などに予め記憶されているものとする。また、コンフィグレーション情報は、サーバから受信して不揮発性メモリ３に記憶する構成であってもよい。不良モジュールがある場合には、それをホストに通知する。【００９１】
図２３（ｃ）は、ＳＭＧＰ１がどのようにシステム修復を行なうかを説明するための図である。デバイス診断によって不良デバイスが発見され、ホストから自己修復の要求があると、ＳＭＧＰ１にその不良デバイスのコンフィグレーション情報を設定する。たとえば、周辺機能ＩＰ５が不良であった場合、ＳＭＧＰ１をｅＰＬＸモードで動作させて周辺機能に対応するコンフィグレーション情報をＳＭＧＰ１にマッピングする。【００９２】
ＳＭＧＰ１をＰＡ３およびｅＰＬＸのいずれのモードで動作させるかはホストからのシステム要求によって決定される。通常は、どのモジュールの機能に置き換えるかによってモードが決定される。また、どちらのモードでも置き換えが可能な場合には、通常ｅＰＬＸモードでＳＭＧＰ１を動作させてモジュール機能の置換を行なう。【００９３】
図２４は、ＳＭＧＰ１がどのように自己診断および自己修復を行なうかをさらに詳細に説明するための図である。図２４（ａ）は、ＳＭＧＰ１がＰＡ３モードで自己診断する場合を示しており、図２３（ａ）を用いて説明したものと同様である。【００９４】
図２４（ｂ）は、ＳＭＧＰ１がｅＰＬＸモードで自己診断する場合を示している。図２４（ｅ）に示すように、２つのＬＵＴマトリクスのそれぞれに回路Ａをプログラミングする。具体的には、図２４（ｆ）に示すように、自動配置配線ツールによってｅＰＬＸに各論理回路および配線を構成し、回路Ａをプログラミングする。【００９５】
そして、これら２つの回路Ａからの出力信号を、比較器をプログラミングしたさらに他のＬＵＴマトリクスに入力させる。比較器からの出力はＤＦＦで保持される。したがって、ＤＦＦの値を参照することによって、ｅＰＬＸ部４２０内のＭＵＸ２２６やスイッチ部２５０の自己診断を行なうことが可能となる。【００９６】
図２４（ｃ）は、ＳＭＧＰ１がどのようにデバイス診断を行なうかを説明するための図であり、図２３（ｂ）を用いて説明したものと同様である。【００９７】
図２４（ｄ）は、ＳＭＧＰ１がどのようにシステム修復を行なうかを説明するための図である。図２４（ｆ）および図２４（ｇ）に示すように、周辺機能の回路記述をコンフィグレーションデータとしてｅＰＬＸにプログラミングすることにより、ＳＭＧＰ１を周辺機能の代替として動作させる。【００９８】
なお、ＳＭＧＰを他のアプリケーションに適用することも可能である。たとえば、システムセキュリティに対する外的攻撃に対しては、ＳＭＧＰ１に攻撃への自己進化型機能を再構成することで、クラッキングや解析によりデータが不正に盗用されることを防止した進化的な耐タンパを実現する。【００９９】
また、マルチメディア、ネットワーク標準規格に対するトレーサビリティやロングライフ化を実現するために、ＳＭＧＰ１に標準規格のバージョン変更後の機能を再構成するようにすることも可能である。【０１００】
以上説明したように、本実施例における情報処理装置によれば、ＳＭＧＰ１に通信セキュア適応制御、プロトコル適応制御、自己診断／修復などの機能を再構成するようにしたので、システムの安全性の向上、個人情報の保護の強化、セキュリティ機能の強化、標準規格のバージョン変更への対応などを実現することが可能となった。【０１０１】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図１】
2009107309.tif 000003
【図２】
2009107309.tif 000004
【図３】
2009107309.tif 000005
【図４】
2009107309.tif 000006
【図５】
2009107309.tif 000007
【図６】
2009107309.tif 000008
【図７】
2009107309.tif 000009
【図８】
2009107309.tif 000010
【図９】
2009107309.tif 000011
【図１０】
2009107309.tif 000012
【図１１】
2009107309.tif 000013
【図１２】
2009107309.tif 000014
【図１３】
2009107309.tif 000015
【図１４】
2009107309.tif 000016
【図１５】
2009107309.tif 000017
【図１６】
2009107309.tif 000018
【図１７】
2009107309.tif 000019
【図１８】
2009107309.tif 000020
【図１９】
2009107309.tif 000021
【図２０】
2009107309.tif 000022
【図２１】
2009107309.tif 000023
【図２２】
2009107309.tif 000024
【図２３】
2009107309.tif 000025
【図２４】
2009107309.tif 000026
【国際調査報告】
2009107309.tif 000027
2009107309.tif 000028