JP3880942B2 - プロセッサ、計算機及び優先度決定方法 - Google Patents
プロセッサ、計算機及び優先度決定方法 Download PDFInfo
- Publication number
- JP3880942B2 JP3880942B2 JP2003079478A JP2003079478A JP3880942B2 JP 3880942 B2 JP3880942 B2 JP 3880942B2 JP 2003079478 A JP2003079478 A JP 2003079478A JP 2003079478 A JP2003079478 A JP 2003079478A JP 3880942 B2 JP3880942 B2 JP 3880942B2
- Authority
- JP
- Japan
- Prior art keywords
- priority
- execution
- execution unit
- fifo
- thread
- 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
Description
【発明の属する技術分野】
本発明は、データフロー型プロセッサに関するものであり、特に入力段と出力段にバッファメモリを備えたプロセッサ及びこのプロセッサにおける実行スレッドの選択方法に関するものである。
【0002】
【従来の技術】
計算機等のプロセッサにデータを処理させる際にはより多くのデータ処理を効率よく行うために、複数のタスクを時分割に実行するマルチスレッド処理が一般的に採用されている(たとえば特許文献1を参照)。
【0003】
データ処理のためのマルチスレッド化を実現する方法がいくつか提案されている。その中にデータフローに従ってスレッドの実行順序を決定するデータフロー型マルチスレッド処理がある。このようなプロセッサでは、処理すべきデータの処理過程で必要とする処理を、その処理順序に従って実行する仕組みが取られている。このようにすると、処理過程にあたらないスレッドは実行されることがなく、その時点で必要とする処理にプロセッサ能力を効率よく割り当てることが可能となる。
【0004】
【特許文献1】
特開2003−029984公報
【0005】
【発明が解決しようとする課題】
しかしながら、各処理単位の処理後の出力結果に依存して次の実行スレッドを選択する従来のデータフロー型では、次のような場合に問題となる。
【0006】
たとえばリアルタイム性を要求する処理対象にあっては、処理の流れ(データフロー)に則さない処理が必要となる場合が多い。データフローから逸脱する処理は別途割り込み処理や作業状態の退避処理等のオーバヘッドを必要とする。また、このような割り込み処理はデータフローに乱れを生じさせ、処理効率を低下させてしまう。
【0007】
本発明はこのような問題に鑑みてなされたものであり、リアルタイム性の損失を最小限に抑えることが可能なデータフロー型プロセッサ、このプロセッサを利用した計算機及び優先度決定方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明によれば、
あるデータ処理を少なくとも1以上に時分割した処理の一つに当たる、1以上の実行単位が処理すべき処理データを記憶するための複数の記憶手段と、
ある実行単位に割り当てた前記複数の記憶手段の少なくとも1つからこの実行単位が処理すべきデータを受け取り、該実行単位に割り当てた前記複数の記憶手段の1つに該実行単位の実行結果を記憶するデータ処理手段と、
前記記憶手段のそれぞれから各記憶手段が記憶する処理データ量についての情報を受け取り、ある記憶手段が記憶する処理データ量から、該記憶手段をアクセスする実行単位の実行状況を求め、該実行状況から該実行単位の以降実行すべき順位を示す優先度を決定する優先度決定手段と、
を備えたことを特徴とするプロセッサが提供される。
【0009】
及び上記プロセッサを備えた計算機が提供される。
【0010】
また、
あるデータ処理を少なくとも1以上に時分割した処理の一つに当たる実行単位について、ある実行単位に割り当てた複数ある記憶装置の少なくとも1つから該実行単位が処理すべきデータを受け取り、
該実行単位に割り当てた前記複数の記憶装置の1つに該実行単位の実行結果を記憶し、
前記記憶装置のそれぞれから各記憶装置が記憶する処理データ量についての情報を受け取り、ある記憶装置が記憶する処理データ量から、該記憶装置をアクセスする実行単位の実行状況を求め、該実行状況から該実行単位の以降実行すべき順位を示す優先度を決定することを特徴とする優先度決定方法が提供される。
【0011】
【発明の実施の形態】
本発明の実施形態について、図を用いながら説明する。
【0012】
(第1の実施形態)
図1は第1の実施形態におけるプロセッサのブロック図の一例である。図1には、複数のFIFO(First-In First-Out:先入先出型メモリ)101、選択部102、実行制御部103、キャッシュ104、切替部105、複数のレジスタセット106、メモリバス107、記憶部108及び演算処理部109が示されている。
【0013】
FIFO101はメモリから構成されており、先に記憶したものから先に読み出すことが可能な記憶装置である。それぞれのFIFO101は1からn(nは任意)の複数備えている。それぞれのFIFO101の記憶容量は必ずしも同じである必要は無いが、複数のスレッドを平等に処理するためには同一の構成である方が好ましい。
【0014】
ここでいうスレッドとは、プロセッサが実行すべき一つの処理を複数のある時間間隔に分割して割り当てた後の処理単位またはその処理単位の実行を指す。スレッドは実行制御部103が行う各部の制御と、この制御下で、予め与えられた所定のプログラムコードを演算処理部109で実行することで実現する。本実施形態のプロセッサはデータフロー型なので、分割した複数のスレッドを1つの処理データに対して順次処理してゆくことで一つの処理が完了する。スレッドは並列処理されるようになっており、非同期に複数の処理データのデータフロー型処理を行うことができる。このように一つの処理をスレッド化するのは、主にリアルタイムOSとったマルチスレッド処理を実現するために行われている。
【0015】
選択部102は複数備えたFIFO101の中から実行制御部103が指定するFIFOを選択する機能を備えている。ここで選択したFIFO101は演算処理部109によって読み書きが成される。
【0016】
実行制御部103は、本実施形態のプロセッサが行う処理全般を制御する機能を備えている。ここには、どのスレッドを優先的に実行するかを示す優先度を保持するテーブルも含まれる。実行制御部103はFIFO101などの情報をもとにこのテーブルを設定し、テーブルの内容にしたがってどの処理データを処理するのどのスレッドの実行を行うかを各部に指示する機能を有する。
【0017】
キャッシュ104は演算処理部109がスレッドに対応するプログラムコードを実行する際に、読み書き速度の遅い記憶装置へ逐次アクセスすることを回避するために設けられている。一般に演算処理部109の処理速度と比較して、メインメモリや磁気ディスク装置といった大容量記憶装置のアクセス速度は遅い。キャッシュ104は大容量記憶装置程の記憶容量は無いものの、アクセス速度の速い記憶装置を用いている。頻繁にアクセスするデータおよびプログラムコードについては一旦キャッシュ104に記憶することで読み書きの時に演算処理部109が待たされるのをなくし、できる限り演算処理部109の処理量を稼ぐために用いられる。
【0018】
切替部105は複数のレジスタセット106の内から処理に必要な1つ以上のレジスタセットをアクセス可能に選択するものである。演算処理部109は、この切替部105を介して処理に必要なデータが格納されているレジスタセットをアクセスする。
【0019】
レジスタセット106は実行制御部103がプログラムコードの実行に必要となる各種レジスタ(一時記憶装置)をまとめたものである。レジスタセット106には、たとえば計算用レジスタ、アドレッシング用レジスタ、スタックポインタといったものが含まれている。本実施形態ではこのレジスタセット106が1からm(mは任意)の複数備えられている。それぞれのレジスタセット106は、必ずしも同じ構成である必要は無いが、それぞれのスレッドがどのレジスタセットを使用しても処理できるためには同一の構成であることが好ましい。
【0020】
メモリバス107は、キャッシュ104、複数のレジスタセット107及び記憶部108の間でデータの授受が行えるように設けられたものである。それぞれに記憶されたデータは、メモリバス107を通じてデータの移動が行える。データの移動は実行制御部103があたる。
【0021】
記憶部108は、本実施形態のプロセッサが処理のために実行するプログラムコードや、処理の対象となる処理データを記憶する。場合によってはキャッシュ104及びレジスタセット107に記憶したデータの一時退避場所として使用される。。
【0022】
演算処理部109は、記憶部108またはキャッシュ104が記憶するプログラムコードを実行する機能を有する。プログラムコードの実行に際しては、実行制御部103の指示によりどのFIFO101、どのレジスタセット106を使用して、どのスレッドを処理するのかを決定する。
【0023】
図2に本実施形態におけるプロセッサのスレッド処理の概要を示す。
本実施形態のプロセッサはデータフロー型であるから、処理データは入力の形でもたらされ、基本的に一つの道筋(フロー)を経て出力が得られる。入力された処理データは、演算処理部109が予め記憶部108に記憶したプログラムコードに従って逐次実行する処理(各スレッド201)を行い、出力結果として出力される。次段の処理がある場合には、出力された出力結果は次段の入力データとなる。
【0024】
入力データである処理データが入力されると、実行制御部103が指示した複数あるFIFO101の一つであるFIFO101−Aがこれを記憶する。FIFO101−Aは実行制御部103などからの求めに応じて、あるいは自発的にFIFO101−A内のFIFO蓄積量を実行制御部103に対して状態報告202−Aとして通知する。
【0025】
実行制御部103の指示により演算処理部109がスレッド201−1を実行すると、FIFO101−A内のデータを入力データとした処理を開始する。このときFIFO101−A内のデータは、先に記憶したものから順に読み出される。このスレッドが行った処理結果は実行制御部103の指示によりFIFO101−Bに記憶される。FIFO101−BもまたFIFO101−Aと同様に、実行制御部103に対してFIFO蓄積量を含む状態報告202−Bを通知する。
【0026】
上記の処理がスレッド201−2からスレッド201−x(xは任意)まで処理を終えると、処理結果が出力として出力される。
【0027】
演算処理部109がどのスレッドを実行状態とするかは、実行制御部103が実行指示203によって指示している。実行制御部103は、FIFO101−AからFIFO101−nが通知する状態報告202−Aから状態報告202−nの情報をもとに自らが備える実行優先度テーブルに優先度を設定し、この優先度から実行指示203を決定する。実行指示203の決定に際しては、複数の状態報告202のうち一部だけを使用して決定した優先度に従っても良いし、すべての状態報告202を考慮して決定した優先度から最優先のスレッド201を決定してもよい。好ましくはすべての状態報告202からそれぞれのスレッド201の実行順位を決定するようにし、処理全体の効率化を図るようにした方が良い。
【0028】
以降、実行制御部103が上記スレッドの実行順位を決定するための方法について説明する。
【0029】
図3に本実施形態におけるプロセッサの実行制御部103が、あるスレッドについての入力側FIFO蓄積量に対するスレッドの実行優先度を決定する方法の一例を示す。図3に示す縦軸に当たるFIFO蓄積量は入力側FIFOであるから、たとえば図2に示すところのスレッド201−1に対するFIFO101−A、スレッド201−2に対するFIFO101−Bとなる。
【0030】
あるスレッドの入力側FIFOに処理待ちデータが多く蓄積されているということは、すなわちそのスレッドの処理が遅れていることを意味する。よってそのスレッドの優先度を上げ、処理待ちデータを速やかに処理する必要がある。このため図3に示すようにFIFO蓄積量が増えるに従って実行され易くなる(優先度が高くなる)よう設定する。交点302に示すように、FIFO蓄積量が高くなるほど実行制御部103が保持する各スレッドの優先度を示すテーブルにより高い優先度が設定される。
【0031】
図3に示す例ではFIFO蓄積量とスレッド実行優先度の関係を比例直線301で示しているが、必ずしも直線である必要はない。たとえばFIFO蓄積量が上限に近づくに連れて、優先度の上がり方が大きくなるようにした比例曲線303であっても良い。この場合にはFIFOが溢れることを効果的に防止することができる。また、曲線や直線に依らずプロセッサの設計の上で実装が簡易となるように優先度が段階的あるいは階段状に高くなるようにしても良い。一例として、FIFO蓄積量にあるしきい値を設け、このしきい値を越えるまではスレッドの実行をしない、またはしきい値を切るまでは実行しつづけるといった操作も可能である。
【0032】
図4は本実施形態におけるプロセッサの、あるスレッドにについて出力側FIFO蓄積量に対するスレッドの優先度決定方法の一例を示す。図4に示す縦軸に当たるFIFO蓄積量は出力側FIFOであるから、たとえば図2に示すところのスレッド201−1に対するFIFO101−B、スレッド201−2に対するFIFO101−Cとなる。
【0033】
あるスレッドの出力側FIFOに処理待ちデータが多く蓄積されているということは、すなわちその後続のスレッドの処理が遅れていることを意味する。このままスレッドを実行すると、出力側のFIFOが溢れてしまう可能性がある。そこでそのスレッドの優先度を下げ、出力側のFIFOが溢れないように処理を抑制する必要がある。このため図4に示すように出力側のFIFO蓄積量が増えるに従って実行され難くなる(優先度が低くなる)よう設定する。交点402に示すように、FIFO蓄積量が高くなるほど実行制御部103が保持する各スレッドの優先度を示すテーブルにより低い優先度が設定される。
【0034】
図4に示す例ではFIFO蓄積量とスレッド実行優先度の関係を比例直線401で示しているが、必ずしも直線である必要はない。たとえば出力側のFIFO蓄積量が上限に近づくに連れて、優先度の下がり方が大きくなるようにした比例曲線403であっても良い。この場合には出力側FIFOが溢れることを効果的に防止することができる。また、曲線や直線に依らずプロセッサの設計の上で実装が簡易となるように優先度が段階的あるいは階段状に低くなるようにしても良い。一例として、FIFO蓄積量にあるしきい値を設け、このしきい値を切るまではスレッドの実行をしない、またはしきい値を越えるまで実行しつづけるといった操作も可能である。
【0035】
上記したように実行制御部103は入力側FIFOから得られた優先度と出力側FIFOから得られた優先度の両方を総合した優先度、あるいは入力側FIFOに基づく優先度に従って、スレッドの優先度を決定する。
【0036】
このとき入力側FIFO蓄積量から得られた優先度と出力側FIFO蓄積量から得られた優先度とが相反する優先度を示す場合も考えられる。たとえば入力側出力側の両方が蓄積量の上限に近い場合が考えられる。この場合には出力側のFIFO蓄積量の空き領域に、入力側FIFOに記憶された処理データを処理した後の出力結果が格納できるだけの領域があることを条件に、入力側FIFO蓄積量に基づく優先度を優先する。この場合を除けば、出力側FIFOが溢れるのを防止するため出力側FIFO蓄積量に基づく優先度を優先する、あるいはこのスレッドの実行を一時的に禁止する。
【0037】
図5に本実施形態におけるプロセッサの、次に実行するスレッドを決定するためのフローの一例を示す。
【0038】
まず、全FIFOの蓄積量を取得する(S1)。取得の方法については、各FIFOに問い合わせても良いし、各FIFOから自主的に報告されたものであっても構わない。取得の方法については限定しない。
【0039】
次に、各FIFOについて上限の蓄積量を超えそうなFIFOがあるかどうかを検査する(S2)。検査の結果超えそうなFIFOがある場合には、そのFIFOに関連するスレッドについて緊急処理を行う(S3)。
【0040】
緊急処理には、たとえば次のような処理がある。一つには該当するFIFOを入力側に持つスレッドを割り込みにより最優先で処理させるものである。割り込みとは通常の処理の順序を強制的に変更させる手段を言う。他のスレッドに優先して処理することにより、当該FIFOの蓄積量を減らすことができる。もう一つは該当するFIFOを出力側に持つスレッドの実行を一時的に禁止するものである。当該スレッドの実行を禁止することで、当該FIFOに追加されるデータを止め、蓄積量に余裕ができるようにする。
【0041】
緊急処理の内容は処理状況や処理データの特性により柔軟に決定すべきものであり、上記した例に限定されるものではない。
【0042】
オーバフローしそうなFIFOが無いときは、次に全スレッドの優先度を求めたかどうかを判断する(S4)。
【0043】
優先度を求めたスレッドがすべででない場合は、処理中あるいは待機中のあるスレッドの一つを選択する(S5)。そして選択したスレッドが使用する入力側および出力側FIFOの蓄積量から、上述した方法で当該スレッドの優先度を決定する(S6)。決定後、再び全スレッドの優先度を求めたかを判断する(S4)。
【0044】
すべてのスレッドについて優先度を求めたと判断すると、優先度を求めたスレッドの中からもっとも高位の優先度を持つスレッドを選択する(S7)。
【0045】
上記のようにすると処理中あるいは待機中のスレッドから、次に実行すべきスレッドを選択することができる。
【0046】
上記したように構成すると、データフロー型プロセッサの処理能力を効率よく必要とする処理に割り当てられるとともに、入力側及び出力側のFIFO蓄積量に応じて実行すべきスレッドを選択することが可能となる。
【0047】
また本実施形態におけるプロセッサを搭載した、データフロー型の処理を行う計算機とすることも可能である。
【0048】
(第2の実施形態)
第2の実施形態におけるプロセッサのブロック図の一例を示す図、およびスレッド処理の概要を示す図は、第1の実施形態における図1および図2と同様である。
【0049】
図6に本実施形態におけるプロセッサの、あるスレッドについての入力側FIFO蓄積量に対するスレッドの優先度決定方法の一例を示す。図6に示す縦軸に当たるFIFO蓄積量は入力側FIFOであるから、たとえば図2に示すところのスレッド201−1に対するFIFO101−A、スレッド201−2に対するFIFO101−Bとなる。
【0050】
あるスレッドの入力側FIFOに処理待ちデータが多く蓄積されているということは、すなわちそのスレッドの処理が遅れていることを意味する。よってそのスレッドの優先度を上げ、処理待ちデータを速やかに処理する必要がある。このため図6に示すようにFIFO蓄積量が増えるに従って実行され易くなる(優先度が高くなる)よう設定する。
【0051】
第1の実施形態との相違は、FIFO蓄積量の増加時と減少時で異なるスレッド実行優先度とするところである。同じFIFO蓄積量のところを見ても、たとえばFIFO蓄積量が増加する際の交点601に当たる優先度は、FIFO蓄積量が減少する際の交点602に当たる優先度に比べて低くなる。
【0052】
入力側FIFOの蓄積量とスレッド処理との関係を見たとき、スレッドが実行されれば入力側FIFOの蓄積量が減ってゆき、逆に実行されなければ増加する傾向にある。このとき交点602があるFIFO蓄積量の減少時について考えると、入力側FIFOの蓄積量が減っていっても、そのスレッドの優先度の下がり方は緩やかになっている。逆に交点601があるFIFO蓄積量の増加時について考えると、入力側FIFOの蓄積量が増えていっても、そのスレッドの優先度の上がり方は緩やかである。つまり入力側FIFOの蓄積量が変化しても、一旦処理を始めたスレッドは優先度が高いまま維持されることから連続して実行される可能性が高い。逆に優先度が低くなり実行され難くなったスレッドは、入力側FIFOの蓄積量がより高くならないと実行され難いことを意味している。
【0053】
図1に示したキャッシュ104は、前述したようにスレッド処理に必要とする処理データを記憶容量は少ないものの高速にアクセスできるように設けられている。記憶容量が少ないことから、一旦読み込んだあるスレッドの処理データは他のスレッドが実行されると上書きされて消滅する可能性が高い。消滅した処理データは再びアクセス速度の遅い記憶装置からキャッシュ104上に読み込まねばならない。入力側FIFOの蓄積量の変動により実行されるスレッドが頻繁に入れ替わると、必然的に他の記憶装置からキャッシュ104に読み込まねばならないデータの量及び回数が増える。
【0054】
図1に示したレジスタセット106についても同様に、実行中及び待機中のスレッドがレジスタセット106の数を上回る場合には、他の記憶装置に一時的に退避する必要がある。これはある時点にレジスタセット106に割り当てられなかったスレッドを実行するために、他のスレッドが占有していたレジスタセット106をこのスレッドのために開放する必要があるからである。レジスタセット106の内容を記憶装置間で移動しなければならないことから、頻繁なスレッドの切替は、キャッシュ104と同様にオーバヘッドを発生させる。
【0055】
本実施形態のプロセッサではあるスレッドが頻繁に実行されやすい状態を実現し、キャッシュ104へのデータ読み込みのオーバヘッドを削減する。よってプロセッサの持つ処理能力を、本来のデータ処理に振り向けることが可能となる。
【0056】
図6に示す例ではFIFO蓄積量とスレッド優先度の関係を楕円で示しているが、必ずしも楕円である必要はない。たとえばプロセッサの設計の上で実装が簡易となるように優先度が段階的あるいは階段状に高くなるようにしても良い。
【0057】
図7は本実施形態におけるプロセッサの、あるスレッドにについて出力側FIFO蓄積量に対するスレッドの優先度決定方法の一例を示す。図7に示す縦軸に当たるFIFO蓄積量は出力側FIFOであるから、たとえば図2に示すところのスレッド201−1に対するFIFO101−B、スレッド201−2に対するFIFO101−Cとなる。
【0058】
あるスレッドの出力側FIFOに処理待ちデータが多く蓄積されているということは、すなわちその後続のスレッドの処理が遅れていることを意味する。このままスレッドを実行すると、出力側のFIFOが溢れてしまう可能性がある。そこでそのスレッドの優先度を下げ、出力側のFIFOが溢れないように処理を抑制する必要がある。このため図7に示すように出力側のFIFO蓄積量が増えるに従って実行され難くなる(優先度が低くなる)よう設定する。
【0059】
第1の実施形態との相違は、FIFO蓄積量の増加時と減少時で異なるスレッド実行優先度とするところである。同じFIFO蓄積量のところを見ても、たとえばFIFO蓄積量が増加する際の交点702に当たる優先度は、FIFO蓄積量が減少する際の交点701に当たる優先度に比べて高くなる。
【0060】
出力側FIFOの蓄積量とスレッド処理との関係を見たとき、スレッドが実行されれば出力側FIFOの蓄積量が増えてゆき、逆に実行されなければ減少する傾向にある。このとき交点702があるFIFO蓄積量の増加時について考えると、出力側FIFOの蓄積量が増えていっても、そのスレッドの優先度の下がり方は緩やかになっている。逆に交点701があるFIFO蓄積量の減少時について考えると、出力側FIFOの蓄積量が減っていっても、そのスレッドの優先度の上がり方は緩やかである。つまり出力側FIFOの蓄積量が変化しても、一旦処理を始めたスレッドは優先度が高いまま維持されることから連続して実行される可能性が高い。逆に優先度が低くなり実行され難くなったスレッドは、出力側FIFOの蓄積量がより低くならないと実行され難いことを意味している。
【0061】
この効果については、上述した図6の説明について参照されたい。
【0062】
図7に示す例ではFIFO蓄積量とスレッド実行優先度の関係を楕円で示しているが、必ずしも楕円である必要はない。たとえばプロセッサの設計の上で実装が簡易となるように優先度が段階的あるいは階段状に高くなるようにしても良い。
【0063】
上記したように実行制御部103は入力側FIFOから得られた優先度と出力側FIFOから得られた優先度の両方を総合した優先度、あるいは入力側FIFOに基づく優先度に従って、スレッドの優先度を決定する。
【0064】
このとき入力側FIFO蓄積量から得られた優先度と出力側FIFO蓄積量から得られた優先度とが相反する優先度を示す場合も考えられる。たとえば入力側FIFO及び出力側FIFOの両方に処理データが蓄積されていないときである。この場合は優先的にスレッドの実行をする必要はないので入力側FIFO蓄積量に基づく優先度を優先する。
【0065】
一方、入力側出力側の両方が蓄積量の上限に近い場合も考えられる。この場合には出力側のFIFO蓄積量の空き領域に、入力側FIFOに記憶された処理データを処理した後の出力結果が格納できるだけの領域があることを条件に、入力側FIFO蓄積量に基づく優先度を優先する。この場合を除けば、出力側FIFOが溢れるのを防止するため出力側FIFO蓄積量に基づく優先度を優先する、あるいはこのスレッドの実行を一時的に禁止する。
【0066】
本実施形態におけるプロセッサの、次に実行するスレッドを決定するためのフローの一例を示す図は、第1の実施形態における図5と同様である。
【0067】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0068】
【発明の効果】
本発明によれば、リアルタイム性の損失を最小限に抑えることが可能なデータフロー型プロセッサ、このプロセッサを利用した計算機及び優先度決定方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態にかかるプロセッサのブロック構成の一例を示す図である。
【図2】本発明の第1の実施形態にかかるプロセッサのスレッド処理の概要を示す図である。
【図3】本発明の第1の実施形態にかかるプロセッサのあるスレッドについての入力側FIFO蓄積量に対するスレッドの起動優先度決定方法の一例を示す図である。
【図4】本発明の第1の実施形態にかかるプロセッサのあるスレッドについての出力側FIFO蓄積量に対するスレッドの起動優先度決定方法の一例を示す図である。
【図5】本発明の第1の実施形態にかかるプロセッサの次に起動するスレッドを決定するためのフローの一例を示す図である。
【図6】本発明の第2の実施形態にかかるプロセッサのあるスレッドについての入力側FIFO蓄積量に対するスレッドの起動優先度決定方法の一例を示す図である。
【図7】本発明の第2の実施形態にかかるプロセッサのあるスレッドについての出力側FIFO蓄積量に対するスレッドの起動優先度決定方法の一例を示す図である。
【符号の説明】
101 FIFO(First-In First-Out)
102 選択部
103 実行制御部
104 キャッシュ
105 切替部
106 レジスタセット
107 メモリバス
108 記憶部
109 演算処理部
202 状態報告
203 実行指示
Claims (4)
- あるデータ処理を少なくとも1以上に時分割した処理の一つに当たる、1以上の実行単位が処理すべき処理データを記憶するための複数の記憶手段と、
ある実行単位に割り当てた前記複数の記憶手段の少なくとも1つからこの実行単位が処理すべきデータを受け取り、該実行単位に割り当てた前記複数の記憶手段の1つに該実行単位の実行結果を記憶するデータ処理手段と、
前記記憶手段のそれぞれから各記憶手段が記憶する処理データ量についての情報を受け取り、
ある記憶手段が記憶する処理データ量がより多いほど、該記憶手段から処理すべきデータを受け取る実行単位に対し、該実行単位の以降実行すべき順位を示す優先度をより高い優先度に決定し、
ある記憶手段が記憶する処理データ量がより少ないほど、該記憶手段から処理すべきデータを受け取る実行単位に対し、該実行単位の以降実行すべき順位を示す優先度をより低い優先度に決定し、
幾つかの前記記憶手段が記憶している処理データ量が同等である場合には、該記憶手段から処理すべきデータを受け取る各実行単位に対し、それら記憶手段が記憶する処理データ量の増減傾向について減少傾向が大きい順に、高い優先度を決定する
優先度決定手段と、を備えたことを特徴とするプロセッサ。 - 前記優先度決定手段は、ある記憶手段が記憶する処理データ量が該記憶手段の記憶容量の上限を越えると判断したときは、該記憶手段から処理すべきデータを受け取る実行単位に対し、もっとも高位の優先度を決定することを特徴とする、請求項1に記載のプロセッサ。
- 請求項1乃至請求項2のいずれかに記載のプロセッサを備えた計算機。
- あるデータ処理を少なくとも1以上に時分割した処理の一つに当たる実行単位について、ある実行単位に割り当てた複数ある記憶装置の少なくとも1つから該実行単位が処理すべきデータを受け取り、
該実行単位に割り当てた前記複数の記憶装置の1つに該実行単位の実行結果を記憶し、
前記記憶装置のそれぞれから各記憶装置が記憶する処理データ量についての情報を受け取り、
ある記憶装置が記憶する処理データ量がより多いほど、該記憶装置から処理すべきデータを受け取る実行単位に対し、該実行単位の以降実行すべき順位を示す優先度をより高い優先度に決定し、
ある記憶装置が記憶する処理データ量がより少ないほど、該記憶装置から処理すべきデータを受け取る実行単位に対し、該実行単位の以降実行すべき順位を示す優先度をより低い優先度に決定し、
幾つかの前記記憶装置が記憶している処理データ量が同等である場合には、該記憶手段から処理すべきデータを受け取る各実行単位に対し、それら記憶装置が記憶する処理データ量の増減傾向について減少傾向が大きい順に、高い優先度を決定することを特徴とする優先度決定方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003079478A JP3880942B2 (ja) | 2003-03-24 | 2003-03-24 | プロセッサ、計算機及び優先度決定方法 |
| US10/752,703 US20040139441A1 (en) | 2003-01-09 | 2004-01-08 | Processor, arithmetic operation processing method, and priority determination method |
| CNA2004100020726A CN1517869A (zh) | 2003-01-09 | 2004-01-09 | 处理器、运算处理方法和优先度决定方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003079478A JP3880942B2 (ja) | 2003-03-24 | 2003-03-24 | プロセッサ、計算機及び優先度決定方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004287883A JP2004287883A (ja) | 2004-10-14 |
| JP3880942B2 true JP3880942B2 (ja) | 2007-02-14 |
Family
ID=33293582
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003079478A Expired - Fee Related JP3880942B2 (ja) | 2003-01-09 | 2003-03-24 | プロセッサ、計算機及び優先度決定方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3880942B2 (ja) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006129767A1 (ja) * | 2005-06-02 | 2006-12-07 | Keio University | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 |
| JP4647533B2 (ja) * | 2005-11-28 | 2011-03-09 | 富士通セミコンダクター株式会社 | 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム |
| JP2008009970A (ja) * | 2006-05-29 | 2008-01-17 | Matsushita Electric Ind Co Ltd | 情報処理装置、情報処理方法及び情報処理プログラム |
| JP4979287B2 (ja) | 2006-07-14 | 2012-07-18 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
| JP5452125B2 (ja) * | 2009-08-11 | 2014-03-26 | クラリオン株式会社 | データ処理装置及びデータ処理方法 |
| WO2012049791A1 (ja) * | 2010-10-12 | 2012-04-19 | 日本電気株式会社 | データ処理方法、データ処理装置及びデータ処理プログラムが格納された非一時的なコンピュータ可読媒体 |
| US9626273B2 (en) * | 2011-11-09 | 2017-04-18 | Nec Corporation | Analysis system including analysis engines executing predetermined analysis and analysis executing part controlling operation of analysis engines and causing analysis engines to execute analysis |
| WO2013099062A1 (ja) * | 2011-12-28 | 2013-07-04 | 日本電気株式会社 | 解析処理システム |
| JP6074779B2 (ja) * | 2012-04-23 | 2017-02-08 | マーベル ワールド トレード リミテッド | ピアツーピア(p2p)デバイスの間のスループットを向上させるためのスレッド優先度の調節 |
| WO2020213396A1 (ja) * | 2019-04-17 | 2020-10-22 | 株式会社エヌエスアイテクス | プロセッサおよびプログラム |
-
2003
- 2003-03-24 JP JP2003079478A patent/JP3880942B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004287883A (ja) | 2004-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20040139441A1 (en) | Processor, arithmetic operation processing method, and priority determination method | |
| JP5040773B2 (ja) | メモリバッファ割当装置およびプログラム | |
| JP3805305B2 (ja) | マルチスレッドプロセッサ上の優先順位及び命令速度の制御 | |
| EP0827071B1 (en) | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream | |
| US5826081A (en) | Real time thread dispatcher for multiprocessor applications | |
| KR100976280B1 (ko) | 하드웨어 지원을 갖는 다중 프로세서 및 다중 스레드 안전 메시지 큐 | |
| US9436464B2 (en) | Instruction-issuance controlling device and instruction-issuance controlling method | |
| KR100404672B1 (ko) | 슈퍼스칼라프로세서의로드버퍼와저장버퍼우선순위동적전환방법및장치 | |
| JP3880942B2 (ja) | プロセッサ、計算機及び優先度決定方法 | |
| JPH04195577A (ja) | マルチプロセッサにおけるタスクスケジューリング方式 | |
| US7412590B2 (en) | Information processing apparatus and context switching method | |
| US10585701B2 (en) | Dynamically allocating storage elements to provide registers for processing thread groups | |
| US20050066149A1 (en) | Method and system for multithreaded processing using errands | |
| JP2011242896A (ja) | 計算機システム | |
| JP3034873B2 (ja) | 情報処理装置 | |
| CA2769899C (en) | Enhanced prioritising and unifying interrupt controller | |
| US20120226842A1 (en) | Enhanced prioritising and unifying interrupt controller | |
| EP1760581A1 (en) | Processing operations management systems and methods | |
| US6915516B1 (en) | Apparatus and method for process dispatching between individual processors of a multi-processor system | |
| JP4088763B2 (ja) | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 | |
| JPH05151064A (ja) | 密結合マルチプロセツサシステム | |
| JP4017005B2 (ja) | 演算装置 | |
| JP2012168725A (ja) | マルチスレッド・プロセッサ | |
| US11829643B2 (en) | Memory controller system and a method of pre-scheduling memory transaction for a storage device | |
| Hartley et al. | The structure of a multiprogramming supervisor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050415 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050606 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060622 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060828 |
|
| 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: 20061107 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061108 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |