JP2021086583A - 情報処理装置、制御装置および制御装置の制御方法 - Google Patents

情報処理装置、制御装置および制御装置の制御方法 Download PDF

Info

Publication number
JP2021086583A
JP2021086583A JP2019217570A JP2019217570A JP2021086583A JP 2021086583 A JP2021086583 A JP 2021086583A JP 2019217570 A JP2019217570 A JP 2019217570A JP 2019217570 A JP2019217570 A JP 2019217570A JP 2021086583 A JP2021086583 A JP 2021086583A
Authority
JP
Japan
Prior art keywords
request
holding means
storage device
held
holding
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
JP2019217570A
Other languages
English (en)
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 JP2019217570A priority Critical patent/JP2021086583A/ja
Priority to US16/952,823 priority patent/US11842064B2/en
Publication of JP2021086583A publication Critical patent/JP2021086583A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】 従来のブリッジ装置では記憶装置ごとに別の処理を行うことが出来ない。その結果、1つの記憶装置のみで実行すれば良いコマンド、例えば、記憶媒体に対するリード命令が2つの記憶媒体で発生してしまい、ミラーリングシステムとして不必要なリード処理が発生してしまい、パフォーマンスを低下させてしまう可能性がある。【解決手段】 受信手段が受信した要求に基づいて、要求群を保持する第1保持手段と、受信手段が受信した要求に基づいて、要求群を保持する第2保持手段と、第1保持手段に保持された要求群を第1記憶手段に送信する第1送信手段と、第2保持手段に保持された要求群を第2記憶手段に送信する第2送信手段と、を有し、前記第1送信手段によって送信される要求群と前記第2送信手段によって送信される要求群は、異なる要求群であることを特徴とする。【選択図】 図9

Description

本発明は、情報処理装置、制御装置および制御装置の制御方法に関する。
近年、PCなどの情報処理装置では、不揮発性メモリを利用したソリッドステートドライブ(SSD)を用いることでハードディスドライブ(HDD)を用いるよりも高速なデータ転送を可能としている。一方で、これら記憶装置に用いられるインタフェースであるSerial ATA(SATA)は、転送時のデータ・エンコーディングに要する処理時間が増えてレイテンシが大きくなるため、SSD本来の転送パフォーマンスを発揮できていなかった。
そこで、さらに近年では汎用バスのPCI−Express(PCIe)に直接接続でき、SSDの高速性を活かす新たなプロトコルであるNon−Volatile Memory Express(NVMe)プロトコルに対応したSSDが登場し始めている。
また、HDDやSSDなどの記憶媒体の故障に対するデータ保護の仕組みとして、2つの記憶装置を用いてデータを二重化して保存するミラーリング技術が存在する。ミラーリングはブリッジ装置を用いて、ホストからのデータを同時に2つの記憶装置に記録するため、データや記憶装置自体が破損しても他方からのデータコピーで復旧が可能である。
特許文献1は、ホストコンピュータで実行されるアプリケーションから第1命令群をNVMe−Of(またはNVMe)プロトコルを用いて第1インタフェースで受信する。その後、第1命令群に基づいて第2命令群を生成し、記憶装置に第2命令群をNVMeプロトコルを用いて第2インタフェースで送信するブリッジ装置である。
特開2019−075104号公報
特許文献1に記載のブリッジ装置は、ホストコンピュータからの命令群を受信して、受信内容から記憶装置に送信する命令群を生成することを行っている。
しかし、このブリッジ装置の構成では受信した1つの命令群から送信する1つの命令群を生成する構成であるので、ミラーリングシステムのような1入力2出力のブリッジ装置に対応させると、2つの記憶装置に対して同一の命令が実行されこととなる。そのため、記憶装置ごとに別の処理を行うことが出来ない。その結果、1つの記憶装置のみで実行すれば良いコマンド、例えば、記憶媒体に対するリード命令が2つの記憶媒体で発生してしまい、ミラーリングシステムとして不必要なリード処理が発生してしまい、パフォーマンスを低下させてしまう可能性がある。
本特許は上記の問題点を解決するためになされたものであって、記憶装置に対しての命令をブリッジ装置にて記憶装置ごとに生成することで、記憶装置ごとに別々の命令を実行できるミラーリングシステムを提供することを目的としている。
本発明は、不揮発性の第1記憶手段および不揮発性の第2記憶手段を有する情報処理装置であって、コントローラユニットから要求を受信する受信手段と、前記受信手段が受信した要求に基づいて、要求群を保持する第1保持手段と、前記受信手段が受信した要求に基づいて、要求群を保持する第2保持手段と、前記第1保持手段に保持された要求群を前記第1記憶手段に送信する第1送信手段と、前記第2保持手段に保持された要求群を前記第2記憶手段に送信する第2送信手段と、を有し、前記第1送信手段によって送信される要求群と前記第2送信手段によって送信される要求群は、異なる要求群であることを特徴とする。
本発明によって、NVMeで記憶装置ごとに別々の命令を実行することが出来、ミラーリングが可能となる。
情報処理装置のミラーリングシステムの構成を示すブロック図 CUの詳細ブロック図 ブリッジ装置の詳細ブロック図 第1記憶装置及び第2記憶装置の詳細ブロック図 ミラーリングシステムの動作説明図 NVMeコマンドを格納するコマンド処理を示すフローチャート NVMeコマンドのフォーマットに関する説明図 第2記憶装置が処理可能なコマンドリスト NVMeコマンドが格納された後のコマンド処理を示すフローチャート 記憶装置名称とコマンド通知の関係を示すコマンド処理リスト NVMeコマンドを格納するコマンド処理を示すフローチャート タイミングの同期をとるコマンド種と、そのコマンド種の格納先に関する同期コマンドリスト NVMeコマンドが格納された後のコマンド処理を示すフローチャート
添付図面を参照して本発明の実施例を詳しく説明する。なお、以下の実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。
(実施例1)
図1は、本実施例に関わる情報処理装置のミラーリングシステムの構成を示すブロック図である。
本実施例の情報処理装置100は、ミラーリングシステム1を有する。
ミラーリングシステム1は、コントローラユニット101と、ブリッジ装置102と、第1記憶装置103と第2記憶装置104を有する。
コントローラユニット101(以下、CUと称する)は、ブリッジ装置102と接続されており、情報処理装置の制御コントローラとしての機能を有している。
ブリッジ装置102は、CU101と第1記憶装置103及び第2記憶装置104と接続されており、CU101から第1記憶装置103に記憶されるデータを二重化して、第2記憶装置104に記憶するミラーリングの機能を有する。
第1記憶装置103は、ブリッジ装置102と接続されており、CU101で扱うシステムソフトウェアやユーザデータ及びアプリケーションデータ等を格納する。第2記憶装置104は、ブリッジ装置102と接続されており、第1記憶装置103のデータを二重化したバックアップデータを格納する。第1記憶装置103と第2記憶装置104は、不揮発性の半導体記憶装置であり、例えばSSDである。
図2は、CU101の詳細ブロック図である。
情報処理装置のコントローラユニットのハードウェア構成を示すブロック図である。本実施例では、情報処理装置100の例として画像形成装置を示す。画像形成装置は例えばスキャン機能やプリント機能等、複数の機能が一体化された、いわゆるMFP(多機能型周辺装置)として実現される。情報処理装置100は、装置全体を制御するコントローラユニット101、操作部216、スキャナ212、プリンタ214を含む。
操作部216は、ユーザからのジョブ実行等の指示の入力を受け付けるためのテンキーや各種ハードキー等を含み、また、ユーザへ装置情報やジョブ進捗情報等、または、情報処理装置100が実行可能な機能の設定画面を表示する表示パネルを含む。スキャナ212は、セットされた原稿上の画像を光学的に読み取る画像入力デバイスである。プリンタ214は、画像データに基づいて、印刷用紙等の記録媒体に画像を印刷する画像出力デバイスである。
操作部216は、コントローラユニット101に含まれる操作部インタフェース(I/F)215に接続される。スキャナ212、プリンタ214はそれぞれ、コントローラユニット100に含まれるスキャナ処理部211、プリンタ処理部213に接続される。このような構成により、操作部216、スキャナ212、プリンタ214はそれぞれ、コントローラユニット101から制御されて動作する。
ブリッジ装置102、第1記憶装置103と第2記憶装置104は、後述の図3および図4で詳細を説明する。
コントローラユニット101は、コントローラユニット101の各ブロックを統括的に制御するCPU201を含む。CPU201は、システムバス117を介して、MEM204、ROM203、操作部I/F215、ネットワークI/F207、ファクスI/F217、画像処理部209、デバイスI/F210、I/F115と接続される。CPU201は、ROM203に記憶された制御プログラム等に基づいて接続される各種デバイスとのアクセスを統括的に制御するとともに、CU101で実行される各種処理についても統括的に制御する。
PCIe−IF202は、PCI−Express規格のインタフェースであり、CPU201からの要求に応じてブリッジ装置102をEndpointとして、ブリッジ装置102との送受信するデータのやり取りと行う。
ROM203は、不揮発性メモリであり、ブリッジ装置102のブートプログラムや制御プログラム等が格納される。
MEM204は、汎用的な揮発性のRAM(DRAM等のメモリ)であり、一時的にデータが格納され、CPU201のワークメモリとして働く。
MEM204には、Non−Volatile Memory Express(NVMe)プロトコルで使用するSubmission Queue(SQと称する)205及びCompletion Queue(CQと称する)206が構成される。
SQ205は、MEM204上に生成されるリングバッファのキューであり、NVMeのコマンドをやり取りするためにCPU101で生成したNVMeコマンド(要求)が順々に格納される。
CQ206は、MEM204上に生成されるリングバッファのキューであり、Endpointであるブリッジ装置102からのコマンド処理完了通知が順々に格納される。
操作部I/F215は、操作部216との間で情報の入出力を行うためのインタフェースである。操作部I/F215は、CPU201からの指示により、表示用データを操作部216へ出力し、また、ユーザが操作部216上で入力した情報を、CPU201へ伝送する。
ネットワークI/F207は、有線や無線媒体のLANと接続され、情報処理装置100とLANで接続された機器との間の情報の入出力を可能にする。ネットワークI/F207は、入力された情報を一時的に記憶するメモリに保持する。ネットワークI/F107は、LANに対応した構成を有し、例えば、無線距離が数十cm程度の近距離無線通信(NearFieldCommunication)に対応した構成を有する場合もある。その場合には、携帯無線端末との間で相互に通信が行われる。
ファックスI/F217は、回線と接続され、情報処理装置100と回線で接続された機器との間の情報の入出力を可能にする。ファックスI/F207は、入力された情報を一時的に記憶するメモリに保持する。
画像処理部209は、汎用的な画像処理を実行する。例えば、LANを介して外部から取得した画像データに対して、拡大/縮小、回転、変換等の処理を実行する。また、画像処理部209は、LANを介して受信したPDLコードをビットマップ画像へ展開する処理を実行する。また、画像処理部209は、プリンタ処理部213を介してプリンタ214で出力する場合に、第1記憶装置103に圧縮・符号化されて記憶されている画像データをプリンタ処理部213で処理可能な形式にするための処理を実行する。
デバイスI/F210は、スキャナ処理部211およびプリンタ処理部213を介してスキャナ212やプリンタ214に接続され、画像データの同期系/非同期系の変換や、設定値、調整値等を伝送する。また、デバイスI/F210は、スキャナ212やプリンタ214での状態情報をCPU201へ伝送する。その状態情報は、例えば、スキャナ212やプリンタ214で発生したジャムなどのエラー情報を含む。
スキャナ処理部211は、スキャナ212で読み取られて入力した読取データに対して、補正、加工、像域分離、変倍、2値化処理などのスキャン機能に対応した各種処理を行う。
スキャナ212は、不図示の自動連続原稿給送装置と圧板読取装置を含み、原稿ガラス台に設置された原稿の読取りや、複数枚の原稿の両面読取りなども実行可能である。また、不図示の給送装置カバーの開閉、不図示の原稿カバーの開閉、原稿の有無、原稿サイズ検知等を行うセンサがスキャナ212に設けられている。それらのセンサの検知信号やスキャナ212の状態情報は、スキャナ処理部211とデバイスI/F210を介してCPU201へ送信され、CPU201は、スキャナ212でのエラー発生やエラー解除等の状態を認識する。
プリンタ処理部213は、プリント出力する画像データに対して、プリンタ214の出力特性に対応した出力補正、解像度変換、画像の印刷位置の調整などのプリント機能に対応した処理を行う。プリンタ214は、印刷用紙を収納するための1つ以上の不図示の給紙カセットと、トナーを収納するための1つ以上の不図示のトナートレイと、給紙カセットから紙を1枚ずつ逐次給紙可能な不図示の給紙ユニットとを含む。且つ、プリンタ214は、給紙した紙にトナーを印字するための不図示のマーキングユニットと、マーキングユニットにより印字されたトナーを熱と圧力により定着させるための不図示の定着ユニットを含む。各給紙カセットの開閉状況や用紙残量、トナートレイの開閉状況、不図示の給紙ユニットカバーの開閉、トナーの有無、給紙中の紙の位置などを検知するセンサがプリンタ214に設けられている。センサからの検知信号やプリンタ214の状態情報は、プリンタ処理部213とデバイスI/F210を介してCPU201へ送信され、CPU201は、プリンタ214でのエラー発生やエラー解除等の状態を認識する。
図3は、ブリッジ装置102の詳細ブロック図である。
ブリッジ装置102は、サブCPU301と、PCIe−IF302、303、304とROM305、MEM306を有する。また、ブリッジ装置102は、PCIe−IF302を介してCU101と接続され、PCI−IF303及び304を介して第1記憶装置103及び第2記憶装置104に接続される。
サブCPU301は、ROM305に記憶された制御プログラム等に基づいて接続されるCU101と第1記憶媒体103及び第2記憶媒体104とのアクセスを制御する。さらにサブCPU301は、CU101から受信したコマンド群(要求群)を元に各記憶装置用のコマンド群(要求群)を生成する。
PCIe−IF(Device)302は、CU101をRootComplexとして、CU101との送受信するデータのやり取りを行う。PCIe−IF(Host1)303は、第1記憶装置103をEndpointとして、記憶装置との送受信するデータのやり取りを行う。PCIe−IF(Host2)304は、第2記憶装置104をEndpointとして、記憶装置との送受信するデータのやり取りを行う。
ROM305は、不揮発性メモリであり、ブリッジ装置102のブートプログラムや制御プログラム等が格納される。
MEM306は、汎用的な揮発性のRAM(DRAM等のメモリ)であり、一時的にデータが格納され、CPU201のワークメモリとして働く。また、MEM306には、NVMeプロトコルで使用するSQとCQが2組ずつ構成される(SQ307、309とCQ308、310)。
SQ307は、MEM306上に生成されるリングバッファのキューであり、NVMeのコマンドをやり取りするためにブリッジ装置102で生成したNVMeコマンドを順々に格納していく。
CQ308は、MEM306上に生成されるリングバッファのキューであり、Endpointである記憶装置からのコマンド完了通知を順々に格納する。
SQ309及びCQ310はSQ307及びCQ308と各々同様である。
図4は、第1記憶装置103及び第2記憶装置104の詳細ブロック図である。
第1記憶装置103は、SSDコントローラ401と、PCIe−IF402と、DRAM403と、NAND FLASH404を有する。また、第1記憶装置103は、PCIe−IF402を介して、ブリッジ回路102に接続される。また、第2記憶装置14は、第1記憶装置103と同等の構成であるため第2記憶装置104の構成要件である405〜408の説明を省略する。
SSDコントローラ401は、記憶装置内で実行されるファームウェアを処理するプロセッサや、DRAM403を制御するDRAMコントローラや、NAND FLASH404を制御するNAND FLASHコントローラが搭載されている。
PCIe−IF402は、ブリッジ装置102をRootComplexとして、ブリッジ装置102との送受信するデータのやり取りを行う。
DRAM403は、キャッシュ用のメモリであり、NAND FLASH404に対してデータを書き込む前に、そのデータを一時的に保持する。
NAND FLASH404は、実際にデータを記録するデバイスであり、データの読み書きが行われる。ここで言うデータとは、例えばシステムソフトウェアプログラム、履歴データ、画像データ、テーブルなどである。
なお、第1記憶装置103と第2記憶装置104には、データの書き込み時には同じデータが両方の記憶装置に記憶されるが、データの読み出し時には、片方の記憶装置から読み出せばよい。以下の説明では、第1記憶装置103をマスターの記憶装置、第2記憶装置104をスレーブの記憶装置として扱い、マスターの記憶装置からデータの読み出し処理を行う構成とする。
図5のミラーリングシステムの動作説明図を用いて、ミラーリングシステム1の動作を詳細に説明する。
まずCU101のMEM204の構成について説明する。SQ205は、キューの先頭要素としてHeadポインタ501、キューの末尾要素としてTailポインタ502を用いてコマンドを管理する。CQ206は、キューの先頭要素としてHeadポインタ503、キューの末尾要素はTailポインタ504を用いてコマンド応答を管理する。なお、SQ205及びCQ206には、Headポインタ501(503)とTailポインタ502(504)に挟まれたキューにコマンドが格納される。つまり、HeadポインタとTailポインタが同じ位置にある場合、キューは空であることを示す。
次にブリッジ装置102の構成について説明する。
SQTD(Submission Queue Tail Doorbell)513は、CU101から受け付けたSQ205のTailポインタ502の位置情報を記憶し、記憶した位置情報をサブCPU301に通知するレジスタである。CQHD(Completion Queue Head Doorbell)514は、CQ206のHeadポインタ503の位置情報を更新して通知するためのレジスタである。これにより、CU101内のCPU201がブリッジ装置102からのコマンド処理完了通知を受けてCQ206に格納された情報の内容を確認し終えたことを伝える。なお、SQTD513とCQHD514は、図3に示すPCIeIF302に含まれてもよいし、ブリッジ装置102の内部にSQTD513とCQHD514を構成するレジスタとして有してもよい。
MEM306のSQ307は、CU101のSQ205からTailポインタ502の情報を受け付けて、SQ205に格納されたコマンドを取得し格納する。そして、SQ307は、受け付けた情報をキューの先頭要素としてHeadポインタ505、キューの末尾要素としてTailポインタ506として管理する。
コマンド格納後、SQ307は、第1記憶装置103のSQTD515にTailポインタ506の情報を通知する。
また、CQ308は、キューの先頭要素としてHeadポインタ507、キューの末尾要素はTailポインタ508を用いて管理される。そして、CQ308は、第1記憶装置103からのコマンド処理完了通知を格納する。そして、CQ308に格納されたコマンド処理完了通知をブリッジ装置102にて処理し終えると、CQ308のHeadポインタ507の位置情報を更新してCQHD515に通知する。
MEM306のSQ309は、CU101のSQ205からTailポインタ502の情報を受け付けて、SQ205に格納されたコマンドを取得し格納する。そして、SQ309は、受け付けた情報をキューの先頭要素としてHeadポインタ509、キューの末尾要素としてTailポインタ510として管理する。
コマンド格納後、SQ309は、第2記憶装置104のSQTD517にTailポインタ510の情報を通知する。
また、CQ310は、キューの先頭要素としてHeadポインタ511、キューの末尾要素はTailポインタ512を用いて管理される。そして、CQ310は、第2記憶装置104からのコマンド終了完了通知を格納する。そして、CQ310に格納されたコマンド処理完了通知をブリッジ装置102にて修理し終えると、CQ310のHeadポインタ511の位置情報を更新してCQHD517に通知する。
さらに、第1記憶装置103からのコマンド処理完了通知と第2記憶装置104からのコマンド処理完了通知をブリッジ装置102が共に処理し終えたら、そのコマンド処理完了通知をCQ206に通知し格納する。
次に第1記憶装置103の構成について説明する。
SQTD515とCQHD516は、第1記憶装置103内のレジスタである。SQTD515は、MEM306のSQ307からTailポインタ506の情報を受け付ける。
SSDコントローラ401は、受け付けたTailポインタ506の情報を用いて、SQ307のHeadポインタ505からTailポインタ506まで、コマンドを取得して、それらコマンド処理を順に実行する。SSDコントローラ401は、コマンド処理を実行すると、コマンド処理結果を応答としてCQ308に送信し、格納される。
そして、CQHD516は、CQ308内に格納されたコマンド処理結果応答をブリッジ装置102で結果内容を確認し終えると、CQ308のHeadポインタ507の位置情報を更新してCQHD516へ通知される。
次に第2記憶装置104の構成について説明する。
SQTD517とCQHD518は、第2記憶装置104内のレジスタである。SQTD517は、MEM306のSQ309からTailポインタ510の情報を受け付ける。
SSDコントローラ405は、受け付けたTailポインタ510の情報を用いて、SQ309のHeadポインタ509からTailポインタ510まで、コマンドを取得し、それらコマンド処理を順に実行する。SSDコントローラ405は、コマンド処理を実行すると、コマンド処理結果を応答としてCQ310に送信し、格納される。
そして、CQ310内に格納されたコマンド処理結果応答をブリッジ装置102で結果内容を確認し終えると、CQ310のHeadポインタ511の位置情報を更新してCQHD518へ通知される。 図5に示すミラーリングシステム1でのコマンドの授受について具体例を用いて説明する。
CU101のCPU201は、第1記憶装置103に対してNVMeプロトコルによるIOアクセスを行うために、NVMeコマンドを作成する。
なお、CPU201が、IOアクセスを行う状況は、例えば、スキャナ212が原稿を読み込むことで生成したデータを第1記憶装置103に記憶させる場合や、記憶したデータを読み出して印刷処理を実行する場合がある。また、例えば、ネットワークIFを介してPDLデータを受け付けて第1記憶装置103にデータを記憶させ、記憶させたデータの読み出し、印刷処理を実行する場合である。さらに、例えば、ファックスIFを介してファクシミリデータを受け付けて第1記憶装置103にデータを記憶させ、記憶させたデータの読み出し、印刷処理を実行する場合である。これらのような場合には、データを記憶装置に書き込む、またはデータを記憶装置から読み出す必要があるためCPU201が、第1記憶装置103に対してNVMeプロトコルによるIOアクセスを実行する。なお、本実施形態において、これらの例に限定はされない。
CPU201はNVMeコマンドを作成すると、MEM204上のSQ205に順々に格納する。NVMeコマンドを格納する度にSQ205のTailポインタ502を更新し、SQ205内に格納されているNVMeコマンドの末尾位置情報を更新する。
Tailポインタ502が更新されると、CU101は新たにNVMeコマンドが格納されたことをブリッジ装置102に通知する。そのため、通知を受け取ったブリッジ装置102内のSQTD513は、SQ205の最終Tailポイント502の値を書き込む。
ブリッジ装置102は、CU101上で新たにNVMeコマンドが格納されたことをSQTD513の値が更新されたことにより判断する。
ブリッジ装置102は、SQTD513の値が更新されると、SQ205内のHeadポインタ501位置からTailポインタ502位置まで、順に各々のポインタの位置に配されたNVMeコマンドを引き出す。具体的には、NVMeコマンドの読み出しを行うコマンドを送ることで、CU101にNVMeコマンドを送信させる。
引き出したNVMeコマンドは、ブリッジ装置102内のMEM306のSQ307(Host1)とSQ309(Host2)に格納される。
以下、ブリッジ装置102内のSQ307及びSQ109にNVMeコマンドを格納するコマンド処理を図6のフローチャートを用いて詳細に説明する。
ブリッジ装置102のSQTD513がCU101からSQ205のTailポインタ502の位置情報通知(以下、Doorbell通知と称する)を受け付けることにより、位置情報が更新される。
位置情報の更新後、ブリッジ装置102はNVMeコマンドの取得を開始し、ブリッジ装置102内のSQ307及びSQ309に新たなNVMeコマンドを格納する。図6は、これら流れを示したフローチャートである。
図6は、サブCPU301によって実行され、ブリッジ装置102のSQTD513がCU101のSQ205のDoorbell通知を受け付けることにより開始する。
S601においてサブCPU301は、SQDT513の値が更新されたかを確認する。これによって、CU101のSQ205に新たなNVMeコマンドが格納されたかどうかを確認する。
SQDT513の値が更新していればS602に進み、更新がなければS601にとどまる。
S602においてサブCPU301は、CU101上に準備されたNVMeコマンドをSQ205からリードすることで1コマンドを引き出し、S603に進む。
S603、サブCPU301が引き出したコマンドのコマンド種(Write、Read等)を確認し、S604に進む。
コマンド種の確認は、NVMeコマンド700内の情報を確認することで行う。図7を用いて具体的に、NVMeコマンドのフォーマット700およびフォーマット700に含まれる情報を説明する。NVMeコマンド700は、Command Indentifer(以下、CIDと称する)701と、Opecode702(以下、OPCと称する)とPRP Entry703のフィールドを有する。
CID701は、コマンドに付加されるユニークな番号である。OPC702は、コマンドの種類を示す識別子であり、WriteやReadなどの識別子である。RPR Entry703は、転送元のアドレス又は転送先のアドレスを示す情報が格納される。
図6の説明に戻る。S604において、サブCPU301が引き出したNVMeコマンドを第1記憶装置103側のSQ307に書き込み、S605に進む。
S605において、サブCPU301が引き出したコマンドを第2記憶装置104側のSQ309に書き込むか否かを判断する。ここでは、図8に示す第2記憶装置104が処理可能なコマンドリスト800とS603で確認したコマンド種を比較する。S605において、サブCPU301が、リスト内のコマンド種801に該当していると判断すればS606に進み、該当していなければS607に進む。
なお、図8のコマンドリスト800では、例として第2記憶装置104がWriteコマンドを処理可能としている。そのため、例では、S603で確認したコマンド種がWriteであれば、S606に進み、それ以外であればS607に進む。
ここでは、コマンドリスト800をWriteのみとしているのは、ミラーリングシステム1において、データの読み出しを行うのは、マスターの記憶装置(第1記憶装置103)のみでよいからである。このような構成にすることで、スレーブ(第2記憶装置104)から余分にデータを読み出す処理を省略することが出来る。
S606は、サブCPU201が引き出したコマンドを第2記憶装置104側のSQ309に書き込み、S607に進む。
S607は、ブリッジ装置102がCU101上のSQ205に準備されたNVMeコマンドをすべて引き出し切ったかを判断する。コマンドを引き出した際の参照したSQ205のポインタとSQDT513の値を確認し、同一値であればSQ205に格納された最終コマンドを引き出したと判断できる。すべてのコマンドを引き出した場合終了となり、まだコマンドが残っている場合はS602に戻り、再度コマンドの引き出しを行う。
なお、図8のコマンドリスト800を処理可能なコマンドを含むリストとしたが、処理不能な所定のコマンドを含むコマンドリストとしてもよい。その場合には、コマンドリスト800に記載されるコマンドは、Writeコマンドの代わりにReadコマンドとなる。また、処理不能なコマンドリストとした場合には、ステップS605におけるYES、NOが逆になる。
なお、ステップS602において、1コマンドずつ複数回に分けて引き出す構成を示したが、すべてのコマンドを1度に引き出して処理を行ってもよいし、複数のコマンドを複数回に分けて引き出す構成でもよい。
図9のフローチャートを用いて、ブリッジ装置102のSQ307及びSQ309にNVMeコマンドが格納された後のコマンド処理を説明する。
S901においてサブCPU301は、ブリッジ装置102内のSQ(Host1)307に、新たなNVMeコマンドが格納されたかどうかの確認を行う。
具体的にはサブCPU301が、SQ(Host1)307のHeadポインタ505とTailポインタ506の差を確認する。差がある場合には、新たにNVMeコマンドを格納されたことになり、S902に進む。差がない場合には、新たなNVMeコマンドが格納されていないことになり、S904に進む。
S902においてサブCPU301は、ブリッジ装置102内のSQ(Host1)307に新たなNVMeコマンドが格納されたことを第1記憶装置103に通知する。サブCPU301は、Doorbell通知を使い、SQ(Host1)307のTailポインタ506の位置情報を第1記憶装置103のSQTD515に書き込む。また、サブCPU301は、第1記憶装置103にNVMeコマンド処理依頼をしたことを記憶するために図10に示すコマンド処理リスト1000の第1記憶装置通知フラグ1003をON(1とする)にする。
ここで、コマンド処理リスト1000の説明をする。図10に示すコマンド処理リストは、各記憶装置を示す記憶装置名称1001とコマンド通知の関係を示す1002で構成される。
例えば、第2記憶装置に対してコマンド処理の通知を行っている場合、コマンド通知フラグの値1004はON(1)となり、コマンド処理通知を行っていない場合、コマンド通知フラグの値1004はOFF(0)となる。
S909において、第1記憶装置103のSQTD515の値が更新したことで、第1記憶装置103のSSDコントローラ401は、SQ307からNVMeコマンドの引き出しを行う。このとき、サブCPU301は、第1記憶装置103からコマンドの送信要求を受け、SQ307に保持されたNVMeコマンドを送信する(送信処理)。このときサブCPU301は、複数のコマンドを1度に送信してもよいし、コマンドを1つずつ送信してもよい。そして、SSDコントローラ401は、引き出されたコマンドの内容に則って処理を行う。SSDコントローラ401は、コマンド処理が終わるごとに、ブリッジ装置102内の第1記憶装置103側のCQ(Host1)308にコマンド処理完了の書き込みを行う。そして、第1記憶装置103は、全コマンドの処理が完了するとブリッジ装置102に割り込みによる通知を行う。
S903においてサブCPU301は、第1記憶装置103でのNVMeコマンド処理が完了したかどうかの判断を行っている。なお、コマンド処理リスト1000の第1記憶装置通知フラグ1003がOFF(0とする)であればS903の処理はスキップしてS904に進む。サブCPU301は、第1記憶装置103からのNVMeコマンド処理完了割り込みが発行されているかどうかを確認する。割り込みで完了割り込みが発行されていればコマンド処理リストの第1記憶装置通知フラグをOFFにしてS904に進み、完了割り込みが発行されていなければS903にとどまり、第1記憶装置103でのコマンド処理の完了を待つ。
S904においてサブCPU301は、ブリッジ装置102内のSQ(Host2)309に、新たなNVMeコマンドが格納されたかどうかの確認を行う。サブCPU301は、SQ(Host2)309のHeadポインタ509とTailポインタ510の差を確認し、差があれば新たにNVMeコマンドを格納されたことになる。新たなNVMeコマンドが格納されていればS905に進み、新たなNVMeコマンドが格納されていなければS907に進む。
S905においてサブCPU301は、ブリッジ装置102内のSQ(Host2)309に新たなNVMeコマンドが格納されたことを第2記憶装置104に通知する。サブCPU301は、Doorbell通知を使い、SQ(Host2)309のTailポインタ510の位置情報を第2記憶装置104のSQTD517に書き込む。また、サブCPU301は、第2記憶装置104にNVMeコマンド処理依頼をしたことを記憶するために図10に示すコマンド処理リスト1000の第2記憶装置通知フラグ1004をON(1とする)にする。
S910において、第2記憶装置104のSQTD517の値が更新したことで、第2記憶装置104のSSDコントローラ405により、SQ309からNVMeコマンドの引き出しが行われる。このとき、サブCPU301は、第2記憶装置104からコマンドの送信要求を受け、SQ309に保持されたNVMeコマンドを送信(送信処理)する。このとき、サブCPU301は、複数のコマンドを1度に送信してもよいし、コマンドを1つずつ送信してもよい。
そして、SSDコントローラ405は、引き出したコマンドの内容に則って処理を行い、コマンド処理が終わるごとに、ブリッジ装置102内の第2記憶装置104側のCQ(Host2)310にコマンド処理完了の書き込みを行う。そして、第1記憶装置104は、全コマンドの処理が完了するとブリッジ装置102に割り込みによる通知を行う。
S906においてサブCPU301は、第2記憶装置104でのNVMeコマンド処理が完了したかどうかの判断を行っている。なお、コマンド処理リスト1000の第2記憶装置通知フラグ1004がOFF(0とする)であればS906の処理はスキップしてS907に進む。
サブCPU301は、第2記憶装置104からのNVMeコマンド処理完了割り込みが発行されているかどうかを確認する。割り込みで完了割り込みが発行されていればコマンド処理リストの第2記憶装置通知フラグをOFFにしてS907に進み、完了割り込みが発行されていなければS906にとどまり、第2記憶装置104でのコマンド処理の完了を待つ。
S907においてサブCPU301は、第1記憶装置103でのコマンド処理完了情報をCU101に格納するために、ブリッジ装置102のCQ(Host1)308に格納されたコマンド処理完了情報をCU101のCQ206に順々に書き込む。
S908においてサブCPU301は、第1記憶装置103に対するコマンド処理が完了して、その完了通知をすべてCU101のCQ206に書き込み終えたことをCU101に通知する。サブCPU301は、割り込みを使用してCU101に終了したコマンド処理のコマンド完了情報がCQ206にすべて書き終えたことを通知する。
本実施例では、ブリッジ装置102を介してCU101上のコマンド群を、第1記憶装置103と第2記憶装置104で使用する新たなコマンド群として生成して各記憶装置に通知するミラーリングシステムを説明した。そして本実施例のミラーリングシステムでは、第1記憶装置に対するコマンド群と第2記憶装置に対するコマンド群とを、記憶装置に応じたコマンド群にすることが可能である。具体的には、第2記憶装置処理コマンドリスト800を使用することで、CU101上で準備したコマンド群の各種コマンドを第1記憶装置103と第2記憶装置104の両記憶装置で処理するか、第1記憶装置103のみで処理するかを設定することが可能である。
以上の構成によれば、記憶装置に対しての命令をブリッジ装置にて記憶装置ごとに生成することで、記憶装置ごとに別々の命令を実行できるミラーリングシステムを提供することが可能である。例えば、Readコマンド等の読み取りコマンドをミラーリングシステムのマスター側である第1記憶装置103のみで行わせることが可能となる。
(実施例2)
実施例1では、ブリッジ装置102で新たに生成したコマンド群を各記憶装置のSSDコントローラで引き出し、記憶装置ごとのタイミングで各コマンドを処理していく構成のミラーリングシステムの説明をした。
実施例2では、第1記憶装置103と第2記憶装置104のコマンド処理タイミングの同期をとるために、ブリッジ装置102でコマンド群を生成後、特定のコマンド種でコマンド群を分割し、記憶装置に分割した単位でコマンド群を通知する方法を説明する。
実施例2においてCU101が、NVMeコマンドを準備した後、ブリッジ装置102に通知してブリッジ装置102でコマンドを引き出すフローを説明する。本実施例では、図11を用いて実施例1の図6との差分を説明する。同様のステップには、同様の番号を付して説明を省略する。
S604において、サブCPU301は、引き出したNVMeコマンドを第1記憶装置103側のSQ307に書き込む。そして、S1105に進む。S1105においてサブCPU301は、コマンドが同期リスト1200のコマンド種1201に該当しているかを判断する。
ここで、同期コマンドリスト1200の説明をする。図12に示す同期リスト1200は、タイミングの同期をとるコマンド種1201と、そのコマンド種のコマンドがキューのどこに格納されているかを示した同期コマンドリスト1202で構成される。
コマンド種1201は、第1記憶媒体103と第2記憶装置104のタイミングの同期を行うコマンドの種類を示している。この例では、Readコマンドでタイミングの同期をとる方法を示しているが、コマンド種は1種類に限らず複数種でも構わない。
同期ポイント1202は、タイミング同期をとるコマンドがキューのどの位置に格納されているかをキューのコマンド位置情報としてリストの上から順々に記録している。
図11の説明に戻る。S1105においてサブCPU301が、リスト内のコマンド種1201に該当していると判断すればS1106に進み、該当していなければS607に進む。S1106においてサブCPU301は、同期ポイント1202にコマンドを書き込んだキューの位置を記録する処理を行う。S1106を終えるとS606に移行する。S605からS607の説明は、図6で行ったため省略する。
図13のフローチャートを用いて、ブリッジ装置102のSQ307及びSQ309にコマンドが格納された後のコマンド処理を説明する。なお、実施例1の図9と同様の構成については同様の番号を付して説明を省略する。
S1301においてサブCPU301は、現在のSQ307のTailポインタ506の位置情報とSQ309のTailポインタ510の位置情報をMEM306上に現SQ−Tail情報(不図示)として保管する。
S1302においてサブCPU301は、コマンド群内にタイミング同期をとるコマンドがあるかどうかを判断する。サブCPU301は、SQ307に格納されたNVMeコマンド内にタイミング同期をとるNVMeコマンドが含まれているかどうか同期コマンドリスト1200を参照して確認する。S1302において、コマンドのタイミングをとるコマンドが含まれていなければS1312に進む。
S1312においてサブCPU301は、ブリッジ装置のSQ307にコマンドを格納した際の元のTailポインタの位置情報に現在のTailポインタ506を書き戻す。
S1313においてサブCPU301は、ブリッジ装置のSQ309にコマンドを格納した際の元のTailポインタの位置情報に現在のTailポインタ510を書き戻す。S1313を終えるとS905に遷移する。
S1302に戻る。S1302において、コマンドのタイミングをとるコマンドが含まれていればS1303に進む。
S1303においてサブCPU301は、同期コマンドリスト1200に格納されているタイミングをとるコマンドの情報を基にSQ307のTailポインタ506の位置情報を書き換える。
S1304においてサブCPU301は、S1303にて書き換えたTailポインタ506の位置情報から処理するコマンド数を判断し、SQ309のTailポインタ510の位置情報を書き換える。S1304を終えるとS905に移行する。
S1303及びS1304の構成によればSQ307とSQ309のTailポインタの位置情報を書き換えるにより、書き換えたTailポインタまでのコマンド群を1つの単位として、各記憶装置とコマンドの授受を行うことが可能となる。
S1311において、SQ307に格納されたNVMeコマンドがすべて第1記憶装置103で処理されたかどうかを判断する。具体的には、サブCPU301は、SQ307のTailポインタ506が、S1301にて保管した元のTailポインタ位置情報と一致しているかどうかを確認する。サブCPU301が、2つの位置情報を確認して一致していないと判断した場合には、S1302に戻る。サブCPU301が、2つの位置情報を確認して一致していると判断した場合には、S907に移行する。なお、2つの位置情報を確認して一致している状態とは、すべてのコマンドが処理し終えて状態である。
2つの位置情報を確認して一致していない場合には引き続きコマンド処理を続けるためにS1302に戻り、2つの位置情報が一致している場合にはS907に進む。CU101に対してのコマンド完了処理を行う。
本実施例の構成によれば、処理するコマンド群を特定のコマンド種で分割し、分割したコマンド群のコマンド処理が終え各記憶装置から割り込み通知を受け付けることで、ブリッジ装置102がタイミング同期をとることが可能となる。
以上の構成によれば、記憶装置に対しての命令をブリッジ装置にて記憶装置ごとに生成することで、記憶装置ごとに別々の命令を実行できるミラーリングシステムを提供することが可能である。例えば、Readコマンド等の読み取りコマンドをミラーリングシステムのマスター側である第1記憶装置103のみで行わせることが可能となる。
(その他の実施形態)
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 CU
102 ブリッジ装置
103 第1記憶装置
104 第2記憶装置

Claims (20)

  1. 不揮発性の第1記憶手段および不揮発性の第2記憶手段を有する情報処理装置であって、
    コントローラユニットから要求を受信する受信手段と、
    前記受信手段が受信した要求に基づいて、要求群を保持する第1保持手段と、
    前記受信手段が受信した要求に基づいて、要求群を保持する第2保持手段と、
    前記第1保持手段に保持された要求群を前記第1記憶手段に送信する第1送信手段と、
    前記第2保持手段に保持された要求群を前記第2記憶手段に送信する第2送信手段と、を有し、
    前記第1送信手段によって送信される要求群と前記第2送信手段によって送信される要求群は、異なる要求群であることを特徴とする情報処理装置。
  2. 前記受信手段が受信した要求は、所定の要求である場合に前記第1保持手段のみに保持され、前記所定の要求でない場合に前記第1保持手段および前記第2保持手段に保持されることを特徴とする請求項1に記載の情報処理装置。
  3. 前記受信手段が受信した要求が所定の要求か否かを確認する確認手段を有し、
    前記確認手段は、前記第1保持手段に保持される要求に対する確認は行わず、前記第2保持手段に保持される要求に対して確認を行うことを特徴とする請求項2に記載の情報処理装置。
  4. 前記第1保持手段および前記第2保持手段に保持された要求群は同じ要求群であり、
    前記第1送信手段によって前記第1保持手段に保持された要求群が前記第1記憶手段に送信される第1送信処理は、前記第1保持手段に保持された要求群のすべてが送信されることによって送信処理の完了となり、
    前記第2送信手段によって前記第2保持手段に保持された要求群が前記第2記憶手段に送信される第2送信処理は、前記第2保持手段に保持された要求群のうち、所定の要求を除くすべての要求が送信されることによって送信処理の完了となることを特徴とする請求項1に記載の情報処理装置。
  5. 前記受信手段が受信した要求が送信する要求であるか否かを確認する確認手段を有し、
    前記所定の要求は、前記確認手段によって送信しない要求であると判断された要求であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記所定の要求は、記憶装置からデータを読み出す処理を生じさせる要求であることを特徴とする請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記受信手段が受信した要求が記憶装置にデータを書き込む処理を生じさせる要求である場合には、前記第1保持手段および前記第2保持手段に保持させること特徴とする請求項6に記載の情報処理装置。
  8. 画像データを用紙に印刷する印刷処理を実行するプリンタを有し、
    前記データを書き込む処理は、前記印刷処理に用いられる画像データを記憶装置に記憶させる処理であり、前記データを読み出す処理は、前記印刷処理に用いられる画像データを読み出し処理であることを特徴とする請求項6または7に記載の情報処理装置。
  9. 前記第1送信手段による前記第1保持手段に保持された要求群の送信と前記第2送信手段による前記第2保持手段に保持された要求群の送信は、複数回の送信に要求群を分けて実行されることを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記第1記憶手段と前記第2記憶手段をミラーリングシステムとして制御する制御手段を有し、
    前記制御手段が、前記受信手段が受信した要求に基づいて、前記第1保持手段および前記第2保持手段に要求を保持させることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 前記第1記憶手段および前記第2記憶手段は、SSDであることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
  12. 不揮発性の第1記憶装置および不揮発性の第2記憶装置を制御する制御装置であって、
    要求を受信する受信手段と、
    前記受信手段が受信した要求に基づいて、要求群を保持する第1保持手段と、
    前記受信手段が受信した要求に基づいて、要求群を保持する第2保持手段と、
    前記第1保持手段に保持された要求群を前記第1記憶装置に送信する第1送信手段と、
    前記第2保持手段に保持された要求群を前記第2記憶装置に送信する第2送信手段と、を有し、
    前記第1送信手段によって送信される要求群と前記第2送信手段によって送信される要求群は、異なる要求群であることを特徴とする制御装置。
  13. 前記受信手段が受信した要求は、所定の要求である場合に前記第1保持手段のみに保持され、前記所定の要求でない場合に前記第1保持手段および前記第2保持手段に保持されることを特徴とする請求項12に記載の制御装置。
  14. 前記受信手段が受信した要求が所定の要求か否かを確認する確認手段を有し、
    前記確認手段は、前記第1保持手段に保持される要求に対する確認は行わず、前記第2保持手段に保持される要求に対して確認を行うことを特徴とする請求項13に記載の制御装置。
  15. 前記第1保持手段および前記第2保持手段に保持された要求群は同じ要求群であり、
    前記第1送信手段によって前記第1保持手段に保持された要求群が前記第1記憶装置に送信される第1送信処理は、前記第1保持手段に保持された要求群のすべてが送信されることによって送信処理の完了となり、
    前記第2送信手段によって前記第2保持手段に保持された要求群が前記第2記憶装置に送信される第2送信処理は、前記第2保持手段に保持された要求群のうち、所定の要求を除くすべての要求が送信されることによって送信処理の完了となることを特徴とする請求項12に記載の制御装置。
  16. 前記受信手段が受信した要求が送信する要求であるか否かを確認する確認手段を有し、
    前記所定の要求は、前記確認手段によって送信しない要求であると判断された要求であることを特徴とする請求項15に記載の制御装置。
  17. 前記所定の要求は、記憶装置からデータを読み出す処理を生じさせる要求であることを特徴とする請求項13乃至16のいずれか1項に記載の制御装置。
  18. 前記受信手段が受信した要求が記憶装置にデータを書き込む処理を生じさせる要求である場合には、前記第1保持手段および前記第2保持手段に保持させること特徴とする請求項17に記載の制御装置。
  19. 前記第1記憶装置と前記第2記憶装置をミラーリングシステムとして制御する制御手段を有し、
    前記制御手段が、前記受信手段が受信した要求に基づいて、前記第1保持手段および前記第2保持手段に要求を保持させることを特徴とする請求項12乃至18のいずれか1項に記載の制御装置。
  20. 要求群を保持する第1保持手段と要求群を保持する第2保持手段を有し、不揮発性の第1記憶装置と不揮発性の第2記憶装置をミラーリングシステムとして制御する制御装置の制御方法であって、
    要求を受信したことに基づいて、前記第1保持手段および前記第2保持手段の少なくとも1つに前記受信した要求を保持し、
    前記第1保持手段および前記第2保持手段に要求群が保持された状態で、異なる要求群を前記第1記憶装置と前記第2記憶装置に送信することを特徴とする制御装置の制御方法。
JP2019217570A 2019-11-29 2019-11-29 情報処理装置、制御装置および制御装置の制御方法 Pending JP2021086583A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019217570A JP2021086583A (ja) 2019-11-29 2019-11-29 情報処理装置、制御装置および制御装置の制御方法
US16/952,823 US11842064B2 (en) 2019-11-29 2020-11-19 Information processing apparatus, control device, and control method of control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019217570A JP2021086583A (ja) 2019-11-29 2019-11-29 情報処理装置、制御装置および制御装置の制御方法

Publications (1)

Publication Number Publication Date
JP2021086583A true JP2021086583A (ja) 2021-06-03

Family

ID=76087987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019217570A Pending JP2021086583A (ja) 2019-11-29 2019-11-29 情報処理装置、制御装置および制御装置の制御方法

Country Status (2)

Country Link
US (1) US11842064B2 (ja)
JP (1) JP2021086583A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010026961A (ja) * 2008-07-24 2010-02-04 Canon Inc 制御装置、制御方法、及びプログラム
US20150046605A1 (en) * 2013-08-12 2015-02-12 Dot Hill Systems Corporation Method and apparatus for efficient processing of disparate data storage commands
JP2018169941A (ja) * 2017-03-30 2018-11-01 富士通株式会社 情報処理装置、方法、及びプログラム
JP2019061483A (ja) * 2017-09-26 2019-04-18 キヤノン株式会社 記憶制御装置、その制御方法、プログラム、及び情報処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996782B2 (en) * 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method
JP6677627B2 (ja) * 2016-12-20 2020-04-08 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびメモリアクセス方法
US10719474B2 (en) 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
KR102406340B1 (ko) * 2018-02-26 2022-06-13 에스케이하이닉스 주식회사 전자 장치 및 그것의 동작 방법
US10656872B2 (en) * 2018-03-15 2020-05-19 Western Digital Technologies, Inc. Storage device with multi-die management
US10636455B2 (en) * 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
US11544000B2 (en) * 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services
JP2020091776A (ja) * 2018-12-07 2020-06-11 富士ゼロックス株式会社 情報処理装置
KR102653661B1 (ko) * 2018-12-11 2024-04-03 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11048437B2 (en) * 2019-02-28 2021-06-29 Micron Technology, Inc. Double threshold controlled scheduling of memory access commands
KR20210017264A (ko) * 2019-08-07 2021-02-17 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010026961A (ja) * 2008-07-24 2010-02-04 Canon Inc 制御装置、制御方法、及びプログラム
US20150046605A1 (en) * 2013-08-12 2015-02-12 Dot Hill Systems Corporation Method and apparatus for efficient processing of disparate data storage commands
JP2018169941A (ja) * 2017-03-30 2018-11-01 富士通株式会社 情報処理装置、方法、及びプログラム
JP2019061483A (ja) * 2017-09-26 2019-04-18 キヤノン株式会社 記憶制御装置、その制御方法、プログラム、及び情報処理装置

Also Published As

Publication number Publication date
US11842064B2 (en) 2023-12-12
US20210165593A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
JP2015049719A (ja) 印刷制御装置、印刷制御方法、プログラム、及び記憶媒体
JP2009081742A (ja) 画像形成装置
US10931834B2 (en) Information processing apparatus
EP3686730B1 (en) Information processing apparatus, control method thereof, and storage medium
JP2015184766A (ja) 印刷システム、印刷装置、印刷システムの制御方法、プログラム、及び記憶媒体
JP2013082130A (ja) 画像形成装置、画像形成制御方法及び画像形成制御プログラム
JP7230387B2 (ja) 情報処理装置及び情報処理プログラム
JP2015114395A (ja) シート管理装置、シート管理装置の制御方法、プログラム、及び記憶媒体
JP2012155401A (ja) 印刷システム、印刷装置、印刷システムの制御方法、印刷装置の制御方法、プログラム
JP5428816B2 (ja) 画像形成装置、データ制御方法、及びプログラム
JP6406219B2 (ja) 通信装置及び画像形成装置
JP2021086583A (ja) 情報処理装置、制御装置および制御装置の制御方法
JP7422453B2 (ja) 画像形成装置及びその制御方法
JP2021105844A (ja) 情報処理装置および情報処理装置の制御方法
JP5779905B2 (ja) 画像処理装置、画像処理システム、及び画像処理プログラム
JP2021105843A (ja) 情報処理装置および情報処理装置の制御方法
JP5361248B2 (ja) 画像形成装置、画像形成方法、記憶媒体及びプログラム
JP2009172959A (ja) 画像形成装置、印刷制御方法、印刷制御プログラム、及びそのプログラムを記録した記録媒体
JP2014138265A (ja) 画像形成装置
JP6591011B2 (ja) 印刷システム、印刷装置、印刷装置の制御方法
JP2015052828A (ja) 印刷制御装置、印刷制御方法、プログラム、及び記憶媒体
JP6953927B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び操作装置
JP2008269000A (ja) 画像処理装置
JP2006222581A (ja) 画像形成装置及びその制御方法、コンピュータプログラム及び記憶媒体
JP2012221350A (ja) データ形式変換装置、電子システム、データ形式変換方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231107

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240403