KR102805147B1 - 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 - Google Patents
저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 Download PDFInfo
- Publication number
- KR102805147B1 KR102805147B1 KR1020170021794A KR20170021794A KR102805147B1 KR 102805147 B1 KR102805147 B1 KR 102805147B1 KR 1020170021794 A KR1020170021794 A KR 1020170021794A KR 20170021794 A KR20170021794 A KR 20170021794A KR 102805147 B1 KR102805147 B1 KR 102805147B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- caching
- physical locations
- storage subsystem
- data storage
- 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 OR CALCULATING; 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/048,080 | 2016-02-19 | ||
| US15/048,080 US10169232B2 (en) | 2016-02-19 | 2016-02-19 | Associative and atomic write-back caching system and method for storage subsystem |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170098187A KR20170098187A (ko) | 2017-08-29 |
| KR102805147B1 true KR102805147B1 (ko) | 2025-05-08 |
Family
ID=59629440
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020170021794A Active KR102805147B1 (ko) | 2016-02-19 | 2017-02-17 | 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10169232B2 (enExample) |
| JP (1) | JP6832187B2 (enExample) |
| KR (1) | KR102805147B1 (enExample) |
| CN (1) | CN107102955B (enExample) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180004668A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Searchable hot content cache |
| US10657049B2 (en) * | 2016-10-17 | 2020-05-19 | SK Hynix Inc. | Memory system and operating method thereof |
| US10282301B2 (en) * | 2017-05-18 | 2019-05-07 | Avago Technologies International Sales Pte. Limited | Method and system for hardware accelerated read-ahead caching |
| US10528438B2 (en) * | 2017-05-25 | 2020-01-07 | Avago Technologies International Sales Pte. Limited | Method and system for handling bad blocks in a hardware accelerated caching solution |
| US10565109B2 (en) * | 2017-09-05 | 2020-02-18 | International Business Machines Corporation | Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface |
| CN107577439B (zh) * | 2017-09-28 | 2020-10-20 | 苏州浪潮智能科技有限公司 | 分配处理资源的方法、装置、设备及计算机可读存储介质 |
| US10819647B2 (en) * | 2017-12-06 | 2020-10-27 | Marvell Israel (M.I.S.L) Ltd. | Network device having reduced latency |
| US10705969B2 (en) * | 2018-01-19 | 2020-07-07 | Samsung Electronics Co., Ltd. | Dedupe DRAM cache |
| WO2019231761A1 (en) * | 2018-05-31 | 2019-12-05 | Secturion Systems, Inc. | Locally-stored remote block data integrity |
| US10628072B2 (en) * | 2018-08-21 | 2020-04-21 | Samsung Electronics Co., Ltd. | Scalable architecture enabling large memory system for in-memory computations |
| KR102795565B1 (ko) * | 2019-02-19 | 2025-04-15 | 에스케이하이닉스 주식회사 | 메모리 시스템의 맵 데이터 관리 방법 및 장치 |
| US10908821B2 (en) * | 2019-02-28 | 2021-02-02 | Micron Technology, Inc. | Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system |
| US11106609B2 (en) | 2019-02-28 | 2021-08-31 | Micron Technology, Inc. | Priority scheduling in queues to access cache data in a memory sub-system |
| WO2021111156A1 (en) | 2019-12-03 | 2021-06-10 | Micron Technology, Inc. | Cache architecture for a storage device |
| US11157193B2 (en) * | 2019-12-16 | 2021-10-26 | Micron Technology, Inc. | Coherency issue resolution in logical to physical page translation in a memory sub-system |
| US11245774B2 (en) * | 2019-12-16 | 2022-02-08 | EMC IP Holding Company LLC | Cache storage for streaming data |
| CN112988623B (zh) * | 2019-12-17 | 2021-12-21 | 北京忆芯科技有限公司 | 加速sgl处理的方法与存储设备 |
| CN111159065B (zh) * | 2019-12-31 | 2025-09-16 | 厦门鑫忆讯科技有限公司 | 带有关键字的硬件缓存管理单元(bmu) |
| US11210168B1 (en) | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
| CN115407942B (zh) * | 2022-08-29 | 2023-07-14 | 深圳市锦锐科技股份有限公司 | 一种适用于单片机芯片的数据处理方法 |
| CN116303138B (zh) * | 2023-05-08 | 2023-08-29 | 北京云脉芯联科技有限公司 | 一种缓存架构及缓存方法、电子设备 |
| CN117609314A (zh) * | 2024-01-22 | 2024-02-27 | 北京象帝先计算技术有限公司 | 一种缓存数据处理方法、缓存控制器、芯片及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020131310A1 (en) * | 2001-03-15 | 2002-09-19 | Atsushi Kuwata | Disk array controller |
| US20040230737A1 (en) * | 2003-05-16 | 2004-11-18 | Burton David Alan | Methods and systems of cache memory management and snapshot operations |
| JP2013097416A (ja) | 2011-10-28 | 2013-05-20 | Hitachi Ltd | 記憶装置および計算機 |
| US20140344503A1 (en) * | 2013-05-17 | 2014-11-20 | Hitachi, Ltd. | Methods and apparatus for atomic write processing |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7099999B2 (en) * | 2003-09-30 | 2006-08-29 | International Business Machines Corporation | Apparatus and method for pre-fetching data to cached memory using persistent historical page table data |
| US20060090016A1 (en) * | 2004-10-27 | 2006-04-27 | Edirisooriya Samantha J | Mechanism to pull data into a processor cache |
| JP4420351B2 (ja) * | 2005-09-30 | 2010-02-24 | 富士通株式会社 | 階層ストレージシステム、制御方法及びプログラム |
| JP2010160544A (ja) * | 2009-01-06 | 2010-07-22 | Core Micro Systems Inc | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
| US8495299B2 (en) | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
| EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
| KR20130064518A (ko) * | 2011-12-08 | 2013-06-18 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
| US9384072B2 (en) * | 2012-12-20 | 2016-07-05 | Oracle International Corporation | Distributed queue pair state on a host channel adapter |
| WO2015052798A1 (ja) * | 2013-10-09 | 2015-04-16 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
| US9430396B2 (en) * | 2014-12-22 | 2016-08-30 | Intel Corporation | Updating persistent data in persistent memory-based storage |
| US9910797B2 (en) * | 2015-10-05 | 2018-03-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Space efficient formats for scatter gather lists |
-
2016
- 2016-02-19 US US15/048,080 patent/US10169232B2/en active Active
-
2017
- 2017-02-17 CN CN201710087102.5A patent/CN107102955B/zh active Active
- 2017-02-17 JP JP2017028194A patent/JP6832187B2/ja not_active Expired - Fee Related
- 2017-02-17 KR KR1020170021794A patent/KR102805147B1/ko active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020131310A1 (en) * | 2001-03-15 | 2002-09-19 | Atsushi Kuwata | Disk array controller |
| US6845426B2 (en) | 2001-03-15 | 2005-01-18 | Nec Corporation | Disk cache control for servicing a plurality of hosts |
| US20040230737A1 (en) * | 2003-05-16 | 2004-11-18 | Burton David Alan | Methods and systems of cache memory management and snapshot operations |
| JP2013097416A (ja) | 2011-10-28 | 2013-05-20 | Hitachi Ltd | 記憶装置および計算機 |
| US20140344503A1 (en) * | 2013-05-17 | 2014-11-20 | Hitachi, Ltd. | Methods and apparatus for atomic write processing |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2017151982A (ja) | 2017-08-31 |
| US10169232B2 (en) | 2019-01-01 |
| CN107102955A (zh) | 2017-08-29 |
| US20170242794A1 (en) | 2017-08-24 |
| JP6832187B2 (ja) | 2021-02-24 |
| KR20170098187A (ko) | 2017-08-29 |
| CN107102955B (zh) | 2020-03-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102805147B1 (ko) | 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 | |
| US12147673B2 (en) | Memory system and method for controlling nonvolatile memory | |
| US10152428B1 (en) | Virtual memory service levels | |
| KR102193689B1 (ko) | 예측에 기초하여 효율적으로 캐시 라인을 관리하는 시스템 및 방법 | |
| US6339813B1 (en) | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory | |
| US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
| US10545862B2 (en) | Memory system and method for controlling nonvolatile memory | |
| US10055349B2 (en) | Cache coherence protocol | |
| US6772288B1 (en) | Extended cache memory system and method for caching data including changing a state field value in an extent record | |
| US8145870B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
| US20110161597A1 (en) | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller | |
| US7590802B2 (en) | Direct deposit using locking cache | |
| CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
| JP3866447B2 (ja) | マルチプロセッサ・ノードデータ処理システムに使用するディレクトリエントリ割当てシステム及び方法 | |
| US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
| US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
| US12197723B2 (en) | Memory system controlling nonvolatile memory | |
| KR20180122969A (ko) | 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법 | |
| US20060123196A1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
| CN111480151B (zh) | 将高速缓存线从共用存储器页面冲洗到存储器 | |
| JP2024077215A (ja) | メモリシステムおよび制御方法 | |
| US11436150B2 (en) | Method for processing page fault by processor | |
| US20240403241A1 (en) | Systems, methods, and apparatus for cache operation in storage devices | |
| US7143239B2 (en) | Cache structure and methodology | |
| US20250383999A1 (en) | Method for accelerating logical-to-physical address lookup operations in symmetric multi-processing environment and flash memory controller using the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20170217 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20211220 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20170217 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240718 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20250317 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20250502 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20250502 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |