説明

半導体集積回路

【課題】システム全体のデータ転送量が増加してしまうことを解消することによって、システムの設計を容易にする。
【解決手段】演算器アレイ(102)と、メモリアレイ(103)と、データ転送回路(108)と、スイッチ回路(104)とを設ける。さらに上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部(106)と、上記構成情報の切替えを制御可能な状態遷移管理部(105)とを設ける。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を設けることで、システム設計の容易化を図る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路に係り、例えばフレキシブルプロセッサに適用して有効な技術に関する。
【背景技術】
【0002】
8〜32ビット幅程度の粗粒度の演算を単位とする演算器を備え、高速に演算処理内容やデータ経路などを変更可能とすることで、演算性能と回路利用率及び柔軟性を高次元でバランスさせるプロセッサが知られている。例えば特許文献1に記載されているように、プロセッサをアレイ状に並べたものをプログラマブルなスイッチで接続した構成をとり演算を主体として行うデータパス部と、状態遷移手段の実現を容易とした構成をとり制御を行う状態遷移管理部との二つを独立して持つことで、それぞれを処理目的に応じて特化した構成で実現し、演算と制御との効率化を図ることができる。このように機能の瞬時切り換えを可能とするプロセッサは「フレキシブルプロセッサ」と称される。
【0003】
【特許文献1】特開2001−312481号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
画像、音声などのマルチメディア処理機能や、有線及び無線通信機能を内蔵した携帯情報機器が広く一般的に利用されるようになり、これらの機器を小型かつ安価に提供するため、それに搭載されるデータ処理装置の高性能化、高機能化及び低消費電力化が求められている。一方において、技術開発の進歩とともに策定された多様な規格や標準に速やかに対応することが製品価値を大きく左右するため、機器製造後にソフトウェアにより容易に機能を変更又は追加可能とすることにより、製品開発期間を短縮するだけでなく、製品寿命を延長することが必要とされる。
【0005】
このようなデータ処理装置を実現するための手段として、複数の動作モードのように予め準備された限定的な機能変更のみ可能となる専用の論理回路を設計し、それらを組み合わせた専用LSIを搭載することが考えられる。この専用LSIは、高性能化、低消費電力化の達成という観点では一般的にもっとも優れた実現手段と考えられるが、専用LSIの再設計を行わない限り機能の変更・追加ができず、また設計に要する開発期間が長くなってしまう。
【0006】
上記データ処理装置を実現するための別の手段として、汎用マイクロプロセッサを搭載し、このプロセッサ上で実行される一連の命令列からなるソフトウェアにより各種処理を実現する方法が考えられる。この場合、ソフトウェアを修正又は追加することにより、データ処理装置のハードウェアを変更することなく高機能化、機能の変更及び追加を実現できる。しかしながら、最先端のマイクロプロセッサにおいても同時に実行可能な命令はたかだか数命令であり、命令の逐次処理を基本とするデータ処理装置で高スループットの処理を実現するには、極めて高いクロック周波数で動作するプロセッサを搭載しなければならず、消費電力が増大する。また、プロセッサの処理性能を引き出すためには、分岐予測など演算以外の制御論理を必要とし、演算器本体の論理規模が相対的に低下することから、ハードウェア規模に対する処理効率が低下することが考えられる。
【0007】
上記データ処理装置を実現するための別の手段として、FPGA(Field Programmable Gate Array)と呼ばれる再構成可能なLSIを用いる方法が考えられる。FPGAは、多数のLUT(Lookup Table)が経路変更可能なバスにより接続された内部構成をもち、LUTの動作内容やLUT間の接続を定義する構成情報をLSIに外付けされたメモリから読み込むことにより、LSI内に任意の機能を実現できるという特長がある。基本的に、LUTの動作内容及びLUT間の接続は1ビット単位で設定可能であるため、所定の機能をLSI上に実現する際の柔軟性が高い反面、画像・音声処理など多ビットの演算を主体とする応用分野では面積オーバヘッドが大きくなってしまう。
【0008】
ここで、特許文献1記載の技術によれば、多数の演算器に対するデータの供給量を確保しないと演算器の待ちが発生してしまい、十分な性能を得ることができないことから、演算用データ及び演算結果の格納用に内蔵メモリを用意し、外部メモリなどからの転送遅延を隠蔽する手法がとられている。さらに同時に複数の演算器にデータを供給、若しくは演算結果の保存をするため、この内蔵メモリは複数のメモリバンクから構成される。このような内蔵メモリは、フレキシブルプロセッサが接続されているシステムからは、連続したアドレスを持つメモリとして設計されるが、フレキシブルプロセッサからは、複数のメモリとして認識、区別され、特定の演算器に対する入力元若しくは出力先として利用される。そのため、CPU(Central Processing Unit)や、DMAC(Direct Memory Access Controller)などを使って、外部メモリとフレキシブルプロセッサの内蔵メモリ間でデータ転送を行う場合、単純な転送では、必ずしも適切なデータ配置を行うことができない場合がある。これは、フレキシブルプロセッサの演算に適したデータ配置が、複数の内蔵メモリにデータを配置する(離散的なアドレスに配置する)場合が多いという特徴と、DMACによるデータ転送に適したデータ配置が、連続したアドレスで配置されていることであるという特徴の差異によるものである。これは、プログラム作成時に静的にデータの配置を工夫するか、あるいはCPUやDMACを利用してデータの再配置を行うか、若しくは、フレキシブルプロセッサ内部の演算器をデータ転送用に使用してデータの再配置を行うことで回避することができる。しかし動的にデータが供給されるシステムでは、CPUやDMACを利用してデータを再配置するか、フレキシブルプロセッサ内部でデータの再配置を行うしかない。そのため、データ再配置にCPUやDMACを利用した場合は、CPUやDMACへの負荷の増加、システムバスへのトランザクションの増加を招き、フレキシブルプロセッサ内部でデータ再配置を行った場合は、フレキシブルプロセッサの利用率と演算性能の低下につながる。さらに、CPUやDMACを利用したデータ再配置は、フレキシブルプロセッサの利用状況やデータ並べ替えの有無によって、CPUや、DMAC、システムバスへの負荷が変動するため、タスクスケジューリングや、システムバス帯域の設計など、システム全体の設計難易度が高くなる。
【0009】
本発明の目的は、システム設計を容易にするための半導体集積回路を提供することにある。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0011】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【0012】
すなわち、演算器アレイと、メモリアレイと、上記演算器アレイと、上記メモリアレイと、上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路と、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路とを設ける。さらに上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部と、上記構成情報の切替えを制御可能な状態遷移管理部とを設ける。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を設ける。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0014】
本発明により、システム設計を容易にするための半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【0015】
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕本発明の代表的な実施の形態に係る半導体集積回路は、それぞれ所定の演算処理を実行可能な複数の演算器が配列されて成る演算器アレイ(102)と、それぞれ上記演算器アレイで演算されるデータを保持可能な複数のメモリが配列されて成るメモリアレイ(103)と、上記演算器アレイと、上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路(108,701,1101,1501)と、上記メモリアレイと、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路(104)とを含む。さらに上記半導体集積回路は、上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部(106)と、上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路に対して上記構成情報の切替えを制御可能な状態遷移管理部(105)とを含む。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を含む。
【0017】
上記の構成によれば、独立性の高いフレキシブルプロセッサなどの半導体集積回路を、システムへ組み込むことが可能となる。すなわち、上記半導体集積回路内部でのデータ再配置が可能となるため、従来の専用回路と同等のデータ転送を考慮すればシステムへ組み込むことが可能となる。その結果、システム全体の設計難易度が下がる。また、上記半導体集積回路で動作するプログラムに関しても、CPU、DMACなどへの依存度が低くなるため、システム構成の変更などに対するフレキシブルプロセッサの可用性が高まる。
【0018】
〔2〕上記半導体集積回路は、システムバスに結合され、上記データ転送回路は、上記システムバス(109)を介して取り込まれたデータの自律的変更を行うように構成することができる。
【0019】
〔3〕上記スイッチ回路は、データ転送経路の切り替えを可能とするクロスバスイッチとすることができる。
【0020】
〔4〕上記データ転送回路は、データ転送を行うためのデータ処理回路(403)と、上記構成情報管理部によってコンフィグレーション切替指示がなされた場合に上記データ処理回路に対してデータ転送を開始させるデータ転送制御回路(401)とを含んで構成することができる。このとき、上記データ処理回路は、上記構成情報管理部から伝達された構成情報に基づいて、データ転送元アドレス及びデータ転送先アドレスを生成するデータ入出力制御回路(404)と、上記データ転送元アドレスに対応するデータを上記データ転送先アドレスに応じた転送先に転送するためのデータ変更回路(405)とを含んで構成することができる。
【0021】
〔5〕上記データ転送制御回路は、上記データ処理回路でのデータ転送において、エラーが発生したか否かの判定を行い、エラーが発生した場合には、上記データ処理回路でのデータ転送を中止して割込み要求を行うように構成することができる。
【0022】
〔6〕上記データ転送回路は、データ転送を行うためのデータ処理回路(403)と、上記データ処理回路でのデータ転送を制御可能なシーケンシャルデータ転送制御回路(801)と、を含んで構成することができる。上記シーケンシャルデータ転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能なテーブル(802)を含み、上記テーブルから構成情報を順次読み出して、上記データ処理回路でのデータ転送をシーケンシャルに制御可能に構成することができる。
【0023】
〔7〕上記データ転送回路は、データ圧縮及び展開処理が可能なデータ圧縮/展開処理回路(1203)と、上記データ圧縮/展開処理回路の動作を制御可能なデータ圧縮/展開転送制御回路(1201)とを含んで構成することができる。このとき、上記データ圧縮/展開転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路(1202)を含み、この保持回路に保持された構成情報に基づいて、上記データ圧縮/展開処理回路でのデータ圧縮又は展開処理を制御し、データ圧縮又は展開処理されたデータの転送を制御することができる。
【0024】
〔8〕上記データ転送回路は、ストリームデータの転送を可能とするストリームデータ処理回路(1603)と、上記ストリームデータ処理回路でのデータ転送を制御可能なストリームデータ転送制御回路(1601)とを含んで構成することができる。上記ストリームデータ転送制御回路は、記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路(1602)を含み、この保持回路に保持された構成情報に基づいて、上記ストリームデータ処理回路でのデータ転送を制御するように構成することができる。
【0025】
2.実施の形態の説明
次に、実施の形態について更に詳述する。
【0026】
図1には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムLSIが示される。図1に示されるシステムLSIは、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【0027】
101はフレキシブルプロセッサであり、このフレキシブルプロセッサ101は、機能の瞬時切り換えを可能とする。102は演算器アレイ(OP−ARY)であり、この演算器アレイ102は、それぞれ所定の演算処理を実行可能な複数の演算器がアレイ状に配列されて成り、回路の論理的動作を定義する構成情報に従ってそれらの接続関係の変更が可能とされる。103は内蔵メモリアレイ(MEM−ARY)であり、この内蔵メモリアレイ103は、複数のロードストアインタフェースとメモリバンクを含んで成る。メモリバンクには、上記演算器アレイ102で演算されるデータを格納することができる。108はデータ転送ユニット(DATA−FWD)であり、このデータ転送ユニット108はデータ転送を制御する。また、このデータ転送ユニット108は、上記構成情報に含まれる設定に従って、上記内蔵メモリアレイ103に格納されるデータの配列を変更する機能を有する。104はクロスバスイッチ(CBSW)であり、このクロスバスイッチ104は、演算器アレイ102、内蔵メモリアレイ103とデータ転送ユニット108とを構成情報に従って相互に接続することができる。105はシーケンスマネージャ(SEQ−MNG)であり、このシーケンスマネージャ105は、構成情報の切替タイミングを検出し、演算器アレイ102、内蔵メモリアレイ103、クロスバスイッチ104、データ転送ユニット108に構成情報の切替指示を出す。106はコンフィグレーションマネージャであり、このコンフィグレーションマネージャ106は、前記シーケンスマネージャ105の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ102、内蔵メモリアレイ103、クロスバスイッチ104、データ転送ユニット108に転送する。107はバスインタフェース(BUS−INTF)であり、このバスインタフェース107は、フレキシブルプロセッサの内外を接続し、演算用データや演算結果、構成情報などを転送する。110は割込み要求制御回路(INT−CNT)であり、この割込み要求制御回路110は、フレキシブルプロセッサ101の内部で発生した割込み要因を割込み要求として通知する。109はシステムバス(SYS−BUS)であり、このシステムバス109を介して、フレキシブルプロセッサ101内のバスインタフェース107、割込みコントローラ111、CPU112、及びメモリ(SMEN)113が、互いに信号のやり取り可能に結合される。111は割込みコントローラ(INTC)であり、この割込みコントローラ111は、割込み要求を統括する。112はCPUであり、このCPU112は、システム全体の動作制御を司る。メモリ113には、プログラムやデータが格納される。
【0028】
尚、図1に示される半導体集積回路は、単一LSIとして構成された場合を想定しているが、バスインタフェース107と、システムバス109、割り込みコントローラ111、CPU112、メモリ113は、必ずしも同一のLSI上に構成される必要はなく、外部ピンなどを介して結合される別のLSI上に存在していてもよい。
【0029】
図2には、上記演算器アレイ102の構成例が示される。
【0030】
演算器アレイ102は、アレイ状に配列された複数の演算器201を含む。演算器201は、コンフィギュレーションマネージャ106から構成情報を受け取り、シーケンスマネージャ106からの切替指示に従って演算内容や他の演算器201との間の接続を変更する。尚、図2では、1種類の演算器201から構成されているが、種類の異なる複数の演算器が任意の数だけ混在していてもよい。また、図2では、演算器201同士の接続が隣接した演算器201のみになっているが、そのような接続に限定されない。
【0031】
図3には、上記内蔵メモリアレイ103の構成例が示される。
【0032】
内蔵メモリアレイ103は、複数のロードストアインタフェース301と、このロードストアインタフェース301によりアクセス制御されるメモリバンク(MBNK)302を含んで成る。ロードストアインタフェースは、コンフィギュレーションマネージャ106から構成情報を受け取り、シーケンスマネージャ106からの切替指示に従ってロード、ストアなどの処理や、転送サイズなどを変更する。尚、図3においてメモリバンク302は、ロードストアインタフェース301に対して1対1となっているが、複数のメモリバンク302を搭載してもよい。また、メモリバンク302のポート数はシングルポートだけではなく、複数のポートを搭載してもよい。システムバスからメモリバンク302にロードストアを行う際は、バスインタフェース107がアドレスから適切なロードストアインタフェースを選択し、データをやり取りする。また、演算器アレイ102からメモリバンク302にロードストアを行う際は、クロスバスイッチ104に適切な構成情報を設定し、演算器アレイ102外部と接続可能なポートを持った任意の演算器201と、クロスバスイッチ104経由で接続する。
【0033】
図4には、データ転送ユニット108の構成例が示される。
【0034】
データ転送ユニット108は、データ転送制御回路(FWD−CNT)401と、データ処理回路403、入力バッファ(IN−BUF)406、出力バッファ(OUT−BUF)407を含んで成る。データ転送制御回路401は、内部に構成情報保持回路(REG)402を持ち、コンフィグレーションマネージャ106からの構成情報を保持する。データ転送制御回路401は、シーケンスマネージャ105から切替指示を受けると、構成情報保持回路402に保持している構成情報に基づいて、データ処理回路403に処理を行うよう指示を行う。またデータ転送制御回路401は、データ転送ユニット108内で発生したエラーを検出し、割込み要求制御回路110に通知する。データ処理回路403は、内部にデータ入出力制御回路404とデータ変更回路(DCH)405を持つ。データ入出力制御回路404は、データ転送制御回路401から処理開始の指示を受けると、構成情報保持回路402に保持されている構成情報に基づいて転送開始要求とともに、転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ104経由で、内蔵メモリアレイ103内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース301に送信されるか、若しくは直接バスインタフェース107に対して送信される。要求を受けたロードストアインタフェース301は、メモリバンク302からデータを読み出し、データ転送ユニット108の入力バッファ406にデータを送信する。また、バスインタフェース107が要求を受けた場合は、システムバス109に要求が伝えられ、その要求に対応するデータは、データ転送ユニット108の入力バッファ406に転送される。入力バッファ406に蓄積されたデータは、データ変更回路405において、構成情報に基づく操作が行われることで出力バッファ407に格納される。その後データ入出力制御回路404は、構成情報保持回路402に保持されている構成情報に基づいて再度転送開始要求と出力バッファ407に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース301若しくはバスインタフェース107に送信され、最終的にはメモリバンク302のいずれか、若しくはシステムバス109経由でフレキシブルプロセッサ101の外部に転送される。
【0035】
図5には、構成情報保持回路402に格納される構成情報の一例が示される。
【0036】
構成情報保持回路402には、転送処理コマンド501、転送元アドレス502、転送先アドレス503、転送元アドレスストライド幅504、転送先アドレスストライド幅505、転送回数506が格納される。尚、この格納順は、順序が入れ替わっていてもよい。転送処理コマンド501は、データ処理回路403で行う処理を示すコマンドを含む。このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス502には、データ転送ユニット108が転送を開始するアドレスが含まれる。転送先アドレス503には、データ転送ユニット108がデータを送信するアドレスが含まれる。転送元ストライド幅504、転送先ストライド幅505には、それぞれ転送先アドレス502と、転送元アドレス503に対して転送を行うたびに加算若しくは減算されるアドレス量が含まれる。転送回数506には、転送処理コマンド501により指定された処理を行う回数が含まれる。
【0037】
次に、図6に示すフローチャートを参照しながら、データ転送制御回路401及びデータ処理回路403の動作を説明する。
【0038】
フレキシブルプロセッサ101の処理が開始されたら、データ転送制御回路401において、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生させたか否かの判別が行われる(ステップ61)。この判別において、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生させた(YES)と判断された場合には、データ転送制御回路401によって、データ処理回路403を起動させ、構成情報保持回路402に保持している構成情報に従ってデータ転送を開始する(ステップ62)。この転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因が発生したか否かの判別が、データ転送制御回路401において行われる(ステップ63)。この判別において、エラー要因が発生しない(No)と判断された場合には、データ転送が終了したか否かの判別が行われる(ステップ64)。上記ステップ63の判別において、エラー要因が発生した(Yes)と判断された場合には、上記データ処理回路403でのデータ転送を中止して、割込み要求制御回路110に割込み要求を通知し、コンフィグレーション切替指示を待つ状態に遷移する(ステップ65)。この場合、割込み要求は、割込み要求制御回路110から割込みコントローラ111に伝達され、CPU112で所定の割込み処理が行われる。また、上記ステップ63の判別において、エラー要因が発生しない(No)と判断された場合には、転送が終了したか否かの判別が行われる(ステップ64)。この判別において、転送が終了していない(No)と判断された場合には、上記ステップ62のデータ転送処理に移行される。また、上記ステップ64の判別において、転送が終了した(Yes)と判断された場合には、上記ステップ61の判別に戻される。
【0039】
尚、CPU112がフレキシブルプロセッサ101と同じLSI上に混載されていない場合には、データ転送制御回路401からのエラー通知を保持するレジスタを設け、このレジスタの保持情報を外部からCPUによって確認可能とするとよい。あるいは、上記エラー通知を、フレキシブルプロセッサ101が搭載されているLSIの外部ピンから観測可能にしてもよい。
【0040】
上記例によれば、以下の作用効果を得ることができる。
【0041】
上記構成のフレキシブルプロセッサ101によれば、コンフィグレーション切替発生に同期して、CPUやDMACを使わずに自動的に内蔵メモリアレイ103内のメモリバンク302同士のデータ再配置、若しくは内蔵メモリアレイ103内のメモリバンク302とフレキシブルプロセッサ101の外部との間でデータ転送が可能となる。フレキシブルプロセッサ101内部でのデータ再配置が可能となるため、従来の専用回路と同等のデータ転送を考慮すればシステムへ組み込むことが可能となる。その結果、システム全体の設計難易度が下がる。また、フレキシブルプロセッサで動作するプログラムに関しても、CPU、DMACなどへの依存度が低くなるため、システム構成の変更などに対するフレキシブルプロセッサの可用性が高まる。
【0042】
図7には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムLSIの別の構成例が示される。
【0043】
図7に示されるシステムLSIが、図1に示されるのと大きく相違するのは、データ転送ユニット108に代えて、内蔵メモリアレイ103内のデータ再配置をシーケンシャルに行うシーケンシャルデータ転送ユニット(SQC−DATA−FWD)701が設けられている点である。演算器アレイ102、内蔵メモリアレイ103、及びこのシーケンシャルデータ転送ユニット701は、クロスバスイッチ104によって互いにデータのやり取り可能に結合されている。シーケンスマネージャ105は、内蔵メモリアレイ103、クロスバスイッチ104、シーケンシャルデータ転送ユニット701に構成情報の切替指示を出す。コンフィグレーションマネージャ106は、前記シーケンスマネージャ105の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ102、内蔵メモリアレイ103、クロスバスイッチ104、シーケンシャルデータ転送ユニット701に転送する。
【0044】
図8には、上記シーケンシャルデータ転送ユニット701の構成例が示される。
【0045】
シーケンシャルデータ転送ユニット701は、図8に示されるように、シーケンシャルデータ転送制御回路(SQC−FWD−CNT)801と、データ処理回路403、入力バッファ406、出力バッファ407を含む。シーケンシャルデータ転送制御回路801は、内部に構成情報保持テーブル回路(TB)802を持ち、コンフィグレーションマネージャ106から伝達された構成情報を複数保持する。また、シーケンシャルデータ転送制御回路801は、シーケンシャルデータ転送ユニット701内で発生したエラーを検出し、割込み要求制御回路110に通知する。
【0046】
図9には、上記構成情報保持テーブル回路802の構成例が示される。
【0047】
構成情報保持テーブル回路802は、構成情報を任意の数のエントリー(Entry)としてテーブルに保持する。各エントリーには、転送処理コマンドフィールド901、転送元アドレスフィールド902、転送先アドレスフィールド903、転送元アドレスストライド幅フィールド904、転送先アドレスストライド幅フィールド905、転送回数フィールド906、後続処理指定フィールド907を持つ。尚、この格納順は、順序が入れ替わっていてもよい。各エントリーの転送処理コマンドフィールド901は、データ処理回路403で行う処理を示すコマンドを保持する。尚、このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレスフィールド902には、シーケンシャルデータ転送ユニット701が転送を開始するアドレスが、転送先アドレスフィールド903には、シーケンシャルデータ転送ユニット701がデータを送信するアドレスが保持される。各エントリーの転送元ストライド幅フィールド904、転送先ストライド幅フィールド905は、それぞれ同一エントリーの転送先アドレスフィールド902と、転送元アドレスフィールド903に対して転送を行うたびに加算若しくは減算されるアドレス量を保持する。各エントリーの転送回数フィールド906は、同一エントリーの転送処理コマンドフィールド901により指定された処理を行う回数を保持する。また、各エントリーの後続処理指定フィールド907は、当該エントリーの処理が終了した後、開始するエントリー番号若しくは終了指示コードを保持する。尚、終了指示コードは少なくとも1つ定義されていればよく、またエントリー番号と重複することがなければ、任意に定義できるものとする。
【0048】
上記構成のシーケンシャルデータ転送制御回路801は、シーケンスマネージャ105から切替指示を受けると、構成情報保持テーブル回路802に保持しているエントリー群から適切なエントリーを読み出し、データ処理回路403に処理を行うよう指示を行う。データ処理回路403によるデータ転送が終了した後、当該エントリーの後続処理指定フィールド907に、終了指示コードが保持されている場合は動作を停止し、シーケンスマネージャ105から切替指示を待つ状態に遷移し、エントリー番号が指定されている場合は、構成情報保持テーブル回路802に保持しているエントリー群から指定されたエントリーを読み出し、再度データ処理回路403に処理を開始するよう指示を行う。
【0049】
図8に示されるデータ処理回路403は、内部にデータ入出力制御回路(DIO−CNT)404とデータ変更回路(DCH)405を持つ。データ入出力制御回路404は、シーケンシャルデータ転送制御回路801から処理開始の指示を受けると、構成情報保持テーブル回路802に保持されている保持しているエントリー群から適切なエントリーを読み出し、それに基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ104経由で内蔵メモリアレイ103内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース301に送信されるか、若しくは直接バスインタフェース107に対して送信される。要求を受けたロードストアインタフェース301は、メモリバンク302からデータを読み出し、シーケンシャルデータ転送ユニット701の入力バッファ406にデータを送信する。また、バスインタフェース107が要求を受けた場合は、システムバス109に要求が伝えられ、その要求に対応するデータは、シーケンシャルデータ転送ユニット701の入力バッファ406に転送される。入力バッファ406に蓄積されたデータは、データ変更回路405において、エントリー情報に基づいて操作が行われ、出力バッファ407に格納される。その後データ入出力制御回路404は、エントリー情報に基づいて再度転送開始要求と出力バッファ407に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース301若しくはバスインタフェース107に送信され、最終的にはメモリバンク302のいずれか、若しくはシステムバス109経由でフレキシブルプロセッサ101の外部に転送される。
【0050】
次に、図10に示すフローチャートを参照しながら、シーケンシャルデータ転送制御回路801、及びデータ処理回路403の動作を説明する。
【0051】
フレキシブルプロセッサ101の処理が開始されたら、データ転送制御回路801において、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生させたか否かの判別が行われる(ステップ1001)。この判別において、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生させた(YES)と判断された場合には、シーケンシャルデータ転送制御回路801は、構成情報保持テーブル回路802を参照して構成情報で指定されたエントリーを読み出し(ステップ1002)、データ処理回路403を起動させ、エントリー情報に従ってデータ転送を開始する(ステップ1003)。そして、エラーが発生したか否かの判別が行われる(ステップ1004)。エントリー情報に従ってデータ転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因がなければ、データ転送を完了さる。また、上記ステップ1004の判別において、エラーが発生した(Yes)と判断された場合には、転送を停止し、割込み要求制御回路110に通知し(ステップ1007)、コンフィグレーション切替指示を待つ状態に遷移する。上記ステップ1004でエラーが発生しない(No)と判断された場合には、転送が終了したか否かの判別が行われる(ステップ1005)。エラーが発生せずに転送が終了した場合、エントリーの後続処理指定フィールド907がチェックされ、終了指示コードが保持されている場合は動作を停止し、シーケンスマネージャ105から切替指示を待つ状態に遷移する。また、エントリーの後続処理指定フィールド907にエントリー番号が指定されている場合は、構成情報保持テーブル回路802に保持しているエントリー群から指定されたエントリーを読み出し、再度データ処理回路403に処理を開始するよう指示を行う。
【0052】
上記の構成によれば、シーケンシャルデータ転送ユニット701用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、CPUやDMACを使わずに自動的に、内蔵メモリアレイ103内のメモリバンク302同士のデータ再配置、若しくは内蔵メモリアレイ103内のメモリバンク302とフレキシブルプロセッサ101外部のアドレスとの間でデータ転送を複数組み合わせて実行可能となる。
【0053】
図11には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムLSIの構成例が示される。
【0054】
図11に示されるシステムLSIが図1に示されるのと大きく相違するのは、データ転送ユニット108に代えて、内蔵メモリアレイ103内のデータの圧縮と再配置を行うデータ圧縮転送ユニット(DATA−COMP−FWD)1101が設けられている点である。演算器アレイ102、内蔵メモリアレイ103、及びデータ圧縮転送ユニット1101は、クロスバスイッチ104によって互いにデータのやり取り可能に結合されている。シーケンスマネージャ105は、内蔵メモリアレイ103、クロスバスイッチ104、データ圧縮転送ユニット1101に構成情報の切替指示を出す。コンフィグレーションマネージャ106は、前記シーケンスマネージャ105の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ102、内蔵メモリアレイ103、クロスバスイッチ104、データ圧縮転送ユニット1101に転送する。
【0055】
図12には、上記データ圧縮転送ユニット1101の構成例が示される。
【0056】
データ圧縮転送ユニット1101は、データ圧縮/展開転送制御回路(COMP−FWD−CNT)1201と、データ圧縮/展開処理回路1203、入力バッファ(IN−BUF)406、出力バッファ(OUT−BUF)407を含んで成る。データ圧縮/展開転送制御回路1201は、内部に構成情報保持回路(REG)1202を持ち、コンフィグレーションマネージャ106からの構成情報を保持する。データ圧縮/展開転送制御回路1201は、シーケンスマネージャ105から切替指示を受けると、構成情報保持回路1202に保持している構成情報に基づいて、データ圧縮/展開処理回路1203に処理を行うよう指示を行う。また、データ圧縮/展開転送制御回路1201は、データ圧縮転送ユニット1101内で発生したエラーを検出し、割込み要求制御回路110に通知する。データ圧縮/展開処理回路1203は、内部にデータ入出力制御回路(DIO−CNT)1204とデータ圧縮/展開回路(DCOM)1205を持つ。データ入出力制御回路1204は、データ圧縮/展開転送制御回路1201から処理開始の指示を受けると、構成情報保持回路1202に保持されている構成情報に基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ104経由で内蔵メモリアレイ103内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース301に送信されるか、若しくは直接バスインタフェース107に対して送信される。要求を受けたロードストアインタフェース301は、メモリバンク302からデータを読み出し、データ圧縮転送ユニット1101の入力バッファ406にデータを送信する。また、バスインタフェース107が要求を受けた場合は、システムバス109に要求が伝えられ、その要求に対応するデータは、データ圧縮転送ユニット1101の入力バッファ406に転送される。入力バッファ406に蓄積されたデータは、データ圧縮/展開回路1205において、構成情報に基づいて圧縮又は展開が行われ、出力バッファ407に格納される。その後データ入出力制御回路1204は、構成情報保持回路1202に保持されている構成情報に基づいて再度転送開始要求と出力バッファ407に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース301若しくはバスインタフェース107に送信され、最終的にはメモリバンク302のいずれか、若しくはシステムバス109経由でフレキシブルプロセッサ101の外部に転送される。
【0057】
図13には、構成情報保持回路1202に格納される構成情報の一例が示される。
【0058】
構成情報保持回路1202は、圧縮/展開転送処理コマンド1301、転送元アドレス1302、転送先アドレス1303、転送元アドレスストライド幅1304、転送先アドレスストライド幅1305、転送回数1306、圧縮/展開形式1307の各情報を格納する。尚、この情報の格納順は、任意とされる。圧縮/展開転送処理コマンド1301は、データ圧縮/展開処理回路1203で行う処理を示すコマンドを保持する。尚、このコマンドは、転送及び圧縮/展開、若しくはその両方の組み合わせなどの処理がユニークに識別できればよく、圧縮/展開転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス1302には、データ圧縮転送ユニット1101が圧縮/展開転送を開始するアドレスが含まれ、転送先アドレス1303には、データ圧縮転送ユニット1101がデータを送信するアドレスが含まれる。転送元ストライド幅1304、転送先ストライド幅1305は、それぞれ転送先アドレス1302と、転送元アドレス1303に対して転送を行うたびに加算若しくは減算されるアドレス量によって更新される。転送回数1306は、圧縮/展開転送処理コマンド1301により指定された処理を行う回数によって更新される。圧縮/展開形式1307には、データ圧縮/展開処理回路1203で用いるべき圧縮/展開アルゴリズム指定情報が含まれる。尚、圧縮/展開形式1307で指定可能な圧縮/展開形式は、データ圧縮/展開処理回路1203で処理可能な圧縮/展開アルゴリズムのみである。また、圧縮/展開形式1307は、圧縮/展開転送処理コマンド1301に含めることが可能であり、必ずしも分離する必要はないが、圧縮/展開転送処理コマンド1301のデコード時間を考慮すると分離するほうがよい。
【0059】
次に、図14に示すフローチャートを参照しながら、データ圧縮/展開転送制御回路1201及びデータ圧縮/展開処理回路1203の動作を説明する。
【0060】
フレキシブルプロセッサ101の処理が開始されたら、データ圧縮/展開転送制御回路1201は、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生するのを待つ(ステップ1401)。コンフィグレーション切替指示が発生される(Yes)と、データ圧縮/展開転送制御回路1201は、構成情報保持回路1202に保持している構成情報に従ってデータの読み込みを行う(ステップ1402)。読み込みが終わると、データ圧縮/展開処理回路1203を起動させ、構成情報保持回路1202に保持している構成情報に従ってデータの圧縮/展開を開始する(ステップ1403)。そして、データの圧縮/展開が完了した後、構成情報保持回路1202に保持している構成情報に従ってデータの転送(書き込み)を行う(ステップ1404)。この圧縮/展開、転送(読み込み/書き込み)の際、データ圧縮/展開処理回路1203の処理不可能な圧縮/展開アルゴリズムが指定されている場合や、不当なアドレスへの転送、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ圧縮/展開及び転送を阻害するエラーが発生したか否かの判別が行われる(ステップ1405)。エラー要因がなければ、データの圧縮/展開と転送が完了するまで繰返される(ステップ1406)。また、上記ステップ1404の判別において、エラーが発生した(Yes)と判断された場合には、圧縮/展開及び転送を停止し、割込み要求制御回路110に通知し(ステップ1407)、コンフィグレーション切替指示を待つ状態に遷移する。
【0061】
このように、データ圧縮転送ユニット1101用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、CPUやDMACを使わずに自動的に内蔵メモリアレイ103内のメモリバンク302同士のデータ圧縮転送、展開を伴う再配置などの複雑なデータ転送、若しくは内蔵メモリアレイ103内のメモリバンク302とフレキシブルプロセッサ101の外部との間でデータ圧縮転送が可能となる。
【0062】
図15には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムLSIの構成例が示される。
【0063】
図15に示されるシステムLSIが図1に示されるのと大きく相違するのは、フレキシブルプロセッサ101の外部に、映像や音声、アニメーションのストリームデータの入出力を可能とするストリーム入出力ユニット(SIO)1502が配置されている点、及びデータ転送ユニット108に代えて、ストリーム入出力ユニット1502と内蔵メモリアレイ103との間のデータ転送を可能とするストリームデータ転送ユニット(STRM−DATA−FWD)1501が設けられた点である。演算器アレイ102、内蔵メモリアレイ103、及びストリームデータ転送ユニット1501は、クロスバスイッチ104によって互いにストリームデータのやり取り可能に結合されている。シーケンスマネージャ105は、内蔵メモリアレイ103、クロスバスイッチ104、ストリームデータ転送ユニット1501に構成情報の切替指示を出す。コンフィグレーションマネージャ106は、前記シーケンスマネージャ105の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ102、内蔵メモリアレイ103、クロスバスイッチ104、ストリームデータ転送ユニット1501に転送する。
【0064】
図16には、上記ストリームデータ転送ユニット1501の構成例が示される。
【0065】
ストリームデータ転送ユニット1501は、ストリームデータ転送制御回路(STRM−FWD−CNT)1601と、ストリームデータ処理回路1603、入力バッファ(IN−BUF)1606、出力バッファ(OUT−BUF)1607を含んで成る。ストリームデータ転送制御回路1601は、内部に構成情報保持回路(REG)1602を持ち、コンフィグレーションマネージャ106からの構成情報を保持する。ストリームデータ転送制御回路1601は、シーケンスマネージャ105から切替指示を受けると、構成情報保持回路1602に保持している構成情報に基づいて、ストリームデータ処理回路1603に処理を行うよう指示を行う。また、ストリームデータ転送制御回路1601は、ストリームデータ転送ユニット1501内で発生したエラーを検出し、割込み要求制御回路110に通知する。ストリームデータ処理回路1603は、内部にストリームデータ入出力制御回路(SDIO−CNT)1604とストリームデータ変更回路(SDCH)1605を含む。ストリームデータ入出力制御回路1604は、ストリームデータ転送制御回路1601から処理開始の指示を受けると、構成情報保持回路1602に保持されている構成情報に基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ104経由で内蔵メモリアレイ103内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース301に送信されるか、若しくは直接バスインタフェース107に対して送信されるか、ストリーム入出力ユニット1502に送信される。要求を受けたロードストアインタフェース301は、メモリバンク302からデータを読み出し、ストリームデータ転送ユニット1501の入力バッファ1606にデータを送信する。また、バスインタフェース107が要求を受けた場合は、システムバス109に要求が伝えられ、その要求に対応するデータは、ストリームデータ転送ユニット1501の入力バッファ1606に転送される。同様に、ストリーム入出力ユニットが要求を受けた場合は、その要求に対応するデータは、ストリームデータ転送ユニット1501の入力バッファ1606に転送される。入力バッファ1606に蓄積されたデータは、ストリームデータ変更回路1605において、構成情報に基づいて操作が行われ、出力バッファ1607に格納される。その後ストリームデータ入出力制御回路1604は、構成情報保持回路1602に保持されている構成情報を基に再度転送開始要求と出力バッファ1607に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース301若しくはバスインタフェース107若しくはストリーム入出力ユニット1502に送信され、最終的にはメモリバンク302のいずれか、若しくはシステムバス109又はストリーム入出力ユニット経由でフレキシブルプロセッサ101の外部に転送される。
【0066】
図17には、構成情報保持回路1602に格納される構成情報が示される。
【0067】
構成情報保持回路1602は、転送処理コマンド1701、転送元アドレス1702、転送先アドレス1703、転送元アドレスストライド幅1704、転送先アドレスストライド幅1705、転送回数1706を格納する。尚、この格納順は、順序が入れ替わっていてもよい。転送処理コマンド1701には、ストリームデータ処理回路1603で行う処理を示すコマンドが含まれる。尚、このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス1702には、ストリームデータ転送ユニット1501が転送を開始するアドレスとされる。転送先アドレス1703は、ストリームデータ転送ユニット1501がデータを送信するアドレスとされる。転送元ストライド幅1704、転送先ストライド幅1705は、それぞれ転送先アドレス1702、転送元アドレス1703に対して転送を行うたびに加算、若しくは減算されるアドレス量とされる。転送回数1706は、転送処理コマンド1701により指定された処理を行う回数とされる。また、ストリームデータの入出力時など、転送先、転送元アドレスなどが必要ない場合には、当該構成情報は参照されない。
【0068】
尚、ストリーム入出力ユニット1502は、必ずしも入出力機構を持つ必要はなく、入力のみ、若しくは出力のみの構成でもよい。
【0069】
次に、図18に示すフローチャートを参照しながら、ストリームデータ転送制御回路1601及びデータ処理回路1603の動作を説明する。
【0070】
フレキシブルプロセッサ101の処理が開始されたら、ストリームデータ転送制御回路1601は、コンフィグレーションマネージャ106がコンフィグレーション切替指示を発生させるのを待つ(ステップ1801)。切替指示が発生した場合(Yes)、ストリームデータ転送制御回路1601は、ストリームデータ処理回路1603を起動させ、構成情報保持回路1602に保持している構成情報に従ってデータ転送を開始する(ステップ1802)。この転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因がなければ、データ転送を終了するか否かの判別を行う(ステップ1804)。また、上記ステップ1803の判別において、エラー要因が検出された場合は、転送を停止し、割込み要求制御回路110に通知し(ステップ1805)、コンフィグレーション切替指示を待つ状態に遷移する。
【0071】
上記の構成によれば、ストリームデータ転送ユニット1501用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、CPUやDMACを使わずに自動的にストリーム入出力ユニット1502と内蔵メモリアレイ103内のメモリバンク302のデータ転送、若しくはストリーム入出力ユニット1502とフレキシブルプロセッサ101外部のアドレスとの間でデータ転送が可能となる。
【0072】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0073】
例えば、構成情報保持回路1202を構成情報保持テーブル回路802のようなテーブル参照型の回路に変更することができ、かかる場合にはシーケンシャルに圧縮/展開転送処理が可能となる。
【0074】
データ圧縮/展開転送用の回路の代わりに、若しくは追加する形で、その他データ処理の可能な回路(例えば暗号化用回路や、符号化回路など)を用いることができ、そのようにすることで、さらに高度な処理及び転送が可能となる。その際、構成情報保持回路1202の構成情報も拡張することで、より柔軟に処理が可能となる。また、構成情報保持テーブル回路802のようなテーブル参照型の回路に変更することで、シーケンシャルに処理を行うことが可能となる。
【0075】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフレキシブルプロセッサ101に適用した場合について説明したが、本発明はそれに限定されるものではなく、半導体集積回路に広く適用することができる。
【図面の簡単な説明】
【0076】
【図1】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムLSIの構成例ブロック図である。
【図2】図1に示されるシステムLSIに含まれる演算器アレイの構成例ブロック図である。
【図3】図1に示されるシステムLSIに含まれる内臓メモリアレイの構成例ブロック図である。
【図4】図1に示されるシステムLSIに含まれるデータ転送ユニットの構成例ブロック図である。
【図5】図4に示されるデータ転送ユニットに含まれる構成情報保持回路に格納される構成情報の説明図である。
【図6】図4に示されるデータ転送ユニットの処理概要を示すフローチャートである。
【図7】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムLSIの別の構成例ブロック図である。
【図8】図7に示されるシステムLSIに含まれるシーケンシャルデータ転送ユニットの構成例ブロック図である。
【図9】図8に示されるシーケンシャルデータ転送ユニットに含まれる構成情報保持テーブル回路に格納される構成情報の説明図である。
【図10】図8に示されるシーケンシャルデータ転送ユニットの処理概要を示すフローチャートである。
【図11】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムLSIの別の構成例ブロック図である。
【図12】図11に示されるフレキシブルプロセッサに含まれるデータ圧縮転送ユニットの構成例ブロック図である。
【図13】図11に示されるデータ圧縮転送ユニットに含まれる構成情報保持回路に格納される構成情報の説明図である。
【図14】図11に示されるデータ圧縮転送ユニットの処理概要を示すフローチャートである。
【図15】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムLSIの別の構成例ブロック図である。
【図16】図15に示されるフレキシブルプロセッサに含まれるストリームデータ転送ユニットの構成例ブロック図である。
【図17】図15に示されるストリームデータ転送ユニットに含まれる構成情報保持回路に格納される構成情報の構造である。
【図18】図15に示される上記ストリームデータ転送ユニットの処理概要を示すフローチャートである。
【符号の説明】
【0077】
101 フレキシブルプロセッサ
102 演算器アレイ
103 内蔵メモリアレイ
104 クロスバスイッチ
105 シーケンスマネージャ
106 コンフィグレーションマネージャ
107 バスインタフェース
108 データ転送ユニット
109 システムバス
110 割込み要求制御回路
111 割込みコントローラ
112 CPU
113 メモリ
201 演算器
301 ロードストアインタフェース
302 メモリバンク
401 データ転送制御回路
402 構成情報保持回路
403 データ処理回路
404 データ入出力制御回路
405 データ変更回路
406 入力バッファ
407 出力バッファ
501 転送処理コマンド
502 転送元アドレス
503 転送先アドレス
504 転送元アドレスストライド幅
505 転送先アドレスストライド幅
506 転送回数
701 シーケンシャルデータ転送ユニット
801 シーケンシャルデータ転送制御回路
802 構成情報保持テーブル回路
901 転送処理コマンドフィールド
902 転送元アドレスフィールド
903 転送先アドレスフィールド
904 転送元アドレスストライド幅フィールド
905 転送先アドレスストライド幅フィールド
906 転送回数フィールド
907 後続処理指定フィールド
1101 データ圧縮転送ユニット
1201 データ圧縮/展開転送制御回路
1202 構成情報保持回路
1203 データ圧縮/展開処理回路
1204 データ入出力制御回路
1205 データ圧縮/展開回路
1301 圧縮/展開転送処理コマンド
1302 転送元アドレス
1303 転送先アドレス
1304 転送元アドレスストライド幅
1305 転送先アドレスストライド幅
1306 転送回数
1307 圧縮/展開形式
1501 ストリームデータ転送ユニット
1502 ストリーム入出力ユニット
1601 ストリームデータ転送制御回路
1602 構成情報保持回路
1603 ストリームデータ処理回路
1604 ストリームデータ入出力制御回路
1605 ストリームデータ変更回路
1606 入力バッファ
1607 出力バッファ
1701 転送処理コマンド
1702 転送元アドレス
1703 転送先アドレス
1704 転送元アドレスストライド幅
1705 転送先アドレスストライド幅
1706 転送回数

【特許請求の範囲】
【請求項1】
それぞれ所定の演算処理を実行可能な複数の演算器が配列されて成る演算器アレイと、
それぞれ上記演算器アレイで演算されるデータを保持可能な複数のメモリが配列されて成るメモリアレイと、
上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路と、
上記演算器アレイと、上記メモリアレイと、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路と、
上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部と、
上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路に対して上記構成情報の切替えを制御可能な状態遷移管理部と、を含み、
上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を含んで成ることを特徴とする半導体集積回路。
【請求項2】
上記半導体集積回路は、システムバスに結合され、
上記データ転送回路は、上記システムバスを介して取り込まれたデータの自律的変更を可能とする請求項1記載の半導体集積回路。
【請求項3】
上記スイッチ回路は、データ転送経路の切り替えを可能とするクロスバスイッチとされる請求項1記載の半導体集積回路。
【請求項4】
上記データ転送回路は、データ転送を行うためのデータ処理回路と、
上記構成情報管理部によってコンフィグレーション切替指示がなされた場合に上記データ処理回路に対してデータ転送を開始させるデータ転送制御回路と、を含み、
上記データ処理回路は、上記構成情報管理部から伝達された構成情報に基づいて、データ転送元アドレス及びデータ転送先アドレスを生成するデータ入出力制御回路と、
上記データ転送元アドレスに対応するデータを上記データ転送先アドレスに応じた転送先に転送するためのデータ変更回路と、を含む請求項1記載の半導体集積回路。
【請求項5】
上記データ転送制御回路は、上記データ処理回路でのデータ転送において、エラーが発生したか否かの判定を行い、エラーが発生した場合には、上記データ処理回路でのデータ転送を中止して割込み要求を行う請求項4記載の半導体集積回路。
【請求項6】
上記データ転送回路は、データ転送を行うためのデータ処理回路と、
上記データ処理回路でのデータ転送を制御可能なシーケンシャルデータ転送制御回路と、を含み、
上記シーケンシャルデータ転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能なテーブルを含み、上記テーブルから構成情報を順次読み出して、上記データ処理回路でのデータ転送をシーケンシャルに制御可能な請求項1記載の半導体集積回路。
【請求項7】
上記データ転送回路は、データ圧縮及び展開処理が可能なデータ圧縮/展開処理回路と、
上記データ圧縮/展開処理回路の動作を制御可能なデータ圧縮/展開転送制御回路と、を含み、
上記データ圧縮/展開転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路を含み、この保持回路に保持された構成情報に基づいて、上記データ圧縮/展開処理回路でのデータ圧縮又は展開処理を制御し、データ圧縮又は展開処理されたデータの転送を制御する請求項1記載の半導体集積回路。
【請求項8】
上記データ転送回路は、ストリームデータの転送を可能とするストリームデータ処理回路と、
上記ストリームデータ処理回路でのデータ転送を制御可能なストリームデータ転送制御回路と、を含み、
上記ストリームデータ転送制御回路は、記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路を含み、この保持回路に保持された構成情報に基づいて、上記ストリームデータ処理回路でのデータ転送を制御する請求項1記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate