CN113051184B - 一种数据读取的方法、装置、电子设备及存储介质 - Google Patents
一种数据读取的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113051184B CN113051184B CN201911383561.3A CN201911383561A CN113051184B CN 113051184 B CN113051184 B CN 113051184B CN 201911383561 A CN201911383561 A CN 201911383561A CN 113051184 B CN113051184 B CN 113051184B
- Authority
- CN
- China
- Prior art keywords
- page
- block
- blank
- data
- physical block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000004590 computer program Methods 0.000 claims description 13
- 230000015654 memory Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明一种数据读取的方法、装置、电子设备及存储介质,所述方法包括:查找块一非空白页,读取块一非空白页中数据,并判断读取到的数据是否正确;在读取到的数据正确的情况下,判断块一非空白页中存储的步数是否与页步相等,根据相等与否的情况,确定第一物理块中最后一个正确的页,读取最后一个正确的页至起始页之间的数据。本发明的方法,读取数据时,直接确定出最后一个正确的页,只需要读取出最后一个正确的页至起始页之间的数据,即可迅速的查找到正确的数据,整体上提高了eMMC的运行速率和工作效率。
Description
技术领域
本发明涉及存储器领域,特别是一种数据读取的方法、装置、电子设备及存储介质。
背景技术
eMMC(Embedded Multi Media Card)为嵌入式多媒体卡,eMMC是MMC协会订立的,主要针对手机或平板电脑等电子产品的内嵌式存储器标准规格,eMMC在封装中集成了一个控制器,它提供标准接口并管理闪存,使得厂商能专注于产品开发的其他部分,并缩短向市场推出产品的时间。
目前对eMMC来说,尤其是对eMMC的产品固件(FW)来说,其内需要存储各种数据,尤其是系统数据的存储、查找直接关系到eMMC的运行效率,目前的系统数据存储和查找方法比较繁琐,且系统数据占用的空间也比较大,导致eMMC运行效率差,并且随着eMMC使用时间的加长,庞大的系统数据加上繁琐的查找方法,使得eMMC的运行效率越来越差。
发明内容
鉴于上述问题,本发明提供一种数据读取的方法、装置、电子设备及存储介质,解决了上述问题。
本发明实施例提供了一种数据读取的方法,所述方法应用于eMMC,所述数据在所述eMMC中按照页的顺序存储,需要存储的数据占用所述eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;所述方法包括:所述数据在写入所述eMMC的第一物理块的过程中发生断电后;
查找块一非空白页,所述块一非空白页为所述第一物理块中最后一个非空白页;
读取所述块一非空白页中数据,并判断读取到的数据是否正确;
在读取到的数据正确的情况下,判断所述块一非空白页中存储的步数是否与所述页步相等;
根据相等与否的情况,确定所述第一物理块中最后一个正确的页,所述最后一个正确的页为所述第一物理块中存储正确数据的最后一页;
读取所述最后一个正确的页至起始页之间的数据,所述起始页为所述最后一个正确的页的页序与所述页步加1的值的差值,所述页序表征所述eMMC中按照顺序排列的页的序号。
可选地,在读取所述块一非空白页中数据,并判断读取到的数据是否正确之后,所述方法还包括:
在数据读取错误的情况下,用所述块一非空白页的页序减1得到新的非空白页;
判断所述新的非空白页中存储的步数是否与所述页步相等,并根据相等与否的情况,确定所述最后一个正确的页;
读取所述最后一个正确的页至所述起始页之间的数据。
可选地,根据相等与否的情况,确定所述第一物理块中最后一个正确的页,包括如下步骤:
步骤s1:在所述块一非空白页中存储的步数与所述页步相等的情况下,确定所述块一非空白页为所述第一物理块中最后一个正确的页;
步骤t1:在所述块一非空白页中存储的步数与所述页步不相等的情况下,用所述块一非空白页的页序减去所述块一非空白页中存储的步数得到对应的非空白页;
步骤t2a:在所述对应的非空白页中存储的步数与前一页步相等的情况下,确定所述对应的非空白页为所述第一物理块中最后一个正确的页,所述前一页步为前一次需要存储的数据占用所述eMMC中页的数量;
步骤t2b:在所述对应的非空白页中存储的步数与所述前一页步不相等的情况下,将所述对应的非空白页作为步骤t1中的所述块一非空白页,并返回步骤t1。
可选地,在查找块一非空白页之前,所述方法还包括:
检测需要存储的数据容量的大小;
根据所述需要存储的数据容量的大小和所述eMMC中页容量的大小,确定所述需要存储的数据将要占用的页数,以得到所述需要存储的数据对应的页步;
将所述需要存储的数据按照页序的顺序依次写入所述eMMC中的页,并同时在每一个需要写入数据的页的空闲区中记录对应的步数。
可选地,所述方法还包括:所述数据在写入所述eMMC的过程中第一物理块写满,写入第二物理块时发生断电后;
步骤s1:查找块二非空白页,所述块二非空白页为所述第二物理块中最后一个非空白页;
步骤s2:读取所述块二非空白页中数据,并判断读取到的数据是否正确;
步骤s3:在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序;
步骤s4:在所述块二非空白页的页序等于所述第二物理块首页的页序的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,在读取所述块二非空白页中数据,并判断读取到的数据是否正确之后,所述方法还包括:
步骤u1:在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
步骤u2:在所述块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取所述最后一个正确的页至起始页之间的数据。
可选地,在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值之后,所述方法还包括:
步骤v1:在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与所述页步相等;
步骤v2:在所述块二非空白页中存储的步数与所述页步相等的情况下,确定所述块二非空白页为所述第二物理块中最后一个正确的页;
步骤v3:在所述第二物理块中读取所述块二非空白页至所述起始页之间的数据。
可选地,在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与所述页步相等之后,所述方法还包括:
步骤q1:在所述块二非空白页中存储的步数与所述页步不相等的情况下,用所述块二非空白页的页序减去所述块二非空白页中存储的步数得到新块二非空白页;
步骤q2:判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
步骤q3:在所述新块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值之后,所述方法还包括:
步骤e1:在所述新块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,读取所述新块二非空白页中数据;
步骤e2:在所述新块二非空白页中数据读取错误的情况下,用所述新块二非空白页的页序减1得到另一块二非空白页,返回步骤s2;
步骤e3:在所述新块二非空白页中数据读取正确的情况下,将所述新块二非空白页作为步骤v1中的所述块二非空白页,并返回步骤v1中判断所述块二非空白页中存储的步数是否与所述页步相等的步骤。
可选地,在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序之后,所述方法还包括:
步骤r1:在所述块二非空白页的页序大于所述第二物理块首页的页序的情况下,用所述块二非空白页的页序减1得到另一块二非空白页,并返回步骤s2。
本发明实施例还提供了一种数据读取的装置,所述装置应用于eMMC,所述数据在所述eMMC中按照页的顺序存储,需要存储的数据占用所述eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;所述装置包括:
第一查找模块,用于查找块一非空白页,所述块一非空白页为所述第一物理块中最后一个非空白页;
第一读取判断模块,用于读取所述块一非空白页中数据,并判断读取到的数据是否正确;
第一判断步数和页步模块,用于在读取到的数据正确的情况下,判断所述块一非空白页中存储的步数是否与所述页步相等;
第一确定正确页模块,用于根据相等与否的情况,确定所述第一物理块中最后一个正确的页,所述最后一个正确的页为所述第一物理块中存储正确数据的最后一页;
第一读取数据模块,用于读取所述最后一个正确的页至起始页之间的数据,所述起始页为所述最后一个正确的页的页序与所述页步加1的值的差值,所述页序表征所述eMMC中按照顺序排列的页的序号。
可选地,所述装置还包括:
第一减法模块,用于在数据读取错误的情况下,用所述块一非空白页的页序减1得到新的非空白页;
第一判断确定模块,用于判断所述新的非空白页中存储的步数是否与所述页步相等,并根据相等与否的情况,确定所述最后一个正确的页;
第二读取数据模块,用于读取所述最后一个正确的页至所述起始页之间的数据。
可选地,所述第一确定正确页模块包括:
第一确定正确页子模块,用于在所述块一非空白页中存储的步数与所述页步相等的情况下,确定所述块一非空白页为所述第一物理块中最后一个正确的页;
减法子模块,用于在所述块一非空白页中存储的步数与所述页步不相等的情况下,用所述块一非空白页的页序减去所述块一非空白页中存储的步数得到对应的非空白页;
第二确定正确页子模块,用于在所述对应的非空白页中存储的步数与前一页步相等的情况下,确定所述对应的非空白页为所述第一物理块中最后一个正确的页,所述前一页步为前一次需要存储的数据占用所述eMMC中页的数量;
还用于在所述对应的非空白页中存储的步数与所述前一页步不相等的情况下,将所述对应的非空白页作为步骤t1中的所述块一非空白页,并返回步骤t1。
可选地,所述装置还包括:
检测大小模块,用于检测需要存储的数据容量的大小;
确定页步模块,用于根据所述需要存储的数据容量的大小和所述eMMC中页容量的大小,确定所述需要存储的数据将要占用的页数,以得到所述需要存储的数据对应的页步;
记录步数模块,用于将所述需要存储的数据按照页序的顺序依次写入所述eMMC中的页,并同时在每一个需要写入数据的页的空闲区中记录对应的步数。
可选地,所述装置还包括:
第二查找模块,用于查找块二非空白页,所述块二非空白页为所述第二物理块中最后一个非空白页;
第二读取判断模块,用于读取所述块二非空白页中数据,并判断读取到的数据是否正确;
第一判断页序模块,用于在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序;
第一切换模块,用于在所述块二非空白页的页序等于所述第二物理块首页的页序的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,所述装置还包括:
第二判断页序模块,用于在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
第二切换模块,用于在所述块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取所述最后一个正确的页至起始页之间的数据。
可选地,所述装置还包括:
第二判断步数和页步模块,用于在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与所述页步相等;
第二确定正确页模块,用于在所述块二非空白页中存储的步数与所述页步相等的情况下,确定所述块二非空白页为所述第二物理块中最后一个正确的页;
第三读取数据模块,用于所述第二物理块中读取所述块二非空白页至所述起始页之间的数据。
可选地,所述装置还包括:
第二减法模块,用于在所述块二非空白页中存储的步数与所述页步不相等的情况下,用所述块二非空白页的页序减去所述块二非空白页中存储的步数得到新块二非空白页;
第一判断和值模块,用于判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
第三切换模块,用于在所述新块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,所述装置还包括:
第四读取数据模块,用于在所述新块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,读取所述新块二非空白页中数据;
错误返回模块,用于在所述新块二非空白页中数据读取错误的情况下,用所述新块二非空白页的页序减1得到另一块二非空白页,返回步骤s2;
正确返回模块,用于在所述新块二非空白页中数据读取正确的情况下,将所述新块二非空白页作为步骤v1中的所述块二非空白页,并返回步骤v1中判断所述块二非空白页中存储的步数是否与所述页步相等的步骤。
可选地,所述装置还包括:
页序大于返回模块,用于在所述块二非空白页的页序大于所述第二物理块首页的页序的情况下,用所述块二非空白页的页序减1得到另一块二非空白页,并返回步骤s2。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明以上任一所述的方法中的步骤。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本发明以上任一所述的方法中的步骤。
本发明提供的一种数据读取的的方法,存储数据时,在存储数据的页的空闲区中记录对应的步数,eMMC运行时,首先查找块一非空白页,读取块一非空白页中数据,并判断读取到的数据是否正确,在读取到的数据正确的情况下,判断块一非空白页中存储的步数是否与页步相等;根据相等与否的情况,确定第一物理块中最后一个正确的页,最后读取最后一个正确的页至起始页之间的数据。采用本发明的方法,读取数据时,直接确定出最后一个正确的页,只需要读取出最后一个正确的页至起始页之间的数据,即可迅速的查找到正确的数据,整体上提高了eMMC的运行速率和工作效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例一种数据读取的方法的流程图;
图2是本发明第一物理块写满,写入第二物理块时发生断电后,数据读取的方法的流程图;
图3是本发明实施例eMMC中物理块存储数据的示意图;
图4是本发明实施例一种数据读取的装置的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
发明人发现,目前在eMMC非正常失电后,进行数据读取会有较高概率读取出错误数据,这是因为eMMC在非正常失电后进行读取数据的操作,是直接从最后写入数据的物理块的最后一个非空白页进行读取的,而最后一个非空白页中可能并不是完整的数据,所以就会造成读取到的数据错误。
例如:目前eMMC的数据写入是按照页的顺序依次进行的,假设某待写入数据的大小为8Kbyte,eMMC中一个page(页)的大小为4Kbyte,那么该数据会占用两个page,假设该数据写入eMMC中block1(第1物理块),那么这8Kbyte的数据将会写入block1的page0(第0页)和page1(第1页);假设待写入数据的大小不满一页,则也按照一页算,假设某一数据的大小为2Kbyte,那么该数据占用一个4Kbyte大小的页page0,下一次再写入数据时,数据的起始写入位置为page1,而不会再写入page0;同理,假设待写入数据的大小为9Kbyte,那么该数据写入eMMC时,会占用3个页,即page0、page1以及page2,其中page0和page1是满大小写入的,而page2中只写入1Kbyte大小,再有新的数据写入时,会从page3开始写入。
上述写入数据的过程中假若出现非正常失电情况,会有三种情况:
1、写入一个完整的页后非正常失电;
2、正在写一个页时非正常失电;
3、跨block写入数据时非正常失电。
上述三种情况具体来讲:
1、假设待写入数据需要占用10个page,在完整地写入page0或者page1……page8后非正常失电,例如在完整写入page7后,还没有开始page8的写入时,发生了非正常失电的情况;
2、假设待写入数据需要占用10个page,在写入page0或者page1……page9时非正常失电,例如正在对page8写入时,发生了非正常失电的情况;
3、假设待写入数据需要占用10个page,而block0只剩下2个page可以写入,因此根据eMMC的性质,就需要将这10个page的数据全部写入到block1的page0~page9中,在向block1的page0~page9写入时非正常失电,例如正在对block1中page6写入时,发生了非正常失电的情况,或者完整写入block1中page5后,还没有开始page6的写入时,发生了非正常失电的情况。
上述非正常失电发生后,在eMMC上电进行读取数据操作时,就会读取到错误的并且不完整的数据,那么eMMC就需要重新进行读取数据操作,直到读取到正确的数据,这样就导致eMMC的运行效率很低。
基于以上问题,发明人经过深入研究,结合eMMC自身的特点,经过大量实地测试,大胆地、创造性的提出本发明的数据读取方法。以下对发明人提出的解决方案进行详细解释和说明。
参照图1,示出了本发明实施例一种数据读取的方法的流程图,该方法应用于eMMC,数据在eMMC中按照页的顺序存储,需要存储的数据占用eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;数据读取的具体方法可以包括:数据在写入eMMC的第一物理块的过程中发生断电后;
步骤101:查找块一非空白页,块一非空白页为第一物理块中最后一个非空白页。
本发明实施例中,在eMMC进行数据存储时,需要存储的数据在eMMC中按照页的顺序存储,需要存储的数据占用eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数。
假设在数据在写入eMMC的第一物理块的过程中发生断电,那么在断电后,eMMC重新上电后,eMMC读取进行读取数据操作时,首先查找块一的非空白页,所谓块一非空白页即为第一物理块中最后一个非空白页。
可选地,在查找块一非空白页之前,数据首先需要存储进eMMC中,本发明的方法还包括:
步骤a1:检测需要存储的数据容量的大小;
步骤a2:根据需要存储的数据容量的大小和eMMC中页容量的大小,确定需要存储的数据将要占用的页数,以得到需要存储的数据对应的页步;
步骤a3:将需要存储的数据按照页序的顺序依次写入eMMC中的页,并同时在每一个需要写入数据的页的空闲区中记录对应的步数。
本发明实施例中,在eMMC进行数据存储时,eMMC首先会检测需要存储的数据容量的大小,之后再根据需要存储的数据容量的大小和eMMC中页容量的大小,确定出需要存储的数据将要占用的页数,以得到需要存储的数据对应的页步。得到需要存储的数据对应的页步后,在写入需要存储的数据过程中,将需要存储的数据按照页序的顺序依次写入eMMC中的页,需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数。
作为一个示例:假设eMMC中有两个物理块:第一物理块(block0)和第二物理块(block1)用于存储数据,block0和block1均有20个page,地址为0~19,假设某待写入数据的大小为25Kbyte,eMMC中一个page(页)的大小为4Kbyte,那么该25Kbyte大小的数据会占用7个page。
假设eMMC的block0中page0~page7这前8个page已经存入数据,并且该存入的数据正确,那么上述25Kbyte的数据将会写入block0的page8(第9页)、page9(第10页)、page10(第11页)、page11(第12页)、page12(第13页)、page13(第14页)、page14(第15页);其中,page8~page13为满大小写入,page14只占用了1Kbyte大小。但下一次再写入数据时,数据的起始写入位置为page15,而不会再写入page14。
上述25Kbyte大小的数据会占用7个page,那么其对应的页步为7,在写入这25Kbyte大小的数据的过程中,在page8的空闲区中会记录步数1、在page9的空闲区中会记录步数2、在page10的空闲区中会记录步数3、在page11的空闲区中会记录步数4、在page12的空闲区中会记录步数5、在page13的空闲区中会记录步数6、在page15的空闲区中会记录步数7。
若上述25Kbyte大小的数据在写入的过程中,发生了断电,那么在断电后eMMC重新上电,进行读取数据操作时,eMMC首先需要查找block0中最后一个非空白页,所谓非空白页就是写入数据的页。
步骤102:读取块一非空白页中数据,并判断读取到的数据是否正确。
本发明实施例中,eMMC查找到块一非空白页后,读取块一非空白页中的数据,并判断读取到的数据是否正确。
步骤103:在读取到的数据正确的情况下,判断块一非空白页中存储的步数是否与页步相等。
本发明实施例中,eMMC对读取到的数据进行判断,判断读取到的数据是否正确,在读取到的数据正确的情况下,再判断块一非空白页中存储的步数是否与页步相等。
需要说明的是,eMMC发生断电的情况有三种类型:
1、写入一个完整的页后非正常失电;
2、正在写一个页时非正常失电;
3、跨block写入数据时非正常失电。
其中,发生第1种情况时,因为是写完一个完整的页后失电,则写完的页中数据是正确,而后一页还没开始写,就是空白页,所以eMMC读取到的块一非空白页的数据会是正确的;发生第2中情况时,因为是正在写一个页的时候失电,则该页中数据是不完整的,而后一页也还没开始写,就是空白页,所以eMMC读取到的块一非空白页的数据会是错误的;第3种情况下文对应处有解释说明,在此先不做赘述。
综上所述,只有eMMC在写入一个完整的页后非正常失电的情况下,eMMC读取的块一非空白页才会是正确的。
沿用上述示例:25Kbyte的数据写入block0的page8(第9页)、page9(第10页)、page10(第11页)、page11(第12页)、page12(第13页)、page13(第14页)、page14(第15页);其中,在写完page8,还没有写入page9时,发生了非正常失电,那么page8中的数据是完整且正确的,而page9还是空白页,那么在重新上电后,eMMC查找到块一空白页就为page8,且读取page8中数据是正确的,之后再判断page8中存储的步数是否与页步7相等。或者25Kbyte的数据全部写完,即写完page14后发生非正常失电,由于后续也没有数据再写入,因此page15是空白页,eMMC查找到块一空白页就为page14,且读取page14中数据是正确的,之后再判断page14中存储的步数是否与页步7相等。
步骤104:根据相等与否的情况,确定第一物理块中最后一个正确的页,最后一个正确的页为第一物理块中存储正确数据的最后一页。
本发明实施例中,在eMMC判断块一非空白页中存储的步数是否与页步相等之后,eMMC根据两者相等与否的情况,确定出第一物理块中最后一个正确的页,所谓最后一个正确的页,其为第一物理块中存储正确数据的最后一页,也即需要存储的数据全部写入完成后,结尾数据所在的页。
沿用上述示例:eMMC查找到块一空白页为page8,之后再判断page8中存储的步数1与页步7相等与否的情况,确定出第一物理块中最后一个正确的页;或者eMMC查找到块一空白页为page14,之后再判断page14中存储的步数7与页步7相等与否的情况,确定出第一物理块中最后一个正确的页。
可选地,步骤104具体包括:
步骤s1:在块一非空白页中存储的步数与页步相等的情况下,确定块一非空白页为第一物理块中最后一个正确的页;
本发明实施例中,在eMMC读取到的块一非空白页的数据正确的情况下,再判断块一非空白页中存储的步数是否与页步相等,在块一非空白页中存储的步数与页步相等的情况下,eMMC直接确定块一非空白页为第一物理块中最后一个正确的页。
沿用上述示例:eMMC查找到块一空白页为page14,之后再判断page14中存储的步数7与页步7相等,则确定出block0中最后一个正确的页就为page14。
步骤t1:在块一非空白页中存储的步数与页步不相等的情况下,用块一非空白页的页序减去块一非空白页中存储的步数得到对应的非空白页;
本发明实施例中,在eMMC读取到的块一非空白页的数据正确的情况下,再判断块一非空白页中存储的步数是否与页步相等,在块一非空白页中存储的步数与页步不相等的情况下,eMMC需要用块一非空白页的页序减去块一非空白页中存储的步数得到对应的非空白页。
沿用上述示例:eMMC查找到块一空白页为page8,之后再判断page8中存储的步数1与页步7不相等,则eMMC需要用page8的页序:9减去page8中存储的步数:1,得到对应的非空白页的页序8,其对应page7。其中所谓页序表征eMMC中按照顺序排列的页的序号,即,page0的页序就是1、page1的页序就是2……page7的页序就是8,以此类推。
步骤t2a:在对应的非空白页中存储的步数与前一页步相等的情况下,确定对应的非空白页为第一物理块中最后一个正确的页,前一页步为前一次需要存储的数据占用eMMC中页的数量;
本发明实施例中,eMMC得到对应的非空白页后,在对应的非空白页中存储的步数与前一页步相等的情况下,确定对应的非空白页为第一物理块中最后一个正确的页,所谓前一页步为前一次需要存储的数据占用eMMC中页的数量。
沿用上述示例:eMMC得到对应的非空白页:page7后,同样的,page7中空闲区中会有前一次需要存储的数据写入时记录的步数(假设前一次需要存储的数据写入时记录的步数为3),eMMC还需要判断page7中存储的步数3与前一页步是否相等,前一页步为前一次需要存储的数据需要占用的页,假设前一页步为3,那么page7中存储的步数3与前一页步3相等,确定page7为第一物理块中最后一个正确的页。
步骤t2b:在对应的非空白页中存储的步数与前一页步不相等的情况下,将对应的非空白页作为步骤t1中的块一非空白页,并返回步骤t1。
本发明实施例中,eMMC得到对应的非空白页后,还可能会出现对应的非空白页中存储的步数与前一页步不相等的情况,此时,将对应的非空白页作为步骤t1中的块一非空白页,重新返回到步骤t1,再按照t1以及之后的步骤去处理,直到确定出第一物理块中最后一个正确的页。
步骤105:读取最后一个正确的页至起始页之间的数据,起始页为最后一个正确的页的页序与页步加1的值的差值,页序表征eMMC中按照顺序排列的页的序号。
本发明实施例中,在eMMC确定出第一物理块中最后一个正确的页之后,读取最后一个正确的页至起始页之间的数据,所谓起始页为最后一个正确的页的页序与页步加1的值的差值。
沿用上述示例:在eMMC确定出block0中最后一个正确的页为page14之后,读取page14至page8之间的数据,其中page8即为起始页,其是由最后一个正确的页page14的页序15与页步7加1的值的差值确定的,即,15-7+1=9,9即为起始页的页序,对应的页为page8。
可选地,在步骤102:读取块一非空白页中数据,并判断读取到的数据是否正确之后,还有另外一种情况,具体为:
步骤106:在数据读取错误的情况下,用块一非空白页的页序减1得到新的非空白页;
本发明实施例中,若eMMC是正在写一个页时发生非正常失电;因为是正在写一个页的时候失电,则该页中数据是不完整的,而后一页也还没开始写,就是空白页,所以eMMC读取到的块一非空白页的数据会是错误的;在数据读取错误的情况下,eMMC用块一非空白页的页序减1得到新的非空白页。
沿用上述示例:25Kbyte的数据写入block0的page8(第9页)、page9(第10页)、page10(第11页)、page11(第12页)、page12(第13页)、page13(第14页)、page14(第15页);其中,在写入page9的过程中,发生了非正常失电,那么page9中的数据是不完整的,而page10还是空白页,那么在重新上电后,eMMC查找到块一空白页就为page9,且读取page9中数据是错误的,之后用page9的页序10减1得到新的非空白页:page8(页序为9)。
步骤107:判断新的非空白页中存储的步数是否与页步相等,并根据相等与否的情况,确定最后一个正确的页;
步骤108:读取最后一个正确的页至起始页之间的数据。
本发明实施例中,eMMC得到新的非空白页后,需要判断新的非空白页中存储的步数是否与页步相等,并根据相等与否的情况,确定最后一个正确的页,这与上述步骤104的确定最后一个正确的页的方法相同,同样需要对新的非空白页中存储的步数与页步是否相等的情况进行判断,并根据相等与否的情况,确定出第一物理块中最后一个正确的页,之后再读取最后一个正确的页至起始页之间的数据。
沿用上述示例:eMMC得到新的非空白页page8后,判断page8中步数1与页步7不相等,那么用page8的页序9减去其步数1得到对应的非空白页page7,判断page7中存储的步数3与前一页步3相等,确定page7为第一物理块中最后一个正确的页。最后将page7~page5之间的数据读取出来。
上述的方案是eMMC的非正常失电发生在写入同一物理块中页的情况后,进行数据读取的方法,而eMMC的非正常失电还可能发生在第一物理块写满,写入第二物理块时,参照图2,示出了本发明实施例第一物理块写满,写入第二物理块时发生断电后,数据读取的方法的流程图,其包括:
步骤s1:查找块二非空白页,块二非空白页为第二物理块中最后一个非空白页;
本发明实施例中,若第一物理块写满,写入第二物理块时发生断电后,那么最后一个非空白页肯定在第二物理块中,因此,eMMC直接在第二物理块中查找块儿非空白页,所谓块二非空白页为第二物理块中最后一个非空白页。需要说明的是,所谓第一物理块写满是指第一物理块无法完全写入需要存储的数据,例如第一物理块目前只剩余2页的空白页,而当前需要存储的数据需要占用4页,那么eMMC将当前需要存储的数据直接往第二物理块中写入,而并不是在第一物理块中写入2页,在第二物理块中写入2页。
沿用上述示例:假设block0只剩余page17(第18页)、page18(第19页)、page19(第20页),那么25Kbyte的数据无法写入block0的page17(第18页)、page18(第19页)、page19(第20页),eMMC直接将25Kbyte的数据写入block1的page0(第1页)、page1(第2页)、page2(第3页)、page3(第4页)、page4(第5页)、page5(第6页)、page6(第7页);其中,在写入block1的page0时,发生了非正常失电,那么block1的page0中的数据是不完整的,而block1的page1还是空白页,那么在重新上电后,eMMC查找到块二空白页就为block1的page0。
步骤s2:读取块二非空白页中数据,并判断读取到的数据是否正确;
步骤s3:在块二非空白页中读取到的数据错误的情况下,判断块二非空白页的页序是否大于第二物理块首页的页序;
本发明实施例中,eMMC查找到块儿非空白页后,读取块二非空白页中数据,并判断读取到的数据是否正确。判断结果分两种情况,一种是读取到的数据是正确的,一种是读取到的数据是错误的,在块二非空白页中读取到的数据错误的情况下,判断块二非空白页的页序是否大于第二物理块首页的页序。另一种块二非空白页中读取到的数据正确的情况下文对应处解释,在此先不做赘述。
沿用上述示例:eMMC查找到块二空白页为block1的page0,读取block1的page0中数据,判断是否正确,在page0中读取到的数据是错误的情况下,判断page0的页序1是否大于block1首页的页序1。
步骤s4:在块二非空白页的页序等于第二物理块首页的页序的情况下,切换至第一物理块中,在第一物理块中查找最后一个正确的页,以在第一物理块中读取该最后一个正确的页至起始页之间的数据。
本发明实施例中,eMMC在块二非空白页的页序等于第二物理块首页的页序的情况下,直接切换至第一物理块中,在第一物理块中按照上述步骤101~步骤105任一所述的方法,在第一物理块中查找到最后一个正确的页,以在第一物理块中读取该最后一个正确的页至起始页之间的数据。
沿用上述示例:eMMC判断page0的页序1等于block1首页的页序1,eMMC直接切换至block0中,在block0中按照上述步骤101~步骤105任一所述的方法,在block0中查找到最后一个正确的页,以在block0中读取该最后一个正确的页至起始页之间的数据。
可选地,在块二非空白页的页序大于第二物理块首页的页序的情况下,用块二非空白页的页序减1得到另一块二非空白页,并在此返回步骤s2。
沿用上述示例:假设在写入block1的page1时,发生了非正常失电,那么block1的page1中的数据是不完整的,而block1的page2还是空白页,那么在重新上电后,eMMC查找到块二空白页就为block1的page1且数据是错误的,eMMC判断block1的page1的页序2大于block1首页的页序1,eMMC用block1的page1的页序2减1得到另一块二非空白页:block1的page0,之后再返回s2继续后续步骤。
可选地,上述步骤s2中判断读取到的块二非空白页中数据是否正确的另一种可能性是,读取到的块二非空白页中数据是正确的,那么读取数据的方法包括:
步骤u1:在块二非空白页中读取到的数据正确的情况下,判断块二非空白页的页序是否不小于第二物理块首页的页序与页步减1的值的和值;
步骤u2:在块二非空白页的页序小于第二物理块首页的页序与页步减1的值的和值的情况下,切换至第一物理块中,在第一物理块中查找最后一个正确的页,以在第一物理块中读取最后一个正确的页至起始页之间的数据。
本发明实施例中,eMMC查找到块儿非空白页后,读取块二非空白页中数据,并判断读取到的数据正确,那么在块二非空白页中读取到的数据正确的情况下,判断块二非空白页的页序是否不小于第二物理块首页的页序与页步减1的值的和值,并在块二非空白页的页序小于第二物理块首页的页序与页步减1的值的和值的情况下,切换至第一物理块中,在第一物理块中查找最后一个正确的页,以在第一物理块中读取最后一个正确的页至起始页之间的数据。另外一种块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况,下文对应处有解释。
沿用上述示例:假设25Kbyte的数据在写完block1的page1后,还没有写入block1的page2时发生了非正常失电,那么block1的page1中的数据是完整且正确的,而block1的page2还是空白页,那么在重新上电后,eMMC查找到块二空白页就为block1的page1,在block1的page1中读取到的数据正确的情况下,判断block1的page1的页序2小于block1首页的页序1与页步7减1的值的和值,即block1的page1的页序2小于1+7-1=7,eMMC直接切换至block0中,在block0中查找最后一个正确的页,以在block0中读取最后一个正确的页至起始页之间的数据。
上述在块二非空白页中读取到的数据正确的情况下,判断块二非空白页的页序是否不小于第二物理块首页的页序与页步减1的值的和值之后,还有另一情况:
步骤v1:在块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,判断块二非空白页中存储的步数是否与页步相等;
步骤v2:在块二非空白页中存储的步数与页步相等的情况下,确定块二非空白页为第二物理块中最后一个正确的页;
步骤v3:在第二物理块中读取块二非空白页至起始页之间的数据。
本发明实施例中,eMMC查找到块儿非空白页后,读取块二非空白页中数据,并判断读取到的数据正确,那么在块二非空白页中读取到的数据正确的情况下,判断块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,再判断块二非空白页中存储的步数是否与页步相等,这里又分两种情况,一种是块二非空白页中存储的步数与页步相等的情况;一种是块二非空白页中存储的步数与页步不相等的情况。
在块二非空白页中存储的步数与页步相等的情况下,确定块二非空白页为第二物理块中最后一个正确的页,最后在第二物理块中读取块二非空白页至起始页之间的数据。
沿用上述示例:假设25Kbyte的数据在写完block1的page15时发生了非正常失电,那么block1的page15中的数据是完整的,那么在重新上电后,eMMC查找到块二空白页就为block1的page15,在block1的page15中读取到的数据正确的情况下,判断block1的page15的页序16不小于block1首页的页序1与页步7减1的值的和值,即block1的page15的页序16不小于1+7-1=7,eMMC判断block1的page15中存储的步数7是否与页步7相等。
eMMC在block1的page15中存储的步数7与页步7相等的情况下,确定block1的page15为block1中最后一个正确的页,最后在block1中读取block1的page15至起始页block1的page9之间的数据。
上述过程中,在块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,eMMC判断块二非空白页中存储的步数与页步不相等的情况:
步骤q1:在块二非空白页中存储的步数与页步不相等的情况下,用块二非空白页的页序减去块二非空白页中存储的步数得到新块二非空白页;
步骤q2:判断新块二非空白页的页序是否不小于第二物理块首页的页序与页步减1的值的和值;
步骤q3:在新块二非空白页的页序小于第二物理块首页的页序与页步减1的值的和值的情况下,切换至第一物理块中,在第一物理块中查找最后一个正确的页,以在第一物理块中读取该最后一个正确的页至起始页之间的数据。
本发明实施例中,eMMC在块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,判断块二非空白页中存储的步数与页步不相等,则eMMC用块二非空白页的页序减去块二非空白页中存储的步数得到新块二非空白页;再次判断新块二非空白页的页序是否不小于第二物理块首页的页序与页步减1的值的和值,判断结果也有两种情况,一种情况是新块二非空白页的页序小于第二物理块首页的页序与页步减1的值的和值的情况;另一种情况是新块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况。
在新块二非空白页的页序小于第二物理块首页的页序与页步减1的值的和值的情况下,eMMC直接切换至第一物理块中,在第一物理块中查找最后一个正确的页,以在第一物理块中读取该最后一个正确的页至起始页之间的数据。
沿用上述示例:eMMC判断block1的page15中存储的步数10与页步7不相等,则eMMC用block1的page15的页序16减去block1的page15中存储的步数10得到新块二非空白页block1的page5(其页序为6);再次判断block1的page5的页序6是否不小于block1首页的页序1与页步7减1的值的和值。
eMMC在block1的page5的页序6小于block1首页的页序1与页步7减1的值的和值7的情况下,eMMC直接切换至block0中,在block0中查找最后一个正确的页,以在block0中读取最后一个正确的页至起始页之间的数据。
同样的,eMMC在判断新块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下:
步骤e1:在新块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,读取新块二非空白页中数据;
步骤e2:在新块二非空白页中数据读取错误的情况下,用新块二非空白页的页序减1得到另一块二非空白页,返回步骤s2;
步骤e3:在新块二非空白页中数据读取正确的情况下,将新块二非空白页作为步骤v1中的块二非空白页,并返回步骤v1中判断块二非空白页中存储的步数是否与页步相等的步骤。
本发明实施例中,eMMC在新块二非空白页的页序不小于第二物理块首页的页序与页步减1的值的和值的情况下,eMMC读取新块二非空白页中数据,之后又有两种情况,一种情况是新块二非空白页中数据读取错误的情况;另一种是新块二非空白页中数据读取正确的情况。
在新块二非空白页中数据读取错误的情况下,eMMC用新块二非空白页的页序减1得到另一块二非空白页,并直接返回步骤s2,之后再按照步骤s2以及步骤s2之后的方法,确定出最后一个正确的页。
在新块二非空白页中数据读取正确的情况下,eMMC将新块二非空白页作为步骤v1中的块二非空白页,并返回步骤v1中判断块二非空白页中存储的步数是否与页步相等的步骤,之后再按照步骤v1以及步骤v1之后的方法,确定出最后一个正确的页。
沿用上述示例:eMMC判断block1的page15中存储的步数8与页步7不相等,则eMMC用block1的page15的页序16减去block1的page15中存储的步数8得到新块二非空白页block1的page7(其页序为8);再次判断block1的page7的页序8不小于block1首页的页序1与页步7减1的值的和值7,之后,eMMC读取block1的page7中数据。
eMMC在block1的page7中数据读取错误的情况下,eMMC用block1的page7的页序8减1得到另一块二非空白页block1的page6,并直接返回步骤s2,之后再按照步骤s2以及步骤s2之后的方法,确定出最后一个正确的页
eMMC在block1的page7中数据读取正确的情况下,eMMC将block1的page7作为步骤v1中的块二非空白页,并返回步骤v1中判断块二非空白页中存储的步数是否与页步相等的步骤,之后再按照步骤v1以及步骤v1之后的方法,确定出最后一个正确的页。
参照图3,示出了本发明实施例eMMC中物理块存储数据的示意图,结合图3,本发明的方案具体是:
假设需要存储的数据现在主需要block0就可以完全写入,最新的数据需要占用8个页page13~page20来完成数据写入,那么页步就为8,page21和page22没有数据写入,为空白页。
假若刚好在数据写完,即,page20中数据写完后,发生非正常失电,那么重新上电后,eMMC查找最后一个非空白页为page20,读取page20中数据正确,之后判断page20的空闲区记录的步数8等于页步8,则page20为最后一个正确的页,将最后一个正确的页page20至起始页page13(页序为:21-8+1=14)读取出来,即为正确的数据。
假若在写入page20过程中发生非正常失电,那么重新上电后,eMMC查找最后一个非空白页为page20,读取page20中数据错误,就用page20的页序21减1得到page19的页序20,之后判断page19的空闲区记录的步数7不等于页步8,则用最后一个非空白页page19的页序20减去其记录的步数7得到页序13,其对应page12,再次读取page12中的数据,并判断读取到的数据正确,之后判断page12的空闲区记录的步数5等于前一页步5,则page12为最后一个正确的页,将最后一个正确的页page12至起始页page7(页序为:12-5+1=8)读取出来,即为正确的数据,即,最新写入的需要占用8个页的数据是错误的,需要重新写入。
假设最新的数据占用8个页page13~page20完成数据写入且正确,之后,又需要写入占用12个页的数据到eMMC,由于block0中只剩下两个页,并不能实现数据写入,因此,就需要直接将其写入block1中,占用block1的page0~page11。
假若在写入page0时,发生非正常失电,那么重新上电后,eMMC查找最后一个非空白页为page0,读取page0的数据错误,判断page0的页序1等于block1首页页序1,那么eMMC直接切换到block0中去查找最后一个正确的页。
假若在写入page5时,发生非正常失电,那么重新上电后,eMMC查找最后一个非空白页为page5,读取page5的数据错误,判断page5的页序6大于block1首页页序1,那么用page5的页序6减1得到页序5,对应page4,再次读取page4的数据且正确,判断page4的页序5小于block1首页页序1加页步减1(1+12-1=12),那么eMMC直接切换到block0中去查找最后一个正确的页。
假若在写完page11后,发生非正常失电,那么重新上电后,eMMC查找最后一个非空白页为page11,读取page11的数据正确,判断page11的页序12等于block1首页页序1加页步减1(1+12-1=12),之后,判断page11的空闲区记录的步数12与页步12相等,那么eMMCpage11是最后一个正确的页,将最后一个正确的页page11至起始页page0(页序为:12-12+1=1)读取出来,即为正确的数据。
假若又有新数据需要写入,占用block1的page12~page13,在写完page12,还未写入page13时发生非正常失电,那么读取page12中数据正确,判断page12的页序13大于block1首页页序1加页步减1(1+12-1=12),之后,再判断page12的空闲区记录的步数1与页步2不相等,则用page12的页序13减去其记录的步数1得到页序12,对应page11,再次读取page11中数据,判断读取到的数据是否正确,假若读取到的数据正确,那么返回判断page11的页序是否不小于block1首页页序1加页步减1(1+12-1=12)的步骤,再次执行上述方法,以得到最后一个正确的页;假若读取到page11的数据错误,那么用page11的页序12减1得到页序11,对应page10,并返回读取page10中的数据是否正确的步骤,再次执行上述方法,以得到最后一个正确的页。
另外,本发明实施例中,根据系统数据的特性,eMMC用来存储系统数据只使用两个物理块,在其中一个物理块写满后,向另一个物理块写入系统数据,当另一个物理块也写满后,将前一个物理块中系统数据擦除,再向前一个物理块写入系统数据,如此反复,一直到其中一个物理块的擦除次数达到上限,之后才使用第三个物理块写入写入数据。这样也保证了系统数据占用的空间减小。
需要说明的是,上述所例举的示例,只是为了更好的解释本发明实施例而例举的简单数据,实际应用中,按照以上所述方法,设定好eMMC中每一页的页序,计算好需要存储数据的页步,记录好每一页空闲区中步数,就可以迅速、直接的找到最后一个正确的页,从而正确、迅速的进行数据读取。
参照图4,示出了本发明实施例一种数据读取的装置的框图,该装置应用于eMMC,所述数据在所述eMMC中按照页的顺序存储,需要存储的数据占用所述eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;数据读取的装置包括:
第一查找模块310,用于查找块一非空白页,所述块一非空白页为所述第一物理块中最后一个非空白页;
第一读取判断模块320,用于读取所述块一非空白页中数据,并判断读取到的数据是否正确;
第一判断步数和页步模块330,用于在读取到的数据正确的情况下,判断所述块一非空白页中存储的步数是否与所述页步相等;
第一确定正确页模块340,用于根据相等与否的情况,确定所述第一物理块中最后一个正确的页,所述最后一个正确的页为所述第一物理块中存储正确数据的最后一页;
第一读取数据模块350,用于读取所述最后一个正确的页至起始页之间的数据,所述起始页为所述最后一个正确的页的页序与所述页步加1的值的差值,所述页序表征所述eMMC中按照顺序排列的页的序号。
可选地,数据读取的装置还包括:
第一减法模块,用于在数据读取错误的情况下,用所述块一非空白页的页序减1得到新的非空白页;
第一判断确定模块,用于判断所述新的非空白页中存储的步数是否与所述页步相等,并根据相等与否的情况,确定所述最后一个正确的页;
第二读取数据模块,用于读取所述最后一个正确的页至所述起始页之间的数据。
可选地,所述第一确定正确页模块包括:
第一确定正确页子模块,用于在所述块一非空白页中存储的步数与所述页步相等的情况下,确定所述块一非空白页为所述第一物理块中最后一个正确的页;
减法子模块,用于在所述块一非空白页中存储的步数与所述页步不相等的情况下,用所述块一非空白页的页序减去所述块一非空白页中存储的步数得到对应的非空白页;
第二确定正确页子模块,用于在所述对应的非空白页中存储的步数与前一页步相等的情况下,确定所述对应的非空白页为所述第一物理块中最后一个正确的页,所述前一页步为前一次需要存储的数据占用所述eMMC中页的数量;
还用于在所述对应的非空白页中存储的步数与所述前一页步不相等的情况下,将所述对应的非空白页作为步骤t1中的所述块一非空白页,并返回步骤t1。
可选地,数据读取的装置还包括:
检测大小模块,用于检测需要存储的数据容量的大小;
确定页步模块,用于根据所述需要存储的数据容量的大小和所述eMMC中页容量的大小,确定所述需要存储的数据将要占用的页数,以得到所述需要存储的数据对应的页步;
记录步数模块,用于将所述需要存储的数据按照页序的顺序依次写入所述eMMC中的页,并同时在每一个需要写入数据的页的空闲区中记录对应的步数。
可选地,数据读取的装置还包括:
第二查找模块,用于查找块二非空白页,所述块二非空白页为所述第二物理块中最后一个非空白页;
第二读取判断模块,用于读取所述块二非空白页中数据,并判断读取到的数据是否正确;
第一判断页序模块,用于在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序;
第一切换模块,用于在所述块二非空白页的页序等于所述第二物理块首页的页序的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,数据读取的装置还包括:
第二判断页序模块,用于在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
第二切换模块,用于在所述块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取所述最后一个正确的页至起始页之间的数据。
可选地,数据读取的装置还包括:
第二判断步数和页步模块,用于在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与所述页步相等;
第二确定正确页模块,用于在所述块二非空白页中存储的步数与所述页步相等的情况下,确定所述块二非空白页为所述第二物理块中最后一个正确的页;
第三读取数据模块,用于所述第二物理块中读取所述块二非空白页至所述起始页之间的数据。
可选地,数据读取的装置还包括:
第二减法模块,用于在所述块二非空白页中存储的步数与所述页步不相等的情况下,用所述块二非空白页的页序减去所述块二非空白页中存储的步数得到新块二非空白页;
第一判断和值模块,用于判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述页步减1的值的和值;
第三切换模块,用于在所述新块二非空白页的页序小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
可选地,数据读取的装置还包括:
第四读取数据模块,用于在所述新块二非空白页的页序不小于所述第二物理块首页的页序与所述页步减1的值的和值的情况下,读取所述新块二非空白页中数据;
错误返回模块,用于在所述新块二非空白页中数据读取错误的情况下,用所述新块二非空白页的页序减1得到另一块二非空白页,返回步骤s2;
正确返回模块,用于在所述新块二非空白页中数据读取正确的情况下,将所述新块二非空白页作为步骤v1中的所述块二非空白页,并返回步骤v1中判断所述块二非空白页中存储的步数是否与所述页步相等的步骤。
可选地,数据读取的装置还包括:
页序大于返回模块,用于在所述块二非空白页的页序大于所述第二物理块首页的页序的情况下,用所述块二非空白页的页序减1得到另一块二非空白页,并返回步骤s2。
基于同一发明构思,本发明另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如以上任一所述的方法中的步骤。
基于同一发明构思,本发明另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行时实现本发明上述任一实施例所述的方法中的步骤。
通过上述实施例,本发明在存储数据时,在存储数据的页的空闲区中记录对应的步数,eMMC运行时,首先查找块一非空白页,读取块一非空白页中数据,并判断读取到的数据是否正确,在读取到的数据正确的情况下,判断块一非空白页中存储的步数是否与页步相等;根据相等与否的情况,确定第一物理块中最后一个正确的页,最后读取最后一个正确的页至起始页之间的数据。采用本发明的方法,读取数据时,直接确定出最后一个正确的页,只需要读取出最后一个正确的页至起始页之间的数据,即可迅速的查找到正确的数据,整体上提高了eMMC的运行速率和工作效率。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
上面结合附图对本发明的实施例进行了描述,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种数据读取的方法,其特征在于,所述方法应用于eMMC,所述数据在所述eMMC中按照页的顺序存储,需要存储的数据占用所述eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;所述方法包括:所述数据在写入所述eMMC的第一物理块的过程中发生断电后;
查找块一非空白页,所述块一非空白页为所述第一物理块中最后一个非空白页;
读取所述块一非空白页中数据,并判断读取到的数据是否正确;
在读取到的数据正确的情况下,判断所述块一非空白页中存储的步数是否与所述页步相等;
根据相等与否的情况,确定所述第一物理块中最后一个正确的页,所述最后一个正确的页为需要存储的数据全部写入完成后,结尾数据所在的页;
读取所述最后一个正确的页至起始页之间的数据,所述起始页为所述最后一个正确的页的页序与所述页步的差值加1的值,所述页序表征所述eMMC中按照顺序排列的页的序号;
其中,根据相等与否的情况,确定所述第一物理块中最后一个正确的页,包括如下步骤:
步骤s1:在所述块一非空白页中存储的步数与所述页步相等的情况下,确定所述块一非空白页为所述第一物理块中最后一个正确的页;
步骤t1:在所述块一非空白页中存储的步数与所述页步不相等的情况下,用所述块一非空白页的页序减去所述块一非空白页中存储的步数得到对应的非空白页的页序;
步骤t2a:在所述对应的非空白页中存储的步数与前一页步相等的情况下,确定所述对应的非空白页为所述第一物理块中最后一个正确的页,所述前一页步为前一次需要存储的数据占用所述eMMC中页的数量;
步骤t2b:在所述对应的非空白页中存储的步数与所述前一页步不相等的情况下,将所述对应的非空白页作为步骤t1中的所述块一非空白页,并返回步骤t1。
2.根据权利要求1所述的方法,其特征在于,在读取所述块一非空白页中数据,并判断读取到的数据是否正确之后,所述方法还包括:
在数据读取错误的情况下,用所述块一非空白页的页序减1得到新的非空白页的页序;
判断所述新的非空白页中存储的步数是否与所述页步相等,并根据相等与否的情况,确定所述最后一个正确的页;
读取所述最后一个正确的页至所述起始页之间的数据。
3.根据权利要求1所述的方法,其特征在于,在查找块一非空白页之前,所述方法还包括:
检测需要存储的数据容量的大小;
根据所述需要存储的数据容量的大小和所述eMMC中页容量的大小,确定所述需要存储的数据将要占用的页数,以得到所述需要存储的数据对应的页步;
将所述需要存储的数据按照页序的顺序依次写入所述eMMC中的页,并同时在每一个需要写入数据的页的空闲区中记录对应的步数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述数据在写入所述eMMC的过程中第一物理块写满,写入第二物理块时发生断电后,所述第一物理块写满是指所述第一物理块无法完全写入需要存储的数据;
步骤s1:查找块二非空白页,所述块二非空白页为所述第二物理块中最后一个非空白页;
步骤s2:读取所述块二非空白页中数据,并判断读取到的数据是否正确;
步骤s3:在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序;
步骤s4:在所述块二非空白页的页序等于所述第二物理块首页的页序的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
5.根据权利要求4所述的方法,其特征在于,在读取所述块二非空白页中数据,并判断读取到的数据是否正确之后,所述方法还包括:
步骤u1:在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值;
步骤u2:在所述块二非空白页的页序小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取所述最后一个正确的页至起始页之间的数据。
6.根据权利要求5所述的方法,其特征在于,在所述块二非空白页中读取到的数据正确的情况下,判断所述块二非空白页的页序是否不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值之后,所述方法还包括:
步骤v1:在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与当前次写入数据时页步相等;
步骤v2:在所述块二非空白页中存储的步数与当前次写入数据时页步相等的情况下,确定所述块二非空白页为所述第二物理块中最后一个正确的页;
步骤v3:在所述第二物理块中读取所述块二非空白页至所述起始页之间的数据。
7.根据权利要求6所述的方法,其特征在于,在所述块二非空白页的页序不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值的情况下,判断所述块二非空白页中存储的步数是否与当前次写入数据时页步相等之后,所述方法还包括:
步骤q1:在所述块二非空白页中存储的步数与所述当前次写入数据时页步不相等的情况下,用所述块二非空白页的页序减去所述块二非空白页中存储的步数得到新块二非空白页的页序;
步骤q2:判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值;
步骤q3:在所述新块二非空白页的页序小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值的情况下,切换至所述第一物理块中,在所述第一物理块中查找最后一个正确的页,以在所述第一物理块中读取该最后一个正确的页至起始页之间的数据。
8.根据权利要求7所述的方法,其特征在于,判断所述新块二非空白页的页序是否不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值之后,所述方法还包括:
步骤e1:在所述新块二非空白页的页序不小于所述第二物理块首页的页序与所述第二物理块第一次写入数据时页步减1的值的和值的情况下,读取所述新块二非空白页中数据;
步骤e2:在所述新块二非空白页中数据读取错误的情况下,用所述新块二非空白页的页序减1得到另一块二非空白页,返回步骤s2;
步骤e3:在所述新块二非空白页中数据读取正确的情况下,将所述新块二非空白页作为步骤v1中的所述块二非空白页,并返回步骤v1中判断所述块二非空白页中存储的步数是否与所述页步相等的步骤。
9.根据权利要求4所述的方法,其特征在于,在所述块二非空白页中读取到的数据错误的情况下,判断所述块二非空白页的页序是否大于所述第二物理块首页的页序之后,所述方法还包括:
步骤r1:在所述块二非空白页的页序大于所述第二物理块首页的页序的情况下,用所述块二非空白页的页序减1得到另一块二非空白页,并返回步骤s2。
10.一种数据读取的装置,其特征在于,所述装置应用于eMMC,所述数据在所述eMMC中按照页的顺序存储,需要存储的数据占用所述eMMC中页的数量为页步;需要存储的数据每占用一个页,在该页的空闲区中记录对应的步数;所述装置包括:
第一查找模块,用于查找块一非空白页,所述块一非空白页为第一物理块中最后一个非空白页;
第一读取判断模块,用于读取所述块一非空白页中数据,并判断读取到的数据是否正确;
第一判断步数和页步模块,用于在读取到的数据正确的情况下,判断所述块一非空白页中存储的步数是否与所述页步相等;
第一确定正确页模块,用于根据相等与否的情况,确定所述第一物理块中最后一个正确的页,所述最后一个正确的页为需要存储的数据全部写入完成后,结尾数据所在的页;
第一读取数据模块,用于读取所述最后一个正确的页至起始页之间的数据,所述起始页为所述最后一个正确的页的页序与所述页步的差值加1的值,所述页序表征所述eMMC中按照顺序排列的页的序号;
其中,所述第一确定正确页模块包括:
第一确定正确页子模块,用于在所述块一非空白页中存储的步数与所述页步相等的情况下,确定所述块一非空白页为所述第一物理块中最后一个正确的页;
减法子模块,用于在所述块一非空白页中存储的步数与所述页步不相等的情况下,用所述块一非空白页的页序减去所述块一非空白页中存储的步数得到对应的非空白页的页序;
第二确定正确页子模块,用于在所述对应的非空白页中存储的步数与前一页步相等的情况下,确定所述对应的非空白页为所述第一物理块中最后一个正确的页,所述前一页步为前一次需要存储的数据占用所述eMMC中页的数量;
还用于在所述对应的非空白页中存储的步数与所述前一页步不相等的情况下,将所述对应的非空白页作为所述减法子模块中的所述块一非空白页,并由所述减法子模块处理。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9任一所述的方法中的步骤。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-9任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383561.3A CN113051184B (zh) | 2019-12-27 | 2019-12-27 | 一种数据读取的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383561.3A CN113051184B (zh) | 2019-12-27 | 2019-12-27 | 一种数据读取的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051184A CN113051184A (zh) | 2021-06-29 |
CN113051184B true CN113051184B (zh) | 2024-02-20 |
Family
ID=76507213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911383561.3A Active CN113051184B (zh) | 2019-12-27 | 2019-12-27 | 一种数据读取的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051184B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885791A (zh) * | 2021-09-08 | 2022-01-04 | 北京维普无限智能技术有限公司 | Flash存储器的数据写入方法、读取方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441605A (zh) * | 2007-11-19 | 2009-05-27 | 深圳市朗科科技股份有限公司 | 闪存介质断电数据保护方法 |
CN102402622A (zh) * | 2011-12-27 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 嵌入式内存数据库的内存页面管理调度方法 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
KR101512927B1 (ko) * | 2014-01-13 | 2015-04-16 | 한양대학교 산학협력단 | 비휘발성 메모리의 페이지 관리 방법 및 장치 |
CN105740157A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN107977282A (zh) * | 2017-12-20 | 2018-05-01 | 北京兆易创新科技股份有限公司 | 一种SPI-Nand读取数据页的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4818453B1 (ja) * | 2010-07-30 | 2011-11-16 | 株式会社東芝 | 電子機器およびデータ読み出し方法 |
-
2019
- 2019-12-27 CN CN201911383561.3A patent/CN113051184B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441605A (zh) * | 2007-11-19 | 2009-05-27 | 深圳市朗科科技股份有限公司 | 闪存介质断电数据保护方法 |
CN102402622A (zh) * | 2011-12-27 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 嵌入式内存数据库的内存页面管理调度方法 |
KR101512927B1 (ko) * | 2014-01-13 | 2015-04-16 | 한양대학교 산학협력단 | 비휘발성 메모리의 페이지 관리 방법 및 장치 |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
CN105740157A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN107977282A (zh) * | 2017-12-20 | 2018-05-01 | 北京兆易创新科技股份有限公司 | 一种SPI-Nand读取数据页的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113051184A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750191B (zh) | 用于启动固态非易失性存储设备内的刷新操作的方法 | |
CN112596672B (zh) | 主控芯片的存储处理方法及装置、处理器和电子设备 | |
CN103544031B (zh) | 多分区外存储设备的Android系统升级方法和系统 | |
CN108829449B (zh) | 一种bios启动操作系统的方法、装置、设备及介质 | |
CN109582332B (zh) | 互联网摄像机的系统升级方法及装置 | |
CN102184117A (zh) | 系统在不同类型的Nandflash上的启动方法及装置 | |
CN111933199B (zh) | 基于存储器的数据读写方法、装置及存储介质 | |
CN104765576A (zh) | 一种数据存储方法和数据存储装置 | |
CN113051184B (zh) | 一种数据读取的方法、装置、电子设备及存储介质 | |
CN112397128A (zh) | 一种Flash存储器的控制方法和装置 | |
CN104866388B (zh) | 数据处理方法及装置 | |
CN103902336A (zh) | 操作系统启动控制的方法及装置 | |
CN112306368A (zh) | 一种emmc扩展用户数据分区的方法及装置 | |
CN113641390A (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN113253934A (zh) | Flash坏块处理方法、装置、计算机设备和可读存储介质 | |
CN102184115B (zh) | 升级系统软件的方法及终端设备 | |
CN110941516B (zh) | 操作系统还原方法、装置、设备及存储介质 | |
RU2015129670A (ru) | Способ и устройство для обновления микропрограммного обеспечения | |
CN108664250B (zh) | 一种代码处理方法及装置 | |
CN116627519A (zh) | 一种嵌入式设备的多系统启动方法 | |
CN111124760A (zh) | 一种基于uboot的嵌入式设备启动方法及装置 | |
CN103019773A (zh) | 系统升级掉电保护方法、系统及移动终端 | |
CN111857785A (zh) | 一种mcu的启动方法、装置及终端设备 | |
CN110781031B (zh) | 控制器数据恢复方法、装置、控制器及汽车 | |
CN110209351B (zh) | 分布式存储数据处理方法和装置 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd. Applicant after: SHANGHAI GEYI ELECTRONIC Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. Applicant before: SHANGHAI GEYI ELECTRONIC Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |