3.1 ALU의 구성 요소
1. 산술 연산장치 : 산술 연산들 (+, - , * /)를 수행
2. 논리 연산장치 : 논리 연산들(AND, OR, NOT, XOR 등)을 수행
3. 시프트 레지스터(shift register) : 비트들을 좌측 혹은 우측으로 이동시키는 기능을 가진 레지스터
4. 보수기 (complementer) : 2진 데이터를 2의 보수로 반환(음수화)
5. 상태 레지스터(status register) : 연산 결과의 상태를 나타내는 플래그(flag)들을 저장하는 레지스터
3.2 정수의 표현
2진수 체계 : 0, 1, 부호 및 소수점으로 수를 표현
부호 없는 정수 표현의 예
n-비트 2진수를 부호 없는 정수 A로 변환하는 방법
소수의 소수점부분을 변환하는 방법
음수 표현 방법
- 부호화-크기 표현 (Signed-magnitude representation)
- 1의 보수 표현 (1's complement representation)
- 2의 보수 표현 (2's complement representation)
부호화-크기 표현 :
맨좌측 비트는 부호 비트, 나머지 (n-1)개의 비트들은 수의 크기(magnitude)를 나타내는 표현 방식
부호화-크기로 표현된 2진수를 10진수로 변환
단점 :
덧셈과 뺄셈을 수행하기 위해서는 부호 비트와 크기를 비교하여 처리하는 복잡한 과정 필요
0에 대한 표현이 두 개 존재 -> n-비트 단어로 표현할 수 있는 수들이 2^n개가 아닌 (2^n-1)개로 감소
1의 보수 (1's complement) 표현 : 모든 비트들을 반전 (0->1, 1->0)
2의 보수 (2's complement) 표현 : 모든 비트들을 반전하고, 결과값에 1을 더함
8-비트 2진수로 표현할 수 있는 10진수의 범위
2의 보수로 표현된 양수를 10진수로 변환하는 방법
2의 보수로 표현된 음수를 10진수로 변환하는 방법
비트 확장
데이터의 길이(비트 수)를 늘리는 방법
> 필요성 : 데이터를 더 많은 비트의 레지스터에 저장하거나, 더 긴 데이터와 연산을 수행하기 위해 필요
부호화-크기 확장
2의 보수 확장 (부호-비트 확장)
03. 컴퓨터 산술과 논리 연산 (3) [정수의 산술 연산] (0) | 2020.04.08 |
---|---|
03. 컴퓨터 산술과 논리 연산(2) [논리 연산, 시프트 연산] (0) | 2020.04.08 |
02. CPU의 구조와 기능 (3) [명령어 세트] (0) | 2020.04.03 |
02. CPU의 구조와 기능 (2) [명령어 파이프라이닝] (0) | 2020.04.03 |
02. CPU의 구조와 기능 (1) [CPU의 기본구조, 명령어 실행] (0) | 2020.04.03 |
댓글 영역