论文部分内容阅读
摘要: 随着计算机技术的飞速发展,硬件可靠性和软可用性面临着严峻的威胁,系统容错设计也成为学者的研究热点之一。介绍可重构系统的基本概念和FPGA的动态局部重构特性,论证可重构系统,尤其是支持动态局部重构的FPGA,是开发和实现系统容错设计的最佳平台。
关键词: FPGA;可重构系统;动态重构;局部重构
中图分类号:TA 文献标识码:A 文章编号:1671-7597(2011)0310187-01
1 基于SRAM的FPGA结构介绍
基于SRAM的FPGA主要包含三类资源:可配置逻辑块(CLB)、输入输出缓冲(IOB)和互联网格(Interconnection Grid),部分FPGA同时内嵌RAM或者一些常用的硬核模块。基于SRAM的FPGA根据其资源组织结构可以分为三类:晶格结构(Cell-based)、岛式结构(Island-style)和层次结构,其主要区别在于:逻辑单元能够实现的逻辑功能的多少,互联网络的组织结构。
在晶格结构中,每个CLB仅包含数个两输入基本逻辑门,如NAND、XOR等。CLB之间的数据传输通常通过相邻CLB之间的布线通道完成,很少有跨越多个CLB互联线资源。这种互联结构适合实现规整的电路结构,如二维滤波矩阵,但对于不规则电路,其效率很低。这种结构的典型代表是Atmel公司的FPGA。
岛式结构又称平面结构,是科研人员常用的可编程器件模型。岛式结构中,每个CLB包含数个查找表(Lookup Table,LUT)和其他附加逻辑电路,可以完成组合逻辑和同步时序逻辑电路功能。互联网格包括了不同跨度的连线:短线资源丰富,较为灵活,但构成较长互联路径时需要通过多个开关盒(Switch Boxes),会造成较大的布线延时,主要用于局部布线;长线绕开了开关盒因而有较小的布线延时,但不够灵活且资源有限,通常用于两个功能模块之间的通信.
层次结构由岛式结构发展而来。在层次结构中,每个CLB不但包含更多的LUT和触发器,同时也具有内部布线资源,从而可以实现更复杂的逻辑功能。互联网格中包含更加丰富的、有多种长度和用途的布线通道,通常还有专用的全局时钟树。层次结构几乎能够实现任何功能的电路尤其是高扇出电路,是目前商用FPGA的主流结构。
2 可重构系统
可重构性是指系统功能根据需求变化相应改变的能力,也称为可编程性。可重构系统包含至少一个可重构硬件单元,通过在时间域上修改可重构单元的配置实现硬件资源的重用。
系统重构技术可以分为静态重构和动态重构。静态重构是指系统的逻辑功能静态重载,即FPGA芯片从复位状态开始,在外部逻辑的控制下,根据外部存储器中的配置数据,重新组合芯片内的各个区域的各种硬件资源,实现逻辑功能的改变。静态重构需要几毫秒到几十毫秒的时间用于芯片复位和配置信息加载,这一时间称为重构时隙。
目前系统重构的方式主要有三种模型:单上下文(Single-context)模型、多上下文(Multi-context)模型和PRTR(Partial Runtime Recon
Figuration)模型。
在单上下文模型中,FPGA配置数据缓存的结构类似移位寄存器,配置数据必须按顺序依次存取,因此只能实现全局重构。这意味着即使只需要修改FPGA的一小部分配置,也不得不重写整个芯片的配置。对于运行时重构来说,单上下文模型带来的开销过大,目前只有Altera FPGA芯片仍在沿用。
多上下文模型是对单上下文模型的改进,其主要思路是准备多个配置文件存储在不同的地址中,未激活的配置文件可随时被重写而不干扰系统运行,同时也降低了系统重构时隙。
在PRTR模型中,FPGA配置数据缓存的结构类似RAM,可以根据其行列地址随机存取任意的数据单元,修改指定位置的硬件配置,因此可以支持动态局部重构,目前在Xilinx和Atmel FPGA中广泛应用。
Xilinx FPGA支持两种动态局部重构模式:基于模块(Module-based)的重构和基于差异(Difference-based)的重构。
Xilinx提供的总线宏由三态缓冲器(TBUF)及长线连接而成,允许信息的半双工传递,每一位数据使用一个TBUF和一根贯穿整个器件的长线。以Virtex II器件为例,FPGA的每一行支持一个4比特的总线宏。总线宏的位置精确的跨骑在模块A和模块B之间,其中四栅三态缓冲器在A内,另外四栅三态缓冲器在B内。两个模块之间的通信就是通过带有三台缓冲器的长线来保证的。总线宏允许从模块A到模块B或者相反方向的数据传输,但对于某一个特定设计,数据传输的方向是确定的。总线宏的数量受FPGA中水平方向上可用的长线资源的数量限制。
3 动态局部重构应用于可靠系统
芯片级或者板级的容错设计需要一块额外电路板或芯片,在系统的成本、面积、功耗方面都会造成很大的代价。而FPGA具有丰富的逻辑资源和良好的可编程、可重构特性,利用其空闲逻辑资源进行片内的冗余容错设计以提高系统可靠性,在硬件资源冗余度上有着巨大优势。基于SRAM的FPGA的岛式结构具有逻辑资源可编程、互联结构可编程和IO接口可编程的多重可编程特性,是通过冗余容错设计实现可靠系统的最佳硬件平台。Xilinx FPGA的动态局部重构特性能够显著降低FPGA的配置数据量和重构时隙,将其应用到冗余容错设计当中,可以同时节省系统的存储器空间、系统配置时间和配置数据通道位宽,因此局部可重构FPGA是高可靠性系统的最佳实现平台。
参考文献:
[1]Eric Chmelar,The Test and Diagnosis of FPGAS,Dissertation for the degree of Doctor of Philosophy,Stanford University,2004.
[2]杨士元,数字系统的故障诊断与可靠性设计(第二版),北京:清华大学出版社,2000.
作者简介:
戴林兴(1989-),男,浙江人,天津工业大学信息与通信工程学院,研究方向:通信工程。
关键词: FPGA;可重构系统;动态重构;局部重构
中图分类号:TA 文献标识码:A 文章编号:1671-7597(2011)0310187-01
1 基于SRAM的FPGA结构介绍
基于SRAM的FPGA主要包含三类资源:可配置逻辑块(CLB)、输入输出缓冲(IOB)和互联网格(Interconnection Grid),部分FPGA同时内嵌RAM或者一些常用的硬核模块。基于SRAM的FPGA根据其资源组织结构可以分为三类:晶格结构(Cell-based)、岛式结构(Island-style)和层次结构,其主要区别在于:逻辑单元能够实现的逻辑功能的多少,互联网络的组织结构。
在晶格结构中,每个CLB仅包含数个两输入基本逻辑门,如NAND、XOR等。CLB之间的数据传输通常通过相邻CLB之间的布线通道完成,很少有跨越多个CLB互联线资源。这种互联结构适合实现规整的电路结构,如二维滤波矩阵,但对于不规则电路,其效率很低。这种结构的典型代表是Atmel公司的FPGA。
岛式结构又称平面结构,是科研人员常用的可编程器件模型。岛式结构中,每个CLB包含数个查找表(Lookup Table,LUT)和其他附加逻辑电路,可以完成组合逻辑和同步时序逻辑电路功能。互联网格包括了不同跨度的连线:短线资源丰富,较为灵活,但构成较长互联路径时需要通过多个开关盒(Switch Boxes),会造成较大的布线延时,主要用于局部布线;长线绕开了开关盒因而有较小的布线延时,但不够灵活且资源有限,通常用于两个功能模块之间的通信.
层次结构由岛式结构发展而来。在层次结构中,每个CLB不但包含更多的LUT和触发器,同时也具有内部布线资源,从而可以实现更复杂的逻辑功能。互联网格中包含更加丰富的、有多种长度和用途的布线通道,通常还有专用的全局时钟树。层次结构几乎能够实现任何功能的电路尤其是高扇出电路,是目前商用FPGA的主流结构。
2 可重构系统
可重构性是指系统功能根据需求变化相应改变的能力,也称为可编程性。可重构系统包含至少一个可重构硬件单元,通过在时间域上修改可重构单元的配置实现硬件资源的重用。
系统重构技术可以分为静态重构和动态重构。静态重构是指系统的逻辑功能静态重载,即FPGA芯片从复位状态开始,在外部逻辑的控制下,根据外部存储器中的配置数据,重新组合芯片内的各个区域的各种硬件资源,实现逻辑功能的改变。静态重构需要几毫秒到几十毫秒的时间用于芯片复位和配置信息加载,这一时间称为重构时隙。
目前系统重构的方式主要有三种模型:单上下文(Single-context)模型、多上下文(Multi-context)模型和PRTR(Partial Runtime Recon
Figuration)模型。
在单上下文模型中,FPGA配置数据缓存的结构类似移位寄存器,配置数据必须按顺序依次存取,因此只能实现全局重构。这意味着即使只需要修改FPGA的一小部分配置,也不得不重写整个芯片的配置。对于运行时重构来说,单上下文模型带来的开销过大,目前只有Altera FPGA芯片仍在沿用。
多上下文模型是对单上下文模型的改进,其主要思路是准备多个配置文件存储在不同的地址中,未激活的配置文件可随时被重写而不干扰系统运行,同时也降低了系统重构时隙。
在PRTR模型中,FPGA配置数据缓存的结构类似RAM,可以根据其行列地址随机存取任意的数据单元,修改指定位置的硬件配置,因此可以支持动态局部重构,目前在Xilinx和Atmel FPGA中广泛应用。
Xilinx FPGA支持两种动态局部重构模式:基于模块(Module-based)的重构和基于差异(Difference-based)的重构。
Xilinx提供的总线宏由三态缓冲器(TBUF)及长线连接而成,允许信息的半双工传递,每一位数据使用一个TBUF和一根贯穿整个器件的长线。以Virtex II器件为例,FPGA的每一行支持一个4比特的总线宏。总线宏的位置精确的跨骑在模块A和模块B之间,其中四栅三态缓冲器在A内,另外四栅三态缓冲器在B内。两个模块之间的通信就是通过带有三台缓冲器的长线来保证的。总线宏允许从模块A到模块B或者相反方向的数据传输,但对于某一个特定设计,数据传输的方向是确定的。总线宏的数量受FPGA中水平方向上可用的长线资源的数量限制。
3 动态局部重构应用于可靠系统
芯片级或者板级的容错设计需要一块额外电路板或芯片,在系统的成本、面积、功耗方面都会造成很大的代价。而FPGA具有丰富的逻辑资源和良好的可编程、可重构特性,利用其空闲逻辑资源进行片内的冗余容错设计以提高系统可靠性,在硬件资源冗余度上有着巨大优势。基于SRAM的FPGA的岛式结构具有逻辑资源可编程、互联结构可编程和IO接口可编程的多重可编程特性,是通过冗余容错设计实现可靠系统的最佳硬件平台。Xilinx FPGA的动态局部重构特性能够显著降低FPGA的配置数据量和重构时隙,将其应用到冗余容错设计当中,可以同时节省系统的存储器空间、系统配置时间和配置数据通道位宽,因此局部可重构FPGA是高可靠性系统的最佳实现平台。
参考文献:
[1]Eric Chmelar,The Test and Diagnosis of FPGAS,Dissertation for the degree of Doctor of Philosophy,Stanford University,2004.
[2]杨士元,数字系统的故障诊断与可靠性设计(第二版),北京:清华大学出版社,2000.
作者简介:
戴林兴(1989-),男,浙江人,天津工业大学信息与通信工程学院,研究方向:通信工程。