ใน CPU ความเร็วของการคำนวณมีผลต่อความร้อนที่เกิดขึ้นหรือไม่?


9

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


การคำนวณด้วยความเร็วสูงกว่าใช้เวลาสั้นลง
ยูจีน Sh.

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

แน่นอนว่าฉันจะต้องออกแบบการออกแบบ FPGA บางส่วนและเราต้องการให้มันใช้พลังงานต่ำ ดังนั้นเราจึงใช้แหล่งสัญญาณนาฬิกา 10kHz แทนแหล่งสัญญาณ 1MHz เนื่องจากเราไม่ต้องการพลังการประมวลผลมากนัก
lucas92

2
การใช้พลังงานแบบไดนามิกนั้นแปรผันตรงกับความถี่สัญญาณนาฬิกาเป็นหน่วยในซิงโครนัส ดังนั้นความร้อนควรเพิ่มขึ้นเช่นกัน
Mitu Raj

1
@MITURAJ การใช้พลังงานแบบไดนามิกนั้นแปรผันตามความเร็วสัญญาณนาฬิกา ไม่ใช่ความเร็วของนาฬิกา ตามสัดส่วนของกำลังสองของแรงดันไฟฟ้า
mkeith

คำตอบ:


14

นอกเหนือจากความเร็วสัญญาณนาฬิกาโปรดจำไว้ว่าในซีพียู "ตัวใหญ่" ที่แท้จริง (อันที่มีแคช, MMU, TLBs, การประมวลผล pipelined, SIMD และอื่น ๆ ) อีกปัจจัยที่สำคัญของความร้อนที่เกิดขึ้นจะเป็นอย่างไร ทรัพยากร CPU ที่มีอยู่ หากคุณรันโปรแกรมที่ใช้หน่วยความจำมากเวลา CPU ส่วนใหญ่จะหิวโหยหาข้อมูลไม่ทำอะไรเลยดังนั้นความร้อนที่เกิดขึ้นจะค่อนข้างต่ำ รหัสการคำนวณล้วนๆพร้อมลูปแบบคับจะทำให้ร้อนขึ้น สามารถสร้างความร้อนได้มากขึ้นด้วยรหัสที่ได้รับการปรับให้เหมาะสมอย่างแน่นหนาซึ่งเกือบจะไม่มีความผิดพลาดจากสาขาใช้หน่วย SIMD อย่างเข้มข้นทำให้สามารถใช้แคชได้อย่างเหมาะสมและอื่น ๆ

มีโปรแกรมที่ออกแบบมาเป็นพิเศษเพื่อใช้งาน CPU ในโหมดนี้โดยเน้นให้มากที่สุดPrime95เป็นตัวอย่างที่เด่นชัดสำหรับพีซี

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

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


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

SIMD สามารถสร้างความร้อนได้มากจน CPU บางตัวร้อนเกินไปเมื่อใช้ AVX512 อย่างกว้างขวาง +1 สำหรับการชี้ให้เห็นว่าการเพิ่มแรงดันมีความเกี่ยวข้องเช่นกัน
ป่า

1
@ MooseBoys จริงจุดดีมาก แต่ก็คุ้มค่าชี้ให้เห็นว่าในความเป็นจริงถ้า CPU ความเร็วเต็มรูปแบบมี VCore = 1.2V, ลดลงครึ่งหนึ่งความเร็วสัญญาณนาฬิกาจะไม่อนุญาตให้มีการ VCore = 0.6 มันก็จะไม่ทำงาน :)
anrieff

@anreiff ฉันอาจจะเข้าใจผิด แต่ฉันคิดว่าชิป Intel ที่ทันสมัยบางรุ่นจะก้าวลงไปที่ระดับ 0.8V หรือประมาณนั้นขณะที่ไม่ได้ใช้งาน ถึงแม้ว่าจะอยู่ที่ ~ 700MHz และอาจปิดแคช
mbrig

สิ่งหนึ่งคือพวกเขาไม่ไปใกล้ 0V อย่างใดอย่างหนึ่งอาจคาดหวังว่าความเร็วสัญญาณนาฬิกาของ CPU และ Vcore เป็นสัดส่วน มันเป็นเหมือน 3.5GHz@1.2V และ 0.7GHz@0.8V การลดความเร็วมีผลต่อการกระจายพลังงานมากกว่าแรงดันไฟฟ้าแม้ว่าในอดีตจะส่งผลกระทบต่อ "เชิงเส้น" เท่านั้น
anrieff

5

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


4
  • กำลังไฟจะลดลงที่ความถี่ปฏิบัติการต่ำ

  • ที่แรงดันไฟฟ้าแกนกลางเดียวกันพลังงานทั้งหมดจะสูงขึ้นที่ความถี่สัญญาณนาฬิกาที่ต่ำกว่า

  • แต่ถ้าแรงดันคอร์ถูกปรับลงด้วยความถี่พลังงานทั้งหมดอาจน้อยลง

  • สำหรับอัลกอริทึมที่ใช้เวลาส่วนใหญ่รอการดำเนินงาน I / O เวลาดำเนินการจะคงที่โดยไม่คำนึงถึงความถี่สัญญาณนาฬิกาหลัก ดังนั้นพลังงานทั้งหมดที่จำเป็นสำหรับการคำนวณจะขึ้นกับสัดส่วนของความถี่สัญญาณนาฬิกา


    การใช้พลังงานของ CPU ประกอบด้วยสองส่วน

1) การจับกระแสคงที่ (I_static) สำหรับแรงดันและอุณหภูมิที่เฉพาะเจาะจงบางอย่างการดึงกระแสไฟฟ้านี้คงที่ไม่ว่า CPU กำลังทำอะไร

CPU ที่ใช้เทคโนโลยี CMOS ประกอบด้วยทรานซิสเตอร์ MOSFET นับพันหรือหลายล้าน การดึงกระแสไฟฟ้าสถิตย์นั้นมาจากการรวมกระแสรั่วไหลของทรานซิสเตอร์ MOSFET หลายล้านตัว

  • การดึงกระแสคงที่มักเพิ่มขึ้นเมื่อแรงดันไฟฟ้าเพิ่มขึ้น

  • การดึงกระแสคงที่มักจะเพิ่มขึ้นตามอุณหภูมิของ CPU ที่เพิ่มขึ้น

  • การวาดกระแสคงที่มีไว้สำหรับอุปกรณ์จำนวนมากที่เล็กกว่าการดึงกระแสแบบไดนามิก

2) การวาดปัจจุบันแบบไดนามิก สำหรับโปรเซสเซอร์ที่สร้างขึ้นโดยใช้กระบวนการ CMOS กระแสแบบไดนามิกจะเกิดขึ้นเมื่อทรานซิสเตอร์สลับระหว่างสถานะเปิด / ปิด

  • สำหรับแรงดันไฟฟ้าที่ระบุการดึงกระแสไดนามิกจะเป็นสัดส่วนโดยตรงกับความถี่

  • การดึงกระแสไดนามิกเพิ่มขึ้นเมื่อแรงดันไฟฟ้าเพิ่มขึ้น

เหตุผลมีดังนี้ ทรานซิสเตอร์ MOSFET แต่ละตัวใน CPU มีความจุจำนวนหนึ่งที่เกี่ยวข้อง แต่ละครั้ง MOSFET จะสลับ; ต้องการประจุ Q = C * V เพื่อชาร์จ / คายประจุนั้น

การจับกระแสไดนามิกสำหรับแต่ละทรานซิสเตอร์คือ I_dynamic = C * V * f

ไม่คำนึงถึงความถี่ที่คำสั่งจะถูกดำเนินการที่ชุดของการดำเนินงานเฉพาะใน CPU เฉพาะ (สมมติว่าพฤติกรรมที่เหมือนกันจากแคชและหน่วยความจำ) ใช้จำนวนหนึ่งของค่าใช้จ่ายทั้งหมด (Q_program) เนื่องจากการดึงกระแสไดนามิกโดยไม่คำนึงถึงความถี่ ว่าคำสั่งจะถูกดำเนินการที่

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

นักคณิตศาสตร์สามารถเขียน ...

W = (I_dynamic + I_static) * V_supply

E = W * เวลา = Q_program * V_supply + เวลา I_static * V_supply *

เราจะเห็นได้ว่าเมื่อความถี่สัญญาณนาฬิกาเข้าใกล้ 0 วัตต์จะเข้าใกล้ค่าคงที่ แต่พลังงานที่จำเป็นในการคำนวณโปรแกรมเข้าใกล้อนันต์

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

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

วัตต์เป็นสัดส่วนกับแรงดันไฟฟ้า (กำลังสอง) และกระแสเสมอ ดังนั้นหากแรงดันไฟฟ้าลดลงพร้อมกับความถี่ดังนั้นวัตต์จะลดลงตามลูกบาศก์ของความถี่


1

ทรานซิสเตอร์ใช้พลังงานซึ่งสูญเปล่าเหมือนความร้อน มีสองกลไกคงที่และพลังงานแบบไดนามิก พลังงานคงที่เป็นค่าคงที่และพลังงานแบบไดนามิก (สลับ) เกิดขึ้นเมื่อใดก็ตามที่มีการเปลี่ยนแปลงสถานะ (0-> 1 หรือ 1-> 0) พลังงานแบบไดนามิก (การสลับ) มักจะเป็นแหล่งความร้อนที่มากกว่าไฟฟ้าสถิต การคำนวณที่คุณต้องการดำเนินการจะใช้จำนวนรอบสัญญาณนาฬิกาเท่ากันและทำให้จำนวนบิตทรานซิสเตอร์เท่ากันพลิกโดยไม่ขึ้นกับความเร็วสัญญาณนาฬิกา ดังนั้นความร้อนแบบไดนามิกจะเหมือนกันสำหรับทั้งสองสถานการณ์ ความร้อนคงที่คือ ... คงที่ ดังนั้นโดยสรุปสมมติว่าซีพียูทำการคำนวณ 1 นี้เท่านั้นดังนั้นการใช้พลังงาน / ความร้อนจะเหมือนกันเมื่อเฉลี่ยในช่วงเวลาที่กำหนด


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

OP ถามถึงความเร็วสัญญาณนาฬิกาอย่างแท้จริงโดยไม่พูดถึงแรงดันไฟฟ้าที่ลดลง
TopCat

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

คำถามคือเกี่ยวกับความร้อน (วัดในจูล) ไม่ใช่พลังงานหรืออุณหภูมิ ความร้อนเป็นพลังงานรูปแบบหนึ่ง ยกเว้นพลังงานเล็กน้อยที่ได้รับจากแหล่งอินพุตและส่งไปยังโหลดเอาต์พุตพลังงานทั้งหมดที่ใช้ในอุปกรณ์จะกลายเป็นความร้อนและในที่สุดจะถูกกระจายออกไป ในลอจิกแบบ CMOS การใช้พลังงานจะสร้างความร้อนเมื่อสถานะเครื่องเปลี่ยน - โดยปกติหนึ่งครั้งต่อรอบนาฬิกาในช่วงเวลานั้นเมื่อประตูอยู่ตรงกลางระหว่าง 0 ถึง 1 ดังนั้นความร้อนสำหรับงานที่กำหนดควรเป็นอิสระจากความเร็วสัญญาณนาฬิกา กับจำนวนรอบนาฬิกา
richard1941

1

ในสถานการณ์ที่คุณอธิบายพลังงานที่จำเป็นสำหรับการคำนวณไม่ได้ขึ้นอยู่กับความเร็วสัญญาณนาฬิกา แต่ความร้อนอาจเป็นคำที่ "นุ่ม" สมมุติว่าการคำนวณใช้เวลา 1 จูล หากคุณทำใน 1 วินาทีนั่นคือ 1 Joule / วินาที = 1 วัตต์ แต่ถ้าใช้เวลา 2 วินาทีนั่นคือ 1 จูล / 2 วินาที = 0.5 จูล / วินาที = 0.5 วัตต์

หน่วยประมวลผลจะถึงอุณหภูมิที่สูงขึ้นอย่างแน่นอนหากการคำนวณเสร็จเร็วขึ้นเพราะพลังงานจะปล่อยเร็วขึ้น ฉันไม่คิดว่าจะมีประเด็นที่พูดมากไปกว่านั้น

โอ้ยกเว้นว่าตัวเลขที่ฉันให้กับคุณนั้นไม่ได้มีความหมายเหมือนจริง มันเป็นเพียงแนวคิด

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