一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于非易失性存储器的处理器和数据流技术的制作方法

2022-04-14 03:15:57 来源:中国专利 TAG:

基于非易失性存储器的处理器和数据流技术
1.相关申请的交叉引用
2.本技术要求2020年6月8日提交的美国专利申请no.16/894,588和2019年7月9日提交的美国临时专利申请no.62/872,147的权益,其全部内容合并于此。


背景技术:

3.参考图1,示出了根据常规技术的计算系统。计算系统100可包括处理器110和片外存储器120。处理器110可以是包括一个或更多个计算电路130和一个或更多个易失性存储器电路140的单片集成电路(ic)。一个或更多个通信信道可以将一个或更多个计算电路130耦合到一个或更多个易失性存储器电路140。单片ic处理器110还可以包括用于将一个或更多个易失性存储器电路140耦合至片外存储器120的一个或更多个通信接口160。
4.在一个实现方式中,该一个或更多个易失性存储器电路140可以是在常规技术中通常被称为片上处理器高速缓存的静态随机存取存储器(sram)。在诸如人工智能、机器学习、神经网络等的应用中,片上易失性存储器电路140仅高速缓存权重、内核函数等的一部分。相反,权重、内核函数等被存储在片外存储器120中。权重、内核函数等的各部分被从片外存储器120读入至易失性存储器电路140,其当前正由计算电路130处理。然后,计算电路130的计算结果被写出到片外存储器120。向片外存储器120读取和写入数据(诸如权重、内核函数等)消耗易失性存储器电路140与片外存储器之间的大量通信带宽。此外,易失性存储器电路140与片外存储器之间的数据(诸如权重、内核函数等)传输占计算系统100的功耗的很大部分,并且传输可能花较长的延迟。此外,即使当数据没有被写入易失性存储器电路140和从易失性存储器电路140读取时,易失性存储器电路140也消耗电力。
5.因此,持续需要降低单片ic处理器110与片外存储器120之间的带宽利用率。同样地,持续需要降低计算系统100中的单片ic处理器110和片外存储器120的功耗。


技术实现要素:

6.通过参照以下描述和附图可以最好地理解本技术,这些附图用于示出针对本文中的基于非易失性存储器的处理器和数据流技术的本技术的实施例。
7.在一个实施例中,处理器可以包括在单片集成电路上的多个处理元件。每个处理元件可包括一个或更多个处理电路和一个或更多个非易失性存储器电路。相应处理元件的计算电路可被配置为执行一个或更多个相应计算或计算的部分。相应处理元件的非易失性存储器电路可被配置为存储相应组的权重、内核函数等。多个处理元件可被配置为在处理元件之间传递数据。
8.在另一个实施例中,处理器配置方法可以包括接收计算模型,该计算模型包括多个节点、将该多个节点中的各个节点耦合在一起的边、以及各个节点的权重。多个处理元件的计算电路可以基于该多个节点中的相应节点来配置。此外,可以基于边来配置经配置的处理元件之间的数据流。此外,各个节点的权重可以被加载到相应处理元件的非易失性存储器电路中。
9.提供本发明内容以便以简化形式介绍将在以下详细说明中进一步描述的一些概念。本发明内容并不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
10.在附图中通过举例而非限制的方式示出了本技术的多个实施例,并且其中,相同的参考数字指代类似的元件,并且其中:
11.图1示出了根据常规技术的计算系统。
12.图2示出了根据本技术的各方面的计算系统。
13.图3示出了根据本技术的各方面的处理器及其示例性配置。
14.图4示出了根据本技术的各方面的示例性计算模型。
15.图5示出了根据本技术的各方面的处理器配置方法。
16.图6示出了根据本技术的各方面的示例性计算模型。
17.图7示出了根据本技术的各方面的处理器及其示例性配置。
具体实施方式
18.现在将详细参考本技术的实施例,其示例在附图中示出。尽管将结合这些实施例描述本技术,然而,应当理解的是,其并不旨在将本技术局限于这些实施例。相反,本发明旨在覆盖可被包括在由所附权利要求限定的本发明的范围内的替代、修改和等同物。此外,在本技术的以下详细描述中,阐述了许多具体细节以便提供对本技术的透彻理解。然而,应当理解,本技术可以在没有这些具体细节的情况下实施。在其他实例中,未详细描述众所周知的方法、过程、组件和电路,以免不必要地模糊本技术的各方面。
19.以下本技术的一些实施例是按照例程、模块、逻辑块以及对一个或更多个电子设备内的数据的操作的其他符号表示来呈现的。描述和表示是本领域的技术人员为了将其工作的实质最有效地传达给本领域的其他技术人员所使用的手段。例程、模块、逻辑块和/或类似物在本文中并且通常被设想为导致期望结果的过程或指令的自洽序列。这些过程是包括对物理量的物理操纵的那些过程。通常,尽管不是必需的,但是这些物理操纵采取能够在电子设备中存储、传送、比较和以其他方式操纵的电或磁信号的形式。为了方便起见,并且参考共同使用,参照本技术的实施例,这些信号被称为数据、位、值、元素、符号、字符、术语、数字、字符串等。
20.然而,应当牢记,这些术语应被解释为参考物理操作和数量并且仅仅是方便的标签并且鉴于本领域中常用的术语被进一步解释。除非另有具体说明,否则如从以下讨论中显而易见的,应当理解的是,通过本技术的讨论,利用诸如“接收”等术语的讨论是指诸如操纵和变换数据的电子计算设备的电子设备的动作和处理。该数据被表示为电子设备的逻辑电路、寄存器、存储器等内的物理(例如,电子)量,并且被转换成类似地被表示为电子设备内的物理量的其他数据。
21.在本技术中,析取词的使用旨在包括连接词。定冠词或不定冠词的使用不旨在指示基数。具体地,提及“该”物体或“一个”物体旨在还表示可能的多个此类物体中的一个。术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”等的
使用指定所述要素的存在,但不排除一个或更多个其他要素和/或其组的存在或添加。还应理解的是,虽然在本文中可使用术语第一、第二等来描述各种元件,但是这种元件不应受这些术语限制。这些术语在本文中用于区分一个元件与另一个元件。例如,在不背离本实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。还应理解的是,当元件被称为“耦合”至另一元件时,该元件可直接或间接地连接至另一元件,或者可存在中间元件。相反,当元件被称为“直接连接”至另一元件时,则不存在中间元件。还应理解的是,术语“和/或”包括一个或更多个相关元件的任何和所有组合。还应理解的是,本文中使用的措辞和术语用于描述的目的,并且不应被视为限制性的。
22.参考图2,根据本技术的各方面的计算系统。计算系统200可以包括耦合到一个或更多个片外存储器220的一个或更多个处理器210。一个或更多个处理器210可包括但不限于一个或更多个中央处理单元(cpu)、一个或更多个图形处理单元(gpu)、一个或更多个张量处理单元(tpu)、一个或更多个人工智能(ai)加速器或一个或更多个存储器处理单元。处理器210可以是包括一个或更多个计算电路230、一个或更多个非易失性存储器电路240、一个或更多个通信信道250和一个或更多个通信接口260的单片集成电路(ic)。在示例性实施方式中,一个或更多个非易失性存储器电路240可以是一个或更多个处理器210的片上非易失性处理器高速缓存。一个或更多个非易失性存储器电路240可以包括但不限于电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)、闪存(flash)或相变随机存取存储器(pcram)中的一个或更多个。一个或更多个通信信道250可以将一个或更多个计算电路230通信地耦合到一个或更多个非易失性存储器电路240。
23.一个或更多个通信接口260可以提供用于一个或更多个非易失性存储器电路240与一个或更多个片外存储器220之间的一个或更多个通信信道的接口。该一个或更多个片外存储器220可以是独立的并且在该一个或更多个处理器210的单片集成电路(ic)外部(例如,片外)的一个或更多个单片集成电路存储器。一个或更多个处理器210可包括一个或更多个各个其他电路,这些电路与本技术的各方面的理解并不密切相关,因此在本文中不再进一步讨论。类似地,计算系统200可以包括一个或更多个各个其他电路,这些电路与本技术的各方面的理解不是密切相关的,因此在此不进一步讨论。
24.一个或更多个处理器210的一个或更多个非易失性存储器电路240可以是被配置为存储权重、内核函数等的密集存储。例如,一个或更多个非易失性存储器电路240可以存储权重,诸如但不限于人工智能(ai)权重、机器学习(ml)权重和神经网络(nn)权重。可以跨一个或更多个通信信道250从一个或更多个非易失性存储器电路240读取权重。通常,权重被写至一个或更多个非易失性存储器电路240一次以用于计算模型、计算图等。为了便于讨论,计算模型、计算图等将一般被称为计算模型。计算模型可以是但不限于人工智能(ai)模型、机器学习(ml)模型和神经网络模型。可以从一个或更多个非易失性存储器电路240中反复读取权重以供一个或更多个计算电路230在计算模型中使用。对于给定的计算模型,重写权重通常不是必需的,并且因此避免了重写一个或更多个非易失性存储器电路240中的权重。
25.此外,非易失性存储器电路240(如电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)、闪存(flash)或相变随机存取存储器(pcram))可以比常规处理器110的常规易失性存储器电路140(如静态随机存取存储器(sram))更致密。与静态随机存取存储器
(sram)相比,诸如电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)、闪存(flash)或相变随机存取存储器(pcram)的非易失性存储器电路240可以消耗更少的待机功率。因为不需要重写一个或更多个非易失性存储器电路240中的权重来执行给定的计算模型,所以可以减少通常与非易失性存储器电路240相关联的访问延迟、功耗、损耗和其他这样的参数损失。
26.再次,可以从片外存储器220中读入这些权重一次并将其存储在一个或更多个非易失性存储器电路240中。存储在一个或更多个非易失性存储器电路240中的权重可以用作由计算电路230执行的计算的操作数。此外,由计算电路230中的一个或更多个计算电路执行的一个或更多个计算的结果可以作为操作数被传递到计算电路230中的一个或更多个其他计算电路以执行一个或更多个其他计算,而无需在结果作为由一个或更多个其他计算电路执行的一个或更多个其他计算的操作数被读取之前被写回到一个或更多个非易失性存储器电路240。例如,非易失性存储器电路240中的一个或更多个权重可以由第一计算电路230用作由第一计算电路230执行的计算的操作数。计算的结果从计算电路230传递到另一个计算电路230,而不是被写回非易失性存储器电路240。
27.相比之下,在根据常规技术的处理器110中,数据被从片外存储器120读入至片上易失性存储器电路140,计算电路130对该数据执行给定计算,并且结果被写回至片上易失性存储器电路140。当结果被写回非易失性存储器电路240时,用易失性存储器电路140替换常规处理器中的非易失性存储器电路240是不实际的。例如,与易失性存储器电路140相比,非易失性存储器电路遭受磨损,这将在将计算结果从计算电路130写回到非易失性存储器电路时不起作用。此外,对非易失性存储器电路的写入比写回到易失性存储器电路140花更长的时间,这将在将来自计算的结果从计算电路130写回到非易失性存储器电路时增加延迟。
28.然而,通过将权重的写入限制为初始写入、重新使用这些权重、以及在计算电路之间传递计算结果而非写回到存储器,非易失性存储器电路240可以有利地用于处理器210的片上存储器。非易失性存储器电路240可以具有足够的密度来存储大多数计算模型所需的所有权重。通过在初始写入中写入权重,非易失性存储器电路240还可以有利地减少向片外存储器220读出数据。减少向片外存储器220读出数据可减少通信接口260的带宽利用率并且减少计算系统200中的片外存储器220的功耗。
29.现在参见图3,根据本技术的各方面的处理器。处理器300可包括多个处理元件310。每个处理元件可以包括计算电路320和非易失性存储器电路330。非易失性存储器电路330可以包括但不限于电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)、闪存(flash)或相变随机存取存储器(pcram)中的一个或更多个。非易失性存储器电路330可以是被配置为存储权重、内核函数等的密集存储。例如,权重可以包括但不限于人工智能(ai)权重、机器学习(ml)权重和神经网络(nn)权重。在一个实现方式中,多个处理元件310可以布置在一组或更多组阵列中,包括布置成一列或更多列和一行或更多行的处理元件310。尽管示例性处理器300被示出为包括十六个处理元件310,但是处理器300可以包括任何数量的处理元件310。
30.根据本技术的各方面,将参照示出了示例性计算模型的图4来进一步解释处理器的配置和操作。示例性计算模型仅用于说明性目的并且不一定表示特定计算模型,并且不
旨在限制任何计算模型的任何方面。示例性计算模型400可以包括被布置在多个层424-434中的多个节点402-422,其中,各个节点402-422通过各个边436-464耦合在一起。
31.可以基于计算模型400的节点402-422之间的边436-464来配置多个处理元件310之间的数据流。在一个实现方式中,一个或更多个处理元件310的输入340可以被配置为接收计算模型400的相应输入。一个或更多个处理元件310之间的数据流可以被配置为基于计算模型400的相应边在相应的计算电路320之间传递数据。一个或更多个处理元件310的输出346可被配置成输出计算模型400的相应网络输出464。例如,进入第一行和第一列中的第一处理元件310-a中的数据流340可以基于进入计算模型400的第一层424中的第一节点402中的输入边436来配置。可基于计算模型400的第一节点402和第二节点404之间的相应边438来配置第一处理元件310-a的输出和第一行和第二列中的第二处理元件310-b的输入之间的数据流342。第一处理元件310-a的输出和第二行和第二列中的第三处理元件310-f的输入之间的数据流344可以基于计算模型400的第一节点402和第三节点406之间的相应边440来配置。数据流配置可针对计算模型400的每个边类似地进行,直至基于模型400的输出边464来配置从第二行和第四列中的处理元件出来的输出数据流346。
32.可以基于计算模型400的多个节点来配置相应处理器元件310的非易失性存储器电路330。在一个实现方式中,各个节点的相应权重可以加载到相应的非易失性存储器电路330中。例如,计算模型400的第一节点402的权重可被加载到处理元件310-a的非易失性存储器电路330-a中。第二节点404的权重可以被加载到处理元件310-b的非易失性存储器电路330-b中。可以针对计算模型400的每个节点类似地进行配置,直至将最后节点422的权重加载到非易失性存储器电路330-h中。
33.可以基于计算模型400的多个节点来配置处理器300的多个处理元件310。在一个实现方式中,相应的处理元件可以被配置为执行计算模型400的相应节点的计算操作。例如,第一行和第一列中的第一处理元件310-a的计算电路320-a可被配置成执行计算模型400的第一层中的第一节点402的计算操作(op 1)。第一行和第二列中的计算电路320-b可以被配置为执行第二节点404的计算操作(op 2a),并且第二行和第二列中的第三计算电路320-f可以被配置为执行第三节点406的计算操作(op 2b)。配置可以针对计算模型400的每个节点类似地进行,直至配置第二行和第四列中的计算电路320-h,其被配置为执行计算模型的第十一节点422的计算操作(op 6)。
34.在配置处理元件的计算功能、处理元件之间的数据流以及处理元件的权重之后,模型可以响应于每个接收的输入而由处理器300执行以便从中生成结果。在一个实现方式中,相应的计算电路320可以被配置为从对应的非易失性存储器电路330检索权重,将权重应用于相应的计算电路320的相应的数据流输入,对乘积求和并且将用于相应的节点的激活函数应用于该和,以及根据相应节点的对应的计算操作生成处理元件310的输出。
35.现在参见图5,根据本技术的各方面的处理器配置方法。配置处理器的方法可以在510处开始于接收计算模型。计算模型可以包括多个节点、将各个节点耦合在一起的边、相应节点的计算操作以及相应节点的权重。
36.在520处,可以基于计算模型的多个节点中的相应节点来配置相应处理元件的多个处理电路。在一个实现方式中,相应的处理电路可被配置为执行计算模型的相应节点的计算操作。
37.在530处,可以基于模型的边来配置相应处理元件的经配置的处理电路之间的数据流。在一个实现方式中,一个或更多个处理电路的输入可被配置为接收计算模型的相应输入。一个或更多个处理电路之间的数据流可以被配置为基于计算模型的相应边在相应的计算电路之间传递数据。一个或更多个处理电路的输出可被配置为输出计算模型的相应输出。
38.在540处,相应节点的权重可以被加载到相应处理元件的非易失性存储器电路中。在一种实现方式中,可以将相应节点的相应权重加载到相应的非易失性存储器电路中。520-540处的配置可按任何次序执行,或甚至并行地执行两个或两个以上。
39.在运行时执行期间,在550处,计算模型可以在经配置的处理元件上执行。在一个实现方式中,经配置的处理元件可响应于对应的输入560来生成结果570。计算模型可在经配置的处理元件上执行任意次数580以针对新输入560生成对应的结果570。
40.现在参见图6,示出了根据本技术的各方面的示例性计算模型。计算模型600可以包括第一节点610的第一卷积函数、第二节点620的第一子采样函数、第三节点630的第二卷积函数、第四节点640的第二子采样函数、第五节点650的第一全连接函数、第六节点660的第二全连接函数和第七节点670的高斯连接函数。第一节点610的第一卷积函数可以接收输入图像。在一个实现方式中,输入图像可为32x32位像素图像帧。第一节点610的第一卷积函数可生成多个特征图。在一个实现方式中,多个特征图可包含28x28特征值的六个帧。多个特征图可被输入至第二节点620的第一子采样函数。第二节点620的第一子采样函数可生成特征值的输入帧的子采样。在一个实现方式中,可对28x28特征值的六个帧进行子采样以产生14x14特征值的六个帧。可将多个子采样的特征图输入到第三节点630的第二卷积函数。第三节点630的第二卷积函数可生成多个特征图。在一种实现方式中,14x14特征值的六个帧可以被卷积以生成10x10特征值的十六个帧。第四节点640的第二子采样函数可生成多个子采样的特征图。在一个实现方式中,可对10x10特征值的十六个帧进行下采样以生成5x5特征值的十六个帧。第五节点650的第一全连接函数可生成第一层。在一个实现方式中,第五节点650的第一全连接函数可生成120输出层。第六节点660的第二全连接函数可生成第二层。在一种实现方式中,第六节点660的第二全连接函数可以生成84输出层。第七节点670的高斯连接函数可以产生输出层。在一个实现方式中,第七节点670的高斯连接函数可产生10输出层。示例性计算模型仅用于说明性目的并且不一定表示特定计算模型,并且不旨在限制任何计算模型的任何方面。
41.现在参见图7,示出了根据本技术各方面的处理器及其示例性配置。处理器700可包括多个处理元件310。每个处理元件310可以包括计算电路320和非易失性存储器电路330。非易失性存储器电路330可以包括但不限于电阻式随机存取存储器(reram)、磁性随机存取存储器(mram)、闪存(flash)或相变随机存取存储器(pcram)中的一个或更多个。非易失性存储器电路330可以是被配置为存储权重、内核函数等的密集存储。例如,权重可以包括但不限于人工智能(ai)权重、机器学习(ml)权重和神经网络(nn)权重。
42.将参照以上参考图6描述的计算模型进一步解释处理器的配置和操作。可以基于计算模型600的多个节点中的一个或更多个节点来配置相应处理元件310的计算电路320。此外,可以基于计算模型600的多个节点中的一个节点来配置相应处理元件310的多个计算电路320。例如,第一计算电路320-a可以被配置为执行第一节点610的第一卷积函数和第二
节点620的第一子采样函数。第二计算电路320-b可以被配置为执行第三节点630的第二卷积函数和第四节点640的第二子采样函数。第三计算电路320-e可以被配置成执行第五节点650的第一全连接函数。第四计算电路320-g和第五计算电路320-h可以被配置为分担第六节点660的第二全连接函数的执行。第六计算电路320-i可以被配置成执行第七节点670的高斯连接函数。对应的非易失性存储器电路330-a、330-c、330-e、330-g、330-h和330-i可以被配置为存储计算模型的对应节点610-670的对应权重。此外,可以基于计算模型的对应边来配置对应计算电路310-a、310-c、310-e、310-g、310-h和310-i之间的数据流。计算电路310之间的数据流可通过可编程互连(诸如复用器/解复用器)、通过通信总线等来实现。
43.出于说明和描述的目的,已经呈现了本技术的特定实施例的前述描述。它们不旨在是详尽的或将本发明技术限制于所公开的精确形式,并且显然根据上述教导,许多修改和变化是可能的。选择和描述实施例以便最好地解释本技术的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本技术和具有适合于预期的特定用途的各种修改的各种实施例。本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献