상세 컨텐츠

본문 제목

[컴퓨터 구조] 4.1 Introduction

전공/컴퓨터 구조

by blacksmith16 2020. 10. 25. 17:26

본문

챕터 4에서는 앞에서 배운 내용을 바탕으로 프로세서를 논리회로로 구현하는 법을 다룰 예정이다. 물론, MIPS Instruction set에 있는 모든 명령어를 실행할 수 있는 프로세서가 아닌 조금 더 단순화 된 몇 가지 기본 명령을 수행할 수 있는 것으로 진행한다. 그러고나서 4.5부터는 조금 더 현실적으로 "Pipeline"이라는 개념을 적용한 버전의 프로세서로 업그레이드 할 것이다. 일단 우리가 만들 프로세서가 수행할 수 있는 Instruction은 아래의 총 9개이다.

  • Memory Reference : lw, sw
  • Arithmetic / Logical : add, sub, and, or, slt
  • Control Transfer : beq, j

아래 이미지 (강의 교재의 figure 4.17) 는 파이프라인이 없는 버전의 완성된 회로이다. 우리는 이걸 부분부분 살펴보며 만들어 나갈 것이다.

Instruction Execution

Instruction이 실행되는 과정에 대해 살펴보자.

  • PC 값(다음 명령어의 메모리 주소)을 Instruction Memory에 보낸 후, 해당 instruction을 가져온다(fetch).
  • instruction의 필드에 있는 레지스터 중 읽기 위한(Read) 레지스터의 값을 읽는다.
  • 이후 단계에서는 Instruction에 따라 각기 다른 동작이 수행된다.
    • ALU 사용
      • 산술 연산
      • Load / Store 메모리 주소(= Base addr + Offset) 계산
      • Branch 타겟 주소 계산
    • 데이터 메모리 접근 (Load / Store)
    • PC = PC + 4 (다음 Instruction 세팅)

Multiplexers

아래 이미지 (강의 교재의 figure 4.1) 는 어떤 두 가지 데이터가 한 가지 유닛의 input으로 들어가는 부분을 표시해 놓은 것이다.

이런 경우에는 두 가지 입력 중 어떤 입력을 사용할 지 선택해야 하는데, 이 때 Multiplexer(MUX)를 사용한다. 위에 있던 첫 번째 이미지에서 MUX라고 적힌 유닛이 멀티플렉서이다. MUX에 대한 자세한 설명은 논리회로 때 다 들었을 거라 생각한다.(선수과목) MUX에서 어떤 값을 선택할 지 정하는 플래그는 Control이라는 유닛에서 제공한다.

Control

Control 유닛은 instruction에서 opcode 부분을 입력으로 받아서(입력이 R-type이라면 funct 부분까지 해석) ALU, 메모리, MUX 등이 instruction에 맞는 동작을 할 수 있는 플래그들을 내보낸다. 각 플래그들에 대한 설명은 나중에 각 부분을 설명할 때 따로 하도록 하겠다.

관련글 더보기

댓글 영역