ตัวอย่างการออกแบบNios® IIมัลติโปรเซสเซอร์

แนะนําสําหรับ:

  • อุปกรณ์: Cyclone® III

  • Quartus®: ไม่ทราบ

author-image

โดย

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

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

สร้างขึ้นด้วย Qsys การออกแบบฮาร์ดแวร์ตามลําดับชั้นจะมอบโปรเซสเซอร์ห้าตัวเพื่อใช้งานนักปรัชญ์การรับประทานอาหาร 5 คนและ Mutexes ฮาร์ดแวร์ห้าตัวเพื่อปรับใช้งานตะเกียบทั้งห้าตัว โปรเซสเซอร์ Nios II ตัวที่หกและ RAM บนชิปอยู่ในระดับสูงสุด พร้อมกับ JTAG UART และตัวจับเวลา แต่ละระบบย่อยทั้งห้าจะแชร์ RAM บนชิประดับสูงสุดและมีโปรเซสเซอร์Nios II JTAG UART, ตัวจับเวลา และ Mutex ซึ่งเป็นอุปกรณ์ต่อพ่วงฮาร์ดแวร์ที่ให้โปรเซสเซอร์ที่มีการประสานงานเฉพาะร่วมกัน บริดจ์ไปป์ไลน์ Avalon® Memory-Mapped (Avalon-MM) ช่วยให้สามารถสื่อสารระหว่างระบบย่อยและส่วนประกอบระดับสูง และระหว่างโปรเซสเซอร์และ Mutexes ที่อยู่ในระบบย่อยที่ติดกันทางตรรกะที่เชื่อมต่อกันในวงแหวน

ซอฟต์แวร์ dining_philosophers.c ทํางานบนโปรเซสเซอร์ระบบย่อยทั้งห้าตัวโดยปรับใช้กระบวนการคิด การกิน และตะเกียบในการเข้าซื้อและเผยแพร่ โปรเซสเซอร์ระดับบนสุดจะดําเนินการ philosophers_monitor.cโดยยอมรับคําสั่งตัวเลขเพื่อรับ mutex ใดๆ ซึ่งจะช่วยป้องกันไม่ให้ทั้งโปรเซสเซอร์ "philosopher" ติดกับการรับประทานอาหารจนกว่า Mutex "chopstick" จะถูกปล่อยออกมา

ข้อมูลจําเพาะการออกแบบฮาร์ดแวร์

  • การสนับสนุนบอร์ด
    • บอร์ดพัฒนาFPGA Cyclone® III 3C120
  • คอร์โปรเซสเซอร์ Nios II/f เปิดใช้งานการดีบักพร้อมแคชคําสั่ง 4 KB และแคชข้อมูล 2-KB: 6
  • ตัวจับเวลาของระบบ: 6
  • RAM บนชิป: 64 KB
  • อุปกรณ์ต่อพ่วง JTAG UART: 6
  • อุปกรณ์ต่อพ่วง Mutex: 5
  • อุปกรณ์ต่อพ่วง ID ระบบ: 1

ตัวอย่างการออกแบบนี้อิงตามระบบที่สร้างขึ้นใน บทช่วยสอนการสร้างมัลติโปรเซสเซอร์ Nios II Systems Tutorial (PDF) สําหรับข้อมูลรายละเอียดเกี่ยวกับการปรับใช้ระบบNios IIมัลติโปรเซสเซอร์ โปรดดูบทช่วยสอนที่กล่าวถึงข้างต้น

แผนภาพบล็อก

รูปภาพที่ 1 แผนผัง System Block Nios IIมัลติโปรเซสเซอร์แบบลําดับชั้น

ดาวน์โหลดไฟล์ที่ใช้ในตัวอย่างนี้:

ไฟล์.zipประกอบด้วยไฟล์ฮาร์ดแวร์และซอฟต์แวร์ที่จําเป็นทั้งหมดเพื่อทําซ้ําตัวอย่างนี้รวมถึงไฟล์readme.txt

การใช้การออกแบบนี้อยู่ภายใต้และอยู่ภายใต้ข้อกําหนดและเงื่อนไขของข้อตกลงสิทธิ์การใช้งานตัวอย่างการออกแบบของ Intel

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