본문/내용
예 비 보 고 서
14주차. Abort Handling
◎ Data abort exception 동작과정
Data abort는 잘못된 어드레스 공간에서 데이터를 읽거나 쓰려고 할 때, MMU나 메모리 제어기에서 발생한 Abort 신호의 입력에 의해 발생한다.
즉, Excute 단계에서 발생한다.
순 서
동 작
동 작 설 명
1
SPSR_abt = CPSR
2
CPSR 값 변경
CPSR[5] = 0
ARM state로 전환
CPSR[6] = no charge
CPSR[7] = 1
IRQ disable
CPSR[4:0] = 10111’b
Abort 모드로 전환
3
LR_abt = address of abort + 8
4
PC = 0x10
다시 실행하고 싶으면 2cycle 빼주고, 명령어는 다음과 같다.
pc= lr- 2cycle
다음 단계를 실행 하고 싶으면 1cycle 빼주고, 명령어는 다음과 같다.
pc = lr -1cycle
cpsr=spsr
◎ MMU
MMU는 CPU의 Memory 주소를 감쪽같이 속이는 역할을 한다. CPU가 Memory를 Access할 때 마다 주소를 속인다. 주소를 속여서, Physical Address와 Virtual Address의 Mapping을 MMU가 갖고 이용한다.
MMU를 사용함으로써, Task 마다 또는 Program마다 똑같은 주소를 사용해도 되게 만들어 준다. 모든 Task는 0x0∼0x3000 번지까지 자리 잡도록 Compile하더라도, MMU를 사용한다면 문제가 없다. 물리적으로는 0x3000∼0x5FFF번에 올라와 있는 A Task나, 0x6000∼0x8FFF에 올라와 있는 B Task나 MMU가 이용된다면 0x3000∼0x5FFF도 0x0∼0x3000처럼, 0x6000∼0x8FFF도 0x0∼0x3000처럼 인식될 수 있다.
또한 두 개의 CS를 사용하는 RAM의 물리적 주소가, 0x00000∼0x10000 CS1, 0x200…
또한 두 …