[发明专利]具有精确中断和/或重写的向量指令在审
申请号: | 201980061943.6 | 申请日: | 2019-08-13 |
公开(公告)号: | CN112912843A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 玛雅·穆吉尔;J·格洛斯纳 | 申请(专利权)人: | 优创半导体科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F17/16 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 精确 中断 重写 向量 指令 | ||
一种处理器,包括:包含多个向量寄存器的向量寄存器文件、至少一个缓冲寄存器以及向量处理核心,该向量处理核心通信地连接到向量寄存器文件和至少一个缓冲寄存器,以接收向量指令,该向量指令包括表示多个向量寄存器中的第一向量寄存器的第一标识符和表示多个向量寄存器中的第二向量寄存器的第二标识符,其中第一向量寄存器是源寄存器,以及第二向量寄存器是目的地寄存器;基于存储在第一向量寄存器中的数据值执行向量指令以生成结果并将结果存储在至少一个缓冲寄存器中;以及响应于确定第二向量寄存器是安全写入的,将结果从至少一个缓冲寄存器复制到第二向量寄存器。
本申请要求于2018年8月14日提交的美国临时申请62/718,426的优先权,其全部内容通过引用合并于此。
技术领域
本公开涉及计算机处理器,尤其涉及支持具有精确中断和/或重写的向量指令的处理器。
背景技术
向量处理器(也称为阵列处理器)是一种硬件处理装置(例如,中央处理单元(CPU)或图形处理单元(GPU)),其实现了包含对数据元素的向量进行操作的向量指令的指令集架构(ISA)。向量是包含有序标量数据元素的单向阵列。作为比较,标量指令对单个数据元素进行操作。与支持对单个数据元素进行操作的标量指令的标量处理器相比,向量处理器通过对包含多个数据元素的向量进行操作可以获得显著的性能改进。
附图说明
根据以下给出的详细描述以及本公开的各种实施例的附图,将更充分地理解本公开。然而,不应将附图视为将本公开限制于特定实施例,而是仅用于解释和理解。
图1示出了根据本公开的实施方式的硬件处理器。
图2示出了根据本公开的实施方式的使用缓冲寄存器的向量指令的示例性实施方式。
具体实施方式
实现为由硬件处理器执行的向量指令是对包含特定数据类型的多于一个元素的向量执行操作的指令。输入和输出数据被存储在与处理器相关联的一个或多个向量寄存器中。这些向量寄存器是存储单元,其被设计为保存向量的多个数据元素。示例性向量指令包括在x86指令集架构(ISA)中指定的流式单指令多数据扩展(SSE)指令。ISA的某些实施方式可以支持可变长度向量指令。可变长度向量指令包括寄存器标识符,该寄存器标识符指定用于存储将由该指令操作的向量的元素数的寄存器。可变长度向量指令中的寄存器称为向量长度寄存器。
尽管向量指令可以显著改善处理器性能,但是向量指令可能潜在地遭受读取后写入数据的危害。使用以下示例说明读取后写入数据的危害。作为示例,考虑一个指令集架构,该架构指定在指令中由$v0到$v7标识的八(8)个向量寄存器。这些向量寄存器中的每一个都能够保存32字节的数据。这32个字节可以以不同的方式使用来保存不同的数据类型。例如,32字节向量寄存器的元素被解释为:
·16个16位整数(半字),或
·8个32位整数(字),或
·8个32位浮点单精度数,或
·诸如8位整数、64位整数、16位浮点或64位浮点的其他数据类型的组合
向量寄存器上可以使用后缀来表示元素的不同数据类型。例如,“_h”,“_w”和“_f”可用于指示应将在该寄存器中存储的数据元素分别视为半字、字和单精度浮点值来处理。索引值[i]可用于指示存储在向量寄存器中的元素#i,其从0开始。因此,$v1_h[3]是寄存器$v1的第四个半字,存储在字节6和7中。作为示例,向量寄存器类型中不同类型的寄存器元素的排列如下表1中所示:
表1
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于优创半导体科技有限公司,未经优创半导体科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980061943.6/2.html,转载请声明来源钻瓜专利网。