JP2004139260A - Command processing system by multiprocessor - Google Patents

Command processing system by multiprocessor Download PDF

Info

Publication number
JP2004139260A
JP2004139260A JP2002301945A JP2002301945A JP2004139260A JP 2004139260 A JP2004139260 A JP 2004139260A JP 2002301945 A JP2002301945 A JP 2002301945A JP 2002301945 A JP2002301945 A JP 2002301945A JP 2004139260 A JP2004139260 A JP 2004139260A
Authority
JP
Japan
Prior art keywords
command
microprocessor
control circuit
microprocessors
processing
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.)
Withdrawn
Application number
JP2002301945A
Other languages
Japanese (ja)
Other versions
JP2004139260A5 (en
Inventor
Kazuhiro Nosu
能州 一浩
Hiroshi Kanayama
金山 浩
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
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Computer Peripherals Co Ltd
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 Computer Peripherals Co Ltd, Hitachi Ltd filed Critical Hitachi Computer Peripherals Co Ltd
Priority to JP2002301945A priority Critical patent/JP2004139260A/en
Publication of JP2004139260A publication Critical patent/JP2004139260A/en
Publication of JP2004139260A5 publication Critical patent/JP2004139260A5/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the bottle neck of a microprocessor in the interface part of a disk controller, and to prevent the performance deterioration of a storage system due to the disk controller. <P>SOLUTION: This interface part is provided with an external I/F transmitting/receiving part 101 connected to a high order host server, a microprocessor part having microprocessors 113 and 116 for processing commands from the high order host server and a command control circuit 121 interposed between the external I/F transmitting/receiving part and the microprocessor part. The plurality of microprocessor parts 111 and 114 are connected to the command control circuit 121, and the command control circuit is provided with a multiplex write function for transferring commands to a plurality of microprocessor parts simultaneously at one time, and the commands from the high order host server are distributed to the respective microprocessors so as to be processed by the multiplex write function. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、ストレージ装置に対して発行される上位側の情報処理装置からのコマンドを多重ライト機能により複数個のマイクロプロセッサに転送し、円滑にコマンド処理するためのコマンド処理分散方式に関する。
【0002】
【従来の技術】
図5は、従来技術に関する上位ホストサーバ、DKC、DKUからなるデータ転送の全体構成を示す図である。図5において、上位ホストサーバとストレージ装置のディスク部としてのDKU(ディスクユニット)との間に介在してデータ転送の処理を制御するDKC(ディスクコントローラ)は、上位ホストサーバとのインタフェース部を形成するCHA(チャネルアダプタ)と、CACHE(キャッシュ)と、DKUとのインタフェース部を形成するDKA(ディスクアダプタ)と、から構成される。
【0003】
そして、CHAは、図5に示すように、外部I/F送受信部位501と、コマンド制御回路521と、データ転送制御部531と、マイクロプロセッサ部位511と、から成り立っている。図5において、マイクロプロセッサ部位511には1つのマイクロプロセッサ制御回路512及びマイクロプロセッサ513が図示されているが、マイクプロセッサ部位511は複数接続されていても良い。
【0004】
図5に示した従来技術において、一連のデータ転送は、上位ホストサーバと、DKCのインタフェース部であるCHAを介してDKUとの間で行われる。この時、インタフェース部であるCHAに、コマンド処理のために図5に示すように1つ、又は例え2つのマイクロプロセッサを有していたとしても、どちらか一方のマイクロプロセッサがこのデータ転送に関する一連のコマンド処理、すなわちデータ転送終了ステータスを上位ホストサーバに返すまでの一連のコマンド処理を当該一方のマイクロプロセッサが負担して実行することになる。
【0005】
また、従来技術におけるマルチプロセッサ処理方式によるシステム処理時間短縮は、主従関係にある2つのプロセッサと共用メモリとを具備し、いずれのプロセッサもが実行可能なコモンプログラムをメモリに含ませてこのコモンプログラムの実行配分を変えることで各プロセッサの並列処理量をほぼ均等にすることが開示されている(例えば、特許文献1参照)。
【0006】
【特許文献1】
特開平5−28120号公報
【0007】
【発明が解決しようとする課題】
上述した従来技術によれば、上位ホストサーバから多くのI/O要求が発行されたり、或るコマンド処理に時間を要して何らかのビジー状態に陥る等で、マイクロプロセッサがインタフェース部(CHA)のボトルネックになって、コマンドがキューイングされたり(コマンドを処理できないほど大量に受け取って蓄積された状態となる)、リトライされることがある。このような状況では、DKCの要因によるストレージシステムの性能低下が発生し得る。
【0008】
また、前記特許文献1によれば、2つのプロセッサは主従関係にあって且つコモンプログラムのロードされた共用メモリを備えているという構成上の制約条件を基にして、システム処理時間の短縮を図るものであり、汎用のプロセッサやメモリを使用するRAID(Redundant Arrays Inexpensive Disks:DKC+DKU)のインタフェース部には適用できないものであるという不都合さが生じる。
【0009】
本発明の目的は、ディスクコントローラ(DKC)のインタフェース部におけるマイクロプロセッサのボトルネックを軽減し、ディスクコントローラによるストレージシステムの性能低下を防ぐことにある。
【0010】
【課題を解決するための手段】
前記課題を解決するために、本発明は主として次のような構成を採用する。 上位ホストサーバに接続された外部I/F送受信部と、前記上位ホストサーバから発行されるコマンドを処理するマイクロプロセッサを有するマイクロプロセッサ部と、前記外部I/F送受信部と前記マイクロプロセッサ部との間に介在されてインタフェースを仲介するコマンド制御回路と、を備えたストレージ装置のインタフェース部であって、
前記コマンド制御回路には複数のマイクロプロセッサ部が接続され、
前記コマンド制御回路は前記上位ホストサーバからのコマンドを一度に同時に前記複数のマイクロプロセッサ部へコマンド転送を行う多重ライト機能を有し、前記コマンド制御回路の多重ライト機能によって、前記上位ホストサーバからのコマンドを各マイクロプロセッサに分散して処理するコマンド処理方式。
【0011】
この構成を採用することによって、上位ホストサーバから発行されたコマンド処理を各マイクロプロセッサにて負荷分散し、マイクロプロセッサによるボトルネックの軽減を図ることができる。
【0012】
【発明の実施の形態】
本発明の実施形態に係るマルチプロセッサによるコマンド処理分散方式について、図1〜図4を参照しながら以下説明する。図1は本発明の実施形態に係る、上位ホストサーバとのインタフェース部であるCHA(チャネルアダプタ)の具体的構成を示す図であり、図2は本発明の実施形態に関するCHA内の2つのプロセッサにおける処理内容を示すフローであり、図3は本実施形態に関する2つのプロセッサにおけるコマンドフェーズの時間的経過を従来技術との比較で示す図である。図4は本発明の他の実施形態に係る、上位ホストサーバとのインタフェース部であるCHA(チャネルアダプタ)の具体的構成を示す図である。
【0013】
図1に示す構成は、上位ホストサーバとのインタフェースであるディスク装置のインタフェース部(チャネルアダプタ(CHA))のコマンド制御を行う部位を示している。外部I/F送受信部位101は外部I/F送受信回路102と外部I/Fプロトコル制御回路103から構成される。また、マイクロプロセッサ部位111,114はマイクロプロセッサ113,116とマイクロプロセッサ制御回路112,115から構成される。外部I/F送受信回路102は上位ホストサーバと接続される上位インタフェース回路である。外部I/Fプロトコル制御回路103は外部I/F送受信回路102で受信した情報をCHAの内部インタフェース信号に変換するための回路である。
【0014】
マイクロプロセッサ113,116は上位ホストサーバから発行されるコマンドを処理する。マイクロプロセッサ制御回路112,115はマイクロプロセッサ113,116の送受信情報をCHAの内部インタフェース信号に変換するための回路である。コマンド制御回路121は外部I/Fプロトコル制御回路103とマイクロプロセッサ制御回路112,115のインタフェースを備えた回路であり、各マイクロプロセッサ113,116への多重ライト機能を持ち、その機能を用いて、外部I/F送受信回路102が上位ホストサーバから受信したコマンドを各マイクロプロセッサ113,116に転送する。ここで、多重ライト機能とは上位ホストサーバから1度のコマンドで送信される情報を複数のマイクロプロセッサへ一度に同時に送信する機能である。
【0015】
本発明の実施形態の一特徴は、コマンド制御回路が複数のマイクロプロセッサへ一度に同時にコマンド転送を行う多重ライト機能を備えていることである。一般的に云って、一連のデータ転送を行う際に、イニシエータ(例えば上位指令装置)とターゲット(ディスク装置)との間で各種の情報交換を行うフェーズが発生する。本発明の実施形態では、ターゲットにおいてこの各種フェーズの情報交換の処理を複数のマイクロプロセッサに分散して実施させることにある。上述した多重ライト機能の詳細については以下に説明する。実際に、図1において、コマンド制御回路121が多重ライト機能を用いて、外部I/F送受信回路102が上位ホストサーバから受信したコマンドを各マイクロプロセッサ113,116に転送し、そのコマンドが処理される手順の一例を示す。
【0016】
或る1つのコマンド(例えば、WRITE、READなど)が上位ホストサーバから指令されると、そのコマンドを実行するためにそのコマンド実行上の処理内容が複数のコマンドフェーズとして送信されてくる。例えば、下記の4つのコマンドフェーズが上位ホストサーバから送信されたとする。
【0017】
(1)イニシエータがターゲットを選定、
(2)イニシエータが転送モードを示すコマンドを転送、
(3)イニシエータがデータ転送のためのデータ転送開始アドレス、データブロック転送回数等のデータ転送用パラメータを転送、
(4)イニシエータがデータ転送開始の指示を示す転送命令を発行。
【0018】
この4つのコマンドフェーズは外部I/F送受信回路102で受信され、外部I/Fプロトコル制御回路103でCHA(チャネルアダプタ)の内部インタフェース信号に変換され、コマンド制御回路121を経由し、マイクロプロセッサ制御回路112,115を介してマイクロプロセッサ113,116にて処理される。
【0019】
この4つのコマンドフェーズはコマンド制御回路121の多重ライト機能により全てのマイクロプロセッサ(本実施形態では113,116)に転送されるが、コマンド制御回路121を経由する際に、例えば、コマンドフェーズ1と3はマイクロプロセッサ113にて処理し、コマンドフェーズ2と4はマイクロプロセッサ116にて処理するというように、コマンド制御回路121上のマイクロプログラムが各コマンドフェーズに何らかのフラグを付加して、マイクロプロセッサ113,116に転送する。
【0020】
次に、各マイクロプロセッサ113,116に転送されたコマンドフェーズの処理について説明する。本実施形態では、コマンドフェーズがコマンド制御回路121により各マイクロプロセッサ113,116に転送される際に付加されるフラグに基づいて、まず、マイクロプロセッサ113にてコマンドフェーズ1の処理を実行する。イニシエータがターゲットを選定する。このコマンドフェーズ1に対してターゲットはイニシエータに自分が選択されたことを返す。それと同時にコマンドフェーズ1が処理されたことをマイクロプロセッサ116にも同様に報告する。
【0021】
コマンドフェーズ1が処理されたという報告を受けたマイクロプロセッサ116はコマンドフェーズ2の処理を実行する。このコマンドフェーズ2に対してターゲットはイニシエータに転送モードを把握したことを返す。それと同時にコマンドフェーズ2が処理されたことをマイクロプロセッサ113にも同様に報告する。コマンドフェーズ2が処理されたという報告を受けたマイクロプロセッサ113はコマンドフェーズ3の処理を実行する。
【0022】
このコマンドフェーズ3に対してターゲットはイニシエータにデータ転送用パラメータを受信したことを返す。それと同時にコマンドフェーズ3が処理されたことをマイクロプロセッサ116にも同様に報告する。コマンドフェーズ3が処理されたという報告を受けたマイクロプロセッサ116はコマンドフェーズ4の処理を実行する。
【0023】
このコマンドフェーズ4に対してターゲットはイニシエータにデータの転送を要求し、データ転送が開始される。それと同時にコマンドフェーズ4が処理されたことをマイクロプロセッサ113にも同様に報告し、全てのコマンドフェーズが処理されたことをマイクロプロセッサ113に知らせる。このように、本実施形態では4つのコマンドフェーズを例にコマンド処理の説明を行ったが、コマンドフェーズが5つ以上ある場合でも、同様の手順でコマンド処理が行われる。
【0024】
このように、2個のマイクロプロセッサを用いた上述の手順でのコマンド処理を行うことにより、片方のマイクロプロセッサはコマンドフェーズを実行する準備が整っており、もう一方のマイクロプロセッサからの一つ前のコマンドフェーズの処理終了を受信次第、即時にコマンド処理が可能であり、1個のマイクロプロセッサで一連のコマンド処理を実行する時の次コマンドフェーズ処理に移るためのオーバヘッドを無くすことができる。
【0025】
以上説明した本発明の実施形態に係るコマンド処理分散方式について、図2及び図3を参照しながら敷衍して再度説明する。本発明の実施形態では多重ライトを行うことによりマイクロプロセッサの負荷分散を可能とするものであり、一度の転送コマンドにおいて複数のマイクロプロセッサを介して別のアドレスへのライトを可能とするところに本発明の特徴が存する。ここで、多重ライトしたことによるコマンド処理の具体的手法は様々であり、コマンド制御回路上のマイクロプログラムによりその手法は委ねられる(上述の例では、マイクロプロセッサ113がコマンドフェーズ1,3を処理し、マイクロプロセッサ116がコマンドフェーズ2,4を処理するという手法)。要は、本実施形態では複数のマイクロプロセッサ(マルチプロセッサ)が効率良く動作するための仕組みとしてコマンド制御回路に多重ライト機能というハードウェアを備えている。
【0026】
図2には、上位ホストサーバからのコマンドによる1つのデータ転送において、データ転送に至るまでの上位ホストサーバとディスク装置インタフェース部(CHA)との間でやりとりされる状態の一例をフローチャートとして示している。まず、上位ホストサーバによって例えばライト(WRITE)命令が発行されると(ステップ1)、CHAにおいてそのコマンドを受信して、コマンド制御回路121の多重ライト機能により各マイクロプロセッサ113,116にコマンドを転送する(ステップ2)。この際、どのマイクロプロセッサにコマンドフェーズを実行させるかはコマンド制御回路121上のマイクロプログラムによりフラグを付加することで決める。
【0027】
次いで、マイクロプロセッサ113はコマンドフェーズ1を処理してその終了報告を通知する(図3の上段における矢印を参照)。これと同時にマイクロプロセッサ116はコマンドフェーズ2を処理する(ステップ3)。その後、マイクロプロセッサ113はコマンドフェーズ3を処理し、マイクロプロセッサ116はコマンドフェーズ1の終了報告を受信し、コマンドフェーズ1終了後でなければ処理できないコマンドフェーズ2の処理(残処理)を実行し(図3の中段における期間Tを参照)、コマンドフェーズ2の終了報告を通知する(ステップ4)(図3の中段における矢印を参照)。
【0028】
次いで、マイクロプロセッサ113はコマンドフェーズ2の終了報告を受信し、コマンドフェーズ3の残処理を実行してその終了報告を通知する。同時にマイクロプロセッサ116はコマンドフェーズ4を処理する(ステップ5)。続いて、マイクロプロセッサ116はコマンドフェーズ3の終了報告を受信してコマンドフェーズ4の残処理を実行し、そのコマンドフェーズ4の終了報告を通知する(ステップ6)。
【0029】
図3には、本実施形態による多重ライトと従来技術との対比を示していて、この図示から分かるように、本実施形態では、コマンド制御回路上のマイクロプログラムによる制御の仕方とも相俟って、複数(例えば2つ)のマイクロプロセッサへ一度のコマンド転送を行い、並列処理することができてコマンド処理の時間短縮が図られ、また、マイクロプロセッサの負荷分散に繋がっている。従来技術では各コマンドフェーズの終了を待って次のコマンドフェーズの処理をしなければならず、コマンド処理時間やマイクロプロセッサ負荷について課題を残している。
【0030】
翻って、上述した、図2に示すマイクロプロセッサ113,116によるコマンドフェーズの処理に際して、終了報告を他方のマイクロプロセッサに伝えた方が良い場合と、伝える必要の無い場合があると云うことについてはコマンド処理の仕方に因る。上述したように、1つのデータ転送のための各コマンドフェーズを各々のマイクロプロセッサにおいて分散(分担)して処理する場合、前のコマンドフェーズが終了し、経時的な順序を要する次のコマンドフェーズを実行するようにするためには終了報告を伝える必要がある。しかし、別々のデータ転送のための一連のコマンドを各々のマイクロプロセッサにおいて処理するような場合には、他方のマイクロプロセッサに対してコマンド処理の終了を伝える必要はない。
【0031】
本発明の実施形態は、コマンド制御回路におけるハードウェアによって各々のマイクロプロセッサに処理すべきコマンドを転送するものであり、このコマンド処理を上述した2つのパターン(即ち、1つは1つのコマンドを2つのマイクロプロセッサで分担するパターンと、他は2つのコマンドをそれぞれのマイクロプロセッサで処理するパターン)又はそれ以外の方法で処理するかはコマンド制御回路上のマイクロプログラム如何によるため、他方のマイクロプロセッサに終了報告を伝えるべきか否かは本発明の必須要件ではない。
【0032】
本発明では、複数のマイクロプロセッサでのコマンド処理を行うに際して、1つのコマンド転送を複数のマイクロプロセッサに複数回行うことなく、一度で複数マイクロプロセッサにコマンド転送を行うことを主眼としたものである。このようなコマンド制御回路の多重ライト機能を用いて各マイクロプロセッサにコマンド転送することによって、マイクロプロセッサでのコマンド処理を各マイクロプロセッサに負荷分散し、マイクロプロセッサに因るボトルネックを軽減しているのである。
【0033】
次に、本発明が適用されるRAID(DKC+DKU)におけるFibre Channel(FC)のコマンドに対する本発明の適否について説明する。本発明がRAIDに適するものはデータ転送系のコマンドである。つまり、キャッシュアクセスを要するコマンドと云うことになる。具体的には、FCのコマンドはFCP_CMNDで示され、そのFCP_CMND形式のFCP_CDBがデータ転送系を示すコマンドであり、コマンド名称はWrite、Readである。これらのコマンドが上位ホストサーバから送信されると、本発明の多重ライト機能により両マイクロプロセッサ113,116にコマンドが送信される。
【0034】
このコマンドを受信した場合(Writeコマンドの例)、両マイクロプロセッサ113,116の役割は、図2に示した処理例以外に次のような処理例もある。即ち、コマンドを受信すると、予めマイクロプロセッサ113が外部I/F送受信部位101の制御を行い、もう1つのマイクロプロセッサ116がCHA内に位置するデータ転送制御部131を制御するように決めておき、それぞれ並列にデータ転送のための準備と制御を行う。即ち、マイクロプロセッサ113は、上位ホストサーバとのデータ転送を行うために外部I/F送受信部位101の制御、準備を行い、並列にもう1つのマイクロプロセッサ116が送信されたFCP_CMNDを基にデータ転送制御部131にキャッシュに対してデータ転送を行うための制御をする。マイクロプロセッサ116による準備が終了すると、マイクロプロセッサ113にCHA内部の転送準備が終了したことを通知する。そして、マイクロプロセッサ113は外部I/Fプロトコル制御回路103に対してデータ転送開始(GO)の指示を出す。
【0035】
以上説明したように、本発明が適用されるRAIDにおいては、データ転送系のコマンドで、一方のマイクロプロセッサが上位ホストサーバとのI/Fである外部I/F送受信部位の制御を行い、もう1つのマイクロプロセッサがRAIDのCHA内のデータ転送制御部の制御を行うのが適するのである。
【0036】
なお、本発明が適さないのはデータ転送系以外のコマンドに対してである。例えば、FCP_CMNDのFCP_CDBとしてInquiryコマンドがある。このコマンドはRAIDの装置情報を得るコマンドであり、CHAの不図示のフラッシュメモリに情報が書かれているので、キャッシュに対してのやりとりは発生しないため、マイクロプロセッサ116によるデータ転送制御部の制御を行う必要が無い。このように、データ転送系のコマンドでなくてキャッシュへのアクセスを必要としないコマンドは、片一方のマイクロプロセッサのみで処理した方が良い。
【0037】
次に、本発明の他の実施形態について図4を用いて説明する。図1に示す実施形態では、マイクロプロセッサ部位は2つであったが、図4に図示するように、コマンド制御回路にマイクロプロセッサ部位とのインタフェースの口をそれ以上持つことが出来れば、それだけのマイクロプロセッサ部位、マイクロプロセッサを備えることができ、一層の負荷分散を望める可能性がある。また、図1に示す実施形態において、外部I/F送受信部位が1つであったが、図4に図示するように、複数個あっても構わない。その場合、バスフリーの状態でバス使用権を獲得するアービトレーションが行われる。
【0038】
【発明の効果】
以上説明したように、本発明によれば、上位ホストサーバからのコマンドの処理を、多重ライト機能を備えたコマンド制御回路により各マイクロプロセッサへコマンドを転送し、複数のマイクロプロセッサにて分散処理する方式により、ディスク装置のインタフェース部のマイクロプロセッサのボトルネックを軽減し、ディスク装置によるストレージシステムの性能低下を防ぐことができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る、上位ホストサーバとのインタフェース部であるCHA(チャネルアダプタ)の具体的構成を示す図である。
【図2】本発明の実施形態に関するCHA内の2つのプロセッサにおける処理内容を示すフローである。
【図3】本実施形態に関する2つのプロセッサにおけるコマンドフェーズの時間的経過を従来技術との比較で示す図である。
【図4】本発明の他の実施形態に係る、上位ホストサーバとのインタフェース部であるCHA(チャネルアダプタ)の具体的構成を示す図である。
【図5】従来技術に関する上位ホストサーバ、DKC、DKUからなるデータ転送の全体構成を示す図である。
【符号の説明】
101,501 外部I/F送受信部位
102,502 外部I/F送受信回路
103,503 外部I/Fプロトコル制御回路
111,114,511 マイクロプロセッサ部位
112,115,512 マイクロプロセッサ制御回路
113,116,513 マイクロプロセッサ
121,521 コマンド制御回路
131,531 データ転送制御部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a command processing distribution method for transferring a command issued from a higher-level information processing device to a storage device to a plurality of microprocessors by a multiplex write function and performing command processing smoothly.
[0002]
[Prior art]
FIG. 5 is a diagram showing an overall configuration of data transfer including a host computer, DKC, and DKU according to the related art. In FIG. 5, a DKC (disk controller) for controlling data transfer processing interposed between an upper host server and a DKU (disk unit) as a disk unit of the storage device forms an interface unit with the upper host server. (Channel adapter), CACHE (cache), and DKA (disk adapter) forming an interface with the DKU.
[0003]
As shown in FIG. 5, the CHA includes an external I / F transmission / reception unit 501, a command control circuit 521, a data transfer control unit 531 and a microprocessor unit 511. Although one microprocessor control circuit 512 and one microprocessor 513 are shown in the microprocessor part 511 in FIG. 5, a plurality of the microprocessor parts 511 may be connected.
[0004]
In the prior art shown in FIG. 5, a series of data transfer is performed between the host server and the DKU via the CHA which is the interface unit of the DKC. At this time, even if the CHA as the interface unit has one or two microprocessors for command processing as shown in FIG. , That is, a series of command processing until the data transfer end status is returned to the host server, is executed by the one microprocessor.
[0005]
Further, the system processing time can be shortened by the multiprocessor processing method in the prior art. The common program includes two processors in a master-slave relationship and a shared memory, and a common program executable by each processor is included in the memory. It is disclosed that the amount of parallel processing of each processor is made substantially equal by changing the execution distribution of the program.
[0006]
[Patent Document 1]
JP-A-5-28120
[Problems to be solved by the invention]
According to the above-described conventional technology, the microprocessor is unable to operate the interface unit (CHA) because many I / O requests are issued from the higher-level host server or a certain command processing takes time to fall into some busy state. As a bottleneck, commands may be queued (the command may be received and stored in a large amount that cannot be processed) or retried. In such a situation, the performance of the storage system may be degraded due to the DKC.
[0008]
Further, according to Patent Document 1, the system processing time is reduced based on a structural constraint that the two processors are in a master-slave relationship and have a shared memory loaded with a common program. However, there is an inconvenience that it cannot be applied to a RAID (Redundant Arrays Inexpensive Disks: DKC + DKU) interface unit using a general-purpose processor or memory.
[0009]
An object of the present invention is to reduce a bottleneck of a microprocessor in an interface section of a disk controller (DKC), and to prevent a decrease in performance of a storage system due to a disk controller.
[0010]
[Means for Solving the Problems]
In order to solve the above problems, the present invention mainly employs the following configuration. An external I / F transmission / reception unit connected to an upper host server, a microprocessor unit having a microprocessor for processing a command issued from the upper host server, and an external I / F transmission unit and the microprocessor unit. A command control circuit interposed between the command control circuit and an interface unit of the storage device,
A plurality of microprocessor units are connected to the command control circuit,
The command control circuit has a multiplex write function of simultaneously transferring a command from the upper host server to the plurality of microprocessor units at a time, and the multiplex write function of the command control circuit allows A command processing method that distributes commands to each microprocessor and processes them.
[0011]
By adopting this configuration, the command processing issued from the host server can be load-balanced among the microprocessors, and the bottleneck by the microprocessors can be reduced.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
A command processing distribution method by a multiprocessor according to an embodiment of the present invention will be described below with reference to FIGS. FIG. 1 is a diagram showing a specific configuration of a CHA (channel adapter) which is an interface unit with an upper-level host server according to an embodiment of the present invention, and FIG. 2 is a diagram showing two processors in the CHA according to the embodiment of the present invention. FIG. 3 is a diagram showing a temporal progress of a command phase in two processors according to the present embodiment in comparison with a conventional technique. FIG. 4 is a diagram showing a specific configuration of a CHA (channel adapter) which is an interface unit with a higher-level host server according to another embodiment of the present invention.
[0013]
The configuration shown in FIG. 1 shows a part that performs command control of an interface unit (channel adapter (CHA)) of a disk device that is an interface with an upper-level host server. The external I / F transmission / reception unit 101 includes an external I / F transmission / reception circuit 102 and an external I / F protocol control circuit 103. The microprocessor parts 111 and 114 are composed of microprocessors 113 and 116 and microprocessor control circuits 112 and 115. The external I / F transmission / reception circuit 102 is a higher-level interface circuit connected to a higher-level host server. The external I / F protocol control circuit 103 is a circuit for converting information received by the external I / F transmission / reception circuit 102 into a CHA internal interface signal.
[0014]
The microprocessors 113 and 116 process commands issued from the host server. The microprocessor control circuits 112 and 115 are circuits for converting transmission / reception information of the microprocessors 113 and 116 into CHA internal interface signals. The command control circuit 121 is a circuit having an interface between the external I / F protocol control circuit 103 and the microprocessor control circuits 112 and 115. The command control circuit 121 has a function of multiplexing writing to each of the microprocessors 113 and 116. The external I / F transmission / reception circuit 102 transfers the command received from the host server to the microprocessors 113 and 116. Here, the multiplex write function is a function of simultaneously transmitting information transmitted by a single command from the host server to a plurality of microprocessors at once.
[0015]
One feature of the embodiment of the present invention is that the command control circuit has a multiplex write function for simultaneously transferring commands to a plurality of microprocessors at once. Generally speaking, when performing a series of data transfer, a phase occurs in which various types of information are exchanged between an initiator (for example, a higher-order command device) and a target (disk device). In an embodiment of the present invention, the information exchange processing of the various phases in the target is distributed to and executed by a plurality of microprocessors. Details of the multiplex write function described above will be described below. Actually, in FIG. 1, the command control circuit 121 transfers the command received from the host server to the microprocessors 113 and 116 by the external I / F transmission / reception circuit 102 using the multiplex write function, and the command is processed. An example of the procedure will be described.
[0016]
When a certain command (for example, WRITE, READ, etc.) is instructed from the upper host server, processing contents of the command execution are transmitted as a plurality of command phases in order to execute the command. For example, it is assumed that the following four command phases are transmitted from the host server.
[0017]
(1) Initiator selects target,
(2) The initiator transfers a command indicating the transfer mode,
(3) the initiator transfers data transfer parameters such as a data transfer start address for data transfer and the number of data block transfers;
(4) The initiator issues a transfer instruction indicating an instruction to start data transfer.
[0018]
These four command phases are received by the external I / F transmission / reception circuit 102, converted into an internal interface signal of CHA (channel adapter) by the external I / F protocol control circuit 103, passed through the command control circuit 121, and controlled by the microprocessor. The signals are processed by the microprocessors 113 and 116 via the circuits 112 and 115.
[0019]
These four command phases are transferred to all the microprocessors (113 and 116 in the present embodiment) by the multiplex write function of the command control circuit 121. When passing through the command control circuit 121, for example, the command phases 1 and 2 are transferred. 3 is processed by the microprocessor 113, and the command phases 2 and 4 are processed by the microprocessor 116, so that the microprogram on the command control circuit 121 adds a certain flag to each command phase. , 116.
[0020]
Next, the processing of the command phase transferred to each of the microprocessors 113 and 116 will be described. In the present embodiment, first, the microprocessor 113 executes the processing of the command phase 1 based on the flag added when the command phase is transferred to each of the microprocessors 113 and 116 by the command control circuit 121. The initiator selects a target. For this command phase 1, the target returns to the initiator that it has been selected. At the same time, the fact that the command phase 1 has been processed is similarly reported to the microprocessor 116.
[0021]
The microprocessor 116 receiving the report that the command phase 1 has been processed executes the processing of the command phase 2. In response to this command phase 2, the target returns to the initiator that it has grasped the transfer mode. At the same time, the fact that the command phase 2 has been processed is similarly reported to the microprocessor 113. The microprocessor 113 that has received the report that the command phase 2 has been processed executes the processing of the command phase 3.
[0022]
In response to the command phase 3, the target returns to the initiator that the data transfer parameter has been received. At the same time, the fact that the command phase 3 has been processed is similarly reported to the microprocessor 116. The microprocessor 116 receiving the report that the command phase 3 has been processed executes the processing of the command phase 4.
[0023]
For this command phase 4, the target requests the initiator to transfer data, and the data transfer is started. At the same time, the fact that command phase 4 has been processed is similarly reported to the microprocessor 113, and the microprocessor 113 is notified that all command phases have been processed. As described above, in the present embodiment, the command processing has been described using four command phases as an example. However, even when there are five or more command phases, the command processing is performed in the same procedure.
[0024]
As described above, by performing the command processing in the above-described procedure using two microprocessors, one microprocessor is ready to execute the command phase, and one microprocessor is ready to execute the command phase. As soon as the completion of the processing of the command phase is received, the command processing can be performed immediately, and the overhead for shifting to the next command phase processing when a series of command processing is executed by one microprocessor can be eliminated.
[0025]
The command processing distribution method according to the embodiment of the present invention described above will be described again with reference to FIGS. In the embodiment of the present invention, the load of the microprocessor can be distributed by performing the multiplex write, and the write to another address can be performed through a plurality of microprocessors in one transfer command. There are features of the invention. Here, there are various specific methods of command processing based on multiplex writing, and the method is entrusted to the microprogram on the command control circuit (in the above example, the microprocessor 113 processes the command phases 1 and 3). , The microprocessor 116 processes the command phases 2 and 4). In short, in the present embodiment, the command control circuit is provided with hardware called a multiplex write function as a mechanism for efficiently operating a plurality of microprocessors (multiprocessors).
[0026]
FIG. 2 is a flowchart showing an example of a state of data exchange between the upper host server and the disk device interface unit (CHA) up to the data transfer in one data transfer by a command from the upper host server. I have. First, when, for example, a write (WRITE) instruction is issued by the upper host server (step 1), the command is received in the CHA, and the command is transferred to the microprocessors 113 and 116 by the multiplex write function of the command control circuit 121. (Step 2). At this time, which microprocessor is to execute the command phase is determined by adding a flag by a microprogram on the command control circuit 121.
[0027]
Next, the microprocessor 113 processes the command phase 1 and notifies the end report (see the arrow in the upper part of FIG. 3). At the same time, the microprocessor 116 processes the command phase 2 (step 3). Thereafter, the microprocessor 113 processes the command phase 3, the microprocessor 116 receives the end report of the command phase 1, and executes the processing of the command phase 2 (remaining processing) that can be processed only after the end of the command phase 1 ( In the period T in the middle part of FIG. 3), the end report of the command phase 2 is notified (step 4) (see the arrow in the middle part of FIG. 3).
[0028]
Next, the microprocessor 113 receives the end report of the command phase 2, executes the remaining processing of the command phase 3, and notifies the end report. At the same time, the microprocessor 116 processes the command phase 4 (step 5). Subsequently, the microprocessor 116 receives the end report of the command phase 3, executes the remaining processing of the command phase 4, and notifies the end report of the command phase 4 (step 6).
[0029]
FIG. 3 shows a comparison between the multiplex write according to the present embodiment and the prior art. As can be seen from this drawing, in the present embodiment, the control by the microprogram on the command control circuit is combined. The command can be transferred to a plurality of (for example, two) microprocessors at one time, and can be processed in parallel, thereby shortening the command processing time, and also leading to a load distribution of the microprocessors. In the prior art, the processing of the next command phase must be performed after the completion of each command phase, and there is a problem in the command processing time and the microprocessor load.
[0030]
On the other hand, in the above-described processing of the command phase by the microprocessors 113 and 116 shown in FIG. 2, there are cases where it is better to transmit an end report to the other microprocessor and cases where it is not necessary to transmit the end report. It depends on how the command is processed. As described above, when each command phase for one data transfer is processed in a distributed manner (shared) in each microprocessor, the previous command phase is completed, and the next command phase requiring a chronological order is executed. In order to execute it, it is necessary to give a completion report. However, when a series of commands for separate data transfer are processed in each microprocessor, it is not necessary to notify the other microprocessor of the end of the command processing.
[0031]
In the embodiment of the present invention, a command to be processed is transferred to each microprocessor by hardware in a command control circuit, and this command processing is performed in the above-described two patterns (that is, one command corresponds to two commands). The pattern shared by one microprocessor and the other is a pattern in which two commands are processed by each microprocessor) or other methods are processed by a microprogram on the command control circuit. Whether or not a termination report should be communicated is not a requirement of the present invention.
[0032]
According to the present invention, when command processing is performed by a plurality of microprocessors, the main purpose is to transfer a command to a plurality of microprocessors at once without performing one command transfer to a plurality of microprocessors. . By transferring a command to each microprocessor using the multiplex write function of such a command control circuit, command processing in the microprocessor is load-balanced among the microprocessors, and a bottleneck caused by the microprocessor is reduced. It is.
[0033]
Next, the suitability of the present invention with respect to a Fiber Channel (FC) command in RAID (DKC + DKU) to which the present invention is applied will be described. What the present invention is suitable for RAID is a data transfer command. That is, it is a command requiring cache access. Specifically, the FC command is indicated by FCP_CMND, the FCP_CDB in the FCP_CMND format is a command indicating a data transfer system, and the command names are Write and Read. When these commands are transmitted from the host server, the commands are transmitted to both microprocessors 113 and 116 by the multiplex write function of the present invention.
[0034]
When this command is received (an example of a Write command), the roles of the microprocessors 113 and 116 include the following processing examples other than the processing example shown in FIG. That is, when the command is received, the microprocessor 113 controls the external I / F transmission / reception unit 101 in advance, and another microprocessor 116 determines the data transfer control unit 131 located in the CHA in advance. Preparation and control for data transfer are performed in parallel. That is, the microprocessor 113 controls and prepares the external I / F transmission / reception unit 101 to perform data transfer with the host server, and transfers data based on the FCP_CMND transmitted by another microprocessor 116 in parallel. The controller 131 controls the data transfer to the cache. When the preparation by the microprocessor 116 ends, the microprocessor 113 is notified that the transfer preparation inside the CHA has ended. Then, the microprocessor 113 instructs the external I / F protocol control circuit 103 to start data transfer (GO).
[0035]
As described above, in the RAID to which the present invention is applied, one of the microprocessors controls an external I / F transmission / reception part, which is an I / F with an upper-level host server, by a data transfer command. It is suitable that one microprocessor controls the data transfer control unit in the RAID CHA.
[0036]
Note that the present invention is not suitable for commands other than the data transfer system. For example, there is an Inquiry command as FCP_CDB of FCP_CMND. This command is a command for obtaining RAID device information. Since the information is written in a flash memory (not shown) of the CHA, no exchange with the cache occurs, so that the microprocessor 116 controls the data transfer control unit. There is no need to do. Thus, a command that does not require access to the cache, which is not a data transfer command, is preferably processed by only one of the microprocessors.
[0037]
Next, another embodiment of the present invention will be described with reference to FIG. In the embodiment shown in FIG. 1, the number of microprocessor parts is two. However, as shown in FIG. 4, if the command control circuit can have more ports for interfacing with the microprocessor part, the number of microprocessor parts becomes larger. A microprocessor part and a microprocessor can be provided, and there is a possibility that further load distribution can be expected. Further, in the embodiment shown in FIG. 1, the number of external I / F transmission / reception parts is one, but a plurality of parts may be provided as shown in FIG. In this case, arbitration for acquiring the right to use the bus is performed in a bus-free state.
[0038]
【The invention's effect】
As described above, according to the present invention, processing of a command from an upper-level host server is transferred to each microprocessor by a command control circuit having a multiplex write function, and distributed by a plurality of microprocessors. With this method, it is possible to reduce the bottleneck of the microprocessor in the interface unit of the disk device and prevent the performance of the storage system from deteriorating due to the disk device.
[Brief description of the drawings]
FIG. 1 is a diagram showing a specific configuration of a CHA (channel adapter) which is an interface unit with an upper-level host server according to an embodiment of the present invention.
FIG. 2 is a flowchart showing processing contents in two processors in a CHA according to the embodiment of the present invention.
FIG. 3 is a diagram illustrating a time course of a command phase in two processors according to the present embodiment in comparison with a conventional technique.
FIG. 4 is a diagram showing a specific configuration of a CHA (channel adapter) which is an interface unit with an upper-level host server according to another embodiment of the present invention.
FIG. 5 is a diagram showing an overall configuration of data transfer including a host computer, a DKC, and a DKU according to the related art.
[Explanation of symbols]
101, 501 External I / F transmission / reception part 102, 502 External I / F transmission / reception circuit 103, 503 External I / F protocol control circuit 111, 114, 511 Microprocessor part 112, 115, 512 Microprocessor control circuit 113, 116, 513 Microprocessors 121, 521 Command control circuits 131, 531 Data transfer control unit

Claims (3)

上位ホストサーバに接続された外部I/F送受信部と、前記上位ホストサーバから発行されるコマンドを処理するマイクロプロセッサを有するマイクロプロセッサ部と、前記外部I/F送受信部と前記マイクロプロセッサ部との間に介在されてインタフェースを仲介するコマンド制御回路と、を備えたストレージ装置のインタフェース部であって、
前記コマンド制御回路には複数のマイクロプロセッサ部が接続され、
前記コマンド制御回路は前記上位ホストサーバからのコマンドを一度に同時に前記複数のマイクロプロセッサ部へコマンド転送を行う多重ライト機能を有し、前記コマンド制御回路の多重ライト機能によって、前記上位ホストサーバからのコマンドを各マイクロプロセッサに分散して処理する
ことを特徴とするコマンド処理方式。
An external I / F transmission / reception unit connected to an upper host server, a microprocessor unit having a microprocessor for processing a command issued from the upper host server, and an external I / F transmission unit and the microprocessor unit. A command control circuit interposed between the command control circuit and an interface unit of the storage device,
A plurality of microprocessor units are connected to the command control circuit,
The command control circuit has a multiplex write function of simultaneously transferring a command from the upper host server to the plurality of microprocessor units at a time, and the multiplex write function of the command control circuit allows A command processing method wherein commands are distributed to and processed by respective microprocessors.
請求項1において、
前記各マイクロプロセッサによるコマンド処理に際して、複数のコマンドフェーズの処理実行が前記各マイクロプロセッサで並列処理されることを特徴とするコマンド処理方式。
In claim 1,
A command processing method, wherein, when processing commands by the microprocessors, processing of a plurality of command phases is performed in parallel by the microprocessors.
請求項1において、
前記外部I/F送受信部を複数個有することを特徴とするコマンド処理方式。
In claim 1,
A command processing method comprising a plurality of the external I / F transmission / reception units.
JP2002301945A 2002-10-16 2002-10-16 Command processing system by multiprocessor Withdrawn JP2004139260A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002301945A JP2004139260A (en) 2002-10-16 2002-10-16 Command processing system by multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002301945A JP2004139260A (en) 2002-10-16 2002-10-16 Command processing system by multiprocessor

Publications (2)

Publication Number Publication Date
JP2004139260A true JP2004139260A (en) 2004-05-13
JP2004139260A5 JP2004139260A5 (en) 2005-12-08

Family

ID=32450159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002301945A Withdrawn JP2004139260A (en) 2002-10-16 2002-10-16 Command processing system by multiprocessor

Country Status (1)

Country Link
JP (1) JP2004139260A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107019A (en) * 2004-10-04 2006-04-20 Hitachi Ltd Disk array device
WO2018220702A1 (en) * 2017-05-30 2018-12-06 三菱電機株式会社 Management system, management method and management program
US10572402B2 (en) 2017-09-20 2020-02-25 Samsung Electronics Co., Ltd. Storage device communicating with host according to multicast communication protocol and communication method of host

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107019A (en) * 2004-10-04 2006-04-20 Hitachi Ltd Disk array device
WO2018220702A1 (en) * 2017-05-30 2018-12-06 三菱電機株式会社 Management system, management method and management program
JP6509475B1 (en) * 2017-05-30 2019-05-08 三菱電機株式会社 Management device, management method and management program
US10572402B2 (en) 2017-09-20 2020-02-25 Samsung Electronics Co., Ltd. Storage device communicating with host according to multicast communication protocol and communication method of host

Similar Documents

Publication Publication Date Title
CA3062336C (en) Apparatus and method for controlling data acceleration
JP4817783B2 (en) RAID system and rebuild / copyback processing method thereof
JP3694273B2 (en) Data processing system having multipath I / O request mechanism
JP4472617B2 (en) RAID system, RAID controller and rebuild / copy back processing method thereof
TWI276964B (en) Direct memory access controller system
JP4917174B2 (en) Computer program, apparatus, and method for facilitating input / output processing for input / output (I / O) operations in a host computer system configured to communicate with a controller
EP1796001B1 (en) Method for implementing shared disk array management functions.
US7739432B1 (en) Command switching for multiple initiator access to a SATA drive
KR970001919B1 (en) System and method for transfering information between multiple buses
JPH09325905A (en) Memory control unit
JP2005505056A (en) Controller data sharing using modular DMA architecture
JP2005507118A (en) Modular architecture for network storage controllers
JP3769413B2 (en) Disk array controller
JP4100256B2 (en) Communication method and information processing apparatus
JP4451687B2 (en) Storage system
JP2004054916A (en) Method of executing hardware support communication between processors
JP3266470B2 (en) Data processing system with per-request write-through cache in forced order
JP2550311B2 (en) Multiple control system of magnetic disk
US20060265523A1 (en) Data transfer circuit and data transfer method
US8099563B2 (en) Storage device and access instruction sending method
US20070180180A1 (en) Storage system, and storage control method
JP2009282917A (en) Interserver communication mechanism and computer system
JP2003288317A (en) System and method for detecting and compensating for runt block data transfer
JPH0844649A (en) Data processor
JP2004139260A (en) Command processing system by multiprocessor

Legal Events

Date Code Title Description
A521 Written amendment

Effective date: 20051011

Free format text: JAPANESE INTERMEDIATE CODE: A523

A621 Written request for application examination

Effective date: 20051011

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20080729

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20080819

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20081010

Free format text: JAPANESE INTERMEDIATE CODE: A523

A761 Written withdrawal of application

Effective date: 20090316

Free format text: JAPANESE INTERMEDIATE CODE: A761