一种多核协同控制器的实现方法及装置与流程

文档序号:31186515发布日期:2022-08-19 22:09阅读:40来源:国知局
一种多核协同控制器的实现方法及装置与流程

1.本发明涉及网络通信技术领域,具体涉及一种多核协同控制器的实现方法及装置。


背景技术:

2.数据从内存的某个地址搬移至其他模块或者终端的数据存储地址时,需要cpu参与读写本地的存储器,多次重复的数据搬运会占用cpu大量的时间和进程,使得cpu的使用效率变低。现有dma技术欠缺一种高效、灵活的任务分配模式,在终端通道个数方面缺乏可扩展性,仲裁灵活性不够,难以满足复杂需求。


技术实现要素:

3.针对现有技术的不足,本发明提供了一种多核协同控制器的实现方法及装置,本发明提供了一种灵活的任务分配描述符形式,根据不同的应用场景,多核协同控制器优先保证周期性任务;不修改硬件逻辑,软件可以通过构建描述符链表实现不同终端的轮询权重。
4.本发明通过以下技术方案予以实现:
5.一种多核协同控制器的实现方法,所述方法包括:cpu根据总线主机数据的需求,选择并且配置不同的描述符,cpu对控制器调度;
6.其中所述描述符包括:周期性任务描述符以及非周期性任务描述符;所述调度包括:控制器的启动、周期性任务计划与非周期任务计划的启动、中断事件的使能;
7.所述多核协同控制器首先获取周期性任务描述符和非周期性任务描述符,根据描述符参数进行数据搬运;更新描述符参数并且根据条件向cpu发出中断信号。
8.优选的,所述周期性任务描述符,只在周期性任务计划中被使用,所述描述符由若干个描述符参数构成,所述描述符参数包括:描述符指针字段、描述符类型字段、描述符有效标志字段、总线主机地址字段、传输方向字段、最大传输长度字段以及n个不同的传输状态字段、传输数据长度字段、完成中断标志字段、存储地址序号字段、存储地址偏移量字段以及不同地址序号字段;
9.所述描述符指针字段,在周期性任务计划中可以指向周期性任务描述符、非周期性任务描述符;
10.所述最大传输长度字段,为总线主机支持的最大传输长度;
11.所述传输状态字段包括:传输有效位、数据缓存错误位、接收数据超出预期位、传输过程错误位;所述传输数据长度为本次传输总共字节数;
12.所述完成中断标志字段,完成该传输后,多核协同控制器向cpu发送中断信号。
13.优选的,所述非周期性任务描述符,在周期性任务计划以及非周期性任务计划中都可以被使用,所述描述符由若干个描述符参数以及子任务描述符覆盖区组成,所述描述符参数包括:描述符指针字段、描述符类型字段、描述符有效标志字段、否定上限字段、否定
计数字段、最大传输长度字段、首端标志字段、总线主机地址字段、当前子任务描述符指针字段、下一个子任务描述符指针字段、下一个子任务描述符备用指针字段、子任务描述符指针有效标志字段;
14.所述子任务描述符覆盖区,是指控制器获取非周期性任务描述符后根据子任务描述符指针获取子任务描述符,并且将子任务描述符参数进行覆盖;
15.所述描述符指针字段,在周期性任务计划中可以指向周期性任务描述符、非周期性任务描述符,在非周期性任务计划中只能指向非周期性任务描述符;
16.所述否定上限字段,控制器在搬运某一块数据时,总线主机对传输否定次数的上限,否定次数大于上限后,控制器会向cpu发送中断信号并且将该总线主机的传输暂停;
17.所述否定计数字段,控制器在执行当前周期性任务描述符时,收到一次否定,计数字段就会记录,成功完成一次传输,计数字段清零;
18.所述首端标志字段,是指在非周期性任务计划中,非周期任务描述符组成的链表首端标志;
19.所述当前子任务描述符指针字段,当前子任务描述符覆盖区利用的子任务描述符参数;
20.所述下一个子任务描述符指针字段,指针有效标志为真时,下一个子任务描述符覆盖区利用,指针有效标志为假是,利用备用指针字段进行覆盖。
21.优选的,所述子任务描述符由若干个描述符参数构成,所述描述符参数包括:下一个子任务描述符指针字段、下一个子任务描述符备用指针字段、子任务描述符指针有效标志字段、传输数据长度字段、完成中断标志字段、存储地址序号字段、错误计数字段、传输方向字段、传输状态字段、存储地址偏移量字段以n个不同的地址序号字段;
22.所述传输状态字段,包括:传输有效位、传输暂停位,数据缓存错误位、接收数据超出预期位、传输过程错误位。
23.优选的,cpu通过多核协同控制器内部寄存器,分别控制周期性任务计划与非周期性任务计划;当两种任务计划同时被cpu启用时,多核协同控制器优先执行周期性任务计划;
24.在一个周期的开始,控制器更新内部缓存的任务计划,优先执行周期性任务计划,完成所有的周期性任务计划后开始执行非周期性任务计划;在周期的开始,如果没有周期性任务计划,控制器直接执行非周期性任务计划;
25.在一个周期的末端,控制器停止执行所有任务计划,等待下一个周期开始。
26.优选的,cpu通过多核协同控制器内部寄存器,控制周期的时间长短;控制器内部的计数器和标志位,确定周期的开始和末端;控制器内的只读寄存器提供给cpu当前正在执行的周期。
27.优选的,所述周期性任务计划与非周期性任务计划分别有独立的控制寄存器;多核协同控制器向cpu发送中断信号的频率。
28.优选的,当多核协同控制器获取任务描述符时,所述周期性任务计划与非周期性任务计划同时启用,周期性任务计划优先级高于非周期性任务计划;
29.在所述周期性任务计划中,多核协同控制器通过周期性任务指针阵列,获取链表首端的任务描述符,完成任务描述符后按照描述符指针字段获取下一个任务描述符;
30.在所述非周期性任务计划中,多核协同控制器通过非周期性任务指针寄存器,获取链表中的某一个任务描述符,在执行下一个任务描述符时,多核协同控制器会更新寄存器中的值。
31.优选的,在所述周期性任务计划中,多核协同控制器通过内部周期寄存器获取到周期性任务指针。
32.本发明还提供如下技术方案:一种多核协同控制器的装置,采用上述所述的种多核协同控制器的实现方法,包括:cpu、多核协同控制器、模块总线主机共享内存和总线结构。
33.本发明的有益效果为:
34.1、cpu根据总线主机数据的需求,选择配置周期性任务描述符或者非周期性任务描述符;cpu对多核协同控制器进行相应的调度;多核协同控制器获取任务描述符,执行数据搬运并且更新任务描述符;其有益效果是,cpu分配完传输任务后,控制器可以根据调度分配不同总线主机的数据传输。
35.2、周期性任务描述符由若干个描述符参数构成,所述描述符参数包括:描述符指针字段、描述符类型字段、描述符有效标志字段、总线主机地址字段、传输方向字段、最大传输长度字段以及n个不同的传输状态字段、传输数据长度字段、完成中断标志字段、存储地址序号字段、存储地址偏移量字段以及不同地址序号字段;其有益效果是,总线主机在某一周期可以根据分配灵活的完成不同传输次数、传输数据长度、不同来源的传输任务;控制器根据分配向cpu发送传输完成的中断信号。
36.3、非周期性任务描述符由若干个描述符参数以及子任务描述符覆盖区,所述描述符参数包括:描述符指针字段、描述符类型字段、描述符有效标志字段、否定上限字段、否定计数字段、最大传输长度字段、首端标志字段、总线主机地址字段、当前子任务描述符指针字段、下一个子任务描述符指针字段、下一个子任务描述符备用指针字段、子任务描述符指针有效标志字段;其有益效果是,总线主机与非周期性任务描述符成对应关系,cpu拆解后的传输任务通过子任务描述符传递给控制器进行分配。
37.4、cpu通过多核协同控制器内部寄存器,分别控制周期性任务计划与非周期性任务计划。当两种任务计划同时被cpu启用时,多核协同控制器优先执行周期性任务计划;在一个周期的开始,控制器更新内部缓存的任务计划,优先执行周期性任务计划,完成所有的周期性任务计划后开始执行非周期性任务计划;在周期的开始,如果没有周期性任务计划,控制器直接执行非周期性任务计划;在一个周期的末端,控制器停止执行所有任务计划,等待下一个周期开始;其有益效果是,区分不同总线主机的数据搬运优先级,在周期性任务计划中,可以分配不同总线主机的轮询额度。
38.5、cpu通过多核协同控制器内部寄存器,控制周期的时间长短;控制器内部的计数器和标志位,确定周期的开始和末端;控制器内的只读寄存器提供给cpu当前正在执行的周期;其有益效果是,cpu更新任务分配计划前,可以精确定位到控制器当前任务节点位置。
39.6、周期性任务计划与非周期性任务计划分别有独立的控制寄存器;多核协同控制器向cpu发送中断信号的频率;其有益效果是,cpu根据总线主机需求,选择性启用传输任务。
40.7、周期性任务计划与非周期性任务计划同时启用,周期性任务计划优先级高于非
周期性任务计划;周期性任务计划中,多核协同控制器通过周期性任务指针阵列,获取链表首端的任务描述符,完成任务描述符后按照描述符指针字段获取下一个任务描述符;非周期性任务计划中,多核协同控制器通过非周期性任务指针寄存器,获取链表中的某一个任务描述符,在执行下一个任务描述符时,多核协同控制器会更新寄存器中的值;其有益效果是,控制器会持续进行数据搬运直至任务描述符指针无效,cpu读取控制器内部寄存器,可以获得当前执行任务节点位置。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本发明实例中系统架构示意图;
43.图2为本发明中周期性任务计划中,周期性计划指针与任务描述符关系的示意图;
44.图3为本发明中非周期性任务计划中,非周期性任务描述符与子任务描述符关系的示意图;
45.图4为本发明中周期性任务描述符对应的描述符参数示意图;
46.图5为本发明中非周期任务描述符对应的描述符参数示意图;
47.图6为本发明中子任务描述符对应的描述符参数示意图。
具体实施方式
48.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.实施例1:
50.请参阅图1~图3所示:本发明提出了一种多核协同控制器的实现方法及装置的技术方案,包括:
51.系统架构可以使用如图1所示,cpu、多核协同控制器、模块总线主机共享内存和总线的结构;
52.任务计划描述符分配与多核协同控制器的配置步骤应为:
53.cpu根据总线主机需求,选择周期性任务描述符或者非周期性任务描述符,出现周期性任务计划时,cpu需要在共享内存中添加周期性计划指针阵列;
54.cpu将总线主机的任务分解并且添加到共享内存中后,对多核协同控制器进行调度,当多核协同控制器开始工作后,共享内存中的任务描述符的修改权限由cpu移交给多核协同控制器;
55.多核协同控制器获取任务描述符的步骤应为:
56.周期可以是一段固定的时间长度,在同一个周期内,控制器优先完成该地址指针对应下的周期性任务计划链表,链表全部完成后进入非周期任务计划;
57.多核协同控制器执行周期性任务计划的步骤应为:
58.控制器根据本地的周期寄存器,根据共享内存中的周期性计划指针阵列进行查表,获得链表首端的任务描述符;
59.按照获取的任务描述符执行规则进行数据搬运,任务描述符完成后,控制器更新描述符参数并且根据描述符指针字段获得下一个任务描述符;
60.多核协同控制器执行非周期性任务计的步骤应为:
61.多核协同控制器根据非周期性任务描述符地址寄存器,获取非周期性任务描述符链表;
62.控制器判断当前子任务描述符的状态字段,进行子任务描述符的更新并且执行数据搬运;
63.控制器执行完一次数据搬运后,更新描述符参数并且根据描述符指针字段获取下一个非周期性任务描述符,并且更新非周期任务描述符地址寄存器;
64.控制器重复上述过程,直到该周期结束或者非周期性任务计划链表为空。
65.本实施例具体结合图2和图3,对本发明中任务描述符分配使用进行更为具体地说明。
66.在周期性任务计划中,有若干个数据传输的总线主机,以8个周期为一个循环进行任务分配。如图2所示,不同的任务描述符通过任务描述符指针链接,在一个循环中获得不同的轮询次数。第1个周期,控制器按照80,8
0.1
,8
0.2
,41,21,11,12的顺序获取并执行描述符;其中41还可以通过83的描述符指针被控制器获取并执行,因此该描述符是每4个周期轮询一次,理可以获得轮询额度更高的描述符。
67.在非周期性任务计划中,有若干个数据传输的总线主机。如图3所示,一个非周期性任务描述符对应一个总线主机,cpu将各个总线主机的传输任务拆解后以子任务描述符的形式留在共享内存中。控制器获取第1个描述符后,首先判断当前子任务描述符的状态,根据下一个子任务描述符指针字段,获取并且更新非周期任务描述符子任务描述符相关字段。控制器完成一次数据搬运后,更新非周期任务描述符参数,获取下一个非周期任务描述符并且更新控制器内部地址寄存器。
68.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1