Bagaimana mikroprosesor komersial memenuhi waktu dengan jam gigahertz?

8

Saya mengalami masalah membuat desain FPGA yang relatif sederhana (untuk Altera Cyclone IV) memenuhi waktu untuk logika yang digerakkan oleh clock 250 MHz. Ini membuat saya bertanya-tanya bagaimana mikroprosesor komersial (seperti Intel Core i7) mengelola untuk memenuhi waktu pada frekuensi clock lebih dari urutan besarnya lebih tinggi.

Bagaimana mikroprosesor komersial dapat mencapai timing pada 3,8 GHz ketika saya berjuang pada 250 MHz untuk FPGA?

Randomblue
sumber
8
FPGA dan prosesor adalah apel dan jeruk. FPGA dibangun dari modul / sel yang relatif besar yang saling berhubungan. Kompiler untuk fpga tidak lebih baik atau lebih buruk daripada kompiler perangkat lunak, artinya ada banyak ruang untuk peningkatan kinerja, sinyal Anda disalurkan ke seluruh, melalui sel besar / lambat yang menghabiskan waktu. Prosesor misalnya adalah persis gerbang yang diperlukan, tidak ada rute tambahan (pemindaian jtag baik dan bist), dll. Masalah yang sama dengan kompiler tetapi ada beberapa kompiler chip yang lebih baik (mahal) di luar sana.
old_timer

Jawaban:

7

FPGA sebenarnya tidak memiliki "gerbang" per se. Mereka biasanya memiliki Look-Up Tables (LUTs). LUT biasanya diimplementasikan menggunakan SRAM. Misalnya, Spartan 3 FPGA menggunakan SRAM 16-bit; yaitu, empat input alamat menghasilkan satu sinyal output. "Pemrograman" dilakukan dengan memuat SRAM dengan pola bit yang mewakili tabel kebenaran, sehingga untuk misalnya 2-input XOR, Anda memiliki alamat 00 = output 0, alamat 01 = output 1, alamat 10 = output 1, alamat 11 = keluaran 0.

Ini semua berarti bahwa FPGA sebenarnya memiliki banyak, banyak gerbang tambahan dan tidak perlu untuk melakukan fungsi logika yang sama. Jika Anda membutuhkan FPGA untuk pemrograman ulang dan pembuatan prototipe cepat, maka ini hebat! Bahkan, beberapa orang mengimplementasikan desain terlebih dahulu di FPGA, men-debug-nya, dan kemudian pindah ke ASIC, yang akan lebih kecil, lebih cepat, dan mengonsumsi lebih sedikit daya, sambil melakukan hal yang sama seperti FPGA.

Mikroprosesor modern juga disalurkan melalui pipa. Misalnya, dalam program FPGA sederhana, perhitungan sangat besar yang melibatkan beberapa penambahan dan mungkin beberapa kali lipat dan perbandingan dapat dilakukan dalam siklus clock yang sama. Melakukan semua ini dalam satu siklus clock berarti siklus clock harus panjang. Dalam implementasi pipelined (yang mungkin untuk diimplementasikan dalam FPGA dan sering digunakan untuk mencapai penutupan waktu), perhitungan besar dipecah menjadi beberapa bagian, dan setiap bagian dieksekusi dalam satu siklus clock yang jauh lebih pendek. Masih membutuhkan jumlah waktu yang sama untuk melakukan perhitungan, tetapi keuntungannya adalah setelah bagian pertama dihitung dan datum parsial pertama pindah ke bagian kedua, bagian pertama dapat segera mulai memproses datum kedua. Perhitungan pertama masih akan membutuhkan banyak siklus untuk menyelesaikan,

Jadi, singkatnya, FPGA memiliki logika umum sedangkan CPU memiliki logika khusus. FPGA memiliki perutean generik sementara CPU memiliki perutean khusus. FPGA mungkin pipelined, tetapi CPU pasti pipelined.

ajs410
sumber
6

Memperluas komentar dwlech. Prosesor memiliki koneksi tembaga langsung. FPGA saling terhubung melalui koneksi yang dapat diprogram. Juga prosesor meletakkan hal-hal penting di samping satu sama lain. FPGA juga membutuhkan ruang untuk SRAM yang memegang pemrograman.

Brian Carlton
sumber
3
Perlu diingat bahwa prosesor dari pemasok seperti Intel sedang dilakukan di ujung tombak teknologi di mana pengorbanan kecepatan dan daya adalah yang paling canggih. Ini juga bukan fitur sederhana untuk "memenuhi waktu" pada inti prosesor multi-gigahertz bahkan dengan keunggulan spesifik yang dicatat oleh Brian Carlton.
Michael Karas
3
Terlepas dari apa yang ditunjukkan oleh @Michael Karas, FPGA terbaru sering kali juga berada di ujung tombak teknologi untuk fab.
Brian Carlton