Anda di halaman 1dari 29

Prose sor Supe rsc a la r

Orga nisa si K om put e r I I

Wha t is Supe rsc a la r?


Salah satu rancangan untuk meningkatkan
kecepatan CPU
Instruksi umum (arithmetic, load/ store,
conditional branch) dapat dimulai dan
dilaksanakan secara independen
Sebuah inti prosesor yang mengeksekusi dua
kali/ lebih operasi scalar dalam bentuk paralel.
Sebuah prosesor yang memungkinkan eksekusi
yang bersamaan dari instruksi yang banyak
pada tahap pipeline yang sama
Dapat diterapkan untuk RISC & CIS
Dalam praktek, biasanya RISC

Why Supe rsc a la r?


Kebanyakan operasi pada besaran skalar (satu
instruksi dalam satu siklus waktu)
Sehingga superscalar meningkatkan operasi ini
untuk mendapatkan peningkatan secara
keseluruhan

Supe rsc a la r Ex e c ut ion

Ca ra K e rja Supe rsc a la r


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

Supe rsc a la r Proc e ssing


Memproses lebih dari satu instruksi per clock
cycle
Sangat dimungkinkan untuk memisahkan siklus
fetch and execute
Memiliki Buffers pada fase antara proses fetch
and decode
Memiliki unit eksekusi yang Parallel

Supe rsc a la r CPU Bloc k Dia gra m

Supe rpipe line d


Banyak tahap pipeline memerlukan waktu
kurang dari setengah siklus clock
Kecepatan clock internal yag double bisa
mengerjakan dua tugas per siklus clock
eksternal
Superscalar memungkinkan mengambil eksekusi
secara paralel

Supe rsc a la r v
Supe rpipe line

Lim it a t ions
Instruction level parallelism (kemampuan
mengeksekusi sejumlah instruksi secara paralel)
Compiler based optimisation
Hardware techniques

Dibatasi oleh
True data dependency (Ketergantungan Data
Sebenarnya)
Procedural dependency (Ketergantungan Prosedural)
Resource conflicts (Konflik Sumber Daya)
Output dependency (Ketergantungan Output)
Antidependency (Antiketergantungan)

T rue Da t a De pe nde nc y
ADD r1, r2 (r1 := r1+ r2;)
MOVE r3,r1 (r3 := r1;)
Instruksi kedua dapat diambil dan didekode,
namun tidak dapat dieksekusi apabila instruksi
pertama belum dieksekusi.
Instruksi kedua membutuhkan data yang
dihasilkan oleh instruksi pertama

Proc e dura l De pe nde nc y


Instruksi-instruksi yang berada setelah
percabangan (dilakukan ataupun tidak
dilakukan) memiliki suatu ketergantungan
prosedural pada percabangan dan tidak akan
dieksekusi sampai percabangan tersebut
dieksekusi.

Re sourc e Conflic t
Persaingan antara dua buah instruksi atau lebih
untuk memperoleh sumber daya yang sama
pada saat yang bersamaan.
e.g. two arithmetic instructions

Pada pipeline, dapat dilakukan duplikasi sumber


daya
e.g. have two arithmetic units
Unit fungsional tertentu dipipelinekan juga

Effe c t of
De pe nde nc ie s

Pe rsoa la n Pe ra nc a nga n
Instruction level parallelism
Instruksi-instruksi yang terdapat pada rangkaian
bersifat independen
Sehingga dapat dieksekusi secara paralel dengan
cara overlapped (bertumpang tindih)
Ditentukan oleh ketergantungan data and procedural

Machine Parallelism
Kemampuan prosesor dalam memanfaatkan
paralelisme tingkat instruksi
Ditentukan oleh jumlah instruksi yang dapat diambil
dan dieksekusi secara bersamaan

Kedua hal di atas merupakan faktor yang


penting untuk meningkatkan kinerja

I nst ruc t ion I ssue Polic y


Proses penginisiasian eksekusi instruksi di dalam
unit-unit fungsional prosesor.
Prosesor mecoba mencari posisi di depan
instruksi saat itu untuk mendapatkan instruksiinstruksi yang dapat dibawa dan dapat
dieksekusi.
Dalam hal ini, terdapat tiga pengurutan
Urutan diambilnya instruksi
Urutan dieksekusinya instruksi.
Urutan pertukaran register dan lokasi memori dari
instruksi

I n-Orde r I ssue
I n-Orde r Com ple t ion
Menerbitkan instruksi dalam urutan pasti yang
akan diperoleh oleh eksekusi sekuensial (inorder-issue) dan dengan menuliskan hasilnya
dengan urutan yang sama (in-order-completion)
Tidak begitu efisien
May fetch > 1 instruction

I n-Orde r I ssue
Out -of-Orde r Com ple t ion
Prosesor akan mendekode instruksi hingga
dijumpai ketergantungan atau konflik.
Tidak akan ada instruksi lainnya yang akan
didekode sampai konflik diatasi.
Output dependency
R3:= R3 + R5; (I1)
R4:= R3 + 1; (I2)
R3:= R5 + 1; (I3)
I2 depends on result of I1 - data dependency
If I3 completes before I1, the result from I1 will be
wrong - output (read-write) dependency

Out -of-Orde r I ssue


Out -of-Orde r Com ple t ion
Decouple tahapan-tahapan dekode dan eksekusi
pipeline,dengan cara menggunakan buffer yang
dianggap sebagai jendela instuksi.
Setelah prosesor menyelesaikan pendekodean instruksi,
maka instruksi tersebut ditempatkan di dalam jendela
instruksi.
Selama buffer belum penuh, prosesor dapat mengambil
instruksi dan mendekode instruksi lainnya.
Apabila pada tahapan eksekusi tersedia unit fungsional,
maka instruksi yang berasal dari jendela instruksi dapat
dikirimkan ke tahapan eksekusi.
Sebuah instruksi dapat dikirimkan dengan syarat
Instruksi memerlukan unit fungsinal yang tersedia
Tidak terjadi konflik atau ketergantungan yang memblokir
instuksi tersebut.

Ant ide pe nde nc y


Contoh konflik penyimpanan
Write-write dependency
R3:= R3 + R5; (I1)
R4:= R3 + 1; (I2)
R3:= R5 + 1; (I3)
R7:= R3 + R4; (I4)
I3 can not complete before I2 starts as I2 needs a
value in R3 and I3 changes R3

Kebalikan dari Ketergantungan data


sebenarnya(instruksi pertama menghasilkan
nilai yang akan digunakan instruksi kedua),
melainkan instruksi kedua memusnahkan nilai
yang akan digunakan instruksi pertama

Re gist e r Re na m ing
Output dan antidepedency muncul karena nilai
dalam register tidak dapat lagi merefleksikan
nilai-nilai yang ditentukan oleh aliran program.
Registers allocated dynamically
registers are not specifically named, pada saat nilai
register yang baru dibuat, maka sebuah register akan
dialokasikan bagi nilai tersebut.

Re gist e r Re na m ing e x a m ple


R3b:= R3a + R5a (I1)
R4b:= R3b + 1
(I2)
R3c:= R5a + 1
(I3)
R7b:= R3c + R4b (I4)
Referensi regsiter tanpa subscript berkaitan
dengan referensi register logikal yang
ditemukan dalam instruksi.
Referensi register yang bersubscript berkaitan
dengan register perangkat keras yang
dialokasikan untuk menampung nilai yang baru.

M a c hine Pa ra lle lism


Tiga teknik perangkat keras untuk
meningkatkan kinerja :
Duplication of Resources
Out of order issue
Renaming

Not worth duplication functions without register


renaming
Need instruction window large enough (more
than 8), apabila jendela instruksi terlalu kecil,
maka ketergantungan data akan menghambat
kerja unit-unit fungsional

T e k nik da la m Supe rsc a la r


Teknik yang dapat dilakukan dengan metode
superscalar ini adalah dalam hal memperkirakan
pencabangan instruksi (brach prediction) serta perkiraan
eksekusi perintah (speculative execution).
Peristiwa ini sangat menguntungkan untuk program
yang membutuhkan pencabangan dari kelompok intruksi
yang dijalankannya.

Bra nc h Pre dic t ion


Program yang terdiri dari kelompok perintah bercabang
sering digunakan dalam pemrograman.
Pada CPU yang mendukung perintah pencabangan, CPU
membutuhkan cukup banyak clock cycle, mengingat CPU
menempatkan semuanya pada pipeline dan menemukan
perintah berikutnya yang akan dieksekusinya.
Sirkuit untuk branch prediction melakukan pekerjaan ini
bekerja sama dengan pipeline, yang dilakukan sebelum
proses di ALU dilaksanakan, dan memperkirakan hasil dari
pencabangan tersebut.
Jika CPU berfikir bahwa branch akan menuju suatu cabang,
biasanya berdasarkan pekerjaan sebelumnya, maka
perintah berikutnya sudah dipersiapkan untuk dieksekusi
berikut data-datanya, bahkan dengan adanya pipeline ini,
bila tidak diperlukan suatu referensi dari instruksi terakhir,
maka bisa dilaksanakan dengan segera, karena data dan
instruksi yang dibutuhkan telah dipersiapkan sebelumnya..

Spe c ula t ive Ex e c ut ion


CPU akan menggunakan 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 dilaksanakan kemungkinan lain sesuai dengan logika
instruksi tersebut.

Ex t ra T ra nsist or
Teknik yang digunakan pipeline dan superscalar untuk
melakukan branch prediction dan speculative execution
tentunya membutuhkan ekstra transistor yang tidak
sedikit untuk hal tersebut.
Sebagai perbandingan, komputer yang membangkitkan
pemrosesan pada PC pertama yang dikeluarkan oleh
IBM pada mesin 8088 memiliki sekitar 29.000 transistor.
Sedangkan pada mesin Pentium III, dengan teknologi
superscalar dan superpipeline, mendukung branch
prediction, speculative execution serta berbagai
kemampuan lainnya memiliki sekitar 7,5 juta transistor.
Beberapa CPU terkini lainnya seperti HP 8500 memiliki
sekitar 140 juta transistor.

Pe ngguna Supe rsc a la r


Prosesor Intel x86 yang menggunakan
arsitektur superskalar adalah keluarga Intel
Pentium, Intel Pentium Pro, Intel Pentium II,
Intel Pentium III, Intel Itanium, Intel Xeon,
Intel Pentium 4, Intel Pentium M, Intel Core dari
Intel Corporation;
Keluarga AMD K5, AMD K6, AMD Athlon, AMD
Athlon 64, dan AMD Opteron.

Proc e ssor supe rsc a la r

Processor board of a CRAY T3e parallel


computer with four superscalar Alpha
processors

Anda mungkin juga menyukai