ScholarGate
Asisten

Hierarki Memori dan Cache

Hierarki memori mengorganisasikan penyimpanan ke dalam beberapa tingkatan — register, cache, memori utama, dan penyimpanan cadangan — sehingga tingkatan yang kecil dan cepat menyimpan data yang paling mungkin digunakan, memberikan ilusi memori yang besar dan cepat kepada program.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Hierarki memori adalah pengaturan berlapis dari teknologi penyimpanan dengan kecepatan, biaya, dan kapasitas yang berbeda, dikelola sedemikian rupa sehingga data yang sering dan baru-baru ini diakses berada pada tingkatan yang lebih cepat dan lebih kecil — yang terpenting adalah cache — untuk meminimalkan waktu akses rata-rata.

Scope

Area ini mencakup mengapa dan bagaimana memori diorganisasikan sebagai hierarki yang memanfaatkan lokalitas referensi. Ini mencakup struktur cache (penempatan, penggantian, dan kebijakan penulisan), cache multi-level, koherensi cache antar prosesor, memori virtual dan translasi alamat, serta DRAM dan teknologi memori yang sedang berkembang. Ini tidak termasuk eksekusi prosesor itu sendiri (mikroarsitektur prosesor) dan penyimpanan file dan perangkat berskala besar (sistem penyimpanan dan I/O), meskipun berbatasan dengan keduanya.

Sub-topics

Core questions

  • Mengapa lokalitas referensi membuat hierarki memori berlapis menjadi efektif?
  • Bagaimana cache diorganisasikan dalam hal penempatan, asosiativitas, penggantian, dan kebijakan penulisan?
  • Bagaimana koherensi dipertahankan ketika beberapa cache menyimpan salinan memori yang sama?
  • Bagaimana memori virtual menerjemahkan alamat dan memberikan perlindungan serta ilusi memori yang besar?
  • Bagaimana karakteristik DRAM dan memori yang sedang berkembang membentuk kinerja sistem?

Key concepts

  • lokalitas temporal dan spasial
  • cache hit dan miss
  • asosiativitas dan kebijakan penggantian
  • write-through dan write-back
  • cache multi-level
  • koherensi cache
  • memori virtual dan paging
  • translation lookaside buffer
  • DRAM dan bandwidth memori
  • waktu akses memori rata-rata

Key theories

Lokalitas referensi
Program cenderung menggunakan kembali data yang baru diakses (lokalitas temporal) dan mengakses alamat terdekat (lokalitas spasial); hierarki memori memanfaatkan keduanya dengan menyimpan blok yang baru digunakan dan mengambil tetangga secara bersamaan.
Pertukaran desain cache
Kinerja cache diatur oleh tingkat miss, penalti miss, dan waktu hit, serta disesuaikan melalui ukuran, ukuran blok, asosiativitas, serta kebijakan penggantian dan penulisan; analisis klasik mengidentifikasi miss wajib, kapasitas, dan konflik sebagai target dari pilihan-pilihan ini.

Mechanisms

Ketika prosesor meminta data, cache diperiksa terlebih dahulu; 'hit' mengembalikan data dengan cepat, sementara 'miss' mengambil blok dari tingkat yang lebih rendah dan mungkin mengeluarkan blok lain berdasarkan kebijakan penggantian. Penulisan disebarkan melalui skema 'write-through' atau 'write-back', dan protokol koherensi menjaga konsistensi beberapa cache. Memori virtual menambahkan langkah translasi — melalui tabel halaman dan 'translation lookaside buffer' — memetakan alamat program ke DRAM fisik sambil menegakkan perlindungan.

Clinical relevance

Hierarki memori sering mendominasi kinerja riil: karena prosesor jauh lebih cepat daripada memori utama, perilaku cache dan lokalitas seringkali lebih penting daripada kecepatan instruksi mentah. Tata letak data yang sadar cache, pemblokiran, dan 'prefetching' adalah inti dari komputasi kinerja tinggi, basis data, dan kernel pembelajaran mesin, dan waktu cache telah menjadi sumber 'side channel' keamanan.

History

Maurice Wilkes mengusulkan cache ('slave memory') pada tahun 1965, dan cache mulai digunakan pada mesin komersial seperti IBM System/360 Model 85. Memori virtual berasal dari komputer Atlas pada awal 1960-an, diformalkan oleh model 'working-set' Denning. Survei Alan Jay Smith tahun 1982 mengkonsolidasikan pengetahuan desain cache, dan cache multi-level serta protokol koherensi yang canggih menjadi standar seiring dengan melebarnya kesenjangan kecepatan prosesor-memori.

Debates

Manajemen lokalitas perangkat keras versus perangkat lunak
Ada ketegangan yang berkelanjutan antara caching perangkat keras transparan dan memori yang dikelola secara eksplisit (scratchpad, prefetch yang dikendalikan perangkat lunak): caching perangkat keras bersifat umum dan mudah diprogram, sementara manajemen eksplisit bisa lebih dapat diprediksi dan efisien untuk beban kerja khusus.

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • Peter J. Denning
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • smith1982cache
  • patterson2020

Frequently asked questions

Mengapa cache efektif jika ukurannya sangat kecil dibandingkan dengan memori utama?
Karena program menunjukkan lokalitas: pada setiap saat mereka hanya menyentuh sejumlah kecil 'working set' data secara berulang, dan akses mengelompok pada alamat terdekat. Oleh karena itu, cache kecil yang menampung 'working set' tersebut memenuhi sebagian besar permintaan.
Apa perbedaan antara cache dan memori virtual?
Keduanya memindahkan data antara tingkat yang lebih cepat, lebih kecil dan tingkat yang lebih lambat, lebih besar. Cache (dikelola dalam perangkat keras) menyimpan blok memori utama; memori virtual (dikelola dengan sistem operasi) memetakan alamat program ke memori fisik dan halaman data ke dan dari disk, juga menyediakan perlindungan dan ruang alamat yang lebih besar dari RAM fisik.

Methods for this concept

Related concepts