Sejauh terminologi, apa yang sebenarnya "microcode" dan jika hal ini dapat diperbarui, bagaimana hal itu berbeda dari firmware?
Pertanyaan ini tidak duplikat dari pertanyaan ini (sejauh yang saya tahu) yang saya've juga ditanya tentang memodifikasi microcode. Di sini saya'm benar-benar ingin tahu bagaimana untuk menggunakan istilah-istilah ini dengan baik.
Aku memiliki jawaban yang dipilih, tapi saya'm tidak terlalu puas dengan hal itu. I've terlibat banyak jawaban dan saya menemukan banyak respon mereka sama-sama tidak memuaskan. Jadi biarkan aku hadir untuk anda saya dua frame,
Asal kata firmware adalah titik tengah antara perangkat keras dan perangkat lunak - perangkat lunak yang tertanam pada perangkat keras. Hal ini mengacu pada perangkat lunak yang disimpan dalam memori non-volatile pada perangkat keras. Contoh EEPROM dan Flash memory yang disematkan ke dalam perangkat keras, ketika mereka digunakan untuk menyimpan kode yang dijalankan oleh perangkat itu sendiri.
It's menjadi lebih umum dalam beberapa jenis perangkat keras untuk "firmware" untuk disimpan dalam perangkat lunak driver dan dimuat ke perangkat ketika itu's boot/dijalankan, bukan meninggalkan secara permanen pada perangkat. It's bukan masalah besar saat ini, misalnya, untuk menyimpan beberapa ratus KB firmware kode dalam sebuah driver perangkat lunak dimuat ke host OS, dan untuk mengirim ke perangkat seperti itu's dijalankan oleh pengemudi.
Hal ini masih sering disebut sebagai "firmware" meskipun tergantung pada definisi dari firmware yang anda terima, anda mungkin secara teknis tidak mempertimbangkan firmware karena bukan penduduk pada hardware (jika anda melepaskan perangkat keras dan memasukkannya ke dalam sistem lain, itu tidak't mempertahankan bahwa versi "firmware").
Microcode adalah subset dari kedua jenis "firmware". Microcode bukan istilah generik untuk semua "firmware" yang dimuat ke perangkat boot. Sebaliknya, it's khusus untuk Cpu, di mana microcode pada dasarnya bentuk-bentuk terjemahan lapisan antara tingkat yang lebih tinggi CPU standar petunjuk dan yang lebih rendah-tingkat operasi khusus untuk CPU. Hal ini dimuat ke CPU boot, oleh BIOS, tapi bisa diganti kemudian pada tahap booting dengan OS juga.
Pembaruan microcode dapat memungkinkan CPU's tingkat rendah perilaku yang akan dimodifikasi untuk bekerja di sekitar tertentu belum ditemukan bug, tanpa perlu mengganti CPU hardware. Microcode biasanya mengandung paling efisien pemetaan dari yang lebih tinggi ke tingkat yang lebih rendah petunjuk mungkin untuk yang terbaik kecepatan dan efisiensi energi sehingga kadang-kadang ketika perubahan untuk microcode diperlukan untuk memperbaiki beberapa bug, hal ini dapat mengakibatkan penurunan kinerja.
Perhatikan bahwa Krisis (kerentanan yang mempengaruhi hanya Intel chip) yang tidak bisa diperbaiki dengan microcode update sendirian dan membutuhkan perubahan inti fungsi OS, yang dapat mengurangi kinerja lebih lanjut. Spectre (kerentanan yang mempengaruhi Intel, AMD dan ARM chip) mungkin dapat bekerja di sekitar dengan microcode update sendiri.
Untuk menjawab beberapa pertanyaan-pertanyaan spesifik anda karena anda edit:
Perhatikan bahwa seperti yang saya bahas di atas itu isn't yang disimpan di CPU sementara itu's off tapi dimuat setiap kali anda boot jadi dalam arti itu doesn't bekerja seperti tradisional firmware. Namun, banyak perangkat keras ini sekarang dan masih disebut "firmware" jadi menyebutnya firmware dapat diterima.
Istilah "microcode" biasanya hanya digunakan untuk main Cpu dan kartu grafis atau perangkat keras lain, meskipun orang lain perangkat mungkin memiliki kode dimuat ke mereka dengan cara yang sama.
https://wiki.debian.org/Microcode
Pengendali CPU
Prosesor microcode ini mirip dengan prosesor firmware. Kernel dapat memperbarui prosesor's firmware tanpa perlu untuk meng-update melalui BIOS update. Pembaruan pengendali yang disimpan pada memori volatile, sehingga BIOS/UEFI atau update kernel diintegrasikan pada setiap boot.
Prosesor dari Intel dan AMD mungkin perlu update ke mereka microcode untuk beroperasi dengan benar. Update ini memperbaiki bug/kesalahan yang dapat menyebabkan apa-apa dari salah pengolahan, untuk kode dan data korupsi, dan sistem penguncian.
BIOS (atau UEFI) update CPU microcode selama boot, namun sebagian dari waktu yang baik motherboard vendor won't masalah yang sering BIOS/UEFI update, atau pengguna tidak't menginstal pembaruan tersebut. Untuk alasan ini, sistem prosesor ini kemungkinan akan berjalan dengan usang terfokus pada sejumlah sistem.
Contoh:
https://www.win-raid.com/t3355f47-Intel-AMD-amp-VIA-CPU-Microcode-Repositories.html
Nah, Intel "microcode update" sebenarnya "firmware" update dalam arti bahwa mereka memperbarui lebih banyak daripada hanya terfokus terjemahan unit prosesor.
Ini bersatu prosesor paket update yang kita sebut "microcode update" untuk Intel juga update lainnya on-die mikrokontroler (seperti PMU dan manajemen daya inti) serta beberapa parameter tabel yang berbeda untuk di-mati prosesor subsistem-subsistem. Mereka agak kompleks.
Informasi ini tersedia di beberapa Intel paten yang berkaitan dengan microcode dan pembaruan microcode.
Saya pikir istilah "microcode" terutama mengacu kepada apa yang dilakukan kode tersebut (itu mengeksekusi tingkat rendah petunjuk menggunakan bahkan lebih rendah-tingkat petunjuk), sementara istilah "firmware" mengacu pada bagaimana itu disimpan dan dikelola (kurang mudah diperbarui dari perangkat lunak, lebih mudah diperbarui dari perangkat keras). Dalam arti bahwa itu's bukan seperti perbedaan antara "aplikasi" dan "file JAR" - program yang sama mungkin baik, tetapi anda melihat dari dua perspektif yang berbeda.
Kebetulan, ide diintegrasikan kembali ke Maurice Wilkes pada tahun 1951, beberapa dekade sebelum komputer prosesor yang tertanam di silicon.
[NB: jawaban ini khusus ditujukan ke alamat baru-baru ini mengedit dan tidak sebaliknya menambah beberapa suara jawaban yang telah diposting.] Jadi, untuk mengulangi: microcode (setidaknya untuk pendekatan pertama) adalah jenis tertentu dari firmware.
"Microcode" dalam konteks ini adalah pemasaran lebih dari "prosesor firmware." Nah, itu's tidak pemasaran. Pemasaran akan menyebutnya XBoost Pro(TM) atau sesuatu. Sebaliknya, itu's istilah teknik; jika anda desain Cpu, perbedaan antara microcode dan CPU's firmware lain (dan jenis firmware yang khas untuk perangkat lain) yang penting untuk anda. Jika tidak, mungkin isn't. Jika anda desain motherboard atau menulis sistem operasi, anda mungkin menggunakan "diintegrasikan update" sebagai singkatan untuk yang lebih berat dan kurang akrab "CPU update firmware". Kebanyakan CPU update firmware terutama mempengaruhi diintegrasikan, sehingga's cukup dekat untuk hal yang sama. Anda mungkin tidak tahu perbedaan, tapi anda don't perlu perawatan tentang hal itu. Pengguna akhir doesn't perlu tahu atau peduli tentang perbedaan, dan di dunia yang ideal tidak akan pernah mendengar kata "microcode" sama sekali. I'm menebak itu datang ke perhatian anda dalam liputan pers baru-baru spekulatif eksekusi kerentanan, meskipun anda mungkin juga telah mendengar ini sebelumnya dalam konteks yang membuatnya lebih jelas bahwa anda tidak't perlu perawatan. Kerentanan ini dirilis lebih awal dari yang direncanakan yang dapat mengakibatkan pemberitaan pers yang kurang dikuratori dari itu mungkin telah. Dari end user's point of view, anda perlu menginstal pembaruan BIOS, update sistem operasi, dan dalam beberapa kasus, pembaruan aplikasi; anda perlu tidak tahu dan tidak peduli yang jika ini termasuk baru microcode.
Jadi, bahkan menyadari bahwa anda mungkin don't perlu tahu atau peduli, anda mungkin masih akan tertarik keluar dari rasa ingin tahu murni: bagaimana anda bisa pergi tentang membedakan microcode dari firmware? Nah, hal pertama yang harus disadari adalah bahwa ada isn't selalu tunggal keras dan cepat definition, lebih dari Bleggs dan Udik situasi. Namun, ada beberapa hal yang dapat kita katakan tentang microcode:
- Microcode umumnya berjalan di dalam CPU, bukan pada CPU. Yang's tingkat tinggi melihat.
- Arsitektur microcode biasanya terlihat sangat berbeda dengan arsitektur biasa kode, seperti biasa firmware. Hal ini mungkin akan sangat paralel, dan dapat dilaksanakan lebih dekat dengan perangkat keras. Beberapa ada jawaban (termasuk jawaban anda sendiri) membahas ini, meskipun perlu dicatat bahwa rincian dapat bervariasi, tergantung pada desain CPU.
- Meskipun peralatan ini sering dirancang untuk berjalan hanya dengan firmware yang disediakan oleh produsen, adalah tidak terlalu jarang untuk pihak ketiga firmware yang akan digunakan - meskipun itu mungkin akan membatalkan garansi! Pihak ketiga microcode jauh lebih jarang, meskipun saya percaya bahwa di zaman kuno (I'm berbicara tentang ketika CPU adalah tentang ukuran breadbox) beberapa pengguna akhir akan mengubah diintegrasikan dalam Cpu. Sejauh yang saya'm sadar, ini isn't mungkin pada jenis Cpu yang digunakan di Pc.
Microcode biasanya diterjemahkan atau membantu untuk menerapkan publik set instruksi arsitektur, yaitu, menjalankan kode mesin yang sistem operasi desainer dan programmer aplikasi menggunakan. Lebih lanjut tentang ini di bagian berikutnya.
"Eksekusi vs data" banyak jawaban yang menggunakan paradigma ini Di membingungkan dengan cara yang berbeda, aku takut, tapi aku'll alamat komentar saya sendiri. Bagian ini juga berfungsi untuk memperluas terakhir bullet point di atas. Tujuan di sini adalah untuk mencoba untuk membedakan antara pekerjaan yang satu CPU adalah melakukan (dicapai oleh kombinasi dari hardware dan microcode) dan pekerjaan yang khas perangkat melakukan (dicapai oleh kombinasi dari hardware dan firmware). I'm akan memilih SATA hard disk drive. Drive SATA mengikuti instruksi dari komputer yang berada di sepanjang garis "membaca data dari sektor 5,123" dan "menulis data ke sektor 1,321". Drive's firmware adalah yang bertanggung jawab untuk membuat hardware yang membuat hal ini terjadi, dan hal ini biasanya cukup biasa kode yang berjalan pada aplikasi yang tertanam CPU dari beberapa macam. Drive's petunjuk tiba secara berurutan, meskipun mereka mungkin tidak akan diproses dalam urutan di mana mereka tiba. Petunjuk ini tidak't program, mereka mengirim oleh program yang berjalan pada CPU utama. Secara khusus tidak ada aliran kontrol, yaitu, tidak ada instruksi untuk memberitahu drive SATA yang petunjuk untuk menjalankan berikutnya. CPU bertugas komputer. Setelah selesai inisialisasi berjalan petunjuk ("kode mesin") yang disediakan oleh motherboard (BIOS, jenis lain dari firmware) yang langsung untuk menjalankan kode mesin yang disediakan oleh sistem operasi yang mengarahkan untuk menjalankan kode mesin yang disediakan oleh vendor aplikasi. CPU itu sendiri mengambil kode mesin dari EEPROM (dalam kasus BIOS) atau RAM (dalam kasus sistem operasi dan aplikasi). Secara khusus, kode mesin yang memiliki aliran kontrol: mesin kode ini memberitahu CPU mesin apa kode untuk melakukan berikutnya. Anda dapat loop di atas mesin yang sama kode yang berulang-ulang, anda dapat menjalankan bit yang berbeda dari kode tergantung pada data kode ini kerja on - petunjuk di perangkat antarmuka bahasa seperti SATA kode dapat melakukan satu set terbatas dari tugas-tugas sederhana, tapi kode mesin yang dapat melakukan apapun**. (Lihat juga Turing Kelengkapan.) Kita bisa menulis ulang final bullet point di atas sebagai: microcode biasanya menerapkan Turing Lengkap bahasa; biasa firmware biasanya doesn't.
Apa artinya untuk mengatakan "hardware instruksi ditafsirkan" dengan microcode. Benar, tetapi mungkin membingungkan; yang penting adalah perbedaan antara kode mesin, yang memiliki aliran kontrol dan Turing Lengkap, dan instruksi yang didefinisikan oleh perangkat interface seperti SATA, yang doesn't dan isn't.
Tidak "microcode" berlaku untuk kode yang berjalan pada kartu suara Tidak, kartu suara menerima instruksi, bukan kode, seperti hard disk SATA. Petunjuk mungkin seperti "bermain tajam" atau "menafsirkan data ini sebagai gelombang dan bermain". Masih sangat sederhana. dan kartu video (Gpu)? Kuno kartu video (orang-orang tanpa Gpu) yang sama seperti hard disk SATA. Petunjuk seperti "set pixel ini untuk warna ini" atau "menulis untuk posisi ini". ... Gpu yang rumit dan duduk di suatu tempat antara dua dunia I've berusaha untuk menggambarkan di atas. Hal ini mungkin yang paling sederhana untuk menganggap mereka sebagai sebuah komputer khusus yang duduk di dalam komputer utama, salah satu yang memiliki Cpu. It's benar bahwa perangkat seperti drive SATA juga telah tertanam Cpu, tetapi perbedaannya adalah bahwa CPU tertanam di drive SATA hanya menjalankan kode yang disediakan oleh drive produsen, sedangkan Gpu juga menjalankan kode yang disediakan oleh sistem operasi dan/atau vendor aplikasi. Benar-benar ini adalah seluruh pertanyaan yang terpisah.
TL;DR: microcode adalah jenis tertentu dari firmware, yang membantu perangkat keras untuk melaksanakan Turing Complete set instruksi.
"Microcode" adalah istilah asli, dan disebut instruksi yang digunakan untuk mengimplementasikan aplikasi penerjemah untuk prosesor's "semua" set instruksi.
Tapi seiring waktu, dengan banyak variasi di dalam pelaksanaan skema, perbedaan, seperti itu, ada yang lebih samar-samar. Pertama ada horizontal vs vertikal microcode, maka berbagai skema untuk menulis "microcode" (untuk melaksanakan, mengatakan, I/O instruksi) di "main" processor set instruksi. Kemudian ada kebutuhan untuk membedakan antara kode yang mudah dimuat melalui program biasa "run" operasi, dibandingkan dengan kode (untuk BIOS, misalnya) yang disimpan dalam ROM atau beberapa lainnya yang dilindungi dan relatif abadi penyimpanan. Dengan demikian istilah "firmware" diciptakan untuk merujuk ke petunjuk ini yang entah dibuat lebih gigih (dan kurang dapat diakses untuk pengguna modifikasi) dalam penyimpanan.
Tapi hal-hal telah berubah dan memutar berkali-kali sejak pertama ini perbedaan-perbedaan yang dibuat, dan lagi istilah yang hanya dapat ditentukan dengan presisi hanya diberikan prosesor dan OS lingkungan.
Firmware biasanya mengacu pada kode untuk perangkat yang berisi CPU tidak CPU itu sendiri misalnya firmware untuk ponsel android.
Microcode adalah terjemahan lapisan antara complex instruction set (misalnya 486, 686, AMD-64 dll.) dan tingkat yang lebih rendah petunjuk bahwa pembuat chip desain silikon untuk. Sehingga sejumlah instruksi dalam CPU set instruksi tidak dilaksanakan di silicon tetapi diterjemahkan melalui diintegrasikan ke dalam beberapa instruksi yang dilaksanakan di silicon.
Microcode ("control store") adalah data yang berada di atsiri atau nonvolatile memory--umumnya agak kecil tapi sangat luas memori, dan data output sinyal kabel ke sinyal kontrol input paralel hardware unit-unit fungsional, kontrol acak logika, dll. Microcode memori's alamat input yang disediakan oleh sebuah mesin negara yang langkah-langkah melalui kata-kata memori ("microprogram instruksi") pada suatu waktu, untuk secara efektif urutan sinyal kontrol dari satu atau banyak perangkat keras blok. Kali ini multiplexes hardware dan memungkinkan operasi kompleks untuk dilaksanakan dengan kurang signifikan acak logika.
Di modern mikroprosesor mungkin ada hirarki microcode/urutan unit-unit yang diperlukan untuk abstrak fisik silicon mikroarsitektur yang lebih umum arsitektur keluarga dengan umum "kode mesin" antarmuka. Sebagai contoh mungkin ada beberapa lapisan microcode/sequencing untuk melaksanakan instruksi decoder dan floating point unit.
Firmware dalam arti tradisional adalah setiap perangkat lunak/data yang berada dalam memori non-volatile, yang diharapkan akan jarang atau tidak pernah berubah. Ini langsung kontras perangkat lunak yang disimpan dalam atau lebih tepatnya ditulis dan dijalankan dari sistem memori yang terus berubah. Diintegrasikan secara khusus mengacu pada data yang mewakili sebuah microprogram untuk mengendalikan urutan dari perangkat keras.
Microcode dapat dilaksanakan di firmware/firmware mungkin berisi microcode, tetapi mereka tidak sama.
I'll jawaban ini sendiri menggunakan hanya digunakan-dalam konteks ini pdf.
"Biasanya, microcode patch upload ke CPU oleh motherboard firmware (misalnya, BIOS atau UEFI) atau sistem operasi pada awal proses boot."
IDU memainkan peran sentral dalam unit kontrol dan menghasilkan sinyal kontrol berdasarkan isi dari instruksi daftarkan.
Makro-instruksi satu instruksi yang dikirim ke IDU yang akan diterjemahkan, dapat kembali setiap jumlah Mikro-petunjuk.
Mikro-instruksi satu precomputed "control word", semua negara dan instruksi untuk mengeksekusi untuk satu siklus clock. Dikirim ke CPU untuk menghasilkan sinyal kontrol.
Jadi dalam konteks ini, anda'd pembaruan microcode dengan firmware. Anda akan mengirim makro-petunjuk untuk microcoded IDU untuk menyelesaikan makro-instruksi ke dalam "mikro-instruksi" untuk eksekusi di CPU, yang mengubahnya menjadi sinyal kontrol.
Microcode adalah data, tapi pembaruan microcode dilakukan melalui firmware. Dan yang membingungkan karena anda're berbicara tentang apa yang pada dasarnya jumlah internal lookup table, it's tentu juga dirinya sendiri firmware dalam hal itu's pada dasarnya tersimpan pada chip dan digunakan dalam eksekusi aliran chip. Saya pikir anda bisa membuat argumen bahwa General MIDI, hardware PostScript, dan sinyal kontrol untuk terminal bodoh juga ditafsirkan dalam arti yang sama, hardware, dan yang sesuatu mengambil instruksi dan akhirnya menghasilkan "sinyal kontrol" dalam beberapa jenis proses penafsiran.
Tampaknya kita memiliki nama khusus untuk proses-proses dan komponen-komponen dalam CPU: "IDU" pada CPU, dan nama tertentu input tabel IDU mempekerjakan yang memegang semua "microinstructions": "microcode." informasi tentang proses yang proprietary dan tertutup. Saya akan menganggap itu's analog ke teknologi lainnya dari modem (dengan ATDT dan sejenisnya pada modem Hayes), untuk MIDI kartu tapi kita don't nama tertentu lookup table "microcode", dan sebaliknya menggunakan istilah "firmware" untuk proses flashing dan seluruh muatan yang tersimpan pada chip.
Firmware adalah kode yang dapat ditempatkan dalam ROM atau memori non-volatile.
Asli dan tujuan utama dari firmware ini adalah untuk berada di sana ketika CPU dimulai, sehingga memiliki kode untuk mengeksekusi untuk start atau boot dengan sistem CPU adalah bagian dari. Dalam kasus Pc, firmware juga digunakan untuk menyediakan layanan untuk menjalankan sistem operasi dan juga memegang kode untuk embedded controller yang mengontrol penggemar, power, dan beberapa hal lainnya, dan kode untuk ME/PSP yang berjalan di latar belakang.
Perangkat periferal yang mengambil firmware, seperti hard drive, perangkat USB, dll. telah tertanam CPU.
Microcode bukan kode yang dapat dijalankan, tetapi kode yang digunakan oleh fasilitas internal perangkat.
It's dimuat ke Intel atau AMD Cpu dengan WRMSR instruksi. Memuat firmware ke perangkat melibatkan pemrograman ROM atau flash media, atau mengandalkan kecil loader program yang akan hadir di perangkat untuk menerima firmware.
Firmware dan pembaruan microcode berada dalam kategori yang sama - hal yang perlu anda lakukan untuk mendapatkan perangkat keras bekerja dan mungkin perlu memperbarui dari waktu ke waktu - tetapi mereka adalah hal yang sangat berbeda.
Kompleks petunjuk di banyak Cpu tidak langsung kabel di hardware, tetapi "dieksekusi" oleh CPU yang lebih kecil seperti fasilitas utama CPU. Microcode kontrol operasi ini. Ini kembali ke setidaknya Motorola 68000 yang memiliki "MicroROM" mengandung microcode.
Tidak ada yang lain dari Intel atau prosesor AMD tahu apa yang microcode benar-benar kontrol atau tidak, karena mereka tidak merilis rincian. Ada upaya untuk hack. Referensi.
Praktis, microcode update pada dasarnya digunakan untuk menonaktifkan instruksi yang menyebabkan masalah pada model yang dikenal/steppings Cpu, dan yang terbaru Cpu dari Intel sering memerlukan setidaknya satu diintegrasikan update sebelum mereka berfungsi secara andal.
Beberapa perspektif tentang apa pengendali CPU benar-benar bisa melakukan/sebenarnya mungkin bisa diperoleh jika anda membaca tentang 6502 PLA decode ROM - 6502 lebih tua 8-bit CPU dan instruksi disekuensing/dikendalikan oleh internal PLA. PLA akan mengatakan pada dasarnya apa yang bagian dari chip yang terlibat pada setiap langkah dari setiap instruksi (6502 petunjuk berkisar dari 2 sampai 7 siklus). Ini adalah jauh, jauh sebelum hal-hal seperti caching, arsitektur superscalar, prediksi cabang, dll. Tidak yakin jika diintegrasikan pada Cpu modern akan mengendalikan sesuatu seperti itu PLA.
I've mengambil kursus di dasar ISA desain, terutama dalam penelitian dan desain RISC prosesor dimodelkan dari MIPS konsep. Berikut ini's apa yang saya telah datang untuk mengingat
Untuk pemahaman saya, dasar blok prosesor seperti register, ALUs, multiplexer dan modul memori memerlukan sinyal tertentu bagi mereka untuk melakukan pekerjaan mereka. Anda akan memanggil sinyal-sinyal anda "pernyataan" sinyal, karena mereka adalah sinyal yang diperlukan untuk mengoperasikan blok tersebut. Cpu pada dasarnya, adalah spaghetti blok ALUs, modul memori, register dan perangkat keras lainnya. Makna masing-masing CPU harus menegaskan urutan tertentu dari sinyal kontrol untuk melakukan pekerjaan mereka (maksud saya petunjuk dasar seperti ANDI, ORI, JMP, BNE, BEQ, dll.). Saya memiliki perasaan campur aduk tentang hal itu ketika saya harus menegaskan sinyal diri sendiri (benar-benar pergi melalui semua instruksi MIPS) selama pengujian dan debugging dari sebuah set instruksi sejak kurikulum's kecepatan tidak't mengajarkan saya apa-apa tentang unit kontrol pada waktu itu.
Di sisi lain, bahasa assembler yang bermuara pada opcode dan operand mereka dalam kata instruksi (pada dasarnya lebar data bus). Dalam hal MIPS, pertama 6 bit instruksi anda kata anda opcode. Oleh belaka matematika pemeriksaan sendirian, anda tidak "menyatakan" anda ALU, register, memori, muxes.. pada dasarnya seluruh perangkat keras anda dengan 6 bit saja.
Tidak, kecuali anda memiliki... INSTRUKSI DECODER. Instruksi decoder pada dasarnya mengambil opcode dan menghasilkan SEMUA "pernyataan" sinyal-sinyal yang diperlukan untuk mengoperasikan perangkat keras anda. Namun, instruksi decoder berbeda dalam pelaksanaan antara arsitektur dan dalam beberapa kasus, ini dapat diprogram. Microcode mempengaruhi diprogram bagian dari instruksi decoder.
Aku datang untuk percaya bahwa firmware adalah istilah umum untuk setiap informasi yang tertanam dalam perangkat keras. Dalam beberapa kasus hal ini juga akan merujuk ke microcode sebagai yang bitstream dapat disandikan dan disimpan dalam perangkat keras seperti EEPROM dan flash memory. Namun, itu adalah kode dikompilasi, asm, atau bahkan VHDL/Verilog bitstream digunakan dalam FPGAs. Microcode bagi saya tampaknya seperti semantik digunakan untuk menentukan "pernyataan sinyal" dalam prosesor pilihan.