Memory Types
전원 차단 시 지워지는 것
- RAM: Random Access Memory
전원 차단 시 지워지지 않는 것
- ROM: Read Only Memory
RAM
- RAM
- SRAM
- Static RAM
- DRAM에 비해 5배 빠르며 비싸다. Static의 의미는 전기를 주는 한 데이터가 지워지지 않는다는 의미이며, Dynamic은 1초마다 refresh(Capacitor에 전자를 채워주는 것) 해야 데이터가 유지된다.
- 보통 MCU의 RAM에 SRAM만 있는 이유는 속도 때문!
ROM
ROM
Flash
EEPROM
Flash와 EEPROM, Emulation
Flash: 싸고 빠르며 큰 block 단위로 지우고 쓸 수 있다.
EEPROM: 상대적으로 비싸고 느리며 작은 block 단위로 지우고 쓸 수 있다.
→ 작은 크기의 데이터를 쓰면 EEPROM, 큰 데이터를 쓰면 Flash 사용
Flash
- Program Flash: 프로그램 Code 저장
- Data Flash: 사용할 데이터(ex. Setting 값) 저장
→ EEPROM, Program Flash, Data Flash 중 기능과 가격을 고려해서 메모리 선택
Emulation
필요성
자동차 분야에서는 ECU 소프트웨어의 복잡성과 기능 안전 요구사항 증가로 많은 양의 데이터를 비휘발성 메모리에 저장하는 기능 요구
→ 기존 ECU는 외장 EEPROM에 데이터를 저장
→ 최근에는 MPU 내부의 일부 Flash 영역에 데이터 저장 기능 구현: Emulation
→ Flash Memory가 EEPROM의 역할 대체하는 EEPROM Emulation 적용 추세
가격이 싼 Flash memory를 EEPROM과 같이 쓰기 위해서 Emulation 하는 것
방법
- Flash는 큰 block 단위, EEPROM은 작은 block 단위이기 때문에 Flash를 EEPROM처럼 쓰려면 알고리즘이 필요
- 하나의 데이터를 변경할 때도 블록 내부의 모든 데이터를 다시 저장해야 함
- Flash Memory를 다수의 블록으로 나누어 특정 블록에는 변경되지 않는 데이터를 저장하고 나머지 블록에 순차적으로 변경된 데이터 저장
문제점
변경된 데이터 식별을 위해 비트 단위의 비교 연산과 복구 연산 필요
→ 성능이 떨어짐
제어 정보 저장하는 블록은 동일 위치에 제어 정보를 기록하기 때문에 다른 블록에 비해 수명이 짧음
일반적으로 Flash가 기록 수명이 EEPROM보다 짧음
→ 수명 보장에 치명적
효과
- EEPROM 소자가 필요하지 않아 비용 절감 효과가 있음(EEPROM 소자 비쌈)
- EEPROM에 대한 회로 설계가 필요하지 않아 PCB 레이아웃 설계에서의 장점이 있음
사용 예시
코드: 전원이 꺼져도 사라지지 않아야 함 → ROM의 한 종류인 Flash에 저장
전원이 켜지면 실행되어야 함 → RAM Memory에 올리고 MCU 실행
RAM 영역에서 실행하고 전원을 끄면 RAM 내용이 삭제됨
Setting 값(ex. 모니터 밝기): 전원이 꺼져도 저장되어 있는 것이 편함 → ROM의 한 종류인 EEPROM에 저장
- EEPROM: Flash에 비해 Read/Write 속도가 느리고 쓰는 횟수도 제한되어 있음
실제 사용하고 싶은 MCU를 선택할 때 고려할 것
사용할 코드의 크기 → Flash
실제 프로그램 실행 시 RAM에 올릴 코드의 크기 → SRAM
전원이 꺼져도 값이 유지되어야 하는 변수 → EEPROM
→ 동일 Family에서 메모리 크기가 다른 Chip을 만드는 이유
참고 자료
RAM, ROM, Flash 메모리::하드웨어
마이크로컨트롤러(MCU); Program memory(Flash memory)와 Data memory(SRAM)비교
[반도체] 플래시 메모리(Flash Memory)
[반도체] 반도체 분류 사전 (3) - 시스템 반도체
ROM과 RAM - EEPROM, Flash Memory, NVRAM
Memory Types on Embedded Programming(Memory의 종류 및 고려해야 할 점)
'technology > IP' 카테고리의 다른 글
SPI (Serial Peripheral Interface) (0) | 2022.11.03 |
---|---|
CAN (Controller Area Network) (0) | 2022.10.24 |
ADC (Analog-to-Digital Converter) (0) | 2022.09.30 |