基于缓存行地址在流中聚合命令制造技术

技术编号:29600885 阅读:13 留言:0更新日期:2021-08-06 20:05
操作组合器[240]接收具有读取地址、修改操作和写入地址的一系列命令。在某些情况下,命令具有串行依赖性,这些依赖性限制了它们的处理速度。操作组合器比较地址的兼容性、转换操作以打破串行依赖性,并将多个源命令组合为较少数量的聚合命令,所述聚合命令的执行速度比源命令快得多。操作组合器的一些实施方案接收包括一个或多个第一读取地址和第一写入地址的第一命令。操作组合器将所述第一读取地址和所述第一写入地址与存储在缓冲区中的第二命令的一个或多个第二读取地址和第二写入地址进行比较。操作组合器基于比较来选择性地组合第一命令和第二命令以形成聚合命令。

【技术实现步骤摘要】
【国外来华专利技术】基于缓存行地址在流中聚合命令
技术介绍
压缩用于减少表示一条信息的字节数,例如,减少通过接口传输信息所需的带宽量。典型的压缩技术使用向后引用来将当前数据块表示为指向先前数据块(或另一个空间或时间位置中的数据)的指针加上指示对先前数据块的修改的信息。例如,可以通过将第一地址处的三个字节的数据表示为指向与第一地址偏移一千字节(kB)的第二地址的指针加上指示修改(诸如向第二地址处的三个字节的数据添加一)的信息来压缩所述三个字节的数据。通过复制先前接收的数据(例如,第二地址处的三个字节的数据)并执行所指示的修改(诸如添加一)在目的地处重构数据。附图说明通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标记来指示类似或相同项。图1是根据一些实施方案的包括用于创建意图输出到显示器的视觉图像的图形处理单元(GPU)的处理系统的框图。图2是根据一些实施方案的用于对在处理系统之内或之间进行传输的信息进行解码和解压缩的解码器的框图。图3是根据一些实施方案的命令的框图。图4是根据一些实施方案的表示缓存行的被输入到不同命令的各部分的掩码的合并的框图。图5是根据一些实施方案的操作组合器的第一部分的框图。图6是根据一些实施方案的操作组合器的第二部分的框图。图7是根据一些实施方案的将匹配命令组合成聚合命令的方法的流程图。具体实施方式压缩导致用于压缩不同数据块的命令或操作之间的串行依赖性。例如,第一最新命令使用指向第二先前数据块的指针(在某些情况下加上对第二数据块的修改)来压缩数据块,该第二先前数据块通过将第二数据块表示为指向第三早先数据块的指针(在某些情况下加上对第三数据块的对应修改)的第二先前命令来压缩,依此类推。在某些命令流中交错了多个串行依赖性链。例如,可能存在一系列(高度可压缩)相同的命令,用于将先前的值(例如,DWord、短字或字节)复制到输出中。该系列可以与先前的值模式匹配,然后将其用于复制该模式以生成输出。然而,由于流中当前命令的源是流中先前命令的结果,因此需要串行地执行所标识的命令模式。如果复制的命令添加了值(诸如一)以生成下一个输出,例如,以生成一系列递增的值,则对命令的执行被进一步复杂化。由诸如用于实现解压缩的命令之类的命令流执行的操作被组合以生成单个命令,该单个命令在诸如与缓存行相对应的32字节窗口之类的预定地址范围内操作。在流水线的前端接收的命令存储在缓冲区中。当每个新命令到达前端时,会将新命令与先前在前端接收并存储在缓冲区中的命令进行比较。如果新命令与先前接收的命令之一匹配,则将新命令和匹配的先前命令组合成聚合命令,该聚合命令存储在缓冲区中,以最终分派到流水线的后端。在一些实施方案中,新命令与匹配命令的比较包括比较新命令和匹配命令的写入地址或读取地址,以及确定写入地址和读取地址是否在相同的地址范围(诸如32字节窗口)内。聚合命令存储在缓冲区中,用于与随后接收的命令进行比较。缓冲区可以包括多个不同的聚合命令,诸如与串行依赖命令的交错链相关联的聚合命令。在一些实施方案中,组合新命令和匹配命令包括定义掩码,该掩码应用于与新命令和匹配命令相关联的地址范围中的数据,以标识由聚合命令操作的地址。例如,如果命令流包括对与当前地址的第一偏移处的数据进行操作的第一命令和对与当前地址的第二偏移处的数据进行操作的第二命令,则聚合命令包括基于第一偏移和第二偏移定义的掩码。图1是根据一些实施方案的包括用于创建意图输出到显示器110的视觉图像的图形处理单元(GPU)105的处理系统100的框图。GPU105执行存储在存储器115中的指令。存储器115的一些实施方案被实现为动态随机存取存储器(DRAM)。然而,存储器115也可使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其他类型的存储器来实现。在所示的实施方案中,GPU105通过总线120与存储器115通信。然而,GPU105的一些实施方案通过直接连接或经由其他总线、桥、开关、路由器等与存储器115通信。GPU105可将诸如所执行指令的结果的信息存储在存储器115中。例如,存储器115可存储将由GPU105执行的来自程序代码的指令的副本125。GPU105的一些实施方案包括独立地同时或并行执行指令的多个处理器核心、计算单元或固定功能电路(为清楚起见,未示出)。处理系统100包括用于执行指令的中央处理单元(CPU)130。CPU130的一些实施方案包括独立地同时或并行执行指令的多个处理器核心(为清楚起见,未示出)。CPU130也连接到总线120,并且因此可通过总线120与GPU105和存储器115通信。CPU130可执行存储在存储器115中的诸如程序代码135的指令,并且CPU130可将诸如所执行指令的结果的信息存储在存储器115中。CPU130还能够通过向GPU105发出绘制调用来发起图形处理。GPU105渲染对象以产生像素值,所述像素值被提供给显示器110,该显示器110使用像素值来显示表示所渲染对象的图像。输入/输出(I/O)引擎140处理与显示器110以及处理系统100的其他元件(诸如键盘、鼠标、打印机、外部磁盘等)相关联的输入或输出操作。I/O引擎140耦接到总线120,使得I/O引擎140与GPU105、存储器115或CPU130通信。在所示的实施方案中,I/O引擎140读取存储在外部存储介质145(诸如光盘(CD)、数字视频光盘(DVD)等)上的信息。外部存储介质145存储表示用于实现诸如视频游戏的应用程序的程序代码的信息。外部存储介质145上的程序代码被写入到存储器115以形成将分别由GPU105或CPU130执行的指令或程序代码135的副本125。处理系统100还包括处理器150,该处理器150用于执行加密、解密、压缩、解压缩和其他功能,这些功能用于为在处理系统100内传递、由处理系统100从外部实体接收或由处理系统100向外部实体传输的信息提供安全性。处理器150的一些实施方案解压缩包括文字数据、指示数据的相对位置的指针以及用于压缩或解压缩数据的命令的数据流。处理器150还可包括组合用于解压缩所接收的数据的操作的电路,如下所述。在所示的实施方案中,尽管某些实体直接访问存储器115,但是直接存储器访问(DMA)逻辑155提供对存储器115的访问。DMA逻辑155生成地址并发起存储器读或写周期。例如,GPU105、CPU105、I/O引擎140和处理器150经由DMA逻辑155从存储器115读取信息并将信息写入存储器115。在一些实施方案中,处理器150和DMA逻辑155被实现为单个实体。DMA逻辑155的一些实施方案用于内存到内存数据传输或在GPU105中的计算单元或CPU130中的处理器内核之间传输数据。GPU105或CPU130可以与由DMA逻辑155执行的数据传输同时执行其他操作,这可以向GPU105或CPU130提供中断以指示该传输已完成。图2是根据一些实施方案的用于对在处理系统之内或之间进行传输的信本文档来自技高网...

【技术保护点】
1.一种方法,其包括:/n接收命令流,所述命令流包括第一命令,所述第一命令包括由所述第一命令读取的数据的至少一个第一读取地址和由所述第一命令写入的数据的第一写入地址;/n将所述至少一个第一读取地址和所述第一写入地址与存储在缓冲区中的第二命令的至少一个第二读取地址和第二写入地址进行比较;以及/n响应于所述至少一个第一读取地址匹配所述至少一个第二读取地址并且所述第一写入地址匹配所述第二写入地址而将所述第一命令和所述第二命令组合以形成第一聚合命令。/n

【技术特征摘要】
【国外来华专利技术】20181129 US 16/205,0941.一种方法,其包括:
接收命令流,所述命令流包括第一命令,所述第一命令包括由所述第一命令读取的数据的至少一个第一读取地址和由所述第一命令写入的数据的第一写入地址;
将所述至少一个第一读取地址和所述第一写入地址与存储在缓冲区中的第二命令的至少一个第二读取地址和第二写入地址进行比较;以及
响应于所述至少一个第一读取地址匹配所述至少一个第二读取地址并且所述第一写入地址匹配所述第二写入地址而将所述第一命令和所述第二命令组合以形成第一聚合命令。


2.根据权利要求1所述的方法,其中接收所述第一命令包括响应于所述至少一个第一读取地址不匹配所述至少一个第二读取地址或所述第一写入地址不匹配所述第二写入地址而将所述第一命令存储在所述缓冲区中。


3.根据权利要求2所述的方法,其还包括:
响应于所述至少一个第一读取地址匹配所述至少一个第二读取地址而将所述第一聚合命令存储在所述缓冲区中;以及
响应于所述至少一个第一地址匹配所述至少一个第二地址而将所述第一命令从所述缓冲区移除。


4.根据权利要求1所述的方法,其中所述至少一个第一读取地址、所述至少一个第二读取地址、所述第一写入地址和所述第二写入地址指示具有预定长度的缓存行。


5.根据权利要求4所述的方法,其还包括:
基于所述第一命令中指示的至少一个第一偏移,标识所述缓存行的由所述第一命令读取的至少一个第一部分;以及
基于所述第二命令中指示的至少一个第二偏移,标识所述缓存行的由所述第二命令读取的至少一个第二部分。


6.根据权利要求5所述的方法,其中组合所述第一命令和所述第二命令以生成所述聚合命令包括生成指示所述至少一个第一部分和所述至少一个第二部分的掩码。


7.根据权利要求1所述的方法,其还包括:
接收所述命令流,所述命令流包括第三命令,所述第三命令包括由所述第三命令读取的数据的至少一个第三读取地址和由所述第三命令写入的数据的第三写入地址;
将所述至少一个第三读取地址和所述第三写入地址与存储在缓冲区中的第四命令的至少一个第四读取地址和第四写入地址进行比较;以及
响应于所述至少一个第三读取地址匹配所述至少一个第四读取地址并且所述第三写入地址匹配所述第四写入地址而将所述第三命令和所述第四命令组合以形成第二聚合命令。


8.根据权利要求7所述的方法,其中所述第一命令和所述第二命令与所述第三命令和所述第四命令在所述命令流中交错。


9.根据权利要求1所述的方法,其还包括:
确定所述第一命令和所述第二命令之间是否存在依赖性;并且
其中组合所述第一命令和所述第二命令包括基于所述依赖性是否存在来选择性地组合所述第一命令和所述第二命令。


10.一种设备,其包括:
缓冲区,所述缓冲区被配置为存储第一命令,所述第一命令包括由所述第一命令读取的数据的至少一个第一读取地址和由所述第一...

【专利技术属性】
技术研发人员:克里斯多夫·J·布伦南
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1