硬件多线程

        在传统CPU中,线程的切换包含一系列的开销,频繁的切换会极大影响系统的性能,为了减少线程切换过程中的开销,便诞生了硬件多线程,在支持硬件多线程的CPU中,必须为每个线程提供单独的通用寄存器组,单独的程序计数器,线程的切换只需要激活选中的寄存器,从而省略了于存储器交换数据的环节,大大减少了线程切换的开销。 

硬件多线程细粒度多线程粗粒度多线程同时多线程(SMT)
指令发射各个时钟周期,轮流发射多个线程的指令连续几个时钟周期,都发射同一线程的指令序列,流水线阻塞时,切换另一个线程一个时钟周期内,同时发射多个线程的指令
线程切换频率每个时钟周期切换一次线程只有流水线阻塞时才切换一次线程NULL
线程切换代价高,需要重载流水线NULL
并行性指令级并行,线程间不并行指令级并行,线程间不并行指令级并行,线程级并行

1.细粒度多线程

时钟CPU
i发射线程A的指令j, j+1
i+1发射线程B的指令k、k+1
i+2发射线程A的指令i+2、j+3
i+3发射线程B的指令k+2、k+3

2.粗力度多线程

时钟CPU
i发射线程A的指令i、i+1
i+1发射线程 A的指令j+2、j+3发现Cache miss
i+2线程调度,从A切换到B
i+3发射线程B的指令k、k+1
i+4发射线程B的指令k+2、k+3

3.同时多线程

时钟CPU
i发射线程A的指令j、j+1,线程B的指令k、k+1
i+1发射线程A的指令i+2,线程B的指令k+2,线程C的指令m
i+2发射线程A的指令i+3,线程C的指令m+1、m+2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值