Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- udemy
- 코멘토
- 실무PT후기
- Kernel
- ARM 아키텍처: 메모리모델과 배리어
- 코멘토실무PT
- Arm 아키텍처: 캐시
- Arm 아키텍처: 메모리 모델과 배리어
- yocto
- arm
- BSP
- 빌드 시스템
- ARM 아키텍쳐: 메모리 모델과 배리어
- 인프런
- 시스템 소프트웨어 개발을 위한 ARM 아키텍처의 구조와 원리
Archives
- Today
- Total
반도체 소프트웨어
요약 3. 노멀 메모리 본문
- ARM아키텍처에서는 노멀 메모리 타입을 캐싱이 되는 영역으로 정의
- 명령어를 실행하거나 이 과정에서 처리되는 데이터나 코드 영역(코드 섹션 등)
- 일반적인 프로그램이 동작하는 메모리 영역
- 노멀 메모리 타입 영역의 동작 방식
- 머지 엑세스
- 연속된 메모리 공간에 접근하는 2개 이상의 명령어를 한번에 처리
- 성능 향상을 위한 프로세서 기법
- 소프트웨어 버그의 원인이기도 함
- 스페큘레이션 엑세스
- 소프트웨어에서 자주 접근하는 데이터를 예측해 미리 로딩하는 동작
- 패턴 인식과 같은 알고리즘을 활용
- 리오더링 엑세스
- ARM프로세서는 명령어 간 의존성이 없는 경우 명령어 순서를 바꿔 처리하기도함
- 프로세서의 성능 향상
- 소프트웨어 버그의 원인이기도 함
- 메모리 리오더링
- 성능을 더 키우기 위한 프로세서의 설계 방식
- ARM프로세서 내부에서 성능을 키우기 위해 내부에서 어셈블리 명령어의 순서를 바꿔실행
- 명령어 의존성을 체크해서 적용/비적용: 어드레스 의존성이 있는 경우에는 메모리 리오더링이 수행되지 않는다
- 어셈블리어는 가상 주소 영역에서 실행되고 이를 MMU가 변환하여 캐시, 메모리 등 실제 메모리에 접근한다. ARM에 다양한 버퍼가 있구나 ex) write buffer
- 리오더링 예시
- Access3가 cache hit이 되어서 가장 빨리 처리됨
- Access2는 cache miss되어서 중간으로 처리됨
- Access1은 애초에 오래걸려서 마지막으로 처리됨
- 이런 최적화를 위한 특징들이 소프트웨어 버그 유발하는 것을 막기 위해 배리어에 대해 공부해야함
- 최적화 종류
- 컴파일러 최적화
- 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 |