JP2004078889A - マルチタスク制御装置および音楽データ再生装置 - Google Patents
マルチタスク制御装置および音楽データ再生装置 Download PDFInfo
- Publication number
- JP2004078889A JP2004078889A JP2003050482A JP2003050482A JP2004078889A JP 2004078889 A JP2004078889 A JP 2004078889A JP 2003050482 A JP2003050482 A JP 2003050482A JP 2003050482 A JP2003050482 A JP 2003050482A JP 2004078889 A JP2004078889 A JP 2004078889A
- Authority
- JP
- Japan
- Prior art keywords
- task
- operation mode
- processor
- control device
- processing
- 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.)
- Withdrawn
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
【課題】タスクの輻輳状態の如何に拘わらず、プロセッサの破綻を回避しつつ品質を向上することができるマルチタスク制御装置を提供する。
【解決手段】複数の動作モードA〜Cを有する第1のタスク101bを含む複数のタスクをプロセッサ10に並行して処理させるマルチタスク制御装置1bであって、第1のタスク101bを起動すべきか否かを判断するタスク管理装置20bと、タスク管理装置20bが第1のタスク101bを起動すべきと判断した場合に、プロセッサ10の処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1のタスク101bをプロセッサ10に処理させるモード設定装置30bとを備える。
【選択図】 図9
【解決手段】複数の動作モードA〜Cを有する第1のタスク101bを含む複数のタスクをプロセッサ10に並行して処理させるマルチタスク制御装置1bであって、第1のタスク101bを起動すべきか否かを判断するタスク管理装置20bと、タスク管理装置20bが第1のタスク101bを起動すべきと判断した場合に、プロセッサ10の処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1のタスク101bをプロセッサ10に処理させるモード設定装置30bとを備える。
【選択図】 図9
Description
【0001】
【発明の属する技術分野】
本発明は、複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置および音楽データ再生装置に関する。
【0002】
【従来の技術】
近年、音声、オーディオ、画像等のデータ圧縮処理を高速(例えば、285MIPS)に処理することができるプログラム制御方式の汎用デジタルシグナルプロセッサ(DSP)が開発され、デジタル携帯電話機や、モバイルAV機器などの他、モデム装置、CD装置、MD装置、DVC装置、DVD装置などに幅広く用いられている。このようなプロセッサを搭載したコンピュータ装置、例えば携帯電話機では、通話用のプログラムをプロセッサに実行させることによって通話機能を実現させているが、この携帯電話機に対して、例えば音楽録音・再生装置としても利用したい、TV受信機としても利用したい、しかも音楽を録音しながらTVを視聴している最中に電話がかかってくると通話も並行して行いたいといった要望がよせられている。このため、この種のコンピュータ装置に機能の拡張・変更が容易なマルチタスク制御装置を実装し、種々の機能を実現する複合化が図られつつある。
【0003】
このマルチタスク制御装置は、例えば、音楽録音や再生用のタスク、TV受信用のタスク、通話用のタスクの3つのタスクのそれぞれを処理能力が高いプロセッサに並行して処理させるものであって、タスクの起動および停止を管理するタスク管理装置等から成り、このタスク管理装置等はプロセッサ上で動作するリアルタイムOSが提供する機能により実現される。
【0004】
ところで、音楽を録音や、再生しながらTVを視聴している最中に通話もしたいといった上記要望に応えるためには、TV受信用のタスクの処理に例えば150MIPS、通話用のタスクの処理に例えば100MIPSの負荷がプロセッサにかかると仮定すると、プロセッサの余力は35MIPSとなる。
【0005】
そこで、従来では、輻輳したタスク処理の破綻を回避すべく、30MIPS程度の負荷で収まるように命令数をできるだけ少なくした音楽録音や再生用のタスクを作成し、プロセッサの処理能力の範囲内で、音楽録音・再生や、TV受信、通話を輻輳して処理することができるようにしている。
【0006】
なお、デジタルオーディオ信号を複数の周波数帯域に分割し、各帯域ごとに符号化を行う音声符号化方式であって、上記分割された各帯域に対するビット割り当て情報を生成し、それぞれ処理量の異なるビット割り当て手段を複数有する音声符号化方式がある。そして、外部からの制御情報に基づいて、上記複数のビット割り当て手段の中から、所定のビット割り当て手段を用いて処理がなされるように、使用するビット割り当て手段を切り替えてビット割り当てを実行して、符号化を行うことを特徴とする音声符号化方式がある(例えば、特許文献1参照。)。これによって、この音声符号化方式では、パソコンのCPU処理能力および他のアプリケーションのCPU占有率に左右されず、実時間で音のときれがない高音質の符号化データの作成を実現している。
【0007】
【特許文献1】
特開2000−78018号公報(第1頁、第1図)
【0008】
【発明が解決しようとする課題】
しかしながら、このようなマルチタスク制御装置や、このマルチタスク制御装置を実装する音楽データ再生装置においても、音楽を録音・再生しながらTVを視聴している最中に通話もするといった事態は、非常にまれにしか起こらないケースであり、音楽の録音・再生機能等単機能だけを使う使われ方が通常行われる。このような単機能だけの利用時、例えば音楽録音・再生時には、その音楽録音/再生のタスクの処理に30MIPSの負荷がプロセッサにかかるだけで、255MIPSもの処理能力を余した贅沢な使い方がなされている。
【0009】
ところで、音声信号のエンコード処理やデコード処理はスケーラビリティが非常に高い。例えば、エンコード処理やデコード処理に要する命令数が少なく、プロセッサに対する負荷が上記のような30MIPS程度の低さであると音質が低いが、エンコード処理に要する命令数が多くなり、プロセッサに対する負荷が200MIPS程度にまで高くなるほど、原音と差がないほどにまで音質が高くなる性質を有している。
【0010】
従って、従来では、わざわざ処理能力の高いプロセッサが搭載されているにも拘わらず、その性能が十分に発揮されておらず、プロセッサにかかる負荷が低い分、品質(音質)が悪いという問題があった。
【0011】
この問題を解決するために、音楽録音・再生用のタスクの命令数を多くし、音楽録音用のタスクの処理に200MIPSの負荷がプロセッサにかかるようにすることで、プロセッサの性能を十分に発揮させ、音質を高めることが考えられる。
【0012】
しかしながら、この場合には、音楽録音・再生中にTVを視聴したり、通話したりすると、負荷が処理能力を超えてしまい、破綻状態となってしまう。
このような事態は、タスクの種別の如何に拘わらずいえることであって、破綻と品質とのトレードオフが生じる。
【0013】
なお、上記公報に開示される音声符号化方式は、携帯電話のプロセッサよりも数十倍〜数百倍の処理能力を有するCPUの下で利用されるので、上記の問題点が生じることはほとんどないと考えられるのに対して、処理能力が高くなったとはいってもパソコンに用いられるCPUの数十分の1〜数百分の1の処理能力のプロセッサを用いざるを得ない場合には、上記の問題点は重要な課題となる。
【0014】
本発明は、このような従来の問題点に鑑みてなされたものであって、タスクの輻輳状態の如何に拘わらず、比較的処理能力が低いプロセッサの破綻を回避しつつ品質を向上することができるマルチタスク制御装置および音楽データ再生装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記の課題を解決するため、本発明に係るマルチタスク制御装置は、複数の動作モードを有する第1タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置であって、前記第1タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備えることを特徴とする。具体的には、前記第1タスクは、デジタルオーディオ信号を再生処理するタスクであり、前記機能は、音質を制御する機能であり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も高い音質に対応する動作モードで第1タスクをプロセッサに処理させることを特徴とすることができる。
【0016】
この結果、プロセッサに余力がある場合には第1タスクの処理できる機能の選択の範囲(選択の幅)が広がり、余力がない場合には選択の幅が狭まることになる。これにより、前記モード制御手段は、前記プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることができる。従って、タスクの輻輳状態の如何に拘わらず、プロセッサの破綻を確実に回避しつつ、再生された音質を向上することができる。
【0017】
ここで、前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い機能であり、前記モード制御手段は、前記最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。また、前記機能は、前記プロセッサにかかる負荷が大きくなると共に高くなり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も大きい負荷に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。
【0018】
また、前記機能は、前記プロセッサが処理する命令数が多くなると共に高くなり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多い命令数に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。さらに、前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い音質を制御するフィルタ機能であり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多いタップ数のフィルタ処理に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。
【0019】
また、前記モード制御手段は、前記プロセッサに処理される対象タスクの状態変化を検出する状態変化検出手段と、前記状態変化後に起動させるタスクを特定する特定手段と、前記特定手段によって特定されたタスクの中に第1タスクが含まれている場合、第1タスクの動作モードを決定する動作モード決定手段とを備えることを特徴とすることができる。これによって、対象タスクの状態変化が生じる場合に、第1タスクの動作モードの決定を適切なタイミングに行うことができる。
【0020】
この場合、前記動作モード決定手段は、前記特定手段によって特定されたタスクと前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしてもよい。また、前記動作モード決定手段は、前記特定手段によって特定されたタスクの数と前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしてもよい。従って、第1タスクの動作モードを簡単に決定することができる。
【0021】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な負荷を算出する負荷算出手段と、前記負荷算出手段が算出した負荷と前記第1タスクの各動作モードの処理に要する負荷とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、第1タスクの動作モードを決定するようにしてもよい。この場合、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記負荷算出手段が算出した負荷が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する起動禁止手段とを備えることを特徴とすることができる。これによって、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0022】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する起動禁止手段とを備えることを特徴とすることができる。これによって、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0023】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な命令数を算出する命令数算出手段と、前記命令数算出手段が算出した命令数と前記第1タスクの各動作モードの処理に要する命令数とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、動作モードを決定することを特徴としてもよい。この場合に、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記命令数算出手段が算出した命令数が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する禁止手段とを備えることを特徴とすることができる。これによっても、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0024】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する禁止手段とを備えることを特徴とすることができる。これによっても、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0025】
さらに、前記モード制御手段は、前記動作モード決定手段が決定した動作モードに対応付けられたパラメータを第1タスクに設定し、当該パラメータに対応する動作モードで第1タスクをプロセッサに処理させることを特徴とすることもできる。これによって、パラメータの設定という簡単な処理で第1タスクの動作モードを容易に遷移させ、負荷や命令数を変えることができる。
【0026】
また、上記の課題を解決するため、本発明に係る音楽データ再生装置は、複数の動作モードを有する音楽再生タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置を備える音楽データ再生装置であって、前記マルチタスク制御装置は、前記音楽再生タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記音楽再生タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる最も音質の高い機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備えることを特徴とする。具体的には、前記音楽データ再生装置は、携帯性を有し、前記プロセッサに並行して処理される音楽再生タスク以外の他のタスクは、TVビュー、ブラウジング、メールおよび通話の少なくともいずれか1つであることを特徴とすることができる。これによって、携帯電話機等の携帯性の高い装置を、音質の高い音楽データ再生装置として使用しながら、TVビューや、ブラウジング、メールおよび通話を並行して行うことができる。
【0027】
以上のように本願発明によれば、演算資源に余裕のあるときは、高音質なオーディオ信号処理が行え、演算資源に余裕がないときでも、演算資源を軽減し、破綻を生じない範囲でかつ最も高い音質で処理を円滑に行うことができるので、本願発明の実用的価値は極めて高い。
【0028】
なお、本発明は、上記マルチタスク制御装置が備える全ての手段を、ステップとするマルチタスク制御方法として実現したり、その全ての手段としてコンピュータに機能させるプログラムとして実現したりすることもできる。そして、そのプログラムをDVD等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのはいうまでもない。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態に係るマルチタスク制御装置を図面に基づいて説明する。
(実施の形態1)
図1は、本実施の形態1に係るマルチタスク制御装置1aの全体構成を示すブロック図である。
【0030】
このマルチタスク制御装置1aは、例えば携帯電話機を複合化するための複数(図示3つ)のタスク(第1のタスク101a、第2のタスク102aおよび第3のタスク103a)のそれぞれをプロセッサ10に並行して処理させるものであって、タスク管理装置20aと、モード設定装置30aとから構成され、プロセッサ10上で動作するリアルタイムOSに組み込まれる機能によって実現される。
【0031】
プロセッサ10によって処理される第1のタスク101aは、第1の機能(例えば、音楽録音(オーディオ信号のエンコード))を実現する1つのプログラムであって、ISO/IEC 13818−7 Advanced Audio Coding(これを以下、単に「AAC」とも記載する。)の規格に従い、モード設定装置30aによって設定されるパラメータの値に応じて、オーディオ信号のエンコード処理に用いる符号化のツール(例えば、聴覚モデル、TNS(Temporal Noise Shaping)、予測、M/S(Middle/Side)ステレオ、AAC量子化・符号化等)のアルゴリズムを変化させ、音質が高、中、低の3段階に変化する3つの動作モード(動作モードA、動作モードBおよび動作モードC)からなる。即ち、動作モードAは、動作モードBや動作モードCより多くの負荷をプロセッサ10にかけて音質向上を図る動作モードである。より詳しくは、動作モードC、動作モードB、動作モードAの順番に最高音質に対する追求する度合いが高くなるアルゴリズムが使用される結果、この順番に演算量(命令数)が多くなってプロセッサ10に対する負荷が大きくなり、この順に再生される音質が高くなる。
【0032】
具体的には、パラメータの値が「1」である場合、第1のタスク101aは、プロセッサ10に対して200MIPSの負荷N11をかける動作モードAを実行する。この動作モードAの場合には、第1のタスク101aは、原音と差がない程度の最高音質の再生音が得られる圧縮音声データを生成する。また、パラメータの値が「2」である場合、第1のタスク101aは、プロセッサ10に対して50MIPSの負荷N12をかける動作モードBを実行する。この動作モードBの場合には、第1のタスク101aは、動作モードAの場合よりも少し劣る音質(中音質)の再生音が得られる圧縮音声データを生成する。
【0033】
さらに、パラメータの値が「3」である場合、第1のタスク101aは、プロセッサ10に対して30MIPSの負荷N13をかける動作モードCを実行する。この動作モードCの場合には、第1のタスク101aは、動作モードBの場合よりも少し劣る音質(低音質)の再生音が得られる圧縮された音声データを生成する。
【0034】
第2のタスク102aは、プロセッサ10に対して例えば単位時間当たり150MIPSの負荷N2をかけることによって、第2の機能(例えば、TV受信、即ちビデオデコード(Vdec)およびオーディオデコード(Adec))を実現するためのプログラムである。
【0035】
さらに、第3のタスク103aは、プロセッサ10に対して例えば単位時間当たり100MIPSの負荷N3をかけることによって、第3の機能(例えば、(通話(SpeachおよびEcho Cancel))を実現するプログラムである。
【0036】
プロセッサ10は、第1のタスク101a〜第3のタスク103aのいずれか1つ或いは2以上の組み合わせを、例えば単位時間当たり285MIPS=Nmaxで処理する能力を有するプロセッサである。
【0037】
タスク管理装置20aは、各タスク101a〜103aの起動および停止を管理する。より詳しくは、タスク管理装置20aは、各タスクの状態を示す区分コードと、各タスクの先頭番地・処理を中断したときのフラグやレジスタの退避領域などから構成されるタスク・コントロール・ブロック(TCB)や、ディスパッチャー、スケジューラ等を備えており、音楽を録音するためのボタンが操作されたり、TVを視聴するためのボタンが操作されたり、電話がかかってきてオフフックボタンが操作されるようなイベントが発生した場合や、終了した場合に、次に起動すべきタスクや停止すべきタスクを特定し、この特定によってプロセッサ10に処理される対象タスクの状態変化を検出し、検出された対象タスクの状態変化をモード設定装置30aに通知したり、TCBによって各タスク101a〜103aを予定通りに起動したり停止したりする。
【0038】
モード設定装置30aは、動作モード設定テーブル31aを備えており、タスク管理装置20aから対象タスクの状態変化、即ちタスクの起動や停止の予定の通知があり、起動予定のタスクの中に第1のタスク101aが含まれていると、動作モード設定テーブル31aを参照し、第1のタスク101a以外のタスクが輻輳しているか否か等によって、第1のタスク101aの動作モードを決定し、決定した動作モードに応じたパラメータを第1のタスク101aに設定する。
【0039】
図2は、図1に示される動作モードA〜動作モードCのプロセッサ10に対する単位時間当たりの負荷と音質との関係を示す図である。
ここで、AACは、オーディオ信号の符号化されたビットストリームの一部分が用いられても音声が再生可能なように、階層化(スケーラビリティ)された構造を持っており、異なる複数のアルゴリズム、即ち全てのツールを組み合わせることにより、業務用のエンコーダのように最高品質を追求したアルゴリズムを採用したり、ツールの一部(例えば予測ツール)を省略したり、簡略化したりすることにより、SDプレーヤのように業務用のエンコーダよりも品質を落としたアルゴリズムや、ポータブルCDプレーヤのようにSDプレーヤよりも品質を落としたアルゴリズムを採用したりすることができる。
【0040】
例えば、高音質なオーディオのエンコード処理では、聴感的な音質向上のために、聴覚のマスキング現象などを模擬した聴覚モデルという処理が行われる(AAC参照)。ところが、原音と差がない再生音を得るためのエンコード処理を行うと、命令数が膨大となり、この処理には多大の負荷が必要となる。これに対して、この処理を簡略化すると、簡略化の度合いに応じて音質の劣化が徐々に進む一方、命令数が大幅に減少し、この処理に要する負荷を大幅に削減できる。このような場合、聴覚モデルを十分に考慮し、この原音と差がない再生音を得るためのエンコード処理を行うためのプログラムが動作モードAである。そして、第1タスク101aの処理を動作モードAより簡略化した動作モードが「B」であり、この動作モードBをさらに簡略化した動作モードが「C」である。
【0041】
また、高音質なオーディオエンコードでは、エンコード時の圧縮歪をできるだけ聴感上気にならないレベルに押さえ込むために、エンコードパラメータを繰り返し変更したり、修正したりしながら圧縮処理が行われる(AAC参照)。これにも多大の負荷が必要である。これに対して、この処理を簡略化すると、簡略化の度合いに応じて音質の劣化が徐々に進む一方、負荷を大幅に削減できる。このような場合、例えば、エンコードパラメータ変更、修正の繰り返し回数を多数行うモードが動作モードAであり、それを簡略化したモードが動作モードB,動作モードCということになる。
【0042】
これらの具体例として、動作モードAのプログラムでは、聴覚特性として周波数成分ごとに最低可聴レベルが異なること(いわゆるラウドネス特性があること)、マスキング特性があること、絶対時間のずれや位相の違いに鈍感であること等が考慮されており、例えば、音声信号のレベルに応じてフィルタ特性を変更し、低周波域および高周波域のレベル増強度を変えたり、音声信号のレベル(振幅)に応じてその信号を周波数軸の目盛がバーク尺度となったマスキング特性(即ち、周波数が低い部分ではマスキングの及ぶ範囲を狭く、高い部分では広げたマスキング特性)に合わせて畳み込み、その信号近傍のレベルの低い信号をマスキング処理することにより量子化雑音を低減したりする。
【0043】
また、動作モードBのプログラムでは、例えば、上記マスキング特性について、周波数が低い部分と高い部分とで同じマスキングの及ぶ範囲とすることで、単位時間当たりの負荷を動作モードAの場合よりも大幅に低減している。さらに、動作モードCのプログラムでは、例えば、音声信号のレベルの如何に拘わらず同じフィルタ特性を用い、低周波域および高周波域のレベルを増強することで、単位時間当たりの負荷を動作モードBの場合よりも少し低減している。
【0044】
図3は図1に示される動作モード設定テーブル31aの詳細を示す図であり、図4はプロセッサの処理能力と、第1のタスク101aの動作モードとの関係を示す図である。特に、図4(a)は第1のタスク101aだけが起動された場合の状態を、図4(b)は第1のタスク101aと第2のタスク102aとが輻輳して起動された場合の状態を、図4(c)は第1のタスク101aと第2のタスク102aと第3のタスク103aとの3つのタスクが輻輳して起動された場合の状態を、それぞれ示している。
【0045】
図3に示される動作モード設定テーブル31aは、実行させなければならないタスクと、実行される第1のタスク101aの動作モードとの関係を示すものである。なお、図中に示される「○」はタスクの起動状態を、「×」はタスクの停止状態を、「−」は第1のタスク101aに対する動作モードを設定しないことを示しており、第1のタスク101aが起動されない場合もあわせて図示されている。
【0046】
この動作モード設定テーブル31aにおいては、タスク管理装置20aから第1のタスク101aだけを起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して最も負荷が高い動作モードA(単位時間当たりの負荷N11、例えば200MIPS)で動作させることが示されている。この動作モードAで動作させる理由は、次の通りである。プロセッサ10の処理能力Nmax=285MIPSを図4(a)に示される枠で表すと、プロセッサ10の処理能力の全てを第1のタスク101aの処理に充てることができる。この場合、動作モードA〜動作モードCのいずれもプロセッサ10の処理能力の範囲に収まるので、いずれをも設定することができるが、各動作モードの内では動作モードAの音質が一番高い。そこで、第1のタスク101aとして、最高音質の動作モードAで動作させることとしたものである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードAで動作させることとしたものである。
【0047】
また、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第2のタスク102a(150MIPS)と、第1のタスク101aとの2つのタスクを輻輳して起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して動作モードAよりも負荷が軽い動作モードB(50MIPS)で動作させることが示されている。この動作モードBで動作させる理由は次の通りである。図4(b)に示されるように、プロセッサ10の処理能力の内、第2のタスク102aの処理にN2=150MIPSの負荷かがかかる。このため、第1のタスク101aの処理に充てることができるのは、135MIPSである。このため、破綻を来さないのは動作モードB,動作モードCの2つであり、両モードのいずれをも設定することができるが、両モードの中では動作モードBが一番音質的に優れている。そこで、第1のタスク101aとして、動作モードBで動作させることとしたものである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードBで動作させることとしたものである。
【0048】
なお、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第3のタスク(100MIPS)と、第1のタスク101aとの2つのタスクを輻輳して起動させる旨の通知を受けた場合も、第2のタスク102a(150MIPS)と、第1のタスク101aとが起動される場合と同様な理由から、モード設定装置30aは、第1のタスク101aに対して動作モードB(50MIPS)で動作させるように構成されている。
【0049】
さらに、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第1のタスク101a、第2のタスク102aおよび第3のタスク103aの全てを輻輳して起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して動作モードC(単位時間当たりの負荷N13、例えば30MIPS)で動作させることが示されている。この動作モードCが設定される理由は、破綻を来さないのは動作モードCだけであるからである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードCで動作させることとしたものである。
【0050】
図5は、マルチタスク制御装置1aによる動作を示す図である。
タスク管理装置20aは、イベントの発生によって新たなタスクを起動したりタスクの停止が行われるような対象タスクの状態変化を検出すると(S11)、状態変化後に起動させるタスクを特定する(S12)。そして、タスク管理装置20aは、この特定によって得られた次に実行させなければならないタスクを、モード設定装置30aに通知する。
【0051】
通知を受けたモード設定装置30aは、対象タスクの中に第1のタスク101aが含まれている場合、動作モード設定テーブル31aを用いて第1のタスクの動作モードを決定し、決定した動作モードに対応したパラメータを第1のタスク101aに設定する(S13)。第1のタスク101aに対するパラメータの設定が終わると、タスク管理装置20aは、プロセッサ10に対象タスクを時分割で実行させる(S14)。
【0052】
マルチタスク制御装置1aは、このような処理(S11〜14)を繰り返すことにより、プロセッサ10の使用効率を高めつつ、第1のタスク101a〜第3のタスク103aを時分割で並行に処理し、プロセッサ10が破綻を来さない範囲で、かつ一番品質の高い動作モードで第1のタスク101aを動作させる。
【0053】
図6は、第1のタスク101aだけが起動される場合の状態遷移とプロセッサ10にかかる負荷の遷移との関係を示す図である。
図6に示される時刻T1以前は、何もタスクが起動されていない状態である。この状態で、時刻T1にタスク管理装置20aによって第1のタスク101aだけが起動される場合、モード設定装置30aは、第1のタスク101aに対してパラメータ「1」を設定することにより、動作モードAで動作させる。これによって、プロセッサ10に対する負荷は、N11=200MIPSということになり、最高品質の音声が得られる。即ち、この場合は、プロセッサ10に対する負荷に余裕があり、プロセッサ10の処理能力を全て第1のタスク101aの処理に回すことができるので、第1のタスク101aの処理について高音質なエンコードモード、動作モードAでエンコードすることを指示したのである。
【0054】
従って、従来では上記したように30MIPSの負荷がかかるだけで、低音質であったが、本実施の形態1では、従来よりも非常に大きな負荷200MIPSをかける動作モードAで第1のタスク101aを処理させるので、プロセッサ10の使用効率を大幅に上げることができ、最高の音質を得ることができる。
【0055】
図7は、第2のタスク102aが起動された後に第1のタスク101aがさらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0056】
図7に示される時刻T2において、タスク管理装置20aによって第2のタスク102aだけが起動された場合、第2のタスク102aが必要とする負荷N2=150MIPSがプロセッサ10にかかることになる。次に、時刻T3において、第1のタスク101aがタスク管理装置20aによってさらに起動された場合、第2のタスク102aの処理に150MIPSの負荷が必要であるので、第1のタスク101aにさくことができる処理量は(Nmax−N2)=135MIPSとなる。そして、図3に示される動作モード設定テーブル31aを参照すると、第1のタスク101aの動作モードとして動作モードB(50MIPS)が指定されている。これにより、モード設定装置30aは、動作モードBと決定し、第1のタスク101aに対してパラメータ「2」を設定し、動作モードBで動作させる。この場合、第1のタスク101aの動作モードBが必要とする負荷N12がプロセッサ10に加わることになる。即ち、この場合は、プロセッサ10の処理能力に図7の場合ほど余裕がないので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高い動作モードBを設定したのである。これによって、プロセッサ10に対する演算負荷は、(N2+N12)=200MIPSということになる。
【0057】
従って、従来では上記したように30MIPS+150MIPS=180MIPSの負荷がかかるだけであったが、本実施の形態1では、従来よりも大きな負荷をかけ、プロセッサ10の使用効率を上げることができ、しかも、従来より高い音質を得ることができる。
【0058】
図8は、第1のタスク101aが起動された後に第2のタスク102aおよび第3のタスク103aが順次さらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0059】
図8に示される時刻T4以前は、何もタスクが起動されていない状態である。この状態で、時刻T4において、タスク管理装置20aによって第1のタスク101aが起動された場合、第2のタスク102aおよび第3のタスク103aが起動されていないので、モード設定装置30aは、第1のタスク101aに対し、動作モードAを設定する。これによって、プロセッサ10に対する負荷は、N11=200MIPSということになる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なエンコードモードでエンコードすることを第1のタスク101aに指示したのである。
【0060】
次に、時刻T5において、タスク管理装置20aによって第2のタスク102aがさらに起動されたとする。この場合、第2のタスク102aが必要とする演算負荷N2=150MIPSがプロセッサ10に加わることになる。この場合、第1のタスク101aの動作モードを「A」のままに維持すると、プロセッサ10にかかる負荷が350MIPSと過大となり破綻することになる。そこで、モード設定装置30aは、動作モード設定テーブル31aを参照し、動作モードを「B」(50MIPS)に決定し、第1のタスク101aに対し、動作モードBを設定する。これにより、全体では(N12+N2)=200MIPSの負荷がプロセッサ10にかかることになる。即ち、この場合は、プロセッサ10に対する負荷に動作モードAを割り当てる余裕がないので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高く、高速なエンコードモード、動作モードBでエンコードすることを第1のタスク101aに指示したのである。
【0061】
次に、時刻T6において、第3のタスク103aがタスク管理装置20aによってさらに起動されたとする。この場合、第3のタスク103aが必要とする負荷N3=100MIPSがプロセッサ10に加わることになる。この場合、第1のタスク101aの動作モードを「B」のままにしておくと、プロセッサ10にかかる負荷が300MIPSとなり、プロセッサ10が破綻状態となる。
【0062】
そこで、モード設定装置30aは、動作モード設定テーブル31aを参照し動作モードを「C」(30MIPS)と決定し、第1のタスク101aに対し、動作モードCを設定する。これにより、全体では(N13+N2+N3)=280MIPSの負荷がプロセッサ10にかかることになる。
【0063】
即ち、この場合は、動作モードBを割り当てるほどの負荷に余裕がないので、モード設定装置30aは、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高く、さらに高速処理可能で負荷の軽いエンコードモード、動作モードCでエンコードすることを第1のタスク101aに指示したのである。
【0064】
次に、時刻T7において、第3のタスク103a(通話)がタスク管理装置20aによって停止されたと仮定する。この場合、第1のタスク101aと、第2のタスク102aとだけが起動されるので、モード設定装置30aは、動作モード設定テーブル31aを参照し、第1のタスク101aに対し、動作モードBを設定する。即ち、この場合は、プロセッサ10に対する演算負荷に余裕が生じるので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高いエンコードモードである動作モードBでエンコードすることを第1のタスク101aに指示したのである。これによって、プロセッサ10に対する演算負荷は、(N12+N2)=200MIPSということになる。
【0065】
次に、時刻T8において、第2のタスク102aがタスク管理装置20aによって停止されたとする。この場合、モード設定装置30aは、第1のタスク101aだけが起動されるので、モード設定装置30aは、第1のタスク101aに対し、動作モードAを設定する。即ち、この場合は、プロセッサ10に対する負荷に余裕が生じるので、高音質なエンコードモードである動作モードAでエンコードすることを第1のタスク101aに指示したのである。これによって、プロセッサ10に対する演算負荷は、N11=200MIPSということになる。
【0066】
以上のように本実施の形態1に係る発明によれば、第1のタスク101aについて高音質用、中音質用、低音質用等プロセッサ10における単位時間当たりの負荷が異なる動作モードが予め用意されており、モード設定装置30aは、タスク管理装置20aの第2のタスク102aおよび第3のタスク103aの起動・停止の状態変化ごとに第1のタスク101aの動作モードを破綻が生じない範囲で負荷の高い動作モードに設定しなおすようにしている。即ち、タスクが輻輳し多大の処理負荷がプロセッサにかかる場合は、前記第1のタスクの処理負荷を軽減するようにしている。このため、第1のタスク101aが起動されている限り、プロセッサ10の処理能力Nmaxを超えることなく、単位時間当たりの負荷をプロセッサ10にかけることができる。即ち、全体の負荷を軽減でき、かつ、負荷に余裕がある場合は、第1のタスク101aに多くの処理資源を割り当て高性能な機能を実現できることとなる。従って、プロセッサの処理能力を超えない範囲で一番高い負荷の動作モードを第1のタスク101aに設定するので、プロセッサの処理能力を最大限に利用することができ、プロセッサ10の使用効率を高めることができる。
【0067】
なお、上記実施の形態1では、3つのタスクが輻輳する場合について、その動作を説明したが、2つのタスクが輻輳する場合や、4つ以上のタスクか輻輳する場合であっても、上記実施の形態1と同じ考え方で本発明を適用できる。即ち、処理に必要な単位時間当たりの負荷が異なる複数の動作モードを備えた第1のタスクに対して、輻輳状態に応じて動作モードを切り替えるのである。もちろん、第1のタスクに対する動作モードの切り替えにおける判断の指標は、第1のタスク以外の起動しているタスクの負荷の総和である。負荷の総和が、プロセッサが備えている処理能力に対して余裕がある場合は、第1のタスクに対して余裕内の最大の負荷を与えて高性能な処理を行うようにし、負荷の総和が、プロセッサが備えている処理能力に対して余裕がない場合は、第1のタスクに対して余裕内に収まるものの内、最大の負荷を与えて高速な処理を行うように設定する。
【0068】
また、上記実施の形態1では、モード設定装置30aは動作モード設定テーブル31aを用いて第1のタスク101aの動作モードを決定したが、動作モード設定テーブル31aを使用することなく、状態変化後に第1のタスク101aに割り当て可能な処理量を特定し、プロセッサ10が破綻しない範囲で最も大きな負荷をかける第1のタスクの動作モードを決定するようにしてもよい。
【0069】
また、上記実施の形態1では、第1のタスクに対する動作モードの切り替えにおける判断の指標として、第1のタスク以外の起動しているタスクの負荷の総和を用いたが、第1のタスク以外の起動しているタスクの処理に必要な演算量の総和を用いるようにしてもよく、第1のタスク以外の起動しているタスクを構成するプログラムの命令数の総和を用いてもよい。
【0070】
また、第1のタスク以外の起動しているタスクの数を用いてもよい。この場合には、他のタスクの数が「0」であれば動作モードA、「1」であれば動作モードB、「2」であれば動作モードCというように決定、設定を行えばよく、非常に簡単に決定、設定を行える。
【0071】
また、上記実施の形態1では、第1のタスク101aについて3つの動作モードを用意したが、2つの動作モードや、4つ以上の動作モードを用意してもよい。
【0072】
また、上記実施の形態1では第1のタスク101aだけに負荷が異なる複数の動作モードを用意したが、第2のタスク102a等の他のタスクについても負荷が異なる複数の動作モードを用意してもよい。この場合には、動作モードの切り替えにおける判断の指標として、状態変化後のタスクの輻輳数等を用いればよい。
【0073】
また、上記実施の形態1では第1のタスク101aをパラメータによって動作モードを変える1つのプログラムで構成したが、同一範疇に属し、異なる複数の機能に対応したプログラムのそれぞれを第1タスクとし、第1タスクを起動すべきと判断した場合に、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する1つの第1タスクを複数の第1タスクの中から選択してプロセッサに処理させるようにしてもよい。具体的には、DVD装置などに向けて作成された業務用エンコーダ(200MIPS)と、SDプレーヤなど向けて作成されたエンコーダ、SDジュークボックス(50MIPS)と、ポータブルCDプレーヤなどに向けて作成されたエンコーダ、CDリッパー(30MIPS)との同一範疇に属する3本のプログラムがすでにある場合、これら3本のプログラム業務用エンコーダ(200MIPS)、SDジュークボックス(50MIPS)、CDリッパー(30MIPS)それぞれを第1タスクとし、第1タスクを起動すべきと判断した場合に、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する1つの第1タスクを複数の第1タスク、即ち業務用エンコーダ(200MIPS)、SDジュークボックス(50MIPS)、CDリッパー(30MIPS)の中から選択してプロセッサに処理させるようにしてもよい。
【0074】
この場合には、パラメータによって動作モードを変える1つのプログラムをわざわざ作成する必要がなく、既存のソフトを再利用することができ、既存の資源の再利用が促進される。
【0075】
さらに、上記実施の形態1では、第1のタスクが音声信号のエンコード処理である場合に適用したが、音声信号の再生処理においてもスケーラビリティが高いので、本発明を適用できる。例えば、音声信号の再生処理におけるバーチャルサラウンド機能に本発明を適用する。バーチャルサラウンド機能は、多タップのデジタルフィルタで実現するが、タップ数(FIRフィルタの係数の数)を例えば動作モードAでは8192(2の13乗)タップ、動作モードBでは128(2の7乗)タップ、動作モードCでは32(2の5乗)タップ、となるようにプログラムを構成し、タスクの輻輳数が少なければ動作モードAを設定して負荷を大きくし、音場を拡大するバーチャルサラウンド効果を最大にすればよい。一方、タスクの輻輳数が多くなれば、動作モードB、動作モードCの順に設定して負荷を小さくし、バーチャルサラウンド効果を徐々に少なくするようにすればよい。
【0076】
(実施の形態2)
図9は、本発明の実施の形態2に係るマルチタスク制御装置1bの全体構成を示すブロック図である。なお、実施の形態1に係るマルチタスク制御装置1aと対応する部分に同じ番号を付し、その説明を省略する。
【0077】
このマルチタスク制御装置1bは、実施の形態1に係るマルチタスク制御装置1aと略同構成であり、例えば携帯電話機を複合化するための複数(図示4つ)のタスク(第1のタスク101b、第2のタスク102b、第3のタスク103bおよび第4のタスク104b)をプロセッサ10に並行して処理させるものであって、タスク管理装置20bと、モード設定装置30bとから構成され、プロセッサ10上で動作するリアルタイムOSに組み込まれる機能によって実現される。
【0078】
ここで、実施の形態1のマルチタスク制御装置1aでは、第1のタスク101aと他のタスク102a,103aとが常に輻輳できるように構成され、モード設定装置30aの動作モード設定テーブル31aで第1のタスク101aの動作モードを設定していた。これに対して、この実施の形態2に係るマルチタスク制御装置1bでは、ユーザ設定によって第1のタスク101bと第1のタスク101b以外の他のタスク(第2のタスク102b、第3のタスク103b、第4のタスク104b)との輻輳を禁止したり、許可したりできるように構成され、タスク管理装置20bに設けられた動作モード設定テーブル22に基づいて第1のタスク101bの動作モードが決定される点が、実施の形態1の場合と大きく異なっている。なお、第1のタスク101bと第2のタスク102b〜第4のタスク104bとの輻輳を禁止するモードを以下「輻輳禁止モード」と、輻輳を許可するモードを以下「輻輳許可モード」とも記す。
【0079】
タスク管理装置20bは、ユーザによって設定された輻輳モード(輻輳禁止モード/輻輳許可モード)を示すフラグを格納するフラグ格納部21と、第1のタスク101bの動作モード等を決定するための動作モード設定テーブル22とを備える。このフラグ格納部21に格納されたフラグが輻輳禁止モードを表している場合には、タスク管理装置20bは、第1のタスク101bが起動された後に他のタスクの起動要求があったとき、この他のタスクの起動を禁止する。また、タスク管理装置20bは、フラグが輻輳許可モードを表している場合において、対象タスクの状態変化、即ちタスクの起動や停止の要求があり、起動予定のタスクの中に第1のタスク101bが含まれていると、動作モード設定テーブル22を参照し、第1のタスク101b以外のタスクが輻輳しているか否か等によって、第1のタスク101bの動作モードを決定し、決定した動作モードをモード設定装置30bに通知したり、要求された他のタスクを起動すると起動中の第1のタスク101bの処理量が所定のしきい値未満となるおそれがある場合には、タスク管理装置20bは要求された他のタスクの起動を禁止する。
【0080】
モード設定装置30bは、タスク管理装置20bから通知された動作モードに従うパラメータを第1のタスク101bに設定し、そのパラメータに応じたモードで動作させる。
【0081】
図10は、図9に示される動作モード設定テーブル22の構成例を示す図である。
同図に示されるように動作モード設定テーブル22は、プロセッサ10の処理能力が格納されるレコード221と、プロセッサ10により実行される第1のタスク101b〜第4のタスク104bの負荷が格納されるレコード222〜225と、第1のタスク101bの実行に必要な最低限の処理量を示すしきい値が格納されるレコード226とから構成される。
【0082】
プロセッサ10によって処理される第1のタスク101bは、第1の機能(音楽再生)を行う1つのプログラムであって、オーディオ信号のデコード処理の他、モード設定装置30bによって設定されるパラメータの値に応じて、バーチャルサラウンド再生に用いるデジタルフィルタの段数を変化させ、再生音質が高、中、低の3段階に変化する3つの動作モード(動作モードA、動作モードBおよび動作モードC)を変える。具体的には動作モードAは、デコード処理を行った後、8192タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に250MIPSの負荷をかける。動作モードBは、デコード処理を行った後、128タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に200MIPSの負荷をかける。動作モードCは、デコード処理を行った後、32タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に150MIPSの負荷をかける。
【0083】
また、第2のタスク102bは、デジタル衛星放送の映像をデコードし、モニタに表示(TVビュー)するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。第3のタスク103bは、インターネットを介して所望のサーバに接続し、当該サーバにアップロードされている情報を閲覧(ブラウジング)するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。第4のタスク104bは、例えばインターネットを介して受信した動画付きメールを閲覧するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。
【0084】
さらに、しきい値は、例えば音声データのデコードがリアルタイムに行え、再生音がとぎれることがない値(140MIPS)に設定される。
図11は、図9に示されるマルチタスク制御装置1bが実装される携帯電話機の外観構成例を示す図である。
【0085】
同図に示されるように携帯電話機ex115は、不図示の基地局や、衛星との間で電波を送受信するためのアンテナex201と、本体表面に装着され、ユーザによって操作される複数の操作キーからなる操作部ex204と、CCDカメラ等を含み、動画や、静止画を撮ることが可能なカメラ部ex203と、液晶ディスプレイ等を含み、カメラ部ex203で撮影した映像や、アンテナex201を介して受信したTV映像等を表示する表示部ex202と、マイク等を含み、音声を入力をするための音声入力部ex205と、複数のスピーカ等を含み、音声を再生したり、音楽をサラウンド再生したりするための音声出力部ex208と、ヘッドフォンや外部スピーカを接続するためのピンジャックコネクタex209と、記録メディアex207を装着するためのスロット部ex206等とを備える。
【0086】
ここで、記録メディアex207は、SDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(ElectricallyErasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものであって、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化された音声データまたは復号化された音声データ等を保持する。
【0087】
なお、マルチタスク制御装置1bを構成するタスク管理装置20bやモード設定装置30bは、この携帯電話機ex115本体内部に設けられたプロセッサ、プロセッサによって実行されるマルチタスクOSや、このOS上で実行されるアプリケーション(MPEGエンコーダ・デコーダ用ソフト、ブラウザソフト、メーラソフト等)のプログラム等を予め格納するROM、OSやアプリケーションのプログラム等の実行時にワークエリアを提供したり、ユーザによって設定された輻輳禁止/許可を示すフラグや、動作モード設定テーブル22等を一時的に格納するメモリ等によって実現される。
【0088】
次いでマルチタスク制御装置1bを構成するタスク管理装置20bおよびモード設定装置30bの動作を説明する。
図12は、タスク管理装置20bおよびモード設定装置30bによって実行されるタスク起動・停止処理の詳細を示すフローチャートである。
【0089】
このタスク起動・停止処理は、所定時間ごとに定期的に実行される。
タスク起動・停止処理においては、タスク管理装置20bは、先ずタスク起動要求が有ったか否か判断する(S10)。タスク起動要求が有った場合(S10でYes)、タスク管理装置20bはそのタスクが音楽再生タスクであるか否か判断する(S20)。音楽再生タスクであれば(S20でYes)、タスク管理装置20bはモード設定装置30bと協働して音楽再生タスク起動制御処理を実行し(S30)、タスク起動・停止処理を終了する。これに対して、音楽再生タスクでなければ(S20でNo)、タスク管理装置20bはモード設定装置30bと協働して他のタスク起動制御処理を実行し(S40)、タスク起動・停止処理を終了する。
【0090】
一方、タスク起動要求がなかった場合(S10でNo)、タスク管理装置20bは、タスク停止要求が有ったか否か判断する(S50)。タスク停止要求が有った場合(S50でYes)、タスク管理装置20bは、そのタスクが音楽再生タスクであるか否か判断する(S60)。音楽再生タスクであれば(S60でYes)タスク管理装置20bは、音楽再生タスクを停止し(S70)、タスク起動・停止処理を終了する。これに対して、音楽再生タスクでなければ(S60でNo)、タスク管理装置20bはモード設定装置30bと協働して他のタスク停止制御処理を実行し(S80)、タスク起動・停止処理を終了する。
【0091】
他方、タスク停止要求でもなければ(S50でNo)、タスク管理装置20bはタスク起動・停止処理を終了する。
図13は、図12に示される音楽再生タスク起動制御処理(S30)のサブルーチンの処理を示すフローチャートである。
【0092】
この音楽再生タスク起動制御処理においては、タスク管理装置20bは先ず、起動中の他のタスクないか否か判断する(S301)。起動中の他のタスクない場合(S310でYes)、タスク管理装置20bは音楽再生タスクの動作モードを「A」(高品質)に決定し(S302)、モード設定装置30bに動作モードAを選択させる。そしてタスク管理装置20bは、フラグ格納部21を参照し輻輳禁止モードが設定されているか否か判断する(S303)。輻輳禁止モードが設定されている場合(S303でYes)、タスク管理装置20bは音楽再生タスク(動作モード「A」)を輻輳禁止モードで起動し(S304)、メインルーチンにリターンする。これに対して、輻輳禁止モードが設定されていない場合(S303でNo)、即ち輻輳許可モードが設定されている場合、タスク管理装置20bは、音楽再生タスクを輻輳許可モードで起動し(S305)、メインルーチンにリターンする。
【0093】
一方、起動中の他のタスクがある場合(S301でNo)、タスク管理装置20bは、プロセッサ10の処理能力から他のタスクの処理量を減算することにより、音楽再生タスクに割り当てることができる処理量(割り当て可能処理量)を算出し(S306)、算出した割り当て可能処理量がしきい値以上であるか否かを判断する(S307)。しきい値以上である場合(S307でYes)、割り当て処理量に基づいて音楽再生タスクの動作モードを「B」および「C」(中・低品質)のいずれかに決定し(S308)、モード設定装置30bに動作モードBおよびCのいずれかを選択させる。この決定は、次のように行われる。割り当て処理量が動作モードBの処理量以上であれば、動作モードBに決定し、割り当て処理量が動作モードBの処理量未満であれば、動作モードCに決定する。
【0094】
動作モードの決定が終わると、タスク管理装置20bは、輻輳禁止モードが設定されているか否か判断する(S309)。輻輳禁止モードが設定されている場合(S309でYes)、タスク管理装置20bは、音楽再生タスク(動作モード「B」,「C」)を輻輳禁止モードで起動し(S310)、メインルーチンにリターンする。これに対して、輻輳禁止モードが設定されていない場合(S309でNo)、タスク管理装置20bは、音楽再生タスク(動作モード「B」,「C」)を輻輳許可モードで起動し(S311)、メインルーチンにリターンする。
【0095】
他方、割り当て可能処理量がしきい値以上でない場合、即ち割り当て可能処理量がしきい値未満である場合(S307でNo)、タスク管理装置20bは、音楽再生タスクの起動を禁止し(S312)、メインルーチンにリターンする。これは、音楽再生タスクを起動させてもリアルタイムのデコード処理が行えず、音がとぎれた音楽再生しかできないためである。
【0096】
図14は、図12に示される他のタスク起動制御処理(S40)のサブルーチンの処理を示すフローチャートである。
他のタスク起動要求があった場合、タスク管理装置20bは先ず音楽再生タスクが実行中か否か判断する(S401)。判断の結果音楽再生タスクが実行中である場合(S401でYes)、タスク管理装置20bはこの音楽再生タスクが輻輳禁止モードで起動中であるか否か判断する(S402)。輻輳禁止モードで起動されている場合(S402でYes)、要求された他のタスクの起動を禁止し(S403)、メインルーチンにリターンする。この処理により、起動中の音楽再生タスクの動作モードが変更されることがない。従って、音質が変化することのない音楽再生が最後まで継続される。
【0097】
一方、起動中の音楽再生タスクが輻輳禁止モードでない、即ち輻輳許可モードで起動されている場合(S402でNo)、タスク管理装置20bは、動作モード設定テーブル22を参照し、要求された他のタスクを起動した場合に音楽再生タスクに対して割り当てることができる処理量(割り当て可能処理量)を算出し(S404)、算出した割り当て可能処理量がしきい値未満であるか否か判断する(S405)。しきい値未満であると(S405でYes)、タスク管理装置20bは、要求された他のタスクの起動を禁止し、メインルーチンにリターンする。この処理により、音楽再生タスクに対して割り当てられる処理量が必ずしきい値以上であることが確保される。従って、音がとぎれることなく音楽再生が継続される。
【0098】
これに対して割り当て可能処理量がしきい値未満でなければ(S405でNo)、即ちしきい値以上あれば、ステップS404で算出した割り当て可能処理量に基づいて音楽再生タスクの動作モードを「B」または「C」を決定し、モード設定装置30bは動作モードを「B」または「C」に遷移させる(S407)。具体的には、この遷移は、次のように行われる。割り当て処理量が動作モードBの処理量以上であれば、動作モードBに遷移させ、割り当て処理量が動作モードBの処理量未満であれば、動作モードCに遷移させる。この場合には、負荷の軽い動作モードに遷移されるため、音質が低下する。動作モードの遷移が終わると、タスク管理装置20bは、要求された他のタスクの起動を許可し(S408)、メインルーチンにリターンする。これにより、音楽再生タスクとともに、要求された他のタスクが時分割で実行される。
【0099】
他方、音楽再生タスクが起動していない場合(S401でNo)、要求された他のタスクの起動を許可し(S409)、メインルーチンにリターンする。これにより、要求された他のタスクの処理が行われる。
【0100】
図15は、図12に示される他のタスク停止制御処理(S80)のサブルーチンの処理を示すフローチャートである。
他のタスク停止要求があった場合、タスク管理装置20bは、先ず他のタスクを停止させ(S801)、音楽再生タスクが起動中か否か判断する(S802)。起動中でなければ(S802でNo)、メインルーチンにリターンする。
【0101】
一方、起動中であれば(S802でYes)、音楽再生タスクが輻輳禁止モードで起動されているか否か判断する(S803)。輻輳禁止モードで起動されている場合(S803でYes)、メインルーチンにリターンする。即ち、処理能力に余裕ができても音楽再生タスクにその処理能力を回さないでメインルーチンにリターンする。従って、起動中の音楽再生タスクの動作モードが変更されることがないので、音質が変化することなく音楽再生が最後まで継続される。
【0102】
他方、輻輳禁止モードでない場合(S803でNo)、即ち、輻輳許可モードである場合、タスク管理装置20bは、音楽再生タスクに対して割り当て可能な処理量(割り当て可能処理量)を算出し(S804)、音楽再生タスクを動作モード「A」または「B」を決定し、モード設定装置30bは動作モードを「B」または「C」に遷移させ(S805)、メインルーチンにリターンする。具体的には、この遷移は、次のように行われる。割り当て処理量が動作モードAの処理量以上であれば動作モードAに遷移させ、割り当て処理量が動作モードAの処理量未満であれば動作モードBに遷移させる。この場合には、負荷の重い動作モードに遷移されるため、音質が向上する。
【0103】
図16は、輻輳許可モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。具体的には、音楽再生タスクが輻輳許可モードで起動された後に他のタスクが順次さらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係が示されている。
【0104】
図16に示される時刻T10以前は、タスクが何も起動されていない状態である。この状態で、時刻T10において、音楽再生タスクがタスク管理装置20bによって起動された場合、他のタスクが何も起動されていないので、モード設定装置30bは、音楽再生タスクに対し、動作モードAを設定する。これによって、プロセッサ10に対する負荷は、250MIPSということになる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクだけが実行される場合には、図17(a)に示されるように携帯電話機の画面にその動作モード「A」と、再生された音楽の曲名や歌手等が表示される。
【0105】
次に、時刻T11において、他のタスク(例えば、TVビュー)がタスク管理装置20bによってさらに起動されたとする。この場合、TVビューが必要とする演算負荷50MIPSがプロセッサ10に加わることになる。この場合、音楽再生タスクの動作モードを「A」のままに維持すると、プロセッサ10にかかる負荷が300MIPSと過大となり破綻することになる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し、動作モードを「B」(200MIPS)に決定し、音楽再生タスクを動作モードBで動作させる。これにより、全体では250MIPSの負荷がプロセッサ10にかかることになる。
【0106】
即ち、この場合は、プロセッサ10に対する負荷に動作モードAだけのような余裕がないので、プロセッサ10が破綻を来さない範囲で一番音質の高い動作モード、中音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクとTVビューとが輻輳した場合には、図17(b)に示されるように画面に例えば野球中継の映像とともにその動作モード「B」が表示される。
【0107】
次に、時刻T12において、さらに他のタスク(例えば、ブラウジング)がタスク管理装置20bによってさらに起動されたとする。この場合、ブラウジングが必要とする負荷50MIPSがプロセッサ10に加わることになる。この場合、音楽再生タスク101bの動作モードを「B」のままにしておくと、プロセッサ10にかかる負荷が300MIPSとなり、プロセッサ10が破綻状態となる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「C」(150MIPS)と決定し、音楽再生タスクを動作モードCで動作させる。これにより、全体では250MIPSの負荷がプロセッサ10にかかることになる。
【0108】
即ち、この場合は、プロセッサ10が破綻を来さない範囲で一番音質の高い動作モード、低音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクとTVビューとブラウジングとが輻輳した場合には、図17(c)に示されるように画面に例えば野球中継の映像、ブラウジングにより得られた情報とともにその動作モード「C」が表示される。
【0109】
次に、時刻T13において、さらに他のタスク(例えば、動画付きメールの閲覧)の起動要求がタスク管理装置20bにあったものとする。この場合、動画付きメールの閲覧が必要とする負荷50MIPSがプロセッサ10にさらに加わることになる。この場合、音楽再生タスクの動作モードを「C」からさらに下げると、しきい値未満になり、再生音がとぎれることになる。そこで、タスク管理装置20bは、動画付きメールの閲覧のタスクを起動禁止にしたのである。これによって、音楽再生タスクの動作モードが「C」に維持され、音がとぎれることなく再生される。このような音楽再生タスクとTVビューとブラウジングとが輻輳しているときにさらに動画付きメールの閲覧要求があったときに起動が禁止された場合には、図17(d)に示されるように画面に禁止の理由等がさらに表示される。
【0110】
次に、時刻T14において、ブラウジングがタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクと、TVビューとだけが起動されるので、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「B」(200MIPS)と決定し、音楽再生タスクを動作モードBで動作させる。
【0111】
次に、時刻T15において、動画付きメールの閲覧がタスク管理装置20bによって起動されたとする。この場合、動画付きメールの閲覧が必要とする負荷50MIPSがプロセッサ10に加わることになる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「C」(150MIPS)と決定し、音楽再生タスクを動作モードCで動作させる。
【0112】
次に、時刻T16において、動画付きメールの閲覧がタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクと、TVビューとだけが起動されるので、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「B」(200MIPS)と決定し、音楽再生タスクを動作モードBで動作させる。
【0113】
次に、時刻T17において、TVビューがタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクだけが起動されるので、タスク管理装置20bは、音楽再生タスクを動作モードAで動作させる。即ち、この場合は、プロセッサ10に対する負荷に余裕が生じるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。
【0114】
次に、時刻T18において、音楽再生タスクがタスク管理装置20bによって停止されたと仮定する。この場合、処理すべきタスクがないので、タスク管理装置20bは、モード設定装置30bに音楽再生タスクに対する動作モードの設定を中止させ、タスクを全て停止する。即ち、この場合は、プロセッサ10に対する負荷が0(アイドリング)となり、プロセッサ10に対する演算負荷は、0MIPSということになる。
【0115】
図18は、音楽再生タスクが輻輳禁止モードで起動された後に他のタスクの起動要求がされた場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0116】
図18に示される時刻T20以前は、何もタスクが起動されていない状態である。この状態で、時刻T20において、音楽再生タスクを起動する場合、他のタスクが何も起動されていないので、タスク管理装置20bは、音楽再生タスクを動作モードAで動作させる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。
【0117】
次に、時刻T21において、他のタスク(例えば、TVビュー)の起動要求がタスク管理装置20bにされたとする。この場合、音楽再生タスクが輻輳禁止モードで起動されているので、タスク管理装置20bは、TVビューの起動を禁止する。これによって、音楽再生タスクが他のタスクと輻輳されることがない。また、モード設定装置30bは、音楽再生タスクの動作モードを変更することなく、「A」に維持したままにする。この結果、音質が変更されることなく、一定に維持される。
【0118】
次に、時刻T22において、音楽再生タスクがタスク管理装置20bによって停止されたと仮定する。この場合、処理すべきタスクがないので、タスク管理装置20bは、モード設定装置30bに音楽再生タスクに対する動作モードの設定を中止させ、タスクを全て停止する。即ち、この場合は、プロセッサ10に対する負荷が0(アイドリング)となり、プロセッサ10に対する演算負荷は、0MIPSということになる。
【0119】
以上のように本実施の形態2に係る発明によれば、音楽再生タスクについて高音質用、中音質用、低音質用等プロセッサ10における単位時間当たりの負荷が異なる動作モードが予め用意されており、タスク管理装置20bは、輻輳許可モードにおいて他のタスクの起動・停止の状態変化ごとに音楽再生タスクの動作モードを破綻が生じない範囲で負荷の高い動作モードに設定しなおすようにしている。即ち、タスクが輻輳し多大の処理負荷がプロセッサにかかる場合は、しきい値未満とならない範囲で音楽再生タスクの処理負荷を軽減するようにしている。このため、音楽再生タスクが起動されている限り、プロセッサ10の処理能力Nmbxを超えることなく、単位時間当たりの負荷をプロセッサ10にかけることができる。
【0120】
即ち、全体の負荷を軽減でき、かつ、負荷に余裕がある場合は、音楽再生タスクに多くの処理資源を割り当て高性能な機能を実現できることとなる。従って、プロセッサの処理能力を超えない範囲で一番高い負荷の動作モードを音楽再生タスクに設定するので、プロセッサの処理能力を最大限に利用することができ、プロセッサ10の使用効率を高めることができる。しかも、音楽再生タスクの処理量がしきい値未満になる場合には他のタスクの起動を禁止し、しきい値未満とならない範囲で音楽再生タスクの処理負荷を軽減するようにしているので、再生音がとぎれることもない。
【0121】
また、タスク管理装置20bは、輻輳禁止モードにおいて音楽再生タスクが起動された後に他のタスクの起動要求があった場合、その他のタスクの起動を禁止するので、再生音が最後まで一定に保たれる。
【0122】
なお、この実施の形態2においては、タスク管理装置20bは動作モード設定テーブル22に基づいて第1のタスク101bの動作モードを決定したが、図19に示される動作モード設定テーブル31bに基づいて第1のタスク101bの動作モードを決定してもよい。なお、図3に示される動作モード設定テーブル31aと同様、この動作モード設定テーブル31bの図中に示される「○」はタスクの起動状態を、「×」はタスクの停止状態を、「−」は第1のタスク101bに対する動作モードを設定しないことを、それぞれ示しており、さらに「△」は起動禁止を示しており、第1のタスク101bが起動されない場合もあわせて図示されている。この動作モード設定テーブル31bによっても第1のタスク101bの動作モードを簡単に決定することができる。
【0123】
また、この動作モード設定テーブル31bをモード設定装置30bに設けるようにしてもよい。この場合には、輻輳許可モードにおいてタスク管理装置20bは対象タスクの状態変化、即ちタスクの起動や停止の予定をモード設定装置30bに通知し、モード設定装置30bは起動予定のタスクの中に第1のタスク101bが含まれていると、動作モード設定テーブル31bを参照し、第1のタスク101b以外のタスクが輻輳しているか否か等によって、第1のタスク101bの動作モードを決定し、決定した動作モードに応じたパラメータを第1のタスク101bに設定したり、要求された他のタスクをタスク管理装置20bが起動すると起動中の第1のタスク101bの処理量が所定のしきい値未満となるおそれがある場合には、モード設定装置30bは要求された他のタスクの起動を禁止するようタスク管理装置20bに通知し、通知を受けたタスク管理装置20bは要求された他のタスクの起動を禁止すればよい。
【0124】
【発明の効果】
以上の説明から明らかなように、本発明に係るマルチタスク制御装置によれば、プロセッサに余力がある場合には第1タスクの処理できる機能の選択の範囲(選択の幅)が広がり、余力がない場合には選択の幅が狭まることになるので、モード制御手段は、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることができる。従って、タスクの輻輳状態の如何に拘わらず、プロセッサの破綻を確実に回避しつつ、再生された音質を向上することができるという効果が奏される。
【0125】
また、前記モード制御手段は、前記プロセッサに処理される対象タスクの状態変化を検出する状態変化検出手段と、前記状態変化後に起動させるタスクを特定する特定手段と、前記特定手段によって特定されたタスクの中に第1タスクが含まれている場合、第1タスクの動作モードを決定する動作モード決定手段とを備えるようにしているので、対象タスクの状態変化が生じる場合に、第1タスクの動作モードの決定を適切なタイミングに行うことができる。
【0126】
また、前記動作モード決定手段は、前記特定手段によって特定されたタスクと前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定したり、また、前記動作モード決定手段は、前記特定手段によって特定されたタスクの数と前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしたりしているので、第1タスクの動作モードを簡単に決定することができる。
【0127】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な負荷を算出する負荷算出手段と、前記負荷算出手段が算出した負荷と前記第1タスクの各動作モードの処理に要する負荷とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、第1タスクの動作モードを決定するようにしたり、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記負荷算出手段が算出した負荷が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する起動禁止手段とを備えるようにしてているので、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0128】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する起動禁止手段とを備えるので、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0129】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な命令数を算出する命令数算出手段と、前記命令数算出手段が算出した命令数と前記第1タスクの各動作モードの処理に要する命令数とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、動作モードを決定するようにしたり、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記命令数算出手段が算出した命令数が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する禁止手段とを備えるようにしているので、これによっても、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0130】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する禁止手段とを備えるので、これによっても、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0131】
さらに、前記モード制御手段は、前記動作モード決定手段が決定した動作モードに対応付けられたパラメータを第1タスクに設定し、当該パラメータに対応する動作モードで第1タスクをプロセッサに処理させるので、これによって、パラメータの設定という簡単な処理で第1タスクの動作モードを容易に遷移させ、負荷や命令数を変えることができる。
【0132】
また、上記の課題を解決するため、本発明に係る音楽データ再生装置は、複数の動作モードを有する音楽再生タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置を備える音楽データ再生装置であって、前記マルチタスク制御装置は、前記音楽再生タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記音楽再生タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる最も音質の高い機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備え、具体的には、前記音楽データ再生装置は、携帯性を有し、前記プロセッサに並行して処理される音楽再生タスク以外の他のタスクは、TVビュー、ブラウジング、メールおよび通話の少なくともいずれか1つであることを特徴とするので、これによって、携帯電話機等の携帯性の高い装置を、音質の高い音楽データ再生装置として使用しながら、TVビューや、ブラウジング、メールおよび通話を並行して行うことができる。
【0133】
以上のように本願発明によれば、演算資源に余裕のあるときは、高音質なオーディオ信号処理が行え、演算資源に余裕がないときでも、演算資源を軽減し、破綻を生じない範囲でかつ最も高い音質で処理を円滑に行うことができるので、本願発明の実用的価値は極めて高い。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るマルチタスク制御装置1aの構成を示すブロック図である。
【図2】図1に示される第1のタスク101aの動作モードA〜動作モードCのプロセッサ10に対する負荷と音質との関係を示す図である。
【図3】図1に示される動作モード設定テーブル31aの詳細構成を示す図である。
【図4】プロセッサの処理能力と、第1のタスク101aの動作モードA〜動作モードCとの関係を示す図である。
【図5】マルチタスク制御装置1aによる動作を示す図である。
【図6】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図7】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図8】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図9】本発明の実施の形態2に係るマルチタスク制御装置1bの構成を示すブロック図である。
【図10】図9に示される動作モード設定テーブル22の詳細構成を示す図である。
【図11】図9に示されるマルチタスク制御装置が実装される携帯電話機の外観構成例を示す図である。
【図12】タスク管理装置20bおよびモード設定装置30bによって実行されるタスク起動・停止処理の詳細を示すフローチャートである。
【図13】図12に示される音楽再生タスク起動制御処理(S30)のサブルーチンの処理を示すフローチャートである。
【図14】図12に示される他のタスク起動制御処理(S40)のサブルーチンの処理を示すフローチャートである。
【図15】図12に示される他のタスク停止制御処理(S80)のサブルーチンの処理を示すフローチャートである。
【図16】輻輳許可モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。
【図17】携帯電話機の画面の表示例を示す図であり、特に図17(a)は音楽再生タスク実行時の表示例を示す図であり、図17(b)は音楽再生タスクとTVビューとが輻輳した場合の表示例を示す図であり、図17(c)は音楽再生タスクとTVビューとブラウジングとが輻輳した場合の表示例を示す図であり、図17(d)は音楽再生タスクとTVビューとブラウジングとが輻輳した場合においてさらに動画付きメールの閲覧要求があったときの表示例を示す図である。
【図18】輻輳禁止モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。
【図19】動作モード設定テーブルの他の詳細構成を示す図である。
【符号の説明】
1a,1b マルチタスク制御装置
10 プロセッサ
20a,20b タスク管理装置
21 フラグ格納部
22,31a,31b 動作モード設定テーブル
30a,30b モード設定装置
101a,101b 第1のタスク
102a,102b 第2のタスク
103a,103b 第3のタスク
104b 第4のタスク
【発明の属する技術分野】
本発明は、複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置および音楽データ再生装置に関する。
【0002】
【従来の技術】
近年、音声、オーディオ、画像等のデータ圧縮処理を高速(例えば、285MIPS)に処理することができるプログラム制御方式の汎用デジタルシグナルプロセッサ(DSP)が開発され、デジタル携帯電話機や、モバイルAV機器などの他、モデム装置、CD装置、MD装置、DVC装置、DVD装置などに幅広く用いられている。このようなプロセッサを搭載したコンピュータ装置、例えば携帯電話機では、通話用のプログラムをプロセッサに実行させることによって通話機能を実現させているが、この携帯電話機に対して、例えば音楽録音・再生装置としても利用したい、TV受信機としても利用したい、しかも音楽を録音しながらTVを視聴している最中に電話がかかってくると通話も並行して行いたいといった要望がよせられている。このため、この種のコンピュータ装置に機能の拡張・変更が容易なマルチタスク制御装置を実装し、種々の機能を実現する複合化が図られつつある。
【0003】
このマルチタスク制御装置は、例えば、音楽録音や再生用のタスク、TV受信用のタスク、通話用のタスクの3つのタスクのそれぞれを処理能力が高いプロセッサに並行して処理させるものであって、タスクの起動および停止を管理するタスク管理装置等から成り、このタスク管理装置等はプロセッサ上で動作するリアルタイムOSが提供する機能により実現される。
【0004】
ところで、音楽を録音や、再生しながらTVを視聴している最中に通話もしたいといった上記要望に応えるためには、TV受信用のタスクの処理に例えば150MIPS、通話用のタスクの処理に例えば100MIPSの負荷がプロセッサにかかると仮定すると、プロセッサの余力は35MIPSとなる。
【0005】
そこで、従来では、輻輳したタスク処理の破綻を回避すべく、30MIPS程度の負荷で収まるように命令数をできるだけ少なくした音楽録音や再生用のタスクを作成し、プロセッサの処理能力の範囲内で、音楽録音・再生や、TV受信、通話を輻輳して処理することができるようにしている。
【0006】
なお、デジタルオーディオ信号を複数の周波数帯域に分割し、各帯域ごとに符号化を行う音声符号化方式であって、上記分割された各帯域に対するビット割り当て情報を生成し、それぞれ処理量の異なるビット割り当て手段を複数有する音声符号化方式がある。そして、外部からの制御情報に基づいて、上記複数のビット割り当て手段の中から、所定のビット割り当て手段を用いて処理がなされるように、使用するビット割り当て手段を切り替えてビット割り当てを実行して、符号化を行うことを特徴とする音声符号化方式がある(例えば、特許文献1参照。)。これによって、この音声符号化方式では、パソコンのCPU処理能力および他のアプリケーションのCPU占有率に左右されず、実時間で音のときれがない高音質の符号化データの作成を実現している。
【0007】
【特許文献1】
特開2000−78018号公報(第1頁、第1図)
【0008】
【発明が解決しようとする課題】
しかしながら、このようなマルチタスク制御装置や、このマルチタスク制御装置を実装する音楽データ再生装置においても、音楽を録音・再生しながらTVを視聴している最中に通話もするといった事態は、非常にまれにしか起こらないケースであり、音楽の録音・再生機能等単機能だけを使う使われ方が通常行われる。このような単機能だけの利用時、例えば音楽録音・再生時には、その音楽録音/再生のタスクの処理に30MIPSの負荷がプロセッサにかかるだけで、255MIPSもの処理能力を余した贅沢な使い方がなされている。
【0009】
ところで、音声信号のエンコード処理やデコード処理はスケーラビリティが非常に高い。例えば、エンコード処理やデコード処理に要する命令数が少なく、プロセッサに対する負荷が上記のような30MIPS程度の低さであると音質が低いが、エンコード処理に要する命令数が多くなり、プロセッサに対する負荷が200MIPS程度にまで高くなるほど、原音と差がないほどにまで音質が高くなる性質を有している。
【0010】
従って、従来では、わざわざ処理能力の高いプロセッサが搭載されているにも拘わらず、その性能が十分に発揮されておらず、プロセッサにかかる負荷が低い分、品質(音質)が悪いという問題があった。
【0011】
この問題を解決するために、音楽録音・再生用のタスクの命令数を多くし、音楽録音用のタスクの処理に200MIPSの負荷がプロセッサにかかるようにすることで、プロセッサの性能を十分に発揮させ、音質を高めることが考えられる。
【0012】
しかしながら、この場合には、音楽録音・再生中にTVを視聴したり、通話したりすると、負荷が処理能力を超えてしまい、破綻状態となってしまう。
このような事態は、タスクの種別の如何に拘わらずいえることであって、破綻と品質とのトレードオフが生じる。
【0013】
なお、上記公報に開示される音声符号化方式は、携帯電話のプロセッサよりも数十倍〜数百倍の処理能力を有するCPUの下で利用されるので、上記の問題点が生じることはほとんどないと考えられるのに対して、処理能力が高くなったとはいってもパソコンに用いられるCPUの数十分の1〜数百分の1の処理能力のプロセッサを用いざるを得ない場合には、上記の問題点は重要な課題となる。
【0014】
本発明は、このような従来の問題点に鑑みてなされたものであって、タスクの輻輳状態の如何に拘わらず、比較的処理能力が低いプロセッサの破綻を回避しつつ品質を向上することができるマルチタスク制御装置および音楽データ再生装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記の課題を解決するため、本発明に係るマルチタスク制御装置は、複数の動作モードを有する第1タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置であって、前記第1タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備えることを特徴とする。具体的には、前記第1タスクは、デジタルオーディオ信号を再生処理するタスクであり、前記機能は、音質を制御する機能であり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も高い音質に対応する動作モードで第1タスクをプロセッサに処理させることを特徴とすることができる。
【0016】
この結果、プロセッサに余力がある場合には第1タスクの処理できる機能の選択の範囲(選択の幅)が広がり、余力がない場合には選択の幅が狭まることになる。これにより、前記モード制御手段は、前記プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることができる。従って、タスクの輻輳状態の如何に拘わらず、プロセッサの破綻を確実に回避しつつ、再生された音質を向上することができる。
【0017】
ここで、前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い機能であり、前記モード制御手段は、前記最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。また、前記機能は、前記プロセッサにかかる負荷が大きくなると共に高くなり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も大きい負荷に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。
【0018】
また、前記機能は、前記プロセッサが処理する命令数が多くなると共に高くなり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多い命令数に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。さらに、前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い音質を制御するフィルタ機能であり、前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多いタップ数のフィルタ処理に対応する動作モードで第1タスクをプロセッサに処理させることを特徴としてもよい。
【0019】
また、前記モード制御手段は、前記プロセッサに処理される対象タスクの状態変化を検出する状態変化検出手段と、前記状態変化後に起動させるタスクを特定する特定手段と、前記特定手段によって特定されたタスクの中に第1タスクが含まれている場合、第1タスクの動作モードを決定する動作モード決定手段とを備えることを特徴とすることができる。これによって、対象タスクの状態変化が生じる場合に、第1タスクの動作モードの決定を適切なタイミングに行うことができる。
【0020】
この場合、前記動作モード決定手段は、前記特定手段によって特定されたタスクと前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしてもよい。また、前記動作モード決定手段は、前記特定手段によって特定されたタスクの数と前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしてもよい。従って、第1タスクの動作モードを簡単に決定することができる。
【0021】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な負荷を算出する負荷算出手段と、前記負荷算出手段が算出した負荷と前記第1タスクの各動作モードの処理に要する負荷とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、第1タスクの動作モードを決定するようにしてもよい。この場合、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記負荷算出手段が算出した負荷が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する起動禁止手段とを備えることを特徴とすることができる。これによって、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0022】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する起動禁止手段とを備えることを特徴とすることができる。これによって、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0023】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な命令数を算出する命令数算出手段と、前記命令数算出手段が算出した命令数と前記第1タスクの各動作モードの処理に要する命令数とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、動作モードを決定することを特徴としてもよい。この場合に、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記命令数算出手段が算出した命令数が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する禁止手段とを備えることを特徴とすることができる。これによっても、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0024】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する禁止手段とを備えることを特徴とすることができる。これによっても、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0025】
さらに、前記モード制御手段は、前記動作モード決定手段が決定した動作モードに対応付けられたパラメータを第1タスクに設定し、当該パラメータに対応する動作モードで第1タスクをプロセッサに処理させることを特徴とすることもできる。これによって、パラメータの設定という簡単な処理で第1タスクの動作モードを容易に遷移させ、負荷や命令数を変えることができる。
【0026】
また、上記の課題を解決するため、本発明に係る音楽データ再生装置は、複数の動作モードを有する音楽再生タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置を備える音楽データ再生装置であって、前記マルチタスク制御装置は、前記音楽再生タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記音楽再生タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる最も音質の高い機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備えることを特徴とする。具体的には、前記音楽データ再生装置は、携帯性を有し、前記プロセッサに並行して処理される音楽再生タスク以外の他のタスクは、TVビュー、ブラウジング、メールおよび通話の少なくともいずれか1つであることを特徴とすることができる。これによって、携帯電話機等の携帯性の高い装置を、音質の高い音楽データ再生装置として使用しながら、TVビューや、ブラウジング、メールおよび通話を並行して行うことができる。
【0027】
以上のように本願発明によれば、演算資源に余裕のあるときは、高音質なオーディオ信号処理が行え、演算資源に余裕がないときでも、演算資源を軽減し、破綻を生じない範囲でかつ最も高い音質で処理を円滑に行うことができるので、本願発明の実用的価値は極めて高い。
【0028】
なお、本発明は、上記マルチタスク制御装置が備える全ての手段を、ステップとするマルチタスク制御方法として実現したり、その全ての手段としてコンピュータに機能させるプログラムとして実現したりすることもできる。そして、そのプログラムをDVD等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのはいうまでもない。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態に係るマルチタスク制御装置を図面に基づいて説明する。
(実施の形態1)
図1は、本実施の形態1に係るマルチタスク制御装置1aの全体構成を示すブロック図である。
【0030】
このマルチタスク制御装置1aは、例えば携帯電話機を複合化するための複数(図示3つ)のタスク(第1のタスク101a、第2のタスク102aおよび第3のタスク103a)のそれぞれをプロセッサ10に並行して処理させるものであって、タスク管理装置20aと、モード設定装置30aとから構成され、プロセッサ10上で動作するリアルタイムOSに組み込まれる機能によって実現される。
【0031】
プロセッサ10によって処理される第1のタスク101aは、第1の機能(例えば、音楽録音(オーディオ信号のエンコード))を実現する1つのプログラムであって、ISO/IEC 13818−7 Advanced Audio Coding(これを以下、単に「AAC」とも記載する。)の規格に従い、モード設定装置30aによって設定されるパラメータの値に応じて、オーディオ信号のエンコード処理に用いる符号化のツール(例えば、聴覚モデル、TNS(Temporal Noise Shaping)、予測、M/S(Middle/Side)ステレオ、AAC量子化・符号化等)のアルゴリズムを変化させ、音質が高、中、低の3段階に変化する3つの動作モード(動作モードA、動作モードBおよび動作モードC)からなる。即ち、動作モードAは、動作モードBや動作モードCより多くの負荷をプロセッサ10にかけて音質向上を図る動作モードである。より詳しくは、動作モードC、動作モードB、動作モードAの順番に最高音質に対する追求する度合いが高くなるアルゴリズムが使用される結果、この順番に演算量(命令数)が多くなってプロセッサ10に対する負荷が大きくなり、この順に再生される音質が高くなる。
【0032】
具体的には、パラメータの値が「1」である場合、第1のタスク101aは、プロセッサ10に対して200MIPSの負荷N11をかける動作モードAを実行する。この動作モードAの場合には、第1のタスク101aは、原音と差がない程度の最高音質の再生音が得られる圧縮音声データを生成する。また、パラメータの値が「2」である場合、第1のタスク101aは、プロセッサ10に対して50MIPSの負荷N12をかける動作モードBを実行する。この動作モードBの場合には、第1のタスク101aは、動作モードAの場合よりも少し劣る音質(中音質)の再生音が得られる圧縮音声データを生成する。
【0033】
さらに、パラメータの値が「3」である場合、第1のタスク101aは、プロセッサ10に対して30MIPSの負荷N13をかける動作モードCを実行する。この動作モードCの場合には、第1のタスク101aは、動作モードBの場合よりも少し劣る音質(低音質)の再生音が得られる圧縮された音声データを生成する。
【0034】
第2のタスク102aは、プロセッサ10に対して例えば単位時間当たり150MIPSの負荷N2をかけることによって、第2の機能(例えば、TV受信、即ちビデオデコード(Vdec)およびオーディオデコード(Adec))を実現するためのプログラムである。
【0035】
さらに、第3のタスク103aは、プロセッサ10に対して例えば単位時間当たり100MIPSの負荷N3をかけることによって、第3の機能(例えば、(通話(SpeachおよびEcho Cancel))を実現するプログラムである。
【0036】
プロセッサ10は、第1のタスク101a〜第3のタスク103aのいずれか1つ或いは2以上の組み合わせを、例えば単位時間当たり285MIPS=Nmaxで処理する能力を有するプロセッサである。
【0037】
タスク管理装置20aは、各タスク101a〜103aの起動および停止を管理する。より詳しくは、タスク管理装置20aは、各タスクの状態を示す区分コードと、各タスクの先頭番地・処理を中断したときのフラグやレジスタの退避領域などから構成されるタスク・コントロール・ブロック(TCB)や、ディスパッチャー、スケジューラ等を備えており、音楽を録音するためのボタンが操作されたり、TVを視聴するためのボタンが操作されたり、電話がかかってきてオフフックボタンが操作されるようなイベントが発生した場合や、終了した場合に、次に起動すべきタスクや停止すべきタスクを特定し、この特定によってプロセッサ10に処理される対象タスクの状態変化を検出し、検出された対象タスクの状態変化をモード設定装置30aに通知したり、TCBによって各タスク101a〜103aを予定通りに起動したり停止したりする。
【0038】
モード設定装置30aは、動作モード設定テーブル31aを備えており、タスク管理装置20aから対象タスクの状態変化、即ちタスクの起動や停止の予定の通知があり、起動予定のタスクの中に第1のタスク101aが含まれていると、動作モード設定テーブル31aを参照し、第1のタスク101a以外のタスクが輻輳しているか否か等によって、第1のタスク101aの動作モードを決定し、決定した動作モードに応じたパラメータを第1のタスク101aに設定する。
【0039】
図2は、図1に示される動作モードA〜動作モードCのプロセッサ10に対する単位時間当たりの負荷と音質との関係を示す図である。
ここで、AACは、オーディオ信号の符号化されたビットストリームの一部分が用いられても音声が再生可能なように、階層化(スケーラビリティ)された構造を持っており、異なる複数のアルゴリズム、即ち全てのツールを組み合わせることにより、業務用のエンコーダのように最高品質を追求したアルゴリズムを採用したり、ツールの一部(例えば予測ツール)を省略したり、簡略化したりすることにより、SDプレーヤのように業務用のエンコーダよりも品質を落としたアルゴリズムや、ポータブルCDプレーヤのようにSDプレーヤよりも品質を落としたアルゴリズムを採用したりすることができる。
【0040】
例えば、高音質なオーディオのエンコード処理では、聴感的な音質向上のために、聴覚のマスキング現象などを模擬した聴覚モデルという処理が行われる(AAC参照)。ところが、原音と差がない再生音を得るためのエンコード処理を行うと、命令数が膨大となり、この処理には多大の負荷が必要となる。これに対して、この処理を簡略化すると、簡略化の度合いに応じて音質の劣化が徐々に進む一方、命令数が大幅に減少し、この処理に要する負荷を大幅に削減できる。このような場合、聴覚モデルを十分に考慮し、この原音と差がない再生音を得るためのエンコード処理を行うためのプログラムが動作モードAである。そして、第1タスク101aの処理を動作モードAより簡略化した動作モードが「B」であり、この動作モードBをさらに簡略化した動作モードが「C」である。
【0041】
また、高音質なオーディオエンコードでは、エンコード時の圧縮歪をできるだけ聴感上気にならないレベルに押さえ込むために、エンコードパラメータを繰り返し変更したり、修正したりしながら圧縮処理が行われる(AAC参照)。これにも多大の負荷が必要である。これに対して、この処理を簡略化すると、簡略化の度合いに応じて音質の劣化が徐々に進む一方、負荷を大幅に削減できる。このような場合、例えば、エンコードパラメータ変更、修正の繰り返し回数を多数行うモードが動作モードAであり、それを簡略化したモードが動作モードB,動作モードCということになる。
【0042】
これらの具体例として、動作モードAのプログラムでは、聴覚特性として周波数成分ごとに最低可聴レベルが異なること(いわゆるラウドネス特性があること)、マスキング特性があること、絶対時間のずれや位相の違いに鈍感であること等が考慮されており、例えば、音声信号のレベルに応じてフィルタ特性を変更し、低周波域および高周波域のレベル増強度を変えたり、音声信号のレベル(振幅)に応じてその信号を周波数軸の目盛がバーク尺度となったマスキング特性(即ち、周波数が低い部分ではマスキングの及ぶ範囲を狭く、高い部分では広げたマスキング特性)に合わせて畳み込み、その信号近傍のレベルの低い信号をマスキング処理することにより量子化雑音を低減したりする。
【0043】
また、動作モードBのプログラムでは、例えば、上記マスキング特性について、周波数が低い部分と高い部分とで同じマスキングの及ぶ範囲とすることで、単位時間当たりの負荷を動作モードAの場合よりも大幅に低減している。さらに、動作モードCのプログラムでは、例えば、音声信号のレベルの如何に拘わらず同じフィルタ特性を用い、低周波域および高周波域のレベルを増強することで、単位時間当たりの負荷を動作モードBの場合よりも少し低減している。
【0044】
図3は図1に示される動作モード設定テーブル31aの詳細を示す図であり、図4はプロセッサの処理能力と、第1のタスク101aの動作モードとの関係を示す図である。特に、図4(a)は第1のタスク101aだけが起動された場合の状態を、図4(b)は第1のタスク101aと第2のタスク102aとが輻輳して起動された場合の状態を、図4(c)は第1のタスク101aと第2のタスク102aと第3のタスク103aとの3つのタスクが輻輳して起動された場合の状態を、それぞれ示している。
【0045】
図3に示される動作モード設定テーブル31aは、実行させなければならないタスクと、実行される第1のタスク101aの動作モードとの関係を示すものである。なお、図中に示される「○」はタスクの起動状態を、「×」はタスクの停止状態を、「−」は第1のタスク101aに対する動作モードを設定しないことを示しており、第1のタスク101aが起動されない場合もあわせて図示されている。
【0046】
この動作モード設定テーブル31aにおいては、タスク管理装置20aから第1のタスク101aだけを起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して最も負荷が高い動作モードA(単位時間当たりの負荷N11、例えば200MIPS)で動作させることが示されている。この動作モードAで動作させる理由は、次の通りである。プロセッサ10の処理能力Nmax=285MIPSを図4(a)に示される枠で表すと、プロセッサ10の処理能力の全てを第1のタスク101aの処理に充てることができる。この場合、動作モードA〜動作モードCのいずれもプロセッサ10の処理能力の範囲に収まるので、いずれをも設定することができるが、各動作モードの内では動作モードAの音質が一番高い。そこで、第1のタスク101aとして、最高音質の動作モードAで動作させることとしたものである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードAで動作させることとしたものである。
【0047】
また、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第2のタスク102a(150MIPS)と、第1のタスク101aとの2つのタスクを輻輳して起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して動作モードAよりも負荷が軽い動作モードB(50MIPS)で動作させることが示されている。この動作モードBで動作させる理由は次の通りである。図4(b)に示されるように、プロセッサ10の処理能力の内、第2のタスク102aの処理にN2=150MIPSの負荷かがかかる。このため、第1のタスク101aの処理に充てることができるのは、135MIPSである。このため、破綻を来さないのは動作モードB,動作モードCの2つであり、両モードのいずれをも設定することができるが、両モードの中では動作モードBが一番音質的に優れている。そこで、第1のタスク101aとして、動作モードBで動作させることとしたものである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードBで動作させることとしたものである。
【0048】
なお、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第3のタスク(100MIPS)と、第1のタスク101aとの2つのタスクを輻輳して起動させる旨の通知を受けた場合も、第2のタスク102a(150MIPS)と、第1のタスク101aとが起動される場合と同様な理由から、モード設定装置30aは、第1のタスク101aに対して動作モードB(50MIPS)で動作させるように構成されている。
【0049】
さらに、この動作モード設定テーブル31aにおいては、タスク管理装置20aから第1のタスク101a、第2のタスク102aおよび第3のタスク103aの全てを輻輳して起動させる旨の通知を受けた場合、モード設定装置30aは、第1のタスク101aに対して動作モードC(単位時間当たりの負荷N13、例えば30MIPS)で動作させることが示されている。この動作モードCが設定される理由は、破綻を来さないのは動作モードCだけであるからである。即ち、プロセッサ10が破綻を来さない範囲で一番品質の高い動作モードCで動作させることとしたものである。
【0050】
図5は、マルチタスク制御装置1aによる動作を示す図である。
タスク管理装置20aは、イベントの発生によって新たなタスクを起動したりタスクの停止が行われるような対象タスクの状態変化を検出すると(S11)、状態変化後に起動させるタスクを特定する(S12)。そして、タスク管理装置20aは、この特定によって得られた次に実行させなければならないタスクを、モード設定装置30aに通知する。
【0051】
通知を受けたモード設定装置30aは、対象タスクの中に第1のタスク101aが含まれている場合、動作モード設定テーブル31aを用いて第1のタスクの動作モードを決定し、決定した動作モードに対応したパラメータを第1のタスク101aに設定する(S13)。第1のタスク101aに対するパラメータの設定が終わると、タスク管理装置20aは、プロセッサ10に対象タスクを時分割で実行させる(S14)。
【0052】
マルチタスク制御装置1aは、このような処理(S11〜14)を繰り返すことにより、プロセッサ10の使用効率を高めつつ、第1のタスク101a〜第3のタスク103aを時分割で並行に処理し、プロセッサ10が破綻を来さない範囲で、かつ一番品質の高い動作モードで第1のタスク101aを動作させる。
【0053】
図6は、第1のタスク101aだけが起動される場合の状態遷移とプロセッサ10にかかる負荷の遷移との関係を示す図である。
図6に示される時刻T1以前は、何もタスクが起動されていない状態である。この状態で、時刻T1にタスク管理装置20aによって第1のタスク101aだけが起動される場合、モード設定装置30aは、第1のタスク101aに対してパラメータ「1」を設定することにより、動作モードAで動作させる。これによって、プロセッサ10に対する負荷は、N11=200MIPSということになり、最高品質の音声が得られる。即ち、この場合は、プロセッサ10に対する負荷に余裕があり、プロセッサ10の処理能力を全て第1のタスク101aの処理に回すことができるので、第1のタスク101aの処理について高音質なエンコードモード、動作モードAでエンコードすることを指示したのである。
【0054】
従って、従来では上記したように30MIPSの負荷がかかるだけで、低音質であったが、本実施の形態1では、従来よりも非常に大きな負荷200MIPSをかける動作モードAで第1のタスク101aを処理させるので、プロセッサ10の使用効率を大幅に上げることができ、最高の音質を得ることができる。
【0055】
図7は、第2のタスク102aが起動された後に第1のタスク101aがさらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0056】
図7に示される時刻T2において、タスク管理装置20aによって第2のタスク102aだけが起動された場合、第2のタスク102aが必要とする負荷N2=150MIPSがプロセッサ10にかかることになる。次に、時刻T3において、第1のタスク101aがタスク管理装置20aによってさらに起動された場合、第2のタスク102aの処理に150MIPSの負荷が必要であるので、第1のタスク101aにさくことができる処理量は(Nmax−N2)=135MIPSとなる。そして、図3に示される動作モード設定テーブル31aを参照すると、第1のタスク101aの動作モードとして動作モードB(50MIPS)が指定されている。これにより、モード設定装置30aは、動作モードBと決定し、第1のタスク101aに対してパラメータ「2」を設定し、動作モードBで動作させる。この場合、第1のタスク101aの動作モードBが必要とする負荷N12がプロセッサ10に加わることになる。即ち、この場合は、プロセッサ10の処理能力に図7の場合ほど余裕がないので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高い動作モードBを設定したのである。これによって、プロセッサ10に対する演算負荷は、(N2+N12)=200MIPSということになる。
【0057】
従って、従来では上記したように30MIPS+150MIPS=180MIPSの負荷がかかるだけであったが、本実施の形態1では、従来よりも大きな負荷をかけ、プロセッサ10の使用効率を上げることができ、しかも、従来より高い音質を得ることができる。
【0058】
図8は、第1のタスク101aが起動された後に第2のタスク102aおよび第3のタスク103aが順次さらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0059】
図8に示される時刻T4以前は、何もタスクが起動されていない状態である。この状態で、時刻T4において、タスク管理装置20aによって第1のタスク101aが起動された場合、第2のタスク102aおよび第3のタスク103aが起動されていないので、モード設定装置30aは、第1のタスク101aに対し、動作モードAを設定する。これによって、プロセッサ10に対する負荷は、N11=200MIPSということになる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なエンコードモードでエンコードすることを第1のタスク101aに指示したのである。
【0060】
次に、時刻T5において、タスク管理装置20aによって第2のタスク102aがさらに起動されたとする。この場合、第2のタスク102aが必要とする演算負荷N2=150MIPSがプロセッサ10に加わることになる。この場合、第1のタスク101aの動作モードを「A」のままに維持すると、プロセッサ10にかかる負荷が350MIPSと過大となり破綻することになる。そこで、モード設定装置30aは、動作モード設定テーブル31aを参照し、動作モードを「B」(50MIPS)に決定し、第1のタスク101aに対し、動作モードBを設定する。これにより、全体では(N12+N2)=200MIPSの負荷がプロセッサ10にかかることになる。即ち、この場合は、プロセッサ10に対する負荷に動作モードAを割り当てる余裕がないので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高く、高速なエンコードモード、動作モードBでエンコードすることを第1のタスク101aに指示したのである。
【0061】
次に、時刻T6において、第3のタスク103aがタスク管理装置20aによってさらに起動されたとする。この場合、第3のタスク103aが必要とする負荷N3=100MIPSがプロセッサ10に加わることになる。この場合、第1のタスク101aの動作モードを「B」のままにしておくと、プロセッサ10にかかる負荷が300MIPSとなり、プロセッサ10が破綻状態となる。
【0062】
そこで、モード設定装置30aは、動作モード設定テーブル31aを参照し動作モードを「C」(30MIPS)と決定し、第1のタスク101aに対し、動作モードCを設定する。これにより、全体では(N13+N2+N3)=280MIPSの負荷がプロセッサ10にかかることになる。
【0063】
即ち、この場合は、動作モードBを割り当てるほどの負荷に余裕がないので、モード設定装置30aは、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高く、さらに高速処理可能で負荷の軽いエンコードモード、動作モードCでエンコードすることを第1のタスク101aに指示したのである。
【0064】
次に、時刻T7において、第3のタスク103a(通話)がタスク管理装置20aによって停止されたと仮定する。この場合、第1のタスク101aと、第2のタスク102aとだけが起動されるので、モード設定装置30aは、動作モード設定テーブル31aを参照し、第1のタスク101aに対し、動作モードBを設定する。即ち、この場合は、プロセッサ10に対する演算負荷に余裕が生じるので、プロセッサ10が破綻を来さない範囲で、かつ一番音質の高いエンコードモードである動作モードBでエンコードすることを第1のタスク101aに指示したのである。これによって、プロセッサ10に対する演算負荷は、(N12+N2)=200MIPSということになる。
【0065】
次に、時刻T8において、第2のタスク102aがタスク管理装置20aによって停止されたとする。この場合、モード設定装置30aは、第1のタスク101aだけが起動されるので、モード設定装置30aは、第1のタスク101aに対し、動作モードAを設定する。即ち、この場合は、プロセッサ10に対する負荷に余裕が生じるので、高音質なエンコードモードである動作モードAでエンコードすることを第1のタスク101aに指示したのである。これによって、プロセッサ10に対する演算負荷は、N11=200MIPSということになる。
【0066】
以上のように本実施の形態1に係る発明によれば、第1のタスク101aについて高音質用、中音質用、低音質用等プロセッサ10における単位時間当たりの負荷が異なる動作モードが予め用意されており、モード設定装置30aは、タスク管理装置20aの第2のタスク102aおよび第3のタスク103aの起動・停止の状態変化ごとに第1のタスク101aの動作モードを破綻が生じない範囲で負荷の高い動作モードに設定しなおすようにしている。即ち、タスクが輻輳し多大の処理負荷がプロセッサにかかる場合は、前記第1のタスクの処理負荷を軽減するようにしている。このため、第1のタスク101aが起動されている限り、プロセッサ10の処理能力Nmaxを超えることなく、単位時間当たりの負荷をプロセッサ10にかけることができる。即ち、全体の負荷を軽減でき、かつ、負荷に余裕がある場合は、第1のタスク101aに多くの処理資源を割り当て高性能な機能を実現できることとなる。従って、プロセッサの処理能力を超えない範囲で一番高い負荷の動作モードを第1のタスク101aに設定するので、プロセッサの処理能力を最大限に利用することができ、プロセッサ10の使用効率を高めることができる。
【0067】
なお、上記実施の形態1では、3つのタスクが輻輳する場合について、その動作を説明したが、2つのタスクが輻輳する場合や、4つ以上のタスクか輻輳する場合であっても、上記実施の形態1と同じ考え方で本発明を適用できる。即ち、処理に必要な単位時間当たりの負荷が異なる複数の動作モードを備えた第1のタスクに対して、輻輳状態に応じて動作モードを切り替えるのである。もちろん、第1のタスクに対する動作モードの切り替えにおける判断の指標は、第1のタスク以外の起動しているタスクの負荷の総和である。負荷の総和が、プロセッサが備えている処理能力に対して余裕がある場合は、第1のタスクに対して余裕内の最大の負荷を与えて高性能な処理を行うようにし、負荷の総和が、プロセッサが備えている処理能力に対して余裕がない場合は、第1のタスクに対して余裕内に収まるものの内、最大の負荷を与えて高速な処理を行うように設定する。
【0068】
また、上記実施の形態1では、モード設定装置30aは動作モード設定テーブル31aを用いて第1のタスク101aの動作モードを決定したが、動作モード設定テーブル31aを使用することなく、状態変化後に第1のタスク101aに割り当て可能な処理量を特定し、プロセッサ10が破綻しない範囲で最も大きな負荷をかける第1のタスクの動作モードを決定するようにしてもよい。
【0069】
また、上記実施の形態1では、第1のタスクに対する動作モードの切り替えにおける判断の指標として、第1のタスク以外の起動しているタスクの負荷の総和を用いたが、第1のタスク以外の起動しているタスクの処理に必要な演算量の総和を用いるようにしてもよく、第1のタスク以外の起動しているタスクを構成するプログラムの命令数の総和を用いてもよい。
【0070】
また、第1のタスク以外の起動しているタスクの数を用いてもよい。この場合には、他のタスクの数が「0」であれば動作モードA、「1」であれば動作モードB、「2」であれば動作モードCというように決定、設定を行えばよく、非常に簡単に決定、設定を行える。
【0071】
また、上記実施の形態1では、第1のタスク101aについて3つの動作モードを用意したが、2つの動作モードや、4つ以上の動作モードを用意してもよい。
【0072】
また、上記実施の形態1では第1のタスク101aだけに負荷が異なる複数の動作モードを用意したが、第2のタスク102a等の他のタスクについても負荷が異なる複数の動作モードを用意してもよい。この場合には、動作モードの切り替えにおける判断の指標として、状態変化後のタスクの輻輳数等を用いればよい。
【0073】
また、上記実施の形態1では第1のタスク101aをパラメータによって動作モードを変える1つのプログラムで構成したが、同一範疇に属し、異なる複数の機能に対応したプログラムのそれぞれを第1タスクとし、第1タスクを起動すべきと判断した場合に、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する1つの第1タスクを複数の第1タスクの中から選択してプロセッサに処理させるようにしてもよい。具体的には、DVD装置などに向けて作成された業務用エンコーダ(200MIPS)と、SDプレーヤなど向けて作成されたエンコーダ、SDジュークボックス(50MIPS)と、ポータブルCDプレーヤなどに向けて作成されたエンコーダ、CDリッパー(30MIPS)との同一範疇に属する3本のプログラムがすでにある場合、これら3本のプログラム業務用エンコーダ(200MIPS)、SDジュークボックス(50MIPS)、CDリッパー(30MIPS)それぞれを第1タスクとし、第1タスクを起動すべきと判断した場合に、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する1つの第1タスクを複数の第1タスク、即ち業務用エンコーダ(200MIPS)、SDジュークボックス(50MIPS)、CDリッパー(30MIPS)の中から選択してプロセッサに処理させるようにしてもよい。
【0074】
この場合には、パラメータによって動作モードを変える1つのプログラムをわざわざ作成する必要がなく、既存のソフトを再利用することができ、既存の資源の再利用が促進される。
【0075】
さらに、上記実施の形態1では、第1のタスクが音声信号のエンコード処理である場合に適用したが、音声信号の再生処理においてもスケーラビリティが高いので、本発明を適用できる。例えば、音声信号の再生処理におけるバーチャルサラウンド機能に本発明を適用する。バーチャルサラウンド機能は、多タップのデジタルフィルタで実現するが、タップ数(FIRフィルタの係数の数)を例えば動作モードAでは8192(2の13乗)タップ、動作モードBでは128(2の7乗)タップ、動作モードCでは32(2の5乗)タップ、となるようにプログラムを構成し、タスクの輻輳数が少なければ動作モードAを設定して負荷を大きくし、音場を拡大するバーチャルサラウンド効果を最大にすればよい。一方、タスクの輻輳数が多くなれば、動作モードB、動作モードCの順に設定して負荷を小さくし、バーチャルサラウンド効果を徐々に少なくするようにすればよい。
【0076】
(実施の形態2)
図9は、本発明の実施の形態2に係るマルチタスク制御装置1bの全体構成を示すブロック図である。なお、実施の形態1に係るマルチタスク制御装置1aと対応する部分に同じ番号を付し、その説明を省略する。
【0077】
このマルチタスク制御装置1bは、実施の形態1に係るマルチタスク制御装置1aと略同構成であり、例えば携帯電話機を複合化するための複数(図示4つ)のタスク(第1のタスク101b、第2のタスク102b、第3のタスク103bおよび第4のタスク104b)をプロセッサ10に並行して処理させるものであって、タスク管理装置20bと、モード設定装置30bとから構成され、プロセッサ10上で動作するリアルタイムOSに組み込まれる機能によって実現される。
【0078】
ここで、実施の形態1のマルチタスク制御装置1aでは、第1のタスク101aと他のタスク102a,103aとが常に輻輳できるように構成され、モード設定装置30aの動作モード設定テーブル31aで第1のタスク101aの動作モードを設定していた。これに対して、この実施の形態2に係るマルチタスク制御装置1bでは、ユーザ設定によって第1のタスク101bと第1のタスク101b以外の他のタスク(第2のタスク102b、第3のタスク103b、第4のタスク104b)との輻輳を禁止したり、許可したりできるように構成され、タスク管理装置20bに設けられた動作モード設定テーブル22に基づいて第1のタスク101bの動作モードが決定される点が、実施の形態1の場合と大きく異なっている。なお、第1のタスク101bと第2のタスク102b〜第4のタスク104bとの輻輳を禁止するモードを以下「輻輳禁止モード」と、輻輳を許可するモードを以下「輻輳許可モード」とも記す。
【0079】
タスク管理装置20bは、ユーザによって設定された輻輳モード(輻輳禁止モード/輻輳許可モード)を示すフラグを格納するフラグ格納部21と、第1のタスク101bの動作モード等を決定するための動作モード設定テーブル22とを備える。このフラグ格納部21に格納されたフラグが輻輳禁止モードを表している場合には、タスク管理装置20bは、第1のタスク101bが起動された後に他のタスクの起動要求があったとき、この他のタスクの起動を禁止する。また、タスク管理装置20bは、フラグが輻輳許可モードを表している場合において、対象タスクの状態変化、即ちタスクの起動や停止の要求があり、起動予定のタスクの中に第1のタスク101bが含まれていると、動作モード設定テーブル22を参照し、第1のタスク101b以外のタスクが輻輳しているか否か等によって、第1のタスク101bの動作モードを決定し、決定した動作モードをモード設定装置30bに通知したり、要求された他のタスクを起動すると起動中の第1のタスク101bの処理量が所定のしきい値未満となるおそれがある場合には、タスク管理装置20bは要求された他のタスクの起動を禁止する。
【0080】
モード設定装置30bは、タスク管理装置20bから通知された動作モードに従うパラメータを第1のタスク101bに設定し、そのパラメータに応じたモードで動作させる。
【0081】
図10は、図9に示される動作モード設定テーブル22の構成例を示す図である。
同図に示されるように動作モード設定テーブル22は、プロセッサ10の処理能力が格納されるレコード221と、プロセッサ10により実行される第1のタスク101b〜第4のタスク104bの負荷が格納されるレコード222〜225と、第1のタスク101bの実行に必要な最低限の処理量を示すしきい値が格納されるレコード226とから構成される。
【0082】
プロセッサ10によって処理される第1のタスク101bは、第1の機能(音楽再生)を行う1つのプログラムであって、オーディオ信号のデコード処理の他、モード設定装置30bによって設定されるパラメータの値に応じて、バーチャルサラウンド再生に用いるデジタルフィルタの段数を変化させ、再生音質が高、中、低の3段階に変化する3つの動作モード(動作モードA、動作モードBおよび動作モードC)を変える。具体的には動作モードAは、デコード処理を行った後、8192タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に250MIPSの負荷をかける。動作モードBは、デコード処理を行った後、128タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に200MIPSの負荷をかける。動作モードCは、デコード処理を行った後、32タップ数のデジタルフィルタでバーチャルサラウンド再生を行うプログラムであって、プロセッサ10に150MIPSの負荷をかける。
【0083】
また、第2のタスク102bは、デジタル衛星放送の映像をデコードし、モニタに表示(TVビュー)するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。第3のタスク103bは、インターネットを介して所望のサーバに接続し、当該サーバにアップロードされている情報を閲覧(ブラウジング)するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。第4のタスク104bは、例えばインターネットを介して受信した動画付きメールを閲覧するためのプログラムであって、プロセッサ10に50MIPSの負荷をかける。
【0084】
さらに、しきい値は、例えば音声データのデコードがリアルタイムに行え、再生音がとぎれることがない値(140MIPS)に設定される。
図11は、図9に示されるマルチタスク制御装置1bが実装される携帯電話機の外観構成例を示す図である。
【0085】
同図に示されるように携帯電話機ex115は、不図示の基地局や、衛星との間で電波を送受信するためのアンテナex201と、本体表面に装着され、ユーザによって操作される複数の操作キーからなる操作部ex204と、CCDカメラ等を含み、動画や、静止画を撮ることが可能なカメラ部ex203と、液晶ディスプレイ等を含み、カメラ部ex203で撮影した映像や、アンテナex201を介して受信したTV映像等を表示する表示部ex202と、マイク等を含み、音声を入力をするための音声入力部ex205と、複数のスピーカ等を含み、音声を再生したり、音楽をサラウンド再生したりするための音声出力部ex208と、ヘッドフォンや外部スピーカを接続するためのピンジャックコネクタex209と、記録メディアex207を装着するためのスロット部ex206等とを備える。
【0086】
ここで、記録メディアex207は、SDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(ElectricallyErasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものであって、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化された音声データまたは復号化された音声データ等を保持する。
【0087】
なお、マルチタスク制御装置1bを構成するタスク管理装置20bやモード設定装置30bは、この携帯電話機ex115本体内部に設けられたプロセッサ、プロセッサによって実行されるマルチタスクOSや、このOS上で実行されるアプリケーション(MPEGエンコーダ・デコーダ用ソフト、ブラウザソフト、メーラソフト等)のプログラム等を予め格納するROM、OSやアプリケーションのプログラム等の実行時にワークエリアを提供したり、ユーザによって設定された輻輳禁止/許可を示すフラグや、動作モード設定テーブル22等を一時的に格納するメモリ等によって実現される。
【0088】
次いでマルチタスク制御装置1bを構成するタスク管理装置20bおよびモード設定装置30bの動作を説明する。
図12は、タスク管理装置20bおよびモード設定装置30bによって実行されるタスク起動・停止処理の詳細を示すフローチャートである。
【0089】
このタスク起動・停止処理は、所定時間ごとに定期的に実行される。
タスク起動・停止処理においては、タスク管理装置20bは、先ずタスク起動要求が有ったか否か判断する(S10)。タスク起動要求が有った場合(S10でYes)、タスク管理装置20bはそのタスクが音楽再生タスクであるか否か判断する(S20)。音楽再生タスクであれば(S20でYes)、タスク管理装置20bはモード設定装置30bと協働して音楽再生タスク起動制御処理を実行し(S30)、タスク起動・停止処理を終了する。これに対して、音楽再生タスクでなければ(S20でNo)、タスク管理装置20bはモード設定装置30bと協働して他のタスク起動制御処理を実行し(S40)、タスク起動・停止処理を終了する。
【0090】
一方、タスク起動要求がなかった場合(S10でNo)、タスク管理装置20bは、タスク停止要求が有ったか否か判断する(S50)。タスク停止要求が有った場合(S50でYes)、タスク管理装置20bは、そのタスクが音楽再生タスクであるか否か判断する(S60)。音楽再生タスクであれば(S60でYes)タスク管理装置20bは、音楽再生タスクを停止し(S70)、タスク起動・停止処理を終了する。これに対して、音楽再生タスクでなければ(S60でNo)、タスク管理装置20bはモード設定装置30bと協働して他のタスク停止制御処理を実行し(S80)、タスク起動・停止処理を終了する。
【0091】
他方、タスク停止要求でもなければ(S50でNo)、タスク管理装置20bはタスク起動・停止処理を終了する。
図13は、図12に示される音楽再生タスク起動制御処理(S30)のサブルーチンの処理を示すフローチャートである。
【0092】
この音楽再生タスク起動制御処理においては、タスク管理装置20bは先ず、起動中の他のタスクないか否か判断する(S301)。起動中の他のタスクない場合(S310でYes)、タスク管理装置20bは音楽再生タスクの動作モードを「A」(高品質)に決定し(S302)、モード設定装置30bに動作モードAを選択させる。そしてタスク管理装置20bは、フラグ格納部21を参照し輻輳禁止モードが設定されているか否か判断する(S303)。輻輳禁止モードが設定されている場合(S303でYes)、タスク管理装置20bは音楽再生タスク(動作モード「A」)を輻輳禁止モードで起動し(S304)、メインルーチンにリターンする。これに対して、輻輳禁止モードが設定されていない場合(S303でNo)、即ち輻輳許可モードが設定されている場合、タスク管理装置20bは、音楽再生タスクを輻輳許可モードで起動し(S305)、メインルーチンにリターンする。
【0093】
一方、起動中の他のタスクがある場合(S301でNo)、タスク管理装置20bは、プロセッサ10の処理能力から他のタスクの処理量を減算することにより、音楽再生タスクに割り当てることができる処理量(割り当て可能処理量)を算出し(S306)、算出した割り当て可能処理量がしきい値以上であるか否かを判断する(S307)。しきい値以上である場合(S307でYes)、割り当て処理量に基づいて音楽再生タスクの動作モードを「B」および「C」(中・低品質)のいずれかに決定し(S308)、モード設定装置30bに動作モードBおよびCのいずれかを選択させる。この決定は、次のように行われる。割り当て処理量が動作モードBの処理量以上であれば、動作モードBに決定し、割り当て処理量が動作モードBの処理量未満であれば、動作モードCに決定する。
【0094】
動作モードの決定が終わると、タスク管理装置20bは、輻輳禁止モードが設定されているか否か判断する(S309)。輻輳禁止モードが設定されている場合(S309でYes)、タスク管理装置20bは、音楽再生タスク(動作モード「B」,「C」)を輻輳禁止モードで起動し(S310)、メインルーチンにリターンする。これに対して、輻輳禁止モードが設定されていない場合(S309でNo)、タスク管理装置20bは、音楽再生タスク(動作モード「B」,「C」)を輻輳許可モードで起動し(S311)、メインルーチンにリターンする。
【0095】
他方、割り当て可能処理量がしきい値以上でない場合、即ち割り当て可能処理量がしきい値未満である場合(S307でNo)、タスク管理装置20bは、音楽再生タスクの起動を禁止し(S312)、メインルーチンにリターンする。これは、音楽再生タスクを起動させてもリアルタイムのデコード処理が行えず、音がとぎれた音楽再生しかできないためである。
【0096】
図14は、図12に示される他のタスク起動制御処理(S40)のサブルーチンの処理を示すフローチャートである。
他のタスク起動要求があった場合、タスク管理装置20bは先ず音楽再生タスクが実行中か否か判断する(S401)。判断の結果音楽再生タスクが実行中である場合(S401でYes)、タスク管理装置20bはこの音楽再生タスクが輻輳禁止モードで起動中であるか否か判断する(S402)。輻輳禁止モードで起動されている場合(S402でYes)、要求された他のタスクの起動を禁止し(S403)、メインルーチンにリターンする。この処理により、起動中の音楽再生タスクの動作モードが変更されることがない。従って、音質が変化することのない音楽再生が最後まで継続される。
【0097】
一方、起動中の音楽再生タスクが輻輳禁止モードでない、即ち輻輳許可モードで起動されている場合(S402でNo)、タスク管理装置20bは、動作モード設定テーブル22を参照し、要求された他のタスクを起動した場合に音楽再生タスクに対して割り当てることができる処理量(割り当て可能処理量)を算出し(S404)、算出した割り当て可能処理量がしきい値未満であるか否か判断する(S405)。しきい値未満であると(S405でYes)、タスク管理装置20bは、要求された他のタスクの起動を禁止し、メインルーチンにリターンする。この処理により、音楽再生タスクに対して割り当てられる処理量が必ずしきい値以上であることが確保される。従って、音がとぎれることなく音楽再生が継続される。
【0098】
これに対して割り当て可能処理量がしきい値未満でなければ(S405でNo)、即ちしきい値以上あれば、ステップS404で算出した割り当て可能処理量に基づいて音楽再生タスクの動作モードを「B」または「C」を決定し、モード設定装置30bは動作モードを「B」または「C」に遷移させる(S407)。具体的には、この遷移は、次のように行われる。割り当て処理量が動作モードBの処理量以上であれば、動作モードBに遷移させ、割り当て処理量が動作モードBの処理量未満であれば、動作モードCに遷移させる。この場合には、負荷の軽い動作モードに遷移されるため、音質が低下する。動作モードの遷移が終わると、タスク管理装置20bは、要求された他のタスクの起動を許可し(S408)、メインルーチンにリターンする。これにより、音楽再生タスクとともに、要求された他のタスクが時分割で実行される。
【0099】
他方、音楽再生タスクが起動していない場合(S401でNo)、要求された他のタスクの起動を許可し(S409)、メインルーチンにリターンする。これにより、要求された他のタスクの処理が行われる。
【0100】
図15は、図12に示される他のタスク停止制御処理(S80)のサブルーチンの処理を示すフローチャートである。
他のタスク停止要求があった場合、タスク管理装置20bは、先ず他のタスクを停止させ(S801)、音楽再生タスクが起動中か否か判断する(S802)。起動中でなければ(S802でNo)、メインルーチンにリターンする。
【0101】
一方、起動中であれば(S802でYes)、音楽再生タスクが輻輳禁止モードで起動されているか否か判断する(S803)。輻輳禁止モードで起動されている場合(S803でYes)、メインルーチンにリターンする。即ち、処理能力に余裕ができても音楽再生タスクにその処理能力を回さないでメインルーチンにリターンする。従って、起動中の音楽再生タスクの動作モードが変更されることがないので、音質が変化することなく音楽再生が最後まで継続される。
【0102】
他方、輻輳禁止モードでない場合(S803でNo)、即ち、輻輳許可モードである場合、タスク管理装置20bは、音楽再生タスクに対して割り当て可能な処理量(割り当て可能処理量)を算出し(S804)、音楽再生タスクを動作モード「A」または「B」を決定し、モード設定装置30bは動作モードを「B」または「C」に遷移させ(S805)、メインルーチンにリターンする。具体的には、この遷移は、次のように行われる。割り当て処理量が動作モードAの処理量以上であれば動作モードAに遷移させ、割り当て処理量が動作モードAの処理量未満であれば動作モードBに遷移させる。この場合には、負荷の重い動作モードに遷移されるため、音質が向上する。
【0103】
図16は、輻輳許可モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。具体的には、音楽再生タスクが輻輳許可モードで起動された後に他のタスクが順次さらに起動された場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係が示されている。
【0104】
図16に示される時刻T10以前は、タスクが何も起動されていない状態である。この状態で、時刻T10において、音楽再生タスクがタスク管理装置20bによって起動された場合、他のタスクが何も起動されていないので、モード設定装置30bは、音楽再生タスクに対し、動作モードAを設定する。これによって、プロセッサ10に対する負荷は、250MIPSということになる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクだけが実行される場合には、図17(a)に示されるように携帯電話機の画面にその動作モード「A」と、再生された音楽の曲名や歌手等が表示される。
【0105】
次に、時刻T11において、他のタスク(例えば、TVビュー)がタスク管理装置20bによってさらに起動されたとする。この場合、TVビューが必要とする演算負荷50MIPSがプロセッサ10に加わることになる。この場合、音楽再生タスクの動作モードを「A」のままに維持すると、プロセッサ10にかかる負荷が300MIPSと過大となり破綻することになる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し、動作モードを「B」(200MIPS)に決定し、音楽再生タスクを動作モードBで動作させる。これにより、全体では250MIPSの負荷がプロセッサ10にかかることになる。
【0106】
即ち、この場合は、プロセッサ10に対する負荷に動作モードAだけのような余裕がないので、プロセッサ10が破綻を来さない範囲で一番音質の高い動作モード、中音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクとTVビューとが輻輳した場合には、図17(b)に示されるように画面に例えば野球中継の映像とともにその動作モード「B」が表示される。
【0107】
次に、時刻T12において、さらに他のタスク(例えば、ブラウジング)がタスク管理装置20bによってさらに起動されたとする。この場合、ブラウジングが必要とする負荷50MIPSがプロセッサ10に加わることになる。この場合、音楽再生タスク101bの動作モードを「B」のままにしておくと、プロセッサ10にかかる負荷が300MIPSとなり、プロセッサ10が破綻状態となる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「C」(150MIPS)と決定し、音楽再生タスクを動作モードCで動作させる。これにより、全体では250MIPSの負荷がプロセッサ10にかかることになる。
【0108】
即ち、この場合は、プロセッサ10が破綻を来さない範囲で一番音質の高い動作モード、低音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。このような音楽再生タスクとTVビューとブラウジングとが輻輳した場合には、図17(c)に示されるように画面に例えば野球中継の映像、ブラウジングにより得られた情報とともにその動作モード「C」が表示される。
【0109】
次に、時刻T13において、さらに他のタスク(例えば、動画付きメールの閲覧)の起動要求がタスク管理装置20bにあったものとする。この場合、動画付きメールの閲覧が必要とする負荷50MIPSがプロセッサ10にさらに加わることになる。この場合、音楽再生タスクの動作モードを「C」からさらに下げると、しきい値未満になり、再生音がとぎれることになる。そこで、タスク管理装置20bは、動画付きメールの閲覧のタスクを起動禁止にしたのである。これによって、音楽再生タスクの動作モードが「C」に維持され、音がとぎれることなく再生される。このような音楽再生タスクとTVビューとブラウジングとが輻輳しているときにさらに動画付きメールの閲覧要求があったときに起動が禁止された場合には、図17(d)に示されるように画面に禁止の理由等がさらに表示される。
【0110】
次に、時刻T14において、ブラウジングがタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクと、TVビューとだけが起動されるので、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「B」(200MIPS)と決定し、音楽再生タスクを動作モードBで動作させる。
【0111】
次に、時刻T15において、動画付きメールの閲覧がタスク管理装置20bによって起動されたとする。この場合、動画付きメールの閲覧が必要とする負荷50MIPSがプロセッサ10に加わることになる。そこで、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「C」(150MIPS)と決定し、音楽再生タスクを動作モードCで動作させる。
【0112】
次に、時刻T16において、動画付きメールの閲覧がタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクと、TVビューとだけが起動されるので、タスク管理装置20bは、動作モード設定テーブル22を参照し動作モードを「B」(200MIPS)と決定し、音楽再生タスクを動作モードBで動作させる。
【0113】
次に、時刻T17において、TVビューがタスク管理装置20bによって停止されたと仮定する。この場合、音楽再生タスクだけが起動されるので、タスク管理装置20bは、音楽再生タスクを動作モードAで動作させる。即ち、この場合は、プロセッサ10に対する負荷に余裕が生じるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。
【0114】
次に、時刻T18において、音楽再生タスクがタスク管理装置20bによって停止されたと仮定する。この場合、処理すべきタスクがないので、タスク管理装置20bは、モード設定装置30bに音楽再生タスクに対する動作モードの設定を中止させ、タスクを全て停止する。即ち、この場合は、プロセッサ10に対する負荷が0(アイドリング)となり、プロセッサ10に対する演算負荷は、0MIPSということになる。
【0115】
図18は、音楽再生タスクが輻輳禁止モードで起動された後に他のタスクの起動要求がされた場合の状態遷移と、プロセッサ10にかかる負荷の遷移との関係を示す図である。
【0116】
図18に示される時刻T20以前は、何もタスクが起動されていない状態である。この状態で、時刻T20において、音楽再生タスクを起動する場合、他のタスクが何も起動されていないので、タスク管理装置20bは、音楽再生タスクを動作モードAで動作させる。即ち、この場合は、プロセッサ10に対する負荷に余裕があるので、高音質なバーチャルサラウンドモードで音楽再生するパラメータを音楽再生タスクにセットさせたのである。
【0117】
次に、時刻T21において、他のタスク(例えば、TVビュー)の起動要求がタスク管理装置20bにされたとする。この場合、音楽再生タスクが輻輳禁止モードで起動されているので、タスク管理装置20bは、TVビューの起動を禁止する。これによって、音楽再生タスクが他のタスクと輻輳されることがない。また、モード設定装置30bは、音楽再生タスクの動作モードを変更することなく、「A」に維持したままにする。この結果、音質が変更されることなく、一定に維持される。
【0118】
次に、時刻T22において、音楽再生タスクがタスク管理装置20bによって停止されたと仮定する。この場合、処理すべきタスクがないので、タスク管理装置20bは、モード設定装置30bに音楽再生タスクに対する動作モードの設定を中止させ、タスクを全て停止する。即ち、この場合は、プロセッサ10に対する負荷が0(アイドリング)となり、プロセッサ10に対する演算負荷は、0MIPSということになる。
【0119】
以上のように本実施の形態2に係る発明によれば、音楽再生タスクについて高音質用、中音質用、低音質用等プロセッサ10における単位時間当たりの負荷が異なる動作モードが予め用意されており、タスク管理装置20bは、輻輳許可モードにおいて他のタスクの起動・停止の状態変化ごとに音楽再生タスクの動作モードを破綻が生じない範囲で負荷の高い動作モードに設定しなおすようにしている。即ち、タスクが輻輳し多大の処理負荷がプロセッサにかかる場合は、しきい値未満とならない範囲で音楽再生タスクの処理負荷を軽減するようにしている。このため、音楽再生タスクが起動されている限り、プロセッサ10の処理能力Nmbxを超えることなく、単位時間当たりの負荷をプロセッサ10にかけることができる。
【0120】
即ち、全体の負荷を軽減でき、かつ、負荷に余裕がある場合は、音楽再生タスクに多くの処理資源を割り当て高性能な機能を実現できることとなる。従って、プロセッサの処理能力を超えない範囲で一番高い負荷の動作モードを音楽再生タスクに設定するので、プロセッサの処理能力を最大限に利用することができ、プロセッサ10の使用効率を高めることができる。しかも、音楽再生タスクの処理量がしきい値未満になる場合には他のタスクの起動を禁止し、しきい値未満とならない範囲で音楽再生タスクの処理負荷を軽減するようにしているので、再生音がとぎれることもない。
【0121】
また、タスク管理装置20bは、輻輳禁止モードにおいて音楽再生タスクが起動された後に他のタスクの起動要求があった場合、その他のタスクの起動を禁止するので、再生音が最後まで一定に保たれる。
【0122】
なお、この実施の形態2においては、タスク管理装置20bは動作モード設定テーブル22に基づいて第1のタスク101bの動作モードを決定したが、図19に示される動作モード設定テーブル31bに基づいて第1のタスク101bの動作モードを決定してもよい。なお、図3に示される動作モード設定テーブル31aと同様、この動作モード設定テーブル31bの図中に示される「○」はタスクの起動状態を、「×」はタスクの停止状態を、「−」は第1のタスク101bに対する動作モードを設定しないことを、それぞれ示しており、さらに「△」は起動禁止を示しており、第1のタスク101bが起動されない場合もあわせて図示されている。この動作モード設定テーブル31bによっても第1のタスク101bの動作モードを簡単に決定することができる。
【0123】
また、この動作モード設定テーブル31bをモード設定装置30bに設けるようにしてもよい。この場合には、輻輳許可モードにおいてタスク管理装置20bは対象タスクの状態変化、即ちタスクの起動や停止の予定をモード設定装置30bに通知し、モード設定装置30bは起動予定のタスクの中に第1のタスク101bが含まれていると、動作モード設定テーブル31bを参照し、第1のタスク101b以外のタスクが輻輳しているか否か等によって、第1のタスク101bの動作モードを決定し、決定した動作モードに応じたパラメータを第1のタスク101bに設定したり、要求された他のタスクをタスク管理装置20bが起動すると起動中の第1のタスク101bの処理量が所定のしきい値未満となるおそれがある場合には、モード設定装置30bは要求された他のタスクの起動を禁止するようタスク管理装置20bに通知し、通知を受けたタスク管理装置20bは要求された他のタスクの起動を禁止すればよい。
【0124】
【発明の効果】
以上の説明から明らかなように、本発明に係るマルチタスク制御装置によれば、プロセッサに余力がある場合には第1タスクの処理できる機能の選択の範囲(選択の幅)が広がり、余力がない場合には選択の幅が狭まることになるので、モード制御手段は、プロセッサの処理能力の範囲内で、かつ最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させることができる。従って、タスクの輻輳状態の如何に拘わらず、プロセッサの破綻を確実に回避しつつ、再生された音質を向上することができるという効果が奏される。
【0125】
また、前記モード制御手段は、前記プロセッサに処理される対象タスクの状態変化を検出する状態変化検出手段と、前記状態変化後に起動させるタスクを特定する特定手段と、前記特定手段によって特定されたタスクの中に第1タスクが含まれている場合、第1タスクの動作モードを決定する動作モード決定手段とを備えるようにしているので、対象タスクの状態変化が生じる場合に、第1タスクの動作モードの決定を適切なタイミングに行うことができる。
【0126】
また、前記動作モード決定手段は、前記特定手段によって特定されたタスクと前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定したり、また、前記動作モード決定手段は、前記特定手段によって特定されたタスクの数と前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定するようにしたりしているので、第1タスクの動作モードを簡単に決定することができる。
【0127】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な負荷を算出する負荷算出手段と、前記負荷算出手段が算出した負荷と前記第1タスクの各動作モードの処理に要する負荷とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、第1タスクの動作モードを決定するようにしたり、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記負荷算出手段が算出した負荷が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する起動禁止手段とを備えるようにしてているので、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0128】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する起動禁止手段とを備えるので、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0129】
また、前記動作モード決定手段は、前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な命令数を算出する命令数算出手段と、前記命令数算出手段が算出した命令数と前記第1タスクの各動作モードの処理に要する命令数とをそれぞれ比較する比較手段とを備え、前記動作モード決定手段は、前記比較手段による比較結果に基づいて、動作モードを決定するようにしたり、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記命令数算出手段が算出した命令数が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する禁止手段とを備えるようにしているので、これによっても、第1タスクの最も低い機能の動作モードが継続してリアルタイムに処理することが確実に確保され、音のとぎれを防止することができる。
【0130】
また、前記動作モード決定手段は、さらに各前記タスクの起動要求を受け付ける起動要求受付手段と、前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する禁止手段とを備えるので、これによっても、第1タスクの動作モードの変更が防止され、一定音質での音楽再生処理を継続することができる。
【0131】
さらに、前記モード制御手段は、前記動作モード決定手段が決定した動作モードに対応付けられたパラメータを第1タスクに設定し、当該パラメータに対応する動作モードで第1タスクをプロセッサに処理させるので、これによって、パラメータの設定という簡単な処理で第1タスクの動作モードを容易に遷移させ、負荷や命令数を変えることができる。
【0132】
また、上記の課題を解決するため、本発明に係る音楽データ再生装置は、複数の動作モードを有する音楽再生タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置を備える音楽データ再生装置であって、前記マルチタスク制御装置は、前記音楽再生タスクを起動すべきか否かを判断する判断手段と、前記判断手段が前記音楽再生タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる最も音質の高い機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段とを備え、具体的には、前記音楽データ再生装置は、携帯性を有し、前記プロセッサに並行して処理される音楽再生タスク以外の他のタスクは、TVビュー、ブラウジング、メールおよび通話の少なくともいずれか1つであることを特徴とするので、これによって、携帯電話機等の携帯性の高い装置を、音質の高い音楽データ再生装置として使用しながら、TVビューや、ブラウジング、メールおよび通話を並行して行うことができる。
【0133】
以上のように本願発明によれば、演算資源に余裕のあるときは、高音質なオーディオ信号処理が行え、演算資源に余裕がないときでも、演算資源を軽減し、破綻を生じない範囲でかつ最も高い音質で処理を円滑に行うことができるので、本願発明の実用的価値は極めて高い。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るマルチタスク制御装置1aの構成を示すブロック図である。
【図2】図1に示される第1のタスク101aの動作モードA〜動作モードCのプロセッサ10に対する負荷と音質との関係を示す図である。
【図3】図1に示される動作モード設定テーブル31aの詳細構成を示す図である。
【図4】プロセッサの処理能力と、第1のタスク101aの動作モードA〜動作モードCとの関係を示す図である。
【図5】マルチタスク制御装置1aによる動作を示す図である。
【図6】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図7】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図8】タスクの遷移状態に応じた負荷の遷移を示す図である。
【図9】本発明の実施の形態2に係るマルチタスク制御装置1bの構成を示すブロック図である。
【図10】図9に示される動作モード設定テーブル22の詳細構成を示す図である。
【図11】図9に示されるマルチタスク制御装置が実装される携帯電話機の外観構成例を示す図である。
【図12】タスク管理装置20bおよびモード設定装置30bによって実行されるタスク起動・停止処理の詳細を示すフローチャートである。
【図13】図12に示される音楽再生タスク起動制御処理(S30)のサブルーチンの処理を示すフローチャートである。
【図14】図12に示される他のタスク起動制御処理(S40)のサブルーチンの処理を示すフローチャートである。
【図15】図12に示される他のタスク停止制御処理(S80)のサブルーチンの処理を示すフローチャートである。
【図16】輻輳許可モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。
【図17】携帯電話機の画面の表示例を示す図であり、特に図17(a)は音楽再生タスク実行時の表示例を示す図であり、図17(b)は音楽再生タスクとTVビューとが輻輳した場合の表示例を示す図であり、図17(c)は音楽再生タスクとTVビューとブラウジングとが輻輳した場合の表示例を示す図であり、図17(d)は音楽再生タスクとTVビューとブラウジングとが輻輳した場合においてさらに動画付きメールの閲覧要求があったときの表示例を示す図である。
【図18】輻輳禁止モードにおけるタスクの遷移状態に応じた負荷の遷移を示す図である。
【図19】動作モード設定テーブルの他の詳細構成を示す図である。
【符号の説明】
1a,1b マルチタスク制御装置
10 プロセッサ
20a,20b タスク管理装置
21 フラグ格納部
22,31a,31b 動作モード設定テーブル
30a,30b モード設定装置
101a,101b 第1のタスク
102a,102b 第2のタスク
103a,103b 第3のタスク
104b 第4のタスク
Claims (20)
- 複数の動作モードを有する第1タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置であって、
前記第1タスクを起動すべきか否かを判断する判断手段と、
前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段と
を備えることを特徴とするマルチタスク制御装置。 - 前記第1タスクは、デジタルオーディオ信号を再生処理するタスクであり、
前記機能は、音質を制御する機能であり、
前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も高い音質に対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項1記載のマルチタスク制御装置。 - 前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い機能であり、
前記モード制御手段は、前記最も高い機能に対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項1記載のマルチタスク制御装置。 - 前記機能は、前記プロセッサにかかる負荷が大きくなると共に高くなり、
前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も大きい負荷に対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項3記載のマルチタスク制御装置。 - 前記機能は、前記プロセッサが処理する命令数が多くなると共に高くなり、
前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多い命令数に対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項3記載のマルチタスク制御装置。 - 前記機能は、前記プロセッサの処理能力の範囲内で、かつ最も高い音質を制御するフィルタ機能であり、
前記モード制御手段は、前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で、かつ最も多いタップ数のフィルタ処理に対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項1記載のマルチタスク制御装置。 - 前記モード制御手段は、
前記プロセッサに処理される対象タスクの状態変化を検出する状態変化検出手段と、
前記状態変化後に起動させるタスクを特定する特定手段と、
前記特定手段によって特定されたタスクの中に第1タスクが含まれている場合、第1タスクの動作モードを決定する動作モード決定手段と
を備えることを特徴とする請求項1記載のマルチタスク制御装置。 - 前記動作モード決定手段は、前記特定手段によって特定されたタスクと前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、
前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定する
ことを特徴とする請求項7記載のマルチタスク制御装置。 - 前記動作モード決定手段は、前記特定手段によって特定されたタスクの数と前記状態変化後に起動させる第1タスクの動作モードとを対応させた動作モード設定テーブルを有し、
前記動作モード決定手段は、前記動作モード設定テーブルに基づいて、第1タスクの動作モードを決定する
ことを特徴とする請求項7記載のマルチタスク制御装置。 - 前記動作モード決定手段は、
前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な負荷を算出する負荷算出手段と、
前記負荷算出手段が算出した負荷と前記第1タスクの各動作モードの処理に要する負荷とをそれぞれ比較する比較手段とを備え、
前記動作モード決定手段は、前記比較手段による比較結果に基づいて、第1タスクの動作モードを決定する
ことを特徴とする請求項7記載のマルチタスク制御装置。 - 前記動作モード決定手段は、さらに
各前記タスクの起動要求を受け付ける起動要求受付手段と、
前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記負荷算出手段が算出した負荷が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する起動禁止手段と
を備えることを特徴とする請求項10記載のマルチタスク制御装置。 - 前記動作モード決定手段は、さらに
各前記タスクの起動要求を受け付ける起動要求受付手段と、
前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する起動禁止手段と
を備えることを特徴とする請求項10記載のマルチタスク制御装置。 - 前記動作モード決定手段は、
前記状態変化後に起動させる第1タスクの処理に対して割り当て可能な命令数を算出する命令数算出手段と、
前記命令数算出手段が算出した命令数と前記第1タスクの各動作モードの処理に要する命令数とをそれぞれ比較する比較手段とを備え、
前記動作モード決定手段は、前記比較手段による比較結果に基づいて、動作モードを決定する
ことを特徴とする請求項7記載のマルチタスク制御装置。 - 前記動作モード決定手段は、さらに
各前記タスクの起動要求を受け付ける起動要求受付手段と、
前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合において、前記命令数算出手段が算出した命令数が第1タスクの最も低い機能の動作モードに対して設定されたしきい値未満であるとき、前記他のタスクの起動を禁止する禁止手段と
を備えることを特徴とする請求項13記載のマルチタスク制御装置。 - 前記動作モード決定手段は、さらに
各前記タスクの起動要求を受け付ける起動要求受付手段と、
前記第1タスクの処理中に前記起動要求受付手段が第1タスク以外の他のタスクの起動要求を受け付けた場合、前記他のタスクの起動を禁止する禁止手段と
を備えることを特徴とする請求項13記載のマルチタスク制御装置。 - 前記モード制御手段は、前記動作モード決定手段が決定した動作モードに対応付けられたパラメータを第1タスクに設定し、当該パラメータに対応する動作モードで第1タスクをプロセッサに処理させる
ことを特徴とする請求項7記載のマルチタスク制御装置。 - 複数の動作モードを有する第1タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置としてコンピュータに機能させるプログラムであって、
コンピュータを、
前記マルチタスク制御装置が備える、前記第1タスクを起動すべきか否かを判断する判断手段および前記判断手段が前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御手段
として機能させるプログラム。 - 複数の動作モードを有する第1タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御方法であって、
前記第1タスクを起動すべきか否かを判断する判断ステップと、
前記判断ステップで前記第1タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる機能に対応する動作モードで第1タスクをプロセッサに処理させるモード制御ステップと
を含むことを特徴とするマルチタスク制御方法。 - 複数の動作モードを有する音楽再生タスクを含む複数のタスクをプロセッサに並行して処理させるマルチタスク制御装置を備える音楽データ再生装置であって、
前記マルチタスク制御装置は、
前記音楽再生タスクを起動すべきか否かを判断する判断手段と、
前記判断手段が前記音楽再生タスクを起動すべきと判断した場合に、前記プロセッサの処理能力の範囲内で処理できる最も音質の高い機能に対応する動作モードで音楽再生タスクをプロセッサに処理させるモード制御手段とを備える
ことを特徴とする音楽データ再生装置。 - 前記音楽データ再生装置は、携帯性を有し、
前記プロセッサに並行して処理される音楽再生タスク以外の他のタスクは、TVビュー、ブラウジング、メールおよび通話の少なくともいずれか1つである
ことを特徴とする請求項19記載の音楽データ再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050482A JP2004078889A (ja) | 2002-06-20 | 2003-02-27 | マルチタスク制御装置および音楽データ再生装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002180629 | 2002-06-20 | ||
JP2003050482A JP2004078889A (ja) | 2002-06-20 | 2003-02-27 | マルチタスク制御装置および音楽データ再生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004078889A true JP2004078889A (ja) | 2004-03-11 |
Family
ID=32032580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003050482A Withdrawn JP2004078889A (ja) | 2002-06-20 | 2003-02-27 | マルチタスク制御装置および音楽データ再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004078889A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006056171A (ja) * | 2004-08-20 | 2006-03-02 | Ricoh Co Ltd | 設定管理装置および画像形成装置 |
JP2008249971A (ja) * | 2007-03-30 | 2008-10-16 | Kenwood Corp | 音声信号処理装置、音声信号処理方法及びプログラム |
WO2009034609A1 (ja) * | 2007-09-11 | 2009-03-19 | Panasonic Corporation | 携帯端末装置及びアプリケーション実行制御方法 |
JP2010108295A (ja) * | 2008-10-30 | 2010-05-13 | Ntt Docomo Inc | 移動機及びアプリケーションの切替方法 |
JP2012531677A (ja) * | 2009-06-26 | 2012-12-10 | ヴイエムウェア インク | 仮想モバイル機器の使用制御 |
JP2016507173A (ja) * | 2013-01-15 | 2016-03-07 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | バイノーラルのオーディオ処理 |
-
2003
- 2003-02-27 JP JP2003050482A patent/JP2004078889A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006056171A (ja) * | 2004-08-20 | 2006-03-02 | Ricoh Co Ltd | 設定管理装置および画像形成装置 |
JP2008249971A (ja) * | 2007-03-30 | 2008-10-16 | Kenwood Corp | 音声信号処理装置、音声信号処理方法及びプログラム |
WO2009034609A1 (ja) * | 2007-09-11 | 2009-03-19 | Panasonic Corporation | 携帯端末装置及びアプリケーション実行制御方法 |
JP2010108295A (ja) * | 2008-10-30 | 2010-05-13 | Ntt Docomo Inc | 移動機及びアプリケーションの切替方法 |
US8789064B2 (en) | 2008-10-30 | 2014-07-22 | Ntt Docomo, Inc. | Mobile device and application switching method |
JP2012531677A (ja) * | 2009-06-26 | 2012-12-10 | ヴイエムウェア インク | 仮想モバイル機器の使用制御 |
JP2016507173A (ja) * | 2013-01-15 | 2016-03-07 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | バイノーラルのオーディオ処理 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3437337B1 (en) | Application programing interface for adaptive audio rendering | |
US20100063825A1 (en) | Systems and Methods for Memory Management and Crossfading in an Electronic Device | |
CN102150135A (zh) | 用于在多线程处理器中分配中断的方法及系统 | |
WO2007066271A2 (en) | Resource control | |
EP1514182A2 (en) | Multitask control device and music data reproduction device | |
KR100690854B1 (ko) | 멀티태스킹이 가능한 휴대용 단말기 및 그의 멀티태스킹처리방법 | |
WO2012100032A1 (en) | Dynamic video switching | |
US20160072856A1 (en) | Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform | |
JP2009536752A (ja) | オーディオプラットフォームに適応したオーディオ・デコーディングのためのオーディオ・ストリームの優先順位付け | |
CN110321096A (zh) | 一种多路音频智能控制方法及相关装置和设备 | |
JP2007251553A (ja) | リアルタイム処理装置及びその方法 | |
JP2004078889A (ja) | マルチタスク制御装置および音楽データ再生装置 | |
EP2107737A1 (en) | Method for controlling a buffer memory | |
JP2014507681A (ja) | 帯域幅を拡張する方法および装置 | |
CN113423007A (zh) | 多音频播放的控制方法、装置、电子设备及存储介质 | |
CN112840663A (zh) | 视频编码方法、装置、电子设备及存储介质 | |
US7398528B2 (en) | Method and system for efficient multiprocessor processing in a mobile wireless communication device | |
US7707610B2 (en) | Telecommunication device and method of multimedia data processing via the telecommunication device having at least two processors | |
JP2010102587A (ja) | 情報処理装置 | |
JP4609113B2 (ja) | プロセッサ | |
US20040261077A1 (en) | Media processing apparatus and media processing method | |
CN111444022B (zh) | 数据处理方法、系统以及电子设备 | |
US20060069457A1 (en) | Dynamically adjustable shared audio processing in dual core processor | |
CN110915223A (zh) | 发送设备、发送方法、接收设备、接收方法和程序 | |
CN112202961A (zh) | 一种音频通路切换方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050905 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20060623 |