用于向量运算的数据读写调度器及保留站制造技术

技术编号:15895199 阅读:48 留言:0更新日期:2017-07-28 19:45
本发明专利技术提供了一种用于向量运算的数据读写调度器及保留站。在该数据读写调度器中,通过设置读取指令缓存模块和写入指令缓存模块,并基于两者相互探测冲突指令,在存在冲突的情况下,暂停指令的执行,待时机满足后重新执行指令,从而解决指令之间的读后写冲突和写后读冲突,保证提供给向量运算部件正确的数据,具有较好的推广应用价值。

Data read and write scheduler and stop station for vector operation

The invention provides a data read and write scheduler and a reserved station for vector operation. In the read and write data by setting the scheduler, read the instruction cache module and write instruction cache module, and based on the two conflict detection instructions in the presence of conflict situations, to suspend the execution of the instruction, when the time to meet again after the execution of the instruction, so as to solve the instruction between reading and read after write write conflict conflict, guarantee provide correct data vector components, has good application value.

【技术实现步骤摘要】
用于向量运算的数据读写调度器及保留站
本专利技术涉及计算机
,尤其涉及一种用于向量运算的数据读写调度器及保留站。
技术介绍
向量运算尤其是矩阵运算,被广泛用于机器学习,模式识别,图像处理,图计算等领域。特别是近年来发展起来的深度学习算法,由于这些深度学习算法具有较高的识别准确度以及较好的可并行性,受到日益增多的关注。向量读写指令会在单个指令内部同时读写多个数据,多个向量读写指令之间往往由于算法的原因,存在相互依赖关系,一方面向量读写指令之后可能会存在与之读取地址有交叠的向量写入指令,即读后写冲突,另一方面向量写入指令之后可能会存在与之写入地址有交叠的向量读取指令,即写后读冲突。此外,由于向量读写指令的读写数据连续性,因而利用其该特性可以加快数据读写速率。对于目前的常用的图形处理器,其可以支持各种复杂的向量运算,通过通用寄存器堆和通用流处理单元执行通用的SIMD指令来支持向量运算。但是,由于其主要执行图形图像运算,而且通过大量的额外寄存器来缓存读取数据,以及大量的计算部件来并行读取与执行计算,因而,其不仅需要RAM支持多个读写通道,增加了片上RAM的大小限制,同时,在计算部件有限本文档来自技高网...
用于向量运算的数据读写调度器及保留站

【技术保护点】
一种用于向量运算的数据读取调度器,其特征在于,包括:指令缓存(310),用于缓存向量读取指令;读取指令预处理模块(320),包括至少一读取指令预处理单元,该读取指令预处理单元接收由指令缓存(310)输出的向量读取指令,检测该向量读取指令与写入指令缓存模块(350)中存放的向量写入指令之间是否存在写后读冲突,如果是,则将存在写后读冲突的向量写入指令作为该向量读取指令依赖的向量写入指令;读取指令缓存模块(340),包括至少一读取指令缓存单元,该读取指令缓存单元用于接收并缓存向量读取指令与其依赖的向量写入指令,并且依据从读取控制模块得到的该向量读取指令的执行状态以及从写入控制模块得到的其依赖的向量写...

【技术特征摘要】
1.一种用于向量运算的数据读取调度器,其特征在于,包括:指令缓存(310),用于缓存向量读取指令;读取指令预处理模块(320),包括至少一读取指令预处理单元,该读取指令预处理单元接收由指令缓存(310)输出的向量读取指令,检测该向量读取指令与写入指令缓存模块(350)中存放的向量写入指令之间是否存在写后读冲突,如果是,则将存在写后读冲突的向量写入指令作为该向量读取指令依赖的向量写入指令;读取指令缓存模块(340),包括至少一读取指令缓存单元,该读取指令缓存单元用于接收并缓存向量读取指令与其依赖的向量写入指令,并且依据从读取控制模块得到的该向量读取指令的执行状态以及从写入控制模块得到的其依赖的向量写入指令的执行状态,动态更新其缓存的向量读取指令的状态,并发射符合条件的向量读取指令;读取控制模块(360),包括至少一读取控制单元,该读取控制单元在接收到读取指令缓存单元发射的向量读取指令,从其中解析出具体的单次读取请求,依据该向量读取指令所依赖的向量写入指令的状态决定执行单次读取请求的时机,在时机满足时,发送单次读取请求给片上RAM,从片上RAM接收的输入数据,将该输入数据存入读取数据缓存模块(380)中,等待向量运算部件使用。2.根据权利要求1所述的数据读取调度器,其特征在于,所述读取指令预处理单元将所述向量读取指令涉及数据的起始、结束地址依次和写入指令缓存中存放的向量写入指令涉及数据的起始、结束地址进行比较,如果涉及数据在地址范围上存在交集,则判断两者存在写后读冲突。3.根据权利要求1所述的数据读取调度器,其特征在于,所述读取指令预处理单元在检测到所述向量读取指令与写入指令缓存(350)中存放的多个向量写入指令之间存在写后读冲突时,将涉及数据最近邻的向量写入指令作为该向量读取指令依赖的向量写入指令。4.根据权利要求1所述的数据读取调度器,其特征在于,所述读取指令预处理模块(320)包括多个读取指令预处理单元,用于并行地对向量读取指令进行预处理。5.根据权利要求1所述的数据读取调度器,其特征在于,所述读取指令缓存模块(340)动态更新其缓存的向量读取指令的状态包括:(1)当新的向量读取指令进入队列中时,更新该向量读取指令的状态为“待发射”;(2)当一向量读取指令依赖的向量写入指令正在执行或执行结束时,更新该向量读取指令的状态为“可发射”(3)当一向量读取指令的状态为“可发射”,并且其之前的向量读取指令发射结束后,发射该向量读取指令,更新该向量读取指令的状态为“执行中”;(4)当一向量读取指令的所有单次读取请求都已经被读取控制单元发射后,更新该向量读取指令的状态为“已发射”;(5)当一向量读取指令的所有单次读取请求都已经被片上RAM处理,并且返回结果之后,更新该向量读写指令的状态为“执行结束”。6.根据权利要求1所述的数据读取调度器,其特征在于,所述读取控制单元依据该向量读取指令所依赖的向量写入指令的状态来决定执行单次读取请求的时机具体为判断是否同时满足如下三个条件,如果是,则时机满足,否则,时机不满足:(1)该向量读取指令依赖的向量写入指令的状态为“执行结束”或“执行中”且当前写入地址已经超过当前单次读取请求的地址,或者其状态为“执行中”且其结束地址已被当前的当前单次读取请求的地址超越;(2)当前读取控制单元的数据队列未满;(3)当前片上RAM可接收单次读取请求。7.一种用于向量运算的数据写入调度器,其特征在于,包括:指令缓存(310),用于缓存向量写入指令;写入数据缓存(390),用于缓存需要写入片上RAM(200)的写入数据;写入指令预处理单元(330),用于接收由指令缓存(310)输入的向量写入指令,检测该向量写入指令和读取指令缓存模块(340)中存放的向量读取指令之间是否存在读后写冲突,如果是,则将存在读后写冲突的向量读取指令作为给向量写入指令依赖的向量读取指令;写入指令缓存单元(350),用于接收写入指令预处理单元(330)处理得到的向量写入指令,并且依据读取控制模块(360)和写入...

【专利技术属性】
技术研发人员:韩栋刘少礼陈云霁陈天石
申请(专利权)人:南京艾溪信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1