Làm thế nào để CPU đa lõi thực hiện phối hợp không đồng bộ?


8

Tôi đến từ nền tảng khoa học máy tính và muốn nghiên cứu tính toán quy trình để sử dụng trong thiết kế mạch không đồng bộ.

Vì vậy, tôi đang tìm kiếm xung quanh thực tiễn hiện tại về các mạch không đồng bộ. Có nhiều bài viết nói rằng không thể tăng tốc độ xung nhịp dẫn đến kiến ​​trúc CPU đa lõi . Tuy nhiên, không ai thực sự nói làm thế nào đạt được sự phối hợp không đồng bộ giữa các lõi.

Tôi muốn bạn xác nhận / sửa các giả định sau đây của tôi về cách CPU đa lõi hiện tại xử lý phối hợp không đồng bộ:

  1. Mỗi lõi có tín hiệu đồng hồ riêng biệt, không cần phải cùng pha với nhau. Nếu không, vấn đề phân phối tín hiệu đồng hồ sẽ không thực sự được giải quyết, phải không?
  2. Các lõi chỉ phối hợp ở cấp độ lập trình. Đó là, thực hiện kiểm tra và thiết lập trên một số bộ nhớ (RAM hoặc thanh ghi). Và không phải cái gì đó ở mức độ thấp như giao thức bắt tay bằng cách sử dụng mạch điểm hẹn .

1
CPU lõi đơn lớn có nhiều xung nhịp, được sử dụng để giảm công suất. Một số đồng hồ được kiểm soát, một số được làm chậm lại. Thêm vào một lõi khác và tất nhiên nó có nhiều đồng hồ. Phân phối đồng hồ dễ dàng hơn là một tác dụng phụ, nhưng không phải là lý do có nhiều đồng hồ.

2
Có một cái nhìn vào tờ giấy này về làm thế nào để vượt qua lĩnh vực đồng hồ giữa các tần số khác nhau: w2.cadence.com/whitepapers/cdc_wp.pdf
pjc50

1
(về phân phối tín hiệu đồng hồ: cây đệm trong đó tất cả các nút lá có thời gian lan truyền bằng nhau từ nguồn là giải pháp. Bạn có thể xây dựng thuật toán này. Nó không tầm thường nhưng nó hoạt động)
pjc50

1
Nhược điểm của cây đệm là rất nhiều: nó có thể tiêu thụ phần lớn năng lượng và 10-30% diện tích có sẵn. Tuy nhiên, như startup của chúng tôi đã tìm thấy, vấn đề chính với thiết kế không đồng bộ là cần thay đổi toàn bộ chuỗi công cụ phần mềm của bạn để sử dụng nó một cách hiệu quả. Các công ty vi mạch rất bảo thủ, do chi phí sản xuất và rủi ro thất bại.
pjc50

1
@ pjc50 ISTR rằng một số bộ xử lý hướng lưới, bố cục truyền tin (có thể là Tilera?) có đồng hồ "chảy" từ trái sang phải và từ dưới lên trên, vì chỉ những người hàng xóm gần nhất mới cần giao tiếp trực tiếp (loại nhiều loại không đồng bộ cục bộ trên toàn cầu).
Paul A. Clayton

Câu trả lời:


1

Bạn trộn lẫn hai ý tưởng độc lập (trực giao) trong lý thuyết mạch kỹ thuật số: mạch không đồng bộ và bộ xử lý đa lõi.

Mạch không đồng bộ: các mạch có nhiều hơn một đồng hồ và các đồng hồ là không đồng bộ (nghĩa là có mối quan hệ pha không liên tục và không thể đoán trước).

Một số mạch có thể sử dụng hai đồng hồ (ví dụ), nhưng một mạch chỉ là chia cho 2 đồng hồ kia. Các mạch này không đồng bộ vì có mối quan hệ pha giữa hai đồng hồ, mặc dù tần số của đồng hồ là khác nhau.

Bạn có thể có một CPU lõi đơn có vài xung nhịp không đồng bộ và CPU đa lõi với tất cả các lõi của nó chạy trên cùng một đồng hồ (cái sau chỉ là một CPU tưởng tượng - tất cả các CPU đa lõi thực sự có nhiều xung nhịp bao gồm nhiều xung nhau bộ đồng hồ không đồng bộ).

Mạch không đồng bộ là một chủ đề chính trong thiết kế kỹ thuật số. Giải thích trên là cơ bản.

CPU đa lõi: vài bộ vi xử lý (lõi) được kết nối song song sử dụng phần cứng và phần mềm tinh vi để đạt được hiệu năng cao.

Cách làm thông thường là làm cho các lõi trở nên độc lập nhất có thể về mặt đồng hồ / sức mạnh / thực thi / v.v. Điều này cho phép điều chỉnh động (trong thời gian chạy) hoạt động của CPU (tức là tiêu thụ năng lượng) theo nhu cầu thực tế của hệ thống.

Ấn tượng của tôi là những gì bạn đang tìm kiếm là một lời giải thích về CPU đa lõi , không phải các mạch không đồng bộ.

Chủ đề này là rất nhiều, lớn hơn nhiều so với bất cứ điều gì người ta có thể đưa vào câu trả lời.

Các câu trả lời cho câu hỏi của bạn, mặc dù:

  1. Đồng hồ được sử dụng bởi các lõi khác nhau (theo hiểu biết tốt nhất của tôi) có cùng nguồn (có thể nhiều hơn một: pha lê, VCO, ...). Mỗi lõi (thường) có một vài bộ đồng hồ không đồng bộ lẫn nhau. Mỗi lõi có logic điều chỉnh xung nhịp và điều chỉnh xung nhịp cho phép tắt hoặc làm chậm đồng hồ, độc lập cho từng lõi. Một lần nữa, nếu bạn chỉ quan tâm đến khía cạnh thuật toán của tính song song của lõi - hãy quên đồng hồ (bây giờ).
  2. Bạn vừa chỉ ra khía cạnh chính của tính song song của lõi - làm thế nào để bạn chạy song song nhiều lõi một cách hiệu quả . Chủ đề này rất lớn, và chứa cả giải pháp CTNH và SW. Từ phối cảnh CTNH, các lõi đều sửa đổi bộ nhớ chung và trao đổi tín hiệu điều khiển và trạng thái với logic tuần tự và giữa chúng. Bức tranh phức tạp rất nhiều do sự tồn tại của bộ nhớ cache - Tôi khuyên bạn nên bắt đầu từ việc đọc trên bộ nhớ cache, sau đó lưu lại bộ nhớ cache và chỉ sau đó là tiền mặt trong các hệ thống đa lõi.

Hi vọng điêu nay co ich.


Việc CPU phải chạy ở tốc độ khác nhau không có nghĩa là chúng phải không đồng bộ. Có một cửa sổ xung quanh mỗi đồng hồ khi tín hiệu được đảm bảo không thay đổi là vô cùng hữu ích. Ngay cả khi hai mô-đun có tốc độ xung nhịp không phải là bội số của nhau, thì có thể hữu ích khi cả hai được tạo bởi một thiết bị đảm bảo chúng không bao giờ chuyển đổi quá gần nhau.
supercat
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.