技术领域
[0001] 本
发明涉及集成
电路技术领域,特别是指一种自愈管理控制器、SoC及自愈方法。
背景技术
[0002] 随着集成电路特征尺寸的不断缩小,SoC可靠性问题日益严峻,当SoC芯片出现功能性故障或者可靠性故障时,传统的纠错方法主要是模
块冗余方法。然而,关键部件完全备份(如三模冗余)的方法,存在资源开销大和环境自适应能
力低的问题;对于可重构
硬件,除了模块冗余容错方法外,通过增加额外处理器控制系统实现避开故障区的重构也是其主要的容错方法,但增加额外控制器实现重构的方法,其容错控制
算法复杂、重构时间长,且当控制器发生故障时重构将无法实现。
[0003] 在可靠性集成电路SoC芯片设计中,其中很有意义的一块是如何通过SoC自愈技术有效的提高SoC芯片的运行寿命,增强相关
电子设备的可靠性,这是关系到通用电子设备SoC器件可靠性
水平的一项重要
质量保证。
发明内容
[0004] 本发明所要解决的技术问题是提供一种自愈管理控制器、SoC及自愈方法,其使用嵌入式FPGA替代SoC中的故障IP核,通过在嵌入式FPGA中对故障IP核进行逻辑重构并更改模块间互连关系,达到对SoC中故障IP核的功能修复。
[0005] 为解决上述技术领域问题,本发明采用的技术方案是:一种自愈管理控制器,用于对SoC进行自愈控制,所述SoC包括IP核以及与IP核通过多路选择器相并联的嵌入式FPGA;该自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述寄存器模块包括故障标识寄存器和控制信息寄存器,所述故障标识寄存器用于标识SoC中IP核的运行状态,所述控制信息寄存器用于存储CPU发来的多路选择器控制信息,所述Tap控制器根据多路选择器控制信息通过JTAG链更改SoC中相应多路选择器的控制位;所述CPU用于执行如下程序:
(1)轮询读取故障标识寄存器,当识别到故障IP核时执行步骤(2);
(2)将对应于故障IP核的控制信息存储到控制信息寄存器中,同时,将用于替代故障IP核的码流信息写入到相应的嵌入式FPGA中,完成自愈控制。
[0006] 一种具有自愈功能的SoC,包括IP核,还包括自愈管理控制器以及与IP核通过多路选择器相并联的嵌入式FPGA;所述自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述Tap控制器通过JTAG链与各多路选择器连接;所述寄存器模块包括故障标识寄存器和控制信息寄存器,所述故障标识寄存器用于标识各IP核的运行状态,所述控制信息寄存器用于存储CPU发来的针对多路选择器的控制信息;所述Tap控制器根据所述控制信息,通过更改相应多路选择器的控制位,改变互连关系,使相应的嵌入式FPGA替代故障IP核;所述CPU用于执行如下程序:(1)轮询读取故障标识寄存器,当识别到故障IP核时执行步骤(2);
(2)将对应于故障IP核的控制信息存储到控制信息寄存器中,同时,将用于替代故障IP核的码流信息写入到相应的嵌入式FPGA中,完成自愈控制。
[0007] 进一步地,所述SoC的总线外设类IP核共同与同一个嵌入式FPGA通过一多路选择器相并联。
[0008] 进一步地,所述SoC的
加速器中的多级IP核共同对应于同一个嵌入式FPGA,多级IP核中的每一个IP核分别通过一多路选择器与该嵌入式FPGA相并联。
[0009] 进一步地,还包括FLASH
存储器,所有用于替代故障IP核的码流信息均预先存储在该FLASH存储器中。
[0010] 一种基于嵌入式FPGA的SoC自愈方法,应用于具有自愈管理控制器和FLASH存储器的SoC,所述自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述寄存器模块包括故障标识寄存器和控制信息寄存器;包括以下步骤:(1)对SoC中各IP核进行分类,为加速器及总线外设IP核分配嵌入式FPGA;
(2)将嵌入式FPGA与相应的IP核通过多路选择器相并联;
(3)使用JTAG链将多路选择器与Tap控制器连接,将各IP核的运行状态输出
接口与所述故障标识寄存器连接,并将FLASH存储器与各嵌入式FPGA连接;
(4)通过自愈管理控制器的CPU进行定时巡检,读取故障标识寄存器,识别发生故障的IP核;
(5)当识别到故障IP核时,关闭SoC系统时钟,CPU输出多路选择器控制信息到控制信息寄存器中, Tap控制器通过JTAG链更改更改相应多路选择器的控制位,改变互连关系,屏蔽掉故障IP核;
(6)自愈管理控制器从FLASH存储器中读取用于替代故障IP核的码流信息,并将该码流信息写入相应的嵌入式FPGA,使该嵌入式FPGA代替故障IP核;
(7)开启SoC系统时钟,嵌入式FPGA接替故障IP核继续工作,完成SoC的自愈。
[0011] 采用上述技术方案带来的有益效果是:1.本发明提供了一种新型的基于嵌入式FPGA的SoC自愈技术,可以利用嵌入式FPGA对故障模块进行逻辑重构,替换故障模块完成SoC自愈,延长SoC的使用寿命,提高SoC的可靠性。
[0012] 2.本发明中自愈管理控制器能够实时监测SoC中各IP核的工作状态,一旦某个IP核发生故障,自愈管理控制器可以识别出故障IP核,通过JTAG扫描链更改连接关系,并在嵌入式FPGA中对故障IP核进行逻辑重构,保障了SoC的不间断工作。
[0013] 3.本发明中一个嵌入式FPGA可以作为SoC中多个IP核的备份,其中某个IP核发生故障,均能由该嵌入式FPGA进行逻辑重构完成自愈,极大地节省了自愈逻辑资源开销。
附图说明
[0014] 图1 是本发明
实施例中自愈方法的
流程图。
[0015] 图2是本发明实施例中具有自愈功能SoC的整体结构示意图。
[0016] 图3是本发明实施例中自愈管理控制器的结构示意图。
具体实施方式
[0017] 下面结合附图和具体实施方式对本发明做进一步的说明。
[0018] 一种自愈管理控制器,用于对SoC进行自愈控制,所述SoC包括IP核以及与IP核通过多路选择器相并联的嵌入式FPGA;该自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述寄存器模块包括故障标识寄存器和控制信息寄存器,所述故障标识寄存器用于标识SoC中IP核的运行状态,所述控制信息寄存器用于存储CPU发来的多路选择器控制信息,所述Tap控制器根据多路选择器控制信息通过JTAG链更改SoC中相应多路选择器的控制位;所述CPU用于执行如下程序:(1)轮询读取故障标识寄存器,当识别到故障IP核时执行步骤(2);
(2)将对应于故障IP核的控制信息存储到控制信息寄存器中,同时,将用于替代故障IP核的码流信息写入到相应的嵌入式FPGA中,完成自愈控制。
[0019] 一种具有自愈功能的SoC,包括IP核,还包括自愈管理控制器以及与IP核通过多路选择器相并联的嵌入式FPGA;所述自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述Tap控制器通过JTAG链与各多路选择器连接;所述寄存器模块包括故障标识寄存器和控制信息寄存器,所述故障标识寄存器用于标识各IP核的运行状态,所述控制信息寄存器用于存储CPU发来的针对多路选择器的控制信息;所述Tap控制器根据所述控制信息,通过更改相应多路选择器的控制位,改变互连关系,使相应的嵌入式FPGA替代故障IP核;所述CPU用于执行如下程序:(1)轮询读取故障标识寄存器,当识别到故障IP核时执行步骤(2);
(2)将对应于故障IP核的控制信息存储到控制信息寄存器中,同时,将用于替代故障IP核的码流信息写入到相应的嵌入式FPGA中,完成自愈控制。
[0020] 进一步地,所述SoC的总线外设类IP核共同与同一个嵌入式FPGA通过一多路选择器相并联。
[0021] 进一步地,所述SoC的加速器中的多级IP核共同对应于同一个嵌入式FPGA,多级IP核中的每一个IP核分别通过一多路选择器与该嵌入式FPGA相并联。
[0022] 进一步地,还包括FLASH存储器,所有用于替代故障IP核的码流信息均预先存储在该FLASH存储器中。
[0023] 一种基于嵌入式FPGA的SoC自愈方法,应用于具有自愈管理控制器和FLASH存储器的SoC,所述自愈管理控制器包括CPU、寄存器模块和Tap控制器,所述寄存器模块包括故障标识寄存器和控制信息寄存器;包括以下步骤:(1)对SoC中各IP核进行分类,为加速器及总线外设IP核分配嵌入式FPGA;
(2)将嵌入式FPGA与相应的IP核通过多路选择器相并联;
(3)使用JTAG链将多路选择器与Tap控制器连接,将各IP核的运行状态输出接口与所述故障标识寄存器连接,并将FLASH存储器与各嵌入式FPGA连接;
(4)通过自愈管理控制器的CPU进行定时巡检,读取故障标识寄存器,识别发生故障的IP核;
(5)当识别到故障IP核时,关闭SoC系统时钟,CPU输出多路选择器控制信息到控制信息寄存器中, Tap控制器通过JTAG链更改更改相应多路选择器的控制位,改变互连关系,屏蔽掉故障IP核;
(6)自愈管理控制器从FLASH存储器中读取用于替代故障IP核的码流信息,并将该码流信息写入相应的嵌入式FPGA,使该嵌入式FPGA代替故障IP核;
(7)开启SoC系统时钟,嵌入式FPGA接替故障IP核继续工作,完成SoC的自愈。
[0024] 具体来说,如图1所示,一种基于嵌入式FPGA的SoC自愈方法,包括以下具体步骤:步骤1:按功能分类SoC各模块(即IP核),按照功能分类列举出可以通过嵌入式FPGA逻辑重构完成自愈的模块;
在本实施例中,整体的SoC自愈电路结构如图2所示,主要包括CPU、RAM、ROM、
系统总线、总线外设、加速器、嵌入式FPGA和自愈管理控制器。其中为了节省逻辑开销,一般原则是使多个小模块能够共享一块嵌入式FPGA来完成逻辑重构,基于此,SoC电路中多个外设模块可以共享一块嵌入式FPGA,当任何一个外设模块发生故障均可由该嵌入式FPGA完成自愈;加速器中各流水线层级可以共享一块嵌入式FPGA,任何一个外设模块发生故障均可由该嵌入式FPGA完成自愈。
[0025] 步骤2:插入MUX(多路选择器)单元并使用JTAG链连接:在可通过嵌入式FPGA完成逻辑重构的模块与FPGA之间插入MUX单元,并将MUX单元通过JTAG链连接;SoC中各模块进行分类后,对需要通过嵌入式FPGA进行逻辑重构完成自愈的模块与嵌入式FPGA之间插入MUX单元,图2中外设1、外设2和外设3共享与嵌入式FPGA插入一个MUX单元;加速器中Stage1、Stage2和Stage3与嵌入式FPGA插入MUX单元。然后JTAG链连接所有的MUX单元,以便发生模块故障后, JTAG链可以更改MUX单元选择值来改变各模块的互连关系。
[0026] 步骤3:建立自愈管理控制器及相关连接:设计自愈管理控制器来识别故障模块并通过JTAG链更改模块互连完成自愈。
[0027] 建立如图3所示的自愈管理控制器电路,一是用来识别SoC中故障模块并通过JTAG链更改模块互连关系完成自愈;二是建立外部FLASH与嵌入式FPGA的连接,用于搬移FLASH中码流信息到嵌入式FPGA中对故障模块完成逻辑重构。
[0028] 图3自愈管理控制器电路主要包含CPU、系统总线、寄存器模块、ROM和Tap控制器。其中ROM中保存CPU需要运行的用于监测识别故障模块的程序;程序运行时,CPU轮询读取寄存器模块中标识SoC中各功能模块运行状态的寄存器,判断出发生故障的模块;然后读取外部FLASH中预存的码流信息,并写入到相应的嵌入式FPGA完成逻辑重构;最后通过Tap控制器控制JTAG链完成模块连接关系的更改,使嵌入式FPGA替代故障模块继续工作。
[0029] 步骤4:识别故障模块:CPU读取寄存器模块中的各功能模块运行状态信息,识别出故障模块。
[0030] 寄存器模块中对于可以通过嵌入式FPGA完成自愈的各功能模块均有相对应的状态寄存器,CPU会通过轮询读取的方式读取各状态寄存器,根据模块故障预测算法判断各模块的工作状态变化,从而识别出发生故障的模块。
[0031] 步骤5:关闭系统时钟,更改互连结构屏蔽故障模块:通过JTAG链更改各MUX选择值,屏蔽故障模块。
[0032] 当CPU识别出故障模块后,首先关闭系统时钟,中止当前工作,开启SoC自愈流程,然后根据连接故障模块的MUX单元在JTAG链中的
位置,CPU组建恰当的码流信息通过JTAG链逐位写入MUX单元,屏蔽故障模块,切换到相对应的嵌入式FPGA。
[0033] 步骤6:嵌入式FPGA逻辑重构:从外部FLASH读取故障模块码流信息,写入嵌入式FPGA完成故障模块逻辑重构。
[0034] 自愈管理控制器识别出故障模块后,读取预存在外部FLASH中的故障模块码流信息,通过嵌入式FPGA专用端口加载到FPGA中,在嵌入式FPGA中对故障模块进行逻辑重构。
[0035] 步骤7:开启系统时钟,完成自愈:嵌入式FPGA替换故障模块后,重新开启系统时钟,故障模块的后续工作在嵌入式FPGA中继续完成。
[0036] 总之,本发明自愈管理控制器能够实时监测SoC中各模块的工作状态,一旦某个模块发生故障,自愈管理控制器可以识别出故障模块,通过JTAG扫描链更改模块连接关系,并用FPGA对故障模块进行逻辑重构,替换故障模块完成SoC自愈,极大地节省了自愈逻辑资源开销,延长了SoC的使用寿命,提高了SoC的可靠性。
[0037] 需要注意的是,以上所述仅为本发明的一种具体的实施方式。本发明的保护范围并不局限于此,任何熟悉
本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。