본문 바로가기
자동차 임베디드 SW/Autosar

오토사 Fee , Ea 개념 정리

by 존버매니아.임베디드 개발자 2023. 1. 31.
반응형

오토사 모듈 중 NVM 모듈이 있다.
NVM은 Non Volatile Memory의 약자로 전원 Off 되도 지워지지 않는 메모리를 의미한다.
컴퓨터로 치면 하드디스크, SSD 같은 저장공간을 의미한다.

일반적으로 Mcu에서는 이러한 저장공간으로 일반적으로 2가지가 사용되는데
하나는 Flash memory. 또 하나는 EEPRom 이다.

EEPRom은 일반적으로 mcu에 내장된게 아니라 별도의 소자(IC) 형태로 제공되고, 내 개발경험상 이런 eeprom 은 모두 SPI통신을 통하여 제어하는 방식이었다.

그래서 우리가 사용하는 Mcu랑 eeprom을 연결해서 spi 로 명령을 날려서 데이터를 저장.읽기 를 한다.

근데, eeprom의 경우 erase 명령과 write 명령으로 읽고 쓸 수 있는 메모리 사이즈가 동일해서 코드구현이 간단하다.

예를 들어 내가 sw version 정보를 4byte 변수에 담아서 eeprom에 저장하고 싶다면, eeprom에서 현재 사용하지않는 주소 영역을 찾아서 해당주소에 sw version을 write 하도록 spi 명령을 날려준다.
값을 수정하고 싶은 경우에도 이미 주소값을 알고 있으니까 해당 주소를 사용해서 변경하면 된다.

반면, flash의 경우 erase 명령의 크기와 write 명령 크기가 다른데 그래서 문제가 있다.
그리고 flash는 값을 write 하기전에 항상 erase를 먼저 해놔야하는 문제가 있다.

이 경우 굉장히 비효율적인 문제가 생기는데,
예를 들어 내가 주소 0번지에 4 byte 의 sw version을 쓰고싶으면..
일단 0번지를 erase 를 해야한다.
근데 문제는 erase 의 최소단위가 너무 크다는거다.
aurix 의 경우 4kbyte이다.
이 경우 내가 write하려는 데이터는 고작 4byte이지만 . flash의 물리적인 특성 때문에 항상 4kbyte를 먼저 지우고 나서 write 를 해야한다.

그러니 runtime 측면에서 일단 낭비가 심하다.
그리고 0번지에 쓰여있는 4byte 값을 쓰거나 수정하는건데 erase 최소단위가 4kbyte니까 0번지 근처에 있는 다른 정보들까지 같이 erase가 되어버린다.

이런 문제를 해결하기 위해서 sw적인 알고리즘을 개발하는데.. 그 알고리즘의 이름이 Fee다.
Flash Emulation Eeprom의 약자이다.
Flash를 앞에서 설명했던 eeprom 처럼 쓰겠다는 컨셉이다.

반응형