산술 논리 장치

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

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

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

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

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

역사: 폰 노이만의 제안[편집]

수학자 존 폰 노이만에드박이라고 불리는 새로운 컴퓨터 설계보고서를 작성했을 때, 1945년에 산술논리장치의 개념을 제안했다. 1946년에, 그는 프린스턴의 고급 연구소 (IAS)에서 컴퓨터 설계로 그의 동료와 일했다. IAS 컴퓨터는 많은 이후 컴퓨터에 원형이 된다. 제안에서, 폰 노이만은 산술논리장치를 포함해서, 그의 장치가 필요하게 될 거라는 어떤 믿음의 윤곽을 잡았다.

폰 노이만은 산술논리장치가 컴퓨터에 필요하다고 진술했다. 왜냐하면 컴퓨터가 덧셈, 뺄셈, 나눗셈, 곱셈을 포함한 기본적인 수학연산을 계산하도록 보장되어야 했기 때문이다.[1] 그러므로 그는 "컴퓨터는 이러한 연산을 위해서 특별한 장치가 포함되어야 합리적"이라고 믿었다.[1]

기수법[편집]

이 문단의 내용출처가 분명하지 않습니다. 지금 바로 이 문단을 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요. (2014년 3월 8일에 문단의 출처가 요청되었습니다.)

산술논리장치는 반드시 디지털 회로의 나머지처럼 동일한 형식을 사용하여 숫자를 처리한다. 현대의 프로세서에서, 거의 대부분은 2의 보수 이진수 표현이다. 초기의 컴퓨터는 1의 보수, 부호와 등급 형식, 심지어 숫자당 열개의 튜브를 지닌 진짜 십진수를 포함하여 다양한 기수법을 사용했다.

각각의 이런 기수법의 산술논리장치는 다르게 설계되었고, 덧샘과 뺄셈을 계산하는 산술논리장치를 쉽게 만들 수 있는 기수법인, 2의 보수를 위한 현재 선호에 영향을 끼쳤다.

단순 연산[편집]

대부분의 산술논리장치는 다음의 연산을 계산할 수 있다:

복합 연산[편집]

공학자는 그것이 얼마나 복잡하든 간에 어떠한 연산도 가능한 산술논리장치를 설계할 수 있지만, 문제는 연산이 더 복잡해질수록, 산술논리장치는 더 비싸지고, 프로세서는 더 많은 공간을 사용하고, 더 많은 전력을 소모하게 된다.

그러므로, 공학자는 항상 절충안을 생각하며, 프로세서 (혹은 다른 회로)에 제공되는 충분히 강력한 산술논리장치가 프로세서를 빠르게 만들지만, 비싼 것처럼 그렇게 복잡하지는 않다. 당신이 계산할 필요가 있다고 상상하면, 숫자의 제곱근을 말하세요; 디지털 공학자는 이 연산을 실행하는 데 아래의 선택을 검토할 것이다:

한 단계에 어떤 숫자의 제곱근을 계산하는 매우 복잡한 산술논리장치를 설계한다. 이것은 한클럭 계산이라고 불린다. 일반적으로 마이크로코드로 설계된 복잡한 제어 장치의 제어에 의존된다. 프로세서에 간단한 산술논리장치를 설계하고, 고객은 이것 바로 옆에 설치할 수 있는 분리되어서 특정화하고 값비싼 프로세서를 판매하고, 위의 선택 중 하나를 수행한다. 이것은 보조 처리기라고 불린다. 보조 처리기의 존재를 에뮬레이터하는 것은, 언제든지 프로그램이 제곱근 계산을 수행하는 것을 시도하며, 프로세서에 보조 처리기가 있는지 검사하고 있으면 사용한다; 만약 없으면, 프로그램의 처리를 인터럽트하고 어떤 소프트웨어 알고리즘을 통하여 제곱근 계산을 수행하는 운영체제를 불러온다. 이것은 소프트웨어 에뮬레이션이라고 부른다. 보조 처리기에뮬레이터가 없는 프로그래머를 말해서, 소프트웨어에 따라 제곱근을 계산하는 자신의 알고리즘을 써야 할 것이다. 이것은 소프트웨어 라이브러리에 의한 수행이다.

위의 선택은 가장 빠르고 가장 비싼것부터 가장 느리고 가장 저렴한 것으로 나열된다. 그러므로 심지어 가장 간단한 컴퓨터가 가장 복합한 공식을 계산할 수 있고, 가장 간단한 컴퓨터는 일반적으로 오랜 시간이 걸릴 것이다. 왜냐하면 공식을 계산하는 몇 가지 단계는 위의 선택 를 포함하기 때문이다.

펜티엄 4와 같은 강력한 프로세서는 가장 복잡한 연산에 위의 선택 #1을 수행하고, 다음으로 복잡한 연산에 더 느린 것을 수행한다. 이런 프로세서에 설계된 매우 복잡한 산술논리장치의 기능성 때문에 가능하다.

주석[편집]