Adalah arsitektur prosessor yang memungkinkan eksekusi yang bersamaan (parallel) dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.
Superscalar mampu menjalankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.
Proses superscalar
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
Arsitektur superscalar
Cara Kerja Superskalar
- Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat:
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:
I2 dijalankan di cycle berikutnya
Contoh penerapanya
- Load 4 1
- Store 2 1
- ALU 2 1
- Jump taken 9 3
- Jump not taken 3 1
- Call 9 3
Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat
- Keduanya instruksi yang sederhana
- L1 tidak melakukan proses jump
- Tujuan dari L1 bukan sumber dari L2
- Tujaun dari L1 bukan tujuan dari L2
- L1 melakukan proses U-pipe
- L2 dijalankan di cycle berikutnya
Pipeline
Adalah meningkatkan kinerja komputer dengan cara saling overlap tahapan dari instruksi yang berbeda.
Pada pipeline untuk melakukan proses (stages) overlapping dibutuhkan paling tidak setengah clock. Sedangkan superscalar mengijinkan proses untuk bekerja secara bersamaan pada saat clock yang sama.
Teknik Dalam Superskalar
- 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.
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.
Tidak ada komentar:
Posting Komentar