Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Minggu, 28 Juni 2009

Superscalar

Sejarah (SuperScala)

Seymour Cray 's CDC 6600 dari 1965 sering disebut sebagai yang pertama superscalar desain. Intel i960 CA (1988) dan 29.000 AMD seri-29050 (1990) microprocessors komersial pertama adalah satu keping superscalar microprocessors. RISC CPU seperti ini membawa konsep superscalar untuk mikro komputer karena hasil desain RISC dalam inti sederhana, sehingga mudah instruksi dispatch dan penyertaan dari beberapa unit fungsional (seperti ALUs) pada satu CPU dalam desain dibikin aturan waktu. Ini merupakan alasan yang RISC desain yang lebih cepat dari CISC melalui desain 1980-an dan 1990-an ke dalam.

Kecuali untuk digunakan dalam CPU rendah daya aplikasi, embedded system, dan baterai-powered perangkat, pada dasarnya semua tujuan-CPU umum dikembangkan sejak 1998 adalah tentang superscalar.

Pentium adalah prosesor x86 pertama superscalar; yang Nx586, Pentium Pro dan AMD K5 yang pertama di antara desain yang decodes x86-petunjuk asynchronously menjadi dinamis microcode seperti mikro-op sequence sebelum pelaksanaan sebenarnya pada superscalar mikroarsitektur ini untuk membuka dinamis dari penjadwalan buffered sebagian petunjuk dan memungkinkan lebih parallelism untuk digali dibandingkan dengan lebih kaku metode yang digunakan dalam sederhana Pentium juga disederhanakan spekulatif pelaksanaan dan boleh lebih tinggi dibandingkan dengan frekuensi clock desain seperti lanjutan Cyrix 6x86.

Dari scalar ke superscalar

Prosesor yang paling sederhana scalar prosesor. Setiap instruksi yang dijalankan oleh scalar prosesor manipulates biasanya satu atau dua item data pada suatu waktu. Dengan kontras, setiap instruksi yang dijalankan oleh prosesor vektor beroperasi secara bersamaan pada banyak data item. Sebuah analogi adalah perbedaan antara scalar dan vektor aritmatika. prosesor superscalar adalah jenis campuran keduanya. Setiap instruksi proses data satu item, tetapi ada beberapa berlebihan fungsional dalam setiap unit CPU sehingga beberapa petunjuk dapat memproses data item terpisah bersamaan.

Superscalar desain CPU menekankan pengajaran memberangkatkan meningkatkan akurasi, dan memungkinkan untuk menyimpan beberapa unit fungsional digunakan setiap waktu. Hal ini menjadi semakin penting ketika jumlah unit meningkat. Sementara awal superscalar CPU akan memiliki dua ALUs dan satu FPU, desain modern seperti PowerPC 970 mencakup empat ALUs, dua FPUs, dan dua SIMD unit. Jika tidak efektif di memberangkatkan adalah menjaga semua unit bosan dengan petunjuk, kinerja sistem akan menderita.

prosesor superscalar biasanya sustains yang menilai pelaksanaan melebihi satu instruksi per siklus mesin. Namun hanya beberapa instruksi pemrosesan bersamaan tidak membuat arsitektur superscalar, sejak pipelined, multiprocessor atau multi-core arsitektur juga mencapai itu, tetapi dengan berbagai metode.

Dalam superscalar CPU yang memberangkatkan membaca instruksi dari memori dan memutuskan mana yang dapat dijalankan secara paralel, dispatching mereka untuk unit fungsional yang berlebihan di dalam satu CPU. Oleh karena itu sebuah prosesor superscalar dapat envisioned memiliki beberapa Pipelines paralel, masing-masing adalah pemrosesan instruksi secara bersamaan dari satu instruksi thread.

Batasan

Tersedia kinerja dari teknik superscalar dibatasi oleh dua bidang utama:
  1. Sudut intrinsik parallelism dalam instruksi streaming, yaitu terbatasnya jumlah instruksi level parallelism, dan
  2. Kompleksitas waktu dan biaya yang terkait memberangkatkan dan memeriksa dependensi logika.

Dalam beberapa kasus petunjuk tidak tergantung pada satu sama lain dan dapat dijalankan secara bersamaan. Dalam kasus lain mereka saling tergantung: satu instruksi dampak baik sumberdaya atau hasil lainnya. TInstruksi a = b + c; d = e + f dapat dijalankan secara paralel karena tidak tergantung dari hasil perhitungan pada lainnya. Namun, instruksi a = b + c; b = e + f runnable mungkin tidak secara paralel, tergantung pada urutan instruksi yang lengkap, sementara mereka bergerak melalui unit.

Bila jumlah instruksi yang dikeluarkan secara bersamaan meningkat, biaya ketergantungan memeriksa meningkat sangat pesat. Hal ini kian diperparah oleh perlu memeriksa dependensi pada waktu berjalan dan pada CPU's clock tinggi. Ini termasuk biaya tambahan gerbang logika yang diperlukan untuk melaksanakan pemeriksaan, dan waktu keterlambatan melalui pintu itu.Penelitian menunjukkan gerbang biaya dalam beberapa kasus mungkin n k pintu, dan keterlambatan biaya k 2 log n, dimana n adalah jumlah instruksi pada prosesor instruksi set, dan k adalah jumlah sekaligus dispatched petunjuk. Dalam matematika, hal ini disebut combinatoric masalah melibatkan permutations.

Walaupun mungkin berisi instruksi streaming tidak antar-instruksi dependensi, yang superscalar CPU namun harus memeriksa bahwa kemungkinan, karena tidak ada jaminan lain dan kegagalan untuk mendeteksi ketergantungan akan menghasilkan hasil yang salah.

Tidak peduli bagaimana lanjutan proses yang semikonduktor atau cara yang cepat berpindah kecepatan, ini tempat yang praktis batasan jumlah instruksi dapat sekaligus dispatched.Meskipun proses kemajuan, akan pernah lebih besar jumlah unit fungsional (misalnya, ALUs), beban memeriksa dependensi instruksi yang tumbuh begitu pesat yang dicapai superscalar dispatch batas cukup kecil. Mungkin di urutan lima sampai enam sekaligus dispatched petunjuk.

Namun bahkan diberikan sangat jauh lebih cepat memeriksa dependensi logika lain pada konvensional superscalar CPU, jika instruksi streaming itu sendiri memiliki banyak dependensi, ini juga akan membatasi speedup mungkin. Dengan demikian sudut intrinsik parallelism dalam bentuk kode streaming kedua batasan.

Sumber: Klik Disini


Tidak ada komentar:

Posting Komentar