Nama : Haris Asrofi
NIM : 21120113130072
Resume BPR MIPS
MIPS (Microprocessor without Interlocked Pipeline Stages) merupakan
salah satu prosesor yang dibangun dengan arsitektur RISC. Desain prosesor
MIPS saat ini banyak digunakan pada beberapa sistem embedded seperti the
Series2 TiVo, perangkat Windows CE, Cisco routers, Android, dan konsol
permainan seperti Nintendo 64 dan Sony PlayStation.
Bahasa perakit merupakan bahasa pemrograman tingkat rendah yang
digunakan untuk memberikan instruksi- instruksi kepada prosesor MIPS. Untuk
mensimulasikan pemrograman pada MIPS dengan bahasa perakit, dapat
menggunakan beberapa perkakas, misalnya ProcSym, untuk meng-compile,
menjalankan, dan melihat hasil dari kode-kode program. Arsitektur awal MIPS
adalah 32-bit, dan 64-bit ditambahkan kemudian. Pembaruannya meliputi MIPS
I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32, dan MIPS64
Gambar 1. Blok Diagram MIPS
Komponen utama MIPS :
1. Control Unit
2. Program Counter (PC)
3. Instruction Memory
4. Data Memory
5. Register
6. ALU (Arithmetic and Logical Unit)
Control Unit Merupakan bagian pengendali yang berfungsi mengendalikan
bagian-bagian MIPS yang lain (aktivitas prosesor). Instruksi tediri dari 2
bagian yaitu input dan operan. Instruksi di MIPS panjangnya 32 bit. Namun
yang masuk ke dalam control unit hanya 6 bit, yaitu bit ke 26-31. Kemudian
mengeluarkan output 9 bit kendali komponen yang akan menjadi input bagian-
bagian MIPS yang lain. Bit kendali yang dihasilkan yaitu
RegDst (Register destination) (1 bit)
Branch (1 bit)
MemRead (Memory Read) (1 bit)
MemToReg (Memory To Register) (1 bit)
ALU Op (ALU operation) (2 bit)
MemWrite (Memory write) (1 bit)
ALU src (ALU source) (1 bit)
RegWrite (Register Write) (1 bit)
Program Counter (PC) berfungsi untuk menghitung alamat instruksi
berikutnya yang akan di eksekusi. Yang disimpan dalam PC adalah alamat
memory. Alamat instruksi sama dengan alamat memory. Masukkan dan keluaran
dari PC sama yaitu sepanjang 32 bit (satu instruksi 32 bit). Daya tampung 1
alamat memory pada MIPS sepanjang 8 bit. Alamat memory sendiri merentang
dari 000..00 sampai 111..11 sepanjang 32 bit. Jika tidak ada instruksi
pencabangan maka nilai di dalam PC ditambah 4 setiap selesai melakukkan
instruksi. Karena panjang instruksi 32 bit sedangkan daya tampung setiap
alamat memory hanya 8 bit.
Memory Instruksi berfungsi menyimpan Instruksi yang akan di eksekusi.
Input memori instruksi berupa alamat yang sebelumnya disimpan dalam PC
sebanyak 32 bit. Maka keluarannya instruksi akan sama yaitu sepanjang 32
bit.
Memory data berperan dalam menyimpan data hasil pengolahan ALU.
Masukkannya berupa alamat yang akan dipakai untuk menyimpan data (32 bit)
dan data yang akan disimpan (32 bit). Keluarannya data 32 bit. Ada 2 macam
memory data yaitu memory read untuk membaca data dan memory write untuk
menyimpan data, yang pemakaiannya diatur oleh control unit.
Register berfungsi untuk menyimpan data yang akan diproses oleh ALU
dan menyimpan data hasil perhitungan. Setiap register mempunyai nama,
nomor, dan fungsinya masing-masing. Sebanyak 32 buah dengan masing-masing
panjangnya 32 bit. Diakses berdasarkan nomornya. Namun pada pemrograman,
akses berdasarkan nama registernya.
ALU (arithmetic and Logical unit) berfungsi mengolah dua buah data
masukkan. Bisa penjumlahan pengurangan atau perbandingan. Masukkan berupa
input 1 sepanjang 32 bit dan input 2 sepanjang 32 bit. Keluaran berupa
hasil pengolahan dan zero flag. Zero flag di set 1 ketika hasil keluaran
bernilai 0. Di set 0 jika sebaliknya.
Komponen pendukung mips
1. Shifter adalah penggeser bit 2 kali ke kiri (shift left 2) atau
mengalikan dengan 4.
2. Adder adalah penjumlah 2 buah inputan n bit dan menghasilkan sebuah
keluaran n bit. Di MIPS ada 2 buah adder.
3. Multiplexer adalah selector dari 2 buah input yang tersedia untuk
di alirkan ke output.
4. Sign extend adalah mengubah data 16 bit menjadi 32 bit dengan
menambah 0 sebanyak 16 bit di awal.
Organisasi Register MIPS
"Name "Register number"Usage "
"$zero "0 "The constant value "
"$v0-$v1 "2-3 "Values for results and "
" " "expression evaluation "
"$a0-$a3 "4-7 "Arguments "
"St0-$T7 "8-15 "Temporaries "
"$s0-$s7 "16-23 "Saved "
"$t8-$t9 "24-25 "More temporaries "
"$gp "28 "Global pointer "
"$sp "29 "Stack pointer "
"$fp "30 "Frame pointer "
"$ra "31 "Return address "
Register 1 ($at) disimpan untuk assembler, 26-27 untuk operating system
Format Instruksi MIPS
Op : op code
rs : 1st register source
rs: 2nd register source
rd : register destination
shamt: shift amount
funct: function code
Contoh Instruksi Aritmarika dalam MIPS
C Code : a = b+c
MIPS Instruction : add a,b,c
Contoh Instruksi dengan menggunakan register
f = (g + h) - (i + j);
Register Allocations:
f: $s0, g: $s1, h: $s2, i: $s3, j: $s4
MIPS Instructions:
add $s0,$s1,$s2 # $s0 = g+h
add $t1,$s3,$s4 # $t1 = i+j
sub $s0,$s0,$t1 # f=(g+h)-(i+j)
Fibonacci dengan bahasa Assembly