CN117420964A - 一种存储装置及其数据处理方法 - Google Patents
一种存储装置及其数据处理方法 Download PDFInfo
- Publication number
- CN117420964A CN117420964A CN202311734031.5A CN202311734031A CN117420964A CN 117420964 A CN117420964 A CN 117420964A CN 202311734031 A CN202311734031 A CN 202311734031A CN 117420964 A CN117420964 A CN 117420964A
- Authority
- CN
- China
- Prior art keywords
- page
- code
- code blocks
- flash memory
- read
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及静态存储技术领域,特别涉及一种存储装置及其数据处理方法。存储装置包括:闪存模块,包括多个代码块,所述代码块包括:头部页,位于所述代码块的首端,用以存储多个所述代码块的地址;固件页,与所述头部页相邻,用以存储二进制文件;备份页,与所述头部页相隔,用以备份所述头部页上的地址;空白页,用以存储虚拟代码,以填充完所述代码块的存储空间;以及控制模块,电连接于所述闪存模块,所述控制模块包括只读存储器,其中,通过加载所述只读存储器上的只读存储器代码,完成对所述代码块上所述二进制文件的加载。本发明可加强对固件文件的保护,提高存储装置的安全性能。
Description
技术领域
本发明涉及静态存储技术领域,特别涉及一种存储装置及其数据处理方法。
背景技术
存储装置包括计算机系统中存放程序和数据的各种存储介质,它具有长期存储和记录信息的功能。存储装置将操作系统、应用程序和用户数据保存在相应的存储介质上。存储装置在执行用户操作和应用程序时,可快速、高效的访问这些数据。在图像处理、数据库、知识库、语音识别、多媒体等领域,存储装置被广泛地进行应用。
现有存储装置的运用场景十分复杂,但对固件采取的保护措施不足。因此,存在待改进之处。
发明内容
本发明的目的在于提供一种存储装置及其数据处理方法,用以解决现有技术中存在的对固件采取的保护措施不足的技术问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提出一种存储装置,包括:
闪存模块,包括多个代码块,所述代码块包括:
头部页,位于所述代码块的首端,用以存储多个所述代码块的地址;
固件页,与所述头部页相邻,用以存储二进制文件;
备份页,与所述头部页相隔,用以备份所述头部页上的地址;
空白页,用以存储虚拟代码,以填充完所述代码块的存储空间;以及
控制模块,电连接于所述闪存模块,所述控制模块包括只读存储器,
其中,通过加载所述只读存储器上的只读存储器代码,完成对所述代码块上所述二进制文件的加载。
在本发明的一个实施例中,所述固件页包括:
配置二进制文件页,用以存储执行所述闪存模块配置相关的二进制文件;
其他二进制文件页,用以存储其他的二进制文件,以进入固件流程;以及
算法二进制文件页,用以存储固件算法,以实现固件流程。
在本发明的一个实施例中,在所述存储装置上电后,所述控制模块运行所述只读存储器代码,以加载所述头部页上的地址,并根据多个所述代码块对应的地址,加载多个所述代码块上的二进制文件。
在本发明的一个实施例中,所述控制模块用以扫描所述闪存模块上的多个区块,并在每个区块上扫描至少一个页,以查询所述代码块的头部页上的地址数据。
在本发明的一个实施例中,通过加载所述配置二进制文件页上的二进制文件,完成所述闪存模块的配置、所述控制模块的初始化动作;
通过加载所述其他二进制文件页上的二进制文件,以进入固件流程,并通过加载所述算法二进制文件页上的固件算法,执行固件程序。
在本发明的一个实施例中,所述闪存模块上的第一个区块设为代码块,在所述闪存模块中,将头部页能被所述只读存储器代码扫描到的正常区块设为代码块。在本发明的一个实施例中,当所述闪存模块上所述代码块的数量满足要求时,向多个所述代码块写入二进制文件,当所述闪存模块上所述代码块的数量不满足要求时,进行报错处理。
在本发明的一个实施例中,当所述闪存模块上所述代码块的数量满足备份要求时,将所述头部页上的地址和所述备份页上的地址相互备份,当所述闪存模块上所述代码块的数量不满足备份要求时,将扫描到具有强属性页的区块设为代码块。
在本发明的一个实施例中,当所述闪存模块上所述代码块的数量不满足备份要求,且具有强属性页的代码块的数量仍不满足要求时,将扫描到具有弱属性页的区块设为代码块。
本发明还提出一种存储装置的数据处理方法,包括:
在所述闪存模块上选取多个区块作为代码块;
存放多个所述代码块的地址到所述代码块首端的头部页上;
存放二进制文件到所述代码块的固件页上,所述固件页与所述头部页相邻;
将所述头部页上的地址备份到所述代码块的备份页上,所述备份页与所述头部页相隔;
写入虚拟代码到所述代码块的空白页上,填充完所述代码块的存储空间;
通过所述控制模块对闪存模块上代码的读写进行控制;
在控制模块上设置只读存储器,在所述只读存储器上存放只读存储器代码;
通过加载所述只读存储器上的只读存储器代码,完成对所述代码块上的二进制文件的加载。
本发明提出一种存储装置及其数据处理方法,可加强对固件文件的保护,提高存储装置的安全性能。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中一种存储装置的结构示意图。
图2为本发明一实施例中一种存储装置中代码块的结构示意图。
图3为本发明一实施例中一种存储装置中固件页的结构示意图。
图4为本发明一实施例中一种存储装置中二进制文件的执行示意图。
图5为本发明一实施例中一种存储装置的数据处理方法的流程示意图。
图6为本发明一实施例中图5中步骤S10的步骤示意图。
图7为本发明一实施例中一种存储装置中代码块写入文件的流程示意图。
图中:
10、主机;20、存储装置;30、控制模块;31、中央处理器;32、只读存储器;320、只读存储器代码页;33、随机存储器;34、缓存控制单元;40、闪存模块;41、区块;410、代码块;411、头部页;412、固件页;4120、配置二进制文件页;4121、其他二进制文件页;4122、算法二进制文件页;413、备份页;414、空白页;42、页寄存器;43、高速缓存寄存器;50、缓存单元。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。下列实施例中未注明具体条件的试验方法,通常按照常规条件,或者按照各制造商所建议的条件。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
请参阅图1至图6所示,本发明提出一种存储装置及其数据处理方法,可应用于计算机的存储系统中,例如可应用于eMMC(Embedded Multi Media Card,嵌入式多媒体卡)、SDD(Solid State Drives ,固态硬盘)或者UFS(Univeral Flash Storage ,通用闪存存储器)等存储装置中。本申请从快闪存储器中代码块的挑选策略、架构设计、代码块的创建等各阶段进行了优化,以达到对代码块全方面的保护。下面通过具体的实施例进行详细的描述。
请参阅图1,在本发明的一个实施例中,本发明提出一种存储装置20,存储装置20可接收主机10写入的指令,并存储主机10写入的数据、代码等信息。存储装置20可包括控制模块30、闪存模块40和缓存单元50。控制模块30和主机10之间可通过总线接口电连接,控制模块30和闪存模块40之间可通过闪存接口电连接。控制模块30也可称为主控,作为存储装置20的控制中心,负责控制闪存模块40上数据的识别和读写,控制模块30可完成存储装置20中涉及的所有控制指令操作和数据读写操作。缓存单元50可以是控制模块30使用的内存DRAM(Dynamic Random Access Memory,动态随机存储器),数据暂时存储在缓存单元50中,以缓冲数据交换,并最终将数据写入至闪存模块40中。闪存模块40是数据存储的最终位置,从控制模块30处接收相应的数据并进行长期保存。
请参阅图1,在本发明的一个实施例中,控制模块30可包括中央处理器31、只读存储器32、随机存储器33和缓存控制单元34。中央处理器31可完成只读存储器32、随机存储器33中涉及的所有控制指令操作和数据读写操作。只读存储器(Read Only Memory,ROM)32以非破坏性读出方式工作,只能读出无法写入信息,信息一旦写入后就固定下来。固件(Firmware)是只读存储器32中的驱动程序,通过固件,操作系统才能按照标准的设备驱动实现特定的运行指令。随机存储器(Random Access Memory)33是与中央处理器31直接交换数据的内部存储器。缓存控制单元34与缓存单元50电连接。
请参阅图1,在本发明的一个实施例中,闪存模块40具有独立的页寄存器(pageregister)42和高速缓存寄存器(cache register)43,以优化闪存模块40的访问速度。页寄存器42用以与闪存模块40阵列之间传输数据。高速缓存寄存器43用以与主机10之间传输数据。一个闪存模块40可包括多个区块(block)41,区块41是擦除数据的最小单位。一个区块41可包括多个页(page),页是写入数据的最小单位。
请参阅图1和图2,在本发明的一个实施例中,可将闪存模块40上的多个区块41可设为代码块410,代码块410可包括头部页411、固件页412、备份页413和空白页414。头部页411可位于代码块410的首端位置处,头部页411上可存储代码块410的地址和一些闪存模块40的相关信息,头部页411是只读存储器代码(ROM code)加载的第一个页。固件页412与头部页411相邻,固件页412是只读存储器代码(ROM code)加载的第二个页。固件页412上可存储二进制文件(固件bin文件)。备份页413与头部页411相隔,备份页413可用于备份头部页411上的地址。空白页414可用于存储虚拟代码(dummy data),当代码块410没有被写满时,通过将空白页414上补满虚拟代码,以保证代码块410上数据的稳定性。
请参阅图3,在本发明的一个实施例中,固件页412可包括配置二进制文件页4120、其他二进制文件页4121和算法二进制文件页4122。配置二进制文件页4120上存放rescuecode(第一固件bin代码),存储装置20上电后,只读存储器代码(ROM code)加载rescuecode,rescue code可完成闪存模块40的配置相关代码、控制模块30的初始化动作代码。其他二进制文件页4121上存放back end code(其他固件bin代码),当执行完rescue code,然后跳转到back end code执行,back end code会加载其他的固件bin文件,以进入正常的固件流程。算法二进制文件页4122上存放normal code(算法bin代码),normal code可加载固件算法bin文件,以实现固件算法。
请参阅图1和图2,在本发明的一个实施例中,通过加载只读存储器32上的只读存储器代码,可完成对代码块410上的二进制文件的加载。存储装置20在上电之后,中央处理器31可加载代码块410的头部页411上的地址,获取多个代码块410的地址,然后根据多个代码块410对应的地址,可完成对多个代码块410上的二进制文件进行加载。可扫描闪存模块40上的多个区块41,并在每个区块41上扫描至少一个页,以更快的查询出代码块410的头部页411的地址,获取多个代码块410对应的地址。
请参阅图4,在本发明的一个实施例中,首先,中央处理器31可先加载只读存储器代码页320上的只读存储器代码(ROM code),只读存储器代码(ROM code)是存储装置20上电执行的第一端code(代码),只读存储器代码(ROM code)的功能是加载固件bin文件。由于控制模块30设计完成后,只读存储器代码(ROM code)就固定而无法更改了。因此为了提高固件的灵活性,可在保证固件能够顺利完成加载的前提下,尽可能让只读存储器代码(ROMcode)处理少的流程。因此,只读存储器代码(ROM code)被加载后,可加载头部页411,以确认多个代码块410的地址。按照头部页411上查询到的多个代码块410的地址,加载rescuecode(第一固件bin代码),并从执行只读存储器代码(ROM code)跳转到执行rescue code。在完成闪存模块40的配置代码、控制模块30的初始化动作代码后,可加载back end code,以进入正常的固件流程。
请参阅图2、图3和图4,在本发明的一个实施例中,在闪存模块40上进行多个代码块410的选取时,可将代码块410上的头部页411作为只读存储器代码(ROM code)加载的第一个页。头部页411上存储内容包括代码块410的地址和闪存模块40的基础信息,对整个代码块410的加载十分重要。因此为了防止头部页411出现异常,本发明中的头部页411和备份页413上的地址可相互备份。并且为了防止电压信息、环境噪声、环境温度等影响,可将头部页411和备份页413设施到相隔的位置处。只读存储器代码(ROM code)设计好就不会轻易发生改变,因此为了更好的兼容性,为了快速寻找挑选出其余的代码块410时,通常可扫描多个区块41,并且在每个区块41上可扫描多个页。例如,可一次扫描只读存储器32上的32个区块41,并且在每个区块41上可扫描至少一个页。在闪存模块40中,可将扫描到头部页411的正常区块41设为代码块410。当确定扫描到代码块410上的头部页411时,便停止扫描,并可进入加载rescue code流程中。
请参阅图2、图3和图4,在本发明的一个实施例中,通常情况下,可在每个代码块410上挑选头部页411和备份页413相互备份,但是存在只读存储器代码(ROM code)固定,无法满足所有的闪存模块40的情况。为了支持不同的闪存模块40,需要确定只读存储器代码(ROM code)执行阶段,能否扫描到所有的区块41和页。当无法挑选到足够的代码块410时,可暂且不考虑对二进制文件进行备份,可先考虑将所有的二进制文件存储到代码块410上。因此,当确定代码块410的数量满足备份要求时,可将头部页411上的数据和备份页413上的数据相互备份。当确定代码块410的数量不满足备份要求时,将扫描到具有强属性页(strong page)的区块41设为代码块410。当确定代码块410的数量不满足备份要求,且具有强属性页(strong page)的代码块410的数量仍不满足要求时,可将扫描到具有弱属性页(weak page)的区块41设为代码块410。
请参阅图5,在本发明的一个实施例中,本发明可提出一种存储装置的数据处理方法。可包括步骤S10~S80。S10可表示为在闪存模块40上选取多个区块41作为代码块410。S20可表示为存放多个代码块410的地址到代码块410首端的头部页411上。S30可表示为存放二进制文件到代码块410的固件页412上,固件页412与头部页411相邻。S40可表示为将头部页411上的地址备份到代码块410的备份页413上,备份页413与头部页411相隔。S50可表示为写入虚拟代码到代码块410的空白页414上,填充完代码块410的存储空间。S60可表示为通过控制模块30对闪存模块40上代码的读写进行控制。S70可表示为在控制模块30上设置只读存储器32,在只读存储器32上存放只读存储器代码。S80可表示为通过加载只读存储器32上的只读存储器代码,完成对代码块410上的二进制文件的加载。
请参阅图6,在本发明的一个实施例中,在步骤S20中,在闪存模块40上进行多个代码块410的选取时,可执行步骤S100至步骤S190。步骤S100可表示为确认闪存模块40上的第一个区块41为代码块410。步骤S110可表示为判断所有区块41是否扫描结束,当所有区块41扫描结束时,可进入步骤S190,当所有区块41没有扫描结束时,可进入步骤S120。步骤S190可表示为报错。步骤S120可表示为扫描下一区块41。步骤S130可表示为判断当前区块41是否被扫描到,当前区块41被扫描到时,可进入步骤S140,当前区块41没有被扫描到时,可进入步骤S110。步骤S140可表示为判断当前区块41的头部页411能否被扫描到,当前区块41的头部页411被扫描到时,可进入步骤S150,当前区块41的头部页411没有被扫描到时,可进入步骤S110。步骤S250可表示为当前区块41是否为异常区块,当前区块为异常区块时,可进入步骤S110,当前区块为正常区块时,可进入步骤S160。步骤S160可表示为记录当前区块41为代码块410。步骤S170可表示为判断代码块410的数量是否满足要求,代码块410的数量满足要求时,可进入步骤S180,代码块410的数量不满足要求时,可进入步骤S110。
请参阅图7,在本发明的一个实施例中,由于配置二进制文件页4120和头部页411的加载都是在只读存储器代码(ROM code)阶段,因此其纠错算法和随机化的处理方式在编码阶段都要维持和只读存储器代码(ROM code)阶段的解码方式一致,可包括步骤S200至步骤S280。步骤S200可表示为代码块410的页地址为0。步骤S210可表示为判断代码块410的所有页是否都写完,代码块410的所有页都写完时,可表示为代码块410已创建完成,代码块410的所有页没有写完时,可进入步骤S220。步骤S220可表示为判断当前页是否为弱属性(weak page)的头部页地址,当前页为弱属性(weak page)的头部页地址时,可向该页写入头部页,当前页不是弱属性(weak page)的头部页地址时,可进入步骤S230。步骤S230可表示为判断当前页是否为配置二进制文件页地址,当前页为配置二进制文件页地址时,可向该页写入配置二进制文件页,当前页不是配置二进制文件页地址时,可进入步骤S240。步骤S240可表示为判断当前页是否为其他二进制文件页地址,当前页为其他二进制文件页地址时,可向该页写入其他二进制文件页,当前页不是其他二进制文件页地址时,可进入步骤S250。步骤S250可表示为判断当前页是否为强属性(strong page)的头部页地址,当前页为强属性(strong page)的头部页地址时,可向该页写入头部页,当前页不是强属性(strongpage)的头部页地址时,可进入步骤S270。步骤S270可表示为写入虚拟代码(dummy data)。步骤S280可表示为扫描下一页,并可再次进入步骤S210,以完成代码块410上所有页的创建。
综上所述,本发明提出一种存储装置及其数据处理方法,可加强对固件文件的保护,提高存储装置的安全性能。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种存储装置,其特征在于,包括:
闪存模块,包括多个代码块,所述代码块包括:
头部页,位于所述代码块的首端,用以存储多个所述代码块的地址;
固件页,与所述头部页相邻,用以存储二进制文件;
备份页,与所述头部页相隔,用以备份所述头部页上的地址;
空白页,用以存储虚拟代码,以填充完所述代码块的存储空间;以及
控制模块,电连接于所述闪存模块,所述控制模块包括只读存储器;
其中,通过加载所述只读存储器上的只读存储器代码,完成对所述代码块上所述二进制文件的加载。
2.根据权利要求1所述的一种存储装置,其特征在于,所述固件页包括:
配置二进制文件页,用以存储执行所述闪存模块配置相关的二进制文件;
其他二进制文件页,用以存储其他的二进制文件,以进入固件流程;以及
算法二进制文件页,用以存储固件算法,以实现固件流程。
3.根据权利要求2所述的一种存储装置,其特征在于,在所述存储装置上电后,所述控制模块运行所述只读存储器代码,以加载所述头部页上的地址,并根据多个所述代码块对应的地址,加载多个所述代码块上的二进制文件。
4.根据权利要求3所述的一种存储装置,其特征在于,所述控制模块用以扫描所述闪存模块上的多个区块,并在每个区块上扫描至少一个页,以查询所述代码块的头部页上的地址。
5.根据权利要求2所述的一种存储装置,其特征在于,通过加载所述配置二进制文件页上的二进制文件,完成所述闪存模块的配置、所述控制模块的初始化动作;
通过加载所述其他二进制文件页上的二进制文件,以进入固件流程,并通过加载所述算法二进制文件页上的固件算法,执行固件程序。
6.根据权利要求1所述的一种存储装置,其特征在于,所述闪存模块上的第一个区块设为代码块,在所述闪存模块中,将头部页能被所述只读存储器代码扫描到的正常区块设为代码块。
7.根据权利要求1所述的一种存储装置,其特征在于,当所述闪存模块上所述代码块的数量满足要求时,向多个所述代码块写入二进制文件,当所述闪存模块上所述代码块的数量不满足要求时,进行报错处理。
8.根据权利要求1所述的一种存储装置,其特征在于,当所述闪存模块上所述代码块的数量满足备份要求时,将所述头部页上的地址和所述备份页上的地址相互备份,当所述闪存模块上所述代码块的数量不满足备份要求时,将扫描到具有强属性页的区块设为代码块。
9.根据权利要求8所述的一种存储装置,其特征在于,当所述闪存模块上所述代码块的数量不满足备份要求,且具有强属性页的代码块的数量仍不满足要求时,将扫描到具有弱属性页的区块设为代码块。
10.一种存储装置的数据处理方法,其特征在于,包括:
在所述闪存模块上选取多个区块作为代码块;
存放多个所述代码块的地址到所述代码块首端的头部页上;
存放二进制文件到所述代码块的固件页上,所述固件页与所述头部页相邻;
将所述头部页上的地址备份到所述代码块的备份页上,所述备份页与所述头部页相隔;
写入虚拟代码到所述代码块的空白页上,填充完所述代码块的存储空间;
通过所述控制模块对闪存模块上代码的读写进行控制;
在控制模块上设置只读存储器,在所述只读存储器上存放只读存储器代码;
通过加载所述只读存储器上的只读存储器代码,完成对所述代码块上的二进制文件的加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311734031.5A CN117420964B (zh) | 2023-12-18 | 2023-12-18 | 一种存储装置及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311734031.5A CN117420964B (zh) | 2023-12-18 | 2023-12-18 | 一种存储装置及其数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117420964A true CN117420964A (zh) | 2024-01-19 |
CN117420964B CN117420964B (zh) | 2024-03-22 |
Family
ID=89526970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311734031.5A Active CN117420964B (zh) | 2023-12-18 | 2023-12-18 | 一种存储装置及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117420964B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2651672A1 (de) * | 1975-11-17 | 1977-05-26 | Marconi Co Ltd | Datendecodieranordnung fuer eine anzeigevorrichtung |
KR19990070535A (ko) * | 1998-02-20 | 1999-09-15 | 윤종용 | 플래쉬롬과 램을 이용한 펌웨어 구현 방법 |
US20080040710A1 (en) * | 2006-04-05 | 2008-02-14 | Prevx Limited | Method, computer program and computer for analysing an executable computer file |
CN101634937A (zh) * | 2008-07-21 | 2010-01-27 | 群联电子股份有限公司 | 数据存取方法、使用此方法的存储系统及其控制器 |
JP2011095952A (ja) * | 2009-10-29 | 2011-05-12 | Kyocera Mita Corp | ファームウェア更新方法および電子機器 |
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
CN103679004A (zh) * | 2012-09-19 | 2014-03-26 | Nxp股份有限公司 | 用于安全地更新计算设备中的固件的方法及系统 |
CN105868046A (zh) * | 2015-01-22 | 2016-08-17 | 深圳市硅格半导体有限公司 | 存储装置中管理、写入及加载固件代码的方法 |
US20160300064A1 (en) * | 2015-04-10 | 2016-10-13 | Vixs Systems Inc. | Secure processor for soc initialization |
US20200089894A1 (en) * | 2018-09-18 | 2020-03-19 | Nuvoton Technology Corporation | Data-processsing device and data-protection method thereof |
US20200226026A1 (en) * | 2019-01-16 | 2020-07-16 | Silicon Motion, Inc. | Data storage devices and methods for firmware failure prevention |
CN113656086A (zh) * | 2020-04-28 | 2021-11-16 | 瑞昱半导体股份有限公司 | 安全存储及加载固件的方法及电子装置 |
CN114385552A (zh) * | 2021-12-21 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 一种内存中文件页的页整合方法及装置 |
-
2023
- 2023-12-18 CN CN202311734031.5A patent/CN117420964B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2651672A1 (de) * | 1975-11-17 | 1977-05-26 | Marconi Co Ltd | Datendecodieranordnung fuer eine anzeigevorrichtung |
KR19990070535A (ko) * | 1998-02-20 | 1999-09-15 | 윤종용 | 플래쉬롬과 램을 이용한 펌웨어 구현 방법 |
US20080040710A1 (en) * | 2006-04-05 | 2008-02-14 | Prevx Limited | Method, computer program and computer for analysing an executable computer file |
CN101634937A (zh) * | 2008-07-21 | 2010-01-27 | 群联电子股份有限公司 | 数据存取方法、使用此方法的存储系统及其控制器 |
JP2011095952A (ja) * | 2009-10-29 | 2011-05-12 | Kyocera Mita Corp | ファームウェア更新方法および電子機器 |
US20130326121A1 (en) * | 2012-05-30 | 2013-12-05 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
CN103679004A (zh) * | 2012-09-19 | 2014-03-26 | Nxp股份有限公司 | 用于安全地更新计算设备中的固件的方法及系统 |
CN105868046A (zh) * | 2015-01-22 | 2016-08-17 | 深圳市硅格半导体有限公司 | 存储装置中管理、写入及加载固件代码的方法 |
US20160300064A1 (en) * | 2015-04-10 | 2016-10-13 | Vixs Systems Inc. | Secure processor for soc initialization |
US20200089894A1 (en) * | 2018-09-18 | 2020-03-19 | Nuvoton Technology Corporation | Data-processsing device and data-protection method thereof |
US20200226026A1 (en) * | 2019-01-16 | 2020-07-16 | Silicon Motion, Inc. | Data storage devices and methods for firmware failure prevention |
CN113656086A (zh) * | 2020-04-28 | 2021-11-16 | 瑞昱半导体股份有限公司 | 安全存储及加载固件的方法及电子装置 |
CN114385552A (zh) * | 2021-12-21 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 一种内存中文件页的页整合方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117420964B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US7404031B2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
US7516266B2 (en) | System and method capable of sequentially writing data to a flash memory | |
CN110335635B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
US20080046639A1 (en) | Memory system with nonvolatile semiconductor memory | |
US20050162947A1 (en) | Data management apparatus and method of flash memory | |
US20190310784A1 (en) | Memory module and memory system including memory module | |
US20060018166A1 (en) | Method and managing bad memory blocks in a nonvolatile memory device, and nonvolatile-memory device implementing the management method | |
WO2005093588A2 (en) | Interface for a block addressable mass storage system | |
US6546517B1 (en) | Semiconductor memory | |
CN110489052B (zh) | 数据储存装置 | |
EP1771862A1 (en) | Method and device to improve usb flash write performance | |
JPH1131102A (ja) | データ記憶システム及び同システムに適用するアクセス制御方法 | |
CN110347611B (zh) | 存储器系统和存储器系统的操作方法 | |
US8380920B2 (en) | Flash storage device and data access method of flash memory | |
CN117420964B (zh) | 一种存储装置及其数据处理方法 | |
US8214714B2 (en) | Nonvolatile storage device, controller of nonvolatile memory, and nonvolatile storage system | |
US20190278703A1 (en) | Memory system, operating method thereof and electronic device | |
US8381023B2 (en) | Memory system and computer system | |
CN112988069B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
JP2007234212A (ja) | Nandフラッシュメモリのプログラム方法及びメモリシステムのプログラム方法 | |
US7313651B2 (en) | Method and related apparatus for data migration of disk array | |
US10795771B2 (en) | Information handling system with reduced data loss in block mode | |
US8341378B2 (en) | Data storage device and data access method | |
US20230393974A1 (en) | Memory system and address verification method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |