CN101278269B - 用于改进的dmac翻译机制的系统和方法 - Google Patents
用于改进的dmac翻译机制的系统和方法 Download PDFInfo
- Publication number
- CN101278269B CN101278269B CN2006800366859A CN200680036685A CN101278269B CN 101278269 B CN101278269 B CN 101278269B CN 2006800366859 A CN2006800366859 A CN 2006800366859A CN 200680036685 A CN200680036685 A CN 200680036685A CN 101278269 B CN101278269 B CN 101278269B
- Authority
- CN
- China
- Prior art keywords
- dma
- real page
- command
- transmission size
- command dma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
提供了一种用于改进的DMAC翻译机制的系统和方法。DMA命令基于该DMA命令的传输大小和计算机系统一次传输的数据量而被“调出”。对于第一个DMA请求,DMA队列请求存储器管理单元执行地址翻译。DMA队列从MMU接收实际页号,在后面的调出请求时,DMA队列将实际页号提供给总线接口单元而不访问MMU,直到传输跨入下一页。调出逻辑在每个DMA请求后使DMA命令的传输大小递减,确定是否已到达了新的页,确定是否已完成DMA命令,并且发送写回信息到DMA队列用于后面的DMA请求。
Description
技术领域
本发明涉及用于改进的DMA控制器翻译机制的系统和方法。更具体地,本发明涉及用于将实际页号存储在DMA命令字段中,以便在DMA命令调出期间使用实际页号的系统和方法。
背景技术
计算机系统应用一般指定一个有效地址或间接地址来存储和取回数据。为了完成数据存储或取出请求,计算机系统将有效地址翻译成与存储器中的物理位置相对应的实际地址或物理地址。
计算机系统一般包括用于提供有效地址到实际地址翻译的存储器管理单元(MMU)。在一种配置中,由于所有的加载和存储指令需要地址翻译,所以DMA队列一直在访问MMU,这增加了延时并消耗了更多的功率。
另一种配置使用有效地址到实际地址翻译器(ERAT)加上第二级MMU。ERAT包括用于存储以前的地址翻译的查找表。当DMA队列向ERAT发送DMA请求(包括有效地址)时,ERAT查看自己的查找表以寻找有效地址匹配。如果存在匹配,则ERAT提供相应的实际地址,而避免了MMU访问。然而,如果ERAT没有找到与DMA请求的有效地址相对应的条目,则ERAT向MMU发送“未命中”,MMU接着执行在前面第一种配置中讨论的相同步骤。
当MMU识别出对应的实际页号时,MMU将该实际页号发送到ERAT,由ERAT将其加载到自己的表中。使用这种配置,由于在ERAT发现与有效地址之间的匹配时不需要访问MMU,所以ERAT提供了电路性能改进。然而,面临的挑战是:为了使ERAT获得良好的“命中率”,ERAT的查找表必须包括大量条目,这可能消耗大量的功率和物理面积。此外,面临的另一项挑战是:ERAT仍然为每一个DMA请求执行查找,这也增加了延时。
因此,需要一种用于改进的有效地址到实际地址翻译机制的系统和方法。
发明内容
已经发现,使用用于将实际页号存储在DMA命令字段中,以便在DMA命令调出期间使用这些实际页号的系统和方法,就能解决上述挑战。DMA队列从存储器管理单元接收实际页号并将这些实际页号存储在相应的DMA命令字段中用于后续的DMA请求。这样,DMA队列就不那么频繁地访问MMU以进行地址翻译,而这通过更低的延时和功耗又提高了系统性能。
DMA队列包括具有相应的DMA命令字段的DMA命令,所述DMA命令字段包括:1)队列条目有效位,2)有效地址字段,3)实际地址有效位,4)实际页号字段,5)传输类型字段,和6)传输大小字段。队列条目有效位标识相应的DMA命令是否有效。有效地址字段包含相应的DMA命令的有效地址。实际地址有效位标识在实际页号字段中的实际页号是否有效。传输类型字段标识DMA命令的类型,例如加载或存储。另外,传输大小字段包括剩余还未传输的数据量。
DMA队列识别准备好发出的DMA命令(例如,无依赖性)。在命令从DMA队列分派出去后,下游逻辑检查DMA命令的相应的实际地址有效位,以便确定是否访问MMU以进行地址翻译。如果DMA命令的实际地址有效位被置位,则包括在实际页号字段中的实际页号通过复用器被发送到总线接口单元,所述复用器被配置为从DMA队列接收实际页号。此外,DMA队列将DMA请求(包括有效地址)和命令参数(包括传输大小)发送到调出逻辑。调出逻辑使传输大小递减,确定DMA队列是否可以使用现有的实际页号用于后面的调出DMA请求,并向DMA队列发送“写回信息”。接着,DMA队列将该写回信息存储到DMA命令的命令字段中。这样,当DMA队列“调出”相同的DMA命令并执行另一个DMA请求时,下游逻辑检查实际地址有效位,如果它被置位,则从DMA命令的实际页号输出中提取实际页号,并将它发送到总线接口单元。结果,MMU不被频繁地访问,这改进了总体系统性能。
在一种实施方式中,无论实际地址有效位的值是什么,由于硬件约束,DMA请求都被自动发送到MMU。在该实施方式中,DMA逻辑使用实际地址有效位加上其它参数来确定是否需要翻译请求。翻译请求或者有效地址有效请求是从DMA逻辑发送到MMU的。如果该请求被断言(assert),那么MMU寻找相应的实际页号并通过复用器将新的实际页号发送到总线接口单元,所述复用器选择该新的实际页号输出。此外,MMU将该新的实际页号发送到DMA队列,在DMA队列中,该新的实际页号被写回到相应的实际页号字段中,用于后面的DMA请求。
当MMU执行地址翻译时,调出逻辑还接收DMA请求以及命令参数。接着,调出逻辑使传输大小递减,确定MMU是否完成了成功的地址翻译,并发送写回信息到DMA队列,由DMA队列将其存储在DMA命令的相应的命令字段中,用于后面的DMA请求。
以上就是对发明内容的概述,因而在必要的情况下包含了细节的简化、概括和省略;因此,本领域的技术人员将会理解:该发明内容部分只是示意性的,而绝非限制性的。在以下阐述的非限制性的详细描述中将会清楚仅由权利要求限定的本发明的其它方面、创新特征和优点。
附图说明
参照附图,可以更好地理解本发明,使本领域的技术人员清楚它的多个目的,特征和优点。
图1是示出将有效地址翻译成实际页号的存储器管理单元(MMU)的图;
图2是示出正在执行地址翻译的有效地址到实际地址翻译器(ERAT)和存储器管理单元(MMU)的图;
图3是示出从MMU接收实际页号并将该实际页号存储在相应的DMA命令字段中以在后面的DMA请求中使用的DMA队列的图;
图4是示出多个DMA请求以及如何基于三种不同的配置进行地址翻译的表;
图5是示出具有DMA命令以及相应的命令字段的DMA队列的图;
图6是示出在发送出去或发出DMA命令时采用的步骤的高级流程图;
图7是示出在调出处理,例如使DMA命令传输大小递减以及提供写回信息到DMA队列时采用的步骤的流程图;
图8是示出在存储器管理单元接收翻译请求以及向总线接口单元和DMA队列提供实际页号时采用的步骤的流程图;以及
图9图示了一个信息处理系统,它是能够执行这里描述的运算操作的计算机系统的一个简化例子。
具体实施方式
下面想要给出对本发明的一个例子的详细描述,但不应被拿来限制发明本身。相反,任意数量的变型可以落入本发明的范围内,这在说明书所附的权利要求书中限定。
图1是示出将有效地址翻译成实际页号的存储器管理单元(MMU)的图。图1显示现有技术中用来处理DMA命令(例如,存储器加载和存储操作)的地址翻译配置。根据DMA命令的传输大小以及计算机系统一次传输的数据量,DMA命令被“解开”。例如,如果计算机系统以128字节的增量传输数据,而DMA命令是512字节,那么DMA命令被解开到4个DMA请求中(128×4=512)。
图1包括DMA队列100、MMU 120和总线接口单元140。DMA队列100识别准备好发出(例如,无依赖性)的DMA命令,并发送DMA请求110到MMU 120,该请求包括对应于DMA命令的有效地址。MMU 120接收DMA请求110并且访问包括有效地址和对应的实际页号的查找表。如果包括在DMA请求110中的有效地址与在查找表中存储的有效地址匹配,则MMU 120将相应的实际页号130发送到总线接口单元140。
另一方面,如果MMU 120没有找到与DMA请求110相对应的匹配的有效地址,那么MMU 120通知DMA队列100发生了“未命中”。MMU 120还向存储器请求翻译信息并将来自存储器的翻译信息加载到查找表中。在加载完成后,MMU 120告知DMA队列100重新发送先前未命中的相同的DMA请求。
这样,图1中所示的配置对于每个DMA请求执行查找或存储器访问,即使该DMA请求是对于同一DMA命令的多个DMA请求的一部分,这样效率不高并且降低了处理器性能。
图2是示出正在进行地址翻译的有效地址到实际地址翻译器(ERAT)和存储器管理单元(MMU)的图。图2示出了一种替代的地址翻译配置。ERAT 200跟踪以前的地址翻译结果,因此不是对于每个DMA请求都访问MMU 120。然而,正如下面所讨论的,ERAT200仍然对于每个DMA请求都执行查找,这在功率和面积方面仍然效率不高,但是与图1中的配置相比改进了延时。
DMA队列100向ERAT 200发送与准备好发出的DMA命令相对应的DMA请求110,该DMA请求包括对应于DMA命令的有效地址。接着,ERAT 200访问包含有效地址和相应的实际页号的查找表。ERAT 200进行检查以发现查找表是否包括与包括在DMA请求110中的有效地址相关的条目。如果包括在DMA请求110中的有效地址与查找表中的存储的有效地址匹配,则ERAT 200将实际页号130发送到总线接口单元140。DMA队列100、DMA请求110、实际页号130和总线接口单元140与图1中所示的相同。
另一方面,如果ERAT 200没有发现与DMA请求110的有效地址相对应的匹配,则ERAT 200将未命中220发送到MMU 120。MMU120然后对包括在DMA请求110中的有效地址进行地址翻译。
接着,MMU 120访问它的包括有效地址和相应的实际页号的查找表,以发现对于DMA请求110的有效地址是否存在匹配(例如在图1中讨论的步骤)。如果查找表包含有效地址,则MMU 120识别其对应的实际页号并将MMU RPN 230发送到ERAT 200。ERAT 200将有效地址和MMU RPN 230包括在其查找表中,以供后面引用。此外,DMA请求必须被重新发送。当请求被再次重发时,ERAT 200对有效地址进行匹配,并将RPN输送到总线接口单元。MMU 120与图1中所示的相同。
如果MMU 120在其查找表中没有找到与DMA请求110的有效地址相对应的条目,那么MMU 120访问存储器,以便获得正确的地址翻译(例如,在图1中讨论的步骤)。一旦MMU 120识别出与DMA请求110的有效地址相对应的实际页号,那么MMU 120发送MMURPN 230到ERAT 200,由ERAT 200将其存储在自己的查找表中。DMA请求必须被再次重发,此时ERAT 200对有效地址进行匹配并将RPN 130输送到BIU 140。可以看出,DMA队列100访问ERAT 200以对每个DMA请求进行地址翻译,即使该DMA请求是对于同一DMA命令的多个DMA请求的一部分。
图3是示出从MMU接收实际页号并将该实际页号存储在相应的DMA命令字段中以用于后面的DMA请求的DMA队列的图。因此,图3所示的配置比图1和2所示的配置效率更高。
DMA队列300包括具有相应的DMA命令字段的DMA命令,所述DMA命令字段包括:1)队列条目有效位,2)有效地址字段,3)实际地址有效位,4)实际页号字段,5)传输类型,和6)传输大小字段。队列条目有效位标识相应的DMA命令是否有效。有效地址字段包含相应的DMA命令的有效地址。实际地址有效位标识包括在实际页号字段中的实际页号是否有效。传输类型标识DMA命令的类型,例如加载或存储。另外,传输大小字段包括剩余还未传输的数据量(参考附图5和相应的文字描述以了解有关DMA命令字段的更多细节)。
DMA队列300识别准备好发出的DMA命令(例如,无依赖性),并且检查DMA命令的相应的实际地址有效位,以便确定是否访问MMU 320进行地址翻译。如果DMA命令的实际地址位被置位,那么DMA队列300从实际页号字段提取实际页号并且通过复用器370将实际页号360发送到总线接口单元380,复用器370被配置为从DMA队列300接收实际页号。此外,DMA队列300将DMA请求308和命令参数325发送到调出逻辑330,所述命令参数325包括DMA命令的传输大小。调出逻辑330使传输大小递减,确定DMA队列300是否可以使用现有的实际页号用于后面的调出DMA请求,并发送写回信息340到DMA队列300(参考图7和相应的文字描述以了解有关调出处理的更多细节)。接着,DMA队列300将写回信息340加载到DMA命令的命令字段中。因此,当DMA队列300“调出”相同的DMA命令来执行另一个DMA请求时,DMA队列300检查实际地址有效位,如果它被置位,则从DMA命令的实际页号字段提取实际页号,并将实际页号360发送到总线接口单元380。结果,MMU 320不被那么频繁地访问,这改进了整体系统性能。
逻辑310控制被发送到MMU 320的有效地址(EA)请求有效315,该有效地址请求有效315是基于几种因素而定的。首先,在实模式中,MMU 320不执行任何翻译,因此,EA请求有效315被反断言。其次,诸如“sync”和“eieio”等命令类型不需要翻译,因而EA请求有效315保持反断言。第三,在缺少最初两个条件的情况下,逻辑310使用RA有效305来确定EA请求有效315是否应被断言。
当逻辑310识别出DMA命令的实际地址有效位没有被置位(上面第三个前述条件),因此需要地址翻译时,逻辑310激活EA请求有效315。同时,DMA队列300从DMA队列300向MMU 320发送DMA请求308。接着,MMU 320寻找相应的实际页号并通过复用器370将新的实际页号350发送到总线接口单元380,所述复用器370选择新的实际页号350作为输入。此外,MMU 320将新的实际页号350发送到DMA队列300,由DMA队列300将其加载到相应的实际页号字段中用于后面的DMA请求。
如果MMU 320在自己的查找表中没有找到与DMA请求308的有效地址相对应的条目,则MMU 320访问存储器以便获得正确的地址翻译。对于DMA命令设置MMU发出依赖性,使得该命令不被重发,直到MMU已从存储器加载了翻译。一旦MMU发出依赖性清零,则DMA命令重新发出,并且它的有效地址产生“命中”。参考图7和8,了解有关更多细节的相应文字描述。
当逻辑310在缺少用于确定EA请求有效315的最初两个因素(上面已讨论)的情况下识别出RA有效305被断言时,不需要任何翻译,因此逻辑310不断言EA请求有效315。在这种情况下,DMA 300经由复用器370将实际页号360输送到BIU 380。
调出逻辑330接收DMA请求308和命令参数325。接着,调出逻辑330使传输大小递减,确定MMU 320是否执行了成功的地址翻译,并且发送写回信息340到DMA队列300,由DMA队列300将该信息存储到DMA命令的相应的命令字段中(参考图7和相应的文字描述以了解有关调出处理的更多细节)。
图4是示出基于三种不同配置的多个DMA请求以及它们的地址翻译位置的表。表400包括列420到440,它们分别对应于在表1-3中示出的配置。列420到440包括用于在DMA命令被调出时提供地址翻译的DMA请求活动。在图4中示出的例子对应于请求传输4KB数据的DMA命令,计算机系统以128字节增量来传输数据。因此,为了执行DMA命令,需要三十二次请求(由列410指示)(128B×32=4KB)。
列420显示对于图1所示的实施方式,DMA队列对于三十二次请求中的每次请求都访问存储器管理单元。列430显示对于图2所示的实施方式,DMA队列对于第一次请求访问ERAT,接下来ERAT访问MMU。对于第2次到第32次请求,DMA队列访问ERAT,由ERAT从ERAT的查找表提供实际页号,从而不必访问MMU。
列440显示对于这里描述的发明(图3),DMA队列对于第一次请求访问MMU,之后对于第2次到第32次请求,因为DMA队列在第一次DMA请求后将实际页号存储在DMA命令的相应的DMA命令字段中,所以由DMA队列自己将实际页号提供给总线接口单元。
图5是示出具有DMA命令以及相应的命令字段的DMA队列的图。DMA队列300与图3中所示的相同,它包括与具体的DMA命令相对应的DMA命令字段(列510到560)。
列510包括队列条目有效位,它标明相应的DMA命令是否有效。在相应的数据被完整地传输之前,DMA命令一直保持有效。例如,对于以128字节增量传输数据的系统以及请求传输128字节以下的数据的DMA命令,队列条目有效位对于一次传输保持有效,然后被重置。在另一个例子中,对于以128字节增量传输数据的系统以及请求传输512字节数据的DMA命令,队列条目有效位保持有效,直到四次传输被成功地送到总线接口单元(128×4),然后队列条目有效位被重置。
列520包括DMA命令有效地址,它们被翻译成实际页号并被存储在列540中。列530包括实际地址有效位,它标明包括在列540中的实际页号是否有效。使用上面有关请求传输512字节数据的DMA命令的例子,在第一次传输时,DMA命令的实际页号字段没有有效的实际页号,因而实际地址有效位未被置位。DMA队列300在第一次传输时从MMU接收实际页号,还从包括被置位的实际地址有效位的调出逻辑接收写回信息。因此,在第二次到第四次传输时,DMA队列300将存在于列540中的实际页号发送到总线接口单元,并且对于第二次到第四次传输不访问MMU。
列550包括DMA命令的相应的传输类型,例如它是加载还是存储操作。不需要由MMU进行翻译的其他命令,例如“sync”和“eieio”也可以从DMA队列发出。列560是传输大小字段,它包括DMA命令传输大小值。传输大小值对应于在相应的DMA命令下剩余还未传输的数据量。使用以上请求传输512字节数据的DMA命令的例子,在第一次传输前,传输大小值是512字节。在第二次传输前,传输大小值是384字节(512B-128B),这是从调出逻辑接收的递减后的传输大小(参考图7和相应的文字描述以了解有关递减的传输大小的更多细节)。在第三次传输前,传输大小值是256字节(384B-128B)。而在第四次传输前,传输大小值是128字节。
DMA队列300包括对应于DMA命令的行570到595。行570和595显示相应的DMA命令是有效的(列510)并且在列540中包括有效的实际地址(列530)。行580显示相应的DMA命令是有效的(列510)但在列540中不包括有效的实际地址(列530)。行590显示相应的DMA命令不是有效的(列510)并且在列540中不包括有效的实际地址(列530)。
图6是示出在DMA队列调出DMA命令时采用的步骤的高级流程图。DMA队列使用包括在DMA命令字段中的信息来确定是自身向总线接口单元发送实际页号还是请求存储器管理单元(MMU)执行地址翻译(参考图5和相应的文字描述以了解有关DMA命令参数的更多细节)。
处理开始于600,此后在步骤605,DMA队列识别准备好发出的DMA命令(例如,无依赖性)。确定DMA命令的相应的实际地址有效位是否被置位,这表明DMA命令的相应的实际页号是否有效(判决610)。
假设系统不在实模式下运行并且命令类型是需要地址翻译的类型,如果DMA命令的相应的实际地址有效位被置位,则判决610前往“是”分支612,之后处理在步骤650发送命令参数到调出处理。命令参数包括实际地址有效位值和传输大小,其中传输大小对应于DMA命令希望加载或存储的数据量,例如4KB的数据。调出处理接收命令参数并且相应地修改命令参数,例如使传输大小递减传输大小允许量(参考图7和相应的文字描述以了解有关调出处理步骤的更多细节)。
在步骤660,DMA队列从DMA命令字段之一提取DMA命令的实际页号并且将该实际页号发送到总线接口单元380。总线接口单元380与图3所示的相同,实际页号在到达总线接口单元380之前可以通过复用器,例如图3所示的复用器370。
在步骤670,DMA队列从调出处理接收写回信息。写回信息包括如上所述的实际地址有效位和递减的传输大小。在步骤680,DMA队列将写回信息加载到DMA命令的相应的DMA命令字段用于后面的DMA请求。
另一方面,如果DMA队列识别出DMA命令的实际地址有效位没有被置位,那么判决610前往“否”分支618,之后DMA队列在步骤620将命令参数发送到调出处理。在步骤625,DMA队列向执行地址翻译的存储器管理单元(MMU)发送翻译请求。MMU,例如图3中所示的MMU 320,执行地址翻译并将实际页号发送到总线接口单元380。MMU还将实际页号提供给DMA队列,DMA队列处理在步骤630接收该实际页号。
在一种实施方式中,如果MMU在它的表中没有找到对应于有效地址的表条目,那么MMU发送“未命中”到调出处理,并且从存储器取得翻译。在加载了翻译后,MMU处理发送“清除依赖性”到DMA队列,以通知DMA队列重发相应的命令(参考图8和相应的文字描述以了解有关MMU处理的更多细节)。
在步骤640,DMA队列从调出处理接收写回信息,并且在步骤645,DMA队列将写回信息和实际页号加载到DMA命令字段中。
判断DMA命令是否完成(判决690)。如果DMA命令需要进一步的调出(例如,队列条目有效位被置位),则判决690前往“是”分支692,它循环回去继续处理DMA命令。该循环一直继续,直到DMA命令被调出,此时判决690前往“否”分支698,之后DMA命令处理在699结束。
图7是示出在调出处理,例如使DMA命令传输大小递减以及提供写回信息到DMA队列时采用的步骤的流程图。调出处理开始于700,之后调出处理在步骤705从DMA队列处理接收命令参数(参考图6和相应的文字描述以了解有关DMA队列处理的更多细节)。命令参数包括实际地址有效位和传输大小。
通过检查实际地址有效位的状态做出有关实际页号是否有效的判断(判决710)。当实际地址有效位被置位时,DMA队列提供实际页号到总线接口单元。当实际页号没有被置位时,DMA队列请求存储器管理单元(MMU)执行地址翻译并且提供实际页号到总线接口单元和DMA队列。
如果实际页号有效,则判决710前往“是”分支718,之后处理绕开存储器管理单元请求步骤。另一方面,如果实际页号不是有效的,则判决710前往“否”分支712,之后处理在步骤715从MMU接收命中或未命中信号,表明MMU是否找到了与DMA请求的有效地址相对应的实际页号(参考图8和相应的文字描述以了解有关MMU处理的更多细节)。
判断MMU是否执行了地址翻译(判决720)。如果MMU未曾执行地址翻译,则判决720前往“否”分支722,之后处理对MMU发出依赖性位进行置位,该位信息告知DMA队列特定的指令依赖于MMU执行地址翻译(步骤725)。在稍后MMU已从存储器收到翻译时,MMU发送信号到DMA逻辑以清除MMU发出依赖性。直到从MMU接收到MMU未命中清零信号,DMA命令才被重发(参考图8和相应的文字描述以了解更多的细节)。
另一方面,如果MMU执行了地址翻译,则判决720前往“是”分支728,之后处理在步骤730对实际地址有效位进行置位,该实际地址有效位被包括在调出处理发送到DMA队列处理的写回信息中(参考下文)。
在步骤735,处理通过从它在命令参数中接收到的传输大小减去允许的最大传输大小而使DMA命令的传输大小递减(参考上面的705)。例如,如果接收到的传输大小是384字节,允许的最大传输大小是128字节,则递减后的传输大小是256字节。通过分析递减后的传输大小判断是否还需要其它DMA请求(判决740)。即,如果递减后的传输大小是零,则不再需要其它DMA请求。然而,如果传输大小不是零,则还需要其它DMA请求以便完成DMA命令。
如果不需要其它DMA请求,则判决740前往“否”分支742,之后处理复位队列有效位,它表明相应的DMA命令已被完成,因此不再有效(步骤745)。另一方面,如果还需要其它DMA请求,则判决740前往“是”分支748,之后处理在步骤750使有效地址递增到下一地址。
判断DMA命令是否到达了页的末端(判决760)。例如,存储器配置可以具有4KB增量的页。如果处理已到达页的末端,则判决760前往“是”分支768,之后处理在步骤770复位实际地址有效位,该位信息通知DMA队列请求MMU对于DMA命令的下一个翻译执行地址翻译。另一方面,如果处理还没有到达页的末端,则判决760前往“否”分支762,绕过实际地址有效位复位步骤。
在步骤780,调出处理发送写回信息到DMA队列处理。写回信息包括最近的变化,例如队列有效位、实际地址有效位和递减的传输大小。通过检查队列条目有效位来判断DMA命令是否需要进一步的DMA请求(判决790)。如果队列条目有效位被置位,则判决790前往“是”分支792,之后处理循环回去,处理对于DMA命令的更多的DMA请求。该循环一直继续,直到DMA命令完成,此时判决790前往“否”分支798,之后调出处理在799结束。
图8是示出在存储器管理单元接收翻译请求以及向总线接口单元和DMA队列提供实际页号时采用的步骤的流程图。使用这里描述的实施方式,当DMA命令在它的DMA命令字段之一中不包括有效实际页号,传输类型是需要翻译的类型,并且系统正运行在虚模式下(即,实模式不活动)时,DMA队列访问存储器管理单元(MMU)。
MMU处理开始于800,之后MMU在步骤810从DMA队列接收DMA请求。在步骤820,处理从DMA请求提取有效地址。MMU在步骤830访问MMU表840,以找到与该有效地址相对应的实际页号。MMU表840包括一个有效地址和相应的实际页号的列表。
判断MMU表840是否包括与有效地址相对应的表条目(判决850)。如果MMU找到了表条目,则判决850前往“是”分支852,之后处理在步骤855发送命中信号到调出处理(参考图7和相应的文字描述以了解有关调出处理的更多细节)。在步骤860,MMU发送找到的实际页号到总线接口单元380和DMA队列处理,并且MMU处理在890结束。DMA队列处理将实际页号与DMA命令存储在一起,以便将实际页号用于后面的DMA请求。总线接口单元380与图3所示的相同。
另一方面,如果MMU在MMU表840中没有找到与有效地址相对应的表条目,则判决850前往“否”分支858,之后处理发送“未命中”到调出处理(步骤870)并从存储库875取得翻译,该翻译被加载到MMU表840中。在加载了翻译后,MMU处理在步骤885发送“清除依赖性”到DMA队列,MMU处理在890结束。存储库875可以被存储在非易失存储区上,例如计算机硬盘。
图9图示了一个信息处理系统,它是能够执行这里描述的运算操作的计算机系统的一个简化例子。宽带处理器体系结构(BPA)900包括在单个芯片上的多个异构处理器(片上系统)、公共存储器和公共总线。异构处理器是具有不同指令集的处理器,它们共享公共存储器和公共总线。例如,异构处理器之一可以是使用RISC指令集的PowerPC,另一个异构处理器可以是使用向量指令集的协同处理单元,二个处理器共享同一存储空间。
BPA 900包括协同处理单元(SPC)910、930和950。每个SPC包括被耦合到DMA控制器(DMAC)的处理器核,而DMAC被耦合到总线接口单元(BIU)。SPC 910包括处理器核915、DMAC 920和BIU 925。SPC 930包括处理器核935、DMAC 940和BIU 945。而SPC950包括处理器核955、DMAC 960和BIU 965。
BPA 900还包括处理单元975,处理单元975运行操作系统(OS)978。例如,处理单元975可以是被嵌入在BPA 900中的Power PC核,OS 978可以是Linux操作系统。处理单元975管理用于BPA 900的公共存储器映射表。该存储器映射表对应于包括在BPA 900中的存储器位置,例如L2存储器980以及包括在SPC 910、930和950中的非私有存储器。
每个SPC被用于处理数据信息,并且每个SPC可以具有不同的指令集。例如,BPA 900可以用于无线通信系统中,每个SPC可以负责单独的处理任务,例如调制、芯片速率处理、编码和网络接口。在另一个例子中,每个SPC可以具有相同的指令集并且可以被并行地用于执行受益于并行处理的操作。每个SPC都包括协同处理单元(SPU)。SPU优选地是单指令、多数据(SIMD)处理器,例如数字信号处理器、微控制器或者这些核的组合。在一个优选实施方式中,每个SPU包括局部存储器、寄存器、四个浮点单元和四个整数单元。然而,根据所需的处理能力,可以采用更多或更少的浮点单元和整数单元。
SPC 910、930和950被连接到处理器元件总线970,该总线在SPC、处理单元975、L2存储器980、存储器控制器985和I/O控制器990之间传递信息。存储器控制器985与用于存取数据的存储器件988通信,而I/O控制器990与属于外围设备的I/O设备995通信。
虽然图9中所示的计算机系统能够执行这里描述的处理,但是该计算机系统只是计算机系统的一个例子。本领域的技术人员将认识到,很多其它计算机系统设计也能够执行这里描述的处理。
本发明的优选实施方案之一是客户应用,即在例如可以驻留在计算机的随机访问存储器中的代码模块中的一组指令(程序代码)。在被计算机需求前,该组指令可以被存储在另一个计算机存储器中,例如存储在硬盘驱动器中,或者存储在可移动存储器例如光盘(最终用于CD ROM中)或软盘(最终用于软盘驱动器中)中,或者可以通过因特网或其它计算机网络下载。因此,本发明可以被实施为用于计算机中的计算机程序产品。此外,虽然所描述的多种方法被方便地实施在通过软件选择性地激活或重新配置的通用计算机中,但是本领域的技术人员也会认识到这样的方法可以用硬件、固件或者被构建来执行所需的方法步骤的更专用的装置来实现。
虽然已经显示和描述了本发明的具体实施方式,但本领域的技术人员很清楚,根据这里的教导可以做出多种改变和变形,而不会偏离本发明及其更宽广的方面。因此,所附权利要求在它们的范围内包括落入本发明的真实精神和范围内的所有这样的改变和变形。此外,可以理解本发明仅由所附的权利要求来限定。本领域的技术人员将会明白,如果想要保护特定数量的引入的权利要求特征,这样的意图将被直接记载在该权利要求中,在缺少这样的记载的情况下,则不存在这样的限制。举一个非限制性的例子,为帮助理解,所附权利要求中包含介绍性的短语“至少一个”和“一个或多个”的使用,以引入权利要求的技术特征。然而,这样的短语的使用不应被理解为意味着前面加上不定冠词的技术特征要将包含这样的权利要求特征的任何具体权利要求限制为仅包含一个这样的技术特征的发明,即使当同一权利要求包括介绍性的短语“一个或多个”或“至少一个”和不定冠词时;对于使用定冠词的权利要求同样如此。
Claims (14)
1.一种计算机实施的方法,包括:
在DMA队列处选择DMA命令,该DMA命令包括多个DMA命令字段,所述多个DMA命令字段包括实际页号字段和传输大小字段;
确定包括在所述实际页号字段中的实际页号是否有效;以及
响应于确定所述实际页号有效,从所述DMA队列提供所述实际页号以处理所述DMA命令;
识别包括在所述传输大小字段中的传输大小,该传输大小指示对于所述DMA命令要传输的数据量;
检测与对于相应的DMA命令要传输的数据量相对应的最大传输大小允许值;
从所述传输大小减去所述最大传输大小允许值,该减法操作产生递减后的传输大小;
响应于提供所述实际页号,接收写回信息,该写回信息包括所述递减后的传输大小和所述实际页号;以及
将接收到的实际页号存储在所述实际页号字段中,将所述递减后的传输大小存储在所述传输大小字段中,所述递减后的传输大小指示在处理所述DMA请求后对于所述DMA命令剩余要传输的数据量。
2.根据权利要求1所述的计算机实施的方法,还包括:
检查包括在所述多个DMA命令字段之一中的实际地址有效位,该实际地址有效位表明所述实际页号是否有效;
响应于确定所述实际页号不是有效的,向存储器管理单元发送翻译请求;以及
从所述存储器管理单元提供新的实际页号以处理所述DMA命令。
3.根据权利要求2所述的计算机实施的方法,还包括:
配置复用器在所述实际页号有效的情况下选择所述实际页号,在所述实际页号不是有效的情况下选择所述新的实际页号。
4.根据权利要求2所述的计算机实施的方法,还包括:
确定所述存储器管理单元是否找到了与所述翻译请求相对应的新的实际页号;
响应于确定所述存储器管理单元找到了该新的实际页号,将该新的实际页号存储在所述实际页号字段中;以及
响应于确定所述存储器管理单元找到了该新的实际页号,置位所述实际地址有效位。
5.根据权利要求1所述的计算机实施的方法,还包括:
在所述减法操作后,使对应于所述DMA命令的有效地址递增;
基于递增后的有效地址确定是否到达了页的末端;以及
响应于确定到达了页的末端,复位包括在所述多个DMA命令字段之一中的实际地址有效位。
6.根据权利要求1所述的计算机实施的方法,其中,所述多个DMA命令字段中的至少一个是从队列条目有效位字段和实际地址有效位字段中选出的。
7.根据权利要求1所述的计算机实施的方法,还包括:
其中,使用宽带处理器体系结构来执行该方法,该宽带处理器体系结构包括多个异构处理器、公共存储器和公共总线;以及
其中,所述多个异构处理器使用不同的指令集并且共享所述公共存储器和所述公共总线。
8.根据权利要求7所述的计算机实施的方法,其中,所述宽带处理器体系结构是片上系统。
9.一种信息处理系统,包括:
用于在DMA队列处选择DMA命令的装置,该DMA命令包括多个DMA命令字段,所述多个DMA命令字段包括实际页号字段和传输大小字段;
用于确定包括在所述实际页号字段中的实际页号是否有效的装置;
用于响应于确定所述实际页号有效,从所述DMA队列提供所述实际页号以处理所述DMA命令的装置;
用于识别包括在所述传输大小字段中的传输大小的装置,该传输大小指示对于所述DMA命令要传输的数据量;
用于检测与对于相应的DMA命令要传输的数据量相对应的最大传输大小允许值的装置;
用于从所述传输大小减去所述最大传输大小允许值的装置,该减法操作产生递减后的传输大小;
用于响应于提供所述实际页号,接收写回信息的装置,该写回信息包括所述递减后的传输大小和所述实际页号;以及
用于将接收到的实际页号存储在所述实际页号字段中,将所述递减后的传输大小存储在所述传输大小字段中的装置,所述递减后的传输大小指示在处理所述DMA请求后对于所述DMA命令剩余要传输的数据量。
10.根据权利要求9所述的信息处理系统,还包括:
用于检查包括在所述多个DMA命令字段之一中的实际地址有效位的装置,该实际地址有效位表明所述实际页号是否有效;
用于响应于确定所述实际页号不是有效的,向存储器管理单元发送翻译请求的装置;以及
用于从所述存储器管理单元提供新的实际页号以处理所述DMA命令的装置。
11.根据权利要求10所述的信息处理系统,还包括:
用于配置复用器在所述实际页号有效的情况下选择所述实际页号,在所述实际页号不是有效的情况下选择所述新的实际页号的装置。
12.根据权利要求10所述的信息处理系统,还包括:
用于确定所述存储器管理单元是否找到了与所述翻译请求相对应的新的实际页号的装置;
用于响应于确定所述存储器管理单元找到了该新的实际页号,将该新的实际页号存储在所述实际页号字段中的装置;以及
用于响应于确定所述存储器管理单元找到了该新的实际页号,置位所述实际地址有效位的装置。
13.根据权利要求9所述的信息处理系统,其中,该信息处理系统是宽带处理器体系结构,该宽带处理器体系结构包括多个异构处理器、公共存储器和公共总线;并且其中,所述多个异构处理器使用不同的指令集并且共享所述公共存储器和所述公共总线。
14.根据权利要求13所述的信息处理系统,其中,所述宽带处理器体系结构是片上系统。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/246,585 | 2005-10-07 | ||
US11/246,585 US7644198B2 (en) | 2005-10-07 | 2005-10-07 | DMAC translation mechanism |
PCT/EP2006/066806 WO2007042400A1 (en) | 2005-10-07 | 2006-09-27 | System and method for improved dmac translation mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101278269A CN101278269A (zh) | 2008-10-01 |
CN101278269B true CN101278269B (zh) | 2011-08-10 |
Family
ID=37700756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800366859A Active CN101278269B (zh) | 2005-10-07 | 2006-09-27 | 用于改进的dmac翻译机制的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7644198B2 (zh) |
EP (1) | EP1934763B1 (zh) |
JP (1) | JP5039889B2 (zh) |
CN (1) | CN101278269B (zh) |
WO (1) | WO2007042400A1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490177B2 (en) * | 2006-01-23 | 2009-02-10 | Infineon Technologies Ag | System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture |
JP4908017B2 (ja) * | 2006-02-28 | 2012-04-04 | 富士通株式会社 | Dmaデータ転送装置及びdmaデータ転送方法 |
US7716389B1 (en) * | 2006-03-17 | 2010-05-11 | Bitmicro Networks, Inc. | Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions |
US8165301B1 (en) | 2006-04-04 | 2012-04-24 | Bitmicro Networks, Inc. | Input-output device and storage controller handshake protocol using key exchange for data security |
US7984229B2 (en) * | 2007-03-09 | 2011-07-19 | Freescale Semiconductor, Inc. | Pipelined tag and information array access with speculative retrieval of tag that corresponds to information access |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
KR20120083160A (ko) | 2011-01-17 | 2012-07-25 | 삼성전자주식회사 | 메모리 관리 유닛, 이를 포함하는 장치들, 및 이의 동작 방법 |
US20120254588A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask |
JP5209096B2 (ja) | 2011-09-07 | 2013-06-12 | 株式会社東芝 | リモートアクセスシステム、電子機器およびリモートアクセス処理方法 |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US10120694B2 (en) | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
CN110007869B (zh) * | 2019-04-12 | 2020-06-30 | 苏州浪潮智能科技有限公司 | 一种内存数据拷贝方法、装置、设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347643A (en) * | 1990-02-16 | 1994-09-13 | Hitachi, Ltd. | Bus system for coordinating internal and external direct memory access controllers |
EP0905629A1 (en) * | 1997-09-30 | 1999-03-31 | Compaq Computer Corporation | Bridge having a ditributing burst engine |
EP0447145B1 (en) * | 1990-03-12 | 2000-07-12 | Hewlett-Packard Company | User scheduled direct memory access using virtual addresses |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63245545A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | Dma方式 |
JPH0436852A (ja) * | 1990-05-31 | 1992-02-06 | Nec Home Electron Ltd | Dma制御装置 |
JPH05216809A (ja) * | 1992-02-06 | 1993-08-27 | Nec Corp | Dma転送方式 |
JPH1049481A (ja) * | 1996-08-05 | 1998-02-20 | Fujitsu Ltd | 情報処理装置及びそのデータ転送方法 |
JPH11184797A (ja) * | 1997-12-18 | 1999-07-09 | Nec Eng Ltd | Dma制御装置及びその制御方法並びにその制御プログラムを記録した記録媒体 |
US6070200A (en) * | 1998-06-02 | 2000-05-30 | Adaptec, Inc. | Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus |
US6611883B1 (en) * | 2000-11-16 | 2003-08-26 | Sun Microsystems, Inc. | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6918023B2 (en) * | 2002-09-30 | 2005-07-12 | International Business Machines Corporation | Method, system, and computer program product for invalidating pretranslations for dynamic memory removal |
US7359381B2 (en) * | 2004-01-30 | 2008-04-15 | Hewlett-Packard Development Company, L.P. | Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association |
US7657667B2 (en) * | 2004-03-25 | 2010-02-02 | International Business Machines Corporation | Method to provide cache management commands for a DMA controller |
US8006001B2 (en) * | 2004-09-22 | 2011-08-23 | Lsi Corporation | Method and apparatus for manipulating direct memory access transfers |
-
2005
- 2005-10-07 US US11/246,585 patent/US7644198B2/en not_active Expired - Fee Related
-
2006
- 2006-09-27 JP JP2008533979A patent/JP5039889B2/ja active Active
- 2006-09-27 CN CN2006800366859A patent/CN101278269B/zh active Active
- 2006-09-27 EP EP06806853A patent/EP1934763B1/en active Active
- 2006-09-27 WO PCT/EP2006/066806 patent/WO2007042400A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347643A (en) * | 1990-02-16 | 1994-09-13 | Hitachi, Ltd. | Bus system for coordinating internal and external direct memory access controllers |
EP0447145B1 (en) * | 1990-03-12 | 2000-07-12 | Hewlett-Packard Company | User scheduled direct memory access using virtual addresses |
EP0905629A1 (en) * | 1997-09-30 | 1999-03-31 | Compaq Computer Corporation | Bridge having a ditributing burst engine |
Non-Patent Citations (1)
Title |
---|
说明书第[0044]-[0060]段、附图3A,3B,8. |
Also Published As
Publication number | Publication date |
---|---|
JP2009512919A (ja) | 2009-03-26 |
WO2007042400A1 (en) | 2007-04-19 |
CN101278269A (zh) | 2008-10-01 |
US20070083680A1 (en) | 2007-04-12 |
EP1934763B1 (en) | 2012-09-19 |
JP5039889B2 (ja) | 2012-10-03 |
EP1934763A1 (en) | 2008-06-25 |
US7644198B2 (en) | 2010-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101278269B (zh) | 用于改进的dmac翻译机制的系统和方法 | |
CN101221543B (zh) | 执行dma块移动的方法、dma设备和数据处理系统 | |
CN100474270C (zh) | 用于信息处理的系统和方法 | |
CN100541665C (zh) | 可编程并行查找存储器 | |
CN102906716B (zh) | 促进计算环境的系统存储器的管理的方法 | |
CN104040516B (zh) | 用于数据去重的方法、设备和系统 | |
CN100390764C (zh) | 把虚拟存储器地址的数据传送到设备存储器的方法和系统 | |
US7512721B1 (en) | Method and apparatus for efficient determination of status from DMA lists | |
RU2526287C2 (ru) | Управление скоростью, с которой обрабатываются запросы на прерывание, формируемые адаптерами | |
EP2016499B1 (en) | Migrating data that is subject to access by input/output devices | |
CN109558168A (zh) | 低等待时间加速器 | |
US5515514A (en) | Peripheral processor card for upgrading a computer | |
US6839777B1 (en) | System and method for transferring data over a communication medium using data transfer links | |
CN104025036B (zh) | 低时延集群计算 | |
CN101221544A (zh) | 用于执行dma块移动的方法及dma设备 | |
CN103597457A (zh) | 避免设备中的非公布请求死锁 | |
CN103959257A (zh) | 用于持久性指针管理的软件转换后备缓冲器 | |
US20030177297A1 (en) | USB host controller | |
CN109871182A (zh) | 存储装置及其操作方法及发出命令的方法 | |
CN107430628A (zh) | 具有直接数据传输机制的加速框架 | |
JP2013512519A (ja) | いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム | |
TW201730775A (zh) | 在晶片多核心結構上區域地和跨核心地最小化窺探流量 | |
US6105080A (en) | Host adapter DMA controller with automated host reply capability | |
CN109314103A (zh) | 用于远程现场可编程门阵列处理的方法和装置 | |
US6640312B1 (en) | System and method for handling device retry requests on a communication medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |