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?
Jawaban:
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.
sumber
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?
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!
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.
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.
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?
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.
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.
sumber
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.
sumber