一种高效计算装置的制作方法



1.本发明涉及计算机技术领域,具体涉及一种高效计算装置


背景技术:



2.计算加速器是一种用于计算机系统中的设备,它们拥有在某些特定的应用领域下较强的计算能力。当使用计算加速器后,可以将原本cpu承担的计算任务,让加速器来承担,这样,可以释放cpu相对昂贵的通用计算能力。在一般情况下,相同成本的cpu算力远小于这些专用计算加速器的计算能力,也因此该类设备可以起到“加速”的作用。
3.cpu当前的算力发展,已经日趋缓慢甚至停滞。而由于云计算和ai等应用领域带来的网络、存储系统等的发展需求,却仍然在飞速增长。cpu已经越来越成为计算机系统中的计算瓶颈,将特定应用领域下的计算任务由专用的硬件执行已成为趋势。
4.计算加速器一般由计算加速芯片、板级的存储器(例如dram)以及连接外部设备的接口组成。参见图1所示,计算加速芯片一般是一个soc系统,它的核心是承担计算功能的专用计算装置,例如,在ai芯片中,该计算装置一般是向量乘法器、矩阵乘法器等;在存储芯片中,则一般有用于raid计算装置、加解密计算装置等。
5.此外,由于计算过程一般都需要大量的缓存空间,片上缓存由于其昂贵的价格,无法做到大容量,因此soc系统还需要使用存储控制器用于连接板级存储器。
6.参与计算的数据来源可以自于外部设备或者主机内存,但最终来源一般还是外部设备,例如网络、磁盘等。高效的计算加速设备会直接连接外部设备,或通过p2p的方式与外部设备通信,这类加速器芯片的soc系统需要包含外设控制器。部分计算加速设备不具有外设控制器,它们只能从主机内存中获取数据,由于外部设备的数据需要先进入主机内存再被加速设备读取,因此使用这类加速设备的计算机系统往往更容易面临内存带宽瓶颈。
7.传统的计算加速芯片的数据流如下图2所示。典型场景下,外部存储器存储了待参与运算的数据1,参与运算的另一个数据(数据2)由外部设备提供。传统方法下,数据2先由外部设备通过访问存储控制器写入外部存储器,然后计算装置再从外部存储器中读取数据1和数据2,执行完计算过程后,再将结果写入外部存储器。
8.上述传统方式有个缺点,就是每一次计算,需要多次访问外部存储器。例如上述场景下,需要对存储器进行4次访问(不包括准备数据1)。这个缺点在传统的计算机系统中并不明显,因为外部存储器往往能提供相对较大的带宽,但是,随着云计算、ai等计算密集型场景的出现,外部存储器带宽已经成为计算加速器的瓶颈,也就是说,加速芯片往往能提供足够高的算力,但是由于外部存储带宽的限制,这些算力无法完全发挥出来。
9.使用更多的外部存储器通道,或者使用更高带宽的hbm技术,可以在一定程度上解决上述问题,但这些方法都带来非常高昂的成本。


技术实现要素:



10.鉴于此,本发明的目的在于提出一种高效计算装置,可用于计算加速芯片内部,大
幅度减少对外部存储器的访问次数,减少存储带宽的需求。
11.基于上述目的,一方面,本发明提供了一种高效计算装置,其中该系统包括:
12.计算装置,所述计算装置用于接收外部设备直接传输的数据,并外部存储器读取参与运算的数据,将运算结果数据写入外部存储器;
13.片上互联总线,所述片上互联总线用于所述计算装置与存储控制器以及外设控制器之间进行数据流交互;所述存储控制器连接有外部存储器,所述外设控制器连接有外部设备。
14.作为本发明的进一步方案,所述计算装置还用于支持多个外部设备或一个外部设备的多个任务,允许将数据读取任务下发给外部设备的顺序与数据传输到计算装置的顺序不同。
15.作为本发明的进一步方案,所述计算装置内部还包括内部缓存模块,所述内部缓存模块用于数据接收的地址空间的大小,允许外部设备返回数据的延时有抖动以及外部存储的读取写入操作有延时和抖动。
16.作为本发明的进一步方案,所述外部设备用于将数据直接写往计算装置,由计算装置进行读取及运算后,将运算结果数据写入外部存储器。
17.作为本发明的进一步方案,所述计算装置采用主动调度的方式从外部存储器中读取数据。
18.作为本发明的进一步方案,所述计算装置内部设有至少一个任务上下文存储单元,每个存储单元对应一个任务,用于支持多个并发的任务,共享一组任务上下文信息,其中,下发给外部设备一个命令或者一连串关联命令所对应的行为作为一个任务。
19.作为本发明的进一步方案,所述计算装置上设有与片上互联总线连通的总线接口,总线接口包括主总线接口和从总线接口,用于提供配置寄存器以及土工地址范围用来接收外部设备写入的数据,其中,地址范围为虚拟地址空间。
20.作为本发明的进一步方案,所述虚拟地址空间被分为n份,n等于计算装置支持的最大并行任务数,每一个任务占用一段独立的地址空间,空间大小是一个任务的最大数据大小,其中,虚拟地址空间占用总线上一段连续的地址空间。
21.作为本发明的进一步方案,当外部设备将一段数据写入上述地址空间时,所述计算装置用于根据数据该数据命中的地址范围,查到该地址对应的任务;从任务上下文存储模块中获取任务参数,并设置计算模块;从任务上下文存储模块中获取数据映射表;获取该数据地址在当前任务对应的地址空间中的偏移量;采用偏移量在数据映射表中的对应位置查到参与运算的另一个数据在存储器中的位置;从所述位置读取参与数据,所述数据与来自外部设备的参数数据一起运算。
22.作为本发明的进一步方案,所述计算装置内设有外设数据缓存,写入计算装置的数据将被保存在计算装置中的外设数据缓存中,从存储器中读取的对应的数据将被保存在外部存储数据缓存中。
23.作为本发明的进一步方案,外设数据在进入数据缓存时,还用于生成数据编号,向存储器发送读取命令时,将编号随命令发送,并随返回数据一起返回,以用于从外设数据缓存中快速查到对应数据。
24.作为本发明的进一步方案,外设缓存的大小的最小值根据外设的数据延时和计算
装置的带宽确定:
25.缓存大小=外设数据延迟*计算装置带宽。
26.作为本发明的进一步方案,所述计算装置还包括一个计数器,计数器的初始值为缓存大小,当一个任务用到一定数量的缓存,则从计数器中减去对应的大小,当计算装置每从外设缓存中消耗一定量的数据,该计数器则加上对应的大小。
27.作为本发明的进一步方案,任务上下文的配置由调度器完成,调度器为一个硬件逻辑电路或者cpu;任务上下文的配置的方法包括以下步骤:
28.调度器获取当前空闲的任务上下文,当任务上下文在调度器中管理和分配时,则调度器从调度器本地管理的资源池中获取空闲的资源,当在计算装置中管理和分配时,则调度器向计算装置申请资源;
29.调度器根据获取到的任务上下文编号,确定该任务使用的虚拟地址空间范围;
30.调度器将任务参数配入指定的任务上下文模块,将参与运算的另一个数据所在内存的位置配入数据映射表;
31.配置完成后,调度器将所获取的虚拟地址空间范围作为数据的接收地址,向外部设备发送读取命令;
32.外部设备收到读取命令,将数据写往命令中指定的接收地址,数据命中计算装置的数据接收地址;
33.计算装置按照内容从任务上下文中获取信息,从存储器中读取数据放入外部存储数据缓存,经过计算装置进行计算,再将结果写入外部存储器;
34.当前任务的地址范围接收的数据量等于该任务的总大小时,当前任务结束,计算装置或者调度器回收该任务上下文,以分配给下一个任务。
35.本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的高效计算装置中任务上下文的配置的方法。
36.本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的高效计算装置中任务上下文的配置的方法。
37.本发明设计的高效计算装置,相比于现有的方案,具有以下优点:
38.本发明提出了一种高效计算装置,能显著降低对存储器的访问带宽,可以有效突破传统计算加速设备中由于外部存储带宽的不足引起的性能瓶颈,达到更高的加速性能;避免了使用大容量片上缓存或hbm等昂贵的器件带来的成本上升,本发明仅使用常规的技术和常规的外部器件,具有明显的技术成熟度和成本优势。
附图说明
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
40.在图中:
41.图1示出了典型的计算加速芯片的内部组成结构框图;
42.图2示出了传统计算加速芯片的数据流应用流程图;
43.图3示出了根据本发明的高效计算装置中的数据流实现流程图;
44.图4示出了根据本发明的一种高效计算装置的基本框架和关键模块的组成结构框图;
45.图5示出了根据本发明的高效计算装置中虚拟地址空间的分配示意图;
46.图6示出了根据本发明的高效计算装置中通过输入数据查询任务信息的流程图。
47.图7示出了根据本发明的实现高效计算装置中任务上下文的配置的方法的计算机可读存储介质的实施例的示意图;
48.图8示出了根据本发明的实现高效计算装置中任务上下文的配置的方法的计算机设备的实施例的硬件结构示意图;
49.图9示出了根据本发明的芯片的实施例的框架的示意图。
具体实施方式
50.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
51.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
52.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
55.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
56.由于传统的计算加速芯片每一次计算,需要多次访问外部存储器,虽然加速芯片往往能提供足够高的算力,但是由于外部存储带宽的限制,这些算力无法完全发挥出来,而使用更多的外部存储器通道,或者使用更高带宽的hbm技术,可以在一定程度上解决上述问题,但这些方法都带来非常高昂的成本。
57.鉴于此,本发明设计了一种高效计算装置的实现方式,可用于计算加速芯片内部,大幅度减少对外部存储器的访问次数,减少存储带宽的需求。
58.为此,参见图3和图4所示,本发明的第一方面,提供了一种高效计算装置,该系统包括计算装置、片上互联总线、存储控制器以及外设控制器;所述计算装置用于接收外部设备直接传输的数据,并外部存储器读取参与运算的数据,将运算结果数据写入外部存储器;所述片上互联总线用于所述计算装置与存储控制器以及外设控制器之间进行数据流交互;所述存储控制器连接有外部存储器,所述外设控制器连接有外部设备。
59.在本发明实施例中,外部设备的数据直接传输到计算装置,而不是先传输到存储器。计算装置接收到数据后,从外部存储器读取另一个参与运算的数据,然后将运算结果数据写入外部存储器。
60.本发明的一些实施例中,所述计算装置还用于支持多个外部设备或一个外部设备的多个任务,允许将数据读取任务下发给外部设备的顺序与数据传输到计算装置的顺序不同。
61.在本发明实施例中,计算装置可以支持多个并发的任务,也就是在任意时刻,计算装置可以有多个正在处理的任务,而不是在完成一个任务后才能开始下一个。该特性可以在外部设备的数据有一定延时的情况下,减少装置空闲等待时间。
62.计算装置可以支持多个外部设备或一个外部设备的多个任务,任务与任务之间允许乱序,也就是允许将数据读取任务下发给外部设备的顺序与数据传输到计算装置的顺序不同。
63.本发明的一些实施例中,所述计算装置内部还包括内部缓存模块,所述内部缓存模块用于数据接收的地址空间的大小,允许外部设备返回数据的延时有抖动以及外部存储的读取写入操作有延时和抖动。
64.在本发明实施例中,计算装置内部有一块较小的内部缓存,该缓存的特征是大小远小于计算装置对外呈现的用于数据接收的地址空间的大小,该地址空间下文称为“虚拟地址”空间。该缓存用于允许外部设备返回数据的延时有一定的抖动,以及外部存储的读取写入操作有一定的延时和抖动,以降低对外部设备和外部存储器的需求。
65.因此,本发明的高效计算装置相对于传统的计算加速装置而言,能显著降低对存储器的访问带宽,可以有效突破传统计算加速设备中由于外部存储带宽的不足引起的性能瓶颈,达到更高的加速性能,还能够避免使用大容量片上缓存或hbm等昂贵的器件带来的成本上升,本发明仅使用常规的技术和常规的外部器件,具有明显的技术成熟度和成本优势。
66.本发明的一些实施例中,本发明的计算装置在系统中的数据流中,所述外部设备用于将数据直接写往计算装置,由计算装置进行读取及运算后,将运算结果数据写入外部存储器。
67.在本实施例中,部设备将数据直接写往计算装置,而不是先写入外部存储器,再由计算装置进行读取。更进一步的说,如果外部设备是一个可以主动发送数据的设备,则是由外部设备“写入”;如果外部设备是一个被动设备,则一般可以由dma控制器从外部设备获取数据,再“写入”计算装置,该dma控制器也可以集成在计算装置内部。
68.由于可能存在的乱序和多io并发,计算装置无法预先获知数据归属的任务,这也是本发明区别于传统计算装置可以的明显特征,本发明的一些实施例中,所述计算装置采用主动调度的方式从外部存储器中读取数据。因此,当数据被写入计算装置后,计算装置需要根据写入数据的附加信息(一般是数据地址),查任务参数,从外部存储器获取参与运
算的另一个数据,并执行计算过程。如何高效实现上述流程,也是本发明的关键点之一。
69.从图3可以看出,本发明相比于传统方法,明显减少了对外部存储器的访问次数(上图中的简单场景下,传统方法需要4次访问,本发明只需要2次)。
70.本发明设计的计算装置的基本框架和关键模块如图4所示,所述计算装置内部设有至少一个任务上下文存储单元,每个存储单元对应一个任务,用于支持多个并发的任务,共享一组任务上下文信息,其中,下发给外部设备一个命令或者一连串关联命令所对应的行为作为一个任务。
71.在本实施例中,计算装置内部有多个任务上下文存储单元,每个存储单元对应一个任务。任务的概念没有明确的范围,可以共享一组任务上下文信息的都可以看作是一个任务,一般来说,下发给外部设备一个命令或者一连串关联命令所对应的行为可以作为一个任务。由于传统计算装置是主动对任务进行调度和对数据进行读取,数据可以按计划进行计算,因此仅需存储少量或者仅存储当前任务的上下文;而本发明设计的计算装置是被动接收数据,因此多个任务上下文的设计可以更有效的支持任务间乱序,以及降低装置空闲等待时间,是本发明的特征之一。
72.任务上下文包含两类关键信息,分别是任务参数和数据映射。任务参数是常规信息,包含该计算任务执行所需的必要信息,例如任务大小、数据系数等。由于任务间数据可能交织,该任务参数在每一次执行完一小块数据的计算任务后,可能被装置更新。数据映射是一张表,由于计算单元所需要的另一个操作数需要主动从存储器中读取,当计算装置接收到来自外部设备的数据后,需要根据数据信息(在本发明中采用数据地址),在映射表中到该数据对应的另一个操作数的地址,然后再对该地址进行读取。
73.参见图4所示,本发明的一些实施例中,所述计算装置上设有与片上互联总线连通的总线接口,总线接口包括主总线接口和从总线接口,用于提供配置寄存器以及土工地址范围用来接收外部设备写入的数据,其中,地址范围为虚拟地址空间。
74.其中,总线接口(从)用来接收任务配置信息和外部设备写入的数据,可以采用多种不同的协议实现,例如axi、ahb等,该接口的特点是提供一段地址范围,落在该地址范围内的读取或者写入请求被接口捕获,并转换为对模块内部寄存器或者逻辑的读写行为。
75.总线接口(从)在本发明中的特征之一是除提供配置寄存器等地址外,还额外提供一段很大的地址范围用来接收外部设备写入的数据,该地址范围的大小远超过模块内部的缓存大小,该地址范围下文称为虚拟地址空间。
76.本发明的一些实施例中,参见图5所示,所述虚拟地址空间被分为n份,n等于计算装置支持的最大并行任务数,每一个任务占用一段独立的地址空间,空间大小是一个任务的最大数据大小,其中,虚拟地址空间占用总线上一段连续的地址空间。
77.即:每一个任务占用一段独立的地址空间,该空间大小是一个任务的最大数据大小,当一个任务的数据大小小于该空间大小时,数据可以仅使用其中一段地址。作为一种较简单的实现,本发明中虚拟地址空间占用总线上一段连续的地址空间。因此,当外部设备的数据写入某一个地址时,能很简单的判断该数据属于哪一个任务。当然,虚拟地址空间也可以不连续,只要地址与任务间存在映射关系即可。
78.本发明的一些实施例中,当外部设备将一段数据写入上述地址空间时,所述计算装置用于根据数据该数据命中的地址范围,查到该地址对应的任务;从任务上下文存储
模块中获取任务参数,并设置计算模块;从任务上下文存储模块中获取数据映射表;获取该数据地址在当前任务对应的地址空间中的偏移量;采用偏移量在数据映射表中的对应位置查到参与运算的另一个数据在存储器中的位置;从所述位置读取参与数据,所述数据与来自外部设备的参数数据一起运算。
79.因此,参见图6所示,当外部设备将一段数据写入上述地址空间时:
80.(1)计算装置首先根据数据该数据命中的地址范围,查到该地址对应的任务;
81.(2)然后计算装置从任务上下文存储模块中获取任务参数,并设置计算模块;
82.(3)然后计算装置从任务上下文存储模块中获取数据映射表;
83.(4)然后计算装置进一步获取该数据地址在当前任务对应的地址空间中的偏移量;
84.(5)计算装置用偏移量在数据映射表中的对应位置查到参与运算的另一个数据在存储器中的位置;
85.(6)计算装置从该位置读取另一个数据,该数据最终将与来自外部设备的数据一起参与运算。
86.本发明的一些实施例中,所述计算装置内设有外设数据缓存,写入计算装置的数据将被保存在计算装置中的外设数据缓存中,从存储器中读取的对应的数据将被保存在外部存储数据缓存中。
87.本发明的一些实施例中,外设数据在进入数据缓存时,还用于生成数据编号,向存储器发送读取命令时,将编号随命令发送,并随返回数据一起返回,以用于从外设数据缓存中快速查到对应数据。
88.写入计算装置的数据将被保存在计算装置中的外设数据缓存中,从存储器中读取的对应的数据将被保存在外部存储数据缓存中。当存储器缓存有数据时,该数据将和对应的外设数据一起被送入计算装置进行计算。外设数据在进入数据缓存时,可以被打上一个数据编号,向存储器发送读取命令时,可以将该编号随命令发送,并随返回数据一起返回。这样,计算装置在收到存储器返回数据时,可以从外设数据缓存中快速查到对应数据。在大多数情况下,对外部存储器的读取命令,都会按顺序完成并返回数据,因此,该数据编号可以被省略,而外设数据缓存和存储器数据缓存都可以被设计为简单的fifo。
89.本发明的一些实施例中,外设缓存的大小的最小值根据外设的数据延时和计算装置的带宽确定:
90.缓存大小=外设数据延迟*计算装置带宽。
91.本发明的一些实施例中,所述计算装置还包括一个计数器,计数器的初始值为缓存大小,当一个任务用到一定数量的缓存,则从计数器中减去对应的大小,当计算装置每从外设缓存中消耗一定量的数据,该计数器则加上对应的大小。
92.因此,为了防止缓存溢出,计算装置需要维护一个计数器,初始值为缓存大小。当一个任务需要用到一定数量的缓存,则从计数器中减去该大小。当计算装置每从外设缓存中消耗一定量的数据,该计数器则加上该大小。当如果一个任务需要的缓存大小大于计数值,则需要等待,或者将任务进行拆分。
93.外部存储缓存大小以及分配原则与上述外设缓存相同。
94.本发明的一些实施例中,任务上下文的配置由调度器完成,调度器为一个硬件逻
辑电路或者cpu;任务上下文的配置的方法包括以下步骤:
95.调度器获取当前空闲的任务上下文,当任务上下文在调度器中管理和分配时,则调度器从调度器本地管理的资源池中获取空闲的资源,当在计算装置中管理和分配时,则调度器向计算装置申请资源;
96.调度器根据获取到的任务上下文编号,确定该任务使用的虚拟地址空间范围;
97.调度器将任务参数配入指定的任务上下文模块,将参与运算的另一个数据所在内存的位置配入数据映射表;
98.配置完成后,调度器将所获取的虚拟地址空间范围作为数据的接收地址,向外部设备发送读取命令;需要注意的是,在向外部设备发送命令之前需要先向计算装置获取指定大小的缓存。如果当前剩余缓存大小小于整个任务待读取的数据大小,则调度器需要考虑等待,或者对任务进行拆分,先向外设发送一个不超过当前剩余缓存大小的读取命令。
99.外部设备收到读取命令,将数据写往命令中指定的接收地址,数据命中计算装置的数据接收地址;
100.计算装置按照内容从任务上下文中获取信息,从存储器中读取数据放入外部存储数据缓存,经过计算装置进行计算,再将结果写入外部存储器(该地址也通过数据映射表记录);
101.当前任务的地址范围接收的数据量等于该任务的总大小时,当前任务结束,计算装置或者调度器回收该任务上下文,以分配给下一个任务。
102.应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
103.本发明实施例的第二个方面,还提供了一种计算机可读存储介质,图7示出了根据本发明实施例提供的高效计算装置中任务上下文的配置的方法的计算机可读存储介质的示意图。如图7所示,计算机可读存储介质300存储有计算机程序指令310,该计算机程序指令310可以被处理器执行。该计算机程序指令310被执行时实现上述任意一项实施例的高效计算装置中任务上下文的配置的方法,包括以下步骤:
104.调度器获取当前空闲的任务上下文,当任务上下文在调度器中管理和分配时,则调度器从调度器本地管理的资源池中获取空闲的资源,当在计算装置中管理和分配时,则调度器向计算装置申请资源;
105.调度器根据获取到的任务上下文编号,确定该任务使用的虚拟地址空间范围;
106.调度器将任务参数配入指定的任务上下文模块,将参与运算的另一个数据所在内存的位置配入数据映射表;
107.配置完成后,调度器将所获取的虚拟地址空间范围作为数据的接收地址,向外部设备发送读取命令;
108.外部设备收到读取命令,将数据写往命令中指定的接收地址,数据命中计算装置的数据接收地址;
109.计算装置按照内容从任务上下文中获取信息,从存储器中读取数据放入外部存储数据缓存,经过计算装置进行计算,再将结果写入外部存储器;
110.当前任务的地址范围接收的数据量等于该任务的总大小时,当前任务结束,计算装置或者调度器回收该任务上下文,以分配给下一个任务。
111.应当理解,在相互不冲突的情况下,以上针对根据本发明的高效计算装置中任务上下文的配置的方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的高效计算装置和存储介质。
112.本发明实施例的第四个方面,还提供了一种计算机设备400,包括存储器420和处理器410,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的高效计算装置中任务上下文的配置的方法,包括以下步骤:
113.调度器获取当前空闲的任务上下文,当任务上下文在调度器中管理和分配时,则调度器从调度器本地管理的资源池中获取空闲的资源,当在计算装置中管理和分配时,则调度器向计算装置申请资源;
114.调度器根据获取到的任务上下文编号,确定该任务使用的虚拟地址空间范围;
115.调度器将任务参数配入指定的任务上下文模块,将参与运算的另一个数据所在内存的位置配入数据映射表;
116.配置完成后,调度器将所获取的虚拟地址空间范围作为数据的接收地址,向外部设备发送读取命令;
117.外部设备收到读取命令,将数据写往命令中指定的接收地址,数据命中计算装置的数据接收地址;
118.计算装置按照内容从任务上下文中获取信息,从存储器中读取数据放入外部存储数据缓存,经过计算装置进行计算,再将结果写入外部存储器;
119.当前任务的地址范围接收的数据量等于该任务的总大小时,当前任务结束,计算装置或者调度器回收该任务上下文,以分配给下一个任务。
120.如图8所示,为本发明提供的执行高效计算装置中任务上下文的配置的方法的计算机设备的一个实施例的硬件结构示意图。以如图8所示的计算机设备400为例,在该计算机设备中包括一个处理器410以及一个存储器420,并还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图8中以通过总线连接为例。输入装置430可接收输入的数字或字符信息,以及产生与高效计算装置的实现有关的信号输入。输出装置440可包括显示屏等显示设备。
121.存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的任务上下文的配置的方法对应的程序指令/模块。存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储任务上下文的配置的方法的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
122.处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的任务上下文的配置的方法。
123.本发明实施例的第五个方面,还提供了一种根据上述任一项根据本发明的高效计算装置中任务上下文的配置的方法进行读写的avatar芯片500。图9示出了根据本发明的芯片500的框架的示意图。如图9所示,在该实施例中,芯片500的架构中具有cpu复位向量寄存器510、cpu释放控制管脚520、cpu释放控制寄存器530、调试接口540,其中
124.所述cpu复位向量寄存器510用于控制cpu释放后读取并执行的指令的地址;
125.所述cpu释放控制寄存器520用于控制芯片500上电时的cpu释放;
126.所述cpu释放控制管脚530用于控制所述cpu释放控制寄存器520的有效性;
127.所述调试接口540用于读写片上ram和各寄存器以执行芯片的读写。
128.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
129.最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddr sdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambus ram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
130.结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
131.本发明提出了一种高效计算装置,能显著降低对存储器的访问带宽,可以有效突破传统计算加速设备中由于外部存储带宽的不足引起的性能瓶颈,达到更高的加速性能;避免了使用大容量片上缓存或hbm等昂贵的器件带来的成本上升,本发明仅使用常规的技术和常规的外部器件,具有明显的技术成熟度和成本优势。
132.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的高效计算装置中任务上下文的配置的方法权利要求的功能、步骤和/或动作不需以任何
特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
133.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
134.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:


1.一种高效计算装置,其特征在于,该系统包括:计算装置,所述计算装置用于接收外部设备直接传输的数据,并外部存储器读取参与运算的数据,将运算结果数据写入外部存储器;片上互联总线,所述片上互联总线用于所述计算装置与存储控制器以及外设控制器之间进行数据流交互;所述存储控制器连接有外部存储器,所述外设控制器连接有外部设备。2.根据权利要求1所述的高效计算装置,其特征在于,所述计算装置还用于支持多个外部设备或一个外部设备的多个任务,允许将数据读取任务下发给外部设备的顺序与数据传输到计算装置的顺序不同。3.根据权利要求2所述的高效计算装置,其特征在于,所述计算装置内部还包括内部缓存模块,所述内部缓存模块用于数据接收的地址空间的大小,允许外部设备返回数据的延时有抖动以及外部存储的读取写入操作有延时和抖动。4.根据权利要求1所述的高效计算装置,其特征在于,所述外部设备用于将数据直接写往计算装置,由计算装置进行读取及运算后,将运算结果数据写入外部存储器。5.根据权利要求2所述的高效计算装置,其特征在于,所述计算装置采用主动调度的方式从外部存储器中读取数据。6.根据权利要求5所述的高效计算装置,其特征在于,所述计算装置内部设有至少一个任务上下文存储单元,每个存储单元对应一个任务,用于支持多个并发的任务,共享一组任务上下文信息,其中,下发给外部设备一个命令或者一连串关联命令所对应的行为作为一个任务。7.根据权利要求6所述的高效计算装置,其特征在于,所述计算装置上设有与片上互联总线连通的总线接口,总线接口包括主总线接口和从总线接口,用于提供配置寄存器以及土工地址范围用来接收外部设备写入的数据,其中,地址范围为虚拟地址空间。8.根据权利要求7所述的高效计算装置,其特征在于,所述虚拟地址空间被分为n份,n等于计算装置支持的最大并行任务数,每一个任务占用一段独立的地址空间,空间大小是一个任务的最大数据大小,其中,虚拟地址空间占用总线上一段连续的地址空间。9.根据权利要求8所述的高效计算装置,其特征在于,当外部设备将一段数据写入上述地址空间时,所述计算装置用于根据数据该数据命中的地址范围,查到该地址对应的任务;从任务上下文存储模块中获取任务参数,并设置计算模块;从任务上下文存储模块中获取数据映射表;获取该数据地址在当前任务对应的地址空间中的偏移量;采用偏移量在数据映射表中的对应位置查到参与运算的另一个数据在存储器中的位置;从所述位置读取参与数据,所述数据与来自外部设备的参数数据一起运算。10.根据权利要求9所述的高效计算装置,其特征在于,任务上下文的配置由调度器完成,调度器为一个硬件逻辑电路或者cpu;任务上下文的配置的方法包括以下步骤:调度器获取当前空闲的任务上下文,当任务上下文在调度器中管理和分配时,则调度器从调度器本地管理的资源池中获取空闲的资源,当在计算装置中管理和分配时,则调度器向计算装置申请资源;调度器根据获取到的任务上下文编号,确定该任务使用的虚拟地址空间范围;调度器将任务参数配入指定的任务上下文模块,将参与运算的另一个数据所在内存的位置配入数据映射表;
配置完成后,调度器将所获取的虚拟地址空间范围作为数据的接收地址,向外部设备发送读取命令;外部设备收到读取命令,将数据写往命令中指定的接收地址,数据命中计算装置的数据接收地址;计算装置按照内容从任务上下文中获取信息,从存储器中读取数据放入外部存储数据缓存,经过计算装置进行计算,再将结果写入外部存储器;当前任务的地址范围接收的数据量等于该任务的总大小时,当前任务结束,计算装置或者调度器回收该任务上下文,以分配给下一个任务。

技术总结


本发明提供了一种高效计算装置,所述计算装置用于接收外部设备直接传输的数据,并外部存储器读取参与运算的数据,将运算结果数据写入外部存储器;片上互联总线,所述片上互联总线用于所述计算装置与存储控制器以及外设控制器之间进行数据流交互;所述存储控制器连接有外部存储器,所述外设控制器连接有外部设备。本发明的高效计算装置能显著降低对存储器的访问带宽,可以有效突破传统计算加速设备中由于外部存储带宽的不足引起的性能瓶颈,达到更高的加速性能;避免了使用大容量片上缓存或HBM等昂贵的器件带来的成本上升,本发明仅使用常规的技术和常规的外部器件,具有明显的技术成熟度和成本优势。术成熟度和成本优势。术成熟度和成本优势。


技术研发人员:

李树青 王江 孙华锦 王明明

受保护的技术使用者:

山东云海国创云计算装备产业创新中心有限公司

技术研发日:

2022.09.16

技术公布日:

2022/12/26

本文发布于:2024-09-20 22:23:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/49481.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   装置   存储器   上下文
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议