当前位置: 首页 > news >正文

multicore和multithreading

文章目录

    • 🧩 一、**“多核(multicore)” 和 “每核多线程(multithreading)” 有什么区别?**
    • 🧠 二、**多线程的实现种类有哪些?**
      • 多线程架构主要分为三类:
    • 🧪 三、SMT 从超标量处理器发展而来
    • 🧪 四、IMT 的分类
      • ✅ 补充解释这两种 Interleaved 的区别
      • ✅ 来源和权威出处支持
      • ✅ IMT总结:
    • ✅ 提升性能的策略:
      • 超标量流水线中 , 增加线程数目组成multithread , 可以提高性能 说明了什么
        • ✴️ 结论性回答:
        • ✅ 深度解释:
      • mutithread 实现分类
        • ✅ 补充说明:

🧩 一、“多核(multicore)” 和 “每核多线程(multithreading)” 有什么区别?

维度多核(Multicore)每核多线程(Multithreading)
本质一个芯片内集成多个完整处理器核每个核内部支持多个线程执行上下文
执行资源每个核心有自己完整的执行资源(PC, ALU, Cache)线程共享核心执行资源(如ALU、Cache、解码单元)
并行度真正的物理并行执行(多个独立核)逻辑上的并发,通过在同一核中交错发射指令实现
调度单位操作系统调度“核心”核内部调度“线程”
线程之间完全隔离,通常缓存不共享(除非共享L2/L3)强耦合,共享几乎所有资源
代表例子AMD Ryzen 5950X(16核)Intel i7 每核2线程;Sun Niagara 每核8线程

📌 类比理解:

多核 ≈ 多个“工厂”并排同时生产
多线程 ≈ 一个“工厂”切换多条生产线轮流工作


🧠 二、多线程的实现种类有哪些?

多线程架构主要分为三类:

类别简写特点代表架构
细粒度多线程FGMT每周期切换一个线程发射,适合隐藏短延迟Sun Niagara, Nvidia GPU
粗粒度多线程CGMT仅在代价高的stall时切换线程,切换代价较高早期研究用
同时多线程SMT每周期可以发射多个线程的多个指令,最大化硬件资源利用率Intel Core i7, IBM Power
Multithreading(多线程架构)
├── Interleaved Multithreading(交错多线程)
│   ├── Fine-Grained MT(细粒度,每周期切线程)
│   └── Coarse-Grained MT(粗粒度,大延迟才切线程)
└── Simultaneous Multithreading(同时多线程)

🧪 三、SMT 从超标量处理器发展而来

你说得对,这段话总结了 SMT 的核心优势:

“当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。”
→ ✅ SMT 是 在超标量基础上扩展来的,不是替代。

“SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显著地提升效能。”
→ ✅ SMT 通过:

  • 增加多个线程的寄存器集(register file)
  • 改进调度器,支持跨线程调度
    就能 利用原本空闲的 issue slots、ALU、LSU,显著提高 吞吐率(TLP + ILP)

🧪 四、IMT 的分类

Interleaved Multithreading(交错多线程) 是一个总类/总称,其下可以细分为:

  • Fine-Grained Multithreading(细粒度交错)
  • Coarse-Grained Multithreading(粗粒度交错)

✅ 补充解释这两种 Interleaved 的区别

特性Fine-Grained MTCoarse-Grained MT
切换频率每个周期切一次线程仅在长延迟时才切
隐藏延迟能力可隐藏短暂与长时间 stall只能隐藏较长 stall(如L2/L3 miss)
线程切换代价很低,类似 round-robin较高,需要重启 pipeline
设计目标保证 pipeline 不空转降低大 stall 对吞吐影响
性能影响牺牲单线程延迟,提升整体吞吐保持单线程性能,牺牲资源利用率
典型处理器Sun Niagara, Nvidia GPU少见,早期研究型设计

✅ 来源和权威出处支持

  • Hennessy & Patterson《Computer Architecture: A Quantitative Approach》第5章明确指出:

    “There are three main hardware approaches to multithreading.
    Fine-grained multithreading… Coarse-grained multithreading… SMT…”
    它们都属于多线程设计,“Fine”与“Coarse”是对 Interleaving 粒度的具体划分。

  • IEEE/ACM 文献也常将 Interleaved MT 作为 umbrella term,细分这两种策略。


✅ IMT总结:

✔️ Interleaved MT 是一个上层分类,Fine-Grained MT 和 Coarse-Grained MT 是其两种具体策略,区别在于线程切换的时机和目标。

✅ 提升性能的策略:

“多核”靠复制核心提升并行度,
“每核多线程”靠更高资源利用率提升吞吐量。

两者可以协同工作,例如 Intel Core i7:
→ 4 核 × 每核 2 线程 = 8 硬件线程(logical processor)

超标量流水线中 , 增加线程数目组成multithread , 可以提高性能 说明了什么

  • 超标量流水线的执行资源没有被充分利用,存在大量的 issue slot 空闲现象,
    通过引入多个线程,可以提高资源利用率,改善吞吐率。
✴️ 结论性回答:

👉 这说明:超标量流水线的执行资源没有被充分利用,存在大量的 issue slot 空闲现象
通过引入多个线程,可以提高资源利用率,改善吞吐率。


✅ 深度解释:
  • 超标量流水线(Superscalar Pipeline):每周期可发射多条指令(例如 4-way、8-way);

  • 单线程执行时,因为存在:

    • 数据相关(RAW)
    • 控制依赖(分支)
    • cache miss 等 stall

    很多周期中无法“填满”所有 issue slots,导致执行资源空闲。


🔁 引入多个线程(即 multithreading):

  • 可以在 stall 时 切换或同时调度其他线程的指令
  • 从多个线程中寻找可发射的指令 → 更好地填满流水线

📌 所以:

多线程提升性能的根本原因是:让原本浪费的流水线空槽得到利用

mutithread 实现分类

术语全称类型特点资源利用策略
IMTInterleaved Multithreading时间交错型每周期切换线程发射(或每 N 个周期)共享 ALU、LSU、issue logic
SMTSimultaneous Multithreading空间复用型每周期多个线程同时发射指令(多个 slot)跨线程平衡延迟与吞吐
✅ 补充说明:
  • IMT 又包括:

    • Fine-Grained MT:每周期轮换线程 → 如 Sun Niagara
    • Coarse-Grained MT:只有在遇到长延迟时才换线程
  • SMT 是在 乱序 + 多发射基础上增加线程调度能力,如 Intel Core i7、Power7 等。

http://www.dtcms.com/a/269755.html

相关文章:

  • 多模态交互HMI全解析:语音、手势、眼动追踪的集成方案
  • rocketmq 刷盘机制 与同步机制区别
  • JavaScript之数组方法详解
  • VSYNC 深度解析
  • Apollo源码架构解析---附C++代码设计示例
  • 提炼总结—ROS2机器人开发(完结)
  • 【WEB】Polar靶场 16-20题 详细笔记
  • Python实现二分查找算法详解
  • 经典论文 Science子刊:数据驱动的偏微分方程发现 —— Supplementary Materials
  • 找了两个月,没找到工作
  • 【笔记】开源 AI Agent 项目 V1 版本 [新版] 部署 日志
  • 开源 python 应用 开发(四)python文件和系统综合应用
  • go go go 出发咯 - go web开发入门系列(一) helloworld
  • uniapp使用 renderjs 多平台谷歌地图(Google Map)的适配
  • 力扣-31.下一个排列
  • React Native安卓刘海屏适配终极方案:仅需修改 AndroidManifest.xml!
  • 【openGLES】安卓端EGL的使用
  • Javafx教程(1)——初始Javafx
  • 工业HMI的智能化转型:边缘计算与预测性维护的深度融合
  • 自定义RecyclerView的ItemDecoration,用于处理网格布局间距装饰器(支持边缘间距独立控制)
  • ubuntu vscode 点击变量链接进去后 怎么返回原来的位置
  • LocalStorage和SessionStorage的区别和应用
  • 马尔可夫决策过程
  • python办公自动化----使用pandas和os合并多个订单表
  • 【python】 `parse_time_to_seconds` 在功能及健壮性上有以下主要区别
  • ​扣子Coze飞书多维表插件添加数据记录
  • 【UE5】虚幻引擎小百科
  • std::function
  • coze平台AI Agent开发入门之工作流的基本使用方法
  • Redis 缓存机制 及问题场景 及解决方案