Đây là một câu hỏi đơn giản với một câu trả lời rất phức tạp.
Trước hết, một số nền tảng.
Thiết kế VLSI trong thế giới thực là một lĩnh vực cực kỳ kỹ thuật với sự cân bằng liên tục thay đổi. Thời gian mà một mạch mất để tính toán một câu trả lời hiếm khi là yếu tố quan trọng duy nhất. Ngoài ra còn có sức mạnh và diện tích vật lý, cộng với một loạt các yếu tố cho thấy các mạch bạn thiết kế thực sự là tương tự (ví dụ điện trở dây, điện dung ký sinh). Tất cả những thứ này đều quan trọng trong một mạch thực và có thể ảnh hưởng đến thiết kế nào được chọn.
Thứ hai, bạn phải xem xét toàn bộ vòng đời của một dự án. Một bộ cộng thích hợp cho việc thực hiện VLSI có thể không phù hợp với việc thực hiện đồ họa. Nếu thiết kế sẽ trải qua giai đoạn được thử nghiệm trên một đồ họa ... bạn sẽ có được hình ảnh.
Thứ ba, không phải mọi trình cộng đều được thực hiện như nhau. Trên một CPU thông thường, có rất nhiều bộ bổ sung treo xung quanh làm các nhiệm vụ khác nhau; có thể có một số ALU nguyên, một bộ cộng mantissa dấu phẩy động, một bộ cộng có tính toán địa chỉ, một bộ cộng tính toán các mục tiêu nhánh, v.v. Đó là không tính các bộ cộng mang theo mà bạn tìm thấy trong các đơn vị nhân hiện đại. Mỗi cái có những đặc thù và ràng buộc riêng.
Ví dụ, tính toán mục tiêu chi nhánh thường bao gồm việc thêm một hằng số nhỏ vào một từ đầy đủ, điều này gợi ý một thiết kế bộ cộng khác với một từ bổ sung hai từ đầy đủ với nhau. Tương tự, bổ sung dấu phẩy động đòi hỏi một bước làm tròn sau bổ sung có thể mất ít hơn một chu kỳ, vì vậy không có lý do gì bạn không thể đánh cắp phần còn lại của chu kỳ để kết thúc phép cộng.
Cuối cùng, và có lẽ là quan trọng nhất, những người chơi lớn (ví dụ Intel, AMD, NVIDIA) khá kín tiếng về các chi tiết triển khai cấp thấp vì những lý do rõ ràng, trừ khi họ nghĩ rằng họ có thể lấy giấy và / hoặc bằng sáng chế ra khỏi nó. Ngay cả sau đó, bạn thường không thể chắc chắn những gì họ thực sự đã làm mà không có kỹ thuật đảo ngược.
Phải nói rằng, có một vài điều chúng ta biết.
Điều quan trọng bạn cần nhận ra là các phương thức mang theo đang xây dựng các khối và không nhất thiết phải là các phương thức trong chính chúng. Một sự tương tự có thể theo thứ tự ở đây.
Nếu bạn nghĩ về các lớp thuật toán, có lẽ bạn đã học được một loạt các thuật toán sắp xếp như sắp xếp nhanh, sắp xếp hợp nhất, sắp xếp chèn, v.v. Trong thế giới thực, nếu sắp xếp là một nút cổ chai hiệu năng, bất kỳ kỹ sư tử tế nào cũng sẽ nghĩ đây là những khối xây dựng nguyên thủy mà từ đó có thể xây dựng một loại "thực".
Ví dụ, thuật toán sắp xếp từ thư viện chuẩn GNU C ++ sử dụng sắp xếp nhanh, sử dụng sắp xếp chèn khi các khoảng thời gian đủ nhỏ. Tuy nhiên, nếu sau một vài lần vượt qua, có vẻ như phân vùng sắp xếp nhanh đã ảnh hưởng đến hành vi bệnh lý, nó sẽ rơi trở lại sắp xếp đống. Đó là ba thuật toán sắp xếp khác nhau để tạo ra một loại sức mạnh công nghiệp.
Điều tương tự cũng đúng với các mạch cộng. Được biết, ví dụ, đơn vị số nguyên Pentium 4 đã sử dụng bộ cộng Han-Carlson, là sự pha trộn của Kogge-Stone và Brent-Kung. (Han-Carlson đặc biệt thú vị, bởi vì đó là một "điểm ngọt" trong sự đánh đổi giữa độ trễ lan truyền và vùng chết cũng khá hiệu quả về năng lượng.) Nó thường trả tiền để sử dụng kết hợp nhiều phương pháp.
Các trình bổ sung mang theo "thuần túy" vẫn còn rất nhiều tiêu chuẩn trong các mạch tổng hợp (ví dụ: nếu bạn cung cấp toán tử Verilog "+" cho Cadence hoặc Synopsys), khi nói đến thiết kế thủ công, các CPU cao cấp hiện đại có siêu âm hiện đại của chúng các công cụ thực thi theo thứ tự dường như đang chuyển sang một thiết kế hơi khác cho các đơn vị nguyên của chúng.
Các bộ cộng đầu cơ là các mạch có độ trễ lan truyền cực thấp, nhưng chỉ hoạt động chính xác trong một số thời gian (95% thời gian là điển hình) và có thể nói với rất ít logic liệu bộ cộng đầu cơ có trả về kết quả chính xác hay không. Vì vậy, ý tưởng là thực hiện một phép cộng đầu cơ và một nửa phép cộng mang theo song song, trong một chu kỳ. Nếu bộ cộng đầu cơ trả về câu trả lời đúng, hướng dẫn được thực hiện. Nếu không, hãy trì hoãn đường ống và thực hiện nửa còn lại của phép cộng chính xác.
Vì bạn biết rằng đường dẫn chậm sẽ mất hai chu kỳ, các nhà thiết kế có thể sử dụng phương pháp tiết kiệm năng lượng và không gian hơn ngay cả khi nó quá chậm để sử dụng chung.