[CE] Control Unit and Instruction

2022. 12. 17. 15:06·Computer/CE
728x90
728x90

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라고도 부름)에 저장되어 있음.

  1. control unit은
    PC register에 저장된 주소가 reference(가리키는, 참조하는)하는 memory location에 있는 instruction을
    fetch ( instruction을 "instruction register"에 저장시킴)하고
  2. instruction register에 저장된 instruction을
    decode하여
  3. 실행(execution)시키고 (실행단계),
  4. 필요한 경우 메모리에 접근(memory access)하여 데이터를 읽거나 쓰고,
  5. 실행결과를 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(수행)하도록 함
(본인이 직접 수행하는 건 아님)

Fetch-execute cycle


Instruction (명령어)

컴퓨터가 어떤 동작을 해야하는지를 나타내고 있는 bit pattern.
각 특정 모델의 CPU에 따라 이 bit pattern은 다름
(Intel과 AMD 사마다 설계한 instruction이 다름). 

CPU에서 instruction 실행 과정

  1. 명령어 인출 (Fetch):
    • Control Unit이 프로그램 카운터(Program Counter, PC)에 저장된 주소를 사용하여
      메모리에서 다음 실행할 명령어를 가져옴.
    • 가져온 명령어는 명령어 레지스터(Instruction Register, IR)에 저장.
  2. 명령어 해독 (Decode):
    • Control Unit은 명령어 레지스터에 저장된 명령어를 해독(Decode).
    • 명령어의 종류와 필요한 연산을 파악하고, 어떤 데이터를 사용할지,
      그리고 어떤 레지스터나 메모리 주소가 필요한지 결정.
  3. 명령어 실행 (Execute):
    • Control Unit은 ALU와 레지스터 등에 신호를 보내어 실제 연산을 수행(execute)
    • 예를 들어, 산술 연산이 필요하다면 ALU에 해당 연산을 수행하도록 신호를 보냄.
  4. 메모리 접근 (Memory Access):
    • 메모리 읽기/쓰기가 필요하면 메모리 주소와 함께 데이터를 읽거나 쓰도록 함.
  5. 결과 저장 (Writeback):
    • 연산 결과가 레지스터에 저장되거나, 필요한 경우 메모리에 저장됨.

 


 

728x90

'Computer > CE' 카테고리의 다른 글

[CE] GPU (Graphics Processing Unit)  (0) 2022.12.18
[CE] Instruction Set Architecture (ISA): RISC vs. CISC  (0) 2022.12.18
[CE] Flash Memory (or PROM Flash) and SSD (Solid State Drive)  (1) 2022.12.10
[CE] Disk Drive  (0) 2022.12.10
[CE] Propagation delay (전파지연)  (0) 2022.12.08
'Computer/CE' 카테고리의 다른 글
  • [CE] GPU (Graphics Processing Unit)
  • [CE] Instruction Set Architecture (ISA): RISC vs. CISC
  • [CE] Flash Memory (or PROM Flash) and SSD (Solid State Drive)
  • [CE] Disk Drive
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Private Life (15)
      • Programming (55)
        • DIP (116)
        • ML (35)
      • Computer (120)
        • CE (54)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (368)
        • Signals and Systems (115)
        • Math (176)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    cv2
    opencv
    math
    linear algebra
    인허가제도
    ML
    signal_and_system
    signals_and_systems
    Probability
    Programming
    SS
    Vector
    random
    fourier transform
    Optimization
    numpy
    Term
    function
    Python
    SIGNAL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[CE] Control Unit and Instruction
상단으로

티스토리툴바