Jumat, 06 Desember 2013

Menuju Memory Model koheren Multicore

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