แท็บ Processor

หัวใจของ Ripes — หน้าจอที่แสดงวงจร datapath ของ CPU พร้อมสถานะ register, pipeline และผลลัพธ์ในขณะที่โปรแกรมทำงาน

หน้าจอแท็บ Processor
หน้าจอแท็บ Processor — แสดงวงจร datapath, register และข้อมูลการทำงาน

ส่วนประกอบของหน้าจอ

แท็บ Processor มีพื้นที่ย่อย 4 ส่วนล้อมรอบ processor view:

หมายเลขชื่อหน้าที่
1Registers รายการ register ทั้งหมดของ CPU สามารถ คลิกค่าเพื่อแก้ไข ได้โดยตรง register ที่เพิ่งถูกแก้ไขจะถูก highlight ด้วยสีเหลือง
2Instruction memory แสดงคำสั่งของโปรแกรมที่กำลังรัน คอลัมน์ BP สำหรับตั้ง breakpoint, Addr สำหรับที่อยู่, Stage สำหรับขั้นของ pipeline ปัจจุบัน
3Statistics ค่าสถิติต่าง ๆ เช่นจำนวน cycle, จำนวน instruction ที่ retire แล้ว, CPI (cycles per instruction)
4Output ข้อความที่โปรแกรมพิมพ์ออกผ่าน ecall จะปรากฏที่นี่

การอ่านสัญญาณใน Datapath

Ripes แสดงสถานะการทำงานของวงจรผ่านหลายวิธี:

การดูค่าของสัญญาณ ณ จุดใด ๆ

มี 2 วิธีหลัก:

Tooltip แสดงค่าสัญญาณ
วิธีที่ 1 — เลื่อนเมาส์ไปวางบน port จะแสดง tooltip บอกชื่อและค่าปัจจุบัน
Label ติดอยู่กับ port
วิธีที่ 2 — กดปุ่ม "Display signal values" หรือคลิกขวาที่ port แล้วเลือก "show value" เพื่อปักหมุดป้ายค่าไว้
เคล็ดลับ
  • กด Ctrl + Scroll (Mac: Cmd + Scroll) เพื่อ zoom เข้า/ออก
  • คลิกที่เส้นสายเพื่อ highlight ทั้งเส้น ช่วยให้เห็นเส้นทางสัญญาณในวงจรซับซ้อนได้ชัดเจน
  • คลิกขวาที่ป้ายค่าเพื่อเปลี่ยนเลขฐาน (hex, decimal, binary)

ปุ่มควบคุม Simulator

แถบเครื่องมือด้านบนของหน้าจอมีปุ่มควบคุมที่สำคัญ:

ปุ่มหน้าที่
Select Processorเปิด dialog เลือก CPU model
Resetรีเซตทุกอย่างให้กลับสู่สถานะเริ่มต้น (PC = entry point, memory = ค่าเริ่มต้น)
Reverseย้อนกลับ 1 clock cycle (มีประโยชน์มาก!)
Clockทำงาน 1 clock cycle ทีละก้าว
Auto-clockรันอัตโนมัติด้วยความถี่ที่กำหนด หยุดเมื่อพบ breakpoint
Runรันโปรแกรมจนจบ ไม่อัปเดต GUI เพื่อความเร็วสูงสุด เหมาะกับงาน profiling
Show stage tableแสดงตาราง pipeline stage แต่ละ cycle
ข้อสังเกต ขณะใช้ Run ข้อมูล stage table จะ ไม่ ถูกบันทึก ถ้าต้องการดูตาราง pipeline ให้ใช้ Clock หรือ Auto-clock แทน

การอ่าน Pipeline Stage Table

ตาราง pipeline stage
ตารางแสดงว่า instruction ใดอยู่ใน stage ใดของแต่ละ cycle

ตารางนี้แสดงว่าในแต่ละ clock cycle, instruction แต่ละตัวอยู่ใน pipeline stage ไหน:

Pipeline stall
ตัวอย่าง load-use hazard ทำให้ stage ID ถูก stall 1 cycle

การเลือก Processor Model

หน้าจอเลือก processor
Dialog การเลือก CPU และตั้งค่า initial register values

Ripes มี CPU model ให้เลือกศึกษา 5 รุ่น โดยซับซ้อนขึ้นเรื่อย ๆ:

Modelลักษณะเหมาะกับ
Single Cycle 1 instruction ใช้ 1 cycle ทำได้ทุก stage ในรอบเดียว การเรียนรู้พื้นฐาน datapath
5-Stage w/o Forwarding & Hazard Detection Pipeline แต่ไม่มีการจัดการ hazard เลย เห็นปัญหา data hazard ชัดเจน
5-Stage w/o Hazard Detection มี forwarding แต่ไม่มี hazard detection เห็นข้อจำกัดของ forwarding
5-Stage Processor Pipeline สมบูรณ์: forwarding + hazard detection มาตรฐานสำหรับวิชา CompArch
6-Stage Dual-issue Pipeline 6 stage รัน 2 instruction พร้อมกัน ศึกษา superscalar เบื้องต้น

การปรับแต่ง Processor

Extended layout
Extended layout ของ 5-stage processor — เห็น control signal ครบ