Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Organisasi Komputer II STMIK-AUB SURAKARTA

Presentasi serupa


Presentasi berjudul: "Organisasi Komputer II STMIK-AUB SURAKARTA"— Transcript presentasi:

1 Organisasi Komputer II STMIK-AUB SURAKARTA
PROSESOR SUPERSKALAR Organisasi Komputer II STMIK-AUB SURAKARTA

2 What is Superscalar? 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 & CISC Dalam praktek, biasanya RISC

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

4 Superscalar Execution

5 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

6 Superscalar Processing
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

7 Superscalar CPU Block Diagram

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

9 Superscalar v Superpipeline

10 Limitations 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)

11 True Data Dependency 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

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

13 Pada pipeline, dapat dilakukan duplikasi sumber daya
Resource Conflict 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

14 Effect of Dependencies

15 Persoalan Perancangan
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

16 Instruction Issue Policy
Proses penginisiasian eksekusi instruksi di dalam unit-unit fungsional prosesor. Prosesor mecoba mencari posisi di depan instruksi saat itu untuk mendapatkan instruksi-instruksi 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

17 In-Order Issue In-Order Completion
Menerbitkan instruksi dalam urutan pasti yang akan diperoleh oleh eksekusi sekuensial (in-order-issue) dan dengan menuliskan hasilnya dengan urutan yang sama (in-order-completion) Tidak begitu efisien May fetch >1 instruction

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

19 Out-of-Order Issue Out-of-Order Completion
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.

20 Contoh konflik penyimpanan Write-write dependency
Antidependency 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

21 Registers allocated dynamically
Register Renaming 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.

22 Register Renaming example
R3b:=R3a + R5a (I1) R4b:=R3b (I2) R3c:=R5a (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.

23 Tiga teknik perangkat keras untuk meningkatkan kinerja :
Machine Parallelism 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

24 Teknik dalam Superscalar
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.

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

26 Speculative Execution
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.

27 Extra Transistor 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 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.

28 Pengguna Superscalar 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.

29 Processor superscalar
Processor board of a CRAY T3e parallel computer with four superscalar Alpha processors


Download ppt "Organisasi Komputer II STMIK-AUB SURAKARTA"

Presentasi serupa


Iklan oleh Google