JP6413922B2 - ソフトウェア分割方法、ソフトウェア分割装置および車載装置 - Google Patents

ソフトウェア分割方法、ソフトウェア分割装置および車載装置 Download PDF

Info

Publication number
JP6413922B2
JP6413922B2 JP2015101175A JP2015101175A JP6413922B2 JP 6413922 B2 JP6413922 B2 JP 6413922B2 JP 2015101175 A JP2015101175 A JP 2015101175A JP 2015101175 A JP2015101175 A JP 2015101175A JP 6413922 B2 JP6413922 B2 JP 6413922B2
Authority
JP
Japan
Prior art keywords
software
division
dividing
divided
procedure
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
Application number
JP2015101175A
Other languages
English (en)
Other versions
JP2016218627A (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 JP2015101175A priority Critical patent/JP6413922B2/ja
Priority to DE102016208178.0A priority patent/DE102016208178A1/de
Publication of JP2016218627A publication Critical patent/JP2016218627A/ja
Application granted granted Critical
Publication of JP6413922B2 publication Critical patent/JP6413922B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、複数のコアを備えるマイクロコンピュータで実行されるソフトウェアを分割するソフトウェア分割方法およびソフトウェア分割装置と、複数のコアを備えるマイクロコンピュータを内蔵する車載装置に関する。
従来、複数のコアを備えるマイクロコンピュータを内蔵する車載装置において、マイクロコンピュータで実行される制御処理を複数のコアに割り当てるために、マイクロコンピュータが備えるコアの数に応じてソフトウェアを分割することにより複数のプログラムを作成することが行われている(例えば、特許文献1を参照)。
特開2014−160453号公報
しかし、マイコンに搭載されるコアの数の増加に伴い、各コアの処理負荷が均等になるようにソフトウェアを分割することが困難になってきている。
本発明は、こうした問題に鑑みてなされたものであり、各コアの処理負荷が均等になるようにソフトウェアを分割することを容易にする技術を提供することを目的とする。
上記目的を達成するためになされた第1発明は、複数のコアを備えるマイクロコンピュータで実行されるソフトウェアを、複数のコアのそれぞれに割り当てるために分割するソフトウェア分割方法であって、第1分割手順と、第2分割手順とを備える。
第1分割手順は、ソフトウェアの少なくとも一部を、制御の切れ目または演算の切れ目で、マイクロコンピュータが備えるコアの数より少ない分割数で分割する。第2分割手順は、第1分割手順で分割された後のソフトウェアを、データの流れの疎な部分で分割することにより、ソフトウェアの少なくとも一部を、マイクロコンピュータが備えるコアの数に分割する。
このように構成された第1発明のソフトウェア分割方法は、ソフトウェアを、制御の切れ目または演算の切れ目で分割した後に、更にデータの流れの疎な部分で分割する。
制御の切れ目または演算の切れ目で分割する方法は、人が思考して分割可能と判断できる箇所で分割するものであり、処理の大小でばらつきが生じる。一方、データの流れの疎な部分で分割する方法は、人では分割が困難な方式であり、コンピュータによる自動化に向いた分割方式であるため、分割サイズのばらつきを小さく抑えることができる。
つまり、第1発明のソフトウェア分割方法は、コンピュータによる自動化に向いた分割方法(すなわち、データの流れの疎な部分で分割する方法)を採用することにより、各コアの処理負荷が均等になるようにソフトウェアを分割することを容易にすることができる。但し、データの流れの疎な部分で分割する方法では、分割可能な数に限界がある場合がある。このため、第1発明のソフトウェア分割方法は、マイクロコンピュータが備えるコアの数が、データの流れの疎な部分で分割する方法で可能な分割数以上である場合に、制御の切れ目または演算の切れ目で分割する。これにより、第1発明のソフトウェア分割方法は、目標のコア数に適切にソフトウェアを分割することができる。
上記目的を達成するためになされた第2発明は、複数のコアを備えるマイクロコンピュータで実行されるソフトウェアを、複数のコアのそれぞれに割り当てるために分割するソフトウェア分割装置であって、第1分割手段と、第2分割手段とを備える。
第1分割手段は、ソフトウェアの少なくとも一部を、制御の切れ目または演算の切れ目で、マイクロコンピュータが備えるコアの数より少ない分割数で分割する。第2分割手段は、第1分割手段で分割された後のソフトウェアを、データの流れの疎な部分で分割することにより、ソフトウェアの少なくとも一部を、マイクロコンピュータが備えるコアの数に分割する。
第2発明のソフトウェア分割装置は、第1発明のソフトウェア分割方法を実行する装置であり、第1発明のソフトウェア分割方法と同様の効果を得ることができる。
上記目的を達成するためになされた第3発明は、複数のコアを備えるマイクロコンピュータを内蔵する車載装置であって、複数のコアは、第1分割手順と、第2分割手順とを備えるソフトウェア分割方法により分割されたソフトウェアにより動作する。
第3発明の車載装置は、第1発明のソフトウェア分割方法で作成されたソフトウェアを実行する装置である。このため、第3発明の車載装置は、マイクロコンピュータが備える複数のコアの処理負荷が均等となるため、マイクロコンピュータのコアを効率よく使用することができる。
ソフトウェア分割装置1の構成を示すブロック図である。 第1実施形態のソフトウェア分割処理を示すフローチャートである。 データの流れの疎密の具体例を示す図である。 コア数nとデータ依存性分割数lに応じた分割の具体例を示す図である。 処理能力が同一な複数のコアにソフトウェアを割り当てる状況を説明する図である。 第2実施形態のECU101の構成を示すブロック図である。 別の実施形態のソフトウェア分割処理を示すフローチャートである。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
本実施形態のソフトウェア分割装置1は、図1に示すように、表示部11と、操作入力部12と、データ記憶部13と、データ入出力部14と、制御部15とを備える。
表示部11は、表示装置(不図示)を備え、表示装置の表示画面に各種画像を表示する。
操作入力部12は、使用者がキーボード(不図示)とマウス(不図示)を介して行った入力操作を特定するための入力操作情報を出力する。
データ記憶部13は、各種データを記憶するための記憶装置である。
データ入出力部14は、有線または無線で接続された外部機器との間でデータの入出力を行う。
制御部15は、操作入力部12およびデータ入出力部14からの入力に基づいて各種処理を実行し、表示部11、データ記憶部13およびデータ入出力部14を制御する。
このように構成されたソフトウェア分割装置1において、制御部15は、ソフトウェア分割処理を実行する。
ここで、制御部15が実行するソフトウェア分割処理の手順を説明する。ソフトウェア分割処理は、ソフトウェア分割処理を実行するために制御部15に記憶されたソフトウェア分割プログラム20を使用者の入力操作により起動することで実行される。なおソフトウェア分割プログラム20は、ソフトウェア分割装置1に予めインストールされていてもよいし、記録媒体またはネットワークを介してインストールされるようにしてもよい。記録媒体としては、例えば光ディスク、磁気ディスクおよび半導体メモリなどが挙げられる。
このソフトウェア分割処理が実行されると、制御部15は、図2に示すように、まず、S10にて、コアの数n(以下、コア数nという)と、ソフトウェア分割を行う対象となるソフトウェア(以下、分割対象ソフトウェアという)とを選択するための画像(以下、選択画像という)を表示部11の表示画面に表示する。
その後S20にて、使用者により選択されたコア数nおよび分割対象ソフトウェアを特定する選択特定情報が操作入力部12から入力されたか否かを判断する。ここで、選択特定情報が入力されていない場合には(S20:NO)、S20の処理を繰り返すことにより、選択特定情報が入力するまで待機する。そして、選択特定情報が入力されると(S20:YES)、S30にて、選択特定情報により特定される分割対象ソフトウェアをデータ記憶部13から取得する。
そしてS40にて、S30で取得した分割対象ソフトウェアに対して、データの流れの疎な部分での分割(以下、データ依存性分割という)を試行し、これにより、データ依存性分割で可能な分割数l(以下、データ依存性分割数lという)を決定する。
ソフトウェア処理では、複数のデータが互いに依存して演算が実行される。例えば、図3に示すように、データA,B,C,D,E,F,G,H,I,J,K,L,M,N,Oが存在するとする。そして、ソフトウェア処理の流れとして、データA→データB→データC,D→データE,F→データG,H→データI→データJ→データK,L→データM→データN,Oの順で演算が実行されるとする。
さらに、データB,C,Dの演算はデータAを利用するとする(矢印D1,D2,D3を参照)。データEの演算はデータB,Cを利用するとする(矢印D4,D5を参照)。データFの演算はデータDを利用するとする(矢印D6を参照)。データGの演算はデータA,Eを利用するとする(矢印D7,D8を参照)。データHの演算はデータE,Fを利用するとする(矢印D9,D10を参照)。データIの演算はデータHを利用するとする(矢印D11を参照)。データJの演算はデータIを利用するとする(矢印D12を参照)。データKの演算はデータJを利用するとする(矢印D13を参照)。データLの演算はデータI,Jを利用するとする(矢印D14,D15を参照)。データMの演算はデータI,K,Lを利用するとする(矢印D16,D17,D18を参照)。データNの演算はデータMを利用するとする(矢印D19を参照)。データOの演算はデータK,Mを利用するとする(矢印D20,D21を参照)。
この場合に、データBの演算とデータC,Dの演算との間が、データの流れが密な部分となる(指示領域R1を参照)。また、データE,Fの演算とデータG,Hの演算との間が、データの流れが密な部分となる(指示領域R2を参照)。また、データHの演算とデータIの演算との間が、データの流れが疎な部分となる(指示領域R3を参照)。
データの依存性(すなわち、データの流れの疎密)を見つける手法としては、様々なアルゴリズムが知られており、例えば特開2015−1807号公報にて公知であるため、説明を省略する。
そしてS40の処理が終了すると、図2に示すように、S50にて、コア数nをデータ依存性分割数lで除算した除算値(すなわち、n/l)について小数点以下を切り上げた値を、制御・演算分割数kとして決定する。
次にS60にて、S30で取得した分割対象ソフトウェアを制御の切れ目または演算の切れ目で制御・演算分割数kに分割する制御・演算分割を実行する。S60では、分割された各ソフトウェアでの処理負荷ができる限り均等になるように、分割対象ソフトウェアを分割する。なお、「制御の切れ目」とは、例えば、燃料噴射制御、EGR制御または変速制御等のように明らかに独立した制御機能の境界部分である。また、「演算の切れ目」とは、例えば燃料噴射制御の中で行うA/F値演算等のように、その単位で演算の区切りがあり、あたかもパイプライン処理のように後段の演算に演算結果群(通常は複数の変数群)を渡す部分である。
さらにS70にて、S60で分割された後のソフトウェアに対して、データ依存性分割を実行する。これにより、S30で取得した分割対象ソフトウェアがコア数nに分割される。S70では、分割された各ソフトウェアでの処理負荷ができる限り均等になるように、S60で分割された後のソフトウェアを分割する。
そしてS80にて、S70で分割された後のソフトウェアをデータ記憶部13に記憶し、ソフトウェア分割処理を終了する。
次に、コア数n=4,5,8,12であり、データ依存性分割数l=2,3,4,5である場合の分割方法を説明する。
図4に示すように、コア数n=4であり、データ依存性分割数l=2である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアのそれぞれについて、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=4であり、データ依存性分割数l=3である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアのうちの1つについて、データ依存性分割数l=3のデータ依存性分割を実行する。
コア数n=4であり、データ依存性分割数l=4である場合には、制御・演算分割数k=1である。このため、制御・演算分割を実行せず、データ依存性分割数l=4のデータ依存性分割を実行する。
コア数n=4であり、データ依存性分割数l=5である場合には、制御・演算分割数k=1である。このため、制御・演算分割を実行せず、データ依存性分割数l=4のデータ依存性分割を実行する。
コア数n=5であり、データ依存性分割数l=2である場合には、制御・演算分割数k=3である。このため、まず、制御・演算分割数k=3の制御・演算分割を実行し、その後、分割された3つのソフトウェアのうちの2つについて、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=5であり、データ依存性分割数l=3である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアの一方について、データ依存性分割数l=3のデータ依存性分割を実行し、他方について、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=5であり、データ依存性分割数l=4である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアのうちの1つについて、データ依存性分割数l=4のデータ依存性分割を実行する。
コア数n=5であり、データ依存性分割数l=5である場合には、制御・演算分割数k=1である。このため、制御・演算分割を実行せず、データ依存性分割数l=5のデータ依存性分割を実行する。
コア数n=8であり、データ依存性分割数l=2である場合には、制御・演算分割数k=4である。このため、まず、制御・演算分割数k=4の制御・演算分割を実行し、その後、分割された3つのソフトウェアのそれぞれについて、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=8であり、データ依存性分割数l=3である場合には、制御・演算分割数k=3である。このため、まず、制御・演算分割数k=3の制御・演算分割を実行し、その後、分割された3つのソフトウェアのうちの2つについて、データ依存性分割数l=3のデータ依存性分割を実行し、残りの1つについて、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=8であり、データ依存性分割数l=4である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアのそれぞれについて、データ依存性分割数l=4のデータ依存性分割を実行する。
コア数n=8であり、データ依存性分割数l=5である場合には、制御・演算分割数k=2である。このため、まず、制御・演算分割数k=2の制御・演算分割を実行し、その後、分割された2つのソフトウェアの一方について、データ依存性分割数l=5のデータ依存性分割を実行し、他方について、データ依存性分割数l=3のデータ依存性分割を実行する。
コア数n=12であり、データ依存性分割数l=2である場合には、制御・演算分割数k=6である。このため、まず、制御・演算分割数k=6の制御・演算分割を実行し、その後、分割された6つのソフトウェアのそれぞれについて、データ依存性分割数l=2のデータ依存性分割を実行する。
コア数n=12であり、データ依存性分割数l=3である場合には、制御・演算分割数k=4である。このため、まず、制御・演算分割数k=4の制御・演算分割を実行し、その後、分割された4つのソフトウェアのそれぞれについて、データ依存性分割数l=3のデータ依存性分割を実行する。
コア数n=12であり、データ依存性分割数l=4である場合には、制御・演算分割数k=3である。このため、まず、制御・演算分割数k=3の制御・演算分割を実行し、その後、分割された3つのソフトウェアのそれぞれについて、データ依存性分割数l=4のデータ依存性分割を実行する。
コア数n=12であり、データ依存性分割数l=5である場合には、制御・演算分割数k=3である。このため、まず、制御・演算分割数k=3の制御・演算分割を実行し、その後、分割された3つのソフトウェアのそれぞれについて、データ依存性分割数l=5,4,3のデータ依存性分割を実行する。
このように構成されたソフトウェア分割装置1は、分割対象ソフトウェアを、制御の切れ目または演算の切れ目で、コア数nより少ない分割数で分割する(S60)。さらにソフトウェア分割装置1は、分割された後の分割対象ソフトウェアを、データの流れの疎な部分で分割することにより、分割対象ソフトウェアを、コア数nに分割する(S70)。
このようにソフトウェア分割装置1は、ソフトウェアを、制御の切れ目または演算の切れ目で分割した後に、更にデータの流れの疎な部分で分割する。
制御の切れ目または演算の切れ目で分割する方法は、人が思考して分割可能と判断できる箇所で分割するものであり、処理の大小でばらつきが生じる。一方、データの流れの疎な部分で分割する方法は、人では分割が困難な方式であり、コンピュータによる自動化に向いた分割方式であるため、分割サイズのばらつきを小さく抑えることができる。
つまり、ソフトウェア分割装置1は、コンピュータによる自動化に向いた分割方法(すなわち、データの流れの疎な部分で分割する方法)を採用することにより、各コアの処理負荷が均等になるようにソフトウェアを分割することを容易にすることができる。但し、データの流れの疎な部分で分割する方法では、分割可能な数に限界がある場合がある。このため、ソフトウェア分割装置1は、マイクロコンピュータが備えるコアの数が、データの流れの疎な部分で分割する方法で可能な分割数以上である場合に、制御の切れ目または演算の切れ目で分割する。これにより、ソフトウェア分割装置1は、目標のコア数に適切にソフトウェアを分割することができる。
またソフトウェア分割装置1は、分割された各ソフトウェアでの処理負荷ができる限り均等になるように、制御の切れ目または演算の切れ目で分割対象ソフトウェアを分割する(S60)。これにより、ソフトウェア分割装置1は、データの流れの疎な部分で分割するときに、各ソフトウェアでの処理負荷ができる限り均等になるように分割することを更に容易にすることができる。
またソフトウェア分割装置1は、分割された各ソフトウェアでの処理負荷ができる限り均等になるように、データの流れの疎な部分で、制御の切れ目または演算の切れ目で分割された後の分割対象ソフトウェアを分割する(S70)。これにより、ソフトウェア分割装置1は、マイクロコンピュータが備える複数のコアの処理負荷を均等にすることができる。これにより、マイクロコンピュータのコアを効率よく使用することができる。例えば図5に示すように、ソフトウェア分割装置1は、ソフトウェアを、制御の切れ目または演算の切れ目で2分割する(指示領域R11を参照)。さらに、ソフトウェア分割装置1は、2分割されたソフトウェアを、データの流れの疎な部分で分割することにより、処理負荷が均等になるように4分割する(指示領域R12を参照)。これにより、ソフトウェア分割装置1は、処理能力が互いに同一なコアC1,C2,C3,C4に、4分割されたソフトウェアを割り当てることができる。
またソフトウェア分割装置1は、制御の切れ目または演算の切れ目で分割する前に、分割対象ソフトウェアに対して、データの流れの疎な部分での分割を試行し、データ依存性分割で可能なデータ依存性分割数lを決定する(S40)。そしてソフトウェア分割装置1は、コア数nをデータ依存性分割数lで除算した除算値(すなわち、n/l)について小数点以下を切り上げた値を制御・演算分割数kとして、制御・演算分割数kで分割対象ソフトウェアを分割する(S50,S60)。
これにより、ソフトウェア分割装置1は、データの流れの疎な部分での分割で可能な分割数に応じた適切な分割数で、制御の切れ目または演算の切れ目での分割を実行することができる。
以上説明した実施形態において、S60の処理は本発明における第1分割手順および第1分割手段、S70の処理は本発明における第2分割手順および第2分割手段、S40の処理は本発明における第2分割数決定手順および第2分割数決定手段、制御・演算分割数kは本発明における第1分割数、データ依存性分割数lは本発明における第2分割数である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。
本実施形態の電子制御装置(Electronic Control Unit)101(以下、ECU101という)は、車両に搭載され、車両に搭載されたエンジン(不図示)を制御する。
ECU101は、図6に示すように、マイクロコンピュータ(以下、マイコンという)102と入力回路103と出力回路104とを備えている。
マイコン102は、クランク軸センサからのクランク信号、カム軸センサからの気筒判別用信号、水温センサおよびスロットル開度センサ等からの他の各種センサ信号、トランスミッションのシフトポジションスイッチおよびエアコンスイッチ等からの各種スイッチ信号を入力回路103を介して取り込む。またマイコン102は、取り込んだ各種信号に基づいて、出力回路104を介してインジェクタへ駆動信号を出力する燃料噴射制御、出力回路104を介して点火装置へ駆動信号を出力する点火時期制御などのエンジン制御を実施する。
マイコン102は、CPU111、ROM112、RAM113、I/O114及びこれらの構成を接続するバスラインなどから構成され、ROM112に記憶されたソフトウェアに基づいて、エンジンを制御するための各種処理を実行する。
そしてCPU111は、CPUコア(以下、単にコアという)121,122,123,124で構成されている。
ROM112は、ソフトウェア131,132,133,134を記憶する。ソフトウェア131,132,133,134はそれぞれ、コア121,122,123,124が実行するソフトウェアである。そして、ソフトウェア131,132,133,134は、第1実施形態または第2実施形態のソフトウェア分割装置1で4つに分割されたソフトウェアである。
このように構成されたECU101は、4個のコア121,122,123,124を備えるマイコン102を内蔵する車載装置である。コア121,122,123,124は、ソフトウェア131,132,133,134により動作する。そして、ソフトウェア131,132,133,134は、第1実施形態または第2実施形態のソフトウェア分割装置1で4つに分割されている。
これにより、マイコン102が備える4個のコア121〜124の処理負荷を均等にすることができるため、マイコン102のコアを効率よく使用することができる。
以上説明した実施形態において、ECU101は本発明における車載装置である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
(変形例1)
例えば上記第1実施形態では、2段階または3段階で分割するものを示したが、4段階以上で分割を行うようにしてもよい。例えば、上記第1実施形態では、S60において、1段階で分割対象ソフトウェアを制御・演算分割数kに分割する制御・演算分割を実行するものを示した。しかし、複数段階の制御・演算分割を実行することにより、分割対象ソフトウェアを制御・演算分割数kに分割するようにしてもよい。
(変形例2)
また上記第1実施形態では、データ依存性分割を1回実行するものを示した(図2のS70を参照)。しかし、データ依存性分割を複数回実行するようにしてもよい。例えば、図7に示すように、最終段階のデータ依存性分割(S260)を実行する前に、最終段階のデータ依存性分割のためにデータ依存性分割を試行し(S240)、さらに制御・演算分割を実行する(S250)。そして、図7に示すように、この最終段階のデータ依存性分割よりも前に、前段階のデータ依存性分割(S230)を実行するようにしてもよい。前段階のデータ依存性分割を実行する場合には、前段階のデータ依存性分割(S230)を実行する前に、前段階のデータ依存性分割のためにデータ依存性分割を試行し(S210)、さらに制御・演算分割を実行する(S220)。データ依存性分割は、上述のように、コンピュータによる自動化に向いた分割方法であり、各コアの処理負荷が均等になるようにソフトウェアを分割することを容易にすることができる。このため、最終段階だけではなく、前段階でもデータ依存性分割を実行することにより、各コアの処理負荷が均等になるようにソフトウェアを分割することを更に容易にすることができる。なお、S230の処理は本発明における第3分割手順および第3分割手段である。
また、上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
1…ソフトウェア分割装置、101…ECU、102…マイコン、121,122,123,124…コア、131,132,133,134…ソフトウェア

Claims (15)

  1. 複数のコアを備えるマイクロコンピュータで実行されるソフトウェアを、複数の前記コアのそれぞれに割り当てるために分割するソフトウェア分割方法であって、
    前記ソフトウェアの少なくとも一部を、制御の切れ目または演算の切れ目で、前記マイクロコンピュータが備える前記コアの数より少ない分割数で分割する第1分割手順(S60)と、
    前記第1分割手順で分割された後の前記ソフトウェアを、データの流れの疎な部分で分割することにより、前記ソフトウェアの少なくとも一部を、前記マイクロコンピュータが備える前記コアの数に分割する第2分割手順(S70)とを備える
    ことを特徴とするソフトウェア分割方法。
  2. 前記第1分割手順は、分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記ソフトウェアの少なくとも一部を分割する
    ことを特徴とする請求項1に記載のソフトウェア分割方法。
  3. 前記第2分割手順は、前記第1分割手順で分割された前記ソフトウェアが更に分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記第1分割手順で分割された後の前記ソフトウェアを分割する
    ことを特徴とする請求項1または請求項2に記載のソフトウェア分割方法。
  4. 前記第1分割手順を実行する前に、前記ソフトウェアの少なくとも一部に対して、データの流れの疎な部分での分割を試行し、前記第2分割手順による分割で可能な分割数である第2分割数を決定する第2分割数決定手順(S40)を備え、
    前記第1分割手順は、前記マイクロコンピュータが備える前記コアの数を、前記第2分割数決定手順で決定された前記第2分割数で除算した除算値について小数点以下を切り上げた値を第1分割数として、前記ソフトウェアの少なくとも一部を前記第1分割数で分割する
    ことを特徴とする請求項1〜請求項3の何れか1項に記載のソフトウェア分割方法。
  5. 前記第2分割数決定手順を実行する前に、前記ソフトウェアの少なくとも一部を、データの流れの疎な部分で分割する第3分割手順(S230)を備える
    ことを特徴とする請求項4に記載のソフトウェア分割方法。
  6. 複数のコアを備えるマイクロコンピュータで実行されるソフトウェアを、複数の前記コアのそれぞれに割り当てるために分割するソフトウェア分割装置(1)であって、
    前記ソフトウェアの少なくとも一部を、制御の切れ目または演算の切れ目で、前記マイクロコンピュータが備える前記コアの数より少ない分割数で分割する第1分割手段(S60)と、
    前記第1分割手段で分割された後の前記ソフトウェアを、データの流れの疎な部分で分割することにより、前記ソフトウェアの少なくとも一部を、前記マイクロコンピュータが備える前記コアの数に分割する第2分割手段(S70)とを備える
    ことを特徴とするソフトウェア分割装置。
  7. 前記第1分割手段は、分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記ソフトウェアの少なくとも一部を分割する
    ことを特徴とする請求項6に記載のソフトウェア分割装置。
  8. 前記第2分割手段は、前記第1分割手段で分割された前記ソフトウェアが更に分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記第1分割手段で分割された後の前記ソフトウェアを分割する
    ことを特徴とする請求項6または請求項7に記載のソフトウェア分割装置。
  9. 前記第1分割手段を実行する前に、前記ソフトウェアの少なくとも一部に対して、データの流れの疎な部分での分割を試行し、前記第2分割手段による分割で可能な分割数である第2分割数を決定する第2分割数決定手段(S40)を備え、
    前記第1分割手段は、前記マイクロコンピュータが備える前記コアの数を、前記第2分割数決定手段で決定された前記第2分割数で除算した除算値について小数点以下を切り上げた値を第1分割数として、前記ソフトウェアの少なくとも一部を前記第1分割数で分割する
    ことを特徴とする請求項6〜請求項8の何れか1項に記載のソフトウェア分割装置。
  10. 前記第2分割数決定手段を実行する前に、前記ソフトウェアの少なくとも一部を、データの流れの疎な部分で分割する第3分割手段(S230)を備える
    ことを特徴とする請求項9に記載のソフトウェア分割装置。
  11. 複数のコア(121,122,123,124)を備えるマイクロコンピュータ(102)を内蔵する車載装置(101)であって、
    複数の前記コアは、
    前記マイクロコンピュータで実行されるソフトウェアの少なくとも一部を、制御の切れ目または演算の切れ目で、前記マイクロコンピュータが備える前記コアの数より少ない分割数で分割する第1分割手順と、
    前記第1分割手順で分割された後の前記ソフトウェアを、データの流れの疎な部分で分割することにより、前記ソフトウェアの少なくとも一部を、前記マイクロコンピュータが備える前記コアの数に分割する第2分割手順とを備えるソフトウェア分割方法により分割されたソフトウェア(131,132,133,134)により動作する
    ことを特徴とする車載装置。
  12. 前記第1分割手順は、分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記ソフトウェアの少なくとも一部を分割する
    ことを特徴とする請求項11に記載の車載装置。
  13. 前記第2分割手順は、前記第1分割手順で分割された前記ソフトウェアが更に分割された後の複数の前記ソフトウェアのそれぞれについて処理負荷が均等に近づくように、前記第1分割手順で分割された後の前記ソフトウェアを分割する
    ことを特徴とする請求項11または請求項12に記載の車載装置。
  14. 前記ソフトウェア分割方法は、前記第1分割手順を実行する前に、前記ソフトウェアの少なくとも一部に対して、データの流れの疎な部分での分割を試行し、前記第2分割手順による分割で可能な分割数である第2分割数を決定する第2分割数決定手順を備え、
    前記第1分割手順は、前記マイクロコンピュータが備える前記コアの数を、前記第2分割数決定手順で決定された前記第2分割数で除算した除算値について小数点以下を切り上げた値を第1分割数として、前記ソフトウェアの少なくとも一部を前記第1分割数で分割する
    ことを特徴とする請求項11〜請求項13の何れか1項に記載の車載装置。
  15. 前記ソフトウェア分割方法は、前記第2分割数決定手順を実行する前に、前記ソフトウェアの少なくとも一部を、データの流れの疎な部分で分割する第3分割手順を備える
    ことを特徴とする請求項14に記載の車載装置。
JP2015101175A 2015-05-18 2015-05-18 ソフトウェア分割方法、ソフトウェア分割装置および車載装置 Active JP6413922B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015101175A JP6413922B2 (ja) 2015-05-18 2015-05-18 ソフトウェア分割方法、ソフトウェア分割装置および車載装置
DE102016208178.0A DE102016208178A1 (de) 2015-05-18 2016-05-12 Softwaresegmentierungsverfahren, Softwaresegmentierungsvorrichtung und fahrzeugeigene Vorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015101175A JP6413922B2 (ja) 2015-05-18 2015-05-18 ソフトウェア分割方法、ソフトウェア分割装置および車載装置

Publications (2)

Publication Number Publication Date
JP2016218627A JP2016218627A (ja) 2016-12-22
JP6413922B2 true JP6413922B2 (ja) 2018-10-31

Family

ID=57231745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015101175A Active JP6413922B2 (ja) 2015-05-18 2015-05-18 ソフトウェア分割方法、ソフトウェア分割装置および車載装置

Country Status (2)

Country Link
JP (1) JP6413922B2 (ja)
DE (1) DE102016208178A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110337639A (zh) * 2017-03-03 2019-10-15 三菱电机株式会社 处理分割装置、模拟器***、处理分割方法和处理分割程序
WO2019012674A1 (ja) * 2017-07-13 2019-01-17 株式会社日立製作所 プログラムの統合解析管理装置及びその統合解析管理方法
JP6556281B1 (ja) * 2018-03-08 2019-08-07 三菱電機株式会社 制御システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363230A1 (en) 2013-01-23 2015-12-17 Waseda University Parallelism extraction method and method for making program
JP6018022B2 (ja) 2013-06-14 2016-11-02 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置

Also Published As

Publication number Publication date
JP2016218627A (ja) 2016-12-22
DE102016208178A1 (de) 2016-11-24

Similar Documents

Publication Publication Date Title
US7886252B2 (en) Same subgraph detector for data flow graph, high-order combiner, same subgraph detecting method for data flow graph, same subgraph detection control program for data flow graph, and readable recording medium
JP6413922B2 (ja) ソフトウェア分割方法、ソフトウェア分割装置および車載装置
US20130132916A1 (en) Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus
JP6427055B2 (ja) 並列化コンパイル方法、及び並列化コンパイラ
JP6519515B2 (ja) マイクロコンピュータ
JP6365387B2 (ja) 電子制御装置
WO2019086764A1 (en) Graphics engine resource management and allocation system
EP2341448A1 (en) An electronic control unit and a method of performing interpolation in the electronic control unit
JP6447442B2 (ja) 電子制御装置
US20190139180A1 (en) Graphics engine resource management and allocation system
JP4891807B2 (ja) 高位合成装置および高位合成方法
JP7441861B2 (ja) 演算装置及び検査方法
US20140201224A1 (en) Find regular expression instruction on substring of larger string
JP7226064B2 (ja) 電子制御装置
US20220067237A1 (en) Information processing method, non-transitory computer readable medium having recorded thereon program, and information processing device
JP2014067144A (ja) 車両用ソフトウェア作成支援装置、車両用ソフトウェア変換装置、車両用ソフトウェア作成支援装置のプログラム、及び、組込みソフトウェア
CN116069471B (zh) 一种任务的确定性调度方法、装置及电子设备
JP6528697B2 (ja) 電子制御装置およびコード生成プログラム
CN110825444B (zh) 一种电子控制单元的针脚配置方法
JP7100597B2 (ja) 回路設計支援装置、回路設計支援方法、および情報処理装置
TW201915772A (zh) 製程參數相關性分群與分析方法及製程參數相關性分群與分析系統
JP2017101575A (ja) 車両電子制御装置
JP4470110B2 (ja) 高位合成方法およびシステム
JPH0981604A (ja) ソフトウェア/ハードウェア協調設計システム及びその設計方法
JP2002215703A (ja) ハードウェア/ソフトウェア協調設計方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R151 Written notification of patent or utility model registration

Ref document number: 6413922

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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