เจาะลึกไมโครโค้ด Intel 8087 เผยคำสั่ง FSCALE สุดซับซ้อน ใช้ไมโครอินสตรักชันกว่า 140 ขั้นตอน

จากการถอดรหัสชิป Intel 8087 ซึ่งเป็นชิปช่วยประมวลผลทางคณิตศาสตร์ (FPU) รุ่นบุกเบิกของ Intel เชิร์ฟฟิฟพบว่า คำสั่ง FSCALE ที่ดูเหมือนจะเป็นการคูณเลขยกกำลังสองแบบง่ายๆ กลับต้องผ่านกระบวนการย่อยที่ซับซ้อนอย่างยิ่ง โดยภายในสถาปัตยกรรมชิปมีการเรียกใช้งานฟังก์ชันย่อย (Sub-routine) ลึกลงไปถึง 3 ระดับ เพื่อจัดการกับกรณีพิเศษต่างๆ ที่อาจเกิดขึ้นในการคำนวณ

กระบวนการทำงานของ FSCALE ในระดับไมโครโค้ดนั้น มีความคล้ายคลึงกับสถาปัตยกรรมชุดคำสั่งแบบ CISC ของหน่วยประมวลผลตระกูล x86 โดยมันจะย่อยคำสั่งระดับสูงออกเป็นขั้นตอนย่อยๆ ตั้งแต่การโหลดค่าลงในเรจิสเตอร์ การดำเนินการทางคณิตศาสตร์ การตรวจสอบและจัดการกับข้อผิดพลาด (Error handling) ไปจนถึงการจัดการสแต็ก (Stack) ซึ่งสถาปัตยกรรมนี้ถูกออกแบบมาเพื่อแบ่งเบาภาระของนักพัฒนาโปรแกรมในยุคนั้นให้ไม่ต้องกังวลกับรายละเอียดเชิงลึกของฮาร์ดแวร์

ความพยายามในการพัฒนาชิป Intel 8087 ให้มีความแม่นยำทางคณิตศาสตร์สูงนี้เอง ที่กลายมาเป็นรากฐานสำคัญของมาตรฐานทศนิยม IEEE 754 ที่ใช้กันในคอมพิวเตอร์ปัจจุบัน ซึ่งในเวลานั้น ชิป 8087 ถือเป็นหนึ่งใน FPU ที่มีความแม่นยำสูงที่สุดในโลก และยังมีราคาที่สมเหตุสมผลพอที่จะนำมาใช้ในคอมพิวเตอร์ส่วนบุคคลระดับผู้ใช้งานทั่วไปได้สำเร็จ


🏷️ หมวดหมู่: Reverse Engineering, floating point, intel 8087

🔗 อ่านบทความฉบับเต็ม: hackaday