JP2008181312A - 情報処理装置、情報処理装置の制御方法および制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法および制御プログラム Download PDF

Info

Publication number
JP2008181312A
JP2008181312A JP2007013946A JP2007013946A JP2008181312A JP 2008181312 A JP2008181312 A JP 2008181312A JP 2007013946 A JP2007013946 A JP 2007013946A JP 2007013946 A JP2007013946 A JP 2007013946A JP 2008181312 A JP2008181312 A JP 2008181312A
Authority
JP
Japan
Prior art keywords
processing
task
processor
external interrupt
request
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
JP2007013946A
Other languages
English (en)
Inventor
Ryuichi Sato
竜一 佐藤
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 JP2007013946A priority Critical patent/JP2008181312A/ja
Publication of JP2008181312A publication Critical patent/JP2008181312A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】タスクの割当を効率的に行え、かつ、各プロセッサの負荷の低減も図る。
【解決手段】複数のプロセッサ11A〜11Dを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかのプロセッサ11A〜11Dに割込処理およびタスク処理を行わせるための制御を行う情報処理装置10において、タスクコントローラ13は、外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付け、プロセッサが実行している外部割込処理あるいはタスク処理の優先度レベルを前記プロセッサ毎に記憶し、処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する。
【選択図】図2

Description

本発明は、情報処理装置、情報処理装置の制御方法および制御プログラムに係り、特に複数のプロセッサを有するマルチプロセッサ型の情報処理装置において、マルチタスク処理時に各プロセッサに処理を割り当てる技術に関する。
従来より複数のプロセッサを備え、同時に複数のタスクをハードウェア的に処理するマルチタスクプロセッサ(マルチタスク情報処理装置)が知られている。
このようなマルチタスクプロセッサにおいては、例えば、特許文献1記載の技術は、複数のタスクが発生した場合には、プロセッサ状態管理装置が、各プロセッサの動作状態(処理中あるいは待機状態)を判別し、優先度(優先順位)の高いタスクを各プロセッサに割り当てるようにされていた。
また、特許文献2記載の技術は、各プロセッサ(CPU)が自己に次の処理が割当可能かを判別し、割当可能な場合には、さらに次の割当対象を決定するように構成していた。
特開2004−86921号公報 特開2006−216042号公報
上述したように、上記従来のマルチプロセッサユニットにおいては、割込処理をいずれのCPUに割り当てるかは、各CPUで実行しているタスク(プロセスまたはスレッド)の優先度レベルまたは割込処理の優先度レベルをプロセッサ状態管理装置あるいは各プロセッサが比較して判断することとなっていた。
したがって、プロセッサ状態管理装置あるいは各CPUの負荷が増大し、処理の効率化が図れないという問題点があった。
そこで、本発明の目的は、タスクの割当を効率的に行え、かつ、各プロセッサの負荷の低減も図ることが可能な情報処理装置、情報処理方法および制御プログラムを提供することにある。
上記課題を解決するため、複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置において、外部からの外部割込処理あるいは前記プロセッサからのタスク処理の処理要求を受け付ける要求受付部と、前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶部と、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当部と、を備えたことを特徴としている。
上記構成によれば、要求受付部は、外部からの外部割込処理あるいは前記プロセッサからのタスク処理の処理要求を受け付ける。
また、処理優先度記憶部は、前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する。
これらにより、処理割当部は、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する。
したがって、単純な値(優先度レベル)の比較処理を行うだけで、処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサを判別して、処理を割り当てることが可能となる。
この場合において、前記処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサに処理要求割込を行う要求部を備えるようにしてもよい。
上記構成によれば、処理の割当先のプロセッサも容易に処理が割り当てられることを判別することができ、各プロセッサの処理負荷を低減することができる。
また、前記処理割当部により、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサが判別された場合に、当該外部割込処理あるいは当該タスク処理を割り当てるべきプロセッサを特定する情報を記憶するプロセッサ特定情報記憶部を備えるようにしてもよい。
上記構成によれば、プロセッサ特定情報記憶部は、処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサが判別された場合に、当該外部割込処理あるいは当該タスク処理を割り当てるべきプロセッサを特定する情報を記憶しているので、プロセッサ特定情報記憶部を参照するだけで、直ちに処理を割り当てることが可能となる。
また、前記処理割当部は、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを特定する情報を、前記処理要求を行ったプロセッサあるいは前記処理要求を行うに先立って前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求を行ったプロセッサに対し通知するようにしてもよい。
上記構成によれば、前記処理要求を行ったプロセッサあるいは前記処理要求を行うに先立って前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求を行ったプロセッサは、容易に処理割当先のプロセッサを特定することができ、各プロセッサの処理負荷を低減することができる。
また、前記処理要求を受けたプロセッサから、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理についての優先度レベルの通知を受けて、前記処理優先度記憶部の記憶内容を更新する処理優先度更新部を備えるようにしてもよい。
上記構成によれば、情報処理装置は常に最新の状態を把握でき、より確実に処理の割当が行える。
また、前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記処理優先度記憶部に記憶するに際し、当該処理が多重外部割込処理である場合には、多重外部割込の段数に応じて、前記優先度レベルを、より優先度が高い側の値となるように設定するようにしてもよい。
上記構成によれば、特定のプロセッサに処理が偏ることなく、均等に処理を割り当てて、処理効率の向上が図れる。
また、前記要求受付部は、外部からの外部割込処理を受け付ける割込処理部と、前記プロセッサからのタスク処理の処理要求を受け付けるコマンド解釈部と、を備えるようにしてもよい。
上記構成によれば、割込処理部は、外部からの外部割込処理を受け付け、コマンド解釈部は、プロセッサからのタスク処理の処理要求を受け付ける。
上記構成によれば、確実に外部割込処理およびタスク処理の処理要求を受け付けて、処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサに処理を割り当てることが可能となる。
また、複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置の制御方法において、外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付ける要求受付過程と、前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶過程と、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当過程と、を備えたことを特徴としている。
上記構成によれば、単純な値(優先度レベル)の比較処理を行うだけで、処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサを判別して、処理を割り当てることが可能となる。
また、複数のプロセッサおよび前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶部を有し、割込レベルおよびタスク優先度に基づいていずれかの前記プロセッサに割込処理およびタスク処理を行わせるための制御を行う情報処理装置をコンピュータにより制御するための制御プログラムにおいて、外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付けさせ、前記処理優先度記憶部に記憶されている優先度レベルを互いに比較させ、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別させる、ことを特徴としている。
上記構成によれば、単純な値(優先度レベル)の比較処理を行うだけで、処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサを判別して、処理を割り当てることが可能となる。
この場合において、上記制御プログラムをコンピュータ読取可能な記録媒体に記録するようにしてもよい。
次に本発明の好適な実施の形態について図面を参照して説明する。
図1は、実施形態の情報処理装置の概要構成ブロック図である。
情報処理装置10は、マルチプロセッサユニットとして構成されており、実際の演算処理を行う4個のCPU11A〜11Dと、CPU11A〜11Dと第1バス12を介して接続され、CPU11A〜11Dにおけるタスク管理を行うタスクコントローラ13と、CPU11A〜11Dと第2バス14を介して接続され、制御プログラムおよび各種データをあらかじめ記憶したROM15と、CPU11A〜11Dと第2バス14を介して接続され、各種データを一時的に記憶するRAM16と、CPU11A〜11Dと第2バス14を介して接続され、通信などの各種インタフェース動作を行うインタフェース部17と、を備えている。
図2は、タスクコントローラの機能ブロック図である。
タスクコントローラ13は、CPU、タスク切替制御、タスク割当制御などの各種制御プログラムを予め格納したROM、各種データを一時的に記憶するRAMなどを有するマイクロプロセッサユニットとして構成されており、いわゆるタスク制御においてCPU11A〜11Dに対して、例えば、数値演算プロセッサのように、コプロセッサ的な処理を行うものである。
タスクコントローラ13は、大別すると、コマンド解釈部として機能し、CPU11A〜11Dで動作しているOS(operating system)などからのタスクスイッチ要求コマンド等をデコードするデコーダ21と、デコードされたコマンドのシーケンス制御を行うシーケンサ22と、シーケンサ22の制御下でデコードされたコマンドに基づいて各部の制御を行う制御部23と、処理優先度レベルデータを記憶するとともに、各CPU11A〜11Dの状態をCPU状態データとして記憶する個別レジスタ25と、個別レジスタの内容に基づいて処理割当対象(タスクスイッチ対象)のCPUを決定する処理割当対象決定部26と、処理割当対象決定部26の決定結果に基づいて、処理割当対象(タスクスイッチ対象)のCPUを管理し、あるいは、外部割り込み状態を管理するための管理用データを格納する共通レジスタ27と、各CPU11A〜11Dからのタスクコントローラ13を使用するための要求(例えば,タスク切替の処理要求を行うに先立って各CPU11A〜11Dから入力された前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求)若しくは外部装置からの外部割込処理要求の調停を行って、割込要求を行い各CPU11A〜11Dに割込処理を行わせる割込処理部28と、処理データの論理的な整合性を保つために排他的に処理する必要がある場合に排他制御を行う排他制御部29と、を備えている。
図3は、個別レジスタの概要構成ブロック図である。
個別レジスタ25は、第1のCPU(本実施形態では、CPU11A)に対応するデータを記憶する第1レジスタ群31と、第2のCPU(本実施形態では、CPU11B)に対応するデータを記憶する第2レジスタ群32と、第3のCPU(本実施形態では、CPU11C)に対応するデータを記憶する第3レジスタ群33と、第4のCPU(本実施形態では、CPU11D)に対応するデータを記憶する第4レジスタ群34と、を備えている。
第1レジスタ群31は、第1のCPUであるCPU11Aが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ31Aと、第1のCPUであるCPU11Aの動作状態を表すCPU状態データを記憶するCPU状態レジスタ31Bと、を備えている。
第2レジスタ群32は、第2のCPUであるCPU11Bが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ32Aと、第2のCPUであるCPU11Bの動作状態を表すCPU状態データを記憶するCPU状態レジスタ32Bと、を備えている。
第3レジスタ群33は、第3のCPUであるCPU11Cが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ33Aと、第3のCPUであるCPU11Cの動作状態を表すCPU状態データを記憶するCPU状態レジスタ33Bと、を備えている。
第4レジスタ群34は、第4のCPUであるCPU11Dが処理を行っているタスク処理あるいは外部割込処理の処理優先度レベルデータを記憶する優先度値保持レジスタ34Aと、第4のCPUであるCPU11Dの動作状態を表すCPU状態データを記憶するCPU状態レジスタ34Bと、を備えている。
図4は、共通レジスタの概要構成ブロック図である。
共通レジスタ27は、大別すると、次回のタスクスイッチ対象のCPUを特定する番号を保持するタスクスイッチ対象CPU番号保持レジスタ25Aと、外部割込状態を記憶する外部割り込みステータスレジスタ25Bと、CPU11A〜11Dによる不正操作を検出するための不正操作検出レジスタ25Cと、を備えている。
図5は、割込処理部の概要構成ブロック図である。
割込処理部28は、第1バス12を介して入力される外部装置からの割込処理要求を受け付ける外部割込入力受付部28Aと、各CPU11A〜11Dからのタスクコントローラ13を使用するための要求(例えば,タスク切替の処理要求を行うに先立って各CPU11A〜11Dから入力された前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求)若しくは外部装置からの外部割込処理要求の調停を行う処理要求要因決定部27Bと、処理要求要因決定部27Bの調停結果に伴って、割込要求を行い各CPU11A〜11Dに割込処理を行わせる割込要求発生部27Cと、を備えている。
ここで、動作説明に先立ち、個別レジスタ25に格納される処理優先度レベルデータについて説明する。
図6は、処理優先度レベルデータのデータフォーマットの一例の説明図である。
処理優先度レベルデータ40は、6ビットのデータであり、上位ビット(MSB)側から下位ビット(LSB)側に向かって、1ビットの処理種別データ41、4ビットの優先度レベルデータ42、1ビットの多重割込レベルデータ43と、を備えている。
処理種別データ41は、処理対象がタスク処理なのか、外部割込処理なのかを表すデータである。本実施形態の場合、処理対象がタスク処理であれば、処理種別データ=0、外部割込処理であれば、処理種別データ=1となっている。
優先度レベルデータ42は、処理の優先度を表すデータであり、0〜15(0h〜Fh:hは16進数を表す。以下同じ。)の値を持つ。優先度レベルデータ=0が最も低優先度であり、優先度レベルデータ=15が最も高優先度である。
多重割込レベルデータ43は、割込処理中にさらに割込処理(多重割込処理)がなされたか否かを表すデータである。多重割込レベルデータ=0の場合は、多重割込がなされていないことを示し、多重割込レベルデータ=1の場合は、多重割込がなされていることを示す。
[基本動作]
図7は、実施形態の基本動作タイミングチャートである。
以下の説明においては、説明の簡略化のため、CPU11AおよびCPU11Bのみについて考慮するものとする。また、CPU11A上では、OSタスクが動作しており、CPU11B上では、タスクA(タスク処理)が動作しているものとする。さらに、OSタスクがタスクB(タスク処理)を行わせようとするものとする。
この場合において、OSタスクに対応するタスク処理の優先度レベルデータ=「01110」であり,タスクAの優先度レベルデータ=「010000」であり、タスクBに対応するタスク処理の優先度レベルデータ=「001000」であるものとする。
この場合に、まず、CPU11A上で動作しているOSタスクは、新たにタスクBの動作を開始させるため,共通レジスタ27からタスクスイッチの対象となるCPU番号を読み出す(ステップS1)。これは、タスク処理あるいは外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求に相当している。
タスクコントローラ13の処理割当対象決定部26は,CPU番号=1のCPU11Aに対応する優先度値保持レジスタ31AとCPU番号=2のCPU11Bに対応する優先度値保持レジスタ32Aを参照し,OSタスクに対応する優先度レベルデータ「011110」と,タスクAに対応する優先度レベルデータ「010000」とを常時比較更新する。
具体的には,優先度レベルデータは,値が小さいほど優先度が低いので,OSタスクの優先度レベル「011110」からタスクAの優先度レベル「010000」を引くと、
011110−010000=001110
となり、OSタスクに対応する優先度レベルの方が優先度が高いと判別して,共通レジスタ27のタスクスイッチ対象CPU番号保持レジスタ27AにCPU11Bに対応するCPU番号=2を書き込むこととなる。
この結果、タスクスイッチ対象CPU番号保持レジスタ27Aに設定されたCPU番号=2がCPU11Aに通知される(ステップS2)。
これにより、CPU11Aで動作しているOSタスクは、タスクコントローラ13に対してCPU番号=2のCPU11Bに対してタスク切替要求(タスクスイッチ要求)を行う(ステップS3)。
CPU11Aからのタスク切替要求に基づき、タスクコントローラ13の割込処理部28は、CPU番号=2のCPU11Bに対してタスク切替要求割込を発生させる(ステップS4)。
これにより、CPU番号=2のCPU11Bは、現在処理しているタスクAのレジスタ情報をRAM16に待避し(ステップS5)、これから処理するタスクBのレジスタ情報をRAM16から復元する(ステップS6)。
そして、CPU11Bは、タスクBに対応する処理優先度レベルデータ40=「001000」を第2レジスタ群32の優先度値保持レジスタ32Aへ格納する(ステップS7)。
そして、CPU11Bは、タスクBの処理を行うこととなる(ステップS8)。
以上の説明のように、図7に示した処理においても、タスクコントローラ13は、個別レジスタ25に格納した処理優先度レベルデータに基づいて、OSタスクからの要求に伴うタスク切替を行う際に、対象となるCPU(プロセッサ)を容易、かつ、迅速に判別することができ、ひいては、各CPUのタスク切替処理に起因する付加を低減して、効率よく処理を行わせることができる。
[外部割込発生時動作]
図8は、実施形態における外部割込発生時の動作タイミングチャートである。
以下の説明においても、説明の簡略化のため、CPU11AおよびCPU11Bのみについて考慮するものとする。また、CPU11A上では現在、タスクBが動作しており、CPU11B上では現在、タスクAが動作しているものとする。
この場合において、タスクAに対応するタスク処理の優先度レベルデータ=「010000」であり、タスクBに対応するタスク処理の優先度レベルデータ=「001000」であるものとし、外部割込の優先度レベルデータ=「111000」であるものとする。
この場合に、まず、タスクコントローラ13は、割込処理部28を介して外部割込の割込要求を受け付けると(ステップS11)、処理割当対象決定部26が個別レジスタ25を参照することにより、優先度レベルが外部割込要求の優先度レベルより低く、かつ、他のCPUが実際に処理しているタスクよりも低い優先度レベルの処理を行っているCPUを判別する。具体的には本実施形態の場合、優先度レベルが最も低いのは、CPU番号=1のCPU11Aであるので、CPU11Aに対し、割込要求を行う(ステップS12)。
これと並行して、タスクコントローラ13は、外部割込の優先度レベルデータ=「11100」を個別レジスタ25の優先度値保持レジスタ31Aへ格納する(ステップS13)。
これにより、CPU番号=1のCPU11Aは、現在処理しているタスクBのレジスタ情報をRAM16に待避し(ステップS14)、外部割込処理を行う。
そして、CPU11は、外部割込処理が終了すると、元のタスクBのレジスタ情報をRAM16から復元する(ステップS15)。
そして、CPU11Aは、タスクBに対応する処理優先度レベルデータ=「001000」を第1レジスタ群31の優先度値保持レジスタ31Aへ格納する(ステップS16)。
そして、CPU11Aは、再びタスクBの処理を行うこととなる(ステップS17)。
[多重外部割込発生時動作]
図9は、実施形態における複数の外部割込発生時の動作タイミングチャート(その1)である。図10は、実施形態における複数の外部割込発生時の動作タイミングチャート(その2)である。
以下の説明においても、説明の簡略化のため、CPU11AおよびCPU11Bのみについて考慮するものとする。また、CPU11A上では現在、タスクBが動作しており、CPU11B上では現在、タスクAが動作しているものとする。
この場合において、タスクAに対応するタスク処理の優先度レベルデータ=「010000」であり、タスクBに対応するタスク処理の優先度レベルデータ=「001000」であるものとし、第1の要因による外部割込の優先度レベルデータ=「110000」であり、第2の要因による外部割込の優先度レベルデータ=「101000」であり、第3の要因による外部割込の優先度レベルデータ=「100100」であるものとする。
すなわち、処理の優先度は、第1の要因による外部割込>第2の要因による外部割込>第3の要因による外部割込>タスクA>タスクBであるものとする。
この場合に、まず、タスクコントローラ13は、割込処理部28を介して第3の要因による外部割込の割込要求を受け付けると(ステップS21)、処理割当対象決定部26が個別レジスタ25を参照することにより、優先度レベルが第3の要因による外部割込要求の優先度レベルより低く、かつ、他のCPUが実際に処理しているタスクよりも低い優先度レベルの処理を行っているCPUを判別する。具体的には本実施形態の場合、優先度レベルが最も低いのは、タスクBを処理しているCPU番号=1のCPU11Aであるので、CPU11Aに対し、割込要求を行う(ステップS22)。
これにより、CPU11Aは、第3の要因による外部割込処理を開始する(ステップS23)。
これと並行して、タスクコントローラ13は、第3の要因による外部割込の優先度レベルデータ=「100100」を個別レジスタ25の優先度値保持レジスタ31Aへ格納する(ステップS24)。
一方、CPU番号=1のCPU11Aは、現在処理しているタスクBのレジスタ情報をRAM16に待避し(ステップS25)、第3の要因による外部割込処理を行う。
次にタスクコントローラ13は、割込処理部28を介して第2の要因による外部割込の割込要求を受け付けると(ステップS26)、処理割当対象決定部26が個別レジスタ25を参照することにより、優先度レベルが第2の要因による外部割込要求の優先度レベルより低く、かつ、他のCPUが実際に処理しているタスクよりも低い優先度レベルの処理を行っているCPUを判別する。具体的には本実施形態の場合、この時点で優先度レベルが最も低いのは、タスクAを処理しているCPU番号=2のCPU11Bであるので、CPU11Bに対し、割込要求を行う(ステップS27)。
これにより、CPU11Bは、第2の要因による外部割込処理を開始する(ステップS28)。
これと並行して、タスクコントローラ13は、第2の要因による外部割込の優先度レベルデータ=「101000」を個別レジスタ25の優先度値保持レジスタ32Aへ格納する(ステップS29)。
一方、CPU番号=2のCPU11Bは、現在処理しているタスクAのレジスタ情報をRAM16に待避し(ステップS30)、第2の要因による外部割込処理を行う。
さらにタスクコントローラ13は、割込処理部28を介して第1の要因による外部割込の割込要求を受け付けると(ステップS31)、処理割当対象決定部26が個別レジスタ25を参照することにより、優先度レベルが第1の要因による外部割込要求の優先度レベルより低く、かつ、他のCPUが実際に処理しているタスクよりも低い優先度レベルの処理を行っているCPUを判別する。具体的には本実施形態の場合、この時点で優先度レベルが最も低いのは、第3の要因による外部割込を処理しているCPU番号=1のCPU11Aであるので、CPU11Aに対し、割込要求(多重割込要求)を行う(ステップS32)。
これにより、CPU11Aは、第1の要因による外部割込処理を開始する(ステップS33)。
これと並行して、タスクコントローラ13は、第1の要因による外部割込の優先度レベルデータ=「110000」に多重割込を意味する「000001」を加算した優先度レベルデータ=「110001」を個別レジスタ25の優先度値保持レジスタ31Aへ格納する(ステップS34)。
一方、CPU番号=1のCPU11Aは、現在処理している第3の要因による外部割込処理のレジスタ情報をRAM16に待避し(ステップS35)、第2の要因による外部割込処理を行う。
一方、CPU番号2のCPU11Bは、第2の要因による外部割込処理が終了すると、元のタスクAのレジスタ情報をRAM16から復元する(ステップS36)。
そして、CPU11Bは、タスクAに対応する処理優先度レベルデータ=「010000」を第2レジスタ群32の優先度値保持レジスタ32Aへ格納する(ステップS37)。
そして、CPU11Bは、再びタスクAの処理を行うこととなる(ステップS38)。
一方、CPU番号1のCPU11Aは、第1の要因による外部割込処理が終了すると、第3の要因による外部割込処理のレジスタ情報をRAM16から復元する(ステップS39)。
そして、CPU11Aは、第3の要因による外部割込処理に対応する処理優先度レベルデータ=「100100」を第1レジスタ群31の優先度値保持レジスタ31Aへ格納する(ステップS40)。
そして、CPU11Aは、第3の要因による外部割込処理を行うこととなる(ステップS41)。
続いてCPU11Aは、第3の要因による外部割込処理が終了すると、元のタスクBのレジスタ情報をRAM16から復元する(ステップS42)。
そして、CPU11Aは、タスクBに対応する処理優先度レベルデータ=「001000」を第1レジスタ群31の優先度値保持レジスタ31Aへ格納し(ステップS43)、再びタスクBの処理を行うこととなる(ステップS44)。
以上の説明のように、図9および図10に示した処理においても、タスクコントローラ13は、個別レジスタ25に格納した処理優先度レベルデータに基づいて、タスク切替を行う際に、対象となるCPU(プロセッサ)を容易、かつ、迅速に判別することができ、ひいては、各CPUのタスク切替処理に起因する付加を低減して、効率よく処理を行わせることができる。
以上の実施形態の説明では、プロセッサ(CPU)が2つの場合について説明したが、複数ある場合であれば同様に適用が可能である。
以上の説明においては、図9に示したように、外部割込の優先度レベルデータに多重割込を意味する値を加算した優先度レベルデータを個別レジスタの優先度値保持レジスタへ格納する理由については説明しなかったが、これは、各割込対象の処理の優先度レベルが同一であっても、既に多重割込を行っている場合には、当該処理はより優先度が高いものとして、他のプロセッサに処理を割り当てるようにするためである。
これにより、より効率的な処理が図れる。
以上の説明においては、多重割込の有無だけを考慮する場合について説明したが、多重割込回数をより詳細に考慮するように構成することも可能である。この場合には、多重割込レベルデータを複数ビット(例えば、多重割り込み回数が0回,1回,2回,3回以上とで差異を設ける場合には、2ビット)で表現し、対応する値を優先度レベルデータに加算するように構成することも可能である。
以上の説明においては、上記各機能を実現するための制御プログラムが、予めROMに格納する場合について説明したが、制御プログラムを、コンピュータ読取可能な記録媒体に記録するようにしてもよい。このような構成であれば、コンピュータによってプログラムが記憶媒体から読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、上記実施形態の画像情報処理装置と同等の作用および効果が得られる。
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、どのような記憶媒体であってもよい。
実施形態の情報処理装置の概要構成ブロック図である。 タスクコントローラの機能ブロック図である。 個別レジスタの概要構成ブロック図である。 共通レジスタの概要構成ブロック図である。 割込処理部の概要構成ブロック図である。 処理優先度レベルデータのデータフォーマットの一例の説明図である。 実施形態の基本動作タイミングチャートである。 実施形態における外部割込発生時の動作タイミングチャートである。 実施形態における複数の外部割込発生時の動作タイミングチャート(その1)である。 実施形態における複数の外部割込発生時の動作タイミングチャート(その2)である。
符号の説明
10…情報処理装置、11…CPU、11A…CPU、11B…CPU、11C…CPU、11D…CPU、12…第1バス、13…タスクコントローラ、14…第2バス、15…ROM、16…RAM、17…インタフェース部、21…デコーダ、22…シーケンサ、23…制御部、25…個別レジスタ、25A…タスクスイッチ対象CPU番号保持レジスタ、25B…ステータスレジスタ、25C…不正操作検出レジスタ、26…処理割当対象決定部、27…共通レジスタ、27A…タスクスイッチ対象CPU番号保持レジスタ、27B…処理要求要因決定部、27C…割込要求発生部、28…割込処理部、28A…外部割込入力受付部、29…排他制御部、31…第1レジスタ群、31A…優先度値保持レジスタ、31B…CPU状態レジスタ、32…第2レジスタ群、32A…優先度値保持レジスタ、32B…CPU状態レジスタ、33…第3レジスタ群、33A…優先度値保持レジスタ、33B…CPU状態レジスタ、34…第4レジスタ群、34A…優先度値保持レジスタ、34B…CPU状態レジスタ、40…処理優先度レベルデータ、41…処理種別データ、42…優先度レベルデータ、43…多重割込レベルデータ。

Claims (9)

  1. 複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置において、
    外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付ける要求受付部と、
    前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶部と、
    前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当部と、
    を備えたことを特徴とする情報処理装置。
  2. 請求項1記載の情報処理装置において
    前記処理要求がなされた場合に、前記処理要求に対応する外部割込処理あるいはタスク処理を割り当てるべきプロセッサに処理切替要求割込を行う切替要求部を備えたことを特徴とする情報処理装置。
  3. 請求項1または請求項2記載の情報処理装置において、
    前記処理割当部により、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサが判別された場合に、当該外部割込処理あるいは当該タスク処理を割り当てるべきプロセッサを特定する情報を記憶するプロセッサ特定情報記憶部を備えたことを特徴とする情報処理装置。
  4. 請求項1ないし請求項3のいずれかに記載の情報処理装置において、
    前記処理割当部は、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを特定する情報を、前記処理要求を行ったプロセッサあるいは前記処理要求を行うに先立って前記タスク処理あるいは前記外部割込処理を割り当てるべきプロセッサに関する情報である割当情報の要求を行ったプロセッサに対し通知することを特徴とする情報処理装置。
  5. 請求項4記載の情報処理装置において、
    前記処理切替要求を受けたプロセッサから、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理についての優先度レベルの通知を受けて、前記処理優先度記憶部の記憶内容を更新する処理優先度更新部を備えたことを特徴とする情報処理装置。
  6. 請求項1ないし請求項5のいずれかに記載の情報処理装置において、
    前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記処理優先度記憶部に記憶するに際し、当該処理が多重外部割込処理である場合には、多重外部割込の段数に応じて、前記優先度レベルを、より優先度が高い側の値となるように設定することを特徴とする情報処理装置。
  7. 請求項1ないし請求項6のいずれかに記載の情報処理装置において、
    前記要求受付部は、外部からの外部割込処理を受け付ける割込処理部と、
    前記プロセッサからのタスク切替処理の処理要求を受け付けるコマンド解釈部と、
    を備えたことを特徴とする情報処理装置。
  8. 複数のプロセッサを有し、外部割込処理の優先度レベルおよびタスク処理の優先度レベルに基づいていずれかの前記プロセッサにタスク処理および外部割込処理を行わせるための制御を行う情報処理装置の制御方法において、
    外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付ける要求受付過程と、
    前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶過程と、
    前記処理優先度記憶部に記憶されている優先度レベルを互いに比較し、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別する処理割当過程と、
    を備えたことを特徴とする情報処理装置の制御方法。
  9. 複数のプロセッサおよび前記プロセッサが実行している前記外部割込処理あるいは前記タスク処理の優先度レベルを前記プロセッサ毎に記憶する処理優先度記憶部を有し、割込レベルおよびタスク優先度に基づいていずれかの前記プロセッサに割込処理およびタスク処理を行わせるための制御を行う情報処理装置をコンピュータにより制御するための制御プログラムにおいて、
    外部からの外部割込処理あるいは前記プロセッサからのタスク切替処理の処理要求を受け付けさせ、
    前記処理優先度記憶部に記憶されている優先度レベルを互いに比較させ、前記処理要求に対応する前記外部割込処理あるいは前記タスク処理を割り当てるべきプロセッサを判別させる、
    ことを特徴とする制御プログラム。
JP2007013946A 2007-01-24 2007-01-24 情報処理装置、情報処理装置の制御方法および制御プログラム Pending JP2008181312A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007013946A JP2008181312A (ja) 2007-01-24 2007-01-24 情報処理装置、情報処理装置の制御方法および制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007013946A JP2008181312A (ja) 2007-01-24 2007-01-24 情報処理装置、情報処理装置の制御方法および制御プログラム

Publications (1)

Publication Number Publication Date
JP2008181312A true JP2008181312A (ja) 2008-08-07

Family

ID=39725172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007013946A Pending JP2008181312A (ja) 2007-01-24 2007-01-24 情報処理装置、情報処理装置の制御方法および制御プログラム

Country Status (1)

Country Link
JP (1) JP2008181312A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176828A (zh) * 2018-11-09 2020-05-19 三星电子株式会社 包括多核处理器的片上系统及其任务调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176828A (zh) * 2018-11-09 2020-05-19 三星电子株式会社 包括多核处理器的片上系统及其任务调度方法
CN111176828B (zh) * 2018-11-09 2024-04-05 三星电子株式会社 包括多核处理器的片上系统及其任务调度方法

Similar Documents

Publication Publication Date Title
JP4474378B2 (ja) ロックステップ及びフリーステップの両プロセッサモードによる計算処理
US20060161924A1 (en) Scheduling method, in particular context scheduling method, and device to be used with a scheduling method
JP5408330B2 (ja) マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
KR20230070247A (ko) 다수의 페치 및 디코드 파이프라인을 갖는 프로세서
TW201317895A (zh) 電腦裝置及其中斷任務分配方法
JP2008181312A (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
EP3665572B1 (en) Memory allocation type for media buffer
KR101271211B1 (ko) 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법
WO2014188642A1 (ja) スケジュールシステム、スケジュール方法、及び、記録媒体
JP2004178578A (ja) 競合調停装置、競合調停方法および競合調停プログラム
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
JP2008197770A (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2014078214A (ja) スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
JP2005258509A (ja) ストレージ装置
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP4017005B2 (ja) 演算装置
JP4631442B2 (ja) プロセッサ
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP2008197771A (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2004103012A (ja) プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ
JP4198016B2 (ja) 情報処理装置およびその割り込み制御方法
JP2007102399A (ja) データ処理装置
JP2024072010A (ja) プログラム、命令実行制御装置、及び命令実行制御方法