Tại sao CPU thường chỉ kết nối với một bus?


24

Tôi tìm thấy một kiến ​​trúc bo mạch chủ ở đây:

nhập mô tả hình ảnh ở đây

Đây có vẻ là cách bố trí điển hình của bo mạch chủ. EDIT: Chà, rõ ràng nó không còn quá điển hình nữa.

Tại sao CPU chỉ kết nối với 1 bus? Chiếc xe buýt phía trước đó trông giống như một nút cổ chai lớn. Sẽ không tốt hơn nếu cho 2 hoặc 3 xe buýt vào thẳng CPU?

Tôi tưởng tượng một chiếc xe buýt cho RAM, một chiếc cho card đồ họa và một chiếc cho một loại cầu nối với ổ cứng, cổng usb và mọi thứ khác. Lý do tôi chia nó theo cách này là vì tốc độ dữ liệu ổ cứng chậm so với bộ nhớ.

Có điều gì đó rất khó khăn khi làm theo cách này? Tôi không thấy làm thế nào chi phí có thể đi vào nó, bởi vì các sơ đồ hiện có đã có không dưới bảy xe buýt. Trên thực tế, bằng cách sử dụng nhiều xe buýt trực tiếp hơn, chúng ta có thể giảm tổng số xe buýt và thậm chí có thể là một trong những cây cầu.

Vì vậy, bất cứ điều gì sai với điều này? Có một bất lợi lớn ở đâu đó? Điều duy nhất tôi có thể nghĩ đến có lẽ là sự phức tạp hơn trong CPU và kernel, điều này khiến tôi nghĩ kiến ​​trúc xe buýt tắc nghẽn này là cách nó được thực hiện vào thời xưa khi mọi thứ kém tinh vi hơn và thiết kế vẫn giữ nguyên tiêu chuẩn.

EDIT: Tôi quên đề cập đến Watchdog Monitor . Tôi biết tôi đã nhìn thấy nó trong một số sơ đồ. Có lẽ một chiếc xe buýt bị nghẽn cổ chai sẽ giúp cơ quan giám sát dễ dàng theo dõi mọi thứ hơn. Điều đó có thể có cái gì đó để làm với nó?


9
Đó là một cách tiếp cận rất cũ. Ngày nay, CPU đã tích hợp bộ điều khiển bộ nhớ và bộ nhớ gốc - vì vậy kết nối trực tiếp với các thiết bị PCIe, RAM và cầu nối phía nam có hiệu quả. Ví dụ này
Tom Carpenter

@TomCarpenter Vâng, điều đó bắt đầu giống với nó hơn. Sơ đồ tôi đã đăng là những gì tôi đã thấy "ở mọi nơi", bao gồm cả trường học, vì vậy tôi cho rằng nó là điển hình hơn.
DrZ214

7
Sơ đồ trên vẫn có liên quan. Ngày nay, đó không phải là sơ đồ của bo mạch chủ mà là chính CPU. Thay thế "CPU" bằng "lõi" và "chipset" bằng "CPU".
slebetman

Câu trả lời:


43

Cách tiếp cận mà bạn hiển thị là một cấu trúc liên kết cũ cho bo mạch chủ - nó có trước PCIe, thứ thực sự đặt nó trở lại đâu đó trong '00s. Lý do chủ yếu là do những khó khăn của hội nhập.

Về cơ bản 15 năm trước, công nghệ tích hợp mọi thứ vào một con súc sắc hầu như không tồn tại từ quan điểm thương mại, và làm như vậy là vô cùng khó khăn. Để tích hợp tất cả mọi thứ sẽ dẫn đến kích thước khuôn silicon rất lớn dẫn đến năng suất thấp hơn nhiều. Năng suất về cơ bản là bạn mất bao nhiêu chết trên một wafer do khiếm khuyết - càng lớn thì xác suất bị lỗi càng cao.

Để chống lại điều này, bạn chỉ cần chia thiết kế thành nhiều chip - trong trường hợp bo mạch chủ, cuối cùng là CPU, North Bridge và South Bridge. CPU được giới hạn ở chỉ bộ xử lý có kết nối tốc độ cao (được gọi là bus phía trước theo như tôi nhớ). Sau đó, bạn có North Bridge tích hợp bộ điều khiển bộ nhớ, kết nối đồ họa (ví dụ AGP, một công nghệ cổ về thuật ngữ điện toán) và một liên kết chậm hơn khác đến South Bridge. Cầu Nam được sử dụng để xử lý thẻ mở rộng, ổ cứng, ổ đĩa CD, âm thanh, v.v.


Trong 20 năm qua, khả năng sản xuất chất bán dẫn tại các nút quá trình nhỏ hơn và nhỏ hơn với độ tin cậy cao hơn và cao hơn có nghĩa là tích hợp mọi thứ vào một chip đơn lẻ trở nên khả thi. Các bóng bán dẫn nhỏ hơn có nghĩa là mật độ cao hơn để bạn có thể phù hợp hơn và các quy trình được cải tiến trong sản xuất có nghĩa là năng suất cao hơn. Trong thực tế, nó không chỉ hiệu quả hơn về mặt chi phí mà còn trở nên quan trọng để duy trì sự gia tăng tốc độ trong các máy tính hiện đại.

Như bạn chỉ ra một cách chính xác, có một kết nối với một cây cầu phía bắc trở thành một nút cổ chai. Nếu bạn có thể tích hợp mọi thứ vào CPU, bao gồm cả PCIe Root Complex và bộ điều khiển bộ nhớ hệ thống, bạn đột nhiên có một liên kết tốc độ cực cao giữa các thiết bị chính để đồ họa và điện toán - trên PCB, bạn có thể nói về tốc độ của Gbps, trên chết bạn có thể đạt được tốc độ theo thứ tự Tbps!

Cấu trúc liên kết mới này được phản ánh trong sơ đồ này:

Cấu trúc liên kết mới

Nguồn hình ảnh

Trong trường hợp này như bạn có thể thấy, cả bộ điều khiển đồ họa và bộ nhớ đều được tích hợp vào khuôn CPU. Mặc dù bạn vẫn có một liên kết với một chipset hiệu quả được tạo từ một số bit của cầu bắc và cầu phía nam (chipset trong sơ đồ), nhưng ngày nay, trong kết nối cực kỳ nhanh - có thể là 100 + Gbps. Vẫn chậm hơn so với trên die, nhưng nhanh hơn nhiều so với xe buýt phía trước cũ.

Tại sao không chỉ tích hợp hoàn toàn mọi thứ? Các nhà sản xuất bo mạch chủ vẫn muốn có một số tùy chỉnh - có bao nhiêu khe cắm PCIe, bao nhiêu kết nối SATA, bộ điều khiển âm thanh, v.v.

Trong thực tế, một số bộ xử lý di động tích hợp nhiều hơn vào CPU chết - hãy nghĩ rằng các máy tính bảng đơn sử dụng các biến thể của bộ xử lý ARM. Trong trường hợp này, do ARM cho thuê thiết kế CPU, các nhà sản xuất vẫn có thể tùy chỉnh khuôn của họ khi họ thấy phù hợp và tích hợp bất kỳ bộ điều khiển / giao diện nào họ muốn.


+1, bạn đánh bại tôi với nó :) Câu trả lời hay, đặc biệt là vì những lý do lịch sử cho thiết kế kiến ​​trúc.
uint128_t

Cảm ơn bạn, đặc biệt là đoạn thứ hai nhấn về nhà. Tuy nhiên, on the die you can achieve speeds on the order of Tbps!Yike, không phải là bắt đầu vượt quá khả năng của CPU để xử lý nó đủ nhanh sao?
DrZ214

3
@ DrZ214 Chúng không phải là PCI, chúng là PCIe, là một bus nối tiếp chứ không phải là song song. PCIe là 2,5Gbps, 5Gpbs hoặc 8Gbps mỗi làn ở cả hai hướng (song công hoàn toàn) - với 16 làn là rộng nhất thường thấy với tốc độ tối đa lý thuyết là 128Gbps ở cả hai hướng. Và vâng, nhận xét ở trên về tốc độ của bộ xử lý đã cố tình quá đơn giản, nhưng không thực tế - không liên quan đến CPU, tôi đang làm việc trên một thiết kế đồ họa tại thời điểm xử lý dữ liệu ở tốc độ 315Gbps, và đó không phải là hiệu suất đầy đủ có thể của FPGA, điều hạn chế là thiếu dữ liệu!
Tom Carpenter

1
Điều thú vị là điều này thể hiện sự thay đổi về kiến ​​trúc của các hệ thống cũ hơn, nơi các bộ nhớ và bus lưu trữ (v.v.) đã đi trực tiếp vào CPU.
Chris H

1
@ DrZ214 một "làn" rộng một bit, tín hiệu đồng hồ / dữ liệu được gửi thành hai cặp. Điều độc đáo về PCIe so với, nói, bus DDR là PCIe có thể tự do tổng hợp và tách làn đường, trong khi hầu hết các xe buýt bạn phải đi tất cả hoặc không có gì.
pjc50

9

Tôi không thể nói tôi là một chuyên gia về kiến ​​trúc máy tính, nhưng tôi sẽ cố gắng trả lời các câu hỏi của bạn.

Đây có vẻ là cách bố trí điển hình của bo mạch chủ.

Như Tom đã đề cập, điều này không còn đúng nữa. Hầu hết các CPU hiện đại đều có cầu bắc tích hợp. Cầu nam thường được tích hợp hoặc không cần thiết bởi kiến ​​trúc mới; Chipset của Intel "thay thế" cầu nam bằng Hub điều khiển nền tảng, giao tiếp trực tiếp với CPU thông qua bus DMI.

Tại sao CPU chỉ kết nối với 1 bus? Chiếc xe buýt phía trước đó trông giống như một nút cổ chai lớn. Sẽ không tốt hơn nếu cho 2 hoặc 3 xe buýt vào thẳng CPU?

Các bus rộng (64 bit) rất đắt tiền, chúng đòi hỏi một số lượng lớn bộ thu phát xe buýt và nhiều chân I / O. Các thiết bị duy nhất yêu cầu một chiếc xe buýt nhanh la hét khổng lồ là card đồ họa và RAM. Mọi thứ khác (SATA, PCI, USB, nối tiếp, v.v.) tương đối chậm và không được truy cập liên tục. Do đó, tại kiến ​​trúc trên, tất cả các thiết bị ngoại vi "chậm" này được gộp lại với nhau qua cầu nam dưới dạng một thiết bị xe buýt: bộ xử lý không muốn phải phân xử từng giao dịch xe buýt nhỏ, vì vậy tất cả các giao dịch xe buýt chậm / không thường xuyên có thể được tổng hợp và được quản lý bởi cầu nam, sau đó kết nối với các thiết bị ngoại vi khác với tốc độ nhàn nhã hơn nhiều.

Bây giờ, điều quan trọng cần đề cập là khi tôi nói ở trên rằng SATA / PCI / USB / serial là "chậm", đó chủ yếu là một điểm lịch sử và ngày nay trở nên ít đúng hơn. Với việc áp dụng SSD qua các đĩa spinny và các thiết bị ngoại vi PCIe nhanh, cũng như USB 3.0, Thunderbolt và có thể là ethernet 10G (sớm), băng thông ngoại vi "chậm" đang nhanh chóng trở nên rất đáng kể. Trước đây, xe buýt giữa cầu bắc và cầu nam không phải là cổ chai, nhưng bây giờ điều đó không còn đúng nữa. Vì vậy, có, kiến ​​trúc đang di chuyển về phía nhiều xe buýt gắn trực tiếp vào CPU.

Có điều gì đó rất khó khăn khi làm theo cách này? Tôi không thấy làm thế nào chi phí có thể đi vào nó, bởi vì các sơ đồ hiện có đã có không dưới bảy xe buýt.

Nó sẽ là nhiều xe buýt hơn cho bộ xử lý để quản lý và nhiều bộ xử lý silicon hơn để xử lý các bus. Cái nào đắt Trong sơ đồ trên, không phải tất cả các xe buýt đều như nhau. FSB đang hét rất nhanh, LPC thì không. Xe buýt nhanh yêu cầu silicon nhanh, xe buýt chậm thì không, vì vậy nếu bạn có thể di chuyển xe buýt chậm từ CPU sang chip khác, điều đó giúp cuộc sống của bạn dễ dàng hơn.

Tuy nhiên, như đã đề cập ở trên, với sự phổ biến ngày càng tăng của các thiết bị băng thông cao, ngày càng có nhiều xe buýt kết nối trực tiếp với bộ xử lý, đặc biệt là trong các kiến ​​trúc tích hợp cao hơn SoC /. Bằng cách đặt ngày càng nhiều bộ điều khiển vào CPU, băng thông rất cao sẽ dễ dàng đạt được hơn.

EDIT: Tôi quên đề cập đến Watchdog Monitor. Tôi biết tôi đã nhìn thấy nó trong một số sơ đồ. Có lẽ một chiếc xe buýt bị nghẽn cổ chai sẽ giúp cơ quan giám sát dễ dàng theo dõi mọi thứ hơn. Điều đó có thể có cái gì đó để làm với nó?

Không, đó không thực sự là những gì một cơ quan giám sát làm. Một cơ quan giám sát chỉ đơn giản là để khởi động lại những thứ khác nhau khi / nếu chúng bị khóa; nó không thực sự nhìn vào mọi thứ di chuyển trên xe buýt (nó kém tinh vi hơn thế nhiều!).


2
Fast buses require fast silicon, slow buses don'tChính xác thì silicon nhanh có nghĩa là gì? Silic có độ tinh khiết cao hơn? Hay bạn đang nói xe buýt chậm có thể sử dụng một yếu tố khác với silicon? Dù bằng cách nào, tôi nghĩ rằng silicon là một vật liệu khá rẻ. Một chút thú vị về cơ quan giám sát quá. Tôi có thể hỏi một câu hỏi liên quan về nó.
DrZ214

1
Xe buýt nhanh thường là một phần của thiết bị hiệu năng cao, ví dụ CPU. Giao diện bus yêu cầu không gian và kết nối với các bộ phận khác của chip. Diện tích silicon trên bộ xử lý chết đắt hơn nhiều so với chip chậm hơn nhiều, vì kích thước quy trình nhỏ hơn và chế tạo / đóng gói khó khăn hơn. Do đó, sẽ rẻ hơn khi giới hạn các thiết bị trên FSB chỉ với những thiết bị thực sự yêu cầu băng thông như vậy. Tuy nhiên, khi nhiều bộ điều khiển được tích hợp với CPU trên cùng một khuôn (SoC), điều này không còn đúng nữa.
uint128_t

Mặc dù xe buýt chậm không yêu cầu silicon nhanh, nhưng không có gì lạ khi tìm thấy trình điều khiển rất nhanh trên giao diện chậm, điều này có thể tạo ra một vấn đề đau đầu cho bố cục PCB. Tôi đã thấy PCI thông thường (tốc độ tối đa 133 MHz trên PCI-X) với thời gian tăng và giảm dưới 300 ps, ​​vì các nhà cung cấp đang sử dụng một tế bào I / O tiêu chuẩn. Tôi biết PCI, như một giao diện, thường không có sẵn trên các bộ xử lý mới, nhưng vấn đề này có thể áp dụng ở nơi khác.
Peter Smith

6

Số lượng xe buýt mà CPU sẽ kết nối trực tiếp thường sẽ bị giới hạn ở số lượng các phần riêng biệt của CPU có thể truy cập mọi thứ cùng một lúc. Không có gì lạ, đặc biệt là trong thế giới của bộ xử lý nhúng và DSP, cho CPU có một bus cho các chương trình và một bus cho dữ liệu và cho phép cả hai hoạt động đồng thời. Tuy nhiên, một bộ xử lý đơn giản điển hình sẽ chỉ được hưởng lợi từ việc tìm nạp một lệnh cho mỗi chu kỳ lệnh và sẽ chỉ có thể truy cập một vị trí bộ nhớ dữ liệu trên mỗi chu kỳ lệnh, vì vậy sẽ không có nhiều lợi ích khi vượt qua một bus bộ nhớ chương trình và một bus bộ nhớ dữ liệu. Để cho phép một số loại toán nhất định được thực hiện khi dữ liệu được tìm nạp từ hai luồng khác nhau,

Với các bộ xử lý có nhiều đơn vị thực thi, có thể có một xe buýt riêng cho mỗi đơn vị, vì vậy nếu có nhiều đơn vị xe buýt "bên ngoài" cần lấy các thứ từ các xe buýt "bên ngoài" khác nhau có thể làm như vậy mà không bị can thiệp. Trừ khi có một lý do hợp lý tại sao những thứ được truy cập bởi các đơn vị thực thi khác nhau sẽ có thể truy cập được thông qua các bus khác nhau bên ngoài CPU, tuy nhiên, có các bus riêng biệt từ nguồn cấp CPU vào một đơn vị trọng tài chỉ có thể chuyển một yêu cầu tại một thời điểm tới thiết bị bên ngoài cụ thể sẽ không giúp được gì. Xe buýt đắt tiền, vì vậy có hai đơn vị thực hiện ngồi trên một xe buýt thường rẻ hơn so với sử dụng xe buýt riêng. Nếu sử dụng các xe buýt riêng biệt sẽ cho phép cải thiện hiệu suất lớn, điều đó có thể biện minh cho chi phí, nhưng nếu không thì bất kỳ tài nguyên nào (khu vực chip, v.v.


-1

Xem xét số lượng chân cần thiết trên các gói CPU để có nhiều bus rộng. Ví dụ, tám lõi CPU mỗi lõi có bus dữ liệu 64 bit, cộng với các loại chân khác cho các mục đích khác. Có gói CPU nào hiện nay với khoảng 800 chân không?


Tại sao không có? Một mảng lưới bóng 32x32 và PCB nhiều lớp không có vẻ như là một vấn đề khó khăn (ở quy mô tương đối). Các kỹ sư phần cứng là tuyệt vời. // Hãy suy nghĩ về việc thẻ RAM có thể rộng và vụng về như thế nào, và vẫn có tốc độ xung nhịp là 1.6 GHz (625 picos giây). Nếu tín hiệu điện truyền đi ở 2/3 c, dấu vết dài nhất chỉ có thể dài 6 cm và chỉ chênh lệch vài mm sẽ gây ra sự chênh lệch thời gian đáng chú ý. // Và tôi đoán rằng nhiễu xuyên âm giữa các lớp sẽ không tệ hơn nhiều so với giữa các dấu vết trên cùng một lớp.
Oskar Skog

"Có gói CPU nào hiện nay với khoảng 800 chân không?" Ồ vâng. Các gói có hơn 1100 chân đã phổ biến khi câu trả lời này được viết. Và ngày nay, có LGA3647 cho một số CPU máy chủ Skylake-EX
duskwuff
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.