[发明专利]一种面向相变存储器的写请求优化装置有效
申请号: | 201710693791.4 | 申请日: | 2017-08-14 |
公开(公告)号: | CN107506139B | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 黄林鹏;朱燕民;沈艳艳;施扬;薛栋梁 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种面向相变存储器的写请求优化装置,包括脏数据标记模块、访存请求生成模块、访存请求调度模块和访存请求执行模块。当最后一级缓存向内存写入脏数据时,若脏数据与内存中的原数据不相同,则产生部分预写请求,访存请求调度模块将部分预写请求发送至访存请求执行模块,访存请求执行模块利用部分预写请求的写入数据执行SET操作。由于需要SET操作的位置已经预先被部分预写请求执行SET操作了,使得,访存请求执行模块真正执行写请求时,只会执行RESET操作,从而大幅减少了写请求的执行时间,与此同时,部分预写请求只会对脏字进行SET操作,而非整个脏的内存行,从而极大减少对相变存储器的写操作次数,降低对相变存储器介质寿命的影响。 | ||
搜索关键词: | 一种 面向 相变 存储器 请求 优化 装置 | ||
【主权项】:
一种面向相变存储器的写请求优化装置,其特征在于,包括:脏数据标记模块、访存请求生成模块、访存请求调度模块和访存请求执行模块;所述脏数据标记模块包括第一级缓存和第二级缓存,所述访存请求生成模块包括最后一级缓存;所述第一级缓存执行以下操作:接收CPU的读写请求,所述读写请求含有读写物理地址;根据所述读写物理地址中第一级缓存规定的组索引确定第一级缓存中的缓存行组,在所述缓存行组中逐一遍历查找与所述读写物理地址中第一级缓存规定的标志相同的缓存行,若查找到某一缓存行且查找到的缓存行的有效位置位,则根据所述读写物理地址中的缓存块的偏移值将数据从所述缓存行读出或向所述缓存行中写入数据,且向所述缓存行中写入数据时将所述缓存行中相应字的脏位置位;若未查找到相同标志的缓存行或查找到的缓存行的有效位未置位,所述第一级缓存向所述第二级缓存发出一个读请求;第二级缓存接受读请求,并将新数据发送至第一级缓存中时,若所述缓存行组中没有空闲的缓存行,则所述第一级缓存选择所述缓存行组中的某一缓存行,并将其内容清空;若选择的缓存行中的脏位被置位时,所述第一级缓存向所述第二级缓存发出一个写请求,所述写请求将选择的缓存行中的缓存块写回所述第二级缓存,写回后,将新数据写入到所述缓存行中,接着,所述第一级缓存重新执行CPU的读写请求;所述第二级缓存执行以下操作:所述第二级缓存接收所述第一级缓存发出的读写请求时,根据读写物理地址中第二级缓存规定的组索引确定第二级缓存中的缓存行组,在所述缓存行组中逐一遍历查找与所述读写物理地址中第二级缓存规定的标志相同的缓存行,若查找到某一缓存行且查找到的缓存行的有效位置位,则根据所述读写物理地址中的缓存块的偏移值将数据从所述缓存行读出或向所述缓存行中写入数据,且向所述缓存行中写入数据时更新所述缓存行中的脏位;若未查找到相同标志的缓存行或查找到的缓存行的有效位未置位,所述第二级缓存向所述最后一级缓存发出一个读请求;最后一级缓存接受读请求,并将新数据发送至第二级缓存中时,若所述缓存行组中没有空闲的缓存行,则所述第二级缓存选择所述缓存行组中的某一缓存行,若选择的缓存行中的脏位被置位时,所述第二级缓存向所述最后一级缓存发出一个写请求,所述写请求将选择的缓存行中的缓存块写回所述最后一级缓存,写回后,将新数据写入到所述缓存行中,接着,所述第二级缓存重新执行第一级缓存的读写请求;所述访存请求生成模块执行以下操作:所述最后一级缓存接收所述第二级缓存发出的读写请求时,根据读写物理地址中最后一级缓存规定的组索引确定最后一级缓存中的缓存行组,在所述缓存行组中逐一遍历查找与所述读写物理地址中最后一级缓存规定的标志相同的缓存行,若查找到某一缓存行且查找到的缓存行的有效位置位,则根据所述读写物理地址中的缓存块的偏移值将数据从所述缓存行读出或向所述缓存行中写入数据,且向所述缓存行中写入数据时更新所述缓存行中的脏位,判断所述缓存行中更新后的脏位与原脏位是否相同,若不同,产生部分预写请求,并将其发送至访存请求调度模块;若未查找到相同标志的缓存行或查找到的缓存行的有效位未置位,所述最后一级缓存向所述访存请求调度模块发出一个访存读请求;若所述缓存行组中没有空闲的缓存行,则所述最后一级缓存选择所述缓存行组中的某一缓存行,若选择的缓存行中的脏位被置位时,所述最后一级缓存向所述访存请求调度模块发出一个访存写请求,所述访存写请求将选择的缓存行中的缓存块写回相变存储器中,写回后,所述最后一级缓存重新执行第二级缓存的读写请求;所述访存请求调度模块执行以下操作:所述访存请求调度模块包括读队列、写队列和部分预写队列,所述访存请求调度模块根据预设的优先级将所述读队列、写队列和部分预写队列发送至所述访存请求执行模块;所述访存请求执行模块执行以下操作:若接收到读请求,根据读请求中的内存行索引,将相应的内存行数据发送到所述最后一级缓存中;若接收到写请求,根据写请求中的内存行索引,将写请求中的数据写入相应的内存行;若接收到部分预写请求,根据预写请求中的内存行索引,找到相应的内存行,根据部分预写请求的写入数据对内存行中相应的字执行SET操作或不执行任何操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710693791.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种固态硬盘提升寿命的方法
- 下一篇:一种用于存储系统的数据访问方法和系统