JP2021105843A - Information processing apparatus and method for controlling information processing apparatus - Google Patents

Information processing apparatus and method for controlling information processing apparatus Download PDF

Info

Publication number
JP2021105843A
JP2021105843A JP2019236839A JP2019236839A JP2021105843A JP 2021105843 A JP2021105843 A JP 2021105843A JP 2019236839 A JP2019236839 A JP 2019236839A JP 2019236839 A JP2019236839 A JP 2019236839A JP 2021105843 A JP2021105843 A JP 2021105843A
Authority
JP
Japan
Prior art keywords
response
request
error
address
storage means
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
JP2019236839A
Other languages
Japanese (ja)
Inventor
和幸 横田
Kazuyuki Yokota
和幸 横田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019236839A priority Critical patent/JP2021105843A/en
Publication of JP2021105843A publication Critical patent/JP2021105843A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a mirroring system that can repair data even when it uses a protocol for handling a plurality of commands at a time and a writing error occurs at different queue positions of a plurality of storages.SOLUTION: An information processing apparatus has non-volatile first storage means and non-volatile second storage means, and has control means that, in accordance with the fact that a response from the first storage means does not include information indicating an error and a response from the second storage means includes information indicating an error, reads out data from a first address of the first storage means corresponding to a first request, and writes the data read out from the first address of the first storage means in a first address of the second storage means corresponding to the first request.SELECTED DRAWING: Figure 12

Description

本発明は、情報処理装置および情報処理装置の制御方法に関する。 The present invention relates to an information processing device and a control method for the information processing device.

近年、PCなどの情報処理装置では、不揮発性メモリを利用したソリッドステートドライブ(SSD)を用いることでハードディスドライブ(HDD)を用いるよりも高速なデータ転送を可能としている。一方で、これら記憶装置に用いられるインタフェースであるSerial ATA(SATA)は、転送時のデータ・エンコーディングに要する処理時間が増えてレイテンシが大きくなるため、SSD本来の転送パフォーマンスを発揮できていなかった。 In recent years, in information processing devices such as PCs, by using a solid state drive (SSD) using a non-volatile memory, it is possible to transfer data at a higher speed than using a hard disk drive (HDD). On the other hand, Serial ATA (SATA), which is an interface used for these storage devices, has not been able to exhibit the original transfer performance of SSD because the processing time required for data encoding at the time of transfer increases and the latency increases.

そこで、さらに近年では汎用バスのPCI−Express(PCIe)に直接接続でき、SSDの高速性を活かす新たなプロトコルであるNon−Volatile Memory Express(NVMe)プロトコルに対応したSSDが登場し始めている。 Therefore, in recent years, SSDs that can be directly connected to the PCI-Express (PCIe) of general-purpose buses and that support the Non-Volateile Memory Express (NVMe) protocol, which is a new protocol that takes advantage of the high speed of SSDs, have begun to appear.

また、HDDやSSDなどの記憶媒体の故障に対するデータ保護の仕組みとして、2つの記憶装置を用いてデータを二重化して保存するミラーリング技術が存在する。ミラーリングはブリッジ装置を用いて、ホストからのデータを同時に2つの記憶装置に記録するため、データや記憶装置自体が破損しても他方からのデータコピーで復旧が可能である。 Further, as a mechanism for protecting data against a failure of a storage medium such as an HDD or SSD, there is a mirroring technique for duplicating and storing data using two storage devices. Since mirroring uses a bridge device to record data from the host in two storage devices at the same time, even if the data or the storage device itself is damaged, it can be recovered by copying the data from the other.

図1に示すように、記憶装置1側の書き込み処理(コマンドB)が書き込みエラーした際に、記憶装置2側の書き込み処理(コマンドB)で書き込まれたデータをブリッジ装置が読取り、記憶装置1へ書き込み直す。また、図2に示すように、記憶装置1と記憶装置2の書き込み処理が共に書き込みエラーとなった際には、正しいデータを持ち合わせていないため、ブリッジ装置での修復が不可能となる。 As shown in FIG. 1, when the write process (command B) on the storage device 1 side causes a write error, the bridge device reads the data written by the write process (command B) on the storage device 2 side, and the storage device 1 Rewrite to. Further, as shown in FIG. 2, when both the writing processes of the storage device 1 and the storage device 2 result in a write error, the bridge device cannot repair the data because the correct data is not possessed.

特許文献1は、2台のHDDに同じデータを書き込むRAID1の情報処理装置である。2台のHDDに単一のコマンドでデータの書き込み後に、書き込みエラーがあった否かを確認することで、データ書き込み修復を行うかどうかを判断している。特許文献1に記載の情報処理装置は、2台のHDDの各々に対してデータの書き込みエラーの有無を確認することで、データ書き込み修復が可能か否かを判断している。 Patent Document 1 is an information processing device of RAID 1 that writes the same data to two HDDs. After writing data to the two HDDs with a single command, it is determined whether or not to repair the data writing by checking whether or not there is a write error. The information processing apparatus described in Patent Document 1 determines whether or not data write restoration is possible by confirming the presence or absence of a data write error for each of the two HDDs.

特開2015−210833号公報JP-A-2015-210833

しかし、NVMeプロトコルでは、1度の処理で複数のコマンドを扱うため、異なるデータの書き込みでエラーが発生することがあり得る。例えば、図3では、記憶装置1側のコマンドBと記憶装置2側のコマンドCが異なるデータの書き込みでのエラーに該当する。その際に、両記憶装置に書き込みエラーがあるという判断で、修復の可否を判定してしまうと、データ修復可能であるにもかかわらずデータ修復不能となる。 However, in the NVMe protocol, since a plurality of commands are handled in one process, an error may occur in writing different data. For example, in FIG. 3, the command B on the storage device 1 side and the command C on the storage device 2 side correspond to an error in writing different data. At that time, if it is determined that there is a write error in both storage devices and it is determined whether or not the data can be repaired, the data cannot be repaired even though the data can be repaired.

本発明は、複数のコマンドを一度に扱うプロトコルを用いた際に、複数の記憶装置の異なるキュー位置において書き込みエラーが発生してもデータの修復を行うことが可能なミラーリングシステムを提供することを目的としている。 The present invention provides a mirroring system capable of repairing data even if a write error occurs at different queue positions of a plurality of storage devices when using a protocol that handles a plurality of commands at once. I am aiming.

本発明は、不揮発性の第1記憶手段および不揮発性の第2記憶手段を有する情報処理装置であって、第1アドレスにデータを記憶させる第1要求および第2アドレスにデータを記憶させる第2要求が順番に配された少なくとも2つの要求を前記第1記憶手段に送信する第1送信手段と、前記少なくとも2つの要求を前記第2記憶手段に送信する第2送信手段と、少なくとも前記第1要求に対する第1応答および前記第2要求に対する第2応答を、前記第1記憶手段から順番に受信する第1受信手段と、少なくとも前記第1要求に対する第3応答および前記第2要求に対する第4応答を、前記第2記憶手段から順番に受信する第2受信手段と、少なくとも前記第1応答および前記第2応答を受信した順番に保持する第1保持手段と、少なくとも前記第3応答および前記第4応答を受信した順番に保持する第2保持手段と、前記第1保持手段が保持した応答および前記第2保持手段が保持した応答にエラーを示す情報が含まれるかを確認する確認手段と、前記第1応答がエラーを示す情報を含まず且つ前記第3応答がエラーを示す情報を含むことに従って、前記第1要求に対応する前記第1記憶手段の第1アドレスからデータの読み出しを行い、前記第1要求に対応する前記第2記憶手段の第1アドレスに前記第1記憶手段の第1アドレスから読み出したデータを書き込ませ、前記第4応答がエラーを示す情報を含まず且つ前記第2応答がエラーを示す情報を含むことに従って、前記第2要求に対応する前記第2記憶手段の第2アドレスからデータの読み出しを行い、前記第2要求に対応する前記第1記憶手段の第2アドレスに前記第2記憶手段の第2アドレスから読み出したデータを書き込ませる制御手段と、を有することを特徴とする。 The present invention is an information processing apparatus having a non-volatile first storage means and a non-volatile second storage means, the first request for storing data at a first address and the second for storing data at a second address. A first transmission means for transmitting at least two requests in which requests are arranged in order to the first storage means, a second transmission means for transmitting the at least two requests to the second storage means, and at least the first transmission means. A first receiving means that receives a first response to a request and a second response to the second request in order from the first storage means, and at least a third response to the first request and a fourth response to the second request. A second receiving means that sequentially receives the first response from the second storage means, a first holding means that holds at least the first response and the second response in the order in which they are received, and at least the third response and the fourth response. A second holding means that holds the responses in the order in which they are received, a confirmation means that confirms whether the response held by the first holding means and the response held by the second holding means include information indicating an error, and the above. According to the fact that the first response does not include the information indicating the error and the third response contains the information indicating the error, data is read from the first address of the first storage means corresponding to the first request, and the data is read. The data read from the first address of the first storage means is written to the first address of the second storage means corresponding to the first request, and the fourth response does not include information indicating an error and the second response. Reads data from the second address of the second storage means corresponding to the second request according to the inclusion of information indicating an error, and sets the second address of the first storage means corresponding to the second request. It is characterized by having a control means for writing data read from the second address of the second storage means.

本発明は、複数のコマンドを一度に扱うプロトコルを用いた際に、複数の記憶装置が異なるキュー位置において書き込みエラーが発生してもデータの修復を行うことが可能なミラーリングシステムを提供することが可能となる。 The present invention can provide a mirroring system capable of repairing data even if a write error occurs in different queue positions of a plurality of storage devices when using a protocol that handles a plurality of commands at once. It will be possible.

従来のミラーリングシステムでの修復可能例Repairable example with a conventional mirroring system 従来のミラーリングシステムでの修復不可能例Non-repairable example with a conventional mirroring system NVMeにおけるミラーリングシステムの課題説明図Explanatory drawing of issues of mirroring system in NVMe 情報処理装置のミラーリングシステムの構成を示すブロック図Block diagram showing the configuration of the mirroring system of the information processing device CUの詳細ブロック図Detailed block diagram of CU ブリッジ装置の詳細ブロック図Detailed block diagram of the bridging device 第1記憶装置及び第2記憶装置の詳細ブロック図Detailed block diagram of the first storage device and the second storage device ミラーリングシステムの動作説明図Operational diagram of mirroring system NVMeコマンドをブリッジ装置に格納するコマンド処理を示すフローチャートFlow chart showing command processing to store NVMe commands in the bridge device NVMeコマンドがブリッジ装置に格納された後のコマンド処理を示すフローチャートFlow chart showing command processing after NVMe commands are stored in the bridge device 記憶装置名称とコマンド通知の関係を示すコマンド処理リストCommand processing list showing the relationship between the storage device name and command notification NVMeコマンドの応答がブリッジ装置に格納された後の処理を示すフローチャートA flowchart showing processing after the response of the NVMe command is stored in the bridge device. 第1記憶装置及び第2記憶装置の応答と修復及び通知の関係を示すリストA list showing the relationship between the response of the first storage device and the second storage device and the repair and notification. NVMeにおけるミラーリングシステムの課題説明図Explanatory drawing of issues of mirroring system in NVMe NVMeコマンドの応答がブリッジ装置に格納された後の処理を示すフローチャートA flowchart showing processing after the response of the NVMe command is stored in the bridge device. 第1記憶装置及び第2記憶装置の応答と修復及び通知の関係を示すリストA list showing the relationship between the response of the first storage device and the second storage device and the repair and notification. ミラーリングシステムの応答構成を示すブロック図Block diagram showing the response configuration of the mirroring system

添付図面を参照して本発明の実施例を詳しく説明する。なお、以下の実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。 Examples of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the following examples do not limit the invention according to the claims, and not all combinations of features described in the examples are essential for the means for solving the present invention.

(実施例1)
図4は、本実施例に関わる情報処理装置のミラーリングシステムの構成を示すブロック図である。
(Example 1)
FIG. 4 is a block diagram showing a configuration of a mirroring system of the information processing apparatus according to the present embodiment.

本実施例の情報処理装置400は、ミラーリングシステム4を有する。ミラーリングシステム4は、コントローラユニット(以下、CU401)と、ブリッジ装置402と、第1記憶装置403と第2記憶装置404を有する。 The information processing device 400 of this embodiment has a mirroring system 4. The mirroring system 4 includes a controller unit (hereinafter referred to as CU401), a bridge device 402, a first storage device 403, and a second storage device 404.

CU401は、ブリッジ装置402と接続されており、情報処理装置400の制御コントローラとしての機能を有している。 The CU 401 is connected to the bridge device 402 and has a function as a control controller for the information processing device 400.

ブリッジ装置402は、CU401と第1記憶装置403及び第2記憶装置404と接続されており、CU401から第1記憶装置403に記憶されるデータを二重化して、第2記憶装置404に記憶するミラーリングの機能を有する。 The bridge device 402 is connected to the CU 401, the first storage device 403, and the second storage device 404, and mirroring that duplicates the data stored in the first storage device 403 from the CU 401 and stores it in the second storage device 404. Has the function of.

第1記憶装置403は、ブリッジ装置402と接続されており、CU401で扱うシステムソフトウェアやユーザデータ及びアプリケーションデータ等を格納する。第2記憶装置404は、ブリッジ装置402と接続されており、第1記憶装置403のデータを二重化したバックアップデータを格納する。第1記憶装置403と第2記憶装置404は、不揮発性の半導体記憶装置であり、例えばSSDである。 The first storage device 403 is connected to the bridge device 402 and stores system software, user data, application data, and the like handled by the CU 401. The second storage device 404 is connected to the bridge device 402, and stores backup data in which the data of the first storage device 403 is duplicated. The first storage device 403 and the second storage device 404 are non-volatile semiconductor storage devices, such as SSDs.

