728x90
CPU가 명령어를 순차적으로 처리하는 양상
명령어 사이클: cpu가 명령어를 처리하는 정형화된 주기, 흐름
인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> 인출 사이클 -> 실행 사이클 -> ...
그러나, 간접 주소 지정 방식처럼 실제 연산에 사용될 데이터를 얻기 위해 한 번 더 메모리에 접근해야 할 경우가 있다. 오퍼랜드 필드에 유효 주소의 주소가 들어가 있다면 메모리에 두 번 접근해야 한다. 이때 간접 사이클이 추가된다.
인터럽트
cpu의 정상적인 실행 흐름을 방해하는 신호. exception, fault
동기 인터럽트 (예외, Exception)
주로 CPU에 의해 발생, 명령어 처리 도중 비정상적인 상황에 마주했을 경우 발생한다. 디버깅할 때 break point도 여기에 해당한다.
비동기 인터럽트(하드웨어 인터럽트)
주로 입출력장치에 의해 발생
세탁기 완료 알림, 전자레인지 조리 완료 알림과 같은 '알림' 역할 수행
💡 왜 존재하고 왜 사용할까?
작업을 수행하는 동안에 다른 걸 할 수 있기 때문이다. 만약에 비동기 인터럽트가 없다면 프린트기에 프린트를 요청하고 이게 완료가 되었는지 cpu가 주기적으로 체크해줘야 한다(polling). 불필요한 cpu 사이클 낭비를 방지하기 위함이다.
하드웨어 인터럽트 처리 순서
- 입출력장치는 CPU에게 인터럽트 요청 신호를 보냄
- CPU는 실행 사이클 이후 인출 전 인터럽트 여부 확인
- CPU는 인터럽트 요청 확인 후, 인터럽트 플래그를 통해 인터럽트 수용 여부 확인
- 인터럽트가 가능하다면 지금까지의 작업 백업(메모리 내 스택 영역). 주로 프로그램 카운터를 저장한다.
- 인터럽트 벡터(인터럽트의 종료에 따라 달라질 인터럽스 서비스 루틴의 시작주소)를 참고하여 인터럽트 서비스 루틴(해당 인터럽트를 처리하기 위한 특별한 프로그램. 인터럽트 핸들러 실행)
- 인터럽트 서비스 루틴 실행 후 백업한 작업 복구, 실행 재개
• 인터럽트 요청 신호: CPU 작업을 방해하는 인터럽트에 대한 요청
• 인터럽트 벡터: 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별 정보
• 인터럽트 서비스 루틴: 인터럽트를 처리하는 프로그램
'Upstage AI Lab 4기 > 컴퓨터 공학' 카테고리의 다른 글
[컴퓨터 구조] 논리 주소와 물리 주소 (0) | 2024.07.25 |
---|---|
[컴퓨터 구조] CPU 성능 (1) | 2024.07.24 |
[컴퓨터 구조] CPU 핵심 구성 요소 (1) | 2024.07.17 |
[컴퓨터 구조] 2의 보수법, 부동 소수점, 문자 인코딩과 디코딩 (0) | 2024.07.17 |
[컴퓨터 구조] 명령어 오퍼랜드 필드에서의 주소 지정 방법 (0) | 2024.07.17 |