CN101036135A - 使用处理器中的dma控制器向处理器高速缓存进行的数据传输 - Google Patents
使用处理器中的dma控制器向处理器高速缓存进行的数据传输 Download PDFInfo
- Publication number
- CN101036135A CN101036135A CNA2005800331643A CN200580033164A CN101036135A CN 101036135 A CN101036135 A CN 101036135A CN A2005800331643 A CNA2005800331643 A CN A2005800331643A CN 200580033164 A CN200580033164 A CN 200580033164A CN 101036135 A CN101036135 A CN 101036135A
- Authority
- CN
- China
- Prior art keywords
- cpu
- processor
- bus
- data
- memory
- 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.)
- Pending
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种计算机系统。该计算机系统包括主存储器、接到该主存储器的外部总线、以及接到该外部总线的处理器。该处理器包括第一中央处理单元(CPU)、接到该CPU的内部总线、以及接到该内部总线以将取自主存储器的数据直接放入第一CPU的直接存储器存取(DMA)控制器。
Description
版权声明
这里所包括的内容是受到版权保护的材料。版权拥有者并不拒绝当本专利在专利和商标局的专利文件或记录中公开后任何人对其进行复制,但是除此之外保留对本版权的所有权利。
技术领域
本发明涉及计算机系统;更特别地,本发明涉及高速缓冲存储系统。
背景技术
许多存储、网络和嵌入式应用程序为了实现最佳的性能需要快速的输入/输出吞吐能力。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处理器外部的局部存储器中,因而降低了在内部总线上的通信量,加快了等待时间。
然而,对本领域的技术人员来说,在阅读上述说明书之后,对于本发明的许多替换或修改必定是显见的,应当理解,以举例说明的方式示出和描述的任何特定实施例不应被理解为试图对本发明进行限制。因此,对各个实施例的细节的引述并非要限制权利要求的范围,在权利要求本身中仅记载了对本发明来说必要的那些特征。
Claims (17)
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处理器,其中,所述处理器还包括存储器控制器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/974,377 US20060090016A1 (en) | 2004-10-27 | 2004-10-27 | Mechanism to pull data into a processor cache |
US10/974,377 | 2004-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101036135A true CN101036135A (zh) | 2007-09-12 |
Family
ID=36099940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800331643A Pending CN101036135A (zh) | 2004-10-27 | 2005-10-27 | 使用处理器中的dma控制器向处理器高速缓存进行的数据传输 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20060090016A1 (zh) |
KR (1) | KR20070048797A (zh) |
CN (1) | CN101036135A (zh) |
DE (1) | DE112005002355T5 (zh) |
GB (1) | GB2432943A (zh) |
TW (1) | TWI294079B (zh) |
WO (1) | WO2006047780A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751356B (zh) * | 2008-12-18 | 2012-08-22 | 国际商业机器公司 | 用于改进直接存储器存取传送效率的方法、系统和装置 |
CN106528491A (zh) * | 2015-09-11 | 2017-03-22 | 展讯通信(上海)有限公司 | 移动终端 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI295019B (en) * | 2005-06-06 | 2008-03-21 | Accusys Inc | Data transfer system and method |
KR100871731B1 (ko) | 2007-05-22 | 2008-12-05 | (주) 시스메이트 | 네트워크 인터페이스 카드 및 그 카드에서 수행되는 트래픽 분할 처리 방법, 상기 네트워크 인터페이스 카드를 포함하는 다중처리 시스템 |
US8176252B1 (en) * | 2007-11-23 | 2012-05-08 | Pmc-Sierra Us, Inc. | DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables |
US8495301B1 (en) | 2007-11-23 | 2013-07-23 | Pmc-Sierra Us, Inc. | System and method for scatter gather cache processing |
KR101292873B1 (ko) * | 2009-12-21 | 2013-08-02 | 한국전자통신연구원 | 네트워크 인터페이스 카드장치 및 상기 네트워크 인터페이스 카드장치를 이용한 트래픽 처리 방법 |
US9239796B2 (en) * | 2011-05-24 | 2016-01-19 | Ixia | Methods, systems, and computer readable media for caching and using scatter list metadata to control direct memory access (DMA) receiving of network protocol data |
KR101965125B1 (ko) * | 2012-05-16 | 2019-08-28 | 삼성전자 주식회사 | 칩-투-칩 링크를 통해 공유 메모리로의 억세스를 지원하는 시스템 온칩, 상기 시스템온칩의 동작 방법, 및 상기 시스템온칩을 포함하는 전자 시스템 |
US9280290B2 (en) | 2014-02-12 | 2016-03-08 | Oracle International Corporation | Method for steering DMA write requests to cache memory |
CN104506379B (zh) * | 2014-12-12 | 2018-03-23 | 北京锐安科技有限公司 | 网络数据捕获方法和系统 |
CN105404596B (zh) * | 2015-10-30 | 2018-07-20 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
TWI720565B (zh) * | 2017-04-13 | 2021-03-01 | 慧榮科技股份有限公司 | 記憶體控制器與資料儲存裝置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5420984A (en) * | 1992-06-30 | 1995-05-30 | Genroco, Inc. | Apparatus and method for rapid switching between control of first and second DMA circuitry to effect rapid switching beween DMA communications |
US5548788A (en) * | 1994-10-27 | 1996-08-20 | Emc Corporation | Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory |
WO1997034228A1 (fr) * | 1996-03-13 | 1997-09-18 | Hitachi, Ltd. | Unite de traitement d'informations comportant une fonction permettant de supprimer les effractions, unite de commande de memoire et procede de traitement d'acces direct en memoire |
JP4285803B2 (ja) * | 1997-07-08 | 2009-06-24 | テキサス インスツルメンツ インコーポレイテツド | 周辺装置と外部インタフェースとを具備したディジタル信号処理装置 |
US6463507B1 (en) * | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US6574682B1 (en) * | 1999-11-23 | 2003-06-03 | Zilog, Inc. | Data flow enhancement for processor architectures with cache |
US6782456B2 (en) * | 2001-07-26 | 2004-08-24 | International Business Machines Corporation | Microprocessor system bus protocol providing a fully pipelined input/output DMA write mechanism |
US6782463B2 (en) * | 2001-09-14 | 2004-08-24 | Intel Corporation | Shared memory array |
US7290127B2 (en) * | 2001-12-26 | 2007-10-30 | Intel Corporation | System and method of remotely initializing a local processor |
US6711650B1 (en) * | 2002-11-07 | 2004-03-23 | International Business Machines Corporation | Method and apparatus for accelerating input/output processing using cache injections |
US6820143B2 (en) * | 2002-12-17 | 2004-11-16 | International Business Machines Corporation | On-chip data transfer in multi-processor system |
US6981072B2 (en) * | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
US20050114559A1 (en) * | 2003-11-20 | 2005-05-26 | Miller George B. | Method for efficiently processing DMA transactions |
-
2004
- 2004-10-27 US US10/974,377 patent/US20060090016A1/en not_active Abandoned
-
2005
- 2005-10-25 TW TW094137329A patent/TWI294079B/zh not_active IP Right Cessation
- 2005-10-27 DE DE112005002355T patent/DE112005002355T5/de not_active Ceased
- 2005-10-27 WO PCT/US2005/039318 patent/WO2006047780A2/en active Application Filing
- 2005-10-27 KR KR1020077007236A patent/KR20070048797A/ko not_active Application Discontinuation
- 2005-10-27 GB GB0706008A patent/GB2432943A/en not_active Withdrawn
- 2005-10-27 CN CNA2005800331643A patent/CN101036135A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751356B (zh) * | 2008-12-18 | 2012-08-22 | 国际商业机器公司 | 用于改进直接存储器存取传送效率的方法、系统和装置 |
CN106528491A (zh) * | 2015-09-11 | 2017-03-22 | 展讯通信(上海)有限公司 | 移动终端 |
Also Published As
Publication number | Publication date |
---|---|
GB0706008D0 (en) | 2007-05-09 |
KR20070048797A (ko) | 2007-05-09 |
TWI294079B (en) | 2008-03-01 |
TW200622613A (en) | 2006-07-01 |
DE112005002355T5 (de) | 2007-09-13 |
WO2006047780A3 (en) | 2006-06-08 |
WO2006047780A2 (en) | 2006-05-04 |
US20060090016A1 (en) | 2006-04-27 |
GB2432943A (en) | 2007-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101036135A (zh) | 使用处理器中的dma控制器向处理器高速缓存进行的数据传输 | |
KR100215944B1 (ko) | 소비전력의 관리장치 및 방법 | |
CN107608909A (zh) | 一种NVMe固态硬盘写加速的方法 | |
CN101526924B (zh) | 一种优化数字信号处理芯片数据访问的方法 | |
CN1299208C (zh) | 用于改进pci-x或pci网桥性能的缓冲器管理系统及其方法 | |
US20100262760A1 (en) | Command processor for a data storage device | |
CN1688980A (zh) | 具有内部行高速缓存的内存集线器及访问方法 | |
CN102541779B (zh) | 一种提高多数据缓冲区dma效率的系统和方法 | |
US8954644B2 (en) | Apparatus and method for controlling memory | |
US8583842B2 (en) | Data transfer device and data transfer system | |
CN113641603A (zh) | 一种基于axi协议的ddr仲裁与调度方法及系统 | |
EP1703405A2 (en) | Information processing device and data control method in information processing device | |
CN104252422A (zh) | 内存访问方法和内存控制器 | |
CN114416632A (zh) | 一种基于多总线协议灵活转换的两级缓存互联结构 | |
KR0175983B1 (ko) | 데이타 처리 시스템 | |
CN103778069A (zh) | 高速缓冲存储器的高速缓存块长度调整方法及装置 | |
CN1097778C (zh) | 在直接存储器存取传输系统中使用的定时方式选择设备 | |
US6327636B1 (en) | Ordering for pipelined read transfers | |
WO2021139733A1 (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
WO2021100900A1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
DE19914487A1 (de) | Verfahren und Vorrichtung zum Sicherstellen der Datenkonsistenz zwischen einem Ein/Ausgabekanal und einem Prozessor | |
CN101464839B (zh) | 一种访存缓冲装置及方法 | |
US6240474B1 (en) | Pipelined read transfers | |
DE69928187T2 (de) | System zum Anschluss eines Computers an mehreren Ein/Ausgabemitteln | |
JPS58168129A (ja) | バス結合方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070912 |