관리 메뉴

Leo's Garage

NvM은 내부적으로 어떤식으로 동작할까 본문

자동차 및 자동차 SW/AUTOSAR

NvM은 내부적으로 어떤식으로 동작할까

LeoBehindK 2023. 7. 25. 22:27
728x90
반응형

여기서 정리할 내용은 NvM 변수를 작성할 때 내부적으로 어떻게 처리되는지에 대한 내용이다.

NvM(Non- Volatile Memory)은 어느 특정 시점에 저장되는 유형의 메모리로, Soft Reset 혹은 Hard Reset 후에 사용자가 적은 값이 그곳에 저장되는 것을 주로 볼 수 있다. 하지만 이것은 마법처럼 동작하지 않기 때문에 과연 이 동작 안에는 어떤 일이 일어나는지 알 필요가 있다. 

이 NvM은 전원이 꺼지면 모든 정보를 잃는 휘발성 메모리와 다르게 전원이 없을 때에도 정보를 유지하는 메모리이다. 우리가 알고 있는 AUTOSAR NvM 모듈은 BackGround에서도 이것을 사용한다. SRAM과 DRAM을 전부 NvRAM으로 대체하면 더 좋은 거 아닌가라고 생각할 수도 있지만, 메모리 크기나 에너지 소비, 수명에 있어서도 한계가 있어서 기본 메모리로는 부적합하다. 기존 AUTOSAR ECU에서 가장 흔히 볼 수 있는 유형은 Floating Gate Transistor로 이루어진 ROM인 EEPROM(Electrically Erasable Programmable ROM)이다. 

RAM Block Initialization : NvM은 NvRAM과 RAM의 두 영역이 동작한다. ECU 시작 시, NvM Block은 Runtime에 사용 중인 변수에 NvM ReadAll API를 통해 RAM에 자신의 정보를 기록한다. 이 API는 BswM에서 호출하게 된다. 

RAM Block Write : NvM Block에 저장된 변수에 쓰려고 하면, 실제로는 RAM의 일반변수에 쓰는 동작을 수행하는 것이다. 따라서 우리가 Run Time에 NvM 변수에 값을 쓴다는 행위는 사실 NvRAM에 작성하는게 아니라 NvRAM에 대응되는 RAM에 작성한다고 생각하면 된다. 그러면 NvRAM에는 어떻게 쓰게 되는것인가

NvM Write : NvM WriteBlock API를 사용하면 RAM 변수에 작성한 정보를 NvM 모듈의 MainFunction을 통해 NvRAM에 저장하게 된다. 보통은 Shut Down 과정에서 주로 이 저장 메커니즘을 동작시키게 된다. 

AUTOSAR 레이어 아키텍처에서 다른 모듈과의 FIM 상호 작용

 

728x90
반응형

'자동차 및 자동차 SW > AUTOSAR' 카테고리의 다른 글

FEE Module과 Garbage Collection  (0) 2023.07.31
NvM 개요  (0) 2023.07.26
Implementation Data Type vs Application Data Type  (0) 2023.07.19
ASSEMBLY CONNECTORS VS DELEGATION CONNECTORS  (0) 2023.07.18
CAN DBC Signal Group  (0) 2023.07.18
Comments