CN113821456A - 存储器数据读取方法、装置、电子设备及可读介质 - Google Patents
存储器数据读取方法、装置、电子设备及可读介质 Download PDFInfo
- Publication number
- CN113821456A CN113821456A CN202111166906.7A CN202111166906A CN113821456A CN 113821456 A CN113821456 A CN 113821456A CN 202111166906 A CN202111166906 A CN 202111166906A CN 113821456 A CN113821456 A CN 113821456A
- Authority
- CN
- China
- Prior art keywords
- read
- target
- data
- memory
- page
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 150
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006870 function Effects 0.000 claims description 26
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
Images
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种存储器数据读取方法、装置、电子设备及可读介质,该方法中,获取待读取文件的目标信息;目标信息包括目标页地址以及待读取文件在电子设备的存储器中所占据的目标页数M。根据目标页地址以及目标页数M,从存储器中读取N次目标数据,并将读取到的目标数据写入指定缓冲区。相较于逐页读写,需要进行M次读写的方式,本发明实施例中,通过获取待读取文件在存储器中所占据的目标页数M以及对应的目标页地址,基于目标页数M以及目标页地址,每次不只读取一页数据,从而仅需读写N次,即可实现对待读取文件的读写。这样,可以降低读写次数,进而一定程度上可以提高读写效率,降低读写耗时。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种存储器数据读取方法、装置、电子设备及可读介质。
背景技术
目前,电子设备中往往会设置大量的存储器,例如,nandflash存储器。其中,nandflash存储器中的数据通常以页为单位进行存储,每页存储固定大小的数据。通常一个文件会在存储器中占据多页。进一步地,在电子设备的一些运行环节中,经常需要读取nandflash存储器中存储的文件,写入指定缓冲区域中。
因此,亟需一种读取存储器中数据的方法,以高效进行读写。
发明内容
本发明实施例提供一种存储器数据读取方法、装置、电子设备及可读介质,以解决读写效率较低的问题。
第一方面,提供了一种存储器数据读取方法,应用于电子设备,所述方法包括:
获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M;
根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量;
将读取到的所述目标数据写入指定缓冲区。
可选的,所述目标页地址为起始页地址;所述根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,包括:
根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令,其中,1<P1≤M;
将所述控制指令发送至所述存储器,以使所述存储器将从所述目标页地址开始读取的P1页数据写入暂存区;
判断P1是否等于M;当P1不等于M时,确定下一次读取的页数P2,其中,1<P1+P2≤M,将所述目标页地址更新为未读取页中首页的页地址,并再次执行所述根据所述目标页地址以及本次所需读取的内存页页数P2,生成控制指令的操作,直至M页数据均被写入所述暂存区;
使用直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,作为所述目标数据。
可选的,在所述使用直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,作为所述目标数据之前,所述方法还包括:将所述DMA控制器的目标地址设置为所述指定缓冲区的地址,以及,将所述DMA控制器的读写大小设置为所述目标数据的大小;
所述将读取到的所述目标数据写入指定缓冲区,包括:
使用所述DMA控制器将读取到的所述目标数据写入所述目标地址标识的指定缓冲区。
可选的,所述根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令,包括:
将所述目标页地址以及所述内存页页数P1作为预设转换函数的指定参数,并传入所述预设转换函数;
使用所述预设转换函数将传入的指定参数转换为所述控制指令。
可选的,所述待读取文件为所述电子设备的内核文件,所述方法进一步包括:
在运行预设的引导加载程序的启动环节,执行所述获取待读取文件的目标信息的操作。
可选的,所述获取待读取文件的目标信息,包括:
确定所述待读取文件在所述存储器中的起始页地址,以作为所述目标页地址;
计算所述待读取文件的文件大小与所述存储器的单页数据大小之间的比值;
对所述比值向上取整,以作为所述目标页数M。
可选的,所述将读取到的所述目标数据写入指定缓冲区之后,所述方法还包括:
检测所述目标数据中第M页数据是否包含不属于所述待读取文件的无关数据;
若包含无关数据,则清除所述无关数据。
第二方面,提供了一种存储器数据读取装置,应用于电子设备,所述装置包括:
获取模块,用于获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M;
读取模块,用于根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量;
写入模块,用于将读取到的所述目标数据写入指定缓冲区。
第三方面,提供了一种电子设备,包括:
一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行所述第一方面中所述的方法。
第四方面,提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行所述第一方面中所述的方法。
在本发明实施例中,存储器数据读取方法包括:获取待读取文件的目标信息;目标信息包括目标页地址以及待读取文件在电子设备的存储器中所占据的目标页数M。根据目标页地址以及目标页数M,从存储器中读取N次目标数据,其中,N小于M,并且目标数据是指N次读取中任一次读取的数据,目标数据的数据量大于存储器中任一目标页的数据量。将读取到的目标数据写入指定缓冲区。相较于逐页读写,需要进行M次读写的方式,本发明实施例中,通过获取待读取文件在存储器中所占据的目标页数M以及对应的目标页地址,基于目标页数M以及目标页地址,每次不只读取一页数据,从而仅需读写N次,即可实现对待读取文件的读写。这样,可以降低读写次数,进而一定程度上可以提高读写效率,降低读写耗时。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种存储器数据读取方法的步骤流程图;
图2是本发明实施例提供的一种获取目标信息的步骤流程图;
图3是本发明实施例提供的一种读取目标数据的步骤流程图;
图4是本发明实施例提供的一种设置操作的步骤流程图;
图5是本发明实施例提供的一种生成控制指令的步骤流程图;
图6是本发明实施例提供的一种清除操作的步骤流程图;
图7是本发明实施例提供的一种存储器数据读取装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种存储器数据读取方法、装置、电子设备及可读介质,用于解决现有技术中对存储器中数据的读写耗时较长,效率较低的问题。
下面对该存储器数据读取方法进行详细说明。
图1是本发明实施例提供的一种存储器数据读取方法的步骤流程图,该方法可以应用于电子设备,如图1所示,该方法可以包括:
步骤101、获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M。
本发明实施例中,待读取文件可以是需要从存储器中读出并写入指定缓冲区的文件。其中,该存储器可以为nandflash。进一步地,待读取文件的目标页地址可以用于指示待读取文件在存储器中所占据的存储页的地址,目标页地址可以包括所占据的每个存储页对应的地址,也可以包括所占据的部分存储页对应的地址,本发明实施例对此不作限定。待读取文件所占据的目标页数M可以是待读取文件在存储器中所占据的存储页的总数。示例的,假设待读取文件在存储器中占据了10页,那么该目标页数M可以为10。
进一步地,获取待读取文件的目标信息时,可以先读取预先配置的索引目录,该索引目录可以记载有存储于存储器的各个文件所占据的存储页的地址、以及所占据的存储页的页标识。接着,可以基于待读取文件的文件标识在该索引目录中查找,以确定目标页地址以及目标页数M。
步骤102、根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量。
本发明实施例中,N小于M,即,每次读取至少两页数据。这样,通过每次读取多页数据,一定程度上可以减少读取次数以及相应的将读取到的数据写入指定缓冲区的次数,进而降低读写耗时。其中,读取的至少两页数据即为本次读取到的目标数据,通过N次读取即可实现读取完待读取文件。示例的,假设待读取文件在存储器中占据了9个存储页,每次读3页数据,即,N=9/3=3。这样,每次读取到的3页数据即为本次的目标数据,最终读取到的9页数据即可涵盖待读取文件本身。
步骤103、将读取到的所述目标数据写入指定缓冲区。
本发明实施例中,指定缓冲区可以是根据实际需求预先指定的内存区域,示例的,在需要对待读取文件进行读写时,例如,接收到上层发送的读写请求时,可以先调用预设函数(例如,nand_do_read_ops函数),传递用于写入数据的缓冲区,以作为指定缓冲区。
在一种现有实现方式中,对于目标文件,先从存储器中读取该文件的第一页数据,然后写入默认内存空间,接着再从默认内存空间中拷贝至指定缓冲区,然后从存储器中读取该文件的第二页数据,以此循环,直至把要读的文件逐页读取完为止。而目标文件往往较大,逐页读取的方式,会耗费较长时间。相较于逐页读写需要进行M次读写的方式,本发明实施例通过获取待读取文件在存储器中所占据的目标页数M以及对应的目标页地址,基于目标页数M以及目标页地址,每次不只读取一页数据,从而仅需读写N次,即可实现对待读取文件的读写。这样,可以降低读写次数,进而一定程度上可以提高读写效率,降低读写耗时。
可选的,图2是本发明实施例提供的一种获取目标信息的步骤流程图,如图2所示,在本发明实施例的一种实现方式中,上述步骤101获取待读取文件的目标信息的操作,可以具体包括:
步骤1011、确定所述待读取文件在所述存储器中的起始页地址,以作为所述目标页地址。
本步骤中,可以基于待读取文件的文件标识在预先配置的索引目录中查找对应的存储页的地址。然后从查找到的地址中取第一页的地址,即,起始页地址,作为目标页地址。
步骤1012、计算所述待读取文件的文件大小与所述存储器的单页数据大小之间的比值。
本步骤中,可以读取预先配置的待读取文件的相关信息,以确定待读取文件的文件大小,读取存储器的配置信息,以确定单页数据大小。其中,存储器中每页的大小均为预先设置的固定大小,例如,均为512字节。然后,可以计算待读取文件的文件大小除以单页数据大小的结果,得到两者的比值。
步骤1013、对所述比值向上取整,以作为所述目标页数M。
可以对步骤1012中得到的比值向上取整,得到目标页数M。其中,向上取整表示在存在小数位的情况下,直接为整数位加1,得到最终的结果。
本发明实施例中,确定待读取文件在存储器中的起始页地址,以作为目标页地址,计算待读取文件的文件大小与存储器的单页数据大小之间的比值,对比值向上取整,以作为目标页数M。这样,仅以起始页地址作为目标页地址,一定程度上降低目标信息的大小,避免信息量过大的问题。同时,基于待读取文件的文件大小与存储器的单页数据大小计算目标页数M,一定程度上可以提高确定目标页数M的便捷度。
可选的,图3是本发明实施例提供的一种读取目标数据的步骤流程图,如图3所示,在本发明实施例的一种实现方式中,上述N可以等于1,目标页地址可以为起始页地址,即,第1页的页地址。相应地,上述步骤102根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据的步骤,可以具体包括:
步骤1021、根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令,其中,1<P1≤M。
本步骤中,控制指令可以是用于对存储器进行控制的指令,该控制指令可以具体用于控制存储器将目标页地址以及内存页页数P1指示的数据放入暂存区中。其中,暂存区可以为存储器缓存,P1的具体值可以大于1,从而确保最终的读取次数小于M次。
步骤1022、将所述控制指令发送至所述存储器,以使所述存储器将从所述目标页地址开始读取的P1页数据写入暂存区。
为了实现控制存储器,可以将控制指令发送给存储器。具体的,可以是发送给存储器的控制器,相应地,存储器的控制器可以在收到控制指令之后,对控制指令进行解析,以确定所要执行的操作,进一步地,可以控制存储器从目标页地址开始读取P1页数据,然后将读取到的P1页数据写入暂存区。其中,读取到的P1页数据包括待读取文件,暂存区可以是预先为存储器分配的用于存放需要进行处理的数据的空间。
步骤1023、判断P1是否等于M,如果P1等于M则执行步骤1025,否则执行步骤1024。
步骤1024、确定下一次读取的页数P2,其中,1<P1+P2≤M,将所述目标页地址更新为未读取页中首页的页地址,并再次执行所述根据所述目标页地址以及本次所需读取的内存页页数P2,生成控制指令的操作,直至M页数据均被写入暂存区。
实际应用场景中,P1的具体值可以根据实际需求设置。具体的,P1可以等于M,在P1等于M的情况下,单次读取就可以将待读取文件所有页的数据一次性写入暂存区。因此,在P1等于M的情况下,可以不再执行上述步骤1024中的操作。
进一步地,P1可以小于M,在P1小于M的情况下,一次仅能读取P页数据写入暂存区,无法一次性将所有页的页数据读出,并写入暂存区。因此,在P1小于M的情况下,可以将目标页地址更新为未读取页中首页的页地址,并再次执行上述步骤1021,从而继续读取P2页数据写入暂存区。以此循环,直至把要读的文件逐页读取完为止。其中,每次更新目标页地址时未读取页中首页的页地址不同。示例的,第一次更新时,未读取页中首页的页地址可以为第P1+1页的页地址。第二次更新时,未读取页中首页的页地址可以为第P1+P2+1页的页地址。
需要说明的是,每次执行根据目标页地址以及本次所需读取的内存页页数,生成控制指令的操作时,本次所需读取的内存页页数的取值可以均保持一致,或者,也可以不保持一致,本发明实施例对此不作限制。
步骤1025、使用直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,作为所述目标数据。
本步骤中,直接存储器访问(Direct Memory Access,DMA)控制器可以用于控制电子设备以DMA方式进行数据读写。其中,DMA是指不通过中央处理器(Central ProcessingUnit,CPU)而直接进行数据交换的接口技术。本发明实施例中,以DMA方式读取暂存区中的数据,一定程度上可以确保读写效率。需要说明的是,本步骤可以与上述步骤1024异步执行,从而确保整体处理效率。即,无需等到将所有页数据均写入暂存区才开始以DMA方式读取暂存区中的数据的操作。
本发明实施例中,先向存储器发送控制指令,使得存储器预先将待读取文件对应的数据均放入暂存区,相应地,基于DMA控制器直接读取暂存区中的数据,即可读取到所需的目标数据。这样,一定程度上可以确保数据读取能够有序进行,以及较大程度上提高读取效率以及后续的写效率。
可选的,图4是本发明实施例提供的一种设置操作的步骤流程图,如图4所示,在本发明实施例的一种实现方式中,在步骤1025基于直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据之前,还可以执行以下步骤:
步骤S21、将所述DMA控制器的目标地址设置为所述指定缓冲区的地址,以及,将所述DMA控制器的读写大小设置为所述目标数据的大小。
本步骤中,可以先加载DMA控制器的配置文件。然后,将配置文件中默认设置的目标地址更改为指定缓冲区的地址,将配置文件中默认设置的读写大小更改为目标数据的大小,以实现读写支持。其中,配置文件可以为固件驱动代码文件,读写大小可以基于预设标志位“DMA_LENGTH”定义。相应地,在执行上述将读取到的目标数据写入指定缓冲区的操作时,可以是使用DMA控制器将读取到的目标数据写入目标地址标识的指定缓冲区。由于此时目标地址指向指定缓冲区,因此可以实现基于DMA方式直接将目标数据写入指定缓冲区。同时,通过修改固件驱动代码文件实现读写支持,一定程度上可以确保电子设备兼容以往支持功能,完善了固件功能,提高了固件使用体验。
相较于现有方式中,先将读取到的数据写入默认内存,然后再从默认内存中拷贝至指定缓冲区的方式,本发明实施例中,通过在基于直接存储器访问DMA控制器,以DMA方式读取暂存区中的数据之前,先将DMA控制器的目标地址设置为指定缓冲区的地址,以及,将DMA控制器的读写大小设置为目标数据的大小,在写入时,基于DMA控制器将读取到的目标数据写入目标地址。这样,可以使得基于DMA控制器能够直接将读取到的目标数据写入指定缓冲区,进而可以简化读写流程,进一步提高效率。同时,通过将DMA控制器的读写大小设置为目标数据的大小,可以确保基于DMA一次性读写目标数据的操作能够正常进行,降低出错率。
可选的,图5是本发明实施例提供的一种生成控制指令的步骤流程图,如图5所示,本发明实施例中,上述步骤1021根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令的步骤,可以具体包括:
步骤1021a、将所述目标页地址以及所述P1作为预设转换函数的指定参数,并传入所述预设转换函数。
本步骤中,预设转换函数可以是根据实际需求设置的,示例的,预设转换函数为nand_setup函数。指定参数可以为传递给此函数的最后一个参数“op_num”。具体实施时,可以将目标页地址以及本次所需读取的内存页页数P1作为参数“op_num”的具体值,并传入nand_setup函数。
步骤1021b、使用所述预设转换函数将传入的指定参数转换为所述控制指令。
相应地,可以运行该预设转换函数,以实现将传入的指定参数转换为nandflash控制器的控制指令。需要说明的是,上述根据目标页地址以及本次所需读取的内存页页数P2,生成控制指令的操作的实现方式,与根据目标页地址以及本次所需读取的内存页页数P1,生成控制指令的操作的实现方式相类似,本发明实施例对此不作赘述。
本发明实施例中,将目标页地址以及P1作为预设转换函数的指定参数,并传入预设转换函数,然后基于预设转换函数即可将传入的指定参数转换为控制指令。这样,仅需执行写入参数的操作,即可实现生成控制指令,进而一定程度上可以确保指令生成效率。
可选的,在一种实现场景中,待读取文件可以为电子设备的内核文件。相应地,上述对待读取文件进行读写的过程可以是在电子设备的启动环节执行的。这样,可以确保电子设备启动之后,能够正常运行操作系统内核。具体的,本发明实施例中的电子设备可以为嵌入式硬件设备,进一步地,可以是在运行预设的引导加载程序的启动环节,开始执行获取待读取文件的目标信息的操作,进而进入后续的读写操作流程。
其中,引导加载程序可以为bootloader,引导加载程序可以用于初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。由于存储器数据读取方法在运行预设的引导加载程序的启动环节实现,即,在bootloader里实现,而bootloader环节下,用户层往往不需要访问,因此,本发明实施例中可以直接将DMA的目的地址设置为指定缓冲区的地址,进而避免将读取的目标数据先写入用户空间的内存(即,默认内存空间),然后再从用户空间的内存拷贝至指定缓冲区的操作,进而优化数据传输流程,节省处理资源,加快启动环节。进一步地,即使先将目标数据写入用户空间的内存,然后再从用户空间的内存拷贝至指定缓冲区,由于读取目标数据的次数降低,因此,可以相应降低写入操作次数以及拷贝操作次数,进而一定程度上也可以提高读写速度,降低读写耗时。
可选的,图6是本发明实施例提供的一种清除操作的步骤流程图,如图6所示,在上述步骤103将读取到的目标数据写入指定缓冲区之后,还可以执行以下操作:
步骤S31、检测所述目标数据中第M页数据是否包含不属于所述待读取文件的无关数据。
在待读取文件的文件大小不为存储器的单页数据大小的整数倍的情况下,可能会导致待读取文件占据的最后一页未被待读取文件的数据写满,最后一页中写入其他文件的数据。相应地,本步骤中可以判断待读取文件的文件大小与单页数据大小的比值是否为整数。如果不是整数,则可以确定第M页数据中包含无关数据。反之,如果是整数,则可以确定第M页数据中不包含无关数据。这样,仅需检测比值是否为整数,即可便捷的实现检测第M页数据中是否包含无关数据。
步骤S32、若包含无关数据,则清除所述无关数据。
示例的,在一种实现方式中,可以从预先配置的索引目录中查找第M页中属于待读取文件的存储行,然后将除这些存储行之外的其他存储行中的数据确定为无关数据,并将无关数据清除。当然,也可以采用其他确定无关数据的方式,本发明实施例对此不作限定。
本发明实施例中,在将读取到的目标数据写入指定缓冲区之后,通过进一步检测目标数据中第M页数据是否包含无关数据,在包含无关数据的情况下,清除无关数据。这样,可以避免指定缓冲区中混杂有无关文件的数据,进而确保数据的准确性。
在一种现有实现方式中,是逐页读取数据,然后写入默认内存空间,接着再从默认内存空间中拷贝至指定缓冲区,直至把要读的文件按页读取完为止。而待读取文件往往较大,逐页读取的方式,会耗费较长时间。本发明实施例中,通过一次性读写待读取文件,并将待读取文件直接写入指定缓冲区,进而一定程度上可以降低耗时,提高读写效率。在待读取文件为启动环节需要读写的文件的情况下,可以降低启动时长,优化启动环节。
图7是本发明实施例提供的一种存储器数据读取装置的结构框图,应用于电子设备,该装置包括:
获取模块201,用于获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M;
读取模块202,根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量;
写入模块203,用于将读取到的所述目标数据写入指定缓冲区。
可选的,所述目标页地址为起始页地址,所述读取模块202可以具体用于:
根据所述目标页地址以及本次所需读取的内存页页数P,生成控制指令,其中,1<P1≤M;
将所述控制指令发送至所述存储器,以使所述存储器将从所述目标页地址开始读取的P页数据写入暂存区;
判断P1是否等于M;当P1不等于M时,确定下一次读取的页数P2,其中,1<P1+P2≤M,将所述目标页地址更新为未读取页中首页的页地址,并再次执行所述根据所述目标页地址以及本次所需读取的内存页页数P2,生成控制指令的操作,直至M页数据均被写入暂存区;
基于直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,以作为所述目标数据。
可选的,所述装置还可以包括:设置模块,用于将所述DMA控制器的目标地址设置为所述指定缓冲区的地址,以及,将所述DMA控制器的读写大小设置为所述目标数据的大小;
所述写入模块203可以具体用于:使用所述DMA控制器将读取到的所述目标数据写入所述目标地址标识的指定缓冲区。
可选的,所述读取模块202还可以具体用于:
将所述目标页地址以及所述P1作为预设转换函数的指定参数,并传入所述预设转换函数;
使用所述预设转换函数将传入的指定参数转换为所述控制指令。
可选的,所述待读取文件为所述电子设备的内核文件,所述装置还可以包括:执行模块,用于在运行预设的引导加载程序的启动环节,执行所述获取待读取文件的目标信息的操作。
可选的,所述获取模块201可以具体用于:确定所述待读取文件在所述存储器中的起始页地址,以作为所述目标页地址;计算所述待读取文件的文件大小与所述存储器的单页数据大小之间的比值;对所述比值向上取整,以作为所述目标页数M。
可选的,所述装置还可以包括:
检测模块,用于检测所述目标数据中第M页数据是否包含不属于所述待读取文件的无关数据;
清除模块,用于若包含无关数据,则清除所述无关数据。
综上所述,本发明实施例提供的一种存储器数据读取装置,获取待读取文件的目标信息;目标信息包括目标页地址以及待读取文件在电子设备的存储器中所占据的目标页数M。根据目标页地址以及目标页数M,从存储器中读取N次目标数据,其中,N小于M,并且目标数据是指N次读取中任一次读取的数据,目标数据的数据量大于存储器中任一目标页的数据量。将读取到的目标数据写入指定缓冲区。相较于逐页读写,需要进行M次读写的方式,本发明实施例中,通过获取待读取文件在存储器中所占据的目标页数M以及对应的目标页地址,基于目标页数M以及目标页地址,每次不只读取一页数据,从而仅需读写N次,即可实现对待读取文件的读写。这样,可以降低读写次数,进而一定程度上可以提高读写效率,降低读写耗时。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
优选的,本发明实施例还提供一种电子设备,包括一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行上述实施例提供的存储器数据读取方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的存储器数据读取方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的存储器数据读取方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种存储器数据读取方法,其特征在于,应用于电子设备,所述方法包括:
获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M;
根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量;
将读取到的所述目标数据写入指定缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述目标页地址为起始页地址,所述根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,包括:
根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令,其中,1<P1≤M;
将所述控制指令发送至所述存储器,以使所述存储器将从所述目标页地址开始读取的P1页数据写入暂存区;
判断P1是否等于M;当P1不等于M时,确定下一次读取的页数P2,其中,1<P1+P2≤M,将所述目标页地址更新为未读取页中首页的页地址,并再次执行所述根据所述目标页地址以及本次所需读取的内存页页数P2,生成控制指令的操作,直至M页数据均被写入所述暂存区;
使用直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,作为所述目标数据。
3.根据权利要求2所述的方法,其特征在于,在所述使用直接存储器访问DMA控制器,以DMA方式读取所述暂存区中的数据,作为所述目标数据之前,所述方法还包括:将所述DMA控制器的目标地址设置为所述指定缓冲区的地址,以及,将所述DMA控制器的读写大小设置为所述目标数据的大小;
所述将读取到的所述目标数据写入指定缓冲区,包括:
使用所述DMA控制器将读取到的所述目标数据写入所述目标地址标识的指定缓冲区。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标页地址以及本次所需读取的内存页页数P1,生成控制指令,包括:
将所述目标页地址以及所述内存页页数P1作为预设转换函数的指定参数,并传入所述预设转换函数;
使用所述预设转换函数将传入的指定参数转换为所述控制指令。
5.根据权利要求1所述的方法,其特征在于,所述待读取文件为所述电子设备的内核文件,所述方法进一步包括:
在运行预设的引导加载程序的启动环节,执行所述获取待读取文件的目标信息的操作。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述获取待读取文件的目标信息,包括:
确定所述待读取文件在所述存储器中的起始页地址,以作为所述目标页地址;
计算所述待读取文件的文件大小与所述存储器的单页数据大小之间的比值;
对所述比值向上取整,作为所述目标页数M。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述将读取到的所述目标数据写入指定缓冲区之后,所述方法还包括:
检测所述目标数据中第M页数据是否包含不属于所述待读取文件的无关数据;
若包含无关数据,则清除所述无关数据。
8.一种存储器数据读取装置,其特征在于,应用于电子设备,所述装置包括:
获取模块,用于获取待读取文件的目标信息,其中,所述目标信息包括目标页地址以及所述待读取文件在所述电子设备的存储器中所占据的目标页数M;
读取模块,用于根据所述目标页地址以及所述目标页数M,从所述存储器中读取N次目标数据,其中,所述N小于所述M,并且所述目标数据是指N次读取中任一次读取的数据,所述目标数据的数据量大于所述存储器中任一目标页的数据量;
写入模块,用于将读取到的所述目标数据写入指定缓冲区。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7任一项所述的方法。
10.一个或多个机器可读介质,其特征在于,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166906.7A CN113821456A (zh) | 2021-09-30 | 2021-09-30 | 存储器数据读取方法、装置、电子设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166906.7A CN113821456A (zh) | 2021-09-30 | 2021-09-30 | 存储器数据读取方法、装置、电子设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821456A true CN113821456A (zh) | 2021-12-21 |
Family
ID=78920123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111166906.7A Pending CN113821456A (zh) | 2021-09-30 | 2021-09-30 | 存储器数据读取方法、装置、电子设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821456A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822251A (en) * | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US20040236924A1 (en) * | 2003-05-22 | 2004-11-25 | International Business Machines Corporation | Computer apparatus and method for autonomic adjustment of block transfer size |
CN1892909A (zh) * | 2005-06-30 | 2007-01-10 | 海力士半导体有限公司 | 非易失存储器件及其多页编程、读取和复制编程的方法 |
CN109634877A (zh) * | 2018-12-07 | 2019-04-16 | 广州市百果园信息技术有限公司 | 流操作的实现方法、装置、设备及存储介质 |
CN109935253A (zh) * | 2017-12-18 | 2019-06-25 | 英特尔公司 | 用于执行存储器阵列的同时多页读取的系统和方法 |
US20200192735A1 (en) * | 2018-12-12 | 2020-06-18 | International Business Machines Corporation | Selectively performing multi-plane read operations in non-volatile memory |
-
2021
- 2021-09-30 CN CN202111166906.7A patent/CN113821456A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822251A (en) * | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US20040236924A1 (en) * | 2003-05-22 | 2004-11-25 | International Business Machines Corporation | Computer apparatus and method for autonomic adjustment of block transfer size |
CN1892909A (zh) * | 2005-06-30 | 2007-01-10 | 海力士半导体有限公司 | 非易失存储器件及其多页编程、读取和复制编程的方法 |
CN109935253A (zh) * | 2017-12-18 | 2019-06-25 | 英特尔公司 | 用于执行存储器阵列的同时多页读取的系统和方法 |
CN109634877A (zh) * | 2018-12-07 | 2019-04-16 | 广州市百果园信息技术有限公司 | 流操作的实现方法、装置、设备及存储介质 |
US20200192735A1 (en) * | 2018-12-12 | 2020-06-18 | International Business Machines Corporation | Selectively performing multi-plane read operations in non-volatile memory |
Non-Patent Citations (1)
Title |
---|
郑亮 等主编: "新编计算机组装维护入门与提高", vol. 2, 西北工业大学音像电子出版社, pages: 363 - 364 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445398B (zh) | 一种基于新型存储器的嵌入式文件系统及其实现方法 | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
CN102667714B (zh) | 支持访问由操作系统环境外的资源提供的功能的方法和系统 | |
EP2565786A1 (en) | Information processing device and task switching method | |
US20100169546A1 (en) | Flash memory access circuit | |
US6732249B1 (en) | Host computer virtual memory within a network interface adapter | |
CN116679887B (zh) | 用于NAND Flash的通用控制模块及方法 | |
CN115309499A (zh) | 虚拟机中数组处理方法、装置、电子设备及可读存储介质 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN112181637B (zh) | 一种内存资源分配方法及装置 | |
CN118069555A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN112445412A (zh) | 一种数据存储方法及装置 | |
CN113821456A (zh) | 存储器数据读取方法、装置、电子设备及可读介质 | |
CN115794690A (zh) | 一种基于服务器中外接设备的处理方法及装置 | |
CN112860595B (zh) | Pci设备或pcie设备、数据存取方法及相关组件 | |
US10366049B2 (en) | Processor and method of controlling the same | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
KR100615694B1 (ko) | 복수개의 기능블럭을 제어하는 제어시스템 | |
KR20090053164A (ko) | 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법 | |
CN118363901B (zh) | PCIe设备、电子组件及电子设备 | |
JP7274069B2 (ja) | トレース制御装置、エミュレータ、トレース制御方法、および、トレース制御プログラム | |
JP4164473B2 (ja) | 機能メモリアクセス制御システム、機能メモリ装置及びその制御方法、プログラム | |
CN115437967A (zh) | 一种虚拟地址的获取方法和装置、数据传输方法及电子设备 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム |
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 |