JP2019179415A - マルチコアシステム - Google Patents

マルチコアシステム Download PDF

Info

Publication number
JP2019179415A
JP2019179415A JP2018068432A JP2018068432A JP2019179415A JP 2019179415 A JP2019179415 A JP 2019179415A JP 2018068432 A JP2018068432 A JP 2018068432A JP 2018068432 A JP2018068432 A JP 2018068432A JP 2019179415 A JP2019179415 A JP 2019179415A
Authority
JP
Japan
Prior art keywords
processing
core
execution
cpu
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018068432A
Other languages
English (en)
Inventor
智明 片野
Tomoaki Katano
智明 片野
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
NSI Texe Inc
Original Assignee
Denso Corp
NSI Texe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp, NSI Texe Inc filed Critical Denso Corp
Priority to JP2018068432A priority Critical patent/JP2019179415A/ja
Priority to PCT/JP2019/009630 priority patent/WO2019188178A1/ja
Publication of JP2019179415A publication Critical patent/JP2019179415A/ja
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Abstract

【課題】実装コストの増加を最小限に抑制し、複数のコア間のタスク最適割り当てを行うことができるマルチコアシステムを提供する。【解決手段】タスク処理の実行状況を通知する機能を有する複数のコア(41、42、43)と、複数のコア(41、42、43)から処理の実行状況に関する処理状態情報を受信するスケジューラ(44)と、を備えるマルチコアシステム。【選択図】図1

Description

