Apa itu Instruction Set?
Instruction set adalah sekumpulan perintah dalam bahasa mesin yang digunakan oleh unit pemrosesan pusat (CPU). Istilah ini bisa merujuk pada semua instruksi yang mungkin dimiliki oleh sebuah CPU atau hanya sebagian instruksi tertentu untuk meningkatkan performa dalam situasi tertentu.
Setiap CPU memiliki instruction set yang memungkinkan perintah mengendalikan transistor yang relevan. Instruksi-instruksi ini memberi tahu CPU tugas apa yang harus dilakukan. Beberapa instruksi sederhana seperti read, write, dan move bertugas mengarahkan data ke berbagai elemen perangkat keras.
Instruksi dalam CPU terdiri dari sejumlah bit. Misalnya, CPU mungkin memiliki instruksi sepanjang 8 bit, di mana 4 bit pertama merupakan kode operasi (opcode) yang memberi tahu komputer apa yang harus dilakukan, sedangkan 4 bit berikutnya adalah operand yang menunjukkan data yang harus digunakan.
Panjang sebuah instruction set bisa bervariasi, mulai dari 4 bit hingga ratusan bit. Beberapa arsitektur instruction set (ISA) memiliki panjang instruksi yang bervariasi, sementara yang lain memiliki panjang instruksi tetap.
Apa saja jenis-jenis Instruction Set?
Berikut beberapa jenis instruction set yang umum digunakan:
- Complex Instruction Set Computer (CISC). Prosesor CISC memiliki lapisan microcode atau microprogramming tambahan, di mana instruksi bertindak sebagai program kecil. Instruksi yang dapat diprogram disimpan dalam memori cepat dan bisa diperbarui. CISC memiliki lebih banyak instruksi dibandingkan jenis instruction set lainnya. Satu instruksi bisa memicu beberapa aksi sekaligus, misalnya perintah add yang secara otomatis meluncurkan beberapa instruksi load dan store ke memori.
- Reduced Instruction Set Computer (RISC). Arsitektur RISC menggunakan kontrol berbasis perangkat keras tanpa microcode, tetapi memiliki set instruksi dasar yang lebih besar. RISC menggunakan instruction set yang lebih kecil dan lebih ringkas dengan format instruksi tetap. Prosesor RISC dirancang untuk bekerja lebih cepat dan efisien.
- Enhancement Instruction Set. Jenis instruksi ini lebih sering dikenal karena digunakan dalam pemasaran CPU. Contohnya, prosesor Intel Pentium 166 MHz dengan teknologi MultiMedia Extensions (MMX) yang diperkenalkan pada tahun 1996. Teknologi ini meningkatkan performa multimedia pada CPU Intel dengan instruksi tambahan yang lebih spesifik.
Mengapa Instruction Set Penting?
ISA sangat penting untuk membangun komputer yang cepat dan efisien karena mengoptimalkan penggunaan memori dan sumber daya pemrosesan. ISA menentukan berbagai kemampuan yang didukung, seperti:
- Instruksi
- Jenis data
- Register prosesor
- Perangkat keras memori utama
- Model input/output
- Mode addressing
Programmer dan insinyur sistem mengandalkan ISA untuk memahami bagaimana cara memprogram berbagai aktivitas.
Instruction set juga bekerja bersama dengan komponen penting lainnya dalam komputer, seperti compiler dan interpreter. Kedua komponen ini menerjemahkan kode pemrograman tingkat tinggi menjadi kode mesin yang bisa dipahami oleh prosesor.
Anggap saja ISA ini seperti pintu gerbang bagi programmer untuk memahami cara kerja komputer secara mendalam. ISA sangat krusial dalam pengembangan aplikasi, bahasa assembly, dan compiler. ISA menetapkan aturan untuk antarmuka perangkat keras dan perangkat lunak, menentukan apa yang bisa dilakukan oleh CPU, serta memastikan kompatibilitas sistem.
Cara Menggunakan Perintah Instruction Set
Berikut adalah tiga cara utama penggunaan perintah dalam instruction set:
- Pengelolaan data dan memori. Perintah digunakan untuk mengatur register ke nilai tertentu, menyalin data dari memori ke register (atau sebaliknya), serta membaca dan menulis data.
- Operasi aritmatika dan logika. Termasuk perintah seperti add, subtract, multiply, divide, dan compare. Perintah compare misalnya, membandingkan nilai di dua register untuk menentukan apakah satu lebih besar atau lebih kecil dari yang lain.
- Kontrol alur eksekusi. Contohnya adalah perintah branch, yang mengarahkan sistem untuk berpindah ke lokasi lain dan mengeksekusi perintah di sana. Perintah lain seperti jump digunakan untuk langsung berpindah ke alamat memori tertentu.