Ada beberapa pendapat yang menguraikan tentang pengertian dari superscalar, antara lain:
- Superscalar adalah sebuah inti prosesor yang mengeksekusi dua kali/lebih operasi scalar dalam bentuk paralel. Superscalar ini merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.
- Superscalar adalah sebuah prosesor yang memungkinkan eksekusi yang bersamaan dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.
- Superscalar adalah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalam bentuk paralel. Superscalar merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.
Satu kesatuan instruksi pada superscalar (berupa ; arithmetic, pembacaan/penyimpanan, conditional branch) yang dapat diinisialisasi dan dieksekusi secara bebas (tidak tergantung instruksi lain). Seperti yang diaplikasikan pada sistem RISC & CISC.
Dalam hal speculative execution, artinya 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, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.
Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan 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.
Contoh CPU yang menerapkan arsitektur superscalar :
- 486, Pentium, Pentium Pro, 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
superscalar dengan system i38
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
Arsitektur Superscalar pada Intel Pentium
- 80486 – CISC.
- Pentium.
- 2 unit eksekusi integer yang terpisah.
- Pentium Pro – Full superscalar.
- Memperhalus models subsequent & Meningkatkan design superscalar.
Diagram Pentium 4
Operasi Pada Pentium 4
- Pengambilan instructions pada memory dari urutan static program.
- Menterjemahkan instruction menjadi satu atau lebih instruksi RISC dengan panjang yg tetap (micro-operations).
- Meng-eksekusi micro-ops pada pipeline superscalar.
micro-ops boleh dieksekusi tanpa berurutan.
- Memasukan hasil dari micro-ops ke register set dalam urutan orisinil program.
- Penggabungan CISC (bagian terluar) dengan RISC (bagian terdalam).
- Pada pipeline RISC terdapat 20 tahapan.
Beberapa micro-ops memerlukan banyak tahapan eksekusi.
- Pipeline terpanjang.
Pentium 4 Pipeline
Pentium 4 Pipeline Operation (1)
Pentium 4 Pipeline Operation (2)
Pentium 4 Pipeline Operation (3)
Pentium 4 Pipeline Operation (4)
Pentium 4 Pipeline Operation (5)
Pentium 4 Pipeline Operation (6)
Contoh Instruksi
|
Misalkan, instruksi yang akan menambahkan isi register R1 dan R2 dan menempatkan jumlahnya dalam register R3. Isi dari register R1 dan R2 mula-mula akan ditransfer ke Unit aritmetika dan logika. Setelah operasi penambahan dilakukan, hasil penjumlahan tersebut akan ditransfer ke register R3. Prosesor dapat membaca instruksi selanjutnya dari memori, sementara operasi penambahan dilakukan. Kemudian jika instruksi tersebut juga menggunakan ALU, operand-nya dapat ditransfer ke input ALU pada waktu yang sama dengan hasil instruksi Add ditransfer ke register R3.
Pada kasus ideal, jika semua instruksi ditumpuk ke derajat yang maksimum yang mungkin dilakukan, maka eksekusi dilanjutnkan pada kecepatan penyelesaian satu instruksi dalam tiap siklus detak prosesor. Instruksi individual, mungkin masih memerlukan beberapa siklus detak agar selesai dilakukan. Tetapi untuk tujuan perhitungan, prosesor superskalar umumnya mampu melakukannya dalam tiap siklus.
Prosesor superskalar umumnya menggunakan beberapa unit fungsional, menciptakan jalur paralel di mana berbagai instruksi yang berbeda dapat dieksekusi secara paralel. Dengan pengaturan tersebut, maka dimungkinkan untuk memulai eksekusi beberapa instruksi secara paralel tiap siklus detak. Tentu saja, eksekusi paralel harus mempertahankan kebenaran logikan program, sehingga hasil yang diperoleh harus sama dengan hasil dari eksekusi secara serial.
Tidak ada komentar:
Posting Komentar