CPU

       คำถามยอดนิยมคำถามหนึ่งที่มักมีผู้ถามกันมากก็คือ ร้านใหนที่ไว้ใจได้บ้าง? อันดับแรกให้ดูร้านที่เปิดขายมาได้นานพอสมควร เพราะช่วยให้มั่นใจได้ว่าน่าจะทำธุรกิจนี้อย่างจริงจัง ไม่ใช่ประเภทขายได้เงินพอใจแล้วก็ปิดร้านไป พออุปกรณ์มีปัญหา ก็เลยไม่รู้ไปตามเรื่อง รับประกันสินค้ากับที่ใหน ปัจจัยต่อมาก็ให้ดูว่าแต่ละร้านนั้นมีการรับประกันสินค้าอย่างไร เช่น รับประกัน 3 ปี รับเปลี่ยนเฉพาะปีแรก หรือเปลี่ยนได้ตลอด 3 ปี เป็นต้น ซึ่งวิธีการก็คือให้เลือกร้านที่รับประกันเปลี่ยนนานที่สุด อย่าลืมถามก่อนด้วยว่า ที่รับเปลี่ยนนั้นต้องรอกี่วัน จะได้ของใหม่มา เพราะถ้าต้องรอกันเป็นอาทิตย์หรือเดือน คิดแล้วบางทีก็ไม่ค่อยคุ้มเท่าไหร่ ส่วนปัจจัยด้านราคานั้นก็สำคัญเช่นกัน แต่ไม่ควรให้น้ำหนักมากจนเกินไป เพราะร้านที่ตั้งราคาถูกมากๆ นั้นอาจจะไม่รับผิดชอบเรื่องการประกันในระดับที่คุ้มค่านัก เช่น อาจจะลดระยะเวลาการเปลี่ยนสินค้า ในกรณีชำรุดเสียหายลงเหลือเพียงไม่กี่สัปดาห์ อย่างไรก็ตามหากเป็นการซื้อซีพียูแล้วด้านการรับประกันนั้น จะเป็นประเด็นที่ไม่สำคัญนัก ทั้งนี้เพราะซีพียูเป็นอุปกรณ์ที่ไม่เสียกันได้ง่ายๆ เพราะฉะนั้นหากจะเลือกซื้อร้านที่ราคาถูกที่สุดก็นับว่าไม่เสียหาย ยกเว้นอุปกรณ์ที่มีความเสี่ยงต่อการเสียหายได้ง่าย อย่างเช่น ฮาร์ดดิสค์ที่ควรคำนึงด้านรับปะกันเป็นหลัก

Pentium Classic

       p54c.gif (46243 bytes)

    ซีพียูเพนเทียมคลาสสิคจะมีลักษณะของซีพียู 2 รูปแบบ คือ 1.ผิวด้านหน้าเป็นเซรามิก และ 2.ผิวด้านหน้าเป็นผิวด้านคล้ายทำจากคาร์บอน ซึ่งซีพียูในรูปแบบที่ 2 นั้น มักจะพบในซีพียูเพนเทียมความเร็ว 200 MHz มากกว่าความเร็วอื่น        

     วิธีสังเกตความเร็วของซีพีย ูจากด้านหน้าตัวชิพในแบบแรกนั้นจะสังเกตได้ที่ตัวเลขบริเวณด้านล่างของตัวซีพียู โดยจากตัวอย่างนั้น จะพบว่า มีตัวเลขแสดงรายละเอียดต่างๆ อย่างมากมาย เช่น ตัวเลขแสดงค่า icomp ซึ่งแสดงประสิทธิภาพของซีพียูเป็นคะแนน นอกจากนี้ยังมีรุ่นของซีพียูที่ผลิต แต่ที่สำคัญคือตัวเลขที่วงไว้ให้เห็นเท่านั้น เพราะตัวเลขตรงนี้ จะบ่งบอกความเร็วของซีพียูตัวนั้นให้ผู้ใช้ทราบ ส่วนซีพียูแบบที่ 2 นั้นจะมีตัวเลข บ่งบอกความเร็ว ปรากฎอยู่บริเวณด้านหน้าเช่นเดียวกัน โดยจะอยู่ตรงกลางซีพียูเป็นตัวเลขสีดำพิมพ์อยู่ ในบางกรณีนั้นซีพียูที่คุณกำลังจะซื้อ ก็มีการติดตั้งพัดลมที่บริเวณด้านหน้าของตัวชิพไว้แล้ว ทำให้ตัวเลขที่แสดงความเร็วของซีพียูด้านหน้าของชิพถูกบดบังไปทั้งหมดจนมองไม่เห็น ดังนั้นอีกจุดหนึ่งที่สามารถใช้ตรวจสอบความเร็วของซีพียูได้ และเป็นจุดที่เชื่อใจได้มากกว่าหมายเลขแสดงความเร็วที่ด้านหน้าด้วย นั่นคือการดูที่ด้านหลังหรือด้านเดียวกับขาของชิพ ที่บอกว่าเชื่อใจได้มากกว่านั้น ก็เนื่องจากบริเวณด้านหน้านั้นทราบมาว่า ในอดีตเคยมีการเปลี่ยนหมายเลขแสดงความเร็วให้เร็วกว่าความเป็นจริง เพื่อให้ได้ราคาดีขึ้นแต่ในความเป็นจริงแล้วซีพียูนั้นเป็นซีพียูสเป็คต่ำกว่าที่ผู้ใช้ระบุ

      แต่สำหรับตัวเลขที่อยู่ด้านหลังของซีพียูนั้นจะไม่สามารถแก้ไขได้เนื่องจากว่าจะเสี่ยงต่อการทำให้ขาของซีพียนูหักหรืองอ ซึ่งสร้างความเสียหาย ให้กับตัวชิพอย่างร้ายแรงจนถึงขั้นใช้การไม่ได้ การดูความเร็วของซีพียูนี้ให้พลิกด้านที่เป็นขาของซีพียู แล้วสังเกตตัวเลขตามภาพ จะพบว่ามีความเร็วของซีพียูปรากฎไม่ว่าจะเป็น 133 หรือ166 ส่วนตัวเลขอื่นๆ ก็เป็นเรื่องของรายละเอียดเหล่านี้ ไม่ใช้หัวข้อหลักด้านประสิทธิภาพแต่อย่างใด

Pentium MMX

p55c.gif (17287 bytes)

     ซีพียู 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

   ppro.gif (27422 bytes)

        ซีพียู 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

5k86chip.gif (26480 bytes)Am5x86.gif (25500 bytes)

     ซีพียู K5 ของ AMD นั้นดูจะไม่ค่อยเป็นที่นิยมนักของผู้ใช้บ้านเรา ซึ่งด้วยเหตุนี่ก็ทำให้ปัญหาด้านซีพียูรีมาร์กสำหรับ K5 นั้นไม่เกิดขึ้น แต่เพื่อความไม่ประมาทเราก็น่าจะทราบกันไว้ก่อนว่าจะต้องดูอย่างไรสำหรับการระบุซีพียู AMD K5 ส่วน K6 นั้นยังไม่อยู่ สำหรับตลาดโลกแต่มีแนวโน้มที่ค่อนข้างจะสดใสไม่น้อยทีเดียว วิธีการสังเกตความเร็วของซีพียู AMD นั้นง่ายๆ เพราะที่ด้านหน้าของตัวชิพแต่ละตัวนั้น จะมีการพิมพ์รุ่นความเร็วของซีพียูไว้เรียบร้อยแล้ว เช่นชิพ K5 PO-150 ซึ่งเห็นได้ชัดเจนว่าได้พิมพ์บอกไว้แล้วที่ด้านหน้า พร้อมทั้งยังบอกวิธีการเซ็ตความเร็วบัสไว้แล้ว ส่วน  K6 นั้นก็เช่นกัน โดยรูปร่างของซีพียูนั้นจะต่างกันไปเล็กน้อย แต่ก็ยังคงใช้วิธีตัวอักษรและตัวเลขแสดงความเร็วไว้ที่ด้านหน้าอย่างชัดเจน ส่วนปัญหาเรื่องพัดลมจะมาบังตัวเลข ทำให้ไม่สามารถระบุความเร็วได้นั้นไม่ต้องห่วง เนื่องจากว่าซีพียูของ AMD นั้นจะใช้พัดลมแบบที่ไม่ยึดแน่นอยู่กับซีพียูแบบของอินเทล ดังนั้นปัญหานั้นจึงไม่มี

amdk6.jpg (9948 bytes)

สรุปรายละเอียดของ 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 vs. CISC

     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

Pipeline & Superscalar

     คุณเคยสงสัยไหม? ว่าทำไมราคาและประสิทธิภาพของ 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

     ก่อนจะอธิบายถึงเรื่อง 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

     คราวนี้เรามาดูในส่วนของ 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