การอ่านและเขียนระดับการสึกหรอที่จัดการโดยซอฟต์แวร์สำหรับหน่วยความจำหลักที่ไม่ลบเลือน ตอนที่ 5
Aug 07, 2024
7 การประเมิน
ในส่วนนี้ เราจะประเมินสถานการณ์หลักสองสถานการณ์: (1) NVM ที่ไม่ทำลายการอ่าน และ (2) NVM ที่ไม่ทำลายการอ่าน สำหรับแบบแรก จะใช้เพียงส่วนย่อยของแนวคิดที่นำเสนอ และสำหรับแนวคิดหลัง จะใช้แนวคิดที่นำเสนอทั้งหมด
การอ่านแบบทำลายล้างไม่ส่งผลต่อความจำของเรา ในความเป็นจริง การอ่านแบบทำลายล้างเป็นวิธีการเรียนรู้ที่กระตือรือร้นมากขึ้น ซึ่งต่างจากการจดบันทึกหรือการอ่านแบบดั้งเดิม ซึ่งสามารถปรับปรุงประสิทธิภาพการเรียนรู้และความจำของเราได้
การอ่านแบบทำลายล้างหมายถึงการเน้น การเน้น หรือเพิ่มความเข้าใจส่วนบุคคลในเนื้อหาหลักเมื่ออ่าน เพื่อเพิ่มความเข้าใจในตนเองและความประทับใจในความรู้ให้ลึกซึ้งยิ่งขึ้น วิธีการเรียนรู้นี้สามารถช่วยให้เราดูดซับความรู้ได้เร็วและแม่นยำยิ่งขึ้น และปรับปรุงประสิทธิภาพของหน่วยความจำได้อย่างมาก ด้วยความเข้าใจที่ลึกซึ้งยิ่งขึ้นและความทรงจำที่แข็งแกร่งยิ่งขึ้น เราสามารถใช้ความรู้ที่เราเรียนรู้ได้อย่างยืดหยุ่นมากขึ้นในการทำงาน การศึกษา และชีวิตในอนาคตของเรา และบรรลุผลการปฏิบัติงานที่ดีขึ้นและความสำเร็จที่มากขึ้น
เพื่อให้การอ่านแบบทำลายล้างได้ผลสูงสุด เราต้องเตรียมพร้อมและมีสมาธิอย่างเต็มที่ เลือกสถานที่ที่เงียบสงบและสะดวกสบายและเน้นการอ่านและทำความเข้าใจเพื่อให้เราสามารถเข้าใจและเชี่ยวชาญได้มากที่สุด หากคุณสับสนเกี่ยวกับแนวคิดหรือแนวคิด อย่าลังเลที่จะขจัดความกลัวและแสวงหาความเข้าใจที่ลึกซึ้งยิ่งขึ้น เราสามารถสื่อสารกับเพื่อนร่วมชั้น ครู หรือผู้เชี่ยวชาญอื่นๆ เพื่อทำความเข้าใจแนวคิดเหล่านี้เพิ่มเติมและบันทึกความเข้าใจของเรา
กล่าวโดยสรุป การอ่านแบบทำลายล้างเป็นวิธีการเรียนรู้เชิงบวกที่สามารถปรับปรุงประสิทธิภาพการเรียนรู้และความจำของเรา ช่วยให้เราสามารถนำความรู้ไปประยุกต์ใช้ในการทำงานและชีวิตในอนาคตได้ดียิ่งขึ้น ตราบใดที่เรามีสมาธิ รักษาทัศนคติที่ถ่อมตัวและขยันหมั่นเพียร และคุ้นเคยกับการบันทึกแนวคิดของเรา เราก็สามารถบรรลุผลการเรียนรู้ที่ดีขึ้นได้ จะเห็นได้ว่าเราต้องปรับปรุงความจำ Cistanche สามารถปรับปรุงความจำได้อย่างมีนัยสำคัญเนื่องจากมีฤทธิ์ต้านอนุมูลอิสระ ต้านการอักเสบ และต่อต้านวัย ซึ่งสามารถช่วยลดการเกิดออกซิเดชันและการอักเสบในสมอง จึงช่วยปกป้องสุขภาพของระบบประสาท นอกจากนี้ Cistanche ยังสามารถส่งเสริมการเจริญเติบโตและการซ่อมแซมเซลล์ประสาท ซึ่งจะช่วยปรับปรุงการเชื่อมต่อและการทำงานของโครงข่ายประสาทเทียม ผลกระทบเหล่านี้สามารถช่วยปรับปรุงความจำ ความสามารถในการเรียนรู้ และความเร็วในการคิด และยังสามารถป้องกันการเกิดความผิดปกติทางสติปัญญาและโรคทางระบบประสาทได้อีกด้วย

คลิกรู้อาหารเสริมเพื่อเพิ่มความจำ
สำหรับแต่ละสถานการณ์ เราจะประเมินการสึกหรอในระดับหยาบและคำนึงถึงอายุก่อน ดังที่เราได้อธิบายไปแล้ว วิธีการนี้ไม่สามารถบรรลุระดับการสึกหรอที่เหมาะสมได้ ดังนั้น เราจึงประเมินร่วมกับแนวทางที่ละเอียดในภายหลัง
ขั้นแรก เราจะให้รายละเอียดเกี่ยวกับการตั้งค่าการประเมินและวิธีการวิเคราะห์ของเรา จากนั้นเราจะนำเสนอผลลัพธ์สำหรับสถานการณ์หลักสองสถานการณ์
7.1 การตั้งค่าการประเมินผล
ในการตั้งค่าทางเทคนิคสำหรับการประเมิน เราใช้สภาพแวดล้อมการจำลอง [10] ซึ่งเรายังใช้อัลกอริธึมการปรับระดับการสึกหรอจากส่วนที่ 5 และ 6
แม้ว่าการตั้งค่าการจำลองจะดำเนินการจำลองระบบเต็มรูปแบบ ดังนั้นการใช้งานของเราก็จะทำงานบนระบบจริงด้วย การใช้คุณลักษณะการจำลองมีข้อได้เปรียบหลักที่เราสามารถติดตามการเข้าถึงหน่วยความจำได้อย่างง่ายดายและวิเคราะห์ในภายหลัง
ในงานนี้ เราพิจารณาหน่วยความจำหลักแบบไม่ลบเลือนที่ระบุแอดเดรสแบบไบต์ได้เท่านั้น (กล่าวคือ ไม่มีความทรงจำแบบบล็อก) ดังนั้นเราจึงวิเคราะห์เฉพาะจำนวนการเข้าถึงหน่วยความจำต่อเซลล์เท่านั้น ไม่ใช่ผลกระทบเพิ่มเติม เช่น การลบบล็อกในหน่วยความจำแบบแฟลช
เราบันทึกการติดตามการเข้าถึงหน่วยความจำสำหรับแอปพลิเคชันการวัดประสิทธิภาพหลายรายการสำหรับการดำเนินการพื้นฐานโดยไม่มีการปรับระดับการสึกหรอ และสำหรับกลไกการปรับระดับการสึกหรอที่ใช้หลายชุดร่วมกัน
เราดำเนินการจำลองระบบเต็มรูปแบบอยู่เสมอโดยนำอัลกอริธึมการปรับระดับการสึกหรอในระบบรันไทม์มาใช้งาน จากนั้นเราจะเปรียบเทียบจำนวนการเข้าถึงทั้งหมดสำหรับไบต์หน่วยความจำทุกไบต์และตัวบ่งชี้อายุการใช้งานหน่วยความจำที่คำนวณ
สำหรับสถานการณ์ของ NVM ที่ไม่ทำลายการอ่าน เราจะพิจารณาเฉพาะการเข้าถึงการเขียนเท่านั้น และสำหรับ NVM ที่ทำลายการอ่าน เราจะพิจารณาการเข้าถึงการเขียนและการอ่าน
นอกจากนี้ยังบอกเป็นนัยว่าพื้นฐาน (ไม่มีการปรับระดับการสึกหรอ) สำหรับทั้งสองสถานการณ์นี้แตกต่างกัน ดังนั้นเราจึงรายงานการปรับปรุงในระดับพื้นฐาน
เนื่องจากการใช้งานของเราเป็นเคอร์เนล Bare Metal ขนาดเล็ก การย้ายและเรียกใช้แอปพลิเคชันจากชุดมาตรฐานที่รู้จักจึงจำเป็นต้องมีการรวมโค้ดด้วยตนเองและการใช้งานบริการระบบที่จำเป็น ดังนั้นเราจึงจำกัดการประเมินไว้เพียงชุดเล็กๆ ของแอปพลิเคชันการวัดประสิทธิภาพ
7.2 วิธีการวิเคราะห์
สำหรับการติดตามการเข้าถึงที่บันทึกไว้แต่ละรายการ เราจะรวมจำนวนการเข้าถึงที่ถูกกรองทั้งหมดไปยังทุกไบต์ของหน่วยความจำ นอกเหนือจากการแสดงภาพกราฟิกจำนวนการเข้าถึงหน่วยความจำบนพื้นที่หน่วยความจำสำหรับการวัดประสิทธิภาพทั้งหกครั้งแล้ว เรายังพิจารณาการวิเคราะห์ที่เพิ่มขึ้นในช่วงอายุการใช้งานของหน่วยความจำด้วย เราคำนวณหลายอย่างตัวชี้วัดประสิทธิภาพ:
• ความทนทานที่ได้รับ: AE=หมายถึง_การเข้าถึง_countmax_การเข้าถึง_count สมมติว่าหน่วยความจำไม่สามารถใช้งานได้อีกต่อไปเมื่อเซลล์หน่วยความจำแรกหมดสภาพ ,5 จำนวนการเข้าถึงสูงสุดในทุกเซลล์จะกำหนดอายุการใช้งานสูงสุด
โปรดทราบว่าเหตุการณ์นี้สามารถละเว้นได้โดยการใช้การจัดการบล็อกที่เสียหายเพิ่มเติม ตราบใดที่บล็อกที่เสียหายถูกตรวจพบเฉพาะในรายละเอียดที่หยาบกว่าหน้าหน่วยความจำเสมือน ความจำเป็นในการปรับระดับการสึกหรอในรายละเอียดของหน้าหน่วยความจำเสมือนและรายละเอียดที่เล็กกว่ายังคงมีอยู่ ภายใต้สภาวะที่สมบูรณ์แบบ การเข้าถึงหน่วยความจำสามารถสับเปลี่ยนไปยังตำแหน่งหน่วยความจำอื่นได้ตามใจชอบ เพื่อทำให้เซลล์ทั้งหมดมีระดับการสึกหรอโดยสิ้นเชิง ซึ่งจะทำให้จำนวนการเข้าถึงเฉลี่ยถูกนำไปใช้กับทุกเซลล์

ดังนั้น ผลหารของทั้งสองจึงบ่งบอกถึงเปอร์เซ็นต์ของอายุการใช้งานหน่วยความจำในอุดมคติที่เป็นไปได้ เราไม่พิจารณาหน่วยความจำสำรองเพิ่มเติมในการประเมินนี้
การปรับปรุงความทนทาน: EI=AEanalyzedAEbaseline เมื่อพิจารณาจากความทนทานที่ได้รับจากพื้นฐานและการกำหนดค่าอื่น ผลหารของทั้งสองค่าบ่งชี้ถึงการปรับปรุงในความทนทานที่ได้รับเมื่อเปรียบเทียบกับพื้นฐาน
• การปรับปรุงอายุการใช้งาน: LI=EIOV+1 เมื่อพิจารณาจากการปรับปรุงความทนทานและโอเวอร์เฮด OV (เปอร์เซ็นต์ของการเข้าถึงหน่วยความจำเพิ่มเติม) ของการติดตามบางส่วน เมื่อเปรียบเทียบกับค่าพื้นฐาน อายุการใช้งานหน่วยความจำที่ได้รับสามารถคำนวณได้โดยการเชื่อมโยงทั้งสองอย่าง
ตัวอย่างเช่น หากอัลกอริทึมปรับปรุงความทนทานด้วยปัจจัย EI=4 แต่ทำให้เกิดโอเวอร์เฮด OV=100% ซึ่งหมายความว่า เนื่องจากการปรับระดับการสึกหรอ แอปพลิเคชันจึงจำเป็นต้องมีการเข้าถึงหน่วยความจำจำนวนสองเท่าจึงจะเสร็จสมบูรณ์ อายุการใช้งานของ ระบบทั้งหมดเพิ่มขึ้นด้วยปัจจัย LI=2
สำหรับการเรียกใช้เกณฑ์มาตรฐานทั้งหมด เราจะคำนวณตัววัด AE, EI และ LI
7.3 การปรับระดับการสึกหรอแบบหยาบ
การใช้งานที่เราเสนอนั้นรวมถึงการปรับระดับการสึกหรอแบบหยาบที่คำนึงถึงอายุ โดยที่อายุของเพจหน่วยความจำจะถูกประมาณโดยการสุ่มตัวอย่างการเข้าถึงระหว่างรันไทม์ ในส่วนนี้ เราจะดำเนินการเฉพาะการประมาณอายุและการแมปหน้าหน่วยความจำใหม่ ตามอัลกอริธึมการแมปใหม่ (ส่วนที่ 5.3) เราบันทึกการติดตามหน่วยความจำผลลัพธ์และแสดงจำนวนการเข้าถึงทั้งหมดในไบต์แบบกราฟิก

7.3.1 NVM ที่ไม่อ่านทำลาย
ในกรณีของ NVM ที่ไม่ทำลายการอ่าน จะมีเพียงการเข้าถึงการเขียนเท่านั้นที่ประมาณไว้ และอายุจะประมาณด้วยจำนวนการเข้าถึงการเขียนต่อเพจหน่วยความจำเท่านั้น ในรูปที่ 5 เราแสดงจำนวนการเข้าถึงการเขียนทั้งหมด (แกน y) บน พื้นที่หน่วยความจำที่ใช้ (แกน x) สำหรับแอปพลิเคชันเบนช์มาร์กทั้งหกของเรา เมื่อเปิดใช้งานการประมาณอายุและอัลกอริธึมการแมปหน้าใหม่
เราตั้งค่าอัตราการสุ่มตัวอย่างในการเข้าถึงการเขียนไปยัง Cwritesample=2,000 และแจ้งเตือนเกณฑ์สำหรับอัลกอริธึมการปรับระดับการสึกหรอเป็น nreloc=64 ผลลัพธ์แสดงให้เห็นว่าอัลกอริธึม aging-aware ได้ผลเนื่องจากมีการกระจายการเข้าถึงการเขียนในลักษณะที่ทุกภูมิภาคของหน่วยความจำถูกเขียนด้วยรูปแบบที่คล้ายกัน
อย่างไรก็ตาม การเข้าถึงการเขียนยังคงไม่ได้อยู่ในระดับการสึกหรอทั้งหมด ซึ่งสามารถอนุมานได้จากจำนวนพีคจำนวนมหาศาลในรูป นอกจากนี้ยังสามารถเห็นได้ว่าสำหรับการวัดประสิทธิภาพที่มีหน่วยความจำขนาดใหญ่ (sha และ Rijndael) เวลาการจำลองไม่เพียงพอที่จะกำหนดเป้าหมายพื้นที่หน่วยความจำทั้งหมดเท่ากัน
หากแอปพลิเคชันไม่สามารถทำงานได้เป็นเวลานานขึ้น จะต้องเปลี่ยนการกำหนดค่าการปรับระดับการสึกหรอเพื่อให้สามารถปรับระดับการสึกหรอได้บ่อยขึ้นเพื่อแก้ไขข้อบกพร่องนี้
7.3.2 NVM แบบทำลายการอ่าน
เมื่อระบบเป้าหมายติดตั้ง read-destructiveNVM เราจะเปิดใช้งานการประมาณการเขียนและการอ่าน และประมาณอายุเพจหน่วยความจำตามจำนวนการเข้าถึงการอ่านและเขียนสะสม เนื่องจากทั้งสองสันนิษฐานว่าจะทำให้เกิดการสึกหรอแบบเดียวกัน
อัลกอริธึมการปรับระดับการสึกหรอยังคงไม่เปลี่ยนแปลง แค่ข้อมูลที่ป้อน (เช่น อายุโดยประมาณ) เท่านั้นที่แตกต่างกัน เราเก็บการกำหนดค่าของการประมาณการเขียนและเกณฑ์การแมปใหม่ไว้ในส่วน 7.3.1 เรากำหนดค่าอัตราการสุ่มตัวอย่างเพิ่มเติมของการเข้าถึงการอ่าน Creadsample=12,000 เนื่องจากการเข้าถึงการอ่านเกิดขึ้นที่อัตราส่วนที่สูงกว่าการเข้าถึงการเขียนมาก
รูปที่ 6 แสดงจำนวนการเข้าถึงการอ่านและเขียนสะสม (แกน y) เหนือพื้นที่หน่วยความจำ (แกน x) ข้อสังเกตที่คล้ายกันในรูปที่ 5 สามารถทำได้: การปรับระดับการสึกหรอโดยคำนึงถึงอายุได้ผลดี แม้กระทั่งเกี่ยวกับการเข้าถึงการอ่านแบบทำลายล้าง
ถึงกระนั้น ก็สามารถสังเกตได้ว่าการปรับระดับการสึกหรอแบบหยาบไม่เพียงพอที่จะบรรลุหน่วยความจำระดับการสึกหรอแบบ allover แอปพลิเคชันที่มีหน่วยความจำขนาดใหญ่ส่งผลให้มีระดับการสึกหรอที่ดีกว่าที่แสดงในส่วนที่ 7.3.1 ดังนั้น เนื่องจากพบการเข้าถึงแบบอ่านและเขียน จึงมีการดำเนินการปรับระดับการสึกหรอมากขึ้น
7.4 การปรับระดับการสึกหรอแบบละเอียด
จากการประเมินในส่วนที่ 7.3 ชี้ให้เห็นว่า การปรับระดับการสึกหรอแบบหยาบไม่สามารถบรรลุถึงหน่วยความจำระดับการสึกหรอได้ทั้งหมด เนื่องจากฮอตสปอตการเข้าถึงที่หนาแน่นภายในเพจหน่วยความจำไม่ได้รับการแก้ไข ด้วยเหตุนี้ บทความนี้จึงเสนอการปรับระดับการสึกหรอแบบละเอียดเพิ่มเติม ซึ่งได้รับการประเมินในหัวข้อนี้ เราดำเนินการการปรับระดับการสึกหรอแบบละเอียดและการปรับระดับการสึกหรอแบบข้อความ นอกเหนือจากการปรับระดับการสึกหรอแบบหยาบเพื่อให้บรรลุการปรับระดับการสึกหรอโดยคำนึงถึงอายุโดยรวม
7.4.1 NVM ที่ไม่อ่านทำลาย
สำหรับ NVM ที่ไม่ทำลายการอ่าน ส่วนขยายแบบละเอียดจะกำหนดเป้าหมายไปที่สแต็กเท่านั้น เนื่องจากขอบเขตข้อความจะถูกกำหนดเป้าหมายโดยการเข้าถึงเพื่อการอ่านเท่านั้น เราคงการกำหนดค่าเดียวกันกับในส่วน 7.3.1 และดำเนินการเคลื่อนไหวแบบสแต็กในทุกการแมปหน้าหน่วยความจำเสมือนใหม่ (เช่น ด้วยอัตราส่วนเดียวกันกับอัลกอริธึมการแมปหน้าใหม่) เรากำหนดค่าระยะการย้ายตำแหน่ง (เช่น การเคลื่อนไหวของสแต็ก) เป็น 64 ไบต์
รูปที่ 7 แสดงจำนวนผลลัพธ์ของการเข้าถึงการเขียน (แกน y) บนพื้นที่หน่วยความจำ (แกน x) สังเกตได้ว่าสำหรับการวัดประสิทธิภาพบางอย่าง หน่วยความจำระดับการสึกหรอเกือบทั้งหมดทำได้สำเร็จ
ข้อบกพร่องในเกณฑ์มาตรฐาน Dijkstra เกิดจากการที่ Dijkstra ใช้ส่วนข้อมูลอย่างเข้มข้นเพื่อจัดการขั้นตอนอัลกอริทึม ดังนั้น จุดร้อนในการเขียนที่หนาแน่นจึงปรากฏในส่วนข้อมูล ซึ่งไม่สามารถแก้ไขได้ด้วยกลไกสแต็กแบบละเอียดของเรา
7.4.2 NVM แบบทำลายการอ่าน
หากต้องการดำเนินการปรับระดับการสึกหรอแบบละเอียดบน NVM ที่ทำลายการอ่าน จำเป็นต้องจัดการฮอตสปอตที่หนาแน่นสำหรับการอ่านและการเขียน ดังนั้น นอกเหนือจากการตั้งค่าหยาบที่คำนึงถึงอายุจากส่วนที่ 7.3.2 แล้ว เรายังใช้กลไกของเราในการปรับระดับการสึกหรอของสแต็กและข้อความ

เราคงการกำหนดค่าเดียวกันสำหรับอัลกอริธึมหยาบและดำเนินการย้ายสแต็กและข้อความในการย้ายตำแหน่งหน้าที่หยาบทุกครั้ง โดยทั่วไป ทั้งสองอัตราส่วนสามารถกำหนดค่าแยกกันเป็นค่าที่กำหนดเองได้
ระยะการย้ายตำแหน่งสำหรับทั้งการย้ายสแต็กและการย้ายข้อความถูกตั้งค่าเป็น 64 ไบต์ ผลลัพธ์ในรูปที่ 8 ทำให้เกิดการสังเกตที่คล้ายกันอีกครั้งสำหรับกรณีที่ไม่อ่านทำลายในส่วน 7.4.1
โดยทั่วไปแล้ว หน่วยความจำจะมีระดับการสึกหรอ โดยพิจารณาจากอิทธิพลที่ทำลายล้างของการอ่านและการเขียน สำหรับเกณฑ์มาตรฐาน crc32 และ Rijndael ยังคงสามารถสังเกตเห็นความไม่สม่ำเสมอที่มากขึ้นได้ สาเหตุนี้มาจากข้อเท็จจริงที่ว่าการปรับระดับการสึกหรอของข้อความจะย้ายเฉพาะโค้ดที่ย้ายตำแหน่งได้เท่านั้น ไม่ใช่ GOT และ PLT อย่างไรก็ตาม ตารางทั้งสองนี้ถูกอ่านระหว่างการดำเนินการวัดประสิทธิภาพ และดังนั้นจึงทำให้เกิดผลเสียต่อหน่วยความจำพื้นฐาน

7.5 ผลการวิเคราะห์
เนื่องจากตัวเลขที่นำเสนอก่อนหน้านี้เป็นเพียงสัญชาตญาณสำหรับคุณภาพที่ได้รับของอัลกอริธึมการปรับระดับการสึกหรอที่เราเสนอ เราจึงคำนวณตัวชี้วัดอายุการใช้งานเชิงวิเคราะห์ (ส่วนที่ 7.2) สำหรับเกณฑ์มาตรฐานทั้งหมดของเรา และสรุปไว้ในตารางที่ 1 สามารถสังเกตได้หลายประการในตารางนี้ ประการแรก เมื่อพิจารณาเฉพาะคอลัมน์สุดท้าย (LI) จะเห็นได้ว่าอายุการใช้งานหน่วยความจำทั้งหมดเพิ่มขึ้นตามอัลกอริทึมของเราสูงสุดถึง 955 เท่า
กล่าวอีกนัยหนึ่ง อายุการใช้งานหน่วยความจำหลายวันโดยไม่ต้องบำรุงรักษาใดๆ จะถูกขยายเป็นหลายปีโดยใช้เพียงอัลกอริธึมที่ใช้ซอฟต์แวร์ของเราเท่านั้น ประการที่สอง การเข้าถึงเพื่อการอ่านอาจมีระดับการสึกหรอที่แย่กว่าการเข้าถึงการเขียนเล็กน้อยในเกณฑ์มาตรฐานบางประการ ซึ่งสามารถอนุมานได้จากการปรับปรุงอายุการใช้งานที่ต่ำกว่า ตามที่อธิบายไว้ในส่วนที่ 7.1 จะต้องพิจารณาบรรทัดฐานอื่นสำหรับ NVM ที่ทำลายการอ่าน ดังนั้นการปรับปรุงอาจต่ำกว่า NVM ที่ไม่ทำลายการอ่านอย่างมีนัยสำคัญ
ประการที่สาม โดยการตรวจสอบคอลัมน์แรก (AE) จะสามารถอนุมานได้ว่าอัลกอริทึมที่ใช้นั้นเหมาะสมที่สุดเพียงใด หาก AE เป็น 1 จะไม่มีการปรับปรุงเพิ่มเติมอีก สังเกตได้ว่าด้วยการปรับระดับการสึกหรอแบบหยาบเท่านั้น โดยส่วนใหญ่แล้วจะมีความทนทานที่เหมาะสมได้เพียงไม่กี่เปอร์เซ็นต์เท่านั้น สำหรับการปรับระดับการสึกหรอแบบละเอียด อัลกอริธึมจะทำงานได้ดีขึ้นอย่างมาก แต่ยังคงเปิดโอกาสให้มีการปรับปรุงต่อไปได้ นอกจากนี้ ความทนทานที่ได้รับจะแตกต่างกันไปตามการใช้งานการวัดประสิทธิภาพที่แตกต่างกัน
เกณฑ์มาตรฐาน Rijndael บรรลุผลลัพธ์ที่แย่ที่สุดเนื่องจากอัลกอริธึมของเราจัดการไม่ถูกต้อง แม้ว่าค่าใช้จ่ายสำหรับการกำหนดค่าการปรับระดับการสึกหรอต่างๆ จะรวมอยู่ในตัวบ่งชี้ LI โดยปริยาย แต่ค่าใช้จ่ายดังกล่าวเป็นจำนวนการเข้าถึงหน่วยความจำเพิ่มเติมเนื่องจากการปรับระดับการสึกหรอสามารถ จะถูกสอบสวนด้วยตัวเอง เมื่อพิจารณาแอพพลิเคชั่นที่คำนึงถึงประสิทธิภาพ ปริมาณการเข้าถึงหน่วยความจำเพิ่มเติมจะเป็นปัจจัยสำคัญที่ทำให้ประสิทธิภาพลดลง
เราคำนวณค่าใช้จ่ายโดยการเปรียบเทียบจำนวนหน่วยความจำทั้งหมดที่เข้าถึงจากการจำลองที่มีการปรับระดับการสึกหรอกับการจำลองพื้นฐานโดยไม่มีการปรับระดับการสึกหรอ เมื่อพิจารณาเฉพาะการเข้าถึงเพื่ออ่าน สิ่งนี้จะส่งผลให้เกิดโอเวอร์เฮดการอ่าน (RO) สำหรับการเข้าถึงการเขียนในโอเวอร์เฮดการเขียน (WO) และสำหรับทั้งสองประเภทการเข้าถึงรวมกันในโอเวอร์เฮดการอ่าน-เขียน (RWO)

ตารางที่ 2 มีค่าใช้จ่ายที่เกิดขึ้นสำหรับสถานการณ์การปรับระดับการสึกหรอต่างๆ จะเห็นได้ว่าสำหรับการปรับระดับการสึกหรอแบบหยาบเท่านั้น ประเภทเหนือศีรษะทั้งหมดจะอยู่ที่ไม่กี่เปอร์เซ็นต์ เมื่อใช้การปรับระดับการสึกหรอแบบละเอียด จะเห็นได้ว่าผลลัพธ์ของการปรับระดับการสึกหรอนั้นขึ้นอยู่กับการใช้งานที่วิเคราะห์ ตัวอย่างเช่น สำหรับ Rijndael การปล่อยให้มีค่าใช้จ่ายจำนวนมากในการปรับระดับการสึกหรอไม่ได้ทำให้อายุการใช้งานของหน่วยความจำเพิ่มขึ้นอย่างมีนัยสำคัญ ซึ่งสามารถอธิบายได้ด้วยข้อเท็จจริงที่ว่าการปรับระดับการสึกหรอไม่ได้กำหนดเป้าหมายการเข้าถึงหน่วยความจำประเภทนี้ได้ดี
พื้นที่หน่วยความจำที่มีการเข้าถึงอย่างหนาแน่นบางส่วนยังคงไม่อยู่ในระดับการสึกหรอ อย่างไรก็ตาม จากการตรวจสอบเกณฑ์มาตรฐานที่การปรับระดับการสึกหรอสามารถบรรลุอายุการใช้งานหน่วยความจำที่ดีขึ้น ค่าใช้จ่ายจะสูงถึง 300% กล่าวคือ ด้วยการปรับระดับการสึกหรอ การเข้าถึงหน่วยความจำจำนวนมากโดยไม่ต้องปรับระดับการสึกหรอถึงสี่เท่า
สำหรับการตีความผลลัพธ์นี้ ควรพิจารณาว่าค่าโสหุ้ยสามารถปรับได้โดยพารามิเตอร์การกำหนดค่าตามต้นทุนของผลการปรับระดับการสึกหรอ อย่างไรก็ตาม หากแอปพลิเคชันไม่คำนึงถึงประสิทธิภาพ ค่าใช้จ่ายจำนวนมากดังกล่าวอาจยังมีนัยสำคัญอยู่ อายุการใช้งานหน่วยความจำยังคงเพิ่มขึ้นอีกประมาณ 200 เท่า
ค่าใช้จ่ายรันไทม์ของอัลกอริธึมการปรับระดับการสึกหรอของเราเป็นตัวบ่งชี้ที่สำคัญสำหรับการใช้งานจริง การเข้าถึงหน่วยความจำเพิ่มเติมไม่เพียงแต่ต้องใช้เวลามากขึ้นในการดำเนินการเท่านั้น แต่ยังรวมถึงการดำเนินการประมาณการเข้าถึงและการตัดสินใจเกี่ยวกับระดับการสึกหรอต้องใช้เวลาในการคำนวณเพิ่มเติมอีกด้วย เพื่อวิเคราะห์ค่าใช้จ่ายนี้ เราจะเปรียบเทียบรอบระบบที่ต้องการทั้งหมดสำหรับการกำหนดค่าพื้นฐานและการกำหนดค่าที่มีการปรับระดับการสึกหรอที่เปิดใช้งาน การเพิ่มขึ้นสัมพัทธ์ถูกรายงานไว้ในตารางที่ 3
สังเกตได้ว่าวิธีการปรับระดับการสึกหรอแบบละเอียดโดยทั่วไปทำให้เกิดค่าใช้จ่ายรันไทม์ที่สูงกว่าวิธีแบบหยาบ การปรับระดับการสึกหรอในการอ่านต้องใช้เวลาดำเนินการเพิ่มเติมมากกว่าการปรับระดับการสึกหรอในการเขียน นอกจากนี้ จะเห็นได้ว่าค่าโสหุ้ยด้านเวลาแตกต่างกันอย่างมากสำหรับแอปพลิเคชันการวัดประสิทธิภาพที่แตกต่างกัน
ตัวอย่างเช่น crc32 ต้องเผชิญกับค่าใช้จ่ายสูงสุด 32% ในขณะที่ Rijndael ต้องเผชิญกับเวลาดำเนินการที่เพิ่มขึ้นเกือบเจ็ดเท่า ควรสังเกตว่าค่าใช้จ่ายด้านเวลาสามารถกำหนดค่าได้โดยการปรับแต่งความถี่ของการดำเนินการปรับระดับการสึกหรอ อย่างไรก็ตาม หากประสิทธิภาพลดลงในแง่ของเวลาดำเนินการเกือบสองเท่าที่เป็นไปได้ แอปพลิเคชันวัดประสิทธิภาพส่วนใหญ่สามารถปรับระดับการสึกหรอได้โดยใช้โซลูชันที่จัดการโดยซอฟต์แวร์
8 บทสรุป
ในงานนี้ เรากำหนดเป้าหมายระบบคอมพิวเตอร์ที่ติดตั้ง NVM เป็นหน่วยความจำหลัก เราแยกแยะกรณีต่างๆ ในหน่วยความจำนี้ว่าไม่ทำลายการอ่านหรือทำลายการอ่าน เราเสนอการปรับระดับการสึกหรอที่จัดการโดยซอฟต์แวร์เพื่อปรับปรุงอายุการใช้งานของระบบดังกล่าว เนื่องจากความทนทานต่อเซลล์ต่ำอาจทำให้อายุการใช้งานลดลงอย่างรุนแรง
สำหรับระบบประเภทเดิม เราจะพิจารณาการเข้าถึงการเขียนเพื่อกำหนดอายุปัจจุบันของหน่วยความจำและดำเนินการตามการดำเนินการปรับระดับการสึกหรอ และสำหรับกรณีหลัง เราจะพิจารณาการเข้าถึงการเขียนและการอ่านอย่างเท่าเทียมกัน เนื่องจากทั้งสองเน้นที่หน่วยความจำเท่ากัน ในการดำเนินการปรับระดับการสึกหรอโดยคำนึงถึงอายุ (เช่น อายุหน่วยความจำปัจจุบันจะถูกตรวจสอบสำหรับการตัดสินใจปรับระดับการสึกหรอแต่ละครั้ง) ในระหว่างรันไทม์ เราขอเสนอการประมาณรันไทม์ทั่วไปของการเข้าถึงการเขียนและอ่านที่ไม่ต้องอาศัยฮาร์ดแวร์พิเศษหรือความสามารถในการแก้ไขจุดบกพร่อง
การประมาณนี้จะถูกป้อนเข้าสู่อัลกอริธึมการปรับระดับการสึกหรอซึ่งจะสลับหน้าหน่วยความจำตามอายุที่ประมาณไว้ เนื่องจากแอปพลิเคชันจำนวนมากต้องการการปรับระดับการสึกหรอเพิ่มเติมในรายละเอียดที่ละเอียด เราจึงเสนอกลไกการปรับระดับการสึกหรอแบบละเอียดอีก 2 กลไก โดยที่เรากำหนดเป้าหมายไปที่สแต็กและภูมิภาคข้อความโดยเฉพาะ
โซลูชันเฉพาะเหล่านี้ยังทำงานโดยไม่มีฮาร์ดแวร์พิเศษหรือข้อกำหนดระบบพิเศษใดๆ ดังนั้นจึงได้รับการจัดการด้วยซอฟต์แวร์ โซลูชันเฉพาะสำหรับเซ็กเมนต์ข้อความจะถูกเรียกใช้สำหรับ NVM แบบทำลายการอ่านเท่านั้น เนื่องจากเซ็กเมนต์ข้อความเท่านั้นที่ตกเป็นเป้าหมายของการเข้าถึงเพื่ออ่าน การประเมินของเราเปรียบเทียบอายุการใช้งานหน่วยความจำสุดท้ายหลังจากใช้อัลกอริธึมของเรากับอายุการใช้งานหน่วยความจำของการดำเนินการพื้นฐานของแอปพลิเคชันการวัดประสิทธิภาพบางอย่าง สำหรับ NVM ที่ไม่อ่านทำลาย เราสามารถยืดอายุการใช้งานได้สูงสุดถึง 955× และสำหรับ NVM แบบอ่านทำลาย เราสามารถปรับปรุงได้สูงสุดถึง 418×
แม้ว่าตัวเลขเหล่านี้จะขึ้นอยู่กับพฤติกรรมหน่วยความจำของการดำเนินการพื้นฐานของแอปพลิเคชันเฉพาะ แต่เราบรรลุ 40% ของการปรับระดับการสึกหรอในอุดมคติสำหรับ NVM ที่ไม่ทำลายการอ่าน และ 20% ของ NVM ของการปรับระดับการสึกหรอในอุดมคติสำหรับการอ่านและทำลาย ข้อบกพร่องสำคัญที่ทำให้เกิดสิ่งนี้คือรูปแบบการเข้าถึงหน่วยความจำที่วิธีการของเราไม่ได้จัดการอย่างชัดเจน
9 แนวโน้ม
ตามที่การประเมินของเราชี้ให้เห็น เราบรรลุการปรับปรุงที่เหมาะสมในช่วงอายุการใช้งานของหน่วยความจำโดยการใช้อัลกอริธึมของเราตามนั้น อย่างไรก็ตาม เราไม่สามารถปรับระดับการสึกหรอในอุดมคติได้ (ระบุโดยความทนทานที่ได้รับ (AE))

กล่าวอีกนัยหนึ่ง อัลกอริธึมของเราอาจได้รับการปรับปรุงเพิ่มเติมเพื่อให้สามารถปรับระดับการสึกหรอได้ดีขึ้นในทุกสถานการณ์ ดังที่สังเกตได้จากการวัดประสิทธิภาพ Dijkstra ส่วนข้อมูลและ BSS จำเป็นต้องมีการปรับระดับการสึกหรอเฉพาะในบางกรณีเช่นกัน นอกจากนี้ โซลูชันเฉพาะสำหรับส่วนข้อความไม่สามารถแก้ไขฮอตสปอตการเข้าถึงใน GOT และ PLT เราตั้งใจที่จะปรับปรุงข้อบกพร่องเหล่านี้ในการทำงานในอนาคต
ข้อมูลอ้างอิง
[1] โฮดา อาเฮย คูซานี, หยวน เสวี่ย, เฉิงโม หยาง และอาชานา ปันดูรางี 2014. การยืดอายุการใช้งาน PCM ผ่านการจัดสรรเพจที่ประหยัดพลังงาน รับรู้การแบ่งส่วน และทนทานต่อการสึกหรอ ในการประชุมวิชาการระดับนานาชาติด้านอิเล็กทรอนิกส์และการออกแบบพลังงานต่ำประจำปี 2014 (ISLPED'14) พลอากาศเอก นิวยอร์ก นิวยอร์ก 327–330https://doi.org/10.1145/2627369.2627667
[2] Chi-Hao Chen, Pi-Cheng Hsiu, Tei-Wei Kuo, Chia-Lin Yang และ Cheng-Yuan Michael Wang 2012. PCM สวมใส่ตามอายุโดยแทบไม่ต้องเสียค่าใช้จ่ายในการค้นหา ใน รายงานการประชุม Design Automation Conference ประจำปีครั้งที่ 49 (DAC'12).ACM, New York, NY, 453–458 https://doi.org/10.1145/2228360.2228439[3] ซังยอน โช และ ฮยอนจิน ลี 2552 Flip-N-Write: เทคนิคเชิงกำหนดง่ายๆ เพื่อปรับปรุงประสิทธิภาพการเขียน พลังงาน และความทนทานของ PRAM ในการดำเนินการของการประชุมสัมมนานานาชาติ IEEE/ACM ประจำปีครั้งที่ 42 เกี่ยวกับสถาปัตยกรรมไมโคร (MICRO'09) พลอากาศเอก นิวยอร์ก นิวยอร์ก 347–357https://doi.org/10.1145/1669112.1669157
[4] Jianbo Dong, Lei Zhang, Yinhe Han, Ying Wang และ Xiaowei Li 2554. การปรับระดับอัตราการสึกหรอ: การเพิ่มประสิทธิภาพตลอดอายุการใช้งานของรถเข็นเด็กพร้อมการเปลี่ยนแปลงด้านความทนทาน ในการประชุม Design Automation Conference ครั้งที่ 48 พลอากาศเอก, นิวยอร์ก, นิวยอร์ก, 972–977
(5) Alexandre P. Ferreira, Miao Zhou, Santiago Bock, Bruce Childers, Rami Melhem และ Daniel Mossé 2010. การเพิ่มอายุการใช้งานหน่วยความจำหลัก PCM ในการดำเนินการประชุมว่าด้วยการออกแบบ ระบบอัตโนมัติ และการทดสอบในยุโรป (วันที่ 10) 914–919http://dl.acm.org/citation.cfm?id=1870926.1871147
[6] Vaibhav Gogte, William Wang, Stephan Diestelhorst, Aasheesh Kolli, Peter M. Chen, Satish Narayanasamy และ Thomas F. Wenisch 2019. การจัดการการสึกหรอของซอฟต์แวร์สำหรับความทรงจำถาวร ในการประชุม USENIX Conference on File and Storage Technologies ครั้งที่ 17 (FAST'19) 45–63.https://www.usenix.org/conference/fast19/presentation/gogte
[7] วิลเลียม โกห์ และแอนเดรียส ดานเนนเบิร์ก 2014 เทคโนโลยี MSP430 FRAM - วิธีการและแนวทางปฏิบัติที่ดีที่สุด รายงานทางเทคนิค SLAA628 เท็กซัส อินสทรูเมนท์ส.https://www.ti.com/lit/an/slaa628a/slaa628a.pdf?ts=1609843980784&ref_url=https253A252F252Fwww.ti.com252Fproduct252FMSP430FR5989-EP.
[8] MR Guthaus, JS Ringenberg, D. Ernst, TM Austin, T. Mudge และ RB Brown 2001. MiBench: ชุดเบนช์มาร์กแบบฝังที่เป็นตัวแทนเชิงพาณิชย์ฟรี ในการดำเนินการของการประชุมเชิงปฏิบัติการนานาชาติ IEEE ปี 2001 เกี่ยวกับลักษณะปริมาณงาน (WWC'01) IEEE, ลอสอลามิตอส, แคลิฟอร์เนีย, 3–14https://doi.org/10.1109/WWC.2001.15
[9] Christian Hakert, Kuan-Hsun Chen, Paul R. Genssler, Georg Brüggen, Lars Bauer, Hussam Amrouch, Jian-Jia Chen และ Jörg Henkel 2020 SoftWear: การปรับระดับการสึกหรอในหน่วยความจำในซอฟต์แวร์เท่านั้นสำหรับหน่วยความจำหลักที่ไม่ลบเลือน CoRRabs/2004.03244 (2020)https://arxiv.org/pdf/2004.03244.pdf.
[10] Christian Hakert, Kuan-Hsun Chen, Mikail Yayla, Georg von der Brüggen, Sebastian Bloemeke และ Jian-Jia Chen2020 สภาพแวดล้อมการวิเคราะห์หน่วยความจำที่ใช้ซอฟต์แวร์สำหรับการปรับระดับการสึกหรอในหน่วยความจำ ในการประชุมการประชุม Design Automation Conference ภูมิภาคเอเชียและแปซิฟิกใต้ ครั้งที่ 25 (ASP-DAC'20)
[11] Y. Han, J. Dong, K. Weng, Y. Wang และ X. Li. 2016 การปรับระดับอัตราการสึกหรอที่ดีขึ้นสำหรับการปรับปรุงอายุการใช้งานของ PRAM โดยคำนึงถึงความแปรผันของกระบวนการ ธุรกรรม IEEE บนระบบ Very Large Scale Integration (VLSI) 24, 1 (ม.ค. 2559), 92–102https://doi.org/10.1109/TVLSI.2015.2395415
[12] Kaixin Huang, Yijie Mei และ Linpeng Huang 2020. นกกระทา: การใช้ตัวตรวจสอบการเขียน NVM เพื่อเปิดใช้งานการปรับระดับการสึกหรอแบบโปร่งใส วารสารสถาปัตยกรรมระบบ 102 (2020), 101658
For more information:1950477648nn@gmail.com






