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

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
ไม่มีความย่อการแก้ไข
แทนที่เนื้อหาด้วย "ศรี"
บรรทัด 1:
ศรี
'''หน่วยประมวลผลกลาง''' ({{lang-en|central processing unit}}) หรือย่อว่า '''ซีพียู''' (CPU) เป็นวงจรอิเลคทรอนิกส์ที่ทำงาน หรือประมวลผล ตาม[[ชุดของคำสั่งเครื่อง]]จาก[[ซอฟต์แวร์]] คำนี้เริ่มใช้ในอุตสาหกรรมคอมพิวเตอร์ตั้งแต่ต้นศตวรรษ 1960s
 
หน่วยประมวลผลเปรียบเสมือนเป็นสมองของคอมพิวเตอร์ ในการทำหน้าที่ตัดสินใจหรือคำนวณ จากคำสั่งที่ได้รับมา เช่น การเปรียบเทียบ การกระทำการทางคณิตศาสตร์ ฯลฯ
 
โดยมีกระบวนการพื้นฐานคือ
* อ่านชุดคำสั่ง (fetch)
* ตีความชุดคำสั่ง (decode)
* ประมวลผลชุดคำสั่ง (execute)
* อ่านข้อมูลจากหน่วยความจำ (memory)
* เขียนข้อมูล/ส่งผลการประมวลกลับ (write back)
 
สถาปัตยกรรมของหน่วยประมวลผลกลาง ประกอบไปด้วย [[ส่วนควบคุมการประมวลผล]] (control unit) และ [[ส่วนประมวลผล]] (execution unit) และจะเก็บข้อมูลระหว่างการคำนวณ ไว้ในระบบ[[เรจิสเตอร์]]
 
== การทำงานของหน่วยประมวลผลกลาง ==
[[ไฟล์:Nopipeline.png|thumb|300px|right|การทำงานของหน่วยประมวลผลกลางแบบพื้นฐาน]]
การทำงานของหน่วยประมวลผลกลางแบ่งออกตามหน้าที่ได้เป็นห้ากลุ่มใหญ่ ๆ ดังนี้ โดยทำงานทีละคำสั่ง จากคำสั่งที่เรียงลำดับกันไว้ตอนที่เขียนโปรแกรม
* Fetch - การอ่านชุดคำสั่งขึ้นมา 1 คำสั่งจากโปรแกรม ในรูปของรหัสเลขฐานสอง (Binary Code from on-off of BIT)
* Decode - การตีความ 1 คำสั่งนั้นด้วยวงจรถอดรหัส (Decoder circuit) ตามจำนวนหลัก (BIT) ว่ารหัสนี้จะให้วงจรอื่นใดทำงานด้วยข้อมูลที่ใด
* Execute - การทำงานตาม 1 คำสั่งนั้น คือ วงจรใดในไมโครโปรเซสเซอร์ทำงาน เช่น วงจรบวก วงจรลบ วงจรเปรียบเทียบ วงจรย้ายข้อมูล ฯลฯ
* Memory - การติดต่อกับหน่วยความจำ การใช้ข้อมูลที่อยู่ในหน่วยจำชั่วคราว (RAM, Register) มาใช้ในคำสั่งนั้นโดยอ้างที่อยู่ (Address)
* Write Back - การเขียนข้อมูลกลับ โดยมีหน่วยจำ Register ช่วยเก็บที่อยู่ของคำสั่งต่อไป ภายหลังมีคำสั่งกระโดดบวกลบที่อยู่
 
=== การทำงานแบบขนานในระดับคำสั่ง (ILP) ===
[[ไฟล์:Fivestagespipeline.png|thumb|300px|left|การทำงานของหน่วยประมวลผลกลางแบบมี pipeline]]
 
โดยการทำงานเหล่านี้ถ้าเป็นแบบพื้นฐานก็จะทำงานกันเป็นขั้นตอนเรียงตัวไปเรื่อย ๆ แต่ในหลักความเป็นไปได้คือการทำงานในแต่ละส่วนนั้นค่อนข้างจะเป็นอิสระออกจากกัน จึงได้มีการจับแยกกันให้ทำงานขนานกันของแต่ละส่วนไปได้ หลักการนี้เรียกว่า pipeline เป็นการทำการประมวลผลแบบขนานในระดับการไหลของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) โดยข้อมูลที่เป็นผลจากการคำนวณของชุดก่อนหน้าจะถูกส่งกลับไปให้ชุดคำสั่งที่ตามมาในช่องทางพิเศษภายในหน่วยประมวลผลเอง
 
[[ไฟล์:Superscalarpipeline.png|thumb|300px|right|การทำงานของหน่วยประมวลผลกลางแบบมี pipeline และเป็น superscalar]]
 
การทำงานแบบขนานนี้สามารถทำให้มีความสามารถเพิ่มขึ้นได้อีกคือเพิ่มการทำงานแต่ละส่วนออกเป็นส่วนที่เหมือนกันในทุกกลุ่มแต่ให้ทำงานคนละสายชุดคำสั่งกัน วิธีการนี้เรียกว่าการทำหน่วยประมวลผลให้เป็น superscalar วิธีการนี้ทำให้มีหลาย ๆ ชุดคำสั่งทำงานได้ในขณะเดียวกัน โดยงานหนักของ superscalar อยู่ที่ส่วนดึงชุดคำสั่งออกมา (Dispatcher) เพราะส่วนนี้ต้องตัดสินใจได้ว่าชุดคำสั่งอันไหนสามารถทำการประมวลผลแบบขนานได้ หลักการนี้ก็เป็นการทำการประมวลผลแบบขนานในระดับการไหลของแต่ละคำสั่ง (ILP: Instruction Level Parallelism) เช่นกัน
 
=== การทำงานแบบขนานในระดับกลุ่มชุดคำสั่ง (TLP) ===
การทำงานของโปรแกรมคอมพิวเตอร์แต่ละโปรแกรมสามารถแบ่งตัวออกได้เป็นระดับกลุ่มชุดคำสั่ง (Thread) โดยในแต่ละกลุ่มสามารถทำงานขนานกันได้ (TLP: Thread Level Parallelism)
ในระดับ2
 
=== คอมพิวเตอร์แบบฝังตัว ===
* สถาปัตยกรรม [[PowerPC 440]] ของ[[ไอบีเอ็ม]]
* สถาปัตยกรรม [[Intel 8051|8051]] ของ[[อินเทล]]
* สถาปัตยกรรม [[Motorola 6800|6800]] ของ[[โมโตโรลา]]
** ใช้ในหน่วยควบคุม 68HC11 ซึ่งเป็นที่แพร่หลายอย่างมาก
* สถาปัตยกรรม [[ARM]] ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)
** ใช้ใน เครื่องเล่นเพลง [[ไอพ็อด]], เครื่องเล่นเกม เกมบอยแอดวานซ์, และ [[พีดีเอ]] จำนวนมาก 0
** หน่วยประมวลผล XScale และ StrongARM ของอินเทลนั้น ใช้สถาปัตยกรรม ARM
 
=== เครื่องคอมพิวเตอร์ส่วนบุคคล ===
* สถาปัตยกรรม [[x86]] ของ[[อินเทล]]
* สถาปัตยกรรม [[Motorola 6800|6800]], [[Motorola 6809|6809]], และ [[68k|68000]] ของโมโตโรลา
* สถาปัตยกรรม [[MOS Technology 6502|6502]] ของ MOS Technology
* สถาปัตยกรรม [[Z80]] ของ [[Zilog]]
* สถาปัตยกรรม [[PowerPC]] ของ[[ไอบีเอ็ม]] (ในภายหลังคือพันธมิตร [[AIM alliance]]) <!--there are actually a handful of related, but distinct architectures that have been labeled "PowerPC") -->
* สถาปัตยกรรม [[AMD64]] (หรือ x86-64) ของ[[เอเอ็มดี]]
** เข้ากันได้กับสถาปัตยกรรมแบบ x86 ของอินเทล
 
=== คอมพิวเตอร์เซิร์ฟเวอร์ และเวิร์คสเตชัน ===
* สถาปัตยกรรม [[SPARC]] ของ SPARC International, Inc. (มีสมาชิกเช่น [[ซัน ไมโครซิสเต็มส์]], [[ฟูจิตสึ]], [[โตชิบา]], [[เท็กซัสอินสทรูเมนส์]]) หน่วยประมวลผล LEON2 ซึ่งเป็นหน่วยประมวลผลแบบเปิดเผยรหัส ใช้สถาปัตยกรรม SPARC
* สถาปัตยกรรม [[POWER]] ของ[[ไอบีเอ็ม]]
* สถาปัตยกรรม [[MIPS architecture|MIPS]] ของ MIPS Computer Systems Inc. [[ชุดของคำสั่งเครื่อง]]ของ MIPS เป็นเครื่องมือหลักในการสอนสถาปัตยกรรมคอมพิวเตอร์ในหนังสือ ''Computer Organization and Design'' เขียนโดย [[เดวิด เอ. แพตเทอร์สัน]] และ [[จอห์น แอล. เฮนเนสซี]] ISBN 1-55860-428-6 [[1998]] (2nd. edition)
* สถาปัตยกรรม [[PA-RISC]] ของ[[เอชพี]]
* สถาปัตยกรรม [[DEC Alpha|Alpha]] ของ [[Digital Equipment Corporation|DEC]]
* สถาปัตยกรรม [[ARM]] ของ ARM (เคยเป็นส่วนหนึ่งของบริษัท Acorn Computers)
 
=== มินิคอมพิวเตอร์จนถึงเมนเฟรม ===
* สถาปัตยกรรม [[PDP-11]] ของ [[Digital Equipment Corporation|DEC]], และสถาปัตยกรรม [[VAX]] ที่ถูกพัฒนาต่อมา
* สถาปัตยกรรม [[SuperH]] ของ[[ฮิตาชิ]]
* สถาปัตยกรรมของคอมพิวเตอร์รุ่น [[UNIVAC 1100/2200]] (ปัจจุบันสนับสนุนโดย [[Unisys Corporation|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.
 
== แหล่งข้อมูลอื่น ==
* [http://www.thaiio.com/Hardware-cgi/hardware.cgi?0025 รายละเอียดหน่วยประมวลผลกลาง CPU (Central Processing Unit)]
 
{{อุปกรณ์คอมพิวเตอร์ขั้นพื้นฐาน}}
[[หมวดหมู่:หน่วยประมวลผลกลาง| ]]