軟硬件融合 — 超大規模雲計算架構創新之路

黃朝波

買這商品的人也買了...

商品描述

物聯網、大數據以及人工智能等新興技術,推動著雲計算持續快速發展,底層硬件越來越無法滿足上層軟件的發展和迭代。本書通過探尋軟硬件的技術本質,尋找能夠結合軟件靈活性和硬件高效性的解決方法。幫助有軟件背景的讀者更深刻地認識硬件,加深對軟硬件之間聯系的理解,並且更好地駕馭硬件;同時也幫助有硬件背景的讀者,有一個更全面的視角,更加宏觀地看待問題,理解需求、產品、系統、架構等多方面問題的權衡。本書共9章內容:第1章介紹了雲計算面臨的底層技術挑戰,接著第2、3章介紹了軟硬件相關的概念和電腦基礎知識,並引出了軟硬件融合的概念。第4~7章分別介紹了軟硬件融合的四類技術:軟硬件接口、算法加速和任務卸載、虛擬化的硬件加速、異構計算。第8章介紹應用這些技術的綜合案例。第9章則是具體實現方面的思考。本書立意新穎,結合業界最新案例,內容從淺入深,並且展望未來。幫助廣大互聯網及IT行業的軟硬件工程師,更好地理解軟件、硬件以及軟硬件之間的內在聯系,也可以作為電腦相關專業本科高年級以及研究生的技術拓展讀物。

作者簡介

黃朝波
芯片及互聯網行業十年以上工作經驗,UCloud芯片及硬件研發負責人。
曾在Marvell從事ARMv7/v8架構高性能多核CPU設計和驗證,在Startup公司Simplight從事自主多線程處理器及4G LTE基帶SOC芯片設計。
物聯網公司創業經歷,技術負責人,負責從硬件、軟件到雲平台的研發工作。本科畢業於西北工業大學,研究生畢業於國防科技大學,在國防科技大學學習期間有幸參與“飛騰”處理器項目研發。

目錄大綱

第1章云計算底層軟硬件
1.1雲計算概述
1.1.1雲計算的概念
1.1.2 IaaS、PaaS和SaaS
1.2 IaaS層核心服務
1.2.1計算類服務
1.2.2存儲類服務
1.2.3網絡類服務
1.2.4 IaaS層服務總結
1.3雲計算的特點
1.3.1更大的規模
1.3.2更“大”的數據
1.3.3更多的租戶
1.3.4更複雜的網絡
1.3.5安全問題無處不在
1.3.6面向特定應用場景的雲計算服務
1.3.7服務接口的兼容性和通用性
1.4底層軟硬件挑戰
1.4.1業務異構加速
1.4.2工作任務卸載
1.4.3軟硬件接口的標準化和靈活性
1.4.4硬件處理的虛擬化和個性化
1.4.5業務和管理物理分離
1.4.6硬件的功能擴展
1.4.7讓硬件快速迭代
1.4.8硬件高可用
1.5總結

第2章軟硬件融合綜述
2.1軟硬件基本概念
2.1.1軟件和硬件
2.1.2 FPGA、ASIC和SoC
2.1.3硬件加速原理
2.2軟硬件劃分
2.2.1三個維度
2.2.2綜合分析
2.2.3平台選擇
2.3軟硬件協作
2.3.1多平台混合架構
2.3.2軟硬件平台的協作
2.3.3軟硬件平台的交互
2.4軟硬件融合
2.4.1軟硬件融合的概念
2.4.2軟硬件融合的特點
2.4.3軟硬件融合技術

第3章計算機體系結構基礎
3.1計算機原理
3.1.1處理器架構:從馮·諾依曼架構到RISC-V
3.1.2內存地址:從尋址模式到MMU
3.1.3 I/O:從CPU中斷到DMA
3.1.4多核互連:從傳統總線到網狀總線
3.1.5服務器板級架構
3.2存儲
3.2.1緩存和存儲分層結構
3.2.2本地存儲:磁盤分區和邏輯/物理卷
3.2.3分佈式存儲:GFS和存儲的“溫度”
3.3網絡
3.3.1基礎物理網絡:分層和拓撲
3.3.2虛擬網絡:VLAN和VxLAN
3.3.3軟件定義網絡:從OpenFlow到P4
3.4虛擬化
3.4.1虛擬化的層次、定義和分類
3.4.2 CPU虛擬化:從軟件模擬到完全硬件
3.4.3內存虛擬化:影子頁表和EPT
3.4.4 I/O設備虛擬化:從軟件模擬到SR-IOV
3.4.5容器虛擬化:Docker和Kubernetes介紹

