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
- arm
- Kernel
- BSP
- Arm 아키텍처: 메모리 모델과 배리어
- udemy
- 코멘토
- 실무PT후기
- ARM 아키텍처: 메모리모델과 배리어
- 빌드 시스템
- yocto
- 인프런
- 시스템 소프트웨어 개발을 위한 ARM 아키텍처의 구조와 원리
- ARM 아키텍쳐: 메모리 모델과 배리어
- Arm 아키텍처: 캐시
- 코멘토실무PT
Archives
- Today
- Total
반도체 소프트웨어
요약 4. 배리어(Barrier) 본문
- 메모리 리오더링의 사이트 이펙트(노멀 메모리에서 ARM 코어 최적화)에 의한 소프트웨어 버그를 예방하기 위한 기법
- ARM 아키텍처는 명령어 실행 순서를 보장하는 배리어 제공
- DMB(data memory barrier): 메모리 엑세스 순서 보장
- 메모리 머지(연속 메모리 접근), 리오더링들에 의해 명령어 순서가 바뀌는 것을 방지하기 위해 사용
- 예를 들면 CPSR셋팅 등으로 실행 흐름이 변경될수있는 명령어라면 실행 순서가 바뀌면 안되며 이럴때는 배리어 사용해줘야함
- STR, LDR에만 적용 가능. 즉 메모리 엑세스 명령어에만 적용됨
- DMB <qual> (qual: 배리어 명령어 실행 범위 제한)
- DSB(data synchronizatinon barrier): 메모리 리오더링과 명령어 리오더링을 함께 방지하는 기능(DMB + ISB)
- DSB명령어 실행하면 아래 작업이 완료될때까지 추가 명령어 실행을 멈추고 스톨하기에 시스템 성능에 영향을 줄수있어 남발하면 안됨
- instruction 및 data 캐시 조작
- branch predictor 캐시 flush
- 지연된 load/store 명령의 처리
- TLB 캐시 조작 완료
- DMB명령이 하는일
- DSB명령어 실행하면 아래 작업이 완료될때까지 추가 명령어 실행을 멈추고 스톨하기에 시스템 성능에 영향을 줄수있어 남발하면 안됨
- ISB(instruction synchronization barrier): 명령어 실행 순서 보장
- 파이프라인: 여러 개의 명령어를 병렬로 읽어서 처리
- 명령어 순서를 바꿔 실행하면 프로그래머가 입력한 코드가 의도대로 실행되지 않음
- 즉 여러 어셈블리명령어가 이미 파이프라인에 페치되어서 동작중인것
- 명령어 실행 순서를 보장하는 기능을 제공하는 배리어
- 시스템 레지스터 제어하는 명령어(MRS, MSR)사용이후에는 ISB배리어를 반드시 실행해줘야함
- ISB명령어가 실행되면 파이프라인에 미리 페치된 명령어들을 FLUSH(삭제하고) ISB이전 명령어 다 실행된 이후에 다시 그 이후 명령어들을 페치해서 실행하기 시작함
- 파이프라인: 여러 개의 명령어를 병렬로 읽어서 처리
- DMB(data memory barrier): 메모리 엑세스 순서 보장
출처: 인프런, "Arm 아키텍처: 메모리 모델과 배리어", https://inf.run/5b8vH
'CPU Architecture > ARM Memory Model & Barrier' 카테고리의 다른 글
요약 5. 배리어 고급 (0) | 2024.01.26 |
---|---|
요약 3. 노멀 메모리 (1) | 2024.01.26 |
요약 2. MMIO(Memory Mapped I/O) (1) | 2024.01.26 |
요약 1. 메모리 모델 개요 (0) | 2024.01.26 |