携帯電話端末の中のDSPって何するの?
こんにちはuzakadeuです。
前二回はDSPファーム開発の前夜として二つの仕事の話をしました。
今回は携帯電話端末の中のDSPって何するの?という話をします。
携帯基地局の仕事が終わってから2,3ヶ月JavaとCORBAの仕事を手伝っていたら、新しい仕事の話が持ち込まれました。携帯電話端末の中のDSPのプログラムを作る仕事です。でもよくわかりません...
ケータイのDSPって何するの?
はじめて携わった機種の開発期間は4ヶ月くらいしかなく、目の前の仕事(外国出張、外国との方との技術的な交渉、チップの調査、コーディング)に懸命だったので、なかなか疑問を考える時間がありません。結局この疑問が解消されたのはずいぶん後になってからでした。
携帯電話端末のDSP(アプリケーションDSP)の役割は大まかに次のとおりです。
- CPU(アプリケーションCPU)からの依頼をきっかけとして
- CPUとは並行して
- 音声、静止画、動画の符号化と復号を行う。
CPUから見るとコーデックを専門とするコプロセッサみたいなものですね。
・・・
少し話題がずれます。
CPUと並行して動くということは次の特性を持つことになります。
- 雑多な処理から解放されて符号化と復号に専念できるので、処理時間の予測がしやすい。
- 設計がシンプルになり単体の開発効率が上がる。
- CPUとDSP間の通信仕様(手順とタイミング)を厳密に定義する必要がある。
- 電力がもったいないので、空き時間をなるべく多く作り、その間はスリープしなければならない。
CPUとDSPおよびその他周辺機能がパッケージにまとめられた統合チップでは次の特性も追加されます。
- CPU側のプログラムを用意するまで単体では電力さえ供給されない。
- 何もしない時は電力を一切カットされる(リセットホールド)。
「単体では電力さえ供給されない」ということは、必然的にCPU側のプログラムを先に用意しなければならないのですが、DSPファームの開発はCPU側のプログラムよりかなり先行させられる*1のです。
けっきょく相当な時間を使って、DSPのテストにだけ使うCPU側のプログラムを作っていました。
おかげで
CPUのバグに振り回されず純粋な単体評価ができる
ので、開発効率がとてもよくなり、たいへん助かりました。
今回は携帯電話端末のDSPの役割が伝われば幸いです。
*1:理由は知らない。うすうすとは分かるけど。