การแลกเปลี่ยนซอฟต์แวร์ฮาร์ดแวร์

มีหลายวิธีในการลดต้นทุนฮาร์ดแวร์ วิธีหนึ่งคือการรวมตัวช่วยการสื่อสารและเครือข่ายให้แน่นน้อยลงในโหนดการประมวลผลและเพิ่มเวลาแฝงในการสื่อสารและการเข้าพัก

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

โมเดลความสม่ำเสมอของหน่วยความจำที่ผ่อนคลาย

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

ข้อมูลจำเพาะของระบบ

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

ต่อไปนี้เป็นข้อมูลจำเพาะบางรุ่นที่ใช้การผ่อนคลายตามลำดับโปรแกรม -

  • Relaxing the Write-to-Read Program Order- คลาสของโมเดลนี้ช่วยให้ฮาร์ดแวร์สามารถระงับเวลาแฝงของการดำเนินการเขียนที่พลาดไปในหน่วยความจำแคชระดับแรก เมื่อการเขียนพลาดอยู่ในบัฟเฟอร์การเขียนและไม่สามารถมองเห็นได้สำหรับโปรเซสเซอร์อื่นโปรเซสเซอร์สามารถอ่านข้อมูลที่เข้าสู่หน่วยความจำแคชหรือแม้แต่การอ่านเพียงครั้งเดียวที่พลาดในหน่วยความจำแคช

  • Relaxing the Write-to-Read and Write-to-Write Program Orders- การอนุญาตให้เขียนเพื่อข้ามการเขียนที่ค้างก่อนหน้านี้ไปยังตำแหน่งต่างๆทำให้สามารถรวมการเขียนหลายรายการในบัฟเฟอร์การเขียนก่อนที่จะอัปเดตหน่วยความจำหลัก ดังนั้นการเขียนหลาย ๆ ครั้งจึงไม่สามารถซ้อนทับกันและมองไม่เห็นได้ แรงจูงใจคือการลดผลกระทบของเวลาแฝงในการเขียนต่อเวลาหยุดพักของโปรเซสเซอร์ให้น้อยที่สุดและเพื่อเพิ่มประสิทธิภาพการสื่อสารระหว่างโปรเซสเซอร์โดยการกำหนดค่าข้อมูลใหม่ให้โปรเซสเซอร์อื่นมองเห็นได้

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

อินเทอร์เฟซการเขียนโปรแกรม

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

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

กลไกการแปล

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

การเอาชนะข้อ จำกัด ด้านความจุ

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

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

แคชระดับตติยภูมิ

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

สถาปัตยกรรมหน่วยความจำแคชเท่านั้น (COMA)

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

ลดต้นทุนฮาร์ดแวร์

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

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

ผลกระทบสำหรับซอฟต์แวร์คู่ขนาน

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