[发明专利]一种实现可快速释放的VLV访存阵列的方法有效
申请号: | 201910120309.7 | 申请日: | 2019-02-18 |
公开(公告)号: | CN109992411B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 费晓龙;王磊 | 申请(专利权)人: | 华夏芯(北京)通用处理器技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京科家知识产权代理事务所(普通合伙) 11427 | 代理人: | 陈娟 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 快速 释放 vlv 阵列 方法 | ||
本发明公开了软件程序技术领域的一种实现可快速释放的VLV访存阵列的方法,包括如下步骤:步骤一:当每次发生restart的时候,并且已经发送的次数等于返回次数时,ID依然保持不变,下一个push进来的请求依然使用现有ID;步骤二:当每次发生restart,a:释放现有entry;步骤三:通过镜像资源用于存储restart未完成得请求时复制出来的请求信息,发送和接收counter;步骤四:接收counter会在被复制到镜像资源以后,继续monitor返回的响应;步骤五:如果操作激进,并释放ID的同一个周期把ID重新复制回有restarted标志的entry;步骤六:通过Free‑list维护ID的分配和回收;本发明用最小的开销,提升有限的硬件资源的利用率,快速释放乱序资源,减少不必要的资源阻塞。
技术领域
本发明公开了一种实现可快速释放的VLV访存阵列的方法,具体为软件程序技术领域。
背景技术
VLV(variable length vector)是目前比较新颖的一种向量指令的架构设计,兼顾了软件程序的可扩展性,兼容性和简洁性,轻松实现一套指令集迎合未来较长时间的应用需求,作为VLV的访存单元,其性能决定了核的存储带宽,间接的影响执行效率。
VLV支持1-1KB的存取以及向量运算,可支持多笔load乱序访存,一旦乱序资源不够,会造成VLV的阻塞。每次流水线restart刷乱序队列的时候,VLV内部资源并不可以被立即释放,需要等待已经发射出去的访存请求全部返回,才可以把曾经标记了restart标志的entry释放掉,否则后面的请求会因为错误的匹配而接收到错误的数据,如果采用乱序ID与乱序资源对等的方式,硬件开销过大,为此,我们提出了一种实现可快速释放的VLV访存阵列的方法投入使用,以解决上述问题。
发明内容
针对上述缺陷,本发明的目的在于提供一种快速释放乱序资源,用最小的开销,提升有限的硬件资源利用率的可快速释放的VLV访存阵列的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种实现可快速释放的VLV访存阵列的方法,包括如下步骤:
步骤一:当每次发生restart的时候,并且已经发送的次数等于返回次数时,ID依然保持不变,下一个push进来的请求依然使用现有ID;
步骤二:当每次发生restart,并且entry已经发送的次数不等于返回次数时,如果镜像资源没有满,进行以下特殊操作:
a:释放现有entry;
b:把entry的ID、发送counter、返回counter复制到另一个结构中;
c:从free list选出N个status为非busy的ID,并把busy置位,填到entry的ID域;
步骤三:通过镜像资源用于存储restart未完成得请求时复制出来的请求信息,包括请求的ID、发送counter和接收counter;
步骤四:接收counter会在被复制到镜像资源以后,继续monitor返回的响应,并完成自加过程,一旦发送和接收相同,释放当前镜像资源和ID,free-list会根据释放的ID完成更新操作;
步骤五:如果操作激进,并且当前释放的镜像资源是唯一可用的资源,可以在释放ID的同一个周期把ID重新复制回有restarted标志的entry,完成和entry信息的互换;
步骤六:通过Free-list维护ID的分配和回收,每次push request的时候分配ID,正常释放entry的时候回收ID,或者镜像资源中完成请求的时候回收ID。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华夏芯(北京)通用处理器技术有限公司,未经华夏芯(北京)通用处理器技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910120309.7/2.html,转载请声明来源钻瓜专利网。