CPU'da, hesaplamanın hızı üretilen ısıyı etkiler mi?


9

Örnek olarak, modern bir bilgisayar CPU'su (Intel, AMD, ne olursa olsun) saat hızını değiştirebilen bir CPU alın. Belirli bir saat hızında belirli bir hesaplama yaptığında, aynı hesaplamayı daha düşük bir saat hızında yaptığıyla aynı miktarda ısı üretir mi? Isı dağılımı ve ısı birikiminin farklı konular olduğunu biliyorum, bu yüzden üretilen ham ısı hakkında konuşalım.


Daha yüksek bir hızda yapılan bir hesaplama daha kısa zaman alır.
Eugene Sh.

4
Landauer açısından ideal olan bir bilgisayarda , hesaplamanın aynı miktarda ısı enerjisi üreteceğini düşünüyorum. Ancak gerçek dünyadaki bilgisayarlarda, muhtemelen farklı olacaktır. Özellikle, halihazırda üretilen ve henüz dağıtılmayan ısı miktarı (yani yarı iletken sıcaklığı) özelliklerini ve dolayısıyla ürettiği ısıyı etkileyecektir.
Ocak

Tabii ki, bazı FPGA tasarımları tasarladım ve düşük güç olması gerekiyordu. Bu nedenle, 1MHz kaynağı yerine 10kHz saat kaynağı kullandık, çünkü bu kadar fazla işleme gücüne ihtiyacımız yoktu.
lucas92

2
Dinamik güç tüketimi, senkron ckts cinsinden saat frekansının karesi ile orantılıdır. Bu nedenle ısı da artmalıdır.
Mitu Raj

1
@MITURAJ, dinamik güç tüketimi saat hızı ile orantılıdır. Saat hızının karesi değil. Gerilim karesiyle orantılı.
mkeith

Yanıtlar:


14

Saat hızının yanı sıra, gerçek bir "büyük" CPU'da (önbellek, MMU, TLB, boru hattı yürütme, SIMD vb. kullanılabilir CPU kaynakları. Bellek yoğun bir program çalıştırırsanız, CPU genellikle veri için açlıktan ölür, hiçbir şey yapmaz, bu nedenle üretilen ısı nispeten düşük olur. Sıkı döngülere sahip tamamen bir hesaplama kodu daha fazla ısınır. Neredeyse hiç şube yanlış tahminleri yapmayan, SIMD ünitelerini yoğun bir şekilde kullanan, önbellekleri en iyi şekilde kullanan ve sıkıca optimize edilen kodla daha fazla ısı üretilebilir.

CPU'yu bu modda çalıştırmak için özel olarak tasarlanmış programlar vardır - mümkün olduğunca vurgulayarak Prime95 PC için önemli bir örnektir.

Aslında, bir bilgisayar Prime95'i mevcut tüm CPU çekirdeklerinde zaten çalıştırıyorsa ve aynı anda başka bir CPU-yoğun uygulama (örneğin, 3D render) başlatıyorsanız, CPU'nun soğuduğunu fark edersiniz . Bunun nedeni, çok düşük Prime95 kodunu ( "tüm transistörleri aydınlatır" ) nispeten düşük talep oluşturma koduyla (büyük olasılıkla çok fazla önbellek kaçırması ve şube yanlış tahminleri olan - CPU'nun durmasına izin veren) bir süre ve soğumaya).

Faktör olarak dikkate almanız gereken bir diğer şey, genellikle her CPU'nun izin verilen saat hızlarına ve her hızla ilişkili çekirdek voltajlara sahip bir tabloya sahip olmasıdır. Üretici, CPU'nun bu voltajda kararlı olacağını belirlediğinden, daha düşük saatler de daha düşük voltajla eşleştirilir. Güç tüketimi kabaca saat hızıyla doğrusal olarak, ancak kuadratik olarak voltajla değişir .


1
Güç , belirli bir saat hızı için voltaja göre dörtlü olarak değişir . Genellikle voltajı saat hızını doğrusal olarak değiştirmek için kullanırsınız. Sonuç olarak, güç kübik saat hızı doğrusal iken, gerilim vs. Bu nedenle güç tüketimi saat hızına göre ikinci derecedir.
MooseBoys

SIMD o kadar çok ısı üretebilir ki, bazı CPU'lar AVX512'yi yoğun olarak kullanırken aşırı ısınır. Gerilim artışının da ilgili olduğunu belirtmek için +1.
orman

1
@MooseBoys, doğru, çok iyi bir nokta. Ancak, gerçekte, tam hızlı bir CPU'nun Vcore = 1.2V varsa, saat hızının yarıya indirilmesinin Vcore = 0.6'ya izin vermeyeceğini belirtmeye değer, işe yaramayacak :)
anrieff

@anreiff Yanlış hatırlıyor olabilirim, ancak bazı modern Intel çipleri boştayken 0.8V'a kadar inecek. Ancak bu noktada sadece ~ 700MHz'de ve önbellek muhtemelen kapalı.
mbrig

Mesele şu ki, CPU saat hızının ve Vcore'un orantılı olup olmadığını tahmin edebileceği gibi 0V'a gitmiyorlar. Daha çok 3.5GHz@1.2V ve 0.7GHz@0.8V gibi. Hızdaki azalma, güç yayılımı üzerinde, gerilimi lineer olarak "sadece" etkilese bile, voltajdan daha fazla etkiye sahiptir.
anrieff

5

Tüketilen güç, saatin geçiş hızı ve bu etkili kapasitör kapılarının değiştirilmesi ile iletim kayıpları ile orantılıdır. Bununla birlikte, sıcaklık artışı, tüketilen güç ile etkili termal direnç, watt başına C derece ile orantılıdır ve bu nedenle enerjiden bağımsızdır veya daha çok güç tüketimine bağlı olarak ve daha uzun bir süre boyunca bu gücü yaymamak için daha soğuk veya daha sıcak çalışabilir. Saat hızıyla sıcaklık artışının birden fazla kesirli güç gücü olduğunu gösteren bir formül olabilir.


4
  • Watt düşük çalışma frekansında daha düşük olacaktır.

  • Aynı çekirdek voltajında, toplam enerji düşük saat frekansında daha yüksek olacaktır.

  • Ancak çekirdek voltajı frekansla düşürülürse, toplam enerji daha az olabilir.

  • Zamanlarının çoğunu G / Ç işlemlerini bekleyerek geçiren algoritmalar için, yürütme süresi çekirdek saat frekansından bağımsız olarak yaklaşık olarak sabit olacaktır. Bu nedenle hesaplama için gereken toplam enerji saat frekansı ile orantılı olarak artacaktır.


    CPU'nun güç tüketimi iki bölümden oluşur.

1) Statik akım çekimi (I_static). Belirli bir besleme gerilimi ve sıcaklığı için bu akım çekişi, CPU'nun ne yaptığından bağımsız olarak sabittir.

CMOS teknolojisi kullanılarak yapılan bir CPU, binlerce veya milyonlarca MOSFET transistörden oluşur. Statik akım çekişi öncelikle milyonlarca MOSFET transistörün birleşik kapalı kaçak akımından kaynaklanmaktadır.

  • Statik akım çekişi genellikle besleme gerilimi arttıkça artar.

  • Statik akım çekişi genellikle CPU sıcaklığı arttıkça artar.

  • Statik akım çekimi, dinamik akım çekiminden çok daha küçük olan birçok cihaz içindir.

2) Dinamik akım çekimi. CMOS işlemleri kullanılarak oluşturulan bir işlemci için, dinamik akım, transistörler açma / kapama durumları arasında geçiş yaptıkça oluşur.

  • Belirli bir besleme gerilimi için dinamik akım çekimi genellikle frekansla doğru orantılıdır.

  • Besleme gerilimi arttıkça dinamik akım çekimi artar.

Sebebi şu şekildedir. CPU'daki her MOSFET transistörünün kendisiyle ilişkili belirli bir kapasitansı vardır. Bir MOSFET her değiştiğinde; bu kapasitansı şarj etmek / boşaltmak için Q = C * V şarjı gereklidir.

Her bir transistör için dinamik akım çekimi I_dynamic = C * V * f'dir.

Talimatların hangi frekansta yürütüldüğünden bağımsız olarak, belirli bir CPU'daki belirli bir işlem kümesi (önbellekten ve bellekten aynı davranışı varsayarak), frekanstan bağımsız olarak dinamik akım çekilmesinden dolayı belirli bir toplam şarj (Q_program) tüketir talimatların yerine getirildiği.

Ancak talimatlar daha yavaş yürütülürse, statik akım çekilmesinden kaynaklanan toplam yük daha fazla zaman geçtiği için daha yüksek olacaktır.

Matematiksel olarak yazabilirsiniz ...

W = (I_dinamik + I_statik) * V_supply

E = W * zaman = Q_program * V_supply + I_static * V_supply * zaman

Saat frekansı 0'a yaklaştıkça, watt değerinin sabit bir değere yaklaşacağını, ancak programı hesaplamak için gereken enerjinin sonsuza yaklaştığını görebiliriz.

Öyleyse (CPU transistörlerinin kapasitelerine bağlı olarak) Q_program belirli bir besleme voltajı ve çalışma kümesi için sabitlenirse, modern CPU'lar saat frekanslarını düşürerek nasıl güç tasarrufu sağlar? Cevap, modern CPU'ların çoğunun ya yerleşik (ya da eşlik eden bir çipte) ayarlanabilir bir çekirdek voltaj regülatörü içermesidir. Saat frekanslarını düşürdüklerinde çekirdek voltajlarını da düşürebilirler. Q_program (ve E_program), besleme voltajıyla orantılı olarak düşer.

CPU'nun düşük voltajı yüksek frekanslarda kullanamayacağına dikkat edin, çünkü düşük voltajlarda transistör anahtarlama süresi artar.

Watt, hem gerilim (kare) hem de akım çekimi ile orantılıdır. Eğer voltaj frekansla aynı anda düşürülürse, watt frekansın küpü ile düşer.


1

Transistörler ısı olarak boşa harcanan enerjiyi kullanırlar. İki mekanizma vardır, statik ve dinamik enerji. Statik enerji sabittir ve dinamik (anahtarlama) enerjisi, durumu her değiştirdiğinde (0-> 1 veya 1-> 0) oluşur. Dinamik (anahtarlamalı) enerji genellikle statikten daha büyük bir ısı kaynağıdır. Gerçekleştirmek istediğiniz hesaplama aynı sayıda saat döngüsünü alacak ve saat hızından bağımsız olarak aynı sayıda transistör bitinin dönmesine neden olacaktır. Dolayısıyla dinamik ısı her iki durumda da aynıdır. Statik ısı ... statiktir. Özet olarak, CPU'nun SADECE bu 1 hesaplamayı yaptığını varsayarsak, enerji / ısı tüketimi belirli bir zaman diliminde ortalama alındığında tam olarak aynıdır.


Gerçeğin kenarına gidiyorsun, ama geçmesine izin vereceğim. CMOS için enerji seviyesi, çalışma frekansı ile neredeyse doğrusal bir çizgide artar, ancak voltajı ve enerjiyi dört katına çıkarır. Hız dahil olmayan kötü I2R denklemi.
Sparky256

OP sadece saat hızını sordu, düşük voltajdan bahsetmedi.
TopCat

Yukarıdaki bir yanıt çekirdek voltajların cezasından bahsetti. Bu soruyu cevaplamanız gerektiğini ima etmedim. Sadece yorum yapıyordum - yorum kutusuna.
Sparky256

Soru, güç veya sıcaklık ile değil, HEAT (Joule cinsinden ölçülür) hakkındaydı. Isı bir enerji şeklidir. Giriş kaynaklarından alınan ve çıkış yüklerine teslim edilen az miktarda enerji dışında, cihazda tüketilen tüm enerji ısınır ve sonunda dağıtılır. CMOS mantığında, makine durumu değiştiğinde enerji tüketimi ısı üretir - normalde, kapılar 0 ile 1 arasında olduğunda, o andaki saat döngüsü başına bir kez. saat döngü sayısı.
richard1941

1

Açıkladığınız senaryoda, hesaplama için gereken enerji saat hızına bağlı değildir. Ancak ısı "yumuşacık" bir terim olabilir. Diyelim ki hesaplama 1 Joule sürüyor. 1 saniyede yaparsanız, 1 Joule / sn = 1 Watt. Ancak 2 saniye sürüyorsa, 1 Joule / 2sec = 0.5 Joule / sn = 0.5 Watt.

Hesaplama daha hızlı yapılırsa işlemci kesinlikle daha yüksek bir sıcaklığa ulaşacaktır, çünkü enerji daha hızlı serbest bırakılır. İçimde bundan daha fazlasını söyleyen çok fazla nokta olduğunu sanmıyorum.

Oh, sana verdiğim sayılar gerçekçi olmak dışında. Bu sadece kavram.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.