Prosesor dalam Sistem Paralel
Pada tahun 80-an, prosesor tujuan khusus populer untuk membuat multikomputer disebut Transputer. Transputer terdiri dari satu prosesor inti, memori SRAM kecil, antarmuka memori utama DRAM, dan empat saluran komunikasi, semuanya dalam satu chip. Untuk membuat komunikasi komputer paralel, saluran dihubungkan untuk membentuk jaringan Transputers. Tetapi ia memiliki kekurangan daya komputasi dan karenanya tidak dapat memenuhi permintaan aplikasi paralel yang semakin meningkat. Masalah ini diselesaikan dengan pengembangan prosesor RISC dan harganya juga murah.
Komputer paralel modern menggunakan mikroprosesor yang menggunakan paralelisme pada beberapa level seperti paralelisme level instruksi dan paralelisme level data.
Prosesor Berkinerja Tinggi
Prosesor RISC dan RISCy mendominasi pasar komputer paralel saat ini.
Karakteristik RISC tradisional adalah -
- Memiliki sedikit mode pengalamatan.
- Memiliki format tetap untuk instruksi, biasanya 32 atau 64 bit.
- Memiliki instruksi pemuatan / penyimpanan khusus untuk memuat data dari memori untuk mendaftar dan menyimpan data dari register ke memori.
- Operasi aritmatika selalu dilakukan pada register.
- Menggunakan pipelining.
Sebagian besar mikroprosesor saat ini adalah superskalar, yaitu dalam komputer paralel beberapa jalur pipa instruksi digunakan. Oleh karena itu, prosesor superscalar dapat menjalankan lebih dari satu instruksi pada saat yang bersamaan. Efektivitas prosesor superskalar bergantung pada jumlah paralelisme tingkat instruksi (ILP) yang tersedia dalam aplikasi. Agar pipeline tetap terisi, instruksi pada level hardware dijalankan dalam urutan yang berbeda dari urutan program.
Banyak mikroprosesor modern menggunakan pendekatan super pipelining . Dalam super pipelining , untuk meningkatkan frekuensi clock, pekerjaan yang dilakukan dalam tahapan pipeline dikurangi dan jumlah tahapan pipeline ditambah.
Prosesor Kata Instruksi Sangat Besar (VLIW)
Ini berasal dari mikroprogram horizontal dan pemrosesan superscalar. Instruksi dalam prosesor VLIW sangat besar. Operasi dalam satu instruksi dijalankan secara paralel dan diteruskan ke unit fungsional yang sesuai untuk dieksekusi. Jadi, setelah mengambil instruksi VLIW, operasinya didekodekan. Kemudian operasi dikirim ke unit fungsional di mana mereka dijalankan secara paralel.
Prosesor Vektor
Prosesor vektor adalah prosesor bersama untuk mikroprosesor tujuan umum. Prosesor vektor umumnya register-register atau memori-memori. Instruksi vektor diambil dan didekodekan dan kemudian operasi tertentu dilakukan untuk setiap elemen vektor operan, sedangkan dalam prosesor normal operasi vektor membutuhkan struktur loop dalam kode. Untuk membuatnya lebih efisien, pemroses vektor merangkai beberapa operasi vektor bersama-sama, yaitu hasil dari satu operasi vektor diteruskan ke operasi vektor lainnya sebagai operan.
Caching
Cache adalah elemen penting dari mikroprosesor berkinerja tinggi. Setelah setiap 18 bulan, kecepatan mikroprosesor menjadi dua kali lipat, tetapi chip DRAM untuk memori utama tidak dapat bersaing dengan kecepatan ini. Jadi, cache diperkenalkan untuk menjembatani kesenjangan kecepatan antara prosesor dan memori. Cache adalah memori SRAM yang cepat dan kecil. Lebih banyak cache yang diterapkan dalam prosesor modern seperti cache Translation Look-side Buffer (TLBs), cache instruksi dan data, dll.
Cache yang Dipetakan Langsung
Dalam cache yang dipetakan langsung, fungsi 'modulo' digunakan untuk pemetaan alamat satu-ke-satu di memori utama ke lokasi cache. Karena entri cache yang sama dapat memiliki beberapa blok memori utama yang dipetakan ke dalamnya, prosesor harus dapat menentukan apakah blok data dalam cache adalah blok data yang benar-benar diperlukan. Identifikasi ini dilakukan dengan menyimpan tag bersama dengan blok cache.
Cache Asosiatif Sepenuhnya
Pemetaan asosiatif sepenuhnya memungkinkan untuk menempatkan blok cache di mana saja dalam cache. Dengan menggunakan beberapa kebijakan penggantian, cache menentukan entri cache di mana ia menyimpan blok cache. Cache asosiatif penuh memiliki pemetaan fleksibel, yang meminimalkan jumlah konflik entri cache. Karena penerapan asosiatif sepenuhnya mahal, ini tidak pernah digunakan dalam skala besar.
Set-asosiatif Cache
Pemetaan asosiatif himpunan adalah kombinasi dari pemetaan langsung dan pemetaan asosiatif penuh. Dalam kasus ini, entri cache dibagi lagi menjadi set cache. Seperti dalam pemetaan langsung, ada pemetaan tetap dari blok memori ke satu set di cache. Namun di dalam set cache, blok memori dipetakan dengan cara asosiatif sepenuhnya.
Strategi cache
Selain mekanisme pemetaan, cache juga memerlukan berbagai strategi yang menentukan apa yang harus terjadi dalam kasus peristiwa tertentu. Dalam kasus cache asosiatif (set-), cache harus menentukan blok cache mana yang akan diganti dengan blok baru yang memasuki cache.
Beberapa strategi penggantian yang terkenal adalah -
- First-In First Out (FIFO)
- Paling Sedikit Baru Digunakan (LRU)