雑多な趣味の記録帳

tom01h.exblog.jp

8bit 内積命令の仕様を考えてみる

せっかくの内積命令が BNN にしか使えないのはもったいないので、もう少し汎用性のある仕様を考えてみます。
普通なら R4-Type を使いたいところですが、R-Type に無理やり詰め込んでみたいと思います。
f0054075_20263836.png
また、BNN アクセラレータと同様に、内蔵メモリからフィルタ用データ(8bit×6セット)を読み出すのを前提とします。

A0 = 1st 8bit of rs1
A1 = 2nd 8bit of rs1
A2 = 3rd 8bit of rs1

Imm[8:0]={funct7[4:0],4'h0}
B00 = 1st 8bit of @(4th 8bit of rs1+Imm)
B01 = 2nd 8bit of @(4th 8bit of rs1+Imm)
B02 = 3rd 8bit of @(4th 8bit of rs1+Imm)
B10 = 4th 8bit of @(4th 8bit of rs1+Imm)
B11 = 5th 8bit of @(4th 8bit of rs1+Imm)
B12 = 6th 8bit of @(4th 8bit of rs1+Imm)

C0 = 1st 16bit of rs2
C1 = 2nd 16bit of rs2

ShiftMount = (funct7[6:5]==0) ? 0 : 2^(funct7[6:5]-1)
IP0 = ((A0*B00+A1*B01+A2*B02)>>(ShiftMount))+C0
IP1 = ((A0*B10+A1*B11+A2*B12)>>(ShiftMount))+C1
[追記 ここは飽和演算にするのが良い気がしてきた。]

rd = {IP0,IP1}

BNN コアには上の結果を2個のaccレジスタに読み込む命令を追加すれば、その先のプーリングにつながると思います。

[PR]
トラックバックURL : https://tom01h.exblog.jp/tb/29605274
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2018-02-22 20:27 | PCとか | Trackback | Comments(0)