FC2ブログ

分岐予測とスレッド数

Zen 3 世代では CCX が統合され L3 を 8コアで共有するらしい。
つまり、 Zen4 世代で 5nm になる際に1つのチップレットに 8コアの CCX を 2 ~ 4 個詰め込んで 16コア~32コア程度の チップレットを想定していて、EPYCでは 256コア~512コア程度の規模を実現しようとしている、その準備の為に、いったんCCXを統合したのではないか・・・

この規模のCPUをPCで利用するなら、コア数増大とは逆方向に向かう可能性が有ると思うのです。

現代のCPUでは投機実行といわれる手法(実行されるかもしれない命令を予め実行しておき、必要になった時に結果を取り出す事)で IPC を向上させている訳ですが、ここで厄介な分岐予測という手法が必要になります。分岐予測は、道路で例えると、Y字路に来た時に、たぶん未来の私は右側に進むだろうと予測して右側の道を投機的に進んでみた結果を記憶に留めておき、予測が当たっていた場合は、先回りに成功した事になりIPCが向上する訳ですが、予測が外れた場合はY字路から右に進んだ記憶を捨ててY字路まで戻り、Y字路から左側に進み直す必要があります。

ですが、コア数が100とかになるとPCの場合は実働コアが数個しかないので余ってしまいます。だったら、Y字路でAさんは右側、Bさんは左側を進んで道のりを記憶しておいてください、必要な時にAさん/Bさん、どちらかの記憶を呼び出します。とすれば、Y字路まで戻る必要が全くなくなります。これをソフトウエアではなくCPU内部のハードウエアで行えばIPCは格段に向上するはずで、但し、数打ちゃ当たる式にマシンガンの様に投機実行しまくった無駄玉ぶんの消費電力は全くの無駄になりますので、電力あたりの処理能力は低下(シュリンクで補えば、前世代をキープくらいにはなるかもしれない)となるかと、、、

具体的には、1つのCCXを仮想的な1コアにして、CCXの全能力を1スレッドに全力投入できる設計にし、そのCCXを8個程度搭載したCPUを作る事で、超高IPCの8コアCPUが200Wくらいで完成、それを更にデュアルソケットでと、、、

妄想乙!とか言われそうですし、サーバ製品向けの考え方ではないですが、上記構造にしたうえで、4SMTとか8SMTの設定が出来れば全て解決!



スポンサーサイト



SandyBridgeでまだ戦えると思っている私 @2020年

筆者にとっての SandyBridge は、 SandyBridge-EP ですので 8コア/16スレッド×2ソケットですから合計 16コア/32スレッド DDR3-1600 8ch です。具体的には17号機で2012年に組みましたので8年前です。CPUは今では IvyBridge-EP に載せ替えちゃったので厳密には・・・既に SandyBridge 利用者ではなくなっているのですが、そんなに差は無いと思います。PCIeもGen3世代なので特に不足はないです。

CPU
 E5-2603 → E5-2670 → E5-2690 v2

GPU
 Quadro 4000 → GTX 780 ti

現在のCPUとGPUは、ともに2013年発売なので7年前の構成です。

Quadro 4000 は毎日使っていたところ1年ほどで壊れちゃったのと17号機ではSLIできなかった為に GTX 780 ti に乗せ換えました。

現在の構成(全て 2013年に揃えられるパーツです)
 CPU:XEON E5-2690 v2 10Core x 2Socket = 20Core / 定格3GHz TB3.6GHz
 GPU:nVidia GeForce GTX 780 ti SLI (4K@60Hz 対応)
 MEM:Registerd ECC DDR3-1866 4GB x 4ch x 2Socket = 8ch 32GB
 SSD:Areca ARC-1882i + Intel 520 x4 RAID6
 OS:Windows 7 Ultimate 64 SP1 (スタンドアロン)

この17号機は2013年以前のパーツで構成されていますので、概ね Sandy 世代と言っても良いと思うのです。
物理20コア(Sandyだったとしても物理16コア)有るので、個人用途で不足は殆ど感じませんし、4Kディスプレイで普通に最新ゲームができます。

まだまだ戦えますよ?

CINEBENCHI R20 のスコアは6000台です、Sandyに戻しても5000台が出ますよ?i9-9900K より上ですよ?

ムーアの法則の検証

スパコン世界一が ARM に決定し、同時に Apple が 今後の Mac に搭載する CPU を ARM へ乗り換える事を宣言した今だからこそ、あえて IA32/AMD64 の歴史をムーアの法則の検証という形で振り返ってみようと思います。

筆者のブログはデュアルソケット専門ですから、デュアルソケットのハイエンドワークステーションに搭載するCPUを軸としてムーアの法則に対する検証をしたグラフが下図になります(CPU選定基準は掲載していましたが割愛というか後述する事にします)。

TransistorCount.png

灰直線 : 初代IA32の 80386 が発表された1985年を起点に2年2倍則のグラフ
橙直線 : 80386搭載PCが発売され始めた1987年を起点に2年2倍則のグラフ
緑折線 : AMD製CPUのトランジスタ数
青折線 : Intel製CPUのトランジスタ数
赤丸線 : リカバリポイント

余談ですが、今年、このグラフのムーアの法則(但し、2年2倍則)にオンスケジュールを達成しているCPUは有りませんが、 nVidia GA100 はオンスケジュールです。また AMD EPYC Rome の64コア品は昨年時点でオンスケジュール、今年も橙線なら概ねオンスケジュールと言えますが、定格クロックが低くWorkstation向けではないので除外しています。グラフにプロットしている基準としては定格3GHz(AMDは物によって定格2.8GHz)以上かつ最多コア品のダイ全体のトランジスタ数です。

以下、トランジスタ増加の歴史を振り返ってみます。

リカバリポイント1: 80386 → 80486
 ◆ L1キャッシュをオンダイ
  386世代は16Byteバッファしかなかったものが486では8KByteキャッシュ
  をオンダイでCPUに統合しています。486以降、キャッシュがL1とL2の
  階層構造に分離します。逆に言えば、386にはL1やL2の様な階層構造
  はなく、単一レイヤのキャッシュがマザーボード側にあるだけでした。
  ここで言うバッファとキャッシュの違いは、バッファは書いたら次に読んで
  更に次のデータが上書きされるバケツリレー的構造ですが、キャッシュは
  入れた後に何度も読まれたり部分的に書き換えられたりしながら再利用
  される黒板の様な構造という違いがあります。
 ◆ x87系の浮動小数演算アクセラレータをオンダイ
  386世代のCPUは浮動小数演算するには別ソケットに80387を挿しておく
  必要が有りましたので、今でいえばCPUとGPUを統合したAPUの様な形
  の統合です。
 ◆ 多くの命令をハードワイヤ(物理的な電子回路)で実行できる設計
  386世代はマイクロコード(CPU内部のソフトウエア)で数クロック~数十
  クロックで実行していた多くの命令を1クロックで実行出来る様になり大幅
  にIPCを改善し、高速化しています。

リカバリポイント2: 80486 → Pentium
 ◆ L1キャッシュを倍増、併せてデータバスを64bit化
  命令とデータでL1を分離し各8KBにして合計でL1を倍増しています。
  命令とデータでは読み書き特性が異なるので、それぞれに最適化した
  構造にして高速化と大容量化を実現しています。
  言い方を変えると、CPUの外部構造はノイマン型ですが、内部構造に
  限ってはハーバードアーキテクチャを採用した形になり、L1から上の
  部分に付いてフォンノイマンボトルネックを改善した形になります。
 ◆デコーダと実行パイプラインを二重化しIPCを向上。
  486では1命令1クロックが基本でしたが、Pentiumでは1クロックで
  1命令以上を実行できる様になりました。
  単純化して言えば、キャッシュ/デコーダ/パイプラインを二重化し
  トランジスタも2倍、性能は2倍ではないものの同一クロックであれば
  2倍に近づいた訳ですね。
 ◆LocalAPICを統合(P54C以降)
  486以前、デュアルソケットにする為には LocalAPIC をマザーボード
  に2個搭載する必要がありましたがCPUに統合する事でマザーボード
  側の製造単価を下げられる効果があり、デュアルソケットの普及を
  加速し、マルチタスク/マルチスレッドの性能向上に貢献しています。

リカバリポイント3: Pentium → PentiumPro
 ◆L1倍増、L2統合(MCM)
  同時期にMMX PentiumでもL1を倍増していますが、PentiumProでは
  更にL2を統合しています。PentiumまではL2がマザーボード側にあった
  ので、今でいえばeDRAMやHBMの様な効果です。
 ◆デコーダ3本、実行パイプライン5本
  デコーダを2本から3本に強化、実行パイプラインも2本から5本に
  強化しています。
  同時に、アウトオブオーダ(投機実行)を採用し、将来実行するかも
  しれない命令を予め実行しておく事で IPC の向上を狙っていますが、
  同時に、実行する必要が無い命令も実行してしまうので電力の無駄
  が発生します。

リカバリポイント4: Deschutes → Coppermine
 ◆L2オンダイ
  間にKatmaiが在りますが、年が同じなので省略しています。
  前世代までCPU基板上に半田付けされていたL2キャッシュがCPUダイ
  に統合されました。これによりL2クロックがCPUと等速になり高速化
  に貢献しています。
  MCMだったL2キャッシュをトランジスタ数に含む場合は、Deschutesも
  オンスケジュールですので、リカバリポイントとは言えませんが、
  L2キャッシュの等速化は性能に与えるインパクトが大きかったです。
 ◆SSE
  レジスタサイズを128bitに拡張し、4つの32bit演算を1命令で同時に
  実行出来る、つまり行列の計算に向いた拡張を施しています。
  行列計算に限ってはIPCが向上しやすい地盤を作っていますが、
  この時点では演算器が未だ64bitぶんしか無かった為、実際の速度
  向上はSSEによるものではなく、かつ、この世代ではトランジスタが
  しばらく増えませんでしたがクロックだけは2年で2倍に向上した為、
  結果として性能は2年で2倍に向上していた時期で、ムーアの法則も
  誤解あるいは違った形で伝わっていた時期です。

リカバリポイント5: Prestonia → Nocona
 ◆L2キャッシュ倍増
  単純に、CPUダイ面積の多くを占めるL2キャッシュを倍増して高速化
  に貢献しています。
 ◆AMD64
  Intelは、これ以降、互換CPUメーカになります。
  Prestonia で 3GHz を達成して以降、クロックの向上は性能に見合わ
  ない電力消費の増大を招く事が知られる様になり、2年で2倍の性能
  向上が困難になりつつ有り、時代はマルチコア方向に向かいます。
  その為、シュリンク=コア数増加が定番となり、しばらくムーアの法則
  はコア数増大と概ねイコールです。これに併せて後にP4からP6への
  回帰が起きています(具体的にはCore2の事)。

ムーアの法則の限界
 ◆冒頭のグラフで判る通り、Haswell-EP以降、Intelはムーアの法則
  からの乖離をリカバリする事が出来ていません。灰色のラインからで
  見れば、Core2アーキテクチャのHarpertown以降は乖離からの
  リカバリが出来ていません。この時から既に10年が経過しています
  が、当時の筆者の記事には、ARMに侵食される事を記載した物
  出ていますので、Intel社内でも当然の様に危機感を持っていたと
  思うのですが、同時にAMDがダメダメだった時期でもあったので
  危機感は顕在化しなかったのかもしれません。5nmで進化は有って
  もリカバリは出来ないでしょう。10年2倍の時代が来たのかもしれ
  ません。これ以上トランジスタが増えても、電力当たりの性能でARM
  に対抗しつつ、x86-64の処理速度を2倍に向上させるのは非常に
  難しいという事です。内部アーキテクチャを根本的に変えない限り、、、

5nmの世界
 ◆プロセス微細化の進捗
  こちらのグラフは、冒頭のグラフに薄青色(Intel)と薄緑色(AMD)の
  製造プロセス微細化の進行状況を重ねたものです。
TransistorCountwp.png

  来年 5nm を達成できれば AMD はムーアの法則にオンスケでZen3
  をリリース出来る可能性が有ります。

  単位面積辺りの配線数で言えば14nmでは80386を同じ面積に1万コア、
  80486なら同じ面積に2千コア載したダイを製造できてしまいます。
  ちょうどGPUくらいの規模ですのでイメージは出来ると思います。
  これが5nmになると80386なら9万コア、80486では2万コアになります。

  もう少し具体的で現実的な話をすると、65nm の Core2Duo を 14nm で
  製造すると、同じ面積に44コア、7nmでは172コア、5nmでは338コアを
  搭載できます。SandyBridge-EP ならば 14nmで40コア、7nmで168コア
  5nmでは328コアを同じ面積に入れられます。ただし、入れられるという
  だけで、クロスバー(例えばSkylake-SPのメッシュ)やL3などのアンコア
  を増量すると仮定すると計算通りにならないですし、熱密度の事が有る
  ので同等のクロックで動作できるか判りませんが、5nm世代で100コアを
  超えるとしても何ら不思議ではなく、むしろ100コアでは少ないとすら言え
  ます。

  100コア超えた場合の用途はどうなるか?今のOSでは対応していないと
  思いますが、各スレッドを各コアに分散して固定すると高速化できます。
  ゲームで言えばキャラクターやオブジェ毎にコアを固定して割り当てると
  各オブジェやキャラが同時並列に動く演算を容易にこなせますので、より
  精細な表現と動作が可能になります。

デュアルソケットの今後に付いて
 ◆シングルソケットの Ryzen Threadripper 3990X は(MCMですが)
  CPUとしてムーアの法則に概ねオンスケジュールです。価格COMの
  情報で46万円ですから、全ての面で今迄の常識を突き抜けている
  のですが、この規模は8K動画編集の様な用途で実力を発揮します
  のでプロ仕様のワークステーションにも使われていると思います。
  1コア辺り7千円ですね。
  プロセッサグループの事があるので64コア以上搭載しても効果が出ない
  ケースが殆どである事を合わせて考えると、32コアで更に高クロックの
  EPYCやXEONを2つ搭載する様な状況が出来れば、デュアルソケット
  の効果が出せると思います。が、それ以上はワークステーションと言う
  より、スパコンの範疇ですね。パーソナルスパコン。
  もし次の世代で AVX-512 に対応しつつ足回りをHBM化するなどして
  性能を向上しつつコア数を維持し高クロック化する様な路線があるなら
  次世代も作ってみたいです。

  VIA nano は、マイクロコードを乗せ換えると ARM 命令セットが動く
  という噂話が出た当時に流布されていましたが実物はお目にかかって
  いません。
  AMD の K12 は ARM でしたが最近続編の話を聞かない(私が聞き逃し
  てるだけかも)ですが、 K13とかが次に出てくるのでしょうかね?
  IntelがARMを作らないなら、富士通製のARMがしばらく売れるかもしれ
  ませんが、あまり長く続かないうちに米国メーカに上書きされるんだろな
  という気がしています。川崎工場ではフットボール場を作ってましたが、
  あれってそういう事なんだろうなって今思います。

  ARMでデュアルソケットの自作が出来たらイイナって思います。
  エミュレータなんでしょうけど、過去のアプリがまともに動くなら
  ワクワクです。

  ていうか、プロセッサグループが64コア制限してる理由って意味不明
  ですよね。

ARM × CentOS の時代が来たのか?
   CentOS 8
  ARM64(aarch64) と AMD64 両方に対応している事の意義は大きいと
  思います。とは言え、どんな機種とデバイスに対応しているのか?

  Ubuntu や Gentoo も ARM に対応している様ですが、Ubuntu は
  Server 版のみ対応で Desktop 向けは未対応の様です。とは言え、
  ARMを搭載したMacが登場する頃には対応するでしょう。
  Gentoo は ARM には対応していても ARM64 には未対応の様です。

 
 

Windows10 で キーボードのレスポンスが激重になる件の対処方法

以下は Windows10 Enterprise LTSC で実施しましたので一般的な Win10 とは挙動が異なる可能性を冒頭で書いておきます。
また、キーボード/マウス以外はUSBを利用しない事をお勧めしておきます(他の機器をUSB接続していると少なからず影響が有るかと思います。)

まず画面右下のコレを右クリックします。日本語入力モードになっている場合は「A」ではなく「あ」になっています。
KEYBOARD01.png

メニューが表示されますので、プロパティを選択します。
KEYBOARD02.png

詳細を選択します。
KEYBOARD03.png

予測入力タブで、予測入力を使用するのチェックを外し、右下の適用ボタンをクリックします。
KEYBOARD04-2.png

これで、かなり改善すると思いますが、更なる速度向上を目指す場合は下記もついでに実施しておきます。

辞書/学習タブで学習するのチェックを外し、右下の適用ボタンをクリックします。
KEYBOARD04.png

余計な学習もしちゃってる場合は学習状況の消去ボタンもクリックしておきましょう。

常に望まない変換をしてくれちゃう鬱陶しいオートコレクトも全部チェックを外しておくと一時の爽快感を得られます。
KEYBOARD05.png

これで、ようやくスタート地点に立てるかも・・・
しかしWindowsUpdateで設定戻されるかもしれない恐怖は残ります。
付加価値ではなく、不要な御節介てんこもりで迷惑千万ですよね。。。

やめてください、元に戻してください、余計な変更しないでください、、、そんな言葉を嫌々紡ぎ出さなくても良くなる日は、いつになったら訪れるのだろうか???
 
  

4K EDID まとめ

4K60Hz対応KVMの記事で書き始めたEDID関連の記載内容が結構膨らみ始めたので別記事に分離してまとめを書いてみます。

結論:
 組み合わせ次第で解決方法が多岐に異なり、これをすれば解決するという答えは無いですが、傾向として2017年以降のグラフィックボードでは特に支障なくBIOSからOS起動後の4K表示まで難なく出来ました。逆に2015年以前のグラフィックボードは何らかの対処が必要でした。
 2016年製が境界ですが、これは筆者が試した範囲での傾向であって確定的な情報ではありません。ですが、筆者のディスプレイ iiyama XB3288 は 4K 60Hz HDR10 に対応しており、これは DisplayPort 1.4 及び HDMI 2.0a/b 仕様なので、この規格が登場した2016年が境界線になっているのかもしれません。具体例として、2016年発売のこちらのGTX1080tiの仕様を見ますと、 DisplayPort 1.3/1.4 Ready, DisplayPort 1.2 Certified の記載がありますが、これを意訳すると DisplayPort 1.4 向けとして製造し DisplayPort 1.2 は認証取得済という事になります。つまり DisplayPort 1.4 向けに製造したけれども規格適合試験は DisplayPort 1.2 までしか合格していない状態です。

下表は DaVinci Resolve での編集に適したグラフィックボートを調査した際にまとめたものにHDR10対応状況を追記したものです
DaVRGPU5.png

 筆者の所有するAMD/nVidia双方8世代を検証した結果、総じてDisplayPort出力が有るグラボは全て4Kに対応していました。但し、4K 60Hz に対応しているのはAMDではGCN以降、nVidiaではKepler以降になります。
 逆に、DisplayPortを搭載していないグラボで4Kを実用レベルで達成できたのは試した範囲では GeForce GTS 250(GeForce 9800 GTX+) と S3 Chrome 640 のみでした。古いグラフィックボードで4K表示するのは古ければ古いほど難易度が高くなると思います。
 調査結果一覧は、この記事の後半に記載してありますが上の表と異なり、仕様上は対応していなくとも実際には対応しているケースが有りました。


概要:
 EDID(Extended Display Identification Data)はディスプレイのインチサイズ、対応している解像度/リフレッシュレート/音声形式、メーカ名と型番などの情報を集約したもので、PCの電源を入れた際にHDMIケーブルやDisplayPortケーブルを伝ってPC(というかグラフィックボード)に伝わります。PCは、この情報をもとに表示解像度やリフレッシュレートや音源などを設定しますが、機器に故障が無くてもEDIDの僅かな不備が原因で表示が全くできないケースが非常に多いです。また切替器を利用する場合などでPCがEDIDを見失って解像度設定を右往左往してディスクトップが崩れる事などもありますが、これらの問題は、この記事に記載した方法で解決可能です。

EDIDLINK.png
※ 上図では4Kディスプレイと書きましたがHDでも8Kでも仕組みは変わりません。


問題対処に利用した機器とツール:

 Dr.HDMI 4K:1万~1.5万円
IMG_20200528_044324.jpg
  多機能で、多くの問題を解決出来る最終兵器ですが、多機能過ぎて慣れるまでは利用し辛く、電源を必要とするため常設には向かないです。イベント会場などで仮設する場合の応急処置的な問題解決用ツールとしては最適な物と思いますが、自宅で自作PC用に利用する場合は最終手段かなと。

 FUERAN HDMI Pass-Through EDID Emulator:千~2千円
IMG_20200528_044239.jpg
  FUERAN で検索すると多数ヒットしますがメーカーHPは未だ見つけていません。ヘッドレス用とパススルー用が有りますが上の写真と同じパススルー用を購入します。
  常設が必要な場面で活躍する単機能で安価なEDID保持器です。ディスプレイを接続していない状態でも、グラボにこれを挿しておけば電源不要で解像度設定を固定しておけますので切替器などで切り替えた時や省電力などでディスプレイがOFFになった時にも微動だにせず解像度設定を保持できます。
  デフォルト解像度の設定を固定した状態で販売されており、保持器側の設定変更は出来ませんがOS側の設定可能解像度が全解放されます。例えば筆者が入手した4K60Hz対応品はWindows側に推奨解像度が 1920x1080p 60Hz として認識され最初に接続したときはFHD解像度の設定になりますが、 4096 x 2160p 60Hz までの解像度をOS側の設定で自由に選択できる様に全開放される物でした。Windows側で設定変更が自由に出来る様になる反面、ディスプレイが対応していない解像度も開放されるので、ゲーム等のアプリ側の解像度設定などにご注意下さい。
  試しにFHD対応品も購入してみましたが外観が4K60Hz品と100%同一なので設定されている解像度を本体に書いておかないと判別不可になりますから御注意ください。写真上がFHDで下が4K対応品です。

 Custom Resolution Utility:フリーソフト
202005280522.jpg
  OS起動後のEDIDテーブルを編集する物です。
  ドライバ × 端子 × ディスプレイの組み合わせ毎に設定変更出来、今回の問題解決で一番活躍しました。手放せません。設定は保存され再起動以降は常に有効になりますので、一度設定が完了したら再設定の必要はなく、ソフトをアンインストールしても大丈夫です、ドライバの更新後に再設定が必要になる可能性が有りますので、何かの時に再利用できる様にしておいた方が良いと思われます。

 中古ディスプレイ:中古で千~3千円くらい
505205114.jpg
  4Kディスプレイに接続して表示出来ない場合の調査用として、VGA端子やDVI端子などの豊富な入力端子を備えた物が手元に有ると便利です。
  例えば13号機にGTX590を搭載して4Kディスプレイを接続した場合、BIOS画面までしか表示できませんでしたが、オンボードグラフィック側でVGA端子に接続したWUXGAディスプレイでドライバインストールまでを実行し、その後にオンボードグラフィックをDISABLEにする事で対応できました。


代表的な解像度(4K):
下表の通り4Kは1999年から存在していて、4K 60Hz も 2009年には規格が存在していますので既に10年以上前の技術という事になります。
リリース 規格 解像度 クロマサンプリング
1999/04 DVI dual link 4K 3840x2400 30Hz 4:4:4 TrueColor
2006/05 DisplayPort 1.0 4K 3840x2160 30Hz 4:4:4 TrueColor
2009/05 HDMI 1.4
2009/12 DisplayPort 1.2 4K 3840x2160 60Hz 4:4:4 TrueColor
2013/09 HDMI 2.0 4:4:4 TrueColor
4:2:2 HDR10
2014/09 DisplayPort 1.3 4:4:4 HDR10
2016/03 DisplayPort 1.4
2017/11 HDMI 2.1 4K 3840x2160 120Hz 4:4:4 HDR10
2019/06 DisplayPort 2.0
※筆者はKVM経由で水色で示した解像度の快適な利用を目指しています。
 10年後は 8K 60Hz HDR10 3画面、もしくは 8Kヘッドマウントディスプレイ、、

帯域と解像度・圧縮の関係
4K8KDSCBANDW.png

動作の仕組み:
 ステップ1:電源投入直後のBIOS表示
 電源投入直後は、グラフィックボードのFirmwareとマザーボードのBIOS/UEFIがEDIDを元にBIOS画面を表示しますが、EDIDの解像度リストにはディスプレイが対応している解像度のうち代表的なものしかリスト化されていない為、リストの中から適切な解像度を選定できない場合があり、その場合に画面が表示できません。但し次のステップまでいくと表示される場合もあります。
 この問題の根本原因はEDIDの仕様の複雑さと下位互換に対する考慮不足と思われ、対策としては冒頭に掲載した様なEDID保持器やEDIDエミュレータと言われる数千円~1万円程度で販売されている機器を利用して一時的に低解像度のEDIDに書き換える事で対応出来ます。

 ステップ1.5:OS起動中~ドライバインストールまでの表示
 VESA BIOS Extensions準拠の「基本ディスプレイアダプタ」というドライバが利用されます。GPU と ディスプレイ 双方の Firmware が VESA BIOS Extensions に準拠した動作をしてくれる場合に表示できます。
 このステップで問題が発生した場合は、ステップ1の対処法とステップ2の対処法の両方が使えます。

 ステップ2:OS起動後の4K表示
 OS起動後はグラフィックドライバとOSの組み合わせでEDIDのリストをもとに解像度やリフレッシュレートが再選定されますので、BIOS画面の表示状態に関わりなくグラフィックボード/ドライバ/OSがEDIDを正しく処理できれば画面が表示されます。逆に、これらの組み合わせのいづれかがディスプレイのEDIDを正しく処理できない場合は画面が表示できません。
 この問題の根本原因もステップ1同様にEDIDの仕様の複雑さと下位互換に対する考慮不足と思われますが、対策としてはドライバでの設定変更やツールを使ったEDIDの編集による設定変更で対応可能です。画面が表示されないのにどうやって設定するのか?と言えば、別のディスプレイを接続して設定変更します。


筆者自作機のBIOS表示:
 4Kディスプレイ(iiyama XB3288) + KVM(TESmart HKS1601A1U) を筆者自作機に接続して電源を投入した際に、上記しました「ステップ1:電源投入直後のBIOS表示」が出来るか調査しつつ、EDID保持器を導入して最終的には全機でBIOS表示が出来る様に対応しました。
 KVM(TESmart HKS1601A1U)はEDID保持器を内蔵していますが、EDIDの設定変更やカスタマイズの機能が無い為、ディスプレイの出力するEDIDにグラフィックボードが対応出来ない場合にBIOSを表示するには別途外付けでEDID設定機能が有る保持器を設置します。

空欄:未検証 -:コネクタ無し ×:機能しない 〇:利用可
機体 GPU Firmware BIOS表示
DVI HDMI DP
05号機 Matrox Parhelia 512 - -
16号機 S3 Chrome 640 e0.e2.00.29 - -
0A号機 Radeon X1900XT 09.12.5.2.17666 *G - -
10号機 Radeon HD3870 10.77.0.0.00000 *A - -
10号機 Radeon HD4890 11.22.1.5.32404 *A - -
12号機 Radeon HD5870 Ef6 12.20.0.2.36574 - - *B
19号機 Radeon HD6970 13.08.0.9.39303 × *B
19号機 Radeon HD7970 15.12.0.4.00346 *A *B
20号機 Radeon R9 nano 15.49.0.4.06114 - *C
21号機 Radeon VII 16.4.0.38.11717 - *C
11号機 GeForce 7950 GT 05.71.22.42.86 *D - -
15号機 GeForce GTS 250 62.92.89.00.09 *D - -
15号機 GeForce GTX 285 62.00.50.00.01 *D - -
13号機 GeForce GTX 580 70.10.20.00.01 *D -
13号機 GeForce GTX 590 70.10.42.00.02 *D - *H
17号機 GeForce GTX 780 ti 80.80.30.00.01 *D *E *F
18号機 GeForce GTX 1080 ti 86.02.39.00.01 - *C
22号機 GeForce RTX 2080 ti 90.02.17.00.B2 - *C
*A : Radeon HD 付属 DVI to HDMI 変換器経由
*B : miniDP to HDMI Active 変換器(DPA-4KHD01 / AD-MDPHDR01)経由
*C : DP to HDMI Active 変換器(AD-DPHDR01)経由
*D : 市販の DVI to HDMI 変換器経由
*E : EDID保持器経由
*F : DP to HDMI Active 変換器(AD-DPHDR01) + EDID保持器 を経由
*G : 市販の DVI to HDMI 変換器 + EDID保持器 を経由
*H : miniDP to HDMI Active 変換器(DPA-4KHD01)経由


筆者自作機の4K対応状況:
 4Kディスプレイ(iiyama XB3288) + KVM(TESmart HKS1601A1U) を筆者自作機に接続した場合に冒頭で記載した「ステップ2:OS起動後の4K表示」に付いて動作の可否を音も含め調査しました。4K表示が出来なくても全機種で最低でもFHD(1920x1080p)以上の表示と音が出る様に設定しました(但し、2006年以前のグラボではHDMI経由の音だしには別途機材が必要です)。
 下表の〇は規格外動作を含んでいますのでご注意ください(試される場合は自己責任で)。例えば、本来DVI端子で4K60Hzは規格外ですし、4K30Hzはデュアルリンクで対応になりますが、シングルリンクにしか対応しないハズの DVI to HDMI 変換コネクタを介して 4K 30Hz や 4K 60Hz で表示できる場合が有ります。また、グラフィックボードの仕様には4Kの記載が無い場合でも4K動作出来る場合が有ります。

空欄:未検証 -:コネクタ無し ×:機能しない △:実用的でない 〇:利用可
機体 GPU Driver Sound 4K 30Hz 4K 60Hz
DVI HDMI DP DVI HDMI DP DVI HDMI DP
05号機 Matrox Parhelia 512 - - - - - -
16号機 S3 Chrome 640 v9.17 - *E - - *E - - × -
0A号機 Radeon X1900XT 10.2 × - - ×*9 - - × - -
10号機 Radeon HD3870 13.1 *4 - - ×*9 - - × - -
10号機 Radeon HD4890 13.1 *4 - - ×*9 - - × - -
12号機 Radeon HD5870Ef6 15.7.1 - - *1
*5
- - *1
*5
- - ×
19号機 Radeon HD6970 15.7.1 *4 *1
*5*0
×*9 × *1
*5
× × ×
19号機 Radeon HD7970 19.12.2 *4 *6 ×*9 *1 *6 × × *6
20号機 Radeon R9 nano 19.2.3 - *7 - *1 *7 - × *7
21号機 Radeon VII 20.1.3 - *7 - *7 - *7
11号機 GeForce 7950GT 309.08 × - - *2 - - × - -
15号機 GeForce GTS250 342.01 - - *1 - - × - -
15号機 GeForce GTX285 342.01 - - ×*9 - - × - -
13号機 GeForce GTX580 391.35 *8 - *3 *3 - × × -
13号機 GeForce GTX590 391.35 *8 - *3 - *5 × - ×
17号機 GeForce GTX780ti 417.22 × *7 *8 *7 *8 *7
18号機 GeForce GTX1080ti 442.92 - *7 - *7 - *7
22号機 GeForce RTX2080ti 442.19 - *7 - *7 - *7
*1 : EDID を後述の方法で変更対応。
*2 : EDID を後述の方法で変更対応、但し描画ノイズが酷く実用的ではないです。
*3 : ドライバのカスタム解像度設定で対応、但し文字が滲んで視認困難
*4 : Radeon HD 付属 DVI to HDMI 変換器経由
*5 : miniDP to HDMI Active 変換器(DPA-4KHD01)経由
*6 : miniDP to HDMI Active 変換器(AD-MDPHDR01)経由かつ後述のDP設定COPY
*7 : DP to HDMI Active 変換器(AD-DPHDR01)経由
*8 : 市販の DVI to HDMI 変換器経由
*9 : 市販の DVI to HDMI 変換器経由で FHD 1920x1080p 60Hz であれば表示可
*0 : 4K 30Hz では音が出ませんが、FHD 1920x1080p 60Hz であれば音が出ます
*E : EDID保持器経由

 今のところEDIDの編集によって筆者の手元で4K表示できた最古のGPUは GeForce 7950 GT ですが実用には耐えられないくらいノイズが乗ります、次に古い GeForce GTS 250 (G92b = 9800 GTX+同等品) はオフィスソフトなら実用できる程度に 4K30Hz × 2画面まで表示出来ました(規格外の動作ですから同じ事を試す場合は自己責任で、、、)。
 但し、BIOSの問題と思いますが起動時にケーブルを抜いておかないとリソース共有違反で表示できません。これは恐らく VESA BIOS Extensions にて4K解像度のEDIDを処理した際にフレームバッファが溢れるのだと思われ、対策はEDID保持器を使い起動時に低解像度のEDIDに固定するかBIOS改造するか、どちらかになると思われます=>BIOSリセットであっさり解決しましたので、BIOSの設定と解像度の組み合わせで発生する問題と思われます。  ステップ1とステップ2では対応方法が異なりますので両方とも対応していなかったものを両方対応出来る様にするのが筆者の現時点の目標です=>全機種で目標達成できました。またステップ2では音声出力への対応も併せて行いたいと思っています。
 逆に、GeForce GTX285 では、BIOS画面は普通に見る事が出来るものの、OS起動後に4K表示は未だ出来ていません(OS/ドライバは正常動作している様に見えるものの4K画面が表示できません)。Firmwareを更新して駄目だったら諦めてHD解像度で利用します。たぶんGPUに内蔵されたRAMDACが対応出来るか否かによると思われます。


音声:
 HDMI経由での音声トラブルは、筆者が体験したものとしては概ねオーディオドライバの再インストールで解決しました。つまりKVMを経由する事による音声トラブルは今のところありません。


EDIDを編集:
 以下 Custom Resolution Utility での EDID 設定手順ですが、筆者の環境で動作した手順であって全ての環境でこの手順が正しく機能するかどうか、或いはこの手順が本当に正しいのか判りません、AMDのHD7xxx以降や最近のnVidiaドライバにはドライバ側に同様の機能がありますので、そちらを利用した方が良いかもしれません。ですが、HD6xxx以前のAMDやGeForceの古いドライバでは設定できませんので、こちらのユーティリティソフトを利用するのが良いと思います。

 ■サイトからダウンロードしたファイルを解凍し CRU.exe を実行、Extension blocks の Edit ボタンをクリックします。
 EDID-Step01.jpg

 ■定義をコピーします。
 EDID-Step02.jpg

 ■コピーした定義を追加して編集しますので、最初に追加します。
 EDID-Step03.jpg

 ■追加した定義情報に先ほどコピーした定義をペーストします。
 EDID-Step04.jpg

 ■ペーストした定義を編集します。
 EDID-Step05.jpg

 ■リフレッシュレートを30Hzモード時の実際のリフレッシュレートに書き換えます。この値は別のGPUで接続して30Hz設定に変更した際の値をメモしておいたものです。ディスプレイによって設定内容は異なると思いますので参考程度に・・・
 下記の通り 29.981 に設定していますが、ディスプレイのマニュアルの記載によると 29.970 の様ですので後程 29.970 でも試してみる予定です。  EDID-Step06.jpg

 ■OKをクリックして編集結果を確定します。
 EDID-Step07.jpg

 ■OKをクリックして編集結果を書込みます。
 EDID-Step08.jpg

 ■上記設定後に通常の手順でPCを再起動すると自動的に4K30Hzになります。


DP接続時のEDIDをHDMI接続時のEDIDにコピー:
 4K60Hz対応の DP to HDMI Active アダプタを利用しても4K60Hzで表示できない場合、DPでディスプレイに直結した際のEDIDをアダプタ経由した際のEDID側にコピーする事で表示できる様になる事があります。
 ■DP直結とアダプタ経由接続のEDIDが既にある事を確認し、DP接続側を選択します。
 EDID-Step11.jpg  ■上記のEDID編集と同じ手順でコピー&ペーストを使ってDP側のEDIDをHDMI側のEDIDにコピーします。
 EDID-Step12.jpg

プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて二十数台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です(以降、Bull/nano/Ryzenと数台仮組レベルで組んでいます)。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR