반도체 소프트웨어

요약 3. 노멀 메모리 본문

CPU Architecture/ARM Memory Model & Barrier

요약 3. 노멀 메모리

반도체 소프트웨어 엔지니어 2024. 1. 26. 11:06
  1. ARM아키텍처에서는 노멀 메모리 타입을 캐싱이 되는 영역으로 정의
  2. 명령어를 실행하거나 이 과정에서 처리되는 데이터나 코드 영역(코드 섹션 등)
  3. 일반적인 프로그램이 동작하는 메모리 영역
  4. 노멀 메모리 타입 영역의 동작 방식
    • 머지 엑세스
      • 연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리
      • 성능 향상을 위한 프로세서 기법
      • 소프트웨어 버그의 원인이기도 함
    • 스페큘레이션 엑세스
      • 소프트웨어에서 자주 접근하는 데이터를 예측해 미리 로딩하는 동작
      • 패턴 인식과 같은 알고리즘을 활용
    • 리오더링 엑세스
      • ARM프로세서는 명령어 간 의존성이 없는 경우 명령어 순서를 바꿔 처리하기도함
      • 프로세서의 성능 향상
      • 소프트웨어 버그의 원인이기도 함
    • 메모리 리오더링
      • 성능을 더 키우기 위한 프로세서의 설계 방식
      • ARM프로세서 내부에서 성능을 키우기 위해 내부에서 어셈블리 명령어의 순서를 바꿔실행
      • 명령어 의존성을 체크해서 적용/비적용: 어드레스 의존성이 있는 경우에는 메모리 리오더링이 수행되지 않는다
      • 어셈블리어는 가상 주소 영역에서 실행되고 이를 MMU가 변환하여 캐시, 메모리 등 실제 메모리에 접근한다. ARM에 다양한 버퍼가 있구나 ex) write buffer
      • 리오더링 예시
        1. Access3가 cache hit이 되어서 가장 빨리 처리됨
        2. Access2는 cache miss되어서 중간으로 처리됨
        3. Access1은 애초에 오래걸려서 마지막으로 처리됨
    • 이런 최적화를 위한 특징들이 소프트웨어 버그 유발하는 것을 막기 위해 배리어에 대해 공부해야함
      • 최적화 종류
        1. 컴파일러 최적화
        2.  ARM 코어 실행시 최적화

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

 

 

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

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