一种软件定义硬件的控制方法和控制器

文档序号:29695276发布日期:2022-04-16 12:50阅读:270来源:国知局
一种软件定义硬件的控制方法和控制器

1.本发明涉及软件定义硬件控制技术领域,特别是一种软件定义硬件的控制方法和控制器。


背景技术:

2.软件定义硬件(sdh)的本质就是在硬件资源数字化、标准化的基础上,通过软件编程去实现虚拟化、灵活、多样和定制化的功能,对外提供客户化的专用智能化、定制化的服务,实现应用软件与硬件的深度融合。其核心是api(application programming interface)。api解除了软硬件之间的耦合关系,推动应用软件向个性化方向发展,硬件资源向标准化方向发展,系统功能向智能化方向发展。软件定义硬件程序将创建一个可扩展的硬件/软件架构,与asic(application specific integrated circuit,专用集成电路)不同,允许应用程序在运行时修改硬件配置。
3.groq公司研发的张量流处理器(tsp)架构,也给出了“软件定义硬件”的基本思路,即芯片中所有操作的控制和调度均由软件完成,从而减少相应的硬件开销,把节省的部分用于运算和片上存储。
4.现有技术中,针对tsp架构基础上提出的软件定义硬件控制器设计较少,因此提出一种基于tsp架构的软件定义硬件控制方法和控制器亟具需要。


技术实现要素:

5.针对上述问题,本发明旨在提供一种软件定义硬件的控制方法和控制器。
6.本发明的目的采用以下技术方案来实现:
7.第一方面,本发明示出一种软件定义硬件的控制方法,应用于tsp架构芯片,该方法包括如下步骤:
8.s1针对待处理任务选取tsp芯片上空闲的ip核进行任务映射,并将剩余资源划分出最大剩余资源块作为下次任务映射的区域;
9.s2当tsp片上网络中任务映射区域更新时,基于自适应路由算法更新网络中节点间的传输链路。
10.一种实施方式中,步骤s1具体包括:
11.s11获取当前tsp片上网络中空闲ip核的拓扑结构信息;
12.s12采用边沿映射的方式,沿内部网络边缘选择映射位置进行任务映射;
13.s13采用最大剩余资源分割法,确定最优的分割方案划分出最大剩余资源块作为下次任务映射的区域。
14.一种实施方式中,步骤s12中,具体包括:
15.在一片空闲矩形ip核资源上,首先从左上角开始选取空闲的ip核进行任务映射,其顺序依次为:左上、右上、右下、左下;
16.其中在任务映射的过程中优先分配两个新任务在tsp片上网络中映射的位置不相
邻。
17.一种实施方式中,步骤s13中,具体包括:
18.当任务映射后,从剩余的ip核所组成的图形中,分割出一个包含ip核数最多的矩形,来作为下次任务映射的区域。
19.一种实施方式中,步骤s2具体包括:
20.s21节点动态更新自身周围链路的实时状态,并维护成实时状态表。
21.s22利用改进的a*算法,结合odd_even算法来寻找最短路径,并避免芯片死锁。
22.一种实施方式中,步骤s21具体包括:
23.当tsp片上网络中出现故障或任务映射区域更新时,tsp片上网络中每个节点更新自身周围链路的实时状态并维护成节点周围链路的实时状态表;其中该实时状态表不断更新;
24.当节点的某一方向发生堵塞或故障时,对节点间的传输进行重新评估,通过节点的实时状态表获取问题信息,提前进行跳步并使用预设的逃离虚信道避开问题区域,以此来保证芯片上传输的最小成本开销。
25.一种实施方式中,步骤s22具体包括:
26.基于获取的tsp片上网络拓扑结构和节点间的链路消耗信息,采用改进的a*算法计算各任务对应源节点与目的节点之间的最短路径,并依照计算的最短路径进行路由转发;其中在tsp片上网络拓扑结构中,将已经被占用的节点及其对应的链路视为阻塞区域。
27.一种实施方式中,步骤s22具体包括:利用改进后的a*算法,实现动态双向搜索。由起始点与目标点同时进行搜索,并将上一时刻对方到达的节点作为终止节点,引导搜索方向。在搜索过程中,引入动态步长,进行搜索。
28.一种实施方式中,步骤s22具体包括:在利用改进的a*算法计算任务对应源节点与目的节点之间的最短路径时,结合odd_even算法来避免死锁:
29.其中如果节点所在的y坐标为奇数,记该列称为奇数列;如果该列的y坐标为偶数,记该列称为偶数列;用e/s/w/n分别代表片上网络的东南西北四个方向,nw表示从北到西的转弯,sw表示从南到西的转弯,en表示从东到北的转弯,es表示从东到南的转弯;
30.通过如下约束来避免死锁发生:
31.禁止奇数列节点发生nw和sw的转向,即奇数列转弯目的禁止向西;
32.禁止偶数列节点发生en和es的转向,即偶数列起始方向禁止向东;
33.禁止180度转向。
34.第二方面,本发明示出一种软件定义硬件的控制器,应用于tsp架构芯片,该控制器用于实现上述第一方面中任一种实施方式所示的软件定义硬件的控制方法。
35.本发明的有益效果为:
36.本发明通过合理安排任务与芯片内资源的映射,分块使用资源,使其得到更好的利用。且并不需要在芯片上保留多道程序,节省了芯片上的存储资源。同时采用对任务进行分块映射的方法,大大缩短了传输链路,提高了运行时间的同时,也提高了芯片的性能。
37.本发明采用自适应的路由算法,将确定性路由改为自适应路由,改进a*算法,并结合xy路由,避免死锁情况的发生,同时,选择一条通信距离最短的路径,以减少传输时间,保证资源的充分利用。
附图说明
38.利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
39.图1为本发明实施例所示一种软件定义硬件的控制方法的示意图;
40.图2为本发明图1实时例中的tsp芯片架构示意图;
41.图3为本发明图1实施例中的边沿映射示意图;
42.图4为本发明图1实施例中的最大剩余资源分割示意图;
43.图5为本发明图1实施例中的最大剩余资源分割示意图;
44.图6为本发明图1实施例中的最大剩余资源分割示意图;
45.图7为本发明图1实施例中的改进后的a*算法流程图。
具体实施方式
46.结合以下应用场景对本发明作进一步描述。
47.参见图1实施例所示一种软件定义硬件的控制方法,应用于基于张量流处理器(tsp)架构的tsp芯片,该方法包括如下步骤:
48.s1针对待处理任务选取tsp芯片上空闲的ip核进行任务映射,并将剩余资源划分出最大剩余资源块作为下次任务映射的区域;
49.s2当tsp片上网络中任务映射区域更新时,基于自适应路由算法更新网络中节点间的传输链路。
50.一种实施方式中,tsp芯片包含内存模块、交换执行模块和矢量交换单元等功能单元。
51.与传统的2d网络结构处理器芯片不同,在传统多核处理器芯片中,每个片都是独立的,是功能单元的异构集合,但却是全局同构的。而tsp架构则相反,有局部功能同构,但全局范围是异构的。
52.一种场景中,tsp芯片架构如图2所示,其中内存模块(mem)由44个并行的静态随机存取存储器片组成,并提供充分利用每个方向上的32个流所需的内存并发性。每个片提供16字节存储字的13位物理寻址,每个字节映射到一个通道,总共220兆字节的片内静态随机存取存储器。
53.交换执行模块(sxm)为类似于核间用于通信的网络接口。
54.tsp的结构为左右对称结构,其中左右两端均包含内存模块(mem)与交换执行模块(sxm)。中间的单元为矢量交换单元(vxm)。
55.片上的数据传输通过内存模块(mem)与交换执行模块(sxm)来共同执行。水平方向上,数据可以在320个通道上,通过内存模块(mem)的移动,双向流通;垂直方向上,数据只可以通过交换执行模块(sxm),重新排列矢量元素,在同一个超通道内,进行数据的传递。tsp芯片设置的20个超通道相当于将整个芯片分成了20个分组计算群。
56.现有技术中针对tsp芯片的任务映射设计,虽然资源的利用率得到了提高,但是存在占用大量内存,降低芯片利用率的技术问题。
57.一种实施方式中,步骤s1具体包括:
58.s11获取当前tsp片上网络中空闲ip核的拓扑结构信息;
59.s12采用边沿映射的方式,沿内部网络边缘选择映射位置进行任务映射。
60.s13采用最大剩余资源分割法,确定最优的分割方案划分出最大剩余资源块作为下次任务映射的区域。
61.一种场景中,基于上述提出的tsp芯片架构,整个tsp芯片被分成了20个分组,任务的调度选择可以在小组内进行,大大缩短了传输链路,提高了运行时间的同时,也提高了芯片的性能。其中,任务的调度可以在小组内进行,也可以将临近的几个小组相结合,形成新的分组。新任务的映射过程称为系统资源的动态分配,(sdh)控制器在当前的拓扑结构中选择空闲的ip核来完成该任务,从而形成新的拓扑结构。当ip核的空闲较多时,可以有多种选择,但是任意的随机选择可能会导致核的分布不均匀,传输任务的路径也不是最短的。当(sdh)控制器中输出其他任务时,会对ip核的造成干扰。因此,上述提出采用边沿映射的方式进行映射,能够保证资源的完整性。
62.一种实施方式中,步骤s12中,具体包括:
63.在一片空闲矩形ip核资源上,首先从左上角开始选取空闲的ip核进行任务映射,其顺序依次为:左上、右上、右下、左下;
64.其中在任务映射的过程中优先分配两个新任务在tsp片上网络中映射的位置不相邻。
65.参见图3,其示出一种tsp上资源的边沿映射示意图,其中每一横行表示一条超通道,一条超通道自己可以形成一个计算组,也可以与其附近的超通道,共同构成计算分组。边沿映射即在一片空闲矩形资源上,首先从左上角开始选取空闲的ip核进行任务映射,其顺序依次为:左上、右上、右下、左下。在任务映射的过程中要尽量保证两个新任务不相邻。当新任务出现时,根据任务的大小,会先填满左上角的ip核,然后依次为右上,右下,左下。通过上述边沿映射的方式进行任务映射,能够有效提高芯片的性能。
66.一种实施方式中,步骤s13中,具体包括:
67.当任务映射后,从剩余的ip核所组成的图形中,分割出一个包含ip核数最多的矩形,来作为下次任务映射的区域。
68.考虑到任务占据tsp芯片上ip核数量的不确定性以及拓扑的不规则性,对于随机指定的一个的拓扑结构,同样的资源具有不同的分割方式。于是根据实际情况,提出最大剩余资源分割法来将剩余资源划分出最大剩余资源块,参见图4-图6:当任务映射之后,从剩下ip核所组成的图形中分割出一个矩形,选择矩形内包含ip核数最多的一种方式进行分割(如图4),作为下一次任务映射的区间。此时分割出的最大剩余资源,就被认为是最优分割方案。
69.一种实施方式中,步骤s2具体包括:
70.s21节点动态更新自身周围链路的实时状态,并维护成实时状态表。
71.s22利用改进的a*算法,结合odd_even算法来寻找最短路径,并避免芯片死锁。
72.一种实施方式中,步骤s21具体包括:
73.当tsp片上网络中出现故障或任务映射区域更新时,tsp片上网络中每个节点更新自身周围链路的实时状态并维护成节点周围链路的实时状态表;其中该实时状态表不断更新;
74.当节点的某一方向发生堵塞或故障时,对节点间的传输进行重新评估,通过节点的实时状态表获取问题信息,提前进行跳步并使用预设的逃离虚信道避开问题区域,以此来保证芯片上传输的最小成本开销。
75.针对现有技术中利用xy维序路由算法实现数据在芯片上的传输的技术方案存在的技术问题:xy路由算法属于确定性路由,简单高效,在少量数据的传输中,这种算法的性价比最高。但是当数据急剧增加时,如果大量分组需要同时被进行水平(沿x轴)或垂直传输(沿y轴),则可能导致片上网络中某些行列的严重阻塞。由于其不能响应动态的网络状态变化,所以当网络拥塞增加时,资源消耗过大,花费的时间也将更多,无法满足低时延的要求,性能也将迅速下降,而且还存在死锁问题。
76.一种实施方式中,步骤s22具体包括:
77.基于获取的tsp片上网络拓扑结构和节点间的链路消耗信息,采用改进后的双向a*算法计算各任务对应源节点与目的节点之间的最短路径,并依照计算的最短路径进行路由转发;其中在tsp片上网络拓扑结构中,将已经被占用的节点及其对应的链路视为阻塞区域。
78.其中a*算法结合了dijkstra和bfs的各自的优点,把dijkstra算法(靠近初始点的节点)和bfs算法(靠近目标点的节点)的信息块结合起来。由于tsp芯片只允许上下左右四个方向前进,所以引入曼哈顿距离作为启发函数,用于引导其搜索方向。针对a*算法进行改进。传统的a*算法是单纯的由起始点向终点方向前进,双向a*算法在a*算法的基础上,由起始点与目标点同时进行搜索,当一方检测到另一方已经检查过的节点时,搜索结束。在搜索时效上,双向a*算法将更节省时间。
79.为了同时考虑搜索精度和搜索时间,引入动态步长。首先设置大步长t1与小步长t2,基于对tsp芯片中的已占用节点的检测,先用大步长t去对节点进行扩展,连接当前节点与即将扩展的节点,如果连线中包含已经占用的节点,则将当前节点向扩展节点前进的长度调整为小步长t2。在此步骤中,针对距离已占用节点较远的节点,采用大步长搜索,以此减少双向a*算法的搜索节点,减少算法的搜索时间;针对距离已占用节点较近的节点,采用小步长搜索,以此增加双向a*算法的搜索节点,提高算法的搜索精度,避免对于已占用节点的重复利用。
80.在利用改进的a*算法计算任务对应源节点与目的节点之间的最短路径时,结合odd_even算法来避免死锁。
81.其中如果节点所在的y坐标为奇数,记该列称为奇数列;如果该列的y坐标为偶数,记该列称为偶数列;用e/s/w/n分别代表东南西北,nw表示从北到西的转弯,sw表示从南到西的转弯,en表示从东到北的转弯,es表示从东到南的转弯;
82.通过如下约束来避免死锁发生:
83.禁止奇数列节点发生nw和sw的转向,即奇数列转弯目的禁止向西;
84.禁止偶数列节点发生en和es的转向,即偶数列起始方向禁止向东;
85.禁止180度转向。
86.对于tsp架构来说,还增加了如下约束:当数据流过mem时,可以进行水平传输;当数据流过svm时,数据可以在通道间但是限制在一条超通道内,纵向传输。
87.通过优化传统的xy维序路由算法,实现一种自适应的路由算法,将确定性路由改
为自适应路由,避免死锁情况的发生,同时,选择一条通信距离最短的路径,以减少传输时间,保证资源的充分利用。
88.针对tsp芯片来说,它的内部硬件拓扑结构、功能单元数目在正常情况下不会改变,因此预先计算了节点间的传输成本,并将计算结果维护成表。控制器参照表格中的拓扑结构,链路消耗,可以将已经被占用的节点及其周围链路视为阻塞区域,利用改进的a*算法计算出源节点与目的节点之间的最短路径,进行路由转发。当网络中出现故障或任务映射区域发生改变时,每个节点都要维护一张周围链路的实时状态表。其中该实时状态表不断更新,以确保经过该节点的分组能够在算法的控制下顺利进行后续的转发操作。当某一方向发生拥塞或故障时,控制器对节点间的传输重新进行评估,提前进行跳步并使用设置的逃离虚信道避开问题区域,以此来保证芯片上传输的最小成本开销。
89.同时,本发明还提出一种软件定义硬件的控制器,应用于张量流处理器架构的tsp芯片,该控制器能够实现上述如图1实施例所示的一种软件定义硬件的控制方法的功能,并能够实时上述方法中的不同实施方式,具体可参见上述关于方法的描述,这里不再详细叙述。
90.需要说明的是,在本发明的描述中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“东”、“南”、“西”、“北”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示必须以特定的方位构造和操作,因此不能理解为对本发明的限制。
91.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解应当理解,可以以硬件、软件、固件、中间件、代码或其任何恰当组合来实现这里描述的实施例。对于硬件实现,处理器可以在一个或多个下列单元中实现:专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、设计用于实现这里所描述功能的其他电子单元或其组合。对于软件实现,实施例的部分或全部流程可以通过计算机程序来指令相关的硬件来完成。实现时,可以将上述程序存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读介质可以包括但不限于ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。
92.最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当分析,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1