掌桥专利:专业的专利平台
掌桥专利
首页

用于事务层分组的压缩寻址

文献发布时间:2024-04-18 20:01:23


用于事务层分组的压缩寻址

背景技术

针对事务层分组(transactionlayerpacket)的互连的改进以较弱的信号完整性为代价增加了带宽。虽然纠错码或其他数据增强了信号完整性,但它强加了显著的编码开销,从而降低了系统性能。

附图说明

图1是根据一些实施方案的用于事务层分组的压缩寻址的示例性处理器的框图。

图2是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

图3是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

图4是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

图5是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

图6是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

图7是根据一些实施方案的用于事务层分组的压缩寻址的示例性方法的流程图。

具体实施方式

在一些实施方案中,一种用于事务层分组的压缩寻址的方法包括:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从一个或多个第二事务层分组的一个或多个存储器地址中移除该一个或多个低熵地址位;以及发送该一个或多个第二事务层分组。

在一些实施方案中,在第一时段内确定该多个第一事务层分组中的该一个或多个低熵地址位包括:针对该多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于该多个第一事务层分组中的每个地址位的位值来修改该对应的至少一个计数器;以及基于该多个第一事务层分组中的每个地址位的该对应的至少一个计数器来确定一个或多个低熵地址位。在一些实施方案中,该方法还包括:在第一位掩码寄存器中存储指示该一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储一个或多个低熵位的一个或多个预测值。在一些实施方案中,该方法还包括使该第一位掩码寄存器和该第一位阵列寄存器与该一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。在一些实施方案中,该方法还包括基于该一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示一个或多个所移除低熵位的一个或多个存储值来重新生成一个或多个存储器地址。在一些实施方案中,该一个或多个存储值包括存储指示一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于一个或多个低熵位的一个或多个值的第二位阵列寄存器。在一些实施方案中,该方法还包括向该一个或多个第二事务层分组的接收方发送指示该一个或多个第二事务层分组包括一个或多个压缩目的地地址的信号。

在一些实施方案中,一种用于对事务层分组进行压缩寻址的装置执行包括以下方面的步骤:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从一个或多个第二事务层分组的一个或多个存储器地址中移除该一个或多个低熵地址位;以及发送该一个或多个第二事务层分组。

在一些实施方案中,在第一时段内确定该多个第一事务层分组中的该一个或多个低熵地址位包括:针对该多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于该多个第一事务层分组中的每个地址位的位值来修改该对应的至少一个计数器;以及基于该多个第一事务层分组中的每个地址位的该对应的至少一个计数器来确定一个或多个低熵地址位。在一些实施方案中,该步骤还包括:在第一位掩码寄存器中存储指示该一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储一个或多个低熵位的一个或多个预测值。在一些实施方案中,该步骤还包括使该第一位掩码寄存器和该第一位阵列寄存器与该一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。在一些实施方案中,该步骤还包括基于该一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示一个或多个所移除低熵位的一个或多个存储值来重新生成一个或多个存储器地址。在一些实施方案中,该一个或多个存储值包括存储指示一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于一个或多个低熵位的一个或多个值的第二位阵列寄存器。在一些实施方案中,该步骤还包括向该一个或多个第二事务层分组的接收方发送指示该一个或多个第二事务层分组包括一个或多个压缩目的地地址的信号。

在一些实施方案中,一种用于对事务层分组进行压缩寻址的系统包括执行以下步骤的装置:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从一个或多个第二事务层分组的一个或多个存储器地址中移除该一个或多个低熵地址位;以及发送该一个或多个第二事务层分组。

