JP2004341725A - Control method for computer, computer, storage controller, program and recording medium - Google Patents

Control method for computer, computer, storage controller, program and recording medium Download PDF

Info

Publication number
JP2004341725A
JP2004341725A JP2003136093A JP2003136093A JP2004341725A JP 2004341725 A JP2004341725 A JP 2004341725A JP 2003136093 A JP2003136093 A JP 2003136093A JP 2003136093 A JP2003136093 A JP 2003136093A JP 2004341725 A JP2004341725 A JP 2004341725A
Authority
JP
Japan
Prior art keywords
control unit
memory
program
divided data
processors
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.)
Pending
Application number
JP2003136093A
Other languages
Japanese (ja)
Other versions
JP2004341725A5 (en
Inventor
Satoru Takayama
悟 高山
Hitoshi Nakano
仁 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003136093A priority Critical patent/JP2004341725A/en
Publication of JP2004341725A publication Critical patent/JP2004341725A/en
Publication of JP2004341725A5 publication Critical patent/JP2004341725A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently supply a program executed by each processor. <P>SOLUTION: This computer includes: two or more processors; first memories each provided correspondingly to each of the processors, storing the program executed by the processor; and a second memory capable of being accessed by each processor. The two or more processors respectively share division data that are data obtained by dividing the program stored in the first memory to transfer them to the second memory. The processor combines the division data stored in the second memory by the transfer to restore the program. The processor stores the restored program into the first memory. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体に関する。
【0002】
【従来の技術】
負荷分散の実現や高性能化、高信頼性化等を目的として構成されるいわゆるマルチプロセッサアーキテクチャが採用されるコンピュータシステムにおいては、プロセッサに実行させるマイクロプログラムを記憶するためのメモリがプロセッサごとに用意される構成をとるものが存在する。例えば、昨今のIT技術の発展により需要が増大しているディスクアレイ装置では、アクセスしてくる情報処理装置との間の通信を制御する通信制御部(チャネル制御部)や大量のディスクドライブへのアクセスを行うためのディスク制御装置を複数実装したマルチプロセッサの構成であるものが存在するが、このようなディスクアレイ装置においては、マイクロプログラムを記憶するためのメモリが、通信制御部ごと、もしくは、ディスク制御部ごとに設けられる。
【0003】
上記の構成をとるコンピュータシステムにおいては、例えば、そのセットアップ時やバージョンアップ時等において、メモリに対するマイクロプログラムの転送処理が行われる。ここでこのマイクロプログラムの転送処理はコンピュータシステムの他の処理に影響を与えるため、できるだけ効率よく行うことが好ましい。そこで、この転送処理を効率化する仕組みとして、例えば、特許文献1には、マイクロプログラムを各プロセッサがアクセス可能な共有メモリに転送し、各プロセッサが自身でマイクロプログラムを読み込むことにより並列的なデータ転送を行うことで負荷分散を図り、プロセッサに対応するメモリへのマイクロプログラムのローディング時間を短縮する技術が開示されている。
【0004】
【特許文献1】
特開平11−250028号公報
【0005】
【発明が解決しようとする課題】
上記公報に記載の技術では、各プロセッサに対応するメモリにロードさせるマイクロプログラムを共有メモリにあらかじめ転送するようにしているが、この転送は特定のプロセッサを介して行われているため、特定のプロセッサへの負荷の集中が避けられない。また、特定のプロセッサのみが書き込みに関与する仕組みでは、特定のプロセッサの処理能力により転送処理の効率が決まってしまうため、転送処理の効率を向上させることは難しい。
【0006】
この発明はこのような背景に鑑みてなされたもので、マルチプロセッサアーキテクチャからなるコンピュータシステムにおいて、各プロセッサにより実行されるマイクロプログラムを効率よく供給することができる、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体を提供することを目的とする。
【0007】
【課題を解決するための手段】
2以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータの制御方法において、少なくとも2以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送するステップと、前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させるステップと、を有することとする。
【0008】
この発明は、2以上のプロセッサを有するマルチプロセッサアーキテクチャを採用するコンピュータに適用される。前記第一のメモリは、例えば、このようなアーキテクチャのコンピュータの各プロセッサに対応させて各プロセッサによって実行されるマイクロプログラムが格納される、ローカルメモリや不揮発性メモリである。前記第二のメモリは、例えば、このようなアーキテクチャのコンピュータにおける各プロセッサからアクセス可能に設けられた共有のメモリである。
この発明は、例えば、外部から供給されたマイクロプログラムを前記各プロセッサにより前記第一のメモリにセットアップする場合に適用される。
【0009】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄及び図面により明らかにされる。
【0010】
【発明の実施の形態】
図1に本発明の一実施例として説明する制御装置100のブロック構成を示している。制御装置100は、プロセッサ1,2,3,4、各プロセッサ1,2,3,4からアクセス可能な共有メモリ5、プロセッサ1,2,3,4のうちの少なくともいずれかのプロセッサによって制御される制御対象部位6,7、プロセッサ1,2,3,4と通信可能に接続されるサービスプロセッサ8、プロセッサ1,2,3,4と共有メモリ5との間を通信可能に接続する共有メモリアクセスバス9、プロセッサ1,2,3,4とサービスプロセッサ8との間を通信可能に接続するサービスプロセッサ−プロセッサ間通信バス10等を含んで構成される。
【0011】
プロセッサ1,2,3,4は、それぞれプロセッサ制御部11,21,31,41、フラッシュメモリ等で構成される不揮発メモリ12,22,32,42、SRAMやDRAM等で構成されるローカルメモリ13,23,33,43、マイクロプログラム格納エリア14,24,34,44、マイクロプログラムロードエリア15,25,35,45等を含んで構成される。共有メモリ5には、マイクロプログラム格納エリア51が確保されている。
【0012】
制御装置100において、プロセッサ1,2,3,4において実行されるマイクロプログラムは、サービスプロセッサ8から共有メモリ5を経由して各プロセッサ1,2,3,4に供給される。サービスプロセッサ8は、プロセッサ制御部81、メモリ82等を含んで構成される。各プロセッサ1,2,3,4に供給されるマイクロプログラムは、コンピュータ等の外部装置70から供給されてメモリ82の記憶領域に確保されているマイクロプログラム格納エリア83に格納される。外部装置70からサービスプロセッサ8へのマイクロプログラムの供給は、例えば、制御装置100の導入時やマイクロプログラムのバージョンアップ時等に行われる。
【0013】
プロセッサ1,2,3,4において、サービスプロセッサ8から供給されたマイクロプログラムは、マイクロプログラム格納エリア14,24,34,44、及びマイクロプログラムロードエリア15,25,35,45に格納される。各プロセッサ1,2,3,4において、例えば、プロセッサ1,2,3,4の起動時にマイクロプログラム格納エリア14,24,34,44からマイクロプログラムロードエリア15,25,35,45にマイクロプログラムがロードされる。
【0014】
制御装置100において、外部装置70から供給されてマイクロプログラム格納エリア83に格納されたマイクロプログラムは、まず、共有メモリ5のマイクロプログラム格納エリア51に転送され、その後、各プロセッサ1,2,3,4が共有メモリアクセスバス9を経由して共有メモリ5にアクセスすることにより各プロセッサ1,2,3,4に取り込まれる。
【0015】
マイクロプログラム格納エリア83から共有メモリ5のマイクロプログラム格納エリア51へのマイクロプログラムの転送は、サービスプロセッサ−プロセッサ間通信バス10、プロセッサ1,2,3,4のうちの少なくとも1以上のプロセッサ、共有メモリアクセスバス9を経由して行われる。ここでマイクロプログラムは、その全体をプロセッサ1,2,3,4のうちの特定のプロセッサにより一括して転送する(以下、この転送方式を一括転送方式と称する)ことができる。また、マイクロプログラムは、これを複数のデータ(以下、分割データと称する)に分割し、分割データをそれぞれ複数のプロセッサ1,2,3,4に分担させて共有メモリ5に転送することもできる(以下、この転送方式を分割転送方式と称する)。一括転送方式もしくは分割転送方式のいずれの転送方式で転送するのかは、例えば、外部装置70からサービスプロセッサ8に対して指示することができる。
【0016】
一括転送方式の場合における処理の流れを図2に示している。一括転送方式では、サービスプロセッサ8のマイクロプログラム格納エリア83に格納されているマイクロプログラムを特定のプロセッサが一括して共有メモリ5に転送する。
転送に際しては、まず、サービスプロセッサ8からマイクロプログラムの転送処理を担当する特定のプロセッサに対してサービスプロセッサ−プロセッサ間通信バス10を介してマイクロプログラムが転送され(S211)、特定のプロセッサは自身のローカルメモリにマイクロプログラムを記憶する。次に、前記特定のプロセッサが記憶している前記マイクロプログラムを共有メモリ5のマイクロプログラム格納エリア51に転送する(S212)。
【0017】
一方、分割転送方式の場合における処理の流れを図3に示している。この方式では、まず、サービスプロセッサ8がマイクロプログラム格納エリア83に格納されているマイクロプログラムを所定のデータサイズに分割することにより分割データを生成し、生成した分割データをメモリ82の所定の領域に格納する(S311)。プロセッサ制御部81は、生成した分割データをメモリ82に記憶するに際し、生成した分割データのそれぞれに識別子を付帯させてメモリ82に記憶する(S312)。分割データに付帯させる前記識別子は、後に分割データを結合してマイクロプログラムを復元する際の結合順序が把握できるようにするために、例えば、数字もしくはアルファベット等、結合順序を特定できる識別子が採用される。なお、この実施例で説明する分割データには、識別子として、マイクロプログラムの復元時における結合順を示す数字(以下、分割データ番号と称する)が付与される。
【0018】
次に、プロセッサ制御部81は、以上のようにして生成された各分割データに対し、それぞれの共有メモリ5への転送処理を担当するプロセッサを割り当てる(S313)。各分割データの転送処理をどのプロセッサが担当しているのか、すなわち、各分割データを担当するプロセッサの割り当ては、メモリ82の記憶領域に記憶されている、図4に示す転送データ管理テーブル400に登録される(S314)。この図に示すように、転送データ管理テーブル400には、分割データに付与されている識別子とプロセッサに付与されている識別子との対応づけが登録されている。「分割データ」の欄410には分割データの識別子が設定される。
「担当プロセッサ」の欄420にはその分割データの共有メモリ5への転送処理を担当するプロセッサの識別子が設定される。「先頭アドレス」の欄430には、その分割データが格納されているメモリ82上のアドレスが設定される。「データ長」の欄440には、その分割データのデータ長が設定される。「ステータス」の欄450には、その分割データが既に転送済であるかどうかを示すフラグが設定される。この例では、転送済みの場合には「転送済」が、未転送の場合には「未転送」が設定される。サービスプロセッサ8は、分割データの割り当てを行う度に、もしくは、変更する度に、転送データ管理テーブル400の内容をリアルタイムに更新する。
【0019】
サービスプロセッサ8は、分割データを生成して各分割データの転送処理を担当するプロセッサを決定すると、分割データの転送処理を担当させるプロセッサに対し、分割データの転送指示を通知する(S315)。各プロセッサ1,2,3,4は、前記通知を受信すると、サービスプロセッサ8から送られてくる分割データを記憶するためのローカルメモリ13,23,33,43上の記録領域の確保等の準備処理を行った後、自身が分割データの受信待機状態である旨の通知をサービスプロセッサ8に通知する(S316)。サービスプロセッサ8は、前記通知を受信すると、前記プロセッサに対して前記プロセッサが転送処理を担当する分割データを送信する(S317)。なお、サービスプロセッサ8は、送信する各分割データに対し、上記の識別子を付帯させる。サービスプロセッサ8から送られてくる分割データを受信すると、各プロセッサは、受信した分割データを自身のローカルメモリ13,23,33,43に記憶する(S318)。
【0020】
次に各プロセッサ1,2,3,4は、ローカルメモリ13,23,33,43に分割データを記憶すると、記憶した分割データを、共有メモリ5のマイクロプログラム格納エリア51に共有メモリアクセスバス9を介して格納する(S319)。図5にマイクロプログラム格納エリア51に格納されている分割データの状態を示している。各分割データの先頭には、分割データ番号510が格納される。
分割データの末尾には、分割データの末尾であることを示す情報(EOD(End Of Data))が設定されている。この図に示すように、分割データは、マイクロプログラム格納エリア51の先頭アドレスから順に書き込まれていく。また、原則として、既に書き込まれている分割データに続けて次の分割データが書き込まれる。マイクロプログラム格納エリア51に格納される分割データの格納順序は、必ずしも分割データ番号の番号順であるとは限らない。すなわち、分割データの格納順序は、例えば、各プロセッサ1,2,3,4の処理負荷等に応じて決定され、マイクロプログラムを復元する際における分割データを結合する順序に必ずしも一致しているとは限らない。
【0021】
各プロセッサ1,2,3,4は、以上のようにして前記分割データについてのマイクロプログラム格納エリア51への格納が完了すると、サービスプロセッサ8に対して前記分割データについての共有メモリ5への格納を完了した旨を通知する(S320)。サービスプロセッサ8は、前記プロセッサから送られてくる前記通知を受信すると、転送データ管理テーブル400における該当の分割データの「ステータス」の欄450に「転送済」を設定する(S321)。
【0022】
サービスプロセッサ8は、転送データ管理テーブル400の「ステータス」の欄450の内容をリアルタイムに監視している(S322)。サービスプロセッサ8は、転送データ管理テーブル400の全ての分割データの「ステータス」の欄450に「転送済」が設定されたことを検知すると(S322:YES)、共有メモリ5へのマイクロプログラムの格納(セットアップ)が完了した旨を、各プロセッサ1,2,3,4に対して通知する(S323)。
【0023】
各プロセッサ1,2,3,4は、それぞれのローカルメモリ13,23,33,43に、マイクロプログラムの更新要否を示すマイクロプログラム更新フラグを管理している。各プロセッサ1,2,3,4のうちの少なくともいずれかのプロセッサは、前記通知を受信すると、マイクロプログラム更新フラグを更新が必要であることを示すONの状態に設定する(S324)。
【0024】
以上のようにして、サービスプロセッサ8から共有メモリ5へのマイクロプログラムの転送処理が行われる。なお、分割転送方式によりマイクロプログラムを転送した場合、マイクロプログラムは複数の分割データに分割され、マイクロプログラムは各分割データの転送処理を担当する複数のプロセッサによって共有メモリ5に格納される。このため、マイクロプログラムの転送処理について負荷分散が図られることになり、1つのプロセッサに処理負荷を集中させることなく、サービスプロセッサ8に格納されているマイクロプログラムを効率よく共有メモリ5に格納することができる。
【0025】
なお、以上に説明した実施例では、共有メモリ5にマイクロプログラムが格納された旨の通知をサービスプロセッサ8から各プロセッサ1,2,3,4に通知するようにしている(S323)が、サービスプロセッサ8から通知するのでは無く、プロセッサ1,2,3,4が自発的にサービスプロセッサ8に共有メモリ5に新たにマイクロプログラムを格納されたかどうかを問い合わせる構成としてもよい。
【0026】
また、各プロセッサ1,2,3,4から各々が共有メモリ5に格納した分割データの数(以下、格納数と称する)を所定のタイミング(例えば、一定時間ごと)で自発的もしくはサービスプロセッサ8からの要求に応じてサービスプロセッサ8に通知するようにし、サービスプロセッサ8が、各プロセッサから通知される格納数の総和がマイクロプログラムの分割数に一致したことをもって共有メモリ5にマイクロプログラムが格納されたと判断するようにしてもよい。また、この場合、各プロセッサ1,2,3,4からサービスプロセッサ8に通知される格納数を、ユーザインタフェースによりリアルタイムにオペレータ等に通知するようにすることで、オペレータ等に分割データの共有メモリ5への転送処理のリアルタイムな進捗状況を把握させることも可能となる。
【0027】
以上に説明した実施例において、各プロセッサがダウンロードする分割データはそれぞれ異なる分割データであり、メモリ82に格納されている同じ分割データに対して複数のプロセッサからアクセスされることが無い。このため、分割データに対して排他制御を行う必要が無くなり、これによりプロセッサから分割データをダウンロードするためのプログラムをシンプルに構成することが可能となり、メモリ容量の有効利用等が図られる。また、排他制御が必要で無いことにより排他制御に起因する処理待ち時間も発生しないこととなり、その分、処理効率が向上する。
【0028】
以上に説明した実施例において、分割データへのプロセッサの割り当て方法としては、例えば、単純に各プロセッサ1,2,3,4に分割データを割り当てる方法、各プロセッサ1,2,3,4の処理負荷に応じて処理負荷の少ないプロセッサから順に割り当てていく方法等がある。また、ひとたび分割データが割り当てられた後、転送処理が開始されてから転送処理が完了するまでの期間のある時点において、その時点でのリアルタイムな処理負荷を測定し、その測定結果に応じて残存する未転送の分割データの転送処理を担当するプロセッサ1,2,3,4を割り当て直すようにすることもできる。この場合、例えば、先に転送処理が終了して処理負荷が軽くなったプロセッサを再び転送処理に参加させることが可能となり、処理の効率を向上させることができる。
【0029】
また、以上に説明した実施例では、サービスプロセッサ8からプロセッサ1,2,3,4に対して分割データの転送指示を通知するようにしているが(S315)、転送すべき分割データがあるか否かをプロセッサ1,2,3,4が自発的にサービスプロセッサ8に問い合わせる構成とすることもできる。またこの場合、プロセッサ1,2,3,4が自身の処理負荷の変化を監視して、処理負荷が少ない時に、プロセッサ1,2,3,4が分割データがあるか否かをサービスプロセッサ8に問い合わせる構成とすることもできる。このようにすることで、マイクロプロセッサの供給に関する処理の効率をより一層向上させることができる。なお、この場合、処理負荷の大小は、単位時間当たりのタスク数等の処理負荷に対応するパラメータの値を閾値と比較することにより判定する。
【0030】
マイクロプログラムの分割数や分割データのデータサイズは固定的に設定してもよいし、上記転送が行われる度に変化させるようにすることもできる。また、分割数やデータサイズは、例えば、プロセッサ1,2,3,4の処理負荷の状況に応じて変化させるようにすることもできる。この場合、処理負荷は、例えば、各プロセッサにおいて単位時間当たりに処理されるタスク数を計測することにより把握する。
【0031】
また、分割数については、例えば、プロセッサ1,2,3,4のいずれの処理負荷も大差ない場合には、プロセッサ1,2,3,4の全てにマイクロプログラムを転送させるようにし、この場合には分割数を4に設定し、例えば、プロセッサ1の処理負荷が高い場合には、プロセッサ2,3,4のみにマイクロプログラムを転送させるようにし、この場合には分割数を3に設定するようにすることも考えられる。また、分割数をNと設定している場合において、プロセッサの処理負荷の差が閾値よりも小さければ各分割データのデータサイズを均等に設定し、プロセッサの処理負荷の差が閾値以上となった場合は処理負荷が大きいプロセッサが担当する分割データのデータサイズを処理負荷の低いプロセッサが担当する分割データのデータサイズよりも小さく設定するようにしてもよい。
【0032】
===プロセッサへのロード===
共有メモリ5のマイクロプログラム格納エリア51に格納されているマイクロプログラムは所定のタイミングでプロセッサ1,2,3,4に取り込まれる。プロセッサ1,2,3,4に取り込まれたマイクロプログラムは、不揮発性メモリ12,22,32,42上に確保されているマイクロプログラム格納エリア14,24,34,44に格納される。また、マイクロプログラムロードエリア15,25,35,45には、マイクロプログラム格納エリア51、もしくは、マイクロプログラム格納エリア14,24,34,44に記憶されているマイクロプログラムが適宜ロードされる。また、上述したように、分割転送方式で転送されたマイクロプログラム格納エリア51に格納されているマイクロプログラムは分割データの状態で格納されているので、これを利用できるようにするために、分割データは所定のタイミングで結合されてもとのマイクロプログラムの復元が行われる。
【0033】
===ローカルメモリへのロード===
図6は、本発明が適用される制御装置100のタスク生成シーケンスである。プロセッサ1,2,3,4が起動されると(S601)、プロセッサ1,2,3,4内部にある不揮発メモリ12,22,32,42からローカルメモリ13,23,33,43にルートプログラム606がロードされ(S614)、ルートタスク(S602)が生成される(S613)。生成されたルートタスク(S602)は、不揮発メモリ12,22,32,42からマイクロプログラムロードプログラム607をロードし(S616)、マイクロプログラムロードタスク603を生成する(S615)。
マイクロプログラムロードタスク(S603)は、不揮発メモリ12,22,32,42に格納されているメインプログラム608、共有メモリ5に格納されているメインプログラム612のいずれかをロードし(S618)、メインタスク(S604)を生成する(S617)。
【0034】
図7は、図6のマイクロプログラムロードタスク(S603)の詳細な処理フローである。マイクロプログラムロードタスク(S603)は、起動されると、共有メモリアクセスバスの設定(S702)や共有メモリアクセスパスの確立(S703)を行う。次に、マイクロプログラムロードタスク(S603)は、共有メモリアクセスバス9が使用可能であるか否かを判定し(S704)、使用可能であるならば、共有メモリ5中のマイクロプログラムが有効か否かを判定する(S705)。有効であるならば、共有メモリ5のマイクロプログラムと不揮発メモリ12,22,32,42のマイクロプログラムとが異なるか否かを判定する(S706)。ここでマイクロプログラムが異なるならば、共有メモリ5からローカルメモリ13,23,33,43にマイクロプログラムをロードする(S707)。前記ロードに際し、プロセッサ制御部11,21,31,41は、共有メモリ5のマイクロプログラム格納エリア51に格納されている複数の分割データを読み出して、読み出した分割データを識別子の順序で順に結合し、もとのマイクロプログラムを復元する。そして、以上の処理によって復元されたマイクロプログラムが共有メモリ5からローカルメモリ13,23,33,43にロードされる。なお、(S706)におけるマイクロプログラムが異なるかどうかの判定に代えて、上述のマイクロプログラム更新フラグに応じて共有メモリ5からのマイクロプログラムのロードを行うかどうかを決定するようにしてもよい。
【0035】
次にプロセッサ1,2,3,4は、マイクロプログラムのロードに成功したか否かを判定し(S708)、共有メモリ5からローカルメモリ13,23,33,43へのマイクロプログラムのロードに成功したならば、共有メモリ5のマイクロプログラム有効フラグをONに設定する(S709)。ここでこのマイクロプログラム有効フラグは、後述するように、マイクロプログラムを共有メモリ5から不揮発性メモリ12,22,32,42にロードする必要があるかどうか、すなわち、不揮発性メモリ12,22,32,42の内容を更新する必要があるかどうかを判定するのに用いられる。
【0036】
次に、(S710)では、プロセッサ1,2,3,4は、ローカルメモリ13,23,33,43へのマイクロプログラムのロードに成功したか否かを判定し(S710)、成功したならば、メインタスクを生成し(S711)、処理を終了する(S712)。
【0037】
なお、(S704)の判定において、バスが使用可能でなかった場合や、(S706)の判定において、共有メモリ5のマイクロプログラムと不揮発メモリ12,22,32,42のマイクロプログラムが同じであった場合には、共有メモリ5からではなく不揮発メモリ12,22,32,42からマイクロプログラムをロードする(S714)。また、(S705)の判定において、共有メモリ5中のマイクロプログラムが、共有メモリ5に記憶されているデータの揮発や障害発生等の理由により無効であった場合や、(S708)の判定において、共有メモリ5からのロードに成功しなかった場合には、共有メモリ5に記憶されているマイクロプログラム無効フラグをONに設定する(S713)。また、不揮発メモリ12,22,32,42のマイクロプログラム格納エリア14,24,34,44からローカルメモリ13,23,33,43にマイクロプログラムをロードする(S714)。そして、マイクロプログラムのローカルメモリ13,23,33,43へのロードに成功したか否かを判定し(S710)、成功したならば、プロセッサ1,2,3,4は、メインタスクを生成し(S711)、処理を終了する(S712)。
【0038】
===不揮発性メモリへのロード===
図8は、図6のメインタスク(S604)の処理を説明するフローチャートである。この図は、不揮発性メモリ12,22,32,42及び共有メモリ5へのマイクロプログラムのセットアップに関する処理を説明している。メインタスク(S604)は、起動されると、制御装置100のハードウェアやソフトウェアのさまざまな初期設定(S802)を行う。図6におけるマイクロプログラムロードタスク(S603)において共有メモリ5のマイクロプログラム有効フラグがONに設定された場合には(S709)、共有メモリ5のマイクロ有効フラグがONか否かの判定(S803)はONとなり(S803:YES)、プロセッサ1,2,3,4は、共有メモリ5から不揮発メモリ12,22,32,42のマイクロプログラム格納エリア14,24,34,44にマイクロプログラムを転送する(S804)。また(S803)の判定結果がONでない場合(S803:NO)には、(S804)の処理をスキップする。
【0039】
マイクロプログラムロードタスク(S603)において共有メモリ5のマイクロプログラム無効フラグがONに設定された場合(S713)、共有メモリ5のマイクロプログラム無効フラグがONか否かの判定(S805)は、ONとなり(S805:YES)、不揮発メモリ12,22,32,42のマイクロプログラム格納エリア14,24,34,44に記憶されているマイクロプログラムが共有メモリ5に転送され、これによりマイクロプログラム格納エリア51にマイクロプログラムが格納される(S806)。(S807)において、プロセッサ1,2,3,4は、不揮発メモリ12,22,32,42から共有メモリ5へのマイクロプログラムの転送に成功したか否かの判定を行い、成功したと判断したならば(S807:YES)、共有メモリ5のマイクロプログラム無効フラグをOFFに設定し(S808)、メインタスクの初期設定を終了する(S809)。また、(S805)の判定において、共有メモリ5のマイクロプログラム無効フラグがOFFであった場合(S805:NO)、プロセッサ1,2,3,4はそのままメインタスクの初期設定を終了する(S809)。また、(S807)の判定で、転送に成功しなかった時は(S807:NO)、そのままメインタスクの初期設定を終了する。
【0040】
===応用例===
図9に、以上に説明した制御装置100の応用例として説明する、ディスクアレイ装置900(ストレージ制御装置)及びこれに通信路940を介してアクセスする情報処理装置950とを含んで構成されるストレージシステム90のブロック構成を示している。情報処理装置950は、CPU(Central Processing Unit)やメモリを備えて構成される、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等のコンピュータである。通信路940を介して行われる通信には、例えば、TCP/IPプロトコル、ファイバーチャネルプロトコル(Fibre Channel Protocol)、FICON(Fibre Connection)(登録商標)やESCON(Enterprise System Connection) (登録商標)等の通信プロトコルが採用される。
【0041】
ディスクアレイ装置900は、チャネル制御部910(通信制御部)、ディスク制御部920、キャッシュメモリ930、共有メモリ931、及びこれらを接続するスイッチ932、ディスクドライブ933、サービスプロセッサ934等を備えて構成される。スイッチ932としては、例えば、高速クロスバスイッチが用いられる。ディスクドライブ933はディスクアレイ装置900の他の構成部分とは別筐体に収容されていることもある。サービスプロセッサ934には管理端末935が接続している。管理端末935は、オペレータ等によって操作されるコンピュータである。オペレータ等は管理端末935を操作して、ディスクアレイ装置900に対する各種の設定や運用、動作状況の監視、障害監視等を行う。また、管理端末935は、バージョンアップ等の必要のためにチャネル制御部910やディスク制御部920にマイクロプログラムを供給するため、インターネット等のネットワークを通じたダウンロードやCD−ROM、DVD−ROM等の記録媒体936に記録されて供給されるマイクロプログラムをサービスプロセッサ934のメモリに転送する機能も提供する。なお、チャネル制御部910やディスク制御部装置920においてファイルシステムが動作している場合には、マイクロプログラムは、ファイル形式で提供されることもある。
【0042】
図10にチャネル制御部910の構成を示している。チャネル制御部910は、情報処理装置950との間での通信に関する機能を提供する通信インタフェース9101、ローカルメモリ9102、フラッシュメモリ等で構成される不揮発性メモリ9103、ローカルメモリ9102に記憶されているプログラムを実行することによりチャネル制御部910の各種機能を実現するマイクロプロセッサ9104、チャネル制御部910とキャッシュメモリ930との間での高速なデータ転送を実現するI/Oプロセッサ9105等を備える。不揮発性メモリ9103には、チャネル制御部910が提供する各種の機能を実現するソフトウェアであるマイクロプログラムが記憶されており、マイクロプログラムは適宜ローカルメモリ9102にロードされてマイクロプロセッサ9104により実行される。なお、これらの構成は互いにバス9109で接続されている。I/Oプロセッサ9105としては、例えば、DMA(Direct Memory Access)プロセッサが用いられる。
【0043】
図11にディスク制御部920の構成を示している。ディスク制御部920は、キャッシュメモリ930やチャネル制御部910との間での高速なデータ転送を実現するI/Oプロセッサ9201、ローカルメモリ9202、フラッシュメモリ等で構成される不揮発性メモリ9203、ローカルメモリ9202に記憶されているプログラムを実行することによりディスク制御部920の各種機能を実現するマイクロプロセッサ9204、ディスクドライブ933に対するデータの書き込みや読み出しを行うディスクコントローラ9205等を備える。不揮発性メモリ9203には、ディスク制御部920が提供する各種の機能を実現するソフトウェアであるマイクロプログラムが記憶されている。マイクロプログラムは適宜ローカルメモリ9202にロードされてマイクロプロセッサ9204により実行される。なお、これらの構成は互いにバス9209で接続されている。I/Oプロセッサ9201としては、例えば、DMA(Direct Memory Access)プロセッサが用いられる。ディスクコントローラ9205は、ディスクドライブ933をRAIDの方式(例えば、RAID0,1,5)で制御する機能も提供する。
【0044】
共有メモリ931及びキャッシュメモリ930は、例えば、各種制御情報やコマンド等を記憶するために利用される。キャッシュメモリ930は、例えば、ディスクドライブ933に書き込まれるデータやディスクドライブ933から読み出されたデータを記憶するのに利用される。
【0045】
図12にサービスプロセッサ934の構成を示している。サービスプロセッサ934は、マイクロプロセッサ9344、メモリ9342等を備えて構成される。サービスプロセッサ934は、内部通信インタフェース9343により内部通信路970を介してチャネル制御部910やディスク制御部920と通信可能に接続されている。内部通信路970としては、例えば、PCI等のバスや通信プロトコルとしてTCP/IPを用いるLAN(Local Area Network)が採用される。またサービスプロセッサ934は、外部通信インタフェース9344により管理端末935と通信可能に接続されている。サービスプロセッサ934と管理端末935との間の通信手段としてはバスやLANが採用される。なお、マイクロプロセッサ9104、メモリ9102、内部通信インタフェース9343、外部通信インタフェース9344はそれぞれバス9349で接続されている。
【0046】
サービスプロセッサ934は、チャネル制御部910やディスク制御部920に対する各種動作設定や障害監視、動作状態に関する情報の収集等を行う。サービスプロセッサ934は、各チャネル制御部910や各ディスク制御部920の処理負荷に関する情報を収集することができる。処理負荷に関する情報とは、例えば、マイクロプロセッサ9104,9204の使用率等である。これらの値は、チャネル制御部910やディスク制御部920において実行されるプログラムによって提供される。
【0047】
この応用例のストレージシステム90において、上述の制御装置100における共有メモリ5は、ディスクアレイ装置900の構成要素である共有メモリ931に対応する。また、上述の制御装置100におけるプロセッサ1,2,3,4は、ディスクアレイ装置900の構成要素であるチャネル制御部910、もしくは、ディスク制御部920に対応する。
【0048】
また、上述の制御装置100におけるサービスプロセッサ8は、ディスクアレイ装置900の構成要素であるサービスプロセッサ934に対応する。サービスプロセッサ934のメモリ9302には、管理端末935から適宜マイクロプログラムが格納される。サービスプロセッサ934は、上述した方法により共有メモリ931を経由して、メモリに格納されているマイクロプログラムをチャネル制御部910やディスク制御部920に転送する。チャネル制御部910やディスク制御部920においてファイルシステムが動作している場合、マイクロプログラムはファイルの形式で取り扱われる。また、この場合、上述した分割データもファイルの形式で取り扱われる。
【0049】
上述の制御装置100におけるローカルメモリ13,23,33,43は、ローカルメモリ9102,9202に対応する。上述の制御装置100における不揮発性メモリ12,22,32,42は、不揮発性メモリ9103,9203が対応する。上述の制御装置100におけるプロセッサ制御部11,21,31,41は、マイクロプロセッサ9104,9204、I/Oプロセッサ9105,9201、通信インタフェース9101、ディスクコントローラ9205等の少なくともいずれかが対応する。上述の制御装置100における制御対象部位6,7は、例えば、プロセッサ1,2,3,4がチャネル制御部910である場合には、他のチャネル制御部910やディスク制御部920、キャッシュメモリ930、共有メモリ931等である。また、例えば、プロセッサ1,2,3,4がディスク制御部920である場合には、他のディスク制御部910やチャネル制御部910、ディスクドライブ933、キャッシュメモリ930、共有メモリ931等である。
【0050】
情報処理装置950から送信されてくるデータ書き込み要求やデータ読み出し要求などのデータ入出力要求を受信した場合におけるディスクアレイ装置900の基本的な動作について説明する。まず、情報処理装置950からディスクアレイ装置900に対してデータ書き込み要求が送信された場合について説明する。
ディスクアレイ装置900は、情報処理装置950から送られてくるデータ書き込み要求を受信すると、データ書き込みコマンドを共有メモリ931に書き込むと共に、情報処理装置950から受信した書き込みデータをキャッシュメモリ930に書き込む。ディスクアレイ装置900は、キャッシュメモリ930へのデータの書き込みが完了すると、情報処理装置950に書き込み完了報告を送信する。すなわち、情報処理装置950への完了報告は、ディスクドライブ900への実際のデータの書き込み動作とは非同期に行われる。ディスク制御部920は、リアルタイム(例えば、一定の時間間隔で)に共有メモリ931の内容を監視している。ディスク制御部920は、上記監視により共有メモリ931にデータ書き込みコマンドが書き込まれていることを検知すると、キャッシュメモリ930から書き込み対象となるデータ(以下、書き込みデータと称する)を読み出して、読み出した書き込みデータをディスクドライブ933に書き込む。以上のようにしてデータ書き込み要求に対応したディスクドライブ933へのデータの書き込みが行われる。
【0051】
次に、情報処理装置950からディスクアレイ装置900に対してデータ書き込み要求が送信された場合におけるディスクアレイ装置900の基本的な動作について説明する。ディスクアレイ装置900は、情報処理装置950から送られてくるデータ読み出し要求を受信すると、この要求に対応するデータ読み出しコマンドをディスク制御部920に送出する。なお、チャネル制御部910からディスク制御部920へのデータ読み出しコマンドの伝達は、共有メモリ931を介して行われることもある。
【0052】
ディスク制御部920は、チャネル制御部910からデータ読み出しコマンドを受領すると、そのコマンドに指定されている読み出し対象のデータをディスクドライブ933から読み出して、読み出したデータをキャッシュメモリ930に書き込む。ディスク制御部920は、キャッシュメモリ930へのデータ転送が完了すると、その旨をチャネル制御部910に通知する。そして前記通知を受信したチャネル制御部910は、キャッシュメモリ930に記憶されている読み出し対象のデータを情報処理装置950に転送する。
【0053】
以上、一実施形態に基づき本発明について説明したが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【0054】
【発明の効果】
この発明によれば、コンピュータの制御方法、コンピュータ、ストレージ制御装置、プログラム、及び記録媒体を提供することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例として説明する、制御装置のブロック構成を示す図である。
【図2】本発明の一実施例として説明する、一括転送方式の場合の処理の流れを説明するフローチャートを示す図である。
【図3】本発明の一実施例として説明する、分割転送方式の場合の処理の流れを説明するフローチャートを示す図である。
【図4】本発明の一実施例として説明する、転送データ管理テーブルを示す図である。
【図5】本発明の一実施例として説明する、共有メモリのマイクロプログラム格納エリアに格納されている分割データの状態を示す図である。
【図6】本発明の一実施例として説明する、本発明が適用される制御装置のタスクシーケンスを説明するフローチャートを示す図である。
【図7】本発明の一実施例として説明する、マイクロプログラムロードタスクの処理を説明するフローチャートを示す図である。
【図8】本発明の一実施例として説明する、メインタスクの処理を説明するフローチャートを示す図である。
【図9】本発明の一実施例として説明する、ストレージシステムのブロック構成を示す図である。
【図10】本発明の一実施例として説明する、チャネル制御部の構成を示す図である。
【図11】本発明の一実施例として説明する、ディスク制御部の構成を示す図である。
【図12】本発明の一実施例として説明する、サービスプロセッサの構成を示す図である。
【符号の説明】
1〜4 プロセッサ
5 共有メモリ
6,7 制御対象部位
8 サービスプロセッサ
9 共有メモリアクセスバス
10 サービスプロセッサ−プロセッサ間通信バス
11,21,31,41 プロセッサ制御部
13,23,33,43 ローカルメモリ
14,24,34,44 マイクロプログラム格納エリア
15,25,35,45 マイクロプログラムロードエリア
51 マイクロプログラム格納エリア
70 外部装置
81 プロセッサ制御部
82 メモリ
83 マイクロプログラム格納エリア
100 制御装置
400 転送データ管理テーブル
900 ディスクアレイ装置
910 チャネル制御部
9102 ローカルメモリ
9103 不揮発性メモリ
920 ディスク制御部
9202 ローカルメモリ
9203 不揮発性メモリ
930 キャッシュメモリ
931 共有メモリ
932 スイッチ
933 ディスクドライブ
935 管理端末
936 記録媒体
940 通信路
950 情報処理装置
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer control method, a computer, a storage control device, a program, and a recording medium.
[0002]
[Prior art]
In a computer system that employs a so-called multiprocessor architecture configured for the purpose of achieving load distribution, high performance, and high reliability, a memory for storing a microprogram executed by the processor is provided for each processor. There is a configuration that takes the configuration described below. For example, in a disk array device whose demand is increasing due to the recent development of IT technology, a communication control unit (channel control unit) for controlling communication with an information processing device to be accessed and a large number of disk drives are required. There is a multiprocessor configuration in which a plurality of disk control devices for performing access are mounted.In such a disk array device, a memory for storing a microprogram is provided for each communication control unit, or It is provided for each disk control unit.
[0003]
In the computer system having the above configuration, for example, at the time of setup, version upgrade, or the like, a process of transferring a microprogram to a memory is performed. Here, since the transfer processing of the microprogram affects other processing of the computer system, it is preferable to perform the processing as efficiently as possible. Therefore, as a mechanism for increasing the efficiency of the transfer processing, for example, Japanese Patent Application Laid-Open Publication No. H11-157572 discloses a method in which a microprogram is transferred to a shared memory accessible by each processor, and each processor reads the microprogram by itself to execute parallel data transfer. A technique has been disclosed in which a load is distributed by performing transfer, and the time for loading a microprogram to a memory corresponding to a processor is reduced.
[0004]
[Patent Document 1]
JP-A-11-250028
[0005]
[Problems to be solved by the invention]
In the technology described in the above publication, a microprogram to be loaded into a memory corresponding to each processor is transferred to a shared memory in advance. However, since this transfer is performed through a specific processor, Concentration of load on the inevitable. Further, in a mechanism in which only a specific processor is involved in writing, the efficiency of the transfer process is determined by the processing capability of the specific processor, so it is difficult to improve the efficiency of the transfer process.
[0006]
The present invention has been made in view of such a background, and in a computer system having a multiprocessor architecture, a computer control method, a computer, and a storage control capable of efficiently supplying a microprogram executed by each processor. It is an object to provide an apparatus, a program, and a recording medium.
[0007]
[Means for Solving the Problems]
Including two or more processors, a first memory provided corresponding to each of the processors and storing a program to be executed by the processors, and a second memory accessible by each of the processors In the computer control method configured, wherein at least two or more of the processors share divided data, which is data obtained by dividing a program stored in the first memory, and transfer the divided data to the second memory. Restoring the program by combining the divided data stored in the second memory by the transfer, and causing the processor to store the restored program in the first memory And
[0008]
The present invention is applied to a computer adopting a multiprocessor architecture having two or more processors. The first memory is, for example, a local memory or a non-volatile memory that stores a microprogram executed by each processor corresponding to each processor of a computer having such an architecture. The second memory is, for example, a shared memory provided to be accessible from each processor in a computer having such an architecture.
The present invention is applied, for example, when a microprogram supplied from the outside is set up in the first memory by each of the processors.
[0009]
In addition, the problems disclosed by the present application and the solution thereof will be clarified by the description of the embodiments of the invention and the drawings.
[0010]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 shows a block configuration of a control device 100 described as an embodiment of the present invention. The control device 100 is controlled by at least one of the processors 1, 2, 3, and 4, the shared memory 5 accessible from each of the processors 1, 2, 3, and 4, and the processors 1, 2, 3, and 4. A service processor 8 communicably connected to the control target parts 6 and 7, the processors 1, 2, 3, 4, and a shared memory communicably connected between the processors 1, 2, 3, 4 and the shared memory 5 An access bus 9 and a service processor-processor communication bus 10 for communicably connecting the processors 1, 2, 3, 4 and the service processor 8 are included.
[0011]
The processors 1, 2, 3, and 4 respectively include a processor controller 11, 21, 31, 41, a non-volatile memory 12, 22, 32, 42 composed of a flash memory and the like, and a local memory 13 composed of an SRAM and a DRAM. , 23, 33, 43, microprogram storage areas 14, 24, 34, 44, microprogram load areas 15, 25, 35, 45, and the like. In the shared memory 5, a microprogram storage area 51 is secured.
[0012]
In the control device 100, a microprogram executed by the processors 1, 2, 3, and 4 is supplied from the service processor 8 to the processors 1, 2, 3, and 4 via the shared memory 5. The service processor 8 includes a processor control unit 81, a memory 82, and the like. The microprogram supplied to each of the processors 1, 2, 3, and 4 is supplied from an external device 70 such as a computer and stored in a microprogram storage area 83 secured in a storage area of a memory 82. The supply of the microprogram from the external device 70 to the service processor 8 is performed, for example, when the control device 100 is introduced or when the microprogram is upgraded.
[0013]
In the processors 1, 2, 3, and 4, the microprogram supplied from the service processor 8 is stored in the microprogram storage areas 14, 24, 34, and 44, and the microprogram load areas 15, 25, 35, and 45. In each of the processors 1, 2, 3, and 4, for example, when the processors 1, 2, 3, and 4 are activated, the microprograms are stored in the microprogram storage areas 14, 24, 34, and 44 to the microprogram load areas 15, 25, 35, and 45. Is loaded.
[0014]
In the control device 100, the microprogram supplied from the external device 70 and stored in the microprogram storage area 83 is first transferred to the microprogram storage area 51 of the shared memory 5, and thereafter, the respective processors 1, 2, 3, 4 accesses the shared memory 5 via the shared memory access bus 9 and is taken into each of the processors 1, 2, 3, and 4.
[0015]
The transfer of the microprogram from the microprogram storage area 83 to the microprogram storage area 51 of the shared memory 5 is performed by the service processor-processor communication bus 10, at least one of the processors 1, 2, 3, and 4, This is performed via the memory access bus 9. Here, the entire microprogram can be collectively transferred by a specific processor among the processors 1, 2, 3, and 4 (hereinafter, this transfer method is referred to as a collective transfer method). Further, the microprogram can divide the divided data into a plurality of data (hereinafter, referred to as divided data), share the divided data among the plurality of processors 1, 2, 3, and 4, and transfer the divided data to the shared memory 5. (Hereinafter, this transfer method is referred to as a division transfer method). For example, the external device 70 can instruct the service processor 8 whether the transfer method is the batch transfer method or the split transfer method.
[0016]
FIG. 2 shows a processing flow in the case of the batch transfer method. In the batch transfer method, a specific processor collectively transfers the microprogram stored in the microprogram storage area 83 of the service processor 8 to the shared memory 5.
At the time of the transfer, first, the microprogram is transferred from the service processor 8 to the specific processor in charge of the transfer processing of the microprogram via the service processor-processor communication bus 10 (S211), and the specific processor owns itself. Store the microprogram in local memory. Next, the microprogram stored in the specific processor is transferred to the microprogram storage area 51 of the shared memory 5 (S212).
[0017]
On the other hand, FIG. 3 shows a processing flow in the case of the division transfer method. In this method, first, the service processor 8 generates divided data by dividing the microprogram stored in the microprogram storage area 83 into a predetermined data size, and stores the generated divided data in a predetermined area of the memory 82. It is stored (S311). When storing the generated divided data in the memory 82, the processor control unit 81 attaches an identifier to each of the generated divided data and stores it in the memory 82 (S312). As the identifier to be attached to the divided data, an identifier that can specify the combining order, such as a numeral or an alphabet, is adopted so that the combining order when the divided data is combined later to restore the microprogram can be grasped. You. It should be noted that the divided data described in this embodiment is provided with a number (hereinafter, referred to as a divided data number) indicating the connection order at the time of restoring the microprogram as an identifier.
[0018]
Next, the processor control unit 81 assigns a processor in charge of the transfer process to each shared memory 5 to each of the divided data generated as described above (S313). Which processor is in charge of the transfer processing of each divided data, that is, the assignment of the processor that is in charge of each divided data is stored in the transfer data management table 400 shown in FIG. It is registered (S314). As shown in this figure, the correspondence between the identifier assigned to the divided data and the identifier assigned to the processor is registered in the transfer data management table 400. In the column "division data" 410, an identifier of the division data is set.
The “assigned processor” column 420 is set with the identifier of the processor responsible for the process of transferring the divided data to the shared memory 5. In the "head address" column 430, an address on the memory 82 where the divided data is stored is set. In the “data length” column 440, the data length of the divided data is set. A flag indicating whether or not the divided data has already been transferred is set in the “status” column 450. In this example, “transferred” is set when the transfer has been completed, and “untransferred” is set when the transfer has not been performed. The service processor 8 updates the contents of the transfer data management table 400 in real time each time the divided data is allocated or changed.
[0019]
After generating the divided data and determining the processor in charge of the transfer processing of each divided data, the service processor 8 notifies the processor in charge of the transfer processing of the divided data of an instruction to transfer the divided data (S315). Upon receiving the notification, each of the processors 1, 2, 3, and 4 prepares for securing a recording area on the local memories 13, 23, 33, and 43 for storing the divided data sent from the service processor 8. After performing the process, the service processor 8 notifies the service processor 8 that it is in a standby state for receiving the divided data (S316). Upon receiving the notification, the service processor 8 transmits the divided data for which the processor is in charge of the transfer processing to the processor (S317). Note that the service processor 8 attaches the above-described identifier to each divided data to be transmitted. Upon receiving the divided data sent from the service processor 8, each processor stores the received divided data in its own local memory 13, 23, 33, 43 (S318).
[0020]
Next, each of the processors 1, 2, 3, and 4 stores the divided data in the local memories 13, 23, 33, and 43, and stores the stored divided data in the microprogram storage area 51 of the shared memory 5 in the shared memory access bus 9. (S319). FIG. 5 shows the state of the divided data stored in the microprogram storage area 51. A division data number 510 is stored at the head of each division data.
At the end of the divided data, information (EOD (End Of Data)) indicating the end of the divided data is set. As shown in this figure, the divided data is sequentially written from the head address of the microprogram storage area 51. In principle, the next divided data is written following the already written divided data. The storage order of the divided data stored in the microprogram storage area 51 is not always in the order of the divided data numbers. That is, the storage order of the divided data is determined in accordance with, for example, the processing load of each of the processors 1, 2, 3, and 4, and is not necessarily the same as the order in which the divided data is combined when the microprogram is restored. Not necessarily.
[0021]
When the storage of the divided data in the microprogram storage area 51 is completed as described above, the processors 1, 2, 3, and 4 store the divided data in the shared memory 5 with respect to the service processor 8. Is completed (S320). Upon receiving the notification sent from the processor, the service processor 8 sets “transferred” in the “status” column 450 of the corresponding divided data in the transfer data management table 400 (S321).
[0022]
The service processor 8 monitors the contents of the “status” column 450 of the transfer data management table 400 in real time (S322). When the service processor 8 detects that “transferred” is set in the “status” column 450 of all the divided data in the transfer data management table 400 (S322: YES), the micro processor stores the microprogram in the shared memory 5. The completion of (setup) is notified to each of the processors 1, 2, 3, and 4 (S323).
[0023]
Each of the processors 1, 2, 3, and 4 manages a microprogram update flag in each of the local memories 13, 23, 33, and 43, which indicates whether the microprogram needs to be updated. Upon receiving the notification, at least one of the processors 1, 2, 3, and 4 sets the microprogram update flag to an ON state indicating that updating is necessary (S324).
[0024]
As described above, the process of transferring the microprogram from the service processor 8 to the shared memory 5 is performed. When the microprogram is transferred by the division transfer method, the microprogram is divided into a plurality of divided data, and the microprogram is stored in the shared memory 5 by a plurality of processors which are in charge of the transfer processing of each divided data. For this reason, load distribution is achieved in the transfer processing of the microprogram, and the microprogram stored in the service processor 8 is efficiently stored in the shared memory 5 without concentrating the processing load on one processor. Can be.
[0025]
In the above-described embodiment, the service processor 8 notifies the processors 1, 2, 3, and 4 that the microprogram has been stored in the shared memory 5 (S323). Instead of notifying from the processor 8, the processor 1, 2, 3, 4 may spontaneously inquire the service processor 8 whether a new microprogram is stored in the shared memory 5.
[0026]
The number of divided data stored in the shared memory 5 by each of the processors 1, 2, 3, and 4 (hereinafter, referred to as the number of stored data) is determined at a predetermined timing (for example, at regular intervals) by the spontaneous or service processor 8. Is notified to the service processor 8 in response to a request from the processor, and the service processor 8 stores the microprogram in the shared memory 5 when the sum of the storage numbers notified from each processor matches the division number of the microprogram. May be determined. In this case, the number of storages notified to the service processor 8 from each of the processors 1, 2, 3, and 4 is notified to an operator or the like in real time by a user interface, so that the shared memory of the divided data is provided to the operator or the like. It is also possible to grasp the real-time progress status of the transfer processing to the server 5.
[0027]
In the embodiment described above, the divided data downloaded by each processor is different from each other, and the same divided data stored in the memory 82 is not accessed by a plurality of processors. Therefore, it is not necessary to perform exclusive control on the divided data, whereby it is possible to simply configure a program for downloading the divided data from the processor, and to effectively use the memory capacity. In addition, since the exclusive control is not required, there is no processing waiting time caused by the exclusive control, and the processing efficiency is improved accordingly.
[0028]
In the above-described embodiment, as a method of allocating the processor to the divided data, for example, a method of simply allocating the divided data to each of the processors 1, 2, 3, and 4; There is a method of allocating in order from the processor with the smallest processing load according to the load. Also, once the divided data is allocated, at a certain point during the period from the start of the transfer process to the completion of the transfer process, the real-time processing load at that point is measured, and the remaining load is measured according to the measurement result. The processors 1, 2, 3, and 4 that are in charge of the transfer processing of the untransferred divided data to be transferred may be reassigned. In this case, for example, it is possible to cause the processor whose transfer processing has been completed and the processing load has been reduced to participate again in the transfer processing, thereby improving the processing efficiency.
[0029]
In the embodiment described above, the service processor 8 notifies the processors 1, 2, 3, and 4 of a transfer instruction of the divided data (S315). Alternatively, the processors 1, 2, 3, and 4 may spontaneously inquire the service processor 8 about the determination. In this case, the processors 1, 2, 3, and 4 monitor changes in their own processing loads, and when the processing load is small, the processors 1, 2, 3, and 4 determine whether or not there is divided data. Can also be configured. By doing so, the efficiency of the processing related to the supply of the microprocessor can be further improved. In this case, the magnitude of the processing load is determined by comparing the value of a parameter corresponding to the processing load such as the number of tasks per unit time with a threshold.
[0030]
The number of divisions of the microprogram and the data size of the divided data may be fixedly set, or may be changed each time the transfer is performed. Further, the number of divisions and the data size can be changed according to, for example, the processing load of the processors 1, 2, 3, and 4. In this case, the processing load is grasped, for example, by measuring the number of tasks processed per unit time in each processor.
[0031]
As for the number of divisions, for example, if the processing loads of the processors 1, 2, 3, and 4 are not much different, the microprogram is transferred to all of the processors 1, 2, 3, and 4. , The division number is set to 4. For example, when the processing load of the processor 1 is high, the microprogram is transferred only to the processors 2, 3, and 4. In this case, the division number is set to 3. It is also conceivable to do so. In addition, when the number of divisions is set to N, if the difference in the processing load of the processor is smaller than the threshold, the data size of each divided data is set uniformly, and the difference in the processing load of the processor is equal to or larger than the threshold. In such a case, the data size of the divided data assigned to the processor having a large processing load may be set smaller than the data size of the divided data assigned to the processor having a small processing load.
[0032]
=== Load to processor ===
The microprogram stored in the microprogram storage area 51 of the shared memory 5 is taken into the processors 1, 2, 3, and 4 at a predetermined timing. The microprograms captured by the processors 1, 2, 3, and 4 are stored in the microprogram storage areas 14, 24, 34, and 44 secured on the nonvolatile memories 12, 22, 32, and 42. Further, the microprogram stored in the microprogram storage area 51 or the microprogram storage areas 14, 24, 34, 44 is appropriately loaded into the microprogram load areas 15, 25, 35, 45. Further, as described above, the microprogram stored in the microprogram storage area 51 transferred by the divided transfer method is stored in the form of divided data. Is restored at the predetermined timing to restore the original microprogram.
[0033]
=== Load to local memory ===
FIG. 6 is a task generation sequence of the control device 100 to which the present invention is applied. When the processors 1, 2, 3, 4 are started (S601), the root program is transferred from the non-volatile memories 12, 22, 32, 42 inside the processors 1, 2, 3, 4 to the local memories 13, 23, 33, 43. 606 is loaded (S614), and a root task (S602) is generated (S613). The generated root task (S602) loads the microprogram load program 607 from the nonvolatile memories 12, 22, 32, and 42 (S616), and generates the microprogram load task 603 (S615).
The micro program load task (S603) loads any of the main program 608 stored in the nonvolatile memories 12, 22, 32, and 42 and the main program 612 stored in the shared memory 5 (S618), and (S604) is generated (S617).
[0034]
FIG. 7 is a detailed processing flow of the microprogram loading task (S603) in FIG. When activated, the microprogram load task (S603) sets a shared memory access bus (S702) and establishes a shared memory access path (S703). Next, the microprogram load task (S603) determines whether or not the shared memory access bus 9 is usable (S704). If so, the microprogram in the shared memory 5 is valid. Is determined (S705). If valid, it is determined whether or not the microprogram in the shared memory 5 is different from the microprogram in the nonvolatile memories 12, 22, 32, and 42 (S706). Here, if the microprogram is different, the microprogram is loaded from the shared memory 5 to the local memories 13, 23, 33, and 43 (S707). At the time of loading, the processor control units 11, 21, 31, and 41 read a plurality of pieces of divided data stored in the microprogram storage area 51 of the shared memory 5 and sequentially combine the read divided data in the order of identifiers. Restore the original microprogram. Then, the microprogram restored by the above processing is loaded from the shared memory 5 to the local memories 13, 23, 33, 43. Instead of determining whether the microprogram is different in (S706), it may be determined whether to load the microprogram from the shared memory 5 according to the microprogram update flag described above.
[0035]
Next, the processors 1, 2, 3, and 4 determine whether the microprogram has been successfully loaded (S708), and succeeded in loading the microprogram from the shared memory 5 to the local memories 13, 23, 33, and 43. If so, the microprogram valid flag of the shared memory 5 is set to ON (S709). Here, the microprogram valid flag indicates whether or not the microprogram needs to be loaded from the shared memory 5 to the nonvolatile memories 12, 22, 32, and 42, that is, the nonvolatile memories 12, 22, and 32, as described later. , 42 are used to determine whether the contents need to be updated.
[0036]
Next, in (S710), the processors 1, 2, 3, and 4 determine whether the microprogram has been successfully loaded into the local memories 13, 23, 33, and 43 (S710). Then, a main task is generated (S711), and the process ends (S712).
[0037]
In the determination of (S704), when the bus was not available, or in the determination of (S706), the microprogram of the shared memory 5 and the microprogram of the nonvolatile memories 12, 22, 32, and 42 were the same. In this case, the microprogram is loaded not from the shared memory 5 but from the nonvolatile memories 12, 22, 32, and 42 (S714). In the determination of (S705), the microprogram in the shared memory 5 is invalid due to the volatilization of data stored in the shared memory 5 or the occurrence of a failure, or in the determination of (S708), If the loading from the shared memory 5 has not been successful, the microprogram invalid flag stored in the shared memory 5 is set to ON (S713). Further, the microprogram is loaded from the microprogram storage areas 14, 24, 34, 44 of the nonvolatile memories 12, 22, 32, 42 to the local memories 13, 23, 33, 43 (S714). Then, it is determined whether or not the microprogram has been successfully loaded into the local memories 13, 23, 33, and 43 (S710). If the microprogram has been successfully loaded, the processors 1, 2, 3, and 4 generate a main task. (S711), the process ends (S712).
[0038]
=== Loading to nonvolatile memory ===
FIG. 8 is a flowchart illustrating the processing of the main task (S604) in FIG. This figure explains the processing related to the setup of the microprogram in the nonvolatile memories 12, 22, 32, 42 and the shared memory 5. When activated, the main task (S604) performs various initial settings (S802) of the hardware and software of the control device 100. When the microprogram valid flag of the shared memory 5 is set to ON in the microprogram load task (S603) in FIG. 6 (S709), it is determined whether the microvalid flag of the shared memory 5 is ON (S803). ON (S803: YES), and the processors 1, 2, 3, and 4 transfer the microprogram from the shared memory 5 to the microprogram storage areas 14, 24, 34, and 44 of the nonvolatile memories 12, 22, 32, and 42 (see FIG. S804). If the result of the determination in (S803) is not ON (S803: NO), the processing in (S804) is skipped.
[0039]
When the microprogram invalid flag of the shared memory 5 is set to ON in the microprogram load task (S603) (S713), the determination whether the microprogram invalid flag of the shared memory 5 is ON (S805) is ON (S805). S805: YES), the microprograms stored in the microprogram storage areas 14, 24, 34, 44 of the nonvolatile memories 12, 22, 32, 42 are transferred to the shared memory 5, whereby the microprograms are stored in the microprogram storage area 51. The program is stored (S806). In (S807), the processors 1, 2, 3, and 4 determine whether the transfer of the microprogram from the nonvolatile memories 12, 22, 32, and 42 to the shared memory 5 has succeeded, and has determined that the transfer has succeeded. If it is (S807: YES), the microprogram invalidation flag of the shared memory 5 is set to OFF (S808), and the initial setting of the main task ends (S809). If the microprogram invalidation flag of the shared memory 5 is OFF in the determination of (S805) (S805: NO), the processors 1, 2, 3, and 4 terminate the initial setting of the main task as it is (S809). . If the transfer is not successful in the determination of (S807) (S807: NO), the initial setting of the main task is terminated as it is.
[0040]
=== Application Example ===
FIG. 9 illustrates a storage including a disk array device 900 (storage control device) and an information processing device 950 that accesses the disk array device 900 (storage control device) via a communication path 940, which will be described as an application example of the control device 100 described above. 2 shows a block configuration of a system 90. The information processing device 950 is a computer such as a personal computer, a workstation, or a mainframe computer that includes a CPU (Central Processing Unit) and a memory. The communication performed via the communication path 940 includes, for example, a TCP / IP protocol, a fiber channel protocol (Fibre Channel Protocol), a FICON (Fibre Connection) (registered trademark), and an ESCON (Enterprise System Connection) (registered trademark). A communication protocol is employed.
[0041]
The disk array device 900 includes a channel control unit 910 (communication control unit), a disk control unit 920, a cache memory 930, a shared memory 931 and switches 932, a disk drive 933, a service processor 934, and the like for connecting these. You. As the switch 932, for example, a high-speed crossbar switch is used. The disk drive 933 may be housed in a separate housing from other components of the disk array device 900. A management terminal 935 is connected to the service processor 934. The management terminal 935 is a computer operated by an operator or the like. An operator or the like operates the management terminal 935 to perform various settings and operations for the disk array device 900, monitor operation status, monitor a failure, and the like. In addition, the management terminal 935 supplies a microprogram to the channel control unit 910 and the disk control unit 920 for the necessity of version upgrade or the like. It also provides a function of transferring the microprogram recorded and supplied on the medium 936 to the memory of the service processor 934. When a file system operates in the channel control unit 910 or the disk control unit device 920, the microprogram may be provided in a file format.
[0042]
FIG. 10 shows the configuration of the channel control unit 910. The channel control unit 910 includes a communication interface 9101 that provides a function related to communication with the information processing device 950, a non-volatile memory 9103 including a local memory 9102, a flash memory, and a program stored in the local memory 9102. And a I / O processor 9105 for realizing high-speed data transfer between the channel control unit 910 and the cache memory 930. The non-volatile memory 9103 stores a microprogram, which is software for realizing various functions provided by the channel control unit 910. The microprogram is appropriately loaded into the local memory 9102 and executed by the microprocessor 9104. Note that these components are connected to each other by a bus 9109. As the I / O processor 9105, for example, a DMA (Direct Memory Access) processor is used.
[0043]
FIG. 11 shows the configuration of the disk control unit 920. The disk control unit 920 includes an I / O processor 9201 for realizing high-speed data transfer between the cache memory 930 and the channel control unit 910, a local memory 9202, a nonvolatile memory 9203 including a flash memory, and the like, and a local memory. The system includes a microprocessor 9204 that implements various functions of the disk control unit 920 by executing programs stored in the 9202, a disk controller 9205 that writes and reads data to and from the disk drive 933, and the like. The non-volatile memory 9203 stores a microprogram which is software for realizing various functions provided by the disk control unit 920. The microprogram is appropriately loaded into the local memory 9202 and executed by the microprocessor 9204. Note that these components are connected to each other by a bus 9209. As the I / O processor 9201, for example, a DMA (Direct Memory Access) processor is used. The disk controller 9205 also provides a function of controlling the disk drive 933 in a RAID system (for example, RAID 0, 1, 5).
[0044]
The shared memory 931 and the cache memory 930 are used to store, for example, various control information and commands. The cache memory 930 is used to store, for example, data written to the disk drive 933 or data read from the disk drive 933.
[0045]
FIG. 12 shows the configuration of the service processor 934. The service processor 934 includes a microprocessor 9344, a memory 9342, and the like. The service processor 934 is communicably connected to the channel control unit 910 and the disk control unit 920 via the internal communication path 970 by the internal communication interface 9343. As the internal communication path 970, for example, a bus such as PCI or a LAN (Local Area Network) using TCP / IP as a communication protocol is adopted. The service processor 934 is communicably connected to the management terminal 935 via an external communication interface 9344. As a communication means between the service processor 934 and the management terminal 935, a bus or a LAN is employed. Note that the microprocessor 9104, the memory 9102, the internal communication interface 9343, and the external communication interface 9344 are connected by a bus 9349.
[0046]
The service processor 934 sets various operations for the channel control unit 910 and the disk control unit 920, monitors a failure, collects information on an operation state, and the like. The service processor 934 can collect information on the processing load of each channel control unit 910 and each disk control unit 920. The information on the processing load is, for example, the usage rate of the microprocessors 9104 and 9204. These values are provided by a program executed in the channel control unit 910 or the disk control unit 920.
[0047]
In the storage system 90 of this application example, the shared memory 5 in the control device 100 described above corresponds to the shared memory 931 that is a component of the disk array device 900. Further, the processors 1, 2, 3, and 4 in the control device 100 correspond to the channel control unit 910 or the disk control unit 920 that is a component of the disk array device 900.
[0048]
The service processor 8 in the control device 100 described above corresponds to the service processor 934 that is a component of the disk array device 900. The microprogram is stored in the memory 9302 of the service processor 934 from the management terminal 935 as appropriate. The service processor 934 transfers the microprogram stored in the memory to the channel control unit 910 and the disk control unit 920 via the shared memory 931 in the manner described above. When a file system is operating in the channel control unit 910 or the disk control unit 920, the microprogram is handled in a file format. In this case, the above-described divided data is also handled in a file format.
[0049]
The local memories 13, 23, 33, 43 in the control device 100 described above correspond to the local memories 9102, 9202. The non-volatile memories 12, 22, 32, and 42 in the control device 100 correspond to the non-volatile memories 9103, 9203, respectively. The processor control units 11, 21, 31, and 41 in the above-described control device 100 correspond to at least one of the microprocessors 9104 and 9204, the I / O processors 9105 and 9201, the communication interface 9101, the disk controller 9205, and the like. For example, when the processors 1, 2, 3, and 4 are the channel control units 910, the control target units 6 and 7 in the above-described control device 100 include other channel control units 910, disk control units 920, and cache memories 930. , A shared memory 931 and the like. Further, for example, when the processors 1, 2, 3, and 4 are the disk control units 920, they are other disk control units 910, channel control units 910, disk drives 933, cache memories 930, shared memories 931, and the like.
[0050]
A basic operation of the disk array device 900 when a data input / output request such as a data write request or a data read request transmitted from the information processing device 950 is received will be described. First, a case where a data write request is transmitted from the information processing device 950 to the disk array device 900 will be described.
Upon receiving the data write request sent from the information processing device 950, the disk array device 900 writes a data write command to the shared memory 931 and writes the write data received from the information processing device 950 to the cache memory 930. When the data writing to the cache memory 930 is completed, the disk array device 900 transmits a write completion report to the information processing device 950. That is, the completion report to the information processing device 950 is performed asynchronously with the actual data write operation to the disk drive 900. The disk control unit 920 monitors the contents of the shared memory 931 in real time (for example, at fixed time intervals). When the disk control unit 920 detects that a data write command has been written to the shared memory 931 by the above monitoring, the disk control unit 920 reads data to be written (hereinafter, referred to as write data) from the cache memory 930 and writes the read write data. The data is written to the disk drive 933. As described above, data writing to the disk drive 933 corresponding to the data write request is performed.
[0051]
Next, a basic operation of the disk array device 900 when a data write request is transmitted from the information processing device 950 to the disk array device 900 will be described. Upon receiving the data read request sent from the information processing device 950, the disk array device 900 sends a data read command corresponding to the request to the disk control unit 920. The transmission of the data read command from the channel control unit 910 to the disk control unit 920 may be performed via the shared memory 931.
[0052]
When receiving the data read command from the channel control unit 910, the disk control unit 920 reads the data to be read specified in the command from the disk drive 933, and writes the read data to the cache memory 930. When the data transfer to the cache memory 930 is completed, the disk control unit 920 notifies the channel control unit 910 of the completion. Then, the channel control unit 910 that has received the notification transfers the data to be read stored in the cache memory 930 to the information processing device 950.
[0053]
As described above, the present invention has been described based on one embodiment. However, the above embodiment of the present invention is for facilitating understanding of the present invention, and does not limit the present invention. The present invention can be changed and improved without departing from the gist thereof, and the present invention naturally includes equivalents thereof.
[0054]
【The invention's effect】
According to the present invention, it is possible to provide a computer control method, a computer, a storage control device, a program, and a recording medium.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a block configuration of a control device described as an embodiment of the present invention.
FIG. 2 is a diagram illustrating a flowchart for explaining a processing flow in the case of a batch transfer method, which is described as one embodiment of the present invention;
FIG. 3 is a diagram illustrating a flowchart for explaining a processing flow in the case of a division transfer method, which is described as one embodiment of the present invention;
FIG. 4 is a diagram showing a transfer data management table described as an embodiment of the present invention.
FIG. 5 is a diagram illustrating a state of divided data stored in a microprogram storage area of a shared memory described as an embodiment of the present invention.
FIG. 6 is a flowchart illustrating a task sequence of a control device to which the present invention is applied, which is described as an embodiment of the present invention.
FIG. 7 is a diagram illustrating a flowchart illustrating processing of a microprogram load task, which is described as one embodiment of the present invention.
FIG. 8 is a diagram illustrating a flowchart illustrating processing of a main task, which is described as one embodiment of the present invention.
FIG. 9 is a diagram showing a block configuration of a storage system described as an embodiment of the present invention.
FIG. 10 is a diagram illustrating a configuration of a channel control unit described as one embodiment of the present invention.
FIG. 11 is a diagram illustrating a configuration of a disk control unit described as an embodiment of the present invention.
FIG. 12 is a diagram illustrating a configuration of a service processor described as an embodiment of the present invention.
[Explanation of symbols]
1-4 processor
5 Shared memory
6,7 Control target site
8 Service processor
9 Shared memory access bus
10 Service processor-processor communication bus
11, 21, 31, 41 Processor control unit
13,23,33,43 Local memory
14, 24, 34, 44 Microprogram storage area
15, 25, 35, 45 Micro program load area
51 Microprogram storage area
70 External device
81 Processor control unit
82 memory
83 Micro program storage area
100 control device
400 transfer data management table
900 disk array device
910 Channel control unit
9102 Local memory
9103 Non-volatile memory
920 Disk control unit
9202 Local memory
9203 Non-volatile memory
930 cache memory
931 Shared memory
932 switch
933 disk drive
935 management terminal
936 Recording medium
940 communication channel
950 Information processing device

Claims (12)

2以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータの制御方法において、
少なくとも2以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送するステップと、
前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させるステップと、を有することを特徴とするコンピュータの制御方法。
Including two or more processors, a first memory provided corresponding to each of the processors and storing a program to be executed by the processors, and a second memory accessible by each of the processors In the configured computer control method,
A step in which at least two or more processors share the divided data, which is data obtained by dividing a program stored in the first memory, and transfer the divided data to the second memory;
The processor restores the program by combining the divided data stored in the second memory by the transfer;
A step of causing the processor to store the restored program in the first memory.
請求項1に記載のコンピュータの制御方法において、
前記分割データの前記第二のメモリへの転送を担当させる前記プロセッサを前記各プロセッサの処理負荷に応じて決定すること、を特徴とするコンピュータの制御方法。
The computer control method according to claim 1,
A control method for a computer, wherein the processor that is in charge of transferring the divided data to the second memory is determined according to the processing load of each processor.
請求項1に記載のコンピュータの制御方法において、
前記各プロセッサに担当させる分割データのデータサイズを前記プロセッサの処理負荷に応じて変化させることを特徴とするコンピュータの制御方法。
The computer control method according to claim 1,
A control method for a computer, wherein a data size of divided data assigned to each processor is changed according to a processing load of the processor.
情報処理装置との間で通信を行う2以上の通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記各通信制御部がアクセス可能な共有メモリと、前記各通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
少なくとも2以上の前記通信制御部が、前記通信制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記通信制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記通信制御部が、復元した前記プログラムを前記通信制御部に記憶させるステップと、
を有することを特徴とするストレージ制御装置の制御方法。
Two or more communication control units for communicating with the information processing apparatus, a disk control unit for inputting / outputting data to / from a disk drive, a shared memory accessible by each of the communication control units, A cache memory accessible by the disk control unit; and
At least two or more of the communication control unit, sharing the divided data, which is data obtained by dividing a program for storing in the communication control unit, and transferring the divided data to the shared memory;
The communication control unit restores the program by combining the divided data stored in the shared memory by the transfer;
The communication control unit stores the restored program in the communication control unit;
A control method for a storage control device, comprising:
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行う2以上のディスク制御部と、前記各ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記各ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
少なくとも2以上の前記ディスク制御部が、前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記ディスク制御部が、復元した前記プログラムを前記通信制御部に記憶させるステップと、を有することを特徴とするストレージ制御装置の制御方法。
A communication control unit that communicates with an information processing device; two or more disk control units that input and output data to and from a disk drive; a shared memory accessible by each of the disk control units; A cache memory accessible by each disk control unit; and
A step in which at least two or more of the disk controllers share divided data, which are data obtained by dividing a program to be stored in the disk controller, and transfer the divided data to the shared memory;
The disk controller restores the program by combining the divided data stored in the shared memory by the transfer;
Storing the restored program in the communication control unit, wherein the disk control unit stores the restored program in the communication control unit.
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記通信制御部及び前記ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備えて構成されるストレージ制御装置の制御方法において、
前記通信制御部もしくは前記ディスク制御部が、前記通信制御部もしくは前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送するステップと、
前記通信制御部もしくは前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元するステップと、
前記通信制御部もしくは前記ディスク制御部が、復元した前記プログラムを前記通信制御部もしくは前記ディスク制御部に記憶させるステップと、を有することを特徴とするストレージ制御装置の制御方法。
A communication control unit that performs communication with the information processing device, a disk control unit that performs data input / output to / from a disk drive, a shared memory that can be accessed by the communication control unit and the disk control unit, the communication control unit, A cache memory accessible by the disk control unit; and
A step in which the communication control unit or the disk control unit transfers divided data, which is data obtained by dividing a program to be stored in the communication control unit or the disk control unit, to the shared memory,
The communication control unit or the disk control unit restores the program by combining the divided data stored in the shared memory by the transfer,
Storing the restored program in the communication control unit or the disk control unit by the communication control unit or the disk control unit.
請求項1に記載のコンピュータの制御方法において、前記第一のメモリは、不揮発性メモリであることを特徴とするコンピュータの制御方法。The computer control method according to claim 1, wherein the first memory is a non-volatile memory. 請求項1に記載のコンピュータの制御方法において、前記プログラムはマイクロプログラムであることを特徴とするコンピュータの制御方法。2. The computer control method according to claim 1, wherein the program is a micro program. 2以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成され、
少なくとも2以上の前記プロセッサが前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送する手段と、
前記プロセッサが前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元する手段と、
前記プロセッサが復元した前記プログラムを前記第一のメモリに記憶させる手段と、を備えることを特徴とするコンピュータ。
Including two or more processors, a first memory provided corresponding to each of the processors and storing a program to be executed by the processors, and a second memory accessible by each of the processors Composed,
Means for at least two or more of the processors sharing the divided data, which is data obtained by dividing a program stored in the first memory, and transferring the divided data to the second memory;
Means for the processor to restore the program by combining the divided data stored in the second memory by the transfer,
Means for storing the program restored by the processor in the first memory.
情報処理装置との間で通信を行う通信制御部と、ディスクドライブに対するデータ入出力を行うディスク制御部と、前記通信制御部及び前記ディスク制御部がアクセス可能な共有メモリと、前記通信制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリと、を備え、
前記通信制御部もしくは前記ディスク制御部が、前記通信制御部もしくは前記ディスク制御部に記憶させるためのプログラムを分割したデータである分割データをそれぞれ分担して前記共有メモリに転送する手段と、
前記通信制御部もしくは前記ディスク制御部が、前記転送によって前記共有メモリに記憶された分割データを結合することにより前記プログラムを復元する手段と、
前記通信制御部もしくは前記ディスク制御部が、復元した前記プログラムを前記通信制御部もしくは前記ディスク制御部に記憶させる手段と、を備えることを特徴とするストレージ制御装置。
A communication control unit that performs communication with the information processing device, a disk control unit that performs data input / output to / from a disk drive, a shared memory that can be accessed by the communication control unit and the disk control unit, the communication control unit, A cache memory accessible by the disk control unit,
Means for the communication control unit or the disk control unit to share the divided data, which is data obtained by dividing a program to be stored in the communication control unit or the disk control unit, and transfer the divided data to the shared memory;
Means for the communication control unit or the disk control unit to restore the program by combining the divided data stored in the shared memory by the transfer,
Means for causing the communication control unit or the disk control unit to store the restored program in the communication control unit or the disk control unit.
2以上のプロセッサと、前記プロセッサのそれぞれに対応させて設けられ前記プロセッサに実行させるためのプログラムが記憶される第一のメモリと、前記各プロセッサがアクセス可能な第二のメモリと、を含んで構成されるコンピュータに、
少なくとも2以上の前記プロセッサが、前記第一のメモリに記憶されるプログラムを分割したデータである分割データをそれぞれ分担して前記第二のメモリに転送する機能と、
前記プロセッサが、前記転送によって前記第二のメモリに記憶された分割データを結合することにより前記プログラムを復元する機能と、
前記プロセッサが、復元した前記プログラムを前記第一のメモリに記憶させる機能と、を実現させるためのプログラム。
Including two or more processors, a first memory provided corresponding to each of the processors and storing a program to be executed by the processors, and a second memory accessible by each of the processors On the configured computer,
A function of transferring at least two or more processors to the second memory by respectively sharing divided data that is data obtained by dividing a program stored in the first memory;
A function of restoring the program by combining the divided data stored in the second memory by the transfer,
A function of causing the processor to store the restored program in the first memory.
請求項11に記載のプログラムを記録した記録媒体。A recording medium on which the program according to claim 11 is recorded.
JP2003136093A 2003-05-14 2003-05-14 Control method for computer, computer, storage controller, program and recording medium Pending JP2004341725A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003136093A JP2004341725A (en) 2003-05-14 2003-05-14 Control method for computer, computer, storage controller, program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003136093A JP2004341725A (en) 2003-05-14 2003-05-14 Control method for computer, computer, storage controller, program and recording medium

Publications (2)

Publication Number Publication Date
JP2004341725A true JP2004341725A (en) 2004-12-02
JP2004341725A5 JP2004341725A5 (en) 2006-06-15

Family

ID=33526168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003136093A Pending JP2004341725A (en) 2003-05-14 2003-05-14 Control method for computer, computer, storage controller, program and recording medium

Country Status (1)

Country Link
JP (1) JP2004341725A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006251896A (en) * 2005-03-08 2006-09-21 Nec Corp Disk management device and disk load information acquisition method
WO2007049543A1 (en) * 2005-10-27 2007-05-03 Sonac Incorporated Calculating apparatus
JP2015179465A (en) * 2014-03-19 2015-10-08 日立オートモティブシステムズ株式会社 Automotive electronic control unit and verification method for same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006251896A (en) * 2005-03-08 2006-09-21 Nec Corp Disk management device and disk load information acquisition method
WO2007049543A1 (en) * 2005-10-27 2007-05-03 Sonac Incorporated Calculating apparatus
JP2015179465A (en) * 2014-03-19 2015-10-08 日立オートモティブシステムズ株式会社 Automotive electronic control unit and verification method for same

Similar Documents

Publication Publication Date Title
JP7261037B2 (en) Data processor, storage device and prefetch method
CN104850435B (en) Power source management controller and method
US20210263762A1 (en) Storage device-assisted live virtual machine migration
JP2008015768A (en) Storage system and data management method using the same
US8612973B2 (en) Method and system for handling interrupts within computer system during hardware resource migration
CN109471812B (en) Memory device and control method of nonvolatile memory
JP2005284497A (en) Relay unit, management server, relay method and authentication method
CN108958880B (en) Data processing method and data processing system
EP1990700A1 (en) Method for managing and controlling time of computer system and computer system
US8266342B1 (en) Storage system
AU7684700A (en) Entertainment device, information processor, and portable recorder
JP2006185000A (en) Storage system
JP2019120974A (en) Computer system, baseboard management controller, OS installation method, and program
EP3926471A1 (en) Storage device-assisted live virtual machine migration
JP2004341725A (en) Control method for computer, computer, storage controller, program and recording medium
US10318212B2 (en) Control device and storage system
TW434491B (en) Increasing I/O performance through storage of packetized operational information in local memory
WO2020235088A1 (en) Control device and distributed processing method
US20170123657A1 (en) Systems and methods for back up in scale-out storage area network
JP2001051871A (en) Remote debugging device
JP2010231295A (en) Analysis system
JPS6215898B2 (en)
JP2010231296A (en) Parallel computing system
JPH0997173A (en) Maintenance management system for control program
CN108196660A (en) The electric power management method of data container device

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060417

A977 Report on retrieval

Effective date: 20080131

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20080205

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090331