
ALU란?
ALU(Arithmetic and Logical Unit)는 산술 논리 장치로, 덧셈이나 뺄셈 같은 두 숫자의 산술 연산과 비트수준의 논리 연산(AND, OR, NOT, XOR 등)을 수행하는 디지털 회로를 말합니다. 이는 조건을 평가하고 프로그램의 제어 흐름을 조작하는데 사용되며, CPU안에 위치하고 있습니다.
ALU의 기본 구성요소
1. 연산기
: 덧셈기, 뺄셈기, 증감기 등 산술 연산 수행
2. 논리 연산기
: AND, OR, XOR, NOT 등 논리 연산 수행
3. MUX
: 산술/논리 연산 결과 중 하나를 출력
4. 입력 레지스터 (Register A,B)
: ALU에서 연산할 데이터 A,B를 입력 받아 저장
5. Flag
: 상태를 나타내는 플래그 생성 (Zero, Carry, Overflow, Negative 등)
+ 추가로, 부동소수점 연산을 담당하는 FPU(Floating Point Unit), 벡터 및 병렬 연산을 하는 SIMD ALU, Swift Unit도 있다고 합니다.
연산결과는 레지스터에 임시 저장되었다가 플래그 갱신과 함께 메모리에 저장됩니다.
가장 많이 사용되는 ALU 중 하나인 ALU_74181에 대한 코드를 아래 깃허브에서 확인할 수 있습니다.
https://github.com/foodinsect/ALU_74181
GitHub - foodinsect/ALU_74181
Contribute to foodinsect/ALU_74181 development by creating an account on GitHub.
github.com
이와 관련된 분석 논문을 아래 페이지에서 확인할 수 있습니다.
https://www.koreascience.or.kr/article/CFKO200014835282144.pdf