KP41病の歴史を振り返り、「何が原因で」、「どういう経緯で」KP41病という考え方が生まれ、そして間違って広まってしまったのか・・・?を考えてみるページです。
このページは、ACPIというPCの電力管理の仕様と、Windowsのバージョンアップの時期を比較しながら、「現在のPCの省電力設定の規格が (普通のPCで発生している) KP41問題の核心ではないか?」と予想するページになっています。
(注意:あくまでも予想であり、個人的な見解です。)
ACPIとは
ざっくり解説。
パソコンの電源管理、電力制御に関する規格の一つ。
以前(特にWin98の時代まで)は、OS・ハード共に大雑把な電力管理しか出来なかったが、最新のOSとハードは、ACPIの仕様に基いて電力制御を細かく設定・管理できる。
ACPI関連の参考リンク
ACPI - Wikipedia / ACPI とは-IT用語辞典
Wikipediaから (KP41問題の原因探しに都合の良い箇所のみを) 引用実装の複雑さ、およびオペレーティングシステムとの競合で問題が出やすいため、最近ではAPMをサポートせずACPIのみのBIOSが増えてきている。
※本当にこのページの内容に都合の良い部分だけを引用してますm(_ _)m
ここまではまえおきです。以下、本題です。
ACPIの仕様書/Windows リリース時期の比較表
メーカー製PCや、ノートPCでもKP41問題の存在が疑われはじめた時期と、ACPIのリリース時期、Windows OSのリリース時期を比較した表を作成してみました。
参考: ACPIの仕様書公開ページ(英語)
ACPI - Advanced Configuration and Power Interface
ACPIのリビジョン | Windowsのバージョン /CPU | リリース時期 | 備考 |
8.1 Update | 2014/04/09 | ||
ACPI 5.0a | 2013/11/13 | 非常に近い時期 | |
8.1 | 2013/10/18 | ||
8 | 2012/08/16 | ||
ACPI 5.0 | 2011/11/06 | メーカー製PCや、ノートPCでも KP41問題の話題が増え始めた時期 | |
SandyBridge | 2011/01~04 | ||
7 SP1 | 2010/06/24 | XPやVistaよりWindows7 の方が落ちやすいPC環境はあったものの、原因はハッキリしており、安定していた。(原因はこの1点) | |
ACPI 4.0a | 2010/04/05 | ||
7 | 2009/07/22 | ||
ACPI 4.0 | 2009/06/16 | ||
Vista SP2 | ??? | 明確なリリース時期不明 | |
XP SP3 | 2008/04/21 | 安定期 | |
Vista SP1 | 2008/03/19 | ||
XP SP2c | 2007/08 以降 | ||
Vista | 2007/01/30 | ||
ACPI 3.0b | 2006/10/10 | ||
XP SP2b | 2006/07/22 | ||
ACPI 3.0a | 2005/11/30 | ||
ACPI 3.0 | XP SP2 | 2004/09/02 | |
ACPI 2.0c | 2003/08/25 | ||
XP SP1 | USB2.0への対応 | ||
ACPI 2.0b | 2002/09/11 | この時代も(Windows2000を除くと)BSoDは多かった USB関連 スリープ復帰関連 セキュリティ関連など | |
ACPI 2.0a | 2002/03/31 | ||
XP | 2001/10/26 | ||
ACPI 2.0 | 2000/07/27 |
ここでも個人的な感想・推測レベルのお話になってしまいますが、以下の点が気になります。
- ACPI 3.0の時代は安定している。
- ACPI 4.0の時代も、個人的には安定していると思っている。(原因はこの1点)
- ACPI 5.0のリリースと、一般的なメーカー製PCやノートPCのユーザーからKP41問題が報告されるようになった時期は、ほぼ重なる。
省電力設定を無効にするとPCの不調が治まる、というケースは、電源管理の仕様や設定に問題がある、とみるのが妥当ではないか?という考えは、間違いではないと思えます。
※自作、BTO、オーバークロッカーの間で語られていたKP41 病は、(話がややこしくなるので)ここでは別問題と考えています。
このページのまとめ、感想、予測
※前ページの内容も含んだまとめになっています。- KP41問題について
- 一般ユーザーのKP41病 ・・・ACPI 5.0以降で発生しやすい
- パワーユーザーのKP41病・・・SandyBridge世代のPCをオーバークロックした時に発生しやすい
- 一般ユーザーのKP41病と、パワーユーザーのKP41病は別物。
- 「パワーユーザーのKP41病」の解決方法が広まった時期、一般ユーザーのPC環境でも良く似たトラブルが発生し、解決方法で混乱が発生してしまった。
- Windows7の省電力設定について
- ACPI 4.0とWindws7のリリースはほぼ同時
- ACPI 5.0aとWindows8.1リリースのリリースもほぼ同時
- ACPIの最初の規格を策定にはMicrosoftも関わっている
- ACPI 5.0リリース時にWindows OSに大きなバージョンアップは無いが、(Windows 7/8 共に) Windows Updateで何かしらの変更はあったのではないか?一般的なPCのKP41問題は、その頃から発生しているのではないか?
- その他 (ACPIについて)
- ACPIの仕様が更新される度、それに合わせてWindowsの省電力設定も変更され、とりあえずバージョンが進むにつれ改善はされるのではないか?
- モバイルPCの登場や、iPhone・Androidなどのスマホ・タブレット勢の登場により、一気に省電力PCの方向へ舵を切った事が影響しているのではないか?
- ACPIの仕様(現在の省電力関連の仕様)があまりにも速い速度で変化しすぎてしまい、CPUやチップセットの省電力化機能、OSの省電力化機能、ACPI規格が統一できず、それぞれがバラバラになっているのではないか?
あくまでも個人的な意見ですが、過去のKP41問題の多くは省電力関連のトラブルであった事を考えると、ACPIの仕様とKP41病には、深い関連があるのかもしれません。
そして現在の(一般的なPCで発生する)KP41問題の原因は、大半がPCの省電力設定が問題となっており、次点で高速化したUSBやLANカードの相性問題があるのではないかと思っています。
ACPIの仕様書と、OSやハードのリリースのタイミングが悪くなり、OSとハードの相性が悪くなっている状態が発生し、一部のWindows 7/8/8.1環境でブルースクリーンエラーが多発するという予測は、十分にありえる話だと考えられます。
あとがき
2014年4月頃、「ACPI 5.0 の仕様、または策定の時期が、KP41問題と深い関係があるのではないか?」という見解をコメント欄にいただき、私自身も「KP41問題との関係性はゼロではないよなあ・・・?」と感じたため、この様な調査と推論を行ってみました。
この疑問を提示して貰うまで、私自身はACPIはノーマークでした。
個人的には、KP41病は Sandy Brdge および対応マザーの登場が境になっていると思っていましたが、ACPI 5.0の仕様が策定された時期にも発生している、と考えてみると、当時の混乱も納得できるのかも知れません。
このページの本文は以上です。
このカテゴリーの内容
- まえおきページ
- KP41病(と思われるPC)の具体的な解決方法
- KP41病の問題の切り分け方を学ぶ
- KP41 病 関連の更新、反省会&まとめページ
以下おまけ
参考リンク: ACPI の基礎知識
上記リンクは、OS・ハード・ACPIの歴史や、セットアップの勘所を、非常に分かりやすく、半分はHow To、半分は読み物形式のような形でで公開されているページです。
余談ですが、2000年頃もPCの省電力関連の相性は最悪だったと思っています。
当時私は i815(E)チップセット + Windows Meという環境でPCを使っていたのですが、電源管理やスリープ機能が最悪でした。
余談
リンク先でi815(E) や ME の項目を拾い読みすると、当時の苦労を思い出します。
Meだけが悪かったのでは無いのかもなあ・・・と今更のように思い返していますw
おまけ2
コメント欄にいただいたACPI関連の情報、およびそのやりとりを、このページにも転載し残しておきます。※転載元URL
専門的なご意見ありがとうございます。
正直なところ、私は経験則のみでOCしたり、KP41病を解消したりしてたので、
理解するのが難しいレベルのお話です(^_^;
http://ja.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
http://bosoview.sakura.ne.jp/pc/acpi/acpi.htm
この辺を読みながら、少しずつ理解しようと思いましたが、なかなか難しいです(^_^;。
KP41病が顕著に現れるようになったのはSandy Bridge以降かなあ。。。と感じていたのですが、
Win7 Userさんの推測を読んでいると、ACPIの仕様書とOSリリースのタイミングが悪く、
OSとハードの相性が悪くなっている状態なのですね。
私の場合、かなり無茶なOCをしてKP41に遭遇したので自業自得な所がありますが、
メーカー製PCを工場出荷状態で利用しててもKP41が発生する環境もありますものねえ。
ハード、ソフト共に省電力な環境を目指しているけれど、上手くかみ合っていない状態なんですね。
けんさん、コメントありがとうございます。
KP41病については、下の仕様が決まらないうちに、来月出荷だからはやくプログラム作り上げよ!
http://www.acpi.info/spec50a.htm
と言われた人がいるであろういう状況が目に浮かぶので、エンドユーザの立場としては、この問題は深刻ですが、そのへんは考えてあげないといけないな、、、と思っているところです。
よい製品に洗練されることを切に期待しています。
>Win7 Userさん
うおおお・・・!これはACPI仕様書の原文ですか!?
すっげー面白そうなリンクを紹介して頂き、ありがとうございます!
>KP41病については、下の仕様が決まらないうちに、来月出荷だからはやくプログラム作り上げよ!
なるほど、
Revision 5.0a の策定日は2013年11月13日、
Windows8.1のリリース日は2013年10月17日。
両者の苦労とか、事情とか、いろいろ察したくなるスケジュールですね(^_^;
そういえば、コンシューマー向けx64 CPUが登場してから、x64版Windowsが普及するまで、4~5年のタイムラグがありましたねえ。
ハードとソフトの進歩が、1年~2年程度でかみ合うのって難しいかもしれないですねえ。
私も、少しずつでも良い製品になっていくことを期待します(´∀`)ノ
けんさん、検討してくれてありがとうございます。
深入りしてしまいますが、参考までに私の調べた情報を追記しときます。
Windows 7 と Windows Server 2008 R2 でのプロセッサの電源管理
http://msdn.microsoft.com/ja-jp/library/windows/hardware/gg566941.aspx
この2010年1月の仕様によれば、Windows7クライアントPCでは、クロック周波数制御(PPC)は行わないが、Windows Server 2008 R2 ではPPC制御を実行する仕様になっています。
ところが一方で、
Windows7の「プロセッサの電源管理」に意味は有るか?
http://bto-pc.jp/btopc-com/select/win7-processor-pw-set.html
この記事を読むと、実動作では、Windows7 PCでもPPC制御が行われていることが書かれています。
ここでBIOSに書かれているパソコン依存の省電力を記述したテーブルがマッチせず、CPU省電力制御ドライバが正しく読み込めない可能性があり、このドライバが読み込めていないと、PPC制御に失敗して省電力移行制御が失敗する可能性も考えるというBIOSとの因果なしがらみの存在も考えられると思います。
おお、またまた私では辿り付けない or KP41とは関連付けれなかったページの紹介して頂きまして、ありがとうございます(´∀`)ノ
言われてみればその通りですね。。。
私もKP41を回避するために
・OSの省電力機能は全部オフにして、
・BIOS側も不要な省電力機能は極力オフに
という方法を取りましたので、PPC制御の突っ込んだ所を調べてみれば良かったワケですね。
・ACPIの仕様が変わっていること
・PPCの仕様が密かに変わっていること
・ハードやドライバがどの仕様にあわせて設計されているか
この辺が絡んでくる訳ですねえ。
ハイスペックPCと省エネPCを何かしらの方法でカテゴリ訳しないと厄介な事がおこりそうですね。
そうすると、鬼門はやはりUSB機器になりそうですね( ̄▽ ̄;)
その他、引用しませんがこちらのコメント欄でも似たようなやりとりをしていました。興味のある方はご一読を。
このページの情報は 以上です。
ACPIの仕様書は、2011年末あたりに最新版が出ていて、このカーネルが直接的にCPU周波数
の動的制御等、ほか、省電力対象でデバイスをまとめてプログラム制御するという設計に無理があるように思えます。3GHzもの高い周波数をPLL制御で周波数変更して、その周波数がロックされ安定するには時間がかかるので、CPUはこの間、フェッチ・デコード・実行のパイプライン処理もすべて停止し、PLL 発振周波数が確実にロック安定してから、CPUが動作を再開するしくみをカーネルでプログラムするわけですが、ではクロック周波数が安定する時間は、どうやって計算すればいいのか、パソコン毎にみな条件が異なってくるので、カーネルのCPUクロック周波数制御と全デバイス主電力電源制御をまとめてカーネルレベルで実行するという構造とアルゴリズムを見直さないと、カーネルがあまりにもハードウェア依存性の強いものになってしまいますよね。
カーネルに電源制御を入れるCPU中央制御のアイディアはいったん考え直すのがいいかもしれないと思います。
ACPI仕様がまとまる前に、Windows7が製品出荷されたのも痛い失策と思います。
おそらく初期のWin7のカーネルにはACPI制御がXPレベルで実装されているが、その後のACPI仕様の大改訂でカーネルが再プログラムされ、その結果、2012年初めのパソコンからはKP41エラーが発生し、初期のKP41の起こらなかったWin7PC1もWindowsUpdateでのカーネル変更でKP41発生が始まったという経緯に推定してます。OSメーカにはぜひともがんばって解決して欲しいと期待しています。