(57)【要約】【課題】任意の機能セルを機密状態に保持しつつ、機密とされていない機能セルについて、部分的な再構成を可能とする。【解決手段】一つ以上の構成レジスタに対応して一つ配置される機密保護レジスタと、機密保護レジスタの値が機密の状態であるならば構成レジスタの更新を禁止し、構成レジスタへの入力を出力し、機密保護レジスタの値が非機密の状態であるならば構成レジスタを更新し構成レジスタの値を出力するように動作する構成レジスタ制御回路をそなえることで、任意の機能セルを機密に保持しつつ、非機密部の部分的再構成を可能とする。【選択図】図３
2008005020.tif 000002
【特許請求の範囲】
【請求項１】
状態入力により素子機能を制御可能な機能セルと、
前記機能セルの状態入力を制御する構成レジスタと、
一つ以上の前記構成レジスタに対応して一つ配置される機密保護レジスタと、
前記構成レジスタの動作を制御する構成レジスタ制御回路と、
前記構成レジスタ間をデータ転送可能なように接続する配線と、
を具備することを特徴とするプログラマブル論理回路。
【請求項２】
請求項１記載の構成レジスタ制御回路は、
前記機密保護レジスタの値が機密の状態であるならば前記構成レジスタの更新を禁止し、前記構成レジスタへの入力を出力し、前記機密保護レジスタの値が非機密の状態であるならば前記構成レジスタを更新し前記構成レジスタの値を出力するように動作することを特徴とする上記請求項１記載のプログラマブル論理回路。
【請求項３】
前記構成レジスタ制御回路において、前記構成レジスタからの出力と、前記構成レジスタへの入力とを選択する回路を含むことを特徴とする、請求項１または請求項２に記載のプログラマブル論理回路。
【請求項４】
暗号変換回路を具備することを特徴とする上記請求項１から請求項３のいずれかに記載のプログラマブル論理回路。
【請求項５】
暗号化された機密の構成データと、追加設計情報とを用いて、
機密の属性をもつ構成レジスタ以外の構成レジスタに対する追加設計情報を、
暗号化された情報として生成することを特徴とする、構成情報データの生成方法。
【請求項６】
請求項１から４のいずれかに記載のプログラマブル論理回路を組み込んだシステムＬＳＩ。
【請求項７】
請求項１から４のいずれかに記載のプログラマブル論理回路を搭載したマルチメディア装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡや再構成可能ロジック等のプログラムにより機能を変更可能なプログラマブル論理回路に関する技術、特に、機密の構成情報を含む再構成可能ロジック回路において、任意部を機密とし、部分的な再構成を可能とする技術に関するものである。
【背景技術】
【０００２】
ハードウェアをどのように機能させるかを指定する構成情報を内部に保持し、この構成情報の指示に従って、所望のハードウェアを実現する回路として、ＦＰＧＡや再構成可能ロジック等のプログラマブル論理回路が知られている。これらのプログラマブル論理回路は、外部より各構成素子に対して構成情報をロードすることにより、ハードウェアの論理機能や接続を変更することが可能である。
【０００３】
この構成情報のロード方法として、シフトレジスタの格納内容に基づき論理ブロックのスイッチの開閉を行う方法が開示されている（特開２００１−２９８３５７号公報）。
【０００４】
図１にその動作を示す。１００１は機能セル、１００２は構成レジスタ、１００３は制御信号線、１００４は機能セル間配線、１００５は構成情報の入力、１００６はシフト接続、１００７はクロックである。１００１の機能セルはそれぞれ対応する構成レジスタの情報により、論理構成を変更する。構成レジスタへの構成情報のロードは、１００５構成情報の入力より、シリアルに入力されることで行われる。構成レジスタ１００２は、１００７のクロック動作にあわせて、入力信号を取り込み、次の構成レジスタにデータを伝播させるシフト動作を行う。
【０００５】
たとえば、構成レジスタが１ビットであり、図１の構成レジスタ１００２ａには、１、構成レジスタ１００２ｂには０、構成レジスタ１００２ｃには０をロードする場合は、１００５に対して、クロック１００７の動作にあわせて、０、０、１の順番にデータを供給することにより、設定を行うことができる。なお、ここでの説明では、機能セルのみについて、機能変更が可能とする構成について説明を行ったが、機能セル間の接続も、構成レジスタの情報により機能を変更可能とする構成についても同様のことが言える。また、本説明では、機能セルを直列に接続した図を示しているが、この構成に限られるものではない。データはシリアルに転送するように記述したが、並列な転送と組み合わせても良い。
【０００６】
また、構成情報を秘匿可能なプログラマブル論理回路が必要である。すなわち、近年の微細化にともないプログラマブル論理回路の対応可能規模は大きくなってきており、その対応回路規模の増大に伴い、その構成情報の開発には長い時間と多くの工数が必要となってきている。このため、この構成情報を容易に盗まれないようにすることが必要である。また、回路の機密の必要性ゆえ、回路の構成やパラメータを秘匿することが必要となる回路構成情報も存在する。
【０００７】
既存の技術である「リードバックを防止する方法を備えたプログラマブルデバイス」（特表２００４−５１５１８０号公報）においては、秘密の構成情報を保護する方式として、暗号化を行った構成情報をロードし、復号し、その構成情報のリードバックを禁止する方法が開示されている。
【特許文献１】特開２００１−２９８３５７号公報（第８頁、図１）
【特許文献２】特表２００４−５１５１８０号公報（第２５頁、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
機密の構成情報を用いて実現される回路機能に、新たな利用者の回路機能を組み合わせることで、利用者の利便性を上げることができる。たとえば、基本的な処理部分は、機密の構成情報として構成情報の提供ベンダよりされたものを用い、その出力を用いる応用的な回路の構成情報は、プログラマブル論理回路の利用者が実現するような場合である。プログラマブル論理回路の利用者は、基本的な部分は提供された回路を用いることができるので、追加の応用部分に専念することが可能であり、開発工数を削減し、開発期間を短縮することができる。このような利用においては、機密の構成情報を用いて実現された回路が、なんらか理由により更新しなければならない場合もありうる。たとえば、新しい機能やアルゴリズムの追加である。もし搭載すべき回路規模が増大したならば、機密情報をロードする部分としている領域を拡大する必要が生じる。このため、機密とすべき領域は都度、変更可能であることが望ましい。
【０００９】
このように、機密の構成情報をロードしたプログラマブル論理回路において、任意の機能セルを機密状態に保持しつつ、同時に部分的な再構成を行う必要がある。
【００１０】
しかしながら、従来、構成情報のロード方式において、任意の機能セルを機密状態に保持しつつ、部分的に再構成を可能とする方法は開示されていない。
【００１１】
本発明は、前記従来の課題を解決するもので、機密の構成情報を含むプログラマブル論理回路において、任意の素子を機密部として、部分的に再構成可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
前記従来の課題を解決するために、本発明のプログラマブル論理回路では、状態入力により素子機能を制御可能な機能セルと、機能セルの状態入力を制御する構成レジスタと、一つ以上の構成レジスタに対応して一つ配置される機密保護レジスタと、機密保護レジスタの値が機密の状態であるならば、構成レジスタの更新および読み出しを禁止し、機密保護レジスタの値が非機密の状態であるならば、構成レジスタの更新および読み出しを許可する構成レジスタ制御回路と構成レジスタ間をデータシフト可能なように接続する配線を備えている。
【００１３】
本構成によれば、任意の機能セルを機密保護状態にすることが可能であり、機密保護レジスタにより状態レジスタが機密とされる場合には、構成レジスタの更新と読み出しを行わないので、機密情報を保護することが可能となると同時に、入力データはバイパスされるため後続の機密保護された構成レジスタ以外のセルの構成情報は書き換えることができる。
【発明の効果】
【００１４】
本発明の回路構成によれば、機密とすべきセルを事前に決めることなく、任意のセルを機密としつつ、機密が保護されていない機能セルの再構成が可能なプログラマブル論理回路を実現することができる。
【発明を実施するための最良の形態】
【００１５】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１６】
（実施の形態１）
図２は、本発明の実施の形態１におけるプログラマブル論理回路の基本構成を示すものである。図２において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００１７】
図２において、２００１は、構成レジスタ制御回路、２００２は機密保護レジスタ、２００３は構成レジスタ用シフト入力、２００４は、構成レジスタ用シフト出力、２００５は、構成レジスタ用クロック、２００６は機密保護レジスタ用シフト入力、２００７は機密保護レジスタ用シフト出力、２００８は、機密保護レジスタ用クロックである。
【００１８】
機密保護レジスタ２００２は、対応する構成レジスタ１００２の情報が機密保護されるべきか、否かの状態を保持するレジスタである。
【００１９】
構成レジスタ制御回路２００１は、機密保護レジスタ２００２の状態に基づき、機密保護レジスタ２００２が機密を保護する状態を示す場合は、構成レジスタ１００２に対し、クロック２００５の動作にあわせて値を保持し、構成レジスタ用シフト入力２００３の値を構成レジスタ用シフト出力２００４にそのまま出力するように指示を出する。また、機密保護レジスタ２００２が機密を保護しない状態を示す場合は、構成レジスタ１００２に対しクロック２００５の動作にあわせて値を更新すると同時に、更新された構成レジスタ１００２の値を構成レジスタ用シフト出力２００４に出力するように指示を出す。
【００２０】
この構成により、機密保護レジスタ２００２が機密を保護しない状態であれば、構成レジスタの値は入力に従い更新され、さらに、後段に対して、シフトレジスタ構成をとることができるので、後段に値を伝達することができる。機密保護レジスタ２００２が機密を保護する状態であれば、構成レジスタの値は読み出されず、更新もされず、かつ、構成レジスタ用シフト入力より入力されたシフト入力は構成レジスタ用シフト出力より出力される。よって、機密保護とされる構成レジスタは更新も読み出しもされることのない状態であり、かつ、後段に対しては本段を含まないシフトレジスタ構成となるので、後段につながる構成レジスタに値を伝達することができる。
【００２１】
なお、構成レジスタ用クロックは構成レジスタに直接入力してもよいし、構成レジスタ制御回路により制御された後に、構成レジスタに入力する構成してもよい。
【００２２】
次に具体的な動作を、図３を用いて説明する。図３において、図１〜図２と同じ構成要素については同じ符号を用い、説明を省略する。
【００２３】
３００１ａ、３００１ｂ、３００１ｃは、図２に示したプログラマブル論理回路の基本構成である。３００２は、構成レジスタへのシフト入力、３００３は、機密保護レジスタへのシフト入力である。３００４は、構成レジスタを接続する配線である。３００５は、機密保護レジスタ間を接続する配線である。
【００２４】
初期状態を説明する。３００１ａから３００１ｃの機密保護レジスタ２００２に、それぞれ、非保護、保護、非保護、の状態が入っており、構成レジスタ１００２には、保護される構成レジスタデータが入っているとする。これらの入力は、それぞれ、構成レジスタへのシフト入力３００２、および、機密保護レジスタへのシフト入力３００３より、シフトインすることで行うことができる。この状態では、中央の３００１ｂの構成レジスタが保護される状態にある。機密保護レジスタの値は任意に設定可能なので、任意の構成レジスタの機密を保護セルとすることが可能である。
【００２５】
次に更新される状態を説明する。更新データは構成レジスタへのシフト入力３００２より入力される。今回一番左の構成レジスタと、一番右の構成レジスタをそれぞれ、１、０の状態に更新する場合を説明する。シフト入力３００２に、構成レジスタ用クロック２００５の動作に同期させて０、１の順序で入力し、構成レジスタのチェーンにシフト入力を行うことで設定可能である。中央の構成レジスタは、機密保護状態にあるので、構成レジスタの更新は行われず、構成レジスタのシフト出力は３００１ａの出力がそのまま、出力される。このため、一番左の構成レジスタと一番右の構成レジスタが直接シフト接続されたのと同じ状態になるので、２つのクロック入力で、一番左と、一番右の構成レジスタを設定可能となる。このような動作により、機密とされていない構成レジスタについて、構成情報を設定することが可能である。
【００２６】
なお、機密保護レジスタは、構成レジスタ複数に対して、一つ、もしくは、複数を用意しても良い。機密保護レジスタの個数を抑制することができる。
【００２７】
（実施の形態２）
図４は、本発明の実施の形態２におけるプログラマブル論理回路の基本構成を示すものである。本実施の形態では、構成レジスタへの入力と構成レジスタからの出力を選択する回路が、構成レジスタの後ろに入った場合を示している。図４において、図１、図２と同じ構成要素については同じ符号を用い、説明を省略する。
【００２８】
４００１はセレクタ、４００２は、機密ロードモード入力を示す。
【００２９】
セレクタ４００１は、機密保護レジスタ２００２の制御に基づき、機密が保護される状態の場合は、構成レジスタ１００２への入力を選択出力し、保護されない状態の場合は、構成レジスタ１００２からの出力を出力する。機密ロードモード入力４００２には、機密情報をロードするモードが設定される。２つのモードをとり、機密ロードモードは、機密レジスタの値によらず、構成レジスタの更新が可能なモードである。通常ロードモードは、機密保護レジスタの値に従い、構成レジスタとセレクタが制御されるモードである。
【００３０】
機密ロードモードの場合、構成レジスタ制御回路２００１は、機密保護レジスタ２００２の値にかかわらず、構成レジスタ１００２を更新可能な状態とし、４００１のセレクタを、構成レジスタ１００２の出力を出力する状態に制御する。機密ロードモード入力４００２に通常ロードモードが設定されている場合は、機密保護レジスタの値に従い、動作を決定する。すなわち、機密保護レジスタが機密を保護する状態を示す場合は、構成レジスタ１００２に対しては値を保持する状態に、セレクタ４００１に対しては構成レジスタ用シフト入力２００３の値を構成レジスタ用シフト出力２００４にそのまま出力する状態に制御する。機密保護レジスタ２００２が機密を保護しない状態を示す場合は、構成レジスタ１００２に対しクロック２００５の動作にあわせて値を更新すると同時に、更新された構成レジスタ１００２の値を構成レジスタ用シフト出力２００４に出力するように指示を出す。
【００３１】
図５は、本構成を用いたプログラマブル論理回路の一実施の形態であり、図４の構成を３つ持つものである。各レジスタへのクロック入力は省略している。図５において、図１から図４と同じ構成要素については同じ符号を用い、説明を省略する。
【００３２】
５００１は、入力モードフラグ、５００２は、機密動作制御回路、５００３は構成情報入力、５００４は、暗号デコーダ、５００５は、機密ロードモード信号、５００６はセレクタである。入力モードフラグ５００１は、機密入力モードと、通常入力モードの状態をとり、構成情報入力５００３に入力されるデータが、暗号化されているか否かを指示する。機密動作制御回路５００２は、入力モードフラグ５００１と暗号デコーダ５００４の値に従い、機密ロードモード信号５００５を出力する。構成情報入力５００３には、構成レジスタに設定する情報、及び、暗号化された構成レジスタに設定する情報と暗号化された機密保護レジスタ情報が入力される。暗号デコーダ５００４は、構成情報入力５００３の内容をデコードする。５００５の機密ロードモード信号は、通常ロードモードと機密ロードモードの状態をとるものであり、構成レジスタ制御回路２００１とセレクタ５００６に対して、現在のロードモードを伝える。セレクタ５００６は、機密動作制御回路５００２の指示に基づき、機密ロードモードの場合は、暗号デコーダ５００４の出力値を、通常ロードモードの場合は、構成情報入力５００３の値を出力する。
【００３３】
以下に、図５を用いて、機密データの設定方法を説明する。
【００３４】
入力モードフラグ５００１が機密入力モードに設定されると、機密動作制御回路５００２は、暗号デコーダ５００４によりデコードされたデータを解読し、構成情報入力５００３に入力された暗号化されたデータが正当かどうかを判断する。正当な場合は、機密ロードモード信号５００５を機密ロードモードに設定する。
【００３５】
続けて、暗号化された機密保護レジスタの情報を、構成情報入力５００３より入力することで、それぞれの状態機密保護レジスタ２００２に対して、機密保護レジスタの情報をロードする。
【００３６】
機密ロードモード信号５００５が機密ロードモードに設定された状態では、セレクタ５００６は、暗号デコーダ５００４の値を選択し、さらに、構成レジスタ制御回路２００１は、構成レジスタ１００２の書き込み、および、読み出しを許可するので、構成情報入力５００３に入力された暗号化された構成情報は、暗号デコーダ５００４によりデコードされて、各構成レジスタに設定される。
【００３７】
機密保護レジスタ情報のロードが完了し、機密の構成情報のロードが完了すれば、機密ロードモード終了を示す暗号化されたデータを構成情報入力５００３に入力することで、機密ロードモード信号５００５は通常ロードモードに変わり、機密データのロードは完了する。
【００３８】
機密動作制御回路５００２は、正常な機密入力シーケンスの完了、すなわち、全機密保護レジスタに適切な値がロードされるシーケンスを用いて機密ビット入力が完了し、かつ、全構成レジスタに適切な値がロードされるシーケンスを用いて構成レジスタの設定が完了した場合に限り通常ロードモードに移ることが可能なようにすることで、機密構成情報を持った構成レジスタが、機密保護レジスタの値が設定されない状態で、通常ロードモードとなることを防ぐ。より具体的には、正常な機密入力シーケンスが完了しないままの状態では、入力モードフラグ５００１が通常入力モードをとるように設定されたとしても、機密ロードモード信号５００５は機密ロードモードを保持する動作を行う。もしくは、正常な機密入力シーケンスが完了しないままの状態で、入力モードフラグ５００１が通常入力モードをとるように設定された場合は、構成情報レジスタのリセットを行った後に、機密ロードモード信号５００５を通常ロードモードに設定する。正常な機密入力シーケンスの確認には、機密入力のとある部分で伝達される値と、パリティ値を比較しても良いし、その他の誤り検出手法を用いても良い。機密保護レジスタ情報のロードと、構成情報のロードの順序は任意である。
【００３９】
以上の方法により、任意の構成レジスタに対して、機密の構成データと、機密保護レジスタのデータを設定することができる。
【００４０】
次に、通常データの設定動作を、図５を用いて説明する。
【００４１】
機密ロードモード信号５００５に通常ロードモードが設定されると、セレクタ５００６は構成情報入力５００３を選択する。また、構成レジスタ制御回路２００１は、機密保護レジスタ２００２の状態に応じて、セレクタ４００１と構成レジスタ１００２を制御する。よって、構成情報入力５００３に入力されたデータは、そのまま構成レジスタ１００２とセレクタ４００１に入力される。
【００４２】
構成レジスタ制御回路２００１は、機密保護レジスタの値が保護されていない状態の値であれば構成レジスタの書き込みおよび読み出しを許可し、機密保護レジスタの値が保護されている状態の値であれば構成レジスタ１００２への書込みと読み出しを禁止して構成レジスタ１００２への入力をそのまま出力するので、機密保護されるべき構成レジスタに対応する機密保護レジスタを保護状態にすることにより、構成レジスタの値は保持され、読み出されることもない。また、シフト接続を伝播するデータは、機密保護されている場合は、セレクタ４００１を介してバイパスされるので、次につながる構成レジスタに対してデータを送ることができる。
【００４３】
また、シフト接続が外部に接続される場合は、通常ロードモードのときのみ出力を可能とすれば、機密とされる内部データは読み取られない。
【００４４】
以上により、任意の構成レジスタを機密保護とし、部分的な再構成を行うことが可能である。
【００４５】
なお、本制御例は、一例であり、異なる制御方式や、制御接続方法を用いてもよい。
【００４６】
（実施の形態３）
図６は、本発明の実施の形態３における追加のデータの生成方法を示す図である。
【００４７】
図６において、６００１は、追加設計情報、６００２は暗号化された機密の構成データ、６００３は、機密の構成情報をストアした構成レジスタの場所を特定する工程、６００４は、追加設計に対応する構成情報を生成する工程、６００５は、ロード可能な追加設計情報である。
【００４８】
通常ロードモードでロードされる構成情報データは、既にロードされた機密データの構成位置を避けて構成されなければならない。そこで暗号化された機密の構成データと追加の設計情報を用いて作成を行う。
【００４９】
まず、入力された暗号化された機密の構成データをデコードし、機密の構成情報をストアした構成レジスタの場所を特定する。次に、追加設計情報に基づき構成情報を生成し、最後に、追加設計の構成情報を出力する。
【００５０】
本方法によれば、機密構成とした構成レジスタ以外に対して、追加の構成情報を設定可能である。
【００５１】
なお、本実施の形態では、機能セルと構成レジスタを一つのセルのように図示しているが、独立に配置されてもよい。
【００５２】
また、本プログラマブル論理回路を、システムＬＳＩに組み込んでもよいし、そのシステムＬＳＩを無線端末や複数の媒体の録画録音や複数の通信手段を備えるマルチメディア装置に搭載し、無線端末通信やマルチメディア装置などの一機能を機密化された汎用回路とユーザ論理で搭載してもよい。機密領域とユーザ領域を任意に変更可能なため、回路規模に自由度をもった柔軟な更新が可能である。また同一マスクで異なった回路規模の機密領域を設定できるので、機密領域の大きさにあわせた複数のマスクを作成する必要がなく、低コストでＬＳＩを提供可能となる。
【産業上の利用可能性】
【００５３】
本発明にかかるプログラマブル論理回路は、機密の構成情報により実現される回路と、非機密の構成情報による回路を、任意の論理セルに設定可能なので、システムオンチップなどの複数の機能コアを搭載する各種の再構成可能なデバイスを含む半導体集積回路およびマルチメディア装置に利用することができる。
【図面の簡単な説明】
【００５４】
【図１】シフトレジスタの格納内容に基づき論理ブロックのスイッチの開閉を行う方法の図
【図２】本発明の実施の形態１におけるプログラマブル論理回路の基本構成の図
【図３】実施の形態１における具体的な動作を説明する図
【図４】本発明の実施の形態２におけるプログラマブル論理回路の基本構成の図
【図５】本構成を用いたプログラマブル論理回路の一実施例の図
【図６】本発明の実施の形態３における追加のデータの生成方法を示す図
【符号の説明】
【００５５】
１００１    機能セル
１００２    構成レジスタ
１００３    制御信号線
１００４    機能セル間配線
１００５    構成情報の入力
１００６    シフト接続
１００７    クロック
２００１    構成レジスタ制御回路
２００２    機密保護レジスタ
２００３    構成レジスタ用シフト入力
２００４    構成レジスタ用シフト出力
２００５    構成レジスタ用クロック
２００６    機密保護レジスタ用シフト入力
２００７    機密保護レジスタ用シフト出力
２００８    機密保護レジスタ用クロック
３００１    図２に示したプログラマブル論理回路の基本構成
３００２    構成レジスタへのシフト入力
３００３    機密保護レジスタへのシフト入力
３００４    構成レジスタを接続する配線
３００５    機密保護レジスタ間を接続する配線
４００１    セレクタ
４００２    機密ロードモード入力
５００１    入力モードフラグ
５００２    機密動作制御回路
５００３    構成情報入力
５００４    暗号デコーダ
５００５    機密ロードモード信号
５００６    セレクタ
６００１    追加設計情報
６００２    暗号化された機密の構成データ
６００３    機密の構成情報をストアした構成レジスタの場所を特定する工程
６００４    追加設計に対応する構成情報を生成する工程
６００５    ロード可能な追加設計情報
【図１】
2008005020.tif 000003
【図２】
2008005020.tif 000004
【図３】
2008005020.tif 000005
【図４】
2008005020.tif 000006
【図５】
2008005020.tif 000007
【図６】
2008005020.tif 000008