JP2014179119A - マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム - Google Patents

マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム Download PDF

Info

Publication number
JP2014179119A
JP2014179119A JP2014096363A JP2014096363A JP2014179119A JP 2014179119 A JP2014179119 A JP 2014179119A JP 2014096363 A JP2014096363 A JP 2014096363A JP 2014096363 A JP2014096363 A JP 2014096363A JP 2014179119 A JP2014179119 A JP 2014179119A
Authority
JP
Japan
Prior art keywords
priority
interrupt
thread
threads
task
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.)
Granted
Application number
JP2014096363A
Other languages
English (en)
Other versions
JP5792351B2 (ja
Inventor
James Plondke Erich
エリッチ・ジェイムズ・プロンケ
Codrescu Lucian
ルシアン・コドレスキュ
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014179119A publication Critical patent/JP2014179119A/ja
Application granted granted Critical
Publication of JP5792351B2 publication Critical patent/JP5792351B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Abstract

【課題】マルチスレッドプロセッサにおいて、高優先度のスレッドを連続して実行可能なように、割り込みを割り当てる。
【解決手段】マルチスレッドプロセッサ102は割り込みモジュール208とタスクを実行するためのスレッド202とを含み、割り込みモジュール208は、スレッド202によって実行されているタスクのためのタスク優先度に基づいて、各スレッド202の優先度を識別し、少なくともその優先度に基づいてスレッド202に割り込みを割り当てる。
【選択図】図2

Description

ここに開示される発明概念の実施形態は、一般にデータ処理システムの分野に関する。より具体的には、ここに開示される発明概念の実施形態は、マルチスレッドプロセッサ(multi-threaded processor)に割り込み(interrupt)を割り当てることに関する。
マルチスレッドプロセッサは、タスクを処理できるスピードを増大させるために、2以上のスレッドを含むことができる。スレッドは、タスクが処理されるハードウェアであり得る。タスクは、アプリケーションやプログラムのような、システムファンクションに関連する命令シーケンスであり得る。いくつかのアプリケーション又はプログラムは、同時に2以上のタスクと関連付けられる可能性がある。スレッドは、タスクに関連する命令シーケンスを実行することにより、そのタスクを処理又は実行することができる。
あるスレッドがあるタスクを処理すると同時に、別のスレッドは別のタスクを処理することができる。処理のステージは、フェッチ(タスクに関連する命令を取得すること)、デコード(命令を演算とオペランドとに分割すること)、レジスタファイルからオペランドを読み出すこと、命令を実行すること、結果をライトバックすることを含み得る。プロセスは、タスクの全命令が実行されるまで、タスク内の次の命令のために繰り返され得る。各タスクは、優先度に関連付けられ、その優先度に基づいてスレッドに割り当てられ得る。例えば、ソフトウェアは各タスクに優先度を割り当てることができ、スケジューラは、タスクを処理する準備ができているスレッドを提供するための、最も高い優先度を有する次のタスクを決定することができる。
スレッドは、割り込みを処理することもでき得る。割り込みは、ソフトウェアによって生成された、又はシステムデバイスからの割り込みハンドラに関連する通知であり得る。割り込みハンドラは、スケジューリングされていないタスクであるルーチンであり得る。割り込みが受け取られたとき、それはマルチスレッドプロセッサのいずれかのスレッドによって処理され得る。例えば、第1スレッドが現在タスクの命令を処理していても処理していなくても、また、他のスレッドが待ち状態(wait mode)であっても(すなわち、いずれのタスクも処理していなくても)、割り込みハンドラは、フェッチステージで第1スレッドに供給されることができる。割り込みを処理することは、スレッドがタスクの命令を処理することを中断することと、割り込みハンドラに関連する命令シーケンスを処理することとを含む。
割り込みを処理するために現在のタスクを処理することを中断するスレッドは、高優先度のタスクを処理することによるように、高優先度のスレッドであるかもしれない。1以上のスレッドが待ち状態である場合、又は割り込みを処理するために処理中の低優先度のスレッドが利用可能である場合、高優先度のスレッドが高優先度のタスクを処理し続け、割り込みのためにその処理を中断しないことが望ましい。
したがって、他のスレッドが割り込みの処理のために利用可能であるときに、高優先度のスレッド上で割り込みを実行することによるオーバヘッドを減らすために、割り込みを割り当てることができるマルチスレッドプロセッサのためのシステム及びプロセスが望ましい。
実施形態では、マルチスレッドプロセッサが記述される。マルチスレッドプロセッサは、割り込みモジュールとタスクを実行するためのスレッドとを含む。各スレッドはタスクを実行することができる。割り込みモジュールは、スレッドそれぞれの優先度を識別することができ、少なくともその優先度に基づいて、スレッドの内の1つに割り込みを割り当てることができる。
この実例となる実施形態は、ここに開示された発明概念を限定又は定義することを意図せず、それらの理解を支援するための例を提供することを意図する。本開示の他の態様、利点及び特徴は、次のセクション、すなわち、図面の説明、詳細な説明及び特許請求の範囲を含む出願全体の検討後に明らかになるであろう。
添付の図面を参照して後続する詳細な説明が読まれるとき、ここに開示された、本願発明概念のこれら及び他の特徴、態様及び利点はより理解される。
図1は、プロセッサスレッドに割り込みを割り当てるプロセッサユニットの例を示す概略図である。 図2は、図1のプロセッサユニットの実施形態を示す概略図である。 図3は、図1のプロセッサユニットの第2実施形態を示す概略図である。 図4は、プロセッサスレッドに割り込みを割り当てる典型的な処理を示すフローチャートである。 図5は、プロセッサユニットの実施形態を含み得るポータブル通信デバイスの例を示す概略図である。 図6は、プロセッサユニットの実施形態を含み得る携帯電話の例を示す概略図である。 図7は、プロセッサユニットの実施形態を含み得る無線インターネットプロトコル電話の例を示す概略図である。 図8は、プロセッサユニットの実施形態を含み得るポータブルデジタルアシスタントの例を示す概略図である。 図9は、プロセッサユニットの実施形態を含み得るオーディオファイルプレーヤの例を示す概略図である。
記載の全体にわたって、説明のために、多くの特定の詳細は、ここに開示された発明概念の詳細な理解を提供するために示される。しかしながら、当業者に、ここに開示された発明概念が、これら特定の詳細の一部なしに実行され得ることは明らかであろう。他の事例では、ここに開示された発明概念の基礎をなす原理を不明瞭にしないようにするために、周知の(well-known)構造及びデバイスはブロック図の形式で示される。
ここに開示された発明概念の実施形態は、スレッド優先度に基づいて、スレッドに割り込みを割り当てることができるマルチスレッドプロセッサに関する。スレッドの優先度は、スレッドがタスクを実行しているか否か、及び/又は実行しているタスクの優先度に基づくことができる。いくつかの実施形態では、各タスクの優先度は、ソフトウェアによって生成され、マルチスレッドプロセッサの内のプロセッサユニットによって受け取られる。スレッドがタスクを実行しているとき、スレッドの優先度は、それが実行しているタスクに一致することができる。スレッドが待ち状態にある(つまり、タスクを実行していない)とき、その優先度は、可能な限り低い優先度に対応し得る。いくつかの実施形態では、“1”及び“0”のような2つの優先度は、“1”がスレッドがタスクを実行していることを示すために、又は“0”が待ち状態であることを示すために用いられ、割り込みは、待ち状態及び“0”に関連付けられたスレッドへの割り当てのように、優先度に基づいて割り当てられる。
タスクは、互いに関連する命令シーケンスを含むことができる。プロセッサスレッドは、タスクに関連する命令の各々を処理することによって、タスクを実行することができる。マルチスレッドプロセッサは、あるスレッド上であるタスクに関連する命令シーケンスを、別のスレッド上で別のタスクに関連する命令シーケンスを処理することによって、同時に2以上のタスクを実行し得る。
マルチスレッドプロセッサのプロセッサユニットは、割り込みを受け取り、スレッドの優先度に基づいて割り込みを供給するためのスレッドを決定することができる。例えば、プロセッサユニットは、待ち状態にあるスレッドを識別することができ、また、マルチスレッドプロセッサ内の全てのスレッドがタスクを実行している場合には、最も低い優先度を有するスレッドを識別することができる。プロセッサユニットは、識別されたスレッドに割り込みを割り当てることができる。
割り込みは、デバイス又はシステムソフトウェアから受け取られた、割り込みハンドラのようなスケジューリングされていないイベントに関連する通知であり得る。例えば、割り込みハンドラは、スレッドによって処理される命令シーケンスを含む、スケジューリングされていないタスクであり得る。いくつかの実施形態では、割り込みは優先度を含む。プロセッサユニットは、スレッドの優先度及び割り込みの優先度に基づいて、実行中のタスクを中断するか否かを判定することができる。例えば、プロセッサユニットは、割り込みの優先度がスレッドの優先度よりも高いか否かを判定することができる。割り込みの優先度がスレッドの優先度より高い場合、最も低い優先度を有するスレッドを中断することができ、割り込みはそのスレッドに供給されることができる。割り込みの優先度がスレッドより低い場合、スレッドがその現在のタスクの実行を完了するまで、そうでなければ割り込みよりも高い優先度を有するタスクが実行されるまで、割り込みは待ち行列に入れられる。スレッドの優先度に基づいて割り込みを割り当てることによって、あるプロセッサユニットの実施形態は、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高優先度のタスクがより早く実行されることを可能にすることができる。
いくつかの実施形態によるマルチスレッドプロセッサは、タスクの実行中にデータにアクセスするために、処理システムのさまざまなコンポーネントを伴って実装される可能性がある。図1は、割り込みハンドラ101に関連付けられた割り込みを、プロセッサスレッドに割り当てるためのプロセッサユニット102を含むマルチスレッドプロセッサの一実施形態の実装のブロック図を示す。いくつかの実施形態では、プロセッサユニット102は、タスクキュー内その他のタスクのような、各々がプロセッサスレッドによって実行される命令シーケンスを含む実行可能なタスク104を含む。タスクに関連する命令は、スレッドと、レジスタ又は関連するスレッドの優先度を格納する各スレッドに関連する他の一時記憶コンポーネントとを含む実行モジュール106内で実行することができる。実行モジュール106は、限られた数のスレッドのような、あらゆる数のスレッドを含むことができる。各スレッドは、タスクに関連する命令シーケンスの実行によるように、タスクを実行することができる。プロセッサユニット102は、割り込みを供給するための、そうでなければ、割り込み100とそれらに関連する割り込みハンドラ101との割り当てを決定するためのスレッドを決定することができる割り込みモジュール108を含むこともできる。
各タスクには、オペレーティングシステムによって割り当てられる優先度のような優先度が関連付けられる。プロセッサユニット102、又はオペレーティングシステムのようなソフトウェアは、いつスレッド上でタスクを実行するかを決定するために優先度を用いることができる。いくつかの実施形態では、いくつかのタスクは同時に受け取られ、タスクの優先度に基づいて、限られた数のスレッドに供給される。高い優先度に関連付けられたタスクは、低い優先度に関連付けられたタスクの前に実行されることができる。
プロセッサユニット102は、メモリ管理ユニット110と、そのタスクの実行においてプロセッサユニット102を支援するリソース112に結合することができる。実行中、プロセッサユニット102は、メモリ管理ユニット110を介してリソース112にアクセスし得る。例えば、プロセッサユニット102は、リソース112からのデータ、命令、オペランド、又は他の情報に関する要求を供給することができる。メモリ管理ユニット110は、プロセッサユニット102によって探索された情報がある記憶位置の物理アドレスを提供するために、変換索引(lookaside)バッファ又は他のコンポーネントを使用することによるように、リソース112へのアクセスを管理することができる。
リソース112その他のようなシステムデバイスからの割り込み100は、受け取ることができ、それらが関連する割り込みハンドラ101はプロセッサユニット102によって実行される。割り込みモジュール108は、相対的に低い優先度のスレッドを停止すること、又は割り込みを実行するために待ち状態のスレッドを識別することによるように、実行モジュール106内のスレッドの優先度に基づいて割り込み100に割り当てるように構成される。
プロセッサユニット102の実施形態は、待ち状態のスレッドに割り込みを割り当て、且つ/又はスレッド及び実行待ちのタスクの優先度に基づいて割り込みを割り当てるコンポーネントを含む、スレッドに割り込みを割り当てるためのさまざまなコンポーネントを含むことができる。図2及び図3は、割り込みを割り当てるように構成されたプロセッサユニットの実装の実施形態を示す。図2は、スケーリングされたスレッド優先度を使用した、待ち状態のスレッドへの割り込みの割り当ての例を示す。図3は、二択の優先度に基づくスレッドへの割り込みの割り当ての例を示す。
図2内のプロセッサユニット102は、スレッド202を備える実行モジュールを含むマルチスレッドプロセッサである。説明のため、スレッド202は6つのスレッドA−Fを含む。あらゆる数のスレッドを使用することができる。実行モジュールは、スレッド202それぞれの優先度を格納するスレッドレジスタ204A−Fも含む。各スレッドレジスタは、1つのスレッドに関連付けられる。例えば、スレッドレジスタ204Aは、スレッド202Aに対応する。スレッドがタスクを実行しているとき、タスクの優先度に対応する優先度は、スレッドに関連するレジスタに格納される。スレッドがタスクを実行することを完了するか、そうでなければ停止するとき、関連するレジスタ内の優先度は“null”に変更される。“null”の優先度は、可能な限り低い優先度に相当し得る。スレッドが実行する別のタスクを受け取るとき、タスクの優先度に対応する優先度は関連するレジスタに格納される。
いくつかの実施形態では、レジスタは、優先度に関する値を識別する1以上のビットを格納する。あらゆる優先度のスケールは、相対的なスレッドの優先度を表すために用いることができる。図2に示される実施形態では、“1”と“99”との間の数は、より低い数がより高い優先度を表して使用される。例えば、スレッドレジスタ204Aは、スレッド202Aの相対的な優先度を表す“5”の優先度を含む。スレッドレジスタ204Bは、スレッド202Bの相対的な優先度を表し、スレッド202Aがスレッド202Bより高い優先度を有することを示す“25”の優先度を含む。スレッドレジスタ204Cは、スレッド202Cが現在タスクを実行しておらず、待ち状態にあることを示す“null”の優先度を含む。スレッド優先度値を示すための数値及び“null”を含むスケールは、典型的な目的のために用いられ、相対的なスレッドの優先度と待ち状態のスレッドとのあらゆる識別に用いられる。
実行モジュールは、スレッドレジスタ204につながれる優先度エンコーダ(priority encoder)206も含む。優先度エンコーダ206は、スレッドレジスタ204内の優先度を受け取り、最も低い優先度を含むレジスタを決定するように構成することができる。示された実施形態では、優先度エンコーダ206は、“null”が最も低い優先度であるので、それを含むレジスタに関連するスレッドを決定する。例えば、スレッドレジスタ204はそれぞれ、優先度エンコーダ206に、スレッドレジスタに関連するスレッドの優先度及び識別を供給することができる。図2に示される実施形態では、スレッドレジスタ204Cは“null”を含み、優先度エンコーダ206によって最も低い優先度のスレッドであると識別される。
優先度エンコーダ206によって識別されたスレッドは、優先度エンコーダ206から受け取られた優先度情報に基づいて、割り込みを割り当てるように構成された割り込みモジュール208に提供される。いくつかの実施形態では、優先度エンコーダ206は、割り込みモジュール208に優先度情報を継続的に供給する。他の実施形態では、優先度エンコーダ206は、割り込みモジュール208から優先度情報の要求を受け取った後に、割り込みモジュール208に優先度情報を供給する。
割り込みモジュール206は、割り込みを受け取り、それをスレッド202のうちの1つに割り当てることができる。いくつかの実施形態では、割り込みモジュール206は、割り込みの優先度を決定し、割り込みを割り当てるために優先度エンコーダ206から受け取ったスレッド優先度に加えて、割り込み優先度を使用する。他の実施形態では、割り込みモジュール206は割り込みの優先度を決定せずに、割り込みを割り当てる。割り込みモジュール206は、待ち状態のスレッドのような最も低い優先度を有するスレッドを識別することにより、割り込みを割り当て、識別されたスレッドに割り込みを供給することができる。例えば、スレッド202Cが、待ち状態であるような最も低い優先度スレッドであるので、割り込みモジュール208はスレッド202Cを識別し、割り込みをスレッド202Cに供給する。スレッド202Cは、高い優先度のスレッドのような他のスレッドの実行を中断させることなく、割り込みを実行する。
全てのスレッド202がタスクを実行している場合、割り込みモジュール208はさらに、低い優先度のスレッドに割り込みを供給するように構成することができる。低い優先度のスレッドは、タスクの実行を中断し、割り込みに関連する割り込みハンドラの命令を実行することにより、割り込みの処理を開始することができる。例えば、スレッド202Cが“17”の優先度を有するタスクを実行している場合、優先度エンコーダ206は、最も低い優先度を有するものとしてスレッド202Eを識別し、割り込みモジュール208に202Eの識別を提供する。割り込みモジュール208は、スレッド202E内で実行中のタスクを中断し、実行のための割り込みを受け取ることができる。例えば、スレッド202Eは、タスクに関連する命令シーケンスの内の命令の実行を中断し、割り込みに関連する割り込みハンドラの命令の実行を開始し得る。スレッド202Eは、より高い優先度のスレッドを中断させずに、割り込みを実行する。スレッド202E内で形式的に実行するタスクは、スレッドが実行を完了し、別のタスクを実行する準備ができるまで、止められ得る。
いくつかの実施形態では、割り込みは、スレッドが待ち状態であるかタスクを実行中であるかを示すような、より単純なスレッド優先度に基づいて割り当てられることができる。図3は、スレッド302A−Fと、スレッド302A−Fに対応するスレッドレジスタ304A−Fとを備える実行モジュールを含むプロセッサユニット102の実施形態を示す。スレッドレジスタ304A−Fはそれぞれ、各スレッドの優先度を示すための“1”又は“0”を含む。“1”は、関連するスレッドが現在タスクを実行していることを示すことができ、“0”は、関連するスレッドが待ち状態であることを示すことができる。例えば、スレッドは304A、304C、304D、及び304Fはそれぞれ、関連するスレッド302A、302C、302D、及び302Fがタスクを実行していることを示す “1”を含む。スレッドレジスタ304B及び304Eは、関連するスレッド302B及び302Eがタスクを実行しておらず、待ち状態であることを示す“0”を含む。
スレッドレジスタ304A−Fは、割り込みモジュール308へのスレッド優先度を識別する優先度エンコーダ306につながれる。いくつかの実施形態では、優先度エンコーダ306は、スレッドレジスタ304A−Fからの優先度に基づいて、割り込みモジュール308への待ち状態の1以上のスレッドを識別するように構成される。図3に示される実施形態では、例えば、優先度エンコーダ306は、割り込みモジュール308へのスレッド302B及び302Eを識別し得る。割り込みモジュール308は、割り込みを中止し受諾するために、現在タスクを処理しているスレッドに対する要求なしにそれを処理することができる、識別されたスレッド302B又は302Eの内の1つに割り込みを供給することができる。
いくつかの実施形態では、全てのスレッド302A−Fがタスクを処理していて、スレッドレジスタ304A−Fの各々は、関連するスレッドそれぞれが現在タスクを処理していることを示す“1”を含む可能性がある。優先度エンコーダ306は、全てのスレッド302A−Fがタスクを処理しているという指示を、割り込みモジュール308に供給するように構成することができる。割り込みモジュール308は、スレッド302A−Fの内の1つに、割り込みとその割り込みハンドラを供給することができる。スレッドは、そのタスクの処理を中断し、その割り込みハンドラに関連する命令を実行することにより割り込みの処理を開始できる。
上述されたように、さまざまな方法は、割り込みをマルチスレッドプロセッサ内に割り当てるために実装することができる。割り当て方法のある実施形態は、スレッド優先度、割り込み優先度、及び/又はタスク待ち行列内のタスクの優先度に基づいて割り込みを割り当てることができる。図4は、スレッド優先度と割り込み優先度に基づいて割り込みを割り当てる一実施形態による典型的な割り込み割り当て方法を示す。
プロセッサユニットが実行のためのタスク及び各タスクの優先度を受け取るとき、方法はブロック402で開始され得る。タスクは、ソフトウェアプログラム又は他のシステムアプリケーションから受け取られ得、マルチスレッドプロセッサ内のスレッドによって実行される命令シーケンスを含み得る。各タスクの優先度は、オペレーティングシステムのようなシステムソフトウェアによって決定され得る。いくつかの実施形態では、プロセッサユニットは、タスクが受け取られるとき、各タスクの優先度を決定するように構成されたロジックを含む。
ブロック404では、各タスクはスレッド上で実行される。タスクの数が、タスクの実行に利用可能なスレッドの数を超過する場合。いくつかの実施形態では、スケジューラは、各タスクの優先度を識別し、実行の最初に、スレッドに最も高い優先度のタスクを供給する。
ブロック406では、プロセッサユニットは、タスクの優先度に基づいて各スレッドの優先度を識別する。いくつかの実施形態では、プロセッサユニットはスレッドを監視し、各スレッド上で実行するタスクの優先度を識別する。各スレッドの優先度は、スレッド上で実行するタスクの優先度に対応することがある。プロセッサユニットは、待ち状態であるスレッドの優先度を識別することもできる。プロセッサユニットは、スレッドに関連するレジスタに各スレッドのための優先度を格納できる。
ブロック408では、プロセッサユニットは、システムデバイス又はソフトウェアアプリケーションから割り込みを受け取り、その優先度を決定する。その割り込みは、スケジューリングされていないタスクである割り込みハンドラに関連し得る。いくつかの実施形態では、割り込み優先度は割り込みで受け取られる。例えば、オペレーティングシステムのようなシステムソフトウェアは、割り込みが生成されるときに、割り込みに優先度を割り当てる。他の実施形態では、プロセッサユニットは、メモリ又は他のシステムコンポーネントにアクセスすることによって、割り込みの優先度を読み出す。
ブロック410では、プロセッサユニット内の割り込みモジュールは、割り込み優先度が少なくとも1つのスレッドよりも高いか否かを判定する。いくつかの実施形態では、割り込みモジュールは、スレッドの各々の優先度を受け取り、それらを割り込み優先度と比較する。割り込み優先度が少なくとも1つのスレッドより高い場合、ブロック412では、最も低い優先度を有するスレッドが識別され、そのタスクを処理することが中断され、割り込みに関連する割り込みハンドラが最も低い優先度を有するスレッドに供給される。割り込み優先度が少なくとも1つのスレッドよりも高くない場合、ブロック414で、割り込みはキューに格納される。方法は、割り込み優先度が少なくとも1つのスレッドよりも高いかどうかを判定するためにブロック410に戻り、割り込み優先度が少なくとも1つのスレッドより高いときまで継続する。いくつかの実施形態では、割り込みはキューに格納され、スレッドが利用可能であり、且つ割り込みがキュー内の最も高い優先度の割り込み及び/又はタスクであるとき、スレッドに供給される。
上述の特徴を含む例のデバイス
プロセッサスレッドに割り込みを割り当てることができるプロセッサユニットは、デジタル信号プロセッサのような任意のタイプのプロセッサ内に含まれ得る。図5から図9の概略図は、マルチスレッドプロセッサのスレッドに割り込みを割り当てるために、プロセッサユニットを組み込み得る例のデバイスを示す。
図5は、ポータブル通信デバイス500の典型的な実施形態を示す図である。図5の概略図に示されるように、ポータブル通信デバイスはデジタル信号プロセッサ(DSP)504を含む、オンチップシステム502を含む。図5の概略図は、さらに、DSP504及びディスプレイ508につながれるディスプレイコントローラ506を示す。さらに、入力デバイス510はDSP504につながれる。図のように、メモリ512はDSP504につながれる。また、コーダ/デコーダ(CODEC)514は、DSP504につながれ得る。スピーカー516及びマイクロホン518は、CODEC514につながれ得る。
図5の概略図は、デジタル信号プロセッサ504につながれた無線コントローラ520と無線アンテナ522とをさらに示す。特定の実施形態では、電源524はオンチップシステム502につながれる。ディスプレイ508、入力デバイス510、スピーカー516、マイクロホン518、無線アンテナ522、及び電源524は、オンチップシステム502の外側にあり得る。しかしながら、各々は、オンチップシステム502のコンポーネントにつなぐことができる。
特定の実施形態では、DSP504は、図2又は図3を参照して記述されるように、スレッドに割り込みを割り当て、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高い優先度のタスクがより早く実行されることを可能にすることができるプロセッサユニット562を含む。例えば、DSP504は、各スレッドが、そのスレッドが処理しているタスクの優先度に基づいて優先度を割り当てられ得る、マルチスレッドプロセッサであり得る。プロセッサユニット562は、割り込みを受け取り、スレッドそれぞれの優先度に基づいて、タスクを処理していないスレッド又は低い優先度のスレッドのような、処理するために割り込みを送るスレッドを決定することができる。
図6は、携帯電話600の典型的な実施形態を示す図である。図のように、携帯電話600は、相互に連結されるデジタルベースバンドプロセッサ604とアナログベースバンドプロセッサ606とを含む、オンチップシステム602を含む。特定の実施形態では、デジタルベースバンドプロセッサ604は、デジタル信号プロセッサである。図6の概略図で示されるように、ディスプレイコントローラ608とタッチスクリーンコントローラ610とは、デジタルベースバンドプロセッサ604につながれる。同様に、オンチップシステム602の外部のタッチスクリーンディスプレイ612は、ディスプレイコントローラ608とタッチスクリーンコントローラ610とにつながれる。
図6の概略図は、ビデオエンコーダ614、例えば、位相交代ライン(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、又は全国テレビ方式委員会(NTSC)エンコーダが、デジタルベースバンドプロセッサ604につながれることをさらに示す。さらに、ビデオ増幅器616は、ビデオエンコーダ614とタッチスクリーンディスプレイ612とにつながれる。また、ビデオポート618はビデオ増幅器616につながれる。ユニバーサルシリアルバス(USB)コントローラ620は、デジタルベースバンドプロセッサ604につながれる。さらに、USBポート622はUSBコントローラ620につながれる。メモリ624及び加入者識別モジュール(SIM)カード626も、デジタルベースバンドプロセッサ604につながれ得る。さらに、図6の概略図で示されるように、デジタルカメラ628はデジタルベースバンドプロセッサ604につながれ得る。典型的な実施形態では、デジタルカメラ628は、電荷結合素子(CCD)カメラ又は相補型金属酸化膜半導体(CMOS)カメラである。
さらに図6の概略図で示すように、ステレオオーディオCODEC630は、アナログベースバンドプロセッサ606につながれ得る。さらに、オーディオ増幅器632は、ステレオオーディオCODEC630につながれ得る。典型的な実施形態では、第1ステレオスピーカー634及び第2ステレオスピーカー636は、オーディオ増幅器632につながれる。マイクホン増幅器638も、ステレオオーディオCODEC630につながれ得る。さらに、マイクロホン640はマイクホン増幅器638につながれ得る。特定の実施形態では、周波数変調(FM)ラジオチューナ642はステレオオーディオCODEC630につながれ得る。FMアンテナ644は、FMラジオチューナ642につなぐことができる。さらに、ステレオヘッドホン646は、ステレオオーディオCODEC630につながれ得る。
図6の概略図は、アナログベースバンドプロセッサ606につながれ得る無線周波数(RF)トランシーバ648をさらに示す。RFスイッチ650は、RFトランシーバ648及びRFアンテナ652につながれ得る。キーパッド654は、アナログベースバンドプロセッサ606につながれ得る。さらに、マイクロホンを備えるモノヘッドセット656は、アナログベースバンドプロセッサ606につながれ得る。さらに、バイブレータデバイス658は、アナログベースバンドプロセッサ606につながれ得る。図6の概略図は、さらにオンチップシステム602につながれ得る電源660を示す。特定の実施形態では、電源660は、携帯電話600のさまざまなコンポーネントに電力を供給する直流(DC)電源である。さらに、特定の実施形態では、電源は、再充電可能なDCバッテリー、又は交流(AC)電源につながれる交流・直流変換から導かれるDC電源である。
図6の概略図のように、タッチスクリーンディスプレイ612、ビデオポート618、USBポート622、カメラ628、第1ステレオスピーカー634、第2ステレオスピーカー636、マイクロホン640、FMアンテナ644、ステレオヘッドホン646、RFスイッチ650、RFアンテナ652、キーパッド654、モノヘッドセット656、バイブレータ658、及び電源660は、オンチップシステム602の外側にあり得る。特定の実施形態では、デジタルベースバンドプロセッサ604は、図2又は図3を参照して記載されるように、割り込みをスレッドに割り当て、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高い優先度のタスクがより早く実行されることを可能にすることができるプロセッサユニット662を含み得る。例えば、DSP604は、スレッドが処理しているタスクの優先度に基づいて、各スレッドに優先度が割り当てられるマルチスレッドプロセッサであり得る。プロセッサユニット662は、割り込みを受け取り、各スレッドの優先度に基づいて、タスクを処理していないスレッド又は低い優先度のスレッドのような、処理するために割り込みを送るべきスレッドを決定することができる。
図7は、無線インターネットプロトコル(IP)電話700の典型的な実施形態を示す図である。図のように、無線IP電話700は、デジタル信号プロセッサ(DSP)704を含む、オンチップシステム702を含む。ディスプレイコントローラ706は、DSP704につながれ得、ディスプレイ708は、ディスプレイコントローラ706につながれる。典型的な実施形態では、ディスプレイ708は液晶ディスプレイ(LCD)である。図7は、キーパッド710がDSP704につながれ得ることをさらに示す。
フラッシュメモリ712はDSP704につながれ得る。シンクロナスダイナミックアクセスメモリ(SDRAM)714、スタティックランダムアクセスメモリ(SRAM)716、及び電気的消去可能なリードオンリーメモリ(EEPROM)718も、DSP704につながれ得る。図7の概略図は、さらに、発光ダイオード(LED)720がDSP704につながれ得ることを示す。さらに、特定の実施形態では、音声CODEC722は、DSP704につながれ得る。増幅器724は音声CODEC722につながれ得、モノスピーカー726は増幅器724につながれ得る。図7の概略図は、音声CODEC722につながれたモノヘッドセット728をさらに示す。特定の実施形態では、モノヘッドセット728はマイクロホンを含む。
無線ローカルエリアネットワーク(WLAN)ベースバンドプロセッサ730は、DSP704につながれ得る。RFトランシーバ732はWLANベースバンドプロセッサ730につながれ得、RFアンテナ734はRFトランシーバ732につながれ得る。特定の実施形態では、Bluetooth(登録商標)コントローラ736もDSP704につながれ得、Bluetoothアンテナ738はコントローラ736につながれ得る。図7の概略図は、さらに、USBポート740もDSP704につながれる得ることを示す。さらに、電源742は、オンチップシステム702につながれ、無線IP電話700のさまざまなコンポーネントに電力を供給する。
図7の概略図に示すように、ディスプレイ708、キーパッド710、LED720、モノスピーカー726、モノヘッドセット728、RFアンテナ734、Bluetoothアンテナ738、USBポート740、及び電源742は、オンチップシステム702の外側にあり、オンチップシステム702の1以上のコンポーネントにつながれ得る。特定の実施形態では、DSP704は、図2又は図3を参照して示すように、スレッドに割り込みを割り当て、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高い優先度のタスクがより早く実行されるようにすることができるプロセッサユニット762を含む。例えば、DSP704は、各スレッドに、そのスレッドが処理しているタスクの優先度に基づいて、優先度が割り当てられるマルチスレッドプロセッサであり得る。プロセッサユニット762は、割り込みを受け取り、各スレッドの優先度に基づいて、タスクを処理していないスレッド又は低い優先度のスレッドのような、処理するために割り込みを送るべきスレッドを決定することができる。
図8は、ポータブルデジタルアシスタント(PDA)800の典型的な実施形態を示す図である。図のように、PDA800はデジタル信号プロセッサ(DSP)804を含む、オンチップシステム802を含む。タッチスクリーンコントローラ806とディスプレイコントローラ808とは、DSP804につながれる。さらに、タッチスクリーンディスプレイ810は、タッチスクリーンコントローラ806とディスプレイコントローラ808とにつながれる。図8の概略図は、さらにキーパッド812がDSP804につながれ得ることを示す。
特定の実施形態では、ステレオオーディオCODEC826は、DSP804につながれ得る。第1ステレオ増幅器828は、ステレオオーディオCODEC826につながれ得、第1ステレオスピーカー830は第1ステレオ増幅器828につながれ得る。さらに、マイクホン増幅器832はステレオオーディオCODEC826につながれ得、マイクロホン834はマイクホン増幅器832につながれ得る。図8の概略図は、さらに、ステレオオーディオCODEC826につながれ得る第2ステレオ増幅器836と、第2ステレオ増幅器836につながれ得る第2ステレオスピーカー838とを示す。特定の実施形態では、ステレオヘッドホン840もステレオオーディオCODEC826につながれ得る。
図8の概略図は、DSP804につながれ得る802.11コントローラ842と、802.11コントローラ842につながれ得る802.11アンテナ844とを示す。さらに、Bluetoothコントローラ846はDSP804につながれ得、Bluetoothアンテナ848はBluetoothコントローラ846につながれ得る。USBコントローラ850は、DSP804につながれ得、USBポート852はUSBコントローラ850につながれ得る。さらに、スマートカード854、例えばマルチメディアカード(MMC)、セキュアデジタルカード(SD)は、DSP804につながれ得る。さらに、電源856は、オンチップシステム802につながれ得、PDA800のさまざまなコンポーネントに電力を供給し得る。
図8の概略図に示すように、ディスプレイ810、キーパッド812、IrDAポート822、デジタルカメラ824、第1ステレオスピーカー830、マイクロホン834、第2ステレオスピーカー838、ステレオヘッドホン840、802.11アンテナ844、Bluetoothアンテナ848、USBポート852、及び電源856は、オンチップシステム802の外側にあるかもしれないし、オンチップシステム802上の1以上のコンポーネントにつながれるかもしれない。特定の実施形態では、DSP804は、図2又は図3を参照して示すように、スレッドに割り込みを割り当て、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高い優先度のタスクがより早く実行されることを可能にすることができるプロセッサユニット862を含む。例えば、DSP804は、各スレッドに、そのスレッドが処理しているタスクの優先度に基づいて優先度が割り当てられる、マルチスレッドプロセッサであり得る。プロセッサユニット862は、割り込みを受け取り、各スレッドの優先度に基づいて、タスクを処理していないスレッド又は低い優先度のスレッドのような、処理するために割り込みを送るべきスレッドを決定することができる。
図9は、オーディオファイルプレーヤ(例えば、MP3プレーヤ)900の典型的な実施形態を示す図である。図のように、オーディオファイルプレーヤ900は、デジタル信号プロセッサ(DSP)904を含むオンチップシステム902を含む。ディスプレイコントローラ906はDSP904につながれ得、ディスプレイ908はディスプレイコントローラ906につながれる。典型的な実施形態では、ディスプレイ908は液晶ディスプレイ(LCD)である。キーパッド910はDSP904につながれ得る。
図9の概略図でさらに描かれるように、フラッシュメモリ912とリードオンリーメモリ(ROM)914とは、DSP904につながれ得る。さらに、特定の実施形態では、オーディオCODEC916はDSP904につながれ得る。増幅器918はオーディオCODEC916につながれ得、モノスピーカー920は増幅器918につながれ得る。図9の概略図は、マイクロホン入力922とステレオ入力924とがオーディオCODEC916につながれ得ることもさらに示す。特定の実施形態では、ステレオヘッドホン926もオーディオCODEC916につながれ得る。
USBポート928とスマートカード930とは、DSP904につながれ得る。さらに、電源932は、オンチップシステム902につながれ得、オーディオファイルプレーヤ900のさまざまなコンポーネントに電力を供給し得る。
図9の概略図に示されるように、ディスプレイ908、キーパッド910、モノスピーカー920、マイクロホン入力922、ステレオ入力924、ステレオヘッドホン926、USBポート928、及び電源932は、オンチップシステム902の外部にあり、オンチップシステム902上の1以上のコンポーネントにつながれる。特定の実施形態では、DSP904は、図2又は図3を参照して記述されるように、スレッドに割り込みを割り当て、割り込み処理によるレイテンシーのようなオーバヘッドを減らし、且つ/又は高い優先度のタスクがより早く実行されることを可能にすることができるプロセッサユニット962を含む。例えば、DSP904は、各スレッドに、そのスレッドが処理しているタスクの優先度に基づいて優先度が割り当てられる、マルチスレッドプロセッサであり得る。プロセッサユニット962は、割り込みを受け取り、各スレッドの優先度に基づいて、タスクを処理していないスレッド又は低い優先度のスレッドのような、処理するために割り込みを送るべきスレッドを決定することができる。
総則
ここに開示された発明概念の実施形態の上記の記述は、図解と説明の目的でのみ表されており、完全であること、又はここに開示された発明概念を開示された精細な形態に限定することを意図しない。ここに開示された発明概念の精神及び範囲から逸脱することなく、多数の変更及び適用は当業者に明らかである。

Claims (20)

  1. それぞれがタスクを実行することができる複数のスレッドと、
    前記複数のスレッドそれぞれの優先度を識別し、少なくとも前記複数のスレッドの内の一つのスレッドの優先度に基づいて、当該複数のスレッドの内の一つのスレッドに割り込みを割り当てるように構成される割り込みモジュールとを具備するマルチスレッドプロセッサ。
  2. 前記スレッドの優先度は、当該スレッドによって実行されるタスクの優先度に対応する請求項1記載のマルチスレッドプロセッサ。
  3. それぞれが前記複数のスレッドの内の一つに対応し、スレッドの優先度を格納するように構成される複数のレジスタと、
    前記複数のレジスタにつながれ、前記割り込みモジュールのために、最も低い優先度を有する前記複数のスレッドの内の1つを識別するように構成される優先度エンコーダとをさらに具備する請求項1記載のマルチスレッドプロセッサ。
  4. 前記割り込みモジュールは、前記最も低い優先度を有する前記複数のスレッドの内の1つに前記割り込みを割り当てることによって、前記最も低い優先度を有する前記複数のスレッドの1つに前記割り込みを課すように構成され、前記最も低い優先度を有する前記複数のスレッドの内の1つは、タスクを処理することを中断し、前記割り込みを処理するように構成される請求項3記載のマルチスレッドプロセッサ。
  5. 前記割り込みは割り込みハンドラに関連付けられ、
    前記最も低い優先度を有する前記複数のスレッドの内の1つは、前記割り込みハンドラを処理することにより前記割り込みを処理するように構成される請求項4記載のマルチスレッドプロセッサ。
  6. 前記割り込みモジュールは、前記複数のスレッドの内の1以上が待ち状態で有るか否かを決定し、前記待ち状態である複数のスレッドの内の1以上の各々に関する最も低い優先度を決定することによって、前記複数のスレッドの各々に関する優先度を識別するように構成され、
    前記割り込みモジュールは、前記最も低い優先度を有する複数のスレッドの内の1つに割り込みを課すように構成される請求項1記載のマルチスレッドプロセッサ。
  7. 前記割り込みモジュールは、前記複数のスレッドの優先度に基づいて、待ち状態である前記複数のスレッドの内の1つを識別し、前記待ち状態である前記複数のスレッドの内の1つに前記割り込みを課す請求項1記載のマルチスレッドプロセッサ。
  8. 前記マルチスレッドプロセッサは、ポータブル通信デバイス内に配置される請求項1記載のマルチスレッドプロセッサ。
  9. 第1スレッド上で第1タスクを実行することと、
    第2スレッド上で第2タスクを実行することと、
    前記第1タスクの優先度に基づいて、前記第1スレッドの第1優先度を決定することと、
    前記第2タスクの優先度に基づいて、前記第2スレッドの第2優先度を決定することと、
    割り込み優先度を有する割り込みを受け取ることと、
    前記割り込み優先度、前記第1優先度及び前記第2優先度に基づいて、前記割り込みを割り当てることとを具備する方法。
  10. 待ち状態である第3スレッドを識別することをさらに具備し、
    前記割り込みを割り当てることは、前記待ち状態である第3スレッドに基づき、そして前記割り込みを前記第3スレッドに課すことを含む請求項9記載の方法。
  11. 前記割り込みを割り当てることは、
    前記第1優先度が前記第2優先度よりも高いことを決定することと、
    前記第2タスクを停止することと、
    処理するために前記第2スレッドに前記割り込みを供給することとを含む請求項9記載の方法。
  12. 前記割り込みを割り当てることは、
    前記割り込み優先度が前記第2優先度よりも高いことを決定する請求項11記載の方法。
  13. 前記割り込みに関連する割り込みハンドラを処理することによって、前記第2スレッドによって前記割り込み処理することをさらに具備する請求項11記載の方法。
  14. 前記割り込みを割り当てることは、
    前記割り込み優先度が前記第1優先度及び前記第2優先度よりも低いことを決定することと、
    前記割り込みをキューに割り当てることとを含む請求項9記載の方法。
  15. 実行モジュールであって、第1優先度に関連する第1タスクを実行するように構成される第1スレッドと、前記第1優先度に対応する第1スレッドの優先度を格納するように構成される第1レジスタと、第2優先度に関連する第2タスクを実行するように構成される第2スレッドと、前記第2優先度に対応する第2スレッドの優先度を格納するように構成される第2レジスタとを含む実行モジュールと、
    割り込みを受け取り、前記第1スレッドの優先度及び前記第2スレッドの優先度の一部に基づいて、前記割り込みのための割り当てを決定するように構成された割り込みモジュールとを具備するプロセッサユニット。
  16. 前記割り込みモジュールは、
    割り込み優先度が前記第1スレッドの優先度よりも高いことを決定し、
    前記第1スレッドに前記割り込みを供給することによって、前記第1スレッドに前記割り込みを割り当て、
    前記第1スレッドは、前記第1タスクを処理することを停止し、前記割り込みを処理するように構成される請求項15記載のプロセッサユニット。
  17. 前記実行モジュールは、前記第1タスクを格納し、前記割り込み優先度に対応するために前記第1優先度を修正するように構成される請求項16記載のプロセッサユニット。
  18. 前記第1スレッドは、前記割り込みに関連する割り込みハンドラを処理することによって、前記割り込みを処理する請求項16記載のプロセッサユニット。
  19. 前記実行モジュールは、待ち状態であるように構成される第3スレッドと、前記待ち状態を示す第3スレッド優先度を格納するように構成される第3レジスタとを含み、
    前記割り込みモジュールは、前記第3優先度に基づいて、前記割り込みを前記第3スレッドに割り当てるように構成される請求項15記載のプロセッサユニット。
  20. 前記プロセッサユニットは、ポータブル通信デバイスに配置される請求項15記載のプロセッサユニット。
JP2014096363A 2008-09-19 2014-05-07 マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム Expired - Fee Related JP5792351B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/233,688 US8656145B2 (en) 2008-09-19 2008-09-19 Methods and systems for allocating interrupts in a multithreaded processor
US12/233,688 2008-09-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011527930A Division JP5575774B2 (ja) 2008-09-19 2009-09-16 マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム

Publications (2)

Publication Number Publication Date
JP2014179119A true JP2014179119A (ja) 2014-09-25
JP5792351B2 JP5792351B2 (ja) 2015-10-07

Family

ID=41258767

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011527930A Expired - Fee Related JP5575774B2 (ja) 2008-09-19 2009-09-16 マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム
JP2014096363A Expired - Fee Related JP5792351B2 (ja) 2008-09-19 2014-05-07 マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011527930A Expired - Fee Related JP5575774B2 (ja) 2008-09-19 2009-09-16 マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム

Country Status (9)

Country Link
US (1) US8656145B2 (ja)
EP (1) EP2347334B1 (ja)
JP (2) JP5575774B2 (ja)
KR (1) KR101346135B1 (ja)
CN (1) CN102150135B (ja)
HR (1) HRP20161316T1 (ja)
SM (1) SMT201600453B (ja)
TW (1) TW201023043A (ja)
WO (1) WO2010033569A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739242B (zh) * 2009-11-27 2013-07-31 深圳中微电科技有限公司 一种流数据处理方法及流处理器
CN101976206B (zh) * 2010-10-28 2016-04-20 北京中星微电子有限公司 一种中断处理方法和装置
US8713235B2 (en) * 2011-05-02 2014-04-29 Fairchild Semiconductor Corporation Low latency interrupt collector
KR20130021637A (ko) * 2011-08-23 2013-03-06 삼성전자주식회사 멀티 코어 시스템의 인터럽트 할당 방법 및 장치
DE102012220365A1 (de) * 2011-11-10 2013-05-16 Nvidia Corp. Aufgabe-Thread-Feld-Granularität-Ausführung-Präemption
US9411641B2 (en) * 2012-10-04 2016-08-09 Lawrence J. Dickson Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude
US10089142B2 (en) * 2013-08-21 2018-10-02 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh Dynamic task prioritization for in-memory databases
US9460033B2 (en) * 2013-12-27 2016-10-04 Cavium, Inc. Apparatus and method for interrupt collecting and reporting status and delivery information
US9417876B2 (en) * 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9396089B2 (en) 2014-05-30 2016-07-19 Apple Inc. Activity tracing diagnostic systems and methods
US9665398B2 (en) * 2014-05-30 2017-05-30 Apple Inc. Method and apparatus for activity based execution scheduling
US9760511B2 (en) * 2014-10-08 2017-09-12 International Business Machines Corporation Efficient interruption routing for a multithreaded processor
US9753766B2 (en) * 2014-11-25 2017-09-05 Raytheon Company Apparatus and method for allocating resources using prioritization of requests and updating of requests
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
WO2017054139A1 (en) * 2015-09-29 2017-04-06 Shannon Systems Ltd. Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same
CN107193761B (zh) * 2016-03-15 2021-07-27 厦门旌存半导体技术有限公司 队列优先级仲裁的方法与装置
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US10261799B2 (en) 2017-02-28 2019-04-16 International Business Machines Corporation Programmatic implicit multithreading
CN109213581B (zh) * 2017-07-05 2021-06-08 上海寒武纪信息科技有限公司 一种数据处理装置和方法
US20200110635A1 (en) 2017-07-05 2020-04-09 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN107578014B (zh) 2017-09-06 2020-11-03 上海寒武纪信息科技有限公司 信息处理装置及方法
EP3637258A4 (en) 2017-07-05 2021-03-10 Shanghai Cambricon Information Technology Co., Ltd DATA PROCESSING APPARATUS AND METHOD
CN109583577B (zh) 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
KR102408961B1 (ko) * 2017-10-23 2022-06-13 삼성전자주식회사 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치
US10423550B2 (en) * 2017-10-25 2019-09-24 International Business Machines Corporation Managing efficient selection of a particular processor thread for handling an interrupt
TWI639955B (zh) * 2017-11-06 2018-11-01 晨星半導體股份有限公司 多處理器系統及其處理器管理方法
KR102442921B1 (ko) 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
US20190196867A1 (en) * 2017-12-21 2019-06-27 Qualcomm Incorporated System and method of priority-based interrupt steering
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
US10691490B2 (en) * 2018-07-06 2020-06-23 Apple Inc. System for scheduling threads for execution
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4804348A (en) 1987-08-05 1989-02-14 Bondi Francesco Animated toy puppet theater
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JPH04302353A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 対称形マルチプロセッサ計算機のタイマ割込み方式
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
JPH06159941A (ja) 1992-11-24 1994-06-07 Kawasaki Steel Corp 電気炉水冷式出滓口構造
US5511200A (en) * 1993-12-01 1996-04-23 Intel Corporation Method and apparatus for providing an enhanced programmable priority interrupt controller
EP0827085B1 (en) 1996-08-20 2006-03-29 Compaq Computer Corporation Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
JP4302353B2 (ja) 2002-01-25 2009-07-22 マスプロ電工株式会社 保安器
US20060212869A1 (en) 2003-04-14 2006-09-21 Koninklijke Philips Electronics N.V. Resource management method and apparatus
JP2005004562A (ja) 2003-06-13 2005-01-06 Canon Inc マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム
US7774585B2 (en) * 2003-11-12 2010-08-10 Infineon Technologies Ag Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
US7487503B2 (en) * 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
JP2006243865A (ja) 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法
US8195922B2 (en) 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7260663B2 (en) * 2005-04-07 2007-08-21 International Business Machines Corporation System and method for presenting interrupts
US7552236B2 (en) * 2005-07-14 2009-06-23 International Business Machines Corporation Routing interrupts in a multi-node system
US7702889B2 (en) * 2005-10-18 2010-04-20 Qualcomm Incorporated Shared interrupt control method and system for a digital signal processor
US7913255B2 (en) * 2005-10-20 2011-03-22 Qualcomm Incorporated Background thread processing in a multithread digital signal processor
JP4222370B2 (ja) * 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US20070266231A1 (en) 2006-05-15 2007-11-15 Huey-Tyug Chua Portable Electronic Device and Method for Loading Resource Data of the Portable Electronic Device
US7870372B2 (en) * 2006-08-14 2011-01-11 Marvell World Trade Ltd. Interrupt handling

Also Published As

Publication number Publication date
WO2010033569A1 (en) 2010-03-25
CN102150135B (zh) 2015-02-11
JP5575774B2 (ja) 2014-08-20
EP2347334A1 (en) 2011-07-27
KR20110081987A (ko) 2011-07-15
TW201023043A (en) 2010-06-16
US20100077399A1 (en) 2010-03-25
KR101346135B1 (ko) 2013-12-31
JP2012503254A (ja) 2012-02-02
CN102150135A (zh) 2011-08-10
EP2347334B1 (en) 2016-09-14
US8656145B2 (en) 2014-02-18
JP5792351B2 (ja) 2015-10-07
SMT201600453B (it) 2017-01-10
HRP20161316T1 (hr) 2017-02-10

Similar Documents

Publication Publication Date Title
JP5792351B2 (ja) マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム
JP2012503254A5 (ja)
JP6430970B2 (ja) 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行
JP2006243865A (ja) プロセッサおよび情報処理方法
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
JP6199477B2 (ja) ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法
US7853743B2 (en) Processor and interrupt controlling method
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
JP4148223B2 (ja) プロセッサおよび情報処理方法
US8963933B2 (en) Method for urgency-based preemption of a process
EP2972834B1 (en) Systems and methods of executing multiple hypervisors
US10545892B2 (en) Multi-thread processor and its interrupt processing method
US20150121387A1 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium
EP3186704B1 (en) Multiple clustered very long instruction word processing core
JP4609113B2 (ja) プロセッサ
KR20200097579A (ko) 프로세스 스케줄링을 위한 전자 장치, 저장 매체 및 방법
WO2010137233A1 (ja) マルチプロセッサシステムにおける省電力制御装置およびモバイル端末
US8706923B2 (en) Methods and systems for direct memory access (DMA) in-flight status
JP2007233608A (ja) 割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラム。

Legal Events

Date Code Title Description
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: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150805

R150 Certificate of patent or registration of utility model

Ref document number: 5792351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees