Streaming SIMD Extensions

จากวิกิพีเดีย สารานุกรมเสรี

Streaming SIMD Extensions (SSE) หรือชื่อเดิมคือ Intel Streaming SIMD Extensions (ISSE) เป็นชุดของคำสั่งเครื่องแบบ SIMD (Single Instruction, Multiple Data) ซึ่งเป็นส่วนขยายสถาปัตยกรรม x86 ที่ออกแบบโดยบริษัทอินเทล เริ่มใช้ครั้งแรกในเพนเทียม III เมื่อปี ค.ศ. 1999 โดยเป็นคู่แข่งของเทคโนโลยี 3DNow! ของบริษัทเอเอ็มดี ประกอบด้วยชุดคำสั่งจำนวน 70 คำสั่ง

ชื่อในการพัฒนาของ SSE คือ KNI ย่อมาจาก Katmai New Instructions (Katmai เป็นรหัสของเพนเทียม III) ในภายหลังบริษัท AMD ได้นำชุดคำสั่ง SSE ไปใช้ในซีพียูตั้งแต่รุ่น Athlon XP และ Duron เป็นต้นมา

ก่อนหน้าที่จะมี SSE ทางอินเทลได้คิดค้นชุดคำสั่งแบบ SIMD สำหรับสถาปัตยกรรม IA-32 ในชื่อว่า MMX ซึ่งมีปัญหา 2 ประการ คือ ใช้เรจิสเตอร์สำหรับคำนวณทศนิยม (Floating point) ตัวเดียวกับของซีพียู ทำให้ซีพียูไม่สามารถประมวลผลทศนิยมพร้อมกับ MMX ได้ และ MMX สามารถทำงานได้กับจำนวนเต็ม (integer) เท่านั้น

SSE แก้ปัญหาโดยการเพิ่มเรจิสเตอร์ขนาด 128 บิตเข้าไปอีก 8 ตัว ในตำแหน่ง XMM0-XMM7 ในช่วงหลังเมื่อทั้ง AMD และอินเทลปรับขนาดสถาปัตยกรรมเป็น 64 บิต ก็ได้เพิ่มเรจิสเตอร์เข้าไปอีก 8 ตัว (XMM8-XMM15) และยังมีเรจิสเตอร์ควบคุมขนาด 32 บิตอีก 1 ตัวชื่อ MXCSR

ภายหลังอินเทลได้ปรับปรุงรุ่นของ SSE เป็น SSE2, SSE3, SSSE3 และ SSE4 ทั้งนี้ การสนับสนุนนการคำนวณเลขทศนิยม ทำให้สามารถรองรับแอปพลิเคชันได้มากกว่า MMX และกลายเป็นที่นิยมมากขึ้น รวมทั้งการเพิ่มคำสั่งดำเนินการกับจำนวนเต็มใน SSE2 ยิ่งทำให้ MMX บางส่วนกลายเป็นส่วนเกิน แต่อย่างไรก็ดี ในบางสถานการณ์อาจเพิ่มประสิทธิภาพการทำงานได้โดยใช้ MMX และ SSE ในแบบคู่ขนานกันก็ได้

รุ่นปรับปรุง[แก้]

  • SSE2 ใช้ครั้งแรกกับ เพนเทียม 4 โดยเป็นการปรับปรุง SSE เดิม เพิ่มชุดคำสั่งทางคณิตศาสตร์สำหรับเลขทศนิยมขนาด 64 บิต (Double-precision)
  • SSE3 หรือชื่อในการพัฒนา Prescott New Instructions (PNI) เป็นการปรับปรุง SSE2 ด้วยการเพิ่มชุดคำสั่งเกี่ยวกับ Digital Signal Processing และการจัดการ Thread บางส่วน เริ่มใช้ใน เพนเทียม 4 รหัส Prescott
  • SSSE3 (Supplemental Streaming SIMD Extension 3) เป็นการปรับปรุงเพิ่มเติมจาก SSE2 ด้วยการเพิ่มอีก 16 ชุดคำสั่ง รวมเป็น 32 ชุดคำสั่ง เริ่มใช้ในซีพียูตระกูล Core 2 ภายใต้ชื่อในการพัฒนาว่า Tejas New Instructions (TNI) หรือ Merom New Instructions (MNI) ซึ่งทำให้เคยมีการสับสนว่าเป็น SSE4 มาแล้ว
  • SSE4 เป็นการปรับปรุง SSE ครั้งใหญ่ โดยจะมีชุดคำสั่งที่เพิ่มเข้ามาเพื่อเพิ่มประสิทธิภาพในการทำงานที่เกี่ยวข้องทางด้านกราฟิก ไม่ว่าจะเป็นการถอดรหัสไฟล์ VDO การประมวลผลภาพ 3 มิติ รวมไปถึงการเล่นเกม ชุดคำสั่ง SSE4 มีการแบ่งเป็น 2 เวอร์ชันคือ SSE4.1 และ SSE4.2 โดย SSE4.1 มีมาบนซีพียูตระกูล Core 2 สถาปัตยกรรม Penryn กับชุดคำสั่งทั้งหมดจำนวน 47 คำสั่งที่เพิ่มเข้ามา ส่วน SSE4.2 นั้นจะมีการเพิ่มอีก 7 ชุดคำสั่ง เริ่มใช้ในซีพียูตระกูล Core i7 สถาปัตยกรรม Nehalem