Pengertian Set
Instruksi
Set instruksi(instruction set) adalah kumpulan perintah atau instruksi dasar
yang dapat dipahami dan dijalankan oleh sebuah unit pemrosesan pusat
(CPU) dari komputer. Instruksi-instruksi ini merupakan perintah yang ditulis
dalam bahasa mesin atau bahasa rakitan (assembly), dan berfungsi untuk
melakukan operasi tertentu seperti:
Operasi aritmetika (penjumlahan, pengurangan, dll),
Operasi logika (AND, OR, NOT),
Pemindahan data (load, store),
Percabangan (jump, branch),
dan lain-lain.
3.
Arsitektur Set Instruksi
Adadua jenis utama arsitektur set instruksi yang digunakan dalam prosesor
RISC (Reduced Instruction Set Computing)
dan CISC (Complex Instruction Set
Computing) adalah dua arsitektur prosesor
dengan pendekatan berbeda dalam
menjalankan instruksi.
RISC (Reduced Instruction Set Computing)
Menggunakan instruksi sederhana
dan terbatas.
Instruksi dieksekusi dalam satu siklus
clock, sehingga lebih cepat dan
efisien.
Memerlukan lebih banyak instruksi
untuk menjalankan tugas kompleks.
Contoh: ARM, MIPS, PowerPC.
CISC (Complex Instruction Set Computing)
Menggunakan instruksi kompleks
yang dapat melakukan beberapa
operasi dalam satu instruksi.
Instruksi bisa memakan beberapa
siklus clock, membuat eksekusi
lebih lambat dibanding RISC.
Lebih sedikit instruksi diperlukan
untuk menjalankan tugas kompleks.
Contoh: Intel x86, AMD.
4.
Diagram Siklus InstruksiInstruction Address Calculation (Perhitungan Alamat Instruksi)
CPU menentukan alamat dari instruksi berikutnya yang akan diambil
dari memori.
Ini biasanya adalah nilai dari Program Counter (PC).
2. Instruction Fetch (Pengambilan Instruksi)
Instruksi diambil dari memori utama (RAM) berdasarkan alamat yang
dihitung pada tahap sebelumnya.
Instruksi ini kemudian dimasukkan ke dalam Instruction Register (IR).
3. Instruction Operation Decoding (Dekode Operasi Instruksi)
CPU menganalisis atau mendekode instruksi untuk memahami tindakan
yang harus dilakukan.
Ini melibatkan pengenalan opcode dan operannya (jika ada).
4. Operand Address Calculation (Perhitungan Alamat Operan)
Jika instruksi memerlukan data dari memori (operand), maka alamat
operand tersebut dihitung terlebih dahulu.
5. Operand Fetch (Pengambilan Operan)
Data operand yang dibutuhkan oleh instruksi diambil dari memori.
6. Data Operation (Operasi Data)
CPU melakukan operasi aritmetika atau logika sesuai dengan instruksi,
seperti penjumlahan, pengurangan, dll.
Jika operasi melibatkan data vektor atau string, mungkin perlu kembali
ke tahap ini beberapa kali.
7. Operand Address Calculation (Perhitungan Alamat Hasil Operasi)
Jika hasil dari operasi harus disimpan ke dalam memori, CPU
menghitung alamat tujuan.
8. Operand Store (Penyimpanan Hasil Operasi)
Hasil dari operasi disimpan ke dalam memori di alamat yang telah
dihitung.
9. Kembali ke Instruction Address Calculation
Setelah instruksi selesai dieksekusi, siklus dimulai kembali dengan
pengambilan instruksi berikutnya.
Tambahan:
Multiple operands: Jika instruksi memerlukan lebih dari satu operand,
maka CPU bisa kembali ke tahap pengambilan operand.
Multiple results: Hasil operasi mungkin perlu disimpan ke lebih dari satu
lokasi.
Return for string or vector data: Untuk data bertipe string atau vektor,
CPU mungkin kembali ke tahap operasi data untuk menangani lebih
banyak data.
5.
Asumsi Set
Instruksi
Contoh SebuahInstruksi yang dapat di ekspresikan dalam bahasa
BASIC atau FORTRAN
X=X+Y
Pernyataan ini menginstruksikan komputer untuk menambahkan nilai yang
tersimpan di Yke nilai yang tersimpan di X dan menyimpan hasilnya di X.
VAriabel X dan Y berkorespondesi dengan lokal 513 dan 514.
Jika diasumsikan set instruksi mesin yang sederhana, maka operasi ini akan
dilakukan dengan tiga buah instruksi:
muatkan sebuah register dengan isi lokasi memori 513
tambahkan isi lokai memori 514 ke register
simpan ini register di lokasi memori 513
6.
Tipe-tipe Operand
Numbers: Integeror fixed point, floating
point, Decimal(BCD)
Addrres
Logika data: bila data berbentuk binary:0
dan 1
Characters: ASSCII, EBCDIC
Operand adalah sebuah objek yang adapada operasi matematika yang dapat
digunakan untuk melakukan operasi
Tipe-tipe Operand diantaranya:
7.
Tipe-tipe Operator
Jenis-jenis Operatoradalah sebagai berikut
Operator Aritmatikaa
Operator yang melakukan operasi aritmatika seperti: +(penjumlahan), -
(mengurangkan), *(mengalikan), /(membagi)
Operator Relational
Operator Untuk menyatakan relasi atau perbandingan antara dua operand
seperti >(lebih Besar), =(lebih besar atau sama),<=(lebih kecil atau sama), ==
(sama), =!(tidak sama).
Operator Logika
Operator untuk merelasasikan operand secara logis seperti &&(and), II (or), !(not)
8.
Tipe-tipe operasi
Dalam perancanganarsitektur komputer, jumlah kode operasi akan sangat
berbeda untuk masing-masing komputer tetapi terdapat kemiripan dalam
jenis operasinya
jenis operasi komputer :
Transfer data
aritmatika
logika
konversi
Input/Output
Transfer control
9.
Format Instruksi
Suatu instruksiterdiri dari beberapa
field yang sesuai dengan elemen
dalam instruksi tersebut. Layout dari
suatu instruksi sering disebut sebagai
Format Instruksi (Instruction Format)
10.
Sebagian besar CPUmerupakan variasi satu,dua,tiga alamat dengan alamat
instruksi berikutnya merupakan implisit(diperoleh dari pencacah program).
Format tiga alamat tidak umum digunakan , kerena bentuk instruksi yang
lebih relatif panjang untuk menampung acuan-acuan tiga alamat
Jumlah alamat
Bentuk dua alamat mengurangi kebutuhan ruangb akan tetapi
menimbulkan kesulitan
Instruksi yang lebih sederhana adalah instruksi satu alamat, agar alamat
ini dapat berfungsi, alamat perllu diimplisitkan
11.
Format Set Instruksi
Format3 Alamat
Menggunakan tiga operand: satu untuk hasil, dua untuk sumber data.
Contoh: ADD R1, R2, R3 (R1 = R2 + R3).
Keuntungan: Ekspresi lebih jelas dan fleksibel.
Kelemahan: Membutuhkan lebih banyak ruang dalam memori.
Format 2 Alamat
Menggunakan dua operand: satu untuk hasil dan salah satu sebagai sumber data.
Contoh: ADD R1, R2 (R1 = R1 + R2).
Keuntungan: Menghemat ruang dibanding format 3 alamat.
Kelemahan: Memerlukan lebih banyak instruksi untuk operasi kompleks.
Format 1 Alamat
Menggunakan satu operand, biasanya bekerja dengan akumulator.
Contoh: ADD R1 (ACC = ACC + R1, dengan ACC sebagai akumulator).
Keuntungan: Menghemat ruang instruksi.
Kelemahan: Memerlukan lebih banyak akses memori untuk menyimpan hasil sementara.
12.
Format 0 Alamat
Tidakmemiliki operand eksplisit, menggunakan stack
(tumpukan) untuk operasi.
Bekerja dengan prinsip LIFO (Last In, First Out), data diambil
dan disimpan dari stack.
Keuntungan:
Menghemat ruang instruksi.
Cocok untuk ekspresi matematika (RPN).
Digunakan dalam mesin berbasis stack (misalnya JVM).
Kelemahan:
Sulit dipahami karena operand tidak eksplisit.
Memerlukan banyak operasi stack (push/pop).
Tidak fleksibel untuk akses langsung ke memori.