直接存储器访问的队列管理制造技术

技术编号:22693697 阅读:33 留言:0更新日期:2019-11-30 06:18
直接存储器访问(DMA)引擎可能负责启用和控制计算系统内的DMA数据流。DMA引擎不通过计算机系统处理器的控制,自动地将与多个队列中的描述符相关联的数据块从源移动到目的地存储器位置或地址。基于对链接到队列中的描述符的数据块的分析,DMA引擎及其关联的DMA分段器确保链接到队列中的描述符的存储的数据块不会在昂贵的时间段内保持空闲。DMA分段器可以将大数据块划分为较小的数据块,以确保对大数据块的处理不会妨碍对与队列中一个或多个描述符关联的较小数据块的及时处理。所存储的数据块可以是二维数据块。

Queue management of direct storage access

The direct memory access (DMA) engine may be responsible for enabling and controlling DMA data flow within the computing system. The DMA engine automatically moves the data blocks associated with descriptors in multiple queues from the source to the destination memory location or address without the control of the computer system processor. Based on the analysis of the data blocks linked to the descriptors in the queue, the DMA engine and its associated DMA segmentors ensure that the stored data blocks linked to the descriptors in the queue will not remain idle for an expensive period of time. DMA segmenter can divide big data block into smaller data blocks to ensure that the processing of big data blocks will not hinder the timely processing of smaller data blocks associated with one or more descriptors in the queue. The data block stored can be a two-dimensional data block.

【技术实现步骤摘要】
【国外来华专利技术】直接存储器访问的队列管理
技术介绍
计算机或计算机系统的重要操作方面是向计算机的存储器和从计算机的存储器传递数据的需要。然而,如果使用计算机的处理器执行向计算机的存储器和从计算机的存储器传递数据的任务,则该处理器将无法执行其他功能。当计算机支持具有大量存储器需求的高速设备时,如果要求处理器针对那些设备向计算机存储系统并且从计算机存储系统逐字地复制数据,则处理器将承受沉重的负担。结果,使用处理器以这种方式传递数据会消耗宝贵的处理时间。实时多媒体应用正变得越来越重要。这些多媒体应用可能需要极快的处理速度和数据传递速度,诸如每秒数千兆的数据。尽管某些处理系统采用单个处理器来实现快速处理速度,但其他处理系统是利用多处理器架构实现的。在多处理器系统中,多个子处理器可以并行运行(或至少协同运行)以实现所期望的处理结果。近年来,由于尖端的计算机应用变得越来越复杂,并且对处理系统日益增长的需求,因此存在对更快的计算机处理数据吞吐量的无限的期望。图形应用是对处理系统提出最高要求的应用之一,因为它们需要在相对较短的时间段内进行如此大量的数据访问、数据计算和数据处理以获得期望的结果。对更快的计算机处理数据吞吐量的需求的解决方案是直接存储器访问(DMA)。在计算机架构允许数据直接在源设备和目的地设备之间发送而无需在数据传递中涉及任意处理器的情况下,可以采用DMA技术。该架构通常包括控制器,该控制器从系统的设备接收数据传递命令以引起数据的传递。传统的DMA命令可以指定数据块的大小、系统存储器中要从其传递数据/向其传递数据的地址、以及设备的要向其传递数据/从其传递数据的起始地址。以这种方式,可以在指定的设备和指定的存储器之间快速传送数据,而不会增加微处理器的负担。传统的DMA技术可以对多个队列执行处理。在一个示例中,第一队列可以包括标识要从源设备移动到目的地设备的DMA数据的描述符,并且第二队列可以包括与指令或命令数据有关的DMA指令描述符。在一些实现中,由第一队列中的描述符处理的数据的大小大于由第二队列中的描述符处理的指令数据的大小。因此,在某些情况下,DMA技术可以基于第一队列中的一个或多个描述符来启动处理DMA数据,同时暂停与第二队列中的描述符关联的指令数据的处理。然而,可能必须将第二队列暂停一段昂贵的时间段,以允许DMA技术完成与第一队列中的描述符关联的数据的处理。在处理第一队列时强制第二队列保持空闲可能会降低传统DMA技术的数据传递效率。相对于这些考虑和其他考虑,提出了本文进行的公开。
技术实现思路
本文描述的技术提供了对直接存储器访问(DMA)队列的高效仲裁。在一些实现中,计算设备或计算系统可以实现多个队列。多个队列中的每个队列可以包括用于处理数据的指令,例如描述符。在一些实现中,多个队列中的第一队列涉及并且包括用于处理数据的指令,该数据大于根据多个队列中的第二队列中的指令要被处理的数据。本文描述的技术可以实现与DMA队列对接的DMA引擎。DMA引擎可以使用DMA数据仲裁器和DMA分段器。DMA数据仲裁器可用于调节根据第一队列和第二队列中的指令要被处理的数据。此外,DMA数据仲裁器可以用于调节根据多个队列中的其他队列的指令要被处理的数据。被包括在多个队列中的数据指令可以被称为描述符。DMA数据仲裁器可以负责确保及时处理根据第一队列和第二队列的描述符处理的数据。在一些实现中,第一队列包括DMA描述符和第二队列操作描述符。操作描述符可以关于比链接到DMA描述符的数据更小并且在某些情况下还明显更小的数据。如所指示的,在一些实现中,根据第一队列的描述符处理的数据可以大于根据第二队列的描述符处理的数据。DMA分段器的功能是确保根据第一队列的描述符处理的大数据不会“饿死”第二队列,或以其他方式使得第二队列无法根据其中的描述符及时处理数据。具体地说,DMA分段器用于根据第一队列的描述符来分析正被处理的数据的大小。基于由DMA分段器执行的分析,DMA分段器可以根据第一队列的描述符来对数据进行分割或划分,以用于处理。具体地,DMA分段器可以将链接到第一队列的描述符的数据划分为多个较小的数据。这使得DMA分段器能够允许处理链接到第二队列的描述符的数据,在此之间允许处理从较大数据导出的分割数据。因此,通过分割或划分链接到第一队列的描述符的数据,DMA分段器能够确保第二队列没有时间来处理链接到其描述符的数据。通常,DMA引擎可能负责启用和控制计算系统内的DMA数据流。在某些实现中,DMA引擎不受计算机系统处理器的控制自动地根据多个队列的描述符将数据块从源存储地址移动到目的地存储地址。基于对队列中存储的描述符的分析,DMA引擎及其关联的DMA数据仲裁器和DMA分段器确保链接到队列中的描述符的数据块在昂贵的时间段内不会保持空闲。具体地,如所描述的,DMA分段器可以将大数据块划分为较小的数据块,以确保对大数据块的处理不会妨碍对队列中的一个或多个队列的描述符所标识的较小数据块的及时处理。在一些实现中,由队列中的描述符标识的数据块是二维数据块。这样的二维数据块可以具有以字节为单位的X维度和以字节为单位的Y维度。在其他实现中,由队列中的描述符标识的数据块是三维数据块。通常,本文描述的实现可以对具有任意维度类型的数据块进行操作。在一些实现中,Y维度被标识为行值,其中Y维度中的每一行包括多个字节。本文提出的技术提供了有利的计算机架构和数据管理方案,其可以改进本地存储器的使用和传递效率,这导致在处理速度和功耗方面的净益处。应当理解,尽管相对于系统进行了描述,但是上述主题还可以被实现为计算机控制的装置,计算机过程,计算系统或制品,诸如计算机可读介质和/或专用芯片组。通过对以下具体实施方式的阅读和相关联的附图的查看,这些和各种其他特征将变得显而易见。提供本
技术实现思路
以简化形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本
技术实现思路
既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在本
技术实现思路
用于限制所要求保护的主题的范围。此外,要求保护的主题不限于解决在本公开的任意部分中指出的任意或所有缺点的实现。附图说明参照附图描述具体实施方式。在附图中,附图标记的最左边的数字标识该附图标记首次出现的附图。不同附图中的相同附图标记表示相似或完全相同的项目。对多个项目中的单个项目的引用可以使用带有字母序列中的字母的附图标记来引用每个单个项目。对项目的通用引用可以使用不带字母序列的特定附图标记。图1示出了示例性系统,其中直接存储器访问(DMA)引擎通过诸如互连的结构与一个或多个处理器进行互操作。图2示出了DMA引擎的示例性框图。图3示出了基于至少一个阈值的、在被DMA引擎分段之前以及在被DMA引擎启动的分段过程之后的示例性二维数据块。图4示出了用于处理与所示出和描述的与描述符相关联的数据块的例程的示例性方面。图5示出了能够执行本文描述的方法的计算机的示意性计算机架构的附加细节。图6示出了根据本文描述的系统和方法进行协作的示意性计算设备的附加细节。本文档来自技高网
...

【技术保护点】
1.一种用于管理多个队列的系统,所述系统包括:/n至少一个处理器;以及/n至少一个存储器,与所述至少一个处理器通信,所述至少一个存储器具有存储在其上的计算机可读指令,所述计算机可读指令在由所述至少一个处理器执行时使得所述至少一个处理器:/n基于第一队列中的描述符确定数据块准备用于传递;/n分析所述第一队列中的所述描述符,以确定与所述数据块的维度相关联的至少一个属性;/n将与所述数据块的所述维度相关联的所述至少一个属性与数据阈值进行比较:/n当与所述数据块的所述维度相关联的所述至少一个属性大于所述数据阈值时,对所述数据块进行分段以从所述数据块生成至少多个分段数据块,并且向目的地存储器位置发送所述多个分段数据块中的至少一个分段数据块,以及/n当与所述数据块的所述维度相关联的所述至少一个属性小于所述数据阈值时,向所述目的地存储器位置发送不分段的所述数据块。/n

【技术特征摘要】
【国外来华专利技术】20170417 US 62/486,432;20170912 US 15/702,3111.一种用于管理多个队列的系统,所述系统包括:
至少一个处理器;以及
至少一个存储器,与所述至少一个处理器通信,所述至少一个存储器具有存储在其上的计算机可读指令,所述计算机可读指令在由所述至少一个处理器执行时使得所述至少一个处理器:
基于第一队列中的描述符确定数据块准备用于传递;
分析所述第一队列中的所述描述符,以确定与所述数据块的维度相关联的至少一个属性;
将与所述数据块的所述维度相关联的所述至少一个属性与数据阈值进行比较:
当与所述数据块的所述维度相关联的所述至少一个属性大于所述数据阈值时,对所述数据块进行分段以从所述数据块生成至少多个分段数据块,并且向目的地存储器位置发送所述多个分段数据块中的至少一个分段数据块,以及
当与所述数据块的所述维度相关联的所述至少一个属性小于所述数据阈值时,向所述目的地存储器位置发送不分段的所述数据块。


2.根据权利要求1所述的系统,其中所述数据块具有以字节为单位的X维度,并且所述数据阈值是字节值阈值,当以字节为单位的所述X维度数小于或等于所述字节值阈值时,对所述数据块进行分段以从所述数据块生成至少所述多个分段数据块,并且向所述目的地存储器位置发送所述多个分段数据块中的所述至少一个分段数据块。


3.根据权利要求2所述的系统,其中所述数据块具有Y维度,并且当以字节为单位的所述X维度小于或等于所述字节值阈值时,在所述Y维度上对所述数据块进行分段以生成所述多个分段数据块,所述多个分段数据块中的每个分段数据块具有小于所述数据块的所述Y维度的Y维度。


4.根据权利要求2所述的系统,其中所述数据块具有Y维度,并且当以字节为单位的所述X维度小于或等于所述字节值阈值并且所述Y维度大于1时,在所述Y维度上对所述数据块进行分段以生成所述多个分段数据块,所述多个分段数据块中的每个分段数据块具有小于所述数据块的所述Y维度的Y维度。


5.根据权利要求2所述的系统,其中所述数据块具有Y维度,并且当所述Y维度大于1时,对所述数据块进行分段以从所述数据块生成至少所述多个分段数据块,并且向所述目的地存储器位置发送所述多个分段数据块中的所述至少一个分段数据块。


6.根据权利要求1所述的系统,其中所述数据块具有以字节为单位的X维度和Y维度,并且所述数据阈值为字节值阈值,当以字节为单位的所述Y维度等于1并且以字节为单位的所述X维度大于所述字节值阈值时,在所述X维度上对所述数据块进行分段以生成所述多个分段数据块,所述多个分段数据块中的每个分段数据块具有小于所述数据块的以字节为...

【专利技术属性】
技术研发人员:G·彼得C·B·麦克布赖德A·A·安巴德卡K·D·塞多拉B·博布罗夫L·M·瓦尔
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1