プロセッサ装置
【課題】ハードウェア資源を有効に活用できる動的再構成可能なプロセッサ装置を提案する。
【解決手段】本発明のプロセッサ装置1は、それぞれが同期動作し制御信号に応じた処理を行う複数の機能ブロック10a、10b、10cと、各機能ブロック10a、10b、10cの入出力11a〜12cの帯域幅よりも小さい帯域幅に変更可能であって各機能ブロック10a、10b、10c間を接続する接続手段30と、接続手段30の帯域幅を変更する第1の変更手段と、各機能ブロック10a、10b、10cの入出力データのデータ転送速度を変更する第2の変更手段と、第1の変更手段と第2の変更手段とを制御する制御手段50とを備えることを特徴とする。
【解決手段】本発明のプロセッサ装置1は、それぞれが同期動作し制御信号に応じた処理を行う複数の機能ブロック10a、10b、10cと、各機能ブロック10a、10b、10cの入出力11a〜12cの帯域幅よりも小さい帯域幅に変更可能であって各機能ブロック10a、10b、10c間を接続する接続手段30と、接続手段30の帯域幅を変更する第1の変更手段と、各機能ブロック10a、10b、10cの入出力データのデータ転送速度を変更する第2の変更手段と、第1の変更手段と第2の変更手段とを制御する制御手段50とを備えることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の機能ブロックを有するプロセッサ装置に関するものである。
【背景技術】
【0002】
近年、演算器、レジスタ、メモリなどからなる機能ブロックを複数備え、それらの機能ブロック間で相互にデータの送受信を行い、演算処理を行うプロセッサ装置が注目されている。
【0003】
このようなプロセッサ装置では、各機能ブロックにまんべんなく処理を割り振ることによって低消費電力で高い演算処理性能を実現することができるが、各機能ブロックにおける演算処理を制御するための制御情報が必要となる。
【0004】
ここで、各機能ブロックにおける演算処理を制御するための制御情報を、C言語で記述されたプログラムからコンパイラによって自動的に生成する技術が開示されている(例えば、非特許文献1。)。
【0005】
上記非特許文献1に開示されているコンパイラによって制御情報を自動的に生成する場合に、その制御情報に従って動作する各機能ブロックにできるだけ均等に処理を割り振るためには、一の機能ブロックとできるだけ多くの他の機能ブロックとが接続され、データの送受信が可能であることが望ましい。
【0006】
しかしながら、各機能ブロック間を接続する配線を増やすと、プロセッサ装置のチップ面積および消費電力の増大を招いてしまう。
【0007】
そこで、配線数を増加させることなく各機能ブロック間のデータの送受信の自由度を向上させるために、各機能ブロック間の接続を動的に切換え可能とする技術が開示されている(例えば、特許文献1。)。
【非特許文献1】“Architecture Exploration for a Reconfigurable Architecture Template“, IEEE Design & Test of Computers vol. 22, No.2, 2005
【特許文献1】国際公開WO2003/009125号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した特許文献1で開示されている技術では、各機能ブロック間の接続を動的に切換え可能であるが、ある機能ブロック間の接続において要求されるレイテンシや帯域幅については何ら考慮されていない。
【0009】
そのため、データの送受信がなされる機能ブロック間を動的に接続したとしても、例えば、一方の配線では帯域幅に近いデータ転送がなされ、他方の配線ではわずかな量のデータ転送しかなされないといった状況が生じ、配線や機能ブロックなどのハードウェア資源を有効に活用できないという問題がある。
【0010】
本発明は、上記従来技術の問題点を解決するためになされたものであって、実行するアプリケーションの性質に応じてハードウェア資源の効率的に再配分することができるプロセッサ装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明の実施形態に係るプロセッサ装置は、出力データポートを有する第1の機能ブロックと、入力データポートを有する第2の機能ブロックと、前記第1の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第1の接続手段と、データ転送に使用する前記第1の接続手段のビット幅を変更する第1の変更手段と、前記第1の機能ブロックへ第1の機能制御情報を送信し、前記第2の機能ブロックへ第2の機能制御情報を送信する第1の制御手段と、前記第1の制御手段と同期して動作し、前記第1の変更手段へ第1の接続制御情報を送信する第2の制御手段とを備え、前記第1の機能ブロックは、前記第1の機能制御情報に指定される処理の結果を前記出力データポートから出力し、前記第1の変更手段は、データ転送に使用する前記第1の接続手段のビット幅を、前記第1の接続制御情報によって指定されるビット幅へ変更し、前記第2の機能ブロックは、前記第2の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行うことを特徴とする。
【発明の効果】
【0012】
本発明によれば、実行するアプリケーションの性質に応じてハードウェア資源の効率的に再配分することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施形態について説明する。
【0014】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るプロセッサ装置1の構成を示すブロック図である。
この第1の実施形態に係るプロセッサ装置1は、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、接続装置30と、機能ブロック構成制御装置40と、接続ライン構成制御装置50とを備える。
【0015】
機能ブロックA10a、B10b、C10cは、それぞれ入力データポート(in)11a〜11cと出力データポート(out)12a〜12cを有する。機能ブロックA10a、B10b、C10cの入力データポート(in)11a〜11c、出力データポート(out)12a〜12cは、それぞれセレクタ21a〜21c,22a〜22cと接続される。各セレクタ21a〜21c,22a〜22cは、接続装置30と2本の信号線により接続される。各機能ブロックA10a、B10b、C10cは、セレクタ21a〜21c,22a〜22cと接続装置30を介して、互いに接続される。
【0016】
入力データポート11a〜11cと出力データポート12a〜12cのビット幅、および入力データポート11a〜11cと出力データポート12a〜12cに接続される信号線のビット幅は、64ビットである。各セレクタ21a〜21c,22a〜22cと接続装置30を接続する2本の信号線のビット幅は、それぞれ64ビットである。
【0017】
機能ブロック構成制御装置40は、機能ブロックの制御情報41に従って機能ブロックA10a、B10b、C10c、およびセレクタ21a〜21c,22a〜22cへ制御情報を送信し、その動作を制御する。接続ライン構成制御装置50は、接続ラインの制御情報51に従って接続装置30へ制御情報を送信し、その動作を制御する。
【0018】
機能ブロックの制御情報41、接続ラインの制御情報51は、図示しない記憶部に記憶されていても良く、それぞれ機能ブロック構成制御装置40、接続ライン構成制御装置50が記憶していても良い。また、機能ブロック構成制御装置40と接続ライン構成制御装置50とは同一のハードウェアで構成されていても良い。
【0019】
なお、機能ブロックA10a、B10b、C10cと、接続装置30と、機能ブロック構成制御装置40と、接続ライン構成制御装置50とは、同一のクロック信号によって、同期して、動作する。
【0020】
図2は、機能ブロックの構成の例を示すブロック図である。なお、機能ブロックは、図2に示す一例に限られず、入力データポートもしくは出力データポートを備え、ALUやレジスタファイル、RAM、ROM(Read Only Memory)、FF、外部I/O(Input/Output)のうち少なくともいずれか1つを有するものであればよい。
【0021】
図2(a)は、ALU(Arithmetic Logic Unit)13と、2つの入力データポート11L−1、11R−1と、1つの出力データポート12−1とを有する機能ブロックの例を示す。
2つの入力データポート11L−1、11R−1から入力されたデータに対して、ALU13は、機能ブロック構成制御装置40から受信した制御情報に従い、加算、減算などの演算処理を行う。制御情報によりALU13が行う演算の種類が指定される。ALU13の演算結果は、フリップフロップ(FF)14に記憶され、1クロック経過後に、出力データポート12−1から出力される。
【0022】
図2(b)は、レジスタファイル15と、1つの入力データポート11−2と、2つの出力データポート12L−2、12R−2とを有する機能ブロックの例を示す。
1つの入力データポート11−2はレジスタファイル15のライトポートであり、2つの出力データポート12L−2、12R−2はレジスタファイル15のリードポートである。レジスタファイル15に対して、2リード1ライトを同時に行うことができる。機能ブロック構成制御装置40から受信した制御情報は、ポートごとに、レジスタファイル15に対するアクセス(リードあるいはライト)の有無やアクセスするレジスタID(Identification)を指定する。
【0023】
図2(c)は、RAM(Random Access Memory)16と、1つの入力データポート11−3と、1つの出力データポート12−3とを有する機能ブロックの例を示す。
1つの入力データポート11−3はRAM16のライトポートであり、1つの出力データポート12a−3はRAM16のリードポートである。RAM16に対して、1リード1ライトを同時に行うことができる。機能ブロック構成制御装置40から受信した制御情報は、ポートごとに、RAM16に対するアクセス(リードあるいはライト)の有無やアクセスするアドレスを指定する。
図3は、接続装置30の構成を示すブロック図である。
接続装置30は、送信データ変換装置TX11〜TX32と、受信データ変換装置RX11〜RX32と、データリンク装置31とを有する。送信データ変換装置TX11、TX12は、機能ブロックA10aの出力データポート12aに接続されたセレクタ22aと接続される。送信データ変換装置TX21、TX22は、機能ブロックB10bの出力データポート12bに接続されたセレクタ22bと接続される。送信データ変換装置TX31、TX32は、機能ブロックC10cの出力データポート12cに接続されたセレクタ22cと接続される。
【0024】
受信データ変換装置RX11、RX12は、機能ブロックA10aの入力データポート11aに接続されたセレクタ21aと接続される。受信データ変換装置RX21、RX22は、機能ブロックB10bの入力データポート11bに接続されたセレクタ21bと接続される。受信データ変換装置RX31、RX32は、機能ブロックC10cの入力データポート11cに接続されたセレクタ21cと接続される。
【0025】
送信データ変換装置TX11〜TX32および受信データ変換装置RX11〜RX32は、データリンク装置31と接続される。なお、送信データ変換装置TX11〜TX32および受信データ変換装置RX11〜RX32とデータリンク装置31との接続の詳細については後述する。
【0026】
図4は、送信データ変換装置TX11の構成を示すブロック図である。なお、そのほかの送信データ変換装置TX12〜TX32の構成も同様である。
送信データ変換装置TX11は、セレクタ22aと接続された1本の64ビット幅信号線inから入力される64ビット幅のデータを、データリンク装置31と接続された4本の16ビット幅信号線out1〜out4へ出力する。
【0027】
送信データ変換装置TX11は、フリップフロップFF1〜FF4と、スイッチ回路t1〜t13とを備える。図4において、スイッチ回路t1〜t13は、信号線が交差する点を囲む丸記号で示される。スイッチ回路t1〜t13は、交差する信号線をどのように接続するか、あるいはまったく接続しないかを切り替える。スイッチ回路t1〜t13は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報に従って、切り替えられる。なお、送信データ変換装置TX11〜TX32のスイッチ回路t1〜t13は、それぞれ独立に制御される。
【0028】
また、図4において、フリップフロップFF1からの出力とスイッチ回路t3からの出力の合流地点、フリップフロップFF2からの出力とスイッチ回路t4からの出力の合流地点、フリップフロップFF3からの出力とスイッチ回路t2からの出力の合流地点、および、フリップフロップFF4からの出力と信号線in4からの出力の合流地点には、論理和演算器を設けられている。
【0029】
図5乃至図7は、送信データ変換装置TX11の動作時における各スイッチ回路t1〜t13の切り替えの例を示すブロック図である。なお、図5乃至図7において、点線で表された配線部分は、データが伝送されないことを示す。
【0030】
図5は、送信データ変換装置TX11が、同一クロックで、64ビット幅信号線inから入力されたデータを4本の16ビット信号線out1〜out4へ出力する際の、スイッチ回路切り替え例を示す。
【0031】
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。信号線in1に伝送されたデータは、スイッチ回路t1、t3、t10を経由し、信号線out1へ出力される。信号線in2に伝送されたデータは、スイッチ回路t4、t9、t11を経由し、信号線out2へ出力される。信号線in3に伝送されたデータは、スイッチ回路t2、t13を経由し、信号線out3へ出力される。信号線in4に伝送されたデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。
【0032】
図5に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、同一クロックで、64ビット幅の入力データを4本の16ビット幅信号線out1〜out4へ出力する
図6は、送信データ変換装置TX11が、2クロックで、64ビット幅の入力データを2本の16ビット信号線out1、out4へ出力する際の、スイッチ回路切り替え例を示す。
【0033】
[第1番目のクロック]
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。
信号線in1に伝送されたデータは、スイッチ回路t1を経由し、フリップフロップFF1へ記憶される。信号線in3に伝送されたデータは、スイッチ回路t2を経由し、フリップフロップFF4へ記憶される。
【0034】
一方、信号線in2に伝送されたデータは、スイッチ回路t4、t3、t10を経由し、信号線out1へ出力される。信号線in4に伝送されたデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。
【0035】
[第2番目のクロック]
フリップフロップFF1に記憶された信号線in1からのデータは、スイッチ回路t10を経由し、信号線out1へ出力される。フリップフロップFF4に記憶された信号線in3からのデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。ここで、フリップフロップFF1からの出力と信号線in2からの出力の合流地点では、信号線in2からの出力がすべて“0”とされることで、合流地点の論理和演算器からフリップフロップFF1の出力がそのまま信号線out1に出力される。フリップフロップFF4からの出力と信号線in4からの出力の合流地点においても、信号線in4からの出力がすべて“0”とされることで、合流地点の論理和演算器からフリップフロップFF4の出力がそのまま信号線out4に出力される。
【0036】
図6に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、2クロックで、64ビット幅の入力データを2本の16ビット幅信号線out1、out4へ出力する
図7は、送信データ変換装置TX11が、4クロックで、64ビット幅の入力データを2本の16ビット信号線out2へ出力する際の、スイッチ回路切り替え例を示す。
【0037】
[第1番目のクロック]
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。
信号線in1に伝送されたデータは、スイッチ回路t1、t3を経由し、フリップフロップFF2へ記憶される。信号線in2に伝送されたデータは、スイッチ回路t4を経由し、フリップフロップFF3へ記憶される。信号線in3に伝送されたデータは、スイッチ回路t2を経由し、フリップフロップFF4へ記憶される。
【0038】
一方、信号線in4に伝送されたデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0039】
[第2番目のクロック]
フリップフロップFF4に記憶された信号線in3からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0040】
一方、フリップフロップFF3に記憶された信号線in2からのデータは、フリップフロップFF4へ記憶される。フリップフロップFF2に記憶された信号線in1からのデータは、フリップフロップFF2へ記憶される。
【0041】
ここで、フリップフロップFF2からの出力と信号線in2からの出力の合流地点、フリップフロップFF3からの出力と信号線in3からの出力の合流地点、およびフリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in2、in3、in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF2からの出力、フリップフロップFF3からの出力、フリップフロップFF4からの出力がそのまま出力される。
【0042】
[第3番目のクロック]
フリップフロップFF4に記憶された信号線in2からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0043】
一方、フリップフロップFF3に記憶された信号線in1からのデータは、フリップフロップFF4へ記憶される。
【0044】
ここで、フリップフロップFF3からの出力と信号線in3からの出力の合流地点、およびフリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in3、in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF3からの出力、フリップフロップFF4からの出力がそのまま出力される。
【0045】
[第4番目のクロック]
フリップフロップFF4に記憶された信号線in1からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0046】
ここで、フリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF4からの出力がそのまま出力される。
【0047】
図7に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、4クロックで、64ビット幅の入力データを1本の16ビット幅信号線out2へ出力する
以上に示したように、送信データ変換装置TX11〜TX32は、接続ライン構成制御装置50から受信する接続ラインの制御情報51に従い、図5乃至図7に示すいずれかのようにスイッチ回路t1〜t13を切り替える。なお、送信データ変換装置TX11〜32のスイッチ回路の切り換え方は、図5乃至図7に示すものに限られない。また、送信データ変換装置TX11〜TX32の入力を1本の64ビット幅信号線inとし、出力を4本の16ビット幅信号線out1〜out4としたが、これに限られない。例えば、送信データ変換装置TX11〜TX32の入力を1本の64ビット幅信号線inとし、出力を64本の1ビット幅信号線out1〜out64としても良い。
【0048】
図8は、受信データ変換装置RX11の構成を示すブロック図である。なお、その他の受信データ変換装置RX12〜RX32の構成も同様である。
受信データ変換装置RX11は、データリンク装置31と接続された4本の16ビット幅信号線in1〜in4から入力されるデータを、セレクタ21aと接続された1本の64ビット幅信号線outへ出力する。
【0049】
受信データ変換装置RX11は、フリップフロップFF5〜FF8と、スイッチ回路r1〜r13とを備える。図8において、スイッチ回路r1〜r13は、信号線が交差する点を囲む丸記号で示される。スイッチ回路r1〜r13は、交差する信号線をどのように接続するか、あるいはまったく接続しないかを切り替えることができる。スイッチ回路r1〜r13は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報に従って、切り替えられる。なお、受信データ変換装置RX11〜RX32のスイッチ回路r1〜r13は、それぞれ独立に制御される。
【0050】
図9乃至図11は、受信データ変換装置RX11の動作時における各スイッチ回路r1〜r13の切り替えの例を示すブロック図である。なお、図9乃至図11において、点線で表された配線部分は、データが伝送されないことを示す。
【0051】
図9は、受信データ変換装置RX11が、同一クロックで、4本の16ビット幅信号線in1〜in4から入力されたデータを、1本の64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13切り替え例を示す。
【0052】
信号線in1から入力されたデータは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。信号線in2から入力されたデータは、スイッチ回路r1、r12を経由して、信号線out2へ伝送される。信号線in3から入力されたデータは、スイッチ回路r3、r5、r10を経由して、信号線out3へ伝送される。信号線in4から入力されたデータは、スイッチ回路r4、r11、r13を経由して、信号線out4へ伝送される。16ビット幅信号線out1〜out4に伝送されたデータは結合され、64ビット幅信号線outから出力される。
【0053】
図9に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、同一クロックで、4本の16ビット幅信号線in1〜in4から入力されたデータを、64ビット幅信号線outへ出力する
図10は、受信データ変換装置RX11が、2クロックで、2本の16ビット幅信号線in1、in4から入力されたデータを、64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13の切り替え例を示す。
【0054】
[第1番目のクロック]
信号線in1から入力された第1データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。信号線in4から入力された第2データは、スイッチ回路r4を経由して、フリップフロップFF8に記憶される。
【0055】
[第2番目のクロック]
信号線in1から入力された第3データは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。信号線in4から入力された第4データは、スイッチ回路r4を経由して、信号線out3へ伝送される。
【0056】
また、フリップフロップFF5に記憶された信号線in1からの第1データは、スイッチ回路r12を経由し、信号線out2へ伝送される。フリップフロップFF8に記憶された信号線in4からの第2データは、スイッチ回路r13を経由し、信号線out4へ伝送される。
【0057】
このように、信号線out1〜out4に伝送された第1乃至第4データは結合され、64ビット幅信号線outから出力される。
【0058】
図10に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、2クロックで、2本の16ビット幅信号線in1、in4から入力されたデータを、64ビット幅信号線outへ出力する。
【0059】
図11は、受信データ変換装置RX11が、4クロックで、1本の16ビット幅信号線in1から入力されたデータを、64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13の切り替え例を示す。
【0060】
[第1番目のクロック]
信号線in1から入力された第1データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0061】
[第2番目のクロック]
フリップフロップFF5に記憶された信号線in1からの第1データは、フリップフロップFF6に記憶される。
【0062】
信号線in1から入力された第2データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0063】
[第3番目のクロック]
フリップフロップFF6に記憶された信号線in1からの第1データは、フリップフロップFF7に記憶される。フリップフロップFF5に記憶された信号線in1からの第2データは、フリップフロップFF6に記憶される。
【0064】
信号線in1から入力された第3データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0065】
[第4番目のクロック]
フリップフロップFF7に記憶された信号線in1からの第1データは、信号線out4へ伝送される。フリップフロップFF6に記憶された信号線in1からの第2データは、信号線out3へ伝送される。フリップフロップFF5に記憶された信号線in1からの第3データは、信号線out2へ伝送される。
【0066】
信号線in1から入力された第4データは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。
【0067】
このように、幅信号線out1〜out4に伝送された第1乃至第4データは結合され、64ビット幅信号線outから出力される。
【0068】
図11に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、4クロックで、1本の16ビット幅信号線in1から入力されたデータを、64ビット幅信号線outへ出力する。
【0069】
以上に示したように、受信データ変換装置RX11〜RX32は、接続ライン構成制御装置50から受信する接続ラインの制御情報51に従い、図9乃至図11に示すいずれかのようにスイッチ回路r1〜r13を切り替える。なお、受信データ変換装置RX11〜RX32のスイッチ回路の切り換え方は、図9乃至図11に示すものに限られない。また、受信データ変換装置RX11〜RX32の入力を4本の16ビット幅信号線in1〜in4とし、出力を1本の64ビット幅信号線outとしたが、これに限られない。例えば、受信データ変換装置RX11〜RX32の入力を64本の1ビット幅信号線in1〜in64とし、出力を1本の64ビット幅信号線outとしても良い。
【0070】
なお、図5のスイッチ切換え状態の送信データ変換装置の信号線out1〜out4と、図9のスイッチ切換え状態の受信データ変換装置の信号線in1〜in4とをそれぞれ接続することにより、同じクロックで、64ビット幅のデータを送受信することができる。以下、同様に、図6の出力信号線out1〜out4と図10の入力信号線in1〜in4とをそれぞれ接続することにより、2クロックで、64ビット幅のデータを送受信することができる。図7の出力信号線out1〜out4と図11の入力信号線in1〜in4とをそれぞれ接続することにより、4クロックで、64ビット幅のデータを送受信することができる。
【0071】
図12は、データリンク装置31の構成を示すブロック図である。
データリンク装置31は、データリンクDL11〜DL44と、スイッチ回路SW1〜SW12と、図12に丸記号で示されたスイッチ回路とを備える。
【0072】
データリンクDL11〜DL14は、受信データ変換装置RX11、RX12、RX21と送信データ変換装置TX11、TX12と接続される。データリンクDL21〜DL24は、受信データ変換装置RX22と接続される。データリンクDL31〜DL34は、送信データ変換装置TX21と接続される。データリンクDL41〜DL44は、受信データ変換装置RX31、RX32と送信データ変換装置TX22、TX31、TX32と接続される。
【0073】
各送信データ変換装置TX11〜TX32からデータリンクへ伸びる4本の矢印は、それぞれ図4に示す信号線out1〜out4と接続された16ビット幅信号線である。データリンクから各受信データ変換装置RX11〜RX32へ伸びる4本の矢印は、それぞれ図8に示す信号線in1〜in4と接続された16ビット幅の信号線である。
【0074】
受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32と、データリンクとの間の接続の有無を切り替えるスイッチ回路は、図12において、受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32と接続された信号線とデータリンクとの交差する点を囲む丸記号で示される。
【0075】
スイッチ回路SW1は、データリンクDL11とデータリンクDL21との間を接続あるいは開放する。以下、同様に、SW2は「DL12−DL22間」、SW3は「DL13−DL23間」、SW4は「DL14−DL24間」、SW5は「DL21−DL31間」、SW6は「DL22−DL32間」、SW7は「DL23−DL33間」、SW8は「DL24−DL34間」、SW9は「DL31−DL41間」、SW10は「DL32−DL42間」、SW11は「DL33−DL43間」、SW12は「DL34−DL44間」を接続あるいは開放する。
【0076】
なお、受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32とデータリンクDL11〜DL44との間の接続の有無を切り替えるスイッチ回路、および、スイッチ回路SW1〜SW12は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報によって、切り換え動作が制御される。
【0077】
また、データリンクDL11〜DL44を16ビット幅の信号線としたが、送信データ変換装置TX11〜TX32の出力用の信号線out1〜out4および受信データ変換装置RX11〜RX32の入力用の信号線in1〜in4と同一の帯域幅であればよい。
【0078】
図13は、機能ブロック構成制御装置40と接続ライン構成制御装置50の制御の動作を示す図である。なお、図13には、プロセッサA10aと、セレクタ22aと、図12の点線で囲まれた領域Aに含まれる、送信データ変換装置TX11、TX12およびデータリンクDL11〜DL14とを示す。また、機能ブロック構成制御装置40および接続ライン構成制御装置50からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0079】
機能ブロック構成制御装置40は、機能ブロックA10aとセレクタ22aへ制御信号を送信して、その動作を制御する。接続ライン構成制御装置50は、送信データ変換手段TX11、TX12と、送信データ変換手段TX11、TX12とデータリンクDL11〜DL14との接続の有無を切り替えるスイッチ回路へ、制御パスを介して制御信号を送信して、その動作を制御する。
【0080】
図14は、機能ブロック構成制御装置40がセレクタ21a、22aを制御する際の動作を示す図である。なお、セレクタ21b、21cはセレクタ21aと同じ構成であり、セレクタ22b、22cはセレクタ22aと同じ構成である。また、機能ブロック構成制御装置40からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0081】
セレクタ21aは、機能ブロック構成制御装置40から送信された制御情報に応じて、入力された2つのデータのうち、一方を出力する。セレクタ22aは、機能ブロック構成制御装置40から送信された制御情報に応じて、入力された1つのデータを、2本の配線うち一方もしくは両方へ出力する。
【0082】
図15は、接続ライン構成制御装置50がスイッチ回路SW1〜SW4へ制御情報を送信しその動作を制御する際の動作を示す図である。
なお、図15には、図12の点線で囲まれた領域Bに含まれる、受信データ変換装置RX21、RX22と、データリンクDL11〜DL14、DL21〜DL24と、スイッチ回路SW1〜SW4を示す。また、接続ライン構成制御装置50からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0083】
接続ライン構成制御装置50は、スイッチ回路SW1〜SW4へ、制御パスを介して制御信号を送信し、その動作を制御する。
【0084】
図16は、機能ブロックの制御情報41と接続ラインの制御情報51とを示す図である。
機能ブロックの制御情報41は、ID1と、ID2と、機能ブロック・セレクタの構成情報との3つの情報を有するエントリを複数有する。ID1は、機能ブロックの制御情報41のエントリごとにふられる数字である。ID2は、接続ラインの制御情報51のエントリごとにふられる数字である。機能ブロック・セレクタの構成情報は、機能ブロック構成制御装置40によって機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cへ送信される制御情報である。
【0085】
接続ラインの制御情報51は、ID2と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、接続ライン構成制御装置50によって接続装置30へ送信される制御情報である。
【0086】
機能ブロック構成制御装置40は、機能ブロックの制御情報41を、1クロックごとに1エントリずつ読み出す。機能ブロック構成制御装置40は、機能ブロックの制御情報41を1エントリ読み出したら、機能ブロック・セレクタの構成情報を制御情報として、機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cとへ送信する。また、機能ブロック構成制御装置40は、ID2の値を接続ライン構成制御装置50へ送信する。
【0087】
接続ライン構成制御装置50は、機能ブロック構成制御装置40からID2の値を受信したら、そのID2の値を有するエントリを選択する。接続ライン構成制御装置50は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0088】
なお、機能ブロックの制御情報41と接続ラインの制御情報51とは、圧縮されて記憶されても良い。この際、機能ブロック構成制御装置40と接続ライン構成制御装置50は、圧縮されている制御情報を復元する復元装置を有する。
【0089】
また、機能ブロック構成制御装置40と接続ライン構成制御装置50とを同期させる方式は、機能ブロック構成制御装置40が接続ライン構成制御装置50へID2を送信して同期するものに限られない。例えば、機能ブロックの制御情報41のID2の代わりにフラグが記憶されており、機能ブロック構成制御装置40から接続ライン構成制御装置50へフラグが送信されると、接続ライン構成制御装置50が接続ラインの制御情報51の次のエントリを読み出すこととしてもよい。
【0090】
さらに、接続ライン構成制御装置50がカウンタを有し、そのカウンタ値が一定値に達すると接続ラインの制御情報51の次のエントリを読み出すこととしてもよい。さらにまた、図示しない外部プロセッサが、接続ライン構成制御装置50に接続ラインの制御情報51を切り替えることとしてもよい。
【0091】
図17乃至図20は、プロセッサ装置1が演算処理を行う際の動作を示す図である。図17は、「ID2=1」における接続装置30の構成を示すブロック図である。図18は、「ID2=2」における接続装置30の構成を示すブロック図である。
【0092】
図17、図18において、太線は、機能ブロック間でデータが送受信される際に、そのデータが伝送される信号線を示す。太線の矢印はデータが伝送される方向を示す。太線以外の信号線では、データの伝送は行われない。
【0093】
「ID2=1」において、送信データ変換装置TX12、TX22は図5に示すようにスイッチ回路が切り替え、受信データ変換装置RX21、RX31は図9に示すようにスイッチ回路が切り替えられている。即ち、一方の機能ブロックの出力データポート12a〜12cから出力されたデータは、出力されたクロックと同じクロックのうちに、他方の機能ブロックの入力データポートへ入力される。
【0094】
「ID2=2」において、送信データ変換装置TX11〜TX32は図7に示すようにスイッチ回路が切り替え、受信データ変換装置RX11〜RX32は図11に示すようにスイッチ回路が切り替えられる。即ち、一方の機能ブロックの出力データポートから出力されたデータは、4クロックかけて、他方の機能ブロックの入力データポートへ入力される。
【0095】
図19は、プロセッサ装置1が演算処理を行う際の、機能ブロックの制御情報41の一例を示す図である。図20は、プロセッサ装置1が図19の機能ブロックの制御情報41に従い演算処理を行う際の、各機能ブロックA10a、B10b、C10cで実行される命令とデータの入出力関係を示す図である。
【0096】
ここで、機能ブロックA10a、B10b、C10cは、図示しないALUを有する。機能ブロックA10aは命令「inst1、11〜14」を、機能ブロックB10bは命令「inst2、21〜24」を、機能ブロックC10cは命令「inst3、31〜34」を実行可能である。機能ブロックA10a、B10b、C10cは、命令を実行してから1クロック後にそれぞれの出力データポート12a〜12cからその命令の実行結果を出力する。なお、命令「inst2」の実行には命令「inst1」の実行結果を使用し、命令「inst3」の実行には命令「inst2」の実行結果を使用する。また、命令「inst23」、「inst33」、「inst13」、「inst34」、「inst14」、「inst24」の実行には、それぞれ命令「inst11」、「inst12」、「inst21」、「inst22」、「inst31」、「inst32」の実行結果を使用する。
【0097】
機能ブロックの出力データポート12a〜12cに接続されたセレクタ22a〜22cに対して送信される制御情報については、out_selと、機能ブロックの入力データポート11a〜11cに接続されたセレクタ21a〜21cに対して送信される制御情報については、in_selと記載する。
【0098】
セレクタ21a〜21c,22a〜22cへの制御情報out_sel、in_selは、“0”、“1”、“2”のいずれかの値である。制御情報が“0”の場合、セレクタ21a〜21c,22a〜22cは、データの入出力を行わない。
【0099】
制御情報が“1”の場合、セレクタ21a〜21cは、受信データ変換装置RX11、RX21、RX31からのデータを入力として選択し、各機能ブロックA10a、B10b、C10cの入力データポート11a〜11cへ出力する。制御情報が“1”の場合、セレクタ22a〜22cは、各機能ブロックの出力データポート12a〜12cからのデータを入力とし、送信データ変換装置TX11、TX21、TX31へデータを出力する。
【0100】
制御情報が“2”の場合、セレクタ21a〜21cは、受信データ変換装置RX12、RX22、RX32からのデータを入力として選択し、各機能ブロックの入力データポート11a〜11cへ出力する。制御情報が“2”の場合、セレクタ22a〜22cは、各機能ブロックの出力データポート12a〜12cからのデータを入力とし、送信データ変換装置TX12、TX22、TX32へデータを出力する。
【0101】
次に、機能ブロック構成制御装置40が、図19の機能ブロックの制御情報41に従って、演算処理を行う際の動作を説明する。なお、機能ブロック構成制御装置40は、図19に示す「ID1=1」のエントリから順に実行する。
[第1クロック:ID1=1、ID2=1]
機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=1」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値“1”を接続ライン構成制御装置50へ送信する。接続ライン構成制御装置50はID2の値“1”を受信すると、接続ラインの制御情報1から「ID2=1」のエントリの接続装置構成情報を読み出す。接続ライン構成制御装置50は、読み出した接続装置構成情報に従い、接続装置30を図17に示す接続関係とするように制御する。なお、接続装置30は、機能ブロックの制御情報41の「ID1=6」のエントリが機能ブロック構成制御装置40によって実行されるまで、図17に示す接続関係を維持する。
【0102】
次に、機能ブロック構成制御装置40は、セレクタ21a〜21c,22a〜22cへ制御信号“0”を送信する。セレクタ21a〜21c,22a〜22cは、この制御信号に従い、データの入出力を行わない。
【0103】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst1」を、機能ブロックB10bへ「NOP(No Operation)」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst1」を実行し、機能ブロックB10b、C10cは待機状態となる。
【0104】
[第2クロック:ID1=2、ID2=1]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41の「ID1=2」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“1”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図17に示す接続関係を維持する。
【0105】
次に、機能ブロック構成制御装置40は、セレクタ22aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0106】
そのため、機能ブロックA10aの出力データポート12aから出力されるデータは、セレクタ22a、送信データ変換装置TX12、データリンク装置31、受信データ変換装置RX21、およびセレクタ21bを介して、機能ブロックB10bの入力データポート11bへ到達する。
【0107】
ここで、第1クロックで、機能ブロックA10aは命令「inst1」の処理を開始している。そのため、第2クロックで、機能ブロックA10aは、命令「inst1」の処理結果を出力データポート12aから出力する。そして、機能ブロックB10bには、命令「inst1」の処理結果が入力データポート11bから入力される。
【0108】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst1」を、機能ブロックB10bへ「inst2」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst1」を実行し、機能ブロックB10bは「inst2」を実行し、Cは待機状態となる。
【0109】
以下、第3乃至第5クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0110】
[第6クロック:ID1=6、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=6」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”に変更されたため、接続ライン構成制御装置50へID2の値“2”を送信する。接続ライン構成制御装置50はID2の値“2”を受信すると、接続ラインの制御情報51から「ID2=2」のエントリの接続装置構成情報を読み出す。接続ライン構成情報装置50は、読み出した接続装置構成情報に従い、接続装置30を図18に示す接続関係となるように制御する。
【0111】
次に、機能ブロック構成制御装置40は、すべてのセレクタ21a〜21c,22a〜22cへ制御信号“0”を送信する。そのため、機能ブロック間のデータ転送は行われない。
【0112】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst11」を、機能ブロックB10bへ「inst21」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst11」を実行し、機能ブロックB10bは「inst21」を実行し、Cは待機状態となる。
【0113】
[第7クロック:ID1=7、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=7」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図18に示す接続関係を維持する。
【0114】
次に、機能ブロック構成制御装置40は、セレクタ22aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0115】
そのため、機能ブロックA10aの出力データポート12aから出力されるデータは、セレクタ22a、送信データ変換装置TX12、データリンク装置31、受信データ変換装置RX21、およびセレクタ21bを介して、4クロックかけて、機能ブロックB10bの入力データポート11bへ第10クロックに到達する。
【0116】
また、機能ブロックB10bの出力データポート12bから出力されるデータは、セレクタ22b、送信データ変換装置TX21、データリンク装置31、受信データ変換装置RX11、およびセレクタ21aを介して、4クロックかけて、機能ブロックA10aの入力データポート11aへ第10クロックに到達する。
【0117】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst12」を、機能ブロックB10bへ「NOP」を、機能ブロックC10cへ「inst31」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst12」を実行し、機能ブロックB10bは待機状態となり、機能ブロックC10cは「inst31」を実行する。
【0118】
以下、第8および第9クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0119】
[第10クロック:ID1=10、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41の「ID1=10」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図18に示す接続関係を維持する。
【0120】
次に、機能ブロック構成制御装置40は、セレクタ21aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0121】
そのため、機能ブロックA10aの入力データポート11aには、受信データ変換装置RX12からのデータが入力される。機能ブロックB10bの入力データポート11bには、受信データ変換装置RX21からのデータが入力される。
【0122】
ここで、機能ブロックA10aが第6クロックで行った命令「inst11」の処理結果が、4クロックかけて、機能ブロックB10bの入力データポート11bに到達し、入力される。また、機能ブロックB10bが第6クロックで行った命令「inst21」の処理結果が、4クロックかけて、機能ブロックA10aの入力データポート11aに到達し、入力される。
【0123】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst13」を、機能ブロックB10bへ「inst23」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst13」を実行し、機能ブロックB10bは「inst23」を実行し、Cは待機状態となる。
【0124】
以下、第11および第12クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0125】
図20は、プロセッサ装置1が図19の機能ブロックの制御情報41に従い演算処理を行う際の、各機能ブロックA10a、B10b、C10cで実行される命令とデータの入出力関係を示す図である。
第1乃至第12クロックに対応して、機能ブロックA10a、B10b、C10cに割り当てられる命令が記載されている。これは、図19に示す、機能ブロックの制御情報41と同一である。
【0126】
[第1〜第5クロック]
「クロック1の機能ブロックA10aからクロック2の機能ブロックB10bへの矢印」が記載されている。これは、機能ブロックA10aが、クロック1で命令「inst1」を実行する。そして、クロック2で、機能ブロックA10aから機能ブロックB10bへ、その実行結果が伝達されることを示す。
【0127】
これは、クロック1からクロック5までの領域にある矢印、例えば、「クロック2の機能ブロックA10aからクロック3の機能ブロックB10bへの矢印」や「クロック4の機能ブロックB10bからクロック5の機能ブロックC10cへの矢印」についても同様である。
【0128】
[第6〜第12クロック]
「クロック6の機能ブロックA10aからクロック10の機能ブロックB10bへの矢印」が記載されている。これは、機能ブロックA10aが、クロック6で命令「inst11」を実行する。そして、機能ブロックA10aが、クロック7からクロック10まで4クロックをかけて、その実行結果を機能ブロックB10bへ伝送することを示す。
【0129】
これは、クロック6からクロック12までの領域にある矢印、例えば、「クロック7の機能ブロックA10aからクロック11の機能ブロックC10cへの矢印」や「クロック7の機能ブロックC10cからクロック11の機能ブロックA10aへの矢印」についても同様である。
【0130】
第1乃至第5クロックでは、「ID2=1」であり、機能ブロックA10aと機能ブロックB10b間、および、機能ブロックB10bと機能ブロックC10c間を接続する配線の帯域幅は大きい。しかし、機能ブロックA10aと機能ブロックB10b間、および、機能ブロックB10bと機能ブロックC10c間、以外のデータ転送は行えない。
第1乃至第5クロックにおけるデータ転送は、機能ブロックA10aから機能ブロックB10bへ、あるいは、機能ブロックB10bから機能ブロックC10cへしか行われない。しかし、機能ブロックA10aの命令「inst1」の実行結果を使用して、機能ブロックB10bが命令「inst2」を実行する。また、機能ブロックB10bの命令「inst2」の実行結果を使用して、機能ブロックC10cが命令「inst3」を実行する。そのため、各機能ブロックA10a、B10b、C10c間を接続する配線の帯域幅が大きくデータ転送が素早くなされた方が、機能ブロックB10bと機能ブロックC10cが大気状態となる時間を短縮することができる。そのため、プロセッサ装置1全体としての処理効率が向上する。
【0131】
一方、第6乃至第12クロックでは、即ち「ID2=2」であり、各機能ブロックA10a、B10b、C10cは任意の他の機能ブロックへデータ転送を行うことができる。しかし、各機能ブロックA10a、B10b、C10c間を接続する配線の帯域幅は小さい。
【0132】
第6乃至第12クロックにおけるデータ転送は、機能ブロックA10aから機能ブロックB10b、C10cへ、機能ブロックB10bから機能ブロックC10c、A10aへ、および機能ブロックC10cから機能ブロックA10a、B10bへと多岐にわたる。このような状況では、特定の機能ブロック間の帯域幅を大きくするよりも、各機能ブロックがデータを直接送信することができる相手先を選択する際の自由度が大きくする必要がある。
【0133】
このように、第1の実施形態に係るプロセッサ装置1は、各機能ブロックの接続関係のみならず、各機能ブロック間の配線の帯域幅を各機能ブロックの入出力データポートの帯域幅よりも小さな単位で動的に変更する。そのため、プロセッサ装置で実行されるアプリケーションの性質に応じて配線資源の配分の仕方を動的に変更することができ、各機能ブロック間のデータ転送を効率的に行うことができる。各機能ブロック間のデータ転送効率を向上させることにより、各機能ブロックの処理効率をも向上させることができ、プロセッサ装置が備えるハードウェア資源を有効に活用することができる。これによって、プロセッサ装置のチップ面積を減少でき、消費電力が抑制可能となる。
【0134】
なお、本実施形態では、各機能ブロックA10a、B10b、C10cの制御を行う機能ブロック構成制御装置40と、接続装置30の制御を行う接続ライン構成制御装置50と、を別々のハードウェアとする構成を採用した。クロックサイクルごとに各機能ブロックA10a、B10b、C10cの処理を制御する機能ブロック構成制御装置40には大きな処理速度が求められる。一方、実行されるアプリケーションの切り替えなどの比較的長い期間ごとに接続装置30の接続関係を変更する接続ライン構成制御装置50の処理速度は小さくても問題はない。そのため、機能ブロック構成制御装置40と接続ライン構成制御装置50とを別々のハードウェアで実現することにより、必要とされる処理能力に応じた構成とすることできる。
【0135】
また、第1の実施形態に係るプロセッサ装置1は、各機能ブロックの入出力データポート11a〜12cと接続装置30との間にセレクタ21a〜21c,22a〜22cを備える。機能ブロック構成制御装置40は、各機能ブロックA10a、B10b、C10cとそれらに接続されたセレクタ21a〜21c,22a〜22cに対して制御信号を送信する。一方、接続ライン構成制御装置50は、接続装置30が備える多数のスイッチ回路に対して制御信号を送信する。そのため、接続ライン構成制御装置50が動作する際の消費電力は、機能ブロック構成制御装置40が動作する際の消費電力よりも大きい。機能ブロック構成制御装置40がセレクタ21a〜21c,22a〜22cを制御することによって接続関係を変更可能な構成とすることで、接続ライン構成制御装置50の動作回数を減少させることができ、消費電力を低減することができる。
【0136】
なお、第1の実施形態に係るプロセッサ装置1は、セレクタ21a〜21c,22a〜22cを備えない構成とすることができる。図21は、セレクタ21a〜21c,22a〜22cを備えないプロセッサ装置を示すブロック図である。このような構成とすることで、セレクタ21a〜21c,22a〜22cとそれらに接続された配線が占めるチップ面積を減少することができる。
【0137】
(第2の実施形態)
図22は、本発明の第2の実施形態に係るプロセッサ装置2の構成を示すブロック図である。
この第2の実施形態に係るプロセッサ装置2は、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、機能ブロック構成制御装置40と、第1の接続ライン構成制御装置50−1と、第2の接続ライン構成制御装置50−2とを備える。なお、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、機能ブロック構成制御装置40は、第1の実施形態と同じであるので、同一符号をつけてその説明は省略する。
【0138】
第1の接続ライン構成制御装置50−1は、第1の接続ラインの制御情報51−1に従って、接続装置30を制御する。第2の接続ライン構成制御装置50−2は、第2の接続ラインの制御情報51−2に従って、接続装置30を制御する。
【0139】
つまり、第1の実施形態の接続ライン構成制御装置50が、第1の接続ライン構成制御装置50−1と第2の接続ライン構成制御装置50−2とにより構成される点が、第1の実施形態と比較して相異する。
【0140】
図23は、機能ブロックの制御情報41と第1および第2の接続ラインの制御情報51−1、51−2とを示す図である。
機能ブロックの制御情報41は、ID1と、ID3と、ID4と、機能ブロック・セレクタの構成情報との4つの情報を有するエントリを複数有する。ID1は、機能ブロックの制御情報41のエントリごとにふられる数字である。ID3は、第1の接続ラインの制御情報51−1のエントリごとにふられる数字である。ID4は、第2の接続ラインの制御情報51−2のエントリごとにふられる数字である。機能ブロック・セレクタの構成情報は、機能ブロック構成制御装置40によって機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cへ送信される制御情報である。
【0141】
第1の接続ラインの制御情報51−1は、ID3と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、第1の接続ライン構成制御装置によって接続装置30へ送信される制御情報である。
【0142】
第2の接続ラインの制御情報51−2は、ID4と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、第2の接続ライン構成制御装置50−2によって接続装置30へ送信される制御情報である。
【0143】
機能ブロック構成制御装置40は、機能ブロックの制御情報41を、1クロックごとに1エントリずつ読み出す。機能ブロック構成制御装置40は、機能ブロックの制御情報41を1エントリ読み出したら、機能ブロック・セレクタの構成情報を制御情報として、機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cとへ送信する。機能ブロック構成制御装置40は、ID3の値を第1の接続ライン構成制御装置50−1へ、ID4の値を第2の接続ライン構成制御装置50−2へ送信する。
【0144】
第1の接続ライン構成制御装置50−1は、機能ブロック構成制御装置40からID3の値を受信したら、そのID3の値を有するエントリを選択する。第1の接続ライン構成制御装置50−2は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0145】
第2の接続ライン構成制御装置50−2は、機能ブロック構成制御装置40からID4の値を受信したら、そのID4の値を有するエントリを選択する。第2の接続ライン構成制御装置50−2は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0146】
このように、第2の実施形態に係るプロセッサ装置1は、接続装置30を制御する接続ライン構成制御装置50を別個の2つのハードウェアとして構成する。そのため、例えば、第1の制御ライン制御装置に50−1よって制御される接続装置30の動作頻度が大きく、第2の制御ライン制御装置50−2によって制御される接続装置30の動作頻度が小さい場合など、第1の制御ライン制御装置50−1と第2の制御ライン制御装置50−2とを独立して動作させることができ、消費電力を削減できる。また、第1の制御ラインの接続情報51−1と第2の制御ラインの接続情報51−2との2つの情報によって接続装置30を制御するため、一方あるいは双方の制御ラインの接続情報のエントリ数を小さくしたとしても、接続装置30の複雑な制御を実現することができる。
【0147】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0148】
【図1】本発明の第1の実施形態に係るプロセッサ装置1の構成を示すブロック図。
【図2】機能ブロックの構成の例を示すブロック図。
【図3】接続装置30の構成を示すブロック図。
【図4】送信データ変換装置TX11の構成を示すブロック図。
【図5】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図6】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図7】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図8】受信データ変換装置RX11の構成を示すブロック図。
【図9】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図10】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図11】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図12】データリンク装置31の構成を示すブロック図。
【図13】機能ブロック構成制御装置40と接続ライン構成制御装置50の制御の動作を示す図。
【図14】機能ブロック構成制御装置40がセレクタ21a、22aを制御する際の動作を示す図。
【図15】接続ライン構成制御装置50がスイッチ回路を制御する際の動作を示す図。
【図16】機能ブロックの制御情報41と接続ラインの制御情報51とを示す図。
【図17】接続装置30の構成「ID2=1」を示すブロック図。
【図18】接続装置30の構成「ID2=2」を示すブロック図。
【図19】機能ブロックの制御情報41の一例を示す図。
【図20】各機能ブロックで実行される命令とデータの入出力関係を示す図。
【図21】セレクタ21a〜21c,22a〜22cを備えないプロセッサ装置1を示すブロック図。
【図22】第2の実施形態に係るプロセッサ装置1の構成を示すブロック図。
【図23】機能ブロックの制御情報41と第1の接続ラインの制御情報51−1と第2の接続ラインの制御情報51−2とを示す図。
【符号の説明】
【0149】
1、2・・・プロセッサ装置
10a・・・機能ブロックA
10b・・・機能ブロックB
10c・・・機能ブロックC
11a、11b、11c、11L−1、11R−1、11−2、11−3・・・入力データポート
12a、12b、12c、12−1、12L−2、12R−2、12−3・・・出力データポート
13・・・ALU
14・・・フリップフロップ
15・・・レジスタファイル
16・・・RAM
21a、21b,21c,22a、22b、22c・・・セレクタ
30・・・接続装置
31・・・データリンク装置
TX11、TX12、TX21、TX22、TX31、TX32・・・送信データ変換装置
RX11、RX12、RX21、RX22、RX31、RX32・・・受信データ変換装置
FF1、FF2、FF3、FF4、FF5、FF6、FF7、FF8・・・フリップフロップ
t1、t2、t3、t4、t5、t6、t7、t8、t9、t10、t11、t12、t13・・・スイッチ回路
DL11、DL12、DL13、DL14、DL21、DL22、DL23、DL24、DL31、DL32、DL33、DL34、DL41、DL42、DL43、DL44・・・データリンク
SW1、SW2、SW3、SW4、SW5、SW6、SW7、SW8、SW9、SW10、SW11、SW12、SW13・・・スイッチ回路
40・・・機能ブロック構成制御装置
41・・・機能ブロックの制御情報
50・・・接続ライン構成制御装置
50−1・・・第1の接続ライン構成制御装置
50−2・・・第2の接続ライン構成制御装置
51・・・接続ラインの制御情報
51−1・・・第1の接続ラインの制御情報
51−2・・・第2の接続ラインの制御情報
【技術分野】
【0001】
本発明は、複数の機能ブロックを有するプロセッサ装置に関するものである。
【背景技術】
【0002】
近年、演算器、レジスタ、メモリなどからなる機能ブロックを複数備え、それらの機能ブロック間で相互にデータの送受信を行い、演算処理を行うプロセッサ装置が注目されている。
【0003】
このようなプロセッサ装置では、各機能ブロックにまんべんなく処理を割り振ることによって低消費電力で高い演算処理性能を実現することができるが、各機能ブロックにおける演算処理を制御するための制御情報が必要となる。
【0004】
ここで、各機能ブロックにおける演算処理を制御するための制御情報を、C言語で記述されたプログラムからコンパイラによって自動的に生成する技術が開示されている(例えば、非特許文献1。)。
【0005】
上記非特許文献1に開示されているコンパイラによって制御情報を自動的に生成する場合に、その制御情報に従って動作する各機能ブロックにできるだけ均等に処理を割り振るためには、一の機能ブロックとできるだけ多くの他の機能ブロックとが接続され、データの送受信が可能であることが望ましい。
【0006】
しかしながら、各機能ブロック間を接続する配線を増やすと、プロセッサ装置のチップ面積および消費電力の増大を招いてしまう。
【0007】
そこで、配線数を増加させることなく各機能ブロック間のデータの送受信の自由度を向上させるために、各機能ブロック間の接続を動的に切換え可能とする技術が開示されている(例えば、特許文献1。)。
【非特許文献1】“Architecture Exploration for a Reconfigurable Architecture Template“, IEEE Design & Test of Computers vol. 22, No.2, 2005
【特許文献1】国際公開WO2003/009125号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した特許文献1で開示されている技術では、各機能ブロック間の接続を動的に切換え可能であるが、ある機能ブロック間の接続において要求されるレイテンシや帯域幅については何ら考慮されていない。
【0009】
そのため、データの送受信がなされる機能ブロック間を動的に接続したとしても、例えば、一方の配線では帯域幅に近いデータ転送がなされ、他方の配線ではわずかな量のデータ転送しかなされないといった状況が生じ、配線や機能ブロックなどのハードウェア資源を有効に活用できないという問題がある。
【0010】
本発明は、上記従来技術の問題点を解決するためになされたものであって、実行するアプリケーションの性質に応じてハードウェア資源の効率的に再配分することができるプロセッサ装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明の実施形態に係るプロセッサ装置は、出力データポートを有する第1の機能ブロックと、入力データポートを有する第2の機能ブロックと、前記第1の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第1の接続手段と、データ転送に使用する前記第1の接続手段のビット幅を変更する第1の変更手段と、前記第1の機能ブロックへ第1の機能制御情報を送信し、前記第2の機能ブロックへ第2の機能制御情報を送信する第1の制御手段と、前記第1の制御手段と同期して動作し、前記第1の変更手段へ第1の接続制御情報を送信する第2の制御手段とを備え、前記第1の機能ブロックは、前記第1の機能制御情報に指定される処理の結果を前記出力データポートから出力し、前記第1の変更手段は、データ転送に使用する前記第1の接続手段のビット幅を、前記第1の接続制御情報によって指定されるビット幅へ変更し、前記第2の機能ブロックは、前記第2の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行うことを特徴とする。
【発明の効果】
【0012】
本発明によれば、実行するアプリケーションの性質に応じてハードウェア資源の効率的に再配分することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施形態について説明する。
【0014】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るプロセッサ装置1の構成を示すブロック図である。
この第1の実施形態に係るプロセッサ装置1は、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、接続装置30と、機能ブロック構成制御装置40と、接続ライン構成制御装置50とを備える。
【0015】
機能ブロックA10a、B10b、C10cは、それぞれ入力データポート(in)11a〜11cと出力データポート(out)12a〜12cを有する。機能ブロックA10a、B10b、C10cの入力データポート(in)11a〜11c、出力データポート(out)12a〜12cは、それぞれセレクタ21a〜21c,22a〜22cと接続される。各セレクタ21a〜21c,22a〜22cは、接続装置30と2本の信号線により接続される。各機能ブロックA10a、B10b、C10cは、セレクタ21a〜21c,22a〜22cと接続装置30を介して、互いに接続される。
【0016】
入力データポート11a〜11cと出力データポート12a〜12cのビット幅、および入力データポート11a〜11cと出力データポート12a〜12cに接続される信号線のビット幅は、64ビットである。各セレクタ21a〜21c,22a〜22cと接続装置30を接続する2本の信号線のビット幅は、それぞれ64ビットである。
【0017】
機能ブロック構成制御装置40は、機能ブロックの制御情報41に従って機能ブロックA10a、B10b、C10c、およびセレクタ21a〜21c,22a〜22cへ制御情報を送信し、その動作を制御する。接続ライン構成制御装置50は、接続ラインの制御情報51に従って接続装置30へ制御情報を送信し、その動作を制御する。
【0018】
機能ブロックの制御情報41、接続ラインの制御情報51は、図示しない記憶部に記憶されていても良く、それぞれ機能ブロック構成制御装置40、接続ライン構成制御装置50が記憶していても良い。また、機能ブロック構成制御装置40と接続ライン構成制御装置50とは同一のハードウェアで構成されていても良い。
【0019】
なお、機能ブロックA10a、B10b、C10cと、接続装置30と、機能ブロック構成制御装置40と、接続ライン構成制御装置50とは、同一のクロック信号によって、同期して、動作する。
【0020】
図2は、機能ブロックの構成の例を示すブロック図である。なお、機能ブロックは、図2に示す一例に限られず、入力データポートもしくは出力データポートを備え、ALUやレジスタファイル、RAM、ROM(Read Only Memory)、FF、外部I/O(Input/Output)のうち少なくともいずれか1つを有するものであればよい。
【0021】
図2(a)は、ALU(Arithmetic Logic Unit)13と、2つの入力データポート11L−1、11R−1と、1つの出力データポート12−1とを有する機能ブロックの例を示す。
2つの入力データポート11L−1、11R−1から入力されたデータに対して、ALU13は、機能ブロック構成制御装置40から受信した制御情報に従い、加算、減算などの演算処理を行う。制御情報によりALU13が行う演算の種類が指定される。ALU13の演算結果は、フリップフロップ(FF)14に記憶され、1クロック経過後に、出力データポート12−1から出力される。
【0022】
図2(b)は、レジスタファイル15と、1つの入力データポート11−2と、2つの出力データポート12L−2、12R−2とを有する機能ブロックの例を示す。
1つの入力データポート11−2はレジスタファイル15のライトポートであり、2つの出力データポート12L−2、12R−2はレジスタファイル15のリードポートである。レジスタファイル15に対して、2リード1ライトを同時に行うことができる。機能ブロック構成制御装置40から受信した制御情報は、ポートごとに、レジスタファイル15に対するアクセス(リードあるいはライト)の有無やアクセスするレジスタID(Identification)を指定する。
【0023】
図2(c)は、RAM(Random Access Memory)16と、1つの入力データポート11−3と、1つの出力データポート12−3とを有する機能ブロックの例を示す。
1つの入力データポート11−3はRAM16のライトポートであり、1つの出力データポート12a−3はRAM16のリードポートである。RAM16に対して、1リード1ライトを同時に行うことができる。機能ブロック構成制御装置40から受信した制御情報は、ポートごとに、RAM16に対するアクセス(リードあるいはライト)の有無やアクセスするアドレスを指定する。
図3は、接続装置30の構成を示すブロック図である。
接続装置30は、送信データ変換装置TX11〜TX32と、受信データ変換装置RX11〜RX32と、データリンク装置31とを有する。送信データ変換装置TX11、TX12は、機能ブロックA10aの出力データポート12aに接続されたセレクタ22aと接続される。送信データ変換装置TX21、TX22は、機能ブロックB10bの出力データポート12bに接続されたセレクタ22bと接続される。送信データ変換装置TX31、TX32は、機能ブロックC10cの出力データポート12cに接続されたセレクタ22cと接続される。
【0024】
受信データ変換装置RX11、RX12は、機能ブロックA10aの入力データポート11aに接続されたセレクタ21aと接続される。受信データ変換装置RX21、RX22は、機能ブロックB10bの入力データポート11bに接続されたセレクタ21bと接続される。受信データ変換装置RX31、RX32は、機能ブロックC10cの入力データポート11cに接続されたセレクタ21cと接続される。
【0025】
送信データ変換装置TX11〜TX32および受信データ変換装置RX11〜RX32は、データリンク装置31と接続される。なお、送信データ変換装置TX11〜TX32および受信データ変換装置RX11〜RX32とデータリンク装置31との接続の詳細については後述する。
【0026】
図4は、送信データ変換装置TX11の構成を示すブロック図である。なお、そのほかの送信データ変換装置TX12〜TX32の構成も同様である。
送信データ変換装置TX11は、セレクタ22aと接続された1本の64ビット幅信号線inから入力される64ビット幅のデータを、データリンク装置31と接続された4本の16ビット幅信号線out1〜out4へ出力する。
【0027】
送信データ変換装置TX11は、フリップフロップFF1〜FF4と、スイッチ回路t1〜t13とを備える。図4において、スイッチ回路t1〜t13は、信号線が交差する点を囲む丸記号で示される。スイッチ回路t1〜t13は、交差する信号線をどのように接続するか、あるいはまったく接続しないかを切り替える。スイッチ回路t1〜t13は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報に従って、切り替えられる。なお、送信データ変換装置TX11〜TX32のスイッチ回路t1〜t13は、それぞれ独立に制御される。
【0028】
また、図4において、フリップフロップFF1からの出力とスイッチ回路t3からの出力の合流地点、フリップフロップFF2からの出力とスイッチ回路t4からの出力の合流地点、フリップフロップFF3からの出力とスイッチ回路t2からの出力の合流地点、および、フリップフロップFF4からの出力と信号線in4からの出力の合流地点には、論理和演算器を設けられている。
【0029】
図5乃至図7は、送信データ変換装置TX11の動作時における各スイッチ回路t1〜t13の切り替えの例を示すブロック図である。なお、図5乃至図7において、点線で表された配線部分は、データが伝送されないことを示す。
【0030】
図5は、送信データ変換装置TX11が、同一クロックで、64ビット幅信号線inから入力されたデータを4本の16ビット信号線out1〜out4へ出力する際の、スイッチ回路切り替え例を示す。
【0031】
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。信号線in1に伝送されたデータは、スイッチ回路t1、t3、t10を経由し、信号線out1へ出力される。信号線in2に伝送されたデータは、スイッチ回路t4、t9、t11を経由し、信号線out2へ出力される。信号線in3に伝送されたデータは、スイッチ回路t2、t13を経由し、信号線out3へ出力される。信号線in4に伝送されたデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。
【0032】
図5に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、同一クロックで、64ビット幅の入力データを4本の16ビット幅信号線out1〜out4へ出力する
図6は、送信データ変換装置TX11が、2クロックで、64ビット幅の入力データを2本の16ビット信号線out1、out4へ出力する際の、スイッチ回路切り替え例を示す。
【0033】
[第1番目のクロック]
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。
信号線in1に伝送されたデータは、スイッチ回路t1を経由し、フリップフロップFF1へ記憶される。信号線in3に伝送されたデータは、スイッチ回路t2を経由し、フリップフロップFF4へ記憶される。
【0034】
一方、信号線in2に伝送されたデータは、スイッチ回路t4、t3、t10を経由し、信号線out1へ出力される。信号線in4に伝送されたデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。
【0035】
[第2番目のクロック]
フリップフロップFF1に記憶された信号線in1からのデータは、スイッチ回路t10を経由し、信号線out1へ出力される。フリップフロップFF4に記憶された信号線in3からのデータは、スイッチ回路t5、t6、t7、t8を経由し、信号線out4へ出力される。ここで、フリップフロップFF1からの出力と信号線in2からの出力の合流地点では、信号線in2からの出力がすべて“0”とされることで、合流地点の論理和演算器からフリップフロップFF1の出力がそのまま信号線out1に出力される。フリップフロップFF4からの出力と信号線in4からの出力の合流地点においても、信号線in4からの出力がすべて“0”とされることで、合流地点の論理和演算器からフリップフロップFF4の出力がそのまま信号線out4に出力される。
【0036】
図6に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、2クロックで、64ビット幅の入力データを2本の16ビット幅信号線out1、out4へ出力する
図7は、送信データ変換装置TX11が、4クロックで、64ビット幅の入力データを2本の16ビット信号線out2へ出力する際の、スイッチ回路切り替え例を示す。
【0037】
[第1番目のクロック]
信号線inから入力される64ビット幅のデータは、16ビットごとに分割され、それぞれ4本の信号線in1〜in4へ伝送される。
信号線in1に伝送されたデータは、スイッチ回路t1、t3を経由し、フリップフロップFF2へ記憶される。信号線in2に伝送されたデータは、スイッチ回路t4を経由し、フリップフロップFF3へ記憶される。信号線in3に伝送されたデータは、スイッチ回路t2を経由し、フリップフロップFF4へ記憶される。
【0038】
一方、信号線in4に伝送されたデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0039】
[第2番目のクロック]
フリップフロップFF4に記憶された信号線in3からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0040】
一方、フリップフロップFF3に記憶された信号線in2からのデータは、フリップフロップFF4へ記憶される。フリップフロップFF2に記憶された信号線in1からのデータは、フリップフロップFF2へ記憶される。
【0041】
ここで、フリップフロップFF2からの出力と信号線in2からの出力の合流地点、フリップフロップFF3からの出力と信号線in3からの出力の合流地点、およびフリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in2、in3、in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF2からの出力、フリップフロップFF3からの出力、フリップフロップFF4からの出力がそのまま出力される。
【0042】
[第3番目のクロック]
フリップフロップFF4に記憶された信号線in2からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0043】
一方、フリップフロップFF3に記憶された信号線in1からのデータは、フリップフロップFF4へ記憶される。
【0044】
ここで、フリップフロップFF3からの出力と信号線in3からの出力の合流地点、およびフリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in3、in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF3からの出力、フリップフロップFF4からの出力がそのまま出力される。
【0045】
[第4番目のクロック]
フリップフロップFF4に記憶された信号線in1からのデータは、スイッチ回路t5、t6、t9、t11を経由し、信号線out2へ出力される。
【0046】
ここで、フリップフロップFF4からの出力と信号線in4からの出力の合流地点では、信号線in4からの出力がすべて“0”とされることで、それぞれの合流地点の論理和演算器からは、フリップフロップFF4からの出力がそのまま出力される。
【0047】
図7に示すようにスイッチ回路t1〜t13が切り替えられることによって、送信データ変換装置TX11は、4クロックで、64ビット幅の入力データを1本の16ビット幅信号線out2へ出力する
以上に示したように、送信データ変換装置TX11〜TX32は、接続ライン構成制御装置50から受信する接続ラインの制御情報51に従い、図5乃至図7に示すいずれかのようにスイッチ回路t1〜t13を切り替える。なお、送信データ変換装置TX11〜32のスイッチ回路の切り換え方は、図5乃至図7に示すものに限られない。また、送信データ変換装置TX11〜TX32の入力を1本の64ビット幅信号線inとし、出力を4本の16ビット幅信号線out1〜out4としたが、これに限られない。例えば、送信データ変換装置TX11〜TX32の入力を1本の64ビット幅信号線inとし、出力を64本の1ビット幅信号線out1〜out64としても良い。
【0048】
図8は、受信データ変換装置RX11の構成を示すブロック図である。なお、その他の受信データ変換装置RX12〜RX32の構成も同様である。
受信データ変換装置RX11は、データリンク装置31と接続された4本の16ビット幅信号線in1〜in4から入力されるデータを、セレクタ21aと接続された1本の64ビット幅信号線outへ出力する。
【0049】
受信データ変換装置RX11は、フリップフロップFF5〜FF8と、スイッチ回路r1〜r13とを備える。図8において、スイッチ回路r1〜r13は、信号線が交差する点を囲む丸記号で示される。スイッチ回路r1〜r13は、交差する信号線をどのように接続するか、あるいはまったく接続しないかを切り替えることができる。スイッチ回路r1〜r13は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報に従って、切り替えられる。なお、受信データ変換装置RX11〜RX32のスイッチ回路r1〜r13は、それぞれ独立に制御される。
【0050】
図9乃至図11は、受信データ変換装置RX11の動作時における各スイッチ回路r1〜r13の切り替えの例を示すブロック図である。なお、図9乃至図11において、点線で表された配線部分は、データが伝送されないことを示す。
【0051】
図9は、受信データ変換装置RX11が、同一クロックで、4本の16ビット幅信号線in1〜in4から入力されたデータを、1本の64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13切り替え例を示す。
【0052】
信号線in1から入力されたデータは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。信号線in2から入力されたデータは、スイッチ回路r1、r12を経由して、信号線out2へ伝送される。信号線in3から入力されたデータは、スイッチ回路r3、r5、r10を経由して、信号線out3へ伝送される。信号線in4から入力されたデータは、スイッチ回路r4、r11、r13を経由して、信号線out4へ伝送される。16ビット幅信号線out1〜out4に伝送されたデータは結合され、64ビット幅信号線outから出力される。
【0053】
図9に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、同一クロックで、4本の16ビット幅信号線in1〜in4から入力されたデータを、64ビット幅信号線outへ出力する
図10は、受信データ変換装置RX11が、2クロックで、2本の16ビット幅信号線in1、in4から入力されたデータを、64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13の切り替え例を示す。
【0054】
[第1番目のクロック]
信号線in1から入力された第1データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。信号線in4から入力された第2データは、スイッチ回路r4を経由して、フリップフロップFF8に記憶される。
【0055】
[第2番目のクロック]
信号線in1から入力された第3データは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。信号線in4から入力された第4データは、スイッチ回路r4を経由して、信号線out3へ伝送される。
【0056】
また、フリップフロップFF5に記憶された信号線in1からの第1データは、スイッチ回路r12を経由し、信号線out2へ伝送される。フリップフロップFF8に記憶された信号線in4からの第2データは、スイッチ回路r13を経由し、信号線out4へ伝送される。
【0057】
このように、信号線out1〜out4に伝送された第1乃至第4データは結合され、64ビット幅信号線outから出力される。
【0058】
図10に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、2クロックで、2本の16ビット幅信号線in1、in4から入力されたデータを、64ビット幅信号線outへ出力する。
【0059】
図11は、受信データ変換装置RX11が、4クロックで、1本の16ビット幅信号線in1から入力されたデータを、64ビット幅信号線outへ出力する際の、スイッチ回路r1〜r13の切り替え例を示す。
【0060】
[第1番目のクロック]
信号線in1から入力された第1データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0061】
[第2番目のクロック]
フリップフロップFF5に記憶された信号線in1からの第1データは、フリップフロップFF6に記憶される。
【0062】
信号線in1から入力された第2データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0063】
[第3番目のクロック]
フリップフロップFF6に記憶された信号線in1からの第1データは、フリップフロップFF7に記憶される。フリップフロップFF5に記憶された信号線in1からの第2データは、フリップフロップFF6に記憶される。
【0064】
信号線in1から入力された第3データは、スイッチ回路r6、r7、r8、r9を経由して、フリップフロップFF5に記憶される。
【0065】
[第4番目のクロック]
フリップフロップFF7に記憶された信号線in1からの第1データは、信号線out4へ伝送される。フリップフロップFF6に記憶された信号線in1からの第2データは、信号線out3へ伝送される。フリップフロップFF5に記憶された信号線in1からの第3データは、信号線out2へ伝送される。
【0066】
信号線in1から入力された第4データは、スイッチ回路r6、r7、r8、r9を経由して、信号線out1へ伝送される。
【0067】
このように、幅信号線out1〜out4に伝送された第1乃至第4データは結合され、64ビット幅信号線outから出力される。
【0068】
図11に示すようにスイッチ回路r1〜r13が切り替えられることによって、受信データ変換装置RX11は、4クロックで、1本の16ビット幅信号線in1から入力されたデータを、64ビット幅信号線outへ出力する。
【0069】
以上に示したように、受信データ変換装置RX11〜RX32は、接続ライン構成制御装置50から受信する接続ラインの制御情報51に従い、図9乃至図11に示すいずれかのようにスイッチ回路r1〜r13を切り替える。なお、受信データ変換装置RX11〜RX32のスイッチ回路の切り換え方は、図9乃至図11に示すものに限られない。また、受信データ変換装置RX11〜RX32の入力を4本の16ビット幅信号線in1〜in4とし、出力を1本の64ビット幅信号線outとしたが、これに限られない。例えば、受信データ変換装置RX11〜RX32の入力を64本の1ビット幅信号線in1〜in64とし、出力を1本の64ビット幅信号線outとしても良い。
【0070】
なお、図5のスイッチ切換え状態の送信データ変換装置の信号線out1〜out4と、図9のスイッチ切換え状態の受信データ変換装置の信号線in1〜in4とをそれぞれ接続することにより、同じクロックで、64ビット幅のデータを送受信することができる。以下、同様に、図6の出力信号線out1〜out4と図10の入力信号線in1〜in4とをそれぞれ接続することにより、2クロックで、64ビット幅のデータを送受信することができる。図7の出力信号線out1〜out4と図11の入力信号線in1〜in4とをそれぞれ接続することにより、4クロックで、64ビット幅のデータを送受信することができる。
【0071】
図12は、データリンク装置31の構成を示すブロック図である。
データリンク装置31は、データリンクDL11〜DL44と、スイッチ回路SW1〜SW12と、図12に丸記号で示されたスイッチ回路とを備える。
【0072】
データリンクDL11〜DL14は、受信データ変換装置RX11、RX12、RX21と送信データ変換装置TX11、TX12と接続される。データリンクDL21〜DL24は、受信データ変換装置RX22と接続される。データリンクDL31〜DL34は、送信データ変換装置TX21と接続される。データリンクDL41〜DL44は、受信データ変換装置RX31、RX32と送信データ変換装置TX22、TX31、TX32と接続される。
【0073】
各送信データ変換装置TX11〜TX32からデータリンクへ伸びる4本の矢印は、それぞれ図4に示す信号線out1〜out4と接続された16ビット幅信号線である。データリンクから各受信データ変換装置RX11〜RX32へ伸びる4本の矢印は、それぞれ図8に示す信号線in1〜in4と接続された16ビット幅の信号線である。
【0074】
受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32と、データリンクとの間の接続の有無を切り替えるスイッチ回路は、図12において、受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32と接続された信号線とデータリンクとの交差する点を囲む丸記号で示される。
【0075】
スイッチ回路SW1は、データリンクDL11とデータリンクDL21との間を接続あるいは開放する。以下、同様に、SW2は「DL12−DL22間」、SW3は「DL13−DL23間」、SW4は「DL14−DL24間」、SW5は「DL21−DL31間」、SW6は「DL22−DL32間」、SW7は「DL23−DL33間」、SW8は「DL24−DL34間」、SW9は「DL31−DL41間」、SW10は「DL32−DL42間」、SW11は「DL33−DL43間」、SW12は「DL34−DL44間」を接続あるいは開放する。
【0076】
なお、受信データ変換装置RX11〜RX32および送信データ変換装置TX11〜TX32とデータリンクDL11〜DL44との間の接続の有無を切り替えるスイッチ回路、および、スイッチ回路SW1〜SW12は、接続ライン構成制御装置50から図示しない制御パスを介して送信される制御情報によって、切り換え動作が制御される。
【0077】
また、データリンクDL11〜DL44を16ビット幅の信号線としたが、送信データ変換装置TX11〜TX32の出力用の信号線out1〜out4および受信データ変換装置RX11〜RX32の入力用の信号線in1〜in4と同一の帯域幅であればよい。
【0078】
図13は、機能ブロック構成制御装置40と接続ライン構成制御装置50の制御の動作を示す図である。なお、図13には、プロセッサA10aと、セレクタ22aと、図12の点線で囲まれた領域Aに含まれる、送信データ変換装置TX11、TX12およびデータリンクDL11〜DL14とを示す。また、機能ブロック構成制御装置40および接続ライン構成制御装置50からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0079】
機能ブロック構成制御装置40は、機能ブロックA10aとセレクタ22aへ制御信号を送信して、その動作を制御する。接続ライン構成制御装置50は、送信データ変換手段TX11、TX12と、送信データ変換手段TX11、TX12とデータリンクDL11〜DL14との接続の有無を切り替えるスイッチ回路へ、制御パスを介して制御信号を送信して、その動作を制御する。
【0080】
図14は、機能ブロック構成制御装置40がセレクタ21a、22aを制御する際の動作を示す図である。なお、セレクタ21b、21cはセレクタ21aと同じ構成であり、セレクタ22b、22cはセレクタ22aと同じ構成である。また、機能ブロック構成制御装置40からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0081】
セレクタ21aは、機能ブロック構成制御装置40から送信された制御情報に応じて、入力された2つのデータのうち、一方を出力する。セレクタ22aは、機能ブロック構成制御装置40から送信された制御情報に応じて、入力された1つのデータを、2本の配線うち一方もしくは両方へ出力する。
【0082】
図15は、接続ライン構成制御装置50がスイッチ回路SW1〜SW4へ制御情報を送信しその動作を制御する際の動作を示す図である。
なお、図15には、図12の点線で囲まれた領域Bに含まれる、受信データ変換装置RX21、RX22と、データリンクDL11〜DL14、DL21〜DL24と、スイッチ回路SW1〜SW4を示す。また、接続ライン構成制御装置50からのびる点線の矢印は、制御信号が送信される制御パスを示す。
【0083】
接続ライン構成制御装置50は、スイッチ回路SW1〜SW4へ、制御パスを介して制御信号を送信し、その動作を制御する。
【0084】
図16は、機能ブロックの制御情報41と接続ラインの制御情報51とを示す図である。
機能ブロックの制御情報41は、ID1と、ID2と、機能ブロック・セレクタの構成情報との3つの情報を有するエントリを複数有する。ID1は、機能ブロックの制御情報41のエントリごとにふられる数字である。ID2は、接続ラインの制御情報51のエントリごとにふられる数字である。機能ブロック・セレクタの構成情報は、機能ブロック構成制御装置40によって機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cへ送信される制御情報である。
【0085】
接続ラインの制御情報51は、ID2と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、接続ライン構成制御装置50によって接続装置30へ送信される制御情報である。
【0086】
機能ブロック構成制御装置40は、機能ブロックの制御情報41を、1クロックごとに1エントリずつ読み出す。機能ブロック構成制御装置40は、機能ブロックの制御情報41を1エントリ読み出したら、機能ブロック・セレクタの構成情報を制御情報として、機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cとへ送信する。また、機能ブロック構成制御装置40は、ID2の値を接続ライン構成制御装置50へ送信する。
【0087】
接続ライン構成制御装置50は、機能ブロック構成制御装置40からID2の値を受信したら、そのID2の値を有するエントリを選択する。接続ライン構成制御装置50は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0088】
なお、機能ブロックの制御情報41と接続ラインの制御情報51とは、圧縮されて記憶されても良い。この際、機能ブロック構成制御装置40と接続ライン構成制御装置50は、圧縮されている制御情報を復元する復元装置を有する。
【0089】
また、機能ブロック構成制御装置40と接続ライン構成制御装置50とを同期させる方式は、機能ブロック構成制御装置40が接続ライン構成制御装置50へID2を送信して同期するものに限られない。例えば、機能ブロックの制御情報41のID2の代わりにフラグが記憶されており、機能ブロック構成制御装置40から接続ライン構成制御装置50へフラグが送信されると、接続ライン構成制御装置50が接続ラインの制御情報51の次のエントリを読み出すこととしてもよい。
【0090】
さらに、接続ライン構成制御装置50がカウンタを有し、そのカウンタ値が一定値に達すると接続ラインの制御情報51の次のエントリを読み出すこととしてもよい。さらにまた、図示しない外部プロセッサが、接続ライン構成制御装置50に接続ラインの制御情報51を切り替えることとしてもよい。
【0091】
図17乃至図20は、プロセッサ装置1が演算処理を行う際の動作を示す図である。図17は、「ID2=1」における接続装置30の構成を示すブロック図である。図18は、「ID2=2」における接続装置30の構成を示すブロック図である。
【0092】
図17、図18において、太線は、機能ブロック間でデータが送受信される際に、そのデータが伝送される信号線を示す。太線の矢印はデータが伝送される方向を示す。太線以外の信号線では、データの伝送は行われない。
【0093】
「ID2=1」において、送信データ変換装置TX12、TX22は図5に示すようにスイッチ回路が切り替え、受信データ変換装置RX21、RX31は図9に示すようにスイッチ回路が切り替えられている。即ち、一方の機能ブロックの出力データポート12a〜12cから出力されたデータは、出力されたクロックと同じクロックのうちに、他方の機能ブロックの入力データポートへ入力される。
【0094】
「ID2=2」において、送信データ変換装置TX11〜TX32は図7に示すようにスイッチ回路が切り替え、受信データ変換装置RX11〜RX32は図11に示すようにスイッチ回路が切り替えられる。即ち、一方の機能ブロックの出力データポートから出力されたデータは、4クロックかけて、他方の機能ブロックの入力データポートへ入力される。
【0095】
図19は、プロセッサ装置1が演算処理を行う際の、機能ブロックの制御情報41の一例を示す図である。図20は、プロセッサ装置1が図19の機能ブロックの制御情報41に従い演算処理を行う際の、各機能ブロックA10a、B10b、C10cで実行される命令とデータの入出力関係を示す図である。
【0096】
ここで、機能ブロックA10a、B10b、C10cは、図示しないALUを有する。機能ブロックA10aは命令「inst1、11〜14」を、機能ブロックB10bは命令「inst2、21〜24」を、機能ブロックC10cは命令「inst3、31〜34」を実行可能である。機能ブロックA10a、B10b、C10cは、命令を実行してから1クロック後にそれぞれの出力データポート12a〜12cからその命令の実行結果を出力する。なお、命令「inst2」の実行には命令「inst1」の実行結果を使用し、命令「inst3」の実行には命令「inst2」の実行結果を使用する。また、命令「inst23」、「inst33」、「inst13」、「inst34」、「inst14」、「inst24」の実行には、それぞれ命令「inst11」、「inst12」、「inst21」、「inst22」、「inst31」、「inst32」の実行結果を使用する。
【0097】
機能ブロックの出力データポート12a〜12cに接続されたセレクタ22a〜22cに対して送信される制御情報については、out_selと、機能ブロックの入力データポート11a〜11cに接続されたセレクタ21a〜21cに対して送信される制御情報については、in_selと記載する。
【0098】
セレクタ21a〜21c,22a〜22cへの制御情報out_sel、in_selは、“0”、“1”、“2”のいずれかの値である。制御情報が“0”の場合、セレクタ21a〜21c,22a〜22cは、データの入出力を行わない。
【0099】
制御情報が“1”の場合、セレクタ21a〜21cは、受信データ変換装置RX11、RX21、RX31からのデータを入力として選択し、各機能ブロックA10a、B10b、C10cの入力データポート11a〜11cへ出力する。制御情報が“1”の場合、セレクタ22a〜22cは、各機能ブロックの出力データポート12a〜12cからのデータを入力とし、送信データ変換装置TX11、TX21、TX31へデータを出力する。
【0100】
制御情報が“2”の場合、セレクタ21a〜21cは、受信データ変換装置RX12、RX22、RX32からのデータを入力として選択し、各機能ブロックの入力データポート11a〜11cへ出力する。制御情報が“2”の場合、セレクタ22a〜22cは、各機能ブロックの出力データポート12a〜12cからのデータを入力とし、送信データ変換装置TX12、TX22、TX32へデータを出力する。
【0101】
次に、機能ブロック構成制御装置40が、図19の機能ブロックの制御情報41に従って、演算処理を行う際の動作を説明する。なお、機能ブロック構成制御装置40は、図19に示す「ID1=1」のエントリから順に実行する。
[第1クロック:ID1=1、ID2=1]
機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=1」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値“1”を接続ライン構成制御装置50へ送信する。接続ライン構成制御装置50はID2の値“1”を受信すると、接続ラインの制御情報1から「ID2=1」のエントリの接続装置構成情報を読み出す。接続ライン構成制御装置50は、読み出した接続装置構成情報に従い、接続装置30を図17に示す接続関係とするように制御する。なお、接続装置30は、機能ブロックの制御情報41の「ID1=6」のエントリが機能ブロック構成制御装置40によって実行されるまで、図17に示す接続関係を維持する。
【0102】
次に、機能ブロック構成制御装置40は、セレクタ21a〜21c,22a〜22cへ制御信号“0”を送信する。セレクタ21a〜21c,22a〜22cは、この制御信号に従い、データの入出力を行わない。
【0103】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst1」を、機能ブロックB10bへ「NOP(No Operation)」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst1」を実行し、機能ブロックB10b、C10cは待機状態となる。
【0104】
[第2クロック:ID1=2、ID2=1]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41の「ID1=2」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“1”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図17に示す接続関係を維持する。
【0105】
次に、機能ブロック構成制御装置40は、セレクタ22aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0106】
そのため、機能ブロックA10aの出力データポート12aから出力されるデータは、セレクタ22a、送信データ変換装置TX12、データリンク装置31、受信データ変換装置RX21、およびセレクタ21bを介して、機能ブロックB10bの入力データポート11bへ到達する。
【0107】
ここで、第1クロックで、機能ブロックA10aは命令「inst1」の処理を開始している。そのため、第2クロックで、機能ブロックA10aは、命令「inst1」の処理結果を出力データポート12aから出力する。そして、機能ブロックB10bには、命令「inst1」の処理結果が入力データポート11bから入力される。
【0108】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst1」を、機能ブロックB10bへ「inst2」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst1」を実行し、機能ブロックB10bは「inst2」を実行し、Cは待機状態となる。
【0109】
以下、第3乃至第5クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0110】
[第6クロック:ID1=6、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=6」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”に変更されたため、接続ライン構成制御装置50へID2の値“2”を送信する。接続ライン構成制御装置50はID2の値“2”を受信すると、接続ラインの制御情報51から「ID2=2」のエントリの接続装置構成情報を読み出す。接続ライン構成情報装置50は、読み出した接続装置構成情報に従い、接続装置30を図18に示す接続関係となるように制御する。
【0111】
次に、機能ブロック構成制御装置40は、すべてのセレクタ21a〜21c,22a〜22cへ制御信号“0”を送信する。そのため、機能ブロック間のデータ転送は行われない。
【0112】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst11」を、機能ブロックB10bへ「inst21」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst11」を実行し、機能ブロックB10bは「inst21」を実行し、Cは待機状態となる。
【0113】
[第7クロック:ID1=7、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41「ID1=7」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図18に示す接続関係を維持する。
【0114】
次に、機能ブロック構成制御装置40は、セレクタ22aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0115】
そのため、機能ブロックA10aの出力データポート12aから出力されるデータは、セレクタ22a、送信データ変換装置TX12、データリンク装置31、受信データ変換装置RX21、およびセレクタ21bを介して、4クロックかけて、機能ブロックB10bの入力データポート11bへ第10クロックに到達する。
【0116】
また、機能ブロックB10bの出力データポート12bから出力されるデータは、セレクタ22b、送信データ変換装置TX21、データリンク装置31、受信データ変換装置RX11、およびセレクタ21aを介して、4クロックかけて、機能ブロックA10aの入力データポート11aへ第10クロックに到達する。
【0117】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst12」を、機能ブロックB10bへ「NOP」を、機能ブロックC10cへ「inst31」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst12」を実行し、機能ブロックB10bは待機状態となり、機能ブロックC10cは「inst31」を実行する。
【0118】
以下、第8および第9クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0119】
[第10クロック:ID1=10、ID2=2]
次に、機能ブロック構成制御装置40は、機能ブロックの制御情報41の「ID1=10」のエントリを読み出す。
次に、機能ブロック構成制御装置40は、ID2の値は“2”のままであるため、接続ライン構成制御装置50へはID2の値を送信しない。そのため、接続装置30は、図18に示す接続関係を維持する。
【0120】
次に、機能ブロック構成制御装置40は、セレクタ21aへ制御信号“2”を送信し、セレクタ21bへ制御信号“1”を送信する。機能ブロック構成制御装置40は、その他のセレクタには制御信号“0”を送信する。
【0121】
そのため、機能ブロックA10aの入力データポート11aには、受信データ変換装置RX12からのデータが入力される。機能ブロックB10bの入力データポート11bには、受信データ変換装置RX21からのデータが入力される。
【0122】
ここで、機能ブロックA10aが第6クロックで行った命令「inst11」の処理結果が、4クロックかけて、機能ブロックB10bの入力データポート11bに到達し、入力される。また、機能ブロックB10bが第6クロックで行った命令「inst21」の処理結果が、4クロックかけて、機能ブロックA10aの入力データポート11aに到達し、入力される。
【0123】
次に、機能ブロック構成制御装置40は、機能ブロックA10aへ「inst13」を、機能ブロックB10bへ「inst23」を、機能ブロックC10cへ「NOP」を制御信号として送信する。この制御信号に従い、機能ブロックA10aは「inst13」を実行し、機能ブロックB10bは「inst23」を実行し、Cは待機状態となる。
【0124】
以下、第11および第12クロックにおけるプロセッサ装置1の動作については説明を省略する。
【0125】
図20は、プロセッサ装置1が図19の機能ブロックの制御情報41に従い演算処理を行う際の、各機能ブロックA10a、B10b、C10cで実行される命令とデータの入出力関係を示す図である。
第1乃至第12クロックに対応して、機能ブロックA10a、B10b、C10cに割り当てられる命令が記載されている。これは、図19に示す、機能ブロックの制御情報41と同一である。
【0126】
[第1〜第5クロック]
「クロック1の機能ブロックA10aからクロック2の機能ブロックB10bへの矢印」が記載されている。これは、機能ブロックA10aが、クロック1で命令「inst1」を実行する。そして、クロック2で、機能ブロックA10aから機能ブロックB10bへ、その実行結果が伝達されることを示す。
【0127】
これは、クロック1からクロック5までの領域にある矢印、例えば、「クロック2の機能ブロックA10aからクロック3の機能ブロックB10bへの矢印」や「クロック4の機能ブロックB10bからクロック5の機能ブロックC10cへの矢印」についても同様である。
【0128】
[第6〜第12クロック]
「クロック6の機能ブロックA10aからクロック10の機能ブロックB10bへの矢印」が記載されている。これは、機能ブロックA10aが、クロック6で命令「inst11」を実行する。そして、機能ブロックA10aが、クロック7からクロック10まで4クロックをかけて、その実行結果を機能ブロックB10bへ伝送することを示す。
【0129】
これは、クロック6からクロック12までの領域にある矢印、例えば、「クロック7の機能ブロックA10aからクロック11の機能ブロックC10cへの矢印」や「クロック7の機能ブロックC10cからクロック11の機能ブロックA10aへの矢印」についても同様である。
【0130】
第1乃至第5クロックでは、「ID2=1」であり、機能ブロックA10aと機能ブロックB10b間、および、機能ブロックB10bと機能ブロックC10c間を接続する配線の帯域幅は大きい。しかし、機能ブロックA10aと機能ブロックB10b間、および、機能ブロックB10bと機能ブロックC10c間、以外のデータ転送は行えない。
第1乃至第5クロックにおけるデータ転送は、機能ブロックA10aから機能ブロックB10bへ、あるいは、機能ブロックB10bから機能ブロックC10cへしか行われない。しかし、機能ブロックA10aの命令「inst1」の実行結果を使用して、機能ブロックB10bが命令「inst2」を実行する。また、機能ブロックB10bの命令「inst2」の実行結果を使用して、機能ブロックC10cが命令「inst3」を実行する。そのため、各機能ブロックA10a、B10b、C10c間を接続する配線の帯域幅が大きくデータ転送が素早くなされた方が、機能ブロックB10bと機能ブロックC10cが大気状態となる時間を短縮することができる。そのため、プロセッサ装置1全体としての処理効率が向上する。
【0131】
一方、第6乃至第12クロックでは、即ち「ID2=2」であり、各機能ブロックA10a、B10b、C10cは任意の他の機能ブロックへデータ転送を行うことができる。しかし、各機能ブロックA10a、B10b、C10c間を接続する配線の帯域幅は小さい。
【0132】
第6乃至第12クロックにおけるデータ転送は、機能ブロックA10aから機能ブロックB10b、C10cへ、機能ブロックB10bから機能ブロックC10c、A10aへ、および機能ブロックC10cから機能ブロックA10a、B10bへと多岐にわたる。このような状況では、特定の機能ブロック間の帯域幅を大きくするよりも、各機能ブロックがデータを直接送信することができる相手先を選択する際の自由度が大きくする必要がある。
【0133】
このように、第1の実施形態に係るプロセッサ装置1は、各機能ブロックの接続関係のみならず、各機能ブロック間の配線の帯域幅を各機能ブロックの入出力データポートの帯域幅よりも小さな単位で動的に変更する。そのため、プロセッサ装置で実行されるアプリケーションの性質に応じて配線資源の配分の仕方を動的に変更することができ、各機能ブロック間のデータ転送を効率的に行うことができる。各機能ブロック間のデータ転送効率を向上させることにより、各機能ブロックの処理効率をも向上させることができ、プロセッサ装置が備えるハードウェア資源を有効に活用することができる。これによって、プロセッサ装置のチップ面積を減少でき、消費電力が抑制可能となる。
【0134】
なお、本実施形態では、各機能ブロックA10a、B10b、C10cの制御を行う機能ブロック構成制御装置40と、接続装置30の制御を行う接続ライン構成制御装置50と、を別々のハードウェアとする構成を採用した。クロックサイクルごとに各機能ブロックA10a、B10b、C10cの処理を制御する機能ブロック構成制御装置40には大きな処理速度が求められる。一方、実行されるアプリケーションの切り替えなどの比較的長い期間ごとに接続装置30の接続関係を変更する接続ライン構成制御装置50の処理速度は小さくても問題はない。そのため、機能ブロック構成制御装置40と接続ライン構成制御装置50とを別々のハードウェアで実現することにより、必要とされる処理能力に応じた構成とすることできる。
【0135】
また、第1の実施形態に係るプロセッサ装置1は、各機能ブロックの入出力データポート11a〜12cと接続装置30との間にセレクタ21a〜21c,22a〜22cを備える。機能ブロック構成制御装置40は、各機能ブロックA10a、B10b、C10cとそれらに接続されたセレクタ21a〜21c,22a〜22cに対して制御信号を送信する。一方、接続ライン構成制御装置50は、接続装置30が備える多数のスイッチ回路に対して制御信号を送信する。そのため、接続ライン構成制御装置50が動作する際の消費電力は、機能ブロック構成制御装置40が動作する際の消費電力よりも大きい。機能ブロック構成制御装置40がセレクタ21a〜21c,22a〜22cを制御することによって接続関係を変更可能な構成とすることで、接続ライン構成制御装置50の動作回数を減少させることができ、消費電力を低減することができる。
【0136】
なお、第1の実施形態に係るプロセッサ装置1は、セレクタ21a〜21c,22a〜22cを備えない構成とすることができる。図21は、セレクタ21a〜21c,22a〜22cを備えないプロセッサ装置を示すブロック図である。このような構成とすることで、セレクタ21a〜21c,22a〜22cとそれらに接続された配線が占めるチップ面積を減少することができる。
【0137】
(第2の実施形態)
図22は、本発明の第2の実施形態に係るプロセッサ装置2の構成を示すブロック図である。
この第2の実施形態に係るプロセッサ装置2は、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、機能ブロック構成制御装置40と、第1の接続ライン構成制御装置50−1と、第2の接続ライン構成制御装置50−2とを備える。なお、機能ブロックA10a、B10b、C10cと、セレクタ21a〜21c,22a〜22cと、機能ブロック構成制御装置40は、第1の実施形態と同じであるので、同一符号をつけてその説明は省略する。
【0138】
第1の接続ライン構成制御装置50−1は、第1の接続ラインの制御情報51−1に従って、接続装置30を制御する。第2の接続ライン構成制御装置50−2は、第2の接続ラインの制御情報51−2に従って、接続装置30を制御する。
【0139】
つまり、第1の実施形態の接続ライン構成制御装置50が、第1の接続ライン構成制御装置50−1と第2の接続ライン構成制御装置50−2とにより構成される点が、第1の実施形態と比較して相異する。
【0140】
図23は、機能ブロックの制御情報41と第1および第2の接続ラインの制御情報51−1、51−2とを示す図である。
機能ブロックの制御情報41は、ID1と、ID3と、ID4と、機能ブロック・セレクタの構成情報との4つの情報を有するエントリを複数有する。ID1は、機能ブロックの制御情報41のエントリごとにふられる数字である。ID3は、第1の接続ラインの制御情報51−1のエントリごとにふられる数字である。ID4は、第2の接続ラインの制御情報51−2のエントリごとにふられる数字である。機能ブロック・セレクタの構成情報は、機能ブロック構成制御装置40によって機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cへ送信される制御情報である。
【0141】
第1の接続ラインの制御情報51−1は、ID3と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、第1の接続ライン構成制御装置によって接続装置30へ送信される制御情報である。
【0142】
第2の接続ラインの制御情報51−2は、ID4と、接続装置構成情報との2つの情報を有するエントリを複数有する。接続装置構成情報は、第2の接続ライン構成制御装置50−2によって接続装置30へ送信される制御情報である。
【0143】
機能ブロック構成制御装置40は、機能ブロックの制御情報41を、1クロックごとに1エントリずつ読み出す。機能ブロック構成制御装置40は、機能ブロックの制御情報41を1エントリ読み出したら、機能ブロック・セレクタの構成情報を制御情報として、機能ブロックA10a、B10b、C10cとセレクタ21a〜21c,22a〜22cとへ送信する。機能ブロック構成制御装置40は、ID3の値を第1の接続ライン構成制御装置50−1へ、ID4の値を第2の接続ライン構成制御装置50−2へ送信する。
【0144】
第1の接続ライン構成制御装置50−1は、機能ブロック構成制御装置40からID3の値を受信したら、そのID3の値を有するエントリを選択する。第1の接続ライン構成制御装置50−2は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0145】
第2の接続ライン構成制御装置50−2は、機能ブロック構成制御装置40からID4の値を受信したら、そのID4の値を有するエントリを選択する。第2の接続ライン構成制御装置50−2は、選択されたエントリの接続装置構成情報を読み出し、制御情報として接続装置30へ送信する。
【0146】
このように、第2の実施形態に係るプロセッサ装置1は、接続装置30を制御する接続ライン構成制御装置50を別個の2つのハードウェアとして構成する。そのため、例えば、第1の制御ライン制御装置に50−1よって制御される接続装置30の動作頻度が大きく、第2の制御ライン制御装置50−2によって制御される接続装置30の動作頻度が小さい場合など、第1の制御ライン制御装置50−1と第2の制御ライン制御装置50−2とを独立して動作させることができ、消費電力を削減できる。また、第1の制御ラインの接続情報51−1と第2の制御ラインの接続情報51−2との2つの情報によって接続装置30を制御するため、一方あるいは双方の制御ラインの接続情報のエントリ数を小さくしたとしても、接続装置30の複雑な制御を実現することができる。
【0147】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0148】
【図1】本発明の第1の実施形態に係るプロセッサ装置1の構成を示すブロック図。
【図2】機能ブロックの構成の例を示すブロック図。
【図3】接続装置30の構成を示すブロック図。
【図4】送信データ変換装置TX11の構成を示すブロック図。
【図5】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図6】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図7】送信データ変換装置TX11のスイッチ回路切り替え例を示す図。
【図8】受信データ変換装置RX11の構成を示すブロック図。
【図9】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図10】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図11】受信データ変換装置RX11のスイッチ回路切り替え例を示す図。
【図12】データリンク装置31の構成を示すブロック図。
【図13】機能ブロック構成制御装置40と接続ライン構成制御装置50の制御の動作を示す図。
【図14】機能ブロック構成制御装置40がセレクタ21a、22aを制御する際の動作を示す図。
【図15】接続ライン構成制御装置50がスイッチ回路を制御する際の動作を示す図。
【図16】機能ブロックの制御情報41と接続ラインの制御情報51とを示す図。
【図17】接続装置30の構成「ID2=1」を示すブロック図。
【図18】接続装置30の構成「ID2=2」を示すブロック図。
【図19】機能ブロックの制御情報41の一例を示す図。
【図20】各機能ブロックで実行される命令とデータの入出力関係を示す図。
【図21】セレクタ21a〜21c,22a〜22cを備えないプロセッサ装置1を示すブロック図。
【図22】第2の実施形態に係るプロセッサ装置1の構成を示すブロック図。
【図23】機能ブロックの制御情報41と第1の接続ラインの制御情報51−1と第2の接続ラインの制御情報51−2とを示す図。
【符号の説明】
【0149】
1、2・・・プロセッサ装置
10a・・・機能ブロックA
10b・・・機能ブロックB
10c・・・機能ブロックC
11a、11b、11c、11L−1、11R−1、11−2、11−3・・・入力データポート
12a、12b、12c、12−1、12L−2、12R−2、12−3・・・出力データポート
13・・・ALU
14・・・フリップフロップ
15・・・レジスタファイル
16・・・RAM
21a、21b,21c,22a、22b、22c・・・セレクタ
30・・・接続装置
31・・・データリンク装置
TX11、TX12、TX21、TX22、TX31、TX32・・・送信データ変換装置
RX11、RX12、RX21、RX22、RX31、RX32・・・受信データ変換装置
FF1、FF2、FF3、FF4、FF5、FF6、FF7、FF8・・・フリップフロップ
t1、t2、t3、t4、t5、t6、t7、t8、t9、t10、t11、t12、t13・・・スイッチ回路
DL11、DL12、DL13、DL14、DL21、DL22、DL23、DL24、DL31、DL32、DL33、DL34、DL41、DL42、DL43、DL44・・・データリンク
SW1、SW2、SW3、SW4、SW5、SW6、SW7、SW8、SW9、SW10、SW11、SW12、SW13・・・スイッチ回路
40・・・機能ブロック構成制御装置
41・・・機能ブロックの制御情報
50・・・接続ライン構成制御装置
50−1・・・第1の接続ライン構成制御装置
50−2・・・第2の接続ライン構成制御装置
51・・・接続ラインの制御情報
51−1・・・第1の接続ラインの制御情報
51−2・・・第2の接続ラインの制御情報
【特許請求の範囲】
【請求項1】
出力データポートを有する第1の機能ブロックと、
入力データポートを有する第2の機能ブロックと、
前記第1の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第1の接続手段と、
データ転送に使用する前記第1の接続手段のビット幅を変更する第1の変更手段と、
前記第1の機能ブロックへ第1の機能制御情報を送信し、前記第2の機能ブロックへ第2の機能制御情報を送信する第1の制御手段と、
前記第1の制御手段と同期して動作し、前記第1の変更手段へ第1の接続制御情報を送信する第2の制御手段とを備え、
前記第1の機能ブロックは、前記第1の機能制御情報に指定される処理の結果を前記出力データポートから出力し、
前記第1の変更手段は、データ転送に使用する前記第1の接続手段のビット幅を、前記第1の接続制御情報によって指定されるビット幅へ変更し、
前記第2の機能ブロックは、前記第2の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行うことを特徴とするプロセッサ装置。
【請求項2】
前記第1の接続手段が、N本(Nは2以上の整数)の信号線であり、
前記第1の変更手段が、データ転送に使用する前記信号線の本数を変更することを特徴とする請求項1に記載のプロセッサ装置。
【請求項3】
前記第1の制御手段と前記第2の制御手段とが、別々のハードウェアによって構成されることを特徴とする請求項1または請求項2に記載のプロセッサ装置。
【請求項4】
出力データポートを有する第3の機能ブロックと、
前記第3の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第2の接続手段と、
前記第1の機能ブロックの前記出力データポートから前記第1の接続手段を介して受信したデータか、前記第3の機能ブロックの前記出力データポートから前記第2の接続手段を介して受信したデータか、どちらのデータを前記第2の機能ブロックの前記入力データポートへ出力するかを選択する第1の選択手段とをさらに備え、
前記第1の制御手段が、前記第1の選択手段へ第1の選択制御情報を送信し、
前記第1の選択手段が、前記第1の選択制御情報に従って選択することを特徴とする請求項3に記載のプロセッサ装置。
【請求項5】
入力データポートを有する第3の機能ブロックと、
前記第1の機能ブロックの前記出力データポートと前記第3の機能ブロックの前記入力データポートとを接続する第3の接続手段と、
前記第1の機能ブロックの前記出力データポートから出力されたデータを、前記第1の接続手段を介して前記第2の機能ブロックの前記入力データポートへ送信するか、前記第3の接続手段を介して前記第3の機能ブロックの前記入力データポートへ送信するかを選択する第2の選択手段とをさらに備え、
前記第1の制御手段が、前記第2の選択手段へ第2の選択制御情報を送信し、
前記第2の選択手段が、前記第2の選択制御情報に従って選択することを特徴とする請求項3に記載のプロセッサ装置。
【請求項6】
出力データポートを有する第3の機能ブロックと、
入力データポートを有する第4の機能ブロックと、
前記第3の機能ブロックの前記出力データポートと前記第4の機能ブロックの前記入力データポートとを接続する第4の接続手段と、
データ転送に使用する前記第4の接続手段のビット幅を変更する第2の変更手段と
前記第2の変更手段へ第2の接続制御情報を送信する第3の制御手段とをさらに備え、
前記第1の制御手段が、前記第3の機能ブロックへ第3の機能制御情報を送信し、前記第4の機能ブロックへ第4の機能制御情報を送信し、
前記第3の機能ブロックは、前記第3の機能制御情報に指定される処理の結果を前記出力データポートから出力し、
前記第2の変更手段は、データ転送に使用する前記第4の接続手段のビット幅を、前記第2の接続制御情報によって指定されるビット幅へ変更し、
前記第4の機能ブロックは、前記第4の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行い、
前記第2の制御手段と前記第3の制御手段とが、別々のハードウェアによって構成され同期して動作することを特徴とする請求項3に記載のプロセッサ装置。
【請求項1】
出力データポートを有する第1の機能ブロックと、
入力データポートを有する第2の機能ブロックと、
前記第1の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第1の接続手段と、
データ転送に使用する前記第1の接続手段のビット幅を変更する第1の変更手段と、
前記第1の機能ブロックへ第1の機能制御情報を送信し、前記第2の機能ブロックへ第2の機能制御情報を送信する第1の制御手段と、
前記第1の制御手段と同期して動作し、前記第1の変更手段へ第1の接続制御情報を送信する第2の制御手段とを備え、
前記第1の機能ブロックは、前記第1の機能制御情報に指定される処理の結果を前記出力データポートから出力し、
前記第1の変更手段は、データ転送に使用する前記第1の接続手段のビット幅を、前記第1の接続制御情報によって指定されるビット幅へ変更し、
前記第2の機能ブロックは、前記第2の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行うことを特徴とするプロセッサ装置。
【請求項2】
前記第1の接続手段が、N本(Nは2以上の整数)の信号線であり、
前記第1の変更手段が、データ転送に使用する前記信号線の本数を変更することを特徴とする請求項1に記載のプロセッサ装置。
【請求項3】
前記第1の制御手段と前記第2の制御手段とが、別々のハードウェアによって構成されることを特徴とする請求項1または請求項2に記載のプロセッサ装置。
【請求項4】
出力データポートを有する第3の機能ブロックと、
前記第3の機能ブロックの前記出力データポートと前記第2の機能ブロックの前記入力データポートとを接続する第2の接続手段と、
前記第1の機能ブロックの前記出力データポートから前記第1の接続手段を介して受信したデータか、前記第3の機能ブロックの前記出力データポートから前記第2の接続手段を介して受信したデータか、どちらのデータを前記第2の機能ブロックの前記入力データポートへ出力するかを選択する第1の選択手段とをさらに備え、
前記第1の制御手段が、前記第1の選択手段へ第1の選択制御情報を送信し、
前記第1の選択手段が、前記第1の選択制御情報に従って選択することを特徴とする請求項3に記載のプロセッサ装置。
【請求項5】
入力データポートを有する第3の機能ブロックと、
前記第1の機能ブロックの前記出力データポートと前記第3の機能ブロックの前記入力データポートとを接続する第3の接続手段と、
前記第1の機能ブロックの前記出力データポートから出力されたデータを、前記第1の接続手段を介して前記第2の機能ブロックの前記入力データポートへ送信するか、前記第3の接続手段を介して前記第3の機能ブロックの前記入力データポートへ送信するかを選択する第2の選択手段とをさらに備え、
前記第1の制御手段が、前記第2の選択手段へ第2の選択制御情報を送信し、
前記第2の選択手段が、前記第2の選択制御情報に従って選択することを特徴とする請求項3に記載のプロセッサ装置。
【請求項6】
出力データポートを有する第3の機能ブロックと、
入力データポートを有する第4の機能ブロックと、
前記第3の機能ブロックの前記出力データポートと前記第4の機能ブロックの前記入力データポートとを接続する第4の接続手段と、
データ転送に使用する前記第4の接続手段のビット幅を変更する第2の変更手段と
前記第2の変更手段へ第2の接続制御情報を送信する第3の制御手段とをさらに備え、
前記第1の制御手段が、前記第3の機能ブロックへ第3の機能制御情報を送信し、前記第4の機能ブロックへ第4の機能制御情報を送信し、
前記第3の機能ブロックは、前記第3の機能制御情報に指定される処理の結果を前記出力データポートから出力し、
前記第2の変更手段は、データ転送に使用する前記第4の接続手段のビット幅を、前記第2の接続制御情報によって指定されるビット幅へ変更し、
前記第4の機能ブロックは、前記第4の機能制御情報に指定される処理を、前記入力データポートから入力されるデータに対して行い、
前記第2の制御手段と前記第3の制御手段とが、別々のハードウェアによって構成され同期して動作することを特徴とする請求項3に記載のプロセッサ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2009−20738(P2009−20738A)
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【出願番号】特願2007−183335(P2007−183335)
【出願日】平成19年7月12日(2007.7.12)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【出願日】平成19年7月12日(2007.7.12)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]