컴퓨터 시스템에서 ALU는 산술논리장치(Arithmetic Logic Unit)를 의미하며 산술 및 논리연산을 수행하는 중앙처리장치의 주요 구성요소이다. 프로세서에서 계산을 수행하는 마지막 구성 요소인 CPU 또는 GPU 내의 집적 회로인 정수 단위(IU)라고도 합니다. 부울 비교(XOR, OR, AND 및 NOT 연산)를 포함하여 덧셈, 뺄셈, 이동 연산 등 산술 및 논리 연산과 관련된 모든 프로세스를 수행할 수 있는 기능을 갖추고 있습니다. 또한 이진수는 수학 및 비트 단위 연산을 수행할 수 있습니다. 산술 논리 장치는 AU(산술 장치)와 LU(논리 장치)로 구분됩니다. ALU가 사용하는 피연산자와 코드는 입력 데이터에 따라 어떤 작업을 수행해야 하는지 알려줍니다. ALU가 입력 처리를 완료하면 해당 정보가 컴퓨터 메모리로 전송됩니다.
덧셈과 뺄셈과 관련된 계산을 수행하는 것을 제외하고 ALU는 정수 계산을 실행하도록 설계되었기 때문에 두 정수의 곱셈을 처리합니다. 따라서 결과도 정수입니다. 그러나 나누기 연산은 부동 소수점 수의 결과를 생성할 수 있으므로 나누기 연산은 일반적으로 ALU에 의해 수행되지 않을 수 있습니다. 대신, FPU(부동 소수점 단위)는 일반적으로 나누기 작업을 처리합니다. 기타 정수가 아닌 계산도 FPU에서 수행할 수 있습니다.
또한 엔지니어는 모든 유형의 작업을 수행하도록 ALU를 설계할 수 있습니다. 그러나 ALU는 더 많은 열을 소모하고 CPU에서 더 많은 공간을 차지하므로 작업이 복잡해질수록 비용이 더 많이 듭니다. 이것이 엔지니어들이 강력한 ALU를 만드는 이유이며, 이는 CPU도 빠르고 강력하다는 것을 보장합니다.
CPU에 필요한 계산은 산술 논리 장치(ALU)에 의해 처리됩니다. 그 중 대부분의 작업은 본질적으로 논리적입니다. CPU가 더욱 강력해지면 ALU를 기반으로 설계됩니다. 그러면 더 많은 열이 발생하고 더 많은 전력이나 에너지가 필요합니다. 따라서 ALU가 얼마나 복잡하고 강력한지, 그리고 더 많은 비용이 들지 않는지 사이에서 조정해야 합니다. 이것이 CPU가 빠를수록 비용이 더 많이 드는 주된 이유입니다. 그러므로 그들은 많은 전력을 소비하고 더 많은 열을 파괴합니다. 산술 및 논리 연산은 ALU가 수행하는 주요 연산입니다. 또한 비트 이동 작업도 수행합니다.
추상 수업
ALU는 프로세서의 주요 구성 요소이지만 ALU의 디자인과 기능은 프로세서마다 다를 수 있습니다. 예를 들어 일부 ALU는 정수 계산만 수행하도록 설계되었고 일부는 부동 소수점 연산용으로 설계되었습니다. 일부 프로세서에는 연산을 수행하기 위한 단일 산술 논리 장치가 포함되어 있고 다른 프로세서에는 계산을 완료하기 위해 수많은 ALU가 포함될 수 있습니다. ALU가 수행하는 작업은 다음과 같습니다.
산술 논리 장치(ALU) 신호
ALU에는 다양한 입력 및 출력 전기 연결이 포함되어 있어 외부 전자 장치와 ALU 사이에 디지털 신호를 전송하게 됩니다.
ALU 입력은 외부 회로로부터 신호를 받고 이에 대한 응답으로 외부 전자 장치는 ALU로부터 출력 신호를 받습니다.
데이터: ALU에는 2개의 입력 및 출력 피연산자를 포함하는 3개의 병렬 버스가 포함되어 있습니다. 이 세 개의 버스는 동일한 수의 신호를 처리합니다.
연산코드: ALU가 연산을 수행할 때, ALU가 어떤 연산을 수행할지 또는 논리 연산을 수행할지 연산 선택 코드를 통해 설명됩니다.
상태
자바 스택
ALU의 구성
ALU가 프로세서와 상호 작용하는 방법에 대한 설명은 다음과 같습니다. 모든 산술 논리 장치에는 다음 구성이 포함됩니다.
- 명령어 세트 아키텍처
- 누산기
- 스택
- 등록하려면 등록하세요
- 스택 등록
- 메모리 등록
누산기
모든 작업의 중간 결과는 누산기에 포함됩니다. 이는 ISA(명령어 세트 아키텍처)가 1비트만 보유하면 되기 때문에 더 복잡하지 않다는 것을 의미합니다.
일반적으로 훨씬 빠르고 덜 복잡하지만 Accumulator를 더욱 안정적으로 만듭니다. 적절한 값으로 채우려면 추가 코드를 작성해야 합니다. 불행하게도 단일 프로세서에서는 병렬 처리를 실행할 누산기를 찾는 것이 매우 어렵습니다. 누산기의 예로는 데스크톱 계산기가 있습니다.
스택
최신 작업이 수행될 때마다 이러한 작업은 작은 레지스터인 하향식 순서로 프로그램을 보유하는 스택에 저장됩니다. 새로운 프로그램이 추가되어 실행되면 기존 프로그램을 밀어 넣습니다.
레지스터-레지스터 아키텍처
여기에는 1개의 대상 명령어와 2개의 소스 명령어를 위한 장소가 포함되어 있으며 3-레지스터 연산 기계라고도 합니다. 이 명령어 세트 아키텍처는 피연산자 3개, 대상 1개, 소스 2개를 저장하기 위해 길이가 더 길어야 합니다. 작업이 끝난 후 결과를 레지스터에 다시 쓰는 것은 어려울 뿐만 아니라 단어의 길이도 길어야 합니다. 그러나 이 위치에서 후기입 규칙을 따르면 동기화와 관련하여 더 많은 문제가 발생할 수 있습니다.
고빈다
MIPS 구성 요소는 등록 간 아키텍처의 예입니다. 입력의 경우 두 개의 피연산자를 사용하고 출력의 경우 세 번째 고유 구성 요소를 사용합니다. 저장 공간은 각각 고유한 메모리가 필요하므로 유지 관리가 어렵습니다. 그러므로 항상 프리미엄이어야 합니다. 또한 일부 작업을 수행하기 어려울 수도 있습니다.
자바 수학 수업
등록 - 스택 아키텍처
일반적으로 레지스터와 누산기 작업의 조합은 레지스터 - 스택 아키텍처로 알려져 있습니다. 레지스터 스택 아키텍처에서 수행되어야 하는 작업은 스택 상단으로 푸시됩니다. 그리고 그 결과는 스택의 맨 위에 보관됩니다. 역연마 방법을 사용하면 더 복잡한 수학 연산을 분석할 수 있습니다. 일부 프로그래머는 피연산자를 표현하기 위해 이진 트리 개념을 사용합니다. 이는 리버스 폴리싱 방법론이 이러한 프로그래머에게는 쉬울 수 있지만 다른 프로그래머에게는 어려울 수 있음을 의미합니다. Push 및 Pop 작업을 수행하려면 새로운 하드웨어를 생성해야 합니다.
레지스터와 메모리
이 아키텍처에서는 피연산자 중 하나가 레지스터에서 나오고, 다른 피연산자는 외부 메모리에서 나오며 이는 가장 복잡한 아키텍처 중 하나입니다. 그 이유는 모든 프로그램이 전체 메모리 공간에 보관되어야 하기 때문에 매우 길 수 있기 때문입니다. 일반적으로 이 기술은 Register-Register Register 기술과 통합되어 있어 실질적으로 별도로 사용할 수는 없습니다.
ALU의 장점
ALU는 다음과 같은 다양한 장점을 가지고 있습니다.
- 고성능 병렬 아키텍처와 애플리케이션을 지원합니다.
- 원하는 출력을 동시에 얻고 정수 및 부동 소수점 변수를 결합하는 기능이 있습니다.
- 이는 매우 큰 세트에 대한 명령을 수행할 수 있는 능력을 갖추고 있으며 정확도가 높습니다.
- 덧셈과 곱셈, 덧셈과 뺄셈과 같은 동일한 코드의 두 가지 산술 연산 또는 임의의 두 피연산자가 ALU에 의해 결합될 수 있습니다. 경우에는 A+B*C입니다.
- 전체 프로그램을 통해 균일하게 유지되며 중간에 일부를 방해할 수 없는 방식으로 간격을 둡니다.
- 일반적으로 매우 빠릅니다. 따라서 결과를 빠르게 제공합니다.
- ALU에는 감도 문제도 없고 메모리 낭비도 없습니다.
- 가격이 저렴하고 논리 게이트 요구 사항이 최소화됩니다.
ALU의 단점
ALU의 단점은 아래에 설명되어 있습니다.
- ALU를 사용하면 부동 변수에 더 많은 지연이 발생하고 설계된 컨트롤러는 이해하기 쉽지 않습니다.
- 메모리 공간이 확실하다면 결과에 버그가 발생할 것입니다.
- 아마추어의 회로는 복잡하기 때문에 이해하기 어렵습니다. 또한 파이프라이닝의 개념은 이해하기 복잡합니다.
- ALU의 입증된 단점은 지연 시간에 불규칙성이 있다는 것입니다.
- 또 다른 단점은 반올림으로, 이는 정확도에 영향을 미칩니다.