본문 바로가기
컴퓨터공학기초 개념/컴퓨터구조

17. CPU 내부구조 - 마이크로 연산과 ALU

by devraphy 2021. 8. 12.

0. 시작하면서 

- 이전 포스팅에서 CPU가 어떻게 동작하는지, 명령어는 어떻게 처리하는지 알아보았다. 

- 더불어, 명령어는 어떤 형식으로 구성되어 있고 CPU는 어떤 방식으로 설계되는지 또한 알아보았다. 

- 이번 포스팅에서는 CPU가 연산을 수행할 때 필요로 하는 마이크로 연산과 ALU에 대해서 알아보자. 


1. 마이크로 연산(micro - operation)

a) 개념

- 레지스터에서 저장된 데이터를 대상으로 수행되는 연산을 말한다. 

- 즉, CPU 내부에 존재하는 레지스터의 상태를 변경시키는 동작이다. 

- 마이크로 연산은 다음과 같이 분류된다. 

 

▶ 전송

 - 레지스터 간의 데이터(이전 정보)를 주고 받는다. 

 

▶ 산술 연산 (사칙연산, 증감, 보수, etc) 

- 레지스터에 저장되어있는 데이터를 대상으로 산술 연산을 수행한다. 

클릭하면 확대됩니다.

 

▶ 논리 연산 (AND, OR, XOR, NOT, etc)

- 레지스터에 저장되어있는 데이터를 대상으로 논리 연산을 수행한다. 

클릭하면 확대됩니다.

 

▶ 시프트 연산

- 레지스터에 저장되어있는 데이터를 대상으로 시프트 연산을 수행한다. 

클릭하면 확대됩니다.

 

b) 추가 정보 

- 하나의 명령은 한개 이상의 마이크로 연산이 수행되어 동작한다. 

- 하나의 마이크로 연산을 수행하는 시간을 마이크로 사이클 타임이라 부른다.

- 마이크로 사이클 타임은 CPU의 속도를 나타내는 척도로 사용된다.   


2. ALU(Arithmetic and Logic Unit) 

a) 개념 

- ALU는 산술논리장치 이다. 즉, 산술 연산과 논리연산을 수행하는 기능을 가진 장치다. 

- 주로 정수(음수, 0, 양수) 연산을 수행하지만, 최근에는 실수연산과 부동소수 연산까지 처리한다. 

 

b) ALU의 구성 

- ALU의 연산장치는 일반적으로 다음과 같이 구성된다.

 

▶ 가산기 

- 2개 이상의 입력된 수의 합을 계산하는 논리회로

 

▶ 보수기

- 보수를 처리하는 논리회로 

 

▶ 누산기 

- 산술 및 논리 연산의 결과를 일시적으로 계산하는 레지스터

- 계산 과정에서 발생하는 중간 값을 보관하는 레지스터

 

▶ 플리플롭

- 한개의 비트를 저장하는 기억회로 

 

▶ 데이터 레지스터 

- 명령어를 수행할 때 필요한 데이터를 저장하는 레지스터

- 데이터 레지스터는 워드(word)의 크기와 동일하다. 

- 워드(word)란, 한번에 가져올 수 있는 명령어의 크기를 말한다. 

 

c) ALU의 연산과정 

- 아래의 그림을 통해 이해해보자.

클릭하면 확대됩니다.

1. 레지스터 또는 기억장치에서 데이터를 가져온다. 

2. ALU에서 명령어에 따른 연산을 수행한다. 

3. 연산의 결과값을 누적기(Accumulator)에 저장한다.  

 

 

댓글