WO2009088194A2 - 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법 - Google Patents

컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법 Download PDF

Info

Publication number
WO2009088194A2
WO2009088194A2 PCT/KR2009/000034 KR2009000034W WO2009088194A2 WO 2009088194 A2 WO2009088194 A2 WO 2009088194A2 KR 2009000034 W KR2009000034 W KR 2009000034W WO 2009088194 A2 WO2009088194 A2 WO 2009088194A2
Authority
WO
WIPO (PCT)
Prior art keywords
cache
upstream
block
fragment
caches
Prior art date
Application number
PCT/KR2009/000034
Other languages
English (en)
French (fr)
Other versions
WO2009088194A3 (ko
Inventor
Kyu-Ho Park
Sung-Hoon Baek
Original Assignee
Korea Advanced Institute Of Science And Technology
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 Korea Advanced Institute Of Science And Technology filed Critical Korea Advanced Institute Of Science And Technology
Publication of WO2009088194A2 publication Critical patent/WO2009088194A2/ko
Publication of WO2009088194A3 publication Critical patent/WO2009088194A3/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/06Roasters; Grills; Sandwich grills
    • A47J37/07Roasting devices for outdoor use; Barbecues
    • A47J37/0718Roasting devices for outdoor use; Barbecues with vertical fire box
    • A47J37/0722Roasting devices for outdoor use; Barbecues with vertical fire box with electric heating elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/04Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits
    • A47J37/043Roasting apparatus with movably-mounted food supports or with movable heating implements; Spits with food supports rotating about a vertical axis
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J37/00Baking; Roasting; Grilling; Frying
    • A47J37/06Roasters; Grills; Sandwich grills
    • A47J37/07Roasting devices for outdoor use; Barbecues
    • A47J37/0745Roasting devices for outdoor use; Barbecues with motor-driven food supports
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/02Doors specially adapted for stoves or ranges
    • F24C15/021Doors specially adapted for stoves or ranges sealings for doors or transparent panel
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/34Elements and arrangements for heat storage or insulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Definitions

  • Prefetching technology dates back to the 1960s when the processor reads multiple words in advance on a cache line.
  • many prefetching techniques have been developed in processors, and this prefetching technique has been applied to disk prefetching, which is read in advance from disk to memory.
  • disk prefetching increases the disk performance by lowering the disk read cost or increases the overall performance of the system by overlapping the operation and disk I / O.
  • an object of the present invention is to propose a prefetching data management method in a computer storage device which can increase efficiency in consideration of prefetching.
  • Another object of the present invention is to propose a prefetching data management method in a computer storage device that manages prefetched caches online.
  • the upstream and downstream fragment caches are each managed by a Least Recently Used (LRU) policy.
  • LRU Least Recently Used
  • the first step may further include moving the fragment cache to a downstream most recently used (MRU) location when a read request to a cached block cache included in the downstream fragment cache occurs. If a read request results in a cache miss, the read requested data is read from disk without fragment prefetching.
  • MRU most recently used
  • the corresponding fragment cache is fragment prefetched (SP) or a predetermined pre-determination.
  • SP fragment prefetched
  • MRU Most Recently Used
  • the first process when a read request to a block that does not belong to the upstream or downstream fragment cache or the ghost fragment cache occurs, allocates a fragment cache for the block and assigns the fragment cache to an upstream MRU (Most). inserting at a recently used location, wherein the fragment cache is read using a strip prefetching (SP) or a predetermined prefetching technique.
  • SP strip prefetching
  • the present invention provides a method of managing prefetched data in a computer storage device, wherein the entire cache is managed in units of the block caches, and block caches are divided into upstream and downstream streams.
  • a first process having the prefetched block cache and the cached block cache, the downstream controlling only to have the cached block cache, and a prefetching hit rate for the number Nu of the block caches that the upstream may have And a second step of updating by using a derivative of the cache hit ratio sum, when the number of block caches included in the upstream is greater than the number of updated block caches Nu , upstream LRUs according to a Least Recently Used (LRU) policy. Moving the block cache downstream, wherein the prefetched block cache of the block cache is removed from the cache.
  • LRU Least Recently Used
  • ⁇ P is the number of the prefetching hits occurring below the upstream for some time
  • ⁇ C is the number of the cache hits occurring below the whole during the same time
  • is 1 + (the number of prefetched block caches upstream) Number) / (number of block caches below total)
  • S is a constant.
  • the upstream and downstream block caches are each managed by a Least Recently Used (LRU) policy.
  • LRU Least Recently Used
  • the first step may further include moving the block cache to a downstream most recently used (MRU) location when a read request to a cached block cache included in the downstream black cache occurs.
  • MRU most recently used
  • the method further includes newly allocating a block cache for a corresponding block and inserting the block cache at an upstream Most Recently Used (MRU) location.
  • MRU Most Recently Used
  • the number of prefetching block caches and the number of cached block caches are optimally allocated to equal two modified utilization rates of prefetching hit rate and cache hit rate.
  • FIG. 1 shows an example of the structure of a strip and stripe in a disk array consisting of four disks in accordance with a preferred embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a process of calculating the number of fragment caches upstream in the cache managed by the fragment cache of the present invention.
  • FIG. 4 is a diagram illustrating an adaptive cache sweeping scheme for a cache managed in a block cache unit according to a preferred embodiment of the present invention.
  • FIG. 5 is a flow chart illustrating an adaptive cache flushing scheme for a cache managed as a fragment cache in accordance with a preferred embodiment of the present invention.
  • FIG. 6 is a flow chart illustrating an adaptive cache flushing scheme for a cache managed as a block cache in accordance with a preferred embodiment of the present invention.
  • Block cache that was requested by the host (cached block cache)
  • Block cache prefetched but not requested by host prefetched block cache
  • the present invention proposes a prefetching data management method which can obtain a high performance gain even with a prefetching method having a little accuracy.
  • the accuracy problem may be solved if the sum of the prefetching hit rate and the cache hit rate is higher than either the prefetching hit rate of any prefetching or the cache hit rate without prefetching.
  • the present invention makes the change utilization rate of the prefetching hit rate and the change utilization rate of the cache hit rate equal to every instant, while the cache management method, that is, automatic and adaptive, is ejected from the memory at the appropriate moment, but not used caches in memory. Use cache management methods.
  • the present invention relates to a method of managing a pre-fetched block cache 121 and a cached block cache 120 in a computer including a data storage device such as a disk and a cache memory for the disk.
  • Prefetching is an operation in which a host or a program does not require any block of a disk, but the operating system or disk driver reads a block into cache memory beforehand.
  • the prefetched block cache 121 is a cache that holds a block of a disk that has been prefetched but not requested by the host or program.
  • Cached block cache 120 is a cache that holds blocks already requested by the host or program.
  • the empty block cache 122 is a block cache that does not hold data.
  • the present invention is divided into a method of managing the cache memory shown in FIG. 2 as a fragment cache and a method for managing the block memory shown in FIG.
  • the basic operating principle of these two methods is the same, but the specific process is different.
  • an adaptive cache culling method managed by the fragment cache shown in FIG. 2 will be described.
  • the cache write technique illustrated in FIG. 2 is a method well suited to a strip prefetching technique (hereinafter referred to as 'SP') which is prefetched in units of a fragment cache.
  • 'SP' strip prefetching technique
  • the noise technique is not limited to the engraving prefetching technique, the present invention will be described as an example using the SP.
  • Fragmentation is a collection of contiguous blocks on disk.
  • RAID Redundant Array of Independent Disks
  • Stripe 30 in a raid consists of strips 20 of disks 1, 2, 3, and 4, with pieces 20 being contiguous blocks 10 in the disk. Consists of However, the fragment is not limited to a raid, but may be defined only as a set of contiguous blocks on a disk.
  • the fragment cache 110 is a cache managed in units of the pieces.
  • the fragment cache 110 may include a cached block cache 120, a prefetched block cache 121, and an empty block cache 122.
  • a fragment cache that does not contain the empty block cache 122 is called a full fragment cache, and a fragment cache that includes the empty block cache 122 is called a partially filled fragment cache.
  • the adaptive cache hitting technique of the present invention has a hit ratio of a method in which the sum of the cache hit rate and the prefetching hit rate does not perform the SP and the SP. Guarantees greater than or equal to
  • the adaptive cache dumping technique leaves prefetched and unsolicited block caches in an adaptive manner in a timely manner.
  • such a procedure is referred to as drawing or drawing off. If the prefetched but not requested host cache blocks too early, the cache hit rate increases and the prefetch hit rate decreases. If the prefetched block cache goes too late, the cache hit rate decreases and the prefetch hit rate increases.
  • the cache is managed in pieces cache, each piece cache consists of four block caches.
  • Each block cache may be a prefetched block cache or a cached block cache or an empty block cache.
  • the present invention manages additional information that can determine which block cache has memory for disk data, whether it is prefetched but not referenced, or cached block cache.
  • the fragment caches shown in FIG. 1 are divided into upstream 110 and downstream 103.
  • Upstream 110 and downstream 103 are managed with a last recently used (LRU) policy.
  • Upstream 101 may have a prefetched block cache and a cached block cache, while downstream 103 does not include a prefetched block cache.
  • the newly allocated fragment cache is inserted at the most recently used (MRU) location upstream 101. If the number of fragment caches of upstream 101 exceeds the maximum number Nu of fragment caches that upstream 101 may have, downstream 103 of Least Recently Used (LRU) fragment cache 112 of upstream 101 Move to Most Recently Used (MRU) location 113 of the. At this time, all prefetched block caches of the fragment cache are evicted. This process is called cache flushing.
  • MRU most recently used
  • sibling fragment caches 115 are fragment caches corresponding to fragments 20 belonging to the same stripe 30 of the same raid.
  • the ghost fragment cache 115 survives the fragment cache 110 that maintained the request state in the past.
  • This fragment cache, which was a ghost in the past, is called a reproduced fragment cache.
  • the reproduced fragment cache is no different from other fragment caches except for the state of the past.
  • the upstream 101 and downstream 102 are managed according to the following rules.
  • the fragment cache When a read request to block 10 included in fragment cache 110 downstream (103) occurs, the fragment cache is moved to an upstream MRU location (113). If the request causes a cache miss, the data is read without the SP.
  • the cache miss refers to a situation in which the requested block is not in the cache and must be read from the disk.
  • the requested fragment cache is upstream. Go to the MRU location 111. However, the requested block is read from the disk without the SP. However, the cached block cache in the past means a block cache that was a cache cached before the corresponding block cache becomes a ghost.
  • the old empty block cache refers to a block cache that was an empty block cache before the corresponding block cache became a ghost.
  • the fragment cache 110 is inserted at the upstream MRU location 111.
  • the fragment cache 110 is read by the SP or some prefetching technique.
  • the request state of the past of the ghost piece cache 115 is maintained even when the ghost piece cache 115 is reproduced.
  • the prefetched block cache 121 of that individual fragment is valuable. As it is considered, the SP is performed for that request.
  • the present invention is independent of the cache replacement policy.
  • the downstream LRU fragment cache 114 may be selected with any single exit policy, but with any better cache replacement policy, any fragment cache or block cache may be exited from the cache.
  • Nu which is the sum of the prefetching hit rate P and the cache hit rate C, is the maximum.
  • the total chance (P + C) Nu to be the maximum is Nu to be zero, the slope (slope) of the function of the P + C for the Nu. The slope is equal to the derivative. If the current P + C function for Nu can obtain the slope, Nu returns automatically to the optimal value by feeding the slope back to Nu as shown in Equation 3 below.
  • the slope is equal to the derivative of the function of P + C over Nu .
  • the derivative is a sum of the derivatives of the prefetching hit ratios P and the derivatives of the cache hit ratios C, as shown in Equation 4 below.
  • the approximate differential value can be measured as shown in FIG. 3.
  • the derivative of P is the number of prefetching hits occurring in the additional allocation portion 150 that increases upstream for any given time. Is almost the same as Also, the Is similar to the prefetching hit ratio ⁇ P occurring upstream 120 adjacent to the additional allocation portion 150. Therefore, the derivative of the prefetching hit ratio for Nu is as shown in Equation 5 below.
  • SARC Adaptive Replacement Cache
  • Margginal Utility marginal utility
  • the coefficient of marginal utilization Cannot explain the existence of.
  • SARC determines which blocks should be evicted, but the present invention only considers the retirement of prefetched blocks ignored in the SARC.
  • SARC relates to random access data and sequential data, but the present invention considers prefetching hits and cache hits in prefetching scenarios.
  • the present invention manages cache in pieces for efficient management of striping disk arrays, but SARC is designed for a single disk.
  • the slope of the total hit ratio for the upstream magnitude in the current split of upstream 101 and downstream 103 is, at some time, at the number of prefetching hits ⁇ P occurring upstream 102 below and at all below 104.
  • the observed cache hit number ⁇ C is observed and is obtained by the following Equation 7.
  • the ratio coefficient S of Equation 7 determines the adaptation speed by the feedback of Equation 3. As S increases, Nu approaches an optimal value quickly, but overshoot may occur.
  • Equation 3 The equation used in the adaptive cache subtraction technique using differential feedback is a combination of Equation 3 and Equation 7, which is a feedback equation such as Equation 8 below.
  • the coefficient ⁇ may be defined as (the number of prefetched block caches and cached block caches upstream) / (the number of cached block caches downstream).
  • Equation (8) is implemented as a program to dynamically control the size of the upstream 101 so that the maximum total hit rate can occur in the adaptive cache cancellation scheme.
  • the present invention can be used not only for the cache memory managed by the fragment cache, but also for the cache memory managed by the block cache as shown in FIG. All block caches are separated into two lists upstream 201 and downstream 203.
  • the squares shown in FIG. 4 represent block caches.
  • the newly read block cache is inserted into the most recently used (MRU) location 210 of the upstream 201.
  • Block caches upstream 201 where cache hits or prefetching hits occur are moved to Most Recently Used (MRU) location 210 upstream 201.
  • Block caches downstream of the cache hit 203 are moved to the Most Recently Used (MRU) location 212 of the downstream 203.
  • LRU least recently used
  • Upstream 202 is the set of block caches that are not used longest in the upstream, and the number of block caches upstream 202 is already set.
  • the sets of group caches that are not used for the longest throughout the upstream 201 and downstream 203 are referred to as total down 204.
  • the total number of block caches below 204 is equal to that of upstream below 202.
  • the number ⁇ P of prefetching hits occurring upstream 102 is recorded, and the number of cache hits ⁇ C occurring at all below 104 is recorded.
  • the recording time is defined as two successive time differences in which ⁇ P or ⁇ C becomes one.
  • the size of the upstream 201 is adjusted by Equation (8).
  • the coefficient ⁇ is 1 + (number of prefetched block caches upstream) / (number of block caches below total).
  • FIG. 5 is a flow chart illustrating an adaptive cache sweeping technique for caches managed with fragment caches.
  • step 302 If the read request in step 302 is a read request for a ghost fragment cache or an upstream recycled fragment cache to a past cached block cache, the corresponding fragment cache is moved to an upstream Most Recently Used (MRU) location. However, the requested block performs step 304, which is read from the disk without prefetching. If the cache hits in the downstream fragment cache in step 302, step 305 is performed to move the fragment cache to the upstream MRU. If the cache hit or prefetching hit occurred in the upstream fragment cache in step 302, step 306 is performed to insert the fragment cache into the downstream MRU location.
  • MRU Most Recently Used
  • step 310 determines whether the number of fragment caches upstream is greater than Nu . If the number of fragment caches belonging to the upstream in step 310 is greater than Nu , exit the prefetched block caches of the upstream LRU cache into the cache as in step 311, insert the fragment caches into the downstream MRU location and then again. Return to step 310. On the contrary, if the number of fragment caches belonging to the upstream is smaller than Nu in step 310, the flow proceeds to step 301.
  • step 306 if the cache hit occurs downstream in step 307 after step 305, the equation (5) is performed as in step 309, and proceeds to step 310.
  • step 306 if the hit is a prefetching hit occurring upstream, the process proceeds to step 309; otherwise, the process proceeds to step 301.
  • FIG. 6 is a flow diagram illustrating an adaptive cache sweep technique for a cache managed by a block cache.
  • step 410 when a request occurs while the host or program waits for a block read request to a disk or a RAID in step 401, it is determined whether the read request is missed as in step 402. If the requested data is not in the cache, the block cache is read from the disk into the block cache using the corresponding fragment or any prefetching technique, as in step 403, and the block cache is inserted at an up-to-date Most Recently Used (MRU) location. Thereafter, as in step 409, a check is performed to determine whether the number of upstream block caches is greater than Nu . If the number of block caches belonging to the upstream is greater than Nu in step 409, the flow proceeds to step 410, and if not, the flow returns to step 401. In step 410, the upstream LRU block cache is withdrawn from the prefetched block cache plane cache, otherwise it is inserted into the downstream MRU location.
  • MRU Most Recently Used
  • step 402 if the requested data is a cache hit occurring downstream, proceed to step 404 to move the fragment cache to an upstream MRU location, and then, as in step 406, whether the cache hit occurred downstream Perform the checking steps. If the cache hit occurred downstream, the execution of Equation 5 is performed in step 408 and the process proceeds to step 409.
  • step 402 if the requested data is a cache hit or a prefetching hit occurring upstream, the process proceeds to step 405 and inserts the fragment cache into the downstream MRU location, and then the hit is upstream as in step 407. Check whether prefetching hit occurred in. If the hit is a prefetching hit occurring upstream, go to step 408; otherwise, go to step 401.
  • the method of managing prefetching data in computer storage optimally allocates the number of prefetching block caches and the number of cached block caches to equal two altered utilization rates of prefetching hit rate and cache hit rate.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Food Science & Technology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법에 관한 것이다. 본 발명에 따른 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법은, 전체 캐시를 조각 캐시 단위로 관리하고, 조각 캐시들이 상류와 하류로 분할되며, 상기 상류는 상기 프리페칭된 블록 캐시와 상기 캐싱된 블록 캐시를 가지고, 상기 하류는 상기 캐싱된 블록 캐시만을 가지도록 제어하는 제 1과정, 상기 상류가 가질 수 있는 조각 캐시들의 수(Nu)를 프리페칭 적중률과 캐시 적중률 합의 미분값을 이용하여 갱신하는 제 2과정, 상기 상류에 포함된 조각 캐시의 수가 상기 갱신된 조각 캐시들의 수(Nu)보다 큰 경우, LRU(Least Recently Used) 정책에 따라 상류의 LRU 조각 캐시를 하류로 이동하되, 상기 조각 캐시의 프리페칭된 블록 캐시를 상기 전체 캐시에서 제거시키는 제 3과정을 포함한다.

Description

컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법
본 발명은 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법에 관한 것으로, 특히 메모리에서의 프리페칭된 데이터를 관리하는 방법에 관한 것이다.
프리페칭 기술은 1960년대를 거슬러 올라가 프로세서가 캐시(Cache) 라인 단위로 다수의 워드들을 미리 읽는 것으로 시작되었다. 그리고, 현재 프로세서에서의 프리페칭 기술이 많이 개발되었으며, 이러한 프리페칭 기술은 디스크에서 메모리로 미리 읽는 디스크 프리페칭에도 다소 적용되었다. 프로세서에서의 프리페칭과 디스크 저장장치의 다른 특징으로 디스크만을 위한 프리페칭 기술이 많이 연구되었다. 여기서, 디스크 프리페칭은 디스크의 읽기 비용을 낮추어 디스크 성능을 높이거나 연산동작과 디스크 입출력을 서로 겹치게 하여 시스템의 전체적인 성능을 높인다.
이러한 프리페칭된 캐시들을 관리하는 방법은 많이 제안되어왔다. 예를 들어, 캐싱된 데이터들의 빈도과 최근 접근시간들을 고려하는 ARC, LRFU, MQ, 2Q, LRU-2 등의 캐시 관리 기법들이 있고, 데이터의 순차성과 임의성으로 구분하는 SARC, DULO 등의 캐시 관리 기법들이 있다.
그러나, 이러한 종래 캐시 관리기법은 오로지 오프라인 프리페칭 기법들뿐이다. 이 기법들은 미래의 디스크 접근들을 모두 알고 있다고 가정하고 있기 때문에, 실제 시스템에서는 상용화되기 어려운 문제점이 있다.
또한, 종래 제안된 캐시 관리 방법들은, 잘못된 예측으로 프리페칭되고 사용되지 않는 데이터는 캐시를 오염시키기 때문에 프리페칭의 정확성만을 중요시하게 된다. 따라서, 이러한 정확성만을 중요시하게 되므로, 디스크의 읽기 서비스 시간이 늘어나게 되어 효율성이 떨어지는 문제점이 발생한다.
따라서, 본 발명의 목적은 프리페칭을 고려하여 효율성을 높일 수 있는 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법을 제안함에 있다.
또한, 본 발명의 다른 목적은 범용적으로 사용할 수 있는 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법을 제안함에 있다.
또한, 본 발명의 다른 목적은 프리페칭된 캐시들을 온라인으로 관리하는 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법을 제안함에 있다.
상술한 바를 달성하기 위한 본 발명은, 컴퓨터 저장 장치에서의 프리페칭된 데이터를 관리 하는 방법에 있어서, 전체 캐시를 조각 캐시 단위로 관리하고, 조각 캐시들이 상류와 하류로 분할되며, 상기 상류는 상기 프리페칭된 블록 캐시와 상기 캐싱된 블록 캐시를 가지고, 상기 하류는 상기 캐싱된 블록 캐시만을 가지도록 제어하는 제 1과정, 상기 상류가 가질 수 있는 조각 캐시들의 수(Nu)를 프리페칭 적중률과 캐시 적중률 합의 미분값을 이용하여 갱신하는 제 2과정, 상기 상류에 포함된 조각 캐시의 수가 상기 갱신된 조각 캐시들의 수(Nu)보다 큰 경우, LRU(Least Recently Used) 정책에 따라 상류의 LRU 조각 캐시를 하류로 이동하되, 상기 조각 캐시의 프리페칭된 블록 캐시를 상기 전체 캐시에서 제거시키는 제 3과정을 포함한다.
상기 Nu는 다음의 <수학식 1>에 의한 방법으로 되먹임시키며,
수학식 1
Figure PCTKR2009000034-appb-M000001
여기서, 상기 ΔP는 임의 시간 동안 상기 상류 아래에서 발생한 상기 프리페칭 적중(히트) 수, 상기 ΔC는 같은 시간 동안 상기 전체 아래에서 발생한 상기 캐시 적중 수, 상기 α는 (상류 아래의 프리페칭된 블록 캐시 및 캐싱된 블록 캐시의 수) / (하류 아래의 캐싱된 블록 캐시의 수), 상기 S는 상수임을 특징으로 한다.
상기 상류 및 상기 하류의 조각 캐시들은 각각 LRU(Least Recently Used) 정책으로 관리됨을 특징으로 한다.
상기 제 1과정은, 상기 상류의 임의의 조각 캐시에 포함된 프리페칭된 블록 캐시 또는 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 조각 캐시를 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함한다.
상기 제 1과정은, 상기 하류의 조각 캐시에 포함된 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 조각 캐시를 상기 하류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하고, 상기 읽기 요구가 캐시 미스를 발생시키면 상기 읽기 요구된 데이터는 조각 프리페칭 없이 디스크에서 읽혀진다.
상기 제 1과정은, 유령 조각 캐시 또는 상기 상류의 재생된 조각 캐시의 상기 과거의 캐싱된 블록 캐시로의 읽기 요구가 캐시 미스, 또는 상류의 조각 캐시로의 캐시 미스를 발생시키면, 해당 조각 캐시는 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하고, 상기 읽기 요구된 블록은 조각 프리페칭 (Strip Prefetching: SP) 없이 디스크로부터 읽혀진다.
상기 제 1과정은, 유령 조각 캐시 또는 상기 상류의 재생된 조각 캐시의 과거의 빈 블록 캐시에 해당하는 읽기 요구가 발생되면, 해당되는 조각 캐시가 조각 프리페칭 (Strip Prefetching: SP) 또는 소정의 프리페칭 기법으로 디스크로부터 읽혀지고, 상기 상류의 MRU(Most recently used) 위치에 삽입되는 과정을 더 포함한다.
상기 제 1과정은, 상기 상류 또는 상기 하류의 조각 캐시, 또는 유령 조각 캐시에 속하지 않은 블록으로의 읽기 요구가 발생하면, 해당 블록을 위한 조각 캐시를 할당하고, 해당 조각 캐시를 상류의 MRU(Most recently used) 위치에 삽입하는 과정을 더 포함하며, 상기 조각 캐시는 조각 프리페칭(Strip Prefetching: SP) 또는 소정의 프리페칭 기법으로 읽혀진다.
상술한 바를 달성하기 위한 본 발명은, 컴퓨터 저장 장치에서의 프리페칭된 데이터를 관리 하는 방법에 있어서, 전체 캐시를 상기 블록 캐시 단위로 관리되고, 블록 캐시들이 상류와 하류로 분할되며, 상기 상류는 상기 프리페칭된 블록 캐시와 상기 캐싱된 블록 캐시를 가지고, 상기 하류는 상기 캐싱된 블록 캐시만을 가지도록 제어하는 제 1과정, 상기 상류가 가질 수 있는 상기 블록 캐시들의 수(Nu)를 프리페칭 적중률과 캐시 적중률 합의 미분값을 이용하여 갱신하는 제 2과정, 상기 상류에 포함된 블록 캐시의 수가 상기 갱신된 블록 캐시들의 수(Nu)보다 큰 경우, LRU(Least Recently Used) 정책에 따라 상류의 LRU 블록 캐시를 하류로 이동하되, 상기 블록 캐시의 프리페칭된 블록 캐시를 캐시에서 제거시키는 제 3과정을 포함한다.
상기 블록 캐시들의 수(Nu)는 다음의 <수학식 2>에 의한 방법으로 되먹임시키며,
수학식 2
Figure PCTKR2009000034-appb-M000002
여기서, 상기 ΔP는 어떤 시간 동안 상기 상류 아래에서 발생한 상기 프리페칭 적중의 수, ΔC는 같은 시간 동안 상기 전체 아래에서 발생한 상기 캐시 적중의 수, α는 1 + (상류 아래의 프리페칭된 블록 캐시들의 수)/(전체 아래의 블록 캐시들의 수)이며, S 는 상수임을 특징으로 한다.
상기 상류 및 상기 하류의 블록 캐시들은 각각 LRU(Least Recently Used) 정책으로 관리됨을 특징으로 한다.
상기 제 1과정은, 상기 상류의 임의의 블랙 캐시에 포함된 프리페칭된 블록 캐시 또는 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 블록 캐시를 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함한다.
상기 제 1과정은, 상기 하류의 블랙 캐시에 포함된 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 블록 캐시를 하류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함한다.
상기 읽기 요구가 캐시 미스를 발생시키면, 해당되는 블록을 위한 블록 캐시를 새로 할당하고, 상류의 MRU(Most recently used) 위치에 삽입하는 과정을 더 포함한다.
본 발명의 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법에 따르면, 프리페칭 적중률과 캐시 적중률의 두 변경(邊境) 사용률들을 동일하도록 프리페칭 블록 캐시들의 수와 캐싱된 블록 캐시들의 수를 최적으로 할당하고, 적응적 방법으로 적당한 시간에 사용되지 않는 프리페칭된 블록들을 메모리에서 퇴출시킴으로써, 종래 기법보다 높은 프리페칭 및 캐시 적중률로써 데이터 저장장치의 성능을 향상시키는 효과가 있다.
그리고, 본 발명에 따르면, 낮은 디스크 읽기 비용으로도 고성능의 이득을 얻을 수 있어, 비용을 절감할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 어떠한 가정 없이 개발된 범용적 캐시 관리 방법으로, 별도의 하드웨어 변경없이 기존의 소형에서 대형 컴퓨터 또는 저장장치까지 간단히 적용할 수 있는 효과가 있다.
이상과 같은 본 발명에 대한 해결하고자 하는 과제, 과제 해결 수단, 효과 외의 구체적인 사항들은 다음에 기재할 실시예 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 1은 본 발명의 바람직한 실시예에 따라 4개의 디스크로 구성된 디스크 어레이에서 스트립 및 스트라이프의 구조의 일례가 도시된 도면
도 2는 본 발명의 바람직한 실시예에 따라 조각 캐시로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 설명하는 도면
도 3은 본 발명의 조각 캐시로 관리되는 캐시에서의 상류에서의 조각 캐시의 수를 계산하는 과정을 나타낸 도면
도 4는 본 발명의 바람직한 실시예에 따라 블록 캐시단위로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 나타내는 도면
도 5는 본 발명의 바람직한 실시예에 따라 조각 캐시로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 설명하는 흐름도
도 6은 본 발명의 바람직한 실시예에 따라 블록 캐시로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 설명하는 흐름도
<도면의 주요 부분에 관한 부호의 설명>
101: 상류
102: 상류 아래
103: 하류
104: 전체 아래
120: 호스트가 요구했었던 블록 캐시(캐싱된 블록 캐시)
121: 프리페칭되었지만 호스트가 요구 안한 블록 캐시(프리페칭된 블록 캐시)
이하 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. 다만, 첨부된 도면은 본 발명의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
우선, 본 발명은 정확성이 조금 떨어지는 프리페칭 방법으로도 고성능의 이득을 얻을 수 있는 프리페칭 데이터 관리 방법을 제안한다. 여기서, 정확성 문제는 프리페칭 적중률과 캐시 적중률의 합이 어떤 프리페칭의 프리페칭 적중률과 프리페칭 없는 캐시 적중률 중 어느 것보다도 높으면, 낮은 프리페칭 정확성의 문제는 해결될 수 있다.
이에 따라 본 발명에서는 프리페칭 적중률과 캐시 적중률의 합이 최대화하도록 함으로써, 고성능의 이득을 얻을 수 있게 된다. 이를 위해 본 발명은 프리페칭 적중률의 변경 사용률과 캐시 적중률의 변경 사용률을 매 순간순간 같도록 만들면서, 적절한 순간에 프리페칭되었지만 사용되지 않는 캐시들을 메모리에서 퇴출시키는 캐시 관리 방법, 즉 자동적이고 적응적인 캐시 관리 방법을 사용한다.
상세하게 살펴보면, 본 발명은 디스크와 같은 데이터 저장장치와 디스크를 위한 캐시 메모리를 포함하는 컴퓨터에서 프리페칭된 블록 캐시(121)와 캐싱된 블록 캐시(120)의 관리에 관한 방법이다.
우선, 본 발명의 실시예의 설명에 앞서 용어를 설명하면 다음과 같다.
프리페칭이란, 호스트나 프로그램이 디스크의 어떤 블록을 요구하지 않았으나 운영체제나 디스크 구동기가 어떤 블록을 캐시 메모리로 미리 읽어 놓는 동작을 말한다. 프리페칭된 블록 캐시(121)란, 프리페칭 되었으나 호스트나 프로그램이 요청하지 않은 디스크의 블록을 보유하고 있는 캐시이다. 캐싱된 블록 캐시(120)는 호스트 또는 프로그램이 이미 요구하였던 블록을 보유하고 있는 캐시이다. 빈 블록 캐시(122)는 데이터를 보유하고 있지 않은 블록 캐시이다.
프리페칭 적중이란, 프리페칭된 캐시 블록에 호스트나 프로그램이 요구하는 사건을 의미한다. 캐시 적중이란, 요구된 캐시 블록에 호스트나 프로그램이 요구하는 사건을 의미한다.
본 발명은 도 2에 나타낸 캐시 메모리를 조각 캐시로 관리하는 방법과 도 3에 나타낸 블록 캐시로 관리하는 방법으로 나뉜다. 이 두 가지 방법의 기본 운영원리는 같으나 구체적인 과정은 상이하다. 먼저, 도 2에 나타난 조각 캐시로 관리하는 적응적 캐시 솎음 기법(Cache culling method)을 설명하기로 한다. 그리고, 도 2에 나타난 캐시 솎음 기법은 조각 캐시 (Strip Cache) 단위로 프리페칭하는 조각 프리페칭(Strip Prefetching: 이하 'SP'라고 함) 기법과 잘 어울리는 방법이다. 여기서, 솎음 기법은 조각 프리페칭 기법에 한정되지 않지만, SP를 이용한 일례로써 본 발명을 설명하기로 한다.
조각이란 디스크에 연속한 블록들의 집합이다.
도 1은 다섯 개의 디스크들(1, 2, 3, 4)로 구성된 어떤 레이드(Redundant Array of Independent Disks: RAID)의 일 실시예를 보여주고 있다. 레이드에서의 스트라이프(Stripe)(30)는 디스크들(1, 2, 3, 4)의 조각들(Strip)(20)로 구성되어 있고, 조각(20)은 디스크 내에서 연속한 블록(10)들로 구성되어 있다. 단, 조각을 레이드에 한정하지 않고, 디스크에 연속한 블록들의 집합으로만 정의할 수도 있다.
조각 캐시(110)란, 상기 조각 단위로 관리되는 캐시이다. 조각 캐시(110)에는 캐싱된 블록 캐시(120)와 프리페칭된 블록 캐시(121)와 빈 블록 캐시(122)를 포함할 수 있다. 빈 블록 캐시(122)를 포함하지 않는 조각 캐시를 가득 채워진 조각 캐시라고 하고, 빈 블록 캐시(122)를 포함하는 조각 캐시를 부분적으로 채워진 조각 캐시라고 한다.
SP로 프리페칭된 메모리를 효율적으로 관리하기 위해서, 본 발명인 적응적 캐시 솎음 기법은 캐시 적중률(Cache Hit Rate)과 프리페칭 적중률(Prefetching Hit Rate)의 합이 SP와 SP를 하지 않는 방식의 그 적중률들 보다 같거나 큼을 보장한다.
적응적 캐시 솎음 기법은, 프리페칭되고 요구되지 않은 블록 캐시들을 적정한 때에 적응적 방법으로 퇴출시킨다. 본 발명에서는 이러한 절차를 솎음 또는 솎아내기라고 부른다. 만약, 프리페칭되었으나 호스트가 요구하지 않은 블록 캐시들을 너무 일찍 솎아내면, 캐시 적중률은 증가하고 프리페칭 적중률은 감소한다. 만약, 프리페칭된 블록 캐시가 너무 늦게 솎아지면, 캐시 적중률이 감소하고 프리페칭 적중률은 증가한다.
도 1의 일 실시예에서는 캐시가 조각 캐시 단위로 관리되고, 각 조각 캐시는 네 개의 블록 캐시로 구성된다. 각 블록 캐시는 프리페칭된 블록 캐시 또는 캐싱된 블록 캐시 또는 빈 블록 캐시가 될 수 있다. 본 발명에서는 어떤 블록 캐시가 디스크 데이터를 위한 메모리를 갖고 있는지, 또는 프리페칭되었으나 참조되지 않았는지, 또는 캐싱된 블록 캐시인지 알 수 있는 추가적인 정보를 관리한다.
적응적 방법으로 적절한 순간에 프리페칭된 데이터를 요구된 데이터보다 먼저 퇴출 하기 위해서, 도 1에 도시된 조각 캐시들은 상류(upstream)(110)와 하류(downstream)(103)로 분할되어 있다. 상류(upstream)(110)와 하류(downstream)(103)는 LRU(least recently used) 정책으로 관리된다. 상류(101)는 프리페칭된 블록 캐시와 캐싱된 블록 캐시를 보유할 수 있지만, 하류(103)는 프리페칭된 블록 캐시를 포함하지 않는다. 새로 할당된 조각 캐시는 상류(101)의 MRU(Most recently used) 위치에 삽입된다. 만약, 상류(101)의 조각 캐시들의 수가 상류(101)가 가질 수 있는 조각 캐시들의 최대 개수 Nu를 초과하면, 상류(101)의 LRU(Least Recently Used) 조각 캐시(112)를 하류(103)의 MRU(Most Recently Used) 위치(113)로 옮긴다. 이때에 그 조각캐시의 모든 프리페칭된 블록 캐시들을 퇴출시킨다. 이 과정을 캐시 솎음이라고 한다.
본 발명의 적응적 캐시 솎음 기법은 변수 Nu (상류(101)가 가질 수 있는 최대 조각 캐시의 개수)를 적응적 방법으로 변경한다. 만약, Nu가 감소하면, 줄어든 프리페칭된 블록 캐시들 때문에 프리페칭 적중률은 감소하나, 캐시 적중률이 증가한다. 시스템의 성능은 프리페칭 적중률과 캐시 적중률의 합인 총 적중률에 의존한다. 본 발명은 총 적중률이 최대가 되도록 하는 제어기법을 포함한다.
우선, 적응적 솎음 기법의 캐시 관리과 구조에 대해서 설명하기로 한다.
조각 캐시의 모든 블록 캐시들이 캐시에서 퇴출될 때, 만약 그것의 형제(sibling) 조각 캐시들 중의 하나가 캐시에 살아 있다면, 그것은 유령 조각 캐시(105)가 된다. 유령 조각 캐시(105)는 과거에 호스트가 요구한 상태들 외에는 메모리를 가지지 않는다. 요구 상태는 그 조각 캐시의 블록들이 호스트나 프로그램에 의해서 요구되었었는지에 대한 정보를 알려준다. 형제 조각 캐시(115)들은 같은 레이드의 같은 스트라이프(30)에 속한 조각들(20)에 대응하는 조각 캐시들이다. 유령 조각 캐시(115)에 해당되는 어떤 디스크 입출력 요구가 발생하면, 그 유령 조각 캐시(115)는 과거의 요구상태를 유지한 조각 캐시(110)로 살아난다. 이렇게 과거에 유령이었던 조각 캐시를 재생된 조각 캐시라고 칭한다. 그러나, 재생된 조각 캐시는 과거의 요구 상태를 제외하면 다른 조각 캐시와 차이가 없다.
본 발명의 기법이 레이드에 사용된다면 유령 조각 캐시는 존재하고, 그렇지 않으면 유령 조각 캐시는 없다. 캐시에 살아 있는 형제 조각 캐시를 가지는 퇴출된 조각 캐시만이 유령 캐시가 될 수 있는 이유는, 스트라이프의 어떤 블록들을 RAID-5나 RAID-6을 구성하는 디스크들로 쓰기를 해야 할 때에, 형제 조각 캐시의 데이터들이 패러티를 갱신하는 데에 유용하기 때문이다. 또한, 유형 캐시는 과거의 요구 기록을 이용하여 성능을 향상시키기 위한 것이므로, 유형 캐시를 처리하지 않아도 적응적 솎음 기법은 동작한다.
호스트 또는 프로그램이 데이터 요구가 디스크 어레이 또는 디스크로 전달될 때마다, 상류(101)와 하류(102), 즉 두 리스트는 다음과 같은 법칙으로 관리된다.
상류(101)의 어떤 조각 캐시(110)에 포함된 프리페칭된 블록 캐시(121) 또는 캐싱된 블록 캐시(120)로의 읽기 요구가 발생하면, 그 요구된 조각 캐시는 상류의 MRU(Most recently used) 위치(111)로 옮겨간다.
하류(103)의 조각 캐시(110)에 포함된 블록(10)으로의 읽기 요구가 발생하면, 그 조각 캐시를 상류의 MRU위치(113)로 옮긴다. 만약, 그 요구가 캐시 미스를 발생시키면, 그 데이터는 SP없이 읽혀진다. 여기서, 캐시 미스란 요구한 블록이 캐시에 없어서 디스크로부터 읽어야 하는 상황을 의미한다.
유령 조각 캐시(115) 또는 상류(101)의 재생된 조각 캐시의 과거의 캐싱된 블록 캐시로의 캐시 미스, 또는 상류(101)의 조각 캐시로의 캐시 미스에 대하여, 그 요구된 조각 캐시는 상류의 MRU 위치(111)로 이동한다. 단, 그 요구된 블록은 SP 없이 디스크로부터 읽혀진다. 단, 과거의 캐싱된 블록 캐시란 그 해당 되는 블록 캐시가 유령이 되기 전에 캐싱된 블록 캐시였던 블록 캐시를 의미한다.
유령 조각 캐시(115) 또는 상류의 재생된 조각 캐시의 과거의 빈 블록 캐시에 해당하는 요구가 발생하면, 그 해당되는 조각은 SP 또는 어떤 프리페칭 기법으로 디스크로부터 읽혀지고, 상류의 MRU 위치(111)에 삽입된다. 단, 과거의 빈 블록 캐시란 그 해당되는 블록 캐시가 유령이 되기 전에 빈 블록 캐시였던 블록 캐시를 의미한다.
상류(101) 또는 하류(103)의 조각 캐시(110), 또는 유령 조각 캐시(115)에 속하지 않은 블록으로의 읽기 요구가 발생하면, 해당하는 블록을 위한 새로운 조각 캐시(110)를 할당하고, 그 조각 캐시를 상류의 MRU 위치(111)에 삽입한다. 단, 그 조각 캐시(110)는 SP 또는 어떤 프리페칭 기법으로 읽혀진다.
하류(103)에서 발생한 캐시 적중은 적중된 조각 캐시(110)를 상류(103)로 옮기지 않는다. 상류(103)의 부분적으로 채워진 조각 캐시가 상류로 옮겨질 수 있다면 상류가 차지한 메모리가 줄어든다. 왜냐하면, 상류(101)의 조각 캐시의 수를 Nu와 같게 하기 위해서 부분적으로 채워진 조각 캐시는, 어떤 가득 채워진 조각 캐시가 상류에서 퇴출시킬 수 있기 때문이다. 이 과정은 상류(101)와 하류(103)의 최적 분할을 깨트리게 한다.
형제 조각 캐시들은 RAID-5 또는 RAID-6 등이 디스테이지(레이드가 캐시에 있는 더티 데이터를 디스크로 쓰는 행위) 할 때에 더욱 유용하다. 그래서 유령 조각 캐시(115)의 캐싱된 블록 캐시(120)에 대한 호스트의 읽기 요구는 그 조각 캐시(110)를 프리페칭 없이 상류로 그 유령 조각 캐시(115)를 옮기고 그 유령 조각 캐시는 재생된다. 이 과정은 상류(101)의 메모리를 줄여서 더 많은 형제 조각 캐시들이 살 수 있게 한다. 왜냐하면, SP 또는 어떤 프리페칭이 없으면 그 유령 조각 캐시가 부분적으로 채워진 조각 캐시로 재생되기 때문이다. 만약, 재생된 조각 캐시가 오랫동안 사용되지 않으면, 그 조각 캐시는 상류에서 퇴출될 것이고, 따라서 상류는 자동으로 빼앗긴 메모리를 돌려받게 된다.
유령 조각 캐시(115)의 과거의 요구 상태는 유령 조각 캐시(115)가 재생되어도 유지된다. 이미 재생된 조각 캐시(110)나 유령 조각 캐시(115)의 과거의 캐싱된 블록 캐시 외의 블록에 해당하는 어떤 요구가 발생될 때에, 그 개별의 조각의 프리페칭된 블록 캐시(121)가 가치 있다고 여겨지므로, 그 요구를 위해서 SP가 수행된다.
본 발명은 캐시 치환 정책과 무관하다. 하류의 LRU 조각 캐시(114)는 어떤 하나의 퇴출 정책으로 선택될 수 있지만, 어떤 더 좋은 캐시 치환 정책으로 어떤 조각 캐시 또는 블록 캐시를 캐시에서 퇴출할 수 있다.
상류의 조각 캐시의 최대 수의 최적의 값 Nu를 찾는 것은 매우 중요한 부분이다. 프리페칭 적중률 P와 캐시 적중률 C의 합인 총 적중률(P+C)이 최대가 되게 하는 Nu가 최적이다. 총 적중률(P+C)이 최대가 되게 하는 NuNu에 대한 P+C의 함수의 기울기(slope)가 영이 되게 하는 Nu이다. 기울기는 미분값과 동일한다. 현재 Nu에 대한 P+C의 함수이 기울기를 구할 수 있다면, 다음의 <수학식 3>과 같이 기울기를 Nu에 되먹임하면 Nu는 자동으로 최적의 값으로 다가간다.
수학식 3
Figure PCTKR2009000034-appb-M000003
만약, Nu가 최적의 Nu보다 낮다면 슬로프(slope)가 양수가 되어서, 위의 되먹임은 Nu를 증가시키고, Nu가 최적의 Nu보다 높다면 슬로프(slope)가 음수가 되어서, 위의 되먹임은 Nu를 감소시킨다. 그래서, Nu는 자동으로 최적의 값으로 다가간다.
기울기는 Nu에 대한 P+C의 함수의 미분과 동일하다. 그리고, 그 미분은 각 프리페칭 적중률 P의 미분과 캐시 적중률 C의 미분의 합으로 다음의 <수학식 4>와 같이 나타낼 수 있다.
수학식 4
Figure PCTKR2009000034-appb-M000004
근사 미분 값은 도 3에서 보인 것과 같이 측정이 가능하다. 미분의 정의에 의하여, P의 미분은 어떤 주어진 시간동안 상류를 증가시키는 추가 할당 부분(150)에서 발생한 프리페칭 히트의 수
Figure PCTKR2009000034-appb-I000001
와 거의 같다. 또한, 상기
Figure PCTKR2009000034-appb-I000002
는 추가 할당 부분(150)과 인접한 상류 아래(120)에서 발생한 프리페칭 히트률 ΔP와 유사하다. 그러므로, Nu에 대한 프리페칭 적중률의 미분은 다음의 <수학식 5>와 같다.
수학식 5
Figure PCTKR2009000034-appb-M000005
만약, 상류를 ΔNu만큼 증가 시키면 하류는 αΔNu만큼 감소한다. 계수 α는 상류의 증가된 영역(150)과 하류의 줄어든 부분(151)의 빈 블록 캐시(122)들의 점유 비율에 의해서 결정된다. Nu에 대한 캐시 적중률 C의 미분은 하류의 줄어든 부분(152)에서의 캐시 적중률
Figure PCTKR2009000034-appb-I000003
과 거의 유사하다. 만약, 캐시 적중률을 관측하려는 부분을 αΔNu개의 조각 캐시(110)가 아니라 상류 아래(102)와 같이 고정된 부분(104)으로 설정한다면,
Figure PCTKR2009000034-appb-I000004
는 전체 아래(104)에서 발생한 캐시 적중률 ΔC와 거의 같다. 그러므로, C의 미분은 다음의 <수학식 6>과 같이 표현될 수 있다.
수학식 6
Figure PCTKR2009000034-appb-M000006
이 근사화된 미분 값은 기존 기술인 적응적 치환 캐시에서의 순차 프리페칭(Sequential prefetching in Adaptive Replacement Cache: SARC)과 변방 사용률(Marginal Utility)과 유사한 점이 있다. 하지만, 변방 사용률로는 계수
Figure PCTKR2009000034-appb-I000005
의 존재를 설명할 수 없다. 더구나, 본 발명과 SARC 사이에는 몇 가지 다른 점이 있다. 첫 번째로, SARC는 어떤 블록이 퇴출되어야 하는지 결정하지만, 본 발명은 SARC에서 무시된 프리페칭된 블록의 퇴출만 고려한다. 두 번째로, SARC는 임의 접근 데이터와 순차 데이터와 관련있으나, 본 발명은 프리페칭 시나리오에서 프리페칭 적중과 캐시 적중을 고려한다. 세 번째로, 본 발명은 스트라이핑 디스크 어레이의 효율적인 관리를 위해 조각 단위로 캐시를 관리하지만, SARC는 단일 디스크를 위해 설계되어 있다.
현재 상류(101)와 하류(103)의 분할에서의 상류 크기에 대한 총 적중률의 슬로프(slope)는, 어떤 시간동안, 상류 아래(102)에서 발생한 프리페칭 적중 수 ΔP와 전체 아래(104)에서 발생한 캐시 적중 수 ΔC를 관측하여 다음의 <수학식 7>로 구하여진다.
수학식 7
Figure PCTKR2009000034-appb-M000007
상류 아래(102)는 상류의 아래 부분이고, 상류 아래에 속한 조각 캐시의 수는 고정되어 있다. 비슷하게 전체 아래(104)는 상류와 하류를 결합하는 전체 리스트의 아래 부분이고, 전체 아래(104)에 속한 조각 캐시의 수는 상류 아래(102)와 같다. 초기 상태에서는 하류가 없거나 매우 작을 수 있다. 그래서, 전체 아래(104)와 상류 아래(102)는 서로 겹쳐질 수 있다.
상기 <수학식 7>의 비율 계수 S는 상기 <수학식 3>의 되먹임에 의한 적응속도를 결정한다. 상기 S가 클수록 Nu는 최적으로 값으로 빨리 접근하지만 오버 슈트(Overshoot)가 발생할 수 있다.
미분 되먹임을 이용한 적응적 캐시 솎음 기법에서 사용하는 수식은 상기 <수학식 3>과 상기 <수학식 7>를 결합한 것으로, 다음의 <수학식 8>과 같은 되먹임 수식이다.
수학식 8
Figure PCTKR2009000034-appb-M000008
단, 계수 α는 (상류 아래의 프리페칭된 블록 캐시 및 캐싱된 블록 캐시의 수) / (하류 아래의 캐싱된 블록 캐시의 수)로 정의 될 수 있다.
상기 <수학식 8>은 프로그램으로 구현되어 적응적 캐시 솎음 기법에서 최대의 총 적중률이 발생할 수 있도록, 상류(101)의 크기를 동적으로 제어한다.
본 발명은 조각 캐시로 관리되는 캐시 메모리뿐만 아니라, 도 4와 같이 블록 캐시로 관리되는 캐시 메모리에도 사용될 수 있다. 모든 블록 캐시들은 두 개의 리스트들 상류(201)와 하류(203)로 분리된다. 도 4에서 나타난 네모들은 블록캐시들을 나타낸다. 새롭게 디스크에서 읽은 블록 캐시는 상류(201)의 MRU(Most recently used) 위치(210)로 삽입된다. 캐시 적중 또는 프리페칭 적중이 발생한 상류(201)의 블록 캐시들은 상류(201)의 MRU(Most recently used) 위치(210)로 옮겨진다. 캐시 적중이 발생한 하류(203)의 블록 캐시들은 하류(203)의 MRU(Most recently used) 위치(212)로 옮겨진다. 캐시 미스가 발생하면 해당 블록을 위한 블록 캐시를 할당하고 그것을 상류의 MRU(Most recently used) 위치(210)에 삽입한다. 상류(201)에 속한 블록 캐시의 수가 상류(201)가 보유할 수 있는 블록 캐시의 최대 수 (Nu)를 초과하면, 상류에서 가장 오랫동안 사용하지 않은 LRU(Least Recently Used) 블록 캐시(211)를 상류에서 제거한다. 만약, 그 LRU(Least Recently Used) 블록 캐시(211)가 프리페칭된 블록 캐시(121)면 그것을 캐시에서 퇴출시키고, 캐싱된 블록 캐시(120)이면 하류의 MRU 위치(212)에 삽입한다.
상류 아래(202)는 상류에서 가장 오랫동안 사용되지 블록 캐시들의 집합이고, 상류 아래(202)의 블록 캐시의 수는 이미 설정된 값이다. 상류(201)와 하류(203)를 통틀어서 가장 오랫동안 사용되지 않는 그룹 캐시들의 집합들을 전체 아래(204)라고 한다. 전체 아래(204)의 블록 캐시의 수는 상류 아래(202)의 것과 같다.
소정 기간 동안, 상류 아래(102)에서 발생한 프리페칭 적중의 수 ΔP를 기록하고, 전체 아래(104)에서 발생한 캐시 적중 개수 ΔC를 기록한다. 그리고, 추가적으로, 그 기록 시간을 ΔP 또는 ΔC가 1이 되는 두 연속하는 시간 차이로 한다. 그러면, 상기 <수학식 8>로써 상류(201)의 크기를 조절한다. 단, 계수 α는 1 + (상류 아래의 프리페칭된 블록 캐시의 수)/(전체 아래의 블록 캐시의 수)이다.
도 5는 조각 캐시로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 설명하는 흐름도이다.
도 5를 참조하면, 호스트나 프로그램이 301 단계에서 디스크 또는 레이드로 블록 읽기 요구를 기다리는 중 읽기 요구가 발생하면, 302 단계에서 상기 읽기 요구가 어느 블록에 해당하는지를 판단한다. 만약, 읽기 요구가 유령 조각 캐시 또는 상류의 재생된 조각 캐시의 과거의 빈 블록 캐시로의 캐시 미스 또는 상류의 조각 캐시에서 발생된 캐시 미스이면, 그 해당 조각이 조각 프리페칭 또는 어떤 프리페칭으로 디스크에서 조각 캐시로 읽혀지고, 그 조각 캐시는 상류의 MRU(Most recently used)위치로 삽입되는 303 단계로 진행한다.
상기 302 단계에서 상기 읽기 요구가 유령 조각 캐시 또는 상류의 재생된 조각 캐시의 과거의 캐싱된 블록 캐시로의 읽기 요구이면, 그 해당 조각 캐시는 상류의 MRU(Most recently used) 위치로 옮겨진다. 하지만, 그 요구된 블록은 프리페칭없이 디스크에서 읽혀지는 304 단계를 수행한다. 상기 302 단계에서 하류의 조각 캐시에서 캐시 적중이면, 그 조각 캐시를 상류의 MRU로 옮기는 305 단계를 수행한다. 상기 302 단계에서 상류의 조각 캐시에 발생한 캐시 적중 또는 프리페칭 적중이면, 그 조각 캐시를 하류의 MRU위치에 삽입하는 306 단계를 수행한다.
상기 303 단계 또는 304 단계를 수행한 후에, 310 단계로 진행하여 상류에 속한 조각 캐시의 수가 Nu보다 큰지 확인하게 된다. 상기 310 단계에서 상기 상류에 속한 조각 캐시의 수가 Nu보다 크면, 311 단계에서와 같이 상류의 LRU 캐시의 프리페칭된 블록 캐시들을 캐시에 퇴출하고, 그 조각 캐시를 하류의 MRU위치에 삽입한 후 다시 310 단계로 돌아간다. 반면, 상기 310 단계에서 상기 상류에 속한 조각 캐시의 수가 Nu보다 작으면, 상기 301 단계로 진행한다.
한편, 상기 305 단계 이후에 307 단계에서 그 캐시 적중이 하류 아래에서 발생한 것이면, 309 단계에서와 같이 상기 <수학식 5>를 수행하고, 310 단계로 진행한다. 상기 306 단계 이후에 그 적중이 상류 아래에서 발생한 프리페칭 적중이면 309 단계로 진행하고, 그렇지 않으면 301 단계로 진행하게 된다.
도 6은 블록 캐시로 관리되는 캐시를 위한 적응적 캐시 솎아내기 기법을 설명하는 흐름도이다.
도 6을 살펴보면, 호스트나 프로그램이 401 단계에서 디스크 또는 레이드로 블록 읽기 요구를 기다리는 중 어떤 요구가 발생하면, 402 단계에서와 같이 상기 읽기 요구가 어디의 적중인지 미스인지를 판단하게 된다. 상기 요구된 데이터가 캐시에 없는 것이면, 403 단계에서와 같이 그 해당 조각 또는 어떤 프리페칭 기법으로 디스크에서 블록 캐시로 읽고 그 블록 캐시는 상류의 MRU(Most recently used) 위치에 삽입된다. 그런 후 409 단계에서와 같이 상류에 속한 블록 캐시의 수가 Nu보다 큰지 검사하는 단계를 수행한다. 상기 409 단계에서 상류에 속한 블록 캐시의 수가 Nu보다 크면, 410 단계로 진행하고, 아닌 경우 401 단계로 돌아가게 된다. 이후 410 단계에서는 상류의 LRU 블록 캐시가 프리페칭된 블록 캐시면 캐시에서 퇴출시키고, 그렇지 않으면 그것을 하류의 MRU 위치에 삽입한다.
다음으로, 상기 402 단계에서, 요구된 데이터가 하류에서 발생한 캐시 적중이면, 404 단계로 진행하여 그 조각 캐시를 상류의 MRU 위치로 옮긴 후, 406 단계에서와 같이 상기 캐시 적중이 하류 아래에서 발생한 것인지 검사하는 단계를 수행한다. 상기 캐시 적중이 하류 아래에서 발생한 것이라면, 408 단계에서 상기 <수학식 5>를 실행하는 단계를 수행하고 409 단계로 진행한다.
한편, 상기 402 단계에서, 요구된 데이터가 상류에서 발생한 캐시 적중 또는 프리페칭 적중이면, 405 단계로 진행하여 그 조각 캐시를 하류의 MRU 위치에 삽입한 후, 407단계에서와 같이 그 적중이 상류 아래에서 발생한 프리페칭 적중인지 검사하는 단계를 수행한다. 상기 적중이 상류 아래에서 발생한 프리페칭 적중이면 408 단계로 진행하고, 그렇지 않으면 상기 401 단계로 진행한다.
한편 본 발명의 상세한 설명에서는 본 발명에 의한 적응적 캐시 솎음 기법에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.
본 발명에 관한 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법은, 프리페칭 적중률과 캐시 적중률의 두 변경(邊境) 사용률들을 동일하도록 프리페칭 블록 캐시들의 수와 캐싱된 블록 캐시들의 수를 최적으로 할당하고, 적응적 방법으로 적당한 시간에 사용되지 않는 프리페칭된 블록들을 메모리에서 퇴출시킴으로써, 종래 기법보다 높은 프리페칭 및 캐시 적중률로써 데이터 저장장치의 성능을 향상시킬 수 있고, 낮은 디스크 읽기 비용으로도 고성능의 이득을 얻을 수 있어, 비용을 절감할 수 있으며, 어떠한 가정 없이 개발된 범용적 캐시 관리 방법으로, 별도의 하드웨어 변경없이 기존의 소형에서 대형 컴퓨터 또는 저장장치까지 간단히 적용할 수 있다.

Claims (14)

  1. 컴퓨터 저장 장치에서의 프리페칭된 데이터를 관리 하는 방법에 있어서,
    전체 캐시를 조각 캐시 단위로 관리하고, 조각 캐시들이 상류와 하류로 분할되며, 상기 상류는 상기 프리페칭된 블록 캐시와 상기 캐싱된 블록 캐시를 가지고, 상기 하류는 상기 캐싱된 블록 캐시만을 가지도록 제어하는 제 1과정;
    상기 상류가 가질 수 있는 조각 캐시들의 수(Nu)를 프리페칭 적중률과 캐시 적중률의 합의 미분값을 이용하여 갱신하는 제 2과정; 및
    상기 상류에 포함된 조각 캐시의 수가 상기 갱신된 조각 캐시들의 수 (Nu)보다 큰 경우, LRU(Least Recently Used) 정책에 따라 상류의 LRU 조각 캐시를 하류로 이동하되, 상기 조각 캐시의 프리페칭된 블록 캐시를 상기 전체 캐시에서 제거시키는 제 3과정;
    을 포함하는,
    컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  2. 제 1항에 있어서,
    상기 조각 캐시들의 수(Nu)는 다음의 <수학식 1>에 의한 방법으로 되먹임시키며,
    <수학식 1>
    Figure PCTKR2009000034-appb-I000006
    여기서, 상기 ΔP는 임의 시간 동안 상기 상류 아래에서 발생한 상기 프리페칭 적중(히트) 수, 상기 ΔC는 같은 시간 동안 상기 전체 아래에서 발생한 상기 캐시 적중 수, 상기 α는 (상류 아래의 프리페칭된 블록 캐시 및 캐싱된 블록 캐시의 수) / (하류 아래의 캐싱된 블록 캐시의 수), 상기 S는 상수인, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  3. 제 1항에 있어서,
    상기 상류 및 상기 하류의 조각 캐시들은 각각 LRU(Least Recently Used) 정책으로 관리되는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  4. 제 1항에 있어서,
    상기 제 1과정은,
    상기 상류의 임의의 조각 캐시에 포함된 프리페칭된 블록 캐시 또는 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 조각 캐시를 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  5. 제 1항에 있어서,
    상기 제 1과정은,
    상기 하류의 조각 캐시에 포함된 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 조각 캐시를 상기 하류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하고,
    상기 읽기 요구가 캐시 미스를 발생시키면 상기 읽기 요구된 데이터는 조각 프리페칭 없이 디스크에서 읽혀지는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  6. 제 1항에 있어서,
    상기 제 1과정은,
    유령 조각 캐시 또는 상기 상류의 재생된 조각 캐시의 상기 과거의 캐싱된 블록 캐시로의 읽기 요구가 캐시 미스, 또는 상류의 조각 캐시로의 캐시 미스를 발생시키면, 해당 조각 캐시는 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하고,
    상기 읽기 요구된 블록은 조각 프리페칭 (Strip Prefetching: SP) 없이 디스크로부터 읽혀지는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  7. 제 1항에 있어서,
    상기 제 1과정은,
    유령 조각 캐시 또는 상기 상류의 재생된 조각 캐시의 과거의 빈 블록 캐시에 해당하는 읽기 요구가 발생되면, 해당되는 조각 캐시가 조각 프리페칭 (Strip Prefetching: SP) 또는 소정의 프리페칭 기법으로 디스크로부터 읽혀지고, 상기 상류의 MRU(Most recently used) 위치에 삽입되는 과정을 더 포함하는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  8. 제 1항에 있어서,
    상기 제 1과정은,
    상기 상류 또는 상기 하류의 조각 캐시, 또는 유령 조각 캐시에 속하지 않은 블록으로의 읽기 요구가 발생하면, 해당 블록을 위한 조각 캐시를 할당하고, 해당 조각 캐시를 상류의 MRU(Most recently used) 위치에 삽입하는 과정을 더 포함하며,
    상기 조각 캐시는 조각 프리페칭(Strip Prefetching: SP) 또는 소정의 프리페칭 기법으로 읽혀지는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  9. 컴퓨터 저장 장치에서의 프리페칭된 데이터를 관리하는 방법에 있어서,
    전체 캐시를 상기 블록 캐시 단위로 관리되고, 블록 캐시들이 상류와 하류로 분할되며, 상기 상류는 상기 프리페칭된 블록 캐시와 상기 캐싱된 블록 캐시를 가지고, 상기 하류는 상기 캐싱된 블록 캐시만을 가지도록 제어하는 제 1과정;
    상기 상류가 가질 수 있는 상기 블록 캐시들의 수(Nu)를 프리페칭 적중률과 캐시 적중률의 합의 미분값을 이용하여 갱신하는 제 2과정; 및
    상기 상류에 포함된 블록 캐시의 수가 상기 갱신된 블록 캐시들의 수(Nu)보다 큰 경우, LRU(Least Recently Used) 정책에 따라 상류의 LRU 블록 캐시를 하류로 이동하되, 상기 블록 캐시의 프리페칭된 블록 캐시를 캐시에서 제거시키는 제 3과정;
    을 포함하는,
    컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  10. 제 9항에 있어서,
    상기 블록 캐시들의 수(Nu)는 다음의 <수학식 2>에 의한 방법으로 되먹임시키며,
    <수학식 2>
    Figure PCTKR2009000034-appb-I000007
    여기서, 상기 ΔP는 어떤 시간 동안 상기 상류 아래에서 발생한 상기 프리페칭 적중의 수, ΔC는 같은 시간 동안 상기 전체 아래에서 발생한 상기 캐시 적중의 수, α는 1 + (상류 아래의 프리페칭된 블록 캐시들의 수)/(전체 아래의 블록 캐시들의 수)이며, S는 상수인, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  11. 제 9항에 있어서,
    상기 상류 및 상기 하류의 블록 캐시들은 각각 LRU(Least Recently Used) 정책으로 관리되는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  12. 제 9항에 있어서,
    상기 제 1과정은,
    상기 상류의 임의의 블랙 캐시에 포함된 프리페칭된 블록 캐시 또는 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 블록 캐시를 상류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  13. 제 9항에 있어서,
    상기 제 1과정은,
    상기 하류의 블랙 캐시에 포함된 캐싱된 블록 캐시로의 읽기 요구가 발생하면, 상기 블록 캐시를 하류의 MRU(Most recently used) 위치로 이동하는 과정을 더 포함하는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
  14. 제 13항에 있어서,
    상기 읽기 요구가 캐시 미스를 발생시키면, 해당되는 블록을 위한 블록 캐시를 새로 할당하고, 상류의 MRU(Most recently used) 위치에 삽입하는 과정을 더 포함하는, 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법.
