Mengapa CPU biasanya terhubung hanya dengan satu bus?


24

Saya menemukan arsitektur motherboard di sini:

masukkan deskripsi gambar di sini

Ini terlihat seperti tata letak motherboard yang khas. EDIT: Ya, sepertinya itu tidak terlalu khas lagi.

Mengapa CPU terhubung hanya ke 1 bus? Bus sisi depan itu terlihat seperti hambatan besar. Bukankah lebih baik memberi 2 atau 3 bus langsung ke CPU?

Saya membayangkan satu bus untuk RAM, satu untuk kartu grafis, dan satu untuk beberapa jenis jembatan ke harddisk, port usb, dan yang lainnya. Alasan saya membaginya dengan cara ini adalah karena kecepatan data harddisk lambat dibandingkan dengan memori.

Apakah ada sesuatu yang sangat sulit dilakukan dengan cara ini? Saya tidak melihat bagaimana biayanya, karena diagram yang ada sudah memiliki tidak kurang dari tujuh bus. Bahkan, dengan menggunakan lebih banyak bus langsung, kita dapat mengurangi jumlah total bus dan bahkan mungkin salah satu jembatan.

Jadi ada yang salah dengan ini? Apakah ada kerugian besar di suatu tempat? Satu-satunya hal yang dapat saya pikirkan adalah mungkin lebih rumit dalam CPU dan kernel, yang membuat saya berpikir arsitektur bus bottleneck ini adalah bagaimana hal itu dilakukan di masa lalu ketika hal-hal yang kurang canggih, dan desainnya tetap sama untuk standardisasi.

EDIT: Saya lupa menyebutkan Watchdog Monitor . Saya tahu saya pernah melihatnya di beberapa diagram. Agaknya kemacetan akan membuat pengawas lebih mudah memantau semuanya. Mungkinkah itu ada hubungannya dengan itu?


9
Itu pendekatan yang sangat lama. Saat ini CPU memiliki kompleks root dan pengontrol memori yang terpasang - jadi terhubung langsung ke perangkat PCIe, RAM, dan apa yang secara efektif jembatan selatan. Misalnya ini
Tom Carpenter

@ TomCarpenter Ya itu mulai terlihat lebih seperti itu. Diagram yang saya posting adalah apa yang saya lihat "di mana-mana", termasuk sekolah, jadi saya pikir itu lebih khas.
DrZ214

7
Diagram di atas masih relevan. Hari-hari ini bukan diagram dari motherboard tetapi CPU itu sendiri. Ganti "CPU" dengan "core" dan "chipset" dengan "CPU".
slebetman

Jawaban:


43

Pendekatan yang Anda tunjukkan adalah topologi yang cukup lama untuk motherboard - sebelum PCIe yang benar-benar mengembalikannya ke suatu tempat di tahun 00-an. Alasannya terutama karena kesulitan integrasi.

Pada dasarnya 15 tahun yang lalu teknologi untuk mengintegrasikan segala sesuatu ke dalam satu cetakan hampir tidak ada dari sudut pandang komersial, dan melakukannya sangat sulit. Untuk mengintegrasikan semuanya akan menghasilkan ukuran die silikon yang sangat besar yang pada gilirannya menyebabkan hasil yang jauh lebih rendah. Hasilnya pada dasarnya adalah berapa banyak mati Anda kehilangan pada wafer karena cacat - semakin besar mati semakin tinggi kemungkinan cacat.

Untuk mengatasi ini, Anda cukup membagi desain menjadi beberapa chip - dalam kasus motherboard, ini akhirnya menjadi CPU, North Bridge, dan South Bridge. CPU hanya terbatas pada prosesor dengan interkoneksi kecepatan tinggi (disebut sebagai bus sisi depan sejauh yang saya ingat). Anda kemudian memiliki Jembatan Utara yang mengintegrasikan pengontrol memori, koneksi grafis (misalnya AGP, teknologi kuno dalam hal komputasi), dan tautan lain yang lebih lambat ke Jembatan Selatan. South Bridge digunakan untuk menangani kartu ekspansi, hard drive, drive CD, audio, dll.


Dalam 20 tahun terakhir kemampuan untuk memproduksi semikonduktor pada simpul proses yang lebih kecil dan lebih kecil dengan keandalan yang lebih tinggi dan lebih tinggi berarti mengintegrasikan segala sesuatu ke dalam satu chip menjadi mungkin. Transistor yang lebih kecil berarti kepadatan yang lebih tinggi sehingga Anda dapat lebih cocok, dan proses yang lebih baik dalam pembuatan berarti hasil yang lebih tinggi. Bahkan tidak hanya lebih hemat biaya, tetapi juga menjadi penting untuk mempertahankan peningkatan kecepatan di komputer modern.

Seperti yang Anda tunjukkan dengan benar, memiliki satu interkoneksi ke jembatan utara menjadi hambatan. Jika Anda dapat mengintegrasikan semuanya ke dalam CPU, termasuk PCIe Root Complex dan pengontrol memori sistem, Anda tiba-tiba memiliki tautan kecepatan yang sangat tinggi antara perangkat utama untuk grafik dan komputasi - pada PCB Anda mungkin berbicara kecepatan urutan Gbps, pada mati Anda dapat mencapai kecepatan pada urutan Tbps!

Topologi baru ini tercermin dalam diagram ini:

Topologi Baru

Sumber Gambar

Dalam hal ini seperti yang Anda lihat, pengontrol grafis dan memori keduanya terintegrasi ke dalam CPU die. Meskipun Anda masih memiliki satu tautan ke apa yang secara efektif chipset tunggal yang terbuat dari beberapa bit dari jembatan utara dan jembatan selatan (chipset dalam diagram), ini saat ini dalam interkoneksi yang sangat cepat - mungkin 100 + Gbps. Masih lebih lambat dari pada mati, tetapi jauh lebih cepat daripada bus sisi depan tua.

Mengapa tidak hanya mengintegrasikan semuanya secara mutlak? Nah produsen motherboard masih menginginkan beberapa penyesuaian - berapa banyak slot PCIe, berapa banyak koneksi SATA, pengontrol audio apa, dll.

Bahkan beberapa prosesor mobile bahkan lebih terintegrasi ke dalam CPU die-think komputer papan tunggal menggunakan varian prosesor ARM. Dalam hal ini, karena ARM menyewakan desain CPU, pabrikan masih dapat menyesuaikan cetakan mereka sesuai keinginan dan mengintegrasikan pengontrol / antarmuka apa pun yang mereka inginkan.


+1, Anda mengalahkan saya untuk itu :) Jawaban yang bagus, terutama karena alasan historis untuk desain arsitektur.
uint128_t

Terima kasih, terutama paragraf kedua. Namun, on the die you can achieve speeds on the order of Tbps!Yikes, bukankah itu mulai lebih cepat dari kemampuan CPU untuk memprosesnya dengan cukup cepat?
DrZ214

3
@ DrZ214 Mereka bukan PCI, mereka PCIe yang merupakan bus serial dan bukan paralel. PCIe adalah 2.5Gbps, 5Gpbs, atau 8Gbps per lajur di kedua arah (dupleks penuh) - dengan 16 lajur yang terlebar biasanya terlihat memberikan 128Gbps maksimum teoretis di kedua arah. Dan ya, komentar di atas tentang kecepatan prosesor itu sengaja terlalu sederhana, tetapi tidak realistis - tidak terkait dengan CPU, saya sedang mengerjakan desain FPGA saat ini yang memproses data pada 315Gbps, dan itu tidak jauh dari kinerja penuh yang dimungkinkan dari FPGA, apa yang membatasi itu adalah kurangnya data!
Tom Carpenter

1
Yang menarik adalah ini mewakili pergeseran kembali ke arsitektur sistem yang bahkan lebih tua, di mana memori dan bus penyimpanan (dll.) Langsung ke CPU.
Chris H

1
@ DrZ214 "jalur" adalah lebar bit tunggal, sinyal jam / data dikirim sebagai dua pasangan. Hal unik tentang PCIe dibandingkan dengan, katakanlah, bus DDR adalah bahwa PCIe dapat dengan bebas mengumpulkan dan memisahkan jalur, sedangkan sebagian besar bus Anda harus mengambil semua atau tidak sama sekali.
pjc50

9

Saya tidak bisa mengatakan saya seorang ahli dalam arsitektur komputer, tetapi saya akan mencoba menjawab pertanyaan Anda.

Ini terlihat seperti tata letak motherboard yang khas.

Seperti yang disebutkan Tom, ini tidak lagi benar. Sebagian besar CPU modern memiliki northbridge terintegrasi. Southbridge biasanya terintegrasi atau dibuat tidak perlu oleh arsitektur baru; Chipset Intel "mengganti" southbridge dengan Platform Controller Hub, yang berkomunikasi langsung dengan CPU melalui bus DMI.

Mengapa CPU terhubung hanya ke 1 bus? Bus sisi depan itu terlihat seperti hambatan besar. Bukankah lebih baik memberi 2 atau 3 bus langsung ke CPU?

Bus lebar (64-bit) mahal, mereka membutuhkan sejumlah besar transceiver bus dan banyak pin I / O. Satu-satunya perangkat yang membutuhkan bus cepat berteriak besar adalah kartu grafis dan RAM. Segala sesuatu yang lain (SATA, PCI, USB, serial dan sebagainya) relatif lambat, dan tidak terus-menerus diakses. Oleh karena itu mengapa dalam arsitektur di atas, semua periferal "lambat" disatukan melalui southbridge sebagai perangkat bus tunggal: prosesor tidak ingin harus melakukan arbitrase setiap transaksi bus kecil, sehingga semua transaksi bus yang lambat / jarang dapat digabungkan dan dikelola oleh southbridge, yang kemudian menghubungkan ke periferal lain dengan kecepatan yang jauh lebih santai.

Sekarang, penting untuk menyebutkan bahwa ketika saya mengatakan di atas bahwa SATA / PCI / USB / serial "lambat", itu terutama merupakan titik sejarah, dan menjadi kurang benar hari ini. Dengan diadopsinya SSD pada spinny disk dan periferal PCIe cepat, serta USB 3.0, Thunderbolt, dan mungkin 10G ethernet (segera), bandwidth periferal "lambat" dengan cepat menjadi sangat signifikan. Di masa lalu, bus antara northbridge dan southbridge tidak terlalu sulit, tetapi sekarang itu tidak lagi benar. Jadi ya, arsitektur bergerak ke arah lebih banyak bus yang terpasang langsung ke CPU.

Apakah ada sesuatu yang sangat sulit dilakukan dengan cara ini? Saya tidak melihat bagaimana biayanya, karena diagram yang ada sudah memiliki tidak kurang dari tujuh bus.

Akan lebih banyak bus untuk dikelola prosesor, dan lebih banyak silikon prosesor untuk menangani bus. Itu mahal. Dalam diagram di atas, tidak semua bus sama. FSB berteriak cepat, LPC tidak. Bus cepat membutuhkan silikon cepat, bus lambat tidak, jadi jika Anda dapat memindahkan bus lambat dari CPU ke chip lain, itu membuat hidup Anda lebih mudah.

Namun, seperti yang disebutkan di atas, dengan semakin populernya perangkat bandwidth tinggi, semakin banyak bus terhubung langsung ke prosesor, terutama di SoC / arsitektur yang lebih terintegrasi. Dengan menempatkan semakin banyak pengontrol pada CPU yang mati, bandwidth yang sangat tinggi lebih mudah untuk dicapai.

EDIT: Saya lupa menyebutkan Watchdog Monitor. Saya tahu saya pernah melihatnya di beberapa diagram. Agaknya kemacetan akan membuat pengawas lebih mudah memantau semuanya. Mungkinkah itu ada hubungannya dengan itu?

Tidak, bukan itu yang dilakukan pengawas. Sebuah pengawas hanya untuk me-restart berbagai hal ketika / jika mereka terkunci; itu tidak benar-benar melihat segala sesuatu yang bergerak melintasi bus (jauh lebih canggih dari itu!).


2
Fast buses require fast silicon, slow buses don'tApa sebenarnya arti dari silikon cepat? Silikon dengan kemurnian lebih tinggi? Atau apakah Anda mengatakan bus lambat dapat menggunakan elemen yang berbeda dari silikon? Either way, saya pikir silikon adalah bahan yang cukup murah. Sedikit menarik tentang pengawas juga. Saya mungkin mengajukan pertanyaan terkait tentang hal itu.
DrZ214

1
Bus cepat biasanya akan menjadi bagian dari perangkat berperforma tinggi misalnya CPU. Antarmuka bus membutuhkan ruang dan koneksi ke bagian lain dari chip. Area silikon pada die prosesor jauh lebih mahal daripada chip yang lebih lambat, karena ukuran proses lebih kecil dan fabrikasi / pengemasan lebih sulit. Oleh karena itu, lebih murah untuk membatasi perangkat di FSB hanya perangkat yang benar-benar membutuhkan bandwidth tersebut. Namun, karena lebih banyak pengontrol terintegrasi dengan CPU pada die yang sama (sebuah SoC), ini tidak lagi sama benarnya.
uint128_t

Meskipun bus lambat tidak memerlukan silikon cepat, tidak jarang menemukan driver yang sangat cepat pada antarmuka lambat, yang dapat membuat sakit kepala besar untuk tata letak PCB. Saya telah melihat PCI biasa (kecepatan maksimum 133MHz pada PCI-X) dengan naik turunnya waktu kurang dari 300 ps, ​​karena vendor menggunakan sel I / O standar. Saya tahu PCI, sebagai antarmuka, biasanya tidak tersedia pada prosesor baru, tetapi masalah ini berlaku di tempat lain.
Peter Smith

6

Jumlah bus yang terhubung langsung dengan CPU pada umumnya akan terbatas pada jumlah bagian CPU yang berbeda yang dapat mengakses berbagai hal secara bersamaan. Ini tidak biasa, terutama di dunia prosesor tertanam dan DSP, untuk CPU memiliki bus untuk program dan bus untuk data, dan memungkinkan keduanya untuk beroperasi secara bersamaan. Namun, uniprocessor biasa hanya akan mendapat manfaat dari mengambil satu instruksi per siklus instruksi, dan hanya akan dapat mengakses satu lokasi memori data per siklus instruksi, sehingga tidak akan ada banyak manfaat untuk melampaui satu bus program-memori dan satu bus data-memori. Untuk memungkinkan beberapa jenis matematika dilakukan pada data yang diambil dari dua aliran yang berbeda,

Dengan prosesor yang memiliki beberapa unit eksekusi, mungkin akan membantu untuk memiliki bus terpisah untuk masing-masing, sehingga jika ada beberapa unit bus "luar" yang perlu mengambil barang dari berbagai bus "luar" yang berbeda dapat melakukannya tanpa gangguan. Kecuali jika ada alasan logis mengapa hal-hal yang diakses oleh unit eksekusi yang berbeda akan dapat diakses melalui bus yang berbeda di luar CPU, namun, memiliki bus yang terpisah dari umpan CPU ke unit arbitrase yang hanya dapat menyampaikan satu permintaan pada suatu waktu ke suatu perangkat eksternal tertentu tidak akan membantu apa pun. Bus mahal, sehingga memiliki dua unit pelaksanaan duduk di satu bus umumnya lebih murah daripada menggunakan bus terpisah. Jika menggunakan bus terpisah akan memungkinkan peningkatan kinerja besar, yang dapat membenarkan biaya, tetapi sebaliknya sumber daya (area chip, dll


-1

Pertimbangkan jumlah pin yang diperlukan pada paket CPU untuk memiliki banyak bus lebar. Sebagai contoh, delapan core CPU masing-masing dengan bus data 64-bit, ditambah berbagai pin lainnya untuk keperluan lain. Apakah ada paket CPU yang tersedia saat ini dengan kemungkinan 800 pin?


Kenapa tidak ada? Array kisi-kisi bola 32x32 dan PCB berlapis-lapis tidak terdengar seperti masalah yang sulit (pada skala relatif). Insinyur perangkat keras luar biasa. // Pikirkan seberapa lebar dan canggung kartu RAM bisa, dan masih clock di 1,6 GHz (625 picoseconds). Jika sinyal listrik bergerak pada 2/3 c, jejak terpanjang hanya bisa sepanjang 6 cm, dan panjangnya hanya beberapa mm akan menyebabkan offset waktu yang nyata. // Dan kurasa crosstalk antara layer tidak akan jauh lebih buruk daripada antara jejak di layer yang sama.
Oskar Skog

"Apakah ada paket CPU yang tersedia hari ini dengan mungkin 800 pin?" Oh ya. Paket dengan 1100+ pin sudah biasa ketika jawaban ini ditulis. Dan saat ini, ada LGA3647 untuk beberapa CPU server Skylake-EX ...
duskwuff
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.