为DMA控制器提供高速缓存管理命令的系统和方法技术方案

技术编号:2859302 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于在支持DMA机制和高速缓存的系统中提供高速缓存管理命令的方法和系统。DMA机制由处理器建立。运行在处理器上的软件产生高速缓存管理命令。DMA机制执行命令,从而启动高速缓存的软件程序管理。命令包括将数据写到高速缓存,从高速缓存中装入数据,以及将高速缓存中的数据标记为不再需要的命令。高速缓存可以是系统高速缓存或DMA高速缓存。

【技术实现步骤摘要】

本专利技术一般地涉及存储管理,尤其涉及通过使用直接存储器存取(DMA)机制的高速缓存的软件程序管理。
技术介绍
在多处理器设计中,DMA机制例如DMA引擎或DMA控制器用来将信息从一种类型的存储器移至不包括第一存储器类型(例如高速缓存)的另一种存储器类型,或者从一个存储器位置移至另一个。特别地,DMA机制将信息从系统存储器移至处理器的局部存储器。当DMA控制器试图将信息从系统存储器移至处理器的局部存储器时,从存储器中取回和装入信息到处理器局部存储器中可能存在延迟。移动信息可能消耗多个处理器周期。延迟是许多因素的累积,包括存储器等待时间和多处理器系统中的一致性动作。即使在单处理器系统中,存储器存取可能消耗许多周期。在具有多种类型的存储器以及一些存储器与处理器之间相对大的距离的多处理器系统中,处理器或DMA控制器等待存储器存取的问题更加严重。处理器可以提供有高速缓存,以帮助减小处理器访问存储器的延迟,从而提高运行在处理器上的软件的性能。处理器可以提供管理高速缓存的指令以进一步提高性能。因此,在多处理器系统中存在通过使用直接存储器存取(DMA)机制的高速缓存软件程序管理的需要,以减小DMA传输时存储器存取的等待时间。
技术实现思路
本专利技术提供一种在支持DMA机制和高速缓存的系统中提供高速缓存管理命令的方法和系统。DMA机制由处理器建立。运行在处理器上的软件产生高速缓存管理命令。DMA机制执行命令,从而启动高速缓存的软件程序管理。附图说明为了更完整地理解本专利技术及其优点,现在参考结合附随附图进行的下面的描述,其中图1显示说明具有可高速缓存的DMA机制和DMA高速缓存的非对称异构多处理器计算机系统的框图;图2显示说明配置以执行高速缓存管理的DMA命令的DMA控制器的扩展视图的框图;图3显示适用于图1和图2中所示DMA机制的高速缓存机制的操作的流程图;以及图4显示说明DMA高速缓存管理的命令的展开的流程图。具体实施例方式在下面的讨论中,许多具体细节被陈述以提供本专利技术的彻底理解。但是,对本领域技术人员将是显然的,本专利技术可能不以这种具体细节的形式实践。在其他实例中,众所周知的要素已经以示意图或框图的形式说明,以便不将本专利技术遮盖在不必要的细节中。还应当注意,除非另外指示,在这里描述的所有功能可能以硬件或软件,或者其某种组合来执行。但是,在优选实施方案中,功能由处理器例如计算机或电子数据处理器,根据编码以执行这种功能的代码例如计算机程序代码,软件,和/或集成电路来执行,除非另外指示。图1显示说明具有可高速缓存DMA机制和DMA高速缓存的非对称异构多处理器计算机系统的框图。具有高速缓存的DMA机制将是所谓可高速缓存的DMA机制,以及它的高速缓存,DMA高速缓存。非对称异构多处理器计算机系统100包括传统多处理器方案中的一个或多个控制处理器106(PU),其中公共共享存储器或系统存储器104通过可高速缓存的DMA机制紧密耦合到一个或多个相关非对称处理器108(APU),每个包括处理器110和局部存储器112。APU 108通过到和从它们的局部存储器112的DMA操作间接地访问公共共享存储器或系统存储器104。DMA操作由DMA控制器150执行。DMA控制器150由连接114连接到DMA高速缓存102,并且DMA高速缓存102由连接116连接到系统存储器104。DMA控制器150也由连接124直接连接到系统存储器104。APU 108的处理器110和APU 108的局部存储器112每个分别由连接120和122连接到DMA控制器150。在备选实施方案中,DMA控制器150进一步直接连接到PU 106。该连接用来使得PU 106能够发出DMA命令和DMA高速缓存管理命令。该连接为软件提供更多的灵活性。在具有DMA控制器150和PU106之间的该直接连接的备选实施方案中,也存在增加到DMA控制器150中、用于由PU 106发出的命令的相关DMA命令队列。参看图2的讨论,下面,关于DMA命令队列的更多信息。两个队列之间的选择复用器,没有显示,(APU队列和PU队列)以确定两个队列中命令的执行顺序,也被增加。任何选择方法可以使用,例如循环法。在备选实施方案中,一个或多个另外的高速缓存可以用来与所有PU 106接口。该一个或多个高速缓存将连接到PU 106和系统存储器。在备选实施方案中,不存在DMA高速缓存,而是存在连接到PU 106和系统存储器104的一个或多个高速缓存。在DMA控制器150上执行的命令影响连接到PU 106和系统存储器104的一个或多个高速缓存的操作。数据取回到DMA高速缓存102。当DMA控制器150请求存储在DMA高速缓存102中的数据时,DMA控制器150不需要特地返回到系统存储器104以取回数据。代替地,DMA控制器150访问DMA高速缓存102以取回数据并将数据传送到局部存储器112。在DMA高速缓存102和局部存储器112之间传送数据比在系统存储器104和局部存储器112之间传送数据快许多倍。结果,运行在处理器110上的程序可以操作得更快。图2是说明配置以执行由运行在APU 108或PU 106上的软件产生的高速缓存管理命令的DMA控制器200扩展视图的框图。运行在APU108或PU 106上的软件产生用于控制DMA高速缓存210的操作的命令。命令从APU 108或PU 106发送到DMA控制器200,然后执行。结果,运行在APU 108或PU 106上的软件程序控制DMA高速缓存210的管理。DMA控制器200经由连接214从APU 108接收命令。命令可以放置在DMA命令队列202中。与命令相关联的参数提供信息,例如传输大小,标志,和寻址信息。DMA控制器展开和翻译逻辑组件204将由DMA命令及其参数描述的DMA操作展开并翻译成一个或多个较小的总线请求218,直到全部传输长度被满足。展开和总线请求的发出可以并行地执行。总线请求沿着多处理器一致性总线(MP一致性总线)232传递,该总线连接到DMA数据高速缓存210,以及其他存储器,例如局部存储器112和系统存储器104。数据通过连接224,226,228和230经由入站数据缓冲器208和出站数据缓冲器206在DMA数据高速缓存210和局部存储器112之间来回传递。MP一致性总线请求,数据传输,以及下一个总线请求的发出都可以并行地执行。高速缓存管理的命令包括在高速缓存中存储数据,从高速缓存写入数据,清零高速缓存中的数据,以及将高速缓存中的数据标记为不再需要的命令。命令的参数指定待存储或写入数据的位置以及其他信息。当DMA高速缓存210实现时,命令由DMA控制器200的执行将管理DMA高速缓存210的操作。这些命令可以使用,即使DMA高速缓存没有实现。在这种实施方案中,命令由DMA控制器200的执行将影响保存DMA控制器正在传输的数据的其他高速缓存。在本专利技术的一种实施方案中,参数包括类线(CL),标志(TG),传输大小(TS),有效地址高(EAH),和有效地址低(EAL)。TS表示命令操作于其上的数据的字节数。高速缓存管理控制命令都具有暗指的特定标志屏蔽。暗指的特定标志屏蔽防止具有相同标志ID的高速缓存管理控制命令和所有随后发出的命令执行,直到具有相本文档来自技高网...

【技术保护点】
一种提供高速缓存管理的软件程序控制的系统,包括:    处理器,其配置以在软件程序在处理器上执行时产生高速缓存管理的DMA命令;以及    连接到处理器的DMA控制器,其配置以执行高速缓存管理的DMA命令。

【技术特征摘要】
US 2004-3-25 10/809,5531.一种提供高速缓存管理的软件程序控制的系统,包括处理器,其配置以在软件程序在处理器上执行时产生高速缓存管理的DMA命令;以及连接到处理器的DMA控制器,其配置以执行高速缓存管理的DMA命令。2.根据权利要求1的系统,还包括连接到DMA控制器的高速缓存,该系统被配置用于高速缓存管理DMA命令在DMA控制器上的执行,以管理连接到DMA控制器的高速缓存的操作。3.根据权利要求1的系统,其中DMA命令中至少一个是获取命令并且DMA命令中至少一个是放置命令。4.根据权利要求1的系统,其中DMA命令中至少一个是刷新命令。5.根据权利要求1的系统,其中DMA命令中至少一个是清零命令。6.根据权利要求1的系统,其中DMA命令的参数包括类线,标志,传输大小,和有效地址低。7.根据权利要求1的系统,其中高速缓存是紧密耦合到DMA控制器的DMA高速缓存。8.根据权利要求1的系统,其中高速缓存是系统存储器的高速缓存。9.一种在包括DMA控制器和处理器的系统中高速缓存管理的方法,该方法包括步骤在处理器上运行软件以产生高速缓存管理的DMA命令;发出DMA命令到DMA控制器;以及执行DMA命令。10.根据权利要求9的方法,其中高速缓存连接到DMA控制...

【专利技术属性】
技术研发人员:查尔斯雷伊约翰斯詹姆斯艾伦卡勒刘培军张光赏
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1