Anda di halaman 1dari 7

ULIL ALBAB RABBANI

21120113130064
BAHASA PEMROGRAMAN RAKITAN

MIPS (Million Instructions Per Second)


MIPS adalah sebuah arsitektur atau teknologi dari sebuah chip processor
berbasis RISC. Di dunia ini, terdapat dua teknologi besar dari intruksi set
yang digunakan oleh processor yaitu CISC dan RISC. Untuk CISC
digunakan di komputer dan PC, sedangkan RISC digunakan di perangkat
mobile, tablet dan embedded. MIPS dikembangkan oleh John L Hennesy di
Stanford University pada tahun 1981.
Komponen Utama MIPS

Control Unit
Program Counter
Instruction Memory
Data Memory
Register
ALU

BLOK DIAGRAM MIPS

CONTROL UNIT
Control Unit berfungsi untuk mengendalikan semua aktifitas prosesor.
Kode operasi diterjemahkan untuk mengetahui jenis instruksinya. Input
dari opcode mempunyai panjang 6 bit. Keluaran kendali semua komponen
dalam MIPS dengan panjang 9 bit.
Alokasi Bit Pada CPU

RegDst

: 1 bit

Branch

: 1 bit

MemRead

MemToReg : 1 bit

ALUOP

MemWrite : 1 bit

ALUSrc

RegWrite

: 1 bit

: 2 bit

: 1 bit
: 1 bit

PROGRAM COUNTER
Program Counter berfungsi untuk menghitung alamat instruksi berikutnya
yang akan dieksekusi. Memiliki Input = 32 bit dan Keluaran 32 bit pada
memori
instruksi. Lebar data 32 bit sehingga maksimal
instruksinya yang dapat diakses adalah 2 32 buah
instruksi.

nilai

Pencacah akan mengeluarkan nilai secara


sekuensial
dari
0x00000000
sampai
0x11111111. Jika ada instruksi pencabangan maka
pencacah akan ditambah 4 setiap kali selesai instruksi.

INSTRUCTION MEMORY
Instruction Memory berfungsi untuk menyimpan
instruksi yang akan dieksekusi. Input alamat
memori yang digunakan untuk menyimpan
instruksi sebanyak 32 bit dari PC. Mempunyai
keluaran instruksi sebanyak 32 bit dan memiliki
lebar data pada setiap alamat 8 bit.
Setiap instruksi menempati 4 buah alamat dalam
memori instruksi. Instruksi yang telah dibaca
masuk ke dalam bus dan diterjemahkan oleh bagian pengendali
pengendali.

DATA MEMORY
Data Memory berfungsi untuk menyimpan hasil penghitungan ALU.
Alamat memori yang akan digunakan untuk
menyimpan data (akan ditulis) sebanyak 32 bit
Data yang akan disimpan / ditulis sebanyak
bit. Keluaran adalah data yang dibaca sebanyak
bit. Memiliki lebar data setiap alamat adalah 8
bit

32
32

Pada MIPS memori data dan memori instruksi


disatukan, dimana data disimpan di alamat tinggi dan instruksi di alamat
rendah. Memori data dikendalikan oleh jalur kontrol MemRead untuk
membaca dan MemWrite untuk menulis.

REGISTER
Register berfungsi untuk menyimpan data yang akan dihitung oleh ALU
dan menyimpan data hasil perhitungannya
Input :

Alamat register 1 yang akan dibaca (5 bit)


Alamat register 2 yang akan dibaca (5 bit)
Alamat register yang akan ditulis (5 bit)
Data yang akan ditulis ke register (32 bit)

Output : data yang dibaca dari register 1 dan 2


Penulisan register dikendalikan oleh jalur kendalikan RegWrite. Pada
pemrograman, nama register tidak diakses berdasarkan nomornya, tetapi
berdasarkan namanya. Masing-masing register diberi nama umum agar
mudah diingat oleh pemrogram.
Nama-nama Register

ALU (Aritmethic Logic Unit)


ALU bertujuan untuk mengolah instruksi aritmetika dan logika untuk
dua buah masukan. Mempunyai masukan : input 1 dan input 2
masing masing 32 bit dan keluaran adalah hasil pengolahan
dan zero flag. Selain mengeluarkan hasil penghitungan, ALU juga
mengeluarkan zero flag.
ALU memiliki 3 jalur kendali

Pada R-Fromat ,maka ALU menjalankan salah


satu dari kelima fungsi di atas dan tergantung
pada nilai dari Function Code. Instruksi LW dan
SW maka ALU digunakan untuk menghitung
alamat
memori
dengan
melakukan
penjumlahan. Instruksi beq ALU melakukan
proses pengurangan
Komponen Pendukung MIPS:

Adder: Penjumlah
Shifter: Penggeser
MUX (Multiplexer): Multiplekser
Sign Extend: menambah jumlah bit
ALU control: menentukan operasi ALU
ADDER
Adder berfungsi untuk menjumlahkan dua
buah input. Masukannya dua buah input n
bit dan keluaran sebuah n bit output.
Rangkaian yang ada dalam adder adalah
full adder. Simbol adder sama dengan
simbol ALU dan diberi nama Add
Ada 2 buah adder dalam MIPS :

Adder yang menjumlahkan input dan PC (32 bit) dengan bilangan


4
Adde r yang menjumlahkan hasil penjumlahan PC+4 (32 bit)
dengan bilangan yang berasal dari bagian shift left 2 (32 bit)

SHIFTER
Shifter berfungsi untuk menggeser bit-bit input ke kiri
sebanyak 2 kali atau mengalikan input dengan 4. Masukan 1
input (32 bit) dan keluaran 1 output (32 bit)
CONTOH:
Masukan: 0000000000000000 0000000000000010 2
Keluaran: 0000000000000000 0000000000001000 8

MULTIPLEXER
Multiplexer berfungsi untuk memilih satu dari 2 input yang
tersedia untuk disalurkan ke output. Mux mempunyai
masukan 2 buah input masing-masing 32 bit dan sebuah
select (1bit)n serta memiliki keluaran 1 buah dengan output
32 bit
Multiplexer ini disebut mux 2 ke 1, terdapat 2 buah input dan 1
buah output. Select berfungsi menentukan input mana yang dipilih
datanya untuk dikeluarkan dan jumlah select tergantung banyaknya input.
Karena input-nya ada 2 maka jumlah select-nya cukup 1 buah saja yang
dapat bernilai 0 atau 1
SIGN EXTEND
Sign

Extend berfungsi untuk mengubah data 16 bit menjadi 32


bit. Sign Extend mempunyai masukan 1 input sebanyak
16 bit dan keluaran 1 output sebanyak 32 bit
Sign Extend menambah bilangan 0 sebanyak 16 bit di awal
(sebelah kiri) sehingga jumlah bit menjadi 32 bit.

Contoh:
Masukan: 0000 0000 0010 1101
Keluaran: 0000 0000 0000 0000 0000 0000 0010 1101

INSTRUKSI MIPS

Instruksi 32 bit terdiri dari opcode dan operand:


6 bit diawal (msb) disebut dengan opcode

26 bit berikutnya adalah operand

Contoh: ($ = register; s = source; t = target; d = destination)

Contoh:

Misal add $t2, $s2, $t1

Artinya :

bit ke:

31-26

25-21

000000
100000

10010

20-16

15-11

01001

01010

10-6

5-0

|Opcode|<-----------------Operand ------------>|

000000 adalah kode operasi untuk aritmatika (R)

10010 adalah nomor $s2 = 18

01001 adalah nomor $t1 = 9

01010 adalah nomor $t2 = 10

00000 tidak digunakan dalam operasi aritmatika

100000 adalah kode fungsi operasi add

INSTRUKSI MIPS: LOAD ATAU STORE

Opcode :
Load = 35 = 100011
Store = 43 = 101011
rs: register source (5 bit)

00000

1. Operasi Load: rs = Read register 1 = nomor register yang


menyimpan alamat dasar (base address) dari data yang akan
dibaca.
2. Operasi Store:
rs = Read register 1 = nomor register yang
menyimpan alamat dasar (base address) dari memori dimana data
akan disimpan.
rt: register target (5 bit)
1. Operasi Load: rt = Write register = nomor register yang akan
digunakan untuk menampung data yang akan dibaca
2. Operasi Store: rt = Read register 2 = nomor register yang
menampung data yang akan ditulis ke memori
address (16 bit): offset (banyaknya pergeseran alamat dari alamat
dasar)
CONTOH OPCODE LOAD ATAU STORE

Format : lw rt, physical address


lw $t1, offset($t2)
Alamat fisik = alamat dasar (base) + offset
= isi $t2 + offset

Format : sw rt, physical address


sw $t1, offset($t2)
Alamat fisik = alamat dasar (base) + offset
= isi $t2 + offset

Anda mungkin juga menyukai