25/05/2018, 12:29

Arithmetic Logic Unit(ALU)

Trong CPU, một bộ số học và logic (ALU - Arithmetic logic unit) là một mạch điện tử thực hiện phép tính số học và logic. ALU là một phần tử cơ bản của CPU của một máy tính.Bộ vi xử lý chứa rất nhiều và rất phức tạp các ALU Nhà toán học John von ...

Trong CPU, một bộ số học và logic (ALU - Arithmetic logic unit) là một mạch điện tử thực hiện phép tính số học và logic. ALU là một phần tử cơ bản của CPU của một máy tính.Bộ vi xử lý chứa rất nhiều và rất phức tạp các ALU

Nhà toán học John von Neumann phát minh ra lý thuyết về ALU vào năm 1945, khi viết một báo cáo cho EDVAC.

Ký hiệu Giản đồ của ALU
8 Bit ALU của Texas Instruments SN74AS888

Năm 1946, von Neumann nghiên cứu cùng các sinh viên để thiết kế một chiếc máy tính cho Viện nghiên cứu cao cấp Princeton (IAS) ở Princeton, New Jersey. và chiếc máy tính IAS đã trở thành tiền thân cho nhiều máy tính thế hệ sau. Trong đề xuất, von Neumann phác thảo những thứ quan trọng cần trong máy tính, bao gồm cả ALU.

von Neumann tin rằng một ALU cần thiết cho một máy tính bởi vì máy tính chỉ tính các phép toán bao gồm cộng, trừ, nhân và chia.

Một ALU phải xử lí các số sử dụng cùng form với các mạch điện tử. Đó là hệ nhị phân 0 và 1. Việc biểu diễn các số ở hệ thập phân cần đến mười ống bán dẫn.

Mỗi ALU có một thiết kế khác nhau, nhưng đều theo qui tắc mã bù hai. Từ đó, bộ ALU dễ dàng tính toán các phép cộng và trừ.

Hệ thống mã bù hai cho phép phép trừ được thực hiện bằng cách cộng thêm số đối của số trừ vào số bị trừ.

Đa phần, một phép toán được thực hiện bởi một hay nhiều ALU. Một ALU load dữ liệu từ các thanh ghi, một bộ điều khiển. ALU tính toán rồi lưu kết quả vào một thanh ghi kết quả. Một hệ thống khác sẽ di chuyển dữ liệu giữa các thanh ghi và bộ nhớ.

Các phép toán đơn giản

Một ví dụ về ALU (2-bit ALU) thực hiện AND, OR, XOR và cộng

Đa số các ALU có thể thực hiện các phép toán sau:

  • số nguyên (cộng, trừ, nhân and chia)
  • Bit logic (AND, NOT, OR, XOR)
  • Dịch bit

Các phép toán phức tạp

Một kỹ sư có thể thiết kế một ALU để tính toán, Tuy nhiên, vấn đề ở chỗ phép toán các phức tạp, ALU càng đắt, bộ xử lí càng lớn và càng tốn nhiều năng lượng, vân vân.

Bởi vậy, Các kỹ sư thường xuyên phải tính toán sao cho cân bằng, cung cấp cho bộ xử lí một ALU mạnh đủ để nó chạy nhanh, nhưng không quá phức tạp. Đó được gọi là software emulation.

Vào và Ra

Dữ liệu vào ALU được thực hiện trên những operand và mã lệnh từ bộ điều khiển chỉ ra phép toán nào sẽ được thực hiện. Dữ liệu kết quả được xuất ra sau khi thực hiện phép toán.

Có nhiều thiết kế ALU đã tự tạo hoặc sinh mã lệnh điều kiện cho dữ liệu vào hoặc ra vào một thanh ghi trạng thái. Những mã lệnh này được dùng để chỉ thị như carry, tràn số, chia cho 0, vân vân.

ALU và FPU

Một bộ dấu phẩy động (Số thực dấu phẩy động)(FPU - Floating point unit) cũng thực hiện các phép toán giữa hai giá trị, Nhưng chúng thực hiện dựa trên dạng dấu phẩy động, phức tạp hơn dạng mã bù hai của các ALU thông thường. FPU chứa rất nhiều mạch điện tử phức tạp, và bao gồm cả một số ALU.

Thường, các ALU thực hiện các phép toán số học với dạng số nguyên (như mã bù hai và BCD), trong khi các FPU tính toán các dạng phức tạp như bộ dấu phẩy động, số phức, ...

  • Vi mạch 7400
  • Vi mạch 74181
  • Mạch điện tử
  • Control Unit
0