Senin, 25 Maret 2019

Koherensi cache dan protokol MESI

Koherenci cache
  Dalam komputasi, cache koherensi (juga koherensi cache) mengacu pada konsistensi data yang disimpan di lokal cache dari suatu sumber daya bersama. Cache coherence is a special case of memory coherence . koherensi Cache adalah kasus khusus dari koherensi memori .
A. Kegunaan Multiprocessing
  Komputer ini memiliki lebih dari satu processor. Akibatnya meningkatkan jumlah suatu proses yang dapat diselesaikan dalam satu unit waktu (pertambahan throughput ). Perlu diingat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. Yang meningkat adalah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu.
B. Cara Kerja Multiprocessing
  Uang yang terpakai lebih sedikit karena prosesor -prosesor terdapat dalam satu komputer dan dapat membagi peripheral(ekonomis) seperti disk dan catu daya listrik.
  Jika satu processor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas prosesor yang terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan istilah Graceful Degradation . Sistemnya sendiri dikenal bersifat fault tolerant atau fail-soft system .
Ada dua jenis multiprocessor system yaitu :
1. Symmetric MultiProcessing (SMP)
2. Asymmetric MultiProcessing (ASMP).
  Dalam SMP setiap prosesor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan di suatu waktu tanpa pengurangan performance. Sementara itu dalam ASMP setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor bertindak sebagai Master processor yang bertugas menjadwalkan dan mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors . Umumnya ASMP dipake pada sistem yang besar.
  Ketika klien dalam suatu sistem memelihara cache dari suatu sumber daya memori umum, permasalahan akan muncul dengan data yang tidak konsisten. Hal ini terutama berlaku dari CPU dalam multiprocessing sistem.. Mengacu pada "Caches Beberapa dari Shared Resource" angka, jika klien atas memiliki salinan dari sebuah blok memori dari membaca sebelumnya dan perubahan klien bawah yang blok memori, klien atas dapat ditinggalkan dengan cache tidak valid dari memori tanpa pemberitahuan perubahan. Cache koherensi dimaksudkan untuk mengelola konflik tersebut dan menjaga konsistensi antara cache dan memori.
Koherensi mendefinisikan perilaku dari membaca dan menulis ke lokasi memori yang sama. Koherensi cache diperoleh jika kondisi berikut ini terpenuhi:
1.Bacaan yang dibuat oleh prosesor P ke lokasi X yang mengikuti menulis dengan prosesor yang sama P ke X, dengan tidak menulis tentang X dengan prosesor lain yang terjadi antara menulis dan membaca petunjuk yang dibuat oleh P, X harus selalu mengembalikan nilai tertulis oleh P. Hal ini terkait dengan urutan program pelestarian, dan ini harus dicapai bahkan di arsitektur monoprocessed.
2.Bacaan yang dibuat oleh prosesor P1 ke lokasi X yang mengikuti menulis dengan prosesor P2 lain untuk X harus mengembalikan nilai tertulis yang dibuat oleh P2 jika tidak ada lain menulis ke X yang dibuat oleh prosesor pun terjadi antara dua akses. Kondisi ini mendefinisikan konsep pandangan koheren memori.. Jika prosesor dapat membaca nilai lama yang sama setelah menulis dibuat oleh P2, kita dapat mengatakan bahwa memori sudah membingungkan.
3.Dengan kata lain, jika lokasi X menerima dua nilai yang berbeda A dan B, dalam urutan ini, oleh dua prosesor, prosesor tidak pernah dapat membaca lokasi X sebagai B dan kemudian membacanya sebagai A. Lokasi X harus dilihat dengan nilai A dan B dalam urutan itu.
  Kondisi ini didefinisikan mengandaikan bahwa membaca dan menulis operasi dibuat seketika. Namun, hal ini tidak terjadi di memori komputer hardware latency diberikan dan aspek lain dari arsitektur. Sebuah menulis dengan prosesor P1 tidak dapat dilihat dengan membaca dari P2 prosesor jika membaca dilakukan dalam waktu yang sangat kecil setelah menulis telah dibuat. Model konsistensi mendefinisikan memori ketika nilai tertulis harus dilihat oleh instruksi membaca berikut dibuat oleh prosesor lainnya.
Berbagai model dan protokol telah dirancang untuk menjaga koherensi cache, seperti:
MSI protocol
MESI protocol
MOSI protocol
MOESI protocol
MERSI protocol
MESIF protocol
Write-once protocol
Synapse protocol
Berkeley protocol
Firefly protocol
Dragon protocol
  Pilihan model konsistensi sangat penting untuk merancang sistem koheren cache. Coherence model berbeda dalam kinerja dan skalabilitas; masing-masing harus dievaluasi untuk setiap perancangan sistem.
Mengelola koherensi cache
  Suatu protokol untuk mengelola cache sistem multiprosesor sehingga tidak ada data yang hilang atau ditimpa sebelum data tersebut dipindahkan dari cache ke target memori. When two or more computer processors work together on a single program,
  Ketika dua atau lebih prosesor komputer bekerja sama dalam satu program, yang dikenal sebagai multiprocessing , mungkin setiap prosesor memiliki memori cache sendiri yang terpisah dari yang lebih besar RAM bahwa prosesor individu akan akses.
  Sebuah cache memori, kadang-kadang disebut sebuah toko cache atau cache RAM , adalah bagian memori yang terbuat dari high-speed static RAM (SRAM) bukan lebih lambat dan murah RAM dinamis (DRAM) yang digunakan untuk utama memori . Memori cache efektif karena sebagian besar program
akses data yang sama atau instruksi berulang-ulang. Dengan menjaga sebanyak informasi ini mungkin dalam SRAM, komputer menghindari mengakses DRAM lebih lambat.
  Ketika beberapa prosesor dengan cache terpisah berbagi memori yang sama, perlu untuk menjaga persediaan dalam keadaan koherensi dengan memastikan bahwa setiap bersama operan yang diubah dalam cache apapun berubah sepanjang seluruh sistem.
  Hal ini dilakukan dalam salah satu dari dua cara: melalui-direktori berbasis atau sistem mengintai. Dalam sistem direktori berbasis, data sedang dibagi ditempatkan dalam sebuah direktori umum yang mempertahankan koherensi antara cache. direktori bertindak sebagai filter melalui mana prosesor harus meminta izin untuk memuat entri dari memori utama ke cache nya.. Ketika entri berubah direktori baik pembaruan atau membatalkan cache lain dengan entri tersebut. Dalam sistem mengintai, semua cache pada bus monitor (atau mengintip) bus untuk menentukan apakah mereka memiliki salinan dari blok data yang diminta di bus. cache Setiap salinan status berbagi setiap blok memori fisik yang dimilikinya.
  Cache misses dan memori lalu lintas karena blok data bersama membatasi kinerja komputasi paralel di komputer multiprocessor atau sistem.. koherensi Cache bertujuan untuk memecahkan masalah yang berkaitan dengan berbagi data.
  Koherensi Cache adalah disiplin yang memastikan bahwa perubahan nilai dari operan bersama yang disebarkan di seluruh sistem secara tepat waktu.
Ada tiga tingkatan yang berbeda dari koherensi cache:
1.Every write operation appears to occur instantaneously. Setiap operasi menulis tampaknya terjadi secara instan.
2.All processes see exactly the same sequence of changes of values for each separate operand. Semua proses melihat urutan yang sama persis perubahan nilai untuk setiap operan terpisah.
3.Different processes may see an operand assume different sequences of values. proses yang berbeda mungkin melihat operan mengasumsikan urutan yang berbeda nilai. (This is considered noncoherent behavior.) (Ini dianggap perilaku koheren.)
In both level 2 behavior and level 3 behavior, a program can observe stale data . Dalam kedua perilaku 2 dan tingkat 3 perilaku, sebuah program dapat mengamati data basi . Recently, computer designers have come to realize that the programming discipline required to deal with level 2 behavior is sufficient to deal also with level 3 behavior. Baru-baru ini, desainer komputer telah menyadari bahwa disiplin pemrograman dibutuhkan untuk menangani dengan tingkat 2 perilaku cukup untuk menangani juga dengan tingkat 3 perilaku. Therefore, at some point only level 1 and level 3 behavior will be seen in machines. Oleh karena itu, di beberapa titik hanya level 1 dan level 3 perilaku akan terlihat dalam mesin.

Tidak ada komentar:

Posting Komentar