Superskalar
Desain CPU superskalar membuat bentuk komputasi paralel yang disebut paralelisme tingkat instruksi di dalam CPU tunggal, yang memungkinkan lebih banyak pekerjaan dilakukan pada clock rate yang sama. Ini berarti CPU mengeksekusi lebih dari satu instruksi selama siklus clock dengan menjalankan beberapa instruksi pada saat yang sama (disebut pengiriman instruksi) pada unit fungsional duplikat. Setiap unit fungsional hanyalah sumber daya eksekusi di dalam inti CPU, seperti unit logika aritmatika (ALU), unit titik mengambang (FPU), bit shifter, atau pengganda.
Sebagian besar CPU superskalar juga dipipelined, tetapi mungkin saja memiliki CPU superskalar non-pipelined atau CPU non-superskalar pipelined.
Teknik superskalar didukung oleh beberapa fitur inti CPU:
- Instruksi berasal dari daftar instruksi yang teratur.
- Perangkat keras CPU dapat mengetahui instruksi mana yang memiliki ketergantungan data yang mana.
- Dapat membaca beberapa instruksi per siklus clock
Setiap instruksi yang dijalankan oleh prosesor skalar mengubah satu atau dua item data sekaligus, tetapi setiap instruksi yang dijalankan oleh prosesor vektor menangani banyak item data sekaligus. Prosesor superskalar adalah campuran dari keduanya:
- Setiap instruksi memproses satu item data.
- Ada beberapa unit fungsional duplikat di dalam setiap inti CPU, sehingga beberapa instruksi menangani item data independen pada saat yang sama.
Dalam CPU superskalar, dispatcher instruksi membaca instruksi dari memori dan memutuskan mana yang dapat dijalankan secara paralel, mengirimkannya pada beberapa unit fungsional duplikat yang tersedia di dalam CPU.
Desain CPU superskalar berkaitan dengan peningkatan akurasi dispatcher instruksi, dan memungkinkannya untuk menjaga beberapa unit fungsional tetap sibuk setiap saat. Pada tahun 2008, semua CPU tujuan umum adalah superskalar, CPU superskalar tipikal dapat mencakup hingga 4 ALU, 2 FPU, dan dua unit SIMD. Jika dispatcher tidak dapat membuat semua unit sibuk, kinerja CPU akan lebih rendah.
Papan prosesor komputer paralel CRAY T3e dengan empat prosesor Alpha superskalar
Pipeline superskalar sederhana. Dengan mengambil dan mengirimkan dua instruksi pada satu waktu, maksimum dua instruksi per siklus dapat diselesaikan.
Keterbatasan
Peningkatan performa dalam desain CPU Superscalar dibatasi oleh dua hal:
- Tingkat paralelisme built-in dalam daftar instruksi
- Kompleksitas dan biaya waktu dari dispatcher dan pengecekan ketergantungan data.
Bahkan jika diberikan pengecekan ketergantungan yang sangat cepat di dalam CPU superskalar normal, jika daftar instruksi itu sendiri memiliki banyak ketergantungan, ini juga akan membatasi peningkatan kinerja yang mungkin terjadi, sehingga jumlah paralelisme bawaan dalam kode adalah batasan lain.
Tidak peduli seberapa cepat kecepatan dispatcher, ada batasan praktis tentang berapa banyak instruksi yang dapat dikirim secara bersamaan. Sementara kemajuan perangkat keras akan memungkinkan lebih banyak unit fungsional (misalnya, ALU) per inti CPU, masalah pengecekan ketergantungan instruksi meningkat hingga batas bahwa batas pengiriman superscalar yang dapat dicapai agak kecil. -- Kemungkinan pada urutan lima hingga enam instruksi yang dikirim secara bersamaan.
Alternatif
- Multithreading simultan: sering disingkat SMT, adalah teknik untuk meningkatkan kecepatan keseluruhan CPU superskalar. SMT memungkinkan beberapa utas eksekusi independen untuk menggunakan sumber daya yang tersedia di dalam prosesor superskalar modern dengan lebih baik.
- Prosesor multi-inti: prosesor superskalar berbeda dari prosesor multi-inti karena beberapa unit fungsional yang berlebihan bukanlah seluruh prosesor. Prosesor superskalar tunggal terdiri atas unit fungsional lanjutan seperti ALU, pengganda bilangan bulat, pemindah bilangan bulat, unit floating point (FPU), dll. Mungkin ada beberapa versi dari setiap unit fungsional untuk memungkinkan eksekusi banyak instruksi secara paralel. Ini berbeda dari prosesor Multi-core yang secara bersamaan memproses instruksi dari beberapa thread, satu thread per core.
- Prosesor pipelined: prosesor superskalar juga berbeda dari CPU pipelined, di mana beberapa instruksi dapat secara bersamaan berada dalam berbagai tahap eksekusi.
Berbagai teknik alternatif tidak saling eksklusif-mereka dapat (dan sering kali) digabungkan dalam satu prosesor, sehingga dimungkinkan untuk merancang CPU multicore di mana setiap inti adalah prosesor independen dengan beberapa pipeline superskalar paralel. Beberapa prosesor multicore juga menyertakan kemampuan vektor.
Halaman terkait
- Komputasi paralel
- Paralelisme tingkat instruksi
- Multithreading simultan (SMT)
- Prosesor multi-inti
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan teknologi superskalar?
J: Teknologi superskalar adalah bentuk komputasi paralel dasar yang memungkinkan lebih dari satu instruksi diproses dalam setiap siklus clock dengan menggunakan beberapa unit eksekusi secara bersamaan.
T: Bagaimana cara kerja teknologi superskalar?
J: Teknologi superskalar melibatkan instruksi yang masuk ke dalam prosesor secara berurutan, mencari ketergantungan data saat prosesor berjalan, dan memuat lebih dari satu instruksi dalam setiap siklus clock.
T: Apa perbedaan antara prosesor skalar dan vektor?
J: Pada prosesor skalar, instruksi biasanya bekerja dengan satu atau dua item data sekaligus, sedangkan pada prosesor vektor, instruksi biasanya bekerja dengan banyak item data sekaligus. Prosesor superskalar merupakan gabungan dari keduanya karena setiap instruksi memproses satu item data, tetapi lebih dari satu instruksi dijalankan sekaligus sehingga banyak item data yang ditangani sekaligus oleh prosesor.
T: Peran apa yang dimainkan oleh dispatcher instruksi yang akurat dalam prosesor superskalar?
J: Sebuah dispatcher instruksi yang akurat sangat penting untuk prosesor superskalar karena memastikan bahwa unit eksekusi selalu sibuk dengan pekerjaan yang mungkin akan dibutuhkan. Jika dispatcher instruksi tidak akurat, maka beberapa pekerjaan mungkin harus dibuang yang akan membuatnya tidak lebih cepat dari prosesor scaler.
T: Pada tahun berapa semua CPU normal menjadi superskalar?
J: Semua CPU normal menjadi superskalar pada tahun 2008.
T: Berapa banyak ALU, FPU, dan unit SIMD yang bisa ada pada CPU normal?
J: Pada CPU normal, terdapat hingga 4 ALU, 2 FPU, dan 2 unit SIMD.