向量操作的存储器保护制造技术

技术编号:37514432 阅读:7 留言:0更新日期:2023-05-12 15:35
公开了用于向量操作的存储器保护的系统和方法。例如,一种方法包括:使用处理器核心(220)获取向量存储器指令,该处理器核心包括被配置为执行指令的流水线(230),该指令包括恒定步幅向量存储器指令;将由向量存储器指令识别的向量分割为最大长度大于一的子向量,以及长度小于或等于最大长度的一个或多个附加子向量;使用存储器保护电路(270)检查访问子向量的元素是否将导致存储器保护违规;以及在使用存储器保护电路检查访问一个或多个附加子向量中的一个附加子向量的元素是否将导致存储器保护违规之前访问子向量的元素。存储器保护违规之前访问子向量的元素。存储器保护违规之前访问子向量的元素。

【技术实现步骤摘要】
【国外来华专利技术】向量操作的存储器保护


[0001]本公开涉及向量操作的存储器保护。

技术介绍

[0002]包括Roger Espasa和Mateo Valero的研究人员已经研究了将跨步操作记录为基础部+范围,并且分散/聚集整个地址范围的方案,以出于检测程序排序的存储器危险的目的。
附图说明
[0003]当结合附图阅读时,从以下详细描述中最好地理解本公开。强调的是,根据惯例,附图的各种特征不是按比例绘制的。相反,为清楚起见,各种特征的尺寸被任意扩大或缩小。
[0004]图1是支持向量操作的存储器保护的集成电路的示例的框图。
[0005]图2是支持向量操作的存储器保护的集成电路的示例的框图。
[0006]图3是向量存储器指令的示例的存储器映射。
[0007]图4是用于向量操作的存储器保护的过程的示例的流程图。
[0008]图5是用于向量操作的存储器保护的过程的示例的流程图。
[0009]图6是使用具有两个输入地址端口的存储器保护电路的用于向量操作的存储器保护的过程的示例的流程图。
[0010]图7是使用具有单个输入地址端口的存储器保护电路的用于向量操作的存储器保护的过程的示例的流程图。
具体实施方式
[0011]概述
[0012]本文中描述了用于向量操作的存储器保护的系统和方法。一些处理器架构可以实现有序或无序向量机。向量存储器指令能够需要几个周期来执行。即使对于有序向量机,允许后续指令在当前向量指令已经完成之前开始执行也是有利的,即使在访问存储器和能够导致异常时也是如此。确定后续存储器指令是否与当前向量存储器指令有任何先写后读(RAW)、先读后写(WAR)或先写后写(WAW)危险也可能是有用的。
[0013]为了针对存储器保护违规实现向量的快速扫描,有利的是利用最少的硬件以高速检查向量存储器指令是否存在任何存储器保护违规。每个向量存储器指令可能牵涉在许多不同地址处的许多元素,并且可能需要许多周期来执行。当地址范围在指令发出时(例如,对于具有单位步幅或更大的恒定步幅的向量)已知,则地址的可能范围能够以在发出时计算为:
[0014]范围=[基础部,基础部+(VL

1)*步幅+(每元素字节

1)][0015]其中基础部是向量在存储器中的基地址,VL是指令的活动向量长度。然后可以优
化处理器架构中的硬件以仅检查范围而不是范围内的每个元素地址。当直到执行时间才知道地址时(例如,对于分散

聚集指令),传统设计将是保守的并假设可以牵涉任何地址。
[0016]对于单位步幅或其他恒定步幅向量存储器指令,如果C是每周期可能的单独硬件存储器检查的数量,则传统系统将每个周期仅处理C个元素。对于给定的C,本文中描述的一些处理器架构和方法可以增加每周期处理的元素的数量K,以允许来自相同硬件的更大吞吐量。检查更少的存储器地址/周期(例如,C=1或C=2)允许更简单的硬件、更高的频率和/或更低的功率。
[0017]在C=2的情况下,可以通过基于步幅值和保护粒度选择K>2来提高性能,使得仍然只需要为组检查两个存储器地址,其中该两个存储器地址对应于由组牵涉的第一个和最后一个字节地址。例如,每组或子向量的最大元素数可以被确定为:
[0018]K=f1(步幅,保护粒度,机器宽度)
[0019]其中f1()是一个任意函数,其将步幅、宽度和保护粒度映射到最大数量的元素。在一些实施方式中,K可以被限制为取2的幂的值以简化硬件。
[0020]在C=1的情况下,还可以通过考虑基地址来优化检查(例如,K=f2(基础部,步幅,保护粒度,机器宽度)),使得对于大小为K>=1的组,仅检查C=1存储器地址就足够了。K元素组所牵涉的地址范围可以被限制在单个保护粒度上,即,最后一个字节地址与基地址在同一保护粒度上。在这种C=1的情况下,要么所有元素都会引发保护违规,要么所有元素都不会引发保护违规,这简化了异常处理。
[0021]在一些架构中,分散/聚集向量存储器操作可以被包含在存储器保护粒度内。如果地址索引元素的宽度被限制为8b或16b,或小于完整地址宽度的任何已知值,则范围被限制为独立于数据值。对于无符号的n位索引:
[0022]范围=[基础部,基础部+2^n

1+每元素字节

1][0023]独立于基地址,如果索引范围适合在单个保护粒度内,则能够使用C=2保护检查来检查整个范围(例如,检查范围中的第一个和最后一个字节地址)。如果基础部已知,则当基础部和范围的最后一个字节会落入同一保护粒度时,能够优化为仅使用单个存储器检查(C=1)。
[0024]在一些架构中,如果n未知或很大,仍然能够通过记忆当向量寄存器被用作分散/聚集指令的索引向量时可能被引用的地址范围来优化针对分散/聚集指令的存储器保护违规检查。当写入向量寄存器时,可以记录向量中的最小和最大元素。然后保证由指令涉及的元素存储在以下范围内:
[0025]范围=[基础部+最小值,基础部+最大值+每元素字节

1]取决于基础部、最小值和最大值的值,可以在C=2或C=1机器上有效地处理存储器保护检查。
[0026]如本文中所使用的,术语“记忆”意味着最小值/最大值是在运行中计算的,因为向量寄存器被写入并记录在侧面的微架构结构(例如,寄存器)中。记忆信息的粒度可能更精细(例如,向量寄存器的子部分)或更粗(例如,向量寄存器组)。
[0027]在一些实施方式中,为了节省空间而不是具有侧面结构来保持最小值/最大值,但仍然使用快速和小型电路计算最小值/最大值,可以使用最小值=(索引向量中所有元素的按位AND)和最大值=(所有元素的按位OR)的近似值。如果VL小于最大可能VL,使尾部元素不受干扰,或者如果某些元素被屏蔽掉并保持不受干扰,则先前的范围被扩展,而不是被覆
盖。如果VL小于最大可能的VL,利用与尾部无关的策略将尾部元素设置为其最大可能值,或者如果某些元素被屏蔽,则使用与屏蔽无关的策略将所屏蔽的元素设置为它们的最大可能值,然后将记忆上限设置为其最大可能值。如果VL小于最大可能的VL,使用与尾部无关的策略将尾部元素设置为其最小可能值,或者如果某些元素被屏蔽,则使用与屏蔽无关的策略将所屏蔽的元素设置为它们的最小可能值,然后将记忆的下限设置为其最小可能值。
[0028]当程序员知道最小值/最大值时,也可以实现更有效的危险检查。代替记录最小值/最大值,能够具有对最小值/最大值的指令的显式参数。能够假设所有元素都在最小/最大范围内,然后在违反假设的情况下在运行时引发异常。
[0029]在一些实施方式中,用于向量操作的存储器保护的技术可以被用于实现优于传统处理器的一个或多个优点。例如,本文中描述的结构和技术可以使用具有小电路面积和功耗的简单存储器保护电路实现针对向量存储器操作的快速存储器保护扫描。
[0030]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于执行指令的集成电路,包括:处理器核心,所述处理器核心包括被配置为执行指令的流水线,所述指令包括恒定步幅向量存储器指令;存储器保护电路,所述存储器保护电路被配置为利用保护粒度针对存储器保护违规进行检查;以及向量分割电路,所述向量分割电路被配置为:确定大于一的最大长度,所述最大长度对应于单个时钟周期中要访问的向量元素的数量,其中,所述最大长度基于所述保护粒度和由向量存储器指令识别的向量的步幅确定;将所述向量分割为所述最大长度的子向量和长度小于或等于所述最大长度的一个或多个附加子向量;使用所述存储器保护电路检查访问所述子向量的元素是否将导致存储器保护违规;以及在使用所述存储器保护电路检查访问所述一个或多个附加子向量中的一个附加子向量的元素是否将导致存储器保护违规之前访问所述子向量的所述元素。2.根据权利要求1所述的集成电路,其中,所述存储器保护电路被配置为每时钟周期检查两个地址,并且所述向量分割电路检查访问所述子向量的元素是否将导致存储器保护违规包括:在单个时钟周期期间,将所述子向量的第一个元素的地址和所述子向量的最后一个元素的地址输入到所述存储器保护电路。3.根据权利要求1所述的集成电路,其中,所述存储器保护电路被配置为每时钟周期检查单个地址,并且所述向量分割电路被配置为:基于所述向量的基地址来确定所述最大长度。4.根据权利要求1至3中的任一项所述的集成电路,其中,所述最大长度与所述保护粒度成正比并且与所述步幅成反比。5.根据权利要求1至4中的任一项所述的集成电路,其中,所述最大长度是二的幂。6.根据权利要求1至5中的任一项所述的集成电路,其中,所述向量是单位步幅向量,使得所述步幅为一。7.根据权利要求1至6中的任一项所述的集成电路,其中,所述向量分割电路是所述流水线的执行阶段的一部分。8.根据权利要求1至7中的任一项所述的集成电路,其中,所述集成电路被配置为:响应于检测到与所述一个或多个附加子向量中的一个附加子向量的元素相关联的存储器保护违规,引发异常。9.一种方法,包括:使用处理器核心获取向量存储器指令,所述处理器核心包括被配置为执行指令的流水线,所述指令包括恒定步幅向量存储器指令;将由所述向量存储器指令识别的向量分割为最大长度大于一的子向量,以及长度小于或等于所述最大长度的一个或多个附加子向量;使用存储器保护电路检查访问所述子向量的元素是否将导致存储器保护违规;以及在使用所述存储器保护电路检查访问所述一个或多个附加子向量中的一个附加子向
量的元素是否将导致存储器保护违规之前访问所述子向量的所述元素。10.根据权利要求9所述的方法,其中,所述存储器保护电路被配置为每时钟周期检查两个地址,并且检查访问所述子向量的元素是否将导致存储器保护违规包括:在单个时钟周期期间,将所述子向...

【专利技术属性】
技术研发人员:克尔斯特
申请(专利权)人:斯法夫股份有限公司
类型:发明
国别省市:

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

1