在次序混乱的DMA命令队列中建立命令次序制造技术

技术编号:2918985 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种方法、一种设备和一种计算机程序,用于控制存储器存取。直接存储器存取(DMA)单元在许多总线体系结构中已经成为很平常的事。然而,管理有限的系统资源已经成为使用多个DMA单元的挑战。为了管理产生的多个命令并保持依赖关系,使用命令中的嵌入标记或栅栏命令。然后这些操作可以控制命令执行的次序以保持依赖关系。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及直接存储器存取(DMA)控制,并且更具体地,提供一种机制,用于维持DMA控制单元中的命令次序。
技术介绍
在常规系统中,直接存储器存取(DMA)单元是一种能够直接访问存储器从而旁路主处理器的器件。这种类型的系统存在于一些总线体系结构中。然而,为了在系统中具有对DMA单元的高效且有序的使用,必须对存储器的DMA使用设置控制和限制。DMA单元执行对DMA使用的控制。典型地,做出对DMA单元的存储器使用的请求或命令。DMA单元充当虚拟监视人(gatekeeper)以允许按有序方式执行请求或命令。然而,可能有若干个DMA单元做出请求或命令,由单个DMA单元发出的若干个命令,或者它们的任意组合。为了减轻多个请求阻塞系统的问题,DMA单元使用队列来存储该一系列DMA单元请求或命令。典型地,该一系列DMA单元请求或命令按照请求或命令到达DMA单元的次序执行,或者按照严格的次序执行。然而,严格顺序可能是非常昂贵的。有各种问题可能作为严格次序的后果而产生。例如,高优先级的DMA命令可能被低优先级的DMA命令延迟。严格顺序规则非常昂贵的另一个原因是当虚拟存储器系统用于DMA时。如果不能获得从虚拟地址到真实地址的转换,DMA单元必须等待直到转换未命中得到解决。有时候转换未命中可以通过硬件解决,其它时候未命中必须通过软件解决。在任一情况下,解决转换故障的等待时间都很长。还有其它情况,例如,到或者来自慢速器件的DMA将防止在队列中更靠后的且不依赖于当前DMA命令的DMA命令被执行。对于加载和存储,一些常规的系统,例如PowerPC,能够通过使用弱排序或弱一致性的存储器模型来改进性能。弱排序存储器模型的概念可以延伸到DMA命令的执行。在用于DMA单元的弱排序模型中,标签与每个命令相关联。命令以任意次序完成。然而,标签允许控制软件监控次序和与组相关或依赖于组的命令。但是,允许命令以任意次序完成引起许多问题。例如,如果要求一个命令在一个后续命令执行之前完成。因此,需要一种方法和/或设备,用于对DMA命令进行排序,它至少处理与用于执行DMA命令的常规方法和设备关联的问题中的一些。
技术实现思路
本专利技术提供一种用于控制存储器存取的设备。提供至少一个处理器,其中该处理器还至少包括发布命令的能力,以及把至少一个标记嵌入到与分配的标签号关联的命令中的能力。还提供多个通信端口,其中多个命令由该至少一个处理器至少通过多个通信信道中的第一通信信道输入。而且,提供标签队列,其中标签队列将一个标签号分配给该多个命令中的每个命令,以产生多个带标签命令。还提供用于存储多个带标签命令的命令队列,其中该命令队列还包括对命令分类的能力。附图说明为了更完整地理解本专利技术及其优点,现在参考下列结合附图的详细描述,其中图1为描述带有改进的DMA控制器的系统的框图;图2为描述多处理器(MP)系统的框图;图3为描述改进的DMA控制器系统内的篱笆标记(fence flag)操作的流程图;和图4为描述改进的DMA控制器系统内的栅栏标记(barrier flag)操作的流程图;和图5为描述改进的DMA控制器系统内的栅栏命令操作的流程图。具体实施例方式在下列讨论中,叙述了许多具体细节以提供对本专利技术的完整理解。然而,本领域技术人员应该理解,可以实现本专利技术而无需这样的具体细节。在其它实例中,公知元素已经以示意图或框图形式进行说明,以便不因为不必要的细节而使本专利技术模糊不清。此外,对于大多数部分,省略了关于网络通信、电磁信令技术等的细节,因为认为这样的细节对于获得对本专利技术的完整理解不是必需的,并且认为这样的细节在相关领域一般技术人员的理解范围内。还应该注意,除非另外指明,在这里描述的所有功能可以按硬件或软件或其组合执行。然而,在优选实施例中,功能由诸如计算机或电子数据处理器的处理器依照诸如计算机程序代码的代码、软件和/或被编码为执行这些功能的集成电路来执行,除非另外指明。参照附图中的图1,附图标记100概括地指带有改进的DMA控制器的系统。系统100包括改进的DMA控制器110、PU 130、存储器单元132、存储器120和多处理器(MP)相干总线190。改进的DMA控制器110还包括DMA命令队列140、标签队列150、展开和转换逻辑160、出站数据缓冲器170和入站数据缓冲器180。在带有改进的DMA控制器110的系统100中,命令被发布并执行。带有存储器单元132的PU 130向DMA命令队列140发布命令。PU 130可以是任意类型的处理器,包括主PU(MPU)或协PU(SPU)。存储器单元132可以是各种存储器类型,包括但不局限于高速缓存。发送给DMA命令队列140的命令加上了标签,各命令的标签在标签队列150中被追踪。标签可以是对命令个别的,或专用于某些类型的命令,从而创建标签组。从DMA命令队列140,写和读命令发布给各种部件,包括系统存储器(未示出)。然后,通过出站数据缓冲器170和入站数据缓冲器180发生数据传输。也可以有许多其它步骤包含在命令执行中,例如解码。然而,DMA命令队列140中的命令并非简单地随机执行。在常规的系统中,诸如DMA命令队列140的DMA命令队列中的命令在严格排序方案下按照到达的次序执行。但是,改进的DMA控制器110使用弱排序方案以允许各种次序的执行。而且,改进的DMA控制器110也使用一系列嵌入标记。PU 130把标记嵌入到发布的命令中。尽管篱笆和栅栏标记通过DMA控制器140嵌入是可能的;然而,它更复杂。而且,嵌入标记充当每个命令的依赖关系并且有益于命令的顺序执行。还有使用嵌入标记的各种其它原因,例如在低优先级命令之前执行高优先级命令。更特别地,有两个标记可以嵌入到命令中栅栏和篱笆。它们都只影响相同标签组中的命令。典型地,直到相同标签组内在带有嵌入的篱笆标记的命令之前发布的所有命令都完成之前,嵌入的篱笆标记将不允许执行命令。篱笆标记要求相同标签组内在带有嵌入的篱笆的命令前发布的所有命令都在带有篱笆标记的命令执行之前完成。篱笆标记不影响队列中的后续命令。例如,在带有篱笆的命令之后发布的命令可以在带有该篱笆的命令之前执行。另一方面,栅栏标记影响相同标签组内所有前面的和后续的命令。典型地,栅栏标记将不允许相同标签组内的任何后续命令在带有栅栏标记的命令前发布的命令被执行之前执行,包括带有栅栏标记的命令。例如,相同标签组内在带有栅栏的命令之后发布的命令不能在带有该栅栏的命令之前执行。典型地,当相同标签组内在带有栅栏的命令之前发布的所有命令完成时,可以执行带有栅栏标记的命令和相同标签组内的后续命令。因此,一旦栅栏被清除,则通常的次序混乱的操作可以继续。PU 130也具有取代嵌入篱笆或栅栏标记而发布栅栏命令的能力。栅栏命令作用于队列中的所有命令。栅栏命令防止所有后续命令的执行,不论标签如何,直到前面发布的所有命令都完成。一旦栅栏被清除,则通常的次序混乱的操作可以继续。在比较栅栏命令和标记中,有一些细小但是有意义的差别。嵌入命令中的标签专用的标记,如名字所暗示的,只作用于相同标签组内的命令,而栅栏命令作用于全部标签组。尽管栅栏标记和栅栏命令在各自影响前面和后续发布的命令方面确实具有相似的特性。然而,两种命令的影响范围不同。为了本文档来自技高网
...

【技术保护点】
一种用于控制存储器存取的设备,包括:至少一个处理器,其中该处理器进一步包括:至少发布命令的能力;和至少把至少一个标记嵌入到与分配的标签号关联的命令中的能力; 多个通信端口,其中多个命令由至少一个处理器通过多个 通信信道中的至少第一通信信道输入;标签队列,其中该标签队列将所分配的标签号分配给多个命令中的每个命令,以产生多个带标签的命令;以及命令队列,用于存储多个带标签的命令,其中该命令队列还包括对命令分类的能力。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:迈克尔诺尔曼戴伊查尔斯雷约汉斯彼德刘培军张光赏山崎刚
申请(专利权)人:索尼计算机娱乐公司国际商业机器公司
类型:发明
国别省市:JP[日本]

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

1