EXO

EXO

Jumat, 04 November 2011

Koherensi Cache dan protokol MESI

KARAKTERISTIK SISTEM-SISTEM MEMORI
Memori yang kompleks dari memori komputer adalah membuatnya agar lebih mudah diatur jika menggolongkan sistem memori menurut karakteristik pentingnya. Suatu karakteristik memori yang penting adalah kapasitasnya. Bagi memori internal biasanya kapasitas ini dinyatakan dalam baris byte (1 byte=8 bit) atau word. Panjang satu word pada umumnya adalah 8,16 dan 32 bit. Kapasitas memori eksternal biasanya dinyatakan dengan istilah byte. Tiga konsep yang berkaitan dengan memori internal:
• Word
• Addressable units
• Unit transfer

HIERARKI MEMORI
Semakin menurunnya tingkat hierarki maka hal-hal berikut akan terjadi:
• Penurunan biaya per bit
• Peningkatan kapasitas
• Peningkatan waktu akses
• Penurunan frekuensi akses memori oleh prosesor

PRINSIP-PRINSIP MEMORI CACHE

Memori cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang bisa diperoleh dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga lebih murah dari jenis memori-memori semikonduktor. Cache berisi suatu salinan bagian dari memori utama.

ELEMEN-ELEMEN RANCANGAN CACHE

HPC ( High Performance Computing ) berhubungan dengan superkomputer dan perangkat lunak superkomputer terutama untuk aplikasi ilmiah yang melibatkan sejumlah data besar, vector dan penghitungan matriks, dan penggunaan algoritma paralel.

UKURAN CACHE
Ada beberapa motivasi lain untuk meminimalkan ukuran cache. Semakin besar cache, maka semakin besar banyaknya gerbang yang terdapat dalam pengalaman cache. Karena kinerja dari cache adalah sangat sensitive terhadap sifat beban kerja, maka mustahil untuk memperoleh ukuran cache optimum tunggal.

FUNGSI PEMETAAN
Pemilihan fungsi pemetaan akan menentukan bagaimana cache diorganisasikan. Tiga teknik dapat digunakan: langsung, asosiatif, dan asosiatif set. Fungsi pemetaan mudah diterapkan dengan menggunakan alamat. Untuk tujuan mengakses cache, setiap alamat memori utama dapat dipandang terdiri dari tiga bidang.
Sistem cache diberikan dengan suatu alamat 24-bit. Nomor baris 14-bit digunakan sebagai index pada cache untuk mengakses baris tertentu. Teknik pemetaan langsung cukup sederhana dan murah untuk diterapkan. Kekurangan utamanya bahwa terdapat suatu lokasi cache yang tetap untuk sebagian blok manapun yang ditentukan. Pemetaan asosiatif mengatasi kekurangan dari pemetaan langsung dengan cara mengizinkan setiap blok memori utama untuk memuat ke baris cache manapun. Kekurangan yang dari pemetaan aosiatif adalah kompleksitas rangkaian yang diperlukan untuk memeriksa tag dari semua baris cache secara paralel.
Pemetaan asosiatif set adalah suatu kompromi yang memperlihatkan kelebihan pendekatan baik pemetaan langsung maupun pemetaan asosiatif dengan mengurangi kekurangannya

ALGORITMA PENGGANTIAN
Untuk pemetaan langsung, hanya terdapat satu kemungkinan baris bagi sembarangan blok tertentu, dan tidak ada pilihan yang lain adalah mungkin.Bagi teknik asosiatif dan asosiatif set, diperlukan algoritma penggantian. Mungkin algoritma yang paling efektif adalah Least Recently Used (LRU): mengganti blok yang berada dalam set yang telah berada paling lama di dalam cache dengan tidak memiliki acuan. Kemungkinan lainny6a adalah First In First Out (FIFO): menggantikan blok di dalam set yang telah berada pada cache terpanjang FIFO dengan mudah diterapkan sebagai teknik round robin atau buffer melingkar. Kemungkinan lainnya adalah Least Frequenthly Used (LFU): menggantikan blok di dalam set nyang mengalami acuan paling sedikit.

WRITE POLICY
Dengan pertimbangan kinerja dan harga, dimungkinkan terjadi bermacam-macam write policy. Terdapat dua permasalahan. Pertama, lebih dari satu perangkat yang mungkin memiliki akses ke memori utama. Teknik yang paling sederhana dikenal sebagai write through. Kekurangan yang utama dari teknik ini bahwa teknik ini menghasilkan lalu lintas memori substansial dan dapat diciptakan kemacetan. Koherensi cache adalah suatu bidang riset aktif. Pendekatan-pendekatan yang mungkin dilakukan bagi koherensi cache meliputi:
• Mengamati bus ketika write through
• Hardware transparency
• Memori Non cacheable

UKURAN BARIS
Rancangan elemen yang lain adalah ukuran baris. Ketika suatu blok data didapatkan kembali dan dilokalitaskan dalam cache, tidak hanya word yang diinginkan saja tetapi juga beberapa jumlah word-word yang bersebelahan didapatkan kembali. Hubungan antara ukuran blok dengan hit rasio adalah kompleks, tergantung pada karakteristik lokalitas program tertentu, dan tidak ada jumlah nilai pasti yang optimum telah ditemukan.

JUMLAH CACHE
Cache Bertingkat
Ketika kepadatan logika telah meningkat, kepadatan tersebut telah menjadi mungkin untuk mempunyai suatu cache pada keping yang sama sebagi prosesor: cache on chip. Ketika instruksi atau data yang diminta ditemukan cache on chip, akses bus dihapuskan. Dua fitur dari cache kontemporer yang dirancang untuk cache bertingkat adalah noteworthy. Pertama, untuk suatu cache L2 off chip, banyak rancangan tidak menggunakan bus sistem sebagai alur untuk transfer antara cache L2 dan prosesor, tetapi penggunaan alur data dipisah, agar mengurangi beban pada bus sistem. Kedua, dengan penyusutan komponen prosesor yang dilanjutkan, sejumlah prosesor sekarang menyertakan cache L2 pada keping prosesor, meningkatkan kinerja.

Unified Cache dan Split Caches
Ketika kemunculan cache on chip untuk pertama kalinya, banyak dari rancangan terdiri dari cache tunggal yang digunakan untuk menyimpan acuan baik untuk data maupun instruksi.


ORGANISASI CACHE PENTIUM 4 DAN POWERPC

ORGANISASI CACHE PENTIUM 4
Inti prosesor terdiri dari empat komponen utama:
• Unit Fetch/Decode
• Out of order execution logic
• Unit Exekusi
• Subsistem Memori

Penggunaan secara sederhana, operasi mikro panjang tetap memungkinkan penggunaan pipelining skala super dan penjadwalan teknik yang meningkatkan kinerja.

ORGANISASI CACHE POWERPC
Organisasi cache PowerPC telah meningkatkan secara menyeluruh arsitektur dari kelompok PowerPC mencerminkan kemudahan kinerja yang mengarahkan kekuatan bagi semua perancang mikroprosesor. Inti eksekusi unit adalah dua bilangan bulat aritmatik dan unit logika, yang dapat eksekusi secara paralel, dan suatu unit titik balik dengan registernya sendiri dan perkaliannya, penambahannya, dan komponen pembaginya. Cache data menyediakan kedua-duanya baik bilangan bulat maupun operasi titik balik melelui suatu unit load/store.  

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 .

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