Post
Topic
Board 挖矿
Re: CPU->GPU->ASIC->Memory
by
quickhorse
on 15/12/2013, 12:24:03 UTC
lanfanblue老师你好,我是一个IC初学者向您请教,请不要介意问题的幼稚与无知。

关于同一个“串行”流水线,因为“一条流水线里,无论分多少级,里面各级所连接的内存是同一块”,所需内存带宽与不分流水线是一样的。这个问题我已经知道了。

但是“并行”流水线呢?因为事实上循环的64次,操作都是一样的,经过一次操作后,本级流水线把自己的输出当输入继续计算。64次以后提交结果。这也就是我说的“同类型的核之间,没有数据交换”。

串行流水线中,同类型的核之间是交换数据的。

一个最小的核,有24个门电路完成W数组循环,30个门电路完成主循环。另需要64*4*2字节内存存放两个W数组。另外8*4字节存放h数组。对于K数组,那是常量,多少个小核共享一个K数组,需要权衡一下。
每一个时钟周期内W和Main各执行一遍。
前64个周期,W电路将前64*4字节,第一个W数组填满。
次64周期,Main电路处理前64*4字节,64次。W电路将后64*4字节,第二个W数组填满。
可能需要一个周期进行输出。
再次64周期,Main处理后64*4字节64次。W填写前64*4字节。
如此往复。

这样64,或者可能是65个小核组成一个大核。实现一个周期输出一个结果。这样的结构,是否能减少内存带宽的使用呢?

谢谢。