Cache Coherence Masalah [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Cache Coherence Masalah Dalam sistem multiprosesor, inkonsistensi data dapat terjadi antara tingkat berdekatan atau dalam tingkat yang sama dari hirarki memori. Misalnya, cache dan memori utama mungkin memiliki salinan yang tidak konsisten dari objek yang sama. Seperti beberapa prosesor beroperasi secara paralel, dan mandiri beberapa cache mungkin memiliki salinan yang berbeda dari blok memori yang sama, ini menciptakan koherensi cache masalah. Skema Cache koherensi membantu untuk menghindari masalah ini dengan mempertahankan negara seragam untuk setiap blok cache data.



Misalkan X elemen data bersama yang telah direferensikan oleh dua prosesor, P1 dan P2. Pada awalnya, tiga salinan X konsisten. Jika prosesor P1 menulis X1 data baru ke dalam cache, dengan menggunakan kebijakan write-through, salinan yang sama akan segera ditulis ke dalam memori bersama. Dalam hal ini, inkonsistensi terjadi antara memori cache dan memori utama. Ketika kebijakan write-back yang digunakan, memori utama akan diperbarui bila data diubah dalam cache diganti atau tidak valid. Secara umum, ada tiga sumber masalah inkonsistensi 



Berbagi data ditulis







migrasi proses







I / kegiatan O



Snoopy Bus Protokol Protokol Snoopy mencapai konsistensi data antara memori cache dan memori bersama melalui sistem memori berbasis bus. Menulis-invalidate dan menulis update kebijakan yang digunakan untuk menjaga konsistensi persediaan.



Dalam hal ini, kami memiliki tiga prosesor P1, P2, dan P3 memiliki salinan konsisten elemen data 'X' di memori cache lokal mereka dan dalam memori bersama (Gambar-a). Processor P1 menulis X1 dalam memori cache menggunakan protokol write-invalidate. Jadi, semua salinan lain batal melalui bus. Hal ini ditunjukkan dengan 'I' (Gambar-b). Blok diremehkan juga dikenal sebagai kotor, yaitu mereka tidak harus digunakan. Protokol write-update update semua salinan tembolok melalui bus. Dengan menggunakan write kembali tembolok, salinan memori juga diperbarui (Gambar-c).



Cache Acara dan Tindakan Menyusul peristiwa dan tindakan terjadi pada eksekusi memori-akses dan pembatalan perintah 



Baca-miss - Ketika prosesor ingin membaca blok dan tidak dalam cache, baca-miss terjadi. Ini memulai operasi busbaca. Jika tidak ada salinan kotor ada, maka memori utama yang memiliki salinan yang konsisten, persediaan salinan ke memori cache meminta. Jika salinan kotor ada dalam memori cache terpencil, cache yang akan menahan memori utama dan mengirim salinan ke memori cache meminta. Dalam kedua kasus, salinan tembolok akan memasuki keadaan valid setelah miss membaca.







Menulis-hit - Jika salinan tersebut di kotor atau milik negara, menulis dilakukan secara lokal dan negara baru kotor. Jika negara baru berlaku, menulis-membatalkan perintah disiarkan ke semua cache, membatalkan salinan mereka. Ketika memori bersama ditulis melalui, negara yang dihasilkan dicadangkan setelah menulis pertama ini.







Menulis-miss - Jika prosesor gagal untuk menulis dalam memori cache lokal, salin harus datang baik dari memori utama



atau dari memori cache jauh dengan blok kotor. Hal ini dilakukan dengan mengirimkan perintah membaca-invalidate, yang akan membatalkan semua salinan tembolok. Maka salinan lokal diperbarui dengan negara kotor. 



Baca-hit - baca-hit selalu dilakukan dalam memori cache lokal tanpa menyebabkan transisi dari negara atau menggunakan bus snoopy untuk pembatalan.







Blok pengganti - Ketika salinan kotor, itu harus ditulis kembali ke memori utama dengan metode block pengganti. Namun, ketika salinan tersebut baik dalam keadaan valid atau dicadangkan atau tidak valid, tidak ada penggantian akan berlangsung.



Protokol direktori Berbasis Dengan menggunakan jaringan multistage untuk membangun multiprosesor besar dengan ratusan prosesor, snoopy protokol cache yang perlu dimodifikasi agar sesuai dengan kemampuan jaringan. Broadcasting menjadi sangat mahal untuk tampil di jaringan multistage, konsistensi perintah dikirim hanya kepada mereka cache yang menyimpan salinan dari blok. Ini adalah alasan untuk pengembangan protokol berbasis direktori untuk Multiprocessors yang terhubung ke jaringan. Dalam sistem protokol berbasis direktori, data yang akan dibagi ditempatkan dalam direktori umum yang mempertahankan koherensi antara cache. Di sini, direktori bertindak sebagai filter dimana prosesor meminta izin untuk memuat entri dari memori utama ke memori cache. Jika entri berubah direktori baik update atau membatalkan cache lain dengan entri itu.



Mekanisme hardware Sinkronisasi Sinkronisasi adalah bentuk khusus dari komunikasi di mana bukan kontrol data, informasi yang dipertukarkan antara berkomunikasi proses yang berada di prosesor yang sama atau berbeda. sistem multiprosesor menggunakan mekanisme hardware untuk melaksanakan operasi sinkronisasi tingkat rendah. Kebanyakan Multiprocessors memiliki mekanisme hardware untuk memaksakan operasi atom seperti membaca memori, menulis atau membaca-memodifikasimenulis operasi untuk mengimplementasikan beberapa primitif sinkronisasi. Selain operasi memori atom, beberapa interupsi antar-prosesor juga digunakan untuk tujuan sinkronisasi.



Cache koherensi di Mesin Memory Bersama Mempertahankan koherensi cache adalah masalah dalam sistem multiprosesor ketika prosesor berisi memori cache lokal. Inkonsistensi data antara cache yang berbeda dengan mudah terjadi dalam sistem ini. Daerah perhatian utama adalah 



Berbagi data ditulis







migrasi proses







I / kegiatan O



Berbagi data ditulis Ketika dua prosesor (P1 dan P2) memiliki elemen data yang sama (X) dalam cache lokal mereka dan satu proses (P1) menulis ke elemen data (X), sebagai cache yang write-through cache lokal dari P1, memori utama adalah juga diperbarui. Sekarang ketika P2 mencoba untuk membaca elemen data (X), tidak menemukan X karena elemen data dalam cache P2 telah menjadi usang.



migrasi proses Pada tahap pertama, cache P1 memiliki elemen data X, sedangkan P2 tidak memiliki apa-apa. Sebuah proses pada P2 pertama menulis tentang X dan



kemudian bermigrasi ke P1. Sekarang, proses dimulai membaca elemen data X, tetapi sebagai P1 prosesor telah usang proses data tidak bisa membacanya. Jadi, proses pada P1 menulis ke elemen data X dan kemudian bermigrasi ke P2. Setelah migrasi, proses pada P2 dimulai membaca elemen data X tetapi menemukan versi lama dari X dalam memori utama.



I / kegiatan O Seperti diilustrasikan dalam gambar, perangkat I / O ditambahkan ke bus dalam arsitektur multiprosesor dua prosesor. Pada awalnya, kedua cache mengandung elemen data X. Bila perangkat I / O menerima unsur baru X, menyimpan unsur baru langsung di memori utama. Sekarang, ketika baik P1 atau P2 (menganggap P1) mencoba untuk membaca elemen X mendapat salinan usang. Jadi, P1 menulis ke unsur X. Sekarang, jika perangkat I / O mencoba untuk mengirimkan X mendapat salinan usang.



Uniform Access Memory (UMA) Uniform Access Memory (UMA) arsitektur berarti memori bersama adalah sama untuk semua prosesor dalam sistem. Kelas populer mesin UMA, yang biasanya digunakan untuk (file-) server, yang disebut Symmetric Multiprocessors (SMP). Dalam sebuah SMP, semua sistem sumber daya seperti memori, disk, perangkat I / O lainnya, dll dapat diakses oleh prosesor secara seragam.



Non-Uniform Memory Access (NUMA) Dalam arsitektur NUMA, ada beberapa cluster SMP memiliki tidak langsung / jaringan bersama internal, yang terhubung di scalable jaringan penyampaian pesan. Jadi, arsitektur NUMA secara logis dibagi arsitektur memori terdistribusi secara fisik. Dalam mesin NUMA, cache-controller dari prosesor menentukan apakah referensi memori lokal untuk memori SMP atau itu jauh. Untuk mengurangi jumlah memori jarak jauh mengakses, NUMA arsitektur biasanya menerapkan prosesor caching yang dapat cache data remote. Tapi ketika cache yang terlibat, koherensi cache perlu dipertahankan. Jadi sistem ini juga dikenal sebagai CC-NUMA (Cache Coherent NUMA).



Cache Only Memory Architecture (koma) mesin koma mirip dengan mesin NUMA, dengan satu-satunya perbedaan bahwa kenangan utama mesin koma bertindak sebagai cache langsung dipetakan atau set-asosiatif. Blok data hash ke lokasi di cache DRAM menurut alamat mereka. Data yang diambil dari jarak jauh sebenarnya disimpan dalam memori utama lokal. Selain itu, blok data tidak memiliki lokasi rumah tetap, mereka bisa bebas bergerak di seluruh sistem. arsitektur koma sebagian besar memiliki jaringan pesan-lewat hirarkis. Sebuah switch pada pohon itu berisi direktori dengan elemen data sebagai sub-pohonnya. Karena data tidak memiliki lokasi rumah, harus secara eksplisit mencari. Ini berarti bahwa akses remote membutuhkan traversal sepanjang switch di pohon untuk mencari direktori mereka untuk data yang dibutuhkan. Jadi, jika switch dalam jaringan menerima beberapa permintaan



dari subtree untuk data yang sama, menggabungkan mereka ke dalam satu permintaan yang dikirim ke induk dari saklar. Ketika kembali data yang diminta, switch mengirimkan beberapa salinan dari bawah subpohon.



COMA vs CC-NUMA Berikut ini adalah perbedaan antara koma dan CC-NUMA. 



COMA cenderung lebih fleksibel daripada CC-NUMA karena koma transparan mendukung migrasi dan replikasi data tanpa perlu OS.







mesin koma mahal dan kompleks untuk membangun karena mereka membutuhkan hardware manajemen memori non-standar dan protokol koherensi lebih sulit untuk melaksanakan.







Terpencil mengakses di COMA sering lambat dibandingkan dengan CCNUMA sejak jaringan pohon perlu dilalui untuk mencari data.