ฉันจะคำนวณความเร็วสัญญาณนาฬิกาในโปรเซสเซอร์แบบมัลติคอร์ได้อย่างไร


23

เช่นถูกต้องหรือไม่ตัวอย่างเช่นโปรเซสเซอร์ที่มีสี่คอร์แต่ละตัวที่ทำงานที่ 3GHz นั้นเป็นโปรเซสเซอร์ที่ทำงานด้วยความเร็ว 12GHz หรือไม่

ฉันเคยเข้าสู่ข้อโต้แย้ง "Mac vs. PC" (ซึ่งไม่ได้เป็นจุดสนใจของหัวข้อนี้ ... ซึ่งย้อนกลับไปในโรงเรียนมัธยมปลาย) กับคนรู้จักที่ยืนยันว่า Mac ถูกโฆษณาเป็นเครื่อง 1Ghz เพียงเพราะพวกเขา เป็นโปรเซสเซอร์ G4 คู่ที่ทำงานที่ 500MHz

ในขณะที่ฉันรู้ว่าสิ่งนี้จะ hogwash ด้วยเหตุผลที่ฉันคิดว่าคนส่วนใหญ่เห็นได้ชัด แต่ฉันเพิ่งเห็นความคิดเห็นในเว็บไซต์นี้เพื่อผลของ "6 cores x 0.2GHz = 1.2Ghz" และนั่นทำให้ฉันคิดอีกครั้งว่า มีคำตอบที่แท้จริงสำหรับเรื่องนี้

ดังนั้นนี่คือคำถามทางเทคนิคเชิงปรัชญา / เชิงลึกที่มากหรือน้อยเกี่ยวกับความหมายของการคำนวณความเร็วสัญญาณนาฬิกา ฉันเห็นความเป็นไปได้สองอย่าง:

  1. แต่ละแกนเป็นจริงทำการคำนวณ x ต่อวินาทีดังนั้นจำนวนการคำนวณทั้งหมดคือ x (แกน)
  2. ความเร็วสัญญาณนาฬิกานั้นนับจำนวนรอบของโปรเซสเซอร์ที่ผ่านไปในระยะเวลาหนึ่งวินาทีดังนั้นตราบใดที่แกนประมวลผลทั้งหมดทำงานด้วยความเร็วเท่ากันความเร็วของนาฬิกาแต่ละรอบจะยังคงเหมือนเดิมไม่ว่าจะมีกี่แกนอยู่ . กล่าวอีกนัยหนึ่ง Hz = (core1Hz + core2Hz + ... ) / cores

คำตอบมากมายที่นี่ทำงานได้ดีในการอธิบายว่าทำไมเช่นโปรเซสเซอร์ Quad-Core 2 GHz ไม่จำเป็นต้องเท่ากับโปรเซสเซอร์ 8 GHz แบบ single-core อย่างไรก็ตามฉันมีช่วงเวลาที่ยากลำบากในการกำหนดความเร็วของโปรเซสเซอร์แบบมัลติคอร์เมื่อพิจารณาถึงความเหมาะสมของระบบสำหรับแอปพลิเคชันที่แสดงความเร็วและจำนวนคอร์เฉพาะในข้อกำหนดของมัน (เช่น: Borderlands 2 ต้องการโปรเซสเซอร์ dual-core 2.4 GHz เราควรคาดหวังว่า quad-core ที่ความเร็วต่ำกว่าหรือ single-core ที่ความเร็วสูงกว่าจะทำเช่นกัน? หรือควรเป็นคำถามแยกต่างหาก
Iszi

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

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

คำตอบ:


35

เหตุผลหลักที่โปรเซสเซอร์ Quad-core 3GHz ไม่เคยเร็วเท่า 12GHz แบบ single-core มาจากการทำงานของตัวประมวลผลนั้น ๆ เช่น single-threaded หรือ multi-threaded กฎหมายของอัมดาห์เป็นสิ่งสำคัญเมื่อพิจารณาประเภทของงานที่คุณกำลังทำอยู่

หากคุณมีงานที่เป็นเส้นตรงโดยเนื้อแท้และจะต้องทำทีละขั้นตอนอย่างแม่นยำเช่น (โปรแกรมเรียบง่ายอย่างไม่มีการลด)

10: a = a + 1
20: goto 10

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

ตอนนี้ทำงานเช่น:

10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10

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

ดังนั้นหากคุณมีแอพพลิเคชั่นแบบเธรดเดียวที่ทำการคำนวณแรงเดรัจฉานหน่วยประมวลผล 12GHz ตัวเดียวจะชนะถ้าคุณสามารถแบ่งงานออกเป็นส่วนต่าง ๆ และมัลติเธรดได้ 4 คอร์อาจเข้าใกล้ แต่ไม่ถึง ประสิทธิภาพเดียวกันตามกฎหมายของ Amdahl

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

อาร์กิวเมนต์ของ "6 cores x 0.2GHz = 1.2Ghz" เป็นขยะในทุกสถานการณ์ยกเว้นงานที่ขนานกันอย่างสมบูรณ์และเป็นอิสระ มีงานจำนวนมากที่ขนานกันอย่างมาก แต่ก็ยังต้องการการซิงโครไนซ์ในบางรูปแบบ Handbrakeเป็น trancoder วิดีโอที่ดีมากในการใช้ CPU ทั้งหมดที่มี แต่มันต้องการกระบวนการแกนเพื่อเก็บเธรดอื่นที่เต็มไปด้วยข้อมูลและรวบรวมข้อมูลที่พวกเขาทำ

  1. แต่ละแกนเป็นจริงทำการคำนวณ x ต่อวินาทีดังนั้นจำนวนการคำนวณทั้งหมดคือ x (แกน)

แต่ละแกนมีความสามารถในการทำการคำนวณ x ต่อวินาทีโดยสมมติว่าเวิร์กโหลดนั้นขนานกันอย่างเหมาะสมบนโปรแกรมเชิงเส้นสิ่งที่คุณมีคือ 1 แกน

  1. ความเร็วสัญญาณนาฬิกานั้นนับจำนวนรอบของโปรเซสเซอร์ที่ผ่านไปในระยะเวลาหนึ่งวินาทีดังนั้นตราบใดที่แกนประมวลผลทั้งหมดทำงานด้วยความเร็วเท่ากันความเร็วของนาฬิกาแต่ละรอบจะยังคงเหมือนเดิมไม่ว่าจะมีกี่แกนอยู่ . กล่าวอีกนัยหนึ่ง Hz = (core1Hz + core2Hz + ... ) / cores

ฉันคิดว่ามันเป็นการเข้าใจผิดที่จะคิดว่า 4 x 3GHz = 12GHz ได้รับการคำนวณทางคณิตศาสตร์ แต่คุณกำลังเปรียบเทียบแอปเปิ้ลกับส้มและจำนวนเงินไม่ถูกต้อง GHz ไม่สามารถรวมเข้าด้วยกันได้ในทุกสถานการณ์ ฉันจะเปลี่ยนเป็น 4 x 3GHz = 4 x 3GHz


โพสต์ที่ดี .. ไม่สามารถลงคะแนนมากกว่า 1+ :-(
Gopalakrishnan Subramani

แต่กฎหมายของ amdahl เป็นข้อกังวลเกี่ยวกับการเขียนโปรแกรมที่เกิดจากการล็อกไม่ใช่เรื่องฮาร์ดแวร์ หากคุณไม่ต้องการซิงโครไนซ์แต่ละคอร์สามารถรันคำสั่งได้เร็วที่สุด หนึ่งสามารถออกแบบโปรแกรมแบบขนาน (แบบง่าย) ที่จะแยกระหว่างคอร์ได้อย่างสมบูรณ์แบบ ผู้ผลิตฮาร์ดแวร์จะไม่โฆษณามูลค่าดิบนี้หรือไม่
Justin Meiners

เพื่อความกระจ่างแจ้งฉันเข้าใจว่าทำไมสิ่งนี้ตอบคำถามที่ว่าทำไม 4 คอร์ที่ 3 กิกะเฮิร์ตซ์นั้นไม่เร็วเท่านี้ในทางปฏิบัติเท่ากับ 12 กิกะเฮิร์ตซ์ แต่ไม่ใช่ส่วนของการคำนวณความเร็วนาฬิกาสำหรับมัลติคอร์
Justin Meiners

@JustinMeiners ความเร็วสัญญาณนาฬิกาต่อคอร์เป็นเพียงแค่ความเร็วสัญญาณนาฬิกาที่คอร์ทำงาน ไม่มีการคำนวณเวทย์มนตร์ที่เปรียบเสมือนคอร์เดียวกับมัลติคอร์ หลายคอร์นั้นหมายความว่าคุณสามารถทำงานแยกกันมากขึ้นพร้อมกัน กฎหมาย Amdahls บังคับใช้เนื่องจากซอฟต์แวร์การซิงค์และการล็อคที่จำเป็นจะช่วยป้องกันไม่ให้งาน "สมบูรณ์แบบ" ในฮาร์ดแวร์เช่นเดียวกับซอฟต์แวร์ แคชที่ใช้ร่วมกันและหน่วยความจำทำให้เกิดความขัดแย้งและการล็อคเกิดขึ้น
Mokubai

@Mokubai เพื่อชี้แจงเมื่อผู้ผลิตแสดงรายการความเร็วนาฬิกาแต่ละคอร์แต่ละตัววิ่งด้วยความเร็วถูกต้องหรือไม่
Justin Meiners

6

คนอื่นทำดีโต้แย้งจากมุมมองทางเทคนิค ฉันจะทำการเปรียบเทียบแบบง่ายๆสองสามอย่างซึ่งฉันหวังว่าจะอธิบายว่าทำไม 4 * 3GHz ไม่เท่ากับ 1 * 12GHz

ตัวอย่างเช่นผู้หญิงคนหนึ่งสามารถผลิตทารกหนึ่งคนในเก้าเดือน ผู้หญิงเก้าคนจะสามารถผลิตลูกหนึ่งคนได้ในหนึ่งเดือนหรือไม่? ไม่เพราะการตั้งครรภ์ไม่สามารถขนานกันได้ (อย่างน้อยก็ในระดับเทคโนโลยีนี้)

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

อีกกรณีหนึ่งอาจเป็นช่วงเวลาที่แม่นยำของเหตุการณ์ บางครั้งใช้ตัวประมวลผลคอมพิวเตอร์เป็นตัวจับเวลาที่แม่นยำ (แม้ว่าจะไม่แนะนำให้ใช้การฝึกฝนอีกต่อไปเพราะนาฬิกาตัวแปรในโปรเซสเซอร์ส่วนใหญ่ควรใช้ตัวจับเวลาเหตุการณ์ที่มีความแม่นยำสูงแทน) หากเราคิดว่าเรามีโปรเซสเซอร์ที่มีนาฬิกา 12GHz ค่อนข้างเสถียรเราสามารถใช้มันเพื่อวัดเวลาด้วยความละเอียดที่สูงกว่าโปรเซสเซอร์ที่มีนาฬิกา 3GHz มาก ไม่ว่าเราจะมีแกน 3GHz จำนวนเท่าใดเราก็จะไม่สามารถเข้าถึงความละเอียดของคอร์ที่ 12GHz ได้ นั่นก็เหมือนกับการมีนาฬิกา 4 เรือนที่มีจอแสดงผล 7 ส่วนซึ่งนาฬิกาแต่ละเรือนเพิ่งแสดงเวลาที่ถูกต้องเป็นชั่วโมง ไม่ว่าจะแสดงเวลาอย่างถูกต้องคุณไม่สามารถใช้เพื่อวัดช่วงเวลาในช่วงหนึ่งวินาที


คำตอบที่เป็นประโยชน์สำหรับผู้มีความรู้ด้านเทคนิคน้อย นอกจากนี้ผมชอบอุปมา :)
AFF

3

ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่ฉันมีวุฒิปริญญาตรีสาขาวิศวกรรมคอมพิวเตอร์ ในทางทฤษฎี (นี่เป็นคำตอบที่มีแนวคิดสูง), quad-core 3GHz โปรเซสเซอร์แต่ละตัวสามารถเทียบเท่าหน่วยประมวลผล 12GHz หนึ่งตัวอย่างเช่นหากมีการคำนวณสี่ชุดที่จำเป็นสำหรับผลลัพธ์สุดท้ายเดียว นั่นคือสิ่งที่เรียกว่าการประมวลผลแบบขนาน

เพื่อลดความซับซ้อนของตรรกะสมมติว่าเรากำลังพูดถึงตัวประมวลผลแบบดูอัลคอร์ หากชุดการคำนวณเป็นเช่นนั้นให้พูดว่า:

A = B + 1;

c = 1 + d;

จากนั้นการคำนวณทั้งสองสามารถดำเนินการในแกนแยกต่างหากและโปรเซสเซอร์ xGHz จะเทียบเท่ากับโปรเซสเซอร์ single-core 2 * xGHz นี่เป็นเพราะการคำนวณทั้งสองแม้ว่าจะทำที่ x speed จะถูกประมวลผลในเวลาเดียวกัน ในขณะที่ตัวประมวลผลแบบคอร์เดียวสามารถทำได้ที่ความเร็ว 2 * x แต่อีกแบบหนึ่ง หากซีพียูทั้งสองดำเนินการรหัสนี้ในเวลาเดียวกันพวกเขาจะเสร็จในเวลาเดียวกัน อย่างไรก็ตามหากรหัสคือ:

A = B + 1;

c = A + 1;

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

ตามหลักการแล้วโปรเซสเซอร์ 12 คอร์แบบซิงเกิลคอร์สามารถทำงานได้เร็วกว่า (หรือเร็วกว่า) ตัวประมวลผลควอดคอร์ 3GHz เสมอ แต่ไม่ใช่ในทางกลับกัน


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

คำตอบนี้ทำให้เข้าใจผิดด้วยเหตุผลสองประการ ครั้งแรกแกนที่ทันสมัยทำมากกว่าหนึ่งครั้ง ประการที่สองคำตอบสันนิษฐานว่าความเร็วแกนกลางเท่ากับอัตราการทำงาน โปรเซสเซอร์แบบซิงเกิลคอร์ 12GHz จะไม่ทำงานเร็วเท่ากับโปรเซสเซอร์ Quad-core 3GHz หากโปรเซสเซอร์แบบคอร์ต้องการวงจรนาฬิกาที่มากขึ้นอย่างมีนัยสำคัญ (ซึ่งมันจะเป็นเพราะโปรเซสเซอร์ 12GHz จะต้องใช้ท่อมากขึ้นอีกต่อไป)
David Schwartz

2

นี่เป็นคำถามที่ตอบยาก แต่คำตอบสั้น ๆ คือ: ไม่

ในโลกแห่งความเป็นจริงแอพพลิเคชั่นตัวประมวลผล 3GHz สี่ตัวจะไม่เร็วเท่ากับตัวประมวลผล 12Ghz เดี่ยวเนื่องจากความไร้ประสิทธิภาพ อาจใกล้เคียงกัน แต่จะไม่เท่ากับโปรเซสเซอร์ตัวเดียวในแง่ของพลังการประมวลผล

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

ลองดูที่บทความนี้: http://en.wikipedia.org/wiki/Amdahl%27s_law


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

3
@typoknig: นั่นไม่จริงเลย โปรเซสเซอร์ 6 คอร์แบบซิงเกิลคอร์จะเรียกใช้แอพพลิเคชั่นแบบมัลติเธรดที่ความเร็วเท่ากันกับโพรเซสเซอร์แบบ Dual-Core 3GHz โดยสมมติว่าแอปได้รับประโยชน์เต็มที่จากทุกเธรด (ซึ่งเป็นไปได้มากว่า แอปพลิเคชันโลก "แต่นั่นเป็นอาร์กิวเมนต์แยกต่างหาก) เราไม่เห็นโปรเซสเซอร์ 12GHz เพราะมันยากเกินไปกับเทคโนโลยีปัจจุบันไม่ใช่เพราะช้ากว่า
Sasha Chedygov

4
@typoknig: ฉันได้ตั้งโปรแกรมบางโปรแกรมแบบมัลติเธรดและเชื่อฉันถ้าฉันมีหน่วยประมวลผล 12Ghz เดียวใช้รหัสที่ใช้แทน การโปรแกรมแบบเธรดเดี่ยวนั้นง่ายกว่ามากถึง 10 เท่าและมีประสิทธิภาพมากกว่าการโปรแกรมแบบเธรดแบบ muti เหตุผลที่แท้จริงที่อุตสาหกรรมย้ายตัวประมวลผล twords muticore ไม่ใช่เพราะมันเร็วกว่าเพราะเราไม่สามารถทำให้แต่ละซีพียูทำงานได้เร็วขึ้น! สิ่งนี้สรุปได้ด้วยเทคโนโลยี netburst ของ Intel ย้อนกลับไปใน p4 วัน พวกเขาประมาณตัวประมวลผล 10Ghz อย่างน้อยนั่นก็จนกว่าควอนตัมฟิสิกส์ตบหน้าพวกเขาและพูดว่า "noob!"
ทำ

2
@typokning: F22 ใช้อาเรย์ของโปรเซสเซอร์ powerPC เพื่อให้ได้ 10 พันล้านคำสั่งต่อวินาทีซึ่งแตกต่างจาก 10Ghz มาก! มันเหมือนกับว่า Radion HD5970 ของคุณทำงานที่ 4600Ghz มันสามารถ 4.6 TFLOPS แต่เพียงเพราะมันขนานกันอย่างมาก
Faken

1
@typoknig: คุณไม่เข้าใจความแตกต่างระหว่างความถี่ CPU และ IPS (คำสั่งต่อวินาที) อย่างชัดเจนพวกเขาไม่ได้เหมือนกัน โปรดอ่าน: en.wikipedia.org/wiki/Instructions_per_second
Faken

2

ดูเหมือนว่าเราไม่สามารถพูดได้ว่า 4 คอร์ @ 3 GHz สามารถกล่าวได้ว่าเป็น 12 GHz

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

นอกจากนี้ฉันได้อ่านที่ไหนสักแห่งว่าถ้าเราเพิ่มทรานซิสเตอร์สองเท่าที่ฝังอยู่บนชิป (CMP) ความเร็วที่เราจะได้รับคือ 40% นี่เป็นคำแนะนำที่สำคัญสำหรับหัวข้อนี้ด้วย


1

ตราบใดที่มีการประมวลผลสัญญาณนาฬิกาเป็นเวลาใช่ตัวประมวลผลแบบมัลติคอร์จะทำงานครบx * coresรอบต่อวินาที ตามปกติแล้วความเร็วสัญญาณนาฬิกาจะถูกแสดงบนพื้นฐานสำหรับแต่ละคอร์เพื่อการเปรียบเทียบที่ง่ายขึ้น (ไม่เช่นนั้นคุณจะเปรียบเทียบชิป 4GHz แบบดูอัลคอร์ที่ทำงานที่ 2GHz / core เทียบกับชิป Quad-Core 4GHz ที่ทำงานที่ 1GHz / core ได้อย่างไร)

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

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

ข้อสองและอาจเป็นที่รู้จักน้อยในโลกที่ไม่ใช่ช่างเทคนิคคือการเปรียบเทียบความเร็วสัญญาณนาฬิกาบางครั้งอาจเป็นเหมือนการเปรียบเทียบแอปเปิ้ลและส้ม ซีพียูที่แตกต่างกันสามารถทำงานได้อย่างแตกต่างกันในรอบสัญญาณนาฬิกาเดียวดังนั้นถ้าคุณมี 1GHz กับ 1.2GHz ฟังดูดี แต่ชิพ 1GHz อาจทำงานได้จริงมากขึ้นในช่วงเวลาที่กำหนด Pentium 4 ขับรถกลับจุดนี้ไปสู่ Megahertz Myth (ซึ่งฉันไม่รู้ว่ามีชื่อประกาศเกียรติคุณจนกระทั่งเขียนบทความนี้)


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

1

รถสองคันแต่ละคันวิ่งไป 50 ไมล์ต่อชั่วโมงไม่ได้ "รวม" เป็น 100 ไมล์ต่อชั่วโมง มันง่ายจริงๆ ความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์ไม่ได้เป็นตัวชี้วัดอัตราความเร็วในการทำงาน แต่เป็นการวัดความรวดเร็วของนาฬิกา

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