本開示は、マルチコアシステム。
電子制御の高機能化に伴ってマイコンのマルチコア化が進んでおり、複数種類・複数個のコアにおける処理を最適化する必要がある。このようなコアにおける処理の最適化技術として、下記特許文献1に記載のものが開示されている。下記特許文献1に記載の発明では、各タスクの実行コストを見積もって、優先度や依存関係を考慮して実行するプロセッサを割り当てている。
特開2007−328415号公報
特許文献1では、該当タスクのみのコストは見積もる事ができるが、OSや複数タスク処理等のオーバーヘッド分を反映した判断が困難である。また、予めスケジューラがスケジューリングするためのルールを策定することも考えられるが、実行ルール策定のための開発工数が増える一方で、策定したルールの範囲での割り当てしかできない。更に、ルールを解釈するコンパイラやスケジューラが必要となるため、システムが複雑になり、実装コストが増える要因となる。
本開示は、実装コストの増加を最小限に抑制し、複数のコア間のタスク最適割り当てを行うことができるマルチコアシステムを提供することを目的とする。
本開示は、マルチコアシステムであって、タスク処理の実行状況を通知する機能を有する複数のコア(41、42、43)と、複数のコアから処理の実行状況に関する処理状態情報を受信するスケジューラ(44)と、を備える。
スケジューラが処理状態情報を受信することで、各コアの実行状態を動的に把握することができる。コア側から処理実行状態を通知し、通知された実行状態の管理をコアとは独立したスケジューラによって行うことで、スケジューリングによる処理オーバーヘッドを少なくすることができる。
尚、「課題を解決するための手段」及び「特許請求の範囲」に記載した括弧内の符号は、後述する「発明を実施するための形態」との対応関係を示すものであって、「課題を解決するための手段」及び「特許請求の範囲」が、後述する「発明を実施するための形態」に限定されることを示すものではない。
本開示によれば、実装コストの増加を最小限に抑制し、複数のコア間のタスク最適割り当てを行うことができるマルチコアシステムを提供することができる。
図1は、本実施形態であるマルチコアシステムのシステム構成を例示する図である。 図2は、本実施形態であるマルチコアシステムの機能的な構成要素を説明する図である。 図3は、本実施形態であるマルチコアシステムの処理を説明するための図である。 図4は、本実施形態であるマルチコアシステムの処理を説明するための図である。 図5は、本実施形態であるマルチコアシステムの処理を説明するための図である。 図6は、本実施形態であるマルチコアシステムの処理を説明するための図である。 図7は、本実施形態であるマルチコアシステムの処理を説明するための図である。
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
図1を参照しながら、本実施形態であるマルチコアシステムのシステム構成について説明する。図1に示されるように、マルチコアシステムはソフトウェア2及びハードウェア4によって構成されている。
ソフトウェア2は、OS21と、OSが実行するタスク22、OSが実行するパラタスク23と、OS管轄外のパラタスク24と、を含んでいる。OS21は、ハードウェア4に含まれるCPU0_41及びCPU1_42を駆動するためのオペレーティング・システムである。パラタスク23とパラタスク24とは、処理内容としては同等の処理になっている。
ハードウェア4は、CPU0_41と、CPU1_42と、アクセラレータであるDFP(Data Flow Processor)43と、スケジューラ44と、DMA(Direct Memory Access)45と、インターコネクト46と、メモリ47と、を備えている。
CPU0_41及びCPU1_42は、OS21の管轄下にあるプロセッサユニットであって、OS21によって動作が制御されている。CPU0_41は、PMU(Performance Unit)411を有している。PMU411は、CPU0_41の処理状態情報を保持する部分である。PMU411は、CPU0_41の処理状態情報をスケジューラ44に通知する部分である。CPU0_41の処理状態情報は、実行サイクル数、実行命令数、条件分岐での処理数、キャッシュのヒット率、条件分岐命令中における分岐先の処理率といった情報を含んでいる。
CPU1_42は、PMU421を有している。PMU421は、PMU411と同様の機能を有している。
DFP43は、アクセラレータであって、CPU0_41及びCPU1_42の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。DFP10は、スケジューラ44が生成した割り込みをサポートするように構成されている。
インターコネクト46は、DMA45とメモリ47との間の情報授受を担う部分である。メモリ47は、データ領域471と、データ領域472と、が設けられている。データ領域471は、CPU0_41及びCPU1_42側のデータを保持する領域である。データ領域472は、DFP43側のデータを保持する領域である。
DMA45は、メモリ47間のデータコピーを行う部分である。DMA45は、CPU0_41及びCPU1_42側のデータを保持する領域であるデータ領域471と、DFP43側のデータを保持するデータ領域472との間で必要に応じてデータコピーを実行する。
例えば、DFP43が、CPU0_41及びCPU1_42側に割り当てられていた処理を代わりに実行する場合、DMA45は、処理に使用するデータを、データ領域471からデータ領域472にコピーする。DFP43の処理結果はデータ領域472に格納されるので、DMA45は、処理結果のデータをデータ領域472からデータ領域471にコピーする。
続いて、図2を参照しながら、スケジューラ44の機能について説明を加える。図2に示されるように、CPU0_41は、PMU411と、レジスタ412とを有している。PMU411は、CPU0_41に設けられているALU、Decode、Fetchといった演算器、キャッシュから処理状態を取得し、処理状態情報を保持する。PMU411は、処理状態情報をスケジューラ44に送信する。レジスタ412は、スケジューラ44から送信される実行コア通知情報を保持する部分である。
CPU1_42は、PMU421と、レジスタ422とを有している。PMU421は、CPU1_42に設けられているALU、Decode、Fetchといった演算器、キャッシュから処理状態を取得し、処理状態情報を保持する。PMU421は、処理状態情報をスケジューラ44に送信する。レジスタ422は、スケジューラ44から送信される実行コア通知情報を保持する部分である。
DFP43は、PMU431と、レジスタ432とを有している。PMU431は、DFP43に設けられているALU、Decode、Fetchといった演算器、キャッシュから処理状態を取得し、処理状態情報を保持する。PMU431は、処理状態情報をスケジューラ44に送信する。レジスタ432は、スケジューラ44から送信される実行コア通知情報を保持する部分である。
スケジューラ44は、機能的な構成要素として、処理状態受信部441と、実行コア判定部442と、実行コア確認受理部443と、実行コア通知部444と、を備えている。
処理状態受信部441は、PMU411、PMU421、及びPMU431から送信される処理状態情報を受信する部分である。処理状態受信部441は、受信したCPU0_41、CPU1_42、及びDFP43の処理状態情報を実行コア判定部442に出力する。
実行コア確認受理部443は、CPU0_41及びCPU1_42から送信される、実行コア確認情報を受信する部分である。実行コア確認情報は、CPU1_41及びCPU1_42を用いてタスク処理を行う際に、そのまま実行してよいか否かの実行可否を確認する情報である。実行コア確認受理部443は、実行コア確認情報を受信すると、実行コア判定部442に出力する。
実行コア判定部442は、実行コア確認情報の入力をトリガとして、CPU0_41、CPU1_42、及びDFP43の処理状態情報を考慮し、タスク処理するコアを決定する部分である。例えば、CPU0_41から実行コア確認情報が入った場合に、処理状態情報を勘案してもCPU0_41でそのまま実行した方が全体の処理速度が早くなる場合は、CPU0_41をタスク処理コアとして判定する。一方、CPU0_41から実行コア確認情報が入った場合に、処理状態情報を勘案するとCPU1_42やDFP43で実行した方が全体の処理速度が早くなる場合は、CPU1_42やDFP43をタスク処理コアとして判定する。実行コア判定部442は、判定した結果を実行コア通知部444に出力する。
実行コア通知部444は、実行コア判定部442の判定結果に基づいて、タスクを処理するコアに対して実行コア通知情報を送信する部分である。
図3を参照しながら、本実施形態におけるシステム全体の処理を説明するためのフローチャートである。ステップS001では、OSが実行コアを確認する。OSの実行コア確認に伴って、CPU0_41及びCPU1_42に対して実行コア確認情報が送信される。この実行コア確認情報の送信に応じて、実行コア通知情報が送信される。
ステップS001に続くステップS002では、メインCPUであるCPU0_41又はCPU1_42でタスクが実行されるか否かを判断する。メインCPUであるCPU0_41又はCPU1_42でタスクが実行される場合には、ステップS003の処理に進む。メインCPUであるCPU0_41又はCPU1_42でタスクが実行されない場合には、ステップS004の処理に進む。
ステップS003では、メインCPUであるCPU0_41又はCPU1_42でタスクが実行される。
ステップS004では、他コアであるDFP43でのタスク処理の準備が実行される。具体的には、DMA45が、データ領域471からデータ領域472に必要となるデータをコピーする。
ステップS005では、DFP43でタスクが実行される。ステップS005では、終了処理が実行される。具体的には、DMA45が、データ領域472からデータ領域471に処理結果であるデータをコピーする。
続いて、図4を参照しながら、CPU0_41、CPU1_42、及びDFP43における処理を説明する。ステップS051では、CPU0_41、CPU1_42、及びDFP43のいずれかがタスク処理を実行する。
ステップS051に続くステップS052は、タスクを実行したコアがPMU値(処理状態情報)を更新する。ステップS052に続くステップS053は、更新した値をPMU411、PMU421、及びPMU431のいずれかがスケジューラ44に送信する。
続いて、図5を参照しながら、スケジューラ44の処理について説明する。ステップS101では、PMU411、PMU421、及びPMU431が送信した処理状態情報であるPMU値を受信する。
ステップS101に続くステップS102では、実行コア判定部442が、処理状態情報であるPMU値を、実行状態を比較する値に変換する。ステップS102に続くステップS103では、全コアの処理状態を比較する。ステップS103に続くステップS104では、実行コア判定部442が、次のタスク処理を実行するコアを決定する。
続いて、図6を参照しながら、タスク処理について説明する。ステップS151では、実行コア確認受理部443が、実行コア確認情報を受信する。
ステップS151に続くステップS152では、実行コア判定部442が、メインCPUであるCPU0_41又はCPU1_42でのタスク実行か否かを判断する。メインCPUであるCPU0_41又はCPU1_42でのタスク実行であれば、ステップS153の処理に進む。メインCPUであるCPU0_41又はCPU1_42でのタスク実行でなければ、ステップS154の処理に進む。
ステップS153では、実行コア通知部444が、メインCPUであるCPU0_41又はCPU1_42に実行コア通知情報を送信する。
ステップS154では、実行コア通知部444が、DFP43に実行コア通知情報を送信する。ステップS154に続くステップS155では、DMA45にDFP43でのタスク実行に必要データを受け取る指示を出力する。
ステップS155に続くステップS156では、DMA45が起動し、必要なデータコピーを実行する。ステップS156に続くステップS157では、DMA45の動作を完了する。ステップS157に続くステップS158では、他コアであるDFP43を起動する。
続いて、図7を参照しながら、DFP43のタスク終了処理について説明する。ステップS201では、他コアであるDFP43からタスク処理終了の通知をスケジューラ44が受信する。
ステップS201に続くステップS202では、タスク処理結果をメインCPUであるCPU0_41及びCPU1_42に戻すため、DMA45を起動する。DMA45は、データ領域472からデータ領域471に処理結果であるデータをコピーする。ステップS202に続くステップS203では、DMA45の動作を完了する。
ステップS203に続くステップS204では、スケジューラ44が、メインCPUであるCPU0_41及びCPU1_42にタスク終了通知を送信する。ステップS204に続くステップS205では、次の実行タスク有無を判断する。次の実行タスクがあれば処理を終了する。次の実行タスクがなければ、他コアであるDFP43の終了処理を実行する。
上記したように本実施形態は、マルチコアシステムであって、タスク処理の実行状況を通知する機能を有する複数のコアとしてのCPU0_41、CPU1_42、DFP43と、複数のコアであるCPU0_41、CPU1_42、DFP43から処理の実行状況に関する処理状態情報を受信するスケジューラ44と、を備える。
スケジューラ44が処理状態情報を受信することで、CPU0_41、CPU1_42、DFP43といった各コアの実行状態を動的に把握することができる。コア側から処理実行状態を通知し、通知された実行状態の管理をコアとは独立したスケジューラによって行うことで、スケジューリングによる処理オーバーヘッドを少なくすることができる。特別なコンパイラや事前のルール策定は不要なので、簡易な実現構成による低コスト化も達成することができる。
本実施形態では、スケジューラ44は、処理状態情報に基づいて複数のコアであるCPU0_41、CPU1_42、DFP43それぞれにタスク処理を割り当てる。
処理状態情報に基づくことで、一番処理負荷が軽いコアにタスクを割当てることができる。
本実施形態では、複数のコアは、少なくとも2種類以上のコアであるCPU0_41、CPU1_42、DFP43によって構成されている。
ヘテロジニアス構成の各コア間でのオーバーヘッドになるデータ受け渡し等を切り離し独立して自動実行する機能を実現することができる。
本実施形態では、スケジューラ44は、複数のコアの少なくとも一部からタスク処理の実行を行うことの可否問い合わせを受信し、受信タイミングに応じた処理状態情報に基づいて、複数のコアの中からタスク処理を実行するコアを判断する。
ヘテロジニアス構成の各コアの、現時点での処理状況を判断したうえで、的確に処理の割当てを行うことができる。性能向上及び消費電力低下を実現することができる。
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
41:CPU0(コア)
42:CPU1(コア)
43:DFP(コア)
44:スケジューラ

Claims (4)

  1. マルチコアシステムであって、
    タスク処理の実行状況を通知する機能を有する複数のコア(41、42、43)と、
    複数の前記コアから処理の実行状況に関する処理状態情報を受信するスケジューラ(44)と、を備えるマルチコアシステム。
  2. 請求項1に記載のマルチコアシステムであって、
    前記スケジューラは、前記処理状態情報に基づいて複数の前記コアそれぞれにタスク処理を割り当てる、マルチコアシステム。
  3. 請求項1又は2に記載のマルチコアシステムであって、
    複数の前記コアは、少なくとも2種類以上のコアによって構成されている、マルチコアシステム。
  4. 請求項1から3のいずれか1項に記載のマルチコアシステムであって、
    前記スケジューラは、複数の前記コアの少なくとも一部からタスク処理の実行を行うことの可否問い合わせを受信し、受信タイミングに応じた前記処理状態情報に基づいて、複数の前記コアの中からタスク処理を実行するコアを判断する、マルチコアシステム。
JP2018068432A 2018-03-30 2018-03-30 マルチコアシステム Pending JP2019179415A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018068432A JP2019179415A (ja) 2018-03-30 2018-03-30 マルチコアシステム
PCT/JP2019/009630 WO2019188178A1 (ja) 2018-03-30 2019-03-11 マルチコアシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018068432A JP2019179415A (ja) 2018-03-30 2018-03-30 マルチコアシステム

