一种具有改进结构的微处理器系统
技术领域
本发明涉及计算机领域,尤其涉及计算机领域中的微处理器系统。
背景技术
随着计算机系统在通信、电子等各个领域中应用的日益广泛,各个行业对计算机依赖程度逐渐增加,对计算机的性能也有了越来越高的要求,尤其是计算机系统中的核心部件微处理器,其速度和效率的高低直接影响着计算机系统的处理能力,这也就成为微处理器速度越来越快、效率越来越高的直接动力,但是由于目前微处理器系统如x86系列微处理器和8240微处理器等普遍采用了单总线结构,由一个总线仲裁器来管理多个主设备,如CPU、DMA(direct memory access直接存储器存取)控制器以及PCI桥等。对总线的使用要求,使得微处理器的效率受到很大的影响。美国专利US04586128以多个主控器周期性的访问存储器为前提,用总线仲裁器来管理多个总线主控器对总线的使用要求,这样在任意时刻就只能有一个总线主控器能进行数据传输,而其它主控器则处于等待状态。虽然在现有单总线结构中DMA控制器可以帮助CPU进行数据传输从而提高数据传输速度,但在DMA控制器传输数据期间,CPU处于等待总线状态而不能完成其它任务。同样地,在单总线微处理器中,当外部PCI设备需要访问微处理器内部的共享存储器时,将发生PCI和CPU争用总线的情形,当PCI占用内部总线时,CPU不得不处于等待状态,因此降低了微处理器的数据处理能力。可以看出,单总线结构使得数据流无法在总线之间进行并发传输,严重影响了CPU的工作效率,降低了数据交换的速度,无法满足日益增长的通讯等领域中大量的频繁的数据交换需求。
发明内容
本发明的目的是提供一种可以使数据流并发传输、高效的具有改进结构的微处理器系统,以解决现有技术中存在的只能单总线传输数据、效率低、数据交换速度慢的缺点。
为了实现上述目的,本发明构造了一种并发多总线微处理器系统,包括第一数据总线CBUS、第二数据总线DBUS、第三数据总线PBUS、CPU内核电路、系统控制模块、串口数据缓冲区、基本通讯模块、存储控制模块、DMA控制器、PCI数据缓冲区一、PCI数据缓冲区二和PCI桥。
第一数据总线CBUS、第二数据总线DBUS、第三数据总线PBUS彼此之间互相独立,独立进行数据传输。
所述CPU内核电路与第一数据总线CBUS相连接;所述系统控制模块与第一数据总线CBUS相连接;
所述CPU内核电路控制所述第一数据总线CBUS;
所述串口数据缓冲区分别与第一数据总线CBUS和第二数据总线DBUS相连接;所述DMA控制器分别与第一数据总线CBUS和第二数据总线DBUS相连接;
所述DMA控制器控制第二数据总线DBUS;
所述PCI数据缓冲区一分别与第一数据总线CBUS、第二数据总线DBUS和第三数据总线PBUS相连接;所述PCI数据缓冲区二分别与第一数据总线CBUS、第二数据总线DBUS和第三数据总线PBUS相连接;所述PCI桥分别与第一数据总线CBUS和第三数据总线PBUS相连接;
所述PCI桥控制所述第三数据总线PBUS,PCI桥通过PCI数据总线与外部进行数据通讯。
所述基本通讯模块与第二数据总线DBUS相连接,包括四个计时计数器、四个串行通道和一个并行IO控制器,其中四个串行通道与第二数据总线DBUS相连接;
所述存储控制模块包括两部分,第一部分包括互相连接的存储通道控制器一和SDRAM(同步动态随机存取存储器)控制器一;所述存储通道控制器一分别与第一数据总线CBUS和第二数据总线DBUS相连接,所述SDRAM控制器一通过第一端口通道连接到外部的SDRAM模块一;第二部分包括互相连接的存储通道控制器二、SDRAM控制器二和ROM(随机只读存储器)控制器,所述存储通道控制器二分别与第一数据总线CBUS、第二数据总线DBUS和第三数据总线PBUS相连接,所述SDRAM控制器二通过第二端口通道与外部的FLASH模块和SDRAM模块相连接。
由于本发明采用了多总线微处理器体系结构,充分利用数据流在各个独立总线之间的并发传输特点,提高数据交换的效率,从而提高了微处理器处理数据的能力。在本发明中,DMA控制器可以独立担负数据传输的任务,减轻了CPU传输数据的负担。由于DMA控制器控制的DBUS总线和CPU所控制的CBUS总线相互独立,使得在DMA控制器利用DBUS总线传输数据过程中,CPU能够通过CBUS总线执行其它任务,有效地解决现有的单总线结构中DMA控制器和CPU争用总线的问题。同样地,在PCI桥利用PBUS总线传输数据过程中,CPU能够通过CBUS总线执行其它任务,很好地解决了PCI桥和CPU争用内部总线的问题。类似地,本发明也解决了DMA控制器和PCI桥争用总线的问题。CPU、DMA控制器、PCI桥能够同时控制各自的总线进行数据交换,大大提高了数据交换的速度,充分利用了CPU的效率,提高了微处理器的性能。
附图说明
下面结合附图对本发明作进一步说明;
图1是本发明所构造的并发多总线微处理器系统结构示意图;
图2是图1中所示的双端口DMA控制器端口结构示意图;
图3是图1中所示的双端口串行通道的结构示意图。
具体实施方式
在图1所示的并发多总线微处理器系统结构示意图中,虚框内表示的是微处理器芯片内部结构。该微处理器的显著特点是有三条相互独立的第一数据总线CBUS、第二数据总线DBUS和第三数据总线PBUS,该微处理器采用单机结构,只使用一个CPU内核电路。该CPU内核电路(以下简称CPU)完全控制第一数据总线CBUS,但不能作为第二数据总线DBUS和第三数据总线PBUS的总线主控器。微处理器另外两条总线的主控器分别是DMA控制器和PCI桥。DMA控制器完全控制第二数据总线DBUS,PCI桥完全控制第三数据总线PBUS。与三总线结构相辅相成的是,微处理器包括了多个多端口部件,其中串口数据缓冲区、基本通讯模块和DMA控制器是双端口部件,PCI数据缓冲区一、PCI数据缓冲区二和PCI桥是三端口部件;存储控制模块为多端口部件。因为系统控制模块只能由CPU访问,故系统控制模块是单端口部件,包括时钟逻辑、复位逻辑、中断控制器和看门狗,系统控制模块只能由CPU通过第一数据总线CBUS访问。微处理器和外部存储器之间的第一端口通道外挂SDRAM存储器一;微处理器和外部存储器之间的第二端口通道外挂SDRAM存储器二和FLASH静态存储器。SDRAM存储器一是系统程序区和系统数据区,第二个SDRAM存储器是共享数据区,FLASH是装载程序区,微处理器上电复位后需要把FLASH中的内容转移到SDRAM存储器一。采用多个缓冲区和两个动态存储器SDRAM主要是为了减少三总线并发工作时不同总线争用同一部件的机会,提高总线并发性能。
第一数据总线CBUS是CPU访问内部寄存器和存储控制器的通道,即CPU的指令流和数据流的通道;第二数据总线DBUS是DMA控制器传输数据的通道;第三数据总线PBUS是PCI桥传输数据的通道。CPU可以通过第一数据总线CBUS访问所有设备的内部寄存器,也可以通过访问存储器通道控制器实现对存储器(存储器包括数据缓冲区)的访问。DMA控制器通过第二数据总线DBUS完成如下任务:基本通讯模块中的四个串行通道和串口数据缓冲区、SDRAM模块二之间的数据交换;串口数据缓冲区与SDRAM模块二之间的数据交换;PCI数据缓冲区一、PCI数据缓冲区二和SDRAM模块二之间的数据交换;FLASH模块、SDRAM模块一和SDRAM模块二之间的数据交换。PCI桥通过第三数据总线PBUS完成如下任务:PCI数据缓冲区一、PCI数据缓冲区二和SDRAM模块二之间的数据交换;PCI数据缓冲区一、PCI数据缓冲区二、SDRAM模块二和PCI总线端口之间的数据交换。
由于微处理器在通讯领域的应用中常常涉及大量的频繁的数据交换,而且这些数据交换主要发生在基本通讯模块和PCI总线上。因此在一般情况下,CPU通过第一数据总线CBUS访问SDRAM模块一,DMA控制器访问基本通讯模块中的四个串行通道、串口数据缓冲区和SDRAM模块二,PCI桥访问PCI数据缓冲区一、PCI数据缓冲区二和SDRAM模块二。由于采用三总线结构,CPU、DMA控制器、PCI桥可以使用不同的数据总线同时传输数据,因此DMA控制器或PCI桥传输数据过程中,其它总线主控器照常可以工作,尤其是CPU可以继续执行指令,这就实现了数据的并发传输,提高了数据传输的效率,进而提高了CPU效率。
图2是图1中所示的双端口DMA控制器的端口结构示意图。该示意图显示DMA控制器可以作为CBUS的从设备,也可以作为DBUS的主设备。DMA控制器的端口总线有两个,分别与第一数据总线CBUS和第二数据总线DBUS相连接。DMA控制器一方面是第一数据总线CBUS上的从设备,另一方面是第二数据总线DBUS上的主设备。第一数据总线CBUS可以访问DMA控制器的内部寄存器,而DMA控制器可以控制第二数据总线DBUS。DMA控制器总是不断的把第二数据总线DBUS上从设备中的数据传送到先入先出暂存器中,并把接收到DMA控制器先入先出暂存器中的数据传送到第二数据总线DBUS的从设备中去。由于第一数据总线CBUS和第二数据总线DBUS相互独立,DMA控制器作为第一数据总线CBUS从设备和第二数据总线DBUS主设备可以同时进行,因此在DMA控制器传输数据过程中CPU可以通过第一数据总线CBUS访问DMA控制器的内部寄存器甚至设置新的DMA命令。在单总线结构中,DMA控制器无法同时扮演主设备和从设备的双重角色。DMA控制器同时扮演主设备和从设备双重角色可以加快DMA控制器后续命令的写入,减少命令之间的间断时间,避免在高速数据传输过程中因为命令之间间断时间太长导致丢失数据的错误。
图3是图1所示基本通讯模块中串行通道的端口示意图。这里的串行通道既可以是双端口异步串口UART,也可以是双端口同步串口SSP。该示意图显示串行通道模块既可以作为CBUS总线的从设备,也可以作为DBUS总线的从设备,CPU和DMA控制器可以对其进行访问。DMA控制器一个主要的任务就是在串行通道和存储器(主要是串口数据缓冲区)之间交换数据,因此支持DMA控制器传输数据的串行通道模块有利于发挥多总线并发的优势。CPU可以通过第一数据总线CBUS访问串行通道的所有内部寄存器(包括数据寄存器和其他内部寄存器)。DMA控制器可以通过第二数据总线DBUS访问串行通道的数据寄存器,但不能访问其它内部寄存器。串行通道有两种工作模式,即CPU模式和DMA模式。在CPU模式下,数据寄存器不能被DMA控制器访问,第二数据总线DBUS写串行通道的数据寄存器将被忽略,第二数据总线DBUS读串行通道的数据寄存器将返回0值。在DMA模式下,数据寄存器不能被CPU访问,第一数据总线CBUS写串行通道的数据寄存器将被忽略,第一数据总线CBUS读串行通道的数据寄存器将返回0值。
第一数据总线CBUS和第二数据总线DBUS对串行通道的数据寄存器写操作通过二选一电路MUX完成:在CPU模式下,MUX只允许第一数据总线CBUS总线上的值写入串行通道的数据寄存器;在DMA模式下,MUX只允许第二数据总线DBUS总线上的值写入串行通道的数据寄存器。第一数据总线CBUS和第二数据总线DBUS对串行通道的数据寄存器读操作通过一到二反向选择电路DMUX完成:CPU模式下,第一数据总线CBUS读数据寄存器时将返回正确的值,DBUS读数据寄存器时将返回0值;DMA模式下,第二数据总线DBUS读数据寄存器时将返回正确的值,第一数据总线CBUS读数据寄存器时将返回0值。串行通道的其它寄存器只能由第一数据总线CBUS访问,而不能由DBUS访问。