Phân tích bộ cộng nằm ở "trái tim" của chip xử lý dấu chấm động Intel 8087
Bài viết đi sâu khám phá kiến trúc của bộ cộng 69-bit - thành phần cốt lõi giúp bộ đồng xử lý Intel 8087 thực hiện các phép tính toán học nhanh gấp 100 lần so với các dòng chip trước đó.

Vào năm 1980, Intel đã ra mắt bộ đồng xử lý dấu chấm động 8087, một con chip có khả năng thực hiện các phép tính toán nhanh hơn gấp 100 lần so với CPU chính lúc bấy giờ. Không chỉ dừng lại ở các phép tính cơ bản hay căn bậc hai, 8087 còn có khả năng tính toán các hàm phức tạp như tang, lũy thừa và logarit.
Tuy nhiên, mọi khả năng tuyệt vời ấy đều dựa trên một bộ cộng 69-bit. Giống như mô tả trong bằng sáng chế của Intel, đó là "trái tim của đơn vị thực thi dấu chấm động", bao gồm bộ cộng, các thanh ghi liên quan, bộ dịch chuyển và mạch điều khiển. Hãy cùng nhìn lại thiết kế kỹ thuật ấn tượng của bộ cộng này dưới góc độ của một kỹ sư phần cứng.
Die của chip Intel 8087 với các khối chức năng được gắn nhãn
Trong ảnh chụp die (tấm chất bán dẫn) của 8087 dưới kính hiển vi ở trên, phần nửa dưới của die là "datapath" (đường dẫn dữ liệu) - nơi thực hiện các tính toán. Khu vực này được chia thành hai phần: đường dẫn dữ liệu số mũ (exponent) xử lý phần mũ của số dấu chấm động, và đường dẫn dữ liệu phần trị (fraction) xử lý phần định trị. Bộ cộng (màu đỏ) nằm ngay giữa phần dữ liệu fraction.
Cấu trúc của bộ cộng
Xây dựng một bộ cộng nhị phân là điều khá đơn giản, nhưng làm cho nó hoạt động nhanh lại là một thách thức lớn. Vấn đề cốt lõi nằm ở cách xử lý các bit nhớ (carry) từ vị trí này sang vị trí tiếp theo. Nếu phải đợi các tín hiệu nhớ lan truyền tuần tự qua tất cả 69 bit, tốc độ xử lý sẽ bị chậm lại đáng kể.
Sơ đồ đơn giản hóa của một khối 4-bit trong bộ cộng 8087
Để giải quyết vấn đề này, bộ cộng của 8087 chia phép cộng thành các khối 4-bit. Nó sử dụng hai kỹ thuật để tăng tốc độ tính toán bên trong từng khối, giảm số bước xử lý carry đi 4 lần. Sơ đồ trên minh họa cấu trúc của một khối 4-bit, với hai đầu vào F (từ bus dữ liệu fraction) và B (từ thanh ghi B).
Chuỗi truyền dẫn Manchester (Manchester Carry Chain)
Để xử lý tín hiệu nhớ một cách nhanh chóng, 8087 sử dụng kỹ thuật "Manchester carry chain", được phát triển bởi các nhà nghiên cứu tại Đại học Manchester vào năm 1959. Kỹ thuật này tính toán các giá trị carry bằng cách thiết lập các công tắc song song và để tín hiệu truyền qua dây dẫn với tốc độ rất cao, thay vì phải đi qua các cổng logic chậm chạp.
Nguyên lý hoạt động dựa trên ba khái niệm chính khi cộng hai bit: Generate (Tạo), Propagate (Truyền) và Delete (Xóa).
- Generate: Khi cộng 1+1, luôn tạo ra carry ra bất kể đầu vào là gì.
- Delete: Khi cộng 0+0, không bao giờ tạo ra carry ra (xóa carry vào).
- Propagate: Khi cộng 0+1, carry ra chỉ có khi có carry vào (tức là truyền carry vào sang carry ra).
Trong chuỗi Manchester, các công tắc ở mỗi bit được thiết lập theo ba trạng thái này. Khi các công tắc đã sẵn sàng, trạng thái carry sẽ trôi nhanh qua mạch, tạo ra giá trị carry ở mỗi vị trí mà không bị độ trễ của logic gates. Nếu công tắc Propagate đóng, carry trước đó sẽ đi qua. Nếu công tắc Generate hoặc Delete đóng, carry sẽ được đặt (set) hoặc xóa (clear).
Tối ưu hóa trong phần cứng
Bộ cộng của 8087 sử dụng transistor NMOS, loại transistor kéo tín hiệu mức thấp xuống rất nhanh nhưng kéo mức cao lên lại khá chậm. Do đó, để tối ưu hiệu suất, các đường carry được "tắc sạc" (precharge) lên mức 5V ở đầu chu kỳ, sau đó mạch sẽ kéo đường xuống mức 0 nếu cần.
Một khối 4-bit trong bộ cộng khi lớp kim loại được loại bỏ
Mặc dù vậy, việc sử dụng các transistor dạng "pass transistor" không hoàn hảo, vì chúng làm giảm một chút điện áp ở mỗi bước. Để khắc phục, chuỗi carry bị chia nhỏ thành các khối 4-bit. Mỗi khối tạo ra một tín hiệu carry "tươi" (fresh) nhờ một mạch gọi là "carry-skip". Nếu tất cả các vị trí trong khối đều ở trạng thái Propagate, mạch này sẽ cho phép carry đi qua khối mà không cần tính toán lại từng bit một.
Ảnh trên cho thấy cách các khối 4-bit được xếp chồng lên nhau để tạo thành bộ cộng hoàn chỉnh trên die của chip. Các đường kim loại màu trắng được bố trí cực kỳ chặt chẽ để tối ưu hóa không gian.
Kích thước và các mạch liên quan
Về mặt kỹ thuật, 8087 xử lý số fraction 64-bit, nhưng bộ cộng thực sự lớn hơn một chút: nó nhận đầu vào 69-bit và tạo ra đầu ra 70-bit. Lý do là chip cần thêm 3 bit thấp (Guard, Round và Sticky) để xử lý việc làm tròn số chính xác. Ngoài ra, để hỗ trợ phép trừ (biểu diễn dưới dạng bù hai) và nhân, bộ cộng cần thêm một số bit mở rộng.
Các đầu vào của bộ cộng lấy từ bus fraction và thanh ghi B, trong khi đầu ra được lưu vào thanh ghi Sum. Các thao tác nhân, chia và căn bậc hai đều yêu cầu nhiều bước lặp lại, nhưng vòng lặp nội tại này được thực hiện hoàn toàn bằng phần cứng để tăng tốc độ tối đa, thay vì dùng microcode.
Kết luận
Như bằng sáng chế của Intel đã khẳng định: "Cuối cùng, tất cả các phép tính số học đều được quy về phép cộng nhị phân tại một điểm nào đó". Do đó, hiệu suất của bộ cộng là sống còn đối với hiệu suất tổng thể của 8087. Mặc dù có những phương pháp cộng nhanh hơn hiện nay (như bộ cộng Kogge-Stone trong Pentium), nhưng chúng yêu cầu quá nhiều transistor. Với giới hạn về số lượng transistor của năm 1980, 8087 đã đạt được sự cân bằng hoàn hảo giữa độ phức tạp và hiệu suất nhờ chuỗi truyền dẫn Manchester kết hợp với mạch carry-skip.
Bài viết liên quan

Công nghệ
Cảnh sát bắt giữ nghi can được cho là "ông trùm" của trang web buôn bán ma túy Dream Market
14 tháng 5, 2026

Công nghệ
Mỹ bắt đầu thắt chặt kiểm soát deepfake: Bảo vệ nạn nhân hay mở đường cho kiểm duyệt?
19 tháng 5, 2026

Công nghệ
Đèn bàn thông minh Govee có thể sạc lại đang được giảm giá xuống còn 60 USD
12 tháng 6, 2026
