สุดท้ายแล้ว x86 ก็ครองโลก

ผมเล่นคอมพิวเตอร์เครื่องแรกในชีวิตคือ 8086 สมัยจอสีเขียวๆ ไว้เล่นเกมกบกระโดด  จังหวะชีวิตผมพอเหมาะพอที่จะมีญาติเรียนอยู่มหาวิทยาลัยในช่วงที่ผมเป็นเด็ก เลยได้เข้าถึงเทคโนโลยีมากกว่าคนจำนวนมาก จุดที่น่าสนใจคือช่วงประถมปลายที่ผมได้จับเครื่อง 386SX เครื่องแรกในบ้าน  หลักจากเล่นไปซักพักใหญ่ๆ แล้ว คนก็เริ่มถามกันว่าชิปอะไรจะมาแทนที่มันต่อไป

สำหรับคนเล่นคอมโดยทั่วไปคงตอบได้ไม่ยากว่าก็ 486 แล้วก็ Pentium นั้นปะไร

แต่เรื่องที่เราไม่ทันสังเกตกันคือ จริงๆ แล้วชุดคำสั่งในชิปรุ่นต่อๆ มานั้นไม่ต่างอะไรเลยจากชิป 386 ที่เราใช้งานกัน

ชุดคำสั่งที่ว่านั้นชื่อจริงๆ มันคือ Instruction Set Architecture (ISA) เป็นการออกแบบในเบื้องต้นว่าโปรแกรมที่ไปรันบนซีพียูจะเห็นคำสั่งอะไร และรีจิสเตอร์ให้ใช้งานบ้าง โดยทั่วไปแล้วในช่วงเริ่มแรก คำสั่งเหล่านี้ก็ผูกติดกับการออกแบบฮาร์ดแวร์โดยตรง เช่นรีจิสเตอร์ก็มีเกือบๆ เท่ากับที่มีในซีพียู หรือคำสั่งก็เป็นคำสั่งที่สะท้อนความสามารถของ ALU ว่าทำงานอะไรได้บ้าง

แต่ความนิยมอย่างล้นฟ้าของชิป 386 และลูกหลานของมันที่ใช้ ISA เดียวกันก็เรื่อยมา ทำให้โปรแกรมจำนวนมากที่เขียนในเครื่องรุ่นใหม่ๆ ในวันนี้ยังคงนำกลับไปใช้กับเครื่อง 386 ได้เหมือนเดิม (แต่อาจจะช้าจนรับไม่ได้)

เรื่องน่าสนใจคือชิปตระกูล x86 ที่เราบอกว่ามันทำงานเข้ากับ 386 เช่น Core Duo นั้น ไม่ได้ใช้ฮาร์ดแวร์แบบ 386 เดิมๆ อีกต่อไปแล้ว เช่นเดียวกับ AMD Opteron ก็มีสถาปัตยกรรมภายในที่ซับซ้อนกว่าวันแรกที่ i386 ถูกออกแบบขึ้นมามหาศาล  เพราะผู้ผลิตเองก็รู้ว่าเทคนิคที่ใช้ออกแบบชิป 386 นั้นมีจุดที่สามารถปรับปรุงได้จำนวนมาก

ชิปรุ่นหลังๆ จึงนำคำสั่งของ x86 มาแตกออกเป็นคำสั่งย่อยๆ ในชื่อ Micro-Opertation ซึ่งรูปร่างหน้าตาง่ายกว่าคำสั่งของ x86 เองมาก แล้วรันคำสั่งนั้นในรูปแบบที่นักออกแบบรุ่นเก่าๆ ไม่ได้คิดเอาไว้ เช่นการรันหลายคำสั่งพร้อมๆ กัน การสลับตำแหน่งคำสั่งเพื่อเพิ่มความเร็ว การเพิ่มรีจิสเตอร์ภายในเพื่อเก็บค่ารอคำสั่งที่ยังไม่เสร็จ ฯลฯ

