CN111125019A - 文件检索方法、写入方法、系统、fpga芯片及装置 - Google Patents
文件检索方法、写入方法、系统、fpga芯片及装置 Download PDFInfo
- Publication number
- CN111125019A CN111125019A CN201911325931.8A CN201911325931A CN111125019A CN 111125019 A CN111125019 A CN 111125019A CN 201911325931 A CN201911325931 A CN 201911325931A CN 111125019 A CN111125019 A CN 111125019A
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- memory
- address
- file name
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种文件检索方法、写入方法、系统、FPGA芯片及装置,使用硬件描述语言搭建运行在FPGA硬件平台的文件存储与管理程序,实现外部存储器的调度、数据文件的存储与检索等功能,通过将文件与文件信息分别存储,这样可以使得文件信息列表在初始化进程中被初始化模块读取,然后从另一分区对文件进行寻址操作,检索出对应的文件,大大减少了文件检索的时间,提高了文件检索的效率。
Description
技术领域
本发明涉及文件管理技术领域,更具体的,涉及一种文件检索方法、写入方法、系统、FPGA芯片及装置。
背景技术
目前以FPGA为核心的数字平台综合集成了各种数据接口,广泛应用于信号采集、图像处理、算法加速等领域。随着数据处理能力的增加,FPGA芯片需要管理大量不同种类不同大小的数据文件,需要合理调度FLASH、DDR等存储器资源,必要时还需要对远程数据文件进行管理。
当前稳定成熟的文件管理解决方案包括运行于Windows平台的FAT、NTFS文件系统,专为Linux开发的ext文件系统等。上述文件管理方式都依托于规模庞大的操作系统,部分简化的可移植版本也大多针对ARM或MCU处理器开发,运行于功能相对单一的FPGA数字平台将消耗大量硬件资源,在成本与效率上不能满足需求。
发明内容
为了解决上述不足的至少一个,本发明一个方面实施例提供一种基于FPGA平台的文件检索方法,包括:
接收文件检索指令,所述文件读取指令包括请求检索的文件名;
基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;所述文件存储于第一存储器的第一存储分区,所述文件信息列表存储于所述第一存储器的第二存储分区;
基于所述第一存储地址进行寻址操作,检索出对应的文件。
在优选的实施例中,所述基于所述文件名从文件信息列表中查到对应该文件名的文件信息,包括:
利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;所述地址映射关系表存储于第二存储器中,并且包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系;所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置;所述地址映射关系表中的文件名排序与所述文件信息列表的文件名排序相同;
根据所述文件名的位置从所述文件信息列表中查找对应的文件信息。
在优选的实施例中,所述基于所述第一存储地址进行寻址操作,检索出对应的文件,包括:
根据所述地址映射关系以及所述第一存储地址,确定所述第二存储地址;
根据所述第二存储地址从第二存储器中调取对应的文件。
在优选的实施例中,所述利用二分查找法从地址映射关系表中查找出请求检索的文件名位置,包括:
确定所述地址映射关系表中的中间位置对应的所述文件名,所述地址映射关系表被所述中间位置划分成位于所述中间位置之前和位于所述中间位置之后的两个部分,所述两个部分包括第一部分和第二部分;
比对所述中间位置的文件名与请求检索的文件名是否一致,若不一致,根据两者的文件名字节长度的大小顺序,确定请求检索的文件名处于所述第一部分;
确定所述第一部分中的中间位置对应的所述文件名,所述第一部分被划分为两个部分,比对当前的中间位置与请求检索的文件名是否一致,若不一致,则根据两者的文件名字节长度的大小顺序重新定义所述第一部分,直至两者一致时输出一致的所述文件名位置,或者直至所述第一部分不可被切分时比较当前第一部分中唯一文件名与请求检索的文件名。
本发明另一方面实施例提供一种基于FPGA平台的文件写入方法,包括:
将文件写入第一存储器的第一存储分区;
将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表中一设定位置,使当前插入的文件名字节长度的大小顺序处于其前后相邻两个位置文件名字节长度的大小顺序之间;其中,
所述文件信息列表存储于第一存储器的第二存储分区。
本发明又一方面实施例提供一种FPGA芯片,包括:
初始化模块,用于在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
文件写入控制模块,用于控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
文件检索模块,用于根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
在优选的实施例中,所述文件检索指令包括请求检索的文件名;所述文件检索模块包括:
文件信息查找单元,基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;
寻址单元,基于所述第一存储地址进行寻址操作,检索出对应的文件。
在优选的实施例中,所述地址映射关系表中的文件名排序与文件信息列表的文件名排序相同,所述文件信息查找单元包括:
文件名位置查找单元,利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;
文件信息列表搜索单元,根据所述文件名位置从所述文件信息列表中查找对应的文件信息。
本发明又一方面实施例提供一种基于FPGA平台的文件管理装置,包括:
FPGA芯片、第一存储器以及第二存储器;所述FPGA芯片用于:
在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
本发明又一方面实施例提供一种基于FPGA平台的文件管理系统,包括:
FPGA芯片、第一存储器、第二存储器、数据接口以及至少一个底层驱动器,所述至少一个底层驱动器与所述FPGA芯片通过所述数据接口耦接进行数据传输;所述FPGA芯片用于:
在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
本发明的有益效果如下:
本发明提供一种文件检索方法、写入方法、系统、FPGA芯片及装置,使用硬件描述语言搭建运行在FPGA硬件平台的文件存储与管理程序,实现外部存储器的调度、数据文件的存储与检索等功能,通过将文件与文件信息分别存储,这样可以使得文件信息列表在初始化进程中被初始化模块读取,然后从另一分区对文件进行寻址操作,检索出对应的文件,大大减少了文件检索的时间,提高了文件检索的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例中一种基于FPGA平台的文件管理系统的结构示意图。
图2示出了本发明实施例中文件管理系统的软件层面的设计结构示意图。
图3示出了本发明一个方面实施例中的文件存储示意图。
图4示出了本发明一个方面实施例中的地址映射表结构示意图。
图5示出本发明实施例中的软件层面的运行状态切换示意图。
图6示出本发明实施例中基于FPGA平台的文件检索方法流程图。
图7示出本发明实施例中基于FPGA平台的文件写入方法路程图。
图8示出适于用来实现本发明实施例的FPGA芯片的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前稳定成熟的文件管理解决方案包括运行于Windows平台的FAT、NTFS文件系统,专为Linux开发的ext文件系统等。上述文件管理方式都依托于规模庞大的操作系统,部分简化的可移植版本也大多针对ARM或MCU处理器开发,运行于功能相对单一的FPGA数字平台将消耗大量硬件资源,在成本与效率上不能满足需求。
图1示出了本发明基于本发明核心构思的文件处理系统,其具体包括:FPGA芯片、第一存储器、第二存储器、数据接口以及至少一个底层驱动器,所述至少一个底层驱动器与所述FPGA芯片通过所述数据接口耦接进行数据传输。
可以理解,在本发明的文件处理系统中,FPGA芯片、第一存储器、第二存储器以及至少一个底层驱动器是相互独立并且完整的电子器件,也即在生产和销售时,上述器件可以各自独立地生产和销售,进一步的,文件处理系统的生产厂商可以逐一购买上述电子器件进行简易或复制的组装,即可获得本发明的文件处理系统的产品。也因此底层驱动器可以根据具体需要任意选择,具备良好的扩展性。
具体的,所述FPGA芯片在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及根据文件检索指进行寻址操作,检索出对应的文件。
地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。所述地址映射关系表存储于第二存储器中,并且包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址是所述文件在第一存储分区的存储地址,所述第一存储器还包括第二存储分区,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置,所述地址映射关系表中的文件名排序与文件信息列表的文件名排序相同。
本发明中第一存储器和第二存储器不限制于其具体的类型,例如Flash闪存、RAM存储器等,第一存储器和第二存储器可以均采用高速存储器,亦或是低速存储器,更进一步的,为了满足实时性和稳定性要求,第一存储器一般是可持久化存储器,例如Flash闪存等,第二存储器可以是高速缓存存储器,例如RAM存储器,在断电或者重置后,RAM存储器存储的文件不被记录下来,而Flash闪存中的文件是固化的文件数据。
图2示出了上述系统在软件层面的设计结构,包括有应用层程序和底层驱动程序,应用层程序被记录在FPGA芯片中,其具体的逻辑步骤有初始化、分包数据校验及组合、文件写入控制以及文件检索等,上述逻辑步骤通过主控状态机来控制执行。底层驱动程序被记录在每个底层驱动器中,可以通过数据接口耦接。
具体而言,以第一存储器为FLASH存储器,第二存储器为DDR高速缓存为例,初始化程序运行在硬件平台上电或复位后,用于完成底层硬件程序配置,加载当前已存储文件信息列表并将文件内容由FLASH存储器搬移至DDR高速缓存。文件组合与校验部分用于检验FPGA接收的数据文件是否完整,数据内容是否正确。当单一文件数据量较大时,需要将文件分包传输。同一文件的不同数据包有各自编码,文件组合与校验程序提取该信息,将其重新组合为完整的文件,并对每一数据包内容进行校验,出现误码时将发出警告。文件写入控制程序用于将校验完毕的数据文件存储至适当的存储器地址,主要完成数据文件由DDR高速缓存至FLASH存储器的搬移操作。快速检索程序用于查询用户所需文件的存储地址与其他附加信息。该程序使用文件名作为唯一索引,通过使用二分查找算法高效快速定位所需文件。系统主控状态机用于调度硬件资源、接收软件各个模块状态信息、分配任务至各功能模块。
如图3所示,文件和文件信息的存储是分区存储,文件本身存储在第一存储分区中,文件信息存储在第二存储分区中,FPGA初始化将文件写入到第二存储器,而由于文件信息存储于独立分区,因此若没有单独写入程序时,文件信息不会被写入到第二存储器。
图4示出了地址映射关系表的结构示意图,如图4所示,其包括高速缓存存储器(DDR)以及可固化数据的存储器(FLASH闪存)的地址映射关系,以及对应的文件名,文件长度等。
图5示出了上述文件管理系统的软件层面的运行状态示意图,从文件管理的角度考虑,FPGA软件可以分为三种工作状态:1)初始化;2)正常工作态;3)文件写入态。三种状态的切换由主控状态机进行调度,切换方式如图5。初始化操作在系统上电或复位后执行一次,用于读取FLASH内部提前固化完成的文件数据,并完成地址映射表的建立工作;正常工作态是初始化完成后的常规状态,通过解析中央控制系统发送的常规控制信息判断需要调取的文件内容,完成检索及读取操作;文件写入态是专门处理控制系统新下发文件数据的状态。当控制系统通过传输介质将文件数据传输至数字收发组件后,FPGA自动从正常工作态切换至文件写入态,用于完成文件信息检查、校验与文件数据写入操作。文件写入完成后需要执行全系统复位(或断电重启),用来触发初始化进程,读取新的文件内容。
可以理解,本发明的文件处理系统使用硬件描述语言搭建运行在FPGA硬件平台的文件存储与管理程序,实现外部存储器的调度、数据文件的存储与检索等功能,通过将文件与文件信息分别存储,这样可以使得文件信息列表在初始化进程中被初始化模块读取,然后从另一分区对文件进行寻址操作,检索出对应的文件,大大减少了文件检索的时间,提高了文件检索的效率。
下面对FPGA芯片及其与其他电子器件的相互作用进行详细说明。
可以理解的是,FPGA芯片作为处理芯片,可以写入设定程序执行对应的步骤,在本发明的一个方面实施例中,提供了一种由FPGA芯片执行的文件检索方法,如图6所示,具体包括:
S11:接收文件检索指令,所述文件读取指令包括请求检索的文件名;
S12:基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;所述文件存储于第一存储器的第一存储分区,所述文件信息列表存储于所述第一存储器的第二存储分区;
S13:基于所述第一存储地址进行寻址操作,检索出对应的文件。
文件检索指令包括请求检索的文件名,使用文件名作为唯一索引,方便快速定位所需文件。
可以理解,在本方面中,FPGA芯片可以仅仅利用第一存储器或者第二存储器中的一个,在本发明的实施例中,FPGA芯片直接通过文件名定位文件信息,进而得到第一存储地址,然后根据存储地址检索出对应的文件。
在优选的实施例中,为了保证实时性的要求,FPGA芯片需要同时利用第一存储器和第二存储器,在该实施例中,第一存储器作为固化数据(即持久化数据)的存储器,第二存储器作为高速缓存存储器,通过对FPGA芯片进行设置,其逻辑是当FPGA芯片初始化(上电或复位)时,通过FPGA芯片执行将第一存储器的文件写入到第二存储器中,这样文件的搜索工作在第二存储器中执行,第二存储器是高速缓存存储器,进而满足了检索实时性的要求的同时进一步满足文件存储稳定性的要求。
在进行文件检索时,可以基于二分查找法实施,二分查找法可以进一步快速定位所需文件,该优选实施例中,步骤S12具体包括:
S121:利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;所述地址映射关系表存储于第二存储器中,并且包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系;所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置;所述地址映射关系表中的文件名排序与所述文件信息列表的文件名排序相同;
S122:根据所述文件名的位置从所述文件信息列表中查找对应的文件信息。
进而步骤S3具体包括:
S31:根据所述地址映射关系以及所述第一存储地址,确定所述第二存储地址;
S32:根据所述第二存储地址从第二存储器中调取对应的文件。
该实施例中,其具体逻辑过程为:首先通过请求检索的文件名,从文件信息列表中确定第一存储地址,由于文件信息列表数据量小,可以直接从第一存储器中读取,不影响数据实时性要求,然后从定位地址映射关系中查找对应第一存储地址的第二存储地址,进而可以指示出该文件在初始化后写入第二存储器的地址。由于第二存储器是高速缓存存储器(如RAM),因此查询调取速度非常快,能够最大限度地满足文件实时性要求。
具体而言,二分查找法的步骤是:
S1211:确定所述地址映射关系表中的中间位置对应的所述文件名,所述地址映射关系表被所述中间位置划分成位于所述中间位置之前和位于所述中间位置之后的两个部分,所述两个部分包括第一部分和第二部分;
S1212:比对所述中间位置的文件名与请求检索的文件名是否一致,若不一致,根据两者的文件名字节长度的大小顺序,确定请求检索的文件名处于所述第一部分;
S1213:确定所述第一部分中的中间位置对应的所述文件名,所述第一部分被划分为两个部分,比对当前的中间位置与请求检索的文件名是否一致,若不一致,则根据两者的文件名字节长度的大小顺序重新定义所述第一部分,直至两者一致时输出一致的所述文件名位置,或者直至所述第一部分不可被切分时比较当前第一部分中唯一文件名与请求检索的文件名。
在该实施例中,第一部分是不断重新确定的,初始时,位于中间位置之前或者之后的是初始的第一部分,但执行一次迭代步骤后,第一部分重新在上一次的第一部分中选择,即当前的第一部分是相邻上一次第一部分中中间位置之前或者之后的部分。
例如文件名大小为10,文件信息列表中的中间位置文件名大小为12,则第一部分是文件信息列表的前一半,比较文件信息列表的前一半的中间位置的大小与检索的文件名大小,例如此时文件信息列表的前一半的中间位置的大小为9,9小于10,则确定第一部分是文件大小为9-12的部分,以此类推,直至比对一致(检索成功),或者无法再继续切分第一部分(检索失败)。
本实施例对于文件数量较多的情况可以节省大量检索时间。结合具备高速读写特性的RAM存储器,检索过程可实现单一时钟周期完成需求文件名与地址映射表内文件名的对比工作。若当前存储256个文件,最长8个时钟周期最短1个时钟周期即可得到检索结果。对于实时性要求较高的FPGA平台应用场景,二分查找法兼顾了效率与简易性,具备极大优势。
可以理解,本发明的上述FPGA芯片执行的检索方法,一方面通过分区存储文件和文件信息,可以快速从文件信息列表中定位文件地址,进而加快检索速度;另一方面,通过结合第一存储器和第二存储器,能够同时满足实时性和稳定性的要求,同时基于二分查找法更进一步加快检索速度。
进一步的,本发明还提供由FPGA芯片执行的文件写入方法,如图7所示,具体包括:
S21:将文件写入第一存储器的第一存储分区;
S22:将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表中一设定位置,使当前插入的文件名字节长度的大小顺序处于其前后相邻两个位置文件名字节长度的大小顺序之间;其中,
S23:所述文件信息列表存储于第一存储器的第二存储分区。
可以理解,本发明的写入步骤,一方面将文件和文件信息分区存储,文件信息列表可以快速获取,不需要通过检索,进而可以通过文件信息列表定位文件位置,加快检索,另一方面文件信息按照文件名大小排序,进而可以利用二分查找法查找文件,加快了文件检索速度。
进一步的,在虚拟模块层面,本发明还提供一种FPGA芯片,图8示出了其模块结构示意图,可以知晓,在虚拟模块层面,如图8所示,FPGA芯片具体包括:
初始化模块11,用于在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
文件写入控制模块12,用于控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
文件检索模块13,用于根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
基于相同的发明构思,在优选实施例中,所述文件检索指令包括请求检索的文件名;所述文件检索模块包括:
文件信息查找单元,基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;
寻址单元,基于所述第一存储地址进行寻址操作,检索出对应的文件。
基于相同的发明构思,在优选实施例中,所述地址映射关系表中的文件名排序与文件信息列表的文件名排序相同,所述文件信息查找单元包括:
文件名位置查找单元,利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;
文件信息列表搜索单元,根据所述文件名位置从所述文件信息列表中查找对应的文件信息。
进一步的,本发明还提供一种基于FPGA平台的文件管理装置,包括:
FPGA芯片、第一存储器以及第二存储器;所述FPGA芯片用于:
在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
可以理解,该实施例中,将第一存储器、第二存储器以及FPGA芯片打包组成一个产品装置,在生产和销售时,底层驱动器可以脱离于上述文件管理装置,当需要使用时,可以根据具体需求通过数据接口与底层驱动器耦接,不同需要只需更换对应的外设驱动程序即可运行于不同的硬件平台,具有良好的扩展性。并且该文件管理系统仍然具备本发明上述实施例所示出的有益效果,在此不做赘述。
从上述描述可知,本发明提供一种文件检索方法、写入方法、系统、FPGA芯片及装置,使用硬件描述语言搭建运行在FPGA硬件平台的文件存储与管理程序,实现外部存储器的调度、数据文件的存储与检索等功能,通过将文件与文件信息分别存储,这样可以使得文件信息列表在初始化进程中被初始化模块读取,然后从另一分区对文件进行寻址操作,检索出对应的文件,大大减少了文件检索的时间,提高了文件检索的效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (10)
1.一种基于FPGA平台的文件检索方法,其特征在于,包括:
接收文件检索指令,所述文件读取指令包括请求检索的文件名;
基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;所述文件存储于第一存储器的第一存储分区,所述文件信息列表存储于所述第一存储器的第二存储分区;
基于所述第一存储地址进行寻址操作,检索出对应的文件。
2.根据权利要求1所述的文件检索方法,其特征在于,所述基于所述文件名从文件信息列表中查到对应该文件名的文件信息,包括:
利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;所述地址映射关系表存储于第二存储器中,并且包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系;所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置;所述地址映射关系表中的文件名排序与所述文件信息列表的文件名排序相同;
根据所述文件名的位置从所述文件信息列表中查找对应的文件信息。
3.根据权利要求2所述的文件检索方法,其特征在于,所述基于所述第一存储地址进行寻址操作,检索出对应的文件,包括:
根据所述地址映射关系以及所述第一存储地址,确定所述第二存储地址;
根据所述第二存储地址从第二存储器中调取对应的文件。
4.根据权利要求2所述的文件检索方法,其特征在于,所述利用二分查找法从地址映射关系表中查找出请求检索的文件名位置,包括:
确定所述地址映射关系表中的中间位置对应的所述文件名,所述地址映射关系表被所述中间位置划分成位于所述中间位置之前和位于所述中间位置之后的两个部分,所述两个部分包括第一部分和第二部分;
比对所述中间位置的文件名与请求检索的文件名是否一致,若不一致,根据两者的文件名字节长度的大小顺序,确定请求检索的文件名处于所述第一部分;
确定所述第一部分中的中间位置对应的所述文件名,所述第一部分被划分为两个部分,比对当前的中间位置与请求检索的文件名是否一致,若不一致,则根据两者的文件名字节长度的大小顺序重新定义所述第一部分,直至两者一致时输出一致的所述文件名位置,或者直至所述第一部分不可被切分时比较当前第一部分中唯一文件名与请求检索的文件名。
5.一种基于FPGA平台的文件写入方法,其特征在于,包括:
将文件写入第一存储器的第一存储分区;
将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表中一设定位置,使当前插入的文件名字节长度的大小顺序处于其前后相邻两个位置文件名字节长度的大小顺序之间;其中,
所述文件信息列表存储于第一存储器的第二存储分区。
6.一种FPGA芯片,其特征在于,包括:
初始化模块,用于在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
文件写入控制模块,用于控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
文件检索模块,用于根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
7.根据权利要求6所述的FPGA芯片,其特征在于,所述文件检索指令包括请求检索的文件名;所述文件检索模块包括:
文件信息查找单元,基于所述文件名从文件信息列表中查到对应该文件名的文件信息,所述文件信息包括文件的第一存储地址;
寻址单元,基于所述第一存储地址进行寻址操作,检索出对应的文件。
8.根据权利要求7所述的FPGA芯片,其特征在于,所述地址映射关系表中的文件名排序与文件信息列表的文件名排序相同,所述文件信息查找单元包括:
文件名位置查找单元,利用二分查找法从地址映射关系表中查找出请求检索的文件名位置;
文件信息列表搜索单元,根据所述文件名位置从所述文件信息列表中查找对应的文件信息。
9.一种基于FPGA平台的文件管理装置,其特征在于,包括:
FPGA芯片、第一存储器以及第二存储器;所述FPGA芯片用于:
在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
10.一种基于FPGA平台的文件管理系统,其特征在于,包括:
FPGA芯片、第一存储器、第二存储器、数据接口以及至少一个底层驱动器,所述至少一个底层驱动器与所述FPGA芯片通过所述数据接口耦接进行数据传输;所述FPGA芯片用于:
在上电或复位后读取第一存储器的文件,并写入至第二存储器,同时生成一地址映射关系表;
控制文件写入第一存储器的第一存储分区,并将与文件对应的文件信息按照文件名字节长度的大小顺序插入到文件信息列表的一设定位置,所述文件信息列表存储在所述第一存储器的第二存储分区中,所述文件信息包括第一存储地址;以及
根据文件检索指进行寻址操作,检索出对应的文件;其中,
所述地址映射关系表包括与每个文件名一一对应的第一存储地址与第二存储地址的映射关系,所述第一存储地址用于指示所述文件在第一存储分区的存储位置,所述第二存储地址用于指示所述文件被写入至第二存储器的存储位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911325931.8A CN111125019A (zh) | 2019-12-20 | 2019-12-20 | 文件检索方法、写入方法、系统、fpga芯片及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911325931.8A CN111125019A (zh) | 2019-12-20 | 2019-12-20 | 文件检索方法、写入方法、系统、fpga芯片及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111125019A true CN111125019A (zh) | 2020-05-08 |
Family
ID=70500694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911325931.8A Pending CN111125019A (zh) | 2019-12-20 | 2019-12-20 | 文件检索方法、写入方法、系统、fpga芯片及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125019A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445770A (zh) * | 2020-11-30 | 2021-03-05 | 清远职业技术学院 | 多维乱序存储的超大规模高性能数据库引擎及云服务平台 |
CN114625084A (zh) * | 2022-03-02 | 2022-06-14 | 杭州康吉森自动化科技有限公司 | 基于控制系统的节点信息的获取方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901263A (zh) * | 2010-07-22 | 2010-12-01 | 华为终端有限公司 | 文件系统的访问方法及装置 |
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN105739927A (zh) * | 2016-01-29 | 2016-07-06 | 武汉精测电子技术股份有限公司 | 一种基于软核处理器的移动存储卡读写方法及文件升级系统 |
CN105917319A (zh) * | 2013-11-22 | 2016-08-31 | 斯瓦姆64有限责任公司 | 存储器单元和方法 |
CN108763099A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 系统的启动方法、装置、电子设备和存储介质 |
CN109284252A (zh) * | 2018-09-11 | 2019-01-29 | 武汉虹信通信技术有限责任公司 | 一种通信设备中轻量级文件系统管理方法 |
CN110109873A (zh) * | 2019-05-08 | 2019-08-09 | 重庆大学 | 一种用于消息队列的文件管理方法 |
CN110442533A (zh) * | 2019-07-18 | 2019-11-12 | 合肥杰发科技有限公司 | 一种提高访问性能的方法、设备及存储介质 |
-
2019
- 2019-12-20 CN CN201911325931.8A patent/CN111125019A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901263A (zh) * | 2010-07-22 | 2010-12-01 | 华为终端有限公司 | 文件系统的访问方法及装置 |
CN102662992A (zh) * | 2012-03-14 | 2012-09-12 | 北京搜狐新媒体信息技术有限公司 | 一种海量小文件的存储、访问方法及装置 |
CN105917319A (zh) * | 2013-11-22 | 2016-08-31 | 斯瓦姆64有限责任公司 | 存储器单元和方法 |
CN105739927A (zh) * | 2016-01-29 | 2016-07-06 | 武汉精测电子技术股份有限公司 | 一种基于软核处理器的移动存储卡读写方法及文件升级系统 |
CN108763099A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 系统的启动方法、装置、电子设备和存储介质 |
CN109284252A (zh) * | 2018-09-11 | 2019-01-29 | 武汉虹信通信技术有限责任公司 | 一种通信设备中轻量级文件系统管理方法 |
CN110109873A (zh) * | 2019-05-08 | 2019-08-09 | 重庆大学 | 一种用于消息队列的文件管理方法 |
CN110442533A (zh) * | 2019-07-18 | 2019-11-12 | 合肥杰发科技有限公司 | 一种提高访问性能的方法、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445770A (zh) * | 2020-11-30 | 2021-03-05 | 清远职业技术学院 | 多维乱序存储的超大规模高性能数据库引擎及云服务平台 |
CN114625084A (zh) * | 2022-03-02 | 2022-06-14 | 杭州康吉森自动化科技有限公司 | 基于控制系统的节点信息的获取方法及装置 |
CN114625084B (zh) * | 2022-03-02 | 2024-01-19 | 杭州康吉森自动化科技有限公司 | 基于控制系统的节点信息的获取方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667740B (zh) | 将数据存储装置分区与物理数据扇区的边界对齐 | |
US8959527B2 (en) | Dependency management in task scheduling | |
US7325110B2 (en) | Method for acquiring snapshot | |
JP4426280B2 (ja) | バックアップ/リストアシステム及び方法 | |
US20090019246A1 (en) | Power efficient storage with data de-duplication | |
US20080059752A1 (en) | Virtualization system and region allocation control method | |
US20100058007A1 (en) | Information processing apparatus and memory management method | |
JP2005501317A (ja) | 外部データ記憶装置管理システムおよび方法 | |
US6604170B1 (en) | Information processing apparatus and method, and computer readable memory | |
JP2001350707A (ja) | 情報処理システム、記憶装置の割り当て方法 | |
US20120110287A1 (en) | Snapshots in a hybrid storage device comprising a magnetic disk and a solid state disk | |
US20040236897A1 (en) | System and method for optimized access to memory devices requiring block writing | |
CN110457261B (zh) | 数据访问方法、装置及服务器 | |
US7231383B2 (en) | Search engine for large-width data | |
CN111125019A (zh) | 文件检索方法、写入方法、系统、fpga芯片及装置 | |
CN110825419B (zh) | 一种固件刷新方法、装置及电子设备和存储介质 | |
CN105389190B (zh) | 一种操作系统启动的方法、装置及系统 | |
CN111966611B (zh) | 具有逻辑转物理地址架构的spi闪存控制芯片 | |
CN115687174A (zh) | 一种固态硬盘动态垃圾回收的方法及固态硬盘 | |
CN103365926A (zh) | 在文件系统中用于保存快照的方法和装置 | |
CN109408416A (zh) | 一种地址映射表项页管理方法及装置 | |
CN117608856A (zh) | NVMe加速卡内存扩展方法、系统、终端及存储介质 | |
CN112948336B (zh) | 数据加速方法及缓存单元、电子设备及存储介质 | |
CN114138570A (zh) | 一种fpga的测试方法、系统、设备以及介质 | |
CN114020308A (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 |