具有多维行行走功能的dma控制器的系统和方法

文档序号:6624973阅读:214来源:国知局
专利名称:具有多维行行走功能的dma控制器的系统和方法
技术领域
一般而言,本发明涉及具有多维行行走(line-walking)功能的智能直接存储器访问(DMA)的系统和方法。具体来说,本发明涉及将智能DMA控制器应用到计算机系统中以便智能DMA控制器能够基于行描述独立地从多维数组中检索数据的系统和方法。
背景技术
计算机系统正在变得越来越复杂。计算机工业在个人计算机、个人数据助理(PDA)和游戏控制台之类的电子元件中延续每十八个月综合性能翻倍的长期趋势。这一趋势能够延续的主要原因是因为半导体工业生产了其性能是前辈电路的性能的两倍的集成电路。
当前的体系结构实现了从存储器中检索相连的地址空间范围或从存储器中检索相连的地址空间的范围的不同列表的DMA控制器。然后,将检索到的数据加载到与支持处理器比较靠近的存储位置,从而支持处理器可以使用较少的访问周期来访问数据(例如,高速缓存)。然而,一个难题是,此方法需要用户指定将从中检索数据的每一个范围的准确地址位置。
当处理器需要从主存储器(其地址是通过遍历空间中的行而派生出来的)中的多维数组中检索数据时,一个难题是,处理器的DMA控制器要求处理器提供关于要从哪里检索数据的地址位置。
此外,计算机工业还通过开发通常包括主处理器和一个或多个支持处理器的多处理器体系结构来提高性能。主处理器通常加载并执行操作系统,该操作系统调用应用程序,反过来,应用程序使用支持处理器卸载高度计算任务。支持处理器通常包括基本DMA控制器,该控制器从主存储器读取并向主存储器中写入,以便执行支持处理器的分配的工作。然而,在多处理器环境中,一个难题是,支持处理器可能要求主处理器提供协助,以将数据从共享存储器升级到L2高速缓存中,以便支持处理器的基本DMA控制器以其正确的顺序检索数据。
因此,所需要的是,为处理器提供其DMA控制器基于行描述检索数据而不增大处理器负担的能力的系统和方法。

发明内容
已经发现,如前所述的难题通过在处理器中包括智能DMA控制器来加以解决,该控制器直接解释行描述信息并独立地从对应于行描述信息的主存储器中检索数据。处理器包括智能DMA控制器,该控制器接收多维数组的存储器位置和维数,包括在多维数组的空间内的行的描述(例如两个数据点),以及处理器的本地存储区域中的缓冲器地址。智能DMA控制器使用这些输入来检索对应于行描述和多维数组的数据,并将数据存储在对应于缓冲器地址的其本地存储区域中。
在一个实施例中,在单处理器计算机系统中,处理器内的软件程序可以将行描述提供到智能DMA控制器。例如,处理器可以执行terrain呈现任务,其中terrain呈现任务包括行描述。在此示例中,terrain-呈现任务向DMA控制器提供行描述,该控制器从共享存储器检索数据,并将数据存储在支持处理器的本地存储器中。在另一个实施例中,在多处理器计算机系统中,支持处理器可以从主处理器接收行描述,其中,支持处理器向其智能DMA控制器提供行描述。
智能DMA控制器访问代表空间中的数据点的直线网格的多维数组,其存储器位置包括对应于空间中的每一个数据点的数据。智能DMA控制器从其对应的数据点被从行描述生成的行所“访问”的主存储器中检索数据,并按照访问的顺序将数据点加载到本地存储的指定的缓冲区中。在一个实施例中,每一个数据点都可以代表一个完整的方块,立方体或超立方体。在此实施例中,如果行与方块、立方体或超立方体的内部交叉,则检索数据点的对应的数据。
或者,行描述可以包括行的主要和一个或多个次要轴,以及对应的主要步骤和一个或多个次要步骤的大小。主要步骤是其单位向量利用行产生最大的绝对值点积的维度。例如,如果行沿着二维存储器映象中的垂直方向的程度比水平方向的程度大,则行的主要步骤是沿着垂直轴,行的次要步骤是沿着水平轴。同样,如果行沿着二维存储器映象中的水平方向的程度比垂直方向的程度大,则行的主要步骤是沿着水平轴,行的次要步骤是沿着垂直轴。
对于每一个主要轴步骤,计算沿着每一个次要轴的对应的位置,该位置通常是具有整数和分数的数字。所感兴趣的存储器位置是依赖于应用程序的。例如,应用程序可以在每一个主轴步骤中使用单个存储器位置,这是通过次要轴的舍入到整数的值来索引的。在另一个示例中,应用程序可以使用主轴交点的一侧上的点或每一侧上的若干个点。
在一个实施例中,对于行和主要轴交叉之间的每一个交叉点,规则可以指定,从中收集主要轴交叉的(n-1)维空间内的数据的交点周围的邻近区域有多大。例如,智能DMA控制器可以收集一个点的最近的邻居,该点的最近的四个邻居,或该点的特定一侧上的邻居。
此外,智能DMA控制器还可以接收一个规则,如果行在多维数组的边界外部行进,则该规则指定DMA控制器的行为。例如,规则可以指示智能DMA控制器1)一旦行到界限之外,就停止收集数据,或2)持续从数组的界限外部的存储器位置收集数据。
前述的内容是一个概述,因此,只是详细内容的简化形式;因此,那些精通本技术的人将理解,概述只是说明性的,而不以任何方式作出限制。如权利要求所定义的本发明的其他方面,本发明的功能,将在非限制性的详细描述中,变得显而易见。


通过参考附图,那些精通本技术的人将会更好地理解本发明,本发明的目标、特点和优点将变得显而易见。不同图形中的相同的参考符号表示类似或相同的项目。
图1是使用行描述从特定存储器位置检索数据的支持处理器的DMA控制器的图表;图2A是显示基于其主要步骤位于垂直方向中的行收集的数据的图表;图2B是显示基于其主要步骤位于水平方向中的行收集的数据的图表;图3是显示在将行描述加载到DMA控制器中时采取的步骤的流程图,其中,DMA控制器基于行描述从共享存储器中检索数据;图4是显示DMA控制器从对应于行描述的特定存储器位置检索数据采取的步骤的流程图;图5是显示对应于行的连续的存储器位置数组范围的图表;图6是显示包括多个异构型处理器的处理器元件体系结构的图表;图7A说明了一个信息处理系统,这是一个能够执行这里所描述的计算操作的计算机系统的简化示例;以及图7B是显示了分成专用存储器和非专用存储器的本地存储区域的图表。
具体实施例方式
下面提供了本发明的示例的详细描述,而不对本发明本身作出任何限制。相反,各种变化都在本发明的范围内,本发明的范围由说明书后面的权利要求书进行了定义。
图1是使用行描述从特定存储器位置检索数据的支持处理器的DMA控制器的图表。图1所示的计算机系统包括主处理器(即,处理器A100)和诸如处理器B120之类的支持处理器。处理器B120包括可编程DMA控制器130,该控制器能够接收描述了形状或行的行描述,并基于行描述跨步穿过二维存储器映象。反过来,DMA控制器向处理器B120提供数据,因此,处理器B120不请求将L2高速缓存中的数据升级主处理器,以供处理器B120进行检索。
处理器A100向处理器B120发送行描述110。行描述110描述了行,并可以包括DMA控制器130用来跨步穿过多维存储器映象的主要步骤和一个或多个次要步骤。例如,行描述110可以包括DMA控制器130用来“在行中行走”并从共享存储器中检索对应的数据的两个数据点。行的主要步骤和次要步骤的方向取决于该行的角度。例如,如果行沿着二维存储器映象中的垂直方向的程度比水平方向的程度大,则行的主要步骤是沿着垂直轴,行的次要步骤是沿着水平轴。同样,如果行沿着二维存储器映象中的水平方向的程度比垂直方向的程度大,则行的主要步骤是沿着水平轴,行的次要步骤是沿着垂直轴(有关主要步骤和次要步骤方向的更多细节,请参见图2A、2B,以及对应的文字)。
处理器B120接收行描述110,并将行描述加载到DMA控制器130中。DMA控制器130识别开始了对应于行描述的存储器位置的主要步骤和一个或多个次要步骤,并在开始的存储器位置从共享存储器150中检索数据160。DMA控制器130将数据160存储在本地存储器170中,该本地存储器是处理器B120的专用存储器。DMA控制器130基于行描述增大主要步骤位置,并增大次要步骤位置。例如,如果开始的存储器位置为“0主要,0次要”,行描述是这样的,其对应的行对于每一个次要步骤行进四个主要步骤,下一个位置是“1主要,.25次要。”在此示例中,由于.25不是有效的存储器位置,因此,DMA控制器130从“1主要,0次要”检索数据,并将次要步骤累加器140内的次要步骤计数增大.25。当其中一个次要步骤计数达到“1”时,DMA控制器130增大次要步骤位置,并从增大的次要步骤位置检索数据。使用上文所描述的示例,DMA控制器130从位置“0,0”、“1,0”、“2,0”、“3,0”、“4,1”等等检索数据。(有关次要步骤增大的细节,请参见图4和对应的文字)。
DMA控制器130持续从共享存储器150检索数据160,并将数据存储在本地存储器170中,直到DMA控制器130达到用户指定主要步骤限制或者它达到了存储器映象的末尾。用户能够指定DMA控制器应该收集多少主要步骤数据点。例如,在terrain呈现方案中,用户可以指示DMA控制器130收集2000个主要步骤数据点,因为在2000个主要步骤数据点之后图像是“有云纹”的。一DMA控制器130完成了数据收集,处理器B120便从本地存储器170检索数据,并呈现图像。
在一个实施例中,计算机系统包括主处理器和多个支持处理器。在此实施例中,多个支持处理器中的每一个处理器都包括智能DMA控制器,其中,每一个DMA控制器都能够独立地从共享存储器位置检索数据,以便向它们相应的支持处理器提供数据。
在另一个实施例中,支持处理器内的软件程序可以将行描述提供到DMA控制器。例如,支持处理器可以执行terrain呈现任务,其中terrain呈现任务包括行描述。在此示例中,terrain-呈现任务向DMA控制器提供行描述,该控制器从共享存储器检索数据,并将数据存储在本地存储器中。反过来,terrain-呈现任务使用本地存储器中的数据来完成其任务。
图2A是显示基于其主要步骤位于垂直方向中的行收集的数据的图表。行的主要步骤和次要步骤的方向取决于该行的角度。对于每一个主要轴步骤,计算沿着每一个次要轴的对应的位置,该位置通常是分数值。所感兴趣的存储器位置是依赖于应用程序的。在一个实施例中,应用程序可以在每一个主轴步骤中使用单个存储器位置,这是通过次要轴的舍入到整数的值来索引的。在另一个实施例中,应用程序可以使用主轴交点的一侧上的点或每一侧上的若干个点。
垂直主要步骤200显示了行210沿着垂直方向行进的程度比沿着水平方向行进的程度大。因此,行210的主要步骤是沿着垂直轴的(即,轴230),行的次要步骤是沿着水平轴的(即,轴240)。在数据收集过程中,DMA控制器沿着对应于行描述的行210从存储器映象240中收集数据。点状的存储器点220显示了,DMA控制器在对应于行210的特定存储器位置收集数据。DMA控制器沿着行210持续收集数据,直到DMA控制器达到存储器映象245的末尾,或直到DMA控制器达到用户指定的主要步骤限制。用户可以指定DMA控制器应该收集多少主要步骤数据点以便提高数据收集吞吐量。
当行的方向沿着水平方向行进的程度比沿着垂直方向行进的程度大时,行的主要步骤是沿着水平轴,行的次要步骤是沿着垂直轴(有关水平主要步骤的细节,请参见图2B和对应的文字)。
图2B显示了根据其主要步骤在水平方向的行所收集的数据。图2B类似于图2A,只是行260在水平方向的遍历要大于在垂直方向的遍历。为此,行260的主要步骤是沿着水平轴(即轴290),此要步骤是沿着垂直轴(即轴280)。
点状的存储器点270显示了,DMA控制器在对应于行260的特定存储器位置收集数据。DMA控制器沿着行260持续收集数据,直到DMA控制器达到存储器映象245的末尾,或直到DMA控制器达到用户指定的主要步骤限制。
图3是显示在将行描述加载到DMA控制器中时采取的步骤的流程图,其中,DMA控制器基于行描述从共享存储器中检索数据。支持处理器包括智能DMA控制器,该控制器从诸如处理器A100之类的主处理器接收行描述,基于行描述,从共享存储器检索数据,并将数据存储在支持处理器的专用存储器中。
处理从300开始,在此,支持处理器在步骤310中从处理器A100中检索行描述。处理器A100与图1所示的处理器相同,并可以与支持处理器异构。例如,处理器A100可以是基于微处理器的处理器,支持处理器可以是基于数字信号的处理器。在步骤320中,支持处理器将检索到的行描述加载到诸如DMA控制器130之类的其DMA控制器中。DMA控制器130与图1所示的控制器相同,并能够使用行描述跨步穿过二维存储器映象(有关数据检索的细节,请参见图4和对应的文字)。
在步骤330中,支持处理器初始化数据收集进程,并选择要在其中检索数据的第一行。例如,支持处理器可以使用DMA控制器130检索对应于多个行的数据,支持处理器使用数据来在计算机屏幕上呈现图像。支持处理器的DMA控制器(即,DMA控制器130)基于对应于行描述的主要和次要步骤从共享存储器150中的位置检索数据,并将检索到的数据加载到本地存储器170中,该本地存储器是支持处理器的专用存储器(预定义的处理块,有关细节,请参见图4和对应的文字)。共享存储器150和本地存储器170与图1所示的共享存储器和本地存储器相同。
在步骤350中,支持处理器从本地存储器170检索数据,并在显示器360上呈现图像。例如,支持处理器可以使用数据来计算游戏应用程序的terrain映像值。
就是否有多行来让支持处理器检索数据作出判断(判断370)。如果将其中检索对应的数据的多行,判断370将转到“是”分支372,该分支将返回以选择(步骤380)并处理下一行。此循环持续进行,直到没有将要在其中检索对应的数据的行,此时,判断370转到“否”分支378,在此,处理过程在390中结束。
在一个实施例中,支持处理器内的软件程序可以将行描述提供到DMA控制器。例如,支持处理器可以执行terrain呈现任务,其中terrain呈现任务包括行描述。在此示例中,terrain-呈现任务向DMA控制器提供行描述,该控制器从共享存储器检索数据,并将数据存储在本地存储器中。反过来,terrain-呈现任务使用本地存储器中的数据来完成其任务。
图4是显示DMA控制器从对应于行描述的特定存储器位置检索数据采取的步骤的流程图。计算机系统包括主处理器和一个或多个支持处理器。每一个支持处理器都包括智能DMA控制器,该控制器可使每一个支持处理器从共享存储器位置检索数据,而不必从主处理器请求协助。
数据检索处理过程在400中开始,在此,处理过程在对应于所选择的行的共享存储器150中识别主要步骤起点位置和次要步骤起点位置。行的主要步骤和次要步骤的方向取决于该行的角度。例如,如果行位于垂直方向的程度比水平方向的程度大,则行的主要步骤是沿着垂直轴,行的次要步骤是沿着水平轴。同样,如果行沿着水平方向的程度比垂直方向的程度大,则行的主要步骤是沿着水平轴,行的次要步骤是沿着垂直轴(有关主要步骤和次要步骤方向的更多细节,请参见图2A、2B,以及对应的文字)。
在步骤420中,DMA控制器从对应于主要步骤起点和次要步骤起点的共享存储器位置检索数据。在步骤430中,DMA控制器将检索到的数据存储在本地存储器170中。本地存储器170与图1所示的本地存储器相同,是支持处理器的专用存储器,或内部存储器。在步骤440中,DMA控制器增大主要步骤存储器位置。在步骤450中,DMA控制器增大基于行描述的次要步骤累加器140中的次要步骤计数。例如,如果行描述是这样的,以便对于每一个次要步骤,行行进四个主要步骤,DMA控制器将次要步骤累加器140增大.25。
就次要步骤累加器是否已经达到“1”作出判断(判断460)。如果次要步骤累加器已经达到“1 ”,则判断460转到“是”分支462,该分支返回以增大次要步骤位置(步骤470),使次要步骤累加器140复位(步骤480),检索对应于增大的主要步骤和增大的次要步骤的数据。
另一方面,如果次要步骤计数没有达到“1”,则判断460转到“否”分支468,在此,就DMA控制器是否已经达到用户指定的主要步骤限制或者DMA控制器是否已经达到存储器映象的末尾作出判断(判断490)。用户能够指定DMA控制器应该收集多少主要步骤数据点以便提高数据收集吞吐量。例如,在terrain呈现方案中,用户可以指示DMA控制器收集2000个主要步骤数据点,因为在2000个主要步骤数据点之后,图像是“雾蒙蒙”的。
如果DMA控制器没有达到用户指定的主要步骤限制或存储器映象的末尾,则判断490转到“否”分支492,该分支返回以检索对应于增大的主要步骤的数据。此循环持续进行,直到DMA控制器达到用户指定的主要步骤限制或者DMA控制器达到存储器映象的末尾,此时,判断490转到“是”分支498,在此,处理过程返回到499。
图5是显示对应于行的连续的存储器位置数组范围的图表。行510沿着存储器映象500行进,行510的主要步骤位于垂直方向中,行510的次要步骤位于水平方向中。取决于应用程序的实现方式,用户可以选择指定存储器点邻居数量,以便使用沿着其次要轴的变化率结合行与子空间交叉的位置来对行进行分析,并沿着行的主轴存储连续的存储器的计算出的范围。
图5中的示例显示了在每一个主轴步骤中检索最近的四个存储器点邻居的实现方式。在此示例中,计算基于所需要的存储器点邻居(如,4个邻居)的数量和行的斜率。因此,可编程DMA控制器加载每一个范围中的十二个连续的地址,以确保获取适当的邻居。
随着行510开始沿着存储器映象500行进,可编程DMA控制器基于行510的起点和方向遍历,加载数组范围520到535。数组范围520到535提供了四个非连续的存储器点,以对应于行510的起点,还提供了四个非连续的存储器点,直到行510达到主轴行A560,在此,行510与次要轴行交叉。此时,可编程DMA控制器加载数组范围540,以便提供四个非连续的存储器点。
随着行510遍历存储器映象500行进,可编程DMA控制器在行510与次要轴行交叉的情况下加载数组范围。图5显示了当行510达到主轴行B570时可编程DMA控制器加载数组范围545,当行510达到主轴行C580时,可编程DMA控制器加载数组范围550。通过加载数组范围,改善了存储器子系统性能,而启动低效率则降至最低。
图6是显示包括多个异构型处理器的处理器元件体系结构的图表。异构型处理器共享公用存储器和通用总线。处理器元件体系结构(PEA)600通过输入输出端670从外部设备接收并向外部设备发送信息,并使用处理器元件总线660将信息分发到控制面610和数据面640。控制面610对PEA 600进行管理,并将工作分发到基准面640。
控制面610包括运行操作系统(OS)625的处理单元620。例如,处理单元620可以是嵌入在PEA 600中的Power PC核心,OS 625可以是Linux操作系统。处理单元620对PEA 600的公用存储器映象表进行管理。存储器映象表对应于PEA 600中包括的存储器位置,如L2存储器630,以及640中包括的非专用存储器(有关存储器映射的细节,请参见图7A、7B)。
数据面640包括协同处理综合体(SPC)645、650和655。使用每一个SPC来处理数据信息,每一个SPC都可以具有不同的指令集。例如,在无线通信系统中可以使用PEA 600,每一个SPC都可以负责单独的处理任务,如调制、芯片速率处理、编码,以及网络接口。在另一个示例中,每一个SPC都可以具有完全相同的指令集,并可以并行地用来执行受益于并行处理的操作。每一个SPC都包括协同处理单元(SPU),该单元是处理核心,如数字信号处理器、微控制器、微处理器或这些核心的组合。
SPC 645、650和655连接到处理器元件总线660,该总线在控制面610、数据面640,以及输入/输出670之间传递信息。总线660是芯片内相干的多处理器总线,该总线在I/O 670、控制面610,以及数据面640之间传递信息。输入/输出670包括灵活的输入/输出逻辑,该逻辑基于连接到PEA 600的外围设备动态地将接口针脚指定到输入输出控制器。例如,PEA 600可以连接到两个外围设备,如外围A和外围B,其中,每一个外围都连接到特定数量的PEA600上的输入和输出针脚。在此示例中,灵活的输入/输出逻辑被配置为将连接到外围A的PEA 600的外部输入和输出针脚路由到第一输入输出控制器(即,IOC A),并将连接到外围B的PEA 600的外部输入和输出针脚路由到第二输入输出控制器(即,IOC B)。
图7A说明了一个信息处理系统,这是一个能够执行这里所描述的计算操作的计算机系统的简化示例。图7A中的示例显示了使用公用存储器映象以便在异构型处理器之间共享存储器的多个异构型处理器。设备700包括处理单元730,该处理单元执行设备700的操作系统。处理单元730类似于图6所示的处理单元620。处理单元730使用系统存储器映象720来分配整个设备700中的存储器空间。例如,当处理单元730接收存储器请求时,处理单元730使用系统存储器映象720来识别和分配存储器区域。处理单元730访问L2存储器725,以便检索应用程序和数据信息。L2存储器725类似于图6所示的L2存储器630。
系统存储器映象720将存储器映射区域分为几个区域,它们是区域735、745、750、755、和760。区域735是可以由单独的输入输出设备进行控制的外部系统存储器的映射区域。区域745是对应于诸如SPC 702之类的一个或多个协同处理综合体的非专用存储器位置的映射区域。SPC 702类似于图6所示的SPC,如SPC A 645。SPC 702包括本地存储器,如本地存储器710,其中,可以将本地存储器的部分分配给整个系统存储器,以便让其他处理器进行访问。例如,可以将1MB的本地存储器710分配给非专用存储器,其中,它可以被其他异构型处理器进行访问。在此示例中,本地存储别名745管理1MB的位于本地存储器710中的非专用存储器。
区域750是翻译后援缓冲器(TLB)和存储器流控制(MFC)寄存器的映射区域。翻译后援缓冲器包括存储器的最近引用的页面的虚拟地址和实际地址之间的交叉引用。存储器流控制在处理器和总线之间提供接口功能,如DMA控制和同步。
区域755是操作系统的映射区域,并是具有带宽和延迟保证的带插脚的系统存储器。区域760是设备700的外部的输入输出设备的映射区域,并由系统和输入输出体系结构来进行定义。
协同处理综合体(SPC)702包括协同处理单元(SPU)705、本地存储器710,以及存储器管理单元(MMU)715。处理单元730响应处理单元730指示对SPU 705进行管理并对数据进行处理。例如,SPU 705可以是数字信令处理核心、微处理器核心、微控制器核心,或这些核心的组合。本地存储器710是SPU 705为专用存储区域和非专用存储区域配置的存储区域。例如,如果SPU 705要求大量的本地存储器,则SPU 705可以向专用存储器分配100%的本地存储器710。在另一个示例中,如果SPU 705要求最少量的本地存储器,则SPU 705可以向专用存储器分配10%的本地存储器710,并向非专用存储器分配其余的90%本地存储器710(有关本地存储器配置的细节,请参见图7B和对应的文字)。
本地存储器710的被分配给非专用存储器的那些部分由区域745中的系统存储器映象720进行管理。这些非专用存储器区域可以被其他SPU或被处理单元730访问。MMU 715包括直接存储器访问(DMA)功能,并将信息从本地存储器710传递到设备700内的其他存储器位置。
图7B是显示了分成专用存储器和非专用存储器的本地存储区域的图表。在系统启动过程中,协同处理单元(SPU)760将本地存储器770分为两个区域,这两个区域是专用存储区775和非专用存储区780。SPU 760类似于SPU 705,本地存储器770类似于图7A所示的本地存储器710。专用存储区775可以被SPU 760访问,而非专用存储区780可以被SPU 760以及特定设备内的其他处理单元访问。SPU 760使用专用存储区775来对数据进行快速访问。例如,SPU 760可以负责要求SPU 760快速访问存储在存储器中的大量数据的复杂计算。在此示例中,SPU 760可以向专用存储区775分配100%的本地存储器770,以便确保SPU 760具有足够的本地存储器来访问。在另一个示例中,SPU 760可以不要求大量的本地存储器,因此,可以向专用存储区775分配10%的本地存储器770,并向非专用存储区780分配其余的90%的本地存储器770。
诸如本地存储别名790之类的系统存储器映射区域,管理本地存储器770的被分配给非专用存储器的那些部分。本地存储别名790类似于图7A所示的本地存储别名745。本地存储别名790管理每一个SPU的非专用存储器,并使其他SPU访问非专用存储器以及设备的控制处理单元。
尽管图6、7A和7B中所描述的计算机系统能够执行这里所描述的过程,但是,此计算机系统只不过是计算机系统的一个示例。那些精通本技术的人将理解,许多其他计算机系统设计也能够执行这里所描述的进程。
本发明的其中一个优选实施例是应用程序,即,代码模块中的一组指令(程序代码),例如,可以是驻留在计算机的随机存取存储器中的一组指令。直到计算机需要,指令集可以存储在另一台计算机的存储器中,例如,存储在硬盘驱动器中,或在诸如光盘之类的可移动存储器中(最终用于CD ROM中)或软盘(最终用于软盘驱动器中),或通过因特网或其他计算机网络下载。如此,本发明可以作为在计算机中使用的计算机程序产品来实现。此外,虽然这里所描述的各种方法可以方便地以通用计算机(有选择地由软件激活或重新配置)来实现,但是,那些精通本技术的普通人员也将认识到,这样的方法可以以硬件、固件或为执行所要求的方法步骤所制造的比较专门的设备来执行。
尽管这里显示和描述了本发明的特定实施例,但是,对那些精通本技术的人很明显,基于这里所提供的原理,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,所附加的权利要求包含在它们的范围内,所有这样的更改和修改都在本发明的真正的精神和范围内。此外,应该理解,本发明只由所附加的权利要求进行定义。那些精通本技术的人应该理解,给所介绍的权利要求元素使用了特定的编号,这样的意图将在权利要求书中明确地列举,在没有这样的列举的情况下,没有这样的限制存在。为了便于理解,举一个非限制性的例子,下面所附的权利要求包含“至少一个”和“一个或多个”这样的句子来介绍权利要求书元素。然而,使用这样的句子不应该被理解为暗指,由不定冠词“a”或“an”引入的权利要求元素将包含这样的引入的权利要求元素的任何特定权利要求限制到只包含这样的元素的发明,甚至在相同的权利要求包括引导句子“一个或多个”或“至少一个”以及诸如“a”或“an”时;这也适用于在权利要求中使用定冠词的情况。
权利要求
1.一种计算机实现的方法,包括接收行描述;将行描述加载到位于处理器上的DMA控制器中;基于行描述使用DMA控制器从主存储器区域检索数据;以及通过处理器中所包括的本地存储器向处理器提供检索到的数据。
2.根据权利要求1所述的方法,其中,行描述对应于主要步骤和次要步骤,主要步骤和次要步骤用于识别从中检索数据的共享存储器区域中的位置。
3.根据权利要求2所述的方法,进一步包括更新主要步骤;基于行描述,修改对应于次要步骤的次要步骤计数;确定次要步骤计数是否与整数边界交叉;以及响应判断结果,更新次要步骤。
4.根据权利要求2所述的方法,进一步包括判断是否达到了对应于主要步骤的用户指定的限制;以及响应没有达到用户指定的限制的判断,执行检索。
5.根据权利要求1所述的方法,进一步包括检索存储器点邻居数量;以及基于存储器点邻居数量,判断要检索的数组范围的数量,其中,数据被分割为若干个数组范围中的每一个。
6.根据权利要求1所述的方法,其中,主存储器区域是共享存储器,共享存储器映射到所述处理器和使用公用存储器映象的一个或多个其他处理器,其中,行描述被从异构的一个其他处理器发送到所述处理器。
7.根据权利要求1所述的方法,其中,行描述包括存在于共享存储器中的两个数据点。
8.一种程序产品,包括计算机可操作的介质,具有计算机程序代码,所述计算机程序代码能够接收行描述;将行描述加载到位于处理器上的DMA控制器中;基于行描述使用DMA控制器从主存储器区域检索数据;以及通过处理器中所包括的本地存储器向处理器提供检索到的数据。
9.根据权利要求8所述的程序产品,其中,行描述对应于主要步骤和次要步骤,主要步骤和次要步骤用于识别从中检索数据的共享存储器区域中的位置。
10.根据权利要求9所述的程序产品,其中,计算机程序代码进一步能够更新主要步骤;基于行描述,修改对应于次要步骤的次要步骤计数;确定次要步骤计数是否与整数边界交叉;以及响应判断结果,更新次要步骤。
11.根据权利要求9所述的程序产品,其中,计算机程序代码进一步能够判断是否达到了对应于主要步骤的用户指定的限制;以及响应没有达到用户指定的限制的判断,执行检索。
12.根据权利要求8所述的程序产品,其中,计算机程序代码进一步能够检索存储器点邻居数量;以及基于存储器点邻居数量,判断要检索的数组范围的数量,其中,数据被分割为若干个数组范围中的每一个。
13.根据权利要求8所述的程序产品,其中,主存储器区域是共享存储器,共享存储器映射到所述处理器和使用公用存储器映象的一个或多个其他处理器,其中,行描述被从异构的一个其他处理器发送到所述处理器。
14.根据权利要求8所述的程序产品,其中,行描述包括存在于共享存储器中的两个数据点。
15.一种信息处理系统,包括显示器;一个或多个处理器;本地存储器区域;可以被一个或多个处理器进行访问的主存储器;以及用于从主存储器检索数据的数据检索工具,该数据检索工具包括能够执行下列操作的软件代码从其中一个处理器接收行描述;将行描述加载到位于其中一个处理器上的DMA控制器中;基于行描述使用DMA控制器从主存储器中检索数据;以及通过处理器中所包括的本地存储器向其中一个处理器提供检索到的数据。
16.根据权利要求15所述的信息处理系统,其中,行描述对应于主要步骤和次要步骤,主要步骤和次要步骤用于识别从中检索数据的共享存储器区域中的位置。
17.根据权利要求16所述的信息处理系统,其中,软件代码进一步能够更新存储器中的主要步骤;基于行描述,修改对应于次要步骤的存储器中的次要步骤计数;判断次要步骤计数是否与整数边界交叉;以及响应判断结果,更新存储器中的次要步骤。
18.根据权利要求16所述的信息处理系统,其中,软件代码进一步能够判断是否达到了对应于主要步骤的用户指定的限制;以及响应没有达到用户指定的限制的判断,执行检索。
19.根据权利要求15所述的信息处理系统,其中,软件代码进一步能够从存储器中检索存储器点邻居数量;以及基于存储器点邻居数量,判断要从存储器中检索的数组范围的数量,其中,数据被分割为若干个数组范围中的每一个。
20.根据权利要求15所述的信息处理系统,其中,主存储器区域是共享存储器,共享存储器映射到所述处理器和使用公用存储器映象的一个或多个其他处理器,其中,行描述被从异构的一个其他处理器发送到所述处理器。
全文摘要
提供了具有多维行行走功能的DMA控制器的系统和方法。处理器包括智能DMA控制器,该控制器加载对应于形状或行的行描述。智能DMA控制器基于包括主要步骤和次要步骤的行描述,在存储器映象进行移动并检索数据。反过来,智能DMA控制器从共享存储器中检索数据,无需其对应的处理器提供协助。在一个实施例中,智能DMA控制器可以使用沿着其次要轴的变化率结合行与子空间交叉的位置来对行进行分析,并沿着行的主轴存储连续的存储器的数组范围。
文档编号G06F13/20GK1740994SQ20051007897
公开日2006年3月1日 申请日期2005年6月21日 优先权日2004年8月26日
发明者丹尼尔·艾伦·布鲁肯谢尔, 戈登·克莱德·福萨姆, 巴里·L.·麦纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1