链接表直接存储器存取控制器描述符的结构的制作方法

文档序号:6537229阅读:262来源:国知局
专利名称:链接表直接存储器存取控制器描述符的结构的制作方法
发明所属的领域本发明涉及一种计算机系统且尤其涉及直接存储器存取控制器。
发明的背景在早期的计算机中,数据通过一个中央处理器(CPU)移入和移出存储器。然而,对于诸如硬盘驱动器或CD-ROMs这样的大容量存储设备来讲其数据传输率增长了,CPU处理数据传输太慢了且它的使用阻止了CPU对其他任务的执行。其结果是,现在大多数的计算机包括直接存储存取控制器(DMAs)来移动数据到存储器或从存储器中移出数据。DMA通过控制地址和数据总线以从存储器读取数据或写入数据到存储器来进行操作。为了移动数据,CPU给DMA控制器一个DMA描述符的地址。该描述符是一组包括一些预定义信息的数据,预定义的信息包括将要移动的数据块大小以及具有存储器中的数据块地址的指针。
在以前,每个描述符只包括一个或正好两个数据指针。每次DMA控制器移动数据块时,一个新的描述符不得不被读取,从而降低了数据移动的速率。为了加快数据传输速率,需要一种减少描述符数量的方法,DMA控制器必须读取描述符以移动数据。
发明概述为了提高通过DMA控制器所传输的数据的速率,描述符包括一个随后描述符的地址以及一个包含在随后描述符中的可变的数据指针数量的示值。随后描述符中的指针数量被存储在DMA控制器中。当读取一个随后描述符时,所存储的指针的数量控制由DMA控制器所执行的读周期的数目。
在本发明的优选实施例中,描述符被存储在一个定位的32比特位存储器中。描述符地址的最后两个地址比特位不是必须的并且因此用于将指针的数量存储在下一个描述符中。
根据本发明的DMA控制器包括一个将数据指针的数量存储在随后描述符中的计数器。当读取描述符时,计数器控制当DMA操作下一个描述符时由DMA控制器所执行的读周期的数目。
附图的简要说明结合附图,通过下面的详细描述将更容易领会和更好地理解前面所述的特征和本发明其它更多的附加效果,其中

图1说明了根据本发明的一个链接表DMA描述符;图2说明了每个DMA描述符如何包括一个存储在随后描述符中的数据指针数量的示值;以及图3说明了根据本发明的DMA控制器如何包括一个计数器以存储包含在随后描述符中的数据指针的数量。
优选实施例的详细说明本发明提出了用于通过包括一个包含在随后描述符中的可变的数据指针数量的示值来增加由直接存储存取控制器所执行的存储器传输率的方法。
图1说明了根据本发明的一个实施例的链接表DMA描述符10。在本发明的优选实施例中,描述符存储在串行32比特的存储器中。描述符10的第一个字12包含将被DMA控制器读取的下一个描述符的地址。第二个字14包含DMA控制器移动数据所要的常规数据,包括存储将被移动的数据块大小的一对字节15。描述符10的第三个字16包括一个将被移动的数据块的32比特位地址。
不像现有技术中描述符包括一个或正好两个数据块,描述符10可以包括最多4个指向数据模块的数据指针,数据模块通过DMA控制器而移动。因为描述符10存储在定位的存储器中的一连串32比特字中,下一个描述符的32比特位地址的最后两个比特位永远是00。因此,最后两个比特位18最好用于存储包含在随后描述符中的数据指针的数量。若描述符是描述符列表中的最后一个描述符,下一个描述符指针被设置为某一预定义的值,该值可由DMA控制器识别,例如空字符(例如,全部零)或其它容易识别代码。
图2说明了根据本发明实施例的一个DMA描述符的链接表。第一描述符20被存储作为它的第一32比特位的字22,第二DMA描述符30的地址。如上所示,32比特的字22的最后两比特存储包含在第二DMA描述符30内的数据指针数量。如所示的实施例,字22的最后两比特包含值01,因此随后DMA描述符30的示值包含两个数据指针。第一DMA描述符20的第二32比特字24包含一些由DMA控制器需要的标准信息以及将要移动的数据块大小的示值。如实施例所述,32比特位字24的最后两个字节表示将被移动的数据块具有256字节。第一描述符20的第三32比特位字26包含指向将要移动的256字节数据块的指针。
最初的第二DMA描述符30的第一32比特位字32最初具有空字符,该空字符存为随后描述符的地址,因此表示第二DMA描述符30是列表中的最后描述符。第二DMA描述符30包括两个数据指针,该数据指针定位将要移动的数据块。一对32比特位字34和36存储第一数据块的长度(即256字节)及其地址,同时第二对32比特位字38和40定位第二32字节数据及其地址。
为了增加随后DMA描述符到随后描述符的链接表,下一个描述符的地址存储在前面DMA描述符的30的第一32比特位字32中。在所示的实施例中,被存为第一32比特位字32的空字符被随后DMA描述符44的地址覆盖。再次,地址的最后两个比特位包含随后DMA描述符44内的数据指针的数量。在所示的实施例中,最后两比特位是00,表示随后DMA描述符44仅包括一个数据指针。
由DMA描述符20,30,44所形成的链接表可以独立于DMA控制器的操作而被更新。如本领域普通技术人员的理解,DMA控制器包括下一描述符地址寄存器,CPU将下一描述符的地址存储在该寄存器中。为了增加DMA描述符到DMA描述符的链接表,列表中最后一个DMA描述符的下一地址空间被更新以便表示新描述符的地址。另外,DMA控制器中的下一描述符地址寄存器被更新用以表示新描述符的地址。如前所述,下一个DMA描述符地址的最后两个比特位包含被包含在将被添加到列表中的新的DMA描述符中的数据指针数量。
当一个新的DMA描述符添加到列表时,存在DMA控制器的三种可能的状态。第一,可能是DMA控制器还没有在描述符列表的随后描述符上开始操作。因此,若列表中用于最后一个表示符的下一个DMA表示符地址字段在DMA控制器对前面的最后描述符开始操作之前被修改,可知道下一个地址不是空的并且知道处理另一个DMA描述器。
除了更新前面最后描述符的下一个描述符地址字段外,CPU还将新DMA描述符的地址写入到DMA控制器的下一个描述符地址寄存器。因此,若DMA控制器已经读取了最后描述符(被设为空)的下一个地址字段,DMA控制器将在处理包含在已处理完的最后描述符中的全部数据指针之后,通过读取其下一个描述符地址寄存器来继续检测新的描述符。最后,若DMA控制器完成了对包含在前面最后一个描述符中的数据指针的处理,它将进入停止状态直到新DMA表示符的地址和包括在描述符内的数据指针数量被写入DMA控制器的下一个描述符地址寄存器。
图3说明了根据本发明实施例中的DMA控制器增加的一个附加功能的方块示意图。所述的DMA控制器50以与传统的DMA控制器相同的方式被构造,除了DMA控制器50包括计数器52,该计数器将由下一描述符地址的最后两个比特位所确定的指针的数量存储在随后DMA表示符中。存储在计数器52中的指针数量控制当DMA控制器处理下一个DAM描述符时由DMA控制器所执行的读取周期的数目。也就是说,当对由下一个描述符地址寄存器54所引用的下一个DMA描述符进行处理时,DMA控制器引起从存储器中读取的一定数量的字,其中一定数量的字取决于存储在计数器52中的指针数量。例如,若存储的用于每个数据指针的信息需要数据的两个字并且寄存器50表示随后DMA描述符中有两个数据指针,于是DMA控制器50将导致从存储器中读取5个数据字;一个字用于下一个DMA描述符的地址,两个字用于包含在下一DAM描述符中的两个数据指针中的每一个。
由上可以看出,本发明中的方法减少了与DMA控制器相关的内务操作。虽然本发明实施例中使用了以前未曾使用的下一描述符地址字段的比特位存储参考的可变指针数量,将其替换为描述符的其它位置是容易理解的。然而,使用以前没有使用过的下一描述符地址字段的比特位是首选的,因为只有一个单独写周期需要DMA以用于支持具有下一地址和指针数量的DMA。
本发明的实施例的全部的特性和基本权利由下述权利要求定义
权利要求
1.一种用DMA控制器移动存储器块的方法,包括提供一个具有DMA描述符地址的MDA控制器,标明了由DMA控制器所移动的存储器块,描述符包括一个随后DMA描述符的地址以及一个包含在随后DMA描述符中的可变的数据指针数量的示值;以及读取随后DAM描述符的地址并且根据所标明的数据指针的数量来执行一定数量的读取周期。
2.如权利要求1所述的方法,其中通过将数据指针的数量编码到随后DMA描述符的地址未使用的比特位而在随后DMA描述符中提供了数据指针数量的示值。
3.在计算机系统中用于将数据移动到存储器中和从存储器中移出的DMA控制器,其改进包括一个计数器(52),存储数据指针数量的示值,该数据指针包含在可变的DMA描述符中以由DMA控制器执行,计数器控制当DMA描述符被执行时由DMA控制器所执行的存储器读周期的数目。
4.一个用于存储DMA描述符的计算机可读存储器设备,包括一个标明随后DMA描述符存储地址的多个计算机可读比特位(30);一个标明包括在随后DMA描述符中的可变的数据指针数量的多个计算机可读比特位(32),其中标明可变的数据指针数量的比特位被DMA控制器读取以确定DMA控制器所执行的读周期的数目。
5.如权利要求4所述的计算机可读存储器设备,其中标明可变的数据指针数量的比特位数目包括在随后DMA描述符的地址中。
全文摘要
一个链接表DMA描述符(20,30)包括数据指针(22,23)数量的示值,该数据指针包含在随后的DMA描述符中。包含在随后的DMA描述符中的数据指针的数量最好包含在随后DMA描述符的存储器地址中。数据指针的数量通过DMA控制器(52)而存储并控制当处理随后的DMA描述符时执行多少次读取周期。
文档编号G06F13/20GK1384938SQ00814526
公开日2002年12月11日 申请日期2000年10月20日 优先权日1999年10月20日
发明者A·施密德特 申请人:因芬尼昂技术北美公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1