Semidynamics可以助力!
分工界面清晰 已被充分考虑
在OVI的一侧,Atrevido/Avispado内核实现所有逻辑以支持向量调入和向量存储操作(以及所有其多种变量)
所有与内存的连接,通过AXI或CHI,由Semidynamics内核管理。
OVI的另一侧,客户可以将向量单元的算术部分按其具体需要及设想的PPA实现。
在两边部件中,OVI定义数据如何相互传递以及指令是如何从内核侧传输到客户的向量单元。
逻辑
为您实现以下逻辑
- 向量加载
- 向量跨步加载
- 向量索引加载
- 向量分段加载
- 向量存储
- 向量到标量内存一致性
- PMA
- 向量跨步存储
- 向量索引存储
- 向量分段存储
- 标量到向量内存一致性
- 可选的PMP
- 虚拟内存(SV48或SV39 MMU由您选择)1
- 向量算术指令解码送至客户的向量单元2
- OVI接口的下级一侧。
- 向量单元内的算术单元。
- 向客户向量算术单元下达向量指令的向量逻辑。
OVI.fifo 协议
当您仍然想借助RISC-V向量工具链及生态系统且仍然将一个定制的计算引擎与一个
RISC-V向量单元连接时,Semidynamics已经开发了OVI接口的OVI.fifo简化版,如下图所示。
正如所示,您现在只需要按自身需求实现定制扩展,而Semidynamics提供
内核以及一个完全符合RISC-V标准的向量单元。一个非常简单的fifo风格push/pop接口在
向量单元和您的定制引擎之间被实现。您将需要实现OVI.fifo接口的“下级”一侧以及您的定制逻辑。
开放向量接口(OVI)是一个描述如何将客户自有向量单元连接至Atrevido或Avispado内核的开源规范。