CN101620582B - 使用混合dma来处理高速数据的设备和方法 - Google Patents
使用混合dma来处理高速数据的设备和方法 Download PDFInfo
- Publication number
- CN101620582B CN101620582B CN200910139626.XA CN200910139626A CN101620582B CN 101620582 B CN101620582 B CN 101620582B CN 200910139626 A CN200910139626 A CN 200910139626A CN 101620582 B CN101620582 B CN 101620582B
- Authority
- CN
- China
- Prior art keywords
- data
- threshold
- access method
- time
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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
-
- 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/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- 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/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Abstract
提供了一种使用混合直接存储器访问(DMA)来处理高速数据的设备和方法。该方法包括:确定要传输的数据的大小,通过将所确定的数据大小与第一阈值相比较来确定数据的存储器访问方法,以及通过将所确定的数据大小与第二阈值相比较来确定数据的I/O总线访问方法。
Description
技术领域
本发明涉及使用混合直接存储器访问(DMA)来处理高速数据的设备和方法。更具体地,本发明涉及在主处理器与外围输入/输出(I/O)单元之间用于处理高速数据的接口。
背景技术
DMA表示一种允许外围I/O单元在没有主处理器的情况下经由DMA控制器直接访问存储器的技术。DMA使得外围I/O单元即使在主处理器执行不同处理的操作时也可以进行操作。因此,DMA提高了数据吞吐量以及中央处理单元(CPU)使用性能。
在现有技术中,作为访问I/O总线以向存储器传输I/O数据的方法,已经使用了以下方法当中的仅一种方法:DMA方法、非DMA方法、以及在非DMA方法情况下的轮询驱动方法或中断驱动方法。在轮询驱动方法和中断驱动方法中,CPU为外围I/O单元提供服务。在中断驱动方法中,CPU仅在外围I/O单元请求服务时才提供服务。因此,在经由I/O总线一次传输的数据量大的情况下,中断驱动方法是有利的。另一方面,在轮询驱动方法中,CPU使用预定义的时间间隔来监控外围I/O单元是否请求服务或外围I/O单元是否准备好接收服务。因此,在经由I/O总线一次传输的数据量小的情况下,轮询驱动方法是有利的。即,与中断驱动方法相比,轮询驱动方法可以在数据处理方面提供更佳的吞吐量,然而在总线占用率方面具有更差的权衡。
可以根据I/O总线访问方法的选择来控制CPU共享性能。在使用以上访问方法当中的仅一种方法时,可能导致在CPU使用性能方面变差。例如,在仅实施中断驱动方法的情况下,中断驱动方法也用来传输小块数据。这样,因为除了小数据之外需要用于中断处理的附加开销,所以可能会导致性能变差。另一方面,在仅实施轮询驱动方法的情况下,在传输大小比预定义的大小更大的数据的过程中,因为资源繁忙所以其他处理器不能共享资源,并且性能可能会变差。在小块信令数据(signaling data)的传输频繁出现并且需要卓越CPU使用性能的应用中,这样的局限性可能是不利的。
因此,需要一种处理高速数据以及提高CPU使用性能的设备和方法。
发明内容
本发明的一方面将解决至少上述问题和/或缺点以及提供至少下述优点。相应地,本发明的一方面将提供一种使用混合DMA来处理高速数据的设备和方法。
根据本发明的方面,提供了一种在数据传输设备中传输存储器的输入/输出(I/O)数据的方法。该方法包括:确定要传输的数据的大小;通过将所确定的数据大小与第一阈值相比较来确定数据的存储器访问方法;以及通过将所确定的数据大小与第二阈值相比较来确定数据I/O总线访问方法。
根据本发明的另一方面,提供了一种用于传输存储器的I/O数据的设备。该设备包括:传输数据大小确定单元,用于确定要传输的数据的大小;存储器访问方法确定单元,用于通过将所确定的数据大小与第一阈值相比较来确定数据的存储器访问方法;以及I/O总线访问方法确定单元,用于通过将所确定的数据大小与第二阈值相比较来确定数据的I/O总线访问方法。
对于本领域技术人员而言,通过以下结合附图并公开了本发明示例实施例的详细描述,本发明的其他方面、优点、以及特征将变得明显。
附图说明
根据以下结合附图所进行的描述,本发明特定示例实施例的以上和其他方面、特征以及优点将变得明显,附图中:
图1是示出了根据本发明示例实施例的使用混合DMA来处理高速数据的设备的图示;
图2是根据本发明示例实施例的、包含于外围I/O单元中的混合总线驱动器的框图;以及
图3是示出了根据本发明示例实施例的、对包含于外围I/O单元中的混合总线驱动器的高速数据进行处理的方法的流程图。
在附图中,相似的附图标记将被理解为代表相似的部分、组件以及结构。
具体实施方式
提供以下参照附图的详细描述,以帮助全面理解如权利要求及其等价物所限定的本发明的示例实施例。所述描述包括了不同的特定细节以帮助理解,而这些细节仅被看做是示例性的。相应地,本领域技术人员将认识到,在不脱离本发明的精神和范围的前提下,可以对此处所描述的实施例进行各种改变和修改。此外,为了清楚和简明,省略了对公知功能和结构的描述。
说明书和权利要求中所使用的术语和词语不限于文献含义,而是仅被发明人用来使得能够清楚和简明地理解本发明。相应地,本领域技术人员将清楚,以下对本发明示例实施例的描述仅仅是出于说明性目的而提供的,而目的并不在于对所附权利要求及其等价物所限定的本发明加以限制。
将理解,除非上下文清楚地指定,否则单数形式的“一”、“一个”以及“该”包括多个所指对象。因此,例如,提供“一个部件表面”包含对一个或更多个这样的表面的提及。
术语“实质上”意思是指不需要精确地实现所述特性、参数或值,而是可以在量值上有所偏差或变化,包括例如容限、测量误差、测量精度极限以及本领域技术人员已知的其他因素,这些偏差或变化不妨碍特性所要提供的效果。
以下将参考附图对本发明的示例实施例进行描述。在以下描述中,没有详细描述公知的功能和结构,因为它们将使得本发明在不必要的细节上混淆。
以下所述本发明示例实施例示出了一种使用混合直接存储器访问(DMA)来处理高速数据的设备和方法。
图1是示出了根据本发明示例实施例的、用于使用混合DMA来处理高速数据的设备的图示。
如图1所示,用于处理高速数据的设备包括外围输入/输出(I/O)单元100、主处理器110、DMA控制器120以及存储器130。
参照图1,外围I/O单元100包括混合总线驱动器101。外围I/O单元100使用总线驱动器101根据传输数据的大小来确定存储器访问方法以及I/O总线访问方法,并向存储器130传输I/O数据。相应地,对于数据传输定义两个阈值。阈值充当参考值,以选择存储器访问方法以及I/O总线访问方法。
在将非DMA方法确定为存储器访问方法并且接收到来自外围I/O单元100的数据时,主处理器110将接收到的数据传输至存储器130。
在将DMA方法确定为存储器访问方法并且接收到来自外围I/O单元100的数据时,DMA控制器120将接收到的数据传输至存储器130。
存储器130存储并管理数据。
图2是示出了根据本发明示例实施例的、包含于外围I/O单元中的混合总线驱动器的框图。
如图2所示,混合总线驱动器包括传输数据大小确定单元200、存储器访问方法确定单元210、I/O总线访问方法确定单元220以及数据传输单元230。
参照图2,传输数据大小确定单元200确定并输出传输数据的大小
存储器访问方法确定单元210通过将来自传输数据大小确定单元200的确定结果与第一阈值相比较来确定传输数据的存储器访问方法,并将所确定的存储器访问方法输出。即,当传输数据的大小大于第一阈值时,将DMA方法确定为传输数据的存储器访问方法。当传输数据的大小小于或等于第一阈值时,将非DMA方法确定为传输数据的存储器访问方法并输出该非DMA方法。这里,第一阈值充当参考值,用于确定传输数据的大小是适合基于DMA方法的传输还是适合基于非DMA方法的传输。一般而言,通过测量使用DMA的中断驱动方法的附加开销而耗费的时间以及非DMA的中断驱动方法的开销时间,来确定第一阈值。因此,第一阈值可以是与DMA的中断驱动方法的开销处理时间相对应的数据大小,但可以根据设置(如,存储器访问时间、总线时钟等)而不同地变化。
I/O总线访问方法确定单元220通过将来自传输数据大小确定单元200的确定结果与第二阈值相比较来确定I/O总线访问方法,并输出所确定的I/O总线访问方法。即,当传输数据的大小大于第二阈值时,I/O总线访问方法确定单元220将中断驱动方法确定为传输数据的I/O总线访问方法。当传输数据的大小小于或等于第二阈值时,I/O总线访问方法确定单元220确定并输出轮询驱动方法作为传输数据的I/O总线访问方法。这里,第二阈值充当参考值,用于确定传输数据的大小是适合基于中断驱动方法的传输时还是适合基于轮询驱动方法的传输。一般而言,通过测量使用中断驱动方法的附加开销而消耗的时间以及不使用中断的轮询驱动方法的数据传输而消耗的时间,来确定第二阈值。因此,第二阈值可以是与中断驱动方法的开销处理时间相对应的数据大小,但可以根据设置(如,存储器访问时间、总线时钟等)而不同地变化。
数据传输单元230使用由存储器访问方法确定单元210确定的存储器访问方法以及由I/O总线访问方法确定单元220确定的I/O总线访问方法,来对所述传输数据进行传输。
这里,第一阈值大于第二阈值。在使用轮询驱动方法来传输大数据的情况下,长时间应用繁忙等待,并且中央处理单元(CPU)共享性能可能变差。因此,DMA方法仅使用中断驱动方法来传输数据。
图3是示出了根据本发明示例实施例的、对包含于外围I/O单元中的混合总线驱动器的高速数据进行处理的方法的流程图。
参照图3,在步骤301中,混合总线驱动器确定是否存在传输数据。当不存在传输数据时,混合总线驱动器返回步骤301并重复确定是否存在传输数据。另一方面,当存在传输数据时,在步骤303中混合总线驱动器确定传输数据的大小是否大于第一阈值。
当在步骤303中传输数据的大小大于第一阈值时,在步骤305中,混合总线驱动器将DMA方法确定为传输数据的存储器访问方法,并且将中断驱动方法确定为传输数据的I/O总线访问方法。在步骤315中,混合总线驱动器使用所确定的DMA方法以及中断驱动方法来传输数据。
相反,当在步骤303中传输数据的大小小于或等于第一阈值时,混合总线驱动器在步骤307中将非DMA方法确定为存储器访问方法,以及在步骤309中确定传输数据的大小是否大于第二阈值。当在步骤309中传输数据的大小大于第二阈值时,在步骤311中混合总线驱动器将中断驱动方法确定为I/O总线访问方法。然后在步骤315中混合总线驱动器使用所确定的非DMA方法以及中断驱动方法来传输数据。另一方面,当传输数据的大小小于或等于第二阈值时,混合总线驱动器在步骤313中将轮询驱动方法确定为I/O总线访问方法,以及在步骤315中使用所确定的非DMA方法以及轮询驱动方法来传输数据。
然后混合总线驱动器结束高速数据的处理。
本发明的示例实施例具有以下优点:通过提供一种使用混合DMA来处理高速数据的设备和方法,提高了数据吞吐量和CPU使用性能。此外,本发明的示例实施例还同时提供了应用驱动环境以及高速数据传输。
尽管参考本发明的特定示例实施例示出并描述了本发明,然而本领域技术人员将理解,在不脱离如所附权利要求及其等价物所限定的本发明的精神和范围的前提下,可以对本发明进行形式和细节上的各种修改。
Claims (7)
1.一种在数据传输设备中传输存储器的I/O数据的方法,该方法包括:
确定要传输的数据的大小;
通过将所确定的数据大小与第一阈值相比较来确定数据的存储器访问方法,其中,第一阈值是通过测量使用DMA的中断驱动方法的附加开销而耗费的时间以及非DMA的中断驱动方法的开销时间来确定的;以及
基于存储器访问方法的确定结果,通过将所确定的数据大小与第二阈值相比较来确定数据的I/O总线访问方法,其中,第二阈值是通过测量使用中断驱动方法的附加开销而消耗的时间以及不使用中断的轮询驱动方法的数据传输而消耗的时间来确定的,
其中,确定I/O总线访问方法包括:
当所确定的数据大小大于第二阈值时,将中断驱动方法确定
为数据的I/O总线访问方法;以及
当所确定的数据大小小于或等于第二阈值时,将轮询驱动方
法确定为数据的I/O总线访问方法。
2.根据权利要求1所述的方法,其中,所述第一阈值大于所述第二阈值。
3.根据权利要求1所述的方法,其中,确定存储器访问方法包括:
当所确定的数据大小大于第一阈值时,将DMA方法确定为数据的存储器访问方法;以及
当所确定的数据大小小于或等于第一阈值时,将非DMA方法确定为数据的存储器访问方法。
4.一种用于传输存储器的I/O数据的设备,该设备包括:
传输数据大小确定单元,用于确定要传输的数据的大小;
存储器访问方法确定单元,用于通过将所确定的数据大小与第一阈值相比较来确定数据的存储器访问方法,其中,第一阈值是通过测量使用DMA的中断驱动方法的附加开销而耗费的时间以及非DMA的中断驱动方法的开销时间来确定的;以及
I/O总线访问方法确定单元,用于基于存储器访问方法的确定结果,通过将所确定的数据大小与第二阈值相比较来确定数据的I/O总线访问方法,其中,第二阈值是通过测量使用中断驱动方法的附加开销而消耗的时间以及不使用中断的轮询驱动方法的数据传输而消耗的时间来确定的,
其中,I/O总线访问方法确定单元包括:
用于当所确定的数据大小大于第二阈值时将中断驱动方法确定为数据的I/O总线访问方法的单元;以及
用于当所确定的数据大小小于或等于第二阈值时将轮询驱动方法确定为数据的I/O总线访问方法的单元。
5.根据权利要求4所述的设备,其中,所述第一阈值大于所述第二阈值。
6.根据权利要求4所述的设备,其中,存储器访问方法确定单元包括:
用于当所确定的数据大小大于第一阈值时将DMA方法确定为数据的存储器访问方法的单元;以及
用于当所确定的数据大小小于或等于第一阈值时将非DMA方法确定为数据的存储器访问方法的单元。
7.根据权利要求4所述的设备,还包括:数据传输单元,用于使用所确定的存储器访问方法以及I/O总线访问方法来传输数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080063350A KR101033928B1 (ko) | 2008-07-01 | 2008-07-01 | 하이브리드 디엠에이를 이용한 고속의 데이터 처리 장치 및방법 |
KR1020080063350 | 2008-07-01 | ||
KR10-2008-0063350 | 2008-07-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101620582A CN101620582A (zh) | 2010-01-06 |
CN101620582B true CN101620582B (zh) | 2014-10-08 |
Family
ID=41110740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910139626.XA Expired - Fee Related CN101620582B (zh) | 2008-07-01 | 2009-06-30 | 使用混合dma来处理高速数据的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8060667B2 (zh) |
EP (1) | EP2141606B1 (zh) |
KR (1) | KR101033928B1 (zh) |
CN (1) | CN101620582B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153875A1 (en) * | 2009-12-18 | 2011-06-23 | Plx Technology, Inc. | Opportunistic dma header insertion |
JP6899852B2 (ja) * | 2019-01-15 | 2021-07-07 | 株式会社日立製作所 | ストレージ装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822618A (en) * | 1994-11-21 | 1998-10-13 | Cirrus Logic, Inc. | System for automatically switching to DMA data transfer mode to load and unload data frames when there are excessive data frames in memory buffer |
CN1735855A (zh) * | 2002-09-05 | 2006-02-15 | 英特尔公司 | 用于处理数据传送的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56166529A (en) * | 1980-05-26 | 1981-12-21 | Fujitsu Ltd | Control system for input and output device |
US5647057A (en) * | 1992-08-24 | 1997-07-08 | Texas Instruments Incorporated | Multiple block transfer mechanism |
EP0903670A1 (en) * | 1997-09-19 | 1999-03-24 | Hewlett-Packard Company | Improved peripheral device control in data processing systems |
DE60030091D1 (de) * | 1999-03-01 | 2006-09-28 | Sun Microsystems Inc | Verfahren und vorrichtung zur unterbrechungsmodulation in einem netzwerkschnittstellengerät |
DE10056198A1 (de) * | 2000-11-13 | 2002-02-14 | Infineon Technologies Ag | Kommunikationssystem zum Austausch von Daten unter Verwendung eines zusätzlichen Prozessors |
US7483998B2 (en) * | 2003-11-14 | 2009-01-27 | Alcatel Lucent | Software configurable cluster-based router using heterogeneous nodes as cluster nodes |
-
2008
- 2008-07-01 KR KR1020080063350A patent/KR101033928B1/ko active IP Right Grant
-
2009
- 2009-05-26 EP EP09161157.4A patent/EP2141606B1/en not_active Not-in-force
- 2009-06-03 US US12/477,575 patent/US8060667B2/en active Active
- 2009-06-30 CN CN200910139626.XA patent/CN101620582B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822618A (en) * | 1994-11-21 | 1998-10-13 | Cirrus Logic, Inc. | System for automatically switching to DMA data transfer mode to load and unload data frames when there are excessive data frames in memory buffer |
CN1735855A (zh) * | 2002-09-05 | 2006-02-15 | 英特尔公司 | 用于处理数据传送的方法和装置 |
Non-Patent Citations (1)
Title |
---|
JP昭56-166529A 1981.12.21 |
Also Published As
Publication number | Publication date |
---|---|
KR101033928B1 (ko) | 2011-05-11 |
EP2141606A1 (en) | 2010-01-06 |
CN101620582A (zh) | 2010-01-06 |
EP2141606B1 (en) | 2015-10-07 |
US20100005200A1 (en) | 2010-01-07 |
US8060667B2 (en) | 2011-11-15 |
KR20100003450A (ko) | 2010-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331595B2 (en) | Collaborative hardware interaction by multiple entities using a shared queue | |
TWI439863B (zh) | 報告服務潛時作電源管理的方法與裝置及其設備 | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
US6983337B2 (en) | Method, system, and program for handling device interrupts | |
CN108255776B (zh) | 一种兼容apb总线的i3c主设备、主从系统及通信方法 | |
CN114553635A (zh) | Dpu网络设备中的数据处理方法、数据交互方法及产品 | |
US9524260B2 (en) | Universal serial bus (USB) communication systems and methods | |
CN101620582B (zh) | 使用混合dma来处理高速数据的设备和方法 | |
US6789142B2 (en) | Method, system, and program for handling interrupt requests | |
CN103106164A (zh) | 一种高效dma控制器 | |
US20150254194A1 (en) | Polling determination | |
CN101937413A (zh) | 一种i2c总线的通信方法 | |
CN103019975B (zh) | 通用串行总线传输控制方法及主机设备 | |
CN103842979B (zh) | 用于执行等时数据缓冲的系统和方法 | |
US10176133B2 (en) | Smart device with no AP | |
CN111025990B (zh) | 一种基于risc-v的车载终端系统 | |
EP1759297B1 (en) | Interrupt scheme for bus controller | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN108055186B (zh) | 一种主从处理器通信方法及装置 | |
US20160098375A1 (en) | Initiating multiple data transactions on a system bus | |
CN110633233A (zh) | 一种基于流水线的dma数据传输处理方法 | |
CN111274184B (zh) | 串行接口设备驱动器、嵌入式处理器和视频控制器 | |
TW201421420A (zh) | 圖形處理單元虛擬裝置、圖形處理單元主機裝置及其圖形處理單元程式處理方法 | |
CN116594951B (zh) | 一种基于fpga的数据传输系统及方法 | |
US11941722B2 (en) | Kernel optimization and delayed execution |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141008 Termination date: 20210630 |