JP6428309B2 - 演算処理システムおよび演算処理システムの制御方法 - Google Patents

演算処理システムおよび演算処理システムの制御方法 Download PDF

Info

Publication number
JP6428309B2
JP6428309B2 JP2015013671A JP2015013671A JP6428309B2 JP 6428309 B2 JP6428309 B2 JP 6428309B2 JP 2015013671 A JP2015013671 A JP 2015013671A JP 2015013671 A JP2015013671 A JP 2015013671A JP 6428309 B2 JP6428309 B2 JP 6428309B2
Authority
JP
Japan
Prior art keywords
processor
response time
input process
input
processing system
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
JP2015013671A
Other languages
English (en)
Other versions
JP2016139271A (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.)
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 JP2015013671A priority Critical patent/JP6428309B2/ja
Priority to US15/002,626 priority patent/US9898434B2/en
Publication of JP2016139271A publication Critical patent/JP2016139271A/ja
Application granted granted Critical
Publication of JP6428309B2 publication Critical patent/JP6428309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)

Description

本明細書で言及する実施例は、演算処理システムおよび演算処理システムの制御方法に関する。
近年、例えば、携帯電話に要求される機能および性能は年々高度化し、大型の液晶画面,タッチパネル,カメラおよびGPS等の様々なデバイスを搭載したスマートフォンやタブレット端末が普及してきている。
このような高機能の携帯電話では、消費電力も増加する傾向にあるが、搭載するバッテリから供給できる電力には限界がある。そのため、バッテリ駆動できる時間をより長くするために、消費電力を削減することが求められている。
これは、スマートフォンやタブレット端末だけでなく、様々な機能が搭載された携帯用ゲーム機や様々な携帯用端末でも同様である。このようなバッテリ駆動の携帯端末において、電力消費が大きいモジュールとしては、例えば、プロセッサ,通信回路およびディスプレイ等が挙げられる。
また、携帯端末の高機能および高性能化に伴って、マルチコアプロセッサを備えたものが普及している。さらに、携帯端末の中には、処理能力および消費電力の異なる複数種類のプロセッサを備えているものも提供されている。
例えば、複数種類のプロセッサを備えた携帯端末では、メインプログラムを処理能力の大きなメインプロセッサで行い、計算処理や音声デコード処理などプログラムの一部の処理を消費電力の小さいサブプロセッサで行うといった使い分けがなされている。
さらに、複数種類のプロセッサを備えた携帯端末では、例えば、タッチパネルや各種センサー或いは入力機器のセンシング処理をサブプロセッサにより高頻度で行い、センシングの精度を保ちつつ、消費電力を抑えるといった仕組みも実装されている。
なお、メインプロセッサとしては、例えば、処理能力は高いが消費電力も大きい汎用のプロセッサであり、また、サブプロセッサとしては、例えば、処理能力は限られているが消費電力の小さいDSP(Digital Signal Processor)等のプロセッサである。
ところで、従来、複数種類のプロセッサを備えた演算処理システムの制御技術としては、様々な提案がなされている。
特開2010−257056号公報 特表2007−514214号公報
上述したように、消費電力の異なるメインプロセッサおよびサブプロセッサを含む演算処理システムにおいて、例えば、サブプロセッサにタッチパネルのセンシング処理を高頻度で行わせて消費電力の低減を図るものが提供されている。
しかしながら、サブプロセッサによる処理が重なって負荷が増加すると、例えば、タッチパネルのセンシング処理(ユーザの入力操作)に許容される応答時間を満たすことが困難になり、応答性の悪化を招くことになる。すなわち、サブプロセッサによる処理の応答時間の制約を満たしつつ、メインプロセッサの処理量を減らして消費電力を低減するのは、困難になっている。
一実施形態によれば、第1プロセッサと、第2プロセッサと、前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、通信バス遅延モニタリング部と、オフロード判定・指示部と、を有する演算処理システムが提供される。
前記通信バス遅延モニタリング部は、前記通信バスにおける遅延時間を観測して、バス利用率を求め、前記オフロード判定・指示部は、観測された前記バス利用率に基づいて、入力処理のオフロード判定および指示を行う。前記第1プロセッサは、前記通信バス遅延モニタリング部と、観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もる第1応答時間見積部と、観測された前記バス利用率に基づいて、前記入力処理のオフロード判定および指示を行う第1オフロード判定・指示部と、を有する。前記第1オフロード判定・指示部は、前記第1応答時間見積部により見積もられた、前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させるようにする。
開示の演算処理システムおよび演算処理システムの制御方法は、サブプロセッサによる処理に対する応答時間の制約を満たしつつ、メインプロセッサの処理量を減らして、消費電力を低減することができるという効果を奏する。
図1は、演算処理システムの一例を示すブロック図である。 図2は、図1に示す演算処理システムにおける課題を説明するための図である。 図3は、演算処理システムの他の例における制御方法を説明するための図である。 図4は、図3に示す演算処理システムにおける課題を説明するための図である。 図5は、演算処理システムの一例をより詳細に示すブロック図である。 図6は、本実施形態に係る演算処理システムの一例を示すブロック図である。 図7は、図6に示す演算処理システムのサブプロセッサにおける入力処理結果送信キューイング部の処理の一例を説明するためのフローチャートである。 図8は、図6に示す演算処理システムのサブプロセッサにおける入力処理結果送信部の処理の一例を説明するためのフローチャートである。 図9は、図6に示す演算処理システムのサブプロセッサおよびメインプロセッサにおける時刻同期部の処理の一例を説明するためのフローチャートである。 図10は、図6に示す演算処理システムのメインプロセッサにおける通信バス遅延モニタリング部の処理の一例を説明するためのフローチャートである。 図11は、図6に示す演算処理システムのメインプロセッサにおける応答時間見積部の処理の一例を説明するためのフローチャートである。 図12は、図6に示す演算処理システムのメインプロセッサにおけるオフロード判定・指示部の処理の一例を説明するためのフローチャートである。 図13は、図6に示す演算処理システムのサブプロセッサにおけるオフロード判定・指示部の処理の一例を説明するためのフローチャートである。 図14は、図6に示す演算処理システムのメインメモリにおける通信バス動作情報の例を説明するための図である。 図15は、図6に示す演算処理システムのメインメモリにおけるオフロード可能処理制御表の一例を説明するための図である。 図16は、図6に示す演算処理システムのメインメモリにおける入力デバイス属性表の一例を説明するための図である。 図17は、図6に示す演算処理システムのメインメモリにおけるオフロード実行プロセッサ制御表の一例を説明するための図である。 図18は、図6に示す演算処理システムのメインメモリにおけるプロセッサ性能情報制御表の一例を説明するための図である。 図19は、図6に示す演算処理システムのメインメモリにおけるプロセッサ動作情報制御表の一例を説明するための図である。 図20は、本実施形態に係る演算処理システムによりタッチ入力処理を行う実施例を説明するための図(その1)である。 図21は、本実施形態に係る演算処理システムによりタッチ入力処理を行う実施例を説明するための図(その2)である。 図22は、図20および図21に示すタッチ入力処理を行う場合のメインメモリにおけるオフロード可能処理制御表の一例を説明するための図である。 図23は、図20および図21に示すタッチ入力処理を行う場合のメインメモリにおける入力デバイス属性表の一例を説明するための図である。
まず、本実施例の演算処理システムおよび演算処理システムの制御方法を詳述する前に、図1〜図5を参照して、演算処理システムおよび演算処理システムの制御方法の例、並びに、その課題を説明する。
図1は、演算処理システムの一例を示すブロック図である。図1に示されるように、演算処理システムは、例えば、メインプロセッサ(メインCPU)1、サブプロセッサ(サブCPU)2、メインメモリ3、通信バス4およびI/O(Input/Output:入出力)バス5を含む。
メインプロセッサ1、サブプロセッサ2およびメインメモリ3は、通信バス4を経由してバス接続され、例えば、外部に設けられた入力機器またはセンサー6は、I/Oバス5を経由してメインプロセッサ1およびサブプロセッサ2とバス接続されている。
メインプロセッサ(第1プロセッサ)1は、例えば、処理能力は高いが消費電力も大きい汎用のプロセッサであり、ユーザが利用するアプリ(メインプログラム)1aを実行し、サブプロセッサ2を補助的な役割で使用する。
また、サブプロセッサ(第2プロセッサ)2は、例えば、処理能力は限られているが消費電力の小さいDSP等のプロセッサであり、このサブプロセッサ2に対してできるだけ多くの処理(入力処理2)を任せることにより、消費電力を低減することが可能になる。
入力処理2aは、例えば、入力機器またはセンサー6から、I/Oバス5を経由して入力されるデータ入力に基づいた処理(例えば、タッチパネルのセンシング処理)である。そして、サブプロセッサ2で処理された入力結果は、通信バス4を経由してメインプロセッサ1上のアプリ1aに対して、入力イベント通知として与えられる。
ここで、メインプロセッサ1およびサブプロセッサ2は、それぞれ1つに限定されるものではなく、さらに、メインプロセッサ1は、複数のプロセッサコアを有するものであってもよい。なお、メインプロセッサ1とサブプロセッサ2の処理能力および消費電力の大小(高低)は、相対的なものであり、また、サブプロセッサ2は、DSPに限定されないのはいうまでもない。
図2は、図1に示す演算処理システムにおける課題を説明するための図であり、サブプロセッサ2が、入力処理2aの他に、数値計算2bおよび音声処理2c等の処理を行って負荷が増加している様子を示すものである。
図2に示されるように、サブプロセッサ2の負荷が増加すると、例えば、入力機器およびセンサー6からの入力処理2aの処理時間が増加し、メインプロセッサ1上のアプリ1aに対する入力イベント通知が遅延することになる。その結果、例えば、ユーザ(利用者)の入力操作(例えば、タッチパネルのセンシング処理)に対する応答性の悪化を招く虞がある。
図3は、演算処理システムの他の例における制御方法を説明するための図である。図3に示されるように、メインメモリ3、2つのメインプロセッサ(Big CPU)111,112を含む第1クラスタ100、および、3つのサブプロセッサ(LITTLE CPU)211〜213を含む第2クラスタ200が通信バス4を経由してバス接続されている。
ここで、メインプロセッサ111,112は、処理能力は高いが消費電力が大きく、サブプロセッサ211〜213は、処理能力は低いが消費電力が小さく、これらプロセッサ111,112および211〜213は、同時に動作するようになっている。
そして、例えば、サブプロセッサ211の負荷が上昇して実行待ち時間(run queue上の滞在時間)が長くなってしきい値を超えると、サブプロセッサ211の処理をメインプロセッサ111に移動して、メインプロセッサ111により処理する。
しかしながら、図3の例では、例えば、通信バス4の利用率が上昇して通信時間が大きくなっても、サブプロセッサ211の負荷がしきい値を超えなければ、タスクはサブプロセッサ211に割り当てられた状態を継続することになる。
図4は、図3に示す演算処理システムにおける課題を説明するための図であり、メインプロセッサ111(1)およびサブプロセッサ211(2)のみを描いたものである。上述したように、例えば、サブプロセッサ2の負荷がしきい値を超えない状態で、サブプロセッサ2からメインプロセッサ1への通信時間が大きくなった場合、メインプロセッサ1上のアプリ1aへの入力イベント通知は遅延することになる。
すなわち、通信バス4には、メインプロセッサ1およびサブプロセッサ2だけでなく、メインメモリ3を始めとして、他の様々なサブコンポーネントが接続されているのが一般的である。
そのため、メインプロセッサ1およびサブプロセッサ2以外のコンポーネントが通信バス4を使用して通信を行うと、通信バス4の負荷が上昇することになり、このような場合にもメインプロセッサ1とサブプロセッサ2間の通信時間は増加することになる。
図5は、演算処理システムの一例をより詳細に示すブロック図であり、後述する本実施形態の演算処理システムに対応させて描いた関連技術の演算処理システムに相当する。図5に示されるように、メインプロセッサ1は、入力割込み受信部101,オフロード判定・指示部102,入力処理起動・停止部103,応答時間見積部104およびプロセッサスケジューリング部105を含む。
サブプロセッサ2は、入力割込み受信部201,オフロード判定・指示部202,入力処理起動・停止部203,応答時間見積部204およびプロセッサスケジューリング部205を含む。ここで、メインプロセッサ1は、アプリ1aを実行し、サブプロセッサ2は、入力処理2aを実行する。
メインメモリ3には、プロセッサ性能情報制御表301,プロセッサ動作情報制御表302,オフロード実行プロセッサ制御表303,入力デバイス属性表304およびオフロード可能処理制御表305が格納されている。
ここで、I/Oバス5には、I/O制御装置62を経由してI/O装置61が接続されている。また、I/O装置61およびI/O制御装置62は、入力機器またはセンサー6に対応する。なお、メインプロセッサ1,サブプロセッサ2およびメインメモリ3における各ブロックは、本実施形態に係る演算処理システムの一例を示す図6を参照して、後述する。
以下、演算処理システムおよび演算処理システムの制御方法の実施例を、添付図面を参照して詳述する。図6は、本実施形態に係る演算処理システムの一例を示すブロック図である。
図6に示されるように、メインプロセッサ1は、ローカルクロック部10,入力割込み受信部11,オフロード判定・指示部12,入力処理起動・停止部13および応答時間見積部(第1応答時間見積部)14を含む。さらに、メインプロセッサ1は、プロセッサスケジューリング部15,通信バス遅延モニタリング部16および時刻同期部17を含む。
サブプロセッサ2は、ローカルクロク部20,入力割込み受信部21,オフロード判定・指示部22,入力処理起動・停止部23,応答時間見積部(第2応答時間見積部)24およびプロセッサスケジューリング部25を含む。さらに、サブプロセッサ2は、入力処理送信キューイング部26,入力処理結果送信部28および時刻同期部27を含む。ここで、メインプロセッサ1は、アプリ1aを実行し、サブプロセッサ2は、入力処理2aを実行する。
メインメモリ3には、プロセッサ性能情報制御表31,プロセッサ動作情報制御表32,オフロード実行プロセッサ制御表33,入力デバイス属性表34,オフロード可能処理制御表35および通信バス動作情報36が格納されている。
ここで、通信バス4には、グローバルクロック部7が接続され、グローバルクロック部7からのグローバルクロックは、メインプロセッサ1の時刻同期部17およびサブプロセッサ2の時刻同期部27に供給されるようになっている。
また、I/Oバス5には、I/O制御装置62を経由してI/O装置61が接続されている。このI/O装置61およびI/O制御装置62は、例えば、前述した図1における入力機器またはセンサー6に対応する。
なお、前述した図5における、メインプロセッサ1のブロックは101〜105、サブプロセッサ2のブロックは201〜205およびメインメモリ3の表301〜305は、それぞれ図6における、ブロックは11〜15、ブロックは21〜25および表31〜35に相当する。
図7は、図6に示す演算処理システムのサブプロセッサにおける入力処理結果送信キューイング部の処理の一例を説明するためのフローチャートである。図7に示されるように、サブプロセッサ2の入力処理結果送信キューイング部26による入力処理結果の送信キューイング処理が開始すると、ステップST11において、ローカルクロック部20から現在時刻を取得し、ステップST12に進む。
ステップST12では、送信データのヘッダに送信キューイング時刻(取得した現在時刻)および送信データのデータサイズを記録し、さらに、ステップST13に進んで、送信データヘッダを送信待ちキューに入れて、入力処理結果の送信キューイング処理を終了する。
すなわち、サブプロセッサ2において、入力処理2aにより処理された入力処理結果をメインプロセッサ1に送信するために、その送信データを送信待ちキューに入れるが、その時点の時刻を、送信キューイング時刻として送信データのヘッダに記録する。
図8は、図6に示す演算処理システムのサブプロセッサにおける入力処理結果送信部の処理の一例を説明するためのフローチャートである。図8に示されるように、サブプロセッサ2の入力処理結果送信部28による入力処理結果の送信処理が開始すると、ステップST21において、送信待ちキューが空かどうかを判定する。
ステップST21において、送信待ちキューが空ではない、すなわち、送信待ちキューに送信データが入っていると判定すると、ステップST22に進んで、送信待ちキューから送信データを取り出し、ステップST23に進む。
ステップST23では、ローカルクロック部20から現在時刻を取得し、ステップST24に進んで、送信データのヘッダに現在時刻を送信時刻として記録する。さらに、ステップST25に進み、送信データを処理結果通知として、通信バス4を経由してメインプロセッサ1(通信バス遅延モニタリング部16)へ送信して、入力処理結果の送信処理を終了する。
なお、ステップST21において、送信待ちキューが空である、すなわち、送信待ちキューに送信データが入っていないと判定すると、送信待ちキューが空ではないと判定するまで処理を繰り返す。
すなわち、サブプロセッサ2において、送信待ちキューにキューイングされたデータを送信するとき、入力処理結果送信部28は、その時点の時刻を、送信時刻として送信データのヘッダに記録する。
図9は、図6に示す演算処理システムのサブプロセッサおよびメインプロセッサにおける時刻同期部の処理の一例を説明するためのフローチャートである。ここで、メインプロセッサ1の時刻同期部17およびサブプロセッサ2の時刻同期部27は、実質的に同様の処理を行う。
なお、図9の説明では、サブプロセッサ2の時刻同期部27による時刻同期処理を説明するが、メインプロセッサ1の時刻同期部17による時刻同期処理も同様である。すなわち、図9に示されるように、サブプロセッサ2の時刻同期部27による時刻同期処理が開始すると、ステップST31において、通信バス4を経由して、グローバルクロック部7から現在時刻を取得し、ステップST32に進む。
ステップST32では、ローカルクロック部20の現在時刻を更新し(ローカルクロックをグローバルクロックと同期させ)、ステップST33に進んで、タイマーを設定して、一定時間スリープし、さらに、ステップST31に戻って同様の処理を繰り返す。
なお、メインプロセッサ1の時刻同期部17による時刻同期処理では、上述したステップST32におけるサブプロセッサ2のローカルクロック部20を、メインプロセッサ1のローカルクロック部10と読み替えればよい。
すなわち、時刻同期部17および27は、それぞれメインプロセッサ1およびサブプロセッサ2が保持しているローカルクロックの時刻がずれないように、定期的にグローバルクロック部7から時刻を取得し、それぞれのローカルクロックを更新する。これにより、メインプロセッサ1とサブプロセッサ2間の通信における遅延時間を正確に計測することが可能になる。
ここで、グローバルクロック部7は、例えば、演算処理システムが保持するハードウェアの時計機能モジュールであり、通信バス4に接続され、各プロセッサ1,2からアクセスすることでシステム共通の現在時刻を取得できるようにするためのものである。
また、ローカルクロック部10,20は、各プロセッサ1,2が保持するハードウェアの時計機能モジュールであり、各プロセッサ1,2は、自身が内蔵するローカルクロック部10,20にアクセスして高速に現在時刻を取得することができるようになっている。
図10は、図6に示す演算処理システムのメインプロセッサにおける通信バス遅延モニタリング部の処理の一例を説明するためのフローチャートである。図10に示されるように、メインプロセッサ1の通信バス遅延モニタリング部16による通信バス遅延モニタリング(観測)処理が開始すると、ステップST41において、受信データのヘッダから送信時刻,送信キューイング時刻およびデータサイズを取得する。
すなわち、通信バス遅延モニタリング部16は、サブプロセッサ2から通信バス4を経由して受信データ(処理結果通知)を受け取り、そのヘッダに記録された送信時刻,送信キューイング時刻およびデータサイズを取得して、ステップST42に進む。
ステップST42では、ローカルクロック部10から現在時刻を取得し、さらに、ステップST43に進む。ステップST43では、データ転送遅延時間=現在時刻−送信時刻,送信時刻転送レート=データサイズ/データ転送遅延時間,並びに,送信待ち時間=送信時刻−送信キューイング時刻を求め、ステップST44に進む。
ステップST44では、通信バス動作情報36からデータを読み出し、通信バス利用率=1−(転送レート/最大転送レート)を求める。さらに、ステップST45に進んで、(通信バス利用率,送信待ち時間および現在時刻)を、通信バス動作情報36に書き込み、通信バス遅延モニタリング部16による通信バス遅延モニタリング処理を終了する。
すなわち、通信バス遅延モニタリング部16は、ステップST44およびST45において、通信バス4を経由してメインメモリ3の通信バス動作情報36に対するデータの読み出しおよび書き込みを行う。
これにより、メインプロセッサ1とサブプロセッサ2間のデータ通信時に、通信バス4を経由したデータ転送遅延時間(通信遅延時間),送信待ち時間(送信キューイング待ち時間)および通信バス利用率(バス利用率)を計測して記録することができる。
図11は、図6に示す演算処理システムのメインプロセッサにおける応答時間見積部の処理の一例を説明するためのフローチャートである。図11に示されるように、メインプロセッサ1の応答時間見積部(第1応答時間見積部)14による応答時間見積処理が開始すると、ステップST51において、現在時刻>通信記録時刻+通信記録時刻しきい値が成り立つかどうかを判定する。
ステップST51において、現在時刻>通信記録時刻+通信記録時刻しきい値が成立すると判定すると、ステップST52に進んで、通信バス利用率=利用率デフォルト値として、ステップ54に進む。
一方、ステップST51において、現在時刻>通信記録時刻+通信記録時刻しきい値が成立しないと判定すると、ステップST53に進んで、通信バス利用率=直近の記録された利用率値として、ステップ54に進む。なお、ステップST51の判定処理において、応答時間見積部14は、通信バス4を経由して、メインメモリ3に格納されている通信バス動作情報36からデータを読み出す。
ステップST54では、各機能の見積現在時刻=通信時間+計算時間,および,通信時間=出力データ量/(1−通信バス利用率)*最大通信レート+送信待ち時間を求める。また、ステップST54では、メインプロセッサ計算時間=メインプロセッサ計算量/(1−メインプロセッサ利用率)*メインプロセッサ計算レートを求める。さらに、ステップST54では、サブプロセッサ計算時間=サブプロセッサ計算量/(1−サブプロセッサ利用率)*サブプロセッサ計算レートを求める。
なお、ステップST54では、通信バス4を経由して、メインメモリ3に格納されたプロセッサ性能情報制御表31,オフロード可能処理制御表35および通信バス動作情報36からデータを読み出して処理を行う。そして、ステップST55に進んで、見積応答時間(第1見積応答時間)=各機能の見積応答時間合計とし、応答時間見積部14による応答時間見積処理を終了する。
すなわち、メインプロセッサ1の応答時間見積部14は、メインプロセッサ1とサブプロセッサ2間の通信バス4の利用率に基づいて、入力処理2aをサブプロセッサ2で実行した際の応答時間を見積もる。
ここで、入力処理2aをサブプロセッサ2で実行した際の応答時間とは、メインプロセッサ1上のアプリ1aに対して入力イベントが通知されるまでの時間とする。なお、サブプロセッサ2の応答時間見積部(第2応答時間見積部)24は、実質的に、メインプロセッサ1の応答時間見積部(第1応答時間見積部)14と同様であり、その説明は省略する。
図12は、図6に示す演算処理システムのメインプロセッサにおけるオフロード判定・指示部の処理の一例を説明するためのフローチャートである。図12に示されるように、メインプロセッサ1のオフロード判定・指示部12によるオフロード判定・指示処理が開始すると、ステップST61において、オフロード可能処理リストを初期化して、ステップST62に進む。
ステップST62では、オフロード候補の機能ID(i)を、メインメモリ3に格納されたオフロード可能処理制御表35の最終行から順に取り出し(読み出し)、ステップST63に進んで、応答時間の見積もりを行う。
さらに、ステップST64に進んで、見積応答時間<第1要求応答時間が成り立つかどうかを判定する。なお、ステップST64の判定処理において、オフロード判定・指示部12は、通信バス4を経由して、メインメモリ3に格納されている入力デバイス属性表34からデータを読み出す。
ステップST64において、見積応答時間<第1要求応答時間が成立すると判定すると、ステップST65に進み、オフロード可能処理リストに該当機能ID(該当機能処理)を追加し、さらに、ステップST66に進む。
一方、ステップST64において、見積応答時間<第1要求応答時間が成立しないと判定すると、そのままステップST66に進む。なお、ステップST65の処理において、オフロード判定・指示部12は、通信バス4を経由して、メインメモリ3に格納されているオフロード実行プロセッサ制御表33にデータを書き込む。
ステップST66では、すべての機能IDの取り出しが終了したかどうかと判定し、すべての機能IDの取り出しが終了したと判定するとステップST67に進む。なお、ステップST66において、すべての機能IDの取り出しが終了していないと判定すると、ステップST62に戻って同様の処理を繰り返す。
ステップST67では、オフロード可能処理リストが空かどうかを判定し、オフロード可能処理リストが空であると判定すると、ステップST68に進み、オフロード可能処理リストが空ではないと判定すると、ステップST69に進む。
ステップST68では、オフロード不可能として、サブプロセッサ2のオフロード可能処理を停止し、メインプロセッサ1でオフロード可能処理を起動し、オフロード判定・指示部12によるオフロード判定・指示処理を終了する。
一方、ステップST69では、オフロード可能として、メインプロセッサ1のオフロード可能処理を停止し、サブプロセッサ2でオフロード可能処理を起動し、オフロード判定・指示部12によるオフロード判定・指示処理を終了する。
このように、メインプロセッサ1のオフロード判定・指示部12は、見積応答時間とデバイス毎の要求応答時間に基づいて、入力処理(2a)がサブプロセッサ2にオフロード可能かどうかを判定し、その結果により、入力処理の起動・停止指示を行う。
すなわち、第1見積応答時間が第1要求応答時間に間に合う場合は、入力処理を省電力のサブプロセッサ2により動作させ、第1見積応答時間が第1要求応答時間に間に合わない場合には、メインプロセッサ1により動作させる。
図13は、図6に示す演算処理システムのサブプロセッサにおけるオフロード判定・指示部の処理の一例を説明するためのフローチャートである。図13と上述した図12の比較から明らかなように、サブプロセッサ2のオフロード判定・指示部22によるオフロード判定・指示処理は、実質的にメインプロセッサ1のオフロード判定・指示部12によるオフロード判定・指示処理と同様である。
すなわち、図13に示されるように、サブプロセッサ2のオフロード判定・指示部22によるオフロード判定・指示処理が開始すると、ステップST71において、オフロード可能処理リストを初期化して、ステップST72に進む。
ステップST72では、オフロード候補の機能ID(i)を、メインメモリ3に格納されたオフロード可能処理制御表35の最終行から順に取り出し、ステップST73に進んで、応答時間の見積もりを行う。
さらに、ステップST74に進んで、見積応答時間<第2要求応答時間が成り立つかどうかを判定する。なお、ステップST74の判定処理において、オフロード判定・指示部22は、通信バス4を経由して、メインメモリ3に格納されている入力デバイス属性表34からデータを読み出す。
ステップST74において、見積応答時間<第2要求応答時間が成立すると判定すると、ステップST75に進み、オフロード可能処理リストに該当機能IDを追加し、さらに、ステップST76に進む。
一方、ステップST74において、見積応答時間<第2要求応答時間が成立しないと判定すると、そのままステップST76に進む。なお、ステップST75の処理において、オフロード判定・指示部22は、通信バス4を経由して、メインメモリ3に格納されているオフロード実行プロセッサ制御表33にデータを書き込む。
ステップST76では、すべての機能ID(すべての機能処理)の取り出しが終了したかどうかと判定し、すべての機能IDの取り出しが終了したと判定するとステップST77に進む。なお、ステップST76において、すべての機能IDの取り出しが終了していないと判定すると、ステップST72に戻って同様の処理を繰り返す。
ステップST77では、オフロード可能処理リストが空かどうかを判定し、オフロード可能処理リストが空であると判定すると、ステップST78に進み、オフロード可能処理リストが空ではないと判定すると、ステップST79に進む。
ステップST78では、オフロード不可能として、サブプロセッサ2のオフロード可能処理を停止し、メインプロセッサ1でオフロード可能処理を起動し、オフロード判定・指示部12によるオフロード判定・指示処理を終了する。
一方、ステップST79では、オフロード可能として、メインプロセッサ1のオフロード可能処理を停止し、サブプロセッサ2でオフロード可能処理を起動し、オフロード判定・指示部12によるオフロード判定・指示処理を終了する。
このように、サブプロセッサ2のオフロード判定・指示部22は、実質的に、メインプロセッサ1のオフロード判定・指示部12と同様の処理を行うことになる。すなわち、見積応答時間が要求応答時間に間に合う場合は、入力処理を省電力のサブプロセッサ2により動作させ、見積応答時間が要求応答時間に間に合わない場合には、メインプロセッサ1により動作させる。
以上において、図12のステップST64における第1要求応答時間は、図13のステップST74における第2要求応答時間から所定のマージンαだけ短く設定するのが好ましい。
ここで、メインプロセッサ1の入力割込み受信部11およびサブプロセッサ2の入力割込み受信部21は、実質的に同様のものであり、入力デバイスを操作した際の割り込み通知(INT)を受信し、オフロード判定・指示部12および22を呼び出す。
また、入力処理起動・停止部13および23も実質的に同様のものであり、オフロード判定・指示部12および22からの指示に基づいて、メインプロセッサ1およびサブプロセッサ2上での入力処理の停止・起動処理を行う。
さらに、プロセッサスケジューリング部15および25も実質的に同様のものであり、各プロセッサ1および2上で実行可能な処理を順番にプロセッサ1および2に割り当て、実行させる処理を行う。
なお、アプリ1aは、ユーザ(利用者)が携帯端末(演算処理システム)を操作して使用するプログラムの本体であり、通常、メインプロセッサ1により実行される。また、入力処理(2a)は、例えば、入力デバイス(入力機器またはセンサー6,I/O装置61)からのデータを受信し、入力データに対して補正や解釈などの後処理を行い、アプリ1aが使えるデータに変換するプログラムである。この入力処理は、メインプロセッサ1およびサブプロセッサ2のいずれでも動作可能な形式で用意される。
図14は、図6に示す演算処理システムのメインメモリにおける通信バス動作情報の例を説明するための図である。ここで、図14(a)は、起動時に設定される通信バス動作情報の一例を示し、図14(b)は、実行中に計測して更新される通信バス動作情報の一例を示す。
図14(a)に示されるように、起動時に設定される通信バス動作情報(36)は、例えば、最大通信レート:200byte/ms,利用率デフォルト値:99%,および,通信記録時刻しきい値:10000msとされている。
この図14(a)に示す値は、例えば、前述した図10のステップST44において、メインメモリ3の通信バス動作情報36から読み出して設定するデータ(最大転送レート)に相当する。なお、通信バス利用率をしばらく計測していない場合は、通信時間を見積もれないため、デフォルト値を使用して通信時間を大きく見積もるようにするのが好ましい。
図14(b)に示されるように、実行中に計測して更新される通信バス動作情報(36)は、例えば、通信バス利用率:50%,通信記録時刻:20000ms,および,送信町時間:0.1msとされている。
この図14(b)に示す値は、例えば、前述した図10のステップST45において、メインメモリ3の通信バス動作情報36に書き込むデータに相当する。なお、図14(b)に示す値は、例えば、メインプロセッサ1により、サブプロセッサ2からのデータ受信時に、通信遅延時間から通信バス利用率を計測し、計測時の時刻(通信記録時刻)と共に、図14(b)のように記録することができる。
さらに、通信バス利用率を計測するためのメインプロセッサ−サブプロセッサ間の通信バスの最大通信レート、並びに、送信キューで送信待ちに要した時間も送信待ち時間として計測し、図14(b)のように記録することができる。
図15は、図6に示す演算処理システムのメインメモリにおけるオフロード可能処理制御表の一例を説明するための図であり、入力処理がパイプライン処理(機能A〜E)の場合の例を示すものである。オフロード可能処理制御表35は、例えば、前述した図12のステップST62において、オフロード判定・指示部12により読み出して取り込まれる。
図15に示されるように、オフロード可能処理制御表35には、例えば、各機能ID(例えば、I/O装置61からの入力処理:機能処理A,B,C,D,E)に対するメインおよびサブプロセッサの計算量、並びに、入出力データ量が記録されている。
すなわち、オフロード可能処理制御表35には、例えば、サブプロセッサ2にオフロード可能な各入力処理機能を、メインプロセッサ1実行した場合の計算量(命令数)、および、サブプロセッサ2で実行した場合の計算量が記録されている。
さらに、オフロード可能処理制御表35には、メインプロセッサ1とサブプロセッサ2間の入力データ量(byte)および出力データ量が記録されている。ここで、オフロード可能処理制御表35は、例えば、最終行(下)から順にオフロード可能処理候補となるように並べられている。
すなわち、最終行の機能IDが入力デバイス(I/O装置)からの入力処理機能を示し、最終行の機能から連続した行の機能IDのまとまり(例えば、E,C〜E,A〜E)がオフロード可能な処理のまとまりになる。
具体的に、例えば、機能(処理)A〜Dはメインプロセッサ1で処理して機能Eはサブプロセッサ2で処理(オフロード処理)、或いは、機能AおよびBはメインプロセッサ1で処理して機能C〜Eはサブプロセッサ2で処理するといった割り当てを行う。若しくは、例えば、機能A〜Eの全てを、オフロード処理としてサブプロセッサ2で処理するといった割り当てを行う。
なお、例えば、機能A〜Eの全てをサブプロセッサ2でオフロード処理する場合、Aの出力データ量(200byte)がメインプロセッサ1およびサブプロセッサ2間の通信で転送されるデータ量になる。
図16は、図6に示す演算処理システムのメインメモリにおける入力デバイス属性表の一例を説明するための図である。図16に示されるように、入力デバイス属性表34には、例えば、前述した図12のステップST64で使用する第1要求応答時間および図13のステップST74で使用する第2要求応答時間が記録されている。
具体的に、例えば、第1要求応答時間は、第2要求応答時間である4.5msから、0.5msのマージン(α)を差し引いて、4.0msに設定されている。すなわち、例えば、機能A〜Eをサブプロセッサ2でオフロード処理するとき、所定のマージンαを与えて、サブプロセッサ2からメインプロセッサ1へ処理が移動する(戻る)のを低減して安定した動作を行わせるようになっている。
ここで、入力デバイス属性表34には、操作性能を確保するために必要な応答時間、すなわち、ユーザが入力デバイスを操作した結果がアプリケーションプログラムに通知されるまでの時間が事前に設定されている。なお、第1要求応答時間および第2要求応答時間は、例えば、デバイスの種別毎にそれぞれ固有の値に設定される。
図17は、図6に示す演算処理システムのメインメモリにおけるオフロード実行プロセッサ制御表の一例を説明するための図である。図17に示されるように、オフロード実行プロセッサ制御表33には、例えば、入力処理の各機能IDの現在の実行プロセッサ(メインプロセッサ1(Main)またはサブプロセッサ2(Sub))が格納されている。
図18は、図6に示す演算処理システムのメインメモリにおけるプロセッサ性能情報制御表の一例を説明するための図である。図18に示されるように、プロセッサ性能情報制御表31には、例えば、プロセッサ種別毎(メインプロセッサ1,サブプロセッサ2)の計算処理能力(計算レート:命令数/ms)が格納されている。
図19は、図6に示す演算処理システムのメインメモリにおけるプロセッサ動作情報制御表の一例を説明するための図である。図19に示されるように、プロセッサ動作情報制御表32には、例えば、プロセッサ種別毎(メインプロセッサ1,サブプロセッサ2)の利用率(%)が、ビジー時間(Busy時間(ms))およびアイドル(Idle時間(ms))と共に格納されている。
上述したように、本実施形態に係る演算処理システムは、メインプロセッサ1とサブプロセッサ2間のデータ通信時に通信バス4の利用状況を計測して記録し、その後のメインプロセッサ1とサブプロセッサ2間のデータ通信の所要時間を見積もる。
すなわち、通信バス4のトラフィックを観測してバス利用率を求め、その後の通信所要時間を見積もる。また、メインプロセッサ1とサブプロセッサ2間のデータ通信の遅延時間を観測することにより、通信バス4の混雑状況を把握し、その後の通信所要時間を見積もる。さらに、メインプロセッサ1とサブプロセッサ2間の通信バス4の利用率に基づいて、オフロード可能な入力処理をサブプロセッサ2で実行した場合の応答時間を見積もる。
そして、サブプロセッサ2で実行した場合の見積応答時間が、入力デバイス(I/O装置61)の第1要求応答時間を満たせる場合には、該当する入力処理をメインプロセッサ1で実行中なら停止してサブプロセッサ2で実行させる。
一方、サブプロセッサ2で実行した場合の見積応答時間が、入力デバイスの第2要求応答時間を満たせない場合には、該当する入力処理をサブプロッセサ2で実行中なら停止し、メインプロセッサ1で実行させる。
このように、本実施形態は、例えば、メインプロセッサと省電力のサブプロセッサを備えた装置において、入力処理をできるだけサブプロセッサにオフロードする。これにより、応答時間の制約を満たしつつ、メインプロセッサの動作時間(処理量)を減らして、消費電力を削減することが可能になる。
図20および図21は、本実施形態に係る演算処理システムによりタッチ入力処理を行う実施例を説明するための図であり、図6におけるI/O装置61およびI/O制御装置62がタッチスクリーンデバイスおよびタッチICの場合を説明するためのものである。
ここで、図20は、例えば、通信バス4の利用率が低く、サブプロセッサ2にタッチ入力処理(2a)をオフロードしても要求される応答時間(例えば、描画フレームレート:16.6ms)内にアプリ1aに対して入力通知が可能な場合の動作例を示す。
また、図21は、例えば、サブプロセッサ2が音声処理2cおよび数値計算2bといった他の処理も行っている等の要因で通信バス4の利用率が上昇し、サブプロセッサ2にオフロードすると応答時間内にアプリ1aへの入力通知が不可能な場合の動作例を示す。
なお、図20および図21では、タッチ入力処理システム固有の部分を除いて省略されているが、メインプロセッサ1,サブプロセッサ2およびメインメモリ3は、実質的に、図6〜図19を参照して説明したのと同様である。
図20および図21に示されるように、I/Oバス5には、タッチIC62を経由して、ユーザがタッチ操作を行うタッチスクリーンデバイス61(入力デバイス)が接続されている。
ここで、本システムでは、例えば、ユーザがタッチスクリーンデバイス61により行ったタッチスクリーン操作を処理し、一定時間以内にアプリ1aに対する入力情報として伝達し、アプリ1aの描画処理等の動作に反映させることが求められる。また、ユーザがタッチ操作を行うと、タッチIC62からプロセッサ1,2へ割り込み(INT)が通知される。
ここで、タッチスクリーンデバイス61の描画フレームレートが16.6msの場合、メインプロセッサ1およびサブプロセッサ2における様々な回路や処理等を考慮して、例えば、第1要求応答時間は、4.0ms程度に設定するのが好ましい。
また、後述するように、第2要求応答時間は、第1要求応答時間に対して所定のマージンα(例えば、0.5ms)を加えた4.5ms程度に設定するのが好ましい。なお、第1および第2要求応答時間は、入力デバイスの種類や機能ID(処理)等に基づいて、それぞれ固有の値が設定される。
そして、サブプロセッサ2で実行した場合の見積応答時間が、第1要求応答時間(例えば、4.0ms)を満たせる(例えば、4.0msよりも短い)場合には、該当する入力処理2aをサブプロセッサ2で実行させる。すなわち、図20に示されるように、サブプロセッサ2では、タッチIC62からデータを読み込み、さらに、後処理を行う。
入力処理2aの後処理は、例えば、タッチICデータ読み取り処理21e,タッチ誤入力検出処理21d,タッチ位置補正処理21c,タッチデータ解釈処理21bおよびタッチ位置予測処理21aを含む。さらに、サブプロセッサ2による入力処理2aの結果は、通信バス4を経由して、メインプロセッサ1におけるアプリ1aの入力処理11aに通知される。
ここで、上記一連の後処理は、例えば、パイプライン処理のように、入力データに対して順番に処理することで、アプリ1aに通知するデータ形式に変換される。そして、前述したように、本実施形態によれば、一連の後処理は、応答時間(第1要求応答時間)を満たす限りサブプロセッサ2にオフロードして実行させることにより、操作性能を保ちつつ、消費電力を低減することが可能になる。
一方、サブプロセッサ2で実行した場合の見積応答時間が、タッチスクリーンデバイス61の第2要求応答時間を満たせない(例えば、4.5msよりも長い)場合には、該当する入力処理101a(2aに相当)をメインプロセッサ1で実行させる。
例えば、図21に示されるように、サブプロセッサ2が音声処理2cや数値計算2bを行っていて、サブプロセッサ2にオフロードすると応答時間内にアプリ1aへの入力通知が不可能な場合には、入力処理101aをメインプロセッサ1で実行させる。すなわち、図21に示されるように、メインプロセッサ1では、タッチIC62からデータを読み込み、さらに、後処理101aを行う。
なお、後処理(入力処理101a)は、前述した図20における後処理21e〜21aと同様であり、例えば、タッチICデータ読み取り処理101e,タッチ誤入力検出処理101d,タッチ位置補正処理101c,タッチデータ解釈処理101bおよびタッチ位置予測処理101aを含む。そして、メインプロセッサ1による入力処理101aの結果は、そのままアプリ1aの入力処理11aに通知される。
図22は、図20および図21に示すタッチ入力処理を行う場合のメインメモリにおけるオフロード可能処理制御表の一例を説明するための図である。図22に示されるように、オフロード可能処理制御表35には、例えば、プロセッサ種別毎(メインプロセッサ1,サブプロセッサ2)の計算処理能力(計算レート:命令数/ms)が格納されている。
図22と前述した図15の比較から明らかなように、図22では、機能IDのA〜Eに対してタッチ位置予測処理101a,タッチデータ解釈処理101b,タッチ位置補正処理101c,タッチ誤入力検出処理101dおよびタッチICデータ読み取り処理101eが設定されている。なお、オフロード可能処理制御表35は、図15を参照して説明したように、例えば、最終行から順にオフロード可能処理候補となるように並べられている。
図23は、図20および図21に示すタッチ入力処理を行う場合のメインメモリにおける入力デバイス属性表の一例を説明するための図である。図23に示されるように、入力デバイス属性表34には、例えば、タッチ入力処理(touch)に対する第1要求応答時間および第2要求応答時間が記録されている。
すなわち、入力デバイス属性表34には、例えば、タッチ入力処理の操作性能を確保するために必要な応答時間(ユーザがタッチ操作した結果がアプリ1aに通知されるまでの時間)が事前に設定されている。
具体的に、タッチ操作を反映した画像更新が描画更新間隔(例えば、16.6ms)の場合、例えば、第1要求応答時間は4.0msに設定され、第2要求応答時間は、所定のマージンα(例えば、0.5ms)を考慮して、4.5msに設定されている。なお、第1要求応答時間および第2要求応答時間は、例えば、デバイスの種別毎にそれぞれ固有の値に設定されるのは、前述した通りである。
本実施例は、上述したものに限定されず、例えば、メインのアプリケーションプログラムを省電力プロセッサで動作させ、能力の高いプロセッサへ一部の処理をオフロードし、性能と消費電力を調整するような制御を行うことも可能である。また、メインプロセッサ1とサブプロセッサ2の処理能力および電力効率に差がない、ホモジニアスな並列プロセッサシステムにおいても本実施例を適用して、処理を各プロセッサに割り当て、性能と消費電力を調整することも可能である。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
第1プロセッサと、
第2プロセッサと、
前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、
前記通信バスにおける遅延時間を観測して、バス利用率を求める通信バス遅延モニタリング部と、
観測された前記バス利用率に基づいて、入力処理のオフロード判定および指示を行うオフロード判定・指示部と、を有する、
ことを特徴とする演算処理システム。
(付記2)
前記第1プロセッサは、
前記通信バス遅延モニタリング部と、
観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もる第1応答時間見積部と、
観測された前記バス利用率に基づいて、前記入力処理のオフロード判定および指示を行う第1オフロード判定・指示部と、を有し、
前記第1オフロード判定・指示部は、
前記第1応答時間見積部により見積もられた、前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させるようにする、
ことを特徴とする付記1に記載の演算処理システム。
(付記3)
前記第2プロセッサは、
観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もる第2応答時間見積部と、
観測された前記バス利用率に基づいて、前記入力処理のオフロード判定および指示を行う第2オフロード判定・指示部と、を有し、
前記第2オフロード判定・指示部は、
前記第2応答時間見積部により見積もられた、前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第2要求応答時間を満たせない場合、前記入力処理を前記第2プロセッサで実行中なら停止し、前記入力処理を前記第1プロセッサで実行させるようにする、
ことを特徴とする付記2に記載の演算処理システム。
(付記4)
前記第2要求応答時間は、前記第1要求応答時間よりも所定のマージンだけ長く設定されている、
ことを特徴とする付記3に記載の演算処理システム。
(付記5)
前記入力処理は、複数の機能処理を含み、前記入力処理の実行は、前記複数の機能処理の一部または全部を実行する、
ことを特徴とする付記1乃至付記4のいずれか1項に記載の演算処理システム。
(付記6)
さらに、
前記通信バスに繋がれたメインメモリを有し、
前記メインメモリには、前記通信バスの動作を示す通信バス動作情報が格納されている、
ことを特徴とする付記1乃至付記5のいずれか1項に記載の演算処理システム。
(付記7)
前記第1プロセッサは、第1処理能力で第1消費電力を有し、
前記第2プロセッサは、前記第1処理能力よりも低い第2処理能力で前記第1消費電力よりも小さい第2消費電力を有する、
ことを特徴とする付記1乃至付記6のいずれか1項に記載の演算処理システム。
(付記8)
第1プロセッサと、第2プロセッサと、前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、を有する演算処理システムの制御方法であって、
前記通信バスにおける遅延時間を観測して、バス利用率を求め、
観測された前記バス利用率に基づいて、入力処理を前記第1プロセッサおよび第2プロセッサに割り当てる、
ことを特徴とする演算処理システムの制御方法。
(付記9)
前記第1プロセッサは、
観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もり、
見積もられた前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させる、
ことを特徴とする付記8に記載の演算処理システムの制御方法。
(付記10)
前記第2プロセッサは、
観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もり、
見積もられた前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第2要求応答時間を満たせない場合、前記入力処理を前記第2プロセッサで実行中なら停止し、前記入力処理を前記第1プロセッサで実行させる、
ことを特徴とする付記9に記載の演算処理システムの制御方法。
(付記11)
前記第2要求応答時間は、前記第1要求応答時間よりも所定のマージンだけ長く設定されている、
ことを特徴とする付記10に記載の演算処理システムの制御方法。
(付記12)
前記入力処理は、複数の機能処理を含み、前記入力処理の実行は、前記複数の機能処理の一部または全部を実行する、
ことを特徴とする付記8乃至付記11のいずれか1項に記載の演算処理システムの制御方法。
(付記13)
前記演算処理システムは、さらに、前記通信バスに繋がれたメインメモリを有し、
前記メインメモリには、前記通信バスの動作を示す通信バス動作情報が格納されている、
ことを特徴とする付記8乃至付記12のいずれか1項に記載の演算処理システムの制御方法。
(付記14)
前記第1プロセッサは、第1処理能力で第1消費電力を有し、
前記第2プロセッサは、前記第1処理能力よりも低い第2処理能力で前記第1消費電力よりも小さい第2消費電力を有する、
ことを特徴とする付記8乃至付記13のいずれか1項に記載の演算処理システムの制御方法。
(付記15)
第1プロセッサと、第2プロセッサと、前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、を有する演算処理システムの制御プログラムであって、
前記第1プロセッサおよび前記第2プロセッサに、
前記通信バスにおける遅延時間を観測して、バス利用率を求めさせ、
観測された前記バス利用率に基づいて、入力処理を前記第1プロセッサおよび第2プロセッサに割り当てさせる、
ことを特徴とする演算処理システムの制御プログラム。
1,111,112 メインプロセッサ(第1プロセッサ)
2,211〜213 サブプロセッサ(第2プロセッサ)
3 メインメモリ
4 通信バス
5 I/Oバス
6 入力機器またはセンサー(入力デバイス)
10,20 ローカルクロック部
11,21,101,201 入力割込み受信部
12,22,102,202 オフロード判定・指示部
13,23,103,203 入力処理起動・停止部
14,24,104,204 応答時間見積部
15,25,105,205 プロセッサスケジューリング部
16 通信バス遅延モニタリング部
17,27 時刻同期部
26 入力処理送信キューイング部
28 入力処理結果送信部
31 プロセッサ性能情報制御表
32 プロセッサ動作情報制御表
33 オフロード実行プロセッサ制御表
34 入力デバイス属性表
35 オフロード可能処理制御表
36 通信バス動作情報
61 I/O装置(入力デバイス:タッチスクリーンデバイス)
62 I/O制御装置(タッチIC)

Claims (9)

  1. 第1プロセッサと、
    第2プロセッサと、
    前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、
    前記通信バスにおける遅延時間を観測して、バス利用率を求める通信バス遅延モニタリング部と、
    観測された前記バス利用率に基づいて、入力処理のオフロード判定および指示を行うオフロード判定・指示部と、を有し、
    前記第1プロセッサは、
    前記通信バス遅延モニタリング部と、
    観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もる第1応答時間見積部と、
    観測された前記バス利用率に基づいて、前記入力処理のオフロード判定および指示を行う第1オフロード判定・指示部と、を有し、
    前記第1オフロード判定・指示部は、
    前記第1応答時間見積部により見積もられた、前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させるようにする、
    ことを特徴とする演算処理システム。
  2. 第1プロセッサと、
    第2プロセッサと、
    前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、
    前記通信バスにおける遅延時間を観測して、バス利用率を求める通信バス遅延モニタリング部と、
    観測された前記バス利用率に基づいて、入力処理のオフロード判定および指示を行うオフロード判定・指示部と、を有し、
    前記第2プロセッサは、
    観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もる第2応答時間見積部と、
    観測された前記バス利用率に基づいて、前記入力処理のオフロード判定および指示を行う第2オフロード判定・指示部と、を有し、
    前記第2オフロード判定・指示部は、
    前記第2応答時間見積部により見積もられた、前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第2要求応答時間を満たせない場合、前記入力処理を前記第2プロセッサで実行中なら停止し、前記入力処理を前記第1プロセッサで実行させるようにする、
    ことを特徴とする演算処理システム。
  3. さらに、
    前記通信バスに繋がれたメインメモリを有し、
    前記メインメモリには、前記通信バスの動作を示す通信バス動作情報が格納されている、
    ことを特徴とする請求項1または請求項2に記載の演算処理システム。
  4. 前記第1プロセッサは、第1処理能力で第1消費電力を有し、
    前記第2プロセッサは、前記第1処理能力よりも低い第2処理能力で前記第1消費電力よりも小さい第2消費電力を有する、
    ことを特徴とする請求項1乃至請求項のいずれか1項に記載の演算処理システム。
  5. 第1プロセッサと、第2プロセッサと、前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、を有する演算処理システムの制御方法であって、
    前記通信バスにおける遅延時間を観測して、バス利用率を求め、
    観測された前記バス利用率に基づいて、入力処理を前記第1プロセッサおよび第2プロセッサに割り当て、
    前記第1プロセッサは、
    観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もり、
    見積もられた前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させる、
    ことを特徴とする演算処理システムの制御方法。
  6. 前記第2プロセッサは、
    観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もり、
    見積もられた前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第2要求応答時間を満たせない場合、前記入力処理を前記第2プロセッサで実行中なら停止し、前記入力処理を前記第1プロセッサで実行させる、
    ことを特徴とする請求項に記載の演算処理システムの制御方法。
  7. 前記第2要求応答時間は、前記第1要求応答時間よりも所定のマージンだけ長く設定されている、
    ことを特徴とする請求項に記載の演算処理システムの制御方法。
  8. 前記入力処理は、複数の機能処理を含み、前記入力処理の実行は、前記複数の機能処理の一部または全部を実行する、
    ことを特徴とする請求項乃至請求項のいずれか1項に記載の演算処理システムの制御方法。
  9. 第1プロセッサと、第2プロセッサと、前記第1プロセッサと前記第2プロセッサを繋ぐ通信バスと、を有する演算処理システムの制御プログラムであって、
    前記第1プロセッサおよび前記第2プロセッサに、
    前記通信バスにおける遅延時間を観測して、バス利用率を求めさせ、
    観測された前記バス利用率に基づいて、入力処理を前記第1プロセッサおよび第2プロセッサに割り当てさせ、
    前記第1プロセッサに、観測された前記バス利用率に基づいて、前記入力処理を前記第2プロセッサで実行した場合の応答時間を見積もらせ、
    見積もられた前記入力処理を前記第2プロセッサで実行した場合の応答時間が、第1要求応答時間を満たせる場合、前記入力処理を前記第1プロセッサで実行中なら停止し、前記入力処理を前記第2プロセッサで実行させる、
    ことを特徴とする演算処理システムの制御プログラム。
JP2015013671A 2015-01-27 2015-01-27 演算処理システムおよび演算処理システムの制御方法 Active JP6428309B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015013671A JP6428309B2 (ja) 2015-01-27 2015-01-27 演算処理システムおよび演算処理システムの制御方法
US15/002,626 US9898434B2 (en) 2015-01-27 2016-01-21 System, process control method and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015013671A JP6428309B2 (ja) 2015-01-27 2015-01-27 演算処理システムおよび演算処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2016139271A JP2016139271A (ja) 2016-08-04
JP6428309B2 true JP6428309B2 (ja) 2018-11-28

Family

ID=56434118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015013671A Active JP6428309B2 (ja) 2015-01-27 2015-01-27 演算処理システムおよび演算処理システムの制御方法

Country Status (2)

Country Link
US (1) US9898434B2 (ja)
JP (1) JP6428309B2 (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280378A (ja) * 2003-03-14 2004-10-07 Handotai Rikougaku Kenkyu Center:Kk 半導体装置
EP1683021A2 (en) * 2003-10-27 2006-07-26 Koninklijke Philips Electronics N.V. Integrated circuit comprising a measurement unit for measuring utilization of a communication bus
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US7533176B2 (en) * 2004-07-14 2009-05-12 International Business Machines Corporation Method for supporting connection establishment in an offload of network protocol processing
JP2006260445A (ja) * 2005-03-18 2006-09-28 Fujitsu Ltd マルチプロセッサシステム
JP2007207136A (ja) * 2006-02-06 2007-08-16 Nec Corp データ処理装置、データ処理方法、及びデータ処理プログラム
JP5089896B2 (ja) * 2006-03-17 2012-12-05 株式会社日立製作所 マイクロプロセッサの負荷分散機能を備えたストレージシステム
JP4961833B2 (ja) * 2006-05-19 2012-06-27 日本電気株式会社 クラスタシステム、負荷分散方法、最適化クライアントプログラム、及び調停サーバプログラム
JP2010257056A (ja) * 2009-04-22 2010-11-11 Fujitsu Ltd 並列処理装置、並列処理方法及び並列処理プログラム
US8812898B1 (en) * 2012-09-27 2014-08-19 Cadence Design Systems, Inc. System and method for transfer of data between memory with dynamic error recovery
US9996400B2 (en) * 2013-05-23 2018-06-12 Renesas Electronics Corporation Multi-CPU system and multi-CPU system scaling method
US9652247B2 (en) * 2014-01-24 2017-05-16 Nec Corporation Capturing snapshots of offload applications on many-core coprocessors

Also Published As

Publication number Publication date
US9898434B2 (en) 2018-02-20
JP2016139271A (ja) 2016-08-04
US20160217091A1 (en) 2016-07-28

Similar Documents

Publication Publication Date Title
KR100733943B1 (ko) 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로
CN111695672B (zh) 用于提高ai引擎mac利用率的方法
EP2473914B1 (en) Hardware-based scheduling of graphics processor unit (gpu) work
US20070226449A1 (en) Virtual computer system, and physical resource reconfiguration method and program thereof
JP5445669B2 (ja) マルチコアシステムおよび起動方法
WO2021013055A1 (zh) 数据处理的方法、装置及电子设备
US8117474B2 (en) CPU clock control during cache memory stall
US11822958B2 (en) Method and a device for data transmission between an internal memory of a system-on-chip and an external memory
US20110161978A1 (en) Job allocation method and apparatus for a multi-core system
KR101375836B1 (ko) 멀티코어 프로세서 상에서 연관된 작업들을 수행하는 방법및 장치
US9043806B2 (en) Information processing device and task switching method
TWI633489B (zh) 於多核心處理器中並行功能之高效率硬體分派及相關之處理器系統、方法及電腦可讀媒體
US20110161965A1 (en) Job allocation method and apparatus for a multi-core processor
JP6640025B2 (ja) 分散処理制御システム及び分散処理制御方法
JP2008152470A (ja) データ処理システム及び半導体集積回路
JP2014106840A (ja) データ処理装置、データ処理方法、及び、プログラム
US8909892B2 (en) Method, apparatus, and computer program product for fast context switching of application specific processors
CN108196995A (zh) 一种确定处理任务平均时长的方法及设备
JP6428309B2 (ja) 演算処理システムおよび演算処理システムの制御方法
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
WO2012098684A1 (ja) スケジューリング方法およびスケジューリングシステム
JP6515771B2 (ja) 並列処理装置及び並列処理方法
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
CN111381945B (zh) 任务迁移方法及电子设备
CN115718662A (zh) 协处理器和协处理器的操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180911

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181015

R150 Certificate of patent or registration of utility model

Ref document number: 6428309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150