操作高速缓存制造技术

技术编号:21693589 阅读:35 留言:0更新日期:2019-07-24 16:54
公开了一种用于使用操作(op)高速缓存的系统和方法。所述系统和所述方法包括用于高速缓存先前解码的指令的op高速缓存。所述op高速缓存包括多个物理地编索引且加标签的指令,以允许在线程之间共享指令。通过多种方式将所述op高速缓存链接起来,以允许服务高速缓存行中的多个指令。所述op高速缓存存储在共享操作存储与立即/位移存储之间以最大化容量。

Operational Cache

【技术实现步骤摘要】
【国外来华专利技术】操作高速缓存相关申请的交叉引用本申请要求2016年12月9日提交的美国专利申请号15/374,727和2016年12月13日提交的欧洲申请号EP16203863.2的权益,所述申请以引用方式并入,如同在本文中充分地阐述。
技术介绍
传统上,经由具有指令高速缓存取出和指令解码级的流水线来分派指令。与固定长度指令相比,对于高带宽多指令每周期解码,诸如x86处理器中使用的那些可变长度指令引起相当大的额外硬件复杂性。这进而需要额外的流水线级进行指令流解析和解码,并且当必须重新开始流水线时,诸如在重定向指令取出的所采取或错误预测的分支上,这些额外级消耗额外的功率并且导致增加的时延。这限制了每周期总指令带宽,从而影响性能。还导致在不做有用的工作时消耗功率的更多空闲流水线级,直到来自重定向的指令沿流水线向下传播为止。需要绕过这些额外的解码级并且使操作(op)高速缓存(OC)中的指令服务流线化。附图说明可以从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:图1示出了根据某些实现方式的处理器的核心处理单元;图2示出了图1的核心处理单元的op高速缓存内的op高速缓存(OC)条目;图3示出了跨指令高速缓存行分开的指令的基本块以及op高速缓存内的多个相关联OC条目;图4示出了指令高速缓存、分支预测和OC流水线的过程的流程图;图5示出了op取出流水线的过程的流程图;图6示出了OC构建流水线的过程的流程图;图7示出了执行图4的指令高速缓存、分支预测和OC流水线的方法;图8示出了执行图5的OC取出流水线的方法;以及图9是可以实施一个或多个公开的实施方案的示例性装置的框图。具体实施方式op高速缓存(OC)是先前解码的指令、特别是已经从原始可变长度格式解码为固定长度规范格式的指令的高速缓存。代替使用传统指令高速缓存取出和指令解码流水线级,OC可以服务用于分派的指令。OC服务指令通过减小重定向流水线时延并且简化更宽的并行指令分派来改进每周期指令(IPC)计数,从而增加每周期总指令带宽。OC服务指令通过避免对重新取出和重新解码指令的需要并且通过减少流水线级在重定向时空闲的时间量来改进功率使用。OC在一组中提供多个链接以便服务高速缓存行中的任意数量的指令。OC通过物理地编索引和加标签而使得能够在线程之间共享其内容。OC通过与立即/位移存储共享op存储来最大化容量。OC含有固定长度格式的解码的指令。因此,OC不需要确定指令边界,也不需要从字节流中拾取单独指令。在使用OC时指令不需要解码成它们的组成部分(诸如前缀;操作代码(操作码);ModRM(在操作码之后的指定基于模式(Mod)、寄存器(R)和存储器(M)变量的地址计算的字节));SIB(操作码之后的指定基于变址(S)、索引(I)和基址(B)的地址计算的字节);以及例如,立即/位移字段)。公开了一种用于使用OC的系统和方法。所述系统和方法包括OC,所述OC用于高速缓存先前解码的基本指令块,其中基本指令块以分支的目标开始并且以分支指令结束,并且另外地,在这样的块跨越高速缓存行边界的情况下,所述基本指令块在此类边界处分成目标基本块和一个或多个顺序基本块,在所越过的每个连续高速缓存行边界处形成附加顺序块。所述OC包括多个物理地编索引且加标签的条目,以允许在线程之间共享那些条目。通过多种方式将所述OC链接起来,从而允许多个OC条目服务高速缓存行中的不同多个指令。所述OC的一部分能够存储op信息或立即/位移值直至最大容量。所述系统和方法包括使用OC执行指令取出直到高速缓存行或采取的分支的结束。这包括:接收基本块的预测取出指令以用作多个微标签的输入;将所接收的预测取出地址写入解耦队列中;以及确定所接收的取出地址是否命中多个微标签中的一者。如果取出地址命中多个微标签中的一者,则操作模式切换到OC模式。随后将取出地址转发到op高速缓存队列。所述系统和方法包括执行OC取出。这包括从OC队列读取取出地址并且使用它来访问OC标签阵列以针对OC命中来检查这样被访问的OC标签。如果比较返回没有命中,则将取出重定向到指令高速缓存中以进行传统取出处理。如果比较返回命中,则读取并解码OC数据阵列,并且输出任何立即/位移值、op和微代码条目地址。将立即/位移信息(如果存在的话)排入立即/位移队列;将op条目排入操作队列;并且将任何现有的微代码条目点地址排入条目地址队列。图1是根据某些实现方式的处理器100的核心处理单元105的高级框图和流程图。处理单元105包括,但不限于,向调度器和/或执行单元115提供操作(op)的解码器单元110。解码器单元110包括,但不限于,连接到指令高速缓存122和OC124的分支预测器120。指令高速缓存122进一步连接到解码器126。解码器126和OC124连接到op队列128。调度器和/或执行单元115包括,但不限于,整数调度器和/或执行单元130和浮点调度器和/或执行单元132,它们两者都连接到高速缓存134。高速缓存134进一步连接到L2高速缓存136、加载队列138和存储队列140。加载队列138、存储队列140和高速缓存134共同被称为加载存储(LS)单元139。整数调度器和/或执行单元130包括,但不限于,连接到调度器151的整数重命名器150,所述调度器151包括算术逻辑单元(ALU)调度器(ALSQ)152和地址生成单元(AGU)调度器(AGSQ)154。调度器151并且具体地ALSQ152和AGSQ154分别进一步连接到ALU156和AGU158。整数调度器和/或执行单元130还包括整数物理文件寄存器160。浮点调度器和/或执行单元132包括,但不限于,连接到调度器172的浮点重命名器170。调度器172进一步连接到乘法器174和加法器176。浮点调度器和/或执行单元132还包括浮点物理文件寄存器178。流水线处理器需要馈送到流水线中的稳定指令流。分支预测器120预测应取出哪个指令集并在流水线处理器中执行。取出这些指令并存储在指令高速缓存122中,并且当从指令高速缓存122读取时,所述指令被解码器126解码成op。OC124在解码器126生成op时对它们进行高速缓存。op队列128存储来自解码器126和OC124的op并将它们排队,以分派op进行执行。在常规流水线处理中,op队列将某些op(加载或存储op)直接分派到加载队列和/或存储队列,所述加载队列和/或存储队列保持有效载荷,诸如从op解码的控制信息和与op相关联的存储器地址。出于说明的目的,存储队列可以接受来自op队列的多个op并且在分派时间将有效载荷写入存储队列中。在地址生成时间,存储队列随后接收来自调度器的队列索引以指定处理哪个存储条目。调度器读出分派有效载荷并将其发送到分割逻辑以进行分割检查,并且发送到加载队列以在op流水线上进行可能的拾取。也就是说,常规流水线处理是相对于存储队列和加载队列的双程写入过程;一次在针对有效载荷的分派处并且再次在地址生成处以在存储器中生成地址。根据实现方式,仅将op分派到整数调度器和/或执行单元130和浮点调度器和/或执行单元132,而不是按照常规流水线处理直接写入加载队列138和存储队列140。具体地,将op:(1)经由整数重命名器150定向到调度器151本文档来自技高网...

