ID บทความ: 000081052 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 18/08/2014

ฉันต้องทําอย่างไร/ระวังเมื่ออัปเกรดซอฟต์แวร์จากโปรเซสเซอร์ Nios II Classic (Gen1) เป็น Nios II Gen2

สิ่งแวดล้อม

  • Intel® Quartus® II Subscription Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    Nios® IIโปรเซสเซอร์ Classic และ Nios II Gen2 เข้ากันได้กับไบนารี แต่มีการเปลี่ยนแปลงเล็กน้อยในฟังก์ชั่นHALและแคช จึงขอแนะนําให้ BSP และซอฟต์แวร์ถูกสร้างขึ้นใหม่ด้วยเครื่องมือ/ไลบรารีจากรุ่นล่าสุด (v14.0 ) และหากการกําหนดค่าโปรเซสเซอร์มีแคชข้อมูล ให้ตรวจสอบการใช้ธุรกรรมหน่วยความจําที่ไม่มีการแคชในซอฟต์แวร์ผู้ใช้ทั้งหมด

    ความละเอียด

    ภูมิภาคหน่วยความจําที่ไม่มีการแคช
    เมื่อโปรเซสเซอร์ที่มีแคชข้อมูลมีปัญหาในการอ่านและข้อมูลไม่ได้อยู่ในแคช แคชนั้นมักจะโหลดบล็อกขนาดเล็กหรือ "แถว" ของข้อมูลจากหน่วยความจําลงในแคช เมื่อโปรเซสเซอร์ออกการเขียน มักจะมีการจัดเก็บค่าใหม่ในแคชข้อมูล ด้วยแคชข้อมูลแบบเขียนกลับ (เช่น ในโปรเซสเซอร์ Nios II) ค่าข้อมูลใหม่จะถูกเขียนกลับไปยังตําแหน่งทางกายภาพจริงเมื่อมีการล้างแคชหรือข้อมูลถูกไล่ออกจากแคชเท่านั้น การทํางานประเภทนี้ไม่เป็นที่ยอมรับสําหรับภูมิภาคของหน่วยความจําที่ต้องเขียนข้อมูลไปยังฮาร์ดแวร์ทันทีเพื่อส่งผลกับฟังก์ชัน/การทํางานที่ต้องการ (เช่น หน่วยความจําที่ใช้ร่วมกันหรือการเขียนไปยังการลงทะเบียนการควบคุมอุปกรณ์ต่อพ่วง/ฮาร์ดแวร์) ซึ่งหมายความว่านักพัฒนาจําเป็นต้องล้างแคชทันที หรือใช้การทํางานหน่วยความจําที่ข้ามแคชและไปยังฮาร์ดแวร์ (แนะนํา) โดยตรง/ทันที บางครั้งอาจมีสาเหตุอื่นที่นักพัฒนาไม่ต้องการให้ข้อมูลถูกแคช (เช่น หากไม่มีการอ่านข้อมูลและ/หรือไม่ต้องการให้เผยข้อมูลอื่นจากแคชเพื่อประสิทธิภาพหรือเหตุผลอื่น)

    ด้วยการบายพาสแคชโปรเซสเซอร์ Nios II Classic สามารถทําได้โดยใช้คําแนะนําการอ่าน/เขียน I/O พิเศษ (เช่น ldwio/stwio) โดยการตั้งค่าบิต-31 ในที่อยู่หน่วยความจําของแอดเดรสการอ่าน/เขียน หรือโดยการใช้ MMU/MPU และตั้งค่าอย่างเหมาะสม (หมายเหตุ: ตัวเลือก MMU และ bit-31 เป็นตัวเลือกเฉพาะร่วมกัน)

    คอร์ Nios II Gen2 มีกลไกเดียวกันในการบายพาสแคช แต่การใช้งานจะแตกต่างกันเล็กน้อยและอาจมีปัญหากับการย้ายซอฟต์แวร์ Nios II Classic ไปยัง Nios II Gen2

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

    ในคอร์โปรเซสเซอร์ Nios II Gen2 ทรานแซคชันที่ไม่ได้รวมจะข้ามแคชข้อมูลและเนื้อหาแคชอย่างแท้จริง (แนวทางปฏิบัติมาตรฐานสําหรับโปรเซสเซอร์ส่วนใหญ่) หากพื้นที่หน่วยความจําที่ไม่ได้แคชแชร์แถวแคชกับภูมิภาคที่แคช ไว้ ภูมิภาคที่ไม่ได้แคชจะถูกแมปลงในแคช และอาจได้รับการอัปเดตด้วยข้อมูลเก่า/ขยะเมื่อล้างแคช นักพัฒนาต้องตรวจสอบให้แน่ใจว่าพื้นที่หน่วยความจําที่ไม่ได้แคชและไม่ได้แยกออกจากกันอย่างชัดเจนและไม่แชร์แคชเดียวกันเมื่อแมปเข้ากับแคช ซึ่งทําได้โดยการตรวจสอบให้แน่ใจว่าพื้นที่หน่วยความจําที่ไม่ได้แคชสอดคล้องกับขนาดของแถวแคชข้อมูล (32 ไบต์) และเป็นขนาดบรรทัดแคชข้อมูลตั้งแต่หนึ่งรายการขึ้นไป (หลายตัวที่ 32 ไบต์) ซึ่งจะช่วยป้องกันการผสมข้อมูลแบบแคชได้และไม่สามารถแคชได้บนแคชบรรทัดเดียวกัน และจึงเขียนข้อมูลเดิม/ข้อมูลที่ไม่ถูกต้อง แนวทางปฏิบัติด้านการออกแบบที่ดีแนะนําให้ใช้ที่อยู่พื้นฐานของชุดลงทะเบียนอุปกรณ์ต่อพ่วงสอดคล้องกับขอบเขตของแคชแคชและไดรเวอร์ใช้แคชบายพาสการอ่าน I/O คําสั่งเขียน - จึงไม่จําเป็นต้องแก้ไขไดรเวอร์ ซอฟต์แวร์อื่นๆ ที่ใช้แคชบายพาส/พื้นที่หน่วยความจําที่ไม่ได้แคชควรได้รับการตรวจสอบอย่างระมัดระวังเพื่อให้แน่ใจว่าบรรทัดแคชไม่ได้แมปกับภูมิภาคที่มีทั้งข้อมูลที่แคชและไม่มีการแคช

    หมายเหตุ: ซอฟต์แวร์ที่ใช้คุณสมบัติการบายพาสแคชบิต-31 จะไม่ทํางานอีกต่อไปหากเลือกตัวเลือกช่วงแอดรส Nios II Gen2 32 บิต ควรใช้คําสั่งข้ามแคชผ่าน I/O หรือภูมิภาคหน่วยความจําต่อพ่วงแทน

    คุณสมบัติใหม่
    นักพัฒนาควรพิจารณาถึงผลกระทบที่อาจเกิดขึ้นจากการใช้ช่วงแอดเดรส 32 บิตใหม่และตัวเลือกภูมิภาคของหน่วยความจําต่อพ่วงในกรณีที่มีการเปลี่ยนแปลงการกําหนดค่าฮาร์ดแวร์เพื่อใช้ ควรแก้ไขซอฟต์แวร์เพื่อรองรับคุณสมบัติเหล่านี้หรือตรวจจับและออกข้อความแสดงข้อผิดพลาด
    ซอฟต์แวร์ที่ใช้คุณสมบัติการบายพาสแคชบิต-31 จะไม่ทํางานอีกต่อไปหากเลือกตัวเลือกช่วงแอดรส Gen2 32 บิต ควรใช้คําสั่งข้ามแคชผ่าน I/O หรือบริเวณหน่วยความจําต่อพ่วงแทน

    หากตัวเลือก Nios II Classic ECC ได้รับการสนับสนุนในซอฟต์แวร์ดั้งเดิม จะต้องมีการขยายเพื่อรวมหน่วยความจําเพิ่มเติมที่โปรเซสเซอร์ Nios II Gen2 รองรับ

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

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