KR100321987B1 - 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법 - Google Patents

레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법 Download PDF

Info

Publication number
KR100321987B1
KR100321987B1 KR1019990005484A KR19990005484A KR100321987B1 KR 100321987 B1 KR100321987 B1 KR 100321987B1 KR 1019990005484 A KR1019990005484 A KR 1019990005484A KR 19990005484 A KR19990005484 A KR 19990005484A KR 100321987 B1 KR100321987 B1 KR 100321987B1
Authority
KR
South Korea
Prior art keywords
parity
cache
stripe
new
user data
Prior art date
Application number
KR1019990005484A
Other languages
English (en)
Other versions
KR20000056291A (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 KR1019990005484A priority Critical patent/KR100321987B1/ko
Publication of KR20000056291A publication Critical patent/KR20000056291A/ko
Application granted granted Critical
Publication of KR100321987B1 publication Critical patent/KR100321987B1/ko

Links

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

레이드(RAID: Redundant Arrays of Inexpensive Disks) 시스템에서 성능 향상을 위한 패러티 캐쉬 및 이의 운영 방법에 관하여 개시한다. 본 방법은 레이드 시스템의 성능 향상을 위하여, 레이드 운영자가 시스템 운영 체제로부터 기록하라는 명령어를 입력받는 단계, 레이드 운영자가 상기 명령어에 포함된 논리 블록 어드레스와 전송 크기에 따라 상기 명령어를 스트라입(stripe) 단위로 나누는 단계, 전송할 스트라입의 개수를 구하는 단계, 기록 방식을 결정하는 단계, 및 상기 결정된 기록 방식에 따라 새로운 데이터와 패러티를 기록하는 단계를 포함한다. 본 장치는, 레이드 시스템의 성능 향상을 위하여, 패러티 정보를 저장하는 영역, 캐쉬를 제어하는 태그(tag), 및 상기 태그 중에서 캐쉬 라인의 상태를 바탕으로 정의된 캐쉬 프로토콜을 구비한다. 본 발명은 패러티를 계산하기 위하여 매번 디스크로부터 오울드(old) 패러티를 읽어들이는 작업 횟수를 대폭 줄일 수 있다. 또한, 운영 체제로부터 오는 요청을 풀 스트라입과 파트 스트라입으로 구분하여 패러티를 계산하기 때문에, 풀 스트라입 시에는 패러티 캐쉬 히트 효과를 기대할 수 있다.

Description

레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법{Parity cache of RAID system and a method for operating the parity cache}
본 발명은 레이드(Redundant Arrays of Inexpensive Disks: RAID) 시스템의 성능 향상에 관한 것으로서, 특히 레이드 시스템의 제 5 레벨에서 기록(write) 성능을 개선하기 위한 패러티 캐쉬 구현 방법에 관한 것이다.
컴퓨터 시스템의 입출력 서브시스템(I/O subsystem)에 있어서 저장 디바이스(storage device)는 데이터를 저장하거나 저장 공간으로부터 데이터를 읽어들인다. 레이드(RAID)가 사용된 입출력 서브시스템은 다음과 같이 향상된 기능을 제공한다. 1) 디스크 어레이(disk array)를 하나의 디바이스(또는 파일 시스템)로 동작할 수 있도록 논리적으로 구성할 수 있기 때문에 단일 디스크인 경우보다 더 큰 저장 공간을 제공한다. 2) 데이터 복원 기능을 적용하여 어레이를 구성하는 디스크(즉, 멤버 디스크)들 가운데 하나의 디스크에서 오류(error)가 발생하면, 여분의 디스크(spare disk)로 정의되어 있는 디스크에 상기 오류가 발생한 디스크의 이미지 데이터를 복구하여 데이터 손상을 방지한다. 따라서, 안정된 입출력 동작을 보장할 수 있다.
도 1 은 종래 기술에 의한 레이드 제 5 레벨의 디스크 어레이(10)를 나타낸다. 어레이의 각 디스크(1,2,3,4,5,6)는 사용자 데이터(user data)를 레이드 관리기(RAID manager)가 정한 매핑(mapping) 방법에 의하여 논리적 저장 공간에 저장하는데, 이 때 사용자 데이터를 Ex-ORing한 패러티 정보도 함께 저장된다. 도 2 는레이드 제 5 레벨에서 패러티 정보와 사용자 데이터가 저장되는 매핑의 일 실시예이다.
도 3 은 스트립(strip)과 스트라입(stripe)을 나타낸다. 하나의 물리적 디스크를 N 개의 논리적 공간으로 나눈 각각을 스트립이라 하고, 상기 각각의 스트립에 번호를 부여하고, 동일한 번호를 가지는 스트립들을 하나의 스트라입이라 한다. 도 3 과 같이 논리적으로 표시되는 각각의 스트라입에 있어서, 해당 스트라입을 구성하는 사용자 데이터를 Ex-ORing 하고 그 결과 값을 정해진 스트립에 저장한다. 패러티 정보는, 어레이를 구성하는 N 개의 디스크 중에서 하나가 오동작(fail)하는 경우, 새롭게 정의한 여분의 디스크(6)에 오동작한 디스크와 동일한 데이터를 복구하기 위하여 사용되는 정보이다. 이와 같은 패러티 정보는 제 5 레벨에서 사용자 데이터를 디스크에 기록(write)할 때마다 업데이트 된다. 즉, 기록하고자 하는 사용자 데이터가 위치하는 스트라입을 계산하고, 해당 스트라입에 있는 패러티 정보를, 기록하고자 하는 사용자 데이터의 Ex-ORing된 값으로 업데이트 한다.
상기한 바와 같이 패러티 정보는 논리적으로 정의된 스트라입을 단위로 하여 하나의 스트라입 전체 또는 일부의 사용자 데이터가 기록될 때마다 패러티 정보를 업데이트 해야 한다. 이와 같이 패러티 정보를 계산하는 것은 제 5 레벨에서 기록(write) 성능을 저하시키는 중요 원인이 되며 이는 레이드 시스템의 전체적인 성능에 크게 영향을 미치게 된다.
따라서 본 발명은 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 것으로서, 패러티 캐쉬(parity cache)를 사용하여 기록시 발생하는 성능 저하를 줄이는 방법을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적과 장점은 하기된 발명의 상세한 설명을 읽고 첨부된 도면을 참조하면 보다 명백해질 것이다.
도 1 은 트레이에 장착된 디스크 어레이.
도 2 는 레이드 제 5 레벨에서 데이터와 패러티 정보를 매핑하는 일 실시예.
도 3 은 스트립과 스트라입.
도 4 는 패러티 캐쉬 태그의 일 실시예.
도 5 는 패러티 캐쉬의 구조.
도 6 은 패러티 캐쉬의 동작 흐름도.
도 7 은 패러티 캐쉬의 상태도.
<도면의 주요 부분에 대한 부호의 설명>
1,2,3,4,5,6: 디스크10: 디스크 어레이
상기한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예는, 레이드(RAID) 시스템의 성능 향상을 위하여,
레이드 운영자가 시스템 운영 체제로부터 기록(write)하라는 명령어를 입력받는 단계;
레이드 운영자가 상기 명령어에 포함된 논리 블록 어드레스와 전송 크기에 따라 상기 명령어를 스트라입(stripe) 단위로 나누는 단계;
전송할 스트라입의 개수를 구하는 단계;
기록 방식을 결정하는 단계; 및
상기 결정된 기록 방식에 따라 새로운 데이터와 패러티를 기록하는 단계를 포함한다.
상기 실시예에 있어서, 상기 기록 방식은, 해당 스트라입에서 사용자 데이터를 모두 업데이트하는 풀 스트라입(FULL_OF_STRIPE) 방식과, 해당 스트라입에서 사용자 데이터의 일부를 업데이트하는 파트 스트라입(PART_OF_STRIPE) 방식 중에서하나로 결정되며,
상기 기록 방식이 풀 스트라입(FULL_OF_STRIPE) 방식인 경우,
사용 가능한 캐쉬 라인을 할당 받는 단계;
모든 데이터 스트립을 Ex-ORing 하여 패러티 캐쉬에 저장하는 단계를 더 구비하며,
상기 기록 방식이 풀 스트라입(FULL_OF_STRIPE) 방식인 경우, 패러티 캐쉬를 히트(hit) 하거나 미스(miss)하지 않고 할당 받은 캐쉬 라인을 '0'으로 클리어(clear) 한 후, 라인 상태(line state)를 블랭크(blank)로 지정하며,
상기 데이터 스트립을 Ex-ORing 하는 식은
이며,
이 때,P n 은 새로운 패러티,D no 는 디스크 1, 스트라입 0 인 경우의 새로운 사용자 데이터,D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,D n2 는 디스크 3, 스트라입 0 인 경우의 새로운 사용자 데이터,D n3 는 디스크 4, 스트라입 0 인 경우의 새로운 사용자 데이터이며,
상기 기록 방식이 파트 스트라입(PART_OF_STRIPE) 방식인 경우,
데이터 스트라입 시작 블록 주소(data stripe start block address)를 사용하여 가상 패러티 블록 주소(virtual parity block address: VPBA)를 구하는 단계;
상기 가상 패러티 블록 주소를 사용하여 패러티의 히트(hit) 상태를 확인하는 단계; 및
새로운 패러티를 계산하는 단계를 포함하며,
상기 기록 방식이 파트 스트라입 방식이고 상기 패러티의 상태 미스(miss) 상태인 경우에,
패러티 캐쉬 라인을 할당하는 단계;
가상 패러티 블록 주소(VPBA)를 사용하여 물리적 패러티 블록 주소(physical parity block address: PPBA)를 구하는 단계;
오울드(old) 패러티를 디스크에서 패러티 캐쉬로 읽어들여 상기 캐쉬 라인에 저장하는 단계; 및
새로운 패러티를 계산하는 단계를 포함하며,
상기 새로운 패러티 계산은,
식에 의하여 이루어지며, 이 때,P n 은 뉴 패러티,D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,D o1 는 디스크 2, 스트라입 0 인 경우의 오울드 사용자 데이터,P o 는 오울드 패러티이며,
상기 패러티의 히트 상태를 확인하여, 그 결과가 히트이거나 미스인 경우, 해당 캐쉬 라인에 락(Lock)을 걸어 캐쉬 라인을 배타적으로 사용한다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 다른 실시예는, 레이드 (RAID) 시스템의 성능 향상을 위하여,
패러티 정보를 저장하는 영역;
캐쉬를 제어하는 태그(tag); 및
상기 태그 중에서 캐쉬 라인의 상태를 바탕으로 정의된 캐쉬 프로토콜을 구비한다.
본 발명의 실시예에 있어서, 상기 패러티 정보 저장 영역과 태그는 초기화 과정을 거친 후 메모리의 일정 영역에 위치하며,
상기 캐쉬 프로토콜의 라인 상태는, 패리티 캐쉬의 초기화시의 상태인 I(INVALID), 임의 스트라입의 전체 유저 데이터가 갱신되는 경우의 상태인 B(BLANK), 패러티 캐쉬 히트가 발생한 경우의 라인 상태인 O(OLD), 패러티 계산이 종료된 상태인 N(NEW)의 상태 가운데 하나를 가진다.
하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다.
본 발명은 레이드 시스템의 기록 성능의 향상을 위하여, 패러티 정보를 위한 캐쉬를 구비하는 프로토콜(cache protocol)을 구현한 것이다.
본 발명이 제안하는 패러티 정보를 위한 캐쉬는, 패러티 정보를 저장하는 패러티 캐쉬 영역, 캐쉬를 제어하는 태그(tag) 캐쉬 영역, 그리고, 상기 태그 중에서 캐쉬 라인의 상태를 바탕으로 정의된 캐쉬 프로토콜로 구성된다.
상기 패러티 캐쉬와 태그 캐쉬는 초기화 과정을 거쳐 메모리의 일정 영역에 위치하며, 이것을 논리적으로 표현하면 도 4, 도 5 와 같다. 도 4 는 통상의 캐쉬 매핑 방법인 4 way set associative 방식을 사용하여 구현한 패리티 캐쉬 태그의 일 실시예를 나타낸다. 상기 캐쉬 프로토콜은 이본(IBON) 프로토콜로도 불리며 패러티 캐쉬 특성을 고려하여 라인의 상태(line state)에 따라 I(INVALID), B(BLANK), O(OLD), N(NEW)의 네 가지 상태를 가질 수 있다.
상기 I(INVALID)는 패러티 캐쉬가 초기화될 때 가지는 최초의 상태를 의미한다.
상기 B(BLANK)는, 패러티 캐쉬가 사용자 데이터가 Ex-ORing 된 결과값임을 나타내며, 다음 식이 사용되는 경우에 필요한 라인 상태를 나타낸다.
식 1
이 때,P n 은 새로운 패러티,D no 는 디스크 1, 스트라입 0 인 경우의 새로운 사용자 데이터,D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,D n2 는 디스크 3, 스트라입 0 인 경우의 새로운 사용자 데이터,D n3 는 디스크 4, 스트라입 0 인 경우의 새로운 사용자 데이터이다.
즉, 임의의 스트라입에 해당하는 모든 사용자 데이터가 업데이트 되는 경우에 패러티 캐쉬 라인은 그 값이 '0'인 상태로 되어야 패러티 계산을 보다 빠르게 진행할 수 있다.
상기 O(OLD)는 패러티 캐쉬 히트(hit)가 발생하는 경우, 즉 원하는 데이터가 캐쉬 안에 있는 경우, 히트된 캐쉬 라인이 가져야 하는 라인의 상태를 나타낸다.
상기 N(NEW)는 패러티 계산이 끝나서 패러티 캐쉬 라인이 새로운 상태로 천이되는 것을 나타낸다.
도 4 에서 LRUValue(Least Recently Used Value)는 최근에 가장 적게 사용된 값, 즉, 가장 오래 전에 사용된 값을 나타낸다. Exclusion은 Locked와 Unlocked의 두 가지 상태를 가지는데, Locked는 라인을 사용중임을 나타내고 Unlocked는 라인을 사용하지 않고 있음을 나타낸다.
도 5 는 4 way set associative 방식에 의한 패러티 캐쉬의 논리적 구성을 나타낸다. 4 개의 라인을 하나의 셋트로 하여 N 개의 셋트가 하나의 패러티 캐쉬를 구성한다.
도 6 은 패러티 캐쉬의 동작을 나타내는 흐름도이다. 상기에 언급한 바와 같이 패러티 캐쉬가 초기화 과정을 거치면서, 각 라인의 라인 상태는 I(INVALID) 상태를 가지게 된다. 운영 체제로부터 기록(write)하라는 명령어(request)가 오면(s601,s602) 레이드 관리기는 상기 명령어에 포함되어 있는 논리적 블록 주소와 전송 크기를 가지고 레이드 관리기가 관리하는 디스크 어레이의 매핑 방식에 따라 스트라입 단위로 명령어를 나눈다(s603). 운영 체제로부터 읽기(read) 하라는 명령어가 올 경우에는 레이드 제 1 레벨의 읽기 시퀀스와 유사하게 읽기 과정을 수행한다(s604).
기록하고자 하는 방식을 결정한다(s606). 기록 방식은 풀스트라입(FULL_OF_STRIPE)과 파트 스트라입(PART_OF_STRIPE)으로 구분하여 캐쉬 동작을 진행한다.
풀 스트라입(FULL_OF_STRIPE)인 경우(s607)에는 해당 스트라입에서 4 개의 사용자 데이터가 모두 업데이트 되는 경우이므로 패러티 캐쉬를 히트(hit)하거나 미스(miss)할 필요가 없기 때문에 사용 가능한 캐쉬 라인을 할당 받아(s609) 그 라인을 '0'으로 클리어(clear)한 후 라인 상태를 BLANK로 두고, 모든 데이터 스트립을 Ex-ORing 하고 그 결과를 패러티 캐쉬에 저장한다(s611). 상기의 히트나 미스를 사용하지 않기 때문에 패러티 계산을 보다 빨리 수행할 수 있다. 이 경우, 패러티 계산은 식 1을 사용한다.
파트 스트라입(PART_OF_STRIPE)인 경우(s608)에는, 해당 스트라입에서 4 개의 사용자 데이터중에서 일부가 업데이트 되는 경우이므로 데이터 스트라입 시작 블록 주소를 사용하여 가상 패러티 블록 주소(Virtual Parity Block Address: VPBA)를 구한 후, 패러티 캐쉬의 히트 또는 미스를 확인한다(s612). 히트가 되면, 해당 캐쉬 라인에 락(Lock)을 걸어 배타적 사용을 보장 받은 후 다음의 식 2를 사용하여 패러티를 계산한다(s617).
식 2
이 때,P n 은 뉴 패러티,D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,D o1 는 디스크 2, 스트라입 0 인 경우의 오울드 사용자 데이터,P o 는오울드 패러티이다.
미스이면, 패러티 캐쉬 라인을 할당 받고(s614), 가상 패러티 블록 주소(VPBA)를 사용하여 물리적 패러티 블록 주소(Physical Parity Block Address: PPBA)를 구한 후(s615), 오울드 패러티를 디스크로부터 읽어들여(s616) 할당 받은 캐쉬 라인에 저장한다. 이 경우에도 배타적 사용을 위하여 락(Lock)이 필요하다. 디스크로부터 오울드 패러티를 읽으면 캐쉬의 라인 상태는 오울드(OLD)로 설정된다. 레이드 관리기는 오울드 패러티가 읽힌 것을 확인한 후 상기 식 2를 사용하여 뉴 패러티를 계산한다(s617).
상기 과정이 종료되면 뉴 데이터와 패러티를 기록한다(s618).
도 7 은 본 발명에 의한 패러티 캐쉬의 상태도를 나타낸다. 굵은 실선은 Lock된 상태를, 가는 실선은 Lock이 유지되는 상태를, 점선은 Unlock된 상태를 나타내며, I는 INVALID를, B는 BLANK를, O는 OLD를, N은 NEW를 나타낸다.
본 발명은 다양하게 변형될 수 있고 여러 가지 형태를 취할 수 있으며 상기 발명의 상세한 설명에서는 그에 따른 특별한 실시예에 대해서만 기술하였다. 하지만 본 발명은 상기 발명의 상세한 설명에서 언급된 특별한 형태로 한정되는 것이 아닌 것으로 이해되어야 하며, 오히려 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 패러티를 계산하기 위하여 매번 디스크로부터 오울드(old) 패러티를 읽어들이는 작업 횟수를 대폭 줄일 수 있다. 통상 종래 기술에 의거, 디스크를 액세스할 경우에 10 [ms] 내외의 시간이 소요되는데, 본 발명에 따라 캐쉬 히트(hit)가 발생하면 이 시간만큼 절약할 수 있다.
또한, 운영 체제(O/S)로부터 오는 요청(request)을 풀 스트라입 (FULL_OF_ STRIPE)과 파트 스트라입(PART_OF_STRIPE)으로 구분하여 패러티를 계산하기 때문에, 풀 스트라입 시에는 패러티 캐쉬 히트 효과를 기대할 수 있다.

Claims (12)

  1. 레이드(RAID) 시스템의 성능 향상을 위하여,
    레이드 운영자가 시스템 운영 체제로부터 기록(write)하라는 명령어를 입력받는 단계;
    레이드 운영자가 상기 명령어에 포함된 논리 블록 어드레스와 전송 크기에 따라 상기 명령어를 스트라입(stripe) 단위로 나누는 단계;
    전송할 스트라입의 개수를 구하는 단계;
    기록 방식을 결정하는 단계; 및
    상기 결정된 기록 방식에 따라 새로운 데이터와 패러티를 기록하는 단계를 포함하는, 패러티 캐쉬 운영 방법.
  2. 제 1 항에 있어서, 상기 기록 방식은, 해당 스트라입에서 사용자 데이터를 모두 업데이트하는 풀 스트라입(FULL_OF_STRIPE) 방식과, 해당 스트라입에서 사용자 데이터의 일부를 업데이트하는 파트 스트라입(PART_OF_STRIPE) 방식 중에서 하나로 결정되는, 패러티 캐쉬 운영 방법.
  3. 제 2 항에 있어서, 상기 기록 방식이 풀 스트라입(FULL_OF_STRIPE) 방식인 경우,
    사용 가능한 캐쉬 라인을 할당 받는 단계;
    모든 데이터 스트립을 Ex-ORing 하여 패러티 캐쉬에 저장하는 단계를 더 구비하는, 패러티 캐쉬 운영 방법.
  4. 제 3 항에 있어서 상기 기록 방식이 풀 스트라입(FULL_OF_STRIPE) 방식인 경우, 패러티 캐쉬를 히트(hit) 하거나 미스(miss)하지 않고 할당 받은 캐쉬 라인을 '0'으로 클리어(clear) 한 후, 라인 상태(line state)를 블랭크(blank)로 지정하는, 패러티 캐쉬 운영 방법.
  5. 제 3 항 또는 4 항에 있어서, 상기 데이터 스트립을 Ex-ORing 하는 식은
    이며,
    이 때,P n 은 새로운 패러티,D no 는 디스크 1, 스트라입 0 인 경우의 새로운 사용자 데이터,
    D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,
    D n2 는 디스크 3, 스트라입 0 인 경우의 새로운 사용자 데이터,
    D n3 는 디스크 4, 스트라입 0 인 경우의 새로운 사용자 데이터인, 패러티 캐쉬 운영 방법.
  6. 제 2 항에 있어서, 상기 기록 방식이 파트 스트라입(PART_OF_STRIPE) 방식인 경우,
    데이터 스트라입 시작 블록 주소(data stripe start block address)를 사용하여 가상 패러티 블록 주소(virtual parity block address: VPBA)를 구하는 단계;
    상기 가상 패러티 블록 주소를 사용하여 패러티의 히트(hit) 상태를 확인하는 단계; 및
    새로운 패러티를 계산하는 단계를 포함하는, 패러티 캐쉬 운영 방법.
  7. 제 6 항에 있어서, 상기 기록 방식이 파트 스트라입 방식이고 상기 패러티의 상태가 미스(miss) 상태인 경우에,
    패러티 캐쉬 라인을 할당하는 단계;
    가상 패러티 블록 주소(VPBA)를 사용하여 물리적 패러티 블록 주소(physical parity block address: PPBA)를 구하는 단계;
    오울드(old) 패러티를 디스크에서 패러티 캐쉬로 읽어들여 상기 캐쉬 라인에 저장하는 단계; 및
    새로운 패러티를 계산하는 단계를 포함하는, 패러티 캐쉬 운영 방법.
  8. 제 6 항 또는 제 7 항에 있어서, 상기 새로운 패러티 계산은,
    식에 의하여 이루어지며,
    이 때,P n 은 뉴 패러티,
    D n1 는 디스크 2, 스트라입 0 인 경우의 새로운 사용자 데이터,
    D o1 는 디스크 2, 스트라입 0 인 경우의 오울드 사용자 데이터,
    P o 는 오울드 패러티인, 패러티 캐쉬 운영 방법.
  9. 제 8 항에 있어서, 상기 패러티의 히트 상태를 확인하여, 그 결과가 히트이거나 미스인 경우, 해당 캐쉬 라인에 락(Lock)을 걸어 캐쉬 라인을 배타적으로 사용하는, 패러티 캐쉬 운영 방법.
  10. 레이드 (RAID) 시스템의 성능 향상을 위하여,
    패러티 정보를 저장하는 영역;
    캐쉬를 제어하는 태그(tag); 및
    상기 태그 중에서 캐쉬 라인의 상태를 바탕으로 정의된 캐쉬 프로토콜을 구비하는, 패러티 캐쉬.
  11. 제 10 항에 있어서 상기 패러티 정보 저장 영역과 태그는 초기화 과정을 거친 후 메모리의 일정 영역에 위치하는, 패러티 캐쉬.
  12. 제 11 항에 있어서, 상기 캐쉬 프로토콜의 라인 상태는, 패리티 캐쉬의 초기화시의 상태인 I(INVALID), 임의 스트라입의 전체 유저 데이터가 갱신되는 경우의 상태인 B(BLANK), 패러티 캐쉬 히트가 발생한 경우의 라인 상태인 O(OLD), 패러티계산이 종료된 상태인 N(NEW)의 상태 가운데 하나를 가지는, 패러티 캐쉬.
KR1019990005484A 1999-02-19 1999-02-19 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법 KR100321987B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990005484A KR100321987B1 (ko) 1999-02-19 1999-02-19 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990005484A KR100321987B1 (ko) 1999-02-19 1999-02-19 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법

Publications (2)

Publication Number Publication Date
KR20000056291A KR20000056291A (ko) 2000-09-15
KR100321987B1 true KR100321987B1 (ko) 2002-02-04

Family

ID=19574545

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990005484A KR100321987B1 (ko) 1999-02-19 1999-02-19 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법

Country Status (1)

Country Link
KR (1) KR100321987B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698748B2 (en) 2020-10-30 2023-07-11 SK Hynix Inc. Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100423812B1 (ko) * 2001-12-20 2004-03-22 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
JP2006171957A (ja) * 2004-12-14 2006-06-29 Fujitsu Ltd ストレージ制御装置および方法
CN107133123A (zh) * 2017-04-28 2017-09-05 郑州云海信息技术有限公司 一种关于pmc‑raid卡奇偶校验错误的注错测试的方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152499A (ja) * 1993-10-05 1995-06-16 Hitachi Ltd ディスクアレイ装置におけるパリティ格納方法、障害回復方法およびディスクアレイ装置
JPH0934651A (ja) * 1995-07-20 1997-02-07 Hitachi Ltd ディスクアレイ装置
KR970022765A (ko) * 1995-10-23 1997-05-30 김영환 알에이아이디(raid) 제어기 및 데이터 기록 방법
JPH09330180A (ja) * 1996-06-10 1997-12-22 Hitachi Ltd コンピュータシステムのディスクアレイ装置
JPH1091363A (ja) * 1996-09-17 1998-04-10 Hitachi Ltd パリティ生成方式及びそれを用いたディスクアレイ制御装置
US5742752A (en) * 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete
JPH10320128A (ja) * 1997-05-21 1998-12-04 Oki Electric Ind Co Ltd ディスクアレイ装置の制御方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete
JPH07152499A (ja) * 1993-10-05 1995-06-16 Hitachi Ltd ディスクアレイ装置におけるパリティ格納方法、障害回復方法およびディスクアレイ装置
JPH0934651A (ja) * 1995-07-20 1997-02-07 Hitachi Ltd ディスクアレイ装置
KR970022765A (ko) * 1995-10-23 1997-05-30 김영환 알에이아이디(raid) 제어기 및 데이터 기록 방법
US5742752A (en) * 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
JPH09330180A (ja) * 1996-06-10 1997-12-22 Hitachi Ltd コンピュータシステムのディスクアレイ装置
JPH1091363A (ja) * 1996-09-17 1998-04-10 Hitachi Ltd パリティ生成方式及びそれを用いたディスクアレイ制御装置
JPH10320128A (ja) * 1997-05-21 1998-12-04 Oki Electric Ind Co Ltd ディスクアレイ装置の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698748B2 (en) 2020-10-30 2023-07-11 SK Hynix Inc. Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller

Also Published As

Publication number Publication date
KR20000056291A (ko) 2000-09-15

Similar Documents

Publication Publication Date Title
US9684591B2 (en) Storage system and storage apparatus
US5895485A (en) Method and device using a redundant cache for preventing the loss of dirty data
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US7861035B2 (en) Method of improving input and output performance of raid system using matrix stripe cache
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
US5522032A (en) Raid level 5 with free blocks parity cache
US5193184A (en) Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US7543110B2 (en) Raid controller disk write mask
US7117310B2 (en) Systems and methods for cache synchronization between redundant storage controllers
US6341331B1 (en) Method and system for managing a raid storage system with cache
US9280478B2 (en) Cache rebuilds based on tracking data for cache entries
US6886068B2 (en) Disk array apparatus and data update method for storing tag blocks
US7849254B2 (en) Create virtual track buffers in NVS using customer segments to maintain newly written data across a power loss
US20020118582A1 (en) Log-structure array
US6993676B2 (en) Method and apparatus for fast initialization of redundant arrays of storage devices
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
US7552282B1 (en) Method, computer readable medium, and data storage system for selective data replication of cached data
US7058784B2 (en) Method for managing access operation on nonvolatile memory and block structure thereof
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
KR100321987B1 (ko) 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
JP3008801B2 (ja) 記憶装置システムおよびディスクアレイ制御装置
JP3202550B2 (ja) ディスクアレイサブシステム
JP2002055784A (ja) フォールトトレラントの記憶装置にデータを記憶するための方法、ならびにそのための記憶装置およびコントローラ
JP2004227594A (ja) 計算機システムおよび二次記憶装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111226

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee