Computer >> คอมพิวเตอร์ >  >> ฮาร์ดแวร์ >> CPU

ซีพียูทำงานอย่างไร?

CPU หรือที่เรียกว่าไมโครโปรเซสเซอร์คือหัวใจและ/หรือสมองของคอมพิวเตอร์ ให้เจาะลึกลงไปในแกนหลักของคอมพิวเตอร์เพื่อช่วยให้เราเขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ

"เครื่องมือมักจะง่ายกว่าเครื่องจักร โดยทั่วไปจะใช้กับมือ ในขณะที่เครื่องจักรมักถูกเคลื่อนย้ายด้วยสัตว์หรือพลังไอน้ำ"

ชาร์ลส์ แบบเบจ

A คอมพิวเตอร์ เป็น เครื่อง ขับเคลื่อนด้วยไฟฟ้าเป็นส่วนใหญ่ แต่ความยืดหยุ่นและความสามารถในการตั้งโปรแกรมได้ช่วยให้เครื่องมือมีความเรียบง่าย

ซีพียู คือหัวใจและ/หรือสมองของคอมพิวเตอร์ มันรันคำสั่งที่ให้มา งานหลักคือการดำเนินการทางคณิตศาสตร์และตรรกะและเตรียมคำสั่งร่วมกัน ก่อนเจาะลึกถึงส่วนประกอบหลัก เรามาเริ่มด้วยการดูว่าส่วนประกอบหลักของ CPU คืออะไรและมีหน้าที่อะไรบ้าง:

สององค์ประกอบหลักของโปรเซสเซอร์

  • ชุดควบคุม — CU
  • หน่วยเลขคณิตและตรรกะ — ALU

ชุดควบคุม — CU

หน่วยควบคุม CU เป็นส่วนหนึ่งของ CPU ที่ช่วยประสานการดำเนินการตามคำสั่ง มันบอกว่าต้องทำอย่างไร ตามคำแนะนำ มันช่วยเปิดใช้งานสายไฟที่เชื่อมต่อ CPU กับส่วนอื่น ๆ ของคอมพิวเตอร์รวมถึง ALU . ชุดควบคุมเป็นส่วนประกอบแรกของ CPU ที่ได้รับคำสั่งสำหรับการประมวลผล

หน่วยควบคุมมีสองประเภท:

  • เดินสาย ชุดควบคุม .
  • ไมโครโปรแกรมได้ (ไมโครโปรแกรม) หน่วยควบคุม .

เดินสาย หน่วยควบคุมคือฮาร์ดแวร์และต้องการการเปลี่ยนแปลงในฮาร์ดแวร์เพื่อเพิ่มการปรับเปลี่ยนซึ่งทำงานโดยไมโครโปรแกรมได้ หน่วยควบคุมสามารถตั้งโปรแกรมให้เปลี่ยนพฤติกรรมได้ CU แบบเดินสายจะเร็วกว่าในการประมวลผลคำสั่ง ในขณะที่ไมโครโปรแกรมสามารถยืดหยุ่นได้มากกว่า

หน่วยเลขคณิตและตรรกะ — ALU

หน่วยเลขคณิตและตรรกะ ALU ตามชื่อแนะนำจะคำนวณเลขคณิตและตรรกะทั้งหมด ALU ดำเนินการเช่นการบวกการลบ ALU ประกอบด้วยวงจรลอจิกหรือลอจิกเกตซึ่งดำเนินการเหล่านี้

ลอจิกเกตส่วนใหญ่รับอินพุตสองอินพุตและสร้างเอาต์พุตเดียว

ร้องเป็นตัวอย่างของวงจรบวกครึ่งซึ่งรับสองอินพุทและเอาท์พุตผลลัพธ์ โดยที่ A และ B คืออินพุต S คือเอาต์พุต และ C คือช่องพกพา

ซีพียูทำงานอย่างไร?
แหล่งที่มาครึ่งหนึ่ง:https://en.wikipedia.org/wiki/Adder_(อิเล็กทรอนิกส์)# /media/File:Half_Adder.svg

ที่เก็บข้อมูล — รีจิสเตอร์และหน่วยความจำ

งานหลักของ CPU คือการดำเนินการตามคำแนะนำที่ให้ไว้ ในการประมวลผลคำแนะนำเหล่านี้โดยส่วนใหญ่ จำเป็นต้องมีข้อมูล ข้อมูลบางส่วนเป็นข้อมูลระดับกลาง บางส่วนเป็นข้อมูลเข้า และบางส่วนเป็นข้อมูลส่งออก ข้อมูลเหล่านี้พร้อมกับคำแนะนำจะถูกเก็บไว้ในที่จัดเก็บต่อไปนี้:

ลงทะเบียน

Register เป็นสถานที่ขนาดเล็กที่สามารถเก็บข้อมูลได้ รีจิสเตอร์คือการรวมกันของ สลัก . สลัก หรือที่เรียกว่ารองเท้าแตะ คือการรวมกันของ ลอจิกเกต ซึ่งเก็บข้อมูลได้ 1 บิต

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

ซีพียูทำงานอย่างไร?
สลัก SR สร้างขึ้นจากประตู NOR แบบไขว้คู่

CPU มีการลงทะเบียนเพื่อเก็บข้อมูลของเอาต์พุต การส่งไปยังหน่วยความจำหลัก (RAM) จะช้าเนื่องจากเป็นข้อมูลระดับกลาง ข้อมูลนี้ถูกส่งไปยังเครื่องบันทึกเงินสดอื่นซึ่งเชื่อมต่อโดย BUS . รีจิสเตอร์สามารถจัดเก็บคำสั่ง ข้อมูลเอาท์พุต ที่อยู่จัดเก็บ หรือข้อมูลประเภทใดก็ได้

หน่วยความจำ(RAM)

Ram คือชุดของรีจิสเตอร์ที่จัดเรียงและกระชับเข้าด้วยกันอย่างมีประสิทธิภาพสูงสุด เพื่อให้สามารถเก็บข้อมูลได้จำนวนมากขึ้น RAM (Random Access Memory) มีความผันผวนและข้อมูลจะสูญหายเมื่อเราปิดเครื่อง เนื่องจาก RAM คือชุดของการลงทะเบียนเพื่ออ่าน/เขียนข้อมูล RAM จึงรับอินพุตที่อยู่ 8 บิต อินพุตข้อมูลสำหรับข้อมูลจริงที่จะจัดเก็บ และสุดท้ายตัวเปิดใช้งานการอ่านและเขียนซึ่งทำงานเหมือนกับสลัก

คำแนะนำคืออะไร

คำสั่งคือการคำนวณระดับย่อยที่คอมพิวเตอร์สามารถทำได้ มีคำสั่งหลายประเภทที่ CPU สามารถประมวลผลได้

คำแนะนำประกอบด้วย:

  • เลขคณิต เช่น บวก และ ลบ
  • คำแนะนำเชิงตรรกะ เช่น และ , หรือ และ ไม่
  • คำแนะนำข้อมูล เช่น ย้าย , ป้อนข้อมูล , เอาต์พุต , โหลด และ ร้านค้า
  • คำแนะนำขั้นตอนการควบคุม เช่น ไปที่ , ถ้า … ไปที่ , โทร และ กลับมา
  • แจ้ง CPU ว่าโปรแกรมสิ้นสุด หยุด

มีการสอนคอมพิวเตอร์โดยใช้ภาษาแอสเซมบลีหรือสร้างโดยคอมไพเลอร์หรือแปลเป็นภาษาระดับสูงบางภาษา

คำแนะนำเหล่านี้เดินสายภายใน CPU ALU ประกอบด้วยเลขคณิตและตรรกะที่ขั้นตอนการควบคุมได้รับการจัดการโดย CU

ใน รอบนาฬิกา คอมพิวเตอร์สามารถดำเนินการได้เพียงคำสั่งเดียว แต่คอมพิวเตอร์สมัยใหม่สามารถดำเนินการได้มากกว่าหนึ่งคำสั่ง

กลุ่มคำสั่งที่คอมพิวเตอร์สามารถทำได้เรียกว่า ชุดคำสั่ง .

นาฬิกาซีพียู

รอบนาฬิกา

ความเร็วของคอมพิวเตอร์ถูกกำหนดโดยวงจรนาฬิกา คือจำนวน ช่วงเวลานาฬิกา ต่อวินาทีที่คอมพิวเตอร์ทำงาน รอบนาฬิกาเดียวมีขนาดเล็กมากเช่นประมาณ 250 * 10 * -12 วินาที รอบสัญญาณนาฬิกาสูงขึ้นเร็วกว่าโปรเซสเซอร์

รอบนาฬิกาของ CPU มีหน่วยวัดเป็น GHz(Gigahertz ). 1GHz เท่ากับ 10 ⁹ Hz(เฮิรตซ์ ). เฮิรตซ์หมายถึงวินาที ดังนั้น 1 กิกะเฮิรตซ์จึงหมายถึง 10 ⁹ รอบต่อวินาที

ยิ่งวงจรนาฬิกาเร็วขึ้นเท่าใด CPU . จะยิ่งมีคำแนะนำมากขึ้น สามารถทำงานได้Clock cycle =1/clock rateCPU Time =จำนวน clock cycle / clock rate

นี่หมายถึงการปรับปรุงเวลาของ CPU เราสามารถเพิ่มอัตรานาฬิกาหรือลดจำนวนรอบสัญญาณนาฬิกาโดยปรับคำสั่งที่เราให้ไว้กับ CPU ให้เหมาะสม โปรเซสเซอร์บางตัวมีความสามารถในการเพิ่มรอบสัญญาณนาฬิกา แต่เนื่องจากเป็นการเปลี่ยนแปลงทางกายภาพ จึงอาจมีความร้อนสูงเกินไปและแม้กระทั่งควัน/ไฟไหม้

วิธีดำเนินการคำสั่ง

คำแนะนำจะถูกเก็บไว้ใน RAM ตามลำดับ สำหรับคำสั่ง CPU สมมุติประกอบด้วย OP รหัส (รหัสปฏิบัติการ) และ หน่วยความจำหรือที่อยู่ลงทะเบียน .

มีรีจิสเตอร์สองตัวภายในชุดควบคุม Instruction register(IR) ซึ่งโหลดรหัส OP ของคำสั่งและ การลงทะเบียนที่อยู่คำสั่ง ซึ่งโหลดที่อยู่ของคำสั่งดำเนินการปัจจุบัน มีรีจิสเตอร์อื่นๆ ภายใน CPU ที่เก็บค่าที่เก็บไว้ในที่อยู่ของคำสั่ง 4 บิตสุดท้าย

มาดูตัวอย่างชุดคำสั่งที่บวกเลขสองตัวกัน ต่อไปนี้เป็นคำแนะนำพร้อมกับคำอธิบาย:

ขั้นตอนที่ 1 — LOAD_A 8:

คำสั่งนี้ถูกบันทึกไว้ใน RAM ในตอนแรก สมมติว่า <1100 1000> 4 บิตแรกคือรหัส op สิ่งนี้เป็นตัวกำหนดคำสั่ง คำแนะนำนี้ดึงข้อมูล เข้าสู่ IR ของหน่วยควบคุม คำแนะนำคือ ถอดรหัส เป็น load_A ซึ่งหมายความว่าจำเป็นต้องโหลดข้อมูลในที่อยู่ 1000 ซึ่งเป็น 4 บิตสุดท้ายของคำสั่งในการลงทะเบียน A

ขั้นตอนที่ 2 — LOAD_B 2

คล้ายกับด้านบนนี้จะโหลดข้อมูลในที่อยู่หน่วยความจำ 2 (0010) ไปยัง CPU register B.

ขั้นตอนที่ 3 — เพิ่ม BA

ตอนนี้คำสั่งต่อไปคือการบวกตัวเลขสองตัวนี้ ที่นี่ CU บอกให้ ALU ดำเนินการเพิ่มและบันทึกผลลัพธ์กลับมาเพื่อลงทะเบียน A.

ขั้นตอนที่ 4 — STORE_A 23

นี่เป็นชุดคำสั่งง่ายๆ ที่ช่วยบวกเลขสองตัว

เราได้เพิ่มตัวเลขสองตัวสำเร็จแล้ว!

BUS

ข้อมูลทั้งหมดระหว่าง CPU, register, memory และ IO จะถูกถ่ายโอนผ่านบัส ในการโหลดข้อมูลไปยังหน่วยความจำที่เพิ่งเพิ่มเข้าไป ซีพียูจะใส่ที่อยู่หน่วยความจำไปที่แอดเดรสบัสและผลลัพธ์ของผลรวมไปยังบัสข้อมูล และเปิดใช้งานสัญญาณที่ถูกต้องในบัสควบคุม ด้วยวิธีนี้ข้อมูลจะถูกโหลดไปยังหน่วยความจำด้วยความช่วยเหลือของบัส

ซีพียูทำงานอย่างไร?
Photo src:https://en.wikipedia.org/wiki/Bus_(คอมพิวเตอร์)# /media/ไฟล์:Computer_system_bus.svg

แคช

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

หากข้อมูลในแคชและหน่วยความจำปฏิบัติการต่างกัน ข้อมูลจะถูกทำเครื่องหมายเป็น บิตสกปรก .

การวางท่อคำสั่ง

CPU สมัยใหม่ใช้ การวางท่อคำสั่ง สำหรับ ขนานในการดำเนินการคำสั่ง ดึงข้อมูล ถอดรหัส ดำเนินการ เมื่อคำสั่งหนึ่งอยู่ในเฟสถอดรหัส ซีพียูสามารถประมวลผลคำสั่งอื่นสำหรับการดึงข้อมูลเฟสได้

ซีพียูทำงานอย่างไร?
ที่มาของรูปภาพ:https://en.wikipedia.org/wiki/Instruction_pipelining#/media/ ไฟล์:Pipeline,_4_stage.svg

สิ่งนี้มีปัญหาหนึ่งเมื่อคำสั่งหนึ่งขึ้นอยู่กับคำสั่งอื่น ดังนั้นโปรเซสเซอร์จึงดำเนินการคำสั่งที่ไม่ขึ้นกับและอยู่ในลำดับที่ต่างกัน

คอมพิวเตอร์มัลติคอร์

โดยพื้นฐานแล้วมันคือ CPU ที่แตกต่างกัน แต่มีทรัพยากรที่ใช้ร่วมกันเช่นแคช

ประสิทธิภาพ

ประสิทธิภาพของ CPU ถูกกำหนดโดยเวลาดำเนินการ ประสิทธิภาพ =1/เวลาดำเนินการ

สมมติว่าใช้เวลา 20 มิลลิวินาทีในการดำเนินการโปรแกรม ประสิทธิภาพของ CPU คือ 1/20 =0.05msRelative performance =เวลาดำเนินการ 1/ เวลาดำเนินการ 2

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

สัญกรณ์บิ๊กโอ กำหนดด้วยอินพุตที่กำหนดว่าประสิทธิภาพจะได้รับผลกระทบอย่างไร

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

โพสต์บนบล็อก Milap Neupane ด้วย:CPU ทำงานอย่างไร


No