使用处理器中的dma控制器向处理器高速缓存进行的数据传输的制作方法

文档序号:6656950阅读:316来源:国知局
专利名称:使用处理器中的dma控制器向处理器高速缓存进行的数据传输的制作方法
技术领域
本发明涉及计算机系统;更特别地,本发明涉及高速缓冲存储系统。
背景技术
许多存储、网络和嵌入式应用程序为了实现最佳的性能需要快速的输入/输出吞吐能力。I/O处理器将I/O处理功能从主中央处理单元(CPU)中分出,从而使得服务器、工作站和存储子系统能够更快地传输数据,降低了通信瓶颈并提高了整个系统的性能。典型的I/O处理器处理由主机生成的分散集中列表(Scatter Gather List,SGL),以便开始必要的数据传输。通常在I/O处理器开始处理SGL之前,这些SGL被从主存储器中移到I/O处理器的局部存储器中。随后,通过从局部存储器中读出SGL来对其进行处理。


在附图中以举例的形式、而不是以限定的方式说明了本发明,在附图中相同的参考标记指的是相同或相似的单元,其中图1是计算机系统的一个实施例的方框图;图2描述了I/O处理器的一个实施例;以及图3是描述使用DMA引擎来将数据拉入(pull)处理器高速缓存中的一个实施例的流程图。
具体实施例方式
根据一个实施例,描述了一种将数据拉入处理器高速缓存中的机制。在下面对本发明的详细描述中,为了提供对本发明完全的理解,阐述了许多特定细节。然而,对于本领域的技术人员来说显而易见的是,本发明没有这些特定细节也是可以实现的。在其它的示例中,公知的结构和设备以方框图的形式示出而未详细描述,以免使本发明难以理解。
该说明书中对“一个实施例”或“实施例”的引述意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在该说明书各种地方出现的短语“在一个实施例中”并不是必须全部涉及同一个实施例。
图1是计算机系统100的一个实施例的方框图。计算机系统100包括接到总线105的中央处理单元(CPU)102。在一个实施例中,CPU102是来自英特尔公司(Santa Clara,California)的奔腾处理器家族中的一种处理器,这个处理器家族包括奔腾II处理器家族、奔腾III处理器和奔腾IV处理器。可选择地,也可以采用其它的CPU。
芯片组107也接到总线105。芯片组107包括存储器控制集线器(MCH)110。MCH 110可以包括接到主系统存储器115的存储器控制器112。主系统存储器115存储数据和由CPU 102或包含在系统100中的任意其它设备所执行的指令序列。在一个实施例中,主系统存储器115包括动态随机存取存储器(DRAM);然而,主系统存储器115也可以用其它存储器类型来实现。附加的设备也可以接到总线105,例如多个CPU以及/或者多个系统存储器。
芯片组107还包括输入/输出控制集线器(ICH)140,它通过集线器接口接到MCH 110。ICH 140向计算机系统100中的输入/输出(I/O)设备提供接口。例如,ICH 140可以接到快速外围组件互连(PCIExpress)总线上,这种总线属于Portland,Oregon的PCI Special InterestGroup所开发的规范修订版2.1总线。
根据一个实施例,ICH 140通过PCI Express总线接到I/O处理器150。I/O处理器150使用SGL向ICH 140传输数据或从ICH 140传输数据。图2描述了I/O处理器150的一个实施例。I/O处理器150接到局部存储器设备215和主机系统200。根据一个实施例,主机系统200表示针对图1中计算机系统100示出的CPU 102、芯片组107、存储器115和其它组件。
参考图2,I/O处理器150包括CPU 202(例如,CPU_1和CPU_2)、存储器控制器210、DMA控制器220和通过外部总线接到主机系统200的外部总线接口230。I/O 150的组件通过内部总线接在一起。根据一个实施例,该总线是XSI总线。
XSI是一种分离地址数据总线,其中数据和地址用唯一的序列ID联系在一起。而且,XSI总线提供了一个称为“行写(Write Line)”(或者在写入少于一个高速缓存行的情况下称为“写(Write)”)的命令,以在总线上执行高速缓冲行写入。只要在行写(或写)命令期间设置PUSH(推送)属性,那么在总线上的CPU 202中的一个(CPU_1或CPU_2)就会在事务的目的ID(DID)与特定的CPU 202的ID相匹配的情况下要求执行(claim)该事务。
一旦作为目标的CPU 202接受具有PUSH的行写(或写)命令,那么发起该事务的代理就在数据总线上提供数据。在地址阶段期间,生成该命令的代理生成一个序列ID。然后在数据传输期间,供应数据的代理使用相同的序列ID。在读取期间,要求执行该命令的代理将供应数据,而在写入期间,生成该命令的代理提供数据。
在一个实施例中,实现了XSI总线功能以使得DMA控制器220能够直接将数据拉入到CPU 202的高速缓存中。在这种实施例中,DMA控制器220把CPU 202(例如,CPU_1)作为目标,发布一组具有PUSH的行写(和/或写)命令。CPU_1接受该命令,存储序列ID并等待数据。
DMA控制器220然后生成行读(Read Line)(和/或读(Read))命令的序列,这些命令具有与带有PUSH的行写(和/或写)命令期间所使用的序列ID相同的序列ID。接口单元230要求执行该行读(或者读)命令,并在外部总线上生成相应的命令。当数据从主机系统200返回时,接口单元230在XSI总线上生成相应的数据传输。由于它们具有匹配的序列ID,因此CUP_1要求执行数据传输并将它们存储在其局部高速缓存中。
图3是描述使用DMA引擎220将数据拉入到CPU 202的高速缓存中的一个实施例的流程图。在处理框310中,CPU 202(例如,CPU_1)对DAM控制器220编程。在处理框320中,DMA生成具有PUSH的行写(或写)命令。在处理框330中,CPU_1要求执行具有PUSH的行写(或写)命令。
在处理框340中,DMA控制器220向XSI总线生成具有相同序列ID的读命令。在处理框350中,外部总线接口230要求执行读命令并在外部总线上生成读命令。在处理框360中,外部总线接口230在XSI总线上放置所接收的数据(例如,SGL)。在处理框370中,CPU_1接受该数据并将该数据存储在高速缓存中。在处理框380中,DMA控制器220监控XSI总线上的数据传输,并中断CPU_1。在处理框390中,CPU_1开始对已经在高速缓存中的SGL进行处理。
上述机制利用了I/O处理器中的CPU的PUSH高速缓存的能力,从而将SGL直接移到CPU的高速缓存中。这样,在内部总线上只发生一次数据(SGL)传输。结果,由于不需要先将SGL移动到位于I/O处理器外部的局部存储器中,因而降低了在内部总线上的通信量,加快了等待时间。
然而,对本领域的技术人员来说,在阅读上述说明书之后,对于本发明的许多替换或修改必定是显见的,应当理解,以举例说明的方式示出和描述的任何特定实施例不应被理解为试图对本发明进行限制。因此,对各个实施例的细节的引述并非要限制权利要求的范围,在权利要求本身中仅记载了对本发明来说必要的那些特征。
权利要求
1.一种计算机系统,包括主存储器;接到所述主存储器的外部总线;以及接到所述外部总线的处理器,其具有第一中央处理单元(CPU);接到所述CPU的内部总线;以及直接存储器存取(DMA)控制器,其接到所述内部总线,用于将取自所述主存储器的数据直接放入所述第一CPU中。
2.如权利要求1所述的计算机系统,其中,所述内部总线是分离地址数据总线。
3.如权利要求1所述的计算机系统,其中,所述第一CPU包括高速缓冲存储器,其中,取自所述主存储器的数据被存储在所述高速缓冲存储器中。
4.如权利要求3所述的计算机系统,其中,所述处理器还包括接到所述内部总线和所述外部总线的总线接口。
5.如权利要求4所述的计算机系统,其中,所述处理器还包括接到所述内部总线的第二CPU。
6.如权利要求5所述的计算机系统,其中,所述处理器还包括存储器控制器。
7.如权利要求6所述的计算机系统,还包括接到所述处理器的局部存储器。
8.一种方法,包括直接存储器存取(DMA)控制器发布将数据通过分离地址数据总线写入到中央处理单元(CPU)的写命令;从外部存储器设备获取所述数据;以及通过所述分离地址数据总线将所述数据直接写入所述CPU内部的高速缓存中。
9.如权利要求8所述的方法,还包括所述DMA控制器在发布所述写命令时生成一个序列ID。
10.如权利要求9所述的方法,还包括所述CPU接受所述写命令;以及存储所述序列ID。
11.如权利要求10所述的方法,还包括所述DMA控制器生成一个或多个具有所述序列ID的读命令。
12.如权利要求11所述的方法,还包括接口单元接收所述读命令;以及生成通过外部总线从所述外部存储器获取所述数据的命令。
13.如权利要求12所述的方法,还包括所述接口单元将所获取的数据传送到所述分离地址总线上;以及所述处理器从所述分离地址总线上捕获所述数据。
14.一种输入/输出(I/O)处理器,包括具有第一高速缓冲存储器的第一中央处理单元(CPU);接到所述CPU的分离地址数据总线;以及直接存储器存取(DMA)控制器,其接到所述分离地址数据总线以将取自主存储器的数据直接放入所述第一高速缓冲存储器中。
15.如权利要求14所述的I/O处理器,其中,所述第一CPU包括接到外部总线以从所述主存储器获取所述数据的接口。
16.如权利要求15所述的I/O处理器,其中该处理器还包括具有第二高速缓冲存储器的第二CPU。
17.如权利要求16所述的I/O处理器,其中,所述处理器还包括存储器控制器。
全文摘要
本发明公开了一种计算机系统。该计算机系统包括主存储器、接到该主存储器的外部总线、以及接到该外部总线的处理器。该处理器包括第一中央处理单元(CPU)、接到该CPU的内部总线、以及接到该内部总线以将取自主存储器的数据直接放入第一CPU的直接存储器存取(DMA)控制器。
文档编号G06F15/78GK101036135SQ200580033164
公开日2007年9月12日 申请日期2005年10月27日 优先权日2004年10月27日
发明者S·埃迪里苏里亚 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1