chapter 16 instruction-level parallelism...

51
CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

Upload: hoangngoc

Post on 28-Feb-2018

226 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM AND SUPERSCALAR PROCESSORS

Page 2: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 3: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 4: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 5: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

Superscalar v Superpipeline

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

Page 6: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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)

Page 7: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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)

Page 8: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 9: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 10: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

Effect of Dependencies

Page 11: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 12: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• Contoh:

Kiri || Kanan

• LOAD R1R2 || ADD R3R3,”1”

• ADD R3R3,”1” || ADD R4R3, R2

• ADD R4R2 || STORE [R4]R0

• Instruksi sebelah kiri independen, sebelah kanan tidak

Page 13: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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 instruksi-instruksi independen

Page 14: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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

Page 15: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

In-order issue with In-order completion

• Isu instruksi mengeluarkan instruksi dalam urutan yang pasti yang akan didapatkan dengan eksekusi sekuensial (in-order-issue) dan menulis hasilnya dalam urutan yang sama (in-order-completion)

• Tidak begitu efisien (sebagai dasar untuk membandingkan pendekatan yang lebih canggih)

• Mampu mengambil lebih dari satu instruksi pada satu waktu

Page 16: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 17: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 18: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• Contoh:

• Output dependency

– R3:= R3 + R5; (I1)

– R4:= R3 + 1; (I2)

– R3:= R5 + 1; (I3)

– Intruksi I2 tidak dapat dijalankan sebelum instruksi I1data dependency

– Jika eksekusi I3 selesai sebelum I1 , maka nilai I1 akan salah akibatnya I3 harus menunggu hingga I1 menghasilkan output yang benar output dependency

Page 19: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 20: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 21: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 22: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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.

Page 23: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 24: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• Contoh:

• I1: R1R2/R3 pembagian membutuhkan waktu yang lama untuk penyelesaiannya

• I2: R4R1+R5 RAW dependency dengan I1

• I3: R5R6+R7 WAR dependency dengan I2

• I4: R1R8+R9 WAW dependency dengan I1

• Lalu direnaming

• I1: R32R2/R3 pembagian membutuhkan waktu yang lama untuk penyelesaiannya

• I2: R33R32+R5 masih RAW dependency dengan I1

• I3: R34R6+R7 tidak lagi WAR dependency dengan I2

• I4: R35R8+R9 renaming kedua dari R1

Page 25: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 26: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 27: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

Superscalar execution

Page 28: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 29: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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

Page 30: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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.

Page 31: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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.

Page 32: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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.

Page 33: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 34: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 35: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

FRONT END

Pentium 4 Pipeline Operation

Page 36: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 37: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 38: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 39: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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. Instruksi ini dipindahkan ke microcode ROM

Page 40: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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.

Page 41: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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

Page 42: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• Register File • Setelah melakukan pengiriman, pada tahap

ini instruksi mengisi register file untuk dieksekusi tahap selanjutnya.

• Execute; Flags • Pada tahapan ini instruksi akan benar-

benar 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.

Page 43: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

• 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.

Page 44: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 45: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

Rincian pipa Cortex-A8 utama

Page 46: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 47: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 48: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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

Page 49: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

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.

Page 50: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada
Page 51: CHAPTER 16 INSTRUCTION-LEVEL PARALLELISM …gembong.lecture.ub.ac.id/files/2015/03/Superscalar.pdf · –Dieksekusi secara paralel dengan overlapping ... 80486 fetch keduanya pada

TERIMAKASIH ^^.