CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

dokumen-dokumen yang mirip
Organisasi Komputer II STMIK-AUB SURAKARTA

TEKNIK PIPELINE & SUPERSCALAR. Team Dosen Telkom University 2016

Organisasi Sistem Komputer

Organisasi Komputer II STMIK AUB SURAKARTA

Hanif Fakhrurroja, MT

From M.R Zargham s book (Chapter 3.1)

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

Dua komponen yang menjalankan proses dalam komputer, yaitu : Central Processing Unit (CPU) Memory Kedua komponen tersebut terletak pada Motherboard.

Arsitektur Set Instruksi. Abdul Syukur

Table Pipelining and replication in parallel computer architecture

Meningkatkan Kinerja dengan Pipelining

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

ARSITEKTUR DAN ORGANISASI KOMPUTER

STRUKTUR CPU. Arsitektur Komputer

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

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

MATA KULIAH: PIPELINING PERTEMUAN 12

CENTRAL PROCESSING UNIT CPU

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

SATUAN ACARA PERKULIAHAN

Pertemuan ke - 4. Riyanto Sigit, ST. Nur Rosyid, S.kom Setiawardhana, ST Hero Yudo M, ST. Politeknik Elektronika Negeri Surabaya

Disusun Oleh Kelompok 5 : Abdul Haris Nabu Muh. Eka A.P Paputungan Afner Mengi Deasry Potangkuman Aufry Masugi Adel Mamonto

Kumpulan instruksi lengkap yang dimengerti

Diktat Kuliah - Pipeline

Hanif Fakhrurroja, MT

Pertemuan ke - 5 Struktur CPU

SATUAN ACARA PERKULIAHAN

RISC,CISC, DAN PROSESOR SUPERSCALAR

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

Operasi Unit Kontrol. Organisasi Komputer II. STMIK AUB Surakarta

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

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

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

Organisasi Komputer. Candra Ahmadi, MT

Struktur CPU 3/23/2011

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER CENTRAL PROCESSING UNIT

SISTEM MIKROPROSESOR RIZAL SURYANA JURUSAN TEKNIK ELEKTRO - UNJANI

SET INSTRUKSI. Organisasi dan Arsitektur Komputer

>> CISC BANDING RISC

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

Arsitektur RISC merupakan kemajuan yang sangat dramatis dalam frase sejarah arsitektur CPU. Dan merupakan tantangan bagi arsitektur konvensional

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

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

PAPER PIPELINE INSTRUKSI

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Struktur dan Fungsi CPU. Ptputraastawa.wordpress.com

ARSITEKTUR KOMPUTER SET INSTRUKSI

Organisasi & Arsitektur Komputer

Unit Control (Hardwired and Micro-programmed)

Pipelining. EdyWin 1

Abstrak. Pendahuluan

Instruction Execution Phases

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ

SATUAN ACARA PERKULIAHAN MATA KULIAH ORGANISASI DAN ARSITEKTUR KOMPUTER KODE MK: TE055217

PERTEMUAN. 1. Organisasi Processor. 2. Organisasi Register

ORGANISASI KOMPUTER MATA KULIAH: Prosesor Superskalar PERTEMUAN 13

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

CPU PERKEMBANGAN ARSITEKTUR CPU. ( Central Processing Unit )

Central Processing Unit

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

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

1 Tinjau Ulang Sistem Komputer

SATUAN ACARA PERKULIAHAN MATA KULIAH : Pengantar Organisasi dan Arsitektur Komputer Strata / Jurusan : Strata Satu / Sistem Informasi

CONTROL UNIT. Putu Putra Astawa

Hanif Fakhrurroja, MT

Oleh : Agus Priyanto, M.Kom

Organisasi Komputer II. Micro-programmed Control. (Kontrol Termikroprogram)

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

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

Pengantar sistem komputer

Aditya Wikan Mahastama

Pendahuluan BAB I PENDAHULUAN

Arsitektur Dasar Mikroprosesor. Mikroprosesor 80186/80188

Cara Kerja Processor. Primo riveral. Abstrak. Pendahuluan.

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

SATUAN ACARA PERKULIAHAN MATA KULIAH : Arsitektur Komputer Strata / Jurusan : Diploma Tiga / Teknik Komputer

Arsitektur Komputer, Mikroprosesor dan Mikrokontroller. TTH2D3 Mikroprosesor

Simple As Posible - 1

SATUAN ACARA PERKULIAHAN MATA KULIAH ARSITEKTUR KOMPUTER (TK) KODE / SKS KK /4

Karakteristik Instruksi Mesin

Jumlah maksimum operand dalam suatu computer menunjukkan organisasi prosessor mesin tersebut.

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

Set Instruksi: Set instruksi?

William Stallings Computer Organization and Architecture. Chapter 9 Set Instruksi: Karakteristik dan Fungsi

Mikroprosesor. Bab 3: Arsitektur Mikroprosesor. INTEL 8086 Generasi Awal Prosesor PENTIUM. Arsitektur Mikroprosesor 1

Arsitektur Dan Organisasi Komputer. Pengantar Arsitektur Organisasi Komputer

DCH1B3 Konfigurasi Perangkat Keras Komputer

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

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data

Arsitektur Dasar µp. Sistem Komputer Universitas Gunadarma

Organisasi Komputer & Organisiasi Prosesor

ORGANISASI DAN ARSITEKTUR KOMPUTER MIPS

JAWABAN ORGANISASI KOMPUTER 7 Agustus 2004

Arsitektur dan Organisasi

William Stallings Computer Organization and Architecture

Pertemuan Ke-10 Cache Memory

PENGANTAR TEKNOLOGI INFORMASI

ARSITEKTUR SET INSTRUKSI. Ptputraastawa.wordpress.com

Instructions Set. Element dari instruction. Representasi dari Op code

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

Transkripsi:

CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

Apa itu superscalar? Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor Suatu rancangan untuk meningkatkan kecepatan CPU Mengeksekusi intruksi umum (arithmetic, load/store, conditional branch) secara independen dan secara bersamaan dalam tahap pipeline yang berbeda Mengeksekusi dua kali atau lebih operasi scalar dalam bentuk paralel Dapat diterapkan untuk RISC dan CISC Dalam praktek, biasanya RISC

Perbedaannya dengan adanya beberapa unit fungsional memungkinkan prosesor untuk mengeksekusi aliran instruksi secara paralel, satu aliran untuk setiap pipeline, sehingga meningkatkan kecepatan kerja

Superscalar vs Superpipelined Superpipelined adalah pendekatan alternatif untuk mencapai kinerja yang lebih besar Perbedaannya, Superpipelining mengeksploitasi fakta bahwa banyak tahapan pipeline melakukan tugas-tugas yang membutuhkan waktu kurang dari setengah clock siklus. Sedangkan superskalar mengijinkan proses untuk bekerja secara bersamaan pada saat satu clock siklus yang sama

Superscalar Superpipeline v 1. Instruction Fetch 2. Operation Decode 3. Operation Execution 4. Result Write Back

Keterbatasan Untuk meningkatkan instruksi level parallelism, perlu dilihat keterbatasan mendasarnya: 1. Kebenaran ketergantungan data (RAW) 2. Prosedural ketergantungan 3. Konflik sumber daya 4. (Output dependency) (WAW) 5. (Antidependency) (WAR)

Kebenaran ketergantungan data Read After Write ADD r1, r2 (r1 := r1+r2;) MOVE r3,r1 (r3 := r1;) Jika tidak ada ketergantungan, dua instruksi dapat diambil dan dieksekusi secara paralel Jika ada ketergantungan, semua instruksi (instruksi kedua) harus ditunda sampai semua nilai input telah diproduksi (instruksi pertama)

Prosedural ketergantungan Memiliki ketergantungan prosedural pada cabang dan tidak dapat dilaksanakan sampai cabang dieksekusi Konsekuensi: kehilangan kesempatan dalam jumlah yang lebih besar pada setiap delaynya

Konflik sumber daya Kompetisi dari dua atau lebih instruksi untuk memperoleh sumber daya yang sama pada saat yang bersamaan Contoh sumber daya: memori, cache, bus, register-file, port, dan unit-unit fungsional lainnya Contoh konflik: Instruksi: 2 instruksi aritmetik Diatasi dengan duplikasi sumber daya Solusi: 2 unit aritmetik, dimana unit fungsionalnya dipipelinekan

Effect Dependencies of

Dessign Issues 1. Instruction- Level Parallelism and Machine Parallelism Instruksi level parallelism Terjadi jika Instruksi bersifat independen (tidak saling berhubungan) Dieksekusi secara paralel dengan overlapping (tumpang tindih) Ditentukan oleh frekuensi ketergantungan data yang benar dan prosedural ketergantungan dalam kode

Contoh: Kiri LOAD R1 R2 ADD R3 R3, 1 ADD R4 R2 Kanan ADD R3 R3, 1 ADD R4 R3, R2 STORE [R4] R0 Instruksi sebelah kiri independen, sebelah kanan tidak

Machine parallelism Kemampuan prosesor dalam memanfaatkan paralelisme tingkat instruksi Ditentukan oleh jumlah pipeline yang paralel dan oleh kecepatan serta kecanggihan mekanisme yang menggunakan prosesor untuk menemukan instruksiinstruksi independen

2. Instruksi isu kebijakan 3 hal penting: Urutan dimana instruksi diambil Urutan dimana instruksi dieksekusi Urutan dimana instruksi memperbarui isi dari register dan memori lokasi Secara umum kebijakan instruksi superscalar dapat digolongkan dalam 3 kategori berikut: In-order issue with in-order completion In-order issue with out-of-order completion Out-of-order issue with out-of-order completion

In-order issue with In-order completion Isu instruksi mengeluarkan instruksi dalam urutan yang pasti yang akan didapatkan dengan eksekusi sekuensial (in-orderissue) dan menulis hasilnya dalam urutan yang sama (inorder-completion) Tidak begitu efisien (sebagai dasar untuk membandingkan pendekatan yang lebih canggih) Mampu mengambil lebih dari satu instruksi pada satu waktu

In-Order Issue In-Order Completion (Diagram) Contoh: I1 membutuhkan dua siklus untuk mengeksekusi I3 dan I4 bersaing untuk unit eksekusi yang sama I5 tergantung pada nilai yang dihasilkan oleh I4 I5 dan I6 bersaing untuk unit eksekusi yang sama

In-Order Issue Out-of-Order Completion Prosesor akan mendekode instruksi hingga dijumpai ketergantungan atau konflik. Tidak akan ada instruksi lainnya yang akan didekode sampai konflik teratasi

Contoh: Output dependency R3:= R3 + R5; (I1) R4:= R3 + 1; (I2) R3:= R5 + 1; (I3) Intruksi I2 tidak dapat dijalankan sebelum instruksi I1 data dependency Jika eksekusi I3 selesai sebelum I1, maka nilai I1 akan salah akibatnya I3 harus menunggu hingga I1 menghasilkan output yang benar output dependency

In-Order Issue Out-of-Order Completion (Diagram)

Out-of-Order Issue Out-of-Order Completion Decouple tahapan-tahapan dekode dan eksekusi pipeline Setelah selesai pendekodean instruksi disimpan di jendela instruksi Ketika buffer belum penuh, prosesor dapat terus mengambil dan mendecode instruksi hingga buffer penuh Kemudian ketika unit fungsional tersedia maka instruksi dari jendela instruksi dikeluarkan untuk eksekusi

Out-of-Order Issue Out-of-Order Completion (Diagram)

Antidependency Write-write dependency R3:=R3 + R5; (I1) R4:=R3 + 1; (I2) R3:=R5 + 1; (I3) R7:=R3 + R4; (I4) I3 tidak bisa dikerjakan sebelum eksekusi I2 dimulai, dan I2 membutuhkan nilai R3 dari I1dan I3 mengubah R3 Antidependency kendalanya mirip dengan kendala dari dependensi data yang benar, namun dibalik.

