next up previous contents index
Next: การหาร Up: การคูณ Previous: ฮาร์ดแวร์ของการคูณแบบลำดับ   Contents   Index

ตัวอย่างวิธีการคูณ

ทำการคูณเลข $2_{ten}\times 3_{ten}$ หรือ $0010_{two}\times 0011_{two}$

  Iteration Step Multiplier Multiplicand Product  
  0 Initial Values 0011 0000 0010 0000 0000  
  1 1a: 1->Product = Product + Mcant 0011 0000 0010 0000 0010  
  2: Shift left Multiplicand 0011 0000 0100 0000 0010  
  3: Shift right Multiplier 0001 0000 0100 0000 0010  
  2 1a: 1->Product = Product + Mcant 0001 0000 0010 0000 0110  
  2: Shift left Multiplicand 0001 0000 1000 0000 0110  
  3: Shift right Multiplier 0000 0000 1000 0000 0110  
  3 1: 0->No Operation 0000 0000 1000 0000 0110  
  2: Shift left Multiplicand 0000 0001 0000 0000 0110  
  3: Shift right Multiplier 0000 0001 0000 0000 0110  
  4 1: 0->No Operation 0000 0001 0000 0000 0110  
  2: Shift left Multiplicand 0000 0010 0000 0000 0110  
  3: Shift right Multiplier 0000 0010 0000 0000 0110  
   

เราสามารถออกแบบฮาร์ดแวร์ที่ทำการคูณ ให้สามารถคูณได้รวดเร็วขึ้นโดยการเพิ่มฮาร์ดแวร์สำหรับการบวกในแต่ละบิตของตัวคูณ โดยที่ทำการบวกตัวตั้งที่ทำการ AND กับบิตของตัวคูณ และผลลัพธ์ของตัวคูณก่อนหน้า ดังแสดงในรูป 3.8

Figure 3.8: ฮาร์ดแวร์การคูณที่มีความเร็วสูง
\includegraphics[width=4.3in]{fig/Chapter_3/Figure_3.9.eps}

ในคอมพิวเตอร์ MIPS มีคำสั่งสำหรับการคูณดังต่อไปนี้ multiply (mult) และ multiply unsigned (multu) คำสั่ง move from lo (mflo) เป็นการเรียกค่าผลลัพธ์ 32 บิต และ คำสั่ง mflo และ mfhi เป็นคำสั่งที่จะนำค่าผลลัพธ์เก็บไว้ในรีจีสเตอร์ที่ต้องการ


next up previous contents index
Next: การหาร Up: การคูณ Previous: ฮาร์ดแวร์ของการคูณแบบลำดับ   Contents   Index
Vara Varavithya 2006-11-06