第4章軟硬件接口
4.1軟硬件接口概述
4.1.1軟硬件接口定義
4.1.2生產者-消費者模型
4.1.3用戶態的PMD:DPDK和SPDK
4.2總線互連
4.2.1 AMBA總線
4.2.2片上網絡NoC總線
4.2.3片間高速總線PCIe及SR-IOV
4.2.4對稱的緩存一致性總線CCIX
4.2.5非對稱的緩存一致性總線CXL
4.2.6總線互連總結
4.3通用接口Virtio
4.3.1 Virtio寄存器
4.3.2 Virtqueue交互隊列
4.3.3 Virtio交互
4.3.4總結
4.4高速網絡接口RDMA
4.4.1基本概念
4.4.2 RoCE分層
4.4. 3 RDMA接口
4.4.4 RDMA總結
4.5高速存儲接口NVMe
4.5.1 NVMe概述
4.5.2 NVMe寄存器
4.5.3 NVMe隊列
4.5.4 NVMe命令結構
4.5.5網絡存儲接口NVMeoF
4.5.6 NVMe及NVMeoF總結
4.6軟硬件接口總結
4.6.1接口分層
4.6.2接口共享

第5章算法加速和任務卸載
5.1基本概念
5.1.1硬件加速
5.1.2硬件處理模塊
5.1.3算法加速和任務卸載的概念
5.2算法加速
5.2.1加密算法加速
5.2.2壓縮算法加速
5.2.3數據冗餘算法加速
5.2.4正則表達式算法加速
5.2.5加速器性能設計原則
5.3任務卸載
5.3.1任務卸載模型
5.3.2 IPsec卸載
5.3.3虛擬網絡卸載
5.3.4遠程存儲卸載
5.3.5虛擬化卸載
5.4算法加速和任務卸載總結
5.4.1算法加速是基礎
5.4.2任務卸載是多系統協作

第6章虛擬化硬件加速
6.1基本概念
6.1.1軟硬件中的抽象
6.1.2虛擬化抽象
6.1.3虛擬化模型
6.1.4虛擬化加速的必要性
6.2虛擬化的硬件處理
6.2.1流水線處理
6.2.2虛擬化映射
6.2.3緩存機制
6.2.4通用虛擬化流水線
6.3網絡虛擬化處理
6.3.1包處理用於網絡虛擬化
6.3.2定制的網絡包處理
6.3.3 ASIC軟件可編程包處理
6.3.4 FPGA硬件可編程包處理
6.3.5案例:Mellanox FlexFlow
6.3.6網絡包處理總結
6.4存儲虛擬化處理
6.4.1分佈式存儲Ceph
6.4.2以事務為單位的存儲處理
6.4.3遠程存儲虛擬化加速
6.4.4本地存儲虛擬化加速
6.5虛擬化硬件加速總結
6.5.1靈活的高性能流水線
6.5.2高性能緩存機制
6.5.3可軟件編程、通用、數據流驅動的數據處理引擎
6.5.4虛擬化硬件加速的意義
6.5.5其他虛擬化加速場景

第7章異構加速
7.1異構計算概述
7.1.1基本概念(並行計算、異構計算)
7.1. 2典型案例
7.1.3性能約束和優化
7.1.4易用性思考
7.2 GPU和CUDA
7.2.1 GPU和CUDA概念
7.2.2 GPU硬件架構
7.2.3 CUDA編程模型
7.3 OpenCL和FPGA異構計算
7.3.1 OpenCL
7.3.2 Xilinx SDAccel
7.3.3英特爾加速棧
7.4 DSA
7.4.1 DSA發展背景
7.4.2 DSA典型領域:DNN
7.4.3 ASIC實現:谷歌TPU
7.4.4 FPGA實現:微軟Catapult
7.4.5 Chiplet實現:OCPODSA
7.5異構加速計算總結
7.5.1平台選擇(GPU、FPGA、ASIC/DSA)
7.5.2異構計算加速優化

第8章云計算體系結構趨勢
8.1概述
8.2業務和管理分離
8.2.1虛擬化視角:I/O及管理的卸載
8.2.2體系結構視角:以數據為中心
8.2.3 Nitro系統
8.2.4 Mellanox Bluefield DPU
8.2.5總結
8.3業務的異構加速
8.3.1業務加速概述
8.3.2 DSA加速:谷歌TPU服務
8.3.3 FPGA加速:FaaS
8.3.4異構計算架構演進
8.4存儲的加速和定制
8.4. 1存儲概述
8.4.2熱存儲服務器:XilinxNVMeoF參考設計
8.4.3機架級冷存儲:微軟Pelican
8.5網絡可編程和性能優化
8.5.1數據中心網絡綜述
8.5.2數據面編程交換芯片
8.5.3高性能網絡優化
8.6硬件定制
8.6.1硬件定制概述
8.6.2亞馬遜的硬件定制
8.6.3 OCP開放計算項目

第9章融合的系統
9.1軟硬件融合系統棧
9.1.1系統邊界:多數據中心
9.1.2數據中心的系統堆棧
9.2分層的系統實現
9.2.1迭代的系統
9.2.2分域的硬件平台
9.2.3不同層次的實現
9.2.4軟硬件協同設計
9.3深層次開放合作
9.3.1軟硬件的距離越來越大
9.3.2互聯網公司自研芯片的優劣勢
9.3.3深層次的開放合作
參考文獻