4. ファイルシステムとして組み込んだら性能が全然出てない
PSRAMを使うのに専用関数ってのも美しくないのでファイルシステムとして組み込んだ。調べてみると3つの関数を用意するだけで済むようだ。簡単だな。
さっそく組み込んで/psramとして使えるようにしたらMP3ファイルの再生がギリギリできる程度。SDより遅い??
ファイルを読み書きするだけのプログラムで計測したら、QSPI転送での理論値(2500kB/s)の40倍かかる。(60kB/s)
まあmicropythonのプログラムでデータを読み込んでるから仕方ない。と思ってDMAで転送して、だいぶ改善したが、それでも5倍かかる。(470kB/s)
何か妙な処理が動いてるのかね?と思いクロック変えながら計測してオーバーヘッドを算出してみるとclk信号5MHzのとき8割がオーバーヘッド。マジかよ。これじゃPSRAMとの通信クロックを上げても解決しない。(ちなみに配線が長いせいかclk信号で15MHzあたりが限界)
なおオーバーヘッドは連立方程式で簡単に求められるはずが、やり方を思い出せなかった。中学校レベルなのに。とほほ。
それはさておき
SDカードが遅いのもそのへんが理由?
micropython本体側のドライバには手を入れたくないので、PSRAMの方は地道に性能改善してかないと。
公式ドキュメントの改善方法を試してみて、最後はCで書き直すか悩みどころ。




