Memory Types

  1. 전원 차단 시 지워지는 것

    • RAM: Random Access Memory
  2. 전원 차단 시 지워지지 않는 것

    • ROM: Read Only Memory
  3. RAM

    • RAM
    • SRAM
      • Static RAM
      • DRAM에 비해 5배 빠르며 비싸다. Static의 의미는 전기를 주는 한 데이터가 지워지지 않는다는 의미이며, Dynamic은 1초마다 refresh(Capacitor에 전자를 채워주는 것) 해야 데이터가 유지된다.
      • 보통 MCU의 RAM에 SRAM만 있는 이유는 속도 때문!
  4. 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

        1. 필요성

          • 자동차 분야에서는 ECU 소프트웨어의 복잡성과 기능 안전 요구사항 증가로 많은 양의 데이터를 비휘발성 메모리에 저장하는 기능 요구

            → 기존 ECU는 외장 EEPROM에 데이터를 저장

            → 최근에는 MPU 내부의 일부 Flash 영역에 데이터 저장 기능 구현: Emulation

            → Flash Memory가 EEPROM의 역할 대체하는 EEPROM Emulation 적용 추세

          • 가격이 싼 Flash memory를 EEPROM과 같이 쓰기 위해서 Emulation 하는 것

        2. 방법

          • Flash는 큰 block 단위, EEPROM은 작은 block 단위이기 때문에 Flash를 EEPROM처럼 쓰려면 알고리즘이 필요
          • 하나의 데이터를 변경할 때도 블록 내부의 모든 데이터를 다시 저장해야 함
          • Flash Memory를 다수의 블록으로 나누어 특정 블록에는 변경되지 않는 데이터를 저장하고 나머지 블록에 순차적으로 변경된 데이터 저장
        3. 문제점

          • 변경된 데이터 식별을 위해 비트 단위의 비교 연산과 복구 연산 필요

            → 성능이 떨어짐

          • 제어 정보 저장하는 블록은 동일 위치에 제어 정보를 기록하기 때문에 다른 블록에 비해 수명이 짧음

            • 일반적으로 Flash가 기록 수명이 EEPROM보다 짧음

              → 수명 보장에 치명적

        4. 효과

          • EEPROM 소자가 필요하지 않아 비용 절감 효과가 있음(EEPROM 소자 비쌈)
          • EEPROM에 대한 회로 설계가 필요하지 않아 PCB 레이아웃 설계에서의 장점이 있음
  5. 사용 예시

    • 코드: 전원이 꺼져도 사라지지 않아야 함 → ROM의 한 종류인 Flash에 저장

      전원이 켜지면 실행되어야 함 → RAM Memory에 올리고 MCU 실행

      RAM 영역에서 실행하고 전원을 끄면 RAM 내용이 삭제됨

    • Setting 값(ex. 모니터 밝기): 전원이 꺼져도 저장되어 있는 것이 편함 → ROM의 한 종류인 EEPROM에 저장

      • EEPROM: Flash에 비해 Read/Write 속도가 느리고 쓰는 횟수도 제한되어 있음
  6. 실제 사용하고 싶은 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

+ Recent posts