(57)【要約】【課題】複数のコントローラを実装させるチップ（半導体装置）の回路規模をより抑えられるようにする技術を提供する。【解決手段】半導体装置１０には、ＭＢコントローラ３５、３つのＩＯコントローラ３６−１〜３６−３、及び実コントローラ３１が実装されている。実コントローラ３１に搭載されたＣＰＵ３１ａは、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６−１〜３６−３にそれぞれ搭載されたＣＰＵ３５ａ、３６ａが実行すべき処理を実行する。そのような実コントローラ３１を実装させたことにより、ＣＰＵ３５ａ、或いは３６ａを搭載させることなく、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６−１〜３６−３を実現させる。【選択図】図３
2014095997.tif 000002
【特許請求の範囲】
【請求項１】
第１の外部装置との入出力を行う第１の入出力部を備える第１の入出力装置と、
第２の外部装置との入出力を行う第２の入出力部を備える第２の入出力装置と、
前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行う処理部を備える制御装置を有することを特徴とする情報処理装置。
【請求項２】
第１の外部装置との入出力を行う第１の入出力部を備える第１の入出力装置と、第２の外部装置との入出力を行う第２の入出力部を備える第２の入出力装置とに接続される制御装置において、
前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行う処理部を有することを特徴とする制御装置。
【請求項３】
情報処理装置の制御方法において、
前記情報処理装置が有する第１の入出力装置が備える第１の入出力部が、第１の外部装置との入出力を行い、
前記情報処理装置が有する第２の入出力装置が備える第２の入出力部が、第２の外部装置との入出力を行い、
前記情報処理装置が有する制御装置が、前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行うことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置には、データの送受信を行い、そのデータに応じた処理を行う装置や情報処理装置全体を制御するための制御装置が複数、存在する。その装置とは、例えば、ハードディスク装置等のＩＯ（Input/Output）装置といった別の外部装置と接続するための各種ＩＯＣ（IO Controller）、ＭＢＣ（Mother Board Controller）、及びコンピュータ本体のＣＰＵ（以下、他のＣＰＵと区別をつけるために「本体ＣＰＵ」という）（Central Processing Unit）等である。以降、このような制御装置は「コントローラ」と総称する。ＭＢＣは、マザーボードの制御、例えばファン等の冷却装置による冷却、本体ＣＰＵのオン／オフ、等を行うコントローラである。
【０００３】
近年、半導体技術の進歩により、より多くの機能を１チップ（半導体装置）上に実装可能になっている。このことから、複数のコントローラを１チップ化することが考えられる。複数のコントローラを１チップ上に実装することにより、情報処理装置の小型化、及びその製造コストの低減、等の利点が得られる。
【０００４】
上記のような制御装置としてのコントローラは、データに応じた処理を行うために、プログラム（ファームウェア）を実行するＣＰＵ等の演算処理装置を備えている。そのため、複数のコントローラを１チップ上に実装する場合、実装するコントローラの数に応じて、回路規模が大きくなる。回路規模が大きくなるほど、製造コストが上昇する、消費電力が大きくなる、製造上の歩留まりを高くするのが困難となる、といった不具合がある。このことから、複数のコントローラを１チップ上に実装する場合、回路規模をより抑えることが重要と思われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２０８３２１号公報
【特許文献２】特開２００９−１１０５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の１側面は、複数のコントローラを実装させるチップ（半導体装置）の回路規模をより抑えられるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明を適用した１システムでは、第１の外部装置との入出力を行う第１の入出力部を備える第１の入出力装置と、第２の外部装置との入出力を行う第２の入出力部を備える第２の入出力装置と、第１の入出力部を制御する第１の処理と、第２の入出力部を制御する第２の処理とを行う処理部を備える制御装置を有する。
【発明の効果】
【０００８】
本発明を適用した場合には、複数のコントローラを実装させるチップ（半導体装置）の回路規模をより抑えることができるとともに、情報処理装置全体の制御効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態による情報処理装置のハードウェア構成例を説明する図である。
【図２】各ＶＭに割り当てられた資源を説明する図である。
【図３】図１に表すハードウェア構成によって実現される機能構成、及びその機能構成の実現方法を説明する図である。
【図４】他の実施形態による情報処理装置のハードウェア構成例を説明する図である。
【図５Ａ】他の実施形態で各ＶＭに割り当てられた資源を説明する図である。
【図５Ｂ】他の実施形態で各ＶＭに割り当てられた資源を説明する図である（続き）。
【図６】図４に表すハードウェア構成によって実現される機能構成、及びその機能構成の実現方法を説明する図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理装置のハードウェア構成例を説明する図である。本実施形態による情報処理装置は、例えばサーバである。この情報処理装置は、図１に表すように、本体ＣＰＵ１及びコントローラ用ＣＰＵ４、ＤＩＭＭ（Dual Inline Memory Module）群２、チップセット（Chip set）３、インターフェイス部５、本体ＣＰＵファーム用ＲＯＭ（Read Only Memory）６及びコントーラファーム用ＲＯＭ８、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）７を備えている。
【００１１】
上記本体ＣＰＵ１、及びコントローラ用ＣＰＵ４、チップセット３、並びにインターフェイス部５は、１つの半導体装置（チップ）１０上に実装されている。この半導体装置１０は、本実施形態による半導体装置である。本実施形態による情報処理装置は、この半導体装置１０を用いることで実現されている。
【００１２】
上記ＤＩＭＭ群２は、本体ＣＰＵ１が処理に用いる主記憶装置であり、複数のＤＩＭＭ２ａが含まれる。本体ＣＰＵ１には、ＤＩＭＭ２ａにアクセスするための２つのメモリ・コントローラ１１（１１−１、１１−２）、及び２つのＣＰＵコア（Core）１２（１２−１、１２−２）が搭載されている。
【００１３】
チップセット３は、本体ＣＰＵ１とインターフェイス部５,ＤＩＭＭ２およびＲＯＭ８の間、及びインターフェイス部５と本体ＣＰＵ１、ＤＩＭＭ２の間のデータの入出力を管理する。ＲＯＭ８には、本体ＣＰＵ１の各ＣＰＵコア１２が実行するファームウェア（以降「本体ＣＰＵファームウェア」と表記）が格納されている。この本体ＣＰＵファームウェアは、ＣＰＵコア１２の制御により、チップセット３を介して読み出され本体ＣＰＵ１により実行される。また、本体ＣＰＵファームウェアは、ＣＰＵコア１２の制御によりＤＩＭＭ群２にコピーしてから実行することも可能である。
【００１４】
インターフェイス部５は、上記チップセット３、コントローラ用ＣＰＵ４、ＲＯＭ６、ＳＤＲＡＭ７、及び半導体装置１０の外部に設けられたインターフェイス、或いは信号線と接続されている。それにより、インターフェイス部５は、本体ＣＰＵ１からコントローラＣＰＵ4へのデータ転送処理依頼及びコントローラ用ＣＰＵ４からのデータ転送指令により外部とデータを送受信するためのインターフェイスを提供する。このインターフェイス部５は、図１に表すように、システム・コントローラ５１、メモリ・アクセス・コントローラ（ＭＡＣ）５２、複数のデータ転送部５３、５４（５４−１〜５４−３）を備えている。
【００１５】
システム・コントローラ５１は、コントローラ用ＣＰＵ４、各データ転送部５３、５４（５４−１〜５４−３）、及びＭＡＣ５２と接続され、コントローラ用ＣＰＵ４と各データ転送部５３、５４（５４−１〜５４−３）の間、及びコントローラ用ＣＰＵ４とＭＡＣ５２の間を接続する。ＭＡＣ５２は、システム・コントローラ５１を介したＣＰＵ４の指示に従って、ＲＯＭ６、或いはＳＤＲＡＭ７にアクセスする。
【００１６】
サーバのような情報処理装置には、自情報処理装置の状態の監視、電源のオン／オフ等を含む各種管理上の処理を行う処理装置が搭載されるのが普通である。この処理装置は、外部管理装置と通信を行い、その管理装置からの指示に従って動作する。この処理装置は、ＭＢ（Mother Board）コントローラ、或いはＢＭＣ（Baseboard Management Controller）等と呼ばれる。ここでは以降、この処理装置を「ＭＢコントローラ」と表記する。
【００１７】
データ転送部５３は、上記外部管理装置との通信、及び自情報処理装置の制御を可能とさせる通信装置である。そのため、このデータ転送部５３には、制御インターフェイス（図１中「Board制御インターフェイス」と表記）、及びＩＯインターフェイス（図１中「ＭＢ  ＩＯインターフェイス」と表記）が接続されている。
【００１８】
制御インターフェイスは、自情報処理装置の制御のための制御信号の送受信用である。その制御インターフェイスとしては、例えばＩＩＣ（Inter-Integrated Circuit）バス、ＧＰＩＯ（General Purpose Input/Output）、等が挙げられる。ＩＩＣは、例えばＣＰＵ１との通信に用いられる。ＧＰＩＯは、例えば複数、存在し、そのうちの１つはＣＰＵ１への割り込み信号の出力に用いられる。他に存在するＧＰＩＯは、例えばファン等の冷却装置の制御に用いられる。このような制御インターフェイスは周知であることから、図１には表していない。
【００１９】
ＩＯインターフェイスは、外部とのデータの入出力用である。そのＩＯインターフェイスとしては、例えば上記外部管理装置との通信に用いられるＬＡＮ（Local Area Network）と接続するためのコネクタ、ＳＤ（Secure Digital）カード等のＩＯ装置と接続するための１つ以上のコネクタ、等が挙げられる。
【００２０】
データ転送部５３は、システム・コントローラ５を介して接続されるＣＰＵ４に受信したデータを送出し、そのＣＰＵ４から指示されたデータを送信する。それにより、ＣＰＵ４は、ＭＢコントローラを実現させるための処理を行う。
【００２１】
データ転送部５３は、制御レジスタ群５３ａを備えている。この制御レジスタ群５３ａは、例えば割り当てられたコンフィグレーション空間を表す情報の格納に用いられる。このコンフィグレーション空間を表す情報は、各データ転送部５４（５４−１〜５４−３）の制御レジスタ群５４ａにも格納される。それぞれ割り当てられるコンフィグレーション空間は、互いに異なっている。
【００２２】
各データ転送部５４（５４−１〜５４−３）は、１つ以上のＩＯライン（信号線）と接続されている。このＩＯラインは、例えばＩＯ装置との接続用のコネクタと接続されている。それにより、各データ転送部５４は、接続されたＩＯ装置とＣＰＵ１間のデータ転送を中継する。各データ転送部５４とシステム・コントローラ５１を介して接続されたＣＰＵ４は、データ転送部５４毎に、データ転送を中継するための処理を行う。
【００２３】
上記のようなことから、コントローラ用ＣＰＵ４は、データ転送部５３（ＭＢコントローラ）、及び各データ転送部５４をそれぞれ動作させるための処理を行う。本実施形態では、コントローラ用ＣＰＵ４は、複数のＶＭ（Virtual Machine）を作成し、各処理をそれぞれ別のＶＭに行わせるようにしている。これは、ＶＭには、別のＶＭに発生した障害等の悪影響が及ばない、各処理のためのプログラム（以降「ファームウェア」と表記）を実行するプラットホームの違いを吸収することが可能である、といった利点があるためである。それにより、各ファームウェアを異なるＶＭ上で実行させた場合、そのファームウェアをアップデートすることなく、より安定的に実行させることができる。
【００２４】
そのコントローラ用ＣＰＵ４は、図１に表すように、以下の各種レジスタ、及び各種レジスタ群４１〜４８を備えている。
プロセッサ・ステート・レジスタ群４１は、自コントローラ用ＣＰＵ４の状態を表す各種情報の格納に用いられる。各種情報には、動作モードが含まれる。この動作モードは、自コントローラ用ＣＰＵ４がハイパーバイザ（ＶＭモニタ）、及びゲストＯＳ（ＶＭ）のうちの何れで動作するかを表す情報である。動作モードによって、アクセス可能なレジスタは制限される。
【００２５】
プログラム・カウンタ４２は、次に実行する命令のアドレスを指定するレジスタである。
ホスト制御レジスタ群４３は、各ゲストＯＳの仮想アドレス空間と物理アドレス空間との間のアドレス変換のためのマッピングに用いられる。
【００２６】
汎用レジスタ群４４は、命令の実行に汎用的に用いられる。汎用レジスタ群４４には、複数のＧＲ（General purpose Register）、及び複数のＦＲ（Floating point Register）、等が存在する。
【００２７】
他ＣＰＵ制御レジスタ群４５は、他のＣＰＵ、或いは他のＣＰＵコアと連携するために用いられる。
ホストＲＯＭゲスト制御レジスタ群４６は、ＲＯＭ６における各ゲストＯＳの仮想アドレス空間と物理アドレス空間との間のアドレス変換を可能にさせるマッピングに用いられる。
【００２８】
ホスト・タイマ４７は、各ゲストＯＳへの時間資源の割り当てに用いられる。ハイパーバイザは、ゲストＯＳに制御を移行させる場合に、割り当てた時間（タイムスライス値）をホスト・タイマ４７にセットする。ホスト・タイマ４７は、セットされた時間が経過すると、その旨を割り込みにより通知する。
【００２９】
ホストＳＤＲＡＭ制御レジスタ群４８は、ＳＤＲＡＭ７における各ゲストＯＳの仮想アドレス空間と物理アドレス空間との間のアドレス変換のためのマッピングに用いられる。
【００３０】
図２は、各ＶＭに割り当てられた資源を説明する図である。
図２に表すように、ＲＯＭ６には、ＭＢコントローラとして動作させるためのＭＢＣファームウェア６０ａ、及び３つのＩＯコントローラ用のファームウェア（図２中「ＩＯＣ＃１  ＦｉｒｍＷａｒｅ」〜「ＩＯＣ＃３  ＦｉｒｍＷａｒｅ」と表記）６１ａ〜６３ａが格納されている。また、ＲＯＭ６には、ハイパーバイザ６４ａが格納されている。
【００３１】
上記のように、インターフェイス部５は、外部とデータの送受信を行う４つのデータ転送部５３、５４（５４−１〜５４−３）を備えている。本実施形態では、ＭＢコントローラ（データ転送部５３）、及び各データ転送部５４の動作に、それぞれ異なるＶＭを用いている。このことから、ＭＢＣファームウェア６０ａ、及び３つのＩＯコントローラ用のファームウェア６１ａ〜６３ａはそれぞれ１つのＶＭに割り当てられる。
【００３２】
ＭＢＣファームウェア６０ａ、及び３つのＩＯコントローラ用のファームウェア６１ａ〜６３ａは、同じコントローラ用ＣＰＵ４により実行される。ＭＢＣファームウェア６０ａが実行されるＶＭでは、ＲＯＭ６中のBMC Firmwareに割り当てられた領域（図２中「Ｇｕｅｓｔ＃０  ＲＯＭ」と表記）６０、ＳＤＲＡＭ７上で割り当てられた領域（図２中「Ｇｕｅｓｔ＃０  ＳＤＲＡＭ」と表記）７０、及びデータ転送部５３の制御レジスタ群５３ａが資源９０として割り当てられている。資源９０として表す各領域６０及び７０、並びに制御レジスタ群５３ａはＭＢＣファームウェア６０ａが実行されるＶＭの物理アドレス空間を構成している。これは、３つのＩＯコントローラ用のファームウェア６１ａ〜６３ａがそれぞれ実行されるＶＭでも同様である。
【００３３】
ＭＢＣファームウェア６０ａは、領域６０内に格納されている。そのため、ＭＢＣファームウェア６０ａが動作するＶＭには、領域６０が割り当てられている。３つのＩＯコントローラ用のファームウェア６１ａ〜６３ａも、それぞれ動作するＶＭに割り当てられた領域６１〜６３内に格納されている。
【００３４】
ハイパーバイザ６４ａに割り当てられた資源９４には、各ＶＭに割り当てられた資源９０〜９３が含まれる。この資源９４には、他に、ＲＯＭ６のハイパーバイザ６４ａを含む領域（図２中「ＨＰＶ  ＲＯＭ」と表記）６４、ＳＤＲＡＭ７上に割り当てられた専用の領域（図２中「ＨＰＶ  ＳＤＲＡＭ」と表記）７４が含まれている。
【００３５】
図３は、図１に表すハードウェア構成によって実現される機能構成、及びその機能構成の実現方法を説明する図である。
上記チップセット３は、外部に設けられる複数のＩＯ拡張スロット３０１との接続を可能にする。各データ転送部５３、５４は、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６（３６−１〜３６−３）のうちの何れかとしてデータの送受信を行うインターフェイスとして機能する。それにより、半導体装置１０は、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６が実装されている。
【００３６】
ＭＢコントローラ３５には、電力を供給するＰＳＵ（Power Supply Unit）３０３が複数、接続され、ＭＢコントローラ３５は、複数のファン３０２を制御する。ファン３０２の制御は、制御インターフェイスの例えばＧＰＩＯを用いて行われる。
【００３７】
ＭＢコントローラ３５、及び各ＩＯコントローラ３６のような外部とデータの送受信を行う装置には、従来、ファームウェアを実行するＣＰＵ（図３中「ｃｏｒｅ」と表記）３５ａ、３６ａがそれぞれ搭載される。そのような装置には、実行すべきファームウェアを実行できるようにするために、そのファームウェアを格納した記憶装置を搭載させるか、或いはその記憶装置を個別に接続させなければならない。
【００３８】
これに対し、本実施形態では、ＭＢコントローラ３５、及び各ＩＯコントローラ３６にＣＰＵ３５ａ、３６ａは搭載させずに、共用のコントローラ用ＣＰＵ４を別に搭載させている。図３に表す制御装置としての実コントローラ（図３中「実ｃｔｌ」と表記）３１は、ＭＢコントローラ３５、及び各ＩＯコントローラ３６に従来、搭載されるＣＰＵ３５ａ、３６ａの処理を実行するものである。図１に表すハードウェア構成では、この実コントローラ３１は、ＣＰＵ４、システム・コントローラ５１、及びＭＡＣ５２により実現される。それにより、ＲＯＭ６、及びＳＤＲＡＭ７は実コントローラ３１に接続されている。実コントローラ３１のＣＰＵ（図３中「ｃｏｒｅ」と表記）３１ａは、コントローラ用ＣＰＵ４に相当する。
【００３９】
ＭＢコントローラ３５、及び各ＩＯコントローラ３６に従来、搭載されるＣＰＵ３５ａ、或いは３６ａ等を実コントローラ３１に置き換えた場合、全体の回路規模はより小さくさせることができる。それにより、半導体装置１０の製造コストはより抑えられるようになる。回路規模をより小さくできることから、消費電力もより抑えられるようになる。
【００４０】
また、ファームウェア６０ａ〜６３ａは、それぞれ異なる記憶装置に格納させる必要はなくなる。図１、及び図３に表すように、１つのＲＯＭ６に全てのファームウェア６０ａ〜６３ａを格納することが可能となる。このことから、部品点数の低減を通して、情報処理装置全体の製造コストもより抑えることができる。
【００４１】
なお、ファームウェア６０ａ〜６３ａがそれぞれ動作する各ＶＭへの時間資源の割り当ては、予め定められた設計に従って行わせれば良い。しかし、各ＩＯコントローラ３６に接続させるＩＯ装置の数は、情報処理装置の使い方等によって異なるのが普通である。このことから、各ＩＯコントローラ３６（各データ転送部５４）に接続されたＩＯ装置の数、或いは処理の負荷の重さに応じて、ファームウェア６０ａ〜６３ａがそれぞれ動作する各ＶＭへの時間資源の割り当てを変更しても良い。そのような変更を行った場合、時間資源をより適切に各ＶＭに割り当てられるようになる。
【００４２】
以降は、他の実施形態について具体的に説明する。
図４は、他の実施形態による情報処理装置のハードウェア構成例を説明する図である。図５Ａ及び図５Ｂは、他の実施形態で各ＶＭに割り当てられた資源を説明する図である。図６は、図４に表すハードウェア構成によって実現される機能構成、及びその機能構成の実現方法を説明する図である。
【００４３】
図４〜図６において、図１〜図３のうちの何れかに表した構成要素と同じ、或いは基本的に同じと見なせる構成要素には同一の符号を付している。それにより、図１〜図３に表す実施形態と異なる部分に着目する形で説明を行うこととする。
【００４４】
この他の実施形態では、図６に表すように、ＭＢコントローラ３５、及び各ＩＯコントローラ３６に従来、搭載されるＣＰＵ３５ａ、或いは３６ａの処理を全て本体ＣＰＵ１に行わせるようにしている。１２０は、本体ＣＰＵ１を資源とするＶＭを表している。
【００４５】
ＣＰＵ３５ａ、及び３６ａの処理を全て本体ＣＰＵ１に行わせるようにした場合、実コントローラ３１を設けなくとも済むことから、半導体装置１０、及びその半導体装置１０を搭載した情報処理装置の製造コスト、及び消費電力は更に抑えることができる。また、ＳＤＲＡＭ７の代わりにＤＩＭＭ群２を利用でき、ＲＯＭ８をＲＯＭ６の代わりとして用いることができることから、部品点数もより低減できる。このことからも、情報処理装置の製造コストはより抑えられる。
【００４６】
他の実施形態では、図４に表すように、４つのＣＰＵコア１２（１２−１〜１２−４）を備えた本体ＣＰＵ１が採用されている。各コア１２には、コントローラ用ＣＰＵ４と同様に、各種レジスタ、及び各種レジスタ群１２１〜１２８を備えている。各種レジスタ、及び各種レジスタ群１２１〜１２８はコントローラ用ＣＰＵ４の各種レジスタ、及び各種レジスタ群４１〜４８と基本的に同じであるため、説明は省略する。
【００４７】
他の実施形態におけるインターフェイス部５は、図１に表す構成から、本体制御部５５が追加されている。この本体制御部５５は、ＣＰＵコア１２間の連携を可能にさせる。他のデータ転送部５３、及び５４と同様に、本体制御部５５は制御レジスタ群５５ａを備えている。
【００４８】
上記のように、本体ＣＰＵ１は、各ＶＭにより、各データ転送部５３、及び５４のための処理を行う。そのため、本体ＣＰＵ１の各ＣＰＵコア１２はチップセット３ではなく、システム・コントローラ５１に接続されている。図４において、各データ転送部５４とシステム・コントローラ５１を２つの線で結んでいるのは、各データ転送部５４では、そのデータ転送部５４自身のための処理を行うものと、そのデータ転送部５４との間でデータを送受信するものが共に本体ＣＰＵ１であるためである。このようなことから、図６に表すチップセット３は、他の実施形態では、そのチップセット３自体は備えていない。そのチップセット３は、インターフェイス部５、より具体的にはシステム・コントローラ５１、及びＭＡＣ５２により代替されている。
【００４９】
図３及び図６に表すように、他の実施形態では、ＲＯＭ６、及びＳＤＲＡＭ７は省かれている。このことから、ＭＡＣ５２にはＤＩＭＭ群２、及びＲＯＭ８が接続されている。このＭＡｃ５２は、図６に表すチップセット３の構成要素の一つである。そのため、図６では、チップセット３にＲＯＭ８を接続させている。ＤＩＭＭ群２をＣＰＵ１に接続させているのは、ＭＡＣ５２は図１に表すメモリ・コントローラ１１として機能するからである。ＤＩＭＭ群２は、図１と同じく、ＣＰＵ１自体に接続させても良い。
【００５０】
本体ＣＰＵ１に搭載された各ＣＰＵコア１２は、それぞれ１つのＣＰＵとして扱うことができる。このことから、例えば図５に表すように、各ＶＭに資源が割り当てられる。
図５に表すように、ＲＯＭ８には、図１に表す構成の場合にＣＰＵ１が実行する上記ＣＰＵファームウェア（図５中「本体ファームウェア」と表記）８５ａが格納されている。ＲＯＭ８には、ＣＰＵファームウェア８５ａと共に動作する他のプログラム（図５中「本体Ｓｏｆｔｗａｒｅ」と表記）が格納されていても良い。ここでは、そのような他のプログラムの存在については無視することとする。
【００５１】
他の実施形態では、ＲＯＭ８には更に、図１に表すＲＯＭ６に格納されていたファームウェア６０ａ〜６３ａ、及びハイパーバイザ６４ａが格納されている。各ファームウェア６０ａ〜６３ａ、及び８５ａはそれぞれ異なるＶＭ上で動作する。
【００５２】
図５では、各ファームウェア６０ａ〜６３ａが動作するＶＭにそれぞれ１つのＣＰＵコア１２−１〜１２−４が資源として割り当てられていることを表している。ハイパーバイザ６４ａ及びＣＰＵファームウェア８５ａが動作する各ＶＭには、全てのＣＰＵコア１２−１〜１２−４が資源として割り当てられている。
【００５３】
ＭＢＣファームウェア６０ａが動作するＶＭでは、物理アドレス空間の資源９０として、ＲＯＭ８に割り当てられた領域（図５中「Ｇｕｅｓｔ＃０  ＲＯＭ」と表記）８０、ＤＩＭＭ群２で割り当てられた領域（図５中「Ｇｕｅｓｔ＃０  ＳＤＲＡＭ」と表記）２０、及びデータ転送部５３の制御レジスタ群５３ａが割り当てられている。これは、３つのＩＯコントローラ用のファームウェア６１ａ〜６３ａ、及びＣＰＵファームウェア８５ａがそれぞれ動作するＶＭでも同様である。
【００５４】
ハイパーバイザ６４ａに割り当てられた資源９４には、各ＶＭに割り当てられた資源９０〜９３、及び９５が含まれる。この資源９４には、他に、ＲＯＭ８のハイパーバイザ６４ａを含む領域（図５中「ＨＰＶ  ＲＯＭ」と表記）８４、ＤＩＭＭ群２上に割り当てられた専用の領域（図５中「ＨＰＶ  ＳＤＲＡＭ」と表記）２４が含まれている。
【００５５】
図６では、２つのＣＰＵコア１２のうちの１つを資源とするＶＭ１２０が、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６−１〜３６−３の処理をそれぞれ行うように表している。しかし、上記のような割り当てにより、実際には少なくとも５つのＶＭが作成される。そうであるにも係わらず、図６のように表したのは、ＭＢコントローラ３５、及び３つのＩＯコントローラ３６−１〜３６−３の処理を全てＣＰＵ１に行わせている点を明確にすることを重視したためである。
【００５６】
なお、上記実施形態では、データを送受信し、送受信するデータに応じた処理を行う装置として、ＭＢコントローラ３５、及びＩＯコントローラ３６を半導体装置１０上に実装させているが、半導体装置１０に実装する装置は、この組み合わせに限定されない。プログラムを実行するＣＰＵが搭載される装置であれば、その種類、及び数は特に限定されない。装置の数が多くなった場合、共用させるＣＰＵ等の演算処理装置は複数にしても良い。その演算処理装置は、複数の装置毎に１つ割り当てるようにしても良い。
【００５７】
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１の外部装置との入出力を行う第１の入出力部を備える第１の入出力装置と、
第２の外部装置との入出力を行う第２の入出力部を備える第２の入出力装置と、
前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行う処理部を備える制御装置を有することを特徴とする情報処理装置。
（付記２）
前記情報処理装置はさらに、
前記制御装置に接続され、前記第1の処理を前記処理部に実行させる第1のプログラムと、前記第２の処理を前記処理部に実行させる第２のプログラムとを記憶する記憶部を有することを特徴とする付記１記載の情報処理装置。
（付記３）
前記情報処理装置はさらに、
前記処理部を仮想計算機により実現することを特徴とする付記１又は２記載の情報処理装置。
（付記４）
第１の外部装置との入出力を行う第１の入出力部を備える第１の入出力装置と、第２の外部装置との入出力を行う第２の入出力部を備える第２の入出力装置とに接続される制御装置において、
前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行う処理部を有することを特徴とする制御装置。
（付記５）
情報処理装置の制御方法において、
前記情報処理装置が有する第１の入出力装置が備える第１の入出力部が、第１の外部装置との入出力を行い、
前記情報処理装置が有する第２の入出力装置が備える第２の入出力部が、第２の外部装置との入出力を行い、
前記情報処理装置が有する制御装置が、前記第１の入出力部を制御する第１の処理と、前記第２の入出力部を制御する第２の処理とを行うことを特徴とする情報処理装置の制御方法。
【符号の説明】
【００５８】
１    本体ＣＰＵ
２    ＤＩＭＭ群
２ａ  ＤＩＭＭ
３    チップセット
４    コントローラ用ＣＰＵ
５    インターフェイス部
６、８    ＲＯＭ
７    ＳＤＲＡＭ
１１、１１−１、１１−２    メモリ・コントローラ
１２、１２−１〜１２−４    ＣＰＵコア
３１    実コントローラ
３５    ＭＢコントローラ
３６    ＩＯコントローラ
５１    システム・コントローラ
５２    ＭＡＣ
５３、５４、５４−１〜５４−３    データ転送部
６０ａ    ＭＢファームウェア
６１ａ〜６３ａ    ファームウェア
６４ａ    ハイパーバイザ
８５ａ    本体ファームウェア
【図１】
2014095997.tif 000003
【図２】
2014095997.tif 000004
【図５Ａ】
2014095997.tif 000005
【図５Ｂ】
2014095997.tif 000006
【図３】
2014095997.tif 000007
【図４】
2014095997.tif 000008
【図６】
2014095997.tif 000009