JP4609113B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP4609113B2
JP4609113B2 JP2005055422A JP2005055422A JP4609113B2 JP 4609113 B2 JP4609113 B2 JP 4609113B2 JP 2005055422 A JP2005055422 A JP 2005055422A JP 2005055422 A JP2005055422 A JP 2005055422A JP 4609113 B2 JP4609113 B2 JP 4609113B2
Authority
JP
Japan
Prior art keywords
processor
unit
interrupt
processing
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005055422A
Other languages
English (en)
Other versions
JP2006243864A (ja
JP2006243864A5 (ja
Inventor
明彦 田村
克哉 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005055422A priority Critical patent/JP4609113B2/ja
Publication of JP2006243864A publication Critical patent/JP2006243864A/ja
Publication of JP2006243864A5 publication Critical patent/JP2006243864A5/ja
Application granted granted Critical
Publication of JP4609113B2 publication Critical patent/JP4609113B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Telephone Function (AREA)

Description

本発明は、複数のタスクあるいはスレッドを並列的に処理するプロセッサに関する。
近年、組み込み機器等において、複数のタスクあるいはスレッドを並列的に処理可能なマルチタスクプロセッサあるいはマルチスレッドプロセッサと呼ばれるプロセッサ(以下、これらを総称して「マルチプロセッサ」と言う。)が利用されつつある。
従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
そして、マルチプロセッサによる処理を行う場合、割り込み処理の発生に対して、シングルプロセッサと異なる対応を行う必要がある。例えば、割り込みの種類に応じて、複数のプロセッサのうち処理を行うプロセッサを定めておくという方法や、複数のプロセッサの全てに割り込み信号を入力し、プロセッサ間で調停を行うといった方法が考えられる。
なお、マルチプロセッサにおいて、割り込み処理をプロセッサ間で調停する方法に関する技術が、特許文献1,2に記載されている。
特許文献1,2に記載された技術は、マルチプロセッサシステムにおいて、プロセッサ毎に割り込みコントローラを備えておき、割り込み要求が発生した場合に、これら割り込みコントローラ間で調停を行うものである。
特開平6−324996号公報 特開平10−97509号公報
しかしながら、特許文献1,2に記載された技術においては、プロセッサ毎に割り込みコントローラを備えているため、必要なハードウェアが大型化し、配線も複雑化する。
また、上述のように、割り込みの種類に応じて、複数のプロセッサのうち処理を行うプロセッサを定めておくこととした場合、非動作状態のプロセッサが存在するにもかかわらず、割り込み処理が実行されない事態を生じ得るため、プロセッサ全体として処理効率が低下すると共に、割り込み処理に対する高い応答性を実現することが困難であった。
さらに、優先度の高いタスク等を実行しているプロセッサに割り込みが発生した場合、割り込み処理によって優先度の高いタスクが退避されることも考えられ、タスクの処理効率が低下するという問題があった。
このように、特許文献1,2に記載された技術を含め、従来の技術においては、マルチプロセッサにおいて、割り込み処理等、優先度の高い処理(以下、「高優先度処理」と言う。)を動作条件に応じて効率的に処理することが困難であった。
本発明の課題は、マルチプロセッサにおいて、優先度の高い処理を動作条件に応じて効率的に処理することである。
以上の課題を解決するため、本発明は、
タスクあるいはスレッドを処理する複数のプロセッサ部(例えば、図2の単位プロセッサP0〜P3)と、入力された優先度の高い処理(例えば、割り込み処理)の実行を制御する高優先度処理制御部(例えば、図2の外部割り込み制御部11)とを備えるプロセッサであって、前記高優先度処理制御部は、前記複数のプロセッサ部のうち、タスクあるいはスレッドの処理を実行していないプロセッサ部または最も優先度の低いタスクあるいはスレッドの処理を実行しているプロセッサ部に、入力された優先度の高い処理を実行させる非固定モードと、特定のプロセッサ部に、入力された優先度の高い処理を実行させる固定モードとを切り換えるモード切り換え部を備えることを特徴としている。
このような構成により、優先度の高い処理を実行するプロセッサ部について、固定モードおよび非固定モードを切り換えることができる。
そのため、優先度の高い処理の発生頻度が高い時には固定モードを選択し、優先度の高い処理の発生頻度が低い時には非固定モードを選択するといったことが可能となる。
したがって、マルチプロセッサにおいて、優先度の高い処理を動作条件に応じて効率的に処理することが可能となる。
また、前記複数のプロセッサ部での実行待ち状態にあるタスクあるいはスレッドを管理するタスク管理部(例えば、レディタスク管理テーブルを備える制御管理部12)を備え、前記モード切り換え部は、実行待ち状態にあるタスクあるいはスレッドの数に応じて、前記非固定モードと固定モードとを切り換えることを特徴としている。
このような構成により、タスクあるいはスレッドの処理に必要な能力に適合したモードを選択することが可能となる。
また、前記モード切り換え部は、アプリケーションプログラムによる設定に応じて、前記非固定モードと固定モードとを切り換えることを特徴としている。
このような構成により、プロセッサにおいて実行されるアプリケーションの処理中に、優先度の高い処理の要求に応じた最適なシステムとすることが可能となる。
また、前記高優先度処理制御部は、前記非固定モードにおいて、前記複数のプロセッサ部のうち、一部のプロセッサ部をタスクあるいはスレッドを処理する専用のプロセッサ部とし、残りのプロセッサ部を対象として、入力された優先度の高い処理を実行させることを特徴としている。
このような構成により、優先度の高い処理の発生頻度とタスクの処理効率とを考慮して、より適切に優先度の高い処理を実行させることが可能となる。
前記優先度の高い処理は、割り込み処理であることを特徴としている。
このような構成により、マルチプロセッサにおける割り込み処理を動作条件に応じて効率的に処理することが可能となる。
また、本発明は、
タスクあるいはスレッドを処理する複数のプロセッサ部を備えるプロセッサにおける情報処理方法であって、前記複数のプロセッサ部のうち、タスクあるいはスレッドの処理を実行していないプロセッサ部または最も優先度の低いタスクあるいはスレッドの処理を実行しているプロセッサ部に、入力された優先度の高い処理を実行させる非固定モードと、特定のプロセッサ部に、入力された優先度の高い処理を実行させる固定モードとを切り換えることを特徴としている。
このように、本発明によれば、マルチプロセッサにおいて、優先度の高い処理を動作条件に応じて効率的に処理することが可能となる。
以下、図を参照して本発明に係るプロセッサの実施の形態を説明する。
本発明に係るプロセッサは、タスクあるいはスレッド等、プログラムをその実行単位で並列的に処理するものであり、本発明に係るプロセッサ内に、タスク等を実行するプロセッサ(以下、「単位プロセッサ」と言う。)が実質的に複数備えられたハードウェア構成を有している。
そして、複数の単位プロセッサのうち、高優先度処理(割り込み処理等)を実行する単位プロセッサを適宜選択する外部割り込み制御部を備えることにより、高優先度処理を効率的に実行することを可能としている。
さらに、本発明に係るプロセッサは、必要に応じて、割り込み処理を実行する単位プロセッサを固定的に定めることにより、高優先度処理に対して高い応答性を確保している。
このように、本発明に係るプロセッサは、割り込み処理を実行する単位プロセッサを動的に変更するモードと、固定的に定めるモードとを動作条件に応じて切り換えることを可能としている。
したがって、優先度の高い処理を動作条件に応じて効率的に処理することが可能なマルチプロセッサを実現することが可能である。
まず、構成を説明する。
ここでは、本発明に係るプロセッサを携帯電話に組み込んだ場合を例に挙げ、高優先度処理として割り込み処理を想定した場合について説明する。なお、以下の説明において、スレッド等、プログラムの実行単位を総称して「タスク」と言う。
図1は、本発明に係る携帯電話1の機能構成を示すブロック図である。
図1において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、バッファ40と、無線部50と、IrDA(Infrared Data Association)部60と、オーディオ(Audio)部70と、タイマ(Timer)80と、USB(Universal Serial Bus)インターフェース部90と、キー(KEY)操作部100と、LCD(Liquid Crystal Display)110と、カメラ(Camera)部120とを含んで構成され、CPU10、フラッシュROM20、メモリ30およびバッファ40は、バスによって接続されている。また、無線部50、IrDA部60、オーディオ部70、タイマ80、USBインターフェース部90、キー操作部100、LCD110およびカメラ部120は、CPU10と直接接続されている。
CPU10は、複数のタスクを並列的に処理しつつ携帯電話1全体を制御するもので、キー操作部100から入力される各種の指示信号に応じて、フラッシュROM20に記憶されたオペレーティングシステムプログラム(OS)や各種アプリケーションプログラムを読み出して実行したり、無線部50、オーディオ部70あるいはカメラ部120等の周辺チップから入力される割り込み信号に応じて、割り込みハンドラを実行したりする。
例えば、CPU10は、OSにより生成されたタスクと、アプリケーションにより生成されたタスクを並行して処理し、さらに、周辺チップから割り込み信号が入力された場合、割り込みハンドラを実行することにより、割り込み信号に対応するアプリケーションを起動する。
ここで、CPU10は、割り込み処理を実行する単位プロセッサ(後述)を固定的に定めるモード(以下、「固定モード」と言う。)と、割り込み処理を実行する単位プロセッサを適宜選択するモード(以下、「非固定モード」と言う。)とを切り換えることが可能である。固定モードは、携帯電話1において割り込み処理の発生頻度が高い動作条件(例えば、パケット通信時や発着信時)に適したモードであり、非固定モードは、携帯電話1において割り込み処理の発生頻度が低い動作条件(例えば、動画像再生等の画像処理時)に適したモードである。
さらに、これら固定モードおよび非固定モードは、アプリケーションプログラムの要求によって切り換える手動切り換え処理と、レディ状態にあるタスクの発生状況に応じてOSが自動的に切り換える自動切換え処理とのいずれかによって切り換えられる。
なお、アプリケーションによる処理は、OSのタスクスケジューラによって管理されるタスクとして実行されるため、OSのサービスコールを呼び出すことができ、一方、割り込み処理は、タスクスケジューラによって管理されない処理(非タスク処理)であるため、OSのサービスコールを呼び出すことはできない。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
ここで、CPU10の内部構成について説明する。
図2は、CPU10の内部構成を示すブロック図である。
図2において、CPU10は、複数の単位プロセッサP0〜P3と、外部割り込み制御部11と、制御管理部12とを含んで構成される。なお、図2に示す周辺チップは、図1に示す無線部50、IrDA部60およびオーディオ部70等、CPU10に直接接続された機能部を総称したものであり、それぞれの周辺チップが、これら機能部のいずれかであることを意味している。
単位プロセッサP0〜P3は、それぞれが並列してタスクを処理可能なプロセッサであり、周辺チップにおいて割り込み信号が発生した場合、後述する外部割り込み制御部11によって選択されたプロセッサが割り込み処理を実行する。
なお、単位プロセッサP0〜P3の内部構成としては同様のものとなるため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサP0は、ステータスレジスタ(PSR)101と、プログラムカウンタ(PC)102と、割り込み処理用ステータスレジスタ(EPSR)103と、割り込み処理用プログラムカウンタ(EPC)104とを含んで構成される。
なお、単位プロセッサP0は、ここでは図示を省略するが、プログラムカウンタが示すメモリアドレスから命令コードを読み出すフェッチ部、フェッチ部によって入力された命令コードをデコードするデコード部、デコード部におけるデコード結果に応じて、所定の演算を行うALU(Arithmetic and Logical Unit)、演算対象あるいは演算結果のデータを記憶するレジスタファイル等を含んでいる。
ステータスレジスタ101は、単位プロセッサP0のステータス(例えば、割り込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶している。
プログラムカウンタ102は、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶している。
なお、ステータスレジスタ101およびプログラムカウンタ102に記憶された内容は、単位プロセッサP0において割り込み処理が実行される際に、割り込み処理用ステータスレジスタ103および割り込み処理用プログラムカウンタ104に退避される。
割り込み処理用ステータスレジスタ103は、単位プロセッサP0において割り込み処理が実行される場合に、割り込み処理プログラムを起動する直前のステータスレジスタ101の状態を退避(複製)するレジスタである。割り込み処理プログラムにおいて、必要に応じて割り込み処理用ステータスレジスタ103の内容をスタック領域に退避することも可能である。
割り込み処理用プログラムカウンタ104は、単位プロセッサP0において割り込み処理が実行される場合に、割り込み処理プログラムを起動する直前のプログラムカウンタ102のアドレスを退避(複製)するレジスタである。割り込み処理プログラムにおいて、必要に応じて割り込み処理用プログラムカウンタ104の内容をスタック領域に退避することも可能である。
外部割り込み制御部11は、無線部50等の周辺チップから割り込み信号が入力された場合に、割り込み信号を調停した上で、割り込み処理を実行させるプロセッサを選択し、単位プロセッサP0が選択された場合には、所定の割り込み信号を単位プロセッサP0に出力する。
具体的には、外部割り込み制御部11は、全体割り込み許可制御部11aと、全体割り込み優先度制御部11bと、割り込み処理プロセッサ選択部11cと、割り込みベクタ11dとを含んで構成される。
全体割り込み許可制御部11aは、CPU10において各種割り込み処理の実行を許可するか否かを示す割り込み許可フラグを記憶しており、周辺チップから割り込み信号が入力された場合に、その割り込みに対応する割り込み許可フラグが割り込みを許可する状態を示している場合、その割り込み処理を受け付け、その割り込みに対応する割り込み許可フラグが割り込みを許可しない状態を示している場合、その割り込み処理に対して待機状態とさせる。
全体割り込み優先度制御部11bは、CPU10において受け付ける割り込み処理の優先度(基準値)を記憶している。CPU10に入力される割り込み処理には、予め固定的にあるいは割り込み処理の発生時に動的に優先度のレベルが設定されており、全体割り込み優先度制御部11bには、CPU10において現在実行されている割り込み処理の優先度のレベルが記憶される。そして、全体割り込み優先度制御部11bは、周辺チップから入力された割り込み信号の優先度を参照して、記憶している割り込み処理の優先度(基準値)と周辺チップから入力された割り込み信号の優先度とを比較する。その結果、周辺チップから入力された割り込み信号の優先度が、現在記憶されている優先度(基準値)以下であると判定した場合、全体割り込み優先度制御部11bは、周辺チップからの割り込み処理に対して待機状態とさせ、一方、現在記憶されている優先度(基準値)より高いと判定した場合、新たな割り込み処理を優先して実行する。
割り込み処理プロセッサ選択部11cは、単位プロセッサP0〜P3のいずれに次の割り込み処理を実行させるかを示す単位プロセッサ指定領域と、単位プロセッサ指定領域に示される単位プロセッサに割り込み処理を行わせるか否かを示す割り込み可否領域とを含むレジスタによって構成される。
単位プロセッサ指定領域は、CPU10においてディスパッチ(タスクの切り換えに伴う単位プロセッサP0〜P3の再割り当て)が発生する毎に実行される割り込み処理プロセッサ指定処理(後述)によって更新される。また、単位プロセッサ指定領域は、CPU10が割り込み処理を実行させる単位プロセッサについて固定モードに設定されている場合は更新されず、非固定モードに設定されている場合にのみ、割り込み処理プロセッサ指定処理によって更新される。なお、割り込み可否領域は、CPU10全体として割り込み処理を受け付けるか否かに応じて書き換えられる。
割り込みベクタ11dは、割り込みハンドラの一覧が格納されたテーブルのメモリアドレスを記憶している。割り込み処理が実行される場合、まず、処理を行う単位プロセッサは、割り込みベクタに記憶されたメモリ30上のアドレスを参照し、テーブルに示されている、割り込みの種類に応じた割り込みハンドラの格納先へジャンプする。そして、単位プロセッサが割り込みハンドラを起動することにより、割り込み処理が行われる。
制御管理部12は、メモリ30上に展開されたオペレーティングシステムプログラムと協働して実現される機能であり、例えば、OSの一機能として割り込み処理プロセッサ指定処理が実行されることにより、割り込み処理プロセッサ選択部11cの単位プロセッサ指定領域を更新する機能を備えている。また、制御管理部12は、単位プロセッサP0〜P3の動作状態(Halt状態であるか動作中であるか)および動作中の単位プロセッサP0〜P3において実行されているタスクの優先度の管理を行う単位プロセッサ管理テーブルや、タスクスイッチによって一時的に退避されること等によりレディ状態とされたタスクを管理するレディタスク管理テーブルを備えており、割り込み処理を実行させる単位プロセッサの自動切り換え処理においては、レディタスク管理テーブルを参照することによってレディ状態にあるタスクの数が認識される。
なお、OSとしての処理を実行する単位プロセッサは、状況に応じて随時変化する。
図1に戻り、フラッシュROM20は、携帯電話1において実行されるオペレーティングシステムプログラム、および、各種アプリケーションプログラムを記憶している。
メモリ30は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)あるいはSDRAM(Synchronous DRAM)といった半導体メモリによって構成され、CPU10が処理を実行する際にワークエリアを形成すると共に、その処理結果を記憶する。
バッファ40は、外部から携帯電話1に入力されたデータあるいは携帯電話1において発生されたデータを一時的に保持するバッファである。
無線部50は、携帯電話1と携帯電話システムの基地局との間における無線通信を行うものである。例えば、無線部50は、基地局から携帯電話1に対する着信を示す信号を受信した場合、CPU10に対して割り込み信号を出力し、着信信号の受信を通知する。また、無線部50は、CPU10から発信を指示する信号が入力された場合、基地局に対して発信要求を示す信号を送信する。
IrDA部60は、IrDAに基づく通信を行うインターフェースであり、外部からIrDAに基づく無線信号を受信した場合、CPU10に対して割り込み信号を出力し、IrDA信号の受信を通知する。
オーディオ部70は、携帯電話1において入出力される音声信号を処理するものであり、通話におけるマイクおよびスピーカを用いた音声の入出力、あるいは、音楽等の再生といった処理を行う。
タイマ80は、携帯電話1のクロック信号を基に時間を計測し、例えば1ms毎等、所定時間毎にCPU10に対して割り込み信号を出力する。
USBインターフェース部90は、USBによる通信を行うためのインターフェースであり、USBケーブルが接続された場合やUSBケーブルから信号を受信した場合等に、CPU10に対して割り込み信号を出力する。
キー操作部100は、携帯電話1に対する指示入力を行うための各種キーを備えており、これらのキーが押下された場合に、CPU10に対する割り込み信号を出力する。
LCD110は、CPU10によって入力された文字あるいは画像等の描画命令に従って、所定画面を表示する表示装置である。
カメラ部120は、CCD(Charge Coupled Devices)あるいはCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子を備え、画像を撮影した場合に、CPU10に対して割り込み信号を出力する。
次に、動作を説明する。
初めに、割り込み処理プロセッサ指定処理について説明する。
図3は、割り込み処理プロセッサ指定処理を示すフローチャートである。なお、図3に示す割り込み処理プロセッサ指定処理は、アプリケーションプログラムの要求によって固定モードおよび非固定モードを切り換える手動切り換え処理に対応する場合を示している。
割り込み処理プロセッサ指定処理は、CPU10においてディスパッチが発生する毎にOSを実行している単位プロセッサ(ここでは単位プロセッサP0であるものとする。)によって実行される。
図3において、CPU10においてディスパッチが発生すると、OSを実行している単位プロセッサP0は、割り込み処理を実行させる単位プロセッサについて、現在設定されているモードが固定モードあるいは非固定モードのいずれであるかを判定する(ステップS1)。
ステップS1において、現在設定されているモードが固定モードであると判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cの単位プロセッサ指定領域を更新せずに保持し(ステップS2)、現在設定されているモードが非固定モードであると判定した場合、Halt状態にある単位プロセッサが存在するか否かを判定する(ステップS3)。
ステップS3において、Halt状態にある単位プロセッサが存在すると判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を、Halt状態にある単位プロセッサを示す値に書き換える(ステップS4)。
一方、ステップS3において、Halt状態にある単位プロセッサが存在しないと判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を、最も優先度の低いタスクを実行している単位プロセッサを示す値に書き換える(ステップS5)。
ステップS2、ステップS4およびステップS5の後、単位プロセッサP0は、割り込み処理プロセッサ指定処理を終了する。
このような処理の結果、割り込み処理が発生した場合に、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を参照することにより、割り込み処理が発生する毎に単位プロセッサの選択を行うことなく、直ちに割り込み処理を実行可能な状態となる。また、CPU10に現在設定されているモードに応じた単位プロセッサの指定が行われるため、CPU10の動作条件に応じた指定方法とすることができる。
次に、割り込み処理が発生した場合に外部割り込み制御部11およびOSを実行している単位プロセッサP0が実行する割り込み実行処理について説明する。
図4は、割り込み実行処理を示すフローチャートである。
割り込み実行処理は、無線部50等の周辺チップから割り込み信号が入力された場合に開始される。
図4において、周辺チップから割り込み信号が入力されると、全体割り込み許可制御部11aは、記憶している割り込み許可フラグを参照し、入力された割り込み信号の実行が許可されているか否かを判定する(ステップS101)。
ステップS101において、入力された割り込み信号の実行が許可されていないと判定した場合、全体割り込み許可制御部11aは、ステップS101に移行する。
一方、ステップS101において、全体割り込み許可制御部11aが、入力された割り込み信号の実行が許可されていると判定した場合、全体割り込み優先度制御部11bは、入力された割り込み信号の優先度と、記憶している優先度(基準値)とを比較し、入力された割り込み信号の優先度が、記憶している優先度(基準値)より高いか否かを判定する(ステップS102)。
ステップS102において、入力された割り込み信号の優先度が、記憶している優先度(基準値)以下であると判定した場合、全体割り込み優先度制御部11bは、ステップS101に移行する。
一方、ステップS102において、全体割り込み優先度制御部11bが、入力された割り込み信号の優先度が記憶している優先度(基準値)より高いと判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を参照する(ステップS103)。
そして、単位プロセッサP0は、単位プロセッサ管理テーブルを参照して、単位プロセッサ指定領域に示された単位プロセッサがタスクを実行中であるか否かを判定し(ステップS104)、タスクの実行中であると判定した場合、割り込み処理を実行させる単位プロセッサにタスクスイッチを行わせ、コンテキストを退避させる(ステップS105)。
ステップS104においてタスクの実行中でないと判定した場合、および、ステップS105の後、割り込み処理を実行させる単位プロセッサが割り込み処理を実行し(ステップS106)、単位プロセッサP0は、現在設定されているモードが固定モードであるか否かの判定を行う(ステップS107)。
ステップS107において、現在設定されているモードが固定モードでないと判定した場合、単位プロセッサP0は、ステップS105において退避させたコンテキストを、割り込み処理を実行した単位プロセッサに復帰する(ステップS108)。
一方、ステップS107において、現在設定されているモードが固定モードであると判定した場合、単位プロセッサP0は、割り込み処理を実行させた単位プロセッサに後続の割り込み処理を実行させる(ステップS109)。
ステップS108およびステップS109の後、割り込み実行処理は終了する。
このような処理の結果、CPU10に現在設定されているモードに応じた割り込み処理が実行される。
以上のように、本実施の形態に係る携帯電話1は、割り込み処理を実行する単位プロセッサについて、固定モードおよび非固定モードを切り換えて実行することができる。
そのため、CPU10において、割り込み処理の発生頻度が高い時には固定モードを選択し、割り込み処理の発生頻度が低い時には非固定モードを選択するといったことが可能である。
したがって、マルチプロセッサであるCPU10において、優先度の高い処理を動作条件に応じて効率的に処理することが可能となる。
図5は、本実施の形態に係るCPU10における動作例を示す図である。
図5において、初期状態では固定モードに設定されており、割り込み処理は単位プロセッサP4に固定的に入力される。
図5に示すように、単位プロセッサP3がタスクT1を実行している状態において、割り込み処理Aが入力されると、タスクT1のコンテキストがスタック領域に退避され、割り込み処理Aが開始される。なお、このとき、単位プロセッサP2はタスクT2、単位プロセッサP1はタスクT3、単位プロセッサP0はタスクT4を実行しており、これらのタスクに設定された優先度は、高いものから順にタスクT4、タスクT3、タスクT2、タスクT1であるものとする。
ここで、割り込み処理Aの実行中に、割り込み処理Aより優先度のレベルが高い割り込み処理Bが入力された場合、単位プロセッサP3は、割り込み処理Aのコンテキストを退避し、割り込み処理Bを実行した後、割り込み処理Aのコンテキストを復帰して処理を継続する。
そして、割り込み処理Aの実行を終了すると、タスクT1のコンテキストをスタック領域から復帰させ、再びタスクT1を実行する。
その後、タスクT1の処理において、割り込み処理のモードを固定モードから非固定モードに切り換える要求が発生したとする。
すると、最も優先度の低いタスクはタスクT1であるため、次に発生した割り込み処理Cは、タスクT1を実行している単位プロセッサP3に入力される。
そのため、単位プロセッサP3において、タスクT1のコンテキストが退避され、割り込み処理Cの実行が開始される。
さらに、割り込み処理Cの実行中に割り込み処理Dが発生すると、タスクT1の次に優先度の低いタスクはタスクT2であることから、単位プロセッサP2に割り込み処理Dが入力される。
そのため、単位プロセッサP2において、タスクT2のコンテキストが退避され、割り込み処理Dが開始される。
そして、単位プロセッサP2が割り込み処理Dの実行を終了したとき、タスクT5が処理対象のタスクに追加されていたとする。タスクT5は、タスクT1,T2より優先度が高く、タスクT3,T4より優先度が低いものとする。
すると、タスクの切り換え(ディスパッチ)が発生し、レディ状態であるタスクT1,T2,T5のうち、最も優先度の高いタスクT5のコンテキストが復帰され、タスクT5の処理が開始される。
また、単位プロセッサP3が割り込み処理Cの実行を終了すると、タスクの切り換え(ディスパッチ)が発生し、レディ状態であるタスクT1,T2のうち、最も優先度の高いタスクT2のコンテキストが復帰され、タスクT2の処理が継続される。
なお、ディスパッチが発生する毎に、割り込み処理プロセッサ指定処理が実行され、プロセッサ指定領域が書き換えられる。
このように、本実施の形態に係るCPU10において、優先度の高い処理が動作条件に応じて効率的に処理されることとなる。
ここで、本実施の形態において、図3に示した割り込み処理プロセッサ指定処理は、レディ状態とされたタスクの数に応じて、自動的にモードを切り換える手順(自動切り換え処理)とすることも可能である。
図6は、自動切り換え処理に対応する割り込み処理プロセッサ指定処理を示すフローチャートである。
図6に示す割り込み処理プロセッサ指定処理は、CPU10においてディスパッチが発生する毎にOSを実行している単位プロセッサ(ここでは単位プロセッサP0であるものとする。)によって実行される。
図6において、CPU10においてディスパッチが発生すると、OSを実行している単位プロセッサP0は、レディタスク管理テーブルを参照し、レディ状態とされたタスクの数を判定する(ステップS201)。
ステップS201において、レディ状態とされたタスクの数が設定されている基準値N個(N:自然数)以上であると判定した場合、単位プロセッサP0は、非固定モードに設定し(ステップS202)、割り込み処理プロセッサ選択部11cの単位プロセッサ指定領域を更新せずに保持した後(ステップS203)、割り込み処理プロセッサ指定処理を終了する。
一方、ステップS201において、レディ状態とされたタスクの数がN−1個以下であると判定した場合、単位プロセッサP0は、固定モードに設定し(ステップS204)、Halt状態にある単位プロセッサが存在するか否かを判定する(ステップS205)。
ステップS205において、Halt状態にある単位プロセッサが存在すると判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を、Halt状態にある単位プロセッサを示す値に書き換える(ステップS206)。
一方、ステップS205において、Halt状態にある単位プロセッサが存在しないと判定した場合、単位プロセッサP0は、割り込み処理プロセッサ選択部11cにおける単位プロセッサ指定領域を、最も優先度の低いタスクを実行している単位プロセッサを示す値に書き換える(ステップS207)。
そして、単位プロセッサP0は、割り込み処理プロセッサ指定処理を終了する。
このように、レディ状態にあるタスクの数に応じて固定モードおよび非固定モードを自動的に切り換えることにより、タスクの処理に必要な能力の増減に適合したモードとすることが可能となる。
なお、本実施の形態において、非固定モードによって割り込み処理を実行する単位プロセッサを選択する場合、1つの割り込み処理が発生することにより、1つの単位プロセッサを選択する状態を想定して説明したが、割り込み処理が重複して発生した場合に、割り込み処理を実行している単位プロセッサ以外の単位プロセッサにおけるタスクの優先度を判定し、最も優先度の低いタスクを実行している単位プロセッサに新たな割り込み処理を実行させることとしても良い。
このような構成により、割り込み処理に対する応答性を高めることが可能となる。
また、本実施の形態において、非固定モードによって割り込み処理を実行する単位プロセッサを選択する場合に、単位プロセッサP0〜P3のうち、一部の単位プロセッサが割り込み処理を実行し、残りの単位プロセッサはタスクのみを専用に処理する構成としても良い。
この場合、例えば、割り込み処理プロセッサ選択部11c内に、割り込み処理を実行させる単位プロセッサを指定するためのレジスタを備えておき、割り込み処理プロセッサ指定処理において、このレジスタによって指定されている単位プロセッサのみを対象として、Halt状態であるか否か、あるいは、実行しているタスクの優先度等の判定を行うことで実現することができる。
このような構成とすることにより、割り込み処理の発生頻度とタスクの処理効率とを考慮して、より適切に割り込み処理を実行させることが可能となる。
また、本実施の形態において、固定モードによって割り込み処理を実行する場合、割り込み処理の実行用に選択された単位プロセッサにおいて、割り込み処理に対するバックグラウンド処理(例えば、フラッシュROM20への書き込み処理あるいはリアルタイム性を要求されない処理(メモリのガーベッジコレクション、バッテリの残量表示、ハードウェアのモニタ処理等))を実行することとしても良い。なお、バックグラウンド処理は、割り込み処理が発生した場合には処理中のデータを破棄することが許容される程度の優先度の低い処理である。
また、本発明は、マルチスレッドプロセッサあるいはマルチタスクプロセッサと呼ばれる各種実装形態のプロセッサに適用可能であるが、例えば、1チップ上に複数のプロセッサコアが実装され、プロセッサの構成要素の少なくとも一部をこれら複数のプロセッサコアが共用する形態のマルチプロセッサ(いわゆる密結合型のマルチタスクプロセッサ)において、特に有効となる。
図7は、本発明の適用対象となるマルチプロセッサの構成例を示す図である。
図7に示すマルチプロセッサは、メモリ制御部およびALUを複数のプロセッサコアが共用する形態であり、それぞれのプロセッサコアにプログラムカウンタおよびステータスレジスタ等の制御用レジスタが備えられていると共に、マルチプロセッサ全体を制御するためのプログラム制御部(全体用プログラム制御部)および制御用レジスタ(全体用PSR)も別途備えられている。なお、図6に示すように、各プロセッサコアで共用するコンテキストキャッシュ等を備えても良い。
このような構成のマルチプロセッサの場合、各プロセッサコアが本実施の形態における単位プロセッサの機能を実現し、全体用プログラム制御部および全体PSRの一部が本実施の形態における外部割り込み制御部の機能を実現するものとなる。
本発明に係る携帯電話1の機能構成を示すブロック図である。 CPU10の内部構成を示すブロック図である。 手動切り換え処理に対応する割り込み処理プロセッサ指定処理を示すフローチャートである。 割り込み実行処理を示すフローチャートである。 本実施の形態に係るCPU10における動作例を示す図である。 自動切り換え処理に対応する割り込み処理プロセッサ指定処理を示すフローチャートである。 本発明の適用対象となるマルチプロセッサの構成例を示す図である。
符号の説明
1 携帯電話、10 CPU、11 外部割り込み制御部、11a 全体割り込み許可制御部、11b 全体割り込み優先度制御部、11c 割り込み処理プロセッサ選択部、11d 割り込みベクタ、12 制御管理部、20 フラッシュROM、30 メモリ、40 バッファ、50 無線部、60 IrDA部、70 オーディオ部、80 タイマ、90 USBインターフェース部、100 キー操作部、110 LCD、120 カメラ部、P0〜P3 単位プロセッサ、101 ステータスレジスタ、102 プログラムカウンタ、103 割り込み処理用ステータスレジスタ、104 割り込み処理用プログラムカウンタ

Claims (1)

  1. タスクあるいはスレッドを処理する複数のプロセッサ部と、入力された優先度の高い処理の実行を制御する高優先度処理制御部とを備えるプロセッサであって、
    前記優先度の高い処理は割り込み処理であり、
    前記複数のプロセッサ部のうち、次に発生した割り込み処理を実行させるプロセッサ部を示すプロセッサ指定部を備え、
    前記複数のプロセッサ部のうち、割り込み処理を実行するプロセッサ部として選択が許可されているものを指定するためのレジスタを備え、
    前記高優先度処理制御部は、前記複数のプロセッサ部のうち、タスクあるいはスレッドの処理を実行していないプロセッサ部または最も優先度の低いタスクあるいはスレッドの処理を実行しているプロセッサ部に、入力された優先度の高い処理を実行させる非固定モードと、特定のプロセッサ部に、入力された優先度の高い処理を実行させる固定モードとを切り換えるモード切り換え部を備え、
    前記モード切り換え部は、アプリケーションプログラムによる設定に応じて、前記非固定モードと固定モードとを切り換え、
    前記複数のプロセッサ部のうち、オペレーティングシステムを実行しているプロセッサ部は、ディスパッチが発生した場合に、現在の設定が前記非固定モードであるか固定モードであるかを判定し、非固定モードであるときには、前記プロセッサ指定部を、前記レジスタによって割り込み処理を実行するプロセッサ部として選択が許可されているもののうち、タスクあるいはスレッドの処理を実行していないプロセッサ部または最も優先度の低いタスクあるいはスレッドの処理を実行しているプロセッサ部を指定する状態とし、固定モードであるときには、前記プロセッサ指定部の状態を保持することを特徴とするプロセッサ。
JP2005055422A 2005-03-01 2005-03-01 プロセッサ Expired - Fee Related JP4609113B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005055422A JP4609113B2 (ja) 2005-03-01 2005-03-01 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005055422A JP4609113B2 (ja) 2005-03-01 2005-03-01 プロセッサ

Publications (3)

Publication Number Publication Date
JP2006243864A JP2006243864A (ja) 2006-09-14
JP2006243864A5 JP2006243864A5 (ja) 2008-04-17
JP4609113B2 true JP4609113B2 (ja) 2011-01-12

Family

ID=37050246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005055422A Expired - Fee Related JP4609113B2 (ja) 2005-03-01 2005-03-01 プロセッサ

Country Status (1)

Country Link
JP (1) JP4609113B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188398A (ja) 2006-01-16 2007-07-26 Seiko Epson Corp マルチプロセッサシステム、マルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム。
JP5243711B2 (ja) 2006-11-10 2013-07-24 セイコーエプソン株式会社 プロセッサ
JP2010157901A (ja) 2008-12-26 2010-07-15 Sony Corp 信号処理装置、信号処理方法およびプログラム
KR101653204B1 (ko) 2010-03-16 2016-09-01 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
JP5765423B2 (ja) 2011-07-27 2015-08-19 富士通株式会社 マルチコアプロセッサシステム、およびスケジューリング方法
JP5936041B2 (ja) * 2012-03-07 2016-06-15 日本電気株式会社 マルチプロセッサ装置、スケジューリング方法、および、スケジューリングプログラム
JP6379852B2 (ja) * 2014-08-22 2018-08-29 大日本印刷株式会社 電子情報記録媒体、プロセッサモジュールの処理方法、及びプロセッサモジュールの処理プログラム
JP6518087B2 (ja) * 2015-03-09 2019-05-22 キヤノン株式会社 プログラム処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302353A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 対称形マルチプロセッサ計算機のタイマ割込み方式
JPH0855038A (ja) * 1994-05-31 1996-02-27 Advanced Micro Devicds Inc 対称多重処理システム、そのための割込制御ユニット、および対称多重処理システム内でプロセッサ割込信号を開始するための方法
JP2005004562A (ja) * 2003-06-13 2005-01-06 Canon Inc マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302353A (ja) * 1991-03-29 1992-10-26 Toshiba Corp 対称形マルチプロセッサ計算機のタイマ割込み方式
JPH0855038A (ja) * 1994-05-31 1996-02-27 Advanced Micro Devicds Inc 対称多重処理システム、そのための割込制御ユニット、および対称多重処理システム内でプロセッサ割込信号を開始するための方法
JP2005004562A (ja) * 2003-06-13 2005-01-06 Canon Inc マルチプロセッサシステム、マルチプロセッサシステムの制御方法、およびマルチプロセッサシステムの制御プログラム

Also Published As

Publication number Publication date
JP2006243864A (ja) 2006-09-14

Similar Documents

Publication Publication Date Title
KR100746797B1 (ko) 프로세서 및 정보처리 방법
JP4148223B2 (ja) プロセッサおよび情報処理方法
JP4609113B2 (ja) プロセッサ
US7853743B2 (en) Processor and interrupt controlling method
KR101346135B1 (ko) 멀티 스레드 프로세서에서 인터럽트들을 할당하기 위한 방법들 및 시스템들
JP5323828B2 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
KR20160110406A (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
US9092255B2 (en) Multi-core processor system, computer product, and control method for interrupt execution
US8117474B2 (en) CPU clock control during cache memory stall
US20130036426A1 (en) Information processing device and task switching method
JP2006260377A (ja) 並列処理装置および情報処理方法
JP4675891B2 (ja) タスクスケジューリング装置、タスクスケジューリング方法、タスクスケジューリングプログラム、記録媒体、及び伝送媒体
KR20070117605A (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP4389797B2 (ja) プロセッサおよび情報処理方法
US20080288693A1 (en) Parallel Processing Device and Exclusive Control Method
EP1341092A1 (en) Method and arrangement for virtual direct memory access
JP2008181524A (ja) ハンドシェークインターフェース方式を利用したデジタル信号プロセッサ及びその駆動方法
JPH06119190A (ja) タスク切替処理方式
JP2007048030A (ja) ソフトウェア割り込み制御システムおよびその制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080303

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080303

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100804

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100914

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees