วันนี้ไปอบรมกับทางอินเทลมา เนื้อหาภายในคงไว้เล่าให้ฟังกันทีหลัง แต่เรื่องหนึ่งที่น่าสนใจคือผมพบว่าผู้ผลิตซอฟต์แวร์บ้านเราตื่นตัวกับเทคโนโลยีใหม่ๆ กันน้อยมาก หลายครั้งที่เราเห็นการทำงานแบบ Just Work ที่ว่าเคยทำมาอย่างนี้แล้วมันใช้ได้ก็ทำกันไปเรื่อยๆ โลกซอฟต์แวร์กำลังจะเปลี่ยนไป ถ้าวันนี้คุณไม่รู้ ก็คงได้เวลาแล้วล่ะครับ ซอฟต์แวร์ที่เราเขียนส่วนมากแล้วเวลาทำงานมักทำงานแบบต่อเนื่องกันไป เช่นว่าเวลาเรียกฟังก์ชั่นสักฟังก์ชั่นแล้วก็หยุดรอให้ฟังก์ชั่นนั้นทำงานเสร็จ ยิ่งเป็นคนเขียนเกมด้วยแล้วคงชินกับฟังก์ชั่นหลักที่วนเป็นลูปกัน ที่ผ่านมาฝ่ายออกแบบต้องยอมก้มหัวให้กับนักพัฒนาซอฟต์แวร์ตลอดมา เพื่อให้ชิปตัวเองขายได้ นักพัฒนาฮาร์ดแวร์ทำทุกอย่าง (ฝรั่งเรียก At all cost) เพื่อที่จะรีดความเร็วออกมาได้อีกสักนิด เราเลยมีสถาปัตยกรรมใหม่ๆ เช่น out-of-order execution, register renaming, และอื่นๆ อีกหลายต่อหลายอย่าง โดยในภาษาวิชาการมันเป็นการพยายามทำให้คำสั่งหลายคำสั่งทำงานได้พร้อมๆ กันโดยที่ตัวซอฟต์แวร์เองไม่รู้ตัว ความพยายามนี้เรียกว่า Intruction Level Parallelism (ILP) มาวันนี้เกิดอะไรขึ้น? นักพัฒนาฮาร์ดแวร์กำลังหันมาบอกว่าที่พยายามทำให้สารพัดนั้นมันกำลังถึงทางตัน แล้วตะโกนใส่หน้านักพัฒนาซอฟต์แวร์ว่าถ้าอยากได้ความเร็วเพิ่มต้องเขียนให้แบ่งงานกันเองแล้ว เป็นการบังคับให้นักพัฒนาซอฟต์แวร์ต้องแบ่งการทำงานซอฟต์แวร์ออกเป็นหลายๆ เธรด เพื่อทำงานพร้อมๆ กัน เรียกว่า Thread Level Parallelism (TLP) การทำงานพร้อมกันเช่นนี้ทำให้แต่ละงานที่นักพัฒนาซอฟต์แวร์เขียนแบ่งงานให้เธรด สามารถแบ่งทำงานบนคอร์ของซีพียูที่มีมากขึ้นเรื่อยๆ ได้ เช่น PlayStation3 นั้นมีทั้งหมด [...]
-
« Home
Contents