JP4656080B2 - System parts for information processing equipment - Google Patents
System parts for information processing equipment Download PDFInfo
- Publication number
- JP4656080B2 JP4656080B2 JP2007106655A JP2007106655A JP4656080B2 JP 4656080 B2 JP4656080 B2 JP 4656080B2 JP 2007106655 A JP2007106655 A JP 2007106655A JP 2007106655 A JP2007106655 A JP 2007106655A JP 4656080 B2 JP4656080 B2 JP 4656080B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- bus
- memory
- lpar
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、単一の計算機で複数のOSを稼動させる仮想計算機システムに関し、
OS間での不正アクセスによる誤動作の防止・エラー発生時の処理方法ならびに、
それらを用いた計算機システムに関係する。
The present invention relates to a virtual computer system that operates a plurality of OSes on a single computer,
Prevention of malfunction due to unauthorized access between OSs, processing method when an error occurs, and
It relates to the computer system using them.
米国特許公開公報US2002/0010811A1
論理分割(Logical Partitioning)は、単一のサーバ上で複数のオペレーティン
グシステム(Operating System、以下OS)を同時に動作させる技術である。論理分
割では、ハイパバイザと呼ばれる管理プログラムがサーバ管理者からの指示に従
って、サーバの計算機資源(メモリ領域、及びIOデバイスなどを含む)を複数の論
理区画(LPAR)に分割して、各LPAR上で1つずつのOSを動作させる。
US Patent Publication US2002 / 0010811A1
Logical partitioning is a technique for operating multiple operating systems (hereinafter referred to as OS) simultaneously on a single server. In logical partitioning, a management program called a hypervisor divides server computer resources (including memory areas and IO devices) into multiple logical partitions (LPARs) according to instructions from the server administrator. Run one OS at a time.
論理分割では、あるOSの動作によって他のLPAR上のOSが停止、もしくは誤動作
してはならない。そのためには、あるOSが他のLPARの資源へアクセスできないこ
と(以下、アイソレーション)を保証する必要がある。
In logical partitioning, the OS on another LPAR must not stop or malfunction due to the operation of one OS. For that purpose, it is necessary to guarantee that an OS cannot access other LPAR resources (hereinafter referred to as isolation).
ところで、Intel社のIA-32、およびIA-64TM アーキテクチャに代表されるPCサ
ーバでは、IOバスとしてPCIバスが広く用いられている。PCIバスは論理分割を意
識した設計を為されていないため、IOデバイス発のアクセスによってアイソレー
ションが保たれない(以下、アイソレーション障害)恐れがある。具体的にはOSに
不良がある場合や、IOカードの故障時でハードウェアによってエラーを検出でき
なかった場合に、アイソレーションが保証できない。そのため、PCサーバで論理
分割を実現するためには、IOデバイス発のアクセスに対してアイソレーションを
保証することが従来から課題となっていた。
上記の課題に対して、従来では公知例US2002/0010811A1(以下、公知例1)が提案
されている。公知例1では、Terminal Bridgeと呼ばれるPCI to PCIブリッジが、
IOデバイス発のトランザクションでアクセス可能なアドレス範囲を記憶している
。公知例1はトランザクションの宛先アドレスがアクセス可能な領域外である場
合、受信したトランザクションを中止(Abort)することで、Isolationを実現する
としている。
Conventionally, a known example US2002 / 0010811A1 (hereinafter, known example 1) has been proposed for the above problem. In known example 1, a PCI to PCI bridge called Terminal Bridge is
Stores the address range that can be accessed by transactions originating from IO devices. In the known example 1, when the destination address of the transaction is outside the accessible area, the isolation is realized by aborting the received transaction.
しかし、公知例1では以下に示すような課題が解決されていない。 However, in the known example 1, the following problems are not solved.
第1の課題は、受信したIOデバイス発のトランザクションをIOバス上で正常に
終了させ、かつハイパバイザへの通知の実現である。トランザクションの受信を
単に中止するのみでは、発行元IOデバイスがタイムアウトしたり、他のIOデバイ
スのデータ転送が正しく出来なくなる。また、ハイパバイザに通知しないと、該
当するOSをリブートするなどの適切なエラー処理が実現できない。
The first issue is to successfully terminate the received transaction originating from the IO device on the IO bus and to notify the hypervisor. Simply suspending the reception of a transaction will cause the issuing IO device to time out or prevent other IO devices from transferring data correctly. Moreover, if the hypervisor is not notified, appropriate error handling such as rebooting the corresponding OS cannot be realized.
第2の課題は、公知例1がIOデバイス間の転送を考慮していないことである。一
般的にサーバは多数のIOスロットを保持しているため、アドレス範囲でアクセス
可否を記憶する方式ではIOスロットの組み合わせが多く、大量の記憶領域を必要
としてしまう。
The second problem is that the known example 1 does not consider transfer between IO devices. In general, since a server holds a large number of IO slots, the method of storing the access availability within an address range has many combinations of IO slots and requires a large amount of storage area.
第3の課題は、公知例1がIOデバイスをスロット単位で各LPARに割り付けたり、
初期化することを考慮していないことである。そのため、あるIOスロットをリセ
ットする際に、他のLPARに割り付けられたIOカードもリセットしてしまう問題が
ある。
The third problem is that known example 1 assigns IO devices to each LPAR in slot units,
It is not considering the initialization. Therefore, when resetting a certain IO slot, there is a problem that IO cards assigned to other LPARs are also reset.
本発明は、上記の課題を解決することを目的とする。 An object of the present invention is to solve the above problems.
PCIバスに代表される汎用のIOバスを用いるサーバにおいて、チップセットの一
部に本発明を適用することによって、下記の利点が得られる。
論理分割運用時にIOデバイスからのアクセスによるアイソレーション障害を防止
しつつ、アイソレーション障害が発生した場合に、他のLPARに属するIOデバイス
の動作の継続を実現しつつ、障害を生じたLPARに対する適切なエラー処理を実現
する。
論理分割運用時に、IOデバイス間のアクセスに対して効率的なアイソレーション
障害の検出手段を提供する。
アイソレーション障害発生時に、スロット単位で障害LPARに属するIOデバイスの
みをリセットする手段を提供し、該IOデバイスを再度他のLPARに割り付けること
を可能にする。
In a server using a general-purpose IO bus typified by a PCI bus, the following advantages can be obtained by applying the present invention to a part of a chip set.
Appropriate for the failed LPAR while maintaining the operation of IO devices belonging to other LPARs when an isolation failure occurs while preventing an isolation failure due to access from an IO device during logical partitioning operation Realize error handling.
Provide efficient isolation failure detection means for access between IO devices during logical partitioning operation.
When an isolation failure occurs, a means for resetting only the IO device belonging to the failed LPAR in slot units is provided, and the IO device can be reassigned to another LPAR.
以下に図面を用いて、本発明の実施の形態例を示す。 Embodiments of the present invention will be described below with reference to the drawings.
図1に本発明が想定するサーバの概略を示す。本実施例では、複数のCPUを接続
可能な110 CPUバスに、4つのCPU(100〜103)が接続されている例を示す。本実施
例ではCPU数を4としているが、4以外でも構わない。
FIG. 1 shows an outline of a server assumed by the present invention. In this embodiment, an example is shown in which four CPUs (100 to 103) are connected to a 110 CPU bus to which a plurality of CPUs can be connected. In this embodiment, the number of CPUs is four, but it may be other than four.
このCPUバスを制御する120 チップセットがあり、チップセットはCPUバスのほ
かに、130 IOバス#0及び131 IOバス#1、160 メモリインタフェース、140 クロス
バインタフェースの制御を行っている。このIOバスは現在一般に使われているPC
Iバスなどを想定している。
There are 120 chip sets that control the CPU bus, and the chip set controls the 130
I-bus is assumed.
なお本実施例ではIOバスを130及び131のように2バス接続する構成例を示して
いるが、2本以外の構成でも構わない。
In the present embodiment, a configuration example is shown in which two IO buses are connected like 130 and 131, but configurations other than two may be used.
120チップセットは、CPUバスを制御する 121 CPU Bus Ctrl Unitと、メモリイ
ンタフェースを制御する122 Memory Ctrl Unitと、IOバスを制御する123 IO Ctr
l Unit、およびクロスバインタフェースの制御を行う124 CrossBar Ctrl Unitか
ら成る。
The 120 chipset has a 121 CPU Bus Ctrl Unit that controls the CPU bus, a 122 Memory Ctrl Unit that controls the memory interface, and a 123 IO Ctr that controls the IO bus.
l Unit and 124 CrossBar Ctrl Unit that controls the crossbar interface.
本発明では、このCPUとチップセット、150メモリと、IOバスに接続されるIO機
器(図面では示していない)をまとめてノードとして扱い、複数のノードを180ク
ロスバを用いて接続可能なサーバを想定している。なお、図1では190ノード#0と
191ノード#1の2ノード構成の例を示しているが、2ノードでなくても良い。
In the present invention, the CPU, chipset, 150 memory, and IO devices (not shown in the drawing) connected to the IO bus are collectively treated as nodes, and a server capable of connecting a plurality of nodes using a 180 crossbar is provided. Assumed. In FIG. 1, 190
Although an example of a two-node configuration of 191
このサーバで提供される仮想計算機システムは、ハイパバイザと呼ばれるソフ
トウェアによって実現される。
図2に仮想計算機システムで使用されるアドレスマップの相関図を示す。
図1のサーバにより提供されるアドレスマップを絶対アドレス空間と呼ぶ。図2の
実アドレス空間はOSが使用するアドレスを示し、図2の仮想アドレス空間とはア
プリケーションプログラムが使用するアドレスを示している。
図2は2つのOSが各LPAR上で動作している例を示しており、それぞれOS A、およ
びOS Bであるものとしている。OS A及び OS Bの上で動作する異なるアプリケ
ーションプログラムが使用する仮想アドレスVAとVBが、それぞれ非論理分割運用
時にはRAとRBで示されるアドレスに変換されるものとする。論理分割運用時でハ
イパバイザによるアドレス変換が無い場合、RAとRBが同じ値であると、同じ絶対
アドレスをOS AとOS Bがそれぞれアクセスするため、正常に動作できない。ハイ
パバイザはこれを防ぐために、RA及びRBに対応する、PA及びPB(≠PA)に対するア
クセスを行わせている。
The virtual machine system provided by this server is realized by software called a hypervisor.
Fig. 2 shows a correlation diagram of the address map used in the virtual machine system.
The address map provided by the server of FIG. 1 is called an absolute address space. The real address space in FIG. 2 indicates an address used by the OS, and the virtual address space in FIG. 2 indicates an address used by the application program.
FIG. 2 shows an example in which two OSs are operating on each LPAR, and it is assumed that OS A and OS B respectively. It is assumed that virtual addresses VA and VB used by different application programs running on OS A and OS B are converted into addresses indicated by RA and RB, respectively, during non-logical partitioning operation. When there is no address conversion by the hypervisor during logical partitioning operation, if RA and RB have the same value, OS A and OS B will access the same absolute address, and normal operation will not be possible. In order to prevent this, the hypervisor makes access to PA and PB (≠ PA) corresponding to RA and RB.
仮想計算機システムにおける、CPU及びIOデバイスからのアクセスを以下に説
明する。
The access from the CPU and IO device in the virtual machine system will be described below.
CPUからのアクセスの場合、OS AがVAをRAに変換するTLBエントリをCPUに登録
しようとするのをハイパバイザが検知し、ハイパバイザが OSに代わってVAをPA
に変換するTLBエントリの登録を行う。ハイパバイザは、各LPARへのメモリの割
り付け状況と RAから、PAを算出可能である。実際にアプリケーションプログラ
ムがVAにアクセスする際には、VAをPAに変換するTLBエントリがハイパバイザに
よって登録されているため、該アクセスはRAでなくPAをアクセスすることになり
、図2で示すLPARごとのアドレス変換が実現されている。
In the case of access from the CPU, the hypervisor detects that OS A tries to register a TLB entry that converts VA to RA in the CPU, and the hypervisor PAs the VA on behalf of the OS.
Register the TLB entry to be converted to. The hypervisor can calculate the PA from the memory allocation status and RA for each LPAR. When the application program actually accesses VA, the TLB entry that converts VA to PA is registered by the hypervisor. Therefore, the access is to access PA instead of RA, and for each LPAR shown in FIG. Address translation is realized.
一方、IOデバイスからのアクセスの場合、CPUからのアクセスと異なりTLBに相
当するアドレス変換機能がないため、ハイパバイザによるアドレス変換はできな
い。そこで本発明では、図1における123 I/O Ctrl Unitを図3のように構成する
ことによって、IOからのアクセスに応じて該アクセスを発生させたLPARを識別し
て、LPAR毎に異なるアドレスにアクセスするようにアドレス変換を行う。以下こ
のアドレス変換の仕組みを、図を用いて説明する。
On the other hand, in the case of access from an IO device, unlike the access from the CPU, there is no address conversion function corresponding to TLB. Therefore, in the present invention, by configuring the 123 I / O Ctrl Unit in FIG. 1 as shown in FIG. 3, the LPAR that generated the access is identified according to the access from the IO, and a different address is assigned to each LPAR. Perform address translation to access. The mechanism of this address conversion will be described below with reference to the drawings.
図3は 123 I/O Ctrl Unitの構成例を示す。123 I/O Ctrl Unitは 130および13
1 IOバスの制御を行っている。本実施例では個々のIOバスにはそれぞれSlot#0か
らSlot#3がある構成を示している。IOバスには、これらのスロット上のIOデバイ
スからのアクセス要求を調停する信号線206aおよび206bを備えており、206a、20
6bによるアクセス要求は204a、204bのBus Arb(バス調停回路)が調停し、アクセ
ス要求を発行可能なスロットに対してAck応答を行う。
FIG. 3 shows a configuration example of the 123 I / O Ctrl Unit. 123 I / O Ctrl Unit is 130 and 13
1 The IO bus is controlled. In this embodiment, a configuration is shown in which each IO bus has
The access request by 6b is arbitrated by the bus arbs (bus arbitration circuit) 204a and 204b, and an Ack response is sent to the slot that can issue the access request.
また、通常のIOバスではバス上のIOデバイスを初期化するためのリセット信号
を1本のみ持っており、全てのスロットで共通に用いられている。しかし本発明
では、205a、205bリセット信号線を個々のスロット毎に独立に用意すると共に、
リセット信号のアサート・ディアサートは204a, 204b Bus Arbによって制御され
る。これにより、スロット単位での初期化が可能となり、各LPARごとのリブート
、および再初期化が可能となる。205a, 206aリセット信号を用いたIOスロットの
再初期化の手順については、図12を用いて後述する。
In addition, a normal IO bus has only one reset signal for initializing the IO devices on the bus, and is used in common for all slots. However, in the present invention, 205a and 205b reset signal lines are prepared independently for each slot,
Assertion / deassertion of the reset signal is controlled by 204a, 204b Bus Arb. As a result, initialization can be performed in slot units, and rebooting and reinitialization can be performed for each LPAR. The procedure for reinitializing the IO slot using the 205a and 206a reset signals will be described later with reference to FIG.
130及び131 IOバスの何れかのスロットから、上記のバス調停回路により調停
された結果、他のIOバスまたはCPU、メモリに対するアクセスが発行された場合
、IOバスを介して該アクセス要求が123 I/O Ctrl Unitに伝達される。I/O Ctrl
Unitでは、該アクセス要求の宛先アドレスを203a, または203bのアドレス修飾部
で、そのアドレスの値に基づいて修飾する。この修飾の内容は前述の各LPARごと
に異なるアドレスにアクセスするよう、アドレス変換することを指している。
図4にこのアドレス修飾部203aの構成例を示す。なお、203bについても全く同じ
回路を使用するため、本実施例では203aのみの説明を行う。図4に示す回路例で
は、201a ADR変換情報に格納されたアドレス変換に関する情報を使用する。この
情報には次のものが含まれる。(1)インタリーブおよびアドレス領域情報、(2)ス
ロット単位での所属LPAR情報、(3)実アドレス範囲に応じたLPARごとのアドレス
加算値。図6にこれらの情報を格納するレジスタのフォーマットを示す。
(1)インターリーブおよびアドレス領域情報については、図2で説明したアドレス
マップのうちの絶対アドレスで指定された範囲に対して、アドレス種別、インタ
リーブ有無・範囲指定、宛先バス・スロット番号の各情報が含まれる。アドレス
種別は該アドレス範囲がメモリデバイス、もしくはMemory Mapped IO(以下MMIO)
によってIOデバイスに割り付けられているかの区別が格納されている。該アドレ
ス範囲がメモリデバイスに割り付けられている場合、特定のノードのメモリデバ
イスに割り付けられているか、もしくは複数のノードのメモリデバイス間でイン
タリーブされているかの情報が、インタリーブ有無・範囲指定のフィールドに格
納される。該アドレス範囲がIOデバイスに割り付けられている(以下、MMIO領域)
場合、アクセス対象となるIOデバイスのバス番号、およびスロット番号が、宛先
バス・スロット番号のフィールドに格納される。(1)インタリーブおよびアドレ
ス領域情報はサーバの初期化シーケンス中にBIOS (Basic IO System)、もしくは
ファームウェアによって設定され、特に論理分割をサポートしないサーバにおい
ても、これに類する情報を所持している。
(2)スロット単位での所属LPAR情報は、発行元PCIスロットごとにアクセス可能な
(= 同一のLPARに属している) PCIスロットを識別するための情報である。本情報
中の許可ビットが1にセットされているスロットに対してのみアクセスが許可さ
れる。本情報は各LPARの生成時にハイパバイザによって設定される。また本レジ
スタフォーマットのバリエーションとして、許可ビットが0になっているスロッ
トに対してのみアクセスを許可するとしても構わない。
本情報は、発行元IOスロットと発行先IOスロットの組み合わせ1つに対して1ビッ
トの記憶容量ですむため、各組み合わせに対してアドレス範囲を記憶する必要が
ある公知例1の方式に対し、格段に少ない記憶容量で同等の効果を達成でき、先
に挙げた第2の課題を解決する。
(3)実アドレス範囲に応じたLPARごとのアドレス加算値は、LPARごとに固有の、
実アドレスから絶対アドレスへのアドレス変換を行うための情報である。本情報
は各LPARの生成時にハイパバイザによって設定される。
図6の各情報の設定手順を、図11を用いて説明する。
601 電源が投入されると、ハードウェアに故障がないかチェックする目的でPOST
(Power On Self Test)が実施される。
602 次に BIOS、およびFirmwareの初期化コードが実行される。ここでメモリの
搭載状況、及びIOデバイスの接続状況の調査が行われ、図6中の (1)インタリー
ブおよびアドレス領域情報の設定が行われる。
603 次にハイパバイザのロードが行われる。ブートデバイスとしては他のOSと同
様、フレキシブルディスクやハードディスクが一般的であるが、他のものでも構
わない。その後、ハイパバイザはハイパバイザ自身の初期化を行う。
604 ハイパバイザは、サーバ管理者からの新規LPAR作成要求を待つ。サーバ管理
者から指示を受けるためのインタフェースとしては、CRTもしくはシリアル回線
を通してのコンソール画面や、液晶(LCD)パネル、電子メールなどが考えられる
が、特にこれらでなくとも構わない。サーバ管理者は上述のハイパバイザのイン
タフェースを通じて、新規に立ち上げるLPARに割り付ける絶対メモリアドレス範
囲、およびIOデバイス(もしくはスロット)番号、OSのブートデバイスを指定する
が、オプションとしてそれ以外の情報を与えても構わない。オプションとしては
、各LPARに対するCPUの割り当て方法やCPU時間の割合の指定などが考えられる。
605 ハイパバイザはサーバ管理者から指定されたメモリ領域を、新規に作成する
LPARに割り付ける。
606 次にハイパバイザはサーバ管理者から指定されたIOデバイスを、新規に作成
するLPARに割り付ける。
607 ハイパバイザはサーバ管理者から指定されたメモリ領域、およびIOデバイス
の割り付け状況に基づき、図6中の (2)SLOT単位での所属LPAR情報、および(3)実
アドレス範囲に応じたLPARごとのアドレス加算値の設定を行う。これらのレジス
タの設定を行うことで、後述する 202a, 202b Adr Dec, 及び203a, 203b Adr修
飾部の機能が有効になる。
608 ハイパバイザは、サーバ管理者から指定されたブートデバイスに格納された
OSのブートローダを呼び出し、新規LPAR上でOSの動作を開始させる。
As a result of arbitration by the above bus arbitration circuit from one of the 130 and 131 IO buses, when an access to another IO bus, CPU, or memory is issued, the access request is sent to the 123 I via the IO bus. / O Transmitted to Ctrl Unit. I / O Ctrl
In Unit, the destination address of the access request is modified by the
FIG. 4 shows a configuration example of the
(1) For interleaving and address area information, the address type, interleaving presence / absence / range designation, and destination bus / slot number information for the range specified by the absolute address in the address map described in FIG. included. For the address type, the address range is a memory device, or Memory Mapped IO (MMIO)
Stores the distinction of whether or not it is assigned to an IO device. When the address range is allocated to the memory device, information indicating whether the address range is allocated to the memory device of a specific node or interleaved between the memory devices of a plurality of nodes is displayed in the interleave presence / absence / range specification field. Stored. The address range is assigned to the IO device (hereinafter referred to as MMIO area)
In this case, the bus number and slot number of the IO device to be accessed are stored in the destination bus slot number field. (1) Interleaving and address area information are set by the BIOS (Basic IO System) or firmware during the server initialization sequence, and even servers that do not support logical partitioning possess similar information.
(2) LPAR information belonging to each slot can be accessed for each issuing PCI slot
(= Belongs to the same LPAR) Information for identifying PCI slots. Access is permitted only to slots for which the permission bit in this information is set to 1. This information is set by the hypervisor when each LPAR is created. Further, as a variation of this register format, access may be permitted only to a slot whose permission bit is 0.
Since this information only requires 1-bit storage capacity for each combination of the issuer IO slot and issuer IO slot, in contrast to the known example 1 method in which the address range needs to be stored for each combination, The same effect can be achieved with a much smaller memory capacity, and the second problem mentioned above is solved.
(3) The address addition value for each LPAR according to the real address range is unique to each LPAR.
This is information for address conversion from a real address to an absolute address. This information is set by the hypervisor when each LPAR is created.
The procedure for setting each piece of information in FIG. 6 will be described with reference to FIG.
601 When power is turned on, POST is used to check for hardware failure
(Power On Self Test) is executed.
602 Next, BIOS and Firmware initialization code are executed. Here, the memory installation status and IO device connection status are investigated, and (1) interleaving and address area information setting in FIG. 6 are performed.
603 Next, the hypervisor is loaded. The boot device is generally a flexible disk or hard disk, as with other OSs, but may be other devices. Thereafter, the hypervisor initializes the hypervisor itself.
604 The hypervisor waits for a new LPAR creation request from the server administrator. As an interface for receiving an instruction from the server administrator, a console screen through a CRT or a serial line, a liquid crystal (LCD) panel, an e-mail, and the like can be considered. The server administrator specifies the absolute memory address range, IO device (or slot) number, and OS boot device to be assigned to the newly started LPAR through the hypervisor interface described above, but gives other information as options. It doesn't matter. Options include CPU allocation method for each LPAR and specification of CPU time ratio.
605 The hypervisor creates a new memory area specified by the server administrator.
Assign to LPAR.
Next, the hypervisor assigns the IO device specified by the server administrator to the newly created LPAR.
607 Based on the memory area specified by the server administrator and the IO device allocation status, the hypervisor selects (2) the assigned LPAR information in SLOT units and (3) each LPAR according to the real address range in Figure 6. Set the address addition value. By setting these registers, the functions of the 202a, 202b Adr Dec, and 203a, 203b Adr modifiers described later become effective.
608 The hypervisor is stored in the boot device specified by the server administrator.
Call the OS boot loader and start the OS operation on the new LPAR.
図4に示す203a Adr修飾部は、(3) 304a, 304b アドレス加算値と、(1)アドレ
ス領域情報、204a Bus Arbから入力される210a 発行元スロット番号、及びIOバ
ストランザクションを入力として受信する。本実施例では、アドレス加算値が 2
10a 発行元スロット番号ごとに2つある例を示しているが、2つ以外でも構わない
。
IOバストランザクションは、301 Tx復号回路により、リード・ライトなどのトラ
ンザクションの種別を示すTx情報、およびアクセス先を示す307 実アドレスに分
離される。Tx情報については何も操作せずに、そのまま出力される。
304a, 304bアドレス加算値は、210a発行元スロット番号によって選択された後、
305a BASE及びSIZE部と、306a, 306b OFFSET部に分離される。
307実アドレスは、303a, 303b 加算器に入力され、306a, 306b OFFSETと加算さ
れる。
302 ADR変換判定回路は、309a, 309b加算結果と、307実アドレスのうちの1つを
選択し、312絶対アドレスとして出力する。本回路での判定手順は下記の通りで
ある。
307実アドレスと、アドレス領域情報の絶対アドレス範囲を比較し、307実アドレ
スがMMIO領域であるか判定する。本実施例では、MMIO領域はアドレス変換を行わ
ないことを前提としている。MMIO領域である場合、307実アドレスを312 絶対ア
ドレスに出力する。同時に311アドレス変換有無の信号をディアサートし、アド
レス変換を実施しなかったことを通知する。
307実アドレスがMMIO領域でない場合、307実アドレスが、305a, 305b BASE, SIZ
Eで指定される実アドレス範囲に合致するか判定する。合致する場合、対応する3
09a, もしくは 309b加算結果を選択し、312絶対アドレスとして出力する。同時
に311アドレス変換有無の信号をアサートし、アドレス変換を実施したことを通
知する。
307実アドレスが、305a, 305b BASE, SIZEで指定される実アドレス範囲に合致し
なかった場合、307実アドレスを312絶対アドレスとして出力する。同時に311ア
ドレス変換有無の信号をディアサートし、アドレス変換を実施しなかったことを
通知する。
The 203a Adr modifier shown in FIG. 4 receives (3) 304a, 304b address addition value, (1) address area information, 210a issuer slot number input from 204a Bus Arb, and IO bus transaction as input. . In this embodiment, the address addition value is 2
10a In the example, there are two for each issuer slot number, but there may be other than two.
The IO bus transaction is separated into Tx information indicating the type of transaction such as read / write and 307 real address indicating the access destination by the 301 Tx decoding circuit. The Tx information is output as it is without any operation.
304a, 304b Address addition value is selected by 210a issuer slot number,
It is separated into 305a BASE and SIZE parts and 306a and 306b OFFSET parts.
The 307 real address is input to the 303a and 303b adders and added to 306a and 306b OFFSET.
The 302 ADR conversion determination circuit selects one of the 309a and 309b addition results and the 307 real address and outputs it as a 312 absolute address. The determination procedure in this circuit is as follows.
The 307 real address is compared with the absolute address range of the address area information to determine whether the 307 real address is an MMIO area. In this embodiment, it is assumed that the MMIO area does not perform address translation. If it is in the MMIO area, the 307 real address is output to the 312 absolute address. At the same time, the 311 address conversion presence / absence signal is deasserted to notify that address conversion has not been performed.
If 307 real address is not MMIO area, 307 real address is 305a, 305b BASE, SIZ
Judge whether it matches the real address range specified by E. If it matches, the corresponding 3
09a or 309b Add result is selected and output as 312 absolute address. At the same time, 311 address conversion presence / absence signal is asserted to notify that address conversion has been performed.
If the 307 real address does not match the real address range specified by 305a, 305b BASE, and SIZE, the 307 real address is output as a 312 absolute address. At the same time, the 311 address conversion presence / absence signal is deasserted to notify that address conversion has not been performed.
図5は 202a Adr Decの構成例を示す。本実施例では202a, 及び202bでは全く同
じ回路を使用するため、202aのみ図示している。202a Adr Decは、図4の203a Ad
r修飾部から出力される308 Tx情報、および312絶対アドレス、311アドレス変換
有無を受信し、さらに201a ADR変換情報からインタリーブおよびアドレス領域情
報、SLOT単位での所属LPAR情報を、204a Bus Arbからは210a 発行元スロット番
号を受信して、図2の200 他Ctrl Unit IF制御部に対し、チップセット内トラン
ザクション(以下 Inbound Tx)を発行する。
401アクセス先判定回路は、312絶対アドレス、308Tx情報、インタリーブおよび
アドレス領域情報を受信し、該トランザクションのアクセス先の判定を行い、41
3 Inbound Txを出力する。同時に411 アドレス種別でアクセス先の種別(メモリ
、もしくはIOデバイス、CPUなど)を、412宛先スロット番号で宛先のIOバス番号
、およびIOスロット番号を402アクセス可否判定に通知する。
402アクセス可否判定は311アドレス変換有無、411アドレス種別、412宛先スロッ
ト番号、および210発行元スロット番号で選択されたSLOT単位での所属LPAR情報
を受信して、Inbound Tx IFに発行するTxを選択する。本回路での発行可否決定
手順は下記の通りである。
411アドレス種別がIOデバイス(MMIO)である場合、SLOT単位での所属LPAR情報の
ビットマップのうち、412宛先スロット番号で示されるアクセス可否ビットが1(
もしくは0)である場合、アクセスを許可する。
411アドレス種別がCPU(IOデバイスからの割り込みトランザクション)である場合
、アクセスを許可する。本実施例では、CPUは全LPARで時分割で共有されること
を前提としており、各LPARの割り込みベクタはハイパバイザによって管理される
ため、他のOSの動作に支障をきたすことはない。
411アドレス種別がメモリであり、かつ311アドレス変換有無がアサートされてい
る場合、アクセスを許可する。
上記(1)〜(3)によってアクセスが許可された場合、413 Inbound Txを Inbound T
x IFに出力する。
上記(1)〜(3)に当てはまらなかった場合、402アクセス可否判定はアクセスを拒
否し、413 Inbound Tx IFのアクセス対象アドレスを、403宛先Regに登録されて
いるアドレスと交換し、Inbound Tx IFに発行すると共に、404INT 生成に CPUに
対する割り込みトランザクションを生成させ、Inbound Txとして発行させる。同
時に、405アイソレーション障害レジスタに、発行元スロット番号、および312絶
対アドレスを格納する。405アイソレーション障害レジスタは、CPUから読み出し
可能であるものとする。
FIG. 5 shows a configuration example of 202a Adr Dec. In this embodiment, since 202a and 202b use the same circuit, only 202a is shown. 202a Adr Dec is 203a Ad in Figure 4
r 308 Tx information output from the modifier, 312 absolute address, 311 address conversion presence / absence received, interleaving and address area information from 201a ADR conversion information, belonging LPAR information in SLOT units, 204a
The 401 access destination determination circuit receives the 312 absolute address, 308Tx information, interleave and address area information, determines the access destination of the transaction,
3 Output Inbound Tx. At the same time, the 411 address type notifies the access destination type (memory, IO device, CPU, etc.), the 412 destination slot number, the destination IO bus number, and the IO slot number to the 402 access availability determination.
402 Access enable / disable judgment: Selects Tx to be issued to Inbound Tx IF after receiving the belonging LPAR information in SLOT units selected by 311 address conversion presence / absence, 411 address type, 412 destination slot number, and 210 source slot number To do. The issue determination procedure in this circuit is as follows.
411 When the address type is an IO device (MMIO), the access permission bit indicated by the 412 destination slot number is 1 in the bitmap of the belonging LPAR information in SLOT units (
Or if it is 0), allow access.
411 When the address type is CPU (interrupt transaction from IO device), access is permitted. In this embodiment, it is assumed that the CPU is shared by all LPARs in a time-sharing manner, and the interrupt vector of each LPAR is managed by the hypervisor, so that the operation of other OSs is not hindered.
If the address type is 411 and the presence / absence of 311 address conversion is asserted, access is permitted.
If access is permitted by (1) to (3) above, change 413 Inbound Tx to Inbound T
x Output to IF.
If the above (1) to (3) do not apply, the 402 access determination determines that access is denied, the access target address of 413 Inbound Tx IF is exchanged with the address registered in the 403 destination Reg, and the Inbound Tx IF And generate 404INT to generate an interrupt transaction for the CPU and issue it as Inbound Tx. At the same time, the issuing slot number and 312 absolute address are stored in the 405 isolation failure register. It is assumed that the 405 isolation fault register can be read from the CPU.
該割り込みトランザクションを受けたCPUは、エラー処理を実施する。その手
順を図12を用いて説明する。
The CPU that has received the interrupt transaction performs error processing. The procedure will be described with reference to FIG.
701において、該割り込みトランザクションを受信したCPUは、割り込みベクタ
に登録されたハイパバイザのエラー処理ルーチンを起動する。
In 701, the CPU that has received the interrupt transaction activates the hypervisor error processing routine registered in the interrupt vector.
702において、ハイパバイザはチップセット内のエラーレジスタの値や、ファ
ームウェアから報告されるエラーレコードの情報から、発生したエラーがLPAR間
のアイソレーション障害であることを特定する。
In 702, the hypervisor specifies that the error that has occurred is an isolation failure between LPARs from the value of the error register in the chipset and the information of the error record reported from the firmware.
703において、ハイパバイザは該アイソレーション障害によって影響を受けた
範囲を特定する。図3の構成例では、発行元のIOスロットが属するLPAR以外には
影響が及ぼされないことが、構成上保証されている。そのため、405アイソレー
ション障害レジスタに記録された発行元スロット番号から、アイソレーション障
害を引き起こしたIOスロット番号を取得し、そのIOスロットが所属するLPARを特
定する。本特許では、各IOスロットはLPARの生成時に占有的に割り付けられ 他
のLPARとは共用しないため、IOスロット番号から所属するLPARを一意に特定可能
である。
At 703, the hypervisor identifies the area affected by the isolation fault. In the configuration example of FIG. 3, the configuration guarantees that there is no influence other than the LPAR to which the issuing IO slot belongs. Therefore, the IO slot number causing the isolation failure is acquired from the issuer slot number recorded in the 405 isolation failure register, and the LPAR to which the IO slot belongs is specified. In this patent, each IO slot is assigned exclusively when an LPAR is created and is not shared with other LPARs. Therefore, the LPAR to which the IO slot belongs can be uniquely identified from the IO slot number.
704において、ハイパバイザは該LPARで動作しているOS(以下、ゲストOS)の停
止を指示する。ハイパバイザからゲストOSを停止させる方法としては (1)ゲスト
OSに対して、アドレスパリティエラーなどの致命的なエラーが発生したと通知す
ることで、ゲストOSにリブート処理を行わせる方法や、(2)ハイパバイザ内のCPU
割り当てキューから該当LPARを取り除く方法などが考えられる。また、OSのデバ
ッグなどの必要に応じて、ゲストOSのメモリイメージなど障害ログ情報をハイパ
バイザ、もしくは該ゲストOSが取得する。
In 704, the hypervisor instructs to stop the OS (hereinafter referred to as guest OS) operating in the LPAR. To stop the guest OS from the hypervisor: (1) Guest
Notifying the OS that a fatal error such as an address parity error has occurred, allowing the guest OS to perform reboot processing, or (2) the CPU in the hypervisor
A possible method is to remove the corresponding LPAR from the allocation queue. Further, the hypervisor or the guest OS acquires failure log information such as a guest OS memory image as needed for OS debugging or the like.
705において、ハイパバイザは該当するLPARに属する全てのIOスロットを、ス
ロット単位に設けられた 205a RST#信号を用いてリセットしたうえで、該IOスロ
ットがどのLPARにも属していない状態に開放する。本処理により、該IOスロット
を他のLPARに再度割り付けることが可能になり、先に挙げた第3の課題を解決す
る。
In 705, the hypervisor resets all IO slots belonging to the corresponding LPAR using the 205a RST # signal provided for each slot, and then releases the IO slot to a state that does not belong to any LPAR. With this processing, the IO slot can be reassigned to another LPAR, and the third problem mentioned above is solved.
706において、ハイパバイザは該当するLPARに割り付けられていたメモリ領域
を、どのLPARにも属していない状態に開放する。本処理により、該メモリ領域を
他のLPARに再度割り付けることが可能になる。
In 706, the hypervisor releases the memory area allocated to the corresponding LPAR to a state not belonging to any LPAR. This processing makes it possible to reallocate the memory area to another LPAR.
707において、ハイパバイザは該当するLPARがアイソレーション障害を発生さ
せたことを、サーバ管理者に通知する。障害通知手段としては、サーバの状態表
示用のLCDパネルやブザー、管理用コンソール画面、電子メールなどが挙げられ
る。該障害通知手段は、アイソレーション障害の通知のために専用に用意しても
良いし、他の障害発生時の通知手段と兼用しても構わない。
図5中403宛先Regにはハイパバイザのみが使用し、各LPARには割り付けられてい
ないメモリアドレスを、図6の603ハイパバイザロード中の ハイパバイザ自身の
初期化において設定しておく。これにより、アイソレーション障害発生時に他の
LPARのデータが破壊されることを防ぐとともに、通常のIOデバイス発アクセスの
処理と同一の経路で該IOバストランザクションに対する完了をIOバスに対して行
うことを可能にし、IOデバイスのタイムアウトによるシステム停止を防止する。
上述の処理を終えたトランザクションは図2中 220他Ctrl Unit IF制御部に入力
され、Tx情報、および絶対アドレスに基づいて121 CPU Ctrl Unit、または124 C
rossBar Ctrl Unit、または122 Memory Ctrl Unit、または他IOバスに対し、信
号線132または133を介して、Inbound Txを発行し、宛先の各Unitからの応答を待
って、該アクセス要求を行ったIOバス上のIOデバイスに応答トランザクションを
IOバスに発行し、該アクセス要求をIOバス上で完了させる。
これによってIOデバイスからのアクセスでアイソレーション障害が生じた場合に
、他のLPARに属するIOデバイスの動作を継続しつつ、アイソレーション障害の発
生を報告、およびエラー処理を実施することが可能になり、先に挙げた第1の課
題を解決する。
In 707, the hypervisor notifies the server administrator that the corresponding LPAR has caused an isolation failure. Examples of failure notification means include an LCD panel and buzzer for displaying the server status, a console screen for management, and e-mail. The failure notification means may be prepared exclusively for notification of an isolation failure, or may be shared with other failure notification means.
In FIG. 5, only the hypervisor is used for the 403 destination Reg, and a memory address not assigned to each LPAR is set in the initialization of the hypervisor itself during the 603 hypervisor load in FIG. As a result, when an isolation failure occurs,
The LPAR data is prevented from being destroyed, and the IO bus transaction can be completed for the IO bus in the same route as the normal access processing from the IO device. To prevent.
The transaction for which the above processing has been completed is input to the 220 Ctrl Unit IF control unit in FIG. 2, and the 121 CPU Ctrl Unit or 124 C based on the Tx information and the absolute address.
For the rossBar Ctrl Unit or 122 Memory Ctrl Unit or other IO bus, issue an Inbound Tx via the
Issue to the IO bus and complete the access request on the IO bus.
As a result, when an isolation failure occurs due to access from an IO device, it is possible to report the occurrence of an isolation failure and perform error handling while continuing the operation of the IO device belonging to another LPAR. To solve the first problem mentioned above.
本実施例は実施例1の変形であり、図1における 123 I/O Ctrl Unitに、137 I/
O to I/O Bridgeを付加した例を示している。
The present embodiment is a modification of the first embodiment, and the 123 I / O Ctrl Unit in FIG.
An example in which O to I / O Bridge is added is shown.
実施例2では、紙面の都合で 123 I/O Ctrl Unitに接続されるIOバスは、134 I
Oバスを1本とした構成例である。137 I/O to I/O Bridgeは 1つのIOバスを複数
のIOバスに振り分ける機能を有するLSIである。なお本実施例では134、135、136
は単にIOバスと記しているが、それぞれ異なる種類のIOバスであっても、同じ種
類のIOバスであっても構わない。
In Example 2, the IO bus connected to the 123 I / O Ctrl Unit for reasons of space is 134 I
This is a configuration example with one O bus. 137 I / O to I / O Bridge is an LSI that has the function of distributing one IO bus to multiple IO buses. In this embodiment, 134, 135, 136
Are simply described as IO buses, but they may be different types of IO buses or the same type of IO buses.
実施例2は実施例1における 201a, 201b ADR変換情報と、202a, 202b Adr Dec
、203a, 203dAdr修飾部を、図7のように138アクセス監視カード#0, 及び 139 ア
クセス監視カード#1上に、201c, 201d ADR変換情報(2)、および 202c, 202d Adr
Dec(2)、203c, 203d Adr修飾部(2)として搭載した例である。138, 139は全く同
じ回路を使用するため、138 アクセス監視カード#0のみについて説明する。
実施例2では実施例1と異なり、IOデバイスをIOスロット単位ではなく、IOバス単
位で各LPARに割り付ける。そのため、201c ADR変換情報(2)は、201aの一部の情
報のみを保持する。具体的には図6中の(1)インタリーブ情報およびアドレス領域
情報のうち宛先スロット番号以外の情報を、(2)所属LPAR情報の許可ビットがバ
ス一本につき1ビットのみを保持し、(3)実アドレス範囲に応じたLPARごとのアド
レス加算値はIOスロット単位でなく、IOバス単位の情報として保持する。
203c Adr修飾部(2)は、同一バス上の他のIOスロットから発行されるIOバストラ
ンザクションを監視し、該IOバストランザクションを入力として前述のアドレス
修飾を実施する。前述の通り実施例2ではIOデバイスの割り付け単位が IOバス単
位であるため、実施例1の203a Adr修飾部とは異なり、304a, 304b アドレス加算
値は 1つずつの情報のみを受信し、210a 発行元スロット番号は受信しない。
202c Adr Dec(2)は、受信したIOバストランザクションの宛先アドレスをチェッ
クする。実施例1の202a Adr Decと異なり、202c Adr Dec(2)は210a発行元スロッ
ト番号、及び 413 Inbound TxをInbound Tx IFに発行する経路、403宛先Regを具
備しない。402アクセス可否判定においてアクセス可能である場合、Inbound Tx
IF(この場合IOバス)に対して何のトランザクションを発行しない。アクセス不可
である場合、CPUに対して割り込みトランザクションを作成しアイソレーション
障害が起こったことを報告する。
これによって、135 IOバスと136 IOバスが異なるLPARに属していた場合に、135
IOバスのIOデバイスから発行されたトランザクションが、137 I/O to I/O Bridg
eを介して 136 IOバス上のIOデバイスに対してアクセスすることを、アイソレー
ション障害として検出することが可能になる。また、逆に136 IOバスから 135 I
Oバスへアクセスする場合も同様に検出できる。
これによってアイソレーション障害の発生を完全には防げないものの、アイソレ
ーション障害が発生したことを通知できるため、図12に示すエラー発生時の処理
を実施することが可能になる。その際 703 影響範囲の特定について、原因とな
ったトランザクションの発行元LPARに加え宛先LPARを特定し、該当するゲストOS
をリブートさせる。宛先LPARは、405アイソレーション障害レジスタに格納され
た 312絶対アドレスから特定可能である。
Example 2 includes 201a, 201b ADR conversion information in Example 1, 202a, 202b Adr Dec
, 203a, 203dAdr modifiers on the 138 access
This is an example of mounting as a Dec (2), 203c, 203d Adr modifier (2). Since 138 and 139 use exactly the same circuit, only 138 access
In the second embodiment, unlike the first embodiment, IO devices are allocated to each LPAR in IO bus units, not in IO slot units. Therefore, 201c ADR conversion information (2) holds only a part of the information of 201a. Specifically, (1) information other than the destination slot number in the interleave information and address area information in FIG. 6, (2) the permission bit of the belonging LPAR information holds only one bit per bus, (3 ) The address addition value for each LPAR corresponding to the real address range is held as information in IO bus units, not in IO slot units.
The 203c Adr modification unit (2) monitors an IO bus transaction issued from another IO slot on the same bus, and performs the above-described address modification by using the IO bus transaction as an input. As described above, in Example 2, the IO device allocation unit is the IO bus unit, so unlike the 203a Adr modifier in Example 1, the 304a, 304b address addition value receives only one piece of information and 210a The issuer slot number is not received.
202c Adr Dec (2) checks the destination address of the received IO bus transaction. Unlike 202a Adr Dec of the first embodiment, 202c Adr Dec (2) does not include the 210a issuer slot number, the route for issuing 413 Inbound Tx to the Inbound Tx IF, and the 403 destination Reg. 402 Inbound Tx when access is possible
No transactions are issued for IF (in this case IO bus). If it is not accessible, create an interrupt transaction to the CPU and report that an isolation failure has occurred.
As a result, if the 135 IO bus and 136 IO bus belong to different LPARs,
Transaction issued from IO device on IO bus is 137 I / O to I / O Bridg
Access to an IO device on the 136 IO bus via e can be detected as an isolation failure. Conversely, from 136 IO bus to 135 I
The same can be detected when accessing the O bus.
Although it is not possible to completely prevent the occurrence of an isolation failure, it is possible to notify that an isolation failure has occurred. Therefore, it is possible to perform the processing when an error occurs as shown in FIG. At that time, regarding the identification of the affected area, in addition to the source LPAR of the transaction that caused the transaction, the destination LPAR is specified, and the corresponding guest OS
Reboot. The destination LPAR can be identified from the 312 absolute address stored in the 405 isolation failure register.
本実施例は実施例1の変形であり、図3の 123 I/O Ctrl Unitを 図8の 126 I/O
Ctrl Unitのように構成する。
This example is a modification of Example 1, in which 123 I / O Ctrl Unit in FIG. 3 is replaced with 126 I / O in FIG.
Configure like Ctrl Unit.
実施例1の 202a Adr Decを変更し、図9に示す 202e Adr Dec(3)のように構成
する。202f Adr Dec(3)も全く同じ回路を有するため、以下 202e Adr Dec(3)の
みを説明する。421アクセス判定可否(2)は、実施例1の402アクセス判定可否と同
様のトランザクション発行可否判定、および割り込みトランザクションの発行を
実施するが、アクセス不可と判定したときに該Inbound TxをInbound Tx IFに発
行せず、209a 応答発行要求を用いて、207aに該Inbound Txに対する応答トラン
ザクションの発行を要求する。また420アクセス先判定回路(2)は、211a Tx応答
情報を用いて該トランザクションの種別など応答トランザクションの発行に必要
な情報を伝達する。
207a 応答発行は、126 I/O Ctrl Unitから 130 IOバス#0に対して発行するIOバ
ストランザクションを制御する。207b 応答発行も207a と全く同じ回路を有する
ため、以下 図10を用いて、207a のみを説明する。
502応答選択部は208a Bus権要求・許可の信号を用いて 204a Bus Arbにバス権の
要求を行い、Bus権が獲得できたときのみ 130 IOバス#0に対して IOバストラン
ザクションを発行する。502応答選択部は、209a信号により応答発行要求が行わ
れていない場合、200 他Ctrl Unit I/F制御部から入力されるトランザクション
を130 IOバス#0に出力する。209a信号により応答発行要求が行われた場合、211a
Tx応答情報より受信したトランザクションの情報と、501応答データ生成部のデ
ータを用いて、IOバスに対して肯定的な応答トランザクションを送信する。具体
的には該トランザクションがメモリリードなど応答データを必要とする場合、50
1応答データ生成部で生成されるデータを応答データとして送信し、メモリライ
トなど応答データを必要としない場合は、Ack応答のみを送信する。これによっ
てアイソレーション障害を引き起こしたIOバストランザクションに対する完了を
IOバスに対して行うことを可能にし、IOデバイスのタイムアウトによるシステム
停止を防止する。
さらに実施例3のバリエーションとして、アイソレーション障害を引き起こしたI
Oバストランザクションに対し、常にリトライなど否定的な応答トランザクショ
ンを送信する構成が考えられる。本構成は、リトライが長く続いてしまいシステ
ムが停止することを避ける目的で、IOデバイスが独自にタイムアウト検出を行っ
ている場合には用いることが出来ないが、一般的に否定的な応答トランザクショ
ンは応答データを必要としないので、501応答データ生成部を省略できるメリッ
トがある。
The 202a Adr Dec of the first embodiment is changed and configured as 202e Adr Dec (3) shown in FIG. Since 202f Adr Dec (3) has exactly the same circuit, only 202e Adr Dec (3) will be described below. 421 Access determination availability (2) is a transaction issuance determination and interrupt transaction issuance similar to the 402 access determination availability in the first embodiment, but when it is determined that access is impossible, the Inbound Tx is changed to Inbound Tx IF. Without issuing, using the 209a response issue request, 207a is requested to issue a response transaction for the Inbound Tx. The 420 access destination determination circuit (2) uses the 211a Tx response information to transmit information necessary for issuing a response transaction such as the type of the transaction.
207a Response issue controls the IO bus transaction issued from 126 I / O Ctrl Unit to 130
The 502 response selection unit issues a bus right request to 204a Bus Arb using the 208a Bus right request / grant signal, and issues an IO bus transaction to 130
A positive response transaction is transmitted to the IO bus using the transaction information received from the Tx response information and the data of the 501 response data generation unit. Specifically, if the transaction requires response data such as memory read, 50
1 The data generated by the response data generation unit is transmitted as response data. When response data such as memory write is not required, only the Ack response is transmitted. This completes the IO bus transaction that caused the isolation failure.
Enables operations on the IO bus and prevents system stoppage due to IO device timeout.
Furthermore, as a variation of Example 3, I which caused isolation failure
A configuration is possible in which a negative response transaction such as a retry is always transmitted in response to an O-bus transaction. This configuration cannot be used when the IO device is performing its own timeout detection in order to prevent the system from being stopped due to a long retry, but generally negative response transactions are not possible. Since no response data is required, there is an advantage that the 501 response data generation unit can be omitted.
本実施例は実施例1の変形であり、図4の 203a Adr修飾部を図13の203g Adr修
飾部のように構成する。実施例4における 203g Adr修飾部は実施例1の203a Adr
修飾部と異なり、304a アドレス加算値を受信せず、代わりに 323a〜323d イン
デックステーブルを保持する。307実アドレスは、321インデックスビットと、32
2オフセットビットに分離される。図13では、上位3ビットを321インデックスビ
ットとして取り出し、その値は ”010”であるとしている一例を示しているが、
インデックスビットの長さ、および どのビットを321インデックスビットとして
用いるかは、これ以外でも構わない。203g Adr修飾部は、323a〜323dのインデッ
クステーブル中の、321インデックスビットの値が指し示すエントリの値を読み
出し、210a 発行元スロット番号でセレクトして324置換後インデックスビットを
得る。前述の302アドレス変換判定回路で、アドレス変換の必要がある場合は324
置換後インデックスビットを選択し、変換不用の場合は321インデックスビット
を選択したのち、322オフセットビットと結合させて、312絶対アドレスとして出
力する。
実施例4の場合、図6の(3)実アドレス範囲に応じたLPARごとの加算値を記録する
必要がない代わりに、323a〜323dのインデックステーブルを記録するための記憶
容量が必要である。実施例1に比べ、LPARの生成・消滅を繰り返しメモリの断片
化(フラグメンテーション)が著しい場合には、アドレス変換に必要な情報を削減
できる。323a〜323dのインデックステーブルの情報は、図11中の607レジスタ更
新において設定する必要があり、この情報を設定することで 203g Adr修飾部が
動作するようになる。
The present embodiment is a modification of the first embodiment, and the 203a Adr modifying unit in FIG. 4 is configured like the 203g Adr modifying unit in FIG. The 203 g Adr modifier in Example 4 is 203a Adr of Example 1.
Unlike the modifier, it does not receive the 304a address addition value, but holds the 323a-323d index table instead. 307 real address is 321 index bits and 32
Separated into 2 offset bits. FIG. 13 shows an example in which the upper 3 bits are extracted as 321 index bits and the value is “010”.
Other than this, the length of the index bit and which bit is used as the 321 index bit may be used. The 203g Adr modification unit reads the value of the entry indicated by the value of the 321 index bit in the index tables of 323a to 323d, selects it with the 210a issuer slot number, and obtains the index bit after 324 replacement. If address conversion is necessary in the above 302 address conversion determination circuit, 324
After replacement, the index bit is selected. When conversion is not required, the 321 index bit is selected, and then combined with the 322 offset bit and output as a 312 absolute address.
In the case of the fourth embodiment, instead of recording an addition value for each LPAR corresponding to (3) real address range in FIG. 6, a storage capacity for recording the index tables of 323a to 323d is necessary. Compared with the first embodiment, when the fragmentation (fragmentation) of the memory is repetitively generated and repeated, the information necessary for address translation can be reduced. The information in the index tables 323a to 323d needs to be set in the 607 register update in FIG. 11, and by setting this information, the 203g Adr modifying unit operates.
100、…、103 CPU#0、…、CPU#3
110 CPUバス
120 チップセット
121 CPU Bus Ctrl Unit
122 Memory Ctrl Unit
123 I/O Ctrl Unit
124 CrossBar Ctrl Unit
130、131 IOバス#0、IOバス#1
140 クロスバインタフェース
150 メモリ
160 メモリインタフェース
180 クロスバ
190, 191 ノード#0, ノード#1
200 他Ctrl Unit I/F 制御部
201a、201b ADR変換情報
202a、202b Adr Dec
203a、203b Adr修飾部
204a, 204b Bus Arb
205a, 205b RST#
206a, 206b req#, ack#
210a, 210b 発行元スロット番号
301 Tx復号回路
302 ADR変換判定回路
303a, 303b 加算器
304a, 304b アドレス加算値
305a, 305b BASE、SIZE
306a, 306b OFFSET
307 実アドレス
308 Tx情報
309a, 309b 加算結果
311 アドレス変換有無
312 絶対アドレス
401 アクセス先判定回路
402 アクセス可否判定
403 宛先Reg
404 INT生成
405 アイソレーション障害レジスタ
411 アドレス種別
412 宛先スロット番号
413 Inbound Tx
137 I/O to I/O Bridge
138, 139 アクセス監視カード#0, アクセス監視カード#1
201c, 201d ADR変換情報(2)
202c, 202d Adr Dec (2)
203c, 203d Adr修飾部(2)
207a, 207b 応答発行
208a, 208b Bus権要求・許可
202e, 202f Adr Dec(3)
209a, 209b 応答発行要求
211a, 211b Tx応答情報
420 アクセス先判定回路(2)
421 アクセス可否判定(2)
501 応答データ生成部
502 応答選択部
601 POST実行
602 BIOS/Firmware実行
603 ハイパバイザをロード
604 新規LPARの生成要求受付
605 メモリ領域確保
606 I/Oデバイス確保
607 レジスタ更新
608 OSブートローダ呼び出し
701 割り込みトランザクションによるエラー通知
702 割り込み要因特定
703 影響範囲特定
704 該当ゲストOSの停止指示
705 該当LPARに属するI/Oスロットのリセット・開放
706 該当LPARに属するメモリ領域を開放
707 管理者への障害発生・要因通知
321 インデックスビット
322 オフセットビット
323a、…、323d インデックステーブル#1、…、インデックステーブル#4
324 置換後インデックスビット。
100 ... 103
110 CPU bus
120 chipsets
121 CPU Bus Ctrl Unit
122 Memory Ctrl Unit
123 I / O Ctrl Unit
124 CrossBar Ctrl Unit
130, 131
140 Crossbar interface
150 memory
160 Memory interface
180 Crossbar
190, 191
200 Other Ctrl Unit I / F control part
201a, 201b ADR conversion information
202a, 202b Adr Dec
203a, 203b Adr modifier
204a, 204b Bus Arb
205a, 205b RST #
206a, 206b req #, ack #
210a, 210b Issuer slot number
301 Tx decoding circuit
302 ADR conversion judgment circuit
303a, 303b Adder
304a, 304b Address addition value
305a, 305b BASE, SIZE
306a, 306b OFFSET
307 Real address
308 Tx information
309a, 309b addition result
311 Address conversion presence / absence
312 Absolute address
401 Access destination judgment circuit
402 Accessibility judgment
403 Destination Reg
404 INT generation
405 Isolation fault register
411 Address type
412 Destination slot number
413 Inbound Tx
137 I / O to I / O Bridge
138, 139 Access
201c, 201d ADR conversion information (2)
202c, 202d Adr Dec (2)
203c, 203d Adr modifier (2)
207a, 207b issue response
208a, 208b Bus request / permission
202e, 202f Adr Dec (3)
209a, 209b Response issue request
211a, 211b Tx response information
420 Access destination judgment circuit (2)
421 Accessibility judgment (2)
501 Response data generator
502 Response selection part
601 POST execution
602 BIOS / Firmware execution
603 Load the hypervisor
604 New LPAR generation request reception
605 Secure memory area
606 I / O device reservation
607 Register update
608 Call OS boot loader
701 Error notification by interrupt transaction
702 Interrupt source identification
703 Impact range identification
704 Instruction to stop the guest OS
705 Reset / release I / O slot belonging to the relevant LPAR
706 Free memory area belonging to LPAR
707 Error occurrence / factor notification to the administrator
321 index bits
322 Offset bit
323a, ..., 323d
324 Index bit after replacement.
Claims (1)
付けられ、前記論理区画のそれぞれにおいて個別にオペレーティングシステムが稼動する情報処理装置の制御を行うシステム部品であって、A system component for controlling an information processing apparatus in which an operating system is individually operated in each of the logical partitions,
複数のIOスロットにそれぞれ接続された複数のIOデバイスを接続するIOインターフェースと、An IO interface that connects multiple IO devices connected to multiple IO slots, and
前記IOスロットに接続された前記IOデバイスのそれぞれに前記論理区画の一つを割り付ける手段と、Means for allocating one of the logical partitions to each of the IO devices connected to the IO slot;
前記IOインターフェースを経由して、前記IOデバイスから得られたチップセット内のメモリアクセストランザクションの宛先アドレスに、前記IOデバイスが発行する前記メモリアクセストランザクションの属する論理区画にしたがって決められるアドレスオフセット値を加算するアドレス修飾部と、An address offset value determined according to the logical partition to which the memory access transaction issued by the IO device belongs is added to the destination address of the memory access transaction in the chip set obtained from the IO device via the IO interface. An address modifier to
前記宛先アドレスへの加算結果が、前記IOデバイスが発行する前記メモリアクセストランザクションの属する論理区画に割り付けられたメモリアドレス領域内のメモリアドレスを示しているか、前記加算結果を確認し、かつ前記確認結果が容認されたとき、宛先アドレスとして加算結果を含んだチップセット内のメモリアクセストランザクションの発行を許可するアクセス先判定回路と、Whether the addition result to the destination address indicates a memory address in a memory address area allocated to the logical partition to which the memory access transaction issued by the IO device belongs, is confirmed, and the confirmation result Is accepted, an access destination determination circuit that permits issuance of a memory access transaction in the chipset that includes the addition result as a destination address;
前記加算結果が否認されたとき、チップセット内のメモリアクセストランザクションの宛先アドレスを、いずれの論理区画にも割り付けられていない特定のメモリ領域内のメモリアドレスに置き換えるアドレス置換手段とを有することを特徴とする情報処理装置のシステム部品。Address replacement means for replacing a destination address of a memory access transaction in the chipset with a memory address in a specific memory area not assigned to any logical partition when the addition result is rejected. System parts of information processing equipment.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007106655A JP4656080B2 (en) | 2007-04-16 | 2007-04-16 | System parts for information processing equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007106655A JP4656080B2 (en) | 2007-04-16 | 2007-04-16 | System parts for information processing equipment |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003005241A Division JP4123942B2 (en) | 2003-01-14 | 2003-01-14 | Information processing device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010156321A Division JP5201176B2 (en) | 2010-07-09 | 2010-07-09 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007265421A JP2007265421A (en) | 2007-10-11 |
JP4656080B2 true JP4656080B2 (en) | 2011-03-23 |
Family
ID=38638279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007106655A Expired - Fee Related JP4656080B2 (en) | 2007-04-16 | 2007-04-16 | System parts for information processing equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4656080B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61160160A (en) * | 1985-01-09 | 1986-07-19 | Hitachi Ltd | Addressing control device of virtual computer |
JPH11353244A (en) * | 1998-05-04 | 1999-12-24 | Internatl Business Mach Corp <Ibm> | Method and device for extended error processing for i/o loading/storing operation on pci device by illegal parity or 0-byte enabling |
JP2000315197A (en) * | 1999-03-31 | 2000-11-14 | Internatl Business Mach Corp <Ibm> | Pci slot controller equipped with dynamic constitution for section system |
JP2002304364A (en) * | 2001-03-01 | 2002-10-18 | Internatl Business Mach Corp <Ibm> | Method and device for implementing logical partition of pci input/output slot |
-
2007
- 2007-04-16 JP JP2007106655A patent/JP4656080B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61160160A (en) * | 1985-01-09 | 1986-07-19 | Hitachi Ltd | Addressing control device of virtual computer |
JPH11353244A (en) * | 1998-05-04 | 1999-12-24 | Internatl Business Mach Corp <Ibm> | Method and device for extended error processing for i/o loading/storing operation on pci device by illegal parity or 0-byte enabling |
JP2000315197A (en) * | 1999-03-31 | 2000-11-14 | Internatl Business Mach Corp <Ibm> | Pci slot controller equipped with dynamic constitution for section system |
JP2002304364A (en) * | 2001-03-01 | 2002-10-18 | Internatl Business Mach Corp <Ibm> | Method and device for implementing logical partition of pci input/output slot |
Also Published As
Publication number | Publication date |
---|---|
JP2007265421A (en) | 2007-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4123942B2 (en) | Information processing device | |
JP5585844B2 (en) | Virtual computer control method and computer | |
US9384060B2 (en) | Dynamic allocation and assignment of virtual functions within fabric | |
US7644252B2 (en) | Multi-processor system and memory accessing method | |
US8201167B2 (en) | On-demand allocation of virtual asynchronous services interfaces | |
US20090276773A1 (en) | Multi-Root I/O Virtualization Using Separate Management Facilities of Multiple Logical Partitions | |
US8386679B2 (en) | Dynamic allocation of a direct memory address window | |
US20080147891A1 (en) | I/o adapter lpar isolation in a hypertransport environment | |
KR20040102074A (en) | Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system | |
KR20070100367A (en) | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another | |
US9075644B2 (en) | Secure recursive virtualization | |
US10289564B2 (en) | Computer and memory region management method | |
US20170277573A1 (en) | Multifunction option virtualization for single root i/o virtualization | |
US9483782B2 (en) | Automating capacity upgrade on demand | |
US20100100892A1 (en) | Managing hosted virtualized operating system environments | |
US10990436B2 (en) | System and method to handle I/O page faults in an I/O memory management unit | |
US9804877B2 (en) | Reset of single root PCI manager and physical functions within a fabric | |
JP4692912B2 (en) | Resource allocation system and resource allocation method | |
US20050235083A1 (en) | Computer system | |
US7500051B2 (en) | Migration of partitioned persistent disk cache from one host to another | |
US20060010277A1 (en) | Isolation of input/output adapter interrupt domains | |
US8261128B2 (en) | Selection of a domain of a configuration access | |
JP4656080B2 (en) | System parts for information processing equipment | |
JP5201176B2 (en) | Information processing device | |
US20190227942A1 (en) | System and Method to Handle I/O Page Faults in an I/O Memory Management Unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100709 |
|
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: 20101130 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101213 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |