Rumah  >  Artikel  >  Apakah cache?

Apakah cache?

青灯夜游
青灯夜游asal
2022-11-25 11:48:1332026semak imbas

Cache dipanggil memori cache, iaitu memori berkapasiti kecil berkelajuan tinggi antara unit pemprosesan pusat dan memori utama Ia biasanya terdiri daripada memori tempatan ini untuk CPU dan diperkenalkan untuk mengurangkan Atau menghapuskan kesan perbezaan kelajuan antara CPU dan memori pada prestasi sistem. Kapasiti cache kecil tetapi pantas, kelajuan memori rendah tetapi kapasiti besar Dengan mengoptimumkan algoritma penjadualan, prestasi sistem akan bertambah baik.

Apakah cache?

Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.

Apakah itu cache?

Memori cache: Memori cache dalam komputer, terletak dalam CPU dan memori utama DRAM (Dynamic Random Access Memory ), memori yang lebih kecil tetapi sangat berkelajuan tinggi, biasanya terdiri daripada SRAM (Memori Akses Rawak Statik).

Apakah cache?

Seperti yang ditunjukkan dalam Rajah 3.28, cache ialah memori berkapasiti kecil antara CPU dan memori utama M2, tetapi kelajuan akses lebih cepat daripada memori utama dan memori utama. kapasiti adalah jauh lebih kecil daripada ingatan utama. Cache boleh memberikan arahan dan data kepada CPU pada kelajuan tinggi, dengan itu mempercepatkan pelaksanaan program. Dari sudut fungsi, ia adalah memori penimbal bagi memori utama, yang terdiri daripada SRAM berkelajuan tinggi. Dalam mengejar kelajuan tinggi, semua fungsi, termasuk pengurusan, dilaksanakan dalam perkakasan dan oleh itu telus kepada pengaturcara.

Pada masa ini, dengan kemajuan penyepaduan peranti semikonduktor, cache dan CPU berkapasiti kecil boleh disepadukan ke dalam cip yang sama, dan kelajuan kerjanya hampir dengan kelajuan CPU, sekali gus membentuk sistem cache dua peringkat atau lebih.

Fungsi cache

Fungsi Cache adalah untuk meningkatkan kadar input dan output data CPU. Kapasiti cache adalah kecil tetapi pantas, kelajuan memori rendah tetapi kapasiti besar Dengan mengoptimumkan algoritma penjadualan, prestasi sistem akan bertambah baik, seolah-olah kapasiti sistem storan adalah bersamaan dengan memori dan kelajuan akses adalah serupa dengan. Cache.

Kelajuan CPU jauh lebih tinggi daripada memori Apabila CPU terus mengakses data daripada memori, ia perlu menunggu untuk tempoh masa tertentu, manakala Cache boleh menyimpan sebahagian daripada memori. data yang CPU baru sahaja digunakan atau dikitar semula Jika CPU perlu mengakses data sekali lagi, Apabila menggunakan bahagian data ini, ia boleh dipanggil terus dari Cache, dengan itu mengelakkan akses berulang kepada data dan mengurangkan masa menunggu CPU. , sekali gus meningkatkan kecekapan sistem. Cache dibahagikan kepada L1Cache (cache tahap satu) dan L2Cache (cache tahap dua terutamanya disepadukan di dalam CPU, manakala L2Cache disepadukan pada motherboard atau CPU).

Prinsip asas cache

Selain SRAM, cache juga mempunyai logik kawalan. Jika cache berada di luar cip CPU, logik kawalannya biasanya digabungkan dengan logik kawalan memori utama, dipanggil pengawal memori utama/chace jika cache berada di dalam CPU, CPU menyediakan logik kawalannya;

Pertukaran data antara CPU dan cache adalah dalam unit perkataan, manakala pertukaran data antara cache dan memori utama adalah dalam unit blok. Satu blok terdiri daripada beberapa perkataan dan mempunyai panjang tetap. Apabila CPU membaca perkataan dalam ingatan, ia menghantar alamat memori perkataan itu ke cache dan memori utama. Pada masa ini, logik kawalan cache menentukan sama ada perkataan itu berada dalam cache pada masa ini berdasarkan alamat: jika ya, cache mencecah dan perkataan itu segera dipindahkan ke CPU jika tidak, cache hilang (terlepas), dan kitaran bacaan memori utama digunakan untuk membaca perkataan dari memori utama Bacaan dihantar ke CPU Pada masa yang sama, keseluruhan blok data yang mengandungi perkataan ini dibaca dari memori utama dan dihantar ke cache.

Apakah cache?

Rajah 3.29 menunjukkan gambarajah skematik cache. Andaikan bahawa masa baca cache ialah 50ns dan masa baca memori utama ialah 250ns. Sistem storan adalah modular, dan setiap modul 8K dalam memori utama dikaitkan dengan cache dengan kapasiti 16 perkataan. Cache dibahagikan kepada 4 baris, setiap baris mempunyai 4 perkataan (W). Alamat yang diberikan kepada cache disimpan dalam CAM memori bersekutu, iaitu memori boleh alamat kandungan. Apabila CPU melaksanakan arahan akses memori, ia menghantar alamat perkataan untuk diakses ke CAM jika W tiada dalam cache, W dipindahkan dari memori utama ke CPU. Pada masa yang sama, satu baris data yang terdiri daripada empat perkataan berturut-turut yang mengandungi W dihantar ke cache, menggantikan baris data asal dalam cache. Di sini, algoritma penggantian dilaksanakan oleh litar logik perkakasan yang sentiasa menguruskan penggunaan cache.

Kadar pukulan cache

Dari perspektif CPU, tujuan meningkatkan cache adalah untuk meningkatkan purata masa baca memori utama dari segi prestasi Sehampir mungkin dengan masa baca cache. Untuk mencapai matlamat ini, bahagian semua capaian memori yang dipenuhi oleh cache untuk memenuhi keperluan CPU harus mengambil kira bahagian yang tinggi, iaitu, kadar hit cache hendaklah hampir kepada 1. Mencapai matlamat ini adalah mungkin disebabkan oleh lokaliti akses program.

Semasa pelaksanaan atur cara, dengan mengandaikan Nc mewakili jumlah bilangan akses yang dilengkapkan oleh cache, Nₘ mewakili jumlah bilangan akses yang dilengkapkan oleh memori utama dan h ditakrifkan sebagai kadar hit, kemudian h =Nc/(Nc+Nₘ)

Jika tc mewakili masa capaian cache apabila hit berlaku, tₘ mewakili masa capaian memori utama apabila miss berlaku dan 1-h mewakili kadar miss (kadar hilang), maka purata masa capaian tₐ cache/sistem ingatan utama ialah

tₐ=htc+(1−h)tₘ

Matlamat yang kami kejar adalah untuk menjadikan purata masa capaian tₐ cache/sistem ingatan utama sehampir mungkin dengan tc pada kos perkakasan yang kecil. Katakan r=tₘ/tc mewakili nisbah masa capaian antara memori utama dan cache, dan e mewakili kecekapan capaian, maka kita mempunyai Lebih baik. Nilai r yang sesuai ialah 5 hingga 10 dan tidak boleh terlalu besar.

e=tc/ta=tc/(htc+(1−h)tm)=1/(h+(1−h)r)=1/(r+(1−r)h)
Kadar hit h berkaitan dengan gelagat program, kapasiti cache, kaedah organisasi dan saiz blok.

Masalah yang mesti diselesaikan dalam reka bentuk struktur cache

Ia boleh dilihat daripada prinsip kerja asas cache yang diperlukan oleh reka bentuk cache untuk mengikuti dua prinsip: Satu adalah untuk berharap bahawa kadar hit cache adalah setinggi mungkin, yang sepatutnya hampir 1 adalah untuk berharap bahawa cache adalah telus kepada CPU, iaitu, sama ada terdapat cache atau tidak, CPU mengakses memori dengan cara yang sama, dan perisian tidak perlu menambah apa-apa Arahan boleh mengakses cache. Isu kadar hit dan ketelusan diselesaikan Dari perspektif akses memori CPU, memori akan mempunyai kapasiti memori utama dan kelajuan yang hampir dengan cache. Untuk tujuan ini, litar perkakasan tertentu mesti ditambah untuk melengkapkan fungsi kawalan, iaitu pengawal cache.

Apabila mereka bentuk struktur cache, beberapa isu mesti diselesaikan: ① Bagaimana untuk menyimpan kandungan memori utama apabila ia dipindahkan ke dalam cache ② Bagaimana untuk mencari maklumat dalam cache semasa mengakses memori? ③ Bagaimana untuk menggantikan cache apabila ruang cache tidak mencukupi Apakah kandungan yang sudah wujud dalam cache ④ Bagaimana untuk menulis semula kandungan cache apabila operasi tulis diperlukan

Antaranya, dua soalan pertama? berkaitan antara satu sama lain, iaitu, cara mencari maklumat memori utama dalam cache, dan cara menukar alamat memori utama Tukar kepada alamat cache. Berbanding dengan kapasiti memori utama, kapasiti cache adalah sangat kecil Kandungan yang disimpannya hanyalah subset daripada kandungan memori utama, dan pertukaran data antara cache dan memori utama adalah dalam blok. Untuk meletakkan blok memori utama ke dalam cache, beberapa kaedah mesti digunakan untuk mencari alamat memori utama dalam cache, yang dipanggil pemetaan alamat. Maksud fizikal perkataan "pemetaan" adalah untuk menentukan hubungan yang sepadan antara lokasi dan melaksanakannya dengan perkakasan. Dengan cara ini, apabila CPU mengakses memori, alamat memori perkataan yang diberikan olehnya secara automatik akan ditukar kepada alamat cache, iaitu penukaran alamat cache.

Masalah penggantian cache adalah terutamanya untuk memilih dan melaksanakan algoritma penggantian untuk menggantikan kandungan dalam cache apabila cache terlepas. Soalan terakhir melibatkan strategi operasi tulis cache, yang memfokuskan pada mengekalkan konsistensi antara memori utama dan cache semasa kemas kini.

Untuk lebih banyak pengetahuan berkaitan, sila lawati ruangan

Soalan Lazim

!

Atas ialah kandungan terperinci Apakah cache?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah itu protokol SSLArtikel seterusnya:Apakah itu protokol SSL