CN103150184B - 一种对闪存进行操作的方法和系统芯片 - Google Patents
一种对闪存进行操作的方法和系统芯片 Download PDFInfo
- Publication number
- CN103150184B CN103150184B CN201310078401.4A CN201310078401A CN103150184B CN 103150184 B CN103150184 B CN 103150184B CN 201310078401 A CN201310078401 A CN 201310078401A CN 103150184 B CN103150184 B CN 103150184B
- Authority
- CN
- China
- Prior art keywords
- flash
- chip
- data
- nand
- nonvolatile storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明实施例提供一种对闪存进行操作的方法和系统芯片,系统芯片包括非易失性控制器和非易失性存储区;方法包括:在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,并存放在SRAM中;根据控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与Nand‑flash之间建立读写通道;加载Nand‑flash中的程序和数据到系统芯片内存中并执行。无论Nand‑flash中的数据发生了什么变化,均能够加载Nand‑flash成功,克服了现有不兼容的问题。
Description
技术领域
本发明涉及芯片存取技术,特别是指一种对闪存进行操作的方法和系统芯片。
背景技术
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成功,克服了现有不兼容的问题。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种对闪存进行操作的方法,其特征在于,系统芯片包括非易失性控制器和非易失性存储区;
方法包括:
在系统芯片上电之后,系统芯片中内置的固件启动,初始化非易失性控制器和非易失性存储区;
通过非易失性控制器读取非易失性存储区中的控制数据到SRAM中;所述控制数据用于控制固件的执行流程;
当所述系统芯片支持新型Nand-flash时,读取所述非易失性存储区中保存的程序数据到SRAM中,所述程序数据是对新型Nand-flash现有的功能进行扩展的数据,所述新型Nand-flash具有标准Nand-flash读写接口之外的自定义的操作命令;
根据所述控制数据跳转到SRAM中的预定位置,通过执行固件以及预定位置起始的一段所述程序数据,与新型Nand-flash之间建立读写通道;
加载新型Nand-flash中的程序和数据到系统芯片内存中并执行。
2.根据权利要求1所述的方法,其特征在于,
非易失性存储区具体是eFuse存储区,非易失性控制器具体是eFuse控制器。
3.根据权利要求1所述的方法,其特征在于,通过非易失性控制器读取非易失性存储区中的控制数据和程序数据,具体包括:
若非易失性存储区中的程序数据是压缩状态的,则读取后对压缩状态的程序数据执行解压缩。
4.根据权利要求1所述的方法,其特征在于,根据所述控制数据跳转到SRAM中的预定位置,具体包括:
根据所述控制数据中记载的所述程序数据在SRAM中的偏移位置,在SRAM中找到存放程序数据的起始处作为所述预定位置。
5.根据权利要求1所述的方法,其特征在于,加载新型Nand-flash中的程序和数据到系统芯片内存中并执行,之后还包括:
执行固件中包含的剩余的程序。
6.一种系统芯片,其特征在于,包括:
非易失性控制器,用于实现对非易失性存储区的读取;
非易失性存储区,用于存放控制数据和程序数据;
固件,用于在系统芯片上电之后启动,初始化非易失性控制器和非易失性存储区;以及,
非易失性控制器,用于读取非易失性存储区中的控制数据到SRAM中,所述控制数据用于控制固件的执行流程;
非易失性控制器,还用于当所述系统芯片支持新型Nand-flash时,读取所述非易失性存储区中保存的程序数据到SRAM中,所述程序数据是对新型Nand-flash现有的功能进行扩展的数据,所述新型Nand-flash具有标准Nand-flash读写接口之外的自定义的操作命令;
以及,根据所述控制数据跳转到所述SRAM中的预定位置,通过执行固件以及预定位置起始的一段程序数据,与新型Nand-flash之间建立读写通道;
加载新型Nand-flash中的程序和数据到系统芯片内存中并执行。
7.根据权利要求6所述的芯片,其特征在于,
非易失性存储区具体是eFuse存储区。
8.根据权利要求6所述的芯片,其特征在于,
非易失性控制器具体是eFuse控制器。
9.根据权利要求6所述的芯片,其特征在于,还包括:
解压缩单元,用于若非易失性存储区中的程序数据是压缩状态的,则对读取的压缩状态的程序数据执行解压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078401.4A CN103150184B (zh) | 2013-03-12 | 2013-03-12 | 一种对闪存进行操作的方法和系统芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310078401.4A CN103150184B (zh) | 2013-03-12 | 2013-03-12 | 一种对闪存进行操作的方法和系统芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103150184A CN103150184A (zh) | 2013-06-12 |
CN103150184B true CN103150184B (zh) | 2016-11-09 |
Family
ID=48548285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310078401.4A Expired - Fee Related CN103150184B (zh) | 2013-03-12 | 2013-03-12 | 一种对闪存进行操作的方法和系统芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103150184B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761197A (zh) * | 2014-01-16 | 2014-04-30 | 深圳市亿维自动化技术有限公司 | 一种包含Flash和RAM的数据存储方法及系统 |
CN105895158B (zh) * | 2016-04-23 | 2020-01-31 | 华为技术有限公司 | 芯片中的die id的读取电路以及芯片 |
CN106066799B (zh) * | 2016-06-15 | 2019-06-21 | 福州瑞芯微电子股份有限公司 | 一种增强bootrom兼容性的方法 |
CN106776391A (zh) * | 2016-12-13 | 2017-05-31 | 成都信息工程大学 | 一种NAND Flash控制器的控制方法和装置 |
CN109471642A (zh) * | 2018-11-15 | 2019-03-15 | 北京行易道科技有限公司 | 固件生成存储方法及装置、固件启动方法及装置 |
CN109814888B (zh) * | 2019-01-25 | 2022-06-07 | 深圳忆联信息系统有限公司 | NandFlash控制器EFUSE代替方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996248A (zh) * | 2006-12-26 | 2007-07-11 | 北京中星微电子有限公司 | 用户程序引导方法及用户程序引导系统 |
CN101727361A (zh) * | 2009-11-30 | 2010-06-09 | 中兴通讯股份有限公司 | 一种终端产品版本存储的方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI220469B (en) * | 2003-03-25 | 2004-08-21 | Icp Electronics Inc | Automatic booting system and method thereof |
-
2013
- 2013-03-12 CN CN201310078401.4A patent/CN103150184B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996248A (zh) * | 2006-12-26 | 2007-07-11 | 北京中星微电子有限公司 | 用户程序引导方法及用户程序引导系统 |
CN101727361A (zh) * | 2009-11-30 | 2010-06-09 | 中兴通讯股份有限公司 | 一种终端产品版本存储的方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103150184A (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103150184B (zh) | 一种对闪存进行操作的方法和系统芯片 | |
KR101375992B1 (ko) | 불휘발성 메모리로부터의 디바이스 부트업 동안 에러들의 핸들링 | |
JP5016841B2 (ja) | 不揮発性半導体記憶装置 | |
TWI404054B (zh) | 處理微碼程式更新錯誤的裝置及其方法 | |
CN106293832A (zh) | 一种soc芯片引导启动方法及系统 | |
US20150199190A1 (en) | System and method for updating firmware | |
US20120271983A1 (en) | Computing device and data synchronization method | |
US10761588B2 (en) | Power configuration component including selectable configuration profiles corresponding to operating characteristics of the power configuration component | |
KR100634356B1 (ko) | 메인 데이터를 안전하게 로딩하는 메모리 시스템 및 그것의 데이터 로딩 방법 | |
CN102075710B (zh) | 一种电视机的启动运行方法及电视机 | |
US20120243321A1 (en) | Semiconductor memory device | |
JP4829370B1 (ja) | メモリ制御装置、メモリ装置および停止制御方法 | |
CN107391120A (zh) | 一种启动控制方法、电子设备及计算机可读存储介质 | |
CN103294578B (zh) | 取得触发功能的指令的方法 | |
EP1741030B1 (en) | Restoring the firmware and all programmable content of an optical drive | |
CN102479124A (zh) | 一种测试方法 | |
CN103853638A (zh) | 一种刷新固件的方法及电子设备 | |
CN104572365A (zh) | 一种内存自适配方法及装置 | |
KR101005125B1 (ko) | 불휘발성 메모리 소자 및 그 동작 방법 | |
CN104240764A (zh) | 具有熔丝阵列的半导体器件及其操作方法 | |
WO2007048287A1 (fr) | Dispositif mémoire avec puce de commande à fonction de configuration compatible, et sa méthode de fabrication | |
JP2004013477A (ja) | ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリ | |
TWI512623B (zh) | 休眠模式啓動方法、記憶體控制電路單元及儲存裝置 | |
JP4235624B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN117453239A (zh) | 一种基于底层镜像文件的双冗余设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161109 |