JP2004318717A - Disk array controller - Google Patents
Disk array controller Download PDFInfo
- Publication number
- JP2004318717A JP2004318717A JP2003114613A JP2003114613A JP2004318717A JP 2004318717 A JP2004318717 A JP 2004318717A JP 2003114613 A JP2003114613 A JP 2003114613A JP 2003114613 A JP2003114613 A JP 2003114613A JP 2004318717 A JP2004318717 A JP 2004318717A
- Authority
- JP
- Japan
- Prior art keywords
- data
- command
- cache memory
- unit
- data pattern
- 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
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ディスクアレイ制御装置に関し、特に、内部インタフェースの高速化に適用して有効な技術に関する。
【0002】
【従来の技術】
インタネット等のネットワークの普及や企業で扱う情報量の増加に伴い、ストレージに対する要求が益々多様化している。ディスクシステムの容量も増加し、ディスクシステムに接続される外部ネットワークも高速で大容量のデータ転送をサポートしている。
【0003】
ディスクシステムの内部についても高速インタフェースによるデータ転送をサポートしているが、パッケージ、コネクタ、LSIのピン数制限により、ディスクシステムに接続される外部ネットワークに比べ、線が細いためレイテンシが長くなる。
【0004】
そこで、従来、ディスクアレイ制御装置内の内部インタフェースの高速化技術として、ホストからの複数のコマンドが1つの連続領域へのアクセスを要求するコマンドであるとき、これらの複数のコマンドをグループ化して1つのコマンドとして処理することにより、内部インタフェースの負荷を削減すると共に処理の高速化を図るものがあった(例えば、特許文献1参照)。また、データ転送経路にバッファを設け、レイテンシの増加を隠すなどの対策を行う技術もあった。
【0005】
【特許文献1】
特開平5−289818号公報
【0006】
【発明が解決しようとする課題】
ディスクアレイ制御装置の処理として、ホストコンピュータからの書き込みリクエストに対しては、ホストコンピュータから送られた書き込みデータをチャネルインタフェース部で受け取り、該データをディスクアレイ制御装置内の内部インタフェースを経由してデータ転送を行い、キャッシュメモリおよびディスク装置に書き込む。このとき、書き込みデータ量が大きい場合は、内部インタフェースの負荷は大きくなり、レイテンシは長くなってしまう。
【0007】
また、ホストコンピュータからの読み出しリクエストに対しては、ホストコンピュータからの送られた情報により該当データをディスクアレイ制御装置内のキャッシュメモリおよびディスク装置から読み出し、ディスクアレイ制御装置内の内部インタフェースを経由してデータ転送を行い、ホストコンピュータに読み出しデータを送出する。このとき、読み出しデータ量が大きい場合は、内部インタフェースの負荷は大きくなり、レイテンシは長くなってしまう。
【0008】
また、ホストコンピュータとディスクアレイ制御装置を接続する外部ネットワークの性能が内部インタフェースに比べ高速大容量の場合、ホストコンピュータからのリクエストを待たせないためには、ディスクアレイ制御装置内に大容量のバッファを備える必要があり、コストの面などで問題となっていた。
【0009】
また、内部インタフェースを共有している他処理への影響を抑える方法として、従来では、データ転送を分ける方式が用いられていた。これは、たとえば、4キロバイトのデータを転送する場合、256バイト単位にデータを分割し、間に他処理のデータのために内部インタフェースを空ける方法である。
【0010】
しかしながら、レイテンシを短くするためには、内部インタフェースの高速化や内部インタフェースの本数増加等を行わなければならないが、外部ネットワークに比べ高速化が難しいことや、インタフェースを増やすことによるパッケージやLSIのコネクタおよびピン数確保の制約があり、レイテンシを短くするのは困難であった。
【0011】
また、前記特許文献1に記載のものでは、複数のコマンドが1つの連続領域へのアクセスを要求するコマンドであるときに、これらの複数のコマンドをグループ化して処理することによりコマンド量を減少させるだけなので、連続領域へのアクセスではないとコマンド量を減らすことはできず、また、コマンドにより扱われる書き込みおよび読み出しのデータ量が大きい場合には内部インタフェースの負担が大きくなってしまうという問題点があった。
【0012】
そこで、本発明の目的は、ディスクアレイ制御装置内の内部インタフェースの負荷を軽減し、ホストコンピュータからのキャッシュメモリおよびディスク装置へのアクセス性能を向上することのできるディスクアレイ制御装置を提供することにある。
【0013】
【課題を解決するための手段】
本発明によるディスクアレイ制御装置は、ホストコンピュータに接続されるチャネルインタフェース部と、ディスク装置に接続されるディスクインタフェース部と、ディスク装置に対して読み出し又は書き込みされるデータを一時的に格納するキャッシュメモリ部と、チャネルインタフェース部とキャッシュメモリ部を接続する第1の相互結合網と、ディスクインタフェース部とキャッシュメモリ部を接続する第2の相互結合網とを有するディスクアレイ制御装置において、ホストコンピュータからの書き込みデータのパターン、およびキャッシュメモリ部とディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理手段と、データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化するコマンド生成手段と、コマンドを解析し、元のデータパターンを生成するコマンド解析手段とを備えたものである。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【0015】
(実施の形態1)
図1は本発明の実施の形態1におけるディスクアレイ制御装置の構成を示す構成図である。
【0016】
図1において、ディスクアレイ制御装置2は、多数の磁気ディスク装置から構成されるディスク装置4に接続され、外部ネットワーク2を介して接続されるホストコンピュータ1からの指示により、ディスク装置4を制御するものであり、ディスクアレイ制御装置2およびディスク装置4でディスクアレイ装置を構成している。
【0017】
また、ディスクアレイ制御装置2は、ホストコンピュータ1との間を外部ネットワーク3で接続し、データ転送を行うチャネルインタフェース部10、ディスク装置4とのデータ転送のためのディスクインタフェース部60、ディスク装置4に対してリード/ライトされるデータを一時的に格納するキャッシュメモリ50を備えるキャッシュメモリ部40、チャネルインタフェース部10およびディスクインタフェース部60とキャッシュメモリ部40とのデータ転送に関する制御およびディスク装置4の管理情報を格納する共有メモリ部20から構成されている。
【0018】
チャネルインタフェース部10およびディスクインタフェース部60と共有メモリ部20は、各々第1の相互結合網および第2の相互結合網である相互結合網70で接続され、また、チャネルインタフェース部10およびディスクインタフェース部60とキャッシュメモリ部40は、各々相互結合網80で接続されている。
【0019】
また、チャネルインタフェース部10は、ホストコンピュータ1との間でデータ転送を行うホストデータ送受信部34、データパターン識別論理手段であるデータパターン識別論理部30、コマンド生成手段であるコマンド生成部31、コマンド解析手段であるコマンド解析部32、チャネルインタフェース部10を制御するためのプロセッサ33から構成されている。
【0020】
チャネルインタフェース部10のデータパターン識別論理部30、コマンド生成部31、コマンド解析部32により、ホストコンピュータ1からの書き込みリクエストに伴うキャッシュメモリ部40への書き込みデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、ホストコンピュータ1からの読み出しリクエスト処理におけるキャッシュメモリ部40からの読み出しデータが特殊コマンド化されていた場合のホストコンピュータ1への送出データ生成が行われている。
【0021】
また、キャッシュメモリ部40は、キャッシュメモリ50、チャネルインタフェース部10とキャッシュメモリ50との間に設けられた、データパターン識別論理部30、コマンド生成部31、コマンド解析部32、ディスクインタフェース部60とキャッシュメモリ50との間に設けられたデータパターン識別論理部30、コマンド生成部31、コマンド解析部32から構成されている。
【0022】
キャッシュメモリ部40のチャネルインタフェース部10とキャッシュメモリ50との間に設けられた、データパターン識別論理部30、コマンド生成部31、コマンド解析部32により、ホストコンピュータ1からの書き込みリクエストに伴うチャネルインタフェース部10からの書き込みデータが特殊コマンド化されていた場合のキャッシュメモリ50への書き込みデータ生成およびキャッシュメモリ50からの読み出しデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化が行われている。
【0023】
キャッシュメモリ部40のディスクインタフェース部60とキャッシュメモリ50との間に設けられたデータパターン識別論理部30、コマンド生成部31、コマンド解析部32により、キャッシュメモリ50からの読み出しデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、ディスクインタフェース部60からキャッシュメモリ部40への送出データが特殊コマンド化されていた場合のデータ生成が行われている。
【0024】
また、ディスクインタフェース部60は、ディスク装置4との間でデータ転送を行うディスクデータ送受信部35、データパターン識別論理部30、コマンド生成部31、コマンド解析部32、ディスクインタフェース部60を制御するためのプロセッサ33から構成されている。
【0025】
ディスクインタフェース部60のデータパターン識別論理部30、コマンド生成部31、コマンド解析部32により、キャッシュメモリ部40への送出データ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、キャッシュメモリ部40からの送出データが特殊コマンド化されていた場合のディスク装置4への送出データ生成が行われている。
【0026】
また、チャネルインタフェース部10のプロセッサ33およびディスクインタフェース部60のプロセッサ33はサービスプロセッサ接続網90を介してサービスプロセッサ100に接続されている。
【0027】
次に、この実施の形態の動作について説明する。
【0028】
図2は実施の形態1によるホストコンピュータからのリクエストの処理の動作を示すフローチャート、図3は実施の形態1によるキャッシュメモリからの読み出し処理の動作を示すフローチャート、図4は実施の形態1によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【0029】
まず、ホストコンピュータ1からのリクエストの処理の動作は、ホストコンピュータ1からリクエストがチャネルインタフェース部10に到着すると(S100)、コマンド解析部32でコマンド/アドレスの解析を行う(S101)。
【0030】
そして、S101でのコマンド解析により書き込みリクエストか読み出しリクエストかを判断する(S102)。
【0031】
そして、S102で読み出しリクエストと判断されると、コマンド/アドレスをキャッシュメモリ部40に送出し(S106)、S102で書き込みリクエストと判断されると、データパターン識別論理部30にて特定パターンの有無を識別する(S103)。
【0032】
そして、S103で特定パターンが無いと識別されると、コマンド/アドレス/書き込みデータをキャッシュメモリ部40に送出し(S106)、S103で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する(S104)。
【0033】
そして、S104で特殊コマンド化が必要ないと判断されると、コマンド/アドレス/書き込みデータをキャッシュメモリ部40に送出し(S106)、S104で特殊コマンド化が必要と判断されると、コマンド生成部31でデータを特殊コマンド化して(S105)、コマンド/アドレス/書き込みデータ/特殊コマンドをキャッシュメモリ部40に送出する(S106)。
【0034】
S105で全てのデータを特殊コマンド化できる場合、S106での書き込みデータの送出を行う必要は無い。また、S105で一部のデータのみ特殊コマンド化した場合は、残りの書き込みデータは送出する必要がある。
【0035】
特殊コマンド化することにより、チャネルインタフェース部10とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、書き込み処理の性能を向上することとなる。ここまでがチャネルインタフェース部10内の処理である。
【0036】
続いてキャッシュメモリ部40内の処理に移り、チャネルインタフェース部10からリクエストがキャッシュメモリ部40に到着すると(S107)、コマンド解析部32でコマンド/アドレスの解析を行う(S108)。
【0037】
そして、S108でのコマンド解析により書き込みリクエストか読み出しリクエストを判断する(S109)。
【0038】
そして、S109で読み出しリクエストと判断されると、キャッシュメモリ50からデータ読み出しを行い(S113)、S109で書き込みリクエストと判断されると、特殊コマンド有無を判断する(S110)。
【0039】
そして、S110で特殊コマンドが無いと判断されると、キャッシュメモリ50にデータを書き込み(S112)、S110で特殊コマンドが有ると判断されると、コマンド解析部32により特殊コマンドを解析し、特殊コマンドからホストコンピュータ1から送出された元のデータパターンにデータを戻して書き込みデータを生成し(S111)、キャッシュメモリ50にデータを書き込む(S112)。
【0040】
ここでは、特殊コマンドを判別して書き込みデータを生成し、ホストコンピュータ1からの送出データと同じデータパターンにした後、キャッシュメモリ50に書き込んでいるが、特殊コマンドをそのままキャッシュメモリ50に書き込んで、キャッシュメモリ使用容量の削減を図ることも可能である。
【0041】
次に、キャッシュメモリ50からの読み出し処理の動作は、キャッシュメモリ50からデータを読み出し(S120)、データパターン識別論理部30にて特定パターンの有無を識別する(S121)。
【0042】
そして、S121で特定パターンが無いと識別されると、コマンド/アドレス/読み出しデータをチャネルインタフェース部10に送出し(S124)、S121で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する(S122)。
【0043】
そして、S122で特殊コマンド化が必要ないと判断されると、コマンド/アドレス/読み出しデータをチャネルインタフェース部10に送出し(S124)、S122で特殊コマンド化が必要と判断されると、コマンド生成部31でデータを特殊コマンド化して(S123)、コマンド/アドレス/読み出しデータ/特殊コマンドをチャネルインタフェース部10に送出する(S124)。
【0044】
S123で全てのデータを特殊コマンド化できる場合、S124での読み出しデータの送出を行う必要は無い。また、S123で一部のデータのみ特殊コマンド化した場合は、残りの読み出しデータは送出する必要がある。
【0045】
特殊コマンド化することにより、チャネルインタフェース部10とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、読み出し処理の性能を向上することとなる。ここまでがキャッシュメモリ部40内の処理である。
【0046】
続いて、チャネルインタフェース部10内の処理に移り、キャッシュメモリ部40から読み出しデータがチャネルインタフェース部10に到着すると(S125)、コマンド解析部32でコマンド/アドレスの解析を行う(S126)。
【0047】
そして、特殊コマンド有無を判断し(S127)、S127で特殊コマンドが無いと判断されると、ホストコンピュータ1へデータを送出し(S129)、S127で特殊コマンドが有ると判断されると、コマンド解析部32により特殊コマンドを解析し、特殊コマンドからキャッシュメモリ50から読み出した元のデータパターンにデータを戻して送出データを生成し(S128)、ホストコンピュータ1へデータを送出する(S129)。
【0048】
次に、キャッシュメモリ50からディスク装置4への書き戻し処理の動作は、キャッシュメモリ50からデータを読み出し(S130)、データパターン識別論理部30にて特定パターンの有無を識別する(S131)。
【0049】
そして、S131で特定パターンが無いと識別されると、コマンド/アドレス/書き戻しデータをディスクインタフェース部60に送出し(S134)、S131で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する(S132)。
【0050】
そして、S132で特殊コマンド化が必要ないと判断されると、コマンド/アドレス/書き戻しデータをディスクインタフェース部60に送出し(S134)、S132で特殊コマンド化が必要と判断されると、コマンド生成部31でデータを特殊コマンド化して(S133)、コマンド/アドレス/書き戻しデータ/特殊コマンドをディスクインタフェース部60に送出する(S134)。
【0051】
S133で全てのデータを特殊コマンド化できる場合、S134での書き戻しデータの送出を行う必要は無い。また、S133で一部のデータのみ特殊コマンド化した場合は、残りの書き戻しデータは送出する必要がある。
【0052】
特殊コマンド化することにより、ディスクインタフェース部60とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、書き戻し処理の性能を向上することとなる。ここまでがキャッシュメモリ部40内の処理である。
【0053】
続いて、ディスクインタフェース部60内の処理に移り、キャッシュメモリ部40から書き戻しデータがディスクインタフェース部60に到着すると(S135)、コマンド解析部32でコマンド/アドレスの解析を行う(S136)。
【0054】
そして、特殊コマンド有無を判断し(S137)、S137で特殊コマンドが無いと判断されると、ディスク装置4へデータを送出し(S139)、S137で特殊コマンドが有ると判断されると、コマンド解析部32により特殊コマンドを解析し、特殊コマンドからキャッシュメモリ50から読み出した元のデータパターンにデータを戻して送出データを生成し(S138)、ディスク装置4へデータを送出する(S139)。
【0055】
ここでは、特殊コマンドを判別して送出データを生成し、キャッシュメモリ50からの読み出しデータと同じデータパターンにした後、ディスク装置4にデータを送出しているが、特殊コマンドをそのままディスク装置4に送出することも可能である。
【0056】
また、ディスク装置4からのデータの読み出し時も同様に、ディスクインタフェース部60とキャッシュメモリ部40との間で特殊コマンドを用いたデータの送出が行われている。
【0057】
次に、この実施の形態におけるデータの特殊コマンド化について説明する。
【0058】
図5は実施の形態1における書き込みデータの一例を示す図、図6は実施の形態1におけるデータ処理のタイミングチャートを示す図であり、図6の処理Aは、本発明を用いない場合の処理であり、処理Bは本発明を使用した例であり、処理Cは本発明を使用した別の例を示している。
【0059】
また、図6は、図5に示したデータのキャッシュメモリ50への書き込み処理を行った場合のチャネルインタフェース部10とキャッシュメモリ部40に跨る相互結合網80の占有時間に着目したタイミングチャートを示しており、相互結合網80は、1クロック間で8バイトのデータ転送が可能なスペックとしている。
【0060】
図6において、タイミングチャート内のCは、コマンド/アドレス転送フェーズであり、Dはデータ転送フェーズを示し、Bはブランチフェーズで、処理Bおよび処理Cにて処理を分ける際に間にブランチフェーズを設けているが無くても構わない。また、図6の‘0’はALL‘0’のデータを送出しているデータフェーズである。
【0061】
ここでは、ホストコンピュータ1から4キロバイトの書き込み要求があった場合について考える。
【0062】
図5に示すように、ホストコンピュータ1からの書き込みデータのデータパターンは、512バイトの通常のデータと3328バイトのALL‘0’データと256バイトの通常データが連続した4キロバイトの書き込みデータとなっている。
【0063】
まず、図6の処理Aにおいては、コマンド/アドレスの処理を除いた書き込みデータ部の処理における相互結合網80の占有時間は、3328バイトのALL‘0’データを特別なデータとして扱っていないため、単純に4キロバイトのデータ転送を8バイト/クロックで送出するので、合計512クロック要している。
【0064】
また、図6の処理Bは、前半の512バイトは通常処理、3328バイトのALL‘0’データを1つの特殊コマンド(例えば、3328バイト‘0’ライトコマンド)とし、後半の256バイトを再び通常処理として扱っている。
【0065】
この処理では、前半の512バイトの処理に64クロック、3328バイトのALL‘0’データの処理を特殊コマンド化したことにより4クロック、後半の256バイトを32クロックの合計100クロックで処理している。
【0066】
また、図6の処理Cは前半の512バイトは通常処理、3328バイトのALL‘0’データを256バイトのALL‘0’データが13回連続していると扱い、13回の特殊コマンド(例えば、256バイト‘0’ライトコマンド)を送出し、後半の256バイトを再び通常処理として扱っている。
【0067】
この処理では、前半の512バイトの処理に64クロック、3328バイトのALL‘0’データの処理を13回の特殊コマンド化したことにより28クロック、後半の256バイトを32クロックの合計124クロックで処理している。
【0068】
図6に示すように、処理B、処理Cともに、処理Aに比べ大幅に相互結合網80の占有時間を短縮しており、また、キャッシュメモリ50への書き込み処理時間の短縮にもなっている。
【0069】
また、処理Cにより256バイト毎に区切った理由は、データパターンを判別する場合、データ長が短いほど判別にかかる時間は短く論理規模も少なくなるからであり、同様に、判別するデータパターンが少ないほど、判別にかかる時間は短く論理規模も少なくなる。また、特殊コマンド化するデータパターンが少ないほど、特殊コマンドの数が減り、対応する論理規模も少なくなるからである。
【0070】
したがって、図6の処理Cでは、処理Bに比べて処理クロックは多くなっているが、データの種類や処理内容によっては、全体的な処理時間を短縮することが可能となる。
【0071】
また、図6の処理Cでは256バイト毎に区切っているが、256バイトでなくても良く、データ長の選択としては、論理規模や、過去の履歴等でALL‘0’やALL‘1’となる可能性が多い長さや、性能のインパクト、キャッシュメモリのライン長、キャッシュメモリとの転送単位、ディスク装置との転送単位より最適なデータ長を選択する。
【0072】
また、データ長を任意に変更可能にすることやユーザに選択可能にすることも可能である。
【0073】
次に、この実施の形態でのデータパターン識別論理部30の詳細について説明する。
【0074】
図7は実施の形態1におけるデータパターン識別論理部の構成を示すブロック図であり、図6の処理Bと処理Cの処理を行うデータパターン識別論理部30の構成を示している。
【0075】
図7において、データパターン識別論理部30は、ALL‘0’データパターン識別論理部101およびALL‘1’データパターン識別論理部102を持ち、データ内のALL‘0’データパターンおよびデータ内のALL‘1’データパターンを識別している。
【0076】
そして、図6の処理Bの処理を行うデータパターン識別論理部30のALL‘0’データパターン識別論理部101内には、データ長識別論理部103を持ち、内部に8バイト‘0’判定論理部104、16バイト‘0’判定論理部105と8バイト単位に判定論理部を持ち、最大4キロバイト‘0’判定論理部106まで存在する。また、図6の処理Bの処理を行うデータパターン識別論理部30のALL‘1’データパターン識別論理部102内には、データ長識別論理部103を持ち、内部に8バイト‘1’判定論理部107、16バイト‘1’判定論理部108と8バイト単位に判定論理部を持ち、最大4キロバイト‘1’判定論理部109まで存在する。
【0077】
このように、図6の処理Bの処理を行うデータパターン識別論理部30では、8バイト単位に‘0’または‘1’の判定処理部を持ち、判定論理部は多いが、任意のデータ長に対応することが可能であり、性能面では有利となる。
【0078】
また、図6の処理Cの処理を行うデータパターン識別論理部30のALL‘0’データパターン識別論理部101内には、データ長識別論理部103を持ち、内部に256バイト‘0’判定論理部110を持っている。また、図6の処理Cの処理を行うデータパターン識別論理部30のALL‘1’データパターン識別論理部102内には、データ長識別論理部103を持ち、内部に256バイト‘1’判定論理部111を持っている。
【0079】
このように、図6の処理Cの処理を行うデータパターン識別論理部30では、256バイト単位の、‘0’または‘1’の判定処理部を持ち、処理Cは、処理Bに比べ、判定論理部が少なく論理規模を小さくできる。
【0080】
この実施の形態では、データパターン識別論理部30内の各判定処理部での判定結果に基づいて、チャネルインタフェース部10、キャッシュメモリ部40、ディスクインタフェース部60内のコマンド生成部31により、特殊コマンドが生成され、この特殊コマンドのみで、データパターン識別論理部30内の各判定処理部で判定された‘0’または‘1’のデータの処理ができるようになっている。
【0081】
また、この実施の形態では、特殊コマンドは、通常ディスクアレイ制御装置内の各部の動作を制御するコマンドと同様なものとしているので、圧縮されたデータを伸張するような回路やプログラムなどを使うことなく、特殊コマンドを通常のコマンド解析と同様の処理により、書き込みデータや送出データを生成することが可能となる。
【0082】
なお、この実施の形態では、各データに対して特定パターンを識別して特殊コマンド化する例で説明をしたが、コマンドやデータなどに、チェックコードが付加されていても、同様に処理する事が可能である。
【0083】
ここで、チェックコードの概要について説明する。
【0084】
RAIDシステムなどのディスクアレイ装置では、要求される信頼性にこたえるべく、システム内には、さまざまなチェックコードが設けられている。
【0085】
例えば、共有メモリ部20やキャッシュメモリ部40などのメモリ部については、2重化すると共に、ECCを付加することにより、1ビットエラーについては、ハードによる自動訂正を可能とし、2ビットエラー、1素子エラーについても検出可能としている。
【0086】
各リソースを結ぶ、例えば、相互結合網80などのパスについても、2重化すると共に、パリティを持っており、このパリティについても、同一クロックで送出されるデータに付加するパリティと次サイクル以降に送出するデータも含めたパリティを持っている。
【0087】
データ部に付加されるパリティは、RAIDシステムなどのディスクアレイ装置の入り口部分で付加し、メモリ/ディスク書込みまで同じパリティを持ち回りする。アドレス部/コマンド部にもパリティが付加されるが、これは、パスの前部にて付加される。
【0088】
この実施の形態では、このようなチェックコードが付加された状態であっても、チェックコードの付加状況に関わらず、特殊コマンド化による処理を行うことが可能である。
【0089】
(実施の形態2)
この実施の形態は、実施の形態1において、キャッシュメモリ部40の構成をキャッシュメモリ50のみの構成とし、キャッシュメモリ部40内において、特殊コマンドの処理を行わないようにしたものである。
【0090】
図8は本発明の実施の形態2におけるディスクアレイ制御装置の構成を示す構成図である。
【0091】
図において、キャッシュメモリ部40はキャッシュメモリ50のみから構成されており、実施の形態1におけるキャッシュメモリ部40の構成から、データパターン識別論理部30、コマンド生成部31、コマンド解析部32を除いた構成になっている。他の構成は実施の形態1と同様である。
【0092】
この実施の形態では、キャッシュメモリ部40内にデータパターン識別論理30、コマンド生成部31、コマンド解析部32を持たないことにより、相互結合網80の負荷軽減のために特定データパターンを特殊コマンド化した場合に、キャッシュメモリ部40内で、該特殊コマンドを元のデータパターンに戻した後、キャッシュメモリ50に書き込む処理が必要なくなり、特殊コマンドのまま、キャッシュメモリ50に書き込むことになる。
【0093】
そして、キャッシュメモリ50に格納されているデータを使用するホストコンピュータ1からの読み出しリクエストは、必ずチャネルインタフェース部10を経由するため、チャネルインタフェース部10内にデータパターン識別論理30、コマンド生成部31、コマンド解析部32があり、キャッシュメモリ部40から特殊コマンドを送られてきたとしても、元のデータパターンに戻すことが可能である。
【0094】
また、キャッシュメモリ部40からディスク装置4への書き戻しの際も、必ずディスクインタフェース部60を経由し、ディスクインタフェース部60内のデータパターン識別論理30、コマンド生成部31、コマンド解析部32にて特殊コマンドを元のデータパターンに変換可能であるため、キャッシュメモリ50に特殊コマンドを書き込む処理は、ディスクアレイ制御装置2内で閉じており、ホストコンピュータ1などの外部ネットワークにつながるリソースは、キャッシュメモリに特殊コマンドが書き込まれていることを意識する必要が無く、ディスクアレイ制御装置の外部リソースに影響を与えないで処理可能である。
【0095】
この実施の形態のメリットとしては、キャッシュメモリ部40のアクセス性能向上、キャッシュメモリ部40内の論理規模削減、処理簡単化、キャッシュメモリ50の使用容量削減等がある。
【0096】
次に、この実施の形態の動作について説明する。
【0097】
図9は実施の形態2によるホストコンピュータからのリクエストの処理の動作を示すフローチャート、図10は実施の形態2によるキャッシュメモリからの読み出し処理の動作を示すフローチャート、図11は実施の形態2によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【0098】
まず、ホストコンピュータ1からのリクエストの処理の動作は、ホストコンピュータ1からリクエストがチャネルインタフェース部10に到着すると(S140)、コマンド解析部32でコマンド/アドレスの解析を行う(S141)。
【0099】
そして、S141でのコマンド解析により書き込みリクエストか読み出しリクエストかを判断する(S142)。
【0100】
そして、S142で読み出しリクエストと判断されると、コマンド/アドレスをキャッシュメモリ部40に送出し(S146)、S142で書き込みリクエストと判断されると、データパターン識別論理部30にて特定パターンの有無を識別する(S143)。
【0101】
そして、S143で特定パターンが無いと識別されると、コマンド/アドレス/書き込みデータをキャッシュメモリ部40に送出し(S146)、S143で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する(S144)。
【0102】
そして、S144で特殊コマンド化が必要ないと判断されると、コマンド/アドレス/書き込みデータをキャッシュメモリ部40に送出し(S146)、S144で特殊コマンド化が必要と判断されると、コマンド生成部31でデータを特殊コマンド化して(S145)、コマンド/アドレス/書き込みデータ/特殊コマンドをキャッシュメモリ部40に送出する(S146)。
【0103】
S145で全てのデータを特殊コマンド化できる場合、S146での書き込みデータの送出を行う必要は無い。また、S145で一部のデータのみ特殊コマンド化した場合は、残りの書き込みデータは送出する必要がある。
【0104】
特殊コマンド化することにより、チャネルインタフェース部10とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、書き込み処理の性能を向上することとなる。ここまでがチャネルインタフェース部10内の処理である。
【0105】
続いてキャッシュメモリ部40内の処理に移り、チャネルインタフェース部10からリクエストがキャッシュメモリ部40に到着すると(S147)、コマンド解析部32でコマンド/アドレスの解析を行う(S148)。
【0106】
そして、S148でのコマンド解析により書き込みリクエストか読み出しリクエストを判断する(S149)。
【0107】
そして、S149で読み出しリクエストと判断されると、キャッシュメモリ50からデータ読み出しを行い(S151)、S149で書き込みリクエストと判断されると、特殊コマンド有無にかかわらずキャッシュメモリ50にデータおよび特殊コマンドを書き込む(S150)。
【0108】
次に、キャッシュメモリ50からの読み出し処理の動作は、キャッシュメモリ50からデータおよび特殊コマンドを読み出し(S160)、コマンド/アドレス/データ/特殊コマンドをチャネルインタフェース部10に送出する(S161)。
【0109】
キャッシュメモリ50に書き込まれた特殊コマンドを送出することにより、チャネルインタフェース部10とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、読み出し処理の性能を向上することとなる。ここまでがキャッシュメモリ部40内の処理である。
【0110】
続いて、チャネルインタフェース部10内の処理に移り、キャッシュメモリ部40から読み出しデータがチャネルインタフェース部10に到着すると(S162)、コマンド解析部32でコマンド/アドレスの解析を行う(S163)。
【0111】
そして、特殊コマンド有無を判断し(S164)、S164で特殊コマンドが無いと判断されると、ホストコンピュータ1へデータを送出し(S166)、S164で特殊コマンドが有ると判断されると、コマンド解析部32により特殊コマンドを解析し、特殊コマンドから元のデータパターンにデータを戻して送出データを生成し(S165)、ホストコンピュータ1へデータを送出する(S166)。
【0112】
次に、キャッシュメモリ50からディスク装置4への書き戻し処理の動作は、キャッシュメモリ50からデータおよび特殊コマンドを読み出し(S170)、コマンド/アドレス/書き戻しデータ/特殊コマンドをディスクインタフェース部60に送出する(S171)。
【0113】
キャッシュメモリ50に書き込まれた特殊コマンドを送出することにより、ディスクインタフェース部60とキャッシュメモリ部40に跨る相互結合網80を大容量のデータ転送により占有することなく、相互結合網80の負荷を軽減すると共に、書き戻し処理の性能を向上することとなる。ここまでがキャッシュメモリ部40内の処理である。
【0114】
続いて、ディスクインタフェース部60内の処理に移り、キャッシュメモリ部40から書き戻しデータがディスクインタフェース部60に到着すると(S172)、コマンド解析部32でコマンド/アドレスの解析を行う(S173)。
【0115】
そして、特殊コマンド有無を判断し(S174)、S174で特殊コマンドが無いと判断されると、ディスク装置4へデータを送出し(S176)、S174で特殊コマンドが有ると判断されると、コマンド解析部32により特殊コマンドを解析し、特殊コマンドから元のデータパターンにデータを戻して送出データを生成し(S175)、ディスク装置4へデータを送出する(S176)。
【0116】
この実施の形態では、特殊コマンドを判別して送出データを生成し、ディスク装置4にデータを送出しているが、特殊コマンドをそのままディスク装置4に送出することも可能である。
【0117】
また、ディスク装置4からのデータの読み出し時も同様に、ディスクインタフェース部60とキャッシュメモリ部40との間で特殊コマンドを用いたデータの送出が行われている。
【0118】
次に、この実施の形態でのキャッシュメモリ50の構成について説明する。
【0119】
図12は実施の形態2におけるキャッシュメモリ50の構成の一例を示す図、図13は実施の形態2におけるキャッシュメモリ50の構成の他の例を示す図である。この実施の形態では、キャッシュメモリ50のラインサイズを256バイトとしている。
【0120】
まず、図12に示す構成では、図5に示したデータパターンをキャッシュメモリ50に書き込む場合、まず、512バイトのデータがホストコンピュータ1から送られたデータパターンのまま書き込まれ、続いて3328バイトのALL‘0’データが、13個の256バイトのALL‘0’のデータと認識され、13個の特殊コマンドが書き込まれている。
【0121】
同様に後半の256バイトのデータがホストコンピュータ1から送られたデータパターンのまま書き込まれている。
【0122】
図12に示すように、キャッシュメモリ50のラインに対応して識別ビット51を持ち、このビットにより特殊コマンドが該ライン内に存在するか否かを識別可能となっている。
【0123】
例えば、識別ビットが‘1’であれば、該ライン内に特殊コマンドが存在していることを示し、識別ビットが‘0’であれば、該ライン内には特殊コマンドは存在していないことを示す。なお、識別ビット51は、キャッシュメモリ50内に存在する必要は無く、他の管理領域などに格納されていてもよい。
【0124】
また、特殊コマンドの情報として、パターン情報52をもち、ALL‘0’パターンかALL‘1’パターン化を識別可能としている。
【0125】
例えば、パターン情報52が‘00’であれば、ALL‘0’パターンを示し、パターン情報52が‘11’であれば、ALL‘1’パターンを示す。続いて順序情報53を持ち、該ラインが特殊コマンド化されたデータ長の何番目かを示している。続いてデータ長情報54が格納されている。これは、特殊コマンド化されたデータ長を示している。
【0126】
また、図13に示すように、3328バイトのALL‘0’データを一つの特殊コマンドで示すことにより、キャッシュメモリ50の使用容量削減、処理短縮を図るようにしてもよい。但し、この場合は、キャッシュメモリ50使用容量を削減するためには、キャッシュメモリ50の再アドレスづけの処理が必要となる。
【0127】
したがって、本実施の形態のディスクアレイ制御装置によれば、データを圧縮するのではなく、データを特殊コマンド化するので、データの全てを圧縮および伸張する回路やプログラムなどが必要なく、また、書き込みおよび読み出しのデータ量が大きい場合においても内部インタフェースの負担を軽減するとが可能である。
【0128】
【発明の効果】
以上のように、本発明によれば、データパターン識別論理手段により、ホストコンピュータからの書き込みデータのパターン、およびキャッシュメモリ部とディスク装置からの読み出しデータのパターンを識別し、コマンド生成手段により、データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化し、コマンド解析手段により、コマンドを解析し、元のデータパターンを生成するようにしたので、内部インタフェースの負荷を軽減すると共に、アクセス性能も向上することが可能である。また、キャッシュメモリ部に、コマンドを書き込むことにより更なる性能向上を図ることも可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるディスクアレイ制御装置の構成を示す構成図である。
【図2】本発明の実施の形態1によるホストコンピュータからのリクエストの処理の動作を示すフローチャートである。
【図3】本発明の実施の形態1によるキャッシュメモリからの読み出し処理の動作を示すフローチャートである。
【図4】本発明の実施の形態1によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【図5】本発明の実施の形態1における書き込みデータの一例を示す図である。
【図6】本発明の実施の形態1におけるデータ処理のタイミングチャートを示す図である。
【図7】本発明の実施の形態1におけるデータパターン識別論理部の構成を示すブロック図である。
【図8】本発明の実施の形態2におけるディスクアレイ制御装置の構成を示す構成図である。
【図9】本発明の実施の形態2によるホストコンピュータからのリクエストの処理の動作を示すフローチャートである。
【図10】本発明の実施の形態2によるキャッシュメモリからの読み出し処理の動作を示すフローチャートである。
【図11】本発明の実施の形態2によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【図12】本発明の実施の形態2におけるキャッシュメモリ50の構成の一例を示す図である。
【図13】本発明の実施の形態2におけるキャッシュメモリ50の構成の他の例を示す図である。
【符号の説明】
1…ホストコンピュータ、2…ディスクアレイ制御装置、3…外部ネットワーク、4…ディスク装置、10…チャネルインタフェース部、20…共有メモリ部、30…データパターン識別論理部(データパターン識別論理手段)、31…コマンド生成部(コマンド生成手段)、32…コマンド解析部(コマンド解析手段)、33…プロセッサ、34…ホストデータ送受信部、40…キャッシュメモリ部、50…キャッシュメモリ、60…ディスクインタフェース部、70…相互結合網(第1の相互結合網、第2の相互結合網)、80…相互結合網、51…識別ビット、52…パターン情報、53…順序情報、54…データ長情報、90…サービスプロセッサ接続網、100…サービスプロセッサ、101…ALL‘0’データパターン識別論理部、102…ALL‘1’データパターン識別論理部、103…データ長識別論理部、104…8バイト‘0’判定論理部、105…16バイト‘0’判定論理部、106…4キロバイト‘0’判定論理部、107…8バイト‘1’判定論理部、108…16バイト‘1’判定論理部、109…4キロバイト‘1’判定論理部、110…256バイト‘0’判定論理部、111…256バイト‘1’判定論理部。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a disk array control device, and more particularly to a technique that is effective when applied to increase the speed of an internal interface.
[0002]
[Prior art]
With the spread of networks such as the Internet and the increase in the amount of information handled by companies, the demand for storage has become increasingly diversified. The capacity of disk systems has also increased, and external networks connected to the disk systems also support high-speed, large-capacity data transfer.
[0003]
Although the data transfer through the high-speed interface is also supported inside the disk system, the latency is long because the line is thinner than the external network connected to the disk system due to the limitation of the number of pins of the package, the connector, and the LSI.
[0004]
Therefore, conventionally, as a technique for accelerating the internal interface in the disk array control device, when a plurality of commands from the host are commands requesting access to one continuous area, these commands are grouped into one. In some cases, processing as one command reduces the load on the internal interface and speeds up the processing (for example, see Patent Document 1). There is also a technique for providing a buffer in a data transfer path to take measures such as hiding an increase in latency.
[0005]
[Patent Document 1]
JP-A-5-289818
[0006]
[Problems to be solved by the invention]
As a processing of the disk array controller, in response to a write request from the host computer, the write data sent from the host computer is received by the channel interface unit, and the data is transmitted to the data via the internal interface in the disk array controller. Transfer and write to cache memory and disk device. At this time, if the amount of write data is large, the load on the internal interface increases, and the latency increases.
[0007]
In response to a read request from the host computer, the corresponding data is read from the cache memory and the disk device in the disk array controller based on the information sent from the host computer, and is read via the internal interface in the disk array controller. To transfer data and send read data to the host computer. At this time, when the read data amount is large, the load on the internal interface increases, and the latency increases.
[0008]
Also, if the performance of the external network connecting the host computer and the disk array controller is faster and larger than the internal interface, a large-capacity buffer must be provided in the disk array controller to prevent waiting for requests from the host computer. It has to be provided, which has been a problem in terms of cost and the like.
[0009]
In addition, as a method of suppressing the influence on other processes sharing the internal interface, a method of dividing data transfer has conventionally been used. This is a method in which, for example, when transferring 4 kilobytes of data, the data is divided into 256-byte units, and an internal interface is opened for data for other processing.
[0010]
However, in order to reduce the latency, it is necessary to increase the speed of the internal interface and increase the number of internal interfaces. However, it is difficult to increase the speed as compared with the external network, and the package and LSI connectors are increased by increasing the number of interfaces. In addition, there are restrictions on the number of pins and it is difficult to reduce the latency.
[0011]
Further, in the technique described in
[0012]
Therefore, an object of the present invention is to provide a disk array control device capable of reducing the load on an internal interface in the disk array control device and improving the performance of accessing a cache memory and a disk device from a host computer. is there.
[0013]
[Means for Solving the Problems]
A disk array control device according to the present invention includes a channel interface unit connected to a host computer, a disk interface unit connected to a disk device, and a cache memory for temporarily storing data read or written to the disk device. , A first interconnection network connecting the channel interface unit and the cache memory unit, and a second interconnection network connecting the disk interface unit and the cache memory unit. A data pattern identification logic for identifying a pattern of write data and a pattern of data read from the cache memory unit and the disk device; and a command for commanding based on the data pattern identified by the data pattern identification logic. And command generation means, analyzes the command, in which a command analysis unit for generating the original data pattern.
[0014]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all the drawings for describing the embodiments, the same members are denoted by the same reference numerals, and a repeated description thereof will be omitted.
[0015]
(Embodiment 1)
FIG. 1 is a configuration diagram showing a configuration of the disk array control device according to the first embodiment of the present invention.
[0016]
In FIG. 1, a disk array control device 2 is connected to a disk device 4 composed of a number of magnetic disk devices, and controls the disk device 4 according to an instruction from a
[0017]
The disk array control device 2 is connected to the
[0018]
The
[0019]
Further, the
[0020]
The presence / absence of data that can be converted into special commands in the write data to the
[0021]
The
[0022]
A channel interface associated with a write request from the
[0023]
The data pattern
[0024]
The
[0025]
The data pattern
[0026]
The
[0027]
Next, the operation of this embodiment will be described.
[0028]
FIG. 2 is a flowchart showing an operation of processing a request from a host computer according to the first embodiment, FIG. 3 is a flowchart showing an operation of reading from a cache memory according to the first embodiment, and FIG. 4 is a cache according to the first embodiment. 6 is a flowchart illustrating an operation of a write-back process from a memory to a disk device.
[0029]
First, in the operation of processing a request from the
[0030]
Then, it is determined whether the request is a write request or a read request by analyzing the command in S101 (S102).
[0031]
When it is determined in S102 that the request is a read request, the command / address is sent to the cache memory unit 40 (S106). When it is determined in S102 that the request is a write request, the data pattern
[0032]
If it is determined in S103 that there is no specific pattern, the command / address / write data is sent to the cache memory unit 40 (S106). It is determined whether special command conversion is necessary (S104).
[0033]
Then, if it is determined in S104 that special command conversion is not necessary, the command / address / write data is sent to the cache memory unit 40 (S106). At 31 the data is converted into a special command (S105), and the command / address / write data / special command is sent to the cache memory unit 40 (S106).
[0034]
If all data can be converted into special commands in S105, it is not necessary to send out write data in S106. If only a part of the data is converted into a special command in S105, the remaining write data needs to be transmitted.
[0035]
By using the special commands, the load on the interconnection network 80 can be reduced without occupying the interconnection network 80 spanning the
[0036]
Subsequently, the process proceeds to the processing in the
[0037]
Then, a write request or a read request is determined by the command analysis in S108 (S109).
[0038]
If it is determined in S109 that the request is a read request, data is read from the cache memory 50 (S113). If it is determined in S109 that the request is a write request, the presence or absence of a special command is determined (S110).
[0039]
If it is determined in S110 that there is no special command, data is written to the cache memory 50 (S112). If it is determined in S110 that there is a special command, the
[0040]
Here, the special command is determined, write data is generated, and the same data pattern as the data transmitted from the
[0041]
Next, in the operation of the reading process from the
[0042]
If it is determined in S121 that there is no specific pattern, the command / address / read data is sent to the channel interface unit 10 (S124). It is determined whether special command conversion is necessary (S122).
[0043]
If it is determined in S122 that the special command is not required, the command / address / read data is sent to the channel interface unit 10 (S124). If it is determined in S122 that the special command is required, the command generation unit is used. At 31 the data is converted into a special command (S123), and the command / address / read data / special command is sent to the channel interface unit 10 (S124).
[0044]
If all data can be converted into a special command in S123, there is no need to transmit read data in S124. If only a part of the data is converted into a special command in S123, the remaining read data needs to be transmitted.
[0045]
By converting the command into a special command, the load on the interconnection network 80 is reduced without occupying the interconnection network 80 spanning the
[0046]
Subsequently, the process proceeds to the processing in the
[0047]
Then, the presence or absence of a special command is determined (S127). If it is determined in S127 that there is no special command, data is sent to the host computer 1 (S129). If it is determined in S127 that there is a special command, command analysis is performed. The special command is analyzed by the
[0048]
Next, in the operation of the write-back processing from the
[0049]
If it is determined in S131 that there is no specific pattern, the command / address / write-back data is sent to the disk interface unit 60 (S134). It is determined whether special command conversion is necessary (S132).
[0050]
If it is determined in S132 that specialization is not necessary, command / address / write-back data is sent to the disk interface unit 60 (S134). If it is determined in S132 that specialization is necessary, command generation is performed. The
[0051]
If all data can be converted into special commands in S133, there is no need to send out write-back data in S134. If only a part of the data is converted into a special command in S133, the remaining write-back data needs to be transmitted.
[0052]
By using special commands, the load on the interconnection network 80 can be reduced without occupying the interconnection network 80 extending between the
[0053]
Subsequently, the process proceeds to the processing in the
[0054]
Then, it is determined whether or not there is a special command (S137). If it is determined in S137 that there is no special command, data is sent to the disk device 4 (S139). If it is determined in S137 that there is a special command, command analysis is performed. The special command is analyzed by the
[0055]
Here, the special command is determined, transmission data is generated, the data is sent to the disk device 4 after making the same data pattern as the data read from the
[0056]
Similarly, when data is read from the disk device 4, data is transmitted between the
[0057]
Next, the conversion of data into a special command in this embodiment will be described.
[0058]
FIG. 5 is a diagram illustrating an example of write data according to the first embodiment, FIG. 6 is a diagram illustrating a timing chart of data processing according to the first embodiment, and a process A in FIG. 6 is a process when the present invention is not used. The process B is an example using the present invention, and the process C is another example using the present invention.
[0059]
FIG. 6 is a timing chart focusing on the occupation time of the interconnection network 80 extending between the
[0060]
In FIG. 6, C in the timing chart is a command / address transfer phase, D indicates a data transfer phase, B is a branch phase, and when the processing is divided into the processing B and the processing C, the branch phase is set. It does not matter if it is provided. In addition, “0” in FIG. 6 is a data phase for transmitting the data of ALL “0”.
[0061]
Here, a case where a write request of 4 kilobytes is requested from the
[0062]
As shown in FIG. 5, the data pattern of the write data from the
[0063]
First, in the processing A of FIG. 6, the occupation time of the interconnection network 80 in the processing of the write data part excluding the processing of the command / address is because the ALL '0' data of 3328 bytes is not treated as special data. Since a 4-kilobyte data transfer is simply transmitted at 8 bytes / clock, a total of 512 clocks are required.
[0064]
In the process B of FIG. 6, the first 512 bytes are normal processing, the 3328 byte ALL '0' data is one special command (eg, 3328 byte '0' write command), and the second 256 bytes are normal again. Treated as processing.
[0065]
In this processing, the processing of 512 bytes of the first half is 64 clocks, the processing of ALL '0' data of 3328 bytes is converted into a special command, so that 4 clocks and the 256 bytes of the latter half are processed by 32 clocks with a total of 100 clocks. .
[0066]
In the process C of FIG. 6, the first 512 bytes of the normal process are processed, the 3328-byte ALL'0 'data is treated as if the 256-byte ALL'0' data is continuous 13 times, and 13 special commands (for example, , 256 byte '0' write command), and the latter 256 bytes are treated as normal processing again.
[0067]
In this processing, the processing of 512 bytes of the first half is 64 clocks, the processing of ALL '0' data of 3328 bytes is converted into 13 special commands, so that 28 clocks and the latter 256 bytes are processed with a total of 124 clocks of 32 clocks are doing.
[0068]
As shown in FIG. 6, the occupation time of the interconnection network 80 is significantly reduced in both the processing B and the processing C as compared with the processing A, and the processing time for writing to the
[0069]
The reason why the data pattern is divided into 256 bytes by the process C is that when the data pattern is determined, the shorter the data length, the shorter the time required for the determination and the smaller the logical scale. The shorter the time required for the determination, the smaller the logical scale. Also, the smaller the number of data patterns to be converted into special commands, the smaller the number of special commands and the corresponding logical scale.
[0070]
Therefore, in the process C of FIG. 6, the processing clock is larger than that in the process B, but the overall processing time can be reduced depending on the type of data and the processing content.
[0071]
In the process C of FIG. 6, the data is divided into 256 bytes. However, the data length does not have to be 256 bytes. The data length can be selected according to the logical scale, the past history, etc., such as ALL'0 'or ALL'1'. The most suitable data length is selected from the length, the impact on performance, the line length of the cache memory, the transfer unit with the cache memory, and the transfer unit with the disk device, which are likely to cause the following.
[0072]
It is also possible to make the data length arbitrarily changeable or selectable by the user.
[0073]
Next, details of the data pattern
[0074]
FIG. 7 is a block diagram illustrating a configuration of the data pattern identification logic unit according to the first embodiment, and illustrates a configuration of the data pattern
[0075]
In FIG. 7, the data pattern
[0076]
The data pattern
[0077]
As described above, the data pattern
[0078]
Further, the data pattern
[0079]
As described above, the data pattern
[0080]
In this embodiment, the
[0081]
Also, in this embodiment, the special command is the same as the command for controlling the operation of each unit in the normal disk array control device. Therefore, it is necessary to use a circuit or a program that expands the compressed data. Instead, it is possible to generate the write data and the transmission data by processing the special command in the same manner as the normal command analysis.
[0082]
In this embodiment, an example has been described in which a specific pattern is identified for each data and converted into a special command. However, even if a check code is added to a command or data, the same processing is performed. Is possible.
[0083]
Here, an outline of the check code will be described.
[0084]
In a disk array device such as a RAID system, various check codes are provided in the system in order to meet required reliability.
[0085]
For example, memory units such as the shared
[0086]
Paths connecting the resources, such as the interconnection network 80, are also duplicated and have parity, and this parity is also determined by the parity added to the data transmitted with the same clock and the next cycle and thereafter. It has parity including the data to be sent.
[0087]
Parity added to the data portion is added at the entrance of a disk array device such as a RAID system, and the same parity is rotated until writing to memory / disk. Parity is also added to the address part / command part, which is added at the front of the path.
[0088]
In this embodiment, even when such a check code is added, it is possible to perform processing using a special command regardless of the state of addition of the check code.
[0089]
(Embodiment 2)
This embodiment is different from the first embodiment in that the configuration of the
[0090]
FIG. 8 is a configuration diagram showing a configuration of the disk array control device according to the second embodiment of the present invention.
[0091]
In the figure, a
[0092]
In this embodiment, since the
[0093]
Since a read request from the
[0094]
Also, when writing back from the
[0095]
Advantages of this embodiment include an improvement in the access performance of the
[0096]
Next, the operation of this embodiment will be described.
[0097]
FIG. 9 is a flowchart showing the operation of processing a request from a host computer according to the second embodiment, FIG. 10 is a flowchart showing the operation of reading from a cache memory according to the second embodiment, and FIG. 11 is a cache according to the second embodiment. 6 is a flowchart illustrating an operation of a write-back process from a memory to a disk device.
[0098]
First, in the operation of processing a request from the
[0099]
Then, it is determined whether the request is a write request or a read request by analyzing the command in S141 (S142).
[0100]
If it is determined in S142 that the request is a read request, the command / address is sent to the cache memory unit 40 (S146). If it is determined in S142 that the request is a write request, the data pattern
[0101]
If it is determined in S143 that there is no specific pattern, the command / address / write data is sent to the cache memory unit 40 (S146). It is determined whether special command conversion is necessary (S144).
[0102]
If it is determined in S144 that special command conversion is not necessary, command / address / write data is sent to the cache memory unit 40 (S146). If it is determined in S144 that special command conversion is necessary, the command generation unit At 31 the data is converted into a special command (S145), and the command / address / write data / special command is sent to the cache memory unit 40 (S146).
[0103]
If all data can be converted into special commands in S145, it is not necessary to send out write data in S146. If only a part of the data is converted into a special command in S145, the remaining write data needs to be transmitted.
[0104]
By using the special commands, the load on the interconnection network 80 can be reduced without occupying the interconnection network 80 spanning the
[0105]
Subsequently, the process proceeds to the processing in the
[0106]
Then, a write request or a read request is determined by the command analysis in S148 (S149).
[0107]
If it is determined in S149 that the request is a read request, data is read from the cache memory 50 (S151). If it is determined in S149 that the request is a write request, data and special commands are written to the
[0108]
Next, in the operation of the reading process from the
[0109]
By transmitting the special command written in the
[0110]
Subsequently, the process proceeds to the processing in the
[0111]
Then, it is determined whether or not there is a special command (S164). If it is determined in S164 that there is no special command, data is sent to the host computer 1 (S166). If it is determined in S164 that there is a special command, command analysis is performed. The special command is analyzed by the
[0112]
Next, in the operation of the write-back process from the
[0113]
By transmitting the special command written in the
[0114]
Subsequently, the process proceeds to the processing in the
[0115]
Then, it is determined whether or not there is a special command (S174). If it is determined in S174 that there is no special command, data is sent to the disk device 4 (S176). If it is determined in S174 that there is a special command, command analysis is performed. The special command is analyzed by the
[0116]
In this embodiment, the special command is determined, the transmission data is generated, and the data is transmitted to the disk device 4. However, the special command can be transmitted to the disk device 4 as it is.
[0117]
Similarly, when data is read from the disk device 4, data is transmitted between the
[0118]
Next, the configuration of the
[0119]
FIG. 12 is a diagram illustrating an example of the configuration of the
[0120]
First, in the configuration shown in FIG. 12, when writing the data pattern shown in FIG. 5 to the
[0121]
Similarly, the latter 256 bytes of data are written with the data pattern sent from the
[0122]
As shown in FIG. 12, an identification bit 51 is provided corresponding to a line of the
[0123]
For example, if the identification bit is “1”, it indicates that a special command exists in the line. If the identification bit is “0”, there is no special command in the line. Is shown. The identification bit 51 does not need to exist in the
[0124]
In addition, it has
[0125]
For example, if the
[0126]
In addition, as shown in FIG. 13, the usage of the
[0127]
Therefore, according to the disk array control device of the present embodiment, since data is converted into a special command instead of compressing the data, there is no need for a circuit or a program for compressing and expanding all the data. Even when the read data amount is large, it is possible to reduce the load on the internal interface.
[0128]
【The invention's effect】
As described above, according to the present invention, the data pattern identification logic unit identifies the pattern of the write data from the host computer and the pattern of the read data from the cache memory unit and the disk device. A command is formed based on the data pattern identified by the pattern identification logic means, and the command analysis means analyzes the command to generate the original data pattern, thereby reducing the load on the internal interface and improving the access performance. It is possible to improve. Further, it is possible to further improve the performance by writing a command in the cache memory unit.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a configuration of a disk array control device according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing an operation of processing a request from a host computer according to the first embodiment of the present invention.
FIG. 3 is a flowchart illustrating an operation of a reading process from a cache memory according to the first embodiment of the present invention;
FIG. 4 is a flowchart showing an operation of a write-back process from the cache memory to the disk device according to the first embodiment of the present invention.
FIG. 5 is a diagram showing an example of write data according to the first embodiment of the present invention.
FIG. 6 is a diagram showing a timing chart of data processing according to the first embodiment of the present invention.
FIG. 7 is a block diagram illustrating a configuration of a data pattern identification logic unit according to the first embodiment of the present invention.
FIG. 8 is a configuration diagram showing a configuration of a disk array control device according to a second embodiment of the present invention.
FIG. 9 is a flowchart showing an operation of processing a request from a host computer according to the second embodiment of the present invention.
FIG. 10 is a flowchart showing an operation of a reading process from a cache memory according to the second embodiment of the present invention;
FIG. 11 is a flowchart showing an operation of a write-back process from the cache memory to the disk device according to the second embodiment of the present invention.
FIG. 12 is a diagram showing an example of a configuration of a
FIG. 13 is a diagram showing another example of the configuration of the
[Explanation of symbols]
DESCRIPTION OF
Claims (5)
前記ホストコンピュータからの書き込みデータのパターン、および前記キャッシュメモリ部と前記ディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理手段と、
前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化するコマンド生成手段と、
前記コマンドを解析し、元のデータパターンを生成するコマンド解析手段とを備えたことを特徴とするディスクアレイ制御装置。A channel interface unit connected to a host computer, a disk interface unit connected to a disk device, a cache memory unit for temporarily storing data read or written to the disk device, and the channel interface unit. A disk array control device comprising: a first interconnection network connecting the cache memory unit; and a second interconnection network connecting the disk interface unit and the cache memory unit.
Data pattern identification logic means for identifying a pattern of write data from the host computer, and a pattern of read data from the cache memory unit and the disk device;
Command generation means for commanding based on the data pattern identified by the data pattern identification logic means,
A disk array control device comprising: a command analysis unit configured to analyze the command and generate an original data pattern.
前記データパターン識別論理手段は、前記第1の相互結合網を使用する書き込みデータおよび読み出しデータのパターンを識別し、
前記コマンド生成手段は、前記第1の相互結合網を使用する書き込みデータおよび読み出しデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。The disk array control device according to claim 1,
Said data pattern identification logic means for identifying patterns of write data and read data using said first interconnection network;
The command generation means converts a part or all of write data and read data using the first interconnection network into a command based on a data pattern identified by the data pattern identification logic means. Disk array control device.
前記データパターン識別論理手段は、前記第2の相互結合網を使用する書き込みデータおよび読み出しデータのパターンを識別し、
前記コマンド生成手段は、前記第2の相互結合網を使用する書き込みデータおよび読み出しデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。The disk array control device according to claim 1,
Said data pattern identification logic means for identifying patterns of write data and read data using said second interconnection network;
The command generation means converts a part or all of write data and read data using the second interconnection network into a command based on a data pattern identified by the data pattern identification logic means. Disk array control device.
前記データパターン識別論理手段は、前記キャッシュメモリ部に対する書き込みデータのパターンを識別し、
前記コマンド生成手段は、前記キャッシュメモリ部に書き込まれるデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。The disk array control device according to claim 1,
The data pattern identification logic unit identifies a pattern of write data to the cache memory unit,
The disk array control device according to claim 1, wherein said command generation means converts a part or all of the data written in said cache memory unit into a command based on the data pattern identified by said data pattern identification logic means.
前記データパターン識別論理手段によるデータパターンの識別、前記コマンド生成手段によるコマンド化およびコマンド解析手段による前記コマンドの解析の使用有無を選択する手段を備えたことを特徴とするディスクアレイ制御装置。The disk array control device according to claim 1,
A disk array control device comprising means for selecting whether or not to use a data pattern by said data pattern identification logic means, to make a command by said command generation means, and to use said command analysis by a command analysis means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114613A JP2004318717A (en) | 2003-04-18 | 2003-04-18 | Disk array controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003114613A JP2004318717A (en) | 2003-04-18 | 2003-04-18 | Disk array controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004318717A true JP2004318717A (en) | 2004-11-11 |
Family
ID=33474141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003114613A Pending JP2004318717A (en) | 2003-04-18 | 2003-04-18 | Disk array controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004318717A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054056A (en) * | 2007-08-28 | 2009-03-12 | Hakko Denki Kk | Method for optimizing communication command, program, and programmable display unit |
-
2003
- 2003-04-18 JP JP2003114613A patent/JP2004318717A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054056A (en) * | 2007-08-28 | 2009-03-12 | Hakko Denki Kk | Method for optimizing communication command, program, and programmable display unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930676B (en) | Method, device, system and storage medium for communication among multiple processors | |
JP6126127B2 (en) | Method and system for routing in a state machine | |
CN107609644B (en) | Method and system for data analysis in a state machine | |
US10929154B2 (en) | Overflow detection and correction in state machine engines | |
EP2791862B1 (en) | Device for detection in a state machine | |
JP2015531936A (en) | Instruction insertion in state machine engines | |
US9015380B2 (en) | Exchanging message data in a distributed computer system | |
US6141743A (en) | Token-based storage for general purpose processing | |
JP2006512657A (en) | Memory controller and method of writing to memory | |
US7143206B2 (en) | Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor | |
US5829035A (en) | System and method for preventing stale data in multiple processor computer systems | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN111913668A (en) | Method for checking and correcting memory data accuracy under IP multiplexing | |
US7076636B1 (en) | Data storage system having an improved memory circuit board configured to run scripts | |
US8862785B2 (en) | System and method for redirecting input/output (I/O) sequences | |
JP2004318717A (en) | Disk array controller | |
US20060277326A1 (en) | Data transfer system and method | |
US20220156146A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
CN105354107A (en) | Data transmission method and system for NOR Flash | |
Kwon et al. | Gen‐Z memory pool system implementation and performance measurement | |
CN109445686B (en) | Storage disk and data access method | |
USRE38514E1 (en) | System for and method of efficiently controlling memory accesses in a multiprocessor computer system | |
US6401144B1 (en) | Method and apparatus for managing data transfers between peripheral devices by encoding a start code in a line of data to initiate the data transfers | |
TWI814655B (en) | Memory device, flash memory controller and control method thereof | |
US20080034380A1 (en) | Raid control method and core logic device having raid control function |