Control Unit
수행해야하는 프로그램 혹은 테스크에 따라
- 메모리에서 실행할 opcode(or operation)과 operand를 ALU에게 전달
- ALU의 연산 처리 결과를 다시 메모리에 저장
함으로서 메모리와 ALU, I/O devic에 제어 신호를 보내고, 해당 장치들로부터 신호를 받아 다음에 처리할 작업을 제어.
von Neumann 이 제안한 storead program computer는
메모리에 "처리할 instruction들의 list"(=program)가 저장되어 있고,
control unit은 이를 차례대로 fetch, decode, execute, writeback 하도록 제어함.
Program Counter and Control Unit
수행해야하는 insturction이 저장된 주소는 program counter register (PC라고도 부름)에 저장되어 있음.
- control unit은
PC register에 저장된 주소가 reference(가리키는, 참조하는)하는 memory location에 있는 instruction을
fetch ( instruction을 "instruction register"에 저장시킴)하고 - instruction register에 저장된 instruction을
decode하여 - 실행(execution)시키고 (실행단계),
- 필요한 경우 메모리에 접근(memory access)하여 데이터를 읽거나 쓰고,
- 실행결과를 register나 memory에 저장(writeback)하도록 제어신호를 보냄.
PC register는 instruction의 size만큼 증가하는 counter로,
다음에 수행할 instruction이 저장된 memory의 address가 저장됨.
- 일반적으로 contorl unit의 제어에 따라 instruction을 수행하고나며 instruction이 메모리에 저장된 크기만큼 증가하여 다음에 수행할 instruction을 가르키겨 됨.
- 일부 instruction들은 PC regster에 저장된 값을 직접 변화시킬 수 있음(branching)
Fetch
instruction이 수행되기 위해서는
instruction register에 "수행될 instruction(명령어)"가 저장(이 과정을 fetch라고 부름)되어야 하므로,
해당 수행될 instruction가 저장된 main memory 의 주소를 가지고 있는
PC register를 통해 해당 instruction의 주소를 얻고
main memory의 해당 위치에서 instruction을 얻어오게 된다.임.
Contrl Unit은 이 과정이 일어나도록
지시를 하는 boss라고 할 수 있음.
Execution
instructino register의 instruction이 실제 수행되는 단계.
instruction의 해당 내용에 따라 instruction은 수행되며 이 시간을 execution cycle이라고 함.
fetch와 execution cycle은 instruction이 수행되는 단계를 구성하며 댜음과 같은 state machine으로 표시됨.
Control Unit은
ALU와 레지스터 등에 신호를 보내어
실제 연산을 Excute(수행)하도록 함
(본인이 직접 수행하는 건 아님)
Instruction (명령어)
컴퓨터가 어떤 동작을 해야하는지를 나타내고 있는 bit pattern.
각 특정 모델의 CPU에 따라 이 bit pattern은 다름
(Intel과 AMD 사마다 설계한 instruction이 다름).
CPU에서 instruction 실행 과정
- 명령어 인출 (Fetch):
- Control Unit이 프로그램 카운터(Program Counter, PC)에 저장된 주소를 사용하여
메모리에서 다음 실행할 명령어를 가져옴. - 가져온 명령어는 명령어 레지스터(Instruction Register, IR)에 저장.
- Control Unit이 프로그램 카운터(Program Counter, PC)에 저장된 주소를 사용하여
- 명령어 해독 (Decode):
- Control Unit은 명령어 레지스터에 저장된 명령어를 해독(Decode).
- 명령어의 종류와 필요한 연산을 파악하고, 어떤 데이터를 사용할지,
그리고 어떤 레지스터나 메모리 주소가 필요한지 결정.
- 명령어 실행 (Execute):
- Control Unit은 ALU와 레지스터 등에 신호를 보내어 실제 연산을 수행(execute)
- 예를 들어, 산술 연산이 필요하다면 ALU에 해당 연산을 수행하도록 신호를 보냄.
- 메모리 접근 (Memory Access):
- 메모리 읽기/쓰기가 필요하면 메모리 주소와 함께 데이터를 읽거나 쓰도록 함.
- 결과 저장 (Writeback):
- 연산 결과가 레지스터에 저장되거나, 필요한 경우 메모리에 저장됨.
반응형
'Computer > CE' 카테고리의 다른 글
[CE] GPU (Graphics Processing Unit) (0) | 2022.12.18 |
---|---|
[CE] Instruction Set Architecture: RISC vs. CISC (0) | 2022.12.18 |
[CE] Flash Memory (or PROM Flash) and SSD (Solid State Disk) (1) | 2022.12.10 |
[CE] Disk Drive (0) | 2022.12.10 |
[CE] Propagation delay (전파지연) (0) | 2022.12.08 |