在一些实施方案中,在第一时段内确定该多个第一事务层分组中的该一个或多个低熵地址位包括:针对该多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于该多个第一事务层分组中的每个地址位的位值来修改该对应的至少一个计数器;以及基于该多个第一事务层分组中的每个地址位的该对应的至少一个计数器来确定一个或多个低熵地址位。在一些实施方案中,该步骤还包括:在第一位掩码寄存器中存储指示该一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储一个或多个低熵位的一个或多个预测值。在一些实施方案中,该步骤还包括使该第一位掩码寄存器和该第一位阵列寄存器与该一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。在一些实施方案中,该步骤还包括基于该一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示一个或多个所移除低熵位的一个或多个存储值来重新生成一个或多个存储器地址。在一些实施方案中,该一个或多个存储值包括存储指示一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于一个或多个低熵位的一个或多个值的第二位阵列寄存器。在一些实施方案中,该步骤还包括向该一个或多个第二事务层分组的接收方发送指示该一个或多个第二事务层分组包括一个或多个压缩目的地地址的信号。

图1是非限制性示例性系统100的框图。示例性系统100可在包括移动设备、个人计算机、外围硬件部件、游戏设备、机顶盒等的各种计算设备中被实现。处理器100包括设备102a和102b。设备102a/102b包括经由互连器104通信地联接的硬件设备或部件(例如,计算系统的硬件设备或部件)。例如,在一些实施方案中,设备102a/102b包括中央处理单元(CPU)、图形处理单元(GPU)、存储器模块等。在一些实施方案中,互连器104包括外围部件接口(PCI)互连器。

设备102a/102b使用事务层分组(TLP)经由互连器104通信。例如,设备102a通过向设备102b发送一个或多个事务层分组来在设备102b上执行存储器存取命令。每个事务层分组在标头中包括存储器地址。存储器地址是用于存储器存取命令(例如,读取命令、写入命令)的目标地址。

在一些实施方案中,在事务层分组中指示的存储器地址将具有一个或多个低熵位。换句话讲,在给定的时间窗口或时段内,在所接收和/或所发送的每个事务层分组的一个或多个索引处的位将具有低程度的熵(例如,这些索引处的位在时段内跨事务层分组具有低程度的方差)。为了减少表达事务层分组中的存储器地址所需的位数,存储器地址可被“压缩”以在将事务层分组发送到其接收方之前移除低熵位。这些被移除的或“回收的”位随后可用于其他用途。例如,可使用这些回收的位来添加用于确保数据完整性的纠错码或其他数据,从而提高经由互连器的通信的完整性,而不增加事务层分组的总大小。

设备102a的压缩单元106在第一时段内确定多个第一事务层分组中的一个或多个低熵位。多个第一事务层分组是由设备102a接收的或由设备102a生成的用于传送到设备102b的事务层分组。第一时段是时间窗口,在该时间窗口期间,接收、生成第一事务层分组或将第一事务层分组设置为发送到设备102b。本文所述的第一时段和其他时段包括预定义或可配置的持续时间或间隔。

在一些实施方案中,在第一时段内确定多个第一事务层分组中的一个或多个低熵位包括针对多个第一事务层分组中的每个地址位保持对应的至少一个计数器108。在一些实施方案中,对于n位存储器地址,压缩单元106保持n个计数器108。对于第一多个事务层分组的存储器地址中的每个地址位,压缩单元106更新对应于地址位索引的计数器108。例如,在给定索引处的地址位是“1”的情况下,压缩单元106使对应于给定索引的计数器108递增。在给定索引处的地址位是“0”的情况下,压缩单元106使对应于给定索引的计数器108递减。因此,对于第一事务层分组中的每一者,每个计数器108基于对应地址位的值递增或递减。

在一些实施方案中,对于n位存储器地址,压缩单元106保持两组计数器,每组n个计数器108。换句话讲,事务层分组中的每个地址位对应于两个计数器108。对于第一多个事务层分组的存储器地址中的每个地址位,压缩单元106根据地址位的值来更新对应于地址位索引的计数器108中的一者。例如,在给定索引处的地址位是“1”的情况下,压缩单元106使对应于给定索引的第一计数器108递增。在给定索引处的地址位是“0”的情况下,压缩单元106使对应于给定索引的第二计数器108递增。因此,对于第一事务层分组中的每一者,第一计数器或第二计数器108基于对应地址位的值递增。

压缩单元106随后基于计数器108(例如,在第一时段结束时)确定一个或多个低熵地址位。例如,在其中每个地址位对应于基于对应地址位的值递增或递减的单个计数器108的一些实施方案中,通过使计数器108具有高于阈值的绝对值来识别低熵位。即,低熵位将具有较高绝对值的计数器108,因为计数器108将频繁递增或频繁递减。相反地,高熵位将具有被递增和递减到更相似程度的计数器108。

例如,假设使用t位计数器108,并且定义阈值“T”,其中0≤T≤1。在计数器108的值C

又如,在其中每个地址位对应于基于对应地址位的值交替地递增的两个计数器108的一些实施方案中,通过使一个计数器108的值显著大于另一个计数器108的值(例如,第一计数器108的值与第二计数器108之间的差超过阈值)来识别低熵位。相反,通过使第一计数器和第二计数器108具有类似的值来识别高熵位。

在一些实施方案中,为了识别哪些地址位(例如,地址位索引)被确定为低熵位,压缩单元106将位掩码存储在位掩码寄存器110a中。本领域的技术人员将理解,在一些实施方案中,位掩码存储在所分配存储器的非寄存器部分中。例如,在索引i处的地址位被确定为低熵位的情况下,索引i处的位掩码的值被设置为“1”。相反,在索引i处的地址位被确定为高熵位的情况下,索引i处的位掩码的值被设置为“0”或保持未修改。例如,在一些实施方案中,压缩单元106将位掩码寄存器110a重置或归零。因此,高熵位的位掩码索引不需要从其初始化的“0”状态进行修改。

在一些实施方案中,为了识别被确定为低熵位的地址位(例如,地址位索引)的预测值,压缩单元106将对应值存储在位阵列寄存器112a中。本领域的技术人员将理解,在一些实施方案中,预测值存储在所分配存储器的非寄存器部分中。此外,虽然位阵列寄存器112a被讨论为将值存储在阵列中,但本领域的技术人员将理解,能够使用其他非阵列数据结构。例如,在索引i处的低熵地址位的值被预测为“1”的情况下,索引i处的位阵列(存储在位阵列寄存器112a中)处的值被设置为“1”。又如,在索引i处的低熵地址位的值被预测为“0”的情况下,索引i处的位阵列(存储在位阵列寄存器112a中)处的值被设置为“0”。对于高熵地址位,不需要在位阵列寄存器112a中设置值,因为没有预测值。在一些实施方案中,在每个时段将位阵列寄存器112a重置(例如,归零、设置为全部为空或默认值)。

压缩单元106随后从与第一时段之后的第二时段相关联的一个或多个第二事务层分组的一个或多个存储器地址中移除一个或多个低熵地址位。例如,存储在位阵列寄存器110a中的位掩码用于确定存储器地址的哪些索引被确定为低熵位。对于被识别为低熵位(例如,具有位掩码值“1”)的每个索引,将这些索引处的位阵列寄存器112a的值与第二事务层分组中的存储器地址的对应值进行比较。对于被识别为低熵位的每个索引,如果第二事务层分组的存储器地址中的对应位匹配位阵列寄存器112a中的对应值(例如,如果存储器地址和位阵列的低熵位索引处的每个位的异或比较得到“0”),则从第二事务层分组的存储器地址中移除低熵地址位。

在一些实施方案中,附加的数据被编码在一个或多个第二事务层分组中,诸如纠错码或其他数据完整性数据。设备102a随后将一个或多个第二事务层分组发送到设备102b。

在一些实施方案中,对于每个时段重复上述方法(例如,以预定义间隔)。例如,针对第一时段,压缩单元106确定多个第一事务层分组的低熵地址位。例如,在第一时段期间,基于多个第一事务层分组的存储器地址来保持和更新计数器108。在第一时段结束时,识别出低熵地址位并相应地更新位掩码寄存器110a和位阵列寄存器112a。在第二时段期间,基于根据多个第一事务层分组确定的位掩码寄存器110a和位阵列寄存器112a的值,从一个或多个第二事务层分组中移除低熵地址位。另外,基于一个或多个第二事务层分组的存储器地址来重置和更新计数器108。在第二时段结束时,基于从第二事务层分组识别的低熵位来更新位掩码寄存器110a和位阵列寄存器112。然后针对第三时段,从第三事务层分组中移除匹配低熵位,等等。

设备102b的解压缩单元114为所接收的事务层分组(例如,从其中移除了一个或多个低熵位的一个或多个第二事务层分组)重新生成初始的未压缩存储器地址。为了便于重新生成存储器地址,在一些实施方案中,解压缩单元114包括与压缩单元106的位掩码寄存器110a和位阵列寄存器112a同步的位掩码寄存器110b和位阵列寄存器112b。例如,在一些实施方案中,在将值存储在位掩码寄存器110a和/或位阵列寄存器112a中之后,设备102a的压缩单元106向设备102b的解压缩单元114提供指示存储值的信号。此外,响应于移除一个或多个低熵地址位,压缩单元106向设备102b的解压缩单元114提供指示一个或多个第二事务层分组包括压缩存储器地址的信号。因此,压缩单元114基于所接收的信号确定基于存储在位掩码寄存器110b和位阵列寄存器112b中的值来重新生成一个或多个第二事务层分组的存储器地址。解压缩单元114还可包括一个或多个计数器116,以同步位掩码寄存器110a/110b和位阵列寄存器112a/112b。

虽然示例性系统100描绘了两个设备102a/102b,但应当理解,本文所述的方法可在具有任何数量的互连设备的系统中实现。此外,尽管示例性系统100将设备102a显示为具有压缩单元106并且将设备102b显示为具有解压缩单元114,但应当理解,在一些实施方案中,设备可包括压缩单元106和解压缩单元114两者,以便于具有压缩存储器地址的事务层分组的双向传输。

为了进一步说明,图2给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位。多个第一事务层分组中的每个事务层分组在标头中包括存储器地址。存储器地址是用于存储器存取命令(例如,读取命令、写入命令)的目标地址。一个或多个低熵地址位是存储器地址中跨多个第一事务层分组中的每一者具有低程度熵的位的索引。

多个第一事务层分组是由与压缩单元200相关联的设备102a接收的或由与压缩单元200相关联的设备102a生成的用于传送到设备102b的事务层分组。第一时段是时间窗口,在该时间窗口期间,接收、生成第一事务层分组或将第一事务层分组设置为发送到设备102b。本文所述的第一时段和其他时段包括预定义或可配置的持续时间或间隔。

在一些实施方案中,确定202一个或多个低熵地址位包括存储哪些位(例如,哪些位索引)对应于低地址位的指示。例如,位掩码存储在位掩码寄存器110a或存储器的其他所分配部分中。对应于低熵位索引的位掩码的每个索引被设置为预定义值(例如,“1”)。在一些实施方案中,确定202一个或多个低熵地址位包括预测一个或多个低熵地址位的值并存储预测值的指示。例如,在一些实施方案中,位阵列或其他数据结构存储在位阵列寄存器112a或存储器的其他所分配部分中。位阵列中对应于低熵地址位的每个条目被设置为该低熵地址位的预测值(例如,“0”或“1”)。

图2的方法还包括从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位。例如,存储在位阵列寄存器110a中的位掩码用于确定存储器地址的哪些索引被确定为低熵位。对于被识别为低熵位(例如,具有位掩码值“1”)的每个索引,将这些索引处的位阵列寄存器112a的值与第二事务层分组208中的存储器地址的对应值进行比较。对于被识别为低熵位的每个索引,如果第二事务层分组的存储器地址中的对应位匹配位阵列寄存器112a中的对应值,则从第二事务层分组的存储器地址中移除低熵地址位。

在一些实施方案中,附加的数据被编码在一个或多个第二事务层分组208中,诸如纠错码或其他数据完整性数据。图2的方法还包括发送206一个或多个第二事务层分组208。例如,一个或多个第二事务层分组208经由接口104发送到设备102b。

为了进一步说明,图3给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位;从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位;以及发送206一个或多个第二事务层分组208。

图3的方法与图2的方法的不同之处在于:针对第一时段,(例如,通过压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位包括针对多个第一事务层分组中的每个地址位保持302对应的至少一个计数器108。在一些实施方案中,对于n位存储器地址,压缩单元200保持n个计数器108。在其他实施方案中,对于n位存储器地址,压缩单元200保持两组计数器,每组n个计数器108。换句话讲,事务层分组中的每个地址位对应于两个计数器108。

图3的方法还包括基于多个第一事务层分组中的每个地址位的位值来修改304对应的至少一个计数器。在压缩单元200为n位存储器地址保持n个计数器108的情况下,对于第一多个事务层分组的存储器地址中的每个地址位,压缩单元200更新对应于地址位索引的计数器108。例如,在给定索引处的地址位是“1”的情况下,压缩单元200使对应于给定索引的计数器108递增。在给定索引处的地址位是“0”的情况下,压缩单元200使对应于给定索引的计数器108递减。因此,对于第一事务层分组中的每一者,每个计数器108基于对应地址位的值递增或递减。

在压缩单元200为n位存储器地址保持2*n个计数器108的情况下,对于第一多个事务层分组的存储器地址中的每个地址位,压缩单元200根据地址位的值来更新对应于地址位索引的计数器108中的一者。例如,在给定索引处的地址位是“1”的情况下,压缩单元200使对应于给定索引的第一计数器108递增。在给定索引处的地址位是“0”的情况下,压缩单元200使对应于给定索引的第二计数器108递增。因此,对于第一事务层分组中的每一者,第一计数器或第二计数器108基于对应地址位的值递增。

图3的方法还包括基于计数器108(例如,在第一时段结束时)确定306一个或多个低熵地址位。例如,在其中每个地址位对应于基于对应地址位的值递增或递减的单个计数器108的一些实施方案中,通过使计数器108具有高于阈值的绝对值来识别低熵位。即,低熵位将具有较高绝对值的计数器108,因为计数器108将频繁递增或频繁递减。相反地,高熵位将具有被递增和递减到更相似程度的计数器108。

例如,假设使用t位计数器108,并且定义阈值“T”,其中0≤T≤1。在计数器108的值C

又如,在其中每个地址位对应于基于对应地址位的值交替地递增的两个计数器108的一些实施方案中,通过使一个计数器108的值显著大于另一个计数器108的值(例如,第一计数器108的值与第二计数器108之间的差超过阈值)来识别低熵位。相反,通过使第一计数器和第二计数器108具有类似的值来识别高熵位。

为了进一步说明,图4给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位;从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位;以及发送206一个或多个第二事务层分组208。

图4的方法与图2的方法的不同之处在于:图4的方法还包括在第一位掩码寄存器406中存储402指示一个或多个低熵地址位的位掩码404。例如,在索引i处的地址位被确定为低熵位的情况下,索引i处的位掩码404的值被设置为“1”。相反,在索引i处的地址位被确定为高熵位的情况下,索引i处的位掩码404的值被设置为“0”或保持未修改。例如,在一些实施方案中,压缩单元200将位掩码寄存器406重置或归零(例如,对于每个时段)。因此,高熵位的位掩码404索引不需要从其初始化的“0”状态进行修改。

图4还包括在第一位阵列寄存器412中存储408一个或多个低熵位的一个或多个预测值410。例如,在索引i处的低熵地址位的值被预测为“1”的情况下,索引i处的位阵列(存储在位阵列寄存器412中)处的值被设置为“1”。又如,在索引i处的低熵地址位的值被预测为“0”的情况下,索引i处的位阵列(存储在位阵列寄存器412中)处的值被设置为“0”。对于高熵地址位,不需要在位阵列寄存器412中设置值,因为没有预测值。在一些实施方案中,在每个时段将位阵列寄存器412重置(例如,归零、设置为全部为空或默认值)。

为了进一步说明,图5给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位;在第一位掩码寄存器406中存储402指示一个或多个低熵地址位的位掩码404;在第一位阵列寄存器412中存储408一个或多个低熵位的一个或多个预测值410;从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位;以及发送206一个或多个第二事务层分组208。

图5的方法与图4的方法的不同之处在于:图5的方法还包括使第一位掩码寄存器406和第一位阵列寄存器412与一个或多个第二事务层分组208的接收方的第二位掩码寄存器和第二位阵列寄存器同步502。例如,解压缩单元(例如,设备102b的解压缩单元114)包括第二位掩码寄存器和第二位阵列寄存器以便于利用所接收的第二事务层分组208的压缩存储器地址重新生成存储器地址。因此,压缩单元200发送消息或信号,致使第一位掩码寄存器406和第一位阵列寄存器412的值分别存储在第二位掩码寄存器和第二位阵列寄存器中。

为了进一步说明,图6给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位;从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位;以及发送206一个或多个第二事务层分组208。

图6的方法与图2的方法的不同之处在于:图6的方法还包括向一个或多个第二事务层分组的接收方606发送602指示一个或多个第二事务层分组208包括一个或多个压缩存储器地址的信号604。例如,在一些实施方案中,发送602信号604包括在从压缩单元202到接收方606设备的总线或其他信号路径上断言信号。在其他实施方案中,发送602信号包括发送指示第二事务层分组208将包括压缩存储器地址的消息。因此,接收方606设备知道利用压缩存储器地址重新生成第二事务层分组208的原始存储器地址。

为了进一步说明,图7给出了示出用于事务层分组的压缩寻址的示例性方法的流程图,该方法包括针对第一时段(例如,由压缩单元200)确定202多个第一事务层分组中的一个或多个低熵地址位;从与第一时段之后的第二时段相关联的一个或多个第二事务层分组208的一个或多个存储器地址中移除204一个或多个低熵地址位;以及发送206一个或多个第二事务层分组208。

图7的方法与图2的方法的不同之处在于:图7的方法还包括基于一个或多个第二事务层分组208中的一个或多个压缩存储器地址以及指示一个或多个所移除低熵位的一个或多个存储值(例如,由解压缩单元702)来重新生成702一个或多个存储器地址。在一些实施方案中,一个或多个存储值包括存储在位掩码寄存器中的位掩码和存储在位阵列寄存器中的位阵列。例如,解压缩单元700的位掩码寄存器和位阵列寄存器与压缩单元200的另一个位掩码寄存器和位阵列寄存器同步。在一些实施方案中,响应于来自压缩单元200的指示第二事务层分组208包括压缩存储器地址的信号,执行重新生成702一个或多个存储器地址。

鉴于以上阐述的解释,读者将认识到用于事务层分组的压缩寻址的有益效果包括:

·通过减小表达事务层分组中的存储器地址所需的大小提高了计算系统的性能。

·通过允许将通过存储器地址压缩回收的存储器地址位用于其他值(诸如纠错码),由此在不增加分组大小或传输开销的情况下提高了信号的完整性,从而提高了计算系统的性能。

·由于减小了表达存储器地址所需的总大小,通过减小分组传输资源要求提高了计算系统的性能。

本公开的优点和特征可通过以下陈述进一步描述:

陈述1。一种用于事务层分组的压缩寻址的方法,所述方法包括:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从与所述第一时段之后的第二时段相关联的一个或多个第二事务层分组的一个或多个存储器地址中移除所述一个或多个低熵地址位;以及发送所述一个或多个第二事务层分组。

陈述2。根据陈述1所述的方法,其中针对所述第一时段,确定所述多个第一事务层分组中的所述一个或多个低熵地址位包括:针对所述多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于所述多个第一事务层分组中的每个地址位的位值来修改所述对应的至少一个计数器;以及

基于所述多个第一事务层分组中的每个地址位的所述对应的至少一个计数器来确定所述一个或多个低熵地址位。

陈述3。根据陈述1至2所述的方法,还包括:在第一位掩码寄存器中存储指示所述一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储所述一个或多个低熵位的一个或多个预测值。

陈述4。根据陈述1至3中任一项所述的方法,还包括使所述第一位掩码寄存器和所述第一位阵列寄存器与所述一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。

陈述5。根据陈述1至4中任一项所述的方法,还包括基于所述一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示所述一个或多个所移除低熵位的一个或多个存储值来重新生成所述一个或多个存储器地址。

陈述6。根据陈述1至5中任一项所述的方法,其中所述一个或多个存储值包括存储指示所述一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于所述一个或多个低熵位的一个或多个值的第二位阵列寄存器。

陈述7。根据陈述1至6中任一项所述的方法,还包括向所述一个或多个第二事务层分组的接收方发送指示所述一个或多个第二事务层分组包括一个或多个压缩存储器地址的信号。

陈述8。一种用于对事务层分组进行压缩寻址的装置,所述装置被配置为执行包括以下方面的步骤:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从与所述第一时段之后的第二时段相关联的一个或多个第二事务层分组的一个或多个存储器地址中移除所述一个或多个低熵地址位;以及发送所述一个或多个第二事务层分组。

陈述9。根据陈述8所述的装置,其中针对所述第一时段,确定所述多个第一事务层分组中的所述一个或多个低熵地址位包括:针对所述多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于所述多个第一事务层分组中的每个地址位的位值来修改所述对应的至少一个计数器;以及基于所述多个第一事务层分组中的每个地址位的所述对应的至少一个计数器来确定所述一个或多个低熵地址位。

陈述10。根据陈述8至9中任一项所述的装置,其中所述步骤还包括:在第一位掩码寄存器中存储指示所述一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储所述一个或多个低熵位的一个或多个预测值。

陈述11。根据陈述8至10中任一项所述的装置,其中所述步骤还包括使所述第一位掩码寄存器和所述第一位阵列寄存器与所述一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。

陈述12。根据陈述8至11中任一项所述的装置,其中所述步骤还包括基于所述一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示所述一个或多个所移除低熵位的一个或多个存储值来重新生成所述一个或多个存储器地址。

陈述13。根据陈述8至12中任一项所述的装置,其中所述一个或多个存储值包括存储指示所述一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于所述一个或多个低熵位的一个或多个值的第二位阵列寄存器。

陈述14。根据陈述8至13中任一项所述的装置,其中所述步骤还包括向所述一个或多个第二事务层分组的接收方发送指示所述一个或多个第二事务层分组包括一个或多个压缩存储器地址的信号。

陈述15。一种用于对事务层分组进行压缩寻址的系统,包括:被配置为执行包括以下方面的步骤的装置:针对第一时段,确定多个第一事务层分组中的一个或多个低熵地址位;从与所述第一时段之后的第二时段相关联的一个或多个第二事务层分组的一个或多个存储器地址中移除所述一个或多个低熵地址位;以及发送所述一个或多个第二事务层分组。

陈述16。根据陈述15所述的系统,其中针对所述第一时段,确定所述多个第一事务层分组中的所述一个或多个低熵地址位包括:针对所述多个第一事务层分组中的每个地址位保持对应的至少一个计数器;基于所述多个第一事务层分组中的每个地址位的位值来修改所述对应的至少一个计数器;以及基于所述多个第一事务层分组中的每个地址位的所述对应的至少一个计数器来确定所述一个或多个低熵地址位。

陈述17。根据陈述15至16中任一项所述的系统,其中所述步骤还包括:在第一位掩码寄存器中存储指示所述一个或多个低熵地址位的位掩码;以及在第一位阵列寄存器中存储所述一个或多个低熵位的一个或多个预测值。

陈述18。根据陈述15至17中任一项所述的系统,其中所述步骤还包括使所述第一位掩码寄存器和所述第一位阵列寄存器与所述一个或多个第二事务层分组的接收方的第二位掩码寄存器和第二位阵列寄存器同步。

陈述19。根据陈述15至18中任一项所述的系统,其中所述步骤还包括基于所述一个或多个第二事务层分组中的一个或多个压缩存储器地址以及指示所述一个或多个所移除低熵位的一个或多个存储值来重新生成所述一个或多个存储器地址。

陈述20。根据陈述15至19中任一项所述的系统,其中所述一个或多个存储值包括存储指示所述一个或多个低熵位的位掩码的第二位掩码寄存器和存储用于所述一个或多个低熵位的一个或多个值的第二位阵列寄存器。

本公开的示例性实施方案主要在用于事务层分组的压缩寻址的全功能计算机系统的上下文中描述。然而,熟悉本领域的读者将认识到,本公开还可体现在设置在计算机可读存储介质上的用以与任何合适的数据处理系统一起使用的计算机程序产品中。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光介质或其他合适的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘、光盘驱动器的光盘、磁带以及本领域的技术人员可想到的其他介质。本领域的技术人员将立即认识到,具有适当编程装置的任何计算机系统将能够执行如在计算机程序产品中体现的本公开的方法的步骤。本领域的技术人员还将认识到,尽管本说明书中描述的一些示例性实施方案针对在计算机硬件上安装和执行的软件,然而,被实现为固件或硬件的另选实施方案也在本公开的范围内。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的计算机可读存储介质(或媒介)。

计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是(例如但不限于)电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述项的任何合适组合。计算机可读存储介质的更具体示例的不完全列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码的设备(诸如其上记录有指令的槽中的穿孔卡片或凸起结构)以及前述项的任何合适组合。如本文所用的计算机可读存储介质不能被理解为瞬时信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。

本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如Smalltalk、C++等面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可整个地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上执行并且部分地在远程计算机上执行或者整个地在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可执行计算机可读程序指令,具体通过利用计算机可读程序指令的状态信息来个性化处理电子电路,以便执行本公开的各方面。

本公开的各方面在此参考根据本公开的实施方案的方法、装置(系统)和计算机程序产品的流程图图示和/或框图进行描述。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读程序指令来实现。

这些计算机可读程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以得到机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令形成用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的构件。这些计算机可读程序指令还可存储在可指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用的计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包括包含实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令的制品。

计算机可读程序指令还可被加载到计算机、其他可编程数据处理装置或其他设备上,导致在计算机、其他可编程装置或其他设备上执行一系列操作步骤以得到计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。

图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能具体实施的体系结构、功能和操作。就这一点而言,流程图或框图中的每个框可表示指令的包括用于实现指定逻辑功能的一个或多个可执行指令的模块、段或部分。在一些另选的具体实施中,框中指出的功能可不按照图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可基本上同时执行,或者这些框有时可以相反顺序执行。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。

从前面的描述将理解,可在本公开的各种实施方案中进行修改和改变。本说明书中的描述仅用于说明目的,而不应以限制性意义进行解释。本公开的范围仅由所附权利要求书的语言限定。

相关技术
  • 一种便于固定安装的脚手架及其制造和使用方法
  • 一种市政工程用便于安装的路灯及其制造和使用方法
  • 一种便于安装且倾角可调的太阳能板支架及使用方法
  • 一种便于安装的汽车电池发热片
  • 一种便于隐藏安装的电池及其使用方法
  • 一种便于隐藏安装的电池及其使用方法
技术分类

06120116547700