会社案内 (近況 2009/04)

先月   翌月

2009/04/29 よらば大樹の影 (川井)

今週はゴールデンウィークらしいので、こんなことをやってみた。ちょっと調 べたところによると、2〜3 年前からは WDF (Windows Driver Foundation) と かいう環境下で作るのが正式な手法、ということになったらしいので、それで 作ってみた。

configuration read/write, PIO read/write がいちおう動くようになった。 が、読み書きを全部 ioctl 経由で kernel context でやっているので、PCIe リンク上ではちゃんと 64B burst しているにもかかわらず実効性能が遅い。 実測から推定すると、kernel/user の context switch に 30us くらいかかっ ている気がする (嘘かも)。kernel space を user space に map して、すべ ての通信を user context から行いたいが、WDF はそういうことをユーザにや らせたくないらしい。が、どうせ抜け道はあるだろう。現在調査中。それが分 かればだいたい完成ぽい。DMA 用バッファの確保とか、PAT の write combining 設定とかは WDF が正式な方法を用意しているので問題ない。

まだ開発途中だが現段階までで他の OS と比較した所感:

がさっぱり分からなくてハマった。これだけで 5 日くらいかかった。いった んこれらが解明してしまえば、コーディング自体は Linux 版ドライバの 5 倍 くらい、OS X 版の 2 倍程度の面倒くささで済んだ (2〜3 日)。Visual なん とかみたいな統合開発環境を使わずに普通にコンソール上で開発できるので、 むしろユーザアプリケーションより楽。ドキュメントは MSDN というサイトに とにかく大量にある。読み手への配慮、とかそういった類のものがあるかどう かについては、公の場で意見を述べるのは避けたい所存な感じではあるが、 Linux みたいにソースコード以外何も情報が無いよりはマシ。Windows はソー スコードが無いから、これくらいドキュメントがないとどうしようもない、と 言ういい方もできるが。

2009/04/19 External PCI Express Card (福重)

製作中だったExternal PCIe のカードが届いて、16レーン(Gen1)で無事動作しました(Gen2は未確認)。
ちなみに、このカードはプリント基板設計(アートワーク)も自分でおこないました。


先月   翌月
近況トップ