Professional Documents
Culture Documents
Tugas Pendahuluan
1. Eksekusi sebuah instruksi terdiri dari beberapa tahap:
Ada lima tahap yang dilakukan Mikroprosesor MIPS saat mengeksekusi suatu
instruksi yang terdiri dari:
a. Instrustion Fetch (IF) : Tahap ini berfungsi untuk mengatur aliran instruksi
yang akan diolah pada tahap selanjutnya. Instruksi yang sedang dijalankan
merupakan instruksi yang dari memori dan disimpan di memori. Instruksi ini
memiliki bentuk rancangan dimana memori dipisahkan menjadi dua bagian
yaitu instruction memory yang berfungsi untuk menyimpan instruksi-instruksi
yang akan di eksekusi dan data memory yang berfungsi untuk menyimpan
data untuk menghindari structural hazard. Sehingga arsitektur ini memiliki
bentuk Havard Architecture.
b. Instruction Decode (ID) : Instruksi pada tahap ini, dengan lebar 32 bit akan
dipecah sesuai instruksi yang digunakan.
c. Execute / Adress Calculation (EX) : Tahap ini merupakan tahap sebagian
besar operasi aritmatika dan logika pada arithmetich and logical unit (ALU)
dilakukan. Tahap ini menyediakan tempat untuk meneruskan alamat register
kembali ke tahap instruction decode yang mendeteksi hazard.
d. Data Memory (MEM) : Pada tahap ini, data disimpan dan/atau diambil dari
data memory. Data memory hanya dapat disimpan atau dibaca jika ada sinyal
MemRead dan/atau MemWrite yang sesuai agar operasi read dan write dapat
dilakukan.
e. Write Back (WB) : Tahap ini digunakan untuk mengalirkan data dari data
memory atau hasil perhitungan ALU ke register untuk dapat dijalankan instruksi
selanjutnya.
Format tiga instruksi dasar yang dapat dieksekusi oleh MIPS beserta
penjelasannya untuk setiap bit instruksi dan 5 contoh setiap
penggunaan isntruksi untuk tiap-tiap format instruksi dasar :
Terdapat tiga buah instruksi dasar diantaranya instruksi tipe R, instruksi tipe I dan
instruksi tipe J.
Komponen
opcode
rs, rt, rd
Keterangan
Menunjukkan jenis operasi yang akan dilakukan oleh instruksi
tersebut. Khusus untuk instruksi tipe-R, opcode selalu bernilai
0x00.
Menentukan alamat (nomor) dari source register (instruksi tipe-R
dan instruksi tipe-I), temporary register (instruksi tipe-R dan
shamt
funct
immediate
address
add
sub
mul
div
addu
Tipe R
$t2, $t4, $t6
$s1, $s2, $s3
$t2, $t4, $t6
$t2, $t4, $t6
$s10, $s9, $s8
lw
sw
bne
beq
Tipe I
li $v0, 1
$s1, 100($s2)
$s1, 100($s2)
$t0, $t2, end
$t0, $t2, loop
Tipe J
j 100
jal 100
j if
j end
j loop
2. Nilai-nilai opcode dan funct dalam biner, tipe instruksi, dan arti instruksi
dari instruksi berikut :
Nama opcod funct
Tipe
Arti Instruksi
Instru
e
Instru
ksi
ksi
sll
000000 000000
R
Shift Left Logical sejauh n-bit
srl
000000 000010
R
Shift Right Logical sejauh n-bit
jr
000000 001000
R
Jumpke register tertentu
add
000000 100000
R
Operasi penjumlahan isi dua buah register
dan disimpan di sebuah register (Add)
sub
000000 100010
R
Operasi pengurangan isi dua buah register
dan disimpan di sebuah register
(Substract)
and
000000 100100
R
Bitwise And isi dua buah register dan
disimpan di sebuah register
or
000000 100101
R
Bitwise Or isi dua buah register dan
disimpan di sebuah register
xor
000000 100110
R
Bitwise Exclusive Or isi dua buah register
dan disimpan di sebuah register
nor
000000 100111
R
Bitwise nor (Not Or) isi dua buah register
dan disimpan di sebuah register
slt
000000 101010
R
Set Less Than, misalkan slt dari 3 buah
register s1 s2 dan s3, maka register s1
akan diisi 1 jika isi register s2 < isi register
s3
beq
000100 -----I
Pencabangan bila sama (Branch-if-Equal)
bne
000101 -----I
Pencabangan bila tidak sama (Branch-ifNot-Equal)
addi
001000 -----I
Operasi penjumlahan konstanta (Add
Halaman 2 dari 7
slti
andi
ori
xori
lui
lw
001010
001100
001101
001110
001111
100011
-------------------------------
I
I
I
I
I
I
sw
101011 ------
j
jal
addiu
J
J
I
sltiu
001001 ------
Immediate)
Set Less Than Immediate
And Immediate
Or Immediate
Exclusive Or Immediate
Load Upper Immediate
Mengambil data dari data memory (Load
Word)
Menyimpan data ke data memory (Save
Word)
Jump ke address tertentu
Jump and Link, pemanggilan prosesur
Add Immediate Unsigned, menjumlahkan
isi suatu register dengan bilangan
unsigned
Set Less Than Immediate Unsigned
Halaman 3 dari 7
Halaman 4 dari 7
Halaman 5 dari 7
Halaman 6 dari 7
Halaman 7 dari 7