KR20120029996A - 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체 - Google Patents

컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체 Download PDF

Info

Publication number
KR20120029996A
KR20120029996A KR1020110087174A KR20110087174A KR20120029996A KR 20120029996 A KR20120029996 A KR 20120029996A KR 1020110087174 A KR1020110087174 A KR 1020110087174A KR 20110087174 A KR20110087174 A KR 20110087174A KR 20120029996 A KR20120029996 A KR 20120029996A
Authority
KR
South Korea
Prior art keywords
data
state
parity
unit
storage unit
Prior art date
Application number
KR1020110087174A
Other languages
English (en)
Other versions
KR101285900B1 (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 가부시끼가이샤 도시바
Publication of KR20120029996A publication Critical patent/KR20120029996A/ko
Application granted granted Critical
Publication of KR101285900B1 publication Critical patent/KR101285900B1/ko

Links

Images

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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/1073Problems due to wear-out failures 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/1092Single disk raid, i.e. RAID with parity on a single disk

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)

Abstract

일 실시예에 따르면, 컨트롤러는 제1 데이터 기억부 및 제2 데이터 기억부를 포함하는 기억 장치에의 기록 및 이 기억 장치로부터의 판독을 제어한다. 제2 데이터 기억부는 사용자 데이터와, 사용자 데이터의 패리티 데이터를 기억한다. 제1 데이터 기억부는 패리티 데이터를 기억한다. 컨트롤러는, 패리티 갱신부와 패리티 기록부를 포함한다. 패리티 갱신부는, 패리티 데이터가 갱신될 때, 갱신된 패리티 데이터를 제1 데이터 기억부에 기록한다. 패리티 기록부는, 특정 요건이 만족되면, 제1 데이터 기억부에 기록된 패리티 데이터를 판독하고, 이와 같이 판독된 패리티 데이터를 제2 데이터 기억부에 기록한다.

Description

컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체{CONTROLLER, STORAGE APPARATUS, AND COMPUTER READABLE MEDIUM}
[관련 출원들의 교차 참조]
본 출원은, 2010년 9월 17일 출원된 일본 특허 출원 제2010-209758호에 기초하며, 이로부터의 우선권의 이익을 주장하며, 그 전체 내용이 여기서 참조용으로 사용되었다.
여기서 설명된 실시예들은, 일반적으로 컨트롤러, 기억 장치, 및 컴퓨터 프로그램 제품에 관한 것이다.
데이터 기억 장치는 높은 신뢰성을 가질 것이 요구된다. 데이터 기억 장치는, RAID(Redundant Arrays of Inexpensive Disks) 5와 같은 구성을 적용함으로써, 데이터 복원을 실행할 수 있다. 이에 따라, 복수의 데이터 기억 장치들을 조합한 기억 시스템 전체로서의 신뢰성이 향상될 수 있다.
그러나, 종래 기술에 따르면, 복수의 데이터 기억 장치들을 조합한 기억 시스템 전체로서의 신뢰성이 향상될 수 있지만, 단일 장치로서의 데이터 기억 장치의 신뢰성은 향상될 수 없다.
실시예들의 목적은, 단일 장치로서의 데이터 기억 장치의 신뢰성이 향상될 수 있는 컨트롤러, 기억 장치, 및 컴퓨터 프로그램 제품을 제공하는 것이다.
일반적으로, 일 실시예에 따르면, 컨트롤러는, 제1 데이터 기억부 및 제2 데이터 기억부를 포함하는 기억 장치로의 기록 및 이 기억 장치로부터의 판독을 제어한다. 제2 데이터 기억부는 사용자 데이터와, 사용자 데이터의 패리티(parity) 데이터를 기억한다. 제1 데이터 기억부는 패리티 데이터를 기억한다. 컨트롤러는 패리티 갱신부와 패리티 기록부를 포함한다. 패리티 갱신부는, 패리티 데이터가 갱신될 때에, 갱신된 패리티 데이터를 제1 데이터 기억부에 기록한다. 패리티 기록부는, 특정 요건이 만족되면, 제1 데이터 기억부에 기록된 패리티 데이터를 판독하고, 이와 같이 판독된 패리티 데이터를 제2 데이터 기억부에 기록한다.
상술된 컨트롤러에 따르면, 단일 장치로서의 데이터 기억 장치의 신뢰성이 향상될 수 있다.
도 1은 제1 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 2는 제1 데이터 기억부의 구성예의 개략도이다.
도 3은 제2 데이터 기억부의 구성예의 개략도이다.
도 4는 제1 상태 기억부의 구성예의 개략도이다.
도 5는 제2 상태 기억부의 구성예의 개략도이다.
도 6은 제1 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름도이다.
도 7은 제1 실시예에 따른, 기억 영역을 제2 상태로 변경하는 처리의 흐름도이다.
도 8은 제1 실시예에 따른 패리티 기록 처리의 흐름도이다.
도 9는 제2 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 10은 제3 상태 기억부의 구성예의 개략도이다.
도 11은 제2 실시예에 따른, 기억 영역을 제2 상태로 변경하는 처리의 흐름도이다.
도 12는 제2 실시예에 따른 패리티 기록 처리의 흐름도이다.
도 13은 제3 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 14는 제4 상태 기억부의 구성예의 개략도이다.
도 15는 제3 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름도이다.
도 16은 제3 실시예에 따른 패리티 기록 처리의 흐름도이다.
도 17은 제4 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 18은 제4 실시예에 따른 패리티 기록 처리의 흐름도이다.
도 19는 제5 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 20은 제5 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름도이다.
도 21은 제5 실시예에 따라 패리티 데이터를 복원하는 처리예의 흐름도이다.
도 22는 제6 실시예에 따른 데이터 기억 장치의 기능 블록도이다.
도 23은 기억 영역들의 상태와 데이터의 보호 상태 간의 관계를 나타내는 개략도이다.
도 24는 제6 실시예에 따른 차분 반복 정정 처리의 예의 흐름도이다.
첨부 도면을 참조하여, 데이터 기억 장치의 예시적인 실시예를 이하에 상세히 설명한다.
제1 실시예
제1 실시예에 따른 데이터 기억 장치의 단일 장치(이하, "데이터 기억 장치")의 신뢰성을 향상시키기 위하여, 데이터 기억 장치는, RAID(Redundant Array of Inexpensive Disk) 5와 같은 구조(D. Patterson, G. Gibson 및 R. Katz, "A Case for Redundant Arrays of Inexpensive Disks(RAID)", 1988년 6월, 1988 ACM SIGMOD의 프로시딩(proceedings), pp. 109-116에 설명된)를 내부에 포함하도록 구성되어, 데이터 기억 장치 내에서 데이터 복원을 달성한다.
데이터 기억 장치는 또한 저비용화가 요구된다. 용량 대비 가격비가 비교적 저렴한 기억 매체가 자주 이용된다. 용량 대비 가격비가 비교적 저렴한 이러한 기억 매체는, 데이터의 기록 속도가 비교적 느린 경우가 많다.
데이터 기억 장치가 RAID 5와 같은 구성을 채용하는 경우, 호스트 장치에 의하여 기록이 요청된 사용자 데이터의 기억 매체로의 기록량에 비하여, 데이터 복원 부호(이후, "패리티") 데이터의 기록량이 많아진다. 데이터 기억 장치 내에서 기억 매체 자체로의 데이터 기록 속도 대역에는 상한이 있기 때문에, 데이터 기억 장치가 RAID 5와 같은 구성을 채용하는 경우, 결과로서 사용자 데이터의 기록 속도가 늦어진다는 문제점이 생긴다.
NAND형 플래시 메모리와 같은 일부 기억 매체는, 기억 매체에 포함된 기억 소자의 수명이 데이터의 재기록의 횟수에 따라 변한다고 말해지고 있다. 이러한 기억 매체를 이용한 데이터 기억 장치에서, 패리티 데이터의 기록량이 많아지면, 데이터 기억 장치의 설계 수명이 줄어든다는 문제점이 있다.
상술된 사정으로, 데이터 기억 장치가 RAID 5와 같은 구성을 채용한 경우, 사용자 데이터의 기억 매체로의 기록량에 비하여, 패리티 데이터의 기억 매체로의 기록량을 삭감시키는 것이 요구된다.
따라서, 본 실시예는, 사용자 데이터와 패리티 데이터를 기억하는 기억 매체(제2 데이터 기억부) 외에, 패리티 데이터만을 기억하는 기억 매체(제1 데이터 기억부)를 포함한다. 패리티 데이터 갱신시에는, 제1 데이터 기억부는 갱신된 패리티 데이터를 기억한 후, 특정 타이밍에 제1 데이터 기억부에 기억된 패리티 데이터가 제2 데이터 기억부에 기록된다. 따라서, 사용자 데이터의 기억 매체로의 기록량에 비하여, 패리티 데이터의 기억 매체로의 기록량이 삭감될 수 있다.
도 1은, 제1 실시예에 따른 데이터 기억 장치(100)의 구성예를 도시하는 기능 블록도이다. 도 1에 도시된 바와 같이, 데이터 기억 장치(100)는, 제1 데이터 기억부(151), 제1 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 상태 갱신부(120), 컨트롤러(110), 및 패리티 연산부(130)를 포함한다. 컨트롤러(110)는, 패리티 갱신부(111)와 패리티 기록부(112)를 포함한다.
제1 데이터 기억부(151)는, 도 2에 도시된 바와 같이, 적어도 하나의 기억 영역을 포함한다. 각 기억 영역은 그 내에 패리티 데이터를 기억한다. 제1 데이터 기억부(151)는 복수의 기억 영역들을 포함할 수도 있고, 기억 영역들 각각은 그 내에 패리티 데이터를 기억할 수도 있다. 즉, 데이터 기억 장치(100)는 복수의 패리티 그룹들을 가질 수도 있다. 패리티 그룹은, 특정 패리티 데이터에 의해서 보호된 사용자 데이터를 내부에 기억하는 기억 영역들의 집합을 의미한다. 데이터 기억 장치(100)는, 복수의 패리티 그룹들을 갖는 경우, 이후에 설명하는 각종 정보의 복수의 피스(piece)들을 패리티 그룹수에 따라서 갖는다. 데이터 기억 장치(100)가 복수의 패리티 그룹들을 갖는 경우는, 이후의 구성들과 처리들이 이에 따라 제공될 수도 있다.
제1 액세스 제어부(101)는, 제1 데이터 기억부(151)를 판독 또는 제1 데이터 기억부(151)로의 기록을 제어한다.
제2 데이터 기억부(152)는 도 3에 도시된 바와 같이, 복수의 기억 영역들을 포함한다. 각 기억 영역은 그 내에 사용자 데이터 또는 패리티 데이터를 기억한다. 기억 영역들 중, 사용자 데이터를 기억하는 기억 영역은 2개의 상태들, 즉 제1 상태와 제2 상태를 갖는다. 제1 상태는, 기억 영역에 기억된 사용자 데이터가 제1 데이터 기억부(151)에 의하여 기억된 패리티 데이터에 의해서 보호되어 있는 상태이다. 제2 상태는, 기억 영역에 기억된 사용자 데이터가 제1 데이터 기억부(151)에 의하여 기억된 패리티 데이터에 의해서 보호되어 있지 않은 상태이다.
제2 액세스 제어부(102)는, 제2 데이터 기억부(152)의 판독 또는 제2 데이터 기억부(152)로의 기록을 제어한다.
제2 데이터 기억부(152)는, 제1 데이터 기억부(151)에 대하여 특성면에서 상대적으로 떨어지도록 구성될 수도 있다. 예컨대, 제2 데이터 기억부(152)의 데이터 기록 속도는 제l 데이터 기억부(151)에 대하여 상대적으로 떨어질 수도 있다. 제2 데이터 기억부(152)가, 수명이 데이터의 기록 횟수에 의해서 좌우되는 기억 소자들을 포함하는 다른 경우에서, 제2 데이터 기억부(152)는 제1 데이터 기억부(151)에 대하여 데이터의 기록 내구성(durability)의 횟수의 면에서 상대적으로 떨어질 수도 있다. 제2 데이터 기억부(152)가, 데이터 기록 속도가 데이터의 판독 속도에 비하여 상대적으로 떨어지는 기억 소자들을 포함하는 다른 경우에서, 제2 데이터 기억부(152)는, 제1 데이터 기억부(151)에 대하여 데이터의 판독 속도에 대한 데이터 기록 속도의 열등 정도의 면에서 상대적으로 떨어질 수도 있다. 특성들의 예는 이들 예들에 한정되지 않는다.
제1 상태 기억부(153)는 그 내에 제1 상태 집합 정보를 기억한다. 제1 상태 집합 정보는, 제2 데이터 기억부(152)에 포함된 기억 영역들 중, 제1 상태의 기억 영역들의 집합(제1 상태 집합)을 식별하는 정보(식별 정보)이다. 제1 상태 집합 정보는, 예컨대 도 4에 도시된 바와 같이, 기억 영역들의 식별자들의 리스트 구조로 형성될 수도 있다.
제3 액세스 제어부(103)는, 제1 상태 기억부(153)에의 액세스를 제어한다. 제1 상태 기억부(153)에의 액세스는, 제1 상태 기억부(153)에 의하여 기억된 제1 상태 집합 정보의 판독, 제1 상태 기억부(153)가 기억하는 제1 집합 정보에의 요청원으로 지정된 기억 영역 정보의 추가, 및 제1 상태 기억부(153)가 기억하는 제1 집합 정보부터의 요청원으로 지정된 기억 영역 정보의 삭제를 포함한다.
제2 상태 기억부(154)는 그 내에 제2 상태 집합 정보를 기억한다. 제2 상태 집합 정보는, 제2 데이터 기억부(152)에 포함된 기억 영역들 중, 제2 상태의 기억 영역들의 집합(제2 상태 집합)을 식별하는 정보이다. 제2 상태 집합 정보는, 예컨대 도 5에 도시된 바와 같이, 기억 영역들의 식별자들의 리스트 구조로 형성될 수도 있다.
제4 액세스 제어부(104)는 제2 상태 기억부(154)에의 액세스를 제어한다. 제2 상태 기억부(154)에의 액세스는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보의 판독, 제2 상태 기억부(154)가 기억하는 제2 집합 정보에의 요청원으로 지정된 기억 영역 정보의 추가, 및 제2 상태 기억부(154)가 기억하는 제2 집합 정보부터의 요청원으로 지정된 기억 영역 정보의 삭제를 포함한다.
패리티 연산부(130)는, 지시원으로부터 접수된 복수의 입력 데이터에 패리티 연산을 수행하고, 연산 결과를 지시원으로 반환한다. 패리티 연산은, 패리티 데이터를 생성할 때, 패리티 데이터를 갱신할 때, 데이터를 복원할 때 등에서 실행되는 연산이고, 예컨대 배타적 OR 연산과 같은 연산들을 포함한다. 패리티 연산으로서 배타적 OR 연산을 이용하는 예를 이하에 설명하지만, 적용 가능한 패리티 연산은 여기에 한정되지 않는다. 또한, 패리티 연산부(130)는 데이터 기억 장치(100) 외부에 제공되도록 구성될 수 있다.
상태 갱신부(120)는, 필요에 따라, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보의 판독을 제4 액세스 제어부(104)에 지시하여, 제2 상태 집합 정보를 취득한다. 상태 갱신부(120)는, 취득한 제2 상태 집합 정보가 나타내는 기억 영역들의 집합(제2 상태 집합)으로부터, 제1 상태로 변경되는 기억 영역을 선택하고, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111)에 통지한다.
또한, 상태 갱신부(120)는, 필요에 따라, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보의 판독을 제3 액세스 제어부(103)에 지시하여, 제1 상태 집합 정보를 취득한다. 상태 갱신부(120)는, 취득된 제1 상태 집합 정보가 나타내는 기억 영역들의 집합(제1 상태 집합)으로부터, 제2 상태로 변경되는 기억 영역을 선택하여, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111)에 통지한다.
패리티 갱신부(111)는, 상태 갱신부(120)로부터, 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 통지된 기억 영역이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 통지된 기억 영역이 기억하는 데이터를 취득한다. 패리티 갱신부(111)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시하여, 제1 데이터 기억부(151)에 기록된 패리티 데이터를 취득한다. 패리티 갱신부(111)는, 취득된 패리티 데이터와, 기억 영역이 기억하는 취득된 데이터에 패리티 연산을 수행하도록 패리티 연산부(130)에 지시하여, 갱신된 패리티 데이터를 취득한다. 패리티 갱신부(111)는, 취득된 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록하도록 제1 액세스 제어부(101)에 지시한다. 패리티 갱신부(111)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보로부터 통지된 기억 영역에 관한 식별 정보를 삭제하도록 제4 액세스 제어부(104)에 지시한다. 패리티 갱신부(111)는, 통지된 기억 영역에 관한 식별 정보를 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보에 추가하도록 제3 액세스 제어부(103)에 지시한다.
패리티 갱신부(111)는, 상태 갱신부(120)로부터, 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 통지된 기억 영역이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 통지된 기억 영역이 기억하는 데이터를 취득한다. 패리티 갱신부(111)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시하여, 제1 데이터 기억부(151)에 기록된 패리티 데이터를 취득한다. 패리티 갱신부(111)는, 취득된 패리티 데이터와, 기억 영역이 기억하는 취득된 데이터에 패리티 연산을 행하도록 패리티 연산부(130)에 지시하여, 갱신된 패리티 데이터를 취득한다. 패리티 갱신부(111)는, 취득된 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록하도록 제1 액세스 제어부(101)에 지시한다. 패리티 갱신부(111)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보로부터, 통지된 기억 영역에 관한 식별 정보를 삭제하도록 제3 액세스 제어부(103)에 지시한다. 패리티 갱신부(111)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보에, 통지된 기억 영역에 관한 식별 정보를 추가하도록 제4 액세스 제어부(104)에 지시한다.
상술된 바와 같이, 상태 갱신부(120)는, 제2 상태의 기억 영역을 제1 상태로 변경하는 통지와, 제1 상태의 기억 영역을 제2 상태로 변경하는 통지를, 패리티 갱신부(111)에 독립적으로 통지한다. 또한, 패리티 갱신부(111)는, 상태 갱신부(120)로부터의, 제2 상태의 기억 영역을 제1 상태로 변경하는 통지와, 제1 상태의 기억 영역을 제2 상태로 변경하는 통지에 대하여, 독립적으로 패리티 데이터를 갱신한다.
따라서, 패리티 데이터에 의해서 보호되는 사용자 데이터를 기억하는 기억 영역수가 동적으로 변경될 수 있다. 즉, 패리티 그룹에 포함된 기억 영역수가 동적으로 변경될 수 있다.
패리티 기록부(112)는, 미리 또는 동적으로 정해지는 특정 타이밍에, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시하여, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득한다. 다음, 패리티 기록부(112)는, 취득된 패리티 데이터를 제2 데이터 기억부(152)에 기록하도록 제2 액세스 제어부(102)에 지시한다.
미리 또는 동적으로 정해지는 특정 타이밍이란, 예컨대, 미리 정해진 요건이 만족되는 타이밍을 의미한다. 요건으로서는, 예컨대, 특정 기간이 경과할 때마다, 또는 패리티 데이터의 갱신 횟수가 특정 수를 넘는 타이밍 등, 임의의 요건이 적용될 수 있다.
이후, 필요에 따라, "제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시하여, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득하고, 취득된 패리티 데이터를 제2 데이터 기억부(152)에 기록하도록 제2 액세스 제어부(102)에 지시한다"를, 패리티 기록 지시라고 한다.
이상과 같이, 패리티 갱신부(111)는 제1 데이터 기억부(151) 상에서 패리티 데이터를 갱신한다. 또한, 제1 데이터 기억부(151) 상에서의 패리티 데이터 갱신 처리와는 독립적으로, 미리 또는 동적으로 정해지는 특정 타이밍에서, 패리티 기록부(112)는 제1 데이터 기억부(151) 상의 패리티 데이터를 제2 데이터 기억부(152)에 기록한다. 따라서, 패리티 갱신 처리가 수행될 때마다, 갱신된 패리티 데이터가 제2 데이터 기억부(152)에 기록되지 않는다.
제1 데이터 기억부(151)와 제2 데이터 기억부(152)가 전술된 메모리의 특성을 갖는 경우, 제2 데이터 기억부(152)에의 기록을 감소시킴으로써, 데이터 기억 장치(100) 전체로서의 성능의 열화 정도와 수명의 감소 정도가 억제될 수 있다. 상술된 바와 같이, 패리티 갱신 처리가 수행될 때마다, 갱신된 패리티 데이터가 제2 데이터 기억부(152)에 기록되지 않기 때문에, 본 실시예에 따르면, 제2 데이터 기억부(152)에의 기록이 감소될 수 있다. 따라서, 본 실시예에 따르면, 데이터 기억 장치(100) 전체로서의 성능의 열화 정도와 수명의 감소 정도가 억제될 수 있다.
본 실시예에 따르면, 제2 상태의 기억 영역에만, 사용자 데이터의 재기록이 허가된다. 따라서, 예컨대, 제1 상태의 기억 영역에 기억된 사용자 데이터를 재기록하여, 사용자 데이터가 재기록된 후에도 제1 상태를 유지할 필요성이 생길 때, 예컨대 상태 갱신부(120)가 기억 영역을 일단 제2 상태로 변경하도록 지시하고, 도시하지 않는 사용자 데이터 재기록부가 기억 영역의 사용자 데이터의 재기록을 제2 액세스 제어부(102)에 지시하고, 상태 갱신부(120)가 기억 영역을 제1 상태로 변경하도록 지시한다는 절차가 수행된다.
본 실시예의 목적을 일탈하지 않는 범위 내에서, 전술된 일련의 처리들이 조합되어 최적화될 수 있고, 예컨대, 제2 데이터 기억부(152)로부터의 데이터의 판독 횟수가 삭감될 수 있다. 이것은 이후의 실시예에 적용된다. 예컨대, 제2 데이터 기억부(152)의 데이터 A가 데이터 A'로 변경되고, 이 변경과 함께 패리티 데이터가 갱신되는 경우를 생각한다. 최적화하지 않은 방법에 따르면, 변경된 데이터 A'가 제2 데이터 기억부(152)에 기억된 후, 패리티 데이터의 갱신을 위해, 기억된 데이터 A'가 제2 데이터 기억부(152)로부터 판독될 필요가 있다. 이 경우, 변경된 데이터 A'를 RAM(Random Access Memory)과 같은 일시 기억부에 기억한 후, 패리티 데이터의 갱신 시에, 일시 기억부에 기억된 데이터 A'를 이용함으로써, 제2 데이터 기억부(152)로부터의 데이터의 판독 횟수가 삭감될 수 있다.
이와 같이 구성된 제1 실시예에 따른 데이터 기억 장치(100)에 의하여 수행된 처리를 도 6을 참조하여 이하에 설명한다. 도 6은, 제1 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름을 도시하는 흐름도이다.
우선, 상태 갱신부(120)는, 필요에 따라, 제2 상태 집합을 제2 상태 기억부(154)로부터 판독한다(단계 S101). 구체적으로는, 상태 갱신부(120)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보의 판독을 제4 액세스 제어부(104)에 지시한다. 제4 액세스 제어부(104)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보를 판독하고, 상태 갱신부(120)에 출력한다. 상태 갱신부(120)는 제2 상태 집합 정보를 취득한다. 상태 갱신부(120)는, 취득된 제2 상태 집합 정보가 나타내는 기억 영역들의 집합으로부터 제1 상태로 변경되는 기억 영역을 선택하고, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111)에 통지한다(단계 S102).
패리티 갱신부(111)는, 제1 상태로 변경되는 기억 영역에 기록되어 있는 데이터를 판독한다(단계 S103). 구체적으로는, 패리티 갱신부(111)는, 상태 갱신부(120)로부터, 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 통지된 기억 영역이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 통지된 기억 영역이 기억하는 데이터를 판독하고, 패리티 갱신부(111)에 출력한다. 패리티 갱신부(111)는 통지된 기억 영역이 기억하는 데이터를 취득한다.
패리티 갱신부(111)는 제1 데이터 기억부(151)로부터 패리티 데이터를 판독한다(단계 S104). 보다 상세하게는, 패리티 갱신부(111)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시힌다. 제1 액세스 제어부(101)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 판독하고, 패리티 갱신부(111)에 출력한다. 패리티 갱신부(111)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득한다.
패리티 갱신부(111)는, 취득된 패리티 데이터를 갱신한다(단계 S105). 보다 상세하게는, 패리티 갱신부(111)는, 취득된 패리티 데이터와, 기억 영역이 기억하는 취득된 데이터에 패리티 연산을 수행하도록 패리티 연산부(130)에 지시한다. 패리티 연산부(130)는, 지시원으로부터 접수된 복수의 입력 데이터에 패리티 연산을 수행하고, 연산 결과를 지시원으로 반환한다. 패리티 연산은, 패리티 데이터를 생성 또는 갱신할 때, 데이터를 복원할 때 등에서 실행되는 연산이며, 예컨대 배타적 OR 연산의 연산들을 포함한다. 패리티 갱신부(111)는, 갱신된 패리티 데이터를 취득한다. 패리티 갱신부(111)는, 취득된 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록하도록 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는, 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록한다.
패리티 갱신부(111)는, 기억 영역에 관한 상태 정보를 갱신한다(단계 S106). 보다 상세하게는, 패리티 갱신부(111)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보로부터, 통지된 기억 영역에 관한 식별 정보를 삭제하도록 제4 액세스 제어부(104)에 지시한다. 제4 액세스 제어부(104)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보로부터, 패리티 갱신부(111)에 통지된 기억 영역에 관한 식별 정보를 삭제한다. 패리티 갱신부(111)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보에, 통지된 기억 영역에 관한 식별 정보를 추가하도록 제3 액세스 제어부(103)에 지시한다. 제3 액세스 제어부(103)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보에, 패리티 갱신부(111)에 통지된 기억 영역에 관한 식별 정보를 추가한다.
기억 영역을 제2 상태로 변경하는 처리 절차의 예를, 도 7을 참조하여 설명한다. 도 7는, 제1 실시예에 따른, 기억 영역을 제2 상태로 변경하는 처리의 흐름을 도시하는 흐름도이다.
우선, 상태 갱신부(120)는, 필요에 따라서, 제1 상태 집합을 제1 상태 기억부(153)로부터 판독한다(단계 S201). 구체적으로는, 상태 갱신부(120)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보의 판독을 제3 액세스 제어부(103)에 지시한다. 제3 액세스 제어부(103)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보를 판독하고, 상태 갱신부(120)에 출력한다. 상태 갱신부(120)는, 제1 상태 집합 정보를 취득한다. 상태 갱신부(120)는, 취득된 제1 상태 집합 정보가 나타내는 기억 영역들의 집합으로부터, 제2 상태로 변경되는 기억 영역을 선택하여, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111)에 통지한다(단계 S202).
패리티 갱신부(111)는, 제2 상태로 변경되는 기억 영역에 기록되어 있는 데이터를 판독한다(단계 S203). 보다 상세하게는, 패리티 갱신부(111)는, 상태 갱신부(120)로부터, 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 통지된 기억 영역이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 통지된 기억 영역이 기억하는 데이터를 판독하고, 패리티 갱신부(111)에 출력한다. 패리티 갱신부(111)는, 통지된 기억 영역이 기억하는 데이터를 취득한다.
다음에, 패리티 갱신부(111)는, 패리티 데이터를 판독하고(단계 S204), 판독된 패리티 데이터를 갱신한다(단계 S205). 이 처리는, 도 6의 단계들 S104, S105의 처리들과 동일하기 때문에, 상세한 설명은 생략한다.
다음, 패리티 갱신부(111)는, 기억 영역에 관한 상태 정보를 갱신한다(단계 S206). 보다 상세하게는, 패리티 갱신부(111)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보로부터, 통지된 기억 영역에 관한 식별 정보를 삭제하도록 제3 액세스 제어부(103)에 지시한다. 제3 액세스 제어부(103)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보로부터, 패리티 갱신부(111)에 통지된 기억 영역에 관한 식별 정보를 삭제한다. 패리티 갱신부(111)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보에, 통지된 기억 영역에 관한 식별 정보를 추가하도록 제4 액세스 제어부(104)에 지시한다. 제4 액세스 제어부(104)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보에, 패리티 갱신부(111)에 통지된 기억 영역에 관한 식별 정보를 추가한다.
다음에, 패리티 기록 처리의 절차의 예를 도 8을 참조하여 이하에 설명한다. 도 8은, 제1 실시예에 따른 패리티 기록 처리의 흐름을 도시하는 흐름도이다.
우선, 패리티 기록부(112)는, 제1 데이터 기억부(151)로부터 패리티 데이터를 판독한다(단계 S301). 보다 상세하게는, 패리티 기록부(112)는, 미리 또는 동적으로 정해지는 특정 타이밍에서 제1 데이터 기억부(151)에 기록된 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 판독하고, 패리티 기록부(112)에 출력한다. 패리티 기록부(112)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득한다.
패리티 기록부(112)는, 취득된 패리티 데이터를 기록한다(단계 S302). 보다 상세하게는, 패리티 기록부(112)는, 취득된 패리티 데이터를 제2 데이터 기억부(152)에 기록하도록 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 패리티 기록부(112)가 취득한 패리티 데이터를 제2 데이터 기억부(152)에 기록한다.
이와 같이, 제1 실시예에 따른 데이터 기억 장치는, 사용자 데이터의 기억 매체로의 기록량에 비하여, 패리티 데이터의 기억 매체에의 기록량을 삭감할 수 있다.
제2 실시예
제2 실시예에 따른 데이터 기억 장치에서, 제2 상태로 변경된 기억 영역수가, 미리 또는 동적으로 정해지는 임계값을 넘을 때마다, 제1 데이터 기억부(151)로부터 제2 데이터 기억부(152)에 패리티 데이터가 기록된다.
도 9는, 제2 실시예에 따른 데이터 기억 장치(200)의 구성예의 기능 블록도이다. 도 9에 도시된 바와 같이, 데이터 기억 장치(200)는, 제1 데이터 기억부(151), 제1 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 패리티 연산부(130), 상태 갱신부(120-2), 컨트롤러(110--2), 제3 상태 기억부(255), 및 제5 액세스 제어부(205)를 포함한다. 컨트롤러(110-2)는, 패리티 갱신부(111-2)와 패리티 기록부(112-2)를 포함한다. 이미 설명된 기능부들과 동일한 것들에는 동일한 도면 부호를 붙여, 상세한 설명은 생략한다.
제3 상태 기억부(255)는 제2 상태 추가 집합 정보를 기억한다. 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보가 나타낸 제2 상태의 기억 영역들의 집합은, 이하의 2개의 집합들을 포함한다.
(1) 후술되는 패리티 기록부(112-2)가, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 제2 데이터 기억부(152)에 기록하도록 제1 액세스 제어부(101)와 제2 액세스 제어부(102)에 지시한 최종 시점(이후, 최종 패리티 기록 시점이라고 한다) 이전부터 계속하여 제2 상태이어 왔던 기억 영역들의 집합.
(2) 최종 패리티 기록 시점 이후에, 후술하는 상태 갱신부(120-2)에 의하여, 제1 상태 집합 정보가 나타내는 기억 영역들의 집합으로부터, 제2 상태로 변경되는 기억 영역들로서 선택되어, 결과로서 제2 상태가 된 기억 영역들의 집합.
제2 상태 추가 집합 정보란, 최종 패리티 기록 시점 이후에 제2 상태가 된 기억 영역들의 집합(제2 상태 추가 집합)에 관한 정보이다. 제2 상태 추가 집합 정보는, 예컨대, 도 10에 도시된 바와 같은, 기억 영역들의 식별자들의 리스트 구조로 형성된다.
제5 액세스 제어부(205)는, 제3 상태 기억부(255)에의 액세스를 제어한다. 제3 상태 기억부(255)에의 액세스는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보에의 요청원으로 지정된 기억 영역 정보의 추가, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보부터의 요청원으로 지정된 기억 영역 정보의 삭제, 및 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 삭제를 포함한다.
상태 갱신부(120-2)는, 통지처가 패리티 갱신부(111) 대신, 패리티 갱신부(111-2)라는 것을 제외하고, 제1 실시예에 따른 상태 갱신부(120)와 유사하므로, 상세한 설명은 생략한다.
패리티 갱신부(111-2)는, 상태 갱신부(120-2)로부터, 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되는 처리에 관하여, 통지원이 상태 갱신부(120) 대신, 상태 갱신부(120-2)라는 것 이외에는, 패리티 갱신부(111)와 유사하므로, 상세한 설명은 생략한다.
패리티 갱신부(111-2)는, 상태 갱신부(120-2)로부터, 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 패리티 갱신부(111)에 상태 갱신부(120)로부터 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지될 때 수행되는 처리를 수행하는 것 외에, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보에, 통지된 기억 영역에 관한 식별 정보를 추가하도록 제5 액세스 제어부(205)에 지시한다.
패리티 기록부(112-2)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시하여, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-2)는, 취득된 제2 상태 추가 집합 정보에 포함되는 기억 영역에 관한 식별 정보(이하, 영역 정보라 함)의 피스수를 취득한다. 취득된 영역 정보의 피스수가, 미리 또는 동적으로 정해지는 임계값을 넘은 경우, 패리티 기록부(112-2)는, 패리티 기록부(112)가 부여하는 패리티 기록 지시 외에, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 삭제하도록 제5 액세스 제어부(205)에 지시한다.
이와 같이 구성된 제2 실시예에 따른 데이터 기억 장치(200)에 의하여 수행되는 처리를 도 11을 참조하여 이하에 설명한다. 기억 영역을 제1 상태로 변경하는 처리의 흐름은 제1 실시예에 따른 도 6과 유사하므로, 설명은 생략한다. 도 11은, 제2 실시예에 따른, 기억 영역을 제2 상태로 변경하는 처리의 흐름을 도시하는 흐름도이다.
단계 S401에서 단계 S406은, 제1 실시예에 따른 데이터 기억 장치(100)에 의한 단계 S201에서 단계 S206까지의 처리들과 유사한 처리들이므로, 이들 설명은 생략한다.
단계 S407에서, 패리티 갱신부(111-2)는, 제2 상태로 변경되는 기억 영역에 관한 식별 정보를 제2 상태 추가 집합 정보에 추가한다. 보다 상세하게는, 패리티 갱신부(111-2)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보에, 상태 갱신부(120-2)로부터 통지된 기억 영역에 관한 식별 정보를 추가하도록 제5 액세스 제어부(205)에 지시한다. 제5 액세스 제어부(205)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보에, 패리티 갱신부(111-2)에 상태 갱신부(120-2)로부터 통지된 기억 영역에 관한 식별 정보를 추가한다.
다음, 패리티 기록의 처리 절차의 예를 도 12를 참조하여 설명한다. 도 12는, 제2 실시예에 따른 패리티 기록 처리의 흐름을 도시하는 흐름도이다.
우선, 패리티 기록부(112-2)는, 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다(단계 S501). 보다 상세하게는, 패리티 기록부(112-2)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시한다. 제5 액세스 제어부(205)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 판독하고, 패리티 기록부(112-2)에 출력한다. 패리티 기록부(112-2)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-2)는, 취득된 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다.
패리티 기록부(112-2)는, 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값을 넘었는지를 판정한다(단계 S502). 취득된 영역 정보의 피스수가 임계값을 넘지 않은 경우(단계 S502에서 No), 처리가 종료한다.
취득된 영역 정보의 피스수가 임계값을 넘은 경우(단계 S502에서 Yes), 패리티 기록부(112-2)는, 제1 데이터 기억부(151)로부터 패리티 데이터를 판독한다(단계 S503). 보다 상세하게는, 패리티 기록부(112-2)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 판독하고, 패리티 기록부(112-2)에 출력한다. 패리티 기록부(112-2)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득한다.
단계 S504는 도 8의 단계 S302의 처리와 유사한 처리이므로, 상세한 설명은 생략한다.
패리티 기록부(112-2)는, 제3 상태 기억부(255)로부터 제2 상태 추가 집합 정보를 삭제한다(단계 S505). 보다 상세하게는, 패리티 기록부(112-2)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 삭제하도록 제5 액세스 제어부(205)에 지시한다. 제5 액세스 제어부(205)는 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 삭제한다.
제3 실시예
제3 실시예에 따른 데이터 기억 장치에서, 제1 상태로 변경된 기억 영역의 수가, 미리 또는 동적으로 정해지는 임계값을 넘을 때마다, 제1 데이터 기억부(151)로부터 제2 데이터 기억부(152)에 패리티 데이터가 기록된다.
도 13은, 제3 실시예에 따른 데이터 기억 장치(300)의 구성예의 기능 블록도이다. 도 13에 도시된 바와 같이, 데이터 기억 장치(300)는, 제1 데이터 기억부(151), 제1 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 패리티 연산부(130), 상태 갱신부(120-3), 컨트롤러(110-3), 제4 상태 기억부(356), 및 제6 액세스 제어부(306)를 포함한다. 컨트롤러(110-3)는, 패리티 갱신부(111-3)와 패리티 기록부(112-3)를 포함한다. 이미 설명한 기능부들과 동일한 것에는 동일한 도면 부호들을 붙여, 상세한 설명은 생략한다.
제4 상태 기억부(356)는 제1 상태 추가 집합 정보를 기억한다. 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보로 나타낸 제1 상태의 기억 영역들의 집합은 다음의 2개의 집합들을 포함한다.
(1) 후술하는 패리티 기록부(112-3)가, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 제2 데이터 기억부(152)에 기록하도록 제1 액세스 제어부(101)와 제2 액세스 제어부(102)에 지시한 최종 시점(이후, 최종 패리티 기록 시점이라고 함) 이전으로부터 계속하여 제1 상태이어 왔던 기억 영역들의 집합.
(2) 최종 패리티 기록 시점 이후에, 후술하는 상태 갱신부(120-3)에 의하여, 제2 상태 집합 정보가 나타내는 기억 영역들의 집합으로부터, 제1 상태로 변경되는 기억 영역들로서 선택되어, 결과로서 제1 상태가 된 기억 영역들의 집합.
제1 상태 추가 집합 정보는, 최종 패리티 기록 시점 이후에 제1 상태가 된 기억 영역들의 집합(제1 상태 추가 집합)에 관한 정보이다. 제1 상태 추가 집합 정보는, 예컨대 도 14에 도시된 바와 같이, 기억 영역들의 식별자들의 리스트 구조로 형성된다.
제6 액세스 제어부(306)는 제4 상태 기억부(356)에의 액세스를 제어한다. 제4 상태 기억부(356)에의 액세스는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보에의 요청원으로 지정된 기억 영역 정보의 추가, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보로부터 요청원으로 지정된 기억 영역 정보의 삭제, 및 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 삭제를 포함한다.
상태 갱신부(120-3)는, 통지처가 패리티 갱신부(111) 대신, 패리티 갱신부(111-3)라는 것 외에는, 상태 갱신부(120)와 유사하므로, 상세한 설명은 생략한다.
패리티 갱신부(111-3)는, 상태 갱신부(120-3)로부터, 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지되면, 패리티 갱신부(111)에 상태 갱신부(120)로부터 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지될 때 수행되는 처리의 수행 외에, 제4 상태 기억부(356)가 기억하는 제l 상태 추가 집합 정보에, 통지된 기억 영역에 관한 식별 정보를 추가하도록 제6 액세스 제어부(306)에 지시한다.
패리티 갱신부(111-3)는, 상태 갱신부(120-3)로부터, 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지될 때의 처리에 관하여, 통지원이 상태 갱신부(120) 대신에, 상태 갱신부(120-3)라는 것 외에, 패리티 갱신부(111)와 유사하므로, 상세한 설명은 생략한다.
패리티 기록부(112-3)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시하여, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-3)는, 취득된 제1 상태 추가 집합 정보에 포함되는 영역 정보에 관한 식별 정보의 피스수를 취득한다. 취득된 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값을 넘을 때, 패리티 기록부(112-3)는, 패리티 기록부(112)가 부여하는 패리티 기록 지시 외에, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 삭제하도록 제6 액세스 제어부(306)에 지시한다.
이와 같이 구성된 제3 실시예에 따른 데이터 기억 장치(300)에 의하여 수행된 처리를 도 15를 참조하여 설명한다. 도 15는, 제3 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름을 도시하는 흐름도이다.
단계 S601로부터 단계 S606은, 제1 실시예에 따른 데이터 기억 장치(100)에 의한 단계 S101 내지 단계 S106의 처리들과 유사한 처리들이며, 따라서 그 설명을 생략한다.
단계 S607에서, 패리티 갱신부(111-3)는, 제1 상태로 변경되는 기억 영역에 관한 식별 정보를 제1 상태 추가 집합 정보에 추가한다. 보다 상세하게는, 패리티 갱신부(111-3)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보에, 상태 갱신부(120-3)로부터 통지된 기억 영역에 관한 식별 정보를 추가하도록 제6 액세스 제어부(306)에 지시한다. 제6 액세스 제어부(306)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보에, 패리티 갱신부(111-3)에 상태 갱신부(120-3)로부터 통지된 기억 영역에 관한 식별 정보를 추가한다.
기억 영역을 제2 상태로 변경하는 처리의 흐름은, 제1 실시예에 따른 도 7과 유사하므로, 설명을 생략한다.
다음, 패리티 기록의 처리 절차의 예를 도 16을 참조하여 이하에 설명한다. 도 16은, 제3 실시예에 따른 패리티 기록 처리의 흐름을 도시하는 흐름도이다.
우선, 패리티 기록부(112-3)는, 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다(단계 S701). 보다 상세하게는, 패리티 기록부(112-3)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시한다. 제6 액세스 제어부(306)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 판독하여, 패리티 기록부(112-3)에 출력한다. 패리티 기록부(112-3)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-3)는, 취득된 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다.
패리티 기록부(112-3)는, 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값을 넘는지를 판정한다(단계 S702). 취득된 영역 정보의 피스수가 임계값을 초과하지 않으면(단계 S702에서 No), 처리가 종료한다.
취득된 영역 정보의 피스수가 임계값을 넘으면(단계 S702에서 Yes), 패리티 기록부(112-3)는 제1 데이터 기억부(151)로부터 패리티 데이터를 판독한다(단계 S703). 보다 상세하게는, 패리티 기록부(112-3)는 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 판독하여, 패리티 기록부(112-3)에 출력한다. 패리티 기록부(112-3)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 취득한다.
단계 S704는 도 8의 단계 S302의 처리와 유사한 처리이고, 따라서 상세한 설명은 생략한다.
패리티 기록부(112-3)는, 제4 상태 기억부(356)로부터 제1 상태 추가 집합 정보를 삭제한다(단계 S705). 보다 상세하게는, 패리티 기록부(112-3)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 삭제하도록 제6 액세스 제어부(306)에 지시한다. 제6 액세스 제어부(306)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 삭제한다.
제4 실시예
제4 실시예에 따른 데이터 기억 장치에서, 제1 상태로 변경된 기억 영역의 수가 임계값을 넘을 때마다, 또는 제2 상태로 변경된 기억 영역의 수가 임계값을 넘을 때마다, 제1 데이터 기억부(151)로부터 제2 데이터 기억부(152)로 패리티 데이터가 기록된다.
도 17은, 제4 실시예에 따른 데이터 기억 장치(400)의 구성예의 기능 블록도이다. 도 17에 도시된 바와 같이, 데이터 기억 장치(400)는, 제1 데이터 기억부(151), 제1 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 패리티 연산부(130), 상태 갱신부(120-4), 컨트롤러(110-4), 제3 상태 기억부(255), 제5 액세스 제어부(205), 제4 상태 기억부(356), 및 제6 액세스 제어부(306)를 포함한다. 컨트롤러(110-4)는, 패리티 갱신부(111-4)와 패리티 기록부(112-4)를 포함한다. 이미 설명된 기능부들과 동일한 것에는 동일한 도면 부호가 부여되고, 상세한 설명은 생략한다.
상태 갱신부(120-4)는, 통지처가 패리티 갱신부(111) 대신, 패리티 갱신부(111-4)라는 것 이외는, 상태 갱신부(120)와 유사하므로, 상세한 설명은 생략한다.
패리티 갱신부(111-4)는, 상태 갱신부(120-4)로부터, 제1 상태로 변경되는 기억 영역에 관한 식별 정보가 통지될 때의 처리에 관하여, 통지처가 상태 갱신부(120-3) 대신, 상태 갱신부(120-4)라는 것 이외는, 패리티 갱신부(111-3)와 유사하므로, 상세한 설명을 생략한다.
패리티 갱신부(111-4)는, 상태 갱신부(120-4)로부터, 제2 상태로 변경되는 기억 영역에 관한 식별 정보가 통지될 때의 처리에 관하여, 통지원이 상태 갱신부(120-2) 대신, 상태 갱신부(120-4)라는 것 외에는, 패리티 갱신부(111-2)와 유사하므로, 상세한 설명은 생략한다.
패리티 기록부(112-4)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시하여, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-4)는, 취득된 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다. 패리티 기록부(112-4)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시하여, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다. 패리티 기록부(112-4)는, 취득된 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수를 취득한다.
패리티 기록부(112-4)는, 취득된 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값을 넘을 때, 또는 취득된 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값을 넘을 때, 패리티 기록부(112-2)가 부여하는 패리티 기록 지시와, 패리티 기록부(112-2)가 부여하는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 삭제하도록 제5 액세스 제어부(205)에 지시하는 것 외에, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 삭제하도록 제6 액세스 제어부(306)에 지시한다.
이와 같이 구성된 제4 실시예에 따른 데이터 기억 장치(400)에 의한 처리를 도 18을 참조하여 설명한다. 기억 영역을 제1 상태로 변경하는 처리, 및 기억 영역을 제2 상태로 변경하는 처리는, 각각 도 15(제3 실시예) 및 도 11(제2 실시예)과 유사하므로, 설명을 생략한다. 도 18은, 제4 실시예에 따른 패리티 기록 처리의 흐름을 도시하는 흐름도이다.
단계 S801에서, 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 취득된다. 이 처리는, 패리티 기록부(ll2-2) 대신 패리티 기록부(112-4)에 의하여 수행된다는 것 이외는, 도 12의 단계 S501의 처리와 동일하므로, 상세한 설명은 생략한다.
단계 S802에서, 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 취득된다. 이 처리는, 패리티 기록부(112-3) 대신 패리티 기록부(112-4)에 의하여 수행된다는 것 이외는, 도 16의 단계 S701의 처리와 동일하므로, 상세한 설명은 생략한다.
패리티 기록부(112-4)는 영역 정보의 피스수가 임계값을 넘는지를 판정한다(단계 S803). 보다 상세하게는, 패리티 기록부(112-4)는, 단계 S801에서 취득된 제2 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값(제1 임계값)을 넘는지, 또는 단계 S802에서 취득된 제1 상태 추가 집합 정보에 포함되어 있는 영역 정보의 피스수가 미리 또는 동적으로 정해지는 임계값(제2 임계값)을 넘는지를 판정한다. 취득된 영역 정보의 피스수가 임계값을 넘지 않으면(단계 S803에서 No), 처리가 종료한다.
취득된 영역 정보의 피스수가 임계값을 넘는 경우(단계 S803에서 Yes), 패리티 기록부(112-4)는 제1 데이터 기억부(151)로부터 패리티 데이터를 판독한다(단계 S804). 이 처리는, 패리티 기록부(112-2) 대신 패리티 기록부(112-4)에 의하여 수행된다는 것 이외는, 도 12의 단계 S503의 처리와 동일하므로, 상세한 설명은 생략한다.
단계 S805로부터 단계 S806은 제2 실시예에 따른 데이터 기억 장치(200)에 의한 단계 S504로부터 단계 S505의 처리들과 유사한 처리들이므로, 설명을 생략한다. 또한, 단계 S807은, 제3 실시예에 따른 데이터 기억 장치(300)에 의한 단계 S705의 처리와 유사한 처리이므로, 그 설명을 생략한다.
제5 실시예
상술된 특성을 갖는 메모리를 이용한 경우, 일부 경우에서, 제1 데이터 기억부(151)용으로 휘발성 메모리가 이용되고, 제2 데이터 기억부(152)용으로 비휘발성 메모리가 이용된다. 따라서, 예컨대, 데이터 기억 장치의 전원이 절단되면, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터가 소실된다. 이 때문에, 예측되지 못한 전원 절단이 발생하면, 그 후 데이터 기억 장치의 전원이 투입될 때, 전원 절단 전에 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터가 복원되어야 한다.
제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보에 기초하여, 제1 상태의 기억 영역에 기록되어 있는 데이터를 전부 판독하고, 패리티 연산을 수행함으로써, 전원 절단 전에 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터가 복원될 수 있다. 그러나, 패리티 그룹에 다수의 기억 영역들이 포함되는 경우에는, 처리 시간이 증가된다.
제5 실시예에 따르면, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보와, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 이용함으로써, 패리티 데이터 복원의 시간의 단축이 용이해진다.
제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터의 복원을 실행하는 처리는 상기 경우에 한정되지 않는다. 예컨대, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터에 오류가 검출될 때, 또는 다른 이유에 의해, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 복원할 필요가 있을 때, 처리가 수행될 수 있다.
도 19는, 제5 실시예에 따른 데이터 기억 장치(500)의 구성예의 기능 블록도이다. 도 19에 도시된 바와 같이, 데이터 기억 장치(500)는, 제1 데이터 기억부(151), 제1 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 패리티 연산부(130), 상태 갱신부(120-5), 컨트롤러(110-5), 제3 상태 기억부(255), 제5 액세스 제어부(205), 제4 상태 기억부(356), 및 제6 액세스 제어부(306)를 포함한다. 컨트롤러(110-5)는, 패리티 갱신부(111-5), 패리티 기록부(112-4), 및 패리티 복원부(513)를 포함한다. 이미 설명한 기능부들과 동일한 것에는 동일한 도면 부호를 붙이고, 상세한 설명을 생략한다.
패리티 복원부(513)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 복원할 필요가 생길 때, 제2 데이터 기억부(152)에 마지막으로 기록된 패리티 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 취득한다.
SSD(Solid State Drive)에서, 예를 들면 기억 영역마다 소거 횟수 분산을 위하여, 데이터의 피스를 갱신할 때, 일부 경우에서, 갱신전에 데이터가 기록된 기억 영역과는 상이한 기억 영역에 갱신된 데이터가 기록된다. 최종 기록된 패리티 데이터의 취득이란, 상술된 데이터 기록 방식을 이용함으로써 복수 영역들에 패리티 데이터가 기록되어도, 실제로 유효한 패리티 데이터로서 마지막으로 기록되어 있는 패리티 데이터를 취득하는 것을 의미한다.
패리티 복원부(513)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시하여, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다.
패리티 복원부(513)는, 취득된 제2 상태 추가 집합 정보에 대응하는 제2 데이터 기억부(152)의 각 기억 영역들로부터, 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 취득한다.
패리티 복원부(513)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시하여, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다.
패리티 복원부(513)는, 취득된 제1 상태 추가 집합 정보에 대응하는 제2 데이터 기억부(152)의 각 기억 영역들로부터, 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 취득한다.
패리티 복원부(513)는, 제2 데이터 기억부(152)에 취득된 최종 기록된 패리티 데이터, 취득된 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터 그룹, 및 취득된 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터 그룹에 패리티 연산을 행하도록 패리티 연산부(130)에 지시하여, 갱신된 패리티 데이터를 취득한다.
상기 절차의 순서는 패리티 연산의 최종적인 결과가 변하지 않는 범위에서 적절하게 상호 바꿀수 있다.
패리티 복원부(513)는, 취득된 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록하도록 제1 액세스 제어부(101)에 지시한다.
상태 갱신부(120-5)는, 필요에 따라서, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보의 판독을 제4 액세스 제어부(104)에 지시하여, 제2 상태 집합 정보를 취득한다. 상태 갱신부(120-5)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시하여, 제2 상태 추가 집합 정보를 취득한다. 상태 갱신부(120-5)는, 취득된 제2 상태 집합 정보가 나타내는 기억 영역들의 집합에서, 취득된 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 집합으로부터, 제1 상태로 변경되는 기억 영역을 선택하여, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111-5)에 통지한다.
패리티 갱신부(111-5)는, 통지원이 상태 갱신부(120-4) 대신, 상태 갱신부(120-5)라는 것 이외는, 패리티 갱신부(111-4)와 유사하므로, 상세한 설명은 생략한다.
다음에, 이와 같이 구성된 제5 실시예에 따른 데이터 기억 장치(500)에 의하여 수행된 처리를 도 20을 참조하여 이하에 설명한다. 도 20은, 제5 실시예에 따른, 기억 영역을 제1 상태로 변경하는 처리의 흐름을 나타내는 흐름도이다.
우선, 상태 갱신부(120-5)는, 필요에 따라서, 제2 상태 집합을 제2 상태 기억부(154)로부터 판독한다(단계 S901). 구체적으로는, 상태 갱신부(120-5)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보의 판독을 제4 액세스 제어부(104)에 지시한다. 제4 액세스 제어부(104)는, 제2 상태 기억부(154)가 기억하는 제2 상태 집합 정보를 판독하여, 상태 갱신부(120-5)에 출력한다. 상태 갱신부(120-5)는 제2 상태 집합 정보를 취득한다. 상태 갱신부(120-5)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시한다(단계 S902). 제5 액세스 제어부(205)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 판독하여, 상태 갱신부(120-5)에 출력한다. 상태 갱신부(120-5)는 제2 상태 추가 집합 정보를 취득한다. 상태 갱신부(120-5)는, 취득된 제2 상태 집합 정보가 나타내는 기억 영역들의 집합에서, 취득된 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 집합으로부터, 제1 상태로 변경되는 기억 영역을 선택하여, 선택된 기억 영역에 관한 식별 정보를 패리티 갱신부(111-5)에 통지한다(단계 S903).
단계 S904로부터 단계 S908은 제3 실시예에 따른 데이터 기억 장치(300)에 의하여 단계 S603로부터 단계 S607의 처리들과 유사한 처리들이므로, 그 설명을 생략한다.
제1 상태로 변경되는 기억 영역에 제약을 갖게 하는 이유는, 후술되는 패리티 데이터의 복원 시, 제2 상태 추가 집합 정보가 나타내는 기억 영역들이 기억하는 데이터가 필요하기 때문이다. 이 때문에, 본 실시예에 따르면, 제2 상태 집합 정보가 나타내는 기억 영역들의 집합에서, 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 집합에 포함된 제2 상태의 기억 영역들에만, 사용자 데이터의 재기록 처리가 허가된다. 즉, 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합에 포함된 제2 상태의 기억 영역들에는, 사용자 데이터의 재기록 처리가 허가되지 않는다. 이에 따라, 제2 상태 추가 집합 정보가 나타내는 기억 영역들이 기억하는 데이터가 유지될 수 있다.
기억 영역을 제2 상태로 변경하는 처리 절차의 예와, 패리티 기록의 처리 절차의 예는 제4 실시예와 유사하므로, 상세한 설명은 생략한다.
다음, 패리티 데이터를 복원하는 처리 절차의 예를 도 21을 참조하여 이하에 설명한다.
우선, 패리티 복원부(513)는 마지막으로 기록된 패리티 데이터를 판독한다(단계 S1001). 보다 상세하게는, 패리티 복원부(513)는, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터를 복원할 필요가 있을 때, 제2 데이터 기억부(152)에 마지막으로 기록된 패리티 데이터의 판독을, 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 제2 데이터 기억부(152)에 마지막으로 기록된 패리티 데이터를 판독하여, 패리티 복원부(513)에 출력한다. 패리티 복원부(513)는, 제2 데이터 기억부(152)에 마지막으로 기록된 패리티 데이터를 취득한다.
패리티 복원부(513)는, 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억한 데이터를 판독한다. 보다 상세하게는, 패리티 복원부(513)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시한다. 제5 액세스 제어부(205)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 판독하여, 패리티 복원부(513)에 출력한다. 패리티 복원부(513)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다(단계 S1002). 패리티 복원부(513)는, 취득된 제2 상태 추가 집합 정보에 대응하는 제2 데이터 기억부(152)의 각 기억 영역들에 대하여, 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 패리티 복원부(513)가 취득한 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 판독하여, 패리티 복원부(513)에 출력한다. 패리티 복원부(513)는, 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 취득한다(단계 S1003).
패리티 복원부(513)는, 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 판독한다. 보다 상세하게는, 패리티 복원부(513)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시한다. 제6 액세스 제어부(306)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 판독하여, 패리티 복원부(513)에 출력한다. 패리티 복원부(513)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다(단계 S1004). 패리티 복원부(513)는, 취득된 제1 상태 추가 집합 정보에 대응하는 제2 데이터 기억부(152)의 각 기억 영역들에 대하여, 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 패리티 복원부(513)가 취득한 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 판독하여, 패리티 복원부(513)에 출력한다. 패리티 복원부(513)는, 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터를 취득한다(단계 S1005).
패리티 복원부(513)는 패리티 데이터를 갱신한다(단계 S1006). 보다 상세하게는, 패리티 복원부(513)는, 제2 데이터 기억부(152)에 취득된 최종 기록된 패리티 데이터, 취득된 제2 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터 그룹, 및 취득된 제1 상태 추가 집합 정보에 대응하는 기억 영역들이 기억하는 데이터 그룹에, 패리티 연산을 행하도록 패리티 연산부(130)에 지시한다. 패리티 연산부(130)는, 지시원으로부터 접수된 복수의 입력 데이터에 패리티 연산을 수행하여, 연산 결과를 지시원으로 반환한다. 패리티 복원부(513)는 갱신된 패리티 데이터를 취득한다.
패리티 복원부(513)는 패리티 데이터를 기억한다(단계 S1007). 보다 상세하게는, 패리티 복원부(513)는, 취득된 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록하도록 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는 갱신된 패리티 데이터를 제1 데이터 기억부(151)에 기록한다.
이와 같이, 제5 실시예에 따른 데이터 기억 장치는, 제2 상태 추가 집합 정보와 제1 상태 추가 집합 정보를 이용함으로써, 제1 상태의 기억 영역들에 기억된 사용자 데이터 전부를 판독하지 않고, 패리티 데이터를 복원할 수 있다. 이에 따라, 패리티 데이터의 복원 시간의 단축이 달성될 수 있다.
제6 실시예
패리티 데이터에 따라 사용자 데이터를 복원하는 확률이 증가되면, 데이터 기억 장치의 신뢰성이 더욱 향상될 수 있다. 배타적 OR 연산에 의한 패리티 데이터의 경우, 동일한 패리티 그룹 내의 사용자 데이터의 피스가 패리티 데이터로 복원될 수 있고, 동일한 패리티 그룹 내의 사용자 데이터의 2개 이상의 피스들은 패리티 데이터로 복원될 수 없다. 배타적 OR 연산 이외의 연산 방법에 의한 데이터 복원 부호에, 이후의 실시예를 적절히 변형하여 적용할 수 있다.
제6 실시예에 따른 데이터 기억 장치는, 제2 상태 추가 집합 정보와 제1 상태 추가 집합 정보를 이용함으로써, 동일한 패리티 그룹 내의 사용자 데이터의 2개 이상의 피스들의 복원을 달성한다. 이하에서는, 제6 실시예의 따른 사용자 데이터의 복원 방법을 차분 반복 정정이라고 한다.
도 22는 제6 실시예에 따른 데이터 기억 장치(600)의 구성예의 기능 블록도이다. 도 22에 도시된 바와 같이, 데이터 기억 장치(600)는, 제1 데이터 기억부(151), 제l 액세스 제어부(101), 제2 데이터 기억부(152), 제2 액세스 제어부(102), 제1 상태 기억부(153), 제3 액세스 제어부(103), 제2 상태 기억부(154), 제4 액세스 제어부(104), 패리티 연산부(130), 상태 갱신부(120-5), 컨트롤러(110-6), 제3 상태 기억부(255), 제5 액세스 제어부(205), 제4 상태 기억부(356), 및 제6 액세스 제어부(306)를 포함한다. 컨트롤러(110-6)는, 패리티 갱신부(111-5), 패리티 기록부(112-4), 및 패리티 복원부(614)를 포함한다. 이미 설명된 기능부들과 동일한 것들에는 동일한 도면 부호를 붙여, 상세한 설명은 생략한다.
데이터 복원부(614)의 설명을 시작하기 전에, 기억 영역들 및 데이터의 보호상태 간의 관계를 설명한다. 도 23은, 기억 영역들의 상태와, 패리티 데이터에 의한 기억 영역들에 기록되어 있는 데이터의 보호 상태 간의 관계를 도시하는 개략도이다.
도 23에 도시된 바와 같이, 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합(제1 상태 추가 집합)은, 제1 상태 집합 정보가 나타내는 기억 영역들의 집합(제1 상태 집합)에 포함된다. 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합(제2 상태 추가 집합)은, 제2 상태 집합 정보가 나타내는 기억 영역들의 집합(제2 상태 집합)에 포함된다.
도 23에 도시된 바와 같이, 제1 상태 집합은, 제1 데이터 기억부(151)에 기록되어 있는 패리티 데이터로 보호되어 있는 데이터를 기록하는 기억 영역들의 집합이다. 제1 상태 집합에서 제1 상태 추가 집합을 제외한 기억 영역들의 집합과, 제2 상태 추가 집합을 조합한 기억 영역들의 집합은, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터로 보호되어 있는 데이터를 기록하는 기억 영역들의 집합이다.
여기서, 도 23에 도시된 바와 같이, 복원하고자 하는 데이터를 내부에 기억하는 2개의 기억 영역들 중, 하나의 기억 영역(이하, 기억 영역 A로 한다)은, 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합에 포함되고, 다른 기억 영역(이하, 기억 영역 B로 한다)은, 제1 상태 집합에서 제1 상태 추가 집합을 제외한 기억 영역들의 집합에 포함되어 있는 경우, 차분 반복 정정이 실행될 수 있다. 이러한 상태에서, 패리티 데이터로 복원하고자 하는 데이터를 내부에 기억하는 2개의 기억 영역들은 동일한 패리티 그룹(제1 상태 집합)에 포함되어, 패리티 데이터에 의한 통상의 데이터 복원 처리를 통하여 데이터가 복원될 수 없다.
도 22에 도시된 데이터 복원부(614)의 설명으로 돌아간다. 데이터 복원부(614)는, 도시하지 않는 복원 요청원으로부터, 복원하고자 하는 데이터를 내부에 기억하는 2개의 기억 영역들에 관한 식별 정보를 포함하는 차분 반복 정정 요청을 받으면, 2개의 기억 영역들 중, 하나의 기억 영역(기억 영역 A)이 제1 상태 추가 집합에 포함되고, 다른 기억 영역(기억 영역 B)이 제1 상태 집합에서 제1 상태 추가 집합을 제외한 기억 영역들의 집합에 포함되어 있는지를 판정한다.
보다 상세하게는, 데이터 복원부(614)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보의 판독을 제3 액세스 제어부(103)에 지시하여, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보를 취득한다. 데이터 복원부(614)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시하여, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다. 데이터 복원부(614)는, 접수된 차분 반복 정정 요청에 포함된 2개의 기억 영역들 중, 하나의 기억 영역(기억 영역 A)이 취득된 제1 상태 추가 집합 정보에 대응하는 기억 영역들의 집합에 포함되고, 다른 기억 영역(기억 영역 B)이, 취득된 제1 상태 집합 정보가 나타내는 기억 영역들의 집합에서, 취득된 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 기억 영역들의 집합에 포함되는지를 판정한다. 판정 결과가 부정이면, 데이터 복원부(614)는, 도시하지 않는 복원 요청원에, 차분 반복 정정이 수행될 수 없다는 것을 출력한다.
데이터 복원부(614)는 기억 영역 B의 데이터를 복원한다. 데이터 복원부(614)는, 우선, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터를 취득한다.
상세하게는, 데이터 복원부(614)는 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시하여, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다. 데이터 복원부(614)는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 취득한다. 또한, 데이터 복원부(614)는, 취득된 제1 상태 집합이 나타내는 기억 영역들의 집합에서 취득된 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 기억 영역들의 집합과, 취득된 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 조합한 기억 영역들의 집합에서 기억 영역 B의 기억 영역을 제외한 기억 영역들의 집합의 각 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 각 기억 영역들이 기억하는 데이터를 취득한다.
다음, 데이터 복원부(614)는, 제2 데이터 기억부(152)의 취득된 최종 기록된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터로부터, 기억 영역 B의 데이터를 복원한다.
보다 상세하게는, 데이터 복원부(614)는, 제2 데이터 기억부(152)의 취득된 최종 기록된 패리티 데이터와, 취득된 데이터 그룹에, 패리티 연산을 수행하도록 패리티 연산부(130)에 지시하여, 결과로서 복원된 기억 영역 B의 데이터를 취득한다.
데이터 복원부(614)는 기억 영역 A의 데이터를 복원한다. 데이터 복원부(614)는, 우선, 제1 데이터 기억부(151)에 기록된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터를 취득한다. 복원된 데이터는 기억 영역 B의 데이터로서 취급되어야 한다.
보다 상세하게는, 데이터 복원부(614)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터의 판독을 제1 액세스 제어부(101)에 지시하여, 제1 데이터 기억부(151)에 기록된 패리티 데이터를 취득한다. 또한, 데이터 복원부(614)는, 취득된 제1 상태 집합이 나타내는 기억 영역들의 집합에서, 기억 영역 A의 기억 영역과 기억 영역 B의 기억 영역을 제외한 기억 영역들의 집합의 각 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시하여, 각 기억 영역들이 기억하는 데이터를 취득한다.
다음, 데이터 복원부(614)는, 제1 데이터 기억부(151)에 기록된 취득된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터로부터, 기억 영역 A의 데이터를 복원한다.
보다 상세하게는, 데이터 복원부(614)는, 취득된 패리티 데이터, 취득된 데이터 그룹, 및 기억 영역 B의 취득된 복원된 데이터에, 패리티 연산을 수행하도록 패리티 연산부(130)에 지시하여, 결과로서 복원된 기억 영역 A의 데이터를 취득한다.
상기 절차의 순서는 패리티 연산의 최종적인 결과가 변하지 않는 범위에서 적절하게 상호 바꾸어질 수 있다. 예컨대, 패리티 연산의 도중의 연산 결과를 별도로 기억함으로써, 예컨대 제2 데이터 기억부(152)로부터의 데이터 판독 횟수가 삭감된다.
데이터 복원부(614)는, 도시하지 않는 복원 요청원에게, 복원된 기억 영역 A의 데이터와, 복원된 기억 영역 B의 데이터를 반환한다.
이와 같이, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 적절히 이용함으로써, 일부 경우에서 차분 반복 정정에 의해, 동일한 패리티 그룹의 사용자 데이터의 2개 피스들이 때로는 복원될 수 있어, 데이터 기억 장치의 신뢰성이 더욱 향상될 수 있다.
이와 같이 구성된 제6 실시예에 따른 데이터 기억 장치(600)에 의한 처리에 관해서 도 24를 참조하여 설명한다. 기억 영역을 제1 상태로 변경하는 처리 절차의 예, 기억 영역을 제2 상태로 변경하는 처리 절차의 예, 및 패리티 기록의 처리 절차의 예는, 제5 실시예에 따른 것들과 유사하므로, 상세한 설명은 생략한다. 도 24는 제6 실시예에 따른 차분 반복 정정 처리의 예를 도시하는 흐름도이다.
우선, 데이터 복원부(614)는, 차분 반복 정정이 수행될 수 있는지 판정한다(단계 S1101). 즉, 데이터 복원부(614)는, 도시하지 않는 복원 요청원으로부터, 복원하고자 하는 데이터를 내부에 기억하는 2개의 기억 영역들에 관한 식별 정보를 포함하는 차분 반복 정정 요청을 받으면, 2개의 기억 영역들 중, 하나의 기억 영역(기억 영역 A)이 제1 상태 추가 집합에 포함되고, 다른 기억 영역(기억 영역 B)이 제1 상태 집합에서 제1 상태 추가 집합을 제외한 기억 영역들의 집합에 포함되는 지를 판정한다.
보다 상세하게는, 데이터 복원부(614)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보의 판독을 제3 액세스 제어부(103)에 지시한다. 제3 액세스 제어부(103)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 제1 상태 기억부(153)가 기억하는 제1 상태 집합 정보를 취득한다. 데이터 복원부(614)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보의 판독을 제6 액세스 제어부(306)에 지시한다. 제6 액세스 제어부(306)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 제4 상태 기억부(356)가 기억하는 제1 상태 추가 집합 정보를 취득한다. 데이터 복원부(614)는, 접수된 차분 반복 정정 요청에 포함된 2개의 기억 영역들 중, 하나의 기억 영역(기억 영역 A)이 취득된 제1 상태 추가 집합 정보에 대응하는 기억 영역들의 집합에 포함되고, 다른 기억 영역(기억 영역 B)이 취득된 제1 상태 집합 정보가 나타내는 기억 영역들의 집합에서, 취득된 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 기억 영역들의 집합에 포함되는지를 판정한다.
판정 결과가 부정인 경우(단계 S1101에서 No), 데이터 복원부(614)는, 도시하지 않는 복원 요청원에, 차분 반복 정정이 수행될 수 없다는 것을 출력하고, 처리를 종료한다. 판정 결과가 긍정인 경우(단계 S1101에서 Yes), 데이터 복원부(614)는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터를 취득한다(단계 S1102). 보다 상세하게는, 데이터 복원부(614)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보의 판독을 제5 액세스 제어부(205)에 지시한다. 제5 액세스 제어부(205)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 제3 상태 기억부(255)가 기억하는 제2 상태 추가 집합 정보를 취득한다. 데이터 복원부(614)는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 취득한다.
또한, 데이터 복원부(614)는, 취득된 제1 상태 집합이 나타내는 기억 영역들의 집합에서, 취득된 제1 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 제외한 기억 영역들의 집합과, 취득된 제2 상태 추가 집합 정보가 나타내는 기억 영역들의 집합을 조합한 기억 영역들의 집합에서 기억 영역 B의 기억 영역을 제외한 기억 영역들의 집합의 각 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 지시된 기억 영역들 각각이 기억하는 데이터를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 각 기억 영역들이 기억하는 데이터를 취득한다.
데이터 복원부(614)는, 기억 영역 B의 데이터를 복원한다(단계 S1103). 보다 상세하게는, 데이터 복원부(614)는, 제2 데이터 기억부(152)에 취득된 최종 기록된 패리티 데이터와 취득된 데이터 그룹에, 패리티 연산을 수행하도록 패리티 연산부(130)에 지시한다. 패리티 연산부(130)는, 지시원으로부터 접수된 복수의 입력 데이터에 패리티 연산을 수행하여, 연산 결과를 지시원에 반환한다. 데이터 복원부(614)는, 결과로서 복원된 기억 영역 B의 데이터를 취득한다.
데이터 복원부(614)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터와, 패리티 데이터에 의한 복원에 필요한 사용자 데이터를 취득한다(단계 S1104). 보다 상세하게는, 데이터 복원부(614)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터의 판독을, 제1 액세스 제어부(101)에 지시한다. 제1 액세스 제어부(101)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는, 제1 데이터 기억부(151)에 기록된 패리티 데이터를 취득한다. 데이터 복원부(614)는, 취득된 제1 상태 집합이 나타내는 기억 영역들의 집합에서, 기억 영역 A의 기억 영역과 기억 영역 B의 기억 영역을 제외한 기억 영역들의 집합의 각 기억 영역들이 기억하는 데이터의 판독을 제2 액세스 제어부(102)에 지시한다. 제2 액세스 제어부(102)는, 지시된 기억 영역들 각각이 기억하는 데이터를 판독하여, 데이터 복원부(614)에 출력한다. 데이터 복원부(614)는 기억 영역들 각각이 기억하는 데이터를 취득한다.
데이터 복원부(614)는 기억 영역 A의 데이터를 복원한다(단계 S1105). 보다 상세하게는, 데이터 복원부(614)는, 취득된 패리티 데이터, 취득된 데이터 그룹, 및 기억 영역 B의 취득된 복원된 데이터에 패리티 연산을 수행하도록 패리티 연산부(130)에 지시한다. 패리티 연산부(130)는, 지시원으로부터 접수된 복수의 입력 데이터에 패리티 연산을 수행하여, 연산 결과를 지시원으로 반환한다. 데이터 복원부(614)는, 결과로서 복원된 기억 영역 A의 데이터를 취득한다. 단계 S1102로부터 단계 S1105의 절차의 순서는, 패리티 연산의 최종적인 결과가 변하지 않는 범위에서 적절하게 상호 바꾸어질수 있다. 단계 S1102로부터 단계 S1105의 절차의 순서를 바꿈으로써, 예컨대 패리티 연산의 도중의 연산 결과를 별도 기억함으로써, 예컨대 제2 데이터 기억부(152)로부터의 데이터 판독 횟수가 삭감된다.
데이터 복원부(614)는, 도시되지 않은 복원 요청원에게, 기억 영역 A의 복원된 데이터와 기억 영역 B의 복원된 데이터를 반환한다(단계 S1106).
이와 같이, 제6 실시예에 따른 데이터 기억 장치는, 제2 데이터 기억부(152)에 최종 기록된 패리티 데이터를 이용함으로써, 차분 반복 정정에 의해 동일한 패리티 그룹 내의 사용자 데이터의 2개 피스들을 복원할 수 있다. 이에 따라, 데이터 기억 장치의 신뢰성이 더욱 향상될 수 있다.
상술된 바와 같이, 제1 내지 제6 실시예들에 따르면, 단일 장치로서의 데이터 기억 장치의 신뢰성이 향상될 수 있다. 또한, 패리티 데이터 갱신 시, 제1 데이터 기억부에 갱신된 패리티 데이터가 기억되고, 특정 타이밍에 제1 데이터 기억부에 기억된 패리티 데이터가 제2 데이터 기억부에 기록된다. 이에 따라, 기억 매체에의 사용자 데이터의 기록량에 비해, 기억 매체에의 패리티 데이터의 기록량이 감소될 수 있다.
제1 내지 제6 실시예들에 따른 컨트롤러의 하드웨어 구성을 설명한다. 제1 내지 제6 실시예들에 따른 컨트롤러는, CPU(Central Processing Unit)와 같은 제어 장치, ROM(Read 0nly Memory)와 RAM(Random Access Memory)와 같은 기억 장치, 및 각 부를 접속하는 버스를 포함한다.
제1 내지 제6 실시예들에 따른 컨트롤러로 실행되는 컴퓨터 프로그램은, 예컨대 ROM에 미리 조립됨으로써 제공된다.
제1 내지 제6 실시예들에 따른 컨트롤러로 실행되는 컴퓨터 프로그램은, 인스톨 가능한 형식 또는 실행 가능한 형식의 파일로 CD-R0M(Compact Disk Read 0 nly Memory), 플렉서블 디스크(FD), CD-R(Compact Disk Recordable), 또는 DVD(Digital Versatile Disk)와 같은, 컴퓨터로 판독 가능한 기록 매체에 기록하여 컴퓨터 프로그램 제품으로서 제공되도록 구성될 수 있다.
또한, 제1 내지 제6 실시예들에 따른 컨트롤러로 실행되는 컴퓨터 프로그램은, 인터넷과 같은 네트워크에 접속된 컴퓨터에 저장하여, 네트워크 경유로 다운 로드시킴으로써 제공되도록 구성될 수 있다. 또한, 제1 내지 제6 실시예에 따른 컨트롤러로 실행되는 컴퓨터 프로그램은 인터넷과 같은 네트워크 경유로 제공 또는 배포하도록 구성될 수 있다.
제1 내지 제6 실시예들에 따른 컨트롤러에 의하여 실행되는 컴퓨터 프로그램은, 컴퓨터가 상술된 기억 장치의 각 부들(패리티 갱신부 및 패리티 기록부)로서 기능시키도록 할 수 있다. 이 컴퓨터는, CPU로 컴퓨터 판독 가능한 기억 매체로부터 프로그램을 주 기억 장치에 판독함으로써 컴퓨터 프로그램을 실행할 수 있다.
상술된 하나 이상의 실시예의 컨트롤러에 따르면, 컨트롤러는, 제1 데이터 기억부와 제2 데이터 기억부를 포함하는 기억 장치로의 기록 및 이 기억 장치로부터의 판독을 제어한다. 제2 데이터 기억부는 사용자 데이터와 사용자 데이터의 패리티 데이터를 기억한다. 제1 데이터 기억부는 패리티 데이터를 기억한다. 컨트롤러는 패리티 갱신부와 패리티 기록부를 포함한다. 패리티 데이터가 갱신되면, 패리티 갱신부는 갱신된 패리티 데이터를 제1 데이터 기억부에 기록한다. 특정 요건이 만족되면, 패리티 기록부는 제1 데이터 기억부에 기록된 패리티 데이터를 판독하고, 이와 같이 판독된 패리티 데이터를 제2 데이터 기억부에 기록한다. 따라서, 단일 장치로서의 데이터 기억 장치의 신뢰성이 향상될 수 있다.
특정 실시예들이 설명되었으나, 이들 실시예들은 예로써만 제시되었으나, 본 발명의 범위를 제한하고자 함이 아니다. 여기서 설명된 신규한 실시예들은 다양한 다른 형태들로 구현될 수도 있다. 또한, 본 발명의 사상으로부터 벗어나지 않고 여기서 설명된 실시예들의 형태에서의 다양한 생략, 대체 및 변경이 행해질 수도 있다. 첨부된 청구항 및 이들의 등가물은 본 발명의 범위 및 사상 내에 있을 것인 형태들 또는 변형물을 망라하고자 한다.

Claims (9)

  1. 기억 장치에 포함된 제1 데이터 기억부와 제2 데이터 기억부에의 기록, 및 상기 제1 데이터 기억부와 상기 제2 데이터 기억부로부터의 판독을 제어하는 컨트롤러로서, 상기 제2 데이터 기억부는, 호스트 장치에 의하여 기록이 요청된 사용자 데이터와, 상기 사용자 데이터의 패리티 데이터를 기억하고, 상기 제1 데이터 기억부는 상기 패리티 데이터를 기억하는 것인 상기 컨트롤러로서,
    상기 패리티 데이터가 갱신될 때, 갱신된 패리티 데이터를 상기 제1 데이터 기억부에 기록하는 패리티 갱신부; 및
    특정 요건이 만족될 때, 상기 제l 데이터 기억부에 기록된 상기 패리티 데이터를 판독하고, 이와 같이 판독된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 패리티 기록부
    를 포함하는 컨트롤러.
  2. 제 1 항에 있어서, 사용자 데이터가 기억되어 있는 상기 제2 데이터 기억부의 기억 영역은 제1 상태와 제2 상태를 갖고,
    상기 기억 장치는, 상기 제1 상태의 기억 영역에 관한 식별 정보를 기억하는 제1 상태 기억부, 및 상기 제2 상태의 기억 영역에 관한 식별 정보를 기억하는 제2 상태 기억부를 더 포함하고,
    상기 패리티 갱신부는, 상기 제2 데이터 기억부의 기억 영역이 상기 제1 상태로부터 상기 제2 상태로 변경된 경우, 변경 후에 상기 제1 상태의 기억 영역에 기억된 상기 사용자 데이터의 상기 패리티 데이터를 상기 제1 데이터 기억부에 기록하고, 상기 제2 상태로 변경된 기억 영역에 관한 식별 정보를 상기 제1 상태 기억부로부터 삭제하고, 상기 제2 상태로 변경된 기억 영역에 관한 식별 정보를 상기 제2 상태 기억부에 추가하고,
    상기 패리티 갱신부는, 상기 제2 데이터 기억부의 기억 영역이 상기 제2 상태로부터 상기 제1 상태로 변경된 경우, 변경 후에 상기 제1 상태의 기억 영역에 기억된 상기 사용자 데이터의 상기 패리티 데이터를 상기 제1 데이터 기억부에 기록하고, 상기 제1 상태로 변경된 기억 영역에 관한 식별 정보를 상기 제1 상태 기억부에 추가하고, 상기 제1 상태로 변경된 기억 영역에 관한 식별 정보를 상기 제2 상태 기억부로부터 삭제하는 것인 컨트롤러.
  3. 제 2 항에 있어서, 상기 패리티 기록부는, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후 상기 제1 상태로부터 상기 제2 상태로 변경된 기억 영역의 수가 미리 정해진 제1 임계값을 넘을 때, 또는 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후 상기 제2 상태로부터 상기 제1 상태로 변경된 기억 영역의 수가 미리 정해진 제2 임계값을 넘을 때, 상기 제1 데이터 기억부에 기록된 상기 패리티 데이터를 판독하고, 이와 같이 판독된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 것인 컨트롤러.
  4. 제 3 항에 있어서, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제1 상태로부터 상기 제2 상태로 변경된 기억 영역에 관한 식별 정보를 기억하는 제3 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역에 기억된 상기 사용자 데이터, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제2 상태로부터 상기 제1 상태로 변경된 기억 영역에 관한 식별 정보를 기억하는 제4 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역에 기억된 상기 사용자 데이터, 및 상기 제2 데이터 기억부에 기억된 상기 패리티 데이터에 기초하여 계산된 갱신된 패리티 데이터를 상기 제1 데이터 기억부에 기록하는 패리티 복원부를 더 포함하는 컨트롤러.
  5. 제 3 항에 있어서, 사용자 데이터가 복원되어야 하는 제1 기억 영역이 제4 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역에 포함되고, 그리고 사용자 데이터가 복원되어야 하는 제2 기억 영역이 상기 제1 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역들 중 상기 제4 상태 기억부에 기억되어 있지 않은 식별 정보에 의하여 식별된 기억 영역에 포함되는 경우에,
    상기 제1 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역들에서, 상기 제4 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역을 제외한 기억 영역, 및 제3 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역들에서 상기 제2 기억 영역을 제외한 기억 영역에 기억된 상기 사용자 데이터, 및 상기 제2 데이터 기억부에 기억된 상기 패리티 데이터에 기초하여, 상기 제2 기억 영역의 사용자 데이터를 복원하고, 복원된 사용자 데이터, 상기 제1 상태 기억부에 기억된 식별 정보에 의하여 식별된 기억 영역들에서 상기 제1 기억 영역 및 상기 제2 기억 영역을 제외한 기억 영역에 기억된 상기 사용자 데이터, 및 상기 제1 데이터 기억부에 기억된 상기 패리티 데이터에 기초하여, 상기 제1 기억 영역의 사용자 데이터를 복원함으로써, 제2 기억 영역의 사용자 데이터와 제1 기억 영역의 사용자 데이터를 복원하는 데이터 복원부를 더 포함하고,
    상기 제3 상태 기억부는, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제1 상태로부터 상기 제2 상태로 변경된 기억 영역에 관한 식별 정보를 기억하고, 상기 제4 상태 기억부는, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제2 상태로부터 상기 제1 상태로 변경된 기억 영역에 관한 식별 정보를 기억하는 것인 컨트롤러.
  6. 제 2 항에 있어서, 상기 패리티 기록부는, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제1 상태로부터 상기 제2 상태로 변경된 기억 영역의 수가 미리 정해진 제1 임계값을 넘을 때, 상기 제1 데이터 기억부에 기록된 상기 패리티 데이터를 판독하고, 이와 같이 판독된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 것인 컨트롤러.
  7. 제 2 항에 있어서, 상기 패리티 기록부는, 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록한 후에 상기 제2 상태로부터 상기 제1 상태로 변경된 기억 영역의 수가 미리 정해진 제2 임계값을 넘을 때, 상기 제1 데이터 기억부에 기록된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 것인 컨트롤러.
  8. 기억 장치로서,
    호스트 장치에 의하여 기록이 요청된 사용자 데이터의 패리티 데이터를 기억하는 제1 데이터 기억부;
    상기 사용자 데이터와 상기 패리티 데이터를 기억하는 제2 데이터 기억부; 및
    상기 제1 데이터 기억부와 상기 제2 데이터 기억부에의 기록, 및 상기 제1 데이터 기억부와 상기 제2 데이터 기억부로부터의 판독을 제어하는 컨트롤러
    를 포함하고,
    상기 컨트롤러는,
    상기 패리티 데이터가 갱신될 때, 갱신된 패리티 데이터를 상기 제1 데이터 기억부에 기록하는 패리티 갱신부; 및
    특정 요건이 만족될 때, 상기 제1 데이터 기억부에 기록된 상기 패리티 데이터를 판독하고, 이와 같이 판독된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 패리티 기록부
    를 포함하는 것인 기억 장치.
  9. 프로그램된 명령들을 포함하는 컴퓨터 판독 가능한 매체로서, 기억 장치에 포함된 제1 데이터 기억부와 제2 데이터 기억부에의 기록 및 상기 제1 데이터 기억부와 상기 제2 데이터 기억부로부터의 판독을 제어하는 컴퓨터에 의하여 실행될 때, 상기 제1 데이터 기억부는, 호스트 장치에 의하여 기록이 요청되는 사용자 데이터의 패리티 데이터를 기억하고, 상기 제2 데이터 기억부는, 상기 사용자 데이터와 상기 패리티 데이터를 기억하고, 상기 명령들은 상기 컴퓨터가,
    상기 패리티 데이터가 갱신될 때, 갱신된 패리티 데이터를 상기 제1 데이터 기억부에 기록하는 패리티 갱신부; 및
    특정 요건이 만족될 때, 상기 제1 데이터 기억부에 기록된 상기 패리티 데이터를 판독하고, 이와 같이 판독된 상기 패리티 데이터를 상기 제2 데이터 기억부에 기록하는 패리티 기록부
    로서 기능하도록 하게 하는 것인, 프로그램된 명령들을 포함하는 컴퓨터 판독 가능한 매체.
KR1020110087174A 2010-09-17 2011-08-30 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체 KR101285900B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2010-209758 2010-09-17
JP2010209758A JP5279785B2 (ja) 2010-09-17 2010-09-17 コントローラ、記憶装置、およびプログラム

Publications (2)

Publication Number Publication Date
KR20120029996A true KR20120029996A (ko) 2012-03-27
KR101285900B1 KR101285900B1 (ko) 2013-07-12

Family

ID=44677564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110087174A KR101285900B1 (ko) 2010-09-17 2011-08-30 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체

Country Status (6)

Country Link
US (1) US8549388B2 (ko)
EP (1) EP2431878A1 (ko)
JP (1) JP5279785B2 (ko)
KR (1) KR101285900B1 (ko)
CN (1) CN102411518B (ko)
TW (1) TWI473006B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014011011A1 (ko) * 2012-07-13 2014-01-16 삼성전자(주) 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
JP5651457B2 (ja) 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
US8640013B2 (en) 2011-09-22 2014-01-28 Kabushiki Kaisha Toshiba Storage device
EP2975474B1 (en) * 2014-07-17 2018-12-26 Wago Verwaltungsgesellschaft mbH Industrial control system and method for transferring data
US10481803B2 (en) 2017-06-16 2019-11-19 Western Digital Technologies, Inc. Low write overhead consensus protocol for distributed storage
US10289489B2 (en) * 2017-07-11 2019-05-14 Western Digital Technologies, Inc. Update efficient consensus protocols for erasure coded data stores
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统
KR20200070686A (ko) * 2018-12-10 2020-06-18 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2508317B1 (fr) * 1981-06-26 1986-07-25 Charvin Guy Indicateur de sterilisation
US5235601A (en) * 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
JPH06274282A (ja) * 1993-03-18 1994-09-30 Toshiba Corp 磁気記録装置
JP3270959B2 (ja) * 1993-10-05 2002-04-02 株式会社日立製作所 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
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
US5720025A (en) * 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
JP3373360B2 (ja) * 1996-06-13 2003-02-04 沖電気工業株式会社 ディスクアレイ装置
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US8195760B2 (en) 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7379974B2 (en) * 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
JP3793544B2 (ja) * 2005-07-19 2006-07-05 株式会社日立製作所 ディスクアレイ装置及びその制御方法
TW200807258A (en) * 2006-07-28 2008-02-01 Qnap Systems Inc Data recovery method and system when redundant array of independent disks (RAID) is damaged
JP2008217395A (ja) * 2007-03-05 2008-09-18 Nec Corp ディスクアレイ装置
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
JP2010015197A (ja) 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
JP2010015195A (ja) 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
JP5268710B2 (ja) 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
CN101620517B (zh) * 2009-08-04 2012-05-30 成都市华为赛门铁克科技有限公司 数据写入方法和装置
CN101630281B (zh) * 2009-08-25 2011-11-16 杭州华三通信技术有限公司 一种数据存储的镜像方法和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014011011A1 (ko) * 2012-07-13 2014-01-16 삼성전자(주) 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Also Published As

Publication number Publication date
TWI473006B (zh) 2015-02-11
KR101285900B1 (ko) 2013-07-12
CN102411518A (zh) 2012-04-11
JP5279785B2 (ja) 2013-09-04
CN102411518B (zh) 2014-10-08
US8549388B2 (en) 2013-10-01
TW201229880A (en) 2012-07-16
JP2012064139A (ja) 2012-03-29
EP2431878A1 (en) 2012-03-21
US20120072811A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
KR101285900B1 (ko) 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체
US10705911B2 (en) Storing data in a distributed storage system
US9910748B2 (en) Rebuilding process for storage array
US9128846B2 (en) Disk array device, control device and data write method
US9921912B1 (en) Using spare disk drives to overprovision raid groups
US9053075B2 (en) Storage control device and method for controlling storages
JP5347657B2 (ja) データ記憶プログラム、方法、及び情報処理装置
US20120047111A1 (en) Method and system for parity-page distribution among nodes of a multi-node data-storage system
WO2017173623A1 (zh) 用于处理存储设备中分条的方法和存储设备
US20230259425A1 (en) Storage system
US10019315B2 (en) Control device for a storage apparatus, system, and method of controlling a storage apparatus
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
US20190042134A1 (en) Storage control apparatus and deduplication method
KR101532283B1 (ko) Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법
US10860446B2 (en) Failed storage device rebuild using dynamically selected locations in overprovisioned space
US7293193B2 (en) Array controller for disk array, and method for rebuilding disk array
JP4788492B2 (ja) ストレージ装置の容量拡張方法、プログラム、およびストレージ装置
JP2021114164A (ja) ストレージ装置及びストレージ制御方法
US20110264848A1 (en) Data recording device
JP5949816B2 (ja) キャッシュ制御装置及びその制御方法、ストレージ装置、並びにコンピュータ・プログラム
JP2015501491A (ja) データ復元を容易にするためのトリプルパリティエンコーディング
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US11513712B2 (en) Method for storage management, device and computer program product
JP7056874B2 (ja) 制御装置、ディスクアレイ装置、制御方法、及びプログラム
Le et al. RAID 4SMR: RAID Array with Shingled Magnetic Recording Disk for Mass Storage Systems

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: 20160616

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee