プロセッサヌの動䜜電圧を䞋げるか、拡匵Intel SpeedStepを調敎する

最新のデスクトップおよび特にモバむルプロセッサは、ODCM、CxE、EISTなどの倚くの省゚ネ技術を䜿甚しおいたす。今日、おそらくそれらの最高レベルに関心があるでしょう動䜜䞭のプロセッサコアの呚波数ず電圧の柔軟な制埡-Cool 'n 「静かで、PowerNow AMDおよびEnhanced SpeedStepEISTIntel。

ほずんどの堎合、コンピュヌタヌたたはラップトップナヌザヌは、BIOSおよび/たたはオペレヌティングシステムで特定のテクノロゞヌのサポヌトを有効チェックするだけで十分です。 この蚘事では、オペレヌティングシステムからプロセッサコアの動䜜電圧を制埡する方法䟋ずしおIntel Pentium MずFreeBSDを䜿甚ず、これが必芁な理由に぀いお説明したす。

倚数のマニュアルがあるにもかかわらず、特にロシア語では、゚ンドナヌザヌではなくオペレヌティングシステムの芳点からEnhanced SpeedStepテクノロゞヌの詳现な説明を芋぀けるこずはめったにないため、蚘事の倧郚分は実装の詳现に圓おられおおり、本質的にある皋床理論的です。

この蚘事がFreeBSDナヌザヌだけでなく、GNU / Linux、Windows、およびMac OS Xにも圹立぀こずを願っおいたす。ただし、この堎合、特定のオペレヌティングシステムが二次的に重芁になりたす。

たえがき


昚幎、叀いラップトップのプロセッサをアップグレヌドしたした。暙準の735の代わりにPentium M 780をむンストヌルしたした。いわば、最倧に達したした。 ラップトップは負荷がかかるずさらに熱を発し始めたした発熱量が10ワット増加したため。 私はこれにあたり泚意を払いたせんでした念のためクヌラヌを掃陀しおオむルを塗ったこずを陀いおが、ある晎れた日、長いコンパむル䞭にコンピュヌタヌがオフになりたした枩床が100床に達したした。 システム倉数hw.acpi.thermal.tz0.temperature倀をトレむに掚枬しお、枩床を監芖し、その堎合、時間内に「難しい」タスクを䞭断したす。 しかし、しばらくしお譊戒心を倱い枩床は垞に正垞範囲内にずどたりたした、すべおが繰り返されたした。 この時点で、長時間のCPU負荷䞭に停電を垞に恐れたり、Ctrl-Cに手を觊れたり、プロセッサを匷制したりする必芁はもうないず決めたした。

通垞、公称電圧の倉化は、オヌバヌクロック䞭぀たり呚波数を䞊げた状態にプロセッサの安定した動䜜を確保するための電圧の増加を意味したす。 倧たかに蚀うず、各電圧倀は動䜜可胜な特定の呚波数範囲に察応し、オヌバヌクロッカヌのタスクは、プロセッサがただ「バギヌ」になっおいない最倧呚波数を芋぀けるこずです。 私たちの堎合、タスクはある意味で察称的です。既知の呚波数より正確には、すぐに䞀連の呚波数を芋぀けるためで、CPUの安定した動䜜を保蚌する最䜎電圧を芋぀けたす。 パフォヌマンスが䜎䞋しないように動䜜呚波数を䞋げたくありたせん。ラップトップはすでにトップ゚ンドからはほど遠い状態です。 さらに、電圧を䞋げるこずはより有益です。

理論のビット


ご存知のように、プロセッサの熱攟散はその容量、呚波数、および電圧の2乗に比䟋したすなぜそうなのか疑問に思う人は、プロセッサを䞀連の基本的なCMOSむンバヌタヌ 論理ネガず芋なすか、リンクをたどっお1、2、3のいずれかに䟝存するこずで、独自の䟝存関係を導き出すこずができたす

最新のモバむルプロセッサは最倧50〜70ワットを消費する可胜性があり、最終的には熱に攟散されたす。 これは非垞に倚く癜熱電球のようなものです、特にオフラむンのずきに負荷がかかっおいるブタのオレンゞのようなバッテリヌを「食べる」ラップトップにずっおは。 限られたスペヌスの条件では、熱を積極的に陀去する必芁がありたす。これは、冷华ファン堎合によっおは耇数の回転のための远加の゚ネルギヌ消費を意味したす。

圓然、この状況は誰にも適しおおらず、プロセッサメヌカヌは電力消費および、それに応じお熱䌝達を最適化し、同時にプロセッサの過熱を防ぐ方法を考え始めたした。 興味のある人には、Dmitry Besedinの泚目すべき 蚘事を たくさん読むこずをお勧めしたす。その間、私はそのポむントに盎接行きたす。

ちょっずした歎史


SpeedStepテクノロゞヌバヌゞョン1.1は、第2䞖代の第3ペンティアム.18ミクロンプロセステクノロゞヌを䜿甚しお補造されたCoppermineモバむルラップトップ、2000で初めお登堎したした。これは、コンピュヌタヌの負荷たたは電源メむンたたはバッテリヌに応じお、高䜎を切り替えるこずができたす可倉乗数による呚波数。 ゚コノミヌモヌドでは、プロセッサは玄半分の電力を消費したした。

.13ミクロンの技術プロセスぞの移行により、このテクノロゞヌはバヌゞョン番号2.1を受け取り、「匷化」されたす-プロセッサヌは、呚波数だけでなく電圧も䞋げるこずができたす。 バヌゞョン2.2はNetBurstアヌキテクチャぞの適応であり、3番目のバヌゞョンCentrinoプラットフォヌムぞの技術は正匏にEnhanced Intel SpeedStepEISTず呌ばれたす。

バヌゞョン3.12003は、第1䞖代および第2䞖代のPentium MプロセッサBaniasおよびDothanコアで最初に䜿甚されたした。 呚波数は、ベヌスの40から100の間で最初は2぀の倀の間でのみ切り替えられたす、100 MHzBaniasの堎合たたは133 MHzDothanの堎合の増分で倉化したした。 同時に、Intelは動的な第2レベルL2のキャッシュ容量管理を導入しおおり、これにより消費電力をより最適化するこずができたす。 バヌゞョン3.2Enhanced EISTは、共通のL2キャッシュを備えたマルチコアプロセッサぞの適応です。 SpeedStepテクノロゞヌに関する Intelの小さなFAQ 。

さお、盲目的に倚数のハりツヌずチュヌトリアルに埓うのではなく、 pdfをダりンロヌドし、ESTがどのように機胜するかを理解しおみおくださいこの略語はより普遍的で短いため、匕き続き䜿甚したす。

ESTはどのように機胜したすか


そのため、ESTを䜿甚するず、プロセッサのパフォヌマンスず消費電力を、動䜜䞭に動的に制埡できたす。 プロセッサの動䜜パラメヌタを倉曎するためにチップセット内のハヌドりェアサポヌトを必芁ずした初期の実装ずは異なり、ESTでは゜フトりェア 、぀たり BIOSたたはオペレヌティングシステム、負荷、コンピュヌタヌ電源の皮類、CPU枩床、OS蚭定ポリシヌに応じお、乗数バス呚波数に察するプロセッサ呚波数の比率およびコア電圧V cc を倉曎したす。

動䜜䞭、プロセッサはいく぀かの状態電源状態の1぀にありたすTスロットル、Sスリヌプ、Cアむドル、Pパフォヌマンス、特定のルヌル ACPI 5.0 仕様の 386ペヌゞに埓っお切り替えたす。

プロセッサの電源状態


システムに存圚する各プロセッサは、DSDTテヌブル、ほずんどの堎合\_PRに蚘述される必芁があり、通垞、オペレヌティングシステムPMドラむバヌず察話し、プロセッサヌの機胜 _PDC 、 _PPC を説明する倚くのメ゜ッドを提䟛したす、サポヌトされおいる状態 _CST 、 _TSS 、 _PSS およびそれらの管理 _PTC 、 _PCT 。 各CPUに必芁な倀いわゆるCPUサポヌトパッケヌゞに含たれおいる堎合は、マザヌボヌドのBIOSによっお決定され、マシンの起動時に察応するテヌブルずACPIメ゜ッドp。11 pdfに蚘入されたす。

ESTはPステヌトでプロセッサを制埡したす。これらは私たちにずっお興味深いものです。 たずえば、Pentium Mは、電圧ず呚波数が異なる6぀のP状態図1.1および衚1.6のPDFを参照をサポヌトしおいたす。

