컴퓨터의 구조 ALU는 어떻게 구성되어있을까?
사진 출저[컴퓨터 구조] CPU, 메모리, 보조기억장치, 입출력장치를 알아보자 (hanbit.co.kr)
컴퓨터의 구조입니다.
ALU는 arithmetic-logic unit의 약어로서 산술(수리) - 논리 - 유닛이라는 말입니다.
이는 두가지 유닛으로 구성되어 있다는 말이기도 합니다.
AU - Arithmetic Unit
LU - Logic Unit
일반적으로 ALU는 processor controller(프로세서 컨트롤러), RAM, 입출력 장치에 직접 엑세스 합니다.
BUS라고 불리우는 전자 경로를 따라 엑세스 하지요.
또한 ALU는 내부장치와 레지스터로 이루어져 있습니다.(연산장치(alu)의 구조, 기능 및 역할 : 네이버 블로그 (naver.com))
내부장치
- 가산기(Adder) : 산술연산을 수행하는 회로, 두 개이상의 수의 합을 계산하는 논리 회로.
- 보수기(Complementer) : 뺄셈을 사용할 때 사용하는 보수를 만들어주는 논리 회로.
- 시프터(Shifter) : 2진수의 각 자리를 왼쪽 또는 오른쪽으로 이동해주는 회로.
- 오버플로우(Overflow) 검출기 : 산술기의 결과가 해당 레지스터의 용량을 초과했을 때를 검출해주는 회로.
레지스터(Register)
- 누산기(Accumulator) : 산술과 논리연산의 중간 값을 임시적으로 보관하기 위한 레지스터.
- 저장 레지스터(Storage Register) : 주기억 장치로 보내는 데이터를 임시적으로 저장하는 레지스터.
- 데이터 레지스터(Data Register) : 연산을 위한 데이터를 일시적으로 기억하는 레지스터.
- 상태 레지스터(Status Register) : 산술과 논리 연산의 결과로 나오는 캐리, 부호, 오버플로우 등의 상태를 기억하는 레지스터.
- 인덱스 레지스터(Index Register) : 명령 주소를 수정하거나 색인 주소를 지정할 때 사용하는 레지스터.
- 부동소수점 레지스터(Floating Point Register) : 부동소수점 연산에 사용되는 레지스터
CO-Processor ( 공청기 )
과거에는 CPU 구성요소인 ALU 만을 사용해서 부동소수점 까지 계산하기에는 느리거나 한계가 있었기 때문에
CO-Processor 라는 보조 유닛을 CPU에 사용했습니다.
수리연산에 특화되어 부동소수점 계산을 주로 돕는 역할을 했습니다.
이는 특정 분야의 연산을 가속화하는 데 사용될 수 있습니다. 예를들면 3D 연산에 특화된 Graphics CO-Processor 가 있습니다.
최근에는 CO-Processor가 CPU에 내장되어있거나 하드웨어의 제조 기술의 발전으로 ALU가 모든 연산을 처리하고 있습니다.
수리연산을 돕는기계가 있다면 논리연산은 없을까?
네 없습니다.
논리연산은 ALU 내부의 논리게이트로 모두 처리되기 때문에 논리연산을 돕거나 논리연산만을 따로 처리하는 유닛은 별도로 없습니다.