본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다.
CPU 성능을 결정 짓는 요소
명령어의 수 - ISA ( 명령어 집합 구조 Instruction set Architecture ), compiler에 의해 결정 된다.
CPI, Cycle Time - CPU hardware(프로세서의 구현 방법)에 따라 결정된다.
본 4장은 이 프로세서를 구현하는데 사용되는 원리와 기법에 대한 설명을 포함한다.
명령어의 실행
2장에서 정수형 산술/논리 명령어, 메모리 참조 명령어, 분기 명령어를 포함하는 핵심적인 MIPS 명령어들을 살펴 보았다.
어떤 명령어이든지 명령어 실행 단계는 다음과 같이 모두 동일하다.
- 프로그램 카운터(PC)를 프로그램이 저장되어 있는 메모리에 보내어 메모리로부터 명령어를 가져온다. (이후 자동으로 PC = PC +4를 진행하여 다음 명령어의 주소를 담고 있게끔 한다.)
- 읽을 레지스터를 선택하는 명령어 필드를 사용하여 하나 또는 두 개의 레지스터를 읽는다. 워드 적재 명령어는 레지스터 하나만 읽으면 되지만 대부분의 다른 명령어는 레지스터 두 개를 읽는다. (Decode)
- 명령어에 해당하는 작업을 수행한다. (execute)
Execute 할 때에는 Decode한 것을 기반으로 알맞은 작업을 해야한다.
rs rt field에 들어있는 레지스터 번호를 알맞게 레지스터 파일에 넘겨주거나,ALU 하드웨어에 알맞은 연산 ( 빼기, 더하기, and, or 등)을 시키고 메모리로 부터 load or store 시키는 등의 작업을 알맞게 해야한다,
위 그림을 보면 명령어가 대략 어떤 과정을 거쳐서 실행되는지 알 수 있다.
서로 다른 근원지에서 나온 데이터가 같은 유닛으로 가는 곳이 몇 군데 있다. 예를 들면 PC에 들어갈 값은 두 덧셈기 중 하나에서 나오고, 레지스터 파일에 쓰일 데이터는 ALU나 데이터 메모리에서 나오며, ALU의 두 번째 입력은 레지스터나 명령어의 수치 필드에서 나온다.
이럴 땐 다른 데이터 중 하나를 선택 하여야 하는데, 이 같은 선택은 일반적으로 멀티플렉서라 불리는 소자를 사용하여 이루어진다.
multiplexer - 여러가지 데이터 중 하나를 뽑아 선택할 수 있는 회로.
또한, 각 유닛들은 명령어마다 다르게 제어되어야 하고, multiplexer에 어떤 데이터를 선택할 지도 정해야한다. 이를 contol unit이 도맡아서 하게 된다.
제어 유닛(control unit)은 기능 유닛들과 두 멀티 플렉서의 제어선 값을 결정하는 데 사용하는 것으로, 명령어를 입력으로 한다.
ex) beq의 분기 명령어에 의해 해당 Label 주소로 점프할지 아니면 PC+4의 주소 값을 사용할지 정하는 multiplexer 를 제어한다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
[Chapter 4.3 컴퓨터 구조 및 설계] processor datapath와 레지스터 파일 (0) | 2022.07.19 |
---|---|
[Chapter 4.2 컴퓨터 구조 및 설계] 클러킹 방법론과 Combinational element, Sequential Element (0) | 2022.07.18 |
[Chapter 3.8 컴퓨터 구조 및 설계] 연산에 있어서 겪을 수 있는 오류 및 함정 (0) | 2022.07.16 |
[Chapter 3.7 컴퓨터 구조 및 설계] 부동 소수점 곱셈 (0) | 2022.07.15 |
[Chapter 3.6 컴퓨터 구조 및 설계] 부동 소수점 덧셈 (0) | 2022.07.15 |