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