ゼファーネットのロゴ

X86-64-v3とは何ですか?

日付:

Linux の専門家が x86-64-v3 について議論しているのを聞いたことがあるかもしれません。これを使用するために Linux コードを再コンパイルすると利点が得られますか?その質問に答えるには、おそらく x86-64-v3 とは何か、そして [Gary が説明] について知る必要があるでしょう…そうですね… それを説明する 最近のビデオで。

テキストをダイジェストで読みたい場合は、RedHat の実験に関する最近の記事をご覧ください。 RHEL10で設定された命令を使用する。この記事から、新しい命令のほとんどがベクトルとビット操作のいくつかの機能拡張をサポートしていることがわかります。また、オペランド レジスタの 1 つではなく明示的な宛先レジスタに結果を残す、より柔軟な命令も可能になります。

もちろん、コンパイラがサポートしていない限り、高レベルのコードではこれは重要ではありません。ただし、gcc バージョン 12 では、-O2 最適化フラグを使用すると、コードが自動的にベクトル化されます。

もちろん、コードが古い CPU と互換性がなくなるという問題があります。何歳? Intel は、2013 年から Haswell CPU でこれらの命令をサポートしています。一部の Atom CPU には 3 年以降 v2021 が搭載されていますが、それ以降の一部の Intel Atom はそれを完全にはサポートしていません。 AMD は 2015 年に参加しました。新しい命令セット x86-64-v4 があります。ただし、これはまだ新しすぎるため、RedHat を含むほとんどの人が、現時点では v3 をサポートする予定です。発見できる 簡潔な要約表 ウィキペディアで。

したがって、Atom プロセッサ以外では、v3 命令を使用できない古いハードウェアが必要になります。これらの命令の一部はかなり普及しているため、実行時に切り替えることはあまり現実的ではないようです。

古いプロセッサでは、これらの命令に対して不正な命令割り込みが発生するのだろうかと疑問に思います。その場合、古い CPU が数学コプロセッサを持っていない場合にそれをエミュレートするために使用されていたのと同じ方法で、エミュレートされたバージョンを追加できます。

x86-64-v3 より前のバージョンを削除するという議論は、Linux 自体が気にするという意味ではないことに注意してください。これは単にディストリビューションがコンパイルを行う方法です。すべてを自分でコンパイルすることは可能ですが、困難ではありますが、Linux カーネルが許可する限り、古い CPU のサポートを維持することを選択するディストリビューションが存在することは間違いありません。

インテルは撤退したい 64 ビット以外の古いハードウェア CPUから。 64 ビット アセンブリ言語のスキルを磨きたい場合は、次のことを試してください。 GUI.

[埋め込まれたコンテンツ]

(タイトル画像はWikipediaより)

スポット画像

最新のインテリジェンス

スポット画像