organisasi dasar mips · sli l k hil hitselain mengeluarkan hasil penghitungan (alu result)alu juga...

30
Organisasi Dasar MIPS

Upload: nguyenmien

Post on 30-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Organisasi Dasar MIPS

Page 2: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Komponen Utama MIPS1. Control Unit: Bagian pengendali2 Program Counter (PC): Pencacah program2. Program Counter (PC): Pencacah program3. Instruction Memory: Memori instruksi4. Data Memory: Memori data5. Register: File registerg g6. ALU (Arithmetic and Logical Unit): Bagian

pemroses aritmetik dan logikapemroses aritmetik dan logika

2end-edited-20090423

Page 3: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Komponen Pendukung MIPS1. Adder: Penjumlah2 Shifter: Penggeser2. Shifter: Penggeser3. MUX (Multiplexer): Multiplekser4. Sign Extend: menambah jumlah bit5. ALU control: menentukan operasi ALUp

3end-edited-20090423

Page 4: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Bagian Pengendali (Control Unit) (1)

Tujuan: Mengendalikan semua aktifitas prosesor Tujuan: Mengendalikan semua aktifitas prosesor Masukan: Kode operasi (Opcode) = 6 bit K l k d li k 9 bit

4

Keluaran: kendali semua komponen = 9 bit

end-edited-20090423

Page 5: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Bagian Pengendali (Control Unit) (2)

Input pada bagian pengendali adalah kode operasi sebanyak 6 bitoperasi sebanyak 6 bit

Kode operasi ini diterjemahkan (di-decode) untuk mengetahui jenis instruksinyauntuk mengetahui jenis instruksinya

Setelah mengetahui jenis instruksi tersebut, b i d li l k 9 bit k d libagian pengendali mengeluarkan 9 bit kendali

Bit kendali yang dikeluarkan oleh Control Unit (CU) akan menentukan operasi pada datapath

5end-edited-20090423

Page 6: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Bagian Pengendali (Control Unit) (3)

Nama-nama kendali yang dihasilkan oleh CU:1 RegDst (1 bit)1. RegDst (1 bit)2. Branch (1 bit)3 MemRead (1 bit)3. MemRead (1 bit)4. MemToReg (1 bit)5 ALUOp (2 bit)5. ALUOp (2 bit)6. MemWrite (1 bit)7 ALUS (1 bit)7. ALUSrc (1 bit)8. RegWrite (1 bit)

6end-edited-20090423

Page 7: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Pencacah Program (PC) (1)

Tujuan: Untuk menghitung alamat instruksi berikutnya yang akan dieksekusiberikutnya yang akan dieksekusi

Masukan: nilai PC = 32 bit Kel a an alamat 32 bit pada memo i inst ksi

7

Keluaran: alamat 32 bit pada memori instruksi

Page 8: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Pencacah Program (PC) (2)

Pencacah program lebarnya 32 bit sehingga maksimal instruksi yang dapat diakses adalahmaksimal instruksi yang dapat diakses adalah 232 buah

Pencacah akan mengeluarkan nilai secaraPencacah akan mengeluarkan nilai secara sekuensial dari 0x00000000 sampai 0x111111110x11111111

Jika tidak ada instruksi pencabangan, maka nilai pencacah akan ditambah 4 setiap kalinilai pencacah akan ditambah 4 setiap kali selesai instruksi

8

Page 9: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Memori Instruksi (1)

Tujuan: Untuk menyimpan instruksi yang akandieksekusi

Masukan: alamat memori yang digunakan untuk i i k i b k 32 bi d i PC

9

menyimpan instruksi sebanyak 32 bit dari PC Keluaran: instruksi sebanyak 32 bit end-edited-20090423

Page 10: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Memori Instruksi (2)

Menyimpan instruksi yang akan dieksekusi Lebar data pada setiap alamat 8 bit Lebar data pada setiap alamat 8 bit Lebar instruksi adalah 32 bitSetiap instruksi menempati 4 buah alamat

dalam memori instruksi Instruksi yang telah dibaca masuk ke dalam

bus dan diterjemahkan oleh bagian j gpengendali

10

Page 11: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Memori Data (1)

Tujuan: menyimpan hasil penghitungan ALU Masukan:

Alamat memori yang akan digunakan untuk menyimpan data (akan ditulisi) sebanyak 32 bit

Data yang akan disimpan/ditulis sebanyak 32 bit

11

Data yang akan disimpan/ditulis sebanyak 32 bit

Keluaran: Data yang dibaca sebanyak 32 bitend-edited-20090423

Page 12: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Memori Data (2)

Lebar data setiap alamat adalah 8 bitPada MIPS memori data dan memori instruksiPada MIPS memori data dan memori instruksi

sebenarnya disatukanD t bi di i d l t l tData biasanya disimpan pada alamat-alamat

tinggi sedangkan instruksi pada alamat-l t d h/ lalamat rendah/awal

Memori data dikendalikan oleh jalur kontrol MemRead untuk membaca dan MemWriteuntuk menulis

12end-edited-20090423

Page 13: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Register (1)

Tujuan: menyimpan data yang akan dihitung oleh ALU dan menyimpan data hasil perhitungannya

Masukan: Alamat register 1 yang akan dibaca (5 bit) Alamat register 2 yang akan dibaca (5 bit) Alamat register yang akan ditulisi (5 bit)

13

Data yang akan ditulis ke resister (32 bit) Keluaran: data yang dibaca dari register 1 dan 2

end-edited-20090423

Page 14: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Register (2)

Register umum (general) jumlahnya 32 buahMasing-masing lebarnya 32 bitMasing-masing lebarnya 32 bitMenyimpan data hasil perhitungan ALU atau

d t b l d i idata yang berasal dari memoriData keluaran register menjadi masukan bagi

ALU untuk dihitungRegister-register diakses berdasarkan nomor g g

registernya

14end-edited-20090423

Page 15: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Register (3)

Penulisan register dikendalikan oleh jalur kendali RegWritekendali RegWrite

Pada pemrograman, nama register tidak diakses berdasarkan nomornya tetapidiakses berdasarkan nomornya, tetapi berdasarkan namanya

M i i i t dib iMasing-masing register diberi nama umum agar mudah diingat oleh pemrogram

15end-edited-20090423

Page 16: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Register dan Fungsinya (1)

16end-edited-20090423

Page 17: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Register dan Fungsinya (2)

Register yang dipersiapkan untuk dipanggil dengan syscall (prosedur dan fungsi) tidakdengan syscall (prosedur dan fungsi) tidak dapat diubah

Sebagai contoh:Sebagai contoh: $s harus disimpan di dalam stack oleh prosedur

jika ingin menggunakannyajika ingin menggunakannya $sp dan $fp selalu di-increment dengan

konstanta kemudian di-increment kembalikonstanta kemudian di increment kembali setelah prosedur selesai dilakukan

Sementara itu $ra berubah secara otomatis

17

Sementara itu $ra berubah secara otomatis dengan adanya call function

end-edited-20090423

Page 18: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

ALU (Arithmatic and Logical Unit) (1)

Tujuan: Mengolah (penjumlahan, pengurangan logika) dua buah data masukanpengurangan, logika) dua buah data masukan

Masukan: input 1 (32 bit) dan input 2(32 bit)

18

Keluaran: hasil pengolahan dan zero flagend-edited-20090423

Page 19: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

ALU (2)

MIPS adalah komputer 32 bit Jenis komputer ini ditentukan oleh lebar bus Jenis komputer ini ditentukan oleh lebar bus

data yang masuk ke dalam ALUS l i l k h il hit (ALUSelain mengeluarkan hasil penghitungan (ALU

Result) ALU juga mengeluarkan zero flagZero flag digunakan sebagai indikator apakah

nilai keluarannya nol atau bukan Jika nilai keluarannya adalah nol maka zero

flag bernilai 1 dan sebaliknya bernilai nol

19

g y

end-edited-20090423

Page 20: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

ALU (3) ALU memiliki 3 jalur kendali (3 bit):

Pada kelas instruksi R-format, ALU menjalankan Pada kelas instruksi R format, ALU menjalankan salah satu dari kelima fungsi di atas, tergantung pada nilai 6-bit fungsinya

Pada instruksi LW (load word) dan SW (store word) Pada instruksi LW (load word) dan SW (store word)ALU digunakan untuk menghitung alamat memori dengan melakukan penjumlahan

20

Pada instruksi beq (branch on equal) ALU melakukan proses pengurangan

end-edited-20090423

Page 21: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Adder (1)

Tujuan: Menjumlahkan dua buah inputMasukan: dua buah input n bitKeluaran: sebuah n bit output

21

p

end-edited-20090423

Page 22: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Adder (2)

Rangkaian yang ada dalam Adder adalah full adderadder

Simbol adder sama dengan simbol ALU, tetapi diberi nama Adddiberi nama Add

Terdapat dua buah adder:dd l hk d ( b )Adder yang menjumlahkan input dari PC (32 bit)

dengan bilangan 4Add j l hk h il j l hAdder yang menjumlahkan hasil penjumlahan

PC+4 (32 bit) dengan bilangan yang berasal dari bagian shift left 2 (32 bit)

22

bagian shift left 2 (32 bit)

end-edited-20090423

Page 23: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Shifter (1)

Tujuan: menggeser bit-bit input ke kiri sebanyak 2 kali atau mengalikan input dengan 4kali atau mengalikan input dengan 4

Masukan: 1 input (32 bit) K l 1 t t (32 bit)

23

Keluaran: 1 output (32 bit)

end-edited-20090423

Page 24: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Shifter (2)

Shift left 2: Menggeser input ke kiri sebanyak 2 bit2 bit

Operasi ini sama dengan mengalikan bilangan input dengan 4input dengan 4

Contoh:kMasukan:

0000000000000000 0000000000000010 2Keluaran:

0000000000000000 0000000000001000 8

24end-edited-20090423

Page 25: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

MUX (Multiplexer) (1)

Tujuan: Memilih satu dari 2 input yang tersedia k d l k kuntuk disalurkan ke output

Masukan: 2 buah input masing-masing 32 bit dan sebuah select (1 bit)

25

sebuah select (1 bit) Keluaran: 1 output (32 bit)

end-edited-20090423

Page 26: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

MUX (Multiplexer) (2)

Multiplexer ini disebut mux 2 ke 1 Terdapat 2 buah input dan 1 buah outputTerdapat 2 buah input dan 1 buah outputSelect berfungsi menentukan input mana

di ilih d t t k dik l kyang dipilih datanya untuk dikeluarkan Jumlah select tergantung banyaknya inputKarena input-nya ada 2 maka jumlah select-

nya cukup 1 buah saja yang dapat bernilai 0 y p j y g patau 1

26end-edited-20090423

Page 27: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Sign Extend (1)

Tujuan: Mengubah data 16 bit menjadi data 32 bit32 bit

Masukan: 1 input sebanyak 16 bitKeluaran: 1 output sebanyak 32 bit

27

Keluaran: 1 output sebanyak 32 bit

end-edited-20090423

Page 28: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Sign Extend (2)

Menambah bilangan 0 sebanyak 16 bit di awal (sebelah kiri) sehingga jumlah bitawal (sebelah kiri) sehingga jumlah bit menjadi 32 bit

Keluaran dari Sign Extend menjadi input ALUKeluaran dari Sign Extend menjadi input ALU atau menjadi input Shift left 2 yang terhubung ke Adderterhubung ke Adder

Contoh :k 0000 0000 00 0 0Masukan: 0000 0000 0010 1101

Keluaran:

28

0000 0000 0000 0000 0000 0000 0010 1101

Page 29: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Datapath MIPS

ALUResultADD

MUX

0

1

32

32

32

32

32

32

ADDResultADD

Result ShiftLeft 2

4 RegDst

Branch

MemRead

MemToReg

PCSrc

32

32

CONTROLUNIT

Instruction (31-26)MemToReg

ALUOp

MemWrite

ALUSrcRegWrite

6

ToR

eg

LUSr

c

mW

rite

Read Address

Instruction(31-0)

INSTRUCTIONAddress Read

Data

ReadRegister 1 Read

Data 1

REGISTERS

W it

ReadRegister 2

WriteRegister Read

Data 2ALU

ZeroFlag

ResultMUX

0

1MU

0M

1

PCInstruction (25-21)

Instruction (20-16)

Instruction (15-11)

32

5

5

5

Mem

T

AL

Mem

32

32

32

MEMORY DATAMEMORY

Write Data

Write Data

SignExtend

ALUControl

1 UX

1UX

0

( )

Instruction (15-0) 16 32

32

3

RegDst

32

32

29

Instruction (5-0) 26

32

MemRead

ALUOp

Page 30: Organisasi Dasar MIPS · Sli l k hil hitSelain mengeluarkan hasil penghitungan (ALU Result)ALU juga mengeluarkan zero flag Zero flagdigunakan sebagai indikator apakah nilai keluarannya

Referensi Hennessy, John L. dan Patterson, David A. 2005,

“Computer Organization and Design: The p g gHardware/Software Interface”. 3nd edition. Morgan Kaufmann publisher Inc. San Fransisco. USA

30end-edited-20090423