ความแตกต่างระหว่างคอร์และโปรเซสเซอร์


197

อะไรคือความแตกต่างระหว่างคอร์และโปรเซสเซอร์?

ฉันได้ค้นหาแล้วบน Google แต่ฉันเพิ่งมีข้อกำหนดแบบ multi-core และ multi-processor แต่ไม่ตรงกับสิ่งที่ฉันกำลังมองหา

คำตอบ:


197

แกนกลางมักเป็นหน่วยการคำนวณพื้นฐานของ CPU - มันสามารถเรียกใช้บริบทของโปรแกรมเดียว (หรือหลายรายการถ้ารองรับเธรดฮาร์ดแวร์เช่นการไฮเปอร์เธรดบน CPU ของ Intel) การบำรุงรักษาสถานะโปรแกรมที่ถูกต้องลงทะเบียนและลำดับการดำเนินการที่ถูกต้อง การดำเนินการผ่านALU ALUsเพื่อวัตถุประสงค์ในการปรับให้เหมาะสมคอร์ยังสามารถเก็บแคชบนคอร์พร้อมสำเนาของหน่วยความจำที่ใช้บ่อย

CPU อาจมีคอร์ตั้งแต่หนึ่งคอร์ขึ้นไปเพื่อทำงานในเวลาที่กำหนด งานเหล่านี้มักจะเป็นกระบวนการซอฟต์แวร์และเธรดที่ OS กำหนดเวลา โปรดทราบว่าระบบปฏิบัติการอาจมีหลายเธรดให้ทำงาน แต่ซีพียูสามารถรัน X งานดังกล่าวในเวลาที่กำหนดโดยที่ X = หมายเลขแกน * จำนวนเธรดฮาร์ดแวร์ต่อคอร์ ส่วนที่เหลือจะต้องรอให้ระบบปฏิบัติการกำหนดเวลาว่าจะดำเนินการงานที่กำลังดำเนินอยู่หรือวิธีอื่นใด

นอกเหนือจากหนึ่งคอร์หรือหลายคอร์ซีพียูจะรวมการเชื่อมต่อระหว่างกันที่เชื่อมต่อคอร์กับโลกภายนอกและมักจะเป็นแคชที่แชร์ "ระดับสุดท้าย" ขนาดใหญ่ มีองค์ประกอบสำคัญหลายอย่างที่จำเป็นสำหรับการทำงานของ CPU แต่ตำแหน่งที่แน่นอนอาจแตกต่างกันไปตามการออกแบบ คุณจะต้องใช้ตัวควบคุมหน่วยความจำเพื่อพูดคุยกับหน่วยความจำตัวควบคุม I / O (จอแสดงผล PCIe, USB และอื่น ๆ ) ในอดีตองค์ประกอบเหล่านี้อยู่นอก CPU ใน "ชิปเซ็ต" เสริม แต่การออกแบบที่ทันสมัยส่วนใหญ่ได้รวมไว้ใน CPU

นอกจากนี้ CPU อาจมี GPU ในตัวและทุกอย่างที่นักออกแบบต้องการให้ใกล้เคียงกับประสิทธิภาพการใช้พลังงานและการผลิต การออกแบบ CPU ส่วนใหญ่มีแนวโน้มว่าสิ่งที่เรียกว่าระบบบนชิป (SoC)

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


@Leor ดังนั้นสำหรับ 4 cpu และ 2 core หากฉันใช้งาน loop loop มันไม่ควรใช้แค่ 1 cpu และ 1 core (เช่น 50%) ของ cpu เพียงอันเดียว? การสังเกตของฉันแสดงให้เห็นว่ามันเกี่ยวข้องกับซีพียูทั้งหมดถึง 100% ... บางอย่างหายไปในความเข้าใจของฉัน ...
Nrj

2
@Nrj หากคุณเรียกใช้แอปพลิเคชันแบบเธรดเดียวแอปพลิเคชันนั้นจะถูกจัดสรรให้กับคอร์เดียวและเปิดใช้งานเธรด HW เดี่ยวเท่านั้น เธรดนั้นจะสามารถใช้ประโยชน์ได้ 100% ของคอร์นั้นเนื่องจากไม่มีเธรดอื่นวิ่งไปพร้อมกับมัน หากคุณเปิดใช้งานแอปพลิเคชั่นอื่นแอปพลิเคชั่นนั้นมักจะถูกจัดสรรให้กับคอร์อื่นและต่อ ๆ ไปจนกว่าคุณจะอิ่มตัวจำนวนคอร์ นอกจากนั้นเธรดเพิ่มเติมใด ๆ จะถูกกำหนดเวลาในคอร์เดียวกันอีกครั้งโดยใช้ SMT ณ จุดนั้นการใช้งานหลักจะถูกกระจายระหว่าง 2 เธรด (และถ้าพวกเขาทำงานแบบสมมาตรแต่ละคนมีแนวโน้มที่จะถึง ~ 50%)
Leeor

@ เห็นได้ชัดว่านี่คือความคาดหวังของฉัน แต่มันไม่ใช่สิ่งที่ฉันพบ ฉันเห็นว่าทั้งสี่ CPU (ใน taskmanager) กระโดดเพื่อแสดงการใช้งาน 100% รหัสนั้นง่าย - สำหรับ (int i = 0; i <Integer.MAX_VALUE; i ++) {System.out.println (k); }
Nrj

@ อายุฉันคิดว่าฉันทำแบบทดสอบไม่ถูกต้อง มันดูเหมือนเวิร์กสเปซออนไลน์ของฉันมี CPU เสมือน (4) แต่เป็นโปรเซสเซอร์เดียว นั่นเป็นเหตุผลว่าทำไมพวกเขาทั้งหมดถึงยุ่ง เมื่อฉันทำการทดสอบบนเครื่องทางกายภาพ 2 cpu (ดูอัลคอร์) ฉันจะเห็นว่าการใช้งาน cpu ประมาณ 25% ซึ่งสอดคล้องกับความคาดหวัง
Nrj

โปรดทราบว่าคำศัพท์นี้แตกต่างกันไปขึ้นอยู่กับว่าคุณถามใคร ยกตัวอย่างเช่นในระบบ Debian ฉันตรวจสอบ/proc/cpuinfoผมเห็นสิบหกเส้นแม้ว่ามันจะพูดว่าprocessor: model: AMD Ryzen 7 2700X Eight-Core Processorดังนั้นอย่างน้อยในกรณีนี้ 8 คอร์แต่ละตัวมี "โปรเซสเซอร์" สองตัวซึ่งเทียบได้กับคำตอบอื่น ๆ ที่นี่
jwd

130

รูปภาพอาจพูดได้มากกว่าหนึ่งพันคำ:

รูปภาพอาจพูดได้มากกว่าหนึ่งพันคำ

* รูปที่อธิบายถึงความซับซ้อนของระบบมัลติโปรเซสเซอร์ที่ทันสมัย, มัลติคอร์

ที่มา:

https://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization


114
มันอาจจะบอกว่ามากกว่าพันคำสำหรับสิ่งมีชีวิตเล็ก ๆ เช่นมด
ท้องฟ้า

12
ฉันไม่มีอะไรที่ต่อต้านการใช้ภาพ แต่อย่างน้อยคุณก็สามารถอธิบายเพิ่มเติมได้ไม่ใช่เพียงแค่คัดลอก / วางภาพ
Patricio Sard

1
@Sky ระวังมด ... #hunter_x_hunter: 3
Saad Achemlal

สำหรับผู้ที่กล่าวว่ามันเล็กเกินไปที่จะอ่านลองคลิกขวาที่มันOpen images in new tabแล้วซูมเข้าใช้cltr++
Ng Sek Long

28

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

ในอดีตซีพียูตัวหนึ่งได้รับการแจกจ่ายในจำนวนชิปไม่กี่ตัว แต่เมื่อกฎของมัวร์ดำเนินไปพวกเขาก็ต้องมีซีพียูที่สมบูรณ์ภายในชิปตัวเดียว (ตาย) ตั้งแต่ยุค 90 ผู้ผลิตเริ่มต้นเพื่อให้พอดีกับแกนกลางมากขึ้นในแม่พิมพ์เดียวกัน แนวคิดของ Multi-core

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

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


แม้ " Intel E5-2697 v2 " ก็มี 12 คอร์ ... ทำไมคุณถึงพูดว่า "คอร์นับร้อยบนซีพียูเดียวกัน"? อะไรจะ จำกัด จำนวนคอร์ที่เป็นไปได้ของ CPU เดี่ยว
Pacerier

2
พวกเขาเป็นหน่วยประมวลผลการวิจัยไมโครโพรเซสเซอร์ในจำนวน 100 คอร์และการผลิตบางอย่างลองดูที่: tomshardware.com/forum/318101-28-which-maximum-cores-cores
Germán Alfaro

9

CPU เป็นหน่วยประมวลผลกลาง ตั้งแต่ปี 2002 เรามีโปรเซสเซอร์แกนเดียวเท่านั้นนั่นคือเราจะทำงานเพียงครั้งเดียวหรือโปรแกรมในเวลาเดียว

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

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


12
เกิดอะไรขึ้นในปี 2002
ปีเตอร์มอร์เทนเซ่น

1
Intel ไม่ได้คิดค้นแนวคิดของการมัลติเธรดพร้อมกัน วิกิพีเดียกล่าวว่าอัลฟา EV8 เป็นครั้งแรกที่การดำเนินการค้าที่สำคัญ
Peter Cordes

3

ในวันแรก ... เหมือนก่อนยุค 90 ... โปรเซสเซอร์ไม่สามารถทำงานหลายอย่างได้อย่างมีประสิทธิภาพ ... coz โปรเซสเซอร์เดียวสามารถจัดการงานเดียว ... ดังนั้นเมื่อเราเคยบอกว่าฉัน โปรแกรมป้องกันไวรัส, Microsoft word, vlc, ฯลฯ ซอฟต์แวร์กำลังทำงานในเวลาเดียวกัน ... ซึ่งไม่เป็นความจริง เมื่อฉันพูดว่าโปรเซสเซอร์สามารถจัดการกระบวนการเดียวในเวลา ... ฉันหมายถึงมัน จริง ๆ แล้วมันจะประมวลผลงานเดียว ... จากนั้นก็ใช้ในการหยุดงานชั่วคราว ... ใช้งานอื่น ... ทำมันให้สำเร็จถ้างานสั้น ๆ ของมันหยุดทำงานชั่วคราวและเพิ่มลงในคิว ... จากนั้นต่อไป แต่ 'หยุดชั่วคราว' ที่ฉันกล่าวถึงนี้มีขนาดเล็กมาก (appx. 1ns) ที่คุณไม่เข้าใจว่างานนั้นถูกหยุดชั่วคราว เช่น. ใน vlc ขณะฟังเพลงมีแอพอื่น ๆ ทำงานพร้อมกัน แต่อย่างที่ฉันบอกคุณ ... ทีละรายการ ...

แต่นี่เป็นเรื่องเกี่ยวกับโปรเซสเซอร์เก่า ...

โปรเซสเซอร์วันนี้คือชิ้นที่ 3 มีโปรเซสเซอร์หลายคอร์ ตอนนี้ 'คอร์' สามารถเปรียบเทียบกับโปรเซสเซอร์ที่ 1 หรือ 2 ของตัวเอง ... ฝังลงในชิปตัวเดียวซึ่งเป็นโปรเซสเซอร์เดียว ดังนั้นตอนนี้เราเข้าใจว่าแกนประมวลผลคืออะไรคือตัวประมวลผลขนาดเล็กซึ่งรวมกันเป็นโปรเซสเซอร์ และแต่ละคอร์สามารถจัดการกับกระบวนการเดียวในแต่ละครั้งหรือหลายเธรดที่ออกแบบมาสำหรับระบบปฏิบัติการ และพวกเขาก็ทำตามขั้นตอนเดียวกับที่ฉันได้กล่าวไว้ข้างต้นเกี่ยวกับโปรเซสเซอร์เดี่ยว

เช่น. โปรเซสเซอร์ i7 6gen มี 8 คอร์ ... เช่น 8 มินิโปรเซสเซอร์ใน 1 i7 ... นั่นคือความเร็วของมันคือ 8x เท่าโปรเซสเซอร์เก่า และนี่คือวิธีการทำงานหลายอย่างที่สามารถทำได้

อาจมีหลายร้อยคอร์ในโปรเซสเซอร์เดียวเช่น Intel i128

ฉันหวังว่าฉันจะอธิบายเรื่องนี้ได้ดี


0

รูปภาพของ Intel มีประโยชน์ดังที่แสดงโดยคำตอบที่ดีที่สุดของ Tortuga นี่คือคำอธิบายภาพ

หน่วยประมวลผล : ชิปเซมิคอนดักเตอร์หนึ่งตัวซีพียู (หน่วยประมวลผลกลาง) นั่งในซ็อกเก็ตเดียวประมาณปี 1950 - 2010 เมื่อเวลาผ่านไปฟังก์ชั่นอื่น ๆ อีกมากมายได้ถูกบรรจุลงในชิปซีพียู ก่อนที่จะมีการเปิดตัวโปรเซสเซอร์ชิปเดี่ยวในปี 1950 โปรเซสเซอร์หนึ่งอาจกระจายไปทั่วชิปหลายตัว ในช่วงกลางปี ​​2010 ชิพระบบบนชิปทำให้การประมวลผลของหน่วยประมวลผลหนึ่ง ๆ กับชิปหนึ่ง ๆ มีความสมบูรณ์มากขึ้น แต่นั่นก็เป็นสิ่งที่ผู้คนทั่วไปเรียกว่าโปรเซสเซอร์เพราะใน "คอมพิวเตอร์นี้มีโปรเซสเซอร์ i7" หรือ "ระบบคอมพิวเตอร์นี้ มีโปรเซสเซอร์สี่ตัว "

แกนหลัก : หนึ่งบล็อกของ CPU ดำเนินการคำสั่งทีละครั้ง (คุณจะเห็นคนพูดหนึ่งคำสั่งต่อรอบสัญญาณนาฬิกา แต่ CPU บางตัวใช้รอบสัญญาณนาฬิกาหลายรอบสำหรับคำแนะนำบางอย่าง)


1
แกน x86 ดำเนินการทางตรรกะตามคำสั่งทีละรายการตามลำดับของโปรแกรม แต่ในความเป็นจริงแล้วซีพียูสมัยใหม่ใช้จ่ายทรานซิสเตอร์จำนวนมากเพื่อรักษาภาพลวงตาของการทำเช่นนั้นในขณะที่การประมวลผลแบบเกินขนาดกว้าง 4 realworldtech.com/haswell-cpu (กว้าง 5 หรือ 6 สำหรับ Ryzen) มากกว่า 3 คำแนะนำต่อนาฬิกานั้นไม่ได้เกิดขึ้นบ่อยนักในบางรหัส แต่ต่ำกว่า 1 ก็เป็นเรื่องธรรมดาในรหัสอื่นที่คอขวดคิดถึงแคชและ / หรือมีการคาดคะเนสาขา
Peter Cordes

นอกจากนี้สถาปัตยกรรม VLIW เช่น Itanium จะexplicltlyขนานและมีเหตุผลเช่นเดียวกับร่างกายทำงานตามคำสั่งหลายขนาน BTW จุดประวัติศาสตร์ที่น่าสนใจที่หนึ่ง CPU ใช้มากกว่าหนึ่งชิปในวันแรก
Peter Cordes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.