[컴퓨터구조] Processor : Datapath and Control (#6)
이 글은 Instruction과 밀접한 관계가 있다. 만약 이 개념이 아직 익숙치 않다면 다음 글을 보고 오자;
2025.03.29 - [컴퓨터구조] - [컴퓨터구조] Instructions: Language of the Computer
[컴퓨터구조] Instructions: Language of the Computer
RISC (Reduced Instruction Set Computing) architecture란?예시: MIPS architecture, ARM, PowerPC MIPS란, Microprocessor without Interlocked Pipeline Stages로, 1980년대의 RISC architecture를 일컫는다. 장점:Simplified & Small Set of Instruction
quickclid.tistory.com
Instruction Fetching
Instruction Fetching의 기전을 자세히 말해보자면, 다음과 같다;
- PC(Program Counter)는 32비트 레지스터로, "지금 실행해야 할" Instruction의 주소를 지니고 있다. 그러므로, 위 그림에서의 PC의 역할은 Instruction Memory에 Instruction을 load하는 것이다.
- PC에서 Adder로 이어지는 선을 보면, 매번 4를 더해준다는 사실을 확인할 수 있다. 이는 다음 Instruction을 읽어오기 위함이다. (대부분의 Instruction이 4 byte라는 점을 짚고 넘어가자!)
- 이렇게 Instruction Memory에 load된 Instruction은 곧바로 실행될 수는 없다. PC -> Instruction Memory 과정은 읽어오는 과정일 뿐, 해석하는 과정은 아니기 때문이다.
Instruction Execution
(참고로 회색 음영처리된 부분은 multiplexer를 통해 두 회로 중 하나의 출력만 받아오는 "선택"이 이루어지는 곳이다)
Instruction Execution의 기전을 자세히 말해보자면, 다음과 같다;
Instruction Memory에서...
4를 더해주는 Adder가 아닌, 정해지지 않은 값을 더해주는 Adder와도 추가적으로 연결되었다. 이는 jump Instruction을 위한 것이다. (무조건 4 byte만 건너뛰는 것이 아니므로 --> 함수, goto문 등)
Registers에서...
Instruction Memory로부터 전해받은 Instruction을 Format에 따라 잘 분리한 뒤 해석한다.
ALU에서...
Instruction을 해석한 결과가 "산술 연산"을 필요로 할 때만 사용된다. add나 sub Instruction이라면 단순히 산술 연산을 하고, lw나 sw라면 메모리 주소를 계산한다.
Data Memory에서...
Instruction을 해석한 결과가 "메모리 접근"을 필요로 할 때만 사용된다. (lw 또는 sw)