加速引擎及处理器制造技术

技术编号:23890379 阅读:42 留言:0更新日期:2020-04-22 06:13
一种加速引擎及处理器,加速引擎包括:控制序列发生器、预取缓存器、输入缓存器、乘法累加阵列以及输出缓存器,其中:控制序列发生器,与所述预取缓存器、所述输入缓存器以及所述输出缓存器耦接;预取缓存器,与CPU集群中的二级缓存以及所述输入缓存器耦接;输入缓存器,与乘法累加阵列耦接,适于从所述预取缓存器中读取所缓存的数据并缓存;乘法累加阵列,与输出缓存器耦接,适于对所述输入缓存器中缓存的数据进行乘法累加运算,并将运算结果输出至所述输出缓存器;输出缓存器,与所述二级缓存耦接,适于缓存所述乘法累加阵列输出的运算结果,以及将所缓存的运算结果输出至所述二级缓存。上述方案能够提高加速引擎的性能。

【技术实现步骤摘要】
加速引擎及处理器
本专利技术涉及处理器领域,尤其涉及一种加速引擎及处理器。
技术介绍
机器学习(MachineLearning)加速引擎(AccelerationEngine)已经成为最为热门的研究课题之一。例如,谷歌公司推出的高性能处理器(TensorProcessingUnit,TPU),利用收缩阵列来提高计算推理能力以及吞吐量。英伟达(NVIDIA)公司采用基于加速引擎的图形处理器(GraphicsProcessingUnit,GPU)已经广泛应用在深度学习中的推断应用。现有的加速引擎的运算性能较差。
技术实现思路
本专利技术实施例解决的是加速引擎的运算性能较差的问题。为解决上述技术问题,本专利技术实施例提供一种加速引擎,包括:控制序列发生器、预取缓存器、输入缓存器、乘法累加阵列以及输出缓存器,其中:所述控制序列发生器,与所述预取缓存器、所述输入缓存器以及所述输出缓存器耦接,适于向所述预取缓存器发送第一数据读取指令、向所述输出缓存器发送数据输出指令、向所述输入缓存器发送第二数据读取指令;所述预取缓存器,与所述控制序列发生器、CPU集群中的二级缓存以及所述输入缓存器耦接,适于在接收到所述第一数据读取指令时,从所述二级缓存中读取数据并缓存;所述输入缓存器,与所述控制序列发生器、所述预取缓存器以及所述乘法累加阵列耦接,适于在接收到所述第二数据读取指令时,从所述预取缓存器中读取所缓存的数据并缓存;所述乘法累加阵列,与所述输入缓存器以及所述输出缓存器耦接,适于对所述输入缓存器中缓存的数据进行乘法累加运算,并将运算结果输出至所述输出缓存器;所述输出缓存器,与所述乘法累加阵列、所述二级缓存以及所述控制序列发生器耦接,适于缓存所述乘法累加阵列输出的运算结果,以及在接收到所述数据输出指令时将所缓存的运算结果输出至所述二级缓存。可选的,所述加速引擎还包括:数据格式转换器,耦接在所述预取缓存器与所述输入缓存器之间,适于将所述预取缓存器输出的数据格式转换成所述输入缓存器支持的数据格式。可选的,所述输入缓存器,适于在接收到所述第二数据读取指令时,读取所述数据格式转换器输出的数据。可选的,所述预取缓存器,还包括:旋转器;所述旋转器适于对所述预取缓存器从所述二级缓存中依次读取到的两组长度为N比特的数据进行旋转移动,使得旋转移动后的所述读取到的两组长度为N比特的数据行对齐;所述预取缓存器的读端口数据宽度与写端口数据宽度均为2N比特;N为正整数。可选的,所述数据格式转换器与所述输入缓存器一一对应。可选的,所述乘法累加阵列,与所述输出缓存器耦接,还适于将所述输入缓存器中缓存的数据与所述输出缓存器中最新存入的运算结果进行乘法累加运算。可选的,所述加速引擎还包括:存储器,与所述输出缓存器耦接;所述输出缓存器,还适于在其中存储的运算结果的个数大于预设值时,将其中存储的运算结果输出至所述存储器。本专利技术实施例还提供了一种处理器,所述加速器包括上述任一种所述的加速引擎。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:在加速引擎中,控制序列发生器向预取缓存器发送第一数据读取指令。预取缓存器根据第一数据读取指令,从CPU集群中的二级缓存中读取相应的数据并缓存。通过乘法累加阵列实现矩阵的运算,并将运算结果输出至输出缓存器。当输出缓存器接收到数据输出指令时,将存储的运算结果输出至二级缓存,从而实现对二级缓存中的矩阵数据进行运算。加速引擎直接对二级缓存中的数据进行运算,从而提高加速引擎的性能,实现对CPU运算的加速。进一步,当输出缓存器中存储的运算结果的个数达到一定值时,将输出缓存器中存储的运算结果输出至存储器。当出现中断时,可以将存储器中存储的运算结果重新加载,从而可以降低计算量。附图说明图1是本专利技术实施例中的一种加速引擎的结构示意图;图2是本专利技术实施例中的另一种加速引擎的结构示意图。具体实施方式如上所述,现有的加速引擎与CPU紧密耦合,灵活性较差。在加速引擎中,控制序列发生器向预取缓存器发送第一数据读取指令。预取缓存器根据第一数据读取指令,从CPU集群中的二级缓存中读取相应的数据并缓存。通过乘法累加阵列实现矩阵的运算,并将运算结果输出至输出缓存器。当输出缓存器接收到数据输出指令时,将存储的运算结果输出至二级缓存,从而实现对二级缓存中的矩阵数据进行运算。加速引擎直接对二级缓存中的数据进行运算,从而提高加速引擎的性能,实现对CPU运算的加速。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。参照图1,本专利技术实施例提供了一种加速引擎,包括:控制序列发生器11、预取缓存器12、输入缓存器13、乘法累加阵列14以及输出缓存器15,其中:控制序列发生器11,与预取缓存器12、输入缓存器13以及输出缓存器15耦接,适于向预取缓存器12发送第一数据读取指令、向输入缓存器13发送第二数据读取指令、向输出缓存器15发送数据输出指令;预取缓存器12,与控制序列发生器11、CPU集群中的二级缓存10以及输入缓存器13耦接,适于在接收到控制序列发生器11发送的第一数据读取指令时,从二级缓存10中读取数据并缓存;输入缓存器13,与控制序列发生器11、预取缓存器12以及乘法累加阵列14耦接,适于在接收到控制序列发生器11发送的第二数据读取指令时,从预取缓存器12中读取所缓存的数据并缓存;乘法累加阵列14,与输入缓存器13以及输出缓存器15耦接,适于对输入缓存器13中缓存的数据进行乘法累加运算,并将运算结果输出至输出缓存器15;输出缓存器15,与乘法累加阵列14、二级缓存10以及控制序列发生器11耦接,适于缓存乘法累加阵列14输出的运算结果,并在接收到数据输出指令时将缓存的运算结果输出至二级缓存10。在本专利技术实施例中,加速引擎可以搭建在CPU集群中的二级缓存10上,对CPU集群中的二级缓存10中存储的矩阵数据进行相应的运算。在具体实施中,控制序列发生器11可以控制预取缓存器12的读取、输入缓存器13的读取以及输出缓存器15的输出。控制序列发生器11可以向预取缓存器12发送第一数据读取指令。预取缓存器12在接收到第一数据读取指令后,即可从CPU集群中的二级缓存10中读取第一数据读取指令对应的数据并缓存。在本专利技术实施例中,预取缓存器12以行对齐格式存储数据,而输入缓存器13以收缩阵列所需的交错格式存储数据。因此,预取缓存器12输出数据的格式与输入缓存器13输入数据的格式不同。预取缓存器12的输出数据无法直接输入到输入缓存器13中。在本专利技术实施例中,为将预取缓存器12的输出数据正常输入至输入缓存器13中,可以在预取缓存器12与输入缓存器13之间设置数据格式转换器16。数据格式转换器16可以接收预取缓存器12输出的行对齐格式的数据,将其转换成交错格式的数据并输出至输入缓存器13。在具体实施中,数据格式转换器16可以与输本文档来自技高网...

【技术保护点】
1.一种加速引擎,其特征在于,包括:控制序列发生器、预取缓存器、输入缓存器、乘法累加阵列以及输出缓存器,其中:/n所述控制序列发生器,与所述预取缓存器、所述输入缓存器以及所述输出缓存器耦接,适于向所述预取缓存器发送第一数据读取指令、向所述输出缓存器发送数据输出指令、向所述输入缓存器发送第二数据读取指令;/n所述预取缓存器,与所述控制序列发生器、CPU集群中的二级缓存以及所述输入缓存器耦接,适于在接收到所述第一数据读取指令时,从所述二级缓存中读取数据并缓存;/n所述输入缓存器,与所述控制序列发生器、所述预取缓存器以及所述乘法累加阵列耦接,适于在接收到所述第二数据读取指令时,从所述预取缓存器中读取所缓存的数据并缓存;/n所述乘法累加阵列,与所述输入缓存器以及所述输出缓存器耦接,适于对所述输入缓存器中缓存的数据进行乘法累加运算,并将运算结果输出至所述输出缓存器;/n所述输出缓存器,与所述乘法累加阵列、所述二级缓存以及所述控制序列发生器耦接,适于缓存所述乘法累加阵列输出的运算结果,以及在接收到所述数据输出指令时将所缓存的运算结果输出至所述二级缓存。/n

【技术特征摘要】
1.一种加速引擎,其特征在于,包括:控制序列发生器、预取缓存器、输入缓存器、乘法累加阵列以及输出缓存器,其中:
所述控制序列发生器,与所述预取缓存器、所述输入缓存器以及所述输出缓存器耦接,适于向所述预取缓存器发送第一数据读取指令、向所述输出缓存器发送数据输出指令、向所述输入缓存器发送第二数据读取指令;
所述预取缓存器,与所述控制序列发生器、CPU集群中的二级缓存以及所述输入缓存器耦接,适于在接收到所述第一数据读取指令时,从所述二级缓存中读取数据并缓存;
所述输入缓存器,与所述控制序列发生器、所述预取缓存器以及所述乘法累加阵列耦接,适于在接收到所述第二数据读取指令时,从所述预取缓存器中读取所缓存的数据并缓存;
所述乘法累加阵列,与所述输入缓存器以及所述输出缓存器耦接,适于对所述输入缓存器中缓存的数据进行乘法累加运算,并将运算结果输出至所述输出缓存器;
所述输出缓存器,与所述乘法累加阵列、所述二级缓存以及所述控制序列发生器耦接,适于缓存所述乘法累加阵列输出的运算结果,以及在接收到所述数据输出指令时将所缓存的运算结果输出至所述二级缓存。


2.如权利要求1所述的加速引擎,其特征在于,还包括:数据格式转换器,耦接在所述预取缓存器与所述输入缓存器之间,适于将所述预取缓存器输出...

【专利技术属性】
技术研发人员:林威廷康一
申请(专利权)人:展讯通信上海有限公司
类型:发明
国别省市:上海;31

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

1