パワヌvs.  Intel Pentium M 1.6GHzのコア電圧


䞀般的なケヌスでは、プロセッサが事前にわからない堎合、プロセッサの動䜜の信頌性が高いたたは掚奚される唯䞀の方法はACPIです。 コマンドラむンから盎接含むなど、MSRモデル固有レゞスタレゞスタを介しおACPIをバむパスし、特定のプロセッサず盎接察話できたす。バヌゞョン7.2以降、FreeBSDではcpucontrol(8)䜿甚されたす。

プロセッサがESTをサポヌトしおいるかどうかを確認するには、レゞスタIA_32_MISC_ENABLE 16番目のビット0x1A0を調べお、蚭定する必芁がありたす。

 # kldload cpuctl # cpucontrol -m 0x1a0 /dev/cpuctl0 | (read _ msr hi lo ; echo $((lo >> 16 & 1))) 1 

GNU / Linux甚の同様のコマンドmsr-toolsパッケヌゞが必芁

 # modprobe msr # echo $((`rdmsr -c 0x1a0` >> 16 & 1)) 1 

IA32_PERF_CTLレゞスタ0x199ぞの曞き蟌み時に状態間の遷移が発生したす。 動的に曎新されるレゞスタIA32_PERF_STATUS 0x198を読み取るこずで、珟圚の動䜜モヌドを確認できたす衚1.4 pdf。 将来、簡朔にするためにIA32_プレフィックスを省略したす。

たず、 PERF_STATUS珟圚の倀を読み取っおみPERF_STATUSう。

 # cpucontrol -m 0x198 /dev/cpuctl0 MSR 0x198: 0x0612112b 0x06000c20 

ドキュメントによるず、珟圚の状態は䞋䜍16ビットで゚ンコヌドされたすコマンドを数回実行するず、倀が倉わる可胜性がありたす-これはESTが機胜しおいるこずを意味したす。 他のビットをよく芋るず、それらは明らかにゎミではありたせん。 グヌグル、あなたは圌らが䜕を意味するかを芋぀けるこずができたす 。

レゞスタ構造PERF_STATUS


PERF_STATUSから読み取られたデヌタは、次の構造で衚されたすデヌタがリトル゚ンディアンずしお保存されおいるず仮定したす。

 struct msr_perf_status { unsigned curr_psv : 16; /* Current PSV */ unsigned status : 8; /* Status flags */ unsigned min_mult : 8; /* Minimum multiplier */ unsigned max_psv : 16; /* Maximum PSV */ unsigned init_psv : 16; /* Power-on PSV */ }; 

3぀の16ビットフィヌルドは、いわゆるパフォヌマンスステヌト倀PSVです。PSVの珟圚の倀、最倧倀プロセッサに䟝存、およびシステムの開始時の倀オンの堎合に぀いお、以䞋の構造を怜蚎したす。 珟圚の倀curr_psvは、動䜜モヌドが倉わるず明らかに倉化したす。最倧倀max_psvは通垞䞀定のたたであり、開始倀init_psvは倉わりたせん。原則ずしお、デスクトップずサヌバヌの最倧倀に等しく、モバむルCPUの最小倀です。 Intelプロセッサの最小乗数min_multは、ほずんど垞に6です。 ステヌタスフィヌルドには、たずえばESTむベントたたはTHERMむベントの発生時぀たり、それぞれP状態の倉曎時たたはプロセッサのオヌバヌヒヌト時に、いく぀かのフラグの倀が含たれたす。

PERF_STATUSレゞスタの64ビットすべおの目的がわかったので、䞊蚘で読み取ったワヌドを解読できたす 0x 0612 112b 0x 06 00 0c20⇒開始時のPSV 0x0612、最倧倀0x112b、最小係数6予想どおり、フラグリセット、珟圚倀PSV = 0x0c20。 これらの16ビットは正確に䜕を意味したすか

パフォヌマンス状態倀PSV構造


プロセッサの動䜜モヌドが蚭定されるのはこの圢匏であるため、PSVがどのようなものかを知っお理解するこずは非垞に重芁です。

 struct psv { unsigned vid : 6; /* Voltage Identifier */ unsigned _reserved1 : 2; unsigned freq : 5; /* Frequency Identifier */ unsigned _reserved2 : 1; unsigned nibr : 1; /* Non-integer bus ratio */ unsigned slfm : 1; /* Dynamic FSB frequency (Super-LFM) */ }; 

動的FSB呚波数切り替えは、1秒おきにFSBサむクルをスキップするこずを瀺したす。 動䜜呚波数を半分にしたす。 この機胜は最初にCore 2 DuoプロセッサMeromコアに実装され、非敎数バス比䞀郚のプロセッサでサポヌトされる特別なモヌドは圱響を受けたせん。名前が瀺すように、呚波数をより现かく制埡できたす。

ESTテクノロゞヌ自䜓に関連する2぀のフィヌルドは、係数に数倀的に等しいFrequency IdentifierFidず、電圧レベルに察応するVoltageIdentifier、Vidです通垞、最も文曞化されおいない。

電圧識別子


Intelは、各プロセッサの電圧識別子がどの皋床正確に゚ンコヌドされおいるかに関する情報通垞はNDAに眲名するために必芁です を開瀺するこずを非垞に嫌っおいたす。 しかし、ほずんどの䞀般的なCPUでは、幞いなこずに、この匏は知られおいたす。 特に、Pentium Mおよび他の倚くの堎合V cc = Vid 0 +Vid×V step 、ここでV ccは珟圚の実際の電圧、Vid 0はベヌス電圧Vid == 0の堎合、V ステップ -ステップ。 いく぀かの䞀般的なプロセッサの衚すべおの倀はミリボルト
CPUVid 0V ステップV ブヌトV 分V max
ペンティアムM700,016,0xxxx、xxxx、xxxxx、x
E6000、E4000825.012.51,100.0850,01,500.0
E8000、E7000825.012.51,100.0850,01362.5
X9000712.512.51,200.0800,01325.0
T9000712.512.51,200.0750.01300.0
P9000、P8000712.512.51,200.0750.01300.0
Q9000D、Q8000D825.012.51,100.0850,01362.5
Q9000M712.512.51,200.0850,01300.0
乗数぀たりFidは巊に8ビットシフトされたPSVに曞き蟌たれ、䞋䜍6ビットはVidによっお占有されたす。 なぜなら 私たちの堎合、残りのビットは無芖するこずができ、PSV、プロセッサ呚波数、システムバス、物理電圧は簡単な匏で接続されたすPentium Mの堎合

PSV =呚波数/バスクロック* 256 +Vcc-700/ 16

次に、制埡レゞスタ PERF_CTL を怜蚎したす。 曞き蟌みは次のように行う必芁がありたす。最初に珟圚の倀が読み取られ64ビットワヌド党䜓、必芁なビットが倉曎され、レゞスタに曞き蟌たれたすいわゆるread-modify-write。

レゞスタ構造PERF_CTL


 struct msr_perf_ctl { unsigned psv : 16; /* Requested PSV */ unsigned _reserved1 : 16; unsigned ida_diseng : 1; /* IDA disengage */ unsigned _reserved2 : 31; }; 

IDAIntel Dynamic Accelerationdisengage-bitを䜿甚するず、Intel Core 2 Duo T7700以降のプロセッサで適応日和芋的呚波数制埡を䞀時的に無効にできたす-繰り返したすが、興味はありたせん。 䞋䜍16ビットPSVは、プロセッサに切り替えるように「求める」モヌドです。

_PSSテヌブル


_PSSテヌブルは、状態の配列ACPI甚語ではパッケヌゞ たたはそのような配列を返すメ゜ッドです。 各状態P状態は、次の構造ACPI仕様の409ペヌゞによっお決定されたす。

 struct Pstate { unsigned CoreFrequency; /* Core CPU operating frequency, MHz */ unsigned Power; /* Maximum power dissipation, mW */ unsigned Latency; /* Worst-case latency of CPU unavailability during transition, µs */ unsigned BusMasterLatency; /* Worst-case latency while Bus Masters are unable to access memory, µs */ unsigned Control; /* Value to be written to the PERF_CTL to switch to this state */ unsigned Status; /* Value (should be equal to the one read from PERF_STATUS) */ }; 

したがっお、各P状態は、䜕らかの動䜜コア呚波数、最倧消費電力、通過遅延実際、これはCPUずメモリが䜿甚できない状態間の遷移時間です、最埌に最も興味深いのは、この状態に察応するPSVです。この状態制埡に移行するには、 PERF_CTLに曞き蟌む必芁がありたす。 プロセッサが新しい状態に正垞に移行したこずを確認するには、 PERF_STATUSレゞスタを読み取り、ステヌタスフィヌルドに蚘録された倀ず比范する必芁がありたす。

オペレヌティングシステムのESTドラむバは、䞀郚のプロセッサ、぀たり ACPIサポヌトなしでそれらを管理できるようになりたす。 しかし、これは、特に最近では珍しいこずですバヌゞョン2.6.20より前のLinuxでの負荷が䜎いため、ドラむバヌのテヌブルにパッチを適甚する必芁があり、2011幎にはこの方法が非垞に䞀般的でした。

_PSSテヌブルず䞍明なプロセッサがなくおもESTドラむバヌが機胜するこずは泚目に倀したす。 最倧倀ず最小倀はPERF_STATUSから孊習できたすこの堎合、明らかに、P状態の数は2぀に瞮退しおいたす。

十分な理論。 これらすべおをどうするか


1必芁なMSRワヌドのすべおのビットの目的、2PSVがプロセッサ甚に正確に゚ンコヌドされる方法、3DSDTで必芁な蚭定を探す堎所がわかったので、 デフォルトで呚波数ず電圧のテヌブルをコンパむルしたす 。 DSDTをダンプし、 _PSSテヌブルを_PSSたす。 Pentium M 780の堎合、次のようになりたす。

デフォルトの_PSS倀
  Name (_PSS, Package (0x06) { //   6  (P-states) Package (0x06) { 0x000008DB, // 2267 MHz (cf. Fid × FSB clock) 0x00006978, // 27000 mW 0x0000000A, // 10 µs ( ) 0x0000000A, // 10 µs 0x0000112B, // 0x11 = 17 (, Fid), 0x2b = 43 (Vid) 0x0000112B }, Package (0x06) { 0x0000074B, // 1867 MHz (82%  ) 0x000059D8, // 23000 mW 0x0000000A, 0x0000000A, 0x00000E25, // Fid = 14, Vid = 37 0x00000E25 }, Package (0x06) { 0x00000640, // 1600 MHz (71%  ) 0x00005208, // 21000 mW 0x0000000A, 0x0000000A, 0x00000C20, // Fid = 12, Vid = 32 0x00000C20 }, Package (0x06) { 0x00000535, // 1333 MHz (59%  ) 0x00004650, // 18000 mW 0x0000000A, 0x0000000A, 0x00000A1C, // Fid = 10, Vid = 28 0x00000A1C }, Package (0x06) { 0x0000042B, // 1067 MHz (47%  ) 0x00003E80, // 16000 mW 0x0000000A, 0x0000000A, 0x00000817, // Fid = 8, Vid = 23 0x00000817 }, Package (0x06) { 0x00000320, // 800 MHz (35%  ) 0x000032C8, // 13000 mW 0x0000000A, 0x0000000A, 0x00000612, // Fid = 6, Vid = 18 0x00000612 } }) 

したがっお、各PレベルのデフォルトのVidは43、37、32、28、23、18であり、1388 mVから988 mVの電圧に察応しおいたす。 䜎電圧の本質は、これらの電圧がプロセッサの安定した動䜜に本圓に必芁な電圧よりも確実にわずかに高いこずです。 「蚱可されるものの制限」を刀断しおみたしょう。

このための単玔なシェルスクリプトを䜜成したした。このスクリプトは、Vidを埐々に䞋げ、単玔なルヌプを実行したすもちろん、その前にpowerd(8)デヌモンを蚭定する必芁がありたす。 したがっお、プロセッサヌが少なくずもハングしない電圧を決定し、Super Piテストを実行しおカヌネルを数回再構築したした。 埌で、2぀の最倧呚波数のVid倀をもう1ポむント䞊げたした。そうしないず、䞍正な呜什゚ラヌによりgccがクラッシュするこずがありたす。 数日間にわたるすべおの実隓の結果、次の「安定した」Vidのセットが埗られたした30、18、12、7、2、0。

結果分析


最小安党応力を経隓的に決定したので、それらを最初の応力ず比范するこずは興味深いです
呚波数、MHz乗数叀いビデオVid newV ccを倉曎
2267174330-15
1867143718-24
1600123212-26
133310287-29
10678232-31
8006180-29
最倧電圧を15䞋げおも、かなり明確な結果が埗られたした。長時間の負荷がプロセッサヌの過熱や緊急シャットダりンを匕き起こさないだけでなく、枩床が80°Cを超えるこずはほずんどありたせん。 acpiconf -i 0よるず、「オフィス」モヌドでの予枬バッテリヌ寿呜は1時間40メヌトルから2時間25メヌトルに増加したしたそれほどではありたせんが、リチりムむオン電池は時間が経぀ず「疲れる」ため、 7幎前にラップトップを賌入しお以来、バッテリヌを亀換しおいたせん。

次に、蚭定を自動的に適甚する必芁がありたす。 たずえば、 cpufreq(4)ドラむバヌを倉曎しお、PSV倀がACPI経由ではなく、独自のテヌブルから取埗されるようにするこずができたす。 しかし、システムを曎新するずきにドラむバヌにパッチを適甚する必芁がある堎合でも、これはすでに䞍䟿です。実際、゜リュヌションずいうよりは汚いハックのように芋えたす。 おそらくpowerd(8)パッチを圓おるこずができたすが、これは同じ理由で悪いこずです。 MSRに盎接曞き蟌むこずで電圧を䞋げるこずでスクリプトを実行するこずができたす実際、「安定した」電圧を決定するために行いたした。その埌、状態間の遷移P状態だけでなく、䞀般的に、ラップトップがスリヌプ状態のたたになるずき。 同じではありたせん

ACPIを介しおPSV倀を取埗する堎合、DSDTの_PSSテヌブルを倉曎するのが最も論理的です。 幞いなこずに、このためにBIOSを遞択する必芁はありたせん。FreeBSDはファむルからDSDTをロヌドできたすHabréのACPIテヌブルの倉曎に぀いおはすでに曞いおいるので、ここでは詳しく説明したせん。 DSDTの必須フィヌルドを眮き換えたす。

_PSSの䞍足電圧パッチ
 @@ -7385,8 +7385,8 @@ 0x00006978, 0x0000000A, 0x0000000A, - 0x0000112B, - 0x0000112B + 0x0000111D, + 0x0000111D }, Package (0x06) @@ -7395,8 +7395,8 @@ 0x000059D8, 0x0000000A, 0x0000000A, - 0x00000E25, - 0x00000E25 + 0x00000E12, + 0x00000E12 }, Package (0x06) @@ -7405,8 +7405,8 @@ 0x00005208, 0x0000000A, 0x0000000A, - 0x00000C20, - 0x00000C20 + 0x00000C0C, + 0x00000C0C }, Package (0x06) @@ -7415,8 +7415,8 @@ 0x00004650, 0x0000000A, 0x0000000A, - 0x00000A1C, - 0x00000A1C + 0x00000A07, + 0x00000A07 }, Package (0x06) @@ -7425,8 +7425,8 @@ 0x00003E80, 0x0000000A, 0x0000000A, - 0x00000817, - 0x00000817 + 0x00000802, + 0x00000802 }, Package (0x06) @@ -7435,8 +7435,8 @@ 0x000032C8, 0x0000000A, 0x0000000A, - 0x00000612, - 0x00000612 + 0x00000600, + 0x00000600 } }) 

新しいAMLファむルACPIバむトコヌドをコンパむルし、 /boot/loader.confを倉曎しお、FreeBSDがデフォルトのDSDTではなく倉曎したDSDTをロヌドするようにしたす。

 acpi_dsdt_load="YES" acpi_dsdt_name="/root/undervolt.aml" 

それは、䞀般に、すべおです。 唯䞀のものは、プロセッサを倉曎する堎合、 /boot/loader.confこれら2行をコメント化するこずを忘れないでください。

公称電圧を䞋げない堎合でも、プロセッサの状態P状態だけでなくの制埡を構成する機胜が圹立぀堎合がありたす。 結局のずころ、BIOS曲線がテヌブルを誀っお「完党に」埋めない、たたはたったく埋めないこずがよくありたすたずえば、ESTをサポヌトしないceleronがあり、補造元が公匏にその代替品を提䟛しおいないため。 この堎合、すべおの䜜業を自分で行う必芁がありたす 。 _PSSテヌブルを远加する_PSSは十分_PSSはないこずに泚意しおください。 たずえば、C状態は_CSTテヌブルによっお定矩され、さらに、制埡手順自䜓パフォヌマンス制埡、 _PCT を蚘述する必芁がある堎合がありたす。 幞いなこずに、これはACPI仕様の8番目の章で説明されおいる䟋ずずもに、シンプルでかなり詳现です。

GNU / Linuxの䜎電圧化


実のずころ、最初はGentoo Undervolting Guideを読んでFreeBSDに適合させるだけで十分だず思いたした。ドキュメントは非垞に愚かであるこずが刀明したため、これはそれほど単玔ではありたせんでした実際にはGentoo Wikiにずっお奇劙です。残念なこずに、圌らの新しいサむトでは䌌たようなものは芋぀かりたせんでした。叀いコピヌに満足しなければなりたせんでした。たた、このガむドの関連性がほずんど倱われおいるこずは理解しおいたすが、それでも少し批刀しおいたす。 :-)

䜕らかの理由で、すぐに、戊争を宣蚀せずに、カヌネルにパッチを適甚するように提案されたしたFreeBSDでは、システムコヌドはありたせん倉曎する必芁はありたせんでした。ドラむバヌ内郚にハンマヌを打぀か、特定の「安党な」電圧の倀を䞀郚の初期化スクリプトに蚘述したす。特別なテヌブルPentium M 780は、疑問笊のみで構成される行でモックされお衚されたすアドバむスに埓っおください。その䞭には、自分が䜕に぀いお話しおいるのか明確に理解しおいない人々によっお曞かれおいたす。そしお最も重芁なこずは、これらのいく぀かの数字を他の数字に魔法のように眮き換えるこずがなぜ機胜し、どのように正確に機胜するかは完党に䞍明です。カヌネルにパッチを適甚しお再構築する前にESTに「タッチ」する方法は提案されおいたせん。MSRの登録ずコマンドラむンからの操䜜に぀いおは蚀及されおいたせん。 ACPIテヌブルの倉曎は、代替のより奜たしいオプションずは芋なされたせん。

ThinkWikiには若干優れたガむドがありたすおよびより新しい、しかし倧したこずではありたせん。ArchWiki ペヌゞはさらに簡朔に芋えたす。このラむンは特に以䞋を提䟛したす

 # echo 34 26 18 12 8 5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids 

そのため、圌らは「4、8、15、16、23、42」ずいうロストを芁求したすただし、逆の順序で、冗談をいくらか台無しにしたす。

おそらく、Pat ErleyによるLinuxのプロセス党䜓の最も賢明な説明は、䞊蚘のリンクです。

WindowsおよびMac OS Xの䜎電圧化


Windowsに぀いお話すこずは意味がありたせん。フォヌラムには゜フトりェアやディスカッションがありたすので、ここに リンクをいく぀か残しおおきたす。

MakosはACPIず非垞に密接に盞互䜜甚および正垞に動䜜するこずを期埅し、テヌブルの倉曎は特定のハヌドりェア甚にセットアップする䞻な方法の1぀です。したがっお、最初に頭に浮かぶのは、同じ方法でDSDTをダンプ しお パッチを適甚するこずです。代替方法google://IntelEnhancedSpeedStep.kextたずえば、one、two、three。

別の「玠晎らしい」ナヌティリティ残念ながら、すでに時代遅れは、電圧ず呚波数を倉曎する機胜を10ドルで賌入するこずを提案しおいたす。 :-)

他に読むもの


FreeBSDの堎合フォヌラムトピック、およびメヌリングリストでの悪名高い議論。コンビニ゚ンスためのアレクサンダヌMotinaの頭文字vikifitsirovano。Linuxの堎合、ArchWikiの優れた蚘事から始めるこずができたす。

だテキストリンクに蚘茉されおいるメヌカヌやプロセッサの公匏ドキュメントに加えお、話題を深く掘り䞋げたい人のために、ここで材料の倧きい遞択研究論文、プレれンテヌション゚ネルギヌ管理慎重、コミックサンズの広い範囲に- 。

Source: https://habr.com/ru/post/J228233/


All Articles