ScholarGate
Asisten

Format dan Pengodean Instruksi

Format instruksi mendefinisikan bagaimana setiap instruksi mesin disusun dalam biner — opcode, bidang register, dan nilai-nilai langsung — menentukan seberapa ringkas program disimpan dan seberapa mudah perangkat keras dapat mendekodenya.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Format instruksi adalah susunan bit field yang terdefinisi dalam sebuah instruksi mesin yang mengodekan operasi dan operandnya, dan pengodean instruksi adalah skema yang memetakan instruksi ke pola biner ini.

Scope

Topik ini mencakup representasi biner instruksi: pengodean panjang tetap versus panjang variabel, bidang-bidang yang menentukan operasi, register sumber dan tujuan, serta nilai-nilai langsung, dan pertukaran antara kepadatan kode dan kesederhanaan dekode. Ini mencakup keluarga format representatif seperti tipe R/I/S/B/U/J RISC-V. Ini tidak termasuk pilihan mode pengalamatan yang digunakan operan (mode pengalamatan) dan filosofi RISC/CISC yang lebih luas (RISC dan CISC).

Core questions

  • Bidang apa saja yang harus terkandung dalam pengodean instruksi untuk menentukan suatu operasi dan operandnya?
  • Bagaimana pengodean panjang tetap dan panjang variabel menukar kesederhanaan dekode dengan kepadatan kode?
  • Bagaimana nilai-nilai langsung dan konstanta besar dikodekan dalam bit instruksi yang terbatas?
  • Bagaimana pengodean yang teratur menyederhanakan dekode instruksi yang di-pipeline?

Key concepts

  • bidang opcode
  • bidang penentu register
  • bidang immediate
  • pengodean panjang tetap vs panjang variabel
  • kepadatan kode
  • keteraturan dekode
  • keluarga format instruksi (R/I/S/B/U/J)

Mechanisms

Setiap instruksi dibagi menjadi bit field: sebuah opcode memilih operasi, bit field register menamai operand, dan bit field immediate menampung konstanta atau offset alamat. Format panjang tetap (seperti pada RISC-V) menjaga semua instruksi memiliki lebar yang sama dan menempatkan bit field secara konsisten sehingga dekode menjadi sederhana dan cepat; format panjang variabel (seperti pada x86) mengemas instruksi secara rapat untuk kepadatan dengan biaya dekode yang lebih kompleks.

Clinical relevance

Pilihan pengodean berdampak pada seluruh prosesor: format panjang tetap yang teratur memungkinkan dekoder sederhana dan cepat yang membuat pipelining dalam menjadi praktis, sementara format panjang variabel yang padat mengurangi lalu lintas memori instruksi. Kompiler dan assembler harus menargetkan format ini secara tepat, dan ekstensi set instruksi harus sesuai dalam ruang pengodean yang ada.

History

Set instruksi awal menggunakan pengodean yang tidak teratur dan disesuaikan secara manual untuk menghemat memori yang langka. Gerakan RISC pada tahun 1980-an mendukung format panjang tetap yang seragam untuk menyederhanakan dekode dan pipelining, sementara set CISC seperti x86 mempertahankan pengodean panjang variabel yang padat. ISA terbuka modern seperti RISC-V mengkodifikasi keluarga format yang bersih dan dapat diperluas.

Key figures

  • David A. Patterson
  • John L. Hennessy

Related topics

Seminal works

  • patterson2020
  • hennessy2019

Frequently asked questions

Mengapa set instruksi RISC menggunakan pengodean panjang tetap?
Instruksi panjang tetap memungkinkan prosesor menemukan instruksi berikutnya dan mengekstrak bidang-bidangnya tanpa harus mendekode panjang terlebih dahulu, yang menyederhanakan dan mempercepat tahap pengambilan dan dekode serta membuat pipelining dalam jauh lebih mudah dibandingkan dengan pengodean panjang variabel.
Bagaimana konstanta besar ditangani jika instruksi hanya memiliki lebar bit yang tetap?
Bidang immediate terbatas, sehingga konstanta besar dibangun secara bertahap — misalnya, instruksi load-upper-immediate mengatur bit tinggi dan instruksi berikutnya menambahkan bit rendah — atau konstanta ditempatkan di memori dan dimuat.

Methods for this concept

Related concepts