JP2014153755A - マルチプロセッサ組込み機器 - Google Patents

マルチプロセッサ組込み機器 Download PDF

Info

Publication number
JP2014153755A
JP2014153755A JP2013020491A JP2013020491A JP2014153755A JP 2014153755 A JP2014153755 A JP 2014153755A JP 2013020491 A JP2013020491 A JP 2013020491A JP 2013020491 A JP2013020491 A JP 2013020491A JP 2014153755 A JP2014153755 A JP 2014153755A
Authority
JP
Japan
Prior art keywords
program
access request
waiting time
bus
master
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
JP2013020491A
Other languages
English (en)
Other versions
JP6037869B2 (ja
Inventor
Koji Nishikawa
浩司 西川
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013020491A priority Critical patent/JP6037869B2/ja
Publication of JP2014153755A publication Critical patent/JP2014153755A/ja
Application granted granted Critical
Publication of JP6037869B2 publication Critical patent/JP6037869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】マルチプロセッサ組み込み機器におけるプロセッサプロセッサへのプログラム割当を、他プロセッサの振る舞いを考慮して、バススレーブへのアクセス集中による処理時間増大を最小限にとどめる。
【解決手段】各プロセッサにプログラムを割り当てるときの参照にするため、バスマスター10、20、30とバススレーブ100、200、300の組み合わせ毎に、バスマスターからバススレーブへのアクセス要求回数、バスマスターからのアクセス要求発行からバススレーブでの要求受付まで、バスマスターからのアクセス要求でバススレーブ処理を開始するまで、バスマスターから発行されたアクセス要求から、バススレーブでのアクセス要求に対する応答までの各レイテンシを計測する。
【選択図】図1

Description

本発明は、複数のプロセッサと該複数のプロセッサからの複数のアクセス要求を受付ける複数のバススレーブが、バスで相互に接続され、複数のプログラムが複数のプロセッサに個別に割り当てられ、並列に動作する組込み機器に関し、特に、組込み機器に搭載されたマルチプロセッサへのプログラムの割当方法に関するものである。
近年の組み込み機器は、高性能なプロセッサを複数搭載されたマルチプロセッサが採用されるようになっている。
従来は、単一プロセッサで逐次的にプログラムの処理を行っていたが、複数のプロセッサで並列に複数のプログラムを実行することで、バススレーブへのアクセスが集中し、レイテンシ(アクセスの応答時間)が単一プロセッサ時に比べ、増加しており、このことにより、処理時間が増大している。特に、リアルタイム性を要求される組込み機器においては、処理時間の増大を最小限にとどめることが求められている。
特開2008-84009号公報
従来のマルチプロセッサにおけるプログラムのプロセッサへの割当方法は、1度処理時間を測定した際のパフォーマンスモニター情報を用いて、次に実行する際に、そのパフォーマンスモニター情報を用いて、割り当てるプロセッサを決定していた。
しかし、この方法では、他のプロセッサの振る舞いを考慮した割当になっておらず、バススレーブへのアクセス集中による処理時間増大を最小限にとどめることが容易ではなかった。
本発明は、マルチプロセッサの各プロセッサにプログラムを割り当てる際に、バススレーブへのアクセス集中による処理時間増大を最小限にとどめるプログラムの割り当てを行うために、各プロセッサとバススレーブの組み合わせ毎に、各プロセッサのバススレーブへのアクセスのレイテンシを要素単位に正確に求めるものである。
本発明のマルチプロセッサ組込み機器は、
プロセッサを含み、バスに対してマスターとなり、アクセス要求を発行する複数のバスマスターと、
前記複数のバスマスターから複数のアクセス要求を受付け、保持するアクセス要求バッファを有し、前記バスマスターからのアクセス要求に従い動作する複数のバススレーブとを備え、前記複数のバスマスターと前記複数のバススレーブがバスで相互に接続され、複数のプログラムが複数のバスマスターのプロセッサに個別に割り当てられ、並列に動作するマルチプロセッサ組込み機器において、
前記バスマスターと前記バススレーブの組み合わせ毎に、
前記バスマスターからのアクセス要求回数を計測するアクセス要求回数計測機構と、
前記バスマスターからのアクセス要求発行から前記バススレーブでの要求受付までの累計時間を計測するアクセス要求受付待ち時間計測機構と、
前記バスマスターからのアクセス要求が、このアクセス要求よりも前に発行された他バスマスターからの先行アクセス要求を処理するために、前記アクセス要求が前記バススレーブのアクセス要求バッファに留まっている累計時間を計測するアクセス要求バッファ待ち時間計測機構と、
前記バスマスターから発行されたアクセス要求から、前記アクセス要求に対する応答までの累計時間を計測するアクセス要求処理時間計測機構を各バススレーブに備える。
本発明のマルチプロセッサ組込み機器によれば、前記バスマスターと前記バススレーブの組み合わせ毎に、前記バスマスターから前記バススレーブへのアクセス要求回数、前記バスマスターからのアクセス要求発行から前記バススレーブでの要求受付まで、前記バスマスターからのアクセス要求が前記バススレーブ処理を開始するまで、前記バスマスターから発行されたアクセス要求から、前記バススレーブでの前記アクセス要求に対する応答までの各レイテンシを計測しているので、各プロセッサにプログラムを割り当てるとき、これらの各レイテンシを参照することで、バススレーブへのアクセス集中による処理時間増大を最小限にとどめることが可能となる。
本発明の実施の形態1における構成要素を示す構成図である。 本発明の実施の形態2における構成要素を示す構成図である。 アクセス要求発行から、アクセス応答までのタイミング図である。 マスターM0から、複数のスレーブにアクセスを行うプログラムでの処理時間の内訳説明図である。 各マスターに割り当てられる実行プログラムの説明図である。 各マスターでのプログラム処理時間をグラフ化した図である。 アクセス履歴情報の抽出結果を示す図である。 採取アクセス履歴情報によるプログラム割付変更方法のフロー図である。 アクセス履歴情報の抽出結果により比率1、時間2、比率3、時間4の算出結果を示す図である。 置き換え用追い出し対象プログラムの特定方法のフロー図である。 置き換え用投入対象のプログラム特定方法のフロー図である。 比率3または時間4が規定値以上の場合の置き換え用追い出し対象プログラムの特定方法のフロー図である。 比率3または時間4が規定値以上の場合の置き換え用投入対象プログラムの特定方法のフロー図である。 並び替えの結果、各マスターに割り当てられた実行プログラムの説明図である。 並び替えを行った後のプログラム処理時間をグラフ化した図である。
実施の形態1.
以下、図面を参照して、本発明の実施の形態1について説明する。
図1は、本発明の実施の形態1の構成要素を示す構成図である。この図において、10はバスマスター(以下本明細書および図面には単にマスターと記す)0となって、バススレーブ(以下本明細書および図面には単にスレーブと記す)0にアクセス要求を発行するプロセッサ0、11はプロセッサ0(10)からのアクセス要求を示すアクセス要求信号M0、12はアクセス要求信号M0(11)に対する受付を示すアクセス受付信号M0、13はアクセス要求信号M0(11)に対する応答を示すアクセス応答信号M0、20はマスター1となって、スレーブにアクセス要求を発行するプロセッサ1、21はプロセッサ1(20)からのアクセス要求を示すアクセス要求信号M1、22はアクセス要求信号M1(21)に対する受付を示すアクセス受付信号M1、23はアクセス要求信号M1(21)に対する応答を示すアクセス応答信号M1、30はマスター2となって、スレーブにアクセス要求を発行するプロセッサ2、31はプロセッサ2(30)からのアクセス要求を示すアクセス要求信号M2、32はアクセス要求信号M2(31)に対する受付を示すアクセス受付信号M2、33はアクセス要求信号M2(31)に対する応答を示すアクセス応答信号M2である。
100はプロセッサ0〜プロセッサ2であるマスター0(10)〜マスター2(30)からのアクセス要求に応答するスレーブ0、101はスレーブ0(100)へのアクセス要求を示すアクセス要求信号S0、102はアクセス要求信号S0(101)に対するスレーブ0(100)からの受付を示すアクセス受付信号S0、103はアクセス要求信号S0(101)に対するスレーブ0(100)からの応答を示すアクセス応答信号S0、104は複数のマスターからスレーブ0(100)への複数のアクセス要求を受付け、保持するアクセス要求バッファである。
111はマスター0(10)からスレーブ0(100)へのアクセス要求回数を計測するアクセス要求回数計測機構、112はマスター0(10)からスレーブ0(100)へのアクセス要求待ち時間の累計時間を計測するアクセス要求待ち時間計測機構、113はマスター0(10)からスレーブ0(100)へのアクセスで、バスマスター0(10)からの今回のアクセス要求よりも前に発行された他マスターからの先行アクセス要求を処理するために、アクセス要求バッファ(104)に留まっている累計時間を計測するアクセス要求バッファ待ち時間計測機構、114はマスター0(10)からスレーブ0(100)へのアクセス要求から、アクセス要求に対するスレーブ0(100)の応答までの累計時間を計測するアクセス要求処理時間計測機構である。
115はマスター0(10)での実行プログラムが切り替わった時に、アクセス要求回数計測機構(111)の値を取り込み、保持するアクセス要求回数保持機構、116はマスター0(10)での実行プログラムが切り替わった時に、アクセス要求待ち時間計測機構(112)の値を取り込み、保持するアクセス要求待ち時間保持機構、117はマスター0(10)での実行プログラムが切り替わった時に、アクセス要求バッファ待ち時間計測機構(113)の値を取り込み、保持するアクセス要求バッファ待ち時間保持機構、118はマスター0(10)での実行プログラムが切り替わった時に、アクセス要求処理時間計測機構(114)の値を取り込み、保持するアクセス要求処理時間保持機構である。
110はアクセス要求回数計測機構(111)とアクセス要求待ち時間計測機構(112)とアクセス要求バッファ待ち時間計測機構(113)とアクセス要求処理時間計測機構(114)とアクセス要求回数保持機構(115)とアクセス要求待ち時間保持機構(116)とアクセス要求バッファ待ち時間保持機構(117)とアクセス要求処理時間保持機構(118)で構成されるマスター0(10)からスレーブ0(100)へのアクセス履歴を計測/保持するマスター0用アクセス履歴保持機構、120はアクセス履歴保持機構(110)と同様の構成を有し、マスター1(20)からスレーブ0(100)へのアクセス履歴を計測/保持するマスター1(20)用アクセス履歴保持機構、130はアクセス履歴保持機構(110)と同様の構成を有し、マスター2(30)からスレーブ0(100)へのアクセス履歴を計測/保持するマスター2(30)用アクセス履歴保持機構である。
200はマスター0(10)〜マスター2(30)であるプロセッサ0〜プロセッサ2からのアクセス要求に応答するスレーブ1で、内部のアクセス履歴保持機構の構成は、スレーブ0(100)と同様であり、それぞれのマスター0(10)〜マスター2(30)に対応するアクセス履歴保持機構を有している。
201はスレーブ1(200)へのアクセス要求を示すアクセス要求信号S1、202はアクセス要求信号S1(201)に対するスレーブ1(200)からの受付を示すアクセス受付信号S1、203はアクセス要求信号S1(201)に対するスレーブ1(200)からの応答を示すアクセス応答信号S1である。
300はマスター0(10)〜マスター2(30)であるプロセッサ0〜プロセッサ2からのアクセス要求に応答するスレーブ2で、内部のアクセス履歴保持機構の構成はスレーブ0(100)と同様であり、それぞれのマスター0(10)〜マスター2(30)に対応するアクセス履歴保持機構を有している。
301はスレーブ2(300)へのアクセス要求を示すアクセス要求信号S2、302はアクセス要求信号S2に対するスレーブ2(300)からの受付を示すアクセス受付信号S2、303はアクセス要求信号S2に対するスレーブ2(300)からの応答を示すアクセス応答信号S2である。
400はマスター0(10)〜マスター2(30)での実行プログラムが切り替わったことを受けて、全スレーブ(100)〜(300)に所定の書込み要求を指示するシステム監視機構、401はシステム監視機構(400)へのアクセス要求を示す要求信号SS、402は要求信号SS(401)に対するシステム監視機構(400)からの受付を示す受付信号SS、403は要求信号SS(401)に対するシステム監視機構(400)からの応答を示す応答信号SSである。
410はマスター0(10)〜マスター2(30)での実行プログラムが切り替わったことを受けて、スレーブのマスター毎のアクセス履歴保持機構に対して、アクセス要求回数計測機構の内容をアクセス要求回数保持機構に、アクセス要求待ち時間計測機構の内容をアクセス要求待ち時間保持機構に、アクセス要求バッファ待ち時間計測機構の内容をアクセス要求バッファ待ち時間保持機構に、アクセス要求処理時間計測機構の内容をアクセス要求処理時間保持機構に、書き込みを行う書き込み要求信号である。
411はプログラム起動時、ないし終了時に、プログラムの識別を示すプログラムIDと、プログラムIDを実行する、ないし実行したマスターのIDを記録するID記録機構、412はマスター0(10)〜マスター2(30)での実行プログラムが切り替わった時に、ID記録機構(411)の値を取り込み、保持するID保持機構である。
40はマスター0(10)とは、アクセス要求信号M0(11)、アクセス受付信号M0(12)およびアクセス応答信号M0(13)を介して、マスター1(20)とは、アクセス要求信号M1(21)、アクセス受付信号M1(22)およびアクセス応答信号M1(23)を介して、マスター2(30)とは、アクセス要求信号M2(31)、アクセス受付信号M2(32)およびアクセス応答信号M2(33)を介して相互に接続され、スレーブ0(100)とは、アクセス要求信号S0(101)、アクセス受付信号S0(102)およびアクセス応答信号S0(103)を介して、スレーブ1(200)とは、アクセス要求信号S1(201)、アクセス受付信号S1(202)およびアクセス応答信号S1(203)を介して、スレーブ2(300)とは、アクセス要求信号S2(301)、アクセス受付信号S2(302)およびアクセス応答信号S2(303)を介して、システム監視機構(400)とは、アクセス要求信号SS(401)、アクセス受付信号SS(402)およびアクセス応答信号SS(403)を介して、相互に接続された相互接続バスである。
図3にアクセス要求発行から、アクセス応答までのタイミング図を示す。
図3に示すようにマスターから相互接続バス(40)に向けてアクセス要求信号が出力されてから、スレーブよりアクセス受付信号が出力されるまでが、アクセス要求待ち時間、アクセス受付信号が出力されてから、アクセス要求バッファからの出力信号が出力されるまでが、アクセス要求バッファ待ち時間、アクセス要求信号が出力されてから、アクセス応答信号が出力されるまでが、アクセス要求処理時間と定義する。
図4に単一のバスマスターM0(10)から、複数のスレーブ0(100)〜2(300)にアクセスを行うプログラムでの処理時間の内訳を示す。単純化すると、マスターであるプロセッサの内部処理時間と各スレーブへのアクセス要求処理時間の和で近似できる。
組込み機器がリセット後の定周期処理に入ると、複数のマスター(プロセッサ)に複数のプログラムが割り当てられ、複数のマスターが並列に動作し、マスター(プロセッサ)毎、プログラム毎にアクセス要求回数、アクセス要求待ち時間、アクセス要求バッファ待ち時間、アクセス要求処理時間が計測/保持される。各マスター(プロセッサ)で実行するプログラムは、図5に示すように割り当てられている。
定周期処理に入ると、例えば、図5に示すようにマスター0(10)にプログラムAが、マスター1(20)にプログラムLが、マスター2(30)にプログラムXが、OSなどのシステムプログラムによって割り付けられる。その際、システムプログラムは、割り付けたプログラムのIDをシステム監視機構(400)に備えられたID記録機構(411)に書き込む。また、システム監視機構(400)は、どのマスターからのアクセス要求で、ID記録機構(411)への書き込みを行ったかが特定できるので、プログラムIDとマスターIDを対にしてID保持機構(412)に記録する。
また、マスターIDが特定されると、各スレーブのマスターIDに対応したアクセス履歴保持機構(110,120,130の何れか)に対して、書き込み要求信号(410)を使い、プログラムIDとマスターIDの対を全スレーブに対し通知する。
通知を受けたスレーブ(100,200,300)は、それぞれが保有するアクセス履歴保持機構のうち、マスターIDに対応するアクセス履歴保持機構(110)で、アクセス要求回数計測機構(111)の値を取り込み、アクセス要求回数保持機構(115)に保持する。
同様に、マスターIDに対応するアクセス履歴保持機構(110)で、アクセス要求待ち時間計測機構(112)の値を取り込み、アクセス要求待ち時間保持機構(116)に保持、アクセス要求バッファ待ち時間計測機構(113)の値を取り込み、アクセス要求バッファ待ち時間保持機構(117)に保持、アクセス要求処理時間計測機構(114)の値を取り込み、アクセス要求処理時間保持機構(118)に保持する。
各マスター(プロセッサ)に割り付けられたプログラムの実行が終了すると、システムプログラムに制御が戻る。その際、終了したプログラムのIDをシステム監視機構(400)に備えられたID記録機構(411)に書き込む。プログラムの起動時と同じように、スレーブ(100,200,300)に対して、書き込み要求信号(410)を使い、全スレーブにプログラムの実行が終了したマスターのマスターIDの通知を行う。
各マスター(プロセッサ)では、実行していたプログラムが終了したため、次に実行すべきプログラムの割付を行う。
図5に示すように、マスター0(10)にプログラムBが、マスター1(20)にプログラムMが、マスター2(30)にプログラムYが、システムプログラムによって割り付けられる。同様に、新たに割り付けたプログラムのIDをシステム監視機構(400)に備えられたID記録機構(411)に書き込む。さらに、プログラムIDとマスターIDを対にして、ID保持機構(412)に記録する。
各マスター(プロセッサ)に割り付けられたプログラムの実行が終了すると、システムプログラムに制御が戻る。その際、終了したプログラムのIDをシステム監視機構(400)に備えられたID記録機構(411)に書き込む。プログラムの起動時と同じように、スレーブ(100,200,300)に対して、書き込み要求信号(410)を使い、全スレーブにプログラムの実行が終了したマスターIDの通知を行う。
各マスター(プロセッサ)では、実行していたプログラムが終了したため、次に実行すべきプログラムの割付を行い、マスター0(10)にプログラムCが、マスター1(20)にプログラムNが、マスター2(30)にプログラムZが、システムプログラムによって割り付けられる。同様に、新たに割り付けたプログラムのIDをシステム監視機構(400)に備えられたID記録機構(411)に書き込む。
さらに、プログラムIDとマスターIDを対にして、ID保持機構(412)に記録する。
以上のようにして、プログラム毎に、アクセス履歴情報を保持しておき、全プログラム終了時に、スレーブに保持するアクセス履歴情報の抽出を行う。
本実施の形態では、プログラム実行終了時の値(時刻)とプログラム実行開始時の値(時刻)の差分をとるようにしたが、書き込み要求信号(410)を使い、全スレーブにマスターIDの通知を行うと、該当するマスターIDの各種計測機構の値をクリアしてもかまわない。このようにすると各種計測機構の値が実行全プログラムの累積時間となる。この両者は計算方法に違いがあるのみで、累積時間そのものの違いはない。
各マスターでのプログラム処理時間をグラフ化したものを図6に示し、アクセス履歴情報の抽出を行った結果を図7に示す。
次に、採取したアクセス履歴情報に従い、システムプログラムによるプログラム割付の変更方法を図8のフロー図で説明する。
図8において、S100で、各プログラムにおけるスレーブ毎のアクセス要求処理時間に占めるアクセス要求受付待ち時間の比率1を求める。S110で、各プログラムにおけるスレーブ毎の平均アクセス要求受付待ち時間2を求める。S120で、各プログラムにおけるスレーブ毎のアクセス要求処理時間に占めるアクセス要求バッファ受付待ち時間の比率3を求める。S130で、各プログラムにおけるスレーブ毎の平均アクセス要求バッファ受付待ち時間4を求める。
アクセス履歴情報の抽出を行った図7に示す結果を元に、上記S100〜S130の処理により求めた比率1、時間2、比率3、時間4の結果を図9に示す。
S140で、変数Nを1に初期化する。S150で、各マスター(プロセッサ)で実行したN番目のプログラムがあるか、どうかの判定を行う。N=1の場合では、マスター0(10)でプログラムA、マスター1(20)でプログラムL、マスター2(30)でプログラムXを実行しているので、判定結果はYESとなる。S150でNOとなった場合は、評価すべきプログラムがないこととなるので、プログラム割付の変更処理を終了する。
S160で、各マスター(プロセッサ)でN番目に実行したプログラムの比率1、時間2、比率3、時間4を抽出する。N=1の場合、プログラムAのスレーブ0では、比率1= 0%、時間2=0.0m秒、比率3=31%、時間4=0.9m秒、プログラムAのスレーブ1では、比率1=42%、時間2=2.5m秒、比率3=25%、時間4=1.5m秒、プログラムAのスレーブ2では、比率1= 0%、時間2=0.0m秒、比率3= 0%、時間4=0.0m秒、
プログラムLのスレーブ0では、比率1= 0%、時間2=0.0m秒、比率3=38%、時間4=1.3m秒、プログラムLのスレーブ1では、比率1=38%、時間2=2.0m秒、比率3=25%、時間4=1.3m秒、プログラムLのスレーブ2では、比率1= 0%、時間2=0.0m秒、比率3= 0%、時間4=0.0m秒、
プログラムXのスレーブ0では、比率1= 0%、時間2=0.0m秒、比率3= 0%、時間4=0.0m秒、プログラムXのスレーブ1では、比率1=30%、時間2=1.2m秒、比率3=20%、時間4=0.8m秒、プログラムXのスレーブ2では、比率1= 0%、時間2=0.0m秒、比率3= 0%、時間4=0.0m秒となる。
ここで、プログラム割付の変更を行うかどうかの規定値を定める。
スレーブ毎のアクセス要求処理時間に占めるアクセス要求受付待ち時間比率の規定値1を40%、スレーブ毎の平均アクセス要求受付待ち時間の規定値2を2.0m秒、スレーブ毎のアクセス要求処理時間に占めるアクセス要求バッファ受付待ち時間比率の規定値3を30%、スレーブ毎の平均アクセス要求バッファ受付待ち時間の規定値4を1.3m秒と規定する。この規定値は、システムにより値が変わる。
S170で、選択されたN=1に該当する場合の全てのプログラムの全てのスレーブに対して、上記の比率1が規定値1以上かどうかの判定を行う。比率1のいずれかが規定値1以上であれば、YESとなり、S200に進む。比率1の全てが、規定値1未満であれば、NOとなり、S180に進む。
図9の例では、プログラムL、Xでは、比率1<規定値1となっているが、プログラムAのスレーブ1で、比率1が42%となっており、YESとなり、S200に進む。
S180で、S170での判定がNOの場合、S160で選択された全てのプログラムの全てのスレーブに対して、上記の時間2が規定値2以上かどうかの判定を行う。時間2のいずれかが規定値2以上であれば、YESとなり、S200に進む。時間2の全てが、規定値2未満であれば、S500に進む。
S200に進んだ場合は、置き換え用追い出し対象、即ち、置き換え対象(追い出す方)のプログラムを特定する。追い出す対象のプログラム特定方法を、図10のフロー図に示す。
図10により、置き換え対象(追い出す方)プログラムの特定方法を説明する。
図10のS210で、スレーブに対するアクセス要求待ち時間がもっとも多いプログラムを追い出し対象とし、選択する。S220で、S210の処理で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、終了する。複数あれば、NOとなり、S230に進む。S230で、S210で選択したプログラムのうち、アクセス要求待ち時間比率1がもっとも大きいプログラムを追い出し対象とする。
S240で、S230で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S250に進む。S250で、S230で選択したプログラムのうち、平均アクセス要求待ち時間2がもっとも多いプログラムを追い出し対象とする。S260で、S250で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S270に進む。S270で、S250で選択したプログラムのうち、ランダムに1つのプログラムを選び、追い出し対象とする。
図8に戻り、S200で追い出し対象を決めた後は、S300で新たに投入するプログラムを特定する。その際、選択するプログラムは、実行順に依存性のないプログラムから選択する。
図7、図9の例では、
S210で、アクセス要求待ち時間がもっとも多いプログラムとして、プログラムLとプログラムXが12m秒となり、これらプログラムが追い出し対象となる。S220では、S210で選択されたプログラムが複数あるため、NOとなる。S230で、アクセス要求待ち時間比率1がもっとも大きいプログラムとして、プログラムLが追い出し対象となる。S240で、選択されたプログラムが1つであるため、YESとなり、処理を終了する。
追い出し対象プログラムが特定されると、次にS300に進んで、置き換え対象(入れる方)のプログラムを特定する。置き換え用投入対象、即ち、置き換え対象(入れる方)プログラムの特定方法を図11のフロー図に示す。
図11のS310で、実行順の依存性のないプログラムから、追い出し対象となったプログラムのアクセス要求待ち時間比率1や、平均アクセス要求待ち時間2が多いスレーブへのアクセス要求回数が最も少ないプログラムを割り付け対象とする。S320で、S310で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S330に進む。S330で、S310で選択したプログラムのうち、アクセス要求待ち時間が最小のプログラムを割り付け対象とする。S340で、S330で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S350に進む。
S350で、S330で選択したプログラムのうち、アクセス要求バッファ待ち時間が最小のプログラムを割り付け対象とする。S360で、S350で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S370に進む。S370で、S350で選択したプログラムのうち、同一プロセッサで実行するプログラムから、ランダムに1つのプログラムを選び、割り付け対象とする。S300の処理を抜けた後は、S400で、Nを1加算(N=N+1)し、図8のS150に戻る。
図7、図9の例では、S310で、プログラムB、N、Yが選択される。S320で、選択されたプログラムが複数あるため、NOとなる。S330で、プログラムB、N、Yが選択される。S340で、選択されたプログラムが複数あるため、NOとなる。S350で、プログラムB、N、Yが選択される。S360で、選択されたプログラムが複数あるため、NOとなる。S370で、追い出されたプログラムを実行したプロセッサで実行していたプログラムNが選択され、終了する。この結果、プログラムLとプログラムNの実行順が入れ替わる。
アクセス要求待ち時間比率1および平均アクセス要求時間2で、追い出し対象が特定できなかった(図8の処理S180でNO)場合、アクセス要求バッファ待ち時間比率3および平均アクセス要求バッファ待ち時間4で追い出し対象を選択する。
図8のS500で、S160で選択された全てのプログラムの全てのスレーブに対して、上記の比率3が規定値3以上かどうかの判定を行う。比率3のいずれかが規定値3以上であれば、YESとなり、S600に進む。比率3の全てが、規定値未満であれば、NOとなり、S510に進む。S510で、S500により選択された全てのプログラムの全てのスレーブに対して、上記の時間4が規定値4以上かどうかの判定を行う。時間4のいずれかが規定値4以上であれば、YESとなり、S600に進む。時間4の全てが、規定値4未満であれば、S800に進む。
S600に進んだ場合は、置き換え対象(追い出す方)のプログラムを特定する。
追い出すプログラムの特定方法を、図12のフロー図に示す。
図12のS610で、スレーブに対するアクセス要求バッファ待ち時間がもっとも多いプログラムを追い出し対象とする。S620で、S610により選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S630に進む。S630で、S610により選択したプログラムのうち、アクセス要求バッファ待ち時間比率3がもっとも大きいプログラムを追い出し対象とする。S640で、S630により選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり、処理を終了する。複数あれば、NOとなり、S650に進む。
S650で、S630により選択したプログラムのうち、平均アクセス要求バッファ待ち時間4がもっとも多いプログラムを追い出し対象とする。S660で、S650により選択したプログラムが1つかどうか判定をする。1つのみであればYESとなり処理を終了する。複数あれば、NOとなり、S670に進む。S670で、S650で選択したプログラムのうち、ランダムに1つのプログラムを選び、追い出し対象とする。
図8のS600で、追い出し対象を決めた後は、S700で、新たに投入するプログラムを特定する。その際、選択するプログラムは、実行順に依存性のないプログラムから選択する。
置き換え対象(入れる方)プログラムの特定方法を図13のフロー図に示す。
図13のS710で、実行順の依存性のないプログラムから、追い出し対象となったプログラムのアクセス要求バッファ待ち時間比率3や、平均アクセス要求バッファ待ち時間4が多いスレーブへのアクセス要求回数が最も少ないプログラムを割り付け対象とする。S720で、S710で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり処理を終了する。複数あれば、NOとなり、S730に進む。
S730で、S710で選択したプログラムのうち、アクセス要求バッファ待ち時間が最小のプログラムを割り付け対象とする。S740で、S730で選択したプログラムが1つかどうか判定をする。1つのみであれば、YESとなり処理を終了する。複数あれば、NOとなり、S750に進む。S750で、S730で選択したプログラムのうち、同一プロセッサで実行するプログラムから、ランダムに1つのプログラムを選び、割り付け対象とする。S700の処理を抜けた後は、S800で、Nを1加算(N=N+1)し、図8のS150に戻る。
変更すべきプログラムの割付が完了するまで、S160〜S800までを繰り返し行う。
図7、図9の例では、プログラムの並び替えを行った結果を、図14に示す。また、並び替えを行った後のプログラム処理時間をグラフ化したものを図15に示す。
実施の形態2.
図2は、各マスター(プロセッサ)のプログラムカウンタをシステム監視機構(400)に通知し、システム監視機構(400)では、各マスター(プロセッサ)から供給されるプログラムカウンタが、システムプログラムの動作するエリア情報保持機構(413)に保持する領域外となった場合に、そのプログラムカウンタをID記録機構(411)に書き込み、併せて、領域外となったプロセッサIDとプログラムカウンタをID保持機構(412)に保持することで、システムプログラムからのプログラムIDをID記録機構(411)に書き込むことを不要としている。
アクセス履歴保持機構への制御や、プログラムの並び替えの処理に関しては、前記実施の形態1と同様であり、説明を省略する。
以上のように、複数のプロセッサとプロセッサからの複数のアクセス要求を受付ける複数のバススレーブが、バスで相互に接続され、複数のプログラムが複数のプロセッサに個別に割り当てられ、並列に動作する組込み機器においては、バススレーブへのアクセスが集中し、レイテンシ(アクセスの応答時間)が増加しても、処理時間の増大を最小限にとどめることが容易となる。
本発明は複数のプロセッサが組込まれ、複数のプログラムが複数のプロセッサに個別に割り当てられて並列に動作する機器、例えば、カーナビなどへの適用が可能である。
10;マスター0、11;アクセス要求信号M0、12;アクセス受付信号M0、13;アクセス応答信号M0、14,24,34;プログラムカウンタ、20;マスター1、21;アクセス要求信号M1、22;アクセス受付信号M1、23;アクセス応答信号M1、30;マスター2、31;アクセス要求信号M2、32;アクセス受付信号M2、33;アクセス応答信号M2、40;相互接続バス、100;スレーブ0、101;アクセス要求信号S0、102;アクセス受付信号S0、103;アクセス応答信号S0、104;アクセス要求バッファ、111;アクセス要求回数計測機構、112;アクセス要求待ち時間計測機構、113;アクセス要求バッファ待ち時間計測機構、114;アクセス要求処理時間計測機構、115;アクセス要求回数保持機構、116;アクセス要求待ち時間保持機構、117;アクセス要求バッファ待ち時間保持機構、118;アクセス要求処理時間保持機構、110;マスター0用アクセス履歴保持機構、120;マスター1用アクセス履歴保持機構、130;マスター2用アクセス履歴保持機構、200;スレーブ1、201;アクセス要求信号S1、202;アクセス受付信号S1、203;アクセス応答信号S1、300;スレーブ2、301;アクセス要求信号S2、302;アクセス受付信号S2、303;アクセス応答信号S2、400;システム監視機構、401;要求信号SS、402;受付信号SS、403;応答信号SS、410;書き込み要求信号、411;ID記録機構、412;ID保持機構、413;エリア情報保持機構。

Claims (16)

  1. プロセッサを含み、バスに対してマスターとなり、アクセス要求を発行する複数のバスマスターと
    前記複数のバスマスターから複数のアクセス要求を受付け、保持するアクセス要求バッファを有し、前記バスマスターからのアクセス要求に従い動作する複数のバススレーブとを備え、前記複数のバスマスターと前記複数のバススレーブがバスで相互に接続され、複数のプログラムが複数のバスマスターのプロセッサに個別に割り当てられ、並列に動作するマルチプロセッサ組込み機器において、
    前記バスマスターと前記バススレーブの組み合わせ毎に、
    前記バスマスターからのアクセス要求回数を計測するアクセス要求回数計測機構と、
    前記バスマスターからのアクセス要求発行から前記バススレーブでの要求受付までの累計時間を計測するアクセス要求受付待ち時間計測機構と、
    前記バスマスターからのアクセス要求が、このアクセス要求よりも前に発行された他バスマスターからの先行アクセス要求を処理するために、前記前記アクセス要求が前記バススレーブのアクセス要求バッファに留まっている累計時間を計測するアクセス要求バッファ待ち時間計測機構と、
    前記バスマスターから発行されたアクセス要求から、前記アクセス要求に対する前記バススレーブによる応答までの累計時間を計測するアクセス要求処理時間計測機構を前記各バススレーブに備えることを特徴とするマルチプロセッサ組込み機器。
  2. 前記プログラム起動時および終了時に、プログラムの識別を示すプログラムIDと、該プログラムを実行するおよび実行したバスマスターのマスターIDを記録するID記録機構と、ID記録機構への書き込みにより、書き込み前のプログラムIDとマスターIDを順番に複数保持するID保持機構を有するシステム監視機構と、
    アクセス要求回数計測機構で計測したアクセス要求回数を保持するアクセス要求回数保持機構と、
    アクセス要求受付待ち時間計測機構で計測したアクセス要求受付待ち時間を保持するアクセス要求受付待ち時間保持機構と、
    アクセス要求バッファ待ち時間計測機構で計測したアクセス要求バッファ待ち時間を保持するアクセス要求バッファ待ち時間保持機構と、
    アクセス要求処理時間計測機構で計測したアクセス要求処理時間を保持するアクセス要求処理時間保持機構とをさらに備え、
    前記各バスマスターでのプログラム起動時および終了時に、プログラムの起動を制御するシステムプログラムが、前記システム監視機構に対し、前記プログラムIDの書き込み要求を発行して、前記プログラムIDと前記プログラムの起動および終了バスマスターのマスターIDを前記ID記録機構に書き込み、前記マスターIDに対応した前記各保持機構に、それぞれ対応する前記各計測機構の値を保持することを特徴とする請求項1記載のマルチプロセッサ組込み機器。
  3. 前記各バスマスターで実行中のプログラムカウンタの情報が通知され、プログラムの起動を制御するシステムプログラムの領域を示すエリア情報保持機構と、前記プログラムカウンタと前記バスマスターのマスターIDを記録するID記録機構と、前記ID記録機構への書き込みで、書き込み前のプログラムカウンタとマスターIDを順番に複数保持するID保持機構を有するシステム監視機構と、
    アクセス要求回数計測機構で計測したアクセス要求回数を保持するアクセス要求回数保持機構と、
    アクセス要求受付待ち時間計測機構で計測したアクセス要求受付待ち時間を保持するアクセス要求受付待ち時間保持機構と、
    アクセス要求バッファ待ち時間計測機構で計測したアクセス要求バッファ待ち時間を保持するアクセス要求バッファ待ち時間保持機構と、
    アクセス要求処理時間計測機構で計測したアクセス要求処理時間を保持するアクセス要求処理時間保持機構とをさらに備え、
    前記各バスマスターからの通知されるプログラムカウンタがエリア情報保持機構の範囲内から範囲外に切り替わった場合に、プログラムが実行されたと判断し、プログラムカウンタとバスマスターを示すマスターIDを前記ID記録機構に書き込み、
    前記マスターIDに対応した前記各保持機構に、それぞれ対応する前記各計測機構の値を保持することを特徴とする請求項1記載のマルチプロセッサ組込み機器。
  4. 前記各バスマスターのプログラム実行が終了し、各バスマスターのプログラムを置き換えるとき、
    前記各バススレーブでのアクセス要求回数保持機構とアクセス要求バッファ待ち時間保持機構で求められるプログラム単位の平均アクセス要求受付待ち時間が、あらかじめ決められた規定値以上で、アクセス要求待ち時間がもっとも大きいプログラムをプログラムの置き換え用追い出し対象プログラムとして、マルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項2又は3記載のマルチプロセッサ組込み機器。
  5. 前記各バスマスターのプログラム実行が終了し、前記各バスマスターのプログラムを置き換えるとき、前記各バススレーブでのアクセス要求バッファ待ち時間保持機構の値とアクセス要求処理時間保持機構の値で求められるプログラム単位のアクセス要求受付待ち時間比率と、アクセス要求回数保持機構の値が、あらかじめ決められた規定値以上であり、アクセス要求待ち時間がもっとも大きいプログラムをプログラムの置き換え用追い出し対象プログラムとして、マルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項2又は3記載のマルチプロセッサ組込み機器。
  6. プログラムの置き換え用追い出し対象プログラムとして、選択されたアクセス要求待ち時間がもっとも大きいプログラムが複数存在する場合に、これらのプログラムのうち、アクセス要求受付待ち時間比率がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項4又は5記載のマルチプロセッサ組込み機器。
  7. プログラムの置き換え用追い出し対象プログラムとして、選択されたアクセス要求待ち時間がもっとも大きいプログラムが複数存在し、アクセス要求受付待ち時間比率がもっとも大きいプログラムが複数存在する場合に、これらのプログラムのうち、平均アクセス要求受付待ち時間がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項6記載のマルチプロセッサ組込み機器。
  8. プログラムの置き換え用追い出し対象プログラムが選択された後、置き換え用投入対象プログラムとして、実行順依存性のないプログラムのうち、前記追い出し対象プログラムがアクセス要求したバススレーブへのアクセス要求回数が最小のプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択し、選択したプログラムが並列に実行されるようにプログラム実行順を調整することを特徴とする請求項4ないし7の何れか1項に記載のマルチプロセッサ組込み機器。
  9. 置き換え用投入対象プログラムとして選択されたアクセス要求回数が最小のプログラムが複数存在した場合に、選択されたプログラムの中で、アクセス要求待ち時間が最小のプログラムを、マルチプロセッサ組込み機器のシステムプログラムが選択し、選択したプログラムが並列に実行されるようにプログラム実行順を調整することを特徴とする請求項8記載のマルチプロセッサ組込み機器。
  10. 置き換え用投入対象プログラムとして選択されたアクセス要求待ち時間が最小のプログラムが複数存在した場合に、選択されたプログラムの中で、アクセス要求バッファ待ち時間が最小のプログラムを、マルチプロセッサ組込み機器のシステムプログラムが選択し、選択したプログラムが並列に実行されるようにプログラム実行順を調整することを特徴とする請求項9記載のマルチプロセッサ組込み機器。
  11. 前記各バスマスターのプログラム実行が終了し、各バスマスターのプログラムを置き換えるとき、各バススレーブでのアクセス要求回数保持機構とアクセス要求受付待ち時間保持機構で求められるプログラム単位の平均アクセス要求受付待ち時間が、あらかじめ決められた規定値未満であり、かつアクセス要求回数保持機構とアクセス要求バッファ待ち時間保持機構で求められるプログラム単位の平均アクセス要求バッファ待ち時間が、あらかじめ決められた規定値以上である場合に、置き換え用追い出し対象プログラムとして、アクセス要求バッファ待ち時間がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項2又は3記載のマルチプロセッサ組込み機器。
  12. 前記各バスマスターのプログラム実行が終了し、各バスマスターのプログラムを置き換えるとき、前記各バススレーブでのアクセス要求受付待ち時間保持機構とアクセス要求処理時間保持機構で求められるプログラム単位のアクセス要求受付待ち時間比率が、あらかじめ決められた規定値未満であり、かつ、アクセス要求バッファ待ち時間保持機構とアクセス要求処理時間保持機構で求められるプログラム単位のアクセス要求バッファ待ち時間比率が、あらかじめ決められた規定値以上である場合に、置き換え用追い出し対象プログラムとして、アクセス要求バッファ待ち時間がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項2又は3記載のマルチプロセッサ組込み機器。
  13. プログラムの置き換え用追い出し対象プログラムとして、アクセス要求バッファ待ち時間がもっとも大きいプログラムが複数存在する場合に、これらのプログラムのうち、アクセス要求バッファ待ち時間比率がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項11又は12記載のマルチプロセッサ組込み機器。
  14. 置き換え用追い出し対象プログラムとして、アクセス要求バッファ待ち時間がもっとも大きいプログラムが複数存在し、アクセス要求バッファ待ち時間比率がもっとも大きいプログラムが複数存在する場合に、これらのプログラムのうち、平均アクセス要求バッファ待ち時間がもっとも大きいプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択することを特徴とする請求項13記載のマルチプロセッサ組込み機器。
  15. プログラムの置き換え用追い出し対象プログラムが選択された後、置き換え用投入対象プログラムとして、実行順依存性のないプログラムのうち、該バススレーブへのアクセス要求回数が最小のプログラムをマルチプロセッサ組込み機器のシステムプログラムが選択し、選択したプログラムが並列に実行されるようにプログラム実行順を調整することを特徴とする請求項11ないし14の何れか1項に記載のマルチプロセッサ組込み機器。
  16. 置き換え用投入対象プログラムとして、選択された実行順依存性のないプログラムのうち、該バススレーブへのアクセス要求回数が最小のプログラムが複数存在した場合に、マルチプロセッサ組込み機器のシステムプログラムが、アクセス要求バッファ待ち時間が最小のプログラムを選択し、選択したプログラムが並列に実行されるようにプログラム実行順を調整することを特徴とする請求項15記載のマルチプロセッサ組込み機器。
JP2013020491A 2013-02-05 2013-02-05 マルチプロセッサ組込み機器 Expired - Fee Related JP6037869B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013020491A JP6037869B2 (ja) 2013-02-05 2013-02-05 マルチプロセッサ組込み機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013020491A JP6037869B2 (ja) 2013-02-05 2013-02-05 マルチプロセッサ組込み機器

Publications (2)

Publication Number Publication Date
JP2014153755A true JP2014153755A (ja) 2014-08-25
JP6037869B2 JP6037869B2 (ja) 2016-12-07

Family

ID=51575613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013020491A Expired - Fee Related JP6037869B2 (ja) 2013-02-05 2013-02-05 マルチプロセッサ組込み機器

Country Status (1)

Country Link
JP (1) JP6037869B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240698A (ja) * 1997-02-24 1998-09-11 Nec Corp 高負荷ジョブ負荷分散方式
JP2008527498A (ja) * 2004-12-30 2008-07-24 クゥアルコム・インコーポレイテッド Soc相互接続において転送待ち時間を低減するための方法および装置
JP2009251652A (ja) * 2008-04-01 2009-10-29 Mitsubishi Electric Corp マルチコアシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240698A (ja) * 1997-02-24 1998-09-11 Nec Corp 高負荷ジョブ負荷分散方式
JP2008527498A (ja) * 2004-12-30 2008-07-24 クゥアルコム・インコーポレイテッド Soc相互接続において転送待ち時間を低減するための方法および装置
JP2009251652A (ja) * 2008-04-01 2009-10-29 Mitsubishi Electric Corp マルチコアシステム

Also Published As

Publication number Publication date
JP6037869B2 (ja) 2016-12-07

Similar Documents

Publication Publication Date Title
US9727497B2 (en) Resolving contention between data bursts
US8478950B2 (en) Data processing circuit with arbitration between a plurality of queues
JP5330264B2 (ja) アクセス制御装置
JP6447217B2 (ja) 実行情報通知プログラム、情報処理装置および情報処理システム
US10061728B2 (en) Arbitration and hazard detection for a data processing apparatus
CN106415512B (zh) 存储器管理算法的动态选择
US8291157B2 (en) Concurrent refresh in cache memory
US8185679B2 (en) Controlling bus access
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
JP6037869B2 (ja) マルチプロセッサ組込み機器
JP2007122410A (ja) バス調停回路及びバス調停方法
US8667233B2 (en) Competition testing device
JP2015191604A (ja) 制御装置、制御プログラム、および制御方法
WO2008097451A1 (en) Metrics modules and methods for monitoring, analyzing and optimizing bus and memory operations in a complex integrated circuit
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP5111940B2 (ja) 情報処理装置及びアクセス制御方法
US8713205B2 (en) Data transfer device and data transfer method
JP2010033496A (ja) コンピュータシステム
KR20090128851A (ko) 버스 중재 방법 및 장치
US11914536B2 (en) Device and method for sharing resource via bus
JP2007034459A (ja) バスシステム
JP2018005851A (ja) 電子装置
JPH11232215A (ja) バスコントローラ、バスマスタ装置及びバス制御システムの制御方法
TWI407312B (zh) 記憶體存取裝置及方法
JP2010170473A (ja) バス調停装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161101

R150 Certificate of patent or registration of utility model

Ref document number: 6037869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees