基于二模冗余技术和FPGA动态部分可重构技术设计了一种二模冗余MIPS处理器。处理器可以在不中断系统运行的同时,使用动态可重构技术修复系统故障;通过对系统内部重要模块设置冗余逻辑,保证了系统的稳定性。这两种技术的使用使得本处理器与其他处理器相比具有更高的可靠性和更长的寿命。处理器系统在Xilinx公司XC5VLX110T开发板的上板测试结果表明,此处理器能正常运行。
引言
现场可编程门阵列(Field Programmable Gate Array, FPGA)是基于SRAM的一种硬件电路可重配置电子逻辑器件,可通过将硬件描述语言编译生成的硬件配置比特流编程到FPGA中,而使其硬件逻辑发生改变。FPGA在电子设计中的灵活性和通用性使其在航天、通信、医疗和工控等重要领域得到了广泛的应用。然而,FPGA中的硬件逻辑电路容易受到SEU(Single Event Upset)和SETs(Single Event Transients)故障的影响,从而导致系统失效。FPGA电路失效降低了基于FPGA的嵌入式系统的稳定性和寿命,同时会严重限制它在生产和生活各个方面的应用范围。系统备份、系统故障恢复和系统多模冗余设计是防止系统失效的有效方法。FPGA动态局部可重构技术是一种可应用于系统故障恢复的新兴技术,它可以在FPGA系统运行的过程中,动态地改变FPGA内部的部分逻辑电路块的逻辑功能,同时又不会影响其他逻辑的正常运转;二模冗余技术是一种典型的系统冗余容错设计方法,它为系统的重要模块设置备份模块,保证系统出现故障时依然可以稳定可靠地运转。基于上述思想,本文设计了一种基于FPGA动态可重构技术的二模冗余MIPS处理器。
1 总体方案
Xilinx公司的XC5VLX110T开发板是一个内含ML509芯片、具备内部逻辑块可动态配置能力的FPGA开发板。Verilog是一种结构化可综合的硬件描述语言,通过它可以很快地实现数字逻辑电路的结构级系统建模。本文以Xilinx公司的XC5VLX110T开发板作为系统开发平台,以Verilog语言开发了一种基于二模冗余结构的MIPS处理器系统。系统整体结构如图1所示。
系统的主要组成部分如表1所列。
表1 系统主要组成部分
IMEM是一个采用Xilinx公司IP生成器生成的FPGA内建存储器,由于MIPS处理器运行过程中不会改变指令存储器的内容,所以它被设计为无时钟门控的单端口只读存储器,存放MIPS处理器系统要执行的指令。IMEM的数据位宽为32位,存储深度为1 024。DMEM同样也是使用IP生成器生成的存储器,它存放MIPS处理器执行过程中所需的数据,是具有时钟边沿控制和使能控制的可读写单端口存储器。DMEM的数据位宽为32位,存储深度为1 024。MIPS模块是一个包含完整数据通路、ALU和控制逻辑的使用Verilog语言描述的单周期MIPS处理器,它的指令集大小为32,所有的指令均为整型操作指令。此处理器模块含有指令存储器和数据存储器外部接口,它是系统核心模块,所以被设计为FPGA中的可重构区域。ERR_VERIF模块是故障检测模块,它能对两MIPS系统的执行结果进行对比,并生成相应的故障控制信号;BIST模块也称为内建自测试模块,只有系统发生故障时,此模块才启动运行。它用来测试各子系统的正确性,并输出测试结果。
在图1中,以虚线框起来的部分为FPGA中的可重构区域。图中有两个可重构区域,上一个区域为主子系统区,下面一个区域为主子系统区的备份区。
图1 系统总体结构图
2 工作原理
系统上电复位后,在两MIPS内部逻辑均正常的情况下,系统执行过程为:指令存储器根据系统复位后的指令执行地址将指令从IMEM中取出,送入两个MIPS系统中;两个MIPS处理器分别在指令的指示下完成相应的工作,然后将执行结果输出到ERR_VERIF模块、DMEM和IMEM模块;ERR_VERIF模块分析系统是否正常运转,然后将分析结果信息输出到FPGA上的LED灯A上。
当其中一个MIPS处理器的内部逻辑发生故障时,可假定为图1中上方的主MIPS区域故障。系统执行过程为:ERR_VERIF故障检测模块检测到系统的子区域出现故障,然后发出故障位置检测控制信号;此时,BIST模块接收到检测控制信息后,启动内建自测试系统,将故障测试向量输入MIPS系统。在开启了BIST模块后,系统的指令输入将不再来自IMEM模块,而是由BIST模块提供。同时,指令的执行结果也不会写回到DMEM模块中,而是反馈到BIST模块中。MIPS根据测试向量进行运算,然后将运算结果反馈给BIST单元。BIST单元的测试要进行多次,以确保对故障的准确判断。BIST得到执行结果后,对测试结果进行分析并判定当前MIPS系统是否正常运行,最后分别将分析结果输出到FPGA上的LED灯B、C上。