HTG อธิบาย: CPU ทำงานอย่างไร?

Feb 28, 2025
ฮาร์ดแวร์
ตะแกรง / shutterstock

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

งานวิจัยส่วนใหญ่สำหรับบทความนี้มาจาก “ แต่มันรู้ได้อย่างไร?” โดย J.Clark Scott เป็นการอ่านที่ยอดเยี่ยมเจาะลึกมากกว่าบทความนี้และคุ้มค่ากับเงินสองสามเหรียญใน Amazon

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

เริ่มต้นจากขนาดเล็ก

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

ที่เกี่ยวข้อง: ไบนารีคืออะไรและทำไมคอมพิวเตอร์ถึงใช้มัน?

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

ลอจิกเกตส์

วางทรานซิสเตอร์สองสามตัวให้ถูกต้องและคุณมีสิ่งที่เรียกว่าลอจิกเกต ลอจิกเกตรับอินพุตไบนารีสองตัวดำเนินการกับอินพุตเหล่านั้นและส่งคืนเอาต์พุต ตัวอย่างเช่นประตู OR จะคืนค่า true หากอินพุตใดอินพุตหนึ่งเป็นจริง ประตู AND จะตรวจสอบว่าอินพุตทั้งสองเป็นจริงหรือไม่ XOR จะตรวจสอบว่าอินพุตเพียงตัวเดียวเป็นจริงหรือไม่และตัวแปร N (NOR, NAND และ XNOR) เป็นเวอร์ชันกลับด้านของประตูฐาน

ทำคณิตศาสตร์กับประตู

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

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

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

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

และนี่ก็ซับซ้อนพอ ๆ กับการบวก การเลื่อนขึ้นเป็นบิตมากขึ้นโดยพื้นฐานแล้วหมายถึงส่วนเติมเต็มมากขึ้นในห่วงโซ่ที่ยาวขึ้น

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

บัสและหน่วยความจำ

ตอนนี้คอมพิวเตอร์ของเราไม่มีอะไรมากไปกว่าเครื่องคิดเลขที่ไม่ดี เนื่องจากจำอะไรไม่ได้และไม่ได้ทำอะไรเลย ที่แสดงด้านบนคือเซลล์หน่วยความจำซึ่งสามารถทำสิ่งนั้นได้ทั้งหมด ภายใต้ฝากระโปรงนั้นใช้ประตู NAND จำนวนมากและในชีวิตจริงอาจแตกต่างกันมากขึ้นอยู่กับเทคนิคการจัดเก็บ แต่การทำงานของมันก็เหมือนกัน คุณให้อินพุตบางส่วนเปิดบิต "เขียน" และมันจะเก็บอินพุตไว้ในเซลล์ นี่ไม่ใช่แค่เซลล์ความจำเท่านั้น แต่เรายังต้องการวิธีอ่านข้อมูลจากเซลล์นั้นด้วย สิ่งนี้ทำได้ด้วยตัวเปิดใช้งานซึ่งเป็นคอลเลกชันของ AND ประตูสำหรับแต่ละบิตในหน่วยความจำทั้งหมดนี้เชื่อมโยงกับอินพุตอื่นบิต "อ่าน" บิตสำหรับเขียนและอ่านมักเรียกว่า "set" และ "enable" เช่นกัน

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

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

รีจิสเตอร์ใช้ในการสร้างแรมเช่นกัน RAM มักจะวางในตารางโดยมีสายไฟไปในสองทิศทาง:

ตัวถอดรหัสรับอินพุตไบนารีและเปิดสายตัวเลขที่เกี่ยวข้อง ตัวอย่างเช่น“ 11” คือ 3 ในไบนารีซึ่งเป็นตัวเลข 2 บิตสูงสุดดังนั้นตัวถอดรหัสจะเปิดสายสูงสุด ที่สี่แยกแต่ละแห่งจะมีทะเบียน ทั้งหมดนี้เชื่อมต่อกับบัสกลางและเข้ากับอินพุตการเขียนและอ่านส่วนกลาง ทั้งอินพุตอ่านและเขียนจะเปิดก็ต่อเมื่อเปิดสายไฟสองเส้นที่ข้ามไปที่รีจิสเตอร์ด้วยซึ่งช่วยให้คุณสามารถเลือกรีจิสเตอร์ที่จะเขียนและอ่านได้อย่างมีประสิทธิภาพ อีกครั้งแรมสมัยใหม่มีความซับซ้อนกว่ามาก แต่การตั้งค่านี้ยังคงใช้งานได้

นาฬิกาสเต็ปเปอร์และตัวถอดรหัส

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

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

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

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

ประตู AND เหล่านี้ยังเชื่อมต่อกับเอาต์พุตของส่วนประกอบอื่นคือตัวถอดรหัสคำสั่ง ตัวถอดรหัสคำสั่งใช้คำสั่งเช่น“ SET R2 TO R1” และถอดรหัสเป็นสิ่งที่ CPU สามารถเข้าใจได้ มีรีจิสเตอร์ภายในของตัวเองเรียกว่า“ Instruction Register” ซึ่งเป็นที่เก็บการดำเนินการปัจจุบัน สิ่งนี้เกิดขึ้นกับระบบที่คุณใช้งานอยู่ได้อย่างไร แต่เมื่อถอดรหัสแล้วระบบจะเปิดชุดที่ถูกต้องและเปิดใช้งานบิตสำหรับการลงทะเบียนที่ถูกต้องซึ่งจะเริ่มทำงานตามนาฬิกา

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

ทั้งหมดมารวมกันได้อย่างไร

ตอนนี้การลดความซับซ้อนขั้นต้นของเราเกี่ยวกับวิธีการทำงานของ CPU เสร็จสมบูรณ์ รถบัสหลักครอบคลุมทั้งระบบและเชื่อมต่อกับการลงทะเบียนทั้งหมด แอดเดอร์แบบเต็มพร้อมกับการดำเนินการอื่น ๆ อีกมากมายจะถูกบรรจุลงใน Arithmetic Logic Unit หรือ ALU ALU นี้จะมีการเชื่อมต่อกับบัสและจะมีรีจิสเตอร์ของตัวเองสำหรับจัดเก็บหมายเลขที่สองที่ทำงานอยู่

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

เครดิตรูปภาพ: Rost9 / Shutterstock

HTG Explains: What Are All Those Advanced Power Settings In Windows?

Increasing Your FPS: Does CPUCores Really Work? | Software Review | MindMineTV

كيف يعمل المعالج , افهمها من مره واحده How To Cpu Work


ฮาร์ดแวร์ - บทความยอดนิยม

ทำไมคุณไม่ควรใช้การ์ด MicroSD ในกล้อง DSLR หรือ Mirrorless

ฮาร์ดแวร์ Dec 24, 2024

การ์ด MicroSD ได้รับการยอมรับอย่างกว้างขวางมากขึ้นในทุกอย่างตั้งแต�..


วูฟเฟอร์ลำโพงเสียงกลางและทวีตเตอร์คืออะไร?

ฮาร์ดแวร์ Jul 18, 2025

วูฟเฟอร์ลำโพงเสียงกลางและทวีตเตอร์เป็นลำโพงทุกประเภท โดยส่วนใ..


Streaming Box Showdown: Apple TV เทียบกับ Roku เทียบกับ Amazon Fire TV เทียบกับ Chromecast กับ Android TV

ฮาร์ดแวร์ Dec 6, 2024

ไม่มีความลับที่ทีวี "อัจฉริยะ" ไม่ได้ฉลาดขนาดนั้นจริงๆ . โดย..


ล้านพิกเซลมีความสำคัญเมื่อซื้อกล้องหรือไม่?

ฮาร์ดแวร์ Jul 5, 2025

บริษัท ด้านเทคโนโลยีชอบที่จะโบกมือเรียกตัวเลขจำนวนมากและคำพูด..


วิธีทำให้คีย์บอร์ดของคุณเงียบด้วยสวิตช์แดมเพนเนอร์

ฮาร์ดแวร์ Mar 12, 2025

เนื้อหาที่ไม่ถูกแคช คีย์บอร์ดเชิงกลขึ้นชื่อเรื่องเสียงที่แตก�..


วิธีดูไฟล์วิดีโอในเครื่องบน Wii U ของคุณ

ฮาร์ดแวร์ Jan 24, 2025

เนื้อหาที่ไม่ถูกแคช Wii U ของ Nintendo มีแอปสำหรับดู Netflix, YouTube, Hulu และวิดีโอสต..


ในที่สุดก็ถึงเวลาที่ดีที่จะซื้อ Apple TV หรือไม่?

ฮาร์ดแวร์ Nov 30, 2024

เนื้อหาที่ไม่ถูกแคช เมื่อ Apple ลดราคา Apple TV รุ่นที่สามลงเหลือ 69 เหรีย�..


คอมพิวเตอร์สมัยใหม่ยังคงเสี่ยงต่อความเสียหายจากแม่เหล็กหรือไม่?

ฮาร์ดแวร์ Sep 20, 2025

เนื้อหาที่ไม่ถูกแคช มันเป็นคำเตือนซ้ำ ๆ บ่อยครั้งที่มันฝังแน่นอ�..


หมวดหมู่