虚拟阵列式直接存贮器存取装置的制作方法

文档序号:6408156阅读:187来源:国知局
专利名称:虚拟阵列式直接存贮器存取装置的制作方法
技术领域
本发明涉及数字电脑系统的直接存贮器存取装置。特定而言,本发明涉及微电脑系统的虚拟阵列式直接存贮器存取装置。更特定而言,本发明涉及利用有限数量的独立直接存贮器存取控制器,达到在任意存贮器与输入/输出装置之间的多维多通道直接存贮器存取动作。
直接存贮器存取控制装置(DMA controller,direct memoryaccess controller)是被应用于微电脑系统之中,在电脑的主存贮器,以及设置于系统的扩充总线上的其它功能接口子系统的存贮器之间,进行数据的传输。
电脑系统之中典型的直接存贮器存取动作的进行有一个要点,亦即,牵涉到直接存贮器存取动作的两个存贮器之间的数据传输,应在系统的中央处理单元(CPU)的最少干预之下进行。这是由于,典型的直接存贮器存取动作时常会牵涉到连续的整块存贮器数据块的传送,因此,直接存贮器存取控制器设计的一个要点即是,可以在这样的数据传输情况之下,尽量减低对系统的CPU介入的需求,这样就可以将CPU的时间空下来,可让CPU执行其他的工作,以提高整个系统的数据处理通过量(throughput)。
典型的直接存贮器存取控制器可以在诸如IBM兼容个人电脑系统中见到。在这种电脑系统中应用了英代尔公司(Intel Corporat-ion)的82C37A-5直接存贮器存取控制器,或者其等效逻辑电路,用作在诸如磁盘机控制接口装置与电脑系统的主存贮器之间传输磁盘存贮数据内容。
在IBM兼容电脑系统之中,标准的磁盘机控制接口装置仍是在电脑系统的CPU控制之下进行数据的传输的。另有一种亦常见于IBM兼容电脑系统之中的扩充功能接口装置也会利用到直接存贮器存取。总线主处理器(bus master)型态的SCSI控制接口卡(SCSI(smallcomputer system interface)controller adapter,),在IBM兼容个人电脑系统之中亦会利用到直接存贮器存取的动作。事实上,由于IBM兼容个人电脑结构的缘故,所有插置于IBM兼容电脑系统之中的总线主处理器扩充接口卡皆必须要配合直接存贮器存取控制器的动作。
常用的直接存贮器存取控制器,诸如前述的82C37A-5,或者本发明的申请人联华电子公司所制造的UM8237,或者摩托罗拉半导体公司(Motorola Semiconductor)所制作的MC68450等直接存贮器存取控制器,皆只具备有有限个直接存贮器存取通道(DMA channel)。当一部电脑系统需要提供较多的直接存贮器存取通道以供电脑系统中的多种主或副接口扩充子系统使用时,除了必须应用多个的前述82C37A-5之类的直接存贮器存取控制器之外,还须有复杂的逻辑电路配合,才能提供较多的直接存贮器存取通道。
另一方面,前述常用技术的直接存贮器存取控制器,通常只能进行单一个存贮器或输入/输出装置对多个存贮器或输入/输出装置,或者只能进行多个存贮器或输入/输出装置对单一个存贮器或输入/输出装置的直接存贮器存取动作。简言之,常用的直接存贮器存取控制器能进行一对多或多对一的直接存贮器存取动作。
因此,本发明的一目的在于提供一种虚拟阵列式直接存贮器存取装置,可以利用简单的逻辑电路来进行多通道直接存贮器存取的动作。
本发明的另一目的在于提供一种虚拟阵列式直接存贮器存取装置,可以进行任意多个存贮器或输入/输出装置对多个存贮器或输入/输出装置的直接存贮器存取动作。
本发明是一种虚拟阵列式直接存贮器存取装置,用于电脑系统中,通过系统总线,与系统的中央处理单元、可插置于系统总线上的主处理器、系统的主存贮器、子系统的存贮器或输入输出装置相连,该虚拟阵列式直接存贮器存取装置包括有一个具有多个通道的第一直接存贮器存取控制器(16),其各个通道各可以独立地进行直接存贮器存取的动作,并可以启动电脑系统的插置于系统总线上的主处理器或直接存贮器存取控制器,而进行直接存贮器存取的动作;多个第二直接存贮器存取控制器(26,36),所述多个第二直接存贮器存取控制器(26,36)所模拟出的多个通道中的每一个通道可以被电脑系统的插置于系统总线上的主处理器或直接存贮器存取控制器所启动,进行直接存贮器存取的动作;与一个多重总线仲裁器(41),与所述第一直接存贮器存取控制器(16)和多个第二直接存贮器存取控制器(26,36)连结在一起,依指定的优先权次序,将系统总线的使用权交予所述的直接存贮器存取控制器(16,26,36)。
直接存贮器存取控制器各包括有
一个时序电路(56),用于产生控制所述直接存贮器存取控制器中所存数据的读出与写入动作的时序信号;一个控制寄存器(54),可供储存控制所述直接存贮器存取控制器的不同动作模式的控制参数,并输出这些控制参数据至所述时序电路;一个数据寄存器(57),可供暂时地储存直接存贮器存取动作所要传送的数据,以在下一个数据的写出周期中将寄存的数据传送到系统总线上;一个源计数器(51),可指令所述直接存贮器存取控制器由所述源计数器所指向的存贮器或输入/输出装置上采集数据并储存于所述数据寄存器之内,其计数数值经由后述选择器而被传送到系统总线上,并可依据其所指令的存贮器或输入/输出装置的数据采集而递增或递减其计数;一个目标计数器(52),可指令所述直接存贮器存取控制器将储存于所述数据寄存器中的数据,向所述目标计数器所指向的存贮器或输入/输出装置上输出,其计数数值经由后述选择器而被传送到系统总线上,并可依据其所指令的存贮器或输入/输出装置之数据传送而递增或递减其计数;一个长度计数器(53),可供指定所述直接存贮器存取的动作所要传送数据的长度;与一个选择器(55),可依据所述直接存贮器存取控制器的数据的读出与写入而将所述源计数器或所述目标计数器分别地耦接至系统总线上。
本发明的其它目的与特点将配合附图在后面进行详细说明。
附图简要说明

图1是依据本发明一实施例的虚拟阵列式直接存贮器存取装置的方块电路图;图2是本发明图1中虚拟阵列式直接存贮器存取装置的一个控制电路的方块电路图;与图3是本发明图2中控制电路的一个目标计数器的方块电路图。
较佳实施例说明参考图1,其中显示依据本发明一实施例的虚拟阵列式直接存贮器存取装置的方块电路图。本发明的虚拟阵列式直接存贮器存取装置可以由多个典型的直接存贮器存取控制器16、26、……、36,与各个直接存贮器存取控制器16至36相连结的存贮器或输入/输出装置11与14、21与24、……、31与34,以及一个多重总线仲裁器(multi-level bus arbiter)41所构成。
在本发明显现于图1的实施例之中,每一个独立的直接存贮器存取控制器16、26、……、36各被赋予不同的总线采集优先次序。在图1的实施例之中,DMA1 16的总线采集优先权低于DMA226,DMA2 26的优先权又低于DMA3……,而最后一个DMAn36的优先权则是最高。具有较高优先权的DMA可以随时中断具较低优先权的DMA,使之立即让出系统总线的控制权。在采用了本实用新型图1中的虚拟阵列式直接存贮器存取装置的电脑系统之中,具较低优先权的DMA会先行启动,再由已启动的DMA来启动具较高优先权的DMA的控制器。
以图1的第一个与第二个独立的直接存贮器存取控制器DMA1 16与DMA2 26所构成的一个本发明的虚拟阵列式直接存贮器存取装置为例,其DMA1 16与DMA2 26被互相级联(cascaded)起来,其中DMA226的优先权高于DMA1 16。在级联起来的直接存贮器存取控制器串列之中,第一个直接存贮器存取控制器DMA1 16被设定于级联的模式(cascade mode),而第二个直接存贮器存取控制器DMA2 26则被设定于一般模式之中。
在两个直接存贮器存取控制器被启动之前,整个虚拟阵列式直接存贮器存取装置的所有m个通道采集所必要的所有参数,皆须先储存进入存贮器或输入/输出装置11之中。这些参数包括有每一个通道所需要的源地址,目标地址,直接存贮器传输的传输数据长度,以及代表DMA2 26的通道动作模式的数值等信息。
之后,系统的CPU或系统总线上的其它主处理器(bus master),便会将控制DMA1 16所需要的参数写入,以便启动DMA1 16。此时,参考图2所显示的,本发明图1中虚拟阵列式直接存贮器存取装置的一个控制电路的方块电路图。这些参数包括有储存于存贮器或输入/输出装置11之中的m个通道的必要地址参数,这些地址参数的起始地址被存入于DMA1 16结构之中的一个源计数器51之中,而其长度则被储存于一个长度计数器53之中。由于DMA1 16被设定于级联模式之中,因此其目标地址被固定指向DMA2 26的寄存器的地址,而代表DMA1 16的动作模式的数值则被储存于控制寄存器54之中,以便控制DAM1 16的动作。
此时请同时参考图1与图2。当DMA1 16被启动时,直接存贮器存取控制器DMA1 16中的一个时序电路56(图2)便会发出一个系统总线请求信号BRQ1至多重总线仲裁器41(图1)。仲裁器41在接到此系统总线请求BRQ1之后,便会以一个系统总线选通信号BEN1响应DMA1 16。
DMA1 16在接到此信号之后即可占用系统的总线。此时,储存在存贮器或输入/输出装置11之中的第一个直接存贮器存取通道的参数组,会在DMA1 16的控制电路50的控制之下,依据源计数器51的指示,经由系统总线而传送到数据寄存器57之中。接着,此参数组会再依据目标计数器52的指示,再由数据寄存器57之中经由系统总线而被传送到DMA2 26的寄存器之中。利用这种方式,第一个直接存贮器存取通道所须的所有参数,可以全部地传送至DMA2 26的寄存器之内。
当第一个直接存贮器存取通道的所有参数被传送完成时,源计数器51中的计数数值会依递增或递减次序,如图3所显示的,图2的控制电路50的一个目标计数器52的方块电路图,其中所包含的一个固定计数器72,其计数数值会依递增或递减次序,而回复到传输参数组之前的初始值,以便下一次启动DMA1 16时,可以再次地将第二个直接存贮器存取通道所必要的参数依续地传送至DMA2 26的寄存器之内。
由于第一个直接存贮器存取通道的最后一个参数,为控制DMA226动作的,代表动作模式的数值,且由于第二个直接存贮器存取控制器DMA2 26被设定于一般模式之中,当第一个直接存贮器存取通道的最后一个参数被载入到DMA2 26的控制寄存器54之中时,DMA226的时序电路56便会发出系统总线请求信号BRQ2至图1的多重总线仲裁器41。在接到系统总线请求信号BRQ2时,仲裁器41会先关断接至DMA1 16的系统总线选通信号BEN1,之后再以系统总线选通信号BEN2回应DMA2 26,这便表示DMA2 26已由DMA1 16的手中占得系统总线的控制权。此时,DMA2 26即可以根据储存于寄存器中的参数值(此时为第一个直接存贮器存取通道的参数值),利用常用直接存贮器存取的动作而完成第一个直接存贮器存取通道所应进行的工作。
回到图1与图2,此时DMA2 26的源计数器51即可以指示,将储存于存贮器或输入/输出装置21之中的,其长度由DMA2 26的长度计数器53所指定的某一段数据块的数据内容,或者某一输入/输出装置的数据内容,经由系统总线,传送至由DMA2 26的目标计数器52所指定的,存贮器或输入/输出装置24之中的某一段存贮区,或某一个输入/输出装置的空间之中。当此段存贮器的数据块或输入/输出装置的数据内容传送完成之后,DMA2 26的时序电路56便会取消其系统总线请求信号BRQ2,而多重总线仲裁器41在检测到BRQ2信号的取消之时,便会关断BEN2,之后再发出BEN1给DMA1 16,表示DMA2 26已不再占用系统的总线,系统总线的使用权此时即可以交还给DMA1 16。
当DMA1 16再度拥有系统总线的使用权时,储存于存贮器或输入/输出装置11之中的第二个直接存贮器存取通道所须的参数组,便可以再通过DMA1 16的控制电路50,在源计数器51的指示之下,经由系统总线而传送到寄存器57之中,并再依据目标计数器52的指示,而将存于数据寄存器57中的数值,经由系统总线而再传送至DMA2 26的寄存器之中。利用这种方式,第二个直接存贮器存取通道所须的所有参数,可以全部地传送至DMA2 26的寄存器之内。
当第二个直接存贮器存取通道的所有参数被传送完成时,DMA116的源计数器51中的计数数值会依递增或递减次序,且控制电路50的目标计数器52的一个固定计数器72,其计数数值亦会依递增或递减次序,而回复到传输参数组之前的初始值,以便下一次再度启动DMA1 16时,可以再次地将下一个直接存贮器存取通道所必要的参数依续地传送至DMA2 26的寄存器之内。
与前述传送第一组参数时的情况一样的,由于第二个直接存贮器存取通道的最后一个参数,为控制DMA2 26动作的,代表动作模式的数值,且由于第二个直接存贮器存取控制器DMA2 26被设定于一般模式之中,当第二个直接存贮器存取通道的最后一个参数被载入到DMA2 26的控制寄存器54之中时,DMA2 26的时序电路56便会发出系统总线请求信号BRQ2至多重总线仲裁器41。在接到系统总线请求信号BRQ2时,仲裁器41会先关断接至DMA1 16的系统总线选通信号BEN1,之后再以中断响应信号BEN2响应DMA2 26,这便表示DMA226已由DMA1 16的手中占得系统总线的控制权。此时,DMA2 26即可以根据储存于寄存器中的参数值(此时为第二个直接存贮器存取通道的参数值),利用常用直接存贮器存取的动作而完成第二个直接存贮器存取通道所应进行的工作。
此时,与前述关于第一个直接存贮器存取通道的参数值传送时的情况一样的,DMA2 26的源计数器51即可以指示,将存贮于存贮器或输入/输出装置21之中的,其长度由DMA2 26的长度计数器53所指定的某一段数据块的数据内容,或者某一输入/输出装置的数据内容,经由系统总线,传送至由DMA2 26的目标计数器52所指定的,存贮器或输入/输出装置24之中的某一段存贮器,或某一个输入/输出装置的空间之中。
当此段存贮器的数据块或输入/输出装置的数据内容传送完成之后,DMA2 26的时序电路56便会取消其系统总线请求信号BRQ2,而多重总线仲裁器41在检测到BRQ2信号的取消之时,便会关断BEN2,之后再发出BEN1给DMA1 16,表示DMA2 26已不再占用系统的总线,系统总线的使用权此时即可以交还给DMA1 16。
利用同样的方式,先前被储存于存贮器或输入/输出装置11之中的所有m组的参数便可以依续地全部传送给DMA2 26,而DMA2 26亦可以同样方式动作m次,以完成m个通道的直接存贮器存取动作。
如此,由前面本发明的实施例说明叙述之中便可以了解,本发明可以利用n个独立的直接存贮器存取控制器组合而成(n-1)个m个通道的虚拟阵列式直接存贮器存取装置。若第一个的DMA控制器本身原已拥有m个通道的话,此n个控制器便可以级联成n个m通道的虚拟阵列式直接存贮器存取装置。
再参考图2,本发明的虚拟阵列式直接存贮器存取装置的一个控制电路50的方块电路图。本发明的每一个独立的直接存贮器存取控制器的控制电路50包括有一个时序电路56,一个数据寄存器57,一个源计数器51,一个目标计数器52,一个长度计数器53,以及一个选择器55。其中,时序电路56可供控制这些直接存贮器存取控制器的包含数据读出与写入的时序,控制寄存器54可供储存控制这些直接存贮器存取控制器的不同动作模式的控制参数,数据寄存器57可供暂时地储存直接存贮器存取动作所要传送的数据,以在下一个数据的写出周期中将寄存的数据传送至系统总线上,源计数器51可令直接存贮器存取控制器由源计数器51所指向的存贮器或输入/输出装置上采集数据并储存于数据寄存器57之内,其计数数值经由选择器55而被传送到系统总线上,并可依据其所指令的存贮器或输入/输出装置的数据采集而递增或递减其计数,目标计数器52可指令该直接存贮器存取控制器由储存于数据寄存器57之内的数据,向目标计数器52所指向的存贮器或输入/输出装置上输出数据,其计数数值经由选择器55而被传送到该系统总线上,并可依据其所指令的存贮器或输入/输出装置的数据传送而递增或递减其计数,长度计数器53可供指定直接存贮器存取的动作所要传送数据的长度,而选择器55则可依据这些直接存贮器存取控制器的数据的读出与写入而将源计数器51或目标计数器52分别地接至系统总线上。
在图1所显示的本发明一实施例虚拟阵列式直接存贮器存取装置的方块电路之中,每一个直接存贮器存取控制器DMA1 16、DMA226、……、DMA3 36等各具有一个控制寄存器54。此控制寄存器54之中包括有一个级联模式字与一个启动字,其中级联模式字可以控制直接存贮器存取控制器在一种一般模式以及可以触发这些其它直接存贮器存取装置的一种级联模式之间切换,以便在级联模式之中时,将所要直接采集的数据储存到这些其它的直接存贮器存取控制器的寄存器之中,而启动字可以触发直接存贮器存取的动作以便占得系统总线的使用权。
图2的控制电路50显示包括有一个目标计数器62。图3中显示了此目标计数器62的方块电路图。此目标计数器62还包括有一个可编程计数器71,一个固定计数器72,与一个选择器73。可编程计数器71,其计数初始数值可由中央处理单元或系统总线上的主处理器写入,并可在一般模式之中产生直接存贮器存取动作所将写出数据的目标地址。固定计数器72可在级联模式之中产生直接存贮器存取动作的目标地址。而选择器73则可选择目标计数器输出一般模式的目标地址或级联模式的目标地址。
图1所显示的本发明一实施例虚拟阵列式直接存贮器存取装置的方块电路之中,多重总线仲裁器41还包括有一个通讯协定器82,可控制直接存贮器存取控制器的数据传输协定,并在有多于一个以上的直接存贮器存取控制器要求使用系统总线时,依据事先设定的优先次序而将系统总线的使用权交付予具有最高优先权的直接存贮器存取控制器。
在图1之中,本发明的虚拟阵列式直接存贮器存取装置的多重总线仲裁器41还包括有一个优先次序编码器以及一个解码器所构成的一个优先仲裁器81。其中,优先编码器可依据预定的优先次序将多个输入信号编定优先次序,并依序输出至解码器,而解码器则可依据优先次序而将具最高优先的信号予以解码,以指示哪一个主处理器具有最高的优先次序。
权利要求
1.一种虚拟阵列式直接存贮器存取装置,用于电脑系统中,通过系统总线,与系统的中央处理单元、可插置于系统总线上的主处理器、系统的主存贮器、子系统的存贮器或输入输出装置相连,其特征在于,所述虚拟阵列式直接存贮器存取装置包括有一个具有多个通道的第一直接存贮器存取控制器(16),其各个通道各可以独立地进行直接存贮器存取的动作,并可以启动电脑系统的插置于系统总线上的主处理器或直接存贮器存取控制器,而进行直接存贮器存取的动作;多个第二直接存贮器存取控制器(26,36),所述多个第二直接存贮器存取控制器(26,36)所模拟出的多个通道中的每一个通道可以被电脑系统的插置于系统总线上的主处理器或直接存贮器存取控制器所启动,进行直接存贮器存取的动作;与一个多重总线仲裁器(41),与所述第一直接存贮器存取控制器(16)和多个第二直接存贮器存取控制器(26,36)连结在一起,依指定的优先权次序,将系统总线的使用权交予所述的直接存贮器存取控制器(16,26,36)。
2.根据权利要求1所述的虚拟阵列式直接存贮器存取装置,其特征在于所述直接存贮器存取控制器(16,26,36)各包括有一个时序电路(56),用于产生控制所述直接存贮器存取控制器中所存数据的读出与写入动作的时序信号;一个控制寄存器(54),可供储存控制所述直接存贮器存取控制器的不同动作模式的控制参数,并输出这些控制参数据至所述时序电路;一个数据寄存器(57),可供暂时地储存直接存贮器存取动作所要传送的数据,以在下一个数据的写出周期中将寄存的数据传送到系统总线上;一个源计数器(51),可指令所述直接存贮器存取控制器由所述源计数器所指向的存贮器或输入/输出装置上采集数据并储存于所述数据寄存器之内,其计数数值经由后述选择器而被传送到系统总线上,并可依据其所指令的存贮器或输入/输出装置的数据采集而递增或递减其计数;一个目标计数器(52),可指令所述直接存贮器存取控制器将储存于所述数据寄存器中的数据,向所述目标计数器所指向的存贮器或输入/输出装置上输出,其计数数值经由后述选择器而被传送到系统总线上,并可依据其所指令的存贮器或输入/输出装置之数据传送而递增或递减其计数;一个长度计数器(53),可供指定所述直接存贮器存取的动作所要传送数据的长度;与一个选择器(55),可依据所述直接存贮器存取控制器的数据的读出与写入而将所述源计数器或所述目标计数器分别地耦接至系统总线上。
3.根据权利要求1所述的虚拟阵列式直接存贮器存取装置,其特征在于所述多重总线仲裁器(41)还包括有一个通讯协定器(82),可控制所述直接存贮器存取控制器的数据传输协定,并在有一个以上的所述直接存贮器存取控制器要求使用系统总线时,依据该事先设定的优先次序而将系统总线的使用权交付予具有最高优先权的所述直接存贮器存取控制器。
4.根据权利要求2所述的虚拟阵列式直接存贮器存取装置,其特征在于所述控制寄存器(54)还包括有一个级联模式字与一个启动字,其中所述级联模式字可以控制所述直接存贮器存取控制器在一种一般模式以及可以触发所述其他直接存贮器存取装置的一种级联模式之间切换,以便在所述级联模式之中时,将所要直接采集的数据储存到所述其他的直接存贮器存取控制器的寄存器之中,且所述启动字可以触发所述直接存贮器存取的动作以便占得系统总线的使用权。
5.根据权利要求2所述的虚拟阵列式直接存贮器存取装置,其特征在于所述目标计数器(52)还包括有一个可编程计数器(71),其计数的初始数值可由中央处理单元或系统总线上的主处理器写入,并可在所述一般模式之中产生所述直接存贮器存取动作所将写出数据的目标地址;一个固定计数器(72),可在所述级联模式之中产生所述直接存贮器存取动作的目标地址;与一个选择器(73),可选择所述目标计数器输出所述一般模式的目标地址或所述级联模式的目标地址。
6.根据权利要求2所述的虚拟阵列式直接存贮器存取装置,其特征在于所述控制寄存器(54),所述源计数器(51),所述目标计数器(52),以及所述长度计数器(53)的储存内容由中央处理单元或主处理器写入。
7.根据权利要求3所述的虚拟阵列式直接存贮器存取装置,其特征在于所述多重总线仲裁器(41)还包括有一个优先次序编码器以及一个解码器,其中所述优先编码器可依据预定的优先次序将多个输入信号编定优先次序,并依序输出到所述解码器,且所述解码器可依据所述优先次序而将具最高优先的信号予以解码,以指示那一个主处理器具有最高的优先次序。
全文摘要
一虚拟阵列式直接存贮器存取装置,用于电脑系统,经总线与中央处理单元、主处理器、主存贮器、子系统的存贮器或输入/输出接口相连,包括一具有多个通道的第一直接存贮器存取控制器,其各通道可独立进行直接存贮器存取,并可启动主处理器或直接存贮器存取控制器;多个第二直接存贮器存取控制器,所模拟出的多个通道中的每个可被主处理器或直接存贮器存取控制器启动;多重总线仲裁器,依指定优先次序将总线使用权交予直接存贮器存取控制器。
文档编号G06F13/28GK1122927SQ9411817
公开日1996年5月22日 申请日期1994年11月5日 优先权日1994年11月5日
发明者陈章三, 邓永佳 申请人:联华电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1