一种处理器的地址空间优化方法
技术领域
本发明涉及通讯领域嵌入式系统中的一种处理器的地址空间优化方法。
背景技术
随着通信技术的迅速发展,各种新业务层出不穷,电信运营商对通讯设备的功能需求日益增多。因此,通讯设备经常需要升级软件版本。而随着功能的日趋完善,软件版本所需的存储空间越来越大。而且电信级的通讯设备对实时性的要求很高,往往需要较大的内存存储实时数据,因此,通讯设备中往往配置尽可能多的内存。另一方面,激烈的竞争促使各通讯设备制造商尽可能采用物美价廉的器件以降低设备成本。一些廉价而高性能的处理器获得了广泛的应用,然而这一类处理器的寻址空间往往是有限的。以AM186EM处理器为例,它只有20位地址的寻址空间,即存储器的寻址范围只有1M空间,包括内存RAM、程序存储器FLASH以及外围存储器(如双口RAM等)映射到存储器的寻址范围。AM186EM处理器分别提供了三个片选信号:高端存储器选通信号/UCS用于FLASH片选信号;低端存储器选通信号/LCS用于RAM片选信号;中端存储器选通信号/MCS用于外围存储器的片选信号。并且可以通过分别设置高端存储器片选寄存器UMCS、低端存储器片选寄存器LMCS和中端存储器片选寄存器MMCS以及辅助寄存器MPCS这四个寄存器的地址范围来实现。而且UMCS、LMCS和MMCS可以针对不同设备的读写速率分别设置不同的等待状态。假设通讯设备对RAM的需求很大,需要设置LMCS寄存器的选通范围为处理器允许设置的最大RAM容量,即512K内存。因此,FLASH和外围存储器共用另外的512K的地址范围。但是设置UMCS寄存器时只能选择64K、128K、256K或512K的地址范围,而外围存储器的地址范围也一般用不到256K的地址范围(例如只使用了64K)。这样,系统的FLASH容量往往受限于256K的空间,因此系统若要增加新的业务处理程序便会受到很大限制,而另一方面AM186EM处理器的1M寻址空间中有些地址空间又未被使用。同样,对于另一类通讯设备,如果系统最初的地址空间分配已经设置UMCS寄存器的选通范围为处理器允许设置的最大FLASH容量,即512K FLASH。则内存和外围存储器共用另外的512K的地址范围。但是设置LMCS寄存器时只能选择64K、128K、256K或512K的地址范围,而外围存储器的地址范围也一般用不到256K的地址范围(例如只使用了64K)。这样,系统的RAM容量往往受限于256K的空间,因此系统若因新的业务处理程序需要更大的内存会受到很大限制,而另一方面AM186EM处理器的1M寻址空间中有些地址空间却未使用。
发明内容
本发明要解决的技术问题是针对寻址范围有限的这一类处理器,提出一种地址空间优化方法,使得FLASH和外围存储器共享/UCS寻址空间,同时通过不同的地址范围来分别选通FLASH和外围存储器,从而解决了FLASH容量受限于256K空间的问题;或者内存和外围存储器共享/LCS寻址空间,同时通过不同的地址范围分别来选通内存和外围存储器,从而解决了内存容量受限于256K空间的问题。另外,由于FLASH或内存和外围存储器的访问速率不同,为了避免处理器访问FLASH或内存时和访问外围存储器时采用同样的等待周期(以访问速率低的为准)从而影响到系统的性能,本发明采用了在可编程器件CPLD中产生不同的Ready信号,并根据不同的地址范围,选通输入到处理器的异步Ready信号输入端(ARDY)。这样,处理器访问FLASH或内存时和访问外围存储器时,由于外部输入的Ready信号不同,因而访问FLASH或内存的速度和访问外围存储器的速度也不同。
本发明的方法,对于采用最大RAM容量的通讯设备,为了扩展该设备的FLASH容量,其步骤包括:
1、根据通讯设备的需求,确定RAM和外围存储器(如双口RAM等)的容量,则剩余的空间可以全部作为FLASH的寻址空间;
2、设置对应选通RAM地址范围的低端寄存器,使处理器能够选通允许设置的最大RAM容量;
3、设置处理器的高端寄存器,使处理器能够选通允许设置的最大高端存储器的容量。这些地址空间将用于FLASH和外围存储器;
4、利用高端地址选择信号/UCS对FLASH和外围存储器进行选通,同时利用地址译码器来产生区分FLASH和外围存储器的片选信号;
5、在可编程器件CPLD中产生不同的Ready信号,并根据处理器操作FLASH和外围存储器时的不同地址范围选择不同的Ready信号输入到处理器的ARDY信号输入端,分别用于处理器选通FLASH和外围存储器时引入不同的延时。
本发明的方法,对于采用最大FLASH容量的通讯设备,为了扩展该设备的RAM容量,其步骤包括如下:
1、根据通讯设备的需求,确定FLASH和外围存储器(如双口RAM等)的容量,则剩余的空间可以全部作为RAM的寻址空间;
2、设置对应选通FLASH地址范围的高端寄存器,使处理器能够选通允许设置的最大FLASH容量;
3、设置处理器的低端寄存器,使处理器能够选通允许设置的最大低端存储器的容量;这些地址空间将用于RAM和外围存储器;
4、利用低端地址选择信号/LCS对RAM和外围存储器进行选通,同时还利用地址译码器来产生区分RAM和外围存储器的片选信号;
5、在可编程器件CPLD中产生不同的Ready信号,并根据处理器操作RAM和外围存储器时的不同地址范围选择不同的Ready信号输入到处理器的ARDY信号输入端,分别用于处理器选通RAM和外围存储器时引入不同的延时。
本发明公开了一种处理器的地址空间优化方法。本发明的优点在于将FLASH和外围存储器共用处理器的高端存储器的选通信号/UCS,或者将内存RAM和外围存储器共用处理器的低端存储器的选通信号/LCS,这样实现了FLASH或RAM和外围存储器可以共用尽可能大的地址空间,因而克服了传统的FLASH或RAM和外围存储器使用不同的地址选择信号所带来的FLASH或RAM地址空间扩展受限而外围存储器地址空间有剩余的弊端。
附图说明
图1是AM186EM处理器的寄存器设置图;
图2是通用的采用AM186EM处理器的通讯设备的结构框图;
图3是本发明的采用AM186EM处理器的通讯设备的结构框图;
图4是输入到AM186EM处理器的ARDY输入端的Ready信号的产生时序图。
具体实施方式
下面结合附图以AM186EM处理器为例,针对采用了最大RAM容量(512K)的通讯设备,为了扩展该设备的FLASH容量的情况对本发明做进一步的详细说明。对于其它寻址空间有限的处理器,以及采用了最大FLASH容量的通讯设备,也可以利用本发明扩展该设备的RAM容量,其实现原理是类似的。
图1是AM186EM处理器的寄存器设置图。其中UMCS寄存器中LB2-LB0指定了/UCS选通的高端存储器的容量,容量大小可以为64K、128K、256K或512K;LMCS寄存器中UB2-UB0指定了/LCS选通的低端存储器的容量,容量大小可以为64K、128K、256K或512K;MMCS寄存器中的BA19-BA13指定了/MCS选通的中端存储器的起始地址;MPCS寄存器中的M6-M0指定了/MCS选通的中端存储器的容量。另外,UMCS、LMCS和MMCS寄存器中的R2分别指定了/UCS、/LCS和/MCS选通的存储器是否引入外部Ready信号延时;UMCS、LMCS和MMCS寄存器中的R1-R0分别指定了/UCS、/LCS和/MCS选通的存储器引入的等待状态。
图2是现有技术中采用AM186EM处理器的通讯设备的结构框图。硬件上分别将AM186EM处理器的/UCS、/LCS和/MCS分别作为FLASH、RAM和外围存储器的片选信号。
软件上分别设置UMCS寄存器确定/UCS访问的FLASH的容量和等待状态,无须引入外部Ready信号;
设置LMCS寄存器确定/LCS访问的RAM的容量和等待状态,无须引入外部Ready信号;
设置MMCS和MPCS寄存器确定/MCS访问的外围存储器的起始地址、容量和等待状态,无须引入外部Ready信号。
这种方案的缺点就是,假设系统对RAM的需求较大,已经设置RAM的容量为最大可设置的RAM容量(512K),由于设置UMCS寄存器时最大只能选择256K或512K,而且由于外围存储器(用/MCS选通)往往需要占用一部分空间,因此UMCS设置的FLASH容量往往受限于256K,即使外围存储器所占用的空间很小,如64K。这对于通讯设备的软件版本升级(如增加新的业务)是很不利的。
图3是本发明的采用AM186EM处理器的通讯设备的结构框图。硬件上首先用地址译码器产生外围存储器的地址选通范围,然后分别将AM186EM处理器的/UCS和外围存储器的地址范围经过与门相与后作为外围存储器的片选信号;将/UCS和除去外围存储器的地址范围经过与门相与后作为FLASH的片选信号;将/LCS作为RAM的片选信号。这样,FLASH和外围存储器实现了共用/UCS选通的地址范围。
另外,由于访问FLASH和外围存储器的速率各不相同,不能通过设置UMCS寄存器引入统一的等待状态,因此本发明通过在可编程器件CPLD(ComplexProgramming Logic Device)中产生两个不同的Ready信号针对FLASH和外围存储器的访问引入不同的延时,两个Ready信号通过一个二选一的算法(根据是FLASH的地址范围还是外围存储器的地址范围)输入到AM186EM处理器的ARDY输入端。软件上分别设置UMCS寄存器确定/UCS访问的容量(可达512K),不需要引入等待状态(即设置0个等待状态),但需要引入Ready信号;设置LMCS寄存器确定/LCS访问的RAM的容量和访问RAM时需要引入的等待状态,无须引入外部Ready信号。
图4是输入到AM186EM处理器的ARDY输入端的Ready信号的产生时序图。对于AM186EM处理器而言,一般情况下,一个指令周期等于4个时钟周期。引入外部Ready信号后,处理器会从指令的第三个时钟周期开始采样Ready信号的状态,若Ready信号有效(高电平),则在下一个时钟周期操作相应的设备;若Ready信号无效(低电平),则不执行任何操作,在下一个时钟周期再次采样Ready信号的状态。因此,Ready信号产生的原理是针对不同的设备通过低电平产生合适的延时后,再通过高电平使信号有效,这样,处理器在下一个时钟周期就可以操作该设备了。