基于处理器的系统的经压缩存储器系统中的基于优先级的高速缓存行拟合的制作方法
- 国知局
- 2024-07-31 22:56:39
所公开的实施方案一般涉及存储器系统,并且具体地涉及基于处理器的系统的经压缩存储器系统中的基于优先级的高速缓存行拟合。
背景技术:
1、随着由常规基于处理器的系统执行的应用在大小和复杂性方面的增加,存储器带宽可变成对系统性能的约束。虽然可通过使用较宽的存储器通信信道来增加可用存储器带宽,但此方法可能会在增加成本和/或集成电路(ic)上的存储器所需的附加面积方面招致惩罚。在不增加存储器通信信道的宽度的情况下增加基于处理器的系统中的存储器带宽的一种方法是通过使用数据压缩。可在基于处理器的系统中采用数据压缩系统来以压缩格式存储数据,因此增加有效存储容量而不增加物理存储容量。就这一点而言,一些常规的数据压缩系统提供压缩引擎来压缩待写入主系统存储器的数据。在执行压缩后,压缩引擎将经压缩数据连同元数据一起写入系统存储器,该元数据将经压缩数据的虚拟地址映射到实际存储经压缩数据的系统存储器中的物理地址。然而,因为元数据用于地址映射,所以存储器访问招致额外的读取和写入,这负面地影响系统性能。例如,访问存储器中的特定高速缓存行可能需要访问存储器中的元数据和地址计算的附加层以确定对应于该特定高速缓存行的存储器中的经压缩高速缓存行的位置。这会增加采用存储容量压缩的基于处理器的系统的复杂性、成本和延迟。
技术实现思路
1、因此,需要最小化传统压缩系统的开销的系统、方法和技术。本文所述的技术可用于去除大多数高速缓存行的元数据,并且因此改善高速缓存行访问的平均性能。
2、在一个方面,提供了一种用于在基于处理器的系统的经压缩存储器系统中压缩数据的方法。该方法包括:将存储区域划分为多个数据区域,每个数据区域与相应的优先级等级相关联。该方法还包括:(i)从多个数据区域中的第一数据区域选择第一高速缓存行,以及(ii)从多个数据区域中的第二数据区域选择第二高速缓存行。第一数据区域具有比第二数据区域更高的优先级等级。该方法还包括:(i)压缩第一高速缓存行以获得第一经压缩高速缓存行,以及(ii)压缩第二高速缓存行以获得第二经压缩高速缓存行。根据确定第一高速缓存行是可压缩的,该方法包括:(i)将第一经压缩高速缓存行写入候选经压缩高速缓存行的第一预先确定的部分,以及(ii)将第二高速缓存行或第二经压缩高速缓存行的第二部分写入候选经压缩高速缓存行的第二预先确定的部分。该第一预先确定的部分大于该第二预先确定的部分。
3、在一些具体实施中,该方法还包括:根据确定(i)第一高速缓存行是不可压缩的、(ii)第二高速缓存行是不可压缩的,或者(iii)第二经压缩高速缓存行未拟合在候选经压缩高速缓存行的第二预先确定的部分内,在候选经压缩高速缓存行中设定溢出指针。根据第二高速缓存行的压缩率或第二经压缩高速缓存行的大小,溢出指针指向多个溢出块中的一个溢出块。多个溢出块中的每个溢出块具有不同的大小。
4、在一些具体实施中,该方法还包括:接收对第一高速缓存行或第二高速缓存行的读取请求;以及响应于接收到该读取请求:根据确定溢出指针被设定,根据溢出指针从多个溢出块中的溢出块检索数据。
5、在一些具体实施中,该方法还包括:根据确定第一高速缓存行是可压缩的:在候选经压缩高速缓存行中设定第一压缩率控制位;以及根据确定第一高速缓存行是不可压缩的:将第一高速缓存行的第一部分写入候选经压缩高速缓存行;将第一高速缓存行的剩余部分写入溢出块;重置候选经压缩高速缓存行中的第一压缩率控制位;以及在候选经压缩高速缓存行中设定溢出指针以指向溢出块。
6、在一些具体实施中,该方法还包括:响应于接收到对第一高速缓存行的读取请求:根据确定第一压缩率控制位被设定:从候选经压缩高速缓存行检索第一高速缓存行;以及根据确定第一压缩率控制位被重置:从候选经压缩高速缓存行检索第一高速缓存行的第一部分;以及基于溢出指针来从溢出块检索第一高速缓存行的第二部分。
7、在一些具体实施中,该方法还包括:根据确定第一高速缓存行是不可压缩的:根据第二高速缓存行是否是可压缩的,将第二高速缓存行或第二经压缩高速缓存行写入溢出块;以及重置候选经压缩高速缓存行中的第二压缩率控制位以指示第二高速缓存行是否是不可压缩的。
8、在一些具体实施中,该方法还包括:响应于接收到对第二高速缓存行的读取请求:基于第二压缩率控制位来从溢出块检索第二高速缓存行或第二经压缩高速缓存行。
9、在一些具体实施中,该方法还包括:响应于接收到对第一高速缓存行的高速缓存行写入请求:压缩第一高速缓存行以获得具有第一大小的第一经更新高速缓存行;根据确定第一大小等于或小于候选经压缩高速缓存行的第一预先确定的大小,将第一经更新高速缓存行写入候选经压缩高速缓存行;根据确定第一大小大于第一预先确定的大小并且等于或小于候选经压缩高速缓存行的第二预先确定的大小,基于第一经更新高速缓存行来对候选经压缩高速缓存行执行读取-修改-写入操作;以及根据确定第一大小大于候选经压缩高速缓存行的第二预先确定的大小,基于第一经更新高速缓存行来对候选经压缩高速缓存行执行读取-修改-写入操作并且对多个溢出块中的溢出块执行读取-修改-写入操作。
10、在一些具体实施中,第一预先确定的大小是候选经压缩高速缓存行的大小的一半。
11、在一些具体实施中,该方法还包括:在将第二高速缓存行或第二经压缩高速缓存行的第二部分写入候选经压缩高速缓存行的第二预先确定的部分时,在候选经压缩高速缓存行中写入结束位索引以指示第二高速缓存行或第二经压缩高速缓存行的第二部分被写入候选经压缩高速缓存行内的何处;以及基于候选经压缩高速缓存行中的结束位索引来计算第二预先确定的大小。
12、在一些具体实施中,该方法还包括:响应于接收到对第二高速缓存行的高速缓存行写入请求:压缩第二高速缓存行以获得具有第二大小的第二经更新高速缓存行;根据确定第二大小与第一经压缩高速缓存行的大小的总和小于候选经压缩高速缓存行的第一预先确定的大小,执行读取-修改-写入操作以将第二经更新高速缓存行写入候选经压缩高速缓存行;以及根据确定第二大小与第一经压缩高速缓存行的大小的总和不小于候选经压缩高速缓存行的第一预先确定的大小,(i)执行第一读取-修改-写入操作以将第二经更新高速缓存行的第一部分写入候选经压缩高速缓存行,以及(ii)执行第二读取-修改-写入操作以将第二经更新高速缓存行的剩余部分写入溢出指针所指向的溢出块。
13、在一些具体实施中,该方法还包括:响应于接收到对第一高速缓存行或第二高速缓存行的高速缓存行写入请求:压缩第一高速缓存行或第二高速缓存行以获得具有经更新大小的经更新经压缩高速缓存行;以及根据确定经更新大小不能拟合在溢出指针所指向的溢出块内,释放溢出指针并更新溢出指针以指向多个溢出块中的新溢出块。
14、在一些具体实施中,第一经压缩高速缓存行、第二经压缩高速缓存行和候选经压缩高速缓存行具有相等的大小。
15、在一些具体实施中,第一数据区域和第二数据区域具有相等的大小。
16、在一些具体实施中,第二预先确定的部分小于候选经压缩高速缓存行的大小的一半。
17、在一些具体实施中,在相反的方向上将第一经压缩高速缓存行和第二经压缩高速缓存行写入候选经压缩高速缓存行。第一经压缩高速缓存行和第二经压缩高速缓存行隔开一个或多个字节。
18、另一方面,提供了一种基于处理器的系统的经压缩存储器系统。该经压缩存储器系统包括被配置为将存储区域划分为多个数据区域的存储器划分电路。每个数据区域与相应的优先级等级相关联。该经压缩存储器系统还包括高速缓存行选择电路,该高速缓存行选择电路被配置为:(i)从多个数据区域中的第一数据区域选择第一高速缓存行,以及(ii)从多个数据区域中的第二数据区域选择第二高速缓存行。第一数据区域具有比第二数据区域更高的优先级等级。该经压缩存储器系统还包括压缩电路,该压缩电路被配置为:(i)压缩第一高速缓存行以获得第一经压缩高速缓存行,以及(ii)压缩第二高速缓存行以获得第二经压缩高速缓存行。该经压缩存储器系统还包括高速缓存行封装电路,该高速缓存行封装电路被配置为:根据确定第一高速缓存行是可压缩的:(i)将第一经压缩高速缓存行写入候选经压缩高速缓存行的第一预先确定的部分,以及(ii)将第二高速缓存行或第二经压缩高速缓存行的第二部分写入候选经压缩高速缓存行的第二预先确定的部分。该第一预先确定的部分大于该第二预先确定的部分。
19、在一些具体实施中,高速缓存行封装电路还被配置为:根据确定(i)第一高速缓存行是不可压缩的、(ii)第二高速缓存行是不可压缩的,或者(iii)第二经压缩高速缓存行未拟合在候选经压缩高速缓存行的第二预先确定的部分内,在候选经压缩高速缓存行中设定溢出指针。根据第二高速缓存行的压缩率或第二经压缩高速缓存行的大小,溢出指针指向多个溢出块中的一个溢出块,并且多个溢出块中的每个溢出块具有不同的大小。
20、在一些具体实施中,高速缓存行封装电路还被配置为:接收对第一高速缓存行或第二高速缓存行的读取请求;以及响应于接收到该读取请求:根据确定溢出指针被设定,根据溢出指针从多个溢出块中的溢出块检索数据。
21、在一些具体实施中,高速缓存行封装电路还被配置为:根据确定第一高速缓存行是可压缩的:在候选经压缩高速缓存行中设定第一压缩率控制位;以及根据确定第一高速缓存行是不可压缩的:将第一高速缓存行的第一部分写入候选经压缩高速缓存行;将第一高速缓存行的剩余部分写入溢出块;重置候选经压缩高速缓存行中的第一压缩率控制位;以及在候选经压缩高速缓存行中设定溢出指针以指向溢出块。
22、在一些具体实施中,高速缓存行封装电路还被配置为:响应于接收到对第一高速缓存行的读取请求:根据确定第一压缩率控制位被设定:从候选经压缩高速缓存行检索第一高速缓存行;以及根据确定第一压缩率控制位被重置:从候选经压缩高速缓存行检索第一高速缓存行的第一部分;以及基于溢出指针来从溢出块检索第一高速缓存行的第二部分。
23、在一些具体实施中,高速缓存行封装电路还被配置为:根据确定第一高速缓存行是不可压缩的:根据第二高速缓存行是否是可压缩的,将第二高速缓存行或第二经压缩高速缓存行写入溢出块;以及重置候选经压缩高速缓存行中的第二压缩率控制位以指示第二高速缓存行是否是不可压缩的。
24、在一些具体实施中,高速缓存行封装电路还被配置为:响应于接收到对第二高速缓存行的读取请求:基于第二压缩率控制位来从溢出块检索第二高速缓存行或第二经压缩高速缓存行。
25、在一些具体实施中,高速缓存行封装电路还被配置为:响应于接收到对第一高速缓存行的高速缓存行写入请求:压缩第一高速缓存行以获得具有第一大小的第一经更新高速缓存行;根据确定第一大小等于或小于候选经压缩高速缓存行的第一预先确定的大小,将第一经更新高速缓存行写入候选经压缩高速缓存行;根据确定第一大小大于第一预先确定的大小并且等于或小于候选经压缩高速缓存行的第二预先确定的大小,基于第一经更新高速缓存行来对候选经压缩高速缓存行执行读取-修改-写入操作;以及根据确定第一大小大于候选经压缩高速缓存行的第二预先确定的大小,基于第一经更新高速缓存行来对候选经压缩高速缓存行执行读取-修改-写入操作并且对多个溢出块中的溢出块执行读取-修改-写入操作。
26、在一些具体实施中,第一预先确定的大小是候选经压缩高速缓存行的大小的一半。
27、在一些具体实施中,高速缓存行封装电路还被配置为:在将第二高速缓存行或第二经压缩高速缓存行的第二部分写入候选经压缩高速缓存行的第二预先确定的部分时,在候选经压缩高速缓存行中写入结束位索引以指示第二高速缓存行或第二经压缩高速缓存行的第二部分被写入候选经压缩高速缓存行内的何处;以及基于候选经压缩高速缓存行中的结束位索引来计算第二预先确定的大小。
28、在一些具体实施中,高速缓存行封装电路还被配置为:响应于接收到对第二高速缓存行的高速缓存行写入请求:压缩第二高速缓存行以获得具有第二大小的第二经更新高速缓存行;根据确定第二大小与第一经压缩高速缓存行的大小的总和小于候选经压缩高速缓存行的第一预先确定的大小,执行读取-修改-写入操作以将第二经更新高速缓存行写入候选经压缩高速缓存行;以及根据确定第二大小与第一经压缩高速缓存行的大小的总和不小于候选经压缩高速缓存行的第一预先确定的大小,(i)执行第一读取-修改-写入操作以将第二经更新高速缓存行的第一部分写入候选经压缩高速缓存行,以及(ii)执行第二读取-修改-写入操作以将第二经更新高速缓存行的剩余部分写入溢出指针所指向的溢出块。
29、在一些具体实施中,高速缓存行封装电路还被配置为:响应于接收到对第一高速缓存行或第二高速缓存行的高速缓存行写入请求:压缩第一高速缓存行或第二高速缓存行以获得具有经更新大小的经更新经压缩高速缓存行;以及根据确定经更新大小不能拟合在溢出指针所指向的溢出块内,释放溢出指针并更新溢出指针以指向多个溢出块中的新溢出块。
30、在一些具体实施中,第一经压缩高速缓存行、第二经压缩高速缓存行和候选经压缩高速缓存行具有相等的大小。
31、在一些具体实施中,第一数据区域和第二数据区域具有相等的大小。
32、在一些具体实施中,第二预先确定的部分小于候选经压缩高速缓存行的大小的一半。
33、在一些具体实施中,高速缓存行封装电路还被配置为:在相反的方向上将第一经压缩高速缓存行和第二经压缩高速缓存行写入候选经压缩高速缓存行。第一经压缩高速缓存行和第二经压缩高速缓存行隔开一个或多个字节。
34、另一方面,提供了一种基于处理器的系统的经压缩存储器系统。该经压缩存储器系统包括存储区域,该存储区域包括多个高速缓存行。每个高速缓存行具有多个优先级等级中的一个优先级等级。该经压缩存储器系统还包括经压缩存储区域,该经压缩存储区域包括多个经压缩高速缓存行。每个经压缩高速缓存行包括第一组数据位,该第一组数据位被配置为在第一方向上保持第一高速缓存行的一部分或压缩后的第一高速缓存行的一部分,该第一高速缓存行具有第一优先级等级。每个经压缩高速缓存行还包括第二组数据位,该第二组数据位被配置为在与第一方向相反的第二方向上保持第二高速缓存行的一部分或压缩后的第二高速缓存行的一部分,该第二高速缓存行具有比第一优先级等级低的第二优先级等级。第一组数据位包括比第二组数据位更多数目的位。
35、在一些具体实施中,该经压缩存储器系统还包括溢出存储区域,该溢出存储区域包括多个溢出仓。每个溢出仓被配置为保持不同数目的字节。每个经压缩高速缓存行还包括一组溢出指针位,该组溢出指针位被配置为保持指向多个溢出仓中的溢出仓的指针。
36、在一些具体实施中,每个经压缩高速缓存行还包括:用于指示第一高速缓存行的压缩率的第一控制位;以及用于指示第二高速缓存行的压缩率的第二控制位。
37、在一些具体实施中,该经压缩存储器系统还包括溢出存储区域,该溢出存储区域包括多个溢出仓,其中每个溢出仓被配置为保持不同数目的字节。每个经压缩高速缓存行还包括一组位,该组位被配置为保持多个溢出仓中的溢出仓的大小。
38、在一些具体实施中,每个经压缩高速缓存行还包括指示第二组数据位的结束的结束位索引。
39、在一些具体实施中,每个溢出仓被配置为在第一方向上保持第一高速缓存行的位和/或第二高速缓存行或压缩后的第二高速缓存行的位。
40、在一些具体实施中,第一组数据位和第二组数据位隔开一个或多个字节。
41、在一些具体实施中,每个高速缓存行和每个经压缩高速缓存行具有相同的大小。
42、在一些具体实施中,当压缩后的第一高速缓存行或压缩后的第二高速缓存行未拟合在经压缩高速缓存行中时,则每个经压缩高速缓存行还包括一组溢出指针位,该组溢出指针位被配置为保持指向多个溢出仓中的溢出仓的指针。溢出仓被配置为保持第一高速缓存行、压缩后的第一高速缓存行、第二高速缓存行和/或压缩后的第二高速缓存行的位。
43、在一些具体实施中,第二组数据位还被配置为保持指示经压缩高速缓存行中的溢出以及第二组数据位的结束的多个控制位。
44、另一方面,提供了一种非暂态计算机可读介质。该非暂态计算机可读介质在其上存储计算机可执行指令,该计算机可执行指令在被处理器执行时使得处理器执行本文所述的方法中的任一方法。
45、所附权利要求的范围内的系统、方法和设备的各种实施方案各自具有若干方面,这些方面中没有任何单一方面唯一地负责本文所述的属性。在不限制所附权利要求的范围的情况下,在考虑本公开后并且具体地在考虑名称为“具体实施方式”的部分后,将理解如何使用各种实施方案的各方面来实现存储器设备的存储装置中的较高吞吐量。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195436.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。