【技术保护点】
1.一种使用操作高速缓存(OC)执行指令取出直到高速缓存行或采取的分支结束的方法,所述方法包括:接收所述OC的预测取出指令以用作多个微标签的输入;将所述接收到的预测取出指令写入解耦队列中;如果所述写入的取出指令命中所述多个微标签中的一者,则将所述取出地址写入操作高速缓存队列中;以及读取与所述取出地址相关联的标签。

【技术特征摘要】
【国外来华专利技术】2016.12.13 EP 16203863.2;2016.12.09 US 15/374,7271.一种使用操作高速缓存(OC)执行指令取出直到高速缓存行或采取的分支结束的方法,所述方法包括:接收所述OC的预测取出指令以用作多个微标签的输入;将所述接收到的预测取出指令写入解耦队列中;如果所述写入的取出指令命中所述多个微标签中的一者,则将所述取出地址写入操作高速缓存队列中;以及读取与所述取出地址相关联的标签。2.如权利要求1所述的方法,其中通过多种方式将所述OC链接起来,以允许服务高速缓存行中的多个指令。3.如权利要求1所述的方法,其中所述OC包括存储在包括操作和立即/位移高速缓存的单个存储装置中的数据。4.如权利要求1所述的方法,其中所述OC包括存储在单独操作和立即/位移高速缓存中的数据。5.如权利要求1所述的方法,其中所述OC包括存储在含有操作和立即/位移数据的单个存储装置中的数据。6.如权利要求5所述的方法,其中所述存储通过权衡操作和立即/位移容量来最大化容量。7.如权利要求5所述的方法,其中所述存储通过权衡操作和微条目点容量来最大化容量。8.一种执行操作高速缓存(OC)取出的方法,所述方法包括:读取标签;将所述读取的标签的取出地址与标签阵列中的标签进行比较;如果所述比较没有返回在所述标签阵列中的命中,则将所述取出重定向到指令高速缓存;如果所述比较返回在所述标签阵列中的命中,则读取与在所述标签阵列中命中的所述标签相关联的数据阵列,其中所述数据阵列包括立即/位移条目、操作条目和微代...

【专利技术属性】
技术研发人员:大卫·N·萨格斯
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

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

1