- 명령어 사이클
- 프로그램 속 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 함
- 인출 사이클 - 가장 먼저 CPU로 갖고 와야 한다
- 실행 사이클 - 갖고 왔으면 실행해야 한다
- 보통은 인출 - 실행으로 사이클을 돌리지만 어떤 명령어는 메모리 접근이 더 필요한 경우 간접 사이클을 거쳐 실행 사이클로 감
- 인터럽트
- 정해진 흐름을 끊는 것
- CPU가 주목해야할 때, CPU가 얼른 처리해야 할 다른 작업이 생겼을 때 발생
- 동기 인터럽트(예외)
- CPU가 예기치 못한 상황을 접했을 때
- 폴트, 트랩, 중단, 소프트웨어 인터럽트
- 비동기 인터럽트(하드웨어 인터럽트)
- 주로 입출력 장치에 의해 발생
- 알림(세탁기 완료 알림, 프린트 완료)과 같은 역할
- CPU가 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트 사용 ( 인터럽트가 없다면 주기적으로 확인해줘야함)
- 하드웨어 인터럽트 처리 순서
- 인터럽트 요청 신호
- CPU의 작업을 방해하는 인터럽트에 대한 요청 다만, 하드웨어 고장, 정전 등의 상황 일 경우 막을 수 없음
- 인터럽트 플래그
- 인터럽트 요청 신호를 받아들일지 무시할지를 결정하는 비트
- 인터럽트 서비스 루틴
- 인터럽트를 처리하는 프로그램
- 프로그램을 실행하다가 인터럽트가 들어오면 그 인터럽트에 해당하는 인터럽트 서비스 루틴을 실행 후 다시 돌아와서 프로그램 실행
- 인터럽트 벡터
- 인터럽트 서비스 루틴의 시작 주소를 포함하는 인터럽트 서비스 루틴의 식별 정보
- CPU가 인터럽트를 처리한다 - 인터럽트 서비스 루틴을 실행하고, 본래 수행하던 작업으로 다시 되돌아온다
- 인터럽트를 처리하기 위해 기존 작업을 스택에 백업했다가 인터럽트 실행 후 다시 불러와 실행한다
'CS지식 쌓기' 카테고리의 다른 글
명령어 병렬 처리 기법 (0) | 2023.12.29 |
---|---|
클럭,코어,스레드 (0) | 2023.12.29 |
ALU와 제어장치 (0) | 2023.12.29 |
명령어와 주소 지정방식 (0) | 2023.12.29 |
고급언어, 저급언어 (1) | 2023.12.29 |