nand flash
data를 저장하는 반도체이며, 비휘발성 메모리이다.
Nand flash의 구조
data를 저장하는 단위는 cell이다. 1cell당 1bit를 저장한다. (SLC기준...)
그러므로 1byte는 8개의 cell로 구성되어 있다.
아주 널리 쓰이는 삼성낸드를 살펴본다.
삼성낸드 데이터시트에서 가져온 그림.
일단 그림에서 page, block의 단위가 설명되어 있다. bit단위였다가 byte로나오니까 헷갈리는구만.
뭐 어쨌건, 1page=528byte이고, page가 여러개 모여서 block이 된다.
이건 마치 bit로 이루어진 책과 같다고 표현하면 쉬울까....
bit 1page 여러장이 모여 block이라는 책 한권이 되고, block이 여러개 모여서 1개의 nand device라는 책장이 된다...!! 오오
(page나 block의 단위는 nand flash마다 다름.)
책이라고 놓고 보니 웃기다..ㅋㅋ page나 block으로 만든 단위는 erase, read, write를 위해 나뉜 것 뿐이라는 사실...
1page=528byte의 크기라는 점이다. 512도 아니고 왜 어중간한 크기인것인가?
512Byte + 16Byte이기 때문이다. 16Byte는 spare영역이며 OOB(Out Of Band)라고 불린다.
이는 bad block또는 ecc에 관한 정보를 기록하는 영역이다. filesystem에 관한 정보를 기록하기도 하고... 다양하게 쓰인다고 한다.
Bad block
그렇다면 badblock은 무엇이고 ecc는 무엇인가? nand flash를 사용하게 되면 필연적으로 만나는 것들이다.
우선 bad block이라함은 nand가 가진 수많은 cell중에서 불량이 되어 못쓰는 cell을 가리킨다.
이 불량은 생산중에도 생겨나고, r/w중에도 생겨난다. 그러므로 어느 cell이 불량인지 표시하고, 이를 피해가는 방법이 필요하다.
bad block을 기록하는 방법은 nand flash의 제조사마다 다르다고 한다. datasheet를 잘 읽어보자.
아.. 쓰다 말았어요....
댓글