인프런 커뮤니티 질문&답변

한울님의 프로필 이미지
한울

작성한 질문수

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

컴퓨터 구조의 큰 그림

CPU 명령 실행 예시에서

해결된 질문

작성

·

565

0

1. 제어장치가 ALU에게 100과 120을 더하라는 지시를 하는 것도 제어신호를 통해 이루어지는 것인가요?

2. 만약 맞다면 해당 제어신호는 제어장치가 1번째 메모리 읽기 신호를 통해 읽어온 명령어를 해석한 직후에 전송되는 것인가요?

아니라면 어느 시점에 전송되는 것인가요?

3. CPU의 역할 중에서 메모리에 저장된 명령어 읽어들이기 + 읽어들인 명령어 해석은 제어장치가 단독으로 하는 것으로 생각되지만

읽어들인 명령어의 실행은 제어장치와 ALU가 함께하는 업무인 것인가요?

답변 1

1

강민철님의 프로필 이미지
강민철
지식공유자

1. 제어장치가 ALU에게 100과 120을 더하라는 지시를 하는 것도 제어신호를 통해 이루어지는 것인가요?

네 그렇습니다

2. 만약 맞다면 해당 제어신호는 제어장치가 1번째 메모리 읽기 신호를 통해 읽어온 명령어를 해석한 직후에 전송되는 것인가요?

네 그렇습니다, 명령어를 해석해야 수행할 연산도 특정될 수 있기 때문입니다.

3. CPU의 역할 중에서 메모리에 저장된 명령어 읽어들이기 + 읽어들인 명령어 해석은 제어장치가 단독으로 하는 것으로 생각되지만 읽어들인 명령어의 실행은 제어장치와 ALU가 함께하는 업무인 것인가요?

네, 위 강의 상황에서는 그렇습니다. 다만 조금 더 엄밀히 말씀드리자면 '명령어의 실행'이라는 표현은 상황에 따라 다르게 사용될 수 있다는 점에 유의해주셔야 합니다. 예를 들어 어떤 명령어가 'a 레지스터에 있는 내용을 b 레지스터로 옮겨 저장해라' 일 경우에는 ALU가 필요하지 않을 것입니다. 이 경우 명령어 실행은 레지스터와 제어장치가 참여합니다.

한울님의 프로필 이미지
한울
질문자

추가적으로 궁금한 게 있는데요

1. 그럼 제어장치가 메모리 1번지 명령어를 해석하자마자 ALU와 메모리에 동시에 제어신호를 전송하게 되는데

ALU에게 전송되는 제어신호는 '잠시 뒤에 2번째 레지스터랑 3번째 레지스터에 값이 저장될 텐데, 저장되면 바로 더하는 연산 실행하고 4번째 레지스터에 저장해'

이런 식인 것인가요?

2. 제어장치가 메모리 읽기 등의 제어신호를 전송할 때, 동시에 레지스터에게도 제어신호가 따로 전송되나요?

ex) '메모리에 읽기 제어신호 요청해놨으니까 해당 값을 메모리가 건네주면 너가 저장해놓고 있어'

3. 2번의 경우 외에도

'a 레지스터에 있는 내용을 b 레지스터로 옮겨 저장해라'와 같은 명령어를

제어장치가 해석하고 실행할 때에도 레지스터에게 제어신호가 따로 전송이 되는지 궁금합니다.

강민철님의 프로필 이미지
강민철
지식공유자

  1. 세세하게 따져 들어가면 그렇습니다. (강의 뒷부분을 보시면 명령어는 명령코드와 오퍼랜드로 이루어져 있다는 설명이 있을 텐데, 그를 보시면 이해가 되실 것입니다)

  2. 3. 네 그렇습니다. 결국 모든 레지스터는 신호와 연결되어 있기는 합니다. 다만 이 부분은 CPU마다 설계가 다를 수 있기에 구체적인 구성이나 동작 방식을 일반화하여 설명드리기 모호할 듯 합니다.

한울님의 프로필 이미지
한울
질문자

답변 감사합니다!

한울님의 프로필 이미지
한울
질문자

그런데 제어장치에서 ALU로 제어신호를 내보낼 때도 제어장치에서 메모리로 제어신호를 내보낼 때처럼 제어버스(시스템버스)를 통하게 되는 것인가요?

강민철님의 프로필 이미지
강민철
지식공유자

안녕하세요,

CPU 내부 간에 제어 신호를 주고받을 적에는

굳이 시스템 버스(제어 버스)를 이용할 필요가 없습니다.

CPU 내부 회로를 통해 주고받습니다.

시스템 버스는 각기 다른 부품을 연결하기 위한 통로(버스)이기 때문입니다.

한울님의 프로필 이미지
한울

작성한 질문수

질문하기