找回密码
 加入我们
搜索
      
查看: 3289|回复: 31

[CPU] 逆超线程再袭?

[复制链接]
发表于 2025-8-31 15:39 | 显示全部楼层 |阅读模式
https://wccftech.com/intels-pate ... readed-performance/
英特尔的新专利
下面是把专利pdf丢给gemini解读的内容
专利标题:软件定义的超级核心 (Software Defined Super Cores)

申请人:英特尔公司 (INTEL Corporation)


申请号:24215331.0


公开日期:2025年7月2日

1. 核心发明
该专利描述了一种名为“软件定义的超级核心”(Software Defined Super Cores, SDC)的技术,旨在通过软件和硬件的协同作用,将两个或多个独立的处理器核心(通常是物理上相邻的)虚拟地“融合”成一个单一、更强大的虚拟核心 。这项技术的主要目标是提升单线程程序的性能和能效,同时克服传统高性能核心设计中存在的功耗和灵活性问题 。




与传统的多核架构(如性能核与能效核混合架构)不同,SDC 提供了一种动态且灵活的方式,可以根据系统负载和任务需求聚合核心的指令处理能力(IPC),而无需设计多种不同类型的核心 。



2. SDC 的工作原理
SDC 的核心思想是将一个单线程程序分解成多个指令段(或称为“块”、“区域”),然后让组成“超级核心”的多个物理核心并发地执行这些不同的指令段 。尽管指令在物理上是并行执行的,但它们的退休(retire)顺序与原始程序保持一致,从而对操作系统和应用程序呈现出一个单一、高性能核心的假象 。




2.1 代码分割与引导

静态或动态分割:单线程程序的代码被分割成大小相近的指令块(例如,每个块约200条指令) 。这种分割可以由即时(JIT)编译器、静态编译器在编译时完成,也可以在运行时直接对旧的二进制文件进行处理 。



交替执行:超级核心中的核心交替执行这些代码块。例如,核心0执行第1、3、5个代码块,而核心1执行第2、4、6个代码块 。




流控制指令:通过在代码中插入特定的流控制指令(如跳转或分支指令),引导每个核心跳过不属于自己的代码段,直接执行其负责的部分 。



2.2 同步与数据依赖管理
为了确保程序的正确性,SDC 机制必须有效管理核心间的数据依赖和执行顺序。


Wormhole 地址空间:系统保留一个专用的内存地址空间,称为“Wormhole”,用于 SDC 核心间的通信 。这个空间对用户程序不可见,但操作系统和硬件可以访问,用于传输寄存器数据和同步信号 。




同步(Sync)指令:每个代码段的开头都有一条同步加载(sync load)指令 。该指令确保了核心间的有序退休,即一个核心只有在另一个核心完成其上一个代码段的所有指令后,才能退休当前代码段的指令,从而维持全局的指令退休顺序 。



Live-in 和 Live-out 操作:


Live-out:当一个核心完成其代码段后,它会将后续代码段(由另一个核心执行)所依赖的寄存器值(称为“live-out”)通过特殊的存储指令写入 Wormhole 空间 。



Live-in:另一个核心在开始执行其代码段之前,会通过特殊的加载指令从 Wormhole 空间读取这些寄存器值(称为“live-in”),以获取必要的输入数据 。


3. 关键硬件与软件组件
3.1 SDC 接口
每个参与超级核心的物理核心都包含一个 SDC 接口电路,通常作为核心内存执行单元(MEU)的一部分 。该接口负责处理:



核心间的加载-存储顺序 。


寄存器和内存数据的转发 。


确保内存排序的正确性 。

3.2 Shadow Store Buffer (影子存储缓冲区)
为高效处理核心间的内存依赖关系,每个核心都配备了一个“影子存储缓冲区” 。

该缓冲区用于跟踪另一个核心正在执行的存储操作的地址 。

当一个核心执行加载操作时,它会同时检查自己的存储缓冲区和影子存储缓冲区,以确定是否存在来自另一个核心的、更近的冲突存储操作 。

如果在影子缓冲区中发现冲突,加载操作会向源核心请求数据,并在等待数据到达期间暂停,从而确保了内存一致性 。

3.3 乱序重命名 (Out-of-Order Renaming)
为了最大化并行度,SDC 采用了一种乱序重命名机制 。

当核心1准备执行其代码段时,它会根据历史数据或超集分析来

预测核心0将会修改哪些寄存器 。



基于这个预测,核心1可以提前开始指令重命名和执行,并向核心0发起拉取请求以获取预期的寄存器数据 。

核心0完成后,会将其修改的实际寄存器列表发送给核心1。如果预测错误,核心1将清空流水线并重新开始执行,以确保正确性 。

3.4 并行获取与分支预测单元 (BPU)
为了提高指令获取的带宽,超级核心的两个核心可以并行地从内存中获取它们各自的代码块 。

当核心0正在获取其代码段时,核心1的分支预测单元(BPU)会

预测其下一个代码段的起始地址,并开始投机性地获取指令 。

核心0完成后,会将正确的下一段代码起始地址通知核心1。如果 BPU 预测错误,核心1会清空流水线并从正确的地址重新获取指令,同时训练 BPU 以提高未来预测的准确性 。

4. SDC 模式的管理
4.1 进入与退出 SDC 模式

硬件引导调度 (HGS):系统中的硬件(如线程运行时遥测电路)会监控应用程序的运行状态,例如指令每周期数(IPC)、指令级并行度(ILP)以及当前的电压和频率 。





操作系统决策:当 HGS 判断某个应用适合在 SDC 模式下运行时,它会向操作系统(OS)发出迁移建议 。操作系统随后检查是否有可用的、符合条件的相邻核心 。如果条件满足,OS 会将应用程序的状态(内存、寄存器等)迁移到超级核心上运行 。





退出 SDC:当系统需要更多独立核心,或者应用程序在 SDC 模式下表现不佳时(例如分支预测错误率过高),OS 可以决定将其迁回传统的单核模式运行 。



4.2 性能与功耗调节(节流)

性能节流:系统会监控 SDC 模式下的分支预测错误率。如果错误率过高(例如,每千条指令的未命中次数 - MPKI - 超过阈值),表明 SDC 带来的并行优势被抵消,系统可能会选择退出 SDC 模式以提高性能 。


功耗节流:系统还会监控总的内存停顿和依赖停顿情况。如果一个程序固有的并行度很低,在 SDC 模式下会导致伙伴核心产生不必要的功耗泄漏。在这种情况下,系统可能会降低电压或频率,以达到更好的每瓦性能 。

5. 总结与意义
该专利提出了一种创新的处理器架构,通过软件与硬件的紧密结合,实现了对现有处理器核心资源的动态聚合。与依赖于制程技术进步来构建更大、更复杂核心的传统方法相比,“软件定义的超级核心”提供了一条更灵活、更具成本效益的途径来提升单线程性能。它使得处理器能根据实际工作负载在“更多核心”和“更强核心”之间动态切换,从而在性能和能效之间取得更好的平衡。
发表于 2025-8-31 17:00 来自手机 | 显示全部楼层
行推土机故事 已有取死之道
发表于 2025-8-31 17:15 | 显示全部楼层
假设 llm 解读的没有歪曲原意的话

那这事没搞完, 还需要一个 transactional memory, 多核内存读写违反程序序时, 需要基于 robid 作 rollback
还需要改进 cache coherency, 为不同核的 load store 提供 store to load forward, store to store commit
这些事原比已经做了的麻烦

或者 intel 说我们搞的这个不是 x86, 那做到他这个程度问题不大
发表于 2025-8-31 17:22 | 显示全部楼层
词整的不错,烂尾前都是美好且极具前瞻性、先进性。
发表于 2025-8-31 17:27 | 显示全部楼层
一个大小核已经弄得半身不遂了,又整花活?
---逆超线程未来可能(是可能)会有戏,就目前来说,,大小核调度/延迟都搞不定,就别玩花活了,老老实实做新扣肉吧
发表于 2025-8-31 17:42 来自手机 | 显示全部楼层
当年推土机就是技术超前,不知道牙膏厂的又是什么情况。来个技术大拿解释解释。
 楼主| 发表于 2025-8-31 18:16 | 显示全部楼层
我的理解是相比多发射乱序执行这就是一种更粗粒度的指令间并行技术,乱序执行是具体某条执行提前跑事后发现未执行的代码有依赖则对其回退,而这个是一大块指令提前跑,有依赖了回退。
发表于 2025-8-31 19:19 | 显示全部楼层
royal core?
发表于 2025-8-31 19:26 | 显示全部楼层
已经没口碑了 再不拿出点东西 真没了~~
发表于 2025-8-31 19:37 来自手机 | 显示全部楼层
还是看一看远处的超标量吧家人们
发表于 2025-8-31 21:41 | 显示全部楼层
该专利描述了一种名为“软件定义的超级核心”(Software Defined Super Cores, SDC)的技术,旨在通过软件和硬件的协同作用


软件定义?这事和巨硬沟通过了么
发表于 2025-8-31 22:45 | 显示全部楼层
鲁毅智:是谁在敲打我窗?
发表于 2025-8-31 22:52 | 显示全部楼层
难怪说是推土机重制版
发表于 2025-9-1 00:26 来自手机 | 显示全部楼层
这专利,就算自己不用,也防止别人用。
发表于 2025-9-1 00:30 | 显示全部楼层
部分Royal Core 遗产
发表于 2025-9-1 00:34 来自手机 | 显示全部楼层
xy. 发表于 2025-8-31 17:15
假设 llm 解读的没有歪曲原意的话

那这事没搞完, 还需要一个 transactional memory, 多核内存读写违反程序 ...

静态的调度很难搞定动态执行,如果像专利一开始说那样靠静态分割,恐怕连上限都干不过传统大核。
发表于 2025-9-1 00:50 | 显示全部楼层
用户 发表于 2025-8-31 11:34
静态的调度很难搞定动态执行,如果像专利一开始说那样靠静态分割,恐怕连上限都干不过传统大核。 ...

具体的情况只有实际东西出来才知道了。有一种说法是牙膏这种设计可以做到大幅度性能提升,但是目前的代价是每个单元面积巨大。。。
发表于 2025-9-1 03:04 | 显示全部楼层
这东西必须是对应用层透明的才可能好用
一想到windows调度就头疼
发表于 2025-9-1 08:23 | 显示全部楼层
看不懂
发表于 2025-9-1 08:27 | 显示全部楼层
绿茵豪门 发表于 2025-8-31 19:26
已经没口碑了 再不拿出点东西 真没了~~

intel
发表于 2025-9-1 08:30 | 显示全部楼层
pdvc 发表于 2025-8-31 21:41
软件定义?这事和巨硬沟通过了么

NO PROMLEMPPTintel[]
发表于 2025-9-1 08:33 | 显示全部楼层
大核ipc做不好,尽整这些没用的花活。
发表于 2025-9-1 08:39 | 显示全部楼层
gg20073659 发表于 2025-9-1 08:30
沟通过了,然后阿三拍着胸脯“NO PROMLEM!”,然后转头跟手下阿三程序员交代做PPT跟intel要钱 ...

农企的预测分支功能都被巨硬坑过一次
发表于 2025-9-1 08:42 | 显示全部楼层
pdvc 发表于 2025-9-1 08:39
农企的预测分支功能都被巨硬坑过一次

PPT[]
发表于 2025-9-1 08:42 | 显示全部楼层
Ray.D 发表于 2025-8-31 17:27
一个大小核已经弄得半身不遂了,又整花活?
---逆超线程未来可能(是可能)会有戏,就目前来说,,大小核调 ...

把大核全砍了,然后四个小核合成一个大核用,一箭双雕
发表于 2025-9-1 08:43 | 显示全部楼层
pdvc 发表于 2025-9-1 08:39
农企的预测分支功能都被巨硬坑过一次

发表于 2025-9-1 09:28 来自手机 | 显示全部楼层
英特尔最大的作死就是在台式机上搞大小核。

如果下代取消大小核,或许有起死回生的可能。

或者把宣发外包给华为也许有转机。

其他都是死路。
发表于 2025-9-1 09:42 | 显示全部楼层
英特尔这几年真就一点研发都没有了吗,拿不出来压箱底的先进技术了。
发表于 2025-9-1 09:47 | 显示全部楼层
fpga vs asic
发表于 2025-9-1 10:49 | 显示全部楼层
x86s也才刚入土
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-9-1 13:23 , Processed in 0.011869 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表