명령어 사이클
명령어의 실행 과정 즉 인출 사이클,실행 사이클,간접 사이클,인터럽트 사이클 과정들을 나타낸다.
인터럽트
cpu 가 잠시 수행 중인 작업은 방해를 받아 잠시 중단되는 신호.
인터럽트는 크게 두가지로 나뉜다.
1. 동기 인터럽트
2. 비동기 인터럽트
동기 인터럽트
동기 인터럽트는 CPU에 의해 발생하는 인터럽트이다. 명령어들이 수행 과정중 예상치 못한 상황들을 마주했을 때 발생
즉 exception 상황일 때 이다.
비동기 인터럽트
하드웨어 인터럽트와 같은 의미로 알림과 같은 인터럽트이다. CPU작업 도중에도 효율적인 명령어 처리를 위해 사용한다.
CPU 처리 속도는 외부의 데이터 처리 속도보다 훨씬 빠르다. 따라서 외부의 신호들과의 처리과정에서 효율적인 처리를 위해서는 인터럽트를 활용한다.
하드웨어 인터럽트의 과정은 아래와 같다.
1.입출격장치는 CPU에 인터럽트 요청 신호를 보낸다.
2.CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인한다.
3.CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인한다.
4,인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업한다.
5. CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행한다.
6.인터럽트 서비스 루틴 실행이 끝나면 4에서 백업해 둔 작업을 복구하여 실행을 재개한다.
인터럽트 플래그 및 인터럽트 요청신호
플래그 레지스터에 있는 인터럽트 플래그가 가능상태이면 인터럽트 요청 신호를 받아들인다.
이때 가능 불가능은 무조건은 아닌 우선순위에 기반을 따른다.
인터럽트 서비스 루틴
인터럽트 서비스 루틴이란 인터럽트를 처리하기 위한 프로그램이다. 인터럽트 핸들러라고도 불린다.
인터럽트 벡터
이때 이 루틴들을 활용하기 위해 필요한 인터럽트 정보 주소들을 미리 저장해놓는것을 인터럽트 벡터라고 한다.
이 인터럽트를 하는 과정 전에 기존에 있던 레지스터에 있는 값들은 모두 스택에 백업을 해둔 후에 작업하게 된다.
'CS > 컴퓨터 구조&운영체제' 카테고리의 다른 글
[컴퓨터 구조 &운영체제] 7.명령어 병렬 처리 기법 (0) | 2024.05.07 |
---|---|
[컴퓨터 구조 &운영체제] 6.CPU 설계 (2) | 2024.04.30 |
[컴퓨터 구조 &운영체제] 4.CPU (1) | 2024.04.25 |
[컴퓨터 구조 & 운영체제] 3.명령어 (0) | 2024.04.24 |
[컴퓨터 구조 & 운영체제]2. 데이터 (0) | 2024.04.23 |