JP6114767B2 - ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム - Google Patents
ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム Download PDFInfo
- Publication number
- JP6114767B2 JP6114767B2 JP2015014713A JP2015014713A JP6114767B2 JP 6114767 B2 JP6114767 B2 JP 6114767B2 JP 2015014713 A JP2015014713 A JP 2015014713A JP 2015014713 A JP2015014713 A JP 2015014713A JP 6114767 B2 JP6114767 B2 JP 6114767B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer information
- controller
- command
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
図1は、本発明の実施形態に係るブリッジ装置を示す。
図 2は、図1に示したブリッジ装置を搭載したストレージ装置の一実施形態を示す。
図 3は、本発明の第3の実施形態に係るブリッジ装置を示す。
図 11は、受信モードにおいて例外事象が発生し、非定常状態に陥った場合に行う動作手順を表すフローチャートである。
DMA転送を空転させる手段としては、例えば、コントローラ(通信コントローラまたはメモリコントローラ)からデータバッファ16へのバスアクセスを成功させつつ、実際にはデータバッファ16へのデータ入出力を行わない、といった方法がある。なお、これは一例であり、この動作に限定されない。たとえば、データバッファ16へデータ(無関係なデータ)の入出力を行っても動作上、問題は生じない。
これまで、転送情報記憶部12には、転送対象のファイル全体の転送を完遂できる転送情報エントリが、 CPU102あるいは MPUによって用意された上で、転送を開始する流れについて述べてきた。
CPU102あるいは MPUは、転送対象のファイル全体ではなく、一部についての転送情報エントリの作成が終わった時点で、データ転送を開始させる。データ転送を行わせつつ、残りの転送情報エントリを作成する。転送情報エントリを作成するごとに、それぞれ転送情報記憶部12へ追記していく。
図13は、本発明の第6の実施形態に係るブリッジ装置を示す。
Claims (18)
- データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジするブリッジ装置であって、
前記データ記憶装置の読み出しアドレスを指定した複数の第1転送情報を外部装置から順次受信する、前記データ記憶装置において1つのファイルが複数のデータブロックとして複数の領域に分散して配置され、各第1転送情報は各データブロックの読み出しアドレスを指定する、受信部と、
前記受信部で順次受信され前記第1転送情報を記憶する転送情報記憶部と、
前記転送情報記憶部から読み出した各第1転送情報に基づき、前記データ記憶装置の前記読み出しアドレスからデータの読み出しを指示する第1コマンドを生成し、前記第1コマンドを前記第1コントローラに出力する第1処理部と、
前記第1コントローラによって前記記憶装置の前記読み出しアドレスから読み出されたデータを保持するデータバッファと、
前記第2コントローラに、前記データバッファに保持されたデータの読み出しを指示する第2コマンドを生成し、前記第2コマンドを前記第2コントローラに出力する第2処理部と、
フラグを記憶するためのレジスタとを備え、
前記レジスタに前記フラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始する
ブリッジ装置。 - データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジするブリッジ装置であって、
前記データ記憶装置の書き込みアドレスを指定した複数の第1転送情報を外部装置から順次受信し、前記複数の第1転送情報は、前記データ記憶装置において1つのファイルを複数のデータブロックとして複数の領域に分散して配置するように各データブロックの書き込みアドレスを指定する、受信部と、
前記受信部で順次受信される前記第1転送情報を記憶する転送情報記憶部と、
前記転送情報記憶部から読み出した各第1転送情報に基づき、データバッファへ前記データの書き込みを指示する第1コマンドを前記第2コントローラに出力する第1処理部と、
前記第2コントローラから出力されるデータを受けて保持する前記データバッファと、 前記第1コントローラに、前記データバッファに保持されたデータを前記データ記憶装置の前記書き込みアドレスに書き込むことを指示する第2コマンドを出力する第2処理部とを備え、
フラグを記憶するためのレジスタとを備え、
前記レジスタに前記フラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始する
ブリッジ装置。 - 前記第2コントローラからの読み出し要求に応じて、前記データバッファに保持されたデータを前記第2コントローラに出力する出力部
をさらに備えた請求項1に記載のブリッジ装置。 - 前記転送情報記憶部は、前記複数の第1転送情報を、受信順序に応じた優先度を付与して記憶し、
前記記憶部において優先度の高い前記第1転送情報から順番に、前記第1コマンドを生成して、前記第1コントローラに出力する
請求項1または3に記載のブリッジ装置。 - 前記第1転送情報は、前記データバッファの書き込みアドレスをさらに指定し、
前記データバッファは、前記第1コントローラによって読み出された前記データを前記書き込みアドレスに保持し、
前記第2処理部は、前記書き込みアドレスから前記データの読み出しを指示する前記第2コマンドを生成する
請求項1、3〜4のいずれか一項に記載のブリッジ装置。 - 複数の第2コントローラのそれぞれの制御手順を記憶する制御手順記憶部をさらに備え、
前記第2処理部は、前記複数の第2コントローラのうち使用する第2コントローラの制御手順にしたがって、前記第2コマンドを生成する
請求項1、3〜5のいずれか一項に記載のブリッジ装置。 - 複数の第1コントローラのそれぞれの制御手順を記憶する制御手順記憶部をさらに備え、
前記第1処理部は、前記複数の第1コントローラのうち使用する第1コントローラの制御手順にしたがって、前記第1コマンドを生成する
請求項1、3〜5のいずれか一項に記載のブリッジ装置。 - 前記データバッファをN個(Nは2以上の整数)備え、
前記転送情報記憶部は、前記複数の第1転送情報を、受信順序に応じた優先度を付与して記憶し、
前記N個のデータバッファ間にあらかじめ順位が設定されており、
前記第1処理部は、前記転送情報記憶部において優先度の最も高いN個の第1転送情報に基づき、前記N個の第1転送情報間での優先度の順位と同じ順位のデータバッファに、読み出しデータを書き込むことを指示する第1コマンドを生成し、前記第1コマンドを前記第1コントローラに送り、
前記N個のデータバッファは、前記第1コントローラから振り分けられるデータをそれぞれ保持し、
前記第2処理部は、前記N個のデータバッファに書き込まれたデータの読み出しを指示する第2コマンドをそれぞれ生成して、前記第2コントローラに送り、
前記N個のデータバッファからそれぞれ読み出されたデータに、前記N個のデータバッファ間でのそれぞれの順位を表す識別情報を付与して、前記第2コントローラに出力する
請求項1、3〜7のいずれか一項に記載のブリッジ装置。 - 前記第1転送情報は、前記データバッファの書き込みアドレスをさらに指定し、
前記第1処理部は、前記データバッファの前記書き込みアドレスへ前記データを書き込むことを指示する前記第1コマンドを生成し、
前記第2処理部は、前記データバッファの前記書き込みアドレスからデータを読み出すことを指示する前記第2コマンドを生成する
請求項2に記載のブリッジ装置。 - 前記外部装置への通知手段を備え、
前記第2コントローラに備えられたDMAコントローラからデータがDMA転送され、 前記第1処理部は、前記DMAコントローラからのデータ受信において、あらかじめ定めた例外事象が発生した場合は、前記DMA転送が完了した後、前記外部装置に前記例外事象の発生を通知する
請求項2または9に記載のブリッジ装置。 - パケット処理部をさらに備え、
前記DMAコントローラから転送されるデータはパケットにより運ばれ、
前記パケット処理部は、前記パケットのヘッダを解析することにより、前記例外事象が発生したかを検出する、
請求項10に記載のブリッジ装置。 - N(Nは2以上の整数)個のデータバッファを備え、
前記転送情報記憶部は、複数の第1転送情報を、受信順序に応じた優先度を付与して記憶し、
前記N個のデータバッファ間にあらかじめ順位が設定されており、
前記第1処理部は、前記転送情報記憶部において優先度の最も高いN個の第1転送情報に基づき、前記N個の第1転送情報間での優先度の順位と同じ順位のデータバッファに、データを書き込むことを指示する前記第1コマンドを生成し、前記第1コマンドを前記第2コントローラに出力し、
前記N個のデータバッファは、前記第2コントローラから入力されるデータを保持し、 前記第2処理部は、前記N個のデータバッファに書き込まれたデータを、前記N個のデータバッファのそれぞれ同じ順位の第1転送情報に指定される書き込みアドレスに書き込むことを指示する第2コマンドを生成し、前記第2コマンドを前記第1コントローラに出力する
請求項2、9〜11のいずれか一項に記載のブリッジ装置。 - 前記転送情報記憶部に記憶されている前記第1転送情報の個数が閾値を下回ったかを判断し、前記個数が前記下回った場合に、前記外部装置に前記転送情報の追加を要求する
請求項1ないし12のいずれか一項に記載のブリッジ装置。 - 請求項1または2に記載のブリッジ装置と、
前記第1コントローラと、
前記第2コントローラと、
前記データ記憶装置と、
前記外部装置としてのCPUまたはMPUと
を備えたストレージ装置。 - データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジするためのプログラムであって、
前記データ記憶装置の読み出しアドレスを指定した複数の第1転送情報を外部装置から順次受信し、前記データ記憶装置において1つのファイルが複数のデータブロックとして複数の領域に分散して配置され、各第1転送情報は各データブロックの読み出しアドレスを指定する、ステップと、
順次受信される前記第1転送情報を転送情報記憶部に格納するステップと、
前記転送情報記憶部から各第1転送情報を読み出すステップと、
読み出した第1転送情報に基づき、前記データ記憶装置の前記読み出しアドレスからデータの読み出しを指示する第1コマンドを生成し、前記第1コマンドを、前記データ記憶装置にアクセスする前記第1コントローラに出力するステップと、
前記第1コントローラによって前記データ記憶装置の前記読み出しアドレスから読み出されたデータが、データバッファに保持されたことを検出するステップと、
前記データバッファに保持されたデータの読み出しを指示する第2コマンドを生成し、前記第2コマンドを前記第2コントローラに出力するステップと、
レジスタにフラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始するステップと
をコンピュータに実行させるためのプログラム。 - データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジするためのプログラムであって、
前記データ記憶装置の書き込みアドレスを指定した複数の第1転送情報を外部装置から順次受信し、前記複数の第1転送情報は、前記データ記憶装置において1つのファイルを複数のデータブロックとして複数の領域に分散して配置するように各データブロックの書き込みアドレスを指定する、受信ステップと
順次受信される前記第1転送情報を転送情報記憶部に格納するステップと、
前記転送情報記憶部から各第1転送情報を読み出すステップと、
読み出した前記第1転送情報に基づき、前記データの書き込みをデータバッファへ行うことを指示する第1コマンドを生成し、前記第1コマンドを、前記第2コントローラに出力する第1処理ステップと、
前記第2コントローラから出力されるデータがデータバッファに保持されたことを検出するステップと、
前記データバッファに保持されたデータを前記データ記憶装置の前記書き込みアドレスに書き込むことを指示する第2コマンドを生成し、前記第2コマンドを前記第1コントローラに出力する第2処理ステップと、
レジスタにフラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始するステップと
をコンピュータに実行させるためのプログラム。 - データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジする方法であって、
前記データ記憶装置の読み出しアドレスを指定した複数の第1転送情報を外部装置から順次受信し、前記データ記憶装置において1つのファイルが複数のデータブロックとして複数の領域に分散して配置され、各第1転送情報は各データブロックの読み出しアドレスを指定する、ステップと、
順次受信される前記第1転送情報を転送情報記憶部に記憶するステップと、
前記転送情報記憶部から読み出した各第1転送情報に基づき、前記データ記憶装置の前記読み出しアドレスからデータの読み出しを指示する第1コマンドを生成し、前記第1コマンドを前記第1コントローラに出力するステップと、
前記第1コントローラによって前記記憶装置の前記読み出しアドレスから読み出されたデータをデータバッファに保持するステップと、
前記第2コントローラに、前記データバッファに保持されたデータの読み出しを指示する第2コマンドを生成し、前記第2コマンドを前記第2コントローラに出力するステップと、
レジスタにフラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始するステップと
を備えた方法。 - データ記憶装置へアクセスする第1コントローラと、第2コントローラとの間のデータ転送をブリッジする方法であって、
前記データ記憶装置の書き込みアドレスを指定した複数の第1転送情報を外部装置か順次受信し、前記複数の第1転送情報は、前記データ記憶装置において1つのファイルを複数のデータブロックとして複数の領域に分散して配置するように各データブロックの書き込みアドレスを指定する、受信ステップと
順次受信される前記第1転送情報を転送情報記憶部に格納するステップと、
前記転送情報記憶部から各第1転送情報を読み出すステップと、
読み出した前記第1転送情報に基づき、前記データの書き込みをデータバッファへ行うことを指示する第1コマンドを生成し、前記第1コマンドを、前記第2コントローラに出力する第1処理ステップと、
前記第2コントローラから出力されるデータをデータバッファに保持するステップと、 前記データバッファに保持されたデータを前記データ記憶装置の前記書き込みアドレスに書き込むことを指示する第2コマンドを生成し、前記第2コマンドを前記第1コントローラに出力する第2処理ステップと、
レジスタにフラグが設定されているかを検査し、前記フラグが設定されている場合は、前記転送情報記憶部に前記複数の第1転送情報のすべてが記憶される前であっても、前記第1転送情報の読み出しを開始するステップと
を備えた方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015014713A JP6114767B2 (ja) | 2015-01-28 | 2015-01-28 | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015014713A JP6114767B2 (ja) | 2015-01-28 | 2015-01-28 | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012148596A Division JP2014010759A (ja) | 2012-07-02 | 2012-07-02 | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015099606A JP2015099606A (ja) | 2015-05-28 |
JP6114767B2 true JP6114767B2 (ja) | 2017-04-12 |
Family
ID=53376130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015014713A Expired - Fee Related JP6114767B2 (ja) | 2015-01-28 | 2015-01-28 | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6114767B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259326A (ja) * | 2001-02-27 | 2002-09-13 | Canon Inc | Dmaコントローラ及びdma転送方法 |
JP4328581B2 (ja) * | 2003-08-22 | 2009-09-09 | 富士通株式会社 | モジュール間データ転送確認機能を有する装置並びにストレージ制御装置および同装置用インターフェイスモジュール |
JP4397770B2 (ja) * | 2004-09-17 | 2010-01-13 | 富士通株式会社 | 記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラム |
WO2012070319A1 (ja) * | 2010-11-25 | 2012-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 |
-
2015
- 2015-01-28 JP JP2015014713A patent/JP6114767B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015099606A (ja) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838665B2 (en) | Method, device, and system for buffering data for read/write commands in NVME over fabric architecture | |
US10412017B2 (en) | Transfer device, transfer method, and computer program product | |
US20190163364A1 (en) | System and method for tcp offload for nvme over tcp-ip | |
KR100869675B1 (ko) | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 | |
JP2014010759A (ja) | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム | |
US20150006766A1 (en) | Hardware-Assisted DMA Transfer with Dependency | |
WO2020000482A1 (zh) | 一种基于NVMe的数据读取方法、装置及系统 | |
WO2008065045A2 (en) | Dmac to handle transfers of unknown lengths data | |
US8918560B2 (en) | Controller for storage device and method for controlling storage device | |
US20130060963A1 (en) | Facilitating routing by selectively aggregating contiguous data units | |
JP2008009803A (ja) | 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 | |
JP2003288317A (ja) | 端数ブロックデータ転送を検出し補償するシステムおよび方法 | |
US10733127B2 (en) | Data transmission apparatus and data transmission method | |
US20130238881A1 (en) | Data transmission device, data transmission method, and computer program product | |
JP6114767B2 (ja) | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム | |
JP5989818B2 (ja) | ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム | |
US20150242160A1 (en) | Memory system, control method of memory system, and controller | |
WO2013062109A1 (ja) | I/oデバイス制御システムおよびi/oデバイス制御方法 | |
KR20020019437A (ko) | 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법 | |
JP2014048810A (ja) | ホストシステム、ストレージデバイス、および通信方法 | |
EP2562634A2 (en) | Data copy processing system, storage device, and data copy processing method | |
JP2006285872A (ja) | マルチcpuシステム | |
US8296481B2 (en) | Device and method for improving transfer efficiency of odd number of data blocks | |
JP2009187337A (ja) | デバイス制御方法、プログラム、制御回路及び電子機器 | |
JP2012073745A (ja) | Dmaシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160715 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170317 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6114767 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |