Brise

STM32F7(Cortex-M7) 캐시 Invalidate 본문

MCU

STM32F7(Cortex-M7) 캐시 Invalidate

naudhizb 2020. 10. 17. 20:48
반응형

Cortex-M7 프로세서 기반의 MCU인 STM32F7 프로세서에는 I/D Cache(데이터, 명령어) 캐시가 포함되어 있다.
일반적으로 MCU 레벨의 응용에서는 별도의 명령어를 자체 생성하지는 않기 때문에 명령어 캐시에 대한 일관성(Coherency)을 맞추기 위한 노력은 필요하지 않지만, 데이터에 대해서는 CPU Core 뿐만 아니라 DMA 코어 또한 데이터에 접근할 수 있기 때문에 CPU가 인식하지 못하는 상태에서 데이터가 변경되는 경우 데이터 일관성에 대하여 고려하여야 한다.
이를 위하여 사용자가 데이터 일관성을 맞출 수 있는 방법은 크게 두 가지 방법이 있다.
첫번째, MPU를 이용하는 방법이 있다. MPU를 이용하면 접근하는 메모리 영역에 대하여(실제로는 ARM MCU가 메모리맵 I/O 방식을 이용하기 때문에 접근하는 모든 장치를 의미할 수 있다.) 캐시정책과 접근정책, 공유정책을 설정할 수 있다. 물론 설정 상에 어느정도 제한 사항을 가질 수 있지만 설정이 어느정도 간결하다.
두번째, DMA동작에 대하여 특정 조건에서 데이터 일관성을 맞추기 위한 코드를 삽입하는 방식이 있다. CPU 코어와 DMA 장치 사이에서 데이터 일관성을 맞추기 위해서는 두 가지 위치에 코드를 삽입하여야 한다.

반응형
Comments