วันพุธที่ 5 กุมภาพันธ์ พ.ศ. 2557

บทที่ 3 หน่วยประมวลผล หรือ ซีพียู

1. การทำงานของคอมพิวเตอร์ 
การทำงานของคอมพิวเตอร์ ใช้หลักการเก็บคำสั่งไว้ที่ ซีพียูอ่านคำสั่งจากหน่วยความจำมาแปลความหมายและกระทำตามเรียงกันไปทีละคำสั่ง หน้าที่หลักของซีพียู คือควบคุมการทำงานของคอมพิวเตอร์ทั้งระบบ ตลอดจนทำการประมวลผล
กลไกการทำงานของซีพียู มีความสลับซับซ้อน ผู้พัฒนาซีพียูได้สร้างกลไกให้ทำงานได้ดีขึ้น โดยแบ่งการทำงานเป็นส่วน ๆ มีการทำงานแบบขนาน และทำงานเหลื่อมกันเพื่อให้ทำงานได้เร็วขึ้น

2. สถาปัตยกรรมของซีพียู
            CPU แบ่งออกเป็น 2 กลุ่มตามสถาปัตยกรรมการออกแบบได้ดังนี้
1. สถาปัตยกรรมแบบ CISC: Complex Instruct on Set Computing เป็นสถาปัตยกรรมการออกแบบซีพียูที่ใช้ในเครื่องซีพียูทั่วๆไป แต่เดิมแนวความคิดที่จะทำให้คอมพิวเตอร์ทำงานได้รวดเร็วขึ้น จะใช้วิธีการเพิ่มขีดความสามารถของคำสั่งทำให้คำสั่งหนึ่งต้องทำงานเพิ่มขึ้นและซับซ้อน ด้วยวิธีนี้ทำให้สถาปัตยกรรมของตัวซีพียูต้องสนับสนุนชุดคำสั่งใหม่ๆ เพิ่มขึ้น  ประกอบด้วย ไซเคิล (Cycle) การทำงานของแต่ละคำสั่งจะใช้จำนวนไซเคิลไม่เท่ากัน บางคำสั่งทำงานเสร็จภายในไซเคิล ความคิดนี้จึงกลายมาเป็นคอมพิวเตอร์ในกลุ่ม CISC และความคิดนี้ได้พัฒนาต่อเนื่องมาเป็นลำดันจนถึงปัจจุบันซีพียูหลายตัว เช่น 80386 80486 จนมาถึง Pentium 4 ก็ใช้แนวความคิดนี้ สถาปัตยกรรมแบบนี้จะทำให้การออกแบบวงจรภายในซับซ้อนมาก แต่ง่ายกับโปรแกรมเมอร์ในการเรียนรู้คำสั่งเพราะการประมวลผลทั้งหมดจนกระทำในตัวซีพียู ซึ่งถ้าคำสั่งซับซ้อนมากๆก็จะทำให้การประมวลผลช้าสถาปัตยกรรมแบบ RISC: Reduces Instruction Set Computingปี ค.ศ.1975 กลุ่มนัดวิจัยแห่งมหาวิทยาลัยแคลิฟอร์เนีย ได้พัฒนาซีพียูที่มี
2.สถาปัตยกรรมแบบ RISC: Reduces Instruction Set Computing โดยให้ซีพียูทำงานด้วยไซเคิลที่แน่นอน และลดจำนวนคำสั่งลงให้เหลือคำสั่งพื้นฐานมมากที่สุด แล้วใช้หลักการทำงานแบบไปป์ไลน์  (Pipeline) จึงนับว่าเป็น สถาปัตยกรรมที่ได้ทำการแก้ปัญหาของ RISC โดยใช้การประมวลผลแบบง่ายๆเป็นการพัฒนาประสิทธิภาพของฮาร์ดแวร์ให้มีความเร็วสูงขึ้น เนื่องจากออกแบบซีพียูไม่ซับซ้อนเหมือนอย่าง RISC จึงง่ายต่อการพัฒนาประสิทธิภาพของฮาร์ดแวร์คอมพิวเตอร์แบบ RISC จึงทำงานได้เร็ว ซึ่งต่อมาบริษัท  ซัรไมโครซิสเต็มก็นำมาใช้เป็นซีพียูหลักในเครื่อง SPARC และจะพบได้ในเครื่องระดับเวิร์คสเตชั่นขึ้นไป

3.หลักการทำงานของซีพียู
มีหน่วยสำคัญอยู่  2  หลักการคือ
1.หน่วยควบคุมคือ เป็นหน่วยที่ทำหน้าที่ประสานงานและควบคุมการทำงานของคอมพิวเตอร์ควบคุมให้อุปกรณ์รับข้อมูลส่งข้อมูลไปที่หน่วยความจำติดต่อกับอุปกรณ์แสดงผลเพื่อสั่งให้นำข้อมูลจากหน่วยความจำไปยังอุปกรณ์แสดงผล
 2.หน่วยคำนวณและตรรกะ คือ เป็นหน่วยที่ทำหน้าที่ในการคำนวณต่างๆทางคณิตศาสตร์ได้แก่ บวก  ลบ  คูณ  หาร
หลักการทำงานของCPU
โดยวงรอบของการทำคำสั่งของซีพียูประกอบด้วยขั้นตอนการทำงานพื้นฐาน 4 ขั้นตอนดังนี้
1.ขั้นตอนการรับเข้าข้อมูล(fatch)เริ่มแรกหน่วยควบคุมรับรหัสคำสั่งและข้อมูลที่จะประมวลผลจากหน่วย
ความจำ
2. ขั้นตอนการถอดรหัส ( decode )เมื่อรหัสคำสั่งเข้ามาอยู่ในซีพียูแล้ว หน่วยควบคุมจะถอดรหัสคำสั่งแล้วส่งคำสั่งและข้อมูลไปยังหน่วยคำนวณและตรรกะ
3.ขั้นตอนการทำงาน(execute) หน่วยคำนวณและตรรกะทำการคำนวณโดยใช้ข้อมูลที่ได้รับการถอดรหัสคำสั่ง และทราบแล้วว่าต้องการทำอะไร ซีพียูก็จะทำตามคำสั่งนั้น
4.ขั้นตอนการเก็บ(store)หลังจากทำคำสั่ง ก็จะเก็บผลลัพธ์ที่ได้ไว้ในหน่วยความจำ

