CPU saat frekansını dinamik olarak nasıl değiştirebilir?


16

Intel CPU'm kullanıma bağlı olarak saat hızını değiştiriyor, ancak hangi saat hızının çalıştırılacağına nasıl karar veriyor? Saat hızı bir algoritma kullanılarak OS yazılımı tarafından mı belirleniyor, yoksa donanım tabanlı mı? Kesinti # sayısına bağlı mı? Önbellek cirosu mu? CPU kendi saatini ayarlıyor mu? Yoksa ayrı bir kontrolör ayarladı mı? Veya yazılım?


1
Hangi CPU? Gömülü sistemler genellikle böyle çalışmaz.
Leon Heller

SuperUser için belki daha fazla bir şey ?

PIC24F gibi bazı gömülü işlemci ailelerinin programlanabilir saat hızları vardır ve bu güç tasarrufu için kullanılabilir. Harici bir osilatör kullanılabilir, böylece zamana duyarlı çevre birimlerinin saati sabit kalır.
Kaz

Yanıtlar:


18

CPU'nun ana saati doğrudan anakarttan alınmıyor. Bu saat genellikle CPU'nun dahili frekansından çok daha yavaştır (genellikle 10 veya daha fazla faktörle). Bunun yerine, anakarttan gelen saat sinyali, CPU içindeki daha yüksek frekanslı faz kilitli döngü kontrollü osilatör için referans frekansı olarak kullanılır. Oluşturulan saat, referans saatin bazı katlarında çalışır ve bu kat, CPU'daki belirli kayıtlar ayarlanarak değiştirilebilir. Saatin gerçek üretimi tamamen donanımda yapılır.

Gücü daha da azaltmak için, CPU ayrıca çekirdek voltajını daha düşük bir ayar noktasında çalıştırmak için voltaj regülatörüne sinyal gönderir. Daha düşük frekanslarda CPU, arızalanmadan daha düşük bir voltajda çalışabilir ve güç tüketimi voltajın karesiyle orantılı olduğundan, voltajdaki küçük bir azalma bile büyük miktarda güç tasarrufu sağlayabilir.

Gerilim ve frekans ölçeklendirme donanım tarafından yapılır, ancak düşük güç modunda çalışmaya karar yazılım (OS) tarafından verilir. İşletim sisteminin çalışmak için en uygun modu nasıl belirlediği ayrı, daha karışık bir sorundur, ancak büyük olasılıkla sistemin son zamanlarda% zamanının boşta kaldığı anlamına gelir. Çoğunlukla boşta, frekansı düşürün. Çoğunlukla meşgul, frekansı yükseltin. İşletim sistemi çalışacak frekansa karar verdiğinde, bu sadece bir kayıt ayarlamakla ilgilidir.

Referans: " Intel Pentium M İşlemci için Gelişmiş Intel SpeedStep Teknolojisi "


3
Intel'in Turbo Boost'u gibi özellikler, saat frekansını artırarak termal tavan boşluğundan yararlanmak için yazılım müdahalesi gerektirmez. Açıkçası, donanım aynı zamanda hesaplama dışı performans darboğazlarını da izleyebilir (örneğin, bellek erişiminden kaynaklanan duraklama döngülerini sayarak) ve hesaplama performansı birincil darboğaz olmadığında frekansı azaltabilir.
Paul A. Clayton

Btw anahtarlama frekansı ile ilgili tasarruflar neredeyse doğrusaldır ve iletim nedeniyle o kadar da fazla değildir, ki bu da ^ ^ ilişkiler olacaktır
JonRB

3

Modern işletim sistemlerinde "görev zamanlayıcı" denilen bir şey var. Periyodik olarak (çok hızlı) çalışır ve yürütülecek sonraki görevin (listeden) seçilmesini sağlar. Görevler, seçme, engellenme, uyku vb.Gibi birçok durumda olabilir.

Tüm görevler seçme modundaysa (işletim sisteminden bir şey bekleniyorsa) ve sunulamıyorsa veya bazıları uykudaysa vb., Bu nedenle işlemcinin yoğun kullanımı yapılmıyorsa, görev zamanlayıcısı "boşta" adı verilen özel bir görevi çağırır. ".

CPU sürücüsü görev zamanlayıcı tablosunu kontrol ederse ve boştaki görevin CPU zamanının çoğunu çalıştırdığını doğrularsa, saatini azaltmak için CPU'nun saat üretimi PLL devresine bir komut gönderir. Aksine, boşta kalan görev daha az CPU zamanı alırsa (CPU'nun yoğun bir şekilde kullanıldığı anlamına gelir) CPU sürücüsü CPU Hızını artıracaktır.

Çok zor değil, ancak tüm CPU'lar tamamen statik olmadığından CPU'nun daha az sıkıştırılamayacağı bir alt sınır var (bu nedenle yenileme döngülerine ihtiyaçları var). Tamamen statik cpus 0 (sıfır) MHz kadar düşük olabilir, çünkü saat durursa kaybedilecek bir durum yoktur.

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.