반응형
CPU의 명령 실행주기
명령어 처리란?
- 하나의 명령어 실행이 끝난 후, 다음 명령어의 수행이 시작돼 끝날때까지 걸리는 시간을 말한다
- 한 명령이 실행되고 다음 명령의 인출이 시작되는 주기이다
이런 실행주기를 Instrucktion Cycle 이라고 하고 이에는 4계의 단계가 있다.
기능 | 부가설명 | |
FETCH(인출) | 메모리에서 명령을 읽어 명령어 레지스터에 저장한다 -> 다음 명령어를 실행하기 위해 카운터(PC)를 증가시킨다. | |
INDIRECT(간접) | 명령어를 수행하기 전에 실제 데이터가 저장된 주기억장치의 유효주소를 한번 더 읽어 옴 | 간접주소 방식을 사용할때 실행 |
EXECUTION(실행) | 인출한 명령어를 해독, 제어신호를 발생시켜 명령어 실행 | |
INTERRUPT(인터럽트) | 실행 사이클이 끝나고 인터럽트 요구 검사가 없다면 실행, 있다면 -> 주소를 특정 장소에 저장했다가 인터럽트 처리 완료 후 복귀하여 수행 | 작동 중 예기치 못한 문제가 발생 하더라도 안정적으로 실행할 수 있게 해줌 |
- 실행과정
- 기본
- PC -> MAR
MAR -> MBR
MBR -> IR(명령어 레지스터)
- PC -> MAR
- 간접사이클의 경우
- IR -> MAR
MAR -> MBR
MBR -> IR
- IR -> MAR
- 기본
의 순으로 진행될 것이다. 레지스터 명으로 써서 이해가 가지 않을 수 있는데 아래 링크를 참조 해도 좋을거 같다.(매번 잘 정리 해놓진 못한다는걸 알지만.)
https://404notonc.tistory.com/25
인터럽트?
위에서의 내용을 보다 보면 인터럽트라는 말이 있는데 이것이 뭔지 모를 수 있다.
설명하자면 예기치 못한 사건(사용자 입력,잘못된 명령어 수행 등)이 생겼을때 시스템이 적절히 처리하기 위해 있는 것으로 현재 실행 중인 프로그램 중단 후 다른 프로그램 실행을 요구한다. 그리고 실행 중이었던 프로그램은 다른곳에 저장해놨다가 인터럽트 절차를 모두 끝내 오류를 잡고 다시 복귀하여 실행시킨다.
인터럽트가 필요한 이유는 시스템 처리 효율이 향상되고, 사용자가 별도로 조치할 필요 없이 운영체제가 알아서 처리하기 때문이다.
반응형
'시스템' 카테고리의 다른 글
중앙처리장치-정의,구성 (0) | 2022.01.19 |
---|---|
리눅스 기본 명령어1 (0) | 2021.12.06 |
어셈블리 스택프레임 (0) | 2021.11.07 |
어셈블리어 레지스터 (0) | 2021.11.07 |