JP6812332B2 - 情報処理システム及び情報処理方法 - Google Patents
情報処理システム及び情報処理方法 Download PDFInfo
- Publication number
- JP6812332B2 JP6812332B2 JP2017231221A JP2017231221A JP6812332B2 JP 6812332 B2 JP6812332 B2 JP 6812332B2 JP 2017231221 A JP2017231221 A JP 2017231221A JP 2017231221 A JP2017231221 A JP 2017231221A JP 6812332 B2 JP6812332 B2 JP 6812332B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- fetched
- controller
- value
- fetch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Description
(1−1)本実施の形態によるストレージ装置の構成
図1において、1は全体として本実施の形態によるストレージ装置を示す。このストレージ装置1は、1又は複数のSSD(Solid State Device)2と、これらSSD2に対するデータの読み書きを制御するストレージコントローラ3とを備えて構成される。
ところで、このような構成を有するストレージ装置1では、コマンドフェッチ制御部24(図1)のバグや、ストレージコントローラ3のメモリ23の障害等により、対応するサブミッションキュー14に書き込まれた同じコマンドが何度もコマンドフェッチ制御部24にフェッチされてSSD2において実行されるおそれがある。そして、このようにコマンドが重複して実行された場合、上述のようにデータロストが発生するおそれがある。
次に、上述のようなフェッチ済み判定機能に関連してドライバ13及びフラッシュコントローラ21により実行される一連の処理の処理内容について説明する。
図6は、かかるフェッチ済み判定機能に関連してストレージコントローラ3のドライバ13により実行されるドライバ側コマンド処理の処理手順を示す。
一方、図7は、かかるフェッチ済み判定機能に関連してSSD2のフラッシュコントローラ21において実行されるフラッシュコントローラ側コマンド処理の処理手順を示す。
以上のように本実施の形態のストレージ装置で1は、ドライバ13がSSD2に発行するコマンドにフェッチ済みか否かを表すフェッチ済みフラグを追加し、ドライバ13がサブミッションキュー14にコマンドを書き込む際にはフェッチ済みフラグを初期化(「0」に設定)しておき、SSD2が対応するサブミッションキュー14からコマンドをフェッチするごとに、サブミッションキュー14におけるそのコマンドのフェッチ済みフラグを「1」に更新する。
図8は、第2の実施の形態によるストレージ装置40を示す。このストレージ装置40は、1又は複数のSSD41と、これらSSD41に対するデータの読み書きを制御するストレージコントローラ42とを備えて構成される。
なお上述の第1及び第2の実施の形態においては、本発明をストレージ装置1,40に適用するようにした場合について述べたが、本発明はこれに限らず、所定の処理を実行する1又は複数のデバイスと、デバイスを制御するコントローラと、コントローラに設けられ、デバイスごとのコマンドキューがそれぞれ定義されるメモリとを有する、サーバ装置やこれ以外のコンピュータ装置などの種々の情報処理システムに広く適用することができる。
Claims (6)
- 情報処理システムにおいて、
所定の処理を実行する1又は複数のデバイスと、
前記デバイスを制御するコントローラと、
前記コントローラに設けられ、前記デバイスごとのコマンドキューがそれぞれ定義されるメモリと
を備え、
前記コントローラは、前記デバイスに対するコマンドを対応する前記コマンドキューに順次書き込み、前記デバイスのコマンドフェッチ制御部は、前記コマンドキューに書き込まれたコマンドのうち、最も古い未実行のコマンドの位置を、前記コントローラがフェッチすべきコマンドの位置としてのヘッドポインタとして保存し、
前記デバイスは、前記ヘッドポインタに基づいて前記コマンドをフェッチして実行し、
前記コマンドには、当該コマンドがフェッチ済みであるか否かを表すフェッチ情報を格納するためのフィールドが設けられ、
前記デバイスは、
フェッチした前記コマンドの前記フェッチ情報の値を判定し、
当該フェッチ情報の値がフェッチ済みでないことを表す第1の値であった場合には、前記コマンドキューに格納されている当該コマンドの当該フェッチ情報の値をフェッチ済みであることを表す第2の値に更新した上で当該コマンドを実行する一方、当該フェッチ情報の値が前記第2の値であった場合には、当該コマンドを実行せずに所定のエラー処理を実行し、
前記エラー処理は、前記コントローラへのエラーの通知であり、
前記コントローラは、
前記デバイスからエラーが通知された場合には、保持している前記コマンドをすべて破棄するよう前記デバイスに指示を与えると共に、前記コマンドキューを初期化し、
初期化前に当該コマンドキューに書き込まれていた未実行の前記コマンドを当該コマンドキューに再度書き込み、
前記コマンドキューに前記コマンドを書き込んだ旨のコマンド書込み通知を前記デバイスに与え、
前記デバイスは、
前記コマンド書込み通知に応じて、前記コマンドキューから前記コマンドをフェッチする、
情報処理システム。 - 前記フェッチ情報はフラグである、
請求項1に記載の情報処理システム。 - 前記デバイスは、ストレージ装置に搭載された記憶装置であり、
前記コントローラは、前記ストレージ装置に実装され、前記デバイスを制御するストレージコントローラである、
請求項1に記載の情報処理システム。 - 所定の処理を実行する1又は複数のデバイスと、前記デバイスを制御するコントローラと、前記コントローラに設けられ、前記デバイスごとのコマンドキューがそれぞれ定義されるメモリとを有する情報処理システムにおいて実行される情報処理方法であって、
前記コントローラは、前記デバイスに対するコマンドを対応する前記コマンドキューに順次書き込み、前記デバイスのコマンドフェッチ制御部は、前記コマンドキューに書き込まれたコマンドのうち、最も古い未実行のコマンドの位置を、前記コントローラがフェッチすべきコマンドの位置としてのヘッドポインタとして保存し、
前記デバイスは、前記ヘッドポインタに基づいて前記コマンドをフェッチして実行し、
前記コマンドには、当該コマンドがフェッチ済みであるか否かを表すフェッチ情報を格納するためのフィールドが設けられ、
前記デバイスが、フェッチした前記コマンドの前記フェッチ情報の値を判定する第1のステップと、
前記デバイスが、当該フェッチ情報の値がフェッチ済みでないことを表す第1の値であった場合には、前記コマンドキューに格納されている当該コマンドの当該フェッチ情報の値をフェッチ済みであることを表す第2の値に更新した上で当該コマンドを実行する一方、当該フェッチ情報の値が前記第2の値であった場合には、当該コマンドを実行せずに所定のエラー処理を実行する第2のステップと、
を備え、
前記エラー処理は、前記コントローラへのエラーの通知であり、
前記コントローラが、前記デバイスからエラーが通知された場合には、保持している前記コマンドをすべて破棄するよう前記デバイスに指示を与えると共に、前記コマンドキューを初期化し、初期化前に当該コマンドキューに書き込まれていた未実行の前記コマンドを当該コマンドキューに再度書き込み、前記コマンドキューに前記コマンドを書き込んだ旨のコマンド書込み通知を前記デバイスに与える第3のステップと、
前記デバイスが、前記コマンド書込み通知に応じて、前記コマンドキューから前記コマンドをフェッチする第4のステップと、
を備える情報処理方法。 - 前記フェッチ情報はフラグである、
請求項4に記載の情報処理方法。 - 前記デバイスは、ストレージ装置に搭載された記憶装置であり、
前記コントローラは、前記ストレージ装置に実装され、前記デバイスを制御するストレージコントローラである、
請求項4に記載の情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017231221A JP6812332B2 (ja) | 2017-11-30 | 2017-11-30 | 情報処理システム及び情報処理方法 |
US16/122,909 US20190163399A1 (en) | 2017-11-30 | 2018-09-06 | Information processing system and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017231221A JP6812332B2 (ja) | 2017-11-30 | 2017-11-30 | 情報処理システム及び情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019101704A JP2019101704A (ja) | 2019-06-24 |
JP6812332B2 true JP6812332B2 (ja) | 2021-01-13 |
Family
ID=66634038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017231221A Active JP6812332B2 (ja) | 2017-11-30 | 2017-11-30 | 情報処理システム及び情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190163399A1 (ja) |
JP (1) | JP6812332B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7408357B2 (ja) | 2019-11-15 | 2024-01-05 | キオクシア株式会社 | メモリシステム及びその制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150067291A1 (en) * | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
US9489173B2 (en) * | 2014-06-04 | 2016-11-08 | Advanced Micro Devices, Inc. | Resizable and relocatable queue |
WO2017158799A1 (ja) * | 2016-03-17 | 2017-09-21 | 株式会社日立製作所 | ストレージ装置および情報処理方法 |
-
2017
- 2017-11-30 JP JP2017231221A patent/JP6812332B2/ja active Active
-
2018
- 2018-09-06 US US16/122,909 patent/US20190163399A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190163399A1 (en) | 2019-05-30 |
JP2019101704A (ja) | 2019-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107949842B (zh) | 支持多层存储器的虚拟文件系统 | |
JP5575338B2 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
CN110770710A (zh) | 用于控制数据加速的装置和方法 | |
US11509716B2 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
JP4080227B2 (ja) | データ検証方法およびディスクアレイ装置 | |
US7734842B2 (en) | Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages | |
WO2007122063A1 (en) | Migrating data that is subject to access by input/output devices | |
US20100169546A1 (en) | Flash memory access circuit | |
US8555050B2 (en) | Apparatus and method thereof for reliable booting from NAND flash memory | |
US20190155765A1 (en) | Operation method of host system including storage device and operation method of storage device controller | |
JP2007058286A (ja) | 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法 | |
JP2006190257A (ja) | データ転送装置およびデータ転送方法 | |
US6490668B2 (en) | System and method for dynamically moving checksums to different memory locations | |
JP5286796B2 (ja) | メモリ制御装置 | |
JP6812332B2 (ja) | 情報処理システム及び情報処理方法 | |
JP6447469B2 (ja) | 書換システム | |
US20230221899A1 (en) | Direct memory access data path for raid storage | |
US10761892B2 (en) | Method and electronic device for executing data reading/writing in volume migration | |
JP5846016B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP2008217202A (ja) | ディスクアレイ装置及びファームウェア更新方法 | |
JP4062429B2 (ja) | メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム | |
US20220100429A1 (en) | Control apparatus and information processing system | |
EP3945407A1 (en) | Systems and methods for processing copy commands | |
JP4164473B2 (ja) | 機能メモリアクセス制御システム、機能メモリ装置及びその制御方法、プログラム | |
JP6613874B2 (ja) | 情報処理装置、演算処理装置および情報処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191001 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6812332 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |