Skip to content

Arithmetic logic unit

산술 논리 장치(算術論理裝置, arithmetic logic unit)는 두 숫자의 (덧셈, 뺄샘같은) 산술연산과 (배타적 논리합, 논리곱, 논리합같은) 논리연산을 계산하는 디지털 회로이다. 산술논리장치는 컴퓨터 중앙처리장치의 기본 설계 블록이다.

많은 종류의 전자 회로는 어떤 형태의 산술연산을 계산하는 데 필요한데, 심지어 디지털 시계에 있는 작은 회로조차도 현재 시간에 1을 더하고, 언제 알람을 울려야 하는지를 검사하는 작은 산술논리장치를 지녔다.

명백히, 가장 복잡한 전자 회로는 펜티엄 같은 현대의 마이크로프로세서 칩 내부의 설계일 것이다. 그러므로 이런 프로세서는 내부에 강력하고 매우 복잡한 산술논리장치를 가지고 있다. 사실, 현대의 마이크로프로세서 (혹은 메인프레임)은 멀티코어, 다중의 실행 장치, 다중의 산술논리장치를 가지고 있다.

대다수의 다른 회로는 내부에 산술논리장치를 포함하고 있다: 엔비디아나 ATI의 그래픽 카드 같은 그래픽 처리 장치, 오래된 80387 보조 처리기 같은 부동 소수점 장치, 사운드 블래스터 사운드 카드에서 발견할 수 있는 디지털 신호 처리기, CD 재생기, 고선명 텔레비전 등이 있다. 이런 모든 것은 내부에 몇 개의 강력하고 복잡한 산술논리장치를 가지고 있다.

Implementation speed

통상적으로 아래와 같이 순서가 빠르다.

## [빠르다] <---  ---> [느리다]
정수 가산기 - 정수 승산기 - 정수 나눗셈 - 부동소수점 곱셈 - 부동소수점 덧셈 - 부동소수점 나눗셈 - 루트,삼각함수 등
## 확인요망: Shift 연산, Bit 연산

프로그래밍시 위의 속도를 고려하여, 빠른 순서로 처리하도록 유도하는 것이 좋다.

예를 들면, 부동소수점 수의 나눗셈의 경우

  • B=A/2.0 보다 B=0.5*A 가 좋다.
  • C=B/A, D=E/A 보다 X=1/A, C=B*X, D=E*X 가 좋다.

정수 가산기

  • 전가산기 (Full Adder)
  • 반가산기 (Half Adder)
  • Prefix Adder

정수 승산기

  • Wallace Tree: 각 자리의 부분곱을 더해가는 고속화
  • Booth Encode: 곱하는 수를 모아서 고속화

나눗셈

  • SRT 나눗셈 알고리즘

부동소수점 연산기

  • 정규화
  • 라운딩 (Rounding, 단수처리)
  • IEEE 754
  • 무한대
  • 비정규화 수 (Gradual Underflow 기능)

See also

shift

  • Barrel shifter
  • Circular shift

Favorite site