JP4647533B2 - 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム - Google Patents
演算処理装置、演算処理装置の内部構成決定方法および演算処理システム Download PDFInfo
- Publication number
- JP4647533B2 JP4647533B2 JP2006091025A JP2006091025A JP4647533B2 JP 4647533 B2 JP4647533 B2 JP 4647533B2 JP 2006091025 A JP2006091025 A JP 2006091025A JP 2006091025 A JP2006091025 A JP 2006091025A JP 4647533 B2 JP4647533 B2 JP 4647533B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- data
- arithmetic processing
- priority
- arithmetic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
本発明に関連する技術では、演算処理装置は、複数の入力バッファ部、演算処理部、複数の出力バッファ部および制御部を備えて構成される。入力バッファ部は、複数のデータ系列に対応して設けられる。各入力バッファ部は、対応する外部入力データを格納して処理対象データとして出力する。演算処理部は、データ系列毎に処理対象データに対して所望の演算処理を実施して処理結果データを出力するために、接続情報に応じて内部の構成要素の接続関係を確立することで演算処理機能を変更する。例えば、演算処理部は、複数のレジスタ、複数の演算器、複数のメモリおよび接続関係変更部を備えて構成される。レジスタ、演算器およびメモリは、演算処理部の構成要素として設けられる。接続関係変更部は、接続情報に応じて、レジスタ、演算器およびメモリの接続関係を変更する。
図1は、演算処理装置の概要を示している。LSIとして構成される演算処理装置において、演算処理部は、高速化および高集積化へ向かう傾向にあるが、入力IF部(入力インタフェース部)および出力IF部(出力インタフェース部)は、必ずしも演算処理部と同じように高速化されるとは限らない。このため、例えば、演算処理部の動作周波数が300MHzであり、入力IF部および出力IF部の動作周波数が50MHzである場合、演算処理部が過剰に高速化および高集積化されている可能性がある。従って、演算処理部におけるREG(レジスタ)、ALUあるいはMUL(乗算器)などの演算処理用のリソースをより有効に活用する必要性が高まっている。演算処理用のリソースの有効活用を実現するためには、所定のハードウェア構成に対する最適なアルゴリズム(演算処理プログラム)、あるいは所定のアルゴリズムに対する最適なハードウェア構成を実現する必要がある。本発明は、所定のアルゴリズムに対する最適なハードウェア構成を実現することを目的としてなされたものである。
入力バッファ部IBi(i=0、・・・、n)は、系列iに対応して設けられている。入力バッファ部IBiは、入力FIFO部IFiおよび入力制御部ICiを有している。入力FIFO部IFiは、外部から供給されるライトコマンドWCMIiに応答して、入力制御部ICiから供給されるライトアドレスWADIiが示す番地に、外部から供給される外部入力データDIiを格納する。入力FIFO部IFiは、入力制御部ICiから供給されるリードコマンドRCMIiに応答して、入力制御部ICiから供給されるリードアドレスRADIiが示す番地に格納されている外部入力データを、処理対象データDPOiとして演算処理部OPに出力する。
ステップS1において、リソース割当部RAは、vr=0、va=0、vb=0、vc=0、ofst_r_l[0]=0、・・・、ofst_r_l[n]=0に設定する。リソース割当部RAは、例えば、演算処理装置OPDのリセット解除の直後に、この動作を実施する。これと同時に、リソース割当部RAは、アクセス要求AR0〜ARnを出力することで、系列0〜nの最初に実行すべき演算を示す命令情報INS0〜INSnを取得する。この後、リソース割当部RAの動作はステップS2に移行する。
ステップS3において、リソース割当部RAは、priの値が系列数(n+1)以上であるか否かを判定する。priの値が系列数以上であるとき、リソース割当部RAの動作はステップS30に移行する。priの値が系列数未満であるとき、リソース割当部RAの動作はステップS4に移行する。
ステップS5において、リソース割当部RAは、残りのリソースの数(演算処理部OPにおける未割り当てのレジスタREG、演算器OPA、演算器OPBおよび演算器OPCの数)が、必要なリソースの数(命令情報INSiが示す演算を実行するために必要なレジスタREG、演算器OPA、演算器OPBおよび演算器OPCの数)以上であるか否かを判定する。残りのリソースの数が必要なリソースの数以上であるとき、リソース割当部RAの動作はステップS6に移行する。残りのリソースの数が必要なリソースの数未満であるとき、リソース割当部RAの動作はステップS31に移行する。
ステップS7において、リソース割当部RAは、fin0[i][vr]の値が”0”であるか否かを判定する。fin0[i][vr]の値が”0”であるとき、リソース割当部RAの動作はステップS8に移行する。fin0[i][vr]の値が”1”であるとき、リソース割当部RAの動作はステップS9に移行する。
ステップS9において、リソース割当部RAは、第vr演算のオペランド0の入力元として、入力バッファ部IBiのレジスタREG(stad_fin[i]+opd0[i][vr])を割り当てる。ここで、入力バッファ部IBiのレジスタREG(stad_fin[i]+opd0[i][vr])は、入力FIFO部IFiの”stad_fin[i]+opd0[i][vr]”番地を意味している。この後、リソース割当部RAの動作はステップS10に移行する。
ステップS11において、リソース割当部RAは、第vr演算のオペランド1の入力元として、演算処理部OPのレジスタREG(ofst_r_l[i]+opd1[i][vr])を割り当てる。この後、リソース割当部RAの動作はステップS13に移行する。
ステップS16において、リソース割当部RAは、第vr演算の演算器として、演算器OPB(ofst_b+vb)を割り当てる。この後、リソース割当部RAの動作はステップS19に移行する。
ステップS18において、リソース割当部RAは、va=va+1に設定する。この後、リソース割当部RAの動作はステップS21に移行する。
ステップS20において、リソース割当部RAは、vc=vc+1に設定する。この後、リソース割当部RAの動作はステップS21に移行する。
ステップS21において、リソース割当部RAは、fout[i][vr]の値が”0”であるか否かを判定する。fout[i][vr]の値が”0”であるとき、リソース割当部RAの動作はステップS22に移行する。fout[i][vr]の値が”1”であるとき、リソース割当部RAの動作はステップS23に移行する。
ステップS23において、リソース割当部RAは、系列iにおける第vr演算の演算結果データの出力先として、出力バッファ部OBiのレジスタREG(stad_fout[i]+vr)を割り当てる。ここで、出力バッファ部OBiのレジスタREG(stad_fout[i]+vr)は、出力FIFO部OFiの”stad_fout[i]+vr”番地を意味している。この後、リソース割当部RAの動作はステップS24に移行する。
ステップS25において、リソース割当部RAは、系列iの命令情報を更新するために、メモリアクセス部MAiへのアクセス要求ARiを出力する。これにより、メモリアクセス部MAiにおいて、プログラムカウンタPCiのカウンタ値PCViが更新され、命令情報メモリINSMiへのリードコマンドRCMMiおよびリードアドレスRADMiが出力される。従って、次の処理サイクル用の命令情報INSiが命令情報メモリIIMiからリソース割当部RAに供給される。この後、リソース割当部RAの動作はステップS26に移行する。
ステップS27において、リソース割当部RAは、レジスタREG割り当て用のオフセット、演算器OPA割り当て用のオフセット、演算器OPB割り当て用のオフセットおよび演算器OPC割り当て用のオフセットを更新するために、ofst_r=ofst_r+vr、ofst_a=ofst_a+va、ofst_b=ofst_b+vb、ofst_c=ofst_c+vcに設定する。この後、リソース割当部RAの動作はステップS28に移行する。
ステップS29において、リソース割当部RAは、pri=pri+1に設定する。この後、リソース割当部RAの動作はステップS3に移行する。
ステップS30において、リソース割当部RAは、演算処理部OPにより演算を実行するために、これまでのリソース割り当て結果を示す接続情報CIを生成して演算処理部OPに出力する。この際、オペランド0、1の入力元として入力FIFO部が割り当てられた演算が存在する場合、リソース割当部RAは、対応する入力FIFO部への入力許可通知を出力する。また、演算結果データの出力先として出力FIFO部が割り当てられた演算が存在する場合、リソース割当部RAは、対応する出力FIFO部に出力許可通知を出力する。この後、リソース割当部RAの動作はステップS2に移行する。
ステップS33において、リソース割当部RAは、演算処理部OPのレジスタREG(ofst_r_l[i]+vr)の退避先として、演算処理部OPのレジスタREG(ofst_r+vr)を割り当てる。この後、リソース割当部RAの動作はステップS34に移行する。
ここで、演算処理装置OPDの内部構成(演算処理部OPにおけるレジスタREGの数、演算器OPAの数、演算器OPBの数、演算器OPCの数)を決定する方法について、具体例を用いて説明する。この方法は、演算処理装置OPDの回路記述(RTL記述など)を用いた機能シミュレーションを利用して実施される。なお、機能シミュレーションで用いる演算処理装置OPDの回路記述において、レジスタ群RGRにおけるレジスタREGの数と、演算器群OGRにおける演算器OPAの数、演算器OPBの数および演算器OPCの数と、メモリ群MGRにおけるメモリMEMの数およびメモリMEMの容量と、入力FIFO部IFiの容量と、出力FIFO部OFiの容量と、入力優先レベル判定部ILDiの閾値VI0i〜VI4iと、出力優先レベル判定部OLDiの閾値VO0i〜VO4iとは、パラメータ化されている。
図19は、1回目の機能シミュレーション(リソースの数を大きく設定した場合の機能シミュレーション)におけるリソース割当状態および内部変数状態を示している。1回目の機能シミュレーションにおいて、リソース割当部RAは、以下のように動作する。
ステップS3において、pri=0であり、かつ系列数が”2”であるため、リソース割当部RAは、”偽”と判定する。従って、リソース割当部RAの動作はステップS4に移行する。
ステップS5において、残りのリソースの数(レジスタREG:1024個、加算器ADD:1024個、減算器SUB:1024個、乗算器MUL:1024個)が、系列0の第tサイクルの命令情報が示す演算を実行するために必要なリソースの数(レジスタREG:6個、加算器ADD:3個、減算器SUB:3個、乗算器MUL:0個)より大きいため、リソース割当部RAは、”真”と判定する。従って、リソース割当部RAの動作はステップS6へ移行する。
ステップS7において、fin0[0][0]=1であるため、リソース割当部RAは、”偽”と判定する。従って、リソース割当部RAの動作はステップS9に移行する。
ステップS10において、fin1[0][0]=1であるため、リソース割当部RAは、”偽”と判定する。従って、リソース割当部RAの動作はステップS12に移行する。
ステップS13において、系列0における第0演算の種類は”加算”(exec_type[0][0]=0)であるため、リソース割当部RAは、”偽”と判定する。従って、リソース割当部RAの動作はステップS14に移行する。
ステップS15において、va=0、ofst_a=0であるため、リソース割当部RAは、系列0における第0演算の演算器として、加算器ADD(0)を割り当てる。この後、リソース割当部RAの動作はステップS18へ移行する。
ステップS21において、fout[0][0]=0であるため、リソース割当部RAは、は、”真”と判定する。従って、リソース割当部RAの動作はステップS22に移行する。
ステップS24において、リソース割当部RAは、vr=1に設定する。このときのリソース割当状態および内部変数状態は、図19<1>に示すとおりである。この後、リソース割当部RAの動作はステップS6に移行する。
ステップS25において、リソース割当部RAは、系列0の命令情報を更新するために、アクセス要求AR0を出力する。これにより、命令情報メモリINSM0からリソース割当部RAに、次の処理サイクル(第t+1サイクル)の命令情報が供給される。この後、リソース割当部RAの動作はステップS26に移行する。
ステップS27において、vr=6、va=3、vb=3、vc=0、ofst_r=0、ofst_a=0、ofst_b=0、ofst_c=0であるため、リソース割当部RAは、ofst_r=6、ofst_a=3、ofst_b=3、ofst_c=0に設定する。この後、リソース割当部RAの動作はステップS28に移行する。
ステップS29において、リソース割当部RAは、pri=1に設定する。このときの内部変数状態は、図19<7>に示すとおりである。この後、リソース割当部RAの動作はステップS3に移行する。
ステップS4において、pri=1であるため、処理対象の系列として第1優先の系列1を選択する。この後、リソース割当部RAの動作はステップS5に移行する。
ステップS5において、残りのリソースの数(レジスタREG:1018個、加算器ADD:1021個、減算器SUB:1021個、乗算器MUL:1024個)が、系列1の第tサイクルの命令情報が示す演算を実行するために必要なリソースの数(レジスタREG:2個、加算器ADD:2個、減算器SUB:0個、乗算器MUL:0個)より大きいため、リソース割当部RAは、”真”と判定する。従って、リソース割当部RAの動作はステップS6へ移行する。
ステップS30において、リソース割当部RAは、これまでのリソース割り当て結果を示す接続情報CIを出力するとともに、入力許可通知IEN0、1を出力する。従って、演算処理部OPにより系列0の第tサイクルの第0演算〜第5演算および系列1の第tサイクルの第0演算および第1演算が第tサイクルで並列に実行される。これにより、第tサイクルの処理が完了する。この後、リソース割当部RAの動作はステップS2に移行する。
(第tサイクル) REG:8個、ADD:5個、SUB:3個、MUL:0個
(第t+1サイクル)REG:4個、ADD:1個、SUB:0個、MUL:3個
(第t+2サイクル)REG:3個、ADD:1個、SUB:0個、MUL:1個
(第t+3サイクル)REG:1個、ADD:1個、SUB:0個、MUL:0個
従って、1回目の機能シミュレーションにおけるリソース割り当てにより系列0、1の演算処理を実施するためには、演算処理部OPにおいて、レジスタREGが8個、加算器ADDが5個、減算器SUBが3個、乗算器MULが3個設けられていれば十分であることが分かる。しかしながら、このように、レジスタREGの数、加算器ADDの数、減算器SUBの数および乗算器MULの数を、各処理サイクルで要求される数のピーク値に決定すると、演算処理装置OPDに要求されるスループットに対して、系列0、1の演算処理が必要以上に高速に実行される場合が多い。
まず、1回目の機能シミュレーションと同様に、系列0の第tサイクルの命令情報(第0演算〜第5演算)に対する処理が実施される。系列0の第tサイクルの命令情報に対する処理におけるステップS24の実施後のリソース割当状態および内部変数状態は、図20<1>〜<6>に示すとおりである。系列0の第tサイクルの命令情報に対する処理におけるステップS29の実施後の内部変数状態は、図20<7>に示すとおりである。この後、リソース割当部RAの動作はステップS3に移行する。
ステップS4において、pri=1であるため、リソース割当部RAは、処理対象の系列として第1優先の系列1を選択する。この後、リソース割当部RAの動作はステップS5に移行する。
ステップS32において、vr=0、opd_num[1][0]=0であるため、リソース割当部RAは、”偽”と判定する。従って、リソース割当部RAの動作はステップS26に移行する。そして、ステップS26〜S29が順次実施される。ステップS29の実施後の内部変数状態は、図20<8>に示すとおりである。このとき、ステップS25が実施されないため、系列1の次の処理サイクル(第t+1サイクル)の命令情報は供給されない。従って、今回の処理サイクル(第tサイクル)の命令情報が示す演算が次の処理サイクル(第t+1サイクル)で実行されることになる。この後、リソース割当部RAの動作はステップS3に移行する。
ステップS30において、系列0の第tサイクルの命令情報が示す演算に対してのみリソースが割り当てられているため、系列0の第tサイクルの第0演算〜第5演算のみが第tサイクルで並列に実行される。この後、リソース割当部RAの動作はステップS2に移行する。
(第tサイクル) REG:6個、ADD:3個、SUB:3個、MUL:0個
(第t+1サイクル)REG:5個、ADD:2個、SUB:0個、MUL:3個
(第t+2サイクル)REG:3個、ADD:2個、SUB:0個、MUL:0個
(第t+3サイクル)REG:2個、ADD:1個、SUB:0個、MUL:1個
従って、2回目の機能シミュレーションでのリソース割り当てにより系列0、1の演算処理を実施するためには、演算処理部OPにおいて、レジスタREGが6個、加算器ADDが3個、減算器SUBが3個、乗算器MULが3個設けられていれば十分であることが分かる。この例では、系列1の命令情報が示す演算が1サイクル後ろにずらされて実行される。しかしながら、系列1の演算処理が何回も呼び出されて連続して実行されるものであったとしても、系列1の出力バッファ部OB1に要求されるデータ出力タイミングが満たされていれば問題はない。すなわち、系列1において、1回の演算処理のデータが4サイクルに1回、入力FIFO部IF1に格納され、出力FIFO部OF1から出力されるような場合、3サイクルで処理される系列1の演算処理は、第tサイクル〜第t+3サイクルのいずれか3サイクルで実施されれば、演算処理装置OPDのスループットは保たれる。
(付記1)
複数のデータ系列に対応して設けられ、対応する外部入力データを格納して処理対象データとして出力する複数の入力バッファ部と、
前記データ系列毎に処理対象データに対して所望の演算処理を実施して処理結果データを出力するために、接続情報に応じて内部の構成要素の接続関係を確立することで演算処理機能を変更する演算処理部と、
前記データ系列に対応して設けられ、対応する処理結果データを格納して外部出力データとして出力する複数の出力バッファ部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、命令情報が示す演算を実行可である場合に、演算に割り当てる前記演算処理部の構成要素を決定し、前記演算処理部の構成要素の不足により命令情報が示す演算を実行不可である場合に、前記出力バッファ部のデータ出力タイミングを満たしたうえで演算を実行すべき処理サイクルを次の処理サイクルに移行させる制御処理を所定順序で実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する制御部とを備えることを特徴とする演算処理装置。
(付記2)
付記1記載の演算処理装置において、
前記各入力バッファ部は、
対応する外部入力データをライト要求に応答して格納し、格納している外部入力データをリード要求に応答して処理対象データとして出力する第1データ蓄積部と、
前記第1データ蓄積部のデータ蓄積量が多いほど高い優先度を示す第1優先度情報を出力する第1優先度情報生成部とを備え、
前記各出力バッファ部は、
対応する処理結果データをライト要求に応答して格納し、格納している処理結果データをリード要求に応答して外部出力データとして出力する第2データ蓄積部と、
前記第2データ蓄積部のデータ蓄積量が多いほど低い優先度を示す第2優先度情報を出力する第2優先度情報生成部とを備え、
前記制御部は、
前記入力バッファ部から供給される複数の第1優先度情報と前記出力バッファ部から供給される複数の第2優先度情報とに応じて前記データ系列の優先順位を決定する優先順位判定部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、対応するデータ系列の前記優先順位判定部により決定された優先順位が高い順に前記制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する構成要素割当部とを備えることを特徴とする演算処理装置。
(付記3)
付記2記載の演算処理装置において、
前記第1優先度情報生成部は、
前記第1データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第1データ蓄積部のデータ出力動作に伴ってダウンカウントする第1カウンタと、
前記第1カウンタのカウンタ値を第1閾値と比較して優先度を決定し、決定した優先度を示す第1優先度情報を出力する第1優先度判定部とを備えることを特徴とする演算処理装置。
(付記4)
付記3記載の演算処理装置において、
前記第1優先度判定部は、前記第1閾値を設定するための第1閾値設定部を備えることを特徴とする演算処理装置。
(付記5)
付記2記載の演算処理装置において、
前記第2優先度情報生成部は、
前記第2データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第2データ蓄積部のデータ出力動作に伴ってダウンカウントする第2カウンタと、
前記第2カウンタのカウンタ値を第2閾値と比較して優先度を決定し、決定した優先度を示す第2優先度情報を出力する第2優先度判定部とを備えることを特徴とする演算処理装置。
(付記6)
付記5記載の演算処理装置において、
前記第2優先度判定部は、前記第2閾値を設定するための第2閾値設定部を備えることを特徴とする演算処理装置。
(付記7)
付記2記載の演算処理装置において、
前記優先順位判定部は、
前記データ系列に対応して設けられ、対応する入力バッファ部から供給される第1優先度情報、対応する出力バッファ部から供給される第2優先度情報、および優先度定義テーブルを参照して優先度を決定し、決定した優先度を示す第3優先度情報を出力する複数の第3優先度判定部と、
前記第3優先度判定部から供給される複数の第3優先度情報に応じて、前記データ系列の優先順位を決定する調停部とを備えることを特徴とする演算処理装置。
(付記8)
付記1記載の演算処理装置において、
前記演算処理部は、
構成要素として設けられる複数のレジスタ、複数の演算器および複数のメモリと、
前記接続情報に応じて、前記レジスタ、前記演算器および前記メモリの接続関係を変更する接続関係変更部とを備えることを特徴とする演算処理装置。
(付記9)
付記1記載の演算処理装置において、
前記制御部に供給される命令情報は、処理サイクルあたりの演算の数を示す情報を含むとともに、演算毎に、演算の種類を示す情報と演算対象データを識別するための情報とを含むことを特徴とする演算処理装置。
(付記10)
複数のデータ系列に対応して設けられ、対応する外部入力データを格納して処理対象データとして出力する複数の入力バッファ部と、
前記データ系列毎に処理対象データに対して所望の演算処理を実施して処理結果データを出力するために、接続情報に応じて内部の構成要素の接続関係を確立することで演算処理機能を変更する演算処理部と、
前記データ系列に対応して設けられ、対応する処理結果データを格納して外部出力データとして出力する複数の出力バッファ部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、命令情報が示す演算を実行可である場合に、演算に割り当てる前記演算処理部の構成要素を決定し、前記演算処理部の構成要素の不足により命令情報が示す演算を実行不可である場合に、演算を実行すべき処理サイクルを次の処理サイクルに移行させる制御処理を所定順序で実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する制御部とを備える演算処理装置の内部構成を決定する方法であって、
前記演算処理部の構成要素の数をパラメータ化した前記演算処理装置の回路記述を用いて、前記演算処理部の構成要素の数を、前記制御処理で常に演算実行可となる値に設定してシミュレーションを実施する第1工程と、
前記第1工程で実施したシミュレーションの結果から、そのシミュレーションで前記制御部により演算に割り当てられた前記演算処理部の構成要素の数を仮設計値として取得する第2工程と、
前記演算処理部の構成要素の数をパラメータ化した前記演算処理装置の回路記述を用いて、前記演算処理部の構成要素の数を、前記仮設計値より小さい値を初期値として順次減少させながら、前記出力バッファ部のデータ出力タイミングが満たされなくなるまでシミュレーションを繰り返し実施する第3工程と、
前記第3工程で実施したシミュレーションのうち、前記出力バッファ部のデータ出力タイミングが満たされた最後のシミュレーションの結果から、そのシミュレーションで前記制御部により演算に割り当てられた前記演算処理部の構成要素の数を実設計値として取得する第4工程とを含むことを特徴とする演算処理装置の内部構成決定方法。
(付記11)
付記10記載の演算処理装置の内部構成決定方法において、
前記演算処理部は、構成要素として設けられる複数のレジスタ、複数の演算器および複数のメモリと、前記接続情報に応じて、前記レジスタ、前記演算器および前記メモリの接続関係を変更する接続関係変更部とを備え、
前記第1および第3工程において、前記演算処理部の構成要素の数として、前記レジスタの数、前記演算器の数および前記メモリの数をパラメータ化した前記演算処理装置の回路記述を用いてシミュレーションを実施することを特徴とする演算処理装置の内部構成決定方法。
(付記12)
付記11記載の演算処理装置の内部構成決定方法において、
前記第1および第3工程において、前記レジスタの数、前記演算器の数および前記メモリの数に加えて、前記各メモリの容量をパラメータ化した前記演算処理装置の回路記述を用いてシミュレーションを実施することを特徴とする演算処理装置の内部構成決定方法。(付記13)
付記10記載の演算処理装置の内部構成決定方法において、
前記各入力バッファ部は、対応する外部入力データをライト要求に応答して格納し、格納している外部入力データをリード要求に応答して処理対象データとして出力する第1データ蓄積部と、前記第1データ蓄積部のデータ蓄積量が多いほど高い優先度を示す第1優先度情報を出力する第1優先度情報生成部とを備え、
前記各出力バッファ部は、対応する処理結果データをライト要求に応答して格納し、格納している処理結果データをリード要求に応答して外部出力データとして出力する第2データ蓄積部と、前記第2データ蓄積部のデータ蓄積量が多いほど低い優先度を示す第2優先度情報を出力する第2優先度情報生成部とを備え、
前記制御部は、前記入力バッファ部から供給される複数の第1優先度情報と前記出力バッファ部から供給される複数の第2優先度情報とに応じて前記データ系列の優先順位を決定する優先順位判定部と、処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、対応するデータ系列の前記優先順位判定部により決定された優先順位が高い順に前記制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する構成要素割当部とを備え、
前記第1優先度情報生成部は、前記第1データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第1データ蓄積部のデータ出力動作に伴ってダウンカウントする第1カウンタと、前記第1カウンタのカウンタ値を第1閾値と比較して優先度を決定し、決定した優先度を示す第1優先度情報を出力する第1優先度判定部とを備え、
前記第1および第3工程において、前記演算処理部の構成要素の数に加えて、前記第1データ蓄積部の容量および前記第1閾値をパラメータ化した前記演算処理装置の回路記述を用いてシミュレーションを実施することを特徴とする演算処理装置の内部構成決定方法。
(付記14)
付記10記載の演算処理装置の内部構成決定方法において、
前記各入力バッファ部は、対応する外部入力データをライト要求に応答して格納し、格納している外部入力データをリード要求に応答して処理対象データとして出力する第1データ蓄積部と、前記第1データ蓄積部のデータ蓄積量が多いほど高い優先度を示す第1優先度情報を出力する第1優先度情報生成部とを備え、
前記各出力バッファ部は、対応する処理結果データをライト要求に応答して格納し、格納している処理結果データをリード要求に応答して外部出力データとして出力する第2データ蓄積部と、前記第2データ蓄積部のデータ蓄積量が多いほど低い優先度を示す第2優先度情報を出力する第2優先度情報生成部とを備え、
前記制御部は、前記入力バッファ部から供給される複数の第1優先度情報と前記出力バッファ部から供給される複数の第2優先度情報とに応じて前記データ系列の優先順位を決定する優先順位判定部と、処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、対応するデータ系列の前記優先順位判定部により決定された優先順位が高い順に前記制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する構成要素割当部とを備え、
前記第2優先度情報生成部は、前記第2データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第2データ蓄積部のデータ出力動作に伴ってダウンカウントする第2カウンタと、前記第2カウンタのカウンタ値を第2閾値と比較して優先度を決定し、決定した優先度を示す第2優先度情報を出力する第2優先度判定部とを備え、
前記第1および第3工程において、前記演算処理部の構成要素の数に加えて、前記第2データ蓄積部の容量および前記第2閾値をパラメータ化した前記演算処理装置の回路記述を用いてシミュレーションを実施することを特徴とする演算処理装置の内部構成決定方法。
(付記15)
複数のデータ系列に対応する複数のメイン演算処理部と、
前記メイン演算処理部に共通して設けられ、前記メイン演算処理部に代わって演算処理を実施するサブ演算処理部とを備え、
前記サブ演算処理部は、付記1〜付記9のいずれかに記載の演算処理装置により構成されることを特徴とする演算処理システム。
Claims (10)
- 複数のデータ系列に対応して設けられ、対応する外部入力データを格納して処理対象データとして出力する複数の入力バッファ部と、
前記データ系列毎に処理対象データに対して所望の演算処理を実施して処理結果データを出力するために、接続情報に応じて内部の構成要素の接続関係を確立することで演算処理機能を変更する演算処理部と、
前記データ系列に対応して設けられ、対応する処理結果データを格納して外部出力データとして出力する複数の出力バッファ部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、命令情報が示す演算への前記演算処理部の構成要素の割り当てに関する制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する制御部とを備え、
前記制御部は、前記制御処理において、命令情報が示す演算を実行可である場合に、演算に割り当てる前記演算処理部の構成要素を決定し、前記演算処理部の構成要素の不足により命令情報が示す演算を実行不可である場合に、演算を実行すべき処理サイクルを次の処理サイクルに移行させるとともに、前記演算を実行すべき処理サイクルにおいて演算が実行されたときに演算の結果が前記出力バッファ部から出力されるべきタイミングで前記次の処理サイクルにおいて実行された演算の結果を前記出力バッファ部から出力させることを特徴とする演算処理装置。 - 請求項1記載の演算処理装置において、
前記各入力バッファ部は、
対応する外部入力データをライト要求に応答して格納し、格納している外部入力データをリード要求に応答して処理対象データとして出力する第1データ蓄積部と、
前記第1データ蓄積部のデータ蓄積量が多いほど高い優先度を示す第1優先度情報を出力する第1優先度情報生成部とを備え、
前記各出力バッファ部は、
対応する処理結果データをライト要求に応答して格納し、格納している処理結果データをリード要求に応答して外部出力データとして出力する第2データ蓄積部と、
前記第2データ蓄積部のデータ蓄積量が多いほど低い優先度を示す第2優先度情報を出力する第2優先度情報生成部とを備え、
前記制御部は、
前記入力バッファ部から供給される複数の第1優先度情報と前記出力バッファ部から供給される複数の第2優先度情報とに応じて前記データ系列の優先順位を決定する優先順位判定部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、対応するデータ系列の前記優先順位判定部により決定された優先順位が高い順に前記制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する構成要素割当部とを備えることを特徴とする演算処理装置。 - 請求項2記載の演算処理装置において、
前記第1優先度情報生成部は、
前記第1データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第1データ蓄積部のデータ出力動作に伴ってダウンカウントする第1カウンタと、
前記第1カウンタのカウンタ値を第1閾値と比較して優先度を決定し、決定した優先度を示す第1優先度情報を出力する第1優先度判定部とを備えることを特徴とする演算処理装置。 - 請求項2記載の演算処理装置において、
前記第2優先度情報生成部は、
前記第2データ蓄積部のデータ格納動作に伴ってアップカウントし、前記第2データ蓄積部のデータ出力動作に伴ってダウンカウントする第2カウンタと、
前記第2カウンタのカウンタ値を第2閾値と比較して優先度を決定し、決定した優先度を示す第2優先度情報を出力する第2優先度判定部とを備えることを特徴とする演算処理装置。 - 請求項2記載の演算処理装置において、
前記優先順位判定部は、
前記データ系列に対応して設けられ、対応する入力バッファ部から供給される第1優先度情報、対応する出力バッファ部から供給される第2優先度情報、および優先度定義テーブルを参照して優先度を決定し、決定した優先度を示す第3優先度情報を出力する複数の第3優先度判定部と、
前記第3優先度判定部から供給される複数の第3優先度情報に応じて、前記データ系列の優先順位を決定する調停部とを備えることを特徴とする演算処理装置。 - 請求項1記載の演算処理装置において、
前記演算処理部は、
構成要素として設けられる複数のレジスタ、複数の演算器および複数のメモリと、
前記接続情報に応じて、前記レジスタ、前記演算器および前記メモリの接続関係を変更する接続関係変更部とを備えることを特徴とする演算処理装置。 - 請求項1記載の演算処理装置において、
前記制御部に供給される命令情報は、処理サイクルあたりの演算の数を示す情報を含むとともに、演算毎に、演算の種類を示す情報と演算対象データを識別するための情報とを含むことを特徴とする演算処理装置。 - 複数のデータ系列に対応して設けられ、対応する外部入力データを格納して処理対象データとして出力する複数の入力バッファ部と、
前記データ系列毎に処理対象データに対して所望の演算処理を実施して処理結果データを出力するために、接続情報に応じて内部の構成要素の接続関係を確立することで演算処理機能を変更する演算処理部と、
前記データ系列に対応して設けられ、対応する処理結果データを格納して外部出力データとして出力する複数の出力バッファ部と、
処理サイクル毎に、前記データ系列に対応する複数の命令情報に対して、命令情報が示す演算への前記演算処理部の構成要素の割り当てに関する制御処理を実施し、前記制御処理における前記演算処理部の構成要素の割り当て結果を前記接続情報として出力する制御部とを備え、
前記制御部は、前記制御処理において、命令情報が示す演算を実行可である場合に、演算に割り当てる前記演算処理部の構成要素を決定し、前記演算処理部の構成要素の不足により命令情報が示す演算を実行不可である場合に、演算を実行すべき処理サイクルを次の処理サイクルに移行させるとともに、前記演算を実行すべき処理サイクルにおいて演算が実行されたときに演算の結果が前記出力バッファ部から出力されるべきタイミングで前記次の処理サイクルにおいて実行された演算の結果を前記出力バッファ部から出力させる演算処理装置の内部構成を決定する方法であって、
コンピュータが、前記演算処理部の構成要素の数が前記制御処理で常に演算実行可となる値に設定された前記演算処理装置の回路記述を用いてシミュレーションを実施する第1工程と、
コンピュータが、前記第1工程で実施したシミュレーションの結果から、そのシミュレーションで前記制御部により演算に割り当てられた前記演算処理部の構成要素の数を仮設計値として取得する第2工程と、
コンピュータが、前記演算処理部の構成要素の数が前記仮設計値より小さい値を初期値とし前記初期値を順次減少させることで設定された前記演算処理装置の回路記述を用いて、前記出力バッファ部のデータ出力タイミングが満たされなくなるまでシミュレーションを繰り返し実施する第3工程と、
コンピュータが、前記第3工程で実施したシミュレーションのうち、前記出力バッファ部のデータ出力タイミングが満たされた最後のシミュレーションの結果から、そのシミュレーションで前記制御部により演算に割り当てられた前記演算処理部の構成要素の数を実設計値として取得する第4工程とを含むことを特徴とする演算処理装置の内部構成決定方法。 - 請求項8記載の演算処理装置の内部構成決定方法において、
前記演算処理部は、構成要素として設けられる複数のレジスタ、複数の演算器および複数のメモリと、前記接続情報に応じて、前記レジスタ、前記演算器および前記メモリの接続関係を変更する接続関係変更部とを備え、
前記第1および第3工程において、前記演算処理部の構成要素の数として、前記レジスタの数、前記演算器の数および前記メモリの数をパラメータ化した前記演算処理装置の回路記述を用いてシミュレーションを実施することを特徴とする演算処理装置の内部構成決定方法。 - 複数のデータ系列に対応する複数のメイン演算処理部と、
前記メイン演算処理部に共通して設けられ、前記メイン演算処理部に代わって演算処理を実施するサブ演算処理部とを備え、
前記サブ演算処理部は、請求項1〜請求項7のいずれかに記載の演算処理装置により構成されることを特徴とする演算処理システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006091025A JP4647533B2 (ja) | 2005-11-28 | 2006-03-29 | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム |
US11/553,165 US7624252B2 (en) | 2005-11-28 | 2006-10-26 | Processing device, method of determining internal configuration of processing device, and processing system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005342158 | 2005-11-28 | ||
JP2006091025A JP4647533B2 (ja) | 2005-11-28 | 2006-03-29 | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007172569A JP2007172569A (ja) | 2007-07-05 |
JP4647533B2 true JP4647533B2 (ja) | 2011-03-09 |
Family
ID=38088882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006091025A Expired - Fee Related JP4647533B2 (ja) | 2005-11-28 | 2006-03-29 | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7624252B2 (ja) |
JP (1) | JP4647533B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4996929B2 (ja) * | 2007-01-17 | 2012-08-08 | 株式会社日立製作所 | 仮想計算機システム |
KR102032895B1 (ko) | 2013-01-28 | 2019-11-08 | 삼성전자주식회사 | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 |
US9571545B2 (en) * | 2013-03-15 | 2017-02-14 | International Business Machines Corporation | Evaluating a stream-based computing application |
US9329970B2 (en) | 2013-03-15 | 2016-05-03 | International Business Machines Corporation | Selecting an operator graph configuration for a stream-based computing application |
US10437650B2 (en) * | 2014-06-19 | 2019-10-08 | Nec Corporation | Controlling execution of tasks in a series of operational processing by identifying processing units based on task command, task setting information, state of operational processing |
KR101724517B1 (ko) * | 2016-08-31 | 2017-05-11 | 대한민국(방위사업청장) | 워게임 사후 검토 상황 재연 시스템 및 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5392033A (en) * | 1993-01-05 | 1995-02-21 | International Business Machines Corporation | Priority generator for providing controllable guaranteed fairness in accessing a shared bus |
US5615350A (en) * | 1994-10-24 | 1997-03-25 | International Business Machines Corporation | Apparatus to dynamically control the out-of-order execution of load-store instructions in a processor capable of dispatching, issuing and executing multiple instructions in a single processor cycle |
JP2000311156A (ja) * | 1999-04-27 | 2000-11-07 | Mitsubishi Electric Corp | 再構成可能並列計算機 |
JP2004287883A (ja) * | 2003-03-24 | 2004-10-14 | Toshiba Corp | プロセッサ、計算機及び優先度決定方法 |
JP2004326228A (ja) * | 2003-04-22 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 並列演算処理装置 |
JP2005267382A (ja) * | 2004-03-19 | 2005-09-29 | Ip Flex Kk | データ処理装置およびその制御方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68929518T2 (de) | 1988-10-05 | 2005-06-09 | Quickturn Design Systems, Inc., Mountain View | Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät |
JP3083126B2 (ja) | 1993-02-03 | 2000-09-04 | 日本電信電話株式会社 | プログラマブル論理チップおよびマルチチップシステム |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
US5745724A (en) * | 1996-01-26 | 1998-04-28 | Advanced Micro Devices, Inc. | Scan chain for rapidly identifying first or second objects of selected types in a sequential list |
US5884059A (en) * | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5799165A (en) * | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
US7047397B2 (en) * | 2002-09-13 | 2006-05-16 | Intel Corporation | Method and apparatus to execute an instruction with a semi-fast operation in a staggered ALU |
US7073159B2 (en) * | 2004-03-31 | 2006-07-04 | Intel Corporation | Constraints-directed compilation for heterogeneous reconfigurable architectures |
-
2006
- 2006-03-29 JP JP2006091025A patent/JP4647533B2/ja not_active Expired - Fee Related
- 2006-10-26 US US11/553,165 patent/US7624252B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5392033A (en) * | 1993-01-05 | 1995-02-21 | International Business Machines Corporation | Priority generator for providing controllable guaranteed fairness in accessing a shared bus |
US5615350A (en) * | 1994-10-24 | 1997-03-25 | International Business Machines Corporation | Apparatus to dynamically control the out-of-order execution of load-store instructions in a processor capable of dispatching, issuing and executing multiple instructions in a single processor cycle |
JP2000311156A (ja) * | 1999-04-27 | 2000-11-07 | Mitsubishi Electric Corp | 再構成可能並列計算機 |
JP2004287883A (ja) * | 2003-03-24 | 2004-10-14 | Toshiba Corp | プロセッサ、計算機及び優先度決定方法 |
JP2004326228A (ja) * | 2003-04-22 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 並列演算処理装置 |
JP2005267382A (ja) * | 2004-03-19 | 2005-09-29 | Ip Flex Kk | データ処理装置およびその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US7624252B2 (en) | 2009-11-24 |
JP2007172569A (ja) | 2007-07-05 |
US20070124563A1 (en) | 2007-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106406812B (zh) | 微处理器和微处理器内的执行融合复合算术运算的方法 | |
US8522243B2 (en) | Method for configuring resources and scheduling task processing with an order of precedence | |
Gebotys et al. | Simultaneous scheduling and allocation for cost constrained optimal architectural synthesis | |
JP4647533B2 (ja) | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム | |
US9753726B2 (en) | Computer for amdahl-compliant algorithms like matrix inversion | |
Fell et al. | Force-directed scheduling for data flow graph mapping on coarse-grained reconfigurable architectures | |
JP3722351B2 (ja) | 高位合成方法およびその実施に使用される記録媒体 | |
JP2021108104A (ja) | 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法 | |
Huff et al. | Clockwork: Resource-efficient static scheduling for multi-rate image processing applications on FPGAs | |
GB2567027A (en) | Common priority information for multiple resource arbitration | |
WO2023062456A1 (en) | Dynamic, low-latency, dependency-aware scheduling on simd-like devices for processing of recurring and non-recurring executions of time-series data | |
JP2007034888A (ja) | 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置 | |
WO2011096016A1 (ja) | コンパイラ装置 | |
Hwang et al. | Zone scheduling | |
Flynn et al. | Shared resource multiprocessing | |
Bakshi et al. | A scheduling and pipelining algorithm for hardware/software systems | |
Dieguez et al. | New tridiagonal systems solvers on GPU architectures | |
CN116670644A (zh) | 通用计算核上的交错处理的方法 | |
Nagpal et al. | Integrated temporal and spatial scheduling for extended operand clustered VLIW processors | |
KR20060090512A (ko) | 리소스 공유 및 파이프 라이닝 구성을 갖는 재구성가능배열구조 | |
Purkayastha et al. | Exploring the efficiency of opencl pipe for hiding memory latency on cloud fpgas | |
Saito et al. | An ILP-based multiple task allocation method for fault tolerance in networks-on-chip | |
Wang et al. | Meshed bluetree: Time-predictable multimemory interconnect for multicore architectures | |
Eisenbeis et al. | Compiler techniques for optimizing memory and register usage on the Cray 2 | |
Gebotys et al. | Optimal mapping of DSP application to architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080616 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100122 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101208 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |