วันศุกร์ที่ 13 เมษายน พ.ศ. 2550

ช่วงต้นยุคที่ 6 ( ของ CPU )

Intel Pentium Pro ( P64C )
ในราวๆ เดือนพฤศจิกายน ปี ค.ศ. 1995 Intel ก็ได้เปิดตัว CPU ในยุคที่ 6 ของตน โดยมี CodeName ว่า "P6" ซึ่งพัฒนาและปรับปรุงการทำงานเพิ่มเติมขึ้นมาอีก พอสมควรจาก Pentium Classic แต่ได้มีการย้าย Cache ภายนอก ( หรือ Cache ระดับ 2 , L2 Cache ) ซึ่งปกติแล้วจะวางอยู่บน Mainboard มาไว้ที่ แผ่น Silicon เดียวกันกับ CPU เลย ( แต่ไม่ได้อยู่ ภายใน CPU ) เพื่อเพิ่มความเร็วในการทำงานของ L2 Cache และ การเพิ่มความเร็วในการเข้าถึง และดึง ข้อมูลจากใน Cache ... แต่ก็ด้วยเหตุที่ต้องรวมเอา Cache เข้าไปด้วยนี้เอง ทำให้ราคาของ CPU นั้นสูงเอามากๆ Intel ได้เปลี่ยนแนวคิดของตัวเอง โดยหันมาใช้การประมวลผลแบบ RISC ใน CPU ของตนบ้าง ด้วยการดัดแปลงชุดคำสั่งสำหรับ x86 ของตนให้เป็น ชุดคำสั่ง ของ RISC ที่เล็กกว่า เร็วกว่า และ ง่ายกว่าเดิม เรียกว่าเป็นชุดคำสั่ง RISC86 Pentium Pro มี ชุด Pipeline 3 ชุด ซึ่งมากกว่า Pentium Classic ซึ่งมีเพียง 2 ชุด และมีการแยกขั้นตอนการทำงานออกเป็นถึง 14 ขั้นตอน และยังสนับสนุนการ ทำงานแบบคาดเดาคำสั่งที่จะต้องเรียกใช้ล่วงหน้าได้ ซึ่งเรียกว่า Speculative Execution แต่ Intel เรียกการทำงานนี้ว่าเป็น Dynamic Execution อีกสิ่งหนึ่งที่เปลี่ยนไป ก็คือ Interface ที่ใช้ ซึ่งจากเดิมใช้บน Socket 7 ก็หันมาใช้ที่ Socket 8 แทน ทำให้ไม่สามารถใช้งานได้กับ Mainboard ของ Pentium Classic แน่นอน จะใช้รุ่นนี้ ก็ต้องซื้อ Mainboard ใหม่ด้วย สิ่งที่น่าแปลกใจ สำหรับ Pentium Pro อย่างหนึ่ง ก็คือ ขนาดของ Cache ภายใน หรือ Cache ระดับ 1 ที่ยังคงมีเพียง 16 K เท่านั้น เท่าๆ กับ Pentium Classic เลย แต่ก็ชดเชยจุดด้อยตรงนี้ด้วย Cache ระดับ 2 ที่มีขนาดใหญ่ และมีให้เลือกหลายรุ่น คือรุ่นที่มี Cache ระดับ 2 ขนาด 256 KB, 512 KB หรือ 1 MB และ ทำงานด้วยความเร็วเดียวกับ CPU เพราะอยู่บน Silicon เดียวกัน Pentium Pro นี้ โดยมากจะถูกนำมาใช้เป็น Server มากกว่าที่จะเป็น Desktop PC เพราะ มันสนับสนุนการทำงานแบบ SMP หรือ Symmetric MultiProcessing ซึ่งทำให้ใช้ CPU ได้ หลายตัว บน Mainboard ตัวเดียวกันได้ ทำให้ช่วยเพิ่มเสถียรภาพในการทำงาน สนับสนุนเรื่องของ Fault Tolerant ด้วย เมื่อ CPU ตัวใดตัวหนึ่งเสียหาย อีกตัวหนึ่งก็จะทำงานแทนที่ได้ และยังช่วยสนับสนุนการประมวลผลแบบขนานอีกด้วย Intel Pentium MMX ( P55C )
ในช่วงต้นปี ค.ศ. 1997 Intel ก็ได้เปิดตัวเทคโนโลยีใหม่ของตน คือ MMX หรือ MultiMedia eXtension ขึ้นมา โดยมีจุดประสงค์ เพื่อให้ช่วยเพิ่มความสามารถในด้าน Multimedia เพราะในปัจจุบันนี้ Computer และงานด้าน Multimedia แทบจะแยกกันไม่ออกแล้ว ด้วยเหตุนี้เอง ทาง Intel จึงได้รวมชุดคำสั่ง MMX เข้ามาใน CPU ตระกูล Pentium ของตนด้วย เพื่อเป็นจุดขายใหม่ และ สร้าง มาตรฐานใหม่ของตนขึ้นมา มาดูกันดีกว่าครับ ว่า Pentium MMX หรือ P55C นี้ มีอะไรเปลี่ยนแปลงไปจาก Pentium Classic หรือ P54C บ้าง อันดับแรกเลย คือชุดคำสั่ง MMX ไงละครับ อันนี้ของแน่อยู่แล้ว :-) ต่อมาคือขนาดของ Cache ภายใน ที่เพิ่มขึ้นมาเป็นเท่าตัวจากเดิม ซึ่งมี Data Cache 8 K และ Instruction Cache 8 K ก็ถูกเพิ่มอีกเท่าตัวเป็น Data Cache 16 K และ Instruction Cache 16 K ในส่วนที่เปลี่ยนแปลงอีกอย่าง ก็คือ เรื่องของ ไฟเลี้ยง ซึ่ง Pentium Classic นั้น ใช้ไฟเลี้ยง 3.3 Volt แต่ Pentium MMX นั้น จะใช้ไฟเลี้ยงเป็น 2.8 Volt ที่ CPU core แต่ ในส่วนของ CPU I/O ยังคงเป็น 3.3 V. ในรายละเอียดปลีกย่อยของสถาปัตยกรรมภายใน ก็ได้มีการนำเอาเทคโนโลยีบางส่วนจาก Pentium Pro ซึ่งจัดเป็น CPU ในยุคที่ 6 ของ Intel ( P6 ) ที่เปิดตัวออกมาก่อนหน้านี้ไม่นานนัก ได้แก่ ความสามารถในเชิงของ Branch Target Buffer หรือ BTB ซึ่งเกี่ยวข้องกับการทำนายผลการคำนวนล่วงหน้า ... ช่วยเพิ่มความเร็วในการประมวลผลได้อีกทางหนึ่ง นอกจากนี้ยังมีการพัฒนา / ปรับปรุง ในเชิงของ Return Address Prediction อีกด้วย อีกทั้งยังสามารถทำการถอดรหัส และแยกการทำงานออกเป็น 2 Pipe พร้อมๆกันได้ เป็น Pipe จำนวนเต็ม และ MMX ซึ่งสามารถทำงานไปพร้อมๆกันได้เลย สรุปรายละเอียด ของ CPU Intel Pentium MMX
มีตั้งแต่รุ่นความเร็ว 166 MHz ถึง 233 MHz
ใช้เทคโนโลยี ขนาด 0.35 micron
Cache ระดับ 1 มีขนาดเป็นเท่าตัวของ Pentium Classic คือเป็น 32 K
Die Size มีขนาด 141 ตารางมิลลิเมตร
เพิ่มจำนวนของการ Write Buffer จาก 2 เป็น 4
นำเทคโนโลยีเรื่อง Branch Prodiction ( Branch Target Buffer ) จาก Pentium Pro มาใช้
พัฒนาเรื่อง Return Stack ซึ่งแรกเริ่มเดิมทีนั้นมีใน Cyrix/IBM 6x86
เพิ่ม step การทำงานของ U และ V Pipeline อีก 1 step
พัฒนาเกี่ยวกับการทำงานแบบขนานของ Pipeline U และ V
ชุดคำสั่ง MMX
ใช้ไฟเลี้ยงใน CPU core 2.8 V แต่ ใช้สำหรับ CPU I/O เป็น 3.3 V. Pentium MMX นี้ ยังคงเป็น CPU ในรุ่นที่ 5 ของ Intel จะจัดเป็นรุ่นที่ 5.1 ก็คงได้ ถึงแม้จะออกมาทีหลัง Pentium Pro ซึ่งจัดเป็น CPU ในรุ่นที่ 6 ของ Intel ก็ตามแต่ AMD K6
ในวันที่ 2 เมษายน ปี ค.ศ. 1997 ทาง AMD เอง ก็ได้ทำการเปิดตัว CPU ในรุ่นที่ 6 ของตนขึ้นมาบ้าง เพื่อหมายจะมาแข่งกับ Intel Pentium MMX นั่นก็คือ AMD K6 ยังคงจำเรื่องของ NextGen ได้ไหมครับ บริษัทนี้ถูก AMD ซื้อและทำการรวมเทคโนโลยีเข้ามาด้วย ซึ่งในขณะที่ซื้อนั้น ทาง NextGen ก็ได้ออกแบบ CPU ในรุ่นที่ 6 ของตนไว้แล้ว คือ Nx686 ซึ่ง AMD ก็เลยได้ถือโครงสร้างที่น่าสนใจของ Nx686 มารวมเข้ากับ เทคโนโลยีของตน และ เพิ่มชุดคำสั่ง MMX ของตนเองเข้าไปด้วย ทำให้ได้ K6 ออกมา MMX ของ AMD K6 นั้น ถึงแม้จะมีจำนวนชุดคำสั่งเท่าๆ กัน มีคำสั่งเหมือนๆกันกับ Intel แต่กระบวนการทำงานก็แตกต่างกันไป เพราะ ถ้าทำในกระบวนการเดียวกัน ก็จะถือเป็นการล่วงละเมิดลิขสิทธิ์ของ Intel ซึ่งได้จดไว้ก่อนแล้ว แต่อย่างไรก็ตาม MMX ของ AMD ก็ใช้งานได้กับทุก Application ที่สนับสนุนการทำงานของ Intel MMX และให้ประสิทธิภาพที่ได้ผล พอๆ กัน ถึงดีกว่าด้วยซ้ำ สำหรับบางงาน ( AMD เรียก MMX ของตนว่าเป็น MMX enhanced )
สำหรับในรุ่นแรกนั้น AMD ได้เปิดตัวที่ความเร็ว 166, 200 และ 233 MHz ซึ่งมี transistor ภายใน 8.8 ล้านตัว และใช้เทคโนโลยี ขนาด 0.35 micron และต่อมาก็ได้เปิดตัว รุ่นความเร็วที่ระดับ 266 และ 300 MHz แล้วก็ได้หันมาใช้เทคโนโลยีขนาด 0.25 micon ด้วย ซึ่งในช่วงนั้นเอง ก็ได้ทำการตัดราคา CPU ของตนลงอีก ด้วย เพื่อหมายจะแข่งกับ Intel Pentium MMX ( คงไม่หวังจะแข่งกับ Pentium Pro ละครับ เพราะ เน้นตลาดคนละด้านกัน ) สิ่งที่ AMD K6 มีเพิ่มเติมเหนือไปกว่า Intel Pentium MMX ที่เห็นได้ชัดๆ ก็คือ ขนาดของ Cache ภายใน หรือ Cache ระดับ 1 ( L1 Cache ) ซึ่งจะมีขนาดเป็นเท่าตัวของ Intel Pentium MMX ซึ่งก็คือ มี Data Cache 32 K และ Intruction Cache 32 K แต่สิ่งที่ทำให้ AMD K6 ไม่เหนือไปกว่า Intel Pentium MMX อย่างสมบูรณ์ นั่นก็คือ เรื่องของ การคำนวนเชิงทศนิยม เพราะยังคงทำได้ช้ากว่า ณ ที่ CPU ความเร็วเท่าๆกัน ซึ่งในขณะนั้น เกมส์ 3 มิติ ( 3D ) กำลังเป็นที่แพร่หลาย และเป็นที่ทราบกันว่า การคำนวนเชิง 3 มิตินั้นต้องใช้ การคำนวนเชิงทศนิยมอย่างหนัก ตรงจุดนี้เอง ที่ทำให้ Intel Pentium MMX ยังคงเหนือกว่า ( ณ ที่ความเร็วของ CPU เท่าๆกันนะ ) แต่ด้วยปัจจัยของราคา ซึ่ง ในขณะนั้นราคาของ AMD K6 300 MHz นั้นพอๆกัน หรือแพงกว่าเพียงเล็กน้อย กับ Intel Pentium MMX 233 MHz และด้วยความสามารถในการคำนวนเชิงทศนิยมของ K6 300 MHz นั้น ก็เทียบได้กับ Intel Pentium MMX 233 MHz ด้วย แต่ด้วยความเร็วด้านอื่นๆ ที่เหนือกว่า ก็เลยเป็นจุดที่ชดเชยกันได้ อย่างล้นเหลือ ... มาดู สรุปรายละเอียดของ AMD K6 กันดีกว่านะครับ
มีความเร็วตั้งแต่ 166MHz ถึง 300MHz
ใช้เทคโนโลยีขนาด 0.25 และ/หรือ 0.35 micron
จัดเป็น CPU ในรุ่นที่ 6 ของ AMD
เป็น RISC86 CPU ซึ่งมีสถาปัตยกรรมดังนี้
มี 7 หน่วยประมวลผลแบบขนาน
สามารถถอดรหัสของ x86 ไปยัง RISC86 ได้ทีละหลายๆคำสั่ง
สามารถทำนายผลการประมวลผลล่วงหน้าได้ 2 ระดับ ( Branch Prediction )
สามารถคาดเดาคำสั่งที่จะต้องทำงานล่วงหน้าได้ ( Speculative Execution )
สนับสนุนการทำงานแบบ Out-Of-Order Execution ( เป็น Feature ที่ใช้ใน Pipeline )
สนับสนุนการทำงานแบบ Data Forwarding ( เป็น Feature ที่ใช้ใน Pipeline )
มีชุดคำสั่งเพิ่มเติมเพื่อจัดการกับด้าน MultiMedia ซึ่งก็คือชุดคำสั่ง MMX นั่นเอง จริงๆ แล้วในขณะที่ทาง AMD เปิดตัว K6 ได้ไม่นาน Intel ก็ได้เปิดตัว Intel Pentium II ขึ้นมาแข่ง หมายจะกลบรัศมีของ K6 ด้วย ซึ่งความจริง ก็ควรจะจัดเปรียบเทียบ K6 กับ Pentium II แต่ด้วยสถาปัตยกรรมแล้ว ก็เลยขอเปรียบเทียบ K6 กับ Pentium MMX แทน ก็แล้วกันนะครับ ... อาจเป็นการไม่แฟร์สำหรับ Pentium MMX สักหน่อย เพราะยังคงเป็น CPU ในรุ่นที่ 5 แต่ AMD K6 เป็นรุ่นที่ 6 แล้ว ตารางเปรียบเทียบ สรุปความสามารถด้านต่างๆ ระหว่าง Intel Pentium MMX , Intel Pentium Pro และ AMD K6
Processor Feature
AMD K6
Pentium Pro
Pentium MMX
RISC core
Yes / 6 issue
Yes / 5 issue
No
Superscalar
Yes
Speculative execution
Yes
No
Out of order execution
Yes
No
Data forwarding
Yes
No
Register renaming
Yes
No
Simple x86 decoders
-
2
1
Sophisticated x86 decoders
2
1
1
Long x86 decoders
1
-
-
Vector x86 decoders
1
-
-
Execution Pipelines
6
5
2
Branch prediction
Yes
Advanced 2 level branch prediction
Yes
No
Branch history table entries
8,192
512
256
Branch target cache entries
16
0
Branch prediction accuracy
95%
90%
75-80%
MMX technology
Yes
No
Yes
High performance FPU
Yes
L1 instruction and data cache
32K + 32K
8K + 8K
16K + 16K
Industry compatible SMM
Yes
Latency ( ยิ่งน้อยยิ่งดี )
2 clock
5-7 clock
2 clockรายละเอียดเพิ่มเติม
MMX MMX เทคโนโลยีนั้น เป็นชุดคำสั่งภายใน CPU ที่เพิ่มเข้ามาอีก 57 คำสั่ง เพื่อจัดการกับงานในมัลติมีเดีย โดยเพิ่มประสิทธิภาพของโปรแกรมทำงานเกี่ยวกับระบบเสียง (Audio) ภาพกราฟิก 2 มิติ ( 2D ) ภาพกราฟิก 3 มิติ ( 3D ) ,ภาพเคลื่อนไหวต่างๆ และรวมไปถึงระบบการวิเคราะห์และจดจำเสียงพูด ( Voice Recognition ) และการสื่อสารผ่านโมเด็ม โดย MMX นี้ เป็นชุดคำสั่ง ที่ใช้สถาปัตยกรรมแบบ SIMD กล่าวคือ สามารถประมวลผลด้วยคำสั่งเดียวกัน แต่ใช้ชุดข้อมูลต่างกันได้ พร้อมๆ กัน ( SIMD : Single Instrunction Multiple Data stream ) เรียกว่าเป็นการประมวลผลแบบขนาน หรือ Parallel Processing เรื่องของ SIMD นี้ สามารถอ่านเพิ่มเติมได้ที่ สถาปัตยกรรมแบบ SIMD ครับ เทคโนโลยีนี้ ทาง Intel เองก็ได้พยายามผลักดันให้ผู้ผลิต Software และ Hardware ต่างๆ ให้สร้าง Application และ Driver ที่ช่วยสนับสนุนการทำงานของ MMX เพื่อจะได้ใช้ประโยชน์ในจุดนี้อย่างเต็มที่ แต่ในความเป็นจริง จนถึง ณ ปัจจุบันนี้ ก็มีผู้ผลิต Software เพียงไม่กี่เจ้าเท่านั้นที่ออกแบบมาเพื่อ MMX อาจกล่าวได้ว่า เป็นเทคโนโลยีที่ไม่สำคัญเท่าไรนัก ... แต่จำเป็นต้องมี เพราะเหมือนกับเป็น Standard สำหรับ CPU ในขณะนี้ไปเสียแล้ว ( หลังจาก Intel ประกาศเปิดตัว MMX บริษัทผู้ผลิต CPU อื่นๆ ก็หันมาจับ MMX ใส่ CPU ของตนตามไปด้วย ทั้ง AMD , Cyrix และแม้แต่น้องใหม่ๆ อย่าง IDT หรือ RISE ก็จับเจ้า MMX นี้ใส่ลงใน CPU ของตนด้วย ) จำเป็นไหม? สำหรับ MMX กับงานด้าน Business สำหรับผม คิดว่าไม่จำเป็น เพราะแทบจะไม่ช่วยอะไรเลย เว้นเสียแต่งานด้าน Presentation ซึ่งจำเป็นต้องใช้ Multimedia มาสนับสนุนด้วย สำหรับ Software ที่สนับสนุน MMX นี้ ที่เห็นเด่นชัดเลย ก็มี Adobe Photoshop ซึ่งมี Patch ให้ upgrade ใช้คำสั่ง MMX ได้ ทำให้การทำงานในบางด้าน ทำได้เร็วขึ้นอย่างเห็นได้ชัด
Speculative Execution ( หรือที่ Intel เรียก Dynamic Execution ) เป็นกระบวนการทำงานเมื่อทำงานคำสั่งใดๆ เสร็จเพียงครึ่งทางก่อน แล้วรอดูว่ามีคำสั่งไหน ที่ต้องการใช้ในขั้นต่อไป และเรียกใช้มันก่อน ( เป็นกระบวนการของ Out-Of-Order Execution ) ทำให้ช่วยเพิ่มประสิทธิภาพในการทำงานขึ้นอีกระดับ
Out-Of-Order Execution

ไม่มีความคิดเห็น: