低レイテンシ・オーディオ・プラットフォーム

JI3GABさんと、低レイテンシのオーディオ・ドライバについて少しやり取りをしたことがあります。動機はソフトウェア・ラジオです。受信だけならいくらレイテンシがあってもいいのですが、送受信となると切り替え時にその影響が出てきます。レイテンシは短いほうがいいのです。が、PCオーディオはどれもレイテンシが大きくて困ります。うじのすけさんからASIOは低レイテンシだと教わりましたが、そもそもPC OSそのものがリアルタイム向きではありません。
そうなると、当然過去の経験からITRONじゃだめか?と考えますが、まぁ、甘くはないだろうということは考えずともわかります。どのくらい甘くないか、ここ2,3日ほど調査していました
以下、その報告

開発環境
VMWareが便利
TOPPERS/JSPの移植
おそらくGCCには問題はない。リアルモードでもプロテクトモードでもOKだが、ローダーの絡みでプロテクト・モードのほうが楽だと思われる。はじめからGCC限定で開発するし、CISCなのでプロセッサ依存部はM68Kなみにコンパクトにかけると思う。シリアルは16550なので楽なはず。GDBは放棄。
ローダー
バイナリの形式をlinuxとあわせてしまえば、GRUBやsyslinuxが使える。USBメモリやCDROMから起動できるのが強み。ただし、それなりに複雑。linuxのビルドフェーズの後半をパクれば何とかなると思われる。
PCI
PCアーキテクチャなので、PCIバイスに対応しなければならない。列挙していってもいいが、どうせ対応できるオーディオ・アーキテクチャは少ないのでPCI BIOSにVIDとDIDを問い合わせるほうが合理的。

オーディオ・インターフェースについては、

VMWare
古いEN1371をシミュレートしている。"Loop Mode"というサーキュラー・バッファ対応モードがありますが、ソフトウェアとハードウェアの同期は危なっかしく感じる。
ICH6/7
公開されている情報ではほぼ共通のAC'97インターフェースを持っている。ということは、単一のAC'97ドライバでICH全シリーズをカバーできることが期待できる。
AMD
サウスブリッジのスペックは原則非公開なので、オーディオ・ドライバの開発は困難。ただし、Geodeシリーズのコンパニオンチップは情報が公開されている。
VIA
サウスブリッジのスペックは原則非公開なので、オーディオ・ドライバの開発は困難。一応オープンソース開発者の相談は聞くらしいが、個人に対してどうかは不明。

と、こんな感じです。ハードルは低くありませんが、乗り越えられない程ではありません。ただ、あまりにも情報が少ないです。各社ともリファレンス・マニュアルしか公表していません。どういう考え方でオーディオドライバを組めばいか、筋道はリファレンスからくみ上げるしかないのです。そうすると、マニュアルを読みながらすべてが手探りになります。
数人であーでもない、こーでもないとやっていくなら1週間で終わることでも、個人でやると数ヶ月かかることだってありえます。そうすると、これは一人でやるプロジェクトではない、というのが私の結論。
ほかに手持ちのプロジェクトがなければTOPPERS/JSP for Blackfinのときのように一人で始めてもいいのですが、今の状況じゃ手に余るな、という感触です。
同じようなプラットフォームは浮動小数DSPならとてもシンプルに作れますが、TIもADIも最低数万円の評価システムを購入しなければなりません。それは敷居が高いです。