Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5...
Transcript of Arsitektur Prosesor MIPS Multi Siklus · L Organisasi dan Arsitektur Komputer – CSG2G3/2016 #5...
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])<<2)
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]<<2)
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