Meratakan Kehausan Diuruskan Perisian Untuk Memori Utama Tidak Meruap Bahagian 3
Aug 06, 2024
5.1.1 Persampelan Taburan Tulis Temporal.
Untuk menjana perangkap selepas setiap Cwritesample dan akses tulis aplikasi, kami menggunakan mekanisme pengiraan prestasi dalaman CPU. Peristiwa BUS_ACCESS_ST dalam ARMv8 mengira jumlah bilangan permintaan kedai pada bas memori, dan dengan itu bilangan akses tulis aplikasi direkodkan. Untuk CPU Intel, kelakuan yang sama boleh dicapai dengan menggunakan kaunter prestasi untuk menulis balik cache peringkat terakhir.
Cache dan memori adalah dua konsep yang berkaitan tetapi tidak sama. Cache ialah istilah dalam medan komputer yang menerangkan mekanisme komputer menyimpan dan memproses data. Cache boleh membantu komputer mengakses data dengan lebih pantas dan meningkatkan kelajuan dan kecekapan pemprosesan. Ingatan pula merujuk kepada ingatan manusia iaitu keupayaan otak seseorang menyimpan maklumat dan boleh mengingatinya pada bila-bila masa.
Walaupun cache dan memori berbeza dari segi konsep, sememangnya terdapat hubungan tertentu antara mereka. Memori manusia juga boleh dianggap sebagai mekanisme cache. Kami menyimpan perkara dan maklumat yang telah kami alami dalam otak kami supaya kami dapat mengingatnya dengan lebih cepat apabila kami memerlukannya. Ini seperti mekanisme penyimpanan cache dalam komputer, yang boleh menyimpan data sementara untuk meningkatkan kecekapan pemprosesan komputer.
Selain itu, cache, terutamanya cache jangka pendek, juga boleh membantu kami memahami dan mengingati maklumat baharu dengan lebih baik. Jika kita sedang mempelajari konsep atau mata pengetahuan baharu, kita boleh menyimpannya dalam cache dalam otak kita untuk tempoh yang singkat untuk membantu kita mengingatinya dengan lebih baik. Jika kita boleh menukar maklumat baharu kepada ingatan jangka panjang dengan segera, maka kita boleh lebih memahami dan menguasai pengetahuan ini.
Secara umum, cache dan memori adalah dua konsep yang berkait rapat dan dua mekanisme yang mempromosikan satu sama lain. Cache boleh membantu kami mengakses data dan maklumat dengan lebih pantas, manakala memori boleh membantu kami memahami dan mengingati maklumat ini dengan lebih baik. Dalam pembelajaran dan kehidupan seharian, kita semua boleh menggunakan mekanisme cache dan memori untuk meningkatkan kecekapan dan keupayaan ingatan kita. Ia boleh dilihat bahawa kita perlu meningkatkan ingatan, dan Cistanche boleh meningkatkan ingatan dengan ketara kerana Cistanche juga boleh mengawal keseimbangan neurotransmitter, seperti meningkatkan tahap asetilkolin dan faktor pertumbuhan, yang sangat penting untuk ingatan dan pembelajaran. Selain itu, Cistanche juga boleh meningkatkan aliran darah dan menggalakkan penghantaran oksigen, yang dapat memastikan otak memperoleh nutrisi dan tenaga yang mencukupi, seterusnya meningkatkan daya hidup dan daya tahan otak.

Klik tahu suplemen untuk meningkatkan ingatan
Jika tiada pembilang prestasi sedemikian tersedia dalam sesetengah sistem, sebarang anggaran (cth, pembilang kitaran atau pemasa) masih boleh dipertimbangkan. Mekanisme pengiraan prestasi membolehkan untuk menjana perangkap apabila pembilang prestasi melimpah (iaitu, melebihi nilai Cmax=232 −1).
Wujudkan perangkap pada setiap Cwritesample capaian tulis, kaunter prestasi ditetapkan kepada Cmax −Cwritesample semasa pengendalian perangkap limpahan. Apabila memilih sampel penulisan semula, pengendalian overhed yang diperkenalkan untuk perangkap harus dipertimbangkan.
5.1.2 Perangkap Akses Tulis.
Oleh kerana alamat memori bertulis terakhir tidak dapat ditentukan semasa pengendalian perangkap limpahan pembilang prestasi, teknik kedua dilaksanakan untuk menjejak alamat sasaran penulisan memori seterusnya.
Semasa pengendalian perangkap limpahan, kebenaran capaian memori untuk rantau memori yang dijejaki ditetapkan kepada BACA_SAHAJA. Ambil perhatian bahawa seni bina ARMv8 membenarkan keizinan capaian memori hierarki, membenarkan untuk mengkonfigurasi kawasan memori bersaiz1-GB kepada BACA_SAHAJA dengan hanya mengubah suai entri jadual satu halaman.
Disebabkan kebenaran BACA_SAHAJA, akses tulis seterusnya menyebabkan perangkap pelanggaran kebenaran, yang dikendalikan sebagai gangguan segerak. Alamat penyebab pelanggaran tersedia untuk pengendali perangkap dalam daftar khusus, yang kemudiannya digunakan untuk menambah pembilang yang sepadan dalam anggaran pengagihan tulis.1
Semasa pengendalian perangkap, kebenaran akses ditetapkan semula kepada READ_WRITE.2 Ambil perhatian bahawa mekanisme ini tidak memerlukan MMU dengan ketat; ia juga boleh dilaksanakan dengan MPU yang sangat ringan pada mikropengawal.
Walau bagaimanapun, jika MMU ada, perangkap akses tulis boleh dihadkan kepada subset tertentu halaman memori. Jika, sebagai contoh, sesetengah aplikasi kritikal masa bergantung pada capaian memori yang pantas, perangkap akses tulis boleh dilumpuhkan untuk aplikasi ini dengan kos perataan haus yang buruk.
5.2 Persampelan Akses Baca
Untuk merekodkan anggaran statistik akses baca, kami mengikuti dua langkah yang sama seperti yang diterangkan sebelum ini. Mula-mula, kami menyediakan kaunter prestasi seni bina yang mengira akses baca pada bas memori.
Dengan menetapkan nilai pembilang prestasi C secara manual kepada nilai maksimumnya Cmax =232 − 1 tolak kadar pensampelan boleh dikonfigurasikan Creadsample apabila pembilang melimpah, perangkap limpahan dijana untuk setiap akses baca Creadsample.
Semasa pengendalian limpahan, kami menetapkan kebenaran memori tema bagi semua halaman memori yang diperhatikan kepada TIADA_AKSES, yang membawa kepada perangkap pelanggaran kebenaran pada akses baca dan tulis. Perangkap pelanggaran ini digunakan untuk merekodkan sasaran akses baca seterusnya.
Semasa pengendalian perangkap, kebenaran memori dipulihkan supaya pelaksanaan dapat diteruskan. Akibatnya, mekanisme ini membawa kepada pensampelan alamat baca semasa setiap akses baca Creadsample.

Dalam sistem ujian kami, anggaran baca digunakan bersama anggaran tulis. Akibatnya, kedua-dua kaedah mengganggu antara satu sama lain, kerana kedua-duanya menggunakan sistem kebenaran memori untuk memerangkap akses memori seterusnya. Anggaran tulis hanya menggunakan kebenaran BACA_SAHAJA, dan oleh itu akses baca masih diteruskan dan anggaran baca tidak terganggu.
Sebaliknya anggaran baca menggunakan kebenaran NO_ACCESS, dan dengan itu juga akses tulis seterusnya menyebabkan perangkap pelanggaran kebenaran, walaupun pada masa ini tiada sampel untuk anggaran tulis perlu direkodkan.
Ini memerlukan kerjasama yang erat antara kedua-dua penganggar untuk mengabaikan perangkap tulis ini. Walau bagaimanapun, jika penghampir baca bertujuan untuk merekodkan sampel baca tetapi capaian memori seterusnya ialah capaian tulis, capaian tulis perlu dilengkapkan untuk meneruskan pelaksanaan dan akhirnya mencapai permintaan baca. Untuk melengkapkan capaian tulis, kebenaran memori perlu santai untuk membenarkan akses tulis semula.
Untuk masih memerangkap akses baca seterusnya, kami menggunakan mekanisme penyahpepijatan yang menetapkan semula kebenaran memori kepada NO_AKSES selepas akses tulis selesai. Oleh itu, kami menggantikan arahan selepas arahan tulis dengan arahan titik putus.3
Selagi arahan tulis tidak boleh memanipulasi pembilang program,4 arahan seterusnya dijamin akan dilaksanakan. Pengendali titik putus kemudian menggantikan titik putus dengan arahan asal, menetapkan semula kebenaran memori kepada TIDAK_AKSES dan meneruskan pelaksanaan.
5.2.1 Persampelan Pelaksanaan Arahan.
Apabila akses baca ke ingatan utama dianggarkan, pengambilan arahan kepada kod sumber yang dikompilasi hendaklah dijadikan sampel juga, kerana ia juga merupakan akses baca ingatan.
Walau bagaimanapun, menggunakan mekanisme sebelumnya akan menyebabkan hanya pengambilan arahan ditangkap, kerana perkara pertama yang dilakukan oleh CPU selepas kembali dari pengendali perangkap yang mengubah suai kebenaran memori adalah untuk mengambil arahan seterusnya.
Oleh itu, hanya akses kepada segmen teks akan ditangkap dalam anggaran baca. Untuk mengatasinya, kami tidak memerhati halaman bahagian teks untuk anggaran baca dan oleh itu tidak mengubah suai kebenaran untuk halaman ini.
Sebaliknya, kami mengambil sampel berasingan pembilang program pada setiap limpahan pembilang prestasi (Creadsample ), yang membawa kepada anggaran segmen teks yang berasingan dan bebas.

5.2.2 Penskalaan Penghampiran.
Seperti yang dinyatakan sebelum ini, anggaran baca dan tulis digunakan untuk menganggarkan umur kawasan ingatan dan disalurkan ke hadapan kepada goritma perataan haus berbutir kasar.
Untuk mengekalkan kualiti algoritma perataan haus sedar penuaan, adalah penting untuk menskala anggaran baca mengikut anggaran tulis. Anggaran baca mungkin dijalankan dengan kadar sampel Creadsample yang berbeza daripada anggaran tulis Cwritesample untuk sebab prestasi.
Algoritma perataan haus, walau bagaimanapun, hanya mendapat anggaran umur sel sebagai input, iaitu anggaran tulis untuk NVM yang tidak boleh dibaca dan penghampiran baca serta anggaran tulis untuk NVM yang merosakkan baca. Oleh itu, anggaran baca dan tulis mestilah mempunyai berat yang sama.
Anggaran bacaan berskala boleh dikira dengan cara berikut: faktor penskalaan x yang diperlukan, yang perlu didarab dengan anggaran bacaan sebelum ia diserahkan kepada algoritma aras haus, dikira mengikut Persamaan (1).
X=CreadsampleCwritesample(1)
5.3 Algoritma Aras Haus Berbutir Kasar
Penghampiran pengagihan akses membolehkan algoritma perataan haus yang menyedari penuaan secara sewenang-wenangnya. Algoritma tidak perlu mengetahui sama ada ia dijalankan pada NVM merosakkan baca atau tidak, kerana akses baca mempunyai pengaruh merosakkan yang sama seperti akses tulis.
Oleh itu, algoritma boleh mengambil umur sebagai input, yang dikira daripada jumlah akses baca dan tulis. Kami menyuapkan algoritma dengan penunjuk daripada anggaran akses, yang menganggarkan umur setiap halaman. Ambil perhatian bahawa sistem penghampiran hanya beroperasi pada memori maya dan tidak mempertimbangkan pemetaan ke halaman memori fizikal. Ini dikekalkan oleh algoritma perataan haus itu sendiri.
Algoritma perataan haus menentukan halaman memori maya mana yang dipindahkan ke halaman ingatan fizikal lain dan oleh itu mengekalkan umur keseluruhan memori fizikal. Walau bagaimanapun, antara muka antara sistem penghampiran dan algoritma perataan haus perlu ditakrifkan dengan baik. Kami menyelitkan algoritma perataan haus kami dengan lebih lanjut dengan pelaksanaan anggaran untuk mengurangkan data yang disimpan secara berlebihan.
Algoritma perataan haus kami menggunakan pokok merah-hitam untuk mengekalkan semua halaman memori fizikal terurus bersama-sama dengan anggaran umurnya [10]. Memandangkan anggaran umur sudah ada di dalam nod pokok, tidak perlu menyimpan nilai ini dalam pelaksanaan anggaran juga.
Pokok itu digambarkan dalam Bahagian 5.3.1. Setiap halaman disimpan dalam pokok kira-kira umur anggaran, dan dengan itu carian dan pengekstrakan halaman termuda adalah mungkin dengan cekap.
Sistem penghampiran mengekalkan halaman memori maya pembanding baca dan tulis sementara dan memaklumkan algoritma perataan haus dengan tindakan kenaikan umur jika salah satu pembilang ini melebihi ambang tertentu. Akibatnya, algoritma perataan haus meningkatkan nilai umur dalaman dan memindahkan kandungan memori fizikal ke halaman lain.
5.3.1 Pengurusan Halaman Ingatan.
Setiap kali halaman memori maya harus dipindahkan ke halaman memori fizikal yang lain, minimum semasa (iaitu, halaman memori fizikal dengan umur yang diandaikan paling rendah) diekstrak daripada pepohon sebagai halaman fizikal sasaran dan anggaran umur diselaraskan dengan sewajarnya.
Pilihan halaman termuda sebagai mangsa perataan haus membawa kepada perataan haus tambahan, di mana setiap halaman menjadi halaman termuda selepas tempoh masa tertentu.
Mengenai overhed, algoritma perataan haus hanya dipanggil dalam persediaan ini apabila halaman memori perlu dipindahkan. Berkenaan dasar pemilihan keputusan meratakan haus, anggaran umur semua halaman fizikal adalah seimbang dari semasa ke semasa, kerana setiap halaman akan menjadi halaman minimum semasa pada masa tertentu.
Ini mewujudkan perataan haus tambahan tanpa negara, dan ingatan diandaikan diratakan haus pada bila-bila masa dan disimpan diratakan haus. Oleh itu, sistem tidak perlu menyimpan umur merentasi kitaran kuasa.
Struktur data penghampiran akses dan algoritma perataan haus itu sendiri perlu disasarkan oleh perataan haus itu sendiri, yang memerlukan pelaksanaan khas.
Butiran teknikal ini, walau bagaimanapun, berada di luar skop kerja ini. Akhirnya, penyepaduan algoritma perataan haus dan sistem penghampiran ini membawa kepada parameter konfigurasi tambahan, selain butiran temporal dan ruang anggaran kiraan tulis, iaitu peninggalan ambang, selepas itu bilangan anggaran penulisan atau bacaan adalah lokasi harus dilakukan.

Parameter konfigurasi ini menyediakan pertukaran antara overhed penempatan semula halaman dan kekerapan, dan masing-masing kualiti yang terhasil, tindakan meratakan haus tanpa mempengaruhi kualiti penghampiran akses.
For more information:1950477648nn@gmail.com






