1.명령어 싸이클(Instruction cycle)
1)정의 :명령어를 처리하는 정형화된 흐름.
2)종류
-인출싸이클(fetch cycle) : 메모리에 있는 명령어를 가져오는 단계.

-실행싸이클(execution cycle) : 가져온 명령어를 실행하는 단계.

-간접싸이클(indirect cycle): 메모리 접근이 더 필요해질 경우 추가되는 싸이클.

2.인터럽트(Interrupt)
1)정의: 정해진 흐름이 끊어지는 상태.

2)종류
-동기 인터럽트(syschronous interrupts)
:CPU가 명령어를 수행할 때 예상치 못한 상황에 처했을 때 발생하는 오류.
동기 인터럽트는 예외(exception)이라고 부른다.
-비동기 인터럽트(asynchronous interrupts)
:주로 입출력장치에 의해 발생하는 인터럽트 CPU에게 알림 역할을 한다.
하드웨어 인터럽트라고도 한다.

3.하드웨어 인터럽트 처리순서

-첫째. 입출력장치는 CPU에 인터럽트 요청신호를 보낸다.
*인터럽트 요청신호: 현재 실행되고있는 프로그램을 끊어도 되는지 파악하는 것.

-둘째. 실행싸이클이 끝나고 명령어를 인출하기전 인터럽트 여부를 파악
-셋째. CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 인터럽트를 받아들일 수 있는지 파악한다.
*인터럽트 플래그: CPU안 플래그 레지스터에 저장돼 있는 인터럽트 요청을 수용할 수 있는지에 대한 정보.


-넷째.인터럽트가 발생하면 여태까지의 작업을 백업한다.

-다섯 번째 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행.
*인터럽트 서비스 루틴(ISR):인터럽트를 처리하기 위한 프로그램.인터럽트 핸들러라고도 불린다.
*인터럽트 벡터: 인터럽트 서비스 루틴의 식별정보 및 프로그램 시작 정보.

-여섯 번째. 서비스 루틴 실행이 끝나면 저장해둔 백업 작업을 불러와 다시 재개한다.
*명령어 싸이클 구조

*예외의 종류

-폴트(falut): 예외를 처리한 직후 예외가 발생한 명령어부터 실행을 재개하는 것.
-트랩(trap): 예외를 처리한 직후 예외의 다음 명령어부터 실행을 재개하는 것.
-중단:프로그램을 강제로 중지시키는 것.
-소프트웨어 인터럽트: 시스템호출이 일어났을 때 발생.
'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글
| 10.명령어 병렬 처리기법 (0) | 2023.07.01 |
|---|---|
| 9.빠른 CPU설계를 위한 설계기법 (0) | 2023.06.29 |
| 7.레지스터 (0) | 2023.06.25 |
| 6.ALU와 제어장치 (0) | 2023.06.24 |
| 5.명령어의 구조 (0) | 2023.06.22 |