CPU通识课_AZW3_MOBI_EPUB_靳国杰;张戈

内容节选

第5节从一个到多个:并行 “真双核”与“假双核”的说法是由AMD提出来的,Intel将两颗Pentium 4核心封装在一个基板上,组成了Pentium D,AMD认为这种架构是假双核,而网友则更具想象力,将这种双核称为“胶水”双核。 ——《Intel对决AMD》,搜狐IT,2006 2015年发布的龙芯3A2000版图,在一个芯片中包含4个处理器核(CORE0到CORE3) 人多力量大:多核 多核是指在一个芯片中集成多个独立的CPU单元 多核(Multicore)是指在一个芯片中集成多个独立的CPU单元,所有CPU可以共同执行计算工作。这样的芯片称为一个Chip,而芯片集成的每一个CPU称为一个处理器核 (Core)。 龙芯3号是典型的多核芯片。每一个核可以单独运行一个应用程序,例如一个核正在播放电影,同时有另外一个核在压缩文件。龙芯3A1000、3A2000、3A3000、3A4000、3A5000都在一个芯片中封装了4个处理器核,这在大多数台式计算机中都足够使用了。 多核是典型的“横向扩展”设计思想。以前一味提高单个CPU的主频、性能,已经接近了架构设计和实现工艺的极限,摩尔定律的效果也在逐步降低。而增加计算单元的数量来提高计算能力,则相对要容易得多。 操作系统同时管理多个处理器核,把应用程序的执行负载尽可能平均地分配在所有处理器核上。不同的应用程序可以分配到不同的核上运行,一个应用程序也可以用并行编程(Parallel Programming)的技术,把自身分解成同时运行的多个执行线索,例如多进程、多线程机制,这样也可以使用多个处理器核同时计算。 不止一个芯片:多路 多路是在一个计算机主板上安装多个独立的CPU芯片 多路是指在一个计算机主板上安装多个独立的CPU芯片。多路也是通过“横向扩展”来增加计算单元数量的方法,可以克服多核技术在一个芯片内的集成度和功耗限制。 多路主要用于服务器主板上,适用于大并发量的Web服务器、数据库、云计算等场景。整个服务器中包含的CPU数量的计算公式为“CPU数量 = 路数 × 每个芯片包含的核数”。例如,龙芯3B4000四路服务器在一个主板上安装了4个独立的龙芯3B4000芯片,每个芯片包含4个CPU核,这样一台服务器的总核数是4 × 4 = 16,如图4.7所示。 图4.7 龙芯3B4000四路服务器在一个主板上安装了4个芯片 操作系统对一个主板上的多个处理器芯片统一管理,尽量将计算任务平均分配到所有处理器核上。 多路架构还有一个好处是“计算性能和存储性能的平衡”。在计算性能方面,一个服务器主板通过安装多个CPU芯片而提高核数,并且可以根据计算任务的需求而灵活配置成双路或四路;在存储性能方面,每一个CPU都有独立的内存访问通道,多个CPU可以并行地访问内存,这样可以成倍提升内存访问带宽。相比之下,如果是在一个芯片内部单纯提高处理器核数,虽然计算指标得到提升,但是内存访问通道的数量少,将形成访存瓶颈,出现“茶壶倒饺子”的问题,最终限制整机性能表现。 流水线和线程的结合:硬件多线程 多线程(Multi-threading)是并行编程的一种技术,是指一个应用程序可以创建两个及以上独立的执行线索,这两个执行线索分别执行不同的指令序列。每一个执行线索称为一个线程(Thread)。 计算机对多线程有软件、硬件两种实现方式。 在软件的实现方式中,操作系统控制CPU实现“分时复用”,CPU的执行时间分成很多小的单位,在不同的时间段中分别执行不同线程的指令序列。由于时间段的单位非常小(一般在100ms以内),线程切换的速度非常快,因此给用户的感觉是所有线程在同时运行。但实际上每个线程使用的资源都只占CPU时间的一部分。 在硬件的实现方式中,一个CPU核在硬件上支持多个线程的执行环境。每个线程的执行环境都包括一套寄存器、一套流水线、一套数值计算单元等。CPU可以将多个线程都以硬件的方式执行,只要实际运行的线程数量不超过CPU支持的执行环境数量,就不需要分时复用,这是真正意义上的并行执行。 硬件支持的多线程技术也称为“同时多线程”(Simultaneous Multi-Threading,SMT),在有的文献中也称为“超线程”。据Intel公司发表的文献,支持2套线程执行环境的CPU,能够以增加不到10%晶体管的代价取得平均60%的性能提升。Dean Tullsen, Susan Eggers, Joel Emer, Henry Levy, Jack Lo, and Rebecca L. Stamm, Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor,......

  1. 信息
  2. 内容提要
  3. 编委会
  4. 推荐序
  5. 前言
  6. CPU概览篇 时代与机遇
  7. 第1节 CPU时代
  8. 第2节 CPU性能论
  9. 第3节 人人可学CPU
  10. CPU术语篇 入门术语应知应会
  11. 第1节 计算机的语言:指令集
  12. 第2节 繁简之争:精简指令集
  13. 第3节 第一次抽象:汇编语言
  14. 第4节 做CPU就是做微结构
  15. 第5节 解读功耗
  16. 第6节 摩尔定律传奇
  17. 第7节 通用还是专用?
  18. 第8节 飘荡的幽灵:后门和漏洞
  19. CPU原理篇 现代高性能CPU架构与技术
  20. 第1节 理论基石
  21. 第2节 EDA神器
  22. 第3节 开天辟地:二进制
  23. 第4节 CPU的天职:数值运算
  24. 第5节 流水线的奥秘
  25. 第6节 乱序执行并不是没有秩序
  26. 第7节 多发射和转移猜测
  27. 第8节 包纳天地的内存
  28. 第9节 CPU的“外交”
  29. CPU系统篇 由CPU组成完整计算机
  30. 第1节 操作系统和应用的桥梁
  31. 第2节 专用指令发挥大作用
  32. 第3节 虚拟化:逻辑还是物理?
  33. 第4节 可以信赖的计算
  34. 第5节 从一个到多个:并行
  35. 第6节 并行计算机的内存
  36. 第7节 集大成:从CPU到计算机
  37. CPU生产制造篇 从电路设计到硅晶片的实现
  38. 第1节 化设计为实物
  39. 第2节 硅晶片的由来
  40. 第3节 模拟元器件
  41. 第4节 数字元器件
  42. 第5节 交付工厂
  43. 第6节 怎样省钱 做芯片?
  44. 第7节 明天的芯片
  45. CPU家族篇 经典CPU企业和型号
  46. 第1节 从上古到战国
  47. 第2节 巨头寻踪
  48. 第3节 小而坚强
  49. 第4节 世界边缘
  50. CPU生态篇 解密软件生态
  51. 第1节 生态之重
  52. 第2节 开发者的号角
  53. 第3节 解决方案如何为王
  54. 第4节 生态的优点
  55. 第5节 生态的方向
  56. 中国CPU篇 “技术—市场—技术”的历史循环
  57. 第1节 CPU旧事
  58. 第2节 龙的声音
  59. 第3节 龙之生态
  60. 第4节 未来已来
  61. 推荐阅读