Register Renaming Digunakan untuk mengeliminasi WAW dan WAR WAW dan WAR muncul karen register tidak dapat lagi merefleksikan nilai-nilai dari aliran program Dengan adanya register renaming maka yang menentukan lokasi adalah nama, jadi bisa memiliki banyak lokasi daripada nama

Contoh: I1: R1 R2/R3 pembagian membutuhkan waktu yang lama untuk penyelesaiannya I2: R4 R1+R5 RAW dependency dengan I1 I3: R5 R6+R7 WAR dependency dengan I2 I4: R1 R8+R9 WAW dependency dengan I1 Lalu direnaming I1: R32 R2/R3 pembagian membutuhkan waktu yang lama untuk penyelesaiannya I2: R33 R32+R5 masih RAW dependency dengan I1 I3: R34 R6+R7 tidak lagi WAR dependency dengan I2 I4: R35 R8+R9 renaming kedua dari R1

Teknik dalam Superscalar Branch Prediction Program yang terdiri dari kelompok perintah bercabang sering digunakan dalam pemrograman. Pada CPU yang mendukung perintah pencabangan, CPU membutuhkan cukup banyak clock cycle Contoh: 80486 fetch keduanya pada instruksi rangkaian selanjutnya setelah cabang (branch), dan target instruksi cabang (branch). Memberikan 2 cycle delay jika cabang (branch) diambil

Superscalar execution

Cara kerja superscalar Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat: Keduanya instruksi yang sederhana I1 tidak melakukan proses jump Tujuan (destination) dari I1 bukan sumber (source) dari I2 Tujaun (destinition) dari I1 bukan tujuan (destination) dari I2 Jika kondisi diatas tidak dapat dipenuhi I1 melakukan proses U-pipe I2 dijalankan di cycle berikutnya

Superscalar Implementation Proses fetch dari beberapa instruksi secara bersamaan Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register Mekanisme untuk mengkomunikasikan nilai tersebut Mekanisme untuk menginisialisasi instruksi parallel Tersedianya sumber untuk ekseskusi parallel dari bebrapa instruksi Mekanisme processing instruksi dengan urutan yang sesuai

Speculative Execution CPU akan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya Jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dihasilakan kemungkinan lain sesuai dengan logika instruksi tersebut.

Pentium 4 Meskipun konsep desain superscalar umumnya dikaitkan dengan arsitektur RISC, prinsip-prinsip superscalar yang sama dapat diterapkan pada mesin CISC Mungkin contoh yang paling penting dari hal ini adalah Pentium Pentium awal/ asli memiliki komponen superscalar sederhana, yang terdiri dari penggunaan dua unit eksekusi bilangan bulat terpisah Model x86 berikutnya telah menyempurnakan dan meningkatkan desain superscalar.

Pengoperasian pentium 4 Prosesor mengambil instruksi dari memori dalam urutan program statis. Setiap instruksi diterjemahkan ke dalam satu atau lebih tetap-panjang instruksi RISC, dikenal sebagai mikro-operasi, atau micro-ops. Prosesor mengeksekusi mikro-ops pada organisasi pipeline superscalar, sehingga mikro-ops dapat dieksekusi tidak sesuai (tanpa berurutan) Prosesor menjalankan hasil setiap eksekusi micro-op ke prosesor register set dalam urutan aliran program asli. Penggabungan CISC (bagian terluar) dengan RISC (bagian terdalam). Pada pipeline RISC terdapat 20 tahapan. Beberapa micro-ops memerlukan banyak tahapan eksekusi. Pipeline terpanjang. Pada x86 hingga pentium ada 5 tahapan pipeline.

FRONT END Pentium 4 Pipeline Operation

tahapan Generation of micro operations Micro operation adalah suatu operasi mikro dimana suatu computer menjalankan suatu program dan melakukan siklus proses memasukkan dan mengambil data atau melakukan eksekusi (Fetch/execute cycle).

Trace Cache Next Instruction Pointer Pada tahap ini trace cachenya pentium 4 mengambil logika untuk mendapatkan pointer ke instruksi selanjutnya. Pentium 4 menggunakan strategi prediksi cabang dinamis Trace Cache Fetch Pada tahap ini mengambil instruksi dari trace cache yang akan dikirim ke mesin eksekusi. Micro-ops diambil secara berurutan berdasarkan trace cache.

Drive Ini adalah tahap pertama dari dua tahap drive pada pipelinenya pentium 4, masing-masing ditujukan untuk menjalankan sinyal, dari satu bagian prosesor kebagian selanjutnya Karena pentium 4 jalannya sangat cepat maka digunakan tahap pipeline agar sinyal-sinyal tersebut menyebar di seluruh chip. Allocate; Register Renaming Pada tahap ini mengatur alokasi sumber daya register microarchitectural register renaming yang berfungsi untuk mengurangi konflik yang terjadi dengan menambah register pada microarchitecture daripada di set instruksi.

Micro-Op Queueing Dua antrian: antrian operasi memori (muatan dan penyimpanan) dan antrian untuk micro-ops yang tidak melibatkan referensi memori micro-ops ditahan sampai ada ruang dalam penjadwal. Setiap antrian mematuhi FIFO (First In First Out) Micro-Op Scheduling and Dispatching Penjadwal bertanggung jawab untuk mengambil micro-ops dari antrian dan mengirimnya untuk dieksekusi Jika unit eksekusi yang dibutuhkan tersedia, maka penjadwal menjemput micro-ops dan mengirimkannya

Register File Setelah melakukan pengiriman, pada tahap ini instruksi mengisi register file untuk dieksekusi tahap selanjutnya. Execute; Flags Pada tahapan ini instruksi akan benarbenar dieksekusi oleh unit mesin eksekusi Contohnya jika terdapat instruksi ADD, maka sejumlah angka akan dijumlahkan,dst Sedangkan pada flags, jika hasil instruksi mengatakan perlu untuk mengatur flag, maka akan dilakukan pada tahap ini. Flag berkaitan dengan bahasa assembly.

Branch Check Disini tahap dimana pentium 4 memeriksa hasil dari cabang bersyarat untuk melihat apakah ada siklus yang terlewatkan. Intinya pada tahap ini kondisi sudah dievaluasi dan front end yang mengetahui apakah tebakan prediksi cabang benar atau tidak.

Arm cortex-a8 Cortex-A8 dalam keluarga ARM prosesor disebut sebagai prosesor aplikasi. Aliran instruksi utama adalah melalui tiga unit fungsional yang menerapkan, in-order-issue, 13-stage pipeline

Rincian pipa Cortex-A8 utama

Instruction fetch unit Instruction fetch unit memprediksi aliran instruksi, mengambil instruksi dari instruksi L1 cache, dan menempatkan instruksi yang diambil ke dalam buffer untuk dikonsumsi oleh pipa decode. instruksi fetch adalah spekulatif, yang berarti tidak ada jaminan bahwa mereka dieksekusi

Instruction decode unit Unit instruksi decode dan sekuens semuanya adalah instruksi pencegahan bahaya RAW Ini memiliki struktur pipa ganda, yang disebut pipe0 dan pipe1, sehingga dua instruksi dapat maju melalui unit pada suatu waktu Semua instruksi yang dikeluarkan dalam urutan menurunkan pipa eksekusi dengan hasil ditulis kembali ke register file pada akhir pipa eksekusi

Integer execute unit Integer execution unit terdiri dari dua satuan aritmatika logika simetris (ALU), pipelines, generator alamat untuk beban dan menyimpan instruksi, dan perkalian pipeline. Pipa penyimpanan/ berjalan sejajar dengan pipa integer

Simd and floating-point pipeline Semua SIMD dan Floating-Point Pipeline instruksi melewati pipa integer dan diproses dalam pipeline 10-tahap yang terpisah Unit ini, disebut sebagai unit NEON, menangani instruksi SIMD terkemas, dan menyediakan dua jenis floatingpoint dukungan.

TERIMAKASIH ^^.