JP5275457B2 - タスクロードを測定するための方法およびシステム - Google Patents

タスクロードを測定するための方法およびシステム Download PDF

Info

Publication number
JP5275457B2
JP5275457B2 JP2011513682A JP2011513682A JP5275457B2 JP 5275457 B2 JP5275457 B2 JP 5275457B2 JP 2011513682 A JP2011513682 A JP 2011513682A JP 2011513682 A JP2011513682 A JP 2011513682A JP 5275457 B2 JP5275457 B2 JP 5275457B2
Authority
JP
Japan
Prior art keywords
value
processor
task
audio
audio 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.)
Expired - Fee Related
Application number
JP2011513682A
Other languages
English (en)
Other versions
JP2011524574A (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011524574A publication Critical patent/JP2011524574A/ja
Application granted granted Critical
Publication of JP5275457B2 publication Critical patent/JP5275457B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

優先権の主張
本出願は、2008年6月11日に出願された米国仮出願第60/060,532号「METHOD AND SYSTEM FOR MEASURING TASK LOAD」に関連し、該出願からの優先権を主張し、該出願全体は参照としてここに組込まれる。
記述された実施形態は、一般にリアルタイムコンピューティングに関する。
特に、記述された実施形態は、システム上のアプリケーションロードを制限するために使用できる1つまたは複数のタスクロードを測定することに関する。
図1は、一般にリアルタイムコンピューティングシステムの従来技術について記述する。リアルタイムコンピューティングシステムは、アプリケーションプログラムの実行およびシステムハードウェアやユーティリィティへのインタフェースを制御する。
リアルタイムコンピューティングシステム103は、プロセッサ、またはデジタル・シグナル・プロセッサのような電子ハードウェア101上に設けられ得る。例として、ハードウェアは、携帯電話上のハードウェアまたはソフトウェアまたはファームウェアが埋め込まれた任意のデバイス上のハードウェアであり得る。ユーティリィティ105は、一般に入出力デバイスを制御するコンピューティングシステムと、ファイル管理とを支援するプログラムである。
そのような適用において、システムデザイン考察のために、またはタスクロード情報を利用する他のアプリケーション107への入力パラメータとして、1つまたは複数の個々のタスクからリアルタイムコンピューティングシステム上のロードを知ることは有用である。タスクのローディング(loading)を決定する従来技術アプローチは、ロジックアナライザを使用してタスク実行データを取得し、特定の個々のタスクで実行される命令をカウントすることである。このアプローチはリアルタイムではなく、そのため、タスクロードが、該情報を有効に使用する別のアプリケーションへの入力として使用されることができない。例えば、MIDI(Musical Instrument Digital Interface)アプリケーションは、将来のフレームのために処理されるMIDIボイスを低減するべきかどうかを決定するためにリアルタイムタスクロードを使用する。
詳細な説明で開示された実施形態は、タスクロードを計算するためにタスク実行サイクル数を決定することを含む。タスク実行サイクル数を決定することは、タスクの実行前にフリーランニングカウンタから第1のカウンタ値を読み出すこと、該タスクの実行停止後に該フリーランニングカウンタから第2のカウンタ値を読み出すこと、リアルタイムに該第1のカウンタ値と該第2のカウンタ値との間の差をとること、を含む。該タスク実行サイクルは基準間隔の間累積され得る。当該基準間隔は設定可能な値であり得る。当該タスクロードは、基準間隔の間該第1のカウンタ値と該第2のカウンタ値との間の差を累積するアキュムレータを使用すること、および合計値を該基準間隔で除すること、により決定され得る。
別の実施形態はオーディオタスクをスケジューリングすることを含む。オーディオタスクをスケジューリングすることは、現在のフレーム内のオーディオタスクを処理する基準間隔を定めること、該オーディオタスクを処理する実際のサイクル数と該基準間隔内のサイクル数との間の差を計算すること、および将来のオーディオタスクについてパラメータをスケジューリングすること、を含む。該将来のオーディオタスクを処理するために利用可能なサイクル数は、該オーディオタスクのタスクロードに基づき、およびオーディオタスクを処理するための該実際のサイクル数に基づき、計算され得る。該将来のオーディオタスクの処理に利用可能なサイクル数は、該基準期間内のサイクル数(MaxCycles)をとること、該現在のオーディオタスクを処理するのに使用されるサイクル数(ActualCycles)を減算すること、現在のフレーム中の該基準間隔内のオーディオタスクを処理するのに使用されるサイクル数(累積されたタスク実行サイクル)を加算すること、により計算され得る。典型的な実施形態は、スケジューリングパラメータがオーディオフレーム中の合成音声(synthesis voice)パラメータの場合である。該基準間隔はハードウェアまたはソフトウェアによって設定可能である。計算される差は、時間とサイクルとの間の変換に基づく。スケジューリングの典型的な実施形態は、該将来のオーディオタスクについて、該現在のオーディオタスクと比較して少ないオーディオフレームパラメータを処理すること、または、該将来のオーディオタスクについて、該現在のオーディオタスクと比較して等しいかより大きな数のオーディオフレームパラメータを処理すること、を含む。該将来のオーディオタスクを処理するのに利用可能なサイクル数は、オーディオフレームパラメータの最大数が処理されるときはゼロであり、またはプロセッサの電源オンの間ゼロとなり得る。
別の実施形態は、オーディオタスクを処理する実際の時間と、基準間隔内のサイクル数との間の差を計算し、該計算された差に基づいて将来のオーディオタスクをスケジューリングするプロセッサを含む装置である。メモリはスケジューリングパラメータを記憶し、オーディオタスクの実際の時間を計算するために、フリーランニングカウンタはプロセッサに対して少なくとも2つのカウント値を与える。
別の実施形態は、現在のフレーム中のオーディオタスクを処理する基準間隔を取り出す手段、該オーディオタスクを処理するための実際のサイクル数と該基準間隔のサイクル数との間の差を計算する手段、および将来のタスクについてのパラメータをスケジューリングする手段を含む装置である。
別の実施形態は、1つまたは複数のプロセッサによって実行可能な1セットの命令を含むコンピュータ読出可能媒体である。コンピュータ読出可能媒体は、オーディオタスクを処理する基準間隔を取り出すためのコード、該オーディオタスクを処理する実際のサイクル数と、該基準間隔内のサイクル数との間の差を計算するためのコードと、将来のオーディオタスクについてパラメータをスケジューリングするためのコードと、を含む。
リアルタイムコンピューティングシステムを表すブロック図である。 リアルタイムにタスクロードを測定するリアルタイムコンピューティングシステムの典型的な実施形態のブロック図である。 ホストプロセッサ上で実行され得る方法を説明するフローチャートである。 アプリケーションタスクの処理中にリアルタイムコンピューティングシステム内で起こる様々なタイミングシナリオを表す図である。 マルチプロセッサシステムの典型的な実施形態のブロック図である。 オーディオデバイスの典型的な実例のブロック図である。 次のフレーム中のオーディオタスクの処理に利用可能な時間またはサイクルを推定するための計算でタスクロードを利用するオーディオタスクの典型的な実施形態におけるタイミングを示すグラフである。 タスクロードを決定する方法を説明するフローチャートである。 オーディオタスクをスケジューリングする方法を説明するフローチャートである。
様々な実施形態を以下の説明および関連する図面で開示される。別の実施形態が発明の範囲から逸脱することなく考案され得る。さらに、発明のいくつかの周知な要素は詳細に記述されず、発明の関係のある詳細が不明瞭にならないように省略される。
「典型的」という語は、ここでは「例(example, instance, illustration)として役に立つ」という意味で使用される。「典型的」とここに記述された任意の実施形態は、他の実施形態よりも好ましいまたは有利であると必ずしも解釈されない。同様に、用語「発明の実施形態」は、発明の全ての実施形態が、議論された特徴や利点または動作モードを含むことを必要としない。
用語「リアルタイムコンピューティングシステム」は、これに限定するものではないが、ここでは、スケジューリングシステムを使用してリアルタイムに少なくとも1つのタスクを処理することを意味する。
図2は、リアルタイムコンピューティングシステム230を実行するホストプロセッサ210の典型的な実施形態である。コンピューティングシステム230は、特定の間隔でフリーランニングカウンタ225からの出力値を読み出し記憶する。用語「フリーランニングカウンタ」は、ここでは、低パワーモードの間、および/またはホストプロセッサがスリープ状態の間、実行し続けるカウンタまたは他の基準ソース(reference source)を意味するために使用される。ソフトウェアカウンタまたはハードウェアカウンタのような基準ソースが代表的な実施形態の精神および範囲から逸脱せずに使用され得ることは、当業者には言うまでもない。フリーランニングカウンタ225は、物理的にプロセッサ内部かまたはプロセッサ外部に位置する。
リアルタイムコンピューティングシステム230を実行するホストプロセッサ210は、アプリケーションタスク205を処理する。タスクはタスクスケジューラ215によって処理され、タスクスケジューラ215は、プロセッサ210がいつ利用可能であるのか、およびタスクはいつ処理の準備ができるのかを決定する。割り込みハンドラー220はプロセッサ210によって現在実行されているタスク205を割り込むために使用され得る。割り込まれたタスク205は、タスクスケジューラによって管理される。
図3は、ホストプロセッサ210上で実行され得る典型的な方法を説明するフローチャートである。タスクのスケジューリング(340)は多数のスキームによって実装され得る。そのようなスキームは、これに限定するものではないが、プリエンプティブ(preemptive)スキームおよび時分割スキームを含む。プリエンプティブスキームは、最も高い割り当て優先度をもつタスクが最初に実行されることを可能にする。プリエンティティブスキームは、より高い優先度のタスクを実行するために、処理されている別の優先度の低いタスクを割り込む。時分割設計は、すべてのタスクが完了するまで、処理のためのタイムスライスがそれぞれのタスクに割り当てられるクロック割り込みスケジュールでタスクを実行する。
実行可能なタスクが存在する場合(ブロック330を参照)、タスクはスケジューリングされて(340)、例えばホストプロセッサ210に処理のために送られる(345)。他のタスクが実行のための準備状態になるとき、ホストプロセッサが現在のタスクを実行するビジー状態にある場合、タスクスケジューラ(340)は現在のタスクを切り替えるべきかどうかを決定する(350)。割り込みはスケジューリングスキームまたは他の考察に基づいて決定され得る。
現在のタスクが割り込まれない場合、ホストプロセッサはタスクが完了するまで(360)現在のタスクを実行し続ける(345)。完了したタスクがオーディオタスクでない場合(358)、ブロック330で、ホストプロセッサは次のタスクを処理し始める。完了したタスクがオーディオタスクである場合(358)、将来のオーディオタスクのスケジューリングが実行され得る(359)。ブロック359が完了すると、または代わりにブロック359の実行と同時に、ブロック330で、ホストプロセッサは次のタスクを処理し始める。オーディオタスクのスケジューリングについては後述する。
割り込みが起こる場合(350)、その割り込みは処理される(355)。当業者は、例として、処理されているタスクの状態を保存するか、割り込まれたタスクを停止させる前に他のクリーンアップ(clean-up)を実行するシステムを設計する。したがって、割り込みを受け取ると、割り込まれたタスクは、処理を直ちに停止させてもよいし、停止させなくてもよい。タスクスケジューラ340は、実行完了していないタスクを管理し続ける。一旦現在のタスクが停止され、ホストプロセッサが利用可能となったならば、ホストプロセッサは次のスケジューリングされたタスクを実行し始める。
ブロック330が実行の準備ができているタスクがないことを検知し、ブロック345が処理されるタスクがないことを検知するとき、コンピューティングシステムはブロック335にてスリープ状態に入る。スリープ状態の間、ホストプロセッサはアイドルであり、その電力消費を低減または無効にすることができる。フリーランニングカウンタ225はスリープ状態の間、カウントし続ける。割り込みを受け取ると、プロセッサのスリープ状態は割り込まれ(365)、それにより、スリープ状態から起きて、その電力消費を増加させる。タスクスケジューラ(340)は実行の準備ができている任意のタスクをスケジューリングし、タスクが処理される(345)。
図4は、時系列400、405および410は、アプリケーションタスクの処理中にリアルタイムコンピューティングシステム内で起こり得る様々なタイミングシナリオの実例である。これらの実例では、図4において、時間はTXからTYまで増加する。
用語「基準間隔」は、時間期間として定義されるか、または対応するサイクル数として記述され、フリーランニングカウンタ225によって測定される。基準間隔は変数XおよびYによって表され、Xは基準間隔の始点を示し、Yは一期間後の基準間隔420の終点を示す。
基準間隔=TY − TX (式1)
図4において、エレメント400は、コンピューティングシステム上で実行するタスクロードを測定する典型的な方法を説明する。スケジューリングされたタスクの実行の前に、コンピューティングシステムはフリーランニングカウンタ225から値を読み出し、その値はTstartと定義される。その後、スケジューリングされたタスクは停止されるまで実行される。タスクは、その実行が完了するか、または別のタスクによって切り替えられることで停止される。一旦タスクが停止されると、リアルタイムコンピューティングシステムはフリーランニングカウンタから値を読み出し、その値はTendと定義される。Tstart およびTendの例はエレメント400に示される。用語「タスク実行サイクル」は、TendとTstartとの間の差をとることにより定義され、そのことは式2に示される。当業者はそのような差をとることを、ソフトウェアにより、またはハードウェアにより実行できる。
タスク実行サイクル=Tend − Tstart (式2)
タスク実行サイクルは、式3に示されるように、間隔X、Y(420)の間に予め定義された基準間隔の間累積され得る。タスク実行サイクルを累積する典型的な実施形態は、基準間隔の間でオーバーフローを避けるために十分なビットを備えたハードウェアまたはソフトウェアアキュムレータエレメントを用いることである。このハードウェアまたはソフトウェアアキュムレータはここでは「アキュムレータ」と呼ぶ。さらなる典型的な実施形態として、アキュムレータはコンピューティングシステムの内部で実装されてもよいし、またはコンピューティングシステムの外部にあるアキュムレータとすることもできる。
Figure 0005275457
式4に示されるように、それぞれのタスクのロードは、累積されたタスク実行サイクルを基準間隔で除することにより決定できる。この計算が、そのロードを計算するために任意のタスクに適用されることは、当業者には言うまでもない。
Figure 0005275457
図8はタスクロードを決定する方法を説明するフローチャートである。基準間隔は設定および記憶される(810)。前述したように、構成の典型的な実例はソフトウェアによって基準間隔を設定し、メモリまたはハードウェア構成によって値を記憶する。タスク実行前に、第1のカウント値はフリーランニングカウンタから読み出される(820)。タスクの実行停止後、第2のカウント値はフリーランニングカウンタから読み出される(830)。プロセッサは、リアルタイムに第1のカウント値と第2のカウント値との間の差をとる(840)。リアルタイムに第1のカウント値と第2のカウント値との間の差をとることの典型的な実例は、式2で示され、当該差はハードウェアまたはソフトウェア方法によって出すことができる。アキュムレータは、第1のカウント値と第2のカウント値との間の差を、設定された基準間隔の間、累積する(850)。カウント値間の差を累積する典型的な実例は、式3に示され、ここではアキュムレータはハードウェアまたはソフトウェアの中で実装され得る。タスクロードは累積された差を基準間隔で除することにより計算される(860)。タスクロードを計算する典型的な実例は、式4に示され、ここでは計算がハードウェアまたはソフトウェアで起こり得る。
決定されたタスクロードが、セットトップボックス、音楽プレーヤー、ビデオプレーヤー、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータから構成されるグループから選択された、タスクロードを決定する方法が統合されている電子デバイスに適用されることについては、当業者には言うまでもない。
当業者は、システムデザイン考察のような、またはタスクロード情報を利用できる他のアプリケーションへの入力パラメータのような様々な目的にタスクロードを使用できる。例えば、優先度の高いタスクが実行されているとき、別のアプリケーションは、システムのローディングの計算を制限するためにタスクロード情報を使用できる。タスクロードを利用するための典型的な実施形態はこの文書中の後の方で記述される。
基準間隔は設定および記憶され得る。基準間隔は、基準間隔の間正確にタスク実行サイクルを累積することが十分に解決するように設定され得る。実例として、基準間隔は下記よりも小さい値に設定され得る。:アキュムレータの最大カウント値を乗じたフリーランニングカウンタの期間。設定可能な基準間隔はソフトウェアまたはハードウェアによって設定され得る。例えば、基準間隔はソフトウェアによって設定され、基準間隔はメモリに記憶されてプロセッサによって読み出される。または、基準間隔はハードウェアの中で設定されてもよい。ハードウェア構成の典型的な実例は、ラッチまたはフリップフロップを基準間隔の値で設定することである。
さらに、225で示されるフリーランニングカウンタは、当業者によって、タスク実行サイクルを正確に取得できるほど大きな周波数に設定され得る。
図5はマルチプロセッサシステムの典型的な実施形態である。マルチプロセッサシステムは、単一のまたは共有のフリーランニングカウンタに接続され得る。記述しているように、個々のタスクロードは式1−4を使うことで計算され得る。例として、図5のプロセッサのうちのいずれかで実行される任意のタスクがタスクロードを計算する。
図6はオーディオデバイス600の典型的な例である。オーディオデバイスには、任意のタイプのオーディオまたはビデオファイル、例えば、ボイスまたはMIDI(Musical Instrument Digital Interface)ファイルを処理できるデバイスである。オーディオデバイス600は、MIDIファイルや他のタイプのデータを記憶するオーディオ記憶ユニット605を含むことができる。オーディオ記憶ユニット605は、任意のタイプの揮発性メモリか不揮発性メモリかプロセッサ610につながれた記憶装置を含むことができる。
オーディオデバイス600はさらに、オーディオファイルを処理するために共に動作する第1のプロセッサ610および第2のプロセッサ630を含み、エンドユーザのためにオーディオ情報を生成する。図6は、第1のプロセッサ610と第2のプロセッサ630との間でオーディオタスクを分けるアーキテクチャを図示している。1つのプロセッサがエレメント610および630の機能を実行するように、エレメント610および630を単一のユニットに組み合わせるような他の代替の実装も、当業者には理解されよう。例として、第1のプロセッサ610はARMプロセッサ、第2のプロセッサ630はデジタルシグナルプロセッサ(DSP)でもよい。別の例として、単一のプロセッサは610と630とを組み合わせた機能を実行し、該単一のプロセッサは処理とデジタル信号処理の両方を実行してもよい。
典型的な実施形態では、第1のプロセッサ610および第2のプロセッサ630が基準間隔の間オーディオタスクを処理する。ここに使用されるように、「オーディオフレーム」という語句は時間のブロック、またはクロックサイクルまたはカウンタサイクルの対応する数を指す。オーディオフレームはオーディオタスクが処理される基準間隔となり得る。
基準間隔は10ミリセカンド(ms)の間隔と等しく選択されることができる。基準間隔は48KHzのサンプリングレートで動作するデバイスについて480サンプルをもつことができる。オーディオ波形は異なるレートでサンプリングされ、そのようなサンプリングレートの1つが48Khzであり得ることは、当業者には認識できるだろう。1つのプロセッサが1つのオーディオタスクを処理するための好ましい最大サイクル数は、ここでMaxCyclesと呼ぶ。MaxCyclesは本質的にサイクルに変換された基準間隔時間である。この値は、以下の式5で計算される。
MaxCycles=(クロック周波数)x (基準間隔) (式5)
クロック周波数=19.2MHzの場合の計算例:
MaxCycles =(19.2MHz)x(10ミリセカンド)= 192,000サイクル
プロセッサ610はオーディオ記憶605からデータを読み出し、オーディオ記憶605へデータを書き込む。さらに、プロセッサ610はメモリユニット615にデータの読み書きを行う。例として、プロセッサ610はオーディオ記憶605からMIDIファイルを読み出し、メモリユニット615へMIDIファイルを書き込む。それぞれのオーディオフレームについて、プロセッサ610は複数のMIDIファイルのうちの1つまたは複数を取り出し、MIDIファイルを解析して、1つまたは複数のMIDI命令を抽出する。MIDI命令は、処理を要求するMIDIボイスを含む様々なパラメータを含む。MIDI命令パラメータは、アフタータッチ効果、ブレス制御効果、プログラム変更、ピッチベンド効果、左右にパンすること、サステインペダル(sustain pedal)効果、主音量制御のような制御メッセージ、タイミングパラメータ、照明効果キュー、および/または他のサウンド効果のようなシステムメッセージに関連しており、開始または終了するための特別なMIDIボイスを命令できる。「ボイス」または「MIDIボイス」は任意の特定の音声であり得る。
MIDI命令のタイミングに基づいて、第1のプロセッサ610は第2のプロセッサ630によって処理するMIDI命令をスケジューリングする。第1のプロセッサ610は、第2のプロセッサ630がMIDI命令を処理できるように、第2のプロセッサ630によるアクセス用のメモリユニット615へMIDI命令のスケジューリングを提供できる。または、第1のプロセッサ610は、時刻同期方法で第2のプロセッサ630に対して直接MIDI命令をディスパッチすることでスケジューリングを実行できる。典型的なモデルでは、第1のプロセッサ610が、合成されたパルス符号変調(PCM)オーディオサンプルを処理し、メモリユニット650に記憶する。デジタル・アナログ変換器(DAC)625は650から当該PCMサンプルを取得し、当該サンプルをスピーカー640へ再生する。
第2のプロセッサ630は第1のプロセッサ610によって作られたスケジューリングに従ってMIDI命令を処理する。しかしながら、第2のプロセッサ630は、さらに、MIDI命令を実行する前に処理が必要な優先度の高い他のタスクをもつことがあり、そのため、オーディオタスクの処理はMaxCyclesまたは基準間隔より長くかかることがある。これらのタイプの割込みは、将来のオーディオタスクをMaxCyclesまたは基準間隔よりも超過させ得る。第1のプロセッサ610は、将来のオーディオタスクの処理が、MaxCyclesまたは基準間隔より長くかからないように、次のまたは将来のオーディオタスクをスケジューリングする方法を利用し得る。実例として、これは処理されるボイスの数を減らすことにより達成され得る。低減されるボイスの数は、前のオーディオタスクを処理するときに超過したサイクル数に比例する。これは、式12のコンテキストでさらに記述される。
図7は、オーディオタスク710の典型的な処理を示しており、タスクN700、またはタスクN+1 705のような優先度のより高いタスクが現在実行中のオーディオタスクを割り込むときのオーディオ処理の割込みを示している。オーディオタスク710は後述の計算(式4)でタスクロードを利用でき、次のフレーム中のオーディオタスクの処理をスケジューリングするのを支援する。
高音質のためにより多数のMIDIボイスを合成するために、単一のオーディオタスクの処理が一基準間隔420内で完了することが望ましい。オーディオ処理がより高い優先度の他のタスクの処理のために割り込みされる期間中に、オーディオタスクの処理はMaxCyclesまたは基準間隔内に完了できないが、後の基準間隔で処理され続けることができる。この追加時間を相殺するために、次のオーディオタスクが基準間隔内で処理を完了する可能性がより高くなるように、処理される次のオーディオタスクからボイス数が低減され得る。この典型的な実施形態の精神および範囲から逸脱せずに、任意の将来のオーディオタスクからボイス数を低減するために、この実施形態が使用され得ることは、当業者には認識できるだろう。
将来のオーディオタスクについてのパラメータをスケジューリングすることが確立され得る。つまり、現在のオーディオタスクの処理が基準間隔またはMaxCyclesを超過した場合、すなわち、次の基準間隔への「キャリーオーバー(carry-over)」の処理があった場合、次のオーディオタスクまたは将来のオーディオタスクで処理されるボイス数は低減され得る。ここに、用語「キャリーオーバー」は、MaxCyclesを超過したオーディオタスクのサイクル数を示すために使用される。しかしながら、ここに、オーディオタスクがMaxCyclesに達する前に処理を完了するとき、「キャリーオーバー」はまた利用可能なサイクル数を示すことができる。またあるときには、「キャリーオーバー」値は、この方法を適用するデバイスの電源オンでゼロとなり得る。電源オンは、典型的には、オーディオアプリケーションが定常状態に達するのにある程度の時間がかかることを意味する。オーディオタスクがMaxCycles期間と同じサイクル数内に処理されたとき、「キャリーオーバー」値はまたゼロとなり得る。
キャリーオーバーサイクルを決定するために、MaxCyclesは、式6に示されるように、処理にかかるオーディオタスクの実際のサイクル数から減算され得る。ここで、MaxCyclesの値は式5を使用して計算され得る。ActualCyclesは、割り込み時間を含む、オーディオタスクの処理を完了するために要するサイクルの総数である。単位時間が、単位時間にカウンタまたはクロック周波数を乗算することによりサイクルに変換されることができ、またサイクル数にカウンタまたはクロック周波数の逆数を乗算することにより単位サイクルが単位時間に変換され得ることは、当業者には認識できるだろう。従って、割り込み時間とは、プロセッサが他のタスクを処理している間にオーディオタスクの処理の時間が割り込まれた時間か、同等のサイクル数のことである。またCarryOverCyclesがこの典型的な実施形態の精神から逸脱せずに他の方法によって決定され得ることは、当業者には認識できるだろう。例えば、CarryOverCyclesも、またMaxCyclesからActualCyclesを減算する式6の修正により計算され得る。明確のために、式6はこの文書の中で使用され得る。
CarryOverCycles = ActualCycles − MaxCycles (式6)
例として、ActualCyclesは、任意のオーディオタスクについての処理の始点および終点を測定するためにフリーランニングカウンタ225を利用し、それらの間の差をとることにより決定され得る。この概念は式7に示される。この典型的な実施形態の精神から逸脱せずに、ActualCyclesを測定する他の方法は、当業者には理解できるだろう。
ActualCycles = Tprocesssing_end − Tprocessing_start (式7)
MaxCycles=192,000サイクル、オーディオタスクのActualCyclesが249,600サイクルまたは13ミリセカンドの場合の計算例:
CarryOverCycles = 249,600サイクル - 192,000サイクル = 57,600サイクル
式6のコンテキストで、CarryOverCyclesの値がゼロかまたはゼロ未満のとき、オーディオタスクの処理はMaxCyclesを超過しない。そのため、次のオーディオタスクまたは将来のオーディオタスクは処理のためのボイスを低減せずに処理されるか、または処理のためのボイスを低減し得る。CarryOverCyclesの値がゼロを越えるとき、オーディオタスクを処理するために使用されるサイクル数は、基準間隔420または対応するMaxCyclesを超過し、オーディオタスクの処理がその基準間隔またはMaxCycles内で完了する可能性が高くなるように、次のまたは将来のオーディオ処理からボイスが低減され得る。
キャリーオーバーがゼロより大きい場合、すなわち、現在のタスクの実行が基準間隔420またはMaxCyclesで定義された期間より長くかかった場合、次のまたは将来のオーディオタスクを処理するときに低減されるボイス数は、現在のタスクからのパラメータを使用して計算またはスケジューリングされるか計算され得る。次のまたは将来のオーディオタスクの処理に利用可能なサイクル数を決定するために、現在のオーディオタスクからの特定のパラメータは、次のまたは将来のオーディオタスクについてのMaxCycles値に対し減算または加算され得る。これらのパラメータは、プロセッサが、オーディオタスク以外のより高い優先度のタスクの処理に費やす時間またはサイクル数と、CarryOverCyclesとを含む。ここでは、プロセッサがオーディオタスク以外のタスクの処理に費やすサイクル数は、「OtherTasks」と呼ばれる。式8は、次のオーディオタスクまたは将来のオーディオタスクの処理に利用可能なサイクル数を示す。
NumCyclesAvailable = MaxCycles - OtherTasks - CarryOverCycles (式8)
OtherTasksを計算する典型的な例は、ActualCyclesから、式7で与えられるCarryOverCyclesおよび式3で与えられる累積されたタスク実行サイクルを減算することである。この典型的な実施形態の精神から逸脱せずに、OtherTasksを決定する他の方法を、当業者には認識できるだろう。
OtherTasks = ActualCycles − CarryOverCycles − 累積されたタスク実行サイクル
(式9)
式8および式9が式10へ単純化されることは、当業者には理解できるだろう。
NumCyclesAvailable = MaxCycles - ActualCycles + 累積されたタスク実行サイクル
(式10)
次のまたは将来のオーディオタスクのためにサポートされ得るボイス数は、ここでは「MaxVoiceCount」と呼ばれ、プロセッサが前のオーディオタスクを合成または復号に費やしたサイクル数で除したvoice countを乗じた次のまたは将来のオーディオタスクに利用可能なサイクル数と等しい。この概念は式11に示される。パラメータ「voice count」はオーディオタスクに含められる。パラメータ「tsynth」は、任意のオーディオタスクについて音声(voice)合成が開始したときから、音声合成が完了するときまでに任意のカウンタによって測定され得る。
MaxVoiceCount = NumCyclesAvailable x (voice count / tsynth) (式11)
前述していたように、処理ロードから低減されるボイスの数が計算され得る。低減されるボイスの数は、前のオーディオタスクを処理するときに超過したサイクル数に比例する。例えば、低減されるボイスの数を計算するために、CarryOverCyclesには、tsynthで除したvoice countが乗じられる。前述の計算結果は、ボイスの総数が低減されるように切り上げられることは、当業者には認識されるだろう。
NumVoicesReduced = CarryOverCycles x (voice count / tsynth) (式12)
図9はオーディオタスクをスケジューリングする方法を説明するフローチャートである。基準間隔は取り出される(910)。前述したように、基準間隔はソフトウェアまたはハードウェアによって記憶および設定され得る。さらに、基準間隔は、タスク実行サイクルを正確に累積することを解決できるような値に設定され得る。オーディオタスクを処理する実際のサイクル数と、基準間隔内のサイクル数との間の差が、計算される(920)。オーディオタスクを処理する実際のサイクル数と、基準間隔内のサイクル数との間の差を計算する典型的な例が、式6に見られ、ここではCarryOverCyclesが計算される。計算された差(例えばCarryOverCycles)は将来のオーディオタスクのパラメータのスケジューリング(930)を決定するのに使われる。例えば、現在のフレーム中のオーディオタスクを処理する実際のサイクル数が基準間隔内のサイクル数より大きい場合、将来のオーディオタスクで処理されるボイス数は低減され得る。
オーディオタスクをスケジューリングする方法が、セットトップボックス、音楽プレーヤー、ビデオプレーヤー、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータを含むグループから選択された、当該オーディオタスクをスケジューリングする方法が統合されている電子デバイスに適用され得ることは、当業者には理解できるだろう。
ここに開示された方法、スキーム、技術の実装も、論理素子アレイ(例えばプロセッサ、マイクロプロセッサ、マイクロコントローラまたは他の有限状態機械)を含む機械によって読出可能および/または実行可能な、1つまたは複数の命令セットとして(例えばここに挙げられたような1つまたは複数のコンピュータ読出可能媒体で)明確に具体化され得る。1つまたは複数の典型的な実施形態では、ここに記述された動作は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せで実装され得る。ソフトウェアにて実装される場合、そのような動作は1つまたは複数の命令またはコードとして、コンピュータ読出可能媒体に記憶されるか、またはコンピュータ読出可能媒体を通して送信され得る。用語「コンピュータ読出可能媒体」は、コンピュータ記憶媒体および通信媒体の両方を含み、1つの場所から別の場所へコンピュータプログラムの転送を容易にする任意の媒体を含む。記憶媒体はコンピュータによってアクセスできる任意の利用可能な媒体である。例として、これに限定するものではないが、そのようなコンピュータ読出可能媒体は、半導体メモリ(限定はしないが、ダイナミックまたはスタティックRAM、ROM、EEPROM、および/またはフラッシュRAMを含む)、強誘電体、磁気抵抗、オブニック(ovonic)、ポリマー(polymeric)、または相変化(phase-change)メモリのような複数の記憶素子のアレイを含むことができる。CD−ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、または所望のプログラムコードを命令またはデータ構造の形で記憶するために使用でき、コンピュータによってアクセスすることができる他の媒体。ここで使用されるディスク(disk and disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、DVD(digital versatile disc)、フロッピー(登録商標)ディスクおよびブルーレーディスク(TM)(ブルーレイディスク協会、ユニヴァーサルシティ、CA)を含み、ディスク(disk)は通常磁気的にデータを再生し、ディスク(disc)はレーザーで光学的にデータを再生する。上記の組み合わせもコンピュータ読出可能媒体の範囲内に含まれるべきである。

Claims (20)

  1. プロセッサへオーディオボイスをスケジューリングする方法であって、前記オーディオボイスは音声を表し、前記方法は、
    前記プロセッサ上で第1のオーディオタスク実行する前にフリーランニングカウンタから第1のカウント値を読み出すこと、
    前記第1のオーディオタスクが前記プロセッサ上で実行を完了すると前記フリーランニングカウンタから第2のカウント値を読み出すこと、
    前記第1のオーディオタスクを完了するプロセッササイクルの総数を示す第1の値を提供するために前記第1のカウント値と前記第2のカウント値との間の差をとること、前記プロセッササイクルの総数は、前記第1のオーディオタスクの間の、前記プロセッサの割り込みを含む、
    キャリーオーバー値を提供するために、前記プロセッサがオーディオタスクを処理するための好ましい最大サイクル数を示す第2の値を前記第1の値から減算すること、および
    第3の値に前記キャリーオーバー値を乗算することで、第2のオーディオタスクについて前記プロセッサによって処理するためにスケジュールされるボイス数を低減すること、を含み、前記第3の値は音声合成時間を示す第4の値でボイスカウントを除することに基づき、前記第2のオーディオタスクは前記第1のオーディオタスクの後の時間における、
    方法。
  2. 前記ボイス数を低減することは、前記第3の値への前記キャリーオーバー値の前記乗算を整数に丸めることを含む、請求項1の方法。
  3. 前記方法は、セットトップボックス、音楽プレーヤー、ビデオプレーヤー、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、およびコンピュータから構成されるグループから選択された電子デバイスにおいて実行される請求項1の方法。
  4. 前記第1の値、第2の値、第4の値、およびキャリーオーバー値はプロセッササイクルユニットにおける、請求項1に記載の方法。
  5. 前記第1のオーディオタスクのタスクロードに基づき、および前記第1の値に基づき、前記第2のオーディオタスクを処理するために利用可能なプロセッササイクル数を計算すること、
    をさらに含む請求項の方法。
  6. 前記プロセッサがオーディオタスクを処理するための前記好ましい最大サイクル数はハードウェアまたはソフトウェアによって設定可能である請求項の方法。
  7. プロセッサ上でオーディオボイスをスケジューリングする装置であって、前記オーディオボイスは音声を表し、前記装置は、
    前記プロセッサ上で第1のオーディオタスク実行する前にフリーランニングカウンタから第1のカウント値を読み出す手段と、
    前記第1のオーディオタスクが前記プロセッサ上で実行を完了すると前記フリーランニングカウンタから第2のカウント値を読み出す手段と、
    前記第1のオーディオタスクを完了するプロセッササイクルの総数を示す第1の値を提供するために前記第1のカウント値と前記第2のカウント値との間の差をとる手段と、前記プロセッササイクルの総数は、前記第1のオーディオタスクの間の、前記プロセッサの割り込みを含む、
    キャリーオーバー値を提供するために、前記プロセッサがオーディオタスクを処理するための好ましい最大サイクル数を示す第2の値を前記第1の値から減算する手段と、
    第3の値に前記キャリーオーバー値を乗算することで、第2のオーディオタスクについて前記プロセッサによって処理するためにスケジュールされるボイス数を低減する手段と、を備え、前記第3の値は音声合成時間を示す第4の値でボイスカウントを除することに基づき、前記第2のオーディオタスクは前記第1のオーディオタスクの後の時間における、
    装置。
  8. 前記ボイス数を低減することは、前記第3の値への前記キャリーオーバー値の前記乗算を整数に丸めることを含む、請求項の装置。
  9. 前記第1の値、第2の値、第4の値、およびキャリーオーバー値はプロセッササイクルユニットにおける、請求項7の装置。
  10. 前記第1のオーディオタスクのタスクロードに基づき、および前記第1の値に基づき、前記第2のオーディオタスクを処理するために利用可能なプロセッササイクル数を計算する手段、
    をさらに備える請求項の装置。
  11. 前記プロセッサがオーディオタスクを処理するための前記好ましい最大サイクル数はハードウェアまたはソフトウェアによって設定可能である請求項の装置。
  12. オーディオボイスをスケジューリングする装置であって、前記オーディオボイスは音声を表し、前記装置は、
    フリーランニングカウンタと、
    プロセッサ上で第1のオーディオタスクが実行する前に前記フリーランニングカウンタから第1のカウント値を読み出し、
    前記第1のオーディオタスクが前記プロセッサ上で実行を完了すると前記フリーランニングカウンタから第2のカウント値を読み出し、
    前記第1のオーディオタスクを完了するプロセッササイクルの総数を示す第1の値を提供するために前記第1のカウント値と前記第2のカウント値との間の差をとること、前記プロセッササイクルの総数は、前記第1のオーディオタスクの間の、前記プロセッサの割り込みを含む、
    キャリーオーバー値を提供するために、前記プロセッサがオーディオタスクを処理するための好ましい最大サイクル数を示す第2の値を前記第1の値から減算し、
    第3の値に前記キャリーオーバー値を乗算することで、第2のオーディオタスクについて前記プロセッサによって処理するためにスケジュールされるボイス数を低減する、ためのプロセッサと、を備え、前記第3の値は音声合成時間を示す第4の値でボイスカウントを除することに基づき、前記第2のオーディオタスクは前記第1のオーディオタスクの後の時間における、
    装置。
  13. 前記ボイス数を低減するためのプロセッサは、前記第3の値への前記キャリーオーバー値の前記乗算を整数に丸めるためのプロセッサを含む、請求項12の装置。
  14. 前記装置は、セットトップボックス、音楽プレーヤー、ビデオプレーヤー、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、およびコンピュータから構成されるグループから選択される、請求項12の装置。
  15. 前記第1の値、第2の値、第4の値、およびキャリーオーバー値はプロセッササイクルユニットにおける、請求項12に記載の装置。
  16. 前記プロセッサはさらに、前記第1のオーディオタスクのタスクロードに基づき、および前記第1の値に基づき、前記第2のオーディオタスクを処理するために利用可能なプロセッササイクル数を計算する、請求項12の装置。
  17. 記憶された命令を有する非一時的なコンピュータ可読媒体であって、前記命令は、プロセッサ上で少なくとも実行されるときオーディオボイスをスケジューリングするための処理を実行し、前記オーディオボイスは音声を表し、前記処理は、
    前記プロセッサ上で第1のオーディオタスクが実行する前にフリーランニングカウンタから第1のカウント値を読み出すこと、
    前記第1のオーディオタスクが前記プロセッサ上で実行を完了すると前記フリーランニングカウンタから第2のカウント値を読み出すこと、
    前記第1のオーディオタスクを完了するプロセッササイクルの総数を示す第1の値を提供するために前記第1のカウント値と前記第2のカウント値との間の差をとること、前記プロセッササイクルの総数は、前記第1のオーディオタスクの間の、前記プロセッサの割り込みを含む、
    キャリーオーバー値を提供するために、前記プロセッサがオーディオタスクを処理するための好ましい最大サイクル数を示す第2の値を前記第1の値から減算すること、および
    第3の値に前記キャリーオーバー値を乗算することで、第2のオーディオタスクについて前記プロセッサによって処理するためにスケジュールされるボイス数を低減すること、を備え、前記第3の値は音声合成時間を示す第4の値でボイスカウントを除することに基づき、前記第2のオーディオタスクは前記第1のオーディオタスクの後の時間における、
    コンピュータ可読媒体。
  18. 前記ボイス数を低減することはさらに、前記第3の値への前記キャリーオーバー値の前記乗算を整数に丸めることを備える、請求項17のコンピュータ可読媒体。
  19. 前記第1の値、第2の値、第4の値、およびキャリーオーバー値はプロセッササイクルユニットにおける、請求項17のコンピュータ可読媒体。
  20. 前記処理はさらに、前記第1のオーディオタスクのタスクロードに基づき、および前記第1の値に基づき、前記第2のオーディオタスクを処理するために利用可能なプロセッササイクル数を計算することを備える、請求項17のコンピュータ可読媒体。
JP2011513682A 2008-06-11 2009-06-11 タスクロードを測定するための方法およびシステム Expired - Fee Related JP5275457B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6053208P 2008-06-11 2008-06-11
US61/060,532 2008-06-11
PCT/US2009/047005 WO2009152305A1 (en) 2008-06-11 2009-06-11 Method and system for measuring task load

Publications (2)

Publication Number Publication Date
JP2011524574A JP2011524574A (ja) 2011-09-01
JP5275457B2 true JP5275457B2 (ja) 2013-08-28

Family

ID=41415495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011513682A Expired - Fee Related JP5275457B2 (ja) 2008-06-11 2009-06-11 タスクロードを測定するための方法およびシステム

Country Status (6)

Country Link
US (1) US8594816B2 (ja)
EP (1) EP2313827B1 (ja)
JP (1) JP5275457B2 (ja)
KR (1) KR101264195B1 (ja)
CN (1) CN102057356A (ja)
WO (1) WO2009152305A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453146B2 (en) * 2009-12-23 2013-05-28 Intel Corporation Apportioning a counted value to a task executed on a multi-core processor
JP4905597B1 (ja) 2011-03-15 2012-03-28 オムロン株式会社 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
JP5799797B2 (ja) 2011-12-21 2015-10-28 富士通株式会社 算出方法、算出プログラム及びコンピュータ
KR102237373B1 (ko) * 2014-07-02 2021-04-07 삼성전자 주식회사 전자 장치의 태스크 스케줄링 방법 및 이를 사용하는 전자 장치
US9785473B2 (en) 2014-07-14 2017-10-10 Nxp Usa, Inc. Configurable per-task state counters for processing cores in multi-tasking processing systems
KR102356702B1 (ko) * 2015-11-24 2022-01-27 삼성전자주식회사 호스트 cpu 지원형 오디오 프로세싱 방법 및 이를 수행하는 컴퓨팅 시스템
CN106095558B (zh) * 2016-06-16 2019-05-10 Oppo广东移动通信有限公司 一种音效处理的方法及终端

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4937780A (en) 1986-05-30 1990-06-26 Bull Nh Information Systems, Inc. Single instruction updating of processing time field using software invisible working registers
JP3169597B2 (ja) 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
JPH05181688A (ja) * 1991-05-24 1993-07-23 Internatl Business Mach Corp <Ibm> タスクの進行を予測する方法、プログラム製品及びワークステーシヨン
JPH0512040A (ja) * 1991-07-04 1993-01-22 Mitsubishi Electric Corp タスクの実行制御方式
JP2671690B2 (ja) * 1992-01-08 1997-10-29 ヤマハ株式会社 電子楽器
US5628013A (en) 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
JP2969138B2 (ja) * 1992-12-21 1999-11-02 ヤマハ株式会社 ピッチ検出装置
JP3285986B2 (ja) * 1993-01-12 2002-05-27 ローランド株式会社 電子楽器のアサイン装置
US5596159A (en) 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
SG67993A1 (en) * 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
EP0863462B8 (en) * 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks
US6301603B1 (en) * 1998-02-17 2001-10-09 Euphonics Incorporated Scalable audio processing on a heterogeneous processor array
JP3873160B2 (ja) * 1998-11-20 2007-01-24 カシオ計算機株式会社 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体
EP1312206A1 (en) 2000-08-16 2003-05-21 Koninklijke Philips Electronics N.V. Method of playing multimedia applications
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
CN1695378A (zh) 2001-12-12 2005-11-09 皇家飞利浦电子股份有限公司 处理媒体系统上的媒体信号
DE10238575A1 (de) * 2002-08-22 2004-03-04 Siemens Ag Verfahren zur Messung der Nettolaufzeit eines Datenverarbeitungsprogramms
JP4146375B2 (ja) * 2004-03-19 2008-09-10 日本電信電話株式会社 処理制御装置、処理制御方法及び処理制御プログラム
US20060155543A1 (en) * 2005-01-13 2006-07-13 Korg, Inc. Dynamic voice allocation in a vector processor based audio processor
JP5063364B2 (ja) * 2005-02-10 2012-10-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 音声合成方法
US7877752B2 (en) * 2005-12-14 2011-01-25 Broadcom Corp. Method and system for efficient audio scheduling for dual-decode digital signal processor (DSP)
GB2440216A (en) * 2006-05-19 2008-01-23 Ibm Computer program for calculating the (accumulated) processing time for tasks
CN100504808C (zh) 2006-09-11 2009-06-24 中兴通讯股份有限公司 一种测量多任务操作系统任务cpu占用率的方法

Also Published As

Publication number Publication date
KR101264195B1 (ko) 2013-05-14
CN102057356A (zh) 2011-05-11
KR20110030550A (ko) 2011-03-23
US8594816B2 (en) 2013-11-26
WO2009152305A1 (en) 2009-12-17
JP2011524574A (ja) 2011-09-01
EP2313827B1 (en) 2019-07-24
US20090312856A1 (en) 2009-12-17
EP2313827A1 (en) 2011-04-27

Similar Documents

Publication Publication Date Title
JP5275457B2 (ja) タスクロードを測定するための方法およびシステム
US8962965B2 (en) Musical sound generation device, storage medium, and musical sound generation method
JP6169547B2 (ja) チップ上のマルチコアシステムの全域チップ電力を管理する方法およびその装置
US9336055B2 (en) Apparatus and method for predicting processing performance
WO2014094516A1 (zh) 一种实时多任务调度方法和装置
TW201239753A (en) Obtaining power profile information with low overhead
US20140282588A1 (en) System and scheduling method
KR20180107091A (ko) 다중 스레드 액세스를 위한 소프트웨어로 한정된 fifo 버퍼
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
US9000284B2 (en) Musical sound generation device, musical sound generation method, and storage medium
KR101226412B1 (ko) 미디어 데이터의 다수의 스트림을 결합하는 시스템, 방법 또는 장치
KR20090130864A (ko) 악기 디지털 인터페이스 하드웨어 명령 세트
KR100682444B1 (ko) 오디오 신호 프로세서
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
KR20090014601A (ko) 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
JP2008250838A (ja) ソフトウェア生成装置、方法、およびプログラム
JP2018018446A (ja) 並列処理装置、並列処理装置の電源制御プログラム、及び並列処理装置の電源制御方法
CN101454834A (zh) 内容再现装置
JP2005100017A (ja) プロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法
JP3693045B2 (ja) 楽音発生装置
JP4063286B2 (ja) 音源装置
KR101047540B1 (ko) 전자 디바이스 및 그 전력 소모 조절 방법
JP3693046B2 (ja) 楽音発生装置
JP4477159B2 (ja) カラオケ装置
JP4720893B2 (ja) カラオケ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130304

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130515

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5275457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees