KR101412830B1 - 반도체 저장장치 및 이를 제어하는 방법 - Google Patents

반도체 저장장치 및 이를 제어하는 방법 Download PDF

Info

Publication number
KR101412830B1
KR101412830B1 KR1020130013748A KR20130013748A KR101412830B1 KR 101412830 B1 KR101412830 B1 KR 101412830B1 KR 1020130013748 A KR1020130013748 A KR 1020130013748A KR 20130013748 A KR20130013748 A KR 20130013748A KR 101412830 B1 KR101412830 B1 KR 101412830B1
Authority
KR
South Korea
Prior art keywords
write request
page error
data
stripe
pages
Prior art date
Application number
KR1020130013748A
Other languages
English (en)
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 KR1020130013748A priority Critical patent/KR101412830B1/ko
Application granted granted Critical
Publication of KR101412830B1 publication Critical patent/KR101412830B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 반도체 저장장치 및 이를 제어하는 방법에 관한 것이다.
본 발명의 실시예에 따른 반도체 저장장치 제어방법은 스트라이프 사이즈의 초기값을 설정하는 단계, 데이터의 패턴에 따라 쓰기요청의 평균사이즈 산출하는 단계, 1회의 쓰기요청 시 필요한 페이지 개수를 산출하는 단계, 예측 정정 불가능 페이지 에러 비율 산출하는 단계, 기 설정된 요구 정정 불가능 페이지 에러 비율이 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정하는 단계를 포함한다.

Description

반도체 저장장치 및 이를 제어하는 방법{SEMICONDUCTOR MEMORY AND METHOD OF CONTROLLING THEREOF}
본 발명은 반도체 저장장치 및 이를 제어하는 방법에 관한 것이다.
NAND 플래시 메모리 기반 SSD(Solid State Drive)는 저전력 소모, 빠른 속도, 가벼운 무게 등 다양한 장점을 가지기 때문에 노트북과 개인용 컴퓨터에서부터 서버와 클라우드 시스템으로까지 널리 사용되는 저장장치이다.
특히, 비휘발성 반도체 기억장치 및 그 제어방법에 관한 대한민국등록특허공보 제0547969호(2006년01월24일 등록)에서는 비휘발성 반도체 기억장치에 있어서, 반도체 기판 상에 전기적 스트레스에 의한 전기저항의 변화에 따라 정보를 기억하는 가변저항소자의 일단과 선택 트랜지스터의 드레인을 접속하여 각각 형성된 복수의 메모리셀을, 행방향 및 열방향으로 배열하는 메모리 어레이; 동일 행에서의 상기 복수 메모리셀의 선택 트랜지스터의 게이트에 접속되는 워드선; 동일 행 또는 동일 열에서의 상기 복수 메모리셀의 선택 트랜지스터 소스에 접속되는 소스선; 동일 열에서의 상기 복수 메모리셀의 가변저항소자 타단에 접속되는 비트선; 상기 메모리셀로의 정보 프로그래밍, 상기 메모리셀로부터의 정보 소거 및 판독에 대한 제어를 실행하는 제어회로; 상기 소스선과 비트선에 인가되는 판독 전압과 소거 전압 및 프로그래밍 전압을 스위칭하는 전압스위칭 회로; 상기 메모리셀로부터 정보를 판독하는 판독회로; 및 상기 메모리 어레이에서 프로그래밍 또는 소거되는 메모리셀에 접속된 비트선과 소스선에, 전압스위칭 회로를 통해 상기 비트선과 소스선에 대응되는 프로그래밍전압이나 소거전압이 인가되는 상태에서, 상기 메모리셀에 접속된 워드선에 프로그래밍 또는 소거용 전압펄스를 인가하는 펄스전압인가회로를 포함하여 이루어지는 것을 특징으로 하는 비휘발성 반도체 기억장치를 개시하고 있다.
하지만 현재의 SSD는 안전성이 떨어진다는 점이 가장 큰 문제점으로 지적된다. 이는 SSD의 주요 컴포넌트인 플래시 메모리가 빈번한 에러를 발생시키며 한정된 소거 횟수를 갖는다는 사실에서 기인하며, 최근 한 셀에 두 개 이상의 비트를 저장하는 MLC(Multi Level Cell) 또는 TLC(Triple Level Cell) 플래시 메모리가 시장에서 널리 채택되면서 좀 더 심각한 문제로 인식되고 있는 실정이다.
본 발명이 이루고자 하는 기술적인 과제는 사용자가 원하는 에러 발생률과 수명을 만족할 수 있는 반도체 저장장치 및 이를 제어하는 방법에 관한 것이다.
본 발명의 실시예에 따른 반도체 저장장치 제어방법은 스트라이프 사이즈의 초기값을 설정하는 단계, 상기 데이터의 패턴에 따라 쓰기요청의 평균사이즈를 산출하는 단계, 1회의 쓰기요청 시 필요한 페이지 개수를 산출하는 단계, 예측 정정 불가능 페이지 에러 비율 산출하는 단계, 기 설정된 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정하는 단계를 포함한다.
본 발명의 실시예에 따른 반도체 저장장치 제어방법은 상기 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크면, 상기 스트라이프 사이즈를 증가하는 단계를 더 포함한다.
본 발명의 실시예에 따른 반도체 저장장치는 적어도 두 개 이상의 칩, 상기 칩을 제어하는 제어부를 포함하되, 상기 제어부는 스트라이프 사이즈의 초기값을 설정하고, 상기 데이터의 패턴에 따라 쓰기요청의 평균사이즈와, 1회의 쓰기요청 시 필요한 페이지 개수를 산출하여, 예측 정정 불가능 페이지 에러 비율을 산출한 후, 기 설정된 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정한다.
상기 제어부는 쓰기 버퍼를 더 포함할 수 있다.
상기 제어부는 패리티 생성부를 더 포함할 수 있다.
본 발명의 실시예에 따른 반도체 저장장치 및 이를 제어하는 방법에 의하면 다음과 같은 효과가 있다.
첫째, 본 발명은 최소의 패리티 양으로 사용자가 요구하는 에러 발생률을 만족시키고 반도체 저장장치의 수명을 최대한 연장할 수 있는 효과가 있다.
둘째, 본 발명은 예측된 쓰기 비용을 통해서 반도체 저장장치의 에러 발생률을 도출할 수 있고, 이를 적절한 패리티 쓰기 횟수를 조절하여 최소의 패리티 쓰기 비용으로 사용자가 원하는 에러 발생률을 만족할 수 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 저장장치를 도시한 것이다.
도 2 ~ 도 4는 본 발명에 따른 데이터 쓰기요청 시 패리티 업데이트의 여러 실시예를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 반도체 저장장치 제어방법을 도시한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
또한, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 이외의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.
본 발명에서 “반도체 저장장치”는 반도체를 이용하여 정보를 저장하는 장치를 의미하고, 반도체 저장장치의 일 실시예로 SSD(Solid State Drive, 이하 'SSD'라 한다.)가 대표적이나 본 발명은 이에 한정되지 않음을 밝혀둔다.
이하, 본 발명을 보다 구체적으로 설명하기 위하여 본 발명에 따른 실시예들을 첨부 도면을 참조하면서 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 저장장치를 도시한 것이다.
본 발명의 일 실시예에 따른 반도체 저장장치는 다음의 특징이 있다. 첫째, 스트라이프(Stripe)는 각 칩의 동일한 PPN(Physical Page Number, 이하 'PPN'라 한다.) 페이지들로 구성되며 쓰기요청의 순서에 따라서 스트라이프가 동적으로 생성된다. 이때, 스트라이프가 PPN을 기반으로 구성되므로 스트라이프 맵 테이블(Stripe map table)이 필요 없다. 둘째, 스트라이프 사이즈보다 작은 데이터 요청을 처리하기 위한 패리티(Parity)로 부분 스트라이프 패리티(PP: Partial-stripe Parity, 이하 'PP'라 한다.)를 정의한다.
도 1을 참조하면, 본 발명의 일 실시예 따른 반도체 저장장치는 호스트 인터페이스(10), 제어부(20), 적어도 두 개 이상의 칩(Chip)(30, 31, 32, 33, 34)을 포함한다.
호스트 인터페이스(10)는 반도체 저장장치와 외부 장치의 접속하기 위한 규격으로, 하드웨어적, 소프트웨어적 모두를 포함한다. 특히 제어부(20)는 호스트 인터페이스(10)를 통해서 외부 장치나 소프트웨어로부터 명령 등을 수신한다.
제어부(20)는 칩을 제어하는 부분이다. 특히, 제어부(20)는 칩에 데이터를 쓰거나 칩의 데이터를 지우는 것을 제어한다. 제어부(20)는 내부에 쓰기 시 데이터(또는 정보)를 임시로 저장하는 쓰기 버퍼(Write buffer, 21) 및/또는 패리티를 생성하는 패리티 생성부(Parity generator, 23)를 더 포함할 수 있다.
또한, 제어부(20)는 호스트 시스템으로부터 쓰기요청을 수신하면, 스트라이프 사이즈를 결정하고, 효율적으로 데이터를 칩에 쓰기 위한 제어를 수행한다.
칩은 내부에 데이터를 저장하는 부분이다. 최근 출시되는 대부분의 SSD는 10~16개 이상의 많은 플래시 메모리 칩으로 구성되지만, 본 실시예에서는 반도체 저장장치가 5개의 칩(칩0(Chip0, 30) ~ 칩4(Chip4, 34))을 포함하는 것을 예로 설명하나 본 발명은 복수 개의 칩을 가진 반도체 저장장치에 모두 적용 가능하다.
각 칩에는 다수의 블록(Block)이 있으며 블록당 고정된 개수의 페이지(Page)가 존재한다. PPN(Physical Page Number)은 물리적인 페이지 번호를, PBN(Physical Block Number, 이하 'PBN'라 한다.)은 물리적 블록 번호를 나타내며, Dx는 사용자 데이터의 LBA(Logical Block Addressing)를, Px는 스트라이프에 대한 패리티를 나타내고, Dx'은 Dx의 갱신된 데이터를 나타내며 Px'은 Px의 갱신된 패리티를 나타낸다.
본 실시예에서 스트라이프 사이즈는 5개의 페이지로 구성된다. 즉, 하나의 스트라이프는 각 칩에서 PPN이 동일한 페이지들로 구성되는데, 여기서는 반도체 저장장치가 5개의 칩을 포함하므로, 스트라이프 사이즈는 5개의 페이지이다.
또한, 본 발명의 실시예인 반도체 저장장치는 각 칩의 동일한 PPN 페이지들로 스트라이프가 구성되며, 물리적인 주소를 기준으로 스트라이프를 생성한다. 이하, 본 발명의 실시예인 반도체 저장장치가 데이터 쓰는 방식을 예를 들어 설명하도록 한다.
도 1(a)를 참조하여, 최초에 데이터 D0 ~ D7의 데이터가 각 칩에 쓰여지는 상태를 초기상태는 Chip0(30)의 PPN B0의 PPN0에는 D0, Chip1(31)의 PPN B0의 PPN0에는 D1, Chip2(32)의 PPN B0의 PPN0에는 D2, Chip3(33)의 PPN B0의 PPN0에는 D3가 쓰여지고, Chip4(34)의 PPN B0의 PPN0에는 D0 ~ D3의 패리티인 P0가 쓰여진다. 또한, Chip0(30)의 PPN B0의 PPN1에는 D4, Chip1(31)의 PPN B0의 PPN1에는 D5, Chip2(32)의 PPN B0의 PPN1에는 D6, Chip3(33)의 PPN B0의 PPN1에는 D7가 쓰여지고, Chip4(34)의 PPN B0의 PPN1에는 D4 ~ D7의 패리티인 P1이 쓰여진다. 여기서, 설명의 편의를 위해서 Chip4(34)에 패리티가 쓰여지도록 하였으나, 패리티는 다른 칩에 분산되어 쓰여질 수 있다.
이후, 반도체 저장장치는 초기 상태에서 데이터 D1', D2', D3', D4' 순으로 데이터 쓰기요청을 수신하면, 갱신된 데이터를 쓰기요청이 발생한 순서대로 각 칩의 동일한 PPN 페이지에 인터리빙하여 쓰게 된다. 그리고 스트라이프가 가득 차면 마지막으로 이들 갱신된 데이터에 대한 새로운 패리티를 생성하고 기록한다.
즉, 반도체 저장장치 Chip0(30)의 PPN B0의 PPN2에는 D1', Chip1(31)의 PPN B0의 PPN2에는 D2', Chip2(32)의 PPN B0의 PPN2에는 D3', Chip3(33)의 PPN B0의 PPN2에는 D4'를 쓰고, Chip4(34)의 PPN B0의 PPN2에는 D1' ~ D4'의 패리티인 P2를 쓴다. 이렇게 갱신된 데이터들은 Chip0(30), Chip1(31), Chip2(32), Chip3(33)의 PPN2에 순서대로 쓰여지고, 이들 데이터에 대한 새로운 패리티 P2를 생성하여 Chip4(34)의 PPN2에 기록함으로써 새로운 스트라이프를 구성한다. 이때 발생하는 비용은 3번의 데이터 쓰기와 1번의 패리티 쓰기이다. 이와 같이, 쓰기요청이 발생한 데이터에 대해서만 스트라이프를 구성하고 패리티를 생성하므로 패리티 생성을 위한 읽기 연산이 필요 없고 패리티 쓰기 횟수도 감소한다. 이는 특정 칩에 쓰기가 집중되는 현상도 제거되어 플래시 메모리 수명을 단축시키는 문제도 해결할 수 있다.
도 1(b)를 참조하여, 스트라이프의 일부만 쓰여지는 데이터 쓰기요청에 대하여 반도체 저장장치의 처리과정을 살펴본다.
도 1(a)의 최종상태에서 반도체 저장장치는 호스트 시스템으로부터 데이터 D8, D9 쓰기요청을 수신하면, Chip0(30)의 PPN B0의 PPN3에는 D8, Chip1(31)의 PPN B0의 PPN3에는 D9를 쓰고, 스트라이프가 가득 찰 때까지 기다리지 않고 곧바로 D8, D9 데이터에 대한 패리티 PP를 생생하여 Chip2(32)의 PPN B0의 PPN3에는 D8, D9의 패리티인 PP를 쓴다.
그리고, 일정 시간 후 반도체 저장장치는 D10 쓰기요청을 수신하면, Chip3(33)의 PPN B0의 PPN3에는 D10를 쓰고 스트라이프가 가득 차므로, 전체 스트라이프에 대한 새로운 패리티를 생성하여 Chip4(34)의 PPN B0의 PPN3에 쓰게 된다. 이때, 반도체 저장장치는 쓰기 버퍼에 보관하고 있는 데이터 D8, D9, D10을 이용하므로 패리티 생성을 위한 읽기 연산은 필요 없다. 이와 같이 스트라이프 사이즈보다 작은 쓰기요청에 대하여 생성한 패리티를 본 발명에서 정의한 부분 스트라이프 패리티(PP) 라고 부르며 이를 통해 NVRAM(Non-volatile RAM, 이하 'NVRAM'라 한다.)과 같은 추가적인 하드웨어 없이 반도체 저장장치의 신뢰성을 보장할 수 있다.
이하에서는 패리티 쓰기 비용을 살펴보도록 한다.
먼저, 본 발명이 적용되지 않은, 즉 패리티 쓰기를 하지 않는 반도체 저장장치(이하, 플래시 메모리라 한다.)의 쓰기 비용은 아래의 Write Amplification Factor(WAF)라는 아래 수식1로 도출할 수 있다. 플래시 메모리에서는 제 자리 갱신이 안되므로 가비지 컬렉션(Garbage Collection:GC, 이하 'GC'라 한다.) 연산이 필요하며 이는 사용자 데이터의 쓰기연산 시 수반된다.
Figure 112013011480765-pat00001
여기서, u: GC 연산 시 선택된 블록에서 유효한 블록의 비율(utilization)
Np: 블록내의 페이지 개수
예를 들어, 사용자가
Figure 112013011480765-pat00002
페이지 개수만큼의 쓰기요청을 하는 경우, 플래시 메모리내의 실제 페이지 쓰기횟수는
Figure 112013011480765-pat00003
만큼 증폭된다.
본 발명의 실시예에 따른 반도체 저장장치의 패리티 쓰기 비용을 살펴본다.
이때, 본 발명의 실시예에 따른 반도체 저장장치의 패리티 쓰기 비용 모델을 도출하기 위해 다음 사항을 가정한다. 첫째, 반도체 저장장치는 쓰기요청의 시작 지점이 스트라이프 내에 고르게 분포된다. 둘째, 반도체 저장장치 외에 NVRAM과 같은 추가적인 하드웨어는 없다. 마지막으로, 이상적인 웨어 레벨링(Wear-leveling) 정책에 의해 반도체 저장장치 내 칩에서 모든 블록은 소거 횟수가 동일하다.
본 발명에서는 쓰기 비용 모델링에 필요한 변수를 아래 표 1 과 같이 정의한다.
변수 및 수식 설명
Figure 112013011480765-pat00004
쓰기요청의 평균 크기(Byte)
Figure 112013011480765-pat00005
칩의 페이지 크기(Byte)
Figure 112013011480765-pat00006
1회의 쓰기요청 시 필요한 페이지 개수
Figure 112013011480765-pat00007
하나의 스트라이프를 구성하는 페이지 개수
Figure 112013011480765-pat00008
Figure 112013011480765-pat00009
, 하나의 스트라이프에서 사용자 데이터 용도 페이지 개수(페이지 1개는 패리티 용도)
Figure 112013011480765-pat00010
Figure 112013011480765-pat00011
,
Figure 112013011480765-pat00012
처리 시 스트라이프를 가득 채우고 남은 데이터(단위: 페이지 개수)
Figure 112013011480765-pat00013
Figure 112013011480765-pat00014
의 쓰기요청을 처리할 때 발생하는 패리티 개수
Figure 112013011480765-pat00015
사용자 데이터 1 페이지 쓰기요청 당 추가되는 패리티 쓰기 비용(페이지 개수)
Figure 112013011480765-pat00016
Figure 112013011480765-pat00017
쓰기요청 시 실제 반도체 저장장치 내에서 발생하는 쓰기 연산 횟수
Figure 112013011480765-pat00018
Figure 112013011480765-pat00019
횟수 만큼의 쓰기 연산 발생 시, 반도체 저장장치 내에서 발생하는 블록 소거 연산 횟수
표 1에서
Figure 112013011480765-pat00020
은 반도체 저장장치가 호스트 시스템으로부터 받은 쓰기요청의 평균 크기를 칩의 페이지 개수 단위로 나타낸 것이다. 본 발명은 스트라이프 당 1개의 패리티를 관리하는 구조이므로 스트라이프를 구성하는 페이지 개수(
Figure 112013011480765-pat00021
)에서 패리티 용도의 페이지 1개를 제외하면
Figure 112013011480765-pat00022
가 된다.
도 2 ~ 도 4는 본 발명에 따른 데이터 쓰기요청 시 패리티 업데이트의 여러 실시예를 도시한 것이다.
도 2 ~ 도 4를 참조하면, 사각형은 칩에서 페이지를 나타내며 사각형 내의 D와 P는 각각 데이터와 패리티를 나타내며, 단순하게 표현하기 위하여 P의 위치는 스트라이프내의 마지막 페이지로 고정한 것이다. P의 위치는 스트라이프 내에서 다른 곳에 위치할 수 있다.
본 실시예에서는 하나의 스트라이프를 구성하는 페이지 개수
Figure 112013011480765-pat00023
와 하나의 스트라이프에서 사용자 데이터 용도 페이지 개수
Figure 112013011480765-pat00024
의 값은 각각 5와 4이다.
표 1의 수식
Figure 112013011480765-pat00025
을 이해하기 위해 도 2 ~ 도 4를 참조하면,
Figure 112013011480765-pat00026
를 처리하기 위해서 최소한
Figure 112013011480765-pat00027
만큼의 풀 스트라이프(Full Stripe)가 필요하다. 도 2의 예에서
Figure 112013011480765-pat00028
이 7이고
Figure 112013011480765-pat00029
이 4이므로 1개의 풀 스트라이프가 채워지고 나머지 3개 페이지가 풀 스트라이프의 앞뒤로 헤드(Head)와 테일(Tail)로 배치될 수 있으며 이들의 개수를
Figure 112013011480765-pat00030
로 정의한다. 도 2(2)의 경우 헤드(Head)와 테일(Tail)은 연속적이지 않지만 수식의 일관성을 위해서 연속적이라고 가정하고 도 3에서
Figure 112013011480765-pat00031
의 개수와 시작 위치에 따라서 패리티 갱신 개수가 달라지는 경우를 구분하여 나타낸다.
도 3을 참조하여, 반도체 저장장치에서 패리티 갱신 발생을 살펴보면, 도 3(1)은
Figure 112013011480765-pat00032
이 1인 경우로 항상 1개의 패리티 갱신이 발생한다. 도 3(2)와 같이
Figure 112013011480765-pat00033
이 2인 경우에는 3/4 확률로 1개, 그리고 1/4 확률로 2개의 패리티 갱신이 발생한다. 도 3(3)은 패리티 갱신 1개와 2개 모두 2/4 확률로 발생하며, 도 3(4)는 패리티 갱신 1개는 1/4확률로 패리티 갱신 2개는 3/4 확률로 발생한다.
도 4는
Figure 112013011480765-pat00034
가 6인 경우의 실시예로, 이 경우 음영이 들어간 4개의 데이터 페이지와 나머지 2개의 데이터 페이지가 있다. 음영이 들어간 4개의 데이터 페이지는 항상 1개의 패리티 갱신을 일으키며 나머지 2개의 페이지는 1개 또는 2개의 패리티 갱신이 발생할 수 있으며 이 나머지 페이지로 인한 패리티 갱신 확률은 앞서 도 3에서 살펴본
Figure 112013011480765-pat00035
의 확률과 동일하다.
상기 도 2 ~ 도 4를 일반화하면,
Figure 112013011480765-pat00036
의 값과 스트라이프 내에서 시작 위치에 따라서 패리티 갱신 횟수의 확률이 결정된다.
Figure 112013011480765-pat00037
Figure 112013011480765-pat00038
확률만큼 1개의 스트라이프에 적히고 1개의 패리티를 갱신하며
Figure 112013011480765-pat00039
확률만큼 2개의 스트라이프에 쓰여지며 2개의 패리티 갱신이 발생한다. 그리고,
Figure 112013011480765-pat00040
개수만큼 풀 스트라이프를 채우고 패리티 갱신을 한다. 이 3개의 식을 합하여
Figure 112013011480765-pat00041
당 발생하는 평균 패리티 갱신 횟수
Figure 112013011480765-pat00042
를 구한다.
Figure 112013011480765-pat00043
를 통해 쓰기요청 1페이지당 패리티 오버헤드를 구하고
Figure 112013011480765-pat00044
를 통해
Figure 112013011480765-pat00045
쓰기요청 시 패리티 쓰기를 포함하는 페이지 쓰기 횟수를 구한다. 그리고, GC 오버헤드인 WAF를 추가한 식
Figure 112013011480765-pat00046
를 통해 반도체 저장장치 내에서 발생하는 전체 페이지 쓰기 연산 횟수를 계산한다. 그리고, 워크로드에서 쓰기요청
Figure 112013011480765-pat00047
의 횟수 n을 구하여, 본 발명의 실시예인 반도체 저장장치 내에 적용하는 경우
Figure 112013011480765-pat00048
만큼의 최종 쓰기 연산 횟수를 도출한다. 그리고, 블록 당 페이지 개수
Figure 112013011480765-pat00049
Figure 112013011480765-pat00050
를 나눠서 블록의 사용량을 구하고 칩 내의 모든 블록의 소거 연산이 동일하게 웨어 레벨링(Wear-leveling)된다고 가정하면
Figure 112013011480765-pat00051
횟수만큼의 블록 소거 횟수를 도출할 수 있다.
이상의 모델링은 스트라이프 크기가 커짐에 따라 패리티 적는 횟수가 줄어들어 페이지 쓰기 횟수와 블록 소거 횟수가 줄어든다. 그리고, 스트라이프 크기가 커짐으로 패리티가 보호해야 할 데이터 범위가 넓어지므로 신뢰성은 떨어진다.
대표적인 반도체 저장장치인 플래시 메모리의 중요한 신뢰성 측정 기준은 비트 에러 비율(Bit Error Rate: BER, 이하 'BER'라 한다.)이다. 현재 대부분의 플래시 메모리 저장장치는 ECC(Error Correction Code, 이하 'ECC'라 한다.)를 이용하여 비트 에러(Bit error)를 감지하고 교정한다. ECC를 플래시 메모리에 적용하기 전의 BER을 RBER(Raw BER, 이하 'RBER'라 한다.)이라고 부르며 512Byte 당 4bit 이내의 비트 에러를 교정할 수 있는 ECC를 적용한 후 4KB 페이지 단위의 에러 비율(Error rate)를 정정 불가능 페이지 에러 비율(Uncorrectable Page Error Rate: UPER, 이하 'UPER'라 한다.)이라 한다.
아래 표 2는 ECC를 적용한 후의 UPER과 본 발명을 적용한 후의 UPER을 나타낸다.
변수 및 수식 설명
Figure 112013011480765-pat00052
ECC를 적용한 후의 UPER
Figure 112013011480765-pat00053
본 발명을 적용한 후의 UPER
본 발명을 적용한 후의 UPER은 칩 내부에 패리티를 추가로 적음으로써 ECC를 적용한 후의 UPER보다 낮은 효과가 있다. 이때, 본 발명은 반도체 저장장치는 데이터를 사용한 용량이 작은 초기상태의 경우에는 RBER이 낮으므로 많은 패리티 쓰기로 UPER을 과도하게 낮출 필요는 없다. 즉, 반도체 저장장치가 초기상태에 많은 패리티를 적으면, 제한된 P/E cycles(Program/Erase cycles)의 소진과 RBER 값이 높아지는 부작용이 있을 뿐이다. 따라서, 본 발명의 반도체 저장장치 P/E cycles를 최소화 하고 사용자가 원하는 UPER을 만족할 수 있는 정도의 패리티 쓰기 횟수를 결정할 수 있다.
도 5는 본 발명의 일 실시예에 따른 반도체 저장장치 제어방법을 도시한 흐름도이다.
도 5를 참조하면, 반도체 저장장치는 호스트 시스템으로부터 데이터 쓰기요청을 수신한다(S500). 또한, 본 발명의 다른 실시예로 반도체 저장장치가 호스트 시스템으로부터 데이터 쓰기요청의 수신 후, 일정한 주기마다 이하의 과정을 수행할 수 있다.
반도체 저장장치의 제어부(20)는 반도체 저장장치의 프로퍼티(Property)를 확인한다(S510). 이때, 반도체 저장장치의 프로퍼티(Property)는 반도체 저장장치의 블록 개수, 블록과 페이지 사이즈 등을 포함한다.
반도체 저장장치의 제어부(20)는 스트라이프 사이즈의 초기값을 설정한다(S520). 이때, 스트라이프 사이즈는 하나의 스트라이프를 구성하는 페이지 개수를 의미하는데, 스트라이프 사이즈의 초기값은 최소값(예를 들어, 스트라이프 사이즈는 페이지 개수=2)으로 설정하여 이후 단계(S570)에서 스트라이프 사이즈를 증가하면서 스트라이프 사이즈를 결정할 수 있다. 다른 실시예로, 스트라이프 사이즈의 초기값으로 최대값으로 설정할 수 있는데, 이 실시예에서는 이후 단계(S570)에서 스트라이프 사이즈를 감소하면서 스트라이프 사이즈를 결정하게 된다.
반도체 저장장치의 제어부(20)는 외부에서 쓰기요청 되는 데이터의 패턴에 따라 쓰기요청의 평균사이즈 산출한다(S530).
반도체 저장장치의 제어부(20)는 1회의 쓰기요청 시 필요한 페이지 개수를 산출한다(S540).
반도체 저장장치의 제어부(20)는 예측 정정 불가능 페이지 에러 비율(Expected UPER)을 산출한다(S550). 이때, 예측 UPER은
Figure 112013011480765-pat00054
를 이용하여 산출할 수 있다.
반도체 저장장치의 제어부(20)는 사용자 또는 시스템에 의해서 기 설정된 요구 정정 불가능 페이지 에러 비율(Demand UPER)이 예측 UPER보다 큰지 판단한다(S560).
반도체 저장장치의 제어부(20)는 요구 UPER이 예측 UPER보다 크면, 스트라이프 사이즈를 증가한다(S570). 이후, 호스트 시스템으로부터 쓰기요청 되는 데이터의 패턴에 따라 쓰기요청의 평균사이즈 산출한다(S530).
반도체 저장장치의 제어부(20)는 요구 UPER이 예측 UPER보다 크지 않으면, 스트라이프 사이즈를 결정한다(S580). 예를 들어, 스트라이프 사이즈의 초기값으로 최소값인 페이지 개수를 2로 했을 때, 요구 UPER이 예측 UPER보다 크지 않으면, 스트라이프 사이즈는 2개의 페이지 개수로 결정된다.
반도체 저장장치의 제어부(20)는 결정된 스트라이프 사이즈에 따라 쓰기 요청된 데이터를 칩에 쓴다(S590).
본 발명의 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록매체에 기록될 수 있다. 컴퓨터 판독 가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램(프로그램 명령)은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic media), CDROM, DVD와 같은 광기록 매체(Optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(Magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명을 도면에 도시한 실시예를 참고하여 설명하였으나, 이는 발명을 설명하기 위한 것일 뿐이며, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면 발명의 상세한 설명으로부터 다양한 변형 또는 균등한 실시예가 가능하다는 것을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 권리범위는 특허청구범위의 기술적 사상에 의해 결정되어야 한다.
10: 호스트 인터페이스
20: 제어부
21: 쓰기 버퍼
23: 패리티 생성부
30: 칩0
31: 칩1
32: 칩2
33: 칩3
34: 칩4

Claims (15)

  1. 스트라이프 사이즈의 초기값을 설정하는 단계,
    데이터의 패턴에 따라 쓰기요청의 평균사이즈 산출하는 단계,
    1회의 쓰기요청 시 필요한 페이지 개수를 산출하는 단계,
    상기 쓰기요청의 평균사이즈와 상기 1회의 쓰기요청 시 필요한 페이지 개수를 이용하여 예측 정정 불가능 페이지 에러 비율 산출하는 단계,
    기 설정된 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정하는 단계를 포함하는 반도체 저장장치 제어방법.
  2. 제1항에 있어서,
    상기 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크면, 상기 스트라이프 사이즈를 증가하는 단계를 더 포함하는 반도체 저장장치 제어방법.
  3. 제1항에 있어서,
    데이터 쓰기요청을 수신하는 단계를 더 포함하는 반도체 저장장치 제어방법.
  4. 제3항에 있어서,
    상기 결정된 스트라이프 사이즈에 따라 상기 데이터를 쓰는 단계를 포함하는 반도체 저장장치 제어방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 스트라이프 사이즈의 초기값은 상기 페이지 개수가 2인 반도체 저장장치 제어방법.
  7. 제6항에 있어서,
    기 설정된 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정하는 단계는,
    페이지 개수가 2로 스트라이프 사이즈를 결정하는 반도체 저장장치 제어방법.
  8. 적어도 두 개 이상의 칩,
    상기 칩을 제어하는 제어부를 포함하되,
    상기 제어부는 스트라이프 사이즈의 초기값을 설정하고, 데이터의 패턴에 따라 쓰기요청의 평균사이즈와, 1회의 쓰기요청 시 필요한 페이지 개수를 산출하고, 상기 쓰기요청의 평균사이즈와 상기 1회의 쓰기요청 시 필요한 페이지 개수를 이용하여 예측 정정 불가능 페이지 에러 비율 산출한 후, 기 설정된 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크지 않으면, 스트라이프 사이즈를 결정하는 반도체 저장장치.
  9. 제8항에 있어서,
    상기 제어부는 상기 요구 정정 불가능 페이지 에러 비율이 상기 예측 정정 불가능 페이지 에러 비율보다 크면, 상기 스트라이프 사이즈를 증가하는 반도체 저장장치.
  10. 제8항에 있어서,
    상기 제어부는 호스트 시스템으로부터 데이터 쓰기요청을 수신하는 반도체 저장장치.
  11. 제10항에 있어서,
    상기 제어부는 상기 결정된 스트라이프 사이즈에 따라 상기 데이터를 상기 칩에 쓰는 반도체 저장장치.
  12. 제8항에 있어서,
    상기 스트라이프 사이즈의 초기값은 페이지 개수가 2인 반도체 저장장치.
  13. 제8항에 있어서,
    상기 제어부는 쓰기 버퍼를 더 포함하는 반도체 저장장치.
  14. 제13항에 있어서,
    상기 제어부는 패리티 생성부를 더 포함하는 반도체 저장장치.
  15. 제1항의 반도체 저장장치 제어방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체.
KR1020130013748A 2013-02-07 2013-02-07 반도체 저장장치 및 이를 제어하는 방법 KR101412830B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130013748A KR101412830B1 (ko) 2013-02-07 2013-02-07 반도체 저장장치 및 이를 제어하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130013748A KR101412830B1 (ko) 2013-02-07 2013-02-07 반도체 저장장치 및 이를 제어하는 방법

Publications (1)

Publication Number Publication Date
KR101412830B1 true KR101412830B1 (ko) 2014-06-27

Family

ID=51134633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130013748A KR101412830B1 (ko) 2013-02-07 2013-02-07 반도체 저장장치 및 이를 제어하는 방법

Country Status (1)

Country Link
KR (1) KR101412830B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121265A (ko) * 2018-04-17 2019-10-25 한국과학기술원 Ftl 관리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110093035A (ko) * 2010-02-11 2011-08-18 삼성전자주식회사 플래시 주소 변환 장치 및 그 방법
KR20130111821A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 Raid 메모리 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110093035A (ko) * 2010-02-11 2011-08-18 삼성전자주식회사 플래시 주소 변환 장치 및 그 방법
KR20130111821A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 Raid 메모리 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121265A (ko) * 2018-04-17 2019-10-25 한국과학기술원 Ftl 관리 장치 및 방법
KR102314784B1 (ko) 2018-04-17 2021-10-19 한국과학기술원 Ftl 관리 장치 및 방법

Similar Documents

Publication Publication Date Title
US9946472B2 (en) Semiconductor storage device having nonvolatile semiconductor memory
US9552290B2 (en) Partial R-block recycling
US8799747B2 (en) Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US8762798B2 (en) Dynamic LDPC code rate solution
US9880605B2 (en) Method and system for throttling power consumption
US20160118132A1 (en) Low Impact Read Disturb Handling
US20160011782A1 (en) Semiconductor storage
US20130346812A1 (en) Wear leveling memory using error rate
CN107924700B (zh) 自适应多阶段擦除
US9952978B2 (en) Method for improving mixed random performance in low queue depth workloads
US11449421B2 (en) Memory system, memory controller and method for minimizing data loss using recovery operations in sudden power loss events
US11656777B2 (en) Memory system and operating method thereof
KR20200139913A (ko) 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
US11922040B2 (en) Extended super memory blocks in memory systems
JP7177338B2 (ja) メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法
KR101412830B1 (ko) 반도체 저장장치 및 이를 제어하는 방법
KR20210017181A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US20220083255A1 (en) Memory system and operating method thereof
US11249838B2 (en) Memory system, memory controller, and method of operating memory controller
US11216208B1 (en) Memory system, memory controller, and operation method of memory system
US11966638B2 (en) Dynamic rain for zoned storage systems
KR20230020744A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210149314A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220010789A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

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
LAPS Lapse due to unpaid annual fee