ALU (arithmetic-logic unit) ; 산술논리 연산장치

ALU[에이엘유]중앙처리장치의 일부로서 컴퓨터 명령어 내에 있는 연산자들에 대해 연산과 논리동작을 담당한다. 몇몇 프로세서들에서는 ALU가 연산장치(AU)와 논리장치(LU)의 두 부분으로 나뉘어져있는 경우도 있다. 또, 어떤 프로세서들은 1 개 이상의 AU가 장착된 경우도 있는데, 예를 들어 고정 소숫점 연산을 위한 것과 부동 소숫점 연산을 위한 전용 AU를 별도로 두는 경우이다 (PC의 부동 소숫점 연산은 별도로 분리된 에 있는 부동 소숫점 처리장치에서 행해지는 경우도 있는데, 이것을 수치연산 보조 프로세서(numeric coprocessor)라고 부른다).

대체로 ALU는 입력과 출력을 위해 프로세서와 메인 메모리 그리고 입출력 장치에 직접 액세스를 하는데, 입력과 출력은 버스라고 부르는 전자적인 통로를 따라 흐르게 된다. 입력은 연산코드(때로 이것을 줄여서 "op code"라고 부른다)을 포함하고 있는 기계 명령어, 하나 또는 그 이상의 연산자 그리고 형식코드로 구성된다. 연산코드는 수행해야 할 연산이 무엇인지를 ALU에게 알려주며, 연산자는 그 연산을 위해 사용된다(예를 들어 두 개의 연산자를 서로 더하거나 논리적으로 비교하라는 연산일수도 있다). 형식코드는 연산코드와 함께 결합되어, 연산의 대상이 고정 소숫점 형식인지, 부동 소숫점 형식인지를 알려준다. 출력은 레지스터 내에 있는 결과와, 수행된 연산이 성공적이었는지에 관한 상태를 알려주는 값들로 구성된다.

일반적으로 ALU는 입력된 연산자와, 현재 더해지고 있는 연산자, 누산기에 저장된 결과, 그리고 시프트된 결과들을 저장하기 위한 공간을 가지고 있다. ALU 내의 비트의 흐름과, 그 안에서 수행된 연산들은 게이트 회로에 의해 통제되는데, 게이트 회로는 다시 각 연산코드에 대해 특별한 알고리즘이나 순서를 사용하는 순차 논리 장치(sequence logic unit)에 의해 통제된다. 연산장치 내에서 곱셈이나 나눗셈은 일련의 덧셈이나 뺄셈 그리고 자릿수를 이동하는 방법(shift) 등을 통해 이루어지며, 음수를 표현하는 방법에도 여러 가지가 있다. 논리장치 내에서는 16개의 논리 연산중 하나가 수행될 수 있는데, 예를 들어 두 개의 연산자를 비교해서 서로 맞지 않는 비트가 어떤 것인지를 찾아내는 것 등이 그것이다.

ALU 설계는 프로세서의 중요한 부분으로서, 명령어를 좀더 신속하게 다루기 위한 새로운 접근방식이 지속적으로 개발되고 있다.


이 정보는 1999년 4월 28일에 수정되었습니다.
영어판(whatis.com)