35
April 2016 Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27) Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom Diedit ulang oleh: Endro Ariyanto

Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Embed Size (px)

Citation preview

Page 1: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

April 2016

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

Prodi S1 Teknik Informatika Fakultas Informatika

Universitas Telkom

Diedit ulang oleh:

Endro Ariyanto

Page 2: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #1

Implementasi Multisiklus

Page 3: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #2

Datapath Siklus Tunggal MIPS

Page 4: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #3

Implementasi Datapath Multisiklus

• Setiap step eksekusi membutuhkan 1 siklus clock

• Unit fungsional bisa digunakan lebih dari sekali untuk setiap instruksi, asal dalam siklus yang berbeda

• Bertujuan untuk mereduksi jumlah hardware

Page 5: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #4

Abstraksi Datapath Multisiklus

Address

InstructionOr data

MEMORY

Data

Instruction

register

Memory data

register

Data

REGISTERS

Register #

Register #

Register #

A

B

ALUOutALU

PC

Perbedaan dengan siklus tunggal:

Menggunakan satu unit memory untuk data maupun instruksi

Menggunakan satu ALU saja

Satu atau lebih register (buffer) ditambahkan pada setiap unit utama untuk menahan sementara waktu nilai output karena akan digunakan pada siklus clock berikutnya

Instruction register, memory data register, A, B, ALUOut

Page 6: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5

Multisiklus Datapath Untuk Instruksi Dasar (1)

IR (Instruction Register) dan MDR (Memory Data Register) digunakan untuk menyimpan output memory pada saat pembacaan instruksi dan pembacaan data

Register A dan B digunakan untuk menahan operan register yang dibaca dari file register

Register ALUOut digunakan untuk menahan output dari ALU

Address

MemData

MEMORY

Write data

ALU

ZeroFlag

Result

M

U

X

0

1

Sign

Extend

M

U

X

0

1

M

U

X

0

1

M

U

X

0

1

PC

A

B

Shift

Left

2

Memory

data

register

ALUOut

M

U

X

0

3

1

2

Readregister1

REGISTERS

Read register 2

Write register

Write data

Read data 1

Read data 2

Instruction(25-21)

Instruction

Register

Instruction(20-16)

Instruction(15-0)

Instruction(15-11)

Instruction(15-0)

4

16 32

Page 7: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #6

• ALU dilengkapi dengan: – Multiplexer tambahan untuk input pertama:

pilihan antara register A atau PC

– Multiplexer untuk input ALU kedua (4 pilihan): register B, konstanta 4, sign extend, dan branch address

• Kemungkinan input untuk PC: – Output ALU: PC+4

– Register ALUOut: branch address

– Lower 26 bit IR yang di-shift left 2 bit dan digabungkan dengan bit 31-28 dari PC+4 (instruksi jump)

Multisiklus Datapath Untuk Instruksi Dasar (2)

Page 8: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #7

Kendali Multisiklus Datapath

Address

MemData

MEMORY

Write data

ALU

ZeroFlag

Result

M

U

X

0

1

Sign

Extend

M

U

X

0

1

M

U

X

0

1

M

U

X

0

1

PC

A

B

Shift

Left

2

Memory

data

register

ALUOut

M

U

X

0

3

1

2

Readregister1

REGISTERS

Read register 2

Write register

Write data

Read data 1

Read data 2

Instruction(25-21)

Instruction

Register

Instruction(20-16)

Instruction(15-0)

Instruction(15-11)

Instruction(15-0)

4

IorD MemRead MemWrite IRWrite RegDst RegWrite ALUSrcA

ALUSrcBMemtoReg

16 32

ALU

Control

Instruction (5-0)

ALUOp

Page 9: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #8

Address

MemData

MEMORY

Write data

ALU

ZeroFlag

Result

M

U

X

0

1

Sign

Extend

M

U

X

0

1

M

U

X

0

1

M

U

X

0

1

PC

A

B

Shift

Left

2

Memory

data

register

ALUOut

M

U

X

0

3

1

2

Readregister1

REGISTERS

Read register 2

Write register

Write data

Read data 1

Read data 2

Instruction(25-21)

Instruction

Register

Instruction(20-16)

Instruction(15-0) Instruction

(15-11)

Instruction(15-0)

4

IorD

MemRead

MemWrite

IRWrite RegDst

RegWrite

ALUSrcA

ALUSrcB

MemtoReg

16 32

CONTROL

UNIT

PCWrite

PCWriteCond

M

U

X

0

1

2

Shift

Left

2

ALU

Control

Instruction(31-26)

Instruction(5-0)

Instruction(25-0)

ALUOp

PCSource

JumpAddress (31-0)

26 28

Datapath Multisiklus MIPS

Page 10: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #9

Rangkuman

• Rangkuman tahapan yang diambil untuk mengeksekusi kelas instruksi

Page 11: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #10

Bit-Bit Kendali Multisiklus (1)

1 Bit Kendali Nama Sinyal Akibat sinyal Tidak

aktif Akibat sinyal aktif

RegDst Nomor register tujuan untuk penulisan datang dari field rt

Nomor register tujuan untuk penulisan datang dari field rt

RegWrite None Terpilih nomor register yang akan ditulisi dengan data pada write data

ALUSrcA Operan pertama ALU = PC Operan ALU adalah register A

MemRead None

MemWrite None

MemtoReg

IorID

IRWrite None

PCWrite None

PCWriteCond None

Page 12: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #11

Bit-Bit Kendali Multisiklus (2)

2 Bit Kendali

Nama Sinyal Value Effect

ALUOp 00

01

10

11

ALUSrcB1 00

01

10

11

PCSource 00

01

10

Page 13: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #12

Eksekusi Instruksi

Siklus: 1. Mengambil instruksi: Instruction Fetch

(IF)

2. Menerjemahkan instruksi: Instruction Decode (ID)

3. Eksekusi: Execution (EX)

4. Akses Memori: Memory Access (MEM)

5. Penyelesaian pembacaan memori: Memory Read Completion

Page 14: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #13

Siklus 1: Pengambilan Instruksi (Instruction Fetch / IF) (1)

• Mengambil instruksi dari memori dan menghitung alamat instruksi berikutnya:

IR = Memory [PC]

PC = PC + 4

• Operasi:

– Mengirim nilai PC ke memori sebagai alamat, membaca instruksi dan menyimpannya dalam Instruction Register (IR)

– Nilai PC ditambah 4

• Sinyal kendali apa saja yang digunakan?

Page 15: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #14

Siklus 1: Pengambilan Instruksi (Instruction Fetch / IF) (2)

• Setting untuk memilih PC sebagai sumber alamat: – set IorD 0 (alamat yang masuk ke memori adalah alamat

instruksi)

– MemRead 1 (agar memori dapat dibaca)

– IRWrite 1 (agar IR bisa ditulisi)

• Setting untuk menambah nilai PC dengan 4: – ALUSrcA 0 (mengirim PC ke ALU)

– ALUSrcB 01 (mengirim 4 ke ALU)

– ALUOp 00 (agar ALU menjumlah)

• Setting untuk menyimpan alamat instruksi yang telah ditambah 4 ke dalam PC: – PCSource 00 (agar nilai PC baru menuju PC)

– PCWrite1 (agar PC dapat ditulisi)

Page 16: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #15

Siklus 2: Penterjemahan Instruksi (Instruction Decode / ID) dan Fetch Register (1)

• A = Reg[IR[25-21]]

• B = Reg[IR[20-16]]

• ALUOut = PC + (Sign-extend(IR[15-0])<<2)

Page 17: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #16

• Operasi: – mengakses register file untuk membaca

register rs dan rt

– menyimpan hasilnya ke dalam register A dan B

• Karena register A dan B ditulisi pada setiap siklus, register file dapat dibaca pada setiap siklus dengan nilai yang disimpan ke dalam A dan B

Siklus 2: Penterjemahan Instruksi (Instruction Decode / ID) dan Fetch Register (2)

Page 18: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #17

• Dilakukan perhitungan alamat tujuan pencabangan dan menyimpannya ke dalam ALUOut – Alamat pada ALUOut akan digunakan pada clock

berikutnya jika instruksinya adalah branch

• Setting yang diperlukan: – ALUSrcA 0 (sehingga nilai PC dikirim ke ALU)

– ALUSrcB 11 (sehingga sign-extended dan shifted offset field dikirim ke ALU)

– ALUOp 00 (sehingga ALU menjumlah)

Siklus 2: Penterjemahan Instruksi (Instruction Decode / ID) dan Fetch Register (3)

Page 19: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #18

Siklus 3: Execution (EX)

• Operasi datapath ditentukan oleh kelas instruksinya: – R-type:

• ALUOut = A op B

– Memory reference: (lw dan sw) • ALUOut = A + sign-extend(IR[15-0])

– Branch: • if (A==B) PC = ALUOut

– Jump: (|| = concat) • PC = PC[31-28] || (IR[25-0]<<2)

Page 20: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #19

Siklus 4: Akses Memori atau Penyelesaian Tipe-R

• Operasi datapath ditentukan oleh kelas instruksinya: – R-Type

• Reg[IR[15-11]] = ALUOut

– Memory reference: • MDR = Memory [ALUOut] untuk operasi load

• Memory[ALUOut] = B untuk operasi store

Page 21: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #20

Siklus 5: Memory Read Completion (MRC)

• Load: Reg[IR[20-16]] = MDR

• Data dari Register Data Memori disimpan ke dalam register

• Alamat register menggunakan instruksi bit 20-16

Page 22: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #21

Rangkuman

• Rangkuman tahapan yang diambil untuk mengeksekusi kelas instruksi

Page 23: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #22

Mendefinisikan Kendali

Page 24: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #23

Datapath Multisiklus MIPS

Page 25: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #24

Page 26: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #25

Finite State Machine

• Menggambarkan serangkaian state pada prosesor

• Level abstraksi tinggi kendali finite state machine

Page 27: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #26

IF dan ID

• Bagian fetch dan decode instruksi sama untuk semua instruksi

Page 28: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #27

Instruksi Mengacu Memori

• Finite state machine untuk mengendalikan instruksi memory-reference memiliki empat state

Page 29: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #28

Instruksi Tipe-R

• Instruksi R-type dapat diimplementasikan dengan dua buah finite state machine

Page 30: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #29

Instruksi Pencabangan

• Instruksi branch memerlukan satu state

Page 31: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #30

Instruksi Jump

• Instruksi jump memerlukan satu state yang mengaktifkan dua sinyal kendali untuk menulis PC dengan 26 bit bawah pada register instruksi, digeser ke kiri 2 bit dan digabnungkan dengan 4 bit atas pada PC

Page 32: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #31

FSM

• Kendali finite state machine keseluruhan

Page 33: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #32

Pengendali FSM

• Kendali finite state machine biasanya diimplementasikan menggunakan satu blok rangkaian kombinasional dan register yang menyimpan state terakhir

Page 34: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #33

Pengendali FSM

• Terdiri dari dua jenis rangkaian: – Rangkaian kombinasional

– Rangkaian sekuensial

• State register digunakan untuk menyimpan nilai state sebelumnya

• Keluaran rangkaian kombinasional menyertakan state terakhir

Page 35: Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5 Multisiklus Datapath Untuk Instruksi Dasar (1) IR (Instruction Register) dan MDR (Memory

Organisasi dan Arsitektur Komputer – CSG2G3/2016 #34

Referensi

• Hennessy, John L. dan Patterson, David A. 2005. “Computer Organization and Design: The Hardware/Software Interface”. 3rd edition. Morgan Kaufmann publisher Inc. San Fransisco. USA