用于直接高速缓存访问的直接存储器存取重新排序的制作方法

文档序号:6567443阅读:173来源:国知局
专利名称:用于直接高速缓存访问的直接存储器存取重新排序的制作方法
技术领域
本装置和方法的实施例 一般涉及直接高速緩存访问,特别是涉 及高速缓存管理。
背景技术
在改进高速网络性能时, 一个障碍是存储器存取等待时间。高 速緩存未命中是等待时间的 一个原因。当处理器所请求的数据没有 处于处理器的高速緩沖存储器中而必须从较慢的存储装置中访问 时,发生高速緩存未命中。
采用高速緩存热身(cache warming)来降低高速緩存未命中。 高速缓存热身是在处理器尝试访问数据之前将其放入处理器的高速 緩存的技术。目前,存在高速緩存热身数据的两种相关方法。第一 种方法是在访问源和/或目标地址之前发出源和/或目标地址的处理器 预取命令。第二种方法是采用直^^妾高速緩存访问(DCA)。通过DCA, 将特殊标志包含在总线事务中,以表明该数据将在数据被传送到存 储器时放入给定处理器的高速緩存。
然而,当用于高速网络应用例如10千兆位以太网时,这两种方 法都有缺点。因此,需要管理高速緩沖存储器的改进方法。

发明内容
根据本发明的第一方面,提供了一种方法,包括 与预取命令结合使用直接高速緩存访问(DCA)传送,使得DCA 传送的数量受到限制,以确保在访问数据之前并且在所述DCA传送 之后发出所述预取命令。
根据本发明的第二方面,提供了一种方法,包括 采用直接高速緩存访问(DCA)传送通过总线来传送数据;以

重新排序通过所述总线的传送,使得DCA传送是最后的事务。 根据本发明的第三方面,提供了一种装置,包括 总线;以及
重新排序模块,在操作上耦合到所述总线,通过所述总线的传 送经过重新排序,使得直接高速緩存访问(DCA)传送是最后的事 务。
根据本发明的第四方面,提供了一种系统,包括
总线,具有总线排序规则以通过所述总线来传送分组,所述分 组具有报头和分组数据;
具有数据的磁盘驱动设备,所述磁盘驱动设备在操作上耦合到 所述总线,所述数据以分组形式通过所述总线来传送,以及当分组 通过所述总线传送时,所述报头和描述符为DCA传送,而所述分组 数据则为非DCA传送;
重新排序模块,在操作上耦合到所述总线,通过所述总线的DCA 和非DCA传送经过重新排序,使得DCA传送是最后的事务,因而 比非DCA传送更接近中断; .
协调模块,在操作上耦合到所述总线,使DCA和非DCA传送 的请求与中断处理相协调;以及
1/0设备,在操作上耦合到所述总线,至少用于接收所述分组。


通过参照i兑明本创造性主题的实施例的以下描述和附图,可以 最透彻地理解本创造性主题的这些实施例。附图包括 图1示出用于DMA重新排序的本主题的一个实施例;
图2示出根据本主题的一个实施例的分组的传送; 图3示出根据本主题的另一个实施例的分组的传送; 图4是根据本主题的一个实施例、用于直接存储器存取(DMA ) 的方法的流程图5是根据本主题的另 一个实施例、用于DMA的方法的流程图; 图6是根据本主题的另 一个实施例、用于DMA的方法的流程以及
图7是根据本主题的另 一个实施例、用于DMA的方法的流程图。
具体实施例方式
在以下描述中,阐述了大量具体细节。但是要理解,即使没有 这些具体细节也可以实施本发明的实施例。在另一些情况下,没有 详细说明公知的电路、结构和技术,以免影响对本说明书的理解。
如果实际上公开了 一个以上实施例,那么创造性主题的这类实 施例在本文中可单独或共同由术语"本发明"来表示,这只是为了 方便起见,而不是要有意将本申请的范围限于任何单个发明或创造 性概念。
直接存储器存取(DMA)是将数据从输入/输出(I/O)设备传送 给存储设备而无需中央处理器(CPU)干预的方法。DMA控制器 (DMAC)充当在DMA期间对I/O设备和存储设备传送数据的总线 上的总线主控器。在网络、例如采用以太网的网络上传送的数据以 分组形式传送。各分组通常包含报头和分组数据。分组描述符通常 用来传送状态以及关于分组的其它信息(位置、长度、差错状态等)。 这些分组和描述符在它们移动到主机系统或者从主机系统移动到以 太网控制器时通过总线进行DMA传送。
根据本主题的实施例,通过DMA传送的一些数据还按照直接高 速緩存访问(DCA)直接放入高速緩冲存储器,而通过DMA传送的 其它数据则不按照DCA放入高速緩冲存储器。对DCA和非DCA传
送进行重新排序,以改进高速緩冲存储器的管理。
图1示出实现具有重新排序的DMA的本主题的一个实施例。总 线100可在操作上耦合到例如存储设备102、重新排序模块104、协 调模块106和I/O设备108。总线100可具有总线排序规则。存储"^殳 备102可以是磁盘驱动器设备、DRAM、闪速存储设备或SRAM。 I/O 设备108可以是耦合到采用以太网的网络的电缆调制解调器或者无 线网络中的全向天线。处理器110可在操作上耦合到存储设备102、 重新排序模块104和协调模块106。处理器110控制用于通过总线100 传送(例如)分组的这些元件的操作。采用重新排序模块104,通过 总线100的DCA和非DCA传送可经过重新排序,使得DCA传送是 最后的事务,因而比非DCA传送更接近中断。利用协调模块106, 可使DCA和非DCA传送的请求与由处理器110进行的中断处理相 协调。系统的其它配置也可利用本主题。
根据本主题的一些实施例,只有处理器110最初访问的分组的 报头和描述符才按照DCA放入高速緩冲存储器中。在本主题的另一 些实施例中,DCA数据可在处理器110进行访问之前立即放入高速 緩沖存储器(高速緩存已热身)。这可防止过早逐出其它高速緩存 内容,并且极大地提高在处理器110进行访问时DCA数据仍然处于 高速緩存中的概率。
根据本主题的一些实施例,DCA和非DCA传送经过重新排序, 使得DCA传送是最后的事务,因而更接近中断。这种重新排序与总 线排序规则无关并且不违反总线排序规则。例如,当传送所接收的 分组时,报头和描述符一般是DCA事务,而分组数据则不是。在传 送描述符之前不访问分组,并且同时描述符保持最后传送,其它传 送的顺序可以改变。
图2示出根据本主题的一个实施例的分组的传送。在201,以非 DCA方式传送DMA数据。DMA报头的DCA传送在202发生,以 及DMA描述符的DCA传送在203发生。中断在204发生。
图3示出根据本主题的一个实施例的多个分组的传送。图3中 的传送与中断断言相协调。这允:^午多个分组的DCA事务重新排序。 对图3中的前N1个分组发出DCA事务。对N1之后的分组N1+1至 N2,不发出DCA事务。分组1至Nl的DCA事务经过重新排序, 以在非DCA事务之后发生。这允许驱动程序的中断处理功能的初始 访问发出分组Nl+1至N2的所需部分的预取命令。这允许预取操作 在分组1至Nl被处理的同时在后台进行。
在图3的301,实现分组1至N1的非DCA事务。在302,实现 分组Nl+1至N2的所有事务。分组Nl+1至N2的事务都不是DCA
事务。在303,实现分组1至N1的DCA事务,以及中断处理在304 开始。在305,对分组N1+1至N2的所需部分发出预取命令。在306, 处理分组1至N1。在307,完成分组Nl,+1至N2预取。在308,处 理分组Nl+1至N2。
为了提高性能,Nl的值(对多少分组使用DCA)可以是自适应 可编程的。Nl的值应当大到足以允许在访问分组Nl+1之前预取分 组N1+1的所需部分的足够时间。另外还应当不大于实现该目标所需 的值。较大的值可能导致所需数据被逐出高速緩存。
为了帮助取得N1的正确〗直,本主题的实施例可考虑处理器的高 速緩沖存储器的大小和使用情况。另外,DCA活动可能限于选择诸 如高优先级队列或TCP之类的业务。
本主题的实施例包括协调DCA请求与i殳备驱动程序进行的中断 处理。通过使DMA活动与中断调节和断言定时器同步来实现中断协 调。#4居本主题的一个实施例,DCA清除(flush)定时器相对于中 断断言定时器来设置。这允许_没备驱动程序对清除定时器进行编程, 使得延迟匹配平台和操作系统(OS)中断延迟。例如,在直接访问 描述符的操作系统中,清除定时器可设置为中断断言之前足以使已 存储的DCA事务能够完成的某个值。该清除定时器值具有若干相关 性,例如总线带宽、分组速率和中断调节。自适应算法可用来调整
清除定时器。
对于其中以延期过程调用(DPC)而不是中断服务例程(ISR) 来访问DCA传送数据的操作系统,DCA协调定时器可设置为中断 断言之后的某个值。这允许DCA事务在中断断言之后并且在DPC 执行之前进行。DCA协调定时器值可以是自适应可编程值。
根据本主题的实施例,当设备驱动程序和控制器以轮询模式进 行操作时,可采用改进DCA清除的其它方法。例如,DCA清除定 时器可不相对中断断言来设置。作为备选的方案,可采用分组、字 节或描述符数的DCA清除阈值。
图4是根据本主题的一个实施例、用于DMA的方法的流程图。 在401, DCA和非DCA传送经过重新排序,使得DCA传送是最后 的事务,因而比非DCA传送更接近中断。在402,使DCA和非DCA 传送的DCA请求与中断处理相"f办调。
图5是根据本主题的另一个实施例、用于DMA的方法的流程图。 在501, DCA和非DCA传送通过具有总线排序规则的总线重新排序, 使得DCA传送是最后的事务,因而比非DCA传送更接近中断。重 新排序与总线排序规则无关并且不违反总线排序规则。在502,使 DMA活动与中断调节和断言定时器同步,以实现DCA和非DCA传 送的DCA请求的中断处理的中断协调。
图6是根据本主题的另 一个实施例、用于DMA的方法的流程图。 在601,与预取命令结合使用DCA传送,使得DCA传送的数量受 到限制,以确保在访问数据之前并且在DCA传送之后发出预取命令。 在602,当传送分组时,分组的报头和描述符是DCA事务,而分组 数据则是非DCA传送。
图7是根据本主题的另一个实施例、界于DMA的方法的流程图。 在701,釆用直接高速缓存访问(DCA)传送通过总线来传送数据, 以及传送经过重新排序,使得DCA传送是最后的事务。在702,采 用非DCA传送通过总线来传送数据。在703,自适应地调整采用DCA
传送通过总线传送的数据的量。在704,对采用非DCA传送通过总 线传送的数据发出预取命令。在705,设置DCA清除阈值。在706, DCA清除阈值相对于中断断言定时器来设置。在707,自适应地调 整DCA清除阈值。
本主题的实施例可利用任何总线主控设备来实施。本主题的实 施例可应用于高速网络应用,例如10千兆以太网或者无线网络。本 主题的实施例可采用多种类型的操作系统来实现。本主题的实施例 还可在其它网络应用中以及通过其它硬件来实现。
本主题的实施例具有若干优点。总线事务经过重新排序,使得 DCA事件是最后的,它包括分组之间的重新排序事件。可使DCA 事务与中断断言同步。本主题的实施例包括自适应可编程定时器或 阈值,以及这种定时器可能或者可能不相对于中断断言。
DCA可与预取结合使用。DCA事务可限制到所需数量,以确保 预取命令可在访问数据之前并且在DCA事务之后恰当地发出。可根 据处理器的高速緩存的大小来限制DCA,事务。DCA可限于选择业 务或队列。
本主题的实施例以及预取才支术利用DCA和预取中每一个的长 处。本主题的这些实施例限制对其需要发出DCA事务的分组的数量。 本主题的实施例针对给定情况选择最适当的工具。
本文所述的操作只是示范性的。可在不背离本创造性主题的精 神的前提下,对这些操作进行许多改变。例如,可按照不同的顺序 来执行操作,或者可添加、删除或修改操作。
虽然本文已经详细说明和描述了本创造性主题的示范性实现, 但是本领域的技术人员非常清楚,可在不背离本创造性主题的精神 的前提下,对本发明进行各种修改、添加、替换等,因此它们被认 为处于以下权利要求书所确定的创造性主题的范围之内。
权利要求
1.一种方法,包括与预取命令结合使用直接高速缓存访问(DCA)传送,使得DCA传送的数量受到限制,以确保在访问数据之前并且在所述DCA传送之后发出所述预取命令。
2. 如权利要求1所述的方法,其特征在于,还包括 重新排序DCA和非DCA传送,使得DCA传送是最后的事务,因而比非DCA传送更接近中断;以及使DCA和非DCA传送的请求与中断处理相协调。
3. 如权利要求2所述的方法,其特征在于,传送通过具有总线 排序规则的总线进行,以及所述重新排序与总线排序规则无关并且 不违反总线排序规则。
4. 如权利要求1所述的方法,其特征在于,分组具有"t艮头和分 组数据,以及当传送分组时,报头和描述符是DCA事务,而分组数 据则是非DCA传送。
5. 如权利要求4所述的方法,其特征在于,在传送所述描述符 之前不访问分组,同时所述描述符保持最后传送,以及其它传送的 顺序是可改变的。
6. 如权利要求4所述的方法,其特征在于,所述方法还包括将 DCA传送限制为下列中的一个处理器的高速緩存的大小和选择业 务或队列。
7. 如权利要求6所述的方法,其特征在于,在直接访问所述描 述符的操作系统中,定时器可设置为中断断言之前使已存储的DCA 传送能够完成的值。
8. 如权利要求7所述的方法,其特征在于,所述值取决于多个 相关性。
9. 如权利要求8所述的方法,其特征在于,所述相关性是下列中的至少一个总线带宽、分组速率和中断调节。
10. 如权利要求1所述的方法,其特征在于,在其中以延迟过 程调用(DPC)来访问DCA传送数据的操作系统中,所述方法还包 括将DCA协调定时器设置为中断断言之后的某个值。
11. 一种方法,包括采用直接高速緩存访问(DCA)传送通过总线来传送数据;以及重新排序通过所述总线的传送,使得DCA传送是最后的事务。
12. 如权利要求11所述的方法,其特征在于,还包括采用非DCA 传送通过所述总线来传送数据。
13. 如权利要求12所述的方法,其特征在于,还包括自适应地 调整采用DCA传送通过所述总线传送的数据的量。
14. 如权利要求12所述的方法,其特征在于,还包括发出采用 非DCA传送通过所述总线传送的数据的预取命令。
15. 如权利要求11所述的方法,其特征在于,还包括设置DCA 清除阈值。
16. 如权利要求15所述的方法,其特征在于,还包括相对于中 断断言定时器来设置所述DCA清除阈值。
17. 如权利要求15所述的方法,其特征在于,还包括自适应地 调整所述DCA清除阈值。
18. —种装置,包括 总线;以及重新排序模块,在操作上耦合到所述总线,通过所述总线的传 送经过重新排序,使得直接高速緩存访问(DCA)传送是最后的事 务。
19. 如权利要求18所述的装置,其特征在于,所述总线经过耦 合,以接收数据的非DCA传送。
20. 如权利要求19所述的装置,其特征在于,还包括处理器,耦合到所述总线以自适应地调整采用DCA传送通过所述总线来传送 的数据的量。
21. 如权利要求19所述的装置,其特征在于,还包括处理器, 耦合到所述总线以发出采用非DCA传送通过所述总线来传送的数据 的预取命令。
22. 如权利要求18所述的装置,其'特征在于,还包括耦合到所 述总线以设置DCA清除阈值的处理器。
23. 如权利要求22所述的装置,其特征在于,所述处理器耦合 到协调模块,所述模块在操作上耦合到所述总线以相对于中断断言 定时器来设置所述DCA清除阈值。
24. 如权利要求22所述的装置,其特征在于,所述处理器耦合 到所述总线,以自适应地调整所述DCA清除阈值。
25. —种系统,包括总线,具有总线排序规则以通过所述总线来传送分组,所述分 组具有报头和分组数据;具有数据的磁盘驱动设备,所述磁盘驱动设备在操作上耦合到 所述总线,所述数据以分组形式通过所述总线来传送,以及当分组 通过所述总线传送时,所述报头和描述符为DCA传送,而所述分组 数据则为非DCA传送;重新排序模块,在操作上耦合到所述总线,通过所述总线的DCA 和非DCA传送经过重新排序,使得DCA传送是最后的事务,因而 比非DCA传送更接近中断;协调模块,在操作上耦合到所述总线,使DCA和非DCA传送的请求与中断处理相协调;以及1/0设备,在操作上耦合到所述总线,至少用于接收所述分组。
26. 如权利要求25所述的系统,其特征在于,所述重新排序与 所述总线排序规则无关并且不违反所述总线排序规则。
27. 如权利要求25所述的系统,其特征在于,在传送所述描述符之前不访问所述分组,同时所述描述符保持最后传送,以及其它 传送的顺序是可改变的。
全文摘要
在一个实施例中,装置和方法包括重新排序直接高速缓存访问(DCA)和非DCA传送,使得DCA传送是最后的事务,因而比非DCA传送更接近中断。实施例还包括使DCA和非DCA传送的DCA请求与中断处理相协调。
文档编号G06F12/08GK101176076SQ200680016523
公开日2008年5月7日 申请日期2006年5月2日 优先权日2005年5月13日
发明者L·科尔内特, P·康诺尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1