วันจันทร์ที่ 16 ธันวาคม พ.ศ. 2556

บทที่ 3 เรื่อง หน่วยประมวลผลกลางหรือซีพียู(CPU)

บทที่ 3 เรื่อง หน่วยประมวลผลกลางหรือซีพียู(CPU)


CPU คืออะไร ?



            หน่วยประมาลผลกลางหรือซีพียู เรียกอีกชื่อหนึ่งว่า โปรเซสเซอร์ (processor) หรือ ชิป (Chip) นับเป็นอุปกรณ์ที่มีความสำคัญมากที่สุดของฮาร์ดแวร์ เพราะมีหน้าที่ในการประมวลผลข้อมูลที่ผู้ใช้ป้อนเข้ามาทางอุปกรณ์อินพุต ตามชุดคำสั่งหรือโปรแกรมที่ผู้ใช้ต้องการใช้งาน 
            CPU เปรียบเสมือนสมองของเครื่องคอมพิวเตอร์มีหน้าที่ในการคำนวณประมวลผลข้อมูลและเป็นศูนย์กลางทางการควบคุมการทำงานของอุปกรณ์ต่างๆ โดย CPU ประกอบด้วย 3 ส่วนหลักได้แก่ 

1. ส่วนการควบคุม (Control Unit) เป็นศูนย์กลางการควบคุมการทำงานภายในหน่วยประมวลผล
2. ส่วนการคำนวณทางคณิตศาสตร์และตรรกะศาสตร์ (Arithmetic/Logic Unit) เป็นส่วนของการคำนวณต่างๆ
3. ส่วนหน่วยความจำและรีจิสเตอร์(Primary Memory/Register) ช่วยในการเก็บข้อมูลชั่วคราวเพื่อนำไปประมวลผลหรือจัดเตรียมข้อมูลก่อนและหลังการจัดเก็บข้อมูล



พัฒนาการของซีพียู



เป็น บริษัทผู้ผลิตซีพียูที่เก่าแก่และมีการพัฒนา มาอย่างต่อเนื่อง นับตั้งแต่ซีพียู 8086 , 8088 และซีพียูในตระกูล 80x86 เรื่อยมา จนมาถึง Celeron , Pentium II และ III ซึ่งได้รับความนิยมอย่างมากในสมัยนั้น ก่อนที่จะก้าวเข้าสู่ยุค Celeron II, Pentium 4 และ Pentium 4 Extreme Edition ที่ได้รับการตอบรับจากผู้ใช้อย่างกว้างขวาง เรื่อยมาจนมาถึงยุคของ Celeron D และ Pentium 4 ภายใต้รหัส Processor Number ใหม่ รวมไปถึงซีพียูในกลุ่ม Dual และ Quad-Core อย่าง Pentium D , Pentium Dual-Core, Pentium Extreme Edition , Core Duo, Core 2 Duo, Core 2 Quad และ Core 2 Extreme ที่ถือได้ว่าเป็นจุดเริ่มต้นของยุคซีพียูในแบบ Dual & Multi-Core บนเครื่องซีพีที่ใช้กันอยู่แพร่หลายในปัจจุบัน รวมทั้งซีพียูบนโครงสร้างทางสถาปัตยกรรมแบบใหม่อย่าง Nehalem ที่จะมาพร้อมกันแบรนด์ใหม่ที่ชื่อว่า Core i7 เป็นต้น
รายชื่อของซีพียูสำหรับเครื่องคอมพิวเตอร์แบบ PC หรือ Desktop แต่ละรุ่นตั่งแต่อดีตจนถึงปัจจุบันของบริษัท อินเทล (Intel) มีดังนี้
  • ตระกูล 80x86 เป็นซีพียูรุ่นแรกๆ เช่น 80386,80486 ซึ่งปัจจุบันไม่ใช้กันแล้ว
  • Pentium เป็นซีพียูรุ่นแรกที่เปลี่ยนไปใช้วิธีตั้งชื่อเรียกว่า Pentium แทนตัวเลขแบบเดิม
  • Pentium MMX เป็นซีพียูที่ได้มีการนำเอาคำสั่ง MMX (Multimedia extension) มาใช้เพื่อเพิ่มขีดความสามารถทางด้านมัลติมีเดีย
  • Pentium Pro เป็นซีพียูรุ่นแรกของตระกูล P6 ซีพียูรุ่นนี้ใช้กับชิปเซ็ตรุ่น 440 FX และได้รับความนิยมในเครื่องเซิร์ฟเวอร์เป็นอย่างมากสมัยนั้น
  • Pentium II เป็นการนำซีพียู Pentium Pro มาปรับปรุงโดยเพิ่มชุดคำสั่ง MMX เข้าไป และเปลี่ยนไปใช้บรรจุภัณฤฑ์แบบตลับ ซึ่งใช้เสียบลงใน Slot 1 โดย L2 Cache ขนาด 512 ME ที่มีความเร็วเพียงครึ่งเดียวของความเร็วซีพียูCeleron เป็นการนำเอา Pentium II มาลดองค์ประกอบ โดยยุคแรกได้ตัด L2 Cache ออกมาเพื่อให้มีราคาถูกลง
  • Pentium III เป็นซีพียูที่ใช้ชื่อรหัสว่า Katmai ซึ่งถูกเพิ่มเติมชุดคำสั่ง SSE เข้าไป
  • Celeron II รุ่นแรกเป็นการนำเอา Pentium III ( Coppermine และ Tualatin) มาลด L2 Cache ลงเหลือเพียง 128 KB และ 256 KB ตามลำดับจากนั้นรุ่นถัดมาก็ได้นำเอาซีพียู Pentium 4 (Willamette และ Northwood) โดยยังคงใช้ชื่อเรียกอย่างเป็นทางการว่า Celeron หรือ Celeron II



หลักการทำงานของซีพียู

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



การติดต่อระหว่างอุปกรณ์รอบข้างกับซีพียู

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

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

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