arsitektur prosesor mips multi siklus · l organisasi dan arsitektur komputer – csg2g3/2016 #5...

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

Author: dinhhuong

Post on 01-Apr-2019

220 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

April 2016

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

Prodi S1 Teknik Informatika Fakultas Informatika

Universitas Telkom

Diedit ulang oleh:

Endro Ariyanto

Organisasi dan Arsitektur Komputer CSG2G3/2016 #1

Implementasi Multisiklus

Organisasi dan Arsitektur Komputer CSG2G3/2016 #2

Datapath Siklus Tunggal MIPS

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

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

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

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)

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

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

Organisasi dan Arsitektur Komputer CSG2G3/2016 #9

Rangkuman

Rangkuman tahapan yang diambil untuk mengeksekusi kelas instruksi

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

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

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

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?

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)

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])

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)

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)

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]

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

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

Organisasi dan Arsitektur Komputer CSG2G3/2016 #21

Rangkuman

Rangkuman tahapan yang diambil untuk mengeksekusi kelas instruksi

Organisasi dan Arsitektur Komputer CSG2G3/2016 #22

Mendefinisikan Kendali

Organisasi dan Arsitektur Komputer CSG2G3/2016 #23

Datapath Multisiklus MIPS

Organisasi dan Arsitektur Komputer CSG2G3/2016 #24

Organisasi dan Arsitektur Komputer CSG2G3/2016 #25

Finite State Machine

Menggambarkan serangkaian state pada prosesor

Level abstraksi tinggi kendali finite state machine

Organisasi dan Arsitektur Komputer CSG2G3/2016 #26

IF dan ID

Bagian fetch dan decode instruksi sama untuk semua instruksi

Organisasi dan Arsitektur Komputer CSG2G3/2016 #27

Instruksi Mengacu Memori

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

Organisasi dan Arsitektur Komputer CSG2G3/2016 #28

Instruksi Tipe-R

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

Organisasi dan Arsitektur Komputer CSG2G3/2016 #29

Instruksi Pencabangan

Instruksi branch memerlukan satu state

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

Organisasi dan Arsitektur Komputer CSG2G3/2016 #31

FSM

Kendali finite state machine keseluruhan

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

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

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