CPU หรือที่เรียกว่าไมโครโปรเซสเซอร์คือหัวใจและ/หรือสมองของคอมพิวเตอร์ ให้เจาะลึกลงไปในแกนหลักของคอมพิวเตอร์เพื่อช่วยให้เราเขียนโปรแกรมคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ
"เครื่องมือมักจะง่ายกว่าเครื่องจักร โดยทั่วไปจะใช้กับมือ ในขณะที่เครื่องจักรมักถูกเคลื่อนย้ายด้วยสัตว์หรือพลังไอน้ำ"
– ชาร์ลส์ แบบเบจ
A คอมพิวเตอร์ เป็น เครื่อง ขับเคลื่อนด้วยไฟฟ้าเป็นส่วนใหญ่ แต่ความยืดหยุ่นและความสามารถในการตั้งโปรแกรมได้ช่วยให้เครื่องมือมีความเรียบง่าย
ซีพียู คือหัวใจและ/หรือสมองของคอมพิวเตอร์ มันรันคำสั่งที่ให้มา งานหลักคือการดำเนินการทางคณิตศาสตร์และตรรกะและเตรียมคำสั่งร่วมกัน ก่อนเจาะลึกถึงส่วนประกอบหลัก เรามาเริ่มด้วยการดูว่าส่วนประกอบหลักของ CPU คืออะไรและมีหน้าที่อะไรบ้าง:
สององค์ประกอบหลักของโปรเซสเซอร์
- ชุดควบคุม — CU
- หน่วยเลขคณิตและตรรกะ — ALU
ชุดควบคุม — CU
หน่วยควบคุม CU เป็นส่วนหนึ่งของ CPU ที่ช่วยประสานการดำเนินการตามคำสั่ง มันบอกว่าต้องทำอย่างไร ตามคำแนะนำ มันช่วยเปิดใช้งานสายไฟที่เชื่อมต่อ CPU กับส่วนอื่น ๆ ของคอมพิวเตอร์รวมถึง ALU . ชุดควบคุมเป็นส่วนประกอบแรกของ CPU ที่ได้รับคำสั่งสำหรับการประมวลผล
หน่วยควบคุมมีสองประเภท:
- เดินสาย ชุดควบคุม .
- ไมโครโปรแกรมได้ (ไมโครโปรแกรม) หน่วยควบคุม .
เดินสาย หน่วยควบคุมคือฮาร์ดแวร์และต้องการการเปลี่ยนแปลงในฮาร์ดแวร์เพื่อเพิ่มการปรับเปลี่ยนซึ่งทำงานโดยไมโครโปรแกรมได้ หน่วยควบคุมสามารถตั้งโปรแกรมให้เปลี่ยนพฤติกรรมได้ CU แบบเดินสายจะเร็วกว่าในการประมวลผลคำสั่ง ในขณะที่ไมโครโปรแกรมสามารถยืดหยุ่นได้มากกว่า
หน่วยเลขคณิตและตรรกะ — ALU
หน่วยเลขคณิตและตรรกะ ALU ตามชื่อแนะนำจะคำนวณเลขคณิตและตรรกะทั้งหมด ALU ดำเนินการเช่นการบวกการลบ ALU ประกอบด้วยวงจรลอจิกหรือลอจิกเกตซึ่งดำเนินการเหล่านี้
ลอจิกเกตส่วนใหญ่รับอินพุตสองอินพุตและสร้างเอาต์พุตเดียว
ร้องเป็นตัวอย่างของวงจรบวกครึ่งซึ่งรับสองอินพุทและเอาท์พุตผลลัพธ์ โดยที่ A และ B คืออินพุต S คือเอาต์พุต และ C คือช่องพกพา
ที่เก็บข้อมูล — รีจิสเตอร์และหน่วยความจำ
งานหลักของ CPU คือการดำเนินการตามคำแนะนำที่ให้ไว้ ในการประมวลผลคำแนะนำเหล่านี้โดยส่วนใหญ่ จำเป็นต้องมีข้อมูล ข้อมูลบางส่วนเป็นข้อมูลระดับกลาง บางส่วนเป็นข้อมูลเข้า และบางส่วนเป็นข้อมูลส่งออก ข้อมูลเหล่านี้พร้อมกับคำแนะนำจะถูกเก็บไว้ในที่จัดเก็บต่อไปนี้:
ลงทะเบียน
Register เป็นสถานที่ขนาดเล็กที่สามารถเก็บข้อมูลได้ รีจิสเตอร์คือการรวมกันของ สลัก . สลัก หรือที่เรียกว่ารองเท้าแตะ คือการรวมกันของ ลอจิกเกต ซึ่งเก็บข้อมูลได้ 1 บิต
สลักมีสายป้อนเข้าสองเส้น สายเขียนและสายป้อนเข้า และสายส่งออกหนึ่งเส้น เราสามารถเปิดใช้งานสายการเขียนเพื่อทำการเปลี่ยนแปลงข้อมูลที่เก็บไว้ เมื่อสายการเขียนถูกปิดใช้งาน เอาต์พุตจะยังคงเหมือนเดิม
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 จะถูกถ่ายโอนผ่านบัส ในการโหลดข้อมูลไปยังหน่วยความจำที่เพิ่งเพิ่มเข้าไป ซีพียูจะใส่ที่อยู่หน่วยความจำไปที่แอดเดรสบัสและผลลัพธ์ของผลรวมไปยังบัสข้อมูล และเปิดใช้งานสัญญาณที่ถูกต้องในบัสควบคุม ด้วยวิธีนี้ข้อมูลจะถูกโหลดไปยังหน่วยความจำด้วยความช่วยเหลือของบัส
แคช
CPU ยังมีกลไกในการดึงคำสั่งล่วงหน้าไปยังแคช อย่างที่เราทราบดีว่ามีคำสั่งหลายล้านคำสั่งที่โปรเซสเซอร์สามารถทำได้ภายในไม่กี่วินาที ซึ่งหมายความว่าจะใช้เวลามากขึ้นในการดึงคำสั่งจาก RAM มากกว่าดำเนินการ ดังนั้นแคชของ CPU จะดึงข้อมูลคำสั่งบางส่วนล่วงหน้าและข้อมูลเพื่อให้ดำเนินการได้อย่างรวดเร็ว
หากข้อมูลในแคชและหน่วยความจำปฏิบัติการต่างกัน ข้อมูลจะถูกทำเครื่องหมายเป็น บิตสกปรก .
การวางท่อคำสั่ง
CPU สมัยใหม่ใช้ การวางท่อคำสั่ง สำหรับ ขนานในการดำเนินการคำสั่ง ดึงข้อมูล ถอดรหัส ดำเนินการ เมื่อคำสั่งหนึ่งอยู่ในเฟสถอดรหัส ซีพียูสามารถประมวลผลคำสั่งอื่นสำหรับการดึงข้อมูลเฟสได้
สิ่งนี้มีปัญหาหนึ่งเมื่อคำสั่งหนึ่งขึ้นอยู่กับคำสั่งอื่น ดังนั้นโปรเซสเซอร์จึงดำเนินการคำสั่งที่ไม่ขึ้นกับและอยู่ในลำดับที่ต่างกัน
คอมพิวเตอร์มัลติคอร์
โดยพื้นฐานแล้วมันคือ CPU ที่แตกต่างกัน แต่มีทรัพยากรที่ใช้ร่วมกันเช่นแคช
ประสิทธิภาพ
ประสิทธิภาพของ CPU ถูกกำหนดโดยเวลาดำเนินการ ประสิทธิภาพ =1/เวลาดำเนินการ
สมมติว่าใช้เวลา 20 มิลลิวินาทีในการดำเนินการโปรแกรม ประสิทธิภาพของ CPU คือ 1/20 =0.05msRelative performance =เวลาดำเนินการ 1/ เวลาดำเนินการ 2
ปัจจัยที่อยู่ในการพิจารณาประสิทธิภาพของ CPU คือเวลาดำเนินการคำสั่งและความเร็วสัญญาณนาฬิกาของ CPU ดังนั้นเพื่อเพิ่มประสิทธิภาพของโปรแกรม เราจำเป็นต้องเพิ่มความเร็วสัญญาณนาฬิกาหรือลดจำนวนคำสั่งในโปรแกรม ความเร็วโปรเซสเซอร์มีจำกัด และคอมพิวเตอร์สมัยใหม่ที่มีมัลติคอร์สามารถรองรับคำสั่งได้หลายล้านคำสั่งต่อวินาที แต่ถ้าโปรแกรมที่เราเขียนมีคำสั่งเยอะ จะทำให้ประสิทธิภาพโดยรวมลดลง
สัญกรณ์บิ๊กโอ กำหนดด้วยอินพุตที่กำหนดว่าประสิทธิภาพจะได้รับผลกระทบอย่างไร
มีการเพิ่มประสิทธิภาพมากมายใน CPU เพื่อให้เร็วขึ้นและทำงานได้มากที่สุด ในขณะที่เขียนโปรแกรมใดๆ เราต้องพิจารณาว่าการลดจำนวนคำสั่งที่เราให้กับ CPU จะเพิ่มประสิทธิภาพของโปรแกรมคอมพิวเตอร์ได้อย่างไร
โพสต์บนบล็อก Milap Neupane ด้วย:CPU ทำงานอย่างไร