next up previous contents index
Next: การจัดการกับ Exception Up: โปรเซสเซอร์แบบทำงานหลายวงรอบ Previous: การแบ่งการประมวลผลออกเป็นส่วนๆ สำหรับการทำงานของโปรเซสเซอร์แบบหลายวงรอบสัญญาณนาฬิกา   Contents   Index


ค่า CPI ในโปรเซสเซอร์แบบหลายวงรอบสัญญาณนาฬิกา

ในการทดสอบประสิทธิภาพของโปรเซสเซอร์แบบหลายวงรอบสัญญาณนาฬิกา โดยใช้ SPECTINT2000 มีส่วนประกอบของคำสั่งดังต่อไปนี้ 25% load (1% load byte + 24% load word), 10% stores ((1% store byte + 9% store word), 11% branches (6% beq, 5% bne), 2% jumps (1% jal + 1%jr), และ 52% ALU จงคำนวณ CPI ของโปรเซสเซอร์แบบหลายวงรอบสัญญาณนาฬิกา

ในคำสั่งต่างๆ มีจำนวนวงรอบการทำงานดังต่อไปนี้

CPI สามารถแสดงได้โดย


$\displaystyle CPI$ $\textstyle =$ $\displaystyle \frac{CPU clock cycles}{Instruction Count} = \frac{\sum Instruction count_i \times CPI_i}{Instruction Count}$ (5.6)
  $\textstyle =$ $\displaystyle \sum \frac{Instruction Count_i}{Instruction Count} \times CPI_i$ (5.7)

โดยที่อัตราส่วน


\begin{displaymath}
\frac{Instruction Count_i}{Instruction Count}
\end{displaymath} (5.8)

เป็นความถี่ของคำสั่งสำหรับคำสั่งชุด $i$ เราสามารถแทนที่สมการได้

$CPI = 0.25\times 5 + 0.10\times 4 + 0.52 \times 4 + 0.11\times 3 + 0.02\times 3 = 4.12$

จะพบว่าค่า CPI ที่คำนวณได้ดีกว่า CPI สำหรับกรณีที่แย่ที่สุดคือ 5.0 ที่ทุกคำสั่งทำงานที่จำนวนวงรอบสัญญาณนาฬิกาเท่ากันทั้งหมด

การออกแบบชุดควบคุมโปรเซสเซอร์แบบหลายวงรอบการทำงานนั้น ทำโดยใชั Finite State Machine ซึ่งผลลัพธ์ของวงจรดังกล่าวเป็นการทำงานที่ใช้สถานะของวงจรประกอบในการทำงาน ที่ซึ่งผลของสถานะปัจจุบัน จะขึ้นอยู่กับสถานะการทำงานในวงรอบการทำงานที่แล้ว และสัญญาณอินพุทที่ป้อนเข้า โดยในที่นี้สัญญาณอินพุทคือ Opcode ที่ปรากฎในคำสั่งนั้นเอง รูป 5.31 แสดงการทำงานระดับสูงของการควบคุม Finite State Machine โดยการทำงานเริ่มจากการ Fetch คำสั่ง และแบ่งการทำงานออกเป็น 4 สาย เพื่อให้สามารถทำงานตามลักษณะต่างๆ ได้ซึ่งคำสั่งดังกล่าวไแบ่งเป็นกลุ่มได้แก่ Memory Access, R-Type, Branch, Jump

Figure 5.31: การทำงานระดับสูงของการควบคุม Finite State Machine
\includegraphics[width=5in]{fig/Chapter_5/Figure_5.31.eps}

จากรูป 5.32 แสดง Finite State Machine ที่นำมาใช้งานในชุดควบคุม

Figure 5.32: Finite State Machine ที่นำมาใช้งานในชุดควบคุม ที่เป็น Moore Machine
\includegraphics[width=5in]{fig/Chapter_5/Figure_5.37.eps}

รูป 5.33 แผนภูมิแสดงสถานะ (State Diagram) สำหรับชุดควบคุม ที่มีขั้นตอนดังต่อไปนี้

  1. Instruction Fetch
  2. Instruction Decode/ Register Fetch
  3. Execution ที่แบ่งออกเป็น 4 สายย่อย
    1. Memory address computation
    2. Execute R-Type
    3. Branch completion
    4. Jump completion
  4. Memory Access
    1. Memory Access (lw)
    2. Memory Access (sw)
    3. R-type completion
  5. Memory Read completion

Figure 5.33: แผนภูมิ State Diagram สำหรับชุดควบคุม
\includegraphics[width=5in]{fig/Chapter_5/Figure_5.38.eps}

next up previous contents index
Next: การจัดการกับ Exception Up: โปรเซสเซอร์แบบทำงานหลายวงรอบ Previous: การแบ่งการประมวลผลออกเป็นส่วนๆ สำหรับการทำงานของโปรเซสเซอร์แบบหลายวงรอบสัญญาณนาฬิกา   Contents   Index
Vara Varavithya 2006-11-06