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