해결된 질문
작성
·
571
답변 1
1
1. 제어장치가 ALU에게 100과 120을 더하라는 지시를 하는 것도 제어신호를 통해 이루어지는 것인가요?
네 그렇습니다
2. 만약 맞다면 해당 제어신호는 제어장치가 1번째 메모리 읽기 신호를 통해 읽어온 명령어를 해석한 직후에 전송되는 것인가요?
네 그렇습니다, 명령어를 해석해야 수행할 연산도 특정될 수 있기 때문입니다.
3. CPU의 역할 중에서 메모리에 저장된 명령어 읽어들이기 + 읽어들인 명령어 해석은 제어장치가 단독으로 하는 것으로 생각되지만 읽어들인 명령어의 실행은 제어장치와 ALU가 함께하는 업무인 것인가요?
네, 위 강의 상황에서는 그렇습니다. 다만 조금 더 엄밀히 말씀드리자면 '명령어의 실행'이라는 표현은 상황에 따라 다르게 사용될 수 있다는 점에 유의해주셔야 합니다. 예를 들어 어떤 명령어가 'a 레지스터에 있는 내용을 b 레지스터로 옮겨 저장해라' 일 경우에는 ALU가 필요하지 않을 것입니다. 이 경우 명령어 실행은 레지스터와 제어장치가 참여합니다.
세세하게 따져 들어가면 그렇습니다. (강의 뒷부분을 보시면 명령어는 명령코드와 오퍼랜드로 이루어져 있다는 설명이 있을 텐데, 그를 보시면 이해가 되실 것입니다)
3. 네 그렇습니다. 결국 모든 레지스터는 신호와 연결되어 있기는 합니다. 다만 이 부분은 CPU마다 설계가 다를 수 있기에 구체적인 구성이나 동작 방식을 일반화하여 설명드리기 모호할 듯 합니다.
안녕하세요,
CPU 내부 간에 제어 신호를 주고받을 적에는
굳이 시스템 버스(제어 버스)를 이용할 필요가 없습니다.
CPU 내부 회로를 통해 주고받습니다.
시스템 버스는 각기 다른 부품을 연결하기 위한 통로(버스)이기 때문입니다.
추가적으로 궁금한 게 있는데요
1. 그럼 제어장치가 메모리 1번지 명령어를 해석하자마자 ALU와 메모리에 동시에 제어신호를 전송하게 되는데
ALU에게 전송되는 제어신호는 '잠시 뒤에 2번째 레지스터랑 3번째 레지스터에 값이 저장될 텐데, 저장되면 바로 더하는 연산 실행하고 4번째 레지스터에 저장해'
이런 식인 것인가요?
2. 제어장치가 메모리 읽기 등의 제어신호를 전송할 때, 동시에 레지스터에게도 제어신호가 따로 전송되나요?
ex) '메모리에 읽기 제어신호 요청해놨으니까 해당 값을 메모리가 건네주면 너가 저장해놓고 있어'
3. 2번의 경우 외에도
'a 레지스터에 있는 내용을 b 레지스터로 옮겨 저장해라'와 같은 명령어를
제어장치가 해석하고 실행할 때에도 레지스터에게 제어신호가 따로 전송이 되는지 궁금합니다.