กลไก IPC ใดที่มีอยู่สำหรับโปรเซสเซอร์มัลติคอร์ i.MX 7 (หรือ i.MX 6)


7

ฉันกำลังพิจารณาใช้โปรเซสเซอร์ i.MX 7 สำหรับการออกแบบใหม่ สถาปัตยกรรมโดยรวมดูเหมือนจะคล้ายกับ i.MX 6 อย่างน้อยจากการเปรียบเทียบไดอะแกรมบล็อก

มีกลไกอะไรสำหรับการสื่อสารระหว่างคอร์เท็กซ์ -M4 คอร์กับคอร์เทกซ์ -7 คอร์? เคอร์เนลลินุกซ์มีกลไกดังกล่าวหรือไม่ (ซึ่งน่าจะถือว่าเป็น RTOS หรือเฟิร์มแวร์เฉพาะที่ทำงานบน M4) หรือเป็นเฟิร์มแวร์ที่กำหนดเองนี้สำหรับโปรเซสเซอร์ทั้งสองในข้อเสนอของ Freescale หรือไม่? ตัวประมวลผลดูเหมือนจะแชร์ทุกอย่างสวยมากดังนั้นฉันจะจินตนาการว่าคุณสามารถใช้บัฟเฟอร์หน่วยความจำแบบแบ่งใช้กับเซมาฟอร์อะตอมหรืออะไรก็ตามที่อยู่ในบรรทัดเหล่านั้น

โดยหลักการแล้วฉันต้องการให้เฟิร์มแวร์ M4 "เข้าแทนที่" อุปกรณ์ต่อพ่วงบางส่วนในขณะที่โปรเซสเซอร์ A7 อยู่ในโหมดพลังงานต่ำ (เช่นจัดการการถ่ายโอนการสื่อสารเป็นระยะหรือการวิเคราะห์ข้อมูลบางอย่างจนกว่าจะมีบางสิ่ง "น่าสนใจ" เกิดขึ้น ) จากไดอะแกรมบล็อกและคู่มืออ้างอิง i.MX 6 SoloX ปรากฏว่าฮาร์ดแวร์ไม่ได้ดักคอสิ่งนี้

คำตอบ:


6

คำทั่วไปสำหรับระบบมัลติคอร์ที่ใช้เมล็ดที่แตกต่างกัน (หรือรหัสโลหะเปลือย) บนแกนที่แตกต่างกันคือการประมวลผลแบบมัลติซิงก์ แอมป์ ) คำศัพท์อื่น ๆ ที่เกี่ยวข้องคือ คอมพิวเตอร์ที่ต่างกัน ซึ่งอ้างอิงถึงหลายคอร์ของประเภทที่แตกต่างกันในระบบเดียวกันและ Multiprocessor System-on-Chip ( MPSoC )

Freescale เกิดขึ้นเพื่อมี เอกสารภาพรวม (PDF) หารือเกี่ยวกับคำศัพท์และปัญหาการออกแบบบางอย่างที่เกี่ยวข้องกับระบบดังกล่าวซึ่งอาจมีพื้นฐานที่ดีแม้ว่าจะมีการหารือเกี่ยวกับ OS (QNX) และสายผลิตภัณฑ์ (PowerPC) ที่แตกต่าง ชุดซอฟต์แวร์ฟรีที่กล่าวถึงบ่อยครั้งคือ Linux บนโปรเซสเซอร์และ FreeRTOS บนไมโครคอนโทรลเลอร์ ชิปที่มีอยู่จำนวนมากทั้งจาก Freescale และผู้ขายรายอื่นมีสถาปัตยกรรมที่คล้ายกับ i.MX7 เช่น TI OMAP 4/5 . นอกจากนี้ยังมีจำนวนมาก การอภิปรายและรหัสตัวอย่างสำหรับ AMP บนชิป Zynq ARM + FPGA ของ Xilinx

ตั้งแต่ปี 2012 เป็นต้นไปเคอร์เนล mainline Linux ได้รับการสนับสนุนเพิ่มเติม โปรเซสเซอร์ระยะไกล (remoteproc) และ ส่งข้อความโปรเซสเซอร์ระยะไกล (rpmsg) กรอบงาน remoteproc เป็นอินเทอร์เฟซทั่วไปสำหรับเคอร์เนล Linux เพื่อควบคุมคอร์ "รีโมต" (เปิด / ปิด, โหลดเฟิร์มแวร์) rpmsg เป็นอินเตอร์เฟสทั่วไปสำหรับการส่งข้อความระหว่างคอร์ หน้าเอกสารที่เชื่อมโยงนั้นมีรายละเอียด API ของตนและให้บริบทเพิ่มเติม นักพัฒนาจะต้องเขียนไดรเวอร์เคอร์เนล Linux เฉพาะแอปพลิเคชันที่กำหนดเองโดยใช้เฟรมเวิร์กนี้เพื่อแสดง I / O ไปยัง userspace แล้วต้องเขียนเช่นเฟิร์มแวร์ FreeRTOS ที่ "พูด" rpmsg กรอบ rpmsg โดยทั่วไปดูเหมือนว่าจะใช้หน่วยความจำที่ใช้ร่วมกันเพื่อใช้การสื่อสารระหว่างแกนจริง

หากไม่มีอยู่แล้วฉันถือว่า Freescale จะปล่อยเอกสารและตัวอย่างเฉพาะของ AMP ด้วย i.MX7 และ Linux คุณอาจต้องการจับตาดู ที่เก็บ git ของ Freescale Linux ขณะที่พวกเขาใช้การสนับสนุน i.MX7 สาขาเหล่านี้น่าจะถูกรวมเข้ากับการฉีดในเวลาที่กำหนด


ฉันสงสัยจริงๆว่านี่เป็นวิธีปฏิบัติที่ดีที่สุดสำหรับฮาร์ดแวร์เฉพาะนี้หรือไม่และมีทางเลือกอะไรอีกบ้าง โปรดอัปเดตหากคุณพบปัญหา (เช่นปริมาณงานหรือเวลาแฝง) หรือเรียนรู้เกี่ยวกับอินเทอร์เฟซที่ดีกว่า!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.