Alu hoạt động như thế nào

ALU đầu tiên được phát hành không phải là một phần của CPU, mà là chip dòng 7400 với giao diện TTL của Texas Instruments, 74181 là ALU đầu tiên được tích hợp trên một chip duy nhất. Nó chỉ có 4-bit và được sử dụng trong nhiều máy tính mini khác nhau trong suốt những năm 1960, đánh dấu bước chuyển đổi lớn đầu tiên trong lĩnh vực điện toán.

Việc xây dựng các CPU hoàn chỉnh đầu tiên trong những năm 70 và với tất cả các yếu tố tương ứng để thực hiện một chu trình lệnh hoàn chỉnh rõ ràng phải dựa vào sự tích hợp của các ALU để tính toán các lệnh logic và số học bên trong chip.

Nội dung

  • Các loại ALU
  • Các loại hoạt động với ALU
    • Phép trừ nhị phân trong ALU
    • Phép nhân nhị phân và phép chia theo lũy thừa của 2
    • Phép nhân với lũy thừa của 2 số
    • Các phép toán phức tạp hơn
    • ALU lấy dữ liệu ở đâu để hoạt động?

Alu hoạt động như thế nào

Chúng ta có thể chia ALU thành hai phần khác nhau, phần đầu tiên là theo loại số được tính toán và do đó nếu nó được hoạt động với số nguyên hoặc với dấu phẩy động, trong trường hợp sau chúng ta đang nói về hoạt động với số thập phân. Các phép toán dấu phẩy động tuân theo một quy tắc cho biết có bao nhiêu bit của số tương ứng với phần nguyên và bao nhiêu đối với phần phân số.

Các tiêu chuẩn trong cả hai trường hợp cũng cho biết liệu số đầu tiên có đánh dấu dấu hay không, ví dụ một số ở dạng số nguyên 8 bit có thể biểu diễn một hình từ 0 đến 255 hoặc từ -127 đến 127 tùy thuộc vào định dạng được sử dụng.

Phân loại thứ hai đề cập đến số lượng dữ liệu và hướng dẫn mà một ALU thực thi cùng một lúc. Dạng đơn giản nhất là ALU vô hướng trong đó một phép toán hoặc lệnh được thực hiện bởi toán hạng. Chúng ta cũng có các đơn vị SIMD hoặc vector, thực hiện cùng một lệnh với các toán hạng khác nhau cùng một lúc.

Các loại hoạt động với ALU

Alu hoạt động như thế nào

Trước hết, chúng ta phải có một ALU không thể tự hoạt động, do đó, một bộ phận điều khiển sẽ cần thiết để chỉ ra lệnh nào để thực hiện và trên dữ liệu nào để thực hiện nó. Vì vậy, trong phần giải thích này, chúng ta sẽ giả sử rằng chúng ta có một bộ phận điều khiển đi kèm với ALU của chúng ta.

ALU cho phép bất kỳ loại bộ xử lý nào, có thể là CPU hoặc GPU, thực hiện các phép toán với số nhị phân. Vì vậy, nó không có gì khác hơn một máy tính nhị phân, là loại ALU đơn giản nhất, cho phép cộng hai số mỗi số 1 bit, đó là một phép toán như sau:

hoạt độngKết quảvận tải
0 + 0 0 0
0 + 1 1 0
1 + 0 1 0
1 + 1 1 1

Nếu bạn nhìn vào chúng, đây là các thông số kỹ thuật của cổng logic kiểu OR, nhưng chúng tôi nhận thấy một vấn đề phải thực hiện khi thêm 1 + 1, vì kết quả của việc thêm nhị phân 1 + 1 là 10 chứ không phải 1. Vì vậy chúng ta phải tính đến rằng 1 trong những thứ mà chúng ta mang theo và do đó một cổng OR đơn giản là không đủ, đặc biệt nếu chúng ta muốn làm việc với độ chính xác cao hơn nhiều về số bit và do đó có ALU phức tạp hơn nhiều về số bit.

Phép trừ nhị phân trong ALU

Alu hoạt động như thế nào

Phép trừ hoặc phép trừ có thể được tính theo công thức sau:

A - B = A + KHÔNG (B) +1

Thủ thuật ở đây rất đơn giản, nó dựa trên thực tế là chúng ta đang làm việc với số nguyên nhị phân. Điều này không hoạt động với số dấu phẩy động. Chúng ta có thể sử dụng cơ chế tương tự được sử dụng để cộng hai số để thực hiện phép trừ. Tất cả những gì chúng ta cần làm là đảo ngược giá trị của hoạt động thứ hai thông qua một loạt các cổng NOT và thêm 1 vào kết quả cuối cùng. Nhờ chúng, chúng ta có thể sử dụng cùng một phần cứng để thực hiện một phép tính cộng để thực hiện một phép trừ.

Phép nhân nhị phân và phép chia theo lũy thừa của 2

Alu hoạt động như thế nào

Hình thức nhân đơn giản nhất trong hệ nhị phân là nhân với các số bội của 2, là một hệ nhị phân, chúng ta chỉ phải thực hiện một cơ chế trong đó dữ liệu đầu vào được dịch chuyển một số vị trí sang trái, nếu chúng ta đang nhân hoặc sang trái . đúng, nếu chúng ta đang phân chia. Số lượng các vị trí? Nó phụ thuộc vào chỉ số lũy thừa của 2 của cấp số nhân, vì vậy nếu chúng ta đang nhân với 8 được 2 ^ 3 thì chúng ta sẽ phải chuyển vị trí số 3 sang trái và nếu nó đang chia 3 vị trí sang phải. Chính vì lý do này mà các ALU cũng tích hợp các phép toán dịch chuyển bit, là cơ sở để nhân hoặc chia cho bội số của 2.

Nhưng nếu chúng ta nói về việc nhân các loại số khác, thì tốt nhất chúng ta nên quay lại thời còn bé đi học.

Phép nhân với lũy thừa của 2 số

Alu hoạt động như thế nào

Trong nhiều năm, các ALU rất đơn giản và chỉ có thể thêm vào, vì chúng không có ALU dành cho phép nhân. Làm thế nào họ thực hiện sau đó? Chà, việc thực thi một số tổng được nối liền khiến chúng mất nhiều chu kỳ. Như một sự tò mò về lịch sử, một trong những CPU nội địa đầu tiên có đơn vị nhân là Intel 8086.

Giả sử chúng ta muốn nhân 25 x 25, khi chúng ta còn nhỏ, những gì chúng ta đã làm như sau:

  • Đầu tiên, chúng ta nhân 25 x 5 và viết ra kết quả là 125.
  • Thứ hai, chúng tôi nhân 25 x 2, cho chúng tôi 50 và chúng tôi viết ra kết quả nhưng dịch chuyển một vị trí sang trái.
  • Chúng tôi cộng cả hai số, vì chúng tôi có số thứ hai dịch sang bên trái, kết quả của tổng không phải là 175, mà là 625, là kết quả của phép nhân 25 x 25 trong số thập phân.

Chà, trong hệ nhị phân, quá trình này cũng giống như vậy, nhưng số 25 trong trường hợp này là 11001 và do đó là số 5 bit. Vì vậy, hệ nhị phân, chúng ta sẽ nhân 11001 x 11001 và đối với điều này, chúng ta sẽ phải sử dụng cổng AND.

  • Đầu tiên, chúng ta nhân 11001 x 1 = 11001
  • Thứ hai, chúng ta nhân với 11001 x 0 = 0000, chúng ta viết kết quả sang bên trái một chỗ.
  • Thứ ba, chúng tôi nhân với 11001 x 0 = 0000, chúng tôi viết kết quả ở hai vị trí bên trái.
  • Thứ tư, chúng tôi nhân với 11001 x 1 = 11001, chúng tôi viết kết quả ở ba vị trí bên trái
  • Thứ năm, chúng tôi nhân với 11001 x 1 = 11001, chúng tôi viết kết quả ở bốn vị trí bên trái
  • Có tính đến vị trí của từng thao tác, chúng tôi thêm kết quả, kết quả không phải là kết quả 01001110001

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

Alu hoạt động như thế nào

Với những giải thích ở trên, bạn có thể xây dựng các đơn vị để thực hiện các phép toán phức tạp hơn nhiều như phép chia, căn bậc hai, lũy thừa, v.v. Hoạt động càng phức tạp rõ ràng sẽ cần nhiều bóng bán dẫn hơn. Trên thực tế, đối với mỗi hoạt động có một cơ chế khác nhau và khi đơn vị điều khiển cho ALU biết loại hoạt động sẽ thực thi thì những gì nó đang làm là nói với nó rằng nó phải sử dụng cơ chế cụ thể đó cho hoạt động toán học cụ thể đó.

Vì điều quan trọng là tiết kiệm bóng bán dẫn, các hoạt động phức tạp nhất được định nghĩa là sự kế tiếp của đơn giản nhất để sử dụng lại phần cứng. Điều này dẫn đến những hoạt động phức tạp hơn đòi hỏi số lượng chu kỳ đồng hồ cao hơn. Mặc dù trong một số thiết kế, các cơ chế hoàn chỉnh được thực hiện cho phép các hoạt động này được thực hiện trong một số chu kỳ nhỏ hơn nhiều và thậm chí trong một chu kỳ duy nhất trong nhiều trường hợp, nhưng chúng không phổ biến trong CPU.

Nơi chúng được sử dụng trong GPU, nơi chúng ta thấy một loại đơn vị được gọi là Đơn vị chức năng đặc biệt chịu trách nhiệm thực hiện những gì chúng ta gọi là các phép toán siêu nghiệm, chẳng hạn như tỷ lệ lượng giác được sử dụng trong hình học.

ALU lấy dữ liệu ở đâu để hoạt động?

Alu hoạt động như thế nào

Trước hết, chúng ta phải lưu ý rằng ALU không hoạt động với dữ liệu trong bộ nhớ, nhưng trong quá trình thu thập và giải mã dữ liệu mà nó phải hoạt động được lưu trữ trong một thanh ghi được gọi là bộ tích lũy, trên đó các hoạt động.

Trong một số hệ thống phức tạp hơn, nhiều hơn một thanh ghi được sử dụng cho các phép toán số học và trong một số trường hợp, thậm chí còn có các thanh ghi đặc biệt cho một số lệnh. Phần lớn thời gian được ghi lại bằng tài liệu, nhưng trong những trường hợp khác, bởi vì chúng chỉ được sử dụng trong một số hướng dẫn nhất định, chúng thường không được ghi lại.

Lý do để sử dụng các thanh ghi là vì chúng gần với ALU, nếu RAM bộ nhớ được sử dụng thì sẽ mất nhiều thời gian hơn để thực hiện một thao tác đơn giản. Lý do khác là vì sẽ tiêu tốn nhiều năng lượng hơn để thực hiện một hoạt động.

Với tất cả những điều này, nó được giải thích về cách thức hoạt động của ALU, ít nhất là về mặt cơ bản.