반도체 소프트웨어

요약 1. 메모리 모델 개요 본문

CPU Architecture/ARM Memory Model & Barrier

요약 1. 메모리 모델 개요

반도체 소프트웨어 엔지니어 2024. 1. 26. 00:51
  1. 메모리 구성, 메모리 어떻게 처리되는지에 대한 설계
  2. ARM사에서 사용하는 용어
  3. 메모리타입 분류
    • normal memory
      • 일반적인 시스템 소프트웨어 개발시에 사용하는 메모리 방식
      • 메모리 접근 순서 등 추가 작업을 ARM 코어가 진행
    • device memory(mmio)
      • Soc ip, block을 설정하기 위해 사용하는 메모리 방식
      • 추가 작업진행안하고 IP에만 접근해서 작업 진행
  4. 메모리맵
    • 메모리 영역을 속성별로 분류한 메모리 지도
    • 리눅스 커널에서 디바이스 트리로 메모리 맵 속성 지정
    • 프로젝트초반에 메모리 맵을 설정(각 코드별 HEAP, CODE, 데이터 사이즈를 측정)
    • kernel data,code 및 app data,code 영역
      • cacheable이라는 것이 nomale memory로 처리되는 것
      • 메모리 리오더링, 명령어 실행 순서를 상황에 따라서 바뀌서 처리될수도있음
    • Peripheral: non-cached/ordered
  5. 메모리 모델 잘 알아야하는 이유
    • ARM 프로세서의 메모리 처리 동작에 대한 폭넓은 이해
      • 노멀/디바이스 메모리
      • 메모리 리오더링
      • MMIO처리방식
      • 파이프라인
      • Shareability Domain
    • MMIO 처리 방식을 이해하기 위해
      • 디바이스드라이버 개발시 필수 사용
      • 페리페럴 커뮤니케이션 용도(센서, UART 콘솔, 각종 IP 제어)로 사용
      • 디버깅, 트러블슈팅
      • 디바이스 메모리 처리 방식을 따름
    • 배리어를 이해하기 위한 배경 지식
      • 실전개발에서 베리어는 매우 중요
      • 안정화단계에서 동시성 이슈를 해결하기 위해서 필요
      • 노멀 메모리 처리 방식
    • 실전 프로젝트에서 배리어를 활용하기 위해
      • 성능최적화
      • 크리티컬 섹션 보호
      • 병렬 처리
    • ARM 내부에서는 성능 최적화를 위해 명령어 실행순서를 바꾸기도함. 이러면 프로그래머 의도대로 실행되지 않을때가 있는데, 명령어 간 실행 순서를 보존하기 위해 배리어라는 개념도 도입됨
      • 각 CPU코어마다 개별적으로 어셈블리어를 실행한다는 것을 명심

 

출처: 인프런, "Arm 아키텍처: 메모리 모델과 배리어", https://inf.run/5b8vH

'CPU Architecture > ARM Memory Model & Barrier' 카테고리의 다른 글

요약 5. 배리어 고급  (0) 2024.01.26
요약 4. 배리어(Barrier)  (0) 2024.01.26
요약 3. 노멀 메모리  (1) 2024.01.26
요약 2. MMIO(Memory Mapped I/O)  (1) 2024.01.26