[t:/]$ 지식_

예전 DOC NAND 노트

2009/04/29
  1. doc2000 은 NAND Disk on chip 이다.
  2. doc2000 은 NFTL을 통해서 MTD 지원 디바이스가 된다.
  3. mtdram 은 테스트를 위해서 커널램을 사용하는 가상 디바이스이다.
  4. mkfs.msdos -C 사이즈 파일명 을 통하여 msdos 파일 시스템을 구성할 수 있다.
  5. dd if=/dev/zero .. 명령어를 통하여 공파일을 만들어 mkfs.msdos .. 를 이용하여 fat 파일 시스템 이미지를 만들 수 있다.
  6. mtdram과 doc2000 소스를 뚝딱뚝딱 만들면 커널램을 이용하는 가상의 doc2000을 만들 수 있다.
  7. 가상의 doc2000 은 완전한 IDE 하드 디스크처럼 동작시킬 수 있게 된다.
  8. 가상의 doc2000 은 완전한 플래시 커맨드 플로우를 사상하고 있으므로 각 오퍼레이션 별 weight 를 통해서 NAND 에뮬레이션 estimate를 할 수 있게 된다.
  9. estimation data 는 proc 파일 시스템을 하나 만들어서 제공하면 된다.
  10. FTL 로 인하여 칩 드라이빙을 직접 할 수 있다.
  11. nand.c 에서 nand 로우 레벨 함수를 지원한다.
  12. spia.c 와 같은 하드웨어 디펜던트 모듈에서 초기화를 하면서 mtd 를 하나 생성한다. (여기서 실제 로우레벨 함수 펑션을 붙인다) 여기서 없으면 cmd 함수는 기본 함수로 대체 된다.
  13. 기본 함수 대신 가라 함수를 만든다.
  14. 문제는 투 뱅크 nand 를 1 뱅크로 보이게 하기 위한 레이어가 또 필요하다.

  1. 만들다가 만 nand_emul 을 참고하여 mtd 에 등록되는 가라 펑션을 만든다. (일단 펑션 안은 비워둔다)
  2. 이 mtd 정보에다가 파티션 정보를 더 써서 mtd 파티션 구조체로 만든다
  3. 1과 2를 할때 FTL로 인식되는 매직코드,이름을 박아 놓아둔다. (프루빙 할때 ftl 로 붙게 만든다)
  4. 모두 프루빙 되면 인식까지는 성공이다.
  5. 가라 펑션이므로 읽기 쓰기 아무것도 안 된다.
  6. 리얼 펑션을 만든다. 얘는 vmalloc 을 커널 메모리를 이용한다.
  7. mtdram을 이용해서 실제 가능하게 만든다.
  8. fat image 를 만들어서 ftl 디바이스를 경유하여 이미지를 밀어 넣는다.
  9. 읽기 쓰기를 테스트 한다.
  10. nand.c 를 참조하여 낸드를 풀 모델링 한다.
  11. 문제는 역시 투 뱅크를 1뱅크처럼 보이게 하면서 홀짝 파이프라인이 되는 알고리즘이다.

옛날 메모 복구함..

한빛이랑 맥산의 DOM 가지고 스팍 어플라이언스 구성한다고 조사할 때가 엊그제 같은데.









[t:/] is not "technology - root". dawnsea, rss