+

JP2010033125A - ストレージ装置及びデータ転送方法 - Google Patents

ストレージ装置及びデータ転送方法 Download PDF

Info

Publication number
JP2010033125A
JP2010033125A JP2008191623A JP2008191623A JP2010033125A JP 2010033125 A JP2010033125 A JP 2010033125A JP 2008191623 A JP2008191623 A JP 2008191623A JP 2008191623 A JP2008191623 A JP 2008191623A JP 2010033125 A JP2010033125 A JP 2010033125A
Authority
JP
Japan
Prior art keywords
data
transfer
buffer
combined
data transfer
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
JP2008191623A
Other languages
English (en)
Inventor
Hiroshi Hirayama
洋志 平山
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 JP2008191623A priority Critical patent/JP2010033125A/ja
Priority to US12/206,908 priority patent/US8352663B2/en
Publication of JP2010033125A publication Critical patent/JP2010033125A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】
本発明はデータ転送性能を向上させるストレージ装置である。
【解決手段】
本発明は、第1のデータ転送経路により互いに接続する複数のコントローラと、コントローラを制御する複数のプロセッサと、コントローラが各機器との間でデータ転送をする第2のデータ転送経路と、を備え、該コントローラは、第1のデータ転送経路と第2のデータ転送経路へデータ転送を行うデータ処理部を備え、該データ処理部は、データを構成する第1のヘッダ情報を検出するヘッダ検出部と、複数のデータから結合データを生成するデータとして前記複数のデータの転送先アドレスが連続し、データ転送経路が同一のデータを選択する選択部と、結合データの第2のヘッダ情報を生成するヘッダ生成部と、選択されたデータと第2のヘッダ情報により結合データを生成する結合データ生成手段とを備えるストレージ装置。
【選択図】図7

Description

本発明は、ストレージ装置及びデータ転送方法に関し、特に、キャッシュメモリやホスト、ハードディスクドライブ(以下、HDD)等との間に各データ転送経路を備えるコントローラにより構成されるストレージ装置及びデータ転送方法に関する。
従来、ストレージ装置は、例えば、ホストインターフェイス、キャッシュメモリ、HDD等が接続されるドライブインターフェイスと、データ転送を制御するコントローラと、これらを接続するデータ転送経路と、システム全体の制御を行うマイクロプロセッサとを一つの単位(モジュール)とし、専用データ転送経路で接続された複数のモジュールにより構成される。各モジュールは、電源部から独立して電力を供給される。また、各モジュールは、あるホストからの転送データを各モジュールに備えるキャッシュメモリへそれぞれ書き込む。これらの対策により、転送データ消失を回避し、システムの信頼性向上を図っている(特許文献1)。
モジュール間を接続する専用データ転送経路のデータ転送は、別モジュールのキャッシュメモリへの転送データや、ホストインターフェイス、ドライブインターフェイス、キャッシュメモリの間の転送データや、プロセッサ間で共有する制御データなどが、時分割に多重されて転送される。転送データは、転送元や転送先によって、転送長が大きく異なる場合がある。例えば、マイクロプロセッサがホストインターフェイス、ドライブインターフェイスへ制御データを転送する際には、他のデータに比べ転送長の短い制御データを頻繁に転送する。そして、転送長の短い制御データと、転送長の長いデータが、専用データ転送経路上で時分割に多重される。データ多重化の際に発生するオーバーヘッドにより、送信側と受信側間でデータ転送が遅延し、転送時間が増加傾向にある。さらに、同様の理由により、データ転送時間のばらつきが大きくなる傾向にある。
転送時間及び転送時間のばらつきを抑制する方法の一例として、各転送チャンネルにおけるデータ転送を共通形式のセル(パケット)に変換して、転送先が同一のセルを時分割で多重する方法が開示されている(特許文献2)。該方法により、各転送チャンネル間のデータ転送に対する、遅延時間のばらつきを抑制することができる。
特開2005−44010号公報 特開2001−119412号公報
ストレージ装置は、ホストインターフェイス、キャッシュメモリ、HDDが接続されるドライブインターフェイスと、データ転送を制御するコントローラと、これらを接続するデータ転送経路と、システム全体の制御を行うマイクロプロセッサと、により一つの単位(モジュール)を構成し、専用データ転送経路を介して接続された、複数の該モジュールにより構成される。該ストレージ装置において、各モジュール間で専用データ転送経路を用いてデータ転送の際に、通常のデータだけでなく、マイクロプロセッサ等による制御データが転送される。したがって、転送データの多重度が増加する傾向にある。
多重度の増加に伴い、単位時間あたりで、ある転送データに続く別の転送データとの間に発生するオーバーヘッド時間が増加する。そして、専用データ転送経路が備える転送帯域を十分に利用できず、専用データ転送経路における転送レートが低下する可能性がある。その結果、ストレージ装置全体の性能が低下するという課題がある。
また、マイクロプロセッサの制御データは、コントローラやホストインターフェイス、ドライブインターフェイスが備える制御レジスタへの設定値である。したがって、制御データは、通常のデータに比べ転送長が短い。一方、制御データを転送するコントローラは、コントローラ内に備えられたバッファ容量を超えるまで、データを転送しない。従って、制御データに対する転送時間のばらつきが大きくなり、マイクロプロセッサの制御命令によって制御されるコントローラ、ホストインターフェイス、ドライブインターフェイスに対する制御レスポンスの転送性能が低下するという課題がある。
バッファ容量を超えない場合にも、一定時間経過後に、受信バッファ内に蓄積されたデータを強制的に読み出し、転送することもある。この処理をタイムアウト処理という。受信バッファ内に蓄積されたデータがバッファ容量を満たさずに転送される場合でも、転送データはバッファ容量単位で転送される。そのため、例えば、転送データは、受信バッファに格納されているデータと、その各格納データ量とバッファ容量の差分量に当たる、ダミーデータ(無効データ)を伴い、転送される。さらに、ダミーデータを伴う制御データを専用データ転送経路上で転送すると、単位時間当たりのデータ転送量に対する有効データ量の割合が減少し、実効転送レートは著しく低下する。つまり、専用データ転送経路が備える転送帯域がダミーデータの転送によって無駄に使用され、マイクロプロセッサの制御データにより制御されるホストインターフェイス、ドライブインターフェイスに対する制御レスポンスが著しく低下するという課題がある。
さらに、以上説明したダミーデータを伴う転送データと、ホスト、ドライブインターフェイス、キャッシュ間の転送データが専用データ転送経路上で多重される。従って、多重される転送データに必要な合計転送レートが専用データ転送経路に備える最大転送レートを超えた場合には、各転送データの転送レートが低下し、ストレージ装置のデータ処理能力が著しく低下するという課題がある。
一方、ストレージ装置全体の性能を拡張する際、モジュール構成を増やし、ホストインターフェイス、ドライブインターフェイス数を増やすことでマルチコントローラ構成とする。該構成においても、モジュール間を接続する専用データ転送経路を用いたデータ送信は、上記同様の課題がある。
また、特許文献2に開示されている方法を、前記モジュール構成のストレージ装置に適用する場合には、以下の課題がある。
特許文献2に開示されている方法では、モジュール間の専用データ転送経路を用いてデータ転送を行う際に、転送チャンネル毎に共通形式のセル(パケット)にまとめて転送する。しかし、共通形式のセルにまとめる際には、転送されるデータの転送長を考慮しない。従って、共通セルを生成するために必要なデータ量を蓄積する必要があり、転送長の短いデータの転送遅延が著しく発生する。
さらに、特許文献2では、高速スイッチの転送データ多重度向上を目的としており、各共通セルを前段で多重し、他の多重データと後段で多重する。後段の多重度向上により、多重化する際に発生するオーバーヘッドの抑制はできない。
ストレージ装置内でデータを転送する際、転送されるデータの転送長は可変長であり、データ転送経路毎に転送発生の頻度が異なる。そして、転送されるデータの転送長や転送頻度を考慮し、専用データ転送経路上の多重度を抑制し(オーバーヘッドを抑制し)、効率のよいデータ転送を行うことが望ましい。更に転送データの転送時間ばらつきや遅延を抑制し、ストレージ装置のレスポンスを向上させることが望ましい。
ストレージ装置全体の規模を拡張するために、モジュール数を増す場合にも、同様にモジュール間の専用I/Oの転送を効率よく行い、ストレージ装置のレスポンス向上を図ることが望ましい。
かかる課題を解決するために本発明のストレージ装置は、インターフェースを介して上位装置及び、記憶デバイスと接続し、第1のデータ転送経路により互いに接続する複数のコントローラと、前記複数のコントローラをそれぞれ制御する複数のプロセッサと、前記コントローラが、前記上位装置、前記記憶デバイス、前記複数のプロセッサとの間でデータ転送を行うための第2のデータ転送経路と、を備え、前記コントローラは、第1のデータ転送経路と第2のデータ転送経路へデータ転送を行うデータ処理部、を備え、前記データ処理部は、データを構成する第1のヘッダ情報を検出するヘッダ検出部と、複数のデータから結合データを生成するデータを選択する選択部と、前記結合データの第2のヘッダ情報を生成するヘッダ生成部と、前記選択されたデータと前記第2のヘッダ情報により結合データを生成する結合データ生成手段とを備え、前記選択部は、前記複数のデータの転送先アドレスが連続し、データ転送経路が同一のデータを選択する、ストレージ装置である。
本発明のストレージ装置を用いると、データ転送性能を向上させることができる。
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素およびその組合せの全てが発明の解決手段に必須であるとは限らない。
(1)実施例1
図1は、本発明のストレージ装置100について、実施例1を示す装置ブロック図である。以下、ストレージ装置100は以下に説明する各部位により構成される。
コントローラ1a、1b(CTL0、CTL1)は、ホストインターフェイス2a、2b(Host I/F0、Host I/F1)、ドライブインターフェイス3a、3b(Drv I/F0、Drv I/F1)、キャッシュメモリ4a、4b(Cache0、Cache1)、マイクロプロセッサ5a、5b(MP0、MP1)の、それぞれの間の、データ転送経路を介したデータ転送を制御するコントローラである。コントローラ1a、1bは、デュアルデータ転送経路(Dual I/O)により接続されており、コントローラが二重化される構成である。さらに、ストレージ装置の規模を拡張するために、他のモジュールと接続するインターフェースであるクロスデータ転送経路(Cross I/O)も備える。クロスデータ転送経路は、第4の実施例(図14)にて詳細に説明する。
ホストインターフェイス2a、2bは、ホストとの通信プロトコルにしたがい、パケット単位の転送を制御するインターフェイスである。
ドライブインターフェイス3a、3bは、ハードディスクドライブとの通信プロトコルにしたがい、セクタ単位でデータ転送を制御するインターフェイスである。
キャッシュメモリ4a、4bは、ホストインターフェイス2a、2b及びドライブインターフェイス3a、3bからの転送データを一時的に蓄積するメモリである。DDR(Double Data Rate Synchronous DRAM)に代表される高速メモリがキャッシュメモリとして用いられる。キャッシュメモリ4a、4bを設けることで、ドライブ書き込み時のホスト転送データの消失を防止できる。また、キャッシュヒットによるホストへのリードレスポンス性能を向上させることができる。
マイクロプロセッサ5a、5bは、コントローラ1a、1b、ホストインターフェイス2a、2b、ドライブインターフェイス3a、3bを各々制御する。マイクロプロセッサ5a、5bは、メモリコントローラハブ6a、6b(Memory Controller Hub:MCH)を介して、コントローラ1a、1b及びプロセッサメモリ7a、7b(MP Mem0、MP Mem1)と接続する。メモリコントローラハブ6a、6bは、コントローラ1a、1bと接続する。メモリコントローラハブ6a、6b及びプロセッサメモリ7a、7bは、MPI/O(MP I/O)によりコントローラ1a、1bに接続する。
ドライブインターフェイス3a、3bには、ハードディスクドライブが接続される。該ハードディスクドライブにより、論理ボリュームを構成する。そして、マイクロプロセッサ5a、5b(MP0、MP1)が、ホスト側から見たアクセス空間である論理ボリューム8a、8b(LU0、LU1 LU:Logical Unit)を管理する。
図2は、コントローラ1a、1bの内部構成図である。コントローラ1に接続される各データ転送経路(MPデータ転送経路、クロスデータ転送経路、ホストデータ転送経路(Host I/O)、ドライブデータ転送経路(Drv I/O)、デュアルデータ転送経路上を、例えば、高速シリアルバス規格であるPCIエクスプレス(PCI‐Express)を介してデータが転送される。
DDR I/F10は、キャッシュメモリ4とコントローラ1間のデータ転送を制御する。DDR I/F10及びキャッシュメモリ4は、キャッシュデータ転送経路で接続される。
PCI I/F(11a〜11e)は、物理レイヤー、リンクレイヤー、トランザクションレイヤー等の各レイヤーにおける通信プロトコルに従いデータ転送を制御する。例えば、トランザクションレイヤーのデータ転送は、TLP(Transaction Layer Packet)形式のパケット単位で行われる。
メモリコントローラ12(MEM CTL)は、キャッシュメモリに対するリード、ライト、RMW(Read Modify Write)や、DRAMに対するリフレッシュ動作などの、コマンドの発行を制御する。また、メモリコントローラ12は、コントローラ1内の高速スイッチ(SW)15と接続する。
ブリッジ回路13a〜13e(BRG MP、BRG Cross、BRG D、BRG Dual、BRG D)は、コントローラ1内の高速スイッチ15と接続し、転送されるデータに対するヘッダ受信バッファ、送信バッファを含むブリッジ回路である。ブリッジ回路13a〜13eは、バッファを備えることで、転送データを構成するヘッダ情報の保持、書き換えが可能であり、コントローラ内、コントローラ1a、1b間のデータの転送に適したパケット変換機能を備える。
DMA回路14a、14b(D DMA、H DMA)は、ブリッジ回路13e(BRG H)、ブリッジ回路13c(BRG D)と接続し、転送元つまりリクエスタとして、各データ転送経路を介した転送動作を制御する。
高速スイッチ(SW)15において、複数の転送元から同一転送先へ複数のデータの転送要求(リクエスト)が発生した場合、アービタ16の制御により、各転送元からの転送データを時分割多重して転送する。アービタ16は、同時発生のデータの転送要求に対し、決められた優先順位に従い選択を行う。
コントロールレジスタ(CTL Register)17は、コントローラ内部動作の制御や、内部動作の状態に関する情報を取得する制御レジスタである。レジスタ長は、データの最小データ長1DW(Double Word)、4バイトである。マイクロプロセッサ5a、5bはMPデータ転送経路を介してコントロールレジスタにアクセスし、制御データの転送や、動作状態の取得によりコントローラを制御する。
DMA回路20(Multi DMA)は、マイクロプロセッサ5、キャッシュメモリ4との各データ転送経路を介した転送を制御する。
次に、TLP構成を説明する。
図3は、図1のストレージ装置100を構成するコントローラ内のデータ転送時や、コントローラ1a、1b間のデータ転送時に用いられるTLPフォーマットを示す。
TLPフォーマットしたデータは、ヘッダ部とデータ部より構成される。
図3(a)は、転送元から転送先にデータを転送する場合のライトコマンドであり、ヘッダと転送データにより構成される。
図3(b)は、ライトコマンドに対するステータス応答(ノン・ポステッド:Non‐Posted)を転送するための応答パケット(ライト応答)であり、ライトコマンドに対するエラーステータスが含まれる。
図3(c)は、リードコマンドであり、ヘッダのみで構成される。図3(d)は、リードコマンドに対するリード応答(コンプリーション)であり、ヘッダと、転送元(コンプリータ)からの転送データと、エラーステータスとにより構成される。
図3(a)及び図3(d)を構成するデータ長は、ヘッダ内の転送長(Length)によって決定される。例えば、マイクロプロセッサから、コントローラレジスタ、キャッシュ、ホストインターフェイス、ドライブインターフェイス内の制御レジスタに対しアクセスを行う場合、最小データ長は1DW(Double Word)、4バイトである。転送長:Lengthは8ビットより最大256DW、1024バイトのデータ転送に対応する。
図3(e)は、各コマンドのヘッダに対し、コントローラ内、コントローラ1a、1b間のデータの転送に最適化した部分を示している。TLPヘッダは、データの転送先を示すコンプリータIDとデータの転送元を示すリクエスタIDを有する。そして、コンプリータIDとリクエスタIDは各々、コンプリータ又はリクエスタを有するコントローラを識別するLSI番号や、転送元及び、転送先に対するデータ転送経路を識別するFunc.(Function)番号を有する。なお、コンプリータID、リクエスタIDは、マイクロプロセッサ5や、コントローラ1自身によって、各ブリッジ回路等において付与され、TLPの転送を制御する。
タグ(Tag)番号は、例えば、あるリード命令に対し、そのTLPに含まれるタグ番号を、全てのリード応答に引継ぎ、リクエスタ要求に対する応答パケットの識別に用いる。
その他ヘッダの構成ビットは、PCIエクスプレスで規定されるTLPフォーマットに準拠しており、説明を省略する。コントローラと接続されるデータ転送経路(Host I/O、Drv I/O、MP I/O)間のTLP転送には、以上説明したTLPヘッダは適用されない。当該TLP転送には、PCIエクスプレスのTLPフォーマットに完全に準拠したフォーマットが適用される。ヘッダはコントローラ内の各ブリッジ回路内で付け替えを行うことで、TLPの互換性を維持する。
図4を用い、ストレージ装置100内のデータ転送を説明する。データ転送の一例を以下に示す。
50は、ホスト転送データを受信したホストインターフェイスの属するコントローラと、デュアルデータ転送経路(Dual I/O)を介して接続されたコントローラそれぞれに接続されるキャッシュメモリへ書き込む、二重書き処理を示す。
51は、キャッシュメモリ上のデータをドライブインターフェイスへ転送する処理や、ドライブインターフェイスにおいて受信したデータをキャッシュメモリに転送する処理などのDrv転送処理示す。
52は、キャッシュメモリ上のデータをホストインターフェイスへ転送するHost転送処理を示す。
53は、マイクロプロセッサとコントローラ内のコントロールレジスタ、キャッシュメモリ、ホストインターフェイス、ドライブインターフェイス間のデータ転送処理であるMPアクセス処理を示す。
そして、マイクロプロセッサ5はコントローラ1を制御することで各転送処理(50〜53)を行う。各転送処理の際の、制御方法の具体例を以下に説明する。
まず、Drv転送処理51と、Host転送処理52を組合せて実現する、ホストへのデータ転送動作を説明する。一例として、ホストからのアクセスに応じて、LU0からデータをリードし、キャッシュメモリ(Cache0)へ転送し、Cache0から各ホストインターフェイス(Host I/F)に転送する場合について説明する。LU0を制御するコントローラ0(CTL0)を実行するマイクロプロセッサ(MP0)が、CTL0が備えるDMA回路14b(D DMA)を起動し、LU0からリードしたデータをCache0へ転送する。そして、マイクロプロセッサ(MP0)が、転送先ホストインターフェイス(Host I/F0)が属するCTL0内のDMA回路14a(H DMA)を起動し、LU0に対するデータを転送する。
次にCache二重書き50と、Drv転送51を組合せて実現する、LUへのデータ転送(LUライト)動作を説明する。一例として、ホストインターフェイス(Host I/F0)においてホストよりデータを受信し、各キャッシュメモリ(Cache0、1)に二重書きした後、該データをCache0からLU0が接続されるドライブインターフェイス(Drv I/F0)に転送する場合について説明する。Cache二重書き処理50は、ホストインターフェイス(Host I/F0)への転送データに対し、HOST I/F0を制御するコントローラ0(CTL0)を実行するマイクロプロセッサ(MP0)が、CTL0内のDMA回路14a(H DMA)を起動することで行われる。更にHDMAに対し、転送先をCacheデータ転送経路、Dualデータ転送経路に指定し、ブリッジ回路(BRG H)において、受信データに対するTLPを転送先別にそれぞれ生成し、転送する。これは図3のTLPヘッダ内のコンプリータIDを指定で成し遂げられる。次にCache0への書き込み後、CTL0内のDMA回路14b(D DMA)を、マイクロプロセッサ(MP0)が起動し、LU0へデータを転送する。
ストレージ装置内では、ホストからの転送要求に従い、転送動作が、複数のホストインターフェイス、ドライブインターフェイスに対して、同時に発生する。従って、デュアルデータ転送経路(Dual I/O)上を、各転送処理に対するデータは、時分割多重化され転送される。さらに、マイクロプロセッサにより制御データが頻繁に転送されるため、データ多重度が増加する。多重度の増加によってコントローラ内の高速スイッチ(SW)15ではデータ多重のための転送経路切り替えが頻発し、切り替えに伴うオーバーヘッド時間が増加する。オーバーヘッド時間の増加は、デュアルデータ転送経路(Dual I/O)の転送帯域を無駄に浪費し、データ転送レートが低下する。
次に、図5を用いて実施例1を説明する。図5は一例として、マイクロプロセッサ、ホスト、ドライブの各データ転送経路(MP I/O、Host I/O、Drv I/O)からのデータを高速スイッチ(SW)15を用いて時分割多重し、Dual データ転送経路へ転送するコントローラの一部を示す構成図である。更に、可変長パケットを処理するブリッジ回路(BRG MP13a、BRG H13c、BRG D13e)の詳細な構成図を示す。ブリッジ回路はPCI I/Fで受信したデータのヘッダを検出するヘッダ検出部と、ヘッダを保持するヘッダバッファ、ヘッダ内の情報を解析するヘッダ解析部、データを保持するデータバッファ、バッファ読出しを強制的に行うタイムアウト処理に利用するタイマー、複数の短い転送長のデータをまとめて結合データを生成し、結合データにヘッダ情報を付加する結合データ生成部より構成される。
ヘッダバッファ容量は、図3のヘッダ長4DW分を備える。ヘッダバッファ容量は、一例であって、これに限定されるものではない。また、ヘッダバッファの数については、図6で説明する複数のヘッダ情報に対する処理を行う目的で、2つ以上設ける。ただし、ヘッダバッファ数はこれに限定されるものではない。
データバッファ容量は、TLPフォーマットされたデータの最大転送長1024バイト(1Kバイト)に対応するため、データ分の1KBとTLPヘッダ分の4DW、補償コード(ECRC)1DWとする。またPCI I/Fからのバッファへの書込み、高速スイッチへの転送に伴うバッファ読出しを同時に行う目的で、バッファ数は2つ以上設けられる。
データバッファ容量も、ヘッダバッファ容量と同様に、一例であって、これに限定されるものではない。ただし、ヘッダバッファ容量よりデータバッファ容量の方が、容量が大きいことが好ましい。
受信したデータをバッファに保持したままでは、図4で説明の転送処理が滞り、データ転送性能が劣化する。そこで、ブリッジ回路はタイマーを備える。タイマーは、データバッファへの書き込み開始でカウントを開始し、タイムアウト値に達することでタイムアウト処理に遷移する。タイムアウト処理では、データバッファ内全てのデータを強制的に読み出し、転送する。タイムアウト時間はマイクロプロセッサより設定される。タイムアウト処理によって、バッファ内のデータが全て読出されるが、データバッファ容量に満たずに転送される。従って受信されたバッファ内のデータ転送の際には、そのデータ容量と全データバッファ容量の差分に相当するデータ量のダミー(無効)データを伴って転送される。ダミーデータは、転送元或いは、転送先で破棄される無効データである。従って、ダミーデータが増加すると伝送路帯域を無駄遣いし、単位時間あたりの転送データ量に対する有効データ量が減少するため、転送レート低下を招く原因となる。
アービタ16は、タイムアウト発生時や、バッファ容量分のデータ書き込み終了後、ブリッジ回路より生成されるリクエスト信号によって高速スイッチ(SW)上でのデータ多重を制御し、Dual データ転送経路に転送する。ブリッジ回路は、アービタからの転送完了(ACK)を受け、バッファ内データの転送を行った後でデータバッファを開放し、次の受信データに対するバッファリングを開始する。
また図5では便宜上、Cacheデータ転送経路は図示していないが、Cacheデータ転送経路から、Dualデータ転送経路に転送する場合も考えられる。
次に、ブリッジ回路で行わる結合データ生成処理を、図6のフローチャートを用いて説明する。図6は、受信した複数のデータから結合データと生成する場合の判断方法及び、高速スイッチ(SW)への転送制御方法を示す。
まず、各インターフェースを介してデータを受信する(S61)。その後、受信したデータをデータバッファに格納すると共に、該データのヘッダ部はヘッダバッファへ格納する。そして、データを受信する毎に、同様に、データバッファ及びヘッダバッファに格納する(S62)。
複数のデータに対するヘッダをヘッダバッファへ格納すると、ヘッダ解析部において、ヘッダ内に含まれる各情報(転送長:Length、転送先コントローラ番号、転送先、転送先アドレス等)を検出し、解析する(S63)。解析結果より、各データの転送長:Lengthが、ある転送長(規定長)であるかどうかを判定する(S64)。例えば、判定の対象となる2つ以上のデータの転送長が最小アクセス単位1DW(4バイト)を規定長とし、それとの一致を判定する。S64にて条件が成立しない場合には、S67に遷移する。S67は後述する。S64にて条件が成立する場合には、判定対象である2つ以上のヘッダ情報から、転送先コントローラ番号の一致、転送先の一致、転送先アドレスの連続を判定する(S65)。S65にて条件が成立しない場合には、S67に遷移する。S65にて条件が成立する場合には、複数の受信されたデータをまとめ、結合データとして転送可能な条件が成立するため、結合データのヘッダ情報を生成する。該ヘッダ情報は、結合データの転送先先頭アドレス値、結合データの転送長:Length等である(S66)。
次に、データバッファ容量、タイムアウト発生をを判定(S67)する。受信データ量がデータバッファ容量を満たす場合、又は、タイムアウト発生の場合には、アービタ16に対するリクエスト信号を生成する。そして、アービタからのアクナリッジ信号を受信すると、データバッファからデータの読出しを開始する(S68)。S67にて条件不成立の場合は、S61以降の処理を継続する。データ転送開始後、結合データに含まれる先頭データを読出し、S66で生成したヘッダを付加し、結合データを生成する(S69)。その後、高速スイッチ(SW)により、他のデータと時分割多重して転送され、デュアルデータ転送経路を経由して、転送先へ出力される。
なおS64の判定は、転送長が、最小アクセス単位1DW(4バイト)でであること限定されず、保持した複数のヘッダ情報に含まれる転送長:lengthの一致により判定してもよい。この場合、S65のアドレス連続性の判定は、一致した転送長がアドレス値の変化分であり、(あるヘッダの転送アドレス)+(一致検出した転送長)=(次のヘッダの転送アドレス)との条件式を満たせば、アドレス連続性が確認できる。さらにS64の判定は、転送長:lengthがある規定長以下を条件として判定してもよい。
また、本実施例はS64とS65の判定条件をもとに、結合データの生成を判定するが、S65を満たすのみで、結合データの生成を判定してもよい。例えば、転送長が異なる場合(S64にて判定が成立しない場合)でも、アドレス連続性を確認した場合(S65にて判定が成立する場合)には、それらを結合データとしてまとめることもできる。この場合のS65における判定方法は、(あるヘッダの転送アドレス)+(そのヘッダの転送長)=(次のヘッダの転送アドレス)の条件式を満たすことでアドレス連続性が確認できる。 S64の判断によって、転送長の短い複数データを結合データとしてまとめることができ、オーバヘッドを低減することが可能となる。また、S65の判断によって、転送先の条件を考慮した結合データとすることができる。転送先コントローラが同一で、転送先のアドレスが連続しているため、まとまったデータを分解することなく、そのまま書き込むことができる。
図5のブリッジ回路(13a、13c、13e)で行われる結合データの生成動作(図7)について、具体例を用いて説明する。図7(a)は、一例としてマイクロプロセッサがコントロールレジスタ(CTL Register 17)に転送長1DWのデータを連続して転送し、タイムアウト発生でデータバッファから強制的に読出す場合を示している。具体的には、MP データ転送経路を介して、ヘッダに含まれるアドレスが連続する転送されるデータ(M0〜M4)と、転送長の長いデータ(M5)とを連続してI/Fにて受信し、それ以降のデータ受信が発生しない場合を示す。連続する1DWの転送として、例えば、連続したアドレスのコントロールレジスタに対するアクセスが考えられる。
ブリッジ回路(BRG MP)のヘッダ解析部では、ヘッダバッファに保持された複数のヘッダ情報から得られる転送長と規定値との一致を判定する。そして、転送先のコントローラ番号、転送先の一致、転送先アドレスの連続性を判定する。転送長が規定値と一致し、転送先コントローラの一致、及び転送先アドレスが連続する場合、転送先アドレスの連続するデータをまとめた結合データに対するヘッダ情報を生成する。ヘッダ情報の中で、転送先のコントローラ番号、転送先は、結合データとしてまとめる各転送データに対する転送先コントローラ番号、転送先と共通である。また、転送先アドレスは結合データとしてまとめる各転送データの中で先頭となるアドレスである。
データ転送の無い状態が継続し、タイムアウトが発生すると、アービタ16に対する転送リクエスト信号を生成し、データバッファから強制的にデータを読出し、転送される。結合データ生成部は、読出しの際に結合データのヘッダ情報とデータ(M0〜M4)とをまとめた結合データを生成する。そして、それ以外のデータ(M5)やダミーデータはそのまま読出し、高速スイッチ(SW)へ転送する。結合データ生成の際には補償コード(ECRC)も再計算され付加される。補償コード(ECRC)の再計算は、例えばヘッダ解析部で行われる。
図7(b)は、マイクロプロセッサがコントロールレジスタ(CTL Register 17)に転送長1DWのデータと、その他データを混在させて転送し、データバッファ容量を満たすデータを受信した後、転送をする場合を示す。図7(b)においては、最小アクセス単位1DWの転送(M2〜M10、但しM4を除く)の連続と、転送長の長いデータ(M0、M1、M4、M11)転送が混在する。M2〜M10(但しM4を除く)のヘッダに含まれるアドレスは連続する。この場合、M2からM10までを先に読み出すことで結合データを生成し、その後でアドレス不連続のデータ(M4)を読み出し、高速スイッチ(SW)へ転送する。
ブリッジ回路(BRG MP)においては図6のフローチャートに従い、図7(a)と同様に、結合データに対するヘッダ情報を生成するが、途中アドレスの連続しないデータ(M4)が存在する。このデータの検出は複数のヘッダバッファに保持されたヘッダ情報から、上記と同様の方法で判定できる。
なお、ヘッダ解析部では、結合データの生成判定に、転送先コントローラ番号や、転送先の一致、転送先アドレス連続性の判定の他に、データ受信順の連続性を判定条件として加えてもよい。例えば、マイクロプロセッサアクセスは、データの転送順で制御シーケンスを構成し、コントローラ及びストレージ装置100の制御を行う場合もある。転送順列の入れ替わりが、受信順に影響することで、マイクロプロセッサが意図した制御シーケンスとならない場合が考えられる。よって受信の連続性判定を加えることで上記懸案が解消される。データ受信順の確認は、前後のヘッダバッファ内のアドレス連続性判定で可能となる。例えば図7(b)において、データ(M2〜M10)のアクセス順列を維持する場合には、データバッファからの読出しの際に、データ(M2、M3)に対する結合データ‐1、データ(M5〜M10)に対する結合データ‐2を生成し、ブリッジ回路から結合データ‐1、データ(M4)、結合データ‐2の順に出力する。結合データ‐1、結合データ‐2に対するヘッダはヘッダ解析部でそれぞれ生成される。各結合データのヘッダ生成方法は、上記した判定方法に従い生成される。
以上、説明したように転送長、転送先の一致及び、転送アドレスの連続性に基づいて、複数のデータを結合データとしてまとめることにより、高速スイッチ上の多重度増加及び、多重度の増加に伴うオーバーヘッド時間の増加を抑制することができ、転送性能を向上させることができる。
(2)実施例2
次に、第2の実施例を、図8−10により説明する。実施例1と同様な処理をする部分は適時説明を省略する。図8は図5と同様に、マイクロプロセッサ、ホスト、ドライブの各データ転送経路(MP I/O、host I/O、Drv I/O)からの可変長転送パケットを、高速スイッチ(SW)15において時分割多重し、Dualデータ転送経路に、転送する構成例である。そして、可変長パケットの処理を行うブリッジ回路(BRG MP13a、BRG H13c、BRG D13e)の詳細構成を示す。ブリッジ回路は、図5の構成要素(ヘッダ検出部、ヘッダバッファ、ヘッダ解析部、結合データ生成部)に加え、一定転送長以上のデータを保持する第1のバッファ、一定転送長以下のデータを保持する第2のバッファを含む。更に、ブリッジ回路は、第1のバッファ、第2のバッファのそれぞれに対し、タイムアウトを判定するため、タイマー0、タイマー1を含む。
ヘッダバッファ、第1のバッファの容量は、図5の説明と同様の方法で決定される。各バッファのバッファ容量は、一例として以下のように決定される。ヘッダバッファのバッファ容量はヘッダ長である4DWである。第1のバッファのバッファ容量は、データの最大転送長である1024バイト(1KB)に、ヘッダ分の4DW、補償コード(ECRC)1DWを加えた容量である。PCI I/Fからバッファへの書き込みと高速スイッチへの転送に伴うバッファ読出しを同時に行う目的で、バッファ数は各々2つ以上設ける。但し、1つのバッファにより書き込みと読み出しを行ってもよい。
第2のバッファのバッファ容量は、コントローラ内の最小転送長を64バイト(16DW)とした場合、そのデータ分とヘッダ分の4DW、補償コード(ECRC)1DWを加えた容量とする。64バイト以下の転送、例えば最小転送長1DWに対する転送は、結合データとしてまとめられる。更に(第1のバッファのバッファ容量)>(第2のバッファのバッファ容量)とすることで、マイクロプロセッサアクセス等、転送長の短いデータに対し最小の転送遅延で速やかに転送する場合に好適である。バッファ数については、第1のバッファと同様の理由で2つ以上を設ける。
なお、上記各バッファ容量の設定方法は、一例であり、これに限定されるものではない。
タイマー0、1はそれぞれ独立したタイムアウト値が設定される。(第1のバッファのバッファ容量)>(第2のバッファのバッファ容量)の関係から、マイクロポロセッサは(第1のバッファのタイムアウト値)>(第2のバッファのタイムアウト値)の関係となるタイムアウト値を設定する。従って第2のバッファは、タイムアウト発生を頻発させ速やかな転送を行うことが可能となる。また、バッファ容量を最小化することで、タイムアウト発生時の強制読出しに伴うダミーデータ量を最小とする転送が可能となる。第2のバッファは、短い転送データが頻発するマイクロプロセッサアクセスに適する。但し、タイムアウト値を共通して設定してもよい。
アービタ16は、第2のバッファ、第1のバッファそれぞれに対し、バッファ容量分の書き込み終了後や、タイムアウト発生によるタイムアウト処理を開始する場合に、ブリッジ回路にて生成したリクエスト信号を受信し、該リクエスト信号を基に高速スイッチ(SW)上でのデータ多重を制御する。ブリッジ回路は、アービタから転送完了(ACK)信号をを受け、バッファ内データの転送を行った後で、バッファを開放し、次の受信データに対するバッファリングを開始する。
なお、転送先は図5と同様、Dual データ転送経路に限定されず、Cacheデータ転送経路や、hostデータ転送経路、Drvデータ転送経路など、各データ転送経路に対して同様の回路がコントローラ内のブリッジ回路、高速スイッチ(SW)に含まれて構成される。また、ブリッジ回路(BRG MP、BRG H、BRG D)の構成は同一である。
さらに、図8では、Cacheデータ転送経路は図示していないが、Cacheデータ転送経路から、Dualデータ転送経路に転送する場合にも本実施例を適用することができる。これはMulti DMA20を起動し、ブリッジ回路相当部分をメモリコントローラ(MEMCTL)12に備えることで実現される。
次に、結合データ生成処理及び転送処理を、図9のフローチャートを用いて説明する。図9は、パケットをI/Fにて受信し、転送長に基づきTLPの書き込み先となるバッファを選択し、結合データの生成を判断し、高速スイッチ(SW)へのデータ転送制御を示す。
S91からS93の処理は、図6のS62からS63の処理に対応し同様の処理をするため、説明を省略する。S93の後、ヘッダバッファに格納したヘッダの転送長:Lengthより、受信データを格納するバッファの選択を行う(S94)。ヘッダ解析部で各データの転送長を解析し、該転送長と第2のバッファ格納閾値よりも、小さいかを判定する。該判定条件は、第2のバッファに対するデータ格納の判断条件である。第2のバッファ格納閾値は、例えば(第2のバッファのバッファ容量)÷Mの値とする。Mは、正の整数で、1以上である。Mを指定することにより、複数のデータを第2のバッファに格納し、該データを結合データとしてまとめることを目的としている。例えばM=2の場合は、第2のバッファ容量の1/2が閾値となり、2つの転送データを第2のバッファへ格納、結合データとして纏めることを意味する。以降M=3、M=4に対する閾値についても同様に3つ、4つの転送データを、結合データとして纏める際に用いる。また、第2のバッファ格納閾値として所定値を設定してもよい。
S94において条件不成立の場合は、第1のバッファへ書き込みし(S95)、第1のバッファのバッファ容量を満たす場合もしくはタイムアウトが発生した場合には、S9d以降の処理へ遷移する(S96)。S9d、S9eの処理は図6のS68、S69に対応し、その動作説明は省略する。
S94において条件成立の場合は、S98からS9bの処理を行う。S98からS99の処理は図6のS64〜S65の処理に対応し、その動作説明は省略する。S98〜S99の判定条件成立で、第2のバッファに書き込みが行われる(S97)。それ以降のS9a、S9bの処理は図6のS66、S67の処理に対応し、その動作説明は省略する。
図8のブリッジ回路(13a、13c、13e)で行われ、図9のフローチャートに従った結合データの生成動作についての、具体例を図10を用いて説明する。図10(a)は、一例としてマイクロプロセッサがコントロールレジスタ(CTL Register 17)に転送長1DWのデータを連続して転送し、タイムアウト発生でバッファから強制的に読出す場合を示している。具体的には、MPデータ転送経路を介して、ヘッダに含まれるアドレスが連続する転送データ(M0〜M4)と、転送長の長いデータ(M5)とを連続してI/Fにて受信し、それ以降のデータ受信が発生しない場合を示す。連続する1DWの転送として、例えば、連続したアドレスのコントロールレジスタに対するアクセスが考えられる。更に、M0〜M4の合計データ量は第2のバッファのバッファ容量(例えば、64KB)以下、M5のデータ量は第1のバッファのバッファ容量(例えば、1KB)以下の場合である。
ブリッジ回路(BRG MP)のヘッダ解析部による、ヘッダ解析及び、結合データに対するヘッダ情報の生成、タイムアウト処理は、図7の説明と同様である。但し、ヘッダ解析部により第2のバッファ閾値より転送長の短いデータ(M0〜M4)を検出した場合、データは第2のバッファに順次格納さる。それ以外のデータ(M5)は第1のバッファに格納される。また、タイムアウトは、各バッファに対するタイマーが各々計測するため、タイムアウト処理は独立して発生する。図10(a)では、タイムアウト値の小さい第2のバッファでタイムアウトが発生し、先にタイムアウト処理を開始する。その後、第1のバッファでタイムアウトが発生し、タイムアウト処理を開始する。結合データ生成部は、第2のバッファを読み出す際に生成したヘッダ情報とその纏める対象となるデータ(M0〜M4)から単独の結合データを生成し、それ以外のデータ(M5)、ダミーデータはそのまま読出し、高速スイッチ(SW)へ転送する。
図10(b)は、図7(b)と同様、マイクロプロセッサがコントロールレジスタ(CTL Register 17)に転送長1DWのデータと、その他データを混在させて転送し、バッファ容量を満たすデータを受信した後、転送をする場合を示す。図10(b)においては、最小アクセス単位1DWの転送(M2〜M10、但しM4を除く)の連続と、転送長の長いデータ(M0、M1、M4、M11)転送が混在する。M2〜M10(但しM4を除く)のヘッダに含まれるアドレスは連続する。この場合、M2からM10までを先に読み出すことで結合データを生成し、その後でアドレス不連続のデータ(M4)を読み出し、高速スイッチ(SW)へ転送する。
ブリッジ回路(BRG MP)は、図7(a)と同様に、結合データのヘッダ情報を生成する。但し、ヘッダ解析部により、第2のバッファ格納閾値よりも転送長の短いデータ(M2〜M10、但しM4を除く)を検出した場合、TLPは第2のバッファに順次格納され、それ以外の受信TLP(M0、M1、M4、M11)は第1のバッファに順次格納される。
第2のバッファへのデータ(M2〜M10、但しM4を除く)書き込みが継続し、第2のバッファのバッファ容量分の書き込み終了後、読出しが開始される。M2からM10(但しM4を除く)を読み出し、結合データは図7(a)と同様の方法で生成される。更に、第1のバッファについてもデータ(M0、M1、M4、M11)の書き込みが継続し、第1のバッファのバッファ容量分の書き込み終了後、読み出しが開始される。第2のバッファの読み出しにより生成された結合データ、第1のバッファの読出しに含まれるデータ(M0、M1、M4、M11)は高速スイッチ(SW)へ転送される。
この図10(b)の転送例においても、ヘッダ解析部において行われるアドレス連続性の確認に、データ受信順の連続性確認を加えることで、データ受信順列を維持した結合データの生成、ブリッジ回路からの出力時に第2のバッファと、第1のバッファの読み出し順列を受信時と同様の順列とすることが可能となる。
なお、図10の例についても、図6での説明と同様、ヘッダ解析部で行われる、結合データの生成判定として、コントローラ番号、転送先の一致判定、アドレス連続性判定の他に、データ受信順の連続性判定の追加も考えられ、例えばマイクロプロセッサアクセス順を維持した結合データの生成が可能となる。
以上より、受信されたデータの転送長により、異なる容量を持つバッファの格納先を選択し、更に転送先が同一でかつ、転送アドレスが連続する短い転送長のデータを検出することで第2のバッファに格納、結合データとして纏めることで、高速スイッチ上のパケット多重度、転送オーバーヘッドの発生を抑制でき、効率のよいパケット転送を行うことができる。第1の実施例と同等の効果に加え、第2の実施例は、第2のバッファを設けることで、短いデータに対する転送遅延時間を更に短縮できる。
なお第2の実施例は、第1の実施例(結合データの生成)と組合せた場合を説明したが、それに限定されず、受信したデータの転送長に従って、容量の異なる第2のバッファ、第1のバッファへの書き込み、読出しを制御するだけでも、転送遅延の抑制、ダミーデータを伴う転送性能の低下を抑制する効果がある。

(3)実施例3
次に、実施例3について、図11−13により説明する。なお、実施例1、2に記載の内容と重複する部分は適宜省略する。図11は図8と同様、プロセッサ、ホスト、ドライブの各データ転送経路(MP I/O、host I/O、Drv I/O)を介して転送された、可変長転送パケットを高速スイッチ(SW)15において時分割多重化し、Dual データ転送経路へ転送するコントローラ内部の構成の一部を示す図である。可変長パケットの処理を行うブリッジ回路(BRG MP13a、BRG H13c、BRG D13e)、高速スイッチ(SW)15、アービタ16については図8の相当部と同一であり説明を省略する。
図11は、ブリッジ回路と高速スイッチ(SW)の間に、前段スイッチ(SW2)を設け、該前段スイッチにおいて多重化したデータを選択制御する多重制御部を有する。前段スイッチ(SW2)は、後段の高速スイッチ(SW)の前で、選択した各ブリッジ回路の出力を多重する。
多重制御部は、前段スイッチで多重化した複数のリクエスト信号を1つに統合し、アービタに、該統合されたリクエスト信号を出力する。さらに、多重制御部は、各ブリッジ回路のバッファステータス(各バッファに書き込まれたデータ量や、タイムアウトの発生状況等)を受信し、バッファステータスを管理する。
多重制御部による前段スイッチ(SW2)の制御によって、高速スイッチ(SW)上の時分割多重の回数が減少し、オーバーヘッドを抑制する。
本実施例では、ブリッジ回路として、実施例2のブリッジ回路を採用しているが、これに限定されるものではなく、実施例1のブリッジ回路を採用してもよい。
次に、図12のフローチャートを用い、前段スイッチ(SW2)における、多重するブリッジ回路出力の選択方法と、アービタ16へのリクエスト信号の転送処理について図12のフローチャートを用いて説明する。
ブリッジ回路内のバッファ(本実施例の場合には、第1のバッファまたは第2のバッファ)への格納データ量がバッファ容量に達した場合や、タイムアウトの発生により、該バッファからの転送準備が完了する(S21)。多重制御回路は、あるブリッジ回路に含まれるバッファの転送準備完了により、その他I/Oのバッファステータスを取得する(S22)。そして、前段スイッチ(SW2)で転送準備が完了したバッファ(S21)内のデータと、他のブリッジ回路に含まれるバッファ内のデータとを多重するかどうかの選択判定を行う(S23)。具体的には。第2のバッファまたは第1のバッファのデータバッファ量と第1の閾値とを比較し、第2のバッファまたは第1のバッファへの書き込みを開始してからの経過時間と第2の閾値とを比較することで、多重する他のブリッジ回路に含まれるバッファを選択する。第1の閾値及び第2の閾値は、第2のバッファと第1のバッファに応じて、決定される。なお、第1の閾値との比較又は第2の閾値との比較のいずれかを条件として、多重するバッファを選択してもよい。
S23の判定条件が不成立の場合には、転送準備が完了したバッファ(S21)のブリッジ回路から、データを、前段スイッチ(SW2)、後段の高速スイッチ(SW)を介して、転送する(S25)。
S23の判定条件が成立の場合には、多重制御部は、各ブリッジ回路からの転送リクエスト信号に従い、前段スイッチ(SW2)を制御する。そして、転送準備が完了したブリッジ回路内のバッファ(S21)データと、S23が成立するその他のブリッジ回路のデータを、前段スイッチ(SW2)において時分割多重する(S24)。具体的には、転送準備が完了したバッファ(S21)のブリッジ回路のデータ転送後、S23の条件が成立するブリッジ回路からデータを読み出し、前段スイッチ(SW2)で時分割多重し、高速スイッチ(SW)に転送するする。転送順は、S23の条件が成立する他のブリッジ回路のデータ転送後に転送準備が完了したバッファ(S21)データの転送を行ってもよい。
また、多重制御部では、前段スイッチ(SW2)においてデータを多重する際に、前段スイッチ(SW2)で多重化した複数のデータのリクエスト信号を、1つのリクエスト信号として統合する。そして、アービタ16に統合したリクエスト信号を転送する(S26)。一例として、S21が成立するブリッジ回路のリクエスト信号に、S23のリクエスト信号を集約する。
更に、アービタ16は、後段の高速スイッチ(SW)において、多重制御部で統合されたリクエスト信号と、その他リクエスト信号より、前段スイッチ(SW2)の出力と、その他ブリッジ回路出力との多重を行うよう、後段の高速スイッチを制御する(S27)。
S21からS27の処理によるデータ転送の終了後、前段スイッチにおける多重を解除し、アービタ16に対するリクエスト信号も元のBRG MP、BRG H、BRG Dに対するリクエスト信号の受付状態に復帰させる(S28)。
実施例3のコントローラを用いると、前段スイッチにおいてS21及びS23の条件を満たす転送データを多重した後、後段の高速スイッチにてその他の転送データとを多重することで、後段の高速スイッチにおいて、多重化に伴う転送オーバーヘッド発生を抑制でき、効率のよいパケット転送が可能である。また、S23の条件で前段で多重する転送データを選択することで、即時転送可能なデータ同士を、前段で纏めて転送し、後段のスイッチにおけるオーバーヘッドの発生を抑制できる。
なおS21を第2のバッファ内のデータに限定して、他バッファ内のデータと多重化してもよい。また、S23の判定対象となるバッファも、第2のバッファに限定してもよい。この場合、転送長の短いTLPが前段スイッチ(SW2)で多重されることで、後段の高速スイッチ(SW)における単位時間当たりの多重回数をより抑制可能となる。
前段スイッチ(SW2)、後段の高速スイッチ(SW)における多重処理の具体的な動作例を、図13を用いて説明する。図13は、MPデータ転送経路とhostデータ転送経路に接続されるブリッジ回路出力を前段スイッチ(SW2)で多重し、後段高速スイッチ(SW)にて、前段スイッチ(SW2)の出力と、残りのDrv データ転送経路に接続されるブリッジ回路出力を多重し、コントローラ間I/Oに転送する場合について示している。
ブリッジ回路(BRG MP)において、例えば最小転送長のデータが第2のバッファへ書き込まれ、その後、タイムアウト発生や、バッファ容量分の書き込みが終了した時点で、その第2のバッファより生成される結合データと前段スイッチ(SW2)で多重可能な他のバッファデータを選択する。図13は、その他ブリッジ回路(BRG H、BRG D)に対する第1のバッファや、第2のバッファへの書き込み量とバッファ容量との比較、或いはタイムアウトの発生により、転送可能なブリッジ回路を判定する。図13では、BRGHがBRGMPと前段多重する他のバッファデータとして選択される。更に、多重制御部は、ブリッジ回路より生成され、転送されるリクエスト信号を受信し、アクナリッジ信号を返信する。返信された、ACK信号を受信した後、ブリッジ回路のバッファからの読出しを開始する。また、前段スイッチ(SW2)に対し、時分割多重するブリッジ回路出力に対する選択指示を出す。
上記の場合は、条件を満たす他のバッファ内のデータは1つであったが、複数の他のバッファ内のデータが条件を満たす場合には、例えば転送可能なバッファの種類より選択することも考えられる。例えば、バッファ容量の小さい第2のバッファを選択し、前段スイッチ(SW2)で多重することで、その転送データの後段の高速スイッチ(SW)における転送遅延を抑制できる。
前段スイッチ(SW2)で多重後、後段の高速スイッチ(SW)において、前段スイッチ(SW2)の出力と、残りのブリッジ回路出力(この例ではBRG D)のデータを時分割多重し、コントローラ間データ転送経路に転送する。
また実施例3は、ブリッジ回路の構成が実施例1(結合データの生成)、実施例2(第1と第2のバッファの利用)の組合せを前提に説明したが、それに限定されず、実施例1又は実施例2のみとの組合せであっても、高速スイッチ(SW)上の多重回数を抑制可能であり、実施例3と同様の効果を得ることができる。
(4)実施例4
図14は、本発明のストレージ装置の別の構成例である。図14では、図1の構成におけるコントローラ(1a、1b)に、更にコントローラ(1c、1d)を追加し、コントローラ間を専用データ転送経路であるCrossデータ転送経路で接続し、マルチコントローラ構成とした場合を示している。追加したコントローラに接続されるホストインターフェイス(Host I/F2、3)(2c、2d)、ドライブインターフェイス(Drv I/F2、3)(3c、3d)、キャッシュメモリ(Cache2、3)(4c、4d)は図1と同等であり、説明を省略する。またマイクロプロセッサ(MP0、1)(5a、5b)は、それぞれ2つのコントローラに接続され、接続されるコントローラに対する制御を行う。
次に、マルチコントローラ構成のストレージ装置200において行われるデータ転送について図15を用いて説明する。ホストからの転送データをキャッシュメモリに二重書きする処理、キャッシュメモリとドライブインターフェイス間のDrv転送処理、キャッシュメモリからホストインターフェイスへの転送であるHost転送処理、マイクロプロセッサとコントローラ間のMPアクセス処理については図4と同様であり説明を省略する。
図15は、マルチコントローラ構成に特有な転送例として、複数コントローラ経由でデータ転送を行う場合を示す。例えば、コントローラ0(CTL0)からコントローラ2(CTL2)を経由して、コントローラ3(CTL3)へデータを転送する場合を示す。更に、コントローラ0では、各データ転送経路からの転送データ(例えばデータ0−2)をそのまま単一のデータとして纏め、ヘッダを新たに付加することで結合データを構成する。そして単一データとして高速スイッチ(SW)、Cross0 データ転送経路経由でコントロー2に転送する。コントローラ2では結合データを元のデータに分離せずにそのまま高速スイッチを通過させDual 1 データ転送経路へ転送する。コントローラ3において、Dual 1 データ転送経路経由で転送された結合データは、デマルチプレクサ(以下、De‐MPX)により元のデータ(データ0-データ2)に分離され、高速スイッチ(SW)経由で転送先へ転送される。この例ではコントローラ間データ転送経路(Cross、Dual)、転送元のコントローラ0、経由するコントローラ2は結合データのまま高速スイッチを通過するので、多重度の増加、オーバーヘッドの抑制ができる。
各コントローラ内の構成は、図2の構成に加え、結合データの生成(マルチプレクサ:MPX)部、その分離処理(De-MPX部)が追加されるのみである。出力I/Oの中でCross、 Dual I/O入力と高速スイッチ(SW)間にDe-MPX部を備える。MPX部については図17にて説明する。
図15で説明した結合データのヘッダ構成について説明する。図16は、図14のストレージ装置100を構成するコントローラ1内、コントローラ1間のデータ転送のみに適用されるTLPフォーマットを示す。図は結合データに適し、更に複数のコントローラ間のデータ転送に最適化している。コマンド構成は図3と同様であるが、結合データの識別するフラグ、結合データとして纏めたデータ数(結合数)の情報を追加している。更にコンプリータID及びリクエスタIDには、転送元の識別情報として、MPXを追加する。転送先の識別情報について、結合データはスイッチ通過前にDe-MPXを介して元のデータに復元されるため、結合データの識別フラグのみで識別し、結合データに対する転送先の識別は不要となる。その他ヘッダ構成は図3と同様であり説明を省略する。
結合データの生成はデータを伴う転送、図16(a)のライトコマンド、(d)のリード応答に限定されず、(b)のライト応答、(c)のリードコマンドにも適用される。
次にMPX部を備えたコントローラの構成例について図17を用いて説明する。図17は図8と同様、プロセッサ、ホスト、ドライブの各転送経路(MP I/O、HOST I/O、Drv I/O)からの可変長転送パケットを高速スイッチ(SW)15において時分割多重し、Dual 転送経路へ転送する場合の構成例である。可変長パケット処理を行うブリッジ回路(BRG MP13a、BRG H13c、BRG D13e)、高速スイッチ(SW)15、アービタ16は図8の相当部と同一であり、説明を省略する。図17において、結合データの生成を制御するMPX部が新たに追加される。MPX部は、各ブリッジ回路からのバッファステータス(バッファ書き込み状態や、タイムアウト発生を示す)から、結合データ生成を判定する判定部と、結合データに付加するヘッダの生成部、各ブリッジ回路から転送されるデータを格納し、ヘッダ付加により結合データを構成する多重バッファから構成される。更に、MPXは、アービタ16に専用のリクエスト信号を出力し、高速スイッチ(SW)には専用データ転送経路で接続される。そして、結合データを高速スイッチ(SW)経由でDual データ転送経路に出力する。
結合データ生成判定部において、結合するデータ、つまりブリッジ回路出力の選択は、転送先が同一のコントローラであることが条件となる。図15の転送例のように、結合データのまま複数のコントローラを経由させることで、中継コントローラの高速スイッチで発生する転送オーバーヘッドを抑制する。また、ブリッジ回路は、MPX部の多重バッファに転送されたデータを保持していたバッファ(第1、第2のバッファ)に対するアービタ16へのリクエスト信号生成を禁止し、バッファを開放、受信データに対するバッファ書き込みを継続する。
MPX部に含まれるヘッダ生成部において、結合データの識別フラグ、結合数の情報を含むヘッダ情報が生成される。更に結合データのリクエスタIDとして転送元のコントローラ番号、転送元MPX番号、コンプリータIDとして転送先のコントローラ番号、図17ではBRG Dualが与えられる。
図17のMPX部で行われる結合データの生成処理について図18のフローチャートを用いて説明する。
あるコントローラのブリッジ回路内のバッファ(第1のバッファまたは第2のバッファ)がバッファ容量を満たす場合や、データバッファ開始時刻から一定時間経過しタイムアウトが発生する場合などで、バッファからの転送準備が完了する(S81)。MPX内の結合データ生成判定部は、同一コントローラ内の各ブリッジ回路からバッファステータス(バッファへの書き込み状態や、タイムアウトの発生状況)を受信し、集約して管理している。結合データ生成判定部は、あるバッファからの転送準備が完了に呼応して、同一コントローラ内のその他のブリッジ回路のバッファステータスを取得する(S82)。そして、バッファに格納するデータを選択する(S83)。判定方法については、図13のS33と同様であり、説明を省略する。
S83の判定条件が不成立の場合には、ブリッジ回路よりリクエスト信号を生成し、バッファからデータを読出し、高速スイッチ(SW)経由でDualデータ転送経路に出力する(S8b)。
S83の判定条件が成立の場合はS84に遷移し、S81及びS83の条件を満たす各ブリッジ回路より、ヘッダのみを取得する(S84)。更に結合データ生成判定部は取得したヘッダ情報により、結合する複数のデータに対し、転送先コントローラが一致するか否かを判定する(S85)。具体的には図3のヘッダを構成するコントローラ番号の一致を判定する。
S85の判定条件が不成立の場合はS8b以降の処理を行う。
S85の判定条件が成立の場合は、取得済みのヘッダ情報を基に、リクエスタIDとしてMPX部を示すファンクション番号と転送元コントローラ番号、コンプリータIDとして転送先コントローラ番号を与えることでヘッダ情報を生成、多重バッファへ書き込む(S86)。一方で各ブリッジ回路からS81及びS83からS85の判定条件が成立したデータを多重バッファへ書き込むことで結合データが構成される(S87)。結合データの生成終了後、ブリッジ回路はS81及びS83からS85の判定条件が成立し、多重バッファへの転送データを保持していたバッファに対するアービタ16へのリクエスト信号生成を禁止し、それらのバッファを開放、受信データの書き込みを継続する。
一方でMPX部は、アービタに対しリクエスト信号を生成、結合データの転送を要求する(S88)。アービタはリクエスト信号に呼応してアクナリッジ信号を生成し、MPX部は結合バッファから結合データを読出す。その後高速スイッチ(SW)上で結合データと他のブリッジ回路からのデータを時分割多重し、コントローラ間データ転送経路に転送する(S89)。
以上説明から、あるブリッジ回路からのデータ転送を行う際に、その時点で他のブリッジ回路のバッファステータスから、結合データを生成するバッファを選択、転送先が同一のコントローラであるデータを結合データとして纏めることで、転送元、更には経由コントローラに含まれる高速スイッチ上で、単位時間当たりの多重回数増加、つまりオーバーヘッドの発生を抑制でき、マルチコントローラ構成のストレージ装置における効率よいパケット転送が可能となる。
なおS81が発生するバッファを第2のバッファに限定して、他ブリッジ回路に受信したデータとの組合せで結合データを生成することに限定してもよい。またS83の判定対象となるバッファを第2のバッファに限定してもよい。この場合、転送長の短いデータ同士が結合データとして転送されることで転送元、更には経由コントローラ内の高速スイッチ(SW)における単位時間当たりの多重回数増加を更に抑制可能となる。第4の実施例は、第3の実施例の適用も考えられ、結合データに対し前段スイッチ(SW2)で結合するデータを選択し、後段の高速スイッチ(SW)を通過させることで、第3の実施例と同様の効果を得ることができる。
本発明が適用されるストレージ装置の構成図。 ストレージ装置を構成するコントローラの内部構成図。 コントローラ内、コントローラ間のデータ転送に用いられるパケットフォーマットの説明図。 ストレージ装置におけるデータ転送経路の説明図。 本発明第1の実施例におけるブリッジ回路構成及び、I/Oとのデータ転送に関わる構成要素の説明図。 本発明第1の実施例のデータ転送方法を説明するフローチャート。 本発明第1の実施例におけるブリッジ回路内の転送処理に対する説明図。 本発明第2の実施例におけるブリッジ回路構成及び、I/Oとのデータ転送に関わる構成要素の説明図。 本発明第2の実施例のデータ転送方法を説明するフローチャート。 本発明第2の実施例におけるブリッジ回路内の転送処理に対する説明図。 本発明第3の実施例における構成及び、I/Oとのデータ転送に関わる構成要素の説明図。 本発明第3の実施例のデータ転送方法を説明するフローチャート。 本発明第3の実施例における構成内の転送処理に対する説明図。 本発明が適用される第2のストレージ装置の構成図 第2のストレージ装置におけるデータ転送経路の説明図。 第2のストレージ装置におけるコントローラ内、コントローラ間のデータ転送に用いられるパケットフォーマットの説明図。 第2のストレージ装置を構成するコントローラ内のI/Oとのデータ転送に関わる構成要素の説明図。 第2のストレージ装置におけるデータ転送方法を説明するフローチャート。
符号の説明
1…コントローラ、2…ホストインターフェイス、3…ドライブインターフェイス、4…キャッシュ、5…マイクロプロセッサ、6…メモリコントローラハブ、7…プロセッサメモリ、8…LU、9…、10…DDRメモリインターフェイス回路(DDRI/F)、11…PCIインターフェイス回路(PCII/F)、12…メモリコントローラ、13…I/Oブリッジ回路、14…DMA回路、15…高速スイッチ、16…アービタ、17…コントロールレジスタ、100…ストレージ装置。

Claims (18)

  1. インターフェースを介して上位装置及び、記憶デバイスと接続し、第1のデータ転送経路により互いに接続する複数のコントローラと、
    前記複数のコントローラをそれぞれ制御する複数のプロセッサと、
    前記コントローラが、前記上位装置、前記記憶デバイス、前記複数のプロセッサとの間でデータ転送を行うための第2のデータ転送経路と、を備え、
    前記コントローラは、
    前記第1のデータ転送経路と前記第2のデータ転送経路へデータ転送を行うデータ処理部、を備え
    前記データ処理部は、
    データを構成する第1のヘッダ情報を検出するヘッダ検出部と、
    複数のデータから結合データを生成するデータを選択する選択部と、
    前記結合データの第2のヘッダ情報を生成するヘッダ生成部と、
    前記選択されたデータと前記第2のヘッダ情報により結合データを生成する結合データ生成手段とを備え、
    前記選択部は、前記複数のデータの転送先アドレスが連続し、データ転送経路が同一のデータを選択する、
    ストレージ装置。
  2. 請求項1に記載のストレージ装置であって、
    前記選択部は、前記複数のデータの転送先アドレスが連続し、データ転送経路が同一であり、さらに前記複数のデータの転送長が第1の閾値以下のデータを選択する、
    ストレージ装置。
  3. 請求項2に記載のストレージ装置であって、
    前記結合データ生成部は、前記選択されたデータの受信された順番に基づいて前記結合データを生成する、
    ストレージ装置。
  4. 請求項3に記載のストレージ装置であって、
    前記ヘッダ生成部では、前記選択されたデータのうちで結合データの先頭のデータのアドレス情報を前記第2のヘッダ情報のアドレス情報とし、前記選択されたデータの転送長の合計を前記第2のヘッダ情報の転送長とする、
    ストレージ装置。
  5. 請求項1に記載のストレージ装置であって、
    前記データ処理部は、さらに、
    第1のバッファ容量に達した場合又は第1のタイムアウト値に達した場合にデータ転送を開始する第1のバッファと、
    第2のバッファ容量に達した場合又は第2のタイムアウト値に達した場合にデータ転送を開始する第2のバッファと、
    第2の閾値より大きい転送長のデータを前記第1のバッファに格納し、前記第2の閾値以下の転送長のデータを前記第2のバッファに格納するデータ格納部と、を有し、
    前記複数のデータとは、前記第2のバッファに格納されたデータである、
    ストレージ装置。
  6. 請求項5に記載のストレージ装置であって、
    (前記第1のバッファ容量)>(前記第2のバッファ容量)の関係である
    ストレージ装置。
  7. 請求項5記載のストレージ装置であって、
    (前記第1のタイムアウト値)>(前記第2のタイムアウト値)の関係である
    ストレージ装置。
  8. 請求項1に記載のストレージ装置であって、
    前記データ処理部を複数有し、さらに、
    前記複数のデータ処理部と接続する前段スイッチと、
    前段スイッチと、前記複数のデータ処理部とを接続する後段スイッチとを備え、
    前記前段スイッチにおいて前記複数のデータ処理部から転送される第1のデータを多重することで第1の多重データを生成し、前記後段スイッチにおいて前記複数のデータ処理部から転送される第2のデータと、前記第1の多重データにより、第2の多重データを生成する多重化制御部と、を有する、
    ストレージ装置。
  9. 請求項8に記載のストレージ装置であって、
    前記多重化制御部は、前記第1のデータの前記前段スイッチに対するリクエスト信号を基に、第1の多重リクエスト信号を生成し、前記第1の多重リクエスト信号を前記第1の多重データの前記後段スイッチに対するリクエスト信号とする、
    ストレージ装置。
  10. インターフェースを介して上位装置及び、記憶デバイスと接続し、第1のデータ転送経路により互いに接続しデータ処理部を有する複数のコントローラと、前記複数のコントローラをそれぞれ制御する複数のプロセッサと、前記コントローラが前記上位装置、前記記憶デバイス、前記複数のプロセッサとの間でデータ転送を行うための第2のデータ転送経路と、を備えるストレージ装置のデータ転送方法であって、
    前記データ処理部は、
    データを構成する第1のヘッダ情報を検出し、
    複数のデータから結合データを生成するデータを選択し、
    前記結合データの第2のヘッダ情報を生成し、
    前記選択されたデータと前記第2のヘッダ情報により結合データを生成し、
    前記第1のデータ転送経路又は前記第2のデータ転送経路へ前記結合データを転送し、
    前記複数のデータから前記結合データを生成するデータを選択する際、前記複数のデータの転送先アドレスが連続し、データ転送経路が同一のデータを選択する、
    データ転送方法。
  11. 請求項10に記載のデータ転送方法であって、
    前記複数のデータから前記結合データを生成するデータを選択する際、前記複数のデータの転送先アドレスが連続し、データ転送経路が同一であり、さらに前記複数のデータの転送長が第1の閾値以下のデータを選択する、
    データ転送方法。
  12. 請求項11に記載のデータ転送方法であって、
    前記選択されたデータと前記第2のヘッダ情報により前記結合データを生成する際、前記選択されたデータの受信された順番に基づいて前記結合データを生成する、
    データ転送方法。
  13. 請求項12に記載のデータ転送方法であって、
    前記結合データの前記第2のヘッダ情報を生成する際、前記選択されたデータのうちで前記結合データの先頭のデータのアドレス情報を前記第2のヘッダ情報のアドレス情報とし、前記選択されたデータの転送長の合計を前記第2のヘッダ情報の転送長とする、
    データ転送方法。
  14. 請求項10に記載のデータ転送方法であって、
    前記データ処理部は、第1のバッファ容量に達した場合又は第1のタイムアウト値に達した場合にデータ転送を開始する第1のバッファと、第2のバッファ容量に達した場合又は第2のタイムアウト値に達した場合にデータ転送を開始する第2のバッファとを備え、
    第2の閾値より大きい転送長のデータを前記第1のバッファに格納し、
    前記第2の閾値以下の転送長のデータを前記第2のバッファに格納し、
    前記複数のデータとは、前記第2のバッファに格納されたデータである、
    データ転送方法。
  15. 請求項14に記載のデータ転送方法であって、
    (前記第1のバッファ容量)>(前記第2のバッファ容量)の関係である
    データ転送方法
  16. 請求項14記載のデータ転送方法であって、
    (前記第1のタイムアウト値)>(前記第2のタイムアウト値)の関係である
    データ転送方法
  17. 請求項10に記載のデータ転送方法であって、
    前記コントローラは、前記データ処理部を複数備え、さらに、前記複数のデータ処理部と接続する前段スイッチと、前段スイッチと、前記複数のデータ処理部とを接続する後段スイッチとを備え、
    前記前段スイッチにおいて前記複数のデータ処理部から転送される第1のデータを多重することで第1の多重データを生成し、
    前記後段スイッチにおいて前記複数のデータ処理部から転送される第2のデータと、前記第1の多重データにより、第2の多重データを生成する、
    データ転送方法。
  18. 請求項17に記載のデータ転送方法であって、
    前記第1のデータの前記前段スイッチに対するリクエスト信号を基に、第1の多重リクエスト信号を生成し、
    前記第1の多重リクエスト信号を前記第1の多重データの前記後段スイッチ手段に対するリクエスト信号として後段スイッチに送信する、
    データ転送方法。
JP2008191623A 2008-07-25 2008-07-25 ストレージ装置及びデータ転送方法 Pending JP2010033125A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008191623A JP2010033125A (ja) 2008-07-25 2008-07-25 ストレージ装置及びデータ転送方法
US12/206,908 US8352663B2 (en) 2008-07-25 2008-09-09 Data storage apparatus and method of data transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008191623A JP2010033125A (ja) 2008-07-25 2008-07-25 ストレージ装置及びデータ転送方法

Publications (1)

Publication Number Publication Date
JP2010033125A true JP2010033125A (ja) 2010-02-12

Family

ID=41569629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008191623A Pending JP2010033125A (ja) 2008-07-25 2008-07-25 ストレージ装置及びデータ転送方法

Country Status (2)

Country Link
US (1) US8352663B2 (ja)
JP (1) JP2010033125A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011221945A (ja) * 2010-04-14 2011-11-04 Hitachi Ltd データ転送装置、計算機システム及びメモリコピー装置
JP2013513137A (ja) * 2010-05-13 2013-04-18 株式会社日立製作所 情報処理装置、及びデータの転送方法
WO2013171789A1 (en) 2012-05-16 2013-11-21 Hitachi, Ltd. Storage system and method of controlling data transfer in storage system
US8700866B2 (en) 2009-09-14 2014-04-15 Ricoh Company, Limited Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
JP2017037500A (ja) * 2015-08-11 2017-02-16 富士通株式会社 ストレージ制御装置
US9710196B2 (en) 2014-02-20 2017-07-18 Fujitsu Limited Method of storing data, storage system, and storage apparatus
JP2020092320A (ja) * 2018-12-05 2020-06-11 株式会社ソニー・インタラクティブエンタテインメント 信号処理装置、電子機器、信号処理方法およびプログラム
US10838655B2 (en) 2017-09-20 2020-11-17 Toshiba Memory Corporation Memory system including multiple memories connected in series

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380922B1 (en) 2010-06-25 2013-02-19 Western Digital Technologies, Inc. Data storage device comprising host interface state machine blocking on target logical block address
US8918797B2 (en) 2011-06-10 2014-12-23 International Business Machines Corporation Processing operator message commands
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US8799522B2 (en) 2011-06-10 2014-08-05 International Business Machines Corporation Executing a start operator message command
US8689240B2 (en) * 2011-06-10 2014-04-01 International Business Machines Corporation Transmitting operator message commands to a coupling facility
US8560737B2 (en) 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
TW201324168A (zh) * 2011-12-05 2013-06-16 Asix Electronics Corp 高效率傳輸機制之通用序列匯流排裝置
CN104080503B (zh) * 2011-12-27 2017-07-18 皇家飞利浦有限公司 呼吸递送的补偿
JP6186787B2 (ja) * 2013-03-25 2017-08-30 富士通株式会社 データ転送装置、データ転送システム、データ転送方法及びプログラム
US10505858B2 (en) * 2016-10-27 2019-12-10 Hewlett Packard Enterprise Development Lp Fabric back pressure timeout transmitting device
US11712176B2 (en) 2018-01-08 2023-08-01 Covidien, LP Systems and methods for video-based non-contact tidal volume monitoring
JP2021043801A (ja) 2019-09-12 2021-03-18 株式会社東芝 電子機器、電子機器システム、及び磁気ディスク装置
US11704234B2 (en) * 2020-04-28 2023-07-18 Silicon Motion, Inc. Method for accessing flash memory module and associated package
US11816110B2 (en) * 2021-06-22 2023-11-14 International Business Machines Corporation Processing large query results in a database accelerator environment

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271463A (ja) * 1997-03-25 1998-10-09 Sony Corp データ多重化装置およびその方法
JPH10333836A (ja) * 1997-05-29 1998-12-18 Hitachi Ltd ディスクアレイ制御装置
JP2002222162A (ja) * 2000-11-22 2002-08-09 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法、データ転送プログラム及びデータ転送プログラムが記録されたコンピュータ読み取り可能な記録媒体
US20030005103A1 (en) * 1998-06-15 2003-01-02 Narad Charles E. Cumulative status of arithmetic operations
US20030123390A1 (en) * 2001-12-28 2003-07-03 Hitachi, Ltd. Leaky bucket type traffic shaper and bandwidth controller
JP2004070973A (ja) * 2003-09-22 2004-03-04 Fujitsu Ltd ファイルシステム制御方法およびプログラム記憶媒体
JP2006302274A (ja) * 2005-04-20 2006-11-02 Hewlett-Packard Development Co Lp ストレージシステムにおけるデータの移動
JP2007018312A (ja) * 2005-07-08 2007-01-25 Hitachi Ltd ディスクアレイ装置及びその制御方法
JP2007304883A (ja) * 2006-05-11 2007-11-22 Fuji Xerox Co Ltd コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
JP2001119412A (ja) 1997-02-14 2001-04-27 Hitachi Ltd パケット交換装置及びそのパケット交換処理方法
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
JP3545906B2 (ja) * 1997-05-29 2004-07-21 富士通株式会社 ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体
US5968158A (en) * 1997-10-06 1999-10-19 International Business Machines Corporation Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor
US6862320B1 (en) * 1997-10-23 2005-03-01 Mitsubishi Denki Kabushiki Kaisha Image decoder, image encoder, image communication system, and encoded bit stream converter
AU5877799A (en) * 1998-09-18 2000-04-10 Pixelfusion Limited Apparatus for use in a computer system
US6381647B1 (en) * 1998-09-28 2002-04-30 Raytheon Company Method and system for scheduling network communication
CA2255418C (en) * 1998-12-07 2003-01-21 Pmc-Sierra Ltd. Ring interface and ring network bus flow control system
US6370605B1 (en) * 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
US6915359B2 (en) * 2000-11-22 2005-07-05 Matsushita Electric Industrial Co., Ltd. Data transfer device, data transfer method, data transfer program and computer readable storage medium thereof
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
US6839892B2 (en) * 2001-07-12 2005-01-04 International Business Machines Corporation Operating system debugger extensions for hypervisor debugging
US7428485B2 (en) * 2001-08-24 2008-09-23 International Business Machines Corporation System for yielding to a processor
US7047320B2 (en) * 2003-01-09 2006-05-16 International Business Machines Corporation Data processing system providing hardware acceleration of input/output (I/O) communication
US7474612B1 (en) * 2003-03-20 2009-01-06 Pmc- Sierra, Inc. Multi-function bypass port and port bypass circuit
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
JP4090400B2 (ja) 2003-07-24 2008-05-28 株式会社日立製作所 ストレージシステム
US7206866B2 (en) * 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
US7254652B2 (en) * 2003-09-30 2007-08-07 International Business Machines Corporation Autonomic configuration of port speeds of components connected to an interconnection cable
US7234037B2 (en) * 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
JP2006012371A (ja) * 2004-05-25 2006-01-12 Konica Minolta Opto Inc 対物光学素子及び光ピックアップ装置
US7929442B2 (en) * 2004-06-30 2011-04-19 Intel Corporation Method, system, and program for managing congestion in a network controller
US7472208B2 (en) * 2004-10-12 2008-12-30 Intel Corporation Bus communication emulation
US7685335B2 (en) * 2005-02-25 2010-03-23 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US20060195663A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7478219B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Retrieving event data for logical partitions
US7538578B2 (en) * 2005-04-18 2009-05-26 Altera Corporation Multiple data rates in programmable logic device serial interface
US7773597B2 (en) * 2005-04-20 2010-08-10 Cisco Technology, Inc. Method and system for dynamic stashing for cryptographic operations using beginning packet information
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US7743197B2 (en) * 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
US8718065B2 (en) * 2006-08-15 2014-05-06 Broadcom Corporation Transmission using multiple physical interface
JP5029053B2 (ja) * 2007-02-15 2012-09-19 富士ゼロックス株式会社 データ通信システム及びデータ通信プログラム
US8838856B2 (en) * 2007-02-16 2014-09-16 Emulex Corporation Virtual universal asynchronous receiver transmitter for server systems
US8127300B2 (en) * 2007-08-28 2012-02-28 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks
US8095733B2 (en) * 2009-04-07 2012-01-10 International Business Machines Corporation Virtual barrier synchronization cache castout election

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271463A (ja) * 1997-03-25 1998-10-09 Sony Corp データ多重化装置およびその方法
JPH10333836A (ja) * 1997-05-29 1998-12-18 Hitachi Ltd ディスクアレイ制御装置
US20030005103A1 (en) * 1998-06-15 2003-01-02 Narad Charles E. Cumulative status of arithmetic operations
JP2002222162A (ja) * 2000-11-22 2002-08-09 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法、データ転送プログラム及びデータ転送プログラムが記録されたコンピュータ読み取り可能な記録媒体
US20030123390A1 (en) * 2001-12-28 2003-07-03 Hitachi, Ltd. Leaky bucket type traffic shaper and bandwidth controller
JP2003198611A (ja) * 2001-12-28 2003-07-11 Hitachi Ltd トラヒックシェーパーおよび帯域制御装置
JP2004070973A (ja) * 2003-09-22 2004-03-04 Fujitsu Ltd ファイルシステム制御方法およびプログラム記憶媒体
JP2006302274A (ja) * 2005-04-20 2006-11-02 Hewlett-Packard Development Co Lp ストレージシステムにおけるデータの移動
JP2007018312A (ja) * 2005-07-08 2007-01-25 Hitachi Ltd ディスクアレイ装置及びその制御方法
JP2007304883A (ja) * 2006-05-11 2007-11-22 Fuji Xerox Co Ltd コマンドキューイング制御装置、コマンドキューイングプログラム及びストレージシステム

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700866B2 (en) 2009-09-14 2014-04-15 Ricoh Company, Limited Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
JP2011221945A (ja) * 2010-04-14 2011-11-04 Hitachi Ltd データ転送装置、計算機システム及びメモリコピー装置
JP2013513137A (ja) * 2010-05-13 2013-04-18 株式会社日立製作所 情報処理装置、及びデータの転送方法
WO2013171789A1 (en) 2012-05-16 2013-11-21 Hitachi, Ltd. Storage system and method of controlling data transfer in storage system
US9075729B2 (en) 2012-05-16 2015-07-07 Hitachi, Ltd. Storage system and method of controlling data transfer in storage system
US9710196B2 (en) 2014-02-20 2017-07-18 Fujitsu Limited Method of storing data, storage system, and storage apparatus
JP2017037500A (ja) * 2015-08-11 2017-02-16 富士通株式会社 ストレージ制御装置
US11334286B2 (en) 2017-09-20 2022-05-17 Kioxia Corporation Memory system including multiple memories connected in series
US10838655B2 (en) 2017-09-20 2020-11-17 Toshiba Memory Corporation Memory system including multiple memories connected in series
WO2020116416A1 (ja) * 2018-12-05 2020-06-11 株式会社ソニー・インタラクティブエンタテインメント 信号処理装置、電子機器、信号処理方法およびプログラム
KR20210083305A (ko) * 2018-12-05 2021-07-06 주식회사 소니 인터랙티브 엔터테인먼트 신호 처리 장치, 전자 기기, 신호 처리 방법 및 프로그램
US20220030188A1 (en) * 2018-12-05 2022-01-27 Sony Interactive Entertainment Inc. Signal processing device, electronic device, signal processing method, and program
JP2020092320A (ja) * 2018-12-05 2020-06-11 株式会社ソニー・インタラクティブエンタテインメント 信号処理装置、電子機器、信号処理方法およびプログラム
JP7175730B2 (ja) 2018-12-05 2022-11-21 株式会社ソニー・インタラクティブエンタテインメント 信号処理装置、電子機器、センサ装置、信号処理方法およびプログラム
US11553152B2 (en) * 2018-12-05 2023-01-10 Sony Interactive Entertainment Inc. Signal processing device, electronic device, signal processing method, and program
KR102577925B1 (ko) * 2018-12-05 2023-09-14 주식회사 소니 인터랙티브 엔터테인먼트 신호 처리 장치, 전자 기기, 신호 처리 방법 및 프로그램

Also Published As

Publication number Publication date
US20100023655A1 (en) 2010-01-28
US8352663B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
JP2010033125A (ja) ストレージ装置及びデータ転送方法
EP2472403B1 (en) Memory arbitration system and method having an arbitration packet protocol
TWI399649B (zh) 用於提供不確定讀取資料等待時間之方法、集線器裝置、記憶體控制器及記憶體系統
EP1738267B1 (en) System and method for organizing data transfers with memory hub memory modules
US7769921B2 (en) Storage apparatus and data transfer method
US8417900B1 (en) Power save module for storage controllers
TWI579688B (zh) 磁碟陣列資料儲存系統
US7047388B2 (en) Control method for storage device controller system, and storage device controller system
CN104704569A (zh) Nvram路径选择
US8494010B2 (en) Data transfer device, data transmitting device, data receiving device, and data transfer method
JP2014017006A (ja) PCIExpressでのIDベースストリームを可能にする方法及び装置
JP2007524917A (ja) メモリ装置との間のデータ流に選択的に影響を与えるためのシステムおよび方法
JP4305378B2 (ja) データ処理システム、アクセス制御方法、その装置およびそのプログラム
JP2009075753A (ja) データ転送装置,情報処理システム,データ転送プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
CN114721983A (zh) 一种ddr4加速读写装置
KR20130047680A (ko) 비대칭 데이터 소스 간의 비동기 데이터 시프트 및 백업
KR101491687B1 (ko) 버퍼 용량의 사용이 개선된 대량 저장 시스템
JPH086736A (ja) ディスク記憶装置
US20080104286A1 (en) Data transfer apparatus and data transfer method
US20200310681A1 (en) Memory controller, memory system, and information processing system
JP6951016B2 (ja) 切り替え回路、管理システム、情報処理装置及びアクセス頻度の切り替え方法
US20060155895A1 (en) Data transferring apparatus and data transferring method
JP2000293415A (ja) 記憶装置
JP2008009804A (ja) 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、記録媒体
JP2005092489A (ja) データ転送回路及び電子機器

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100316

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130730

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载