JP2007251329A - プログラマブルロジックデバイス - Google Patents

プログラマブルロジックデバイス Download PDF

Info

Publication number
JP2007251329A
JP2007251329A JP2006068800A JP2006068800A JP2007251329A JP 2007251329 A JP2007251329 A JP 2007251329A JP 2006068800 A JP2006068800 A JP 2006068800A JP 2006068800 A JP2006068800 A JP 2006068800A JP 2007251329 A JP2007251329 A JP 2007251329A
Authority
JP
Japan
Prior art keywords
configuration data
lsi
memory
data storage
storage memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006068800A
Other languages
English (en)
Inventor
Shinichi Marui
信一 丸井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006068800A priority Critical patent/JP2007251329A/ja
Priority to US11/683,563 priority patent/US20080024163A1/en
Publication of JP2007251329A publication Critical patent/JP2007251329A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Abstract

【課題】従来のリコンフィギュアラブルコアを搭載したLSIでは、機能切り替え可能というリコンフィギュアラブルコアの特長を活かしきれず、ハードブロックを用いる従来技術よりもコストパフォーマンスの点で劣っていた。
【解決手段】リコンフィギュアラブルコアの機能切り替え可能という特長を活かすためには、LSI外部からLSI内部へのコンフィギュレーションデータの読み込みが、適切なタイミングで、高速に実現される必要がある。
コンフィギュレーションデータを格納したLSI外部のメモリとLSI内部のコンフィギュレーションデータ格納メモリ間に専用バスを設けること、あるいはLSI内部のコンフィギュレーションデータ転送に関わるブロックに対し、他ブロックとは独立のクロックドメイン、独立の電源ドメインを設定することにより上記課題を解決した。
【選択図】図1

Description

本発明はプログラマブルロジックデバイス、より詳細には、リコンフィギュアラブルなコアを搭載したLSIに関するものである。
LSIの高集積化が進み、システム全体が1チップに搭載されるSOC(システム・オン・チップ)が現実のものとなってきている。一般的にSOCはCPUやDSPなどのプログラマブルデバイスとそれらを接続するデータバス、データメモリなどで汎用性を、ハードブロックで高パフォーマンスを実現している。SOCの開発には莫大なコストがかかるため、1つのSOCを多くのアプリケーションに適用させることは必須である。しかし、ハードブロックは特定のアプリケーションをターゲットとして設計されるため、結果的にSOCは汎用性のあるデバイスを搭載しているものの、ある分野でしか使用できないLSIになっている。
上記の問題点について、パフォーマンスと汎用性のバランスを取りながら、ハードブロックをより汎用的なものにすることが考えられてきた。その一つとして、FPGAに代表されるリコンフィギュアラブルコアをハードブロックの代わりに搭載する方法が挙げられる。リコンフィギュアラブルコアのパフォーマンスはハードブロックにおよばないものの、DSPなどよりも一桁以上は高性能である。更に、従来のリコンフィギュアラブルコアにおいて静的に行われていた機能切り替えを動的に実行することが実現されつつあり、それによって汎用性が増すと考えられる。また、動的な機能切り替えが可能なリコンフィギュアラブルコアは、静的な機能切り替えを行うものよりもその面積を相対的に小さくできる。
ただし、ハードブロックの代わりにリコンフィギュアラブルコアを用いる場合、両者の面積の差異を考慮する必要がある。リコンフィギュアラブルコアはハードブロックよりも一桁以上大きな面積を有するため、従来のSOCに十分に対抗しうるLSIにするためには、面積あたりのパフォーマンスを向上する必要がある。すなわち、リコンフィギュアラブルコアを搭載したLSIでは、1つのリコンフィギュアラブルコアの機能を動的に次々と切り替え、複数個のハードブロックを搭載しているのと同等の機能を実現することが望まれる。
リコンフィギュアラブルコアの機能を動的に変更する技術は既に確立されているため、今後はリコンフィギュアラブルコアの機能をいかにすばやく切り替えるか、ひいては切り替え回数を多くするかが重要な課題となる。
リコンフィギュアラブルコアの機能を変更するにはコンフィギュレーションデータといういわばプログラムをリコンフィギュアラブルコアにダウンロードする必要がある。このコンフィギュレーションデータがLSI内部にあれば、高速に機能を切り替えることが可能になる。一方、コンフィギュレーションデータがLSI外部にあると、LSI外部からのデータ転送のために、機能切り替えの時間は長大になってしまう。
リコンフィギュアラブルコアの機能切り替えを高速化する従来の技術としては、機能切り替えのためのコンフィギュレーションデータをLSI内部の大型メモリ内に蓄えておき、並列にコンフィギュレーションすることで素早く切り替えるものがある(例えば、特許文献1参照)。
特開平10−285014号公報
特許文献1にあるように、ハードブロックと比較した際にリコンフィギュアラブルコアが抱える面積のデメリットを克服するだけの多数個のコンフィギュレーションデータをLSI内部に常に持つことは、逆に面積デメリットを引き起こしてしまう可能性がある。また、リコンフィギュアラブルコアの特長を活かすためには、コンフィギュレーションデータ全てをLSI内部に持つことによってコンフィギュレーション内容が固定されてしまうことは大きな問題である。一方、コンフィギュレーションデータを格納するメモリを単純にLSI外部に置くことは、コンフィギュレーションデータ転送にかかる時間を増大させ、リコンフィギュアラブルコアの高速な機能切り替えを困難にする。
以上を鑑みて、本発明が目的とするところは、LSI内部のメモリに格納するコンフィギュレーションデータは最小限にしつつ、高速なコンフィギュレーションデータの転送により、リコンフィギュアラブルコアの機能切り替えを高速化することである。
第1のLSIは、
前記LSI外部から転送されたコンフィギュレーションデータを格納するコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記LSI外部とのデータ転送のための少なくとも1つのIO端子と、
前記IO端子と前記コンフィギュレーションデータ格納メモリを接続する、コンフィギュレーションデータ転送のための専用データ転送バスと
を備える。
第2のLSIは、
CPUと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
LSI外部とのデータ転送を行うインタフェース回路と、
前記CPU、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備え、
前記LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記汎用バスと、前記汎用バスに接続される前記CPUと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路にクロックを供給する第1のクロックラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、第1のクロックラインとは異なる第2のクロックラインと
をさらに備える。
第3のLSIは、
CPUと、
データを格納するためのデータメモリと、
前記データメモリに接続される専用ハードウェアと、
LSI外部とのデータ転送を行うインタフェース回路と
前記CPU、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
を備え、
前記LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリ内に格納されたコンフィギュレーションデータに応じて機能を変更する前記リコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記汎用バスと、前記汎用バスに接続される前記CPUと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路に電源を供給する第1の電源ラインと、
前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、第1の電源ラインとは異なる第2の電源ラインと
をさらに備える。
第4のLSIは、
LSI外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
前記コンフィギュレーションデータ格納メモリとは異なるメモリであり、前記LSI内部のCPUあるいは前記リコンフィギュアラブルコアがアプリケーション用データ格納のために使用するアプリケーションデータ格納メモリと、
前記リコンフィギュアラブルコアの接続先を、前記コンフィギュレーションデータ格納メモリ、または前記アプリケーション用データ格納メモリのいずれかに切り替えるための接続切り替え手段と
を備える。
第5のLSIは、
CPUと、
データを格納するためのデータメモリと、
LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
前記CPU、前記データメモリ、前記コンフィギュレーションデータ格納メモリを含む複数の回路ブロックが接続され、データが転送される汎用バスと、
前記汎用バスに接続された前記複数の回路ブロックのいずれかが前記汎用バスを介してデータを転送している時に、前記LSI外部から前記コンフィギュレーションデータ格納メモリへの前記コンフィギュレーションデータの転送要求が生じると、コンフィギュレーションデータ転送以外のデータ転送を一時停止し、前記コンフィギュレーションデータの転送を優先して行うように前記汎用バスの制御を行うバス制御部と
をさらに備える。
以下で各発明について生み出される効果について述べる。
第1のLSIでは、
専用のコンフィギュレーションデータ転送バスを持つことで、LSI内のコンフィギュレーションデータ転送に関わらないデバイス間のデータ転送の影響を受けることなく、より高速に、コンフィギュレーションデータ格納メモリにコンフィギュレーションデータを転送できるという効果が生まれる。
第2のLSIでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するためのデバイス群に接続されるクロックラインは、その他のブロックとクロックラインが異なることから、LSIの他のブロックの動作(低速、停止)の影響を受けることなく常に適切な速度、タイミングでのコンフィギュレーションデータ転送及び機能切り替えが可能になるという効果が生まれる。
第3のLSIでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するためのデバイス群に、その他のブロックとは別系統の電源供給を行うことで、他ブロックの電源が遮断されているときでもコンフィギュレーションデータをコンフィギュレーションデータ格納メモリに転送することができ、LSI起動後に即、リコンフィギュアラブルコアへのコンフィギュレーションデータのダウンロードを行なえるために高速な機能切り替えが可能になるという効果が生まれる。
第4のLSIでは、
LSI内部の汎用データメモリの空き容量をコンフィギュレーションデータ格納のために使用することが可能になり、コンフィギュレーションデータ格納専用のメモリを増やすことなく、より多くのコンフィギュレーションデータをLSI内部に保持することが可能になる。LSI内部に保持できるコンフィギュレーションデータの容量を多くすることで、LSI外部とのやりとりを少なくし、より高速な機能切り替えが可能になるという効果が生まれる。
第5のLSIでは、
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリに格納するための専用データ転送バスを持たない場合においても、汎用バスを介してコンフィギュレーションデータ格納メモリまでコンフィギュレーションデータを転送することが可能になる。更に、コンフィギュレーションデータ転送の要求があった際には、バス制御部によってコンフィギュレーションデータ転送以外のデータ転送を一時的に停止し、コンフィギュレーションデータ転送のバス使用優先度を最大にすることで、汎用バスを仮想的にコンフィギュレーションデータ転送のための専用データ転送バスとして使用することができ、専用データ転送バスを備える場合と同様の、高速なコンフィギュレーションデータ転送を実現できるという効果が生まれる。
以下に本発明の実施例の一形態を説明する。
まず、本発明の主要な構成要素であるリコンフィギュアラブルコアとコンフィギュレーションデータについてその定義を述べる。リコンフィギュアラブルコアとは、コアを構成する複数の論理エレメントの接続を切り替えることにより、適宜その機能を変更することが可能な機能ブロックである。コンフィギュレーションデータとは、リコンフィギュアラブルコアの論理エレメントの接続関係を指定し、機能を切り替えるためのプログラムやデータ等を指す。
(1)第1の実施形態
リコンフィギュアラブルコアを搭載したLSIの発明について、図1、2に照らし合わせて第1の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。
(構成要素の説明)
本実施の形態におけるLSI100の構成について以下に説明する。
図1はLSI100全体の構成を表した図である。
外部メモリ41はLSI100の外部にあり、LSI100を動作させるためのプログラムと、少なくとも1つのコンフィギュレーションデータを格納している。コンフィギュレーションデータ格納メモリ1はLSI100の内部にあり、外部メモリ41からIO端子28、コンフィギュレーションデータ転送のみに用いられる専用データ転送バス21を介して転送されたコンフィギュレーションデータを格納する。
本発明は、上記の外部メモリ41とコンフィギュレーションデータ格納メモリ1との間に専用データ転送バス21を設けるという点において従来技術と大きく異なっている。専用データ転送バス21を設けることにより、CPU9やデータメモリ10、専用ハードウェア11間のデータ転送など、LSI100の内部の他の動作の影響を受けることなくコンフィギュレーションデータの転送が可能になる。
コンフィギュレーション制御部8は、コンフィギュレーションデータ格納メモリ1からリコンフィギュアラブルコア2へのコンフィギュレーションデータの転送・格納を制御する。コンフィギュレーション制御部8からは、コンフィギュレーションデータ格納メモリ1にリードアクセスをかける際に必要な制御信号36、リコンフィギュアラブルコア2内部の記憶手段にコンフィギュレーションデータを格納する際に必要な制御信号37が、CPU9からの命令に基づいて適宜出力される。
リコンフィギュアラブルコア2は、コンフィギュレーションデータ格納メモリ1から専用データ転送バス21を介してダウンロードされたコンフィギュレーションデータによって内部の論理エレメントの接続を繋ぎ替え、その機能を変更する。
メモリ制御部3は、LSI100の外部からデータを取り込む際に、外部メモリ41とコンフィギュレーションデータ格納メモリ1の動作を制御する。具体的には、メモリ制御部3はCPU9からの命令に基づき、コンフィギュレーションデータ格納メモリ1に対してチップセレクト信号、リード信号、アドレス信号などの制御信号35を、外部メモリ41に対してチップセレクト信号、リード信号、アドレス信号などの制御信号34を出力する。制御信号35はLSI100の内部のバスを通じてコンフィギュレーションデータ格納メモリ1に入力される。制御信号34はLSI100の内部のバスを通ったのち、IO端子29を介して外部メモリ41に入力される。
図2はメモリ制御部3の詳細な構成を表した図である。
メモリ制御部3はレジスタ7a、7bを有し、レジスタ7aには外部メモリ41の所定の領域からコンフィギュレーションデータを取り出すための情報、レジスタ7bにはコンフィギュレーションデータ格納メモリ1の所定の領域にコンフィギュレーションデータを格納するための情報が、それぞれCPU9からの命令により適宜設定される。
本実施の形態において、レジスタ7aに設定される情報は、外部メモリ41の所定の領域にアクセスするための開始アドレスと、コンフィギュレーションデータの転送量の値である。レジスタ7bに設定される情報は、コンフィギュレーションデータ格納メモリ1の所定の領域にアクセスするための開始アドレスと、コンフィギュレーションデータの転送量の値である。
信号出力部4はメモリ制御部3の内部にあり、レジスタ7a又は7bに設定された開始アドレスを基準に、アドレス値を1ずつインクリメントして外部メモリ41又はコンフィギュレーションデータ格納メモリ1に対して出力する。また、アドレスを出力する度にカウンタ5の値を1ずつインクリメントする。比較器6ではレジスタ7a又は7bに設定されたコンフィギュレーションデータの転送量の値と、カウンタ5の値を一致比較する。両者の値が一致するまで、信号出力部4はアドレス値のインクリメントと出力、カウンタ5の値のインクリメントを続ける。
図1に戻って説明を続ける。
汎用バス22はLSI100の内部にあり、インタフェース回路13とIO端子30、バス43を介して外部メモリ41と接続される。LSI100の内部には汎用バス22を介して他のデバイスと接続される複数のデバイスが設けられている。
CPU9は、外部メモリ41からIO端子30とインタフェース回路13、汎用バス22を介して読み出したプログラムを実行することによりLSI100の内部を制御する。すなわち、LSI100の内部の他のデバイスに動作の命令を与える。例えば、上記メモリ制御部3のレジスタ7a、7bに対する値の設定などが行われる。
専用ハードウェア11は、汎用バス22を介してCPU9からの命令を受け、他のデバイスに対する処理を実行する。例えば、データメモリ10から、専用ハードウェア11とデータメモリ10間の専用バスを介してデータを読み込み、加工を行う。加工したデータは専用ハードウェア11からデータメモリ10に書き戻される。CPU9は定められた処理が終了したことを検知し、データメモリ10に対して加工済みデータをLSI100の外部に出力するよう命令する。
(動作の説明)
以上のように構成されたLSI100において、暗号化されたJPEG方式の画像再生を例に動作を説明する。動作の概略は、リコンフィギュアラブルコア2がJPEGの画像データに施された暗号の復号処理に使用されている状態において、次に行われる画像データの伸張処理のためのコンフィギュレーションデータを、外部メモリ41から専用データ転送バス21を通じてコンフィギュレーションデータ格納メモリ1に格納しておき、さらにリコンフィギュアラブルコア2の機能を復号処理から伸張処理に切り替えたいタイミングで、伸張処理のコンフィギュレーションデータをリコンフィギュアラブルコア2に格納するというものである。詳細を以下に記す。
<1>LSI100の内部ではCPU9、データメモリ10、専用ハードウェア11、さらにリコンフィギュアラブルコア2などが連携してアプリケーションが実行される。本実施の形態ではリコンフィギュアラブルコアで暗号の復号処理が行われている。
<2>外部メモリ41に格納されたプログラムによってCPU9は、圧縮された画像データの伸張処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ1に取り込むように指示される。
<3>CPU9はプログラムに基づいて、汎用バス22を通じてメモリ制御部3に対し、外部メモリ41とコンフィギュレーションデータ格納メモリ1を制御するための命令を送る。レジスタ7a、7bには、コンフィギュレーションデータを読み出しまたは書き込みする際のメモリの開始アドレスと、コンフィギュレーションデータの転送量が設定される。メモリ制御部3内には、外部メモリ41にアクセスして伸張処理に関するコンフィギュレーションデータを読み出すために必要な情報として、チップセレクト信号、リード信号、アドレス信号などが準備される。
<4>レジスタ7a、7bに設定された情報に基づいて、メモリ制御部3は制御信号34を、IO端子29を経由して外部メモリ41へ転送する。この際、外部メモリ41の指定された領域からコンフィギュレーションデータを読み出すため、レジスタ7bに設定された開始アドレスが制御信号34のアドレス信号として転送される。
<5>外部メモリ41に転送されたアドレス信号によって、開始アドレスに対応するコンフィギュレーションデータが外部メモリ41から読み出される。アドレス信号が外部メモリ41に転送される毎に、メモリ制御部3内のカウンタ5はインクリメントされ、比較器6によってレジスタ7aに設定された転送量の値と一致比較される。一致しなかった場合は、信号出力部4によりレジスタ7aのアドレス値もインクリメントされ、次に読み出すデータのアドレスが設定される。カウンタ5の値が終了条件(ここではレジスタ7aに設定された転送量と一致すること)を満たすまでアドレス値とカウンタ5の値は繰り返しインクリメントされ、その間外部メモリ41からはアドレス値に対応するコンフィギュレーションデータが順次読み出される。読み出された伸張処理のコンフィギュレーションデータは、IO端子28を経てLSI100の内部に取り込まれる。
<6>メモリ制御部3はコンフィギュレーションデータ格納メモリ1に対し、外部メモリ41から転送された専用データ転送バス21上のコンフィギュレーションデータを取り込むよう、制御信号35を通じて知らしめる。この際、コンフィギュレーションデータ格納メモリ1の指定された領域にコンフィギュレーションデータを格納するため、レジスタ7bに設定された開始アドレスが制御信号35のアドレス信号として転送される。
<7>制御信号35により、コンフィギュレーションデータは専用データ転送バス21を介してコンフィギュレーションデータ格納メモリ1に格納される。この際<5>と同様にカウンタ5、比較器6等を用いた仕組みで、コンフィギュレーションデータ格納メモリ1内の指定された領域に、終了条件(カウンタ5とレジスタ7bの転送量の値が一致すること)を満たすまで伸張処理のコンフィギュレーションデータが順次格納されていく。
以上<3>〜<7>のように、専用データ転送バス21を介したコンフィギュレーションデータ転送においては、外部メモリ41からIO端子28、専用データ転送バス21を介したコンフィギュレーションデータ格納メモリ1までの経路が、コンフィギュレーションデータ転送のためだけに確保される。そのため、復号処理中のリコンフィギュアラブルコア2を含むLSI100の内部の動作には全く影響を受けず、常に計算どおりの時間で転送が完了する。
続いて、コンフィギュレーションデータ格納メモリ1に格納された伸張処理のコンフィギュレーションデータがリコンフィギュアラブルコア2に格納される動作について記す。
<8>リコンフィギュアラブルコア2の機能を復号処理から伸張処理に切り替えるタイミングで、CPU9はコンフィギュレーション制御部8を起動させる。
<9>コンフィギュレーション制御部8から、コンフィギュレーションデータ格納メモリ1に対して制御信号36が、リコンフィギュアラブルコア2に対して制御信号37が送信される。これらの制御信号に基づき、コンフィギュレーションデータ格納メモリ1に格納された伸張処理のコンフィギュレーションデータは、バス23を介してリコンフィギュアラブルコア2にダウンロードされる。ここでのコンフィギュレーションデータ転送はLSI100の内部におけるデバイス間のデータ転送であり、LSI100の外部から逐次コンフィギュレーションデータを転送するのに比べて高速である。したがって、復号処理から伸張処理への高速な機能切り替えが可能である。
<10>以上のように伸張処理に関するコンフィギュレーションデータをダウンロードしたリコンフィギュアラブルコア2は、CPU9からの信号に従って伸張処理を開始する。
以上<1>〜<10>により、リコンフィギュアラブルコア2で行われている復号処理などLSI100の内部の他のデバイスの動作の影響を受けずに、次に実行される伸張処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ1に転送・格納できる。そのため、リコンフィギュアラブルコア2の機能切り替えに際して、逐一LSI100外部からコンフィギュレーションデータを読み込むよりもはるかに高速なダウンロードが実行でき、スムーズな画像再生が可能となる。
(補足)
本実施の形態では、専用データ転送バス21上には何も存在しないとしたが、信号を増幅するためのバッファ、リピータなどの長配線対応手段を配置してもよい。
リコンフィギュアラブルコア2を、動的に機能変更が可能なダイナミックリコンフィギュアラブルコアとすれば、コンフィギュレーションデータ格納メモリ1からリコンフィギュアラブルコア2への転送をさらに高速(FPGAよりも3桁高速)に行うことが可能である。
コンフィギュレーションデータ格納メモリ1をデュアルポートメモリとすれば、外部メモリ41からコンフィギュレーションデータ格納メモリ1へのコンフィギュレーションデータの書き込みと、コンフィギュレーションデータ格納メモリ1からリコンフィギュアラブルコア2へのコンフィギュレーションデータの読み出しを同時に実行することが可能であるため、読み出し/書き込みのタイミング制約がなくなり、さらにトータルで高速なリコンフィギュアラブルコア2の機能切り替えが可能になる。
コンフィギュレーションデータを読み出し/書き込みするための情報として、本実施の形態では開始アドレスとコンフィギュレーションデータの転送量を挙げたが、その他の情報でも構わない。例えば開始アドレスと終了アドレスという組み合わせでもよい。
本実施の形態においては外部メモリ41を、コンフィギュレーションデータだけでなくプログラムも格納する汎用メモリとしている。しかし外部メモリ41を、IO端子28、29のみを介してLSI100の内部と接続するコンフィギレーションデータ専用のメモリとして配置してもよい。その場合は、CPU9を動作させるためにLSI100外部に別途プログラムメモリを設け、汎用バス22と接続する手段が必要になる。例えば図3に示すようなインタフェース回路12とIO端子31、プログラムメモリ42などを設ける。
(2)第2の実施形態
リコンフィギュアラブルコアを搭載したLSIの発明について、図4に照らし合わせて第2の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第1の実施形態と同様の部分は省略して記す。ここで、本実施の形態で記すクロックドメインとは、共通のクロック周波数によって動作するデバイス群として定義する。
(構成要素の説明)
本実施の形態の発明におけるLSI200の構成について以下に説明する。
図4はLSI200全体の構成を表した図である。
クロックドメイン250はLSI200内部で他ブロックとは独立したクロックによって動作する範囲を表す。クロックドメイン250内にはメモリ制御部3やコンフィギュレーションデータ格納メモリ1、専用データ転送バス21などのコンフィギュレーションデータ転送に関わる複数のデバイスが存在する。
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリ1に格納するための系は専用のクロックライン24を持つクロックドメイン250に含まれ、それ以外のブロックとは異なるクロックで動作させることが可能である。そのため、コンフィギュレーションデータの転送速度はLSI200の他のブロックとは独立に任意に設定できる。すなわち、他のブロックの動作(低速、停止)の影響を受けることなく、常にコンフィギュレーションデータの転送に最適なクロック周波数を提供することができる。本発明は以上のように、コンフィギュレーションデータ転送に関わるデバイス群をクロックドメイン250とし、他のブロックとは独立にクロックを与えることにより高速なデータ転送を行う点に特徴がある。
クロック端子32はLSI200の外部からLSI200の内部へクロックを供給するための端子であり、クロック端子32から供給されたクロックは、2つのPLLによってその周波数が調整される。PLL14はクロックドメイン250へ供給するクロック周波数を設定する。PLL14で設定されたクロック周波数は、クロックライン24によってクロックドメイン250内の各デバイスへ供給される。PLL15はCPU9やデータメモリ10、専用ハードウェア11等へ供給するクロック周波数を設定する。PLL15で設定されたクロック周波数はクロックライン25によってクロックドメイン250以外のブロックに供給される。
インタフェース回路12はIO端子31を介してLSI200の外部とのデータ転送をとりもつ。プログラムメモリ42はIO端子31、インタフェース回路12、汎用バス22を介してCPU9と接続する。
(動作の説明)
以上のように構成されたLSI200において、暗号化されたJPEG方式の画像再生を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア2の機能切り替えは、第1の実施形態の手順<1>〜<10>と同様に行われるものとし、ここでは第2の実施形態の発明に特有の動作のみを記す。
第2の実施形態では,LSI200の内部において、クロックドメイン250と他のブロックの処理速度を異なったものにすることが望ましい場合に、クロックドメイン250及び他のブロックに供給するクロック周波数をPLL14、PLL15によって変換する。
例えば、LSI200の外部からクロック端子32を通じて提供されるクロック周波数に基づいてLSI200の内部全てのブロックを動作させると、リコンフィギュアラブルコア2で行う復号処理の完了よりも次の伸張処理のためのコンフィギュレーションデータ転送完了のタイミングが遅くなる場合に、クロックドメイン250に供給するクロックを、PLL14を介して高速な動作周波数に変換する。
これにより、クロックドメイン250内の処理が他のブロックより高速に行われるため、復号処理の完了のタイミングまでに伸張処理のコンフィギュレーションデータの格納が完了するよう調節することが可能となる。さらに、クロックドメイン250外にあるデバイスの動作にも影響を及ぼすことがない。したがって、リコンフィギュアラブルコア2の機能切り替えのロスが軽減され、より高速に画像再生できるようになる。
また逆に、リコンフィギュアラブルコア2の機能切り替えまでの間隔が十分に大きい場合、PLL14によって、伸張処理の機能切り替えが間に合う範囲でクロックドメイン250に与えるクロックを低速にし、不要な電力消費を避けることも可能である。
以上のように、クロックドメイン250と他のブロックをそれぞれ独立のクロックで制御することにより、LSI200全体としての動作効率を向上させることが可能になる。
(補足)
本実施の形態ではPLL14によってクロックドメイン250へのクロック周波数を変換したが、同時にPLL15によって他のブロックへ与えるクロック周波数を調整してもよい。
ここで各クロックドメインの違いは、各クロックドメインにクロックを供給するPLLが異なっていることによるとしてもよいし、各クロックドメインの直前に配置される分周器の分周比がおのおので独立に制御できることによるものとしてもよい。
各々のクロックドメイン内にさらに分周器を設けることでデバイス毎に最適なクロック周波数を設定してもよい。例えば、インタフェース回路12の手前に分周器を設けることにより、インタフェース回路12に与えるクロック周波数をより低速に調整してもよい。
なお、クロックドメイン250内に、コンフィギュレーションデータ転送に関する他のブロック(本実施の形態で記した以外の)が含まれていても、本発明の有効性は変わらない。
クロックドメイン250以外の部分でのクロックドメインは1つであってもよいし、複数であっても本発明の有効性は変わらない。
本実施の形態では、外部メモリ41からコンフィギュレーションデータ格納メモリ1に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
(3)第3の実施形態
リコンフィギュアラブルコアを搭載したLSIの発明について、図5に照らし合わせて第3の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第1の実施形態と同様の部分は省略して記す。
ここで、本実施の形態で記す電源ドメインとは、共通の電源ラインから与えられる電圧によって動作するデバイス群として定義する。
(構成要素の説明)
本実施の形態におけるLSI300の構成について以下に説明する。
図5はLSI300全体の構成を表した図である。
電源ドメイン350はLSI300内部で他ブロックとは独立に電源が供給される範囲を表す。電源ドメイン350内にはメモリ制御部3やコンフィギュレーションデータ格納メモリ1、専用データ転送バス21などのコンフィギュレーションデータ転送に関わる複数のデバイスが存在する。
コンフィギュレーションデータをコンフィギュレーションデータ格納メモリ1に格納するための系は専用の電源ライン26を持つ電源ドメイン350に含まれ、それ以外のブロックとは独立に電源の制御が可能である。そのため、他のブロックに対する電源制御 (供給、遮断等)の影響を受けることなくコンフィギュレーションデータを転送できる。本発明は以上のように、コンフィギュレーションデータ転送に関わるデバイス群を電源ドメイン350とし、他のブロックとは独立な電源制御を行うことにより効率的なコンフィギュレーションデータ転送を行う点に特徴がある。
電源端子33はLSI300外部からLSI300内部へ電源を供給するための端子である。電源端子33から供給された電源は、2つの電源スイッチによってその供給、遮断等が設定される。電源スイッチ16は電源ドメイン350内部の各デバイスへ電源を供給するための電源スイッチである。電源スイッチ16を閉じると、電源ライン26によって電源ドメイン350内部のメモリ制御部3やコンフィギュレーションデータ格納メモリ1等へ電源が供給される。電源スイッチ17は電源ドメイン350以外のブロックへ電源を供給するための電源スイッチである。電源スイッチ17を閉じると、電源ライン27によってCPU9やデータメモリ10、専用ハードウェア11等を含むブロックに電源が供給される。
インタフェース回路12はIO端子31を介してLSI300の外部とのデータ転送をとりもつ。プログラムメモリ42はIO端子31、インタフェース回路12、汎用バス22を介してCPU9と接続する。
(動作の説明)
以上のように構成されたLSI300において、省電力モード時を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア2の機能切り替えは、第1の実施形態の手順<1>〜<10>と同様に行われるものとし、ここでは第3の実施形態の発明に特有の動作の概略のみを示す。
第3の実施形態では、LSI300の内部において電源ドメイン350と他のブロックに対する電源の供給、遮断等を独立に行うのが望ましい場合に、電源ドメイン350及び他のブロックへの電源供給を電源スイッチ16、17によって制御する。
例えば、LSI300が外部からの命令によりスタンバイモードなどの省電力モードを設定されると、電源スイッチ17によって電源ドメイン350以外のブロックに対する電源供給が遮断される。このとき、電源ドメイン350に対しては電源スイッチ16により電源を供給し続け、省電力モードが解除されて次の処理(例えばJPEG方式の画像データの伸張処理)命令が与えられるまでの間に必要なコンフィギュレーションデータを外部メモリ41からLSI300の内部に転送し、待機させておく。そうすると、省電力モードが解除されて電源スイッチ17からの電源供給が再開し、伸張処理が開始される時点においては伸張処理のコンフィギュレーションデータが既にLSI300の内部に存在するため、リコンフィギュアラブルコア2の高速な機能切り替えが可能になる。
以上のように電源ドメイン350と他のブロックに供給する電源を独立に制御することにより、LSI300全体としての動作効率を向上させることが可能になる。
(補足)
ここで各ブロックへ供給する電源の制御は、本実施の形態のようにLSI300の内部にある独立な電源スイッチによって行われてもよいし、LSI300の外部と内部の境界に、複数の独立な電源供給用の端子を設けることで実現してもよい。
なお、電源ドメイン350内にリコンフィギュアラブルコア2が含まれていてもよい。その場合は他ブロックが電源遮断されている間に、リコンフィギュアラブルコア2では伸張処理を行うための機能切り替えまでが終了できており、LSI300立ち上げ時に即、伸張処理の実行が可能になる。
本実施の形態では、外部メモリ41からコンフィギュレーションデータ格納メモリ1に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
(4)第4の実施形態
リコンフィギュアラブルコアを搭載したLSIの発明について、図6に照らし合わせて第4の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第1の実施形態と同様の部分は省略して記す。
(構成要素の説明)
本実施の形態におけるLSI400の構成について以下に説明する。
図6はLSI400全体の構成を表した図である。
第2のデータメモリ18は、汎用バス22に接続される、コンフィギュレーションデータ格納メモリ1とは異なるLSI400の内部の汎用メモリであり、CPU9あるいはリコンフィギュアラブルコア2がアプリケーション用データ格納のために使用する、アプリケーションメモリとしての役割を果たす。
本発明は、LSI400の内部にコンフィギュレーションデータを格納する複数のデータメモリを持つことによって、リコンフィギュアラブルコア2の機能切り替えを高速に行う点に特徴がある。
コンフィギュレーションデータ格納メモリ1には、外部メモリ41から専用データ転送バス21を介して第1のコンフィギュレーションデータが格納されている。一方、LSI400の内部の汎用メモリであるデータメモリ18には、外部メモリ41からIO端子30と汎用バス22を介して第2のコンフィギュレーションデータが格納される。
第1のコンフィギュレーションデータは、出力データ39としてコンフィギュレーションデータ格納メモリ1から出力される。一方、第2のコンフィギュレーションデータは出力データ40として第2のデータメモリ18から出力される。
出力データ39、40はマルチプレクサ19に入力され、マルチプレクサ19はいずれか一方のデータを選択してリコンフィギュアラブルコア2に転送する。いずれのコンフィギュレーションデータを選択するかは、コンフィギュレーション制御部8から送られるマルチプレクサの選択信号38により決まる。
コンフィギュレーション制御部8からは、選択信号38に加え、コンフィギュレーションデータ格納メモリ1あるいは第2のデータメモリ18にリードアクセスをかける際に必要な制御信号36、およびリコンフィギュアラブルコア2内部の記憶手段にコンフィギュレーションデータを格納する際に必要な制御信号37が、適宜出力される。
(動作の説明)
以上のように構成されたLSI400において、暗号化されたJPEG方式の画像再生を例に動作を説明する。動作の概略は、コンフィギュレーションデータ格納メモリ1に格納された画像データの復号処理のコンフィギュレーションデータ、又は第2のデータメモリ18に格納された画像データの伸張処理のコンフィギュレーションデータが、リコンフィギュアラブルコア2にダウンロードされるというものである。詳細を以下に記す。
<41>LSI400の内部ではCPU9、データメモリ10、専用ハードウェア11、さらにリコンフィギュアラブルコア2などが連携してアプリケーションが実行される。
<42>外部メモリ41に格納されたプログラムによってCPU9は、暗号化された画像データの復号処理に関するコンフィギュレーションデータをコンフィギュレーションデータ格納メモリ1に取り込むように指示される。
<43>CPU9はプログラムに基づいて、汎用バス22を通じてメモリ制御部3に対し、外部メモリ41とコンフィギュレーションデータ格納メモリ1を制御させるための命令を送る。レジスタ7a、7bには、コンフィギュレーションデータを読み出しまたは書き込みする際のメモリの開始アドレスと、コンフィギュレーションデータの転送量が設定される。メモリ制御部3内には、外部メモリ41にアクセスして復号処理に関するコンフィギュレーションデータを読み出すために必要な情報として、チップセレクト信号、リード信号、アドレス信号などが準備される。
<44>レジスタ7a、7bに設定された情報に基づいて、メモリ制御部3は制御信号34を、IO端子29を経由して外部メモリ41へ転送する。この際、外部メモリ41の指定された領域からコンフィギュレーションデータを読み出すため、レジスタ7aに設定された開始アドレスが制御信号34のアドレス信号として転送される。
<45>外部メモリ41に転送されたアドレス信号によって、開始アドレスに対応するコンフィギュレーションデータが外部メモリ41から読み出される。アドレス信号が外部メモリ41に転送される毎に、メモリ制御部3内のカウンタ5はインクリメントされ、比較器6によってレジスタ7aに設定された転送量の値と一致比較される。一致しなかった場合は、信号出力部4によりレジスタ7aのアドレス値もインクリメントされ、次に読み出すデータのアドレスが設定される。カウンタ5の値が終了条件(ここではレジスタ7aに設定された転送量と一致すること)を満たすまでアドレス値とカウンタ5の値は繰り返しインクリメントされ、その間外部メモリ41からはアドレス値に対応するコンフィギュレーションデータが順次読み出される。読み出された復号処理のコンフィギュレーションデータは、IO端子28を経てLSI400の内部に取り込まれる。
<46>メモリ制御部3はコンフィギュレーションデータ格納メモリ1に対し、外部メモリ41から転送された専用データ転送バス21上のコンフィギュレーションデータを取り込むよう、制御信号35を通じて知らしめる。この際、コンフィギュレーションデータ格納メモリ1の指定された領域にコンフィギュレーションデータを格納するため、レジスタ7bに設定された開始アドレスが制御信号35のアドレス信号として転送される。
<47>制御信号35により、コンフィギュレーションデータは専用データ転送バス21を介してコンフィギュレーションデータ格納メモリ1に格納される。この際<45>と同様にカウンタ5、比較器6等を用いた仕組みで、コンフィギュレーションデータ格納メモリ1内の指定された領域に、終了条件(カウンタ5とレジスタ7bに設定された転送量の値が一致すること)を満たすまで伸張処理のコンフィギュレーションデータが順次格納されていく。
<48>LSI400の外部にある外部メモリ41から、IO端子30とインタフェース回路13を介して圧縮された画像データの伸張処理のためのコンフィギュレーションデータを取り入れ、汎用バス22を経由して第2のデータメモリ18へ格納する。
<49>コンフィギュレーションデータ格納メモリ1には復号処理のためのコンフィギュレーションデータが、第2のデータメモリ18には伸張処理のためのコンフィギュレーションデータがそれぞれ格納されている。
<50>リコンフィギュアラブルコア2の機能を切り替えたいタイミングで、CPU9はコンフィギュレーション制御部8を起動する。このとき、復号処理のコンフィギュレーションデータ、又は伸張処理のコンフィギュレーションデータのどちらを使用するかを指定する信号が送られる。その指定に基づき、コンフィギュレーション制御部8はマルチプレクサの選択信号38を出力する。
<51>復号処理のコンフィギュレーションデータを使用する場合は、選択信号38に基づいてマルチプレクサ19が、コンフィギュレーションデータ格納メモリ1からの出力データ39を選択する。逆に、伸張処理のコンフィギュレーションデータを使用する場合は、選択信号38に基づいてマルチプレクサ19が、第2のデータメモリ18からの出力データ40を選択する。
本例においては、画像データに施された暗号を復号してからでないと伸張処理も行えないため、まず復号処理のコンフィギュレーションデータが選択される。
<52><51>で選択した復号処理のコンフィギュレーションデータをリコンフィギュアラブルコア2にダウンロードする。このとき、制御信号36によりコンフィギュレーションデータ格納メモリ1からのコンフィギュレーションデータの読み出しが、同時に制御信号37によりリコンフィギュアラブルコア2への書き込みが指示される。
以上のように、LSI400の内部に複数のコンフィギュレーションデータを待機させておくことにより、コンフィギュレーションデータ格納メモリ1内に格納されたコンフィギュレーションデータ、あるいは第2のデータメモリ18内に格納されたコンフィギュレーションデータ、いずれのコンフィギュレーションデータを用いたリコンフィギュアラブルコア2の機能切り替えも高速に行うことが可能になる。
(補足)
本実施の形態における第2のデータメモリ18は汎用のメモリであるので、コンフィギュレーションデータの格納に限らず、LSI400の内部で行われる他の処理に関するデータを保持することが可能である。それらのデータはコンフィギュレーションデータと同時に保持してもよいものとする。
本実施の形態の<48>に示す、第2のデータメモリ18へのコンフィギュレーションデータの格納は、リコンフィギュアラブルコア2の機能切り替えのタイミングに間に合う限りにおいて、コンフィギュレーションデータ格納メモリ1へのコンフィギュレーションデータ格納と同時に行われてもよいし、それより先に行われてもよい。
本実施の形態では、コンフィギュレーションデータは2種類としたが、使用できるメモリの容量に応じていくつにも拡張可能である。また、メモリの種類も拡張が可能であり、その場合はマルチプレクサ19における入力数と選択信号の論理を適切に変更することで対応する。
本実施の形態では、2種類のメモリに対するアクセスに同一の制御信号36を用いたが、メモリの種類に応じて複数の制御信号を用いてもよい。その場合はコンフィギュレーション制御部8で、必要な数だけメモリアクセスを制御する回路を持つことで対応する。
LSI400の外部メモリ41から第2のデータメモリ18へのコンフィギュレーションデータ転送が非常に低速でも問題がない場合は、コンフィギュレーションデータを、第2のデータメモリ18を経由せず、IO端子30とインタフェース回路13を経由後直接マルチプレクサ19の入力とする構成をとってもよい。その際、インタフェース回路13が適切なアドレシングでデータをマルチプレクサ19に送り込むように設定する必要がある。
アプリケーションによっては第2のデータメモリ18を使用しない。例えば、転送するコンフィギュレーションデータの量が少なく、コンフィギュレーションデータ格納メモリ1のみの使用で十分である場合には第2のデータメモリ18を使用しなくてもよい。
本実施の形態では、外部メモリ41からコンフィギュレーションデータ格納メモリ1に亘るバスは必ずしもコンフィギュレーションデータ転送のための専用のバスである必要はなく、汎用のバスで構成されてもよい。
(5)第5の実施形態
リコンフィギュアラブルコアを搭載したLSIの発明について、図7に照らし合わせて第5の実施形態を説明する。まず発明の構成要素とその各々の機能を、続いて具体例を用いて動作を説明する。但し、上記第1の実施形態と同様の部分は省略して記す。
(構成要素の説明)
本実施の形態におけるLSI500の構成について以下に説明する。
図7はLSI500全体の構成を表した図である。
バス制御部20は、バス制御部20内に設定された優先順位とメモリ制御部3からの信号に基づいて、汎用バス22に接続される複数のデバイス各々が行うデータ転送を制御する。すなわち、優先順位に基づいて各デバイスに適宜データ転送の権利を与えることにより、汎用バス22上で行われるデータ転送を優先度の高い順に行い、効率的なデータ転送を実現するものである。
本実施の形態ではコンフィギュレーションデータ転送のための専用データ転送バス21は存在せず、外部メモリ41からコンフィギュレーションデータ格納メモリ1に亘るバスは汎用バス22である。本実施の形態において、バス制御部20にコンフィギュレーションデータの転送要求があった場合には、汎用バス22を介して行われるCPU9とデータメモリ10間のデータ転送等の、コンフィギュレーションデータ転送以外のデータ転送を一時的にストップし、コンフィギュレーションデータ転送のためだけにバス帯域を確保する。
以上のように本発明は、コンフィギュレーションデータ転送に際して、バス制御部20によって汎用バス22上のデータ転送を制御し、コンフィギュレーションデータ転送のために仮想的な専用バスを作り出すことでコンフィギュレーションデータの高速な転送を行う点に特徴がある。
(動作の説明)
以上のように構成されたLSI500において、暗号化されたJPEG方式の画像再生を例に動作を説明する。コンフィギュレーションデータの転送、リコンフィギュアラブルコア2の機能切り替えは、第1の実施形態の説明<1>〜<10>と同様に行われるものとし、ここでは第5の実施形態の発明に特有の動作の概略のみを示す。但し、第5の実施形態には第1の実施形態におけるコンフィギュレーションデータ転送のための専用データ転送バス21が存在しない点において手順が異なる。つまり、バス制御部20により、汎用バス22をコンフィギュレーションデータ転送のために一時的に専用バス化する手順が必要になる。具体的には、第1の実施形態における動作の説明<4>と<5>の間に次の2つの手順が追加される。
<61><4>に同期して、制御信号34をバス制御部20にも転送する。
<62>バス制御部20は制御信号34を受け取ると、メモリ制御部3から外部メモリ41への制御信号34の転送、さらには外部メモリ41からのLSI500の内部に対するコンフィギュレーションデータの転送を最優先で行うように、汎用バス22上のその他のデータ転送を一時的に停止させ、バス帯域を確保する。
<62>は、バス制御部20の制御により、コンフィギュレーションデータ転送用に仮想の専用バスが設けられた状態である。以上のように、LSI500の内部の汎用バス22を使用したCPU9やデータメモリ10、専用ハードウェア11間での転送はウェイト状態になるため、外部メモリ41からコンフィギュレーションデータ格納メモリ1への転送は、他のブロックのデータ転送の影響を受けることなく、常に計算どおりの時間で完了する。
(補足)
コンフィギュレーションデータ格納メモリ1をデュアルポートメモリとすれば、汎用バス22からの転送書き込みと、バス23からの転送(読み出し)のタイミングに制約がなくなり、両方の処理を同時に行うことができるため、さらに高速なリコンフィギュアラブルコアの機能切り替えが可能になる。
以上、5つの実施形態を示したが、これらは必ずしも独立して実施されなければならないものではなく、許される範囲で組み合わせて実施することも可能である。例えば、実施形態2のクロックドメインと実施形態3の電源ドメインを組み合わせて実施する形態が考えられる。
なお、本発明において上記の実施形態で示した動作は一例であって、その他の処理を実行し得ることは言う間までもない。
本発明にかかるプログラマブルデバイスは、リコンフィギュアラブルコアを搭載したLSIに適用でき、汎用性とパフォーマンスを両立した特長を持たせることが出来る。現在システムLSIとして用途が望まれている分野全てに有用である。
第1の実施形態の構成図 メモリ制御部3の詳細な構成図 第1の実施形態の別の構成図 第2の実施形態の構成図 第3の実施形態の構成図 第4の実施形態の構成図 第5の実施形態の構成図
符号の説明
1 コンフィギュレーションデータ格納メモリ
2 リコンフィギュアラブルコア
3 (コンフィギュレーションデータ格納)メモリ制御部
8 コンフィギュレーション制御部
9 CPU
10 (第1の)データメモリ
11 専用ハードウェア
12、13 インタフェース回路
18 第2のデータメモリ
19 マルチプレクサ
20 汎用バス制御部
21 コンフィギュレーションデータ格納メモリ専用データ転送バス
22 汎用バス
28〜33 IO端子
41 外部メモリ
250 他ブロックとは独立なクロックドメイン
350 他ブロックとは独立な電源ドメイン

Claims (17)

  1. LSI外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
    前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
    前記LSI外部とのデータ転送のための少なくとも1つのIO端子と、
    前記IO端子と前記コンフィギュレーションデータ格納メモリを接続する、コンフィギュレーションデータ転送のための専用データ転送バスと
    を備えたことを特徴とするLSI。
  2. 前記専用データ転送バスは、前記コンフィギュレーションデータのみを転送する
    ことを特徴とする請求項1記載のLSI。
  3. 前記専用データ転送バスに信号を増幅するためのバッファが挿入されている
    ことを特徴とする請求項1記載のLSI。
  4. 前記コンフィギュレーションデータ格納メモリは少なくとも2つの同時アクセスが可能なマルチアクセスポートメモリで構成される
    ことを特徴とする請求項1記載のLSI。
  5. CPUと、
    データを格納するためのデータメモリと、
    前記データメモリに接続される専用ハードウェアと、
    LSI外部とのデータ転送を行うインタフェース回路と
    前記CPU、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
    を備えるLSIであって、
    前記LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
    前記コンフィギュレーションデータ格納メモリ内に格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
    前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと
    前記汎用バスと、前記汎用バスに接続される前記CPUと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路にクロックを供給する第1のクロックラインと、
    前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、前記第1のクロックラインとは異なる第2のクロックラインと
    をさらに備えたことを特徴とするLSI。
  6. 前記第1のクロックラインは、2つ以上の独立したクロックラインからなるクロックライン群である
    ことを特徴とする請求項5記載のLSI。
  7. 前記第1のクロックラインと、前記第2のクロックラインの周波数は独立に設定可能である
    ことを特徴とする請求項5記載のLSI。
  8. 前記第2のクロックラインには、前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックのみが接続される
    ことを特徴とする請求項5記載のLSI。
  9. 第1のPLLによって前記第1のクロックラインにクロックが供給され、
    前記第1のPLLとは異なる第2のPLLによって前記第2のクロックラインにクロックが供給される
    ことを特徴とする請求項7記載のLSI。
  10. CPUと、
    データを格納するためのデータメモリと、
    前記データメモリに接続される専用ハードウェアと、
    LSI外部とのデータ転送を行うインタフェース回路と
    前記CPU、前記データメモリ、前記専用ハードウェア、前記インタフェース回路が接続される汎用バスと
    を備えるLSIであって、
    前記LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
    前記コンフィギュレーションデータ格納メモリ内に格納されたコンフィギュレーションデータに応じて機能を変更する前記リコンフィギュアラブルコアと、
    前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
    前記汎用バスと、前記汎用バスに接続される前記CPUと、前記データメモリと、前記専用ハードウェアと、前記インタフェース回路に電源を供給する第1の電源ラインと、
    前記コンフィギュレーションデータ格納メモリと前記メモリ制御ブロックにクロックを供給する、前記第1の電源ラインとは異なる第2の電源ラインと
    をさらに備えたことを特徴とするLSI。
  11. 前記リコンフィギュアラブルコアには前記第2の電源ラインから電源を供給する
    ことを特徴とする請求項10記載のLSI。
  12. 前記第1の電源ラインと前記第2の電源ラインへの電源の供給/停止は、それぞれ独立に設定可能である
    ことを特徴とした請求項10記載のLSI。
  13. 前記第1の電源ラインと前記第2の電源ラインはそれぞれ独立にスイッチを持つ
    ことを特徴とした請求項10記載のLSI。
  14. LSI外部から転送されたコンフィギュレーションデータを格納するためのコンフィギュレーションデータ格納メモリと、
    前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
    前記コンフィギュレーションデータ格納メモリへのアクセスを制御するメモリ制御ブロックと、
    前記コンフィギュレーションデータ格納メモリとは異なるメモリであり、前記LSI内部のCPUあるいは前記リコンフィギュアラブルコアがアプリケーション用データ格納のために使用するアプリケーションデータ格納メモリと、
    前記リコンフィギュアラブルコアの接続先を、前記コンフィギュレーションデータ格納メモリ、または前記アプリケーション用データ格納メモリのいずれかに切り替えるための接続切り替え手段と
    を備えたことを特徴とするLSI。
  15. CPUと、
    データを格納するためのデータメモリと、
    LSI外部から転送されたコンフィギュレーションデータを格納するための、前記データメモリとは異なるコンフィギュレーションデータ格納メモリと、
    前記コンフィギュレーションデータ格納メモリに格納された前記コンフィギュレーションデータに応じて機能を変更するリコンフィギュアラブルコアと、
    前記CPU、前記データメモリ、前記コンフィギュレーションデータ格納メモリを含む複数の回路ブロックが接続され、データが転送される汎用バスと、
    前記汎用バスに接続された前記複数の回路ブロックのいずれかが前記汎用バスを介してデータを転送している時に、前記LSI外部から前記コンフィギュレーションデータ格納メモリへの前記コンフィギュレーションデータの転送要求が生じると、コンフィギュレーションデータ転送以外のデータ転送を一時停止し、前記コンフィギュレーションデータの転送を優先して行うように前記汎用バスの制御を行うバス制御部と
    をさらに備えたことを特徴とするLSI。
  16. 前記コンフィギュレーションデータ格納メモリは、少なくとも2つの同時アクセスが可能なマルチアクセスポートメモリで構成される
    ことを特徴とする請求項14記載のLSI。
  17. 請求項1から15のいずれか記載のLSIと、
    前記LSI内部に転送するデータを格納するための外部メモリと
    を備えたLSIシステム。
