본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터 구조] 컴퓨터 산술

컴퓨터 산술

 

기본 컴퓨터의 데이터 형식

아주 엄격한 데이터 형식이다.

 

부호절대값으로 표시된 고정소수점 이진데이터(34:0 0100010) 제일 앞에 있는 비트가 0이면 + 1이면


부호화된2의 보수로 표현되는 고정소수점 이진 데이터(-34:1 1011110) 음수의 경우에는 숫자부분이 2의보수로 표현한다.


부동소수점 이진 데이터(0.34x10^2:0 0100010 00000010)


이진화된 십진수(BCD) 데이터(1264:0001 0010 0110 1000)
4
비트의 이진수로 표현한다.

 

어떤 데이터형식을 기본으로 쓰느냐? 부호화된2의 보수로 표현되는 고정소수점, 부동소수점 을 쓴다.

 

●부호절대값 데이터를 이용한 덧셈과 뺄셈

 

 

 

하드웨어 알고리즘

As Bsxor하면 오버플로우를 알 수 있다. 결과가 0이면 오버플로우가 안난다.

뺄셈 연산을 할 때 부호가 같은 것이 연산을 하면 오버플로우가 절대 안난다.
덧셈 연산을 할 때 부호가 같으면 오버플로우가 날 수도 있다.

 

오버플로우가 났다면 AVF1이될 것이다 그러면 인터럽트를 하거나 다른 동작을 할 것이다.

 

 

 

 

부호가 있는2의 보수 데이터를 이용한 덧셈과 뺄셈

 

 

 

곱셈의 원리

연속적인 시프트와 덧셈으로 구성

2319번 더하는 것이다.

5비트x 5비트 하면 결과가 5비트를 넘어간다.
A
레지스터와 Q레지스터 를 합쳐가지고 결과를 만든다.

 

16비트x16비트 를 하면 결과가 32비트가 필요할 것이다.

전체 레지스터는 E, A레지스터, Q레지스터를 합쳐서 33비트이다.

 

 

Qn은 최고비트이다. Qn1이면 또 더한다. 0이면 곱할 자리가 끝났다는 뜻

한번 오른쪽 쉬프트 할 때마다 E,A,Q를 같이 오른쪽 쉬프트한다.

 

 

Booth의 곱셈 알고리즘

1이 있는 곳만 따지는 알고리즘

B레지스터 = 데이터 레지스터

Qn+1를 더하는 플립플롭이 있으면 된다.

 

 

QnQn+1을 같이 본다.

01일 경우 = 1이 시작하는 곳
10
일 경우 = 1이 끝나는 곳

 

 

 

 

배열 승산기 곱셈 알고리즘

별도의 하드웨어가 필요하다 쉬프트 연산, 더하기 연산이 없다.

고속연산이 필요할 때 쓰인다.

 

 

 

나눗셈 알고리즘

하드웨어는 곱셈과 동일


나눗셈 오버플로우의 처리가 중요하다.

B = 나누는 값

A = 나눠지는 값

AB보다 작다
그러면 더 많은 비트를 나눠야 한다. 나눗셈의 오버플로우.

AQ값에서 B값을 빼서 결과를 낸다.

 

 

E1이면Q로 값을 넘기는데 이것은 나눗셈의 몫이다.

 

 

 

 

부동소수점 산술 연산

숫자의 표현

M x r^n
승수는n
r
은 진수 ex) 10이면 10진수 22진수
컴퓨터에서 r2로 표현된다.

레지스터 구성

지수부분을 구분하는 레지스터가 따로 있다.
정수를 표현하는 레지스터보다 길다.

 

 

 

 

 

BCD 가산기

carry값이 나오면6을 더해가지고 BCD2자리 값으로 만드는 것이다.

 

 

 

BCD 감산기

 

 

 

BCD10진 산술연산은 3가지 정도 있다.

1.Parallel decimal addition

2. 자리수별로 계산하는 것

adder1개이기 때문에
1
개 연산하고 다음꺼 연산하고
이런식으로 진행한다.
캐리가 발생하면 다시 연산

 

3. 1비트 연산

12비트를 연산한다.

 

 

 

BCD의 곱셈과 나눗셈

덧셈기를 BCD용으로 쓴다.
나눗셈을 해야하기 때문에 감산도 가능

 

곱셈 알고리즘

나눗셈 알고리즘

 

728x90