7‐04 2層目のRAMアクセス(書き方、1層目と比較)

●1層目の書き込みと比較してみる

 2層目はプーリングがあるため、1層目とは書き込みタイミングが違ってきます。
 図7‐25は
1層目ですが、1画素計算するのに90ns x 4ch = 360ns、1ライン(28画素)計算するには360ns x 28 = 10.08us、1画面(28ライン)計算するには10.08us x 28 = 282.24usになります。

 しかし、CNN推論回路には320us毎にCNN1ブロックが入ってきます。したがって同図のように37.76usの「休み時間」を設けて入力との同期をとります
すなわちVGAの水平同期信号VgaHsync(32us)の10個ぶん、320usで各層にCNN1ブロックを処理させてパイプライン動作させます。

図7-25 ReluWrN(RAM書き込みイネーブル)に37.76usの休み時間がある

2層目の書き込みは画素数が減るので隙間が開く

 2層目は1画素計算するのに90ns x 4ch = 360nsですが、プーリングで間引くので1画素出力するのは倍の
720nsになります。

 また、プーリングではライン方向も間引きます。したがって図7‐26のように720ns x
13 = 9.36usの後に「休み時間」が発生して結局10.08us x 2 = 20.16usで1ライン出力になります。

 2層目は13ラインなので 20.16us x
13 = 262.08usで1画面計算しますが、出力は休み時間込みで(1層目と同じ)320usになります。

図7‐26 ReluWrN(RAM書き込みイネーブル)に隙間がある(プーリングにより)

●各層はライン/画面どちらも同期をとって処理

 2層目はプーリングがあるので、ライン単位の同期は「1層目が2ライン出力する期間で2層目は1ライン出力」となります。画面単位の同期は「1層目が1画面出力する期間で2層目も1画面出力」となります。

 また図7‐26を見るとReluWrNに4ラインぶんの
レイテンシがあります(CnnLineCountが
になってReluWrNが出てくる)。これはラインバッファ3つにたまる期間3ラインぶん+プーリングにかかる期間1ラインぶんによります。

次のページへ

目次へ戻る