목차
PSR(Program Status Registers)
PSR은 말 그대로 현재 프로그램이 가지고 있을 상태/옵션을 저장하는 레지스터입니다.
현재 상태인 CPSR(Current PSR)과 5개의 SPSR(Saved PSR)이 있으며, SPSR은 프로세서 모드에 각각 1개씩 총 5개의 모드에 5개의 SPSR이 있습니다. 이 PSR들은 특수한 명령어들로만 조작 가능합니다.
PSR은 32비트의 공간을 쪼개서 상태/옵션에 대한 정보를 담습니다.

○Condition code flags : ALU의 연산 결과에 flag 정보. N(마이너스), Z(0), C(Carry. 올림/내림,Shift연산 넘어갈 때), V(oVerflow 발생인 경우)
○ Sticky Overflow flag - Q flag
○ J bit : Jazelle state : Java 바이트코드를 실행임을 나타냄.
○ Mode bits : 모드 비트
○Interrupt Disable bits : IRQ, FIQ 인터럽트 disable
○ T Bit : ARM/Thumb state 중 어떤 것인지 체크
○ GE[3:0] : some SIMD instructions에서 사용
○E bit : load/store endianness
○IT[abcde] : Thumb2 명령어 그룹에서 IF THEN 조건실행
* ALU(Arithmetic and Logical Unit) : 산술 논리 장치는 덧셈 뺄셈 같은 두 숫자의 산술역산과 배타적 논리합, 논리곱 등 논리 연산을 계산하는 디지털 회로입니다. (출처 : 산술 논리 장치 - 위키백과)
프로세서 모드 (Banking Registers-)
ARM은 7개의 basic operating modes가 있습니다. 각 모드는 자신의 스택 공간이 있고 레지스터의 다른 부분을 가지고 있습니다. 이는 같은 기능을 하는 물리적으로 별개인 레지스터입니다.
User mode에서 이제 특정 이유로 다른 모드로 가게 된다면 해당 모드에 있는 레지스터 부분을 User mode와 교체하는 방식입니다.
예를들어 IRQ 모드에서 sp(r13), lr(r14), spsr 3개의 레지스터를 들고 있고, User mode에서 IRQ 모드로 교체될 때 User mode에 sp, lr, cpsr을 IRQ모드에 레지스터로 갈아 끼웁니다.

예외 처리(Exception)
외부의 요청, 오류 등으로 프로그램 동작 멈추고 모드를 바꾸고 외부의 요청이나 오류에 대한 처리를 하는 과정입니다.
(I/O 인터럽트 → IRQ Exception 발생으로 IRQ 모드로 전환하여 동작 수행)
*과정
프로그램코드에서 외부 입력 등 예외 → CPSR을 SPSR에 보관, 모드 변경, vector table 브랜치 → Top-level handler → Handler for specific source →왔던 부분으로 다시 return ...
*Exception Vector : Exception이 발생하면 미리 정해둔 처리 프로그램에 위치
*Exception Vector Table : Exception Vector를 정의해 놓은 테이블로 각 Exceptiond은 1word 크기의 ARM 명령어 저장 공간을 가지며, 일반적으로 0x00 0번지부터 시작됩니다. Table 엔트리는 handler(명령)를 포함하고, 주소가 들어가는 경우도 있습니다.

'강의 > 컴퓨터구조' 카테고리의 다른 글
Computer Architecture - Memory (0) | 2023.07.26 |
---|---|
Computer Architecture - Pipeline (0) | 2023.07.25 |
Computer Architecture - Registers and Instruction Set (0) | 2023.06.30 |
Computer Architecture - Overview (0) | 2023.06.26 |