PCIの勉強続き

はじめに

以前、PCIについての記事を書いたのですが、わかったようなわからないような感じだったのでもうちょっと勉強してみました。

なんとなく分かってきた気がしています

8割方、気のせいだと思います。

最初にたどり着いたのがQiitaのページです。そこから東北学院大学のページを知り、読んでみました。

どうやら、CPUにはIOポートを直接操作する命令が用意されていて、それを使って指定のアドレスを読み書きするか、メモリマップドの場合は対応するメモリを読み書きすることでPCIのデバイスを操作できるようになる、というもののようだと理解しました。

この後は

この記事が良さそうだったので、再読しようと思います。(以前読んだことが合ったのですが、当時はチンプンカンプンでした。今ならもうちょっと分かるかな?)

ちょっと話はそれますが、上記のURLやRui Ueyamaさんのコンパイラブックのような有料の書籍として出しても十二分に価値があるコンテンツを無料で誰でも読めるようにしてくれているというのはとてもありがたいですね。感謝しかありません。

さらに、有料の書籍であっても、数千円で自力では到底調べきれないであろう知見を共有してくれることは大変ありがたいです。お金出して買っているから、という態度ではなく、知見を共有してくれることに感謝を忘れずにいたいと思います。IT系の書籍でなく小説などでも、やはり書いてくれる方がいるから我々も楽しむことができるわけなので、感謝を忘れずにいようと思います。

2021/03/28追記

上記のURLの他にこのサイトも見て、ちょっと分かってきたかなーという感じです。

どうやらPCI Configuration Spaceは0x0cf8に、Config Dataは0x0cfcにマップされているらしいです。Configuration Spaceへバス番号、デバイス番号、ファンクション番号を指定して読み書きしたいレジスタをセットして、0x0cfcの値を読み出したり、そこへ値を渡したりすることで読み書きができる、というようですね。

SATAやネットワークカードの場合に、具体的にどのようにデータを読み書きするのかまではたどり着けていない感じですが、一歩進んだ手応えを感じ中です。

投稿者: green pepper

子ども2人の育児に奮闘する情シスです。 勉強したことや、その日の出来事などを記録していきたいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です