当前位置: 首页 > 专利查询>英特尔公司专利>正文

具有共享前端单元的处理核制造技术

技术编号:12269244 阅读:77 留言:0更新日期:2015-11-04 10:45
描述了具有一个或多个处理核的处理器。一个或多个处理核中的每一个都具有前端逻辑电路以及多个处理单元。前端逻辑电路将获取线程的相应的指令并将指令解码为指令的相应的微代码以及输入操作数和结果地址。多个处理单元中的每一个都将被分配至少一个线程,耦合到所述前端单元,并具有相应的缓冲区以接收并存储线程中的分配给其的至少一个的微代码。多个处理单元中的每一个都还包括:i)对应于由处理器提供的完整指令组的至少一组功能单元,所述至少一组功能单元用于执行其相应的处理单元的接收到的微代码;ii)耦合到所述至少一组功能单元以存储接收到的微代码的操作数以及结果的寄存器;iii)获取输入操作数用于至少一个功能单元执行接收到的微代码的数据获取电路。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】具有共享前端单元的处理核专利
本专利技术的领域一般涉及计算科学,更具体而言,涉及具有共享前端单元的处理核。背景图1示出了示例性多核处理器100的架构。如在图1中观察到的,处理器包括:1)多个处理核101_1到101_N ;2)互连网络102 ;3)末级缓存系统103 ;4)存储器控制器104和I/O中枢105。处理核中的每一个都包含用于执行程序代码指令的一个或多个指令执行流水线。互连网络102可以将核101_1到101_N中的每一个彼此互连并与其他组件103、104、105互连。末级缓存系统103在指令和/或数据被驱逐到系统存储器108之前充当处理器中的最后一层缓存。存储器控制器104从/向系统存储器108读/写数据和指令。I/O中枢105管理处理器和“I/O”设备(例如,非易失性存储器设备和/或网络接口)之间的通信。端口 106源于互连网络102以链接多个处理器,以便可以实现具有N以上的核的系统。图形处理器107执行图形计算。功率管理电路(未示出)作为整体管理处理器的性能和功率状态(“封装级别”)以及处理器内的诸如单个核101_1到101_N、图形处理器107等等之类的单个单元的性能和功率状态的各方面。为了方便起见,在图1中未描绘其他重要的功能块(例如,锁相环(PLL)电路)。图2示出了图1的处理核中的一个的示例性实施例200。如在图2中观察到的,每一核都包括两个指令执行流水线250,260。每一指令执行流水线250,260都包括其自己的相应的:i)指令获取级201 ;ii)数据获取级202 ;iii)指令执行级203 ;以及,iv)写回级204。指令获取级201从缓存或系统存储器(如果所希望的指令不在缓存内)获取指令序列中的“接下来的”指令。指令通常操作数数据以及要对操作数数据执行的操作。数据获取级202从本地操作数寄存器空间、数据缓存或系统存储器获取操作数数据。指令执行级203包含一组功能单元,其中任何一个都被调用,以执行由任何一个指令对操作数数据调用的特定操作,操作数数据是由指令所指定的,并由数据获取级202获取的。写回级204通常通过将结果写入到耦合到相应的流水线的本地寄存器空间,来“提交”执行的结果。为了避免对较早的“飞行中的”指令没有任何依赖关系的指令的不必要的等待时间,许多现代的指令执行流水线具有增强的数据获取和写回级以实行“无序”执行。这里,流水线250,260的相应的数据获取级202被增强,以包括数据相依性逻辑205,以识别指令何时没有对较早的飞行中的指令的依赖关系,并准许其在例如其数据还没有被获取的较早的指令的“前头”向指令执行级203发出。此外,写回级204还被增强以包括重排序缓冲器206,该重排序缓冲器206将无序执行的指令的结果重排序为其正确的顺序,并将它们的引退等待时间到物理寄存器组,直到指令执行结果的正确地排序的连续序列引退。还观察到增强的指令执行流水线在指令获取级201内包括指令推测逻辑207。推测逻辑207猜测指令序列将采取什么条件分支方向或跳转,并开始获取从该方向或跳转流出的指令序列。然后,由执行流水线的其余级处理推理性指令。附图本专利技术是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考编号表示类似的元件,其中:图1示出了处理器(现有技术);图2示出了指令执行流水线(现有技术);图3示出了具有共享前端单元的处理核;图4示出了由图3的处理核执行的方法;图5示出了其相应的核具有共享前端单元的处理器;图6示出了由其相应的核具有共享前端单元的处理器组成的计算系统。详细描述在半导体芯片上制造的逻辑晶体管的数量可以被视为半导体芯片的用于处理信息的固定资源。上文参考图1和2所讨论的处理器和处理核架构的特征是,强调缩短由处理器处理的指令的等待时间。换言之,图1和2的处理器设计的固定资源,诸如对每一个流水线作出的无序执行增强,专用于通过带有最小的等待时间的流水线运行线程。然而,逻辑电路专用于当前活跃的线程的加速,是以处理器在任何时刻能够同时处理的线程的总数为代价来实现的。换言之,如果以不同的方式强调处理器的逻辑电路单元,则处理器能够比图1的处理器(其处理核是根据2的架构设计的)同时处理更多线程。例如,如果移除无序执行增强的逻辑电路资源,则“被腾出的”逻辑电路可以重新用于实例化处理器内的更多执行单元。利用更多执行单元,处理器可以同时执行更多指令,并由此的更多线程。图3示出了在多核处理器内可以实例化多次(例如,对于每一个处理核,一次)的处理核300的架构的实施例。图3的处理核架构被设计有比典型的标准处理核更多执行单元,以便提高处理核的总的吞吐量(即,提高处理核可以同时处理的线程的数量)。如在图3中观察到的,处理核架构包括耦合到多个处理单元302_1至302_N的共享前端单元301。在一个实施例中,处理单元302_1到302_N中的每一个都包含能够支持整个指令集,诸如整个x86指令集或其他通用指令集(与诸如数字信号处理器(DSP)或加速器的典型的指令集之类的比较有限的特定用途指令集相反)的至少一组功能单元(例如,至少一组功能单元303) ο如在图3中观察到的,共享前端单元301获取并接收要由处理核300处理的指令,解码接收到的指令,并将经解码的指令派遣到它们的合适的处理单元。在一个实施例中,共享前端单元获取正在由处理核的所有通用处理单元执行的所有线程的所有指令。将特定线程分配给特定处理单元,并且每一处理单元,如下面更详细地描述的,是多线程的(即,可以同时和/或并发地处理一个以上的线程)。如此,如果每一处理单元都可以同时/并发地执行高达M个硬件线程,并且有N个处理单元,则处理核可以同时/并发地执行高达MN个硬件线程。这里,乘积MN可以大于可以在典型的处理核中同时执行的硬件线程的典型的数量(例如,大于当前密度中的8或16)。参考共享前端单元301,共享前端单元包含程序控制逻辑电路311,用以标识并获取每一个线程的合适的“接下来的”指令。这里,程序控制逻辑电路311包括每一个线程的指令指针312_1到312_MN,以及指令获取电路313。注意,图3指出有丽个指令指针以反映对于丽个不同的硬件线程的支持。对于每一个硬件线程,指令获取电路313首先针对在线程的指令指针内标识的指令查看指令缓存314。如果在指令缓存314内没有发现搜寻的指令,则从程序存储器315中获取它。在各实现中,可以以每个硬件线程为基础存储指令块,并从缓存和/或存储器中获取它们。个体硬件线程可以由指令获取电路313以时间切片为基础来服务(例如,合理的轮询(round robin)方法)。进一步,指令获取电路313可以被并行化为并行地获取不同的硬件线程的指令的类似的/相同块(例如,指令获取电路的每一并行块服务指令指针的不同的子集)。然而,由于可能比传统的处理器较慢地处理单个硬件线程(例如,由于每个线程等待时间缩减电路没有被实例化以有利于更多处理单元,如上文所描述的),因此,可以设想,某些实现可能不需要并行指令获取能力,或至少包括少于N个并行指令获取通道(例如,N/2并行指令获取块)。相应地,在这些中的任何一种情况下,前端单元301的某些组件由处理单元302_当前第1页1 2 3本文档来自技高网...

【技术保护点】
具有一个或多个处理核的处理器,所述一个或多个处理核中的每一个都包括:前端逻辑电路,所述前端逻辑电路用于获取线程的相应的指令并将所述指令解码为所述指令的相应的微代码以及输入操作数和结果地址;多个处理单元,所述处理单元中的每一个被分配所述线程中的至少一个,每一处理单元耦合到所述前端单元,并具有相应的缓冲区,用于接收并存储所述线程中分配给其的至少一个线程的微代码,所述多个处理单元中的每一个都包括:i)对应于由所述处理器提供的完整指令组的至少一组功能单元,所述至少一组功能单元执行其相应的处理单元的接收到的微代码;ii)耦合到所述至少一组功能单元以存储所述接收到的微代码的操作数以及结果的寄存器;iii)用于获取输入操作数以用于所述至少一个功能单元执行所述接收到的微代码的数据获取电路。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:I·帕多D·马可维奇O·本琪琪Y·优素福
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1