Field programming gate array (FPGA) vs. mikrokontroler: Apa bedanya?

Seorang pria IT meluncurkan rig penambangan pertamanya untuk mata uang kripto

Field Programmable Gate Arrays (FPGA) dan mikrokontroler unit (MCU) adalah dua jenis sirkuit terintegrasi (IC) yang sering dibandingkan dan biasanya digunakan dalam sistem tertanam serta desain digital. FPGA dan mikrokontroler keduanya dapat dianggap sebagai "komputer kecil" yang dapat diintegrasikan ke dalam perangkat atau sistem yang lebih besar.

Sebagai prosesor, FPGA dan mikrokontroler memiliki perbedaan utama dalam hal kemampuan pemrograman dan pemrosesan. Meskipun FPGA lebih kuat dan lebih serba guna, harganya juga lebih mahal. Mikrokontroler kurang dapat disesuaikan, tetapi juga lebih murah. Dalam banyak aplikasi, mikrokontroler sangat mumpuni dan hemat biaya. Namun, untuk aplikasi tertentu yang membutuhkan kinerja tinggi atau pemrosesan paralel, seperti yang sering diperlukan dalam pemrosesan data yang intensif, FPGA menjadi pilihan yang diperlukan.

Berbeda dengan mikrokontroler, FPGA memungkinkan pemrograman ulang langsung pada tingkat perangkat keras. Desain unik FPGA memungkinkan pengguna untuk mengonfigurasi dan mengubah arsitektur chip sesuai dengan kebutuhan tugas. Desain FPGA memungkinkan pemrosesan input paralel secara bersamaan, sementara mikrokontroler hanya dapat mengeksekusi satu instruksi kode pada satu waktu. FPGA dapat diprogram untuk menjalankan fungsi yang biasanya dilakukan oleh mikrokontroler. Namun, mikrokontroler tidak memiliki fleksibilitas yang sama dan tidak dapat diprogram ulang untuk menjalankan fungsi yang lebih kompleks seperti FPGA.

Apa yang dimaksud dengan Field programmable gate array (FPGA)?

FPGA pertama kali diperkenalkan oleh pabrikan Xilinx pada tahun 1985 dan sangat dihargai karena keserbagunaan serta kemampuan pemrosesannya yang tinggi. Akibatnya, FPGA menjadi pilihan utama dalam berbagai aplikasi, seperti komputasi kinerja tinggi (HPC), pemrosesan sinyal digital (DSP), dan pembuatan prototipe.

Berbeda dengan sirkuit terintegrasi khusus aplikasi (ASIC) tradisional, FPGA dirancang agar dapat dikonfigurasi (dan dikonfigurasi ulang) “di lapangan” setelah proses manufaktur selesai. Walaupun kemampuan kustomisasi adalah nilai utama FPGA, perlu dicatat bahwa FPGA bukan hanya dapat diprogram, tetapi memang harus diprogram agar dapat berfungsi. Berbeda dengan ASIC, FPGA bukanlah solusi "siap pakai" dan harus dikonfigurasi terlebih dahulu menggunakan bahasa deskripsi perangkat keras (HDL), seperti Verilog atau VHDL, sebelum dapat digunakan. Pemrograman FPGA membutuhkan pengetahuan khusus, yang dapat meningkatkan biaya dan menunda penerapan. Walaupun beberapa FPGA memiliki memori non-volatil yang dapat menyimpan instruksi pemrograman saat perangkat dimatikan, umumnya FPGA tetap perlu dikonfigurasi ulang setiap kali dinyalakan.

Manfaat FPGA

Meskipun memiliki tantangan, FPGA tetap menjadi pilihan ideal untuk aplikasi yang memerlukan kinerja tinggi, latensi rendah, dan fleksibilitas dalam waktu nyata. FPGA sangat cocok untuk aplikasi yang membutuhkan hal berikut:

  • Prototipe cepat: FPGA dapat dikonfigurasikan dengan cepat menjadi berbagai jenis sirkuit digital yang disesuaikan, memungkinkan penerapan, penilaian, dan modifikasi secara cepat tanpa memerlukan proses fabrikasi yang mahal dan memakan waktu. 
  • Akselerasi perangkat keras: Aplikasi yang menuntut manfaat dari kemampuan pemrosesan paralel FPGA. FPGA dapat memberikan peningkatan kinerja yang signifikan untuk tugas-tugas komputasi intensif, seperti pemrosesan sinyal, kriptografi, dan algoritma machine learning.
  • Kustomisasi: FPGA adalah solusi perangkat keras fleksibel yang dapat dengan mudah dioptimalkan untuk memenuhi persyaratan proyek tertentu. 
  • Umur Panjang: Desain berbasis FPGA memiliki masa pakai yang lebih lama karena dapat diperbarui dan dikonfigurasi ulang untuk memenuhi kebutuhan proyek dan standar teknologi yang terus berkembang. 

Komponen FPGA

Untuk mendukung kemampuan konfigurasi ulang, FPGA terdiri dari susunan blok logika yang dapat diprogram dan dihubungkan melalui jaringan perutean yang juga dapat diprogram. Komponen utama dari FPGA khas adalah sebagai berikut:

  • Blok logika yang dapat dikonfigurasi (CLB): CLB menyediakan fungsi komputasi dan biasanya berisi sejumlah elemen logika dasar, seperti gerbang logika, tabel pencarian kecil (LUT), multiplexer, dan flip-flop untuk penyimpanan data. 
  • Interkoneksi yang dapat diprogram: Terdiri dari segmen kawat yang dihubungkan oleh sakelar yang dapat diprogram secara elektrik, interkoneksi ini menyediakan jalur perutean antara berbagai sumber daya FPGA, memungkinkan berbagai konfigurasi dan pembuatan sirkuit digital khusus. 
  • Blok I/O (IOB): Blok input/output (I/O) berfungsi sebagai antarmuka antara FPGA dan perangkat eksternal, memungkinkan FPGA menerima data dari dan mengendalikan periferal 

Contoh penggunaan FPGA

Karena sifatnya yang serbaguna, FPGA umum digunakan di berbagai industri dan aplikasi:

  • Kedirgantaraan dan pertahanan: FPGA menjadi pilihan utama untuk sistem radar, pemrosesan gambar, dan komunikasi aman karena kemampuannya dalam pemrosesan paralel berkecepatan tinggi untuk akuisisi data. 
  • Sistem kontrol industri (ICS): Sistem kontrol industri yang digunakan untuk memantau infrastruktur—seperti jaringan listrik, kilang minyak, dan pabrik pengolahan air—menggunakan FPGA yang dapat dengan mudah dioptimalkan untuk memenuhi kebutuhan unik berbagai industri. Dalam industri yang sangat penting ini, FPGA dapat digunakan untuk mengimplementasikan berbagai otomatisasi dan fitur enkripsi berbasis perangkat keras untuk keamanan siber yang efisien.
  • Pengembangan ASIC: FPGA sering digunakan dalam pembuatan prototipe chip ASIC baru. 
  • Otomotif: Kemampuan pemrosesan sinyal yang canggih membuat FPGA sangat cocok untuk aplikasi otomotif, seperti sistem bantuan pengemudi tingkat lanjut (ADAS), penggabungan data sensor, dan GPS.
  • Pusat data: FPGA memberikan nilai tambah pada pusat data dengan mengoptimalkan bandwidth tinggi, menurunkan latensi rendah server, serta meningkatkan jaringan dan infrastruktur penyimpanan.

Fitur FPGA

  • Inti pemrosesan: Blok logika yang dapat dikonfigurasi
  • Memori: Antarmuka memori eksternal 
  • Periferal: Blok I/O yang dapat dikonfigurasi
  • Pemrograman: Bahasa deskripsi perangkat keras (VHDL, Verilog) 
  • Kemampuan konfigurasi ulang: Logika yang sangat dapat dikonfigurasi ulang dan dapat diprogram ulang

Apa itu mikrokontroler?

Mikrokontroler adalah jenis ASIC yang ringkas dan siap pakai, berisi inti prosesor (atau inti), memori (RAM), dan memori hanya-baca yang dapat diprogram ulang (EPROM) untuk menyimpan program khusus yang dijalankan oleh mikrokontroler. Dikenal sebagai solusi 'system-on-a-chip' (SoC), mikrokontroler pada dasarnya adalah komputer mini yang terintegrasi dalam satu perangkat keras dan dapat digunakan secara mandiri atau dalam sistem tertanam yang lebih besar.

Mikrokontroler kelas konsumen, seperti Arduino Starter Kit atau Microchip Technology PIC, dapat diprogram menggunakan bahasa assembly atau bahasa pemrograman umum ( C dan C++). Mikrokontroler ini populer di kalangan penghobi dan pendidik karena aksesibilitasnya yang terjangkau. Mikrokontroler juga mampu menangani tugas-tugas yang kompleks dan penting, sehingga banyak digunakan dalam berbagai aplikasi industri. Namun, keterbatasan daya pemrosesan dan sumber daya memori dapat membatasi kemampuan mikrokontroler untuk menangani aplikasi yang lebih menuntut.

Manfaat mikrokontroler

Terlepas dari keterbatasannya, mikrokontroler menawarkan banyak keuntungan, termasuk hal berikut:

  • Desain ringkas: Mikrokontroler menggabungkan semua komponen penting dalam satu chip kecil, sehingga ideal untuk aplikasi yang mengutamakan ukuran dan bobot yang minimal.
  • Efisiensi energi: Dirancang untuk beroperasi dengan daya rendah, mikrokontroler sangat cocok untuk perangkat bertenaga baterai dan aplikasi lain yang memerlukan konsumsi daya minimal.
  • Hemat biaya: Mikrokontroler menawarkan solusi SoC lengkap yang mengurangi kebutuhan akan periferal dan komponen tambahan. Mikrokontroler tujuan umum yang murah dapat sangat menekan biaya proyek secara keseluruhan.
  • Fleksibilitas: Walaupun tidak sefleksibel FPGA, mikrokontroler tetap dapat diprogram untuk mendukung berbagai macam aplikasi. Meskipun tidak dapat diprogram ulang pada tingkat perangkat keras, mikrokontroler dapat dengan mudah dikonfigurasi ulang, diperbarui, dan dioptimalkan melalui perangkat lunak.

Komponen mikrokontroler

Jika kemampuan pemrograman ulang bukanlah prioritas, mikrokontroler mandiri dapat menjadi pilihan yang ringkas dan efektif. Berikut ini adalah komponen-komponen utama dari mikrokontroler:

  • Unit pemrosesan pusat (CPU): Dalam bahasa sehari-hari disebut sebagai “otak,” unit pemrosesan pusat (CPU) berfungsi sebagai komponen inti yang bertanggung jawab untuk mengeksekusi instruksi dan mengendalikan operasi.
  • Memori: Mikrokontroler memiliki memori volatil (RAM) untuk menyimpan data sementara, yang akan hilang jika daya terputus, dan memori non-volatil (seperti ROM atau FLASH) untuk menyimpan kode program mikrokontroler secara permanen.
  • Periferal: Bergantung pada kebutuhan aplikasinya, mikrokontroler dapat dilengkapi berbagai periferal, seperti antarmuka input/output (I/O), timer, penghitung, konverter analog-ke-digital (ADC), serta protokol komunikasi (UART, SPI, dan I2C).

Contoh penggunaan mikrokontroler

Berbeda dengan FPGA, mikrokontroler yang berukuran kecil, terjangkau, dan non-volatil banyak digunakan dalam elektronik modern untuk menjalankan berbagai tugas khusus, seperti:

  • Sistem otomotif: Mikrokontroler digunakan untuk mengendalikan mesin, penerapan airbag, dan mengelola sistem infotainment dalam kendaraan.
  • Elektronik konsumen: Mikrokontroler memainkan peran penting dalam perangkat seperti ponsel cerdas, TV pintar, dan peralatan rumah tangga lainnya, terutama yang terhubung dalam jaringan Internet of Things (IoT).
  • Otomasi industri: Mikrokontroler ideal untuk berbagai aplikasi industri, seperti pengendalian mesin, sistem pemantauan, dan otomatisasi proses.
  • Perangkat medis: Mikrokontroler banyak diterapkan dalam perangkat penyelamat nyawa, seperti pacemaker, monitor glukosa darah, dan alat diagnostik medis lainnya.

Fitur mikrokontroler

  • Inti pemrosesan: CPU tetap
  • Memori: RAM dan ROM/Flash terintegrasi 
  • Periferal: Antarmuka I/O bawaan untuk
  • Pemrograman: Perangkat Lunak (C, Assembly) 
  • Konfigurasi ulang: Terbatas, pembaruan firmware

Perbedaan utama antara FPGA dan mikrokontroler

Saat membandingkan FPGA dan mikrokontroler, penting untuk mempertimbangkan beberapa perbedaan utama, seperti arsitektur perangkat keras, kemampuan pemrosesan, konsumsi daya, dan kebutuhan pengembang.

  • Struktur perangkat keras
    • FPGA: Memiliki blok logika yang dapat diprogram dan interkoneksi yang sangat fleksibel, memungkinkan pembuatan sirkuit digital yang dapat disesuaikan dan diprogram ulang.
    • Mikrokontroler: Memiliki arsitektur tetap dengan komponen yang sudah ditentukan sebelumnya (CPU, memori, dan periferal) yang semuanya terintegrasi dalam satu chip.
  • Kemampuan pemrosesan
    • FPGA: Pemrosesan paralel Advanced memungkinkan beberapa operasi simultan.
    • Mikrokontroler: Dirancang untuk pemrosesan berurutan, mikrokontroler hanya dapat menjalankan instruksi satu per satu secara bertahap.
  • Konsumsi daya
    • FPGA: Biasanya mengkonsumsi lebih banyak daya daripada mikrokontroler.
    • Mikrokontroler: Dioptimalkan untuk konsumsi daya rendah, cocok untuk aplikasi bertenaga baterai.
  • Pemrograman
    • FPGA: Membutuhkan keahlian khusus dalam bahasa deskripsi perangkat keras untuk proses konfigurasi dan debug.
    • Mikrokontroler: Dapat diprogram menggunakan berbagai bahasa pemrograman, seperti JavaScript, Python, C, C++, dan bahasa assembly.
  • Biaya
    • FPGA: Menawarkan kinerja yang lebih tinggi, namun membutuhkan keterampilan tingkat lanjut. Perangkat keras FPGA sering kali lebih mahal, dengan biaya tambahan untuk konsumsi daya yang lebih besar dan kebutuhan akan programmer khusus.
    • Mikrokontroler: Secara umum, merupakan solusi yang lebih hemat biaya dengan ketersediaan yang luas, konsumsi daya rendah, dan dukungan untuk bahasa pemrograman yang lebih mudah diakses.
  • Fleksibilitas
    • FPGA: FPGA jauh lebih fleksibel daripada mikrokontroler, yang memungkinkan penyesuaian pada tingkat perangkat keras.
    • Mikrokontroler: Meskipun cocok untuk berbagai aplikasi, mikrokontroler hanya menawarkan tingkat kustomisasi yang terbatas dibandingkan dengan FPGA.You’ve hit the Free plan limit for GPT-4o.Responses will use another model until your limit resets tomorrow after 4:25 AM.Get Plus

Jelajahi solusi infrastruktur IBM

Apakah Anda mencari prosesor FPGA yang serbaguna dan bertenaga, atau mikrokontroler yang ringkas dan hemat biaya, pertimbangkan bagaimana IBM dapat membantu mengembangkan bisnis Anda dengan solusi infrastruktur canggih. IBM FlashSystem 5300 baru memberikan peningkatan kinerja danketahanan siber. IBM Storage Assurance yang baru menyederhanakan manajemen penyimpanan dan membantu Anda mengatasi tantangan dalam siklus hidup TI.

 

Penulis

Josh Schneider

Staff Writer

IBM Think