提高硬件利用率的方法及设备的制造方法
【技术领域】
[0001 ] 本发明实施例涉及视频技术,尤其涉及一种提高硬件利用率的方法及设备。
【背景技术】
[0002]在视频监控领域,数据处理量巨大,数据处理实时性要求高,有效利用硬件以减轻系统负担是一项重要需求。
[0003]假设实例(instance)l、instance2和instance3同时对某一硬件提交数据处理任务,则中央处理器(Central Processing Unit,简称:CPU)会仲裁哪个instance取得硬件使用权,并配置相应的寄存器,硬件根据CPU的配置开始工作,在完成数据处理后,硬件向CPU发送中断,CPU进行中断处理,然后重复上述过程。
[0004]由于在现有技术中,各个instance串行使用硬件,则后取得硬件使用权的instance等待时间长,数据处理实时性差,且在CPU配置寄存器时,硬件被闲置,每个instance使用完硬件后都上报中断,导致中断数量过多,占用过多CPU资源。
【发明内容】
[0005]本发明实施例提供一种提高硬件利用率的方法及设备,以提高硬件的利用率,减少中断数量。
[0006]第一方面,本发明实施例提供一种提高硬件利用率的方法,包括:
[0007]中央处理器CPU将多个模板分别作为任务结点生成模板链;其中,每个所述任务结点包含配置指示信息以及私有信息;所述配置指示信息包括进行数据处理所需的配置信息以及指示下一所述任务结点的物理地址的下一字段指示信息;所述私有信息用于说明与当前所述任务结点对应的设备;
[0008]所述CPU将所述模板链上的首任务结点的物理地址配置给所述硬件,以使所述硬件将所述首任务结点的所述配置指示信息载入寄存器进行数据处理;
[0009]所述CPU接收所述硬件上报的中断信息,所述中断信息是所述硬件在判断所述配置指示信息中的所述下一字段指示信息为空时向所述CPU发送的;
[0010]所述CPU根据各所述私有信息,将处理结果发送给相应的设备。
[0011]在第一方面的第一种可能的实现方式中,所述CPU将多个模板分别作为任务结点生成模板链之前,还包括:
[0012]所述CPU将获取到的多个所述处理任务分别生成所述模板,并判断所述硬件是否处于忙碌状态;
[0013]相应的,所述CPU将多个模板分别作为任务结点生成模板链,包括:
[0014]若判断结果为是,则所述CPU将多个所述模板放入任务队列中;并启动硬件状态检测定时器,在所述硬件状态检测定时器检测到所述硬件处于空闲状态时,将所述任务队列中的多个所述模板分别作为所述任务结点生成所述模板链。
[0015]根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述CPU根据各所述私有信息,将处理结果发送给相应的设备,包括:
[0016]所述CPU通过中断处理程序检查所述模板链上各所述任务结点的所述私有信息,根据所述私有信息判断出与当前所述任务结点对应的设备,将所述处理结果发送给所述设备。
[0017]结合第一方面至第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述CPU在生成各所述模板的同时,还生成与各所述模板对应的备用模板;其中,所述备用模板用于在所述硬件工作过程中进行更新,以使所述硬件在下一次工作时使用更新后的所述备用模板。
[0018]根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述私有信息添加在所述模板的尾部。
[0019]根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述私有信息包含所述设备的标识。
[0020]第二方面,本发明实施例提供一种提高硬件利用率的方法,包括:
[0021]硬件根据模板链上的任务结点的物理地址,将所述任务结点的配置指示信息载入寄存器进行数据处理;其中,所述模板链上包含多个所述任务结点,每个所述任务结点包含所述配置指示信息以及私有信息;所述配置指示信息包括进行数据处理所需的配置信息以及指示下一所述任务结点的物理地址的下一字段指示信息;所述私有信息用于说明与当前所述任务结点对应的设备;
[0022]所述硬件处理完当前所述任务结点上的处理任务后,根据所述配置指示信息中的所述下一字段指示信息确定当前所述任务结点为所述模板链的最后一个所述任务结点,则所述硬件向中央处理器CPU上报中断信息,以使所述CPU根据所述私有信息将处理结果发送给相应的设备。
[0023]在第二方面的第一种可能的实现方式中,所述根据所述配置指示信息中的所述下一字段指示信息确定当前所述任务结点为所述模板链的最后一个所述任务结点,则所述硬件向中央处理器CPU上报中断信息,包括:
[0024]所述硬件判断当前所述任务结点的所述配置指示信息中的所述下一字段指示信息是否为空;
[0025]若否,则所述硬件根据多个所述任务结点的所述配置指示信息中的所述下一字段指示信息确定出所述模板链的最后一个所述任务结点;所述硬件向所述CPU上报所述中断信息;
[0026]若是,所述硬件确定当前所述任务结点是所述模板链的最后一个所述任务结点;则所述硬件向所述CPU上报所述中断信息。
[0027]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述私有信息添加在所述模板的尾部。
[0028]根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述私有信息包含所述设备的标识。
[0029]第三方面,本发明实施例提供一种中央处理器CPU,包括:
[0030]模板链生成模块,用于将多个模板分别作为任务结点生成模板链;其中,每个所述任务结点包含配置指示信息以及私有信息;所述配置指示信息包括进行数据处理所需的配置信息以及指示下一所述任务结点的物理地址的下一字段指示信息;所述私有信息用于说明与当前所述任务结点对应的设备;
[0031]配置模块,用于将所述模板链上的首任务结点的物理地址配置给所述硬件,以使所述硬件将所述首任务结点的所述配置指示信息载入寄存器进行数据处理;
[0032]接收模块,用于接收所述硬件上报的中断信息,所述中断信息是所述硬件在判断所述配置指示信息中的所述下一字段指示信息为空时向所述CPU发送的;
[0033]发送模块,用于根据各所述私有信息,将处理结果发送给相应的设备。
[0034]在第三方面的第一种可能的实现方式中,所述模板链生成模块还用于将获取到的多个所述处理任务分别生成所述模板,
[0035]所述CPU还包括判断模块,用于判断所述硬件是否处于忙碌状态;
[0036]相应的,所述模板链生成模块具体用于若判断结果为是,则将多个所述模板放入任务队列中;并启动硬件状态检测定时器,在所述硬件状态检测定时器检测到所述硬件处于空闲状态时,将所述任务队列中的多个所述模板分别作为所述任务结点生成所述模板链。
[0037]根据第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述发送模块具体用于通过中断处理程序检查所述模板链上各所述任务结点的所述私有信息,根据所述私有信息判断出与当前所述任务结点对应的设备,将所述处理结果发送给所述设备。
[0038]结合第三方面至第二种可能的实现方式,在第三种可能的实现方式中,所述模板链生成模块在生成各所述模板的同时,还生成与各所述模板一一对应的备用模板;其中,所述备用模板用于在所述硬件工作过程中进行更新,以使所述硬件在下一次工作时使用更新后的所述备用模板。
[0039]根据第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述私有信息添加在所述模板的尾部。
[0040]根据第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述私有信息包含所述设备的标识。
[0041]第四方面,本发明实施例提供一种硬件,包括:
[0042]处理模块,用于根据模板链上的任务结点的物理地址,将所述任务结点的配置指示信息载入寄存器进行数据处理;其中,所述模板链上包含多个所述任务结点,每个所述任务结点包含所述配置指示信息以及私有信息;所述配置指示信息包括进行数据处理所需的配置信息以及指示下一所述任务结点的物理地址的下一字段指示信息;所述私有信息用于说明与当前所述任务结点对应的设备;
[0043]上报模块,用于在所述处理模块处理完当前所述任务结点上的处理任务后,根据所述配置指示信息中的所述下一字段指示信息确定当前所述任务结点为所述模板链的最后一个所述任务结点,则所述硬件向中央处理器CPU上报中断信息,以使所述CPU根据所述私有信息将处理结果发送给相应的设备。
[0044]在第四方面的第一种可能的实现方式中,所述上报模块具体用于:
[0045]判断当前所述任务结点的所述配置指示信息中的所述下一字段指示信息是否为空;
[0046]若否,则所述硬件根据多个所述任务结点的所述配置指示信息中的所述下一字段指示信息确定出所述模板链的最后一个所述任务结点;所述硬件向所述CPU上报所述中断信息;
[0047]若是,所述硬件确定当前所述任务结点是所述模板链的最后一个所述任务结点;则所述硬件向所述CPU上报所述中断信息。
[0048]结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述私有信息添加在所述模板的尾部。
[0049]根据第四方面的第二