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