Set instruksi (instruction
set) adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh sebuah
CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code),
karna aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly,
untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih
mudah dimengerti oleh manusia.
Sebuah instruksi terdiri
dari sebuah opcode, biasanya bersama dengan beberapa informasi tambahan seperti
darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan. Subyek
umum untuk menspesifikasikan di mana operand-operand berada (yaitu,
alamat-alamatnya) disebut pengalamatan
Pada
beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin
yang lain mungkin terdapat banyak panjang berbeda. Instruksi-instruksi mungkin
lebih pendek dari, memiliki panjang yang sama seperti, atau lebih panjang dari
panjang word. Membuat semua instruksi memiliki panjang yang sama lebih muda
dilakukan dan membuat pengkodean lebih mudah tetapi sering memboroskan ruang,
karena semua instruksi dengan demikian harus sama panjang seperti instruksi
yang paling panjang.
Di
dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:
1. Operation Code (Opcode)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
2. Source Operand Reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
3. Result Operand Reference
Merupakan hasil atau keluaran operasi.
4. Next Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi
Format Instruksi
[opcode] [alamat]
* Kode operasi (opcode) direpresentasikan dengan singkatan-singkatan yang disebut mnemonic.
* Mnemonic mengindikasikan suatu operasi bagi CPU.
* Contoh mnemonic:
- ADD = penambahan
- SUB = subtract (pengurangan)
- LOAD = muatkan data ke memori
*Contoh representasi operand secara simbolik:
- ADD X, Y
artinya: tambahkan nilai yang berada pada lokasi Y dengan isi register X dan simpan hasilnya di register X.
*Programmer dapat menuliskan program bahasa mesin dalam bentuk simbolik.
*Setiap opcode simbolik memiliki representasi biner yang tetap dan programmer dapat menetapkan lokasi masing-masing operand.
a. jenis-jenis struktur.
[opcode] [alamat]
* Kode operasi (opcode) direpresentasikan dengan singkatan-singkatan yang disebut mnemonic.
* Mnemonic mengindikasikan suatu operasi bagi CPU.
* Contoh mnemonic:
- ADD = penambahan
- SUB = subtract (pengurangan)
- LOAD = muatkan data ke memori
*Contoh representasi operand secara simbolik:
- ADD X, Y
artinya: tambahkan nilai yang berada pada lokasi Y dengan isi register X dan simpan hasilnya di register X.
*Programmer dapat menuliskan program bahasa mesin dalam bentuk simbolik.
*Setiap opcode simbolik memiliki representasi biner yang tetap dan programmer dapat menetapkan lokasi masing-masing operand.
a. jenis-jenis struktur.
1.
Pengolahan data ( data processing)
Meliputi
operasi-operasi aritmetika dan logika. Operasi aritmetika memiliki kemampuan
komputasi untuk pengolahan data numeric. Sedangkan instruksi logika beroperasi
terhadpa bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga
instruksi ini memiliki kemampuanuntuk pengolahan data lain.
2. Perpindahan data ( data movement) berisi instruksi perpindahan data antar register maupun modul I/O untuk dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand yang diperlukan
3. Penyimpanan data ( data storage) berisi instruksi-instruksi penyimpan ke
memori. Instruksi penyimpanan sangat penting dalam operasi komputasi, karena
data tersebut akan digunakan untuk operasi berikutnya, minimal untuk
ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.
4. Kontrol aliran program ( program flow control) berisi instruksi
pengontrolan operasi dan percabangan ke set instruksi lain.
b.
Lokasi Set Instruksi :
Sourcedan result operands dapat berupa salah satu diantara
tiga jenis berikut ini:
1. Main or Virtual Memory
2. CPU Register
3. I/O Device
- Teknik Pengalamatan
Mode pengalamatn Pentium
Pentium dilengkapi bermacam-macam mode pengalamatan untuk memudahkan
bahasa-bahasa tingkat tinggi mengeksekusinya secara efisien.
Macam-macam mode pengalamatanpentium :
·
Mode Immediate
·
Operand berada di dalam intruksi.
·
Operand dapat berupa data byte, word atau doubleword.
·
Mode Operand Register
yaitu operand adalah isi
register.
·
Register 8 bit (AH, BH, CH,
DH, AL, BL, CL, DL)
·
Register 16 bit (AX, BX,
CX, DX, SI, DI, SP, BP)
·
Register 32bit (EAX, EBX,
ECX, ESI, EDI, ESP, EBP)
·
Register 64 bit yang
dibentuk dari register 32 bit secara berpasangan.
Ø Register 8, 16, 32 bit merupakan register untuk penggunaan umum (general
purpose register).
·
Register 14 bit biasanyan
untuk operasi floating point.
·
Register segmen (CS, DS,
ES, SS, FS, GS)
Ø Mode Displacement
·
alamat efektif berisi bagian-bagian intruksin dengan
displacement 8, 16, atu 32 bit.
·
dengan segmentasi, seluruh alamat dalam intruksi
mengacu ke sebuah offset di dalam segmen.
·
dalam Pentium, mode ini digunakan untuk mereferensi
variable-variabel global.
·
Mode Base
·
pengalamatan indirect yang menspesifikasi saru
register 8, 16 atau 32 bit berbasis alamat efektifnya.
- Desain Set Instruksi
Instruksi pelaksanaannya diatur Setiap set
instruksi yang diberikan dapat diimplementasikan dalam berbagai cara. Semua
cara melaksanakan instruksi set yang sama memberikan model pemrograman , dan
mereka semua mampu menjalankan executable biner yang sama. Berbagai cara
menerapkan set instruksi memberikan timbal balik yang berbeda antara biaya,,
konsumsi kinerja daya, ukuran, dll.
Ketika merancang mikroarsitektur prosesor,
insinyur menggunakan blok dari "terprogram" elektronik sirkuit
(sering dirancang secara terpisah) seperti penambah, multiplexer, counter,
register, ALUS dll Beberapa jenis bahasa mentransfer mendaftar yang kemudian
sering digunakan untuk menggambarkan decoding dan urutan setiap instruksi dari
ISA menggunakan mikroarsitektur fisik. Ada dua cara dasar untuk membangun
sebuah unit kontrol untuk melaksanakan deskripsi ini (walaupun banyak desain
menggunakan cara-cara tengah atau kompromi:
1. Desain komputer awal dan beberapa komputer RISC sederhana
"terprogram" instruksi menyelesaikan set decoding dan sekuensing
(seperti sisa mikroarsitektur tersebut).
2. Desain lain menggunakan microcode rutinitas dan / atau tabel untuk
melakukan ini-biasanya seperti pada ROM chip dan / atau Plas (walaupun RAM
terpisah telah digunakan historis).
Ada juga beberapa desain CPU baru yang mengkompilasi set instruksi untuk dapat ditulis RAM atau lampu kilat di dalam CPU (seperti Rekursiv prosesor dan Imsys Cjip ), [2] atau FPGA ( reconfigurable komputasi ). Para Western Digital MCP-1600 adalah contoh yang lebih tua, menggunakan ROM, khusus terpisah untuk microcode.
Ada juga beberapa desain CPU baru yang mengkompilasi set instruksi untuk dapat ditulis RAM atau lampu kilat di dalam CPU (seperti Rekursiv prosesor dan Imsys Cjip ), [2] atau FPGA ( reconfigurable komputasi ). Para Western Digital MCP-1600 adalah contoh yang lebih tua, menggunakan ROM, khusus terpisah untuk microcode.
- Desain Set Instruksi
Desain set
instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek,
diantaranya adalah :
1. kelengkapan set instruksi
2. ortogonalitas (sifat indepedensi instruksi)
3. kompatibilitas :
- source code compatibility
- object code compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :
a. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit
operasinya
b. Data Types : tipe/jenis data yang dapat diolah.
c. Instruction Format : panjangnya, banyaknya alamat, dsb.
d. Register : Banyaknya register yang dapat digunakan .
e.Addressing : Mode pengalamatan untuk operand.
1. kelengkapan set instruksi
2. ortogonalitas (sifat indepedensi instruksi)
3. kompatibilitas :
- source code compatibility
- object code compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :
a. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit
operasinya
b. Data Types : tipe/jenis data yang dapat diolah.
c. Instruction Format : panjangnya, banyaknya alamat, dsb.
d. Register : Banyaknya register yang dapat digunakan .
e.Addressing : Mode pengalamatan untuk operand.
Tidak ada komentar:
Posting Komentar