人気ブログランキング | 話題のタグを見る

雑多な趣味の記録帳

tom01h.exblog.jp

メモリマップ BNN アクセラレータをデータスクラッチパッド RAM と統合する

メモリマップの BNN アクセラレータがそこそこ動いているようなので、データスクラッチパッド RAM と統合したいと思います。
128KB のメモリを普通のデータ RAM としてアクセスするときは 0x80100000-0x80120000 でアクセスします。
BNN アクセラレータは 1ワードが 1024bit なのですが、32bit ストア命令でアクセスしたいので 1024bit 毎に アドレスが 4だけ増加します。割り当てアドレスは 0x80180000-0x80181000 かな?
今回は BNN メモリに 80KB 割り当てることにしたので、RAM として使えるのが 0x80100000-0x8010c000 で、BNN メモリは 0x80180600-0x80181000 になります。
せっかくなので、BNN メモリは ELF ファイルに書かれた値で kozos ブートローダが初期化するようにしたい思います。ちなみに BNN メモリは、0x8010c000-0x80120000 を使って、通常のメモリライトで初期化可能です。
ld.scr には
MEMORY
{
ramp(rw) : o = 0x8010c000, l = 0x00014000 /* 80KB */
SECTIONS
{
.param : {
_param_start = . ;
*(.param)_eparam = . ;
} > ramp
と書いて、param.s にこんな感じでデータを並べます。
.section .param,"aw"
.word 0x26698990
こうしておくと、プログラムのロードと一緒に BNN アクセラレータのパラメータの初期化が出来ます。
github 更新しました。
今のところ zero-riscy がのんびり動くので大丈夫なのですが、そろそろウェイト制御を追加したいと思います。

by tom01h | 2018-05-15 22:46