YZ ZONE

[ 컴퓨터구조 ] 3.1-2 컴퓨터 산술과 논리 연산 본문

IT/컴퓨터구조

[ 컴퓨터구조 ] 3.1-2 컴퓨터 산술과 논리 연산

러블리YZ 2023. 2. 6. 11:15

▣ 컴퓨터의 가장 근본이 되는 기능

 수치에 대한 산술적 계산 

 논리 데이터에 대한 연산

▣ 산술적 계산

정수와 부동소수점 수라는 두 가지 형태의 수들에 대하여 수행 

▣ 논리 연산

0 1의 배열로 표현되는 2진 데이터에 대하여 이루어 짐 

▣ 산술논리연산장치(ALU)

 CPU 내부의 핵심 구성요소로서, 산술 연산과 논리 연산을 수행하는 하드 웨어

3.1 ALU의 구성 요소

▣ 산술 연산장치

 산술 연산들(+, -, ×, ÷)을 수행 

▣ 논리 연산장치

 논리 연산들(AND, OR, XOR, NOT )을 수행 

▣ 시프트 레지스터(shift register)

 비트들을 좌측 혹은 우측으로 이동시키는 기능을 가진 레지스터 

▣ 보수기(complementer)

 2진 데이터를 2의 보수로 변환(음수화)

▣ 상태 레지스터(status register)

 연산 결과의 상태를 나타내는 플래그(flag)들을 저장하는 레지스터

ALU의 내부 구성 요소들

3.2 정수의 표현

정수의 표현

 2진수 체계

 0, 1, 부호 및 소수점으로 수를 표현 

 [] -13.62510 = -1101.1012

▣ 부호 없는 정수 표현의 예

▪ 00111001 =57

00000000 = 0

00000001  = 1

10000000  = 128 

11111111 = 255

n-비트 2진수를 부호 없는 정수 A로 변환하는 방법

 

소수와 음수의 표현

▣ 최상위 비트인 an-1의 좌측에 소수점이 있는 소수의 10진수 변환방법

▣ 음수 표현 방법

 부호화-크기 표현(signed-magnitude representation) 

 1의 보수 표현(1's complement representation)
 2의 보수 표현(2's complement representation)

부호화-크기 표현

▣ 맨좌측 비트는 부호 비트, 나머지 (n-1)개의 비트들은 수의 크기 (magnitude)를 나타내는 표현 방식

▣ 결점

 덧셈과 뺄셈을 수행하기 위해서는 부호 비트와 크기를 비교하여 처리 하는 복잡한 과정 필요

 0에 대한 표현이 두 개 존재

0 0000000 = + 0

1 0000000 = -0

n-비트 단어로 표현할 수 있는 수들이 2^n 개가 아닌, (2^n -1)개로 감소

 

보수 표현

 1의 보수(1's complement) 표현

 모든 비트들을 반전 (01, 10)

 

 2의 보수(2's complement) 표현

 모든 비트들을 반전하고, 결과값에 1을 더한다

 

 

8-비트 2진수로 표현할 수 있는 10진수 범위

 1의 보수 : - (27 - 1) ∼ + (27 - 1) 

 2의 보수 : - 27 ∼ + (27 - 1)

 

 

2의 보수 -> 10진수 변환

 2의 보수로 표현된 양수(an-1 = 0) 10진수로 변환하는 방법

 

 

비트 확장 (Bit Extension)

▣ 데이터의 길이(비트 수)를 늘리는 방법

 필요성: 데이터를 더 많은 비트의 레지스터에 저장하거나, 더 긴 데이 터와 연산을 수행하기 위해 필요 (8비트 -> 16비트로...)

 2의 보수 표현의 경우

확장되는 상위 비트들을 부호 비트와 같은 값으로 세트 

▣ 부호-비트 확장(sign-bit extension)이라 함