Pentium Pro และ AMD K5 กับ RISC

ก่ต่อเนื่องจากเรื่อง AMD K10 ใช้การแปลงคำสั่ง x86 มาเป็นคำสั่งที่คล้ายๆ RISC. ผมก็สงสัยต่อไปว่าวิธีแบบนี้เขาทำกันมาตั้งแต่เมื่อไหร่. ไปค้นๆดูก็เจอว่า CPU ที่ใช้วิธีแปลงคำสั่ง x86 ให้เป็นคำสั่งคล้ายๆ RISC ตัวแรกๆ เลยก็คือ Pentium Pro ของ Intel และ K5 ของ AMD (http://en.wikipedia.org/wiki/X86#Chronology). CPU ในรุ่นใกล้ๆกันอย่าง Pentium, Pentium MMX และ Cyrix 686 ก็มีการใช้เทคนิคแบบที่ใช้ RISC อย่าง Superscalar และอื่นๆ เหมือนกัน แต่ว่าไม่ถึงขนาดแปลงคำสั่งมาเป็นคำสั่งแบบ RISC ในการทำงานภายใน.

อ่านดู AMD K5 มีเรื่องน่าสนใจอีกอย่างคือ; AMD ดัดแปลง AMD 29K ที่เป็น CPU แบบ RISC ของเดิมที่ AMD ทำไว้อยู่แล้ว และเป็นที่นิยมใช้กันใน Laser printer มาดัดแปลงให้ใช้กับ K5 ได้. ถึงกับเอา FPU (Floating Point Unit) ที่ไว้คำนวณเลขทศนิยม จาก AMD K5 มาใช้ใน AMD K5 แบบไม่ต้องดัดแปลง. (http://en.wikipedia.org/wiki/AMD_Am29000)

จากช่วงหัวเลี้ยวหัวต่อที่สำคัญในปี 1995 เดี๋ยวเราก็เลยได้ใช้ CPU ที่แปลงคำสั่ง x86 มาเป็นคำสั่งคล้ายๆ RISC กันเป็นว่าเล่น. เราก็มี CPU ที่ใช้ Windows XP ได้ เร็วในราคาไม่แพง. แต่ก็จะเห็นได้ CPU แบบแปลคำสั่ง x86 ก็ไม่ใช่ CPU ที่ทำให้เครื่องออกมาเร็วที่สุด. ผมเข้าไปดู TPC-C ที่เทียบการ performance ในการทำ online transaction. เครื่องที่ performance ดีมากๆ ก็ใช้ Itanium2 ของ Intel และ Power5+ ของ IBM ที่ชุดคำสั่งต่างออกไปจาก x86 มากมาย.

แต่ถ้าเทียบ price-performace x86 ก็จะกลับมาขึ้นใน list ทันที http://www.tpc.org/tpcc/results/tpcc_price_perf_results.asp

สรุปว่าการแปลง x86 ops มาเป็น RISC-like ops ก็มีมาตั้งแต่ 1995 แล้วโดย CPU ยอดนิยมจาก 2 ค่ายใหญ่.

update: ข้อมูลใน TPC-C อาจจะเก่าเกินไปก็ได้. Xeon ตัวใหม่และ Power6 ไม่รู้เหมือนกันว่าอะไรจะเร็วกว่า.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s