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命令可以指定数据块的大小、系统存储器中要从其传递数据/向其传递数据的地址、以及设备的要向其传递 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。