Menu
Percuma
Pendaftaran
rumah  /  Di mana untuk memulakan perancangan/ Apakah memori cache pemproses dalam komputer. Apakah memori cache

Apakah memori cache pemproses dalam komputer. Apakah memori cache

Semua pengguna sangat mengetahui elemen komputer seperti pemproses yang bertanggungjawab untuk memproses data, serta memori akses rawak (RAM atau RAM) yang bertanggungjawab untuk menyimpannya. Tetapi tidak semua orang mungkin tahu bahawa terdapat juga cache pemproses (CPU Cache), iaitu, RAM pemproses itu sendiri (memori super-RAM yang dipanggil).

Apakah sebab yang mendorong pembangun komputer menggunakan memori khas untuk pemproses? Tidakkah RAM mencukupi untuk sebuah komputer?

Sesungguhnya, untuk masa yang lama, komputer peribadi berfungsi tanpa sebarang jenis memori cache. Tetapi, seperti yang anda ketahui, pemproses adalah peranti terpantas dalam komputer peribadi dan kelajuannya telah berkembang dengan setiap generasi baru CPU. Pada masa ini, kelajuannya diukur dalam berbilion-bilion operasi sesaat. Pada masa yang sama, RAM standard tidak meningkatkan prestasinya dengan ketara sepanjang tempoh evolusinya.

Secara umumnya, terdapat dua teknologi utama untuk cip memori - memori statik dan memori dinamik. Tanpa menyelidiki butiran struktur mereka, kami hanya akan mengatakan bahawa memori statik, tidak seperti memori dinamik, tidak memerlukan penjanaan semula; sebagai tambahan, 4-8 transistor digunakan untuk satu bit maklumat dalam ingatan statik, manakala 1-2 transistor digunakan dalam ingatan dinamik. Oleh itu, memori dinamik adalah jauh lebih murah daripada memori statik, tetapi pada masa yang sama lebih perlahan. Pada masa ini, cip RAM dihasilkan berdasarkan memori dinamik.

Anggaran evolusi nisbah kelajuan pemproses dan RAM:

Oleh itu, jika pemproses mengambil maklumat daripada memori utama sepanjang masa, maka ia perlu menunggu memori dinamik yang perlahan, dan ia akan melahu sepanjang masa. Dalam kes yang sama, jika memori statik digunakan sebagai RAM, maka kos komputer akan meningkat beberapa kali.

Itulah sebabnya kompromi yang munasabah dibangunkan. Bahagian utama RAM kekal dinamik, manakala pemproses mendapat cache pantas sendiri berdasarkan cip memori statik. Jumlahnya agak kecil - contohnya, jumlah cache L2 hanya beberapa megabait. Walau bagaimanapun, di sini perlu diingat bahawa semua RAM komputer IBM PC pertama adalah kurang daripada 1 MB.

Di samping itu, kesesuaian melaksanakan teknologi caching juga dipengaruhi oleh fakta bahawa aplikasi yang berbeza dalam RAM memuatkan pemproses secara berbeza, dan, akibatnya, terdapat banyak data yang memerlukan pemprosesan keutamaan berbanding yang lain.

Sejarah cache

Tegasnya, sebelum memori cache dipindahkan ke komputer peribadi, ia telah berjaya digunakan dalam superkomputer selama beberapa dekad.

Buat pertama kalinya, memori cache hanya 16 KB muncul dalam PC berdasarkan pemproses i80386. Pemproses hari ini menggunakan pelbagai peringkat cache, daripada yang pertama (cache terpantas saiz terkecil - biasanya 128 KB) hingga yang ketiga (cache paling perlahan saiz terbesar - sehingga puluhan MB).

Pada mulanya, memori cache luaran pemproses terletak pada cip berasingan. Walau bagaimanapun, dari masa ke masa, ini membawa kepada fakta bahawa bas yang terletak di antara cache dan pemproses menjadi hambatan, memperlahankan pertukaran data. Dalam mikropemproses moden, kedua-dua tahap pertama dan kedua memori cache terletak dalam teras pemproses itu sendiri.

Untuk masa yang lama, hanya terdapat dua tahap cache dalam pemproses, tetapi buat kali pertama dalam CPU Intel Itanium, cache peringkat ketiga muncul, biasa kepada semua teras pemproses. Terdapat juga perkembangan pemproses dengan cache empat peringkat.

Seni bina dan prinsip operasi cache

Sehingga kini, dua jenis utama organisasi memori cache diketahui, yang berasal dari perkembangan teori pertama dalam bidang sibernetik - seni bina Princeton dan Harvard. Seni bina Princeton membayangkan ruang memori tunggal untuk menyimpan data dan arahan, manakala yang Harvard mempunyai yang berasingan. Kebanyakan pemproses komputer peribadi barisan x86 menggunakan jenis memori cache yang berasingan. Di samping itu, jenis memori cache yang ketiga juga telah muncul dalam pemproses moden - penimbal terjemahan bersekutu yang dipanggil, direka untuk mempercepatkan penukaran alamat memori maya sistem pengendalian kepada alamat memori fizikal.

Dipermudahkan, skema interaksi antara memori cache dan pemproses boleh diterangkan seperti berikut. Pertama, kehadiran maklumat yang diperlukan oleh pemproses disemak paling cepat - cache peringkat pertama, kemudian - dalam cache peringkat kedua, dan seterusnya. Jika maklumat yang diperlukan tidak ditemui dalam mana-mana tahap cache, maka mereka mengatakan tentang ralat, atau kehilangan cache. Sekiranya tiada maklumat dalam cache sama sekali, maka pemproses perlu mengambilnya dari RAM atau bahkan dari memori luaran (dari cakera keras).

Urutan di mana pemproses mencari maklumat dalam ingatan:

Beginilah cara pemproses mencari maklumat

Untuk mengawal operasi memori cache dan interaksinya dengan unit pengkomputeran pemproses, serta RAM, terdapat pengawal khas.

Skim mengatur interaksi teras pemproses, cache dan RAM:

Pengawal cache ialah pautan utama antara pemproses, RAM dan cache.

Perlu diingatkan bahawa caching data adalah proses yang kompleks yang menggunakan banyak teknologi dan algoritma matematik. Antara konsep asas yang digunakan dalam caching, seseorang boleh memilih kaedah menulis cache dan seni bina persekutuan memori cache.

Kaedah Tulis Cache

Terdapat dua kaedah utama untuk menulis maklumat ke cache:

  1. Kaedah tulis balik (writeback) - data ditulis dahulu ke cache, dan kemudian, apabila berlaku keadaan tertentu, ke RAM.
  2. Kaedah tulis-melalui (melalui penulisan) - data ditulis serentak ke RAM dan cache.

Senibina Cache Associativity

Seni bina persekutuan cache mentakrifkan cara data daripada RAM dipetakan ke cache. Terdapat varian utama berikut bagi seni bina persekutuan caching:

  1. Cache dipetakan langsung - kawasan tertentu cache bertanggungjawab untuk kawasan tertentu RAM
  2. Cache bersekutu sepenuhnya - mana-mana kawasan cache boleh dikaitkan dengan mana-mana kawasan RAM
  3. Cache bercampur (set-asosiatif)

Seni bina persekutuan cache yang berbeza biasanya boleh digunakan pada tahap cache yang berbeza. Caching dipetakan RAM langsung ialah pilihan caching terpantas, jadi seni bina ini biasanya digunakan untuk cache besar. Sebaliknya, cache bersekutu sepenuhnya mempunyai lebih sedikit ralat cache (ketinggalan).

Kesimpulan

Dalam artikel ini, anda telah membiasakan diri dengan konsep memori cache, seni bina memori cache dan kaedah caching, mempelajari bagaimana ia mempengaruhi prestasi komputer moden. Kehadiran memori cache boleh mengoptimumkan prestasi pemproses dengan ketara, mengurangkan masa terbiarnya, dan, akibatnya, meningkatkan prestasi keseluruhan sistem.

Selamat datang ke GECID.com! Umum mengetahui bahawa kelajuan jam dan bilangan teras pemproses secara langsung mempengaruhi tahap prestasi, terutamanya dalam projek berulir. Kami memutuskan untuk menyemak apakah peranan memori cache L3 dalam hal ini?

Untuk menyiasat isu ini, kami telah disediakan oleh kedai dalam talian pcshop.ua dengan pemproses 2 teras dengan frekuensi operasi nominal 3.7 GHz dan 3 MB cache L3 dengan 12 saluran persekutuan. Yang 4-teras bertindak sebagai lawan, di mana dua teras dilumpuhkan dan frekuensi jam dikurangkan kepada 3.7 GHz. Ia mempunyai 8 MB L3 cache dan 16 saluran persekutuan. Iaitu, perbezaan utama antara mereka terletak tepat pada cache tahap terakhir: Core i7 mempunyai 5 MB lebih daripada itu.

Jika ini mempunyai kesan yang ketara pada prestasi, maka ia mungkin untuk menjalankan ujian lain dengan wakil siri Core i5, yang mempunyai 6 MB cache L3 pada papan.

Tetapi buat masa ini, kembali kepada ujian semasa. Para peserta akan dibantu oleh kad video dan 16 GB RAM DDR4-2400 MHz. Kami akan membandingkan sistem ini dalam resolusi HD Penuh.

Sebagai permulaan, mari kita mulakan dengan permainan langsung yang tidak segerak di mana adalah mustahil untuk menentukan pemenang dengan jelas. AT Lampu malap pada tetapan kualiti maksimum, kedua-dua sistem menunjukkan tahap FPS yang selesa, walaupun beban pemproses dan kad video secara purata lebih tinggi dalam kes Intel Core i7.

Arma 3 mempunyai pergantungan pemproses yang jelas, yang bermaksud bahawa jumlah memori cache yang lebih besar harus memainkan peranan positif walaupun pada tetapan grafik ultra tinggi. Selain itu, beban pada kad video dalam kedua-dua kes mencapai maksimum 60%.

Permainan azab pada tetapan grafik ultra tinggi, ia hanya dibenarkan untuk menyegerakkan beberapa bingkai pertama, di mana kelebihan Core i7 adalah kira-kira 10 FPS. Penyahsegerakan permainan selanjutnya tidak membenarkan penentuan tahap pengaruh cache pada kelajuan jujukan video. Walau apa pun, kekerapan disimpan melebihi 120 bingkai / s, jadi walaupun 10 FPS tidak mempunyai kesan khas pada keselesaan lulus.

Melengkapkan siri mini permainan langsung Tahap Evolve 2. Di sini kita pasti akan melihat perbezaan antara sistem, kerana dalam kedua-dua kes kad video adalah kira-kira separuh dimuatkan. Oleh itu, secara subjektif, nampaknya tahap FPS dalam kes Core i7 lebih tinggi, tetapi mustahil untuk mengatakan dengan pasti, kerana adegannya tidak sama.

Penanda aras memberikan gambaran yang lebih bermaklumat. Contohnya, dalam gta v anda dapat melihat bahawa di luar bandar kelebihan cache 8 MB mencapai 5-6 bingkai / s, dan di bandar - sehingga 10 FPS kerana pemuatan kad video yang lebih tinggi. Pada masa yang sama, pemecut video itu sendiri dalam kedua-dua kes adalah jauh daripada dimuatkan kepada maksimum, dan semuanya bergantung pada CPU.

Penyihir Ketiga kami melancarkan dengan tetapan grafik yang keterlaluan dan profil pasca pemprosesan yang tinggi. Dalam salah satu adegan skrip, kelebihan Core i7 di beberapa tempat mencapai 6-8 FPS dengan perubahan sudut yang mendadak dan keperluan untuk memuatkan data baharu. Apabila beban pada pemproses dan kad video sekali lagi mencapai 100%, perbezaannya berkurangan kepada 2-3 bingkai.

Tetapan grafik pratetap maksimum dalam XCOM 2 tidak menjadi ujian yang serius untuk kedua-dua sistem, dan kadar bingkai berada dalam lingkungan 100 FPS. Tetapi di sini juga, jumlah memori cache yang lebih besar telah diubah menjadi peningkatan kelajuan dari 2 hingga 12 bingkai / s. Dan walaupun kedua-dua pemproses gagal memuatkan kad video secara maksimum, versi 8 MB lebih baik dalam perkara ini di beberapa tempat.

Permainan yang paling menakjubkan Himpunan Kotoran, yang kami lancarkan dengan pratetap yang sangat tinggi. Pada titik tertentu, perbezaan mencapai 25 bingkai / s semata-mata disebabkan oleh cache L3 yang lebih besar. Ini membenarkan pemuatan kad video 10-15% lebih baik. Walau bagaimanapun, purata keputusan penanda aras menunjukkan kemenangan yang lebih sederhana untuk Core i7 - hanya 11 FPS.

Satu situasi yang menarik timbul dengan Pengepungan Rainbow Six: di jalanan, dalam bingkai pertama penanda aras, kelebihan Core i7 ialah 10-15 FPS. Di dalam ruangan, pemuatan CPU dan kad video dalam kedua-dua kes mencapai 100%, jadi perbezaannya menurun kepada 3-6 FPS. Tetapi pada akhirnya, apabila kamera bergerak keluar dari rumah, Core i3 ketinggalan sekali lagi di tempat lebih 10 fps. Angka purata ternyata berada pada tahap 7 FPS memihak kepada 8 MB cache.

Bahagian pada kualiti grafik maksimum, ia juga bertindak balas dengan baik kepada peningkatan dalam memori cache. Bingkai pertama penanda aras telah memuatkan sepenuhnya semua utas Core i3, tetapi jumlah beban pada Core i7 ialah 70-80%. Walau bagaimanapun, perbezaan kelajuan pada saat ini hanyalah 2-3 FPS. Tidak lama kemudian, beban pada kedua-dua pemproses mencapai 100%, dan pada titik tertentu perbezaannya sudah melebihi Core i3, tetapi hanya dengan 1-2 bingkai / s. Secara purata, ia adalah kira-kira 1 FPS memihak kepada Core i7.

Sebaliknya, penanda arasRise of Tomb Riderpada tetapan grafik tinggi dalam ketiga-tiga adegan ujian, ia jelas menunjukkan kelebihan pemproses dengan memori cache yang jauh lebih besar. Prestasi puratanya adalah 5-6 FPS lebih baik, tetapi jika anda melihat dengan teliti setiap adegan, maka di beberapa tempat Core i3 ketinggalan lebih daripada 10 bingkai / s.

Tetapi apabila memilih pratetap dengan tetapan yang sangat tinggi, beban pada kad video dan pemproses meningkat, jadi sebahagian besar perbezaan antara sistem berkurangan kepada beberapa bingkai. Dan hanya untuk masa yang singkat Core i7 boleh menunjukkan hasil yang lebih ketara. Mengikut keputusan penanda aras, penunjuk purata kelebihannya menurun kepada 3-4 FPS.

Pembunuhan juga kurang terjejas oleh cache L3. Walaupun di sini, walaupun, pada profil terperinci ultra tinggi, 5 MB tambahan memberikan pemuatan kad grafik yang lebih baik, mengubahnya menjadi 3-4 fps tambahan. Mereka tidak mempunyai kesan yang sangat kritikal terhadap prestasi, tetapi kerana minat sukan semata-mata, adalah bagus bahawa ada pemenang.

Tetapan grafik tinggi Deus ex: Manusia berpecah segera menuntut kuasa pemprosesan maksimum daripada kedua-dua sistem, jadi perbezaannya adalah paling baik 1-2 bingkai memihak kepada Core i7, seperti yang ditunjukkan oleh purata.

Berjalan semula pada pratetap ultra-tinggi menambahkan lagi kad grafik, jadi kesan pemproses pada kelajuan keseluruhan menjadi lebih kurang. Sehubungan itu, perbezaan dalam cache L3 boleh dikatakan tidak memberi kesan kepada keadaan, dan purata FPS berbeza kurang daripada separuh bingkai.

Mengikut keputusan ujian, boleh diperhatikan bahawa kesan memori cache L3 pada prestasi dalam permainan memang berlaku, tetapi ia hanya nyata apabila kad video tidak dimuatkan pada kapasiti penuh. Dalam kes sedemikian, adalah mungkin untuk mendapatkan peningkatan 5-10 FPS jika cache dinaikkan sebanyak 2.5 kali. Iaitu, kira-kira ternyata, perkara lain adalah sama, setiap MB tambahan cache L3 menambah hanya 1-2 FPS pada kelajuan paparan jujukan video.

Jadi, jika kita membandingkan garisan jiran, contohnya, Celeron dan Pentium, atau model dengan saiz cache L3 yang berbeza di dalam siri Core i3, maka peningkatan prestasi utama dicapai disebabkan oleh frekuensi yang lebih tinggi, dan kemudian kehadiran benang dan teras pemproses tambahan . Oleh itu, apabila memilih pemproses, pertama sekali, bagaimanapun, anda perlu memberi tumpuan kepada ciri utama, dan hanya kemudian memberi perhatian kepada jumlah memori cache.

Itu sahaja. Terima kasih kerana memberi perhatian. Kami berharap bahan ini berguna dan menarik.

Artikel dibaca 26737 kali

Langgan saluran kami

Cip pada kebanyakan desktop moden mempunyai empat teras, tetapi pembuat cip telah mengumumkan rancangan untuk beralih ke enam teras, dan pemproses 16 teras adalah jauh dari luar biasa untuk pelayan mewah hari ini.

Lebih banyak teras, lebih besar masalah memperuntukkan memori antara semua teras semasa bekerja bersama. Dengan pertambahan bilangan teras, adalah lebih dan lebih menguntungkan untuk meminimumkan kehilangan masa mengurus teras semasa pemprosesan data - kerana kadar pertukaran data ketinggalan berbanding kelajuan pemproses dan pemprosesan data dalam ingatan. Anda boleh mengakses cache pantas orang lain secara fizikal, atau anda boleh menggunakan cache lambat anda sendiri, tetapi menjimatkan masa pemindahan data. Tugas ini rumit oleh fakta bahawa jumlah memori yang diminta oleh program tidak sepadan dengan jumlah memori cache setiap jenis.

Secara fizikal, hanya jumlah memori yang sangat terhad boleh diletakkan sedekat mungkin dengan pemproses - cache pemproses tahap L1, yang jumlahnya sangat tidak ketara. Daniel Sanchez, Po-An Tsai, dan Nathan Beckmann, penyelidik di Makmal Sains Komputer dan Kecerdasan Buatan MIT, telah mengajar komputer untuk mengkonfigurasi pelbagai jenis memorinya kepada hierarki program yang fleksibel dalam mod masa nyata. Sistem baharu, yang dipanggil Jenga, menganalisis keperluan volum dan kekerapan akses memori program dan memperuntukkan semula kuasa setiap satu daripada 3 jenis cache pemproses dalam kombinasi yang memberikan peningkatan kecekapan dan penjimatan tenaga.


Sebagai permulaan, para penyelidik menguji peningkatan prestasi dengan gabungan memori statik dan dinamik apabila bekerja pada program untuk pemproses teras tunggal dan memperoleh hierarki utama - apabila kombinasi mana yang lebih baik untuk digunakan. Dari 2 jenis ingatan atau dari satu. Dua parameter telah dinilai - kelewatan isyarat (latensi) dan tenaga yang digunakan semasa operasi setiap program. Kira-kira 40% daripada program mula berfungsi lebih teruk dengan gabungan jenis memori, selebihnya - lebih baik. Setelah membetulkan program yang "suka" prestasi bercampur, dan yang mana seperti saiz memori, para penyelidik membina sistem Jenga mereka.

Mereka hampir menguji 4 jenis program pada mesin maya dengan 36 teras. Program yang diuji:

  • omnet - Katil Ujian Rangkaian Modular Objektif, perpustakaan simulasi C dan platform simulator rangkaian (biru dalam rajah)
  • mcf - Rangka Kerja Kandungan Meta (warna merah)
  • astar - Perisian Paparan Realiti Maya (Hijau)
  • bzip2 - arkib (ungu)


Gambar menunjukkan di mana dan bagaimana data setiap program diproses. Huruf menunjukkan tempat setiap aplikasi berjalan (satu setiap kuadran), warna menunjukkan tempat datanya berada, dan lorekan menunjukkan tahap kedua hierarki maya apabila hadir.

Tahap cache

Cache CPU dibahagikan kepada beberapa peringkat. Untuk pemproses universal - sehingga 3. Memori terpantas ialah cache tahap pertama - L1-cache, kerana ia terletak pada cip yang sama dengan pemproses. Terdiri daripada cache arahan dan cache data. Sesetengah pemproses tanpa cache L1 tidak boleh berfungsi. Cache L1 beroperasi pada frekuensi pemproses dan boleh diakses setiap kitaran jam. Selalunya mungkin untuk melakukan beberapa operasi baca/tulis pada masa yang sama. Kelantangan biasanya kecil - tidak lebih daripada 128 KB.

Cache L1 berinteraksi dengan cache peringkat kedua - L2. Ia adalah yang kedua terpantas. Ia biasanya terletak sama ada pada cip, seperti L1, atau berdekatan dengan teras, seperti dalam kartrij pemproses. Dalam pemproses yang lebih lama, cipset pada motherboard. Jumlah cache L2 adalah dari 128 KB hingga 12 MB. Dalam pemproses berbilang teras moden, cache peringkat kedua, yang terletak pada cip yang sama, adalah memori yang berasingan - dengan jumlah saiz cache 8 MB, setiap teras mempunyai 2 MB. Biasanya, kependaman cache L2 yang terletak pada cip teras adalah dari 8 hingga 20 kitaran teras. Dalam tugas yang melibatkan banyak akses kepada kawasan ingatan terhad, contohnya, DBMS, penggunaan penuhnya memberikan peningkatan sepuluh kali ganda dalam prestasi.

Cache L3 biasanya lebih besar, walaupun agak perlahan daripada L2 (kerana hakikat bahawa bas antara L2 dan L3 lebih sempit daripada bas antara L1 dan L2). L3 biasanya terletak secara berasingan daripada teras CPU, tetapi boleh menjadi besar - lebih daripada 32 MB. Cache L3 lebih perlahan daripada cache sebelumnya, tetapi masih lebih pantas daripada RAM. Dalam sistem berbilang pemproses adalah biasa digunakan. Penggunaan cache peringkat ketiga adalah wajar dalam julat tugas yang sangat sempit dan mungkin bukan sahaja tidak memberikan peningkatan dalam prestasi, tetapi sebaliknya dan membawa kepada penurunan umum dalam prestasi sistem.

Melumpuhkan cache tahap kedua dan ketiga adalah paling berguna dalam masalah matematik apabila jumlah data kurang daripada saiz cache. Dalam kes ini, anda boleh memuatkan semua data sekaligus ke dalam cache L1, dan kemudian memprosesnya.


Dari semasa ke semasa, Jenga mengkonfigurasi semula hierarki maya di peringkat OS untuk meminimumkan jumlah pertukaran data, dengan mengambil kira kekangan sumber dan gelagat aplikasi. Setiap konfigurasi semula terdiri daripada empat langkah.

Jenga mengedarkan data bukan sahaja bergantung pada program yang dihantar - mereka yang menyukai memori kelajuan tunggal yang besar atau mereka yang menyukai kelajuan cache bercampur, tetapi juga bergantung pada jarak fizikal sel memori dengan data yang sedang diproses. Tidak kira jenis cache yang diperlukan oleh program secara lalai atau mengikut hierarki. Perkara utama ialah meminimumkan kelewatan isyarat dan penggunaan kuasa. Bergantung pada bilangan jenis memori yang "suka" program, Jenga memodelkan kependaman setiap hierarki maya dengan satu atau dua tahap. Hierarki dua peringkat membentuk permukaan, hierarki satu peringkat membentuk lengkung. Jenga kemudian mengunjurkan kelewatan minimum dalam dimensi VL1, yang menghasilkan dua lengkung. Akhir sekali, Jenga menggunakan lengkung ini untuk memilih hierarki terbaik (iaitu saiz VL1).

Penggunaan Jenga memberi kesan yang ketara. Cip maya 36 teras adalah 30 peratus lebih pantas dan menggunakan kuasa 85 peratus kurang. Sudah tentu, buat masa ini, Jenga hanyalah simulasi komputer yang sedang berjalan dan ia akan mengambil sedikit masa sebelum anda melihat contoh sebenar cache ini dan bahkan sebelum pengeluar cip mengguna pakainya jika mereka menyukai teknologi tersebut.

Konfigurasi mesin nuklear 36 bersyarat

  • Pemproses. 36 teras, x86-64 ISA, 2.4 GHz, LLC seperti Silvermont: 8B-lebar
    ifetch; Bpred 2 tahap dengan BHSR 512x10-bit + PHT 1024x2-bit, penyahkod/isu/nama semula/komit 2 hala, IQ dan ROB 32-masukan, LQ 10-masukan, SQ 16-masukan; 371pJ/arahan, kuasa statik 163mW/teras
  • L1 cache. 32 KB, set-asosiatif 8 hala, data pisah dan cache arahan,
    kependaman 3 kitaran; 15/33 pJ setiap pukulan/terlepas
  • Perkhidmatan Prefetchers. Prefetcher strim 16 kemasukan dimodelkan dan disahkan terhadapnya
    Nehalem
  • L2 cache. 128 KB peribadi setiap teras, set-bersekutu 8 hala, inklusif, kependaman 6 kitaran; 46/93 pJ setiap pukulan/terlepas
  • Mod koheren (Koheren). Bank direktori latensi 16 hala, 6 kitaran untuk Jenga; direktori L3 dalam cache untuk orang lain
  • NOC Global. 6×6 mesh, flits dan pautan 128-bit, penghalaan X-Y, penghala saluran paip 2 kitaran, pautan 1 kitaran; 63/71pJ setiap penghala/pautan flit traversal, 12/4mW penghala/pautan kuasa statik
  • Blok memori statik SRAM. 18 MB, satu bank 512 KB setiap jubin, zcache 52 calon 4 hala, kependaman bank 9 kitaran, Pembahagian Vantage; 240/500 pJ setiap pukulan/lepas, 28 mW/kuasa statik bank
  • DRAM Bertindan Memori Dinamik Berbilang Lapisan. 1152MB, satu peti besi 128MB setiap 4 jubin, Aloi dengan MAP-I DDR3-3200 (1600MHz), bas 128-bit, 16 pangkat, 8 bank/pangkat, penimbal baris 2 KB; 4.4/6.2 nJ setiap pukulan/lepas, 88 mW/kuasa statik bilik kebal
  • ingatan utama. 4 saluran DDR3-1600, bas 64-bit, 2 pangkat/saluran, 8 bank/pangkat, penimbal baris 8 KB; 20 nJ/akses, kuasa statik 4W
  • Pemasaan DRAM. tCAS=8, tRCD=8, tRTP=4, tRAS=24, tRP=8, tRRD=4, tWTR=4, tWR=8, tFAW=18 (semua pemasaan dalam tCK; DRAM bertindan mempunyai separuh tCK sebagai ingatan utama )

Apakah tempat paling kotor pada komputer? Fikir bakul? Folder pengguna? Sistem penyejuk? Tak sangka! Tempat paling kotor ialah cache! Lagipun, ia sentiasa perlu dibersihkan!

Sebenarnya, terdapat banyak cache pada komputer, dan ia bukan sebagai tempat pembuangan sisa, tetapi sebagai pemecut untuk peralatan dan aplikasi. Dari mana datangnya reputasi mereka sebagai "pelongsor sampah sistemik"? Mari lihat apa itu cache, bagaimana ia berlaku, cara ia berfungsi dan mengapa dari semasa ke semasa.

Konsep dan jenis memori cache

Esh atau memori cache ialah storan khas data yang kerap digunakan, yang diakses berpuluh, ratusan dan beribu kali lebih pantas daripada RAM atau media storan lain.

Aplikasi (pelayar web, pemain audio dan video, editor pangkalan data, dsb.), komponen sistem pengendalian (cache lakaran kecil, cache DNS) dan perkakasan (cache CPU L1-L3, GPU framebuffer, dsb.) mempunyai memori cache mereka sendiri. cip, penampan pemacu). Ia dilaksanakan dengan cara yang berbeza - perisian dan perkakasan.

  • Cache program hanyalah folder atau fail yang berasingan di mana, sebagai contoh, gambar, menu, skrip, kandungan multimedia dan kandungan lain tapak yang dilawati dimuat turun. Ini ialah folder tempat penyemak imbas mula-mula menyelam apabila anda membuka halaman web sekali lagi. Menukar sekeping kandungan daripada storan tempatan mempercepatkan pemuatan dan .

  • Dalam cakera keras, khususnya, cache adalah cip RAM yang berasingan dengan kapasiti 1-256 Mb, terletak di papan elektronik. Ia menerima maklumat yang dibaca daripada lapisan magnetik dan belum dimuatkan ke dalam RAM, serta data yang paling kerap diminta oleh sistem pengendalian.

  • Pemproses pusat moden mengandungi 2-3 tahap utama memori cache (ia juga dipanggil memori awal), terletak dalam bentuk modul perkakasan pada cip yang sama. Jumlah terpantas dan terkecil (32-64 Kb) ialah cache Tahap 1 (L1) - ia berjalan pada frekuensi yang sama dengan pemproses. L2 berada di kedudukan tengah dari segi kelajuan dan kapasiti (dari 128 Kb hingga 12 Mb). Dan L3 adalah yang paling perlahan dan paling besar (sehingga 40 Mb), ia tidak terdapat pada beberapa model. Kelajuan L3 hanya rendah berbanding dengan yang lebih pantas, tetapi ia juga beratus kali lebih pantas daripada RAM yang paling produktif.

Memori pad calar pemproses digunakan untuk menyimpan data yang sentiasa digunakan, dipam daripada RAM, dan arahan kod mesin. Lebih besar ia, lebih cepat pemproses.

Hari ini, tiga tahap caching bukan lagi had. Dengan kemunculan seni bina Sandy Bridge, Intel telah melaksanakan cache tambahan L0 (bertujuan untuk menyimpan arahan mikro yang dinyahsulit) dalam produknya. Dan CPU paling berprestasi tinggi juga mempunyai cache peringkat keempat, dibuat dalam bentuk litar mikro yang berasingan.

Secara skematik, interaksi tahap cache L0-L3 kelihatan seperti ini (contohnya, Intel Xeon):

Bahasa manusia tentang cara semuanya berfungsi

Untuk memahami cara memori cache berfungsi, bayangkan seseorang bekerja di meja. Folder dan dokumen yang dia gunakan sepanjang masa ada di atas meja ( dalam cache). Untuk mengaksesnya, hanya hulurkan tangan anda.

Kertas yang dia perlukan kurang kerap disimpan berdekatan di rak ( dalam RAM). Untuk mendapatkannya, anda perlu bangun dan berjalan beberapa meter. Dan perkara yang tidak digunakan oleh seseorang pada masa ini telah diarkibkan ( dirakam pada cakera keras).

Lebih luas jadual, lebih banyak dokumen akan dimuatkan padanya, yang bermaksud bahawa pekerja akan dapat mendapatkan akses cepat kepada lebih banyak maklumat ( lebih besar kapasiti cache, lebih cepat program atau peranti berfungsi secara teori).

Kadang-kadang dia membuat kesilapan - dia menyimpan kertas di atas meja yang mengandungi maklumat yang salah dan menggunakannya dalam kerjanya. Akibatnya, kualiti kerjanya berkurangan ( ralat cache membawa kepada kegagalan perisian dan perkakasan). Untuk membetulkan keadaan, pekerja mesti membuang dokumen dengan kesilapan dan meletakkan yang betul di tempat mereka ( kosongkan memori cache).

Meja mempunyai kawasan terhad ( memori cache adalah terhad). Kadangkala ia boleh dikembangkan, contohnya, dengan mengalihkan jadual kedua, dan kadangkala tidak boleh (saiz cache boleh ditingkatkan jika peluang sedemikian disediakan oleh program; cache perkakasan tidak boleh diubah, kerana ia dilaksanakan dalam perkakasan) .

Satu lagi cara untuk mempercepatkan akses kepada lebih banyak dokumen daripada yang boleh dipegang oleh meja ialah mencari pembantu yang akan menyampaikan kertas kepada pekerja dari rak (sistem pengendalian boleh memperuntukkan sebahagian daripada RAM yang tidak digunakan untuk cache data peranti). Tetapi ia masih lebih perlahan daripada mengeluarkannya dari meja.

Dokumen yang ada harus relevan untuk tugas semasa. Ini adalah tanggungjawab pekerja itu sendiri. Anda perlu membersihkan kertas dengan kerap (penyemperitan data yang tidak berkaitan daripada memori cache jatuh "di bahu" aplikasi yang menggunakannya; sesetengah program mempunyai fungsi pembersihan cache automatik).

Jika pekerja terlupa untuk mengekalkan ketenteraman di tempat kerja dan memastikan dokumentasi dikemas kini, dia boleh melukis jadual pembersihan meja untuk dirinya sendiri dan menggunakannya sebagai peringatan. Sebagai pilihan terakhir, amanahkan ini kepada pembantu (jika aplikasi yang bergantung pada memori cache menjadi lebih perlahan atau sering memuatkan data lapuk, gunakan alat pembersihan cache berjadual atau lakukan ini secara manual setiap beberapa hari).

Kami sebenarnya menjumpai "fungsi caching" di seluruh tempat. Ini adalah pembelian produk untuk masa depan, dan pelbagai tindakan yang kita lakukan secara sepintas lalu, pada masa yang sama, dan lain-lain. Sebenarnya, ini adalah segala-galanya yang menyelamatkan kita daripada kekecohan yang tidak perlu dan pergerakan badan yang tidak perlu, menyelaraskan kehidupan dan memudahkan kerja. Komputer melakukan perkara yang sama. Pendek kata, jika tiada cache, ia akan berfungsi ratusan dan beribu kali lebih perlahan. Dan kami tidak akan menyukainya.

Apakah cache, mengapa ia diperlukan dan bagaimana ia berfungsi dikemas kini: 25 Februari 2017 oleh: Johnny Mnemonic

Salah satu faktor penting yang meningkatkan prestasi pemproses ialah kehadiran memori cache, atau lebih tepatnya volum, kelajuan akses dan pengedaran mengikut tahap.

Untuk masa yang lama, hampir semua pemproses dilengkapi dengan memori jenis ini, yang sekali lagi membuktikan kegunaan kehadirannya. Dalam artikel ini, kita akan bercakap tentang struktur, tahap dan tujuan praktikal memori cache, sebagai yang sangat penting ciri pemproses.

Apakah memori cache dan strukturnya

Memori cache ialah memori ultra pantas yang digunakan oleh pemproses untuk menyimpan sementara data yang paling kerap digunakan. Ini adalah bagaimana, secara ringkas, jenis ingatan ini boleh diterangkan.

Memori cache dibina pada flip-flop, yang, seterusnya, terdiri daripada transistor. Sekumpulan transistor mengambil lebih banyak ruang daripada kapasitor yang sama yang membentuk Ram. Ini memerlukan banyak kesukaran dalam pengeluaran, serta sekatan dalam jumlah. Itulah sebabnya memori cache adalah memori yang sangat mahal, sementara mempunyai volum yang boleh diabaikan. Tetapi dari struktur sedemikian, kelebihan utama ingatan sedemikian mengikuti - kelajuan. Memandangkan flip-flop tidak memerlukan penjanaan semula, dan masa tunda gerbang di mana ia dipasang adalah kecil, masa penukaran flip-flop dari satu keadaan ke keadaan lain adalah sangat pantas. Ini membolehkan memori cache beroperasi pada frekuensi yang sama seperti pemproses moden.

Juga, faktor penting ialah lokasi memori cache. Ia terletak pada cip pemproses itu sendiri, yang mengurangkan masa akses kepadanya dengan ketara. Sebelum ini, memori cache beberapa tahap terletak di luar cip pemproses, pada cip SRAM khas di suatu tempat pada papan induk. Kini, dalam hampir semua pemproses, memori cache terletak pada cip pemproses.


Untuk apa Cache CPU Digunakan?

Seperti yang dinyatakan di atas, tujuan utama memori cache adalah untuk menyimpan data yang kerap digunakan oleh pemproses. Cache ialah penimbal di mana data dimuatkan, dan walaupun saiznya kecil (kira-kira 4-16 MB) dalam pemproses moden, ia memberikan peningkatan prestasi yang ketara dalam mana-mana aplikasi.

Untuk lebih memahami keperluan memori cache, mari bayangkan organisasi memori komputer sebagai pejabat. RAM akan menjadi kabinet dengan folder yang diakses oleh akauntan secara berkala untuk mendapatkan blok data yang besar (iaitu, folder). Dan jadual akan menjadi memori cache.

Terdapat elemen yang diletakkan di atas meja akauntan, yang dia rujuk beberapa kali dalam satu jam. Sebagai contoh, ia boleh menjadi nombor telefon, beberapa contoh dokumen. Jenis maklumat ini ada di atas meja, yang seterusnya, meningkatkan kelajuan akses kepada mereka.

Dengan cara yang sama, data boleh ditambah daripada blok data besar (folder) tersebut, ke jadual, untuk kegunaan pantas, contohnya, sebarang dokumen. Apabila dokumen ini tidak diperlukan lagi, ia diletakkan semula dalam kabinet (dalam RAM), dengan itu mengosongkan jadual (cache) dan membebaskan jadual ini untuk dokumen baharu yang akan digunakan dalam tempoh masa yang akan datang.

Juga dengan memori cache, jika terdapat beberapa data yang berkemungkinan besar untuk diakses semula, maka data dari RAM ini dimuatkan ke dalam memori cache. Selalunya, ini berlaku dengan pemuatan bersama data yang kemungkinan besar akan digunakan selepas data semasa. Iaitu, terdapat andaian tentang apa yang akan digunakan "selepas". Ini adalah prinsip mudah operasi.

Tahap cache pemproses

Pemproses moden dilengkapi dengan cache, yang selalunya terdiri daripada 2 atau 3 tahap. Sudah tentu, terdapat pengecualian, tetapi ini sering berlaku.

Secara umum, mungkin terdapat tahap seperti: L1 (peringkat pertama), L2 (peringkat kedua), L3 (peringkat ketiga). Sekarang sedikit lagi tentang setiap daripada mereka:

Cache tahap pertama (L1)- tahap memori cache terpantas yang berfungsi secara langsung dengan teras pemproses, terima kasih kepada interaksi yang ketat ini, tahap ini mempunyai masa capaian paling singkat dan beroperasi pada frekuensi yang hampir dengan pemproses. Ia adalah penimbal antara pemproses dan cache tahap kedua.

Kami akan mempertimbangkan volum pada pemproses Intel Core i7-3770K berprestasi tinggi. Pemproses ini dilengkapi dengan 4 x 32 KB L1 cache 4 x 32 KB = 128 KB. (32 KB setiap teras)

Cache tahap kedua (L2)- tahap kedua lebih besar daripada yang pertama, tetapi akibatnya, ia mempunyai kurang "ciri kelajuan". Sehubungan itu, ia berfungsi sebagai penampan antara tahap L1 dan L3. Jika kita beralih semula kepada contoh Core i7-3770 K, maka di sini jumlah cache L2 ialah 4x256 KB = 1 MB.

Cache tahap 3 (L3)- tahap ketiga, sekali lagi, lebih perlahan daripada dua sebelumnya. Tetapi ia masih jauh lebih pantas daripada RAM. Cache L3 dalam i7-3770K ialah 8 MB. Jika dua tahap sebelumnya dibahagikan kepada setiap teras, maka tahap ini adalah biasa kepada keseluruhan pemproses. Penunjuknya agak kukuh, tetapi tidak setinggi langit. Oleh kerana, sebagai contoh, pemproses siri Extreme seperti i7-3960X, ia adalah 15MB, dan beberapa pemproses Xeon baharu mempunyai lebih daripada 20.