摘要:英特尔申请了一项名为“软件定义超级内核”(Software Defined Supercore,SDC)的技术专利,该技术能够使软件将多个内核的能力融合在一起,组装成一个虚拟的超宽“超级内核”,在有足够的并行工作负载的情况下,能够提升单线程性能。如果该技术能够
英特尔申请了一项名为“软件定义超级内核”(Software Defined Supercore,SDC)的技术专利,该技术能够使软件将多个内核的能力融合在一起,组装成一个虚拟的超宽“超级内核”,在有足够的并行工作负载的情况下,能够提升单线程性能。如果该技术能够按照设计工作,那么英特尔未来的CPU在能够使用SDC的特定应用中可能会提供更快的单线程性能。
英特尔的软件定义超级内核(SDC)技术将两个或更多的物理CPU内核组合在一起,作为一个高性能的虚拟内核协同工作,通过将单线程的指令分割成不同的块并并行执行它们。每个内核运行程序的不同部分,而专门的同步和数据传输指令确保原始程序顺序得以保留,以最小的开销最大化每时钟周期指令数(IPC)。这种方法旨在不提高时钟速度或构建宽大的单体核心(这可能会增加功耗和/或晶体管预算)的情况下提升单线程性能。
现代x86 CPU内核每个周期可以解码4-6条指令,在指令被解码成微操作后,每个周期执行8-9个微操作,从而实现此类处理器的峰值IPC性能。相比之下,苹果的定制Arm架构高性能内核(例如Firestorm、Avalanche、Everest)每个周期最多可以解码8条指令,并且在理想条件下每个周期可以执行超过10条指令。这就是为什么苹果的处理器通常比其他Arm架构的处理器提供更高的单线程性能和更低的功耗。
虽然从技术上来说构建一个8路x86 CPU内核(即一个每时钟周期可以解码、分发和完成最多8条指令的超标量x86处理器)是可行的,但由于前端瓶颈以及在功耗和面积成本大幅增加的情况下性能提升的收益逐渐减少,实际上并没有这么做。事实上,即使是现代的x86 CPU,在一般工作负载下,通常也只能持续达到2-3-4的IPC,这取决于软件。因此,英特尔的SDC并没有选择构建一个8路x86 CPU内核,而是提议在合适的情况下,将两个或更多的4路单元配对,作为一个大内核协同工作。
在硬件方面,启用SDC的系统中的每个核心都包含一个小型专用硬件模块,用于管理配对核心之间的同步、寄存器传输和内存排序。这些模块利用一个预留的内存区域,称为“虫洞地址空间”,来协调活输入/活输出数据和同步操作,确保来自不同核心的指令以正确的程序顺序完成。该设计既支持顺序执行核心,也支持乱序执行核心,对现有执行引擎的改动最小,从而在芯片面积方面实现了紧凑的设计。
在软件方面,系统使用即时编译器(JIT)、静态编译器或二进制代码插桩来将单线程程序拆分成代码段,并将不同的代码块分配给不同的内核。它注入特殊的指令用于流程控制、寄存器传递和同步行为,使硬件能够保持执行的完整性。操作系统的支持至关重要,因为操作系统会根据运行时条件动态决定何时将线程迁入或迁出超级内核模式,以平衡性能和内核可用性。
英特尔的专利并未给出确切的性能提升数值预估,但其暗示,在某些特定情境下,两个“窄”核心的性能有望接近一个“宽”核心的性能表现。目前,这只是一项专利,可能成为现实,也可能不会。
来源:CHIP奇谱