JP6704127B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP6704127B2 JP6704127B2 JP2019511292A JP2019511292A JP6704127B2 JP 6704127 B2 JP6704127 B2 JP 6704127B2 JP 2019511292 A JP2019511292 A JP 2019511292A JP 2019511292 A JP2019511292 A JP 2019511292A JP 6704127 B2 JP6704127 B2 JP 6704127B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- master
- memory device
- slave
- root complex
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4278—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本開示は、ホストデバイスとメモリデバイス間でデータ転送を行う情報処理装置に関する。
高速シリアルインターフェースとしてPCI Express(登録商標:以下、PCIeと称する)が、パーソナルコンピュータ等の様々な電子機器に使用されている。
例えば、ビデオサーバをホストデバイスとし、メモリカードをメモリデバイスとするシステム構成においても、PCIeが用いられている。
本開示は、複数のメモリデバイスが一つの仮想大容量ストレージを構成する情報処理装置を提供する。
本開示における情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む、PCIeシステムとしての情報処理装置である。上記複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合される。これにより、複数のメモリデバイスが一つの仮想ストレージを構成する。ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報を、スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
本開示における情報処理装置は、複数のメモリデバイスにより構成される一つの仮想大容量ストレージを利用して、長時間記録された画像データ等の大きいサイズのデータを一まとまりとして取り扱うことができる。
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、発明者(ら)は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
1.実施の形態に至る経緯
PCIeを使用するシステムでは、ホスト機能を有するルートコンプレクスが最上位デバイスとされ、更にローカルデバイスがポイント・ツー・ポイントでツリー状に接続される。一つのPCIeデバイスツリーには一つのルートコンプレクスのみ接続される。
PCIeを使用するシステムでは、ホスト機能を有するルートコンプレクスが最上位デバイスとされ、更にローカルデバイスがポイント・ツー・ポイントでツリー状に接続される。一つのPCIeデバイスツリーには一つのルートコンプレクスのみ接続される。
このように、ポイント・ツー・ポイント接続が基本的形態であるPCIeバス結合において、スイッチ(Switch)部を設けることにより、エンドポイントとして複数のデバイス(例えば、メモリカード)が接続できるようになる。エンドポイントとして接続されるデバイスがメモリデバイス(例えば、SDカード(登録商標))である場合、ホストデバイスのCPUに接続されるルートコンプレクスは、複数のメモリデバイスとして認識するとともに、個別のメモリデバイスとしてアクセスする(例えば、書き込み処理や読み込み処理を行う)。
ところで、PCIeを使用するビデオサーバが大きいサイズの画像データをメモリデバイスに記録しようとしても、従来では、一枚のメモリカードの容量を超える画像データを1ファイルとして記録することはできない。つまり、ビデオサーバは、大きいサイズの画像データを幾つかに分割してメモリデバイスに記録する他は無い。
一方で、長時間記録された画像データを処理するに当たっては、大きいサイズの画像データを一まとまりとして(例えば、1ファイルとして)取り扱うことが要請されている。
実施の形態は、上述の問題を解決するものであり、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む、PCIeシステムとしての情報処理装置に関するものである。上記複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合され、これにより複数のメモリデバイスが一つの仮想ストレージを構成する。
ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス(例えば、書き込み処理や読み込み処理)時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報をスレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
このように、複数のメモリデバイスが一つの仮想大容量ストレージを構成する情報処理装置では、長時間記録された画像データ等の大きいサイズのデータが、一まとまりとして取り扱われることとなる。
2.[実施の形態1]
以下、図1〜図11を参照して実施の形態1を説明する。
以下、図1〜図11を参照して実施の形態1を説明する。
2.1.情報処理装置の構成
図1は、実施の形態1に係る情報処理装置2のシステムツリー構成図である。
図1は、実施の形態1に係る情報処理装置2のシステムツリー構成図である。
情報処理装置2は、CPU4、ルートコンプレクス6、及び、二つのスイッチ部8、10を含む。
CPU4及びルートコンプレクス6は、スイッチ部8を介して、第1のメモリデバイス12である第1のエンドポイントと接続する。またCPU4及びルートコンプレクス6は、スイッチ部8及びスイッチ部10を介して、第2のメモリデバイス14である第2のエンドポイント、及び第3のメモリデバイス16である第3のエンドポイントと接続する。
後で説明するように、ルートコンプレクス6から第1のメモリデバイス12へのバスマスタの移譲により、第1のメモリデバイス12(第1のエンドポイント)は、マスターメモリとなり、第2及び第3のメモリデバイス14、16(第2のエンドポイント、第3のエンドポイント)は、マスターメモリに対するスレーブメモリとなる。括弧内における(Master2)、(Slave1)、及び(Slave2)は、そのことを示す。
但し、図1に示す実施の形態1に係るシステムツリー構成において、第1のメモリデバイス12のみがマスターメモリとなることに限定されるものではない。同様に、第2のメモリデバイス14及び第3のメモリデバイス16が、スレーブメモリとなることに限定されるものではない。
また、図1に示す情報処理装置2では、三つのメモリデバイスが接続するが、接続するメモリデバイスは、二つでも、四つ以上でもよい。
図2は、実施の形態1に係る情報処理装置2の詳細なブロック図である。
図2に示す情報処理装置2は、ホストデバイス20、及びホストデバイス20とコネクタ(32:38、34:40、36:42)を介して接続するメモリデバイス(12、14、16)により構成される。メモリデバイス(12、14、16)は記録媒体であり、例えば、メモリカードである。
前に説明したように、ホストデバイス20に接続するメモリデバイスは、二つでも、四つ以上でもよい。
図2に示すホストデバイス20において、CPU4、データ転送部24、バッファ26、及びルートコンプレクス6が、PCIeバス22を介して接続される。ルートコンプレクス6は、PCIeのツリーのルートとなるデバイスであり、情報格納部6aを付属する。
更に、ホストデバイス20のコネクタ32と、第1のメモリデバイス12のコネクタ38とが接続されると、ルートコンプレクス6は、PCIeスイッチ8及びPCIeバス22を介して第1のメモリデバイス12と繋がる。
同様に、ホストデバイス20のコネクタ34と、第2のメモリデバイス14のコネクタ40とが接続されると、ルートコンプレクス6は、PCIeスイッチ8、PCIeスイッチ10及びPCIeバス22を介して第2のメモリデバイス14と繋がる。ホストデバイス20のコネクタ36と、第3のメモリデバイス16のコネクタ42とが接続されると、ルートコンプレクス6は、PCIeスイッチ8、PCIeスイッチ10及びPCIeバス22を介して第3のメモリデバイス16と繋がる。
夫々のメモリデバイス(第1のメモリデバイス12、第2のメモリデバイス14、第3のメモリデバイス16)は、個々のメモリデバイスの動作を制御するコントローラ(第1のコントローラ12b、第2のコントローラ14b、第3のコントローラ16b)を備える。
また、第1のメモリデバイス12、第2のメモリデバイス14、及び第3のメモリデバイス16は、夫々、第1のメモリ12c、第2のメモリ14c、及び第3のメモリ16cを備える。
これら第1のメモリ12c、第2のメモリ14c、及び第3のメモリ16cがデータを格納するためのストレージとなる。更に、第1のメモリデバイス12、第2のメモリデバイス14、及び第3のメモリデバイス16は、夫々、第1の情報格納部12a、第2の情報格納部14a、及び第3の情報格納部16aを付属する。第1の情報格納部12a、第2の情報格納部14a、及び第3の情報格納部16aの各々は、後で詳しく説明するように、自ら(自メモリデバイス)がマスターメモリと成り得る機能を備えるかどうかの情報、容量に関する情報、性能に関する情報など(図4、図6等参照)を格納する。
なお、第1〜第3の情報格納部12a、14a、16aは、夫々、第1〜第3のメモリ12c、14c、16cを用いて実現されてもよいし、別のデバイス(例えば、レジスタなど)により実現されてもよい。第1〜第3のメモリ12c、14c、16cを用いて実現される場合には、第1〜第3の情報格納部は、実施の形態1に係る情報処理装置によりアクセスされるストレージには含まれない部分ということになる。つまり、その部分は、第1〜第3のコントローラ12b、14b、16bが別管理している領域であり、フォーマット処理が行われても情報が消え無い領域である。
図1でも示したように、第1のメモリデバイス12、第2のメモリデバイス14、及び第3のメモリデバイス16は、夫々、PCIeのツリー構成におけるルートコンプレクス6に対する、第1のエンドポイント、第2のエンドポイント、及び第3のエンドポイントに相当する。
なお、図11は、実施の形態1の変形例に係る情報処理装置の詳細なブロック図である。図11に示す情報処理装置では、ホストデバイス20と、メモリデバイス12、14、16との間に、PCIeスイッチ8、10とPCIeバス22を含むスイッチコネクタ21が挟まれている。このような変形例に係る情報処理装置も、実施の形態1を実現し得る。
2.2.情報処理装置の動作
図3は、実施の形態1に係る情報処理装置による仮想大容量ストレージの初期化処理のフロー図である。更に図9は、実施の形態1に係る情報処理装置による仮想大容量ストレージへの書き込み処理のフロー図であり、図10は、実施の形態1に係る情報処理装置による仮想大容量ストレージからの読み込み処理のフロー図である。
図3は、実施の形態1に係る情報処理装置による仮想大容量ストレージの初期化処理のフロー図である。更に図9は、実施の形態1に係る情報処理装置による仮想大容量ストレージへの書き込み処理のフロー図であり、図10は、実施の形態1に係る情報処理装置による仮想大容量ストレージからの読み込み処理のフロー図である。
実施の形態1では、一つのPCIeシステム構成例として示される、ホストデバイスと三つのメモリデバイスとを含む情報処理装置において、三つのメモリデバイスのうちの一つがマスターメモリとして定義される。更に、それ以外の二つのメモリデバイスがスレーブメモリとして定義され同時にマスターメモリと論理的に結合される。このような実施の形態1における、初期化処理、並びに、バスマスタを移譲した上での書き込み処理及び読み込み処理を、図3〜図10を用いて説明する。
2.2.1.初期化処理
図3に示す初期化処理では、開始(ステップS02)後、ホストデバイス20は、コネクタを介して接続する三つのメモリデバイスについて、物理層の初期化(ステップS04)、及び、論理層の初期化(ステップS06)を行う。続いて、ホストデバイス20は、三つのメモリデバイスのうち、何れをマスターメモリとし何れをスレーブメモリとするか決定する(ステップS08)。
図3に示す初期化処理では、開始(ステップS02)後、ホストデバイス20は、コネクタを介して接続する三つのメモリデバイスについて、物理層の初期化(ステップS04)、及び、論理層の初期化(ステップS06)を行う。続いて、ホストデバイス20は、三つのメモリデバイスのうち、何れをマスターメモリとし何れをスレーブメモリとするか決定する(ステップS08)。
メモリデバイスのうち、何れをマスターメモリとし何れをスレーブメモリとするか決定するステップについては、メモリデバイスのうちにマスターメモリと成り得る機能を持っているものが少なくとも一つあり、それをホストデバイス20が選択する(複数ある場合は、ホストデバイス20が一つを選択する)、という手順にて基本的に行う。例えば、より詳細には、以下のような方針の手順である。
[1]複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが一つである場合には、ホストデバイス20はそれをマスターメモリとして選択する。
[2]複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが複数ある場合には、どれをマスターメモリとして選択するかは、ホストデバイス20が決定する。
[3]複数のメモリデバイスと接続するための、ホストデバイス20側の複数のコネクタ(スロット)32、34、36のうち、マスターメモリとなるメモリデバイスが装着されるコネクタ(スロット)を、ホストデバイス20が予め決定しておいてもよい。
[4]複数のメモリデバイスと接続するための、ホストデバイス20側の複数のコネクタ(スロット)32、34、36において、優先順位をホストデバイス20が予め設定しており、メモリデバイスの装着時により高い優先順位のコネクタ(スロット)に装着されたメモリデバイスを、ホストデバイス20がマスターメモリとして決定する、という方針でもよい。
[5]入力デバイスからの入力データに従って、ホストデバイス20がマスターメモリとスレーブメモリを決定してもよい。
[1]複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが一つである場合には、ホストデバイス20はそれをマスターメモリとして選択する。
[2]複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが複数ある場合には、どれをマスターメモリとして選択するかは、ホストデバイス20が決定する。
[3]複数のメモリデバイスと接続するための、ホストデバイス20側の複数のコネクタ(スロット)32、34、36のうち、マスターメモリとなるメモリデバイスが装着されるコネクタ(スロット)を、ホストデバイス20が予め決定しておいてもよい。
[4]複数のメモリデバイスと接続するための、ホストデバイス20側の複数のコネクタ(スロット)32、34、36において、優先順位をホストデバイス20が予め設定しており、メモリデバイスの装着時により高い優先順位のコネクタ(スロット)に装着されたメモリデバイスを、ホストデバイス20がマスターメモリとして決定する、という方針でもよい。
[5]入力デバイスからの入力データに従って、ホストデバイス20がマスターメモリとスレーブメモリを決定してもよい。
続いて図3に示す初期化処理において、ホストデバイス20は、メモリデバイスに関する情報(図7の(2−1)、(2−2)参照)を、ルートコンプレクス6の情報格納部6aに登録(格納)する(ステップS10)。メモリデバイスに関する情報(図7の(2−1)、(2−2)については後で説明する。
図4は、図3の初期化処理終了時点にて、第1のエンドポイントに相当する第1のメモリデバイス12の第1の情報格納部12aに格納される情報例を示す図である。
図4に示す、第1の情報格納部12aに格納される情報例では、まず、第1のメモリデバイス12自身に関する情報(バス番号:1、デバイス番号:11、サイズ:32GB)が記録されている。
次に、図4に示す、第1の情報格納部12aに格納される情報例では、一つのマスターメモリ(第1のメモリデバイス12)と、二つのスレーブメモリ(第2のメモリデバイス14、第3のメモリデバイス16)により構成される仮想大容量ストレージにおける、マスターメモリとスレーブメモリとの論理的関係に係る情報が格納されている。
つまり、バス番号「1」デバイス番号「11」のデバイス(即ち、第1のメモリデバイス12自身)が、マスタとなってサイズ「128GB」のストレージを構成することが記録されている。続いて、スレーブメモリを「二つ」持つことが記録されている。更に、二つのスレーブメモリは「Slave1(スレーブ1)」と「Slave2(スレーブ2)」とであることが記録されている。更に、バス番号「1」デバイス番号「12」のデバイスである「Slave1(スレーブ1)」は、大容量ストレージにおいて開始アドレス「32GB+1B」から終了アドレス「32GB+32GB」までの領域を担うメモリであることが記録されている。更に、バス番号「1」デバイス番号「13」のデバイスである「Slave2(スレーブ2)」は、大容量ストレージにおいて開始アドレス「32GB+32GB+1B」から終了アドレス「32GB+32GB+64GB」までの領域を担うメモリであることが記録されている。
図5は、図1に示す情報処理装置にて作成されて用いられる、仮想大容量ストレージの構成図である。
図5に示す仮想大容量ストレージは、図4に示す第1の情報格納部12aに格納される情報例の内容に合わせて構成されているものである。まず、図5に示す仮想大容量ストレージは全体で128GBの容量を備える。128GBのうち、開始アドレス「0」から終了アドレス「32GB」までの領域は、マスターメモリである第1のメモリデバイス12(容量:32GB)が担う。開始アドレス「32GB+1B」から終了アドレス「32GB+32GB」までの領域は、スレーブメモリ「Slave1(スレーブ1)」である第2のメモリデバイス14(容量:32GB)が担う。開始アドレス「32GB+32GB+1B」から終了アドレス「32GB+32GB+64GB」までの領域は、スレーブメモリ「Slave2(スレーブ2)」である第3のメモリデバイス16(容量:64GB)が担う。
このようにして、容量128GBの大容量ストレージが実現される。
図6の(1)は、図3の初期化処理終了時点にて、第2のエンドポイントに相当し且つスレーブメモリ「Slave1(スレーブ1)」である、第2のメモリデバイス14の第2の情報格納部14aに格納される情報例を示す。
同様に図6の(2)は、図3の初期化処理終了時点にて、第3のエンドポイントに相当し且つスレーブメモリ「Slave2(スレーブ2)」である、第3のメモリデバイス16の第3の情報格納部16aに格納される情報例を示す。
図6の(1)に示す、第2のメモリデバイス14の第2の情報格納部14aに格納される情報例では、バス番号「1」デバイス番号「12」サイズ(容量)「32GB」のデバイス(即ち、第2のメモリデバイス14)が、バス番号「1」デバイス番号「11」のメモリデバイス(即ち、第1のメモリデバイス12)をマスターメモリとする、スレーブメモリであることが記録されている。
同様に図6の(2)に示す、第3のメモリデバイス16の第3の情報格納部16aに格納される情報例では、バス番号「1」デバイス番号「13」サイズ(容量)「64GB」のデバイス(即ち、第3のメモリデバイス16)が、バス番号「1」デバイス番号「11」のメモリデバイス(即ち、第1のメモリデバイス11)をマスターメモリとする、スレーブメモリであることが記録されている。
図7は、ホストデバイス20におけるルートコンプレクス6の情報格納部6aに格納される情報例を示す図である。このうち、図7の(2−1)は初期化後のポート情報であり、図7の(2−2)はコンフィグレーション設定後のポート情報である。
図7の(2−1)の初期化後のポート情報では、バス番号「1」デバイス番号「11」、バス番号「1」デバイス番号「12」、及び、バス番号「1」デバイス番号「13」は、何れも「メモリ」であること、及び、バス番号「1」デバイス番号「11」のメモリのみが、マスターメモリと成り得ることが、記録されている。
また、図7の(2−2)のコンフィグレーション設定後のポート情報では、バス番号「1」デバイス番号「11」のメモリ(Master2)及びバス番号「1」デバイス番号「12」のメモリ(Slave1)は容量(キャパシティ)が32GBであり、バス番号「1」デバイス番号「13」のメモリ(Slave2)は容量(キャパシティ)が64GBであることが、記録されている。更に、図7の(2−2)のポート情報では、バス番号「1」デバイス番号「11」のメモリ(Master2)は、パフォーマンス(性能)が「高い(High)」こと、並びに、バス番号「1」デバイス番号「12」のメモリ(Slave1)及びバス番号「1」デバイス番号「13」のメモリ(Slave2)は、パフォーマンス(性能)が「中程度である(Middle)」ことが、記録されている。
これらの、初期化後のポート情報(図7の(2−1))、及びコンフィグレーション設定後のポート情報(図7の(2−2))は、図3に示す初期化処理における、ルートコンプレクスへの登録(S10)にて記録される。
2.2.2.コマンドパケット
PCIeシステムでは、ルートコンプレクスとエンドポイントの間などでコマンドパケットがやり取りされる。
PCIeシステムでは、ルートコンプレクスとエンドポイントの間などでコマンドパケットがやり取りされる。
例えば、実施の形態1に係る情報処理装置では、元来のマスターデバイスであるルートコンプレクス6(Master1)から、バスマスタリング機能によりマスタ機能(バスマスタ)を移譲される第1のエンドポイント(第1のメモリデバイス12)(Master2)へ、コマンドが送信される。
ここで、Master1からMaster2への、即ち、バスマスタを移譲する側(デバイス)からバスマスタを移譲される側(デバイス)への、コマンドの送信は、例えば、以下のような手順で行われる。
まず、Master1は(ルートコンプレクス6の)情報格納部6aに、ルートコンプレクス6から第1のメモリデバイス12(Master2)へ送信されるべきコマンドを、格納する。このとき、Master1は、例えば、(図7の(1)に示す)バス情報のコマンドバッファ(バスマスタ変更直後のコマンド格納部)に、コマンドを格納する。更に、Master1は(図7の(1)に示す)バス情報のバスマスタリングを「オン」としつつ、バスマスタ(マスタ機能)をMaster2(第1のメモリデバイス12)に移譲する。バスマスタを移譲されたMaster2(第1のメモリデバイス12)の第1のコントローラ12bは、Master1(ルートコンプレクス6)の情報格納部6aの(1)バス情報における「コマンドバッファ」を読み取るトランザクションを、起動する。
このように、Master2(第1のメモリデバイス12)が(Master1内の)「コマンドバッファ」を読み取ることにより、Master1内に格納された、Master1からMaster2へのコマンドが、送信されることになる。
図8の(1)は、コマンドパケットのフォーマット例を示している。図8の(1)に示すフォーマット例は、宛先(バス番号、デバイス番号)、送り元(バス番号、デバイス番号)、ファンクション、開始アドレス、ペイロードの長さ、及び、ペイロード(データ送受信用)を含む。ここで、ファンクションは、コマンドの具体的動作・機能を示すものであり、例えば、書き込みや読み込みを示すコードが格納される。
図8の(2−1)は、Master1からMaster2への、コマンドパケットのデータ例である。
「宛先」には、第1のエンドポイント(第1のメモリデバイス12)を表すデータ(バス番号:1、デバイス番号:11)が格納されている。「送り元」には、ルートコンプレクス6を表すデータ(バス番号:0、デバイス番号:0)が格納されている。「開始アドレス」には(例として)“0x300”が格納され、「ペイロードの長さ」には(例として)“0x4500”が格納されている。なお、「開始アドレス」は、図5に示す、第1のメモリデバイス12、第2のメモリデバイス14、及び第3のメモリデバイス16により構成される、仮想大容量ストレージにおけるアドレスとなっている。
図8の(2−2)は、Master2からSlave1への、コマンドパケットのデータ例である。
上述のように、ルートコンプレクス6(Mater1)から、バスマスタの移譲、及び、コマンドの送信を受けた第1のメモリデバイス12(Master2)は、「開始アドレス」について、仮想大容量ストレージにおけるアドレスでは無く、第2のメモリデバイス14(Slave1)におけるアドレスに書き換えて、「開始アドレス」に格納する(即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更される)。また、「宛先」には、第2のエンドポイント(第2のメモリデバイス14)を表すデータ(バス番号:1、デバイス番号:12)が格納されている。「送り元」には、第1のエンドポイント(第1のメモリデバイス12)を表すデータ(バス番号:1、デバイス番号:11)が格納されている。
同様に、図8の(2−3)は、Master2からSlave2への、コマンドパケットのデータ例である。
上述のように、ルートコンプレクス6(Mater1)から、バスマスタの移譲、及び、コマンドの送信を受けた第1のメモリデバイス12(Master2)は、「開始アドレス」について、仮想大容量ストレージにおけるアドレスでは無く、第3のメモリデバイス16(Slave2)におけるアドレスに書き換えて、「開始アドレス」に格納する(即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更される)。また、「宛先」には、第3のエンドポイント(第3のメモリデバイス16)を表すデータ(バス番号:1、デバイス番号:13)が格納されている。「送り元」には、第1のエンドポイント(第1のメモリデバイス12)を表すデータ(バス番号:1、デバイス番号:11)が格納されている。
2.2.3.書き込み処理
図9は、実施の形態1に係る情報処理装置による仮想大容量ストレージへの書き込み処理の概略フロー図である。
図9は、実施の形態1に係る情報処理装置による仮想大容量ストレージへの書き込み処理の概略フロー図である。
ここでの書き込み処理は、大容量ストレージを構成する第1〜第3のエンドポイント(第1のメモリデバイス12、第2のメモリデバイス14、第3のメモリデバイス16)に対して行われるものが想定されている。即ち、書き込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界をまたぐ場合の書き込み処理が想定されている。
図9に示す書き込み処理では、開始(S20)後、上記にて説明したように、ルートコンプレクス6(Master1)は情報格納部6aに、書き込み処理のためのコマンドを格納する。更に、ルートコンプレクス6(Master1)はバスマスタを第1のメモリデバイス12(Master2)に移譲する。バスマスタの移譲を受けて、第1のメモリデバイス12(Master2)の第1のコントローラ12bは、ルートコンプレクス6(Master1)の情報格納部6aに格納された書き込み処理のためのコマンドを読み取るトランザクションを起動し、書き込み処理のためのコマンドを読み取る。
このようにして、ルートコンプレクス6(Master1)から第1のメモリデバイス12(Master2)へのコマンドが送信され、第1のメモリデバイス12(Master2)が受け取ることになる。
第1のメモリデバイス12(Master2)が受け取った書き込み処理のためのコマンドについて、対象とされる仮想大容量ストレージにおけるメモリ上のアドレスが第1のコントローラ12bにより判定される(S22)。対象とされるアドレスがマスターメモリ(Master2)の第1の情報格納部12aにおけるものであれば(例えば、[1〜32GB]であれば)、マスターメモリ(Mater2)(第1のメモリデバイス12)に対して書き込み処理が行われる(S24)。対象とされるアドレスがスレーブ1(Slave1)の第2の情報格納部14aにおけるものであれば(例えば、[32GB+1B]〜[32GB+32GB]であれば)、スレーブ1(Slave1)(第2のメモリデバイス14)に対して書き込み処理が行われる(S26)。対象とされるアドレスがスレーブ2(Slave2)の第3の情報格納部16aにおけるものであれば(例えば、[32GB+32GB+1B]〜[32GB+32GB+64GB]であれば)、スレーブ2(Slave2)(第3のメモリデバイス16)に対して書き込み処理が行われる(S28)。全てのペイロードデータについての書き込みが完了すると、書き込み処理は終了する(S30)。
ここで、スレーブ1(Slave1)(第2のメモリデバイス14)に対しての書き込み処理は、図8の(2−2)に示すような、マスターメモリである第1のメモリデバイス12(Master2)からスレーブ1(Slave1)へのコマンドにより、実行される。同様に、スレーブ2(Slave2)(第3のメモリデバイス16)に対しての書き込み処理は、図8の(2−3)に示すような、マスターメモリである第1のメモリデバイス12(Master2)からスレーブ2(Slave2)へのコマンドにより、実行される。
従って、書き込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界を一つまたぐ場合、例えば、第1のメモリデバイス12(Master2)と第2のメモリデバイス14(Slave1)との境界をまたぐ場合、マスターメモリは、Master2からSlave1へのコマンドを分割して発行する(図8の(2−2)参照)。このとき、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1B」から32GBが差し引かれ)、「ペイロードの長さ」は元々のペイロードの長さから、Master2における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされ、「ペイロード」には元々のペイロードの先頭から、Master2における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたものが格納される。なお、第1のメモリデバイス12(Master2)が受け取った書き込み処理のためのコマンドのうち、第1のメモリデバイス12(Master2)自身に対するもの(即ち、アドレスがMaster2自身に対するもの)については、第1のメモリデバイス12(Master2)は受け取るのみである(即ち、コマンドを分割せず、該当アドレスについての書き込みを行う)。但し、元々のペイロードの先頭から、自身における開始アドレスから自身の終端アドレスまでの長さのデータについてのみ、書き込みを行う。
また、書き込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの別の境界を一つまたぐ場合、例えば、第2のメモリデバイス14(Slave1)と第3のメモリデバイス16(Slave2)との境界をまたぐ場合、マスターメモリは、Master2からSlave1へのコマンド(図8の(2−2)参照)と、Master2からSlave2へのコマンド(図8の(2−3)参照)とを、分割して発行する。Master2からSlave1へのコマンドでは、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1B〜32GB+32GB」から32GBが差し引かれ)、「ペイロードの長さ」はSlave1における開始アドレスから終端アドレスまでの長さとされ、「ペイロード」には元々のペイロードの先頭から、Slave1における開始アドレスから終端アドレスまでの長さのデータが格納される。
Master2からSlave2へのコマンドでは、「開始アドレス」は第3のメモリデバイス16(Slave2)上のものとされ(即ち、「32GB+32GB+1B」から(32GB+32GB)が差し引かれ)、「ペイロードの長さ」は元々のペイロードの長さから、Slave1における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされ、「ペイロード」には元々のペイロードの先頭から、Slave1における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたものが格納される。
また、書き込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界を二つまたぐ場合、つまり、第1のメモリデバイス12(Master2)と第2のメモリデバイス14(Slave1)との境界と、第2のメモリデバイス14(Slave1)と第3のメモリデバイス16(Slave2)との境界とを、またぐ場合、マスターメモリは、Master2からSlave1へのコマンド(図8の(2−2)参照)と、Master2からSlave2へのコマンド(図8の(2−3)参照)とを、分割して発行する。
Master2からSlave1へのコマンドでは、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1B」から32GBが差し引かれ)、「ペイロードの長さ」は自身の開始アドレスから終端アドレスまでの長さ(即ち、32GB)とされ、「ペイロード」には、元々のペイロードの先頭からMaster2における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたデータにおける、頭から32GB(即ち、自身の開始アドレスから終端アドレスまでの長さ)分のデータが、格納される。
Master2からSlave2へのコマンドでは、「開始アドレス」は第3のメモリデバイス16(Slave2)上のものとされる(即ち、「32GB+32GB+1B」から(32GB+32GB)が差し引かれる)。また、「ペイロードの長さ」は元々のペイロードの長さから、Master2における開始アドレスから終端アドレスまでの長さと、Slave1における開始アドレスから終端アドレスまでの長さ(即ち、32GB)とが、差し引かれたものとされる。「ペイロード」には、元々のペイロードの先頭から、Master2における開始アドレスから終端アドレスまでに書き込まれるデータと、Slave1における開始アドレスから終端アドレスまでに書き込まれるデータ(即ち、32GB分のデータ)とが、省かれたデータが格納される。
なお、第1のメモリデバイス12(Master2)が受け取った書き込み処理のためのコマンドのうち、第1のメモリデバイス12(Master2)自身に対するもの(即ち、アドレスがMaster2自身に対するもの)については、第1のメモリデバイス12(Master2)は受け取るのみである。即ち、第1のメモリデバイス12(Master2)は、コマンドを分割せず、該当アドレスについての書き込みを行う。但し、元々のペイロードの先頭から、自身における開始アドレスから自身の終端アドレスまでの長さのデータについてのみ書き込みを行う。
なお、書き込み処理の終了時に、第1のメモリデバイス12(Master2)はバスマスタをルートコンプレクス6(Master1)に移譲し戻してもよい。
2.2.1.読み込み処理
図10は、実施の形態1に係る情報処理装置による仮想大容量ストレージからの読み込み処理の概略フロー図である。
図10は、実施の形態1に係る情報処理装置による仮想大容量ストレージからの読み込み処理の概略フロー図である。
ここでの読み込み処理は、大容量ストレージを構成する第1〜第3のエンドポイント(第1のメモリデバイス12、第2のメモリデバイス14、第3のメモリデバイス16)に対して行われるものが想定されている。即ち、読み込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界をまたぐ場合の読み込み処理が想定されている。
図9に示す読み込み処理では、開始(S40)後、上記にて説明したように、ルートコンプレクス6(Master1)は情報格納部6aに、読み込み処理のためのコマンドを格納する。更に、ルートコンプレクス6(Master1)はバスマスタを第1のメモリデバイス12(Master2)に移譲する。バスマスタの移譲を受けて、第1のメモリデバイス12(Master2)の第1のコントローラ12bは、ルートコンプレクス6(Master1)の情報格納部6aに格納された読み込み処理のためのコマンドを読み取るトランザクションを起動し、読み込み処理のためのコマンドを読み取る。このようにして、ルートコンプレクス6(Master1)から第1のメモリデバイス12(Master2)へのコマンドが送信され、第1のメモリデバイス12(Master2)が受け取ることになる。
第1のメモリデバイス12(Master2)が受け取った読み取り処理のためのコマンドについて、対象とされる仮想大容量ストレージにおけるメモリ上のアドレスが第1のコントローラ12bにより判定される(S42)。対象とされるアドレスがマスターメモリ(Master2)の第1の情報格納部12aにおけるものであれば(例えば、[1B〜32GB]であれば)、マスターメモリ(Mater2)(第1のメモリデバイス12)に対して読み込み処理が行われる(S44)。対象とされるアドレスがスレーブ1(Slave1)の第2の情報格納部14aにおけるものであれば(例えば、[32GB+1B]〜[32GB+32GB]であれば)、スレーブ1(Slave1)(第2のメモリデバイス14)に対して読み込み処理が行われる(S46)。対象とされるアドレスがスレーブ2(Slave2)の第3の情報格納部16aにおけるものであれば(例えば、[32GB+32GB+1B]〜[32GB+32GB+64GB]であれば)、スレーブ2(Slave2)(第3のメモリデバイス16)に対して読み込み処理が行われる(S48)。
ここで、スレーブ1(Slave1)(第2のメモリデバイス14)に対しての読み込み処理は、図8の(2−2)に示すような、マスターメモリである第1のメモリデバイス12(Master2)からスレーブ1(Slave1)へのコマンドにより、実行される。スレーブ1(Slave1)から読み出されたデータは、当該コマンドパケットの「ペイロード」に格納される。
更に、当該コマンドパケットの「宛先」にはルートコンプレクス6を表すデータが格納され、「送り元」にはマスターメモリ(第1のエンドポイント、第1のメモリデバイス12)を表すデータが格納され、「開始アドレス」は第2のメモリデバイス14(Slave1)におけるアドレスでは無く、仮想大容量ストレージにおけるアドレスに書き換えられて(即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更されて)、ルートコンプレクス6に返送される。即ち、スレーブ1(Slave1)から読み出されたデータは、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送されることになる。
同様に、スレーブ2(Slave2)(第3のメモリデバイス16)に対しての読み込み処理は、図8の(2−3)に示すような、マスターメモリである第1のメモリデバイス12(Master2)からスレーブ2(Slave2)へのコマンドにより、実行される。
スレーブ2(Slave2)から読み出されたデータは、当該コマンドパケットの「ペイロード」に格納される。
更に、当該コマンドパケットの「宛先」にはルートコンプレクス6を表すデータが格納され、「送り元」にはマスターメモリ(第1のエンドポイント、第1のメモリデバイス12)を表すデータが格納され、「開始アドレス」は第3のメモリデバイス16(Slave2)におけるアドレスでは無く、仮想大容量ストレージにおけるアドレスに書き換えられて(即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更されて)、ルートコンプレクス6に返送される。即ち、スレーブ2(Slave2)から読み出されたデータは、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送されることになる。
従って、読み込み処理の(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界を一つ以上またぐ場合には、書き込み処理と同様に、マスターメモリは、コマンドの分割(及び発行)を行う。
まず、読み込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界を一つまたぐ場合、例えば、第1のメモリデバイス12(Master2)と第2のメモリデバイス14(Slave1)との境界をまたぐ場合、マスターメモリは、Master2からSlave1へのコマンドを分割して発行する(図8の(2−2)参照)。このとき、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1」から32GBが差し引かれ)、「ペイロードの長さ」は元々のペイロードの長さから、Master2における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされる。
なお、第1のメモリデバイス12(Master2)が受け取った読み込み処理のためのコマンドのうち、第1のメモリデバイス12(Master2)自身に対するもの(即ち、アドレスがMaster2自身に対するもの)については、第1のメモリデバイス12(Master2)は受け取るのみである(即ち、コマンドを分割せず、該当アドレスについての読み込みを行う)。但し、自身における開始アドレスから自身の終端アドレスまでの長さについてのみ、読み込みを行う。
第2のメモリデバイス14(Slave1)から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送される。
また、読み込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの別の境界を一つまたぐ場合、例えば、第2のメモリデバイス14(Slave1)と第3のメモリデバイス16(Slave2)との境界をまたぐ場合、マスターメモリは、Master2からSlave1へのコマンド(図8の(2−2)参照)と、Master2からSlave2へのコマンド(図8の(2−3)参照)とを、分割して発行する。
Master2からSlave1へのコマンドでは、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1B〜32GB+32GB」から32GBが差し引かれ)、「ペイロードの長さ」はSlave1における開始アドレスから終端アドレスまでの長さとされる。
Master2からSlave2へのコマンドでは、「開始アドレス」は第3のメモリデバイス16(Slave2)上のものとされ(即ち、「32GB+32GB+1B」から(32GB+32GB)が差し引かれ)、「ペイロードの長さ」は元々のペイロードの長さから、Slave1における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされる。
第2のメモリデバイス14(Slave1)から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送される。
第3のメモリデバイス16(Slave2)から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送される。
また、読み込み処理の開始点(開始アドレス)から終了点(終了アドレス)までが、メモリデバイスの境界を二つまたぐ場合、つまり、第1のメモリデバイス12(Master2)と第2のメモリデバイス14(Slave1)との境界と、第2のメモリデバイス14(Slave1)と第3のメモリデバイス16(Slave2)との境界とを、またぐ場合、マスターメモリは、Master2からSlave1へのコマンド(図8の(2−2)参照)と、Master2からSlave2へのコマンド(図8の(2−3)参照)とを、分割して発行する。
Master2からSlave1へのコマンドでは、「開始アドレス」は第2のメモリデバイス14(Slave1)上のものとされ(即ち、「32GB+1B」から32GBが差し引かれ)、「ペイロードの長さ」は自身の開始アドレスから終端アドレスまでの長さ(即ち、32GB)とされる。
Master2からSlave2へのコマンドでは、「開始アドレス」は第3のメモリデバイス16(Slave2)上のものとされ(即ち、「32GB+32GB+1B」から(32GB+32GB)が差し引かれ)、「ペイロードの長さ」は元々のペイロードの長さから、Master2における開始アドレスから終端アドレスまでの長さと、Slave1における開始アドレスから終端アドレスまでの長さ(即ち、32GB)とが、差し引かれたものとされる。
なお、第1のメモリデバイス12(Master2)が受け取った読み込み処理のためのコマンドのうち、第1のメモリデバイス12(Master2)自身に対するもの(即ち、アドレスがMaster2自身に対するもの)については、第1のメモリデバイス12(Master2)は受け取るのみである(即ち、コマンドを分割せず、該当アドレスについての読み込みを行う)。但し、自身における開始アドレスから自身の終端アドレスまでの長さについてのみ、読み込みを行う。
第2のメモリデバイス14(Slave1)から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送される。
第3のメモリデバイス16(Slave2)から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして(マスターメモリを介して)、ルートコンプレクス6に返送される。
全てのデータについての読み込みが完了すると、読み込み処理は終了する(S50)。読み込み処理の終了時に、第1のメモリデバイス12(Master2)はバスマスタをルートコンプレクス6(Master1)に移譲し戻してもよい。
2.3.効果等
以上のように、本実施の形態において、PCIeシステムとしての情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む。複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合される。
以上のように、本実施の形態において、PCIeシステムとしての情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む。複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合される。
このことにより、複数のメモリデバイスが一つの仮想ストレージを構成する。ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報を、スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
これにより、情報処理装置は、複数のメモリデバイスにより構成される一つの仮想大容量ストレージを利用して、長時間記録された画像データ等の大きいサイズのデータを一まとまりとして取り扱うことができる。
3.他の実施の形態
以上のように、本出願において開示する技術の例示として、実施の形態1を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
以上のように、本出願において開示する技術の例示として、実施の形態1を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
また、実施の形態を説明するために、添付図面および詳細な説明を提供した。したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
本開示は、複数のリムーバブルメディアが装着される情報処理装置に適用可能である。具体的には、ビデオサーバなどに、本開示は適用可能である。
4 CPU
6 ルートコンプレクス
6a 情報格納部
12 第1のエンドポイント(第1のメモリデバイス)
12a 第1の情報格納部
14 第2のエンドポイント(第2のメモリデバイス)
14a 第2の情報格納部
16 第3のエンドポイント(第3のメモリデバイス)
16a 第3の情報格納部
20 ホストデバイス
22 PCIeバス
6 ルートコンプレクス
6a 情報格納部
12 第1のエンドポイント(第1のメモリデバイス)
12a 第1の情報格納部
14 第2のエンドポイント(第2のメモリデバイス)
14a 第2の情報格納部
16 第3のエンドポイント(第3のメモリデバイス)
16a 第3の情報格納部
20 ホストデバイス
22 PCIeバス
Claims (4)
- PCIeシステムとしての情報処理装置であって、
前記情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含み、
複数の前記メモリデバイスのうちの一つがマスターメモリとして定義され、それ以外の前記メモリデバイスがスレーブメモリとして定義され、且つ、前記マスターメモリと論理的に結合されることにより、複数の前記メモリデバイスが一つの仮想ストレージを構成し、
前記ルートコンプレクスから、一つの仮想ストレージを構成する複数の前記メモリデバイスへのアクセス時には、前記ルートコンプレクスは前記マスターメモリにバスマスタを移譲し、
バスマスタを移譲され、且つ、前記ルートコンプレクスからアクセスに係るコマンドを受け取った前記マスターメモリは、アクセスに係るコマンドにおける、前記アクセスのためアドレス情報を、前記スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部の前記スレーブメモリに送信する、
情報処理装置。 - 前記ルートコンプレクスは、付属する情報格納部にアクセスに係るコマンドを格納した上で、前記マスターメモリにバスマスタを移譲し、
バスマスタを移譲された前記マスターメモリは、前記ルートコンプレクスに付属する前記情報格納部に格納された前記アクセスに係るコマンドを読み取ることにより、前記ルートコンプレクスから前記アクセスに係るコマンドを受け取る、
請求項1に記載の情報処理装置。 - 前記メモリデバイスは、マスターメモリと成り得る機能を備えるかどうかの情報、容量に関する情報が格納される
請求項1に記載の情報処理装置。 - 前記マスターメモリは、前記ルートコンプレクスからバスマスタを移譲され、データの書き込みまたは読み込みが完了すると、前記ルートコンプレクスへバスマスタを移譲し戻す
請求項1に記載の情報処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017076863 | 2017-04-07 | ||
JP2017076863 | 2017-04-07 | ||
PCT/JP2018/014480 WO2018186454A1 (ja) | 2017-04-07 | 2018-04-04 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018186454A1 JPWO2018186454A1 (ja) | 2019-11-21 |
JP6704127B2 true JP6704127B2 (ja) | 2020-06-03 |
Family
ID=63712232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019511292A Active JP6704127B2 (ja) | 2017-04-07 | 2018-04-04 | 情報処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10983929B2 (ja) |
EP (1) | EP3588316B1 (ja) |
JP (1) | JP6704127B2 (ja) |
CN (1) | CN110462598B (ja) |
WO (1) | WO2018186454A1 (ja) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243167B2 (en) * | 2003-09-19 | 2007-07-10 | Intel Corporation | Managing peripheral device address space resources using a tunable bin-packing/knapsack algorithm |
JP2007156533A (ja) * | 2005-11-30 | 2007-06-21 | Toshiba Corp | 記憶装置及び記録領域管理方法 |
CN100581172C (zh) * | 2006-04-19 | 2010-01-13 | 杭州华三通信技术有限公司 | 一种对目的磁盘进行访问的方法和扩展磁盘容量的*** |
US7562176B2 (en) * | 2007-02-28 | 2009-07-14 | Lsi Corporation | Apparatus and methods for clustering multiple independent PCI express hierarchies |
US8122177B1 (en) * | 2009-05-19 | 2012-02-21 | Xilinx, Inc. | Direct memory access technique for use with PCIe endpoints |
US8880471B2 (en) * | 2010-06-15 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Virtual storage device |
US8725919B1 (en) * | 2011-06-20 | 2014-05-13 | Netlogic Microsystems, Inc. | Device configuration for multiprocessor systems |
JP5903801B2 (ja) | 2011-08-23 | 2016-04-13 | 富士通株式会社 | 通信装置およびid設定方法 |
JP2013088879A (ja) | 2011-10-13 | 2013-05-13 | Kyocera Document Solutions Inc | 情報処理装置 |
JP2014002545A (ja) | 2012-06-18 | 2014-01-09 | Ricoh Co Ltd | データ転送装置、及びデータ転送方法 |
JP6004806B2 (ja) * | 2012-07-23 | 2016-10-12 | キヤノン株式会社 | 情報処理システム |
US20140122777A1 (en) | 2012-10-31 | 2014-05-01 | Mosaid Technologies Incorporated | Flash memory controller having multi mode pin-out |
CN104021809A (zh) * | 2013-03-01 | 2014-09-03 | 鸿富锦精密电子(天津)有限公司 | Usb存储器 |
US20150143024A1 (en) * | 2013-11-20 | 2015-05-21 | Sage Microelectronics Corp. | Redundant array of independent modules |
EP4092540B1 (en) * | 2013-12-31 | 2024-01-31 | Huawei Technologies Co., Ltd. | Method and apparatus for extending pcie domain |
US20160371222A1 (en) * | 2015-06-22 | 2016-12-22 | Qualcomm Incorporated | COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER |
JP6620313B2 (ja) | 2016-01-06 | 2019-12-18 | パナソニックIpマネジメント株式会社 | ホスト装置、スレーブ装置及びリムーバブルシステム |
US10339083B2 (en) | 2016-01-06 | 2019-07-02 | Panasonic Intellectual Property Management Co., Ltd. | Host device, slave device, and removable system |
-
2018
- 2018-04-04 JP JP2019511292A patent/JP6704127B2/ja active Active
- 2018-04-04 EP EP18780488.5A patent/EP3588316B1/en active Active
- 2018-04-04 WO PCT/JP2018/014480 patent/WO2018186454A1/ja unknown
- 2018-04-04 CN CN201880019471.3A patent/CN110462598B/zh active Active
-
2019
- 2019-09-26 US US16/584,487 patent/US10983929B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2018186454A1 (ja) | 2018-10-11 |
JPWO2018186454A1 (ja) | 2019-11-21 |
EP3588316A1 (en) | 2020-01-01 |
EP3588316B1 (en) | 2021-06-09 |
US10983929B2 (en) | 2021-04-20 |
CN110462598A (zh) | 2019-11-15 |
EP3588316A4 (en) | 2020-03-04 |
US20200026670A1 (en) | 2020-01-23 |
CN110462598B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639919B (zh) | 資料儲存系統中的多埠中介件架構 | |
US8589723B2 (en) | Method and apparatus to provide a high availability solid state drive | |
US10540307B1 (en) | Providing an active/active front end by coupled controllers in a storage system | |
US20160259568A1 (en) | Method and apparatus for storing data | |
KR20060017470A (ko) | 개량 데이터 전송을 위한 제어기 장치 및 방법 | |
CN105408875A (zh) | 在存储器接口上的分布式过程执行和文件*** | |
TW201411358A (zh) | 透過PCIe介面連接於一主機系統的儲存裝置和方法 | |
CN117591450B (zh) | 一种数据处理***、方法、设备及介质 | |
US20210255794A1 (en) | Optimizing Data Write Size Using Storage Device Geometry | |
US10310740B2 (en) | Aligning memory access operations to a geometry of a storage device | |
US9921753B2 (en) | Data replication across host systems via storage controller | |
JP6704127B2 (ja) | 情報処理装置 | |
US20060277326A1 (en) | Data transfer system and method | |
US7418545B2 (en) | Integrated circuit capable of persistent reservations | |
KR101569049B1 (ko) | 패스 스루 스토리지 디바이스들 | |
US10664184B1 (en) | Inter-drive data transfer | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
US11200172B2 (en) | Storage system and method of controlling storage system | |
JP2022039501A (ja) | ストレージ制御装置、送達状況判定プログラムおよびストレージシステム | |
JPWO2021075154A1 (ja) | データ転送システム、及びシステムホスト | |
US7702859B2 (en) | Detachable direct memory access arrangement | |
US20160085689A1 (en) | Memory transfer of objects in a data storage device | |
JP2000330728A (ja) | ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体 | |
JP2000276383A (ja) | 記憶容量可変機能付きコンピュータおよび記憶容量可変方法 | |
JPS58169271A (ja) | デ−タ・バツフア制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190731 |
|
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: 20200317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200330 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6704127 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |