안녕하세요.
낸드 디바이스의 특정 영역에서의 wear leveling에 대해 문의드립니다.
MLC칩 256MB, 1024 blocks을 사용하고 있구요,
1페이지당 2k + 64 bytes입니다.
180 블록부터~1024 블록까지가 파일시스템에서 사용하는 영역(wear leveling 영역)인데,
파일시스템에서 실제로 사용하는 블록의 크기는 어느정도 되는지 알고 싶습니다.
(실제 마스터칩을 읽어본 결과 6블록 정도에 파일시스템이 들어있습니다. 180~185블록)
180~1024 블록내에서 배드가 발생하면 교체를 해야 하는데,
약 1000~1024블록을 교체블록(reserved area)으로 설정하면 될까요?
파일시스템에서 사용하는 블록은 180 블록으로부터 어느정도까지 늘어나는지 궁금합니다.
낸드 블록의 끝인 1024블록까지 wear leveling에 사용하지는 않겠죠?(배드교체 영역을 설정해야 해서)
Eboot, BINFS를 사용하고 있는걸로 봐서는 OS는 WinCE같습니다.
따라서 사용하시려는 파일시스템의 Cluster 크기를 먼저 정해야 할것 같네요.
저 같은 경우 전체 용량의 2% 정도를 Reserved로 잡아서 사용하고 있습니다.
3,000 여대를 양산해 보았는데, 큰 문제없이 1년 정도 잘 사용하고 있네요.
다른 방법은 하드처럼 교체를 하지 않고, 배드 섹터 마킹을 하기도 합니다.
배드 섹터 사이즈는 512B가 아닌, Block 단위로 하고요.
이런 경우 최대 사이즈를 뽑아낼 수 있지만, 제품 마다 디스크 용량이 상이한 문제도 있습니다.
Logical-Physical Mapping Table만 잘 관리하면, 이 방법도 좋아 보입니다. Reserved 영역이 혹시 부족해지지 않을까 하는 걱정이 없어지니....