《经超高速缓冲存储器注入加速输入输出处理的方法及装置的制作方法》由会员分享,可在线阅读,更多相关《经超高速缓冲存储器注入加速输入输出处理的方法及装置的制作方法(4页珍藏版)》请在金锄头文库上搜索。
1、经超高速缓冲存储器注入加速输入输出处理的方法及装置的制作方法专利名称:经超高速缓冲存储器注入加速输入输出处理的方法及装置的制作方法技术领域:总的来说,本发明涉及输入/输出操作,而具体地说,涉及加速输入输出操作的方法及装置。更具体地说,本发明涉及经超高速缓冲存储器注入加速输入输出处理的方法及装置。背景技术: 一般来讲,处理器通常在数据处理系统中控制和协调指令的执行。辅助于指令的执行,处理器必须频繁地从系统存储器或外围输入/输出(I/O)设备将数据移动到处理器中以便进行处理,并且在处理之后将数据从处理器移出到系统存储器或外围输入/输出设备。这样,处理器必须经常协调从一个存储设备向另一个存储设备的数
2、据移动。相反,直接存储器访问(DMA)传输是经过在数据处理系统中的系统总线从一个存储设备向另一个存储设备传输数据,而不通过处理器干预的通信。在典型的数据处理系统中,通常所采用的DMA传输与从I/O设备的存储器复制操作在时间上部分重叠,该复制操作是在处理器有效控制下进行的。一般来说,诸如网络控制器或者磁盘控制器一样的I/O设备启动从I/O设备的DMA传输,在该传输之后,中断处理器以便通知处理器数据传输完成。在数据被传输到利用该数据的用户应用程序之前,通过对从I/O设备传输的数据执行任何所需的处理,处理器将最终处理中断。需要同样的数据的用户应用程序也可对从I/O设备接收的数据执行附加的处理。许多数
3、据处理系统并入超高速缓冲存储器一致性机制,以保证在处理器的超高速缓冲存储器中的数据副本与存储在系统存储器或其他的处理器的超高速缓冲存储器中的相同数据保持一致。为了保持在系统存储器和处理器的超高速缓冲存储器中的数据一致性,向系统存储器的DMA传输将导致在处理器的超高速缓冲存储器中的超高速缓冲存储器线无效,该处理器的超高速缓冲存储器包含存储在存储器地址区域中的相同数据的副本,该存储器地址区域受到DMA传输的影响。然而,处理器仍然可能需要那些被无效了的超高速缓冲存储器线,以便在紧接着执行I/O处理,或者其他的用户应用程序功能。这样,当处理器需要访问在被无效了的超高速缓冲存储器线中的数据时,处理器必须
4、从系统存储器获取数据,每当访问超高速缓冲存储器线时,这将花费几十个或者几百个处理器周期。本发明公开了一种对上述问题的解决方案。发明内容根据本发明的优选实施例,在超高速缓冲存储器控制器中判断总线操作是否为在无需通过处理器干预通信的条件下,从第一存储器向第二存储器的数据传输,如直接存储器存取(DMA)传输。在所述总线操作是所述数据传输时,在超高速缓冲存储器控制器中判断是否所述超高速缓冲存储器包括来自所述数据传输的数据副本。在所述超高速缓冲存储器不包括来自所述数据传输的数据副本时,在超高速缓冲存储器中分配超高速缓冲存储器线,以存储来自所述数据传输的数据副本,并且当数据传输进行时,将数据拷贝到所分配的
5、超高速缓冲存储器线中。假如所述超高速缓冲存储器包括由所述数据传输所改变的数据副本,则在数据传输期间使用新的数据刷新在所述超高速缓冲存储器中的数据副本。在随后详细的说明书中,将明确地说明本发明的所有目的、特征和优点。结合附图阅读并且参考随后所述实施例的详细说明,本发明自身和优选实施例及其目的和优点将更加容易理解,其中图1示出采用传统的直接存储器访问传输的数据处理系统的方框图;图2示出采用根据本发明优选实施例的直接存储器访问传输的数据处理系统的方框图;和图3示出根据本发明的优选实施例,在数据处理系统中用于加速输入/输出处理的方法的高级逻辑流图。具体实施例方式现参照附图,具体地说参照图1,图1示出采
6、用传统的直接存储器访问(DMA)传输的数据处理系统的方框图。如图所示,数据处理系统10包括中央处理单元(CPU)11,通过系统总线13连接到源存储器12,目标存储器14和DMA控制器15。DMA控制器15分别通过信号线16和17连接到源存储器12和目标存储器14。DMA控制器15也通过应答线18和请求线19连接到CPU 11。在DMA操作期间,数据可直接地通过系统总线13从数据源存储器12传输到目标存储器14,而不通过CPU 11。DMA传输包括以下三个主要步骤。首先,CPU 11通过为DMA控制器15提供源存储器12和目标存储器14的标识、从源存储器12传输的第一字节的地址和要传输字节的数目
7、来建立DMA传输。在接收上述信息之后,DMA控制器15或者通过控制系统总线13或者通过请求与其他设备(未示出)对系统总线13的共享控制,开始DMA操作。一旦DMA控制器15已经控制系统总线13,DMA控制器15启动在系统总线13上的DMA传输。通过使用信号线16和17,DMA控制器15可以协调从源存储器12到目标存储器14的数据传输。DMA控制器15可控制在系统总线13上所提供的地址以及所需的芯片选择和芯片启动,该芯片选择和芯片启动线用于从源存储器12的所选存储器地址的位置读取数据并且将相同的数据写入目标存储器14的所选存储器地址的位置。一旦DMA传输已经完成,DMA控制器15可以中断CPU
8、11,以相应地通知CPU 11DMA传输完成。在DMA传输期间,CPU 11可以同时完成不同的处理操作。参照图2,示出采用根据本发明优选实施例的DMA传输的数据处理系统的方框图。如图所示,数据处理系统20包括CPU 21,该CPU 21包括通过互连线路23连接到系统存储器24和总线桥26的超高速缓冲存储器22。CPU21也连接到超高速缓冲存储器控制器51,以控制超高速缓冲存储器22。总线桥26连接在互连线路23和输入/输出(I/O)总线27之间。在当前实施例中,网络接口卡(NIC)提供在数据处理系统20和网络50之间的数据连接。网络50可以是局域网(LAN)、广域网(WAN)或者如Intern
9、et一样的全球网。NIC 29包括DMA控制器25和本地存储器28,用于接收来自网络50的数据包。其他已知的信号线在CPU 21、系统存储器24、本地存储器28和DMA控制器25之间连接,与图1所示相同,在图2中未示出。在DMA传输期间,数据可直接地从本地存储器28通过互连线路23传输至系统存储器24,而不经过CPU 21。为了超高速缓冲存储器一致协议的实施,超高速缓冲存储器控制器51一直监视在互连线路23上的流量。如前所述,为了保持在超高速缓冲存储器22和系统存储器24之间的数据的一致性,基于现有技术的向系统存储器24的DMA传输将导致超高速缓冲存储器22中的超高速缓冲存储器线无效,该超高速
10、缓冲存储器22包括存储在受DMA传输影响的系统存储器24区域中的相同数据的副本。根据本发明的优选实施例,改进超高速缓冲存储器控制器51以识别DMA传输。即,改进超高速缓冲存储器控制器51以识别在互连线路23上作为在两个设备之间DMA传输的数据传输的类型,诸如在本地存储器28和系统存储器24之间。一种实现需要指定系统存储器24的地址位置的特定范围,以便只用于DMA传输目的,并且假如对上述所指定的地址位置范围有总线写操作,则超高速缓冲存储器控制器51将立即实现来自DMA传输的总线写操作。通过在DMA传输命令中包括提示位来实现另一种超高速缓冲存储器控制器51对在互连线路23上DMA传输的识别。在监听
11、来自互连线路23的数据之后,超高速缓冲存储器控制器51刷新在超高速缓冲存储器22中的任何相应超高速缓冲存储器线,该超高速缓冲存储器22包括来自DMA传输的数据版本。由此,在超高速缓冲存储器22中的相应超高速缓冲存储器线可各自保持其有效一致状态,如被修改或被共享,而非被强制无效。假如超高速缓冲存储器22不包括来自DMA传输的数据版本,则超高速缓冲存储器控制器51将分配超高速缓冲存储器线,以存储来自DMA传输超高速缓冲存储器注入的数据。现参照图3,示出根据本发明的优选实施例,在数据处理系统中用于加速I/O处理的方法的高级逻辑流图。在方框30处开始,判断总线处理是否为DMA传输,如方框31所示。假如
12、总线处理是DMA传输,则另外判断与DMA传输相联系的数据是否具有存储在超高速缓冲存储器的超高速缓冲存储器线中的版本。假如与DMA传输相联系的数据不具有存储在超高速缓冲存储器中的版本,则在超高速缓冲存储器中分配超高速缓冲存储器线,以存储与DMA传输相联系的数据,如方框33所示。否则,假如与DMA传输相联系的数据具有存储在超高速缓冲存储器中的版本,则使用与DMA传输相联系的数据刷新在超高速缓冲存储器中相应的超高速缓冲存储器线,如方框34所示。如上所述,本发明提供一种用于在数据处理系统中加速I/O处理的方法。本发明通过使DMA数据注入到数据处理系统的超高速缓冲存储器中,来减小或者甚至消除任何由于DM
13、A传输所导致的超高速缓冲存储器失配。尽管利用仅具有一级超高速缓冲存储器的数据处理系统来说明本发明,但是本领域的技术人员应当理解本发明也可应用到具有诸如两级超高速缓冲存储器(L2)和三级超高速缓冲存储器(L3)一样的多级超高速缓冲存储器的数据处理系统。本发明应不受由下述原因所引起的任何超高速缓冲存储器冲突所产生的影响。第一,在任何条件下带来所讨论的数据,以使超高速缓冲存储器冲突即将发生。第二,L2/L3超高速缓冲存储器随着成组相联的增大而变大,这可降低超高速缓冲存储器冲突的负面效果。第三,许多超高速缓冲存储器的分组机制可发挥作用,以在降低其他应用的有效超高速缓冲存储器开销的条件下,完全地消除超高
14、速缓冲存储器冲突。最后,当建立DMA传输时,通过允许软件控制超高速缓冲存储器注入,可缓和或者完全避免由于超高速缓冲存储处理器不读取的数据所引起的超高速缓冲存储器冲突。当具体地展示本发明并且参照优选实施例对其进行说明时,本领域的技术人员应当清楚可在不脱离本发明的精神和范围的条件下,作形式上和细节上的各种改变。权利要求1.一种用于在数据处理系统中加速输入/输入处理的方法,所述方法包括在超高速缓冲存储器控制器中判断总线操作是否为在无需通过处理器干预通信的条件下,从第一存储器向第二存储器的数据传输;在所述总线操作是所述数据传输时,在超高速缓冲存储器控制器中判断是否所述超高速缓冲存储器包括来自所述数据传
15、输的数据副本;以及在所述超高速缓冲存储器不包括来自所述数据传输的数据副本时,在超高速缓冲存储器中分配超高速缓冲存储器线,以存储来自所述数据传输的数据副本。2.如权利要求1所述的方法,其中所述方法还包括在所述超高速缓冲存储器包括来自所述数据传输的数据副本时,使用与所述数据传输相联系的数据刷新在所述超高速缓冲存储器中相应的超高速缓冲存储器线。3.如权利要求1所述的方法,其中所述数据传输是直接存储器访问传输。4.如权利要求1所述的方法,其中所述第一存储器是本地存储器并且所述第二存储器是系统存储器。5.如权利要求4所述的方法,其中所述本地存储器位于网络接口卡上。6.如权利要求1所述的方法,其中在超高速
16、缓冲存储器控制器中的所述判断还包括判断所述总线操作是否为对在所述第二存储器的预定地址范围中的地址的写操作。7.如权利要求1所述的方法,其中在超高速缓冲存储器控制器中的所述判断还包括判断命令是否包括用于指明所述总线操作是直接存储器访问传输的提示位。8.一种数据处理系统,包括处理单元,包括超高速缓冲存储器;互连线路,连接到所述处理单元;第一存储器,连接到所述互连线路;第二存储器,连接到所述互连线路;和超高速缓冲存储器控制器,连接到所述处理单元和所述互连线路,其中所述超高速缓冲存储器控制器包括装置,用于在超高速缓冲存储器控制器中判断总线操作是否为在无需通过处理器干预通信的条件下,从第一存储器向第二存储器的数据传输;装置,用于在所述总线操作是所述数据传输时,在超高速缓冲存储器控制器中判断是否所述超高速缓冲存储器包括来自所述数据传输的数据副本;和装置,用于在所述超高速缓冲存储器不包括来自所述数据传输的数据副本时,在超高速缓冲存储器中分配超高速缓冲存储器线,以存储来自所述数据