Kamis, 15 November 2012

CPU Superscalar

Pengertian Superscalar
Ada beberapa pendapat yang menguraikan tentang pengertian dari superscalar, antara lain:
  1. 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.
  2. Superscalar adalah sebuah prosesor yang memungkinkan eksekusi yang bersamaan dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.
  3. Superscalar adalah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalam bentuk paralel. Superscalar merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.
Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.
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.
adalah serangkaian prosesor mikro CISC skalar 32-bit Intel yang merupakan bagian dari keluarga prosesor x86 Intel. i486 merupakan penerus prosesor Intel 80386.  Prosesor ini memiliki instruksi dan data cache yang tergabung dalam suatu chip, suatu floating-point unit (FPU) tambahan pada chip (khusus model DX), dan bus interface unit yang ditingkatkan kemampuannya. Sebagai tambahan, pada kondisi optimal, inti prosesor dapat menjaga kecepatan eksekusi dari satu instruksi per clock cycle. Perbaikan ini secara kasar melipatgandakan kinerja dari Intel 80386 dalam clock rate yang sama.
  • Pentium.
ada beberapa komponen superscalar.
  • 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.
Pada x86 hingga Pentium ada 5 tahapan pipeline.

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
Add R1, R2, R3

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