关于我们
书单推荐
新书推荐
|
软硬件融合——超大规模云计算架构创新之路 读者对象:云计算,架构,软硬件,融合,创新,优化,计算机体系所有技术人员
物联网、大数据以及人工智能等新兴技术,推动着云计算持续快速发展,底层硬件越来越无法满足上层软件的发展和迭代。本书通过探寻软硬件的技术本质,寻找能够结合软件灵活性和硬件高效性的解决方法。帮助有软件背景的读者更深刻地认识硬件,加深对软硬件之间联系的理解,并且更好地驾驭硬件;同时也帮助有硬件背景的读者,有一个更全面的视角,更加宏观地看待问题,理解需求、产品、系统、架构等多方面问题的权衡。本书共9章内容:第1章介绍了云计算面临的底层技术挑战,接着第2、3章介绍了软硬件相关的概念和计算机基础知识,并引出了软硬件融合的概念。第4~7章分别介绍了软硬件融合的四类技术:软硬件接口、算法加速和任务卸载、虚拟化的硬件加速、异构计算。第8章介绍应用这些技术的综合案例。第9章则是具体实现方面的思考。本书立意新颖,结合业界最新案例,内容从浅入深,并且展望未来。帮助广大互联网及IT行业的软硬件工程师,更好地理解软件、硬件以及软硬件之间的内在联系,也可以作为计算机相关专业本科高年级以及研究生的技术拓展读物。
黄朝波,芯片及互联网行业十年以上工作经验,UCloud芯片及硬件研发负责人。曾在Marvell从事ARMv7/v8架构高性能多核CPU设计和验证,以及Startup公司Simplight从事自主多线程处理器及4G LTE基带SOC芯片设计。物联网公司创业经历,技术负责人,负责从硬件到软件再到云端平台的研发工作。本科毕业于西北工业大学,研究生毕业于国防科技大学,在科大学习期间有幸参与“飞腾”处理器项目研发。
引言 .......................................................................................................................................................... 1
第1 章 云计算底层软硬件 ................................................................................................................... 8 1.1 云计算概述 ............................................................................................................................... 8 1.1.1 云计算的概念 ................................................................................................................ 8 1.1.2 IaaS、PaaS 和SaaS ....................................................................................................... 9 1.2 IaaS 层核心服务..................................................................................................................... 10 1.2.1 计算类服务 .................................................................................................................. 11 1.2.2 存储类服务 .................................................................................................................. 13 1.2.3 网络类服务 .................................................................................................................. 16 1.2.4 IaaS 层服务总结 .......................................................................................................... 18 1.3 云计算的特点 ......................................................................................................................... 19 1.3.1 更大的规模 .................................................................................................................. 19 1.3.2 更“大”的数据 .......................................................................................................... 20 1.3.3 更多的租户 .................................................................................................................. 21 1.3.4 更复杂的网络 .............................................................................................................. 22 1.3.5 安全问题无处不在 ...................................................................................................... 24 1.3.6 面向特定应用场景的云计算服务 .............................................................................. 26 1.3.7 服务接口的兼容性和通用性 ...................................................................................... 27 1.4 底层软硬件挑战 ..................................................................................................................... 28 1.4.1 业务异构加速 .............................................................................................................. 28 1.4.2 工作任务卸载 .............................................................................................................. 29 1.4.3 软硬件接口的标准化和灵活性 .................................................................................. 30 1.4.4 硬件处理的虚拟化和个性化 ...................................................................................... 31 1.4.5 业务和管理物理分离 .................................................................................................. 32 1.4.6 硬件的功能扩展 .......................................................................................................... 33 1.4.7 让硬件快速迭代 .......................................................................................................... 33 1.4.8 硬件高可用 .................................................................................................................. 34 1.5 总结 ....................................................................................................................................... 34 第2 章 软硬件融合综述 ..................................................................................................................... 36 2.1 软硬件基本概念 ..................................................................................................................... 36 2.1.1 软件和硬件 .................................................................................................................. 36 2.1.2 FPGA、ASIC 和SoC .................................................................................................. 37 2.1.3 硬件加速原理 .............................................................................................................. 40 2.2 软硬件划分 ............................................................................................................................. 41 2.2.1 三个维度 ...................................................................................................................... 41 2.2.2 综合分析 ...................................................................................................................... 44 2.2.3 平台选择 ...................................................................................................................... 45 2.3 软硬件协作 ............................................................................................................................. 46 2.3.1 多平台混合架构 .......................................................................................................... 46 2.3.2 软硬件平台的协作 ...................................................................................................... 49 2.3.3 软硬件平台的交互 ...................................................................................................... 51 2.4 软硬件融合 ............................................................................................................................. 52 2.4.1 软硬件融合的概念 ...................................................................................................... 52 2.4.2 软硬件融合的特点 ...................................................................................................... 54 2.4.3 软硬件融合技术 .......................................................................................................... 55 第3 章 计算机体系结构基础 ............................................................................................................. 57 3.1 计算机原理 ............................................................................................................................. 57 3.1.1 处理器架构:从冯·诺依曼架构到RISC-V ............................................................ 57 3.1.2 内存地址:从寻址模式到MMU ............................................................................... 61 3.1.3 I/O:从CPU 中断到DMA ........................................................................................ 65 3.1.4 多核互连:从传统总线到网状总线 .......................................................................... 66 3.1.5 服务器板级架构 .......................................................................................................... 69 3.2 存储 ....................................................................................................................................... 71 3.2.1 缓存和存储分层结构 .................................................................................................. 71 3.2.2 本地存储:磁盘分区和逻辑/物理卷 ......................................................................... 74 3.2.3 分布式存储:GFS 和存储的“温度” ...................................................................... 76 3.3 网络 ....................................................................................................................................... 79 3.3.1 基础物理网络:分层和拓扑 ...................................................................................... 79 3.3.2 虚拟网络:VLAN 和VxLAN .................................................................................... 83 3.3.3 软件定义网络:从OpenFlow 到P4 .......................................................................... 87 3.4 虚拟化 ................................................................................................................................... 93 3.4.1 虚拟化的层次、定义和分类 ...................................................................................... 93 3.4.2 CPU 虚拟化:从软件模拟到完全硬件 ..................................................................... 96 3.4.3 内存虚拟化:影子页表和EPT .................................................................................. 99 3.4.4 I/O 设备虚拟化:从软件模拟到SR-IOV ............................................................... 100 3.4.5 容器虚拟化:Docker 和Kubernetes 介绍 ............................................................... 103 第4 章 软硬件接口 ........................................................................................................................... 105 4.1 软硬件接口概述 ................................................................................................................... 105 4.1.1 软硬件接口定义 ........................................................................................................ 106 4.1.2 生产者-消费者模型 .................................................................................................. 109 4.1.3 用户态的PMD:DPDK 和SPDK ........................................................................... 113 4.2 总线互连............................................................................................................................... 116 4.2.1 AMBA 总线 ............................................................................................................... 116 4.2.2 片上网络NoC 总线 .................................................................................................. 120 4.2.3 片间高速总线PCIe 及SR-IOV ................................................................................ 123 4.2.4 对称的缓存一致性总线CCIX ................................................................................. 128 4.2.5 非对称的缓存一致性总线CXL ............................................................................... 132 4.2.6 总线互连总结 ............................................................................................................ 136 4.3 通用接口Virtio .................................................................................................................... 139 4.3.1 Virtio 寄存器 ............................................................................................................. 139 4.3.2 Virtqueue 交互队列 ................................................................................................... 141 4.3.3 Virtio 交互 ................................................................................................................. 143 4.3.4 总结 ............................................................................................................................ 144 4.4 高速网络接口RDMA .......................................................................................................... 146 4.4.1 基本概念 .................................................................................................................... 146 4.4.2 RoCE 分层 ................................................................................................................. 147 4.4.3 RDMA 接口 ............................................................................................................... 148 4.4.4 RDMA 总结 ............................................................................................................... 149 4.5 高速存储接口NVMe ........................................................................................................... 150 4.5.1 NVMe 概述................................................................................................................ 150 4.5.2 NVMe 寄存器 ............................................................................................................ 151 4.5.3 NVMe 队列................................................................................................................ 153 4.5.4 NVMe 命令结构 ........................................................................................................ 155 4.5.5 网络存储接口NVMeoF ........................................................................................... 160 4.5.6 NVMe 及NVMeoF 总结 .......................................................................................... 162 4.6 软硬件接口总结 ................................................................................................................... 163 4.6.1 接口分层 .................................................................................................................... 163 4.6.2 接口共享 .................................................................................................................... 163 第5 章 算法加速和任务卸载 ........................................................................................................... 165 5.1 基本概念............................................................................................................................... 165 5.1.1 硬件加速 .................................................................................................................... 166 5.1.2 硬件处理模块 ............................................................................................................ 167 5.1.3 算法加速和任务卸载的概念 .................................................................................... 169 5.2 算法加速............................................................................................................................... 171 5.2.1 加密算法加速 ............................................................................................................ 171 5.2.2 压缩算法加速 ............................................................................................................ 176 5.2.3 数据冗余算法加速 .................................................................................................... 181 5.2.4 正则表达式算法加速 ................................................................................................ 183 5.2.5 加速器性能设计原则 ................................................................................................ 185 5.3 任务卸载............................................................................................................................... 186 5.3.1 任务卸载模型 ............................................................................................................ 186 5.3.2 IPsec 卸载 .................................................................................................................. 188 5.3.3 虚拟网络卸载 ............................................................................................................ 190 5.3.4 远程存储卸载 ............................................................................................................ 192 5.3.5 虚拟化卸载 ................................................................................................................ 194 5.4 算法加速和任务卸载总结 ................................................................................................... 197 5.4.1 算法加速是基础 ........................................................................................................ 197 5.4.2 任务卸载是多系统协作 ............................................................................................ 199 第6 章 虚拟化硬件加速 ................................................................................................................... 203 6.1 基本概念............................................................................................................................... 203 6.1.1 软硬件中的抽象 ........................................................................................................ 204 6.1.2 虚拟化抽象 ................................................................................................................ 205 6.1.3 虚拟化模型 ................................................................................................................ 207 6.1.4 虚拟化加速的必要性 ................................................................................................ 210 6.2 虚拟化的硬件处理 ............................................................................................................... 211 6.2.1 流水线处理 ................................................................................................................ 211 6.2.2 虚拟化映射 ................................................................................................................ 215 6.2.3 缓存机制 .................................................................................................................... 219 6.2.4 通用虚拟化流水线 .................................................................................................... 221 6.3 网络虚拟化处理 ................................................................................................................... 222 6.3.1 包处理用于网络虚拟化 ............................................................................................ 222 6.3.2 定制的网络包处理 .................................................................................................... 223 6.3.3 ASIC 软件可编程包处理 .......................................................................................... 224 6.3.4 FPGA 硬件可编程包处理 ......................................................................................... 227 6.3.5 案例:Mellanox FlexFlow ........................................................................................ 229 6.3.6 网络包处理总结 ........................................................................................................ 230 6.4 存储虚拟化处理 ................................................................................................................... 231 6.4.1 分布式存储Ceph ...................................................................................................... 231 6.4.2 以事务为单位的存储处理 ........................................................................................ 236 6.4.3 远程存储虚拟化加速 ................................................................................................ 238 6.4.4 本地存储虚拟化加速 ................................................................................................ 241 6.5 虚拟化硬件加速总结 ........................................................................................................... 243 6.5.1 灵活的高性能流水线 ................................................................................................ 243 6.5.2 高性能缓存机制 ........................................................................................................ 244 6.5.3 可软件编程、通用、数据流驱动的数据处理引擎 ................................................ 244 6.5.4 虚拟化硬件加速的意义 ............................................................................................ 246 6.5.5 其他虚拟化加速场景 ................................................................................................ 246 第7 章 异构加速 ............................................................................................................................... 247 7.1 异构计算概述 ....................................................................................................................... 247 7.1.1 基本概念(并行计算、异构计算) ........................................................................ 247 7.1.2 典型案例 .................................................................................................................... 249 7.1.3 性能约束和优化 ........................................................................................................ 250 7.1.4 易用性思考 ................................................................................................................ 251 7.2 GPU 和CUDA ..................................................................................................................... 252 7.2.1 GPU 和CUDA 概念 ................................................................................................. 252 7.2.2 GPU 硬件架构 ........................................................................................................... 253 7.2.3 CUDA 编程模型 ....................................................................................................... 259 7.3 OpenCL 和FPGA 异构计算 ................................................................................................ 264 7.3.1 OpenCL ...................................................................................................................... 264 7.3.2 Xilinx SDAccel .......................................................................................................... 270 7.3.3 英特尔加速栈 ............................................................................................................ 273 7.4 DSA ..................................................................................................................................... 275 7.4.1 DSA 发展背景 ........................................................................................................... 275 7.4.2 DSA 典型领域:DNN .............................................................................................. 278 7.4.3 ASIC 实现:谷歌TPU ............................................................................................. 281 7.4.4 FPGA 实现:微软Catapult ...................................................................................... 284 7.4.5 Chiplet 实现:OCP ODSA ....................................................................................... 287 7.5 异构加速计算总结 ............................................................................................................... 289 7.5.1 平台选择(GPU、FPGA、ASIC/DSA) ................................................................ 290 7.5.2 异构计算加速优化 .................................................................................................... 291 第8 章 云计算体系结构趋势 ........................................................................................................... 293 8.1 概述 ..................................................................................................................................... 293 8.2 业务和管理分离 ................................................................................................................... 294 8.2.1 虚拟化视角:I/O 及管理的卸载 .............................................................................. 294 8.2.2 体系结构视角:以数据为中心 ................................................................................ 297 8.2.3 Nitro 系统 .................................................................................................................. 300 8.2.4 Mellanox Bluefield DPU ............................................................................................ 302 8.2.5 总结 ............................................................................................................................ 303 8.3 业务的异构加速 ................................................................................................................... 304 8.3.1 业务加速概述 ............................................................................................................ 304 8.3.2 DSA 加速:谷歌TPU 服务 ..................................................................................... 305 8.3.3 FPGA 加速:FaaS .................................................................................................... 306 8.3.4 异构计算架构演进 .................................................................................................... 308 8.4 存储的加速和定制 ............................................................................................................... 309 8.4.1 存储概述 .................................................................................................................... 309 8.4.2 热存储服务器:Xilinx NVMeoF 参考设计 ............................................................ 311 8.4.3 机架级冷存储:微软Pelican ................................................................................... 312 8.5 网络可编程和性能优化 ....................................................................................................... 314 8.5.1 数据中心网络综述 .................................................................................................... 314 8.5.2 数据面编程交换芯片 ................................................................................................ 317 8.5.3 高性能网络优化 ........................................................................................................ 318 8.6 硬件定制............................................................................................................................... 324 8.6.1 硬件定制概述 ............................................................................................................ 324 8.6.2 亚马逊的硬件定制 .................................................................................................... 325 8.6.3 OCP 开放计算项目 ................................................................................................... 327 第9 章 融合的系统 ........................................................................................................................... 329 9.1 软硬件融合系统栈 ............................................................................................................... 329 9.1.1 系统边界:多数据中心 ............................................................................................ 329 9.1.2 数据中心的系统堆栈 ................................................................................................ 330 9.2 分层的系统实现 ................................................................................................................... 332 9.2.1 迭代的系统 ................................................................................................................ 332 9.2.2 分域的硬件平台 ........................................................................................................ 333 9.2.3 不同层次的实现 ........................................................................................................ 334 9.2.4 软硬件协同设计 ........................................................................................................ 335 9.3 深层次开放合作 ................................................................................................................... 336 9.3.1 软硬件的距离越来越大 ............................................................................................ 336 9.3.2 互联网公司自研芯片的优劣势 ................................................................................ 336 9.3.3 深层次的开放合作 .................................................................................................... 337 参考文献 .............................................................................................................................................. 338
你还可能感兴趣
我要评论
|