Đơn vị logic số học

**Đơn vị logic số học** (arithmetic logic unit, **ALU**) là một mạch điện tử kỹ thuật số kết hợp thực hiện các phép toán số học và bitwise trên các số nguyên nhị phân. Điều này trái ngược với một đơn vị dấu phẩy động (FPU), hoạt động trên các số dấu phẩy động. ALU là một khối xây dựng cơ bản của nhiều loại mạch điện toán, bao gồm đơn vị xử lý trung tâm (CPU) của máy tính, FPU và đơn vị xử lý đồ họa (GPU). Một CPU, FPU hoặc GPU có thể chứa nhiều ALU.

Các đầu vào của ALU là dữ liệu được vận hành trên, được gọi là toán hạng và mã cho biết thao tác được thực hiện; và đầu ra của ALU là kết quả của hoạt động được thực hiện. Trong nhiều thiết kế, ALU cũng có đầu vào hoặc đầu ra trạng thái, hoặc cả hai, truyền đạt thông tin về hoạt động trước đó hoặc hoạt động hiện tại, tương ứng, giữa ALU và các thanh ghi trạng thái bên ngoài.

## Tín hiệu
ALU có nhiều lưới đầu vào và đầu ra, đó là các dây dẫn điện được sử dụng để truyền tín hiệu kỹ thuật số giữa ALU và mạch ngoài. Khi ALU đang ở trạng thái hoạt động, các mạch bên ngoài sẽ áp dụng tín hiệu cho các đầu vào ALU và, đáp lại, ALU tạo và truyền tín hiệu đến mạch ngoài thông qua các đầu ra của nó.

### Dữ liệu
Một ALU cơ bản có ba bus dữ liệu song song bao gồm hai toán hạng đầu vào (*A* và *B*) và đầu ra kết quả (*Y*). Mỗi bus dữ liệu là một nhóm các tín hiệu truyền một số nguyên nhị phân. Thông thường, độ rộng của bus A, B và Y (số tín hiệu bao gồm mỗi bus) giống hệt nhau và khớp với kích thước từ gốc của mạch ngoài (ví dụ: CPU đóng gói hoặc bộ xử lý khác).

### Mã nguồn (opcode)
Đầu vào *opcode* là một bus song song truyền cho ALU một mã lựa chọn hoạt động, là một giá trị được liệt kê chỉ định hoạt động số học hoặc logic mong muốn được thực hiện bởi ALU. Kích thước opcode (độ rộng bus của nó) xác định số lượng hoạt động khác nhau tối đa mà ALU có thể thực hiện; ví dụ, một opcode bốn bit có thể chỉ định tối đa mười sáu hoạt động ALU khác nhau. Nói chung, opcode ALU không giống như opcode ngôn ngữ máy, mặc dù trong một số trường hợp, nó có thể được mã hóa trực tiếp dưới dạng một trường bit trong opcode ngôn ngữ máy.

### Trạng thái

#### Đầu ra
Các đầu ra trạng thái là các tín hiệu riêng lẻ khác nhau truyền đạt thông tin bổ sung về kết quả của hoạt động ALU hiện tại. ALU mục đích chung thường có các tín hiệu trạng thái như:

* *Thực hiện*, chuyển tải kết quả thực hiện từ một hoạt động bổ sung, vay mượn do hoạt động trừ hoặc bit tràn do hoạt động dịch chuyển nhị phân. 
* *Không*, biểu thị tất cả các bit của Y là logic 0. 
* *Negative*, cho biết kết quả của một phép toán số học là âm. 
* *[[Tràn số nguyên|Tràn số]]*, cho biết kết quả của phép toán số học đã vượt quá phạm vi số của Y. 
* *Tính chẵn lẻ*, cho biết số là chẵn hay lẻ trong Y là logic 1.

Vào cuối của mỗi hoạt động ALU, các tín hiệu đầu ra trạng thái thường được lưu trữ trong các thanh ghi bên ngoài để chúng có sẵn cho các hoạt động ALU trong tương lai (ví dụ: để thực hiện phép toán số học độ chính xác cao) hoặc để điều khiển phân nhánh có điều kiện. Bộ sưu tập các thanh ghi bit lưu trữ các đầu ra trạng thái thường được coi là một thanh ghi đơn, nhiều bit, được gọi là "thanh ghi trạng thái" hoặc "thanh ghi mã điều kiện".

## Tham khảo