(57)【要約】【課題】割込み禁止等のプロセッサの状態を考慮し、しかもタスク処理及び割込み処理を優先順位がより高いものから適正に実行できるプロセッサを提供する。【解決手段】単位プロセッサＰ０〜Ｐ３、単位プロセッサＰ０〜Ｐ３の管理情報を管理する優先度管理用レジスタ３０１、管理情報及び単位プロセッサＰ０〜Ｐ３に対して要求された割込み処理の優先順位に基づいて、単位プロセッサＰ０〜Ｐ３のうちから割込み処理を実行するものを選択し、選択された単位プロセッサに割込み処理要求を伝達する外部割込み制御部１１を備え、外部割込み制御部１１は、要求された割込み処理及び単位プロセッサＰ０〜Ｐ３で実行されている処理がタスク処理であるか外部割込み処理であるかの別によらず、最も優先順位の低い処理を実行している単位プロセッサを選択する。【選択図】図３
2008123157.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
複数の前記プロセッサの状態及び実行中の処理の優先順位に関する情報を含む管理情報を管理する処理状態管理手段と、
前記処理状態管理手段によって管理されている管理情報に基づいて、前記プロセッサのうちから最も優先順位の低い処理を実行しているプロセッサを選択する処理プロセッサ選択手段と、要求された割込み処理を選択された前記プロセッサに割込み処理要求として伝達する割込み制御手段と、
を備えてなり、
前記割込み制御手段は、
要求された割込み処理及びプロセッサで実行されている処理が、所定のスケジュールにしたがって処理されるタスク処理であるか、前記スケジュールによらず処理される割込み処理であるかの別によらず、最も優先順位の低い処理を実行しているプロセッサを選択することを特徴とするプロセッサ。
【請求項２】
前記処理状態管理手段によって管理されている管理情報が、複数の前記プロセッサの少なくとも一部が割込み処理の実行が禁止されている割込み禁止状態にあることを示す情報を含む場合、前記処理プロセッサ選択手段は、割込み禁止状態にあるプロセッサを割込み処理を実行するプロセッサの選択の対象から除くことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
複数の前記プロセッサのうち、前記処理プロセッサ選択手段により選択されたプロセッサと、要求された割込み処理の優先順位の判定を行い、要求された割込み処理の優先順位が低いと判断されたとき、要求された割込み処理の実行を、実行可能になるまで保留する割込み保留手段を備えることを特徴とする請求項１または２項に記載のプロセッサ。
【請求項４】
前記保留手段は、前記プロセッサのいずれかに割当てられるタスク処理及び割込み処理を各々の優先順位にしたがう順番に基づいて管理するレディキューを有し、
前記割込み制御手段は、タスク処理及び割込み処理を、前記レディキューにしたがう順番で前記プロセッサに割当てることを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記レディキューは、前記割込み制御手段によって前記プロセッサのいずれかに割当てられた後に前記割込み保留手段によって実行を保留させられた割込み処理を管理することを特徴とする請求項３または４に記載のプロセッサ。
【請求項６】
前記割込み制御手段は、前記プロセッサのいずれかに割当てられた後に前記割込み保留手段によって実行を保留させられた割込み処理を、先に割当てられたプロセッサによる実行が可能になるまでネスト状態にすることを特徴とする請求項３から６のいずれか１項に記載のプロセッサ。
【請求項７】
複数のプロセッサの各々の状態及び実行中の処理の優先順位に関する情報を含む管理情報に基づいて、要求された割込み処理を実行するプロセッサを選択する割込み制御ステップを含む割込み制御方法であって、
前記割込み制御ステップは、
要求された割込み処理及びプロセッサで実行されている処理が、所定のスケジュールにしたがって処理されるタスク処理であるか、前記スケジュールによらず処理される割込み処理であるかの別によらず、最も優先順位の低い処理を実行しているプロセッサを選択し、選択された前記プロセッサに割込み処理を割当てることを特徴とする割込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクあるいは割込み処理を並列的に処理できるプロセッサ及び割込み制御方法に関する。
【背景技術】
【０００２】
近年、組込み機器等において、複数のプロセッサを備えることによって複数のタスクあるいはスレッド（本明細書ではタスクに統一する）を並列的に処理できるマルチプロセッサシステムやマルチスレッドプロセッサ（以下、これらを総称して「マルチプロセッサ」と言う。）が利用されつつある。従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
【０００３】
そして、マルチプロセッサによる処理を行う場合、割込み処理の発生に対して、シングルプロセッサと異なる対応を行う必要がある。例えば、割込みの種類に応じて、複数のプロセッサのうち処理を行うプロセッサを定めておくという方法や、複数のプロセッサの全てに割込み信号を入力し、プロセッサ間で調停を行うといった方法が考えられる。
なお、マルチプロセッサにおいて、割込み処理をプロセッサ間で調停する方法に関す
る技術が、特許文献１、特許文献２に記載されている。
【０００４】
特許文献１、特許文献２に記載された技術は、マルチプロセッサにおいて、プロセッサごとに割込みコントローラを設け、割込み要求が発生した場合に、これら割込みコントローラ間で調停を行うものである。
【特許文献１】特開平６−３２４９９６号公報
【特許文献２】特開２００５−４５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された技術においては、プロセッサごとに割込みコントローラを備えているため、必要なハードウェアが大型化し、配線も複雑化することから、組込み機器に適するものではなかった。また、上述のように、割込みの種類に応じて、複数のプロセッサのうち処理を行うプロセッサを定めておくこととした場合、非動作状態のプロセッサが存在するにもかかわらず、割込み処理が実行されない事態を生じ得るため、処理効率が低下する可能性があった。
【０００６】
さらに、組込み機器に適用されたマルチプロセッサのようなハードウェアリソースの限られた環境下で、割込み処理等、優先順位の高い処理を効率的に処理することが困難であった。また、ハードウェアの大型化を抑えるため、主にソフトウェアによって割込みの制御を実行した場合、ハードウェアによって割込みを制御するよりもプロセッサの選択に時間がかかり、割込み要求による処理の遅れが大きくなるという欠点があった。
【０００７】
また、特許文献２に記載された従来技術は、割込み処理の優先順位が一般的に高いことに着目してなされたものである。このため、割込み処理の要求が先に実行されていた処理によって待たされることを避けるため、要求された割込み処理を全て受付ける。そして、受付けられた割込み処理を複数のプロセッサのうち最も優先順位が低い処理を実行していたものに割当てる。
【０００８】
マルチプロセッサでは、一のプロセッサを、このプロセッサによって実行されているタスクが他のタスクや割込みによって中断されることを避けるため、割込み禁止に設定することがある。しかしながら、特許文献２の技術によれば、割込みの要求は全て受付けられるので、マルチプロセッサにおいて割込み禁止を設定する意義が失われて動作に支障がでる可能性が発生する。
【０００９】
さらに、割込み処理と実行中の処理との間の優先順位について考慮しないため、実行中の処理が特に優先順位が高いものであっても割込みによって処理が中断されるという不具合が発生する。
本発明は、このような点に鑑みてなされたものであって、タスクによってなされる処理と割込みを要求してなされる処理との優先順位を一元的に管理することによって割込み禁止等のプロセッサの状態を考慮し、しかもタスク処理及び割込み処理を優先順位がより高いものから適正に実行できるプロセッサ及び割込み制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明のプロセッサは、複数のプロセッサと、複数の前記プロセッサの状態及び実行中の処理の優先順位に関する情報を含む管理情報を管理する処理状態管理手段と、前記処理状態管理手段によって管理されている管理情報に基づいて、前記プロセッサのうちから最も優先順位の低い処理を実行しているプロセッサを選択する処理プロセッサ選択手段と、要求された割込み処理を選択された前記プロセッサに割込み処理要求として伝達する割込み制御手段と、を備えてなり、前記割込み制御手段は、要求された割込み処理及びプロセッサで実行されている処理が、所定のスケジュールにしたがって処理されるタスク処理であるか、前記スケジュールによらず処理される割込み処理であるかの別によらず、最も優先順位の低い処理を実行しているプロセッサを選択することを特徴とする。
【００１１】
このような発明によれば、プロセッサの状態をも考慮して要求された割込み処理を実行するプロセッサを適正に選択できるプロセッサを提供することができる。
また、割込み要求した処理あるいはプロセッサが実行中の処理がタスク処理、割込み処理であるかに係らず、最も優先順位の低い処理を実行しているプロセッサを選択することができる。このため、タスクによってなされる処理と割込みを要求してなされる処理との優先順位を一元的に管理することによってタスク処理及び割込み処理を優先順位がより高いものから適正に実行できるプロセッサを提供することができる。
【００１２】
また、本発明のプロセッサは、前記処理状態管理手段によって管理されている情報が、複数の前記プロセッサの少なくとも一部が割込み処理の実行が禁止されている割込み禁止状態にあることを示す情報を含む場合、前記割込み制御手段は、割込み禁止状態にあるプロセッサを割込み処理を実行するプロセッサの選択の対象から除くことを特徴とする。
このような発明によれば、プロセッサの割込み禁止状態を考慮し、要求された割込み処理を実行するプロセッサを適正に選択できるプロセッサを提供することができる。
【００１３】
また、本発明のプロセッサは、複数の前記プロセッサのうち、前記処理プロセッサ選択手段により選択されたプロセッサと、要求された割込み処理の優先順位の判定を行い、要求された割込み処理の優先順位が低いと判断されたとき、要求された割込み処理の実行を、実行可能になるまで保留する割込み保留手段を備えることを特徴とする。
このような発明によれば、割込みを受付けるのに適正なプロセッサがない場合、優先順位がより高い処理が中断されることをなくし、処理を適正に実行することができる。
【００１４】
また、本発明のプロセッサは、前記保留手段が、前記プロセッサのいずれかに割当てられるタスク処理及び割込み処理をタスク処理、割込み処理の区別なく各々の優先順位にしたがう順番に基づいて管理するレディキューを有し、前記割込み制御手段は、タスク処理及び割込み処理を、前記レディキューにしたがう順番で前記プロセッサに割当てることを特徴とする。
このような発明によれば、保留されている処理を優先順位のより高いものから適正に実行することができる。
【００１５】
また、本発明のプロセッサは、前記レディキューが、前記割込み制御手段によって前記プロセッサのいずれかに割当てられた後、前記割込み保留手段によって実行を保留させられた割込み処理を管理することを特徴とする。
このような発明によれば、プロセッサのいずれかに割当てられた後に保留状態になった処理を再度他の処理と調整し、適正なプロセッサに割当てることが可能になる。
【００１６】
また、本発明のプロセッサは、前記割込み制御手段が、前記割込み保留手段によって実行を保留させられた割込み処理を、複数の前記プロセッサのうち所定のプロセッサによる実行が可能になるまでネスト状態にすることを特徴とする。
このような発明によれば、プロセッサのいずれかに割当てられた後に保留状態になった処理を再開する処理を簡易化することができる。
【００１７】
また、本発明の割込み制御方法は、複数のプロセッサの各々の状態及び実行中の処理の優先順位に関する情報を含む管理情報に基づいて、要求された割込み処理を実行するプロセッサを選択する割込み制御ステップを含む割込み制御方法であって、前記割込み制御ステップは、要求された割込み処理及びプロセッサで実行されている処理が、所定のスケジュールにしたがって処理されるタスク処理であるか、前記スケジュールによらず処理される割込み処理であるかの別によらず、最も優先順位の低い処理を実行しているプロセッサを選択し、選択された前記プロセッサに割込み処理を割当てることを特徴とする。
【００１８】
このような発明によれば、割込み要求した処理あるいはプロセッサが実行中の処理がタスク処理、割込み処理であるかに係らず、最も優先順位の低い処理を実行しているプロセッサを選択することができる。このため、タスクによってなされる処理と割込みを要求してなされる処理との優先順位を一元的に管理することによってタスク処理及び割込み処理を優先順位がより高いものから適正に実行できる割込み制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態のプロセッサを説明する。
図１は、本発明のプロセッサが適用される携帯電話１の機能構成を示すブロック図である。本実施形態のプロセッサは、複数のプロセッサ（単位プロセッサ）を備えたマルチプロセッサであって、図１に示したＣＰＵ１０を構成する。なお、以降、単にプロセッサと記した場合には単位プロセッサを複数備えた本実施形態のマルチプロセッサを指すものとする。
【００２０】
図１において、携帯電話１は、ＣＰＵ（Central Processing Unit）１０と、フラッシュＲＯＭ２０と、メモリ３０と、バッファ４０と、無線部５０と、ＩｒＤＡ（Infrared Data Association）部６０と、オーディオ（Audio）部７０と、タイマ（Timer）８０と、ＵＳＢ（Universal Serial Bus）インターフェース部９０と、キー（KEY）操作部１００と、ＬＣＤ（Liquid Crystal Display）１１０と、カメラ（Camera）部１２０と、を含んで構成され、ＣＰＵ１０、フラッシュＲＯＭ２０、メモリ３０及びバッファ４０は、バスによって接続されている。また、無線部５０、ＩｒＤＡ部６０、オーディオ部７０、タイマ８０、ＵＳＢインターフェース部９０、キー操作部１００、ＬＣＤ１１０及びカメラ部１２０は、ＣＰＵ１０と直接接続されている。
【００２１】
ＣＰＵ１０は、複数のタスクを並列的に処理しながら携帯電話１全体を制御するもので、キー操作部１００から入力される各種の指示信号に応じて、フラッシュＲＯＭ３０に記憶されたオペレーティングシステムプログラム（ＯＳ）や各種アプリケーションプログラムを読み出して実行する。また、無線部５０、オーディオ部７０あるいはカメラ部１２０等の周辺チップからＣＰＵ１０に割込み処理を要求する割込み信号が入力された場合、この割込み信号に応じて、割込みハンドラを実行する。
【００２２】
ＣＰＵ１０は、アプリケーションにより生成されたタスクを並行して処理する。さらに、周辺チップから割込み信号が入力された場合、割込みハンドラを実行することにより、割込みに対応するプログラムを実行する。
このように、タスク処理は、所定のスケジュール（タスクスケジュール）にしたがって処理される処理である。また、要求された割込み処理は、タスクスケジュールによらず割込みハンドラによって処理される。
【００２３】
なお、本実施形態では、周辺チップからＣＰＵ１０に要求される割込みを外部割込みといい、アプリケーションによって行われるタスクスイッチ等の割込みを指す内部割込みと区別する。また、単に割込みと記した場合には外部割込みを指すものとする。アプリケーションによる内部割込み処理は、ＯＳのタスクスケジューラによって管理されるタスクとして実行されるため、ＯＳのサービスコールを呼び出すことができる。一方、外部割込み処理は、タスクスケジューラによって管理されない処理（非タスク処理）である。
【００２４】
また、ＣＰＵ１０は、各種処理結果をフラッシュＲＯＭ２０あるいはメモリ３０に格納する。ここで、ＣＰＵ１０の内部構成について説明する。
図１に示したフラッシュＲＯＭ２０は、携帯電話１において実行されるオペレーティングシステムプログラム、及び、各種アプリケーションプログラムを記憶している。メモリ３０は、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）あるいはＳＤＲＡＭ（Synchronous DRAM）といった半導体メモリによって構成され、ＣＰＵ１０が処理を実行する際にワークエリアを形成すると共に、その処理結果を記憶する。
【００２５】
バッファ４０は、外部から携帯電話１に入力されたデータあるいは携帯電話１において発生されたデータを一時的に保持するバッファである。無線部５０は、携帯電話１と携帯電話システムの基地局との間における無線通信を行うものである。例えば、無線部５０は、基地局から携帯電話１に対する着信を示す信号を受信した場合、ＣＰＵ１０に対して割込み信号を出力し、着信信号の受信を通知する。また、無線部５０は、ＣＰＵ１０から発信を指示する信号が入力された場合、基地局に対して発信要求を示す信号を送信する。
【００２６】
ＩｒＤＡ部６０は、ＩｒＤＡに基づく通信を行うインターフェースであり、外部からＩｒＤＡに基づく無線信号を受信した場合、ＣＰＵ１０に対して割込み信号を出力し、ＩｒＤＡ信号の受信を通知する。オーディオ部７０は、携帯電話１において入出力される音声信号を処理するものであり、通話におけるマイク及びスピーカを用いた音声の入出力、あるいは、音楽等の再生といった処理を行う。
【００２７】
タイマ８０は、携帯電話１のクロック信号を基に時間を計測し、例えば１ｍｓごと等、所定時間ごとにＣＰＵ１０に対して割込み信号を出力する。ＵＳＢインターフェース部９０は、ＵＳＢによる通信を行うためのインターフェースであり、ＵＳＢケーブルが接続された場合やＵＳＢケーブルから信号を受信した場合等に、ＣＰＵ１０に対して割込み信号を出力する。
【００２８】
キー操作部１００は、携帯電話１に対する指示入力を行うための各種キーを備えており、これらのキーが押下された場合に、ＣＰＵ１０に対する割込み信号を出力する。ＬＣＤ１１０は、ＣＰＵ１０によって入力された文字あるいは画像等の描画命令に従って、所定画面を表示する表示装置である。カメラ部１２０は、ＣＣＤ（Charge Coupled Devices）あるいはＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサ等の撮像素子を備え、画像を撮影した場合に、ＣＰＵ１０に対して割込み信号を出力する。
【００２９】
図２は、ＣＰＵ１０、すなわちマルチプロセッサとして構成された本実施形態のプロセッサの内部構成を示すブロック図である。ＣＰＵ１０は、タスクあるいは割込みの処理を実行する複数のプロセッサ部（単位プロセッサ）Ｐ０〜Ｐ３を含むマルチプロセッサであって、単位プロセッサＰ０〜Ｐ３と、外部割込み制御部１１と、メモリ制御部１２とを含んで構成される。なお、図２に示す周辺チップ１０９は、図１に示す無線部５０、ＩｒＤＡ部６０及びオーディオ部７０等、ＣＰＵ１０に直接接続された機能部を含むものであり、周辺チップ１０９で表される複数の周辺チップの各々が、これら機能部のいずれかであることを意味している。
【００３０】
単位プロセッサＰ０〜Ｐ３は、それぞれが並列してタスクを処理可能なプロセッサであり、周辺チップ１０９において割込み信号が発生した場合、後述する外部割込み制御部１１によって選択されたプロセッサが割込み処理を実行する。なお、単位プロセッサＰ０〜Ｐ３の内部構成としては同様のものとなるため、代表として、単位プロセッサＰ０の内部構成について説明する。
【００３１】
単位プロセッサＰ０は、フェッチ部１０１と、デコード部１０２と、ＡＬＵ（Arithmetic and Logical Unit）１０３と、レジスタ１０４と、プログラム制御部１０５とをさらに含んで構成される。フェッチ部１０１は、後述するプログラム制御部１０５のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部１０２に出力する。
【００３２】
デコード部１０２は、フェッチ部１０１によって入力された命令コードをデコードし、デコード結果（命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等）をＡＬＵ１０３に出力する。ＡＬＵ１０３は、デコード部１０２によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタ１０４に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部１０５に出力する。
【００３３】
レジスタ１０４は、ロード命令によってメモリ３０から読み出されたデータや、ＡＬＵ１０３の演算結果であるデータを記憶するレジスタ群である。プログラム制御部１０５は、単位プロセッサＰ０全体を制御するものであり、単位プロセッサＰ０のステータス（例えば、割込みの可否状態、単位プロセッサＰ０におけるオーバーフローの発生状態等）を記憶するステータスレジスタ（ＰＳＲ）と、単位プロセッサＰ０が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタ（ＰＣ）とを含んで構成される。そして、プログラム制御部１０５は、単位プロセッサＰ０が割込み処理に移行する時点で、ＰＳＲの値を割込み処理の禁止状態に変更する、あるいは分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更する。
【００３４】
また、プログラム制御部１０５は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、先ず、ハードウェアセマフォの取得結果を受け取り、ハードウェアセマフォの取得に成功したことを示すフラグ、またはハードウェアセマフォ取得に失敗したことを示すフラグを書き込む。ハードウェアセマフォ取得に失敗したことを示すフラグ（ＯＳへの移行が拒否されたことを示すフラグ）が書き込まれた場合、このプロセッサは、ハードウェアセマフォの取得を一旦停止し、待機状態から離脱する。
【００３５】
さらに、プログラム制御部１０５は、追出し禁止フラグ１０６を備えている。追出し禁止フラグ１０６は、指定された単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。プログラム制御部１０５は、追出し禁止フラグ１０６を１にすることによって現在単位プロセッサにあるタスクが他のタスクに切替えられることを禁止する。単位プロセッサにおけるタスクの追出しが禁止された状態を以降ロック状態とも記す。
このような追出し禁止フラグ１０６は、複数の単位プロセッサＰ０〜Ｐ３に対して行われる割込みを個別に禁止するものである。
【００３６】
図３は、図２に示した構成の本発明に係る部分をより詳細に示した図である。
本実施形態のプロセッサでは、単位プロセッサＰ０〜Ｐ３の各々が、自ら（自プロセッサと記す）の処理実行の状態と、単位プロセッサＰ０〜Ｐ３が実行中の処理の優先順位（実施形態中では優先度と記す）に関する情報を含む管理情報を管理する優先度管理用レジスタ３０１を備えている。なお、優先度管理用レジスタ３０１によって管理される管理情報については後で述べる。
【００３７】
また、図３では、図２において一括して周辺チップ１０９として示した外部機器の各々を図示し、各々を外部割込み信号１を出力する機器３０５、外部割込み信号２を出力する機器３０６、外部割込み信号３を出力する機器３０７として示す。単位プロセッサＰ０〜Ｐ３に対して要求される割込み処理は、機器３０５〜機器３０６から要求される外部割込処理である。
外部割込み制御部１１は、割込み要求した処理及び単位プロセッサＰ０〜Ｐ３で実行中の処理が、タスク処理であるか割込み処理であるかの別によらず、最も優先順位の低い処理を実行している単位プロセッサを選択し、選択された単位プロセッサに割込み処理要求を伝達している。
【００３８】
すなわち、外部割込み制御部１１は、機器３０５、機器３０６、機器３０７によって出力された割込み信号１〜３を受信する外部割込み受信部３０８を備えている。また、外部割込み信号１〜３を受信したことによって各信号が示す割込み要求を検出し、割込み処理を実行する単位プロセッサを選択する処理プロセッサ選択部３０４、選択されたプロセッサと要求された割込み処理とにおいて、要求された割込み処理の優先度が低い場合には、いずれかの単位プロセッサが実行可能になるまで割込み処理を保留する外部割込み保留処理部３０３を備えている。
【００３９】
処理プロセッサ選択部３０４は、管理情報に基づいて、単位プロセッサＰ０〜Ｐ３のうちから最も優先度が低いタスクまたは外部割込み処理を実行している単位プロセッサを選択する。
さらに、外部割込み制御部１１は、外部割込み通知部３０２を備えている。外部割込み通知部３０２は、要求された割込み処理を、処理プロセッサ選択部３０４によって選択された単位プロセッサに割込み処理要求として伝達している。
【００４０】
また、本実施形態のプロセッサは、ＯＳによって管理されているタスクを単位プロセッサＰ０〜Ｐ３で実行しながら外部割込みの要求を受付けるものであって、ＯＳが制御管理部３１０として機能する。ＯＳのタスクを管理する機能をタスクスケジューラとも記す。タスクは、タスクスケジュールにしたがって処理される。一方、プロセッサに割込を要求する割込み処理は、ＯＳではなく、外部割込み制御部１１上で動作する割込みハンドラによって処理される。
【００４１】
このような外部割込み制御部１１による割込み処理の割当てを、より詳細に説明する。すなわち、制御管理部３１０は、タスクだけを管理するための構成として、タスクスケジューラ部３１１、タスクスケジューラ３１１にしたがってタスクを実行する単位プロセッサを選択する処理プロセッサ選択部３１２、実行中のタスクが単位プロセッサから追出されることを防ぐ割込み禁止制御部３１４、実行待ちのタスクを管理する保留処理制御部３１３を備えている。
【００４２】
また、外部割込み制御部１１は、前記したように外部割込み保留処理部３０３、処理プロセッサ選択部３０４を備えている。処理プロセッサ選択部３０４は、各単位プロセッサＰ０〜Ｐ３の状態を優先度管理用レジスタ３０１によって検出する。状態とは、単位プロセッサＰ０〜Ｐ３が割込み禁止に設定されているか否か、単位プロセッサＰ０〜Ｐ３によって実行されているタスクまたは外部割込み処理の優先度を含むものとする。
【００４３】
要求された割込みがいずれかの単位プロセッサに受付けられた場合、外部割込み制御部１１では、この単位プロセッサにおいて実行中のタスクに代わって割込みハンドラが起動する。割込みハンドラの起動により、処理プロセッサ選択部３０４は、先に選択された単位プロセッサによって実行されているタスクまたは外部割込み処理の優先度と、要求された割込み処理の優先度との判定をする。そして、要求された割込み処理の優先度がより低いと判定された場合、この単位プロセッサを割込み処理の割当てが可能な単位プロセッサとして選択する。外部割込み保留処理部３０３は、現時点で実行できない単位プロセッサについては保留する。
【００４４】
割込みハンドラは、割込み処理を単位プロセッサによって実行し、割込み処理の終了によって終了する。割込みハンドラの終了後、代わってＯＳが起動してタスク処理を再開する。
本実施形態は、上記したタスクと割込み処理とを独立に管理する構成において、制御管理部３１０、外部割込み制御部１１の両方がアクセス可能なメモリ３２０を備えている。制御管理部３１０は、保留処理制御部３１３によって保留されているタスクを実行の優先度を表す情報と共にメモリ３２１に記録する。外部割込み制御部１１は、外部割込み保留処理部３０３によって保留された割込み処理を、記録されているタスクの優先度と比較する。
【００４５】
そして、タスクのうち割込み処理の優先度よりも高い優先度のタスクよりも後であって、より低い優先度を持つタスクの前の順番を付してタスクと共に記録し、レディキュー（Readyキュー）３２１を生成する。
このようにして生成されたレディキューは、単位プロセッサＰ０〜Ｐ３のいずれかに割当てられるタスク処理及び割込み処理を、タスク処理、割込み処理の区別なく、各々の優先度にしたがう順番に基づいて管理するものになる。処理プロセッサ選択部３０４は、このレディキューにしたがう順番で単位プロセッサを選択し、外部割込み通知部３０２が選択された単位プロセッサに割込み処理要求を伝達する。
【００４６】
以上の構成において、優先度管理用レジスタ３０１は、本実施形態の処理状態管理手段として機能する。また、処理プロセッサ選択部３０４を備えた外部割込み制御部１１が、処理状態管理手段、選択手段及び割込み制御手段として機能する。さらに、外部割込み保留処理部３０３、保留処理制御部３１３、レディキュー３２１が本実施形態の保留手段として機能する。
【００４７】
ここで、優先度管理用レジスタ３０１のより具体的な構成について説明する。優先度管理用レジスタ３０１は、単位プロセッサＰ０〜Ｐ３の各々に備えられている。各単位プロセッサＰ０〜Ｐ３は、同様の構成を有している。このため、本実施形態では単位プロセッサＰ０の優先度管理用レジスタ３０１について記し、単位プロセッサＰ１〜Ｐ３の説明に代えるものとする。
【００４８】
以下、優先度管理用レジスタ３０１に管理される管理情報に基づいて具体的に説明する。優先度管理用レジスタ３０１は、例えば、７ビット分のデータを管理情報として保存できるレジスタによって構成できる。この例では、各ビットが、以下に示す情報を各々表すものとする。
【００４９】
ｂｉｔ６：プロセッサ割込み禁止の状態を表す。（禁止［１］／  非禁止［０］）
ｂｉｔ５：プロセッサの状態を表す。（ＲＵＮ［１］／ＨＡＬＴ［０］）
ｂｉｔ４：ＲＵＮ状態の場合、割込みハンドラ［１］／タスク処理［０］の状態を表す。
ｂｉｔ３〜０：ＲＵＮ状態の場合、実行中の割込みハンドラ（割込み処理）またはタスク処理の優先度を表す。
なお、上記した例では、割込み処理またはタスク処理の優先度は値が小さいものほど低い優先度を示すものとする。
【００５０】
本実施形態では、優先度管理用レジスタ３０１を単位プロセッサＰ０〜Ｐ３の各々にある既存のレジスタに追加するものとする。なお、当然のことながら、本実施形態はこのような構成に限定されるものでなく、専用のレジスタとして構成することも可能である。このような優先度管理用レジスタ３０１によれば、単位プロセッサＰ０〜Ｐ３によって実行されている処理の優先度を外部割込み制御部１１が簡単に比較し、優先度が最も低い処理を実行している単位プロセッサを選択することが可能になる。
【００５１】
また、上記した優先度管理用レジスタ３０１の内容は、以下に記した事象をトリガにして更新される。
・プロセッサの内部において、実行中の処理よりも優先度が高いタスクが発生したことによってタスクスイッチが発生した場合。
・実行中の処理よりも優先度が高い割込み処理が要求されたことによって実行中のタスクまたは割込み処理に割込みが発生した場合。
【００５２】
・単位プロセッサＰ０〜Ｐ３のいずれかで実行されているタスクが待機状態に移行した場合
・単位プロセッサＰ０〜Ｐ３のいずれかで実行されていた割込み処理が終了した場合。
・単位プロセッサＰ０〜Ｐ３のいずれかで割込み禁止の設定または設定された割込み禁止の解除がなされた場合。
【００５３】
プロセッサに割込みが要求された場合、外部割込み制御部１１は、要求された割込みの優先度を優先度管理用レジスタ３０１の内容と対照する。そして、要求された割込み処理より優先度が低いタスクまたは割込み処理（タスクまたは割込み処理を指す場合には単に処理とも記す）を実行している単位プロセッサを選択し、この単位プロセッサに発生した割込み処理を割当てる。
要求された割込み処理より優先度が低い処理が複数ある場合、本実施形態では、外部割込み制御部１１が、このうちの最も優先度が低い処理を実行している単位プロセッサを選択するものとする。
【００５４】
また、外部割込み制御部１１は、優先度管理用レジスタ３０１によって管理されている情報が単位プロセッサＰ０〜Ｐ３の少なくとも一部が割込み禁止状態にあることを示す情報を含む場合、割込み禁止の単位プロセッサを選択の対象から除いている。上記した例によれば、外部割込み制御部１１は、いずれかの単位プロセッサＰ０〜Ｐ３の優先度管理用レジスタ３０１のｂｉｔ６に「１」がたっていた場合、この単位プロセッサが割込み禁止であると判断する。
【００５５】
例えば、単位プロセッサＰ０〜Ｐ３のうち単位プロセッサＰ０のｂｉｔ６に「１」がたっていた場合、外部割込み制御部１１は、単位プロセッサＰ０が割込み禁止であると判断し、単位プロセッサＰ０を除く単位プロセッサＰ１〜Ｐ３のいずれかを対象にして要求された割込み処理を実行させる単位プロセッサを選択する。
このような優先度管理用レジスタ３０１によれば、単位プロセッサＰ０〜Ｐ３の各々の状態及び実行中の処理の優先度を、タスク処理、割込み処理の別なく一元的に管理することができる。制御管理部３１０、外部割込み制御部１１は、優先度管理用レジスタ３０１を参照することによって単位プロセッサＰ０〜Ｐ３の各々の状態及び実行中のタスク処理または割込処理の優先度を簡易に判定することができる。
【００５６】
このため、制御管理部３１０、外部割込み制御部１１は、単位プロセッサの割込み禁止等の状態を考慮して外部割込みを処理することができる。また、処理中の優先度と発生した割込み要求の処理の優先度とを簡易に比較し、優先度がより高い処理から適正に実行することが可能になる。
このような本実施形態によれば、単位プロセッサを割込み禁止に設定する効力を損なうことがない。また、いずれかの単位プロセッサで実行中の割込み処理が、優先度のより低い外部割込み処理によって中断することがない。
【００５７】
さらに、外部割込み制御部１１は、要求された割込み処理より優先度が低い処理を実行している単位プロセッサがない場合、メモリ３２０にアクセスして割込み処理をレディキュー３２１に追加する。レディキュー３２１に追加された割込み処理は、いずれかの単位プロセッサが割込み可能になるまで保留されることになる。
いずれかの単位プロセッサにおいて実行されているタスクが割込み処理によって中断させられた場合、中断したタスクはレディキュー３２１に再び戻されて次の実行まで保留される。次にタスクを実行する単位プロセッサは、タスクの実行中の割込みがされた単位プロセッサに限らず、いずれの単位プロセッサであってもよい。
【００５８】
また、いずれかの単位プロセッサにおいて実行されている割込み処理が他の割込み処理によって中断させられた場合、中断した割込み処理は、タスクと同様にレディキュー３２１に再び戻されて次の実行まで保留されるものであってもよい。このような場合、次にタスクを実行する単位プロセッサは、タスクの実行中の割込みがされた単位プロセッサに限らず、いずれの単位プロセッサであってもよい。
【００５９】
図４は、レディキュー３２１を例示した図である。図示したレディキュー３２１は、優先度が最低の０から最高の３１まで管理可能な構成である。タスク処理及び割込み処理は、各々の優先度に対応するメモリ３２０のエリアに格納される。一の優先度に対応する処理が複数ある場合、複数の処理は、所定の順番で格納される。この順番においてより上位の処理に続く処理を図中にＮＥＸＴキューとして示す。
【００６０】
図示したレディキュー３２１は、優先度０から優先度１５までのエリアにタスクが格納され、優先度１６から優先度３１までのエリアに割込み処理が格納されている。このような構成は、割込み処理が一般的にタスクよりも優先度が高いことによるものである。ただし、本実施形態によれば、割込み処理よりも優先度が高いタスクが例外的にある場合には、レディキュー３２１において割込み処理が格納されているエリアの中にタスクが格納されるエリアが生じる可能性もある。
【００６１】
また、レディキュー３２１に格納されている処理のうち最も優先度が高い処理は、メモリ３２０の図示しない先頭格納エリアに格納される。先頭格納エリアに格納された処理は、いずれかの単位プロセッサの処理が終了した場合、この単位プロセッサに割当てられて実行される。
なお、本実施形態は、いったん単位プロセッサＰ０〜Ｐ３のいずれかに割当てられた後、中断されて次の実行まで保留される割込み処理を、再びレディキュー３２１に戻すよう構成してもよい。
【００６２】
ただし、このような処理をレディキュー３２１に戻す構成に限定されるものではない。すなわち、本実施形態は、いったん単位プロセッサＰ０〜Ｐ３のいずれかに割当てられた後、中断されて次の実行まで保留される割込み処理を、複数の単位プロセッサＰ０〜Ｐ３のうち先に割当てられた単位プロセッサによる実行が可能になるまでネスト状態にすることも可能である。
割込み処理をネストさせた場合、本実施形態は、中断された割込み処理を再開するための処理を簡易化することができる。
【００６３】
次に、以上述べた本実施形態のプロセッサでなされる制御方法をフローチャートにし、図５ないし図１０として示す。なお、フローチャートにおいて、単に処理と記す場合、この処理は外部割込み処理、タスクのいずれであってもよいものとする。
図５に示したフローチャートは、実行中の処理にタスクの割込みが発生した場合の制御管理部３１０の動作を説明するためのフローチャートである。タスク処理による割込み要求が発生した場合、制御管理部３１０は、この割込みを実行する単位プロセッサを選択するための処理を開始する（Ｓ５０１）。そして、現在単位プロセッサＰ０〜Ｐ３の全てが割込み禁止状態であるか否かを各単位プロセッサの優先度管理用レジスタ３０１を参照して判断する（Ｓ５０２）。
【００６４】
ステップＳ５０２の判断の結果、単位プロセッサＰ０〜Ｐ３が割込み禁止状態であった場合（Ｓ５０２：Ｙｅｓ）、割込みを要求したタスクをレディキュー３２１のタスクの優先度に対応するエリアに格納する（Ｓ５０６）。この結果、タスクがレディキュー３２１にキューイングされて実行可能になるまで保留される。
また、ステップＳ５０２において、単位プロセッサＰ０〜Ｐ３のいずれかが割込み禁止状態でないと判断された場合（Ｓ５０２：Ｎｏ）、割込み禁止でない単位プロセッサのうち発生したタスクの優先度よりも低い優先度の処理を実行しているものがあるか否か判断する（Ｓ５０３）。低い優先度の処理を実行している単位プロセッサがある場合（Ｓ５０３：Ｙｅｓ）、この単位プロセッサの優先度管理用レジスタ３０１を更新し、タスクスイッチに備える（Ｓ５０４）。
【００６５】
次に、制御管理部３１０は、優先度管理用レジスタ３０１を参照し、優先度を示す値が最小である単位プロセッサを選択する。なお、優先度管理用レジスタ３０１を参照した結果、ＨＡＬＴ状態の単位プロセッサがある場合、全てのＲＵＮ状態の単位プロセッサよりもＨＡＬＴ状態の単位プロセッサの優先度が低いものと判定される。制御管理部３１０は、選択された単位プロセッサに対し発生したタスクの割込みを実行する（Ｓ５０５）。
【００６６】
図６は、外部割込みが発生した場合の外部割込み制御部１１の動作を説明するためのフローチャートである。機器３０５〜機器３０７のいずれかが出力した外部割込み信号を入力した場合、外部割込み制御部１１は、この割込みを実行する単位プロセッサを選択するための処理を開始する（Ｓ６０１）。なお、この処理では、優先度管理用レジスタ３０１を参照し、実行中の処理の優先度を示す値が最も小さい（優先順位が最も低い）単位プロセッサが対象となる。
【００６７】
そして、外部割込み制御部１１は、現在単位プロセッサＰ０〜Ｐ３の全てが割込み禁止状態であるか否かを各単位プロセッサの優先度管理用レジスタ３０１を参照して判断する（Ｓ６０２）。
ステップＳ６０２の判断の結果、単位プロセッサＰ０〜Ｐ３が割込み禁止状態であった場合（Ｓ６０２：Ｙｅｓ）、発生した割込み処理をレディキュー３２１の割込み処理の優先度に対応するエリアに格納する（Ｓ６０６）。この結果、割込み処理がレディキュー３２１にキューイングされて実行可能になるまで保留される。
【００６８】
また、ステップＳ６０２において、単位プロセッサＰ０〜Ｐ３のうち割込み処理の対象となる単位プロセッサが割込み禁止状態でないと判断された場合（Ｓ６０２：Ｎｏ）、この単位プロセッサによって実行されている処理が発生した割込み処理の優先度よりも低いか否か判断する（Ｓ６０３）。対象となっている単位プロセッサによって実行されている処理の優先度がより低い場合（Ｓ６０３：Ｙｅｓ）、この単位プロセッサの優先度管理用レジスタ３０１を更新し、割込み処理に備える（Ｓ６０４）。
【００６９】
次に、外部割込み制御部１１は、対象となっている単位プロセッサであって、かつ実行されている処理の優先度がより低い単位プロセッサを選択する。制御管理部３１０は、選択された単位プロセッサに対し発生した外部割込みの処理を実行する（Ｓ６０５）。
なお、上記した処理において、優先度管理用レジスタ３０１を参照した結果、ＨＡＬＴ状態の単位プロセッサがある場合、全てのＲＵＮ状態の単位プロセッサよりもＨＡＬＴ状態の単位プロセッサの優先度が低いものと判定される。
【００７０】
図７は、図５に示した方法によってキューイングされたタスクの保留状態を解除するための方法を説明するためのフローチャートである。制御管理部３１０は、単位プロセッサＰ０〜Ｐ３のいずれかで実行されていたタスクが終了または待機状態に移行するといった事象が発生した場合、レディキュー３２１に保留状態のタスクがあるか否か判断する（Ｓ７０１）。保留状態のタスクがない場合（Ｓ７０１：Ｎｏ）、事象が発生した単位プロセッサの優先度管理用レジスタ３０１のｂｉｔ５を「０」に更新して単位プロセッサがＨＡＬＴ状態にあると情報を設定する（Ｓ７０４）。そして、この単位プロセッサをＨＡＬＴ状態に移行させる（Ｓ７０５）。
【００７１】
一方、制御管理部３１０は、保留状態のタスクがある場合（Ｓ７０１：Ｙｅｓ）、事象を発生させた単位プロセッサの優先度管理用レジスタ３０１のｂｉｔ３〜０を使ってレディキュー３２１の先頭にあるタスクの優先度を記録する（Ｓ７０２）。
そして、その単位プロセッサ自身に対して優先度が記録されたタスクによる内部割込みを発生させる（Ｓ７０３）。
【００７２】
図８は、図５、図６に示した方法によってキューイングされたタスク、及び外部割込みの保留状態を解除するための方法を説明するためのフローチャートである。外部割込み制御部１１は、単位プロセッサＰ０〜Ｐ３のいずれかで実行されていた割込み処理が終了した場合、割込み処理の終了を待ってネスト状態にあった割込み処理があるか否か判断する（Ｓ８０１）。
ネスト状態の割込み処理がある場合（Ｓ８０１：Ｙｅｓ）、レディキュー３２１の先頭にある処理の優先度を参照する（Ｓ８０２）。そして、外部割込み制御部１１は、ネスト状態にあった割込み処理とレディキュー３２１の先頭にある処理の優先度とを比較する（Ｓ８０３）。
【００７３】
割込み処理とレディキューにある処理との優先度の比較は、次のようにして行われる。すなわち、ここで、ネストされているのは、外部割込み処理である。したがって、基本的にレディキューの先頭がタスクである場合にはネスト処理を継続させる。また、ネスト処理よりも優先度の高い外部割込み処理が、レディキューの先頭に登録されていた場合にはレディキューの先頭に登録されている処理を起動させる。なお、起動は、該当するプロセッサ自身に内部割込みを発生させることによって行われる。
【００７４】
ステップＳ８０３の比較の結果、レディキュー３２１の先頭にある処理の優先度がネスト状態にあった処理よりも低い場合（Ｓ８０３：Ｎｏ）、割込み処理を終了した単位プロセッサの優先度管理用レジスタ３０１にネストしていた割込み処理の優先度を設定する（Ｓ８０６）。
そして、ネストしていた割込み処理をこの単位プロセッサにおいて継続して実行させる（Ｓ８０７）。
【００７５】
また、ステップＳ８０３において、レディキュー３２１の先頭にある割込み処理の優先度がネスト状態にあった処理よりも高いと判断された場合（Ｓ８０３：Ｎｏ）、割込み処理を終了した単位プロセッサの優先度管理用レジスタ３０１にレディキュー３２１の先頭にある割込み処理の優先度を設定する（Ｓ８０４）。
そして、この単位プロセッサにレディキュー３２１において保留状態にあった処理を起動させるための内部割込みを発生させる（Ｓ８０５）。
【００７６】
一方、ステップＳ８０１においてネスト状態の割込み処理がないと判断された場合（Ｓ８０１：Ｎｏ）、外部割込み制御部１１は、レディキュー３２１に保留状態の割込み処理があるか否か判断する（Ｓ８０８）。保留状態の割込み処理がない場合（Ｓ８０１：Ｎｏ）、割込み処理を終了した単位プロセッサの優先度管理用レジスタ３０１のｂｉｔ５を「０」に更新して単位プロセッサがＨＡＬＴ状態にあると情報を設定する（Ｓ８１１）。そして、この単位プロセッサをＨＡＬＴ状態に移行させる（Ｓ８１２）。
【００７７】
また、外部割込み制御部１１は、レディキュー３２１に保留状態の割込み処理がある場合（Ｓ８０８：Ｙｅｓ）、割込み処理を終了した単位プロセッサの優先度管理用レジスタ３０１にレディキュー３２１の先頭にある処理の優先度を設定する（Ｓ８０９）。そして、この単位プロセッサにレディキュー３２１において保留状態にあった処理を起動させるための内部割込みを発生させる（Ｓ８１０）。
【００７８】
図９は、制御管理部３１０が単位プロセッサの割込み禁止を解除する方法を説明するためのフローチャートである。制御管理部３１０は、割込み禁止の解除処理を開始すると、先ず、レディキュー３２１に保留状態の処理があるか否か判断する（Ｓ９０１）。
保留状態の処理がある場合（Ｓ９０１：Ｙｅｓ）、レディキュー３２１の先頭にある処理の優先度と割込み禁止を解除したタスクの優先度とを比較する（Ｓ９０２）。
【００７９】
図９に示したフローチャートでは、タスクが割込み禁止解除を行うのであるから、基本的にはレディキューに外部割込みが登録されている場合、優先度がさらに高いタスクが登録されている場合は実行権が移行する。逆に優先度の高いタスクが登録されていない場合、そのまま割込み禁止解除を行ったタスクが実行を継続する。
すなわち、レディキュー３２１の先頭にある処理の優先度が、割込み禁止を解除したタスクの優先度よりも高い場合（Ｓ９０２：Ｙｅｓ）、レディキュー３２１の先頭にある処理の優先度を割込み禁止を解除した単位プロセッサの優先度管理用レジスタ３０１に設定する（Ｓ９０３）。
【００８０】
そして、制御管理部３１０は、割込み禁止を解除した単位プロセッサに内部割込みを要求し、レディキュー３２１の先頭にある処理をこの単位プロセッサに実行させる（Ｓ９０４）。また、制御管理部３１０は、レディキュー３２１の先頭にある処理の優先度が割込み禁止を解除した単位プロセッサで実行されているタスクの優先度よりも低いと判定された場合（Ｓ９０２：Ｎｏ）、割込み禁止解除を行ったタスクが継続して実行する。
【００８１】
図１０は、外部割込み制御部１１が単位プロセッサの割込み禁止を解除する方法を説明するためのフローチャートである。外部割込み制御部１１は、レディキュー３２１の先頭にある保留状態の割込み処理の優先度を参照する（Ｓ１００１）。そして、参照した割込み処理の優先度と、割込み禁止を解除した単位プロセッサで実行されている処理の優先度とを比較する（Ｓ１００２）。
【００８２】
比較の結果、保留状態の割込み処理の優先度が割込み禁止を解除した単位プロセッサで実行されている処理の優先度よりも高い場合（Ｓ１００２：Ｙｅｓ）、レディキュー３２１の先頭にある処理の優先度を割込み禁止を解除した単位プロセッサの優先度管理用レジスタ３０１に設定する（Ｓ１００３）。
そして、外部割込み制御部１１は、割込み禁止を解除した単位プロセッサに対し、レディキュー３２１で保留されていた処理を起動するための内部割込みを発生させる（Ｓ１００４）。
【００８３】
また、外部割込み制御部１１は、レディキュー３２１の先頭にある処理の優先度が割込み禁止を解除した単位プロセッサで実行される処理の優先度よりも低いと判定された場合（Ｓ１００２：Ｎｏ）、この単位プロセッサで実行中の処理を継続して実行させる。
以上述べた本実施形態のプロセッサ及び割込み制御方法は、割込み禁止等のプロセッサの状態をも考慮し、要求された割込み処理を実行するプロセッサを適正に選択できる。
【００８４】
また、単位プロセッサＰ０〜Ｐ３の各々が、割込み禁止等の状態や、タスクを実行中であっても割込み処理を実行中であっても、実行中の処理の優先度を優先度管理用レジスタ３０１によって管理している。このため、外部割込み制御部１１、制御管理部３１０は、割込み要求した処理あるいは単位プロセッサが実行中の処理が、タスク処理、割込み処理であるかに係らず、単位プロセッサＰ０〜Ｐ３中において、実行されている処理の優先度が最も低く、かつ割込みを要求した処理の優先度よりも優先度が低い処理を実行している単位プロセッサを選択することができる。
【００８５】
このため、本実施形態は、タスクによってなされる処理と割込みを要求してなされる処理との優先度を一元的に管理することによってタスク処理及び割込み処理を優先度がより高いものから適正に実行できるプロセッサ及び割込み制御方法を提供することができる。
また、以上述べた本実施形態は、単位プロセッサＰ０〜Ｐ３で実行されている処理の優先度を高速に検索できるため、割込みの比重が高いシステムにおいても有効である。さらに、単位プロセッサＰ０〜Ｐ３の各々にレジスタを追加することによって実現できるため、マルチプロセッサの単位プロセッサ数の増減に対しても柔軟に対応することが可能である。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施形態のプロセッサが適用される携帯電話の機能構成を示すブロック図である。
【図２】マルチプロセッサとして構成された本発明の一実施形態のプロセッサの内部構成を示すブロック図である。
【図３】図２に示した構成の本発明に係る部分をより詳細に示した図である。
【図４】図３に示したレディキューを説明するための図である。
【図５】本発明の一実施形態のタスクの割込みが発生した場合の制御管理部の動作を説明するためのフローチャートである。
【図６】本発明の一実施形態の外部割込みが発生した場合の外部割込み制御部の動作を説明するためのフローチャートである。
【図７】図５に示した方法によってキューイングされたタスクの保留状態を解除するための方法を説明するためのフローチャートである。
【図８】図５、図６に示した方法によってキューイングされたタスク、および外部割込みの保留状態を解除するための方法を説明するためのフローチャートである。
【図９】本発明の一実施形態の制御管理部が単位プロセッサの割込み禁止を解除する方法を説明するためのフローチャートである。
【図１０】本発明の一実施形態の外部割込み制御部が単位プロセッサの割込み禁止を解除する方法を説明するためのフローチャートである。
【符号の説明】
【００８７】
１１  外部割込み制御部、１２  メモリ制御部、３０  メモリ、４０  バッファ、５０  無線部、６０  ＩｒＤＡ部、７０  オーディオ部、８０  タイマ、９０  インターフェース部、１００  キー操作部、１０１  フェッチ部、１０２  デコード部、１０４  レジスタ、１０５  プログラム制御部、１０６  追出し禁止フラグ、１２０  カメラ部、１０９  周辺チップ、３０１  優先度管理用レジスタ、３０２  外部割込み通知部、３０３  保留処理部、３０４  処理プロセッサ選択部、３０５、３０６、３０７  機器、３０８  外部割込み受信部、３１０  制御管理部（ＯＳ）、３１１  タスクスケジューラ部、３１２  処理プロセッサ選択部、３１３  保留処理制御部、３１４  割込み禁止制御部、３２０  メモリ、３２１  レディキュー
【図１】
2008123157.tif 000003
【図２】
2008123157.tif 000004
【図３】
2008123157.tif 000005
【図４】
2008123157.tif 000006
【図５】
2008123157.tif 000007
【図６】
2008123157.tif 000008
【図７】
2008123157.tif 000009
【図８】
2008123157.tif 000010
【図９】
2008123157.tif 000011
【図１０】
2008123157.tif 000012