一种触发器状态保持电路及方法与流程

文档序号:30449411发布日期:2022-06-18 01:31阅读:498来源:国知局
一种触发器状态保持电路及方法与流程

1.本发明涉及集成电路技术领域,尤其涉及一种触发器状态保持电路及方法。


背景技术:

2.在集成电路(ic)块上电工作过程中,为了节省功耗,会让部分电路(例如触发器)进入掉电状态,在需要掉电电路工作的时候,系统要快速对掉电电路进行恢复并使其继续工作。为了对掉电电路进行恢复,传统方法通常是采用对掉电电路进行上电复位,使掉电电路进入reset状态,其存在的问题是掉电电路重新上电恢复时的初始状态是reset状态,而不是掉电前的状态,掉电电路无法基于掉电前的状态继续工作;此外,在对掉电电路进行上电复位的过程中,系统需要进行一系列初始化等恢复操作,这导致系统恢复时间很长。
3.为了解决该问题,目前的解决方案是将触发器(寄存器)的数据转移到存储器中进行存储,以便在掉电电路恢复时能够进入掉电前的状态。然而受存储器储存数据宽度的限制,触发器的数据完全转移到存储器中需要较长的时间,进而延长了系统进入低功耗模式以及退出低功耗模式的时间;此外,由于存储器在某种条件下会触发软失效的机制,导致存储的数据的某个数据位发生变化,从而在对掉电电路进行恢复时,导致某个触发器的数据存在错误,这种情况下有可能导致系统崩溃。
4.另外一种解决方案是利用状态保持功率门控寄存器(srpg寄存器)来保持电路掉电时的状态,但该方法存在两个问题,其一是srpg寄存器单元的面积比传统的寄存器单元的面积要大20%以上,其增加了芯片面积;其二是增加的srpg寄存器需要一直供电,这会消耗额外的功耗以及额外的电源布线。
5.因此本技术提供了一种触发器状态保持电路及方法,其能够克服现有技术存在的上述技术问题。


技术实现要素:

6.为了克服现有技术的不足,本技术提供了一种触发器状态保持电路及方法,本发明的技术方案如下:一种触发器状态保持方法,所述方法包括如下步骤:步骤1:检测到系统进入低功耗模式的请求;步骤2:系统控制模块发送控制信号至待保存模块,以使得所述待保存模块进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;其中,在将所述待保存模块中的所有触发器连接成扫描链时,对扫描链进行重组,将关键的触发器与非关键触发器分别连接成多条不同的扫描链,把关键的触发器放置于预定的扫描链上,并对重组后的不同扫描链定义不同的重要等级;步骤3:通过所述扫描链将所述触发器的数据移位至数据保存控制模块中的第二ecc编码单元;步骤4:所述第二ecc编码单元为所述数据生成第二ecc纠错码,并将其发送至所述
数据保存控制模块中的压缩单元;步骤5:所述压缩单元对数据进行压缩,并将压缩后的数据传输至所述数据保存控制模块中的第一ecc编码单元;步骤6:所述第一ecc编码单元为所述压缩后的数据生成第一ecc纠错码,并将其发送至所述数据保存控制模块中的数据写入控制单元;步骤7:所述数据写入控制单元将数据写入至sram;步骤8:当所有数据都写入完毕并保存至所述sram时,切断待保存模块、数据保存控制模块、数据恢复控制模块的供电,使系统进入低功耗模式;步骤9:检测到系统退出低功耗模式的请求,恢复对所述待保存模块、数据保存控制模块、数据恢复控制模块的供电;步骤10:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块重新进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;步骤11:所述数据恢复控制模块中的数据读取控制单元读取保存在所述sram中的数据,并将所述数据发送至所述数据恢复控制模块中的第一ecc解码单元;步骤12:所述第一ecc解码单元基于所述第一ecc纠错码对所述数据进行检查,判断所述数据是否存在错误以及错误是否能够被修复;若数据没有错误,则将所述数据发送至所述数据恢复控制模块中的解压缩单元,并执行步骤13;若数据存在错误,则对错误数据进行修复,当错误数据已完成修复,则将修复后的正确数据发送至所述解压缩单元,并执行步骤13;若数据存在错误,且错误不可修复,则根据所述数据是否是关键扫描链数据以及该数据对应的扫描链的重要等级进而判断错误等级,若错误等级低则继续执行步骤13,若错误等级高,则系统进行异常工作模式,并发送通知至系统控制模块和用户以便决定下一步操作;步骤13:所述解压缩单元对输入的数据进行解压缩,并将解压缩后的数据发送至所述数据恢复控制模块中的第二ecc解码单元;步骤14:第二ecc解码单元基于所述第二ecc纠错码对所述数据进行检查,判断数据是否存在错误以及错误是否能够被修复;若数据没有错误,则执行步骤15;若数据存在错误,则对错误数据进行修复,当错误数据已完成修复,执行步骤15;若数据存在错误,且错误不可修复,则根据所述数据是否是关键扫描链数据以及该数据对应的扫描链的重要等级进而判断错误等级,若错误等级低则继续执行步骤15,若错误等级高,则系统进行异常工作模式,并发送通知至系统控制模块和用户以便决定下一步操作;步骤15:将数据移位至所述待保存模块,当所有数据都移位至所述待保存模块,切断所述数据恢复控制模块的供电,以及控制待保存模块退出扫描模式进入正常工作状态;步骤16:所述待保存模块恢复掉电前的状态进行下一步操作。
7.特别地,所述第一ecc解码单元和所述第二ecc解码单元能够对触发器的数据进行检查并修复错误的数据;在错误的数据无法修复时,所述数据恢复控制模块向系统控制模块发送ecc错误标志(ecc_error_flag)以提示有不可纠正的错误,并通过ecc错误标志来定位错误的触发器并提示对应的风险等级。
8.特别地,还公开了一种触发器状态保持电路,所述触发器状态保持电路用于执行上述触发器状态保持方法。
9.区别于现有技术中串行扫描链在进行数据存储时受存储器存储数据宽度的限制,本技术将所有触发器连接成多条重要等级不同的并行的扫描链,因此本技术可以对并行数据进行压缩和存储,可以一次性将并行输出的数据压缩成存储器的数据宽度,从而可以控制扫描链的长度,降低了对sram的数据端口的宽度要求,大幅度减少了把待保存的触发器数据保存至sram的时间和把sram数据还原至触发器的时间,进而大大降低了系统进入和退出低功耗模式所花费的时间;本技术还通过ecc编码和ecc解码来检测数据可能存在的错误,并对错误的数据进行修复,保证了数据的完整性和准确性,提高了系统的可恢复性和可靠性;特别的,本技术通过在数据保存控制模块的两个特定位置设置了两个ecc编码单元,以及在数据恢复控制模块的两个特定位置设置了两个ecc解码单元,通过第一ecc编码单元和第一ecc解码单元能够保证从sram中移位出来的数据的准确性;同时通过第二ecc编码单元和第二ecc解码单元能够保证解压缩后的数据的准确性,从而在同时保证了sram存储数据过程及解压缩过程中数据的准确性的前提下,使得系统能够准确、快速的恢复到掉电前的状态,避免了在sram存储数据过程中出现错误以及在解压缩过程中出现错误时所导致的数据恢复错误,甚至系统崩溃问题;此外,区别于现有技术中将所有的触发器顺序连接成扫描链,在数据恢复出现错误时,难以对错误进行定位及判断的问题,本技术在将待保存模块中的所有触发器连接成扫描链时,对扫描链进行重组,将关键的触发器与非关键触发器分别连接成多条不同的并行的扫描链,把关键的触发器放置于预定的扫描链上,并对重组后的不同扫描链定义不同的重要等级,在数据存在错误,且错误不可修复时,则根据所述数据是否是关键扫描链数据以及该数据对应的扫描链的重要等级进而判断错误等级,根据错误等级选择相应的处理方式,因此本技术在发现不可修复的错误时,能够快速定位出是否是关键/安全相关的扫描链以及是扫描链的哪个触发器出现错误以及对应的错误等级,并及时对系统及用户进行提醒,以采取相应的措施,进而提高了系统的可恢复性、可操作性、安全性和运行效率;除此之外,本技术不需要复杂的电路结构和特殊的后端处理,电路结构简单容易实现;本技术的其他有益效果可从具体实施例中得到。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1为本技术第一实施例提供的一种触发器状态保持电路的电路示意图;图2为本技术第二实施例提供的一种触发器状态保持电路的电路示意图;图3 为本技术第三实施例提供的一种触发器状态保持电路的电路示意图;图4为本技术第三实施例提供的一种触发器状态保持方法的流程图;图5为本技术第二、三实施例对应的系统状态切换示意图。
具体实施方式
12.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
13.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
14.需要说明的是,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
15.在本技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
16.下面结合附图,对本技术的一些实施方式作详细说明。
17.第一实施例参见图1,图1为本技术提供的一种触发器状态保持电路的第一实施例。如图1所示,所述触发器状态保持电路包括:待保存模块(mus:module under store)、系统控制模块(sys con)、数据保存控制模块、数据恢复控制模块以及sram。其中所述待保存模块与所述数据保存控制模块连接,所述数据保存控制模块与所述sram连接,所述sram与所述数据恢复控制模块连接,所述数据恢复控制模块与所述待保存模块连接,所述系统控制模块与所述待保存模块、数据保存控制模块、数据恢复控制模块连接。
18.所述待保存模块为集成电路系统的一部分,当集成电路系统进入低功耗模式时,部分电路进入掉电状态,该部分电路的全部可用于构成所述待保存模块,或者该部分电路的部分可用于构成所述待保存模块,本技术对此不作限制。所述待保存模块能够在低功耗模式下进入掉电状态,并在退出低功耗模式时,迅速恢复为掉电之前的状态并继续工作。所述待保存模块包括多个触发器,但不限于触发器,所述待保存模块还可以包括其他待数据保存的电路结构。当进入或退出低功耗模式时,所述系统控制模块控制所述待保存模块进入扫描模式,从而使得所述待保存模块中的所有触发器连接成扫描链。
19.所述系统控制模块能够控制系统在低功耗模式与正常工作模式之间进行切换;所述系统控制模块还能够控制所述待保存模块进入扫描模式从而使得所述待保存模块中的所有触发器连接成扫描链;所述系统控制模块还能够对所述数据保存控制模块进行控制,以保存所述触发器的数据,或对所述数据恢复控制模块进行控制,以恢复所述触发器的数据;所述系统控制模块不限于上述功能,其还能够用于实现集成电路系统的其他功能,例如复位、时钟控制等功能。
20.所述数据保存控制模块能够对待保存模块的输出数据进行压缩,并将压缩后的数
据写入至所述sram。具体地,所述数据保存控制模块包括:压缩单元(compressor)、数据写入控制单元(write cntrl)。所述压缩单元与所述待保存模块连接,当所述待保存模块中的触发器的数据通过所述扫描链移位至所述压缩单元时,所述压缩单元对所述触发器的数据进行压缩,得到压缩后的数据,并将压缩后的数据传输至所述数据写入控制单元,所述数据写入控制单元连接于所述压缩单元与所述sram之间,所述数据写入控制单元用于接收所述压缩后的数据并将所述压缩后的数据写入至所述sram。
21.所述sram用于在低功耗模式下对所述压缩后数据进行保存。
22.所述数据恢复控制模块能够读取所述sram中的数据,并对所述数据进行解压缩,并通过扫描链将所述解压缩后的数据移位至所述待保存模块。具体地,所述数据恢复控制模块包括:数据读取控制单元(read cntrl)、解压缩单元(decompressor)。所述数据读取控制单元与所述sram连接,所述数据读取控制单元用于读取所述sram中的所述压缩后的数据,并将所述压缩后的数据发送至所解压缩单元,所述解压缩单元连接于所述数据读取控制单元与所述待保存模块之间,所述解压缩单元对所述压缩后的数据进行解压缩,得到解压缩后的数据,以及将所述解压缩后的数据通过扫描链传输至所述待保存模块。
23.针对实施例一,本技术还提供了一种触发器状态保持方法,该方法包括如下步骤(本技术不对下述步骤进行限制,在不矛盾的情况下可对下述步骤进行调整,例如调整部分步骤的先后顺序,或对步骤进行拆分或合并,或省略部分步骤,或基于其他实施例增加部分步骤):步骤1:检测到系统进入低功耗模式的请求;步骤2:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块进入扫描模式,所述待保存模块中的所有触发器连接成多条并行的扫描链;步骤3:通过所述扫描链将所述触发器的数据移位至所述数据保存控制模块;步骤4:所述数据保存控制模块对所述数据进行压缩,并将压缩后的数据写入至所述sram;步骤5:判断所有数据是否都写入完毕并保存至所述sram,如果是,则执行步骤6;如果否,则继续执行步骤3-4直至所有数据都写入完毕并保存至所述sram;步骤6:所述数据保存控制模块发送数据保存完毕信号至所述系统控制模块,所述系统控制模块接收所述数据保存完毕信号,并切断所述待保存模块、数据保存控制模块、数据恢复控制模块的供电,使系统进入低功耗模式;步骤7:检测到系统退出低功耗模式的请求,恢复对所述待保存模块、数据保存控制模块、数据恢复控制模块的供电;步骤8:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块重新进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;步骤9:所述数据恢复控制模块读取保存在所述sram中的压缩后的数据,并对所述压缩后的数据进行解压缩,并通过所述扫描链将所述解压缩后的数据移位至所述待保存模块;步骤10:判断所有数据是否都移位完毕并保存至所述待保存模块,如果是,则执行步骤11;如果否,则继续执行步骤9直至所有数据都移位完毕并保存至所述待保存模块;步骤11:当所有数据都移位完毕时,所述数据恢复控制模块发送数据恢复完毕信
号至所述系统控制模块,所述系统控制模块接收所述数据恢复完毕信号,并切断所述数据恢复控制模块的供电,以及控制所述待保存模块退出扫描模式进入正常工作状态;步骤12:所述待保存模块恢复掉电前的状态继续工作。
24.本技术通过多条并行扫描链对待保存的触发器的数据进行移位,在移位后,通过压缩单元对并行数据进行压缩并写入sram(本技术可以一次性将并行输出的数据压缩成sram的数据宽度),从而减少了将待保存的触发器的数据移位至sram的时间,避免(或降低)了受sram储存数据宽度的限制的影响,进而大大降低了系统进入低功耗模式所花费的时间。此外,本技术在对触发器的数据进行恢复时,同样也减少了从sram中读取数据的时间,进而大大降低了系统退出低功耗模式所花费的时间。
25.第二实施例参见附图2,本技术第二实施例在第一实施例的基础上,在所述数据保存控制模块中增加了第一ecc编码单元(ecc encoder,ecc:error correcting code),所述第一ecc编码单元连接于所述压缩单元与所述数据写入控制单元之间;以及在所述数据恢复控制模块中增加了第一ecc解码单元(ecc decoder),所述第一ecc解码单元连接于所述解压缩单元与所述数据读取控制单元之间。
26.下面仅详述本实施例相对实施例一的改进之处,除改进之处外的其他模块/单元的工作方式可参照实施例一,本实施例不再赘述。
27.本实施例的数据保存控制模块包括:压缩单元、第一ecc编码单元、数据写入控制单元,其中所述压缩单元连接所述第一ecc编码单元,所述第一ecc编码单元连接所述数据写入控制单元。
28.具体地,在低功耗模式下,当待保存模块中的触发器的数据通过所述扫描链移位至所述数据保存控制模块时,所述压缩单元对所述触发器的数据进行压缩,得到压缩后的数据,并将压缩后的数据传输至所述第一ecc编码单元,所述第一ecc编码单元为所述压缩后的数据生成第一ecc纠错码,并将加入第一ecc纠错码后的压缩数据传输至所述数据写入控制单元,所述数据写入控制单元将加入第一ecc纠错码后的压缩数据写入至所述sram。
29.本实施例的数据恢复控制模块包括:数据读取控制单元、第一ecc解码单元、解压缩单元,其中所述数据读取控制单元连接所述第一ecc解码单元,所述第一ecc解码单元连接所述解压缩单元。
30.具体地,在退出低功耗模式时,所述数据读取控制单元用于读取所述sram中的所述加入第一ecc纠错码后的压缩数据,并将其发送至所述第一ecc解码单元,所述第一ecc解码单元基于所述第一ecc纠错码对所述压缩数据进行检查,若存在数据错误,则修复错误数据,所述第一ecc解码单元将经过检查没有问题或经过修复后的正确的压缩数据输出至所述解压缩单元,所述解压缩单元对压缩数据进行解压缩,得到解压缩后的数据,以及将所述解压缩后的数据通过扫描链传输至所述待保存模块。
31.针对实施例二,本技术还提供了一种触发器状态保持方法,该方法包括如下步骤(本技术不对下述步骤进行限制,在不矛盾的情况下可对下述步骤进行调整,例如调整部分步骤的先后顺序,或对步骤进行拆分或合并,或省略部分步骤,或基于其他实施例增加部分步骤):步骤1:检测是否接收到系统进入低功耗模式的请求,如果否,则集成电路继续正
常工作;如果是,则所述系统控制模块对所述数据保存控制模块进行初始化,并控制所述数据保存控制模块进入开始工作状态;步骤2:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;具体地,例如,其中所有触发器连接成k条并行的扫描链。
32.步骤3:通过所述扫描链将所述触发器的数据移位至所述压缩单元;具体地,每一个时钟节拍内,向所述压缩单元输出k位数据。
33.步骤4:所述压缩单元对所述数据进行压缩,并将压缩后的数据传输至所述第一ecc编码单元;具体地,所述压缩单元将k位数据压缩为m位数据,并将m位数据发送至所述第一ecc编码单元。
34.步骤5:所述第一ecc编码单元为所述压缩后的数据生成第一ecc纠错码,并将其发送至所述数据写入控制单元;具体地,所述第一ecc编码单元为所述m位压缩数据生成n位第一ecc纠错码,得到m+n位数据,并将其发送至所述数据写入控制单元。
35.步骤6:所述数据写入控制单元将所述第一ecc编码单元输出的数据写入至所述sram;具体地,所述数据写入控制单元将所述m+n位数据写入所述sram。
36.步骤7:判断所有数据是否都写入完毕并保存至所述sram,如果是,则执行步骤8;如果否,则继续执行步骤3-6直至所有数据都写入完毕并保存至所述sram;步骤8:所述数据保存控制模块发送数据保存完毕信号至所述系统控制模块,所述系统控制模块接收所述数据保存完毕信号,并切断所述待保存模块、数据保存控制模块、数据恢复控制模块的供电,使系统进入低功耗模式;步骤9:检测是否接收到系统退出低功耗模式的请求,如果否,则集成电路系统继续保持低功耗模式工作状态;如果是,则恢复对所述待保存模块、数据保存控制模块、数据恢复控制模块的供电,所述系统控制单元对所述数据恢复控制模块进行初始化,并控制所述数据恢复控制模块进入开始工作状态;步骤10:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块重新进入扫描模式,所述待保存模块中的所有触发器连接成扫描链。
37.具体地,其中所有触发器连接成k条并行的扫描链。
38.步骤11:所述数据恢复控制模块中的数据读取控制单元读取保存在所述sram中的数据,并将所述数据发送至所述第一ecc解码单元;具体地,所述数据读取控制单元读取保存在所述sram中的m+n位数据,并其发送至所述第一ecc解码单元。
39.步骤12:所述第一ecc解码单元基于所述第一ecc纠错码对所述数据进行检查,判断所述数据是否存在错误以及错误是否能够被修复;若数据没有错误,则将所述数据发送至所述解压缩单元,并则执行步骤13;若数据存在错误,则对错误数据进行修复,当错误数据已完成修复,则将修复后的正确数据发送至所述解压缩单元,并执行步骤13;若数据存在错误,且错误不可修复,则判断错误等级,若错误等级低则继续执行步骤13,若错误等级高,
则系统进行异常工作模式,并发送通知至系统控制模块和用户以便决定下一步操作;步骤13:所述解压缩单元对输入的数据进行解压缩,并通过所述扫描链将所述解压缩后的数据移位至所述待保存模块;具体地,所述解压缩单元对所述m位压缩数据进行解压缩,得到k位待恢复的触发器数据,并将所述k位待恢复的触发器数据通过k条扫描链移位至所述待保存模块。
40.步骤14:判断所有数据是否都移位完毕并保存至所述待保存模块,如果是,则执行步骤15;如果否,则继续执行步骤11-13直至所有数据都移位完毕并保存至所述待保存模块;步骤15:当所有数据都移位完毕时,所述数据恢复控制模块发送数据恢复完毕信号至所述系统控制模块,所述系统控制模块接收所述数据恢复完毕信号,并切断所述数据恢复控制模块的供电,以及控制待保存模块退出扫描模式进入正常工作状态;步骤16:所述待保存模块恢复掉电前的状态继续工作。
41.实施例二除了具有实施例一的优点/技术效果之外,在实施例一的基础上加入了第一ecc编码单元和第一ecc解码单元,通过第一ecc编码单元为经过压缩单元压缩后的数据生成第一ecc纠错码,并通过第一ecc解码单元基于第一ecc纠错码检测从sram读出的数据可能存在的错误,并对错误的数据进行修复,保证了在sram存储数据过程中可能出现的错误,进而保证了所述数据恢复控制模块能够将正确的触发器数据移位至所述待保存模块,从而在系统退出低功耗模式时,所述待保存模块的触发器能够迅速且无误的恢复至掉电前的状态,避免了现有技术中由于恢复后的触发器的数据存在错误而导致的系统崩溃等问题,进而提高了系统的可恢复性以及可靠性。
42.第三实施例参见附图3-4,本技术第三实施例在第二实施例的基础上,在所述数据保存控制模块中增加了第二ecc编码单元,所述第二ecc编码单元连接于所述待保存模块与所述压缩单元之间;以及在所述数据恢复控制模块中增加了第二ecc解码单元,所述第二ecc解码单元连接于所述解压缩单元与所述待保存模块之间。
43.下面仅详述本实施例相对实施例二的改进之处,除改进之处外的其他模块/单元的工作方式可参照实施例二,本实施例不再赘述。
44.本实施例的数据保存控制模块包括:依次连接的第二ecc编码单元、压缩单元、第一ecc编码单元、数据写入控制单元。
45.具体地,在低功耗模式下,当待保存模块中的触发器的数据通过所述扫描链移位至所述数据保存控制模块中的第二ecc编码单元时,所述第二ecc编码单元为所述触发器的数据生成第二ecc纠错码,并将其发送至所述压缩单元,所述压缩单元对所述数据进行压缩,得到压缩后的数据,并将压缩后的数据传输至所述第一ecc编码单元,所述第一ecc编码单元为压缩后的数据生成第一ecc纠错码,并将加入第一ecc纠错码后的压缩数据传输至所述数据写入控制单元,所述数据写入控制单元将加入第一ecc纠错码后的压缩数据写入至所述sram。
46.本实施例的数据恢复控制模块包括:依次连接的数据读取控制单元、第一ecc解码单元、解压缩单元、第二ecc解码单元。
47.具体地,在退出低功耗模式时,所述数据读取控制单元用于读取所述sram中的所
述加入第一ecc纠错码后的压缩数据,并将其发送至所述第一ecc解码单元,所述第一ecc解码单元基于所述第一ecc纠错码对所述压缩数据进行检查,若存在数据错误,则修复错误数据,并将经过检查没有错误或经过修复后的正确的压缩数据输出至所述解压缩单元,所述解压缩单元对所述压缩数据进行解压缩,得到解压缩后的数据,并将所述解压缩后的数据传输至所述第二ecc解码单元,所述第二ecc解码单元基于所述第二ecc纠错码对所述解压缩后的触发器的待恢复数据进行检查,若存在数据错误,则修复错误数据,并将经过检查没有错误或经过修复后的正确的触发器数据通过扫描链传输至所述待保存模块。
48.针对实施例三,本技术还提供了一种触发器状态保持方法,该方法包括如下步骤(本技术不对下述步骤进行限制,在不矛盾的情况下可对下述步骤进行调整,例如调整部分步骤的先后顺序,或对步骤进行拆分或合并,或省略部分步骤,或基于其他实施例增加部分步骤):步骤1:检测是否接收到系统进入低功耗模式的请求,如果否,则集成电路继续正常工作;如果是,所述系统控制模块对所述数据保存控制模块进行初始化,并控制所述数据保存控制模块进入开始工作状态;步骤2:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;具体地,例如,其中所有触发器连接成k条并行的扫描链。
49.步骤3:通过所述扫描链将所述触发器的数据移位至所述第二ecc编码单元;具体地,每一个时钟节拍内,向所述第二ecc编码单元输出k位数据。
50.步骤4:所述第二ecc编码单元为所述数据生成第二ecc纠错码,并将其发送至所述压缩单元;具体地,其中通过所述第二ecc编码单元为所述k位数据生成l位第二ecc纠错码,得到k+l位数据,并将k+l位数据发送至所述压缩单元。
51.步骤5:所述压缩单元对数据进行压缩,并将压缩后的数据传输至所述第一ecc编码单元;具体地,经过所述压缩单元,所述k+l位数据被压缩为m位数据,所述m位数据被发送至所述第一ecc编码单元。
52.步骤6:所述第一ecc编码单元为所述压缩后的数据生成第一ecc纠错码,并将其发送至所述数据写入控制单元;具体地,所述第一ecc编码单元为压缩后的m位数据生成n位第一ecc纠错码,得到m+n位数据,所述m+n位数据被发送至所述数据写入控制单元。
53.步骤7:所述数据写入控制单元将数据写入至所述sram;具体地,所述m+n位数据被写入所述sram。
54.步骤8:判断所有数据是否都写入完毕并保存至所述sram,如果是,则执行步骤9;如果否,则继续执行步骤3-7直至所有数据都写入完毕并保存至所述sram;步骤9:所述数据保存控制模块发送数据保存完毕信号至所述系统控制模块,所述系统控制模块接收所述数据保存完毕信号,并切断所述待保存模块、数据保存控制模块、数据恢复控制模块的供电,从而使系统进入低功耗模式;步骤10:检测是否接收到系统退出低功耗模式的请求,如果否,则集成电路系统继
续保持低功耗模式工作状态;如果是,则恢复对所述待保存模块、数据保存控制模块、数据恢复控制模块的供电,所述系统控制单元对所述数据恢复控制模块进行初始化,并控制所述数据恢复控制模块进入开始工作状态;步骤11:所述系统控制模块发送控制信号至所述待保存模块,以使得所述待保存模块重新进入扫描模式,所述待保存模块中的所有触发器连接成扫描链;具体地,其中所有触发器连接成k条并行的扫描链。
55.步骤12:所述数据读取控制单元读取保存在所述sram中的数据,并将所述数据发送至所述第一ecc解码单元;具体地,所述数据读取控制单元读取保存在所述sram中的m+n位数据,并将读取的数据发送至所述第一ecc解码单元。
56.步骤13:所述第一ecc解码单元基于所述第一ecc纠错码对所述数据进行检查,判断所述数据是否存在错误以及错误是否能够被修复;若数据没有错误,则将所述数据发送至所述解压缩单元,并执行步骤14;若数据存在错误,则对错误数据进行修复,当错误数据已完成修复,则将修复后的正确数据发送至所述解压缩单元,并执行步骤14;若数据存在错误,且错误不可修复,则判断错误等级,若错误等级低则继续执行步骤14,若错误等级高,则系统进行异常工作模式,并发送通知至系统控制模块和用户以便决定下一步操作;步骤14:所述解压缩单元对输入的数据进行解压缩,并将解压缩后的数据发送至所述第二ecc解码单元;具体地,所述解压缩单元对输入的m位压缩数据进行解压缩,得到解压缩后的k+l位数据,并将其发送至所述第二ecc解码单元。
57.步骤15:第二ecc解码单元基于所述第二ecc纠错码对待恢复的所述触发器的数据进行检查,判断数据是否存在错误以及错误是否能够被修复;若数据没有错误,则执行步骤16;若数据存在错误,则对错误数据进行修复,当错误数据已完成修复,执行步骤16;若数据存在错误,且错误不可修复,则判断错误等级,若错误等级低则继续执行步骤16,若错误等级高,则系统进行异常工作模式,并发送通知至系统控制模块和用户以便决定下一步操作;步骤16:通过所述扫描链将所述数据移位至所述待保存模块;具体地,将正确的k位待恢复的触发器数据通过k条扫描链移位至所述待保存模块。
58.步骤17:判断所有数据是否都移位至所述待保存模块,如果是,则执行步骤18;如果否,则继续执行步骤12-16直至所有数据都移位至所述待保存模块;步骤18:所述数据恢复控制模块发送数据恢复完毕信号至所述系统控制模块,所述系统控制模块接收所述数据恢复完毕信号,并切断所述数据恢复控制模块的供电,以及控制待保存模块退出扫描模式进入正常工作状态;步骤19:所述待保存模块恢复掉电前的状态进行下一步操作。
59.实施例三除了具有实施例一、实施例二的优点/技术效果之外,在实施例二的基础上加入了第二ecc编码单元和第二ecc解码单元,通过第二ecc编码单元为待保存的触发器数据生成第二ecc纠错码,之后第二ecc解码单元基于第二ecc纠错码对待恢复的触发器数据进行检查,进一步避免了解压缩单元解压缩数据过程中出现的错误,保证了解压缩单元解压缩数据的可靠性,进一步提高了系统的可恢复性以及可靠性。
60.第四实施例本实施例在第二、第三任一实施例的基础上进行改进。
61.在本实施例中,在将待保存模块中的触发器连接成扫描链时,进一步地,可以对扫描链进行重组,例如将关键的触发器与非关键触发器分别连接成不同的扫描链,把关键的触发器放置于设定的扫描链上;或者针对安全应用,将与安全相关的触发器和非安全相关的触发器分开连接成不同的扫描链,将与安全相关的触发器放置于设定的扫描链上;或根据需要采取其他重组方式,本技术对此不作限制;进一步地还可以针对重组后的不同扫描链定义不同的重要等级,从而在进行ecc解码发现错误时能够快速定位出是否是关键/安全相关的扫描链以及扫描链的哪个具体触发器出现错误以及对应的错误等级,并进一步采取相应的措施。
62.另外,参见附图5,为了快速定位出是否是关键/安全相关触发器出现错误以及对应的错误等级,当读取的数据存在错误,且通过ecc解码单元无法对错误进行修复时,所述数据恢复控制模块向所述系统控制模块发送ecc错误标志(ecc_error_flag)以提示有不可纠正的错误,ecc_error_flag可设置为具有多个数据位,以通过ecc_error_flag的多个数据位来提示存在风险的触发器以及对应的错误等级,并发送通知至系统和用户以决定下一步的操作方式。
63.基于同一发明构思,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的触发器状态保持方法。
64.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
65.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1