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

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

การทำงานของหน่วยประมวลผลกลางแบ่งออกตามหน้าที่ได้เป็นห้ากลุ่มใหญ่ ๆ ดังนี้ โดยทำงานทีละคำสั่ง จากคำสั่งที่เรียงลำดับกันไว้ตอนที่เขียนโปรแกรม

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

การทำงานแบบขนานในระดับคำสั่ง (ILP)

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

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

การทำงานของหน่วยประมวลผลกลางแบบมี 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

เครื่องคอมพิวเตอร์ส่วนบุคคล

  • สถาปัตยกรรม x86 ของอินเทล
  • สถาปัตยกรรม 6800, 6809, และ 68000 ของโมโตโรลา
  • สถาปัตยกรรม 6502 ของ MOS Technology
  • สถาปัตยกรรม Z80 ของ Zilog
  • สถาปัตยกรรม PowerPC ของไอบีเอ็ม (ในภายหลังคือพันธมิตร AIM alliance)
  • สถาปัตยกรรม AMD64 (หรือ x86-64) ของเอเอ็มดี
    • เข้ากันได้กับสถาปัตยกรรมแบบ x86 ของอินเทล

คอมพิวเตอร์เซิร์ฟเวอร์ และเวิร์คสเตชัน

มินิคอมพิวเตอร์จนถึงเมนเฟรม

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

ใกล้เคียง

หน่วยบัญชาการนาวิกโยธิน หน่วยปฏิบัติการพิเศษ หน่วยบัญชาการถวายความปลอดภัยรักษาพระองค์ หน่วยบัญชาการสงครามพิเศษ หน่วยรบพิเศษ หน่วยบัญชาการสงครามพิเศษทางเรือ กองเรือยุทธการ หน่วยยามฝั่ง หน่วยงานบังคับใช้กฎหมาย หน่วยผจญคนไฟลุก หน่วยยามชายแดน