본문 바로가기
한국으로/ARM

Cortex-A9 Coprocessor

by 영킴. 2018. 7. 29.

Cortex-A9 Coprocessor


CP15 기능

1. SCR (System Control Coprocessor)
2. MMU 설정 및 제어
3. I-Cache, D-Cache 설정 및 제어
4. L2 Cache Preload Engine의 설정 및 제어
5. System Performance Monitor
6. C0-C15 16개의 레지스터 보유



리턴 스택

1. 함수 호출 시 복귀주소를 스택에 저장
2. 리턴 명령을 prefecth하면 복귀주소를 POP하여 그 주소의 명령부터 prefetch
3. 리턴이 발생하면 pipeline flushing 없이 계속 리턴 이후 명령 수행이 가능.

*참고로 prefetch된 명령들은 MMU T/T 등이 변경되기 전의 조건에서 fetch된 명령들이기 때문에, 현재 명령이 MMU 변경 명령라서 다음 명령들이 영향을 받을 경우 문제가 된다. 예를 들면, 다음 명령을 MMU가 translate한 PA 주소에서 가져와야 하는데, prefetch된 명령은 변경하지 않은 VA에서 가져온 명령일 경우의 문제이다. 이 때는 pipeline의 flush가 필요하다. ISB (Instruction Synchronous Barrier)로 MMU remap을 해주자.


BX LR

MOV PC

LR

LDM SP!, {regs, PC}

POP {regs PC}




'한국으로 > ARM' 카테고리의 다른 글

MMU  (0) 2018.07.29
Interrupt Controller  (0) 2018.07.29
ARM Mode(모드) and Exception(예외)  (0) 2018.07.24
Tail Call  (0) 2018.07.24
정수 승격과 형변환 문제  (0) 2018.07.22
다중 메모리 이동: LDM, STM  (0) 2018.07.22
AAPCS와 레지스터 테이블  (0) 2018.07.21
ARM의 특수 용도 레지스터  (0) 2018.07.21