UEFI標準の新しいバージョンが準備しているもの、パート2、ACPI 6.0

UEFIフォーラムペンから最近リリースされた標準の新機能に引き続き精通します。 前の部分で内部PI標準について話していた場合、今回はACPI 6.0と以前のバージョン5.1との違いについてです。

標準の開発から10か月で何が変わったのか、そしてどのような革新があったのかについて興味がある場合は、ACPI 6.0をサポートする将来のシステムが喜ばれるか、動揺します。catへようこそ。



ACPIとは何ですか?

ACPIまたはAdvanced Configuration and Power Interfaceは、OSとファームウェアの相互作用のためのオープンスタンダードであり、Hewlett-Packard、Intel、Microsoft、Phoenix、Toshibaのエンジニアによって共同開発されました。 最初のリリースは1996年12月にリリースされ、 APMMPS 、およびPnPBIOSの改良されたアナログと、接続機器の検出、監視、電源管理、冷却に関する独自の開発の両方が含まれていました。

ACPIは、ターゲットマシンのアーキテクチャからほとんど独立しており、データ(たとえば、 SMBIOSおよびDMI情報 、またはWindows 8のライセンスキー)、またはAMLコードを含む多くのテーブルで構成されています。 このコードは、すべてのACPI互換OSに存在する必要がある特別なインタープリタードライバーによって実行されます。 そのような最初のOSはWindows 98でしたが、当時のACPIの実装はBIOS開発者とMSの両方の側で弱く、したがってWindows Vista(およびバリケードの反対側を見るとLinuxカーネル2.6.0) )インターフェイスは実際には使用されませんでした。

それにもかかわらず、この標準はすぐに人気を博し(IntelとMicrosoftからの圧力がなかったわけではありません)、すでに6版を生き延びています。 バージョン2.0では、3.0-SATA、PCIe、コンポーネント(つまりCPUだけでなく)の温度制御、および4.0- USB3およびx2APICの 5.0-GPIO、シンプルな周辺バス(64ビットプロセッサ)のサポートを追加しました( I2C、SPI、UART)およびメモリ電源管理。

現時点では、ACPIはMacOS Xで最も頻繁に使用されており、デスクトップおよびサーバーエディションのWindowsでは少なくともACPI 2.0をサポートするBIOSも必要であり、LinuxとFreeBSDはACPIなしでも特別な問題なく動作しますが、成功した場合はインターフェイスを使用します発見する。



ACPI 6.0

以前のバージョン5.1のリリース以降。 ほぼ1年が経過しましたが、新しい標準の抜本的な変更は行われなかったため、ファームウェアメーカーはかなり短時間でサポートを実装できます。

最初に、すべての顕著な変更をリストし、次に各グループの詳細な解説をしようとします。 行こう!



NVDIMMサポート
不揮発性メモリファームウェアインターフェースのサポート -OSがCPU NVDIMMのアドレス空間のどの部分がマッピングされ、OSがどのように正確に使用できるかをOSが確認できる新しいNFIT ACPIテーブルを追加します。 それが何のためであり、なぜそれが素晴らしいのか-以下を読んでください。

E820アドレスタイプおよびUEFIメモリタイプの拡張ベンダー範囲 -まだ聞いていないOSのNFITに加えて、古い(E820)および新しい(UEFI MemMap)メモリカードに新しいタイプのメモリを追加します。

永続的なメモリS4の動作 -S4データストレージの代わりにNVDIMMを使用する機能。これにより、hiberfil.sysファイルからWindowsユーザーが保存され、実際、通常のユーザーのS3(別名スリープ)とS4(別名Hibernate)の境界が多少ぼやけます。



USB-Cサポート
_UPCへのUSB-C接続サポートの追加 -各USBポートから、USBタイプCポートであるかどうか、およびサポートしている場合はサポートする新しいモードを確認できるようになりました。



ASLの更新
ASL:PrintfおよびFprintfデバッグマクロ -フォーマット済み出力用の新しいマクロ。ASLでのデバッグコードの記述を大幅に簡素化します(その前に、ネストされたConcatenateをフェンスで囲む必要がありました)。

ASL:ヘルパーマクロToPLD()は、システム内のデバイスの物理的位置を記述するために使用される_PLDタイプのオブジェクトを作成できる便利なマクロです(つまり、「USB3ポート-背面パネルのポートの2行目の左側の最初のようなもの」 »)、それ以前は一連のStore呼び出しで満たされていました(フィールドの一部を埋めて、すでに完了したものを上書きする機能を備えています)。

ASL:Symbolic Operators and Expressions(ASL 2.0)の拡張は信じられないほど素晴らしい変更です。その後、ASLのコードは書き込みが2倍、読み取りが10倍快適になります。Add(X、Y、Z)の代わりにZ = X + Yそして、LGreaterEqual(X、Y)の代わりに、X> = Yです。私は1年間そのようなゲームを待っていました。



温度、電力、パフォーマンス
スタンバイサーマルトリップ -ボードの一部が非常に熱くなっている場合、完全なシャットダウンの代わりにS3に切り替える機能。これにより、データの損失を減らすことができます。

より高速なサーマルサンプリングのサポートの追加 -ボードメーカーが温度センサーのポーリング期間を指定できるようになりました(最小値は0.1秒)。 コンポーネントの温度変化に対するOSPMドライバーの応答速度が向上します。

最大p状態の調整 -負荷がかかっている(つまり状態C0にある)システムの16を超える中間電力状態(簡単に言えば「CPU乗算器-必要な電圧」のペア)をサポートします。 モバイルPCでより正確にエネルギーを節約できます。

ACPI低電力アイドルテーブルと_LPD提案 -省エネLPI状態に移行するための新しいテーブルと方法 。 これまでのところ、これらはHaswell以降のIntelプロセッサ、Windows、およびIntel Power Engine Plug-inでのみ動作するため、現在のところ、このイノベーションはあまり使用されていません。

CPPCの異種パフォーマンス機能 -IntelのCPPCテクノロジーのサポート。 すでに利用可能なトップ10に加えて、負荷を管理する別の方法。 また、Haswell +専用ですが、今回はLinuxのドライバーはごまかされていません。



ARMアーキテクチャのサポート
IORTの予約とMADTでのARM GIC v3 / 4のサポート -IORTテーブルの名前は標準の将来のバージョン用に予約されており、ARM GIC割り込みコントローラーのサポートがMADTに追加されました。 UEFIフォーラムは、さらに数年後にARMサポートをその標準に追加し、UEFIとACPIを備えたARMシステムでデスクトップWindowsが起動します...



残り
STAOおよびXENVテーブルシグネチャの予約-いくつかのテーブルは、標準の将来のバージョンに追加するために予約されています。 STAO は、 OSPM ドライバーがACPIコードの一部を無視することを許可します (たとえば、 ACPIでゴミ、火傷、ソドミーがよく行われ、OSのロード中にすべてのテーブルを完全に削除するには過激すぎます)。 Dom0にデータを転送するXenハイパーバイザー

FADT Hypervisor Vendor Identification Supportは、 FADTテーブルの新しい64ビットフィールドであり、ハイパーバイザーはその存在とタイプをOSに通知できます。

プラットフォーム固有のデバイスリセットのサポート-新しいタイプのリセットのサポート。これについては、前半で既に説明しました。

汎用ボタンの抽象化 -最後に、同じ年に私が待っていたASL 2.0レベルについてのもう1つの良い点は、電源/リセット/蓋/スリープだけでなく、あらゆるボタンのサポートです。 ボタンがASLコードで記述されてすぐに機能するようになれば、くしゃみごとにSMIを引き起こす曲がったドライバーはなくなり、DMIを介したボリュームコントロールもなくなります。



NVDIMMについてかなり詳しく

彼は、NVDIMMのサポートが単純なユーザーにとってどのようなものであるかを伝えることを約束しました。

NVDIMM自体がなくても(たとえば、 ここでの利点を読むことができます )、NFITテーブルにより、ファームウェアはメモリ内の連続ファイルを表示し、OSにそれが存在し、そこから起動できることを通知できます。 これにより、UEFIは物理メディアからだけでなく、ISOイメージ、仮想ディスク、ブロックデバイス(FSなしでも)などからも起動できるようになります。 おそらく、このチップはGRUBによってスパイされていました。GRUBは10年間これを行うことができましたが、これによってそれほど有用ではなくなりません。



おわりに

興味深いものがほとんどなかったPI 1.4とは異なり、ACPIの新しいバージョンでは、ユーザー(NFIT、ボタン、USB-C)と開発者(ASL 2.0、新しいマクロ、温度制御のオプション)の両方に楽しい機能が追加されました。もの。 さて、UEFIフォーラム自体は奪われず、最近のIntelの省エネ技術をすべて追加し、ARMとLinaroの将来のバージョンに残しています。

現在、UEFIプラットフォーム(AMI、Phoenix、Insydeなど)のメーカーが製品のACPI 6.0のサポートを発表するのを待っています。



PS

略語が豊富であることをおaびしますが、それ以外は何もありません。

ファームウェアをご利用いただきありがとうございます。



All Articles