คำถามยอดนิยมคำถามหนึ่งที่มักมีผู้ถามกันมากก็คือ ร้านใหนที่ไว้ใจได้บ้าง? อันดับแรกให้ดูร้านที่เปิดขายมาได้นานพอสมควร เพราะช่วยให้มั่นใจได้ว่าน่าจะทำธุรกิจนี้อย่างจริงจัง ไม่ใช่ประเภทขายได้เงินพอใจแล้วก็ปิดร้านไป พออุปกรณ์มีปัญหา ก็เลยไม่รู้ไปตามเรื่อง รับประกันสินค้ากับที่ใหน ปัจจัยต่อมาก็ให้ดูว่าแต่ละร้านนั้นมีการรับประกันสินค้าอย่างไร เช่น รับประกัน 3 ปี รับเปลี่ยนเฉพาะปีแรก หรือเปลี่ยนได้ตลอด 3 ปี เป็นต้น ซึ่งวิธีการก็คือให้เลือกร้านที่รับประกันเปลี่ยนนานที่สุด อย่าลืมถามก่อนด้วยว่า ที่รับเปลี่ยนนั้นต้องรอกี่วัน จะได้ของใหม่มา เพราะถ้าต้องรอกันเป็นอาทิตย์หรือเดือน คิดแล้วบางทีก็ไม่ค่อยคุ้มเท่าไหร่ ส่วนปัจจัยด้านราคานั้นก็สำคัญเช่นกัน แต่ไม่ควรให้น้ำหนักมากจนเกินไป เพราะร้านที่ตั้งราคาถูกมากๆ นั้นอาจจะไม่รับผิดชอบเรื่องการประกันในระดับที่คุ้มค่านัก เช่น อาจจะลดระยะเวลาการเปลี่ยนสินค้า ในกรณีชำรุดเสียหายลงเหลือเพียงไม่กี่สัปดาห์ อย่างไรก็ตามหากเป็นการซื้อซีพียูแล้วด้านการรับประกันนั้น จะเป็นประเด็นที่ไม่สำคัญนัก ทั้งนี้เพราะซีพียูเป็นอุปกรณ์ที่ไม่เสียกันได้ง่ายๆ เพราะฉะนั้นหากจะเลือกซื้อร้านที่ราคาถูกที่สุดก็นับว่าไม่เสียหาย ยกเว้นอุปกรณ์ที่มีความเสี่ยงต่อการเสียหายได้ง่าย อย่างเช่น ฮาร์ดดิสค์ที่ควรคำนึงด้านรับปะกันเป็นหลัก
Pentium Classic
ซีพียูเพนเทียมคลาสสิคจะมีลักษณะของซีพียู 2 รูปแบบ คือ 1.ผิวด้านหน้าเป็นเซรามิก และ 2.ผิวด้านหน้าเป็นผิวด้านคล้ายทำจากคาร์บอน ซึ่งซีพียูในรูปแบบที่ 2 นั้น มักจะพบในซีพียูเพนเทียมความเร็ว 200 MHz มากกว่าความเร็วอื่น
วิธีสังเกตความเร็วของซีพีย ูจากด้านหน้าตัวชิพในแบบแรกนั้นจะสังเกตได้ที่ตัวเลขบริเวณด้านล่างของตัวซีพียู โดยจากตัวอย่างนั้น จะพบว่า มีตัวเลขแสดงรายละเอียดต่างๆ อย่างมากมาย เช่น ตัวเลขแสดงค่า icomp ซึ่งแสดงประสิทธิภาพของซีพียูเป็นคะแนน นอกจากนี้ยังมีรุ่นของซีพียูที่ผลิต แต่ที่สำคัญคือตัวเลขที่วงไว้ให้เห็นเท่านั้น เพราะตัวเลขตรงนี้ จะบ่งบอกความเร็วของซีพียูตัวนั้นให้ผู้ใช้ทราบ ส่วนซีพียูแบบที่ 2 นั้นจะมีตัวเลข บ่งบอกความเร็ว ปรากฎอยู่บริเวณด้านหน้าเช่นเดียวกัน โดยจะอยู่ตรงกลางซีพียูเป็นตัวเลขสีดำพิมพ์อยู่ ในบางกรณีนั้นซีพียูที่คุณกำลังจะซื้อ ก็มีการติดตั้งพัดลมที่บริเวณด้านหน้าของตัวชิพไว้แล้ว ทำให้ตัวเลขที่แสดงความเร็วของซีพียูด้านหน้าของชิพถูกบดบังไปทั้งหมดจนมองไม่เห็น ดังนั้นอีกจุดหนึ่งที่สามารถใช้ตรวจสอบความเร็วของซีพียูได้ และเป็นจุดที่เชื่อใจได้มากกว่าหมายเลขแสดงความเร็วที่ด้านหน้าด้วย นั่นคือการดูที่ด้านหลังหรือด้านเดียวกับขาของชิพ ที่บอกว่าเชื่อใจได้มากกว่านั้น ก็เนื่องจากบริเวณด้านหน้านั้นทราบมาว่า ในอดีตเคยมีการเปลี่ยนหมายเลขแสดงความเร็วให้เร็วกว่าความเป็นจริง เพื่อให้ได้ราคาดีขึ้นแต่ในความเป็นจริงแล้วซีพียูนั้นเป็นซีพียูสเป็คต่ำกว่าที่ผู้ใช้ระบุ
แต่สำหรับตัวเลขที่อยู่ด้านหลังของซีพียูนั้นจะไม่สามารถแก้ไขได้เนื่องจากว่าจะเสี่ยงต่อการทำให้ขาของซีพียนูหักหรืองอ ซึ่งสร้างความเสียหาย ให้กับตัวชิพอย่างร้ายแรงจนถึงขั้นใช้การไม่ได้ การดูความเร็วของซีพียูนี้ให้พลิกด้านที่เป็นขาของซีพียู แล้วสังเกตตัวเลขตามภาพ จะพบว่ามีความเร็วของซีพียูปรากฎไม่ว่าจะเป็น 133 หรือ166 ส่วนตัวเลขอื่นๆ ก็เป็นเรื่องของรายละเอียดเหล่านี้ ไม่ใช้หัวข้อหลักด้านประสิทธิภาพแต่อย่างใด
Pentium MMX
ซีพียู Pentium MMX นั้นส่วนใหญ่จะมีลักษณะอย่างที่เห็นในภาพนี้ คือจะเป็นรุ่นที่มีผิวของชิพแบบคล้ายคาร์บอน ซึ่งว่ากันว่าจะช่วยระบายความร้อนได้ดี แต่ก็มีอยู่บ้างเช่นที่เป็นแบบผิวเซรามิก ซึ่งไม่ว่าจะเป็นแบบใหน ก็ไม่ใช่เรื่องที่ผู้ใช้ต้องกังวล เพราะเท่าที่ได้ลองทดสอบใช้อยู่นั้น ก็ไม่พบว่าจะมีความแตกต่างกันอย่างไร ดังนั้น หากที่ร้านค้านำรุ่นใหนมาใช้ ้ก็ไม่ต้องห่วงว่าแบบใหน จะแพงกว่าถูกกว่าหรือดีกว่าแย่กว่าอีกแบบ ซีพียู MMX นั้นที่ด้านหน้าจะมีตัวอักษร w/ MMX tech แสดงโดยไม่มีหมายเลขบ่งบอกความเร็ว ของซีพียูปรากฎอยู่แบบที่ปรกฎอยู่ในชิพ Pentium Classic อย่างไรก็ตามเราสามารถสังเกตรุ่นของซีพียูได้ จากตัวเลขที่ปรากฎอยู่ด้านหลังของซีพียูเช่นเดียวกัน เมื่อผลิตด้านหลังของซีพียูขึ้นมา จะพบว่ามีตัวเลขต่างๆ อยู่ไม่น้อย แต่ที่จะปรากฎอยู่เด่นชัดก็คือตัวอักษร w/MMX tech แสดงว่าซีพียูนี้เป็นซีพียูแบบเทคโนโลยี MMX ให้มองที่แถวถัดมาจะพบว่า มีตัวอักษรและตัวเลขต่างๆอยู่ สังเกตที่เลขท้ายสลักของแถวนั้น จะพบตัวเลขแสดงความเร็วซีพ๊ยูปรากฎอยู่ตามภาพโดยซีพียู Pentium MMX นั้นจะมีอยู่ 3 ความเร็วคือ 166 MHz, 200MHzและ 233MHz นอกจากตัวเลขแสดงความเร็วของซีพียูแล้ว จะพบว่าภายในวงกลมจะมีตัวเลขแสดงการใช้ไฟฟ้า ของซีพียูปรากฎอยู่ด้วย ซึ่งถือเป้นส่วนสำคัญส่วนหนึ่งเช่นกันเพราะช่วยเตือนให้ผู้ใช้ระมัดระวัง ในการเซ็ตการจ่ายกระแสไฟฟา้ถูกต้อง เพื่อให้ซีพียูมีอายุการทำงานที่ยาวนาน อีกกรณีหนึ่งสำหรับการเลือกซื้อชิพ pentium MMX ก็คือ ให้ระวังว่าทางร้านจะหยิบซีพียู มาให้ผิดเป็น pentium classic ที่มีผิวด้านหน้าแบบคล้ายคาร์บอนอย่างที่ว่าเพราะจะมีด้านหน้าคล้ายกับชิพ pentium MMXจนอาจทำให้เกิดความสับสนได้ ดังนั้น อย่าลืมดูที่ตัวชิพด้วยว่ามีตัวอักษร w/MMX tech ปรากฎอยู่อย่างในภาพหรือไม่ ไม่เช่นนั้นคุณก็อาจจะได้ซีพียู pentium classicความเร็ว 200 MHz แทนที่จะเป็น pentium MMX 200 MHz ก็ได้
Pentium Pro
ซีพียู Pentium Pro นั้นจะมีอยุ่ในท้องตลาดเพียง 3 รุ่น ความเร็วตั้งแต่ 150 MHz, 180 MHz,และ200 MHz แต่มีปลีกย่อยลงไปอีกคือ เนื่องจาก Pentium Pro นั้นมีหน่วยความจำแคชแบบ L2 อยู่ภายใจตัวซีพียูเลย และ Pentium Pro จะมีซีพียูที่มีหน่วยความจำ L2 แคชอยู่ 2 ขนาดคือขนาด 256 K และ 512 K ดังนั้นการสังเกตชิพ Pentium Pro นั้นจึงไมีเพียงต้องสังเกตที่คามเร็วของซีพียูเท่านั้น หากแต่ต้องสังเกตที่ขนาดของ L2 แคชว่าถูกต้องตามที่ต้องการหรือไม่ อย่างไรก็ตามโดยทั่วไปที่มีขายกันอยู่ในท้องตลาดนั้นจะเป็นแบบที่มีแคช 256 Kเท่านั้น ดังนั้นจึงไม่ใช่ประเด็นที่ต้องเป็นห่วงมากนัก ยกเว้นว่า คุณจะระบุไว้ในการซื้อว่า ต้องการแบบแคช 512 K ซึ่งอาจหายากสักหน่อยและมีราคาสูงซึ่งอาจทำให้ถูกร้านค้าที่ไม่ซื่อสัตย์หลอกเอาแบบแคช 256 K มาขายแทนได้ วิธีการสังเกตหมายเลขแสดงด้านหน้าของตัวชิพและที่ด้านหลัง โดยที่ด้านหน้านั้น จะปรากฎอยู่ที่ด้านบนของซีพีย ูโดยซ้ายมือนั้นจะเป็นตัวเลขแสดงความเร็ว ส่วน 256 Kนี้ก็คือ ขนาดแคช L2 และเช่นเดียวกับซีพียู Pentium Classic และ Pentium MMX ที่อาจจะมีพัดลมติดตั้ง มาให้ด้วยเลยทำให้บดบังตัวเลขแสดงความเร็วซีพียูที่ด้านหน้า ในกรณีนี้ให้ดูที่ด้านหลังของซีพียูตัวเลข ท้ายสุดจะแสดงความเร็วซีพียู ส่วนท้านสุดของแถวที่ 2 คือตัวเลขแสดงขนาดแคช L2
Pentium II
สุดท้ายของซีพียูก็คือซีพียูตระกูลที่เร็วที่สุดและแพงที่สุดในปัจจุบัน เนื่องจากเป็นซีพียูที่มีราคาสูง ดังนั้นการเลือกซื้อ จึงต้องกระทำด้วยความระมัดระวังหน่อย เพราะ Pentium II 233 MHz หรือ Pentium II 266 MHz และท้ายที่ 300 MHz นั้นมีราคาต่างกันอยู่มากทีเดียว ดังนั้นต้องระมัดระวังกันพอสมควรเพื่อไม่ได้ถูกหลอกเอาได้ง่ายๆ เนื่องจากมีซีพียูในตระกูลนั้นอาจจำหน่ายอยู่เพียง 3 ระดับความเร็วในปัจจุบัน ประกอบกับ รูปแบบของตัวชิพที่ค่อน ข้างแปลกจากรุ่นก่อนหน้าทั้งหมด ทำให้ยังไม่พบว่า มีข่าวเรื่องการหลอกขายซีพียูความเร็วสเป็ตต่ำ แทนที่เร็วกว่าแต่อย่างใด แต่เพื่อความไม่ประมาทเราก็ควรทราบไว้หน่อยว่าต้องสังเกตตรงจุดใหนจึงทราบได้ว่าซีพียู Pentium II ที่เห็นนั้นเป็นความเร็วเท่าไหร่ เริ่มกันจากรูปร่างของตัวชิพที่จะมีลักษณะเป็นกล่อง ตัวชิพนั้นจะบรรจุอยู่ ภายในกล่องอีกที่หนึ่ง การสังเกตความเร็วของซีพียูนั้น ให้ดูที่ด้านบนของซีพียูซึ่งเป้นตำแหน่งเดียว ที่จะระบุรายละเอียดของซีพียูเอาไว้ ที่ด้านบนนั้นเมื่อมองดูจะพบตัวอักษร และตัวเลขกลุ่มหนึ่ง ปรากฎอยู่ โดยจะปรากฎเป็นตัวหนังสือสีน้ำตาลบนพื้นสีเทาดำของกล่องซีพียู จะพบว่าเป็นตัวเลข 233512 และ 266512 ตัวเลขชุดนี้แสดงถึงความเร็วของซีพียู โดย 233512 จะหมายถึงซีพียู Pentium II ความเร็ว 233 MHz พร้อมหน่วยความจำแบบ L2 ขนาด 512 K ที่มีการระบุตัวเลขของแคชแบบ L2 ไว้ด้วยก็เนื่องจากว่า Pentium II นั้นได้มีการบรรจุหน่วยความจำแคช เอาไว้ด้วยก็เนื่องจากว่า Pentium II นั้นได้มีการบรรจุหน่วยความจำแคช เอาไว้ภายในกล่องซีพียูอันนี้เลยคล้ายๆกับ Pentium Pro
AMD K5 และ K6
ซีพียู K5 ของ AMD นั้นดูจะไม่ค่อยเป็นที่นิยมนักของผู้ใช้บ้านเรา ซึ่งด้วยเหตุนี่ก็ทำให้ปัญหาด้านซีพียูรีมาร์กสำหรับ K5 นั้นไม่เกิดขึ้น แต่เพื่อความไม่ประมาทเราก็น่าจะทราบกันไว้ก่อนว่าจะต้องดูอย่างไรสำหรับการระบุซีพียู AMD K5 ส่วน K6 นั้นยังไม่อยู่ สำหรับตลาดโลกแต่มีแนวโน้มที่ค่อนข้างจะสดใสไม่น้อยทีเดียว วิธีการสังเกตความเร็วของซีพียู AMD นั้นง่ายๆ เพราะที่ด้านหน้าของตัวชิพแต่ละตัวนั้น จะมีการพิมพ์รุ่นความเร็วของซีพียูไว้เรียบร้อยแล้ว เช่นชิพ K5 PO-150 ซึ่งเห็นได้ชัดเจนว่าได้พิมพ์บอกไว้แล้วที่ด้านหน้า พร้อมทั้งยังบอกวิธีการเซ็ตความเร็วบัสไว้แล้ว ส่วน K6 นั้นก็เช่นกัน โดยรูปร่างของซีพียูนั้นจะต่างกันไปเล็กน้อย แต่ก็ยังคงใช้วิธีตัวอักษรและตัวเลขแสดงความเร็วไว้ที่ด้านหน้าอย่างชัดเจน ส่วนปัญหาเรื่องพัดลมจะมาบังตัวเลข ทำให้ไม่สามารถระบุความเร็วได้นั้นไม่ต้องห่วง เนื่องจากว่าซีพียูของ AMD นั้นจะใช้พัดลมแบบที่ไม่ยึดแน่นอยู่กับซีพียูแบบของอินเทล ดังนั้นปัญหานั้นจึงไม่มี
สรุปรายละเอียดของ
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
นั่นเอง
Cyrix 6x86
ซีพียู Cyrix 6x86 นั้นมีความเร็วอยู่ 3 ระดับ เริ่มตั้งแต่ PR-150,PR-166 และ PR-200 โดยทั้ง 3 ความเร็ว นั้นมีรูปแบบของชิพเหมือนกันหมด การตรวจสอบความเร็วของซพียู Cyrix 6x86 นั้นไม่ซับซ้อนเช่นเดียวกับซีพียูของ AMD เพราะที่ด้านหน้าของชิพนั้น จะปรากฎตัวเลข และตัวอักษรแสดงระดับความเร็วอยู่อย่างชัดเจนตามรุ่นของซีพียู เช่น PR-150, PR166 และPR-200 ส่วนด้านหลังของซีพียูนั้น จะไม่ปรากฎสัญลักษณ์หรือตัวเลขตัวอักษรใดๆ ที่จะแสดงว่าซีพียูนั้นๆ มีความเร็วเท่าใด แต่ก็เช่นเดียวกับซีพียูของ AMD คือผู้ซื้อไม่ต้องกังวลว่า เมื่อซื้อจากร้านค้าแล้วจะพบว่า มีพัดลมมาบังที่ด้านหน้าหมดจนทำให้ไม่สามารถระบุความเร็วของซีพียูได้ เนื่องจากพัดลมของ Cyrix นั้นจะเป็นแบบถอดออกเป็นอิสระออกจากตัวซีพียู โดยจะใช้การยึดที่ซ็อกเก็ตซีพียูที่บริวณเมนบอร์ดแทน
Cyrix 6x86MX
ซีพียู Cyrix 6x86MX นั้นเป็นซีพียูตระกูลใหม่ล่าสุดจาก Cyrix ซึ่งที่จริงแล้วก็คือ Cyrix 6x86 ที่ได้เพิ่มเทคโนโลยี MMX เข้าไปนั่นเอง รูปร่างของซีพียูนี้จะคล้ายกับ Cyrix 6x86 แต่จุดที่จะช่วยบ่งบอกได้อย่างชัดเจนว่าเป็น 6X86MX ไมใช่ 6x86 ก็คือตัวอักษร 6x86MX ที่โดเด่นอยู่ที่ด้านบนนั่นเอง การตรวจสอบซีพียูขนาด AMD และ Cyrix 6x86MX ก็คือให้ดูที่ด้านหน้า ของตัวซีพียูซึ่งจะปรากฎตัวอักษร Cyrix 6x86MX ตัวใหญ่อยู่ที่ด้านบนของซีพียูแสดงว่าเป็นซีพียูที่ได้บรรจุเทคโนโลยี MMX เข้าไป ซึ่งตรงนี้ต้องมี ไม่เช่นนั้นแล้วคุณอาจจะถูกหลอกให้ซื้อซีพียู 6x86 ธรรมดาซึ่งราคาถูกกว่ามาได้ ต่อมาที่ด้านล่าง ของตัวอักษรแถวบนที่ว่านี้ จะเป็นแสดงรายละเอียดต่างๆ เริ่มกันตั้งแต่แถวแตกที่แสดงความเร็วของซีพียูเป็น PR-Rate โดยจะระบุไว้เรียบร้อยว่าเป็นเทียบเป็นเพนเทียมเรตอะไร (AMD และ Cyrixไม่ได้ใช้ความเร็ว MHz ของซีพียูเป็นตัวบ่งประสิทธิภาพ เพราะอ้างว่าที่ MHz ต่ำๆ นั้นซีพียูของตนก็สามารถมีประสิทธิภาพเทียบเท่าซีพียูที่มี MHz ที่สูงกว่าของอินเทลได้) บรรทัดต่อมา เป็นตัวเลขแสดงการเซ็ตความเร็วบัสพร้อมตัวคูณสัญญาณให้เสร็จสรรพ ดังนั้น ผู้ใช้ที่ไม่แน่ใจว่าจะต้องเซ็ตอย่างไร ก็จะสามารถเซ็ตได้อย่างถูกต้อง
RISC นั้นเป็นคำย่อ มาจากคำว่า Reduced
Instruction Set Computer ซึ่งก็คือ
เครื่องคอมพิวเตอร์ที่มีชุดคำสั่งน้อยๆ
และไม่ซับซ้อน
โดยจะมีความหมายตรงกันข้ามกับ CISC
หรือ Complex Instruction Set Computer
ซึ่งจะชุดคำสั่งที่ซับซ้อนมากมาย
ณ จุดนี้ ก็คงจะเริ่มเกิดคำถาม
อีกหนึ่งคำถามว่า แล้ว Computer
ที่เป็น RISC กับ CISC นั้น
อย่างไหนเร็วกว่ากัน ?
การออกแบบสถาปัตยกรรม
Processor แบบ RISC นั้นจะเน้นการลดจำนวน
และ
ความลดซับซ้อนของคำสั่งภายใน (
Instruction ) ซึ่งในความเป็นจริงแล้ว
ก็ยังมีอีกหลายอย่างที่เป็นลักษณะการออกแบบสถาปัตยกรรมแบบ
RISC อันได้แก่ การจัดการเกี่ยวกับ
Cache, การทำ pipeline, superscalar และ อื่นๆ
การออกแบบสถาปัตยกรรมแบบ RISC
โดยทั่วไป จะมีกฏเกณฑ์ดังนี้
คำสั่งต่อรอบสัญญาณนาฬิกา ( One Instruction
per Cycle )
นับเป็นสิ่งแรกเลยที่นึกถึงในการออกแบบสถาปัตยกรรมแบบ
RISC โดย
จะพยายามทำงานให้เสร็จสิ้นภายใน
1 รอบสัญญาณนาฬิกา ( 1 Clock Cycle )
ซึ่งก็มีการใช้ pipeline
มาช่วยในการทำงาน ดังนั้น
ในการทำงานจริงๆ อาจไม่ใช่ทำงาน 1
คำสั่งเสร็จสิ้นใน 1
รอบสัญญาณนาฬิกา
แต่ใช้การนับเวลาในการทำงานของโปรแกรม
ซึ่งแน่นอน มีการทำงานหลายๆ
คำสั่ง หลายๆ ขั้นตอน
แล้วคิดเป็นเวลาเฉลี่ย
ซึ่งก็จะได้ประมาณ 1 คำสั่งต่อ 1
รอบสัญญาณนาฬิกา
วิธีที่ใช้เพื่อทำให้ได้ 1
คำสั่งต่อรอบสัญญาณนาฬิกา
จะทำโดยใช้คำสั่งง่ายๆ
ธรรมดาๆ ไม่ใช่
เพิ่มรอบสัญญาณนาฬิกาให้นานขึ้น
กำหนดขนาดของ
Instruction ให้มีขนาดที่แน่นอน ( Fixed Instruction
Length )
ถ้าหากว่าจะทำให้มีการทำงานแต่ละคำสั่งให้เสร็จสิ้นภายใน
1 รอบสัญญาณนาฬิกาได้นั้น
ก็แน่นอน ผู้ออกแบบ RISC
ก็จะต้องจำกัดขนาดของคำสั่งด้วย
ไม่ให้มีขนาดที่ยาวเกินไป
ซึ่งโดยปกติแล้วจะใช้ขนาด 1 Word (
จะมีขนาดไม่แน่นอน
แล้วแต่เครื่อง แต่โดยทั่วๆไป CPU
แบบ RISC จะมีขนาดของ Word = 32 Bit ) โดยใน 1 Word
นั้น
ก็จะกำหนดทุกๆอย่างทั้งคำสั่ง,
Operation , จะดึง Operand จากที่ไหน ,
จะให้เก็บผลลัพธ์ ( Result ) ที่ไหน และ
คำสั่งถัดไปอยู่ที่ไหน
C = A + B : A และ B
คือ Operand , + คือ Operation และ C คือ Result
คำสั่งในการเข้าถึงหน่วยความจำหลัก
จะใช้แค่ load ( ดึงข้อมูล ) และ store (
เก็บข้อมูล ) เท่านั้น
สถาปัตยกรรมแบบ RISC นั้น
เมื่อจะทำการจัดการกับ
คำสั่งต่างๆ ก็จำเป็นจะต้องนำ Operand
มาเก็บไว้ใน Register ก่อน และ
ในแต่ละคำสั่งนั้น
ก็ถูกจำกัดไว้ที่ 1 Word
ซึ่งก็ไม่เพียงพอต่อการเก็บค่าของ
Operand ต่างๆ
ดังนั้นจึงใช้การอ้างตำแหน่งในหน่วยความจำแทน
แต่ การเข้าถึงหน่วยความจำนั้น
ต้องเสียเวลาอยู่พอสมควร
จึงมีการกำหนดให้ใช้เพียงแค่ 2
คำสั่งเท่านั้น คือการ load และ การ
store เพื่อลด traffic ระหว่าง
หน่วยประมวลผล และ หน่วยความจำ
ส่วนเวลาในการ load หรือ store นั้น
ก็ขึ้นอยู่กับขนาดของ Operand
คุณเคยสงสัยไหม?
ว่าทำไมราคาและประสิทธิภาพของ CPU
ต่างรุ่นกันที่ความเร็วเดียวกัน
ถึงได้แตกต่างกัน เช่น ทำไม Pentium Classic
100 MHz ถึงได้มีราคาแพงกว่า และ
ประสิทธิภาพสูงว่า
เมื่อเทียบกับ 486DX4-100 MHz
ทั้งๆที่ต่างก็มีความเร็วเท่าๆ
กัน คือ 100 MHz หรือ แม้แต่ Pentium II 233 MHz
ทำไมถึงได้แพง และ
ประสิทธิภาพสูงกว่า Pentium MMX 233 MHz ทั้งๆ
ที่ต่างก็มี MMX เหมือนๆกัน ใช้ FSB
เท่ากัน คือ 66 MHz และ ต่างก็มี
ความเร็วเป็น 233 MHz เช่นกัน ทำไม? และ
จะเป็นไปได้ไหม? ถ้าสามารถทำให้ 486
ทำงานได้ที่ 500 MHz
มันจะมีประสิทธิภาพเทียบเท่ากับ
Pentium III 500 MHz
นับวันๆ
ตลาดการแข่งขันของ CPU
ก็รุนแรงขึ้น ซึ่งแต่ละบริษัท
แต่ละฝ่าย ต่างก็เร่งนำ CPU
รุ่นใหม่ๆ ของตนออกสู่ท้องตลาด
ให้เร็วขึ้น ซึ่ง แน่นอน
การที่จะออก CPU รุ่นใหม่ๆ
ออกมาได้นั้น ผู้ออกแบบ
ก็ต้องคำนึงถึงความเข้ากันได้
กับ CPU รุ่นก่อนด้วย ซึ่ง CPU
รุ่นใหม่ๆ
ก็ควรที่จะทำงานด้วยคำสั่ง ( Instruction
) ต่างๆ ของ CPU
รุ่นก่อนหน้านี้ได้ด้วย
มิฉะนั้นแล้ว ก็เหมือนเป็นการ
ฆ่าตัวตาย เพราะ
หากไม่เข้ากันกับรุ่นก่อนแล้ว
การที่ผู้ซื้อจะพิจารณาซื้อ CPU
รุ่นใหม่เพื่อ upgrade รุ่นเดิมของตน
ก็เป็นไปได้ยาก
นับตั้งแต่ปี 1989 ที่ Intel
ได้ประกาศตัว 80486 ซึ่งเป็น Processor 32 Bit
ก็ได้ทำการเปิดตัว pipeline x86 CPU ด้วย
โดย Pipeline นั้น
จะทำให้สามารถทำงานได้หลายๆ
คำสั่งในเวลาเดียวกันได้
ทำให้ประสิทธิภาพนั้นสูงขึ้น
ซึ่งต่อมา ในปี ก็ได้ 1993
ก็ได้เปิดตัว CPU ในยุคที่ 5 ของตน
นั่นก็คือ Intel Pentium ซึ่งก็ได้นำเอา
pipeline มาใส่ไว้ใน CPU ของตนด้วยกันถึง
2 pipeline ( ใน 486 มีเพียง 1 pipeline )
หลักสำคัญในการออกแบบ
Pentium
เพื่อให้มีความเข้ากันได้ย้อนหลัง
และ
ยังทำให้ได้ความเร็วที่สูงขึ้น
ก็คือ การจับเอา CPU 2
ตัวเข้ามาไว้ในตัวเดียวกัน และ
ให้ทำงานแบบขนานไปพร้อมๆกัน
โดยไม่ขึ้นต่อกัน ทำให้ Pentium นั้น
สามารถทำงานได้ 2
คำสั่งในเวลาเดียวกันพร้อมๆกัน (
ก็คือ 2 pipeline ) นั่นเอง
โดยใช้เรียกสถาปัตยกรรมนี้ว่า
Superscalar
ก่อนจะอธิบายถึงเรื่อง Pipeline
อยากให้คุณลองนึกถึงโรงงานประกอบรถยนต์นะครับ
ถ้านึกไม่ออก ก็เอาง่ายๆ
อย่างนี้ก่อนดีกว่าครับ
สมมุติว่า มีคน 5 คน ช่วยกันทำงาน
ถ้ามีงานมา แล้วให้ทั้ง 5
คนช่วยกันทำทั้งหมดเลย กับ
แบ่งงานออกเป็นส่วนย่อยๆ
แล้วแต่ละคน
ก็รับงานไปทำคนละส่วน
อย่างไหนน่าจะมีประสิทธิภาพมากกว่ากัน?
โดยถ้าให้คนหนึ่งคอยรับงาน
แล้วส่งต่อให้อีกคนคอยจัดการรายละเอียดของงาน
แล้วอีก 2 คนทำงานที่ได้รับ
คนสุดท้ายคอยรอผลลัพธ์มาเขียนสรุป
เมื่อคนรับงานส่งต่อให้คนจัดการรายละเอียดแล้ว
ก็ว่าง และ
ก็พร้อมที่จะรับงานใหม่
ในขณะที่
เมื่อคนที่สองส่งงานให้อีก 2
คนจัดการทำงานให้ ตน
ก็จะว่างพร้อมที่จะรับงานใหม่จากคนแรก
หรือ เมื่อ 2
คนที่คอยเป็นผู้ทำงานให้
ทำงานเสร็จและส่งต่อให้คนสุดท้ายเขียนผลลัพธ์ส่ง
แล้ว ทั้งคู่ ก็จะว่าง
รอรับงานต่อจากคนที่ 2 ได้ต่อไป
หลักการดังกล่าว ก็เอามาใช้กับ CPU
โดยการแบ่ง CPU
ออกเป็นหน่วยย่อยต่างๆ
เพื่อให้ทำหน้าที่แตกต่างกัน
นี่หละครับ จุดเริ่มต้นของ Pipeline
Pipeline
นั้นเดิมทีเป็นเทคนิคของสถาปัตยกรรมแบบ
RISC แต่ต่อๆ มา
ก็ได้นำมาใช้กับสถาปัตยกรรมแบบ
CISC ซึ่งการทำงานของมัน ก็คือ
จะสามารถรับงานใหม่ได้ในขณะที่ยังคงทำงานเก่าต่อไปได้ด้วย
เพราะมีการแบ่งงานกันทำ
กล่าวคือแบ่ง CPU ออกเป็นส่วนย่อยๆ
แล้วแบ่งงาน กันรับผิดชอบ
โดยจะแบ่งเป็นภาคหลักๆ คือ
ภาครับคำสั่ง ภาคการถอดรหัส
ภาคการรับข้อมูล ภาคประมวลผล และ
ภาคเขียนข้อมูลกลับ ซึ่งคล้ายๆ
กับกระบวนการผลิตใน
โรงงานอุตสาหกรรม
เรียกสถาปัตยกรรมนี้ว่า CPU Pipeline
ซึ่ง ผู้ผลิต CPU บางเจ้า
ก็ได้แบ่งซอยช่วง ของ Pipeline
ออกไปเป็นขั้นตอนย่อยๆ ต่างๆกัน
แต่โดยรวมแล้ว
ก็ยังคงมีขั้นตอนหลักๆ อยู่ 5
ขั้น (
หรือจะมองให้เล็กลงเหลือเพียงแค่
3 ขึ้น ก็ได้ ) ดังนี้
บางตำรา
ก็อาจมีการรวมขั้นตอนทั้ง 5
ดังกล่าว ให้เหลือเพียงแค่ 3
ขั้นตอนคือ Instruction Fetch , Instruction Decode และ Execute
เท่านั้น
แต่ก็ยังคงหลักสำคัญเดิมอยู่
การทำงาน (
ทั้งทางทฤษฎี และ ทางปฏิบัติจริง
) ของ Pipeline จะเป็นดังรูปนี้
กล่าวคือ เมื่อ
ภาครับคำสั่ง รับคำสั่งมา
ก็จะทำการส่งต่อให้
ภาคแปลคำสั่ง เมื่อส่งต่อให้
แล้ว
ก็ทำการรับคำสั่งถัดไปทันที และ
เมื่อ ภาคแปลคำสั่งได้รับคำสั่ง
ก็จะทำการแปล และ แยกแยะคำสั่ง
แล้วส่งต่อให้ภาครับข้อมูลต่อไป
เป็นทอดๆ
ซึ่งทำให้สามารถทำงานได้หลายๆ
คำสั่งในขณะเวลาเดียวกัน
แต่ในความเป็นจริงนั้น
ช่วงเวลาบางช่วงอาจยาวเกินช่วงอื่นๆได้
โดยเฉพาะช่วงของการประมวลผล
ซึ่งอาจนานกว่าช่วงอื่นๆ
เป็นเท่าตัว
ทำให้เกิดช่วงของการรอ ( Wait State ) ได้
ซึ่งก็อาจทำให้การทำงานช้าลงไปเล็กน้อย
ลักษณะของคำสั่งที่ทำให้ Pipeline
นั้นทำงานได้เต็มประสิทธิภาพ
ก็คือคำสั่งที่จะทำงานในแต่ละคำสั่งนั้น
ไม่ขึ้นต่อกัน
และไม่รอค่าของคำสั่งก่อนหน้า
เพื่อมาเป็น Input
ของคำสั่งที่กำลังดำเนินการ
ซึ่งลักษณะของคำสั่งที่ทำให้ได้ผลไม่เต็มประสิทธิภาพนั้นจะเป็นดังนี้ครับ
ยกตัวอย่างให้
คำสั่งที่ 1 : A = 5
คำสั่งที่ 2 : B = A + 3
จะเห็นได้ว่า คำสั่งที่ 2
นั้นจะไม่สามารถทำต่อไปได้เลย
เพราะต้องรอผลลัพธ์ (
ของการกำหนดค่าให้กับ A ) เสียก่อน
ซึ่งช่วงการรอ ( Wait State )
จะอยู่ในช่วงของการรับข้อมูล ( Get
Operands ) ซึ่งจะต้องรอจนกระทั่ง
คำสั่งแรกทำเสร็จสิ้นเสียก่อน
จนถึงขึ้น Write Result เสียก่อน
จึงจะสามารถทำงานต่อไปได้
ดังรูป
แต่ถึงอย่างไร ก็ตาม
แม้ว่าจะทำไม่ได้เต็มประสิทธิภาพนัก
แต่การทำงานแบบ Pipeline
ก็ทำให้มีประสิทธิภาพสูงขึ้นและเร็วขึ้นกว่าแบบที่ไม่มี
Pipeline อยู่ดี ต่อมา
ได้มีการพัฒนาเรื่องการส่งต่อข้อมูล
หรือที่เรียกว่า Data Forwarding ขึ้น
ซึ่งลักษณะการทำงานจะช่วยลดขั้นตอนของตัวอย่างข้างต้น
กล่าวคือ ในบางครั้ง
ผลลัพธ์ของคำสั่งหนึ่งๆ
จะไปเป็น Operand ของคำสั่งถัดไป
การส่งต่อข้อมูลจะทำการเก็บผลลัพธ์ที่ได้จากคำสั่งนั้นๆไว้
ให้พร้อมใช้งาน
ในคำสั่งถัดไปได้
ทำให้ประหยัดขั้นตอนในการรับข้อมูล
( Get Operand ) ลงได้
คราวนี้เรามาดูในส่วนของ Superscalar
กันบ้าง ถ้า Pipeline
นั้นคือการทำงานให้แต่ละคำสั่งนั้นคาบเกี่ยวกัน
( Overlap ) คือสามารถรับคำสั่งถัดไปได้
ในขณะที่กำลังทำงานในคำสั่งใดๆ
อยู่ Superscalar นั้น ก็คือ
จะทำงานพร้อมๆกันไปเลย
หลายๆคำสั่ง ซึ่งจะนำเอา Pipeline
หลายๆ Pipeline มาทำงานขนานกันไป
ดังรูป
สรุปความง่ายๆ ก็คือ CPU
ใดๆ ที่มี Pipeline มากกว่า 1 Pipeline ใน CPU
นั้นๆ จะเรียก CPU นั้นๆว่าเป็น CPU
แบบ Superscalar สถาปัตยกรรมแบบ Superscalar
นั้นได้ถูกนำมาใช้บน CISC
เป็นครั้งแรก กับ Intel Pentium ( Classic )
ซึ่งมี Pipeline อยู่ 2 Pipeline กล่าวคือ
สามารถทำงาน 2 คำสั่งได้พร้อมๆกัน
แบบ อัตโนมัติ
เมื่อรับคำสั่งจากโปรแกรมใดๆ
มาแล้ว ก็จะทำการแยกคำสั่งนั้นๆ
ไปให้กับ Pipeline ทั้งคู่ (
ซึ่งเรียกว่า U-Pipeline และ V-Pipeline )
ถึงแม้ว่าจะแยกคำสั่งออกได้ไม่ทั้งหมด
เพราะยังมีการรอค่า
หรือมีความเชื่อมโยงภายในของโปรแกรมอยู่
แต่มันก็จะพยายามแยกออก
ให้ได้มากที่สุดเท่าที่จะได้
เคยเห็นโปรแกรมบางชนิดที่บอกว่า
Optimize for Pentium ไหมครับ โปรแกรมพวกนี้
ก็คือมีการปรับแต่งคำสั่งให้ใช้ความสามารถของ
Pipeline ได้อย่างเต็มประสิทธิภาพ
รวมถึงสามารถแยกการทำงาน
ออกเป็นคู่ เพื่อให้
แยกการทำงานของ U-Pipeline และ V-Pipeline
ได้อีกด้วย
ซึ่งถึงแม้ว่าโปรแกรมเหล่านี้จะสามารถทำงานได้บน
486
แต่ประสิทธิภาพและความเร็วที่ได้
ก็จะด้อยกว่า ทำงานบน Pentium อยู่มาก
เพราะ 486 มีเพียง Pipeline เดียว
ดูๆ
แล้วก็เกิดความคิดที่ว่า
ถ้าเพิ่มจำนวน Pipeline เข้าไปมากๆ
การทำงานก็จะยิ่งเร็วมากๆ
ใช่ไหม? เปล่าเลย ถึงแม้ว่าจะมี
Pipeline เพิ่มขึ้นมาเป็น 3 หรือ 4 Pipeline
แต่ก็ใช่ว่า
จะทำให้ได้ความสามารถเป็นเท่าจากของเดิม
( ที่มี 2 Pipeline ) ทั้งนี้ และ ทั้งนั้น
ก็เนื่องจาก
สาเหตุดังกล่าวที่ผมเคยกล่าวไปแล้ว
ถ้าคำสั่งแต่ละคำสั่งนั้น
ยังมีความเชื่อมโยงกันอยู่
ยังคงต้องรอค่าจากคำสั่งก่อนหน้าเพื่อนำมาประมวลผลในคำสั่งถัดไปอยู่
ถึงแม้จะมีหลายๆ Pipeline
ก็เร็วขึ้นได้ไม่เกินเท่าตัวจากเดิมแน่ๆ
แต่ถึงอย่างไรก็ตาม CPU รุ่นใหม่ๆ
ที่ออกมา ก็มีจำนวนของ Pipeline
มากกว่า 2 เพราะโปรแกรมใหม่ๆ จะ support
การทำงานนี้แทบทั้งหมดแล้ว
home cpu mainboard ram keyboard bus modem scanner