KR100263299B1 - 패리티 엔진을 이용한 고속 디스테이징 방법 - Google Patents

패리티 엔진을 이용한 고속 디스테이징 방법 Download PDF

Info

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
Application number
KR1019970072066A
Other languages
English (en)
Other versions
KR19990052573A (ko
Inventor
김중배
윤석한
김진표
김용연
Original Assignee
정선종
한국전자통신연구원
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 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019970072066A priority Critical patent/KR100263299B1/ko
Priority to US09/141,094 priority patent/US6052822A/en
Publication of KR19990052573A publication Critical patent/KR19990052573A/ko
Application granted granted Critical
Publication of KR100263299B1 publication Critical patent/KR100263299B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In 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)식과 같다.
중간 패리티(mid Parity) = 이전 데이터
Figure 1019970072066_B1_M0001
이전 패리티 ------- (1)
디스테이징 캐쉬에 더 이상 할당할 공간이 없으면 디스테이징이 일어난다. 이 때는 한 번의 패리티 연산(37a)과 두 번의 쓰기가 일어난다. 이 때 새로운 패리티(New Parity) 계산은 아래 (2)식과 같다.
새로운 패리티 = 새로운 데이터
Figure 1019970072066_B1_M0001
중간 패리티 ------- (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. 읽기 요구가 호스트 시스템으로부터 도착한 후 읽기 캐쉬를 검사하는 단계와,
    읽기 캐쉬에 요구하는 블록이 존재하면, 관련블록을 읽기 캐쉬로부터 되돌려주고, 읽기 캐쉬에 요구하는 블록이 없으면 디스크로부터 읽기 캐쉬로 읽어온 후 되돌려주는 단계와,
    쓰기 요구가 들어오면 먼저 쓰기캐쉬와 디스테이징 캐쉬를 검사한 후 캐쉬 내에 존재하면 그 블록에 호스트로 받은 데이터를 쓰고, 상기 캐쉬에 없으면 쓰기캐쉬에 할당할 블록이 있는지 검사한 후 할당할 블록이 있으면 그 블록에 호스트로부터 받은 데이터를 쓰는 단계와,
    쓰기캐쉬에 할당할 블록이 없으면 쓰기캐쉬의 한 블록의 디스테이징 캐쉬로 옮겨서 쓰기캐쉬의 한 블록을 비우는 단계와,
    디스테이징 캐쉬에 옮겨진 블록은 디스테이징 될 대상이므로 이전 데이터와 이전 패리티를 읽어와서 중간 패리티를 계산하는 단계와,
    상기 디스테이징 캐쉬에 더 이상 할당할 공간이 없으면 디스테이징이 일어나며, 한 번의 패리티 연산과 두 번의 쓰기가 일어나고, 새로운 패리티를 계산하는 단계와,
    갱신된 새 데이터와 새 패리티 블록을 각 데이터 디스크와 패리티 디스크에 쓰는 단계를 포함하여 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
  2. 제 1 항에 있어서,
    상기 중간 패리티는 이전 데이터와 이전 패리티의 베타 논리합으로 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
  3. 제 1 항에 있어서,
    상기 새로운 패리티는 새로운 데이터와 중간 패리티의 베타 논리합으로 이루어지는 것을 특징으로 하는 패리티 엔진을 이용한 고속 디스테이징 방법.
KR1019970072066A 1997-12-22 1997-12-22 패리티 엔진을 이용한 고속 디스테이징 방법 KR100263299B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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