Sepertinya saya tidak bisa memahami ini, apa perbedaan antara superscalar dan prosesor multi-core?
Saya terus mencampuradukkannya, jadi beberapa poin sederhana tentang apa yang mereka lakukan akan bagus.
Sepertinya saya tidak bisa memahami ini, apa perbedaan antara superscalar dan prosesor multi-core?
Saya terus mencampuradukkannya, jadi beberapa poin sederhana tentang apa yang mereka lakukan akan bagus.
Jawaban:
Prosesor super skalar berarti bahwa Anda mengirim banyak instruksi selama satu siklus clock tunggal. Alasan ini dibedakan dari multi-core adalah bahwa Anda hanya mendapatkan satu penghitung instruksi. Jadi, Anda melacak beberapa instruksi dalam penerbangan, tetapi semua instruksi berasal dari satu program. Ini masih hanya satu proses. Sekarang saya berkata "Anda mendapatkan satu penghitung instruksi," dan secara teknis itu benar bahwa tidak ada titik di mana kode Anda akan mengalami perbedaan kecuali menggunakan beberapa skema prediksi cabang (Eksekusi Spekulatif: Anda secara bersamaan menjalankan kedua cabang dan membuang yang "salah" "hasil prediksi).
Ketika Anda masuk ke multi-core Anda memiliki beberapa aliran instruksi yang dijalankan secara bersamaan. Bagian yang penting adalah bahwa setiap inti (mengeksekusi dengan penghitung instruksinya sendiri) juga bisa super skalar untuk mengeksekusi setiap proses tunggal lebih cepat!
Dimungkinkan untuk memiliki skalar-super tanpa eksekusi pipelining atau out-of-order dengan memiliki apa yang disebut kata instruksi yang sangat panjang atau "VLIW". Ini juga disebut "statis" super-skalar (yaitu dalam kode itu sendiri). Di sinilah Anda pada dasarnya memiliki komponen yang cukup untuk menjalankan banyak instruksi pada saat yang bersamaan, dan Anda mengambil beberapa instruksi sekaligus dan kemudian menjalankannya. Dalam bentuknya yang paling sederhana, bayangkan Anda mengatakan "prosesor ini akan selalu mengambil dan menjalankan dua instruksi secara bersamaan." Maka selama sang koder dapat menemukan pekerjaan yang harus dilakukan secara bersamaan dalam proses yang sama, Anda akan menggandakan throughput Anda! Jika Anda tidak dapat menemukan dua instruksi untuk disatukan, Anda cukup memasangkan satu instruksi dan NOP. Gagasan ini tidak terlalu bagus karena jika Anda membuat versi prosesor yang lebih baik yang dapat menjalankan 3, 4, atau lebih banyak instruksi secara bersamaan, semua kode lama Anda rusak! Tetapi mereka memecahkan masalah ini dengan cara yang sangat cerdik, Anda harus memeriksa komputasi instruksi paralel paralel atau "EPIC" jika Anda ingin tahu lebih banyak.
Super-skalar dinamis dengan pipelining dapat memanfaatkan instruksi independen-data maupun paralelisme tingkat instruksi, yang menjadikannya kombinasi yang sangat kuat. Pada dasarnya itu memungkinkan Anda, dengan perangkat keras yang cukup, untuk melaksanakan sebanyak mungkin instruksi independen secara bersamaan.
Super-skalar dinamis dengan pipelining dan eksekusi out-of-order pada dasarnya adalah batas paralelisme tingkat instruksi: Anda akan mencoba dan menjalankan beberapa instruksi dalam tahap yang sama secara bersamaan, mencoba menemukan operasi yang beroperasi tanpa ketergantungan data. Anda bisa selesai, Anda akan mulai rusak, ada banyak hal yang perlu Anda lakukan untuk menjaga pikiran tetap lurus saat melakukan hal-hal super skalar. Multi-core mengatakan "hei programmer! Beri saya beberapa masalah yang bisa saya selesaikan pada saat yang sama!" dan karena programmer mampu melihat masalah-masalah yang dapat dipecahkan secara independen di luar hanya beberapa baris terpisah dalam perakitan yang dikompilasi, mereka dapat lebih efisien memprogram solusi-solusi tersebut untuk multi-core.
Super-skalar bahkan tidak mampu memecahkan masalah seperti "bagaimana cara menjalankan kedua program ini lebih cepat." Itu hanya bisa menjalankan setiap program independen lebih cepat.
Semoga itu bisa membantu, maaf jika agak terputus-putus.
--Edit--
Dimodifikasi untuk mempertimbangkan poin ajs410 yang saya punya banyak ide bingung.
Jika Anda melihat kembali ke prosesor sebelumnya seperti 80486 atau Pentium maka CPU adalah unit pemrosesan logis tunggal. Itu mengeksekusi aliran tunggal instruksi pada suatu waktu. Satu CPU juga merupakan chip silikon tunggal. Jika Anda menginginkan kekuatan pemrosesan yang lebih banyak, maka Anda dapat membeli motherboard server mahal yang memiliki slot yang sesuai dengan dua CPU yang terpisah. Kemudian Anda memiliki dua mesin CPU dan dua inti pemrosesan.
Pada titik tertentu Hukum Moore berarti kami memiliki begitu banyak transistor yang tersedia dalam silikon sehingga Anda dapat menempatkan semua sirkuit untuk dua CPU menjadi hanya satu chip. Sekarang Anda memiliki potensi untuk penamaan kebingungan. Mengatakan Anda memiliki dua CPU bisa berarti Anda memiliki dua paket silikon gaya lama atau paket silikon tunggal yang lebih baru tetapi dengan pengaturan pemrosesan dua prosesor. Untuk mengatasinya sekarang kami bermaksud CPU menjadi paket silikon tunggal dan Core adalah unit pemrosesan logis tunggal di dalamnya.
Super-skalar mengacu pada teknik yang digunakan dalam inti untuk mencoba dan meningkatkan kinerja dan memungkinkannya untuk memproses lebih banyak instruksi per siklus rata-rata. Sebuah prosesor skalar mengeksekusi paling banyak satu instruksi per siklus, super-skalar berarti dapat berpotensi mengeksekusi lebih dari satu instruksi per siklus. Sebagai contoh, jika prosesor memiliki unit fungsional untuk bilangan bulat aritmatika dan lainnya untuk floating point maka mengapa tidak menggunakan keduanya pada saat yang sama untuk menjalankan dua instruksi secara bersamaan. Bagaimana jika Anda memiliki tiga unit integer dan dua unit floating point? Sekarang Anda memiliki potensi lebih besar untuk eksekusi paralel. Tetapi Anda juga membutuhkan lebih banyak transistor untuk implementasi dan logika yang jauh lebih rumit untuk membuatnya bekerja dengan andal. Di dunia nyata Anda cenderung mendapatkan skalar super yang digunakan bersama dengan desain out-of-order karena mereka saling melengkapi.