ให้พูดอีกทีคือชิป AMD กับ Intel ในวันนี้จริงๆ แล้วแทบไม่มีอะไรเหมือนกันเลยนอกจากชุดคำสั่งที่ทำงานร่วมกันได้

นอกจากสองค่ายใหญ่แล้ว เรายังมี VIA ที่ช่วงหลังๆ ผงาดขึ้นมาด้วยการแยกสายไปผลิตชิปกินพลังงานต่ำ และกระแสมาบูมขึ้นมหาศาลในช่วงปีสองปีมานี้

ชิปที่เราเห็นแทบทุกตัวนั้นการออกแบบภายในต่างกันหมด และมีส่วนการแปลคำสั่งจาก x86 ให้กลายเป็นคำสั่งที่นักออกแบบของแต่ละบริษัทออกแบบมา นักออกแบบหลายๆ คนเองก็รำคาญใจที่ต้องมานั่งแปลคำสั่งก่อนการทำงานแบบนี้ เพราะมันลดประสิทธิภาพชิปไปส่วนหนึ่ง แม้จะไม่มาก แต่ในโลกการแข่งขันถ้าได้ความเร็วคืนมาซัก 5 เปอร์เซ็นต์หลายคนก็ดีใจแล้ว แต่คำสั่ง x86 ก็แทบจะทำตัวเหมือนจาวาในโลกฮาร์ดแวร์ไปแล้ว ด้วยแนวคิดที่ว่าไม่ว่าคุณจะออกแบบฮาร์ดแวร์ยังไง ถ้ามันใช้คำสั่ง x86 ได้ จะมีโปรแกรมให้ใช้งานจำนวนมากบนชิปของคุณ

Intel นั้นพยายามตีตัวออกห่างจาก x86 มานานด้วยสถาปัตยกรรม Itanium ที่ออกไปได้ไม่นาน AMD ก็ดัดหลังด้วยการออก Opteron พร้อมส่วนขยาย AMD64 ที่น่าสนใจคือคำสั่งนั้นยังทำงานร่วมกับ x86 เดิมได้เป๊ะๆ

อินเทลแยกทางไปได้ไม่นานก็รู้ว่าลูกค้าไม่เอาด้วย เพราะโปรแกรมจำนวนมากนั้นอยู่บน x86 แล้ว และไม่มีใครอยากทำงานเพิ่มเพื่อย้ายไปสถาปัตยกรรมใหม่ จึงต้องรีบกลับมาอยู่ฝั่ง x86 ต่อไป ส่วนทาง AMD นั้นก็กอบโกยไปได้พักใหญ่ จนตัวเลขผลกำไรขึ้นสีเขียวเป็นที่ชื่นใจของผู้ถือหุ้น

ข้อดีของการที่ทุกคนอยู่รวมตัวกันบน x86 นั้นคือนักพัฒนาไม่ต้องมานั่งดูว่าตัวเองอยู่บนสถาปัตยกรรมอะไร และจะมีโปรแกรมไหนให้ใช้งานบ้าง อย่างในวันนี้เองผมใช้ Ubuntu บน Core 2 Duo ถ้าพรุ่งนี้ผมไปใช้เครื่อง VIA ผมก็จะรู้ว่าผมมีโปรแกรมแบบเดียวกันให้ใช้งานต่างกันแค่ความเร็วเท่านั้น

ช่วงหลังๆ ยิ่งหนัก เมื่อเราเห็นชิปจีนหลายรุ่นเริ่มมีชิป x86 ออกมาวางตลาด เราเดาได้ไม่ยากว่าในอีกปีสองปีนี้เราจะได้ใช้ชอปตระกูล x86 ไปตั้งแต่ MID, UMPC, Notebook, PC, ไปจนเซิร์ฟเวอร์

ที่น่าเดากันคือมือถือจะเอากับเค้าด้วยหรือไม่?