JP2008009803A - 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 - Google Patents

情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 Download PDF

Info

Publication number
JP2008009803A
JP2008009803A JP2006180782A JP2006180782A JP2008009803A JP 2008009803 A JP2008009803 A JP 2008009803A JP 2006180782 A JP2006180782 A JP 2006180782A JP 2006180782 A JP2006180782 A JP 2006180782A JP 2008009803 A JP2008009803 A JP 2008009803A
Authority
JP
Japan
Prior art keywords
information
command
data transfer
storage
processing apparatus
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
JP2006180782A
Other languages
English (en)
Other versions
JP2008009803A5 (ja
Inventor
Naohiro Adachi
直大 足立
Kenichi Satori
謙一 佐鳥
Kenichi Nakanishi
健一 中西
Tamaki Konno
環 今野
Junko Nagata
淳子 永田
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006180782A priority Critical patent/JP2008009803A/ja
Priority to US11/820,822 priority patent/US8468273B2/en
Priority to CNB2007101232576A priority patent/CN100555258C/zh
Publication of JP2008009803A publication Critical patent/JP2008009803A/ja
Publication of JP2008009803A5 publication Critical patent/JP2008009803A5/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/0661Format or protocol conversion 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

【課題】2つの転送モードに対応して転送処理を行う。
【解決手段】物理アドレス空間が連続していない複数の領域から構成される第1のホストシステムが認識可能な第1のコマンドセットはCで示されるコマンドである。物理アドレス空間が連続している第2のホストシステムが認識可能な第2のコマンドセットは、Bで示されるコマンドである。そして、これらに対して、ストレージシステムが認識可能なコマンドセットは、Cで示される第1のコマンドセットと、Bで示される第2のコマンドセットとを含む、Aで示されるコマンドセットとなる。換言すれば、ストレージシステムが認識可能なコマンドセットは、第1のホストシステムが認識可能な第1のコマンドセットと、第2のホストシステムが認識可能な第2のコマンドセットの2種類のコマンドセットであるといえる。本発明は、ストレージシステムに適用できる。
【選択図】図11

Description

本発明は、情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体に関し、特に、情報を転送する場合に用いて好適な、情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体に関する。
従来、メモリを内蔵するメモリカードなどが接続されるデータ処理装置が用いられている(例えば、特許文献1参照)。
特開2004−46891号公報
従来、ホストとストレージとの間でデータを転送するために、DMA(Direct Memory Access)コントローラが用いられていた。Direct Memory Accessとは、機械語の命令群によらず、メモリとメモリまたはメモリとI/Oデバイスの間で直接データを転送することである。DMAコントローラとは、DMA機能を制御するためのコントローラである。
DMAを機能を用いたデータ転送には、データ転送アドレスおよびデータ転送サイズなどのデータ転送制御情報が記載された記述子を用いてデータ転送を行う場合と、転送子を用いず、転送情報をレジスタ等に直接書き込むことによりデータ転送を行う場合とがある。
記述子を用いた転送方法は、例えば、図1に示されるように、パーソナルコンピュータなどに用いられているメモリシステムのようにページ毎に管理された乖離した物理アドレス空間、すなわち、連続した論理アドレス空間に記憶されているものと定義されている情報が、実際の物理アドレス空間においては、複数に乖離されて記憶されている場合におけるデータ転送に用いると好適である。これに対して、図1に示される場合において、転送情報をレジスタ等に直接書き込むことによりデータ転送を行うと、転送の区切り毎にレジスタに転送情報を書き込む必要が発生して、転送のオーバーヘッドを増加させてしまい、転送レートを低下させる要因となりうる。
これに対して、図2に示されるように、論理アドレス空間における場合と同様に連続する物理アドレス空間を確保できるような組み込みシステムにおいて、記述子を用いたデータ転送を行った場合、記述子の自動取得にかかる転送時間が転送のオーバーヘッドとなり転送レートを低下させる要因となりうる。
図3を参照して、従来におけるデータ転送の例について説明する。
ホストシステム1とストレージシステム2とは、共通バス3によって接続されている、
DMAコントローラ12には、記述子を用いたデータ転送を行うか、または、記述子を用いずに転送情報をレジスタ等に直接書き込むことによりデータ転送を行うかのいずれのデータ転送モードでデータが転送されるかが設定されている。
図示しない操作入力部により、データ転送の指令を受けた場合、ホストシステム1のCPU11は、DMAコントローラ12に、DMA転送を開始するコマンドを供給する。DMAコントローラ12は、CPU11からDMA転送を開始するコマンドを受け取ると、設定に基づいてデータ転送に関する情報を取得し、I/F14、共通バス3、I/F23を介して、ストレージシステム2のストレージメモリ22からデータを読み出して、メモリ13に書き込んだり、その逆の操作を行う。そして、DMAコントローラ12は、指定されたサイズのデータの転送が終了すると、割り込みなどを使ってCPU11に完了を通知する。
このように、DMAコントローラ12は、通常は、ホストシステム1に実装されており、共通バス3で接続されているストレージシステム2からデータを読み出して、メモリ13に書き込んだり、その逆の操作を行ったりする。
また、従来においては、ホストシステム1とストレージシステム2とのインターフェースに、専用のインターフェースが用いられている場合もあった。
また、PCI(Peripheral Components Interconnect) Expressと称される高速バスが広く実用化されている(非特許文献1参照)。
"PCI SIG−PCI Express"、[平成18年6月23日検索]、インターネット、<URL: http://www.pcisig.com/specifications/pciexpress/>
上述したように、DMA転送には、記述子を用いる場合と、記述子を用いずにレジスタに転送情報を直接書き込む場合とがあるが、システムによりそれぞれ適した条件のものが採用されるようになされている。
例えば、リムーバブルなシリコン・ストレージなどのストレージシステムにおいては、接続対象となるホスト機器のシステム構成は様々な形態を取るので、データ転送を行うメモリが、ある固定領域に割り振られている場合もあれば、オペレーティング・システムにより動的に割り振られる場合もある。上述したように、データ転送を行うメモリが動的に割り振られている場合、記述子を用いたほうが好適であるが、一方、データ転送を行うメモリが固定領域に割り振られている場合は、記述子を用いる転送より、転送情報を直接レジスタに書き込む方が、記述子を機器側にて用意する必要がないので制御が容易である。
このように、ストレージシステムでは、接続対照となるホスト機器のシステム構成によって、取るべき転送方法が異なってしまう。しかしながら、従来のストレージシステムは、基本的にいずれかの方式のコマンドセットしか持っていない。そのため接続先のホスト機器によってはデータ転送の性能に差が生じる場合があった。
上述したように、PCI Expressなどの高速バスの実用化が進むに伴い、データ転送も高速化が求められている。したがって、接続先のホスト機器によってデータ転送の性能に格差が生じることを防ぎたいという要求があった。
また、例えば、Flashメモリ・カードなどのシリコン・ストレージでは、上述したようなDMAの詳細な制御はその利用者には隠蔽し、より簡便なコマンド・セットを使用してアクセス手法を提供することが求められている。
例えば、接続先のホスト機器やその他の条件により、ユーザが操作入力を行い、CPU11がDMAコントローラ12の詳細設定を全て行うことも考えられるが、この場合、操作が複雑になるという不都合が生じる。
本発明はこのような状況に鑑みてなされたものであり、ユーザによる複雑な操作を行うことなしに、適切なデータ転送モードで、データ転送を行うことができるようにするものである。
本発明の第1の側面の情報記憶装置は、他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置であって、情報を記憶する第1の記憶手段と、前記第1の記憶手段と、前記他の情報処理装置が有する第2の記憶手段との前記情報の授受を制御する情報授受制御手段と、前記他の情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段と、前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段とを備える。
前記コマンド解析手段により解析可能な第1のコマンドセットには、第1の前記他の情報処理装置から供給されるコマンドにより構成される第2のコマンドセットと、第2の前記他の情報処理装置から供給されるコマンドにより構成される第3のコマンドセットとを含ませるようにすることができる。
前記第2のコマンドセットのうちのデータ転送に関するコマンドと、前記第3のコマンドセットのうちのデータ転送に関するコマンドとには、同様の処理を指令する異なるコマンドを含ませるようにすることができる。
前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とには、同一のコマンドを含ませるようにすることができる。
前記第2のコマンドセットに含まれるコマンドを供給する第1の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が乖離して設定され、前記第3のコマンドセットに含まれるコマンドを供給する第2の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が連続して設定されるものとすることができる。
本発明の第1の側面の情報転送方法は、他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置の情報転送方法であって、前記他の情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定し、前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部と、前記他の情報処理装置が有する第2の記憶部との前記情報の授受を制御する情報授受制御部を設定するステップを含む。
本発明の第1の側面のプログラムは、複数のデータ転送モードのうちのいずれかを用いた、他の情報処理装置との情報の授受を制御する処理をコンピュータに実行させるためのプログラムであって、前記他の情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定し、前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部と、前記他の情報処理装置が有する第2の記憶部との前記情報の授受を制御する情報授受制御部を設定するステップを含む処理をコンピュータに実行させる。
本発明の第1の側面においては、他の情報処理装置から供給されたコマンドが解析され、解析結果に基づいて、複数のデータ転送モードのうち適用されるデータ転送モードが判定され、データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部と、他の情報処理装置が有する第2の記憶部との情報の授受が制御される。
本発明の第2の側面の情報転送システムは、他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置と、複数の前記データ転送モードのうちのいずれかで前記情報記憶装置と情報を授受する情報処理装置とで構成される情報転送システムであって、前記情報記憶装置は、情報を記憶する第1の記憶手段と、前記第1の記憶手段と、前記情報処理装置が有する第2の記憶手段との前記情報の授受を制御する情報授受制御手段と、前記情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段と、前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段とを備え、前記情報処理装置は、前記第2の記憶手段と、複数の前記データ転送モードのうちのいずれかの転送モードに適応する前記コマンドを前記情報記憶装置に送出するコマンド送出手段とを備える。
前記情報記憶装置の前記コマンド解析手段により解析可能な第1のコマンドセットには、第1の前記他の情報処理装置から供給されるコマンドにより構成される第2のコマンドセットと、第2の前記他の情報処理装置から供給されるコマンドにより構成される第3のコマンドセットとを含ませるようにすることができ、前記情報処理装置の前記コマンド送出手段により送出されるコマンドは、前記第1のコマンドセット、または、前記第2のコマンドセットのいずれか一方に含まれるコマンドであるものとすることができる。
前記第2のコマンドセットのうちのデータ転送に関するコマンドと、前記第3のコマンドセットのうちのデータ転送に関するコマンドとには、同様の処理を指令する異なるコマンドを含ませるようにすることができる。
前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とには、同一のコマンドを含ませるようにすることができる。
前記第2のコマンドセットに含まれるコマンドを供給する第1の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が乖離して設定され、前記第3のコマンドセットに含まれるコマンドを供給する第2の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が連続して設定されるものとすることができる。
本発明の第2の側面においては、情報記憶装置で、情報を記憶する第1の記憶手段と情報処理装置が有する第2の記憶手段との情報の授受が制御され、情報処理装置で、複数のデータ転送モードのうちのいずれかの転送モードに適応するコマンドが情報記憶装置に送出され、情報記憶装置で、情報処理装置から供給されたコマンドが解析されて、複数のデータ転送モードのうち適用されるデータ転送モードが判定され、データ転送モードの判定結果に基づいて、情報授受制御手段が設定される。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
記録装置は、独立した装置であっても良いし、記録再生装置の記録処理を行うブロックであっても良い。
以上のように、本発明の第1の側面によれば、ホスト装置と情報を授受することができ、特に、同一のストレージ装置で、適用可能な転送モードの種類が異なるホスト装置と情報を授受することができる。
また、本発明の第2の側面によれば、ホスト装置とストレージ装置とで情報を授受することができ、特に、同一のストレージ装置で、適用可能な転送モードの種類が異なるホスト装置と情報を授受することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の情報記憶装置は、他の情報処理装置(例えば、図4のホストシステム62)と複数のデータ転送モード(例えば、リンクリスト転送モードおよびダイレクト転送モード)のうちのいずれかで情報を授受する情報記憶装置(例えば、図4のストレージシステム61)であって、情報を記憶する第1の記憶手段(例えば、図4のバッファメモリ85またはストレージメモリ88)と、前記第1の記憶手段と、前記他の情報処理装置が有する第2の記憶手段(例えば、図4のホストメモリ92)との前記情報の授受を制御する情報授受制御手段(例えば、図4のDMAコントローラ84)と、前記他の情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段(例えば、図5のコマンド解析部142)と、前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段(例えば、図5のDMAコントローラ設定処理部143)とを備える。
前記第2のコマンドセットのうちのデータ転送に関するコマンド(例えば、図6のREAD_DATA_LINKLISTコマンドおよびWRITE_DATA_LINKLISTコマンド)と、前記第3のコマンドセットのうちのデータ転送に関するコマンド(例えば、図8のREAD_DATA_ DIRECTコマンドおよびWRITE_DATA_ DIRECTコマンド)とは、同様の処理を指令する異なるコマンドを含むようにすることができる。
前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とは、同一のコマンド(例えば、図10のERASEコマンド、CHECK_ERASEDコマンド、および、BLANKコマンド)を含むようにすることができる。
本発明の第1の側面の情報転送方法は、他の情報処理装置(例えば、図4のホストシステム62)と複数のデータ転送モード(例えば、リンクリスト転送モードおよびダイレクト転送モード)のうちのいずれかで情報を授受する情報記憶装置(例えば、図4のストレージシステム61)の情報転送方法であって、前記他の情報処理装置から供給されたコマンドを解析し(例えば、図12のステップS2の処理)、複数の前記データ転送モードのうち適用される前記データ転送モードを判定し(例えば、図12のステップS5の処理)、前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部(例えば、図4のバッファメモリ85またはストレージメモリ88)と、前記他の情報処理装置が有する第2の記憶部(例えば、図4のホストメモリ92)との前記情報の授受を制御する情報授受制御部(例えば、図4のDMAコントローラ84)を設定する(例えば、図12のステップS6の処理)ステップを含む。
本発明の第1の側面のプログラムは、複数のデータ転送モード(例えば、リンクリスト転送モードおよびダイレクト転送モード)のうちのいずれかを用いた、他の情報処理装置(例えば、図4のホストシステム62)との情報の授受を制御する処理をコンピュータに実行させるためのプログラムであって、前記他の情報処理装置から供給されたコマンドを解析し(例えば、図12のステップS2の処理)、複数の前記データ転送モードのうち適用される前記データ転送モードを判定し(例えば、図12のステップS5の処理)、前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部(例えば、図4のバッファメモリ85またはストレージメモリ88)と、前記他の情報処理装置が有する第2の記憶部(例えば、図4のホストメモリ92)との前記情報の授受を制御する情報授受制御部(例えば、図4のDMAコントローラ84)を設定する(例えば、図12のステップS6の処理)ステップを含む処理をコンピュータに実行させる。
本発明の第2の側面の情報転送システムは、他の情報処理装置(例えば、図4のホストシステム62)と複数のデータ転送モード(例えば、リンクリスト転送モードおよびダイレクト転送モード)のうちのいずれかで情報を授受する情報記憶装置(例えば、図4のストレージシステム61)と、複数の前記データ転送モードのうちのいずれかで前記情報記憶装置と情報を授受する情報処理装置(例えば、図4のホストシステム62)とで構成される情報転送システムであって、前記情報記憶装置は、情報を記憶する第1の記憶手段(例えば、図4のバッファメモリ85またはストレージメモリ88)と、前記第1の記憶手段と、前記情報処理装置が有する第2の記憶手段(例えば、図4のホストメモリ92)との前記情報の授受を制御する情報授受制御手段(例えば、図4のDMAコントローラ84)と、前記情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段(例えば、図5のコマンド解析部142)と、前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段(例えば、図5のDMAコントローラ設定処理部143)とを備え、前記情報処理装置は、前記第2の記憶手段と、複数の前記データ転送モードのうちのいずれかの転送モードに適応する前記コマンドを前記情報記憶装置に送出するコマンド送出手段(例えば、図4のホストCPU91)とを備える。
前記第2のコマンドセットのうちのデータ転送に関するコマンド(例えば、図6のREAD_DATA_LINKLISTコマンドおよびWRITE_DATA_LINKLISTコマンド)と、前記第3のコマンドセットのうちのデータ転送に関するコマンド(例えば、図8のREAD_DATA_ DIRECTコマンドおよびWRITE_DATA_ DIRECTコマンド)とは、同様の処理を指令する異なるコマンドを含むものとすることができる。
前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とは、同一のコマンド(例えば、図10のERASEコマンド、CHECK_ERASEDコマンド、および、BLANKコマンド)を含むものとすることができる。
以下、図を参照して、本発明の実施の形態について説明する。
図4は、本発明を適用した、ストレージシステムとホストシステムとの構成を示すブロック図である。
ストレージシステム61とホストシステム62とは、ストレージI/F63で接続されている。ストレージI/F63には、例えば、PCI(Peripheral Components Interconnect)Expressなどの高速バスが用いられると好適である。
ストレージシステム61は、コントローラ81、内部バス82、レジスタ83、DMAコントローラ84、バッファメモリ85、ストレージI/Fバス86、ストレージメモリコントローラ87、ストレージメモリ88−1乃至88−n、および、ドライブ89を含んで構成される。
コントローラ81は、ストレージシステム61の動作を制御するものであり、例えば、ストレージメモリコントローラ87を制御して、ストレージメモリ88−1乃至88−nへのデータの書き込みまたは読み出しを実行させたり、ホストシステム62から供給され、レジスタ83のうちのいずれかに書き込まれたコマンドに基づいて、DMAコントローラ84の設定を行うなどの処理を実行する。
内部バス82には、コントローラ81、レジスタ83、DMAコントローラ84、バッファメモリ85が接続され、必要に応じて、ドライブ89も接続される。
レジスタ83は、複数のレジスタを含むことができ、ホストシステム62から、ストレージI/F63およびストレージI/Fバス86を介してホストシステム62から供給されたコマンドや記述子または転送処理やその他の処理に必要な情報や引数などを保持する。
DMAコントローラ84は、ストレージシステム61のバッファメモリ85とホストシステム62のホストメモリ92とのデータの授受を制御するものである。また、DMAコントローラ84には、2つの動作モードがあり、コントローラ81によって設定される。
1つ目の転送モードは、複数の記述子(エントリとも称される)により構成されるリンクリストのアドレスが、ホストシステム62からストレージシステム61のレジスタ83に供給され、ストレージシステム61がこのリンクリストを読み出すことにより転送処理が実行されるリンクリスト転送モードであり、2つ目の転送モードは、リンクリストを用いることなく、ホストシステム62からストレージシステム61のレジスタ83に直接データの転送に関する情報が記載されるダイレクト転送モードである。
リンクリスト転送モードは、図1を用いて説明したように、ホストシステム62のホストメモリ92における物理アドレス空間が、ページごとに管理される場合、すなわち、論理アドレス空間のように連続しておらず、乖離して設定されるような場合に用いると好適である。これに対して、図2を用いて説明したように、ホストシステム62のホストメモリ92における物理アドレス空間が、論理アドレス空間と同様に連続して設定されるような場合には、制御が単純なダイレクト転送モードを用いることができる。
バッファメモリ85は、ストレージI/F63およびストレージI/Fバス86を介して、ホストシステム62から供給されたデータを一時バッファリングしたり、ストレージメモリコントローラ87の制御によりストレージメモリ88−1乃至88−nのうちのいずれかから読み出されて、ストレージI/F63およびストレージI/Fバス86を介して、ホストシステム62に供給されるデータを一時バッファリングする。
ストレージI/Fバス86は、レジスタ83、DMAコントローラ84、バッファメモリ85と、ストレージI/Fとを接続するバスである。
ストレージメモリコントローラ87は、コントローラ81の制御に基づいて、ストレージメモリ88−1乃至88−nへのデータの書き込みおよび読み出しを制御する。
ストレージメモリ88−1乃至88−nは、ストレージメモリコントローラ87により、データが書き込まれ、また、読み出される。
以下の説明においては、ストレージメモリ88−1乃至88−nを個々に区別する必要がない場合、単に、ストレージメモリ88と称する。
また、必要に応じて、ドライブ89が内部バス82に接続される。ドライブ89は、例えば、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア101が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、ストリームメモリ88に転送され、記録されたり、コントローラ81にインストールされる。
また、ホストシステム62は、ホストCPU91、および、ホストメモリ92を含んで構成される。なお、ホストシステム62は、例えば、通信部、表示部、操作入力部、撮像部、音声取得部、または、データ圧縮処理部など、これ以外の構成要素を含んで構成されていてもよいことは言うまでもない。ホストシステム62としては、例えば、一般的なパーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラなどの、さまざまな情報処理装置を用いることが出来る。
ホストCPU91は、ホストシステム62の動作を制御するものであり、例えば、図示しない操作入力部により入力されたユーザの操作入力に基づいて、ホストメモリ92に記憶されているデータをストレージシステム61のストレージメモリ88に書き込むためのコマンドや、ストレージシステム61のストレージメモリ88に記憶されているデータを読み込んで、ホストメモリ92に記憶させるためのコマンドなどのストレージシステム61とのデータの授受に関するコマンド、または、これ以外に、例えば、ストレージメモリ88に記憶されているデータの消去などを指令するなど、ストレージメモリ88を制御するためのコマンドを発生し、ストレージI/F63を介して、ストレージシステム61のレジスタ83に書き込む処理を実行することができる。
ホストメモリ92は、ホストCPU91の制御に基づいて、所定のデータを記憶するものである。
このように、図4に示されるストレージシステム61とホストシステム62との構成では、従来における場合と異なり、ホスト側ではなく、ストレージ側に、DMA転送を制御するDMAコントローラが設けられている。
ここでは、ホストメモリ92におけるデータの記憶形式に、図1を用いて説明したように、ホストシステム62のホストメモリ92における物理アドレス空間が、論理アドレス空間のように連続しておらず、乖離して設定される第1のデータ記憶形式と、図2を用いて説明したように、ホストシステム62のホストメモリ92における物理アドレス空間が、論理アドレス空間と同様に連続して設定される第2のデータ記憶形式との2種類のデータ記憶形式が存在するものとして説明する。換言すれば、ホストシステム62は、ホストメモリ92において、物理アドレス空間が論理アドレス空間と異なり、連続していない(乖離している)複数の領域から構成される第1のホストシステム62と、ホストメモリ92において、物理アドレス空間と論理アドレス空間とがいずれも連続している第2のホストシステム62とが存在する。
すなわち、第1のホストシステム62においては、上述したリンクリスト転送モードが実行され、第2のホストシステム62においては、上述したダイレクト転送モードが実行されて、ストレージシステム61とデータの転送を行うことができるようになされている。なお、リンクリスト転送モードを実行する第1のホストシステム62が有するコマンドセットと、ダイレクト転送モードを実行する第2のホストシステム62が有するコマンドセットとは、少なくともデータ転送に関するコマンドにおいて異なるものとなる。コマンドセットの詳細については後述する。
次に、ストレージシステム61とホストシステムと62の動作について説明する。
例えば、ホストシステム62のホストメモリ92に記録されているデータを、ストレージシステム61のストレージメモリ88に書き込む処理が実行される場合、ホストシステム62のホストCPU91は、ストレージI/F63およびストレージI/Fバス86を介して、レジスタ83に、ホストシステム62のホストメモリ92に記録されているデータを、ストレージシステム61のストレージメモリ88に書き込む処理を指令するコマンドであるライトコマンドを送信する。レジスタ83は、このコマンドの供給を受け、一時保持する。
ストレージシステム61のコントローラ81は、レジスタ83に保持されているコマンドを取得して、その内容を解釈する。上述したように、ストレージシステム61とホストシステム62においては、リンクリスト転送モードとダイレクト転送モードとのいずれかの転送モードを用いて、データ転送が実行されるので、コントローラ81は、DMAコントローラ84に、転送モードに基づいた設定を行う。
すなわち、データ転送モードがリンクリスト転送モードであるとき、ホストシステム62のホストCPU91は、レジスタ83に、ホストメモリ92においてリンクリストが記載されているアドレスを書き込むので、DMAコントローラ83は、レジスタ83を参照し、ホストメモリ92から1エントリずつエントリを読み出して、読み出されたエントリに基づいてデータ転送処理を実行し、リンクリストの全てのエントリに対して、同様にデータ転送処理を実行する。そして、データ転送モードがダイレクト転送モードであるとき、ホストシステム62のホストCPU91は、レジスタ83に、データサイズおよびアドレスなどのデータ転送情報を直接書き込むので、DMAコントローラ83は、レジスタ83を参照し、データ転送処理を実行する。
すなわち、ホストシステム62からストレージシステム61へデータが書き込まれる場合、DMAコントローラ84は、ホストメモリ92に記録されているデータのうち、ストレージメモリ88に書き込まれるデータを読み出し、ストレージI/F63およびストレージI/Fバス86を介して、バッファメモリ85に供給して、バッファリングさせる。
そして、バッファメモリ85に蓄積されたデータは、バッファメモリ85に蓄積されたデータの内容が有効になった時点を起点として、ストレージメモリコントローラ87により、ストレージメモリ88に書き込まれる。
また、例えば、ストレージシステム61のストレージメモリ88に記録されているデータを読み出して、ホストシステム62のホストメモリ92に記憶する処理が実行される場合、ホストシステム62のホストCPU91は、ストレージI/F63およびストレージI/Fバス86を介して、レジスタ83に、ストレージシステム61のストレージメモリ88に記録されているデータを読み出すことを指令するライトコマンドを送信する。レジスタ83は、このコマンドの供給を受け、一時保持する。
ストレージシステム61のコントローラ81は、レジスタ83に保持されているコマンドを取得して、その内容を解釈する。上述したように、ストレージシステム61とホストシステム62においては、リンクリスト転送モードとダイレクト転送モードとのいずれかの転送モードを用いて、データ転送が実行されるので、コントローラ81は、DMAコントローラ84に、転送モードに基づいた設定を行う。
そして、ホストシステム62がストレージシステム61からデータを読み出す場合、コントローラ81は、ストレージメモリコントローラ87を制御し、読み出されるデータを、ストレージメモリ88からバッファメモリ85に転送させる。バッファメモリ85に蓄積されたデータは、バッファメモリ85に蓄積されたデータの内容が有効になった時点を起点として、DMAコントローラ84により、ストレージI/Fバス86およびストレージI/Fを介して、ホストメモリ92に転送される。
図5は、ストレージシステム61のコントローラ81の機能を示す機能ブロック図である。
コマンド取得部141は、レジスタ83に格納された、ホストシステム62から供給されたコマンドを取得し、コマンド解析部142に供給する。
コマンド解析部142は、コマンド取得部141により取得されたコマンドを解析する。
DMAコントローラ設定処理部143は、コマンド解析部142によるコマンドの解析結果に基づいて、DMAコントローラ84を、リンクリスト転送モードまたはダイレクト転送モードのいずれかに設定する。
ストレージシステム61のDMAコントローラ84は、上述したように、リンクリスト転送モードとダイレクト転送モードとの2つの転送モードを有する。
すなわち、コントローラ81のコマンド解析部142は、ホストシステム62がストレージシステム61に対して送信するコマンドセットを2種類認識し、DMAコントローラ143は、そのコマンドセットに対応して、DMAコントローラ84がリンクリスト転送モードとダイレクト転送モードとのいずれで動作するかを設定することが出来る。
そして、コマンド実行部144は、コマンド解析部142によるコマンドの解析結果に基づいて、コマンドに即した処理の実行を制御する
図1を用いて説明したように、ホストメモリ92の物理アドレス空間が論理アドレス空間と異なり、連続していない(乖離している)複数の領域から構成される第1のホストシステム62が有するデータ転送に関する第1のコマンドセットの例を図6に示す。
READ_DATA_LINKLISTコマンドは、リンクリスト転送モードで、指定アドレスから指定サイズ分のデータを連続して読み出すことを指令するコマンドである。
WRITE_DATA_LINKLISTコマンドは、リンクリスト転送モードで、指定アドレスから指定サイズ分のデータを連続して書き込むことを指令するコマンドである。
そして、リンクリスト転送モードでは、離散した物理アドレス空間にデータを書き込んだり、離散した物理アドレス空間からデータを読み出すために、図7で示されるフォーマットの記述子を複数用いたリンクリストを用いる。このリンクリストを構成する個々の記述子は、エントリとも称される。
1エントリは、転送アドレス、転送サイズ、および、リスト構造の最終エントリであるかを示す転送制御情報(EOT)を少なくとも含んで構成される。リンクリストを使用した転送モードであるリンクリスト転送モードにおいては、ホストシステム62側よりストレージシステム61のレジスタ83に対し、ホストメモリ92のうちのリンクリストが格納されている先頭アドレスが設定される。DMAコントローラ84は、この設定に従ってホストメモリ92から最初のエントリを読み出す。このエントリに記述された転送情報を基に、DMAコントローラ84は必要な転送を行うことができる。最初のエントリを使用した転送が終了すると、DMAコントローラ84は、次のエントリをリンクリストから自動的に取得し、同様に転送を行う。DMAコントローラ84は、エントリ内の転送制御情報のEOTフラグを参照して、このエントリが最終エントリであるか否かを判別し、この動作を最終エントリまで繰り返す。
リンクリスト転送モードは、図1を用いて説明したような連続しない物理アドレス空間に対して転送を行う際に使用される。すなわち、ホストシステム62のホストメモリ92における物理アドレス空間が、上述した図1における場合のように、論理アドレス空間のように連続しておらず、乖離して設定されるような場合に用いて好適である。換言すれば、上述した図1における場合のように、ホストシステム62のホストメモリ92における物理アドレス空間が、論理アドレス空間のように連続しておらず、乖離して設定されるような場合、ホストシステム62が有するデータ転送に関するコマンドセットは、図6に示されるもののみであれば良く、後述する図8のコマンドセットを有する必要はない。
次に、図2を用いて説明したように、ホストメモリ92の物理アドレス空間が論理アドレス空間と同様に連続している第2のホストシステム62が有するデータ転送に関する第1のコマンドセットの例を図8に示す。
READ_DATA_DIRECTコマンドは、ダイレクト転送モードで、指定アドレスから指定サイズ分のデータを連続して読み出すことを指令するコマンドである。
WRITE_DATA_DIRECTコマンドは、ダイレクト転送モードで、指定アドレスから指定サイズ分のデータを連続して書き込むことを指令するコマンドである。
そして、ダイレクト転送モードでは、ホストCPU91から、ストレージI/F63を介して、レジスタ83に直接データ転送情報が設定される。
レジスタ83に直接設定されるデータ転送情報は、図9に示されるように、データ転送情報として記述子と基本的に同等の情報、すなわち、転送アドレスおよび転送サイズを含んで構成される。データ転送情報は、ホストCPU91から、ストレージI/F63を介して、レジスタ83に供給されるので、DMAコントローラ84は、この設定された情報に基づいて、データの転送を行う。ホストシステム62が、更に、ストレージシステム61と授受するべきデータを有する場合、ホストシステム62は、更に、READ_DATA_DIRECTコマンドまたはWRITE_DATA_DIRECTコマンドを発生し、次の転送情報をストレージシステム61に通知して、同様の転送処理を実行する。
ダイレクト転送モードは、図2を用いて説明したような、連続する物理アドレス空間に対して転送を行う際に使用される。すなわち、ホストシステム62のホストメモリ92における物理アドレス空間が、上述した図2における場合のように、論理アドレス空間と同様に連続して設定されるような場合に用いて好適である。換言すれば、上述した図2における場合のように、ホストシステム62のホストメモリ92における物理アドレス空間が連続して設定されるような場合、ホストシステム62が有するデータ転送に関するコマンドセットは、図8に示されるもののみであれば良く、上述した図6のコマンドセットを有する必要はない。
また、ホストシステム62のホストメモリ92における物理アドレス空間が、図1を用いて説明したように、論理アドレス空間のように連続しておらず、乖離して設定されるような場合や、図2を用いて説明したように、論理アドレス空間と同様に連続して設定されるような場合のいずれにおいても同様の処理がなされるような処理を命令するコマンドは、データ転送モードにリンクリスト転送モードを用いるようになされているホストシステム62においても、データ転送モードにダイレクト転送モードを用いるようになされているホストシステム62においても、同様のコマンドを発行するものとすることができる。
例えば、図10に示されるようにして、指定アドレスから指定サイズ分のデータを消去するERASEコマンド、指定アドレスから指定サイズ分のデータの消去状態を確認するCHECK_ERASEDコマンド、および、初期状態にするBLANKコマンドなどは、ホストシステム62のホストメモリ92の状態にかかわらず、同一のコマンドであっても良い。
図11を参照して、ストレージシステム61が認識可能なコマンドセットと、物理アドレス空間が論理アドレス空間と異なり、連続していない(乖離している)複数の領域から構成される第1のホストシステム62が認識可能なコマンドセットと、物理アドレス空間と論理アドレス空間とがいずれも連続している第2のホストシステム62が認識可能なコマンドセットについて説明する。
物理アドレス空間が論理アドレス空間と異なり、連続していない(乖離している)複数の領域から構成される第1のホストシステム62が認識可能な第1のコマンドセットは、図11において、Cで示される、READ_DATA_LINKLIST、WRITE_DATA_LINKLIST、ERASE、CHECK_ERASED、および、BLANKのコマンドである。そして、物理アドレス空間と論理アドレス空間とがいずれも連続している第2のホストシステム62が認識可能な第2のコマンドセットは、図11において、Bで示される、READ_DATA_DIRECT、WRITE_DATA_DIRECT、ERASE、CHECK_ERASED、および、BLANKのコマンドである。そして、これらに対して、ストレージシステム61が認識可能なコマンドセットは、図11においてCで示される第1のコマンドセットと、Bで示される第2のコマンドセットとを含む、図中Aで示されるコマンドセットとなる。すなわち、ストレージシステム61が認識可能なコマンドは、READ_DATA_LINKLIST、WRITE_DATA_LINKLIST、ERASE、READ_DATA_DIRECT、WRITE_DATA_DIRECT、CHECK_ERASED、および、BLANKのコマンドである。
換言すれば、ストレージシステム61が認識可能なコマンドセットは、物理アドレス空間が論理アドレス空間と異なり、連続していない(乖離している)複数の領域から構成される第1のホストシステム62が認識可能な第1のコマンドセットと、物理アドレス空間と論理アドレス空間とがいずれも連続している第2のホストシステム62が認識可能な第2のコマンドセットの2種類のコマンドセットであるといえる。
なお、ここでは、リードおよびライトの2種類のコマンドが定義されているが、各コマンドセット内、すなわち、第1のホストシステム62が認識可能な第1のコマンドセットと、第2のホストシステム62が認識可能な第2のコマンドセットとで定義される命令数に制限はない。すなわち、それぞれのコマンドセットにおいて定義される命令数は、ひとつであっても良いし、複数であっても良い。
次に、図12のフローチャートを参照して、ストレージシステム61の処理について説明する。
ステップS1において、ストレージシステム61は、ストレージI/F63を介して、ホストシステム62からコマンドの供給を受ける。供給されたコマンドは、ストレージI/Fバス86を介してレジスタ83に書き込まれる。
ステップS2において、コントローラ81のコマンド取得部141は、内部バス82を介して、レジスタ83に書き込まれたコマンドを読み込み、コントローラ81のコマンド解析部142は、コマンドを解釈する。
ステップS3において、コントローラ81のコマンド解析部142は、レジスタ83に書き込まれたコマンドは、データの転送(書き込み、または、読み出し)に関する指令であるか否かを判断する。
ステップS3において、コマンドは、データの転送に関する指令ではなかったと判断された場合、すなわち、図10を用いて説明したようなコマンドがレジスタに書き込まれていた場合、ステップS4において、コントローラ81のコマンド実行部144は、コマンドに対応する処理を実行し、処理が終了される。
ステップS3において、コマンドは、データの転送に関する指令であったと判断された場合、ステップS5において、コントローラ81のコマンド解析部142は、コマンドの種類に基づいて、すなわち、レジスタに書き込まれていたコマンドは、図6を用いて説明したコマンドであるか、または、図8を用いて説明したコマンドであるかに基づいて、転送モードを判断する。具体的には、コマンド解析部142は、レジスタに書き込まれていたコマンドが図6を用いて説明したコマンドである場合、データ転送モードをリンクリスト転送モードであると判断し、図8を用いて説明したコマンドである場合、データ転送モードはダイレクト転送モードであると判断する。
ステップS6において、コントローラ81のDMAコントローラ設定処理部143は、転送モードに応じて、DMAコントローラ84を設定する。
ステップS7において、コントローラ81のコマンド実行部144およびDMAコントローラ84は、データの転送処理を実行する。リンクリスト転送モードまたはダイレクト転送モードにおけるそれぞれの詳細な処理については、図13および図14を用いて後述する。
ステップS8において、コントローラ81のコマンド実行部144は、転送処理が終了したか否かを判断する。ステップS8において、転送処理が終了していないと判断された場合、処理は、ステップS7に戻り、それ以降の処理が繰り返される。ステップS8において、転送処理が終了したと判断された場合、処理は終了される。
このような処理により、ストレージシステム61のコントローラ81は、ホストシステム62から供給されたコマンドに基づいて、データ転送モードを判断し、DMAコントローラ84をデータ転送モードに応じて設定することができるので、ストレージシステム61は、ホストシステム62のホストメモリ92の形式が、図1を用いて説明したように、物理アドレス空間と論理アドレス空間とが異なり、物理アドレス空間が乖離しているような場合であっても(上述した第1のホストシステム62であっても)、図2を用いて説明したように、物理アドレス空間と論理アドレス空間とがいずれも連続しているような場合であっても(上述した第2のホストシステム62であっても)、それぞれに対応してデータ転送処理を実行することが可能である。
次に、図13のフローチャートを参照して、リンクリスト転送モードにおけるホストシステム62とストレージシステム61の処理について説明する。
ステップS41において、ホストシステム62のホストCPU91は、データ転送開始のコマンド(ここでは、図6を用いて説明したいずれかのコマンド)を、ストレージI/F63を介して、ストレージシステム61に送信する。
ステップS42において、ストレージシステム61は、ストレージI/F63を介して、ホストシステム62からコマンドの供給を受ける。供給されたコマンドは、ストレージI/Fバス86を介して、レジスタ83に書き込まれる。
ステップS43において、コントローラ81のコマンド取得部141は、内部バス82を介して、レジスタ83に書き込まれたコマンドを読み込み、コントローラ81のコマンド解析部142は、コマンドを解釈する。
ステップS44において、コントローラ81のコマンド解析部142は、コマンドの種類に基づいて、すなわち、レジスタに書き込まれていたコマンドは、図6を用いて説明したコマンドであるか、または、図8を用いて説明したコマンドであるかに基づいて、転送モードを判断する。ここでは、レジスタに書き込まれていたコマンドが図6を用いて説明したコマンドであるので、コマンド解析部142は、データ転送モードをリンクリスト転送モードであると判断するものとして説明する。
ステップS45において、コントローラ81のDMAコントローラ設定処理部143は、リンクリスト転送モードとして、DMAコントローラ84を設定する。
ステップS46において、リンクリスト転送モードに設定されたDMAコントローラ84は、ホストシステム62に対して、ストレージI/F63を介して、リンクリストのうちの1エントリを要求する。
ステップS47において、ホストシステム62のホストCPU91は、リンクリストのうちの1エントリの要求をうけ、ストレージI/F63を介して、ストレージシステム61にリンクリストのうちの1エントリを送信する。
ステップS48において、ストレージシステム61は、ストレージI/F63を介して、ホストシステム62からエントリを取得し、レジスタ83に保持する。
ステップS49およびステップS50において、ストレージシステム61およびホストシステム62は、データの転送処理を実行する。
具体的には、ホストシステム62のホストCPU91は、レジスタ83に、ホストメモリ92においてリンクリストが記載されているアドレスを書き込むので、DMAコントローラ83は、レジスタ83を参照し、ホストメモリ92から1エントリずつエントリを読み出して、読み出されたエントリに基づいてデータ転送処理を実行し、リンクリストの全てのエントリに対して、同様にデータ転送処理を実行する。
例えば、ホストシステム62からストレージシステム61へデータが書き込まれる場合、DMAコントローラ84は、ホストメモリ92に記録されているデータのうち、ストレージメモリ88に書き込まれるデータを読み出し、ストレージI/F63およびストレージI/Fバス86を介して、バッファメモリ85に供給して、バッファリングさせる。
そして、バッファメモリ85に蓄積されたデータは、バッファメモリ85に蓄積されたデータの内容が有効になった時点を起点として、ストレージメモリコントローラ87により、ストレージメモリ88に書き込まれる。
ステップS51において、ストレージシステム61のコントローラ81のコマンド実行部144は、ステップS48において取得したエントリにEOTが記載されていたか否かを判断する。ステップS51において、EOTが記載されていなかったと判断された場合、処理は、ステップS46に戻り、それ以降の処理が繰り返される。
ステップS51において、EOTが記載されていなかったと判断された場合、ステップS52において、コントローラ81のコマンド実行部144は、処理を終了する。
このような処理により、リンクリスト転送モードにおいて、データ転送が実行される。
次に、図14のフローチャートを参照して、ダイレクト転送モードにおけるホストシステム62とストレージシステム61の処理について説明する。
ステップS71において、ホストシステム62のホストCPU91は、データ転送開始のコマンド(ここでは、図8を用いて説明したいずれかのコマンド)を、ストレージI/F63を介して、ストレージシステム61に送信する。
ステップS72において、ストレージシステム61は、ストレージI/F63を介して、ホストシステム62からコマンドの供給を受ける。供給されたコマンドは、ストレージI/Fバス86を介して、レジスタ83に書き込まれる。
ステップS73において、コントローラ81のコマンド取得部141は、内部バス82を介して、レジスタ83に書き込まれたコマンドを読み込み、コントローラ81のコマンド解析部142は、コマンドを解釈する。
ステップS74において、コントローラ81のコマンド解析部142は、コマンドの種類に基づいて、すなわち、レジスタに書き込まれていたコマンドは、図6を用いて説明したコマンドであるか、または、図8を用いて説明したコマンドであるかに基づいて、転送モードを判断する。ここでは、レジスタに書き込まれていたコマンドが図8を用いて説明したコマンドであるので、コマンド解析部142は、データ転送モードをダイレクト転送モードであると判断するものとして説明する。
ステップS75において、コントローラ81のDMAコントローラ設定処理部143は、ダイレクト転送モードとして、DMAコントローラ84を設定する。
ステップS76において、ホストシステム62のホストCPU91は、ストレージI/F63を介して、ストレージシステム61に、例えば、転送されるデータのサイズやアドレスなど、転送処理に関連する情報を送信する。
ステップS77において、ストレージシステム61は、ストレージI/F63を介して、ホストシステム62から転送処理に関連する情報を取得し、レジスタ83に保持する。
ステップS78およびステップS79において、ストレージシステム61およびホストシステム62は、データの転送処理を実行する。
具体的には、データ転送モードがダイレクト転送モードであるとき、ホストシステム62のホストCPU91は、レジスタ83に、データサイズおよびアドレスなどのデータ転送情報を直接書き込むので、DMAコントローラ83は、レジスタ83を参照し、データ転送処理を実行する。
例えば、ホストシステム62がストレージシステム61からデータを読み出す場合、コントローラ81は、ストレージメモリコントローラ87に対して、読み出されるデータを、ストレージメモリ88からバッファメモリ85に転送させる。バッファメモリ85に蓄積されたデータは、バッファメモリ85に蓄積されたデータの内容が有効になった時点を起点として、DMAコントローラ84により、ストレージI/Fバス86およびストレージI/Fを介して、ホストメモリ92に転送される。
ステップS80において、ストレージシステム61のコントローラ81のコマンド実行部144は、処理を終了する。
このような処理により、ダイレクト転送モードにおいて、データ転送が実行される。
以上説明したように、ストレージシステムが、リンクリスト転送モードおよびダイレクト転送モードの両方の転送方式を有し、これを使い分けるための簡便なコマンドセットを2組用意するこことで、必要に応じてどちらかのコマンドセットを有するホストシステムとデータの授受を行うことができるようにしたので、接続先のホスト機器のシステム構成によらず、適したデータ転送を行うことができ、データ転送性能を改善する(スループットを向上させる)ことができる。
また、このような構成をとることにより、専用のインターフェースを用いることなく、PCI Expressなどの広く用いられる高速バスを用いて、データ転送を実現することができる。
なお、ここでは、2つの転送モードのうちのいずれかでデータ転送が実行される場合について説明したが、例えば、マスタシステムの構成や条件によって3つ以上の転送モードが予め用意され、そのうちのいずれかの転送モードによってデータ転送が実行される場合においても、本発明は適用可能である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図4に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア101などにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
物理アドレス空間が連続していない場合について説明するための図である。 物理アドレス空間が連続している場合について説明するための図である。 従来のホストシステムとストレージシステムを示すブロック図である。 本発明を適用したホストシステムとストレージシステムを示すブロック図である。 コントローラが有する機能を示す機能ブロック図である。 第1のコマンドセットの例を説明するための図である。 記述子について説明するための図である。 第2のコマンドセットの例を説明するための図である。 データ転送情報の例を説明するための図である。 リンクリスト転送モードを用いるホストシステムにおいても、ダイレクト転送モードを用いるホストシステムにおいても同様に用いられるコマンドの例を説明するための図である。 ストレージシステムが認識可能なコマンドセットと、物理アドレス空間が連続していない第1のホストシステムが認識可能なコマンドセットと、物理アドレス空間が連続している第2のホストシステム62が認識可能なコマンドセットについて説明するための図である。 ストレージシステムの処理について説明するためのフローチャートである。 ホストシステムおよびストレージシステムの処理について説明するためのフローチャートである。 ホストシステムおよびストレージシステムの処理について説明するためのフローチャートである。
符号の説明
61 ストレージシステム, 62 ホストシステム, 63 ストレージI/F, 81 コントローラ, 83 レジスタ, 84 DMAコントローラ, 85 バッファメモリ, 87 ストレージメモリコントローラ, 88 ストレージメモリ, 91 ホストCPU, 92 ホストメモリ, 141 コマンド取得部, 142 コマンド解析部, 143 DMAコントローラ設定処理部, 144 コマンド実行部

Claims (13)

  1. 他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置において、
    情報を記憶する第1の記憶手段と、
    前記第1の記憶手段と、前記他の情報処理装置が有する第2の記憶手段との前記情報の授受を制御する情報授受制御手段と、
    前記他の情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段と、
    前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段と
    を備える情報記憶装置。
  2. 前記コマンド解析手段により解析可能な第1のコマンドセットは、第1の前記他の情報処理装置から供給されるコマンドにより構成される第2のコマンドセットと、第2の前記他の情報処理装置から供給されるコマンドにより構成される第3のコマンドセットとを含む
    請求項1に記載の情報記憶装置。
  3. 前記第2のコマンドセットのうちのデータ転送に関するコマンドと、前記第3のコマンドセットのうちのデータ転送に関するコマンドとは、同様の処理を指令する異なるコマンドを含む
    請求項2に記載の情報記憶装置。
  4. 前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とは、同一のコマンドを含む
    請求項2に記載の情報記憶装置。
  5. 前記第2のコマンドセットに含まれるコマンドを供給する第1の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が乖離して設定され、
    前記第3のコマンドセットに含まれるコマンドを供給する第2の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が連続して設定される
    請求項2に記載の情報記憶装置。
  6. 他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置の情報転送方法において、
    前記他の情報処理装置から供給されたコマンドを解析し、
    複数の前記データ転送モードのうち適用される前記データ転送モードを判定し、
    前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部と、前記他の情報処理装置が有する第2の記憶部との前記情報の授受を制御する情報授受制御部を設定する
    ステップを含む情報転送方法。
  7. 複数のデータ転送モードのうちのいずれかを用いた、他の情報処理装置との情報の授受を制御する処理をコンピュータに実行させるためのプログラムであって、
    前記他の情報処理装置から供給されたコマンドを解析し、
    複数の前記データ転送モードのうち適用される前記データ転送モードを判定し、
    前記データ転送モードの判定結果に基づいて、情報を記憶する第1の記憶部と、前記他の情報処理装置が有する第2の記憶部との前記情報の授受を制御する情報授受制御部を設定する
    ステップを含む処理をコンピュータに実行させるプログラム。
  8. 請求項7に記載のプログラムが記録されている記録媒体。
  9. 他の情報処理装置と複数のデータ転送モードのうちのいずれかで情報を授受する情報記憶装置と、
    複数の前記データ転送モードのうちのいずれかで前記情報記憶装置と情報を授受する情報処理装置と
    で構成される情報転送システムにおいて、
    前記情報記憶装置は、
    情報を記憶する第1の記憶手段と、
    前記第1の記憶手段と、前記情報処理装置が有する第2の記憶手段との前記情報の授受を制御する情報授受制御手段と、
    前記情報処理装置から供給されたコマンドを解析し、複数の前記データ転送モードのうち適用される前記データ転送モードを判定するコマンド解析手段と、
    前記コマンド解析手段による前記データ転送モードの判定結果に基づいて、前記情報授受制御手段を設定する設定手段と
    を備え、
    前記情報処理装置は、
    前記第2の記憶手段と、
    複数の前記データ転送モードのうちのいずれかの転送モードに適応する前記コマンドを前記情報記憶装置に送出するコマンド送出手段と
    を備える情報転送システム。
  10. 前記情報記憶装置の前記コマンド解析手段により解析可能な第1のコマンドセットは、第1の前記他の情報処理装置から供給されるコマンドにより構成される第2のコマンドセットと、第2の前記他の情報処理装置から供給されるコマンドにより構成される第3のコマンドセットとを含み、
    前記情報処理装置の前記コマンド送出手段により送出されるコマンドは、前記第1のコマンドセット、または、前記第2のコマンドセットのいずれか一方に含まれるコマンドである
    請求項9に記載の情報転送システム。
  11. 前記第2のコマンドセットのうちのデータ転送に関するコマンドと、前記第3のコマンドセットのうちのデータ転送に関するコマンドとは、同様の処理を指令する異なるコマンドを含む
    請求項10に記載の情報転送システム。
  12. 前記第2のコマンドセットのうちの一部と、前記第3のコマンドセットのうちの一部とは、同一のコマンドを含む
    請求項10に記載の情報転送システム。
  13. 前記第2のコマンドセットに含まれるコマンドを供給する第1の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が乖離して設定され、
    前記第3のコマンドセットに含まれるコマンドを供給する第2の前記他の情報処理装置が有する前記第2の記憶手段においては、物理アドレス空間が連続して設定される
    請求項10に記載の情報転送システム。
JP2006180782A 2006-06-30 2006-06-30 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 Pending JP2008009803A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006180782A JP2008009803A (ja) 2006-06-30 2006-06-30 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体
US11/820,822 US8468273B2 (en) 2006-06-30 2007-06-21 Information storage apparatus, information transfer method, information transfer system, program, and storage medium
CNB2007101232576A CN100555258C (zh) 2006-06-30 2007-07-02 信息存储设备、信息传送方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006180782A JP2008009803A (ja) 2006-06-30 2006-06-30 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010220017A Division JP2011008824A (ja) 2010-09-29 2010-09-29 情報記憶装置、情報転送方法、情報転送システム、情報処理装置、並びに、プログラム

Publications (2)

Publication Number Publication Date
JP2008009803A true JP2008009803A (ja) 2008-01-17
JP2008009803A5 JP2008009803A5 (ja) 2010-06-17

Family

ID=38950592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006180782A Pending JP2008009803A (ja) 2006-06-30 2006-06-30 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体

Country Status (3)

Country Link
US (1) US8468273B2 (ja)
JP (1) JP2008009803A (ja)
CN (1) CN100555258C (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5235768B2 (ja) * 2009-04-23 2013-07-10 キヤノン株式会社 制御装置、その制御方法、及びプログラム
US9645738B2 (en) * 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
CN102880573B (zh) * 2012-09-04 2015-04-29 武汉邮电科学研究院 一种基于Linux系统的串行RapidIo数据传输方法
JP6347055B2 (ja) * 2014-03-28 2018-06-27 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
CN108280586A (zh) * 2018-02-02 2018-07-13 万盈摩比科技(深圳)有限公司 一种招标、投标及评标在线交易系统的数据碎片化处理方法
CN109614047B (zh) * 2018-12-10 2022-03-08 浪潮(北京)电子信息产业有限公司 一种主机之间io的传输方法、存储系统及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252153A (ja) * 1998-03-02 1999-09-17 Canon Inc データ通信システム、データ通信装置及びデータ通信方法
JPH11261608A (ja) * 1998-03-09 1999-09-24 Canon Inc データ通信システム、データ通信装置、データ通信方法及び記憶媒体
JP2000032005A (ja) * 1998-03-12 2000-01-28 Canon Inc デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体
JP2001086132A (ja) * 1999-09-14 2001-03-30 Canon Inc 通信システム、印刷システム、及び通信方法、印刷制御方法
JP2004258856A (ja) * 2003-02-25 2004-09-16 Seiko Epson Corp データ転送制御システム、電子機器、及びデータ転送制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
JP2004046891A (ja) 1997-06-04 2004-02-12 Sony Corp データ処理システム、データ処理装置、外部装置及びデータ伝送方法
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6178467B1 (en) * 1998-07-07 2001-01-23 International Business Machines Corporation Microprocessor system requests burstable access to noncacheable memory areas and transfers noncacheable address on a bus at burst mode
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US20050215248A1 (en) * 2004-03-23 2005-09-29 Texas Instruments Incorporated Method and system of communication between a master device and a slave device
US7606947B2 (en) * 2004-09-07 2009-10-20 Industrial Technology Research Institute Removable electronic device and method thereof
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252153A (ja) * 1998-03-02 1999-09-17 Canon Inc データ通信システム、データ通信装置及びデータ通信方法
JPH11261608A (ja) * 1998-03-09 1999-09-24 Canon Inc データ通信システム、データ通信装置、データ通信方法及び記憶媒体
JP2000032005A (ja) * 1998-03-12 2000-01-28 Canon Inc デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体
JP2001086132A (ja) * 1999-09-14 2001-03-30 Canon Inc 通信システム、印刷システム、及び通信方法、印刷制御方法
JP2004258856A (ja) * 2003-02-25 2004-09-16 Seiko Epson Corp データ転送制御システム、電子機器、及びデータ転送制御方法
US20040230734A1 (en) * 2003-02-25 2004-11-18 Seiko Epson Corporation Data transfer control system, electronic instrument, and data transfer control method
JP3599053B2 (ja) * 2003-02-25 2004-12-08 セイコーエプソン株式会社 データ転送制御システム、電子機器、及びデータ転送制御方法

Also Published As

Publication number Publication date
US20080016291A1 (en) 2008-01-17
CN100555258C (zh) 2009-10-28
US8468273B2 (en) 2013-06-18
CN101097557A (zh) 2008-01-02

Similar Documents

Publication Publication Date Title
KR100869675B1 (ko) 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
JP4356765B2 (ja) 情報処理装置および方法、並びにプログラム
KR100708266B1 (ko) 다이렉트 메모리 액세스 제어 방법, 다이렉트 메모리액세스 제어 장치, 정보 처리 시스템, 프로그램을 기록한컴퓨터 판독 가능한 기록 매체
JP2004005382A (ja) データ転送装置および方法
JP2008009803A (ja) 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体
US20080301381A1 (en) Device and method for controlling commands used for flash memory
US20060190637A1 (en) Control apparatus, information processing apparatus, and data transferring method
JP2014010759A (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP4724494B2 (ja) Pciブリッジ及pciブリッジを搭載するシステム
JP2011008824A (ja) 情報記憶装置、情報転送方法、情報転送システム、情報処理装置、並びに、プログラム
JP2002183675A (ja) データ記録媒体の制御装置とその方法、データ記録装置および制御装置
JP2007264751A (ja) データ転送制御装置
US20070168839A1 (en) Interface apparatus for connecting a device and a host system, and method of controlling the interface apparatus
JP2001341363A (ja) プリンタ制御装置のブランク頁印刷方法
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
KR100633120B1 (ko) 저장 매체의 데이터 대역폭 향상 방법 및 이를 위한 장치
JP5652242B2 (ja) データ転送制御装置及びプログラム
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2008217469A (ja) コピー装置、データ転送制御装置、情報処理装置及びプログラム
JP6114767B2 (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JPH11203059A (ja) 画像入出力処理装置および画像入出力処理装置のメモリアクセス方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2009289238A (ja) データ処理システム及びストレージ制御方法
JP5989818B2 (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP2008009804A (ja) 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100427

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101112

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101203