วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ

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

วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ
/ บ้าน /PD

ดังที่ทราบกันดีว่าการเพิ่มประสิทธิภาพของ CPU สมัยใหม่ไม่ได้มาพร้อมกับเวลาแฝงที่ลดลงเมื่อเข้าถึงหน่วยความจำ ความแตกต่างของการเปลี่ยนแปลงตัวบ่งชี้ในแต่ละปีอาจสูงถึง 10 เท่า (PDF, หน้า 3). เป็นผลให้เกิดปัญหาคอขวดขึ้นซึ่งทำให้ไม่สามารถใช้ทรัพยากรที่มีอยู่ได้เต็มที่ และทำให้การประมวลผลข้อมูลช้าลง

ความเสียหายต่อประสิทธิภาพเกิดจากสิ่งที่เรียกว่าความล่าช้าในการบีบอัด ในบางกรณี การบีบอัดข้อมูลเพื่อเตรียมการอาจใช้เวลานานถึง 64 รอบของตัวประมวลผล

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

เทคโนโลยีทำงานอย่างไร

โซลูชันนี้ใช้เทคโนโลยีสามอย่าง: Hotpads, Zippads และอัลกอริธึมการบีบอัด COCO

Hotpads เป็นลำดับชั้นที่ควบคุมด้วยซอฟต์แวร์ของหน่วยความจำที่ลงทะเบียนความเร็วสูง (แผ่นรอยขีดข่วน). รีจิสเตอร์เหล่านี้เรียกว่าแผ่นอิเล็กโทรดและมีสามอัน - ตั้งแต่ L1 ถึง L3 โดยจะจัดเก็บออบเจ็กต์ที่มีขนาด ข้อมูลเมตา และอาร์เรย์ตัวชี้ที่แตกต่างกัน

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

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

วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ

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

ในการบีบอัดวัตถุจะใช้อัลกอริธึม COCO (Cross-Object Compression) ซึ่งเราจะหารือในภายหลังแม้ว่าระบบจะสามารถทำงานได้ก็ตาม ฐานเดลต้า-ทันที หรือ FPC. อัลกอริธึม COCO เป็นประเภทของการบีบอัดแบบดิฟเฟอเรนเชียล (การบีบอัดส่วนต่าง). มันเปรียบเทียบวัตถุกับ "ฐาน" และลบบิตที่ซ้ำกัน - ดูแผนภาพด้านล่าง:

วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ

ตามที่วิศวกรจาก MIT ระบุว่าลำดับชั้นของหน่วยความจำเชิงวัตถุมีประสิทธิภาพมากกว่าวิธีแบบคลาสสิกถึง 17% การออกแบบมีความใกล้เคียงกับสถาปัตยกรรมของแอปพลิเคชันสมัยใหม่มากขึ้น ดังนั้นวิธีการใหม่จึงมีศักยภาพ

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

แหล่งข้อมูลเพิ่มเติมและแหล่งข้อมูลเพิ่มเติมของเรา:

วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ “เราสร้าง IaaS ได้อย่างไร”: เนื้อหาเกี่ยวกับงานของ 1cloud

วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ วิวัฒนาการของสถาปัตยกรรมคลาวด์ 1cloud
วิธีการทำงานของการบีบอัดในสถาปัตยกรรมหน่วยความจำเชิงวัตถุ บริการจัดเก็บข้อมูลออบเจ็กต์ใน 1cloud

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

ที่มา: will.com

เพิ่มความคิดเห็น