(57)【要約】【課題】ファームウェアの更新中でも通信を行い、かつ通信に関する情報をリカバリーすることができる変換ユニット及びＫＶＭスイッチ【解決手段】ファームウェアを用いて、サーバ１０、及びサーバ１０を制御するための入出力装置１２と信号の変換を伴う通信を行う第１制御部２０と、ファームウェアを用いて、サーバ１０及び入出力装置１２と、信号の変換を伴う通信を行う第２制御部３０と、を具備し、第１制御部２０がファームウェアの更新を行っている間、第１制御部２０はサーバ１０及び入出力装置１２と通信を行わず、かつ第２制御部３０はサーバ１０及び入出力装置１２と通信を行い、第１制御部２０のファームウェアの更新が終了した後、第２制御部３０は第１制御部２０のファームウェアの更新中に行われた通信において送受信された情報を、第１制御部２０に送信する変換ユニット、及びＫＶＭスイッチ。【選択図】図２
2012043311.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを用いて、情報処理装置、及び前記情報処理装置を制御するための入出力装置と信号の変換を伴う通信を行う第１制御部と、
前記ファームウェアを用いて、前記情報処理装置及び前記入出力装置と、信号の変換を伴う通信を行う第２制御部と、を具備し、
前記第１制御部が前記ファームウェアの更新を行っている間、前記第１制御部は前記情報処理装置及び前記入出力装置と通信を行わず、かつ前記第２制御部は前記情報処理装置及び前記入出力装置と通信を行い、
前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は前記第１制御部のファームウェアの更新中に行われた通信において送受信された情報を、前記第１制御部に送信することを特徴とする変換ユニット。
【請求項２】
前記第１制御部と前記情報処理装置との通信、及び前記第１制御部と前記入出力装置との通信の少なくとも一方を遮断する遮断部を備え、
前記第１制御部が前記ファームウェアの更新を行っている間、前記遮断部による遮断が行われることにより、前記第１制御部は前記情報処理装置及び前記入出力装置との通信の前記少なくとも一方を行わないことを特徴とする請求項１記載の変換ユニット。
【請求項３】
２つの前記遮断部の各々が、前記第１制御部と前記情報処理装置との通信、及び前記第１制御部と前記入出力装置との通信の各々を遮断することを特徴とする請求項２記載の変換ユニット。
【請求項４】
前記第１制御部は、前記第２制御部を介して、前記情報処理装置との通信及び前記入出力装置との通信の一方を行い、
前記情報処理装置との通信及び前記入出力装置との通信の前記一方は、前記遮断部により遮断されず、かつ前記第２制御部により遮断され、
前記情報処理装置との通信及び前記入出力装置との通信の他方は、前記遮断部により遮断されることを特徴とする請求項２記載の変換ユニット。
【請求項５】
前記第１制御部及び前記第２制御部は、前記ファームウェアを用いて、前記情報処理装置と前記入出力装置との間で、エミュレーションを行うことを特徴とする請求項１から４いずれか一項記載の変換ユニット。
【請求項６】
前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は、前記情報処理装置及び前記入出力装置の各々の設定に関する情報を、前記第１制御部に送信することを特徴とする請求項１から５いずれか一項記載の変換ユニット。
【請求項７】
前記第１制御部は、前記ファームウェアの更新前に、前記ファームウェアの更新を行うための新しいファームウェアを前記第２制御部に送信し、
前記第２制御部は、前記第１制御部により送信された前記新しいファームウェアのエラー検出処理を行った後、前記第１制御部に前記新しいファームウェアを送信し、
前記第１制御部は、前記第２制御部により送信された前記新しいファームウェアを用いて更新を行うことを特徴とする請求項１から６いずれか一項記載の変換ユニット。
【請求項８】
ファームウェアを用いて、情報処理装置及び前記情報処理装置を制御するための入出力装置と信号の変換を伴う通信を行う第１制御部と、前記ファームウェアを用いて、前記情報処理装置及び前記入出力装置と信号の変換を伴う通信を行う第２制御部と、を有する変換ユニットと、
複数の前記変換ユニットから少なくとも１つの変換ユニットを選択し、複数の前記情報処理装置及び複数の前記入出力装置のいずれか一方から、少なくとも１つの前記情報処理装置及び少なくとも１つの前記入出力装置のいずれか一方を選択し、前記少なくとも１つの変換ユニットと、前記少なくとも１つの情報処理装置及び前記少なくとも１つの入出力装置の前記一方との通信を仲介するメインユニットと、
前記第１制御部が前記ファームウェアの更新を行っている間、前記第１制御部は前記情報処理装置及び前記入出力装置と通信を行わず、かつ前記第２制御部は前記情報処理装置及び前記入出力装置の他方と通信を行い、
前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は前記第１制御部のファームウェアの更新中に行われた通信に関する情報を、前記第１制御部に送信することを特徴とするＫＶＭスイッチ。
【請求項９】
前記第１制御部が前記ファームウェアの更新を行っている間、前記メインユニットは、前記第１制御部と前記少なくとも１つの情報処理装置及び前記少なくとも１つの入出力装置の前記一方との通信を遮断することを特徴とする請求項８記載のＫＶＭスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は変換ユニット及びＫＶＭスイッチに関し、特にファームウェアの更新を行う変換ユニット及びＫＶＭスイッチに関する。
【背景技術】
【０００２】
例えば遠隔地に配置されたサーバ（情報処理装置）を使用する場合、サーバと、サーバを操作するためのキーボード、ディスプレイ、マウス等の入出力装置との間のエミュレーションを行う変換ユニットが用いられることがある。また、複数のサーバを複数のユーザが使用する場合、サーバと、入出力装置とを、ＫＶＭ（Ｋｅｙｂｏａｒｄ，Ｖｉｄｅｏ，Ｍｏｕｓｅ；キーボード、ビデオ、マウス）スイッチを介して接続することがある。こうした変換ユニットやＫＶＭスイッチにおいて、ファームウェアのバグ修正やアップグレードのため、ファームウェアの更新を行うことがある。一般にサーバは常時動作することが好ましいため、更新中であっても変換ユニットやＫＶＭスイッチを介した通信が行われることが要求される。
【０００３】
例えば特許文献１には、マイクロプロセッサが通信とプログラム更新とを同時に行う発明が記載されている。特許文献２には、通信を行う現用系制御部と、プログラムの更新を行う予備系制御部とを切り替える発明が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２３１４８１号公報
【特許文献２】特開２００２−３４２１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１記載の発明では、マイクロプロセッサの処理量が増大し、通信エラー等が発生する可能性があった。また特許文献１記載の発明及び特許文献２記載の発明では、更新中に行われた通信において送受信された情報が失われることがあった。本発明は上記課題に鑑み、ファームウェアの更新中でも通信を行い、かつ通信により送受信した情報をリカバリーすることができる変換ユニット及びＫＶＭスイッチを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、ファームウェアを用いて、情報処理装置、及び前記情報処理装置を制御するための入出力装置と信号の変換を伴う通信を行う第１制御部と、前記ファームウェアを用いて、前記情報処理装置及び前記入出力装置と、信号の変換を伴う通信を行う第２制御部と、を具備し、前記第１制御部が前記ファームウェアの更新を行っている間、前記第１制御部は前記情報処理装置及び前記入出力装置と通信を行わず、かつ前記第２制御部は前記情報処理装置及び前記入出力装置と通信を行い、前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は前記第１制御部のファームウェアの更新中に行われた通信において送受信された情報を、前記第１制御部に送信する変換ユニットである。本発明によれば、ファームウェアの更新中でも通信を行い、かつ通信により送受信した情報をリカバリーすることができる。
【０００７】
上記構成において、前記第１制御部と前記情報処理装置との通信、及び前記第１制御部と前記入出力装置との通信の少なくとも一方を遮断する遮断部を備え、前記第１制御部が前記ファームウェアの更新を行っている間、前記遮断部による遮断が行われることにより、前記第１制御部は前記情報処理装置及び前記入出力装置との通信の前記少なくとも一方を行わない構成とすることができる。この構成によれば、第１制御部が電圧の変化及び電流の変化から遮断される。従って、ファームウェア更新の成功率が高くなる。
【０００８】
上記構成において、２つの前記遮断部の各々が、前記第１制御部と前記情報処理装置との通信、及び前記第１制御部と前記入出力装置との通信の各々を遮断する構成とすることができる。この構成によれば、第１制御部が電圧の変化及び電流の変化から遮断される。従って、ファームウェア更新の成功率が高くなる。
【０００９】
上記構成において、前記第１制御部は、前記第２制御部を介して、前記情報処理装置との通信及び前記入出力装置との通信の一方を行い、前記情報処理装置との通信及び前記入出力装置との通信の前記一方は、前記遮断部により遮断されず、かつ前記第２制御部により遮断され、前記情報処理装置との通信及び前記入出力装置との通信の他方は、前記遮断部により遮断される構成とすることができる。この構成によれば、第１制御部が電圧の変化及び電流の変化から遮断される。従って、ファームウェア更新の成功率が高くなる。
【００１０】
上記構成において、前記第１制御部及び前記第２制御部は、前記ファームウェアを用いて、前記情報処理装置と前記入出力装置との間で、エミュレーションを行う構成とすることができる。
【００１１】
上記構成において、前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は、前記情報処理装置及び前記入出力装置の各々の設定に関する情報を、前記第１制御部に送信する構成とすることができる。この構成によれば、情報処理装置や入出力装置の設定に関する情報をリカバリーすることができる。また第１制御部は、更新終了後に、良好に通信を行うことができる。
【００１２】
上記構成において、前記第１制御部は、前記ファームウェアの更新前に、前記ファームウェアの更新を行うための新しいファームウェアを前記第２制御部に送信し、前記第２制御部は、前記第１制御部により送信された前記新しいファームウェアのエラー検出処理を行った後、前記第１制御部に前記新しいファームウェアを送信し、前記第１制御部は、前記第２制御部により送信された前記新しいファームウェアを用いて更新を行う構成とすることができる。この構成によれば、エラーを含んだファームウェアが書き込まれることが抑制され、ファームウェア更新の成功率が高まる。
【００１３】
本発明は、ファームウェアを用いて、情報処理装置及び前記情報処理装置を制御するための入出力装置と信号の変換を伴う通信を行う第１制御部と、前記ファームウェアを用いて、前記情報処理装置及び前記入出力装置と信号の変換を伴う通信を行う第２制御部と、を有する変換ユニットと、複数の前記変換ユニットから少なくとも１つの変換ユニットを選択し、複数の前記情報処理装置及び複数の前記入出力装置のいずれか一方から、少なくとも１つの前記情報処理装置及び少なくとも１つの前記入出力装置のいずれか一方を選択し、前記少なくとも１つの変換ユニットと、前記少なくとも１つの情報処理装置及び前記少なくとも１つの入出力装置の前記一方との通信を仲介するメインユニットと、前記第１制御部が前記ファームウェアの更新を行っている間、前記第１制御部は前記情報処理装置及び前記入出力装置と通信を行わず、かつ前記第２制御部は前記情報処理装置及び前記入出力装置の他方と通信を行い、前記第１制御部のファームウェアの更新が終了した後、前記第２制御部は前記第１制御部のファームウェアの更新中に行われた通信に関する情報を、前記第１制御部に送信するＫＶＭスイッチである。本発明によれば、ファームウェアの更新中でも通信を行い、かつ通信に関する情報をリカバリーすることができる。
【００１４】
上記構成において、前記第１制御部が前記ファームウェアの更新を行っている間、前記メインユニットは、前記第１制御部と前記少なくとも１つの情報処理装置及び前記少なくとも１つの入出力装置の前記一方との通信を遮断する構成とすることができる。この構成によれば、第１制御部が電圧の変化及び電流の変化から遮断される。従って、ファームウェア更新の成功率が高くなる。
【発明の効果】
【００１５】
本発明によれば、ファームウェアの更新中でも通信を行い、かつ通信に関する情報をリカバリーすることができる変換ユニット及びＫＶＭスイッチを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】図１（ａ）は実施例１に係る変換ユニットを用いたシステムを例示するブロック図であり、図１（ｂ）は実施例１に係る変換ユニットを例示するブロック図である。
【図２】図２は実施例１に係る変換ユニットの更新制御を例示するシーケンス図である。
【図３】図３は実施例１に係る変換ユニットの更新制御を例示するシーケンス図である。
【図４】図４は実施例１に係る変換ユニットの起動制御を例示するシーケンス図である。
【図５】図５は第１制御部の更新制御を例示するフローチャートである。
【図６】図６は第２制御部の更新制御を例示するフローチャートである。
【図７】図７は第１制御部の起動制御を例示するフローチャートである。
【図８】図８は第２制御部の起動制御を例示するフローチャートである。
【図９】図９は実施例２に係る変換ユニットを例示するブロック図である。
【図１０】図１０は実施例２に係る変換ユニットの更新制御を例示するシーケンス図である。
【図１１】図１１は実施例２に係る変換ユニットの起動制御を例示するシーケンス図である。
【図１２】図１２は第２制御部の起動制御を例示するフローチャートである。
【図１３】図１３は実施例３に係るＫＶＭスイッチを例示するブロック図である。
【図１４】図１４は、実施例３に係るＫＶＭスイッチが備えるサーバユニットを例示するブロック図である。
【図１５】図１５は実施例３に係るＫＶＭスイッチの更新制御を例示するシーケンス図である。
【図１６】図１６は実施例３に係るＫＶＭスイッチの起動制御を例示するシーケンス図である。
【図１７】図１７は第１制御部の起動制御を例示するフローチャートである。
【図１８】図１８は、実施例３の変形例に係るＫＶＭスイッチが備えるサーバユニットを例示するブロック図である。
【図１９】図１９は実施例３の変形例に係るＫＶＭスイッチの更新制御を例示するシーケンス図である。
【図２０】図２０は実施例３の変形例に係るＫＶＭスイッチの起動制御を例示するシーケンス図である。
【発明を実施するための形態】
【００１７】
図面を用いて、本発明の実施例について説明する。
【実施例１】
【００１８】
まず始めに、変換ユニットを用いたシステムの構成について説明する。図１（ａ）は実施例１に係る変換ユニットを用いたシステムを例示するブロック図である。
【００１９】
図１（ａ）に示すように、変換ユニット１００には、サーバ１０（情報処理装置）及び入出力装置１２が接続されている。入出力装置１２は、サーバ１０を制御するための装置であり、例えばキーボード１４、ディスプレイ１６及びマウス１８を含む。変換ユニット１００とサーバ１０との間は、例えば一本のケーブルで接続され、シリアル通信が行われる。これに対し、変換ユニット１００と入出力装置１２との間は、図１（ａ）では簡略化されているが、例えばキーボード１４、ディスプレイ１６及びマウス１８のそれぞれに対応した複数のケーブルで接続される。キーボード１４やマウス１８から出力された信号は、変換ユニット１００を介してサーバ１０に入力される。サーバ１０から出力された信号は、変換ユニット１００を介して、ディスプレイ１６に入力される。つまり、変換ユニット１００は、サーバ１０から出力された信号を、入出力装置１２が処理するための信号に変換する。また変換ユニット１００は、入出力装置１２から出力された信号を、サーバ１０が処理するための信号に変換する。このように、変換ユニット１００は、サーバ１０及び入出力装置１２と、信号の変換を伴う通信を行う。言い換えれば、変換ユニット１００は、サーバ１０と入出力装置１２との間で、エミュレーションを行う。次に変換ユニット１００の構成について説明する。図１（ｂ）は、実施例１に係る変換ユニットを例示するブロック図である。
【００２０】
図１（ｂ）に示すように、変換ユニット１００は、第１制御部２０、第２制御部３０、遮断部４０及び遮断部４２、Ｉ／Ｆ（インターフェース）４４並びに４６を備える。第１制御部２０及び第２制御部３０は、それぞれサーバ１０及び入出力装置１２と、信号の変換を伴う通信をすることができる。第１制御部２０及び第２制御部３０の一方が通信を行っている間、他方は通信を行わず、通信を監視する。また第１制御部２０と第２制御部３０とは、互いに通信可能である。Ｉ／Ｆ４４は例えばＰＳ／２、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、Ｉ２Ｃ、ＲＳ−２３２Ｃ等のインターフェースであり、第１制御部２０又は第２制御部３０と、入出力装置１２との通信を仲介する。Ｉ／Ｆ４６は例えばＵＳＢインターフェースのような、シリアルインターフェースであり、第１制御部２０又は第２制御部３０と、サーバ１０との通信を仲介する。遮断部４０は、第１制御部２０と入出力装置１２との通信を遮断する。遮断部４２は、第１制御部２０とサーバ１０との通信を遮断する。遮断部４０及び４２は、それぞれ例えばスイッチであり、通信をハードウェア上で遮断することができる。つまり、遮断部４０及び４２による遮断が行われると、第１制御部２０と入出力装置１２との間、及び第１制御部２０とサーバ１０との間は、信号が伝達されない状態となる。次に、第１制御部２０及び第２制御部３０の構成について、さらに詳しく説明する。
【００２１】
第１制御部２０は、第１ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算処理装置）２２、第１フラッシュメモリ２４、及び第１ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２６を備える。第１ＣＰＵ２２は、第１制御部２０とサーバ１０及び入出力装置１２の各々との通信、及び第１制御部２０のファームウェアの更新を制御する。第１フラッシュメモリ２４は、エミュレーションを行うためのファームウェアを記憶する。第１ＲＡＭ２６は、ファームウェアが展開される領域、及び作業領域として機能する。第１ＲＡＭ２６には、通信により送受信されるコマンドやデータが記憶される。なお、新たなファームウェアが第１フラッシュメモリ２４に記憶されることで、第１制御部２０におけるファームウェアの更新が行われる。
【００２２】
第２制御部３０は、第２ＣＰＵ３２、第２フラッシュメモリ３４、及び第２ＲＡＭ３６を備える。第２ＣＰＵ３２は、第２制御部３０とサーバ１０及び入出力装置１２の各々との通信、及び第２制御部３０のファームウェアの更新を制御する。また第２ＣＰＵ３２は、遮断部４０及び４２を制御する。第１ＣＰＵ２２が通信中の場合、第２ＣＰＵ３２は通信を行わず、第１ＣＰＵ２２の通信を監視する。第２ＣＰＵ３２は、第１ＣＰＵ２２によるファームウェアの更新が行われることを認識すると、後述する更新制御を行う。さらに第２ＣＰＵ３２は、新たなファームウェアのエラー検出処理を行う。第２フラッシュメモリ３４は、ファームウェアを記憶する。第２ＲＡＭ３６は、ファームウェアが展開される領域、及び作業領域として機能する。第２ＲＡＭ３６には、通信により送受信されるコマンドやデータが記憶される。なお、新たなファームウェアが第２フラッシュメモリ３４に記憶されることで、第２制御部３０におけるファームウェアの更新が行われる。
【００２３】
次に、ファームウェアを更新する場合に、変換ユニット１００が行う更新制御について説明する。図２及び図３は、変換ユニットが行う更新制御を例示するシーケンス図である。制御の開始時点では、第１制御部２０とサーバ１０及び入出力装置１２とが通信を行っている。
【００２４】
図２に示すように、まず入出力装置１２が、第１制御部２０が備える第１ＣＰＵ２２に更新要求を送信する（ステップＳ１）。更新要求を受信した第１ＣＰＵ２２は、第２ＣＰＵ３２に更新要求を送信する（ステップＳ２）。ステップＳ２の後、入出力装置１２は、新たなファームウェア（新ファームウェア）を第１ＣＰＵ２２に送信する（ステップＳ３）。第１ＣＰＵ２２は、新ファームウェアを第２ＣＰＵ３２に送信する（ステップＳ４）。
【００２５】
第２ＣＰＵ３２は、受信した新ファームウェアを、第２ＲＡＭ３６に保存し、新ファームウェアのエラー検出処理を行う（ステップＳ５及びＳ６）。エラー検出処理とは、例えば新ファームウェアに対してチェックサムの確認やベリファイを実行することである。ステップＳ６の後、第２ＣＰＵ３２は遮断部４０及び４２に遮断のための信号を送信する。第２ＣＰＵ３２から送信された信号に応じて、遮断部４０及び４２は、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信を遮断する（ステップＳ７）。
【００２６】
ステップＳ７の後、第２ＣＰＵ３２は、第１ＣＰＵ２２に書き込み要求を送信し、さらに新ファームウェアを送信する（ステップＳ８及びＳ９）。第１ＣＰＵ２２は、受信した新ファームウェアを第１フラッシュメモリ２４に書き込む（ステップＳ１０）。既述したように、新ファームウェアが第１フラッシュメモリ２４に記憶されることで、ファームウェアの更新がなされる。さらに図３を参照して、更新制御について説明を続ける。
【００２７】
図３に示すように、入出力装置１２は、コマンドやデータを第２ＣＰＵ３２に送信する（ステップＳ１１）。第２ＣＰＵ３２は、コマンドを受信すると、入出力装置１２に対して応答を行う。また第２ＣＰＵ３２は、受信したデータを第２ＲＡＭ３６に保存する（ステップＳ１２）。また入出力装置１２と同様に、サーバ１０は、コマンドやデータを第２ＣＰＵ３２に送信する（ステップＳ１３）。第２ＣＰＵ３２は、コマンドを受信すると、サーバ１０に対して応答を行う。また第２ＣＰＵ３２は、受信したデータを第２ＲＡＭ３６に保存する（ステップＳ１４）。つまり、第１制御部２０がファームウェアの更新を行っている間、第２制御部３０がサーバ１０及び入出力装置１２と通信を行う。
【００２８】
第２ＣＰＵ３２は、サーバ１０及び入出力装置１２との通信で送受信された情報を初期値として第２ＲＡＭ３６に保存する（ステップＳ１５）。送受信された情報は、例えばサーバ１０及び入出力装置１２の設定に変更があった場合における、設定に関する情報である。ステップＳ１５の後であって、新ファームウェアの書き込みが終了した後に、第１ＣＰＵ２２及び第２ＣＰＵ３２は、それぞれ再起動を行う（ステップＳ１６及びＳ１７）。以上で更新制御は終了する。再起動時に行われる起動制御については、図４において説明する。
【００２９】
次に、変換ユニット１００が、更新制御後に行う起動制御について説明する。図４は変換ユニットが行う起動制御を例示するシーケンス図である。
【００３０】
図４に示すように、まず遮断部４０及び４２は、第２ＣＰＵ３２からの信号に応じて、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信を遮断する（ステップＳ２０）。ステップＳ２０の後、第１ＣＰＵ２２は、第２ＣＰＵ３２に遮断部４０及び４２の状態確認の問い合わせを行う（ステップＳ２１）。状態確認の問い合わせを受けた第２ＣＰＵ３２は、第１ＣＰＵ２２に遮断部４０及び４２の状態を通知する（ステップＳ２２）。ここで、第２ＣＰＵ３２は、遮断部４０及び４２が通信を遮断している状態であることを通知する。ステップＳ２２の後、第２ＣＰＵ３２は、第１ＣＰＵ２２に初期値を送信する（ステップＳ２３）。初期値を受信した第１ＣＰＵ２２は、初期値を第１ＲＡＭ２６に保存する（ステップＳ２４）。
【００３１】
ステップＳ２４の後、第２ＣＰＵ３２は、遮断部４０及び４２に遮断解除のための信号を送信する。第２ＣＰＵ３２から送信された信号に応じて、遮断部４０及び４２は、通信の遮断を解除する（ステップＳ２５）。これにより、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信が可能な状態になる。ステップＳ２５の後、第１ＣＰＵ２２は、第２ＣＰＵ３２に遮断部４０及び４２の状態確認の問い合わせを行う（ステップＳ２６）。状態確認の問い合わせを受けた第２ＣＰＵ３２は、第１ＣＰＵ２２に遮断部４０及び４２の状態を通知する（ステップＳ２７）。ここで第２ＣＰＵ３２は、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信が可能であることを通知する。ステップＳ２７の後、第１ＣＰＵ２２はサーバ１０及び入出力装置１２と通信を開始する（ステップＳ２８）。また第２ＣＰＵ３２は、第１ＣＰＵ２２が行う通信を監視する（ステップＳ２９）。以上で起動制御は終了する。
【００３２】
次に、第１制御部２０及び第２制御部３０の各々の、更新制御及び起動制御について説明する。まず、第１制御部２０が行う更新制御について説明する。図５は第１制御部の更新制御を例示するフローチャートである。
【００３３】
図５に示すように、第１ＣＰＵ２２は、入出力装置１２から更新要求を受信したか判断する（ステップＳ３０）。Ｎｏの場合、制御は後述するステップＳ３４に進む。Ｙｅｓの場合、第１ＣＰＵ２２は、第２ＣＰＵ３２に更新要求を送信する（ステップＳ３１）。ステップＳ３１の後、第１ＣＰＵ２２は、入出力装置１２から新ファームウェアを受信したか判断する（ステップＳ３２）。Ｎｏの場合、ステップＳ３２が繰り返される。Ｙｅｓの場合、第１ＣＰＵ２２は、受信した新ファームウェアを第２ＣＰＵ３２に送信する（ステップＳ３３）。図４及び図５において述べたように、第２ＣＰＵ３２は受信した新ファームウェアのエラー検出処理を行う。さらに第１ＣＰＵ２２は、入出力装置１２から、新ファームウェアの全てのデータを受信したか判断する（ステップＳ３４）。Ｎｏの場合、制御はステップＳ３２に戻る。つまり、第１ＣＰＵ２２は、新ファームウェアの全てのデータを受信し、第２ＣＰＵ３２に送信するまで、ステップＳ３２〜Ｓ３４を繰り返す。
【００３４】
ステップＳ３４においてＹｅｓの場合、及びステップＳ３０においてＮｏの場合、第１ＣＰＵ２２は、第２ＣＰＵ３２から書き込み要求を受信したか判断する（ステップＳ３５）。Ｎｏの場合、制御は終了する。Ｙｅｓの場合、第１ＣＰＵ２２は第２ＣＰＵ３２から新ファームウェアを受信したか判断する（ステップＳ３６）。Ｎｏの場合、第１ＣＰＵ２２はステップＳ３６を繰り返す。Ｙｅｓの場合、第１ＣＰＵ２２は、受信した新ファームウェアを第１フラッシュメモリ２４に書き込む（ステップＳ３７）。さらに第１ＣＰＵ２２は、新ファームウェアの全てのデータを第２ＣＰＵ３２から受信したか判断する（ステップＳ３８）。Ｎｏの場合、制御はステップＳ３６に戻る。つまり、第１ＣＰＵ２２は、新ファームウェアの全てのデータを受信し、第１フラッシュメモリ２４に新ファームウェアの全てのデータを書き込むまで、ステップＳ３６〜Ｓ３８を繰り返す。ステップＳ３８においてＹｅｓの場合、つまりファームウェアの更新が完了した場合、第１ＣＰＵ２２は再起動を行う（ステップＳ３９）。第１ＣＰＵ２２の起動制御については後述する。ステップＳ３９の後、制御は終了する。
【００３５】
次に第２制御部３０が行う更新制御について説明する。図６は第２制御部の更新制御を例示するフローチャートである。
【００３６】
図６に示すように、まず第２ＣＰＵ３２は、第１ＣＰＵ２２から更新要求を受信したか判断する（ステップＳ４０）。Ｎｏの場合、制御は終了する。Ｙｅｓの場合、第２ＣＰＵ３２は、第１ＣＰＵ２２から新ファームウェアを受信したか判断する（ステップＳ４１）。Ｎｏの場合、第２ＣＰＵ３２はステップＳ４１を繰り返す。Ｙｅｓの場合、第２ＣＰＵ３２は、受信した新ファームウェアを第２ＲＡＭ３６に保存する（ステップＳ４２）。ステップＳ４２の後、第２ＣＰＵ３２は、新ファームウェアの全てのデータを受信したか判断する（ステップＳ４３）。Ｎｏの場合、制御はステップＳ４１に戻る。つまり、第２ＣＰＵ３２は、新ファームウェアの全てのデータを受信し第２ＲＡＭ３６に保存するまで、ステップＳ４１〜Ｓ４３を繰り返す。
【００３７】
ステップＳ４３においてＹｅｓの場合、第２ＣＰＵ３２は、第２ＲＡＭ３６に保存された新ファームウェアに対してエラー検出処理を行う（ステップＳ４４）。既述したように、第２ＣＰＵ３２はエラー検出処理として例えばチェックサムの確認やベリファイを実行する。ステップＳ４４の後、第２ＣＰＵ３２は新ファームウェアからエラーを検出したか判断する（ステップＳ４５）。Ｙｅｓの場合、制御は終了し、再度更新制御が行われる。Ｎｏの場合、つまり新ファームウェアからエラーが検出されなかった場合、第２ＣＰＵ３２は、第１ＣＰＵ２２がサーバ１０及び入出力装置１２と通信中であるか判断する（ステップＳ４６）。Ｙｅｓの場合、第２ＣＰＵ３２はステップＳ４６を繰り返す。Ｎｏの場合、第２ＣＰＵ３２は、遮断部４０及び４２に、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信を遮断させる（ステップＳ４７）。つまり、第２ＣＰＵ３２は、第１ＣＰＵ２２とサーバ１０との通信、及び入出力装置１２との通信が完了するのを待って、通信を遮断させる。ステップＳ４７の後、第２ＣＰＵ３２は、第１ＣＰＵ２２に書き込み要求を送信する（ステップＳ４８）。さらに第２ＣＰＵ３２は、第１ＣＰＵ２２に新ファームウェアを送信する（ステップＳ４９）。このとき、第２ＣＰＵ３２は、新ファームウェアのデータを複数のデータに分割し、分割した新ファームウェアのデータを逐次第１ＣＰＵ２２に送信する。
【００３８】
ステップＳ４９の後、第２ＣＰＵ３２は、サーバ１０及び入出力装置１２からコマンド又はデータを受信したか判断する（ステップＳ５０）。Ｙｅｓの場合、第２ＣＰＵ３２はコマンドを処理し、サーバ１０及び入出力装置１２への応答を行う。また、第２ＣＰＵ３２は受信したデータを第２ＲＡＭ３６に保存する（ステップＳ５１）。つまり、第２ＣＰＵ３２は、第１ＣＰＵ２２に新ファームウェアを送信し、かつサーバ１０及び入出力装置１２と通信を行う。
【００３９】
ステップＳ５０においてＮｏの場合、又はステップＳ５１の後、第２ＣＰＵ３２は、新ファームウェアの全てのデータを第１ＣＰＵ２２に送信したか判断する（ステップＳ５２）。Ｎｏの場合、制御はステップＳ５１に戻る。つまり、第２ＣＰＵ３２は、新ファームウェアの全てのデータを第１ＣＰＵ２２に送信するまで、サーバ１０及び入出力装置１２との通信を行う。
【００４０】
ステップＳ５２においてＹｅｓの場合、第２ＣＰＵ３２は、第２ＲＡＭ３６に保存されているデータを初期値とする（ステップＳ５３）。ステップＳ５３の後、第２ＣＰＵ３２は、第１ＣＰＵ２２を再起動させる（ステップＳ５４）。さらに第２ＣＰＵ３２自体も再起動する（ステップＳ５５）。第２ＣＰＵ３２の起動制御については後述する。ステップＳ５５の後、制御は終了する。
【００４１】
次に第１制御部２０が行う起動制御について説明する。図７は第１制御部が行う起動制御を例示するフローチャートである。
【００４２】
図７に示すように、第１ＣＰＵ２２は、第２ＣＰＵ３２に遮断部４０及び４２の状態を確認する（ステップＳ６０）。ステップＳ６０の後、第１ＣＰＵ２２は、第２ＣＰＵ３２から遮断部４０及び４２の状態が通知されたか判断する（ステップＳ６１）。Ｙｅｓの場合、第１ＣＰＵ２２は、第２ＣＰＵ３２から受信した通知に基づき、遮断部４０及び４２が通信を遮断している状態であるか判断する（ステップＳ６２）。Ｎｏの場合については後述する。ステップＳ６２においてＹｅｓの場合、及びステップＳ６１においてＮｏの場合、第１ＣＰＵ２２は、第２ＣＰＵ３２から初期値を受信したか判断する（ステップＳ６３）。Ｙｅｓの場合、第１ＣＰＵ２２は、受信した初期値を第１ＲＡＭ２６に保存する（ステップＳ６４）。Ｎｏの場合、及びステップＳ６４の後、制御はステップＳ６０に戻る。つまり第１ＣＰＵ２２は、サーバ１０及び入出力装置１２との通信が遮断された状態で、初期値を受信し、保存する。ステップＳ６２においてＮｏの場合、つまり遮断部４０及び４２による遮断が解除された場合、第１ＣＰＵ２２は、サーバ１０及び入出力装置１２との通信を開始する（ステップＳ６５）。ステップＳ６５の後、制御は終了する。
【００４３】
次に第２制御部３０が行う起動制御について説明する。図８は第２制御部が行う起動制御を例示するフローチャートである。
【００４４】
図８に示すように、まず第２ＣＰＵ３２は遮断部４０及び４２に、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信を遮断させる（ステップＳ７０）。ステップＳ７０の後、第２ＣＰＵ３２は、第１ＣＰＵ２２から遮断部４０及び４２の状態について問い合わせがあったか判断する（ステップＳ７１）。Ｙｅｓの場合、第２ＣＰＵ３２は、遮断部４０及び４２の状態を第１ＣＰＵ２２に送信する（ステップＳ７２）。ステップＳ７２の後、及びステップＳ７１においてＮｏの場合、第２ＣＰＵ３２は、遮断部４０及び４２が第１ＣＰＵ２２の通信を遮断している状態であるか判断する（ステップＳ７３）。Ｙｅｓの場合、第２ＣＰＵ３２は初期値となるデータがあるか判断する（ステップＳ７４）。
【００４５】
Ｙｅｓの場合、第２ＣＰＵ３２は初期値を第１ＣＰＵ２２に送信する（ステップＳ７５）。Ｎｏの場合、第２ＣＰＵ３２は、遮断部４０及び４２に遮断を解除させる（ステップＳ７６）。ステップＳ７５の後、及びステップＳ７６の後、制御はステップＳ７１に戻る。ステップＳ７３においてＮｏの場合、つまり遮断部４０及び４２による遮断が解除されている場合、第２ＣＰＵ３２は第１ＣＰＵ２２による通信を監視する（ステップＳ７７）。ステップＳ７７の後、制御は終了する。
【００４６】
実施例１によれば、第１制御部２０がファームウェアの更新を行っている間、第１制御部２０は通信を行わず、第２制御部３０がサーバ１０及び入出力装置１２と通信を行う。また、ファームウェアの更新終了後、第２制御部３０は、更新中に行われた通信において送受信された情報を初期値として、第１制御部２０に送信する。これにより、ファームウェアの更新中であっても、サーバ１０と入出力装置１２との通信を行うことができる。また、第２制御部３０が第１制御部２０に初期値を送信するため、コマンドやデータ等、通信により送受信した情報をリカバリーすることができる。
【００４７】
初期値は、例えば変換ユニット１００とサーバ１０とを接続するインターフェースの仕様、キーボード１４のタイピング間隔、Ｎｕｍ  Ｌｏｃｋ等のＬＥＤのオン／オフ、マウス１８の情報の伝送間隔、分解能等、サーバ１０及び入出力装置１２各々の設定に関する情報である。つまり、更新中にサーバ１０及び入出力装置１２の設定に変更があった場合でも、設定に関する情報をリカバリーすることができる。例えば、更新中にサーバ１０や入出力装置１２の設定が変更され、かつ設定に関する情報が失われた場合、第１制御部２０は設定の変更を認識していないため、通信が良好に行われない可能性がある。実施例１によれば、第１制御部２０は、更新終了後に第２制御部３０から初期値を受信するため、サーバ１０及び入出力装置１２それぞれの設定に合わせて、良好に通信を行うことができる。
【００４８】
２つの遮断部４０及び４２は、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信の各々を、電気的に遮断する。このため、ファームウェア更新中は、第１ＣＰＵ２２が、サーバ１０及び入出力装置１２に起因する電圧の変化及び電流の変化から遮断される。従って、第１ＣＰＵ２２が電気的に保護され、ファームウェア更新の成功率が高くなる。通信を電気的に遮断するため、遮断部４０及び４２は、例えばスイッチ等であることが好ましい。
【００４９】
また、第１ＣＰＵ２２は第２ＣＰＵ３２に新ファームウェアを送信し、第２ＣＰＵ３２は新ファームウェアのエラー検出処理を行う。第１ＣＰＵ２２は、エラー検出処理後の新ファームウェアを用いて、ファームウェアの更新を行う。このため、エラーを含んだファームウェアが書き込まれることが抑制され、ファームウェア更新の成功率が高まる。このとき、第２ＣＰＵ３２は、第２ＲＡＭ３６に保存された新ファームウェアに対してエラー検出処理を行い、新ファームウェアのデータのうち、エラー検出処理が終了したデータから逐次第１ＣＰＵ２２に送信する。ＲＡＭへの保存、及び読み出しは、フラッシュメモリへの保存（書き込み）に比べて、速く行われる。このため、第２ＣＰＵ３２による、新ファームウェアのエラー検出処理及び送信は、第１ＣＰＵ２２による新ファームウェアの第１フラッシュメモリ２４への書き込みより速く行われる。従って、新ファームウェアのデータを小さなデータに分割して、読み出し、エラー検出処理及び送信を行うことで、エラー検出処理と更新とを並行して行い、処理の効率化を図ることができる。
【００５０】
なお、第１フラッシュメモリ２４及び第２フラッシュメモリ３４、並びに第１ＲＡＭ２６及び第２ＲＡＭ３６は、他の記憶装置でもよい。ただし、第１フラッシュメモリ２４及び第２フラッシュメモリ３４はファームウェアを記憶するため、代わりとしては不揮発性メモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ：ハードディスクドライブ）等を用いることが好ましい。また第１ＲＡＭ２６及び第２ＲＡＭ３６の代わりには、揮発性メモリを用いることが好ましい。さらに、エラー検出処理と更新とを効率的に行うためには、第１ＣＰＵ２２及び第２ＣＰＵ３２の各々から第１ＲＡＭ２６及び第２ＲＡＭ３６の各々へのアクセス速度は、第１フラッシュメモリ２４及び第２フラッシュメモリ３４の各々へのアクセス速度より大きいことが好ましい。
【実施例２】
【００５１】
実施例２は、第１制御部２０が第２制御部３０を介して通信を行う例である。図９は実施例２に係る変換ユニットを例示するブロック図である。既述した構成と同じ構成については、説明を省略する。
【００５２】
図９に示すように、実施例２に係る変換ユニット２００は、第１ＣＰＵ２２と入出力装置１２との通信を遮断する遮断部４０を備え、第１ＣＰＵ２２とサーバ１０との通信を遮断する遮断部４２は備えていない。また、第１ＣＰＵ２２は、第２ＣＰＵ３２を介して、サーバ１０と通信を行う。つまり図９に示した変換ユニット２００は、遮断部４２を備えていないこと、及び第１ＣＰＵ２２が第２ＣＰＵ３２を介してサーバ１０と通信を行うこと以外は、同じ構成である。
【００５３】
次に、実施例２に係る変換ユニットの制御について説明する。まず、更新制御について説明する。図１０は実施例２に係る変換ユニットの更新制御を例示するシーケンス図である。
【００５４】
図１０に示すように、実施例２における更新制御は、制御する遮断部が１つであることを除いて、実施例１における更新制御と同じ制御である。つまり、第１ＣＰＵ２２がファームウェアの更新を行っている間、遮断部４０は第１ＣＰＵ２２と入出力装置１２との通信を遮断する（ステップＳ７）。また、第２ＣＰＵ３２は、第１ＣＰＵ２２とサーバ１０との通信を遮断する（ステップＳ７ａ）。他のステップは、制御する遮断部が１つであることを除いて、図２及び図３に例示したものと同じステップであるため、説明を省略する。
【００５５】
次に起動制御について説明する。図１１は実施例２に係る変換ユニットの起動制御を例示するシーケンス図である。既述したステップと同じステップについては説明を省略する。
【００５６】
図１１に示すように、ファームウェアの更新終了後、第２ＣＰＵ３２は、第２ＣＰＵ３２が行っていた遮断を解除し、第１ＣＰＵ２２とサーバ１０との通信が可能な状態とする（ステップＳ２０ａ）。ステップＳ２０ａ以降のステップは、制御する遮断部が１つであることを除いて、図４に例示したステップと同じである。つまり、第２ＣＰＵ３２は、遮断部４０に第１ＣＰＵ２２と入出力装置１２との通信を遮断させる（ステップＳ２０）。また、第１ＣＰＵ２２が初期値を保存した後（ステップＳ２４の後）、第２ＣＰＵ３２は、遮断部４０に遮断を解除させる（ステップＳ２５）。
【００５７】
次に第１制御部２０及び第２制御部３０各々の制御について説明する。まず更新制御について説明する。第１制御部２０の更新制御は、図５に例示した更新制御と同じであるため、説明を省略する。
【００５８】
また第２制御部３０の更新制御は、遮断部が１つであることを除いて、図６に例示したものと同じである。つまり、図６に示すように、第２ＣＰＵ３２は、第１ＣＰＵ２２と入出力装置１２との通信を遮断し、かつ遮断部４０に第１ＣＰＵ２２とサーバ１０との通信を遮断させる（ステップＳ４７）。他のステップについては、図６に例示したステップと同じである。
【００５９】
次に起動制御について説明する。図１２は第２制御部の起動制御を例示するフローチャートである。なお、第１制御部２０の起動制御は図７に例示したものと同じ制御であるため、説明を省略する。
【００６０】
図１２に示すように、第２ＣＰＵ３２は、第１ＣＰＵ２２とサーバ１０との通信の遮断を解除する（ステップＳ７８）。ステップＳ７８以降のステップは、制御する遮断部が１つであること以外は、図８に例示したステップと同じである。つまり、第２ＣＰＵ３２は、遮断部４０に、第１ＣＰＵ２２と入出力装置１２との通信を遮断させる（ステップＳ７０）。また第２ＣＰＵ３２は、第１ＣＰＵ２２からの問い合わせに応じて、遮断部４０の状態を第１ＣＰＵ２２に送信する（ステップＳ７１及びＳ７２）。第２ＣＰＵ３２は、遮断部４０に遮断を解除させる（ステップＳ７６）。
【００６１】
実施例２によれば、実施例１と同様に、ファームウェアの更新中であっても、サーバ１０と入出力装置１２との通信を行うことができる。また、更新中に行われた通信において送受信された情報をリカバリーすることができる。さらに、遮断部が１つでよいため、部品点数を削減することができ、変換ユニットの低コスト化が可能となる。
【実施例３】
【００６２】
実施例３は、変換ユニットをＫＶＭスイッチに適用した例である。図１３は実施例３に係るＫＶＭスイッチを例示するブロック図である。
【００６３】
図１３に示すように、実施例３に係るＫＶＭスイッチ３００は、メインユニット３１０、サーバユニット３２０、及びコンソールユニット３３０を備える。複数のサーバユニット３２０の各々は、複数のサーバ１０の各々に接続されている。複数のコンソールユニット３３０の各々は、複数の入出力装置１２の各々に接続されている。メインユニット３１０は、複数のサーバユニット３２０及び複数のコンソールユニット３３０に接続されている。
【００６４】
メインユニット３１０は、複数のサーバユニット３２０、及び複数のコンソールユニット３３０の各々から選択したサーバユニット３２０とコンソールユニット３３０とを接続する。つまりメインユニット３１０は、複数のサーバ１０及び複数の入出力装置１２の各々から選択したサーバ１０と入出力装置１２とを接続する。言い換えれば、メインユニット３１０は、サーバユニット３２０と入出力装置１２とを接続し、またコンソールユニット３３０とサーバ１０とを接続する。このように、メインユニット３１０は、サーバユニット３２０と入出力装置１２との通信を仲介し、またコンソールユニット３３０とサーバ１０との通信を仲介する。さらにメインユニット３１０は、サーバユニット３２０と入出力装置１２との通信、又はコンソールユニット３３０とサーバ１０との通信の少なくとも一方を遮断することができる。詳しくは後述する。
【００６５】
メインユニット３１０とサーバユニット３２０とは、例えば一本のケーブルで接続され、シリアル通信を行う。サーバユニット３２０とサーバ１０とは、例えば入出力装置１２が備えるキーボード１４、ディスプレイ１６及びマウス１８のそれぞれに対応した、複数のケーブルで接続される。また、メインユニット３１０とコンソールユニット３３０とは、例えば一本のケーブルで接続され、シリアル通信を行う。コンソールユニット３３０と入出力装置１２とは、例えばキーボード１４、ディスプレイ１６及びマウス１８のそれぞれに対応した、複数のケーブルで接続される。つまり、サーバユニット３２０及びコンソールユニット３３０は、それぞれ変換ユニットとして機能する。
【００６６】
次に、サーバユニット３２０について詳しく説明する。図１４は実施例３に係るＫＶＭスイッチが備えるサーバユニットを例示するブロック図である。既述した構成と同じ構成については、説明を省略する。
【００６７】
図１４に示すように、サーバユニット３２０は、第１制御部２０、第２制御部３０、及び遮断部４２を備える。遮断部４２は、第１ＣＰＵ２２とサーバ１０との通信を遮断する。その一方でサーバユニット３２０は、第１ＣＰＵ２２と入出力装置１２との通信を遮断する遮断部４０は備えていない。つまり図１４に示すサーバユニット３２０は、遮断部４０を備えていないこと以外、図１（ｂ）に示した変換ユニット１００と同じ構成である。
【００６８】
次に、実施例３に係るＫＶＭスイッチの制御について説明する。まず、更新制御について説明する。図１５は実施例３に係るＫＶＭスイッチの更新制御を例示するシーケンス図である。既述したステップと同じステップについては説明を省略する。
【００６９】
図１５に示すように、ステップＳ６の後、第２ＣＰＵ３２はメインユニット３１０に、遮断のための信号を送信する。第２ＣＰＵ３２から送信された信号に応じて、メインユニット３１０は、第１ＣＰＵ２２と入出力装置１２との通信を遮断する（ステップＳ７ｂ）。なお、通信の遮断は、第２ＣＰＵ３２からの信号に応じなくてもよく、メインユニット３１０が、ファームウェアの更新中であることを認識して、自動的に行ってもよい。他のステップについては、図３に例示したステップと同じであるため、説明を省略する。
【００７０】
次に起動制御について説明する。図１６は実施例３に係るＫＶＭスイッチの起動制御を例示するシーケンス図である。既述したステップと同じステップについては、説明を省略する。
【００７１】
図１６に示すように、メインユニット３１０は、第１ＣＰＵ２２とサーバ１０との通信を遮断する（ステップＳ２０ｂ）。第１ＣＰＵ２２は、メインユニット３１０に状態確認の問い合わせを行う（ステップＳ２１ａ）。状態確認の問い合わせを受けたメインユニット３１０は、第１ＣＰＵ２２にメインユニット３１０の状態、つまり、通信を遮断していることを通知する（ステップＳ２２ａ）。
【００７２】
またステップＳ２４の後、第２ＣＰＵ３２はメインユニット３１０に、遮断解除のための信号を送信する。第２ＣＰＵ３２から送信された信号に応じて、メインユニット３１０は、第１ＣＰＵ２２と入出力装置１２との通信の遮断を解除する（ステップＳ２５ａ）。なお、遮断解除は第２ＣＰＵ３２の信号に応じなくてもよく、メインユニット３１０が起動制御中であることを認識して、自動的に行ってもよい。ステップＳ２５及びＳ２５ａの後、第１ＣＰＵ２２とサーバ１０及び入出力装置１２との通信が可能な状態となる。第１ＣＰＵ２２は、メインユニット３１０に状態確認の問い合わせを行う（ステップＳ２６ａ）。状態確認の問い合わせを受けたメインユニット３１０は、状態を通知する（ステップＳ２７ａ）。ここでメインユニット３１０は、第１ＣＰＵ２２と入出力装置１２との通信が可能であることを通知する。また第１ＣＰＵ２２は、通信が開始された後（ステップＳ２８の後）、入出力装置１２に初期値を送信する（ステップＳ２９ａ）。他のステップについては、遮断部が１つであることを除いて、図４に例示したステップと同じであるため説明を省略する。
【００７３】
次に第１制御部２０及び第２制御部３０各々の制御について説明する。図１７は第１制御部の起動制御を例示するフローチャートである。既述した制御と同じ制御については、説明を省略する。なお、第１制御部２０及び第２制御部３０各々の更新制御については、図５及び図６の各々に例示したものと同じ制御であるため、説明を省略する。また、第２制御部３０の起動制御については、図８に例示した制御と同じであるため、説明を省略する。
【００７４】
図１７に示すように、ステップＳ６０からステップＳ６２において、第１ＣＰＵ２２は遮断部４２及びメインユニット３１０の状態を確認する。第１ＣＰＵ２２は、サーバ１０及び入出力装置１２との通信を開始した後（ステップＳ６５の後）、メインユニット３１０を介して、初期値を入出力装置１２に送信する（ステップＳ６６）。他のステップについては、図７に例示したステップと同じであるため、説明を省略する。
【００７５】
実施例３によれば、ＫＶＭスイッチが備えるサーバユニット３２０のファームウェア更新の際に、第１制御部２０が更新を行っている間、第２制御部３０がサーバ１０と通信を行う。またファームウェアの更新終了後、第２制御部３０が第１制御部２０に初期値を送信する。これにより、ファームウェアの更新中であっても、サーバユニット３２０はサーバ１０と通信を行うことができる。また更新中に行われた通信に関する情報をリカバリーすることができる。また通信再開後、第１制御部２０は、メインユニット３１０を介して、初期値を入出力装置１２に送信する。このため、ファームウェアの更新終了後、入出力装置１２を最新の設定に合わせた状態とすることができる。これにより、通信が良好に行われる。
【００７６】
ファームウェアの更新中は、メインユニット３１０が、サーバユニット３２０と入出力装置１２との通信を遮断する。このため、サーバユニット３２０は、１つの遮断部４２を備えればよい。従って、ＫＶＭスイッチの部品点数を削減し、低コスト化を図ることができる。ただし、図１（ｂ）の例のように、サーバユニット３２０が２つの遮断部４０及び４２を備える構成としてもよい。この場合、メインユニット３１０は通信を遮断しなくてもよい。
【００７７】
実施例３ではサーバユニット３２０を例に説明したが、実施例はこれに限定されない。つまり、コンソールユニット３３０に同様の構成及び制御を適用してもよい。この場合、コンソールユニット３３０が備える第２制御部３０は、第１制御部２０と入出力装置１２との通信を遮断することができる。また、メインユニット３１０はコンソールユニット３３０とサーバ１０との通信を遮断することができる。つまり、複数のサーバユニット３２０及び複数のコンソールユニット３３０の少なくとも１つに、実施例３で説明した構成が適用されればよい。
【００７８】
メインユニット３１０は、複数のサーバユニット３２０と複数の入出力装置１２を接続し、また複数のコンソールユニット３３０と複数のサーバ１０とを接続することもできる。つまりメインユニット３１０は、複数のサーバユニット３２０から少なくとも１つのサーバユニット３２０を、複数の入出力装置１２から少なくとも１つの入出力装置１２を、それぞれ選択し接続する。またメインユニット３１０は、複数のコンソールユニット３３０から少なくとも１つのコンソールユニット３３０を、複数のサーバ１０から少なくとも１つのサーバ１０を、それぞれ選択し接続する。
【００７９】
次に実施例３の変形例について説明する。図１８は、実施例３の変形例に係るＫＶＭスイッチが備えるサーバユニットを例示するブロック図である。既述した構成と同じ構成については、説明を省略する。
【００８０】
図１８に示すように、第１ＣＰＵ２２は第２ＣＰＵ３２を介してサーバ１０と通信を行う。第２ＣＰＵ３２は、第１ＣＰＵ２２とサーバ１０との通信を遮断する。また図１３及び図１４に示した例と同様に、メインユニット３１０は、サーバユニット３２０と入出力装置１２との通信を遮断する。このため、サーバユニット３２０には、遮断部４０及び４２を設けなくてよい。
【００８１】
次に実施例３の変形例に係るＫＶＭスイッチが備えるサーバユニット３２０の制御について説明する。まず更新制御について説明する。図１９は実施例３の変形例に係るＫＶＭスイッチの更新制御を例示するシーケンス図である。既述したステップと同じステップについては説明を省略する。
【００８２】
図１９に示すように、第２ＣＰＵ３２は第１ＣＰＵ２２とサーバ１０との通信を遮断する（ステップＳ７ａ）。また、メインユニット３１０は、第１ＣＰＵ２２と入出力装置１２との通信、つまりサーバユニット３２０と入出力装置１２との通信を遮断する（ステップＳ７ｂ）。他のステップは、図２及び図３に例示したステップと同じであるため、説明を省略する。
【００８３】
次に起動制御について説明する。図２０は実施例３の変形例に係るＫＶＭスイッチの起動制御を例示するシーケンス図である。既述したステップと同じステップについては、説明を省略する。
【００８４】
図２０に示すように、まず第２ＣＰＵ３２は第１ＣＰＵ２２とサーバ１０との通信の遮断を解除する（ステップＳ２０ａ）。また、メインユニット３１０は、第１ＣＰＵ２２と入出力装置１２との通信を遮断する（ステップＳ２０ｂ）。他のステップは、図１６に例示したステップと同じであるため、説明を省略する。
【００８５】
また第１制御部２０及び第２制御部３０各々の更新制御及び起動制御については、既述した制御と同じであるため、説明を省略する。
【００８６】
実施例３の変形例によれば、実施例３と同様に、ファームウェアの更新中であっても、サーバユニット３２０はサーバ１０と通信を行うことができる。また更新中に行われた通信に関するコマンドやデータをリカバリーすることができる。またサーバユニット３２０に遮断部４０及び４２を設けなくてもよいため、ＫＶＭスイッチの低コスト化が可能となる。なお、第２制御部３０がファームウェアの更新を行う場合にも、実施例１〜３は適用可能である。この場合、第１ＣＰＵ２２と第２ＣＰＵ３２とで実施するステップが、上述した場合と入れ替わる。
【００８７】
以上、本発明の実施例について詳述したが、本発明はかかる特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８８】
サーバ                  １０
入出力装置              １２
キーボード              １４
ディスプレイ            １６
マウス                  １８
第１制御部              ２０
第１ＣＰＵ              ２２
第１フラッシュメモリ    ２４
第１ＲＡＭ              ２６
第２制御部              ３０
第２ＣＰＵ              ３２
第２フラッシュメモリ    ３４
第２ＲＡＭ              ３６
遮断部                  ４０，４２
Ｉ／Ｆ                  ４４，４６
変換ユニット            １００，２００
ＫＶＭスイッチ          ３００
メインユニット          ３１０
サーバユニット          ３２０
コンソールユニット      ３３０
【図１】
2012043311.tif 000003
【図２】
2012043311.tif 000004
【図３】
2012043311.tif 000005
【図４】
2012043311.tif 000006
【図５】
2012043311.tif 000007
【図６】
2012043311.tif 000008
【図７】
2012043311.tif 000009
【図８】
2012043311.tif 000010
【図９】
2012043311.tif 000011
【図１０】
2012043311.tif 000012
【図１１】
2012043311.tif 000013
【図１２】
2012043311.tif 000014
【図１３】
2012043311.tif 000015
【図１４】
2012043311.tif 000016
【図１５】
2012043311.tif 000017
【図１６】
2012043311.tif 000018
【図１７】
2012043311.tif 000019
【図１８】
2012043311.tif 000020
【図１９】
2012043311.tif 000021
【図２０】
2012043311.tif 000022