Multimedia Extension ?
by pittayaเมื่อก่อน ตอนที่ Intel ออกตัว MMX technology มาใหม่ๆ ตอนนั้นยังไม่ค่อยรู้เรื่องสถาปัตยกรรมของคอมพิวเตอร์เท่าไหร่ ทำเป็นแค่ประกอบเครื่อง ความรู้ส่วนใหญ่ก็หาอ่านจากนิตยสารคอม
ตอนนั้นในหนังสือ (ซักเล่ม) บอกว่า MMX ย่อมาจาก Multimedia eXtension คือส่วนขยายที่สามารถประมวลผลข้อมูลมัลติมีเดียได้ว่องไว ก็เลยเข้าใจไปว่ามันคือชุดคำสั่งที่คำนวณ math ที่ซับซ้อนได้เร็วๆ
จนกระทั่งวันก่อนได้เกิดความพยายามที่จะเขียน assembly ของ MMX เพื่อเร่งความเร็วการประมวลผลให้สุดๆ
พอได้ไปอ่านดูจริงๆ พบว่าที่เคยเข้าใจมาก่อนหน้านี้มันผิดหมดเลย
MMX ก็เป็นแค่ register 64 bit จำนวนแปดตัว ที่คำนวณ math ธรรมดา (เฉพาะจำนวนเต็มด้วย) ได้พร้อมๆ กันเท่านั้นเอง หาได้มีความสามารถในการแก้สมการอนุพันธ์ได้ใน cycle เดียวแต่อย่างใด
แต่ที่ MMX มันช่วยให้การประมวลผล multimedia ทำได้เร็วขึ้น ก็คือว่าข้อมูล multimedia ม้กจะเป็นข้อมูลซ้ำๆ กัน ขนาดใหญ่ ซึ่งถ้าทำได้พร้อมๆ กันเยอะๆ มันก็จะเร็ว เช่น การแปลงภาพให้เป็นขาวดำโดยใช้วิธีกำหนดเส้นขีดแบ่ง (thresholding)
วิธีการมันคือ หยิบจุดมาดู ถ้าค่ามากกว่า threshold ก็ให้เป็นสีขาว ถ้าน้อยกว่าให้เป็นสีดำ อะไรงี้ ซึ่งถ้าคำนวณตามปกติ ก็จะเสียเวลาคำนวณซ้ำๆ กันเท่ากับจำนวนจุดในภาพ แต่ถ้าใช้ MMX อาจจะสามารถคำนวณได้พร้อมๆ กันทีละ 4 จุด ทำให้เร็วขึ้น 4 เท่า !
(ฟังดูไถนาชอบกล)
กรณีของ SSE (Stream SIMD Extension) ก็เช่นเดียวกัน เหมือนกับ MMX แต่เป็น register สำหรับคำนวณเลขทศนิยม
คำสั่งพวกนี้เค้าเรียกว่า SIMD - Single Instruction, Multiple Data
คำสั่งเดียว แต่คำนวณข้อมูลพร้อมกันหลายๆ ชุด
ไปค้นๆ ใน Wikipedia ถึงเข้าใจอีกอย่างว่า MMX ไม่ได้ย่อมาจาก Multimedia eXtension ซักหน่อย แต่เป็นศัพท์ทางการตลาดที่ Intel เองยังไม่ได้บอกด้วยซ้ำว่ามันย่อมาจากอะไร
โง่อยู่ตั้งนาน
- Published:December 8th, 2005
- Comments:No Comment
- Category:Computer, Programming




No comments yet
No comments yet.