AXE-10交换机中央处理软件及补丁
1 软件系统概述
AXE-10交换机采用集中分级控制方式,有扩展模块区域处理机(EMRP)、区域处理机(RP)和中央处理机(CP)3种处理机。其中, EMRP和RP用于进行频繁出现、简单重复的操作,CP用于处理复杂的呼叫接续等过程。CP软件具有举足轻重的作用,由功能不同的多个子系统组成,每个子系统包含若干软件功能块,采用模块化结构,用专有PLEX-C高级语言或专有ASA210C汇编语言(通常为提高运行速度的子程序)编写。
在这些软件程序装入CP投入使用之前,需与相关的文档共同进行编译,通常这些文档包括:①各软件功能块源程序信息,包含程序代码、变量及文件记录的初值(InitialData);②各软件功能块的信号简述及中央信号库中信号的名称、格式等,信号用于不同软件功能块之间交换信息;③各软件功能块的应用参数列表(ParameterList),包含应用市场独立和相关的系统常量,如时间监视数据;④用于不同编译方法中,或为Marshal列表文档中的各软件功能块号和信号编号分配表,或仅含各软件功能块号分配表。
欲对上述文档编译,生成可装入的二进制CP软件产品,通常有经典法和合理法两种方法。经典法包括分析、中间代码产生和目标处理3步:分析对文档①、②、③和④中Marshal列表文档进行;中间代码产生对文档①、②分析后的结果进行处理,生成相应的汇编源程序和中间机器码;目标处理继续对中间代码产生的结果和文档③、④分析的结果进行处理,生成最终的目标文件,目标文件包括完整的机器代码及相关参数文档,如E文档及其中的变量初始值、常量赋值和信号分配数据等参数,完整的机器代码生成相应的系统后备带,用于初始装入CP。通常,分析和中间代码产生用于设计新功能块,目标处理用于生成应用系统AS软件包。合理法编译过程与经典法类似,其主要区别在于:合理法中文档4用软件功能块号分配表代替Marshal列表文档进行目标处理。 编译后投入运行的交换软件,常常耗费数百人年。如此庞大的交换机软件系统,在测试和投入使用过程中,不可避免地会产生各种错误。一旦检测到错误,可通过修改软件逻辑或代码来纠正。在AXE-10交换系统中,改变软件程序的方法有功能改变(FC)方式、中央处理机测试(CPT)命令方式和程序补丁(PC)方式。FC用于启用新的功能或重大的版本升级,变动大,周期长;CPT方式用于特殊情形下直接修改主存中的索引存储器RS和数据存储器DS内容,一般对分离的CP进行操作;而输入软件补丁是安全和迅速解决小范围软件错误的有效途径。下面考虑AXE-10交换机中央处理软件补丁。
2 补丁分类及作用
程序补丁是对运行中的软件错误进行修改的统称。在AXE-10交换系统中,根据补丁的不同使用场合,可分为认证补丁(AC)、测试补丁(TC)和应急补丁(EC),这3种补丁都是装入程序的补丁区。其中,AC可分为基本补丁(PAC)、半基本补丁(SPAC)和市场相关补丁(MAC),均属正式补丁。TC只在产品测试和验证过程中使用,属于没有正式发布的补丁。EC也属于非正式补丁,用于测试过程或现运行交换机中,帮助调测人员或非设计人员处理系统出现的紧急错误。当某一软件块中的补丁区域用满后,就必须发行补丁集(CNI),把补丁区域中的AC作为正式代码重新编译写入交换机中,这是一个较大的变动过程,将产生新的源程序代码和相应文档。多个CNI合成一个小版本补丁集应用(CNA),通过软件FC,系统启动后投入运行。
3 补丁区域结构
CPS子系统的软件功能块PCCP用于对补丁的综合处理。其中,软件功能块PCI、PCA和PCT用于处理程序代码补丁。
PCS软件功能块专用于信号补丁,处理PCSSL、PCSSP和PCSDL、PCSDP指令。补丁通常在程序存储器PS中进行,每一软件功能块在源程序代码后有一补丁区域,用于存储补丁输入前后的新旧代码。补丁输入并激活后,程序将改变原有的运行逻辑,跳转至补丁区域以便执行存储的代码,执行完后返回原处继续相应指令。由于被替换的旧代码并未删除,即使补丁本身出错,程序也能切回系统旧代码。补丁区域具有规定的最大值,APZ211最大可达1024W,APZ21211最大可达4096W,APZ21220最大可达64kW,使用大小可通过PCCAS指令设置。补丁区域的结构分为两块,包括公共部分和特殊部分,公共部分为各类补丁所有,一般需指明补丁的大小、状态和名称标识等。特殊部分与补丁类型相关,指出补丁的新旧指令、信号或地址。如在APZ212中,有关补丁区域结构的公共部分如图1所示。
其中,补丁具有空闲、装入、激活、去激活、证实和清除6种状态,类型有程序代码补丁、信号分配表(SDT)的补丁和信号发送表(SST)的补丁。补丁区域的特殊部分与类型相关,程序代码补丁包含新旧指令,指令的最后字节为一跳转指令,用于回到旧程序中;SDT表补丁包含新旧信号入口地址;SST表补丁包含新旧信号名和寻址用的信号发送指针SSP。补丁区域结构详见软件功能块PCI的BLOCKDESCRIPTION。
4 各类补丁的制作及其流程
AXE-10软件除源程序代码,还包含相关的变量、常量、记录、结构以及SDT和SST,相应的补丁必须对其进行。程序补丁可用ASA210C汇编语言代码和PLEX-C高级语言代码来写。 4.1 程序代码补丁 程序代码补丁在某一软件功能块内输入,用于替代原有的指令代码或加入部分新代码。这部分补丁不会影响到软件功能块之间的逻辑调用。补丁用指令PCORL/PCORI/PCORE/PCORS/PCORR装入、激活、去激活、证实和清除。 4.2 DS补丁
这类补丁对一般变量进行SET VAR BLOCKNAME VARIABLE操作,只改变软件功能块内部变量值,不改变内部的运行逻辑。这类补丁由于输入后系统不记录,无法用PCORP查看,所以PCORL装入的只是一空补丁,仅包含名称及标识地址,补丁本身无任何内容,其意义只是用作该补丁的参考标记。 4.3 对信号的补丁
信号用于软件功能块之间的参数调用,如呼叫处理过程中各种用户业务类别的读取和验证,中继设备状态的读写等。信号涉及到各子系统中不同软件功能块之间的互通,有多种分类:根据其是否只在两个软件功能块之间使用,分为独有和复合(unique和multiple)信号;根据是否进入缓冲区处理分为直接和缓冲(direct和buffer)信号;或根据是否需反馈分为单独和联合(single和combined)信号,信号的控制是通过操作系统APZ部分按优先级别来实现的。信号补丁通常用于不同软件功能块之间,一般有以下3种。 (1) SDT表的信号补丁
软件功能块中SDT表的信号,用于对收到其他功能块发出的信号的处理。SDT表的信号链接至进入本软件功能块中的程序入口地址。当需改变软件功能块某一信号的入口地址,或禁止收到某一信号,或增加新信号的入口地址时,可考虑输入SDT表的补丁。补丁通过指令PCOSL/PCSDL(用于APZ211/APZ212)装入,该命令在SDT中写入新地址,并在补丁区存储新旧指令地址,以便补丁出错时系统能切回执行旧指令。SDT补丁指令的激活、去激活、证实和清除同程序代码补丁。 (2) SST表的信号补丁
软件功能块中SST表的信号,用于向其他软件功能块发送信号。SST用于存储软件块发出信号编号,SSP信号发送指针用于对SST中信号的寻址,但须注意:对于unique信号,SST中的信号编号即能指示其接收软件功能块号,对于multiple信号,SST表中无软件块号,收软件块号由变量来获取。SST表的信号补丁用于替换现有的发信号或在SST中加入新信号。指令PCOSL/PCSSL(用于APZ211/APZ212)用于装入SST表的补丁,SST补丁指令的激活、去激活、证实和清除同程序代码补丁。当SST表中的补丁激活后,新旧软件块和信号编号存储于补丁区域中,使得补丁出错时系统能通过启动后回到原代码区。特别地,如果加入新信号,需先用指令LASAL定义。 (3) 联合后向信号代码的补丁 此类补丁与程序代码补丁相同,但输入时需特别注意数据寄存器DR0不再存放相应收信号的第一个变量值。DR0值用于地址跳转至相应的联合后向收代码中的汇编指令JEC/JUC/JTR中。其中:JTR用于联合复合信号中,JEC/JUC用于联合独有信号中。 4.4 补丁流程
补丁的流程如图2所示。
5 结束语
在运行局中,应加强交换机软件维护,管理好各局软件补丁,确保网络中同版本交换机具有相同的软件补丁;同时,根据交换机软件的不同子系统,做好补丁的归类存档和注释说明。随着本地网络规模的扩大,可结合实际的网络结构,按交换机功能不同,如端
局、汇接局、特服接口局或移动接口局,分类管理软件补丁。制作补丁需慎重对待,严格遵守流程,未经过培训的人员或未经过批准不能随便写入补丁。
因篇幅问题不能全部显示,请点此查看更多更全内容