NAND flash ECC 설명

기타등등 2017. 7. 12. 02:37 |


멀티 레벨화, Cell 당 정보량 증가시킴( Vnand, TLC..)

-> Nand flash 자체의 오류 증가 = 높은 수준의 ECC 가 필요하다.



NAND flash 용 ECC는

메모리의 채널 특성 및 데이터 저장 장치에서 요구되는 신뢰성 등을 고려하여 설계 되어야 한다.

데이터 저장 장치에는 저장 시점과 읽는 시점이 다르기 때문에 ARQ(automatic repeat request)를 사용할 수 없고, FEC(forward error correction)을 사용해야한다.

또한 저장장치에서는 ECC parity overhead를 최소화 하기 위해, 높은 부호율을 갖는 부호를 사용할 것이 요구되며, 저장장치이므로 통신시스템 대비 매우 높은 신뢰성이 보장되야함


ARQ(automatic repeat request) : 역방향 채널을 통해 ACK 와 NACK 정보를 전송하여 보정

FEC(Forward Error Correction) : 송신부에서 송신전에 미리 수행

 - 장점 : 연속적인 data 전송, 역방향 채널 필요 없다, 군집오류(burst error)에 강함

 - 단점 : 기기와 coding 방식이 복잡, 잉여 bit로 인한 채널 낭비

 - 종류(기억장치의 유무에 따라)

  A. Block Code : 

선형 code(hamming code) : 자기정정부호

순회 code(CRC code, BCH  code) : reed solomon code 는 bch code 의 일종

  B. Convolutional Code :

부호화는 일정 길이의 block 단위로 이루어 지는데, 각 block 에서 부호화가 그 block에도 영향을 받는 방식의 기법, Tree부호라고도 함



UBER(uncorrectable bit-error rate) / RBER(raw bit-error rate)

- UBER :  시스템의 요구 신뢰성, SER(sector-error rate) 또는 FER(frame-error rate)를 정보어(information) 크기로 나눈 값, 10의 -15제곱 수준 이하가 요구된다.

- RBER : 메모리에서 읽어넨 데이터자체의 오류 수준 ( uncoded bit error rate와 동일한 개념)



◎ 대수 부호 적용

- 순환 부호는 부호의 설계 및 정정 능력 예측이 용이 하고 HW 구성 방법이 많이 존재하기 때문에 Nand flash 에서 많이 사용 되었다.

- SLC 위주의 Nand는 오류의 수준이 높지 않아서 수백 비트의 길이를 가지는 Hamming부호, 정정 능력이 작은  BCH(Bose-Chaudhuri-Hocquenghem)부호 주로 사용



오류 정정 원리

1) 부호화 과정 

 - 디지정 정보는 0과 1로 이루어진 정보수열로 표형. k개의 비트 단위로 블록구성(각 블록을 정보 벡터라 함, codeword, 부호벡터)

 - 모든 부호어의 집합 : [n,k]

 - 부호화 과정에서 추가되는 비트 : parity bit  (대부분의 parity bit는 정보비트들의 특정한 선형 결합으로 만들어짐)

 - [n,k] -> n-k개의 패리티 비트들을 어떤 선형 결합으로 설계하느냐에 따라 부호의 오류 정정 능력이 달라짐


부호화 이전의 정보 벡터가 차지하는 시간 T = 해당 부호어가 차지하는 시간 T

-> 부호화를 하게 되면 신호가 가지는 시간에 따른 변화율이 n/k만큼 증가. 이는 송신신호 주파수 대역폭이 그만큼 증가함을 의미함

(이러한 대역폭의 증가는 오류제어를 위해 지불될 비용이 됨)

부호율(code rate) ,비트당 정보량 : k/n



'기타등등' 카테고리의 다른 글

엑셀 업무 관리 양식  (0) 2017.07.16
기울기가 X증가량 분에 Y증가량인 이유  (1) 2015.03.08
typedef struct와 struct의 차이  (0) 2015.01.08
Posted by *me
: