JP2006268282A - マルチ・パーティション・システムの割り込み制御方式 - Google Patents
マルチ・パーティション・システムの割り込み制御方式 Download PDFInfo
- Publication number
- JP2006268282A JP2006268282A JP2005083804A JP2005083804A JP2006268282A JP 2006268282 A JP2006268282 A JP 2006268282A JP 2005083804 A JP2005083804 A JP 2005083804A JP 2005083804 A JP2005083804 A JP 2005083804A JP 2006268282 A JP2006268282 A JP 2006268282A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- computer system
- vectors
- peripheral device
- peripheral devices
- 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.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】 「割り込み共有」を選択した場合は性能低下が生じるシステムが出てくる。「割り込み共有無し」を選択した場合は周辺装置の数に制限が出るシステムが出てくる。
【解決手段】 接続できる周辺装置が256個までの制限を持つOSを動作させる場合、BIOSセットアップメニュー(X)で割り込み制御方式に切替える。BIOS(Y)は使用する割り込みベクタ数を256個以内とするため、割り込みコントローラ(A〜D)が持つ割り込みベクタ・レジスタ数を64個から8個へ減らし、周辺装置からの割り込みを8個の割り込みベクタ・レジスタへ共有させる。周辺装置の接続数に制限の無いOSを動作させるコンピュータ・システム(2)と、周辺装置の数が256個を超えていないコンピュータ・システム(3)上でコンピュータ・システム(1)と同じ制限のあるOSを動作せる場合とは、割り込みを共有させる必要がないため標準の通常モードを選択する。
【選択図】 図1
【解決手段】 接続できる周辺装置が256個までの制限を持つOSを動作させる場合、BIOSセットアップメニュー(X)で割り込み制御方式に切替える。BIOS(Y)は使用する割り込みベクタ数を256個以内とするため、割り込みコントローラ(A〜D)が持つ割り込みベクタ・レジスタ数を64個から8個へ減らし、周辺装置からの割り込みを8個の割り込みベクタ・レジスタへ共有させる。周辺装置の接続数に制限の無いOSを動作させるコンピュータ・システム(2)と、周辺装置の数が256個を超えていないコンピュータ・システム(3)上でコンピュータ・システム(1)と同じ制限のあるOSを動作せる場合とは、割り込みを共有させる必要がないため標準の通常モードを選択する。
【選択図】 図1
Description
本発明はマルチ・パーティション・システムの割り込み制御方式に関し、特に、マルチ・パーティション・システムの割り込み制御方式に関する。
従来のコンピュータ・システムでは、オペレーティング・システム(以下、OSと呼ぶ)が認識できる割り込みベクタ数に制限、すなわち、接続できる周辺装置の数に制限を持ったOSを動作させる場合、その制限の範囲内でしか周辺装置の接続を許可しないといった構成上の制限を設けるか、あるいは、接続する周辺装置の数に制限を設けず、その代わりに、全ての周辺装置の割り込みが制限の範囲内の割り込みベクタに収まるよう、複数の周辺装置で物理的な割り込み線(INTA#〜INTD#)をORして一つの割り込み線に束ねた上で割り込みコントローラの割り込みピンに入力して割り込みベクタを共有させる、といった2つの対策が行われる。前者の場合、コンピュータ・システムを利用するユーザの立場から見て、必要な数の周辺装置を接続することができないといった問題が生じる。後者の場合、必要な数の周辺装置を接続することが出来るが、割り込みベクタ数に制限がないOSを動作させる場合でも複数の周辺装置が割り込みを共有してしまうため、割り込み判別処理に伴うオーバーヘッドが発生して性能が低下する、といった課題があった。
関連する内容が特許文献1、特許文献2に記載されている。
上述したように、従来のコンピュータ・システムでは、OSが認識し制御できる周辺装置の数の制限は、一つの要因として、OSが周辺装置に対して割り当てることができる割り込みベクタ数の最大値によって決まる。例えば、OSが周辺装置に対して割り当てる割り込みベクタ数を1バイトで管理していた場合、周辺装置に対して割り当てることができる割り込みベクタ数は256個までとなり、周辺装置は256個までしか接続できない。256個以上接続した場合は、256番目以降の周辺装置は使うことができない。
一般的に、このような制限を持ったOSを、制限を越えた数の周辺装置を接続したコンピュータ・システム上で動作させる場合は、コンピュータ・システムの設計段階で、複数の周辺装置の割り込み信号を一つに束ねて、複数の周辺装置で一つの割り込みベクタを共有させる、という対策が行われる。この場合、複数の周辺装置で割り込みベクタを共有しているため、割り込みが発生した際、OSはどちらの周辺装置からの割り込みかを判別しなければならない。この判別はOSが周辺装置を制御する上でのオーバーヘッドとなり、コンピュータ・システムの性能を低下させる要因の一つになっている。
従って、制限を持たないOSをコンピュータ・システム上で動作させる場合、あるいは、制限を持っているOSを周辺装置の数が制限を越えていないコンピュータ・システム上で動作させる場合は、割り込みを共有させないことが望ましい。しかしながら、従来のコンピュータ・システムは、割り込みを共有するか共有しないかの二者択一であり、コンピュータ・システムの設計段階でどちらかに決めなければならないため、“割り込み共有“を選択した場合は、制限のあるOSに対しては周辺装置の数の制限が無くなるという利点があるが、制限のないOSに対しては不必要な割り込み共有に伴う性能低下という欠点が生ずる。“割り込み共有無し“を選択した場合は、制限のあるOSに対しては接続できる周辺装置の数に制限が残ってしまうが、制限のないOSに対しては性能低下を生じさせない。
このような二者択一は、従来のような単一コンピュータ・システム上で単一OSを動作させる場合においては、OSの制限と周辺装置の数を考慮した最適な唯一の選択を行なえばよいが、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムにおいては、“割り込み共有“を選択した場合は、性能低下が生じるシステムが出てくる、“割り込み共有無し“を選択した場合は、周辺装置の数に制限が出るシステムが出てくる、といった課題がある。分割されたそれぞれのコンピュータ・システムが自由に選択できる、従来の二者択一に代わる、新たな方法が求められている。
本発明の目的は、上述した従来の課題を解決するマルチ・パーティション・システムの割り込み制御方式を提供することにある。
本発明のマルチ・パーティション・システムの割り込み制御方式は、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムの割り込み制御方式であって、動作させるOSとコンピュータ・システム構成とに基づいて最適な割り込み制御を選択する手段を有することを特徴とする。
本発明のマルチ・パーティション・システムの割り込み制御方式は、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムの割り込み制御方式であって、OSは割り込みベクタ数の限界値をBIOSへ通知する手段を備え、BIOSは通知された限界値に基づいて最適な割り込みベクタの設定を行う手段を備えたことを特徴とする。
第1の効果は、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムにおいて、“割り込みベクタを共有する“を選択することで、割り込みベクタ数の制限、すなわち、接続可能な周辺装置の数に制限を持ったOSを、その制限を越えた数の周辺装置を接続した状態でも動作させることができるコンピュータ・システムと、”割り込みベクタを共有しない“を選択することで、制限の無いOSを、割り込みベクタを共有した場合に生ずる性能低下を起こすことなく動作させることができるコンピュータ・システムの2つを提供できる点にある。その理由は、各コンピュータ・システムそれぞれが、OSの制限有無と周辺装置の数に依存して、割り込みベクタを共有させるか共有させないかを選択できる点にある。
第2の効果は、それぞれのコンピュータ・システム上において、動作させるOSを、制限のあるOSから制限の無いOSへ、あるいはその逆へ変更する場合、あるいは、接続する周辺装置の数を増減させた場合において、割り込みベクタを共有させるか共有させないかを選択的に変更できる点にある。その理由は、オペレータがBIOSセットアップメニューを使って自由に割り込みベクタを共有させるか共有させないかを選択できることにある。また、BIOSがその選択に従って割り込みコントローラを初期化し、OSに対して割り込みベクタ・レジスタ一覧表を渡すことで最適な割り込みベクタの設定ができることにある。
本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は本発明の実施の形態の構成図である。図1を参照して、本発明の概要を説明する。
一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムにおいて、8個の周辺装置ボックスを接続した大規模周辺装置を備えたコンピュータ・システム(1)上で、割り込みベクタ数は256個までの制限、すなわち、周辺装置は256個までしか接続できない制限を持ったOSを動作させる場合、予めBIOS(Basic Input/Output System)セットアップメニュー(X)を使って、本発明が提案する割り込み制御方式(以下、割り込み共有モードと呼ぶ)に切り替えておく。
BIOS(Y)は256ベクタ・モードであることを知ると、使用する割り込みベクタ数を256個以内に抑えるため、割り込みコントローラ(A〜D)に対する二つの設定を行う。第一の設定は、割り込みコントローラ(A〜D)が持っている割り込みベクタ・レジスタ数を64個から8個へ減らすことである。具体的には、割り込みベクタ数レジスタ(R1)の値を64個から8個へ書き換える。第二の設定は、周辺装置からの割り込みを、8個の割り込みベクタ・レジスタへ共有させることである。具体的には、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本が対応している16個の割り込みベクタ・レジスタ(V00〜V15)を、8個の割り込みベクタ・レジスタ(V00〜V07)へ対応するよう割り込みコントローラの割り込みモード・レジスタ(R2)を割り込み共有モードへ設定する。そして、OSが立ち上げ時に各周辺装置に対して割り込みベクタを割り当てる際、OSは割り込みベクタ数レジスタ(R1)の値を読んで割り込みベクタが8個であることを知り、割り込みベクタ数の制限値256に到達するまで、各周辺装置に対して割り込みベクタを割り当てると共に、各周辺装置へ割り当てた割り込みベクタと同じ値を割り込みベクタ・レジスタ(V00〜V07)へ書き込む。
このように複数の周辺装置で割り込みベクタを共有させることで、消費する割り込みベクタ数を、一つの割り込みコントローラ当たりとしては、通常モードの場合の64個から、本発明が提案する割り込み共有モードでは8個へと減らすことができ、一つの周辺装置ボックス単位としては、256個から32個へと減らすことができる。そして、最大8個の周辺装置ボックスを接続した場合、通常モードでは2048個の割り込みベクタが必要になるが、本発明が提案する割り込み共有モードでは、256個の割り込みベクタへと抑えることが可能となる。その結果、8個の周辺装置ボックスを接続した大規模周辺装置を備えたコンピュータ・システム(1)上において、割り込みベクタ数は256個までの制限、すなわち、周辺装置は256個までしか接続できない制限を持ったOSを動作させることができる。
一方、割り込みベクタ数、すなわち周辺装置の接続数に制限の無いOSを動作させるコンピュータ・システム(2)では、割り込みを共有させる必要がないため、BIOSセットアップメニュー(X)では、標準の通常モードを選択する。同様に、周辺装置の数が256個を超えていないコンピュータ・システム(3)上でコンピュータ・システム(1)と同じ制限のあるOSを動作せる場合は、同様に、割り込みを共有させる必要がないため、BIOSセットアップメニュー(X)では、標準の通常モードを選択する。
次に、本発明の具体的な実施例について説明する。まず、第1の実施例を説明する。
図1を参照すると、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムであって、コンピュータ・システム(1)、コンピュータ・システム(2)、コンピュータ・システム(3)と3つに分割されてそれぞれ独立したOSが動作できる。
コンピュータ・システム(1)は、8個の周辺装置ボックス(E)を接続している。一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されている。割り込みコントローラ(A〜D)は64個の割り込みベクタ・レジスタ(V00〜V63)と、周辺装置からの割り込みを入力するための64本の割り込みピン(P00〜P63)を備えている。割り込みベクタと割り込みピンは一対一で対応している。一つの周辺装置ボックス(E)には16個のスロットが装備されており、各スロットには周辺装置を制御するPCIカードが搭載されている。一つの割り込みコントローラ(A〜D)には4つの周辺装置からの割り込みが入力されており、一つの周辺装置当たり4つの割り込み(INTA#〜INTD#)を持っているため、一つの割り込みコントローラには16本の割り込みが入力される。この周辺装置からの割り込み16本は割り込みピン(P00〜P15)に入力され、16個の割り込みベクタ・レジスタ(V00〜V15)が対応している。一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されているため、合計で64個の割り込みベクタが割り当てられ、コンピュータ・システム(1)は8個の周辺装置ボックス(E)を接続しているため、合計で512個の割り込みベクタが割り当てられる。さらには、一つの割り込みコントローラは64個の割り込みベクタ・レジスタ(V00〜V63)を備えており、一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されているため、実際は、合計で256個の割り込みベクタが消費され、コンピュータ・システム(1)は8個の周辺装置ボックス(E)を接続することができるため、合計で2048個の割り込みベクタが消費される。また、コンピュータ・システム(1)上では、割り込みベクタ数は256個までの制限、すなわち、周辺装置は256個までしか接続できない制限を持ったOSを動作させる。
コンピュータ・システム(2)は、コンピュータ・システム(1)と同じく8個の周辺装置ボックス(E)を接続しているため、同様に2048個の割り込みベクタが消費される。動作させるOSは、割り込みベクタ数の制限、すなわち、周辺装置の数の制限を持たないOSである。
コンピュータ・システム(3)は、1個の周辺装置ボックス(E)を接続しているため、256個の割り込みベクタが消費される。動作させるOSは、コンピュータ・システム(1)と同じく割り込みベクタ数の制限、すなわち、周辺装置の数の制限を持ったOSである。
BIOS(Y)がコンピュータ・システム(1)とコンピュータ・システム(2)とコンピュータ・システム(3)の割り込みコントローラ(A〜D)の初期化を行う。BIOS(Y)はBIOSセットアップメニュー(X)を装備している。BIOSセットアップメニュー(X)には、本発明が提案する割り込み制御方式(以下、割り込み共有モードと呼ぶ)へ切り替えるための機能が装備されている。
割り込みコントローラ(A〜D)は割り込みベクタ数レジスタ(R1)を装備している。割り込みコントローラ(A〜D)は標準で64個の割り込みベクタ・レジスタ(V00〜V63)を装備していることから、割り込みベクタ数レジスタ(R1)には初期値として64が格納されている。また、この割り込みベクタ数レジスタ(R1)はプログラムが可能であり、BIOS(Y)がプログラムする。例えば、BIOS(Y)は、BIOSセットアップメニュー(X)で割り込み共有モードが指示されていた場合、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本が対応している16個の割り込みベクタ・レジスタ(V00〜V15)を、8個の割り込みベクタ・レジスタ(V00〜V07)へ対応するよう割り込みを共有させるために、割り込みベクタ数レジスタ(R1)の値を64から8へ書き換える。
また、割り込みコントローラ(A〜D)は割り込みモード・レジスタ(R2)を装備している。モードには、割り込みコントローラ(A〜D)が標準で装備している64個の割り込みベクタを使用する通常モードと、本発明が提案する割り込み共有モードの二種類がある。BIOS(Y)は、BIOSセットアップメニュー(X)で割り込み共有モードが指示されていた場合、割り込みモード・レジスタ(R2)を割り込み共有モードへと設定する。例えば、BIOS(Y)が割り込みベクタ数レジスタ(R1)を8へ書き換え、割り込みモード・レジスタ(R2)を割り込み共有モードへ設定した場合、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本が対応している16個の割り込みベクタ・レジスタ(V00〜V15)は、先頭の8個の割り込みベクタ・レジスタ(V00〜V07)へと集約される。
また、図2を参照すると、BIOS(Y)は、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本がどこの割り込みベクタ・レジスタに対応するのかを示す割り込みベクタ・レジスタ一覧表(Z)をOSへ提供する。
第1の実施例の動作について説明する。図3、図4は第1の実施例の動作を示すフローチャートである。
まず、図3を参照すると、構成を示す図1において、コンピュータ・システム(1)を操作するオペレータ(ユーザ、又は保守員)は、割り込みベクタ数は256個までの制限、すなわち、周辺装置は256個までしか接続できない制限を持ったOSをこのコンピュータ・システム(1)上で動作させる場合、予めBIOSセットアップメニュー(X)を使って、本発明が提案する割り込み共有モードへ切り替えておく(図3のステップA1)。次に、BIOS(Y)は割り込み共有モードであることを知ると、使用する割り込みベクタ数を256個以内に抑えるため、割り込みコントローラ(A〜D)に対する二つの設定を行う。第一の設定は、割り込みコントローラ(A〜D)が持っている割り込みベクタ・レジスタ数を64個から8個へ減らすことである。具体的には、BIOS(Y)は割り込みベクタ数レジスタ(R1)の値を64から8へ書き換える(図3のステップA2)。第二の設定は、周辺装置からの割り込みを、8個の割り込みベクタ・レジスタへ集約させることである。具体的には、BIOS(Y)は、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本が対応している16個の割り込みベクタ・レジスタ(V00〜V15)を、8個の割り込みベクタ・レジスタ(V00〜V07)へ対応するよう割り込みコントローラの割り込みモード・レジスタ(R2)を割り込み共有モードに設定する(図3のステップA3)。
コンピュータ・システム(2)の場合、割り込みベクタ数の制限、すなわち、周辺装置の数の制限を持たないOSを動作させるため、オペレータは、図3のステップA1において、割り込みコントローラ(A〜D)が標準で装備している64個の割り込みベクタ・レジスタを使用する通常モードを選択する。
コンピュータ・システム(3)の場合、割り込みベクタ数の制限、すなわち、周辺装置の数の制限を持ったOSを動作させるが、接続する周辺装置ボックス(E)は一つだけであり、制限の256個を越えていないため、同様に、オペレータは、図3のステップA1において、割り込みコントローラ(A〜D)が標準で装備している64個の割り込みベクタ・レジスタを使用する通常モードを選択する。
図2の割り込みベクタ・レジスタ一覧表(Z)は、割り込みピン(P00〜P15)に入力された周辺装置からの割り込み16本がどこの割り込みベクタ・レジスタに対応しているのかを説明している。BIOS(Y)は、OSを立ち上げる前に、この割り込みベクタ・レジスタ一覧表(Z)を作成してOSへ提供する。図2では、割り込みコントローラ(A〜D)が標準で装備している64個の割り込みベクタ・レジスタを使用する通常モードと、本発明が提案する割り込み共有モードの場合、それぞれにおける周辺装置からの割り込み16本がどこの割り込みベクタ・レジスタに対応するのかを説明している。一つの割り込みコントローラ(A〜D)には4つの周辺装置からの割り込みが入力されており、一つの周辺装置当たり4つの割り込み(INTA#〜INTD#)を持っているため、一つの割り込みコントローラには16本の割り込みが入力されている。この周辺装置からの割り込み16本は割り込みピン(P00〜P15)に入力されている。通常モードの場合、16本の割り込みは16個の割り込みベクタ・レジスタ(V00〜V15)に一対一で対応している。本発明が提案する割り込み共有モードが設定された場合は、16本の割り込みは8個の割り込みベクタ・レジスタ(V00〜V07)に対応する。この場合、2本の割り込みで1つの割り込みベクタ・レジスタを共有する。具体的には、図2の割り込み共有モードの場合の一覧表(Z)を参照すると、スロット1に搭載された周辺装置からの割り込みINTA#とスロット2に搭載された周辺装置からの割り込みINTD#の2本の割り込みが一つの割り込みベクタ・レジスタ(V00)に対応、すなわち共有していることを表している。
BIOSセットアップメニュー(X)で割り込み共有モードが指定されたコンピュータ・システム(1)の場合、BIOS(Y)は、図2が示す割り込み共有モードの場合における割り込みベクタ・レジスタ一覧表を作成してOSへ渡す。
BIOSセットアップメニュー(X)で通常モードが指定されたコンピュータ・システム(2)の場合、BIOS(Y)は、図2が示す通常モードの場合における割り込みベクタ・レジスタ一覧表を作成してOSへ渡す。
同様に、BIOSセットアップメニュー(X)で通常モードが指定されたコンピュータ・システム(3)の場合、BIOS(Y)は、図2が示す通常モードの場合における割り込みベクタ・レジスタ一覧表を作成してOSへ渡す。
次に、図4を参照しながら、BIOSセットアップメニュー(X)で割り込み共有モードが指定されたコンピュータ・システム(1)上におけるOSの動作を説明する。OSは立ち上げ時に各周辺装置に対して割り込みベクタを割り当てる際、自身が管理できる割り込みベクタ数の数分だけ繰り返し処理(ループ処理)を行いながら各周辺装置に対して割り込みベクタを割り当てていく(図4のステップA1)。例えば、OSが周辺装置に対して割り当てる割り込みベクタ数を1バイトで管理していた場合、周辺装置に対して割り当てることができる割り込みベクタ数は256個までとなり、この場合、図4のステップA1の繰り返し回数(ループ回数)の限界値は256である。割り込みベクタ数、すなわち繰り返し回数(ループ回数)カウンタの初期値は0である。まず始めに、OSは、割り込みコントローラ(A〜D)を見つけると(図4のステップA2)、割り込みベクタ数レジスタ(R1)の値を読んで消費する割り込みベクタが8個であることを知る(図4のステップA3)。そして、その8個という値を割り込みベクタ数カウンタ(繰り返し回数カウンタ、ループ回数カウンタ)に加算する(図4のステップA4)。そして、カウンタの値が限界値256を超えたか否かを調べる(図4のステップA5)。1つ目の割り込みコントローラ(A)を見つけた場合、カウンタの値は初期値0であり、8を加算しても限界値256を超えていないため次のステップ(図4のステップA6)に進む。もし、33個目の割り込みコントローラ(A)を見つけた場合、8を加算するとカウンタの値は264となり限界値256を超えるため繰り返し処理(ループ処理)を抜けて処理を終える(図4のステップA7)。また、図4のステップA2で割り込みコントローラ(A〜D)が見つからなかった場合、同様に、繰り返し処理(ループ処理)を抜けて処理を終える(図4のステップA8)。次に、OSは図4のステップA5で、割り込みベクタ数カウンタが限界値256を超えていないことを確認すると、各周辺装置に対して割り込みベクタを割り当てる(図4のステップA6)。割り当てる割り込みベクタの値はOS依存であり任意の値である。そして、OSは、図2が示す割り込み共有モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照して割り込みピン(P00〜P15)に入力された周辺装置からの割り込みがどこの割り込みベクタ・レジスタに対応するのかを特定する。そして、OSは各周辺装置に対して割り当てた割り込みベクタと同じ値を、対応する割り込みベクタ・レジスタ(V00〜V07)に設定する(図4のステップA9)。
例えば、コンピュータ・システム(1)は割り込み共有モードであるため、図2が示す割り込み共有モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照すると、OSは、スロット1に搭載された周辺装置からの割り込みINTA#に対して割り込みベクタ101の値を割り当て、その割り込みが対応する割り込みベクタ・レジスタ(V00)にも同様に割り込みベクタ101の値を設定する。また、スロット2に搭載された周辺装置からの割り込みINTD#に対して割り込みベクタを割り当てる場合、その割り込みが対応する割り込みベクタ・レジスタ(V00)は、スロット1に搭載された周辺装置からの割り込みINTA#と共有しているため、OSはスロット1に搭載された周辺装置からの割り込みINTA#に対して割り当てた割り込みベクタ101と同じ値を、スロット2に搭載された周辺装置からの割り込みINTD#に対しても割り当てる。
このようにして、OSは、カウンタの値が限界値256を超えるか、あるいは、割り込みコントローラ(A〜D)が見つからなくなるまで、図4のステップA1における繰り返し処理(ループ処理)を行いながら各周辺装置に対して割り込みベクタを割り当てていく。コンピュータ・システム(1)は、8個の周辺装置ボックス(E)を接続し、一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されており、周辺装置からの割り込みは8個の割り込みベクタ・レジスタ(V00〜V07)へ対応するよう集約されているため、一つの周辺装置ボックス(E)当たりでは32個の割り込みベクタが割り当てられ、最大8個の周辺装置ボックス(E)当たりでは256個の割り込みベクタを割り当てる必要があるが、OSが管理できる割り込みベクタ数の限界値は256であるため、本発明が提案する割り込み共有モードが設定された場合は、限界値256を超えることなく、8個の周辺装置ボックス(E)上の全ての周辺装置に対して割り込みベクタを割り当てることができる。
次に、図4を用いて、BIOSセットアップメニュー(X)で通常モードが指定された場合のコンピュータ・システム(1)上におけるOSの動作を説明する。この場合も、OSが周辺装置に対して割り当てる割り込みベクタ数は1バイトで管理しているため、周辺装置に対して割り当てることができる割り込みベクタ数は256個までとなり、同様に、図5のステップA1の繰り返し回数(ループ回数)の限界値は256である。割り込みベクタ数、すなわち繰り返し回数(ループ回数)カウンタの初期値は0である。まず始めに、OSは、割り込みコントローラ(A〜D)を見つけると(図4のステップA2)、割り込みベクタ数レジスタ(R1)の値を読んで消費する割り込みベクタが64個であることを知る(図4のステップA3)。そして、その64個という値を割り込みベクタ数カウンタ(繰り返し回数カウンタ、ループ回数カウンタ)に加算する(図4のステップA4)。そして、カウンタの値が限界値256を超えたか否かを調べる(図4のステップA5)。1つ目の割り込みコントローラ(A)を見つけた場合、カウンタの値は初期値0であり、64を加算しても限界値256を超えていないため次のステップ(図4のステップA6)に進む。もし、5個目の割り込みコントローラ(A)を見つけた場合、64を加算するとカウンタの値は320となり限界値256を超えるため繰り返し処理(ループ処理)を抜けて処理を終える(図4のステップA7)。また、図4のステップA2で割り込みコントローラ(A〜D)が見つからなかった場合、同様に、繰り返し処理(ループ処理)を抜けて処理を終える(図4のステップA8)。次に、OSは図4のステップA5で、割り込みベクタ数カウンタが限界値256を超えていないことを確認すると、各周辺装置に対して割り込みベクタを割り当てる(図4のステップA6)。割り当てる割り込みベクタの値はOS依存であり任意の値である。そして、OSは、図2が示す通常モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照して割り込みピン(P00〜P15)に入力された周辺装置からの割り込みがどこの割り込みベクタ・レジスタに対応するのかを特定する。そして、OSは各周辺装置に対して割り当てた割り込みベクタと同じ値を、対応する割り込みベクタ・レジスタ(V00〜V15)に設定する(図4のステップA9)。
例えば、図2の通常モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照すると、OSは、スロット1に搭載された周辺装置からの割り込みINTA#に対して割り込みベクタ101の値を割り当て、その割り込みが対応する割り込みベクタ・レジスタ(V00)にも同様に割り込みベクタ101の値を設定する。また、スロット2に搭載された周辺装置からの割り込みINTD#に対して割り込みベクタを割り当てる場合、この場合は割り込み共有モードと異なり、その割り込みは割り込みベクタ・レジスタ(V07)に対応しており、スロット1に搭載された周辺装置からの割り込みINTA#とは割り込みベクタ・レジスタを共有していないため、OSはスロット1に搭載された周辺装置からの割り込みINTA#に対して割り当てた割り込みベクタ101と異なる値である割り込みベクタ108を、スロット2に搭載された周辺装置からの割り込みINTD#に対して割り当て、その割り込みが対応する割り込みベクタ・レジスタ(V07)にも同様に割り込みベクタ108の値を設定する。
このようにして、OSは、カウンタの値が限界値256を超えるか、あるいは、割り込みコントローラ(A〜D)が見つからなくなるまで、図4のステップA1における繰り返し処理(ループ処理)を行いながら各周辺装置に対して割り込みベクタを割り当てていく。コンピュータ・システム(1)は、8個の周辺装置ボックス(E)を接続でき、一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されており、周辺装置からの割り込みは16個の割り込みベクタ・レジスタ(V00〜V16)へ対応しており、一つの割り込みコントローラは64個の割り込みベクタを持っているため、一つの周辺装置ボックス(E)当たりでは256個の割り込みベクタが消費され、最大8個の周辺装置ボックス(E)では2048個の割り込みベクタが必要だが、OSが管理できる割り込みベクタ数の限界値は256であるため、通常モードの場合は、最初の一つ目の周辺装置ボックス(E)に対しては割り込みベクタを割り当てることができるが、残りの7個の周辺装置ボックス(E)に対しては割り込みベクタを割り当てることができない。
次に、図5を用いて、本発明が提案する割り込み共有モードと通常モードの使い分けについて説明する。本発明では、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムにおいて、それぞれの分割された独立したコンピュータ・システムは、独自にオペレータがBIOSセットアップメニュー(X)機能を使って本発明が提案する割り込み共有モードと通常モードのどちらかを選択することができるという特徴を持っている。この切り替え機能を使うことで、動作させるOSの割り込みベクタ数の制限と接続する周辺装置の数に応じて最適な割り込みモードを選択することができる。
次に、図5を用いて、本発明が提案する割り込み共有モードと通常モードの使い分けについて説明する。本発明では、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムにおいて、それぞれの分割された独立したコンピュータ・システムは、独自にオペレータがBIOSセットアップメニュー(X)機能を使って本発明が提案する割り込み共有モードと通常モードのどちらかを選択することができるという特徴を持っている。この切り替え機能を使うことで、動作させるOSの割り込みベクタ数の制限と接続する周辺装置の数に応じて最適な割り込みモードを選択することができる。
図5を参照すると、独立したコンピュータ・システムである、コンピュータ・システム(1)、コンピュータ・システム(2)、コンピュータ・システム(3)それぞれにおける割り込みモードの選択と、その選択が適切であるか否か、また適切ではない場合の理由について説明している。一つの周辺装置ボックス(E)には4つの割り込みコントローラ(A〜D)が搭載されている。
まず、コンピュータ・システム(1)について説明する。OSの割り込みベクタ数の制限は256個である。8個の周辺装置ボックスが接続されている。本発明が提案する割り込み共有モードを選択した場合(図5の1−1)、一つの割り込みコントローラが消費する割り込みベクタの数は8個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は32個となり、8個の周辺装置ボックスで消費する割り込みベクタの数は256個となり、OSの制限256個を越えないため、この選択は適切である。次に、通常モードを選択した場合(図5の1−2)、一つの割り込みコントローラが消費する割り込みベクタの数は64個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は256個となり、8個の周辺装置ボックスで消費する割り込みベクタの数は2048個となり、OSの制限256個を越えるため、この選択は不適切である。その理由は、OSは257番目以降に対応する周辺装置に対しては割り込みベクタを割り当てないため、257番目以降に対応する周辺装置が使えないためである。
次に、コンピュータ・システム(2)について説明する。OSの割り込みベクタ数に制限はない。8個の周辺装置ボックスが接続されている。本発明が提案する割り込み共有モードを選択した場合(図5の2−1)、一つの割り込みコントローラが消費する割り込みベクタの数は8個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は32個となり、8個の周辺装置ボックスで消費する割り込みベクタの数は256個となる。元々、OSの割り込みベクタ数に制限はないため、このモードを選択する必要はないが、選択したとしても動作は可能である。しかしながら、図2の割り込み共有モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照すると、スロット1に搭載された周辺装置からの割り込みINTA#と、スロット2に搭載された周辺装置からの割り込みINTD#は割り込みベクタ・レジスタ(V00)を共有しているため、この割り込みベクタ・レジスタ(V00)から割り込みが発生した場合、OSはどちらの周辺装置からの割り込みかを判別しなければならない。この判別はOSが周辺装置を制御する上でのオーバーヘッドとなり、コンピュータ・システムの性能を低下させる要因となるため、OSに割り込みベクタ数の制限が無い場合は、本発明が提案する割り込み共有モードを選択するべきではない。次に、通常モードを選択した場合(図5の2−2)、一つの割り込みコントローラが消費する割り込みベクタの数は64個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は256個となり、8個の周辺装置ボックスで消費する割り込みベクタの数は2048となるが、OSには割り込みベクタ数の制限が無いため動作可能であり、また、割り込みベクタも共有していないため性能低下も生じないため適切な選択である。
次に、コンピュータ・システム(3)について説明する。OSの割り込みベクタ数の制限は256個である。1個の周辺装置ボックスが接続されている。本発明が提案する割り込み共有モードを選択した場合(図5の3−1)、一つの割り込みコントローラが消費する割り込みベクタの数は8個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は32個となり、周辺装置ボックスは一つであるため消費する割り込みベクタの数は32個となる。OSの制限256個を越えないため、動作は可能である。しかしながら、図2の割り込み共有モードの場合の割り込みベクタ・レジスタ一覧表(Z)を参照すると、スロット1に搭載された周辺装置からの割り込みINTA#と、スロット2に搭載された周辺装置からの割り込みINTD#は割り込みベクタ・レジスタ(V00)を共有しているため、この割り込みベクタ・レジスタ(V00)から割り込みが発生した場合、OSはどちらの周辺装置からの割り込みかを判別しなければならない。この判別はOSが周辺装置を制御する上でのオーバーヘッドとなり、コンピュータ・システムの性能を低下させる要因となるため、OSの割り込みベクタ数の制限を越えない場合は、本発明が提案する割り込み共有モードを選択するべきではない。次に、通常モードを選択した場合(図5の3−2)、一つの割り込みコントローラが消費する割り込みベクタの数は64個であり、一つの周辺装置ボックスが消費する割り込みベクタの数は256個となり、周辺装置ボックスは一つであるため消費する割り込みベクタの数は256個となる。OSの制限256個を越えないため動作可能であり、また、割り込みベクタも共有していないため性能低下も生じないため適切な選択である。
次に、本発明の第2の実施例について説明する。図6は第2の実施例の動作を示すフローチャートである。
図6では、OSはOS自身が管理できる割り込みベクタ数の最大値をBIOS(Y)へ教える機能、割り込みベクタ数限界値通知機能(W)を有している。これは発明の実施例の一つを示した構成図1においてコンピュータ・システム(1)を操作するオペレータ(ユーザ、又は保守員)は、割り込みベクタ数は256個までの制限、すなわち、周辺装置は256個までしか接続できない制限を持ったOSをこのコンピュータ・システム(1)上で動作させる場合、予めBIOSセットアップメニュー(X)を使って、本発明が提案する割り込み共有モードへ切り替える(第1の実施例)のとは異なる。OSが割り込みベクタ数限界値通知機能(W)を有している場合、オペレータはBIOSセットアップメニュー(X)を使って本発明が提案する割り込み共有モードへ切り替える必要はない。OS自身が割り込みベクタ数限界値通知機能(W)を使って、OS自身が管理できる割り込みベクタ数の最大値、すなわち限界値をBIOS(Y)へ通知する(図6のステップA1)。例えば、図6を参照すると、OSは割り込みベクタ数の限界値256を通知している。次に、割り込みベクタ数の限界値を通知されたBIOS(Y)は、コンピュータ・システムが装備している割り込みコントローラの数を数えて、割り込みベクタ数の限界値の範囲内で一つの割り込みコントローラが使用できる割り込みベクタの数を計算する(図6のステップA2)。例えば、図6を参照すると、64個の割り込みコントローラが装備されているため、一つの割り込みコントローラが使用できる割り込みベクタは4個と計算される。次に、BIOS(Y)は、計算で得られた一つの割り込みコントローラが使用できる割り込みベクタの数の値を割り込みコントローラが持っている割り込みベクタ数レジスタへ書き込む(図6のステップA3)。例えば、図6を参照すると、一つの割り込みコントローラが使用できる割り込みベクタ数は4個として値を書き込んでいる。次に、BIOS(Y)は、周辺装置からの割り込みが割り込みコントローラが使用できる割り込みベクタ・レジスタに対応するよう、割り込みコントローラの割り込みモード・レジスタ(R2)を割り込み集約モード、すなわち割り込み共有モードに設定する(図6のステップA4)。そして、BIOS(Y)は、周辺装置からの割り込みがどこの割り込みベクタ・レジスタに対応するのかを示す割り込みベクタ・レジスタ一覧表(Z)を作成してOSへ提供する(図6のステップA5)。そして、OSは、図4が示す手順で各周辺装置に対して割り込みベクタを割り当てていく。
第2の実施例の効果について説明する。第2の実施例の効果は、本発明の第1の実施例では、オペレータがOSの制限有無と周辺装置の数を見て、割り込みベクタを共有させるか共有させないかをBIOSセットアップメニュー(X)を使って選択していたのに対して、OSとBIOSがOSの制限有無と周辺装置の数を見て、割り込みベクタを共有させるか共有させないかを自動的に判断して最適な割り込みベクタの設定を行うことにある。その理由は、OSは割り込みベクタ数の限界値をBIOSへ通知するための割り込みベクタ数限界値通知機能を有しており、この機能を使ってOS自身が割り込みベクタ数の限界値をBIOSへ通知し、それを元にBIOSが最適な割り込みベクタの設定を行うからである。
本発明によれば、認識できる割り込みベクタ数に制限、すなわち、接続できる周辺装置の数に制限を持ったOSを動作させるコンピュータ・システムに適用できる。特に、OSの制限有無、接続する周辺装置の数に依存して、割り込みを共有するかしないかを選択できることから、一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムに適している。例えば、一つのコンピュータ・システムを二つのコンピュータ・システムに分割して、一つのコンピュータ・システムには、接続できる周辺装置の数に制限を持ったOSを動作させ、もう一つのコンピュータ・システムには、制限の無いOSを動作させるといった場合に有効である。この場合、前者のコンピュータ・システムでは、“割り込み共有”を選択することで、接続できる周辺装置の数の制限がなくなるという効果が得られ、後者のコンピュータ・システムでは、“割り込み共有無し”を選択することで、割り込み判別処理に伴う性能低下が起きることはない、という利点がある。
1 コンピュータ・システム
2 コンピュータ・システム
3 コンピュータ・システム
A 割り込みコントローラ
B 割り込みコントローラ
C 割り込みコントローラ
D 割り込みコントローラ
E 周辺装置ボックス
R1 割り込みベクタ数レジスタ
R2 割り込みベクタ数レジスタ
X BIOSセットアップメニュー
Y BIOS
2 コンピュータ・システム
3 コンピュータ・システム
A 割り込みコントローラ
B 割り込みコントローラ
C 割り込みコントローラ
D 割り込みコントローラ
E 周辺装置ボックス
R1 割り込みベクタ数レジスタ
R2 割り込みベクタ数レジスタ
X BIOSセットアップメニュー
Y BIOS
Claims (2)
- 一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムの割り込み制御方式であって、動作させるOSとコンピュータ・システム構成とに基づいて最適な割り込み制御を選択する手段を有することを特徴とするマルチ・パーティション・システムの割り込み制御方式。
- 一つのコンピュータ・システムを複数のコンピュータ・システムに分割して、それぞれのコンピュータ・システム上で異なるOSを動作させるマルチ・パーティション・システムの割り込み制御方式であって、OSは割り込みベクタ数の限界値をBIOSへ通知する手段を備え、BIOSは通知された限界値に基づいて最適な割り込みベクタの設定を行う手段を備えたことを特徴とするマルチ・パーティション・システムの割り込み制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005083804A JP2006268282A (ja) | 2005-03-23 | 2005-03-23 | マルチ・パーティション・システムの割り込み制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005083804A JP2006268282A (ja) | 2005-03-23 | 2005-03-23 | マルチ・パーティション・システムの割り込み制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006268282A true JP2006268282A (ja) | 2006-10-05 |
Family
ID=37204219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005083804A Withdrawn JP2006268282A (ja) | 2005-03-23 | 2005-03-23 | マルチ・パーティション・システムの割り込み制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006268282A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009169928A (ja) * | 2007-05-01 | 2009-07-30 | Ricoh Co Ltd | 割り込み制御装置、バスブリッジ、バススイッチ、画像処理装置、および割り込み制御方法 |
US8051278B2 (en) | 2007-04-04 | 2011-11-01 | Renesas Electronics Corporation | Microcomputer and method of setting operation of microcomputer |
WO2016056060A1 (ja) * | 2014-10-07 | 2016-04-14 | 株式会社日立製作所 | 計算機及びベクタの設定方法 |
-
2005
- 2005-03-23 JP JP2005083804A patent/JP2006268282A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051278B2 (en) | 2007-04-04 | 2011-11-01 | Renesas Electronics Corporation | Microcomputer and method of setting operation of microcomputer |
JP2009169928A (ja) * | 2007-05-01 | 2009-07-30 | Ricoh Co Ltd | 割り込み制御装置、バスブリッジ、バススイッチ、画像処理装置、および割り込み制御方法 |
WO2016056060A1 (ja) * | 2014-10-07 | 2016-04-14 | 株式会社日立製作所 | 計算機及びベクタの設定方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924341B (zh) | 基于平台遥测数据的实时的本地和全局数据中心网络优化 | |
US8782657B2 (en) | Dynamic creation and destruction of IO resources based on actual load and resource availability | |
EP3571585B1 (en) | Method and apparatus for implementing heterogeneous frequency operation and scheduling task of heterogeneous frequency cpu | |
CN101872330B (zh) | 多pcie设备***中断处理方法 | |
EP1341083A2 (en) | Parallel-process execution method and multiprocessor-type computer | |
US9389921B2 (en) | System and method for flexible device driver resource allocation | |
JP2005243033A (ja) | インタラプトコントローラ | |
EP1582989B1 (en) | Data transfer processing device and data transfer processing method | |
EP2704009B1 (en) | Information processing apparatus, information processing method, and program | |
JP2006268282A (ja) | マルチ・パーティション・システムの割り込み制御方式 | |
CN111158905A (zh) | 调整资源的方法和装置 | |
US11288223B2 (en) | Bridge chip with function of expanding external devices and associated expansion method | |
US20110047303A1 (en) | Data transfer control device and data transfer control method | |
CN108090004B (zh) | 硬件资源共用***及连线桥接平台的操作方法 | |
JP4409568B2 (ja) | 帯域制御プログラム及びマルチプロセッサシステム | |
US10042788B2 (en) | Storage system and method for controlling command transmission | |
US8359564B2 (en) | Circuit design information generating equipment, function execution system, and memory medium storing program | |
WO2014045417A1 (ja) | 情報処理装置、および負荷試験方法 | |
CN108780348A (zh) | 图像传输装置、图像传输***、和控制图像传输装置的方法 | |
JP6569508B2 (ja) | 処理装置及び処理装置の制御方法 | |
KR20060010383A (ko) | 메인 제어부와 부 제어부로 구성된 제어 시스템 및 버스연결 방법 | |
US20090276554A1 (en) | Computer system and data-transmission control method | |
US20190171377A1 (en) | Semiconductor device and reconfiguration control method of the same | |
JP2011151609A (ja) | スペクトラム拡散方式のクロック伝達システム | |
JP6024752B2 (ja) | 情報処理装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |