Tại sao các mạch không đồng bộ hoàn toàn phổ biến hơn? [đóng cửa]


19

Theo hiểu biết của tôi, hầu hết các CPU tiêu dùng hiện đại đều dựa trên logic đồng bộ. Một số ứng dụng tốc độ cao (xử lý tín hiệu, v.v.) sử dụng logic ansync cho tốc độ cao hơn.

Tuy nhiên, trong thị trường ngày nay, tốc độ trong các sản phẩm tiêu dùng là một trong những điểm bán hàng chính (xem AMD so với Intel.) Sự phát triển của in thạch bản phức tạp hơn có nhanh hơn việc áp dụng logic không đồng bộ hoàn toàn không? Hoặc là logic ansync quá phức tạp / không thực tế đối với các ứng dụng VLSI?


4
Tôi nghĩ rằng rất khó để lập trình chúng theo cách thủ tục.
mehmet.ali.anil

16
Các kiến ​​trúc hiện tại là lai. Các khối đồng bộ được kết nối với nhau theo cách không đồng bộ. Và vâng, logic không đồng bộ phức tạp hơn nhiều.
Eugene Sh.

5
Bởi vì chúng tôi chưa có công cụ tốt nào cho việc đóng thời gian không đồng bộ.
Oldfart

2
Các hệ thống ngày càng không đồng bộ. Trên các CPU hiện đại, những thứ như RAM, bộ nhớ cache và lõi CPU đều chạy với các đồng hồ độc lập. Các bộ vi xử lý Intel HEDT mới thực hiện việc này một bước xa hơn và cho phép mỗi người trong số nhiều lõi trong chip chạy ở đồng hồ độc lập với nhau và từ RAM, bộ nhớ cache và bus bên ngoài vv
J ...

1
Một điều cần nhớ, đồng hồ đồng bộ giới thiệu nhịp tim được tiêu chuẩn hóa cho hệ thống, trong khi nếu bạn đi với thiết kế không đồng bộ thuần túy, nếu không, sự khác biệt về thời gian tầm thường như độ trễ lan truyền có thể phải được cung cấp thông qua một số phương tiện khác. Ngoài ra, việc triển khai các hàm thuần túy trong các thiết kế không đồng bộ là tương đối hiệu quả, nhưng các hàm trạng thái (hoặc các hoạt động khó hơn như căn bậc hai) có thể trở nên phức tạp. Tín hiệu định tuyến cũng có thể khó khăn (không có xe buýt, bạn có thể bị kẹt khi kết nối mọi thứ với mọi thứ).
jrh

Câu trả lời:


45

Tôi đã dành một vài năm để khởi nghiệp thương mại hóa công nghệ thiết kế không đồng bộ, vì vậy tôi quen với các lý do:

  • Async thực chất không nhanh hơn. Độ trễ đường dẫn trường hợp xấu nhất vẫn giữ nguyên. Chỉ là đôi khi bạn có thể tận dụng lợi thế của việc thực thi đường dẫn nhanh hơn.

  • async cũng có chi phí phát hiện hoàn thành.

  • Công cụ thiết kế. Đây là một công cụ thực sự lớn: thực sự không có một "luồng" công cụ không đồng bộ đầy đủ với chất lượng tương tự như thiết kế đồng bộ.

  • Đào tạo. Bạn thực sự phải đào tạo lại tất cả các nhà thiết kế của mình trên mô hình và công cụ mới.

  • Rủi ro và bảo thủ. Vì vậy, phần lớn ngành công nghiệp là "sản xuất một cái gì đó tương tự như cái cuối cùng, nhưng một chút khác biệt". Điều này có cơ hội làm việc rất cao. Các công ty không ngần ngại xây dựng một cái gì đó hoàn toàn khác biệt vì nó có nhiều cơ hội trở thành một khoản xóa sổ trị giá hàng chục triệu đô la.


Nó có thể là bản chất rẻ hơn nhưng chậm hơn.
Tony Stewart Sunnyskyguy EE75

3
Tôi nhớ đã từng nghĩ về điều này một lần và cũng nhận ra: Một con chip được đồng bộ hóa được ép xung một cách tầm thường (đối với pin / temp / etc), trong khi một con chip không đồng bộ có lẽ ít hơn vậy?
Vịt Mooing

Về mặt công cụ thiết kế / mô hình, logic đồng bộ có thể hoàn toàn bỏ qua các trục trặc trong đầu ra logic tổ hợp và chỉ yêu cầu các tín hiệu đồng hồ không bị trục trặc. Ngoài ra, các mạch không đồng bộ có nhiều khả năng yêu cầu thêm độ trễ bổ sung cho một số tín hiệu, để đảm bảo tín hiệu sẵn sàng không thể đến khối tiếp theo trước khi dữ liệu đến, v.v ... Trong các mạch đồng bộ, độ trễ nhân tạo hiếm khi cần thiết. Một trong số ít trường hợp nảy ra trong đầu là để đáp ứng yêu cầu về thời gian, thường có thể được thỏa mãn bởi độ trễ tự nhiên. Ngoài ra một số tình huống miền đồng hồ chéo có thể cần trì hoãn.
Kevin Cathcart

Tôi sẽ nghĩ rằng trong nhiều tình huống sử dụng đồng hồ hai pha không chồng chéo có thể mang lại nhiều lợi thế hơn một đồng hồ. Khi sử dụng đồng hồ đơn, bất kỳ xung runt nào cũng có thể khiến hệ thống nhảy đường ray, nhưng khi sử dụng đồng hồ hai pha được tạo bằng cách cho đầu vào đồng hồ qua hai bộ so sánh, xung runt trên pha đồng hồ sẽ vô hại nếu đi trước hoặc theo sau một xung đồng hồ có độ dài hợp lệ mà không có xung can thiệp vào pha đồng hồ ngược lại.
supercat

3
@MooingDuck Nó phụ thuộc vào mô hình logic. Tôi đã làm việc trên một số logic Null ước, và nó sẽ chạy nhanh như các điều kiện (quy trình, điện áp, nhiệt độ) sẽ cho phép. Bạn sẽ không cần phải theo dõi nó những điều kiện đó, nó sẽ tự động làm điều đó .
W5VO

3

Nó rất hấp dẫn để thiết kế các mạch tích hợp không đồng bộ. Các câu trả lời khác đã bao gồm nhiều lý do để suy nghĩ hai lần trước khi làm điều đó. Đây là một trong những:

Phát triển vi mạch chưa hoàn thành với thiết kế. Xác minh và kiểm tra đều quan trọng như nhau. Không chỉ các công cụ thiết kế rất tiên tiến cho các mạch đồng bộ, mà nó cũng giống với các công cụ mô phỏng và thiết bị thử nghiệm.

xác minh

Nó không đủ để có các mạch làm việc ở điều kiện phòng thí nghiệm. Chúng cần phải mạnh mẽ đối với phạm vi điện áp hoạt động (V), phạm vi nhiệt độ hoạt động (T) và sự thay đổi do quá trình sản xuất (P). Đối với logic đồng bộ, điều này có thể được đảm bảo với sự trợ giúp của phân tích thời gian tĩnh. Mạch được chia thành tất cả các đường dẫn thời gian, từ flip-flop đến flip-flop. Thời gian thiết lập và giữ được kiểm tra cho từng đường dẫn thời gian duy nhất và cho các kết hợp P, T và V. khác nhau của các kết hợp PTV này được gọi là các góc mô phỏng.

Một xác minh tương tự có thể được thực hiện cho các mạch không đồng bộ, nhưng nó khó khăn hơn nhiều và ít được hỗ trợ bởi các công cụ thiết kế. Nó cũng hạn chế người thiết kế các cấu trúc không đồng bộ thực sự có thể được xác minh. Không có xác minh đáng tin cậy cho các mạch không đồng bộ tùy ý.

Kiểm tra

Khó khăn tương tự là có khi kiểm tra phần cứng. Kiểm tra logic đồng bộ được hỗ trợ đầy đủ bởi các tiêu chuẩn và thiết bị kiểm tra. Việc kiểm tra các mạch không đồng bộ không chỉ phức tạp hơn mà do thiếu tính trừu tượng về thời gian, thậm chí không đủ để chứng minh rằng mạch sẽ hoạt động cho tất cả các góc PTV. Mạch có thể bị hỏng do điều kiện cuộc đua tại một số kết hợp PTV, không được bao phủ bởi các góc.

Tóm lược

Các nhà thiết kế vi mạch đã không từ bỏ mô hình không đồng bộ, nhưng logic không đồng bộ đi kèm với những bất lợi nặng nề trong quá trình xác minh và xác nhận. Trong bối cảnh công nghiệp, thiết kế vi mạch không đồng bộ cần được hạn chế để xây dựng có thể được chứng minh là hoạt động trên toàn bộ không gian tham số của biến thể quá trình, cũng như phạm vi hoạt động của nhiệt độ và điện áp.

Thiết kế được gọi là "không đồng bộ cục bộ trên toàn cầu" là một cách để có được nhiều lợi ích hơn và ít nhược điểm hơn của cả hai mô hình thời gian.


0

Bộ đếm nhị phân Async đơn giản hơn vì chúng chỉ sử dụng 1 ô nhớ hoặc T flip flop trên mỗi lần chia cho hai. Do đó, CD cũ và 74HC4020 và 4040 cung cấp nhiều giai đoạn nhị phân với giá rẻ. Độ trễ prop trong mỗi giai đoạn có nghĩa là nó không thể được sử dụng mà không có điều kiện cuộc đua hoặc trục trặc với việc giải mã cổng của các địa chỉ nhị phân trừ khi độ trễ prop nhỏ hơn 1/2 chu kỳ xung nhịp đầu vào bằng cách sử dụng cạnh theo dõi để chốt kết quả. Độ trễ đầu ra sau đó được nhân với N giai đoạn.

Bộ đếm nhị phân đồng bộ sử dụng một ô nhớ bổ sung cho D FF để trì hoãn nhưng giảm thiểu độ trễ xuống 1 giá trị cho bất kỳ chiều dài nào của bộ đếm để nó tiêu tốn nhiều diện tích hơn.

Do đó, tất cả các CPU đều sử dụng đồng hồ bổ sung để tối ưu hóa độ trễ dự kiến ​​về đọc / ghi địa chỉ và tối đa hóa bộ nhớ nhưng không vượt quá độ trễ chống đỡ, thiết lập và thời gian giữ.

Bộ nhớ hiện sử dụng nhiều pha như DDR, 3DR, 4DR, 5DR đặc biệt cho bộ nhớ đồ họa nhưng với xung nhịp CPU sẽ nhanh hơn nhiều so với tốc độ RAM của chu kỳ đơn, do đó, độ trễ đọc và ghi có thể được tính theo thời gian bằng một hoặc nhiều hoặc một nửa số lần superclock (ví dụ 100 MHz xN) được chỉ định bởi T phân số hoặc số nguyên cho mỗi tham số. Những độ trễ prop tăng với temp. Đối với CMOS và giảm với điện áp Vram cao hơn, nếu được làm mát đúng cách có thể làm giảm độ trễ hoặc tăng Pd và tăng tạm thời và làm cho nó tệ hơn (chậm hơn). Vì vậy, làm mát, V, f, T đều rất quan trọng đối với độ trễ tối ưu cho dù nó được sử dụng cho các hoạt động Async hay Sync.


-1

Thiết kế logic ban đầu là không đồng bộ. Thường thì chúng cũng được trộn lẫn với các mạch tương tự. Tuy nhiên, khi các thiết kế tiến bộ theo thời gian trở nên phức tạp hơn, do đó đòi hỏi nhiều kỹ sư hơn để làm việc trên một thiết kế duy nhất. Các sơ đồ thời gian của async. logic có thể rườm rà khi có rất nhiều trạng thái. Bây giờ thêm một nhóm các kỹ sư đang cố gắng giao tiếp các khối logic khác nhau lại với nhau nhưng thời gian giữa chúng không được căn chỉnh tốt. Các thiết kế trở nên dễ vỡ để thay đổi theo những cách không lường trước được.

Nhập thiết kế logic đồng bộ. Bây giờ tất cả các luồng trạng thái được căn chỉnh theo tín hiệu đồng hồ cho phép các giao diện được xác định rất rõ và mạnh mẽ hơn trước các thay đổi thiết kế. Vâng, nó có thể sử dụng nhiều cổng hơn, nhưng nó (thường) ổn định theo thiết kế; trái ngược với sự ổn định miễn là không ai chạm vào nó!


1
Có các phương pháp thiết kế không đồng bộ cũng đảm bảo "đúng theo thiết kế" và "giao diện được xác định rõ". Đây chỉ đơn giản là khác với các giả định đơn giản hóa được thực hiện cho các thiết kế đồng bộ.
Edgar Brown
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.