4. การติดต่อระหว่างอุปกรณ์รอบข้างกับซีพียู
1. การติดต่อแบบพอลลิ่ง (polling) ลักษณะการติดต่อแบบนี้คือ ทุกๆ ช่วงเวลาหนึ่ง (Quantum time) ซีพียูจะหยุดงานที่ทำอยู่ชั่วคราวและไปตรวจเช็คที่แต่ละแชนแนลเพื่อดูว่า มีอุปกรณ์ตัวใดบ้างต้องการส่งข้อมูลมาให้ซีพียูจากอุปกรณ์แรกไปถึงอุปกรณ์สุดท้าย ถ้าอุปกรณ์ต้องการส่งข้อมูล ซีพียูก็จะรับข้อมูลมาแต่ถ้าอุปกรณ์นั้นไม่ต้องการส่งข้อมูล ซีพียูก็จะเปลี่ยนไปตรวจสอบอุปกรณ์ตัวอื่นต่อไปจนกระทั่งตรวจสอบครบหมด ซีพียูจะกลับไปทำงานของมันตามเดิม วนรอบ (Loop) การทำงานเช่นนี้เรื่อยไปลักษณะของการพอลลิ่ง อาจยกตัวอย่างของการสอนหนังสือในห้องเรียนมาประกอบเพื่อความเข้าใจ นั่นคือในขณะที่ครูกำลังสอนนักเรียน ทุก ๆ 10 นาที คุณครูจะหยุดสอนและไล่ถามนักเรียนทีละคนว่ามีปัญหาอะไรหรือไม่ ถ้านักเรียนคนที่ถูกถามไม่มีคำถามหรือข้อสงสัยคุณครูก็เปลี่ยนไปถามนักเรียนคนถัดไป แต่ถ้า นักเรียนคนนั้นมีปัญหาจะถาม ครูก็จะอนุญาตให้นักเรียนถามได้ เมื่อถาม-ตอบเสร็จแล้วครูก็จะไปถามนักเรียนคนอื่นต่อจนหมดชั้น แล้วครูจึงกลับไปสอนต่อจนอีก 10 นาทีจึงเริ่มต้นถามใหม ข้อเสียของการพอลลิ่งคือ ในกรณีที่อุปกรณ์ต่างๆ ไม่ต้องการส่งข้อมูลเลย ซีพียูจะเสียเวลาที่ต้องตรวจเช็คอุปกรณ์ทุกตัว (คุณครูเสียเวลาในการถามนักเรียนทุกคน โดยที่อาจไม่มีนักเรียนคนไหนมีคำถามเลย) และอีกประการหนึ่งคืออุปกรณ์ที่ต้องการส่งข้อมูลจะส่งข้อมูลให้ซีพียูได้เฉพาะเมื่อถึงเวลาที่ซีพียูตรวจเช็คมาถึงตัวมันเท่านั้น ทำให้อุปกรณ์นั้นเสียเวลาในการรอ (นักเรียนต้องรอจนกว่าคุณครูถามมาถึงตัวเขา เขาถึงจะถามคำถามได้)
2.การติดต่อแบบอินเตอร์รัพ (interrupt) ลักษณะการติดต่อแบบนี้จะลดข้อเสียแบบพอลลิ่งได้มาก มีขั้นตอนดังนี้คือ เมื่ออุปกรณ์ตัวใดต้องการส่งข้อมูล มันจะส่งสัญญาณผ่านทางแชนแนลไปบอกซีพียู เมื่อซีพียูรับทราบแล้วจะหยุดงานที่ทำอยู่ชั่วคราว เพื่อให้อุปกรณ์ทำการส่งข้อมูลจนกระทั่งเสร็จสิ้นลง ซีพียูจึงกลับไปทำงานที่ทำค้างไว้ต่อ เปรียบได้กับการที่คุณครูสอนไปเรื่อยๆ เมื่อนักเรียนคนใดมีคำถามจะถาม ก็ยกมือเป็นการบอกให้คุณครูรับทราบ (ส่งสัญญาณให้ซีพียู) เมื่อคุณครูเห็นนักเรียนยกมือ (CPU รับรู้การต้องการส่งข้อมูล) ก็หยุดสอนชั่วคราวเปิดโอกาสให้นักเรียนได้ถาม (ส่งข้อมูล) และตอบคำถาม เมื่อนักเรียนเข้าใจในปัญหาที่มีอยู่ (การส่ง ข้อมูลสิ้นสุดลง) ครูก็เริ่มสอนนักเรียนต่อไป (ซีพียูกลับมาทำงานที่ค้างไว้) การติดต่อแบบอินเตอร์รัพต์ ซีพียูไม่ต้องเสียเวลาในการตรวจเช็คความต้องการส่งข้อมูลของอุปกรณ์ ทุกตัว และในทำนองเดียวกันอุปกรณ์ก็ไม่ต้องเสียเวลารอแต่อย่างไรก็ตามซีพียูอาจไม่สามารถหยุดงานที่กำลังทำอยู่ได้ในทันที ในกรณีนี้อุปกรณ์ตัวนั้นต้องรอจนกระทั่งงานที่ซีพียูกำลังทำอยู่นี้เสร็จสิ้นลงเสียก่อน มันจึงส่งข้อมูลได้
3.การติดต่อแบบเมลบ๊อกซ์ (mailbox) ลักษณะการติดต่อแบบนี้ ระบบต้องเสียเนื้อที่ในหน่วย ความจำบางส่วนเพื่อเป็นที่สำหรับพักข้อมูล เมื่อมีอุปกรณ์บางตัวที่ต้องการส่งข้อมูล มันก็จะส่งข้อมูลไปไว้ที่หน่วยความจำส่วนนี้ และสำหรับซีพียูทุกๆ ช่วงเวลาหนึ่งๆ ซีพียูจะหยุดงานที่ทำไว้เพื่อจะไปตรวจสอบที่หน่วยความจำส่วนนี้เพื่อดูว่ามีข้อมูลอยู่หรือไม่ ถ้าไม่มี ข้อมูลถูกส่งไปไว้ในหน่วยความจำนี้ ซีพียูจะกลับไปทำงานเดิมที่ค้างไว้ แต่ถ้ามีมันก็จะรับข้อมูลเข้ามา จะเห็นได้ว่าการติดต่อแบบเมลบ๊อกซ็นี้เป็นการผสมผสานระหว่างการอินเทอร์รัพต์กับการพอลลิ่ง

5.พัฒนาการของซีพียู
แบ่งตามยุคสมัย ออกเป็น 7 ยุค ดังนี้
            ยุคที่ 1 บริษัท IBM ได้ผลิตเครื่องคอมพิวเตอร์ส่วนบุคลขึ้นมา และได้เลือกใช้ซีพียู 8088 และ 8086 ของบริษัท Intel เครื่องคอมพิวเตอร์ของบริษัท IBM เป็นที่แพร่หลายจนมีผู้ผลิตเครื่องเลียนแบบออกมามากมายที่ใช้ซีพียูรุ่นนี้ ซึ่งเป็นของบริษัท Intel
ซีพียูรุ่น 8086
            ยุคที่ 2 ยุคของคอมพิวเตอร์ที่ใช้ซีพียูตระกูล 286 ซึ่งยุคนี้ซีพียูจะมีความเร็วสูงสุดเพียง 20 MHz
 ซีพียูรุ่น 286
          ยุคที่ 3 ยุคของซีพียูตระกูล 386 เริ่มมีการใช้หน่วยความจำแคชทำงานร่วมกับซีพียู เป็นผลให้ซีพียูในตระกูล 386 มีประสิทธิภาพในการทำงานเพิ่มขึ้นกว่าในรุ่น 286
ซีพียูรุ่น 386
            ยุคที่ 4 ยุคที่คอมพิวเตอร์เริ่มใช้กันอย่างแพร่หลาย ซีพียูตระกูล 486 จึงเป็นที่นิยมสำหรับผู้ใช้งานในระดับองค์กร และรวมไปถึงเครื่องคอมพิวเตอร์ที่ใช้ภายในบ้าน
ซีพียูรุ่น 486
            ยุคที่ 5 เริ่มมีการตั้งซื่อของซีพียู แทนที่จะเรียกชื่อเป็นตัวเลขเช่นเดิม เริ่มจากบริษัทIntel ตั้งชื่อซีพียูว่า “Pentium” ซึ่งมีรากศัพท์มาจากภาษาโรมันซึ่งแปลว่า “ห้า”  บริษัท AMDก็ตั้งชื่อของตนว่า “K5”
ซีพียูรุ่น Pentium
            ยุคที่ 6 ซีพียูยังคงเป็น Pentium แต่มีความเร็วในการประมวลผลมากขึ้น ใช้ชื่อว่า“Pentium II” ทาง AMD ก็ได้ผลิตซีพียูโดยใช้ชื่อว่า “K6” ออกมา หลังจากนั้นก็มีซีพียูของทั้งสองค่ายผลิตออกมาอีกหลายรุ่นด้วยกันไม่ว่าจะเป็น Celeron , Pentium III Coppermineและ AMD K6-3
ซีพียูรุ่น Pentium II และ K6
            ยุคที่ 7 ยุคปัจจุบัน ความเร็วของซีพียูได้เพิ่มขึ้นอย่างมากจนทะลุหลักถึง 1 GHzสาเหตุที่มีความเร็วขึ้นมาก อันเนื่องมาจากเทคโนโลยีการผลิตที่ออกแบบให้ซีพียูมีขนาดเล็กลงนั่นเอง ซีพียูในยุคนี้ได้แก่ Athlon , Duron ที่ ผลิตโดย  AMD และ Pentium 4 ที่ผลิตโดยIntel

7.เพนเทียม II
นับว่าการแข่งขันในตลาดซีพียูนับวันยิ่งแข่งกันสูงและพัฒนาเร็วขึ้น เพนเทียม II อาจเรียกได้ว่าเป็นลูกผสมระหว่างเทคโนโลยี MMX และเพนเทียม โปร กล่าวได้ว่าเพนเทียม II ก็คือเพนเทียมโปรพร้อมเทคโนโลยี MMX ซึ่งแรกเริ่มนั้น Intel ให้ชื่อโค๊ดว่า คลามัธ (Klamath)และต่อมาในท้ายที่สุดก็ได้ชื่อว่า เพนเทียม II

8.เซลเลอรอน
เซลเลอรอนเป็นซีพียูตระกูลเพนเทียม II ของอินเทล กล่าวได้ว่าเป็นเพนเทียม II ที่ไม่มีแคชระดับสอง ซึ่งเพนเทียม II ที่มีโค๊ดว่า คลาแมธ นั้นมีแคชระดับสอง 256/512 กิโลไบต์ เซลเลอรอนมีความเร็วต่ำสุด 266 MHz มีทรานซิสเตอร์ 7.5 ล้านตัว และขนาดของทรานซิสเตอร์ 0.25 ไมครอน ซึ่งถือเป็นขนาดเล็กลง ใช้ไฟน้อยลง และความร้อนขณะประมวลผลน้อย รุ่นแรกออกแบบเพื่อใช้กัน External Bus Speed 66 MHz เหมือนคลาแมธ ตัวซีพียูเองยังใช้เทคโนโลยี SEPP (Single Edge Cartridge Processor Package) เช่นเดียวกัน ไม่ได้ย้อนกลับมาใช้ PGA (Pin Grid Array) เหมือน Socket 7 ดูเหมือนว่าจะป็นเจตนาของอินเทลที่พยายามสร้างความแตกต่างให้กับตัวผลิตภัณฑ์อยู่ไม่น้อย ในขณะเดียวกันก็สร้างมาตรฐานของตัวเองอยู่ในตัว เพราะเซลเลอรอนใช้กับเมนบอร์ด slot 1 ที่ออกแบบสำหรับเพนเทียม II ได้ ดูเหมือนว่าเซลเลอรอนถูกถือเป็นซีพียูที่ออกมาเพื่อรักษาตลาดระดับล่าง หรือเพื่อมาแข่งกับ AMD-K6 300 MHz โดยตรง โดยทางเทคโลยีแล้วอินเทลยังแบ่งซีพียูตระกูลเซลเลอรอนออกเป็นอีกสองรุ่นย่อย คือ โควินตัน (Covington) และ เมนโดซิโน (Mendocino) ทั้งสองรุ่นนั้น เป็นซีพียูที่ใช้เทคโนโลยี 0.25 ไมครอนเหมือนกัน รุ่นที่ผมกล่าวถึงคือ โควินตัน (Covington) ซึ่งเป็นเซลเลอรอนที่ออกวางตลาดก่อน และผมนำมาทดสอบครั้งนี้ ความแตกต่างของทั้งคือ โควินตัน (Covington) ออกมาก่อน และเมนโดซิโน (Mendocino) จะตามมา พร้อมกับ แคชระดับสองขนาด 128 กิโลไบต์ และความเร็วเริ่มต้น 300 MHz
หน้าตาแสดงชิปเซลเลอรอน จะเห็นว่าบน SEPP จะมีชิปวางอยู่ตรงกลาง ส่วนตำแหน่งที่เคยเป็นที่อยู่แคชทั้งสองข้าง ไม่ปรากฎในเซลเลอรอน ดังนั้นเซลเลอรอนจึงเป็นซีพียูที่ปราศจากแคชระดับสอง แต่ออกแบบเพื่อใช้งานกับ Slot I และใช้บนเมนบอร์ดเดียวกับเพนเทียม II คลาแมธได้
          ประสิทธิภาพของเซลเลอรอนนั้นเทียบไม่ได้กับคลาแมธ เซลเลอรอนความเร็ว 266 MHz เมื่อทดสอบประสิทธิภาพของซีพียูพบว่าต่ำกว่าคลาแมธ มาก โดยคลาแมธ 233 MHz มีประสิทธิภาพดีกว่า 25 - 30% ถึงแม้ในทางเทคโนโลยีแล้วจะถือว่าเซลเลอรอนใช้เทคโนโลยีระดับเดียวกับคลาแมธและมีบางประการ เช่นในเรื่องของ Branch Prediction หรือ Piplined FPU แต่ผลการทดสอบเช่น นั้นกลับเป็นการพิสูจน์ว่ายิ่งซีพียูความเร็วสูงเท่าไร แคชระดับสองยิ่งต้องออกแบบให้มีขนาดใหญ่มากขึ้น และมีความเร็วของสัญญาณนาฬิกาใกล้เคียงกับซีพียู มิฉะนั้นผลจะออกมาใกล้เคียงกับเซลเรอรอน ที่เมื่อทดสอบประสิทธิภาพเทียบกับ AMD K6-266 แล้วยังปรากฎว่าให้คะแนะต่ำกว่า AMD-K6 อีกเล็กน้อย

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

แสดงความคิดเห็น