Linux Kernel の Config を変更して音質改善を図ってみよう、第二段
リアルタイムカーネルと呼ばれるものを試してみました。と言っても、Linuxというか、Unix系OSである以上、本当のリアルタイムカーネルというのは不可能なんですけどね。
改造したFirmwareはこちらから。
変更点は、Kernel の Tick タイマーを100Hzから、1kHzに上げてみました。これ、デスクトップ Linux で DTM やる人にとっては当たり前のことらしいのです。
Unix 系というか、マルチプロセスのタイムシェアリング OS には必ず Tick タイマー割り込みというものが乗っています。定期的にタイマーで割り込みをかけて、その割り込みハンドラでプロセスを切り替える。これで、あたかも複数のプロセスが走ってるようにみえる。すなわち、マルチタスクが実現できるのです。
で、せっかく定期的に割り込みが来るんだからと、Kernel はそのタイマー割り込みのタイミングでさまざま OS サービスを行います。デバイスドライバーの Queue に入ってるデータを処理するとかいうのもこのタイミング。UserLand(MPD) から発せられた「この音データ再生しといて」というリクエストは、サウンドドライバーに渡されて、そこで一時保留され、割り込みのタイミングでサウンドハードウェアに渡される・・・・ハズです(まだその辺りのコード読めてない)
つまり、割り込み頻度をあげると、サウンドデバイスへデータが渡りやすくなる。MPDの再生要求に対して、ハードウェアの応答性がよくなる。つまり、リアルタイム性がある OS ということになるのです。
ただし、CPU が忙しくなるので、消費電力が上がるはずです
コメントする