JP2006068800A 2006-03-14 2006-03-14 プログラマブルロジックデバイス Withdrawn JP2007251329A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006068800A JP2007251329A (ja) 2006-03-14 2006-03-14 プログラマブルロジックデバイス
US11/683,563 US20080024163A1 (en) 2006-03-14 2007-03-08 Programmable logic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006068800A JP2007251329A (ja) 2006-03-14 2006-03-14 プログラマブルロジックデバイス

Publications (1)

Publication Number Publication Date
JP2007251329A true JP2007251329A (ja) 2007-09-27

Family

ID=38595200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006068800A Withdrawn JP2007251329A (ja) 2006-03-14 2006-03-14 プログラマブルロジックデバイス

Country Status (2)

Country Link
US (1) US20080024163A1 (ja)
JP (1) JP2007251329A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010251925A (ja) * 2009-04-13 2010-11-04 Canon Inc データ処理装置及びその制御方法
US8341469B2 (en) 2008-05-26 2012-12-25 Fujitsu Limited Configuration device for configuring FPGA
JP2013243657A (ja) * 2012-04-27 2013-12-05 Semiconductor Energy Lab Co Ltd プログラマブルlsi
JP2015177252A (ja) * 2014-03-13 2015-10-05 キヤノン株式会社 画像処理装置、その制御方法及びプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1963937B1 (de) * 2005-12-19 2009-09-30 Siemens Aktiengesellschaft Elektrisches feldgerät und verfahren zum herstellen einer datenverbindung zwischen einer datenschnittstelle des elektrischen feldgerätes und einem geräteinternen datenspeicher
EP1967973A1 (en) * 2007-03-07 2008-09-10 Matsushita Electric Industrial Co., Ltd. A method of configuring embedded application-specific functional blocks
WO2010038293A1 (ja) * 2008-10-01 2010-04-08 富士通株式会社 半導体装置、情報処理装置及び半導体装置の構築方法
US8631214B2 (en) 2010-11-03 2014-01-14 Kabushiki Kaisha Toshiba Memory control circuit, control method therefor, and image processing apparatus
US9190712B2 (en) 2012-02-03 2015-11-17 Apple Inc. Tunable antenna system
US11507947B1 (en) * 2017-07-05 2022-11-22 Citibank, N.A. Systems and methods for data communication using a stateless application
US10855529B2 (en) * 2018-11-26 2020-12-01 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3106998B2 (ja) * 1997-04-11 2000-11-06 日本電気株式会社 メモリ付加型プログラマブルロジックlsi
JP3636986B2 (ja) * 2000-12-06 2005-04-06 松下電器産業株式会社 半導体集積回路
US7091598B2 (en) * 2001-01-19 2006-08-15 Renesas Technology Corporation Electronic circuit device
US6577158B2 (en) * 2001-01-31 2003-06-10 Stmicroelectronics, Inc. Interconnect circuitry for implementing bit-swap functions in a field programmable gate array and method of operation
US7285981B2 (en) * 2002-07-08 2007-10-23 Viciciv Technology Configuration circuit for programmable logic devices
JP3609805B2 (ja) * 2002-07-11 2005-01-12 松下電器産業株式会社 ブロック間インタフェース回路およびシステムlsi
US20050097499A1 (en) * 2003-11-03 2005-05-05 Macronix International Co., Ltd. In-circuit configuration architecture with non-volatile configuration store for embedded configurable logic array
JP4562456B2 (ja) * 2004-08-20 2010-10-13 パナソニック株式会社 半導体集積回路
JP2006100991A (ja) * 2004-09-28 2006-04-13 Matsushita Electric Ind Co Ltd 不揮発性論理回路及びそれを有するシステムlsi
US7242218B2 (en) * 2004-12-02 2007-07-10 Altera Corporation Techniques for combining volatile and non-volatile programmable logic on an integrated circuit
JP2006287675A (ja) * 2005-04-01 2006-10-19 Renesas Technology Corp 半導体集積回路

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341469B2 (en) 2008-05-26 2012-12-25 Fujitsu Limited Configuration device for configuring FPGA
JP2010251925A (ja) * 2009-04-13 2010-11-04 Canon Inc データ処理装置及びその制御方法
US8745564B2 (en) 2009-04-13 2014-06-03 Canon Kabushiki Kaisha Data processing apparatus and method for controlling the apparatus
JP2013243657A (ja) * 2012-04-27 2013-12-05 Semiconductor Energy Lab Co Ltd プログラマブルlsi
US9654107B2 (en) 2012-04-27 2017-05-16 Semiconductor Energy Laboratory Co., Ltd. Programmable LSI
JP2015177252A (ja) * 2014-03-13 2015-10-05 キヤノン株式会社 画像処理装置、その制御方法及びプログラム

Also Published As

Publication number Publication date
US20080024163A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP2007251329A (ja) プログラマブルロジックデバイス
US7797496B2 (en) Multiprocessor system having a shared tightly coupled memory and method for communication between a plurality of processors
CN109902043B (zh) 一种基于fpga的国密算法加速处理系统
US20090300324A1 (en) Array type processor and data processing system
US8499182B2 (en) Semiconductor device and data processing system
JP2011118893A (ja) 非同期統合アップサイジング回路
JP2006338538A (ja) ストリームプロセッサ
US8341394B2 (en) Data encryption/decryption method and data processing device
US7795955B2 (en) Semiconductor integrated circuit and power control method
US11721373B2 (en) Shared multi-port memory from single port
JPH08329001A (ja) バスインターフェース装置
JP2008152409A (ja) 半導体集積回路
US7949860B2 (en) Multi thread processor having dynamic reconfiguration logic circuit
JP2017138785A (ja) メモリを制御する制御装置及びその制御方法
WO2012033595A1 (en) Disabling circuitry from initiating modification, at least in part, of state-associated information
JP2023533728A (ja) 循環fifoによるスキャッタ及びギャザーストリーミングデータ
US8271821B2 (en) Flexible RAM clock enable
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
JP4965161B2 (ja) メモリーカードコントローラ
US20090019268A1 (en) Processor
KR100799908B1 (ko) 메모리에 연결된 인터페이스 모듈
WO2001067271A1 (fr) Dispositif de traitement d'informations
US7984204B2 (en) Programmable direct memory access controller having pipelined and sequentially connected stages
WO2010055706A1 (ja) データ処理装置、データ処理方法及びプログラム
CN116524971A (zh) 用于控制内存的装置及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090130

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090623