体系结构名词解释

读书时候写的一篇笔记,整理下丢上来。

 

关键字:super scalar、temporal multithreading、simultaneous multithreading、CMP、super-threading、hyper-threading、SMP、UMA、NUMA、SIMD、SISD、MIMD,MISD,EPIC,VLIW

CPU的并行主要有两种方式:指令级并行(ILP)和线程级并行(TLP)。

指令级并行

指令级并行主要通过Super scalar(超标量)实现。它是一种cpu的结构形式,cpu含有多个运算单元,从而可以在同一时钟周期执行多于一条的指令。

注意:虽然super scalar的处理器通常是pipelined的,但super scalar和pipeline是两种独立的提升cpu性能的技术,理论上可以有super scalar的非pipelined的cpu,反之亦然。另外,super scalar可以使cpu同时执行多条指令,但同时执行多条指令的不一定就是super scalar。pipeline、多处理器、多核结构都能做到这点。

顺便提一下scalar processor,与之对应的是vector processor,前者指一条指令只处理一到两个数据单元,后者则可以一条指令同时处理多个数据单元。Super scalar则是这两者的一种混合。

线程级并行

多线程(multithreading)的实现分为三类:Temporal multithreading(也叫Interleaved multithreading?)、Simultaneous multithreading和Chip-level multiprocessing(CMP)。前两者的区别是在某一个时钟周期,任意给定的流水级上同时执行的线程数量,前者为1,后者大于1。CMP则是在一个芯片中集成两个或以上的super scalar处理器,每个处理器独立执行线程。

Temporal multithreading主要分为两类:coarse-grain(粗粒度)和fine-grain(细粒度),前者指cpu流水线(各级)同时只承载一个线程的运行,由一个算法实现上下文切换,保证效率和公平性等;后者指cpu流水线各级同时承载多个线程运行,在流水级之间有效率地完成上下文切换。看wiki的意思,似乎是说后者的上下文切换比较有效率(不知道为啥),但后者得让各个流水级同时保持不同线程的状态,而且为了保证正在执行的线程的读写稳定,难以对“后台”线程进行优化。

Simultaneous multithreading(即所谓的SMT),为了实现SMT,主要是需要实现一个cycle中fetch多个线程的指令,并且要有足够数量的寄存器保存各线程的状态。因此,实现SMT的CPU一定是super scalar的。

Super-Threading:Intel在Pentium上的一个tempporal multithreading实现。

Hyper-Threading:官方叫法是Hyper-Threading Technology(HTT),是Intel在Pentium4、Xeon "Foster"上面的一个SMT实现。使用了HTT的P4在OS看来就如同一个双处理器系统一样(A Pentium 4 with Hyper-Threading enabled is treated by the operating system as two processors instead of one.)。

参考文献

Hyper-threading、super threading、super scalar、temporal multithreading、simultaneous multithreading、CMP、Xeon的wiki页面


Introduction to Multithreading, Superthreading and Hyperthreading

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值