JP5803972B2 - マルチコアプロセッサ - Google Patents

マルチコアプロセッサ Download PDF

Info

Publication number
JP5803972B2
JP5803972B2 JP2013087372A JP2013087372A JP5803972B2 JP 5803972 B2 JP5803972 B2 JP 5803972B2 JP 2013087372 A JP2013087372 A JP 2013087372A JP 2013087372 A JP2013087372 A JP 2013087372A JP 5803972 B2 JP5803972 B2 JP 5803972B2
Authority
JP
Japan
Prior art keywords
stage
task
queue
load distribution
core processor
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.)
Expired - Fee Related
Application number
JP2013087372A
Other languages
English (en)
Other versions
JP2014211743A (ja
Inventor
啓史 山本
啓史 山本
近藤 丈詞
丈詞 近藤
慎一郎 田口
慎一郎 田口
尚利 野村
尚利 野村
代涵 王
代涵 王
智義 船▲崎▼
智義 船▲崎▼
祐教 松本
祐教 松本
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2013087372A priority Critical patent/JP5803972B2/ja
Priority to US14/244,994 priority patent/US9747132B2/en
Publication of JP2014211743A publication Critical patent/JP2014211743A/ja
Application granted granted Critical
Publication of JP5803972B2 publication Critical patent/JP5803972B2/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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/507Low-level
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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)

Description

本発明は、マルチコア構成を採用するマイクロプロセッサであるマルチコアプロセッサに関する。
マルチコア構成を採用するマイクロプロセッサによって複数のタスクを並列処理する際に処理効率を向上させるには、各タスクについて設定される処理時間の制約(所謂デッドライン)を満たすように、処理順序をスケジューリングする必要がある。このスケジューリングを如何に最適化するかによって、処理効率が決まる。
例えば特許文献1には、複数グループに属するタスクをマルチコアプロセッサで処理する際に、ハッシュ値を用いることで効率的なタスク割り当てを実現する方法が開示されている。また、特許文献2には、予めスレッドの実行順序を定義しておき、排他実行可能な粒度に分類することで効率的な並列処理を実現するコンピュータが開示されている。
特表2005−507212号公報 特開2005−284749号公報
特許文献1,2の技術は、何れも各プロセッサコアへのタスク(スレッド)割り当ての効率化を実現するものである。各プロセッサコアに割り当てられたタスクは、各コアに対応した処理ステージにおいて逐次処理される(パイプライン処理)。しかしながら、全ての命令が各処理ステージの全てにつき実行されるわけではなく、命令の種類よっては、一部の処理ステージが実行されないものがある。例えば、レジスタ間演算命令では、メモリアクセス(MA)ステージは実行されない。したがって、この点を考慮すると、パイプライン処理の実行段階についても、処理効率を向上させる余地があると考えられる。
本発明は上記事情に鑑みてなされたものであり、その目的は、パイプライン処理の効率を改善することで、処理効率を一層向上させることができるマルチコアプロセッサを提供することにある。
請求項1記載のマルチコアプロセッサによれば、複数のタスクを、複数のプロセッサコアのパイプラインを用いて並列処理する構成において、パイプラインを、命令デコードステージまでの前段部と、命令実行ステージ以降の後段部とに分ける。そして、負荷分散処理部は、命令デコードステージにおけるデコード結果を参照して、後段部における処理の実行が必要となる前段部のデコード結果を後段部に割り当てるように制御する。
すなわち、パイプラインの前段部においてデコードされる命令によっては、後段部の処理を実行する必要が無いものがある。したがって、そのような命令を含む場合は、対応する後段部に、異なる命令を実行させることができるようになり、より効率的に処理を行うことが可能になる。
また、複数の前段部に対応して設けられ、各前段部に順次タスクを実行させるための待ち行列と、複数のタスクに関する処理時間情報を保持すると共に、前記複数のタスクに関する動的実行状況が反映されるタスク情報テーブルとを備え、負荷分散処理部は、タスク情報テーブルを参照することで各待ち行列に対する新規タスクの振り分け処理を行う。
すなわち、処理時間情報は、各タスクの実行を完了させるために必要な時間の情報であり、動的実行状況は、それぞれの時点における各タスクの実行状況を示すものである。したがって、負荷分散処理部は、それらの情報に基づいて新規タスクの振り分けを効率的に行うことができる。
請求項2記載のマルチコアプロセッサによれば、負荷分散処理部は、前段部においてデコードされた複数の命令が並列実行可能であれば、それら複数の命令を複数の後段部パイプラインに割り当てて並列実行させる。したがって、複数の命令の処理をより速く実行できるようになり、処理効率が向上する。
第1実施形態であり、マルチコアプロセッサの構成を示す機能ブロック図 動的負荷分散ブロックの処理をより具体的に説明する図 動的負荷分散ブロックの機能ブロック図 タスク情報テーブルの一例を示す図 2つの前段コアによりデコードされた命令を実行する後段部のパイプラインを、1つに統合した例を示す図 第2実施形態を示す図1相当図 図3相当図
(第1実施形態)
図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)ステージとを実行する。
タスク振り分けブロック4(新規タスク振り分けキュー)における振り分け制御は、動的負荷分散ブロック5(負荷分散処理部)によって行われる。動的負荷分散ブロック5は、IDステージにおけるデコード結果に応じて各タスクキュー3(1)〜3(4)に新規のタスクを振り分ける(詳細については後述)。すなわちパイプラインは、(前段コア数)>(後段コア数)となる関係で構成されている。
前段コア2(1)〜2(4)のIDステージにてデコードされた命令は、後段処理振り分け部6を介して、パイプラインの後段部分を構成する後段コア7(1)〜7(3)に振り分けられて実行される。また、IDステージと後段処理振り分け部6との間には、各前段コア2によってアクセスされるレジスタファイル8が配置されている。
動的負荷分散ブロック5は、後段処理振り分け部6の振り分け制御も行う。後段コア7は、命令実行(EX)ステージ,メモリアクセス(MA)ステージ,ライトバック(WB)ステージとを実行する。MAステージとWBステージとの間には、メモリ9が配置されている。また、WBステージでは、レジスタファイル8に対する書き込みが行われ、EXステージにおいても同様に書き込みが行われることがあるが、これらのパスについては図示を省略している。
図2に示すように、動的負荷分散ブロック5は、各タスクキュー3に待ち状態で存在する複数のタスクについての占有率を合計する。ここで「占有率」とは、キュー3内にある各タスクについて求められるもので、タスクの残り実行時間とデッドライン時間(処理限界時間)との比である。デッドライン時間とは、アプリケーションに応じて決まるもので、アプリケーションレベルの処理を実行するため支障を来たさない範囲で、タスクの実行完了が要求される時間である。そして、その時点の合計占有率が最低であるタスクキュー3に新規タスクを振り分けるように、デマルチプレクサのシンボルで示すタスク振り分けブロック4を制御する。
また動的負荷分散ブロック5は、合計占有率が最高を示すタスクキュー3に対応する前段コア2の処理を優先して、後段コア(EX〜WBステージ)に割り当てるように、後段処理振り分け部6を制御する。尚、図2では、前段コア数をN,後段コア数をM(<N)として一般化して示している。
図3に示すように、動的負荷分散ブロック5は、図4に示すタスク情報テーブル11に基づいて各タスクキュー3の合計占有率を計算すると、各合計占有率の高低に順位を付してソートする。図3に示す例では、キュー番号4が90%で1位,キュー番号3が87%で2位,キュー番号2が30%で3位,…となっている。そして、順位が最低のNとなるキュー番号xのタスクキュー3に次の新規タスクを割り当てる。また、順位が最上位から第M位までを、後段コアに割り当てる。
図4に示すように、タスク情報テーブル11は、各タスクの状態を、実行が停止された状態にある「停止」,タスクキュー3に既に振り分けた「割当済み」,実行が中断された状態にある「中断」に判別する(動的実行状況)。また、各タスクついての前述したデッドライン時間及び残り実行時間と、最悪実行時間が保持されている(処理時間情報)。ここで「最悪実行時間」とは、そのタスクの処理だけを実行した場合に、全ての処理を完了させるために必要な時間である。加えて、タスクが割当済みであれば、割当先のキュー番号が保持されている。尚「Don't care」は、タスクキュー3への割り当てが不要な状態である(動的実行状況)。
また、動的負荷分散ブロック5が行う後段コア7に対する振り分け制御は、図2に示す制御に限らず、IDステージにおけるデコード結果によっては、後段コア7を使用しない命令があるので、その状態も考慮して振り分けを行う。更に、複数の前段コア7により実行される命令には並列して実行可能なものがあるので、それも考慮して振り分ける。以下、その作用について説明する。
図5(a),(b)は、2つの独立したコアが、それぞれ完全に独立したパイプラインにより各命令を実行した場合であり、図5(c)は、それらを本実施形態のマルチコアプロセッサ1により実行した場合を示す。例えば、図5(a)に示すコア(1)では、第3,第4サイクルにおいてそれぞれ加算命令ADDが実行されるが、この実行についてMAステージ以降は不要である。
また、第3サイクルで分岐命令Bをフェッチすると、その分岐が実行された後に次のロード命令LDRがフェッチされる。そして、
LDR R3[R0]
により、レジスタファイル8内のレジスタR3に、レジスタR0の内容が示すアドレスよりデータがロードされると、次の命令
LDRB R4[R3]
で、レジスタR3の内容が示すアドレスからレジスタR4にデータがロードされる。したがって、ロード命令LDRBは第7サイクルでデコードされているが、その実行は、ロード命令LDRについてWBステージ(レジスタ転送)が実行される第9サイクルからになっている。結果として、第8サイクルから実行が開始されるパイプラインには空きが発生している。
また、図5(b)に示すコア(2)では、第5サイクルから命令LDR,第6サイクルから命令LDRB,第8サイクルから命令LDRHの実行がそれぞれ開始されている。すなわち、
LDRB R4[R0,#4]
の実行を開始するには、その前の命令
LDR R3[R0]
の実行完了を待つ必要が無い。
そして、図5(a)に示すコア(1)では、第7サイクルから命令LDR,第9サイクルから命令LDRB,第10サイクルから命令LDRHの実行がそれぞれ開始されている。したがって、これら2つのコア(1),(2)による後段部の処理は、1つのパイプラインに投入しても処理が可能である。その結果、図5(c)に示すように、前段の2つのコア(1),(2)による処理が、後段では1つのパイプライン(後段コア)に統合して処理するように動的負荷分散ブロック5が振り分けを行う。
以上のように本実施形態によれば、複数のタスクを、複数の前段コア2が複数のパイプラインを用いて並列処理するマルチコアプロセッサ1において、パイプラインを、前段コア2により命令デコードステージまでを実行させ、命令実行ステージ以降は後段コア7により実行させる。そして、動的負荷分散ブロック5は、命令デコードステージにおけるデコード結果を参照して、後段コア7における処理の実行が必要となる前段コア2のデコード結果を、後段コア7に割り当てるように制御する。これにより、パイプラインの前段部でデコードされる命令が後段部の処理を実行する必要が無いものであれば、対応する後段コア7に、異なる命令を実行させることができるようになり、より効率的に処理を行うことが可能になる。
そして、動的負荷分散ブロック5は、前段コア2においてデコードされた複数の命令が並列実行可能であれば、それら複数の命令を、複数の後段コア7に割り当てて並列実行させる。したがって、複数の命令の処理をより速く実行できるようになり、処理効率が向上する。
また、複数の前段コア2に対応して設けられ、各前段コア2に順次タスクを実行させるためのタスクキュー3と、複数のタスクに関する処理時間情報を保持すると共に、前記複数のタスクに関する動的実行状況が反映されるタスク情報テーブル11とを備え、動的負荷分散ブロック5は、タスク情報テーブル11を参照することで各タスクキュー3に対する新規タスクの振り分け処理を行う。
すなわち、処理時間情報は、各タスクの実行を完了させるために必要な時間の情報であり、動的実行状況は、それぞれの時点における各タスクの実行状況を示すものである。したがって、動的負荷分散ブロック5は、それらの情報に基づいて新規タスクの振り分けを効率的に行うことができる。
具体的には、動的負荷分散ブロック5は、各タスクキュー3について、現在待ち状態にある各タスクの占有率を、当該タスクに関する残り実行時間と処理限界時間との比で計算すると各タスクの占有率を加算した合計占有率を求め、合計占有率が最低を示すタスクキュー3に次の新規タスクを割り当てる。したがって、各タスクキュー3の合計占有率が平準化されるように割り当てを行うことができる。
また、動的負荷分散ブロック5は、合計占有率が高いタスクキュー3に対応する前段コア2を優先して、そのデコード結果を後段コア7に割り当てるように制御する。したがって、合計占有率が高いタスクキュー3の処理を促進することで、各タスクキュー3の合計占有率を平準化させることができる。
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図6に示すように、第2実施形態のマルチコアプロセッサ21は、前段コア22の数(4)よりも、後段コア7の数(5)を多くした構成例を示している。尚、レジスタファイル8及びメモリ9については、図示を省略している。
第2実施形態の前段コア22は、それぞれに対応するタスクキュー3内のタスクについて、命令を2並列でフェッチ,デコードすることが可能となっている。したがって、IDステージより後段処理振り分け部23に入力されているinst1,inst2は、並列にフェッチ,デコードされた2つの命令を示している。
次に、第2実施形態の作用について説明する。図7に示すように、動的負荷分散処理ブロック24は、タスクキュー3の合計占有率が例えば閾値80%を超えたもの(この例では、キュー番号「4」)については、2つの後段コア7を割り当てるようにする。この様に構成すれば、合計占有率が高いタスクキュー3の処理を促進して占有率を低下させることができるので、各タスクキュー3の合計占有率を平準化させて処理効率を向上させることができる。
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
前段コア,後段コアの数は、個別の設計に応じて適宜設定すれば良い。
第2実施形態における閾値についても、適宜変更して良い。
第2実施形態において、前段コアにより命令を3並列以上でフェッチ,デコードして、1つのタスクキューの処理を3つ以上の後段コアで並列処理するように構成しても良い。
図面中、1はマルチコアプロセッサ、2は前段コア(前段部)、3はタスクキュー(待ち行列)、4はタスク振り分けブロック、5は動的負荷分散ブロック(負荷分散処理部)、7は後段コア(後段部)、11はタスク情報テーブルを示す。

Claims (5)

  1. 複数のタスクを、複数のプロセッサコアのパイプラインを用いて並列処理するマルチコアプロセッサ(1,21)において、
    前記パイプラインを、命令デコードステージまでの前段部(2,22)と、命令実行ステージ以降の後段部(7)とに分け、
    前記命令デコードステージにおけるデコード結果を参照して、前記後段部における処理の実行が必要となる前段部のデコード結果を、前記後段部に割り当てるように制御する負荷分散処理部(5,24)と、
    前記複数の前段部に対応して設けられ、各前段部に順次タスクを実行させるための待ち行列(3)と、
    複数のタスクに関する処理時間情報を保持すると共に、前記複数のタスクに関する動的実行状況が反映されるタスク情報テーブル(11)とを備え、
    前記負荷分散処理部は、前記タスク情報テーブルを参照することで、前記各待ち行列に対する新規タスクの振り分け処理を行うことを特徴とするマルチコアプロセッサ。
  2. 前記負荷分散処理部は、前記前段部においてデコードされた複数の命令が並列実行可能であれば、それら複数の命令を複数の後段部に割り当てて並列実行させることを特徴とする請求項1記載のマルチコアプロセッサ。
  3. 記負荷分散処理部は、前記各待ち行列について、現在待ち状態にある各タスクの占有率を、当該タスクに関する残り実行時間と処理限界時間との比で計算すると、前記各タスクの占有率を加算した合計占有率を求め、前記合計占有率が最低を示す待ち行列に、次の新規タスクを割り当てることを特徴とする請求項1又は2記載のマルチコアプロセッサ。
  4. 前記負荷分散処理部は、前記合計占有率が高い待ち行列に対応する前段部を優先して、デコード結果を後段部に割り当てることを特徴とする請求項3記載のマルチコアプロセッサ。
  5. 前記負荷分散処理部(24)は、前記合計占有率が高い待ち行列に対応する前段部(22)のデコード結果を、複数の後段部に割り当てることを特徴とする請求項3又は4記載のマルチコアプロセッサ。
JP2013087372A 2013-04-18 2013-04-18 マルチコアプロセッサ Expired - Fee Related JP5803972B2 (ja)

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 JP2014211743A (ja) 2014-11-13
JP5803972B2 true 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)

* Cited by examiner, † Cited by third party
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
US10296346B2 (en) * 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences based on pre-monitoring
US10296350B2 (en) * 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences
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
CN111142938B (zh) * 2019-11-20 2023-07-07 深圳先进技术研究院 一种异构芯片的任务处理方法、任务处理装置及电子设备
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 北京灵汐科技有限公司 核心控制方法及装置、处理核心、***、电子设备、介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3760035B2 (ja) * 1996-08-27 2006-03-29 松下電器産業株式会社 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ
CN100373331C (zh) 1996-08-27 2008-03-05 松下电器产业株式会社 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器
JPH1124930A (ja) * 1997-07-09 1999-01-29 Matsushita Electric Ind Co Ltd 情報処理装置
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
KR100498482B1 (ko) 2003-01-27 2005-07-01 삼성전자주식회사 명령어수에 수행 주기 회수를 가중치로 사용하여 쓰레드를페치하는 동시 다중 쓰레딩 프로세서 및 그 방법
JP2005284749A (ja) 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
GB2457265B (en) 2008-02-07 2010-06-09 Imagination Tech Ltd Prioritising of instruction fetching in microprocessor systems
US8285973B2 (en) * 2008-08-04 2012-10-09 International Business Machines Corporation Thread completion rate controlled scheduling
EP2434392B1 (en) * 2009-05-18 2014-08-13 Panasonic Corporation Processor
US20110055838A1 (en) * 2009-08-28 2011-03-03 Moyes William A Optimized thread scheduling via hardware performance monitoring
JP2014225137A (ja) * 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法

Also Published As

Publication number Publication date
US9747132B2 (en) 2017-08-29
US20140317380A1 (en) 2014-10-23
JP2014211743A (ja) 2014-11-13

Similar Documents

Publication Publication Date Title
JP5803972B2 (ja) マルチコアプロセッサ
US9733945B2 (en) Pipelining out-of-order instructions
EP2140347B1 (en) Processing long-latency instructions in a pipelined processor
JP5650952B2 (ja) マルチコア/スレッドのワークグループ計算スケジューラ
JP4292198B2 (ja) 実行スレッドをグループ化するための方法
US8875146B2 (en) Systems and methods for bounding processing times on multiple processing units
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US20120284720A1 (en) Hardware assisted scheduling in computer system
JP5718378B2 (ja) 一又は複数のタスクを実行するために使用するシステム及び方法
Tang et al. Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources
US11366669B2 (en) Apparatus for preventing rescheduling of a paused thread based on instruction classification
CN111752971B (zh) 基于任务并行处理数据流的方法、装置、设备及存储介质
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US9286114B2 (en) System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same
CN116414541B (zh) 兼容多种任务工作模式的任务执行方法和装置
JP5195408B2 (ja) マルチコアシステム
EP3591518B1 (en) Processor and instruction scheduling method
WO2019188175A1 (ja) デッドロック回避方法、デッドロック回避装置
JP2012173755A (ja) 情報処理装置及び情報処理方法
KR101254911B1 (ko) 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체
JP7102840B2 (ja) プロセッサコア、命令制御方法、プログラム
CN114880101B (zh) 一种ai处理器、电子部件及电子设备
JP2011128672A (ja) スーパースカラプロセッサ及びその命令処理方法
JP3931883B2 (ja) ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム
JP2002318689A (ja) 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法

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