JP2004021884A - Multitasking processor and mobile communications terminal - Google Patents

Multitasking processor and mobile communications terminal Download PDF

Info

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
Application number
JP2002179421A
Other languages
Japanese (ja)
Inventor
Kazutoshi Shibuya
澁谷 和俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002179421A priority Critical patent/JP2004021884A/en
Publication of JP2004021884A publication Critical patent/JP2004021884A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce electric power consumption by improving a system and excluding waste of processing since no task is selected in some selecting means and a sleep state is provided in a base period wherein all effective tasks are in stand-by states between execution intervals and the number of base periods with executed tasks can be reduced. <P>SOLUTION: A control part 6a in a DSP 6 attempts every base timing to select one task with a stand-by time that is set with respect to each task and has already passed from prior execution from entered tasks. If a task is selected, the control part 6a processes the task until the next base timing. If a task can not be selected, the control part 6a provides the sleep state until a new base period. <P>COPYRIGHT: (C)2004,JPO

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 antenna 1, a duplexer 2, a receiving unit 3, a demodulator 4, a channel decoder 5, a DSP 6, an MPU 7, an MPU interface 8, a channel encoder 9, a modulator 10 , A transmission unit 11 and a wireless environment monitor 12. The receiving section 3 further has a radio section (RF) 3a and an analog front end section (AFE) 3b. The transmission unit 11 further includes an analog front end unit (AFE) 11a and a radio unit (RF) 11b.
[0016]
A downlink radio frequency signal transmitted from a base station (not shown) is received by the antenna 1 and input to the receiving unit 3 via the duplexer 2. In the receiving section 3, the radio frequency signal is separated from other frequency components by the radio section 3a to be a received signal. This received signal is digitally processed by the analog front end unit 3b, and is provided to the demodulator 4. The received signal is demodulated by the demodulator 4 and converted to a baseband. Further, the received signal is subjected to decoding processing for extracting a received signal relating to a desired channel by the channel decoder 5. The received signal extracted by the channel decoder 5 is provided to the DSP 6.
[0017]
The DSP 6 implements functions as the control unit 6a, the decoder 6b, and the encoder 6c by arithmetic processing controlled by firmware processing. The received signal provided from channel decoder 5 to DSP 6 is provided to decoder 6b via control unit 6a. The received signal is subjected to error correction decoding, voice decoding, and the like by the decoder 6b. The decoded received signal is supplied to the MPU 7.
[0018]
The MPU 7 controls the entire mobile communication terminal. The MPU 7 performs, for example, a process for reproducing received voice based on the received signal provided from the decoder 6b. The MPU 7 and the control unit 6a of the DSP 6 mutually exchange information such as various control requests and result responses via the MPU interface 8. The MPU 7 supplies a transmission signal such as a transmission voice signal to the encoder 6c.
[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 channel encoder 9 via the control unit 6a. The transmission signal is converted into a frame format in accordance with a wireless protocol by the channel encoder 9. The transmission signal is further provided to a modulator 10, where the signal is modulated to be a signal in a radio frequency band. After that, the transmission signal is converted into an analog signal by the analog front-end unit 11a, and then transmitted by radio to the base station (not shown) via the duplexer 2 and the antenna 1 by the radio unit 11b.
[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 MPU 7, controls the receiving unit 3, the demodulator 4, the channel decoder 5, the decoder 6b, the encoder 6c, the channel encoder 9, the modulator 10, the transmitting unit 11, and the radio environment monitoring. To control the vessel 12. To perform this control, the control unit 6a has functions as a task processing unit, a task selection unit, a task processing control unit, and a sleep control unit.
[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 DSP 6 to a sleep state until a new base timing arrives when a task is not selected by the task selection unit.
[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 unit 3, the demodulator 4, the channel decoder 5, the decoder 6b, the encoder 6c, the channel encoder 9, the modulator 10, the transmitting unit 11, and the radio environment monitor 12 are respectively provided. Tasks are set and these are described. 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. In the task table, a predetermined waiting time is described for each task. Furthermore, the task table can be set with a base timing value indicating the timing at which each task should be executed next. The standby time is set in consideration of the time required for the control target in each task to perform a predetermined process, and is represented by the number of base timings.
[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 MPU 7, the control unit 6a starts the task scheduler process shown in FIG.
[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 DSP 6. When the occurrence of this interrupt is confirmed in step ST11, the control unit 6a performs a task interruption process in step ST14. The task suspension process is a process for stopping the task process being executed and setting to continue the stopped task process when the process of the task (i) is executed next time. Specifically, in the task suspension process, the control unit 6a saves the contents of all registers at the present time in the register save area of the task (i). Further, the control unit 6a sets an execution address next to the execution address when the task processing is stopped to adr (i). When the task suspension processing is completed, the control unit 6a subsequently sets the next execution timing t1 (i) to the value of the variable t0 by adding the waiting time ts (i) for the task (i) in step ST15. Update to For example, if the process of task (1) is performed when the base timing value is “31”, the standby time ts (1) for task (1) is “1” as shown in FIG. The next execution timing t1 (1) is updated to "32" as shown in FIG. Further, for example, if the process of task (3) is performed when the base timing value is “32”, the waiting time ts (3) for task (3) is “20” as shown in FIG. Therefore, the next execution timing t1 (3) is updated to “52” as shown in FIG.
[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 DSP 6 until the next base timing arrives, and the DSP 6 enters a sleep state. Then, when it is confirmed in step ST18 that the next base timing has arrived and an interrupt has occurred, the control unit 6a shifts the processing to step ST3, and performs the subsequent processing in the same manner as described above. In FIG. 4, the period indicated by “S” as the effective task indicates the period in which the task is in the sleep state.
[0041]
As a result, in each period until the base timing value becomes “52”, the DSP 6 repeatedly enters the sleep state.
[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 DSP 6 repeatedly enters the sleep state.
[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 DSP 6 is put into the sleep state. Therefore, the execution of the task is not wasted, and the power consumption is reduced.
[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 SYMBOLS 1 ... Antenna 2 ... Duplexer 3 ... Receiving part 4 ... Demodulator 5 ... Channel decoder 6 ... DSP
6a ... Control unit 6b ... Decoder 6c ... Encoder 7 ... MPU
8 MPU interface 9 Channel encoder 10 Modulator 11 Transmitter 12 Wireless environment monitor

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.
JP2002179421A 2002-06-20 2002-06-20 Multitasking processor and mobile communications terminal Pending JP2004021884A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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