JP6018021B2 - マルチコアアーキテクチャにおけるリソース管理 - Google Patents
マルチコアアーキテクチャにおけるリソース管理 Download PDFInfo
- Publication number
- JP6018021B2 JP6018021B2 JP2013122998A JP2013122998A JP6018021B2 JP 6018021 B2 JP6018021 B2 JP 6018021B2 JP 2013122998 A JP2013122998 A JP 2013122998A JP 2013122998 A JP2013122998 A JP 2013122998A JP 6018021 B2 JP6018021 B2 JP 6018021B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- queue
- manager
- controller
- descriptor
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 153
- 238000000034 method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 72
- 230000006870 function Effects 0.000 description 58
- 238000010586 diagram Methods 0.000 description 15
- 230000003068 static effect Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 9
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 229910052710 silicon Inorganic materials 0.000 description 8
- 239000010703 silicon Substances 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 102100027364 Cysteine-rich protein 3 Human genes 0.000 description 1
- 102100037024 E3 ubiquitin-protein ligase XIAP Human genes 0.000 description 1
- YKFRUJSEPGHZFJ-UHFFFAOYSA-N N-trimethylsilylimidazole Chemical compound C[Si](C)(C)N1C=CN=C1 YKFRUJSEPGHZFJ-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Description
図4に、コントローラ130と、コントローラ130の周辺に位置する、コントローラ130に関連付けられたインターフェースグループ200〜250を示す。
図6に、システム管理コントローラ130の主要な論理コンポーネントを示す。コントローラ130の機能は、以下の各機能を実行する4つの1次内部並列処理サブブロック間で分担される。
スレッド入力マネージャ300は、システム管理コントローラ130内の他のサブブロックに3つの共通関数を提供する。
スレッド同期マネージャ310は、システム管理コントローラ130内の他のサブブロックに7つの共通関数を提供する。
スレッド出力マネージャ320は、システム管理コントローラ130内の他のサブブロックに5つの共通関数を提供する。
スレッドスケジュールマネージャ330は、システム管理コントローラ130内に位置するスレッド出力マネージャ320およびシステムインターフェース(TSIF)380に3つの共通関数を提供する。
前述のように、処理リソース150という用語は、命令がどれほど初歩的なものであるかに関わらず、その命令を実行し得る任意のリソースに適用される。したがって、入出力モジュールなど、固定機能を有するリソースも含まれる。処理リソース150の種類に応じて、システム管理コアクライアント120を介した、システム相互接続160と処理リソース150の間の接続は、単方向とすることも、双方向とすることもできる。
各コントローラクライアント120は、完全に割り込み駆動型である。コントローラ130から内部割り込みを受け取り次第、コントローラクライアント120は、専用密結合メモリ190内に保持されているその特定の処理リソース150に関連付けられたディスパッチ待ち行列の先頭から、スレッド記述子をポップする。次いで、スレッド記述子内の一意の参照を使って、メインメモリリソース140さらなるスレッド制御情報、スレッド制御ブロック(TCB)が読み取られる。TCB内に含まれる情報は以下のいずれかとすることができる。
図8に、ハードウェアコントローラクライアント120の基本構造を示す。設計の機能的中心にあるのは、コントローラクライアント有限状態機械(FSM)500である。この有限状態機械(FSM)500は、3段階すべてにおいてアクティブとすることができる。コントローラクライアントFSM500は、コントローラ130からの割り込み220によって活動化される。
a)処理リソース150によって生成されるアドレスが、比較器530および比較アドレスレジスタ540を使って、基底アドレスおよびオフセット定義によって定義される期待される挙動に照らしてチェックされてもよい。
b)処理リソース150によって生成されるアドレスが、減算機550およびオフセットアドレスレジスタ560を使ってオフセットされ、処理リソース150が、通常、アドレス0×0前後に正規化される、任意の所与のスレッドのアドレスマップの正規化ビューを有することを可能にする。
システム管理コントローラ130内で使用されるデータ型のインスタンスは、公開(システム一般から見ることができ、システム一般によって操作される)と専用可視(システム管理コントローラ130内でのみ見ることができ、システム管理コントローラ130サブブロックによってのみ操作される)とに分けられる。複数のエンドアプリケーションにまたがる設計の移植性を保証するために、すべてのスレッド、待ち行列および集約待ち行列記述子が、共通基底クラスを使用する専用密結合メモリ190、コントローラメモリ要素195内に格納される。
各コントローラメモリ要素195は、以下の7つの記述子型のいずれかを表すことができる。
記述子が初期設定または実行時操作を必要とする場合、操作は、コントローラ130APIを介して行われる。集中型タスク割り振り/管理システムは、リアルタイム対話が、ハードウェア実施に十分適する/ハードウェア実施に十分なほど単純化されるように設計される。
この項では、コントローラ130APIを介してシステムから見ることのできるオブジェクトを説明する。通常、これらのオブジェクトは、実行時に、コントローラ130とクライアント120とそれらに関連付けられた処理リソース150とを備える集中型タスク割り振り/管理システムによって操作される。
図9cおよび9dにスレッドプリミティブのフォーマットを示す。その依存関係に従って、スレッド記述子は、保留待ち行列構造に、または直接作動可能待ち行列に配置され得る。スレッドが保留待ち行列構造内に配置されるべきである場合、アプリケーションは、スレッドの依存関係を定義しなければならない。外部イベントへの依存性は、依存参照として現れる。コントローラ130は、この依存参照を解釈しない。これは、スレッド記述子を作動可能待ち行列にいつ移行させるべきか決定する、入力同期プリミティブとの比較のために維持される。
同期プリミティブは、保留待ち行列とインターフェースし、1つ以上のスレッド記述子の保留待ち行列構造から作動可能待ち行列への移行を生じさせることができる。
割り込みサービススレッド(IST)法は、非同期イベントによって処理リソース150に課される負荷を最小限に抑える有益な手段を提供する。さらに、本発明に基づくシステムにおける加速されたリアルタイム応答は、小さなシステム変更を加えるだけでISTのさらなる普及を可能にする。
専用オブジェクトは、通常、ブート時、すなわち、電源遮断サイクル後のシステム初期設定時に構成される。処理リソース150が、実行時に内部オブジェクトと直接対話することはまれである。
スレッドは、同期イベントまたはタイマイベントによって、保留待ち行列構造から作動可能待ち行列構造に格上げされ得る。スレッドは、これらのイベントクラスの両方に反応しても、一方だけに反応してもよい。スレッドが両方に反応する場合、そのスレッドは、保留待ち行列とタイマ待ち行列の両方に存在する。
ユニキャスト:同期イベントは、指定された保留待ち行列で見つかった最初の(最高優先順位の)適切な従属スレッドで状態遷移をトリガする。
マルチキャスト:同期イベントは、指定された保留待ち行列内のすべての適切な従属スレッドで状態遷移をトリガする。
ブロードキャスト:同期イベントは、すべての保留待ち行列内のすべての適切な従属スレッドで状態遷移をトリガする。
タイムアウトイベントを待ち受けるスレッド記述子を格納する単一システム規模のタイマ待ち行列が設けられる。図15に、タイマ待ち行列の例示的実施形態を示す。
作動可能待ち行列は、実行可能な状態のスレッドを保持する。これらのスレッドは、独立のスレッドプリミティブを用いて作成されたスレッドであり、または依存対象とする同期プリミティブを受け取っているスレッドである。同期スレッドは、あらかじめ保留待ち行列構造から移行している。
スケジューラ層は、スレッド記述子をスケジュールするのに使用される階層を定義する。各スケジューラ層は、通常、スケジューリングアルゴリズム、スケジューリング決定を行うのに使用されるいくつかのメトリック、および別のスケジューラ層またはスレッド記述子とすることのできる子要素のリストを定義する。ルート、静的および動的の3種類のスケジューラ層記述子がある。スケジューラ層メモリ要素のフォーマットを図9eおよび9fに示す。
ディスパッチ待ち行列は、関連付けられた処理リソース150からのサービスを待ち受ける先入れ先出し(FIFO)待ち行列としてスケジュールされたスレッド記述子を保持する。現在の好ましい実施形態では、最大32のディスパッチ待ち行列が許容される。ディスパッチ待ち行列は、図9gおよび9hに示すディスパッチ待ち行列記述子によって定義される。ディスパッチ待ち行列記述子は、システム初期設定時に構成される。
アプリケーションおよびシステムのスケジューリング要件は様々に異なり、実際には、実際の動作環境での試験後に初めて明らかになることもある。これに対応するために、システム管理コントローラ130は、使用されるスケジューリングポリシとスケジューリングアルゴリズムの両方に柔軟性を与え、これらは、マルチコアプロセッサ設計段階全体を通して変更、調整することができる。
1.連携スケジューラが現在実行中のタスクを利用して新しいタスクをスケジュールする前に処理リソース150を解放する。この種のシステムは、(例えば、処理リソース150にとってローカルのキャッシュが必要な命令を含まず、したがって、より低速の上位メモリから足りない命令をロードしなければならないなどの場合の)コールドキャッシュ効果の最小化、および固定機能ハードウェアアクセラレータと適合するが、より複雑な組み込みアプリケーションには適さないことがある。
2.静的アルゴリズム駆動型スケジューラが、より適格性の高いタスクを実行するために、現在実行中のタスクに取って代わることができる。事前定義されたスケジューリングパラメータおよびアルゴリズムによる最も適格なスレッドが、常に、これらのシステムにおける実行中のスレッドである。任意の所与のタスクの適格性は、システムが実行を開始する前に定められる。
3.動的アルゴリズム駆動型スケジューラが、実行時に適格性を再定義することができる。前述のように、現在実行中のプロセスは、依然として、適格性が最も高いものであるが、タスクが実行を開始した後で、適格性メトリックが変更されている可能性がある。
図19に、通信システムに一般的に見られる簡略化された待ち行列構造の例示的実施形態を示す。この構造は、入出力装置の出力待ち行列を表す。FIFO待ち行列を共用するすべてのスレッドが同じ接続上にあり、そのため、これは、接続ごとの待ち行列構造である。第2のスケジューリング層は、この例では重み付き公平待ち行列(WFQ)アルゴリズムを使用する。このアルゴリズムは、所与のタスクの完了時刻を、その長さと重み係数に基づいて計算する。次いで、最も早い完了時刻を有するパケットを選択する。WFQはスレッドが表すパケットの長さの知識を利用するものであるが、最初のFIFO待ち行列は、この情報とは無関係である。この場合、アプリケーションプログラマは、パケットの長さが、各スレッドごとのスケジューラメトリックに存在するようにしなければならない。階層内の上位のスケジューラ層は、それら自体のスケジューリングアルゴリズムのためにこのパラメータを継承する。
P 接続に割り振られるパイプ帯域幅の部分
I パケットの長さ
B 総パイプ帯域幅
c 接続帯域幅
d スケジューラ層デッドライン
P*B=c
チャネルを帯域幅1に正規化した場合、pはcに等しくなる。その場合、パケット処理の完了時刻tは次式で与えられる。
(1/p)*l=t
その場合、必要なメトリック1/pとlである。pは元々分数であるため、これらの値(1/pおよびl)は両方とも整数である。スケジュールされたパケットの長さは、スケジューラ階層を介して上方に渡され、その層のデッドラインを漸進的に更新する。各更新内で行われる計算は、詳細には、以下の通りである。
d=d+[(1/p)*l]式中、dおよび1/p(重み)は、スケジューラ層記述子内に格納され、lはスケジュール更新の間に階層を介して渡される。この計算は、スケジューラマネージャ330内で実行される。
Claims (9)
- 複数のプロセッサ要素を有するマルチコアプロセッサアーキテクチャのスレッドのプロセスを処理するコントローラであって、
実行するスレッドを受信するスレッド入力マネージャと、
複数のプロセッサ要素のうちの一つに、受信されたスレッドを割り当てるスレッド出力マネージャと、
第1のスレッドの実行及び前記第1のスレッドの要求に対する依存に応じて、前記スレッド出力マネージャによる第2のスレッドの前記プロセッサ要素に対する割り当てを制御するように構成されたスレッド同期マネージャと、
前記スレッド出力マネージャを介して割り当てられたスレッドの実行の順序を、各スレッドの優先度に基づき判定するように構成されたスレッドスケジュールマネージャと、を備え、
前記スレッド同期マネージャは、保留待ち行列及びタイマ待ち行列、並びに、前記コントローラにおいて各スレッドが受信されたときに前記保留待ち行列又は前記タイマ待ち行列に挿入された前記各スレッドの記述子を維持するように構成されており、
前記スレッド出力マネージャは、作動可能待ち行列及び複数のディスパッチ待ち行列、及び、スレッドの記述子を維持するように構成されており、前記維持されるスレッドの記述子は、少なくとも一つの他のスレッドの実行時におけるスレッドそれぞれの依存の要求の全てが満たされた場合に、前記保留待ち行列又は前記タイマ待ち行列から前記作動可能待ち行列に転送されたスレッドの記述子であり、
前記作動可能待ち行列は、前記保留待ち行列又は前記タイマ待ち行列からのスレッドの記述子を受信するように構成され、
前記ディスパッチ待ち行列の各々は、複数の前記プロセッサ要素の1つに対応付けられると共に、前記対応付けられたプロセッサ要素による実行のために前記作動可能待ち行列からスレッドの記述子を受信するように構成されており、
前記スレッド出力マネージャは、前記保留待ち行列又は前記タイマ待ち行列から前記作動可能待ち行列へのスレッドの記述子の転送を実行し、
前記作動可能待ち行列から前記ディスパッチ待ち行列へのスレッドの記述子の転送を実行することにより、複数のプロセッサ要素のうちの一つにスレッドを割り当てる、
コントローラ。 - 前記スレッドスケジュールマネージャは、前記作動可能待ち行列におけるスレッドの実行の順序を判定するように構成されている、
請求項1に記載のコントローラ。 - 前記スレッドスケジュールマネージャは、
前記作動可能待ち行列から複数のディスパッチ待ち行列のうちの1つへのスレッドの記述子の転送を制御することにより、スレッド出力マネージャを介して割り当てられたスレッドの実行の順序を判定する、
請求項1または2に記載のコントローラ。 - 前記保留待ち行列及び前記タイマ待ち行列並びに前記作動可能待ち行列及び前記複数のディスパッチ待ち行列は、前記コントローラに対応付けられた専用密結合メモリに維持される、
請求項1〜3のいずれか1項に記載のコントローラ。 - 接続された前記専用密結合メモリへの集約アクセスを提供するように構成され、前記集約アクセスは、前記スレッド入力マネージャ、前記スレッド同期マネージャ、前記スレッド出力マネージャ及び前記スレッドスケジュールマネージャのうちの少なくとも一つからのアクセスを集約するアクセスである、スレッドメモリマネージャを更に含む、
請求項4に記載のコントローラ。 - タイマ信号を生成するように構成されたタイムマネージャを更に含み、
前記スレッド同期マネージャは、前記タイマ信号に応じて、少なくともいくつかのスレッドがスレッド出力マネージャを通じていつ割り当てられるかを制御するように、更に構成されている、
請求項1〜5のいずれか1項に記載のコントローラ。 - 外部システム割り込みを受信すると共に、それに応じて内部同期信号を生成するように構成された割り込みマネージャをさらに含み、
前記スレッド同期マネージャは、前記内部同期信号に応じて、少なくともいくつかのスレッドがスレッド出力マネージャを通じていつ割り当てられるかを制御するように、更に構成されている、
請求項1〜6のいずれか1項に記載のコントローラ。 - 前記コントローラを前記マルチコアプロセッサアーキテクチャとインターフェースするように構成されたシステムインターフェースを更に含む、
請求項1〜7のいずれか1項に記載のコントローラ。 - 複数のプロセッサ要素を有するマルチコアプロセッサアーキテクチャのスレッドのプロセスを処理する方法であって、
スレッド入力マネージャにおいて、実行するスレッドを受信するステップと、
スレッド出力マネージャにおいて、複数のプロセッサ要素のうちの一つに、受信されたスレッドを割り当てるステップと、
スレッド同期マネージャにおいて、第1のスレッドの実行及び前記第1のスレッドの要求に対する依存に応じて、前記スレッド出力マネージャによる第2のスレッドの前記プロセッサ要素に対する割り当てを制御するステップと、
スレッドスケジュールマネージャにおいて、前記スレッド出力マネージャを介して割り当てられたスレッドの実行の順序を、各スレッドの優先度に基づき判定するステップと、を有し、
前記スレッド同期マネージャにおいて、保留待ち行列及びタイマ待ち行列を維持するステップであって、各スレッドの記述子は、コントローラにおいて前記各スレッドが受信されたときに前記保留待ち行列又は前記タイマ待ち行列に挿入される、ステップと、
前記スレッド出力マネージャにおいて、作動可能待ち行列及び複数のディスパッチ待ち行列を維持するステップであって、少なくとも一つの他のスレッドの実行時におけるスレッドのそれぞれの依存の要求の全てが満たされた場合に、前記スレッドの記述子が前記保留待ち行列又は前記タイマ待ち行列から前記作動可能待ち行列に転送される、ステップと、を含み、
前記作動可能待ち行列は、前記保留待ち行列又は前記タイマ待ち行列からのスレッドの記述子を受信するように構成され、
前記ディスパッチ待ち行列の各々は、複数の前記プロセッサ要素の1つに対応付けられると共に、前記対応付けられたプロセッサ要素による実行のために前記作動可能待ち行列からスレッドの記述子を受信するように構成されており、
前記スレッド出力マネージャは、前記保留待ち行列又は前記タイマ待ち行列から前記作動可能待ち行列へのスレッドの記述子の転送を実行し、
前記作動可能待ち行列から前記ディスパッチ待ち行列へのスレッドの記述子の転送を実行することにより、複数のプロセッサ要素のうちの一つにスレッドを割り当てる、
方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0407384.7 | 2004-03-31 | ||
GBGB0407384.7A GB0407384D0 (en) | 2004-03-31 | 2004-03-31 | Resource management in a multicore processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012221414A Division JP2013061947A (ja) | 2004-03-31 | 2012-10-03 | マルチコアアーキテクチャにおけるリソース管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013211050A JP2013211050A (ja) | 2013-10-10 |
JP6018021B2 true JP6018021B2 (ja) | 2016-11-02 |
Family
ID=32247648
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007505624A Active JP5789072B2 (ja) | 2004-03-31 | 2005-03-30 | マルチコアアーキテクチャにおけるリソース管理 |
JP2012221414A Pending JP2013061947A (ja) | 2004-03-31 | 2012-10-03 | マルチコアアーキテクチャにおけるリソース管理 |
JP2013122998A Active JP6018021B2 (ja) | 2004-03-31 | 2013-06-11 | マルチコアアーキテクチャにおけるリソース管理 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007505624A Active JP5789072B2 (ja) | 2004-03-31 | 2005-03-30 | マルチコアアーキテクチャにおけるリソース管理 |
JP2012221414A Pending JP2013061947A (ja) | 2004-03-31 | 2012-10-03 | マルチコアアーキテクチャにおけるリソース管理 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1730628B1 (ja) |
JP (3) | JP5789072B2 (ja) |
KR (3) | KR101248170B1 (ja) |
CN (1) | CN100517219C (ja) |
GB (1) | GB0407384D0 (ja) |
TW (3) | TWI541725B (ja) |
WO (1) | WO2005096143A1 (ja) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0420442D0 (en) * | 2004-09-14 | 2004-10-20 | Ignios Ltd | Debug in a multicore architecture |
JP5088365B2 (ja) * | 2007-03-23 | 2012-12-05 | 富士通株式会社 | 電子機器および負荷分散プログラム |
US8327363B2 (en) | 2007-07-24 | 2012-12-04 | Microsoft Corporation | Application compatibility in multi-core systems |
US8544014B2 (en) * | 2007-07-24 | 2013-09-24 | Microsoft Corporation | Scheduling threads in multi-core systems |
KR100958303B1 (ko) | 2007-12-12 | 2010-05-19 | 한국전자통신연구원 | 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법 |
US8930644B2 (en) | 2008-05-02 | 2015-01-06 | Xilinx, Inc. | Configurable transactional memory for synchronizing transactions |
KR100953968B1 (ko) * | 2008-09-11 | 2010-04-21 | 엘지전자 주식회사 | 멀티 프로세서 및 이를 이용한 전원 절감 방법 |
TWI486048B (zh) * | 2008-09-12 | 2015-05-21 | Chi Mei Comm Systems Inc | 手機圖片轉換系統及方法 |
EP2343657A4 (en) | 2008-09-24 | 2016-05-25 | Fujitsu Ltd | POWER CONSUMPTION CONTROL METHOD IN A MULTI-CORE CPU, POWER CONSUMPTION PROGRAM, AND INFORMATION PROCESSING SYSTEM |
TWI381315B (zh) * | 2008-10-24 | 2013-01-01 | Nat Univ Chung Cheng | Synchronization elements for multi-core embedded systems |
KR100981017B1 (ko) * | 2008-12-08 | 2010-09-07 | 재단법인대구경북과학기술원 | 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템 |
US9785462B2 (en) * | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
JP2011034189A (ja) * | 2009-07-30 | 2011-02-17 | Renesas Electronics Corp | ストリームプロセッサ及びそのタスク管理方法 |
TWI465916B (zh) * | 2010-09-01 | 2014-12-21 | Tatung Co | 異質雙核心之非對稱傳輸系統與方法 |
CN101977313B (zh) * | 2010-09-20 | 2012-11-21 | 中国科学院计算技术研究所 | 视频信号编码装置和方法 |
US20120096292A1 (en) * | 2010-10-15 | 2012-04-19 | Mosaid Technologies Incorporated | Method, system and apparatus for multi-level processing |
CN102012844B (zh) * | 2010-11-29 | 2013-01-09 | 上海大学 | 一种面向cmp系统的线程调度方法 |
TWI432953B (zh) | 2010-12-09 | 2014-04-01 | Ind Tech Res Inst | 具電源管理之超長指令處理器以及其電源管理裝置與方法 |
FR2975200B1 (fr) * | 2011-05-12 | 2013-06-14 | Peugeot Citroen Automobiles Sa | Synchronisation de donnees dans un systeme de pilotage |
US9442772B2 (en) * | 2011-05-20 | 2016-09-13 | Soft Machines Inc. | Global and local interconnect structure comprising routing matrix to support the execution of instruction sequences by a plurality of engines |
US8335875B1 (en) * | 2011-06-24 | 2012-12-18 | Intel Corporation | System and method for performing isochronous data buffering |
KR101283911B1 (ko) * | 2011-11-08 | 2013-07-16 | 재단법인대구경북과학기술원 | 운영체제의 알람 관리방법 및 그 운영체제, 그 기록매체 |
CN102521036A (zh) * | 2011-12-05 | 2012-06-27 | 苏州希图视鼎微电子有限公司 | 指令驱动协处理器的任务中断方法及系统 |
SE537552C2 (sv) | 2011-12-21 | 2015-06-09 | Mediatek Sweden Ab | Digital signalprocessor |
KR101880452B1 (ko) | 2012-02-06 | 2018-08-17 | 삼성전자주식회사 | 커널 수행 순서 스케줄링 방법 및 장치 |
CN108681519B (zh) * | 2012-03-30 | 2022-04-08 | 英特尔公司 | 用于从多线程发送请求至加速器的机制 |
KR101984635B1 (ko) | 2012-07-19 | 2019-05-31 | 삼성전자주식회사 | 어플리케이션을 고속으로 처리하는 연산 처리 장치 및 방법 |
KR101421232B1 (ko) | 2012-10-25 | 2014-07-21 | 주식회사 시큐아이 | 패킷 처리 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 |
US9361103B2 (en) * | 2012-11-02 | 2016-06-07 | Advanced Micro Devices, Inc. | Store replay policy |
CN103810223B (zh) * | 2012-11-15 | 2017-03-01 | 中国科学院软件研究所 | 一种基于数据分组的内存数据组织查询方法 |
US9558003B2 (en) | 2012-11-29 | 2017-01-31 | Samsung Electronics Co., Ltd. | Reconfigurable processor for parallel processing and operation method of the reconfigurable processor |
US8984251B2 (en) * | 2012-12-04 | 2015-03-17 | Apple Inc. | Hinting of deleted data from host to storage device |
US9201791B2 (en) | 2013-01-08 | 2015-12-01 | Apple Inc. | Flow-ID dependency checking logic |
TWI492157B (zh) * | 2013-03-05 | 2015-07-11 | Andes Technology Corp | 處理中斷要求事件的裝置與方法 |
US8959576B2 (en) * | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
DE102013109990B4 (de) * | 2013-08-30 | 2020-08-27 | Fujitsu Ltd. | Computersystem, Verwendung eines Systemmanagement-Bausteins und Verfahren zum bidirektionalen Datenaustausch |
TWI489393B (zh) * | 2013-11-15 | 2015-06-21 | Univ Nat Yunlin Sci & Tech | Applied Assignment Method for Multi - core System |
US9588774B2 (en) | 2014-03-18 | 2017-03-07 | International Business Machines Corporation | Common boot sequence for control utility able to be initialized in multiple architectures |
US9552033B2 (en) * | 2014-04-22 | 2017-01-24 | Qualcomm Incorporated | Latency-based power mode units for controlling power modes of processor cores, and related methods and systems |
TWI644253B (zh) * | 2014-07-18 | 2018-12-11 | 軸子研究有限公司 | Data processing device and control method thereof |
US20160092117A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Reduction of performance impact of uneven channel loading in solid state drives |
TWI554945B (zh) * | 2015-08-31 | 2016-10-21 | 晨星半導體股份有限公司 | 例行工作的分配方法及應用其之多核心電腦 |
GB2543302B (en) * | 2015-10-14 | 2018-03-21 | Advanced Risc Mach Ltd | Vector load instruction |
GB2547893B (en) * | 2016-02-25 | 2018-06-06 | Advanced Risc Mach Ltd | Combining part of an offset with a corresponding part of a base address and comparing with a reference address |
CN106878389B (zh) * | 2017-01-04 | 2020-02-07 | 北京百度网讯科技有限公司 | 用于在云系统中进行资源调度的方法和装置 |
KR102297512B1 (ko) | 2017-04-04 | 2021-09-03 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
CN110737616B (zh) * | 2018-07-20 | 2021-03-16 | 瑞昱半导体股份有限公司 | 处理中断优先级的电路系统 |
CN111371820A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于定时器触发的通信方法、系统及通信设备 |
FR3091363B1 (fr) * | 2018-12-27 | 2021-08-06 | Kalray | Système de synchronisation inter-processeurs configurable |
CN110008123B (zh) * | 2019-03-28 | 2022-04-26 | 武汉达梦数据库股份有限公司 | 一种自动部署测试软件的方法以及相应的装置 |
CN111913809B (zh) * | 2020-07-28 | 2024-03-19 | 阿波罗智能技术(北京)有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
KR102530348B1 (ko) * | 2020-11-17 | 2023-05-09 | 이화여자대학교 산학협력단 | Gpgpu의 스레드 블록 스케줄링 방법 및 장치 |
CN112286863B (zh) | 2020-11-18 | 2023-08-18 | 合肥沛睿微电子股份有限公司 | 处理暨存储电路 |
TWI786476B (zh) * | 2020-11-25 | 2022-12-11 | 大陸商合肥沛睿微電子股份有限公司 | 處理暨儲存電路 |
CN114265808A (zh) * | 2021-12-22 | 2022-04-01 | 杭州和利时自动化有限公司 | 一种通信方法、装置、ProfibusDP主站及介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8711663D0 (en) * | 1987-05-18 | 1987-06-24 | Singer Link Miles Ltd | Multiprocessing architecture |
JPH03138753A (ja) * | 1989-10-25 | 1991-06-13 | Mitsubishi Electric Corp | マルチプロセッサシステムのブートロード装置 |
JPH0635724A (ja) * | 1992-07-21 | 1994-02-10 | Fujitsu Ltd | イベント同期制御方式 |
US5504670A (en) * | 1993-03-31 | 1996-04-02 | Intel Corporation | Method and apparatus for allocating resources in a multiprocessor system |
JP3245500B2 (ja) * | 1994-04-28 | 2002-01-15 | エヌイーシーマイクロシステム株式会社 | マルチプログラミングにおける事象管理方式 |
KR0170506B1 (ko) * | 1995-08-05 | 1999-03-30 | 양승택 | 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법 |
KR100376056B1 (ko) | 1995-12-29 | 2003-07-22 | 엘지엔시스(주) | 멀티 프로세서 인터럽트 처리장치 |
KR970059923A (ko) * | 1996-01-05 | 1997-08-12 | 구자홍 | 마이크로프로세서의 외부 인터럽트 제어장치 |
JP3001461B2 (ja) * | 1997-05-29 | 2000-01-24 | 日本電気ソフトウェア株式会社 | プロセスのディスパッチ装置 |
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6427224B1 (en) | 2000-01-31 | 2002-07-30 | International Business Machines Corporation | Method for efficient verification of system-on-chip integrated circuit designs including an embedded processor |
US7007153B1 (en) | 2000-03-30 | 2006-02-28 | Agere Systems Inc. | Method and apparatus for allocating functional units in a multithreaded VLIW processor |
US6516393B1 (en) * | 2000-09-29 | 2003-02-04 | International Business Machines Corporation | Dynamic serialization of memory access in a multi-processor system |
US20030126416A1 (en) * | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
-
2004
- 2004-03-31 GB GBGB0407384.7A patent/GB0407384D0/en not_active Ceased
-
2005
- 2005-03-30 CN CNB2005800108015A patent/CN100517219C/zh active Active
- 2005-03-30 KR KR1020117028576A patent/KR101248170B1/ko active IP Right Grant
- 2005-03-30 EP EP05729094.2A patent/EP1730628B1/en active Active
- 2005-03-30 WO PCT/GB2005/001154 patent/WO2005096143A1/en active Application Filing
- 2005-03-30 KR KR1020067022736A patent/KR101258502B1/ko active IP Right Grant
- 2005-03-30 KR KR1020127020977A patent/KR101239082B1/ko active IP Right Grant
- 2005-03-30 JP JP2007505624A patent/JP5789072B2/ja active Active
- 2005-03-31 TW TW102119397A patent/TWI541725B/zh active
- 2005-03-31 TW TW094110344A patent/TWI407373B/zh active
- 2005-03-31 TW TW102119395A patent/TWI502511B/zh active
-
2012
- 2012-10-03 JP JP2012221414A patent/JP2013061947A/ja active Pending
-
2013
- 2013-06-11 JP JP2013122998A patent/JP6018021B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP5789072B2 (ja) | 2015-10-07 |
KR101248170B1 (ko) | 2013-03-27 |
JP2013211050A (ja) | 2013-10-10 |
CN100517219C (zh) | 2009-07-22 |
TWI407373B (zh) | 2013-09-01 |
TW201337768A (zh) | 2013-09-16 |
JP2007531137A (ja) | 2007-11-01 |
TWI502511B (zh) | 2015-10-01 |
WO2005096143A1 (en) | 2005-10-13 |
EP1730628A1 (en) | 2006-12-13 |
EP1730628B1 (en) | 2018-12-26 |
GB0407384D0 (en) | 2004-05-05 |
TW200602981A (en) | 2006-01-16 |
KR20120106890A (ko) | 2012-09-26 |
KR101258502B1 (ko) | 2013-04-26 |
KR101239082B1 (ko) | 2013-03-06 |
TW201337769A (zh) | 2013-09-16 |
TWI541725B (zh) | 2016-07-11 |
CN1993674A (zh) | 2007-07-04 |
KR20070022034A (ko) | 2007-02-23 |
KR20120003014A (ko) | 2012-01-09 |
JP2013061947A (ja) | 2013-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018021B2 (ja) | マルチコアアーキテクチャにおけるリソース管理 | |
US9779042B2 (en) | Resource management in a multicore architecture | |
JP6495208B2 (ja) | ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置 | |
JP6381734B2 (ja) | グラフィックス計算プロセススケジューリング | |
JP5651214B2 (ja) | マルチコアアーキテクチャにおけるスケジューリング | |
JP6086868B2 (ja) | ユーザモードからのグラフィックス処理ディスパッチ | |
US20070150895A1 (en) | Methods and apparatus for multi-core processing with dedicated thread management | |
WO2013131340A1 (zh) | 片上系统soc的多处理器的调度方法及装置 | |
JP2013546097A (ja) | グラフィックス処理計算リソースのアクセシビリティ | |
JP2014504416A (ja) | 組み合わせたcpu/gpuアーキテクチャシステムにおけるデバイスの発見およびトポロジーのレポーティング | |
Uddin | Microgrid-The microthreaded many-core architecture | |
Labarta et al. | Hybrid Parallel Programming with MPI/StarSs | |
Samman et al. | Architecture, on-chip network and programming interface concept for multiprocessor system-on-chip | |
Verhulst et al. | Requirements and Specifications for the OpenComRTOS Project | |
MENELAOS | WEIGHTED SCHEDULING IN HETEROGENEOUS ARCHITECTURES FOR OFFLOADING VARIABLE-LENGTH KERNELS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140701 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140925 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140930 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20141104 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20141107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150331 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150629 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150721 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20150918 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160722 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6018021 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |