CN100444144C - 微电脑系统的直接内存存取作业方法 - Google Patents

微电脑系统的直接内存存取作业方法 Download PDF

Info

Publication number
CN100444144C
CN100444144C CNB2006100991372A CN200610099137A CN100444144C CN 100444144 C CN100444144 C CN 100444144C CN B2006100991372 A CNB2006100991372 A CN B2006100991372A CN 200610099137 A CN200610099137 A CN 200610099137A CN 100444144 C CN100444144 C CN 100444144C
Authority
CN
China
Prior art keywords
data
entity area
area description
direct memory
memory access
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.)
Active
Application number
CNB2006100991372A
Other languages
English (en)
Other versions
CN1900922A (zh
Inventor
邱自强
王泽贤
周辉麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Priority to CNB2006100991372A priority Critical patent/CN100444144C/zh
Publication of CN1900922A publication Critical patent/CN1900922A/zh
Application granted granted Critical
Publication of CN100444144C publication Critical patent/CN100444144C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

本发明公开了一种微电脑系统的直接内存存取作业方法,其系统包含有一微处理器、一芯片组、一内存及一外围装置,外围装置设有一直接内存存取控制器,而内存中储存有一实体区域描述表;其作业方法包含下列步骤:利用直接内存存取控制器通过芯片组存取实体区域描述表中连续的多个实体区域描述符号;及根据所存取的实体区域描述符号依序存取内存中对应于各实体区域描述符号的数据;通过一次提取多笔实体区域描述符号,可减少提取实体区域描述符号的次数,有效节省内存周期。

Description

微电脑系统的直接内存存取作业方法
技术领域
本发明涉及一种微电脑系统的直接内存存取作业方法,通过一次存取多笔实体区域描述符号,可减少提取实体区域描述符号的次数,有效节省内存周期。
背景技术
一般而言,微电脑系统与外围装置间的数据传输可通过两种方式来进行,第一种是通过微处理器(microprocessor)来控制进行数据的传送;第二种是使用专门的控制器如直接内存存取(Direct Memory Access;DMA)控制器来进行数据的传送。微电脑系统则是指包含有微处理器、芯片组、系统内存等单元的总称。
使用DMA控制器来进行数据传送不需通过微处理器控制,外围装置可直接与系统内存相互传送数据,也就是外围装置可通过DMA控制器直接将数据写入/读出外围装置的缓冲器,而不用经过微处理器运算,使得系统处理速度加快,并提升数据传输的效能。
如图1所示,图1为一使用直接内存存取(DMA)为传输模式的微电脑系统的示意图。如图所示,微电脑系统包含有一微处理器10、一芯片组20、一内存30及一具有DMA控制器45的外围装置40。
其中外围装置40与芯片组20连接,而芯片组20另与微处理器10及内存30相连接。当微电脑系统欲将一文件数据传送至外围装置40时,微处理器10会将文件数据经过芯片组20传送至内存30中存放,之后微处理机10返回处理其它未完成的工作,而外围装置40内的DMA控制器45则会接收由芯片组20所送出的文件数据存放地址,并直接通过芯片组20至内存30中的存放地址提取文件数据,并将文件数据存放于DMA控制器45中的缓冲器451。
内存30中储存的数据封包可分为两个部份,第一部分为一描述文件数据的实体区域描述符号表(Physical Region Description,PRD),而第二部份为一实际存放数据的暂存区。PRD是用来描述暂存区的实际存放数据的数据型态,主要是记录实际存放数据的存放地址、数据状态以及数据长度,并且记录有下一个数据封包的PRD地址。由于文件数据储存于内存30中的缓存器是分散不连续的,通过PRD可将分散不连续的内存实体区域中的文件连结起来。
一般DMA控制器45的接收方式,是经由芯片组20先至内存30中提取数据封包的PRD。根据PRD所记录的数据存放地址至内存暂存区将数据提取,并储存于DMA控制器45的缓冲器451中。外围装置40会发出一响应信号至数据封包的PRD,将PRD内记录的数据状态进行改写。根据数据封包的PRD中所记录的下一数据封包的下一PRD地址,继续提取下一笔数据。且外围装置同样发出一响应信号将下一PRD内记录的数据状态进行改写。
图2如图2所示,为上述现有DMA系统的作业方法流程图。其主要是由DMA控制器45依序提取PRD,一个PRD处理完之后,再去提取下一个PRD继续处理。首先,DMA控制器45经由芯片组20至内存30提取第一PRD,如步骤51所示。依照该第一PRD中所记录的第一实际数据起始地址至内存缓存器提取第一实际数据,并储存至DMA控制器45中的缓冲器451,然后处理该第一实际数据,处理完之后在将该第一实际数据转移,如步骤52所示。
在第一PRD处理完毕之后,DMA控制器45再一次经由芯片组20至内存30提取第二PRD,如步骤53所示。依照该第二PRD中所记录的第二实际数据起始地址至内存缓存器提取第二实际数据,然后处理该第二实际数据,处理完之后在将该第二实际数据转移,如步骤54所示。接着依序处理后续的PRD,直到描述内存30中的文件数据的全部实体区域的全部PRD提取完成才结束。
在每一次数据转移之前,内存30都必须给予一内存周期来提取PRD。DMA控制器45每一次只提取一个PRD,且都必须等待每一数据转移之后,才能提取下一个PRD。因提取PRD的动作并不是连续的,所以其内存周期将会延迟更多的时间,对于现今高速外围装置的应用,这延迟将会对系统的效能造成严重的影响。
因此,针对上述现有的直接内存存取系统的存取方式以及其记忆周期延迟的缺失,有必要来提供一种较节省内存期的作业方法,让系统的执行速度会因此加快,即为本本发明的发明重点。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
发明内容
本发明所要解决的技术问题在于提供一种微电脑系统的直接内存存取作业方法,通过一次提取多笔PRD,减少提取PRD的次数,有效地节省系统内存周期。
本发明的另一目的,在于提供一种微电脑系统的直接内存存取作业方法,通过存放多笔数据于DMA控制器的缓冲器中,依数据在缓冲器的先进先出的地址,可将数据快速的转移。
为此,为实现上述目的,本发明提供一种微电脑系统的直接内存存取作业方法,微电脑系统具有一微处理器、一芯片组、一内存及一直接内存存取控制器,内存具有一实体区域描述表,包括下列步骤:利用直接内存存取控制器通过芯片组存取实体区域描述表中连续的多个实体区域描述符号;及根据所存取的实体区域描述符号依序存取内存中对应于各实体区域描述符号的数据。
为实现上述目的,本发明再提供一种直接内存存取方法,适用于具有一直接内存存取控制器及一内存的微电脑系统,包括下列步骤:在内存中储存多数据封包,数据封包分别具有一实体区域描述符号及一对应的实际数据,实体区域描述符号纪录有一储存起始地址及一次数据封包实体区域描述符号地址;直接内存存取控制器依序提取至少二个实体区域描述符号以依照储存起始地址依序提取对应的实际数据;及依据被提取的实体区域描述符号的次数据封包实体区域描述符号地址,重复上述提取实体区域描述符号步骤及提取实际数据步骤,直至提取全部的数据封包为止。
采用本发明的直接内存存取系统的作业方法,通过一次存取多笔实体区域描述符号,可减少提取实体区域描述符号的次数,有效节省内存周期。
附图说明
图1为一基本使用直接内存存取(DMA)为传输模式的微电脑系统的示意图;
图2为现有直接内存存取系统的提取方法流程图。
图3A为一基本使用直接内存存取(DMA)为传输模式的微电脑系统的示意图;
图3B为另一基本使用直接内存存取(DMA)为传输模式的微电脑系统的示意图;
图4为本发明内存内数据封包储存格式的示意图;
图5为本发明直接内存存取作业方法一较佳实施例的流程图。
其中,附图标记:
10:微处理器        20:芯片组
30:内存            40:外围装置
45:直接内存存取控制器
451:缓冲器
69:PRD表
71:第一PRD         72:第二PRD
73:第三PRD         79:第N PRD
80:数据暂存区
81:第一实际数据    82:第二实际数据
83:第三实际数据    89:第N实际数据
具体实施方式
为使本发明的特征、结构及所达成的功效更清楚明确,谨以较佳的实施图例及配合详细的说明,说明如后:
本发明可使用于任何既有的具有直接内存存取(Direct Memory Access;DMA)为传输模式的微电脑系统,适用的微电脑系统其包含有一微处理器10、一芯片组20、一内存30及一DMA控制器45;其中,如图3A所示,DMA控制器45可设置于一与芯片组20耦接的外围装置40中,也可如图3B所示,DMA控制器45可直接设置于芯片组20中。芯片组20可以是北桥芯片、南桥芯片或其整合型芯片,外围装置40可以是IDE接口硬盘、PATA接口硬盘、SATA接口硬盘、网络卡及其它具有直接内存存取控制器的外围装置。
以下,配合图3A或图3B所示的微电脑系统元件来说明本发明的DMA传输模式。
如图4所示,图4为内存30内数据封包储存格式的示意图。如图中所示,内存30中储存的数据封包可分为两个部份。第一部分为一描述文件数据的实体区域描述符号表(Physical Region Description,PRD)70,而第二部份为一实际存放数据的暂存区80。
第一部份的PRD70主要是用来描述第二部份存放于暂存区80的文件数据的数据型态,用以记录数据存放于暂存区的数据起始地址、数据状态以及数据长度,并且记录下一个数据封包的PRD地址。由于文件数据储存于内存30中的缓存器是分散不连续的,通过PRD可将分散不连续的内存实体区域中的文件连结起来。
如图4及图5所示,图5为本发明直接内存取作业方法一一较佳实施例的流程图,其主要应用于具有DMA控制器45的外围装置40上。
首先,如步骤61所示,利用DMA控制器45经由芯片组至内存中的PRD表70存取多个PRD,例如先存取第一PRD 71后,依第一PRD71所纪录的第二PRD地址来预先存取(Prefetch)的第二PRD 72。
接着,如步骤62所示,依照第一PRD 71及第二PRD 72中所记录的第一实际数据及第二实际数据起始地址至内存的数据暂存区80中提取第一实际数据81及第二实际数据82,并依序存放于DMA控制器45的缓冲器451中,然后先处理该第一实际数据,处理完之后,在将该第一实际数据转移。其中,缓冲器451可以是一先进先出缓存器。
然后,如步骤63所示,由于第二PRD 72已经被预先存取,因此DMA控制器45可以在转移第一实际数据81后随即处理第二实际数据82,并在处理完后将第二实际数据82转移。
接着,如步骤64所示,在第一PRD71及第二PRD72所纪录的数据全部处理完毕之后,DMA控制器再一次经由芯片组20至内存30提取第三PRD 73,并依第三PRD73所纪录的第四PRD地址来预先存取(Prefetch)的第四PRD(未显示)。
并且,如步骤65所示,依照第三PRD 73及第四PRD中所记录的第三实际数据及第四实际数据起始地址至内存的数据暂存区80中提取第三实际数据83及第四实际数据(未显示),并依序将第三实际数据83及第四实际数据存放于DMA控制器45的缓冲器451中,并先对第三实际数据83进行处理,处理完后即转移第三实际数据83。
然后,如步骤66所示,由于第四PRD已经被预先存取,因此,DMA控制器45可以在转移第三实际数据83后随即处理第四实际数据,并在处理完后将第四实际数据转移。接着依序处理后续的PRD直到第N PRD,而形成一循环流程,直到第N实际数据被转移,即所需存取的N笔文件数据全部存取完成才结束。
上述实施例仅为说明之用,本发明也可同时存取二笔以上的多笔PRD,并依上述流程进行数据处理及转移。
由于本发明的DMA控制器45可预先存取多笔PRD,因此在提取PRD所记录的数据地址时,将会是连续的处理,相较于现有的不连续的提取数据处理方式,本发明所花费的内存存取的延迟时间会比现有方法还要少,而且在数据转移的期间,还可以同时提取下两笔PRD,因而大幅节省内存周期。
以上所述的PRD,不仅记录数据的起始地址,以及下一PRD所在地址,还另外记录数据的长度,及现在数据存取的状态。
本发明的作业方法可适用于IDE接口硬盘、PATA接口硬盘、SATA接口硬盘、网络卡或是其它具有直接内存存取控制器,可以进行直接内存存取传输模式的外围装置之上。
另外,本发明的作业方法也可使用于将直接内存存取控制器设于芯片组中的系统,该芯片组可为一北桥芯片、南桥芯片或整合型的芯片。而直接内存存取控制器中的缓冲器可以先进先出缓存器加以实施。
本领域的技术人员将了解这项发明并不限定同时间只能提取两笔PRD,而是可以同时间提取超过两笔的多笔PRD,通过提取多笔PRD,节省系统工作的记忆周期。
综上所述,当知本发明提供一种直接内存存取系统的作业方法,通过一次存取多笔实体区域描述符号,可减少提取实体区域描述符号的次数,有效节省内存周期。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (15)

1.一种微电脑系统的直接内存存取作业方法,其特征在于,该微电脑系统具有一微处理器、一芯片组、一内存及一直接内存存取控制器,该内存具有一实体区域描述表,包括下列步骤:
利用该直接内存存取控制器通过该芯片组存取该实体区域描述表中连续的多个实体区域描述符号;及
根据所存取的实体区域描述符号依序存取内存中对应于各实体区域描述符号的数据。
2.根据权利要求1所述的作业方法,其特征在于,各实体区域描述符号分别包含有所对应数据于内存中的起始地址、数据长度、数据状态及其次实体区域描述符号的地址。
3.根据权利要求2所述的作业方法,其特征在于,该直接内存存取控制器,还包含有一缓冲器。
4.根据权利要求3所述的作业方法,其特征在于,还包含有下列步骤:
将所存取对应于各实体区域描述符号的数据依序储存于该直接内存存取控制器的缓冲器中;及
将该缓冲器内的数据依序传送至目标位置。
5.根据权利要求1所述的作业方法,其特征在于,还包含有下列步骤:
再次存取该实体区域描述表中后续的多个实体区域描述符号;及
根据再次存取的实体区域描述符号依序存取内存中对应于各实体区域描述符号的数据;并形成一循环流程直至完成所需的数据传输。
6.根据权利要求5所述的作业方法,其特征在于,还包括一外围装置与该芯片组耦接,且该直接内存存取控制器设置于该外围装置中。
7.根据权利要求3所述的作业方法,其特征在于,该缓冲器为一先进先出缓存器。
8.根据权利要求1所述的作业方法,其特征在于,该直接内存存取控制器设置于该芯片组中。
9.根据权利要求1所述的作业方法,其特征在于,还包括一外围装置与该芯片组耦接,该外围装置可选择为IDE接口硬盘、PATA接口硬盘、SATA接口硬盘、网络卡、及设置有直接内存存取控制器的其他外围装置的其中之一。
10.根据权利要求1所述的作业方法,其特征在于,该芯片组可选择为北桥芯片、南桥芯片及其整合型芯片的其中之一。
11.一种直接内存存取方法,适用于具有一直接内存存取控制器及一内存的微电脑系统,其特征在于,包括下列步骤:
在该内存中储存多数据封包,该数据封包分别具有一实体区域描述符号及一实际数据,该实体区域描述符号记录有对应的该实际数据的一储存起始地址及一次数据封包实体区域描述符号地址;
该直接内存存取控制器依序提取至少二个该实体区域描述符号以依照该储存起始地址依序提取对应的该实际数据;及
依据前述步骤被提取的最后一个该实体区域描述符号的该次数据封包实体区域描述符号地址,重复上述提取该实体区域描述符号步骤及提取该实际数据步骤,直至提取全部的该数据封包为止。
12.根据权利要求11所述的直接内存存取方法,其特征在于,依序提取对应的该实际数据的步骤,还包括下列步骤:将被提取的该实际数据依序存放于该直接内存存取控制器的一缓冲器中。
13.根据权利要求12所述的直接内存存取方法,其特征在于,该缓冲器为一先进先出缓存器。
14.根据权利要求11所述的直接内存存取方法,其特征在于,该直接内存存取控制器通过一芯片组提取该实体区域描述符号。
15.根据权利要求11所述的直接内存存取方法,其特征在于,该实体区域描述符号还记录有对应的该实际数据的数据长度及数据状态。
CNB2006100991372A 2006-07-27 2006-07-27 微电脑系统的直接内存存取作业方法 Active CN100444144C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100991372A CN100444144C (zh) 2006-07-27 2006-07-27 微电脑系统的直接内存存取作业方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100991372A CN100444144C (zh) 2006-07-27 2006-07-27 微电脑系统的直接内存存取作业方法

Publications (2)

Publication Number Publication Date
CN1900922A CN1900922A (zh) 2007-01-24
CN100444144C true CN100444144C (zh) 2008-12-17

Family

ID=37656810

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100991372A Active CN100444144C (zh) 2006-07-27 2006-07-27 微电脑系统的直接内存存取作业方法

Country Status (1)

Country Link
CN (1) CN100444144C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100452007C (zh) * 2007-06-13 2009-01-14 威盛电子股份有限公司 直接内存存取处理单元的实体区域描述元预取方法
CN101546292B (zh) * 2008-03-25 2010-12-08 北京恒光创新科技股份有限公司 一种内存存取方法及装置
CN107678987B (zh) * 2017-10-10 2021-06-29 郑州云海信息技术有限公司 一种dma传输的方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5894560A (en) * 1995-03-17 1999-04-13 Lsi Logic Corporation Method and apparatus for controlling I/O channels responsive to an availability of a plurality of I/O devices to transfer data
US6330623B1 (en) * 1999-01-08 2001-12-11 Vlsi Technology, Inc. System and method for maximizing DMA transfers of arbitrarily aligned data
CN1173268C (zh) * 2000-01-14 2004-10-27 神达电脑股份有限公司 Ide硬盘装置设定在dma传输模式下的病毒检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5894560A (en) * 1995-03-17 1999-04-13 Lsi Logic Corporation Method and apparatus for controlling I/O channels responsive to an availability of a plurality of I/O devices to transfer data
US6330623B1 (en) * 1999-01-08 2001-12-11 Vlsi Technology, Inc. System and method for maximizing DMA transfers of arbitrarily aligned data
CN1173268C (zh) * 2000-01-14 2004-10-27 神达电脑股份有限公司 Ide硬盘装置设定在dma传输模式下的病毒检测方法

Also Published As

Publication number Publication date
CN1900922A (zh) 2007-01-24

Similar Documents

Publication Publication Date Title
CN101267361B (zh) 一种基于零拷贝技术的高速网络数据包捕获方法
KR101121592B1 (ko) 버스트 판독기록 동작을 구비한 처리 장치
US20050108448A1 (en) Hardware assisted ATA command queuing
CN101673253A (zh) 直接存储器访问的实现方法
CN101303685B (zh) 可提升通用序列总线储存设备的读写数据速率的方法
CN100444144C (zh) 微电脑系统的直接内存存取作业方法
TWI612473B (zh) 垃圾回收方法以及使用該方法的裝置
CN102521179A (zh) 一种dma读操作的实现装置和方法
CN109656487A (zh) 一种数据处理方法、装置、设备及存储介质
US20010021951A1 (en) ATAPI command receiving method
CN101620581A (zh) 双口ram实现闪存控制器缓存的结构及实现该缓存的方法
CN102779098B (zh) 混合缓存的协同式自适应预取方法、装置和系统
US9524769B2 (en) Smart in-module refresh for DRAM
CN103559079A (zh) 一种基于共享内存的数据存取方法及装置
US20070226382A1 (en) Method for improving direct memory access performance
CN102567248A (zh) 一种避免双端口存储器访问冲突的控制电路与方法
CN105653466A (zh) 数据储存装置以及快闪存储器控制方法
CN105446895A (zh) 一种存储系统非同源数据运行时io去重的方法及系统
CN101196851B (zh) 闪存的数据管理方法
CN103246496A (zh) 非阻塞协处理器接口方法和系统
JP2005267148A (ja) メモリ制御装置
CN101923517A (zh) 一种缓冲区管理方法及系统
CN106557277A (zh) 磁盘阵列的读方法及装置
CN107861887A (zh) 一种串行易失性存储器的控制方法
CN100530078C (zh) 一种堆栈缓冲区管理方法

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