一种软硬件交互方法及装置、存储介质与流程

文档序号:22544558发布日期:2020-10-17 02:10阅读:129来源:国知局
一种软硬件交互方法及装置、存储介质与流程

本申请实施例涉及通信技术领域,尤其涉及一种软硬件交互方法及装置、存储介质。



背景技术:

在专用集成电路设计中,为了满足设计的灵活性,通常采用软件配置硬件,通过软件调整参数和场景配置,能够提供多种工作模式。由于软件的可再设计性,可以有效避免硬件局部设计缺陷而造成的芯片整体设计识别。

目前,通用的软件配置硬件的方法是通过寄存器直接配置,软件和硬件的交互通过配置寄存器实现,如图1所示。其中,软件通过寄存器配置硬件需要的场景参数,硬件通过寄存器上报给软件实时计算信息。

然而,直接配置的方法在多人协同大规模开发时管理复杂,维护过程中容易出错,导致硬件失效。



技术实现要素:

本申请实施例提供一种软硬件交互方法及装置、存储介质,采用层次化的方式配置寄存器,从而提高软硬件交互的效果,避免硬件失效的问题。

本申请实施例的技术方案是这样实现的:

本申请实施例提供了一种软硬件交互方法,应用于软硬件交互装置,所述软硬件交互装置包括:管理模块、软件模块、硬件模块,以及多个寄存器,所述方法包括:

利用所述管理模块,确定寄存器分层配置策略;

利用所述软件模块,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置;

利用所述硬件模块,读取出所述多个寄存器的配置信息,并根据所述配置信息完成硬件配置。

在上述方法中,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置之前,所述方法还包括:

利用所述管理模块,生成所述多个寄存器对应的信息管理列表;

按照预设间隔时间,利用所述管理模块周期性的更新所述信息管理列表。

在上述方法中,所述利用所述管理模块,生成所述多个寄存器对应的信息管理列表,包括:

利用所述管理模块,将所述多个寄存器中对应所述硬件模块中不同子模块的寄存器,分别映射至不同的物理地址;

利用所述管理模块,获取所述多个寄存器中每个寄存器的寄存器参数;其中,所述寄存器参数至少包括以下其中一种:优先级、更新速度和功能;

利用所述管理模块,根据所述物理地址和所述寄存器参数,生成所述信息管理列表。

在上述方法中,所述将所述多个寄存器中对应所述硬件模块中不同子模块的寄存器,分别映射至不同的物理地址之后,所述方法还包括:

在所述软硬件装置新增第一寄存器的情况下,利用所述管理模块,获取所述多个寄存器中,与所述第一寄存器的功能相似度大于预设相似度的第二寄存器;

利用所述管理模块,将所述第一寄存器映射至与所述第二寄存器的物理地址关联的物理地址。

在上述方法中,所述利用所述软件模块,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置,包括:

在对所述多个寄存器中,物理地址连续的至少两个寄存器进行配置的过程中,利用所述软件模块,调用直接存储器访问通道一次性完成所述至少两个寄存器的信息配置。

在上述方法中,所述方法还包括:

在所述软件模块,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置的过程中,利用所述管理模块,根据所述硬件模块中不同子模块的配置顺序,控制所述多个寄存器中相应寄存器的配置顺序。

在上述方法中,所述利用所述硬件模块,读取出所述多个寄存器的配置信息,包括:

利用所述硬件模块,确定与所述软件模块配置所述多个寄存器的配置速度匹配的读取速度;

利用所述硬件模块,按照所述读取速度读取出所述多个寄存器的配置信息。

在上述方法中,所述方法还包括:

在所述硬件模块获得上报信息的情况下,利用所述管理模块,对所述硬件模块指示上报时间和目标寄存器;所述目标寄存器为所述多个寄存器中的寄存器;

利用所述硬件模块,按照所述上报时间,将所述上报信息上报至所述目标寄存器;

利用所述软件模块,从所述目标寄存器中读取所述上报信息。

本申请实施例提供了一种软硬件交互装置,所述装置包括:管理模块、软件模块、硬件模块,以及多个寄存器,

所述管理模块,用于确定寄存器分层配置策略;

所述软件模块,用于按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置;

所述硬件模块,用于读取出所述多个寄存器的配置信息,并根据所述配置信息完成硬件配置。

在上述装置中,所述管理模块,还用于生成所述多个寄存器对应的信息管理列表;按照预设间隔时间,利用所述管理模块周期性的更新所述信息管理列表。

在上述装置中,所述管理模块,还用于将所述多个寄存器中对应所述硬件模块中不同子模块的寄存器,分别映射至不同的物理地址;获取所述多个寄存器中每个寄存器的寄存器参数;其中,所述寄存器参数至少包括以下其中一种:优先级、更新速度和功能;根据所述物理地址和所述寄存器参数,生成所述信息管理列表。

在上述装置中,所述管理模块,还用于在所述软硬件装置新增第一寄存器的情况下,获取所述多个寄存器中,与所述第一寄存器的功能相似度大于预设相似度的第二寄存器;将所述第一寄存器映射至与所述第二寄存器的物理地址关联的物理地址。

在上述装置中,所述软件模块,具体用于在对所述多个寄存器中,物理地址连续的至少两个寄存器进行配置的过程中,调用直接存储器访问通道一次性完成所述至少两个寄存器的信息配置。

在上述装置中,所述管理模块,还用于在所述软件模块,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置的过程中,利用所述管理模块,根据所述硬件模块中不同子模块的配置顺序,控制所述多个寄存器中相应寄存器的配置顺序。

在上述装置中,所述硬件模块,具体用于确定与所述软件模块配置所述多个寄存器的配置速度匹配的读取速度;按照所述读取速度读取出所述多个寄存器的配置信息。

在上述装置中,所述管理模块,还用于在所述硬件模块获得上报信息的情况下,对所述硬件模块指示上报时间和目标寄存器;所述目标寄存器为所述多个寄存器中的寄存器;

所述硬件模块,还用于按照所述上报时间,将所述上报信息上报至所述目标寄存器;

所述软件模块,还用于从所述目标寄存器中读取所述上报信息。

在上述装置中,所述软件模块为通用集成电路。

在上述装置中,所述硬件模块为专用集成电路。

本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述软硬件交互方法。

本申请实施例提供了一种软硬件交互方法,应用于软硬件交互装置,软硬件交互装置包括:管理模块、软件模块、硬件模块,以及多个寄存器,方法包括:利用管理模块,确定寄存器分层配置策略;利用软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置;利用硬件模块,读取出多个寄存器的配置信息,并根据配置信息完成硬件配置。本申请实施例提供的技术方案,采用层次化的方式配置寄存器,从而提高软硬件交互的效果,避免硬件失效的问题。

附图说明

图1为现有技术中提供的软硬件交互示意图;

图2为本申请实施例提供的一种软硬件交互示意图;

图3为本申请实施例提供的一种软硬件交互方法的流程示意图;

图4为本申请实施例提供的一种软硬件交互装置的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供了一种软硬件交互方法,通过软硬件交互装置实现。

需要说明的是,在本申请的实施例中,软硬件交互装置包括:管理模块、软件模块、硬件模块,以及多个寄存器。图2为本申请实施例提供的一种软硬件交互示意图。以下基于图2进行软硬件交互方法的详述。

图3为本申请实施例提供的一种软硬件交互方法的流程示意图。如图3所示,主要包括以下步骤:

s301、利用管理模块,确定寄存器分层配置策略。

在本申请的实施例中,软硬件交互装置可以利用管理模块确定寄存器分层配置策略。

需要说明的是,在本申请的实施例中,相比于现有的软硬件交互装置,引入了管理模块,用于完成配置寄存器的管理工作,管理模块可以由软件模块和硬件模块共同维护。管理模块在初始状态下,包括一定的存储字段,从而可以保证进行寄存器管理的可扩展性。

需要说明的是,在本申请的实施例中,对于管理模块,其可以配置有单独的虚拟模型,与软件模块和硬件模块解耦合,向下兼容。管理模块可以配置有简单的对外接口和版本号,不同进度的开发人员仅需要设置版本号即可实现相应的本地开发。

需要说明的是,在本申请的实施例中,软件模块和硬件模块的交互通过配置多个寄存器实现,具体的,软件模块通过寄存器配置硬件模块需要的场景参数等信息,硬件模块通过寄存器向软件模块上报实时计算信息等信息。具体的多个寄存器的数量可以根据实际需求设置,本申请实施例不作限定。

需要说明的是,在本申请的实施例中,寄存器分层配置策略可以为基于应用场景、基于上行下行、基于主卡副主卡等制定的规则。具体的寄存器分层配置策略可以根据实际需求确定,本申请实施例不作限定。

s302、利用软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置。

在本申请的实施例中,软硬件交互装置可以利用软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置。

需要说明的是,在本申请的实施例中,如图2所示,软件模块可以按照寄存器分层配置策略,一层一层的配置寄存器,即对于多个寄存器而言,可以先按照寄存器分层配置策略,选取出第一层要配置的寄存器,完成信息配置,再选取下一层要配置的寄存器,进行信息配置,直至全部配置完成。

可以理解的是,在本申请的实施例中,软件模块按照寄存器分层配置策略,层级化的配置寄存器,不同寄存器具有不同的优先级,可以有效的避免硬件配置错误,联合调试失败。

需要说明的是,在本申请的实施例中,利用软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置,包括:在对多个寄存器中,物理地址连续的至少两个寄存器进行配置的过程中,调用直接存储器访问通道一次性完成至少两个寄存器的信息配置。

可以理解的是,在本申请的实施例中,软件模块在按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置的过程中,可能存在部分寄存器的功能是相关的,表现在物理地址上即物理地址是连续的,因此,可以在配置到这些寄存器时,调用直接存储器访问(directmemoryacess,dma)通道一次性配置,从而提升软件模块配置寄存器的速度。

具体地,在本申请的实施例中,针对一次性配置部分寄存器的情况,软件模块可以将寄存器写入硬件模块的存储器中,并更新先进先出任务,由硬件模块将不同的寄存器的配置信息分配至各个硬件模块。其中,如果先进先出任务为满状态,软件模块不再继续写入寄存器配置,直至先进先出任务为非满状态,软件模块再次写入寄存器配置。

需要说明的是,在本申请的实施例中,在软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置的过程中,利用管理模块,根据硬件模块中不同子模块的配置顺序,控制多个寄存器中相应寄存器的配置顺序。

可以理解的是,在本申请的实施例中,硬件模块中包括各种功能的硬件模块,软件模块按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置的过程中,配置的可以是硬件模块中不同子模块对应的寄存器,因此,管理模块可以根据硬件模块中不同子模块的配置顺序,进行相应寄存器配置顺序的约束,从而防止某些硬件模块配置过程,引起模块间的反压操作。

s303、利用硬件模块,读取出多个寄存器的配置信息,并根据配置信息完成硬件配置。

在本申请的实施例中,软硬件交互装置,利用硬件模块可以读取多个寄存器的配置信息,从而进行不同子模块的配置。

具体的,在本申请的实施例中,利用硬件模块,读取出多个寄存器的配置信息,包括:利用硬件模块,确定与软件模块配置多个寄存器的配置速度匹配的读取速度;利用硬件模块,按照读取速度读取出多个寄存器的配置信息。

可以理解的是,在本申请的实施例中,硬件模块和多个寄存器之间的交互应当适配软件模块和多个寄存器之间的交互速度,即硬件模块读取多个寄存器的配置信息的读取速度,需要与软件模块对多个寄存器进行配置的速度匹配,从而保证硬件模块与软件模块的正确交互,避免软件模块配置的速度晚于硬件模块读取的速度,产生配置错误。

需要说明的是,在本申请的实施例中,在硬件模块获得上报信息的情况下,利用管理模块,对硬件模块指示上报时间和目标寄存器;目标寄存器为多个寄存器中的寄存器;利用硬件模块,按照上报时间,将上报信息上报至目标寄存器;利用软件模块,从目标寄存器中读取上报信息。

可以理解的是,在本申请的实施例中,硬件模块可以获得实时计算信息等信息作为上报信息,需要上报至软件模块,此时,管理模块可以向硬件模块指示上报时间和用于接收上报信息的寄存器,即目标寄存器,硬件模块从而可以在到达上报时间的情况下,将上报信息上报至目标寄存器。之后,软件模块可以从目标寄存器中读取该上报信息,已进行相关处理。

在本申请的实施例中,软硬件交互装置,还可以利用管理模块,生成多个寄存器对应的信息管理列表;按照预设间隔时间,利用管理模块周期性的更新信息管理列表。

需要说明的是,在本申请的实施例中,如图2所示,管理模块可以根据多个寄存器,生成相应的信息管理列表,在该列表中,描述了各个寄存器的相关特性。

具体的,在本申请的实施例中,利用管理模块,生成多个寄存器对应的信息管理列表,包括:利用管理模块,将多个寄存器中对应硬件模块中不同子模块的寄存器,分别映射至不同的物理地址;利用管理模块,获取多个寄存器中每个寄存器的寄存器参数;其中,寄存器参数至少包括以下其中一种:优先级、更新速度和功能;利用管理模块,根据物理地址和寄存器参数,生成信息管理列表。

需要说明的是,在本申请的实施例中,管理模块可以将硬件模块中不同子模块需要的寄存器,映射到不同的物理地址,但是在软件角度上,对功能相相近的寄存器予以统一说明,即在列表中说明项中进行描述。

需要说明的是,在本申请的实施例中,不同寄存器根据自身的功能和特性存在不同的参数,例如,优先级、更新速度和功能等,因此,管理模块可以获取到这些信息,从而在生成信息管理列表时,在列表中进行说明。此外,寄存器参数还可以包括在特定场景下与其它寄存器的关系等,本申请实施例不作限定。

可以理解的是,在本申请的实施例中,开发人员通过查看信息管理列表就可以获知不同寄存器的功能,从而避免利用软件模块重复配置相同功能的寄存器,浪费软件模块有限的运算资源。此外,开发人员也可以根据信息管理列表中记载的寄存器更新速度,进行相关设计和利用。

具体的,在本申请的实施例中,利用管理模块,将多个寄存器中对应硬件模块中不同子模块的寄存器,分别映射至不同的物理地址之后,还可以执行以下步骤:在多个寄存器中新增第一寄存器的情况下,利用管理模块,获取多个寄存器中,与第一寄存器的功能相似度大于预设相似度的第二寄存器;利用管理模块,将第一寄存器映射至与第二寄存器的物理地址关联的物理地址。

可以理解的是,在本申请的实施例中,软件模块配置硬件模块是通过多个寄存器进行配置,在硬件模块需求增加和版本迭代的过程中不可避免会引入寄存器的增减,在多个寄存器中引入新的寄存器,即第一寄存器的情况下,管理模块可以从多个寄存器中,确定与第一寄存器的功能较为相似的寄存器,即第二寄存器,将第二寄存器映射至与第二寄存器的物理地址关联的物理地址,例如,与第二寄存器的物理地址连续的物理地址等,解决了寄存器混乱的问题,从而软件模块在进行功能相似的寄存器信息配置时,可以通过dma通道快速配置,提升软件配置能力。

需要说明的是,在本申请的实施例中,第一寄存器和第一寄存器的预设相似度可以根据实际需求预先设置,本申请实施例不作限定。

需要说明的是,在本申请的实施例中,软件模块可以为通用集成电路,例如处理器、数字信号处理器等。硬件模块可以为特定用户或特定电子系统制作的专用集成电路,可以包括能够实现特定功能的硬件电路。具体的软件模块和硬件模块本申请实施例不作限定。

本申请实施例提供了一种软硬件交互方法,应用于软硬件交互装置,软硬件交互装置包括:管理模块、软件模块、硬件模块,以及多个寄存器,方法包括:利用管理模块,确定寄存器分层配置策略;利用软件模块,按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置;利用硬件模块,读取出多个寄存器的配置信息,并根据配置信息完成硬件配置。本申请实施例提供的软硬件交互方法,采用层次化的方式配置寄存器,从而提高软硬件交互的效果,避免硬件失效的问题。

本申请实施例提供了一种软硬件交互装置。图4为本申请实施例提供的一种软硬件交互装置的结构示意图。如图4所示,软硬件交互装置包括:管理模块401、软件模块402、硬件模块403,以及多个寄存器404;

所述管理模块401,用于确定寄存器分层配置策略;

所述软件模块402,用于按照所述寄存器分层配置策略对所述多个寄存器404进行层级划分,并逐层进行信息配置;

所述硬件模块403,用于读出所述多个寄存器404的配置,并根据所述配置信息完成硬件配置。

在本申请一实施例中,所述管理模块401,还用于将所述多个寄存器中对应所述硬件模块中不同子模块的寄存器,分别映射至不同的物理地址;获取所述多个寄存器中每个寄存器的寄存器参数;其中,所述寄存器参数至少包括以下其中一种:优先级、更新速度和功能;根据所述物理地址和所述寄存器参数,生成所述信息管理列表。

在本申请一实施例中,所述管理模块401,还用于在所述软硬件装置新增第一寄存器405(图中未示出)的情况下,获取所述多个寄存器中,与所述第一寄存器的功能相似度大于预设相似度的第二寄存器;将所述第一寄存器映射至与所述第二寄存器的物理地址关联的物理地址。

在本申请一实施例中,所述软件模块402,具体用于在对所述多个寄存器中,物理地址连续的至少两个寄存器进行配置的过程中,调用直接存储器访问通道一次性完成所述至少两个寄存器的信息配置。

在本申请一实施例中,所述管理模块401,还用于在所述软件模块402,按照所述寄存器分层配置策略对所述多个寄存器进行层级划分,并逐层进行信息配置的过程中,根据所述硬件模块403中不同子模块的配置顺序,控制所述多个寄存器404中相应寄存器的配置顺序。

在本申请一实施例中,所述硬件模块403,具体用于确定与所述软件模块402配置所述多个寄存器404的配置速度匹配的读取速度;按照所述读取速度读取出所述多个寄存器404的配置信息。

在本申请一实施例中,所述管理模块401,还用于在所述硬件模块403获得上报信息的情况下,对所述硬件模块403指示上报时间和目标寄存器;所述目标寄存器为所述多个寄存器404中的寄存器;

所述硬件模块403,还用于按照所述上报时间,将所述上报信息上报至所述目标寄存器;

所述软件模块402,还用于从所述目标寄存器中读取所述上报信息。

在本申请一实施例中,所述软件模块402为通用集成电路。

在本申请一实施例中,所述硬件模块403为专用集成电路。

本申请实施例提供了一种软硬件交互装置,包括:管理模块、软件模块、硬件模块,以及多个寄存器,管理模块,用于确定寄存器分层配置策略;软件模块,用于按照寄存器分层配置策略对多个寄存器进行层级划分,并逐层进行信息配置;硬件模块,用于读取出多个寄存器的配置信息,并根据配置信息完成硬件配置。本申请实施例提供的软硬件交互装置,采用层次化的方式配置寄存器,从而提高软硬件交互的效果,避免硬件失效的问题。

本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述软硬件交互方法。计算机可读存储介质可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);或者非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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