一种对闪存进行操作的方法和系统芯片.pdf

上传人:1520****312 文档编号:4756136 上传时间:2018-11-07 格式:PDF 页数:11 大小:1.16MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310078401.4

申请日:

2013.03.12

公开号:

CN103150184A

公开日:

2013.06.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20130312|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

青岛中星微电子有限公司

发明人:

李栋梁

地址:

266109 山东省青岛市高新区智力岛路1号创业大厦C座6层

优先权:

专利代理机构:

北京银龙知识产权代理有限公司 11243

代理人:

许静;安利霞

PDF下载: PDF下载
内容摘要

本发明实施例提供一种对闪存进行操作的方法和系统芯片,系统芯片包括非易失性控制器和非易失性存储区;方法包括:在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;根据控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand-flash之间建立读写通道;加载Nand-flash中的程序和数据到系统芯片内存中并执行。无论Nand-flash中的数据发生了什么变化,均能够加载Nand-flash成功,克服了现有不兼容的问题。

权利要求书

权利要求书一种对闪存进行操作的方法,其特征在于,系统芯片包括非易失性控制器和非易失性存储区;
方法包括:
在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;
通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;
根据所述控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段所述程序数据,与Nand‑flash之间建立读写通道;
加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
根据权利要求1所述的方法,其特征在于,
非易失性存储区具体是eFuse存储区,非易失性控制器具体是eFuse控制器。
根据权利要求1所述的方法,其特征在于,通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,具体包括:
若非易失性存储区中的程序数据是压缩状态的,则读取后对压缩状态的程序数据执行解压缩。
根据权利要求1所述的方法,其特征在于,根据所述控制数据跳转到SRAM中的预定位置,具体包括:
根据所述控制数据中记载的所述程序数据在SRAM中的偏移位置,在SRAM中找到存放程序数据的起始处作为所述预定位置。
根据权利要求1所述的方法,其特征在于,加载Nand‑flash中的程序和数据到系统芯片内存中并执行,之后还包括:
执行固件中包含的剩余的程序。
一种系统芯片,其特征在于,包括:
非易失性控制器,用于实现对非易失性存储区的读取;
非易失性存储区,用于存放控制数据和程序数据;
固件,用于在系统芯片上电之后启动,初始化非易失性控制器和非易失性存储区;以及,
通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;
根据所述控制数据跳转到所述SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道;
加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
根据权利要求6所述的芯片,其特征在于,
非易失性存储区具体是eFuse存储区。
根据权利要求6所述的芯片,其特征在于,
非易失性控制器具体是eFuse控制器。
根据权利要求6所述的芯片,其特征在于,还包括:
解压缩单元,用于若非易失性存储区中的程序数据是压缩状态的,则对读取的压缩状态的程序数据执行解压缩。

说明书

说明书一种对闪存进行操作的方法和系统芯片
技术领域
本发明涉及芯片存取技术,特别是指一种对闪存进行操作的方法和系统芯片。
背景技术
Nand‑flash(Flash内存的一种)是一种重要的存储介质,生产厂商推出了一系列工艺先进的Nand‑flash芯片,容量密度更大,成本更低。但芯片的稳定性大大降低,需要更多位的ECC进行校验,早期的芯片中,出错只会发生在擦除和写操作,但新型Nand‑flash在读的时候也会出错(read disturb)。
为提供可靠的数据读取通道,各厂商在标准Nand‑flash读写接口之外提供了自定义的操作命令,且彼此互不兼容。用户在标准的数据读取失败后执行Read‑retry命令,Read‑retry命令改变Nand‑flash内部电平检测标准,然后用户重新通过标准命令读取数据,就可能成功。
Nand‑flash的存储结构如图1所示,上述问题给基于系统芯片(SoC)的方案带来一个问题,系统芯片如图2所示,内部通常都会内置firmware作为系统芯片的Bootloader,其启动过程需要从Nand‑flash上获取数据,Bootloader从Nand‑flash中读取Init Infor来配置系统环境‑例如配置DDRAM可用,加载程序,启动系统。
现有技术存在如下问题:Nand‑flash加入了厂商自定义的一些命令,这给firmware的实现带来了问题,即如何在代码不变的情况下支持各厂商自定义的Nand‑flash操作命令,并且随着技术的发展,各厂商可能会开发更先进的产品,、扩展出更多厂家独有的命令,这都会导致部件之间的兼容性出现问题。
发明内容
本发明要解决的技术问题是提供一种对闪存进行操作的方法和系统芯片,解决现有技术中,各厂商自定义的Nand‑flash操作命令会导致部件之间的兼容性出现问题的缺陷。
为解决上述技术问题,本发明的实施例提供一种对闪存进行操作的方法,系统芯片包括非易失性控制器和非易失性存储区;方法包括:在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;根据所述控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段所述程序数据,与Nand‑flash之间建立读写通道;加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
所述的方法中,非易失性存储区具体是eFuse存储区,非易失性控制器具体是eFuse控制器。
所述的方法中,通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,具体包括:若非易失性存储区中的程序数据是压缩状态的,则读取后对压缩状态的程序数据执行解压缩。
所述的方法中,根据所述控制数据跳转到SRAM中的预定位置,具体包括:根据所述控制数据中记载的所述程序数据在SRAM中的偏移位置,在SRAM中找到存放程序数据的起始处作为所述预定位置。
所述的方法中,加载Nand‑flash中的程序和数据到系统芯片内存中并执行,之后还包括:执行固件中包含的剩余的程序。
一种系统芯片,包括:非易失性控制器,用于实现对非易失性存储区的读取;非易失性存储区,用于存放控制数据和程序数据;固件,用于在系统芯片上电之后启动,初始化非易失性控制器和非易失性存储区;以及,通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;根据所述控制数据跳转到所述SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道;加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
所述的芯片中,非易失性存储区具体是eFuse存储区。
所述的芯片中,非易失性控制器具体是eFuse控制器。
所述的芯片中,还包括:解压缩单元,用于若非易失性存储区中的程序数据是压缩状态的,则对读取的压缩状态的程序数据执行解压缩。
本发明的上述技术方案的有益效果如下:若系统芯片中有Nand‑flash,且Nand‑flash中存放了初始化阶段所需要的程序和数据,则在上电之后,采用非易失性存储区中的控制数据和程序数据来建立固件与Nand‑flash之间的读写通道,然后,加载Nand‑flash中的程序和数据到系统芯片内存中执行,如此,无论Nand‑flash中的数据发生了什么变化,均能够加载Nand‑flash成功,克服了现有不兼容的问题。
附图说明
图1表示系统芯片中Nand‑flash的存储结构示意图;
图2表示系统芯片的结构示意图;
图3表示本发明实施例的系统芯片的结构示意图;
图4表示eFuse存储区的结构示意图;
图5表示firmware调用Nand‑flash中增加的功能的流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
固件(firmware)作为系统芯片的Bootloader,是在操作系统内核运行之前运行的一段小程序,初始化硬件设备,建立内存空间映射图,从而将系统的软硬件环境设置在一个合适状态,以便为最终调用操作系统内核准备好正确的环境。本发明中在不改变firmware的情况下,改变firmware的执行路径。
系统芯片如图3所示,包括:非易失性控制器,非易失性存储区,Nand‑flash控制器,CPU,Dram控制器以及其他的模块,其中,通过非易失性控制器来读取非易失性存储区中的数据。
本发明实施例提供一种对闪存进行操作的方法,应用于系统芯片,如图3所示,系统芯片包括非易失性控制器和非易失性存储区;
方法包括:
在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;
通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;
根据所述控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道;
加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
应用所提供的技术,若系统芯片中有Nand‑flash,且Nand‑flash中存放了初始化阶段所需要的程序和数据,则在上电之后,采用非易失性存储区中的控制数据和程序数据来建立固件与Nand‑flash之间的读写通道,然后,加载Nand‑flash中的程序和数据到系统芯片内存中执行,如此,无论Nand‑flash中的数据发生了什么变化,均能够加载Nand‑flash成功,克服了现有不兼容的问题。
控制数据用于控制firmware的执行流程,控制读写Nand‑flash,程序数据主要是对Nand‑flash现有的功能进行扩展的数据,控制数据与程序数据在SRAM中的位置不同。
非易失性存储介质具体可以采用电子熔断介质,也可以采用各种接口的norflash,sd卡等,设置在系统芯片的外部作为非易失性存储介质。
在一个优选实施例中,如图4所示,非易失性存储区具体是eFuse存储区,非易失性控制器具体是eFuse控制器。
eFuse是一种特殊的存储介质,一种特殊的Flash内存,内置于系统芯片中,可读可写。由于eFuse是内置在系统芯片中,firmware对eFuse的读写方式是固定的,所以eFuse不存在兼容性问题。
eFuse中,一根熔丝表示一个bit,这根熔丝没断代表0,断了则代表1。对eFuse的编程实际上是对熔丝加上电压,使其熔断。与激光熔断技术相比,电子迁移(EM)特性可以用来生成小得多的熔丝结构。EM熔丝可以在芯片上编程,不论是在晶圆探测阶段还是在封装中。采用通常为2.5V的I/O电路的片上电压,一个持续200微秒的10毫安直流脉冲能够编程单根熔丝。
在一个优选实施例中,通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,具体包括:
若非易失性存储区中的程序数据是压缩状态的,则读取后对压缩状态的程序数据执行解压缩。
eFuse存储区的空间很小,如果程序数据较大,可以将程序数据压缩后存放在eFuse存储区中,使用时由firmware读取后解压。
firmware对eFuse的读写方式是固定的,所以firmware与eFuse之间不存在兼容性问题。
在一个优选实施例中,根据所述控制数据跳转到SRAM中的预定位置,具体包括:
根据所述控制数据中记载的所述程序数据在SRAM中的偏移位置,在SRAM中找到存放程序数据的起始处作为所述预定位置。
Nand‑flash厂商在Nand‑flash中加入了自定义内容之后,将对Nand‑flash的读写时序要求烧制在efuse中,因此,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道,具体包括:
完全匹配Nand‑flash厂商对于Nand‑flash的读写时序要求,从而能够建立读写通道,可靠的读写Nand‑flash。
在一个优选实施例中,加载Nand‑flash中的程序和数据到系统芯片内存中并执行,之后还包括:
执行固件中包含的剩余的程序。
在一个应用场景中,研发系统芯片的过程中要实现支持新型Nand‑flash以扩展功能,因而在eFuse存储区中添加了相应的控制数据,如图5所示,流程包括:
步骤501,计算机系统上电后,系统芯片内置的firmware开始运行。
步骤502,firmware对一系列基本模块执行初始化,例如初始化计算机的串口和时钟等。
步骤503,初始化eFuse存储区及eFuse控制器。
步骤504,读取eFuse存储区中的控制数据到SRAM中,该控制数据用于控制firmware的执行流程。
步骤505,判断系统芯片中是否支持新型Nand‑flash,若支持新型Nand‑flash转步骤506,否则转步骤508。
步骤506,读取eFuse存储区中保存的程序数据到SRAM中,如果该块数据处于压缩状态,则执行解压缩后将原始数据存放在SRAM中的指定位置。
步骤507,firmware根据控制数据跳转到配置好的SRAM中执行一段程序数据,与Nand‑flash之间建立可靠的读写通道。
步骤508,加载Nand‑flash中必要的程序和数据到系统芯片内存中。
步骤509,firmware执行其它的初始化操作。
步骤510,跳转至系统芯片内存中,执行来自Nand‑flash的程序,firmware执行完毕。
如果需要系统芯片支持新型Nand‑flash,例如NF‑A,则根据厂商提供的datasheet编写子程序,在制造系统芯片时将该子程序及必要的控制信息预先烧写到eFuse中。
本发明实施例提供一种系统芯片,包括:
非易失性控制器,用于实现对非易失性存储区的读取;
非易失性存储区,用于存放控制数据和程序数据;
固件,用于在系统芯片上电之后启动,初始化非易失性控制器和非易失性存储区;以及,
通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;
根据所述控制数据跳转到所述SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道;
加载Nand‑flash中的程序和数据到系统芯片内存中并执行。
在一个优选实施例中,非易失性存储区具体是eFuse存储区。
在一个优选实施例中,非易失性控制器具体是eFuse控制器。
在一个优选实施例中,还包括:
解压缩单元,用于若非易失性存储区中的程序数据是压缩状态的,则对读取的压缩状态的程序数据执行解压缩。
采用本方案之后的优势是:若系统芯片中有Nand‑flash,且Nand‑flash中存放了初始化阶段所需要的程序,则在上电之后,采用非易失性存储区中的控制数据和程序数据来建立固件与Nand‑flash之间的读写通道,然后,加载Nand‑flash中的程序和数据到系统芯片内存中执行,如此,无论Nand‑flash中的数据发生了什么变化,均能够加载Nand‑flash成功,克服了现有不兼容的问题。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

一种对闪存进行操作的方法和系统芯片.pdf_第1页
第1页 / 共11页
一种对闪存进行操作的方法和系统芯片.pdf_第2页
第2页 / 共11页
一种对闪存进行操作的方法和系统芯片.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种对闪存进行操作的方法和系统芯片.pdf》由会员分享,可在线阅读,更多相关《一种对闪存进行操作的方法和系统芯片.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103150184 A (43)申请公布日 2013.06.12 CN 103150184 A *CN103150184A* (21)申请号 201310078401.4 (22)申请日 2013.03.12 G06F 9/445(2006.01) (71)申请人 青岛中星微电子有限公司 地址 266109 山东省青岛市高新区智力岛路 1 号创业大厦 C 座 6 层 (72)发明人 李栋梁 (74)专利代理机构 北京银龙知识产权代理有限 公司 11243 代理人 许静 安利霞 (54) 发明名称 一种对闪存进行操作的方法和系统芯片 (57) 摘要 本发明实施例提供一种。

2、对闪存进行操作的方 法和系统芯片, 系统芯片包括非易失性控制器和 非易失性存储区 ; 方法包括 : 在系统芯片上电之 后, 系统芯片中内置的固件启动, 初始化非易失性 控制器和非易失性存储区 ; 通过非易失性控制器 读取非易失性存储区中的控制数据和程序数据, 并存放在 SRAM 中 ; 根据控制数据跳转到 SRAM 中 的预定位置, 通过执行固件以及预定位置起始的 一段程序数据, 与 Nand-flash 之间建立读写通 道 ; 加载 Nand-flash 中的程序和数据到系统芯片 内存中并执行。 无论Nand-flash中的数据发生了 什么变化, 均能够加载 Nand-flash 成功, 克。

3、服了 现有不兼容的问题。 (51)Int.Cl. 权利要求书 2 页 说明书 5 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图3页 (10)申请公布号 CN 103150184 A CN 103150184 A *CN103150184A* 1/2 页 2 1. 一种对闪存进行操作的方法, 其特征在于, 系统芯片包括非易失性控制器和非易失 性存储区 ; 方法包括 : 在系统芯片上电之后, 系统芯片中内置的固件启动, 初始化非易失性控制器和非易失 性存储区 ; 通过非易失性控制器读取非易失性存储区中的控制数据和程序数据, 并存放在。

4、 SRAM 中 ; 根据所述控制数据跳转到 SRAM 中的预定位置, 通过执行固件以及预定位置起始的一 段所述程序数据, 与 Nand-flash 之间建立读写通道 ; 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行。 2. 根据权利要求 1 所述的方法, 其特征在于, 非易失性存储区具体是 eFuse 存储区, 非易失性控制器具体是 eFuse 控制器。 3. 根据权利要求 1 所述的方法, 其特征在于, 通过非易失性控制器读取非易失性存储 区中的控制数据和程序数据, 具体包括 : 若非易失性存储区中的程序数据是压缩状态的, 则读取后对压缩状态的程序数据执行 解压缩。 4.。

5、 根据权利要求 1 所述的方法, 其特征在于, 根据所述控制数据跳转到 SRAM 中的预定 位置, 具体包括 : 根据所述控制数据中记载的所述程序数据在 SRAM 中的偏移位置, 在 SRAM 中找到存放 程序数据的起始处作为所述预定位置。 5. 根据权利要求 1 所述的方法, 其特征在于, 加载 Nand-flash 中的程序和数据到系统 芯片内存中并执行, 之后还包括 : 执行固件中包含的剩余的程序。 6. 一种系统芯片, 其特征在于, 包括 : 非易失性控制器, 用于实现对非易失性存储区的读取 ; 非易失性存储区, 用于存放控制数据和程序数据 ; 固件, 用于在系统芯片上电之后启动, 初。

6、始化非易失性控制器和非易失性存储区 ; 以 及, 通过非易失性控制器读取非易失性存储区中的控制数据和程序数据, 并存放在 SRAM 中 ; 根据所述控制数据跳转到所述 SRAM 中的预定位置, 通过执行固件以及预定位置起始 的一段程序数据, 与 Nand-flash 之间建立读写通道 ; 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行。 7. 根据权利要求 6 所述的芯片, 其特征在于, 非易失性存储区具体是 eFuse 存储区。 8. 根据权利要求 6 所述的芯片, 其特征在于, 非易失性控制器具体是 eFuse 控制器。 9. 根据权利要求 6 所述的芯片, 其特征在于,。

7、 还包括 : 解压缩单元, 用于若非易失性存储区中的程序数据是压缩状态的, 则对读取的压缩状 权 利 要 求 书 CN 103150184 A 2 2/2 页 3 态的程序数据执行解压缩。 权 利 要 求 书 CN 103150184 A 3 1/5 页 4 一种对闪存进行操作的方法和系统芯片 技术领域 0001 本发明涉及芯片存取技术, 特别是指一种对闪存进行操作的方法和系统芯片。 背景技术 0002 Nand-flash(Flash 内存的一种 ) 是一种重要的存储介质, 生产厂商推出了一系列 工艺先进的 Nand-flash 芯片, 容量密度更大, 成本更低。但芯片的稳定性大大降低, 需。

8、要更 多位的ECC进行校验, 早期的芯片中, 出错只会发生在擦除和写操作, 但新型Nand-flash在 读的时候也会出错 (read disturb)。 0003 为提供可靠的数据读取通道, 各厂商在标准 Nand-flash 读写接口之外提供了自 定义的操作命令, 且彼此互不兼容。用户在标准的数据读取失败后执行 Read-retry 命令, Read-retry 命令改变 Nand-flash 内部电平检测标准, 然后用户重新通过标准命令读取数 据, 就可能成功。 0004 Nand-flash 的存储结构如图 1 所示, 上述问题给基于系统芯片 (SoC) 的方案带来 一个问题, 系统芯。

9、片如图2所示, 内部通常都会内置firmware作为系统芯片的Bootloader, 其启动过程需要从 Nand-flash 上获取数据, Bootloader 从 Nand-flash 中读取 Init Infor 来配置系统环境 - 例如配置 DDRAM 可用, 加载程序, 启动系统。 0005 现有技术存在如下问题 : Nand-flash 加入了厂商自定义的一些命令, 这 给 firmware 的实现带来了问题, 即如何在代码不变的情况下支持各厂商自定义的 Nand-flash 操作命令, 并且随着技术的发展, 各厂商可能会开发更先进的产品, 、 扩展出更 多厂家独有的命令, 这都会导。

10、致部件之间的兼容性出现问题。 发明内容 0006 本发明要解决的技术问题是提供一种对闪存进行操作的方法和系统芯片, 解决现 有技术中, 各厂商自定义的 Nand-flash 操作命令会导致部件之间的兼容性出现问题的缺 陷。 0007 为解决上述技术问题, 本发明的实施例提供一种对闪存进行操作的方法, 系统芯 片包括非易失性控制器和非易失性存储区 ; 方法包括 : 在系统芯片上电之后, 系统芯片中 内置的固件启动, 初始化非易失性控制器和非易失性存储区 ; 通过非易失性控制器读取非 易失性存储区中的控制数据和程序数据, 并存放在 SRAM 中 ; 根据所述控制数据跳转到 SRAM 中的预定位置,。

11、 通过执行固件以及预定位置起始的一段所述程序数据, 与 Nand-flash 之间 建立读写通道 ; 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行。 0008 所述的方法中, 非易失性存储区具体是 eFuse 存储区, 非易失性控制器具体是 eFuse 控制器。 0009 所述的方法中, 通过非易失性控制器读取非易失性存储区中的控制数据和程序数 据, 具体包括 : 若非易失性存储区中的程序数据是压缩状态的, 则读取后对压缩状态的程序 数据执行解压缩。 说 明 书 CN 103150184 A 4 2/5 页 5 0010 所述的方法中, 根据所述控制数据跳转到 SRAM 中。

12、的预定位置, 具体包括 : 根据所 述控制数据中记载的所述程序数据在 SRAM 中的偏移位置, 在 SRAM 中找到存放程序数据的 起始处作为所述预定位置。 0011 所述的方法中, 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行, 之后 还包括 : 执行固件中包含的剩余的程序。 0012 一种系统芯片, 包括 : 非易失性控制器, 用于实现对非易失性存储区的读取 ; 非易 失性存储区, 用于存放控制数据和程序数据 ; 固件, 用于在系统芯片上电之后启动, 初始化 非易失性控制器和非易失性存储区 ; 以及, 通过非易失性控制器读取非易失性存储区中的 控制数据和程序数据, 并存。

13、放在 SRAM 中 ; 根据所述控制数据跳转到所述 SRAM 中的预定位 置, 通过执行固件以及预定位置起始的一段程序数据, 与 Nand-flash 之间建立读写通道 ; 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行。 0013 所述的芯片中, 非易失性存储区具体是 eFuse 存储区。 0014 所述的芯片中, 非易失性控制器具体是 eFuse 控制器。 0015 所述的芯片中, 还包括 : 解压缩单元, 用于若非易失性存储区中的程序数据是压缩 状态的, 则对读取的压缩状态的程序数据执行解压缩。 0016 本发明的上述技术方案的有益效果如下 : 若系统芯片中有 Nand。

14、-flash, 且 Nand-flash 中存放了初始化阶段所需要的程序和数据, 则在上电之后, 采用非易失性存 储区中的控制数据和程序数据来建立固件与 Nand-flash 之间的读写通道, 然后, 加载 Nand-flash 中的程序和数据到系统芯片内存中执行, 如此, 无论 Nand-flash 中的数据发生 了什么变化, 均能够加载 Nand-flash 成功, 克服了现有不兼容的问题。 附图说明 0017 图 1 表示系统芯片中 Nand-flash 的存储结构示意图 ; 0018 图 2 表示系统芯片的结构示意图 ; 0019 图 3 表示本发明实施例的系统芯片的结构示意图 ; 0。

15、020 图 4 表示 eFuse 存储区的结构示意图 ; 0021 图 5 表示 firmware 调用 Nand-flash 中增加的功能的流程示意图。 具体实施方式 0022 为使本发明要解决的技术问题、 技术方案和优点更加清楚, 下面将结合附图及具 体实施例进行详细描述。 0023 固件 (firmware) 作为系统芯片的 Bootloader, 是在操作系统内核运行之前运 行的一段小程序, 初始化硬件设备, 建立内存空间映射图, 从而将系统的软硬件环境设置 在一个合适状态, 以便为最终调用操作系统内核准备好正确的环境。本发明中在不改变 firmware 的情况下, 改变 firmwa。

16、re 的执行路径。 0024 系统芯片如图 3 所示, 包括 : 非易失性控制器, 非易失性存储区, Nand-flash 控制 器, CPU, Dram 控制器以及其他的模块, 其中, 通过非易失性控制器来读取非易失性存储区中 的数据。 0025 本发明实施例提供一种对闪存进行操作的方法, 应用于系统芯片, 如图 3 所示, 系 说 明 书 CN 103150184 A 5 3/5 页 6 统芯片包括非易失性控制器和非易失性存储区 ; 0026 方法包括 : 0027 在系统芯片上电之后, 系统芯片中内置的固件启动, 初始化非易失性控制器和非 易失性存储区 ; 0028 通过非易失性控制器读。

17、取非易失性存储区中的控制数据和程序数据, 并存放在 SRAM 中 ; 0029 根据所述控制数据跳转到 SRAM 中的预定位置, 通过执行固件以及预定位置起始 的一段程序数据, 与 Nand-flash 之间建立读写通道 ; 0030 加载 Nand-flash 中的程序和数据到系统芯片内存中并执行。 0031 应用所提供的技术, 若系统芯片中有 Nand-flash, 且 Nand-flash 中存放了初始 化阶段所需要的程序和数据, 则在上电之后, 采用非易失性存储区中的控制数据和程序数 据来建立固件与 Nand-flash 之间的读写通道, 然后, 加载 Nand-flash 中的程序和。

18、数据 到系统芯片内存中执行, 如此, 无论 Nand-flash 中的数据发生了什么变化, 均能够加载 Nand-flash 成功, 克服了现有不兼容的问题。 0032 控制数据用于控制 firmware 的执行流程, 控制读写 Nand-flash, 程序数据主要是 对 Nand-flash 现有的功能进行扩展的数据, 控制数据与程序数据在 SRAM 中的位置不同。 0033 非易失性存储介质具体可以采用电子熔断介质, 也可以采用各种接口的 norflash, sd 卡等, 设置在系统芯片的外部作为非易失性存储介质。 0034 在一个优选实施例中, 如图 4 所示, 非易失性存储区具体是 e。

19、Fuse 存储区, 非易失 性控制器具体是 eFuse 控制器。 0035 eFuse 是一种特殊的存储介质, 一种特殊的 Flash 内存, 内置于系统芯片中, 可读 可写。由于 eFuse 是内置在系统芯片中, firmware 对 eFuse 的读写方式是固定的, 所以 eFuse 不存在兼容性问题。 0036 eFuse 中, 一根熔丝表示一个 bit, 这根熔丝没断代表 0, 断了则代表 1。对 eFuse 的编程实际上是对熔丝加上电压, 使其熔断。与激光熔断技术相比, 电子迁移 (EM) 特性可 以用来生成小得多的熔丝结构。EM 熔丝可以在芯片上编程, 不论是在晶圆探测阶段还是在 。

20、封装中。采用通常为 2.5V 的 I/O 电路的片上电压, 一个持续 200 微秒的 10 毫安直流脉冲 能够编程单根熔丝。 0037 在一个优选实施例中, 通过非易失性控制器读取非易失性存储区中的控制数据和 程序数据, 具体包括 : 0038 若非易失性存储区中的程序数据是压缩状态的, 则读取后对压缩状态的程序数据 执行解压缩。 0039 eFuse 存储区的空间很小, 如果程序数据较大, 可以将程序数据压缩后存放在 eFuse 存储区中, 使用时由 firmware 读取后解压。 0040 firmware对eFuse的读写方式是固定的, 所以firmware与eFuse之间不存在兼容 性。

21、问题。 0041 在一个优选实施例中, 根据所述控制数据跳转到 SRAM 中的预定位置, 具体包括 : 0042 根据所述控制数据中记载的所述程序数据在 SRAM 中的偏移位置, 在 SRAM 中找到 存放程序数据的起始处作为所述预定位置。 说 明 书 CN 103150184 A 6 4/5 页 7 0043 Nand-flash 厂商在 Nand-flash 中加入了自定义内容之后, 将对 Nand-flash 的 读写时序要求烧制在 efuse 中, 因此, 通过执行固件以及预定位置起始的一段程序数据, 与 Nand-flash 之间建立读写通道, 具体包括 : 0044 完全匹配 Na。

22、nd-flash 厂商对于 Nand-flash 的读写时序要求, 从而能够建立读写 通道, 可靠的读写 Nand-flash。 0045 在一个优选实施例中, 加载 Nand-flash 中的程序和数据到系统芯片内存中并执 行, 之后还包括 : 0046 执行固件中包含的剩余的程序。 0047 在一个应用场景中, 研发系统芯片的过程中要实现支持新型 Nand-flash 以扩展 功能, 因而在 eFuse 存储区中添加了相应的控制数据, 如图 5 所示, 流程包括 : 0048 步骤 501, 计算机系统上电后, 系统芯片内置的 firmware 开始运行。 0049 步骤 502, fir。

23、mware 对一系列基本模块执行初始化, 例如初始化计算机的串口和 时钟等。 0050 步骤 503, 初始化 eFuse 存储区及 eFuse 控制器。 0051 步骤 504, 读取 eFuse 存储区中的控制数据到 SRAM 中, 该控制数据用于控制 firmware 的执行流程。 0052 步骤 505, 判断系统芯片中是否支持新型 Nand-flash, 若支持新型 Nand-flash 转 步骤 506, 否则转步骤 508。 0053 步骤506, 读取eFuse存储区中保存的程序数据到SRAM中, 如果该块数据处于压缩 状态, 则执行解压缩后将原始数据存放在 SRAM 中的指定。

24、位置。 0054 步骤 507, firmware 根据控制数据跳转到配置好的 SRAM 中执行一段程序数据, 与 Nand-flash 之间建立可靠的读写通道。 0055 步骤 508, 加载 Nand-flash 中必要的程序和数据到系统芯片内存中。 0056 步骤 509, firmware 执行其它的初始化操作。 0057 步骤510, 跳转至系统芯片内存中, 执行来自Nand-flash的程序, firmware执行完 毕。 0058 如果需要系统芯片支持新型 Nand-flash, 例如 NF-A, 则根据厂商提供的 datasheet 编写子程序, 在制造系统芯片时将该子程序及必。

25、要的控制信息预先烧写到 eFuse 中。 0059 本发明实施例提供一种系统芯片, 包括 : 0060 非易失性控制器, 用于实现对非易失性存储区的读取 ; 0061 非易失性存储区, 用于存放控制数据和程序数据 ; 0062 固件, 用于在系统芯片上电之后启动, 初始化非易失性控制器和非易失性存储区 ; 以及, 0063 通过非易失性控制器读取非易失性存储区中的控制数据和程序数据, 并存放在 SRAM 中 ; 0064 根据所述控制数据跳转到所述 SRAM 中的预定位置, 通过执行固件以及预定位置 起始的一段程序数据, 与 Nand-flash 之间建立读写通道 ; 0065 加载 Nand。

26、-flash 中的程序和数据到系统芯片内存中并执行。 说 明 书 CN 103150184 A 7 5/5 页 8 0066 在一个优选实施例中, 非易失性存储区具体是 eFuse 存储区。 0067 在一个优选实施例中, 非易失性控制器具体是 eFuse 控制器。 0068 在一个优选实施例中, 还包括 : 0069 解压缩单元, 用于若非易失性存储区中的程序数据是压缩状态的, 则对读取的压 缩状态的程序数据执行解压缩。 0070 采用本方案之后的优势是 : 若系统芯片中有 Nand-flash, 且 Nand-flash 中存放 了初始化阶段所需要的程序, 则在上电之后, 采用非易失性存储。

27、区中的控制数据和程序数 据来建立固件与 Nand-flash 之间的读写通道, 然后, 加载 Nand-flash 中的程序和数据 到系统芯片内存中执行, 如此, 无论 Nand-flash 中的数据发生了什么变化, 均能够加载 Nand-flash 成功, 克服了现有不兼容的问题。 0071 以上所述是本发明的优选实施方式, 应当指出, 对于本技术领域的普通技术人员 来说, 在不脱离本发明所述原理的前提下, 还可以作出若干改进和润饰, 这些改进和润饰也 应视为本发明的保护范围。 说 明 书 CN 103150184 A 8 1/3 页 9 图 1 图 2 说 明 书 附 图 CN 103150184 A 9 2/3 页 10 图 3 图 4 说 明 书 附 图 CN 103150184 A 10 3/3 页 11 图 5 说 明 书 附 图 CN 103150184 A 11 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1