컴퓨터 구조

컴퓨터 구조 명령 사이클

CPU, 메모리, 입출력 장치를 나열하는 것만으로 구조가 보이지 않는다. 프로그램 명령이 fetch, decode, execute를 거치며 주소 버스, 데이터 버스, 제어 버스를 어떻게 쓰는지 보면 병목과 시험 오답이 훨씬 선명해진다.

01

주소 지정

PC가 다음 명령의 주소를 가리키고 주소 버스로 메모리 위치를 요청한다.

주소는 위치, 데이터는 내용이다
02

명령 인출

메모리에서 명령어가 데이터 버스를 통해 CPU 내부 레지스터로 들어온다.

fetch 단계의 핵심이다
03

해독

제어장치가 opcode와 operand를 해석해 어떤 장치가 움직일지 정한다.

명령어 형식이 여기서 중요해진다
04

실행

ALU 연산, 메모리 접근, 분기, 입출력 제어가 명령 의미에 따라 수행된다.

결과는 레지스터나 메모리에 저장된다
05

병목 확인

CPU 속도, 메모리 접근 지연, 버스 폭, 캐시 적중률이 전체 처리량을 제한한다.

빠른 CPU만으로 성능이 결정되지 않는다
주소 버스
위치 선택 CPU가 접근할 메모리나 장치의 주소를 전달한다.
폭은 주소 공간과 연결된다
데이터 버스
값 전달 명령어와 데이터가 CPU, 메모리, I/O 사이를 이동한다.
폭은 한 번에 이동하는 양과 관련된다
제어 버스
동작 신호 읽기, 쓰기, 인터럽트, 클럭 같은 제어 신호를 전달한다.
방향과 타이밍을 맞춘다
명령 사이클
처리 순서 fetch, decode, execute가 반복되며 프로그램이 실행된다.
분기 명령은 다음 PC를 바꾼다

개념 확인

주소와 데이터 주소 버스와 데이터 버스의 역할을 예시로 구분해 말한다.
사이클 추적 단일 ADD 명령이 fetch-decode-execute를 어떻게 지나는지 적는다.
병목 질문 메모리가 느릴 때 CPU가 왜 기다리는지 버스와 캐시 관점에서 설명한다.