Bagaimana CPU dirancang?

21

Saya sudah mulai bermain dengan elektronik beberapa waktu lalu dan membuat gerbang logika sederhana menggunakan transistor. Saya tahu sirkuit terintegrasi modern menggunakan CMOS bukan logika transistor-transistor. Satu hal yang tidak bisa saya pikirkan adalah bagaimana CPU dirancang.

Apakah desain masih dilakukan pada level (sub) gerbang logika, atau apakah tidak ada banyak inovasi di area itu lagi dan sudahkah kita beralih ke level abstraksi yang lebih tinggi? Saya mengerti bagaimana ALU dibangun, tetapi ada lebih banyak CPU dari itu.

Dari mana desain untuk miliaran transistor berasal? Apakah sebagian besar dihasilkan secara otomatis oleh perangkat lunak atau masih ada banyak optimasi manual?

Overv
sumber
2
Saya akan mengatakan Verilog atau VHDL.
avakar
3
Meskipun topik-topik ini menarik, kami sepertinya jauh dari "pertanyaan praktis yang dapat dijawab berdasarkan masalah aktual yang Anda hadapi" . Saya juga bisa membayangkan seluruh buku yang menjawab pertanyaan ini.
Martin
1
@Overv, masih ada banyak pekerjaan di mana Anda memastikan blok dasar Anda Anda tancapkan bersama dioptimalkan di tingkat gerbang, maka Anda cukup tancapkan blok yang dioptimalkan dengan cara yang dioptimalkan!
Kortuk
13
Saya memilih untuk membuka kembali - sementara saya setuju bahwa jawaban lengkap yang mengatakan "semua yang perlu Anda ketahui untuk membangun seluruh CPU dari awal" tidak cocok untuk situs ini, saya pikir gambaran singkat dan beberapa tautan akan menjadi jawaban yang bagus di sini.
davidcary
1
Saya terkejut kami tidak memiliki orang yang bekerja di industri semikonduktor yang dapat mengomentari desain ASIC yang lebih kompleks di sini. Karena saya bukan ahli, ini hanya beberapa hal yang saya dengar: Ada banyak lisensi di core IP dan bidang yang digunakan untuk mengumpulkan semuanya disebut VLSI. Saya percaya desain dilakukan dalam VHDL / Verilog dengan alat sintesis yang sangat dioptimalkan - bagaimana ini turun ke tingkat wafer dan diproduksi di luar pengetahuan saya.
Jon L

Jawaban:

10

Sangat mungkin CPU dan SoC digunakan oleh bahasa deskripsi perangkat keras seperti Verilog dan VHDL (dua pemain utama).

Bahasa-bahasa ini memungkinkan berbagai tingkat abstraksi. Di VHDL, Anda bisa mendefinisikan blok logika sebagai entitas; ini berisi input dan port keluaran. Di dalam blok Anda dapat menentukan logika yang diperlukan. Katakanlah Anda mendefinisikan sebuah blok dengan input A, input B dan output C. Anda dapat dengan mudah menulis C = A dan B ;, dan pada dasarnya Anda membuat blok port AND. Ini mungkin blok paling sederhana yang dapat Anda bayangkan.

Sistem digital biasanya dirancang dengan hierarki yang kuat. Seseorang dapat memulai 'top-level' dengan fungsi-fungsi utama yang dibutuhkan CPU: memori proccesor (multiple?), PCI-express, dan bus lainnya. Dalam level ini, bus dan sinyal komunikasi antara memori dan prosesor mungkin sudah ditentukan.

Ketika Anda melangkah satu tingkat ke bawah, itu akan menentukan kerja dalam membuat sesuatu 'bekerja'. Diambil contoh mikrokontroler, mungkin berisi antarmuka UART. Logika aktual yang diperlukan untuk membuat UART fungsional didefinisikan satu tingkat di bawah ini. Di sini, banyak logika lain mungkin diperlukan untuk menghasilkan dan membagi jam yang diperlukan, data buffer (buffer FIFO), melaporkan data ke CPU (semacam bus). sistem).

Yang menarik dari VHDL dan desain digital adalah penggunaan kembali blok. Anda bisa misalnya, cukup salin & tempel blok UART di tingkat atas Anda untuk membuat 2 UART (yah, mungkin tidak mudah, hanya jika blok UART mampu mengatasi masalah!).

Desain ini bukan jenis desain tingkat gerbang. VHDL juga dapat 'dikompilasi' dengan cara yang akhirnya diterjemahkan ke gerbang logika. Mesin dapat mengoptimalkan ini jauh lebih baik daripada yang bisa dilakukan manusia (dan juga lebih cepat). Sebagai contoh; bagian dalam blok A memerlukan inverter sebelum mengeluarkan sinyal. Blok B mengambil sinyal output ini dan membalikkannya sekali lagi. Nah, 2 inverter secara seri tidak banyak membantu kan? Benar, jadi Anda bisa membiarkannya begitu saja. Namun, dalam desain 'tingkat atas' Anda tidak akan dapat menemukan dua inverter secara seri .. Anda hanya melihat dua port yang terhubung. Kompiler dapat mengoptimalkan ini jauh lebih cepat daripada manusia.

Pada dasarnya apa yang berisi desain sistem digital adalah deskripsi bagaimana logika harus 'berperilaku', dan komputer digunakan untuk mencari tahu apa cara yang paling efisien adalah untuk menata gerbang logika individu.

Hans
sumber
Sama seperti masih ada tempat untuk kode perakitan dalam perangkat lunak, desain perangkat keras tingkat yang lebih rendah dapat hemat biaya dalam beberapa kasus. Misalnya, sel SRAM sering kali sangat umum digunakan sehingga desain yang sangat optimal dikembangkan untuk mengoptimalkan kepadatan (cache level terakhir), latensi akses (cache L1), atau karakteristik lain, terutama pada pabrikan desain terintegrasi seperti Intel.
Paul A. Clayton
@ Paul, pertanyaan menarik yang memunculkan bagi saya adalah berapa banyak investasi Intel dalam mengoptimalkan desain mereka dengan menulis lompatan optimasi perangkat lunak yang mencapai peningkatan kinerja yang sama secara dinamis dan lebih umum.
Ponkadoodle
6

Biarkan saya menyederhanakan dan memperluas komentar saya sebelumnya dan menghubungkan titik-titik untuk mereka yang tampaknya membutuhkannya.

Apakah desain masih dilakukan pada level (sub) gerbang logika?

  • IYA NIH

Desain dilakukan di banyak level, level sub-logika selalu berbeda . Setiap penyusutan fabrikasi menuntut pengalaman fisika, kimia, dan proses litografik yang paling cemerlang karena struktur transistor berubah dan geometri juga berubah untuk mengimbangi pertukaran, karena menyusut hingga ke tingkat atom dan biaya ~ $ miliaran setiap langkah biner ke bawah di ukuran. Untuk mencapai geometri 14nm adalah usaha besar dalam R&D, kontrol proses & manajemen dan itu masih meremehkan!masukkan deskripsi gambar di sini

Misalnya keterampilan kerja yang diperlukan untuk melakukan ini termasuk; - "FET, sel, dan tata letak kustom tingkat-blok, denah lantai FUB, pembuatan tampilan abstrak, ekstraksi RC, dan verifikasi skematis-ke-tata letak dan debug menggunakan fase pengembangan desain fisik termasuk ekstraksi parasit, waktu statis, beban kawat model, pembuatan jam, pengeditan poligon khusus, algoritma tempat otomatis dan rute, perencanaan lantai, perakitan chip penuh, pengemasan, dan verifikasi. "*

- tidak ada lagi inovasi di bidang itu? - SALAH - Ada inovasi signifikan dan didanai besar dalam Fisika Semikonduktor, dilihat dari Hukum Moore dan jumlah paten, itu tidak akan pernah berhenti. Penghematan daya, panas dan dengan demikian empat kali lipat dalam kemampuan terbayarkan setiap kali.

- sudahkah kita beralih ke level abstraksi yang lebih tinggi? - Tidak pernah berhenti bergerak. - Dengan permintaan lebih banyak core, melakukan lebih banyak dalam satu instruksi seperti ARM RISC CPU, μC atau MCU tertanam yang lebih kuat, RAM pintar dengan DDR4 yang memiliki ECC secara default dan sektor-sektor seperti flash dengan bit prioritas untuk pengambilan memori yang mendesak. - Evolusi CPU dan perubahan arsitektur tidak akan pernah berhenti. masukkan deskripsi gambar di sini

Biarkan saya memberi Anda petunjuk. Lakukan pencarian pekerjaan di Intel, AMD, TI atau AD untuk Insinyur dan lihat deskripsi pekerjaan.

- Dari mana desain untuk miliaran transistor berasal? - Itu datang dari menambahkan lebih banyak blok perangkat keras 64bit. tetapi sekarang terjadi kegagalan nanotube, pemikiran harus berubah dari pendekatan top-down blok ke pendekatan bottom-up dari nanotube untuk membuatnya bekerja.

  • Apakah sebagian besar dihasilkan secara otomatis oleh perangkat lunak? dengan lidah tertanam kuat di pipi ...
  • Sebenarnya mereka masih mengekstraksi desain dari Area51 dari pesawat ruang angkasa dan memiliki cara untuk pergi .... sampai kita sepenuhnya mematuhi tabung nano-nano. Seorang insinyur masuk ke perpustakaan dan mengatakan nVidia kami ingin Anda bergabung dengan kami di sini dalam chip ini dan menjadi bagian, yang masuk ke blok makro . Tata letak dapat direplikasi seperti Semut di Toystory tetapi kontrol eksplisit atas semua koneksi harus diarahkan / diperiksa secara manual serta menggunakan DRC dan auto-routing untuk perbandingan. Ya Alat Otomasi terus ditingkatkan untuk menghapus duplikasi dan waktu terbuang.

    - apakah masih ada banyak optimasi manual?

  • Mengingat satu maskapai penerbangan menghemat cukup uang untuk membayar gaji Anda dengan menghapus hanya satu zaitun dari makan malam di Kelas Satu, Intel akan mencari cara untuk menghilangkan sebanyak mungkin atom dalam kerangka waktu. Adanya kelebihan kapasitansi berarti panas yang terbuang, kinerja dan juga kebisingan yang lebih banyak, tidak terlalu cepat ...

Tapi sebenarnya CPU tumbuh seperti Tokyo, tidak dalam semalam, tetapi puluhan juta tinggal di sana sekarang dengan peningkatan yang stabil. Saya tidak belajar cara mendesain di Univ. tetapi dengan membaca dan mencoba memahami cara kerja berbagai hal, saya dapat meningkatkan kecepatan dalam industri dengan cukup cepat. Saya mendapat 10 tahun pengalaman dalam 5 tahun pertama saya di Aerospace, desain Instrumen Nuklir, desain SCADA, pemantauan proses, desain Antena, desain stasiun Cuaca otomatis dan debug, PLL's VLF VLF Rx milik OCXO, remote control 2 arah Black Brandt Rockets ... dan itu hanya pekerjaan pertama saya. Saya tidak tahu apa yang bisa saya lakukan.

Jangan khawatir tentang miliaran transistor atau takut pada apa yang harus dipelajari atau seberapa banyak yang perlu Anda ketahui. Ikuti saja hasrat Anda dan bacalah jurnal perdagangan di sela tidur Anda, maka Anda tidak akan terlihat begitu hijau di tempat kerja dan tidak terasa seperti pekerjaan lagi.

Saya ingat harus merancang 741 "seperti" Op Amp sebagai bagian dari ujian satu kali, dalam 20 menit. Saya tidak pernah benar-benar menggunakannya, tetapi saya bisa mengenali yang baik dari desain yang hebat. Tetapi kemudian hanya memiliki 20 transistor.masukkan deskripsi gambar di sini

Tetapi bagaimana merancang CPU harus dimulai dengan Spec., Yaitu; Mengapa mendesain CPU dan membuat tolok ukur yang dapat diukur untuk dicapai seperti; - Instruksi makro per detik (MIPS) (lebih penting daripada jam CPU), misalnya; - Chip Itanium Intel didasarkan pada apa yang mereka sebut desain Explicitly Parallel Instruction Computing (EPIC). - Transmeta mematenkan desain CPU dengan mikroprosesor kode kata morphing instruksi yang sangat panjang (VLIWCMM). Mereka menggugat Intel pada tahun 2006, menutup toko dan membayar ~ $ 200 juta pada tahun 2007. - Kinerja per watt (PPW), ketika biaya daya> biaya chip (untuk server) - Titik pengapungan Ops Per Second (FLOPS) untuk kinerja matematika.

Ada banyak lagi metrik, tetapi tidak pernah mendasarkan kualitas desain CPU pada kecepatan GHz-nya (lihat mitos)

Jadi alat apa yang dibutuhkan untuk mendesain CPU? Daftar ini tidak akan muat di halaman ini mulai dari desain fisika level atom hingga mesh dinamis EMC fisik EM / RF desain hingga Front End Design Verification Test Engineer, di mana keterampilan yang diperlukan meliputi; - Simulasi RTL Front-end - pengetahuan tentang IA dan arsitektur komputer dan desain tingkat sistem - Verifikasi logika dan simulasi logika menggunakan VHDL atau Verilog. - Pemrograman berorientasi objek dan berbagai CPU, bus / interkoneksi, protokol koherensi.

Tony Stewart Sunnyskyguy EE75
sumber
6
"Verilog" dan "VHDL" hanya menggores permukaan semua pertanyaan mencari inspirasi yang naif ini. Dunia nyata jauh lebih analog daripada digital daripada yang Anda sadari.
Tony Stewart Sunnyskyguy EE75
Apakah Anda memiliki penjelasan tentang rangkaian Op Amp di mana saja. Yang bisa saya lihat adalah cascoded OTA, sisanya adalah sirkuit Voodoo.
CyberMen
3
Wow. Sayang sekali itu sebagian besar tidak relevan dengan pertanyaan.
Dave Tweed
3
Saya harus mengatakan bahwa ini adalah bacaan yang sangat lucu. Pergeseran bertahap dari penulis menjadi bermain-main dengan pertanyaan aslinya menjadi dia berusaha untuk meniup pikiran pembaca dengan angka dan kosakata dan kemudian memberikan bantuan diri diikuti dengan kenang-kenangan masa sekolah-anak laki-lakinya hanya dengan sedikit arogansi dan akhirnya bergerak ke klise "itu sangat rumit bahwa saya tidak pernah bisa meringkasnya di sini". Sangat cantik.
Ponkadoodle
Dan meskipun komentar saya itu agak menyindir, saya harap Anda akan menganggapnya enteng. Saya benar-benar menikmati membaca.
Ponkadoodle
2

Gambaran Umum AMD tentang desain CPU

Versi Intel

Tak satu pun dari ini memberikan banyak detail, tetapi menarik tidak kurang. Jangan terima ini sebagai jawaban. Orang lain telah mempertimbangkan pertanyaan Anda secara terperinci dan telah berupaya lebih keras dalam mencoba menjawab secara detail.

rdivilbiss
sumber
Saya telah melihat halaman TomsHardware sebelumnya. Namun, itu menjelaskan bagaimana prosesor diproduksi , bukan bagaimana mereka dirancang
stevenvh