JP2014211743A - マルチコアプロセッサ - Google Patents
マルチコアプロセッサ Download PDFInfo
- Publication number
- JP2014211743A JP2014211743A JP2013087372A JP2013087372A JP2014211743A JP 2014211743 A JP2014211743 A JP 2014211743A JP 2013087372 A JP2013087372 A JP 2013087372A JP 2013087372 A JP2013087372 A JP 2013087372A JP 2014211743 A JP2014211743 A JP 2014211743A
- Authority
- JP
- Japan
- Prior art keywords
- stage
- task
- core processor
- load distribution
- queue
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000003068 static effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】複数のタスクを、複数の前段コア2が複数のパイプラインを用いて並列処理するマルチコアプロセッサ1において、パイプラインを、前段コア2により命令デコードステージまでを実行させ、命令実行ステージ以降は後段コア7により実行させる。そして、動的負荷分散ブロック5は、命令デコードステージにおけるデコード結果を参照して、後段コア7における処理の実行が必要となる前段コア2のデコード結果を、後段コア7に割り当てるように制御する。
【選択図】図1
Description
すなわち、パイプラインの前段部においてデコードされる命令によっては、後段部の処理を実行する必要が無いものがある。したがって、そのような命令を含む場合は、対応する後段部に、異なる命令を実行させることができるようになり、より効率的に処理を行うことが可能になる。
図1に示すように、本実施形態のマルチコアプロセッサ1は、並列処理を実行するためのパイプラインの前段部分を構成する4つの前段コア2(1)〜2(4)を備えている。これらの前段コア2(1)〜2(4)については、対応するタスクキュー(待ち行列)3(1)〜3(4)が設けられている。タスクキュー3(1)〜3(4)には、タスク振り分けブロック4により振り分けられたタスクが順次配置され、各前段コア2(1)〜2(4)により処理されるのを「待ち」の状態となる。各前段コア2(1)〜2(4)は、パイプラインの前段部分として命令フェッチ(IF)ステージと、命令デコード(ID)ステージとを実行する。
LDR R3[R0]
により、レジスタファイル8内のレジスタR3に、レジスタR0の内容が示すアドレスよりデータがロードされると、次の命令
LDRB R4[R3]
で、レジスタR3の内容が示すアドレスからレジスタR4にデータがロードされる。したがって、ロード命令LDRBは第7サイクルでデコードされているが、その実行は、ロード命令LDRについてWBステージ(レジスタ転送)が実行される第9サイクルからになっている。結果として、第8サイクルから実行が開始されるパイプラインには空きが発生している。
LDRB R4[R0,#4]
の実行を開始するには、その前の命令
LDR R3[R0]
の実行完了を待つ必要が無い。
すなわち、静的処理時間情報は、各タスクの実行を完了させるために必要な時間の情報であり、動的実行状況は、それぞれの時点における各タスクの実行状況を示すものである。したがって、動的負荷分散ブロック5は、それらの情報に基づいて新規タスクの振り分けを効率的に行うことができる。
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図6に示すように、第2実施形態のマルチコアプロセッサ21は、前段コア22の数(4)よりも、後段コア7の数(5)を多くした構成例を示している。尚、レジスタファイル8及びメモリ9については、図示を省略している。
前段コア,後段コアの数は、個別の設計に応じて適宜設定すれば良い。
第2実施形態における閾値についても、適宜変更して良い。
第2実施形態において、前段コアにより命令を3並列以上でフェッチ,デコードして、1つのタスクキューの処理を3つ以上の後段コアで並列処理するように構成しても良い。
Claims (6)
- 複数のタスクを、複数のプロセッサコアが複数のパイプラインを用いて並列処理するマルチコアプロセッサ(1,21)において、
前記パイプラインを、命令デコードステージまでの前段部(2,22)と、命令実行ステージ以降の後段部(7)とに分け、
前記命令デコードステージにおけるデコード結果を参照して、前記後段部における処理の実行が必要となる前段部のデコード結果を、前記後段部に割り当てるように制御する負荷分散処理部(5,24)を備えることを特徴とするマルチコアプロセッサ。 - 前記負荷分散処理部は、前記前段部においてデコードされた複数の命令が並列実行可能であれば、それら複数の命令を複数の後段部パイプラインに割り当てて並列実行させることを特徴とする請求項1記載のマルチコアプロセッサ。
- 前記複数の前段部パイプラインに対応して設けられ、各前段部パイプラインに順次タスクを実行させるための待ち行列(3)と、
複数のタスクに関する静的処理時間情報を保持すると共に、前記複数のタスクに関する動的実行状況が反映されるタスク情報テーブル(11)とを備え、
前記負荷分散処理部は、前記タスク情報テーブルを参照することで、前記各待ち行列に対する新規タスクの振り分け処理を行うことを特徴とする請求項1又は2記載のマルチコアプロセッサ。 - 前記負荷分散処理部は、前記各待ち行列について、現在待ち状態にある各タスクの占有率を、当該タスクに関する残り実行時間と処理限界時間との比で計算すると、前記各タスクの占有率を加算した合計占有率を求め、前記合計占有率が最低を示す待ち行列に、次の新規タスクを割り当てることを特徴とする請求項3記載のマルチコアプロセッサ。
- 前記負荷分散処理部は、前記合計占有率が高い待ち行列に対応する前段部を優先して、デコード結果を後段部に割り当てるように制御することを特徴とする請求項4記載のマルチコアプロセッサ。
- 前記負荷分散処理部(24)は、前記合計占有率が高い待ち行列に対応する前段部(22)のデコード結果を、複数の後段部に割り当てるように制御することを特徴とする請求項4又は5記載のマルチコアプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013087372A JP5803972B2 (ja) | 2013-04-18 | 2013-04-18 | マルチコアプロセッサ |
US14/244,994 US9747132B2 (en) | 2013-04-18 | 2014-04-04 | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013087372A JP5803972B2 (ja) | 2013-04-18 | 2013-04-18 | マルチコアプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014211743A true JP2014211743A (ja) | 2014-11-13 |
JP5803972B2 JP5803972B2 (ja) | 2015-11-04 |
Family
ID=51729943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013087372A Expired - Fee Related JP5803972B2 (ja) | 2013-04-18 | 2013-04-18 | マルチコアプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US9747132B2 (ja) |
JP (1) | JP5803972B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10180841B2 (en) | 2014-12-22 | 2019-01-15 | Centipede Semi Ltd. | Early termination of segment monitoring in run-time code parallelization |
US10296350B2 (en) * | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US10296346B2 (en) * | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
CN106506393A (zh) * | 2016-02-05 | 2017-03-15 | 华为技术有限公司 | 一种数据流处理方法、装置和系统 |
CN109144682A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 任务的优先级处理方法和处理装置 |
US11119931B1 (en) * | 2019-09-18 | 2021-09-14 | Facebook Technologies, Llc | Data pipeline for microkernel operating system |
WO2021097962A1 (zh) * | 2019-11-20 | 2021-05-27 | 深圳先进技术研究院 | 一种异构芯片的任务处理方法、任务处理装置及电子设备 |
CN111510396B (zh) * | 2020-06-30 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 一种消息发送方法和相关装置 |
US11734017B1 (en) * | 2020-12-07 | 2023-08-22 | Waymo Llc | Methods and systems for processing vehicle sensor data across multiple digital signal processing cores virtually arranged in segments based on a type of sensor |
CN115391021A (zh) * | 2021-05-24 | 2022-11-25 | 北京灵汐科技有限公司 | 核心控制方法及装置、处理核心、系统、电子设备、介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124316A (ja) * | 1996-08-27 | 1998-05-15 | Matsushita Electric Ind Co Ltd | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
JPH1124930A (ja) * | 1997-07-09 | 1999-01-29 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
JP2004227587A (ja) * | 2003-01-27 | 2004-08-12 | Samsung Electronics Co Ltd | 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 |
US20100031006A1 (en) * | 2008-08-04 | 2010-02-04 | International Business Machines Corporation | Thread completion rate controlled scheduling |
WO2010134329A1 (ja) * | 2009-05-18 | 2010-11-25 | パナソニック株式会社 | プロセッサ |
JP2011511378A (ja) * | 2008-02-07 | 2011-04-07 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサシステムにおける命令フェッチングの優先順位付け |
JP2014225137A (ja) * | 2013-05-16 | 2014-12-04 | 株式会社デンソー | タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6105127A (en) | 1996-08-27 | 2000-08-15 | Matsushita Electric Industrial Co., Ltd. | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
US20040172631A1 (en) * | 2001-06-20 | 2004-09-02 | Howard James E | Concurrent-multitasking processor |
US7209996B2 (en) | 2001-10-22 | 2007-04-24 | Sun Microsystems, Inc. | Multi-core multi-thread processor |
JP2005284749A (ja) | 2004-03-30 | 2005-10-13 | Kyushu Univ | 並列処理コンピュータ |
US20110055838A1 (en) * | 2009-08-28 | 2011-03-03 | Moyes William A | Optimized thread scheduling via hardware performance monitoring |
-
2013
- 2013-04-18 JP JP2013087372A patent/JP5803972B2/ja not_active Expired - Fee Related
-
2014
- 2014-04-04 US US14/244,994 patent/US9747132B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10124316A (ja) * | 1996-08-27 | 1998-05-15 | Matsushita Electric Ind Co Ltd | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
JPH1124930A (ja) * | 1997-07-09 | 1999-01-29 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
JP2004227587A (ja) * | 2003-01-27 | 2004-08-12 | Samsung Electronics Co Ltd | 命令語数に実行周期回数を加重値として用いてスレッドをフェッチする同時多重スレッドプロセッサ及びその方法 |
JP2011511378A (ja) * | 2008-02-07 | 2011-04-07 | イマジネイション テクノロジーズ リミテッド | マイクロプロセッサシステムにおける命令フェッチングの優先順位付け |
US20100031006A1 (en) * | 2008-08-04 | 2010-02-04 | International Business Machines Corporation | Thread completion rate controlled scheduling |
WO2010134329A1 (ja) * | 2009-05-18 | 2010-11-25 | パナソニック株式会社 | プロセッサ |
JP2014225137A (ja) * | 2013-05-16 | 2014-12-04 | 株式会社デンソー | タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法 |
Non-Patent Citations (2)
Title |
---|
JPN6015015311; 平田博章,外4名: '多重スレッド・多重命令発行を用いる要素プロセッサ・アーキテクチャ' 情報処理学会論文誌 Vol:34,No:4, 19930415, Pages:595〜605, 社団法人情報処理学会 * |
JPN6015015312; 平田博章,外4名: 'マルチスレッドプロセッサおよび1チップマルチプロセッサのための命令キャッシュ構成・命令フェッチ方式の' 電子情報通信学会論文誌 Vol:J81-D-I,No:6, 19980625, Pages:718〜727, 社団法人電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
US9747132B2 (en) | 2017-08-29 |
JP5803972B2 (ja) | 2015-11-04 |
US20140317380A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5803972B2 (ja) | マルチコアプロセッサ | |
JP4610593B2 (ja) | デュアルスレッドプロセッサ | |
CN109445851B (zh) | 多线程处理器 | |
US8875146B2 (en) | Systems and methods for bounding processing times on multiple processing units | |
JP4292198B2 (ja) | 実行スレッドをグループ化するための方法 | |
JP5718378B2 (ja) | 一又は複数のタスクを実行するために使用するシステム及び方法 | |
US20120284720A1 (en) | Hardware assisted scheduling in computer system | |
US10248463B2 (en) | Apparatus and method for managing a plurality of threads in an operating system | |
Tang et al. | Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources | |
KR20110075296A (ko) | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 | |
US11366669B2 (en) | Apparatus for preventing rescheduling of a paused thread based on instruction classification | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
US9286114B2 (en) | System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same | |
US20110276979A1 (en) | Non-Real Time Thread Scheduling | |
CN116414541B (zh) | 兼容多种任务工作模式的任务执行方法和装置 | |
JP5195408B2 (ja) | マルチコアシステム | |
KR102205899B1 (ko) | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 | |
JP2004206692A (ja) | マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置 | |
US20170192790A1 (en) | Providing task-triggered determinisitic operational mode for simultaneous multi-threaded superscalar processor | |
EP3591518B1 (en) | Processor and instruction scheduling method | |
JP5630798B1 (ja) | プロセッサーおよび方法 | |
JP2012173755A (ja) | 情報処理装置及び情報処理方法 | |
KR101254911B1 (ko) | 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체 | |
CN108255587B (zh) | 一种同步多线程处理器 | |
JP3931883B2 (ja) | ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140821 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150409 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150617 |
|
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: 20150804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150817 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5803972 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |