JP2010140146A - マルチコアプロセッサ,制御方法および情報処理装置 - Google Patents

マルチコアプロセッサ,制御方法および情報処理装置 Download PDF

Info

Publication number
JP2010140146A
JP2010140146A JP2008314282A JP2008314282A JP2010140146A JP 2010140146 A JP2010140146 A JP 2010140146A JP 2008314282 A JP2008314282 A JP 2008314282A JP 2008314282 A JP2008314282 A JP 2008314282A JP 2010140146 A JP2010140146 A JP 2010140146A
Authority
JP
Japan
Prior art keywords
core
processor
task
arithmetic
processor core
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
JP2008314282A
Other languages
English (en)
Other versions
JP4691153B2 (ja
Inventor
Satoru Nishida
悟 西田
Yukio Nishimura
幸夫 西村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008314282A priority Critical patent/JP4691153B2/ja
Priority to US12/574,337 priority patent/US8307141B2/en
Publication of JP2010140146A publication Critical patent/JP2010140146A/ja
Application granted granted Critical
Publication of JP4691153B2 publication Critical patent/JP4691153B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

【課題】特別な管理や制御を行なうことなく、効率的にプロセッサコアにタスクを処理させることができるようにする。
【解決手段】第1のプロセッサコア11が、第1のタスクの処理に際して第2のタスクに関する処理要求を行なう際に、第1のプロセッサコア11により用いられるメモリ領域31に第2のタスクに関する情報を格納するとともに、複数のプロセッサダイ10にそれぞれそなえられた各第2のプロセッサコア12に対して割込通知を行ない、割込通知を受けた第2のプロセッサコア12が、第2のプロセッサコア12と同一のプロセッサダイ10上にそなえられた第1のプロセッサコア11によって用いられるメモリ領域31に対してそれぞれアクセスを行なう。
【選択図】図1

Description

本件は、複数のプロセッサコアが形成されたプロセッサダイを複数そなえたマルチコアプロセッサにおいてタスクを処理する技術に関する。
1つのプロセッサ内に複数のプロセッサコアを搭載するマルチコアプロセッサにおいては、搭載された複数のプロセッサコアにより、命令列を同時に独立に実行することが可能である。又、このマルチコアプロセッサとして、異なるタイプのプロセッサコアを同一のプロセッサ内に複数搭載する、ヘテロジニアスなマルチコアプロセッサ(ヘテロジニアス・マルチコアプロセッサ)が知られている。
このヘテロジニアス・マルチコアプロセッサにおいては、異なるタイプのプロセッサコアとして、例えば、OS(Operating System)が動作するOSコアと、主に演算を実行する演算コアとをそなえるものがある。
従来、このようなヘテロジニアス・マルチコアプロセッサにおいてタスクを処理する手法として、各コアの動作状態を管理部によって管理する手法が用いられている。この従来手法においては、管理部が各コアの動作状態に基づいて、タスクを振り分けるコアを選択し、選択したコアに対してタスクを供給している。
特開2008−84009号公報
しかしながら、このような従来のマルチコアプロセッサにおいては、各コアの状態の管理や、タスクを振り分けるコアの選択等の制御が煩雑であるという課題がある。
本件の目的の一つは、このような課題に鑑み創案されたもので、特別な管理や制御を行なうことなく、効率的にプロセッサコアにタスクを処理させることができるようにすることである。
このため、このマルチコアプロセッサは、第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサであって、前記第1のプロセッサコアが、前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアに用いられるメモリ領域に前記第2のタスクに関する情報を格納するとともに、前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行ない、前記割込通知を受けた前記第2のプロセッサコアが、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してそれぞれアクセスを行なうものである。
また、このマルチコアプロセッサにおける制御方法は、第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサにおける制御方法であって、前記第1のプロセッサコアが、前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアに用いられるメモリ領域に前記第2のタスクに関する情報を格納する格納ステップと、前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行なう通知ステップと、前記第2のプロセッサコアが、前記割込通知を受ける受信ステップと、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してそれぞれアクセスを行なうアクセスステップとをそなえるものである。
さらに、この情報処理装置は、上述したマルチコアプロセッサをそなえるものである。
開示のマルチコアプロセッサ,制御方法および情報処理装置によれば、マルチコアプロセッサの構成を簡素化することができ、製造コストを低減する他、負荷を軽減し、処理速度を高速化することもできる。
以下、図面を参照して本マルチコアプロセッサ,制御方法および情報処理装置に係る実施の形態を説明する。
図1は実施形態の一例としてのマルチコアプロセッサの構成を模式的に示す図である。
この図1に示す例においては、本マルチコアプロセッサとしてのCPU(Central Processing Unit)100とともに、MCH(Memory Control Hub)20およびメモリ30が示されている。
CPU100は、メモリ30やHDD(Hard Disk Drive:磁気記憶装置)等の図示しない記憶装置に格納されたプログラム(タスク,ジョブ)を実行することにより、種々の演算や制御を行ない、種々の機能を実現するものである。このCPU100は、例えば、情報処理装置や制御機器にそなえられるようになっている。又、このCPU100は、情報処理装置や制御機器において、そのマザーボード(図示省略)に、MCH20やメモリ30とともに搭載されるようになっている。
MCH20は、CPU100に対するデータの入出力を制御するチップセットであって、CPU100にCPUバス21を介して通信可能に接続されている。又、このMCH20には、メモリ30や図示しないグラフィックカードが接続されており、MCH20は、CPU100と、これらのメモリ30やグラフィックボードとの間におけるデータの授受を制御するようになっている。なお、CPU100とMCH20とを接続するCPUバス21としては、例えば、FSB(Front Side Bus)を用いることができる。又、このMCH20には、他のチップセット(サウスブリッジ:図示省略)も接続されており、このサウスブリッジが、CPU100とI/O(Input/Output)機器との間のデータの入出力を制御するようになっている。
メモリ30は、種々のデータやプログラムを一時的に格納する記憶装置(主記憶装置)であって、MCH20にメモリバス22を介して接続されている。このメモリ30は例えばRAM(Random Access Memory)である。
このメモリ30には、後述するCPU100のOSコア11a,11bがそれぞれデータ(タスク情報;詳細は後述)の書き込みや更新を任意に行なうことができる領域(メモリ領域)31がそなえられている。図1に示す例においては、OSコア11aが用いる領域31aと、OSコア11bが用いる領域31bとが示されている。
なお、以下、領域を示す符号としては、複数の領域のうち1つを特定する必要があるときには符号31a,31bを用いるが、任意の領域を指すときには符号31を用いる。
また、このメモリ30には、後述するCPU100の演算コア12a,12bがそれぞれデータの書き込みや更新を任意に行なうことができる領域(図示省略)もそなえられている。
CPU100は、図1に示すように、複数(図1に示す例においては2つ)のダイ(プロセッサダイ)10a,10bをそなえている。ダイ10aには、OSコア(第1のプロセッサコア)11a,演算コア(第2のプロセッサコア)12a,およびL2キャッシュ13aが形成されている。又、ダイ10bには、OSコア(第1のプロセッサコア)11b,演算コア(第2のプロセッサコア)12b,およびL2キャッシュ13bが形成されている。
そして、OSコア11aとOSコア11bとは互いにほぼ同様の構成をそなえており、同様に、演算コア12bと演算コア12b、および、L2キャッシュ13aとL2キャッシュ13bとも、互いにほぼ同様の構成をそなえている。すなわち、ダイ10aとダイ10bとも互いにほぼ同様の構成をそなえているのである。
また、これらのOSコア11a,OSコア11b,演算コア12aおよび演算コア12bは、バス14を介して互いに通信可能に接続されている。
なお、以下、OSコアを示す符号としては、複数のOSコアのうち1つを特定する必要があるときには符号11a,11bを用いるが、任意のOSコアを指すときには符号11を用いる。
同様に、以下、演算コアを示す符号としては、複数の演算コアのうち1つを特定する必要があるときには符号12a,12bを用いるが、任意の演算コアを指すときには符号12を用いる。又、以下、L2キャッシュを示す符号としては、複数のL2キャッシュのうち1つを特定する必要があるときには符号13a,13bを用いるが、任意のL2キャッシュを指すときには符号13を用いる。更に、以下、ダイを示す符号としては、複数のダイのうち1つを特定する必要があるときには符号10a,10bを用いるが、任意のダイを指すときには符号10を用いる。
OSコア11は、OS(第1のタスク)を処理するプロセッサコアである。又、OSコア11は、OSの処理に際して演算処理にかかるタスクがあった場合には、その演算処理にかかるタスクをいずれかの演算コア12に処理させるべく、CPU100にそなえらえた全ての演算コア12に対して演算要求(第2のタスクに関する処理要求)を出すようになっている。
具体的には、OSコア11は、CPU100にそなえらえた全ての演算コア12に対して割込通知を行なう(割り込みを上げる)ことにより演算要求を行なうようになっている。なお、演算コア12に対して割込通知を行なう手法としては、例えば、演算コア12における所定のポートや入力端子に対して割込信号を入力することにより実現することができる。又、このような演算コア12に対して割込通知を行なう手法は、既知の種々の手法を用いて実現してもよい。
また、OSコア11は、演算コア12に対して割込通知を行なうことによって演算要求を行なうに際して、メモリ30における所定の領域31(キュー)に、その演算処理にかかるタスクについての情報(タスク情報)を格納するようになっている。
具体的には、OSコア11aの場合には、演算コア12に対して演算要求の割込通知を行なうに際して、メモリ30の領域31aに、その演算処理にかかるタスク情報を格納する。同様に、OSコア11bの場合には、演算コア12に対して演算要求の割込通知を行なうに際して、メモリ30の領域31bに、その演算処理にかかるタスク情報を格納する。
このタスク情報は、演算コマンド(以下、単にコマンドという場合がある)や、このコマンドについての演算対象のデータに関する情報である。例えば、タスク情報として、コマンド種類,データ数,データサイズ,格納先,演算結果の格納先等に関する情報が、領域31にリンク先アドレス等の形式で格納されるようになっている。
また、OSコア11は、領域31にタスク情報を格納するとともに、領域31に対して行なったタスク情報の格納をL2キャッシュ13(詳細は後述)に反映させるよう、キャッシュコントローラ(図示省略)等に更新させるようになっている。
そして、OSコア11は、上述したタスク情報をキューに登録後、全ての演算コア12に対して割込通知を行なうようになっている。
L2キャッシュ13は、ダイ10にそなえられたキャッシュであって、OSコア11や演算コア12(詳細は後述)において頻繁に用いられるデータ等を一時的に格納する記憶装置である。OSコア11や演算コア12は、タスク情報等のデータを取得するために、メモリ30等の外部の記憶領域にアクセスする前に、このL2キャッシュ13にアクセスし、このL2キャッシュに所望のデータが格納されていない場合に、メモリ30等へデータを取得するためのアクセスを行なうようになっている。
すなわち、OSコア11や演算コア12は、タスク情報等のデータを取得するに際して、L2キャッシュ13においてキャッシュミスが発生した場合に、メモリ30等へデータを取得するためのアクセスを行なうようになっている。
また、L2キャッシュ13は、同一ダイ10上に形成されたOSコア11と演算コア12とにより共用されるようになっている。すなわち、OSコア11aと演算コア12aとは、同じくダイ10a上に形成されたL2キャッシュ13aを共有し、OSコア11bと演算コア12bとは、同じくダイ10b上に形成されたL2キャッシュ13bを共有している。
なお、L2キャッシュ13は、図示しないキャッシュコントローラによって、逐次更新されるようになっている。
演算コア12は、演算処理にかかるタスク(第2のタスク)を処理するプロセッサコアである。
例えば、本CPU100がRAID(Redundant Arrays of Inexpensive Disks)コントローラのプロセッサとして用いられる場合においては、XOR(exclusive or:排他的論理和)演算やCRC(Cyclic Redundancy Check:巡回冗長検査)演算,暗号化に伴う演算コマンド等が、演算処理にかかるタスクとして演算コア12によって実行される。
この演算コア12は、OSコア11からの演算要求を受けて、この演算にかかるタスクであるコマンドを処理(演算)し、その結果をOSコア11に返すようになっている。
また、演算コア12は、複数のOSコア11a,11bのいずれから行なわれた演算要求についても処理することができるようになっている。
そして、演算コア12は、OSコア11から送信された割込通知を受けると、その演算コア12と同一のダイ10上のOSコア11によって管理される(用いられる)メモリ領域に対してタスク情報を取得するためのアクセス(参照)を行なうようになっている。
具体的には、演算コア12aは、OSコア11から割込通知を受けると、ダイ10a上のOSコア11aによって管理される領域31aに対してタスク情報を取得するためのアクセスを行なう。同様に、演算コア12bは、OSコア11から割込通知を受けると、ダイ10b上のOSコア11bによって管理される領域31bに対してタスク情報を取得するためのアクセスを行なう。
また、演算コア12は、タスク情報の取得を行なうに際して、先ず、同一ダイ10上のL2キャッシュ13にアクセスしてタスク情報の取得を試みるようになっている。そして、演算コア12は、このL2キャッシュにおいてキャッシュミスが生じた場合に、メモリ30の領域31に対してタスク情報を取得するためのアクセスを行なうようになっている。
なお、以下、本実施形態においては、演算コア12による「同一のダイ10上にそなえられたOSコア11によって用いられるメモリ領域へのアクセス」には、演算コア12がメモリ30の領域31に対してアクセスを行なうことと、メモリ30へのアクセスに先立ってL2キャッシュ13に対してアクセスを行なうこととを含むものとする。
すなわち、割込通知を受けた演算コア12は、演算処理にかかるタスクに関する情報を取得すべく、その演算コア12と同一のダイ10上にそなえられたOSコア11によって管理されるメモリ領域、すなわち、L2キャッシュ13やメモリ30の領域31に対してそれぞれアクセスを行なう。
演算コア12が、L2キャッシュ13からタスク情報を取得することにより、メモリ30へのアクセスを行なう必要がなく、これによりタスクを高速に処理することができ、CPU100の処理速度を向上させることができる。
さらに、演算コア12は、同一ダイ10上にそなえられたOSコア11によって管理されるメモリ領域(L2キャッシュ13および領域31)からタスク情報の取得を取得できなかった場合に、他のダイ10上にそなえられたOSコア11によって管理される(用いられる)領域31に対してタスク情報を取得するためのアクセス(参照)を行なうようになっている。
具体的には、演算コア12aは、OSコア11aによって管理されるL2キャッシュ13aおよび領域31aからタスク情報を取得できなかった場合には、次に、OSコア11bによって管理されるメモリ30の領域31bに対してタスク情報を取得するためのアクセスを行なう。同様に、演算コア12bは、OSコア11bによって管理されるL2キャッシュ13bおよび領域31bからタスク情報を取得できなかった場合には、次に、OSコア11aによって管理されるメモリ30の領域31aに対してタスク情報を取得するためのアクセスを行なう。
そして、演算コア12は、L2キャッシュ13もしくはメモリ30においてタスク情報を取得できた場合には、このタスク情報を用いて、その演算処理にかかるタスクを処理する。
また、演算コア12がL2キャッシュ13もしくはメモリ30においてタスク情報を取得した場合には、そのタスク情報はメモリ30やL2キャッシュ13から消去されるようになっている。なお、これらのメモリ30やL2キャッシュ13からのタスク情報の消去は、演算コア12およびOSコア11のいずれが行なってもよく、又、これらの演算コア12やOSコア11以外ものが行なってもよい。
なお、演算コア12が、OSコア11からの割込通知を受けた際に、他のタスクにかかる処理を行なっている(ビジー(busy)状態)場合には、その演算コア12は、その処理中のタスクを完了させて処理を行なっていない状態(アイドル(idle)状態)になってから、タスク情報の参照を行なうようになっている。
このように、演算を行なっていない演算コア12が優先的にタスクの処理を行なうようになっているので、負荷の低い演算コア12がタスクを優先的に処理を行なうことになり、複数そなえられた演算コア12を効率的に使用することができるのである。
上述の如く構成された本実施形態の一例としてのCPU100におけるタスク処理手法を、図3〜図6を参照しながら、図2に示すフローチャート(ステップA10〜A70)に従って説明する。
図3〜図6はOSコア11および演算コア12の処理を説明するための図である。なお、これらの図3〜図6に示す例においては、本来、領域31やL2キャッシュに登録されているコマンドCを、便宜上、OSコア11aの近くに配置して示している。又、これらの図3〜図6においては、便宜上、OSコア11a,11b,演算コア12a,12b以外の図示を省略している。
また、図2〜図6においては、演算コア12a,12bがいずれもアイドル状態である場合にOSコア11aから割込通知を受けた例を示している。
CPU100において、例えば、OSコア11aがOSを実行処理中に、演算処理にかかるタスクがあった場合には、図3に示すように、OSコア11aは、そのタスク情報(コマンド等)を領域31aやL2キャッシュ13aに登録する(ステップA10;キャッシュ格納ステップ)。
そして、OSコア11aは、図4に示すように、全ての演算コア12a,12bに対して割込通知を行なう(ステップA20;通知ステップ)。
割込通知を受けた演算コア12a,12bは(受信ステップ)、それぞれ、自コアと同じダイ10上のOSコア11a,11bによって管理されるキューを参照する(ステップA30;アクセスステップ)。すなわち、演算コア12aは領域31a(L2キャッシュ13a)を参照し、演算コア12bは領域31b(L2キャッシュ13b)を参照する(図5参照)。
各演算コア12は、参照したキューにコマンドがあるか否かを確認し(ステップA40)、コマンドがある場合には(ステップA40のYESルート参照)、そのコマンドを取得するとともに、領域31からその取得したコマンドを削除する。その後、演算コア12は、取得したコマンドを処理して(ステップA50)、処理を終了する。
一方、参照したキューにコマンドがない場合には(ステップA40のNOルート参照)、演算コア12は、他のダイ10上のOSコア11a,11bによって管理されるキューを参照する(ステップA60;外部アクセスステップ)。
演算コア12においては、参照した他ダイ10のOSコア11にかかるキュー(領域31)にコマンドがあるか否かを確認し(ステップA70)、その結果、コマンドがある場合には(ステップA70のYESルート参照)、ステップA50に移行する。又、コマンドが格納されていない場合には(ステップA70のNOルート参照)、処理を終了する。
図6に示す例においては、演算コア12bは、OSコア11bによって管理される領域31bを参照した結果、このキューにコマンドが格納されていなかったので、ダイ10aのOSコア11aにかかるキューにコマンドがあるか否かを確認している。なお、この図6に示す例においては、演算コア12bが領域31aにアクセスした際には、既に演算コア12aによってこの領域31に格納されていたコマンドが取得・削除されてしまっている。そこで、演算コア12bは待機状態(アイドル状態)となり、次の割込通知が行なわれるまで待機する。
図2〜図6を用いて上述した例においては、演算コア12がいずれもアイドル状態である場合にOSコア11から割込み信号を受けた場合について示したが、次に、一方の演算コア12がビジー状態である場合について説明する。
図7〜図9は実施形態の一例としてのマルチコアプロセッサにおいてOSコア11aから割込通知を受けた際の処理を説明するための図である。これらの図7〜図9は複数の演算コア12a,12bのうち演算コア12aがビジー状態である場合にOSコア11aから割込通知を受けた際の処理を説明するための図であり、演算コア12a,12bがOSコア11aから割込通知を受けた後の状態を示している。
なお、これらの図7〜図9に示す例においても、本来、領域31やL2キャッシュに登録されているコマンドCを、便宜上、OSコア11aの近くに配置して示している。又、これらの図7〜図9においては、便宜上、OSコア11a,11b,演算コア12a,12b以外の図示を省略している。
図7に示すように、OSコア11aから割込通知を受けた演算コア12a,12bのうち、アイドル状態であった演算コア12bは、すぐに自コアと同じダイ10b上のOSコア11bのキューの参照を行なう。しかしながら、ここで、演算コア12aは、他のコマンドにより演算処理中(ビジー状態)であるので、この演算が完了するまで、すなわち、ビジー状態が解消するまでOSコア11aのキュー参照を保留する。
そして、図8に示すように、演算コア12aがキュー参照を保留している間に、演算コア12bが、次にダイ10a上のOSコア11aによって管理されるキュー(領域31a)を参照する。
演算コア12bは、領域31aからコマンドを取得するとともに、領域31aからその取得したコマンドを削除する。そして、演算コア12bは、この取得したコマンドを処理する。
一方、実行中の演算が完了した演算コア12aは、同じダイ10a上のOSコア11aのキューの参照を行なう。しかしながら、図9に示すように、演算コア12aが領域31aにアクセスした際には、この領域31に格納されていたコマンドは、演算コア12bによって既に取得・削除されてしまっている。
そこで、演算コア12aは、他のダイ10b上のOSコア11bによって管理されるキュー(領域31b)を参照する。演算コア12aは、この他ダイ10bのOSコア11bによって管理されるキューにおいてもコマンドを見つけることができない場合には、待機状態となり、次の割込通知が行なわれるまで待機する。
なお、OSコア11は、演算コア12の状態監視を行なうために、特定の演算コア12の情報収集が必要な場合や、自コアと同じダイ10上の演算コア12がビジー状態である場合には、特定の演算コア12に対してのみ割込通知を行なってもよい。
ここで、特定の演算コア12の情報収集が必要な場合としては、例えば、システムの初期化時や、システム異常発生時におけるシステムのログ採取時が挙げられる。
システムの起動時(初期化処理時)においては、起動時専用のプロセスがOSコア11により実行される。OSコア11は、この専用プロセスにおいて、特定の演算コア12の情報を収集するために、その演算コア12に対してのみ割込通知を行なう。
また、自コアと同じダイ10上の演算コア12がビジー状態である場合に、OSコア11が、アイドルな演算コア12に対して、直接、割込通知を行なうことにより、全ての演算コア12に対して割込通知を行なうことに比べて、バス14におけるトラフィックを軽減することができる。この割り込み通知が行なわれた演算コア12においては、例えば、先ず、自コアと同じダイ10上のOSコア11のキュー参照を行ない、このキューにおいてコマンドを取得することができなかった場合に、次に、他のダイ10上のOSコア11のキューを参照する。
例えば、演算コア12が、全てのコアから参照可能なメモリ領域(例えばメモリ30の所定の領域)に稼働率を書込み、OSコア11が、この稼働率を参照することにより、演算コア12がビジー状態であるか否かを容易に把握することができる。
このように、実施形態の一例としてのマルチコアプロセッサによれば、各演算コア12の状態を管理したり、演算コア12に対してタスクを割り振るための管理や制御を行なう必要がない。これにより、CPU100の構成を簡素化することができ、製造コストを低減することができる。又、CPU100における負荷を軽減し、処理速度を高速化することもできる。
そして、開示のマルチコアプロセッサ,制御方法および情報処理装置は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、ダイ10を2つそなえるとともに、各ダイ10にOSコア11と演算コア12とを1つずつそなえた例を示しているが、これに限定されるものではない。例えば、各ダイ10にOSコア11や演算コア12を2以上そなえてもよく、又、ダイ10において、OSコア11と演算コア12とを異なる数そなえてもよい。又、これらのように構成されたダイ10を3以上そなえて構成してもよい。
また、上述した実施形態においては、各ダイ10にL2キャッシュ13がそなえられた例を示しているが、これに限定されるものではない。例えば、L2キャッシュの他にL3キャッシュ等の他のキャッシュをそなえてもよく、又、L2キャッシュをそなえずに構成してもよい。更に、L2キャッシュ13の配置も種々変形して実施することができる。
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1) 第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサであって、
前記第1のプロセッサコアが、前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアにより用いられるメモリ領域に前記第2のタスクに関する情報を格納するとともに、前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行ない、
前記割込通知を受けた前記第2のプロセッサコアが、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアに用いられる前記メモリ領域に対してそれぞれアクセスを行なうことを特徴とする、マルチコアプロセッサ。
(付記2) 前記割込通知を受けた第2のプロセッサコアが、タスクを処理中である場合には、前記タスクの終了後に、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してアクセスを行なうことを特徴とする、付記1記載のマルチコアプロセッサ。
(付記3) 前記割込通知を受けた第2のプロセッサコアが、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してアクセスを行なった結果、前記メモリ領域において前記第2のタスクに関する情報を取得することができなかった場合に、前記第2のプロセッサコアと異なる前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してアクセスを行なうことを特徴とする、付記1又は付記2記載のマルチコアプロセッサ。
(付記4) 前記第1のプロセッサコアが、前記第1のプロセッサコアと同一の前記プロセッサダイ上にそなえられたキャッシュに対しても、前記第2のタスクに関する情報を格納することを特徴とする、付記1〜付記3のいずれか1項に記載のマルチコアプロセッサ。
(付記5) 第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサにおける制御方法であって、
前記第1のプロセッサコアが、
前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアにより用いられるメモリ領域に前記第2のタスクに関する情報を格納する格納ステップと、
前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行なう通知ステップと、
前記第2のプロセッサコアが、
前記割込通知を受ける受信ステップと、
前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してそれぞれアクセスを行なうアクセスステップとをそなえることを特徴とする、制御方法。
(付記6) 前記第2のプロセッサコアが、
前記受信ステップの実施時においてタスクを処理中である場合には、前記タスクの終了後に、前記アクセスステップを実施することを特徴とする、付記5記載の制御方法。
(付記7) 前記第2のプロセッサコアが、
前記アクセスステップにより、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してアクセスを行なった結果、前記メモリ領域において前記第2のタスクに関する情報を取得することができなかった場合に、前記第2のプロセッサコアと異なる前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してアクセスを行なう外部アクセスステップをそなえることを特徴とする、付記5又は付記6記載の制御方法。
(付記8) 前記第1のプロセッサコアが、前記第1のプロセッサコアと同一の前記プロセッサダイ上にそなえられたキャッシュに対しても、前記第2のタスクに関する情報を格納するキャッシュ格納ステップをそなえることを特徴とする、付記5〜付記7のいずれか1項に記載の制御方法。
(付記9) 付記1〜付記4のいずれか1項に記載のマルチコアプロセッサをそなえたことを特徴とする、情報処理装置。
実施形態の一例としてのマルチコアプロセッサの構成を模式的に示す図である。 実施形態の一例としてのマルチコアプロセッサにおけるタスク処理手法を説明するためのフローチャートである。 実施形態の一例としてのマルチコアプロセッサにおけるOSコアおよび演算コアの処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおけるOSコアおよび演算コアの処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおけるOSコアおよび演算コアの処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおけるOSコアおよび演算コアの処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおいてOSコアから割込み通知を受けた際の処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおいてOSコアから割込み通知を受けた際の処理を説明するための図である。 実施形態の一例としてのマルチコアプロセッサにおいてOSコアから割込み通知を受けた際の処理を説明するための図である。
符号の説明
10,10a,10b ダイ(プロセッサダイ)
11,11a,11b OSコア(第1のプロセッサコア)
12,12a,12b 演算コア(第2のプロセッサコア)
13,13a,13b L2キャッシュ(キャッシュ)
14 バス
20 MCH
21 CPUバス
22 メモリバス
30 メモリ
31a,31b 領域

Claims (6)

  1. 第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサであって、
    前記第1のプロセッサコアが、前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアに用いられるメモリ領域に前記第2のタスクに関する情報を格納するとともに、前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行ない、
    前記割込通知を受けた前記第2のプロセッサコアが前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアに用いられる前記メモリ領域に対してそれぞれアクセスを行なうことを特徴とする、マルチコアプロセッサ。
  2. 前記割込通知を受けた第2のプロセッサコアが、タスク処理中である場合には、前記タスクの終了後に、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアに用いられる前記メモリ領域に対してアクセスを行なうことを特徴とする、請求項1記載のマルチコアプロセッサ。
  3. 前記割込通知を受けた第2のプロセッサコアが、前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアに用いられる前記メモリ領域に対してアクセスを行なった結果、前記メモリ領域において前記第2のタスクに関する情報を取得することができなかった場合に、前記第2のプロセッサコアと異なる前記プロセッサダイ上にそなえられた前記第1のプロセッサコアに用いられる前記メモリ領域に対してアクセスを行なうことを特徴とする、請求項1又は請求項2記載のマルチコアプロセッサ。
  4. 前記第1のプロセッサコアが、前記第1のプロセッサコアと同一の前記プロセッサダイ上にそなえられたキャッシュに対しても、前記第2のタスクに関する情報を格納することを特徴とする、請求項1〜請求項3のいずれか1項に記載のマルチコアプロセッサ。
  5. 第1のタスクを処理する第1のプロセッサコアと、第2のタスクを処理する第2のプロセッサコアとが形成されたプロセッサダイを複数そなえたマルチコアプロセッサにおける制御方法であって、
    前記第1のプロセッサコアが、
    前記第1のタスクの処理に際して前記第2のタスクに関する処理要求を行なう際に、前記第1のプロセッサコアに用いられるメモリ領域に前記第2のタスクに関する情報を格納する格納ステップと、
    前記複数のプロセッサダイにそれぞれそなえられた各第2のプロセッサコアに対して割込通知を行なう通知ステップと、
    前記第2のプロセッサコアが、
    前記割込通知を受ける受信ステップと、
    前記第2のプロセッサコアと同一の前記プロセッサダイ上にそなえられた前記第1のプロセッサコアによって用いられる前記メモリ領域に対してそれぞれアクセスを行なうアクセスステップとをそなえることを特徴とする、制御方法。
  6. 請求項1〜請求項4のいずれか1項に記載のマルチコアプロセッサをそなえたことを特徴とする、情報処理装置。
JP2008314282A 2008-12-10 2008-12-10 マルチコアプロセッサ,制御方法および情報処理装置 Active JP4691153B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008314282A JP4691153B2 (ja) 2008-12-10 2008-12-10 マルチコアプロセッサ,制御方法および情報処理装置
US12/574,337 US8307141B2 (en) 2008-12-10 2009-10-06 Multi-core processor, control method thereof, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008314282A JP4691153B2 (ja) 2008-12-10 2008-12-10 マルチコアプロセッサ,制御方法および情報処理装置

Publications (2)

Publication Number Publication Date
JP2010140146A true JP2010140146A (ja) 2010-06-24
JP4691153B2 JP4691153B2 (ja) 2011-06-01

Family

ID=42099922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008314282A Active JP4691153B2 (ja) 2008-12-10 2008-12-10 マルチコアプロセッサ,制御方法および情報処理装置

Country Status (2)

Country Link
US (1) US8307141B2 (ja)
JP (1) JP4691153B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141590A (ja) * 2014-01-29 2015-08-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484648B2 (en) * 2009-10-19 2013-07-09 International Business Machines Corporation Hardware multi-threading co-scheduling for parallel processing systems
DE102015221064A1 (de) * 2015-10-28 2017-05-04 Robert Bosch Gmbh Anordnung aus wenigstens zwei Mikrocontrollern und Verfahren zur Herstellung einer solchen Anordnung

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH06309290A (ja) * 1993-04-23 1994-11-04 Fuji Electric Co Ltd 並列処理方式
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2007316710A (ja) * 2006-05-23 2007-12-06 Nec Corp マルチプロセッサシステム、ワークロード管理方法
JP2008513894A (ja) * 2004-09-23 2008-05-01 インテル・コーポレーション スレッドライブロックユニット
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
JP2008191949A (ja) * 2007-02-05 2008-08-21 Nec Corp マルチコアシステムおよびマルチコアシステムの負荷分散方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
EP0247604B1 (en) * 1986-05-30 1994-08-03 Bull HN Information Systems Inc. Apparatus and method for interprocessor communication
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
JPH02128267A (ja) * 1988-11-09 1990-05-16 Fujitsu Ltd 共有メモリによる通信方式
JPH03156559A (ja) * 1989-11-14 1991-07-04 Nec Corp マルチプロセッサシステムに於ける割込み処理方式
US5390328A (en) * 1992-03-30 1995-02-14 International Business Machines Corporation Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage
US6247077B1 (en) * 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
JP3769413B2 (ja) * 1999-03-17 2006-04-26 株式会社日立製作所 ディスクアレイ制御装置
JP2001167058A (ja) 1999-12-07 2001-06-22 Matsushita Electric Ind Co Ltd 情報処理装置
US6931643B2 (en) * 2000-04-03 2005-08-16 Texas Instruments Incorporated Interrupt throttling for inter-processor communications
EP1182559B1 (en) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US7530066B2 (en) * 2002-06-24 2009-05-05 Chang Stephen S Controlling snoop activities using task table in multiprocessor system
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7607757B2 (en) * 2004-05-27 2009-10-27 Silverbrook Research Pty Ltd Printer controller for supplying dot data to at least one printhead module having faulty nozzle
JP2006155187A (ja) * 2004-11-29 2006-06-15 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム。
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
JP2006260377A (ja) 2005-03-18 2006-09-28 Seiko Epson Corp 並列処理装置および情報処理方法
JP2008084009A (ja) 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
US7716397B2 (en) * 2007-07-03 2010-05-11 Lsi Corporation Methods and systems for interprocessor message exchange between devices using only write bus transactions
US7882333B2 (en) * 2007-11-05 2011-02-01 Dell Products L.P. Architectural enhancements to CPU microcode load mechanism using inter processor interrupt messages

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03113563A (ja) * 1989-09-28 1991-05-14 Hitachi Ltd マルチプロセッサスケジューリング方法
JPH06309290A (ja) * 1993-04-23 1994-11-04 Fuji Electric Co Ltd 並列処理方式
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2008513894A (ja) * 2004-09-23 2008-05-01 インテル・コーポレーション スレッドライブロックユニット
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2007316710A (ja) * 2006-05-23 2007-12-06 Nec Corp マルチプロセッサシステム、ワークロード管理方法
JP2008152594A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd マルチコアプロセッサ計算機の高信頼化方法
JP2008191949A (ja) * 2007-02-05 2008-08-21 Nec Corp マルチコアシステムおよびマルチコアシステムの負荷分散方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141590A (ja) * 2014-01-29 2015-08-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法
EP2905707A1 (en) 2014-01-29 2015-08-12 Fujitsu Limited Arithmetic processing apparatus and control method therefor
US9910779B2 (en) 2014-01-29 2018-03-06 Fujitsu Limited Arithmetic processing apparatus and control method therefor

Also Published As

Publication number Publication date
US20100095040A1 (en) 2010-04-15
US8307141B2 (en) 2012-11-06
JP4691153B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
US10997093B2 (en) NVME data processing method and NVME device
US10019181B2 (en) Method of managing input/output(I/O) queues by non-volatile memory express(NVME) controller
CN107729559B (zh) 数据库读写异步访问的方法、系统、设备及存储介质
US8607003B2 (en) Memory access to a dual in-line memory module form factor flash memory
US8433833B2 (en) Dynamic reassignment for I/O transfers using a completion queue
JP2006018689A (ja) ストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラム
JP2004054916A (ja) プロセッサ間のハードウェア支援通信を実行する方法
JP5499987B2 (ja) 共有キャッシュメモリ装置
JP4451687B2 (ja) ストレージシステム
JP4691153B2 (ja) マルチコアプロセッサ,制御方法および情報処理装置
US20180165246A1 (en) Multi-core processor and operation method thereof
JP2010211318A (ja) デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム
US20060265523A1 (en) Data transfer circuit and data transfer method
JP4894567B2 (ja) トレース情報出力装置、および、トレース情報出力方法
CN107526538B (zh) 用于在存储系统中传递消息的方法和系统
JP2016076108A (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
JP5516411B2 (ja) 情報処理システム
JP4259390B2 (ja) 並列演算処理装置
JP2006302065A (ja) ファイル共有システム、ファイル共有プログラム、管理サーバ及びクライアント端末
US8924644B2 (en) Extending cache in a multi-processor computer
CN116670661A (zh) 图形处理器的缓存访问方法、图形处理器及电子设备
WO2007096978A1 (ja) スヌープ制御方法および情報処理装置
US10642649B2 (en) Information processing device and system for suppressing degradation of processing performance of program, method for controlling information processing system, and non-transitory computer-readable storage medium
JPWO2018173300A1 (ja) I/o制御方法およびi/o制御システム
JP2005208972A (ja) コンピュータ装置及びシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

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: 20110201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110218

R150 Certificate of patent or registration of utility model

Ref document number: 4691153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3