CCoW: การเพิ่มประสิทธิภาพการคัดลอกเมื่อเขียนโดยพิจารณาจากตำแหน่งเชิงพื้นที่ในปริมาณงานส่วนที่ 4

Apr 03, 2024

3.3. การติดตามการเข้าถึงหน้าที่คัดลอกไว้

CCoW ควรตัดจำหน่ายค่าใช้จ่ายสำหรับการจัดการข้อบกพร่องของเพจบ่อยครั้ง อย่างไรก็ตาม การคัดลอกเพจล่วงหน้านำไปสู่ปัญหาอื่น: การติดตามการเข้าถึงเพจหลังจากการคัดลอก

มีการเชื่อมต่อที่แข็งแกร่งระหว่างการประมวลผลข้อผิดพลาดและหน่วยความจำ สำหรับคนส่วนใหญ่ ข้อผิดพลาดมักถูกมองว่าเป็นสิ่งที่ไม่ดี แต่ข้อผิดพลาดอาจเป็นโอกาสให้เราได้เรียนรู้และเติบโต ด้วยการจัดการข้อผิดพลาดอย่างถูกต้อง เราจะสามารถเพิ่มความจำของเราและช่วยให้เราเข้าใจและตอบสนองต่อสถานการณ์ที่คล้ายคลึงกันได้ดีขึ้น

วิธีหนึ่งในการจัดการกับข้อผิดพลาดคือการไตร่ตรองและวิเคราะห์ เมื่อเราทำผิดพลาด เราควรใช้เวลาไตร่ตรองว่าข้อผิดพลาดเกิดขึ้นได้อย่างไร และเราจะทำอะไรได้บ้างเพื่อป้องกันไม่ให้ข้อผิดพลาดเดียวกันนี้เกิดขึ้นอีก ด้วยการไตร่ตรอง เราสามารถระบุสาเหตุของปัญหาและพัฒนามาตรการรับมือเพื่อแก้ไขปัญหาเหล่านั้น การวิเคราะห์ประเภทนี้ไม่ได้เป็นเพียงเกี่ยวกับความผิดพลาดเท่านั้น แต่ยังช่วยให้เราตัดสินใจได้ดีขึ้นในสถานการณ์ชีวิตอื่นๆ และช่วยเราพัฒนาทักษะและความสามารถของเราด้วย

อีกวิธีในการจัดการกับข้อผิดพลาดคือการยอมให้ตัวเองยอมรับและเดินหน้าต่อไป เราไม่ควรปล่อยให้ความผิดพลาดทำให้เราช้าลงหรือทำให้เราหงุดหงิด แต่เราควรมองว่าสิ่งเหล่านี้เป็นโอกาสในการเติบโต โดยปล่อยให้ตัวเองเรียนรู้จากความผิดพลาดของเราและปรับปรุงอย่างต่อเนื่อง หากเราสามารถยอมรับข้อผิดพลาดและจัดการกับมันด้วยทัศนคติเชิงบวก เราก็จะสามารถสร้างกรอบความคิดและความเชื่อมั่นในตนเองที่แข็งแกร่งได้ ซึ่งเป็นสิ่งสำคัญมากในการรักษาความทรงจำที่ดี

ในที่สุด เราก็สามารถเสริมสร้างความจำของเราได้โดยแบ่งปันความผิดพลาดของเรา เมื่อเราบอกผู้อื่นเกี่ยวกับข้อผิดพลาดที่เราทำ เรามักจะจำเหตุการณ์เหล่านั้นได้ลึกซึ้งยิ่งขึ้น เพราะเมื่อเราบอกคนอื่นเราต้องทำให้สิ่งต่าง ๆ ชัดเจนขึ้นและจดจำทุกรายละเอียดของข้อผิดพลาด วิธีนี้ทำให้เราเข้าใจข้อผิดพลาดเหล่านี้ได้ดีขึ้นและป้องกันไม่ให้เกิดขึ้นอีก

โดยสรุป มีความสัมพันธ์ที่ดีระหว่างการประมวลผลข้อผิดพลาดและหน่วยความจำ การจัดการกับข้อผิดพลาดอย่างถูกต้องทำให้เราสามารถเสริมสร้างความจำ พัฒนาทักษะและความสามารถ และกลายเป็นคนที่ดีขึ้นได้ เราควรถือว่าความผิดพลาดเป็นโอกาส เผชิญกับความยากลำบากอย่างแข็งขัน และเรียนรู้และเติบโตจากสิ่งเหล่านั้น จะเห็นได้ว่าเราต้องปรับปรุงความจำ และ Cistanche Deserticola สามารถปรับปรุงความจำได้อย่างมาก เนื่องจาก Cistanche Deserticola เป็นยาจีนโบราณที่มีลักษณะพิเศษมากมาย หนึ่งในนั้นคือการปรับปรุงความจำ ประสิทธิภาพของ Cistanche Deserticola มาจากส่วนผสมออกฤทธิ์หลายชนิดใน Cistanche Deserticola รวมถึงกรดแทนนิก โพลีแซ็กคาไรด์ ฟลาโวนอยด์ไกลโคไซด์ ฯลฯ ส่วนผสมเหล่านี้สามารถส่งเสริมสุขภาพสมองผ่านวิถีทางที่หลากหลาย

10 ways to improve memory

คลิกรู้จักหน่วยความจำระยะสั้นว่าจะปรับปรุงอย่างไร

ในรูปแบบการคัดลอกเมื่อเขียนต้นฉบับ การเขียนครั้งแรกไปยังแต่ละเพจจะถูกบันทึกโดยตัวจัดการข้อบกพร่องของเพจ

คัดลอกเฉพาะเพจที่ผิดพลาดเท่านั้น และระบบสามารถติดตามการเข้าถึงแต่ละเพจได้อย่างแม่นยำผ่านตัวจัดการข้อบกพร่องของเพจ ในทางกลับกัน เมื่อระบบคัดลอกทั่วทั้งภูมิภาค หน้าทั้งหมดในภูมิภาคจะถูกแมปกับกระบวนการโดยได้รับอนุญาตเป็นลายลักษณ์อักษร

ดังนั้น การเขียนในภายหลังไปยังหน้าที่คัดลอกเหล่านั้นสามารถเกิดขึ้นได้โดยไม่ต้องทริกเกอร์กลไกการจัดการข้อบกพร่องของเพจ ดังนั้น ระบบจึงไม่สามารถติดตามการเข้าถึงเพจที่คัดลอกได้ นี่อาจเป็นปัญหาได้เมื่อกระบวนการดำเนินการแยกซ้ำๆ สมมติว่าพื้นที่มีตำแหน่งเชิงพื้นที่สูงและยุคถูกกำหนดให้เป็นช่วงเวลาระหว่างสองทางแยก

ตำแหน่งที่สูงสามารถบันทึกได้โดยการนับข้อบกพร่องของเพจที่เกิดขึ้นในภูมิภาค จากนั้นสมมติว่ากระบวนการสร้างกระบวนการใหม่ด้วยทางแยก เมื่อยุคใหม่เริ่มต้นขึ้นด้วยทางแยก การเข้าถึงการเขียนครั้งแรกไปยังเพจใดเพจหนึ่งในภูมิภาคจะเริ่มต้น CCoW โดยคัดลอกเพจทั้งหมดในภูมิภาค ขณะนี้กระบวนการมีทุกเพจที่มีสิทธิ์ในการเขียน และไม่มีการสร้างข้อบกพร่องของเพจเพิ่มเติมจากภูมิภาคจนกระทั่งสิ้นสุดยุค

เมื่อยุคใหม่เริ่มต้นขึ้นอีกครั้ง ภูมิภาคจะถือว่ามีความครอบคลุมต่ำในยุคนั้น เนื่องจากภูมิภาคนั้นมีหน้าคัดลอกเมื่อเขียนเพียงหน้าเดียวเท่านั้น ดังนั้น การเขียนแต่ละครั้งไปยังภูมิภาคจะได้รับการประมวลผลผ่านกลไกการคัดลอกเมื่อเขียนต้นฉบับต่อหน้า ดังนั้นจึงลดโอกาสในการเพิ่มประสิทธิภาพประสิทธิภาพ แม้ว่าภูมิภาคจะมีพื้นที่สูงก็ตาม

โปรดทราบว่าภูมิภาคนี้ถือว่ามีท้องถิ่นสูงในยุคถัดไปอีกครั้ง และกระบวนการนี้ซ้ำแล้วซ้ำเล่าเพื่อสลับสถานการณ์ เพื่อแก้ไขปัญหานี้ เราจำเป็นต้องมีกลไกในการติดตามการเข้าถึงเพจหลังจากการคัดลอก

การศึกษานี้เสนอการใช้ประโยชน์จากบิตสกปรกในรายการตารางหน้า (PTE) โดยทั่วไป สถาปัตยกรรมสมัยใหม่จะรักษาข้อมูลต่างๆ ใน ​​PTE สำหรับแต่ละหน้า และบิตสกปรกเป็นหนึ่งในฟิลด์ที่สถาปัตยกรรมส่วนใหญ่สนับสนุน

เมื่อ MMU ประมวลผลการเข้าถึงหน่วยความจำการเขียน มันจะตั้งค่าบิตสกปรกของเพจที่เกี่ยวข้องโดยอัตโนมัติ ในทางกลับกัน นัยว่าเมื่อมีการตั้งค่าบิตสกปรกสำหรับเพจ เพจนั้นได้รับการอัปเดตด้วยการเข้าถึงแบบเขียน

จากแนวคิดนี้ เราได้ปรับเปลี่ยนกลไกในการคำนวณความครอบคลุม เริ่มแรก ภูมิภาคทั้งหมดจะถือเป็นภูมิภาคปกติ ในระหว่างทางแยก ความครอบคลุมสำหรับภูมิภาคปกติจะถูกคำนวณด้วยจำนวนการคัดลอกเมื่อเขียนโดยใช้สมการ (1)

ways to improve memory

ในขณะที่จัดการข้อบกพร่องของหน้าสำหรับภูมิภาคที่มีตำแหน่งสูง หน้าทั้งหมดในภูมิภาคจะถูกคัดลอกโดยล้างบิตสกปรก นอกจากนี้ ภูมิภาคนี้จะถูกทำเครื่องหมายว่าเป็นภูมิภาคที่คัดลอกไว้ล่วงหน้า ในระหว่างทางแยก ความครอบคลุมสำหรับขอบเขตที่คัดลอกจะถูกคำนวณด้วยจำนวนหน้าที่สกปรกในภูมิภาคดังต่อไปนี้:

improve memory

ความครอบคลุมที่คำนวณได้สำหรับแต่ละภูมิภาคจะดำเนินการผ่านทางแยกและใช้เป็นตัวชี้วัดสำหรับตำแหน่งเชิงพื้นที่ของภูมิภาค เมื่อเกิดข้อผิดพลาดในการเขียนเพจในภูมิภาค ระบบจะตรวจสอบความครอบคลุมของภูมิภาค และอาจคัดลอกเพจล่วงหน้าสำหรับภูมิภาคที่มีตำแหน่งสูง

รูปที่ 2 แสดงให้เห็นถึงสถานการณ์ที่มีการคำนวณความครอบคลุมหลังจากการคัดลอกล่วงหน้า สมมติว่าทั้งสองภูมิภาคถูกคัดลอก (แรเงาสีแดง) และหน้า 0, 2, 3, 4 และ 11 ทั้งหมดมีชุด Dirtbit

ในการคำนวณความครอบคลุมขณะประมวลผลทางแยก ระบบจะใช้บิตสกปรกแทนจำนวนการคัดลอกเมื่อเขียน เนื่องจากขอบเขตถูกคัดลอกในยุคปัจจุบัน ดังนั้น ขอบเขต 0 จึงมีความครอบคลุม 66%
ในขณะที่ความครอบคลุมของภูมิภาค 1 คือ 15% เพื่อจัดการกับข้อบกพร่องของเพจสำหรับเพจ 3 ขอบเขต 0 จะถูกคัดลอกอีกครั้ง ในขณะที่ข้อบกพร่องของเพจสำหรับเพจ 9 จะได้รับการจัดการตามกลไกดั้งเดิม ด้วยวิธีนี้ เราจึงสามารถป้องกันไม่ให้ภูมิภาคที่อยู่ในพื้นที่สูงหลุดออกจากโฟกัสได้

boost memory

3.4. การจับท้องถิ่น

เนื่องจากตัวจัดการข้อบกพร่องของเพจอยู่บนเส้นทางที่มีความสำคัญต่อประสิทธิภาพในระบบปฏิบัติการ เราควรลดค่าใช้จ่ายสำหรับการดำเนินการตามโครงร่างที่เสนอให้เหลือน้อยที่สุด
โดยพื้นฐานแล้ว CCoW จำเป็นต้องมีกลไกในการคำนวณความครอบคลุม และวิธีการที่ง่ายที่สุดในการใช้งานคุณลักษณะนี้คือการติดตามเพจที่ทำให้เกิดข้อบกพร่องของเพจด้วยบิตแมป ตามที่เราอธิบายไว้ในส่วน 3.2

ขณะจัดการกับเพจฟอลต์ ระบบจะตั้งค่าบิตที่สอดคล้องกับเพจฟอลต์ ในระหว่างการแยก ระบบจะสแกนบิตแมปเพื่อนับจำนวนเพจที่ผิดพลาดสำหรับแต่ละภูมิภาค และคำนวณความครอบคลุม บิตแมปจะถูกรีเซ็ตหลังการคำนวณ

แนวทางนี้เรียบง่ายแต่มีข้อจำกัดด้านพื้นที่และเวลาสูง ระบบควรรักษารายการบิตแมปหนึ่งบิตสำหรับแต่ละเพจขนาด 4 KB และตรวจสอบบิตแมปทั้งหมดระหว่างทางแยก เมื่อพิจารณาถึงพื้นที่หน่วยความจำขนาดใหญ่ของแอปพลิเคชันที่ใช้หน่วยความจำมาก การดำเนินการเหล่านี้จะมีค่าใช้จ่ายสูงในระหว่างทางแยก ซึ่งชดเชยผลประโยชน์ด้านประสิทธิภาพการทำงานของ CCoW เราปรับการใช้งานนี้ให้เหมาะสมโดยใช้ประโยชน์จากคุณลักษณะของข้อบกพร่องของเพจ

หากข้อบกพร่องของเพจเกิดขึ้นจากเพจ เพจนั้นจะไม่ทำให้เกิดข้อบกพร่องของเพจเพิ่มเติมจนกว่ากระบวนการจะสร้างกระบวนการใหม่ ดังนั้น แต่ละเพจสามารถกระตุ้นให้เกิดข้อผิดพลาดหนึ่งหน้าได้มากที่สุด และสำหรับภูมิภาคที่มี n หน้า ข้อบกพร่องของเพจสามารถเกิดขึ้นได้ไม่เกิน n ครั้งเท่านั้น นี่หมายความว่าการนับจำนวนข้อบกพร่องของเพจต่อภูมิภาคนั้นเพียงพอที่จะคำนวณความครอบคลุม แทนที่จะรักษาบิตแมปสำหรับแต่ละเพจ

ดังนั้นเราจึงแทนที่บิตแมปด้วยตัวนับความผิด แต่ละภูมิภาคจะเชื่อมโยงกับคู่ของตัวนับดังนี้: ตัวแรกสำหรับการนับข้อบกพร่องของเพจในยุคสุดท้าย และอีกตัวหนึ่งสำหรับการนับข้อบกพร่องของเพจในยุคปัจจุบัน

แบบแรกใช้เพื่อกำหนดตำแหน่งเชิงพื้นที่ของภูมิภาค ในขณะที่แบบหลังใช้เพื่อติดตามตำแหน่งเชิงพื้นที่ของยุคปัจจุบัน ในระหว่างการแยก ตัวนับข้อบกพร่องปัจจุบันจะถูกคัดลอกไปยังตัวนับข้อบกพร่องก่อนหน้า

หากขอบเขตถูกคัดลอกในยุคนี้ จำนวนหน้าที่สกปรกในภูมิภาคนั้นจะถูกเขียนไปยังตัวนับข้อบกพร่องก่อนหน้าแทน ตัวนับจะถูกเติมในขณะที่สร้างพื้นที่หน่วยความจำเสมือน (VMA) ใหม่ และเรียกคืนเมื่อ VMA ที่เกี่ยวข้องถูกย่อหรือไม่ได้แมป การปรับให้เหมาะสมนี้จะช่วยลดพื้นที่โอเวอร์เฮดของ CCoW จากหนึ่งบิตต่อหน้าเหลือไม่กี่ไบต์ต่อภูมิภาค

memory enhancement


For more information:1950477648nn@gmail.com

คุณอาจชอบ