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?
fpga
microprocessor
timing
Randomblue
sumber
sumber
Jawaban:
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.
sumber
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.
sumber