SET INTRUKSI
•
Instruksi
mesin (machine intruction) 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 intruksi mesin
–
Representasi instruksinya
–
Jenis –
jenis instruksi
–
Penggunaan alamat
–
Rancangan
set instruksi
1.
Element-element Instruksi
Untuk dapat dieksekusi suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas , Apa saja elemennya ?
Untuk dapat dieksekusi suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas , Apa saja elemennya ?
a.
Op Code,
Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode biner
Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode biner
b.
Source Operand,
Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi
Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi
c.
Result Operand,
Merupakan hasil atau keluaran operasi
Merupakan hasil atau keluaran operasi
d.
Next Instruction Reference)
Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi
Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekusi
2.
Operand dari Operasi
Melihat dari sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga daerah berikut ini :
Melihat dari sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga daerah berikut ini :
o
Memori
utama atau memori virtual
o
Register
CPU
o
Perangkat
I/O
3.
Representasi Instruksi
o Instruksi komputer
direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi beberapa field.
o Field – field ini
diisi oleh elemen – elemen instruksi yang membawa informasi bagi operasi CPU.
o Layout instruksi
dikenal dengan format instruksi
Opcode
|
Alamat
|
4.
Format Instruksi
o Kode
operasi (opcode) direpresentasi kan dengan singkatan – singkatan, yang disebut
mnemonic.
o Mnemonic
mengindikasikan suatu operasi bagi CPU.
o Contoh mnemonic
adalah :
§ ADD = penambahan
§ SUB = substract
(pengurangan)
§ LOAD = muatkan data
ke memori
o Contoh representasi operand secara
simbolik :
o ADD X, Y artinya
: tambahkan nilai yang berada
pada lokasi Y ke isi register X, dan simpan hasilnya di register X.
o Programer dapat menuliskan program
bahasa mesin dalam bentuk simbolik.
o Setiap opcode simbolik memiliki
representasi biner yang tetap dan programer dapat menetapkan lokasi masing – masing
operand
5.
Jenis –Jenis Instruksi
o Contoh suatu ekspresi
bilangan :
o X = X + Y ;
o X dan Y
berkorespondensi dengan lokasi 513 dan 514.
o Pernyataan dalam
bahasa tingkat tinggi tersebut mengintruksikan 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
6.
Korelasi
o Terlihat hubungan
antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.
o Dalam
bahasa tingkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat menggunakan
variabel.
o Dalam bahasa
mesin hal tersebut diekpresikan dalam operasi perpindahan antar register
o Dapat ditarik
kesimpulan bahwa instruksi – instruksi mesin harus mampu mengolah data sebagai
implementasi keinginan – keinginan kita.
o Terdapat kumpulan
unik set instruksi, yang dapat digolongkan dalam jenis–jenisnya, yaitu
§ 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
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
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 instuksi – 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
berisi instuksi – 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 pencabangan ke set instruksi lain
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk pengontrolan status dan mengoperasikan pencabangan ke set instruksi lain
7.
Jumlah
Alamat
o Jumlah register atau
alamat yang digunakan dalam operasi CPU tergantung format operasi masing –
masing CPU.
o Ada format operasi
yang menggunakan 3, 2, 1 dan 0 register.
o 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
secon).
o Alamat per instruksi yang lebih
sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih sulit
mengimplementasikan fungsi-fungsi yang kita inginkan.
o Karena instruksi CPU sederhana maka
rancangan CPU juga lebih sederhana.
o Jumlah bit dan referensi per
instruksi lebih sedikit sehingga fetch dan eksekusi lebih cepat.
o Jumlah instruksi per program biasanya
jauh lebih banyak
o Pada jumlah alamat per instruksi
banyak, jumlah bit dan referensi instruksi lebih banyak sehingga waktu eksekusi
lebih lama.
o Diperlukan register CPU yang banyak,
namun operasi antar register lebih cepat.
o Lebih mudah mengimplementasikan
fungsi – fungsi yang kita inginkan.
o Jumlah instruksi per program jauh
lebih sedikit.
o Untuk lebih jelas perhatikan contoh
instruksi – instruksi dengan jumlah register berbeda untuk menyelesaikan
persoalan yang sama
o Contoh penggunaan set instruksi
dengan alamat 1, 2, dan 3 untuk menyelesaikan operasi hitungan
Y = (A – B) ÷ (C +
D* E)
o 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.
o 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 dari pada 3 alamat.
§ Diperlukan
penyimpanan sementara untuk menyimpan hasil.
o 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
8.
Rancangan
Set Instruksi
o Aspek paling menarik
dalam arsitektur komputer adalah perancangan set instruksi, karena rancangan ini
berpengaruh banyak pada aspek lainnya.
o Set
instruksi menentukan banyak fungsi yang harus dilakukan CPU.
o Set instruksi
merupakan alat bagi para pemrogram untuk mengontrol kerja CPU.
o Pertimbangan :
Kebutuhan pemrogram menjadi bahan pertimbangan dalam merancang set instruksi
o 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
9.
Tipe
Operasi
o Dalam perancangan
arsitektur komputer, jumlah kode operasi akan sangat berbeda untuk masing – masing
komputer, tetapi terdapat kemiripan dalam jenis operasinya
10.
Jenis
Operasi Komputer
o Transfer data. –
Konversi
o Aritmetika. -
Input/Output
o Logika. - Kontrol
sistem dan transfer control
o Operasi
set instruksi secara umum :
11.
Transfer Data
o Instruksi tranfer data harus
menetapkan :
§ Lokasi operand sumber
§ Lokasi operand tujuan
§ Panjang data yang akan dipindahkan
§ Mode pengalamatannya
o Apabila sebuah atau kedua operand
berada di dalam memori, maka CPU harus melakukan sebagian atau seluruh tindakan
berikut :
§ Menghitung alamat memori, yang
didasarkan pada mode alamatnya.
§ Apabila alamat mengacu pada virtual
memori harus dicari alamat memori sebenarnya.
§ Menentukan apakah alamat berada dalam
cache memori.
§ Bila di cache tidak
ada, dikeluarkan perintah ke modul memori
12.
Mode Pengalamatan
o Mengatasi keterbatasan format instruksi
§ Dapat mereferensi lokasi memori yang besar
§ Mode pengalamatan yang mampu menangani
keterbatasan tersebut
o Masing – masing prosesor menggunakan mode
pengalamatan yang berbeda – beda.
o Memiliki pertimbangan dalam penggunaannya.
o Ada beberapa teknik pengalamatan
§ Immediate Addressing
Bentuk pengalamatan ini yang paling sederhana
Bentuk pengalamatan ini yang paling sederhana
·
Operand benar – benar ada dalam instruksi atau
bagian dari instruksi =
Operand sama dengan field alamat.
·
Umumnya bilangan akan disimpan dalam bentuk komplemen dua.
·
Bit paling kiri sebagai bit tanda.
·
Ketika
operand dimuatkan ke dalam register data, bit tanda akan digeser ke kiri hingga
maksimum word data
·
Contoh
:
ADD 5 ;
tambahkan 5 pada akumulator
·
Keuntungan
o Mode ini adalah
tidak adanya referensi memori
selain dari instruksi yang diperlukan untuk memperoleh operand.
o Menghemat siklus instruksi sehingga
proses keseluruhan akan cepat.
·
Kerugiannya
o Ukuran bilangan dibatasi oleh ukuran
field alamat
§ Direct Addressing
Pengalamatan langsung
·
Kelebihan
:
o Field alamat berisi efektif address
sebuah operand.
o Teknik ini banyak digunakan pada
komputer lama dan komputer kecil.
o Hanya memerlukan sebuah referensi
memori dan tidak memerlukan kalkulasi khusus.
·
Kelemahan
:
o Keterbatasan
field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word
·
Contoh
:
ADD A ; tambahkan isi
pada lokasi alamat A ke akumulator
§ Indirect Addressing
Mode pengalamatan tak
langsung
·
Field
alamat mengacu pada alamat word di dalam memori, yang pada gilirannya akan berisi alamat operand yang panjang
·
Contoh
:
ADD
(A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator
·
Keuntungan
o Ruang bagi alamat menjadi besar
sehingga semakin banyak alamat yang dapat referensi.
·
Kerugian
o Diperlukan
referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi
§ Register Addressing
§ Metode pengalamatan register mirip
dengan mode pengalamatan langsung.
§ Perbedaannya
terletak pada field alamat yang mengacu pada register, bukan pada memori utama.
§ Field yang mereferensi register
memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register
general purpose.
·
Keuntungan
pengalamatan register
o Diperlukan field alamat berukuran
kecil dalam instruksi dan tidak diperlukan referensi memori.
o Akses ke register lebih cepat
daripada akses ke memori, sehingga proses eksekusi akan lebih cepat.
·
Kerugian
o Ruang alamat menjadi terbatas
§ Register Indirect Addressing
§ Metode pengalamatan register tidak
langsung mirip dengan mode pengalamatan tidak langsung.
§ Perbedaannya adalah field alamat
mengacu pada alamat register.
§ Letak operand berada pada memori yang
ditunjuk oleh isi register.
§ Keuntungan dan keterbatasan
pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan
tidak langsung.
·
Keterbatasan field alamat diatasi dengan pengaksesan
memori yang tidak
langsung sehingga alamat yang dapat direferensi makin banyak.
·
Dalam
satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak
langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada
mode pengalamatan tidak langsung
§ Displacement Addressing
·
Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register
tidak langsung.
·
Mode ini mensyaratkan instruksi memiliki dua buah field
alamat, sedikitnya sebuah field yang eksplisit.
·
Field eksplisit bernilai A dan field implisit mengarah pada register
·
Operand
berada pada alamat A ditambah isi register.
·
Tiga
model displacement
o Relative Addressing
o Base Register Addressing
o Indexing
·
Relative
addressing, register yang direferensi secara implisit adalah program counter
(PC).
o Alamat efektif
didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat.
o Memanfaatkan konsep lokalitas memori
untuk menyediakan operand-operand berikutnya.
·
Base
register addressing, register yang direferensikan berisi sebuah alamat memori,
dan field alamat berisi perpindahan dari alamat itu.
o Referensi register dapat eksplisit
maupun implisit.
o Memanfaatkan konsep lokalitas memori.
·
Indexing
adalah field alamat mereferensi alamat memori utama, dan register yang
direferensikan berisi pemindahan positif dari alamat tersebut.
o Merupakan kebalikan dari model base
register.
o Field alamat dianggap sebagai alamat
memori dalam indexing.
o Manfaat penting dari indexing adalah
untuk eksekusi program-program iteratif
§ Stack Addressing
·
Stack adalah array lokasi yang linier = pushdown
list = last-in-first-out-queue.
·
Stack
merupakan blok lokasi yang terbalik.
o Butir ditambahkan ke puncak stack
sehingga setiap saat blok akan terisi secara parsial.
·
Yang berkaitan dengan stack adalah pointer yang
nilainya merupakan alamat bagian paling atas stack.
·
Dua
elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini
stack ponter mereferensi ke elemen ketiga stack.
·
Stack pointer tetap berada di dalam register.
·
Dengan
demikian, referensi – referensi ke lokasi stack di dalam memori pada dasarnya
merupakan pengalamatan register tidak langsung
13.
Perbandingan Mode
pengalamatan
Mode
|
Algoritma
|
Keuntungan Utama
|
Kerugian utama
|
Immediate
|
Operand = A
|
Tidak ada referensi memori
|
Besaran operand terbatas
|
Direct
|
EA = A
|
Sederhana
|
Ruang alamat terbatas
|
Indirect
|
EA = (A)
|
Ruang alamat besar
|
Referensi memori berganda
|
Register
|
EA = R
|
Tidak ada referensi memori
|
Ruang alamat terbatas
|
Register Indirect
|
EA = ( R )
|
Ruang alamat besar
|
Referensi memori ekstra
|
Displacement
|
EA = A+ ( R )
|
Fleksibelitas
|
Kompleksitas
|
Stack
|
EA = Puncak Stack
|
Tidak ada referensi
|
Aplikasi memori terbatas
|
Keterangan :
•
A = isi suatu field alamat
dalam instruksi
•
EA = alamat aktual (efektif)
sebuah lokasi yang berisi operasi yang di referensikan
•
( X ) = isi lokasi X
14.
Mode Pengalamatan Pentium
o Pentium dilengkapi
bermacam – macam mode pengalamatan untuk memudahkan bahasa – bahasa tingkat
tinggi mengeksekusinya secara efisien (C/Fortran)
o
Keterangan :
SR = register segment
PC = program counter
A = isi field alamat
B = register basis
I = register indeks
S = faktor skala
o Mode immediate
§ Operand berada di dalam instruksi.
§ Operand dapat berupa data byte, word maupun
doubleword
o Mode operand
register, operand adalah isi register.
§ Beberapa macam jenis register
·
Register 8 bit (AH, BH, CH, DH, AL, BL, CL, DL)
·
Register 16 bit (AX, BX, CX, DX, SI, DI, SP, BP)
·
Register 32 bit (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP)
·
Register 64 bit yang dibentuk dari register 32 bit secara berpasangan.
·
Register 8, 16 dan 32 merupakan register untuk penggunaan umum (general
purpose register).
·
Register 64 bit biasanya untuk operasi floating point.
·
Register segmen (CS, DS, ES, SS, FS, GS)
o Mode displacement
§ Alamat efektif berisi
bagian – bagian instruksi dengan displacement 8, 16, atau 32 bit.
§ Dengan
segmentasi, seluruh alamat dalam instruksi mengacu ke sebuah offset di dalam segmen.
§ Dalam Pentium, mode
ini digunakan untuk mereferensi variabel – variabel global
Format-Format
Instruksi
o
Format instruksi menentukan layout
bit suatu instruksi.
o
Format instruksi harus mencakup
opcode dan secara implisit atau eksplisit, nol operand atau lebih
o
Seluruh operand eksplisit
direferensikan dengan menggunakan salah satu mode pengalamatan yang ada
o
Secara implisit atau eksplisit
format harus dapat mengindikasikan mode pemngalamata seluruh operandnya.
o
Pada sebagian besar set instruksi
digunakan lebih dari satu format instruksi.
1. Panjang
Instruksi
o
Umumnya pemograman menginginkan
opcode, operand, dan mode pengalamatan yang lebih banyak serta range alamat
yang lebih besar
o
Dengan adanya opcode dan operand
yang lebih banyak akan memudahkan pekerjaan pemograman
o
Mode pengalamatan yang lebih
banyak akan memberikan fleksibilitas yang lebih besar terhadap pemogram dalam
mengimplementasikan fungsi-fungsi tertentu, seperti manipulasi table dan
pencabangan yang berjumlah banyak.
o
Dengan bertambahnya ukuran memori
utama dan semakin banyaknya pemakaian memori virtual, pemogram akan dapat
mengalamati jangkauan memori yang lebih besar.
o
Kecepatan perpindahan memori tidak
dapat diatasi dengan penambahan kecepatan processor
o
Karena memori akan dapat menjadi
sebuah bottleneck apabila prosessor dapat mengeksekusi instruksi lebih cepat
dari pada kecepatan untuk mengambil instruksi itu.
o
Salah satu cara mengatasi masalah
ini adalah dengan menggunakan cache memori atau dengan menggunakan
instruksi-instruksi yang lebih pendek
o
Instruksi 16 bit akan dapat
diambil dua kali lebih cepat di bandingkan instruksi 32 bit namun mungkin akan dieksekusi
dua kali lebih lambat
2. Format
Instruksi
o
Organisasi internal pada komputer
dinyatakan oleh instruksi-instruksi yang dapat dijalankannya.
o
Suatu instruksi merupakan suatu
tata cara yang digunakan oleh komputer untuk menyatakan operasi-operasi seperti
ADD, STORE, LOAD, MOVE dan BRANCH beserta untuk menentukan lokasi data di mana
suatu operasi akan dikerjakan.
3. Format Alamat
o
Pengkodean biner pada setiap
komputer memiliki format kode instruksi tersendiri.
o
Pada komputer terdahulu, setiap
instruksi terdiri atas sebuah upcode dan empat field alamat.
Opkode
|
A0
|
A1
|
A2
|
A3
|
A0 = alamat operand pertama
A1 = alamat operand kedua
A2 = alamat di mana hasil
operand disimpan
A3 =
Alamat dari instruksi berikutnya
4. Mode Pengalamatan
o
Suatu mode pengalamatan dapat
digunakan untuk menentukan suatu alamat tempat untuk dimana operand akan di
fetch
o
Beberapa teknik
semacam ini dapat meningkatkan kecepatan pelaksanaan instruksi dengan
menurunkan jumlah referensi pada memori utama dan meningkatkan jumlah referensi
pada register kecepatan tinggi
o
Mode pengalamatan ini menjabarkan
suatu aturan untuk menginterpresetasikan atau memodifikasi field alamat dari
instruksi sebelum operand di referensikan
o
Pada semua mode pengalamatan
lainnya, operand yang sesungguhnya tidak disimpan pada field alamat tetapi
beberapa nilai di jabarkan dan di gunakan untuk menentukan operasi operand.
5. Kode Instruksi (KI)
o
Selain dari representasi data,
kode biner juga digunakan untuk membuat instruksi kontrol dalam komputer, yang
disebut kode instruksi.
o
Kode instruksi merupakan kelompok
bit yang memberitahukan kepada komputer untuk menunjukan suatu operasi
tertentu.
o
Kode Instruksi dibagi dalam
bagian-bagian, yang masing-masing bagian mempunyai interpretasi sendiri
o
Bagian yang paling pokok adalah
kode operasi (Operation Code / Opcode)
o
Opcode adalah sekelompok bit yang
menunjukan operasi seperti ADD, SUBTRACT, SHIFT, dan COMPLEMENT
o
Bagian lain dari instruksi
mencakup satu operasi (operand) atau lebih
o
Operand adalah suatu nama yang
digunakan untuk obyek instruksi dan mungkin data atau alamat yang mengatakan
dimana data tersebut
o
Untuk membuat kode instruksi dalam
komputer harus kode biner. (seperti operasi LOAD dan Store)
o
Load adalah meng-copy bilangan dari lokasi
memori kedalam register
o
Strore adalah meng-copy bilangan dari
register kedalam lokasi memori
Okay, that's all
Thanks for visiting ......