KR100263299B1 - 패리티 엔진을 이용한 고속 디스테이징 방법 - Google Patents
패리티 엔진을 이용한 고속 디스테이징 방법 Download PDFInfo
- Publication number
- KR100263299B1 KR100263299B1 KR1019970072066A KR19970072066A KR100263299B1 KR 100263299 B1 KR100263299 B1 KR 100263299B1 KR 1019970072066 A KR1019970072066 A KR 1019970072066A KR 19970072066 A KR19970072066 A KR 19970072066A KR 100263299 B1 KR100263299 B1 KR 100263299B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- block
- parity
- destaging
- read
- Prior art date
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
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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
-
- 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/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 패리티 엔진을 이용한 고속 디스테이징(Destaging) 방법에 관한 것으로, 특히 VRAM 패리티 엔진을 이용한 고속 디스크 어레이 제어기에서 발생하는 쓰기 성능 저하를 최소화하기 위한 디스크 어레이의 캐쉬 구성과 관리를 위한 고속 디스테이징 방법에 관한 것이다.
본 발명에 따른 디스크 캐쉬는 읽기 캐쉬, 쓰기캐쉬, 디스테이징 캐쉬로 구성된다. 이때, 쓰기 캐슁을 쓰기캐쉬와 디스테이징 캐쉬로 나누어 처리한다. 디스테이징 캐쉬는 데이터 블록에다가 중간 패리티를 위한 한 개의 블록만 더 가짐으로써 메모리를 더 적게 사용하고, 쓰기캐쉬에 더 많은 블록 할당이 가능하게 함으로써 캐쉬 적중률을 높일 수 있다. 쓰기 요구는 우선 일단 쓰기캐쉬에 저장된 후에 쓰기캐쉬가 꽉 찬 경우(FULL) 향후 가장 사용될 것 같지 않은 블록들을 디스테이징 캐쉬로 옮긴다. 디스테이징이 요구되면 디스테이징 캐쉬에서 가장 최근에 사용되지 않은 블록들을 선택해 한번의 패리티 연산과 두번의 쓰기 동작만으로 디스테이징이 가능하다. 또 디스테이징 시 블록 패리티 연산은 듀얼 포트(dual port)를 가지는 VRAM 기반 패리티 엔진을 사용하여 계산 속도를 높이고 프로세서의 부담을 줄일 수 있다.
Description
본 발명은 패리티 엔진을 이용한 고속 디스테이징(Destaging) 방법에 관한 것으로, 특히 VRAM 패리티 엔진을 이용한 고속 디스크 어레이 제어기에서 발생하는 쓰기 성능 저하를 최소화하기 위한 디스크 어레이의 캐쉬 구성과 관리를 위한 고속 디스테이징 방법에 관한 것이다.
일반적으로, 디스크 어레이 시스템은 여러 개의 독립된 디스크들로 데이터를 분산 수용하여 마치 하나의 큰 디스크처럼 동작하게 하여, 고성능, 대용량의 저장 장치이다. 그러나 디스크 어레이는 많은 디스크들로 데이터가 분산 수용되어 있으므로 시스템 중에 하나의 디스크에만 고장이 발생하여도 시스템의 모든 데이터가 파손되어 복구가 불가능하게 되는 경우가 발생한다. RAID 시스템에서는 이를 해결하기 위해서 데이터 복제(Disk Mirroring)나 ECC 코드 혹은 패리티 데이터와 같은 보조 데이터를 사용하여 파손된 데이터를 복구할 수 있는 방법을 제공한다. 이러한 보조 데이터의 형태와 사용 방법에 따라 여러 가지의 RAID level로 구분하였으며, 그 중에서 패리티 데이터를 여러 디스크에 분산 수용하는 RAID level 5가 많이 사용된다.
RAID 레벨(level) 5로 동작하는 디스크 어레이 시스템은 블록 단위 인터리빙을 통해 높은 입출력 처리율과 패리티 저장을 통해 높은 가용성을 제공하는 대형 저장장치로 널리 사용되고 있다. 한 디스크가 고장 나더라도 그 디스크의 데이터를 복원할 수 있도록 항상 전체 데이터 블록에 대한 패리티 블록을 계산하여 저장하여야 한다. 이 때문에 매 번의 쓰기 요구에 대해 패리티 연산과 저장을 위해 추가로 세 번의 디스크 입출력이 요구되어 쓰기 성능을 급격하게 저하시킨다. 디스크 입출력 부하가 증가되면 한정된 디스크에 대한 입출력 수가 급격히 증가하여 읽기 성능도 저하시킴으로써 전체 디스크 입출력 성능을 함께 저하시킨다.
RAID 레벨 5 디스크 어레이에서의 쓰기가 입출력 성능에 미치는 영향을 최소화하기 위해 지연 쓰기(delayed writes) 기법을 이용한다. 지연 쓰기 기법에서는 쓰기캐쉬의 적중률(hit ratio)을 높여야 디스크 입출력을 줄일 수 있다. 하지만 디스크 어레이를 사용하는 호스트 시스템도 운영체제에 버퍼 캐쉬를 두고 있기 때문에 높은 캐쉬 적중률을 기대하기는 어렵다. 캐쉬 실기(Miss)가 발생하고 쓰기캐쉬에 할당할 새 블록이 없는 경우에 캐쉬에 있는 블록 중 하나를 디스크에 쓰고 그 블록을 비워야 하는 데 이를 디스테이징(Destaging)이라 한다. 디스테이징은 위한 크게 세 동작으로 나눌 수 있다. 첫 번째로 새로운 패리티 블록을 계산하기 위해 데이터 디스크에서 이전 데이터 블록과 패리티 디스크에서 이전 패리티 블록을 읽어 와야 한다. 두 번째로 디스테이징할 블록과 이전 데이터, 이전 패리티 블록의 배타 논리합(Exclusive OR)을 계산하여 새로운 패리티 블록을 구한다. 마지막으로 패리티 연산이 끝나면 디스테이징 블록과 새 패리티 블록을 디스크에 저장하고 디스테이징 블록이 차지하고 있던 캐쉬 블록을 비움으로써 디스테이징 동작이 끝난다. 캐쉬 실기가 빈번하게 발생하는 경우 디스테이징 수를 줄이고 디스테이징 시간을 줄이는 것이 성능 저하를 막기 위해서는 꼭 필요하다.
도 1은 종래 디스크 어레이 구조도로서, 디스크 어레이(1)가 내부에는 디스크 캐쉬(3), 이전 데이터 캐쉬(4), 이전 패리티 캐쉬(5), 베타 논리합(2) 및 다수개의 디스크를 가진다. 종래 쓰기캐쉬를 사용하는 디스크 어레이 제어기에서는 디스테이징이 발생하는 경우 그 시점에서 데이터, 패리티 디스크에서 두 번의 읽기와 두 번의 쓰기를 발생시켜 쓰기 실기율이 조그만 높아져도 성능은 급격하게 저하되었다. 디스테이징 시에 이전 데이터와 이전 패리티를 읽어와야 하는 부담을 줄이기 위해 이들에 대한 별도의 캐쉬를 두어 디스테이징시 두 번의 읽기를 줄이는 방법도 제안되었다. 이 방법은 별도의 캐쉬를 두어야 하므로 비용이 비싸고 정해진 캐쉬 용량을 세 가지로 나누어 사용하는 경우 캐쉬 블록이 줄어들어 캐쉬 적중률이 떨어지는 단점이 있다.
따라서, 본 발명은 디스크 캐쉬를 읽기 캐쉬, 쓰기캐쉬, 디스테이징 캐쉬를 사용하여 디스테이징으로 인한 응답 지연이 전체 응답 성능에 미치는 영향을 최소화하는 패리티 엔진을 이용한 고속 디스테이징을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은 읽기 요구가 호스트 시스템으로부터 도착한 후 읽기 캐쉬를 검사하는 단계와, 읽기 캐쉬에 요구하는 블록이 존재하면, 관련블록을 읽기 캐쉬로부터 되돌려주고, 읽기 캐쉬에 요구하는 블록이 없으면 디스크로부터 읽기 캐쉬로 읽어온 후 되돌려주는 단계와, 쓰기 요구가 들어오면 먼저 쓰기캐쉬와 디스테이징 캐쉬를 검사한 후 캐쉬 내에 존재하면 그 블록에 호스트로 받은 데이터를 쓰고, 상기 캐쉬에 없으면 쓰기캐쉬에 할당할 블록이 있는지 검사한 후 할당할 블록이 있으면 그 블록에 호스트로부터 받은 데이터를 쓰는 단계와, 쓰기캐쉬에 할당할 블록이 없으면 쓰기캐쉬의 한 블록의 디스테이징 캐쉬로 옮겨서 쓰기캐쉬의 한 블록을 비우는 단계와, 디스테이징 캐쉬에 옮겨진 블록은 디스테이징 될 대상이므로 이전 데이터와 이전 패리티를 읽어와서 중간 패리티를 계산하는 단계와, 상기 디스테이징 캐쉬에 더 이상 할당할 공간이 없으면 디스테이징이 일어나며, 한 번의 패리티 연산과 두 번의 쓰기가 일어나고, 새로운 패리티를 계산하는 단계와, 갱신된 새 데이터와 새 패리티 블록을 각 데이터 디스크와 패리티 디스크에 쓰는 단계를 포함하여 이루어지는 것을 특징으로 한다.
도 1은 종래 디스크 어레이 구조도.
도 2는 본 발명에 따른 디스크 어레이 구조도.
도 3은 본 발명에 따른 입/출력 요구를 처리하는 순서도.
도 4는 본 발명에 따른 쓰기캐쉬의 블록을 디스테이징 캐쉬로 옮기면서 이전 데이터와 이전 패리티 블록을 디스크로부터 읽어오는 것을 도시한 도면.
도 5는 본 발명에 따른 디스테이징 캐쉬에서 미리 읽어온 이전 데이터와 이전 패리티 블록의 배타적 논리합을 구하는 것을 도시한 도면.
도 6은 본 발명에 따른 디스테이징을 위한 새로운 패리티를 구하는 것을 도시한 도면.
도 7은 본 발명에 따른 디스테이징의 마지막 단계로 갱신된 새 데이터와 새 패리티 블록을 각 데이터 디스크와 패리티 디스크에 쓰는 것을 도시한 도면.
〈도면의 주요부분에 대한 부호의 설명〉
1 : 디스크 어레이 3 : 디스크 캐쉬
4 : 이전 데이터 캐쉬 5 : 이전 패리티 캐쉬
20 : 호스트 2 및 22 : 베타 논리합
26 : 읽기 캐쉬 27 : 쓰기캐쉬
28 : 디스테이지 캐쉬
이하, 첨부한 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.
도 2는 본 발명에 따른 디스크 어레이 구조도로서, 디스크 캐쉬 구성은 읽기 캐쉬(26), 쓰기캐쉬(27), 디스테이징 캐쉬(28), 베타 논리합(22) 및 다수개의 디스크로 구성되어 있다. 읽기 캐쉬(26)를 별도로 둔 이유는 쓰기 요구로 발생하는 응답 지연 효과가 읽기 응답 성능에 미치는 영향을 최소화하기 위해서이다. 디스테이징 캐쉬(28)의 캐쉬 블록은 두 개의 블록으로 이루어져 있다. 하나는 쓰기캐쉬(27)로부터 옮겨온 디스테이징 대상 블록이고, 나머지 하나는 그 블록에 대한 이전 데이터와 이전 패리티의 배타적 논리합(22)을 한 결과가 저장된 블록이다.
도 3은 도 2에 도시된 세 캐쉬를 이용해 입/출력 요구를 처리하는 순서도로서, 읽기 요구가 호스트(20) 시스템으로부터 도착한 후 읽기 캐쉬를 검사하여(32) 있으면 그 블록을 읽기 캐쉬로부터 되돌려주고, 읽기 캐쉬가 없으면 디스크로부터 읽기 캐쉬로 읽어온 후 되돌려준다(32a). 쓰기 요구가 들어오면 먼저 쓰기캐쉬와 디스테이징 캐쉬를 검사하여(33,35) 캐쉬 내에 존재하면 그 블록에 호스트로 받은 데이터를 쓴다. 만약 캐쉬에 없으면 쓰기캐쉬에 할당할 블록이 있는지 검사(36)한 후 할당할 블록이 있으면 그 블록에 호스트로부터 받은 데이터를 쓴다. 쓰기캐쉬에 할당할 블록이 없으면 쓰기캐쉬의 한 블록의 디스테이징 캐쉬로 옮겨(36a)서 쓰기캐쉬의 한 블록을 비운다. 디스테이징 캐쉬에 옮겨진 블록은 디스테이징 될 대상이므로 이전 데이터와 이전 패리티를 읽어와서(36b) 중간 패리티를 계산해둔다(36c). 계산식은 아래 (1)식과 같다.
디스테이징 캐쉬에 더 이상 할당할 공간이 없으면 디스테이징이 일어난다. 이 때는 한 번의 패리티 연산(37a)과 두 번의 쓰기가 일어난다. 이 때 새로운 패리티(New Parity) 계산은 아래 (2)식과 같다.
도 4는 쓰기캐쉬의 블록을 디스테이징 캐쉬로 옮기면서 이전 데이터와 이전 패리티 블록을 디스크로부터 읽어오는 것을 도시한 도면으로, 쓰기캐쉬가 꽉찬 경우 이 캐쉬블록 중 최근에 사용되지 않을 것 같은 캐쉬 블록을 디스테이징 캐쉬로 옮긴다.
도 5는 디스테이징(Destaging) 캐쉬에서 미리 읽어온 이전 데이터와 이전 패리티 블록의 배타적 논리합(Exclusive OR)을 구하는 것을 도시한 도면이다.
도 6은 디스테이징을 위한 새로운 패리티를 구하는 것을 도시한 도면이다.
도 7은 디스테이징의 마지막 단계로 갱신된 새 데이터와 새 패리티 블록을 각 데이터 디스크와 패리티 디스크에 쓰는 것을 도시한 도면이다.
도 4내지 도 7을 참조하면, 도패리티 연산은 패리티 캐쉬(VRAM) 내에 존재하는 옛 패리티를 디스크 캐쉬 메모리에 존재하는 새로운 데이터와 XOR 연산을 한 후 다시 패리티 캐쉬로 저장하는 동작을 수행한다. 이 동작을 위해서 먼저 VRAM 제어기로 읽기 이동(Read Transfer) 동작(54, 63)을 요구함과 동시에 XOR 로직 버퍼의 출력을 가능케 한다.
읽기 이동 동작은 VRAM의 SAM 포트로 데이터를 읽어내기 위한 사전 동작(55)으로 이 후 VRAM의 SC(Serial Clock) 단자에 클럭 신호를 인가하면 계속해서 증가된 주소의 데이터를 읽어낼 수 있다.
읽기 이동 동작이 완료되면 디스크 캐쉬 메모리의 새로운 데이터 블록의 첫 번째 워드를 읽어서(56, 65) VRAM의 RAM 포트로 쓰는 동작을 수행하는데, 이 때 VRAM으로 쓰기 데이터(66, 58)는 디스크 캐쉬 메모리로부터 읽은 데이터와 VRAM의 SAM 포트에서 읽은 데이터의 XOR 결과이다.
디스크 캐쉬 메모리로부터 읽어서 VRAM으로 쓰는 한 주기의 동작이 끝나면 디스크 캐쉬 메모리의 주소와 VRAM의 주소를 한 워드(word) 만큼 증가시키고, 블록 크기 계수기는 한 워드만큼 감소시킨다. 그리고 VRAM의 SC 단자에도 클럭 신호를 공급하여 한 워드 증가된 주소의 데이터를 읽어 낸다. 이 후 증가된 주소를 가지고 디스크 캐쉬 메모리로부터 VRAM의 RAM 포트로 쓰는 동작을 블록 크기 계수기가 '0'이 될 때까지 계속 반복하게 되며, 그 결과 VRAM의 옛 패리티 블록은 디스크 캐쉬 메모리의 새로운 데이터 블록과 XOR 된 결과로 갱신된다.
상술한 바와같이 본 발명은 쓰기 캐슁을 쓰기캐쉬와 디스테이징 캐쉬로 나누어 처리한다. 디스테이징 캐쉬는 데이터 블록에다가 중간 패리티를 위한 한 개의 블록만 더 가짐으로써 메모리를 더 적게 사용하고 쓰기캐쉬에 더 많은 블록 할당이 가능하게 함으로써 캐쉬 적중률을 높일 수 있다. 여기서 중간 패리티는 이전 데이터 블록과 이전 패리티 블록의 배타 논리합이다. 또 디스테이징 시 블록 패리티 연산은 듀얼 포트(dual port)를 가지는 VRAM 기반 패리티 엔진을 사용하여 계산 속도를 높이고 프로세서의 부담을 줄일 수 있는 효과가 있다.
Claims (3)
- 읽기 요구가 호스트 시스템으로부터 도착한 후 읽기 캐쉬를 검사하는 단계와,읽기 캐쉬에 요구하는 블록이 존재하면, 관련블록을 읽기 캐쉬로부터 되돌려주고, 읽기 캐쉬에 요구하는 블록이 없으면 디스크로부터 읽기 캐쉬로 읽어온 후 되돌려주는 단계와,쓰기 요구가 들어오면 먼저 쓰기캐쉬와 디스테이징 캐쉬를 검사한 후 캐쉬 내에 존재하면 그 블록에 호스트로 받은 데이터를 쓰고, 상기 캐쉬에 없으면 쓰기캐쉬에 할당할 블록이 있는지 검사한 후 할당할 블록이 있으면 그 블록에 호스트로부터 받은 데이터를 쓰는 단계와,쓰기캐쉬에 할당할 블록이 없으면 쓰기캐쉬의 한 블록의 디스테이징 캐쉬로 옮겨서 쓰기캐쉬의 한 블록을 비우는 단계와,디스테이징 캐쉬에 옮겨진 블록은 디스테이징 될 대상이므로 이전 데이터와 이전 패리티를 읽어와서 중간 패리티를 계산하는 단계와,상기 디스테이징 캐쉬에 더 이상 할당할 공간이 없으면 디스테이징이 일어나며, 한 번의 패리티 연산과 두 번의 쓰기가 일어나고, 새로운 패리티를 계산하는 단계와,갱신된 새 데이터와 새 패리티 블록을 각 데이터 디스크와 패리티 디스크에 쓰는 단계를 포함하여 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
- 제 1 항에 있어서,상기 중간 패리티는 이전 데이터와 이전 패리티의 베타 논리합으로 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
- 제 1 항에 있어서,상기 새로운 패리티는 새로운 데이터와 중간 패리티의 베타 논리합으로 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970072066A KR100263299B1 (ko) | 1997-12-22 | 1997-12-22 | 패리티 엔진을 이용한 고속 디스테이징 방법 |
US09/141,094 US6052822A (en) | 1997-12-22 | 1998-08-26 | Fast destaging method using parity engine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970072066A KR100263299B1 (ko) | 1997-12-22 | 1997-12-22 | 패리티 엔진을 이용한 고속 디스테이징 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990052573A KR19990052573A (ko) | 1999-07-15 |
KR100263299B1 true KR100263299B1 (ko) | 2000-08-01 |
Family
ID=19528206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970072066A KR100263299B1 (ko) | 1997-12-22 | 1997-12-22 | 패리티 엔진을 이용한 고속 디스테이징 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6052822A (ko) |
KR (1) | KR100263299B1 (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7098901B2 (en) * | 2000-07-24 | 2006-08-29 | Sharp Kabushiki Kaisha | Display device and driver |
US6996739B2 (en) * | 2001-07-11 | 2006-02-07 | Sun Microsystems, Inc. | Accumulator memory for performing operations on block operands |
US20030115416A1 (en) * | 2001-12-19 | 2003-06-19 | Nixon Walter T. | Cache accumulator memory with an associativity mechanism |
US7234022B2 (en) * | 2001-12-19 | 2007-06-19 | Sun Microsystems, Inc. | Cache accumulator memory for performing operations on block operands |
KR100423812B1 (ko) * | 2001-12-20 | 2004-03-22 | 한국전자통신연구원 | 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법 |
US7107403B2 (en) * | 2003-09-30 | 2006-09-12 | International Business Machines Corporation | System and method for dynamically allocating cache space among different workload classes that can have different quality of service (QoS) requirements where the system and method may maintain a history of recently evicted pages for each class and may determine a future cache size for the class based on the history and the QoS requirements |
US7231492B2 (en) * | 2003-09-30 | 2007-06-12 | Emc Corporation | Data transfer method wherein a sequence of messages update tag structures during a read data transfer |
US7143240B2 (en) * | 2003-10-31 | 2006-11-28 | International Business Machines Corporation | System and method for providing a cost-adaptive cache |
US7370163B2 (en) * | 2004-05-03 | 2008-05-06 | Gemini Storage | Adaptive cache engine for storage area network including systems and methods related thereto |
US20060036904A1 (en) * | 2004-08-13 | 2006-02-16 | Gemini Storage | Data replication method over a limited bandwidth network by mirroring parities |
US7457980B2 (en) * | 2004-08-13 | 2008-11-25 | Ken Qing Yang | Data replication method over a limited bandwidth network by mirroring parities |
US7353423B2 (en) * | 2004-09-24 | 2008-04-01 | International Business Machines Corporation | System and method for improving the performance of operations requiring parity reads in a storage array system |
US8099548B2 (en) * | 2006-03-23 | 2012-01-17 | Microsoft Corporation | Power efficient media playback on general purpose portable devices |
US7996609B2 (en) * | 2006-12-20 | 2011-08-09 | International Business Machines Corporation | System and method of dynamic allocation of non-volatile memory |
US8850114B2 (en) | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
US10076283B2 (en) | 2013-11-04 | 2018-09-18 | Medtronic, Inc. | Method and device to manage fluid volumes in the body |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2810593B2 (ja) * | 1992-05-13 | 1998-10-15 | 三菱電機株式会社 | 記憶装置 |
US5634109A (en) * | 1994-06-20 | 1997-05-27 | International Business Machines Corporation | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache |
JP3661205B2 (ja) * | 1994-09-09 | 2005-06-15 | 株式会社日立製作所 | ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法 |
US5754888A (en) * | 1996-01-18 | 1998-05-19 | The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment |
-
1997
- 1997-12-22 KR KR1019970072066A patent/KR100263299B1/ko not_active IP Right Cessation
-
1998
- 1998-08-26 US US09/141,094 patent/US6052822A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR19990052573A (ko) | 1999-07-15 |
US6052822A (en) | 2000-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6341331B1 (en) | Method and system for managing a raid storage system with cache | |
KR100263299B1 (ko) | 패리티 엔진을 이용한 고속 디스테이징 방법 | |
US6467022B1 (en) | Extending adapter memory with solid state disks in JBOD and RAID environments | |
US6243795B1 (en) | Redundant, asymmetrically parallel disk cache for a data storage system | |
US6941420B2 (en) | Log-structure array | |
US5309451A (en) | Data and parity prefetching for redundant arrays of disk drives | |
US5884098A (en) | RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems | |
US7035974B2 (en) | RAID-5 disk having cache memory implemented using non-volatile RAM | |
Tremaine et al. | IBM memory expansion technology (MXT) | |
US6434666B1 (en) | Memory control apparatus and method for storing data in a selected cache memory based on whether a group or slot number is odd or even | |
US6745283B1 (en) | Disk drive for dynamically allocating memory accessed concurrently by a host interface and a disk interface to facilitate large host commands | |
US7861035B2 (en) | Method of improving input and output performance of raid system using matrix stripe cache | |
US8966170B2 (en) | Elastic cache of redundant cache data | |
US6360300B1 (en) | System and method for storing compressed and uncompressed data on a hard disk drive | |
US7228381B2 (en) | Storage system using fast storage device for storing redundant data | |
CN101236482B (zh) | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 | |
US20100100664A1 (en) | Storage system | |
US6378038B1 (en) | Method and system for caching data using raid level selection | |
US9047200B2 (en) | Dynamic redundancy mapping of cache data in flash-based caching systems | |
US5634109A (en) | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache | |
KR100208801B1 (ko) | 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법 | |
US5420983A (en) | Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data | |
KR20170098187A (ko) | 저장 서브시스템을 위한 연관적 및 원자적 라이트-백 캐싱 시스템 및 방법 | |
US7051156B2 (en) | Raid-5 disk having cache memory | |
CN111857540A (zh) | 数据存取方法、装置和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080428 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |