zoukankan      html  css  js  c++  java
  • 超线程是什么?

    看CSAPP果然大有收获,超线程就是其一。

    我们知道计算机的CPU是从单处理器开始,到多处理器,再到多核,最后超线程技术的出现。

    单处理器很好理解,就是一个CPU。

      所以同一时刻只能运行一个进程,在分时任务系统出现之前,用户只能等待前一个任务结束,才能执行下一个任务。

      在分时任务系统出现之后,由系统调度,让CPU轮流执行任务,只不过切换的速度太快,所以造成了同时运行的假象!

      无论是多线程还是多进程,需要切换的时候,必须保存原有的状态信息,再载入新的状态信息 -- context switch!

      这些信息包括:PC(程序计数器)、Register files等,主要是当前执行到哪个指令了,运算的结果是啥之类的。

    多处理器,也很好理解,就是一个主机上安装了多个CPU,但各自为政,没有低层次的数据共享!

    多核,也是多个CPU,但共享线路,甚至共享主存(?),现在的主流!

    超线程,这是一种新技术(相对而言),以上面的多线程执行来说,如果每个CPU多来几个PC、Register files,那线程切换时的代价就小的多 -- 不需要保存和重载了!

      超线程就是基于这种理念,以core i7为例,每个CPU有两套PC、Register files等硬件,然后只有一套浮点运算单元!这样,可以同时保持两个线程,切换起来也速度飞快!

      这就是为什么我们总听说双核四线程四核八线程

  • 相关阅读:
    ●表单元素
    ●HTML网页标签2
    ●数据库的备份
    ●HTML网页标签1
    ●索引、视图、游标
    ●SQL编程
    ●关系数据库基础
    ●常用函数
    ●SQL练习题
    ●SQL高级查询
  • 原文地址:https://www.cnblogs.com/larryzeal/p/7695119.html
Copyright © 2011-2022 走看看