[发明专利]外积引擎在审
申请号: | 201780047342.0 | 申请日: | 2017-08-24 |
公开(公告)号: | CN109564509A | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | A·萨泽加丽;E·班维尔;J·E·高宁恩;G·R·威廉姆斯三世;A·J·保蒙-史密斯 | 申请(专利权)人: | 苹果公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 吴信刚 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 引擎 结果矩阵 指令传输 指令 处理器 配置 矩阵 乘法运算 输入矢量 存储器 积运算 推测性 运算 并行 响应 退出 | ||
1.一种外积引擎,包括:
电路,所述电路被配置为执行由外积指令指定的外积运算;
至少两个输入存储器,所述至少两个输入存储器耦接到所述电路并且被配置为存储用于所述外积运算的输入矢量;和
输出存储器,所述输出存储器耦接到所述电路并且被配置为累积外积结果;其中
所述电路被配置为读取所述输出存储器的元素,并且响应于所述外积指令在所述输出存储器中将所述外积运算的对应元素与现有数据一起累积。
2.根据权利要求1所述的外积引擎,其中所述累积为加法。
3.根据权利要求1所述的外积引擎,其中所述累积为减法。
4.根据权利要求1至3中任一项所述的外积引擎,其中:
所述电路被配置为对第一矢量操作数和第二矢量操作数执行所述外积运算,产生所得外积矩阵;
设定所述至少两个输入存储器的第一操作数存储器的大小以在第一元素大小下存储第一数量的所述第一矢量操作数的元素,并在第二元素大小下存储第二数量的所述第一矢量操作数的元素,其中所述第二元素大小大于所述第一元素大小;
设定所述至少两个输入存储器的第二操作数存储器的大小以在所述第一元素大小下存储第三数量的所述第二矢量操作数的元素,并在所述第二元素大小下存储第四数量的所述第二矢量操作数的元素;
设定所述输出存储器的大小以存储对所述第一元素大小执行的所述外积运算的所述所得外积矩阵,并且其中所述输出存储器的一部分未用于在所述第二元素大小下执行的所述外积运算。
5.根据权利要求4所述的外积引擎,其中所述电路是混合乘加阵列,其中所述混合乘加阵列的乘法部分被配置为对所述第一矢量操作数和所述第二矢量操作数的相应元素执行多次乘法运算。
6.根据权利要求5所述的外积引擎,其中所述混合乘加阵列的加法部分被进一步配置为将所述多次乘法运算的积加到从所述输出存储器读取的相应数据,并将所述加法的结果写入到所述输出存储器。
7.根据权利要求5所述的外积引擎,其中所述乘加阵列被进一步配置为从读取自所述输出存储器的相应数据减去多次乘法运算的积,并将所述减法的结果写入到所述输出存储器。
8.根据权利要求1至7中任一项所述的外积引擎,还包括耦接所述电路并且被配置为存储从处理器接收的一个或多个外积运算的指令缓冲器。
9.根据权利要求8所述的外积引擎,其中所述指令缓冲器被进一步配置为存储加载/存储操作以从所述第一矢量存储器、所述第二矢量存储器和所述输出存储器读取数据并将数据写入到所述第一矢量存储器、所述第二矢量存储器和所述输出存储器。
10.一种装置,包括:
处理器,所述处理器被配置为取回外积指令;和
根据权利要求1至9中任一项所述的外积引擎,所述外积引擎耦接到所述处理器,其中:
所述处理器被配置为响应于向所述外积引擎传输所述外积运算并在所述外积引擎完成所述外积运算之前退出所述外积指令;并且
每个输入存储器的大小超过所述处理器中的矢量寄存器的大小。
11.根据权利要求10所述的装置,其中所述处理器被配置为响应于所述外积指令在所述处理器中变为非推测性的而向所述外积引擎传输所述外积运算。
12.根据权利要求10或11所述的装置,其中所述外积指令包括加载/存储操作,并且其中所述处理器被配置为在向所述外积引擎传输所述外积运算之前将所述加载/存储操作的虚拟地址转换成物理地址。
13.根据权利要求12所述的装置,其中如果在所述外积引擎有权访问的一个或多个高速缓存中所述加载/存储操作未命中,则在所述处理器已退出所述外积指令之后,在所述外积引擎中经历所述高速缓存未命中的延迟。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780047342.0/1.html,转载请声明来源钻瓜专利网。