多主设备无冲突访问从设备的方法及装置
技术领域
本发明涉及计算机和集成电路领域。
背景技术
现有技术中,两个或多个(两个以上的)主设备(如CPU(中央处理器)和DMA(直接存储器访问)控制器)访问同一从设备(如RAM(随机访问存储器))是通过仲裁器实现的。一个主设备要访问从设备,需先发一个请求给仲裁器。仲裁器接收到请求后,根据情况(如优先级及更高优先级的主设备访问从设备的情况)安排访问,并回给该主设备一个应答。主设备接收到应答后,进行相应的操作。集成电路多用同步电路,请求需要一个时钟周期,应答需要一个时钟周期。也就是说,采用这种方法,任一主设备访问一次从设备最少要花费2个时钟周期(一个请求周期和一个应答周期)。这会影响主设备的处理速度。
发明内容
本发明的目的在于发明一种两个或多个主设备无冲突访问从设备的方法及使用该方法的装置,以提高主设备访问从设备的效率。
本发明所发明的方法是两个或多个主设备访问从设备的方法,其要点是每一主设备能根据情况访问从设备,不会产生访问冲突。每一主设备可有不同的访问从设备的优先级,可根据其优先级和比自己优先级高的主设备访问从设备的情况访问从设备。每一主设备访问从设备的优先级可是固定的,高优先级的主设备可将自己访问从设备的信息或信号传送给低优先级的主设备,低优先级的主设备可根据这些信息或信号访问从设备。主设备可是计算处理部件(如CPU、处理器(processor)、MCU(微控制器或机器控制器)等)或DMA控制器。从设备可是RAM。RAM可是SRAM(静态存储器)。计算处理部件、DMA控制器和SRAM可处于同一块集成电路。
本发明所发明的装置是采用了前述方法的装置,该装置含有两个或多个主设备,至少一个两个或多个主设备要访问的从设备,其要点在于访问该从设备的主设备能根据情况直接无冲突地访问该从设备。访问同一从设备的主设备可有不同的访问该从设备的优先级,这些主设备可根据自己的优先级和比自己访问该从设备的优先级高的主设备访问该从设备的情况无冲突地访问该从设备。访问同一从设备的主设备访问该从设备的优先级可是固定的,高优先级的主设备可将自己访问该从设备的信息或信号传送给低优先级的主设备,低优先级的主设备可根据这些信息或信号访问该从设备。主设备可是计算处理部件或DMA控制器。从设备可是RAM。RAM可是SRAM。该装置可含有一个计算处理部件、两个DMA控制器(DMA1和DMA2)和SRAM;计算处理部件、DMA1和DMA2可无冲突地访问SRAM,DMA1访问SRAM的优先级可最高,DMA2的可次之,计算处理部件访问SRAM的优先级可最低。计算处理部件、DMA1、DMA2和SRAM可处在同一块集成电路中。
本发明使主设备根据优先级无冲突地访问从设备。优先级最高的主设备可以随时访问从设备,就像该从设备是它单独访问的一样;优先级低的主设备在优先级高的主设备不访问从设备的情况下,也可以直接访问该从设备。这样访问,无需仲裁器干预,无需应答周期。因此,每一主设备访问一次从设备可能会节约一个时钟周期。在极端情况下,每一主设备可以节约一半访问从设备的时间。访问从设备的时间少了,速度快了,还可以减少数据缓存的数量,降低成本。
附图说明
附图1是本发明的一种实施方案的一个示意图。其中1是DMA1,2是DMA2,3是计算处理部件,4是SRAM,5是二输入与非门,6是多路向量选择器,7是三输入与门,RN1、WN1、RN2、WN2、RN3、WN3和RN4、WN4分别是DMA1、DMA2、计算处理部件和SRAM的读写信号(低有效),A1、D1、A2、D2、A3、D3和A4、D4分别是DMA1、DMA2、计算处理部件和SRAM的地址和写数据,D5是从SRAM读出的数据,RW1和RW2分别是DMA1和DMA2访问SRAM的信号。
附图2是DMA2输出的读写信号RN2和WN2的生成电路。其中8是二输入或门,RNb和WNb是DMA2要访问SRAM的内部读写信号。
附图3是计算处理部件输出的读写信号RN3和WN3的生成电路。其中9是三输入或门,RNc和WNc是计算处理部件要访问SRAM的内部读写信号。
具体实施方式
下面根据附图说明本发明这种实施方案的具体实施方式。DMA1 1、DMA2 2和计算处理部件3是主设备,SRAM 4是从设备。DMA1 1访问SRAM 4(即对SRAM4进行读或写)的优先级最高,DMA2 2的次之,计算处理部件3访问SRAM4的优先级最低。DMA1 1可随时访问SRAM4,其访问地址A1通过多路向量选择器6传送到SRAM4。如果是写操作,其数据D1亦通过多路向量选择器6传送到SRAM4。多路向量选择器6可由若干个多路选择器组成。DMA2 2要访问SRAM4时,产生内部读信号RNb或内部写信号WNb。如果DMA1 1没有访问SRAM4,则其访问SRAM4的信号RW1为低,DMA2 2输出的读写信号RN2和WN2分别等于内部读写信号RNb和WNb,其访问SRAM4的地址A2可通过多路向量选择器6传送到SRAM4。如果DMA1 1正在访问SRAM4,则其访问SRAM4的信号RW1为高,DMA2 2输出的读写信号RN2和WN2均为高,它就访问不到SRAM4,它的地址A2也不会被选择传送到SRAM4。计算处理部件3要访问SRAM4时,产生内部读信号RNc或内部写信号WNc。如果DMA11和DMA22都没有访问SRAM4,则它们访问SRAM4的信号RW1和RW2均为低,计算处理部件3输出的读写信号RN3和WN3分别等于内部读写信号RNc和WNc,其访问SRAM4的地址A3通过多路向量选择器6传送到SRAM4。否则,如果DMA1 1或DMA22正在访问SRAM4,则其访问SRAM4的信号RW1或RW2为高,计算处理部件3输出的读写信号RN2和WN2均为高,它访问不到SRAM4,它的地址A3也不会被选择传送到SRAM4。所有这些主设备、从设备及相关电路可做在同一块集成电路中。DMA2 2可根据DMA1 1访问SRAM4的信号RW1控制其内部读信号RNb或内部写信号WNb的长短及接着要进行的操作。计算处理部件3可根据DMA1 1访问SRAM4的信号RW1和DMA2 2访问SRAM4的信号RW2控制其内部读信号RNc或内部写信号WNc的长短及接着要进行的操作。