arsitektur prosesor mips multi siklus · l organisasi dan arsitektur komputer – csg2g3/2016 #5...
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