JP6948039B2 - Computer system - Google Patents
Computer system Download PDFInfo
- Publication number
- JP6948039B2 JP6948039B2 JP2017249341A JP2017249341A JP6948039B2 JP 6948039 B2 JP6948039 B2 JP 6948039B2 JP 2017249341 A JP2017249341 A JP 2017249341A JP 2017249341 A JP2017249341 A JP 2017249341A JP 6948039 B2 JP6948039 B2 JP 6948039B2
- Authority
- JP
- Japan
- Prior art keywords
- space
- virtual
- information
- predetermined
- resource management
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、コンピュータシステムに関し、特に、多数のIOデバイス(Input/Output Devices)を接続可能とした管理手法に関する。 The present invention relates to a computer system, and more particularly to a management method that enables a large number of IO devices (Input / Output Devices) to be connected.
コンピュータシステムの一アーキテクチャであるIA(Intel Architecture)では、複数のIOデバイスを動作可能に接続する際に、各IOデバイスにIO空間を割り当てている。 In IA (Intel Architecture), which is an architecture of a computer system, an IO space is allocated to each IO device when a plurality of IO devices are operably connected.
IAアーキテクチャのIO空間には64キロバイトの容量制限がある。このため、IO空間を消費するデバイスを多数実装しようとした際に、IO空間が枯渇した場合、一部のIOデバイスにIO空間を割り当てることができなくなる。結果、IO空間を割り当てられなかったIOデバイスを使用することができない事象が発生する。 The IO space of the IA architecture has a capacity limit of 64 kilobytes. Therefore, when the IO space is exhausted when trying to implement a large number of devices that consume the IO space, it becomes impossible to allocate the IO space to some IO devices. As a result, an event occurs in which the IO device for which the IO space has not been allocated cannot be used.
この問題に関して、IO空間を拡張する技術を用いて、動作可能に接続するIOデバイス数を増やす試みが行われている。例えば特許文献1には、専用回路を用いてIO空間をメモリマップドIO空間に変換する技術が記載されている。 To address this issue, attempts have been made to increase the number of operably connected IO devices using technology that expands the IO space. For example, Patent Document 1 describes a technique for converting an IO space into a memory-mapped IO space using a dedicated circuit.
IAの標準アーキテクチャでは、BIOS(Basic Input/Output System)でIO空間を個別のIOデバイスに割り当てる際、最大64キロバイトのIO空間を用いて各IOデバイスを動作可能に接続している。また、IO空間が64キロバイトを超える台数のIOデバイスが接続されていた場合、幾つかのIOデバイスの接続はIO空間の不足によって動作不能な状態となる。 In the IA standard architecture, when allocating IO space to individual IO devices in the BIOS (Basic Input / Output System), each IO device is operably connected using an IO space of up to 64 kilobytes. Further, when the number of IO devices whose IO space exceeds 64 kilobytes is connected, the connection of some IO devices becomes inoperable due to the lack of IO space.
IOデバイスの接続数を多数にする一つの対応策である、特許文献1に示されたIO空間の拡張手法では専用回路が必要になる。 A dedicated circuit is required in the IO space expansion method shown in Patent Document 1, which is one countermeasure for increasing the number of connected IO devices.
本発明は、上記課題に鑑みて成されたものであり、専用回路を設けること無しに、IOデバイスの接続数を多数にするIO空間の拡張手法を有したコンピュータシステムを提供することを目的とする。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a computer system having an IO space expansion method for increasing the number of connected IO devices without providing a dedicated circuit. do.
本発明の一実施形態に係るコンピュータシステムは、物理的にIOインタフェースに接続されているIOデバイス群を個別に管理するIOリソース管理テーブルを保持すると共に、前記IOリソース管理テーブルで管理される各IOデバイスに割り振ったIO空間情報をシステムマネージメント割り込み(System Management Interrupts:SMI)に応じて切り替える割り込みハンドラを保持するBIOSと、OS(Operating System)‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎に前記システムマネージメント割り込みを生成するチップセットを含み、前記システムマネージメント割り込みに応じて前記割り込みハンドラを読み出して、CPU(Central Processing Unit)上に確保される所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替えることで、前記IOインタフェースを介してOS‐IOデバイス間のアクセスを可能に構成されたコンピュータハードウェアと、を含み、前記IOリソース管理テーブルは、IOデバイス毎に、前記所定IO空間の使用ポートを定めた仮想IOポート情報と、前記IO空間情報を記録したデバイスIO情報と、を含み成り、IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録される、ことを特徴とする。 The computer system according to the embodiment of the present invention holds an IO resource management table that individually manages IO devices that are physically connected to the IO interface, and each IO managed by the IO resource management table. Access occurs between the BIOS that holds the interrupt handler that switches the IO space information allocated to the device according to the system management interrupts (SMI) and the OS (Operating System) -IO device, and the virtual IO space is accessed. Each IO device includes a chipset that generates the system management interrupt each time, reads the interrupt handler in response to the system management interrupt, and passes through a predetermined IO space secured on the CPU (Central Processing Unit). by switching the IO space information allocated to refer to the IO resource management table, the computer hardware that is configured to enable access between OS-IO devices via the IO interfaces, only contains the The IO resource management table includes virtual IO port information that defines the port to be used in the predetermined IO space for each IO device, and device IO information that records the IO space information, and the virtual IO for each IO device. The port information records a virtual index port and a virtual data port that define the ports used in the predetermined IO space in the CPU, and the IO space information for each IO device includes a virtual IO base address that functions as an IO base address. , The virtual IO size that functions as the IO size is recorded .
本発明の一実施形態に係るコンピュータシステムによるIOデバイスアクセス方法は、BIOSは、物理的にIOインタフェースに接続されているIOデバイス群を個別に管理するIOリソース管理テーブルを保持すると共に、前記IOリソース管理テーブルで管理される各IOデバイスに割り振ったIO空間情報をシステムマネージメント割り込みに応じて切り替える割り込みハンドラを保持し、前記IOリソース管理テーブルには、IOデバイス毎に、所定IO空間の使用ポートを定めた仮想IOポート情報と、IO空間情報を記録したデバイスIO情報とが記録され、IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録され、コンピュータハードウェアは、チップセットが、OS‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎にシステムマネージメント割り込みを生成させ、前記システムマネージメント割り込みに応じて、CPUが前記BIOSに格納された割り込みハンドラを読み込んで、CPU内に確保された所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替え、前記IOインタフェースを介して、切替えられたIO空間情報に基づいて、OS‐IOデバイス間のアクセスを成立させることを特徴とする。 In the IO device access method by the computer system according to the embodiment of the present invention, the BIOS holds an IO resource management table that individually manages the IO device group physically connected to the IO interface, and the IO resource. An interrupt handler that switches the IO space information allocated to each IO device managed by the management table according to the system management interrupt is held, and the use port of the predetermined IO space is defined for each IO device in the IO resource management table. The virtual IO port information and the device IO information in which the IO space information is recorded are recorded, and the virtual IO port information for each IO device includes a virtual index port and a virtual index port that defines a port to be used in a predetermined IO space in the CPU. The data port is recorded, and the virtual IO base address that functions as the IO base address and the virtual IO size that functions as the IO size are recorded in the IO space information for each IO device. , A system management interrupt is generated each time an access occurs between the OS and IO devices and the virtual IO space is accessed, and the CPU reads the interrupt handler stored in the BIOS in response to the system management interrupt, and the CPU reads the interrupt handler. The IO space information allocated to each IO device is switched with reference to the IO resource management table via the predetermined IO space secured in the room, and based on the switched IO space information via the IO interface. , It is characterized in that access between OS-IO devices is established.
本発明によれば、専用回路を設けること無しに、IOデバイスの接続数を多数にするIO空間の拡張手法を有したコンピュータシステムを提供することができる。 According to the present invention, it is possible to provide a computer system having an IO space expansion method for increasing the number of connected IO devices without providing a dedicated circuit.
本発明の実施形態を図面に基づいて説明する。 Embodiments of the present invention will be described with reference to the drawings.
[実施形態]
図1は、実施形態のコンピュータシステム1の構成を示すブロック図である。
[Embodiment]
FIG. 1 is a block diagram showing the configuration of the computer system 1 of the embodiment.
コンピュータシステム1は、IAを採用したコンピュータシステムである。このコンピュータシステム1は、物理的構成要素として、コンピュータハードウェア10とBIOS20(BIOSROM)を含む。コンピュータハードウェア10は、IAを採用しているCPU、メモリ、チップセット、周辺回路を含む。また、コンピュータハードウェア10には、物理的にIOデバイス群40を接続するためのIOインタフェース30が含まれている。コンピュータハードウェア10(CPU)上で動作するソフトウェアには、OSと各IOデバイスのドライバが含まれる。
The computer system 1 is a computer system that employs IA. The computer system 1 includes
また、コンピュータハードウェア10(チップセット)は、OS(デバイスドライバ)から仮想IO空間へのアクセスに応じてシステムマネージメント割り込み(System Management Interrupts:SMI)を生成するように作成されている。この機能を有することで、BIOSは、OS‐IOデバイス間のアクセス毎に、CPUが生成されたシステムマネージメント割り込みを受け付け、IOシステムマネージメント割り込みモードで後述するIO空間を切り替える処理を実行する。 Further, the computer hardware 10 (chip set) is created so as to generate system management interrupts (SMI) according to the access from the OS (device driver) to the virtual IO space. By having this function, the BIOS receives the system management interrupt generated by the CPU for each access between the OS and IO devices, and executes a process of switching the IO space described later in the IO system management interrupt mode.
IOデバイス群40は、一般的なIOデバイスであり、少なくとも1台以上接続され、必要に応じ多数が接続される。
The IO
BIOS20は、IOリソース管理テーブル21を保持して管理する。また、BIOS20は、割り込みハンドラ22を保持する。
The
IOリソース管理テーブル21には、物理的にIOインタフェース30に接続されているIOデバイス群40を個別に管理するための、各IOデバイスに割り振ったIO空間情報が記録される。
In the IO resource management table 21, IO spatial information allocated to each IO device for individually managing the
図2は、IOリソース管理テーブル21のデータ構造を可視化した説明図である。このIOリソース管理テーブル21は、IOデバイス毎(図中のデバイスA,デバイスB毎)に、所定IO空間の使用ポートを定めた仮想IOポート情報と、IO空間情報を記録したデバイスIO情報と、を含む。この仮想IOポート情報は、CPU内の所定IO空間の各IOデバイスの使用ポートを定める仮想IOインデックスポート情報と仮想IOデータポート情報を含む。また、IOデバイス毎のIO空間情報は、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとを含む。この仮想IOベースアドレスと仮想IOサイズは、IO空間切り替え処理で各IOデバイスに対して一時的に再割り当てする際のIOベースアドレスとIOデバイスのIOサイズを含む。また、IOリソース管理テーブル21は、図示したようにIOデバイス毎にコンフィグレーションアドレス情報が設けられていることが望ましい。このデバイスコンフィグレーションアドレス情報は、各IOデバイスに対してIOポートアドレス設定を行う際に使用するアドレスを含む。同様に、IOリソース管理テーブル21には、IOデバイス毎にテーブルナンバーを割り振ることとしてもよい。 FIG. 2 is an explanatory diagram that visualizes the data structure of the IO resource management table 21. The IO resource management table 21 contains virtual IO port information in which a port to be used in a predetermined IO space is defined for each IO device (device A and device B in the figure), device IO information in which IO space information is recorded, and device IO information. including. This virtual IO port information includes virtual IO index port information and virtual IO data port information that define the ports used by each IO device in the predetermined IO space in the CPU. Further, the IO space information for each IO device includes a virtual IO base address that functions as an IO base address and a virtual IO size that functions as an IO size. The virtual IO base address and virtual IO size include the IO base address and the IO size of the IO device when temporarily reassigned to each IO device in the IO space switching process. Further, it is desirable that the IO resource management table 21 is provided with configuration address information for each IO device as shown in the figure. This device configuration address information includes the address used when setting the IO port address for each IO device. Similarly, a table number may be assigned to the IO resource management table 21 for each IO device.
割り込みハンドラ22は、各IOデバイスとOSとの間のアクセスに応じて通知されるシステムマネージメント割り込みに応じてCPUに読み込まれ、IOリソース管理テーブル21で管理される各IOデバイスに割り振ったIO空間情報をアクセス先のIOデバイスに応じて切り替える。
The
割り込みハンドラ22は、所定IO空間内でIO空間情報を書き換える際に、IOデバイスの仮想IOポート情報を引数にIOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を所定IO空間に設置する。
When the
また、割り込みハンドラ22は、所定IO空間内でIO空間情報を書き換える際に、IOデバイスのテーブルナンバーを引数にIOリソース管理テーブル21から該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を所定IO空間に設置するようにしてもよい。
Further, when the
上記構成を有するBIOS20を、IAを採用したコンピュータシステム1に組み込むことで、専用回路を設けること無しに、IOデバイスの接続数を多数にするIO空間の拡張手法を本発明は提供する。
The present invention provides an IO space expansion method for increasing the number of connected IO devices without providing a dedicated circuit by incorporating the
コンピュータシステム1の動作は概して図3に示すフローチャートのように動作する。 The operation of the computer system 1 generally operates as shown in the flowchart shown in FIG.
コンピュータシステム1で提供されるIOデバイスアクセス方法は、上記説明したシステム構成を具備して、予め物理的に接続された多数のIOデバイスに関するIO空間情報をIOリソース管理テーブル21に記録する工程を含む(F101)。 The IO device access method provided by the computer system 1 includes the step of recording the IO spatial information about a large number of IO devices physically connected in advance in the IO resource management table 21 with the system configuration described above. (F101).
次に、OS‐IOデバイス間のアクセスが生じた際にコンピュータハードウェア10(チップセット)は、対象となるIOデバイスのIOポートにアクセスして値(デバイスIO情報)を取得する前に、対象となるIOデバイスのIOポートへのアクセスが生じたことを示したシステムマネージメント割り込みを都度生成する(F102)。 Next, when access between the OS and IO devices occurs, the computer hardware 10 (chipset) targets the target before accessing the IO port of the target IO device and acquiring the value (device IO information). A system management interrupt indicating that an access to the IO port of the IO device to be generated has occurred is generated each time (F102).
次に、コンピュータハードウェア10(CPU)は、チップセットによって生成されたシステムマネージメント割り込みを検出し、BIOS20から割り込みハンドラ22を読み込む(F103)。
Next, the computer hardware 10 (CPU) detects the system management interrupt generated by the chipset and reads the interrupt
次に、割り込みハンドラ22は、IO空間切り替え処理として、CPU上に確保される所定IO空間内でアクセスされた該当IOデバイスの使用IOポートに関して、IOリソース管理テーブル21に基づいてIO空間情報を書き換える(F104)。すなわち、IO空間切り替え処理として、CPUは、BIOS20からIOリソース管理テーブル21に記録されている該当IOデバイスの仮想IOアドレスおよび仮想IOサイズを参照し、該当IOデバイスに対してIO空間を一時的に割り当てる。
Next, the interrupt
その後、OSは、書き換えられたIO空間情報を用いてIOデバイスにアクセスする(F105)。 After that, the OS accesses the IO device using the rewritten IO spatial information (F105).
別の観点で上記動作を説明すれば、コンピュータハードウェア10は、OSを介してデバイスドライバからのIOポート(仮想IOポート)へのアクセスを受けると、システムマネージメント割り込みを生成しシステムマネージメント割り込みモードに移行する。コンピュータハードウェア10は、システムマネージメント割り込みモード下でIOリソース管理テーブル21を参照して、該当IOデバイスに割り当てる仮想IOアドレスおよび仮想IOサイズにIO空間を切り替える。この仮想IOエミュレーション処理を経て、OSは、書き換えられたIO空間情報を用いてIOデバイスにアクセスする。
Explaining the above operation from another viewpoint, when the
以後の動作は、IO空間が仮想化されていないIAのコンピュータシステムと同様であり、次のように動作する。デバイスドライバから仮想IOポートのIndexレジスタへのライトアクセスの場合、CPUは、Indexの値から割り当てたIO空間のアドレスを算出し、Dataレジスタに対してリードデータを格納する。また、デバイスドライバから仮想IOポートのDataレジスタへのライトアクセスの場合は、CPUは、Index値から割り当てたIO空間のアドレスを算出し、Dataレジスタの値を該当レジスタへライトする。 The subsequent operation is the same as that of the IA computer system in which the IO space is not virtualized, and operates as follows. In the case of write access from the device driver to the Index register of the virtual IO port, the CPU calculates the address of the IO space allocated from the Index value and stores the read data in the Data register. Further, in the case of write access from the device driver to the Data register of the virtual IO port, the CPU calculates the address of the IO space allocated from the Index value and writes the value of the Data register to the corresponding register.
上記フローF103及びフローF104によって、IO空間が対象IOデバイスのIO空間情報に切り替えられる。このシステムマネージメント割り込みを用いてコンピュータハードウェア10内でIO空間情報を切り替える工程を含むことで、IO空間を仮想的に対象IOデバイスが必要とするIO空間情報に切り替えることができる。結果、この切り替えが都度実施されることで、各ハードウェアが各IOデバイスに割り振られたIO空間を用いてOS‐IOデバイス間のアクセスが可能となる。
The IO space is switched to the IO space information of the target IO device by the flow F103 and the flow F104. By including the step of switching the IO space information in the
このようにコンピュータハードウェア10は、OSからの何れかのIOデバイスへのアクセスが生じた際に、BIOS20内に管理されたIOリソース管理テーブル21に基づいたIOアドレスおよびサイズの値をCPU上の所定IO空間に逐次配置することによって、IO空間の仮想化を実現する。
In this way, when the
なお、上記IOデバイスアクセス方法では、割り込みハンドラ22がIO空間情報を書き換える際にIOデバイスの仮想IOポート情報を引数に仮想IO空間を設定することを説明したが、IOデバイスのテーブルナンバーを引数に仮想IO空間を設定するようにしてもよい。
In the above IO device access method, the interrupt
例えば、テーブルナンバーを引数に用いて図4に示すように仮想IOポートを設置するようにしてもよい。このように構成することより、複数のIOデバイスの仮想IOポートに対応する際、IOデバイス毎にIndex、Dataポートを新たに割り当てる回数が少なくなり、結果、IO空間を更に消費させなくすることが可能となる。 For example, a virtual IO port may be installed using the table number as an argument as shown in FIG. With this configuration, when supporting virtual IO ports of multiple IO devices, the number of times to newly allocate Index and Data ports for each IO device is reduced, and as a result, IO space can be further reduced. It will be possible.
ここで、コンピュータシステム1の初期化処理とIO空間仮想化処理とを例示して発明を説明する。 Here, the invention will be described by exemplifying the initialization process and the IO space virtualization process of the computer system 1.
図5は、コンピュータシステム1の初期化処理例を示すフローチャートである。この処理によって、割り込みハンドラ22およびIOリソース管理テーブル21を初期化できる。
FIG. 5 is a flowchart showing an example of initialization processing of the computer system 1. By this process, the interrupt
BIOS20は、POST(Power On Self Test)時に、割り込みハンドラ22およびIOリソース管理テーブル21を初期化する。まず、BIOS20は、初期化で使用する仮想IO Index、Data変数を初期化し、IOリソース管理テーブル21内のTable No変数を“1”に設定し、デバイスコンフィグレーションアドレスを“0”に設定する(S501)。
The
次に、BIOS20は、デバイスコンフィグレーションアドレスを使用してIOデバイスがIO空間を必要としているか確認し(S502)、IO空間を必要としている場合(503)はIOデバイスからIOサイズを取得する(S504)。BIOS20は、IOリソース管理テーブル21のTable No変数が示すテーブル欄に、仮想IO Indexポートのアドレス、Dataポートのアドレス、仮想IOベースアドレス、仮想IOサイズ、デバイスコンフィグレーションアドレスを設定する(S505)。
Next, the
次に、BIOS20は、仮想IO Index、仮想IO Data、Table Noの各変数をインクリメントする(S506)。
Next, the
次に、BIOS20は、デバイスコンフィグレーションアドレスをインクリメントした後(S507)、他のIOデバイスがいないか確認を行う(S508)。他にIOデバイスが存在する場合、BIOS20は、再度IOデバイスがIO空間を必要としているか確認する処理(S502)を実施する。他のIOデバイスが他にない場合、BIOS20は、IOリソース管理テーブル21に登録された仮想IO Index、Data Portへのアクセスが来た際にチップセットからSMIを生成させる設定を行う(S509)。
Next, the
このようにコンピュータシステム1を動作させることで、割り込みハンドラ22およびIOリソース管理テーブル21を初期化できる。
By operating the computer system 1 in this way, the interrupt
図6は、コンピュータシステム1のIO空間仮想化処理例を示すフローチャートである。このIO空間仮想化処理は、CPUに読み込まれた割り込みハンドラ22によって実行される。仮想IOポートに対するOS(デバイスドライバ)からのアクセスによるチップセットからのSMIを受けると、BIOS20からCPUに割り込みハンドラ22が読み込まれる。その後、割り込みハンドラ22によって以下のようにIO空間を仮想的に動作させる(仮想IOエミュレーション処理を実行する)。
FIG. 6 is a flowchart showing an example of IO space virtualization processing of the computer system 1. This IO space virtualization process is executed by the interrupt
割り込みハンドラ22は、アクセスがあった仮想IOポートの情報をIOリソース管理テーブル21から検索する(S601)。
The interrupt
次に、割り込みハンドラ22は、IOリソース管理テーブル21のIOデバイスコンフィグレーションアドレス、仮想IOベースアドレス情報を基に、該当IOデバイスに対してIOベースアドレスの設定およびIO空間を有効にする設定を行う(S602)。
Next, the interrupt
次に、割り込みハンドラ22は、仮想IO Indexへのライトかどうか判断し(S603)、該当する場合は(S603のYes)、IOベースアドレスに対して仮想IO Index Portに格納された値を加算したアドレスに対してリードアクセスを行う(S604)。
Next, the interrupt
その後、割り込みハンドラ22は、リードデータを仮想IO Data Portに格納する(S605)。仮想IO Indexへのライトではない場合(S603のNo)、割り込みハンドラ22は、続いて仮想IO Dataへのライトかどうか判断し(S606)、該当する場合、IOベースアドレスに対して仮想IO Index Portに格納された値を加算したアドレスに対して、仮想IO Dataの値をライトする。仮想IO Indexへのライト、または仮想IO Dataへのライトでない場合(S606のNo)、割り込みハンドラ22は、該当IOデバイスへのアクセスは行わない。
After that, the interrupt
その後、割り込みハンドラ22は、該当IOデバイスに対してIOベースアドレスのクリアとIO空間の無効設定を行う(S608)。
After that, the interrupt
このようにコンピュータシステム1を動作させることで、割り込みハンドラ22によってIO空間仮想化処理が実現できる。
By operating the computer system 1 in this way, the IO space virtualization process can be realized by the interrupt
以上説明したように、本発明を適用したコンピュータシステムは、専用回路を設けること無しに、IOデバイスの接続数を多数にする仮想IO空間を提供できる。 As described above, the computer system to which the present invention is applied can provide a virtual IO space in which a large number of IO devices are connected without providing a dedicated circuit.
本発明は、IO空間の枯渇を回避するために、BIOS20で仮想IO空間を構築し、CPUからの仮想IO空間へのアクセスに対してBIOS20で実際に使用するIO空間を切り替え、その後IOデバイスへのアクセスを行う。結果、仮想IO空間を用いることで、IO空間の枯渇を気にすることなくIOデバイスを多数実装することが可能となる。 In the present invention, in order to avoid the exhaustion of the IO space, the virtual IO space is constructed by the BIOS20, the IO space actually used by the BIOS20 is switched for the access to the virtual IO space from the CPU, and then the IO device is used. To access. As a result, by using the virtual IO space, it is possible to implement a large number of IO devices without worrying about the exhaustion of the IO space.
また、IO空間が枯渇した際には、POST(PowerOnSelfTest)でエラー検出しシステムが起動しないケースがある。本発明は、本ケースを改善することも可能となる。 In addition, when the IO space is exhausted, there is a case where an error is detected by POST (PowerOnSelfTest) and the system does not start. The present invention can also improve the present case.
なお、実施形態を例示して本発明を説明した。しかし、本発明の具体的な構成は前述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。例えば、上述した実施形態のブロック構成の分離併合、手順の入れ替えなどの変更は本発明の趣旨および説明される機能を満たせば自由であり、上記説明が本発明を限定するものではない。 The present invention has been described by exemplifying embodiments. However, the specific configuration of the present invention is not limited to the above-described embodiment, and is included in the present invention even if there is a change within a range that does not deviate from the gist of the present invention. For example, changes such as separation and merging of block configurations and replacement of procedures of the above-described embodiments are free as long as the gist of the present invention and the functions described are satisfied, and the above description does not limit the present invention.
また、上記の実施形態の一部又は全部は、以下のようにも記載されうる。尚、以下の付記は本発明をなんら限定するものではない。
[付記1]
物理的にIOインタフェースに接続されているIOデバイス群を個別に管理するIOリソース管理テーブルを保持すると共に、前記IOリソース管理テーブルで管理される各IOデバイスに割り振ったIO空間情報をシステムマネージメント割り込みに応じて切り替える割り込みハンドラを保持するBIOSと、
OS‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎に前記システムマネージメント割り込みを生成するチップセットを含み、前記システムマネージメント割り込みに応じて前記割り込みハンドラを読み出して、CPU上に確保される所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替えることで、前記IOインタフェースを介してOS‐IOデバイス間のアクセスを可能に構成されたコンピュータハードウェアと、
を含むことを特徴とするコンピュータシステム。
In addition, some or all of the above embodiments may also be described as follows. The following notes do not limit the present invention in any way.
[Appendix 1]
The IO resource management table that individually manages the IO devices that are physically connected to the IO interface is held, and the IO spatial information allocated to each IO device managed by the IO resource management table is used as a system management interrupt. A BIOS that holds an interrupt handler that switches according to
It includes a chipset that generates the system management interrupt each time an access occurs between the OS and IO devices and the virtual IO space is accessed, and the interrupt handler is read in response to the system management interrupt and secured on the CPU. By switching the IO space information allocated to each IO device with reference to the IO resource management table via the predetermined IO space, access between the OS and IO devices is possible via the IO interface. Computer hardware and
A computer system characterized by including.
[付記2]
前記IOリソース管理テーブルは、IOデバイス毎に、前記所定IO空間の使用ポートを定めた仮想IOポート情報と、前記IO空間情報を記録したデバイスIO情報と、を含み成り、
IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、
IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録される、
ことを特徴とする付記1に記載のコンピュータシステム。
[Appendix 2]
The IO resource management table includes virtual IO port information that defines a port to be used in the predetermined IO space for each IO device, and device IO information that records the IO space information.
In the virtual IO port information for each IO device, a virtual index port and a virtual data port that define the ports used in the predetermined IO space in the CPU are recorded.
In the IO space information for each IO device, a virtual IO base address that functions as an IO base address and a virtual IO size that functions as an IO size are recorded.
The computer system according to Appendix 1, wherein the computer system is characterized by the above.
[付記3]
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスの仮想IOポート情報を引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置することを特徴とする付記1又は2に記載のコンピュータシステム。
[Appendix 3]
When the interrupt handler switches the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the virtual IO port information of the IO device as an argument, and causes the corresponding IO device. The computer system according to Appendix 1 or 2, wherein the value of the allocated IO space is installed in the predetermined IO space.
[付記4]
前記IOリソース管理テーブルには、IOデバイス毎にテーブルナンバーが割り振られ、
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスのテーブルナンバーを引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置する
ことを特徴とする付記1又は2に記載のコンピュータシステム。
[Appendix 4]
A table number is assigned to each IO device in the IO resource management table.
When switching the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the table number of the IO device as an argument, and is assigned to the corresponding IO device. The computer system according to Appendix 1 or 2, wherein the value of the IO space is installed in the predetermined IO space.
[付記5]
BIOSは、物理的にIOインタフェースに接続されているIOデバイス群を個別に管理するIOリソース管理テーブルを保持すると共に、前記IOリソース管理テーブルで管理される各IOデバイスに割り振ったIO空間情報をシステムマネージメント割り込みに応じて切り替える割り込みハンドラを保持し、
コンピュータハードウェアは、チップセットが、OS‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎に前記システムマネージメント割り込みを生成させ、
前記システムマネージメント割り込みに応じて、CPUが前記BIOSに格納された割り込みハンドラを読み込んで、CPU内に確保された所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替え、
前記IOインタフェースを介して、切替えられたIO空間情報に基づいて、OS‐IOデバイス間のアクセスを成立させる
ことを特徴とするIOデバイスアクセス方法。
[Appendix 5]
The BIOS holds an IO resource management table that individually manages IO devices that are physically connected to the IO interface, and also systems the IO spatial information allocated to each IO device managed by the IO resource management table. Holds an interrupt handler that switches according to the management interrupt,
The computer hardware causes the chipset to generate the system management interrupt each time an access occurs between the OS-IO device and the virtual IO space is accessed.
In response to the system management interrupt, the CPU reads the interrupt handler stored in the BIOS and manages the IO space information allocated to each IO device via the predetermined IO space secured in the CPU. Refer to the table and switch,
An IO device access method characterized in that access between an OS and an IO device is established based on the switched IO spatial information via the IO interface.
[付記6]
前記IOリソース管理テーブルは、IOデバイス毎に、前記所定IO空間の使用ポートを定めた仮想IOポート情報と、前記IO空間情報を記録したデバイスIO情報と、を含み成り、
IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、
IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録される、
ことを特徴とする付記5に記載のIOデバイスアクセス方法。
[Appendix 6]
The IO resource management table includes virtual IO port information that defines a port to be used in the predetermined IO space for each IO device, and device IO information that records the IO space information.
In the virtual IO port information for each IO device, a virtual index port and a virtual data port that define the ports used in the predetermined IO space in the CPU are recorded.
In the IO space information for each IO device, a virtual IO base address that functions as an IO base address and a virtual IO size that functions as an IO size are recorded.
The IO device access method according to Appendix 5, wherein the method is characterized by the above.
[付記7]
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスの仮想IOポート情報を引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置することを特徴とする付記5又は6に記載のIOデバイスアクセス方法。
[Appendix 7]
When the interrupt handler switches the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the virtual IO port information of the IO device as an argument, and causes the corresponding IO device. The IO device access method according to Appendix 5 or 6, wherein the value of the allocated IO space is installed in the predetermined IO space.
[付記8]
前記IOリソース管理テーブルには、IOデバイス毎にテーブルナンバーが割り振られ、
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスのテーブルナンバーを引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置する
ことを特徴とする付記5又は6に記載のIOデバイスアクセス方法。
[Appendix 8]
A table number is assigned to each IO device in the IO resource management table.
When switching the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the table number of the IO device as an argument, and is assigned to the corresponding IO device. The IO device access method according to Appendix 5 or 6, wherein the value of the IO space is installed in the predetermined IO space.
1 コンピュータシステム
10 コンピュータハードウェア
20 BIOS
21 IOリソース管理テーブル
22 割り込みハンドラ
30 IOインタフェース
40 IOデバイス群
1
21 IO resource management table 22 Interrupt
Claims (6)
OS‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎に前記システムマネージメント割り込みを生成するチップセットを含み、前記システムマネージメント割り込みに応じて前記割り込みハンドラを読み出して、CPU上に確保される所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替えることで、前記IOインタフェースを介してOS‐IOデバイス間のアクセスを可能に構成されたコンピュータハードウェアと、
を含み、
前記IOリソース管理テーブルは、IOデバイス毎に、前記所定IO空間の使用ポートを定めた仮想IOポート情報と、前記IO空間情報を記録したデバイスIO情報と、を含み成り、
IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、
IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録される、
ことを特徴とするコンピュータシステム。 The IO resource management table that individually manages the IO devices that are physically connected to the IO interface is held, and the IO spatial information allocated to each IO device managed by the IO resource management table is used as a system management interrupt. A BIOS that holds an interrupt handler that switches according to
It includes a chipset that generates the system management interrupt each time an access occurs between the OS and IO devices and the virtual IO space is accessed, and the interrupt handler is read in response to the system management interrupt and secured on the CPU. By switching the IO space information allocated to each IO device with reference to the IO resource management table via the predetermined IO space, access between the OS and IO devices is possible via the IO interface. Computer hardware and
Only including,
The IO resource management table includes virtual IO port information that defines a port to be used in the predetermined IO space for each IO device, and device IO information that records the IO space information.
In the virtual IO port information for each IO device, a virtual index port and a virtual data port that define the ports used in the predetermined IO space in the CPU are recorded.
In the IO space information for each IO device, a virtual IO base address that functions as an IO base address and a virtual IO size that functions as an IO size are recorded.
A computer system characterized by that.
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスのテーブルナンバーを引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置する
ことを特徴とする請求項1又は2に記載のコンピュータシステム。 A table number is assigned to each IO device in the IO resource management table.
When switching the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the table number of the IO device as an argument, and is assigned to the corresponding IO device. The computer system according to claim 1 or 2, wherein the value of the IO space is installed in the predetermined IO space.
前記IOリソース管理テーブルには、IOデバイス毎に、所定IO空間の使用ポートを定めた仮想IOポート情報と、IO空間情報を記録したデバイスIO情報とが記録され、
IOデバイス毎の前記仮想IOポート情報には、CPU内の所定IO空間の使用ポートを定めた仮想インデックスポートと仮想データポートが記録され、
IOデバイス毎の前記IO空間情報には、IOベースアドレスとして機能する仮想IOベースアドレスと、IOサイズとして機能する仮想IOサイズとが記録され、
コンピュータハードウェアは、チップセットが、OS‐IOデバイス間にアクセスが生じて仮想IO空間にアクセスされる毎に前記システムマネージメント割り込みを生成させ、
前記システムマネージメント割り込みに応じて、CPUが前記BIOSに格納された割り込みハンドラを読み込んで、CPU内に確保された所定IO空間を介して、各IOデバイスに割り振られたIO空間情報を前記IOリソース管理テーブルを参照して切り替え、
前記IOインタフェースを介して、切替えられたIO空間情報に基づいて、OS‐IOデバイス間のアクセスを成立させる
ことを特徴とするIOデバイスアクセス方法。 The BIOS holds an IO resource management table that individually manages IO devices that are physically connected to the IO interface, and also systems the IO spatial information allocated to each IO device managed by the IO resource management table. Holds an interrupt handler that switches according to the management interrupt,
In the IO resource management table, virtual IO port information that defines the port to be used in the predetermined IO space and device IO information that records the IO space information are recorded for each IO device.
In the virtual IO port information for each IO device, a virtual index port and a virtual data port that define the ports used in the predetermined IO space in the CPU are recorded.
In the IO space information for each IO device, a virtual IO base address that functions as an IO base address and a virtual IO size that functions as an IO size are recorded.
The computer hardware causes the chipset to generate the system management interrupt each time an access occurs between the OS-IO device and the virtual IO space is accessed.
In response to the system management interrupt, the CPU reads the interrupt handler stored in the BIOS and manages the IO space information allocated to each IO device via the predetermined IO space secured in the CPU. Refer to the table and switch,
An IO device access method characterized in that access between an OS and an IO device is established based on the switched IO spatial information via the IO interface.
前記割り込みハンドラは、前記所定IO空間内でIO空間情報を切り替える際に、IOデバイスのテーブルナンバーを引数に前記IOリソース管理テーブルから該当IOデバイスのIO空間情報を読み込んで、該当IOデバイスに割り振られたIO空間の値を前記所定IO空間に設置する
ことを特徴とする請求項4又は5に記載のIOデバイスアクセス方法。 A table number is assigned to each IO device in the IO resource management table.
When switching the IO space information in the predetermined IO space, the interrupt handler reads the IO space information of the corresponding IO device from the IO resource management table with the table number of the IO device as an argument, and is assigned to the corresponding IO device. The IO device access method according to claim 4 or 5 , wherein the value of the IO space is installed in the predetermined IO space.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017249341A JP6948039B2 (en) | 2017-12-26 | 2017-12-26 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017249341A JP6948039B2 (en) | 2017-12-26 | 2017-12-26 | Computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019114197A JP2019114197A (en) | 2019-07-11 |
JP6948039B2 true JP6948039B2 (en) | 2021-10-13 |
Family
ID=67223208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017249341A Active JP6948039B2 (en) | 2017-12-26 | 2017-12-26 | Computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6948039B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7548614B1 (en) | 2023-03-28 | 2024-09-10 | Necプラットフォームズ株式会社 | Information processing device and input/output processing method |
-
2017
- 2017-12-26 JP JP2017249341A patent/JP6948039B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019114197A (en) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7539788B2 (en) | Data processing system for keeping isolation between logical partitions | |
JP6329318B2 (en) | Information processing device | |
US9734096B2 (en) | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts | |
US8151275B2 (en) | Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS | |
US6877158B1 (en) | Logical partitioning via hypervisor mediated address translation | |
US20050235083A1 (en) | Computer system | |
US10956189B2 (en) | Methods for managing virtualized remote direct memory access devices | |
US10402576B2 (en) | Safe physical function passthrough using virtual machine functions | |
CN113312140B (en) | System, storage medium, and method for virtual trusted platform module | |
KR102529761B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
US10013199B2 (en) | Translation bypass by host IOMMU for systems with virtual IOMMU | |
US10268595B1 (en) | Emulating page modification logging for a nested hypervisor | |
US8566479B2 (en) | Method and system to allow logical partitions to access resources | |
US20180225054A1 (en) | Configuring nvme devices for redundancy and scaling | |
JP6948039B2 (en) | Computer system | |
US10185679B2 (en) | Multi-queue device assignment to virtual machine groups | |
US10481951B2 (en) | Multi-queue device assignment for application groups | |
JP2011204077A (en) | Information processing apparatus, resource allocation method and resource allocation program | |
JP2008250386A (en) | Access control device and computer system | |
JP2018113075A (en) | Information processing device | |
JP5142819B2 (en) | Virtual computer system | |
KR20230169865A (en) | System and method for managing queues in systems with high parallelism | |
JP5469085B2 (en) | Server apparatus provided with MRA switch | |
CN117348794A (en) | System and method for managing queues in a system with high parallelism | |
TWI467374B (en) | Computing system and method for protected portion of partition memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210623 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210803 |
|
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: 20210818 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6948039 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |