多处理器系统及其共享引导模块的方法

文档序号:6370834阅读:228来源:国知局
专利名称:多处理器系统及其共享引导模块的方法
技术领域
本发明涉及一种多处理器(CPU)系统及多CPU系统共享BOOT FLASH(引导模块)的方法,尤其涉及通讯领域有关带PCI(Peripheral Component Interconnect,周边元件扩展接口)控制器的多CPU系统及该系统中多CPU共享引导模块的方法。
背景技术
目前在嵌入式系统中为了增加单板的处理能力、增加集成度,常常在同一块单板上设计多套CPU系统,每套系统自带一个BOOT FLASH,在带PCI控制器的地方往往还利用CPLD(Complex Programble Logic Device,复杂可编程逻辑设备)自己设计一个PCI仲裁器,并从网口或FLASH上下载版本文件。如图1和图3所示。图1是以前按现有技术方法设计的多CPU系统的硬件原理框图,系统中两套或多套CPU系统自身各带一个BOOT FLASH,一个PCI仲裁器,至少一个以太网口。图3是按现有技术方法各CPU系统的上电软件流程图,系统中各CPU系统相互独立,上电复位后,所有的CPU都从自身的BOOT FLASH中取指令,完成硬件的初始化、并通过以太网或FLASH加载版本文件,完成系统的启动。
但对于某些带PCI控制器的CPU(以下简称CPU),如果按照这种现有技术的设计方法,明显增加了成本,也占用了宝贵的印刷电路板PCB空间,为此可以寻求一些新的引导方法来完成系统的启动。从美国商标专利局检索到的一篇申请号为20020138156的专利申请文献《System of connecting multiple processors in cascade》(串行多处理器连接系统)涉及了有关多系统的启动,它利用串行的bootStrap(导引带)总线来完成多CPU系统的各个CPU子系统的启动代码的传送,但这种方法在硬件上需要设计一套bootStrap总线,而且对各CPU系统的RAM设备的处理也比较复杂。

发明内容
本发明的目的正是为了克服上述缺点,提供一种在多CPU系统方案,并提供多CPU共享一个BOOT FLASH进行引导的方法。
本发明中的一种多处理器系统,包括多个处理器,每个处理器都有配套的控制状态寄存器、动态RAM、静态RAM、串口等,多个处理器通过PCI总线联在一起,共用一个PCI仲裁器,一个处理器带引导模块作为主处理器,其他处理器作为从处理器;其中PCI仲裁器通过复杂可编程逻辑设备实现。
本发明中的多处理器共享引导模块的方法,包括下列步骤(1)初始化主处理器关键寄存器;(2)主处理器动态RAM和静态RAM、内存测试;(3)在主处理器中将代码段和数据段复制到内存中并跳转到该处运行;(4)主处理器中断及异常处理初始化;(5)主处理器内核初始化;(6)主处理器内存管理初始化;(7)主处理器系统时钟及辅助时钟初始化;(8)PCI控制器及PCI设备初始化;(9)主处理器IO及文件系统初始化;(10)加载主处理器串口驱动及以太网驱动;(11)加载主处理器版本文件;(12)运行主处理器版本文件;其特征在于在所述步骤(8)之后,步骤(9)之前,还包括以下步骤;3.1从处理器关键寄存器及其动态RAM、静态RAM初始化;3.2测试从处理器内存;3.3将代码段和数据段复制到从处理器系统的内存,并在内存的首地址设置一条跳转指令;3.4复位从处理器。
上述方法中的复位从处理器,从处理器执行以下步骤4.1内存中的代码段取值;4.2中断及异常处理初始化;4.3内核初始化;4.4内存管理初始化;4.5系统时钟及辅助时钟初始化;4.6PCI控制器及PCI设备初始化;4.7IO及文件系统初始化;4.8加载串口驱动及/或以太网驱动;4.9加载版本文件;4.10运行版本文件。
本发明与现有技术相比,方法简单,不需要在硬件上添加附加设备,而且可以节省BOOT FLASH,CPLD,在软件上进行一下处理,从CPU可以不通过以太网加载版本文件,而通过PCI总线从主CPU加载版本文件,从CPU系统还可以节省以太网控制器。如果批量生产,本发明将带来可观的经济效益。


图1是现有技术中的多CPU系统原理框图;图2是本发明的多CPU系统一个实施例的原理框图;图3是按现有技术方法设计的系统引导流程图;图4是本发明中的方法流程图;图5是本发明的从CPU的引导流程图;图6是本发明中的CPU地址与PCI地址的映射关系图。
具体实施例方式
在本发明的系统中主CPU带有BOOT FLASH,而从CPU不带BOOT FLASH。所有的CPU都通过PCI总线联在一起,并共用一个PCI仲裁器。系统上电时,主CPU从自身的BOOT FLASH取指令,而从CPU从RAM中获取指令,但这时获得的是非法指令,无法运行,但稍后主CPU对从CPU初始化后会再次让其复位,这时它可以正常运行。
本发明的核心是利用一种软复位,使从CPU从RAM中取指令而不进行其它操作。利用这种特性,在系统上电或主CPU复位后,主CPU对从CPU的PCI空间进行配置,将从CPU系统的内部的各种控制状态寄存器CSR(Controll Status Registers)、DRAM、SRAM等,通过PCI控制器映射给主CPU,使从CPU的CSR、DRAM(动态RAM)、SRAM(静态RAM)成为主CPU的开放资源,主CPU就可以对从CPU的CSR进行初始化,特别是对DRAM控制寄存器进行初始化,然后将指令的代码段和数据段拷贝到从CPU系统的DRAM中,并通过主CPU对从CPU初始化后的再次让其复位,使从CPU从自身的DRAM中取指令,完成从CPU的启动。
下面结合附图对本发明进行详细说明。
1、本发明中的系统结构本发明中的多处理器系统原理方框图如图2所示(在本实施例中,系统包括一个主处理器和一个从处理器,图中只画出了两个CPU)。所有的CPU通过PCI总线相连。CPU1系统做主CPU系统,通过自带的BOOT FLASH启动。CPU2系统做从系统,它的某些资源(DRAM控制器、SRAM控制)由CPU1系统来初始化。图中的PCI仲裁器通过CPLD实现,来完成PCI总线的控制。
2、本发明中的方法本发明中的方法,实质上就是主CPU系统的软件上电流程,如图4所示。本方法流程与现有技术中的流程(图3所示)总体上相似。系统上电或复位后,所有的CPU都从BOOT FLASH中取指令。和绝大多数处理器一样,CPU上电后的第一条指令是一条跳转指令,指向BOOT FLASH指令的起始地址,程序首先是关闭cache(缓存),进行DRAM和SRAM控制器的初始化,然后打开cache,并对DRAM的进行全面测试,如果DRAM测试发现错误,则DRAM控制器的初始化不正确,需要调整初始化的参数。如果测试成功,就把BOOT FLASH中的代码段和数据段复制到DRAM中并开始从DRAM中取指令。从DRAM取指令后,先后完成PCI控制器的初始化,PCI设备的地址分配和初始化,操作系统内核的初始化,并加载串口驱动、以太网驱动,通过网络、FLASH或磁盘加载版本文件,完成系统的启动。
本发明与现有技术的软件上电流程相比,在PCI控制器和PCI设备初始化后,主CPU要给从CPU的CSR和DRAM分配地址,并对它们的配置空间进行初始化,通过PCI总线,从CPU的CSR、DRAM、SRAM就全部成为主CPU可访问的资源;之后,主CPU就对从CPU的CSR(包括时钟控制器,DRAM、SRAM控制器)进行初始化,并对它们进行全面测试,如果测试不通过,就会告警退出,要求设计者对初始化的参数进行调整,如果测试通过就将主CPU系统BOOT FLASH中的代码段和数据段拷贝到从CPU系统DRAM的特定位置;在拷贝完成后在从DRAM的起始地址处放一条跳转指令,该指令将使从CPU跳转到前面所述的特殊地址去取指令,这条跳转指令是从CPU复位后获得的第一条指令;完成上述工作后,主CPU就向从CPU的复位寄存器写前面所述的特殊的复位指令,从CPU就可以从DRAM中取指令正常运行了。
3、本发明中从CPU系统的软件上电流程本发明中从CPU经主CPU复位后的软件流程如图5所示。从CPU的复位寄存器接到主CPU的复位命令后,就从DRAM的首地址取指令并跳转到前面所述的特殊位置取指令。由于从CPU的DRAM控制器、cache已被主CPU初始化了,在从CPU复位后不会再对它们进行初始化。另外由于主CPU已经为各PCI设备分配了PCI地址,从CPU也不会再对各PCI设备重新分配地址,而是从各PCI设备的配置寄存器中读出这些地址。其它的操作与图3所示的流程图相同,主要完成内核的初始化,串口驱动、以太网驱动的加载。最后加载版本文件,完成系统的启动。
从CPU系统加载版本文件可以通过以太网、FLASH或磁盘完成,也可以通过PCI总线从主CPU系统上获得。从主CPU系统上获得版本文件时,只需要在主、从CPU系统的代码中添加一个PCI通讯模块,主从CPU通过这个PCI通讯模块交互信息,完成版本文件从主CPU系统到从CPU系统的传送。使用这种方法从CPU系统就可以节省下载版本文件的以太网控制器。
4、本发明主从CPU地址映射图6是本发明中主、从CPU地址与PCI地址映射关系图(图中以双CPU为例说明)。
在本发明中将主CPU、从CPU的CSR、DRAM、SRAM及以太网的PCI MEM(PCI内存)空间及PCI IO空间在PCI总线上进行了统一分配(图中没有标出PCI IO空间)。主CPU的DRAM_BASE(DRAM基地址)、SRAM_BASE(SRAM基地址)、CSR_BASE(CSR基地址)分别映身到PCI总线的的PCI_DRAM_BASE1、PCI_SRAM_BASE1、PCI_CSR_BASE1,将从CPU的DRAM_BASE、SRAM_BASE、CSR_BASE分别映身到PCI总线的的PCI_DRAM_BASE2、PCI_SRAM_BASE2、PCI_CSR_BASE2,它们在PCI空间的大小以实际的DRAM、SRAM和CSR的空间大小DRAM_SIZE、SRAM_SIZE、CSR_SIZE来确定。这种映射是在主CPU对各PCI设备的PCI配置寄存器进行初始化时完成的。这样在PCI总线上对PCI_DRAM_BASE1~PCI_DRAM_BASE2空间的访问就是对主CPU系统的DRAM进行访问,对PCI_CSR_BASE2~PCI_CSR_BASE2+CSR_SIZE空间进行访问,就是对从CUP的CSR空间进行访问。
在CPU中,某一段物理地址空间(我们称为CPU地址,PCI总线输出的地址称为PCI地址)用做对PCI空间的访问,对该段地址的操作,将产生PCI操作。主CPU在初始化时将PCI地址映射到自己的CPU地址的PCI_MEM_BASE以上的某段空间,这样主CPU对自己的PCI_MEM_BASE上面的某一段空间进行操作,就会自动转化成PCI操作时序,就可以操作从CPU系统的DRAM、SRAM、CSR。
权利要求
1.一种多处理器系统,包括多个处理器,每个处理器都有配套的控制状态寄存器、动态RAM、静态RAM、串口等,其特征在于多个处理器通过PCI总线联在一起,共用一个PCI仲裁器,一个处理器带引导模块作为主处理器,其他处理器作为从处理器。
2.权利要求1所述的多处理器系统,其特征在于PCI仲裁器通过复杂可编程逻辑设备实现。
3.一种权利要求1或2所述的多处理器系统共享引导模块的方法,包括下列步骤(1)初始化主处理器关键寄存器;(2)主处理器动态RAM和静态RAM、内存测试;(3)在主处理器中将代码段和数据段复制到内存中并跳转到该处运行;(4)主处理器中断及异常处理初始化;(5)主处理器内核初始化;(6)主处理器内存管理初始化;(7)主处理器系统时钟及辅助时钟初始化;(8)PCI控制器及PCI设备初始化;(9)主处理器IO及文件系统初始化;(10)加载主处理器串口驱动及以太网驱动;(11)加载主处理器版本文件;(12)运行主处理器版本文件;其特征在于在所述步骤(8)之后,步骤(9)之前,还包括以下步骤;3.1从处理器关键寄存器及其动态RAM静态RAM初始化;3.2测试从处理器内存;3.3将代码段和数据段复制到从处理器系统的内存并在内存的首地址设置一条跳转指令;3.4复位从处理器。
4.权利要求3所述的多处理器系统共享引导模块的方法,其特征在于所述步骤3.4包括以下步骤4.1内存中的代码段取值;4.2中断及异常处理初始化;4.3内核初始化;4.4内存管理初始化;4.5系统时钟及辅助时钟初始化;4.6PCI控制器及PCI设备初始化;4.7IO及文件系统初始化;4.8加载串口驱动及/或以太网驱动;4.9加载版本文件;4.10运行版本文件。
全文摘要
一种多处理器系统及其共享引导模块的方法,涉及通讯领域有关带PCI控制器的多CPU系统。多处理器系统,包括多个处理器,每个处理器都有配套的控制状态寄存器、动态RAM、静态RAM、串口等,多个处理器通过PCI总线联在一起,共用一个PCI仲裁器,一个处理器带引导模块作为主处理器,其他处理器作为从处理器。系统上电时,主CPU从自身的引导模块取指令,而从处理器从RAM中获取指令,主CPU对从CPU初始化后会再次让其复位,这时它可以正常运行。本发明方法简单,可以节省引导模块等,还可以节省以太网控制器。
文档编号G06F13/14GK1525353SQ0314688
公开日2004年9月1日 申请日期2003年9月17日 优先权日2003年9月17日
发明者赵凯, 陈诗军, 苏绣江, 黄钟琪, 赵 凯 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1