x86 PCでは、BIOSは通常、フラット/物理アドレス空間の割り当てを管理し、すべてがその領域内のいくつかの場所を使用します。したがって、BIOSは、各pcieスロットに出て誰かがいるかどうかを調べることによって、pcieデバイスを「列挙」します。 pcieデバイスには、どのくらいのアドレス空間とどのような種類(I/Oベースまたはメモリマップされているか)を示す必要がある標準構成レジスタがあります。ビオスは誰もが幸せになり、彼らが望むものを与えようとします。 WindowsやLinuxはこれらのデバイスやアドレスを再マップしません。彼らはBIOSによって与えられたものを受け取ります。すべてのpcieシステムがそのように動作するわけではありませんが、残念ながらこれはPCの動作です。だから、
あなたはナットやボルトに取得したい場合は、「PCIシステムアーキテクチャを」Googleの場合、私はそれのためのダウンロードリンクがあると思いこの本 http://www.mindshare.com/shop/?c=b§ion=0A6B150A を取得
Linuxを実行した場合、その後見つけますlspciのソースには、いくつかのライブラリとサンプルがあります。これらのライブラリとサンプルは、あなたのシステムに含まれるデバイスとそのベースアドレスとメモリ範囲が何であるかを調べるために独自に作成して作成することができます。ほとんどの場合、ほかのオペレーティングシステムが何をしているのか、pcieホストコントローラを読んでどこに割り当てられているのかを見て、その情報をそのシステム上で実行されているソフトウェアに提供したいと思うでしょう。一度起動すると、プリンタはアドレス0xE0000000と次回の0xDB000000を取得し、環境にこれらのアドレスを与える仕組みを提供するか、環境アドレス空間内の固定アドレスにそれらを抽象化し、コードが物理的な/デバイスの実アドレス。
私は、あなたがx86システムのいくつかの味について話している、実モードという用語を使用することを前提としています。これは多分、味のあるPCでしょう。多分Mac。正確にはどのようにMacがそれを行うかわからない、彼らの列挙について十分に知っていない。ハードウェアはおそらく、南北橋とそれに続くいくつかのpcieブリッジや他のインテルのpcieチップが続くIntelプロセッサであり、最終的にはボード上にはんだ付けされたいくつかのpcieデバイス(ビデオチップなど)またはpcieスロットプラグインカード用。 linuxを実行してlspciを使用してベンダーと部品番号を調べると、intels(ベンダーID 8086)デバイスのマニュアル/データシートのほとんどがintelsのWebサイトにあり、lspciとその兄弟プログラムを使ってコントロールを調べることができますこれらのpcieコントローラのステータスレジスタを参照してください。これについて詳しく知りたい場合は、本当の興味がわかりません。
アドレスは標準でも固定でもなく、各BIOSはそのマザーボードモデルに対して半カスタムですが、pcieスペースのアドレス範囲はプロセッサ空間全体の1ギガバイト以下ですが、そのウィンドウは64ビットへの移行とより多くのスペースの必要性(遅い動き)。そのpcieウィンドウの場所はハードウェアに依存します(私がこれらのさまざまなIntelデバイスについて言及したデータシートを参照するか、またはnvidiaまたはamdシステムの場合は誰でも)BIOSが32ビットモードで実行するように設定されている場合、すべてのpcieデバイスが2ギガから4ギガマークの間のどこかにあるかもしれませんが、それはそれらのシステムのすべてが3ギガマークを使用しているわけではありません。 64ビットの場合、彼らはトップに近い傾向があると思いますが、マザーボードからマザーボードに変わります。それから、それはマザーボード特有のものと個々のコンピュータ特有のものであり、いくつかのデバイスはマザーボードにボルト止め/はんだ付けされ、毎回同じ順序で列挙されますが、スロットに差し込むカードは最初に答えた人に基づいて列挙されることがあります。20回起動して同じレイアウトを見て、もう一度起動し、列挙された順序が変更されたために2枚のカードが場所を入れ替える可能性があります。したがって、ビデオカードが常に同じ場所にあるように見えても、どこでもその番号をハードコードしてはいけません。常にpcieバスやテーブルをスキャンしたり、ライブラリ呼び出しを行って何がどこにあるかを調べます。再起動してから再試行するまで何かを見つけたら移動しないかもしれませんので、アクセスするたびに何かを見つけるために再スキャンを続ける必要はありません。
はい、あなたのBIOSをアップグレードまたはダウングレードすると、BIOSは単なるソフトウェアに過ぎず、BIOSの変更がpcie列挙と関係することがあります(一般的なビデオカードはマザーボード上で動作しませんリセットを変更したり、そのカードに働く機会を増やすためにBIOSを変更することができます)、システム全体の列挙が変更される可能性があります。
あなたは心の中で任意の特定のプラットフォームを持っていますかDOSのリストがあること(又はAl)と
を斧をロードしますか? –
答えは、ソフトウェアが固定構成のみをサポートしなければならない組み込みPCに対するアンサーと比較して、ソフトウェアが多数の異なる構成で動作することが期待される商品PCにとっては全く異なるものです。あなたはあなたの質問を絞り込む必要があります。 –
申し訳ありません。私はPCを指している。 –