728x90
명령어 사이클
- 프로그램 속 명령어들은 일정한 주기가 반복되며 실행 이 주기를 명령어 사이클이라 한다
인터럽트
- 작은 방해를 받아 갑자기 중간되는 현상을 말함
- CPU가 얼른 처리해야 할 다른 작업이 생겼을 때 발생!
- 동기 인터럽트 (예외) : CPU에 의해 발생하는 인터럽트. CPU가 예기치 못한 상황을 접했을 때 발생
- 비동기 인터럽트(하드웨어 인터럽트) : 주로 입출력장치에 의해 발생 (알림과 같은 역할)
-> 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 사용
하드웨어 인터럽트의 처리 순서(but 종류를 막론하고 처리 순서는 대동소이하다)
1. 인터럽트 요청 신호 :인터럽트는 CPU의 정상적인 실행흐름을 끊는 것이기에, 인트럽트 하기 전에 "지금 끼어들어도 되나요?" 라고 묻는것
2. 인터럽트 플래그 : 말 그대로 하드웨어 인터럽트를 받아 들일지, 무시할지 결정하는 플래그. -> CPUR가 중요한 작업을 처리하고 있거나 하면 인터럽트 플러그는 불가능으로 설정 된다.
3. 인터럽트 서비스 루틴 : 인터럽트를 받아들이기로 했다면, 실행 된다. -> 인터럽트가 실행 되었을 때 인터럽트를 어떻게 처리 하기 위한 프로그램 ex)"키보드가 인터럽트 요청을 보내면 이렇게 해야한다";
'CPU가 인터럽트를 처리한다' -> 인터럽스 서비스 루틴을 실행(원래 하던 것을 멈추고)하고 본래 수행하던 곳으로 다시 되돌아온다
4. 인터럽트 벡터 : 각각의 인터럽트를 구분하기 위한 정보
음.. 한마디로..
'컴퓨터 구조' 카테고리의 다른 글
빠른 CPU를 만들어보자!(2) : 명령어 병렬 처리 기법 (0) | 2023.02.03 |
---|---|
빠른 CPU를 만들어보자!(1) : 클럭, 코어,스레드 (0) | 2023.02.03 |
CPU안의 ALU & 제어장치 & 레지스터 (0) | 2023.02.03 |
소스 코드와 명령어 (0) | 2023.02.03 |
0과 1로 어떻게 숫자 & 문자를 표현하지?! (0) | 2023.02.03 |