PCT/KR2009/000034 2008-01-08 2009-01-05 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법 WO2009088194A2 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080002114A KR100981884B1 (ko) 2008-01-08 2008-01-08 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법
KR10-2008-0002114 2008-01-08

Publications (2)

Publication Number Publication Date
WO2009088194A2 true WO2009088194A2 (ko) 2009-07-16
WO2009088194A3 WO2009088194A3 (ko) 2009-09-03

Family

ID=40853581

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/000034 WO2009088194A2 (ko) 2008-01-08 2009-01-05 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법

Country Status (2)

Country Link
KR (1) KR100981884B1 (ko)
WO (1) WO2009088194A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924646B2 (en) 2010-10-07 2014-12-30 Lsi Corporation Methods for managing data movement and destaging data in a multi-level cache system utilizing threshold values and metadata

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102069273B1 (ko) 2013-03-11 2020-01-22 삼성전자주식회사 시스템 온 칩 및 그 동작방법
US11262923B2 (en) 2020-07-08 2022-03-01 Samsung Electronics Co., Ltd. Method for managing namespaces in a storage device using an over-provisioning pool and storage device employing the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
KR20060099808A (ko) * 2005-03-15 2006-09-20 미쓰비시덴키 가부시키가이샤 제어 회로 및 제어 방법
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
KR20060099808A (ko) * 2005-03-15 2006-09-20 미쓰비시덴키 가부시키가이샤 제어 회로 및 제어 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924646B2 (en) 2010-10-07 2014-12-30 Lsi Corporation Methods for managing data movement and destaging data in a multi-level cache system utilizing threshold values and metadata

Also Published As

Publication number Publication date
WO2009088194A3 (ko) 2009-09-03
KR20090076265A (ko) 2009-07-13
KR100981884B1 (ko) 2010-09-14

Similar Documents

Publication Publication Date Title
US8214606B2 (en) Storage system and control method thereof
US6141731A (en) Method and system for managing data in cache using multiple data structures
US6047356A (en) Method of dynamically allocating network node memory&#39;s partitions for caching distributed files
US6327644B1 (en) Method and system for managing data in cache
JP3697149B2 (ja) キャッシュ・メモリを管理する方法
TWI393004B (zh) 用於動態改變快取記憶體順序清單大小之系統以及方法
US6728837B2 (en) Adaptive data insertion for caching
US8423715B2 (en) Memory management among levels of cache in a memory hierarchy
US6192450B1 (en) Destage of data for write cache
US6877065B2 (en) Advanced read cache management
US6078992A (en) Dirty line cache
US7877547B2 (en) Method, system and circuit for efficiently managing a cache storage device
US6286080B1 (en) Advanced read cache emulation
JPH0644137A (ja) 動的マップド・データ蓄積システムにおける補助記憶装置へのデータ転送のための方法および装置
US7080208B2 (en) Method for data retention in a data cache and data storage system
WO2016195242A1 (ko) 비휘발성 메모리 시스템
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
US6336164B1 (en) Method and system for preventing deadlock in a log structured array
US7702875B1 (en) System and method for memory compression
WO2009088194A2 (ko) 컴퓨터 저장장치에서의 프리페칭 데이터 관리 방법
US7139872B1 (en) System and method for assessing the effectiveness of a cache memory or portion thereof using FIFO or LRU using cache utilization statistics
KR100900489B1 (ko) 디스크 어레이 매스 프리페칭 방법
EP0156179A2 (en) Method for protecting volatile primary store in a staged storage system
EP0847555B1 (en) Method for sequential detection in a cache management system
US20230064603A1 (en) System and methods for invalidating translation information in caches

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09701262

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09701262

Country of ref document: EP

Kind code of ref document: A2