next up previous contents index
Next: การประเมินประสิทธิภาพจริงของคอมพิวเตอร์ Up: ประสิทธิภาพของตัวประมวลผล และองค์ประกอบอื่นๆ Previous: การใช้ชุดสมการประสิทธิภาพ   Contents   Index

การเปรียบเทียบการทำงานของโปรแกรม

นักออกแบบคอมไพเลอร์ทดสอบโปรแกรมสองโปรแกรมบนคอมพิวเตอร์เครื่องหนึ่งโดยผู้ออกแบบฮาร์ดแวร์ได้ให้ข้อมูลดังต่อไปนี้

CPI for this instruction class
A B C
CPI 1 2 3

จากโปรแกรมภาษาระดับสูง นักออกแบบคอมไพเลอร์ได้หาจำนวนคำสั่งสำหรับโปรแกรมทั้งสองได้ดังต่อไปนี้

CPI for this instruction class
Code Sequence A B C
1 2 1 2
2 4 1 1

จงตอบคำถามต่อไปนี้

  1. โปรแกรมใด ทำงานที่จำนวนคำสั่งมากกว่า
  2. โปรแกรมใดเร็วกว่า
  3. CPI ของแต่ละโปรแกรมมีค่าเท่าใด

โปรแกรม 1 ประมวลผล $2+1+2 =5 $ คำสั่ง โปรแกรม 2 ประมวลผล $4+1+1 =6 $ คำสั่ง ฉะนั้น โปรแกรมหนึ่ง ประมวลผลคำสั่งเป็นจำนวนน้อยกว่า

จากสมการคำนวณ CPU Clock Cycles จะได้


\begin{displaymath}
CPU Clock Cycles = \sum^n_{i=1}(CPI_i\times C_i)
\end{displaymath} (4.18)

ซึ่งจะได้


\begin{displaymath}
CPU Clock Cycles_1 = (2\times 1) + (1\times 2) + (2\times 3) = 2 + 2 + 6 = 10 cycles
\end{displaymath} (4.19)


\begin{displaymath}
CPU Clock Cycles = (4\times 1) + (1\times 2) + (1\times 3) = 4 + 2 + 3 = 9 cycles
\end{displaymath} (4.20)

จะพบว่าโปรแกรม 2 ทำงานเร็วกว่า ถึงแม้ว่าจะทำงานที่จำนวนคำสั่งมากกว่า ค่า CPI สามารถคำนวณได้จาก


$\displaystyle CPI$ $\textstyle =$ $\displaystyle \frac{CPU clock cycles}{Instruction count}$ (4.21)
$\displaystyle CPI_1$ $\textstyle =$ $\displaystyle \frac{CPU clock cycles_1}{Instruction count_2} = \frac{10}{5} = 2$ (4.22)
$\displaystyle CPI_2$ $\textstyle =$ $\displaystyle \frac{CPU clock cycles_2}{Instruction count_2} = \frac{9}{6} = 1.5$ (4.23)

จากตัวอย่างขั้นต้นจะเห็นว่าเราไม่สามารถใช้ตัววัดตัวเดียวในการประเมินประสิทธิภาพได้


next up previous contents index
Next: การประเมินประสิทธิภาพจริงของคอมพิวเตอร์ Up: ประสิทธิภาพของตัวประมวลผล และองค์ประกอบอื่นๆ Previous: การใช้ชุดสมการประสิทธิภาพ   Contents   Index
Vara Varavithya 2006-11-06