Publications (1)

Publication Number Publication Date
JP2019179415A true JP2019179415A (ja) 2019-10-17

Family

ID=68058886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018068432A Pending JP2019179415A (ja) 2018-03-30 2018-03-30 マルチコアシステム

Country Status (2)

Country Link
JP (1) JP2019179415A (ja)
WO (1) WO2019188178A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008084009A (ja) * 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
JPWO2007037006A1 (ja) * 2005-09-29 2009-04-02 富士通株式会社 マルチコアプロセッサ
JP2014067248A (ja) * 2012-09-26 2014-04-17 Renesas Electronics Corp プロセッサ、割り込み処理方法及び割り込み制御装置
JP2014078072A (ja) * 2012-10-09 2014-05-01 Canon Inc 情報処理装置、情報処理方法およびプログラム
JPWO2012120655A1 (ja) * 2011-03-08 2014-07-07 富士通株式会社 スケジューリング方法およびスケジューリングシステム
JP2015035028A (ja) * 2013-08-07 2015-02-19 株式会社東芝 情報処理方法、情報処理装置及びプログラム
JP2018022345A (ja) * 2016-08-03 2018-02-08 東芝メモリ株式会社 情報処理システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007037006A1 (ja) * 2005-09-29 2009-04-02 富士通株式会社 マルチコアプロセッサ
JP2008084009A (ja) * 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
JPWO2012120655A1 (ja) * 2011-03-08 2014-07-07 富士通株式会社 スケジューリング方法およびスケジューリングシステム
JP2014067248A (ja) * 2012-09-26 2014-04-17 Renesas Electronics Corp プロセッサ、割り込み処理方法及び割り込み制御装置
JP2014078072A (ja) * 2012-10-09 2014-05-01 Canon Inc 情報処理装置、情報処理方法およびプログラム
JP2015035028A (ja) * 2013-08-07 2015-02-19 株式会社東芝 情報処理方法、情報処理装置及びプログラム
JP2018022345A (ja) * 2016-08-03 2018-02-08 東芝メモリ株式会社 情報処理システム

Also Published As

Publication number Publication date
WO2019188178A1 (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
US20210064435A1 (en) Memory Interface for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric
US10445271B2 (en) Multi-core communication acceleration using hardware queue device
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
US8417918B2 (en) Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing
EP3198460B1 (en) Apparatus and method for configuring sets of interrupts
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
WO2016100142A2 (en) Advanced processor architecture
WO2011032327A1 (zh) 并行处理器及其线程处理方法
US20110238963A1 (en) Reconfigurable array and method of controlling the reconfigurable array
KR20160051883A (ko) 가상 재시도 큐
US20230127112A1 (en) Sub-idle thread priority class
US20050278720A1 (en) Distribution of operating system functions for increased data processing performance in a multi-processor architecture
WO2015068382A1 (ja) 情報処理装置、情報処理方法、記録媒体、計算処理装置、計算処理方法
KR101603752B1 (ko) 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
WO2014190699A1 (zh) 一种cpu指令处理方法和处理器
US20170147345A1 (en) Multiple operation interface to shared coprocessor
US8910181B2 (en) Divided central data processing
EP2860643A2 (en) Collective communications apparatus and method for parallel systems
WO2019188178A1 (ja) マルチコアシステム
JP2020091751A (ja) 演算処理装置および演算処理装置の制御方法
WO2021106608A1 (ja) 情報処理装置
JP4444305B2 (ja) 半導体装置
JP2010146117A (ja) 情報処理装置、情報処理方法および情報処理プログラム
EP3495960A1 (en) Program, apparatus, and method for communicating data between parallel processor cores
JP2006520957A (ja) マルチプロセッサシステムのタイプ変換ユニット

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230418