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

ทําไมฉันจึงอาจเห็นปัญหาการทํางานสอดคล้องกันกับแคชในการออกแบบ SoC เมื่อใช้งานเคอร์เนล Altera Linux

สิ่งแวดล้อม

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

เนื่องจาก Linux BSP เริ่มต้นไม่เปิดใช้งานแคชและการออกอากาศการบํารุงรักษา TLB (บิต0 ของการลงทะเบียน ACTLR เหลืออยู่ '0') ในโหมด SMP ปัญหาการทํางานร่วมกันแคชอาจพบเห็นได้

สําหรับคําอธิบายบิตนี้ โปรดดูที่ ส่วนที่ 1.7.3 การดําเนินการบํารุงรักษาที่แพร่ภาพใน ARM A9 MPCore Technical Reference Manual[2]:

โปรเซสเซอร์ทั้งหมดที่ทํางานในโหมด SMP บนโดเมนที่สอดคล้องกันเดียวกันสามารถส่งและรับการดําเนินการ TLB และ Cache Maintenance คู่มืออ้างอิงสถาปัตยกรรม ARM ให้ข้อมูลโดยละเอียดเกี่ยวกับการดําเนินการออกอากาศ โปรเซสเซอร์ Cortex-A9 ในคลัสเตอร์ A9-MP จะกระจายการดําเนินการบํารุงรักษาที่ออกอากาศได้เมื่อทํางานในโหมด SMP (ACTLR SMP=1) และเมื่อเปิดใช้งานการออกอากาศการดําเนินการบํารุงรักษา (ACTLR FW=1) โปรเซสเซอร์ Cortex-A9 สามารถรับและดําเนินการบํารุงรักษาการออกอากาศเมื่อทํางานในโหมด SMP, ACTLR SMP=1

ความละเอียด

ขอแนะนําให้ ตั้งค่า ทั้ง ACTLR FW และ ACTLR SMP ไปยัง 1 เราสามารถตั้งค่าบิตโดยการแก้ไขรหัส Linux ใน proc-v7 ไฟล์ S ดังนี้:

#ifdef CONFIG_SMP
ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
ALT_UP(mov r0, #(1 << 6)) @ ปลอมเพื่อ UP
tst r0, #(1 << 6) ที่เปิดใช้งานโหมด SMP/nAMP?
orreq r0, r0, #(1 << 6) @ เปิดใช้งานโหมด SMP/nAMP
orreq r0, r0, r10 @ เปิดใช้งานบิต SMP เฉพาะ CPU
orr r0, r0, #(1) @Addบรรทัดนี้เปิดใช้งาน ACTLR[0]
mcreq p15, 0, r0, c1, c0, 1
#endif

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

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

Cyclone® V FPGA และ SoC FPGA
Intel® Arria® 10 SX SoC FPGA

1

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