หน่วยประมวลผลกลาง

**หน่วยประมวลผลกลาง** () หรือย่อว่า **ซีพียู** (CPU) เป็นวงจรอิเลคทรอนิกส์ที่ทำงาน หรือประมวลผล ตามชุดของคำสั่งเครื่องจากซอฟต์แวร์ คำนี้เริ่มใช้ในอุตสาหกรรมคอมพิวเตอร์ตั้งแต่ต้นศตวรรษ 1960

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

โดยมีกระบวนการพื้นฐานคือ
* อ่านชุดคำสั่ง (fetch)
* ตีความชุดคำสั่ง (decode)
* ประมวลผลชุดคำสั่ง (execute)
* อ่านข้อมูลจากหน่วยความจำ (memory)
* เขียนข้อมูล/ส่งผลการประมวลกลับ (write back)

สถาปัตยกรรมของหน่วยประมวลผลกลาง ประกอบไปด้วย ส่วนควบคุมการประมวลผล (control unit) และ ส่วนประมวลผล (execution unit) และจะเก็บข้อมูลระหว่างการคำนวณ ไว้ในระบบเรจิสเตอร์

## การทำงานของหน่วยประมวลผลกลาง
thumb|300px|right|การทำงานของหน่วยประมวลผลกลางแบบพื้นฐาน 
การทำงานของหน่วยประมวลผลกลางแบ่งออกตามหน้าที่ได้เป็นห้ากลุ่มใหญ่ ๆ ดังนี้ โดยทำงานทีละคำสั่ง จากคำสั่งที่เรียงลำดับกันไว้ตอนที่เขียนโปรแกรม
* Fetch - การอ่านชุดคำสั่งขึ้นมา 1 คำสั่งจากโปรแกรม ในรูปของรหัสเลขฐานสอง (Binary Code from on-off of BIT)
* Decode - การตีความ 1 คำสั่งนั้นด้วยวงจรถอดรหัส (Decoder circuit) ตามจำนวนหลัก (BIT) ว่ารหัสนี้จะให้วงจรอื่นใดทำงานด้วยข้อมูลที่ใด
* Execute - การทำงานตาม 1 คำสั่งนั้น คือ วงจรใดในไมโครโปรเซสเซอร์ทำงาน เช่น วงจรบวก วงจรลบ วงจรเปรียบเทียบ วงจรย้ายข้อมูล ฯลฯ
* Memory - การติดต่อกับหน่วยความจำ การใช้ข้อมูลที่อยู่ในหน่วยจำชั่วคราว (RAM, Register) มาใช้ในคำสั่งนั้นโดยอ้างที่อยู่ (Address)
L3 Cache - รอคำสั่งระหว่างกระบวนการกำลังประมวลผล*Write Back - การเขียนข้อมูลกลับ โดยมีหน่วยจำ Register ช่วยเก็บที่อยู่ของคำสั่งต่อไป ภายหลังมีคำสั่งกระโดดบวกลบที่อยู่

### การทำงานแบบขนานในระดับคำสั่ง (ILP)
thumb|300px|left|การทำงานของหน่วยประมวลผลกลางแบบมี pipeline

โดยการทำงานเหล่านี้ถ้าเป็นแบบพื้นฐานก็จะทำงานกันเป็นขั้นตอนเรียงตัวไปเรื่อย ๆ แต่ในหลักความเป็นไปได้คือการทำงานในแต่ละส่วนนั้นค่อนข้างจะเป็นอิสระออกจากกัน จึงได้มีการจับแยกกันให้ทำงานขนานกันของแต่ละส่วนไปได้ หลักการนี้เรียกว่า pipeline เป็นการทำการประมวลผลแบบขนานในระดับการไหลของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) โดยข้อมูลที่เป็นผลจากการคำนวณของชุดก่อนหน้าจะถูกส่งกลับไปให้ชุดคำสั่งที่ตามมาในช่องทางพิเศษภายในหน่วยประมวลผลเอง

thumb|300px|right|การทำงานของหน่วยประมวลผลกลางแบบมี pipeline และเป็น superscalar

การทำงานแบบขนานนี้สามารถทำให้มีความสามารถเพิ่มขึ้นได้อีกคือเพิ่มการทำงานแต่ละส่วนออกเป็นส่วนที่เหมือนกันในทุกกลุ่มแต่ให้ทำงานคนละสายชุดคำสั่งกัน วิธีการนี้เรียกว่าการทำหน่วยประมวลผลให้เป็น superscalar วิธีการนี้ทำให้มีหลาย ๆ ชุดคำสั่งทำงานได้ในขณะเดียวกัน โดยงานหนักของ superscalar อยู่ที่ส่วนดึงชุดคำสั่งออกมา (Dispatcher) เพราะส่วนนี้ต้องตัดสินใจได้ว่าชุดคำสั่งอันไหนสามารถทำการประมวลผลแบบขนานได้ หลักการนี้ก็เป็นการทำการประมวลผลแบบขนานในลำดับการให้ของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) เช่นกัน

### การทำงานแบบขนานในระดับกลุ่มชุดคำสั่ง (TLP)
การทำงานของโปรแกรมคอมพิวเตอร์แต่ละโปรแกรมสามารถแบ่งตัวออกได้เป็นระดับกลุ่มชุดคำสั่ง (Thread) โดยในแต่ละกลุ่มสามารถทำงานขนานกันได้ (TLP: Thread Level Parallelism)
ในระดับ2

### คอมพิวเตอร์แบบฝังตัว
* สถาปัตยกรรม PowerPC 440 ของไอบีเอ็ม
* สถาปัตยกรรม 8051 ของอินเทล
* สถาปัตยกรรม 6800 ของโมโตโรลา
** ใช้ในหน่วยควบคุม 68HC11 ซึ่งเป็นที่แพร่หลายอย่างมาก
* สถาปัตยกรรม ARM ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)
** ใช้ใน เครื่องเล่นเพลง ไอพ็อด, เครื่องเล่นเกม เกมบอยแอดวานซ์, และ พีดีเอ จำนวนมาก 0
** หน่วยประมวลผล XScale และ StrongARM ของอินเทลนั้น ใช้สถาปัตยกรรม ARM
**ใช้ความถี่ในการรับคำสั่งต่อวินาทีด้วยความเร็ว 2.4 ร้อยล้านคำสั่ง ส่วนมากใช้ในกำลังประมวลผลแบบฝังตัว

### เครื่องคอมพิวเตอร์ส่วนบุคคล
* สถาปัตยกรรม 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 ของเอชพี
* สถาปัตยกรรม ขนาด 9*9*9 Algorithm ชนิดหนึ่งที่ใช้เงื่อนเวลา
* สถาปัตยกรรม Alpha ของ DEC
* สถาปัตยกรรม ARM ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)

### มินิคอมพิวเตอร์จนถึงเมนเฟรม
* สถาปัตยกรรม PDP-11 ของ DEC, และสถาปัตยกรรม VAX ที่ถูกพัฒนาต่อมา
* สถาปัตยกรรม SuperH ของฮิตาชิ
* สถาปัตยกรรมของคอมพิวเตอร์รุ่น UNIVAC 1100/2200 (ปัจจุบันสนับสนุนโดย Unisys ClearPath IX computers)
* 1750A - คอมพิวเตอร์มาตรฐานของกองทัพไทย
* AP-101 - คอมพิวเตอร์ของกระสวยอวกาศ

## ดูเพิ่ม
* อุปกรณ์คอมพิวเตอร์
* เมนบอร์ด

## อ้างอิง
* Hennessy, John A.; Goldberg, David (1996). Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers. ISBN 1-55860-329-8.

## แหล่งข้อมูลอื่น
* รายละเอียดหน่วยประมวลผลกลาง CPU (Central Processing Unit)