Anda di halaman 1dari 3

Ryan Dritama 13217048

R type datapath
0000 00|01 001|0 1011| 0110 0|000 00|10 0000

opcode rs rt rd shift func

Pertama komputer membaca address dan instruksi. Pada bit [31..26] yang merupakan opcode akan
masuk kedalam control. Dalam hal ini control akan mengaktifakan ketiga blok mux dan Alu control,
pertama register rs yang merupakan data pada bit [25..21]dibaca, sementara itu register rt pada bit
[20-16] juga dibaca. Data-data dari kedua register tersebut kemudian memasuki alu. Data pertama
langsung memasuki alu sementara data kedua harus melewati mux terlebih dahulu, dengan mengeset
ALUSrc = 0, data tersebut kemudian diteruskan masuk ke blok ALU bersama data 1. Proses kalkulasi
yang dilakukan didalam alu sesuai dengan func yang ada pada instruksi, dalam hal ini adlaah instruksi
add ,dimana register pertama akan dijumlahkan dengan register kedua lalu hasilnya akan dimasukan
ke register yang baru. Hasil dari operasi ALU ini tidak melewati blok memori kemudian masuk ke
write data. Register Rd akan dibuat namun terlebih dahulu harus melewati mux lalu dilewatkan
sehingga dapat dibuat register yang baru. Hasil dari operasi ALU kemudian dimasukan kedalam
register rd. Setelah itu program counter diupdate dengan melakukan 4 increment terhadap address saat
ini

I type register sw $t0 8$t1

1011 10|01 001|0 0100| 0000 0000 0000 1000

opcode rs rt Imm
Ryan Dritama 13217048

Instruksi dan address pertama dibaca. Bit [31..25] yang merupakan opcode kemudian masuk kedalam
control yang kemudian memberikan sinyal 1 kepada blok register, blok mux, blok alu control dan data
memori. Rs bit [25..21] dan rt bit [20..16]lalu dibaca. Data pertama langsung memasuki alu sementara
data kedua masuk kedalam memori. Nilai imm [15..0] yang merupakan nilai yang menyatakan offset
diextend menjadi 32 bit mwnjadi 0x00000008 kemudian masuk ke dalam ALU. bersama data 1.
Hasil dari alu ini merupakan address yang merupakan lokasi memori untuk menyimpan data yang
dinginkan dan masuk ke dalam addr blok memori. Kemudain data akan di writeen pada memori
sesuai dengan address masukan. Setelah itu program counter diupdate dengan melakukan 4 increment
terhadapt address saat ini

J type register

0010 00|00 0000 0000 0000 0000 0000 0000

opcode addr

Setelah instruksi dibaca opcode dikirimkan ke control kemudian mengaktifkan jump. Instruksi
pada bit[25..0] dishit ke kiri sebanyak 2 bit. Hasilnya adalah 28 bit namun karena address harus
memiliki 32 bit maka bitnya diextend dengan cara menggabungkan 28 bit tersebut dengan bit [31..28]
Ryan Dritama 13217048

dari address pc+4. Address yang baru kemudian melewati mux yang dikontrol oleh “jump” dari blok
control lalu diteruskan kembali ke pc

Anda mungkin juga menyukai