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
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 :
Jenis data.
Format data.
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
0 komentar:
Posting Komentar