図5は、CU401の詳細ブロック図である。情報処理装置400のコントローラユニットのハードウェア構成を示すブロック図である。本実施例では、情報処理装置400の例として画像形成装置を示す。画像形成装置は例えばスキャン機能やプリント機能等、複数の機能が一体化された、いわゆるMFP(多機能型周辺装置)として実現される。情報処理装置400は、装置全体を制御するCU401、操作部516、スキャナ512、プリンタ514を含む。 FIG. 5 is a detailed block diagram of the CU 401. It is a block diagram which shows the hardware composition of the controller unit of an information processing apparatus 400. In this embodiment, an image forming apparatus is shown as an example of the information processing apparatus 400. The image forming apparatus is realized as a so-called MFP (multifunctional peripheral device) in which a plurality of functions such as a scanning function and a printing function are integrated. The information processing device 400 includes a CU 401 that controls the entire device, an operation unit 516, a scanner 512, and a printer 514.

操作部516は、ユーザからのジョブ実行等の指示の入力を受け付けるためのテンキーや各種ハードキー等を含み、また、ユーザへ装置情報やジョブ進捗情報等、または、情報処理装置が実行可能な機能の設定画面を表示する表示パネルを含む。スキャナ512は、セットされた原稿上の画像を光学的に読み取る画像入力デバイスである。プリンタ514は、画像データに基づいて、印刷用紙等の記録媒体に画像を印刷する画像出力デバイスである。 The operation unit 516 includes ten keys and various hard keys for receiving input of instructions such as job execution from the user, and also provides device information, job progress information, etc. to the user, or a function that the information processing device can execute. Includes a display panel that displays the settings screen for. The scanner 512 is an image input device that optically reads an image on a set document. The printer 514 is an image output device that prints an image on a recording medium such as printing paper based on the image data.

操作部516は、CU401に含まれる操作部インタフェース(I/F)515に接続される。スキャナ512、プリンタ514はそれぞれ、コントローラユニット401に含まれるスキャナ処理部511、プリンタ処理部513に接続される。このような構成により、操作部516、スキャナ512、プリンタ514はそれぞれ、CU401から制御されて動作する。 The operation unit 516 is connected to the operation unit interface (I / F) 515 included in the CU 401. The scanner 512 and the printer 514 are connected to the scanner processing unit 511 and the printer processing unit 513 included in the controller unit 401, respectively. With such a configuration, the operation unit 516, the scanner 512, and the printer 514 are each controlled and operated from the CU 401.

ブリッジ装置402、第1記憶装置403と第2記憶装置404は、後述の図6および図7で詳細を説明する。CU401は、CU401の各ブロックを統括的に制御するCPU501を含む。CPU501は、システムバス417を介して、MEM504、ROM503、操作部I/F515、ネットワークI/F507、ファクスI/F517、画像処理部509、デバイスI/F510、PCIeI/F502と接続される。CPU501は、ROM503に記憶された制御プログラム等に基づいて接続される各種デバイスとのアクセスを統括的に制御するとともに、CU401で実行される各種処理についても統括的に制御する。 The bridge device 402, the first storage device 403, and the second storage device 404 will be described in detail with reference to FIGS. 6 and 7 described later. The CU 401 includes a CPU 501 that comprehensively controls each block of the CU 401. The CPU 501 is connected to the MEM 504, ROM 503, operation unit I / F 515, network I / F 507, fax I / F 517, image processing unit 509, device I / F 510, and PCIe I / F 502 via the system bus 417. The CPU 501 comprehensively controls access to various devices connected based on a control program or the like stored in the ROM 503, and also comprehensively controls various processes executed by the CU 401.

PCIe−IF502は、PCI−Express規格のインタフェースであり、CPU501からの要求に応じてブリッジ装置402をEndpointとして、ブリッジ装置402との送受信するデータのやり取りと行う。 The PCIe-IF502 is an interface of the PCI-Express standard, and the bridge device 402 is used as an Endpoint in response to a request from the CPU 501 to exchange data to be transmitted and received to and from the bridge device 402.

ROM503は、不揮発性メモリであり、ブリッジ装置402のブートプログラムや制御プログラム等が格納される。 The ROM 503 is a non-volatile memory, and stores a boot program, a control program, and the like of the bridge device 402.

MEM504は、汎用的な揮発性のRAM(DRAM等のメモリ)であり、一時的にデータが格納され、CPU501のワークメモリとして働く。MEM504には、Non−Volatile Memory Express(NVMe)プロトコルで使用するSubmission Queue(SQ)505及びCompletion Queue(CQ)506が構成される。 The MEM 504 is a general-purpose volatile RAM (memory such as DRAM) in which data is temporarily stored and works as a work memory of the CPU 501. The MEM 504 comprises a Submission Queue (SQ) 505 and a Completion Queue (CQ) 506 used in the Non-Volateile Memory Express (NVMe) protocol.

SQ505は、MEM504上に生成されるリングバッファのキューであり、NVMeのコマンドをやり取りするためにCPU501で生成したNVMeコマンド(要求)が順々に格納される。 The SQ505 is a queue of the ring buffer generated on the MEM504, and NVMe commands (requests) generated by the CPU 501 for exchanging NVMe commands are sequentially stored.

CQ506は、MEM504上に生成されるリングバッファのキューであり、Endpointであるブリッジ装置402からのコマンド処理完了通知が順々に格納される。 The CQ506 is a queue of the ring buffer generated on the MEM504, and the command processing completion notification from the bridge device 402 which is the Endpoint is sequentially stored.

操作部I/F515は、操作部516との間で情報の入出力を行うためのインタフェースである。操作部I/F515は、CPU501からの指示により、表示用データを操作部516へ出力し、また、ユーザが操作部516上で入力した情報を、CPU501へ伝送する。 The operation unit I / F 515 is an interface for inputting / outputting information to / from the operation unit 516. The operation unit I / F 515 outputs display data to the operation unit 516 in response to an instruction from the CPU 501, and transmits information input by the user on the operation unit 516 to the CPU 501.

ネットワークI/F507は、有線や無線媒体のLANと接続され、情報処理装置とLANで接続された機器との間の情報の入出力を可能にする。ネットワークI/F507は、入力された情報を一時的に記憶するメモリに保持する。ネットワークI/F507は、LANに対応した構成を有し、例えば、無線距離が数十cm程度の近距離無線通信(NearFieldCommunication)に対応した構成を有する場合もある。その場合には、携帯無線端末との間で相互に通信が行われる。 The network I / F 507 is connected to a wired or wireless LAN, and enables information input / output between the information processing device and the device connected by the LAN. The network I / F 507 holds the input information in a memory that temporarily stores the input information. The network I / F 507 has a configuration corresponding to a LAN, and may have a configuration corresponding to a short-range wireless communication (Near Field Communication) having a wireless distance of about several tens of centimeters, for example. In that case, mutual communication is performed with the mobile wireless terminal.

ファックスI/F517は、回線と接続され、情報処理装置と回線で接続された機器との間の情報の入出力を可能にする。ファックスI/F507は、入力された情報を一時的に記憶するメモリに保持する。 The fax I / F 517 is connected to a line and enables information input / output between the information processing device and the device connected by the line. The fax I / F 507 holds the input information in a memory that temporarily stores the input information.

画像処理部509は、汎用的な画像処理を実行する。例えば、LANを介して外部から取得した画像データに対して、拡大/縮小、回転、変換等の処理を実行する。また、画像処理部509は、LANを介して受信したPDLコードをビットマップ画像へ展開する処理を実行する。また、画像処理部509は、プリンタ処理部513を介してプリンタ514で出力する場合に、第1記憶装置403に圧縮・符号化されて記憶されている画像データをプリンタ処理部513で処理可能な形式にするための処理を実行する。 The image processing unit 509 executes general-purpose image processing. For example, processing such as enlargement / reduction, rotation, and conversion is executed on image data acquired from the outside via a LAN. Further, the image processing unit 509 executes a process of expanding the PDL code received via the LAN into a bitmap image. Further, when the image processing unit 509 outputs the image data to the printer 514 via the printer processing unit 513, the image processing unit 513 can process the image data compressed and encoded in the first storage device 403 and stored in the printer processing unit 513. Perform the process to format.

デバイスI/F510は、スキャナ処理部511およびプリンタ処理部513を介してスキャナ512やプリンタ514に接続され、画像データの同期系/非同期系の変換や、設定値、調整値等を伝送する。また、デバイスI/F510は、スキャナ512やプリンタ514での状態情報をCPU501へ伝送する。その状態情報は、例えば、スキャナ512やプリンタ514で発生したジャムなどのエラー情報を含む。 The device I / F 510 is connected to the scanner 512 and the printer 514 via the scanner processing unit 511 and the printer processing unit 513, and transmits synchronous / asynchronous conversion of image data, set values, adjustment values, and the like. Further, the device I / F 510 transmits the status information of the scanner 512 and the printer 514 to the CPU 501. The state information includes, for example, error information such as a jam generated by the scanner 512 or the printer 514.

スキャナ処理部511は、スキャナ512で読み取られて入力した読取データに対して、補正、加工、像域分離、変倍、2値化処理などのスキャン機能に対応した各種処理を行う。 The scanner processing unit 511 performs various processes corresponding to scanning functions such as correction, processing, image area separation, scaling, and binarization processing on the read data read and input by the scanner 512.

スキャナ512は、不図示の自動連続原稿給送装置と圧板読取装置を含み、原稿ガラス台に設置された原稿の読取りや、複数枚の原稿の両面読取りなども実行可能である。また、不図示の給送装置カバーの開閉、不図示の原稿カバーの開閉、原稿の有無、原稿サイズ検知等を行うセンサがスキャナ512に設けられている。それらのセンサの検知信号やスキャナ512の状態情報は、スキャナ処理部511とデバイスI/F510を介してCPU501へ送信され、CPU501は、スキャナ512でのエラー発生やエラー解除等の状態を認識する。 The scanner 512 includes an automatic continuous document feeding device (not shown) and a pressure plate reading device, and can read a document installed on a document glass stand, read both sides of a plurality of documents, and the like. Further, the scanner 512 is provided with a sensor for opening / closing the feeding device cover (not shown), opening / closing the document cover (not shown), presence / absence of a document, detecting the size of the document, and the like. The detection signals of these sensors and the status information of the scanner 512 are transmitted to the CPU 501 via the scanner processing unit 511 and the device I / F 510, and the CPU 501 recognizes the status such as error occurrence or error cancellation in the scanner 512.

プリンタ処理部513は、プリント出力する画像データに対して、プリンタ514の出力特性に対応した出力補正、解像度変換、画像の印刷位置の調整などのプリント機能に対応した処理を行う。プリンタ514は、印刷用紙を収納するための1つ以上の不図示の給紙カセットと、トナーを収納するための1つ以上の不図示のトナートレイと、給紙カセットから紙を1枚ずつ逐次給紙可能な不図示の給紙ユニットとを含む。且つ、プリンタ514は、給紙した紙にトナーを印字するための不図示のマーキングユニットと、マーキングユニットにより印字されたトナーを熱と圧力により定着させるための不図示の定着ユニットを含む。各給紙カセットの開閉状況や用紙残量、トナートレイの開閉状況、不図示の給紙ユニットカバーの開閉、トナーの有無、給紙中の紙の位置などを検知するセンサがプリンタ514に設けられている。センサからの検知信号やプリンタ514の状態情報は、プリンタ処理部513とデバイスI/F510を介してCPU501へ送信され、CPU501は、プリンタ514でのエラー発生やエラー解除等の状態を認識する。 The printer processing unit 513 performs processing corresponding to print functions such as output correction, resolution conversion, and adjustment of the print position of the image corresponding to the output characteristics of the printer 514 with respect to the image data to be printed out. The printer 514 sequentially takes one or more unshown paper cassettes for storing printing paper, one or more not shown toner trays for storing toner, and one sheet of paper from the paper cassette. Includes a paper feed unit (not shown) that can feed paper. In addition, the printer 514 includes a marking unit (not shown) for printing toner on the fed paper and a fixing unit (not shown) for fixing the toner printed by the marking unit by heat and pressure. The printer 514 is provided with sensors that detect the open / closed status of each paper cassette, the remaining amount of paper, the open / closed status of the toner tray, the open / close of the paper feed unit cover (not shown), the presence / absence of toner, the position of paper being fed, and the like. ing. The detection signal from the sensor and the status information of the printer 514 are transmitted to the CPU 501 via the printer processing unit 513 and the device I / F 510, and the CPU 501 recognizes the status such as error occurrence or error cancellation in the printer 514.

図6は、ブリッジ装置402の詳細ブロック図である。 FIG. 6 is a detailed block diagram of the bridge device 402.

ブリッジ装置402は、サブCPU601と、PCIe−IF602、603、604とROM605、MEM606を有する。また、ブリッジ装置402は、PCIe−IF602を介してCU401と接続され、PCIe−IF603及び604を介して第1記憶装置403及び第2記憶装置404に接続される。 The bridging device 402 has a sub CPU 601 and a PCIe-IF 602, 603, 604, a ROM 605, and a MEM 606. Further, the bridge device 402 is connected to the CU 401 via the PCIe-IF602 and is connected to the first storage device 403 and the second storage device 404 via the PCIe-IF603 and 604.

サブCPU601は、ROM605に記憶された制御プログラム等に基づいて接続されるCU401と第1記憶装置403及び第2記憶装置404とのアクセスを制御する。さらにサブCPU601は、CU401から受信したコマンド群(要求群)を元に各記憶装置用のコマンド群(要求群)を生成する。 The sub CPU 601 controls access between the CU 401 and the first storage device 403 and the second storage device 404, which are connected based on a control program or the like stored in the ROM 605. Further, the sub CPU 601 generates a command group (request group) for each storage device based on the command group (request group) received from the CU 401.

PCIe−IF(Device)602は、CU401をRootComplexとして、CU401との送受信するデータのやり取りを行う。PCIe−IF(Host1)603は、第1記憶装置403をEndpointとして、記憶装置との送受信するデータのやり取りを行う。PCIe−IF(Host2)604は、第2記憶装置404をEndpointとして、記憶装置との送受信するデータのやり取りを行う。 The PCIe-IF (Device) 602 exchanges data to be transmitted and received to and from the CU 401 by using the CU 401 as a RootComplex. The PCIe-IF (Host1) 603 uses the first storage device 403 as an Endpoint to exchange data to be transmitted and received to and from the storage device. The PCIe-IF (Host2) 604 uses the second storage device 404 as an Endpoint to exchange data to be transmitted and received to and from the storage device.

ROM605は、不揮発性メモリであり、ブリッジ装置402のブートプログラムや制御プログラム等が格納される。 The ROM 605 is a non-volatile memory, and stores a boot program, a control program, and the like of the bridge device 402.

MEM606は、汎用的な揮発性のRAM(DRAM等のメモリ)であり、一時的にデータが格納され、サブCPU601のワークメモリとして働く。また、MEM606には、NVMeプロトコルで使用するSQとCQが2組ずつ構成される(SQ607、609とCQ608、610)。 The MEM 606 is a general-purpose volatile RAM (memory such as DRAM) in which data is temporarily stored and functions as a work memory of the sub CPU 601. Further, the MEM 606 is composed of two sets of SQ and two sets of CQ used in the NVMe protocol (SQ607, 609 and CQ608,610).

SQ607は、MEM606上に生成されるリングバッファのキューであり、NVMeのコマンドをやり取りするためにブリッジ装置402で生成したNVMeコマンドを順々に格納していく。 The SQ607 is a queue of the ring buffer generated on the MEM606, and sequentially stores the NVMe commands generated by the bridge device 402 in order to exchange NVMe commands.

CQ608は、MEM606上に生成されるリングバッファのキューであり、Endpointである記憶装置からのコマンド完了通知を順々に格納する。 The CQ608 is a queue of the ring buffer generated on the MEM606, and sequentially stores the command completion notification from the storage device which is the Endpoint.

SQ609及びCQ610はSQ607及びCQ608と各々同様である。 SQ609 and CQ610 are similar to SQ607 and CQ608, respectively.

図7は、第1記憶装置403及び第2記憶装置404の詳細ブロック図である。 FIG. 7 is a detailed block diagram of the first storage device 403 and the second storage device 404.

第1記憶装置403は、SSDコントローラ701と、PCIe−IF702と、DRAM703と、NAND FLASH704を有する。また、第1記憶装置403は、PCIe−IF702を介して、ブリッジ装置402に接続される。また、第2記憶装置404は、第1記憶装置403と同等の構成であるため第2記憶装置404の構成要件である705〜708の説明を省略する。 The first storage device 403 includes an SSD controller 701, a PCIe-IF702, a DRAM 703, and a NAND FLASH 704. Further, the first storage device 403 is connected to the bridge device 402 via the PCIe-IF702. Further, since the second storage device 404 has the same configuration as the first storage device 403, the description of 705 to 708, which are the constituent requirements of the second storage device 404, will be omitted.

SSDコントローラ701は、記憶装置内で実行されるファームウェアを処理するプロセッサや、DRAM703を制御するDRAMコントローラや、NAND FLASH704を制御するNAND FLASHコントローラが搭載されている。 The SSD controller 701 is equipped with a processor that processes firmware executed in the storage device, a DRAM controller that controls the DRAM 703, and a NAND FLASH controller that controls the NAND FLASH 704.

PCIe−IF702は、ブリッジ装置402をRootComplexとして、ブリッジ装置402との送受信するデータのやり取りを行う。 The PCIe-IF702 uses the bridge device 402 as a RotComplex to exchange data to be transmitted and received to and from the bridge device 402.

DRAM703は、キャッシュ用のメモリであり、NAND FLASH704に対してデータを書き込む前に、そのデータを一時的に保持する。 The DRAM 703 is a memory for caching, and temporarily holds the data before writing the data to the NAND FLASH 704.

NAND FLASH704は、実際にデータを記録するデバイスであり、データの読み書きが行われる。ここで言うデータとは、例えばシステムソフトウェアプログラム、履歴データ、画像データ、テーブルなどである。 The NAND FLASH704 is a device that actually records data, and reads and writes data. The data referred to here is, for example, a system software program, history data, image data, a table, or the like.

なお、第1記憶装置403と第2記憶装置404には、データの書き込み時には同じデータが両方の記憶装置に記憶されるが、データの読み出し時には、片方の記憶装置から読み出せばよい。以下の説明では、第1記憶装置403をマスタの記憶装置、第2記憶装置404をスレーブの記憶装置として扱い、マスタの記憶装置からデータの読み出し処理を行う構成とする。 In the first storage device 403 and the second storage device 404, the same data is stored in both storage devices when writing data, but when reading data, it may be read from one storage device. In the following description, the first storage device 403 is treated as a master storage device and the second storage device 404 is treated as a slave storage device, and data is read from the master storage device.

図8のミラーリングシステムの動作説明図を用いて、ミラーリングシステム4の動作を詳細に説明する。 The operation of the mirroring system 4 will be described in detail with reference to the operation explanatory diagram of the mirroring system of FIG.

まずCU401のMEM504の構成について説明する。SQ505は、キューの先頭要素としてHeadポインタ801、キューの末尾要素としてTailポインタ802を用いてコマンドを管理する。CQ506は、キューの先頭要素としてHeadポインタ803、キューの末尾要素はTailポインタ804を用いてコマンド応答(応答群)を管理する。なお、SQ505及びCQ506には、Headポインタ801(803)とTailポインタ802(804)に挟まれたキューにコマンドが格納される。つまり、HeadポインタとTailポインタが同じ位置にある場合、キューは空であることを示す。 First, the configuration of MEM504 of CU401 will be described. The SQ505 manages commands by using the Head pointer 801 as the head element of the queue and the Tail pointer 802 as the tail element of the queue. The CQ506 manages the command response (response group) by using the Head pointer 803 as the head element of the queue and the Tail pointer 804 as the tail element of the queue. In SQ505 and CQ506, commands are stored in a queue sandwiched between the Head pointer 801 (803) and the Tail pointer 802 (804). That is, if the Head pointer and the Tail pointer are in the same position, it indicates that the queue is empty.

次にブリッジ装置402の構成について説明する。ブリッジ装置402のSQTD813は、Submission Queue Tail Doorbellの略である。CQHD814は、Completion Queue Head Doorbellの略である。 Next, the configuration of the bridge device 402 will be described. SQTD813 of the bridging device 402 is an abbreviation for Submission Queue Tail Doorbell. CQHD814 is an abbreviation for Completion Queen Head Doorbell.

SQTD813は、CU401から受け付けたSQ505のTailポインタ802の位置情報を記憶し、記憶した位置情報をサブCPU601に通知するためのレジスタである。CQHD814は、CU401内のCPU501がブリッジ装置402からのコマンド処理完了通知を受けてCQ506に格納された情報の内容を確認したことをCQ506のHeadポインタ803の位置情報を更新して通知するレジスタである。なお、SQTD813とCQHD814は、図6に示すPCIeIF602に含まれてもよいし、ブリッジ装置402の内部にSQTD813とCQHD814を構成するレジスタとして有してもよい。 The SQTD813 is a register for storing the position information of the tail pointer 802 of the SQ505 received from the CU 401 and notifying the stored position information to the sub CPU 601. The CQHD 814 is a register that updates the position information of the Head pointer 803 of the CQ 506 to notify that the CPU 501 in the CU 401 has received the command processing completion notification from the bridge device 402 and confirmed the contents of the information stored in the CQ 506. .. The SQTD 813 and the CQHD 814 may be included in the PCIeIF 602 shown in FIG. 6, or may be included as registers constituting the SQTD 813 and the CQHD 814 inside the bridge device 402.

MEM606のSQ607は、CU401のSQ505からTailポインタ802の情報を受け付けて、SQ505に格納されたコマンドを取得し格納する。そして、SQ607は、受け付けた情報をキューの先頭要素としてHeadポインタ805、キューの末尾要素としてTailポインタ806として管理する。 The SQ607 of the MEM606 receives the information of the tail pointer 802 from the SQ505 of the CU401, and acquires and stores the command stored in the SQ505. Then, the SQ607 manages the received information as the Head pointer 805 as the head element of the queue and the Tail pointer 806 as the end element of the queue.

コマンド格納後、SQ607は、第1記憶装置403のSQTD815にTailポインタ806の情報を通知する。 After storing the command, the SQ607 notifies the SQTD815 of the first storage device 403 of the information of the tail pointer 806.

また、CQ608は、キューの先頭要素としてHeadポインタ807、キューの末尾要素はTailポインタ808を用いて管理される。そして、CQ608は、第1記憶装置403からのコマンド処理完了通知(応答群)を格納する。そして、CQ608に格納されたコマンド処理完了通知をブリッジ装置402にて処理し終えると、CQ608のHeadポインタ807の位置情報を更新してCQHD816に通知する。 Further, the CQ608 is managed by using the Head pointer 807 as the head element of the queue and the Tail pointer 808 as the end element of the queue. Then, the CQ608 stores the command processing completion notification (response group) from the first storage device 403. Then, when the bridge device 402 finishes processing the command processing completion notification stored in the CQ608, the position information of the head pointer 807 of the CQ608 is updated and notified to the CQHD816.

MEM606のSQ609は、CU401のSQ505からTailポインタ802の情報を受け付けて、SQ505に格納されたコマンドを取得し格納する。そして、SQ609は、受け付けた情報をキューの先頭要素としてHeadポインタ809、キューの末尾要素としてTailポインタ810として管理する。 The SQ609 of the MEM606 receives the information of the tail pointer 802 from the SQ505 of the CU401, and acquires and stores the command stored in the SQ505. Then, the SQ609 manages the received information as a Head pointer 809 as a head element of the queue and a Tail pointer 810 as a tail element of the queue.

コマンド格納後、SQ609は、第2記憶装置404のSQTD817にTailポインタ810の情報を通知する。 After storing the command, the SQ609 notifies the SQTD817 of the second storage device 404 of the information of the tail pointer 810.

また、CQ610は、キューの先頭要素としてHeadポインタ811、キューの末尾要素はTailポインタ812を用いて管理される。そして、CQ610は、第2記憶装置404からのコマンド処理完了通知(応答群)を格納する。そして、CQ610に格納されたコマンド処理完了通知をブリッジ装置402にて修理し終えると、CQ610のHeadポインタ811の位置情報を更新してCQHD818に通知する。 Further, the CQ610 is managed by using the Head pointer 811 as the head element of the queue and the Tail pointer 812 as the end element of the queue. Then, the CQ610 stores the command processing completion notification (response group) from the second storage device 404. Then, when the command processing completion notification stored in the CQ610 is repaired by the bridge device 402, the position information of the head pointer 811 of the CQ610 is updated and notified to the CQHD818.

さらに、第1記憶装置403からのコマンド処理完了通知と第2記憶装置404からのコマンド処理完了通知をブリッジ装置402が共に処理し終えたら、そのコマンド処理完了通知をCQ506に通知し格納する。 Further, when the bridge device 402 finishes processing both the command processing completion notification from the first storage device 403 and the command processing completion notification from the second storage device 404, the command processing completion notification is notified to the CQ506 and stored.

次に第1記憶装置403の構成について説明する。 Next, the configuration of the first storage device 403 will be described.

SQTD815とCQHD816は、第1記憶装置403内のレジスタである。SQTD815は、MEM606のSQ607からTailポインタ806の情報を受け付ける。 The SQTD815 and the CQHD816 are registers in the first storage device 403. The SQTD 815 receives the information of the tail pointer 806 from the SQ 607 of the MEM 606.

SSDコントローラ701は、受け付けたTailポインタ806の情報を用いて、SQ607のHeadポインタ805からTailポインタ806まで、コマンドを取得して、それらコマンド処理を順に実行する。SSDコントローラ701は、コマンド処理を実行すると、コマンド処理結果を応答としてCQ608に送信し、格納される。 The SSD controller 701 acquires commands from the Head pointer 805 to the Tail pointer 806 of the SQ607 using the received information of the Tail pointer 806, and executes the command processing in order. When the SSD controller 701 executes the command processing, the SSD controller 701 sends the command processing result as a response to the CQ 608 and stores it.

そして、CQ608内に格納されたコマンド処理結果応答をブリッジ装置402で結果内容を確認し終えると、CQ608のHeadポインタ807の位置情報を更新してCQHD816へ通知される。 Then, when the bridge device 402 finishes confirming the result content of the command processing result response stored in the CQ608, the position information of the head pointer 807 of the CQ608 is updated and notified to the CQHD816.

次に第2記憶装置404の構成について説明する。 Next, the configuration of the second storage device 404 will be described.

SQTD817とCQHD818は、第2記憶装置404内のレジスタである。SQTD817は、MEM606のSQ609からTailポインタ810の情報を受け付ける。 The SQTD817 and CQHD818 are registers in the second storage device 404. The SQTD 817 receives the information of the tail pointer 810 from the SQ 609 of the MEM 606.

SSDコントローラ705は、受け付けたTailポインタ810の情報を用いて、SQ609のHeadポインタ809からTailポインタ810まで、コマンドを取得して、それらコマンド処理を順に実行する。SSDコントローラ705は、コマンド処理を実行すると、コマンド処理結果を応答としてCQ610に送信し、格納される。 The SSD controller 705 acquires commands from the Head pointer 809 to the Tail pointer 810 of the SQ609 using the received information of the Tail pointer 810, and executes the command processing in order. When the SSD controller 705 executes the command processing, the SSD controller 705 transmits the command processing result as a response to the CQ 610 and stores it.

そして、CQ610内に格納されたコマンド処理結果応答をブリッジ装置402で結果内容を確認し終えると、CQ610のHeadポインタ811の位置情報を更新してCQHD818へ通知される。 Then, when the bridge device 402 finishes confirming the result content of the command processing result response stored in the CQ610, the position information of the head pointer 811 of the CQ610 is updated and notified to the CQHD818.

図8に示すミラーリングシステム4でのコマンドの授受について具体例を用いて説明する。 The giving and receiving of commands in the mirroring system 4 shown in FIG. 8 will be described with reference to specific examples.

CU401のCPU501は、第1記憶装置403に対してNVMeプロトコルによるIOアクセスを行うために、NVMeコマンドを作成する。 The CPU 501 of the CU 401 creates an NVMe command in order to perform IO access to the first storage device 403 by the NVMe protocol.

なお、CPU501が、IOアクセスを行う状況は、例えば、スキャナ512が原稿を読み込むことで生成したデータを第1記憶装置403に記憶させる場合や、記憶したデータを読み出して印刷処理を実行する場合がある。また、例えば、ネットワークIFを介してPDLデータを受け付けて第1記憶装置403にデータを記憶させ、記憶させたデータの読み出し、印刷処理を実行する場合である。さらに、例えば、ファックスIFを介してファクシミリデータを受け付けて第1記憶装置403にデータを記憶させ、記憶させたデータの読み出し、印刷処理を実行する場合である。これらのような場合には、データを記憶装置に書き込む、またはデータを記憶装置から読み出す必要があるためCPU501が、第1記憶装置403に対してNVMeプロトコルによるIOアクセスを実行する。なお、本実施形態において、これらの例に限定はされない。 The situation in which the CPU 501 performs IO access is, for example, a case where the data generated by the scanner 512 reading the original is stored in the first storage device 403, or a case where the stored data is read and the printing process is executed. be. Further, for example, there is a case where PDL data is received via the network IF, the data is stored in the first storage device 403, and the stored data is read and printed. Further, for example, there is a case where facsimile data is received via a fax IF, the data is stored in the first storage device 403, and the stored data is read and printed. In such a case, since it is necessary to write the data to the storage device or read the data from the storage device, the CPU 501 executes IO access by the NVMe protocol to the first storage device 403. In this embodiment, the present invention is not limited to these examples.

CPU501はNVMeコマンドを作成すると、MEM504上のSQ505に順々に格納していく。NVMeコマンドを格納する度にSQ505のTailポインタ802を更新し、SQ505内に格納されているNVMeコマンドの末尾位置情報を更新していく。 When the CPU 501 creates an NVMe command, it stores it in SQ505 on the MEM504 in order. Every time the NVMe command is stored, the tail pointer 802 of the SQ505 is updated, and the end position information of the NVMe command stored in the SQ505 is updated.

Tailポインタ802が更新されると、CU401は新たにNVMeコマンドが格納されたことをブリッジ装置402に通知する。そのため、通知を受け取ったブリッジ装置402内のSQTD813は、SQ505の最終Tailポイント802の値を書き込む。 When the tail pointer 802 is updated, the CU 401 notifies the bridge device 402 that a new NVMe command has been stored. Therefore, the SQTD 813 in the bridge device 402 that received the notification writes the value of the final tail point 802 of the SQ505.

ブリッジ装置402は、CU401上で新たにNVMeコマンドが格納されたことをSQTD813の値が更新されたことにより判断する。 The bridge device 402 determines that the NVMe command is newly stored on the CU 401 by updating the value of the SQTD 813.

ブリッジ装置402は、SQTD813の値が更新されると、SQ505内のHeadポインタ801位置からTailポインタ802位置まで、順に各々のポインタの位置に配置されたNVMeコマンドを引き出す。具体的には、NVMeコマンドの読み出しを行うコマンドを送ることで、CU401にNVMeコマンドを送信させる。 When the value of the SQTD 813 is updated, the bridging device 402 pulls out the NVMe commands arranged at the respective pointer positions in order from the Head pointer 801 position to the Tail pointer 802 position in the SQ505. Specifically, by sending a command to read the NVMe command, the CU 401 is made to send the NVMe command.

引き出したNVMeコマンドは、ブリッジ装置402内のMEM606のSQ607(Host1)とSQ609(Host2)に格納される。 The extracted NVMe command is stored in SQ607 (Host1) and SQ609 (Host2) of MEM606 in the bridge device 402.

以下、ブリッジ装置402内のSQ607及びSQ609にNVMeコマンドを格納するコマンド処理を図9のフローチャートを用いて詳細に説明する。 Hereinafter, the command processing for storing the NVMe command in the SQ607 and SQ609 in the bridge device 402 will be described in detail with reference to the flowchart of FIG.

ブリッジ装置402のSQTD813がCU401からSQ505のTailポインタ802の位置情報通知(以下、Doorbell通知と称する)を受け付けることにより、位置情報が更新される。 The position information is updated when the SQTD 813 of the bridge device 402 receives the position information notification (hereinafter referred to as Doorbell notification) of the tail pointer 802 of the SQ505 from the CU 401.

位置情報の更新後、ブリッジ装置402はNVMeコマンドの取得を開始し、ブリッジ装置402内のSQ607及びSQ609に新たなNVMeコマンドを格納する。図9は、これら流れを示したフローチャートである。 After updating the position information, the bridge device 402 starts acquiring NVMe commands, and stores new NVMe commands in SQ607 and SQ609 in the bridge device 402. FIG. 9 is a flowchart showing these flows.

図9は、サブCPU601によって実行され、ブリッジ装置402のSQTD813がCU401からのSQ505のDoorbell通知を受け付けることにより開始する。 FIG. 9 is executed by the sub CPU 601 and starts when the SQTD 813 of the bridge device 402 receives the Doorbell notification of the SQ 505 from the CU 401.

S901においてサブCPU601は、SQTD813の値が更新されたかを確認する。これによって、CU401のSQ505に新たなNVMeコマンドが格納されたかどうかを確認する。SQTD813の値が更新していればS902に進み、更新がなければS901にとどまる。 In S901, the sub CPU 601 confirms whether the value of SQTD813 has been updated. This confirms whether a new NVMe command is stored in SQ505 of CU401. If the value of SQTD813 is updated, the process proceeds to S902, and if there is no update, the process remains at S901.

S902において、サブCPU601は、CU401上に準備されたNVMeコマンドをSQ505からリードすることで1コマンドを引き出し、S903に進む。 In S902, the sub CPU 601 draws one command by reading the NVMe command prepared on the CU 401 from the SQ 505, and proceeds to S903.

S903において、サブCPU601が引き出したNVMeコマンドを第1記憶装置403側のSQ607に書き込み、S904に進む。S904において、サブCPU601が引き出したNVMeコマンドを第2記憶装置404側のSQ309に書き込み、S905に進む。 In S903, the NVMe command extracted by the sub CPU 601 is written in the SQ607 on the first storage device 403 side, and the process proceeds to S904. In S904, the NVMe command extracted by the sub CPU 601 is written in the SQ309 on the second storage device 404 side, and the process proceeds to S905.

S905は、ブリッジ装置402がCU401上のSQ505に準備されたNVMeコマンドをすべて引き出し切ったかを判断する。コマンドを引き出した際の参照したSQ505のポインタとSQT8D13の値を確認し、同一値であればSQ505に格納された最終コマンドを引き出したと判断できる。すべてのコマンドを引き出した場合終了となり、まだコマンドが残っている場合はS902に戻り、再度コマンドの引き出しを行う。 S905 determines whether the bridge device 402 has pulled out all the NVMe commands prepared in SQ505 on the CU401. The pointer of the SQ505 referenced when the command is pulled out and the value of the SQT8D13 are confirmed, and if the values are the same, it can be determined that the final command stored in the SQ505 has been pulled out. When all the commands are pulled out, the process ends. If there are still commands left, the process returns to S902 and the commands are pulled out again.

なお、ステップS902において、1コマンドずつ複数回に分けて引き出す構成を示したが、すべてのコマンドを1度に引き出して処理を行ってもよいし、複数のコマンドを複数回に分けて引き出す構成でもよい。 In step S902, the configuration in which one command is extracted in a plurality of times is shown, but all the commands may be extracted at one time for processing, or a plurality of commands may be extracted in a plurality of times. good.

図10のフローチャートを用いて、ブリッジ装置402のSQ607及びSQ609にNVMeコマンドが格納された後のコマンド処理を説明する。 The command processing after the NVMe command is stored in the SQ607 and SQ609 of the bridge device 402 will be described with reference to the flowchart of FIG.

S1001においてサブCPU601は、ブリッジ装置402内のSQ(Host1)607に、新たなNVMeコマンドが格納されたかどうかの確認を行う。 In S1001, the sub CPU 601 confirms whether or not a new NVMe command is stored in the SQ (Host1) 607 in the bridge device 402.

具体的にはサブCPU601が、SQ(Host1)607のHeadポインタ805とTailポインタ806の差を確認する。差がある場合には、新たにNVMeコマンドを格納されたことになり、S1002に進む。差がない場合には、新たなNVMeコマンドが格納されていないことになり、S1005に進む。 Specifically, the sub CPU 601 confirms the difference between the Head pointer 805 and the Tail pointer 806 of the SQ (Host1) 607. If there is a difference, it means that the NVMe command is newly stored, and the process proceeds to S1002. If there is no difference, it means that no new NVMe command is stored, and the process proceeds to S1005.

S1002においてサブCPU601は、ブリッジ装置402内のSQ(Host1)607に新たなNVMeコマンドが格納されたことを第1記憶装置403に通知する。サブCPU601は、Doorbell通知を使い、SQ(Host1)607のTailポインタ806の位置情報を第1記憶装置403のSQTD815に書き込む。また、サブCPU601は、第1記憶装置403にNVMeコマンド処理依頼をしたことを記憶するために図11に示すコマンド処理リスト1100の第1記憶装置通知フラグ1103をON(1とする)にする。 In S1002, the sub CPU 601 notifies the first storage device 403 that a new NVMe command is stored in the SQ (Host1) 607 in the bridge device 402. The sub CPU 601 uses the Doorbell notification to write the position information of the Tail pointer 806 of the SQ (Host1) 607 to the SQTD 815 of the first storage device 403. Further, the sub CPU 601 turns on (sets 1) the first storage device notification flag 1103 of the command processing list 1100 shown in FIG. 11 in order to store that the NVMe command processing request has been made to the first storage device 403.

ここで、コマンド処理リスト1100の説明をする。図11に示すコマンド処理リストは、各記憶装置を示す記憶装置名称1101とコマンド通知の関係を示す1102で構成される。 Here, the command processing list 1100 will be described. The command processing list shown in FIG. 11 is composed of a storage device name 1101 indicating each storage device and 1102 indicating the relationship between command notifications.

例えば、第2記憶装置に対してコマンド処理の通知を行っている場合、コマンド通知フラグの値1104はON(1)となり、コマンド処理通知を行っていない場合、コマンド通知フラグの値1104はOFF(0)となる。 For example, when the command processing is notified to the second storage device, the value 1104 of the command notification flag is ON (1), and when the command processing notification is not performed, the value 1104 of the command notification flag is OFF (. It becomes 0).

S1003において、第1記憶装置403のSQTD815の値が更新したことで、第1記憶装置403のSSDコントローラ701により、SQ607からNVMeコマンドの引き出しが行われる。このとき、サブCPU601は、第1記憶装置403からコマンドの送信要求を受け、SQ607に保持されたNVMeコマンドを送信する(送信処理)。このときサブCPU601は、複数のコマンドを1度に送信してもよいし、コマンドを1つずつ送信してもよい。そして、SSDコントローラ701は、引き出されたコマンドの内容に則って処理を行い、コマンド処理が終わるごとに、ブリッジ装置402内の第1記憶装置403側のCQ(Host1)608にコマンド処理完了の書きこみを行う。そして、第1記憶装置403は、全コマンドの処理が完了するとブリッジ装置402に割り込みによる通知を行う。 Since the value of SQTD815 of the first storage device 403 is updated in S1003, the SSD controller 701 of the first storage device 403 pulls out the NVMe command from SQ607. At this time, the sub CPU 601 receives a command transmission request from the first storage device 403 and transmits the NVMe command held in the SQ607 (transmission processing). At this time, the sub CPU 601 may transmit a plurality of commands at once, or may transmit commands one by one. Then, the SSD controller 701 performs processing according to the content of the extracted command, and each time the command processing is completed, the command processing completion is written in the CQ (Host1) 608 on the first storage device 403 side in the bridge device 402. Do the dust. Then, the first storage device 403 notifies the bridge device 402 by an interrupt when the processing of all commands is completed.

S1004においてサブCPU601は、第1記憶装置403でのNVMeコマンド処理が完了したかどうかの判断を行っている。サブCPU601は、第1記憶装置403からのNVMeコマンド処理完了割り込みが発行されているかどうかを確認する。割り込みで完了割り込みが発行されていればコマンド処理リストの第1記憶装置通知フラグをOFFにしてS1005に進み、完了割り込みが発行されていなければS1004にとどまり、第1記憶装置403でのコマンド処理の完了を待つ。 In S1004, the sub CPU 601 determines whether or not the NVMe command processing in the first storage device 403 is completed. The sub CPU 601 confirms whether or not the NVMe command processing completion interrupt is issued from the first storage device 403. If a completion interrupt is issued by an interrupt, the first storage device notification flag in the command processing list is turned off and the process proceeds to S1005. If a completion interrupt is not issued, the command processing remains in S1004 and the command processing in the first storage device 403 is performed. Wait for completion.

S1005においてサブCPU601は、ブリッジ装置402内のSQ(Host2)609に、新たなNVMeコマンドが格納されたかどうかの確認を行う。サブCPU601は、SQ(Host2)609のHeadポインタ809とTailポインタ810の差を確認し、差があれば新たにNVMeコマンドを格納されたことになる。新たなNVMeコマンドが格納されていればS1006に進み、新たなNVMeコマンドが格納されていなければ終了となる。 In S1005, the sub CPU 601 confirms whether or not a new NVMe command is stored in the SQ (Host2) 609 in the bridge device 402. The sub CPU 601 confirms the difference between the Head pointer 809 and the Tail pointer 810 of the SQ (Host2) 609, and if there is a difference, a new NVMe command is stored. If a new NVMe command is stored, the process proceeds to S1006, and if a new NVMe command is not stored, the process ends.

S1006においてサブCPU601は、ブリッジ装置402内のSQ(Host2)609に新たなNVMeコマンドが格納されたことを第2記憶装置404に通知する。サブCPU601は、Doorbell通知を使い、SQ(Host2)609のTailポインタ810の位置情報を第2記憶装置404のSQTD817に書き込む。また、サブCPU601は、第2記憶装置404にNVMeコマンド処理依頼をしたことを記憶するためにコマンド処理リスト1100の第2記憶装置通知フラグ1104をON(1とする)にする。 In S1006, the sub CPU 601 notifies the second storage device 404 that a new NVMe command is stored in the SQ (Host2) 609 in the bridge device 402. The sub CPU 601 uses the Doorbell notification to write the position information of the Tail pointer 810 of the SQ (Host2) 609 to the SQTD 817 of the second storage device 404. Further, the sub CPU 601 turns on (sets 1) the second storage device notification flag 1104 in the command processing list 1100 in order to store the NVMe command processing request to the second storage device 404.

S1007において、第2記憶装置404のSQTD817の値が更新したことで、第2記憶装置404のSSDコントローラ705により、SQ609からNVMeコマンドの引き出しが行われる。このとき、サブCPU601は、第2記憶装置404からコマンドの送信要求を受け、SQ609に保持されたNVMeコマンドを送信(送信処理)する。このとき、サブCPU601は、複数のコマンドを1度に送信してもよいし、コマンドを1つずつ送信してもよい。 Since the value of SQTD817 of the second storage device 404 is updated in S1007, the SSD controller 705 of the second storage device 404 pulls out the NVMe command from the SQ609. At this time, the sub CPU 601 receives a command transmission request from the second storage device 404, and transmits (transmits) the NVMe command held in the SQ609. At this time, the sub CPU 601 may transmit a plurality of commands at once, or may transmit commands one by one.

そして、SSDコントローラ705によって、引き出したコマンドの内容に則って処理を行い、コマンド処理が終わるごとに、ブリッジ装置402内の第2記憶装置404側のCQ(Host2)610にコマンド処理完了の書きこみが行われる。そして、第1記憶装置404は、全コマンドの処理が完了するとブリッジ装置402に割り込みによる通知を行う。 Then, the SSD controller 705 performs processing according to the contents of the extracted command, and each time the command processing is completed, the command processing completion is written to the CQ (Host2) 610 on the second storage device 404 side in the bridge device 402. Is done. Then, the first storage device 404 notifies the bridge device 402 by an interrupt when the processing of all the commands is completed.

S1008において、サブCPU601は、第2記憶装置404でのNVMeコマンド処理が完了したかどうかの判断を行っている。サブCPU601は、第2記憶装置404からのNVMeコマンド処理完了割り込みが発行されているかどうかを確認する。割り込みで完了割り込みが発行されていればコマンド処理リストの第2記憶装置通知フラグをOFFにして終了となり、完了割り込みが発行されていなければS1008にとどまり、第2記憶装置404でのコマンド処理の完了を待つ。 In S1008, the sub CPU 601 determines whether or not the NVMe command processing in the second storage device 404 is completed. The sub CPU 601 confirms whether or not the NVMe command processing completion interrupt is issued from the second storage device 404. If a completion interrupt is issued by an interrupt, the second storage device notification flag in the command processing list is turned off to end. If no completion interrupt is issued, the command processing stays in S1008 and the command processing in the second storage device 404 is completed. Wait for.

S1008までの処理が完了すると、第1記憶装置403と第2記憶装置404共にNVMeコマンドが処理され、そのコマンド結果が各々CQ608とCQ610に格納されたこととなる。 When the processing up to S1008 is completed, the NVMe command is processed in both the first storage device 403 and the second storage device 404, and the command result is stored in CQ608 and CQ610, respectively.

図12のフローチャートを用いて、ブリッジ装置402のCQ608及びCQ610にNVMeコマンドのコマンド処理完了情報が書き込まれた後の処理を説明する。図12は、記憶装置が複数のコマンドにおける記憶処理(データの書き込み処理)を完了すると開始する。 Using the flowchart of FIG. 12, processing after the command processing completion information of the NVMe command is written to CQ608 and CQ610 of the bridge device 402 will be described. FIG. 12 starts when the storage device completes the storage process (data writing process) in the plurality of commands.

S1201からS1203にて、CQ608及びCQ610に書込まれたコマンド処理完了情報にエラー処理情報が含まれているかを順々に確認していく。確認した情報は図13のリビルドリスト1300で管理される。リビルドリスト1300は、記憶装置でのエラー処理情報の有無とそれに伴う記憶装置のデータ修復及びCU401への通知手段を示す情報が格納される。 In S1201 to S1203, it is confirmed in order whether the command processing completion information written in CQ608 and CQ610 includes the error processing information. The confirmed information is managed by the rebuild list 1300 of FIG. The rebuild list 1300 stores information indicating the presence / absence of error processing information in the storage device, data restoration of the storage device accompanying the presence / absence of error processing information, and means for notifying the CU 401.

CQ1キュー位置1301の列は、CQ608のポインタ情報を格納する。最初の行にはCQ608のHeadポインタ807に一致した情報が格納され、最終行のCQ608のTailポインタ808の情報まで順々に格納される。 The column at the CQ1 queue position 1301 stores the pointer information of the CQ608. The information matching the Head pointer 807 of the CQ 608 is stored in the first line, and the information of the Tail pointer 808 of the CQ 608 in the last line is stored in order.

CQ2キュー位置1302の列は、CQ610のポインタ情報を格納する。最初の行にはCQ610のHeadポインタ811に一致した情報が格納され、最終行のCQ610のTailポインタ812の情報まで順々に格納される。 The column at the CQ2 queue position 1302 stores the pointer information of the CQ610. The information matching the Head pointer 811 of the CQ 610 is stored in the first line, and the information of the Tail pointer 812 of the CQ 610 in the last line is stored in order.

CQ1エラー情報1303の列は、CQ1キュー位置1301に格納されている位置情報の箇所のコマンド処理完了情報にエラー処理情報が含まれているかどうかを示す。エラー処理情報がある場合には“1”が書き込まれ、ない場合には“0”が書き込まれる。 The column of CQ1 error information 1303 indicates whether or not the error processing information is included in the command processing completion information of the position information location stored in the CQ1 queue position 1301. If there is error processing information, "1" is written, and if there is no error processing information, "0" is written.

CQ2エラー情報1304の列は、CQ2キュー位置1302に格納されている位置情報の箇所のコマンド処理完了情報にエラー処理情報が含まれているかどうかを示す。エラー処理情報がある場合には“1”が書き込まれ、ない場合には“0”が書き込まれる。 The column of CQ2 error information 1304 indicates whether or not the error processing information is included in the command processing completion information of the position information location stored in the CQ2 queue position 1302. If there is error processing information, "1" is written, and if there is no error processing information, "0" is written.

修復処理および通知1305の列は、データの修復処理の有無とCU401への通知の方法を示す。CQ1エラー情報1303とCQ2エラー情報1304共にエラー処理情報がない場合は、修復処理を行わずCU401にマスタ記憶装置であるCQ(Host1)608のコマンド処理完了情報を通知することを示す“0”が書き込まれる。(リビルドリスト1300内のアドレス1310で示されている行を参照) The column of repair processing and notification 1305 indicates whether or not the data has been repaired and the method of notifying the CU 401. If there is no error processing information in both the CQ1 error information 1303 and the CQ2 error information 1304, "0" indicating that the command processing completion information of the master storage device CQ (Host1) 608 is notified to the CU 401 without performing the repair processing is displayed. Written. (See the line in the rebuild list 1300 at address 1310)

CQ1エラー情報1303もしくはCQ2エラー情報1304の一方にエラー処理情報がある場合には修復処理を行いCU401に正常な記憶装置のCQのコマンド処理完了情報を通知することを示す“1”が書き込まれる。(リビルドリスト1300内のアドレス1311で示されている行を参照) If there is error processing information in either the CQ1 error information 1303 or the CQ2 error information 1304, a repair process is performed and "1" indicating that the CU 401 is notified of the CQ command processing completion information of the normal storage device is written. (See the line in the rebuild list 1300 at address 1311)

CQ1エラー情報1303とCQ2エラー情報1304共にエラー処理情報がある場合は、修復処理を行わずCU401にマスタ記憶装置であるCQ608のコマンド処理完了情報を通知することを示す“2”が書き込まれる。(リビルドリスト1300内の1312で示されている行を参照) When both the CQ1 error information 1303 and the CQ2 error information 1304 have error processing information, "2" indicating that the command processing completion information of the master storage device CQ608 is notified to the CU 401 is written without performing the repair processing. (See the line indicated by 1312 in the rebuild list 1300)

記憶装置アドレス1306の列は、コマンドが処理を実施した記憶装置のアドレス情報が書き込まれる。 The address information of the storage device processed by the command is written in the column of the storage device address 1306.

図12の説明に戻る。S1201において、サブCPU601は、ブリッジ装置402内のCQ608に格納されているコマンド処理完了情報にエラー処理情報が含まれているか確認する。 Returning to the description of FIG. In S1201, the sub CPU 601 confirms whether the command processing completion information stored in the CQ 608 in the bridge device 402 includes the error processing information.

確認を行ったCQ608のポインタ情報をCQ1キュー位置1301に格納する。当該のコマンド処理完了情報にエラー処理情報が含まれている場合には、CQ1エラー情報1303にエラーあり(1)を格納し、エラー処理情報が含まれない場合には、エラーなし(0)を格納する。また、コマンドが処理を行った記憶装置のアドレスを記憶装置アドレス1306に格納する。 The confirmed pointer information of the CQ608 is stored in the CQ1 queue position 1301. If the command processing completion information includes error processing information, the CQ1 error information 1303 stores the error (1), and if the command processing completion information does not include the error processing information, no error (0) is stored. Store. Further, the address of the storage device processed by the command is stored in the storage device address 1306.

S1202において、サブCPU601は、ブリッジ装置402内のCQ610に格納されているコマンド処理完了情報にエラー処理情報が含まれているか確認する。確認を行ったCQ610のポインタ情報をCQ2キュー位置1302に格納する。そして、当該のコマンド処理完了情報にエラー処理情報が含まれている場合には、CQ2エラー情報1304にエラーあり(1)を格納し、エラー処理情報が含まれない場合には、エラーなし(0)を格納する。 In S1202, the sub CPU 601 confirms whether the command processing completion information stored in the CQ 610 in the bridge device 402 includes the error processing information. The confirmed pointer information of the CQ610 is stored in the CQ2 queue position 1302. Then, when the command processing completion information includes the error processing information, the CQ2 error information 1304 stores the error (1), and when the error processing information is not included, there is no error (0). ) Is stored.

S1203において、サブCPU601は、CQ608とCQ610のコマンド処理完了情報を全て確認し終えたかを判断するために、確認し終えたコマンド処理完了情報のキューの位置情報とCQのTailポインタが一致しているか確認する。確認し終えたコマンド処理完了情報のキューの位置情報とCQのTailポインタが一致している場合は、すべて情報を確認し終えているため、S1204に進む。一致していない場合には、次のコマンド処理完了情報を確認するために、S1201に進む。 In S1203, in order to determine whether the sub CPU 601 has confirmed all the command processing completion information of CQ608 and CQ610, whether the position information of the queue of the confirmed command processing completion information and the tail pointer of CQ match. Check. If the position information of the queue of the command processing completion information that has been confirmed and the Tail pointer of the CQ match, all the information has been confirmed, and the process proceeds to S1204. If they do not match, the process proceeds to S1201 in order to confirm the next command processing completion information.

S1201からS1203で、各CQのコマンド処理完了情報にエラー情報を含んでいるかの確認が終わり、その結果からリビルドリスト1300が作成される。 In S1201 to S1203, confirmation of whether the command processing completion information of each CQ includes error information is completed, and the rebuild list 1300 is created from the result.

S1204において、サブCPU601は、作成されたリビルドリスト1300の修復処理および通知1305を参照して、“1”が書き込まれているか否かを確認し、確認結果に応じて遷移する。言い換えると、CQ608とCQ610の同一のキュー位置において、1つの記憶装置のみでエラーが発生したかを確認する。 In S1204, the sub CPU 601 confirms whether or not "1" is written by referring to the repair process and the notification 1305 of the created rebuild list 1300, and transitions according to the confirmation result. In other words, it is confirmed whether an error has occurred in only one storage device at the same queue position of CQ608 and CQ610.

修復処理および通知1305において“1”が書き込まれていない場合、すなわち修復処理および通知1305に“0”または“2”が書き込まれている場合は、S1207に進む。言い換えると、CQ1エラー情報1303とCQ2エラー情報1304の両方が“0”である場合と、両方が“1”である場合は、S1207に進む。さらに言い換えると、1つの記憶装置のみでエラーが発生している状況ではない場合はS1207に進む。 If "1" is not written in the repair process and notification 1305, that is, if "0" or "2" is written in the repair process and notification 1305, the process proceeds to S1207. In other words, if both the CQ1 error information 1303 and the CQ2 error information 1304 are "0", or if both are "1", the process proceeds to S1207. In other words, if the situation is not such that an error occurs in only one storage device, the process proceeds to S1207.

修復処理および通知1305において“1”が書き込まれている場合、すなわち修復処理および通知1305に“0”または“2”が書き込まれていない場合は、修復処理を実行するためにS1205に進む。言い換えると、CQ1エラー情報1303とCQ2エラー情報1304のどちらか一方が“0”、他方が“1”である場合に、S1205に進む。さらに言い換えると、1つの記憶装置のみでエラーが発生している場合には、S1205に進む。 If "1" is written in the repair process and notification 1305, that is, if "0" or "2" is not written in the repair process and notification 1305, the process proceeds to S1205 to execute the repair process. In other words, when either one of the CQ1 error information 1303 and the CQ2 error information 1304 is "0" and the other is "1", the process proceeds to S1205. In other words, if an error occurs in only one storage device, the process proceeds to S1205.

S1205において、サブCPU601は、ミラーリングシステムにおいて記憶装置404および記憶装置403の両方に同じコマンドを送信するミラー状態を解除する。そして、サブCPU601は、CQ608とCQ610の同一のキュー列においてエラーが発生していないCQに対応する記憶装置からデータを読み出す。例えば、リビルドリスト1300のアドレス1311の行において、コマンド処理完了情報にエラー処理情報を含まないことを示す“0”が書き込まれたCQ610に対応する記憶装置404のアドレスBからデータを読み出す。読み出したデータはブリッジ装置402内のMEM606を用いて一時保存してもよいし、ブリッジ装置402内にリビルド専用のバッファメモリを用意して一時保存してもよい。S1205を終えるとS1206に遷移する。 In S1205, the sub CPU 601 releases the mirror state of transmitting the same command to both the storage device 404 and the storage device 403 in the mirroring system. Then, the sub CPU 601 reads data from the storage device corresponding to the CQ in which no error has occurred in the same queue sequence of the CQ 608 and the CQ 610. For example, in the line of address 1311 of the rebuild list 1300, data is read from the address B of the storage device 404 corresponding to CQ610 in which "0" indicating that the command processing completion information does not include the error processing information is written. The read data may be temporarily stored using the MEM606 in the bridge device 402, or a buffer memory dedicated to rebuilding may be prepared in the bridge device 402 and temporarily stored. When S1205 is completed, the transition to S1206 occurs.

S1206において、サブCPU601は、CQ608とCQ610の同一のキュー列においてエラーが発生したCQに対応する記憶装置にS1205にて読み出したデータを書き込む。例えば、リビルドリスト1300のアドレス1311の行において、コマンド処理完了情報にエラー処理情報を含むことを示す“1”が書き込まれたCQ608に対応する記憶装置403のアドレスBに、S1205の例で読み出したデータを書き込む。S1206を終えるとS1207に遷移する。 In S1206, the sub CPU 601 writes the data read in S1205 to the storage device corresponding to the CQ in which the error occurred in the same queue sequence of the CQ 608 and the CQ 610. For example, in the line of address 1311 of the rebuild list 1300, the line of the storage device 403 corresponding to CQ608 in which "1" indicating that the command processing completion information includes the error processing information is written is read by the example of S1205. Write data. After finishing S1206, the transition to S1207 occurs.

S1207において、サブCPU601は、リビルドリスト1300の最終行まで修復処理の判定が行われたかを確認する。すべて修復処理の判定が完了している場合には、S1208に進む。判定がすべて完了していない場合には、S1204に進む。 In S1207, the sub CPU 601 confirms whether the repair processing has been determined up to the last line of the rebuild list 1300. If the determination of the repair process is completed, the process proceeds to S1208. If all the determinations have not been completed, the process proceeds to S1204.

最終行までの修復処理の例を、図13を用いて説明する。図13であれば、前述したアドレス1311の行において修復処理を行い、アドレス1313の行で修復処理を行う。アドレス1313の行では、まずコマンド処理完了情報にエラー処理情報を含まないことを示す“0”が書き込まれたCQ608に対応する記憶装置403のアドレスDからデータを読み出す。そして、コマンド処理完了情報にエラー処理情報を含むことを示す“1”が書き込まれたCQ610に対応する記憶装置403のアドレスDに、読み出したデータを書き込む。 An example of the repair process up to the last line will be described with reference to FIG. In FIG. 13, the repair process is performed at the line at address 1311 described above, and the repair process is performed at the line at address 1313. In the line of address 1313, first, data is read from the address D of the storage device 403 corresponding to CQ608 in which "0" indicating that the command processing completion information does not include the error processing information is written. Then, the read data is written to the address D of the storage device 403 corresponding to the CQ610 in which "1" indicating that the command processing completion information includes the error processing information is written.

S1208において、サブCPU601は、ブリッジ装置402で持っているコマンド処理完了情報をCU401に格納する。CQ608またはCQ610のどちらのコマンド処理完了情報をCU401に格納するか判断するために、リビルドリスト1300の修復処理および通知1305を参照する。 In S1208, the sub CPU 601 stores the command processing completion information held by the bridge device 402 in the CU 401. In order to determine whether the command processing completion information of CQ608 or CQ610 is stored in the CU 401, the repair processing and notification 1305 of the rebuild list 1300 are referred to.

リビルドリスト1300の修復処理および通知1305に“0”が書き込まれている場合、CU401のCQ506にマスタ記憶装置であるCQ608のコマンド処理完了情報を書き込む。修復処理および通知1305に“1”が書き込まれている場合、CU401のCQ506に正常であることを示す記憶装置のCQのコマンド処理完了情報を書き込む。ここで“1”を書き込まない理由は、修復処理によって、記憶装置403と記憶装置404にデータを正常に記憶することが出来たからである。 When "0" is written in the repair process and notification 1305 of the rebuild list 1300, the command process completion information of the master storage device CQ608 is written in the CQ506 of the CU401. When "1" is written in the repair process and notification 1305, the command processing completion information of the CQ of the storage device indicating that it is normal is written in the CQ 506 of the CU 401. The reason why "1" is not written here is that the data can be normally stored in the storage device 403 and the storage device 404 by the repair process.

修復処理および通知1305に“2”が書き込まれている場合、CU401のCQ506にマスタ記憶装置であるCQ608のコマンド処理完了情報を書き込む。このとき、マスタ記憶装置のコマンド処理エラー情報を書き込む理由は、記憶装置403と記憶装置404のどちらもエラーとなっているため、修復処理できないからである。 When "2" is written in the repair process and notification 1305, the command processing completion information of the master storage device CQ608 is written in the CQ506 of the CU401. At this time, the reason for writing the command processing error information of the master storage device is that the repair processing cannot be performed because both the storage device 403 and the storage device 404 have an error.

S1209においてサブCPU601は、記憶装置に対するコマンド処理が完了して、その処理完了通知をすべてCU401のCQ506に書き込み終えたことをCU401に通知する。サブCPU601は、割り込みを使用してCU401に終了したコマンド処理のコマンド完了情報がCQ506にすべて書き終えたことを通知する。 In S1209, the sub CPU 601 notifies the CU 401 that the command processing for the storage device has been completed and all the processing completion notifications have been written to the CQ506 of the CU 401. The sub CPU 601 notifies the CU 401 that all the command completion information of the command processing ended by using the interrupt has been written in the CQ 506.

S1208のCU401のCQ506への通知の仕方について具体的な説明を図17(a)(b)を用いて行う。図17は、ミラーリングシステムの応答構成を示すブロック図である。図17において“×”は、エラーとなるコマンド(応答)を示している。“×”がついていないものは、正常となるコマンド(応答)を示している。図17では、アドレス1310に対応するキューをコマンドA、アドレス1311に対応するキューをコマンドB、アドレス1312に対応するキューをコマンドC、アドレス1313に対応するキューをコマンドDとする。また各コマンドに対応する応答を応答A〜応答Dとする。なお、従来との通知の差分を説明するために、アドレス1312については、正常となるコマンドであるものとする。その他のコマンドは省略する。 A specific description of how to notify CQ506 of CU401 of S1208 will be given with reference to FIGS. 17 (a) and 17 (b). FIG. 17 is a block diagram showing a response configuration of the mirroring system. In FIG. 17, “x” indicates a command (response) that causes an error. Those without "x" indicate normal commands (responses). In FIG. 17, the queue corresponding to address 1310 is command A, the queue corresponding to address 1311 is command B, the queue corresponding to address 1312 is command C, and the queue corresponding to address 1313 is command D. The responses corresponding to each command are referred to as response A to response D. In order to explain the difference between the notification and the conventional one, it is assumed that the address 1312 is a normal command. Other commands are omitted.

従来の通知の仕方を図17(a)に示す。従来の通知では、1度の書き込み処理に対して応答を行う。そのため従来の通知の仕方を適用すると、次のようになる。サブCPU601は、記憶装置403の応答として、応答Bにおいてエラーを受ける。また、記憶装置404の応答として、応答Dにおいてエラーを受ける。そのため、サブCPU601は、CU401に、エラーが生じた旨の応答を1つの応答で返す。そして、CU401は、コマンドA、コマンドB、コマンドC、コマンドDのリトライを実行する。 A conventional method of notification is shown in FIG. 17 (a). In the conventional notification, a response is made to one writing process. Therefore, if the conventional notification method is applied, it will be as follows. The sub CPU 601 receives an error in the response B as a response of the storage device 403. Further, as a response of the storage device 404, an error is received in the response D. Therefore, the sub CPU 601 returns a response to the effect that an error has occurred to the CU 401 as one response. Then, the CU 401 retries the command A, the command B, the command C, and the command D.

一方、本実施例では、図17(b)に示すようにサブCPU601は、CU401から受信した各コマンドの各々に対して応答を返す。これにより、CU401は、各コマンドの各々に対してエラーか正常かを判断することが可能となる。さらに、本実施例では、図17(b)に示すようにアドレス1311とアドレス1313に修復処理を実行し、アドレス1311とアドレス1313のキュー位置において正常である旨の通知をすることが出来る。そのため、サブCPU601は、CU401に、応答Aから応答Dにおいて正常である旨の通知を返す。 On the other hand, in this embodiment, as shown in FIG. 17B, the sub CPU 601 returns a response to each of the commands received from the CU 401. This makes it possible for the CU 401 to determine whether it is an error or a normal command for each of the commands. Further, in this embodiment, as shown in FIG. 17B, it is possible to execute the repair process on the addresses 1311 and 1313 and notify that the queue positions of the addresses 1311 and 1313 are normal. Therefore, the sub CPU 601 returns a notification from the response A to the CU 401 that the response D is normal.

つまり、従来の構成を適用すると、複数のコマンドを1度の書き込み処理として扱ってしまう。さらに一方の記憶装置への書き込みが成功しており、データ修復可能であるにも関わらずホストシステムに当該書き込み処理に対して書き込みエラーを通知してしまうおそれがある。 That is, if the conventional configuration is applied, a plurality of commands are treated as one writing process. Furthermore, writing to one of the storage devices has been successful, and there is a risk that the host system will be notified of a write error for the write process even though the data can be recovered.

しかし、本実施例の構成によれば、サブCPUは、両記憶装置の応答を確認した上でCU401に各コマンドに対する応答を送信することが可能となる。そして、データ修復可能なものはデータ修復するためコマンドのリトライを削減することが可能となる。 However, according to the configuration of this embodiment, the sub CPU can transmit the response to each command to the CU 401 after confirming the responses of both storage devices. Then, since the data that can be repaired recovers the data, it is possible to reduce the number of command retries.

以上の本実施例の構成によれば、複数のコマンドを一度に扱うプロトコルを用いた際に、複数の記憶装置が異なるキュー位置において書き込みエラーが発生してもデータの修復を行うことが可能となる。 According to the above configuration of this embodiment, when a protocol that handles a plurality of commands at once is used, it is possible to repair data even if a write error occurs in different queue positions of a plurality of storage devices. Become.

(実施例2)
実施例1では、ブリッジ装置402に格納されたコマンド処理完了情報のエラー処理情報を基に、リビルドリスト1300を作成し、1つ1つのコマンド単位で修復を行うか判定していく構成のミラーリングシステムの説明をした。
(Example 2)
In the first embodiment, a mirroring system having a configuration in which a rebuild list 1300 is created based on the error processing information of the command processing completion information stored in the bridge device 402 and it is determined whether or not repair is to be performed for each command. I explained.

実施例2では、1度に扱う複数コマンドの中で、同アドレスへの書き込みアクセスが複数あり、その際の書き込みデータが異なる場合の修復方法に関して図14〜図16を用いて説明する。図4〜図11までは実施例1と同様であるため説明を省略する。 In the second embodiment, a repair method when there are a plurality of write accesses to the same address among the plurality of commands handled at one time and the write data at that time is different will be described with reference to FIGS. 14 to 16. Since FIGS. 4 to 11 are the same as those in the first embodiment, the description thereof will be omitted.

図14に本実施例2の具体的な状況図を示す。コマンドAからコマンドEはNVMeプロトコルで1度に扱う1つのコマンド群であり、コマンドBとコマンドEは同アドレスへのデータ書き込みであるが、書き込みを行う順番と書き込むデータが異なる。 FIG. 14 shows a specific situation diagram of the second embodiment. Command A to Command E are one command group handled at one time by the NVMe protocol, and Command B and Command E are data writing to the same address, but the writing order and the writing data are different.

このような状況下で、ブリッジ装置を介して第1記憶装置と第2記憶装置にコマンド処理を実施する。その結果、第1記憶装置側ではコマンドBがエラーを起こし、第2記憶装置側ではコマンドEがエラーを起こした状況を示している。 Under such a situation, command processing is performed on the first storage device and the second storage device via the bridge device. As a result, the command B causes an error on the first storage device side, and the command E causes an error on the second storage device side.

図14で示す状況では、コマンドBで書き込んだデータは、最終的な書き込みを行ったコマンドEで書き込んだデータで上書きされているので、修復処理ではコマンドEの修復処理のみを行うように制御する。すなわち、コマンドBの修復処理はスキップし、コマンドEの修復処理のみを行う。以下で具体的な方法を説明する。 In the situation shown in FIG. 14, since the data written by the command B is overwritten by the data written by the command E that was finally written, the repair process is controlled so that only the repair process of the command E is performed. .. That is, the repair process of command B is skipped, and only the repair process of command E is performed. A specific method will be described below.

実施例2において、ブリッジ装置402のCQ608およびCQ610に各記憶装置のコマンド処理完了情報が書き込まれた後、ブリッジ装置402でのデータの修復処理を説明する。本実施例では、図15を用いて実施例1の図12との差分を説明する。同様の構成には同様の番号を付して説明を省略する。 In the second embodiment, after the command processing completion information of each storage device is written in the CQ 608 and CQ 610 of the bridge device 402, the data restoration process in the bridge device 402 will be described. In this embodiment, the difference between FIG. 15 and FIG. 12 of Example 1 will be described with reference to FIG. Similar configurations are assigned similar numbers and description thereof will be omitted.

S1501において、サブCPU601は、例として図16(a)に示すリビルドリスト1600aの修復処理および通知1305を参照して、修復処理を実行するものか否かを確認する。具体的には、修復処理および通知1305が“1”であるか否かを確認する。なお、実施例1の図12のように言い換えてもよい。 In S1501, the sub CPU 601 confirms whether or not to execute the repair process by referring to the repair process and the notification 1305 of the rebuild list 1600a shown in FIG. 16 (a) as an example. Specifically, it is confirmed whether or not the repair process and the notification 1305 are "1". In addition, it may be paraphrased as shown in FIG. 12 of Example 1.

リビルドリスト1600aの確認は、リビルドリスト1600aの末尾から確認を行っていく。なお、図16(a)は図13で説明したリビルドリスト1300と同じ構成である。 Confirmation of the rebuild list 1600a is performed from the end of the rebuild list 1600a. Note that FIG. 16A has the same configuration as the rebuild list 1300 described with reference to FIG.

サブCPU601は、リビルドリスト1600aの修復処理および通知1305を参照し、修復処理を実行することを示す“1”が書き込まれているかを確認する。そして修復処理を実行するもの(“1”が書き込まれているもの)でリビルドリスト内に記憶装置アドレス1306が同一アドレスになっているものがあるか否かを判断する。同一アドレスが存在すれば、S1502に進む。同一アドレスが存在しなければ、S1503に進む。言い換えると、CQ608とCQ610の同一のキュー位置で、一方が“1”、他方が“0”の構成が、複数のキュー位置にあり、且つ、複数のキュー位置の中に書き込み先が同一アドレスのキュー位置が有る否かを判断する。 The sub CPU 601 refers to the repair process and notification 1305 of the rebuild list 1600a, and confirms whether or not "1" indicating that the repair process is to be executed is written. Then, it is determined whether or not there is a thing that executes the repair process (one in which "1" is written) and the storage device address 1306 is the same address in the rebuild list. If the same address exists, the process proceeds to S1502. If the same address does not exist, the process proceeds to S1503. In other words, there are multiple queue positions with the same queue position of CQ608 and CQ610, one of which is "1" and the other of which is "0", and the write destination is the same address in the multiple queue positions. Determine if there is a queue position.

S1502において、サブCPU601は、同一アドレスの修復処理のキュー位置の中で、コマンド処理順が最新以外の物の修復処理および通知1305の“1”を“3”に書き換える。言い換えると、同一のアドレスに最後に書き込みを行ったキュー位置に対応する修復および通知1305を1として残し、それ以外のキュー位置に対応する修復および通知1305を3に書き換える。修復処理および通知1305に“3”が書き込まれた場合、修復処理を行わず、CU401に通知するCQの情報は正常な記憶装置のCQのコマンド処理完了情報(“0”)を通知することを示す。 In S1502, the sub CPU 601 rewrites "1" of the repair process and notification 1305 of a command processing order other than the latest in the queue position of the repair process of the same address to "3". In other words, the repair and notification 1305 corresponding to the last queue position written to the same address is left as 1, and the repair and notification 1305 corresponding to the other queue positions is rewritten to 3. When "3" is written in the repair process and notification 1305, the repair process is not performed, and the CQ information notified to the CU 401 notifies the command processing completion information ("0") of the CQ of the normal storage device. show.

図16を用いて具体的に説明する。図16(a)のリビルドリスト1600aの末尾から、修復処理を実行することを示す“1”が書き込まれているコマンド処理を確認する。 This will be specifically described with reference to FIG. From the end of the rebuild list 1600a of FIG. 16 (a), the command process in which "1" indicating that the repair process is to be executed is written is confirmed.

ここで修復処理および通知に“1”が書き込まれているキュー位置の記憶装置アドレス1306を確認する。ここでは、アドレス1602がアドレスBであることを確認する。そして、修復処理および通知に“1”が書き込まれている他のキュー位置を確認し、アドレスBの有無を確認する。 Here, the storage device address 1306 of the queue position in which "1" is written in the repair process and notification is confirmed. Here, it is confirmed that the address 1602 is the address B. Then, the other queue positions where "1" is written in the repair process and the notification are confirmed, and the existence of the address B is confirmed.

ここでは、アドレス1601がアドレスBとなっている。これより以前のコマンド処理の中で修復処理を実行するキュー位置で同一アドレスの物があるか確認する。そして、アドレス1601は、アドレス1602よりも前に書き込みを行っているため、1601の行の記憶装置アドレス1306に対応する修復処理および通知1305の“1”の情報を“3”に書き換える。置き換えた構成を図6(b)に示す。図6(b)では、通知処理及び通知1603が“3”に置き換えられている。 Here, the address 1601 is the address B. Check if there is a thing with the same address at the queue position where the repair process is executed in the command process before this. Since the address 1601 is written before the address 1602, the information of "1" in the repair process and the notification 1305 corresponding to the storage device address 1306 in the line of 1601 is rewritten to "3". The replaced configuration is shown in FIG. 6 (b). In FIG. 6B, the notification process and the notification 1603 are replaced with “3”.

S1503において、サブCPU601は、リビルドリスト1600の最終行から1行目まで同一アドレスの修復処理の物があるかを確認し終えたかを確認する。すべての確認が完了している場合には、S1504に進む。確認がすべて完了していない場合には、S1501に進む。 In S1503, the sub CPU 601 confirms whether or not there is a repair process having the same address from the last line to the first line of the rebuild list 1600. If all the confirmations have been completed, the process proceeds to S1504. If all the confirmations have not been completed, the process proceeds to S1501.

S1504において、サブCPU601は、作成されたリビルドリスト1600bの修復処理および通知1305を参照して、“1”が書き込まれているか否かを確認する。言い換えると、CQ608とCQ610の同一のキュー位置において、1つの記憶装置のみでエラーが発生したかを確認する。 In S1504, the sub CPU 601 refers to the repair process and the notification 1305 of the created rebuild list 1600b, and confirms whether or not "1" is written. In other words, it is confirmed whether an error has occurred in only one storage device at the same queue position of CQ608 and CQ610.

修復処理および通知1305において“1”が書き込まれていない場合には、(1つの記憶装置のみでエラーが発生していない場合)、すなわち修復処理および通知1305に“0”、“2”または“3”が書き込まれている場合は、S1207に進む。言い換えると、CQ1エラー情報1303とCQ2エラー情報1304の両方が“0”である場合と、両方が“1”である場合には、S1207に進む。さらに、CQ1エラー情報1303とCQ2エラー情報1304の一方が“1”で他方が“0”であり、且つ、対応する記憶装置アドレス1306が同じ場合には、S1207に進む。 If "1" is not written in the repair process and notification 1305 (if no error has occurred in only one storage device), that is, "0", "2" or "" in the repair process and notification 1305. If "3" is written, the process proceeds to S1207. In other words, when both the CQ1 error information 1303 and the CQ2 error information 1304 are "0", and when both are "1", the process proceeds to S1207. Further, if one of the CQ1 error information 1303 and the CQ2 error information 1304 is "1" and the other is "0", and the corresponding storage device addresses 1306 are the same, the process proceeds to S1207.

修復処理および通知1605において“1”が書き込まれている場合には、すなわち修復処理および通知1605に“0”、“2”または“3”が書き込まれていない場合は、修復処理を実行するためにS1205に進む。言い換えると、CQ1エラー情報1303とCQ2エラー情報1304の一方が“1”で他方が“0”であり、且つ、対応する記憶装置アドレス1306が違う場合には、S1205に進む。さらに言い換えると、1つの記憶装置のみでエラーが発生している場合にS1205に進む。 If "1" is written in the repair process and notification 1605, that is, if "0", "2" or "3" is not written in the repair process and notification 1605, the repair process is executed. Proceed to S1205. In other words, if one of the CQ1 error information 1303 and the CQ2 error information 1304 is "1" and the other is "0", and the corresponding storage device addresses 1306 are different, the process proceeds to S1205. In other words, if an error occurs in only one storage device, the process proceeds to S1205.

S1509は、S1209と同様であるが、スキップしたアドレスBへの書き込みを指示するコマンドへの応答に対して、サブCPU601が正常に処理した旨のコマンドをCU401に返す点で異なる。 S1509 is the same as S1209, except that the sub CPU 601 returns a command to the CU 401 to the effect that the sub CPU 601 has normally processed the response to the command instructing the skipped address B to be written.

本実施例の構成によれば、修復処理を実行する前にリビルドリスト1600の修復処理および通知1305の情報を書き換えることで、同一アドレスに対する修復処理をスキップすることが可能となる。 According to the configuration of this embodiment, the repair process for the same address can be skipped by rewriting the information of the repair process and the notification 1305 in the rebuild list 1600 before executing the repair process.

(その他の実施形態)
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
(Other embodiments)
Although various examples and embodiments of the present invention have been described above, the gist and scope of the present invention are not limited to the specific description in the present specification.

本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。 The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

401 CU
402 ブリッジ装置
403 第1記憶装置
404 第2記憶装置
401 CU
402 Bridge device 403 1st storage device 404 2nd storage device

Claims (16)

不揮発性の第1記憶手段および不揮発性の第2記憶手段を有する情報処理装置であって、
第1アドレスにデータを記憶させる第1要求および第2アドレスにデータを記憶させる第2要求が順番に配された少なくとも2つの要求を前記第1記憶手段に送信する第1送信手段と、
前記少なくとも2つの要求を前記第2記憶手段に送信する第2送信手段と、
少なくとも前記第1要求に対する第1応答および前記第2要求に対する第2応答を、前記第1記憶手段から順番に受信する第1受信手段と、
少なくとも前記第1要求に対する第3応答および前記第2要求に対する第4応答を、前記第2記憶手段から順番に受信する第2受信手段と、
少なくとも前記第1応答および前記第2応答を受信した順番に保持する第1保持手段と、
少なくとも前記第3応答および前記第4応答を受信した順番に保持する第2保持手段と、
前記第1保持手段が保持した応答および前記第2保持手段が保持した応答にエラーを示す情報が含まれるかを確認する確認手段と、
前記第1応答がエラーを示す情報を含まず且つ前記第3応答がエラーを示す情報を含むことに従って、前記第1要求に対応する前記第1記憶手段の第1アドレスからデータの読み出しを行い、前記第1要求に対応する前記第2記憶手段の第1アドレスに前記第1記憶手段の第1アドレスから読み出したデータを書き込ませ、前記第4応答がエラーを示す情報を含まず且つ前記第2応答がエラーを示す情報を含むことに従って、前記第2要求に対応する前記第2記憶手段の第2アドレスからデータの読み出しを行い、前記第2要求に対応する前記第1記憶手段の第2アドレスに前記第2記憶手段の第2アドレスから読み出したデータを書き込ませる制御手段と、
を有することを特徴とする情報処理装置。
An information processing device having a non-volatile first storage means and a non-volatile second storage means.
A first transmission means for transmitting at least two requests in which a first request for storing data in the first address and a second request for storing data in the second address are arranged in order to the first storage means, and a first transmission means.
A second transmitting means for transmitting the at least two requests to the second storage means, and
A first receiving means that receives at least a first response to the first request and a second response to the second request in order from the first storage means.
A second receiving means that receives at least a third response to the first request and a fourth response to the second request in order from the second storage means.
A first holding means that holds at least the first response and the second response in the order in which they are received,
A second holding means that holds at least the third response and the fourth response in the order in which they are received,
A confirmation means for confirming whether the response held by the first holding means and the response held by the second holding means contain information indicating an error.
According to the fact that the first response does not contain the information indicating the error and the third response contains the information indicating the error, data is read from the first address of the first storage means corresponding to the first request. The data read from the first address of the first storage means is written to the first address of the second storage means corresponding to the first request, and the fourth response does not include information indicating an error and the second response. As the response contains information indicating an error, data is read from the second address of the second storage means corresponding to the second request, and the second address of the first storage means corresponding to the second request is read. A control means for writing the data read from the second address of the second storage means, and
An information processing device characterized by having.
前記確認手段は、前記第1要求に対応する前記第1応答および前記第3応答の確認を行ってから、前記第2要求に対応する前記第2応答および前記第4応答の確認を行うことを特徴とする請求項1に記載の情報処理装置。 The confirmation means confirms the first response and the third response corresponding to the first request, and then confirms the second response and the fourth response corresponding to the second request. The information processing apparatus according to claim 1. 前記確認手段による確認結果から前記少なくとも2つの要求の各々の要求に対する応答の結果を判断する判断手段を有し、
前記第1応答がエラーを示す情報でなく且つ前記第3応答がエラーを示す情報であることに従って、前記判断手段は、前記第1アドレスにデータを記憶させる記憶処理として、前記第1要求に対応する前記第1記憶手段の第1アドレスからデータの読み出しを行い、前記第1要求に対応する前記第2記憶手段の第1アドレスに前記第1記憶手段の第1アドレスから読み出したデータを書き込ませる処理が必要と判断することを特徴とする請求項1または2に記載の情報処理装置。
It has a judgment means for judging the result of the response to each request of the at least two requests from the confirmation result by the confirmation means.
According to the fact that the first response is not information indicating an error and the third response is information indicating an error, the determination means responds to the first request as a storage process for storing data in the first address. Data is read from the first address of the first storage means, and the data read from the first address of the first storage means is written to the first address of the second storage means corresponding to the first request. The information processing apparatus according to claim 1 or 2, wherein processing is determined to be necessary.
前記判断手段は、前記第2応答がエラーを示す情報であり且つ前記第4応答がエラーを示す情報であることに従って、前記第2アドレスにデータを記憶させる記憶処理がエラーであると判断することを特徴とする請求項3に記載の情報処理装置。 The determination means determines that the storage process for storing data in the second address is an error according to the fact that the second response is information indicating an error and the fourth response is information indicating an error. The information processing apparatus according to claim 3. 前記判断手段は、前記第2応答がエラーを示す情報でなく且つ前記第4応答がエラーを示す情報でないことに従って、前記第2アドレスにデータを記憶させる記憶処理が正常に処理されたと判断することを特徴とする請求項3または4に記載の情報処理装置。 The determination means determines that the storage process for storing data at the second address has been normally processed according to the fact that the second response is not information indicating an error and the fourth response is not information indicating an error. The information processing apparatus according to claim 3 or 4. 前記第1保持手段が保持した応答に対応する前記確認手段による確認結果と、前記第2保持手段が保持した応答に対応する前記確認手段による確認結果と、前記判断手段による判断と、を管理する管理手段と、を有することを特徴とする請求項3乃至5のいずれか1項に記載の情報処理装置。 The confirmation result by the confirmation means corresponding to the response held by the first holding means, the confirmation result by the confirmation means corresponding to the response held by the second holding means, and the judgment by the determination means are managed. The information processing apparatus according to any one of claims 3 to 5, further comprising a management means. 前記第1送信手段および前記第2送信手段は、前記少なくとも2つの要求として、前記第1要求および前記第2要求よりも後に、前記第1アドレスにデータを記憶させる第3要求を送信し、
前記第1受信手段は、前記第1応答および前記第2応答よりも後に前記第3要求に対応する第5応答を受信し、
前記第2受信手段は、前記第3応答および前記第4応答よりも後に前記第3要求に対応する第6応答を受信し、
前記第1保持手段は、前記第1応答および前記第2応答よりも後に第5応答を保持し、
前記第2保持手段は、前記第1応答および前記第2応答よりも後に第6応答を保持することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
The first transmission means and the second transmission means transmit, as at least two requests, a third request for storing data in the first address after the first request and the second request.
The first receiving means receives the first response and the fifth response corresponding to the third request after the second response, and receives the fifth response.
The second receiving means receives the third response and the sixth response corresponding to the third request after the fourth response, and receives the third response.
The first holding means holds the fifth response after the first response and the second response.
The information processing apparatus according to any one of claims 1 to 6, wherein the second holding means holds the first response and the sixth response after the second response.
前記制御手段は、前記第1応答がエラーを示す情報を含まず且つ前記第3応答がエラーを示す情報を含み、且つ、前記第5応答がエラーを示す情報を含まず且つ前記第6応答がエラーを示す情報を含むことに従って、前記第1要求に対応する前記第1記憶手段の第1アドレスからのデータの読み出しを行わず、前記第3要求に対応する前記第1記憶手段の第1アドレスからデータの読み出しを行い、前記第3要求に対応する前記第2記憶手段の第1アドレスにデータを書き込ませることを特徴とする請求項7に記載の情報処理装置。 In the control means, the first response does not include information indicating an error, the third response includes information indicating an error, the fifth response does not contain information indicating an error, and the sixth response contains information indicating an error. According to the inclusion of the information indicating the error, the data is not read from the first address of the first storage means corresponding to the first request, and the first address of the first storage means corresponding to the third request is not read. The information processing apparatus according to claim 7, wherein the data is read from the user and the data is written to the first address of the second storage means corresponding to the third request. 前記制御手段は、前記第1応答がエラーを示す情報を含まず且つ前記第3応答がエラーを示す情報を含み、且つ、前記第6応答がエラーを示す情報を含まず且つ前記第5応答がエラーを示す情報を含むことに従って、前記第1要求に対応する前記第1記憶手段の第1アドレスからのデータの読み出しを行わず、前記第3要求に対応する前記第2記憶手段の第1アドレスからデータの読み出しを行い、前記第3要求に対応する前記第1記憶手段の第1アドレスにデータを書き込ませることを特徴とする請求項7に記載の情報処理装置。 In the control means, the first response does not include information indicating an error, the third response includes information indicating an error, the sixth response does not contain information indicating an error, and the fifth response contains information indicating an error. According to the inclusion of the information indicating the error, the data is not read from the first address of the first storage means corresponding to the first request, and the first address of the second storage means corresponding to the third request is not read. The information processing apparatus according to claim 7, wherein data is read from the information processing device, and the data is written to the first address of the first storage means corresponding to the third request. コントローラユニットと、
前記コントローラユニットから複数の要求を受信する受信手段と、
前記受信手段が受信した複数の要求を受信した順番に保持する第3保持手段と、を有することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
With the controller unit
A receiving means for receiving a plurality of requests from the controller unit, and
The information processing apparatus according to any one of claims 1 to 9, further comprising a third holding means that holds a plurality of requests received by the receiving means in the order in which they are received.
前記第1記憶手段および前記第2記憶手段は、SSDであることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 10, wherein the first storage means and the second storage means are SSDs. 前記制御手段は、前記第1記憶手段と前記第2記憶手段をミラーリングシステムとして制御することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 11, wherein the control means controls the first storage means and the second storage means as a mirroring system. 前記制御手段は、前記確認手段がエラーを示す情報を確認すると、ミラー状態を解除することを特徴とする請求項12に記載の情報処理装置。 The information processing device according to claim 12, wherein the control means releases the mirror state when the confirmation means confirms information indicating an error. 不揮発性の第1記憶手段と、不揮発性の第2記憶手段と、第1アドレスにデータを記憶させる第1要求および第2アドレスにデータを記憶させる第2要求が順番に配された少なくとも2つの要求を前記第1記憶手段に送信する第1送信手段と、前記少なくとも2つの要求を前記第2記憶手段に送信する第2送信手段と、少なくとも前記第1要求に対する第1応答および前記第2要求に対する第2応答を、前記第1記憶手段から順番に受信する第1受信手段と、少なくとも前記第1要求に対する第3応答および前記第2要求に対する第4応答を、前記第2記憶手段から順番に受信する第2受信手段と、少なくとも前記第1応答および前記第2応答を受信した順番に保持する第1保持手段と、少なくとも前記第3応答および前記第4応答を受信した順番に保持する第2保持手段と、を有する情報処理装置の制御方法であって、
前記第1保持手段が保持した応答および前記第2保持手段が保持した応答にエラーを示す情報が含まれるかを確認するステップと、
前記第1応答がエラーを示す情報を含まず且つ前記第3応答がエラーを示す情報を含むことに従って、前記第1要求に対応する前記第1記憶手段の第1アドレスからデータの読み出しを行い、前記第1要求に対応する前記第2記憶手段の第1アドレスに前記第1記憶手段の第1アドレスから読み出したデータを書き込ませるステップと、
前記第4応答がエラーを示す情報を含まず且つ前記第2応答がエラーを示す情報を含むことに従って、前記第2要求に対応する前記第2記憶手段の第2アドレスからデータの読み出しを行い、前記第2要求に対応する前記第1記憶手段の第2アドレスに前記第2記憶手段の第2アドレスから読み出したデータを書き込ませるステップと、を有することを特徴とする情報処理装置の制御方法。
At least two non-volatile first storage means, a non-volatile second storage means, a first request for storing data at the first address, and a second request for storing data at the second address are arranged in order. A first transmitting means for transmitting a request to the first storage means, a second transmitting means for transmitting the at least two requests to the second storage means, a first response to at least the first request, and the second request. The first receiving means for receiving the second response to the first request in order from the first storage means, and at least the third response to the first request and the fourth response to the second request are sequentially received from the second storage means. A second receiving means for receiving, a first holding means for holding at least the first response and the second response in the order in which they are received, and a second holding means for holding at least the third response and the fourth response in the order in which they are received. A method for controlling an information processing device having a holding means.
A step of confirming whether the response held by the first holding means and the response held by the second holding means include information indicating an error, and
According to the fact that the first response does not contain the information indicating the error and the third response contains the information indicating the error, data is read from the first address of the first storage means corresponding to the first request. A step of writing the data read from the first address of the first storage means to the first address of the second storage means corresponding to the first request, and
According to the fact that the fourth response does not contain the information indicating the error and the second response contains the information indicating the error, data is read from the second address of the second storage means corresponding to the second request. A control method for an information processing apparatus, which comprises a step of writing data read from a second address of the second storage means to a second address of the first storage means corresponding to the second request.
請求項14に記載の制御方法を、コンピュータに実行させるためのプログラム。 A program for causing a computer to execute the control method according to claim 14. 請求項15に記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体。 A computer-readable storage medium containing the program according to claim 15.
JP2019236839A 2019-12-26 2019-12-26 Information processing apparatus and method for controlling information processing apparatus Pending JP2021105843A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019236839A JP2021105843A (en) 2019-12-26 2019-12-26 Information processing apparatus and method for controlling information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019236839A JP2021105843A (en) 2019-12-26 2019-12-26 Information processing apparatus and method for controlling information processing apparatus

Publications (1)

Publication Number Publication Date
JP2021105843A true JP2021105843A (en) 2021-07-26

Family

ID=76918886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019236839A Pending JP2021105843A (en) 2019-12-26 2019-12-26 Information processing apparatus and method for controlling information processing apparatus

Country Status (1)

Country Link
JP (1) JP2021105843A (en)

Similar Documents

Publication Publication Date Title
JP5126595B2 (en) Image processing apparatus and image processing system
JP2005309550A (en) Remote copying method and system
JP5506568B2 (en) Data processing apparatus, data processing method for data processing apparatus, and program
JP6875808B2 (en) Information processing device
US8643888B2 (en) Image forming apparatus and method for controlling the same
JP2012226519A (en) Image forming method and image forming apparatus
JP6981096B2 (en) Information processing equipment
JP2021105843A (en) Information processing apparatus and method for controlling information processing apparatus
JP2021105844A (en) Information processing apparatus and method for controlling information processing apparatus
JP2018063676A (en) Information processing device, control method thereof, and program
JP6406219B2 (en) Communication apparatus and image forming apparatus
JP2021086583A (en) Information processor, controller, and control method of controller
JP2012103873A (en) Image processing device and mirroring determination method
JP7214381B2 (en) IMAGE FORMING APPARATUS, IMAGE FORMING APPARATUS CONTROL METHOD AND PROGRAM
US10168958B2 (en) Information processing system, method in information processing system, and storage medium
JP2020154376A (en) Information processing system, information processing device and information processing program
JP2014138265A (en) Image forming apparatus
JP4589768B2 (en) Information processing device
JP2020060869A (en) Information processing device, control method of information processing device, and program
US11669268B2 (en) Information processing apparatus and control method therefor
US11842066B2 (en) Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data
JP2006222581A (en) Image forming apparatus and control method thereof, computer program, and storage medium
US11687287B2 (en) Control apparatus and information processing system
JP2021179730A (en) Information processing apparatus, control method thereof, and program
JP2021072016A (en) Image forming apparatus, method for controlling the same, and program