*해당 글은 '혼자 공부하는 컴퓨터구조 + 운영체제(강민철 지음)'을 참고하여 작성되었습니다.
*구체적인 예시와 함께 더 자세히 공부하고 싶으신 분들은 해당 책을 읽어보시기를 추천드립니다.
지난 시간까지 CPU에 대해서 배웠습니다.
CPU는 명령어를 실행하는 장치죠?
그래서 이번 시간에는 CPU가 명령어를 어떻게 실행하는지에 대해 알아보겠습니다.
CPU가 명령어를 처리하는 과정에는 정해진 흐름이 있습니다.
이 흐름을 명령어 사이클(Instruction Cycle)이라 합니다.
명령어 사이클이란, 하나의 명령어를 실행하는 전체 과정(주기)이라고 생각하면 됩니다.
CPU는 이렇게 정해진 흐름을 따라서 명령어들을 실행하게 되는데, 이 흐름이 중간에 끊어지기도 합니다.
자동차가 갑자기 끼어드는 것처럼요!
이렇게 실행 중인 프로그램을 잠시 중단하고 다른 프로그램을 실행하기도 하는데,
이러한 상황 혹은 이를 알려주는 신호를 인터럽트(Interrupt)라고 합니다.
오늘은 명령어 사이클에 대해서 알아보고, 다음에 인터럽트에 대해 자세히 다루도록 하겠습니다.
명령어 사이클(Instruction Cycle)
자, 우리가 어떤 명령어 하나를 실행한다고 생각해 봅시다!
우선 뭐부터 해야 할까요?
일단, 실행할 명령어를 메모리에서 CPU로 가져와야겠죠?
이 과정을 인출 사이클(Fetch Cycle)이라고 합니다.
명령어를 가져왔으니, 이제는 실행할 수 있죠?
CPU로 가져온 명령어를 실행하는 과정을 실행 사이클(Execution Cycle)이라고 합니다.
기본적으로는 이렇게 인출 사이클과 실행 사이클을 반복하면서 명령어가 실행됩니다!
하지만 명령어를 인출했다고 해서, 바로 실행할 수 있는 것은 아닙니다.
간접 주소 지정 방식의 경우, 오퍼랜드 필드에 유효 주소의 주소가 있기 때문에, 추가로 메모리 접근이 한 번 더 필요합니다.
이러한 단계를 간접 사이클(Indirect Cycle)이라고 합니다.
(참고 : 유효 주소에 접근하여 값을 가져오는 것은 실행 사이클에서 수행하지만,
유효 주소의 주소에 있는 유효 주소를 찾아내기 위해서는 간접 사이클이 필요합니다.)
이외에도, 명령어 사이클에서는 아까 설명했던 인터럽트를 고려해야 합니다.
이것은 다음 시간에 알아보겠습니다!
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조][기초] 하드웨어 인터럽트 (1) | 2025.03.27 |
---|---|
[컴퓨터구조][기초] 인터럽트 - 동기 / 비동기(하드웨어) 인터럽트 (0) | 2025.03.26 |
[컴퓨터구조][기초] CPU - 레지스터 (주소 지정 방식) (1) | 2025.03.18 |
[컴퓨터구조][기초] CPU - 레지스터 (0) | 2025.03.17 |
[컴퓨터구조][기초] CPU - 제어장치 (2) | 2025.03.14 |