直接存储器存取传送控制方法和控制装置的制作方法

文档序号:6354758阅读:171来源:国知局
专利名称:直接存储器存取传送控制方法和控制装置的制作方法
技术领域
本发明涉及DMA(直接存储器存取)传送的控制方法和控制装置,更详细的说,是涉及存储器对存储器(memory-to-memory)的DMA传送的控制方法和控制装置。
背景技术
图9(a)、(b)、(c)、(d)表示在主存储器的存储器区域之间进行的存储器对存储器的DMA传送的概要。图9的数据处理系统中,CPU(中央处理单元)70、高速缓冲存储器单元72、主存储器90、DMA控制器82连接到系统总线80。
高速缓冲存储器单元72连接在CPU70和系统总线80之间,包括标识符74和高速缓冲存储器76。高速缓冲存储器76是存储一部分主存储器90中存储的数据的存储器,标识符74是存储高速缓冲存储器76中存储的数据的地址的存储器。CPU70在高速缓冲存储器76内如有要存取的数据时,访问高速缓冲存储器76,在高速缓冲存储器76内如没有要存取的数据时,访问主存储器90。
主存储器90是DRAM(dynamic random access memory)等的半导体存储器,DMA控制器82不通过CPU70,在主存储器90的存储器区域内进行存储器对存储器的数据传送。存储器区域间的数据传送如图9(a)、(b)、(c)、(d)所示,意为主存储器90内的传送始端到传送终端的数据传送。通过DMA控制器82的数据传送(以下称为DMA数据传送)可以和CPU70的处理并行执行。DMA数据传送当然是数据的移动,包含数据的复制。
例如多个命令或命令群使用同一个数据时,不能直接使用原始数据,多为在主存储器90内将该数据复制使用。DMA传送以数据块为单位进行。图10(a)表示数据块的一个例子,数据块DB包括主存储器90的传送始端的地址AD1’、AD2’、AD3’、AD4’、AD5’、AD6’、AD7’、AD8’的数据DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7、DATA8。各数据DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7、DATA8被复制到主存储器90的发送终端的地址AD1、AD2、AD3、AD4、AD5、AD6、AD7、AD8。
DMA控制器82如图9(a)所示,包括存储DMA未传送完的数据的寄存器84(以下称为传送计数器84)和存储传送中的数据的地址的寄存器86(以下称为传送地址86)。在图10(a)的数据块DB的情况下,传送计数器84中存储作为初始值的数据总数“8”。每次数据的DMA传送完成,DMA控制器82就使传送计数器84的值减1。
传送地址86中存储DMA传送中数据的传送始端地址和传送终端地址。在图10(a)的数据块DB的情况下,作为初始值存储传送始端地址AD1’和传送终端地址AD1。每次数据的DMA传送完成,DMA控制器82就更新传送始端地址和传送终端地址。
图10(b)中表示数据块DB的DMA数据传送的概况。每次数据传送都更新传送计数器84和传送地址86,依次传送DATA1~DATA8。如DATA8的DMA传送完成,传送计数器置“0”(未图示),数据块DB的DMA传送结束。在此,图中的“AD1’→AD1”表示传送始端地址是AD1’,传送终端地址是AD1。
DMA传送未完成的数据,在DMA传送完成前不能存取。图11表示CPU70存取DMA传送始端的数据的顺序的一例。如图9(b)所示,数据块DB的DMA传送开始(S160)以后,即使CPU70产生存取DMA传送终端的数据的要求(S162),DMA传送仍维持原样继续进行(S163)。如数据块DB的DMA传送完成(S164),如图9(c)所示,DMA控制器82通知CPU70DMA传送完成(中断信号INT)(S166)。由于数据块DB的DMA传送完成,如图9(d)所示,CPU70存取DMA传送后的数据(S168)。
例如,如图12所示,DATA1的传送完成(S180)以后,在CPU70产生存取DATA7的要求(S162)情况下,DATA2~DATA8的DMA传送完成(S182,S184,S186,S188,S190,S192,S194)以后,CPU70存取DATA7(S168)。DATA2~DATA8的DMA传送正进行时,CPU70不能存取DATA7,产生等待时间。当然,也可以在CPU70中进行与DMA传送并行的其他的处理。但是在DMA传送时,在CPU70中并非一定存在可能分配的其他的处理。

发明内容
本发明的目的是在DMA传送中可对数据进行存取,使DMA传送中的CPU等待时间减少。
本发明的存储器对存储器的DMA传送控制方法,包括检测步骤,检测出CPU发出的对DMA传送中的数据块中包含的数据的存取要求;传送控制步骤,使CPU比运行中的DMA传送更优先地对所述被检测出有存取要求的数据进行存取。
本发明的DMA传送控制装置包括检测部件,检测出CPU发出的对DMA传送中的数据块中包含的数据的存取要求;传送控制部件,使CPU比运行中的DMA传送更优先地对所述被检测出有存取要求的数据进行存取。通过检测部件检测出CPU对DMA传送中的数据块包含的数据的存取,通过传送控制部件可将该数据优先进行DMA传送,因此CPU可用较少的等待时间存取DMA传送中的数据。


图1是表示本发明的主存储器的存储器区域间的DMA传送控制的一个实施例的图,(a)是表示一个结构例的图,(b)是表示DMA传送状态的图,(c)是表示CPU产生数据存取要求的状态的图,(d)是表示检测出DMA命中(hit),进行CPU存储的数据的DMA传送的状态的图。
图2(a)是表示DMA控制器将图1(d)所示的DMA传送完成后的数据送到CPU的状态的图,(b)是表示未检测出DMA命中,CPU访问高速缓冲存储器或主存储器的状态的图。
图3是表示图1(a)所示的DMA控制器的DMA传送控制顺序一例的图。
图4是表示图1(a)所示的DMA控制器的数据块DB的DMA传送控制顺序的一例的图。
图5是表示本发明的存储器区域间的DMA传送控制的其他实施例的图,(a)是表示一个结构例的图,(b)是表示DMA传送中CPU产生数据存取要求的状态的图,(c)是表示测出DMA命中,向DMA控制器发送CPU存取的数据地址的状态的图,(d)是表示DMA控制器向CPU要求再尝试数据存取的状态的图。
图6(a)是表示根据图5(d)所示的再尝试要求,CPU在暂时中断数据存取时,由DMA控制器进行DMA传送的状态的图,(b)是表示DMA控制器将在(a)所示的DMA传送完成后的数据发送到CPU的状态的图,(c)是表示未检测出DMA命中,CPU访问高速缓冲存储器或主存储器的状态的图。
图7是表示图5(a)所示的DMA控制器的DMA传送控制顺序的一例的图。
图8是表示本发明的存储器区域间的DMA传送控制的其他实施例的图,(a)是表示一个结构例的图,(b)是表示DMA控制器将DMA传送完成后的数据发送到缓冲器的状态的图,(c)是表示DMA命中检测器将(b)中所示的缓冲器的数据发送到CPU的状态的图。
图9是表示现有的DMA传送控制的一个实施例的图,(a)是表示一个结构例的图,(b)是表示DMA传送状态的图,(c)是DMA控制器向CPU通知DMA传送完成的状态的图(d)是表示CPU访问高速缓冲存储器或主存储器的状态的图。
图10(a)是表示进行DMA传送的单位的数据块的一个结构例的图,(b)是表示DMA控制器的传送计数器和传送地址的值和各数据的DMA传送状态的图。
图11是表示图9(a)所示的DMA控制器的DMA传送控制顺序的一例的图。
图12是表示图9(a)所示的DMA控制器的数据块DB的DMA传送顺序的一例的图。
具体实施例方式
下面根据附图对本发明的存储器对存储器的DMA传送控制方法和控制装置的实施例进行详细说明。在该例中,假定在主存储器的存储器区域间进行存储器对存储器的DMA传送。在例示的数据处理系统中,CPU70,高速缓冲存储器单元72、系统总线80、主存储器90和现有的(图9(a))相同。而且,DMA传送的数据块DB和现有的(10(a))相同。
图1所示的本发明的存储器对存储器的DMA传送控制装置(DMA控制器)10,包括DMA命中检测器12,检测CPU70对DMA传送中的数据块内包含的数据的存取要求。DMA控制器10具有使CPU70比运行中的DMA传送更优先地对在DMA命中检测器12中被检测出有存取要求的数据进行存取的部件的功能。DMA命中检测器12包括的DMA控制器10,连接在CPU70和系统总线80之间。
DMA命中检测器12检测CPU70是否要求存取DMA传送未完成的数据。DMA控制器10最优先进行时DMA命中检测器12检测出的DMA传送未完成的数据的DMA传送,将DMA传送以后的该数据发送到CPU70。
DMA控制器10与现有情况相同包括传送计数器84和传送地址86,DMA命中检测器12通过访问传送计数器84和传送地址86,可知道DMA传送未完成的数据的地址。CPU70存取数据的地址发送到高速缓冲存储器单元72和DMA控制器10。DMA命中检测器12检测CPU70要求存取的数据(以下称为要求数据)的地址和DMA传送未完成的数据的地址的一致性。下面,将要求数据的DMA传送未完成的情况称为“DMA命中”。
在检测出DMA命中的情况下,要求数据的DMA传送没有完成。DMA控制器10中断运行中的数据块的DMA传送,首先进行要求数据的DMA传送。如要求数据的DMA传送结束,DMA控制器10将要求数据发送到MPU70。然后参照传送计数器84和传送地址86,再次开通中断的数据块的DMA传送。
在没有检测出DMA命中的情况下,要求数据的DMA传送已经完成。在这种情况下,CPU70即使在数据块的DMA传送没有结束时也可以对正确的数据进行存取。CPU70通过高速缓冲存储器单元72,访问高速缓冲存储器76或主存储器90,存取要求数据。
接下来,对使用这样的DMA控制器10的DMA传送控制说明其作用。
图3表示DMA传送控制顺序的一个例子。假设在如图1(b)所示的DMA控制器10在开始数据块的DMA传送(S160)以后,CPU70产生存取数据的要求(S162)。如图1(c)所示,CPU70发出的要求数据DATAn的地址ADn被发送到DMA控制器10和高速缓冲存储器单元72。DMA控制器10在DMA命中检测器12中进行DMA命中的检测(S110)。
在检测出DMA命中的情况下,DMA控制器10中断运行中的数据块的DMA传送(S112),如图1(d)所示进行要求数据的DMA传送(S114)。在检测出DMA命中的情况下,DMA控制器10优先使用系统总线。如DMA传送结束,则如图2(a)所示,DMA控制器10将要求数据(DATAn)从主存储器90发送到CPU70(S116)。然后,再次开通中断的数据块的DMA传送(S124)。
在没有检测出DMA命中的情况下,DMA控制器10中断运行中的数据块的DMA传送(S112)。如图2(b)所示,CPU70通过高速缓冲存储器单元72访问高速缓冲存储器76或者主存储器90(S118)。如CPU70对要求数据的存取结束,则DMA控制器10再次开通中断的数据块的DMA传送(S124)。
如数据块的数据全部DMA传送(S164),DMA控制器10则通知CPU70DMA传送完成(S166)。
例如,如图4所示,DMA传送开始(S160)DATA1的DMA传送结束(S180)以后,如产生CPU70对DATA7的存取要求(S162),DMA控制器10使中断运行中的数据块DB的DMA传送(S112),首先进行DATA7的DMA传送(S120)。保持在DMA传送中断时传送计数器84内的“7”,传送地址86内的“AD2’→AD2”。
如DATA7的DMA传送完成,DMA控制器10将DATA7发送到CPU(S122),之后再次开通中断的数据块DB的DMA传送(S124)。DATA2~DATA8的DMA传送完成(S182,S184,S186,S188,S190,S192,S194)以后,DMA控制器10通知CPU70DMA传送完成(S166)。
与DATA2~DATA8的DMA传送同时进行,CPU70可运行使用DATA7的处理。在图4所示的例中,DATA7虽被再次DMA传送(S192),但因为CPU70不仅参照DATA7,所以DATA7再次被DMA传送也没有问题。图1(a)中所示的结构,是可以在CPU70、高速缓冲存储器单元72、和DMA控制器10等集成的单处理器中应用的结构。
以上说明了本发明的一个实施例,本发明也可以以其他的方式实施。例如,如图5(a)所示,DMA命中检测器22连接在CPU70和系统总线80之间,DMA控制器20也可以通过系统总线80连接在CPU70和主存储器90之间。DMA命中检测器22参照DMA控制器20的传送计数器84和传送地址86检测DMA命中。
DMA控制器20如检测出DMA命中,则使CPU70再次尝试对要求数据的存取。DMA控制器20在CPU70从暂时停止对要求数据的存取到再次存取的期间,中断运行中的数据块的DMA传送,DMA传送要求数据。CPU70在存取DMA传送完成了的要求数据后,DMA控制器20再次开通中断的数据块的DMA传送。
图7表示DMA传送控制顺序的一例。假设如图5(b)所示的DMA控制器20在开始数据块的DMA传送(S160)后产生CPU70对数据存取的要求。从CPU70发出的要求数据DATAn的地址ADn被发送到DMA命中检测器22和高速缓冲存储器单元72,DMA命中检测器22参照DMA控制器20的传送计数器84和传送地址86,进行DMA命中的检测。
在检测出DMA命中时,DMA命中检测器22如图5(c)所示,将要求数据的地址ADn通过系统总线80发送到DMA控制器20(S130)。这时的要求数据是DMA传送未完成的无效数据。从DMA命中检测器22接收地址ADn的DMA控制器20,如图5(d)所示,要求CPU70再次尝试(ReTRY)对要求数据的存取(S132)。被要求ReTRY的CPU70,暂时终止对要求数据的存取,经过规定的时间后,再次对要求数据进行存取。DMA控制器20在CPU70暂时终止数据存取期间,如图6(a)所示,中断运行中的数据块的DMA传送(S112),进行要求数据DATAn的DMA传送(S134)。
在CPU70再次对要求数据存取时,要求数据已被更新为DMA传送完成后的有效数据。如图6(b)所示,CPU70在存取DATAn后(S136),DMA控制器20再次开通中断的数据块的DMA传送(S124)。如数据块的数据全部被DMA传送(S164),DMA控制器20通知CPU70DMA传送完成(S166)。
在图7中,在没有检测出DMA命中时,如图6(c)所示,CPU70通过高速缓冲存储器单元72访问高速缓冲存储器76或者主存储器90。这时,DMA控制器20中断运行中的数据块的DMA传送(S112),如CPU70结束对要求数据的存取(S118),再次开通中断的数据块的DMA传送。
与图4相同,DMA传送开始(S160)DATA1的DMA传送结束(S180)以后,即使产生CPU70发出的对DATA7的存取要求(S162),也可以先进行DATA7的DMA传送(S120)。与DATA2~DATA8的DMA传送同时进行,CPU70可运行使用DATA7的处理。图5(a)中所示的结构,是可以在CPU70、高速缓冲存储器单元72、和DMA命中检测器22等集成的多处理器中应用的结构。
如图8(a)所示,也可以将缓冲器34连接到DMA命中检测器32。如图8(b)所示,DMA命中检测出的数据或数据块暂时存储在缓冲器34中,对缓冲器34的数据存储,在CPU对要求数据的存取以后进行。在CPU70再次存取存储在缓冲器34中的数据时,DMA命中检测器32将存储在缓冲器34中的数据发送到CPU70。通过配置缓冲器34,可减少在尝试要求(ReTRY)的次数。
以上对本发明的特定实施例进行了说明,但本发明并非限定于此。例如,本说明书中虽然说明了主存储器的存储器区域间的存储器对存储器的DMA传送,但本发明也可以应用于连接在系统总线的任意的高速存储器间的存储器对存储器的DMA传送。本发明在不脱离宗旨的范围内,可以以根据本技术领域的从业者的知识进行各种改进,修正,变形后的形态来实施。在产生相同作用或效果的范围内,可以以其他技术替换任意发明特定事项的形态来实施。以由多个要素构成的整体构成的发明特定事项的形态,或整体构成由多个要素构成的发明特定事项的形态都可以实施。
根据本发明,如CPU要求存取DMA传送未完成的数据,首先将该数据DMA传送使CPU可以存取,所以可以减少DMA传送中的CPU等待时间。
权利要求
1.一种DMA传送控制方法,是在具有通过系统总线连接到CPU(中央处理装置)的主存储器的数据处理系统中,进行存储器对存储器的DMA(直接存储器存取)传送的DMA控制器的控制方法,包括以下步骤检测步骤,检测CPU发出的对包含在DMA传送中的数据块中的数据的存取要求;传送控制步骤,使CPU比运行中的DMA传送更优先地对被检测出有所述存取要求的数据进行存取。
2.如权利要求1所述的DMA传送控制方法,其特征在于所述检测步骤包含判定被检测出有所述存取要求的数据的DMA传送的结束/未结束的步骤;所述传送控制步骤包括第1步骤,如被检测出有所述存取要求的数据的DMA传送结束,使CPU存取所述数据;第2步骤,如被检测出有所述存取要求的数据的DMA传送未结束,则最优先DMA传送该数据,使CPU存取DMA传送结束的所述数据。
3.如权利要求2所述的DMA传送控制方法,其特征在于所述DMA控制器包括存储DMA传送未结束的数据的第1寄存器和存储DMA传送中的数据的地址的第2寄存器;以及所述检测步骤,包括检测被检测出有所述存取要求的数据的地址和由所述第1寄存器和第2寄存器求出的DMA传送未结束的数据的地址的一致的步骤。
4.如权利要求2或3所述的DMA传送控制方法,其特征在于所述DMA控制器连接在CPU和系统总线间,所述第2步骤包括以下步骤中断运行中的DMA传送;DMA传送所述DMA传送未结束的数据;使CPU存取DMA传送结束的所述数据;再次开通所述中断的DMA传送。
5.如权利要求2或3所述的DMA传送控制方法,其特征在于所述DMA控制器通过系统总线与CPU和主存储器连接,所述第2步骤包括以下步骤要求CPU对所述DMA传送未结束的数据再次尝试存取;CPU在暂时终止所述数据的存储到再次存取期间,中断运行中的DMA传送,DMA传送所述数据;CPU存取DMA传送结束的所述数据后,再次开通所述中断的DMA传送。
6.一种DMA传送控制装置,是在具有通过系统总线连接到CPU的主存储器的数据处理系统中,控制存储器对存储器的DMA传送的装置,包括检测部件,检测CPU发出的对包含在DMA传送中的数据块中的数据的存取要求;传送控制部件,使CPU比运行中的DMA传送更优先地对被检测出有所述存取要求的数据进行存取。
7.如权利要求6所述的DMA传送控制装置,其特征在于所述检测步骤包含判定被检测出有所述存取要求的数据的DMA传送未结束的部件;所述传送控制部件包括最优先DMA传送所述要求存取的数据的部件;使CPU存取DMA传送结束的所述数据的部件。
8.如权利要求7所述的DMA传送控制装置,其特征在于所述DMA传送控制装置包括存储DMA传送未结束的数据数的第1寄存器和存储DMA传送中的数据的地址的第2寄存器;以及所述检测部件,包括检测被检测出有所述存取要求的数据的地址和由所述第1寄存器和第2寄存器求出的DMA传送未结束的数据的地址的一致的部件。
9.如权利要求6至8的任意一个DMA传送控制装置,其特征在于所述检测部件和传送控制部件连接在CPU和系统总线之间。
10.如权利要求6至8的任意一个DMA传送控制装置,其特征在于所述检测部件连接在CPU和系统总线之间,所述传送控制部件通过系统总线与CPU和主存储器连接。
11.如权利要求10的DMA传送控制装置,其特征在于所述检测部件包括暂时存储被检测出所述DMA传送未结束的数据的缓冲存储器。
12.如权利要求6至11的任意一个DMA传送控制装置,其特征在于高速缓冲存储器连接到CPU和系统总线之间。
全文摘要
本发明提供一种DMA传送控制方法及装置。可以参照DMA传送中的数据,使DMA传送中的CPU等待时间减少。包括检测CPU(70)发出的对DMA传送对象的数据的参照要求的检测部件(12),使用DMA传送控制装置(10),使CPU(70)比运行中的DMA传送优先参照被检测出有所述参照要求的数据。
文档编号G06F12/00GK1494684SQ0280605
公开日2004年5月5日 申请日期2002年2月25日 优先权日2001年3月9日
发明者上田真 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1