Rabu, 24 Juni 2009

SUPERSCALAR PROSESOR

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. 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 Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya. Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan. Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada. Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut. Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.. 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.

(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.

Teknik superscalar yang secara tradisional terkait dengan mengidentifikasi beberapa karakteristik. Catatan ini diterapkan dalam suatu CPU inti.

• Instruksi yang dikeluarkan dari berurutan instruksi streaming

• CPU hardware secara dinamis untuk memeriksa dependensi data antara petunjuk berjalan di waktu (versus perangkat lunak memeriksa di waktu kompilasi)

• Terima petunjuk beberapa jam per siklus

Sederhana superscalar pipa. Dengan mengambil dua dispatching dan petunjuk sekaligus, maksimal dua instruksi per siklus dapat diselesaikan.
Processor papan yang CRAY T3e supercomputer dengan empat prosesor superscalar Alpha 21164

Sejarah

Seymour Cray's CDC 6600 dari 1965 sering disebut sebagai pertama superscalar desain. Intel i960CA (1988) dan seri AMD 29000-29050 (1990) mikro yang komersial pertama chip tunggal superscalar mikro. CPU RISC seperti ini membawa konsep superscalar untuk mikro komputer RISC karena hasil desain yang sederhana inti, agar mudah instruksi dispatch dan keterlibatan beberapa unit fungsional (seperti ALUs) pada satu CPU dalam rancangan peraturan yang terpaksa waktu. Ini adalah alasan yang RISC desain yang lebih cepat dari CISC desain melalui ke dalam tahun 1980-an dan 1990-an.

Kecuali untuk digunakan dalam beberapa CPU-daya baterai perangkat, pada dasarnya semua tujuan-CPU umum dikembangkan sejak 1998 adalah superscalar. Diawali dengan "P6" (Pentium Pro dan Pentium II) pelaksanaan, Intel x86 arsitektur mikro yang telah menerapkan CISC pada set instruksi RISC superscalar mikro. Kompleks petunjuk yang diterjemahkan secara internal ke-RISC seperti "micro-ops" set instruksi RISC, prosesor yang memungkinkan untuk mengambil keuntungan dari performa yang lebih tinggi-prosesor yang melandasi tetap kompatibel dengan prosesor Intel sebelumnya.

Dari skalar untuk superscalar

Prosesor yang paling sederhana adalah skalar prosesor. Setiap instruksi dijalankan oleh prosesor skalar manipulates biasanya satu atau dua item data sekaligus. Sebaliknya, setiap instruksi yang dijalankan oleh prosesor vector beroperasi secara simultan pada banyak data item. Sebuah analogi adalah perbedaan antara skalar dan vector aritmatika. Sebuah prosesor superscalar adalah jenis campuran ke dua. Setiap instruksi proses data satu item, namun ada beberapa fungsional berlebihan dalam setiap unit CPU sehingga beberapa petunjuk dapat memproses data terpisah item serentak.

Superscalar desain CPU menekankan peningkatan instruksi memberangkatkan akurasi, dan mengoperasikannya 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 yang modern seperti PowerPC 970 mencakup empat ALUs, dua FPUs, dan dua unit SIMD. Jika memberangkatkan adalah menjaga tidak efektif di semua unit bosan dengan petunjuk, kinerja sistem akan menderita.

A superscalar prosesor biasanya sustains yang menilai pelaksanaan melebihi satu instruksi per siklus mesin. Tetapi hanya memproses beberapa instruksi serentak tidak membuat sebuah arsitektur superscalar, sejak pipelined, multiprocessor atau multi-inti yang mencapai arsitektur juga, tetapi dengan metode yang berbeda.

Dalam superscalar CPU yang memberangkatkan bacaan instruksi dari memori dan memutuskan mana yang dapat dijalankan secara paralel, dispatching mereka ke membazir unit fungsional yang terdapat di dalam satu CPU. Oleh karena itu prosesor superscalar dapat envisioned memiliki beberapa pipa paralel, yang masing-masing adalah instruksi pemrosesan secara simultan dari sebuah instruksi benang.

Keterbatasan

Tersedia dari peningkatan kinerja superscalar teknik dibatasi oleh dua bidang utama:

• Tingkat dari hakiki paralel dalam instruksi streaming, yakni terbatasnya jumlah instruksi level parallelism, dan

• Kompleksitas waktu dan biaya yang terkait memberangkatkan dan ketergantungan memeriksa logika.

Binari yang ada telah dijalankan program tahap hakiki paralel. Dalam beberapa kasus petunjuk tidak tergantung pada satu sama lain dan dapat dijalankan secara bersamaan. Dalam kasus lain mereka yang antar-tergantung: satu instruksi dampak baik sumber daya atau hasil lainnya. Petunjuk yang = b + c; d = e + f dapat berjalan secara bersamaan karena tidak ada yang bergantung pada hasil perhitungan lain. Namun, petunjuk yang = b + c; d = a + f mungkin tidak akan runnable secara paralel, tergantung pada urutan petunjuk yang lengkap saat mereka bergerak melalui unit.

Bila jumlah yang dikeluarkan secara simultan petunjuk meningkat, biaya memeriksa dependensi meningkat sangat pesat. Hal ini diperparah oleh kebutuhan untuk memeriksa dependensi di waktu dan menjalankan di CPU jam menilai. Ini termasuk biaya tambahan gerbang logika diperlukan untuk melaksanakan pemeriksaan, dan waktu tunda yang melalui pintu. Penelitian menunjukkan pintu gerbang biaya dalam beberapa kasus dapat NK pintu, dan biaya keterlambatan k2logn, dimana n adalah jumlah instruksi pada prosesor's set instruksi, dan k adalah jumlah bersamaan menurunkan petunjuk. Dalam matematika, ini disebut sebagai combinatoric masalah melibatkan permutations.

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

Tidak peduli bagaimana lanjutan proses yang semikonduktor atau cara cepat kecepatan yang berpindah, ini tempat yang praktis membatasi berapa petunjuk dapat menurunkan secara bersamaan. Meskipun proses kemajuan akan mengijinkan pernah lebih besar jumlah unit fungsional (misalnya, ALUs), beban instruksi memeriksa dependensi sehingga tumbuh pesat yang dicapai superscalar dispatch batas relatif kecil. - Kemungkinan pada urutan lima hingga enam secara bersamaan menurunkan petunjuk.

Namun akhirnya tak terhingga cepat memeriksa ketergantungan pada logika konvensional yang lain superscalar CPU, jika instruksi streaming itu sendiri memiliki banyak dependensi, ini juga akan membatasi speedup mungkin. Dengan demikian tingkat hakiki paralel dalam kode streaming bentuk kedua keterbatasan.

Alternatif

Secara kolektif, kedua batas berkendara investigasi ke alternatif arsitektur meningkatkan kinerja seperti Long Sangat Instruksi Word (VLIW), secara paralel Instruksi Computing (EPIC), serentak multithreading (SMT), dan multi-core.

Dengan VLIW, tugas yang memberatkan ketergantungan memeriksa hardware dengan logika berjalan di waktu akan dihapus dan didelegasikan kepada compiler. Instruksi secara paralel Computing (EPIC) adalah seperti VLIW, dengan tambahan cache prefetching petunjuk.

Serentak multithreading, sering disingkat sebagai SMT, adalah teknik untuk meningkatkan efisiensi superscalar CPU. SMT izin dari beberapa rangkaian independen untuk pelaksanaan lebih baik memanfaatkan sumber daya yang disediakan oleh prosesor arsitektur modern.

Superscalar berbeda dari prosesor multi-core yang berlebihan di unit fungsional tidak seluruh prosesor. Satu prosesor terdiri dari halus-halus unit fungsional seperti ALU, kelipatan bulat, bulat Shifter, floating point unit, dll Mungkin ada beberapa versi dari masing-masing unit fungsional untuk memungkinkan pelaksanaan banyak instruksi secara paralel. Ini berbeda dari multicore CPU yang serentak proses instruksi dari beberapa rangkaian, satu per benang inti. Ia juga berbeda dari pipelined CPU, dimana beberapa instruksi dapat dilakukan serentak di berbagai tahapan pelaksanaan, assembly-line mode.
Berbagai alternatif teknik tidak saling eksklusif-mereka dapat (dan sering adalah) digabungkan dalam satu prosesor. Dengan demikian yang multicore CPU dapat di mana masing-masing inti adalah independen prosesor berisi beberapa pipa paralel, masing-masing pipa yang superscalar. Beberapa prosesor juga termasuk vector kemampuan.


DAFTAR PUSTAKA:

Superscalar Prosesor

Superscalar Prosesor di blog lain

Tidak ada komentar: