微处理器及其方法技术

技术编号:30652571 阅读:22 留言:0更新日期:2021-11-04 01:15
本申请提供了一种微处理器及其方法。在一个实施例中,一种微处理器,包括:指令高速缓存器,其被配置为接收包括第一字节部分和第二字节部分的取指;边高速缓存标签阵列,其被配置为基于所述边高速缓存标签阵列的命中来用信号通知除了所述第一字节部分之外的所述第二字节部分的进一步处理;以及边高速缓存数据阵列,其被配置为存储所述第二字节部分的指令数据。据。据。

【技术实现步骤摘要】
微处理器及其方法


[0001]本专利技术大体上涉及微处理器,尤其涉及微处理器中的取指带宽。

技术介绍

[0002]微处理器包括进行指令的实际执行的一个或多个执行单元。超标量处理器包括在每个时钟周期向各个执行单元发出多个指令以提高处理器的吞吐量或处理器的每个时钟周期的平均指令的能力。微处理器流水线顶部的取指和解码功能应当以足够的速率向执行单元提供指令流,以利用附加的执行单元并实际提高吞吐量。
[0003]由于指令集的指令不是固定长度的,相反,各个指令的长度可能不同,因此x86架构使得这个任务更加困难。因此,x86微处理器需要包括大量的逻辑来处理到来的指令字节流,以确定各指令开始和结束的位置。如今的微处理器通常每周期拾取十六(16)字节的数据,因为拾取大于十六的长度在例如确定指令边界和前缀信息的指令格式化中施加相当大的时序限制,特别是随着时钟速度上升的情况下。此外,拾取超过16字节/周期的需求传统上不是常见的要求。然而,许多类型的数字装置中的多媒体的日益流行已经导致伴随的、看似每年的多媒体指令的增加,并且因此一些芯片制造商使用不同的方法来处理超过16字节的拾取(例如,32字节拾取)。遗憾的是,解决方案通常导致需要在遇到自修改代码或某些别名情况时基于错误的大规模恢复机制,或性能低于预期的大型且极其复杂的高速缓存。因此,需要在不牺牲性能的情况下处理超过16字节的拾取。

技术实现思路

[0004]在一个实施例中,一种微处理器,包括:指令高速缓存器,其被配置为接收包括第一字节部分和第二字节部分的取指;边高速缓存标签阵列,其被配置为基于所述边高速缓存标签阵列的命中来用信号通知除了所述第一字节部分之外的所述第二字节部分的进一步处理;以及边高速缓存数据阵列,其被配置为存储所述第二字节部分的指令数据。
[0005]通过检查以下附图和详细描述,本专利技术的其它系统、方法、特征和优点对于本领域技术人员将是或变得显而易见。旨在将所有这样的附加系统、方法、特征和优点包括在本说明书内、在本专利技术的范围内,并由所附权利要求书保护。
附图说明
[0006]参考以下附图可以更好地理解本专利技术的各个方面。附图中的组件不一定按比例绘制,而是着重于清楚地示出本专利技术的原理。此外,在附图中,在所有的各图中相同的附图标记指代对应的部分。
[0007]图1A是示出在微处理器流水线中使用的示例边高速缓存阵列系统的实施例的框图。
[0008]图1B是示出图1A所示的微处理器流水线的示例前端的示意图。
[0009]图2是示出在边高速缓存阵列系统中使用的示例扩展逻辑的实施例的示意图。
[0010]图3是示出示例边高速缓存阵列方法的实施例的流程图。
具体实施方式
[0011]公开了边高速缓存阵列系统和方法的某些实施例,其实现微处理器对总长度大于十六(16)字节的指令组(诸如在多媒体代码中发现的指令组等)的高效处理。在一个实施例中,实现边高速缓存,其仅存储三十二(32)字节拾取的第二字节部分(例如,第二半)的指令信息或数据(例如,指令边界、前缀信息等),同时允许常规逻辑处理32字节拾取的第一部分(例如,第一半)。边高速缓存的标签和数据阵列位于不同的流水线级,在流水线级,早先读取了边高速缓存标签阵列。边高速缓存标签阵列中的命中得到指令高速缓存器(I高速缓存器)的顺序拾取地址中的32字节的增量,并将该数据分级到XIB队列。随后,对边高速缓存标签阵列命的中还使得利用计算出的第一字节部分将指令信息写入XIB队列。通过使用边高速缓存器,可以处理32字节的拾取,而不会出现用于处理32字节拾取的其它方法中发现的错误或大的高速缓存大小。通常,边高速缓存阵列系统的某些实施例在存在通常导致超过16字节的4指令组的长指令(例如,AVX类型的指令,其可以是6至11字节长)的情况下提供更好的吞吐量。
[0012]另外,虽然已经建立了处理32字节拾取的其它机制,但是这些方法存在缺点。例如,一种方法进行每次拾取16字节的慢扫描,然后在同一高速缓存器中累积根据这些扫描确定的指令和指令边界。然而,这种方法易受自修改代码或别名的情况的攻击,这些情况会使开始和结束标记出错,从而需要缓慢且潜在的容易出错的恢复处理。在一些方法中,创建了micro

op(微操作)高速缓存器以实现更高的吞吐量。例如,micro

op高速缓存其用作具有较高带宽(例如,最多4个micro

op/周期,或6个micro

op/周期)的独立的(例如,I高速缓存的)前端替换方案。然而,高速缓存器是非常大和复杂的,并且合并这样的解决方案实际上需要重新设计许多微处理器的大部分流水线。相反,边高速缓存阵列系统的某些实施例通过加宽I高速缓存拾取并使用边高速缓存阵列来存储用于32字节拾取的第二部分的开始/结束/前缀信息、同时允许常规(例如L级和M级)逻辑处理第一部分,来解决大于16字节的拾取的需求,从而使用节省空间的技术提供了简单方法,同时实现更高的吞吐量(例如,即使对于平均长度为八(8)字节长的指令,也能够针对关键环路发布四个x86指令/周期)。
[0013]已经总结了本专利技术的边高速缓存阵列系统的某些特征,现在将详细参考如附图中所示的边高速缓存阵列系统的描述。虽然将结合这些附图描述边高速缓存阵列系统,但是不旨在将其限制为本文所公开的一个或多个实施例。即,虽然本专利技术容许修改和替代形式,但是其具体实施例在附图中以示例的方式示出并且本文将详细描述为足以使本领域技术人员理解。然而,应当理解,附图及其详细描述不旨在将本专利技术限制为所公开的特定形式。相反,本专利技术将覆盖落在由所附权利要求限定的本专利技术的精神和范围内的所有修改、等同物和替代物。如贯穿本申请所使用的,词语“可以”是以许可的意义(即,意味着具有潜在性)而不是强制的意义(即,意味着必须)来使用的。类似地,词语“包括”意味着包括但不限于。
[0014]各种单元、模块、电路、逻辑或其它组件可以被描述为“被配置为”进行一个或多个任务。在这样的背景下,“被配置为”是结构的广泛叙述,该结构通常意味着“具有电路或其它物理结构”,该电路或其它物理结构在操作期间进行或能够进行一个或多个任务。电路可以是专用电路,或者是在编码指令的控制下操作的更通用的处理电路。即,在描述本专利技术的
各种实现的某些方面或特征时,本文可以使用如“单元”、“模块”、“电路”、“逻辑”和“组件”的术语。本领域技术人员将理解,利用电路来实现相应的特征,无论该电路是专用电路还是在微编码指令控制下操作的更通用的电路。
[0015]此外,单元/模块/电路/逻辑/组件可以被配置为即使在该单元/模块/电路/逻辑/组件当前不在操作中时也进行任务。叙述被配置为进行一个或多个任务的单元/模块/电路/逻辑/组件明确地旨在针对该单元/模块/电路/逻辑/组件不进行功能性限定。对此,本领域技术人员将了解,电路元件的具体结构或互连将通常由设计自动化工具的编译器(诸如寄存器传送语言(RTL)编译器等)来确定。RTL编译器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微处理器,包括:指令高速缓存器,其被配置为接收包括第一字节部分和第二字节部分的取指;边高速缓存标签阵列,其被配置为基于所述边高速缓存标签阵列的命中来用信号通知除了所述第一字节部分之外的所述第二字节部分的进一步处理;以及边高速缓存数据阵列,其被配置为存储所述第二字节部分的指令数据。2.根据权利要求1所述的微处理器,其中,所述边高速缓存数据阵列被配置为以压缩形式存储所述指令数据。3.根据权利要求2所述的微处理器,其中,压缩形式的指令数据包括对指令边界的指示、对累积前缀的指示、对分支的指示和对断点标记的指示。4.根据权利要求2所述的微处理器,还包括扩展逻辑,所述扩展逻辑被配置为将所述指令数据从压缩形式扩展到扩展形式。5.根据权利要求4所述的微处理器,其中,所述扩展形式包括适于在XIB多路复用器队列中存储的格式的指令数据。6.根据权利要求5所述的微处理器,还包括所述XIB多路复用器队列,所述XIB多路复用器队列被配置为从所述扩展逻辑接收与所述第二字节部分相对应的扩展指令数据。7.根据权利要求1所述的微处理器,其中,所述边高速缓存数据的处理发生在比所述边高速缓存标签阵列的处理更晚的级。8.根据权利要求1所述的微处理器,还包括长度和前缀扫描逻辑,所述长度和前缀扫描逻辑被配置为通过进行对与所述第一字节部分相对应的指令高速缓存数据的长度确定和前缀扫描来处理与所述第一字节部分相对应的指令高速缓存数据,所述指令高速缓存数据包括比所述边高速缓存数据更多的信息位。9.根据权利要求8所述的微处理器,还包括XIB多路复用器队列,所述XIB多路复用器队列被配置为接收经处理的指令高速缓存数据。10.根据权利要求1所述的微处理器,还包括多路复用器队列,所述多路复用器队列被配置为从与所述第一字节部分和所述第二字节部分相对应的指令高速缓存器接收原...

【专利技术属性】
技术研发人员:汤玛斯
申请(专利权)人:圣图尔科技公司
类型:发明
国别省市:

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

1