于控制逻辑错误时重新配置存储控制器的方法以及使用该方法的装置与流程

文档序号:11154197阅读:483来源:国知局
于控制逻辑错误时重新配置存储控制器的方法以及使用该方法的装置与制造工艺

本发明关连于一种闪存装置,特别是一种于控制逻辑错误时重新配置存储控制器的方法以及使用该方法的装置。



背景技术:

对于以现场可编程化逻辑门阵列(FPGA,Field-Programmable Gate Array)封装的固态硬盘(SSD,Solid State Drive)储存系统中的控制器,单粒子翻转(SEU,Single Event Upset)是造成控制逻辑错误的原因之一。单粒子翻转是微电子装置中的敏感装置因为阿尔法粒子或宇宙射线冲击造成的状态翻转。因此,本发明提出一种于控制逻辑错误时重新配置控制器中的逻辑的方法以及使用该方法的装置,用以克服上述的问题。



技术实现要素:

本发明的实施例提出一种于控制逻辑错误时重新配置存储控制器的方法,由处理单元执行,包含下列步骤。周期性询问编码器是否存储控制器发生错误。当编码器答复存储控制器发生错误时,驱动存储控制器的固定区域中的重配置控制逻辑,用以重新程序化存储控制器的整个可重配置区域,其中,可重配置区域以现场可编程化逻辑门阵列实施。

本发明的实施例提出一种于控制逻辑错误时重新配置控制器的装置,包含固定区域与可重配置区域。固定区域包含处理单元以及重配置控制逻辑。处理单元周期性询问编码器是否存储控制器发生错误。当编码器答复存储控制器发生错误时,驱动存储控制器的固定区域中的重配置控制逻辑,用以重新程序化存储控制器的整个可重配置区域。可重配置区域以现场可编程化逻辑门阵列实施。

附图说明

图1系依据本发明实施例的固态硬盘储存系统的系统架构图。

图2系依据本发明实施例的闪存中的储存单元示意图。

图3系依据本发明实施例的存储控制器的逻辑分割示意图。

图4系依据本发明实施例的重新配置存储控制器的方法流程图。

图5系依据本发明实施例的重新配置存储控制器的方法流程图。

图6系依据本发明实施例的重新配置存储控制器的方法流程图。

图7系依据本发明实施例的重新配置存储控制器的方法流程图。

符号说明

10 系统; 110 处理单元;

120 只读存储器; 130 静态随机存取存储器;

140 动态随机存取存储器;

150 存取接口; 160 主装置;

170 存取接口; 180 储存单元;

210 存储器单元阵列; 220 行解码单元;

230 列编码单元; 240 地址单元;

250 数据缓存器; 300a 可重配置区域;

300b 固定区域; 310 重配置控制逻辑;

S410~S480 方法步骤 S510~S520 方法步骤;

S610 方法步骤

具体实施方式

以下说明系为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。

必须了解的是,使用于本说明书中的“包含”、“包括”等词,系用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或元件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、元件,或以上的任意组合。

于权利要求中使用如“第一”、“第二”、“第三”等词系用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

图1系依据本发明实施例的固态硬盘储存系统的系统架构图。固态硬盘储存系统的系统架构10中包含只读存储器120,储存重新配置存储控制器的信息。于此须注意的是,此信息也可备份在储存单元180中。当处理单元110执行静态随机存取存储器130的控制核心算法时,根据主装置160透过存取接口150发出的命令,写入数据到储存单元180中的指定地址,或者从储存单元180中的指定地址读取数据。详细来说,处理单元110可透过存取接口170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、频率信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取接口170可采用双倍数据率(double data rate,DDR)通讯协议与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其它接口。处理单元110另可使用存取接口150透过指定通讯协议与主装置160进行沟通,例如,通用序列总线(universal serial bus,USB)、先进技术附着(advanced technology attachment,ATA)、序列先进技术附着(serial advanced technology attachment,SATA)、快速周边组件互联(peripheral component interconnect express,PCI-E)或其它接口。处理单元110、只读存储器120、静态随机存取存储器130、存取接口150及170可统称为一个存储控制器(storage controller)。

图2系依据本发明实施例的闪存中的储存单元示意图。储存单元180可包含由MxN个存储器单元(memory cells)组成的阵列(array)210,而每一个存储器单元储存至少一个位(bit)的信息。闪存可以是NAND型闪存,或其它种类的闪存。为了正确存取信息,行解码单元220用以选择存储器单元阵列210中指定 的行,而列编码单元230用以选择指定行中一定数量的字节的数据作为输出。地址单元240提供行信息给行解码器220,其中定义了选择存储器单元阵列210中的那些行。相似地,列解码器230则根据地址单元240提供的列信息,选择存储器单元阵列210的指定行中一定数量的列进行读取或写入操作。行可称为为字符线(wordline),列可称为位线(bitline)。数据缓存器(data buffer)250可储存从存储器单元阵列210读取出的数据,或欲写入存储器单元阵列210中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-level cells,MLCs)或三层式单元(triple-level cells,TLCs)。

图3系依据本发明实施例的存储控制器的逻辑分割示意图。存储控制器可包含可重配置区域(reconfigurable region)130a及固定区域(fixed region)300b。固定区域300b可包含输出入控制逻辑(I/O control logic)、主装置通讯逻辑(master-device communications logic)及重配置控制逻辑(re-configuration control logic)310等。固定区域300b另可包含处理单元110的运算逻辑单元,用以依据加载的韧体进行数学运算以及控制其它元件。例如,输出入控制逻辑包含对只读存储器120以及静态随机存取存储器130等的输出入控制。主装置通讯逻辑可实施于存取接口150。固定区域300b中的逻辑不能重新配置。可重配置区域300a以现场可编程化逻辑门阵列实施。可重配置区域300a包含固态硬盘储存系统的控制核心算法,可占超过存储控制器的90%空间。可重配置区域300a包含可编程化逻辑区块的阵列及阶层式可重新组态的相互连结,使得区块与区块可连接在一起,例如,数个逻辑闸可依据不同组态相互连接在一起。一些逻辑区块可组态来执行复杂的综合性功能,或者是简单的逻辑闸,例如与门(AND)、或门(OR)、互斥或门(XOR)等。一些逻辑区块可包含存储元件,由简单的正反器(flip-flops)或完整的记忆块组成。可重配置区域300a中的控制核心算法以及固定区域300b中的逻辑可组织成数个码区段(code segments),并在每一个码区段加上循环冗余校验码(CRC-Cyclic Redundancy Check)进行保护。解码单元可使用循环冗余校验码检查存储控制器中的控制核心算法及逻辑是否发生错误,并且当错误发生时尝试修正其中的错误。然而,当控制核心算法及逻辑无法修复时(亦可称为控制逻辑错误),需要执行一个方法,用以重新配置存储控制器。控制逻辑错误也可以代表存储控制器发生错误。

于一种实施方式中,存储控制器可侦测可重配置区域300a的哪个部份发生不可恢复的错误,接着,仅重新组态发生错误的部分。为完成此侦测需要实施特定的硬件电路以及/或软件指令。或者是,需要花费额外的时间来完成此侦测,在主装置160所发出的命令逾时前,可能造成来不及完成重新组态以及处理此命令。于另一种实施方式,存储控制器可重新组态整个可重配置区域300a而不进行如上所述的侦测。图4系依据本发明实施例的重新配置存储控制器的方法流程图。本领域技术人员理解当存储控制器接收到主装置160所发出的命令时,使用控制核心算法来驱动存取接口170,用以完成此命令,例如数据读取命令、数据写入命令等。在使用控制核心算法前,解码单元需要先检查存储控制器中的控制核心算法及逻辑是否正确。当解码单元无法修复于存储控制器的控制核心算法及逻辑中发生的错误时,可发出最高优先权的中断给处理单元110。当处理单元110接收到中断后(步骤S410),暂停存取(步骤S420)。换句话说,处理单元110并不使用包含无法恢复错误的控制核心算法来驱动存取接口170。接着,储存目前的执行状态(例如,执行变量值,尚未写入储存单元180的数据,已读取但尚未答复给主装置160的数据等)于动态随机存取存储器140(步骤S430)。详细来说,于步骤S430,处理单元110驱动输出入控制逻辑储存目前的执行状态至动态随机存取存储器140。处理单元110驱动重配置控制逻辑310的开始执行重配置作业,用以重新程序化整个可重配置区域300a(步骤S440)。详细来说,重配置控制逻辑310透过输出入控制逻辑驱动读取只读存储器120中储存的信息,例如使用硬件描述语言(HDL,Hardware Description Language)撰写的指令、逻辑区块间相互连接的对照表等,并根据此信息来重新程序化整个可重配置区域300a。接着,反复执行一个循环,用以询问重配置控制逻辑310重配置作业是否完成(步骤S450)。当重配置控制逻辑310回复重配置作业完成的消息后(步骤S450中”是”的路径),处理单元110启动整个存储控制器的再初始化作业(re-initiation operation),使得存储控制器处于可用状态(步骤S460)。接着,从动态随机存取存储器140恢复(restore)执行状态(步骤S470),以及根据恢复的执行状态恢复存取(resume access)(步骤S480)。透过以上的方法,尚未执行完的操作可以从断点继续执行。存储控制器仅在短暂的时间(少于1秒)失效,重配置之后则恢复正常。

图5系依据本发明实施例的重新配置存储控制器的方法流程图。当暂停存取后(步骤S420),完成当前管道(pipeline)中操作(步骤S510)。当完成当前管道(pipeline)中操作后(步骤S510),处理单元110驱动重配置控制逻辑310的开始执行重配置作业,用以重新程序化整个可重配置区域300a(步骤S440)。接着,当处理单元110启动整个存储控制器的再初始化作业,使得存储控制器处于可用状态后(步骤S460),恢复存取(步骤S520)。步骤S410、S420、S440、S450、S460的详细技术内容请参考图4的说明,为求简洁不再赘述。

关于如何判断上述存储控制器发生错误,请参考图4及图5描述的方法流程:一些实施例是透过中断处理例程(interrupt handler)的机制侦测发生单粒子翻转错误(造成存储控制器错误),一旦接收到中断,接着进行重新组态。于一些实施例中,处理单元110也可周期性的询问(polling)解码单元是否发生单粒子翻转错误。一旦解码单元答复发生单粒子翻转错误,则进行重新组态。

图6系依据本发明实施例的重新配置存储控制器的方法流程图。图6的方法流程图相似于图4。然而,本领域技术人员可将图4的步骤S410中的接收中断修改为周期性询问解码单元是否发生存储控制器错误(步骤S610)。当解码单元答复发生控制逻辑错误时(步骤S610中“是”的路径),暂停存取(步骤S420)。为求说明书的简洁,后续的步骤可参考图4的说明,不再赘述。

图7系依据本发明实施例的重新配置存储控制器的方法流程图。图7的方法流程图相似于图5。然而,本领域技术人员可将图5的步骤S410中的接收中断修改为周期性询问解码单元是否发生存储控制器错误(步骤S610)。当解码单元答复发生控制逻辑错误时(步骤S610中“是”的路径),暂停存取(步骤S420)。为求说明书的简洁,后续的步骤可参考图5的说明,不再赘述。

虽然图1中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其它的附加元件,已达成更佳的技术效果。此外,虽然图4至图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,本领域技术人员亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。

虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了本领域技术人员显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1