多存储介质并存的配置方法、装置和系统与流程

文档序号:20874975发布日期:2020-05-26 16:22阅读:142来源:国知局
多存储介质并存的配置方法、装置和系统与流程

本申请涉及存储介质操作技术领域,特别涉及为一种多存储介质并存的配置方法、装置和系统。



背景技术:

手机、智能平板电脑等嵌入式设备中的cpu控制器往往支持搭配多种不同的存储介质,存储介质例如有emmc、ufs、nandflash、spinandflash、spinorflash等;在启动引导程序(bootloader)中操作不同的存储介质,以进行调用对应存储介质的函数接口以及操作命令,因操作命令跟函数接口各不相同且差异过大,导致繁多函数接口及命令给使用者带来不便;

因此,现业内亟待提出一种兼容的各类别存储介质切换且无需因繁多函数接口及命令导致切换不便的方案。



技术实现要素:

本申请旨在解决目前操作命令跟函数接口各不相同且差异过大,导致繁多函数接口及命令给使用者带来不便的技术问题,提供一种多存储介质并存的配置方法、装置和系统。

本申请为解决技术问题采用如下技术手段:

本申请提出一种多存储介质并存的配置方法,包括:

建立存储介质双链表,所述存储介质双链表记录在线的各可读写存储介质;

从预设置的storage层中调取介质切换指令,通过所述介质切换指令使预设的当前操作指针current关联所述各可读写存储介质的任意一项。

进一步地,所述建立存储介质双链表的步骤包括:

扫描出多个存储介质中状态为在线状态的存储介质;

判断所述第一存储介质是否记录于预设的注册表中;

若是,则标记所述注册表已记录的第一存储介质可直接通过介质切换指令进行直接切换;若否,则标记所述注册表未记录的第一存储介质录入至所述存储介质双链表中。

进一步地,所述存储介质的类型包括slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类,所述扫描出多个存储介质中状态为在线状态的存储介质的步骤包括:

读取所述slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类的存储介质中是否有正确的flashid;

若是,则判定为在线状态,反之为离线状态。

进一步地,所述存储介质的类型包括emmc类和sd类,所述扫描出多个存储介质中状态为在线状态的存储介质的步骤包括:

发送初始化命令cmd1至所述emmc类和sd类的存储介质,并判断是否接收到正确的回应;

若是,则判定为在线状态,反之为离线状态。

进一步地,扫描出多个存储介质中状态为离线状态的第二存储介质的步骤,包括:

扫描判定出所述多个存储介质中状态为离线状态的第二存储介质;

标注所述第二存储介质,并将所述第二存储介质退出建立存储介质双链表的流程中。

本申请提出一种多存储介质并存的配置装置,包括:

记录单元,用于建立存储介质双链表,所述存储介质双链表记录在线的各可读写存储介质;

切换单元,用于从预设置的storage层中调取介质切换指令,通过所述介质切换指令使预设的当前操作指针current关联所述各可读写存储介质的任意一项。

进一步地,所述记录单元包括:

扫描模块,用于扫描出多个存储介质中状态为在线状态的存储介质;

判断模块,用于判断所述第一存储介质是否记录于预设的注册表中;

标记模块,用于若是,则标记所述注册表已记录的第一存储介质可直接通过介质切换指令进行直接切换;若否,则标记所述注册表未记录的第一存储介质录入至所述存储介质双链表中。

本申请还提出一种多存储介质并存的配置系统,所述系统执行上述的多存储介质并存的配置方法,所述系统包括控制器、storage模块和各可读存储介质驱动模块;

所述控制器与storage模块相连接;

所述storage模块分别与各可读存储介质驱动模块连接。

本申请提供了多存储介质并存的配置方法、装置和系统,具有以下有益效果:

建立存储介质双链表,所述存储介质双链表记录在线的各可读写存储介质,通过存储介质双链表记录智能设备可进行介质并存方法的各存储介质;然后,从预设置的storage层中调取介质切换指令,通过所述介质切换指令使预设的当前操作指针current关联所述各可读写存储介质的任意一项,实现解决目前智能设备中的各类别存储介质切换因繁多函数接口及命令导致切换不便问题的效果。

附图说明

图1为本申请多存储介质并存的配置系统的结构框图;

图2为本申请多存储介质并存的配置系统storage模型与各可读存储介质驱动的连接示意图;

图3为本申请多存储介质并存的配置方法的流程示意图;

图4为本申请多存储介质并存的配置方法控制器根据介质切换指令控制storage层输出对应的命令以使current关联对应可读写存储介质的示意图;

图5为本申请多存储介质并存的配置装置的结构框图。

本申请为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

下面将结合本申请的实施例中的附图,对本申请的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参考附图1,为本申请提出的一种多存储介质并存的配置系统的结构框图;

一种多存储介质并存的配置系统包括控制器、storage模块和各可读存储介质驱动模块;控制器与storage模块相连接;storage模块分别与各可读存储介质驱动模块连接。

上述的各可读存储介质的类型分别包括slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类、emmc类、sd类。

上述的控制器用于控制storage模块输出对应的指令。

上述storage模块根据各个可读存储介质对应的建立存储介质分区,例如:根据storage模块确定的spinandflash类的存储介质,则对应建立spinandflash类的分区;建立对应的存储介质分区后,控制器通过storage模块为媒介与各个分区的可读存储介质映射。

具体的,本申请提出的多存储介质并存的配置系统是在启动引导程序(bootloader)中各个存储介质驱动的上层构建一个统一的模块,该存储模块为storage模块(或storage层),为多种存储介质共存提供统一管理和操作接口;例如:storage层读取存储介质某分区(即如mlcnandflash)的数据命令为,storereadaddrnameoffsize;

其中store:代表storage层命令;read:对存储介质的读取操作;addr:读取后存放数据的地址;name:存储介质某分区名;off:读取源数据地址相对于name分区的偏移,size:读取数据的大小。

由上述可知,采用storage模块统一各个存储介质的驱动,因此:

参考附图2,为storage模型与各可读存储介质驱动的连接示意图,其中,slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类、emmc类与sd类由对应的各自驱动模块驱动;如mlcnandflash类有配套对应的mlcnandflash驱动。

参考附图3,为本申请一实施例中的多存储介质并存的配置方法的流程示意图;

本申请提出的一种多存储介质并存的配置方法,包括:

s100,建立存储介质双链表,存储介质双链表记录在线的各可读写存储介质;

s200,从预设置的storage层中调取介质切换指令,通过介质切换指令使预设的当前操作指针current关联各可读写存储介质的任意一项。

本申请优选的执行主体为多存储介质并存的配置系统中的控制器,采用该控制器执行上述多存储介质并存的配置方法。

控制器建立存储介质双链表后,可以根据用户操作智能设备的指令,控制器生成对应的介质切换指令,如:storedevicespi-nand,然后根据介质切换指令使预设的当前操作指针current关联可读写存储介质的spi-nand介质,本申请优选当前操作指针current关联一可读写存储介质,但不限定采用相同方式关联若干个可读写存储介质,具体可参考附图4,为控制器根据介质切换指令控制storage层输出对应的命令以使current关联对应可读写存储介质的示意图。

在一个实施例中,仅当存储介质为在线状态且记录于注册表时,控制器才能根据介质切换指令控制storage层输出对应的命令以使current关联对应可读写存储介质,因此控制器采用如下方式进行存储介质的在线状态判定和注册表记录判定:

建立存储介质双链表的步骤包括:

扫描出多个存储介质中状态为在线状态的第一存储介质;

判断第一存储介质是否记录于预设的注册表中;

若是,则标记注册表已记录的第一存储介质可直接通过介质切换指令进行直接切换;若否,则标记注册表未记录的第一存储介质录入至存储介质双链表中。

上述存储介质的类型包括slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类,以及emmc类和sd类;其中监听slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类的存储介质为第一存储介质的方式为:读取slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类的存储介质中是否有正确的flashid;若是,则判定为在线状态,反之为离线状态。监听emmc类和sd类的存储介质为第一存储介质的方式为:发送初始化命令cmd1至emmc类和sd类的存储介质,并判断是否接收到正确的回应信息;若是,则判定为在线状态,反之为离线状态。

上述的flashid为记录于对应flash类别存储介质中的特有数据,上述的cmd1为预设于对应emmc或者sd类别存储介质中的运行程序其用于接受与反馈相应信息的命令。

在一个实施例中,扫描出多个存储介质中状态为在线状态的存储介质的步骤,包括:

扫描判定出多个存储介质中状态为离线状态的第二存储介质;

标注第二存储介质,并将第二存储介质退出建立存储介质双链表的流程中。

参考附图5,为本申请提出的一种多存储介质并存的配置装置的结构框图,其包括:

记录单元1,用于建立存储介质双链表,存储介质双链表记录在线的各可读写存储介质;

切换单元2,用于从预设置的storage层中调取介质切换指令,通过介质切换指令使预设的当前操作指针current关联各可读写存储介质的任意一项。

在一个实施例中,记录单元1包括:

扫描模块,用于扫描出多个存储介质中状态为在线状态的存储介质;

判断模块,用于判断第一存储介质是否记录于预设的注册表中;

标记模块,用于若是,则标记注册表已记录的第一存储介质可直接通过介质切换指令进行直接切换;若否,则标记注册表未记录的第一存储介质录入至存储介质双链表中。

在一个实施例中,扫描模块包括:

读取子模块,用于读取slcnandflash类、mlcnandflash类、spinandflash类、spinorflash类的存储介质中是否有正确的flashid;

第一判定子模块,用于若是,则判定为在线状态,反之为离线状态。

在一个实施例中,扫描模块包括;

接收反馈子模块,用于发送初始化命令cmd1至emmc类和sd类的存储介质,并判断是否接收到正确的回应;

第二判定子模块,用于若是,则判定为在线状态,反之为离线状态。

在一个实施例中,扫描模块包括:

离线判定子模块,用于扫描判定出多个存储介质中状态为离线状态的第二存储介质;

离线退出子模块,用于标注第二存储介质,并将第二存储介质退出建立存储介质双链表的流程中。

综上所述,建立存储介质双链表,所述存储介质双链表记录在线的各可读写存储介质,通过存储介质双链表记录智能设备可进行介质并存方法的各存储介质;然后,从预设置的storage层中调取介质切换指令,通过所述介质切换指令使预设的当前操作指针current关联所述各可读写存储介质的任意一项,实现解决目前智能设备中的各类别存储介质切换因繁多函数接口及命令导致切换不便问题的效果。

尽管已经示出和描述了本申请的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本申请的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1