(57)【要約】【課題】従来のリコンフィギュアラブルコアを搭載したＬＳＩでは、機能切り替え可能というリコンフィギュアラブルコアの特長を活かしきれず、ハードブロックを用いる従来技術よりもコストパフォーマンスの点で劣っていた。【解決手段】リコンフィギュアラブルコアの機能切り替え可能という特長を活かすためには、ＬＳＩ外部からＬＳＩ内部へのコンフィギュレーションデータの読み込みが、適切なタイミングで、高速に実現される必要がある。  コンフィギュレーションデータを格納したＬＳＩ外部のメモリとＬＳＩ内部のコンフィギュレーションデータ格納メモリ間に専用バスを設けること、あるいはＬＳＩ内部のコンフィギュレーションデータ転送に関わるブロックに対し、他ブロックとは独立のクロックドメイン、独立の電源ドメインを設定することにより上記課題を解決した。【選択図】図１
2007251329.tif 000002
【特許請求の範囲】
【請求項１】
ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記ＬＳＩ外部とのデータ転送のための少なくとも１つのＩＯ端子と、
前記ＩＯ端子と前記コンフィギュレーションデータ格納メモリを接続する、コンフィギュレーションデータ転送のための専用データ転送バスと
を備えたことを特徴とするＬＳＩ。
【請求項２】
前記専用データ転送バスは、前記コンフィギュレーションデータのみを転送する
ことを特徴とする請求項１記載のＬＳＩ。
【請求項３】
前記専用データ転送バスに信号を増幅するためのバッファが挿入されている
ことを特徴とする請求項１記載のＬＳＩ。
【請求項４】
前記コンフィギュレーションデータ格納メモリは少なくとも２つの同時アクセスが可能なマルチアクセスポートメモリで構成される
ことを特徴とする請求項１記載のＬＳＩ。
【請求項５】
ＣＰＵと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
ＬＳＩ外部とのデータ転送を行うインタフェース回路と
前記ＣＰＵ、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備えるＬＳＩであって、
前記ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと
前記汎用バスと、前記汎用バスに接続される前記ＣＰＵと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路にクロックを供給する第１のクロックラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、前記第１のクロックラインとは異なる第２のクロックラインと
をさらに備えたことを特徴とするＬＳＩ。
【請求項６】
前記第１のクロックラインは、２つ以上の独立したクロックラインからなるクロックライン群である
ことを特徴とする請求項５記載のＬＳＩ。
【請求項７】
前記第１のクロックラインと、前記第２のクロックラインの周波数は独立に設定可能である
ことを特徴とする請求項５記載のＬＳＩ。
【請求項８】
前記第２のクロックラインには、前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックのみが接続される
ことを特徴とする請求項５記載のＬＳＩ。
【請求項９】
第１のＰＬＬによって前記第１のクロックラインにクロックが供給され、
前記第１のＰＬＬとは異なる第２のＰＬＬによって前記第２のクロックラインにクロックが供給される
ことを特徴とする請求項７記載のＬＳＩ。
【請求項１０】
ＣＰＵと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
ＬＳＩ外部とのデータ転送を行うインタフェース回路と
前記ＣＰＵ、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備えるＬＳＩであって、
前記ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納されたコンフィギュレーションデータに応じて機能を変更する前記リコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記汎用バスと、前記汎用バスに接続される前記ＣＰＵと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路に電源を供給する第１の電源ラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、前記第１の電源ラインとは異なる第２の電源ラインと
をさらに備えたことを特徴とするＬＳＩ。
【請求項１１】
前記リコンフィギュアラブルコアには前記第２の電源ラインから電源を供給する
ことを特徴とする請求項１０記載のＬＳＩ。
【請求項１２】
前記第１の電源ラインと前記第２の電源ラインへの電源の供給／停止は、それぞれ独立に設定可能である
ことを特徴とした請求項１０記載のＬＳＩ。
【請求項１３】
前記第１の電源ラインと前記第２の電源ラインはそれぞれ独立にスイッチを持つ
ことを特徴とした請求項１０記載のＬＳＩ。
【請求項１４】
ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記コンフィギュレーションデータ格納メモリとは異なるメモリであり、前記ＬＳＩ内部のＣＰＵあるいは前記リコンフィギュアラブルコアがアプリケーション用データ格納のために使用するアプリケーションデータ格納メモリと、
前記リコンフィギュアラブルコアの接続先を、前記コンフィギュレーションデータ格納メモリ、または前記アプリケーション用データ格納メモリのいずれかに切り替えるための接続切り替え手段と
を備えたことを特徴とするＬＳＩ。
【請求項１５】
ＣＰＵと、
データを格納するためのデータメモリと、
ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記ＣＰＵ、前記データメモリ、前記コンフィギュレーションデータ格納メモリを含む複数の回路ブロックが接続され、データが転送される汎用バスと、
前記汎用バスに接続された前記複数の回路ブロックのいずれかが前記汎用バスを介してデータを転送している時に、前記ＬＳＩ外部から前記コンフィギュレーションデータ格納メモリへの前記コンフィギュレーションデータの転送要求が生じると、コンフィギュレーションデータ転送以外のデータ転送を一時停止し、前記コンフィギュレーションデータの転送を優先して行うように前記汎用バスの制御を行うバス制御部と
をさらに備えたことを特徴とするＬＳＩ。
【請求項１６】
前記コンフィギュレーションデータ格納メモリは、少なくとも２つの同時アクセスが可能なマルチアクセスポートメモリで構成される
ことを特徴とする請求項１４記載のＬＳＩ。
【請求項１７】
請求項１から１５のいずれか記載のＬＳＩと、
前記ＬＳＩ内部に転送するデータを格納するための外部メモリと
を備えたＬＳＩシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブルロジックデバイス、より詳細には、リコンフィギュアラブルなコアを搭載したＬＳＩに関するものである。
【背景技術】
【０００２】
ＬＳＩの高集積化が進み、システム全体が１チップに搭載されるＳＯＣ（システム・オン・チップ）が現実のものとなってきている。一般的にＳＯＣはＣＰＵやＤＳＰなどのプログラマブルデバイスとそれらを接続するデータバス、データメモリなどで汎用性を、ハードブロックで高パフォーマンスを実現している。ＳＯＣの開発には莫大なコストがかかるため、１つのＳＯＣを多くのアプリケーションに適用させることは必須である。しかし、ハードブロックは特定のアプリケーションをターゲットとして設計されるため、結果的にＳＯＣは汎用性のあるデバイスを搭載しているものの、ある分野でしか使用できないＬＳＩになっている。
【０００３】
上記の問題点について、パフォーマンスと汎用性のバランスを取りながら、ハードブロックをより汎用的なものにすることが考えられてきた。その一つとして、ＦＰＧＡに代表されるリコンフィギュアラブルコアをハードブロックの代わりに搭載する方法が挙げられる。リコンフィギュアラブルコアのパフォーマンスはハードブロックにおよばないものの、ＤＳＰなどよりも一桁以上は高性能である。更に、従来のリコンフィギュアラブルコアにおいて静的に行われていた機能切り替えを動的に実行することが実現されつつあり、それによって汎用性が増すと考えられる。また、動的な機能切り替えが可能なリコンフィギュアラブルコアは、静的な機能切り替えを行うものよりもその面積を相対的に小さくできる。
【０００４】
ただし、ハードブロックの代わりにリコンフィギュアラブルコアを用いる場合、両者の面積の差異を考慮する必要がある。リコンフィギュアラブルコアはハードブロックよりも一桁以上大きな面積を有するため、従来のＳＯＣに十分に対抗しうるＬＳＩにするためには、面積あたりのパフォーマンスを向上する必要がある。すなわち、リコンフィギュアラブルコアを搭載したＬＳＩでは、１つのリコンフィギュアラブルコアの機能を動的に次々と切り替え、複数個のハードブロックを搭載しているのと同等の機能を実現することが望まれる。
【０００５】
リコンフィギュアラブルコアの機能を動的に変更する技術は既に確立されているため、今後はリコンフィギュアラブルコアの機能をいかにすばやく切り替えるか、ひいては切り替え回数を多くするかが重要な課題となる。
【０００６】
リコンフィギュアラブルコアの機能を変更するにはコンフィギュレーションデータといういわばプログラムをリコンフィギュアラブルコアにダウンロードする必要がある。このコンフィギュレーションデータがＬＳＩ内部にあれば、高速に機能を切り替えることが可能になる。一方、コンフィギュレーションデータがＬＳＩ外部にあると、ＬＳＩ外部からのデータ転送のために、機能切り替えの時間は長大になってしまう。
【０００７】
リコンフィギュアラブルコアの機能切り替えを高速化する従来の技術としては、機能切り替えのためのコンフィギュレーションデータをＬＳＩ内部の大型メモリ内に蓄えておき、並列にコンフィギュレーションすることで素早く切り替えるものがある（例えば、特許文献１参照）。
【特許文献１】特開平１０−２８５０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１にあるように、ハードブロックと比較した際にリコンフィギュアラブルコアが抱える面積のデメリットを克服するだけの多数個のコンフィギュレーションデータをＬＳＩ内部に常に持つことは、逆に面積デメリットを引き起こしてしまう可能性がある。また、リコンフィギュアラブルコアの特長を活かすためには、コンフィギュレーションデータ全てをＬＳＩ内部に持つことによってコンフィギュレーション内容が固定されてしまうことは大きな問題である。一方、コンフィギュレーションデータを格納するメモリを単純にＬＳＩ外部に置くことは、コンフィギュレーションデータ転送にかかる時間を増大させ、リコンフィギュアラブルコアの高速な機能切り替えを困難にする。
【０００９】
以上を鑑みて、本発明が目的とするところは、ＬＳＩ内部のメモリに格納するコンフィギュレーションデータは最小限にしつつ、高速なコンフィギュレーションデータの転送により、リコンフィギュアラブルコアの機能切り替えを高速化することである。
【課題を解決するための手段】
【００１０】
第１のＬＳＩは、
前記ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記ＬＳＩ外部とのデータ転送のための少なくとも１つのＩＯ端子と、
前記ＩＯ端子と前記コンフィギュレーションデータ格納メモリを接続する、コンフィギュレーションデータ転送のための専用データ転送バスと
を備える。
【００１１】
第２のＬＳＩは、
ＣＰＵと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
ＬＳＩ外部とのデータ転送を行うインタフェース回路と、
前記ＣＰＵ、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備え、
前記ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記汎用バスと、前記汎用バスに接続される前記ＣＰＵと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路にクロックを供給する第１のクロックラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、第１のクロックラインとは異なる第２のクロックラインと
をさらに備える。
【００１２】
第３のＬＳＩは、
ＣＰＵと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
ＬＳＩ外部とのデータ転送を行うインタフェース回路と
前記ＣＰＵ、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備え、
前記ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納されたコンフィギュレーションデータに応じて機能を変更する前記リコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記汎用バスと、前記汎用バスに接続される前記ＣＰＵと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路に電源を供給する第１の電源ラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、第１の電源ラインとは異なる第２の電源ラインと
をさらに備える。
【００１３】
第４のＬＳＩは、
ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記コンフィギュレーションデータ格納メモリとは異なるメモリであり、前記ＬＳＩ内部のＣＰＵあるいは前記リコンフィギュアラブルコアがアプリケーション用データ格納のために使用するアプリケーションデータ格納メモリと、
前記リコンフィギュアラブルコアの接続先を、前記コンフィギュレーションデータ格納メモリ、または前記アプリケーション用データ格納メモリのいずれかに切り替えるための接続切り替え手段と
を備える。
【００１４】
第５のＬＳＩは、
ＣＰＵと、
データを格納するためのデータメモリと、
ＬＳＩ外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記ＣＰＵ、前記データメモリ、前記コンフィギュレーションデータ格納メモリを含む複数の回路ブロックが接続され、データが転送される汎用バスと、
前記汎用バスに接続された前記複数の回路ブロックのいずれかが前記汎用バスを介してデータを転送している時に、前記ＬＳＩ外部から前記コンフィギュレーションデータ格納メモリへの前記コンフィギュレーションデータの転送要求が生じると、コンフィギュレーションデータ転送以外のデータ転送を一時停止し、前記コンフィギュレーションデータの転送を優先して行うように前記汎用バスの制御を行うバス制御部と
をさらに備える。
【発明の効果】
【００１５】
以下で各発明について生み出される効果について述べる。
【００１６】
第１のＬＳＩでは、
専用のコンフィギュレーションデータ転送バスを持つことで、ＬＳＩ内のコンフィギュレーションデータ転送に関わらないデバイス間のデータ転送の影響を受けることなく、より高速に、コンフィギュレーションデータ格納メモリにコンフィギュレーションデータを転送できるという効果が生まれる。
【００１７】
第２のＬＳＩでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するためのデバイス群に接続されるクロックラインは、その他のブロックとクロックラインが異なることから、ＬＳＩの他のブロックの動作(低速、停止)の影響を受けることなく常に適切な速度、タイミングでのコンフィギュレーションデータ転送及び機能切り替えが可能になるという効果が生まれる。
【００１８】
第３のＬＳＩでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するためのデバイス群に、その他のブロックとは別系統の電源供給を行うことで、他ブロックの電源が遮断されているときでもコンフィギュレーションデータをコンフィギュレーションデータ格納メモリに転送することができ、ＬＳＩ起動後に即、リコンフィギュアラブルコアへのコンフィギュレーションデータのダウンロードを行なえるために高速な機能切り替えが可能になるという効果が生まれる。
【００１９】
第４のＬＳＩでは、
ＬＳＩ内部の汎用データメモリの空き容量をコンフィギュレーションデータ格納のために使用することが可能になり、コンフィギュレーションデータ格納専用のメモリを増やすことなく、より多くのコンフィギュレーションデータをＬＳＩ内部に保持することが可能になる。ＬＳＩ内部に保持できるコンフィギュレーションデータの容量を多くすることで、ＬＳＩ外部とのやりとりを少なくし、より高速な機能切り替えが可能になるという効果が生まれる。
【００２０】
第５のＬＳＩでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するための専用データ転送バスを持たない場合においても、汎用バスを介してコンフィギュレーションデータ格納メモリまでコンフィギュレーションデータを転送することが可能になる。更に、コンフィギュレーションデータ転送の要求があった際には、バス制御部によってコンフィギュレーションデータ転送以外のデータ転送を一時的に停止し、コンフィギュレーションデータ転送のバス使用優先度を最大にすることで、汎用バスを仮想的にコンフィギュレーションデータ転送のための専用データ転送バスとして使用することができ、専用データ転送バスを備える場合と同様の、高速なコンフィギュレーションデータ転送を実現できるという効果が生まれる。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の実施例の一形態を説明する。
【００２２】
まず、本発明の主要な構成要素であるリコンフィギュアラブルコアとコンフィギュレーションデータについてその定義を述べる。リコンフィギュアラブルコアとは、コアを構成する複数の論理エレメントの接続を切り替えることにより、適宜その機能を変更することが可能な機能ブロックである。コンフィギュレーションデータとは、リコンフィギュアラブルコアの論理エレメントの接続関係を指定し、機能を切り替えるためのプログラムやデータ等を指す。
【００２３】
（１）第１の実施形態
リコンフィギュアラブルコアを搭載したＬＳＩの発明について、図１、２に照らし合わせて第１の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。
【００２４】
（構成要素の説明）
本実施の形態におけるＬＳＩ１００の構成について以下に説明する。
【００２５】
図１はＬＳＩ１００全体の構成を表した図である。
【００２６】
外部メモリ４１はＬＳＩ１００の外部にあり、ＬＳＩ１００を動作させるためのプログラムと、少なくとも１つのコンフィギュレーションデータを格納している。コンフィギュレーションデータ格納メモリ１はＬＳＩ１００の内部にあり、外部メモリ４１からＩＯ端子２８、コンフィギュレーションデータ転送のみに用いられる専用データ転送バス２１を介して転送されたコンフィギュレーションデータを格納する。
【００２７】
本発明は、上記の外部メモリ４１とコンフィギュレーションデータ格納メモリ１との間に専用データ転送バス２１を設けるという点において従来技術と大きく異なっている。専用データ転送バス２１を設けることにより、ＣＰＵ９やデータメモリ１０、専用ハードウェア１１間のデータ転送など、ＬＳＩ１００の内部の他の動作の影響を受けることなくコンフィギュレーションデータの転送が可能になる。
【００２８】
コンフィギュレーション制御部８は、コンフィギュレーションデータ格納メモリ１からリコンフィギュアラブルコア２へのコンフィギュレーションデータの転送・格納を制御する。コンフィギュレーション制御部８からは、コンフィギュレーションデータ格納メモリ１にリードアクセスをかける際に必要な制御信号３６、リコンフィギュアラブルコア２内部の記憶手段にコンフィギュレーションデータを格納する際に必要な制御信号３７が、ＣＰＵ９からの命令に基づいて適宜出力される。
【００２９】
リコンフィギュアラブルコア２は、コンフィギュレーションデータ格納メモリ１から専用データ転送バス２１を介してダウンロードされたコンフィギュレーションデータによって内部の論理エレメントの接続を繋ぎ替え、その機能を変更する。
【００３０】
メモリ制御部３は、ＬＳＩ１００の外部からデータを取り込む際に、外部メモリ４１とコンフィギュレーションデータ格納メモリ１の動作を制御する。具体的には、メモリ制御部３はＣＰＵ９からの命令に基づき、コンフィギュレーションデータ格納メモリ１に対してチップセレクト信号、リード信号、アドレス信号などの制御信号３５を、外部メモリ４１に対してチップセレクト信号、リード信号、アドレス信号などの制御信号３４を出力する。制御信号３５はＬＳＩ１００の内部のバスを通じてコンフィギュレーションデータ格納メモリ１に入力される。制御信号３４はＬＳＩ１００の内部のバスを通ったのち、ＩＯ端子２９を介して外部メモリ４１に入力される。
【００３１】
図２はメモリ制御部３の詳細な構成を表した図である。
【００３２】
メモリ制御部３はレジスタ７ａ、７ｂを有し、レジスタ７ａには外部メモリ４１の所定の領域からコンフィギュレーションデータを取り出すための情報、レジスタ７ｂにはコンフィギュレーションデータ格納メモリ１の所定の領域にコンフィギュレーションデータを格納するための情報が、それぞれＣＰＵ９からの命令により適宜設定される。
【００３３】
本実施の形態において、レジスタ７ａに設定される情報は、外部メモリ４１の所定の領域にアクセスするための開始アドレスと、コンフィギュレーションデータの転送量の値である。レジスタ７ｂに設定される情報は、コンフィギュレーションデータ格納メモリ１の所定の領域にアクセスするための開始アドレスと、コンフィギュレーションデータの転送量の値である。
【００３４】
信号出力部４はメモリ制御部３の内部にあり、レジスタ７ａ又は７ｂに設定された開始アドレスを基準に、アドレス値を１ずつインクリメントして外部メモリ４１又はコンフィギュレーションデータ格納メモリ１に対して出力する。また、アドレスを出力する度にカウンタ５の値を１ずつインクリメントする。比較器６ではレジスタ７ａ又は７ｂに設定されたコンフィギュレーションデータの転送量の値と、カウンタ５の値を一致比較する。両者の値が一致するまで、信号出力部４はアドレス値のインクリメントと出力、カウンタ５の値のインクリメントを続ける。
【００３５】
図１に戻って説明を続ける。
【００３６】
汎用バス２２はＬＳＩ１００の内部にあり、インタフェース回路１３とＩＯ端子３０、バス４３を介して外部メモリ４１と接続される。ＬＳＩ１００の内部には汎用バス２２を介して他のデバイスと接続される複数のデバイスが設けられている。
【００３７】
ＣＰＵ９は、外部メモリ４１からＩＯ端子３０とインタフェース回路１３、汎用バス２２を介して読み出したプログラムを実行することによりＬＳＩ１００の内部を制御する。すなわち、ＬＳＩ１００の内部の他のデバイスに動作の命令を与える。例えば、上記メモリ制御部３のレジスタ７ａ、７ｂに対する値の設定などが行われる。
【００３８】
専用ハードウェア１１は、汎用バス２２を介してＣＰＵ９からの命令を受け、他のデバイスに対する処理を実行する。例えば、データメモリ１０から、専用ハードウェア１１とデータメモリ１０間の専用バスを介してデータを読み込み、加工を行う。加工したデータは専用ハードウェア１１からデータメモリ１０に書き戻される。ＣＰＵ９は定められた処理が終了したことを検知し、データメモリ１０に対して加工済みデータをＬＳＩ１００の外部に出力するよう命令する。
【００３９】
（動作の説明）
以上のように構成されたＬＳＩ１００において、暗号化されたＪＰＥＧ方式の画像再生を例に動作を説明する。動作の概略は、リコンフィギュアラブルコア２がＪＰＥＧの画像データに施された暗号の復号処理に使用されている状態において、次に行われる画像データの伸張処理のためのコンフィギュレーションデータを、外部メモリ４１から専用データ転送バス２１を通じてコンフィギュレーションデータ格納メモリ１に格納しておき、さらにリコンフィギュアラブルコア２の機能を復号処理から伸張処理に切り替えたいタイミングで、伸張処理のコンフィギュレーションデータをリコンフィギュアラブルコア２に格納するというものである。詳細を以下に記す。
【００４０】
＜１＞ＬＳＩ１００の内部ではＣＰＵ９、データメモリ１０、専用ハードウェア１１、さらにリコンフィギュアラブルコア２などが連携してアプリケーションが実行される。本実施の形態ではリコンフィギュアラブルコアで暗号の復号処理が行われている。
【００４１】
＜２＞外部メモリ４１に格納されたプログラムによってＣＰＵ９は、圧縮された画像データの伸張処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ１に取り込むように指示される。
【００４２】
＜３＞ＣＰＵ９はプログラムに基づいて、汎用バス２２を通じてメモリ制御部３に対し、外部メモリ４１とコンフィギュレーションデータ格納メモリ１を制御するための命令を送る。レジスタ７ａ、７ｂには、コンフィギュレーションデータを読み出しまたは書き込みする際のメモリの開始アドレスと、コンフィギュレーションデータの転送量が設定される。メモリ制御部３内には、外部メモリ４１にアクセスして伸張処理に関するコンフィギュレーションデータを読み出すために必要な情報として、チップセレクト信号、リード信号、アドレス信号などが準備される。
【００４３】
＜４＞レジスタ７ａ、７ｂに設定された情報に基づいて、メモリ制御部３は制御信号３４を、ＩＯ端子２９を経由して外部メモリ４１へ転送する。この際、外部メモリ４１の指定された領域からコンフィギュレーションデータを読み出すため、レジスタ７ｂに設定された開始アドレスが制御信号３４のアドレス信号として転送される。
【００４４】
＜５＞外部メモリ４１に転送されたアドレス信号によって、開始アドレスに対応するコンフィギュレーションデータが外部メモリ４１から読み出される。アドレス信号が外部メモリ４１に転送される毎に、メモリ制御部３内のカウンタ５はインクリメントされ、比較器６によってレジスタ７ａに設定された転送量の値と一致比較される。一致しなかった場合は、信号出力部４によりレジスタ７ａのアドレス値もインクリメントされ、次に読み出すデータのアドレスが設定される。カウンタ５の値が終了条件（ここではレジスタ７ａに設定された転送量と一致すること）を満たすまでアドレス値とカウンタ５の値は繰り返しインクリメントされ、その間外部メモリ４１からはアドレス値に対応するコンフィギュレーションデータが順次読み出される。読み出された伸張処理のコンフィギュレーションデータは、ＩＯ端子２８を経てＬＳＩ１００の内部に取り込まれる。
【００４５】
＜６＞メモリ制御部３はコンフィギュレーションデータ格納メモリ１に対し、外部メモリ４１から転送された専用データ転送バス２１上のコンフィギュレーションデータを取り込むよう、制御信号３５を通じて知らしめる。この際、コンフィギュレーションデータ格納メモリ１の指定された領域にコンフィギュレーションデータを格納するため、レジスタ７ｂに設定された開始アドレスが制御信号３５のアドレス信号として転送される。
【００４６】
＜７＞制御信号３５により、コンフィギュレーションデータは専用データ転送バス２１を介してコンフィギュレーションデータ格納メモリ１に格納される。この際＜５＞と同様にカウンタ５、比較器６等を用いた仕組みで、コンフィギュレーションデータ格納メモリ１内の指定された領域に、終了条件（カウンタ５とレジスタ７ｂの転送量の値が一致すること）を満たすまで伸張処理のコンフィギュレーションデータが順次格納されていく。
【００４７】
以上＜３＞〜＜７＞のように、専用データ転送バス２１を介したコンフィギュレーションデータ転送においては、外部メモリ４１からＩＯ端子２８、専用データ転送バス２１を介したコンフィギュレーションデータ格納メモリ１までの経路が、コンフィギュレーションデータ転送のためだけに確保される。そのため、復号処理中のリコンフィギュアラブルコア２を含むＬＳＩ１００の内部の動作には全く影響を受けず、常に計算どおりの時間で転送が完了する。
【００４８】
続いて、コンフィギュレーションデータ格納メモリ１に格納された伸張処理のコンフィギュレーションデータがリコンフィギュアラブルコア２に格納される動作について記す。
【００４９】
＜８＞リコンフィギュアラブルコア２の機能を復号処理から伸張処理に切り替えるタイミングで、ＣＰＵ９はコンフィギュレーション制御部８を起動させる。
【００５０】
＜９＞コンフィギュレーション制御部８から、コンフィギュレーションデータ格納メモリ１に対して制御信号３６が、リコンフィギュアラブルコア２に対して制御信号３７が送信される。これらの制御信号に基づき、コンフィギュレーションデータ格納メモリ１に格納された伸張処理のコンフィギュレーションデータは、バス２３を介してリコンフィギュアラブルコア２にダウンロードされる。ここでのコンフィギュレーションデータ転送はＬＳＩ１００の内部におけるデバイス間のデータ転送であり、ＬＳＩ１００の外部から逐次コンフィギュレーションデータを転送するのに比べて高速である。したがって、復号処理から伸張処理への高速な機能切り替えが可能である。
【００５１】
＜１０＞以上のように伸張処理に関するコンフィギュレーションデータをダウンロードしたリコンフィギュアラブルコア２は、ＣＰＵ９からの信号に従って伸張処理を開始する。
【００５２】
以上＜１＞〜＜１０＞により、リコンフィギュアラブルコア２で行われている復号処理などＬＳＩ１００の内部の他のデバイスの動作の影響を受けずに、次に実行される伸張処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ１に転送・格納できる。そのため、リコンフィギュアラブルコア２の機能切り替えに際して、逐一ＬＳＩ１００外部からコンフィギュレーションデータを読み込むよりもはるかに高速なダウンロードが実行でき、スムーズな画像再生が可能となる。
【００５３】
（補足）
本実施の形態では、専用データ転送バス２１上には何も存在しないとしたが、信号を増幅するためのバッファ、リピータなどの長配線対応手段を配置してもよい。
【００５４】
リコンフィギュアラブルコア２を、動的に機能変更が可能なダイナミックリコンフィギュアラブルコアとすれば、コンフィギュレーションデータ格納メモリ１からリコンフィギュアラブルコア２への転送をさらに高速（ＦＰＧＡよりも３桁高速）に行うことが可能である。
【００５５】
コンフィギュレーションデータ格納メモリ１をデュアルポートメモリとすれば、外部メモリ４１からコンフィギュレーションデータ格納メモリ１へのコンフィギュレーションデータの書き込みと、コンフィギュレーションデータ格納メモリ１からリコンフィギュアラブルコア２へのコンフィギュレーションデータの読み出しを同時に実行することが可能であるため、読み出し／書き込みのタイミング制約がなくなり、さらにトータルで高速なリコンフィギュアラブルコア２の機能切り替えが可能になる。
【００５６】
コンフィギュレーションデータを読み出し／書き込みするための情報として、本実施の形態では開始アドレスとコンフィギュレーションデータの転送量を挙げたが、その他の情報でも構わない。例えば開始アドレスと終了アドレスという組み合わせでもよい。
【００５７】
本実施の形態においては外部メモリ４１を、コンフィギュレーションデータだけでなくプログラムも格納する汎用メモリとしている。しかし外部メモリ４１を、ＩＯ端子２８、２９のみを介してＬＳＩ１００の内部と接続するコンフィギレーションデータ専用のメモリとして配置してもよい。その場合は、ＣＰＵ９を動作させるためにＬＳＩ１００外部に別途プログラムメモリを設け、汎用バス２２と接続する手段が必要になる。例えば図３に示すようなインタフェース回路１２とＩＯ端子３１、プログラムメモリ４２などを設ける。
【００５８】
（２）第２の実施形態
リコンフィギュアラブルコアを搭載したＬＳＩの発明について、図４に照らし合わせて第２の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第１の実施形態と同様の部分は省略して記す。ここで、本実施の形態で記すクロックドメインとは、共通のクロック周波数によって動作するデバイス群として定義する。
【００５９】
（構成要素の説明）
本実施の形態の発明におけるＬＳＩ２００の構成について以下に説明する。
【００６０】
図４はＬＳＩ２００全体の構成を表した図である。
【００６１】
クロックドメイン２５０はＬＳＩ２００内部で他ブロックとは独立したクロックによって動作する範囲を表す。クロックドメイン２５０内にはメモリ制御部３やコンフィギュレーションデータ格納メモリ１、専用データ転送バス２１などのコンフィギュレーションデータ転送に関わる複数のデバイスが存在する。
【００６２】
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリ１に格納するための系は専用のクロックライン２４を持つクロックドメイン２５０に含まれ、それ以外のブロックとは異なるクロックで動作させることが可能である。そのため、コンフィギュレーションデータの転送速度はＬＳＩ２００の他のブロックとは独立に任意に設定できる。すなわち、他のブロックの動作(低速、停止)の影響を受けることなく、常にコンフィギュレーションデータの転送に最適なクロック周波数を提供することができる。本発明は以上のように、コンフィギュレーションデータ転送に関わるデバイス群をクロックドメイン２５０とし、他のブロックとは独立にクロックを与えることにより高速なデータ転送を行う点に特徴がある。
【００６３】
クロック端子３２はＬＳＩ２００の外部からＬＳＩ２００の内部へクロックを供給するための端子であり、クロック端子３２から供給されたクロックは、２つのＰＬＬによってその周波数が調整される。ＰＬＬ１４はクロックドメイン２５０へ供給するクロック周波数を設定する。ＰＬＬ１４で設定されたクロック周波数は、クロックライン２４によってクロックドメイン２５０内の各デバイスへ供給される。ＰＬＬ１５はＣＰＵ９やデータメモリ１０、専用ハードウェア１１等へ供給するクロック周波数を設定する。ＰＬＬ１５で設定されたクロック周波数はクロックライン２５によってクロックドメイン２５０以外のブロックに供給される。
【００６４】
インタフェース回路１２はＩＯ端子３１を介してＬＳＩ２００の外部とのデータ転送をとりもつ。プログラムメモリ４２はＩＯ端子３１、インタフェース回路１２、汎用バス２２を介してＣＰＵ９と接続する。
【００６５】
（動作の説明）
以上のように構成されたＬＳＩ２００において、暗号化されたＪＰＥＧ方式の画像再生を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア２の機能切り替えは、第１の実施形態の手順＜１＞〜＜１０＞と同様に行われるものとし、ここでは第２の実施形態の発明に特有の動作のみを記す。
【００６６】
第２の実施形態では，ＬＳＩ２００の内部において、クロックドメイン２５０と他のブロックの処理速度を異なったものにすることが望ましい場合に、クロックドメイン２５０及び他のブロックに供給するクロック周波数をＰＬＬ１４、ＰＬＬ１５によって変換する。
【００６７】
例えば、ＬＳＩ２００の外部からクロック端子３２を通じて提供されるクロック周波数に基づいてＬＳＩ２００の内部全てのブロックを動作させると、リコンフィギュアラブルコア２で行う復号処理の完了よりも次の伸張処理のためのコンフィギュレーションデータ転送完了のタイミングが遅くなる場合に、クロックドメイン２５０に供給するクロックを、ＰＬＬ１４を介して高速な動作周波数に変換する。
【００６８】
これにより、クロックドメイン２５０内の処理が他のブロックより高速に行われるため、復号処理の完了のタイミングまでに伸張処理のコンフィギュレーションデータの格納が完了するよう調節することが可能となる。さらに、クロックドメイン２５０外にあるデバイスの動作にも影響を及ぼすことがない。したがって、リコンフィギュアラブルコア２の機能切り替えのロスが軽減され、より高速に画像再生できるようになる。
【００６９】
また逆に、リコンフィギュアラブルコア２の機能切り替えまでの間隔が十分に大きい場合、ＰＬＬ１４によって、伸張処理の機能切り替えが間に合う範囲でクロックドメイン２５０に与えるクロックを低速にし、不要な電力消費を避けることも可能である。
【００７０】
以上のように、クロックドメイン２５０と他のブロックをそれぞれ独立のクロックで制御することにより、ＬＳＩ２００全体としての動作効率を向上させることが可能になる。
【００７１】
（補足）
本実施の形態ではＰＬＬ１４によってクロックドメイン２５０へのクロック周波数を変換したが、同時にＰＬＬ１５によって他のブロックへ与えるクロック周波数を調整してもよい。
【００７２】
ここで各クロックドメインの違いは、各クロックドメインにクロックを供給するＰＬＬが異なっていることによるとしてもよいし、各クロックドメインの直前に配置される分周器の分周比がおのおので独立に制御できることによるものとしてもよい。
【００７３】
各々のクロックドメイン内にさらに分周器を設けることでデバイス毎に最適なクロック周波数を設定してもよい。例えば、インタフェース回路１２の手前に分周器を設けることにより、インタフェース回路１２に与えるクロック周波数をより低速に調整してもよい。
【００７４】
なお、クロックドメイン２５０内に、コンフィギュレーションデータ転送に関する他のブロック（本実施の形態で記した以外の）が含まれていても、本発明の有効性は変わらない。
【００７５】
クロックドメイン２５０以外の部分でのクロックドメインは１つであってもよいし、複数であっても本発明の有効性は変わらない。
【００７６】
本実施の形態では、外部メモリ４１からコンフィギュレーションデータ格納メモリ１に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
【００７７】
（３）第３の実施形態
リコンフィギュアラブルコアを搭載したＬＳＩの発明について、図５に照らし合わせて第３の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第１の実施形態と同様の部分は省略して記す。
【００７８】
ここで、本実施の形態で記す電源ドメインとは、共通の電源ラインから与えられる電圧によって動作するデバイス群として定義する。
【００７９】
（構成要素の説明）
本実施の形態におけるＬＳＩ３００の構成について以下に説明する。
【００８０】
図５はＬＳＩ３００全体の構成を表した図である。
【００８１】
電源ドメイン３５０はＬＳＩ３００内部で他ブロックとは独立に電源が供給される範囲を表す。電源ドメイン３５０内にはメモリ制御部３やコンフィギュレーションデータ格納メモリ１、専用データ転送バス２１などのコンフィギュレーションデータ転送に関わる複数のデバイスが存在する。
【００８２】
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリ１に格納するための系は専用の電源ライン２６を持つ電源ドメイン３５０に含まれ、それ以外のブロックとは独立に電源の制御が可能である。そのため、他のブロックに対する電源制御 (供給、遮断等)の影響を受けることなくコンフィギュレーションデータを転送できる。本発明は以上のように、コンフィギュレーションデータ転送に関わるデバイス群を電源ドメイン３５０とし、他のブロックとは独立な電源制御を行うことにより効率的なコンフィギュレーションデータ転送を行う点に特徴がある。
【００８３】
電源端子３３はＬＳＩ３００外部からＬＳＩ３００内部へ電源を供給するための端子である。電源端子３３から供給された電源は、２つの電源スイッチによってその供給、遮断等が設定される。電源スイッチ１６は電源ドメイン３５０内部の各デバイスへ電源を供給するための電源スイッチである。電源スイッチ１６を閉じると、電源ライン２６によって電源ドメイン３５０内部のメモリ制御部３やコンフィギュレーションデータ格納メモリ１等へ電源が供給される。電源スイッチ１７は電源ドメイン３５０以外のブロックへ電源を供給するための電源スイッチである。電源スイッチ１７を閉じると、電源ライン２７によってＣＰＵ９やデータメモリ１０、専用ハードウェア１１等を含むブロックに電源が供給される。
【００８４】
インタフェース回路１２はＩＯ端子３１を介してＬＳＩ３００の外部とのデータ転送をとりもつ。プログラムメモリ４２はＩＯ端子３１、インタフェース回路１２、汎用バス２２を介してＣＰＵ９と接続する。
【００８５】
（動作の説明）
以上のように構成されたＬＳＩ３００において、省電力モード時を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア２の機能切り替えは、第１の実施形態の手順＜１＞〜＜１０＞と同様に行われるものとし、ここでは第３の実施形態の発明に特有の動作の概略のみを示す。
【００８６】
第３の実施形態では、ＬＳＩ３００の内部において電源ドメイン３５０と他のブロックに対する電源の供給、遮断等を独立に行うのが望ましい場合に、電源ドメイン３５０及び他のブロックへの電源供給を電源スイッチ１６、１７によって制御する。
【００８７】
例えば、ＬＳＩ３００が外部からの命令によりスタンバイモードなどの省電力モードを設定されると、電源スイッチ１７によって電源ドメイン３５０以外のブロックに対する電源供給が遮断される。このとき、電源ドメイン３５０に対しては電源スイッチ１６により電源を供給し続け、省電力モードが解除されて次の処理（例えばＪＰＥＧ方式の画像データの伸張処理）命令が与えられるまでの間に必要なコンフィギュレーションデータを外部メモリ４１からＬＳＩ３００の内部に転送し、待機させておく。そうすると、省電力モードが解除されて電源スイッチ１７からの電源供給が再開し、伸張処理が開始される時点においては伸張処理のコンフィギュレーションデータが既にＬＳＩ３００の内部に存在するため、リコンフィギュアラブルコア２の高速な機能切り替えが可能になる。
【００８８】
以上のように電源ドメイン３５０と他のブロックに供給する電源を独立に制御することにより、ＬＳＩ３００全体としての動作効率を向上させることが可能になる。
【００８９】
（補足）
ここで各ブロックへ供給する電源の制御は、本実施の形態のようにＬＳＩ３００の内部にある独立な電源スイッチによって行われてもよいし、ＬＳＩ３００の外部と内部の境界に、複数の独立な電源供給用の端子を設けることで実現してもよい。
【００９０】
なお、電源ドメイン３５０内にリコンフィギュアラブルコア２が含まれていてもよい。その場合は他ブロックが電源遮断されている間に、リコンフィギュアラブルコア２では伸張処理を行うための機能切り替えまでが終了できており、ＬＳＩ３００立ち上げ時に即、伸張処理の実行が可能になる。
【００９１】
本実施の形態では、外部メモリ４１からコンフィギュレーションデータ格納メモリ１に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
【００９２】
（４）第４の実施形態
リコンフィギュアラブルコアを搭載したＬＳＩの発明について、図６に照らし合わせて第４の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第１の実施形態と同様の部分は省略して記す。
【００９３】
（構成要素の説明）                                                            
本実施の形態におけるＬＳＩ４００の構成について以下に説明する。
【００９４】
図６はＬＳＩ４００全体の構成を表した図である。
【００９５】
第２のデータメモリ１８は、汎用バス２２に接続される、コンフィギュレーションデータ格納メモリ１とは異なるＬＳＩ４００の内部の汎用メモリであり、ＣＰＵ９あるいはリコンフィギュアラブルコア２がアプリケーション用データ格納のために使用する、アプリケーションメモリとしての役割を果たす。
【００９６】
本発明は、ＬＳＩ４００の内部にコンフィギュレーションデータを格納する複数のデータメモリを持つことによって、リコンフィギュアラブルコア２の機能切り替えを高速に行う点に特徴がある。
【００９７】
コンフィギュレーションデータ格納メモリ１には、外部メモリ４１から専用データ転送バス２１を介して第１のコンフィギュレーションデータが格納されている。一方、ＬＳＩ４００の内部の汎用メモリであるデータメモリ１８には、外部メモリ４１からＩＯ端子３０と汎用バス２２を介して第２のコンフィギュレーションデータが格納される。
【００９８】
第１のコンフィギュレーションデータは、出力データ３９としてコンフィギュレーションデータ格納メモリ１から出力される。一方、第２のコンフィギュレーションデータは出力データ４０として第２のデータメモリ１８から出力される。
【００９９】
出力データ３９、４０はマルチプレクサ１９に入力され、マルチプレクサ１９はいずれか一方のデータを選択してリコンフィギュアラブルコア２に転送する。いずれのコンフィギュレーションデータを選択するかは、コンフィギュレーション制御部８から送られるマルチプレクサの選択信号３８により決まる。
【０１００】
コンフィギュレーション制御部８からは、選択信号３８に加え、コンフィギュレーションデータ格納メモリ１あるいは第２のデータメモリ１８にリードアクセスをかける際に必要な制御信号３６、およびリコンフィギュアラブルコア２内部の記憶手段にコンフィギュレーションデータを格納する際に必要な制御信号３７が、適宜出力される。
【０１０１】
（動作の説明）
以上のように構成されたＬＳＩ４００において、暗号化されたＪＰＥＧ方式の画像再生を例に動作を説明する。動作の概略は、コンフィギュレーションデータ格納メモリ１に格納された画像データの復号処理のコンフィギュレーションデータ、又は第２のデータメモリ１８に格納された画像データの伸張処理のコンフィギュレーションデータが、リコンフィギュアラブルコア２にダウンロードされるというものである。詳細を以下に記す。
【０１０２】
＜４１＞ＬＳＩ４００の内部ではＣＰＵ９、データメモリ１０、専用ハードウェア１１、さらにリコンフィギュアラブルコア２などが連携してアプリケーションが実行される。
【０１０３】
＜４２＞外部メモリ４１に格納されたプログラムによってＣＰＵ９は、暗号化された画像データの復号処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ１に取り込むように指示される。
【０１０４】
＜４３＞ＣＰＵ９はプログラムに基づいて、汎用バス２２を通じてメモリ制御部３に対し、外部メモリ４１とコンフィギュレーションデータ格納メモリ１を制御させるための命令を送る。レジスタ７ａ、７ｂには、コンフィギュレーションデータを読み出しまたは書き込みする際のメモリの開始アドレスと、コンフィギュレーションデータの転送量が設定される。メモリ制御部３内には、外部メモリ４１にアクセスして復号処理に関するコンフィギュレーションデータを読み出すために必要な情報として、チップセレクト信号、リード信号、アドレス信号などが準備される。
【０１０５】
＜４４＞レジスタ７ａ、７ｂに設定された情報に基づいて、メモリ制御部３は制御信号３４を、ＩＯ端子２９を経由して外部メモリ４１へ転送する。この際、外部メモリ４１の指定された領域からコンフィギュレーションデータを読み出すため、レジスタ７ａに設定された開始アドレスが制御信号３４のアドレス信号として転送される。
【０１０６】
＜４５＞外部メモリ４１に転送されたアドレス信号によって、開始アドレスに対応するコンフィギュレーションデータが外部メモリ４１から読み出される。アドレス信号が外部メモリ４１に転送される毎に、メモリ制御部３内のカウンタ５はインクリメントされ、比較器６によってレジスタ７ａに設定された転送量の値と一致比較される。一致しなかった場合は、信号出力部４によりレジスタ７ａのアドレス値もインクリメントされ、次に読み出すデータのアドレスが設定される。カウンタ５の値が終了条件（ここではレジスタ７ａに設定された転送量と一致すること）を満たすまでアドレス値とカウンタ５の値は繰り返しインクリメントされ、その間外部メモリ４１からはアドレス値に対応するコンフィギュレーションデータが順次読み出される。読み出された復号処理のコンフィギュレーションデータは、ＩＯ端子２８を経てＬＳＩ４００の内部に取り込まれる。
【０１０７】
＜４６＞メモリ制御部３はコンフィギュレーションデータ格納メモリ１に対し、外部メモリ４１から転送された専用データ転送バス２１上のコンフィギュレーションデータを取り込むよう、制御信号３５を通じて知らしめる。この際、コンフィギュレーションデータ格納メモリ１の指定された領域にコンフィギュレーションデータを格納するため、レジスタ７ｂに設定された開始アドレスが制御信号３５のアドレス信号として転送される。
【０１０８】
＜４７＞制御信号３５により、コンフィギュレーションデータは専用データ転送バス２１を介してコンフィギュレーションデータ格納メモリ１に格納される。この際＜４５＞と同様にカウンタ５、比較器６等を用いた仕組みで、コンフィギュレーションデータ格納メモリ１内の指定された領域に、終了条件（カウンタ５とレジスタ７ｂに設定された転送量の値が一致すること）を満たすまで伸張処理のコンフィギュレーションデータが順次格納されていく。
【０１０９】
＜４８＞ＬＳＩ４００の外部にある外部メモリ４１から、ＩＯ端子３０とインタフェース回路１３を介して圧縮された画像データの伸張処理のためのコンフィギュレーションデータを取り入れ、汎用バス２２を経由して第２のデータメモリ１８へ格納する。
【０１１０】
＜４９＞コンフィギュレーションデータ格納メモリ１には復号処理のためのコンフィギュレーションデータが、第２のデータメモリ１８には伸張処理のためのコンフィギュレーションデータがそれぞれ格納されている。
【０１１１】
＜５０＞リコンフィギュアラブルコア２の機能を切り替えたいタイミングで、ＣＰＵ９はコンフィギュレーション制御部８を起動する。このとき、復号処理のコンフィギュレーションデータ、又は伸張処理のコンフィギュレーションデータのどちらを使用するかを指定する信号が送られる。その指定に基づき、コンフィギュレーション制御部８はマルチプレクサの選択信号３８を出力する。
【０１１２】
＜５１＞復号処理のコンフィギュレーションデータを使用する場合は、選択信号３８に基づいてマルチプレクサ１９が、コンフィギュレーションデータ格納メモリ１からの出力データ３９を選択する。逆に、伸張処理のコンフィギュレーションデータを使用する場合は、選択信号３８に基づいてマルチプレクサ１９が、第２のデータメモリ１８からの出力データ４０を選択する。
【０１１３】
本例においては、画像データに施された暗号を復号してからでないと伸張処理も行えないため、まず復号処理のコンフィギュレーションデータが選択される。
【０１１４】
＜５２＞＜５１＞で選択した復号処理のコンフィギュレーションデータをリコンフィギュアラブルコア２にダウンロードする。このとき、制御信号３６によりコンフィギュレーションデータ格納メモリ１からのコンフィギュレーションデータの読み出しが、同時に制御信号３７によりリコンフィギュアラブルコア２への書き込みが指示される。
【０１１５】
以上のように、ＬＳＩ４００の内部に複数のコンフィギュレーションデータを待機させておくことにより、コンフィギュレーションデータ格納メモリ１内に格納されたコンフィギュレーションデータ、あるいは第２のデータメモリ１８内に格納されたコンフィギュレーションデータ、いずれのコンフィギュレーションデータを用いたリコンフィギュアラブルコア２の機能切り替えも高速に行うことが可能になる。
【０１１６】
（補足）
本実施の形態における第２のデータメモリ１８は汎用のメモリであるので、コンフィギュレーションデータの格納に限らず、ＬＳＩ４００の内部で行われる他の処理に関するデータを保持することが可能である。それらのデータはコンフィギュレーションデータと同時に保持してもよいものとする。
【０１１７】
本実施の形態の＜４８＞に示す、第２のデータメモリ１８へのコンフィギュレーションデータの格納は、リコンフィギュアラブルコア２の機能切り替えのタイミングに間に合う限りにおいて、コンフィギュレーションデータ格納メモリ１へのコンフィギュレーションデータ格納と同時に行われてもよいし、それより先に行われてもよい。
【０１１８】
本実施の形態では、コンフィギュレーションデータは２種類としたが、使用できるメモリの容量に応じていくつにも拡張可能である。また、メモリの種類も拡張が可能であり、その場合はマルチプレクサ１９における入力数と選択信号の論理を適切に変更することで対応する。
【０１１９】
本実施の形態では、２種類のメモリに対するアクセスに同一の制御信号３６を用いたが、メモリの種類に応じて複数の制御信号を用いてもよい。その場合はコンフィギュレーション制御部８で、必要な数だけメモリアクセスを制御する回路を持つことで対応する。
【０１２０】
ＬＳＩ４００の外部メモリ４１から第２のデータメモリ１８へのコンフィギュレーションデータ転送が非常に低速でも問題がない場合は、コンフィギュレーションデータを、第２のデータメモリ１８を経由せず、ＩＯ端子３０とインタフェース回路１３を経由後直接マルチプレクサ１９の入力とする構成をとってもよい。その際、インタフェース回路１３が適切なアドレシングでデータをマルチプレクサ１９に送り込むように設定する必要がある。
【０１２１】
アプリケーションによっては第２のデータメモリ１８を使用しない。例えば、転送するコンフィギュレーションデータの量が少なく、コンフィギュレーションデータ格納メモリ１のみの使用で十分である場合には第２のデータメモリ１８を使用しなくてもよい。
【０１２２】
本実施の形態では、外部メモリ４１からコンフィギュレーションデータ格納メモリ１に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
【０１２３】
（５）第５の実施形態
リコンフィギュアラブルコアを搭載したＬＳＩの発明について、図７に照らし合わせて第５の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第１の実施形態と同様の部分は省略して記す。
【０１２４】
（構成要素の説明）
本実施の形態におけるＬＳＩ５００の構成について以下に説明する。
【０１２５】
図７はＬＳＩ５００全体の構成を表した図である。
【０１２６】
バス制御部２０は、バス制御部２０内に設定された優先順位とメモリ制御部３からの信号に基づいて、汎用バス２２に接続される複数のデバイス各々が行うデータ転送を制御する。すなわち、優先順位に基づいて各デバイスに適宜データ転送の権利を与えることにより、汎用バス２２上で行われるデータ転送を優先度の高い順に行い、効率的なデータ転送を実現するものである。
【０１２７】
本実施の形態ではコンフィギュレーションデータ転送のための専用データ転送バス２１は存在せず、外部メモリ４１からコンフィギュレーションデータ格納メモリ１に亘るバスは汎用バス２２である。本実施の形態において、バス制御部２０にコンフィギュレーションデータの転送要求があった場合には、汎用バス２２を介して行われるＣＰＵ９とデータメモリ１０間のデータ転送等の、コンフィギュレーションデータ転送以外のデータ転送を一時的にストップし、コンフィギュレーションデータ転送のためだけにバス帯域を確保する。
【０１２８】
以上のように本発明は、コンフィギュレーションデータ転送に際して、バス制御部２０によって汎用バス２２上のデータ転送を制御し、コンフィギュレーションデータ転送のために仮想的な専用バスを作り出すことでコンフィギュレーションデータの高速な転送を行う点に特徴がある。
【０１２９】
（動作の説明）
以上のように構成されたＬＳＩ５００において、暗号化されたＪＰＥＧ方式の画像再生を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア２の機能切り替えは、第１の実施形態の説明＜１＞〜＜１０＞と同様に行われるものとし、ここでは第５の実施形態の発明に特有の動作の概略のみを示す。但し、第５の実施形態には第１の実施形態におけるコンフィギュレーションデータ転送のための専用データ転送バス２１が存在しない点において手順が異なる。つまり、バス制御部２０により、汎用バス２２をコンフィギュレーションデータ転送のために一時的に専用バス化する手順が必要になる。具体的には、第１の実施形態における動作の説明＜４＞と＜５＞の間に次の２つの手順が追加される。
【０１３０】
＜６１＞＜４＞に同期して、制御信号３４をバス制御部２０にも転送する。
【０１３１】
＜６２＞バス制御部２０は制御信号３４を受け取ると、メモリ制御部３から外部メモリ４１への制御信号３４の転送、さらには外部メモリ４１からのＬＳＩ５００の内部に対するコンフィギュレーションデータの転送を最優先で行うように、汎用バス２２上のその他のデータ転送を一時的に停止させ、バス帯域を確保する。
【０１３２】
＜６２＞は、バス制御部２０の制御により、コンフィギュレーションデータ転送用に仮想の専用バスが設けられた状態である。以上のように、ＬＳＩ５００の内部の汎用バス２２を使用したＣＰＵ９やデータメモリ１０、専用ハードウェア１１間での転送はウェイト状態になるため、外部メモリ４１からコンフィギュレーションデータ格納メモリ１への転送は、他のブロックのデータ転送の影響を受けることなく、常に計算どおりの時間で完了する。
【０１３３】
（補足）
コンフィギュレーションデータ格納メモリ１をデュアルポートメモリとすれば、汎用バス２２からの転送書き込みと、バス２３からの転送（読み出し）のタイミングに制約がなくなり、両方の処理を同時に行うことができるため、さらに高速なリコンフィギュアラブルコアの機能切り替えが可能になる。
【０１３４】
以上、５つの実施形態を示したが、これらは必ずしも独立して実施されなければならないものではなく、許される範囲で組み合わせて実施することも可能である。例えば、実施形態２のクロックドメインと実施形態３の電源ドメインを組み合わせて実施する形態が考えられる。
【０１３５】
なお、本発明において上記の実施形態で示した動作は一例であって、その他の処理を実行し得ることは言う間までもない。
【産業上の利用可能性】
【０１３６】
本発明にかかるプログラマブルデバイスは、リコンフィギュアラブルコアを搭載したＬＳＩに適用でき、汎用性とパフォーマンスを両立した特長を持たせることが出来る。現在システムＬＳＩとして用途が望まれている分野全てに有用である。
【図面の簡単な説明】
【０１３７】
【図１】第１の実施形態の構成図
【図２】メモリ制御部３の詳細な構成図
【図３】第１の実施形態の別の構成図
【図４】第２の実施形態の構成図
【図５】第３の実施形態の構成図
【図６】第４の実施形態の構成図
【図７】第５の実施形態の構成図
【符号の説明】
【０１３８】
１  コンフィギュレーションデータ格納メモリ
２  リコンフィギュアラブルコア
３  （コンフィギュレーションデータ格納）メモリ制御部
８  コンフィギュレーション制御部
９  ＣＰＵ
１０  （第１の）データメモリ
１１  専用ハードウェア
１２、１３  インタフェース回路
１８  第２のデータメモリ
１９  マルチプレクサ
２０  汎用バス制御部
２１  コンフィギュレーションデータ格納メモリ専用データ転送バス
２２  汎用バス
２８〜３３  ＩＯ端子
４１  外部メモリ
２５０  他ブロックとは独立なクロックドメイン
３５０  他ブロックとは独立な電源ドメイン
【図１】
2007251329.tif 000003
【図２】
2007251329.tif 000004
【図３】
2007251329.tif 000005
【図４】
2007251329.tif 000006
【図５】
2007251329.tif 000007
【図６】
2007251329.tif 000008
【図７】
2007251329.tif 000009