วันศุกร์ที่ 4 กรกฎาคม พ.ศ. 2557

หน่วยประมวลผลกลาง (Central Processing Unit: CPU)

หน่วยประมวลผลกลาง (Central Processing Unit: CPU)

                    ซีพียู (CPU) หรือ Central Processing Unit  หมายถึง หน่วยประมวลผลกลางหรือเรียกอีกชื่อหนึ่งว่า ไมโครโพรเซสเซอร์ (Microprocessor)” เป็นอุปกรณ์อิเล็คทรอนิคส์ที่ใช้ในการประมวลผลข้อมูล ตามชุดคำสั่งที่มาจากซอฟต์แวร์ ตัวของซีพียูนั้น มีลักษณะเป็นชิป (Chip) ตัวเล็กๆ ซึ่งภายในบรรจุทรานซิสเตอร์ มีหน้าที่คำนวณตัวเลขจากชุดคำสั่งที่ผู้ใช้ป้อนโปรแกรมเข้าไป เมื่อได้ผลลัพธ์ก็จะส่งผลลัพธ์ออกไปแสดงผลทางหน้าจอ ซีพียู จึงเปรียบได้กับ สมอง ของคอมพิวเตอร์ ทำหน้าที่ควบคุมการปฏิบัติงานหลักของเครื่อง ทำหน้าที่ในการคำนวณ ประมวลผล และควบคุมอุปกรณ์อื่นๆ ในระบบ ประกอบด้วยหน่วยย่อย 3 หน่วย คือ หน่วยความจำหลัก หน่วยคณิตศาสตร์และตรรกะหรือหน่วยคำนวณ และหน่วยควบคุม อีกทั้งยังควบคุมการทำงานของอุปกรณ์อื่นๆ ในระบบอีกด้วย
ลักษณะของ Chip

ตำแหน่งของหน่วยประมวลผลกลาง

ตำแหน่งของหน่วยประมวลผลกลาง

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

วิวัฒนาการของหน่วยประมวลผลกลาง

วิวัฒนาการของหน่วยประมวลผลกลาง

แบ่งตามยุคสมัย ออกเป็น 7 ยุค ดังนี้
            ยุคที่ 1 บริษัท IBM ได้ผลิตเครื่องคอมพิวเตอร์ส่วนบุคลขึ้นมา และได้เลือกใช้ซีพียู 8088 และ 8086 ของบริษัท Intel เครื่องคอมพิวเตอร์ของบริษัท IBM เป็นที่แพร่หลายจนมีผู้ผลิตเครื่องเลียนแบบออกมามากมายที่ใช้ซีพียูรุ่นนี้ ซึ่งเป็นของบริษัท Intel

 ยุคที่ 2 ยุคของคอมพิวเตอร์ที่ใช้ซีพียูตระกูล 286 ซึ่งยุคนี้ซีพียูจะมีความเร็วสูงสุดเพียง 20 MHz

 ยุคที่ 3 ยุคของซีพียูตระกูล 386 เริ่มมีการใช้หน่วยความจำแคชทำงานร่วมกับซีพียู เป็นผลให้ซีพียูในตระกูล 386 มีประสิทธิภาพในการทำงานเพิ่มขึ้นกว่าในรุ่น 286

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

 ยุคที่ 5 เริ่มมีการตั้งซื่อของซีพียู แทนที่จะเรียกชื่อเป็นตัวเลขเช่นเดิม เริ่มจากบริษัทIntel ตั้งชื่อซีพียูว่า “Pentium” ซึ่งมีรากศัพท์มาจากภาษาโรมันซึ่งแปลว่า “ห้า”  บริษัท AMDก็ตั้งชื่อของตนว่า “K5”

 ยุคที่ 6 ซีพียูยังคงเป็น Pentium แต่มีความเร็วในการประมวลผลมากขึ้น ใช้ชื่อว่า“Pentium II” ทาง AMD ก็ได้ผลิตซีพียูโดยใช้ชื่อว่า “K6” ออกมา หลังจากนั้นก็มีซีพียูของทั้งสองค่ายผลิตออกมาอีกหลายรุ่นด้วยกันไม่ว่าจะเป็น Celeron , Pentium III Coppermineและ AMD K6-3

ยุคที่ 7 ยุคปัจจุบัน ความเร็วของซีพียูได้เพิ่มขึ้นอย่างมากจนทะลุหลักถึง 1 GHzสาเหตุที่มีความเร็วขึ้นมาก อันเนื่องมาจากเทคโนโลยีการผลิตที่ออกแบบให้ซีพียูมีขนาดเล็กลงนั่นเอง ซีพียูในยุคนี้ได้แก่ Athlon , Duron ที่ ผลิตโดย  AMD และ Pentium 4 ที่ผลิตโดยIntel

องค์ประกอบของหน่วยประมวลผลกลาง

องค์ประกอบของหน่วยประมวลผลกลาง

องค์ประกอบของ CPU
            วงจรในหน่วยประมวลผลกลางเรียกว่า “ไมโครโปรเซสเซอร์ (Microprocessor)” ซึ่งเป็นชิปที่ทำจากซิลิกอน ประกอบด้วยส่วนสำคัญ 3 หน่วย ดังนี้


 1. หน่วยควบคุม (Control Unit)
            หน่วยควบคุม ทำหน้าที่ควบคุมลำดับขั้นตอนการการประมวลผล และการทำงานของอุปกรณ์ต่างๆ ภายในหน่วยประมวลผลกลาง และรวมไปถึงการประสานงานในการทำงานร่วมกันระหว่างหน่วยประมวลผลกลาง กับอุปกรณ์นำเข้าข้อมูล อุปกรณ์แสดงผล และหน่วยความจำสำรองด้วย เมื่อผู้ใช้ต้องการประมวลผล ตามชุดคำสั่งใด ผู้ใช้จะต้องส่งข้อมูลและชุดคำสั่งนั้นๆ เข้าสู่ระบบคอมพิวเตอร์เสียก่อน โดยข้อมูลและชุดคำสั่งดังกล่าว จะถูกนำไปเก็บไว้ในหน่วยความจำหลัก จากนั้นหน่วยควบคุมจะดึงคำสั่งจากชุดคำสั่งที่มีอยู่ในหน่วยความจำหลักออกมาทีละคำสั่งเพื่อทำการแปล ความหมายว่าคำสั่งดังกล่าวสั่งให้ฮาร์ดแวร์ส่วนใด ทำงานอะไรกับข้อมูลตัวใด เมื่อทราบความหมายของคำสั่งนั้นแล้ว หน่วยควบคุมก็จะส่งสัญญาณคำสั่งไปยังฮาร์ดแวร์ ส่วนที่ทำหน้าที่ในการประมวลผลดังกล่าว ให้ทำตามคำสั่งนั้นๆ เช่น ถ้าคำสั่งที่เข้ามานั้นเป็นคำสั่งเกี่ยวกับการคำนวณ หน่วยควบคุมจะส่งสัญญาณ คำสั่งไปยังหน่วยคำนวณและตรรกะ ให้ทำงาน หน่วยคำนวณและตรรกะ ก็จะไปทำการดึงข้อมูลจากหน่วยความจำหลักเข้ามาประมวลผลตามคำสั่ง แล้วนำผลลัพธ์ที่ได้ไปแสดงยังอุปกรณ์แสดงผล หน่วยควบคุมจึงจะส่งสัญญาณคำสั่งไปยัง อุปกรณ์แสดงผลลัพธ์ ที่กำหนดให้ดึงข้อมูลจากหน่วยความจำหลัก ออกไปแสดงให้เห็นผลลัพธ์ดังกล่าว อีกต่อหนึ่ง เปรียบเสมือนสมองที่ควบคุม การทำงานส่วนประกอบต่างๆ ของร่างกายมนุษย์ เช่น แปลคำสั่งที่ป้อน ควบคุมให้หน่วยรับข้อมูลรับข้อมูลเข้ามาเพื่อทำการประมวลผล ตัดสินใจว่าจะให้เก็บข้อมูลไว้ที่ไหน ถูกต้องหรือไม่ ควบคุมให้ ALUทำการคำนวณข้อมูลที่รับเข้ามา ตลอดจนควบคุมการแสดงผลลัพธ์ เป็นต้น โดยพื้นฐานทั่วไป ส่วนควบคุมจะทำงานเป็น 2 จังหวะ คือ
            1. รับคำสั่ง ในจังหวะแรกนี้ ชุดคำสั่งจะถูกดึงจากส่วนความจำเข้าสู่ส่วนควบคุมแล้วแยกออกเป็นสองส่วน คือ ส่วนที่เป็นรหัสคำสั่ง จะแยกไปยังส่วนที่มีชื่อเรียกว่า วงจรสร้างสัญญาณ
(decoder) เพื่อเตรียมทำงานในจังหวะที่สอง และส่วนที่เป็นออเพอแรนด์ จะแยกออกไปยังวงจรอีกส่วนหนึ่ง เพื่อปฏิบัติให้เสร็จสิ้นในจังหวะแรก แล้วเตรียมพร้อมที่จะทำงานในจังหวะต่อไปเมื่อได้รับสัญญาณควบคุมส่งมาบังคับ
            2. ปฏิบัติ เมื่อจังหวะแรกได้เสร็จสิ้นไปแล้ว วงจรควบคุมจะสร้างสัญญาณขึ้นเพื่อส่งไปควบคุมส่วนต่างๆ ของเครื่องคอมพิวเตอร์ตามรหัสคำสั่งที่ได้รับมา เช่น การบวก ลบ คูณ หาร หรือย้ายข้อมูล เครื่องคอมพิวเตอร์หลายแบบใช้วงจรควบคุม ที่เป็นวงจรอิเล็กทรอนิกส์ที่สร้างเสร็จเรียบร้อยติดไว้ในเครื่อง เครื่องคำนวณจะเก็บสัญญาณควบคุมเหล่านี้ไว้ในส่วนความจำพิเศษที่เรียกว่า “รอม (ROM)”

2. หน่วยคำนวณและตรรกะ (Arithmetic & Logical Unit : ALU)

2. หน่วยคำนวณและตรรกะ (Arithmetic & Logical Unit : ALU)

        ทำหน้าที่เหมือนกับเครื่องคำนวณอยู่ในเครื่องคอมพิวเตอร์โดยทำงานเกี่ยวข้องกับ การคำนวณทางคณิตศาสตร์ (Arithmetic operations) เช่น บวก ลบ คูณ หาร นอกจากนี้ ยังมีความสามารถอีกอย่างหนึ่งที่เครื่องคำนวณธรรมดาไม่มี คือ ความสามารถในเชิงตรรกะศาสตร์ (Logical operations)  โดยอาศัยตัวปฏิบัติการพื้นฐาน 3 ค่า คือ
·       เงื่อนไขเท่ากับ (= , Equal to condition)  
·       เงื่อนไขน้อยกว่า (< , Less than condition)  
·       เงื่อนไขมากกว่า (> , Greater than condition)
สำหรับตัวปฏิบัติการทางตรรกะ สามารถนำมาผสมกันได้ทั้งหมด 6 รูปแบบ คือ
·       เงื่อนไขเท่ากับ (= , Equal to condition)
·       เงื่อนไขน้อยกว่า (< , Less than condition)
·       เงื่อนไขมากกว่า (> , Greater than condition)
·       เงื่อนไขน้อยกว่าหรือเท่ากับ (<= , Less than or equal condition)
·       เงื่อนไขมากกว่าหรือเท่ากับ (>= , Greater than or equal condition)
·       เงื่อนไขน้อยกว่าหรือมากกว่า (< > , Less than or greater than condition) ซึ่งเป็นเงื่อนไขที่มีค่า คือ “ไม่เท่ากับ (not equal to)” นั่นเอง
อีกทั้งยังแบ่งเป็นวงจรได้ 5 ชนิด คือ
1. วงจรตรรกะจัดหมู่ (combination logic) เป็นวงจรที่ให้สัญญาณผลลัพธ์ขึ้นอยู่กับสภาวะของสัญญาณที่ป้อนเข้าเท่านั้น วงจรนี้จึงไม่สามารถเก็บสัญญาณไว้ได้
2. วงจรตรรกะจัดลำดับ (sequential logic) เป็นวงจรที่มีสัญญาณผลลัพธ์ขึ้นอยู่กับสัญญาณป้อนเข้า และขึ้นอยู่กับสภาวะเดิมของสัญญาณผลลัพธ์ วงจรนี้มีคุณสมบัติที่สามารถเก็บสัญญาณ หรือความจำไว้ได้ แต่เมื่อเลิกทำงานไฟฟ้าที่ไปเลี้ยงวงจรเหล่านี้ สัญญาณหรือความจำจะสูญหายไป เช่น วงจรฟลิปฟล็อป (flip-flop) วงจรนับ (counter) วงจรชิฟต์รีจิสเตอร์ (shiftregister)
3. วงจรบวก คือ วงจรที่ทำหน้าที่บวกเลขฐานสอง โดยอาศัยวงงจรตรรกะเข้ามาประกอบเป็นวงจรบวกครึ่ง (half adder ; H.A.) ซึ่งจะให้ผลบวก S และการทดออก Co เมื่อนำเอาวงจรบวกครึ่งสองวงจรกับเกตหนึ่งวงจรมารวมกันเป็นวงจรบวกเต็ม โดยมีการทดเข้า ทดออก และผลบวก
4. วงจรลบ คือ วงจรที่ทำหน้าที่คล้ายวงจรบวก โดยใช้วงจรอินเวอร์เทอร์เข้าเปลี่ยนเลขตัวลบให้เป็นตัวประสม 1 (1's complement) คือเปลี่ยนเลข “0” เป็น “1” หรือ “0” เป็น“0” แล้วนำเข้าบวกกับตัวตั้งจึงจะได้ผลลบตามต้องการ
5. วงจรคูณและหาร การคูณสามารถทำได้ด้วยการบวกซ้ำๆ กัน และการหารสามารถทำได้ด้วยการลบซ้ำๆ กัน ดังนั้น การคูณ คือ การจัดให้วงจรบวกทำการบวกซ้ำๆ กัน ส่วนการหารก็คือ การจัดให้วงจรลบทำการลบซ้ำ นอกจากหลักการดังกล่าวแล้ว อาจจะใช้อีกหลักการหนึ่ง คือ การคูณหารบางประเภทสามารถทำได้โดยการเลื่อนจุดไปทางซ้ายหรือขวา เช่น 256.741 X 100 = 25674.1 หรือ 256.741 / 100 = 2.56741 เป็นต้น ส่วนเลขฐานสองที่คอมพิวเตอร์ใช้ก็ทำได้ในทำนองเดียวกัน

3. หน่วยความจำหลัก (Main Memory)

3. หน่วยความจำหลัก (Main Memory)

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

                     -   หน่วยความจำสำหรับเก็บคำสั่ง (Program Memory)
                     -  หน่วยความจำสำหรับเก็บข้อมูลและคำสั่ง (Data & Programming Memory)



การทำงานขององค์ประกอบของ CPU

กระบวนการและกลไกการทำงานของหน่วยประมวลผลกลาง

กระบวนการและกลไกการทำงานของหน่วยประมวลผลกลาง

1. กระบวนการทำงานพื้นฐานของหน่วยประมวลผลกลาง แบ่งเป็น 5 ขั้นตอน ดังนี้
            1. อ่านชุดคำสั่ง (fetch)
·       Fetch การอ่านชุดคำสั่งขึ้นมา 1 คำสั่งจากโปรแกรม ในรูปของรหัสเลขฐานสอง (Binary Code from on-off of BIT)
            2. ตีความชุดคำสั่ง (decode)
·       Decode การตีความ 1 คำสั่งนั้นด้วยวงจรถอดรหัส (Decoder circuit)ตามจำนวนหลัก (BIT) ว่ารหัสนี้จะให้วงจรอื่นใดทำงานด้วยข้อมูลที่ใด
            3. ประมวลผลชุดคำสั่ง (execute)
·       Execute การทำงานตาม 1 คำสั่งนั้น คือ วงจรใดในไมโครโปรเซสเซอร์ทำงาน เช่น วงจรบวก วงจรลบ วงจรเปรียบเทียบ วงจรย้ายข้อมูล ฯลฯ
            4. อ่านข้อมูลจากหน่วยความจำ (memory)
·       Memory การติดต่อกับหน่วยความจำ การใช้ข้อมูลที่อยู่ในหน่วยจำชั่วคราว (RAM , Register) มาใช้ในคำสั่งนั้นโดยอ้างที่อยู่ (Address)
            5. เขียนข้อมูล/ส่งผลการประมวลกลับ (write back)
·       Write Back การเขียนข้อมูลกลับ โดยมีหน่วยจำ Register ช่วยเก็บที่อยู่ของคำสั่งต่อไป ภายหลังมีคำสั่งกระโดดบวกลบที่อยู่

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