处理器、用于操作处理器的方法和计算机可用介质技术

技术编号:19426734 阅读:21 留言:0更新日期:2018-11-14 10:52
本发明专利技术涉及一种处理器、用于操作处理器的方法和计算机可用介质。第一数据存储保持高速缓存器行;加速器具有保持加速器数据和从第一数据存储驱逐的高速缓存器行的第二数据存储;标记目录保持针对第一和第二数据存储两者中所储存的高速缓存器行的标记;模式指示符指示第二数据存储是正在第二数据存储保持从第一数据存储驱逐的高速缓存器行的第一模式下操作,还是正在第二数据存储保持加速器数据第二模式下操作。响应于从第一数据存储驱逐高速缓存器行的请求,在第一模式下控制逻辑将高速缓存器行写入第二数据存储并且更新标记目录中的标记以指示高速缓存器行存在于第二数据存储中;以及在第二模式下,控制逻辑转而将高速缓存器行写入系统存储器。

【技术实现步骤摘要】
处理器、用于操作处理器的方法和计算机可用介质
本专利技术涉及一种处理器、用于操作处理器的方法和计算机可用介质,尤其涉及具有可操作为牺牲高速缓存器(victimcache)数据存储或加速存储器并且在低级高速缓存器中具有牺牲高速缓存器标记的选择性数据存储的处理器。
技术介绍
最近,人工神经网络(artificialneuralnetwork,ANN)重新吸引了人们的兴趣,并且这种研究通常被称为深度学习、计算机学习和类似的术语。通用处理器计算能力的提高使得重新提起数十年前所消退的兴趣。ANN的最新应用包括语音识别和图像识别等。对于改进与ANN相关联的计算的性能和效率的需求正在增大。
技术实现思路
一种处理器,包括:处理核心;第一数据存储,其耦接至所述处理核心,加速器,包括:第二数据存储,其用于选择性地保持:从所述第一数据存储驱逐的高速缓存器行,以及所述加速器所处理的加速器数据;标记目录,其耦接至所述处理核心,所述标记目录用于保持针对所述第一数据存储和所述第二数据存储这两者中所储存的高速缓存器行的标记;模式指示符,其用于指示所述第二数据存储是正在第一模式下操作还是正在第二模式下操作,其中在所述第一模式中所述第二数据存储保持从所述第一数据存储驱逐的高速缓存器行,在所述第二模式中所述第二数据存储保持所述加速器所处理的加速器数据;以及控制逻辑,其被配置为响应于从所述第一数据存储驱逐高速缓存器行的请求而进行以下操作:在所述模式指示符指示所述第二数据存储正在所述第一模式下操作的情况下,将高速缓存器行写入所述第二数据存储并且更新所述标记目录中的标记以指示高速缓存器行存在于所述第二数据存储中;以及在所述模式指示符指示所述第二数据存储正在所述第二模式下操作的情况下,将高速缓存器行写入系统存储器而非写入所述第二数据存储。一种用于操作处理器的方法,所述处理器具有:处理核心;第一数据存储,其用于保持所述处理核心所处理的高速缓存器行;加速器,其具有用于选择性地保持从所述第一数据存储驱逐的高速缓存器行和所述加速器所处理的加速器数据的第二数据存储;以及标记目录,其用于保持针对所述第一数据存储和所述第二数据存储这两者中所储存的高速缓存器行的标记,所述方法包括以下步骤:响应于从所述第一数据存储驱逐高速缓存器行的请求而进行以下操作:在所述第二数据存储正在第一模式下操作的情况下,将高速缓存器行写入所述第二数据存储并且更新所述标记目录中的标记以指示高速缓存器行存在于所述第二数据存储中,其中在所述第一模式中所述第二数据存储保持从所述第一数据存储驱逐的高速缓存器行;以及在所述第二数据存储正在第二模式下操作的情况下,将高速缓存器行写入系统存储器而非写入所述第二数据存储,其中在所述第二模式中所述第二数据存储保持所述加速器所处理的加速器数据。一种非暂时性计算机可用介质,其包括计算机可用程序,所述计算机可用程序使得计算机用作根据本申请所述的处理器中的各部件。附图说明图1是示出包括神经网络单元(neuralnetworkunit,NNU)的处理器的框图。图2是示出图1的NPU的框图。图3是示出图1的NNU的N个NPU的N个复用寄存器(mux-reg)的布置的实施例的框图,以说明N个复用寄存器作为针对从图1的数据RAM接收到的一行数据字的N字轮转器(N-wordrotater)或循环移位器的操作。图4是示出用于储存在图1的NNU的程序存储器中并由该NNU执行的程序的表格。图5是示出NNU执行图4的程序的时序图。图6A是示出图1的NNU执行图4的程序的框图。图6B是示出图1的处理器进行架构程序的操作的流程图,所述架构程序使用NNU来执行典型地与人工神经网络的隐藏层的神经元相关联的(诸如图4的程序所执行的)乘法累加激活函数计算。图7是示出根据备选实施例的图1的NPU的框图。图8是示出根据备选实施例的图1的NPU的框图。图9是示出用于储存在图1的NNU的程序存储器中并由该NNU执行的程序的表格。图10是示出NNU执行图9的程序的时序图。图11是示出图1的NNU的实施例的框图。在图11的实施例中,神经元分成两部分即激活函数单元部分和ALU部分(此部分还包括移位寄存器部分),并且各激活函数单元部分由多个ALU部分共享。图12是示出图11的NNU执行图4的程序的时序图。图13是示出图11的NNU执行图4的程序的时序图。图14是示出向神经网络移动(MTNN)架构指令以及该架构指令相对于图1的NNU的部分的操作的框图。图15是示出从神经网络移动(MFNN)架构指令以及该架构指令相对于图1的NNU的部分的操作的框图。图16是示出图1的数据RAM的实施例的框图。图17是示出图1的权重RAM和缓存器的实施例的框图。图18是示出图1的可动态配置的NPU的框图。图19是示出根据图18的实施例的图1的NNU的N个NPU的2N个复用寄存器的布置的实施例的框图,以说明2N个复用寄存器作为针对从图1的数据RAM接收到的一行数据字的轮转器的操作。图20是示出用于储存在图1的NNU的程序存储器中并由该NNU执行的程序的表格,其中所述NNU具有根据图18的实施例的NPU。图21是示出NNU执行图20的程序的时序图,其中该NNU包括图18的在窄配置中操作的NPU。图22是示出图1的NNU的框图,其中该NNU包括图18的NPU以执行图20的程序。图23是示出根据备选实施例的图1的可动态配置的NPU的框图。图24是示出图1的NNU执行卷积运算所使用的数据结构的示例的框图。图25是示出图1的处理器执行架构程序的操作的流程图,所述架构程序将对卷积核执行卷积的NNU用于图24的数据阵列。图26A是NNU程序的程序列表,其中该NNU程序利用图24的卷积核对数据矩阵执行卷积并将其写回权重RAM。图26B是示出根据一个实施例的图1的NNU的控制寄存器的特定字段的框图。图27是示出填有输入数据的图1的权重RAM的示例的框图,其中图1的NNU对所述输入数据进行池化(pooling)运算。图28是NNU程序的程序列表,其中该NNU程序对图27的输入数据矩阵进行池化运算并将其写回权重RAM。图29A是示出图1的控制寄存器的实施例的框图。图29B是示出根据备选实施例的图1的控制寄存器的实施例的框图。图29C是示出根据一个实施例的存储为两个部分的图29A的倒数的实施例的框图。图30是更详细示出图2的AFU的实施例的框图。图31是图30的AFU的操作的示例。图32是图30的AFU的操作的第二示例。图33是图30的AFU的操作的第三示例。图34是示出图1的处理器以及图1的NNU的更详细的部分的框图。图35是示出包括可变速率NNU的处理器的框图。图36A是示出具有在一般模式中操作即以主时钟速率操作的NNU的处理器的操作示例的时序图。图36B是示出具有在缓和模式中操作即以比主时钟速率小的速率操作的NNU的处理器的操作示例的时序图。图37是示出图35的处理器的操作的流程图。图38是更详细示出NNU的序列的框图。图39是示出NNU的控制和状态寄存器的特定字段的框图。图40是示出处理器的框图。图41是更详细示出图40的NNU、以及图40的环站(ringstop)的框图。图42是示出在图41的存储器阵列正从用作LLC片时的高速缓存存储器模式本文档来自技高网...

【技术保护点】
1.一种处理器,包括:处理核心;第一数据存储,其耦接至所述处理核心,所述第一数据存储用于保持所述处理核心所处理的高速缓存器行;加速器,包括:第二数据存储,其用于选择性地保持:从所述第一数据存储驱逐的高速缓存器行,以及所述加速器所处理的加速器数据;标记目录,其耦接至所述处理核心,所述标记目录用于保持针对所述第一数据存储和所述第二数据存储这两者中所储存的高速缓存器行的标记;模式指示符,其用于指示所述第二数据存储是正在第一模式下操作还是正在第二模式下操作,其中在所述第一模式中所述第二数据存储保持从所述第一数据存储驱逐的高速缓存器行,在所述第二模式中所述第二数据存储保持所述加速器所处理的加速器数据;以及控制逻辑,其被配置为响应于从所述第一数据存储驱逐高速缓存器行的请求而进行以下操作:在所述模式指示符指示所述第二数据存储正在所述第一模式下操作的情况下,将高速缓存器行写入所述第二数据存储并且更新所述标记目录中的标记以指示高速缓存器行存在于所述第二数据存储中;以及在所述模式指示符指示所述第二数据存储正在所述第二模式下操作的情况下,将高速缓存器行写入系统存储器而非写入所述第二数据存储。

【技术特征摘要】
2017.06.16 US 62/521,2441.一种处理器,包括:处理核心;第一数据存储,其耦接至所述处理核心,所述第一数据存储用于保持所述处理核心所处理的高速缓存器行;加速器,包括:第二数据存储,其用于选择性地保持:从所述第一数据存储驱逐的高速缓存器行,以及所述加速器所处理的加速器数据;标记目录,其耦接至所述处理核心,所述标记目录用于保持针对所述第一数据存储和所述第二数据存储这两者中所储存的高速缓存器行的标记;模式指示符,其用于指示所述第二数据存储是正在第一模式下操作还是正在第二模式下操作,其中在所述第一模式中所述第二数据存储保持从所述第一数据存储驱逐的高速缓存器行,在所述第二模式中所述第二数据存储保持所述加速器所处理的加速器数据;以及控制逻辑,其被配置为响应于从所述第一数据存储驱逐高速缓存器行的请求而进行以下操作:在所述模式指示符指示所述第二数据存储正在所述第一模式下操作的情况下,将高速缓存器行写入所述第二数据存储并且更新所述标记目录中的标记以指示高速缓存器行存在于所述第二数据存储中;以及在所述模式指示符指示所述第二数据存储正在所述第二模式下操作的情况下,将高速缓存器行写入系统存储器而非写入所述第二数据存储。2.根据权利要求1所述的处理器,其中,所述控制逻辑还被配置为响应于来自所述处理核心的指定存储器地址的加载请求而进行以下操作:从所述标记目录来确定所述存储器地址所涉及的第二高速缓存器行是存在于所述第一数据存储中还是存在于所述第二数据存储中;在所述第二高速缓存器行存在于所述第一数据存储中的情况下,从所述第一数据存储读取所述第二高速缓存器行并将所述第二高速缓存器行提供给所述处理核心;在所述第二高速缓存器行存在于所述第二数据存储中而不存在于所述第一数据存储中的情况下,从所述第二数据存储读取所述第二高速缓存器行并将所述第二高速缓存器行提供给所述处理核心;以及在所述第二高速缓存器行既不存在于所述第一数据存储中又不存在于所述第二数据存储中的情况下,从所述系统存储器读取所述第二高速缓存器行并将所述第二高速缓存器行提供给所述处理核心。3.根据权利要求2所述的处理器,其中,所述控制逻辑还被配置为响应于来自于所述处理核心的指定所述存储器地址的加载请求并且在所述第二高速缓存器行存在于所述第二数据存储中而不存在于所述第一数据存储中的情况下进行以下操作:将从所述第二数据存储读取的所述第二高速缓存器行与所述第一数据存储中所保持的第三高速缓存器行进行互换。4.根据权利要求1所述的处理器,其中,为了从所述第一模式转换为所述第二模式:所述控制逻辑使所述第二数据存储的全部高速缓存器行无效;以及所述控制逻辑停止响应于从所述第一数据存储驱逐高速缓存器行的请求将高速缓存器行写入所述第二数据存储并且更新所述标记目录中的标记以指示高速缓存器行存在于所述第二数据存储中。5.根据权利要求1所述的处理器,其中,还包括:环形总线,其中所述处理核心、所述第一数据存储、所述系统存储器和所述加速器耦接至该环形总线,其中,在所述模式指示符指示所述第二数据存储正在所述第一模式下操作的情况下,所述控制逻辑响应于从所述第一数据存储驱逐高速缓存器行的请求而经由所述环形总线来将高速缓存器行写入所述第二数据存储,以及在所述模式指示符指示所述第二数据存储正在所述第二模式下操作的情况下,所述控制逻辑响应于从所述第一数据存储驱逐高速缓存器行的请求而经由所述环形总线来将高速缓存器行写入所述系统存储器而非写入所述第二数据存储。6.根据权利要求1所述的处理器,其中,所述处理核心是用于处理所述第一数据存储和所述第二数据存储中所保持的高速缓存器行的P个处理核心其中之一,P大于1,所述第一数据存储包括P个数据存储片,所述P个数据存储片分别耦接至所述P个处理核心,所述控制逻辑在逻辑上访问作为与所述第一数据存储的P个数据存储片相对应的P个部分的所述第二数据存储,以及响应于在所述模式指示符指示所述第二数据存储正在所述第一模式下操作的情况下从所述第一数据存储驱逐高速缓存器行的请求,所述控制逻辑将高速缓存器行写入所述第二数据存储的P个部分中的、与所述P个数据存储片中驱逐了该高速缓存器行的数据存储片相对应的部分。7.根据权利要求1所述的处理器,其中,所述第一数据存储是L个字节的存储器,所述第二数据存储是M个字节的存储器,所述第一数据存储被布置为Y个路的关联存储器,X是M除以L的商与Y的乘积,所述第一数据存储被布置为S个集合的关联存储器,以及所述控制逻辑在逻辑上访问作为S个集合×X个路的关联存储器的所述第二数据存储。8.根据权利要求1所述的处理器,其中,所述第一数据存储是L个字节的存储器,所述第二数据存储是M个字节的存储器,所述第一数据存储被布置为Y个路的关联存储器,X是M除以L的商与Y的乘积,所述标记目录被布置为Z个路的关联存储器,以及Z是X和Y的总和。9.根据权利要求8所述的处理器,其中,所述第一数据存储和所述标记目录各自还被布...

【专利技术属性】
技术研发人员:道格拉斯·R·瑞德G·葛兰·亨利泰瑞·派克斯
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

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

1