JP2013058265A - マルチスレッドプロセッサ及びその割り込み処理方法 - Google Patents

マルチスレッドプロセッサ及びその割り込み処理方法 Download PDF

Info

Publication number
JP2013058265A
JP2013058265A JP2012284446A JP2012284446A JP2013058265A JP 2013058265 A JP2013058265 A JP 2013058265A JP 2012284446 A JP2012284446 A JP 2012284446A JP 2012284446 A JP2012284446 A JP 2012284446A JP 2013058265 A JP2013058265 A JP 2013058265A
Authority
JP
Japan
Prior art keywords
thread
interrupt
interrupt request
hardware
request signal
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.)
Pending
Application number
JP2012284446A
Other languages
English (en)
Inventor
Koji Adachi
浩次 安達
Kazunori Miyamoto
和納 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012284446A priority Critical patent/JP2013058265A/ja
Publication of JP2013058265A publication Critical patent/JP2013058265A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

【課題】高い処理能力と高い信頼性とを両立させること。
【解決手段】本発明に係るマルチスレッドプロセッサ1の一態様は、それぞれが独立した命令流を生成する複数のハードウェアスレッドと、入力された割り込み要求信号が、前記複数のハードウェアスレッドのうち1つ又は複数と関連付けられているか否かを判定し、関連付けられている場合、当該割り込み要求を関連付けられたハードウェアスレッドに割り当てる割り込みコントローラ11と、を備えたものである。
【選択図】図2

Description

本発明は、マルチスレッドプロセッサ及びその割り込み処理方法に関する。
近年、プロセッサの処理能力を向上させるためにマルチスレッドプロセッサが提案されている。マルチスレッドプロセッサは、それぞれが独立した命令流を生成するハードウェアスレッドを有する。そして、マルチスレッドプロセッサは、パイプライン処理により命令を処理する演算回路に対していずれのハードウェアスレッドにより生成された命令流を処理させるかを切り替えながら演算処理を実行する。
このとき、マルチスレッドプロセッサは、1つのハードウェアスレッドにより生成された命令をパイプライン中の1つの実行ステージで実行しながら、他の実行ステージにおいて他のハードウェアスレッドにより生成された命令を処理することができる。つまり、マルチスレッドプロセッサの演算回路では、互いに独立関係にある命令がそれぞれ異なる実行ステージで実行されることになる。これにより、マルチスレッドプロセッサは、それぞれの命令流を円滑に処理しながら、パイプラインの実行ステージが何も処理しない時間を削減し、プロセッサの処理能力を向上させる。
特許文献1には、マルチスレッドプロセッサにおいて第1の割り込みを処理中に、第2の割り込みがあった場合、第1の割り込み処理を実行しているハードウェアスレッドとは別のハードウェアスレッドに、第2の割り込み処理を割り当てる技術が開示されている。
特開2006−146641号公報
しかしながら、特許文献1では、割り込み要求とハードウェアスレッドとが関連付けられていない。そのため、例えば厳密な時間管理が必要な割り込み要求を、厳密な時間管理が必要な処理を実行する所定のハードウェアスレッドに割り当てることができず、システム全体としての信頼性に劣るおそれがあった。
本発明に係るマルチスレッドプロセッサの一態様は、
それぞれが独立した命令流を生成する複数のハードウェアスレッドと、
入力された割り込み要求信号が、前記複数のハードウェアスレッドのうち1つ又は複数と関連付けられているか否かを判定し、関連付けられている場合、当該割り込み要求を関連付けられたハードウェアスレッドに割り当てる割り込みコントローラと、を備えたものである。
また、本発明に係るマルチスレッドプロセッサの割り込み処理方法の一態様は、
複数のハードウェアスレッドを有するマルチスレッドプロセッサにおける割り込み処理方法であって、
入力された割り込み要求信号が、前記複数のハードウェアスレッドのうち1つ又は複数と関連付けられているか否かを判定し、
関連付けられている場合、当該割り込み要求を関連付けられたハードウェアスレッドに割り当てるものである。
本発明に係るマルチスレッドプロセッサ及びその割り込み処理方法によれば、割り込み処理を当該割り込み処理と関連付けられたハードウェアスレッドにより処理し、高い処理能力と高い信頼性とを両立させることができる。
本発明に係るマルチスレッドプロセッサ及びその割り込み方法によれば、高い処理能力と高い信頼性とを両立させることができる。
実施の形態1に係るマルチスレッドプロセッサのブロック図である。 実施の形態1に係る割り込みコントローラの詳細なブロック図である。 実施の形態1に係る1つのチャネルに対応するスレッドバインドレジスタの構成を示す模式図である。 実施の形態1に係る割り込み処理の手順を示すフローチャートである。 実施の形態1に係る割り込み処理を説明するための図である。 比較例に係る割り込み処理を説明するための図である。 実施の形態2に係る1つのチャネルに対応するスレッドバインドレジスタの構成を示す模式図である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1に本実施の形態に係るマルチスレッドプロセッサ1を含むプロセッサシステムのブロック図を示す。本実施の形態に係るプロセッサシステムでは、システムバスを介してマルチスレッドプロセッサ1とメモリ2が接続される。なお、図示はしていないが、システムバスには、入出力インタフェースなどの他の回路も接続されるものとする。
まず、本実施の形態に係るマルチスレッドプロセッサ1について説明する。マルチスレッドプロセッサ1は、複数のハードウェアスレッドを備えている。ここで、この複数のハードウェアスレッドは1つのCPU内において構成されている。ハードウェアスレッドは、スレッドプログラムカウンタ、命令メモリ、汎用レジスタ、及び制御レジスタ(本実施の形態ではパイプライン制御回路16に内蔵されるものとする)等の回路群により構成される。
ここで、ハードウェアスレッドとは、マルチスレッドプロセッサ1に内蔵されるスレッドプログラムカウンタにより出力される命令フェッチアドレスに従って、命令メモリから読み出される一連の命令群により構成される命令流を生成する系のことを言う。つまり、1つのハードウェアスレッドにより生成される命令流に含まれる命令は、互いに関連性の高い命令である。本実施の形態では、マルチスレッドプロセッサ1が複数のスレッドプログラムカウンタを備えることでその数に応じた数のハードウェアスレッドが実装される。以下では、マルチスレッドプロセッサ1について更に詳細に説明する。
図1に示すようにマルチスレッドプロセッサ1は、演算回路10、割り込みコントローラ11、PC生成回路12、スレッドプログラムカウンタTPC0〜TPC3、セレクタ13、18、命令メモリ14、命令バッファ15、パイプライン制御回路16、命令フェッチコントローラ17、スレッドスケジューラ19を有する。
演算回路10は、セレクタ18によって選択されたハードウェアスレッドが生成する命令に基づき演算処理を実行する。より具体的には、演算回路10は、命令デコーダ21、実行ユニット22、データレジスタ23を有する。命令デコーダ21は受信した命令をデコードして、実行ユニット22に対して演算制御信号SCを出力する。また、命令デコーダ21は、命令のデコード結果に基づきデータの格納位置を示すデータレジスタアドレスRaddの出力を行う。実行ユニット22は、演算制御信号SCに応じて各種の演算を実行する。なお、実行ユニット22は、複数の実行ステージを有し、パイプライン処理により演算を行う。
また、実行ユニット22において実行された演算結果は、その演算結果の種類に応じてPC生成回路12、メモリ2、データレジスタ23に送信される。データレジスタ23は、実行ユニット22において用いられるデータが格納される。そして、データレジスタ23は、データレジスタアドレスRaddにより指定したアドレスのデータを出力する。図1に示す例では、データレジスタ23は、データレジスタアドレスRaddに応じてデータaとデータbとを出力する形態となる。また、データレジスタ23は、データレジスタアドレスRaddにより指定されるアドレスに実行ユニット22が出力する演算結果を格納する。
割り込みコントローラ11は、割り込み要求信号を受けて、マルチスレッドプロセッサ1内に割り込み処理の実行を指示する割り込み指示信号を出力する。より具体的には、割り込みコントローラ11は、割り込み要求信号を受信すると、割り込み要因や割り込み処理の優先度等を判定し、当該割り込み要因に関連した処理を行うようにPC生成回路12及びパイプライン制御回路16に割り込み処理の実行を指示する。この割り込み要求は、マルチスレッドプロセッサ1が出力するものの他に、マルチスレッドプロセッサ1以外の回路からも出力される。
PC生成回路12は、システムバスを介して入力される新たなプログラム命令信号、割り込みコントローラ11が出力する割り込み指示信号及び実行ユニット22における処理に基づき出力される分岐指示信号を受けて、プログラムカウント更新値を生成する。そして、PC生成回路12は、プログラムカウント更新値をスレッドプログラムカウンタTPC0〜TPC3のいずれかに与える。なお、PC生成回路12は、生成したプログラムカウント更新値をいずれのスレッドプログラムカウンタに与えるかを判断する機能も有する。
スレッドプログラムカウンタTPC0〜TPC3は、処理すべき命令が格納される命令メモリ14のアドレス(このアドレスを命令フェッチアドレスIMaddと称す)を生成する。また、スレッドプログラムカウンタTPC0〜TPC3は、PC生成回路12からプログラムカウント更新値が与えられた場合は、命令フェッチアドレスIMaddをプログラムカウント更新値に応じて更新する。一方、スレッドプログラムカウンタTPC0〜TPC3は、プログラムカウント更新値の入力がない場合は、アドレスを昇順に計算し、連続する次の命令フェッチアドレスを算出する。なお、図1においては、スレッドプログラムカウンタの数を4つとしたが、プログラムスレッドカウンタの数は、マルチスレッドプロセッサの仕様に応じて任意に設定することができる。
セレクタ13は、命令フェッチコントローラが出力するスレッド指定信号に応じてスレッドプログラムカウンタTPC0〜TPC3のうちいずれか1つを選択し、選択したスレッドプログラムカウンタが出力する命令フェッチアドレスIMaddを出力する。なお、図1のセレクタ13において入力端子に0〜4の数字を付したが、この数字は、ハードウェアスレッドの番号を示すものである。
命令メモリ14は、複数のハードウェアスレッドにより共用されるメモリ領域である。命令メモリ14は、マルチスレッドプロセッサ1において実行される演算で用いられる各種命令が格納される。そして、命令メモリ14は、セレクタ13を介して入力される命令フェッチアドレスIMaddにより指定された命令を出力する。このとき、命令メモリ14は、セレクタ13がスレッドプログラムカウンタTPC0〜TPC3のいずれが出力した命令フェッチアドレスIMaddであるかを判別し、判別結果に応じて命令の出力先を振り分ける。
本実施の形態では、命令バッファ15は、スレッドプログラムカウンタTPC0〜TPC3に対応した命令バッファ領域BUF0〜BUF3を有する。そこで、命令メモリ14は、命令フェッチアドレスIMaddの出力元に応じて命令バッファ領域BUF0〜BUF3のいずれかに読み出された命令を振り分ける。なお、命令メモリ14は、メモリ2に含まれる所定のメモリ領域であっても良い。また、命令バッファ領域BUF0〜BUF3は、FIFO(First In First Out)形式のバッファ回路である。また、命令バッファ領域BUF0〜BUF3は、1つのバッファ内において領域分割されたものでも良く、分離された領域に形成されたものであっても良い。
パイプライン制御回路16は、命令バッファ15の先頭に格納された命令と実行ユニット22において実行されている命令とをモニタする。そして、パイプライン制御回路16は、割り込みコントローラ11から割り込み指示信号が入力された場合には、割り込み処理に関係するハードウェアスレッドに属する命令を廃棄する指示を命令バッファ15及び実行ユニット22に対して行う。
命令フェッチコントローラ17は、命令バッファ15に格納されている命令の個数に応じていずれのハードウェアスレッドに属する命令をフェッチすべきかを判断し、その判断結果に基づきスレッド指定信号を出力する。例えば、命令フェッチコントローラ17は、命令バッファ領域BUF0に格納される命令キューの数が他の命令バッファ領域に格納される命令キューの数よりも少なければ、0番のハードウェアスレッドに属する命令をフェッチすべきと判断し、0番のハードウェアスレッドを示すスレッド指定信号を出力する。これにより、セレクタ13は、スレッドプログラムカウンタTPC0を選択する。なお、命令フェッチコントローラ17は、ラウンドロビン方式による手順で選択するハードウェアスレッドを決定しても良い。
セレクタ18は、第1のセレクタとして機能するセレクタである。セレクタ18は、スレッドスケジューラ19が出力するスレッド選択信号TSELに応じて命令バッファ領域BUF0〜BUF3のいずれか1つを選択し、選択した命令バッファ領域から読み出した命令を演算回路10に出力する。つまり、セレクタ18は、スレッド選択信号TSELに応じて複数のハードウェアスレッドから1つのハードウェアスレッドを選択し、選択したハードウェアスレッドが出力する命令を演算回路10に出力する。なお、セレクタ18においても、入力端子に0〜4の数字を付したが、この数字は、ハードウェアスレッドの番号を示すものである。
スレッドスケジューラ19は、予め設定されたスケジュールに従って、複数のハードウェアスレッドのうち次の実行サイクルにおいて実行される1つのハードウェアスレッドを指定するスレッド選択信号TSELを出力する。つまり、スレッドスケジューラ19は、複数のハードウェアスレッドのどのような順序で処理するかをスケジュールにより管理し、そのスケジュールに沿った順序でハードウェアスレッドにより生成される命令が実行されるようにスレッド選択信号TSELを出力する。なお、スレッドスケジューラ19は、マスク信号MSKが入力された場合、マスク信号MSKが示すハードウェアスレッドを選択することを回避する。なお、本実施の形態に係るマルチスレッドプロセッサ1では、このスケジュールをマルチスレッドプロセッサ1の起動の直後に実行される管理プログラムにより設定する。
次に、図2を用いて、割り込みコントローラ11、PC生成回路12及びパイプライン制御回路16の詳細について説明する。図2に示すように、割り込みコントローラ11はプライオリティ判定部111及びスレッド判定部112を備えている。ここで、スレッド判定部112はスレッドバインドレジスタ113及びセレクタ114を備えている。また、パイプライン制御回路16は、上述のように、システムレジスタ161を備えている。さらに、システムレジスタ161は、割り込み許可レジスタ161aを備えている。
プライオリティ判定部111は、複数の割り込み要求信号が時間的に重複して入力された場合に、割り込み要求信号の優先度を判定し、優先度の高い割り込み要求信号を優先して出力する。ここで、本実施の形態における割り込み要求信号はnチャネルすなわちn個の割り込み要因に対応したものである。
スレッド判定部112は、割り込み要求のチャネル情報CHに基づいて、当該割り込み要求を処理すべきスレッドを判定する。上述の通り、スレッド判定部112は、スレッドバインドレジスタ113及びセレクタ114を備えている。スレッドバインドレジスタ113には、割り込み要求のチャネル毎に、当該割り込み要求を処理すべきすなわち当該割り込み要求に関連付けられたハードウェアスレッド番号が書き込まれている。図2では、チャネル毎のレジスタが、「INT_CTR_1」〜「INT_CTR_n」で示されている。このチャネル毎のレジスタ「INT_CTR_1」〜「INT_CTR_n」は、それぞれセレクタ114に接続されている。セレクタ114は、割り込み要求信号のチャネル情報CHに基づいて、当該割り込み要求を処理すべきハードウェアスレッド情報HWTを、PC生成回路12及びパイプライン制御回路16へ出力する。
ここで、図3を用いて、本実施の形態に係るスレッドバインドレジスタ113におけるチャネル毎のレジスタの定義について説明する。図3に示すように、チャネル毎のレジスタ(図2の「INT_CTR_1」〜「INT_CTR_n」のいずれか1つに対応)には、バインドフラグとハードウェアスレッド番号とが書き込まれている。バインドフラグは、当該チャネルの割り込み要求と書き込まれたハードウェアスレッド番号とが関連付けられたものか否かを示している。具体的には、バインドフラグが1の場合関連付け有り、0の場合関連付けなしなどとすればよい。ハードウェアスレッド番号には、本実施の形態ではハードウェアスレッド番号0〜3のいずれか1つが書き込まれている。ここで、関連付けが有れば、書き込まれたハードウェアスレッド番号がハードウェアスレッド情報HWTとして出力される。この場合、PC生成回路12は、指定されたスレッドプログラムカウンタTPCのプログラムカウント更新値を生成する。一方、関連付けが無ければ、その旨のハードウェアスレッド情報HWTが出力される。この場合、PC生成回路12は、スレッドプログラムカウンタTPC0〜TPC3のいずれかのプログラムカウント更新値を生成する。
次に、図2を用いて、動作について説明する。割り込みコントローラ11に入力された割り込み要求信号REQは、プライオリティ判定部111を介して、PC生成回路12及びパイプライン制御回路16へ入力される。また、割り込み要求信号に基づくチャネル情報CHがスレッド判定部112へ入力される。このチャネル情報CHはスレッド判定部112内のセレクタ114へ入力されると共に、PC生成回路12及びパイプライン制御回路16へ出力される。そして、上述の通り、セレクタ114は、割り込み要求信号のチャネル情報CHに基づいて、当該割り込み要求を処理すべきハードウェアスレッドの情報HWTを、PC生成回路12及びパイプライン制御回路16へ出力する。なお、図1において割り込みコントローラ11が出力する割り込み指示信号には、上記割り込み要求信号REQ、チャネル情報CH、ハードウェアスレッド情報HWTの3つが含まれる。
これら3つの信号が入力されると、PC生成回路12は、パイプライン制御回路16のシステムレジスタ161内の割り込み許可レジスタ161aを参照する。そして、割り込み許可フラグを取得した後、割り込み要求信号REQ、チャネル情報CH、ハードウェアスレッド情報HWTに基づいて、スレッドプログラムカウンタTPC0〜TPC3のいずれかのプログラムカウント更新値を生成し、割り込み処理を開始する。
次に、図4のフローチャートを用いて、本実施の形態に係る割り込み処理の手順について説明する。まず、割り込みコントローラ11に割り込み要求信号が入力されると、スレッド判定部112が、スレッドバインドレジスタ112のうち当該チャネルのレジスタに格納された値を参照する(ST1)。
次に、スレッド判定部112は、当該割り込み要求が所定のハードウェアスレッドに関連付けられたものすなわちバインドされたものであるか否か判定する(ST2)。当該割り込み要求が所定のハードウェアスレッドに関連付けられている場合(ST2YES)、PC生成回路12は、該当ハードウェアスレッドの割り込み許可フラグを取得する(ST3)。次に、割り込み可能であれば(ST4YES)、PC生成回路12は、プログラムカウント更新値を出力し、割り込み処理を実行する(ST5)。これにより、割り込み処理が完了する。一方、割り込み不可能であれば(ST4NO)、PC生成回路12は、割り込み処理を保留し(ST6)、再度割り込み許可フラグを取得する(ST3)。
一方、当該割り込み要求が所定のハードウェアスレッドに関連付けられていない場合(ST2NO)、当該割り込み要求は、いずれのハードウェアスレッドにより処理されても良い。そのため、割込み要求を受けた際に動作していたハードウェアスレッドの割込み許可フラグを取得する。(ST7)。次に、割り込み可能であれば(ST8YES)、PC生成回路12は、プログラムカウント更新値を出力し、割り込み処理を実行する(ST9)。これにより、割り込み処理が完了する。一方、割り込み不可能であれば(ST8NO)、割り込み処理を保留し(ST10)、再度割り込み許可フラグを取得する(ST7)。
次に、図5及び6を用いて、本発明の効果について説明する。まず、図6は比較例に係る割り込み処理を説明するための図である。ここでは、図6に一例として示すように、ハードウェアスレッド0、ハードウェアスレッド1、ハードウェアスレッド2、ハードウェアスレッド3のCPU占有時間のスケジュールが、全体の50%、35%、10%、5%であるとする。ここで、点線で示したタイミングで割り込み処理が発生し、全体の20%が割り込み処理に用いられた場合を考える。各ハードウェアスレッドにおける斜線部が割り込み処理時間である。比較例の場合、いずれのハードウェアスレッドでも、均等に20%ずつCPU実効占有時間が減少する。具体的には、ハードウェアスレッド0、ハードウェアスレッド1、ハードウェアスレッド2、ハードウェアスレッド3のCPU実効占有時間は、それぞれ40%、28%、8%、4%となる。
このように、比較例では、厳密な時間管理が不要な割り込み要求が、厳密な時間管理が必要な処理を実行する所定のハードウェアスレッドに割り当てられ、厳密な時間管理が必要な他の処理に致命的な悪影響を及ぼし、システム全体としての信頼性に劣るおそれがある。また、割り込み情報とハードウェアスレッドとが関連付けられていないため、例えば厳密な時間管理が必要な割り込み要求を、厳密な時間管理が必要な処理を実行する所定のハードウェアスレッドに割り当てることができず、システム全体としての信頼性に劣るおそれがある。
図5は、実施の形態1に係る割り込み処理を説明するための図である。図5では、ハードウェアスレッド1に関連付けられた割り込み要求を処理する様子が示されている。この場合、ハードウェアスレッド1において全体の20%のCPU実効占有時間が減少する。具体的には、ハードウェアスレッド0、ハードウェアスレッド1、ハードウェアスレッド2、ハードウェアスレッド3のCPU実効占有時間は、それぞれ50%、15%、10%、5%となる。
このように、本実施の形態では、割り込み情報とハードウェアスレッドとが関連付けられているため、例えば厳密な時間管理が必要な割り込み要求を、厳密な時間管理が必要な処理を実行する所定のハードウェアスレッドに割り当てることができ、システム全体としての信頼性を確保することができる。また、厳密な時間管理が不要な割り込み要求が、厳密な時間管理が必要な処理を実行する所定のハードウェアスレッドに割り当てられることもない。また、割り込み処理における各ハードウェアスレッドの独立性が高まり、システム設計も容易になる。さらに、重要度は低いが頻度が高い割り込みに対し、専用のハードウェアスレッドを割り当てることにより、システム全体のパフォーマンスを下げずに対処することもできる。
実施の形態2
次に、図7を用いて、実施の形態2について説明する。図7は、実施の形態2におけるチャネル毎のレジスタ(図2の「INT_CTR_1」〜「INT_CTR_n」のいずれか1つに対応)の定義である。すなわち、実施の形態1における図3に相当するものである。その他の構成は同様であるため、説明を省略する。実施の形態2では、図7に示すように、4つのハードウェアスレッド0〜3毎にフラグが設定されている。
本実施の形態2では、1つの割り込み要求を複数のハードウェアスレッドと関連付けることができる。例えば、あるチャネルの割り込み要求に対し、ハードウェアスレッド0及び1のフラグが0、ハードウェアスレッド2及び3のフラグが1の場合、この割り込みはハードウェアスレッド2及び3のいずれか一方あるいは両方により処理される。また、あるチャネルの割り込み要求に対し、特定のハードウェアスレッド以外の全ハードウェアスレッドにより処理することなどが可能となる。なお、全てのハードウェアスレッドのフラグが1の場合、任意のハードウェアスレッドにより処理可能となり、実施の形態1におけるバインドフラグが0の場合と同様の処理となる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、以上の説明では、説明を明確にするため、記載及び図面が、適宜、簡略化されている。
1 マルチスレッドプロセッサ
2 メモリ
10 演算回路
11 割り込みコントローラ
12 PC生成回路
13、18、114 セレクタ
14 命令メモリ
15 命令バッファ
16 パイプライン制御回路
17 命令フェッチコントローラ
19 スレッドスケジューラ
21 命令デコーダ
22 実行ユニット
23 データレジスタ
111 プライオリティ判定部
112 スレッド判定部
113 スレッドバインドレジスタ
161 システムレジスタ
161a 割り込み許可レジスタ
TPC0〜TCP3 スレッドプログラムカウンタ

Claims (7)

  1. それぞれが独立した命令流を生成する複数のハードウェアスレッドと、
    予め設定されたスケジュールに従って、前記複数のハードウェアスレッドの使用順序を管理するスレッドスケジューラと、
    入力された割り込み要求信号が、前記複数のハードウェアスレッドのいずれかと関連付けられているか否かを判定し、時間管理が必要な割り込み要求信号を、前記スレッドスケジューラにより使用順序が管理された前記複数のハードウェアスレッドのうち当該時間管理が必要な割込要求に関連付けられた所定のハードウェアスレッドに割り当てる割り込みコントローラと、を備えるマルチスレッドプロセッサ。
  2. 前記割り込みコントローラは、割り込み要求信号の複数の割り込み要因のそれぞれに対応した複数のチャネル毎に、当該チャネルの割り込み要求信号と前記複数のハードウェアスレッドのうち少なくとも1つとが関連付けられているか否かを示す情報が予め格納されたレジスタを備え、当該情報に基づき前記判定を行う、
    請求項1に記載のマルチスレッドプロセッサ。
  3. 前記割り込みコントローラは、割り込み要求信号の複数の割り込み要因のそれぞれに対応した複数のチャネル毎に、当該チャネルの割り込み要求信号と前記複数のハードウェアスレッドの全てとが関連付けられているか否かを示す情報が予め格納されたレジスタを備え、当該情報に基づき前記判定を行う、
    請求項1に記載のマルチスレッドプロセッサ。
  4. 前記割り込みコントローラは、
    入力された割り込み要求信号に関連付けられたハードウェアスレッドがある場合、当該 割り込み要求信号を前記関連付けられたハードウェアスレッドのいずれかに割り当て、
    関連付けられたハードウェアスレッドがない場合、当該割り込み要求信号を前記複数の ハードウェアスレッドのいずれか1つに割り当てる、
    請求項1に記載のマルチスレッドプロセッサ。
  5. 前記割り込みコントローラは、
    割り込み要求信号のチャネル毎の前記レジスタのそれぞれに接続され、かつ、入力された割り込み要求信号のチャネルに基づいて、当該チャネルのレジスタに格納された前記情報を選択するセレクタを、さらに備える、
    請求項2又は3に記載のマルチスレッドプロセッサ。
  6. 前記割り込みコントローラは、
    複数の割り込み要求信号の優先度を判定するプライオリティ判定部をさらに備える、
    請求項1〜5のいずれか一項に記載のマルチスレッドプロセッサ。
  7. 請求項1〜6のいずれか一項に記載のマルチスレッドプロセッサにおける割り込み処理方法であって、
    入力された割り込み要求信号が、前記複数のハードウェアスレッドのうち1つ又は複数と関連付けられているか否かを判定し、
    関連付けられている場合、当該割り込み要求を関連付けられたハードウェアスレッドに割り当てる割り込み処理方法。
JP2012284446A 2012-12-27 2012-12-27 マルチスレッドプロセッサ及びその割り込み処理方法 Pending JP2013058265A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012284446A JP2013058265A (ja) 2012-12-27 2012-12-27 マルチスレッドプロセッサ及びその割り込み処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012284446A JP2013058265A (ja) 2012-12-27 2012-12-27 マルチスレッドプロセッサ及びその割り込み処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008252235A Division JP5173714B2 (ja) 2008-09-30 2008-09-30 マルチスレッドプロセッサ及びその割り込み処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014129887A Division JP2014211890A (ja) 2014-06-25 2014-06-25 マルチスレッドプロセッサ及びその割り込み処理方法

Publications (1)

Publication Number Publication Date
JP2013058265A true JP2013058265A (ja) 2013-03-28

Family

ID=48134009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012284446A Pending JP2013058265A (ja) 2012-12-27 2012-12-27 マルチスレッドプロセッサ及びその割り込み処理方法

Country Status (1)

Country Link
JP (1) JP2013058265A (ja)

Similar Documents

Publication Publication Date Title
JP5173714B2 (ja) マルチスレッドプロセッサ及びその割り込み処理方法
JP6017260B2 (ja) マルチスレッドプロセッサ
JP5173713B2 (ja) マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
JP5173712B2 (ja) マルチスレッドプロセッサ
JP5173711B2 (ja) マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
US9436464B2 (en) Instruction-issuance controlling device and instruction-issuance controlling method
US20100095305A1 (en) Simultaneous multithread instruction completion controller
EP4217855A1 (en) Processor with multiple fetch and decode pipelines
US20050257224A1 (en) Processor with instruction-based interrupt handling
JP2020091751A (ja) 演算処理装置および演算処理装置の制御方法
JP2013058265A (ja) マルチスレッドプロセッサ及びその割り込み処理方法
JP2014211890A (ja) マルチスレッドプロセッサ及びその割り込み処理方法
JP5536862B2 (ja) マルチスレッドプロセッサ
JP5838237B2 (ja) マルチスレッドプロセッサ
JP2014067248A (ja) プロセッサ、割り込み処理方法及び割り込み制御装置
JP5536864B2 (ja) マルチスレッドプロセッサ
JP5770334B2 (ja) マルチスレッドプロセッサ
JP5573038B2 (ja) マルチスレッドプロセッサ及びプログラム
JP5536863B2 (ja) マルチスレッドプロセッサ
JP5946566B2 (ja) マルチスレッドプロセッサにおけるハードウェアスレッドのスケジュール方法
JP5770333B2 (ja) マルチスレッドプロセッサ
JP2023544009A (ja) 複数のopキャッシュパイプラインを有するプロセッサ
JP2012059195A (ja) マルチスレッドプロセッサ
JP2014002555A (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140325