一种基于任务调度的芯片端口配置方法与装置制造方法及图纸

技术编号:29788801 阅读:29 留言:0更新日期:2021-08-24 18:07
本发明专利技术公开了一种基于任务调度的芯片端口配置方法与装置,根据用户设置的端口类型确定对象映射从属关系,并根据对象映射从属关系和用户设置的端口数量,创建芯片端口各模块的相应对象;根据用户设置的配置类型和资源类型为对应的对象创建一个用户任务并放入任务队列,在用户任务的基础上根据对象映射从属关系为各对象创建不同的子任务并放入任务队列;通过轮询调度方式不断从任务队列中取出任务并执行,实现各对象的相关配置,直至用户任务执行结束完成芯片端口配置。本发明专利技术将任务和对象挂钩,可实现在配置一个端口时最大限度的并行配置,在同时配置多个端口时也能够达到不相互影响并行配置的效果,大幅提高配置效率。

【技术实现步骤摘要】
一种基于任务调度的芯片端口配置方法与装置
本专利技术属于交换芯片软件配置
,更具体地,涉及一种基于任务调度的芯片端口配置方法与装置。
技术介绍
交换芯片的端口配置是一种常见的芯片软件配置,在芯片运行前需要根据设备的需要将端口配置成需要的数量和类型。随着交换芯片带宽的增加,端口类型需要支持的数量和种类也在持续增加,目前支持的端口类型主要有1G、5G、10G、25G、40G、50G、100G等。而芯片端口又主要有多媒体访问控制器(MediaAccessController,简写为MAC)、物理编码子层(PhysicalCodingSublayer,简写为PCS)以及串行和解串行编码解码(Serializer/deserializer,简写为Serdes)这三大类相关模块需要配置,每一类模块下又包括对应类型的多个小模块,模块与模块之间还存在部分关联的关系。在当前的设备中,交换芯片的端口配置方法方案中多采取的是顺序配置,即按照一定的顺序直接配置;例如,先配置Serdes模块相关配置,再配置Pcs模块相关配置,最后再配置Mac模块相关配置。如图1所示,假设Serdes类的小模块有n1个,Pcs类的小模块有n2个,Mac类的小模块有n3个,则对于每个端口来说,均需要先配置Serdes类的n1个小模块相关配置,再配置Pcs类的n2个小模块相关配置,最后再配置Mac类的n3个小模块相关配置。假设总共需要进行多个端口的配置,则端口列表中记录了这多个端口,配置时需要按照上述方法依次对端口列表中的每个端口进行相关配置,直至端口列表中的所有端口配置完毕。上述配置方式虽然结构简单,但是代码的可扩展性不好,配置时需要按照顺序依次进行,即所有模块的配置需要串行执行,导致配置效率不高,尤其是当模块数量较多时;而且每当新增一种类型端口时就需要新添加一个相应的端口配置函数和配置文件,容易造成代码冗余。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于任务调度的芯片端口配置方法与装置,其目的在于将模块对象化和配置任务化,通过任务调度的方法实现并行配置,由此解决传统的串行配置方式配置效率低以及增加端口类型容易造成代码冗余的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于任务调度的芯片端口配置方法,包括:根据用户设置的端口类型确定对象映射从属关系,并根据所述对象映射从属关系和用户设置的端口数量,创建芯片端口各模块的相应对象;根据用户设置的配置类型和资源类型为对应的对象创建一个用户任务并放入任务队列,在所述用户任务的基础上根据所述对象映射从属关系为各对象创建不同的子任务并放入任务队列;通过轮询调度方式不断从所述任务队列中取出任务并执行,实现各对象的相关配置,直至所述用户任务执行结束时完成芯片端口配置。优选地,当用户设置的资源类型为A时,为对应的对象A创建所述用户任务,则在所述端口数量为1的情况下,从所述任务队列中取出所述用户任务后,对应的执行方法包括:根据所述对象映射从属关系和用户设置的配置类型,创建一个与对象B相关的子任务并放入所述任务队列;其中,所述对象B从属于所述对象A;根据用户设置的配置类型对所述对象A进行相关配置,如果需要和芯片硬件进行寄存器交互,则创建交易相关的子任务并放入所述任务队列;当所述对象A的相关配置完成时,创建一个用于查询所述对象B的相关配置是否完成的定时子任务并放入调度队列;其中,当查询到所述对象B的相关配置完成时,表示所述用户任务执行结束,完成芯片端口配置。优选地,所述如果需要和芯片硬件进行寄存器交互,则创建交易相关的子任务并放入任务队列,具体为:如果所述对象A需要和芯片硬件进行寄存器交互,则创建一个交易并放入交易队列,并将所述对象A的状态置位为等待硬件同步的标志位;当芯片硬件的相应消息通过软件开发包上送时,从所述交易队列中取出该交易,然后根据该交易创建交易相关的子任务并放入所述任务队列;当通过轮询调度方式从所述任务队列中取出交易相关的该子任务时,通过执行该子任务完成与芯片硬件的交易同步,并将所述对象A的状态置位为可继续配置状态,继续完成所述对象A的相关配置。优选地,在所述创建一个用于查询所述对象B的相关配置是否完成的定时子任务并放入调度队列之后,所述方法还包括:根据调度时间从所述调度队列中取出该定时子任务,并将该定时子任务放入所述任务队列中等待调度执行;当从所述任务队列中取出该定时子任务执行时,如果返回结果为所述对象B的相关配置未完成,则重新将该定时子任务放入所述调度队列中等待下轮调度;如果返回结果为所述对象B的相关配置完成,则将所述用户任务的状态置位为执行结束状态。优选地,在所述用户任务的执行过程中,所述方法还包括:当芯片硬件有中断事件需要上报给用户时,创建一个子任务并放入所述任务队列中等待调度执行;当从所述任务队列中取出该子任务执行时,将相应的中断事件放入事件队列中,等待通告时间满足要求后通告给用户。优选地,当通过轮询调度方式从所述任务队列中取出所述与对象B相关的子任务后,对应的执行方法包括:根据所述对象映射从属关系和用户设置的配置类型,创建一个与对象C相关的子任务并放入所述任务队列;其中,所述对象C从属于所述对象B;根据用户设置的配置类型对所述对象B进行相关配置,如果需要和芯片硬件进行寄存器交互,则创建交易相关的子任务并放入所述任务队列;当所述对象B的相关配置完成时,创建一个用于查询所述对象C的相关配置是否完成的定时子任务并放入调度队列;其中,当查询到所述对象C的相关配置完成时,创建一个用于向所述对象A通告所述对象B的相关配置完成的子任务并放入所述任务队列。优选地,当所述端口数量为大于1的N时,从所述任务队列中取出所述用户任务后,对应的执行方法包括:根据用户设置的端口数量N为所述用户任务创建N个子任务,并将所述N个子任务放入所述任务队列中等待调度执行;其中,所述N个子任务的任务内容均与所述用户任务相同。优选地,所述配置类型包括创建、删除和修改中的一种或多种。优选地,所述资源类型包括Mac、Pcs、PcsLane、PcsMux和SerdesLane中的一种或多种。按照本专利技术的另一方面,提供了一种基于任务调度的芯片端口配置装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于任务调度的芯片端口配置方法。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有如下有益效果:本专利技术提供的芯片端口配置方法中,将芯片端口相关的各个模块对象化,并将模块配置任务化,将端口的配置由一个大的任务拆分为多个不同的小配置任务,通过任务调度的方法取出各任务并执行,使各模块配置能够并行配置,从而完成芯片端口配置。本专利技术通过将任务和对象挂钩,可以实现在配置一个端口时最大本文档来自技高网
...

【技术保护点】
1.一种基于任务调度的芯片端口配置方法,其特征在于,包括:/n根据用户设置的端口类型确定对象映射从属关系,并根据所述对象映射从属关系和用户设置的端口数量,创建芯片端口各模块的相应对象;/n根据用户设置的配置类型和资源类型为对应的对象创建一个用户任务并放入任务队列,在所述用户任务的基础上根据所述对象映射从属关系为各对象创建不同的子任务并放入任务队列;/n通过轮询调度方式不断从所述任务队列中取出任务并执行,实现各对象的相关配置,直至所述用户任务执行结束时完成芯片端口配置。/n

【技术特征摘要】
1.一种基于任务调度的芯片端口配置方法,其特征在于,包括:
根据用户设置的端口类型确定对象映射从属关系,并根据所述对象映射从属关系和用户设置的端口数量,创建芯片端口各模块的相应对象;
根据用户设置的配置类型和资源类型为对应的对象创建一个用户任务并放入任务队列,在所述用户任务的基础上根据所述对象映射从属关系为各对象创建不同的子任务并放入任务队列;
通过轮询调度方式不断从所述任务队列中取出任务并执行,实现各对象的相关配置,直至所述用户任务执行结束时完成芯片端口配置。


2.如权利要求1所述的基于任务调度的芯片端口配置方法,其特征在于,当用户设置的资源类型为A时,为对应的对象A创建所述用户任务,则在所述端口数量为1的情况下,从所述任务队列中取出所述用户任务后,对应的执行方法包括:
根据所述对象映射从属关系和用户设置的配置类型,创建一个与对象B相关的子任务并放入所述任务队列;其中,所述对象B从属于所述对象A;
根据用户设置的配置类型对所述对象A进行相关配置,如果需要和芯片硬件进行寄存器交互,则创建交易相关的子任务并放入所述任务队列;
当所述对象A的相关配置完成时,创建一个用于查询所述对象B的相关配置是否完成的定时子任务并放入调度队列;其中,当查询到所述对象B的相关配置完成时,表示所述用户任务执行结束,完成芯片端口配置。


3.如权利要求2所述的基于任务调度的芯片端口配置方法,其特征在于,所述如果需要和芯片硬件进行寄存器交互,则创建交易相关的子任务并放入任务队列,具体为:
如果所述对象A需要和芯片硬件进行寄存器交互,则创建一个交易并放入交易队列,并将所述对象A的状态置位为等待硬件同步的标志位;
当芯片硬件的相应消息通过软件开发包上送时,从所述交易队列中取出该交易,然后根据该交易创建交易相关的子任务并放入所述任务队列;
当通过轮询调度方式从所述任务队列中取出交易相关的该子任务时,通过执行该子任务完成与芯片硬件的交易同步,并将所述对象A的状态置位为可继续配置状态,继续完成所述对象A的相关配置。


4.如权利要求2所述的基于任务调度的芯片端口配置方法,其特征在于,在所述创建一个用于查询所述对象B的相关配置是否完成的定时子任务并放入调度队列之后,所述方法还包括:
根据调度时间从所述调度队列中取出该定时子任务,并将该定时子任务放入所述任务队列中等待调度执行;
当从所述任务队列中取出该定时子任务执行时,如果返回结...

【专利技术属性】
技术研发人员:何彪
申请(专利权)人:烽火通信科技股份有限公司武汉飞思灵微电子技术有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1