ソフトウェア動作速度問題

最近いじっている無線通信ができるLSI、ソフトウェア動作速度問題で悩んでいた。通信方法には、大きく2つにわけると、特に制限なくがんばるモードと、通信頻度を少なくして省電流にするモードがある。使い方として、当然だけれども、たくさん通信したいときは制限なくがんばるモードにして、あまり通信しないときには省電流モードにする。非常に真っ当な考え方。
が、しかし、省電流モードのほうがスループットが高いという問題が発生していた。

そういえば、昔触っていたLSIでは、バスアクセスをゆっくりしたほうがバス幅やバーストモードが効率的に働いて結果的にスループットがあがるという現象があったのを思い出した。今回もそんなようなことがおきているのだろうか?などと思ったりもした。

で、しばらく観察していて思ったのだけれども、無線通信というのは、プロトコルスタックが動作するから通信できる。(無線に限ったことではない)プロトコルスタックと自分の書いたソフトウェアは同じMPU資源を利用して動作する。制限なくがんばるモードにしていると、プロトコルスタックが一生懸命動作するから、自分の書いたソフトウェアはあんまり動かなくなるんじゃなかろうか?

あると思います。

しかし、制限なくがんばるモードのほうがスループットが落ちるって、皮肉だなぁ。