JP2004318717A - Disk array controller - Google Patents

Disk array controller Download PDF

Info

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
Application number
JP2003114613A
Other languages
Japanese (ja)
Inventor
Akira Yoshida
晃 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003114613A priority Critical patent/JP2004318717A/en
Publication of JP2004318717A publication Critical patent/JP2004318717A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a disk array controller which improves access performance, from a host computer to a cache memory and a disk unit, by relieving the load on an internal interface in the disk array controller. <P>SOLUTION: The disk array controller includes a data pattern identifying logic unit 30 for identifying a write data pattern from the host computer and read data patterns, from the cache memory and the disk unit, a command generator 31 for commanding, based on the data pattern identified by the data pattern identifying logic unit 30, and a command analyzer 32 for analyzing the command, to generate an original data pattern. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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 Patent Document 1, when a plurality of commands are commands that require access to one continuous area, the command amount is reduced by grouping and processing the plurality of commands. Therefore, it is impossible to reduce the amount of commands unless the access is to a continuous area, and the load on the internal interface increases when the amount of write and read data handled by the commands is large. there were.
[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 host computer 1 connected via an external network 2. The disk array control device 2 and the disk device 4 constitute a disk array device.
[0017]
The disk array control device 2 is connected to the host computer 1 via the external network 3 to perform data transfer, a channel interface unit 10 for performing data transfer, a disk interface unit 60 for performing data transfer with the disk device 4, and a disk device 4. A cache memory unit 40 having a cache memory 50 for temporarily storing data to be read / written from / to the disk unit 4, control of data transfer between the channel interface unit 10 and the disk interface unit 60 and the cache memory unit 40, and It comprises a shared memory unit 20 for storing management information.
[0018]
The channel interface unit 10, the disk interface unit 60, and the shared memory unit 20 are connected by an interconnection network 70, which is a first interconnection network and a second interconnection network, respectively. The cache memory unit 60 and the cache memory unit 40 are connected by an interconnection network 80.
[0019]
Further, the channel interface unit 10 includes a host data transmitting / receiving unit 34 for performing data transfer with the host computer 1, a data pattern identification logic unit 30 as data pattern identification logic unit, a command generation unit 31 as command generation unit, It is composed of a command analysis unit 32 as analysis means and a processor 33 for controlling the channel interface unit 10.
[0020]
The presence / absence of data that can be converted into special commands in the write data to the cache memory unit 40 in response to a write request from the host computer 1 by the data pattern identification logic unit 30, command generation unit 31, and command analysis unit 32 of the channel interface unit 10. And the generation of transmission data to the host computer 1 when the read data from the cache memory unit 40 in the read request processing from the host computer 1 is converted into a special command.
[0021]
The cache memory unit 40 includes a data pattern identification logic unit 30, a command generation unit 31, a command analysis unit 32, and a disk interface unit 60 provided between the cache memory 50, the channel interface unit 10, and the cache memory 50. It comprises a data pattern identification logic unit 30, a command generation unit 31, and a command analysis unit 32 provided between the cache memory 50 and the cache memory 50.
[0022]
A channel interface associated with a write request from the host computer 1 is provided by a data pattern identification logic unit 30, a command generation unit 31, and a command analysis unit 32 provided between the channel interface unit 10 and the cache memory 50 of the cache memory unit 40. When the write data from the unit 10 has been converted into a special command, generation of write data to the cache memory 50, identification of presence / absence of data that can be converted into a special command in data read from the cache memory 50, and conversion to a special command are performed. ing.
[0023]
The data pattern identification logic unit 30, command generation unit 31, and command analysis unit 32 provided between the disk interface unit 60 and the cache memory 50 of the cache memory unit 40 make special commands in the data read from the cache memory 50. The identification of the presence / absence of possible data and the conversion into a special command are performed, and the data generation when the data transmitted from the disk interface unit 60 to the cache memory unit 40 is converted into a special command is performed.
[0024]
The disk interface unit 60 controls the disk data transmission / reception unit 35 that performs data transfer with the disk device 4, the data pattern identification logic unit 30, the command generation unit 31, the command analysis unit 32, and the disk interface unit 60. Processor 33.
[0025]
The data pattern identification logic unit 30, the command generation unit 31, and the command analysis unit 32 of the disk interface unit 60 identify the presence / absence of data that can be converted into special commands in the data transmitted to the cache memory unit 40, and convert the data into special commands. The transmission data to the disk device 4 is generated when the transmission data from the cache memory unit 40 is converted into a special command.
[0026]
The processor 33 of the channel interface unit 10 and the processor 33 of the disk interface unit 60 are connected to the service processor 100 via a service processor connection network 90.
[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 host computer 1, when a request from the host computer 1 arrives at the channel interface unit 10 (S100), the command analysis unit 32 analyzes the command / address (S101).
[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 identification logic unit 30 determines whether a specific pattern exists. It is identified (S103).
[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 channel interface unit 10 and the cache memory unit 40 with a large amount of data transfer, and the performance of the write processing can be reduced. Will be improved. The processing up to this point is the processing in the channel interface unit 10.
[0036]
Subsequently, the process proceeds to the processing in the cache memory unit 40. When the request arrives at the cache memory unit 40 from the channel interface unit 10 (S107), the command analysis unit 32 analyzes the command / address (S108).
[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 command analyzing unit 32 analyzes the special command, and Returns the data to the original data pattern sent from the host computer 1 to generate write data (S111), and writes the data to the cache memory 50 (S112).
[0040]
Here, the special command is determined, write data is generated, and the same data pattern as the data transmitted from the host computer 1 is written to the cache memory 50, and then the special command is written to the cache memory 50 as it is. It is also possible to reduce the cache memory usage capacity.
[0041]
Next, in the operation of the reading process from the cache memory 50, data is read from the cache memory 50 (S120), and the presence / absence of a specific pattern is identified by the data pattern identification logic unit 30 (S121).
[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 channel interface unit 10 and the cache memory unit 40 by a large-capacity data transfer, and the performance of the read processing is improved. Will be improved. The processing up to here has been the processing in the cache memory unit 40.
[0046]
Subsequently, the process proceeds to the processing in the channel interface unit 10. When the read data from the cache memory unit 40 reaches the channel interface unit 10 (S125), the command analysis unit 32 analyzes the command / address (S126).
[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 unit 32, the data is returned to the original data pattern read from the cache memory 50 from the special command to generate transmission data (S128), and the data is transmitted to the host computer 1 (S129).
[0048]
Next, in the operation of the write-back processing from the cache memory 50 to the disk device 4, data is read from the cache memory 50 (S130), and the presence / absence of a specific pattern is identified by the data pattern identification logic unit 30 (S131).
[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 unit 31 converts the data into a special command (S133), and sends the command / address / write-back data / special command to the disk interface unit 60 (S134).
[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 disk interface unit 60 and the cache memory unit 40 by large-capacity data transfer, and the performance of the write-back processing can be reduced. Will be improved. The processing up to here has been the processing in the cache memory unit 40.
[0053]
Subsequently, the process proceeds to the processing in the disk interface unit 60, and when the write-back data arrives from the cache memory unit 40 to the disk interface unit 60 (S135), the command analysis unit 32 analyzes the command / address (S136).
[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 unit 32, the data is returned to the original data pattern read from the cache memory 50 from the special command, transmission data is generated (S138), and the data is transmitted to the disk device 4 (S139).
[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 cache memory 50, but the special command is transmitted to the disk device 4 as it is. It is also possible to send.
[0056]
Similarly, when data is read from the disk device 4, data is transmitted between the disk interface unit 60 and the cache memory unit 40 using a special command.
[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 channel interface unit 10 and the cache memory unit 40 when the data shown in FIG. 5 is written into the cache memory 50. The interconnection network 80 is designed to be capable of transferring data of 8 bytes in one clock.
[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 host computer 1 is considered.
[0062]
As shown in FIG. 5, the data pattern of the write data from the host computer 1 is 4 kilobytes of write data in which 512 bytes of normal data, 3328 bytes of ALL'0 'data, and 256 bytes of normal data are continuous. ing.
[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 cache memory 50 is also reduced. .
[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 identification logic unit 30 in this embodiment will be described.
[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 identification logic unit 30 that performs the processes B and C of FIG.
[0075]
In FIG. 7, the data pattern identification logic unit 30 has an ALL'0 'data pattern identification logic unit 101 and an ALL'1' data pattern identification logic unit 102, and has an ALL'0 'data pattern in data and an ALL in data. '1' data pattern is identified.
[0076]
The data pattern identification logic unit 101 of the data pattern identification logic unit 30 that performs the process B of FIG. 6 includes a data length identification logic unit 103, and has an 8-byte "0" determination logic inside. The unit 104 has a 16-byte '0' decision logic unit 105 and a decision logic unit in units of 8 bytes, and up to a 4-kilobyte '0' decision logic unit 106. Further, the data pattern identification logic unit 102 of the data pattern identification logic unit 30 that performs the process B of FIG. 6 has a data length identification logic unit 103, and has an 8-byte "1" determination logic inside. The unit 107 has a 16-byte '1' decision logic unit 108 and a decision logic unit in units of 8 bytes, and up to a 4-kilobyte '1' decision logic unit 109.
[0077]
As described above, the data pattern identification logic unit 30 that performs the processing of the processing B in FIG. 6 has a determination processing unit of “0” or “1” in units of 8 bytes, and has many determination logic units. , Which is advantageous in terms of performance.
[0078]
Further, the data pattern identification logic section 101 of the data pattern identification logic section 30 that performs the processing of the processing C in FIG. 6 has a data length identification logic section 103 in the data pattern identification logic section 101, and has 256 bytes of “0” determination logic therein. It has a unit 110. Further, the data pattern identification logic unit 102 of the data pattern identification logic unit 30 that performs the process C of FIG. 6 has a data length identification logic unit 103 in the data pattern identification logic unit 102, and has a 256 byte “1” determination logic inside. It has a part 111.
[0079]
As described above, the data pattern identification logic unit 30 that performs the processing of the processing C of FIG. 6 has a determination processing unit of “0” or “1” in units of 256 bytes. The number of logic units is small and the logic scale can be reduced.
[0080]
In this embodiment, the command generation unit 31 in the channel interface unit 10, the cache memory unit 40, and the disk interface unit 60 uses the special command based on the determination result in each determination processing unit in the data pattern identification logic unit 30. Is generated, and data of '0' or '1' determined by each determination processing unit in the data pattern identification logic unit 30 can be processed only by this special command.
[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 memory unit 20 and the cache memory unit 40 are duplicated and ECC is added, so that a 1-bit error can be automatically corrected by hardware, and a 2-bit error Element errors can also be detected.
[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 cache memory unit 40 is configured only by the cache memory 50, and the processing of the special command is not performed in the cache memory unit 40.
[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 cache memory unit 40 is constituted only by a cache memory 50, and a data pattern identification logic unit 30, a command generation unit 31, and a command analysis unit 32 are removed from the configuration of the cache memory unit 40 in the first embodiment. It has a configuration. Other configurations are the same as in the first embodiment.
[0092]
In this embodiment, since the cache memory unit 40 does not have the data pattern identification logic 30, the command generation unit 31, and the command analysis unit 32, the specific data pattern is converted into a special command to reduce the load on the interconnection network 80. In this case, after returning the special command to the original data pattern in the cache memory unit 40, the process of writing to the cache memory 50 becomes unnecessary, and the special command is written to the cache memory 50 as it is.
[0093]
Since a read request from the host computer 1 that uses data stored in the cache memory 50 always passes through the channel interface unit 10, the data pattern identification logic 30, the command generation unit 31, Even if a special command is sent from the cache memory unit 40, the command analysis unit 32 can restore the original data pattern.
[0094]
Also, when writing back from the cache memory unit 40 to the disk device 4, the data pattern identification logic 30, the command generation unit 31, and the command analysis unit 32 in the disk interface unit 60 always pass through the disk interface unit 60. Since the special command can be converted into the original data pattern, the process of writing the special command in the cache memory 50 is closed in the disk array controller 2 and the resources connected to the external network such as the host computer 1 are stored in the cache memory. It is not necessary to be aware that a special command is written in the disk array controller, and processing can be performed without affecting external resources of the disk array controller.
[0095]
Advantages of this embodiment include an improvement in the access performance of the cache memory unit 40, a reduction in the logical scale in the cache memory unit 40, simplification of the processing, a reduction in the used capacity of the cache memory 50, and the like.
[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 host computer 1, when a request from the host computer 1 arrives at the channel interface unit 10 (S140), the command analysis unit 32 analyzes the command / address (S141).
[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 identification logic unit 30 determines whether a specific pattern exists. It is identified (S143).
[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 channel interface unit 10 and the cache memory unit 40 with a large amount of data transfer, and the performance of the write processing can be reduced. Will be improved. The processing up to this point is the processing in the channel interface unit 10.
[0105]
Subsequently, the process proceeds to the processing in the cache memory unit 40. When the request arrives at the cache memory unit 40 from the channel interface unit 10 (S147), the command analysis unit 32 analyzes the command / address (S148).
[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 cache memory 50 regardless of the presence or absence of the special command. (S150).
[0108]
Next, in the operation of the reading process from the cache memory 50, data and a special command are read from the cache memory 50 (S160), and a command / address / data / special command is transmitted to the channel interface unit 10 (S161).
[0109]
By transmitting the special command written in the cache memory 50, the load on the interconnection network 80 can be reduced without occupying the interconnection network 80 extending between the channel interface unit 10 and the cache memory unit 40 by large-capacity data transfer. At the same time, the performance of the reading process is improved. The processing up to here has been the processing in the cache memory unit 40.
[0110]
Subsequently, the process proceeds to the processing in the channel interface unit 10. When the read data from the cache memory unit 40 arrives at the channel interface unit 10 (S162), the command analysis unit 32 analyzes the command / address (S163).
[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 unit 32, the data is returned to the original data pattern from the special command to generate transmission data (S165), and the data is transmitted to the host computer 1 (S166).
[0112]
Next, in the operation of the write-back process from the cache memory 50 to the disk device 4, the data and the special command are read from the cache memory 50 (S170), and the command / address / write-back data / special command is sent to the disk interface unit 60. (S171).
[0113]
By transmitting the special command written in the cache memory 50, the load on the interconnection network 80 can be reduced without occupying the interconnection network 80 extending between the disk interface unit 60 and the cache memory unit 40 by large-capacity data transfer. At the same time, the performance of the write-back process is improved. The processing up to here has been the processing in the cache memory unit 40.
[0114]
Subsequently, the process proceeds to the processing in the disk interface unit 60. When the write-back data arrives from the cache memory unit 40 to the disk interface unit 60 (S172), the command analysis unit 32 analyzes the command / address (S173).
[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 unit 32, the data is returned to the original data pattern from the special command to generate transmission data (S175), and the data is transmitted to the disk device 4 (S176).
[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 disk interface unit 60 and the cache memory unit 40 using a special command.
[0118]
Next, the configuration of the cache memory 50 in this embodiment will be described.
[0119]
FIG. 12 is a diagram illustrating an example of the configuration of the cache memory 50 according to the second embodiment, and FIG. 13 is a diagram illustrating another example of the configuration of the cache memory 50 according to the second embodiment. In this embodiment, the line size of the cache memory 50 is 256 bytes.
[0120]
First, in the configuration shown in FIG. 12, when writing the data pattern shown in FIG. 5 to the cache memory 50, first, 512-byte data is written in the data pattern sent from the host computer 1, followed by 3328-byte data ALL'0 'data is recognized as 13 256-byte ALL'0' data, and 13 special commands are written.
[0121]
Similarly, the latter 256 bytes of data are written with the data pattern sent from the host computer 1 as it is.
[0122]
As shown in FIG. 12, an identification bit 51 is provided corresponding to a line of the cache memory 50, and it is possible to identify whether or not a special command exists in the line by this bit.
[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 cache memory 50, and may be stored in another management area or the like.
[0124]
In addition, it has pattern information 52 as information of the special command, and can identify ALL'0 'pattern or ALL'1' patterning.
[0125]
For example, if the pattern information 52 is '00', it indicates an ALL'0 'pattern, and if the pattern information 52 is' 11 ', it indicates an ALL'1' pattern. Subsequently, it has order information 53, and indicates the order of the data length of the line as a special command. Subsequently, data length information 54 is stored. This indicates the data length of the special command.
[0126]
In addition, as shown in FIG. 13, the usage of the cache memory 50 and the processing may be reduced by indicating ALL “0” data of 3328 bytes by one special command. However, in this case, in order to reduce the used capacity of the cache memory 50, a process of re-addressing the cache memory 50 is required.
[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 cache memory 50 according to a second embodiment of the present invention.
FIG. 13 is a diagram showing another example of the configuration of the cache memory 50 according to the second embodiment of the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Host computer, 2 ... Disk array control device, 3 ... External network, 4 ... Disk device, 10 ... Channel interface part, 20 ... Shared memory part, 30 ... Data pattern identification logic part (data pattern identification logic means), 31 .. Command generating unit (command generating unit), 32 command analyzing unit (command analyzing unit), 33 processor, 34 host data transmitting / receiving unit, 40 cache memory unit, 50 cache memory, 60 disk interface unit, 70 .. Interconnection network (first interconnection network, second interconnection network), 80 interconnection network, 51 identification bit, 52 pattern information, 53 sequence information, 54 data length information, 90 service Processor connection network, 100: service processor, 101: ALL'0 'data pattern identification logic , 102... ALL '1' data pattern identification logic section, 103... Data length identification logic section, 104... 8 bytes '0' determination logic section, 105... 16 bytes '0' determination logic section, 106... Decision logic, 107 ... 8 bytes "1" decision logic, 108 ... 16 bytes "1" decision logic, 109 ... 4 kilobytes "1" decision logic, 110 ... 256 bytes "0" decision logic, 111 ... 256 byte '1' decision logic.

Claims (5)

ホストコンピュータに接続されるチャネルインタフェース部と、ディスク装置に接続されるディスクインタフェース部と、前記ディスク装置に対して読み出し又は書き込みされるデータを一時的に格納するキャッシュメモリ部と、前記チャネルインタフェース部と前記キャッシュメモリ部を接続する第1の相互結合網と、前記ディスクインタフェース部と前記キャッシュメモリ部を接続する第2の相互結合網とを有するディスクアレイ制御装置において、
前記ホストコンピュータからの書き込みデータのパターン、および前記キャッシュメモリ部と前記ディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理手段と、
前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化するコマンド生成手段と、
前記コマンドを解析し、元のデータパターンを生成するコマンド解析手段とを備えたことを特徴とするディスクアレイ制御装置。
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の相互結合網を使用する書き込みデータおよび読み出しデータのパターンを識別し、
前記コマンド生成手段は、前記第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.
請求項1記載のディスクアレイ制御装置において、
前記データパターン識別論理手段は、前記第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.
請求項1記載のディスクアレイ制御装置において、
前記データパターン識別論理手段は、前記キャッシュメモリ部に対する書き込みデータのパターンを識別し、
前記コマンド生成手段は、前記キャッシュメモリ部に書き込まれるデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。
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.
請求項1記載のディスクアレイ制御装置において、
前記データパターン識別論理手段によるデータパターンの識別、前記コマンド生成手段によるコマンド化およびコマンド解析手段による前記コマンドの解析の使用有無を選択する手段を備えたことを特徴とするディスクアレイ制御装置。
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.
JP2003114613A 2003-04-18 2003-04-18 Disk array controller Pending JP2004318717A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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