JP2006146641A - マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 - Google Patents
マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 Download PDFInfo
- Publication number
- JP2006146641A JP2006146641A JP2004336988A JP2004336988A JP2006146641A JP 2006146641 A JP2006146641 A JP 2006146641A JP 2004336988 A JP2004336988 A JP 2004336988A JP 2004336988 A JP2004336988 A JP 2004336988A JP 2006146641 A JP2006146641 A JP 2006146641A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- executed
- thread
- processing
- level
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
【課題】 マルチスレッドプロセッサにおいて、割込み処理が重ねて発生した場合に、高速かつ効率的な処理を行うことができるマルチスレッドプロセッサを提供する。
【解決手段】 一つのスレッドの実行に割り当てられるハードウェアの単位であるハードウェアスレッドを複数備えるマルチスレッドプロセッサに対し、ハードウェアスレッドのうちの一のハードウェアスレッドが、第1の割込命令によって割込まれた処理を実行している間にさらに第2の割込み命令を受けたとき、第2の割込命令によって実行される処理を他のハードウェアスレッドに実行させる割込み管理部105を設ける。
【選択図】 図1
【解決手段】 一つのスレッドの実行に割り当てられるハードウェアの単位であるハードウェアスレッドを複数備えるマルチスレッドプロセッサに対し、ハードウェアスレッドのうちの一のハードウェアスレッドが、第1の割込命令によって割込まれた処理を実行している間にさらに第2の割込み命令を受けたとき、第2の割込命令によって実行される処理を他のハードウェアスレッドに実行させる割込み管理部105を設ける。
【選択図】 図1
Description
本発明は、複数のスレッドを並行に実行できるマルチスレッドプロセッサに及びマルチスレッドプロセッサの割込み処理方法に関する。
プロセッサは、コンピュータにおける基本的な演算処理を実行する装置である。従来のプロセッサにおいては、割込み処理の実行中に重ねて割込みが発生した場合、一般に、図6(a)、(b)のような方法による対応が行われている。
図6(a)に示した方法は、最初の割込みの処理が終了するまで、次に発生した割込みの処理開始を待つものであり、このような方法においては、割込みが発生順に処理される。
図6(a)に示した方法は、最初の割込みの処理が終了するまで、次に発生した割込みの処理開始を待つものであり、このような方法においては、割込みが発生順に処理される。
また、図6(b)に示した方法は、割込みに優先度を設定しておき、割込み処理の実行中に、より優先度が高い割込みが発生した場合、先に実行されていた割込み処理を中断して、優先度の高い割込みの処理を実行するものである。このような方法においては、優先度の高い割込みの処理開始が、先行する割込み処理のために待たされる事態を防ぐことができる。
ただし、図6(a)に示した方法においては、最初の割込みの処理が終了するまで、次に発生した割込みの処理が開始されないため、後に発生した割込みの処理の応答が遅くなるという問題があった。
また、図6(b)に示した方法においては、より優先度が高い割込みが発生した場合、先に実行されていた割込み処理が中断されるため、先に発生した割込み処理の終了が遅れると共に、後に発生した割込みの処理に切り換える場合に、コンテキストスイッチが発生し、処理効率が低下するという問題があった。
また、図6(b)に示した方法においては、より優先度が高い割込みが発生した場合、先に実行されていた割込み処理が中断されるため、先に発生した割込み処理の終了が遅れると共に、後に発生した割込みの処理に切り換える場合に、コンテキストスイッチが発生し、処理効率が低下するという問題があった。
なお、割込み処理の実行中に重ねて割込みが発生した場合の対応に関する技術は、例えば、特許文献1あるいは特許文献2に開示されている。
特開平4−267438号公報
特開平4−195340号公報
ところで、近年、複数のスレッドを並列的に処理可能なマルチスレッドプロセッサが用いられるようになっている。マルチスレッドプロセッサは、スレッド単位で処理を並列化することによりハードウェア資源を有効に活用し、全体として処理を効率的に行うことが可能なプロセッサである。
しかしながら、上述の公報にあるように、従来技術は、シングルスレッドプロセッサに関するものであり、マルチスレッドプロセッサの場合に、その特徴を有効に活用できるものではなかった。このため、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かして高速かつ効率的な処理を行うことは困難であった。
しかしながら、上述の公報にあるように、従来技術は、シングルスレッドプロセッサに関するものであり、マルチスレッドプロセッサの場合に、その特徴を有効に活用できるものではなかった。このため、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かして高速かつ効率的な処理を行うことは困難であった。
本発明の課題は、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、高速かつ効率的な処理を行うことができるマルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み処理方法を提供することを目的とする。
以上の課題を解決するため、本発明のマルチスレッドプロセッサは、複数のスレッドを並行して実行可能なマルチスレッドプロセッサであって、第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、前記第2の割込によって実行される割込み処理を並行して実行させる割込み制御手段を備えることを特徴とする。
このような発明によれば、第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、第2の割込によって実行される処理を並行して実行させることができる。
このため、本発明は、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かし。高速かつ効率的な処理を行うことができるマルチスレッドプロセッサを提供することができる。
このため、本発明は、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かし。高速かつ効率的な処理を行うことができるマルチスレッドプロセッサを提供することができる。
また、本発明のマルチスレッドプロセッサは、前記第1の割込及び第2の割込によって実行される割込み処理が処理の内容に応じて各々複数の段階に分割され、前記割込み制御手段は、並行して実行できない段階の処理同士を時間差を設けて実行させ、かつ、並行して実行可能な段階の処理同士を同時に実行させることを特徴とする。
このような発明によれば、割込みによって実行される割込み処理を複数に分割し、このうち並行して動作できない処理については時間差を設けて実行させ、同時に処理可能な処理については並行して動作させることができる。このため、割込み処理を行いながら重ねて発生する割込みによって起こる不具合を自動的に防ぐことができる。
このような発明によれば、割込みによって実行される割込み処理を複数に分割し、このうち並行して動作できない処理については時間差を設けて実行させ、同時に処理可能な処理については並行して動作させることができる。このため、割込み処理を行いながら重ねて発生する割込みによって起こる不具合を自動的に防ぐことができる。
また、本発明のマルチスレッドプロセッサは、処理の内容に応じて複数の段階に分割された割込み処理の各々にレベルが付され、前記割込み制御手段は、前記レベルに応じて処理が並行して実行可能であるか否かを判断することを特徴とする。
このような発明によれば、処理が同時に可能か否かを割込み制御手段が比較的簡易に判断することができる。また、処理の段階が変わったことをも比較的簡易に判断することができる。
このような発明によれば、処理が同時に可能か否かを割込み制御手段が比較的簡易に判断することができる。また、処理の段階が変わったことをも比較的簡易に判断することができる。
また、本発明のマルチスレッドプロセッサの割込み処理方法は、複数のスレッドを並行して実行可能なマルチスレッドプロセッサの割込み処理方法であって、第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、前記第2の割込によって実行される割込み処理を並行して実行させる割込み制御工程を含むことを特徴とする。
このような発明によれば、第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、第2の割込によって実行される割込み処理を並行して実行させることができる。
このため、本発明は、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かし。高速かつ効率的な処理を行うことができるマルチスレッドプロセッサの割込み処理方法を提供することができる。
このため、本発明は、マルチスレッドプロセッサにおいて、割込みが重ねて発生した場合に、マルチスレッドプロセッサの特性を生かし。高速かつ効率的な処理を行うことができるマルチスレッドプロセッサの割込み処理方法を提供することができる。
以下、図を参照して本発明に係るマルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法の実施の形態を説明する。
図1は、本発明の一実施形態のマルチスレッドプロセッサのブロック図である。図示したマルチスレッドプロセッサは、複数のスレッドを並行して実行することができる。そして、第1割込(割込みA)によって実行される割込み処理を実行している間、さらに第2割込(割込みB)を受けたとき、割込Bによって実行される割込み処理を並行して実行させる割込み制御手段を備えている。
図1は、本発明の一実施形態のマルチスレッドプロセッサのブロック図である。図示したマルチスレッドプロセッサは、複数のスレッドを並行して実行することができる。そして、第1割込(割込みA)によって実行される割込み処理を実行している間、さらに第2割込(割込みB)を受けたとき、割込Bによって実行される割込み処理を並行して実行させる割込み制御手段を備えている。
すなわち、マルチスレッドプロセッサ1は、外部デバイス111と接続している。外部デバイス111は、マルチスレッドプロセッサ1に対して割込みを発生し得る機器である。外部デバイス111が発生した割込は、割込みコントローラ109を通じてマルチスレッドプロセッサ1に伝えられる。割込みコントローラ109は、マルチスレッドプロセッサ1の指示によって特定の割込みを制御している。
また、マルチスレッドプロセッサ1は、マルチスレッドプロセッサ1全体を管理する実行管理部103の他、割込みに関する動作を制御する割込み管理部105を備えている。さらに、マルチスレッドプロセッサ1は、各スレッドで実行されている処理の割込みレベルを保持する処理中割込みレベル保持部101を備えている。処理中割込みレベル保持部101は、さらに、保持されている割込みレベルのうち、現在実行されている処理の割込みレベルのうち、最も高い割込みレベルも保持している。
図1に示した処理中割込みレベル保持部101は、スレッド0、スレッド1、…スレッドnの割込みレベルを保持しており、さらに、このうちの最も高い割込みレベルを割込み最高レベル(maxLV)として別途保持している。
さらに、マルチスレッドプロセッサ1は、PSR(Processor Status Register)107を備えている。PSR107は、マルチスレッドプロセッサ1が現在実行している実行ステータスを示すレジスタである。PSR107は、スレッドごとの実行ステータスを示す複数のレジスタと、マルチスレッドプロセッサ全体の実行ステータスを示す唯一のレジスタとが含まれている。PSR107によれば、マルチスレッドプロセッサ1が現在通常処理を行っているものか、あるいは割込み処理を行っているものかもわかる。
さらに、マルチスレッドプロセッサ1は、PSR(Processor Status Register)107を備えている。PSR107は、マルチスレッドプロセッサ1が現在実行している実行ステータスを示すレジスタである。PSR107は、スレッドごとの実行ステータスを示す複数のレジスタと、マルチスレッドプロセッサ全体の実行ステータスを示す唯一のレジスタとが含まれている。PSR107によれば、マルチスレッドプロセッサ1が現在通常処理を行っているものか、あるいは割込み処理を行っているものかもわかる。
また、本実施形態では、プロセッサ全体の状態を示すPSR107に単に処理が割込み処理であるか否かだけでなく、マルチスレッドプロセッサ1全体の割込み処理のレベルを示す情報をも保持させるようにした。このように構成すれば、PSR107に保持されている割込み処理のレベルを書き換えることによってマルチスレッドプロセッサ1の割込みのレベルをも変更することができる。この点については後述する。
割込み管理部105は、処理中割込みレベル保持部101に保持されている割込みレベルを認識し、この結果に基づいて発生した割込みが処理可能であるか否かを判断する。また、処理中割込みレベル保持部101に対しては割込みレベルの変更があったときに割込みレベルの遷移を通知する。また、PSR107に対しては、保持されている割込みレベルにかかる情報を更新する。
以上の構成において、本実施形態では、割込み管理部105が割込み制御手段として機能する。すなわち、割込み管理部105は、外部デバイス111が発生した割込みを割込みコントローラ109から受け取る。そして、割込みが発生した時に、すでに割込みを受けて処理を実行しているか否かを判断する。判断の結果、割込みによって処理を実行している場合、現在行われている割込み処理の割込みレベルと後に発生した割込みの割込みレベルとを比較して割込み処理開始の可否を判断している。さらに、割込み管理部105は、割込み処理開始が可能であると判断すると、後に発生した割込みによってなされる処理を開始する。
また、図2は、図1に示したマルチスレッドプロセッサ1においてなされる割込み処理を説明するための図である。本実施形態のマルチスレッドプロセッサは、4つのスレッドを並列に実行可能な4つのハードウェアスレッドでなる。本実施形態では、4つのハードウェアスレッドの各々をHWスレッド1、HWスレッド2、HWスレッド3、HWスレッド4と特定する。
なお、ハードウェアスレッドとは、マルチスレッドプロセッサが備える複数のハードウェアリソースの全部もしくは一部を区分し、実行されるスレッドごとに割り当てた仮想的な単位をいう。また、本実施形態では、ハードウェアスレッドには、レジスタファイルやPSRが含まれる。
図2に示した割込み処理では、割込みAの発生前、マルチスレッドプロセッサでは、HWスレッド1〜HWスレッド4の全てが各々異なるスレッドの処理を行っている。このとき、マルチスレッドプロセッサ1に対して割込みAが発生し、続いて割込みBが発生する。
図2に示した割込み処理では、割込みAの発生前、マルチスレッドプロセッサでは、HWスレッド1〜HWスレッド4の全てが各々異なるスレッドの処理を行っている。このとき、マルチスレッドプロセッサ1に対して割込みAが発生し、続いて割込みBが発生する。
本実施形態では、割込みによってなされる処理(割込み処理)を処理の内容に応じて3つの段階に分割している。処理の内容とは、割込みコントローラ109にする処理(第1段階処理)、割込が要求されたHWスレッドにアクセスする割込みのメイン処理第2段階処理)、割込みが終了したときのOSによるタスク起動、イベント通知といった処理(第3段階処理)である。
以上の第1段階処理、第2段階処理、第3段階処理において、第1段階処理同士は割込みコントローラ109が1つであるために並行して実行できない。また、第2段階処理同士は、互いに異なるハードウェアスレッドに対してアクセスするので並列に実行可能である。さらに、第3段階処理同士は、OSによって排他的に順次行われる処理であるから並列に実行できない。
上記した規制により、割込み管理部105は、マルチスレッドプロセッサ1に対してなされた割込Bの割込み処理をHWスレッド2に実行させる。このとき、HWスレッド1とHWスレッド2との間で並行して実行できない段階の処理同士を時間差を設けて実行させ、かつ、並行して実行可能な段階の処理同士を同時に実行させている。なお、割込み管理部105によるハードウェアスレッド上の処理の実行は、実行管理部103に対して割込み処理の実行を指示する制御信号を出力することによって行われる。
この結果、図2に示したように、割込みAによってHWスレッド1の通常処理が中断され、割込みAによって行われる割込み処理Aが実行される。割込みAの割込み処理Aは、前述した3つの第1段階処理、第2段階処理、第3段階処理に分割されていて、図中、割込み処理Aの第1段階処理を処理A1、割込み処理Aの第2段階処理を処理A2、割込み処理Aの第3段階処理を処理A3と記す。
次に、割込みBが発生すると、割込み管理部105は、HWスレッド2に割込みBによってなされる割込み処理Bを実行させる。割込みBの割込み処理Bも3つの第1段階処理、第2段階処理、第3段階処理に分割されていて、図中、割込み処理Bの第1段階処理を処理B1、割込み処理Bの第2段階処理を処理B2、割込み処理Bの第3段階処理を処理B3と記す。
このとき、割込み管理部105は、処理A1と処理B1とが並行して実行できないことから処理A1の終了を待って処理B1を実行させる。また、処理B1の実行中、処理B1と処理A2とは並行して実行可能であるから同時に処理させる。さらに、処理A3の実行中に処理B2が完了した場合にも、処理A3と処理B3とが並行して実行できない。このことから、割込み管理部105は、処理A3の完了を待って処理B3を実行させる。
図3は、以上述べた動作を実現するための具体的なマルチスレッドプロセッサ1の動作を説明するための図である。図3にあっても、マルチスレッドプロセッサ1では、図3に示した状態と同様に、HWスレッド1に対して命令A、命令Bが続いて発行されている。
また、図3中、HWスレッド1、HWスレッド2には各HWスレッドで実行される処理が処理A1、処理A2…のレベルで記されている。さらに、図3のHW1TレベルにはHWスレッド1で実行されている処理の割込みレベルが記されていて、HW2TレベルにはHWスレッド2で実行されている処理の割込みレベルが記されている。割込み最高レベルには、HW1Tレベル、HW2Tレベルのうち、実行されている処理の最も高い割込みレベルが記されている。
また、図3中、HWスレッド1、HWスレッド2には各HWスレッドで実行される処理が処理A1、処理A2…のレベルで記されている。さらに、図3のHW1TレベルにはHWスレッド1で実行されている処理の割込みレベルが記されていて、HW2TレベルにはHWスレッド2で実行されている処理の割込みレベルが記されている。割込み最高レベルには、HW1Tレベル、HW2Tレベルのうち、実行されている処理の最も高い割込みレベルが記されている。
割込み最高レベルは、処理中割込みレベル保持部101に保持されている。また、本実施形態では、実行中の処理の割込みレベルのうち最も高いもの、すなわち割込み最高レベルがマルチスレッドプロセッサ1全体の割込みレベルとしてプロセッサ全体の状態を表すPSR107に書き込まれている。
本実施形態では、第1段階処理の割込みレベルを1〜32のいずれかの値とし、第2段階処理、第3段階処理の割込みレベルを32以上の値とする。図3に示した例では、第2段階処理の割込みレベルを33、第3段階処理の割込みレベルを33とした。割込みレベルは、数値の小さいものほど高レベルであることを示す。
本実施形態では、第1段階処理の割込みレベルを1〜32のいずれかの値とし、第2段階処理、第3段階処理の割込みレベルを32以上の値とする。図3に示した例では、第2段階処理の割込みレベルを33、第3段階処理の割込みレベルを33とした。割込みレベルは、数値の小さいものほど高レベルであることを示す。
図3によれば、HWスレッド1で割込みレベル2の処理A1の実行中に割込みレベル3の処理B1の割込みが要求されている。このような場合、割込み管理部105は、先ず、処理B1の割込みレベルとして3を取得する。また、現在の割込み最高レベルが2であることを検出し、現在行われている処理が並行して実行できない第1段階処理であることを検出する。このとき、割込み管理部105は、処理A1が完了するまで割込み処理の開始を待って処理B1をHWスレッド2で実行させる。
処理A1の終了後、HWスレッド1の割込みレベルは33に変更される。このとき、割込み管理部105は、HWスレッド1で行われる処理の割込みレベルが33になったことによってHWスレッド1で行われる処理が第2段階処理になったことを検出する。そして、割込みレベル3の処理B1をHWスレッド2で実行する。
なお、割込みレベルの変更方法としては、当該スレッドのPSR107の内容を割込み管理部105が書き換えるものと、実行管理部103等が割込みレベルを変化させる特殊命令を発生し、この命令を受けて割込み管理部105が当該スレッドのPSR107の内容を書き換えるものとが考えられる。
なお、割込みレベルの変更方法としては、当該スレッドのPSR107の内容を割込み管理部105が書き換えるものと、実行管理部103等が割込みレベルを変化させる特殊命令を発生し、この命令を受けて割込み管理部105が当該スレッドのPSR107の内容を書き換えるものとが考えられる。
図4は、以上述べた割込み処理発生時のマルチスレッドプロセッサ1の割込み発生時の動作を説明するためのフローチャートである。図示したフローチャートは、割込みが発生した時点でスタートする。割込みAの後、さらに割込みBが発生した場合で説明すると、割込み管理部105は、割込みBの割込みレベルnewLVを処理中割込みレベル保持部101から取得し(S501)、処理中の割込み最高レベルmaxLVが32より大きいか否かを判断する(S502)。この結果、maxLVが32より小さかった場合(S502:No)、現在実行されている処理が並行して動作できない処理1であると判断して割込み処理開始を1サイクル待つ(S508)。
一方、ステップS502においてmaxLVが32より大きいと判断された場合(S502:Yes)、さらにnewLVがmaxLVよりも小さいか否かを判断する(S503)。この判断の結果、maxLVがnewLVよりも小さい場合(S503:No)、現在行われている処理の方が高い優先度を持つものとして割込み処理開始を1サイクル待つ(S508)。
また、ステップS503において、newLVがmaxLVよりも小さいと判断された場合(S503:Yes)、割込み管理部105は、割込みに使用できるHWスレッドがあるか否かを判断する(S504)。検索の結果、使用可能なHWスレッドがなかった場合(S505:No)、割込みの処理開始を1サイクル待った後に再び検索する(S509)。また、割込み可能なHWスレッドがあった場合(S505:Yes)、PSR107にnewLVをマルチスレッドプロセッサ1の割込みレベルとして設定し(S506)、割込みBによる割込み処理を開始する(S507)。
図5は、本実施形態の割込みレベルを変更するための処理を説明するためのフローチャートである。図示したフローチャートは、割込み処理の割込みレベルLVを変更する際にスタートする。割込み管理部105は、実行管理部103等からの割込みレベル変更命令の発行により(S601)、現在行っている割込み処理の割込みレベルcurLVを取得する(S602)。また、割込み管理部105は、割込みレベルがnewLVの処理に対してさらに割込みを行った場合に実行される処理の割込みレベルnextLVを計算によって取得する(S603)。そして、両者を比較し、同一レベルの処理間で割込みが実行されるか否か検索する(S604)。
ステップS604の検索の結果、同一レベルの処理同士の割込みが発生する場合(S605:Yes)、割込み処理開始を1サイクル待ち(S609)、再び同一レベルの処理間で割込み処理が実行されるか否か検索する(S604)。
また、ステップS605の判断の結果、同一レベルの処理間での割込みは実行されないと判断された場合(S605:No)、割込む処理と割込まれる処理とが並列処理可能なものであるか否かを判断する(S606)。この結果、並列処理が不可能である場合(S606:No)、割込み処理開始を1サイクル待ち(S609)、再び並列処理が可能な処理間で割込み処理が実行されるのか否かを判断する(S606)。
また、ステップS605の判断の結果、同一レベルの処理間での割込みは実行されないと判断された場合(S605:No)、割込む処理と割込まれる処理とが並列処理可能なものであるか否かを判断する(S606)。この結果、並列処理が不可能である場合(S606:No)、割込み処理開始を1サイクル待ち(S609)、再び並列処理が可能な処理間で割込み処理が実行されるのか否かを判断する(S606)。
また、ステップS606において、並列処理が可能であると判断された場合(S606:Yes)、PSR107にnextLVを設定する(S607)。そして、次の割込みを開始させ、処理を終了する。
以上述べた本実施形態によれば、第1段階処理の実行中に割込みを行うことがなく、第1段階処理を並行して実行させようとしたために起こる不具合を未然に防ぐことができる。また、このような処理によれば、本実施形態は、第2段階処理の実行中には他のハードウェアスレッドによって実行される他の処理を開始(割込み)させることができる。
以上述べた本実施形態によれば、第1段階処理の実行中に割込みを行うことがなく、第1段階処理を並行して実行させようとしたために起こる不具合を未然に防ぐことができる。また、このような処理によれば、本実施形態は、第2段階処理の実行中には他のハードウェアスレッドによって実行される他の処理を開始(割込み)させることができる。
さらに、本実施形態では、第2段階処理から第3段階処理への移行時に割込みレベルの変更処理が実行される。このため、競合する割込みのうち一方の割込みによる割込み処理開始を待たせることができる。このような処理により、本実施形態は、割込みBの処理B3中に割込みAが処理A3に切り替わったことによって起こる不具合を未然に防ぐことができる。
なお、本実施形態は、以上述べた構成に限定されるものではない。例えば、本実施形態では、第1段階に1〜32、第2段階に33、第3段階に34のレベルを付している。しかし、このようなレベルの付与の仕方以外にも、以下のようにレベルを付与することが考えられる。
(1)第1段階:1〜32、第2段階:第1段階+32、第3段階:第2段階+32
(2)第1段階:1〜16、第2段階以降:17以上の任意の数値
以上の例によれば、(1)の例では割込みレベルの変更の際に変更後のレベルを明確に指示する必要がある。ただし、割込み処理の種別ごとに割込み処理の段階の分割数を変えることができるという利点がある。また、第2段階よりも第3段階以降に高いレベルを付与することもでき、より柔軟な対応が可能になる。
(1)第1段階:1〜32、第2段階:第1段階+32、第3段階:第2段階+32
(2)第1段階:1〜16、第2段階以降:17以上の任意の数値
以上の例によれば、(1)の例では割込みレベルの変更の際に変更後のレベルを明確に指示する必要がある。ただし、割込み処理の種別ごとに割込み処理の段階の分割数を変えることができるという利点がある。また、第2段階よりも第3段階以降に高いレベルを付与することもでき、より柔軟な対応が可能になる。
また、本実施形態では、割込み処理を3段階に分割しているが、これに限定されることなく、処理の内容に応じて任意の段階に分割することができる。
さらに、本実施形態は、数値の低い方が高位のレベルを示すものに限定されるものではなく、各レベルを示す数値としては、任意の値を選択することができる。このような場合にも、各処理が並列に実行可能であるか否かは同一のレベル同士で比較すればよく、本実施形態で説明したフローチャートの手順で割込み処理を実行することができる。
さらに、本実施形態は、数値の低い方が高位のレベルを示すものに限定されるものではなく、各レベルを示す数値としては、任意の値を選択することができる。このような場合にも、各処理が並列に実行可能であるか否かは同一のレベル同士で比較すればよく、本実施形態で説明したフローチャートの手順で割込み処理を実行することができる。
1 マルチスレッドプロセッサ、101 レベル保持部、103 実行管理部
105 管理部、109 コントローラ、111 外部デバイス
105 管理部、109 コントローラ、111 外部デバイス
Claims (4)
- 複数のスレッドを並行して実行可能なマルチスレッドプロセッサであって、
第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、前記第2の割込によって実行される割込み処理を並行して実行させる割込み制御手段を備えることを特徴とするマルチスレッドプロセッサ。 - 前記第1の割込及び第2の割込によって実行される処理が処理の内容に応じて各々複数の段階に分割され、
前記割込み制御手段は、
並行して実行できない段階の処理同士を時間差を設けて実行させ、かつ、並行して実行可能な段階の処理同士を同時に実行させることを特徴とする請求項1に記載のマルチスレッドプロセッサ。 - 処理の内容に応じて複数の段階に分割された処理の各々にレベルが付され、
前記割込み制御手段は、前記レベルに応じて処理が並行して実行可能であるか否かを判断することを特徴とする請求項1または2に記載のマルチスレッドプロセッサ - 複数のスレッドを並行して実行可能なマルチスレッドプロセッサの割込み方法であって、
第1の割込みにより実行される割込み処理を実行している間にさらに第2の割込みを受けたとき、前記第2の割込みによって実行される処理を並行して実行させる割込み制御工程を含むことを特徴とするマルチスレッドプロセッサの割込み処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004336988A JP2006146641A (ja) | 2004-11-22 | 2004-11-22 | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004336988A JP2006146641A (ja) | 2004-11-22 | 2004-11-22 | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006146641A true JP2006146641A (ja) | 2006-06-08 |
Family
ID=36626237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004336988A Withdrawn JP2006146641A (ja) | 2004-11-22 | 2004-11-22 | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006146641A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407387B2 (en) | 2008-09-30 | 2013-03-26 | Renesas Electronics Corporation | Multi-thread processor and the multi-thread processor's interrupt processing method having interrupt processing that is processed by an associated hardware thread |
-
2004
- 2004-11-22 JP JP2004336988A patent/JP2006146641A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407387B2 (en) | 2008-09-30 | 2013-03-26 | Renesas Electronics Corporation | Multi-thread processor and the multi-thread processor's interrupt processing method having interrupt processing that is processed by an associated hardware thread |
US10545892B2 (en) | 2008-09-30 | 2020-01-28 | Renesas Electronics Corporation | Multi-thread processor and its interrupt processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870252B2 (en) | Multi-threaded processing with reduced context switching | |
TWI426452B (zh) | Work processing device | |
TWI416413B (zh) | Work processing device | |
JP5173712B2 (ja) | マルチスレッドプロセッサ | |
JP5173714B2 (ja) | マルチスレッドプロセッサ及びその割り込み処理方法 | |
TWI426451B (zh) | Work processing device | |
US7590990B2 (en) | Computer system | |
JP2006260571A (ja) | デュアルスレッドプロセッサ | |
US8417918B2 (en) | Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing | |
JP2007058600A (ja) | 画像処理装置 | |
JP2014211743A (ja) | マルチコアプロセッサ | |
JPH06105460B2 (ja) | マルチプロセッサのプロセッサ切換え装置 | |
WO2006030564A1 (ja) | プロセッサ | |
JP6368452B2 (ja) | 非同期のデバイスによって実行されるタスクのスケジューリングの向上 | |
JP2010152733A (ja) | マルチコアシステム | |
KR102224844B1 (ko) | 선점 방식을 선택하는 방법 및 장치. | |
JP2003058381A (ja) | プログラムによる例外処理設定を可能にしたプロセッサ | |
JP2006146641A (ja) | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 | |
JP2007193744A (ja) | 情報処理装置、プログラム、およびスケジューリング方法 | |
JP2010186347A (ja) | ジョブスケジューリングシステム、ジョブスケジューリング方法及びプログラム | |
US20080288952A1 (en) | Processing apparatus and device control unit | |
JPH04253228A (ja) | 対称型マルチプロセッサのタスクスケジューリング方式 | |
JP2008225710A (ja) | コンピュータシステム及び該システムで用いられるプロセス切替え方法 | |
JP5838237B2 (ja) | マルチスレッドプロセッサ | |
JP2007241629A (ja) | 情報処理装置及び情報処理方法をコンピュータに実行させるためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070403 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080205 |