You are on page 1of 7

Program Studi Teknik Elektro ITB

Nama Kuliah (Kode) : Praktikum Arsitektur Sistem Komputer


(EL3111)
Tahun / Semester : 2016-2017 / Ganjil
Modul
: 1 / 2 / 3 / 4 / 5 (Lingkari salah satu)
Nama Asisten / NIM
:
_______________________________________
Nama Praktikan / NIM :
Ni Putu Amanda
Gamayani/13214075

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

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

shamt
funct
immediate
address

add
sub
mul
div
addu

instruksi tipe-I), dan destination register (instruksi tipe-R).


Menunjukkan jumlah penggeseran bit (shift amount) pada
instruksi tipe-R.
Memilih operasi matematika yang akan dilakukan pada instruksi
tipe-R.
Menentukan nilai konstanta yang menunjukkan operand yang
konstan atau address.
Alamat tujuan pada instruction memory yang akan dieksekusi
setelahnya.

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

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

slti
andi
ori
xori
lui
lw

001010
001100
001101
001110
001111
100011

-------------------------------

I
I
I
I
I
I

sw

101011 ------

j
jal
addiu

000010 -----000011 -----001001 ------

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

3. Program dalam bahasa assembly berikut nilai dalam ounce lalu


melakukan
konversi dari ounce ke pound dan ounce lalu menampilkan hasilnya.
a. Simulasi program dalam PCSpim

b. Konversi kode bahasa assembly ke dalam bahasa C

c. Bandingkan bahasa assembly program untuk dieksekusi pada


mikroprosesor
MIPS32
dan bahasa assembly hasil kompilasi oleh GCC untuk dieksekusi pada
mikroprosesor
Intel x86.

Halaman 3 dari 7

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

Halaman 4 dari 7

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

Berdasarkan gambar diatas terilihat, bahasa assembly intel memiliki kompleksitas


yang tinggi dibandingkan dengan instruction set pada mikroprosesor MIPS (dapat
dilihat dari jumlah baris yang lebih banyak pada intel). Pada mikroprosesor intel
tergolong dalam complex instruction set computer (CISC) sedangkan
mikroprosesor MIPS tergolong dalam reduced instruction set computer (RISC).
4. Program dalam bahasa assembly untuk dieksekusi dalam mikroprosesor
MIPS32.
Program ini menerima input berupa total bahan bakar yang dikonsumsi
oleh
mobil
dalam
satuan liter dan total jarak yang ditempuh oleh mobil dalam satuan
kilometer
dengan
jumlah
bahan bakar tersebut. Kemudian program melakukan perhitungan untuk
rata-rata konsumsi bahan bakar per kilometer serta jarak yang dapat
ditempuh dalam satuan kilometer menggunakan 1 liter bahan bakar.

Halaman 5 dari 7

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

5. Program dalam bahasa assembly untuk dieksekusi dalam MIPS32


dengan fungsionalitas yang sama dengan program dalam bahasa C.

Halaman 6 dari 7

Praktikum Arsitektur Sistem Komputer (EL3111) | Tahun 2016-2017 | Semester Ganjil

Halaman 7 dari 7

You might also like