(57)【要約】【課題】システム全体のデータ転送量が増加してしまうことを解消することによって、システムの設計を容易にする。【解決手段】演算器アレイ（１０２）と、メモリアレイ（１０３）と、データ転送回路（１０８）と、スイッチ回路（１０４）とを設ける。さらに上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部（１０６）と、上記構成情報の切替えを制御可能な状態遷移管理部（１０５）とを設ける。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を設けることで、システム設計の容易化を図る。【選択図】図１
2008152409.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ所定の演算処理を実行可能な複数の演算器が配列されて成る演算器アレイと、
それぞれ上記演算器アレイで演算されるデータを保持可能な複数のメモリが配列されて成るメモリアレイと、
上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路と、
上記演算器アレイと、上記メモリアレイと、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路と、
上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部と、
上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路に対して上記構成情報の切替えを制御可能な状態遷移管理部と、を含み、
上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を含んで成ることを特徴とする半導体集積回路。
【請求項２】
上記半導体集積回路は、システムバスに結合され、
上記データ転送回路は、上記システムバスを介して取り込まれたデータの自律的変更を可能とする請求項１記載の半導体集積回路。
【請求項３】
上記スイッチ回路は、データ転送経路の切り替えを可能とするクロスバスイッチとされる請求項１記載の半導体集積回路。
【請求項４】
上記データ転送回路は、データ転送を行うためのデータ処理回路と、
上記構成情報管理部によってコンフィグレーション切替指示がなされた場合に上記データ処理回路に対してデータ転送を開始させるデータ転送制御回路と、を含み、
上記データ処理回路は、上記構成情報管理部から伝達された構成情報に基づいて、データ転送元アドレス及びデータ転送先アドレスを生成するデータ入出力制御回路と、
上記データ転送元アドレスに対応するデータを上記データ転送先アドレスに応じた転送先に転送するためのデータ変更回路と、を含む請求項１記載の半導体集積回路。
【請求項５】
上記データ転送制御回路は、上記データ処理回路でのデータ転送において、エラーが発生したか否かの判定を行い、エラーが発生した場合には、上記データ処理回路でのデータ転送を中止して割込み要求を行う請求項４記載の半導体集積回路。
【請求項６】
上記データ転送回路は、データ転送を行うためのデータ処理回路と、
上記データ処理回路でのデータ転送を制御可能なシーケンシャルデータ転送制御回路と、を含み、
上記シーケンシャルデータ転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能なテーブルを含み、上記テーブルから構成情報を順次読み出して、上記データ処理回路でのデータ転送をシーケンシャルに制御可能な請求項１記載の半導体集積回路。
【請求項７】
上記データ転送回路は、データ圧縮及び展開処理が可能なデータ圧縮／展開処理回路と、
上記データ圧縮／展開処理回路の動作を制御可能なデータ圧縮／展開転送制御回路と、を含み、
上記データ圧縮／展開転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路を含み、この保持回路に保持された構成情報に基づいて、上記データ圧縮／展開処理回路でのデータ圧縮又は展開処理を制御し、データ圧縮又は展開処理されたデータの転送を制御する請求項１記載の半導体集積回路。
【請求項８】
上記データ転送回路は、ストリームデータの転送を可能とするストリームデータ処理回路と、
上記ストリームデータ処理回路でのデータ転送を制御可能なストリームデータ転送制御回路と、を含み、
上記ストリームデータ転送制御回路は、記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路を含み、この保持回路に保持された構成情報に基づいて、上記ストリームデータ処理回路でのデータ転送を制御する請求項１記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に係り、例えばフレキシブルプロセッサに適用して有効な技術に関する。
【背景技術】
【０００２】
８〜３２ビット幅程度の粗粒度の演算を単位とする演算器を備え、高速に演算処理内容やデータ経路などを変更可能とすることで、演算性能と回路利用率及び柔軟性を高次元でバランスさせるプロセッサが知られている。例えば特許文献１に記載されているように、プロセッサをアレイ状に並べたものをプログラマブルなスイッチで接続した構成をとり演算を主体として行うデータパス部と、状態遷移手段の実現を容易とした構成をとり制御を行う状態遷移管理部との二つを独立して持つことで、それぞれを処理目的に応じて特化した構成で実現し、演算と制御との効率化を図ることができる。このように機能の瞬時切り換えを可能とするプロセッサは「フレキシブルプロセッサ」と称される。
【０００３】
【特許文献１】特開２００１−３１２４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
画像、音声などのマルチメディア処理機能や、有線及び無線通信機能を内蔵した携帯情報機器が広く一般的に利用されるようになり、これらの機器を小型かつ安価に提供するため、それに搭載されるデータ処理装置の高性能化、高機能化及び低消費電力化が求められている。一方において、技術開発の進歩とともに策定された多様な規格や標準に速やかに対応することが製品価値を大きく左右するため、機器製造後にソフトウェアにより容易に機能を変更又は追加可能とすることにより、製品開発期間を短縮するだけでなく、製品寿命を延長することが必要とされる。
【０００５】
このようなデータ処理装置を実現するための手段として、複数の動作モードのように予め準備された限定的な機能変更のみ可能となる専用の論理回路を設計し、それらを組み合わせた専用ＬＳＩを搭載することが考えられる。この専用ＬＳＩは、高性能化、低消費電力化の達成という観点では一般的にもっとも優れた実現手段と考えられるが、専用ＬＳＩの再設計を行わない限り機能の変更・追加ができず、また設計に要する開発期間が長くなってしまう。
【０００６】
上記データ処理装置を実現するための別の手段として、汎用マイクロプロセッサを搭載し、このプロセッサ上で実行される一連の命令列からなるソフトウェアにより各種処理を実現する方法が考えられる。この場合、ソフトウェアを修正又は追加することにより、データ処理装置のハードウェアを変更することなく高機能化、機能の変更及び追加を実現できる。しかしながら、最先端のマイクロプロセッサにおいても同時に実行可能な命令はたかだか数命令であり、命令の逐次処理を基本とするデータ処理装置で高スループットの処理を実現するには、極めて高いクロック周波数で動作するプロセッサを搭載しなければならず、消費電力が増大する。また、プロセッサの処理性能を引き出すためには、分岐予測など演算以外の制御論理を必要とし、演算器本体の論理規模が相対的に低下することから、ハードウェア規模に対する処理効率が低下することが考えられる。
【０００７】
上記データ処理装置を実現するための別の手段として、ＦＰＧＡ（Field Programmable Gate Array）と呼ばれる再構成可能なＬＳＩを用いる方法が考えられる。ＦＰＧＡは、多数のＬＵＴ（Lookup Table）が経路変更可能なバスにより接続された内部構成をもち、ＬＵＴの動作内容やＬＵＴ間の接続を定義する構成情報をＬＳＩに外付けされたメモリから読み込むことにより、ＬＳＩ内に任意の機能を実現できるという特長がある。基本的に、ＬＵＴの動作内容及びＬＵＴ間の接続は１ビット単位で設定可能であるため、所定の機能をＬＳＩ上に実現する際の柔軟性が高い反面、画像・音声処理など多ビットの演算を主体とする応用分野では面積オーバヘッドが大きくなってしまう。
【０００８】
ここで、特許文献１記載の技術によれば、多数の演算器に対するデータの供給量を確保しないと演算器の待ちが発生してしまい、十分な性能を得ることができないことから、演算用データ及び演算結果の格納用に内蔵メモリを用意し、外部メモリなどからの転送遅延を隠蔽する手法がとられている。さらに同時に複数の演算器にデータを供給、若しくは演算結果の保存をするため、この内蔵メモリは複数のメモリバンクから構成される。このような内蔵メモリは、フレキシブルプロセッサが接続されているシステムからは、連続したアドレスを持つメモリとして設計されるが、フレキシブルプロセッサからは、複数のメモリとして認識、区別され、特定の演算器に対する入力元若しくは出力先として利用される。そのため、ＣＰＵ（Central Processing Unit）や、ＤＭＡＣ（Direct Memory Access Controller）などを使って、外部メモリとフレキシブルプロセッサの内蔵メモリ間でデータ転送を行う場合、単純な転送では、必ずしも適切なデータ配置を行うことができない場合がある。これは、フレキシブルプロセッサの演算に適したデータ配置が、複数の内蔵メモリにデータを配置する(離散的なアドレスに配置する)場合が多いという特徴と、ＤＭＡＣによるデータ転送に適したデータ配置が、連続したアドレスで配置されていることであるという特徴の差異によるものである。これは、プログラム作成時に静的にデータの配置を工夫するか、あるいはＣＰＵやＤＭＡＣを利用してデータの再配置を行うか、若しくは、フレキシブルプロセッサ内部の演算器をデータ転送用に使用してデータの再配置を行うことで回避することができる。しかし動的にデータが供給されるシステムでは、ＣＰＵやＤＭＡＣを利用してデータを再配置するか、フレキシブルプロセッサ内部でデータの再配置を行うしかない。そのため、データ再配置にＣＰＵやＤＭＡＣを利用した場合は、ＣＰＵやＤＭＡＣへの負荷の増加、システムバスへのトランザクションの増加を招き、フレキシブルプロセッサ内部でデータ再配置を行った場合は、フレキシブルプロセッサの利用率と演算性能の低下につながる。さらに、ＣＰＵやＤＭＡＣを利用したデータ再配置は、フレキシブルプロセッサの利用状況やデータ並べ替えの有無によって、ＣＰＵや、ＤＭＡＣ、システムバスへの負荷が変動するため、タスクスケジューリングや、システムバス帯域の設計など、システム全体の設計難易度が高くなる。
【０００９】
本発明の目的は、システム設計を容易にするための半導体集積回路を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１２】
すなわち、演算器アレイと、メモリアレイと、上記演算器アレイと、上記メモリアレイと、上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路と、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路とを設ける。さらに上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部と、上記構成情報の切替えを制御可能な状態遷移管理部とを設ける。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を設ける。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１４】
本発明により、システム設計を容易にするための半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１５】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路は、それぞれ所定の演算処理を実行可能な複数の演算器が配列されて成る演算器アレイ（１０２）と、それぞれ上記演算器アレイで演算されるデータを保持可能な複数のメモリが配列されて成るメモリアレイ（１０３）と、上記演算器アレイと、上記メモリアレイに格納されるデータの配列を変更可能なデータ転送回路（１０８，７０１，１１０１，１５０１）と、上記メモリアレイと、上記データ転送回路との間のデータ転送路切替を可能とするスイッチ回路（１０４）とを含む。さらに上記半導体集積回路は、上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路における論理的動作を定義する構成情報を管理する構成情報管理部（１０６）と、上記演算器アレイ、上記メモリアレイ、上記データ転送回路、及び上記スイッチ回路に対して上記構成情報の切替えを制御可能な状態遷移管理部（１０５）とを含む。そして、上記データ転送回路は、上記構成情報に含まれる設定に従って、データの入れ替えのタイミングを判定し、自律的にデータ入れ替えを実行可能な制御回路を含む。
【００１７】
上記の構成によれば、独立性の高いフレキシブルプロセッサなどの半導体集積回路を、システムへ組み込むことが可能となる。すなわち、上記半導体集積回路内部でのデータ再配置が可能となるため、従来の専用回路と同等のデータ転送を考慮すればシステムへ組み込むことが可能となる。その結果、システム全体の設計難易度が下がる。また、上記半導体集積回路で動作するプログラムに関しても、ＣＰＵ、ＤＭＡＣなどへの依存度が低くなるため、システム構成の変更などに対するフレキシブルプロセッサの可用性が高まる。
【００１８】
〔２〕上記半導体集積回路は、システムバスに結合され、上記データ転送回路は、上記システムバス（１０９）を介して取り込まれたデータの自律的変更を行うように構成することができる。
【００１９】
〔３〕上記スイッチ回路は、データ転送経路の切り替えを可能とするクロスバスイッチとすることができる。
【００２０】
〔４〕上記データ転送回路は、データ転送を行うためのデータ処理回路（４０３）と、上記構成情報管理部によってコンフィグレーション切替指示がなされた場合に上記データ処理回路に対してデータ転送を開始させるデータ転送制御回路（４０１）とを含んで構成することができる。このとき、上記データ処理回路は、上記構成情報管理部から伝達された構成情報に基づいて、データ転送元アドレス及びデータ転送先アドレスを生成するデータ入出力制御回路（４０４）と、上記データ転送元アドレスに対応するデータを上記データ転送先アドレスに応じた転送先に転送するためのデータ変更回路（４０５）とを含んで構成することができる。
【００２１】
〔５〕上記データ転送制御回路は、上記データ処理回路でのデータ転送において、エラーが発生したか否かの判定を行い、エラーが発生した場合には、上記データ処理回路でのデータ転送を中止して割込み要求を行うように構成することができる。
【００２２】
〔６〕上記データ転送回路は、データ転送を行うためのデータ処理回路（４０３）と、上記データ処理回路でのデータ転送を制御可能なシーケンシャルデータ転送制御回路（８０１）と、を含んで構成することができる。上記シーケンシャルデータ転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能なテーブル（８０２）を含み、上記テーブルから構成情報を順次読み出して、上記データ処理回路でのデータ転送をシーケンシャルに制御可能に構成することができる。
【００２３】
〔７〕上記データ転送回路は、データ圧縮及び展開処理が可能なデータ圧縮／展開処理回路（１２０３）と、上記データ圧縮／展開処理回路の動作を制御可能なデータ圧縮／展開転送制御回路（１２０１）とを含んで構成することができる。このとき、上記データ圧縮／展開転送制御回路は、上記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路（１２０２）を含み、この保持回路に保持された構成情報に基づいて、上記データ圧縮／展開処理回路でのデータ圧縮又は展開処理を制御し、データ圧縮又は展開処理されたデータの転送を制御することができる。
【００２４】
〔８〕上記データ転送回路は、ストリームデータの転送を可能とするストリームデータ処理回路（１６０３）と、上記ストリームデータ処理回路でのデータ転送を制御可能なストリームデータ転送制御回路（１６０１）とを含んで構成することができる。上記ストリームデータ転送制御回路は、記構成情報管理部から伝達された複数の構成情報を保持可能な保持回路（１６０２）を含み、この保持回路に保持された構成情報に基づいて、上記ストリームデータ処理回路でのデータ転送を制御するように構成することができる。
【００２５】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２６】
図１には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムＬＳＩが示される。図１に示されるシステムＬＳＩは、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２７】
１０１はフレキシブルプロセッサであり、このフレキシブルプロセッサ１０１は、機能の瞬時切り換えを可能とする。１０２は演算器アレイ（ＯＰ−ＡＲＹ）であり、この演算器アレイ１０２は、それぞれ所定の演算処理を実行可能な複数の演算器がアレイ状に配列されて成り、回路の論理的動作を定義する構成情報に従ってそれらの接続関係の変更が可能とされる。１０３は内蔵メモリアレイ（ＭＥＭ−ＡＲＹ）であり、この内蔵メモリアレイ１０３は、複数のロードストアインタフェースとメモリバンクを含んで成る。メモリバンクには、上記演算器アレイ１０２で演算されるデータを格納することができる。１０８はデータ転送ユニット（ＤＡＴＡ−ＦＷＤ）であり、このデータ転送ユニット１０８はデータ転送を制御する。また、このデータ転送ユニット１０８は、上記構成情報に含まれる設定に従って、上記内蔵メモリアレイ１０３に格納されるデータの配列を変更する機能を有する。１０４はクロスバスイッチ（ＣＢＳＷ）であり、このクロスバスイッチ１０４は、演算器アレイ１０２、内蔵メモリアレイ１０３とデータ転送ユニット１０８とを構成情報に従って相互に接続することができる。１０５はシーケンスマネージャ（ＳＥＱ−ＭＮＧ）であり、このシーケンスマネージャ１０５は、構成情報の切替タイミングを検出し、演算器アレイ１０２、内蔵メモリアレイ１０３、クロスバスイッチ１０４、データ転送ユニット１０８に構成情報の切替指示を出す。１０６はコンフィグレーションマネージャであり、このコンフィグレーションマネージャ１０６は、前記シーケンスマネージャ１０５の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ１０２、内蔵メモリアレイ１０３、クロスバスイッチ１０４、データ転送ユニット１０８に転送する。１０７はバスインタフェース（ＢＵＳ−ＩＮＴＦ）であり、このバスインタフェース１０７は、フレキシブルプロセッサの内外を接続し、演算用データや演算結果、構成情報などを転送する。１１０は割込み要求制御回路（ＩＮＴ−ＣＮＴ）であり、この割込み要求制御回路１１０は、フレキシブルプロセッサ１０１の内部で発生した割込み要因を割込み要求として通知する。１０９はシステムバス（ＳＹＳ−ＢＵＳ）であり、このシステムバス１０９を介して、フレキシブルプロセッサ１０１内のバスインタフェース１０７、割込みコントローラ１１１、ＣＰＵ１１２、及びメモリ（ＳＭＥＮ）１１３が、互いに信号のやり取り可能に結合される。１１１は割込みコントローラ（ＩＮＴＣ）であり、この割込みコントローラ１１１は、割込み要求を統括する。１１２はＣＰＵであり、このＣＰＵ１１２は、システム全体の動作制御を司る。メモリ１１３には、プログラムやデータが格納される。
【００２８】
尚、図１に示される半導体集積回路は、単一ＬＳＩとして構成された場合を想定しているが、バスインタフェース１０７と、システムバス１０９、割り込みコントローラ１１１、ＣＰＵ１１２、メモリ１１３は、必ずしも同一のＬＳＩ上に構成される必要はなく、外部ピンなどを介して結合される別のＬＳＩ上に存在していてもよい。
【００２９】
図２には、上記演算器アレイ１０２の構成例が示される。
【００３０】
演算器アレイ１０２は、アレイ状に配列された複数の演算器２０１を含む。演算器２０１は、コンフィギュレーションマネージャ１０６から構成情報を受け取り、シーケンスマネージャ１０６からの切替指示に従って演算内容や他の演算器２０１との間の接続を変更する。尚、図２では、１種類の演算器２０１から構成されているが、種類の異なる複数の演算器が任意の数だけ混在していてもよい。また、図２では、演算器２０１同士の接続が隣接した演算器２０１のみになっているが、そのような接続に限定されない。
【００３１】
図３には、上記内蔵メモリアレイ１０３の構成例が示される。
【００３２】
内蔵メモリアレイ１０３は、複数のロードストアインタフェース３０１と、このロードストアインタフェース３０１によりアクセス制御されるメモリバンク（ＭＢＮＫ）３０２を含んで成る。ロードストアインタフェースは、コンフィギュレーションマネージャ１０６から構成情報を受け取り、シーケンスマネージャ１０６からの切替指示に従ってロード、ストアなどの処理や、転送サイズなどを変更する。尚、図３においてメモリバンク３０２は、ロードストアインタフェース３０１に対して１対１となっているが、複数のメモリバンク３０２を搭載してもよい。また、メモリバンク３０２のポート数はシングルポートだけではなく、複数のポートを搭載してもよい。システムバスからメモリバンク３０２にロードストアを行う際は、バスインタフェース１０７がアドレスから適切なロードストアインタフェースを選択し、データをやり取りする。また、演算器アレイ１０２からメモリバンク３０２にロードストアを行う際は、クロスバスイッチ１０４に適切な構成情報を設定し、演算器アレイ１０２外部と接続可能なポートを持った任意の演算器２０１と、クロスバスイッチ１０４経由で接続する。
【００３３】
図４には、データ転送ユニット１０８の構成例が示される。
【００３４】
データ転送ユニット１０８は、データ転送制御回路（ＦＷＤ−ＣＮＴ）４０１と、データ処理回路４０３、入力バッファ（ＩＮ−ＢＵＦ）４０６、出力バッファ（ＯＵＴ−ＢＵＦ）４０７を含んで成る。データ転送制御回路４０１は、内部に構成情報保持回路（ＲＥＧ）４０２を持ち、コンフィグレーションマネージャ１０６からの構成情報を保持する。データ転送制御回路４０１は、シーケンスマネージャ１０５から切替指示を受けると、構成情報保持回路４０２に保持している構成情報に基づいて、データ処理回路４０３に処理を行うよう指示を行う。またデータ転送制御回路４０１は、データ転送ユニット１０８内で発生したエラーを検出し、割込み要求制御回路１１０に通知する。データ処理回路４０３は、内部にデータ入出力制御回路４０４とデータ変更回路（ＤＣＨ）４０５を持つ。データ入出力制御回路４０４は、データ転送制御回路４０１から処理開始の指示を受けると、構成情報保持回路４０２に保持されている構成情報に基づいて転送開始要求とともに、転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ１０４経由で、内蔵メモリアレイ１０３内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース３０１に送信されるか、若しくは直接バスインタフェース１０７に対して送信される。要求を受けたロードストアインタフェース３０１は、メモリバンク３０２からデータを読み出し、データ転送ユニット１０８の入力バッファ４０６にデータを送信する。また、バスインタフェース１０７が要求を受けた場合は、システムバス１０９に要求が伝えられ、その要求に対応するデータは、データ転送ユニット１０８の入力バッファ４０６に転送される。入力バッファ４０６に蓄積されたデータは、データ変更回路４０５において、構成情報に基づく操作が行われることで出力バッファ４０７に格納される。その後データ入出力制御回路４０４は、構成情報保持回路４０２に保持されている構成情報に基づいて再度転送開始要求と出力バッファ４０７に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース３０１若しくはバスインタフェース１０７に送信され、最終的にはメモリバンク３０２のいずれか、若しくはシステムバス１０９経由でフレキシブルプロセッサ１０１の外部に転送される。
【００３５】
図５には、構成情報保持回路４０２に格納される構成情報の一例が示される。
【００３６】
構成情報保持回路４０２には、転送処理コマンド５０１、転送元アドレス５０２、転送先アドレス５０３、転送元アドレスストライド幅５０４、転送先アドレスストライド幅５０５、転送回数５０６が格納される。尚、この格納順は、順序が入れ替わっていてもよい。転送処理コマンド５０１は、データ処理回路４０３で行う処理を示すコマンドを含む。このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス５０２には、データ転送ユニット１０８が転送を開始するアドレスが含まれる。転送先アドレス５０３には、データ転送ユニット１０８がデータを送信するアドレスが含まれる。転送元ストライド幅５０４、転送先ストライド幅５０５には、それぞれ転送先アドレス５０２と、転送元アドレス５０３に対して転送を行うたびに加算若しくは減算されるアドレス量が含まれる。転送回数５０６には、転送処理コマンド５０１により指定された処理を行う回数が含まれる。
【００３７】
次に、図６に示すフローチャートを参照しながら、データ転送制御回路４０１及びデータ処理回路４０３の動作を説明する。
【００３８】
フレキシブルプロセッサ１０１の処理が開始されたら、データ転送制御回路４０１において、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生させたか否かの判別が行われる（ステップ６１）。この判別において、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生させた（ＹＥＳ）と判断された場合には、データ転送制御回路４０１によって、データ処理回路４０３を起動させ、構成情報保持回路４０２に保持している構成情報に従ってデータ転送を開始する（ステップ６２）。この転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因が発生したか否かの判別が、データ転送制御回路４０１において行われる（ステップ６３）。この判別において、エラー要因が発生しない（Ｎｏ）と判断された場合には、データ転送が終了したか否かの判別が行われる（ステップ６４）。上記ステップ６３の判別において、エラー要因が発生した（Ｙｅｓ）と判断された場合には、上記データ処理回路４０３でのデータ転送を中止して、割込み要求制御回路１１０に割込み要求を通知し、コンフィグレーション切替指示を待つ状態に遷移する（ステップ６５）。この場合、割込み要求は、割込み要求制御回路１１０から割込みコントローラ１１１に伝達され、ＣＰＵ１１２で所定の割込み処理が行われる。また、上記ステップ６３の判別において、エラー要因が発生しない（Ｎｏ）と判断された場合には、転送が終了したか否かの判別が行われる（ステップ６４）。この判別において、転送が終了していない（Ｎｏ）と判断された場合には、上記ステップ６２のデータ転送処理に移行される。また、上記ステップ６４の判別において、転送が終了した（Ｙｅｓ）と判断された場合には、上記ステップ６１の判別に戻される。
【００３９】
尚、ＣＰＵ１１２がフレキシブルプロセッサ１０１と同じＬＳＩ上に混載されていない場合には、データ転送制御回路４０１からのエラー通知を保持するレジスタを設け、このレジスタの保持情報を外部からＣＰＵによって確認可能とするとよい。あるいは、上記エラー通知を、フレキシブルプロセッサ１０１が搭載されているＬＳＩの外部ピンから観測可能にしてもよい。
【００４０】
上記例によれば、以下の作用効果を得ることができる。
【００４１】
上記構成のフレキシブルプロセッサ１０１によれば、コンフィグレーション切替発生に同期して、ＣＰＵやＤＭＡＣを使わずに自動的に内蔵メモリアレイ１０３内のメモリバンク３０２同士のデータ再配置、若しくは内蔵メモリアレイ１０３内のメモリバンク３０２とフレキシブルプロセッサ１０１の外部との間でデータ転送が可能となる。フレキシブルプロセッサ１０１内部でのデータ再配置が可能となるため、従来の専用回路と同等のデータ転送を考慮すればシステムへ組み込むことが可能となる。その結果、システム全体の設計難易度が下がる。また、フレキシブルプロセッサで動作するプログラムに関しても、ＣＰＵ、ＤＭＡＣなどへの依存度が低くなるため、システム構成の変更などに対するフレキシブルプロセッサの可用性が高まる。
【００４２】
図７には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムＬＳＩの別の構成例が示される。
【００４３】
図７に示されるシステムＬＳＩが、図１に示されるのと大きく相違するのは、データ転送ユニット１０８に代えて、内蔵メモリアレイ１０３内のデータ再配置をシーケンシャルに行うシーケンシャルデータ転送ユニット（ＳＱＣ−ＤＡＴＡ−ＦＷＤ）７０１が設けられている点である。演算器アレイ１０２、内蔵メモリアレイ１０３、及びこのシーケンシャルデータ転送ユニット７０１は、クロスバスイッチ１０４によって互いにデータのやり取り可能に結合されている。シーケンスマネージャ１０５は、内蔵メモリアレイ１０３、クロスバスイッチ１０４、シーケンシャルデータ転送ユニット７０１に構成情報の切替指示を出す。コンフィグレーションマネージャ１０６は、前記シーケンスマネージャ１０５の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ１０２、内蔵メモリアレイ１０３、クロスバスイッチ１０４、シーケンシャルデータ転送ユニット７０１に転送する。
【００４４】
図８には、上記シーケンシャルデータ転送ユニット７０１の構成例が示される。
【００４５】
シーケンシャルデータ転送ユニット７０１は、図８に示されるように、シーケンシャルデータ転送制御回路（ＳＱＣ−ＦＷＤ−ＣＮＴ）８０１と、データ処理回路４０３、入力バッファ４０６、出力バッファ４０７を含む。シーケンシャルデータ転送制御回路８０１は、内部に構成情報保持テーブル回路（ＴＢ）８０２を持ち、コンフィグレーションマネージャ１０６から伝達された構成情報を複数保持する。また、シーケンシャルデータ転送制御回路８０１は、シーケンシャルデータ転送ユニット７０１内で発生したエラーを検出し、割込み要求制御回路１１０に通知する。
【００４６】
図９には、上記構成情報保持テーブル回路８０２の構成例が示される。
【００４７】
構成情報保持テーブル回路８０２は、構成情報を任意の数のエントリー（Entry）としてテーブルに保持する。各エントリーには、転送処理コマンドフィールド９０１、転送元アドレスフィールド９０２、転送先アドレスフィールド９０３、転送元アドレスストライド幅フィールド９０４、転送先アドレスストライド幅フィールド９０５、転送回数フィールド９０６、後続処理指定フィールド９０７を持つ。尚、この格納順は、順序が入れ替わっていてもよい。各エントリーの転送処理コマンドフィールド９０１は、データ処理回路４０３で行う処理を示すコマンドを保持する。尚、このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレスフィールド９０２には、シーケンシャルデータ転送ユニット７０１が転送を開始するアドレスが、転送先アドレスフィールド９０３には、シーケンシャルデータ転送ユニット７０１がデータを送信するアドレスが保持される。各エントリーの転送元ストライド幅フィールド９０４、転送先ストライド幅フィールド９０５は、それぞれ同一エントリーの転送先アドレスフィールド９０２と、転送元アドレスフィールド９０３に対して転送を行うたびに加算若しくは減算されるアドレス量を保持する。各エントリーの転送回数フィールド９０６は、同一エントリーの転送処理コマンドフィールド９０１により指定された処理を行う回数を保持する。また、各エントリーの後続処理指定フィールド９０７は、当該エントリーの処理が終了した後、開始するエントリー番号若しくは終了指示コードを保持する。尚、終了指示コードは少なくとも１つ定義されていればよく、またエントリー番号と重複することがなければ、任意に定義できるものとする。
【００４８】
上記構成のシーケンシャルデータ転送制御回路８０１は、シーケンスマネージャ１０５から切替指示を受けると、構成情報保持テーブル回路８０２に保持しているエントリー群から適切なエントリーを読み出し、データ処理回路４０３に処理を行うよう指示を行う。データ処理回路４０３によるデータ転送が終了した後、当該エントリーの後続処理指定フィールド９０７に、終了指示コードが保持されている場合は動作を停止し、シーケンスマネージャ１０５から切替指示を待つ状態に遷移し、エントリー番号が指定されている場合は、構成情報保持テーブル回路８０２に保持しているエントリー群から指定されたエントリーを読み出し、再度データ処理回路４０３に処理を開始するよう指示を行う。
【００４９】
図８に示されるデータ処理回路４０３は、内部にデータ入出力制御回路（ＤＩＯ−ＣＮＴ）４０４とデータ変更回路（ＤＣＨ）４０５を持つ。データ入出力制御回路４０４は、シーケンシャルデータ転送制御回路８０１から処理開始の指示を受けると、構成情報保持テーブル回路８０２に保持されている保持しているエントリー群から適切なエントリーを読み出し、それに基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ１０４経由で内蔵メモリアレイ１０３内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース３０１に送信されるか、若しくは直接バスインタフェース１０７に対して送信される。要求を受けたロードストアインタフェース３０１は、メモリバンク３０２からデータを読み出し、シーケンシャルデータ転送ユニット７０１の入力バッファ４０６にデータを送信する。また、バスインタフェース１０７が要求を受けた場合は、システムバス１０９に要求が伝えられ、その要求に対応するデータは、シーケンシャルデータ転送ユニット７０１の入力バッファ４０６に転送される。入力バッファ４０６に蓄積されたデータは、データ変更回路４０５において、エントリー情報に基づいて操作が行われ、出力バッファ４０７に格納される。その後データ入出力制御回路４０４は、エントリー情報に基づいて再度転送開始要求と出力バッファ４０７に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース３０１若しくはバスインタフェース１０７に送信され、最終的にはメモリバンク３０２のいずれか、若しくはシステムバス１０９経由でフレキシブルプロセッサ１０１の外部に転送される。
【００５０】
次に、図１０に示すフローチャートを参照しながら、シーケンシャルデータ転送制御回路８０１、及びデータ処理回路４０３の動作を説明する。
【００５１】
フレキシブルプロセッサ１０１の処理が開始されたら、データ転送制御回路８０１において、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生させたか否かの判別が行われる（ステップ１００１）。この判別において、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生させた（ＹＥＳ）と判断された場合には、シーケンシャルデータ転送制御回路８０１は、構成情報保持テーブル回路８０２を参照して構成情報で指定されたエントリーを読み出し（ステップ１００２）、データ処理回路４０３を起動させ、エントリー情報に従ってデータ転送を開始する（ステップ１００３）。そして、エラーが発生したか否かの判別が行われる（ステップ１００４）。エントリー情報に従ってデータ転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因がなければ、データ転送を完了さる。また、上記ステップ１００４の判別において、エラーが発生した（Ｙｅｓ）と判断された場合には、転送を停止し、割込み要求制御回路１１０に通知し（ステップ１００７）、コンフィグレーション切替指示を待つ状態に遷移する。上記ステップ１００４でエラーが発生しない（Ｎｏ）と判断された場合には、転送が終了したか否かの判別が行われる（ステップ１００５）。エラーが発生せずに転送が終了した場合、エントリーの後続処理指定フィールド９０７がチェックされ、終了指示コードが保持されている場合は動作を停止し、シーケンスマネージャ１０５から切替指示を待つ状態に遷移する。また、エントリーの後続処理指定フィールド９０７にエントリー番号が指定されている場合は、構成情報保持テーブル回路８０２に保持しているエントリー群から指定されたエントリーを読み出し、再度データ処理回路４０３に処理を開始するよう指示を行う。
【００５２】
上記の構成によれば、シーケンシャルデータ転送ユニット７０１用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、ＣＰＵやＤＭＡＣを使わずに自動的に、内蔵メモリアレイ１０３内のメモリバンク３０２同士のデータ再配置、若しくは内蔵メモリアレイ１０３内のメモリバンク３０２とフレキシブルプロセッサ１０１外部のアドレスとの間でデータ転送を複数組み合わせて実行可能となる。
【００５３】
図１１には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムＬＳＩの構成例が示される。
【００５４】
図１１に示されるシステムＬＳＩが図１に示されるのと大きく相違するのは、データ転送ユニット１０８に代えて、内蔵メモリアレイ１０３内のデータの圧縮と再配置を行うデータ圧縮転送ユニット（ＤＡＴＡ−ＣＯＭＰ−ＦＷＤ）１１０１が設けられている点である。演算器アレイ１０２、内蔵メモリアレイ１０３、及びデータ圧縮転送ユニット１１０１は、クロスバスイッチ１０４によって互いにデータのやり取り可能に結合されている。シーケンスマネージャ１０５は、内蔵メモリアレイ１０３、クロスバスイッチ１０４、データ圧縮転送ユニット１１０１に構成情報の切替指示を出す。コンフィグレーションマネージャ１０６は、前記シーケンスマネージャ１０５の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ１０２、内蔵メモリアレイ１０３、クロスバスイッチ１０４、データ圧縮転送ユニット１１０１に転送する。
【００５５】
図１２には、上記データ圧縮転送ユニット１１０１の構成例が示される。
【００５６】
データ圧縮転送ユニット１１０１は、データ圧縮／展開転送制御回路（ＣＯＭＰ−ＦＷＤ−ＣＮＴ）１２０１と、データ圧縮／展開処理回路１２０３、入力バッファ（ＩＮ−ＢＵＦ）４０６、出力バッファ（ＯＵＴ−ＢＵＦ）４０７を含んで成る。データ圧縮／展開転送制御回路１２０１は、内部に構成情報保持回路（ＲＥＧ）１２０２を持ち、コンフィグレーションマネージャ１０６からの構成情報を保持する。データ圧縮／展開転送制御回路１２０１は、シーケンスマネージャ１０５から切替指示を受けると、構成情報保持回路１２０２に保持している構成情報に基づいて、データ圧縮／展開処理回路１２０３に処理を行うよう指示を行う。また、データ圧縮／展開転送制御回路１２０１は、データ圧縮転送ユニット１１０１内で発生したエラーを検出し、割込み要求制御回路１１０に通知する。データ圧縮／展開処理回路１２０３は、内部にデータ入出力制御回路（ＤＩＯ−ＣＮＴ）１２０４とデータ圧縮／展開回路（ＤＣＯＭ）１２０５を持つ。データ入出力制御回路１２０４は、データ圧縮／展開転送制御回路１２０１から処理開始の指示を受けると、構成情報保持回路１２０２に保持されている構成情報に基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ１０４経由で内蔵メモリアレイ１０３内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース３０１に送信されるか、若しくは直接バスインタフェース１０７に対して送信される。要求を受けたロードストアインタフェース３０１は、メモリバンク３０２からデータを読み出し、データ圧縮転送ユニット１１０１の入力バッファ４０６にデータを送信する。また、バスインタフェース１０７が要求を受けた場合は、システムバス１０９に要求が伝えられ、その要求に対応するデータは、データ圧縮転送ユニット１１０１の入力バッファ４０６に転送される。入力バッファ４０６に蓄積されたデータは、データ圧縮／展開回路１２０５において、構成情報に基づいて圧縮又は展開が行われ、出力バッファ４０７に格納される。その後データ入出力制御回路１２０４は、構成情報保持回路１２０２に保持されている構成情報に基づいて再度転送開始要求と出力バッファ４０７に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース３０１若しくはバスインタフェース１０７に送信され、最終的にはメモリバンク３０２のいずれか、若しくはシステムバス１０９経由でフレキシブルプロセッサ１０１の外部に転送される。
【００５７】
図１３には、構成情報保持回路１２０２に格納される構成情報の一例が示される。
【００５８】
構成情報保持回路１２０２は、圧縮／展開転送処理コマンド１３０１、転送元アドレス１３０２、転送先アドレス１３０３、転送元アドレスストライド幅１３０４、転送先アドレスストライド幅１３０５、転送回数１３０６、圧縮／展開形式１３０７の各情報を格納する。尚、この情報の格納順は、任意とされる。圧縮／展開転送処理コマンド１３０１は、データ圧縮／展開処理回路１２０３で行う処理を示すコマンドを保持する。尚、このコマンドは、転送及び圧縮／展開、若しくはその両方の組み合わせなどの処理がユニークに識別できればよく、圧縮／展開転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス１３０２には、データ圧縮転送ユニット１１０１が圧縮／展開転送を開始するアドレスが含まれ、転送先アドレス１３０３には、データ圧縮転送ユニット１１０１がデータを送信するアドレスが含まれる。転送元ストライド幅１３０４、転送先ストライド幅１３０５は、それぞれ転送先アドレス１３０２と、転送元アドレス１３０３に対して転送を行うたびに加算若しくは減算されるアドレス量によって更新される。転送回数１３０６は、圧縮／展開転送処理コマンド１３０１により指定された処理を行う回数によって更新される。圧縮／展開形式１３０７には、データ圧縮／展開処理回路１２０３で用いるべき圧縮／展開アルゴリズム指定情報が含まれる。尚、圧縮／展開形式１３０７で指定可能な圧縮／展開形式は、データ圧縮／展開処理回路１２０３で処理可能な圧縮／展開アルゴリズムのみである。また、圧縮／展開形式１３０７は、圧縮／展開転送処理コマンド１３０１に含めることが可能であり、必ずしも分離する必要はないが、圧縮／展開転送処理コマンド１３０１のデコード時間を考慮すると分離するほうがよい。
【００５９】
次に、図１４に示すフローチャートを参照しながら、データ圧縮／展開転送制御回路１２０１及びデータ圧縮／展開処理回路１２０３の動作を説明する。
【００６０】
フレキシブルプロセッサ１０１の処理が開始されたら、データ圧縮／展開転送制御回路１２０１は、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生するのを待つ（ステップ１４０１）。コンフィグレーション切替指示が発生される（Ｙｅｓ）と、データ圧縮／展開転送制御回路１２０１は、構成情報保持回路１２０２に保持している構成情報に従ってデータの読み込みを行う（ステップ１４０２）。読み込みが終わると、データ圧縮／展開処理回路１２０３を起動させ、構成情報保持回路１２０２に保持している構成情報に従ってデータの圧縮／展開を開始する（ステップ１４０３）。そして、データの圧縮／展開が完了した後、構成情報保持回路１２０２に保持している構成情報に従ってデータの転送(書き込み)を行う（ステップ１４０４）。この圧縮／展開、転送(読み込み／書き込み)の際、データ圧縮／展開処理回路１２０３の処理不可能な圧縮／展開アルゴリズムが指定されている場合や、不当なアドレスへの転送、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ圧縮／展開及び転送を阻害するエラーが発生したか否かの判別が行われる（ステップ１４０５）。エラー要因がなければ、データの圧縮／展開と転送が完了するまで繰返される（ステップ１４０６）。また、上記ステップ１４０４の判別において、エラーが発生した（Ｙｅｓ）と判断された場合には、圧縮／展開及び転送を停止し、割込み要求制御回路１１０に通知し（ステップ１４０７）、コンフィグレーション切替指示を待つ状態に遷移する。
【００６１】
このように、データ圧縮転送ユニット１１０１用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、ＣＰＵやＤＭＡＣを使わずに自動的に内蔵メモリアレイ１０３内のメモリバンク３０２同士のデータ圧縮転送、展開を伴う再配置などの複雑なデータ転送、若しくは内蔵メモリアレイ１０３内のメモリバンク３０２とフレキシブルプロセッサ１０１の外部との間でデータ圧縮転送が可能となる。
【００６２】
図１５には、本発明にかかる半導体集積回路の一例とされるフレキシブルプロセッサを含むシステムＬＳＩの構成例が示される。
【００６３】
図１５に示されるシステムＬＳＩが図１に示されるのと大きく相違するのは、フレキシブルプロセッサ１０１の外部に、映像や音声、アニメーションのストリームデータの入出力を可能とするストリーム入出力ユニット（ＳＩＯ）１５０２が配置されている点、及びデータ転送ユニット１０８に代えて、ストリーム入出力ユニット１５０２と内蔵メモリアレイ１０３との間のデータ転送を可能とするストリームデータ転送ユニット（ＳＴＲＭ−ＤＡＴＡ−ＦＷＤ）１５０１が設けられた点である。演算器アレイ１０２、内蔵メモリアレイ１０３、及びストリームデータ転送ユニット１５０１は、クロスバスイッチ１０４によって互いにストリームデータのやり取り可能に結合されている。シーケンスマネージャ１０５は、内蔵メモリアレイ１０３、クロスバスイッチ１０４、ストリームデータ転送ユニット１５０１に構成情報の切替指示を出す。コンフィグレーションマネージャ１０６は、前記シーケンスマネージャ１０５の指示に従い構成情報を切り替える際に使用する構成情報を、演算器アレイ１０２、内蔵メモリアレイ１０３、クロスバスイッチ１０４、ストリームデータ転送ユニット１５０１に転送する。
【００６４】
図１６には、上記ストリームデータ転送ユニット１５０１の構成例が示される。
【００６５】
ストリームデータ転送ユニット１５０１は、ストリームデータ転送制御回路（ＳＴＲＭ−ＦＷＤ−ＣＮＴ）１６０１と、ストリームデータ処理回路１６０３、入力バッファ（ＩＮ−ＢＵＦ）１６０６、出力バッファ（ＯＵＴ−ＢＵＦ）１６０７を含んで成る。ストリームデータ転送制御回路１６０１は、内部に構成情報保持回路（ＲＥＧ）１６０２を持ち、コンフィグレーションマネージャ１０６からの構成情報を保持する。ストリームデータ転送制御回路１６０１は、シーケンスマネージャ１０５から切替指示を受けると、構成情報保持回路１６０２に保持している構成情報に基づいて、ストリームデータ処理回路１６０３に処理を行うよう指示を行う。また、ストリームデータ転送制御回路１６０１は、ストリームデータ転送ユニット１５０１内で発生したエラーを検出し、割込み要求制御回路１１０に通知する。ストリームデータ処理回路１６０３は、内部にストリームデータ入出力制御回路（ＳＤＩＯ−ＣＮＴ）１６０４とストリームデータ変更回路（ＳＤＣＨ）１６０５を含む。ストリームデータ入出力制御回路１６０４は、ストリームデータ転送制御回路１６０１から処理開始の指示を受けると、構成情報保持回路１６０２に保持されている構成情報に基づいて転送開始要求とともに転送元アドレスなどの付帯情報を生成する。この転送開始要求は、特定の構成情報を持ったクロスバスイッチ１０４経由で内蔵メモリアレイ１０３内部の構成情報でクロスバスイッチに接続されているロードストアインタフェース３０１に送信されるか、若しくは直接バスインタフェース１０７に対して送信されるか、ストリーム入出力ユニット１５０２に送信される。要求を受けたロードストアインタフェース３０１は、メモリバンク３０２からデータを読み出し、ストリームデータ転送ユニット１５０１の入力バッファ１６０６にデータを送信する。また、バスインタフェース１０７が要求を受けた場合は、システムバス１０９に要求が伝えられ、その要求に対応するデータは、ストリームデータ転送ユニット１５０１の入力バッファ１６０６に転送される。同様に、ストリーム入出力ユニットが要求を受けた場合は、その要求に対応するデータは、ストリームデータ転送ユニット１５０１の入力バッファ１６０６に転送される。入力バッファ１６０６に蓄積されたデータは、ストリームデータ変更回路１６０５において、構成情報に基づいて操作が行われ、出力バッファ１６０７に格納される。その後ストリームデータ入出力制御回路１６０４は、構成情報保持回路１６０２に保持されている構成情報を基に再度転送開始要求と出力バッファ１６０７に格納されたデータの転送先アドレスなどの付帯情報を生成する。この要求は、前記のロードストアインタフェース３０１若しくはバスインタフェース１０７若しくはストリーム入出力ユニット１５０２に送信され、最終的にはメモリバンク３０２のいずれか、若しくはシステムバス１０９又はストリーム入出力ユニット経由でフレキシブルプロセッサ１０１の外部に転送される。
【００６６】
図１７には、構成情報保持回路１６０２に格納される構成情報が示される。
【００６７】
構成情報保持回路１６０２は、転送処理コマンド１７０１、転送元アドレス１７０２、転送先アドレス１７０３、転送元アドレスストライド幅１７０４、転送先アドレスストライド幅１７０５、転送回数１７０６を格納する。尚、この格納順は、順序が入れ替わっていてもよい。転送処理コマンド１７０１には、ストリームデータ処理回路１６０３で行う処理を示すコマンドが含まれる。尚、このコマンドは転送処理がユニークに識別できればよく、転送処理の種類が増えるにしたがって適切に定義すればよい。転送元アドレス１７０２には、ストリームデータ転送ユニット１５０１が転送を開始するアドレスとされる。転送先アドレス１７０３は、ストリームデータ転送ユニット１５０１がデータを送信するアドレスとされる。転送元ストライド幅１７０４、転送先ストライド幅１７０５は、それぞれ転送先アドレス１７０２、転送元アドレス１７０３に対して転送を行うたびに加算、若しくは減算されるアドレス量とされる。転送回数１７０６は、転送処理コマンド１７０１により指定された処理を行う回数とされる。また、ストリームデータの入出力時など、転送先、転送元アドレスなどが必要ない場合には、当該構成情報は参照されない。
【００６８】
尚、ストリーム入出力ユニット１５０２は、必ずしも入出力機構を持つ必要はなく、入力のみ、若しくは出力のみの構成でもよい。
【００６９】
次に、図１８に示すフローチャートを参照しながら、ストリームデータ転送制御回路１６０１及びデータ処理回路１６０３の動作を説明する。
【００７０】
フレキシブルプロセッサ１０１の処理が開始されたら、ストリームデータ転送制御回路１６０１は、コンフィグレーションマネージャ１０６がコンフィグレーション切替指示を発生させるのを待つ（ステップ１８０１）。切替指示が発生した場合（Ｙｅｓ）、ストリームデータ転送制御回路１６０１は、ストリームデータ処理回路１６０３を起動させ、構成情報保持回路１６０２に保持している構成情報に従ってデータ転送を開始する（ステップ１８０２）。この転送の際、不当なアドレスへの転送や、構成情報の異常、メモリへのアクセス競合、データ転送完了前のコンフィグレーション切替指示発生など、データ転送を阻害するエラー要因がなければ、データ転送を終了するか否かの判別を行う（ステップ１８０４）。また、上記ステップ１８０３の判別において、エラー要因が検出された場合は、転送を停止し、割込み要求制御回路１１０に通知し（ステップ１８０５）、コンフィグレーション切替指示を待つ状態に遷移する。
【００７１】
上記の構成によれば、ストリームデータ転送ユニット１５０１用の構成情報を利用することにより、コンフィグレーション切替発生に同期して、ＣＰＵやＤＭＡＣを使わずに自動的にストリーム入出力ユニット１５０２と内蔵メモリアレイ１０３内のメモリバンク３０２のデータ転送、若しくはストリーム入出力ユニット１５０２とフレキシブルプロセッサ１０１外部のアドレスとの間でデータ転送が可能となる。
【００７２】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７３】
例えば、構成情報保持回路１２０２を構成情報保持テーブル回路８０２のようなテーブル参照型の回路に変更することができ、かかる場合にはシーケンシャルに圧縮／展開転送処理が可能となる。
【００７４】
データ圧縮／展開転送用の回路の代わりに、若しくは追加する形で、その他データ処理の可能な回路(例えば暗号化用回路や、符号化回路など)を用いることができ、そのようにすることで、さらに高度な処理及び転送が可能となる。その際、構成情報保持回路１２０２の構成情報も拡張することで、より柔軟に処理が可能となる。また、構成情報保持テーブル回路８０２のようなテーブル参照型の回路に変更することで、シーケンシャルに処理を行うことが可能となる。
【００７５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフレキシブルプロセッサ１０１に適用した場合について説明したが、本発明はそれに限定されるものではなく、半導体集積回路に広く適用することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムＬＳＩの構成例ブロック図である。
【図２】図１に示されるシステムＬＳＩに含まれる演算器アレイの構成例ブロック図である。
【図３】図１に示されるシステムＬＳＩに含まれる内臓メモリアレイの構成例ブロック図である。
【図４】図１に示されるシステムＬＳＩに含まれるデータ転送ユニットの構成例ブロック図である。
【図５】図４に示されるデータ転送ユニットに含まれる構成情報保持回路に格納される構成情報の説明図である。
【図６】図４に示されるデータ転送ユニットの処理概要を示すフローチャートである。
【図７】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムＬＳＩの別の構成例ブロック図である。
【図８】図７に示されるシステムＬＳＩに含まれるシーケンシャルデータ転送ユニットの構成例ブロック図である。
【図９】図８に示されるシーケンシャルデータ転送ユニットに含まれる構成情報保持テーブル回路に格納される構成情報の説明図である。
【図１０】図８に示されるシーケンシャルデータ転送ユニットの処理概要を示すフローチャートである。
【図１１】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムＬＳＩの別の構成例ブロック図である。
【図１２】図１１に示されるフレキシブルプロセッサに含まれるデータ圧縮転送ユニットの構成例ブロック図である。
【図１３】図１１に示されるデータ圧縮転送ユニットに含まれる構成情報保持回路に格納される構成情報の説明図である。
【図１４】図１１に示されるデータ圧縮転送ユニットの処理概要を示すフローチャートである。
【図１５】本発明にかかる半導体集積回路の一例であるフレキシブルプロセッサを含むシステムＬＳＩの別の構成例ブロック図である。
【図１６】図１５に示されるフレキシブルプロセッサに含まれるストリームデータ転送ユニットの構成例ブロック図である。
【図１７】図１５に示されるストリームデータ転送ユニットに含まれる構成情報保持回路に格納される構成情報の構造である。
【図１８】図１５に示される上記ストリームデータ転送ユニットの処理概要を示すフローチャートである。
【符号の説明】
【００７７】
１０１  フレキシブルプロセッサ
１０２  演算器アレイ
１０３  内蔵メモリアレイ
１０４  クロスバスイッチ
１０５  シーケンスマネージャ
１０６  コンフィグレーションマネージャ
１０７  バスインタフェース
１０８  データ転送ユニット
１０９  システムバス
１１０  割込み要求制御回路
１１１  割込みコントローラ
１１２  ＣＰＵ
１１３  メモリ
２０１  演算器
３０１  ロードストアインタフェース
３０２  メモリバンク
４０１  データ転送制御回路
４０２  構成情報保持回路
４０３  データ処理回路
４０４  データ入出力制御回路
４０５  データ変更回路
４０６  入力バッファ
４０７  出力バッファ
５０１  転送処理コマンド
５０２  転送元アドレス
５０３  転送先アドレス
５０４  転送元アドレスストライド幅
５０５  転送先アドレスストライド幅
５０６  転送回数
７０１  シーケンシャルデータ転送ユニット
８０１  シーケンシャルデータ転送制御回路
８０２  構成情報保持テーブル回路
９０１  転送処理コマンドフィールド
９０２  転送元アドレスフィールド
９０３  転送先アドレスフィールド
９０４  転送元アドレスストライド幅フィールド
９０５  転送先アドレスストライド幅フィールド
９０６  転送回数フィールド
９０７  後続処理指定フィールド
１１０１  データ圧縮転送ユニット
１２０１  データ圧縮／展開転送制御回路
１２０２  構成情報保持回路
１２０３  データ圧縮／展開処理回路
１２０４  データ入出力制御回路
１２０５  データ圧縮／展開回路
１３０１  圧縮／展開転送処理コマンド
１３０２  転送元アドレス
１３０３  転送先アドレス
１３０４  転送元アドレスストライド幅
１３０５  転送先アドレスストライド幅
１３０６  転送回数
１３０７  圧縮／展開形式
１５０１  ストリームデータ転送ユニット
１５０２  ストリーム入出力ユニット
１６０１  ストリームデータ転送制御回路
１６０２  構成情報保持回路
１６０３  ストリームデータ処理回路
１６０４  ストリームデータ入出力制御回路
１６０５  ストリームデータ変更回路
１６０６  入力バッファ
１６０７  出力バッファ
１７０１  転送処理コマンド
１７０２  転送元アドレス
１７０３  転送先アドレス
１７０４  転送元アドレスストライド幅
１７０５  転送先アドレスストライド幅
１７０６  転送回数
【図１】
2008152409.tif 000003
【図２】
2008152409.tif 000004
【図３】
2008152409.tif 000005
【図４】
2008152409.tif 000006
【図５】
2008152409.tif 000007
【図６】
2008152409.tif 000008
【図７】
2008152409.tif 000009
【図８】
2008152409.tif 000010
【図９】
2008152409.tif 000011
【図１０】
2008152409.tif 000012
【図１１】
2008152409.tif 000013
【図１２】
2008152409.tif 000014
【図１３】
2008152409.tif 000015
【図１４】
2008152409.tif 000016
【図１５】
2008152409.tif 000017
【図１６】
2008152409.tif 000018
【図１７】
2008152409.tif 000019
【図１８】
2008152409.tif 000020