บทความทางคอมพิวเตอร์

อนาคตของซีพียูตระกูล X86
โดย วุฒิพงษ์ พรสุขจันทรา
-แนวคิดใหม่จาก Dynamo สถาปัตยกรรมแรกที่เราจะมาคุยกันคือ Dynamo ของบริษัท Hewlett Packard ผมขอตัดตอนเอาข้อความจากบทความที่นาย John Jannotti เขียนไว้ดีมาก "

(http://arstechnica.com/reviews/1q00/dynamo/dynamo-1.html) ซึ่งอธิบายเกี่ยวกับ Dynamo ดังนี้ครับ Dynamo เป็นสถาปัตยกรรมที่แปลกมาก อันที่จริงแล้วมันเป็นเพียง interperter สำหรับชุดคำสั่งของ PA-8000 ของ HP เท่านั้นและตัวมันก็ทำงานบนซีพียู PA-8000 อีกที ถูกแล้วครับ--มันแปลโปรแกรมที่สามารถประมวลผลได้โดยตรงบนฮาร์ดแวร์ของมันอยู่แล้วอีกทีหนึ่ง อาจฟังดูแปลกๆ ว่าจะทำไปทำไมแต่ถ้าดูจากผลการทดสอบบนเครื่องต้นแบบจะเห็นถึงความพิเศษของมัน โครงการณ์ Dynamo ทำให้เกิดการค้นคว้าเรื่องที่กำลังทวีความสำคัญมากขึ้นเรื่อยๆ นั่นก็คือ การแปลแบบ dynamic translation จากชุดคำสั่งหนึ่งไปเป็นอีกชุดคำสั่งหนึ่งครับ หลักการ dynamic translation นี้ไม่ได้จำกัดว่าชุดคำสั่งก่อนแปลนั้นจะต้องต่างจากชุดคำสั่งของฮาร์ดแวร์นั้นหรือไม่ หากแต่มุ่งเน้นที่ชุดคำสั่งจะต้องถูกอ่านเข้ามา, วิเคราะห์, จัดลำดับ และแตกออกเป็นชุดคำสั่งที่สามารถประมวลผลได้โดยตรงบนฮาร์ดแวร์นั้น คำถามที่น่าสนใจก็คือ "การแปลนี้จะส่งผลให้ประสิทธิภาพดีขึ้นมากแค่ไหน?" ผลที่ได้จากการทดลองพบว่าแนวคิดแปลกๆ ของ Dynamo นั้นได้ผลอย่างไม่น่าเชื่อเพราะประสิทธิภาพในการทำงานสูงขึ้นกว่าการประมวลผลโดยตรงมากถึง 20 % ขึ้นไป"

Dynamo จะอ่านคำสั่งที่ถูกเขียนสำหรับสถาปัตยกรรมชุดคำสั่งเฉพาะใดๆ เข้ามา(ในที่นี้คือสถาปัตยกรรมชุดคำสั่งของ HP PA-8000) และจัดระบบกลุ่มของคำสั่งเหล่านั้นและ ออปติไมซ์คำสั่งในขณะทำงานจริง (runtime) เพื่อให้ในขณะที่มันทำงานอยู่นั้นกลุ่มของคำสั่งถูกจัดระบบให้เหมาะสมกับสภาวะของฮาร์ดแวร์ Dynamo จะเก็บคำสั่งที่ถูกออปติไมซ์แล้วเอาไว้ใน fragment cache และนำมาใช้ซ้ำอีก วิธีการนี้จะช่วยลดภาระของซีพียูไม่ให้ต้องมาแปลกลุ่มของคำสั่งที่ถูกแปลไว้เรียบร้อยแล้วอีก รูปที่ 5 แสดงขั้นตอนต่างๆ ในการวิเคราะห์โปรแกรมจนได้เป็นกลุ่มของคำสั่งที่ถูกแปลแล้วเก็บอยู่ใน fragment cache"

การแปลชุดคำสั่งนี้อาจฟังดูคล้ายกับสิ่งที่ microcode engine ทำ แต่ข้อแตกต่างที่สำคัญก็คือ microcode engine แปลคำสั่งทุกครั้งที่มันทำงานและไม่มีที่เก็บคำสั่งที่แปลเสร็จแล้ว ดังนั้น microcode engine จะต้องแปลคำสั่งอยู่ตลอดเวลา ในทางกลับกัน Dynamo จะเก็บคำสั่งที่ถูกแปลแล้วเอาไว้และนำกลับมาใช้ซ้ำอีกได้ทันที ซึ่งผมขอเรียกการเก็บคำสั่งที่แปลไว้แล้วนี้ว่าเป็นการแปล (translation) และเรียกการแปลใหม่ทุกครั้งซึ่งเป็นการทำงานในลักษณะที่ซีพียูในปัจจุบันอย่าง Athlon และ Pentium III ใช้ว่าเป็นการจำลอง (emulation) ครับ ดังนั้น Athlon ทำงานโดยการจำลองในขณะที่ Dynamo ทำงานโดยการแปลซึ่งเป็นลักษณะการทำงานที่แตกต่างกันอย่างมาก "