เหตุผลหลักที่โปรเซสเซอร์ 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 ทั้งหมดที่มี แต่มันต้องการกระบวนการแกนเพื่อเก็บเธรดอื่นที่เต็มไปด้วยข้อมูลและรวบรวมข้อมูลที่พวกเขาทำ
- แต่ละแกนเป็นจริงทำการคำนวณ x ต่อวินาทีดังนั้นจำนวนการคำนวณทั้งหมดคือ x (แกน)
แต่ละแกนมีความสามารถในการทำการคำนวณ x ต่อวินาทีโดยสมมติว่าเวิร์กโหลดนั้นขนานกันอย่างเหมาะสมบนโปรแกรมเชิงเส้นสิ่งที่คุณมีคือ 1 แกน
- ความเร็วสัญญาณนาฬิกานั้นนับจำนวนรอบของโปรเซสเซอร์ที่ผ่านไปในระยะเวลาหนึ่งวินาทีดังนั้นตราบใดที่แกนประมวลผลทั้งหมดทำงานด้วยความเร็วเท่ากันความเร็วของนาฬิกาแต่ละรอบจะยังคงเหมือนเดิมไม่ว่าจะมีกี่แกนอยู่ . กล่าวอีกนัยหนึ่ง Hz = (core1Hz + core2Hz + ... ) / cores
ฉันคิดว่ามันเป็นการเข้าใจผิดที่จะคิดว่า 4 x 3GHz = 12GHz ได้รับการคำนวณทางคณิตศาสตร์ แต่คุณกำลังเปรียบเทียบแอปเปิ้ลกับส้มและจำนวนเงินไม่ถูกต้อง GHz ไม่สามารถรวมเข้าด้วยกันได้ในทุกสถานการณ์ ฉันจะเปลี่ยนเป็น 4 x 3GHz = 4 x 3GHz