Menuju Memory Model koheren Multicore
Dengan
multicores exascale , pertanyaan tentang bagaimana untuk secara efisien
mendukung model memori bersama adalah sangat penting . Sebagai
programmer menuntut kenyamanan memori bersama koheren , jumlah inti
yang terus berkembang menempatkan tuntutan yang lebih tinggi pada
subsistem memori , dan meningkatkan on-chip jarak berarti bahwa
penundaan interkoneksi mengerahkan dampak yang signifikan terhadap
latency akses memori .Selama
dekade terakhir , batas disipasi panas telah menghentikan drive
terhadap frekuensi inti yang semakin tinggi , tetapi kepadatan
transistor terus tumbuh , dan CPU dengan delapan atau lebih core
sekarang umum dalam tujuan umum pasar prosesor komoditas dan kelas
server .
Untuk meningkatkan kinerja lebih lanjut dan menggunakan transistor yang
tersedia lebih efisien , arsitek yang beralih ke prosesor multicore
menengah dan skala besar , baik di akademisi - Raw , TRIPS , dan
Eksekusi Migrasi Machine , misalnya - dan dalam industri - Tilera , Intel TeraFLOPS , dan Intel Phi . Pakar memprediksi 1.000 atau lebih core dalam hanya beberapa tahun .
Bagaimana chip ini secara besar-besaran multicore diprogram ? Sebuah abstraksi memori bersama berdiri sebagai sine qua non untuk pemrograman tujuan umum . Meskipun
arsitektur dengan model memori terbatas , terutama GPU , sangat
berhasil dalam aplikasi tertentu seperti rendering grafis , kebanyakan
programmer lebih suka model memori bersama , dan komersial tujuan
umum multicores mendukung abstraksi ini dalam hardware . Pertanyaan
utama, kemudian , adalah bagaimana efisien menyediakan memori bersama
koheren pada skala ratusan atau ribuan - - core .Core
ini biasanya akan berisi per -core L1 dan L2 cache karena kebutuhan
daya cache yang tumbuh kuadratik dengan ukuran , sehingga satu-satunya
pilihan praktis untuk menerapkan cache yang besar adalah untuk fisik
mendistribusikannya pada chip sehingga setiap inti adalah dekat beberapa
bagian dari Cache .
Untuk
programabilitas , core tersebut harus memberikan ruang pengalamatan
bersatu , dan , untuk efisiensi , ruang ini harus dikelola secara
otomatis pada tingkat hardware . Cache koherensi harus dipertahankan pada cache L1 ( L2 dan di dalam kasus cache L2 swasta ) untuk mendukung memori bersama . Mengintip
protokol koherensi cache, populer pada jumlah inti kecil ( seperti
empat ) , tidak layak dalam arsitektur banyak - inti karena overhead
serialisasi . Kesulitan
lain timbul dari kenyataan bahwa interkoneksi bus - dan - palang
konvensional tidak lagi skala karena bandwidth atau daerah keterbatasan .
Chip
multiprocessors banyak -core ( CMPS ) , sebaliknya, cenderung ke arah
ubin arsitektur - mana array ubin yang terhubung melalui on -chip
interkoneksi point- to-point .Pada
skala di mana mekanisme berbasis bus gagal , solusi tradisional untuk
memori hardware - bersama adalah berbasis direktori cache koherensi , di
mana sebuah direktori secara logis pusat koordinat berbagi antara cache
per core , dan masing-masing Cache inti harus bernegosiasi bersama (
read-only ) atau eksklusif ( baca / tulis ) akses ke setiap baris cache melalui protokol koherensi . Namun, penggunaan direktori menimbulkan tantangan tersendiri . Lalu lintas Coherence dapat signifikan , yang meningkatkan delay interkoneksi , kemacetan , dan penggunaan daya . Selain
itu , kinerja aplikasi dapat menderita karena latency panjang antara
direktori dan pemohon , terutama untuk berbagi membaca / menulis data,
ukuran direktori harus sama porsi yang signifikan dari ukuran gabungan
dari cache per core , atau penggusuran direktori lain akan membatasi
kinerja .
Dalam
edisi khusus ini , pertama dua artikel mengatasi tantangan yang
berhubungan dengan direktori ini dan memberikan teknik-teknik baru untuk
meningkatkan daya dan kinerja berbasis direktori koherensi .Dalam
" Dampak Dinamis Direktori pada Multicore interkoneksi , " Matthew
Schuchhardt dan rekan-rekannya menyadari bahwa sebagian besar dari
on-chip lalu lintas berasal dari bukan transfer data aktual , tetapi
dari intercore komunikasi untuk mempertahankan data yang koherensi . Mereka
menjelaskan bagaimana menempatkan direktori dekat sharers data yang
menghilangkan sebagian besar dari on-chip traversals interkoneksi .Dalam
" Sebuah Pendekatan Aplikasi - Disesuaikan dengan Hardware Cache
Coherence , " Arrvindh Shriraman , Hongzhou Zhao , dan Sandhya Dwarkadas
mengusulkan menyesuaikan dukungan koherensi ke aplikasi dalam prosesor
banyak - inti . Mereka menyajikan teknik yang mengurangi persyaratan penyimpanan direktori dengan mengenali pola berbagi . Selain
itu , mereka menyajikan teknik protokol tingkat untuk mengeksploitasi
akses granularity spasial aplikasi dan dengan demikian menghindari
komunikasi data yang tidak perlu .Dalam
artikel ketiga , " Single- Cycle multihop Asynchronous berulang
Traversal : A Future SMART untuk reconfigurable On- Chip Networks , "
Tushar Krishna dan rekan-rekannya langsung mengatasi masalah latency
dari interkoneksi on-chip . The
SMART (single - cycle multihop asynchronous traversal berulang )
jaringan on-chip menyajikan jalur tunggal siklus sepanjang jalan dari
sumber ke tujuan , terlepas dari jumlah fisik hop di antara mereka . SMART berpotensi mengurangi latency lalu lintas koherensi signifikan .Artikel
keempat , " Menuju Holistik Soft- Error- Resilient Shared- Memory
multicores " oleh Qingchuan Shi dan Omer Khan , menyajikan arsitektur
multicore shared- memory error - tangguh . Mekanisme
kontrol redundansi mereka didistribusikan beroperasi dalam konser
dengan protokol koherensi untuk mengaktifkan digulung program negara
deterministik untuk eksekusi berlebihan di per -core granularity . Selain
itu , Shi dan Khan menggabungkan teknik mereka dengan protokol
koherensi cache tangguh trade off kinerja dan energi untuk cakupan soft-
error .
Ada
, tentu saja , tantangan lainnya dalam desain dan implementasi sistem
banyak -core selain hardware memori bersama - off -chip kebutuhan
bandwidth dan anggaran power on -chip , untuk nama dua . Mengaktifkan
banyak -core shared memory akan pergi jauh ke arah mengurangi beban
programmer , sehingga fokus dapat pada aplikasi optimasi untuk
mengurangi bandwidth dan kebutuhan energi .
Menuju Memory Model koheren Multicore
Tidak ada komentar:
Posting Komentar