1 NAND와 NOR
- NAND와 NOR 메모리는 논리회로의 구조 면에서 차이를 보이는데 NOR의 경우 논리회로의 병렬구조를 사용하고 각 메모리 location에 부여된 address를 통해 직접 접근이 가능하고 내부 address를 인식하는데 간단한 컨트롤로 제거가 가능하다. 그러나 각 cell에 개별 접근을 위해서는 전극이 필요하기 때문에 각 cell의 영역이 넓어지게 된다.
- 반면 NAND의 경우 논리회로의 직렬구조를 사용하여 순차적으로 데이터를 읽어내는 방식이며 작은 cell을 사용하여 동일 영역에 더 많은 용량의 저장할 수 있다. 또한 물리적으로 NAND의 bit-line은 각 트랜지스터에 적은 용량의 전원만 필요한 트랜지스터의 일종으로 pull-down이 필요 없는 작은 트랜지스터로 구성된다. 개별 address를 줄 필요가 없기 때문에 NAND에 사용하는 pin은 몇몇의 control pin과 data pin만을 사용한다.

- NOR메모리의 경우 모든 cell이 Good 상태임을 보증하고 각 cell은 동일한 내구성을 갖는 반면 NAND의 경우 low cost design으로 새 device에도 bad cell이 존재할 수 있으며 100% 용량을 활용하는 것이 어렵다. 사실 NOR메모리에는 실제 용량보다 더 큰 여분의 메모리 cell을 가지고 있어 이것을 결함이 발생한 cell에 차례로 수선하여 사용하여 항상 모든 cell에 good 상태를 유지한다. 즉, NOR는 high cost design인 대신 모든 cell이 good 상태임을 보장하는 반면 NAND는 low cost design으로 더 많은 용량을 사용할 수 있지만 bad cell이 발생할 수 있으로 이러한bad cell은 자동으로 처리되지 못하므로 이에대한 별도의 처리가 필요하다.<?xml:namespace prefix = o />
- NOR와 NAND는 모두 block으로 구성된다. 이 중 NOR메모리는 byte/word 단위로 address가 부여되어 랜덤 액세스가 가능하고 읽기 동작이 상대적으로 빠른 반면 쓰기 동작은 느리다. NAND의 경우 하나의 block은 32개의 page로 구성된다. 하나의 page는 실제 데이터가 저장되는 512byte공간 외에 bad cell에 의한 bad block정보다 데이터의 오류검출을 위한 코드들을 기록하는 16byte여분 공간이 별도로 존재한다. 최근에는 page 단위가 2048 + 64byte나 4096 + 128byte로 구성된 메모리도 출시되고 있다. NAND는 program/read 시에는 page단위로 데이터를 접근하고 erase시에는 block단위로 데이터를 접근한다. 읽기 동작이 상대적으로 느리지만 쓰기 동작에 있어서 빠르다.


- 사실 이전의 임베디드 시스템은 NAND메모리에 runtime data를 저장하도록 설계되었고 따라서 NAND에 pre-programming 기법이 필요하지 않았다. NOR의 경우 read access time이 매우 빨랐고, random access가 가능해서 데이터를 DRAM에 올릴 필요 없이 바로 실행이 가능했기 때문에 (이러한 기능을 XIP; eXecute In Place 라고 한다) boot 데이터나 OS데이터를 NOR에 저장하는 것이 일반적이었다. 그러나 최근에는 가격대비 용량 면에서NOR메모리가 효율적이지 못하고 병렬구조상의 문제로 집적이 어려워지면서 NAND가 대체품으로 관심을 받고 있다. 특히 최근 임베디드 시스템들이 NAND 부팅이 가능한 형태로 디자인되면서 boot 데이터나 OS 데이터도NAND에 저장했다가 부팅 시 관련 데이터를 DRAM에 올려 실행하는 구조를 사용한다.