ตัวอย่างการออกแบบมัลติโปรเซสเซอร์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มัลติโปรเซสเซอร์ โปรดดูบทช่วยสอนที่กล่าวถึงข้างต้น
แผนภาพบล็อก
ดาวน์โหลดไฟล์ที่ใช้ในตัวอย่างนี้:
ไฟล์.zipประกอบด้วยไฟล์ฮาร์ดแวร์และซอฟต์แวร์ที่จําเป็นทั้งหมดเพื่อทําซ้ําตัวอย่างนี้รวมถึงไฟล์readme.txt
การใช้การออกแบบนี้อยู่ภายใต้และอยู่ภายใต้ข้อกําหนดและเงื่อนไขของข้อตกลงสิทธิ์การใช้งานตัวอย่างการออกแบบของ Intel