JP5870213B2 - ストレージシステム及びストレージシステムにおけるデータ転送制御方法 - Google Patents
ストレージシステム及びストレージシステムにおけるデータ転送制御方法 Download PDFInfo
- Publication number
- JP5870213B2 JP5870213B2 JP2014551437A JP2014551437A JP5870213B2 JP 5870213 B2 JP5870213 B2 JP 5870213B2 JP 2014551437 A JP2014551437 A JP 2014551437A JP 2014551437 A JP2014551437 A JP 2014551437A JP 5870213 B2 JP5870213 B2 JP 5870213B2
- Authority
- JP
- Japan
- Prior art keywords
- storage device
- data
- processor
- transfer
- user data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Claims (15)
- ユーザデータを格納する複数の不揮発性記憶デバイスと、
前記複数の不揮発性記憶デバイスとホストとの間のデータ転送を制御するコントローラと、を含むストレージシステムであって、
前記コントローラは、プロセッサコア回路と、プロセッサキャッシュと、ユーザデータを一時的に格納するキャッシュ領域を含む主記憶デバイスと、を含み、
前記プロセッサコア回路は、前記ホストから受信したコマンドの内容を特定し、
前記プロセッサコア回路は、前記コマンドに対する動作において前記ストレージシステム内で転送するデータの格納記憶デバイスを特定し、
前記プロセッサコア回路は、前記コマンドの種別及び前記特定した格納記憶デバイスに基づいて、前記ストレージシステム内において前記プロセッサキャッシュを介してデータ転送するかを決定する、ストレージシステム。 - 前記プロセッサコア回路は、前記コマンドの種別がリードコマンドである前記受信したコマンドに対して、前記格納記憶デバイスであるコマンド指定ユーザデータの読み出し元記憶デバイスを特定し、
前記プロセッサコア回路は、前記コマンドの種別及び前記特定した読み出し元記憶デバイスに基づいて、前記データ転送において前記プロセッサキャッシュを介してデータ転送するかを決定する、請求項1に記載のストレージシステム。 - 前記コントローラは、第1クラスタと第2クラスタとを含み、
前記第1クラスタは、前記プロセッサコア回路と、前記プロセッサキャッシュと、前記主記憶デバイスと、を含み、
前記第2クラスタは、第2プロセッサコア回路と、第2プロセッサキャッシュと、第2主記憶デバイスと、転送制御デバイスと、を含み、
前記読み出し元記憶デバイスは、前記第2主記憶デバイスであり、
前記第1クラスタの前記プロセッサコア回路は、前記第2主記憶デバイスから前記ホストへの前記コマンド指定ユーザデータの転送における転送バッファとして、前記プロセッサキャッシュを使用することを決定し、
前記第1クラスタの前記プロセッサコア回路は、前記転送制御デバイスに、前記第2主記憶デバイスから前記プロセッサキャッシュへの前記コマンド指定ユーザデータの転送を指示する、請求項2に記載のストレージシステム。 - 前記複数の不揮発性記憶デバイスは、第1不揮発性記憶デバイスと、当該第1不揮発性記憶デバイスよりも応答速度が遅い第2不揮発性記憶デバイスと、を含み、
前記リードコマンドの前記読み出し元記憶デバイスは、前記第2不揮発性記憶デバイスであり、
前記プロセッサコア回路は、前記第2不揮発性記憶デバイスから前記ホストへの前記コマンド指定ユーザデータの転送における転送バッファとして、前記プロセッサキャッシュを使用することを決定し、
前記プロセッサコア回路は、前記プロセッサキャッシュに格納されている前記コマンド指定ユーザデータを前記ホストに転送した後に、前記コマンド指定ユーザデータを前記プロセッサキャッシュから前記主記憶デバイスに追い出す、請求項2に記載のストレージシステム。 - 前記リードコマンドの前記読み出し元記憶デバイスは、第1不揮発性記憶デバイスであり、
前記プロセッサコア回路は、前記第1不揮発性記憶デバイスから前記ホストへの前記コマンド指定ユーザデータの転送における転送バッファとして前記プロセッサキャッシュを使用することを決定し、
前記プロセッサコア回路は、前記第1不揮発性記憶デバイスから前記プロセッサキャッシュに格納された前記コマンド指定ユーザデータを前記ホストに転送した後に、前記コマンド指定ユーザデータを格納している前記プロセッサキャッシュの領域を解放する、請求項2に記載のストレージシステム。 - 前記プロセッサコア回路は、前記受信したコマンドが指定するユーザデータのデータ長に基づいて、前記コントローラにおけるデータ転送において、前記プロセッサキャッシュを転送バッファとして使用するか否かを決定する、請求項1に記載のストレージシステム。
- 前記コントローラは、第1クラスタと第2クラスタとを含み、
前記第1クラスタは、前記プロセッサコア回路と、前記主記憶デバイスと、転送制御デバイスと、を含み、
前記第2クラスタは、第2プロセッサコア回路と、前記プロセッサキャッシュと、第2主記憶デバイスと、を含み、
前記受信したコマンドはライトコマンドであり、前記格納記憶デバイスは前記第2主記憶デバイスであり、
前記プロセッサコア回路は、前記ライトコマンドに対して、前記ホストから受信したユーザデータの前記第1クラスタから前記第2主記憶デバイスへの転送において、前記プロセッサキャッシュを転送バッファとして使用することを決定し、
前記プロセッサコア回路は、前記転送制御デバイスに、前記ユーザデータを前記プロセッサキャッシュに転送することを指示し、
前記転送制御デバイスは、前記プロセッサコア回路からの前記指示に従って、前記ユーザデータを、前記プロセッサキャッシュに転送し、
前記第2プロセッサコア回路は、前記プロセッサキャッシュの前記ユーザデータの保証コードを検証し、
前記第2プロセッサコア回路は、前記保証コードが検証された前記ユーザデータを、前記プロセッサキャッシュから前記第2主記憶デバイスに追い出す、請求項1に記載のストレージシステム。 - 前記複数の不揮発性記憶デバイスは、複数の第1種不揮発性記憶デバイスと、前記第1種不揮発性記憶デバイスよりも応答速度が遅い複数の第2種不揮発性記憶デバイスと、を含み、
前記受信したコマンドはライトコマンドであり、
前記格納記憶デバイスは、前記ホストから受信したユーザデータを格納する不揮発性記憶デバイスであり、
前記ユーザデータのデータ長が閾値以上である場合に、前記プロセッサコア回路は、前記複数の不揮発性記憶デバイスに格納されたデータを使用することなく、前記ユーザデータからパリティデータを生成することを決定し、
前記データ長が前記閾値未満であり、前記ユーザデータを格納する前記不揮発性記憶デバイスが第2種不揮発性記憶デバイスである場合に、前記プロセッサコア回路は、前記プロセッサキャッシュを介さずに前記ユーザデータのパリティ生成のためのデータを1又は複数の第2種不揮発性記憶デバイスから前記主記憶デバイスに転送することを決定する、請求項1に記載のストレージシステム。 - 前記コントローラは、第1クラスタと第2クラスタとを含み、
前記第1クラスタは、前記プロセッサコア回路と、前記プロセッサキャッシュと、前記主記憶デバイスと、転送制御デバイスと、を含み、
前記第2クラスタは、第2プロセッサコア回路と、第2プロセッサキャッシュと、第2主記憶デバイスと、を含み、
前記プロセッサコア回路は、前記生成したパリティデータの前記第2主記憶デバイスへの転送において前記第2プロセッサキャッシュを介して転送することを決定し、
前記プロセッサコア回路は、前記転送制御デバイスに、前記パリティデータを前記第2プロセッサキャッシュに転送することを指示し、
前記転送制御デバイスは、前記プロセッサコア回路からの前記指示に従って、前記パリティデータを、前記第2プロセッサキャッシュに転送し、
前記第2プロセッサコア回路は、前記第2プロセッサキャッシュの前記パリティデータの保証コードを検証し、
前記第2プロセッサコア回路は、前記保証コードが検証された前記パリティデータを、前記第2プロセッサキャッシュから前記第2主記憶デバイスに追い出す、請求項8に記載のストレージシステム。 - 前記コントローラは、第1転送制御デバイス及び第2転送制御デバイスをさらに含み、
前記プロセッサコア回路は、前記第1転送制御デバイスに、転送先を示す情報を付与してデータを前記第2転送制御デバイスに転送することを指示し、
前記第2転送制御デバイスは、受信した前記データに付与されている前記情報を参照して、前記データを前記プロセッサキャッシュ又は前記主記憶デバイスの一方に転送する、請求項1に記載のストレージシステム。 - 不揮発性記憶デバイスと、プロセッサキャッシュと、ユーザデータを一時的に格納するキャッシュ領域を含む主記憶デバイスと、を含むストレージシステムにおける、データ転送制御方法であって、
ホストから受信したコマンドの内容を特定し、
前記コマンドに対する動作において前記ストレージシステム内で転送するデータの格納記憶デバイスを特定し、
前記コマンドの種別及び前記特定した格納記憶デバイスに基づいて、前記ストレージシステム内のデータ転送において前記プロセッサキャッシュを介して転送するか否かを決定する、データ転送制御方法。 - 前記コマンドの種別がリードコマンドである前記受信したコマンドに対して、前記格納記憶デバイスであるコマンド指定ユーザデータの読み出し元記憶デバイスを特定し、
前記コマンドの種別及び前記特定した読み出し元記憶デバイスに基づいて、前記データ転送において前記プロセッサキャッシュを介して転送するか否かを決定する、請求項11に記載のデータ転送制御方法。 - 前記ストレージシステムは、第1クラスタと第2クラスタとを含み、
前記第1クラスタは、前記プロセッサキャッシュと、前記主記憶デバイスと、を含み、
前記第2クラスタは、第2プロセッサキャッシュと、第2主記憶デバイスと、を含み、
前記読み出し元記憶デバイスは、前記第2主記憶デバイスであり、
前記第2主記憶デバイスから前記プロセッサキャッシュを介して前記ホストへの前記コマンド指定ユーザデータの転送をすることを決定し、
前記第2主記憶デバイスから前記プロセッサキャッシュへ、前記コマンド指定ユーザデータを転送する、請求項12に記載のデータ転送制御方法。 - 前記ストレージシステムは、第1クラスタと第2クラスタとを含み、
前記第1クラスタは、前記主記憶デバイスと、転送制御デバイスと、を含み、
前記第2クラスタは、前記プロセッサキャッシュと、第2主記憶デバイスと、を含み、
前記受信したコマンドはライトコマンドであり、前記格納記憶デバイスは前記第2主記憶デバイスであり、
前記ライトコマンドに対して、前記ホストから受信したユーザデータの前記第1クラスタから前記プロセッサキャッシュを介して前記第2主記憶デバイスへの転送をすることを決定し、
前記ユーザデータを前記プロセッサキャッシュに転送し、
前記プロセッサキャッシュの前記ユーザデータの保証コードを検証し、
前記保証コードが検証された前記ユーザデータを、前記プロセッサキャッシュから前記第2主記憶デバイスに追い出す、請求項11に記載のデータ転送制御方法。 - 前記複数の不揮発性記憶デバイスは、複数の第1種不揮発性記憶デバイスと、前記第1種不揮発性記憶デバイスよりも応答速度が遅い複数の第2種不揮発性記憶デバイスと、を含み、
前記受信したコマンドはライトコマンドであり、
前記格納記憶デバイスは、前記ホストから受信したユーザデータを格納する不揮発性記憶デバイスであり、
前記ユーザデータのデータ長が閾値以上である場合に、前記複数の不揮発性記憶デバイスに格納されたデータを使用することなく、前記ユーザデータからパリティデータを生成することを決定し、
前記データ長が前記閾値未満であり、前記ユーザデータを格納する前記不揮発性記憶デバイスが第2種不揮発性記憶デバイスである場合に、前記プロセッサキャッシュを介さずに前記ユーザデータのパリティ生成のためのデータを1又は複数の第2種不揮発性記憶デバイスから前記主記憶デバイスに転送することを決定する、請求項11に記載のデータ転送制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/003186 WO2013171789A1 (en) | 2012-05-16 | 2012-05-16 | Storage system and method of controlling data transfer in storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015519619A JP2015519619A (ja) | 2015-07-09 |
JP5870213B2 true JP5870213B2 (ja) | 2016-02-24 |
Family
ID=49582280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014551437A Expired - Fee Related JP5870213B2 (ja) | 2012-05-16 | 2012-05-16 | ストレージシステム及びストレージシステムにおけるデータ転送制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9075729B2 (ja) |
JP (1) | JP5870213B2 (ja) |
WO (1) | WO2013171789A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286225B2 (en) | 2013-03-15 | 2016-03-15 | Saratoga Speed, Inc. | Flash-based storage system including reconfigurable circuitry |
US9304902B2 (en) * | 2013-03-15 | 2016-04-05 | Saratoga Speed, Inc. | Network storage system using flash storage |
KR20140124674A (ko) * | 2013-04-17 | 2014-10-27 | 한국전자통신연구원 | 파일 수준의 데이터 분산 저장 방법 |
US10313236B1 (en) | 2013-12-31 | 2019-06-04 | Sanmina Corporation | Method of flow based services for flash storage |
US10013344B2 (en) | 2014-01-14 | 2018-07-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Enhanced SSD caching |
US20150261681A1 (en) * | 2014-03-14 | 2015-09-17 | International Business Machines Corporation | Host bridge with cache hints |
US9881680B2 (en) | 2014-06-03 | 2018-01-30 | Qualcomm Incorporated | Multi-host power controller (MHPC) of a flash-memory-based storage device |
US9690720B2 (en) * | 2014-06-03 | 2017-06-27 | Qualcomm Incorporated | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device |
US9608936B1 (en) | 2014-07-03 | 2017-03-28 | Sanmina Corporation | Network system with offload services for flash storage |
US9672180B1 (en) | 2014-08-06 | 2017-06-06 | Sanmina Corporation | Cache memory management system and method |
US9384147B1 (en) | 2014-08-13 | 2016-07-05 | Saratoga Speed, Inc. | System and method for cache entry aging |
US9715428B1 (en) | 2014-09-24 | 2017-07-25 | Sanmina Corporation | System and method for cache data recovery |
KR102367982B1 (ko) * | 2015-06-22 | 2022-02-25 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US10606751B2 (en) * | 2016-07-01 | 2020-03-31 | Intel Corporation | Techniques for cache delivery |
US11169746B2 (en) | 2018-06-19 | 2021-11-09 | Weka.IO LTD | Expanding a distributed storage system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4433374A (en) * | 1980-11-14 | 1984-02-21 | Sperry Corporation | Cache/disk subsystem with cache bypass |
US6378047B1 (en) * | 1997-07-07 | 2002-04-23 | Micron Technology, Inc. | System and method for invalidating set-associative cache memory with simultaneous set validity determination |
US6591332B1 (en) * | 2000-04-28 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Apparatus and method for tracking flushes of cache entries in a data processing system |
JP4066833B2 (ja) * | 2003-02-18 | 2008-03-26 | 日本電気株式会社 | ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム |
US7159076B2 (en) * | 2003-06-24 | 2007-01-02 | Research In Motion Limited | Cache operation with non-cache memory |
JP5008845B2 (ja) * | 2005-09-01 | 2012-08-22 | 株式会社日立製作所 | ストレージシステムとストレージ装置及びその制御方法 |
US8595313B2 (en) * | 2005-11-29 | 2013-11-26 | Netapp. Inc. | Systems and method for simple scale-out storage clusters |
US7444544B2 (en) * | 2006-07-14 | 2008-10-28 | International Business Machines Corporation | Write filter cache method and apparatus for protecting the microprocessor core from soft errors |
JP4933211B2 (ja) * | 2006-10-10 | 2012-05-16 | 株式会社日立製作所 | ストレージ装置、制御装置及び制御方法 |
US20100269021A1 (en) * | 2007-09-05 | 2010-10-21 | Gower Kevin C | Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module |
JP2009093225A (ja) * | 2007-10-03 | 2009-04-30 | Nec Corp | ストレージ制御装置、方法及びプログラム並びにストレージ装置 |
JP2010033125A (ja) | 2008-07-25 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
JP4809413B2 (ja) * | 2008-10-08 | 2011-11-09 | 株式会社日立製作所 | ストレージシステム |
US8825685B2 (en) * | 2009-11-16 | 2014-09-02 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
WO2012032582A1 (en) * | 2010-09-10 | 2012-03-15 | Hitachi, Ltd. | Storage system and data transfer method of storage system |
-
2012
- 2012-05-16 JP JP2014551437A patent/JP5870213B2/ja not_active Expired - Fee Related
- 2012-05-16 WO PCT/JP2012/003186 patent/WO2013171789A1/en active Application Filing
- 2012-05-16 US US13/511,888 patent/US9075729B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9075729B2 (en) | 2015-07-07 |
WO2013171789A1 (en) | 2013-11-21 |
US20130311706A1 (en) | 2013-11-21 |
JP2015519619A (ja) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5870213B2 (ja) | ストレージシステム及びストレージシステムにおけるデータ転送制御方法 | |
TWI673608B (zh) | 使用反向快取表的基於硬體之映射加速 | |
US9569118B2 (en) | Promoting consistent response times in a data storage system having multiple data retrieval mechanisms | |
US9235346B2 (en) | Dynamic map pre-fetching for improved sequential reads of a solid-state media | |
US9619180B2 (en) | System method for I/O acceleration in hybrid storage wherein copies of data segments are deleted if identified segments does not meet quality level threshold | |
US8533397B2 (en) | Improving performance in a cache mechanism by way of destaging data in partial strides | |
US9047200B2 (en) | Dynamic redundancy mapping of cache data in flash-based caching systems | |
US11741013B2 (en) | Prefetch buffer of memory sub-system | |
US11403011B1 (en) | Host memory buffer allocation management | |
US9921913B2 (en) | Flushing host cache data before rebuilding degraded redundant virtual disk | |
US11372763B2 (en) | Prefetch for data interface bridge | |
TWI792747B (zh) | 用來在儲存伺服器中進行基於管線的存取管理的方法及設備 | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
US11175859B1 (en) | Managing memory commands in a memory subsystem by adjusting a maximum number of low priority commands in a DRAM controller | |
US11301383B2 (en) | Managing processing of memory commands in a memory subsystem with a high latency backing store | |
US20120017057A1 (en) | Data copying device, method for copying data and data storage device | |
US20240061786A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
EP4303734A1 (en) | Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device | |
US20230019878A1 (en) | Systems, methods, and devices for page relocation for garbage collection | |
US20240012580A1 (en) | Systems, methods, and devices for reclaim unit formation and selection in a storage device | |
CN117609105A (zh) | 用于访问存储器页的版本中的数据的方法和设备 | |
CN115809018A (zh) | 改善系统的读取性能的设备和方法 | |
KR20120044717A (ko) | 패리티 캐시를 이용한 raid 레벨 5의 고속화를 위한 raid 제어 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150630 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150717 |
|
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: 20160105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5870213 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |