JP2010015297A - 割り込み分散処理システム及び割り込み分散方法 - Google Patents

割り込み分散処理システム及び割り込み分散方法 Download PDF

Info

Publication number
JP2010015297A
JP2010015297A JP2008173409A JP2008173409A JP2010015297A JP 2010015297 A JP2010015297 A JP 2010015297A JP 2008173409 A JP2008173409 A JP 2008173409A JP 2008173409 A JP2008173409 A JP 2008173409A JP 2010015297 A JP2010015297 A JP 2010015297A
Authority
JP
Japan
Prior art keywords
interrupt
signal
processor
interruption
processing system
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
JP2008173409A
Other languages
English (en)
Inventor
Toshiaki Komatsu
敏昭 小松
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2008173409A priority Critical patent/JP2010015297A/ja
Publication of JP2010015297A publication Critical patent/JP2010015297A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理システムを提供する。
【解決手段】割り込み分散処理システムは、複数のプロセッサ(CPU1−0〜1−n)と、複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号7を出力する割り込み受付判定ユニット2と、割り込み不可信号7−0〜7−nを受け付け、外部から割り込み信号8を受け付けたときに、割り込み不可信号7−0〜7−nに基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号9−0〜9−nを出力する割り込みコントローラ3と、を備える。
【選択図】図1

Description

本発明は、共有バス型マルチプロセッサシステムにおける割り込み分散処理システム及び方法に関するものである。
従来から、バス共有型マルチプロセッサシステムは、サーバ・ワークステーションなど高速なプロセッサシステムで使用されている。昨今組込みシステム分野においても、マルチプロセッサシステムはシステムの高性能化、低消費電力化の要求により必要となってきている。組み込みシステムは、高性能化と同時にリアルタイム性が要求されるシステムであり、割り込み処理のオーバヘッドを極力少なくし、リアルタイム性を確保しつつ効率的な割り込み処理の負荷分散方式が必要となる。
従来マルチプロセッサシステムにおける負荷分散制御には、最もプライオリティの低い処理を実行しているプロセッサに割り込みを与える方法、全プロセッサに割り込みを通知し、最も早く割り込みに応答したプロセッサに割り込みを与える方法などがあった。例えば、特許文献1にその一例が開示されている。
図7に、特許文献1に開示されているシステム構成図を示す。主記憶装置10p内にソフトウェアにて作成・管理されるプロセッサ統計情報テーブル12pと割り込みスケジュール情報テーブル13pとを備える。プロセッサ統計情報テーブル12pは、プロセッサ使用率、プロセッサバインドして実行中のプロセスのプロセッサ使用率、プロセッサ毎にバインド要求しているプロセス数からなるプロセッサ統計情報を格納する。割り込みスケジュール情報テーブル13pは、適正な範囲内で割り込みの負荷分散を行うための基本ルールである割り込みスケジュール情報を格納する。また、I/O制御装置30pに割り込み通知先に関する情報を格納する割り込み通知先情報テーブル31pを備え、I/O制御装置30pは、割り込み通知先情報テーブル31pの情報に基づいて割り込みを指定プロセッサに通知する。割り込みスケジューラ14pは、一定時間毎にプロセッサ統計情報テーブル12pと割り込みスケジュール情報テーブル13pを参照することで、割り込み負荷分散が適正になるようにスケジュールした割り込み通知情報をI/O制御装置30pへ通知する。通知された割り込み通知情報が割り込み通知先情報テーブル31pへ格納されることによって、割り込み分散処理を実現している。
特開平11−7429号公報
特許文献1では、マルチプロセッサシステムの割り込み分散に関して割り込みスケジューラ14pを、ソフトウェアを用いて実現しおり、割り込みのスケジューリングを行う度に主記憶装置10p(メモリ)へのアクセスが必要となる。したがって、割り込みスケジューラ14pを実行するプロセッサに割り込みスケジューリング処理自体のシステム負荷を与えてしまい、その処理後に割り込みコントローラに通知するまでにそのオーバヘッドが発生してリアルタイム性が損なわれるという問題があった。特にシステム全体に大きな負荷がかかっている場合、特に大きなオーバヘッドとなってしまう。
このように、バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理が必要とされていた。
本発明に係る割り込み分散処理システムの一態様は、複数のプロセッサと、前記複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を出力する割り込み受付判定ユニットと、前記割り込み不可信号を受け付け、外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する割り込みコントローラと、を備える。割り込みが可能であるか否かを、割り込み不可信号を割り込みコントローラへ専用の信号線で通知する。これにより、主記憶装置を介さずに、割り込みを各CPUに分散させることが可能になり、割り込み処理のリアルタイム性の向上を図ることができる。
また、本発明に係る割り込み分散方法の一態様は、搭載された複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を、信号線を介して割り込みコントローラへ出力し、割り込みコントローラが外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを要請するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する。
本発明によれば、バス共有型マルチプロセッサシステムにおいて、組込みシステムに必要なリアルタイム性を損なわず、効率的な割り込み分散処理システム及び方法を提供することが可能となる。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。また、本明細書では、同じ構成要素が複数存在し、それぞれを区別する場合に、符号に"−x"(x≧0の整数)付加して、複数の構成要素それぞれを区別するものとする。例えば、図1では、複数のCPU1−0、・・・1−n(n>0の整数)を示している。例えば、図1を用いて説明する場合、CPU1は、複数のCPU1−0、・・・1−nのいずれか一つまたは複数を示すものとし、CPU1−0(あるいは、CPU1−nなど)は、複数のCPUのそれぞれを区別して示すものとする。
(実施形態1)
図1は、本発明の実施形態1に係る割り込み分散処理システムの構成例を示すブロック図である。割り込み分散処理システムは、複数のCPU(プロセッサ)1−0〜1−n、割り込み受付不可判定ユニット(割り込み受付判定ユニット)2−0〜2−n、及び割り込みコントローラ3を備える。本実施形態では、割り込み受付不可判定ユニット2をCPU1に備える場合を説明するが、これに限られることはない。
割り込み受付不可判定ユニット2は、複数のCPU1それぞれについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号7を出力する。割り込み不可信号7は、割り込みコントローラ3へ出力される。図2に割り込み受付不可判定ユニット2の構成例を示す。割り込み受付不可判定ユニット2は、割り込み受付不可判定回路2a、実行待ちタスクキュー格納レジスタ(タスク数レジスタ)2b、及び実行待ちタスクキュースレッシュホールド設定レジスタ(閾値レジスタ)2cを備える。
割り込み受付不可判定回路2aは、実行待ちタスクキュー格納レジスタ2bと実行待ちタスクキュースレッシュホールド設定レジスタ2cとの2つのレジスタ情報を比較し、実行待ちタスクキュー数がスレッシュホールド値を超えた場合、制御信号として、割り込み不可信号7を生成し、割り込みコントローラ3へ出力する。実行待ちタスクキュー格納レジスタ2bは、実行待ちタスクキュー数を格納する。実行待ちタスクキュースレッシュホールド設定レジスタ2cは、割り込みコントローラ3に割り込みを受け付けることができないことを判断するための実行待ちタスクキュースレッシュホールド(実行待ちのタスク数の閾値)を設定する。
割り込みコントローラ3は、外部から割り込み信号を受け付けたときに、割り込み不可信号7に基づいて、割り込みを通知するCPU1を決定する。決定したCPU1へ割り込み通知信号9を出力する。図1に示す例では、割り込みコントローラ3は、割り込み通知判定ユニット4と割り込みマスク回路5によってこれらの機能を実現する。
割り込み通知判定ユニット4は、割り込み不可判定回路4aと割り込み分配回路(分配回路)4bとを含む。割り込み不可判定回路4aは、割り込み受付不可判定ユニット2から割り込み不可信号7を受け付け、各CPU1が割り込みを受け付け可能であるか不可であるかの情報を判定する。例えば、割り込みを受け付け可能であるか不可であるかの情報をレジスタに保持し、保持する情報に基づいて判定する。割り込み不可判定回路4aは、割り込み分配回路4bからCPU1へ割り込みの要請があった時に、割り込みが分配されたCPU1が割り込み可能であるか否かを判定する。割り込み分配回路4bは、外部からの割り込みを受け付け、所定の規則に従って割り込みを分配するCPU1を決定し、割り込み不可判定回路4aへ通知する。
割り込みマスク回路5は、外部から割り込み信号8を受け付け、割り込み通知判定ユニット4へ通知する。
図3に、本実施形態の割り込み分散処理システムとスケジューラとの関係を示すブロック図を示す。図3に示すように、本実施形態では、CPU1、割り込みコントローラ3、及びスケジューラ6は、システムバス11を介して接続されていることを前提とする。また、割り込み不可信号7及び割り込み通知信号9は、システムバス11を介すことなく、専用の信号線を用いて割り込み受付不可判定ユニット2と割り込みコントローラ3との間で転送される。
スケジューラ6は、プログラムによって実現される。スケジューラ6を実現するプログラムは、主記憶装置10にロードされ、CPU1の制御のもとで、各命令が実行される。
次に、本実施形態の割り込み分散処理システムの動作を説明する。図4は、CPU割り込み不可制御の動作例を示すフローチャートである。図5は、割り込みコントローラ3の動作例を示すフローチャートである。スケジューラ6の命令によって、割り込み受付不可判定ユニット2では、実行待ちタスクキュースレッシュホールド設定レジスタ2cに、対応するCPU1が割り込みを受け付けできない限界実行待ちタスクキュー数を予め設定される。随時オペレーティングシステムからの要求に基づいて、スケジューラ6がタスクスケジューリングを行う(S20)。このとき、スケジューラ6によって、割り込み受付不可判定ユニット2では、スケジューリングされたタスクに応じて、現在の実行待ちタスクキュー数が実行待ちタスクキュー格納レジスタ2bに格納される(S21)。割り込み受付不可判定回路2aは、実行待ちタスクキュー格納レジスタ2bと実行待ちタスクキュースレッシュホールド設定レジスタ2cとの値を比較し(S22)、実行待ちタスクキュー格納レジスタ2bの値が実行待ちタスクキュースレッシュホールド設定レジスタ2cの値より大きい場合(S22でYes)、割り込み不可信号7を割り込みコントローラ3へ出力する(S23)。割り込み受付不可判定ユニット2は、スケジューリング要求に応じて、ステップS21からステップS23の処理を繰り返す。
例えば、各CPU1がタスクスケジューリングを定常的に実行する際に、割り込み受付不可判定ユニット2は、実行待ちタスクキュー数を、実行待ちタスクキュー格納レジスタ2bに設定する(S21)。割り込み受付不可判定回路2aは、設定された実行待ちタスクキュー数と予め実行待ちタスクキュースレッシュホールド設定レジスタに設定されているスレッシュホールド値とを比較する(S22)。スレッシュホールド値よりも多くの実行待ちタスクがあった場合(S22でYes)、割り込み不可信号7を出力する(S23)。
続いて、割り込みコントローラ3の動作を図5を用いて説明する。割り込み通知判定ユニット4において、割り込み不可判定回路4aには、各CPU1が割り込みを受け付け不可の状態になったタイミングで、割り込み受付不可判定ユニット2から割り込み不可信号7が入力され、各CPU1が割り込みを受け付け可能であるか不可であるかの情報を判定できる状態となっていることを前提とする。割り込みコントローラ3の割り込みマスク回路5は、外部より入力される割り込み信号8を受け付け、割り込み分配回路4bへ割り込みが発生したことを通知する(S30)。割り込み分配回路4bは、あらかじめ設定された手順(例えば、ランドロビンなど)に基づいて、割り込みを分配するCPU1を決定し、割り込み不可判定回路4aへ決定したCPU1を通知する(S31)。
割り込み不可判定回路4aは、通知されたCPU1について、当該CPU1から割り込み不可信号7による通知があるかを判別する(S32)。割り込み不可信号7による通知がなければ(S32でYes)、割り込み不可判定回路4aは、当該CPU1へ割り込み通知信号9を出力する(S33)。割り込み不可信号7による通知があった場合(S32でNo)、割り込み不可判定回路4aは、割り込み分配回路4bへ割り込みを分配するCPU1の変更を要求し(S34)、割り込み分配回路4bから新たに割り込みを分配するCPU1が通知されると、ステップS31からの処理を繰り返す。
以上説明したように、本実施形態では、割り込み受付不可判定ユニット2を備え、割り込みコントローラ3へ各CPU1の割り込み不可状況を通知する。これにより、各CPU1の実行待ちタスク数を常に監視し、実行待ちタスクが多く存在するCPU1に対して割り込みを通知せず、他のCPU1へ割り込みを通知することによって、割り込み処理の負荷分散を実現する。システムを構築する場合、個々のCPU1の実行待ちタスク数に応じて割り込み通知不可信号を制御できるため、最終的なシステムチューニングを行うときにも効率的である。
また、本実施形態では、割り込み受付不可判定ユニット2をCPU1に配置したため、主記憶装置10へアクセスすることなく、各CPU1の実行待ちタスク数を監視することを可能にした。従って、本実施形態では、例えば、特許文献1に開示されている技術のように、割り込み情報テーブルを参照・管理するための主記憶装置へのアクセスを一切必要としない。また、各CPU1がタスクスケジューリングを行う際に、実行待ちタスク数を割り込み受付不可判定ユニット2内のレジスタに設定することが、実行待ちタスク数の監視に必要となる。このため、システム負荷がほとんどかからない割り込み分散スケジューリング処理を実現することができる。具体的には、割り込み受付不可判定ユニット2は、各CPU1の割り込み受付け判断に必要な信号を割り込みコントローラ3に定常的に送り、割り込みコントローラ3ではハードウェアを用いて、割り込みをどのCPU1に送るかをスケジューリングできるようにする。これにより、割り込みコントローラ3は、ハードウェアにて処理を行うことが可能になり、リアルタイム性が落ちにくくなる。
(実施形態2)
実施形態1では、割り込み受付不可判定ユニット2がCPU1内に配置される場合を説明したが、これに限られることはない。例えば、図6に示すように、割り込み受付不可判定ユニット2がシステムバス11に接続されている場合であってもよい。
本実施形態では、割り込み受付不可判定ユニット2をシステムバス11に接続するハードウェアとしたが、図6の構成であっても主記憶装置10へアクセスすることなく、各CPU1の実行待ちタスク数を監視することができる。実施形態1とは異なり、割り込み受付不可判定ユニット2の実行待ちタスクキュー格納レジスタ2bや実行待ちタスクキュースレッシュホールド設定レジスタ2cに値を設定する際に、CPU1はシステムバス11を経由して書き込むことになるものの、主記憶装置10へのアクセスを必要としない。CPU1がシステムバス11を経由して値を書き込むことによって生じるシステムバス11への負荷を除いて、実施形態1と同様の効果を得ることができる。
また、図6において、CPU1の数の割り込み受付不可判定ユニット2を一つのハードウェア(割り込み受付不可判定ユニット群20)として構成してもよい。
以上説明したように、上記各実施形態のいずれかによれば、組込みシステムに必要なリアルタイム性を損なわず、バス共有型マルチプロセッサシステムにおける効率的な割り込み分散システム及び割り込み分散方法を提供することができる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
本発明の実施形態1に係る割り込み分散処理システムの構成例を示すブロック図である。 割り込み受付不可判定ユニットの構成例を示すブロック図である。 実施形態1の割り込み分散システムとスケジューラとの関係を示すブロック図を示す。 実施形態1のCPU割り込み不可制御の動作例を示すフローチャートである。 実施形態1の割り込みコントローラ側の動作例を示すフローチャートである。 実施形態2の割り込み分散システムとスケジューラとの関係を示すブロック図を示す。 特許文献1に開示されているシステム構成図を示すブロック図である。
符号の説明
1−0〜1−n CPU
2−0〜2−n 割り込み受付不可判定ユニット
2a 割り込み受付不可判定回路
2b 実行待ちタスクキュー格納レジスタ
2c 実行待ちタスクキュースレッシュホールド設定レジスタ
3 割り込みコントローラ
4 割り込み通知判定ユニット
4a 割り込み不可判定回路
4b 割り込み分配回路4b
5 割り込みマスク回路
6 スケジューラ
7 割り込み不可信号
8 割り込み信号
9 割り込み通知信号
10 主記憶装置
11 システムバス
20 割り込み受付不可判定ユニット群

Claims (7)

  1. 複数のプロセッサと、
    前記複数のプロセッサについて、割り込みが可能であるかを判定し、不可能と判定した場合に割り込み不可信号を出力する割り込み受付判定ユニットと、
    前記割り込み不可信号を受け付け、外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを通知するプロセッサを決定し、決定したプロセッサへ割り込み通知信号を出力する割り込みコントローラと、を備える割り込み分散処理システム。
  2. 前記割り込み受付判定ユニットは、実行待ちのタスク数に基づいて、割り込みが可能であるかを判定することを特徴とする請求項1記載の割り込み分散処理システム。
  3. 前記割り込み受付判定ユニットは、複数のプロセッサそれぞれについて、
    実行待ちのタスク数を保持するタスク数レジスタと、
    実行待ちのタスク数の閾値を保持する閾値レジスタと、
    前記タスク格納部に格納されるタスク数が、前記閾値レジスタが保持する閾値を超える場合、前記割り込み不可信号を前記割り込みコントローラへ出力する割り込み受付不可判定回路と、を有することを特徴とする請求項1または2記載の割り込み分散処理システム。
  4. 前記タスク数レジスタは、プロセッサに任意のタスクが割り当てられたときに、スケジューラによって更新され、
    前記割り込み受付不可判定回路は、前記タスク数レジスタが保持する値が、前記閾値を超えたタイミングで前記割り込み不可信号を出力することを特徴とする請求項3記載の割り込み分散処理システム。
  5. 前記割り込みコントローラは、
    割り込みを要請するプロセッサを分配する分配回路と、
    前記割り込み不可信号に基づいて、前記分配回路が割り込みを分配したプロセッサへ割り込み可能かを判定し、割り込みができない場合、再度前記分配回路へ割り込みを分配するプロセッサを選択させ、割り込みができる場合、割り込み通知信号を出力する割り込み不可判定回路と、を有することを特徴とする請求項1乃至4のいずれか一項に記載の割り込み分散処理システム。
  6. 前記割り込み受付判定ユニットは、各プロセッサ内にそれぞれ配置され、配置されたプロセッサを判定した割り込み不可信号を前記割り込みコントローラへ出力することを特徴とする請求項1乃至5のいずれか一項に記載の割り込み分散処理システム。
  7. 搭載された複数のプロセッサについて、割り込みが可能であるかを判定し、
    不可能と判定した場合に割り込み不可信号を、信号線を介して割り込みコントローラへ出力し、
    割り込みコントローラが外部から割り込み信号を受け付けたときに、前記割り込み不可信号に基づいて、割り込みを要請するプロセッサを決定し、
    決定したプロセッサへ割り込み通知信号を出力する割り込み分散方法。
JP2008173409A 2008-07-02 2008-07-02 割り込み分散処理システム及び割り込み分散方法 Pending JP2010015297A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008173409A JP2010015297A (ja) 2008-07-02 2008-07-02 割り込み分散処理システム及び割り込み分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008173409A JP2010015297A (ja) 2008-07-02 2008-07-02 割り込み分散処理システム及び割り込み分散方法

Publications (1)

Publication Number Publication Date
JP2010015297A true JP2010015297A (ja) 2010-01-21

Family

ID=41701374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008173409A Pending JP2010015297A (ja) 2008-07-02 2008-07-02 割り込み分散処理システム及び割り込み分散方法

Country Status (1)

Country Link
JP (1) JP2010015297A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018179149A1 (ja) * 2017-03-29 2018-10-04 三菱電機株式会社 情報処理装置、情報処理方法および情報処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018179149A1 (ja) * 2017-03-29 2018-10-04 三菱電機株式会社 情報処理装置、情報処理方法および情報処理プログラム
JPWO2018179149A1 (ja) * 2017-03-29 2019-04-04 三菱電機株式会社 情報処理装置、情報処理方法および情報処理プログラム

Similar Documents

Publication Publication Date Title
US7712103B2 (en) Method and system for managing load balancing in data processing system
JP4961833B2 (ja) クラスタシステム、負荷分散方法、最適化クライアントプログラム、及び調停サーバプログラム
US8424007B1 (en) Prioritizing tasks from virtual machines
US8661447B1 (en) Method and apparatus for managing execution of a plurality of computer tasks based on availability of computer resources
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
US20120265804A1 (en) Application Hosting is a Distributed Application Execution System
US7877482B1 (en) Efficient application hosting in a distributed application execution system
JP2004310768A (ja) スレッドプールを管理するための方法、sedaステージ及びストレージ
EP2192496B1 (en) Arbitration in multiprocessor device
CN104102548A (zh) 任务资源调度处理方法和系统
WO2009150815A1 (ja) マルチプロセッサシステム
US9507633B2 (en) Scheduling method and system
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
US20200385726A1 (en) Oversubscription scheduling
JP6955163B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN110838987B (zh) 队列限流方法、存储介质
CN101908004A (zh) 促进请求执行的装置和方法
JPH05216842A (ja) 資源管理装置
JP2009026221A (ja) ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム
JP5515810B2 (ja) 負荷制御装置
JP2008046890A (ja) マルチプロセッサシステム
EP3084603B1 (en) System and method for supporting adaptive busy wait in a computing environment
JP2010015297A (ja) 割り込み分散処理システム及び割り込み分散方法
US8139477B2 (en) Network element bypass in computing computer architecture