핵심 인사이트 (3줄 요약)
- 본질: NOR 플래시 (NOR Flash)는 셀을 비트선에 병렬로 매달아 주소를 직접 지정해 읽을 수 있는 비휘발성 메모리라서, 저장장치이면서도 코드 읽기 관점에서는 읽기 전용 메모리 (Read Only Memory)처럼 동작한다.
- 가치: 바이트 또는 워드 단위 임의 접근과 XIP (eXecute In Place) 덕분에 CPU (Central Processing Unit)가 전원 인가 직후 부트 코드와 펌웨어를 곧바로 실행할 수 있다.
- 판단 포인트: NOR는 빠른 읽기·높은 신뢰성의 대가로 면적 효율과 쓰기/지우기 성능을 희생하므로, 대용량 데이터 저장소보다 BIOS (Basic Input/Output System), UEFI (Unified Extensible Firmware Interface), MCU (Microcontroller Unit) 펌웨어 영역에 맞다.
Ⅰ. 개요 및 필요성
NOR 플래시는 전원을 꺼도 내용이 유지되면서도 특정 주소를 바로 읽을 수 있도록 설계된 읽기 중심 플래시 메모리다. 이름의 유래는 셀 어레이 연결 형태가 논리 게이트의 NOR (Not OR) 배열과 닮았기 때문이지, 내부에서 NOR 연산을 수행한다는 뜻은 아니다. 핵심은 "저장장치인데도 명령어를 바로 꺼내 읽기 쉽다"는 점이다.
이 특성이 필요해진 이유는 시스템의 맨 처음 부팅 단계가 매우 단순하면서도 매우 엄격하기 때문이다. CPU는 전원이 들어오면 정해진 리셋 벡터 주소로 이동해 첫 명령어를 읽어야 하는데, 이때 메인 메모리인 DRAM (Dynamic Random Access Memory)은 아직 초기화되지 않았고, NAND 플래시 (NAND Flash)는 페이지와 블록 중심이라 원하는 주소 한 점을 즉시 읽어 오기 어렵다. 따라서 초기 부트 코드가 들어 있는 저장소는 비휘발성이면서도 랜덤 읽기가 가능해야 한다.
즉 NOR 플래시는 "대용량 저장"이 아니라 "가장 먼저, 가장 확실하게 읽혀야 하는 코드 저장"이라는 요구에서 등장한 메모리다. 메인보드의 펌웨어 칩, 자동차 제어기, 산업용 장비, 통신 장비가 NOR를 계속 쓰는 이유도 여기에 있다. 시스템 전체 용량은 작아도, 첫 1ms가 치명적으로 중요한 곳에서는 여전히 대체재가 제한적이다.
┌──────────────────────────────────────────────────────────────────────┐
│ 왜 NOR 플래시가 필요한가: 부팅의 첫 읽기 │
├──────────────────────────────────────────────────────────────────────┤
│ 전원 인가 │
│ │ │
│ ▼ │
│ CPU 리셋 벡터 접근 │
│ │ │
│ ├─ DRAM: 아직 초기화 전 → 즉시 실행 불가 │
│ ├─ NAND Flash: 페이지/블록 중심 → 첫 바이트 직접 인출 비효율 │
│ └─ NOR Flash: 주소 직접 지정 가능 → 부트 코드 즉시 읽기 가능 │
└──────────────────────────────────────────────────────────────────────┘
이 그림은 부팅 초기에 필요한 조건이 단순한 저장 용량이 아니라 "초기화 없이 바로 읽을 수 있는가"임을 보여준다. NOR는 전체 시스템에서 가장 큰 메모리가 아니라, 가장 먼저 읽혀야 하는 메모리다.
- 📢 섹션 요약 비유: NOR 플래시는 거대한 창고가 아니라 건물 현관의 비상 열쇠함과 같다. 평소엔 작아 보여도, 전기가 들어오는 순간 가장 먼저 열려야 건물 전체가 움직일 수 있다.
Ⅱ. 아키텍처 및 핵심 원리
NOR 플래시 셀은 부유 게이트 트랜지스터 (Floating Gate Transistor) 또는 전하 트랩 셀에 전자를 가두어 임계전압을 바꾸는 방식으로 0과 1을 저장한다. 읽기 시에는 각 셀에 작은 전압을 걸어 전류가 흐르는지 확인하고, 저장된 전하량에 따라 셀이 켜지는지 꺼지는지를 감지한다. 이 과정 자체는 다른 플래시와 비슷하지만, 어레이 배선 구조가 다르다.
NOR의 핵심은 각 셀이 비트선에 병렬로 연결된다는 점이다. 그래서 주소 디코더가 특정 워드선과 비트선을 선택하면 그 위치의 셀 상태를 상대적으로 직접 읽어 낼 수 있다. 반대로 NAND는 여러 셀이 직렬 스트링을 이루므로, 특정 셀을 읽더라도 같은 스트링의 다른 셀 상태와 센스 증폭기 (Sense Amplifier) 동작을 함께 고려해야 한다.
┌──────────────────────────────────────────────────────────────────────┐
│ NOR 어레이의 읽기 중심 연결 구조 │
├──────────────────────────────────────────────────────────────────────┤
│ Bit Line 0 Bit Line 1 Bit Line 2 │
│ │ │ │ │
│ Word Line 0 ─────┼────[Cell]─────┼────[Cell]─────┼────[Cell] │
│ │ │ │ │
│ Word Line 1 ─────┼────[Cell]─────┼────[Cell]─────┼────[Cell] │
│ │ │ │ │
│ Word Line 2 ─────┼────[Cell]─────┼────[Cell]─────┼────[Cell] │
│ │ │ │ │
│ Sense Amp Sense Amp Sense Amp │
│ │ │ │ │
│ I/O Bus ───── 주소 디코더가 한 위치를 직접 선택 │
└──────────────────────────────────────────────────────────────────────┘
이 구조 덕분에 NOR는 읽기 지연시간을 ns (nanosecond) 단위로 줄이기 쉽고, 코드 페치 패턴에 유리하다. 대신 셀마다 개별 접속 경로를 충분히 제공해야 하므로 면적 효율이 나쁘고 같은 다이 면적에서 저장 용량을 크게 늘리기 어렵다. 읽기 성능을 위해 배선을 아낌없이 쓰는 구조라고 이해하면 된다.
쓰기와 지우기는 읽기와 성격이 완전히 다르다. 프로그램은 셀에 전자를 주입해 임계전압을 바꾸는 과정이고, 지우기는 보통 섹터 또는 블록 단위로 전자를 한꺼번에 빼내는 과정이다. 따라서 읽기는 빠르지만, 쓰기·지우기는 ms (millisecond) 단위까지 길어지며 덮어쓰기 전 지우기가 필요한 플래시 공통 제약도 그대로 가진다.
또한 XIP를 안정적으로 제공하려면 단순히 셀만 빠르면 안 된다. 읽기 경로의 지연, 버스 인터페이스, 프리패치 버퍼, 매핑 모드가 함께 맞아야 한다. 최근의 SPI (Serial Peripheral Interface) NOR는 병렬 NOR보다 핀 수를 크게 줄였지만, 쿼드 SPI나 옥탈 SPI와 읽기 캐시를 활용해 여전히 부트 코드 실행에 충분한 연속 읽기 성능을 확보한다.
- 📢 섹션 요약 비유: NOR 구조는 아파트 각 집 문 앞까지 배달 레일을 따로 깔아 둔 형태와 같다. 물건을 찾기는 빠르지만, 건물을 지을 때 배선과 통로가 많이 들어서 같은 땅에 더 많은 집을 넣기는 어렵다.
Ⅲ. 비교 및 연결
NOR 플래시를 제대로 이해하려면 NAND 플래시와 역할 경계를 분명히 봐야 한다. 둘 다 비휘발성 플래시 메모리지만, NOR는 빠른 랜덤 읽기와 직접 실행에, NAND는 높은 집적도와 대용량 저장에 최적화되어 있다. 따라서 둘의 차이는 단순 우열이 아니라 설계 목표의 차이다.
| 구분 | NOR 플래시 (NOR Flash) | NAND 플래시 (NAND Flash) |
|---|---|---|
| 셀 연결 | 병렬 중심 | 직렬 스트링 중심 |
| 읽기 단위 | 바이트/워드 중심 | 페이지 중심 |
| 핵심 강점 | 랜덤 읽기, XIP, 신뢰성 | 고집적, 저비용/GB, 대용량 |
| 쓰기/지우기 | 상대적으로 느림 | 상대적으로 유리 |
| 대표 용도 | 펌웨어, 부트 코드, 제어기 | SSD, 메모리 카드, 모바일 저장소 |
| 설계 관점 | "첫 코드가 바로 읽혀야 함" | "많은 데이터를 싸게 저장해야 함" |
이 차이는 메모리 계층 구조와도 맞물린다. NOR는 저장장치이지만 접근 방식은 읽기 전용 메모리와 닮아 있고, NAND는 보조기억장치로서 파일 시스템과 컨트롤러의 도움이 필요하다. 즉 NOR는 CPU의 부트 경로와 가깝고, NAND는 운영체제와 스토리지 스택 쪽과 더 가깝다.
임베디드 시스템에서는 이 둘을 함께 쓰는 하이브리드 구성이 흔하다. 예를 들어 작은 1차 부트로더는 NOR에 두어 즉시 실행하고, 큰 운영체제 이미지와 데이터는 NAND나 eMMC (embedded MultiMediaCard)에 저장한 뒤 DRAM으로 적재한다. 이 연결을 이해하면 왜 같은 기기 안에 종류가 다른 비휘발성 메모리가 공존하는지 자연스럽게 보인다.
- 📢 섹션 요약 비유: NOR와 NAND는 같은 도서관의 다른 공간과 같다. NOR는 사서가 바로 꺼내 주는 참고서 서가이고, NAND는 엄청난 양의 책을 보관하는 서고라서 목적이 다르다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서 NOR를 채택할지는 "얼마나 많이 저장할까"보다 "전원 직후 얼마나 확실하게 실행해야 하나"로 판단하는 편이 맞다. 부팅 지연이 수십 ms만 늘어나도 안 되는 자동차 ECU (Electronic Control Unit), 산업용 컨트롤러, 네트워크 장비 제어 평면에서는 NOR의 읽기 특성이 직접적인 가치가 된다. 반대로 로그, 이미지, 동영상처럼 지속적으로 쓰고 많이 저장해야 하는 데이터 영역이라면 NOR는 비용과 성능 모두 불리하다.
특히 펌웨어 저장소에서는 신뢰성과 복구 전략이 중요하다. 듀얼 이미지 구성, 읽기 전용 보호 구간, 업데이트 실패 시 롤백 구조를 만들기 쉽다는 점은 NOR의 실무적 강점이다. 작은 용량 안에 부트로더와 복구 코드, 설정 정보를 나누어 저장하면 장애 시에도 최소한의 복구 루틴을 보존하기 유리하다.
기술사 답안형 판단 기준
- 채택: 전원 인가 직후 코드 직접 실행, 높은 읽기 신뢰성, 비교적 작은 펌웨어 용량이 필요한 경우.
- 회피: 대용량 저장, 빈번한 데이터 기록, 비용 대비 용량이 중요한 경우.
- 보완: 섹터 지우기 지연과 쓰기 횟수 한계를 고려해 A/B 파티션, 웨어 관리, 쓰기 보호 설계를 함께 넣을 것.
대표 안티패턴
- 펌웨어용 NOR에 센서 로그를 계속 적재해 지우기 병목과 수명 저하를 동시에 만드는 설계
- XIP 가능성만 믿고 인터페이스 대역폭, 캐시 미스, 암호화 오버헤드를 무시하는 설계
- 업데이트 중 전원 차단 상황을 고려하지 않고 단일 이미지에 바로 덮어쓰는 설계
실무에서 좋은 선택은 NOR를 만능 저장장치로 보는 것이 아니라, "절대 잃으면 안 되는 시작 코드"를 위한 안전한 영역으로 한정하는 것이다. 그 경계를 지키면 NOR는 매우 강력하지만, 경계를 넘겨 일반 데이터 저장까지 맡기면 금세 비효율이 드러난다.
- 📢 섹션 요약 비유: NOR는 소방서 출동 키를 보관하는 금고와 같다. 급할 때는 즉시 열려야 하지만, 그 금고를 창고처럼 매일 들락날락하며 짐 보관용으로 쓰면 금세 불편해진다.
Ⅴ. 기대효과 및 결론
NOR 플래시를 적재적소에 쓰면 시스템은 부팅 경로가 단순해지고, 초기 코드 가시성과 복구 가능성이 좋아진다. XIP를 활용하면 작은 시스템에서는 DRAM 요구량을 줄이거나 부팅 단계를 단축할 수 있고, 펌웨어 무결성 관리도 상대적으로 명확해진다. 즉 NOR의 효과는 단순 속도보다 "예측 가능한 시작"에 있다.
물론 한계도 분명하다. 같은 가격에서 저장 용량이 작고, 쓰기/지우기 성능이 떨어지며, 대규모 데이터 처리에는 적합하지 않다. 그래서 현대 시스템은 NOR 하나로 모든 것을 해결하지 않고, NOR + NAND 또는 NOR + DRAM + 보조 스토리지처럼 계층화된 구성을 택한다.
앞으로도 NOR의 역할은 사라지기보다 더 선명해질 가능성이 크다. 보안 부트 체인, 자동차 기능 안전, 산업 장비의 장기 유지보수처럼 "처음 한 걸음의 신뢰성"이 중요한 분야에서 NOR는 계속 핵심 위치를 차지할 것이다. 따라서 NOR 플래시는 대용량 메모리의 경쟁자가 아니라, 시스템이 안전하게 깨어나도록 보장하는 시작점으로 기억하는 것이 정확하다.
- 📢 섹션 요약 비유: NOR는 공연장의 메인 스피커가 아니라 첫 안내 방송 장치와 같다. 음악을 오래 틀어 주는 장비는 아니지만, 공연을 정확히 시작시키는 책임은 가장 크다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| XIP (eXecute In Place) | 코드를 RAM으로 복사하지 않고 NOR에서 직접 실행하는 방식 |
| 부트로더 (Bootloader) | 전원 직후 NOR에서 가장 먼저 실행되는 초기 제어 코드 |
| SPI NOR | 핀 수를 줄이면서도 부트용 읽기 성능을 확보한 현대 NOR 인터페이스 |
| NAND 플래시 (NAND Flash) | NOR와 반대로 대용량 저장에 최적화된 비휘발성 메모리 |
| 웨어 레벨링 (Wear Leveling) | NAND에서 특히 중요하지만, NOR에서도 쓰기 수명 관리 관점에서 함께 이해할 개념 |
| 보안 부트 (Secure Boot) | 신뢰 가능한 초기 코드 저장소로서 NOR의 가치가 커지는 영역 |
📈 관련 키워드 및 발전 흐름도
마스크 ROM · EPROM · EEPROM
│
▼
NOR 플래시 (NOR Flash)
│
├── XIP (eXecute In Place) · 부트 펌웨어
│
├── 병렬 NOR → SPI NOR → Quad/Octal SPI NOR
│
▼
보안 부트 (Secure Boot) · 듀얼 이미지 복구 · 기능 안전 펌웨어
이 흐름은 비휘발성 코드 저장소가 단순 읽기 전용 칩에서, 직접 실행 가능한 부트 메모리와 안전한 펌웨어 저장소로 진화한 방향을 보여준다.
👶 어린이를 위한 3줄 비유 설명
- NOR 플래시는 컴퓨터가 아침에 일어나자마자 제일 먼저 보는 작은 규칙 노트예요.
- 이 노트는 원하는 줄을 바로 펼쳐 볼 수 있어서 "먼저 뭘 해야 하지?"를 즉시 알려줘요.
- 대신 공책이 아주 두껍고 싸게 많이 만들 수는 없어서, 중요한 시작 규칙만 적어 두는 데 잘 어울려요.