KalelPark's LAB

[ Computer Architecture ] 레지스터, 인터럽트란? 본문

Study/Computer Architecture

[ Computer Architecture ] 레지스터, 인터럽트란?

kalelpark 2023. 1. 28. 09:19

레지스터(Register) 종류

       - 프로그램 카운터

       - 명령어 레지스터 

       - 메모리 주소 레지스터 

       - 메모리 버퍼 레지스터 

       - 플레그 레지스터 

       - 범용 레지스터 

       - 스택 레지스터 

       - 베이즈 레지스터 

프로그램 카운터

메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저장합니다. 프로그램 카운터 명령어 포인터라고 부르는 CPU도 있습니다.

 

명령어 레지스터

해석할 명령어, 즉 방금 메모리에서 읽어 들인 명령어를 저장하는 레지스터를 의미합니다. 제어장치는 명령어 레지스터 속 명령어를 받아들이고, 해석한 뒤 제어 신호를 보냅니다.

 

메모리 주소 레지스터

메모리의 주소를 저장하는 레지스터입니다. 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 주소 레지스터를 거치게 됩니다.

 

메모리 버퍼 레지스터

메모리와 주고받을 값을 저장하는 레지스터입니다. 즉 메모리에 쓰고 싶은 값이나 메모리부터 전달받은 값은 메모리 버퍼 레지스터를 거칩니다.

인터럽트

     - 동기 인터럽트, 비동기 인터럽트

동기 인터럽트

CPU에 의해 발생하는 인터럽트입니다. CPU가 명령어들을 수행하다가 예상치 못한 상황에 마주쳤을 때, 가령 CPU가 실행하는 프로그래밍상의 오류와 같은 예외적인 상황에 마주쳤을 때 발생하는 인터럽트가 동기 인터럽트이다. 이런 점에서 동기 인터럽트는 예외라고도 부릅니다. 

 

비동기 인터럽트 (하드웨어 인터럽트)

주로 입출력장치에 의해 발생하는 인터럽트이다. 입출력장치에 의한 비동기 인터럽트는 세탁기 완료 알림과 같은 알림역할을 한다.

   - 구체적으로 CPU가 프린터와 같은 입출력장치에 입출력 작업을 부탁하면 작업을 끝낸 입출력장치가 CPU에 완료 알림을 보냅니다.

 

순서

  - 입출력장치는 CPU에 인터럽트 요청 신호를 보냅니다.

  - CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인합니다.

  - CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 확인합니다.

  - 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업합니다.

  - CPU는 인터럽트 벡터에 참조하여 인터럽트 서비스 루틴을 실행합니다.

  - 인터럽트 서비스 루틴 실행이 끝나면 백업 작업을 실행합니다.

 

 

Comments