หน่วยประมวลผลกลาง
จากวิกิพีเดีย สารานุกรมเสรี
หน่วยประมวลผลกลาง (central processing unit) หรือที่นิยมเรียกย่อ ๆ ว่า ซีพียู ([CPU]) เป็นส่วนตีความ และประมวลผล ตามชุดของคำสั่งเครื่องจากซอฟต์แวร์
หน่วยประมวลผลเปรียบเสมือนเป็นสมองของคอมพิวเตอร์ ในการทำหน้าที่ตัดสินใจหรือคำนวณ จากคำสั่งที่ได้รับมา เช่น การเปรียบเทียบ การกระทำการทางคณิตศาสตร์ ฯลฯ
โดยมีกระบวนการพื้นฐานคือ
- อ่านชุดคำสั่ง (fetch)
- ตีความชุดคำสั่ง (decode)
- ประมวลผลชุดคำสั่ง (execute)
- อ่านข้อมูลจากหน่วยความจำ (memory)
- เขียนข้อมูล/ส่งผลการประมวลกลับ (write back)
สถาปัตยกรรมของหน่วยประมวลผลกลาง ประกอบไปด้วย ส่วนควบคุมการประมวลผล (control unit) และ ส่วนประมวลผล (execution unit) และจะเก็บข้อมูลระหว่างการคำนวน ไว้ในระบบเรจิสเตอร์
สารบัญ |
[แก้] การทำงานของหน่วยประมวลผลกลาง
การทำงานของหน่วยประมวลผลกลางแบ่งออกตามหน้าที่ได้เป็นห้ากลุ่มใหญ่ๆ ได้แก่:
- Fetch - การอ่านชุดคำสั่งขึ้นมา
- Decode - การตีความชุดคำสั่ง
- Execute - การทำงานตามชุดคำสั่ง
- Memory - การติดต่อกับหน่วยความจำ
- write back - การเขียนข้อมูลกลับ
[แก้] การทำงานแบบขนานในระดับคำสั่ง (ILP)
โดยการทำงานเหล่านี้ถ้าเป็นแบบพื้นฐานก็จะทำงานกันเป็นขั้นตอนเรียงตัวไปเรื่อยๆ แต่ในหลักความเป็นไปได้คือการทำงานในแต่ละส่วนนั้นค่อนข้างจะเป็นอิสระออกจากกัน จึงได้มีการจับแยกกันให้ทำงานขนานกันของแต่ละส่วนไปได้ หลักการนี้เรียกว่า pipeline เป็นการทำการประมวลผลแบบขนานในระดับการไหลของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) โดยข้อมูลที่เป็นผลจากการคำนวนของชุดก่อนหน้าจะถูกส่งกลับไปให้ชุดคำสั่งที่ตามมาในช่องทางพิเศษภายในหน่วยประมวลผลเอง
การทำงานแบบขนานนี้สามารถทำให้มีความสามารถเพิ่มขึ้นได้อีกคือเพิ่มการทำงานแต่ละส่วนออกเป็นส่วนที่เหมือนกันในทุกกลุ่มแต่ให้ทำงานคนละสายชุดคำสั่งกัน วิธีการนี้เรียกว่าการทำหน่วยประมวลผลให้เป็น superscalar วิธีการนี้ทำให้มีหลายๆ ชุดคำสั่งทำงานได้ในขณะเดียวกัน โดยงานหนักของ superscalar อยู่ที่ส่วนดึงชุดคำสั่งออกมา (Dispatcher) เพราะส่วนนี้ต้องตัดสินใจได้ว่าชุดคำสั่งอันไหนสามารถทำการประมวลผลแบบขนานได้ หลักการนี้ก็เป็นการทำการประมวลผลแบบขนานในระดับการไหลของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) เช่นกัน
[แก้] การทำงานแบบขนานในระดับกลุ่มชุดคำสั่ง (TLP)
การทำงานของโปรแกรมคอมพิวเตอร์แต่ละโปรแกรมสามารถแบ่งตัวออกได้เป็นระดับกลุ่มชุดคำสั่ง (Thread) โดยในแต่ละกลุ่มสามารถทำงานขนานกันได้ (TLP: Thread Level Parallelism)
[แก้] สถาปัตยกรรมของหน่วยประมวลผลกลางที่เป็นที่รู้จัก
[แก้] คอมพิวเตอร์แบบฝังตัว
- สถาปัตยกรรม PowerPC 440 ของไอบีเอ็ม
- สถาปัตยกรรม 8051 ของอินเทล
- สถาปัตยกรรม 6800 ของโมโตโรลา
- ใช้ในหน่วยควบคุม 68HC11 ซึ่งเป็นที่แพร่หลายอย่างมาก
- สถาปัตยกรรม ARM ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)
[แก้] เครื่องคอมพิวเตอร์ส่วนบุคคล
- สถาปัตยกรรม x86 ของอินเทล
- สถาปัตยกรรม 6800, 6809, และ 68000 ของโมโตโรลา
- สถาปัตยกรรม 6502 ของ MOS Technology
- สถาปัตยกรรม Z80 ของ Zilog
- สถาปัตยกรรม PowerPC ของไอบีเอ็ม (ในภายหลังคือพันธมิตร AIM alliance)
- สถาปัตยกรรม AMD64 (หรือ x86-64) ของเอเอ็มดี
- เข้ากันได้กับสถาปัตยกรรมแบบ x86 ของอินเทล
[แก้] คอมพิวเตอร์เซิร์ฟเวอร์ และเวิร์คสเตชัน
- สถาปัตยกรรม SPARC ของ SPARC International, Inc. (มีสมาชิกเช่น ซัน ไมโครซิสเต็มส์, ฟูจิตสึ, โตชิบา, เท็กซัสอินสทรูเมนส์)
- หน่วยประมวลผล LEON2 ซึ่งเป็นหน่วยประมวลผลแบบเปิดเผยรหัส ใช้สถาปัตยกรรม SPARC
- สถาปัตยกรรม POWER ของไอบีเอ็ม
- สถาปัตยกรรม MIPS ของ MIPS Computer Systems Inc. ชุดของคำสั่งเครื่องของ MIPS เป็นเครื่องมือหลักในการสอนสถาปัตยกรรมคอมพิวเตอร์ในหนังสือ Computer Organization and Design เขียนโดย เดวิด เอ. แพตเทอร์สัน และ จอห์น แอล. เฮนเนสซี ISBN 1-55860-428-6 1998 (2nd. edition)
- สถาปัตยกรรม PA-RISC ของเอชพี
- สถาปัตยกรรม Alpha ของ DEC
- สถาปัตยกรรม ARM ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)
[แก้] มินิคอมพิวเตอร์จนถึงเมนเฟรม
- สถาปัตยกรรม System/360 ของไอบีเอ็ม
- สถาปัตยกรรม PDP-11 ของ DEC, และสถาปัตยกรรม VAX ที่ถูกพัฒนาต่อมา
- สถาปัตยกรรม SuperH ของ SuperH
- สถาปัตยกรรมของคอมพิวเตอร์รุ่น UNIVAC 1100/2200 (ปัจจุบันสนับสนุนโดย Unisys ClearPath IX computers)
- 1750A - คอมพิวเตอร์มาตรฐานของกองทัพสหรัฐ
- AP-101 - คอมพิวเตอร์ของกระสวยอวกาศ
- คิคิ