Pipelining. EdyWin 1

dokumen-dokumen yang mirip
From M.R Zargham s book (Chapter 3.1)

Diktat Kuliah - Pipeline

Pipeline pada x86. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX

CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

Meningkatkan Kinerja dengan Pipelining

CENTRAL PROCESSING UNIT CPU

ARSITEKTUR DAN ORGANISASI KOMPUTER

MATA KULIAH: PIPELINING PERTEMUAN 12

Arsitektur Set Instruksi. Abdul Syukur

Hanif Fakhrurroja, MT

TEKNIK PIPELINE & SUPERSCALAR. Team Dosen Telkom University 2016

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3.

ORGANISASI KOMPUTER DASAR

PERTEMUAN. 1. Organisasi Processor. 2. Organisasi Register

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

Organisasi Komputer II STMIK AUB SURAKARTA

STRUKTUR CPU. Arsitektur Komputer

SET INSTRUKSI. Organisasi dan Arsitektur Komputer

Aditya Wikan Mahastama

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

3. ALU. Tugas utama adalah melakukan semua perhitungan aritmatika dan melakukan keputusan dari suatu operasi logika.

Organisasi Sistem Komputer

PAPER PIPELINE INSTRUKSI

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

Organisasi Komputer. Candra Ahmadi, MT

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Unit Kendali (2) CONTROL UNIT. RegDst Branch. MemRead. MemToReg. Instruction (31-26) ALUOp MemWrite. ALUSrc. RegWrite

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Oleh : Agus Priyanto, M.Kom

Hanif Fakhrurroja, MT

Eksekusi instruksi Tipe R, LW-SW, Beq, Jump, dan Model Pengalamatan (Pertemuan ke-24)

PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI

Operasi Unit Kontrol. Organisasi Komputer II. STMIK AUB Surakarta

Eksekusi instruksi Tipe R, LW-SW, Beq, dan Jump (Pertemuan ke-24)

Organisasi Komputer II STMIK-AUB SURAKARTA

Kumpulan instruksi lengkap yang dimengerti

Table Pipelining and replication in parallel computer architecture

Pertemuan 9 : CPU (CENTRAL PROCESSING UNIT)

Instructions Set. Element dari instruction. Representasi dari Op code

Materi 6: Control Unit Operations

3. MODE PENGALAMATAN CHAERUL UMAM, S.KOM

Set Instruksi: Set instruksi?

Struktur Central Processing Unit Universitas Mercu Buana Yogyakarta

Arsitektur dan Organisasi

Struktur dan Fungsi CPU. Ptputraastawa.wordpress.com

Oleh: 1. Singgih Gunawan Setyadi ( ) 2. Handung Kusjayanto ( ) 3. Wahyu Isnawan ( )

Instruction Execution Phases

ARSITEKTUR KOMPUTER SET INSTRUKSI

Simple As Possible (SAP) - 1. Abdul Syukur

PROSESOR: CONTROL DAN DATAPATH. Oky Dwi Nurhayati, ST, MT

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER CENTRAL PROCESSING UNIT

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I)

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

Pertemuan Ke-12 RISC dan CISC

Pertemuan Ke-9 PIPELINING

Abstrak. Pendahuluan

Teknologi Scalar untuk meningkatkan Kinerja Prosesor

Organisasi & Arsitektur Komputer

Bab 2. Instructions: Bahasa dari Komputer

Simple As Possible (SAP) - 2. Abdul Syukur

SET INSTRUKSI. ORGANISASI DAN ARSITEKTUR KOMPUTER

TUGAS MAKALAH STRUKTUR dan FUNGSI CPU GURU PEMBIMBING: IVAN ARIVANDI. Oleh: NOVY PUSPITA WARDANY

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

CPU PERKEMBANGAN ARSITEKTUR CPU. ( Central Processing Unit )

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

Pertemuan ke - 5 Struktur CPU

Perangkat dan format Instruksi, Immediate, Direct, & Indirect Addressing

Organisasi & Arsitektur Komputer

CONTROL UNIT. Putu Putra Astawa

William Stallings Computer Organization and Architecture

Pertemuan Ke-7 INSTRUCTION SET

Struktur CPU 3/23/2011

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

Simple As Posible 2 (bag-1)

Simple As Possible (SAP) - 2. Abdul Syukur

Soal Komunikasi Data Kelas XI TKJ

Struktur Central Processing Unit Universitas Mercu Buana Yogyakarta

Struktur dan Fungsi Processor

Bagian 2 STRUKTUR CPU

INSTRUKSI MIPS. agussalim

PERTEMUAN 2 APLIKASI KOMPUTER. Sistem Operasi. Rangga Rinaldi, S.Kom, MM. Modul ke: Fakultas Desain dan Seni Kreatif. Program Studi Desain Produk

Hanif Fakhrurroja, MT

Disusun oleh: Endro Ariyanto. Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom

Simple As Posible - 1

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER SISTEM INPUT OUTPUT

ORGANISASI DAN ARSITEKTUR KOMPUTER TUGAS KELOMPOK

CENTRAL PROCESSING UNIT (CPU) Sebuah mesin tipe von neumann

Instruksi-Instruksi MIPS

Materi 2: Computer Systems

Sistem Operasi. Struktur Sistem Komputer. Adhitya Nugraha. Fasilkom 10/6/2014

Arsitektur dan Organisasi Komputer Set Intruksi

Mikroprosesor. Nuryono Satya Widodo, S.T.,M.Eng. Mikroprosesor 1

CENTRAL PROCESSING UNIT (CPU)

Karakteristik Instruksi Mesin

Transkripsi:

Pipelining EdyWin 1

Pipelining adalah teknik pemrosesan dengan mengoverlapkan eksekusi beberapa sub-proses. Tenik pemrosesan : (a) Sekuensial, (b) Paralel (c) Pipeline Contoh : Proses pencucian baju. Ani, Budi, Cindy dan Dani masing masing mempunyai sekeranjang baju kotor yang harus dicuci, dikeringkan dan kemudian disetrika. Pekerjaan : A B C D 4 cucian Sub-pekerjaan 1 Pencucian ( 40 menit) Sub-pekerjaan 2 Sub-pekerjaan 3 Pengeringan ( 30 menit) Penyetrikaan ( 20 menit ) Waktu total : 90 menit EdyWin 2

Laundry sekuensial untuk 4 cucian. waktu t u r u t a n A B 40 30 20 40 30 20 40 30 20 40 30 20 1 1 1 1 1 1 menit c u c i a n C D 1 1 1 1 1 1 90 menit 90 menit 90 menit 90 menit Proses laundry 4 cucian secara sekuensial membutuhkan 1 mesin cuci, 1 pengering dan 1 tukang-setrika, waktu total = 4x90 menit EdyWin 3

Laundry Paralel untuk 4 cucian waktu t 40 30 20 menit A 1 1 1 Proses laundry 4 cucian secara paralel B C 2 2 3 3 2 3 membutuhkan : 4 mesin cuci, 4 pengering dan 4 orang penyetrika, waktu total = 90 menit D 4 4 4 EdyWin 4 90 menit

Laundry Pipeline untuk 4 cucian waktu t 40 40 40 40 40 40 40 40 40 menit u r u t a n c u c i a n A B C 1 1 1 1 1 1 1 1 1 Proses laundry secara pipeline membutuhkan 1 mesin cuci, 1 pengering, 1 orang penyetrika waktu total = 6 x 40 menit D 1 1 1 = 240 menit T p = 1 Pipeline Cycle = Max { 40, 30, 20 } T p T p T p T p T p T p = 40 menit EdyWin 5

Sekuensial : Pekerjaan berikutnya baru bisa dimulai setelah pekerjaan sebelumnya diselesaikan. 1 pekerjaan (A) 1 pekerjaan (B) 2 pekerjaan diselesaikan 1 pekerjaan (C) 1 pekerjaan (D) Pipelined : Dengan mengoverlapkan sub-pekerjaan, pekerjaan berikutnya bisa dimulai tanpa menunggu selesainya pekerjaan sebelumnya 1 2 3 4 A B C A B C A B C A B C Pipelining meningkatkan throughput pekerjaan 3 pekerjaan diselesaikan EdyWin 6 t

Pipelined : Untuk pemrosesan secara pipeline, Pecah setiap pekerjaan menjadi K sub-pekerjaan. sub pekerjaan 1 sub pekerjaan 2 sub pekerjaan 3 sub pekerjaan K Bila k adalah tunda eksekusi sub-pekerjaan k, maka pipeline-cycle T p = max,..., waktu EdyWin 7

Gantt Chart Gantt Chart adalah diagram ruang-waktu yang digunakan untuk menggambarkan aktifitas proses pipelining. Contoh 1 : Untuk sebuah proses yang dapat didekomposisi menjadi 2 sub-proses ( Pipeline 2-ruas ), Gantt Chartnya adalah sebagai berikut : space (= sub proses ) O i : output pekerjaan i O 1 O 2 O 3 O 4 O 5 O n 2 1 I 1 I 2 I 3 I 4 I 5 I n-1 I n time EdyWin 8 I i : input pekerjaan i

Contoh 2 : Pipeline 4-ruas, K = 4 0 output n output T 1 2 3 4 (k-1)t n.t I n latency Pada daerah latency, pipeline belum menghasilkan output EdyWin 9

Berapakah jumlah pekerjaan yang dapat diselesaikan oleh (a) proses pipeline (b) proses non-pipeline??? Berapakah peningkatan throughput oleh proses pipeline???? (k-1)t n.t o 1 o n 1 2 3 4 Pipeline 4-ruas 1 2 3 4 Non-Pipeline EdyWin 10

Peningkatan throughput (jumlah pekerjaan yang dapat diselesaikan per satuan waktu) dengan pipeline k-ruas : Untuk eksekusi n buah pekerjaan, Non-pipeline : Waktu eksekusi = n. k.t (1) Pipeline : Waktu eksekusi = n.t + (k-1). T (2) latency Peningkatan throughput = = (1) (2) n.k k + (n-1) ~ ~ k utk n >> 1 ideal EdyWin 11

Peningkatan throughput dengan pipeline Peningkatan throughput eksekusi instruksi dengan pendekatan pipeline INSTRUCTION PIPELINE EdyWin 12

INSTRUCTION PIPELINE Arsitektur pipeline untuk pekerjaan eksekusi instruksi eksekusi instruksi I 1 eksekusi instruksi I 2 eksekusi instruksi I 3 eksekusi instruksi I 4 t Eksekusi sebuah instruksi disebut 1 instruction-cycle. Sub pekerjaan 1 instruction cycle mempunyai pola beraturan (sama untuk semua instruksi) EdyWin 13

1 2 3 4 Instruction Fetch Instruction Decode Operand Fetch Execute 1 Instruction Cycle = 1 set sub-cycle sub-cycle 1; waktu yg dibutuhkan : 1 sub-cycle 2; waktu yg dibutuhkan : 2 sub-cycle 3; waktu yg dibutuhkan : 3 sub-cycle 4; waktu yg dibutuhkan : 4 = sub proses 5 Result Store sub-cycle 5; waktu yg dibutuhkan : 5 6 Next Instruction sub-cycle 6; waktu yg dibutuhkan : 6 EdyWin 14

Dengan struktur pipeline, i harus diseragamkan Misal : 1 = 20 ndet 2 = 3 ndet 3 = 20 ndet 4 = 5 ndet 5 = 20 ndet 1 = 3 ndet maka, Pipeline Cycle =? T p = Max { i }, untuk i = 1,...,6 T p = 20 detik EdyWin 15

Instruction Fetch Instruction Decode 20 20 3 20 masalah! idle 23 25 Instruction Fetch Instruction Decode Operand Fetch 20 20 25 25 Operand Fetch Execute 5 20 Execute Result Store Next Instruction T=20 ndet 20 20 3 20 23 25 diatasi dengan Pengelompokan sub-cycle Result Store Next Instruction EdyWin 16 T = Max{23,25,23} = 25 ndet

Instruction Pipeline 5-ruas IF : Baca satu instruksi dari memory (Instruction Fetch) ID/OF : Instruksi di interpretasikan (Instruction Decode) dan Operand dibaca dari register atau dari memory (Operand Fetch) EX : Laksanakan perintah yang dimaksud oleh instruksi (Execution) STO : Simpan hasil eksekusi ke memory (MEM : Memory)) atau Simpan hasil eksekusi ke register (WB: Write Back) STO IF ID/OF EX MEM WB EdyWin 17

Hardware untuk pipeline P C Instr. Mem. Instr 21:0 18:14 4:0 29:25 12:0 Xtnd << 2 rega regb datw regw Xtnd data. Array datb alua alub datin Data Mem. datout addr Wdest IncrPC n P C Wdata STO IF instruction fetch ID/OF instruction decode/ operand fetch EX execute/ address calculation MEM memory access WB write back EdyWin 18

Eksekusi instruksi RR (operand operandnya terletak dalam register) reg[r1] reg[r1] op reg[r2] IF: Instruction fetch IR Memory[PC] PC increment [PC] (alamat instruksi yang akan dieksekusi pada instruction cycle berikutnya) ID: Instruction decode/operand-fetch A register [R1] B register [R2] Ex: Execute Output A op B A dan B: register register pada bagian input MEM: Memory nop (nop = no operation, tidak ada penulisan hasil ke memory) WB: Write back ister[r1] Output (menuliskan hasil ke register R1) EdyWin 19

Eksekusi instruksi dengan operand sumber1 di register, operand sumber2 dan operand hasil di memory mem[m1] r[r1] op mem[m1] IF: Instruction fetch IR <-- IMemory[PC] PC Incr [PC] ID: Instruction decode/operand-fetch A register [R1] B mem [M1] Ex: Execute Output A op B MEM: Memory Mem [M1] Output hasil disimpan di memory WB: Write back nop no-operation, hasil tidak disimpan di register EdyWin 20

Eksekusi instruksi percabangan bersyarat BRZ IF: Instruction fetch IR IMemory[PC] PC incr.pc ID: Instruction decode/operand-fetch nop Ex: Execute Target PC + displacement MEM: Memory PC Target atau WB: Write back nop Branch if Zero syarat percabangan tidak ada operand-fetch menghitung alamat target displacement (relative addressing mode) (= alamat instruksi berikutnya) Bila syarat percabangan dipenuhi alamat penyimpanan instruksi berikutnya tergantung dari hasil pengujian syarat (hasil = 0? ) EdyWin 21

Pipeline Hazards Hazard adalah keadaan yang dapat menimbulkan tunda (delay, stall) pada pipeline. Pada keadaan stall, pipeline tidak menghasilkan output sehingga peningkatan throughput ideal tidak dapat dicapai. o 1 o M ideal I 1 o 1 I M o N real N < M I 1 I j I j+1 stall EdyWin 22 I N

Tiga tipe hazard : Structural hazards: terjadi akibat konflik penggunaan hardware resources (memory, register, unit fungsional,...) Data hazards contoh : sebuah instruksi membutuhkan data yang belum selesai diproses oleh instruksi sebelumnya Control hazards keputusan kendali sebagai hasil eksekusi instruksi sebelumnya belum diketahui. contoh : alamat instruksi yang harus dieksekusi berikutnya (setelah instruksi percabangan bersyarat) belum EdyWin 23 diketahui.

Structural hazards Sumber sumber hazard M i M d : Bagian memory yang menyimpan instruksi (program) : Bagian memory yang menyimpan data (operand) : ister register didalam CPU IF ID/OF EX MEM WB t M i / M d Md lokasi instruksi: di memory lokasi operand : di memory atau didalam register CPU EdyWin 24

Ins.1 IF ID/OF EX MEM WB M i / M d M d M d : data memory M i : instruction memory t Ins.2 M i / M d M d Ins.3 M i / M d M d Ins.4 M i / M d M d Ins.5 EdyWin STRUCTURAL HAZARD 25 M i / M d M d

Bila digunakan memory yang dual-port, sehingga akses ke M i dan M d dapat dilakukan serentak, maka konflik dapat dihindari. IF ID/OF EX MEM WB Ins.1 M i / M d M d Ins.2 M i / M d M d Ins.3 M i / M d M d Ins.4 M i / M d M d / M i M M d EdyWin d 26 Ins.5

Dual port memory Single port memory port instruksi instruksi/ program instruksi port instruksi/ data port data data data EdyWin 27

DATA HAZARD akibat adanya ketergantungan data antar instruksi ADD R1, R2, R3 SUB R4, R1, R3 AND R6, R1, R7 ada ketergantungan data antar instruksi! OR R8, R1, R9 XOR R10, R1, R11 Misalkan mula mula nilai R1 = 5, R2 = 1, R3 = 2, R7 = 4, R9 = 8, berapakah seharusnya nilai akhir R4, R6 dan R8? Non-pipeline : R4 =?, R6 =?, R8 =? Pipeline : R4 =?, R6 =?, R8 =? EdyWin 28

t (clock cycles) T1 T2 T3 T4 T5 T6 T7 IF ID/OF EX MEM WB harga r1 yang baru add r1,r2,r3 M i baca r2,r3 M d simpan r1 sub r4,r1,r3 M i baca r1, r3 M d and r6,r1,r7 M i baca r1, r7 M d or r8,r1,r9 harga r1 lama M i baca r1, r9 M d xor r10,r1,r11 harga r1 tak-tentu baca r1,r11 EdyWin 29 DATA HAZARD M i M d

NON-PIPELINE R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 5 1 2 4 8 1 ADD R1, R2, R3 3 1 2 4 8 1 SUB R4, R1, R3 3 1 2 1 4 8 1 AND R6, R1, R7 3 0 4 8 1 OR R8, R1, R9 3 11 8 1 XOR R10, R1, R11 3 1 2 1 0 11 8 8 1 PIPELINE 3 4 8 tidak sama 13 atau 11 EdyWin 30

Klasifikasi data hazards program Tipe ketergantungan data antar instruksi: (Instruksi I i adalah instruksi yang dieksekusi sebelum instruksi I J ) RAW -- read after write Instruksi J mencoba membaca data sebelum instruksi I mengubahnya. I I I J WAR -- write after read instruksi J mencoba mengubah (write) data sebelum data tersebut dibaca oleh instruksi I. WAW -- write after write Instruksi J mencoba menulis (mengubah) sebuah data sebelum data tersebut diubah oleh instruksi I. Urutan penulisan salah. EdyWin 31

Deteksi sumber data hazard LD R1, 45(R2) write R1 DADD R5, R6, R1 read R1 DSUB R8, R6, R7 write R8 RAW OR R7, R5, R8 read R8 AND R7, R1, R5 LD R1, 45(R2) DADD DSUB R5, R6, R1 R8, R6, R7 read R6 read R6 RAR* OR R7, R5, R8 read R5 AND R7, R1, R5 read R5 LD R1, 45(R2) DADD DSUB R5, R6, R7 R8, R1, R7 read R7 WAR OR R7, R5, R8 write R7 AND R7, R1, R5 LD R1, 45(R2) DADD R5, R6, R1 DSUB R8, R6, R7 WAW OR R7, R5, R8 write R7 EdyWin AND R7, R1, R5 write R7 32

Contoh : Untuk format instruksi opcode operand-tujuan, operand-sumber1, operand-sumber2 Tipe Data Hazard RAW RAR WAR Contoh I i : LD R1, 45(R2) I i+1 : DADD R5, R6, R1 I i : DADD R5, R6, R1 I i+1 : DSUB R8, R6, R7 I i : DSUB R8, R1, R7 I i+1 : OR R7, R5, R8 Deteksi operand tujuan pada instruksi I i = operand sumber pada instruksi I i+1? operand sumber pada instruksi I i = operand sumber pada instruksi I i+1? operand sumber pada instruksi I i = operand tujuan pada instruksi I i+1? WAW I i : OR R7, R5, R8 I i+1 : AND R7, R1, R5 operand tujuan pada instruksi I i = operand tujuan pada instruksi I i+1? EdyWin 33 Deteksi dapat dilakukan secara hardware maupun secara software (oleh compiler)

Deteksi secara Software Kompiler mengenali sumber data hazard dan menambahkan instruksi NOP (no operation) untuk mengeliminasi data hazard SUB R2, R1, R3 ; isi register R2 diubah NOP ; NOP ; 3 instruksi no operation NOP ; AND R12, R2, R5 ; isi R2 yg baru sudah dapat digunakan OR R13, R6, R2 ADD R14, R2, R2 SW 100 (R2), R15 atau instruksi instruksi yang tidak menimbulkan data hazard EdyWin 34

Untuk ruas program dibawah ini, dimana saja instruksi NOP harus disisipkan? sub R2, R1,R3 and R4, R2,R5 or R8, R2,R6 add R9, R4,R2 slt R1, R6,R7 EdyWin 35

t (clock cycles) IF ID/OF EX MEM WB harga r2 yang baru sub r2,r1,r3 M i M d NOP bubble bubble bubble bubble bubble NOP bubble bubble bubble bubble bubble NOP bubble bubble bubble bubble bubble and r12,r2,r5 EdyWin 36 M i membaca r2 yang sudah diubah oleh instruksi sub M d

Disamping Data Hazard, kompiler juga dapat mendeteksi potensi terjadinya structural hazard, sehingga kompiler dapat menyisipkan instruksi NOP pada saat kompilasi. Apa kelemahan penyisipan instruksi NOP untuk mengatasi data-hazard atau Structural hazard???? EdyWin 37

Control Hazard Add BRZ Load Sub Mult Hazard tipe ini ditimbulkan oleh perubahan aliran eksekusi instruksi, sebagai hasil eksekusi instruksi percabangan (BRANCH, JUMP, CALL, GOTO,...) atau interupsi Bila dari hasil pengujian syarat dipenuhi maka instruksi berikutnya adalah instruksi AND, tetapi bila syarat tidak dipenuhi maka instruksi berikutnya adalah instruksi Load AND SHL Add Dari eksekusi instruksi BRZ, alamat instruksi berikutnya (target) baru diketahui pada waktu instruksi BRZ berada pada ruas MEM, atau setelah syarat diuji (pada ruas EX) Pada saat itu instruksi2 Load, Sub dan Mult sudah (terlanjur) masuk pipeline. EdyWin 38

alamat 0 1 2 3 4 5 6 7 8 9 10 instruksi I a I b I c I d I e I f I g I h I i I j I k Misalkan I c = instruksi BRZ 4 Alamat next-instruction = displacement isi PC (= 3), yaitu bila syarat tidak dipenuhi Alamat target = PC + 4, yaitu bila syarat dipenuhi EdyWin 39

Eksekusi instruksi percabangan bersyarat IF: Instruction fetch IR IMemory[PC] PC incr.pc misal alamat next-instruction BRZ ID: Instruction decode/operand-fetch nop tidak ada operand-fetch Ex: Execute pengujian syarat apakah hasil = 0? Target PC +displacement menghitung alamat target (alamat instruksi berikutnya) MEM: Memory PC Target Bila syarat percabangan dipenuhi. Bila tidak dipenuhi mk digunakan isi PC hasil inrement pada fase IF WB: Write back nop Tergantung hasil pengujian syarat pada fase EX EdyWin 40

Add Mem Mem BRZ Mem Mem Load Mem Mem Mem Sub Mem Mem Mult dibatalkan (flush) Mem AND Mem CONTROL HAZARD EdyWin 41

Deteksi control hazard secara software oleh kompiler dapat dilakukan. Instruksi NOP akan disisipkan dibawah instruksi percabangan. Berapa jumlah instruksi NOP yang harus dididipkan dibawah intruksi percabangan bersyarat dan berapa untuk instruksi percabangan takbersyarat? EdyWin 42

DETEKSI HAZARD dan STALL SECARA HARDWARE Untuk deteksi hazard dan stall secara hardware, sebuah modul hardware akan : Mendeteksi hazard Dengan membandingkan bagian operand dari instruksi I i+1 yang sudah berada dalam register instruksi (hasil dari fase IF untuk instruksi I i+1 ) dengan bagian operand dari instruksi I i. Memberikan tunda (stall) a) menonaktifkan ruas ID/OF bagi I i+1, sehingga instruksi Ii+1 tidak diproses oleh ruas ID/OF. b) menonaktifkan ruas IF bagi instruksi instruksi Ii+2, Ii+3,... tidak dapat masuk kedalam pipeline. Ruas IF dan ID/OF diaktifkan kembali setelah hazard diatasi (misal EdyWin 43 setelah hasil instruksi I i disimpan ke operand tujuan)

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 sub R2, R1, R3 M i M d and R12, R2, R5 Bubble Bubble M i M d IF ID stall ID aktif or R13, R6, R2 IF stall ID stall M i M d IF aktif ID aktif add R14, R2, R2 IF stall ID stall M i M d EdyWin 44

(a) Identifikasikan Structural hazard? Data hazard? DADD DSUB AND OR XOR R1, R2, R3 R4, R1, R5 R6, R1, R7 R8, R1, R9 R10, R1, R11 LD R1, 0(R2) DSUB R4, R1, R5 AND R6, R1, R7 OR R8, R1, R9 (b) Gambarkan Gantt Chartnya EdyWin 45

Kinerja : stall tidak dihasilkan output WB MEM EX ID/OF IF AND insruksi instuksi LOAD, SUB, MULT yang sudah terlanjur masuk pipeline Waktu eksekusi n buah instruksi n : Jumlah instruksi yg dieksekusi k : Jumlah ruas pipeline = (k-1) T + n.t + stall > (k-1) T + n.t Makin banyak stallnya maka kinerja pipeline akan menurun. EdyWin 46

Peningkatan kecepatan dengan Pipelining Speedup from pipelining = Average Instr. Time Unpipelined Average Instr. Time Pipelined = CPI unpipelined CPI pipelined Clock Cycle unpipelined Clock Cycle pipelined Tanpa stall = CPI unpipelined CPI pipelined Clock Cycle unpipelined Clock Cycle pipelined Ideal CPI = CPI unpipelined /Pipeline depth ~ 1 = Jumlah ruas pipeline Speedup = Ideal CPI Pipeline depth CPI pipelined Clock Cycle unpipelined Clock Cycle pipelined EdyWin 47

Speedup = Ideal CPI Pipeline depth CPI pipelined Clock Cycle unpipelined Clock Cycle pipelined CPI pipelined = Ideal CPI + Pipeline stall clock cycles per instr Speedup = Ideal CPI x Pipeline depth Ideal CPI + Pipeline stall CPI Clock Cycle unpipelined Clock Cycle pipelined Untuk Ideal CPI ~ 1, Speedup = Pipeline depth 1 + Pipeline stall CPI Clock Cycle unpipelined Clock Cycle pipelined EdyWin 48

stall tidak dihasilkan output WB MEM EX ID/OF IF 10 instruksi 3 cycle stall Pipeline Stall CPI = (3/10) cycle per instruction EdyWin 49

Mesin A: Dual ported memory Contoh : Dual-port vs. Single-port Mesin B: Single ported memory, tetapi pipeline-nya menggunakan pesat clock yang 1.2 kali lebih cepat Ideal CPI =1 untuk keduanya 40%dari instruksi yang dieksekusi adalah instruksi Load dan Store SpeedUp A Pipeline Depth / (1 + 0) (clock unpipe / clock pipe ) Pipeline Depth SpeedUp B Pipeline Depth / (1 + 0.4 (clock unpipe / ( 1,2 clock pipe ). (Pipeline Depth/1.4) 1.2 0.86 Pipeline Depth SpeedUp A / SpeedUp B Pipeline Depth/(0.86 Pipeline Depth) = 1.17 Mesin A 1.17 kali lebih cepat EdyWin 50

Pentium: 2 pipelines, masing masing 5 cycles Pentium Pro/II/III 3 pipelines, masing masing 12 cycles EdyWin 51

Mengurangi Data Hazards dengan Forwarding (bypassing) ADD R2, R3, R4 Mi Md OR R5, R3, R2 Mi Md Hazard dapat dicegah dengan mem-bypass atau forward Output dari operasi ADD keinput untuk operasi OR (disamping menyimpan output ke R2 seperti prosedur biasa) ID/EX EX/MEM MEM/WB isters Data Memory 0 1 EdyWin 52

Bila pada sebuah cycle hardware mendeteksi adanya permintaan Read dan permintaan Write untuk ister yang sama, maka data yang akan dituliskan diforward ke input. EdyWin 53

Bypassing (Forwarding) Beberapa data hazard dapat dieliminasi dengan: bypassing atau forwarding DADD R1, R2, R3 DSUB R4, R1, R5 AND R6, R1, R7 OR XOR R8, R1, R9 R10, R1, R11 Pada tipe RAW : hasil tidak hanya disimpan ke memory atau register, ttp juga diberikan langsung ke input EdyWin 54

Dengan Stall (tanpa Forwarding) DADD R1, R2, R3 DSUB R4, R1, R5 AND R6, R1, R7 OR R8, R1, R9 XOR R10, R1, R11 EdyWin 55

DADD R1, R2, R3 LD R4, 0(R1) STO R4, 12(R1) EdyWin 56

Data Hazard Stalls : Tidak semua data hazard dapat di eliminasi Contoh : LD R1, 0(R2) DSUB R4, R1, R5 AND R6, R1, R7 OR R8, R1, R9 EdyWin 57

untuk masalah yang tidak dapat dieliminasi dengan forwarding masih perlu ditambahkan stall CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 lw R2, 10(R1) IM DM and R12, R2, R5 IM Bubble DM or R13, R6, R2 IM Bubble DM add R14, R2, R2 IM DM store R15, 100(R2) IM EdyWin 58

(1) Identifikasikan forwardingnya CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 sub R2, R1, R3 M i M d and R6, R2, R5 M i M d or R13, R6, R2 M i IM DM M d add R14, R2, R2 IM M i M d DM sto R15, 100(R2) EdyWin 59 M i IM DM M d

(2) Tunjukkan stalls dan forwarding untuk kode dibawah ini add R3, R2, R1 load R4, 100(R3) and R6, R4, R3 sub R7, R6, R2 EdyWin 60

Jelaskan dengan contoh, teknik teknik software untuk mengatasi pipeline hazard. EdyWin 61