728x90
Arithmetic for Computers
- 정수의 연산자
- 덧셈, 뺄셈, 곱셈, 나눗셈
- Overflow 처리
정수 덧셈
- 같은 부호를 더할때, Overflow 발생 가능
정수 뺄셈
- 다른 부호끼리 뺄때, Overflow 발생 가능
오버플로우 처리
C와 같은 언어들을 오버플로우를 무시한다.
Ada같은 언어들은 예외 처리가 필요하다.
Exception Handler을 통해 ㅇ/외처리
Arithmetic for Multimedia
그래픽과 미디어 처리를 위해 8비트, 16비트 벡터로 계산
(Carry 전달을 위해 64bit adder을 사용함 - 8*8, 4*16, ...)
SIMD
(Single Instcurtion, Multiple Data) : 여러 데이터를 하나의 명령어로 다루는 것을 의미포화 연산
: Overflow 발생 시, 결과를 가장 큰 값으로 결정하는 것
Multiplication
multiplicand와 multiplier을 통해 product를 구하자.

Optimized Multiplier
- add와 shift를 한번에 하는 연산
- 한 덧셈마다 1사이클 소요
Faseter Multiplier (Wallace Tree)
- 다수의 adder를 사용한다.
- Cost와 성능의 반비례 관계
- 파이프 라인 사용 가능 (병렬 수행)
unsigned Multiply
- 기존의 Multiplication과 마찬가지로 작동
- 덧셈을 하나하나 진행하기 때문에 매우 오래 걸림
unsigned array Multipy
- 덧셈을 병렬로 동시에 실행하고, Carry를 왼쪽으로 전달한다.
Division
과정
- Remainder - Divisor = Remainder
- MSB=1이면, Remainder 복구 -> quotient의 LSB=0
- MSB=0이면, Remainder 그대로 두기 -> quotient의 LSB에 1 추가
Faster Division
- 나눗셈은 병렬적 하드웨어 사용 불가 (나머지의 부호에 따라 달라지기 때문)
- 빠른 수행을 위해 매 step마다 여러 개의 몫을 계산 (SRT Division)
728x90
'🏫학부 공부 > 컴퓨터구조' 카테고리의 다른 글
[컴구] 메모리 계층구조 (0) | 2023.12.13 |
---|---|
[컴구] 프로세서 - 2 (0) | 2023.11.21 |
[컴구] 프로세서 - 1 (0) | 2023.11.16 |
[컴구] 컴퓨터 추상화와 기술 (0) | 2023.10.21 |
[컴구] 연산자와 피연산자 (0) | 2023.10.11 |