[发明专利]响应于矢量访问指令发出的交叉数据访问有效
申请号: | 201280047433.1 | 申请日: | 2012-09-26 |
公开(公告)号: | CN103930883A | 公开(公告)日: | 2014-07-16 |
发明(设计)人: | 阿拉斯塔尔·大卫·瑞德 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F15/80 | 分类号: | G06F15/80;G06F9/35;G06F9/38;G06F9/30;G06F12/06;G06F13/16 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 响应 矢量 访问 指令 发出 交叉 数据 | ||
技术领域
本发明涉及数据处理领域,并且更具体地涉及用于访问多个数据存储位置的矢量指令。
发明背景
一种用于改进数据处理设备的性能的已知技术是提供支持执行矢量操作的电路。对至少一个矢量操作数执行矢量操作,其中每个矢量操作数包括多个操作数元素。执行矢量操作涉及在(一个或多个)矢量操作数内的各个操作数元素上重复地应用操作。
在支持矢量操作的性能的典型数据处理系统中,将会提供矢量寄存器库(register bank)以用于存储矢量操作数。因此,例如,矢量寄存器库内的每一个矢量寄存器可以存储包括多个操作数元素的矢量操作数。
在高性能的实现方式中,还已知的是提供可以并行地对矢量操作数内的各个操作数元素执行所需要的矢量操作的矢量处理电路(通常称为SIMD(单指令多数据)处理电路)。在可替代实施例中,标量处理电路可以仍用于实施矢量操作,但是在这种情况下,矢量操作是通过经由标量处理电路迭代地执行一个操作来实施,其中每次迭代对矢量操作数的不同操作数元素进行操作。应注意,存在其中一些矢量元素可以被一起处理的中间实现方式。
矢量数据访问指令各自指挥多个数据访问。一般来说,处理设备将不能在单个周期中以与彼此并行的方式来执行由矢量访问指令所规定的所有数据访问,访问一般将需要若干周期。如果多个矢量数据访问指令正在被执行,那么如果可以使来自不同矢量数据访问指令的数据访问与彼此交叉,则可以提高访问速度。这是由于有机会将操作合并至这样的交叉所引入的有关地址,并且由于有可能发现另外的并行性。
在一些情况下,所执行的访问彼此完全独立,并且可以允许它们之间的交叉从而提高访问的速度。在其他情况下,它们可能并不彼此独立,并且因此,它们被约束成以指令流次序来执行。
图1示出了根据现有技术的用于访问地址a0至a7的矢量访问指令、之后是用于访问地址b0至b7的矢量访问指令的实例。在这些指令在其中不允许交叉并且其中在一个时钟周期中可以发出两个数据访问请求的系统中被处理的情况下,那么,数据访问请求b7将会在接收指令七个时钟周期后被发出。
将会希望的是,提供一种用于支持在还支持标量操作的数据处理设备内执行矢量操作的改进技术。
发明内容
从第一方面来看,本发明提供了一种用于响应于已解码矢量数据访问指令来访问存储在数据存储内的数据的矢量数据访问单元,所述矢量数据访问指令中的每一个指定多个元素,所述元素中的每一个指示要被执行的数据访问,所述多个元素在所述矢量数据访问指令内处于一定顺序,所述对应数据访问被指挥以该顺序在所述矢量数据访问指令内被执行;所述矢量数据访问单元包括数据访问排序电路,所述数据访问排序电路用于向所述数据存储发出由所述元素所指示的数据访问请求,所述数据访问排序电路被配置成:响应于接收到至少两个已解码矢量数据访问指令,所述至少两个已解码矢量数据访问指令中的前者在所述至少两个已解码矢量指令中的后者之前被接收,并且所述至少两个已解码矢量数据访问指令之一是写入指令;并且响应于来自所述至少两个已解码矢量数据访问指令的数据访问可以被交叉至有限程度的指示,用于:针对所述至少两个矢量数据访问指令中的每一个,根据所述元素在所述多个元素内的位置,确定由所述多个元素指示的所述多个数据访问中的哪一个是下一个要被针对所述矢量数据访问指令来执行的数据访问,所述数据访问以所述被指挥顺序被执行;针对所述矢量数据访问指令中的每一个来确定指示所述下次数据访问的元素;取决于所述至少两个矢量数据指令被接收的顺序和指示所述下次数据访问的所述元素相对于彼此在它们对应多个元素内的所述位置,选择所述下次数据访问中的一个作为要被向所述数据存储发出的下次数据访问,其约束条件是以下两项之间的差小于预定值:指示所述下次数据访问的所述元素在所述矢量数据访问指令中的后者的所述多个元素内的数值位置,和指示所述下次数据访问的所述元素在先前的矢量访问数据指令的所述多个元素内的数值位置。
本发明意识到,指定要被执行的多个数据访问的矢量指令可能需要若干周期来执行,并且如果可以执行不同矢量指令内的访问的交叉,则可能是有利的。例如,一般来说,有利的是在存储之前实行加载,因为处理器可能通常需要在其可以执行后续动作之前执行加载,并且因此减少加载的等待时间与减少存储的等待时间相比通常将会对性能具有更大影响。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280047433.1/2.html,转载请声明来源钻瓜专利网。