MCU들의 부팅을 위한 플래시에 대한 유행이 변하는듯 하다.

 

ARM Core MCU 들은 초기 NOR 플래시를 사용하였고 NAND 플래시로 이동하였다.

그리고는 대용량을 위해 SD(MMC) 타입의 iNAND, eMMC 를 지원하고 이것들을 많이 사용하였다.

이런 흐름속에서 i386 CPU는 BIOS 프로그램을 NOR 플래시에 시리얼 플래시로 갈아타고 있었다.

지금은 모두 시리얼 플래시 즉 SPI-Flash 를 사용한다.

 

SPI-Flash 는  DAT, CLK, CS 3개의 라인으로 이루어진다.

엑세스 속도를 빠르게 하기 위해 데이타 라인은 2-bit 를 사용하고 지금은 4-bit 를 사용한다.

4-bit 를 사용하는 칩을 QSPI 라고 부른다.

클럭속도를 최대 100MHz 를 지원한다.

로컬버스 NOR 엑세스 속도보다 월등한 성능을 자랑한다.

 

요즘나오는 ARM Core MCU 들은 로컬 버스에 크게 신경쓰지 않는다.

디자인하기에도 로컬버스는 천대받고 있다.  (속도도 넘 느려)

 

QSPI-Flash 를 사용하면 우선 DMA 전송이 기본이라는 것이다.

크기도 작고.. 가격은 용량대비 NAND 보다는 비싸다.

 

QSPI 플래시 사용은명령어 주고 해당하는 일을 수행하는 방식이다.

모든 플래시가 그렇듯 우선 ID를 읽어 칩의 정보를 수집한다.

지우기 명령, 느리게 읽기, 빠르게 읽기, 쓰기 명령 등이 존재한다.

NAND 플래시보다는 안정적인 느낌이다. (ECC 가 없으니 SW 개발하기 넘 편하다.)

SPANSION, WINBOND, ATMEL, STMICRO, EON  등의 벤더에서 생산한다.

 

 

현재 나는 Xilinx 의 ZYNQ MCU 를 사용하여 프로젝트를 하고 있는 중이며

PS영역의  QSPI 플래시와  FPGA 파트인 PL 쪽에 QSPI  IP를 넣어 사용하고 있다.

자연스럽게 QSPI 플래시 삽질을 하였다.  삽질이 끝나니 뿌듯하군 ^^