ข้อมูลเบื้องต้นเกี่ยวกับ MPACT-Sim

MPACT-Sim เป็นเฟรมเวิร์กและไลบรารีที่ออกแบบมาเพื่อช่วยให้สร้างเครื่องจำลอง ISA ประสิทธิภาพสูงสำหรับสถาปัตยกรรมของชุดคำสั่งต่างๆ ได้ง่ายขึ้น เครื่องจำลองที่สร้างโดยใช้ MPACT-Sim สามารถสร้างได้ง่าย ใช้งานง่าย และรวดเร็ว กรณีการใช้งานที่เป็นแรงจูงใจของ MPACT-Sim คือการสร้างเครื่องมือจำลองการสำรวจทางสถาปัตยกรรม (ชุดคำสั่ง) อย่างรวดเร็วและแก้ไขได้อย่างง่ายดาย อย่างไรก็ตาม เครื่องจำลองที่ได้ยังใช้สำหรับการสร้างโมเดลระบบ การตรวจสอบคอมไพเลอร์ หรือการพัฒนาซอฟต์แวร์สำหรับสถาปัตยกรรมที่ไม่มี (หรือถูกจำกัด) ฮาร์ดแวร์

MPACT-Sim ช่วยให้แสดงและใช้ความหมายการสอนในรูปแบบ C++ ฟังก์ชัน/การเรียก นอกจากนี้ MPACT-Sim ยังมีวิธีการเชิงประกาศสำหรับแสดงวิธีเปิดใช้การสร้างเครื่องมือถอดรหัสคำสั่งส่วนใหญ่โดยอัตโนมัติ ซึ่งจะเพิ่มความสะดวกและอัตราความเร็วของการสร้างเครื่องจำลองใหม่ เพิ่มรายการการกำหนดค่าที่กำหนดเองได้อย่างง่ายดาย และเครื่องมือจำลองผลลัพธ์จะใช้เครื่องมือได้ง่ายเมื่อใช้ชุดคลาสมาตรฐาน

บทแนะนำ

บทแนะนำต่อไปนี้จะให้คำแนะนำแบบทีละขั้นในการสร้างโปรแกรมจำลอง ISA สำหรับวิธีการของ RiscV บางส่วนที่เพียงพอสำหรับการดำเนินการแอปพลิเคชัน "helloworld" ที่มีการคอมไพล์สำหรับชุดย่อยของสถาปัตยกรรม RV32I โดยจะครอบคลุม กิจกรรมต่อไปนี้

  • เขียนคำอธิบายตัวถอดรหัส ISA สำหรับ RV32I

    ซึ่งอธิบายถึงวิธีการแต่ละแบบ โดยไม่ขึ้นอยู่กับตัวแทนภายนอก (การเข้ารหัส) คำอธิบายนี้ใช้เพื่อสร้างโค้ด C++ ที่เริ่มต้นข้อบ่งชี้วิธีการภายในของเครื่องจำลอง

  • เขียนคำอธิบายตัวถอดรหัสไบนารีสำหรับ RV32I

    ซึ่งอธิบายการเข้ารหัสแบบไบนารีของคำสั่ง ช่องบิต และค่า ซึ่งจะใช้ในการสร้างตัวถอดรหัสสำหรับคำแนะนำที่สามารถจับคู่คำวิธีการกับ opcode และดึงค่าของฟิลด์บิตที่เฉพาะเจาะจง

  • เขียนตัวถอดรหัสคำสั่งแบบผสานรวม (เต็มรูปแบบ) ที่ผสานรวมตัวถอดรหัส 2 ตัวเข้าด้วยกัน โดยเพิ่มโค้ดที่จำเป็นเพื่อให้ครอบคลุมสิ่งที่โค้ดที่สร้างขึ้นไม่ทำ

  • เขียนฟังก์ชันความหมายสำหรับวิธีการใช้งานคำสั่ง RV32I เป้าหมายแต่ละรายการ

การเขียนโค้ดที่เหลือที่จำเป็นต่อการทำงานเครื่องจำลอง ซึ่งรวมถึงปัญหาการควบคุมโค้ดนั้นไม่ครอบคลุมในบทแนะนำปัจจุบัน แต่อาจมีการเพิ่มในอนาคต แต่คุณดูโค้ดตัวอย่างได้ในที่เก็บบทแนะนำ รวมถึงดูในที่เก็บสำหรับ[เครื่องมือจำลอง MPACT-RiscV]https://github.com/mpact-riscv แบบเต็มได้

โครงสร้างพื้นฐานของเครื่องจำลองเขียนด้วย C++ ดังนั้น เราจึงถือว่าคุณมีความรู้ในการใช้งาน C++ เป็นอย่างดี