Karakteristik Instruksi Mesin
- Instruksi mesin (machine
instruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi
CPU.
- Kumpulan fungsi yang dapat
dieksekusi CPU disebut set instruksi (instruction set) CPU.
- Mempelajari karakteristik
instruksi mesin, meliputi :
- Elemen-elemen instruksi mesin
- Representasi instruksinya
- Jenis-jenis instruksi
- Penggunaan alamat
- Rancangan set instruksi
Elemen
Instruksi Mesin
Untuk dapat
dieksekusi suatu instruksi harus berisi elemen informasi yang diperlukan CPU
secara lengkap dan jelas, antara lain :
- Operation code (Op code)
Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode
biner.
- Source Operand reference
Operasi dapat berasal dari lebih satu sumber. Operand adalah input
operasi.
- Result Operand reference
Merupakan hasil atau keluaran operasi
- Next Instruction reference
Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus
diambil dan dieksekusi.
Operand dari
Operasi
Melihat dari
sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga daerah
berikut ini :
- Memori utama atau memori
virtual
- Register CPU
- Perangkat I/O
Representasi
Instruksi
- Instruksi komputer
direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi beberapa
field.
- Field-field ini diisi oleh
elemen-elemen instruksi yang membawa informasi bagi operasi CPU.
- Layout instruksi dikenal dengan
format instruksi.
Format
Instruksi
- Kode operasi (op code)
direpresentasikan dengan singkatan-singkatan, yang disebut mnemonic.
- Mnemonic mengindikasikan suatu
operasi bagi CPU.
- Contoh mnemonic adalah :
- ADD = penambahan
- SUB = substract (pengurangan)
- LOAD = muatkan data ke memori
Contoh
representasi operand secara simbolik :
- ADD X, Y artinya tambahkan
nilai yang berada pada lokasi Y ke isi register X, dan simpan hasilnya di
register X.
- Programmer dapat menuliskan
program bahasa mesin dalam bentuk simbolik.
- Setiap op code simbolik memiliki
representasi biner yang tetap dan programmer dapat menetapkan lokasi
masing-masing operand.
Jenis -
Jenis Instruksi
Contoh suatu
ekspresi bilangan :
X = X + Y;
X dan Y
berkorespondensi dengan lokasi 513 dan 514.
Pernyataan
dalam bahasa tingkat tinggi tersebut menginstruksikan komputer untuk melakukan
langkah berikut ini :
- Muatkan sebuah register dengan
isi lokasi memori 513.
- Tambahkan isi lokasi memori 514
ke register.
- Simpan isi register ke lokasi
memori 513.
Korelasi
- Terlihat hubungan antara ekspresi
bahasa tingkat tinggi dengan bahasa mesin.
- Dalam bahasa tingkat tinggi,
operasi dinyatakan dalam bentuk aljabar singkat menggunakan variabel.
- Dalam bahasa mesin hal tersebut
diekspresikan dalam operasi perpindahan antar register.
Jenis-Jenis
Instruksi
- Pengolahan data (data
processing),
meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika
memiliki kemampuan komputasi untuk pengolahan data numerik. Sedangkan
instruksi logika beroperasi terhadap bit-bit word sebagai bit, bukannya
sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk
pengolahan data lain.
- 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.
- Penyimpanan data (data
storage),
berisi instruksi-instruksi penyimpanan 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.
- Kontrol aliran program (program
flow control),
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini
berguna untuk pengontrolan status dan mengoperasikan percabangan ke set
instruksi lain.
Jumlah
Alamat
- Jumlah register atau alamat
yang digunakan dalam operasi CPU tergantung format operasi masing-masing
CPU.
- Ada format operasi yang
menggunakan 3, 2, 1 dan 0 register.
- Umumnya yang digunakan adalah 2
register dalam suatu operasi. Desain CPU saat ini telah menggunakan 3
alamat dalam suatu operasi, terutama dalam MIPS (Million Instruction per
Second).
- Alamat per instruksi yang lebih
sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih
sulit mengimplementasikan fungsi-fungsi yang kita inginkan.
- Karena instruksi CPU sederhana
maka rancangan CPU juga lebih sederhana.
- Jumlah bit dan referensi per
instruksi lebih sedikit sehingga fetch dan eksekusi lebih cepat.
- Jumlah instruksi per program
biasanya jauh lebih banyak.
- Pada jumlah alamat per
instruksi banyak, jumlah bit dan referensi instruksi lebih banyak sehingga
waktu eksekusi lebih lama.
- Diperlukan register CPU yang
banyak, namun operasi antar register lebih cepat.
- Lebih mudah mengimplementasikan
fungsi-fungsi yang kita inginkan.
- Jumlah instruksi per program
jauh lebih sedikit.
- Untuk lebih jelas perhatikan
contoh instruksi-instruksi dengan jumlah register berbeda untuk
menyelesaikan persoalan yang sama.
- Contoh penggunaan set instruksi
dengan alamat 1, 2, dan 3 untuk menyelesaikan operasi hitungan.
Y = (A - B)
/ (C + D * E)
Saya akan
mencoba menjelaskan ketiga instruksi di atas.
Untuk
instruksi 3 alamat :
- Pertama, A - B lalu disimpan di
Y.
- Lalu kita mengalikan D dan E
lalu disimpan di register baru yaitu T.
- T tersebut lalu ditambahkan
dengan register C dan disimpan di register T.
- Lalu register Y, yaitu hasil
dari A - B tadi dibagi dengan register T lalu disimpan di register Y.
- Bisa kita lihat,untuk instruksi
3 alamat, setiap instruksi terdiri dari 3 register.
Instruksi 2
alamat :
- Pertama register A dipindahkan
ke Y.
- Register Y dikurangi dengan
register B dan disimpan di register Y. A - B sudah didapatkan, simpan di
register Y.
- Selanjutnya register D
dipindahkan ke register T, lalu register T dikalikan dengan register E dan
disimpan di register T. Singkatnya, D*E itu sama dengan T*E dan disimpan
di register T, cara ini digunakan karena kita memakain instruksi 2 alamat.
- Lalu register T ditambahkan
dengan register C dan disimpan di register T.
- (C + D * E) sudah didapatkan
dan disimpan di register T.
- Lalu terakhir register Y yang
sudah kita dapatkan tadi dibagi dengan register T dan disimpan di register
Y.
- Bisa kita lihat, instruksi 2
alamat memakai 2 instruksi, seperti Y dan A, Y dan B, T dan D, dan
seterusnya.
Instruksi 1
alamat :
- Pada istruksi tentu saja kita
hanya menggunakan 1 instruksi.
- Pertama LOAD D ke AC
(Accumulator).
- Lalu AC dikalikan dengan
register E dan disimpan di AC.
- Register AC lalu ditambahkan
dengan register C dan disimpan di register AC.
- Simpan register AC ke register
Y.
- LOAD lagi register A ke AC.
- Register AC lalu dikurangkan
dengan register B dan disimpan di register AC.
- Lalu register AC dibagi dengan
regiser Y dan disimpan di register AC.
- Simpan register AC ke register
Y.
Spesifikasi instruksi
3 alamat :
- Simbolik : a = b + c.
- Format alamat : hasil, operand
1, operand 2.
- Digunakan dalam arsitektur
MIPS.
- Memerlukan word panjang dalam
suatu instruksi.
Spesifikasi
instruksi 2 alamat :
- Simbolik : a = a + b.
- Satu alamat diisi operand
terlebih dahulu kemudian digunakan untuk menyimpan hasilnya.
- Tidak memerlukan instruksi yang
panjang.
- Jumlah instruksi per program
akan lebih banyak daripada 3 alamat.
- Diperlukan penyimpanan
sementara untuk menyimpan hasil.
Spesifikasi
instruksi 1 alamat :
- Memerlukan alamat implisit
untuk operasi.
- Menggunakan register akumulator
(AC) dan digunakan pada mesin lama.
Spesifikasi
instruksi 0 alamat :
- Seluruh alamat yang digunakan
implisit.
- Digunakan pada organisasi
memori, terutama operasi stack.
Rancangan
Set Instruksi
- Aspek paling menarik dalam
arsitektur komputer adalah perancangan set instruksi, karena rancangan ini
berpengaruh banyak pada aspek lainnya.
- Set instruksi menentukan banyak
fungsi yang harus dilakukan CPU.
- Set instruksi merupakan alat
bagi para pemrogram untuk mengontrol kerja CPU.
- Pertimbangan : Kebutuhan
pemrogram menjadi bahan pertimbangan dalam merancang set instruksi.
Masalah
rancangan yang fundamental meliputi :
- Operation repertoire :
- Berapa banyak dan
operasi-operasi apa yang harus tersedia.
- Sekompleks apakah operasi itu
seharusnya.
- Data types :
- Instruction format :
- Panjang instruksi.
- Jumlah alamat.
- Ukuran field.
- Registers :
- Jumlah register CPU yang dapat
direferensikan oleh instruksi, dan fungsinya.
- Addressing :
- Mode untuk menspesifikasi
alamat suatu operand.
Tipe Operasi
- Dalam perancangan arsitektur
komputer, jumlah kode operasi akan sangat berbeda untuk masing-masing
komputer, tetapi terdapat kemiripan dalam jenis operasinya.
Jenis
Operasi Komputer
- Transfer data. - Konversi
- Aritmetika. - Input/Output
- Logika. - Kontrol sistem dan
transfer kontrol
Kesimpulan :
·
Dapat ditarik kesimpulan bahwa instruksi-instruksi mesin harus mampu
mengolah data sebagai implementasi keinginan-keinginan kita
·
Terdapat kumpulan unit set instruksi yang dapat digolongkan dalam
jenis-jenisnya, yaitu :
1. Pengolahan data (data processing)
Meliputi operasi-operasi aritmatika dan logika,
operasi aritmatika memiliki kemapuna komputasi untuk pengolahan data numrik,
sedangkan instruksi logika beroperasi terhadap bit-bit, bukannya sebagi
bilangan, sehingga insrtuksi ini memiliki kemampuan untuk 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 operasi-operasi
yang bertugas memindahkan data operand yang diperlukan.
3. Penyimpanan data ( data storage)
Berisi instruksi-instruksi penyimpanan ke memori,
instruksi penyimpanan sangat penting dalam operasi komputasi, karena data
tersebut akan digunakan untuk operasi berikutnya, minimal untuk ditampilkan
pada layar harus diadakanpenyimpanan walaupun sementara
4. Control aliran program ( program flow control)
Berisi instruksi pengontrolan operasi dan pencabangan,
instruksi ini berguna untuk pengontrolan status dan mengoperasikan pencabangan
ke set instruksi lain.