JP2004021884A - Multitasking processor and mobile communications terminal - Google Patents
Multitasking processor and mobile communications terminal Download PDFInfo
- Publication number
- JP2004021884A JP2004021884A JP2002179421A JP2002179421A JP2004021884A JP 2004021884 A JP2004021884 A JP 2004021884A JP 2002179421 A JP2002179421 A JP 2002179421A JP 2002179421 A JP2002179421 A JP 2002179421A JP 2004021884 A JP2004021884 A JP 2004021884A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processing
- tasks
- control unit
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、複数のタスクを時分割で処理するDSP(Digital Signal Processor)等のようなマルチタスクプロセッサおよびそのマルチタスクプロセッサを備えた移動通信端末に関する。
【0002】
【従来の技術】
移動通信端末では、例えば送受信処理に関わるものなどのような一部の機能の制御をDSPでのファームウェア処理により行うことがある。
【0003】
ここで複数の機能を単一のDSPにより制御する場合、その制御はタスクスケジューラにより時分割に行われる。タスクスケジューラは、例えば66μs周期の基底タイミングで区切られる基底期間毎に1つのタスクを処理することで複数のタスクを時分割に実行させる。
【0004】
具体的には、例えば図5に示すようなタスクテーブルが用いられる。このタスクテーブルには、DSPが実行するべきタスクが全て記述されている。これらのタスクにはシリアルな番号が付与されている。またタスクテーブルには、各タスクに対してそのタスクのエントリの有無を設定できるようになっている。そしてDSPは、新たな基底タイミングが到来する毎に、タスクテーブルからエントリされているタスクを巡回的に検索し、ヒットしたタスクを実行する。
【0005】
図5の例では、A〜Zまでの26個のタスクが存在するが、そのうちのA〜Nまでの19個がエントリされている。この場合、図6に示すように、まず最初の基底タイミングとなったことに応じての検索でタスクAがヒットし、このタスクAが次の基底タイミングが到来するまでに実行される。以降、基底タイミングとなる毎にタスクB〜Nが順次選択され、それらが実行される。タスクNが実行されれば、処理が1順したことになる。なお図6において、「実効タスク」と示されるものが各基底タイミングにて実行されるタスクである。
【0006】
ところで、各タスクのエントリは、そのタスクが完了した時点で解除される。図6の例では、1巡目にてタスクC,D,L,M,Nが完了している。このため2巡目では、タスクA,BとタスクE〜Kとが基底タイミング毎に実行される。さらに2巡目では、タスクE〜Kが完了している。そこで3巡目では、タスクA,Bが基底タイミング毎に実行される。この3巡目では、タスクAが完了している。従って、残るタスクはタスクBのみであり、このタスクBが4巡目からn巡目まで連続して実行される。
【0007】
このようにして、エントリされているタスクが均等な割合で順次選択されて、時分割に実行される。
【0008】
【発明が解決しようとする課題】
ところでタスクの中には、制御対象からの応答を受けるのに一定時間の待機が必要となるものがある。例えばチャネル符号器やチャネル復号器の場合、フレーム単位のデータを処理するのに一定時間を要する。すなわち、DSPがチャネル符号器やチャネル復号器に対して動作設定をしてから、チャネル符号器やチャネル復号器の処理が完了するまでには一定時間を要する。このため、チャネル符号器やチャネル復号器の制御のためのタスクは、チャネル符号器やチャネル復号器が処理中であるときに実行されると単に待ち状態となり、実効的な処理が行われない。
【0009】
図6の例の場合、タスクBがそのようなものであり、例えば2巡目からn−1巡目においては待ち状態になっているとすると、それらのタイミングにおいてはDSPは無駄に処理を行っていることとなり、電力を浪費していることになる。そして移動通信端末の場合には、このような電力の浪費は大きな不具合となってしまう。
【0010】
本発明はこのような事情を考慮してなされたものであり、その目的とするところは、処理の無駄を省いて消費電力の低減を図ることが可能なマルチタスクプロセッサおよび移動通信端末を提供することにある。
【0011】
【課題を解決するための手段】
以上の目的を達成するために本発明は、所定の基底期間毎に複数の有効なタスクの中からこれらの各タスクに対して設定された待機時間が前回実行されてから既に経過している1つのタスクの選出を選出手段が試み、この選出手段によりタスクが選出できたならば、処理制御手段がそのタスクを現基底期間中において処理手段に割り当て、そのタスクを処理手段に処理させる。しかし、選出手段によりタスクが選出できなかったならば、スリープ手段が新たな基底期間となるまで前記処理手段および前記選出手段を動作させないスリープ状態とすることとした。
【0012】
このような手段を講じたことにより、同一タスクどうしの実行間隔は少なくともそのタスクに対して設定された待機時間以上とされる。そして、有効な全てのタスクがこの実行間隔の間の待機状態にある基底期間では選択手段によりいずれのタスクも選択されず、スリープ状態とされる。タスクが実行される基底期間の数が低減され、処理動作を行う時間が短縮される。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態につき説明する。
【0014】
図1は本実施形態に係る移動通信端末のブロック図である。
【0015】
この図に示すように本実施形態の移動通信端末は、アンテナ1、デュプレクサ2、受信部3、復調器4、チャネル復号器5、DSP6、MPU7、MPUインタフェース8、チャネル符号器9、変調器10、送信部11および無線環境監視器12を有する。受信部3はさらに、無線部(RF)3aおよびアナログフロントエンド部(AFE)3bを有する。送信部11はさらに、アナログフロントエンド部(AFE)11aおよび無線部(RF)11bを有する。
【0016】
図示しない基地局から送信された下り方向の無線周波信号は、アンテナ1で受信されてデュプレクサ2を介して受信部3に入力される。無線周波信号は受信部3では、無線部3aにて他の周波数成分と分離され、受信信号とされる。この受信信号は、アナログフロントエンド部3bにてディジタル処理された上で、復調器4へと与えられる。受信信号は復調器4で復調がなされ、ベースバンドに変換される。さらに受信信号は、チャネル復号器5で所望チャネルに関する受信信号を抽出するための復号処理が施される。チャネル復号器5で抽出された受信信号は、DSP6へと与えられる。
【0017】
DSP6は、ファームウェア処理により制御された演算処理により、制御部6a、復号器6bおよび符号器6cとしての機能を実現する。チャネル復号器5からDSP6へと与えられた受信信号は、制御部6aを介して復号器6bに与えられる。受信信号は、この復号器6bにより誤り訂正復号や音声復号などが施される。そして復号がなされた受信信号は、MPU7へと与えられる。
【0018】
MPU7は、当該移動通信端末の全体を統括制御する。MPU7は復号器6bから与えられる受信信号に基づき、例えば受話音声の再生などのための処理を行う。MPU7とDSP6の制御部6aとは、MPUインタフェース8を介して、各種の制御要求や結果応答などの情報を互いに授受する。MPU7は、送話音声信号などの送信信号を、符号器6cへと与える。
【0019】
送信信号は、符号器6cにより音声符号化や誤り訂正符号化などが施される。そして符号化がなされた送信信号は、制御部6aを介してチャネル符号器9に与えられる。送信信号は、チャネル符号器9で無線プロトコルに則ったフレーム形態とされる。送信信号はさらに変調器10に与えられ、ここで変調が施されて無線周波帯の信号とされる。こののち送信信号は、アナログフロントエンド部11aによりアナログ化されたのち、無線部11bによりデュプレクサ2およびアンテナ1を介して図示しない基地局に向けて無線送信される。
【0020】
無線環境監視器12は、ハンドオーバ制御などのために無線環境の監視を行い、監視結果を制御部6aに与える。
【0021】
ところで制御部6aは、MPU7の制御の下に、受信部3、復調器4、チャネル復号器5、復号器6b、符号器6c、チャネル符号器9、変調器10、送信部11および無線環境監視器12を制御する。この制御を行うために制御部6aは、タスク処理部、タスク選出部、タスク処理制御部およびスリープ制御部としての機能を有している。
【0022】
ここでタスク処理部は、実際にタスクの処理を実行するために演算処理などを行う。タスク処理部は、実行するタスクを任意に変更可能であり、そのタスクはタスク処理制御部により割り当てられる。タスク選出部は、基底タイミングとなる毎に後述するタスクテーブルを参照して、タスク処理部に割り当てるタスクを選出する。タスク処理制御部は、タスク選出手段によりタスクが選出されたならばそのタスクをタスク処理手段に割り当てる。スリープ制御部は、タスク選出手段によりタスクが選出されなかった場合に、新たな基底タイミングが到来するまでの間にDSP6をスリープ状態に設定する。
【0023】
図2(a)はタスクテーブルの一例を示す図である。この図2に示すようにタスクテーブルには、DSPが実行するべきタスクが全て記述されている。ここでは、受信部3、復調器4、チャネル復号器5、復号器6b、符号器6c、チャネル符号器9、変調器10、送信部11および無線環境監視器12をそれぞれ個別に制御する9つのタスクが設定されていて、これらが記述されている。これらのタスクにはシリアルな番号が付与されている。またタスクテーブルには、各タスクに対してそのタスクのエントリの有無を設定できるようになっている。またタスクテーブルには、各タスクに対して予め定められた待機時間が記述されている。さらにタスクテーブルには、各タスクを次に実行するべきタイミングを示す基底タイミング値を設定できるようになっている。なお上記待機時間は、各タスクでの制御対象が所定の処理を行うのに要する時間を考慮して設定されるもので、基底タイミング数で表わされる。
【0024】
次に以上のように構成された移動通信端末の動作につき説明する。
【0025】
制御部6aはMPU7から制御開始が要求されると、図3に示すタスクスケジューラ処理を開始する。
【0026】
まず制御部6aはステップST1において、初期化処理を行う。この初期化処理で制御部6aは、ポインタiと各タスクのレジスタ退避/復帰用領域とを初期化する。また制御部6aは、各タスクの実行先頭アドレスをadr()に格納する。さらに制御部6aは、変数Aを「0」に設定する。
【0027】
続いて制御部6aはステップST2において、変数Aが「9」であるか否かを確認する。ここで変数Aが「9」では無いことを確認したならば、制御部6aはステップST3において、ポインタインクリメント処理を行う。ポインタインクリメント処理において制御部6aは、通常はポインタiの値を1つだけ増加させる。ただし、ポインタiの値がタスクテーブルに記述されたタスクの数と同一である場合には、制御部6aはポインタiの値を「1」にする。すなわち本実施形態の場合に制御部6aは、ポインタiの値が「1」〜「8」であるならば、それを「2」〜「9」に変更する。しかし制御部6aは、ポインタiの値が「9」であるならば、それを「10」ではなく「1」に変更する。
【0028】
次に制御部6aはステップST4において、タスクテーブルにおける番号がiであるタスクのエントリを確認する。なお以下では、タスクテーブルにおける番号がiであるタスクをタスク(i)と記述する。
【0029】
ここでタスク(i)がエントリされていることを確認したならば、制御部6aはステップST5において、タスク(i)に対してタスクテーブルに記述されている次実行タイミングt1(i)に現基底タイミング値が到達しているか否かを確認する。なお、基底タイミング値とは、基底タイミング毎にカウントアップされるカウント値である。
【0030】
もし、ステップST4にてタスク(i)がエントリされていないことを確認した場合、あるいはステップST5にて次実行タイミングt1(i)に現タイミングが到達していないことを確認した場合、制御部6aはステップST6において、変数Aの値を1つ増加させる。そしてこの上で制御部6aは処理をステップST2に移行し、それ以降の処理を上述と同様に実行する。
【0031】
ところでタスクテーブルにおいて次実行タイミングは、初期には図2(a)に示すように全てクリアされていて有効な値が設定されていない。次実行タイミングがこのような状態にある場合には、現基底タイミング値がいくつであっても制御部6aはステップST5において次実行タイミングt1(i)に現タイミングが到達していると判定する。あるいは、後述する処理により次実行タイミングt1(i)に実値が設定されているならば、現基底タイミング値が次実行タイミングt1(i)以上である場合に、制御部6aはステップST5において次実行タイミングt1(i)に現タイミングが到達していると判定する。そしてこのように次実行タイミングt1(i)に現タイミングが到達していることをステップST5にて確認した場合には、制御部6aはステップST7において、退避してあるタスク(i)用のレジスタの内容を全てレジスタに復帰させるとともに、実行を開始するアドレスadr(i)を設定する。
【0032】
続いて制御部6aはステップST8において、現在の基底タイミング値を保持しておくために変数t0に代入する。この上で制御部6aはステップST9において、タスク処理を開始する。ここでは、タスク(i)の処理を行う状態にステップST7にて設定してあるから、タスク(i)の処理を開始することになる。
【0033】
タスク処理を行っている状態で、制御部6aはステップST10およびステップST11において、実行中のタスクが完了するか、あるいは割込みが発生するのを待ち受ける。そして実行中のタスクが完了したことをステップST10にて確認したならば、制御部6aはステップST12において、タスク完了処理を行う。このタスク完了処理は、タスク(i)の処理を次回に実行する場合にタスク(i)の先頭から処理が開始されるように設定する処理である。具体的にはタスク完了処理において制御部6aは、タスクテーブル(i)のエントリを解除する。また制御部6aは、タスク(i)のレジスタ退避/復帰用領域を初期化する。さらに制御部6aは、タスク(i)の実行先頭アドレスをadr(i)に設定する。このタスク完了処理が終了したならば、制御部6aは続いてステップST13において、次実行タイミングt1(i)をクリアする。
【0034】
ところで、新たな基底タイミングが到来すると、DSP6に対して割込みが発生する。この割込みの発生をステップST11にて確認した場合には、制御部6aはステップST14において、タスク中断処理を行う。このタスク中断処理は、実行中のタスク処理を停止させるとともに、タスク(i)の処理を次回に実行する場合に上記停止したタスク処理を継続して行うように設定する処理である。具体的にはタスク中断処理において制御部6aは、タスク(i)のレジスタ退避領域に現状での全レジスタの内容を退避させる。また制御部6aは、タスク処理を停止した際の実行アドレスの次の実行アドレスをadr(i)に設定する。このタスク中断処理が終了したならば、制御部6aは続いてステップST15において、次実行タイミングt1(i)を変数t0の値にタスク(i)に関する待機時間ts(i)を加算して求まる値に更新する。例えば、基底タイミング値が「31」であるときにタスク(1)の処理を行ったのであれば、タスク(1)に関する待機時間ts(1)が図2に示すように「1」であるから、次実行タイミングt1(1)は図2(b)に示すように「32」に更新される。また例えば、基底タイミング値が「32」であるときにタスク(3)の処理を行ったのであれば、タスク(3)に関する待機時間ts(3)が図2に示すように「20」であるから、次実行タイミングt1(3)は図2(b)に示すように「52」に更新される。
【0035】
ステップST13またはステップST15で次実行タイミングt1(i)を更新し終えたならば、制御部6aは続いてステップST16において、変数Aを「0」に変更する。この上で制御部6aは、処理をステップST3に移行し、それ以降の処理を上述と同様にして行う。
【0036】
さて、前述したように、次実行タイミングは初期においては図2(a)に示すように全てクリアされている。このため、1巡目においては、エントリされている全てのタスクが基底タイミング毎に順次実行される。
【0037】
具体的には、エントリが図2(a)に示すような状態にあるのだとすれば、1巡目では図4に示すように番号が「1」「3」「4」「6」「8」であるタスクが順に実行される。そして基底タイミング値が図4に示すようになっているならば、1巡目が終了したときに各タスクに関する次実行タイミングt1(i)は図2(b)に示すように更新される。
【0038】
次の基底タイミングでは、基底タイミング値が「36」であり、タスク(1)に関する次実行タイミングt1(1)の「32」以上となっている。従って、この基底タイミングではタスク(1)が選択され、次の基底タイミングまでの期間ではタスク(1)が実行される。さらに次の基底タイミングでは、基底タイミング値が「37」であるが、これはタスク(3)(4)(6)(8)の次実行タイミングのいずれよりも小さい。このためタスク(3)(4)(6)(8)は選択されることがなく、次実行タイミングが「37」となっているタスク(1)が連続して選択される。このようにして、2巡目および3巡目ではタスク(1)のみが実行される。
【0039】
さて、3巡目においてタスク(1)が完了したとする。そうするとタスク(1)のエントリは解除されるので、残りのエントリはタスク(3)(4)(6)(8)となる。これらのタスクに関する次実行タイミングは、最も小さいものでタスク(3)の「52」であるから、基底タイミング値が「52」である基底タイミングが到来するまでは、制御部6aがステップST5にて「YES」と判定することがない。この結果、制御部6aはステップST6の処理を繰り返し行うこととなり、9つ全てのタスクに関するチェックを終えたならば、変数Aが「9」となる。
【0040】
このようにして変数Aが「9」になったことをステップST2にて確認した場合には、制御部6aはステップST17において、変数Aを「0」にクリアする。この上で制御部6aはステップST18において、割込みが発生するのを待ち受ける。従って、次の基底タイミングが到来するまではDSP6においては何ら処理が行われず、DSP6はスリープ状態となる。そして次の基底タイミングが到来して割込みが発生したことをステップST18にて確認したならば、制御部6aは処理をステップST3に移行し、それ以降の処理を上述と同様に行う。なお図4においては、実効タスクとして「S」と示されている期間がスリープ状態となっている期間を示している。
【0041】
これにより、基底タイミング値が「52」となるまでの間の各期間においては、DSP6は繰り返しスリープ状態となる。
【0042】
基底タイミング値が「52」となる基底タイミングにおいては、ポインタiが「3」であるときに制御部6aはステップST4で「有」と、またステップST5で「YES」とそれぞれ判定することになる。この結果、この基底タイミングにおいては、タスク(3)が実行される。これが4巡目となる。
【0043】
この後、エントリされたタスクに関する次実行タイミングは、最も小さいものでタスク(4)の「58」となるから、上述と同様にして、基底タイミング値が「58」となるまでの間の各期間においては、DSP6は繰り返しスリープ状態となる。
【0044】
そして、基底タイミング値が「58」「59」「60」である各期間に、タスク(4)(6)(8)がそれぞれ実行される。これらが5巡目となる。
【0045】
このように本実施形態によれば、同一タスクどうしの実行間隔は少なくともそのタスクに対して設定された待機時間以上とされる。そして、エントリされている全てのタスクがこの実行間隔の間の待機状態にある基底タイミングではいずれのタスクも選択されず、DSP6はスリープ状態とされる。従って、タスクの実行が無駄に行われることが無く、消費電力が低減される。
【0046】
また本実施形態によれば、待機時間が大きく設定されたタスクに比べて、待機時間が小さく設定されたタスクが高頻度で実行されることになる。従って、短周期で実行可能なタスクを効率よく処理することが可能となる。
【0047】
なお、本発明は上記実施形態に限定されるものではない。例えば、本発明のマルチタスクプロセッサは、CPUを主体として、このCPUに上記実施形態における制御部6aと同様な処理を行わせることによっても実現可能である。
【0048】
また、本発明のマルチタスクプロセッサが適用される装置は移動通信端末には限らない。
【0049】
また、処理対象とするタスクの内容や数はそれぞれ任意であって良い。
【0050】
このほか、本発明の要旨を逸脱しない範囲で種々の変形実施が可能である。
【0051】
【発明の効果】
本発明によれば、同一タスクどうしの実行間隔は少なくともそのタスクに対して設定された待機時間以上とし、有効な全てのタスクがこの実行間隔の間の待機状態にある基底期間では、スリープ状態とすることとしたので、タスクが実行される基底期間の数が低減され、処理動作を行う時間が短縮される。この結果、処理の無駄を省いて消費電力の低減を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る移動通信端末のブロック図。
【図2】タスクテーブルの一例を示す図。
【図3】タスクスケジューラ処理のフローチャート。
【図4】タスクが実行される様子の具体例を示す図。
【図5】従来のタスクテーブルの一例を示す図。
【図6】従来のDSPにてタスクが実行される様子の具体例を示す図。
【符号の説明】
1…アンテナ
2…デュプレクサ
3…受信部
4…復調器
5…チャネル復号器
6…DSP
6a…制御部
6b…復号器
6c…符号器
7…MPU
8…MPUインタフェース
9…チャネル符号器
10…変調器
11…送信部
12…無線環境監視器[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a multitask processor such as a DSP (Digital Signal Processor) for processing a plurality of tasks in a time-division manner, and a mobile communication terminal including the multitask processor.
[0002]
[Prior art]
In a mobile communication terminal, for example, control of some functions such as those related to transmission / reception processing may be performed by firmware processing in a DSP.
[0003]
When a plurality of functions are controlled by a single DSP, the control is performed in a time-sharing manner by a task scheduler. The task scheduler executes a plurality of tasks in a time-division manner by processing one task for each base period divided by a base timing of a 66 μs cycle, for example.
[0004]
Specifically, for example, a task table as shown in FIG. 5 is used. This task table describes all tasks to be executed by the DSP. These tasks have serial numbers. In the task table, the presence or absence of an entry for each task can be set for each task. Then, every time a new base timing arrives, the DSP cyclically searches for a task entered from the task table and executes the hit task.
[0005]
In the example of FIG. 5, there are 26 tasks A to Z, of which 19 entries A to N are entered. In this case, as shown in FIG. 6, first, the task A is hit in the search according to the first base timing, and this task A is executed until the next base timing arrives. Thereafter, each time the base timing is reached, the tasks B to N are sequentially selected and executed. If the task N is executed, the processing is in one order. In FIG. 6, what is indicated as "effective task" is a task executed at each base timing.
[0006]
By the way, the entry of each task is released when the task is completed. In the example of FIG. 6, tasks C, D, L, M, and N have been completed in the first cycle. Therefore, in the second round, tasks A and B and tasks EK are executed at each base timing. In the second round, tasks EK are completed. Therefore, in the third round, tasks A and B are executed at each base timing. In the third round, task A has been completed. Therefore, the only remaining task is task B, and this task B is executed continuously from the fourth round to the n-th round.
[0007]
In this way, the entered tasks are sequentially selected at an equal ratio and are executed in a time-division manner.
[0008]
[Problems to be solved by the invention]
Some tasks require a certain period of time to wait for a response from the control target. For example, in the case of a channel encoder or a channel decoder, it takes a certain time to process data in frame units. That is, it takes a certain time from when the DSP sets the operation of the channel encoder or the channel decoder to when the processing of the channel encoder or the channel decoder is completed. For this reason, if the task for controlling the channel encoder and the channel decoder is executed while the channel encoder and the channel decoder are being processed, the task simply enters a waiting state and no effective processing is performed.
[0009]
In the case of the example in FIG. 6, if the task B is such, and for example, it is in the waiting state from the second round to the (n−1) th round, the DSP performs useless processing at those timings. Power is being wasted. In the case of a mobile communication terminal, such waste of power becomes a serious problem.
[0010]
The present invention has been made in view of such circumstances, and an object of the present invention is to provide a multitask processor and a mobile communication terminal capable of reducing power consumption by eliminating waste of processing. It is in.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, according to the present invention, a standby time set for each of a plurality of valid tasks for a predetermined base period has elapsed since the last execution of the task. The selecting unit attempts to select one task, and if the task can be selected by the selecting unit, the processing control unit assigns the task to the processing unit during the current base period, and causes the processing unit to process the task. However, if the task cannot be selected by the selecting unit, the sleep unit is set to a sleep state in which the processing unit and the selecting unit are not operated until the sleep unit reaches a new base period.
[0012]
By taking such a measure, the execution interval between the same tasks is set to at least the standby time set for the tasks. Then, in the base period in which all the valid tasks are in the standby state during the execution interval, none of the tasks are selected by the selection unit, and the sleep state is set. The number of base periods in which tasks are executed is reduced, and the time for performing processing operations is reduced.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0014]
FIG. 1 is a block diagram of the mobile communication terminal according to the present embodiment.
[0015]
As shown in the figure, the mobile communication terminal according to the present embodiment includes an
[0016]
A downlink radio frequency signal transmitted from a base station (not shown) is received by the
[0017]
The
[0018]
The
[0019]
The transmission signal is subjected to voice coding, error correction coding, and the like by the encoder 6c. Then, the encoded transmission signal is provided to the
[0020]
The wireless environment monitor 12 monitors the wireless environment for handover control or the like, and provides the monitoring result to the control unit 6a.
[0021]
The control unit 6a, under the control of the
[0022]
Here, the task processing unit performs arithmetic processing and the like in order to actually execute the processing of the task. The task processing unit can arbitrarily change the task to be executed, and the task is assigned by the task processing control unit. The task selection unit selects a task to be assigned to the task processing unit by referring to a task table described later each time the base timing is reached. When a task is selected by the task selecting means, the task processing control unit assigns the task to the task processing means. The sleep control unit sets the
[0023]
FIG. 2A is a diagram illustrating an example of the task table. As shown in FIG. 2, all tasks to be executed by the DSP are described in the task table. Here, nine units for individually controlling the receiving
[0024]
Next, the operation of the mobile communication terminal configured as described above will be described.
[0025]
When the control start is requested from the
[0026]
First, in step ST1, the control unit 6a performs an initialization process. In this initialization process, the control unit 6a initializes the pointer i and the register save / restore area of each task. The control unit 6a stores the execution start address of each task in adr (). Further, the control unit 6a sets the variable A to “0”.
[0027]
Subsequently, in step ST2, the control unit 6a checks whether or not the variable A is “9”. Here, if it is confirmed that the variable A is not “9”, the control unit 6a performs a pointer increment process in step ST3. In the pointer increment process, the control unit 6a normally increases the value of the pointer i by one. However, when the value of the pointer i is the same as the number of tasks described in the task table, the control unit 6a sets the value of the pointer i to “1”. That is, in the case of the present embodiment, if the value of the pointer i is “1” to “8”, the control unit 6a changes it to “2” to “9”. However, if the value of the pointer i is “9”, the control unit 6a changes it to “1” instead of “10”.
[0028]
Next, in step ST4, the control unit 6a checks the entry of the task whose number is i in the task table. Hereinafter, the task whose number is i in the task table is described as a task (i).
[0029]
If it is confirmed that the task (i) has been entered, the control unit 6a determines in step ST5 that the task (i) has the current base at the next execution timing t1 (i) described in the task table. Check whether the timing value has been reached. Note that the base timing value is a count value that is counted up for each base timing.
[0030]
If it is confirmed in step ST4 that the task (i) has not been entered, or if it is confirmed in step ST5 that the current timing has not reached the next execution timing t1 (i), the control unit 6a Increases the value of the variable A by one in step ST6. Then, the control section 6a shifts the processing to step ST2 and executes the subsequent processing in the same manner as described above.
[0031]
By the way, in the task table, the next execution timing is initially cleared as shown in FIG. 2A, and no effective value is set. When the next execution timing is in such a state, the control unit 6a determines that the current timing has reached the next execution timing t1 (i) in step ST5 regardless of the current base timing value. Alternatively, if the actual value is set in the next execution timing t1 (i) by the processing described later, and the current base timing value is equal to or longer than the next execution timing t1 (i), the control unit 6a determines in step ST5 that It is determined that the current timing has reached the execution timing t1 (i). When it is confirmed in step ST5 that the current timing has reached the next execution timing t1 (i), the control unit 6a determines in step ST7 that the saved task (i) register Is returned to the register, and an address adr (i) at which execution is started is set.
[0032]
Subsequently, in step ST8, the control unit 6a substitutes the current base timing value for the variable t0 in order to hold the current base timing value. Then, the control unit 6a starts task processing in step ST9. Here, since the state in which the processing of the task (i) is performed is set in step ST7, the processing of the task (i) is started.
[0033]
In the state where the task processing is being performed, the control unit 6a waits for the completion of the task being executed or the occurrence of an interrupt in step ST10 and step ST11. Then, when it is confirmed in step ST10 that the task being executed has been completed, the control unit 6a performs a task completion process in step ST12. The task completion process is a process of setting the process to be started from the beginning of the task (i) when the process of the task (i) is executed next time. Specifically, in the task completion processing, the control unit 6a releases the entry of the task table (i). The control unit 6a initializes a register save / restore area for the task (i). Further, the control unit 6a sets the execution start address of the task (i) to adr (i). When this task completion processing is completed, the control section 6a subsequently clears the next execution timing t1 (i) in step ST13.
[0034]
By the way, when a new base timing arrives, an interrupt occurs to the
[0035]
When the next execution timing t1 (i) has been updated in step ST13 or step ST15, the control unit 6a subsequently changes the variable A to “0” in step ST16. Then, the control unit 6a shifts the processing to step ST3, and performs the subsequent processing in the same manner as described above.
[0036]
By the way, as described above, the next execution timing is initially all cleared as shown in FIG. Therefore, in the first cycle, all the entered tasks are sequentially executed at each base timing.
[0037]
Specifically, assuming that the entry is in a state as shown in FIG. 2A, in the first round, the numbers are "1", "3", "4", "6", and "6" as shown in FIG. 8 "are sequentially executed. Then, if the base timing value is as shown in FIG. 4, when the first round is completed, the next execution timing t1 (i) for each task is updated as shown in FIG. 2 (b).
[0038]
At the next base timing, the base timing value is “36”, which is equal to or longer than “32” of the next execution timing t1 (1) for the task (1). Therefore, the task (1) is selected at this base timing, and the task (1) is executed in a period until the next base timing. At the next base timing, the base timing value is “37”, which is smaller than any of the next execution timings of the tasks (3), (4), (6), and (8). Therefore, the tasks (3), (4), (6), and (8) are not selected, and the task (1) whose next execution timing is “37” is continuously selected. Thus, only the task (1) is executed in the second and third rounds.
[0039]
Now, assume that task (1) is completed in the third round. Then, the entry of the task (1) is released, and the remaining entries become the tasks (3), (4), (6), and (8). The next execution timing for these tasks is the smallest, which is “52” of task (3). Therefore, until the base timing having the base timing value of “52” arrives, the control unit 6a determines in step ST5. There is no determination of “YES”. As a result, the control unit 6a repeatedly performs the process of step ST6, and when the check on all nine tasks is completed, the variable A becomes “9”.
[0040]
When it is confirmed in step ST2 that the variable A has become "9", the control unit 6a clears the variable A to "0" in step ST17. Then, in step ST18, the control unit 6a waits for an interrupt to occur. Therefore, no processing is performed in the
[0041]
As a result, in each period until the base timing value becomes “52”, the
[0042]
At the base timing at which the base timing value is “52”, when the pointer i is “3”, the control unit 6a determines “Yes” in step ST4 and determines “YES” in step ST5. . As a result, the task (3) is executed at the base timing. This is the fourth round.
[0043]
Thereafter, the next execution timing for the entered task is the smallest, which is “58” of task (4). Therefore, in the same manner as described above, each period until the base timing value becomes “58”. In, the
[0044]
Then, the tasks (4), (6), and (8) are executed in each of the periods in which the base timing values are “58”, “59”, and “60”. These are the fifth rounds.
[0045]
As described above, according to the present embodiment, the execution interval between the same tasks is set to at least the standby time set for the tasks. Then, at the base timing when all the tasks entered are in the standby state during this execution interval, no task is selected, and the
[0046]
Further, according to the present embodiment, a task for which the standby time is set shorter is executed more frequently than a task for which the standby time is set longer. Therefore, tasks that can be executed in a short period can be efficiently processed.
[0047]
Note that the present invention is not limited to the above embodiment. For example, the multitask processor of the present invention can also be realized by using a CPU as a main body and causing the CPU to perform the same processing as the control unit 6a in the above embodiment.
[0048]
The device to which the multitask processor of the present invention is applied is not limited to a mobile communication terminal.
[0049]
The content and number of tasks to be processed may be arbitrary.
[0050]
In addition, various modifications can be made without departing from the spirit of the present invention.
[0051]
【The invention's effect】
According to the present invention, the execution interval between the same tasks is at least equal to or longer than the standby time set for the task, and in the base period in which all valid tasks are in the standby state during this execution interval, the sleep state is set. Therefore, the number of base periods in which the task is executed is reduced, and the time for performing the processing operation is shortened. As a result, it is possible to reduce power consumption without wasting processing.
[Brief description of the drawings]
FIG. 1 is a block diagram of a mobile communication terminal according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of a task table.
FIG. 3 is a flowchart of a task scheduler process.
FIG. 4 is a diagram showing a specific example of how a task is executed.
FIG. 5 is a diagram showing an example of a conventional task table.
FIG. 6 is a diagram showing a specific example of how a task is executed by a conventional DSP.
[Explanation of symbols]
DESCRIPTION OF
6a ...
8
Claims (2)
所定の基底期間毎に複数の有効なタスクの中からこれらの各タスクに対して設定された待機時間が前回実行されてから既に経過しているタスクを1つ選出する選出手段と、
この選出手段によりタスクが選出できたならばそのタスクを現基底期間中において前記処理手段に割り当てる処理制御手段と、
前記選出手段によりタスクが選出できなかったならば新たな基底期間となるまで、前記処理手段および前記選出手段を動作させないスリープ状態とするスリープ手段とを具備したマルチタスクプロセッサ。Processing means for processing the assigned task;
Selecting means for selecting, from a plurality of valid tasks for each predetermined base period, one task for which a standby time set for each of these tasks has already elapsed since the previous execution;
Processing control means for assigning the task to the processing means during the current base period if the task can be selected by the selection means;
A multi-task processor comprising: a sleep unit that causes the processing unit and the selection unit to be in a sleep state until a new base period is reached if a task cannot be selected by the selection unit.
所定の基底期間毎にそれぞれ移動通信のための処理を複数のタスクのうちの有効なタスクの中からこれらの各タスクに対して設定された待機時間が前回実行されてから既に経過しているタスクを1つ選出する選出手段と、
この選出手段によりタスクが選出できたならばそのタスクを現基底期間中において前記処理手段に割り当てる処理制御手段と、
前記選出手段によりタスクが選出できなかったならば新たな基底期間となるまで、前記処理手段および前記選出手段を動作させないスリープ状態とするスリープ手段とを具備したマルチタスクプロセッサを備える移動通信端末。Processing means for processing the assigned task;
For each predetermined base period, processing for mobile communication is performed from among valid tasks among a plurality of tasks. Tasks for which a standby time set for each of these tasks has already elapsed since the previous execution. A selection means for selecting one,
Processing control means for assigning the task to the processing means during the current base period if the task can be selected by the selection means;
A mobile communication terminal comprising a multi-task processor comprising: a sleep unit that does not operate the processing unit and the selection unit until a new base period is reached if a task cannot be selected by the selection unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179421A JP2004021884A (en) | 2002-06-20 | 2002-06-20 | Multitasking processor and mobile communications terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179421A JP2004021884A (en) | 2002-06-20 | 2002-06-20 | Multitasking processor and mobile communications terminal |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004021884A true JP2004021884A (en) | 2004-01-22 |
Family
ID=31176820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002179421A Pending JP2004021884A (en) | 2002-06-20 | 2002-06-20 | Multitasking processor and mobile communications terminal |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004021884A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7061612B2 (en) * | 2004-09-28 | 2006-06-13 | Osram Sylvania Inc. | LED Polarimeter |
WO2013175579A1 (en) | 2012-05-22 | 2013-11-28 | 富士通株式会社 | Bio-information processing device, bio-information processing method, and program |
CN112418615A (en) * | 2020-11-04 | 2021-02-26 | 北京中电飞华通信有限公司 | Timing strategy execution method and device |
-
2002
- 2002-06-20 JP JP2002179421A patent/JP2004021884A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7061612B2 (en) * | 2004-09-28 | 2006-06-13 | Osram Sylvania Inc. | LED Polarimeter |
WO2013175579A1 (en) | 2012-05-22 | 2013-11-28 | 富士通株式会社 | Bio-information processing device, bio-information processing method, and program |
CN112418615A (en) * | 2020-11-04 | 2021-02-26 | 北京中电飞华通信有限公司 | Timing strategy execution method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3886535B2 (en) | Selective call transceiver and method for setting power saving state therein | |
US7899433B2 (en) | Method and apparatus for saving power by controlling listening periods in wireless telecommunication device having a plurality for power-saving modes | |
EP1628416B1 (en) | Method and system for reducing power consumption of IRDA enabled handsets by turning on/off an IRDA port dynamically | |
JP4651478B2 (en) | Radio access control apparatus, mobile station and method | |
US8161276B2 (en) | Demodulator device and method of operating the same | |
MX2007011095A (en) | Control of sleep modes in a wireless transceiver. | |
JP2012522456A (en) | Method and apparatus in communication system | |
JP4864350B2 (en) | Wireless communication terminal and reception control method | |
TWI427987B (en) | Communication apparatus and method and mobile telephone | |
JP5229740B2 (en) | COMMUNICATION SYSTEM, TRANSMISSION DEVICE, RECEPTION DEVICE, FIRMWARE UPDATE METHOD, AND PROGRAM | |
JP3338818B2 (en) | Power management system for wireless LAN terminals | |
US7499732B2 (en) | Apparatus and method for saving power of a mobile communication terminal | |
CN106233790B (en) | Method and device for transmitting indication message to be received | |
JP2004021884A (en) | Multitasking processor and mobile communications terminal | |
US20230111984A1 (en) | Methods and Apparatus for Adaptive Power Profiling in A Baseband Processing System | |
CN110611947B (en) | Discontinuous reception processing method, user terminal and network side equipment | |
CN111406394A (en) | Method and device for transmitting data | |
JP2678690B2 (en) | Receiver controller method and apparatus | |
CN111867009A (en) | Information indicating method, receiving method, network equipment and terminal | |
JP2008301040A (en) | Mobile communication terminal device | |
JP4612205B2 (en) | Control unit for communication system terminal, cordless telecommunications system terminal including the control unit, and control method therefor | |
US20050143058A1 (en) | Method for detecting receipt of input in wireless communication terminal by using interrupt handler | |
JPH0884111A (en) | Radio system | |
WO2024165346A1 (en) | Method, apparatus, and system for updating discontinuous reception configuration in a wireless device | |
JPS63111734A (en) | Mobile radio communication system |