(57)【要約】【課題】入出力動作を要求したプログラム側での時間監視および入出力装置からの非同期のイベントに対する時間監視内にファームウェア更新を行うことができる入出力制御装置を提供する。【解決手段】入出力制御装置３０において、ファームウェア格納領域３１に格納されたファームウェアの更新中は、コンピュータ１０からの入出力動作開始指示を入出力動作開始指示キューイング格納領域３２へキューイングし、入出力装置４０から報告される非同期のイベントを非同期イベントキューイング格納領域３３へキューイングし、ファームウェアの更新終了後に、入出力動作開始指示キューイング格納領域３２にキューイングしていた入出力動作開始指示および非同期イベントキューイング格納領域３３にキューイングしていた入出力装置４０からの非同期イベントをデキューして再開する処理を行う制御部３４を備えた。【選択図】図１
2009163658.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータからの指示により入出力装置との間で入出力動作を行う入出力制御装置であって、
前記コンピュータからの入出力動作開始指示要求をキューイングする入出力動作開始指示キューイング格納領域と、
前記入出力装置から報告される非同期のイベントをキューイングする非同期イベントキューイング格納領域と、
ファームウェアを格納するファームウェア格納領域と、
前記ファームウェア格納領域に格納されたファームウェアにより、前記入出力制御装置の入出力動作を制御する制御部とを備え、
前記制御部は、前記ファームウェア格納領域に格納されたファームウェアの更新中は、前記コンピュータからの入出力動作開始指示を前記入出力動作開始指示キューイング格納領域へキューイングし、前記入出力装置から報告される非同期のイベントを前記非同期イベントキューイング格納領域へキューイングし、前記ファームウェアの更新終了後に、前記入出力動作開始指示キューイング格納領域にキューイングしていた入出力動作開始指示および前記非同期イベントキューイング格納領域にキューイングしていた前記入出力装置からの非同期イベントをデキューして再開する処理を行うことを特徴とする入出力制御装置。
【請求項２】
請求項１記載の入出力制御装置において、
前記ファームウェア更新時に、前記ファームウェア格納領域に格納させる更新ファームウェアを一時退避する更新ファームウェア一時退避部を含み、前記コンピュータからの指示を処理する入出力ドライバを備えたことを特徴とする入出力制御装置。
【請求項３】
コンピュータからの入出力動作開始指示要求をキューイングする入出力動作開始指示キューイング格納領域と、入出力装置から報告される非同期のイベントをキューイングする非同期イベントキューイング格納領域と、ファームウェアを格納するファームウェア格納領域と、前記ファームウェア格納領域に格納されたファームウェアにより、入出力動作を制御する制御部とを有し、コンピュータからの指示により前記入出力装置との間で入出力動作を行う入出力制御装置のファームウェア更新方法であって、
前記制御部により、前記ファームウェア格納領域に格納されたファームウェアの更新中は、前記コンピュータからの入出力動作開始指示を前記入出力動作開始指示キューイング格納領域へキューイングし、前記入出力装置から報告される非同期のイベントを前記非同期イベントキューイング格納領域へキューイングし、前記ファームウェアの更新終了後に、前記入出力動作開始指示キューイング格納領域にキューイングしていた入出力動作開始指示および前記非同期イベントキューイング格納領域にキューイングしていた前記入出力装置からの非同期イベントをデキューして再開する処理を行うことを特徴とする入出力制御装置のファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力ドライバからの入出力命令に従い接続先の各入出力装置に対して入出力動作を行う入出力制御装置に関し、特に、そのファームウェア更新をシステム稼動中に行う技術に関する。
【背景技術】
【０００２】
従来、入出力ドライバからの入出力命令に従い接続先の各入出力装置に対して入出力動作を行う入出力制御装置においては、入出力動作中に入出力制御装置のファームウェア更新を行うことは動作中の入出力動作が失敗してしまうため、例えば、特許第３４３７０８３号公報（特許文献１）で開示されている回避方法がある。
【０００３】
この特許文献１に記載されている技術は、上位装置との結合中にファームウェアを更新する機能を有する入出力制御装置であって、ファームウェアの更新中に上位装置に対してビジー応答を行うビジー応答機能を割込み処理機能として有する第１の割込み制御部と、該第１の割込み制御部についてのファームウェアの更新中に該第１の割込み制御部に代わって上位装置に対してビジー応答を行うビジー応答機能のみを割込み処理機能として有する第２の割込み制御部を有し、ファームウェアの更新後にビジー応答を行った該上位装置に対してビジー解除報告を行う入出力制御装置に関するものである。
【０００４】
特許文献１の技術によれば、ファームウェアの更新中の上位からの入出力命令はビジー応答されるため、ビジー状態が解除されるまで入出力動作が実行されることがなく、システム稼動中でもファームウェアのアップデートを行うことができる。
【特許文献１】特許第３４３７０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、ファームウェアとは別にビジー応答を行う割込み制御部が必要であり、そのような制御部を保持していない入出力制御装置では、システム稼動中にファームウェアのアップデートを行うことができない。
【０００６】
また、入出力動作をビジー応答で抑止しても、ファームウェア更新に時間がかかり、ビジー解除までに入出力動作を要求したプログラム側で、ビジー解除待ちの時間監視でタイムアウトを検出して入出力動作が異常終了しまうという問題があった。また、入出力装置から報告される非同期のイベントに対してビジー応答したとしても入出力装置側でタイムアウトを検出して異常終了してしまうという問題があった。
【０００７】
そこで、本発明の目的は、入出力動作を要求したプログラム側での時間監視および入出力装置からの非同期のイベントに対する時間監視内にファームウェア更新を行うことができる入出力制御装置およびそのファームウェア更新方法を提供することにある。
【０００８】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１０】
すなわち、代表的なものの概要は、ファームウェア格納領域に格納されたファームウェアの更新中は、コンピュータからの入出力動作開始指示を入出力動作開始指示キューイング格納領域へキューイングし、入出力装置から報告される非同期のイベントを非同期イベントキューイング格納領域へキューイングし、ファームウェアの更新終了後に、入出力動作開始指示キューイング格納領域にキューイングしていた入出力動作開始指示および非同期イベントキューイング格納領域にキューイングしていた入出力装置からの非同期イベントをデキューして再開する処理を行う制御部を備えたものである。
【発明の効果】
【００１１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１２】
すなわち、代表的なものによって得られる効果は、入出力制御装置を有するシステムにおいて、システム稼動中であっても入出力動作を要求したプログラム側での時間監視および入出力装置からの非同期のイベントに対する時間監視内に入出力制御装置のファームウェア更新を実施することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１４】
図１により、本発明の一実施の形態に係る入出力制御装置の構成および動作の概要について説明する。図１は本発明の一実施の形態に係る入出力制御装置の構成を示す構成図である。
【００１５】
図１において、入出力制御装置３０は、更新ファームウェア一時退避領域２１を保持した入出力ドライバ２０を介して、コンピュータ１０に接続され、また、入出力動作を行う入出力装置４０に接続されている。
【００１６】
コンピュータ１０は、内部のシステムメモリ１１内に、入出力装置４０への入出力命令を発行する入出力プログラム１２と、入出力制御装置３０のファームウェアを更新するためのファームウェア更新プログラム１３が格納され、コンピュータ１０は、システムメモリ１１内の入出力プログラム１２およびファームウェア更新プログラム１３をＣＰＵなどで実行することにより、入出力処理やファームウェア更新処理を行っている。
【００１７】
入出力制御装置３０は、入出力動作を制御するファームウェアが格納されているファームウェア格納領域３１、入出力ドライバ２０からの入出力動作開始指示をキューイングする入出力動作開始指示キューイング格納領域３２、入出力装置４０からの非同期イベントをキューイングする非同期イベントキューイング格納領域３３および入出力制御装置３０全体の制御を行う制御部３４を保持しており、制御部３４はファームウェア格納領域３１に格納されているファームウェアにより入出力動作を制御している。
【００１８】
なお、図１においては、入出力ドライバ２０と入出力制御装置３０を分けているが、入出力ドライバ２０を含んだ入出力制御装置３０の構成としてもよい。
【００１９】
入出力動作は、コンピュータ１０のシステムメモリ１１上の入出力プログラム１２により入出力命令が発行され、入出力制御装置３０内の入出力ドライバ２０が入出力命令内容を読出し入出力動作開始を指示する。
【００２０】
その後、ファームウェア格納領域３１に格納されているファームウェアと入出力装置４０との間で入出力動作が実行され、入出力動作終了時にファームウェアが入出力動作完了を入出力ドライバ２０に通知し、入出力ドライバ２０が入出力プログラム１２へ完了報告することにより行われる。
【００２１】
ファームウェア更新は、コンピュータ１０のシステムメモリ１１上のファームウェア更新プログラム１３が更新指示することにより開始する。更新指示を受け取った入出力ドライバ２０がシステムメモリ１１から更新するファームウェアを読出し、更新ファームウェア一時退避領域２１へ退避する。
【００２２】
一時的に保持するのは、更新するファームウェアのファイル読出しは、入出力動作とは非同期で実施することができ入出力動作に影響を及ぼすことがなく、ファームウェア更新時にファイル読出しに要する時間を無くしファームウェアの更新を高速で行うためである。
【００２３】
そして、入出力ドライバ２０は、ファームウェア更新開始を指示する。入出力制御装置３０の制御部３４は、ファームウェア格納領域３１に格納されているファームウェアにより、入出力ドライバ２０からのファームウェア更新指示を受け取ると実行中の入出力動作があれば入出力動作が終了するのを待つ。
【００２４】
入出力動作が終了すると、入出力ドライバ２０に対してファームウェア更新開始が可能であることを通知する。入出力制御装置３０からの更新開始通知を受け取った入出力ドライバ２０は、入出力開始の指示を一時ストップさせて、更新ファームウェア一時退避領域２１に退避していた更新ファームウェアをファームウェア格納領域３１へ書き込む指示をして、ファームウェア更新を行いファームウェアの再スタートを指示する。
【００２５】
その後、入出力ドライバ２０は、ファームウェア更新プログラム１３へ完了を通知することによりファームウェア更新が完了する。
【００２６】
システム稼動中にファームウェア更新を行うということは、入出力プログラム１２からの入出力動作、入出力装置４０からの非同期イベントおよびファームウェア更新は、排他で実行され、入出力動作や非同期イベントに影響することなくファームウェア更新を行うことが必要である。
【００２７】
次に、図２および図３により、本発明の一実施の形態に係る入出力制御装置のファームウェア更新処理について説明する。図２は本発明の一実施の形態に係る入出力制御装置のファームウェア更新までの処理を示す処理フローであり、入出力プログラム１２から発行された入出力命令（以下、入出力命令１という）を実施中にファームウェア更新プログラム１３からファームウェア更新指示を受けてからファームウェア更新までの入出力制御装置３０での処理を示し、図３は本発明の一実施の形態に係る入出力制御装置のファームウェア更新後の処理を示す処理フローである。
【００２８】
まず、入出力命令１を受けた入出力ドライバ２０は、入出力制御装置３０に対して入出力命令１の開始を指示する（ステップ１０１）。入出力命令１を受け取った入出力制御装置３０は、入出力装置４０に対しての入出力動作を開始する（ステップ２０１）。
【００２９】
次に、ファームウェア更新指示を受け取った入出力ドライバ２０は、更新ファームウェアを読出し一時領域へ保存する（ステップ１０２）。
【００３０】
一時的に保持するのは、ファイル読出しに要する時間を無くしファームウェアの更新を高速で行うためである。その後、入出力制御装置３０に対してファームウェア更新開始を指示する（ステップ１０３）。
【００３１】
ファームウェア更新開始の指示を受け取った入出力制御装置３０の制御部３４は、入出力制御装置３０内のハードウェアに対して入出力ドライバ２０からの新規入出力開始の指示および入出力装置からの非同期イベントをキューイングするように指示する（ステップ２０２）。
【００３２】
その後の入出力ドライバ２０からの新規入出力動作２開始の指示（ステップ１０４）は、入出力制御装置３０内のハードウェアが入出力動作開始指示キューイング格納領域３２へキューイングし（ステップ２０３）、入出力装置４０からの非同期イベントに対しては同様に非同期イベントキューイング格納領域３３へキューイングする（ステップ２０４）。
【００３３】
この間、入出力制御装置３０と入出力装置４０の間では継続して入出力動作１が行われている。入出力動作１が終了したら入出力制御装置３０は入出力ドライバ２０へ終了通知を報告し（ステップ２０５）、入出力ドライバ２０は入出力動作１終了を入出力プログラム１２へ報告する（ステップ１０５）。
【００３４】
入出力制御装置３０は、入出力動作１が終了したことにより、ファームウェア更新が可能となったことを入出力ドライバ２０へ通知し（ステップ２０６）、更新待ちの状態となる（ステップ２０７）。ファームウェア更新可能通知を受け取った入出力ドライバ２０は、入出力動作開始の指示を一時ストップさせ、ファームウェアの更新を行う（ステップ１０６）。
【００３５】
ステップ２０３およびステップ２０４を実施する理由は、入出力動作１が終了するまでに、入出力プログラム１２からの新規入出力動作開始の指示および入出力装置４０からの非同期イベントをファームウェアが受け付けてしまうと受け付けた動作が終了するまで更新指示が行えないためであり、ファームウェア更新が長時間保留される現象を防ぐためである。
【００３６】
本実施の形態では、ファームウェア更新前に実行中の入出力動作が１つのときを一例で示しているが、複数の入出力動作を実行している場合もある。複数の入出力動作が実行中の場合には、動作中の全ての入出力動作が終了したあとにファームウェア更新可能を入出力ドライバ２０へ通知する。
【００３７】
入出力ドライバ２０からのファームウェアの更新を実施中は、入出力制御装置３０内のファームウェア動作はストップしている。このファームウェア更新中においても、新規入出力動作開始要求および非同期イベント受信が発生することがあるが、入出力制御装置３０内の全てハードウェアでキューイングする（ステップ２０８）。
【００３８】
入出力ドライバ２０によるファームウェアの更新が終了したら、入出力ドライバ２０はファームウェアの再スタート指示を行い（ステップ１０７）、ファームウェア更新プログラム１３に対してファームウェア更新完了通知を行う（ステップ１０８）。
【００３９】
ファームウェアが再スタートした入出力制御装置３０では、入出力制御装置３０内のハードウェアに対するキューイング指示を解除（ステップ２０９）し、ハードウェアでキューイングしていた入出力装置からの非同期イベントを非同期イベントキューイング格納領域３３からデキューして入出力装置に対して非同期イベントに対する応答を通知する（ステップ２１０）。
【００４０】
また、入出力制御装置３０内のハードウェアでキューイングしていた入出力動作開始の指示を入出力動作開始指示キューイング格納領域３２からデキューして入出力装置４０との入出力動作を開始する。
【００４１】
本実施の形態では、ステップ２０３で入出力動作２開始の指示をキューイングしているので、入出力動作２開始の指示を入出力動作開始指示キューイング格納領域３２からデキューして入出力装置との入出力動作２を開始する（ステップ２１１）。
【００４２】
入出力動作２の動作が終了したら入出力ドライバ２０に対して入出力動作２の終了を通知し（ステップ２１２）、終了通知を受け取った入出力ドライバ２０は入出力動作２の終了処理を行う（ステップ１０９）。
【００４３】
その後、入出力動作開始指示キューイング格納領域３２および非同期イベントキューイング格納領域３３にハードウェアでキューイングしている他の非同期イベントおよび入出力動作開始指示があればデキューして処理する（ステップ２１３）。
【００４４】
この処理により、ファームウェア更新中の入出力プログラム１２からの入出力動作および入出力装置４０からの非同期イベントは入出力制御装置３０内でキューイングされるため処理ができない時間が発生する。
【００４５】
しかしながら、入出力動作を実施していない時のファームウェアの更新に要する時間は入出力動作のタイムアウト時間および入出力制御装置３０からの非同期イベントのタイムアウト時間よりも短時間で実施できるため、タイムアウトとなる前までにファームウェアの更新を完了することができる。
【００４６】
以上のように、本実施の形態では、システム稼動中であっても入出力動作を要求したプログラム側での時間監視および入出力装置からの非同期のイベントに対する時間監視内に入出力制御装置３０のファームウェア更新を実施することが可能である。
【００４７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００４８】
本発明は、入出力装置に対して入出力動作を行う入出力制御装置に関し、そのファームウェア更新をシステム稼動中に行う機器に広く適用可能である。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施の形態に係る入出力制御装置の構成を示す構成図である。
【図２】本発明の一実施の形態に係る入出力制御装置のファームウェア更新までの処理を示す処理フローである。
【図３】本発明の一実施の形態に係る入出力制御装置のファームウェア更新後の処理を示す処理フローである。
【符号の説明】
【００５０】
１０…コンピュータ、１１…システムメモリ、１２…入出力プログラム、１３…ファームウェア更新プログラム、２０…入出力ドライバ、２１…更新ファームウェア一時退避領域、３０…入出力制御装置、３１…ファームウェア格納領域、３２…入出力動作開始指示キューイング格納領域、３３…非同期イベントキューイング格納領域、３４…制御部、４０…入出力装置。
【図１】
2009163658.tif 000003
【図２】
2009163658.tif 000004
【図３】
2009163658.tif 000005