본문 바로가기

Device/flash

NOR Flash 와 NAND Flash의 차이점

1.가장 큰 차이는 구조적인 차이, 즉, 어떠한 정보를 저장하는 구조가 NAND(NOT AND)냐 NOR(NOT OR)냐는 차이죠. 결국은 AND와 OR GATE의 차이입니다. 물리적으로는 TR과 CAP을 구성하는 회로가 달라지는거죠.

 2.위의 내용에 의해 NAND는 직렬구조이고, NOR는 병렬구조가 되는거죠. 즉, NOR 구조가 복잡합니다.

 3.1,2번 내용에 의해 NAND를 억세스하려면 해당블럭(32PAGE를 1BLOCK 이라함)으로 이동 후 순차적으로 억세스가 가능하고, NOR는 원하는 곳의 내용을 곧바로 억세스 할수 있습니다.

 4.3번 내용에 의해 NAND에서 프로그램 실행은 불가하며, NOR에서 프로그램 실행은 가능합니다.

 예를들어, 요즘 휴대폰에 내장된 메모리는 저장용으로 NAND를 사용합니다. 실행을 위한 RAM과 NAND flash memory(하드디스크 역할)를 같이 패키징한 메모리를 MCP라 부르는데 대부분 삼성전자 제품이죠. ARM 코어를 구동하기 위해서는 NAND에 저장된 코드를 RAM으로 복사해야 됩니다. 이유는 4번 때문입니다. 즉, 코드가 32MB이면 RAM은 적어도 32MB가 있어야 한다는거죠. 물론, 실제 실행을 위해서는 HEAP영역이 16MB정도 추가로 필요합니다. 그래서 대부분 64MB+64MB 혹은 128MB+128MB의 MCP를 사용합니다.






@@
 일반적으로는 부트코드는 플래시나 EEPROM에 탑재된다. 이 부트 코드는 프로세서가 리셋되면서부터 부트코드가 탑재되어 있는 메모리 장치에서 워드 크기로 자유로보게 명령을 읽을 수 있어야 한다. 하지만 NAND 플래시의 경우에는 명령이나 데이터를 읽을 때 수 바이트의 블록단위로 읽어야 하기 때문에 대부분 SoC에서는 NAND 플래시를 이용하여 직접 부팅할 수 없는 경우가 많다.
 하지만 S3C2410의 경우는 NAND 플래시만을 이용해서도 부팅할 수 있도록 지원하고 있다. 이 기능은 리셋이 되면 자동으로 NAND 플래시의 맨 앞 4KB만큼의 명령이 SoC 내부의 SRAM으로 복사되고, SoC는 이 영역을 리셋 벡터 주소인 0x0번지로 설정하기 때문에 가능한 것이다. 하지만 과거에 비해 근래에는 NAND 플래시의 사용량이 늘아나고 가격도 저렴해짐에 따라 S3C2410과 같이 NAND 플래시만을 이용해 부팅할 수 있는 SoC가 많아 지고 있다.