CN112667534A - 缓冲存储装置、处理器及电子设备 - Google Patents
缓冲存储装置、处理器及电子设备 Download PDFInfo
- Publication number
- CN112667534A CN112667534A CN202011626198.6A CN202011626198A CN112667534A CN 112667534 A CN112667534 A CN 112667534A CN 202011626198 A CN202011626198 A CN 202011626198A CN 112667534 A CN112667534 A CN 112667534A
- Authority
- CN
- China
- Prior art keywords
- cache
- unit
- target
- selection
- units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种缓冲存储装置、处理器及电子设备。缓冲存储装置中第一级替换模块在目标缓存组包括的N个缓存单元中存在满足目标服务质量要求,且无效的缓存单元时,从满足目标服务质量要求且无效的缓存单元中选取出一条目标缓存单元,第二级替换模块在目标缓存组包括的N个缓存单元中不存在满足目标服务质量要求,且无效的缓存单元时,从目标缓存组包括的N个缓存单元中,随机选取出一条中间待选缓存单元,并在中间待选缓存单元满足目标服务质量要求时,将中间待选缓存单元作为目标缓存单元,第三级替换模块在中间待选缓存单元不满足目标服务质量要求时,重新选取目标缓存单元。本申请实施例提供的缓冲存储装置能够提高缓冲存储装置的命中率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种缓冲存储装置、处理器及电子设备。
背景技术
随着计算机技术和网络技术的不断发展,应用程序的类型日益增加,而不同类型的应用程序往往具有不同的服务质量要求,会为其设置不同的优先级,再根据应用程序的优先级,为其分配不同的终极缓存资源,而终极缓存资源的分配有可能是不连续的。现有技术中,在目标应用程序的运行过程中,在对终极缓存中满足目标服务质量要求(目标应用程序对应的服务质量要求)的缓存单元进行数据替换时,通常是通过伪随机替换策略,多次从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为目标缓存单元,直至选取出的目标缓存单元满足目标服务质量要求为止,而该过程往往耗时较长,最终,影响终极缓存的命中率。
发明内容
本申请的目的在于,提供一种缓冲存储装置、处理器及电子设备,以解决上述问题。
第一方面,本申请实施例提供的缓冲存储装置包括第一级替换模块、第二级替换模块和第三级替换模块;
第一级替换模块用于在目标缓存组包括的N个缓存单元中存在满足目标服务质量要求,且无效的缓存单元时,从满足目标服务质量要求,且无效的缓存单元中选取出一个缓存单元,作为目标缓存单元,N=2M,M≥0,且为整数;
第二级替换模块用于在目标缓存组包括的N个缓存单元中不存在满足目标服务质量要求,且无效的缓存单元时,从目标缓存组包括的N个缓存单元中随机选取出一个缓存单元,作为中间待选缓存单元,并在中间待选缓存单元满足目标服务质量要求时,将中间待选缓存单元作为目标缓存单元;
第三级替换模块用于在中间待选缓存单元不满足目标服务质量要求时,从预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中选取出目标分组,并从目标分组中选取出一个满足目标服务质量的缓冲单元作为目标缓存单元。
结合第一方面,本申请实施例还提供了第一方面的第一种可选的实施方式,第一级替换模块包括多级第一选择单元,多级第一选择单元级联;
多级第一选择单元中,每级第一选择单元用于从第一目标数量个缓存单元中,选取出第二目标数量个缓存单元;
其中,在第一目标数量个缓存单元中存在满足目标服务质量要求,且无效的缓存单元时,满足目标服务质量要求,且无效的缓存单元中至少部分缓存单元包含于第二目标数量个缓存单元中,且针对多级第一选择单元中的每级第一选择单元,若第一选择单元为多级第一选择单元中的首级第一选择单元,则第一选择单元对应的第一目标数量个缓存单元为目标缓存组包括的N个缓存单元,若第一选择单元非多级第一选择单元中的首级第一选择单元,则第一选择单元对应的第一目标数量个缓存单元为第一选择单元的上一级第一选择单元选取出的多个缓存单元。
结合第一方面的第一种可选的实施方式,本申请实施例还提供了第一方面的第二种可选的实施方式,第一选择单元包括多个第一选择子单元;
针对多级第一选择单元中的每级第一选择单元,第一选择单元包括的多个第一选择子单元中,每个第一选择子单元与第一选择单元对应的第一目标数量个缓存单元中包括的至少两个缓存单元对应,且第一选择子单元用于从对应的至少两个缓存单元中选取出一个缓存单元,作为第一初步待选缓存单元。
结合第一方面的第二种可选的实施方式,本申请实施例还提供了第一方面的第三种可选的实施方式,针对多级第一选择单元中的每级第一选择单元,第一选择单元包括的多个第一选择子单元中,每个第一选择子单元又包括第一选择控制器和第一数据选择器;
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,第一选择子单元中,第一选择控制器用于根据第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得第一选择子单元中,第一数据选择器的选择控制信号,第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志用于表征缓存单元是否为满足目标服务质量要求,且无效的缓存单元;
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,第一选择子单元中,第一数据选择器用于根据对应的选择控制信号,从第一选择子单元对应的至少两个缓存单元中选取出第一初步待选缓存单元;
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,第一选择子单元中,第一选择控制器还用于根据第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得对应的第一初步待选缓存单元的可用标志,第一初步待选缓存单元的可用标志用于表征第一初步待选缓存单元是否为满足目标服务质量要求,且无效的缓存单元。
结合第一方面的第三种可选的实施方式,本申请实施例还提供了第一方面的第四种可选的实施方式,针对多级第一选择单元中的末级第一选择单元,若末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元为满足目标服务质量要求,且无效的缓存单元,则表征目标缓存组包括的N个缓存单元中存在满足目标服务质量要求,且无效的缓存单元,并将末级第一选择单元中,第一数据选择器选取出的第一初步待选缓存单元作为目标缓存单元;
针对多级第一选择单元中的末级第一选择单元,若末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元非满足目标服务质量要求,且无效的缓存单元,则表征目标缓存组包括的N个缓存单元中不存在满足目标服务质量要求,且无效的缓存单元。
结合第一方面,本申请实施例还提供了第一方面的第五种可选的实施方式,第二级替换模块包括伪随机替换单元和判断单元;
伪随机替换单元用于在目标缓存组包括的N个缓存单元中,不存在满足目标服务质量要求,且无效的缓存单元时,通过伪随机替换策略,从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为中间待选缓存单元;
判断单元用于判断中间待选缓存单元是否满足目标服务质量要求,以在中间待选缓存单元满足目标服务质量要求时,将中间待选缓存单元,作为目标缓存单元。
结合第一方面的第五种可选的实施方式,本申请实施例还提供了第一方面的第六种可选的实施方式,伪随机替换单元包括多级触发器、第一非门、异或门和第二数据选择器;
多级触发器级联,且多级触发器中,末级触发器的输出端通过第一非门与异或门的第一输入端连接,多级触发器中,除末级触发器之外的任意触发器的输出端与异或门的第二输入端连接,异或门的输出端与多级触发器中,首级触发器的输入端连接;
第二数据选择器的多个输入端分别与多级触发器的输出端连接,用于从多级触发器的输出信号中选取出第三目标数量条输出信号,作为中间待选缓存单元的第一组内标识号。
结合第一方面,本申请实施例还提供了第一方面的第七种可选的实施方式,目标分组为第一目标分组或第二目标分组,第一目标分组为预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,包括中间待选缓存单元的缓存分组,第二目标分组中存在满足目标服务质量要求的缓存单元,第三级替换模块包括第一组内选取单元和可用组判断单元;
第一组内选取单元用于在中间待选缓存单元不满足目标服务质量要求,而第一目标分组中存在满足目标服务质量要求的缓存单元时,从第一目标分组中选取出一条满足目标服务质量要求的缓存单元,作为目标缓存单元;
可用组判断单元用于在第一目标分组中不存在满足目标服务质量要求的缓存单元时,从多组缓存分组中,选取出第二目标分组,并在第二目标分组中,选取出一条满足目标服务质量要求的缓存单元,作为目标缓存单元。
结合第一方面的第七种可选的实施方式,本申请实施例还提供了第一方面的第八种可选的实施方式,第一组内选取单元第一移位选取单元和第一判断单元;
第一移位选取单元用于在中间待选缓存单元不满足目标服务质量要求时,在第一目标分组中,从与中间待选缓存单元相邻的缓存单元起,按照排列位置依次选取缓存单元,作为待判断缓存单元;
第一判断单元用于在第一移位选取单元每选取出一条待判断缓存单元时,判断待判断缓存单元是否满足目标服务质量要求,若待判断缓存单元满足目标服务质量要求,则将待判断缓存单元,作为目标缓存单元,若待判断缓存单元不满足目标服务质量要求,则控制第一移位选取单元选取新的待判断缓存单元。
结合第一方面的第七种可选的实施方式,本申请实施例还提供了第一方面的第九种可选的实施方式,可用组判断单元包括第二移位选取单元、第二判断单元和目标获取单元;
第二移位选取单元用于在第一目标分组中不存在满足目标服务质量要求的缓存单元时,在多组缓存分组中,从与第一目标分组相邻的缓存分组起,按照排列位置依次选取缓存分组,作为待判断缓存分组;
第二判断单元用于在第二移位选取单元每选取出一组待判断缓存分组时,判断待判断缓存分组中是否存在满足目标服务质量要求的缓存单元,若待判断缓存分组中存在满足目标服务质量要求的缓存单元,则将待判断缓存分组,作为第二目标分组,若待判断缓存分组中不存在满足目标服务质量要求的缓存单元,则控制第二移位选取单元选取新的待判断缓存分组;
目标获取单元用于在从第二目标分组中,选取出一条满足目标服务质量要求的一个缓存单元作为终级待选缓存单元之后,将终级待选缓存单元作为目标缓存单元。
结合第一方面的第九种可选的实施方式,本申请实施例还提供了第一方面的第十种可选的实施方式,目标获取单元包括第三数据选择器和多个第二组内选取单元,多个第二组内选取单元与多组缓存分组一一对应;
针对多个第二组内选取单元中的每个第二组内选取单元,第二组内选取单元用于在对应的缓存分组中存在满足目标服务质量要求的缓存单元时,从对应的缓存分组中选取出一条满足目标服务质量要求的缓存单元作为终级待选缓存单元;
第三数据选择器用于从多组缓存分组中确定出第二目标分组,并将第二目标分组对应的终级待选缓存单元作为目标缓存单元。
第二方面,本申请实施例还提供了一种处理器,包括第一方面,或第一方面的任意一项所提供的缓冲存储装置。
第三方面,本申请实施例还提供一种电子设备,包括第二方面所提供的处理器。
本申请实施例提供的缓冲存储装置包括第一级替换模块、第二级替换模块和第三级替换模块。其中,第一级替换模块用于在目标缓存组包括的N个缓存单元中存在满足目标服务质量要求,且无效的缓存单元时,从满足目标服务质量要求,且无效的缓存单元中选取出一个缓存单元,作为目标缓存单元,N=2M,M≥0,且为整数,第二级替换模块用于在目标缓存组包括的N个缓存单元中不存在满足目标服务质量要求,且无效的缓存单元时,从目标缓存组包括的N个缓存单元中随机选取出一个缓存单元,作为中间待选缓存单元,并在中间待选缓存单元满足目标服务质量要求时,将中间待选缓存单元作为目标缓存单元,第三级替换模块用于在中间待选缓存单元不满足目标服务质量要求时,从预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中选取出目标分组,并从目标分组中选取出一个满足目标服务质量的缓冲单元作为目标缓存单元。显然,基于本申请实施例提供的缓冲存储装置,在目标应用程序的运行过程中,在对缓冲存储装置中满足目标服务质量要求(目标应用程序对应的服务质量要求)的缓存单元进行数据替换时,能够通过三级替换模块,最终选取出满足目标服务质量要求的目标缓存单元,再用于数据替换,由于三级替换模块采用的替换策略是不同的,因此,相对于现有技术中,仅通过伪随机替换策略,多次从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为目标缓存单元,直至选取出的目标缓存单元满足目标服务质量要求为止的方案而言,耗时较短,那么,选取出目标缓存单元,以使目标缓存单元成功映射与目标应用程序相关数据的总耗时也会相对减少,最终,提高了缓冲存储装置的命中率。
本申请实施例提供的处理器和电子设备具有与上述缓冲存储装置相同的有益效果,本申请实施例对此不作赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种缓冲存储装置的组织结构示意图。
图2为本申请实施例提供的一种缓冲存储装置的示意性结构框图。
图3为本申请实施例提供的一种第一级替换模块的辅助性工作原理说明图。
图4A为本申请实施例提供的一种第一级替换模块的一部分电路结构示意图。
图4B为图4A所示第一级替换模块的另一部分电路结构示意图。
图5为本申请实施例提供的一种第一选择控制器的电路结构示意图。
图6为本申请实施例提供的一种第二级替换模块的示意性结构框图。
图7为本申请实施例提供的一种伪随机替换单元的电路结构示意图。
图8为本申请实施例提供的一种第三级替换模块的示意性结构框图。
图9为本申请实施例提供的一种第一组内选取单元的示意性结构框图。
图10为本申请实施例提供的一种第一组内选取单元的电路结构示意图。
图11为本申请实施例提供的一种可用组判断单元的示意性结构框图。
图12为本申请实施例提供的一种可用组判断单元的电路结构示意图。
图13为本申请实施例提供的一种目标获取单元的辅助性工作原理说明图。
图14为本申请实施例提供的一种第二组内选取单元的电路结构示意图。
图15为本申请实施例提供的一种第二选择控制器的电路结构示意图。
部分附图标号:100-缓冲存储装置;110-第一级替换模块;111-首级第一选择单元;112-第二级第一选择单元;113-第三级第一选择单元;114-末级第一选择单元;120-第二级替换模块;121-伪随机替换单元;DN-触发器;Not1-第一非门;Xor-异或门;Mux-15-第二数据选择器;122-判断单元;130-第三级替换模块;131-第一组内选取单元;1311-第一移位选取单元;1312-第一判断单元;132-可用组判断单元;1321-第二移位选取单元;1322-第二判断单元;1323-目标获取单元;Mux-18-第三数据选择器;13231-第二组内选取单元;132311-首级第二选择单元;132312-末级第二选择单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对现有技术和本申请实施例中的技术方案进行描述。此外,应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先,需要说明的是,本申请实施例中,缓冲存储装置100可以理解为高速缓冲存储装置(Cache),在实际实施时,若处理器为多Cache处理器,则缓冲存储装置100可以作为终极缓存(Last Level Cache,LLC),也即,作为一级Cache与二级Cache通信,若处理器仅包括缓冲存储装置100,而不包括其他Cache,则缓冲存储装置100可以作为LLC,也即,作为一级Cache直接与内存通信,而内存则与外部存储器通信。其中,内存可以是随机存取存储器(Random Access Memor,RAM)、只读存储器(Read-Only Memory,ROM)、双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDRSDRAM),外部存储器可以是硬盘、光盘等存储器件。
请参阅图1,为缓冲存储装置100的组织结构示意图,缓冲存储装置100包括Z组缓存组(Set),而每组缓存组(Set)包括N个缓存单元(Cacheline),其中,Z≥1,且为整数,N=2M,M≥0,且为整数。
请结合图2,具体到本申请实施例中,缓冲存储装置100除具有图1所示的组织结构以外,还包括第一级替换模块110、第二级替换模块120和第三级替换模块130。
第一级替换模块110用于在目标缓存组包括的N个缓存单元中存在满足目标服务质量(Quality of Service,QoS)要求(目标应用程序对应的QoS要求),且无效的缓存单元时,从满足目标QoS要求,且无效的缓存单元中选取出一个缓存单元,作为目标缓存单元。其中,目标缓存组为组成缓冲存储装置100的Z组缓存组(Set)中的任意一组缓存组(Set),而对于某个缓存单元,其是否满足目标QoS要求,可以通过判断为目标应用程序分配的LLC资源中是否包括该缓存单元确定。例如,若为目标应用程序分配的LLC资源中包括缓存单元Cacheline0,则缓存单元Cacheline0为满足目标QoS要求的缓存单元。再例如,若为目标应用程序分配的LLC资源中不包括缓存单元Cacheline0,则缓存单元Cacheline0非满足目标QoS要求的缓存单元。此外,无效的缓存单元可以理解为未被占用的缓存单元。
第二级替换模块120用于在目标缓存组包括的N个缓存单元中不存在满足目标QoS要求,且无效的缓存单元时,从目标缓存组包括的N个缓存单元中随机选取出一个缓存单元,作为中间待选缓存单元,并在中间待选缓存单元满足目标QoS要求时,将中间待选缓存单元作为目标缓存单元。
第三级替换模块130用于在中间待选缓存单元不满足目标QoS要求时,从预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,选取出目标分组,并从目标分组中选取出一个满足目标QoS的缓冲单元作为目标缓存单元。
本申请实施例中,第一级替换模块110包括多级第一选择单元,多级第一选择单元级联。
多级第一选择单元中,每级第一选择单元用于从第一目标数量个缓存单元中,选取出第二目标数量个缓存单元。其中,在第一目标数量个缓存单元中存在满足目标QoS要求,且无效的缓存单元时,满足目标QoS要求,且无效的缓存单元中至少部分缓存单元包含于第二目标数量个缓存单元中,且针对多级第一选择单元中的每级第一选择单元,若该级第一选择单元为多级第一选择单元中的首级第一选择单元,则第一选择单元对应的第一目标数量个缓存单元为目标缓存组包括的N个缓存单元,若第一选择单元非多级第一选择单元中的首级第一选择单元,则第一选择单元对应的第一目标数量个缓存单元为第一选择单元的上一级第一选择单元选取出的多个缓存单元。
此外,需要说明的是,本申请实施例中,第一目标数量相对于第二目标数量的倍数值,具体可以在缓冲存储装置100的电路结构设计阶段,通过改变多级第一选择单元中,每级第一选择单元的电路结构实现调整,本申请实施例对此不作具体限制。
请结合图3,假设,第一目标数量相对于第二目标数量的倍数值为2,且N的取值为16,也即,目标缓存组包括16个缓存单元,那么,第一级替换模块110需要包括四级第一选择单元,为方便描述,本申请实施例中,可以将四级第一选择单元分别定义为首级第一选择单元111、第二级第一选择单元块112、第三级第一选择单元113和末级第一选择单元114,如此,首级第一选择单元111则用于从目标缓存组包括的16个缓存单元中选取出8个缓存单元,第二级第一选择单元112则用于从首级第一选择单元111选取出的8个缓存单元中选取出4个缓存单元,第三级第一选择单元113则用于从第二级第一选择单元112选取出的4个缓存单元中选取出2个缓存单元,末级第一选择单元114则用于从第三级第一选择单元113选取出的2个缓存单元中选取出1个缓存单元。
本申请实施例中,针对多级第一选择单元中的每级第一选择单元,该级第一选择单元又可以包括的多个第一选择子单元,且针对多级第一选择单元中的每级第一选择单元,该级第一选择单元包括的多个第一选择子单元中,每个第一选择子单元与该级第一选择单元对应的第一目标数量个缓存单元中包括的至少两个缓存单元对应,且第一选择子单元用于从对应的至少两个缓存单元中选取出一个缓存单元,作为第一初步待选缓存单元。
基于以上描述,可以理解的是,本申请实施例中,在第一目标数量相对于第二目标数量的倍数值确定的情况下,针对多级第一选择单元中的每级第一选择单元,若该级第一选择单元为首级第一选择单元111,则其包括的第一选择子单元的数量,具体可以根据目标缓存组中包括的缓存单元数量确定,若该级第一选择单元非首级第一选择单元111,则其包括的第一选择子单元的数量,具体可以根据该级第一选择单元的上一级第一选择单元选取出的缓存单元数量确定。
继续以第一目标数量相对于第二目标数量的倍数值为2,且N的取值为16,也即,目标缓存组包括16个缓存单元为例,首级第一选择单元111需要包括8个第一选择子单元,首级第一选择单元111用于从目标缓存组包括的16个缓存单元中选取出8个缓存单元,也即,首级第一选择单元111选取出的缓存单元数量为8,则第二级第一选择单元112需要包括4个第一选择子单元,第二级第一选择单元112用于从首级第一选择单元111选取出的8个缓存单元中选取出4个缓存单元,也即,第二级第一选择单元112选取出的缓存单元数量为4,则第三级第一选择单元113需要包括2个第一选择子单元,第三级第一选择单元113用于从第二级第一选择单元112选取出的4个缓存单元中选取出2个缓存单元,也即,第三级第一选择单元113选取出的缓存单元数量为2,则末级第一选择单元114需要包括1个第一选择子单元,用于从第三级第一选择单元113选取出的2个缓存单元中选取出1个缓存单元。
进一步地,本申请实施例中,针对多级第一选择单元中的每级第一选择单元,该级第一选择单元包括的多个第一选择子单元中,每个第一选择子单元又包括第一选择控制器和第一数据选择器。
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,该第一选择子单元中,第一选择控制器用于根据该第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得该第一选择子单元中,第一数据选择器的选择控制信号。其中,该第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志用于表征该个缓存单元是否为满足目标QoS要求,且无效的缓存单元。此外,需要说明的是,本申请实施例中,对于任意缓存单元,若其为满足目标QoS要求,且无效的缓存单元,则可以将其可用标志设置为1,若其非满足目标QoS要求,且无效的缓存单元,则可以将其可用标志设置为0。
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,该第一选择子单元中,第一数据选择器用于根据对应的选择控制信号,从该第一选择子单元对应的至少两个缓存单元中选取出第一初步待选缓存单元。
针对第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,该第一选择子单元中,第一选择控制器还用于根据该第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得对应的第一初步待选缓存单元的可用标志,第一初步待选缓存单元的可用标志用于表征该条第一初步待选缓存单元是否为满足目标QoS要求,且无效的缓存单元。
再次以第一目标数量相对于第二目标数量的倍数值为2,也即,针对多级第一选择单元中的每级第一选择单元,该级第一选择单元包括的多个第一选择子单元中,每个第一选择子单元与该级第一选择单元对应的第一目标数量个缓存单元中包括的两个缓存单元对应,且N的取值为16,也即,目标缓存组包括16个缓存单元为例,对应的第一级替换模块110如图4A和图4B所示,且图4A和图4B所示的第一级替换模块110中,首级第一选择单元111包括的第一选择子单元,以及每个第一选择子单元包括的第一选择控制器和第一数据选择器如表1所示,第二级第一选择单元112包括的第一选择子单元,以及每个第一选择子单元包括的第一选择控制器和第一数据选择器如表2所示,第三级第一选择单元113包括的第一选择子单元,以及每个第一选择子单元包括的第一选择控制器和第一数据选择器如表3所示,末级第一选择单元114包括的第一选择子单元,以及每个第一选择子单元包括的第一选择控制器和第一数据选择器如表4所示。
表1
表2
表3
表4
以首级第一选择单元111中包括的第一选择子单元1为例,其包括第一选择控制器SC-0和第一数据选择器Mux-0,由于第一选择子单元1对应目标缓存组包括16个缓存单元中的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1),因此,第一数据选择器Mux-0为二选一数据选择器。
第一选择控制器SC-0用于根据第一选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的可用标志,获得第一选择子单元1中,第一数据选择器Mux-0的选择控制信号Cs 0,其中,第一选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的可用标志用于表征该个缓存单元是否为满足目标QoS要求,且无效的缓存单元。
第一数据选择器Mux-0用于根据对应的选择控制信号Cs 0,从第一选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中选取出第一初步待选缓存单元。
第一选择控制器SC-0还用于根据第一选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的可用标志,获得对应的第一初步待选缓存单元的可用标志Us 0,第一初步待选缓存单元的可用标志Cs 0用于表征该条第一初步待选缓存单元是否为满足目标QoS要求,且无效的缓存单元。
请结合图5,本申请实施例中,第一选择控制器SC-0可以包括第一与门And1、第二与门And2、第二非门Not2、第三与门And3、第一或门Or1和第二或门Or2。
其中,第一与门And1的第一输入端输入用于表征缓存单元Cacheline 0是否满足目标QoS的单元QoS表征信号QoS 0,第一与门And1的第二输入端输入用于表征缓存单元Cacheline 0是否为无效缓存单元的第一有效表征信号Tag Invalid 0,第二与门And2的第一输入端输入用于表征缓存单元Cacheline 1是否满足目标QoS的单元QoS表征信号QoS 1,第二与门And2的第二输入端输入用于表征缓存单元Cacheline 1是否为无效缓存单元的第二有效表征信号Tag Invalid 1,第二非门Not2的输入端与所述第一与门And1的输出端连接,第三与门And3的第一输入端与第二非门Not2的输出端连接,第三与门And3的第二输入端与第二与门And2的输出端连接,第一或门Or1的第一输入端与第一与门And1的输出端连接,第一或门Or1的第二输入端与第二与门And2的输出端连接,第二或门Or2的第一输入端与第二非门Not2的输出端连接,第二或门Or2的第二输入端与第三与门And3的输出端连接,第二或门Or2的输出端用于输出第一数据选择器Mux-0的选择控制信号Cs 0,以供第一数据选择器Mux-0根据该选择控制信号Cs 0,从缓存单元Cacheline 0和缓存单元Cacheline 1中选取出第一初步待选缓存单元,第一或门Or1的输出端用于输出该第一初步待选缓存单元的可用标志Us 0。
此外,本申请实施例中,第一数据选择器Mux-0的具体类型可以根据目标缓存组中缓存单元的具体数量确定,本申请实施例对此不作具体限制。例如,目标缓存组包括16个缓存单元时,第一数据选择器Mux-0可以是输入信号为4比特(bit)位宽的二选一数据选择器。再例如,目标缓存组包括8个缓存单元时,第一数据选择器Mux-0可以是输入信号为3比特(bit)位宽的二选一数据选择器。可以理解的是,本申请实施例中,首级第一选择单元111中包括的其他第一选择子单元、第二级第一选择单元112中包括的第一选择子单元、第三级第一选择单元113中包括的第一选择子单元,以及末级第一选择单元114中包括的第一选择子单元的工作原理与上述首级第一选择单元111中包括的第一选择子单元1的工作原理相同,本申请实施例对此不作赘述。
基于以上描述,可以理解的是,本申请实施例中,针对多级第一选择单元中的末级第一选择单元,若末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元为满足目标QoS要求,且无效的缓存单元,则表征目标缓存组包括的N个缓存单元中存在满足目标QoS要求,且无效的缓存单元,并将末级第一选择单元中,第一数据选择器选取出的第一初步待选缓存单元作为目标缓存单元。对应的,针对多级第一选择单元中的末级第一选择单元,若末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元非满足目标QoS要求,且无效的缓存单元,则表征目标缓存组包括的N个缓存单元中不存在满足目标QoS要求,且无效的缓存单元。
具体到图4A和图4B所示的第一级替换模块110,末级第一选择单元114中包括第一选择子单元14,而第一选择子单元14中包括第一选择控制器SC-14和第一数据选择器Mux-14。
第一选择控制器SC-14用于根据第三级第一选择单元113中,第一选择子单元12选取出的第一初步待选缓存单元的可用标志Us 12和第三级第一选择单元113中,第一选择子单元13选取出的第一初步待选缓存单元的可用标志Us 13,获得第一数据选择器Mux-14的第一选择控制器信号Cs 14。
第一数据选择器Mux-14用于根据对应的第一选择控制器信号Cs 14,从第三级第一选择单元113包括的第一选择子单元12选取出的第一初步待选缓存单元和第三级第一选择单元113包括的第一选择子单元13选取出的第一初步待选缓存单元中,继续选取出最终第一初步待选缓存单元。
第一选择控制器SC-14还用于根据第三级第一选择单元113包括的第一选择子单元12选取出的第一初步待选缓存单元的可用标志Us 12和第三级第一选择单元113包括的第一选择子单元13选取出的第一初步待选缓存单元的可用标志Us 13,获得最终第一初步待选缓存单元的可用标志Us 14,以表征最终第一初步待选缓存单元是否为满足目标QoS要求,且无效的缓存单元。
若最终第一初步待选缓存单元的可用标志Us 14表征该最终第一初步待选缓存单元为满足目标QoS要求,且无效的缓存单元,则表征目标缓存组包括的16个缓存单元中存在满足目标QoS要求,且无效的缓存单元,并将最终第一初步待选缓存单元作为目标缓存单元。对应的,若最终第一初步待选缓存单元的可用标志Us 14表征该最终第一初步待选缓存单元非满足目标QoS要求,且无效的缓存单元,则表征目标缓存组包括的16个缓存单元中不存在满足目标QoS要求,且无效的缓存单元。
继续以第一目标数量相对于第二目标数量的倍数值为2,也即,针对多级第一选择单元中的每级第一选择单元,该级第一选择单元包括的多个第一选择子单元中,每个第一选择子单元与该级第一选择单元对应的第一目标数量个缓存单元中包括的两个缓存单元对应,且N的取值为16,也即,目标缓存组包括16个缓存单元为例,该种情况下,关于第一级替换模块110,最后需要说明的是,本申请实施例中,其逻辑链长度为4级,其中,一级与首级第一选择单元111对应,一级与第二级第一选择单元112对应,一级与第三级第一选择单元113对应,一级与末级第一选择单元114对应。
请参阅图6,本申请实施例中,第二级替换模块120包括伪随机替换单元121和判断单元122。
其中,伪随机替换单元121用于在目标缓存组包括的N个缓存单元中,不存在满足目标QoS要求,且无效的缓存单元时,通过伪随机替换策略,从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为中间待选缓存单元,而判断单元122则用于判断中间待选缓存单元是否满足目标QoS要求,并在中间待选缓存单元满足目标QoS要求时,将中间待选缓存单元,作为目标缓存单元。
进一步地,请结合图7,本申请实施例中,伪随机替换单元121可以包括多级触发器DN、第一非门Not1、异或门Xor和第二数据选择器Mux-15。多级触发器DN级联,且多级触发器DN中,末级触发器的输出端通过第一非门Not1与异或门Xor的第一输入端连接,多级触发器DN中,除末级触发器之外的任意触发器的输出端与异或门Xor的第二输入端连接,而异或门Xor的输出端则与多级触发器DN中,首级触发器的输入端连接,第二数据选择器Mux-15的多个输入端分别与多级触发器DN的输出端连接,用于从多级触发器DN的输出信号中选取出第三目标数量条输出信号,作为中间待选缓存单元的第一组内标识号。本申请实施例中,对于某个缓存单元,其第一组内标识号用于表征该个缓存单元在目标缓存组内的排列位置。
此外,需要说明的是,本申请实施例中,多级触发器DN的具体级数可以根据目标缓存组中缓存单元的具体数量确定,本申请实施例对此不作具体限制。例如,目标缓存组包括16个缓存单元时,多级触发器DN的具体级数可以是大于等于4的任意整数。再例如,目标缓存组包括8个缓存单元时,多级触发器DN的具体级数可以是大于等于3的任意整数。当然,为了提高伪随机替换单元121的随机度,本申请实施例中,也可以适当增加多级触发器DN的具体级数,而增加量则根据实际的随机度需求确定。
如图7所示,实际实施时,伪随机替换单元121可以包括五级触发器,为方便描述,可以将五级触发器分别定义为第一级触发器D1、第二级触发器D2、第三级触发器D3、第四级触发器D4和第五级触发器D5,第一级触发器D1、第二级触发器D2、第三级触发器D3、第四级触发器D4和第五级触发器D5依次级联,第五级触发器D5作为末级触发器,将输出端通过第一非门Not1与异或门Xor的第一输入端连接,第三级触发器D3的输出端与异或门Xor的第二输入端连接,异或门Xor的输出端与多级触发器中的首级触发器,也即,第一级触发器D1的输入端连接。此外,本申请实施例中,第一级触发器D1、第二级触发器D2、第三级触发器D3、第四级触发器D4和第五级触发器D5可以均为D触发器,且启动阶段,第一级触发器D1、第二级触发器D2、第三级触发器D3、第四级触发器D4和第五级触发器D5的初始输出信号可以均为0,当然也可以为其他,本申请实施例对此不作具体限制。
第二数据选择器Mux-15包括五个输入端,第二数据选择器Mux-15的五个输入端分别与五级触发器的输出端连接,用于根据选择控制信号Cs 15从五级触发器的输出信号中选取出第三目标数量条输出信号,作为中间待选缓存单元的第一组内标识号。
对于第三目标数量,本申请实施例中,若N的取值为16,也即,目标缓存组包括16个缓存单元,则第三目标数量可以为4,也即,第二数据选择器Mux-15可以包括4个单比特(bit)数据输出端(如图6所示),最终,获得4比特(bit)位宽的输出信号,作为中间待选缓存单元的第一组内标识号,若N的取值为8,也即,目标缓存组包括8个缓存单元,则第三目标数量可以为3,也即,第二数据选择器Mux-15可以包括3个单比特(bit)数据输出端,最终,获得3比特(bit)位宽的输出信号,作为中间待选缓存单元的第一组内标识号。以N的取值为16,也即,目标缓存组包括16个缓存单元,第三目标数量为4为例,若第二数据选择器Mux-15的输出信号为“0001”,则中间待选缓存单元的第一组内标识号为“0001”,表示中间待选缓存单元为目标缓存组包括的16个缓存单元中的第二个缓存单元,若第二数据选择器Mux-15的输出信号为“1111”则中间待选缓存单元的第一组内标识号为“1111”,表示中间待选缓存单元为目标缓存组包括的16个缓存单元中的第十六个缓存单元。
在从目标缓存组包括的N个缓存单元中,随机选取出中间待选缓存单元之后,判断单元122则判断中间待选缓存单元是否满足目标QoS要求,并在中间待选缓存单元满足目标QoS要求时,将中间待选缓存单元,作为目标缓存单元。本申请实施例中,判断单元122可以通过判断为目标应用程序分配的LLC资源中是否包括中间待选缓存单元,以确定中间待选缓存单元是否满足目标QoS要求。
进一步地,对于第三级替换模块130,如上所述,其用于在中间待选缓存单元不满足目标QoS要求时,从预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中选取出目标分组,并从目标分组中选取出一个满足目标QoS的缓冲单元作为目标缓存单元。
本申请实施例中,目标分组为第一目标分组或第二目标分组,第一目标分组为预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,包括中间待选缓存单元的缓存分组,而第二目标分组中存在满足目标QoS要求的缓存单元。此外,需要说明的是,本申请实施例中,可以根据预先对目标缓存组包括的N个缓存单元进行分组而获得多组缓存分组时的具体分组方式,确定出第一目标分组。
基于以上描述,请参阅图8,本申请实施例中,第三级替换模块130包括第一组内选取单元131和可用组判断单元132。
其中,第一组内选取单元131用于在中间待选缓存单元不满足目标QoS要求,而第一目标分组中存在满足目标QoS要求的缓存单元时,从第一目标分组中选取出一条满足目标QoS要求的缓存单元,作为目标缓存单元。
可用组判断单元132用于在第一目标分组中不存在满足目标QoS要求的缓存单元时,从多组缓存分组中,选取出第二目标分组,并在第二目标分组中,选取出一条满足目标QoS要求的缓存单元,作为目标缓存单元。
请结合图9,本申请实施例中,第一组内选取单元131可以包括第一移位选取单元1311和第一判断单元1312。
第一移位选取单元1311用于在中间待选缓存单元不满足目标QoS要求时,在第一目标分组中,从与中间待选缓存单元相邻的缓存单元起,按照排列位置依次选取缓存单元,作为待判断缓存单元。
第一判断单元1312用于在第一移位选取单元1311每选取出一条待判断缓存单元时,判断待判断缓存单元是否满足目标QoS要求,若待判断缓存单元满足目标QoS要求,则将待判断缓存单元,作为目标缓存单元,若待判断缓存单元不满足目标QoS要求,则控制第一移位选取单元1311选取新的待判断缓存单元。
请结合图10,本申请实施例中,第一移位选取单元1311可以包括第一移位寄存器Reg-1和第四数据选择器Mux-16。
第四数据选择器Mux-16包括多个输入端,而输入端的具体数量同样可以根据预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组包括的缓存单元的具体数量确定,本申请实施例对此不作具体限制。此外,针对第四数据选择器Mux-16包括的多个输入端中的每个输入端,其输入信号的位宽与第四数据选择器Mux-16输入端的具体数量相同,而第一移位寄存器Reg-1的移位处理位宽,同样与第四数据选择器Mux-16输入端的具体数量相同。例如,若预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组包括4个缓存单元,则第四数据选择器Mux-16的输入端数量为4,那么,针对第四数据选择器Mux-16包括的多个输入端中的每个输入端,其输入信号的位宽同样为4比特(bit),第一移位寄存器Reg-1为4比特(bit)位宽的移位寄存器。再例如,若预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组包括3个缓存单元,则第四数据选择器Mux-16的输入端数量为3,那么,针对第四数据选择器Mux-16包括的多个输入端中的每个输入端,其输入信号的位宽同样为3比特(bit),第一移位寄存器Reg-1为3比特(bit)位宽的移位寄存器。
第四数据选择器Mux-16的控制端与第一移位寄存器Reg-1的输出端连接,用于将第一移位寄存器Reg-1的输出信号作为第一移位输出执行信号,第四数据选择器Mux-16的多个输入端分别输入第一目标分组内包括的多个缓存单元的第二组内标识号,第四数据选择器Mux-16的输出端用于根据第一移位输出执行信号,从第四数据选择器Mux-16的多个输入端分别输入的多个缓存单元的第二组内标识号中,选择一个第二组内标识号,作为目标组内标识号,而目标组内标识号即为待判断缓存单元的标识号。此外,本申请实施例中,对于某个缓存单元,其第二组内标识号用于表征该个缓存单元在第一目标分组内的排列位置。
本申请实施例中,第一判断单元1312可以包括第四与门And4、第三或门Or3和第三非门Not3。
对于第四与门And4包括的第一输入端、第二输入端和输出端,以及第三或门Or3的输入端,其对应信号的位宽与第四数据选择器Mux-16中,输出端输出信号的位宽相同。
此外,本申请实施例中,第四与门And4的第一输入端与第四数据选择器Mux-16的输出端连接,第四与门And4的第二输入端用于输入第一分散式组内QoS表征信号,第四与门And4的输出端用于输出目标单元QoS表征信号,记作QoS Mask 0,用于表征待判断缓存单元是否满足目标QoS要求。本申请实施例中,第一分散式组内QoS表征信号用于表征第一目标分组内包括的多个缓存单元中,每个缓存单元是否满足目标QoS。例如,若第一分散式组内QoS表征信号为“0001”,则表征第一目标分组内包括的多个缓存单元中,仅有第一个缓存单元满足目标QoS。再例如,若第一分散式组内QoS表征信号为“1000”,则表征第一目标分组内包括的多个缓存单元中,仅有第四个缓存单元满足目标QoS。
第三或门Or3的输入端与第四与门And4的输出端连接,第三或门Or3的输出端与第三非门Not3的输入端连接,第三非门Not3的输出端与第一移位寄存器Reg-1的移位控制端连接,用于输出第一移位控制信号,以供第一移位寄存器Reg-1根据第一移位控制信号判断是否需要输出第一移位输出执行信号,以供第四数据选择器Mux-16根据第一移位输出执行信号,从第四数据选择器Mux-16的多个输入端分别输入的多个缓存单元的第二组内标识号中,选择一个第二组内标识号,作为新的目标组内标识号,以选取出新的待判断缓存单元。此外,需要说明的是,本申请实施例中,目标单元QoS表征信号除可以通过第四与门And4的输出端输出以外,也可以由第三非门Not3的输出端输出,本申请实施例对此不作具体限制。
以下,将结合图10,对第一组内选取单元131的工作原理进行说明。
以N的取值为16,也即,目标缓存组包括16个缓存单元,且预先对目标缓存组包括的16个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组包括的缓存单元为4条,而中间待选缓存单元为目标缓存组包括的16个缓存单元中的第六个缓存单元为例,第一目标分组中包括目标缓存组包括的16个缓存单元中的第五个缓存单元、第六个缓存单元、第七个缓存单元,以及第八个缓存单元。
目标缓存组包括的16个缓存单元中,第五个缓存单元在第一目标分组内的排列位置为第一位,因此,其第二组内标识号可以为“0001”,同理,目标缓存组包括的16个缓存单元中,第六个缓存单元的第二组内标识号可以为“0010”,目标缓存组包括的16个缓存单元中,第七个缓存单元的第二组内标识号可以为“0100”,目标缓存组包括的16个缓存单元中,第八个缓存单元的第二组内标识号可以为“1000”。由于中间待选缓存单元为目标缓存组包括的16个缓存单元中的第六个缓存单元,其在第一目标分组内的排列位置为第二位,因此,第一移位寄存器Reg-1输出的第一条第一移位输出执行信号可以用于控制第四数据选择器Mux-16的输出结果右移一位,以选取出第一目标分组内的排列位置为第三位的缓存单元,作为待判断缓存单元,当然,第一移位寄存器Reg-1输出的第一条第一移位输出执行信号也可以用于控制第四数据选择器Mux-16的输出结果左移一位,以选取出第一目标分组内的排列位置为第一位的缓存单元,作为待判断缓存单元。
若第一移位寄存器Reg-1输出的第一条第一移位输出执行信号用于控制第四数据选择器Mux-16的输出结果右移一位,以选取出第一目标分组内的排列位置为第三位的缓存单元,作为待判断缓存单元,则待判断缓存单元的第二组内标识号为“0100”。假设,第一分散式组内QoS表征信号QoS Mask[Cacheline 7:Cacheline 4]为[1000],表征第一目标分组内,排列位置为第一位的缓存单元不满足目标QoS,第一目标分组内,排列位置为第二位的缓存单元不满足目标QoS,第一目标分组内,排列位置为第三位的缓存单元不满足目标QoS,第一目标分组内,排列位置为第四位的缓存单元满足目标QoS。则第四与门And4的第一输入端的输入信号为[0100],第四与门And4的第二输入端的输入信号为[1000],则第四与门And4对输入信号[0100]和输入信号[1000]进行按位与,输出目标单元QoS表征信号[0000],表征待判断缓存单元不满足目标QoS要求,第四与门And4的输出端输出的目标单元QoS表征信号[0000]在输入第三或门Or3之后,第三或门Or3对目标单元QoS表征信号[0000]中的4比特(bit)数据执行或操作,也即,执行“0or 0or 0or 0”操作,获得输出结果为“0”,该输出结果经第三非门Not3反向之后,获得控制第一移位寄存器Reg-1继续执行移位命令的第一移位控制信号[1],第一移位寄存器Reg-1在第一移位控制信号的控制作用下,生成并输出第二条第一移位输出执行信号,用于控制第四数据选择器Mux-16的输出结果继续右移一位,以选取出第一目标分组内的排列位置为第四位的缓存单元,作为新的待判断缓存单元。
新的待判断缓存单元的第二组内标识号为“1000”,第一分散式组内QoS表征信号QoS Mask[Cacheline 7:Cacheline 4]为[1000],那么,第四与门And4的第一输入端的输入信号为[1000],第四与门And4的第二输入端的输入信号为[1000],则第四与门And4对输入信号[1000]和输入信号[1000]进行按位与,输出目标单元QoS表征信号为[1000],表征待判断缓存单元满足目标QoS要求,第四与门And4的输出端输出的目标单元QoS表征信号为[1000]在输入第三或门Or3之后,第三或门Or3执行逻辑命令“0or 0or0or 1”,获得输出结果为“1”,该输出结果经第三非门Not3反向之后,获得控制第一移位寄存器Reg-1不再执行移位命令的第一移位控制信号[0]。
进一步地,请结合图11,本申请实施例中,可用组判断单元132可以包括第二移位选取单元1321、第二判断单元1322和目标获取单元1323。
第二移位选取单元1321用于在第一目标分组中不存在满足目标QoS要求的缓存单元时,在多组缓存分组中,从与第一目标分组相邻的缓存分组起,按照排列位置依次选取缓存分组,作为待判断缓存分组。
第二判断单元1322用于在第二移位选取单元1321每选取出一组待判断缓存分组时,判断待判断缓存分组中是否存在满足目标QoS要求的缓存单元,若待判断缓存分组中存在满足目标QoS要求的缓存单元,则将待判断缓存分组,作为第二目标分组,若待判断缓存分组中不存在满足目标QoS要求的缓存单元,则控制第二移位选取单元1321选取新的待判断缓存分组。
目标获取单元1323用于在从第二目标分组中,选取出一条满足目标QoS要求的一个缓存单元作为终级待选缓存单元之后,将该条终级待选缓存单元作为目标缓存单元。
请结合图12,本申请实施例中,第二移位选取单元1321可以包括第二移位寄存器Reg-2和第五数据选择器Mux-17。
第五数据选择器Mux-17包括多个输入端,而输入端的具体数量可以根据预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组的具体数量确定,本申请实施例对此不作具体限制。此外,针对第五数据选择器Mux-17包括的多个输入端中的每个输入端,其输入信号的位宽与第五数据选择器Mux-17输入端的具体数量相同,而第二移位寄存器Reg-2的移位处理位宽,同样与第五数据选择器Mux-17输入端的具体数量相同。例如,若预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组的具体数量为4,则第五数据选择器Mux-17的输入端数量为4,那么,针对第五数据选择器Mux-17包括的多个输入端中的每个输入端,其输入信号的位宽同样为4比特(bit),第二移位寄存器Reg-2为4比特(bit)位宽的移位寄存器。再例如,若预先对目标缓存组包括的N个缓存单元进行分组而获得的缓存分组数量为3,那么,针对第五数据选择器Mux-17包括的多个输入端中的每个输入端,其输入信号的位宽同样为3比特(bit),第二移位寄存器Reg-2为3比特(bit)位宽的移位寄存器。
第五数据选择器Mux-17的控制端与第二移位寄存器Reg-2的输出端连接,用于将第二移位寄存器Reg-2的输出信号作为第二移位输出执行信号,第五数据选择器Mux-17的多个输入端分别输入预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组的分组标识号,第五数据选择器Mux-17的输出端用于根据第二移位输出执行信号,从第五数据选择器Mux-17的多个输入端分别输入的多组缓存分组的分组标识号中,选择一个分组标识号,作为目标分组标识号,而目标分组标识号即为待判断缓存分组的标识号。此外,本申请实施例中,对于某组缓存分组,其分组标识号用于表征该组缓存分组在预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组内的排列位置。
本申请实施例中,第二判断单元1322可以包括第五与门And5、第四或门Or4和第四非门Not4。
对于第五与门And5包括的第一输入端、第二输入端和输出端,以及第四或门Or4的输入端,其对应信号的位宽与第五数据选择器Mux-17中,输出端输出信号的位宽相同。
此外,本申请实施例中,第五与门And5的第一输入端与第五数据选择器Mux-17的输出端连接,第五与门And5的第二输入端用于输入分组QoS表征信号,第五与门And5的输出端用于输出目标单组QoS表征信号,记作QoS Mask 1,用于表征待判断缓存分组中是否存在满足目标QoS要求的缓存单元。本申请实施例中,分组QoS表征信号用于表征预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组中是否存在满足目标QoS要求的缓存单元。例如,若分组QoS表征信号为“0001”,则表征预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,仅有第一组缓存分组中存在满足目标QoS要求的缓存单元。再例如,若分组QoS表征信号为“1000”,则表征预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,仅有第四组缓存分组中存在满足目标QoS要求的缓存单元。
第四或门Or4的输入端与第五与门And5的输出端连接,第四或门Or4的输出端与第四非门Not4的输入端连接,第四非门Not4的输出端与第二移位寄存器Reg-2的移位控制端连接,用于输出第二移位控制信号,以供第二移位寄存器Reg-2根据第二移位控制信号判断是否需要输出第二移位输出执行信号,使得第五数据选择器Mux-17根据第二移位输出执行信号,从第五数据选择器Mux-17的多个输入端分别输入的多组缓存分组的分组标识号中,选择一个分组标识号,作为新的目标分组标识号,以选取出新的待判断缓存分组。此外,需要说明的是,本申请实施例中,目标单组QoS表征信号除可以通过第五与门And5的输出端输出以外,也可以由第四非门Not4的输出端输出,本申请实施例对此不作具体限制。
关于分组QoS表征信号,本申请实施例中,其获取方法可以是:
首先,获得目标缓存组包括的N个缓存单元中,每个缓存单元的单元QoS表征信号之后,对其进行整合,获得一条能够表征目标缓存组包括的N个缓存单元中,每个存储单元是否满足目标QoS要求的分散完整式QoS表征信号,记作[QoSN-1QoSN-2QoSN-3……QoS2QoS1 QoS0]。
以N的取值为16,也即,目标缓存组包括16个缓存单元为例,能够表征目标缓存组包括的16个缓存单元中,每个存储单元是否满足目标QoS要求的分散完整式QoS表征信号具体可以记作[QoS15 QoS14 QoS13 QoS12QoS11 QoS10 QoS9 QoS8 QoS7 QoS6 QoS5 QoS4QoS3 QoS2 QoS1 QoS0]。更具体地,若目标缓存组包括16个缓存单元中,仅有第一个缓存单元满足目标QoS,则目标缓存组对应的分散完整式QoS表征信号为:[0000000000000001],若目标缓存组包括16个缓存单元中,仅有第十六个缓存单元满足目标QoS,则目标缓存组对应的分散完整式QoS表征信号为:[1000000000000000]。
在获得能够表征目标缓存组包括的N个缓存单元中,每个存储单元是否满足目标QoS要求的分散完整式QoS表征信号之后,根据预先对目标缓存组包括的N个缓存单元进行分组而获得多组缓存分组时的具体分组方式,对该分散完整式QoS表征信号进行分组,获得多组第二分散式组内QoS表征信号。此后,针对多组第二分散式组内QoS表征信号中的每组第二分散式组内QoS表征信号,对该组第二分散式组内QoS表征信号中包括的多条单元QoS表征信号执行或操作,获得对应的单组QoS表征信号,用于表征对应的缓存分组中是否存在满足目标QoS要求的缓存单元。最后,按照对应的缓存分组在预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中的排列位置,对获得的多条单组QoS表征信号进行整合,获得分组QoS表征信号。
以N的取值为16,也即,目标缓存组包括16个缓存单元,且目标缓存组对应的分散完整式QoS表征信号为:[1000011000000010]为例,若预先对目标缓存组包括的16个缓存单元进行分组时,获得4组缓存分组,且每组缓存分组包括4个缓存单元,那么,对该分散完整式QoS表征信号进行分组之后,同样获得4组第二分散式组内QoS表征信号,4组第二分散式组内QoS表征信号中,每组第二分散式组内QoS表征信号包括4条单元QoS表征信号(每条单元QoS表征信号包括1比特(bit)数据),其中,第一组第二分散式组内QoS表征信号为:[0010],第二组第二分散式组内QoS表征信号:[0000],第三组第二分散式组内QoS表征信号为:[0110],第四组第二分散式组内QoS表征信号为:[1000]。
此后,针对每组第二分散式组内QoS表征信号,对其包括的4条单元QoS表征信号执行或操作,则获得对应的单组QoS表征信号。具体到前例,对第一组第二分散式组内QoS表征信号包括的4条单元QoS表征信号执行或操作,也即,执行“0or 1or 0or 0”操作,则获得第一组单组QoS表征信号为[1],用于表征第一组缓存分组中存在满足目标QoS要求的缓存单元,同理,可以获得第二组单组QoS表征信号为[0],用于表征第二组缓存分组中不存在满足目标QoS要求的缓存单元,第三组单组QoS表征信号为[1],用于表征第三组缓存分组中存在满足目标QoS要求的缓存单元,第四组单组QoS表征信号为[1],用于表征第四组缓存分组中存在满足目标QoS要求的缓存单元。
最后,由于第一组缓存分组在预先对目标缓存组包括的16个缓存单元进行分组而获得的4组缓存分组中的排列位置为第一位,因此,将第一组单组QoS表征信号为[1]排列在分组QoS表征信号中的第一位,同理,将第二组单组QoS表征信号为[0]排列在分组QoS表征信号中的第二位,将第三组单组QoS表征信号为[1]排列在分组QoS表征信号中的第三位,将第四组单组QoS表征信号为[1]排列在分组QoS表征信号中的第四位,最终,获得分组QoS表征信号[1101],记作QoS Mask[Set3:Set0]。
本申请实施例中,关于第二移位选取单元1321和第二判断单元1322的整体工作原理,可以参考上述关于第一组内选取单元131的工作原理,也即,第二移位选取单元1321和第二判断单元1322的整体工作原理,与上述关于第一组内选取单元131的工作原理相同,本申请实施例对此不作赘述。
进一步地,请结合图13,本申请实施例中,目标获取单元1323可以包括第三数据选择器Mux-18和多个第二组内选取单元13231,多个第二组内选取单元13231与多组缓存分组一一对应。
针对多个第二组内选取单元13231中的每个第二组内选取单元13231,该第二组内选取单元13231用于在对应的缓存分组中存在满足目标QoS量要求的缓存单元时,从对应的缓存分组中选取出一条满足目标QoS要求的缓存单元作为终级待选缓存单元。
第三数据选择器Mux-18用于从多组缓存分组中确定出第二目标分组,并将第二目标分组对应的终级待选缓存单元作为目标缓存单元。
本申请实施例中,针对多个第二组内选取单元13231中的每个第二组内选择单元,该第二组内选择单元包括多级第二选择单元,多级第二选择单元级联。
多级第二选择单元中,每级第二选择单元用于从第四目标数量个缓存单元中,选取出第五目标数量个缓存单元。其中,在第四目标数量个缓存单元中,存在满足目标QoS要求的缓存单元时,满足目标QoS要求的缓存单元中至少部分缓存单元包含于第五目标数量个缓存单元中,若第二选择单元为多级第二选择单元中的首级第二选择单元,则第二选择单元对应的第四目标数量个缓存单元为对应缓存分组中包括的多个缓存单元,若第二选择单元非多级第二选择单元中的首级第二选择单元,则第二选择单元对应的第四目标数量个缓存单元为第二选择单元的上一级第二选择单元选取出的多个缓存单元。
此外,需要说明的是,本申请实施例中,第四目标数量相对于第五目标数量的倍数值,具体可以在缓冲存储装置100的电路结构设计阶段,通过改变多级第二选择单元中,每级第二选择单元的电路结构实现调整,本申请实施例对此不作具体限制。
如图14所示,假设,第四目标数量相对于第五目标数量的倍数值为2,且N的取值为16,也即,目标缓存组包括16个缓存单元,而预先对目标缓存组包括的16个缓存单元进行分组时,获得4组缓存分组,且每组缓存分组包括4个缓存单元,那么,目标获取单元1323需要包括4个第二组内选取单元13231,针对4个第二组内选取单元13231中的每个第二组内选择单元,该第二组内选择单元又需要包括两级第二选择单元。为方便描述,本申请实施例中,可以将两级第二选择单元分别定义为首级第二选择单元132311和末级第二选择单元132312,如此,首级第二选择单元132311则用于从对应缓存分组中包括的4个缓存单元中选取出2个缓存单元,末级第二选择单元132312则用于从其上一级第二选择单元,也即,首级缓存单元选取出的2个缓存单元中选取出1个缓存单元。
本申请实施例中,针对多级第二选择单元中的每级第二选择单元,该级第二选择单元又可以包括的多个第二选择子单元,且针对多级第二选择单元中的每级第二选择单元,该级第二选择单元包括的多个第二选择子单元中,每个第二选择子单元与该级第二选择单元对应的第四目标数量个缓存单元中包括的至少两个缓存单元对应,且第一选择子单元用于从对应的至少两个缓存单元中选取出一个缓存单元,作为第二初步待选缓存单元。
基于以上描述,可以理解的是,本申请实施例中,在第四目标数量相对于第五目标数量的倍数值确定的情况下,针对多级第二选择单元中的每级第二选择单元,若该级第二选择单元为首级第二选择单元,则其包括的第二选择子单元的数量,具体可以根据对应缓存分组中包括的缓存单元数量确定,若该级第二选择单元非首级第二选择单元,则其包括的第二选择子单元的数量,具体可以根据该级第二选择单元的上一级第二选择单元选取出的缓存单元数量确定。
继续以第四目标数量相对于第五目标数量的倍数值为2,且N的取值为16,也即,目标缓存组包括16个缓存单元,而预先对目标缓存组包括的16个缓存单元进行分组时,获得4组缓存分组,且每组缓存分组包括4个缓存单元为例,首级第二选择单元132311需要包括2个第二选择子单元,首级第二选择单元132311用于从对应缓存分组包括的4个缓存单元中选取出2个缓存单元,也即,首级第二选择单元132311选取出的缓存单元数量为2,则末级第二选择单元132312需要包括1个第二选择子单元,末级第二选择单元132312用于从首级第二选择单元132311选取出的2个缓存单元中选取出1个缓存单元。
进一步地,本申请实施例中,针对多级第二选择单元中的每级第二选择单元,该级第二选择单元包括的多个第二选择子单元中,每个第二选择子单元又包括第二选择控制器和第六数据选择器。
针对第二选择单元包括的多个第二选择子单元中的每个第二选择子单元,该第二选择子单元中,第二选择控制器用于根据该第二选择子单元对应的至少两个缓存单元中,每个缓存单元的单元QoS表征信号,获得该第二选择子单元中,第六数据选择器的选择控制信号。其中,该第二选择子单元对应的至少两个缓存单元中,每个缓存单元的单元QoS表征信号用于表征该个缓存单元是否满足目标QoS要求。此外,需要说明的是,本申请实施例中,对于任意缓存单元,若其满足目标QoS要求,则可以将其单元QoS表征信号设置为1,若其不满足目标QoS要求,则可以将其单元QoS表征信号设置为0。
针对第二选择单元包括的多个第二选择子单元中的每个第二选择子单元,该第二选择子单元中,第六数据选择器用于根据对应的选择控制信号,从该第二选择子单元对应的至少两个缓存单元中选取出第二初步待选缓存单元。
针对第二选择单元包括的多个第二选择子单元中的每个第二选择子单元,该第二选择子单元中,第二选择控制器还用于根据该第二选择子单元对应的至少两个缓存单元中,每个缓存单元的单元QoS表征信号,获得对应的第二初步待选缓存单元的单元QoS表征信号,第二初步待选缓存单元的单元QoS表征信号用于表征该条第二初步待选缓存单元是否满足目标QoS要求。
再次以第四目标数量相对于第五目标数量的倍数值为2,也即,针对多级第二选择单元中的每级第二选择单元,该级第二选择单元包括的多个第二选择子单元中,每个第二选择子单元与该级第二选择单元对应的第四目标数量个缓存单元中包括的两个缓存单元对应,且N的取值为16,也即,目标缓存组包括16个缓存单元,而预先对目标缓存组包括的16个缓存单元进行分组时,获得4组缓存分组,且每组缓存分组包括4个缓存单元为例,对应的第二组内选取单元13231如图14所示,且图14所示的第二组内选取单元13231中,首级第二选择单元132311包括的第二选择子单元,以及每个第二选择子单元包括的第二选择控制器和第六数据选择器如表5所示,末级第二选择单元132312包括的第二选择子单元,以及每个第二选择子单元包括的第二选择控制器和第六数据选择器如表6所示。
表5
表6
以首级第二选择单元132311中包括的第二选择子单元1为例,其包括第二选择控制器SC-15和第六数据选择器Mux-19,由于第二选择子单元1对应缓存分组S-Set 0中包括的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1),因此,第六数据选择器Mux-19为二选一数据选择器。
第二选择控制器SC-15用于根据第二选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的单元QoS表征信号,获得第二选择子单元1中,第六数据选择器Mux-19的选择控制信号Cs 15,其中,第二选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的单元QoS表征信号用于表征该个缓存单元是否满足目标QoS要求。
第六数据选择器Mux-19用于根据对应的选择控制信号Cs 15,从第二选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中选取出第二初步待选缓存单元。
第二选择控制器SC-15还用于根据第二选择子单元1对应的两个缓存单元(缓存单元Cacheline 0和缓存单元Cacheline 1)中,每个缓存单元的单元QoS表征信号,获得对应的第二初步待选缓存单元的单元QoS表征信号QoS?1,第二初步待选缓存单元的单元QoS表征信号QoS?1用于表征该条第二初步待选缓存单元是否满足目标QoS要求。
请结合图15,本申请实施例中,第二选择控制器SC-15可以包括第五非门Not5、第六与门And6、第五或门Or5和第六或门Or6。
为方便描述,本申请实施例中,定义第二选择控制器SC-15的第一输入端为第一选择控制输入端,第二选择控制器SC-15的第二输入端为第二选择控制输入端,且第一选择控制输入端输入用于表征缓存单元Cacheline 0是否满足目标QoS的单元QoS表征信号QoS 0,第二选择控制输入端输入用于表征缓存单元Cacheline 1是否满足目标QoS的单元QoS表征信号QoS1。
第五非门Not5的输入端与第一选择控制输入端连接,第六与门And6的第一输入端与第五非门Not5的输出端连接,第六与门And6的第二输入端与第二选择控制输入端连接,第五或门Or5的第一输入端与第一选择控制输入端连接,第五或门Or5的第二输入端与第二选择控制输入端连接,第六或门Or6的第一输入端与第五非门Not5的输出端连接,第六或门Or6的第二输入端与第六与门And6的输出端连接,第六或门Or6的输出端用于输出第六数据选择器Mux-19的选择控制信号Cs 15,以供第六数据选择器Mux-19根据该选择控制信号Cs15,从缓存单元Cacheline 0和缓存单元Cacheline 1中选取出第二初步待选缓存单元,第五或门Or5的输出端用于输出该第二初步待选缓存单元的单元QoS表征信号QoS?1。
此外,本申请实施例中,第六数据选择器Mux-19的具体类型可以根据对应缓存分组中缓存单元的具体数量确定,本申请实施例对此不作具体限制。例如,对应缓存分组中包括4个缓存单元时,第六数据选择器Mux-19可以是输入信号为4比特(bit)位宽的二选一数据选择器。再例如,对应缓存分组中包括8个缓存单元时,第六数据选择器Mux-19可以是输入信号为3比特(bit)位宽的二选一数据选择器。
可以理解的是,本申请实施例中,首级第二选择单元132311中包括的其他第二选择子单元,以及末级第二选择单元132312中包括的第二选择子单元的工作原理与上述首级第二选择单元132311中包括的第二选择子单元1的工作原理相同,本申请实施例对此不作赘述。
基于以上描述,可以理解的是,本申请实施例中,针对多个第二组内选取单元13231中的每个第二组内选取单元13231,若该第二组内选取单元13231的末级第二选择单元中,第二选择子单元包括的第二选择控制器获得的单元QoS表征信号表征对应的第二初步待选缓存单元满足目标QoS要求,则表征该第二组内选取单元13231对应的缓存分组中存在满足目标QoS量要求的缓存单元,并将第二组内选取单元13231的末级第二选择单元中,第六数据选择器选取出的第二初步待选缓存单元作为终级待选缓存单元。对应的,针对多个第二组内选取单元13231中的每个第二组内选取单元13231,若该第二组内选取单元13231的末级第二选择单元中,第二选择子单元包括的第二选择控制器获得的单元QoS表征信号表征对应的第二初步待选缓存单元不满足目标QoS要求,则表征该第二组内选取单元13231对应的缓存分组中不存在满足目标QoS量要求的缓存单元。
具体到图14所示的第二组内选取单元13231,其对应缓存分组S-Set 0,此外,其末级第二选择单元132312中包括第二选择子单元3,而第二选择子单元3中包括第二选择控制器SC-17和第六数据选择器Mux-21。
第二选择控制器SC-17用于根据首级第二选择单元132311中,第二选择子单元1选取出的第二初步待选缓存单元的单元QoS表征信号和首级第二选择单元132311中,第二选择子单元2选取出的第二初步待选缓存单元的单元QoS表征信号,获得第二选择子单元3中,第六数据选择器Mux-21的选择控制信号Cs 17。
五数据选择器Mux-21用于根据对应的选择控制信号Cs 17,从首级第二选择单元132311中,第二选择子单元1选取出的第二初步待选缓存单元和首级第二选择单元132311中,第二选择子单元2选取出的第二初步待选缓存单元中继续选取出最终第二初步待选缓存单元。
如上所述,本申请实施例中,第三数据选择器Mux-18用于从多组缓存分组中确定出第二目标分组,并将第二目标分组对应的终级待选缓存单元作为目标缓存单元。对此,需要说明的是,本申请实施例中,第三数据选择器Mux-18的第一控制端可以直接输入目标单组QoS表征信号,第三数据选择器Mux-18的第二控制端可以直接输入目标分组标识号,以在根据目标单组QoS表征信号,判定对应的待判断缓存分组为第二目标分组时,根据输入的目标分组标识号从多组缓存分组中确定出第二目标分组,并将第二目标分组对应的终级待选缓存单元作为目标缓存单元。
当然,第三数据选择器Mux-18也可以仅包括一个控制端,在此情况下,第三数据选择器Mux-18的控制端与选择触发模块连接,而选择触发模块包括的两个输入端则分别与目标单组QoS表征信号和目标分组标识号连接,选择触发模块用于在根据目标单组QoS表征信号,判定对应的待判断缓存分组为第二目标分组时,将输入的目标分组标识号发送给第三数据选择器Mux-18,以供第三数据选择器Mux-18根据输入的目标分组标识号从多组缓存分组中确定出第二目标分组,并将第二目标分组对应的终级待选缓存单元作为目标缓存单元。
进一步地,本申请实施例中,选择触发模块根据目标单组QoS表征信号,判断对应的待判断缓存分组是否为第二目标分组的过程可以通过比较器实现,本申请实施例对此不作具体限制。
继续以N的取值为16,也即,目标缓存组包括16个缓存单元,且预先对目标缓存组包括的16个缓存单元进行分组而获得的多组缓存分组中,每组缓存分组包括的缓存单元为4条为例,在此情况下,关于第三级替换模块130,最后需要说明的是,本申请实施例中,其逻辑链长度最长为6级,其中,确定出包括中间待选缓存单元的缓存分组(也即,第一目标分组)为一级,判断第一目标分组中是否存在满足目标QoS要求的缓存单元的一级,从第二目标分组中选取出一个满足目标QoS的缓冲单元最长为三级,最终,选取出满足目标QoS的缓冲单元,作为目标缓存单元为一级。
总结来说,基于本申请实施例提供的缓冲存储装置100,在目标应用程序的运行过程中,在对缓冲存储装置100中满足目标QoS要求(目标应用程序对应的QoS要求)的缓存单元进行数据替换时,能够通过三级替换模块,最终选取出满足目标QoS要求的目标缓存单元,再用于数据替换,由于三级替换模块采用的替换策略是不同的,因此,相对于现有技术中,仅通过伪随机替换策略,多次从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为目标缓存单元,直至选取出的目标缓存单元满足目标QoS要求为止的方案而言,耗时较短,那么,选取出目标缓存单元,以使目标缓存单元成功映射与目标应用程序相关数据的总耗时也会相对减少,最终,提高了缓冲存储装置100的命中率。
本申请实施例中还提供了一种处理器,包括上述缓冲存储装置100。
本申请实施例提供的处理器具体可以是,但不限于中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、加速处理器(Accelerated Processing Unit)、网络处理器(Network Processor,NP)、多媒体应用处理器(Multimedia Application Processor,MAP)。
进一步地,本申请实施例中,处理器包括处理器核心和缓冲存储装置100,处理器核心和缓冲存储装置100通信连接。
本申请实施例还提供了一种电子设备,包括上述处理器。
本申请实施例提供的电子设备具体可以是终端设备,例如,电脑、个人数字助理(Personal Digital Assistant,PAD)、移动上网设备(Mobile Internet Device,MID)等。本申请实施例提供的电子设备也可以是服务器,本申请实施例对此不作具体限制。
此外,在结构组成上,处理器包括内存、外部存储器和上述处理器。本申请实施例中,处理器包括的缓冲存储装置100直接或间接与内存通信连接,而内存则与外部存储器通信连接。
综上所述,本申请实施例提供的缓冲存储装置100包括第一级替换模块110、第二级替换模块120和第三级替换模块130。其中,第一级替换模块110用于在目标缓存组包括的N个缓存单元中存在满足目标QoS要求,且无效的缓存单元时,从满足目标QoS要求,且无效的缓存单元中选取出一个缓存单元,作为目标缓存单元,N=2M,M≥0,且为整数,第二级替换模块120用于在目标缓存组包括的N个缓存单元中不存在满足目标QoS要求,且无效的缓存单元时,从目标缓存组包括的N个缓存单元中随机选取出一个缓存单元,作为中间待选缓存单元,并在中间待选缓存单元满足目标QoS要求时,将中间待选缓存单元作为目标缓存单元,第三级替换模块130用于在中间待选缓存单元不满足目标QoS要求时,从预先对目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中选取出目标分组,并从目标分组中选取出一个满足目标QoS的缓冲单元作为目标缓存单元。显然,基于本申请实施例提供的缓冲存储装置100,在目标应用程序的运行过程中,在对缓冲存储装置100中满足目标QoS要求(目标应用程序对应的QoS要求)的缓存单元进行数据替换时,便能够通过三级替换模块,最终选取出满足目标QoS要求的目标缓存单元,再用于数据替换,由于三级替换模块采用的替换策略是不同的,因此,相对于现有技术中,仅通过伪随机替换策略,多次从目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为目标缓存单元,直至选取出的目标缓存单元满足目标QoS要求为止的方案而言,耗时较短,那么,选取出目标缓存单元,以使目标缓存单元成功映射与目标应用程序相关数据的总耗时也会相对减少,最终,提高了缓冲存储装置100的命中率。
本申请实施例提供的处理器和电子设备具有与上述缓冲存储装置100相同的有益效果,本申请实施例对此不作赘述。
需要说明的是,在本申请实施例的相关描述中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,可以是电学上的电连接、通信连接,其中,通信连接又可以是有线通信连接或无线通信连接,此外,可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,对于本领域的技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
以上所述仅为本申请的部分实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种缓冲存储装置,其特征在于,包括第一级替换模块、第二级替换模块和第三级替换模块;
所述第一级替换模块用于在目标缓存组包括的N个缓存单元中存在满足目标服务质量要求,且无效的缓存单元时,从满足所述目标服务质量要求,且无效的缓存单元中选取出一个缓存单元,作为目标缓存单元,N=2M,M≥0,且为整数;
所述第二级替换模块用于在所述目标缓存组包括的N个缓存单元中不存在满足所述目标服务质量要求,且无效的缓存单元时,从所述目标缓存组包括的N个缓存单元中随机选取出一个缓存单元,作为中间待选缓存单元,并在所述中间待选缓存单元满足所述目标服务质量要求时,将所述中间待选缓存单元作为所述目标缓存单元;
所述第三级替换模块用于在所述中间待选缓存单元不满足所述目标服务质量要求时,从预先对所述目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中选取出目标分组,并从所述目标分组中选取出一个满足所述目标服务质量的缓冲单元作为所述目标缓存单元。
2.根据权利要求1所述的缓冲存储装置,其特征在于,所述第一级替换模块包括多级第一选择单元,所述多级第一选择单元级联;
所述多级第一选择单元中,每级第一选择单元用于从第一目标数量个缓存单元中,选取出第二目标数量个缓存单元;
其中,在所述第一目标数量个缓存单元中存在满足所述目标服务质量要求,且无效的缓存单元时,满足所述目标服务质量要求,且无效的缓存单元中至少部分缓存单元包含于所述第二目标数量个缓存单元中,且针对所述多级第一选择单元中的每级第一选择单元,若所述第一选择单元为所述多级第一选择单元中的首级第一选择单元,则所述第一选择单元对应的第一目标数量个缓存单元为所述目标缓存组包括的N个缓存单元,若所述第一选择单元非所述多级第一选择单元中的首级第一选择单元,则所述第一选择单元对应的第一目标数量个缓存单元为所述第一选择单元的上一级第一选择单元选取出的多个缓存单元。
3.根据权利要求2所述的缓冲存储装置,其特征在于,所述第一选择单元包括多个第一选择子单元;
针对所述多级第一选择单元中的每级第一选择单元,所述第一选择单元包括的多个第一选择子单元中,每个第一选择子单元与所述第一选择单元对应的第一目标数量个缓存单元中包括的至少两个缓存单元对应,且所述第一选择子单元用于从对应的至少两个缓存单元中选取出一个缓存单元,作为第一初步待选缓存单元。
4.根据权利要求3所述的缓冲存储装置,其特征在于,针对所述多级第一选择单元中的每级第一选择单元,所述第一选择单元包括的多个第一选择子单元中,每个第一选择子单元又包括第一选择控制器和第一数据选择器;
针对所述第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,所述第一选择子单元中,第一选择控制器用于根据所述第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得所述第一选择子单元中,第一数据选择器的选择控制信号,所述第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志用于表征所述缓存单元是否为满足所述目标服务质量要求,且无效的缓存单元;
针对所述第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,所述第一选择子单元中,第一数据选择器用于根据对应的选择控制信号,从所述第一选择子单元对应的至少两个缓存单元中选取出所述第一初步待选缓存单元;
针对所述第一选择单元包括的多个第一选择子单元中的每个第一选择子单元,所述第一选择子单元中,第一选择控制器还用于根据所述第一选择子单元对应的至少两个缓存单元中,每个缓存单元的可用标志,获得对应的第一初步待选缓存单元的可用标志,所述第一初步待选缓存单元的可用标志用于表征所述第一初步待选缓存单元是否为满足所述目标服务质量要求,且无效的缓存单元。
5.根据权利要求4所述的缓冲存储装置,其特征在于,针对所述多级第一选择单元中的末级第一选择单元,若所述末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元为满足所述目标服务质量要求,且无效的缓存单元,则表征所述目标缓存组包括的N个缓存单元中存在满足所述目标服务质量要求,且无效的缓存单元,并将所述末级第一选择单元中,第一数据选择器选取出的第一初步待选缓存单元作为所述目标缓存单元;
针对所述多级第一选择单元中的末级第一选择单元,若所述末级第一选择单元中,第一选择子单元包括的第一选择控制器获得的可用标志表征对应的第一初步待选缓存单元非满足所述目标服务质量要求,且无效的缓存单元,则表征所述目标缓存组包括的N个缓存单元中不存在满足所述目标服务质量要求,且无效的缓存单元。
6.根据权利要求1所述的缓冲存储装置,其特征在于,所述第二级替换模块包括伪随机替换单元和判断单元;
所述伪随机替换单元用于在所述目标缓存组包括的N个缓存单元中,不存在满足所述目标服务质量要求,且无效的缓存单元时,通过伪随机替换策略,从所述目标缓存组包括的N个缓存单元中,随机选取出一个缓存单元,作为中间待选缓存单元;
所述判断单元用于判断所述中间待选缓存单元是否满足所述目标服务质量要求,以在所述中间待选缓存单元满足所述目标服务质量要求时,将所述中间待选缓存单元,作为所述目标缓存单元。
7.根据权利要求6所述的缓冲存储装置,其特征在于,所述伪随机替换单元包括多级触发器、第一非门、异或门和第二数据选择器;
所述多级触发器级联,且所述多级触发器中,末级触发器的输出端通过所述第一非门与所述异或门的第一输入端连接,所述多级触发器中,除所述末级触发器之外的任意触发器的输出端与所述异或门的第二输入端连接,所述异或门的输出端与所述多级触发器中,首级触发器的输入端连接;
所述第二数据选择器的多个输入端分别与所述多级触发器的输出端连接,用于从所述多级触发器的输出信号中选取出第三目标数量条输出信号,作为所述中间待选缓存单元的第一组内标识号。
8.根据权利要求1所述的缓冲存储装置,其特征在于,所述目标分组为第一目标分组或第二目标分组,所述第一目标分组为预先对所述目标缓存组包括的N个缓存单元进行分组而获得的多组缓存分组中,包括所述中间待选缓存单元的缓存分组,所述第二目标分组中存在满足所述目标服务质量要求的缓存单元,所述第三级替换模块包括第一组内选取单元和可用组判断单元;
所述第一组内选取单元用于在所述中间待选缓存单元不满足所述目标服务质量要求,而所述第一目标分组中存在满足所述目标服务质量要求的缓存单元时,从所述第一目标分组中选取出一条满足所述目标服务质量要求的缓存单元,作为所述目标缓存单元;
所述可用组判断单元用于在所述第一目标分组中不存在满足所述目标服务质量要求的缓存单元时,从所述多组缓存分组中,选取出所述第二目标分组,并在所述第二目标分组中,选取出一条满足所述目标服务质量要求的缓存单元,作为所述目标缓存单元。
9.根据权利要求8所述的缓冲存储装置,其特征在于,所述第一组内选取单元包括第一移位选取单元和第一判断单元;
所述第一移位选取单元用于在所述中间待选缓存单元不满足所述目标服务质量要求时,在所述第一目标分组中,从与所述中间待选缓存单元相邻的缓存单元起,按照排列位置依次选取缓存单元,作为待判断缓存单元;
所述第一判断单元用于在所述第一移位选取单元每选取出一条待判断缓存单元时,判断所述待判断缓存单元是否满足所述目标服务质量要求,若所述待判断缓存单元满足所述目标服务质量要求,则将所述待判断缓存单元,作为所述目标缓存单元,若所述待判断缓存单元不满足所述目标服务质量要求,则控制所述第一移位选取单元选取新的待判断缓存单元。
10.根据权利要求8所述的缓冲存储装置,其特征在于,所述可用组判断单元包括第二移位选取单元、第二判断单元和目标获取单元;
所述第二移位选取单元用于在所述第一目标分组中不存在满足所述目标服务质量要求的缓存单元时,在所述多组缓存分组中,从与所述第一目标分组相邻的缓存分组起,按照排列位置依次选取缓存分组,作为待判断缓存分组;
所述第二判断单元用于在所述第二移位选取单元每选取出一组待判断缓存分组时,判断所述待判断缓存分组中是否存在满足所述目标服务质量要求的缓存单元,若所述待判断缓存分组中存在满足所述目标服务质量要求的缓存单元,则将所述待判断缓存分组,作为所述第二目标分组,若所述待判断缓存分组中不存在满足所述目标服务质量要求的缓存单元,则控制所述第二移位选取单元选取新的待判断缓存分组;
所述目标获取单元用于在从所述第二目标分组中,选取出一条满足所述目标服务质量要求的一个缓存单元作为终级待选缓存单元之后,将所述终级待选缓存单元作为所述目标缓存单元。
11.根据权利要求10所述的缓冲存储装置,其特征在于,所述目标获取单元包括第三数据选择器和多个第二组内选取单元,所述多个第二组内选取单元与所述多组缓存分组一一对应;
针对所述多个第二组内选取单元中的每个第二组内选取单元,所述第二组内选取单元用于在对应的缓存分组中存在满足目标服务质量要求的缓存单元时,从对应的缓存分组中选取出一条满足目标服务质量要求的缓存单元作为终级待选缓存单元;
所述第三数据选择器用于从所述多组缓存分组中确定出所述第二目标分组,并将所述第二目标分组对应的终级待选缓存单元作为所述目标缓存单元。
12.一种处理器,其特征在于,包括权利要求1~11中任意一项所述的缓冲存储装置。
13.一种电子设备,其特征在于,包括权利要求12所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011626198.6A CN112667534B (zh) | 2020-12-31 | 2020-12-31 | 缓冲存储装置、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011626198.6A CN112667534B (zh) | 2020-12-31 | 2020-12-31 | 缓冲存储装置、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667534A true CN112667534A (zh) | 2021-04-16 |
CN112667534B CN112667534B (zh) | 2023-10-20 |
Family
ID=75412535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011626198.6A Active CN112667534B (zh) | 2020-12-31 | 2020-12-31 | 缓冲存储装置、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667534B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073533A (zh) * | 2011-01-14 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 支持动态二进制翻译的多核体系结构 |
CN102999444A (zh) * | 2012-11-13 | 2013-03-27 | 华为技术有限公司 | 一种用于替换缓存模块中数据的方法及装置 |
CN104778132A (zh) * | 2015-04-08 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种多核处理器目录缓存替换方法 |
CN109074320A (zh) * | 2017-03-08 | 2018-12-21 | 华为技术有限公司 | 一种缓存替换方法,装置和系统 |
CN109408411A (zh) * | 2018-09-25 | 2019-03-01 | 浙江工商大学 | 基于数据访问次数的GPGPU的L1 Cache管理方法 |
WO2019224518A1 (en) * | 2018-05-24 | 2019-11-28 | Arm Limited | Branch prediction cache for multiple software workloads |
-
2020
- 2020-12-31 CN CN202011626198.6A patent/CN112667534B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073533A (zh) * | 2011-01-14 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 支持动态二进制翻译的多核体系结构 |
CN102999444A (zh) * | 2012-11-13 | 2013-03-27 | 华为技术有限公司 | 一种用于替换缓存模块中数据的方法及装置 |
CN104778132A (zh) * | 2015-04-08 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种多核处理器目录缓存替换方法 |
CN109074320A (zh) * | 2017-03-08 | 2018-12-21 | 华为技术有限公司 | 一种缓存替换方法,装置和系统 |
WO2019224518A1 (en) * | 2018-05-24 | 2019-11-28 | Arm Limited | Branch prediction cache for multiple software workloads |
CN109408411A (zh) * | 2018-09-25 | 2019-03-01 | 浙江工商大学 | 基于数据访问次数的GPGPU的L1 Cache管理方法 |
Non-Patent Citations (1)
Title |
---|
杜慧敏;杨超群;季凯柏;: "嵌入式GPU中二级高速缓存的设计与实现", 微电子学与计算机 * |
Also Published As
Publication number | Publication date |
---|---|
CN112667534B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7243191B2 (en) | Compressing data in a cache memory | |
CN107729535B (zh) | 一种键值数据库内布隆过滤器的配置方法 | |
Cheng et al. | LRU-SP: a size-adjusted and popularity-aware LRU replacement algorithm for web caching | |
JP2012151840A (ja) | データ圧縮装置、その動作方法、及びそれを含むデータ処理装置 | |
CN101449462A (zh) | 基于集合关联高速缓存映射技术的高速数据压缩 | |
US20180136937A1 (en) | Efficient random number generation for update events in multi-bank conditional branch predictor | |
US6334173B1 (en) | Combined cache with main memory and a control method thereof | |
CN102176750A (zh) | 高性能自适应二进制算术编码器 | |
US9323774B2 (en) | Compressed pointers for cell structures | |
CN105446897A (zh) | 高速缓存哈希 | |
CN116501249A (zh) | 一种减少gpu内存重复数据读写的方法及相关设备 | |
US7761662B2 (en) | Cache memory device and microprocessor | |
CN107291630B (zh) | 一种高速缓冲存储器处理方法及装置 | |
US20070022269A1 (en) | Storage space management methods and systems | |
CN112667534B (zh) | 缓冲存储装置、处理器及电子设备 | |
CN115964002B (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
US7256715B1 (en) | Data compression using dummy codes | |
US6321301B1 (en) | Cache memory device with prefetch function and method for asynchronously renewing tag addresses and data during cache miss states | |
US7865666B2 (en) | Cache memory systems and methods thereof | |
CN100356345C (zh) | 访问高速缓存管线的方法和系统 | |
CN114253458A (zh) | 内存缺页异常的处理方法、装置、设备及存储介质 | |
KR20220100030A (ko) | 패턴 기반 캐시 블록 압축 | |
CN116796685B (zh) | 数据拼接模块及数据传递方法、介质、电子设备、芯片 | |
CN116049032B (zh) | 基于光线追踪的数据调度方法、装置及设备、存储介质 | |
CN112699063B (zh) | 用于解决通用ai处理器存储带宽效率的动态缓存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |