챕터 4에서는 앞에서 배운 내용을 바탕으로 프로세서를 논리회로로 구현하는 법을 다룰 예정이다. 물론, MIPS Instruction set에 있는 모든 명령어를 실행할 수 있는 프로세서가 아닌 조금 더 단순화 된 몇 가지 기본 명령을 수행할 수 있는 것으로 진행한다. 그러고나서 4.5부터는 조금 더 현실적으로 "Pipeline"이라는 개념을 적용한 버전의 프로세서로 업그레이드 할 것이다. 일단 우리가 만들 프로세서가 수행할 수 있는 Instruction은 아래의 총 9개이다.
lw
, sw
add
, sub
, and
, or
, slt
beq
, j
아래 이미지 (강의 교재의 figure 4.17) 는 파이프라인이 없는 버전의 완성된 회로이다. 우리는 이걸 부분부분 살펴보며 만들어 나갈 것이다.
Instruction이 실행되는 과정에 대해 살펴보자.
아래 이미지 (강의 교재의 figure 4.1) 는 어떤 두 가지 데이터가 한 가지 유닛의 input으로 들어가는 부분을 표시해 놓은 것이다.
이런 경우에는 두 가지 입력 중 어떤 입력을 사용할 지 선택해야 하는데, 이 때 Multiplexer(MUX)를 사용한다. 위에 있던 첫 번째 이미지에서 MUX라고 적힌 유닛이 멀티플렉서이다. MUX에 대한 자세한 설명은 논리회로 때 다 들었을 거라 생각한다.(선수과목) MUX에서 어떤 값을 선택할 지 정하는 플래그는 Control이라는 유닛에서 제공한다.
Control 유닛은 instruction에서 opcode 부분을 입력으로 받아서(입력이 R-type이라면 funct 부분까지 해석) ALU, 메모리, MUX 등이 instruction에 맞는 동작을 할 수 있는 플래그들을 내보낸다. 각 플래그들에 대한 설명은 나중에 각 부분을 설명할 때 따로 하도록 하겠다.
[컴퓨터 구조] 4.3 Building a Datapath (0) | 2020.10.25 |
---|---|
[컴퓨터 구조] 4.2 Logic Design Conventions (0) | 2020.10.25 |
[컴퓨터 구조] 2.3 Operands of the Computer Hardware (0) | 2020.10.25 |
[컴퓨터 구조] 2.2 Operations of the Computer Hardware (0) | 2020.10.25 |
[컴퓨터 구조] 2.1 Introduction (0) | 2020.10.25 |
댓글 영역