关于本书的内容有任何问题,请联系 祝智敏
第 一章 计算机体系结构简介 1 1.1 计算机的过去,现在和未来 1 1.1.1 计算机的历史回顾 1 1.1.2 计算机的发展现状 4 1.1.3 计算机的未来趋势 8 1.2 计算机体系结构的定义 13 1.2.1 ISA 14 1.2.2 微架构 16 1.2.3 硬件实现 18 1.3 主流ISA介绍 18 1.3.1 ISA的诞生 19 1.3.2 CISC架构指令集 19 1.3.3 RISC架构指令集 21 1.4 案例学习:平头哥C910处理器介绍 27 1.4.1 平头哥公司介绍 27 1.4.2 玄铁C910简介 28 1.4.3 玄铁C910的处理器微架构 28 1.4.4 玄铁C910的工作模式 32 1.5 本章小结 32 第二章 指令集基本原理 34 2.1 指令集的发展历史与分类 34 2.1.1 CISC和RISC之争 35 2.1.2 指令集的分类 36 2.2 指令寻址模式 37 2.2.1 指令的组成 38 2.2.2 常见的指令寻址模式 38 2.3 数据类型与指令操作 39 2.3.1 RISC-V指令集的数据类型 39 2.3.2 指令操作分类 40 2.3.3 控制流指令 42 2.4 指令集编码 42 2.4.1 可变长度编码与固定长度编码 43 2.4.2 操作码的编码 44 2.4.3 RISC-V的指令编码 45 2.5 特权等级与CSR 46 2.5.1 特权等级 47 2.5.2 RISC-V指令集的CSR 48 2.6 指令集的ABI规定 49 2.7 案例学习:平头哥C910处理器的自定义指令 50 2.7.1 Cache指令子集 51 2.7.2 多核同步指令子集 51 2.7.3 算术运算指令子集 52 2.7.4 位操作指令子集 52 2.7.5 存储指令子集 53 2.8 本章小结 53 第三章 处理器流水线结构 55 3.1 实现RISC指令集的典型硬件结构 55 3.1.1 微架构与指令集的关系 55 3.1.2 RV32I指令集的数据通路 56 3.2 基础流水线 60 3.2.1 流水线的基本概念 60 3.2.2 基础流水线的性能分析 64 3.3 流水线冲突 66 3.3.1结构冲突(structural hazard) 66 3.3.2控制冲突(control hazard) 66 3.3.3数据冲突(data hazard) 67 3.4 前馈 69 3.5 乱序执行和超标量流水线 72 3.5.1 基础流水线的性能瓶颈 72 3.5.2 多发射(multiple issue)技术与超标量(superscalar)技术 73 3.5.3 乱序执行与动态调度 74 3.5.4 重排序缓冲区(reorder buffer,ROB) 77 3.5.5 寄存器重命名和Tomasulo算法 80 3.6 分支预测 85 3.6.1 静态预测 85 3.6.2 局部预测器 86 3.6.3 相关预测器 90 3.6.4 预测跳转地址 91 3.6.5 指令复用 94 3.6.6 预测的代价 95 3.6.7 BOOM中的分支预测器 96 3.7 指令级并行的过去与未来 102 3.8 案例学习:平头哥C910处理器的指令级并行 104 3.9 本章小结 105 第四章 计算机存储系统 107 4.1 半导体存储技术 107 4.1.1 SRAM 108 4.1.2 DRAM 108 4.1.3 flash 109 4.1.4 RRAM 111 4.1.5存储技术在计算机中的应用 111 4.2 虚拟存储(virtual memory) 112 4.2.1 虚拟存储的工作原理 112 4.2.2 保护进程 114 4.2.3 页式虚拟存储的可能结构 115 4.3 处理器与内存的速度差距:内存墙 117 4.4 缓存 118 4.4.1 缓存的概念 118 4.4.2 缓存的基本性质 119 4.5 缓存结构示例 124 4.6 缓存的性能和基本优化手段 124 4.6.1 增加缓存容量,以降低缺失率 125 4.6.2 增加路数,以降低缺失率 125 4.6.3 增加块粒度,以降低缺失率 126 4.6.4 缓存读优先于缓存写,以降低缺失惩罚 126 4.6.5 多级缓存,以降低缺失惩罚 126 4.6.6 地址翻译和缓存索引并行,以减少命中时间 127 4.7 多核处理器中的缓存一致性 128 4.7.1 缓存一致性协议的分类和比较 129 4.7.2 MSI一致性协议 131 4.8 案例学习:平头哥C910处理器的存储系统 133 4.8.1 平头哥玄铁C910的缓存层次 134 4.8.2 平头哥玄铁C910缓存优化手段 136 4.8.3 平头哥玄铁C910的虚拟内存系统 137 4.9 本章小结 139 第五章 计算机I/O原理 140 5.1 I/O概述 140 5.1.1 I/O设备 141 5.1.2 I/O接口和I/O总线 142 5.2 I/O设备与主机间的通信 145 5.2.1 处理器查询方式 145 5.2.2 中断方式 147 5.2.3 DMA方式 148 5.3 常见的I/O总线协议 151 5.3.1 PCI,PCI-X,PCI-E 151 5.3.2 SCSI,SAS,iSCSI 152 5.3.3 ATA,SATA 153 5.4 磁盘的基本原理 154 5.4.1 磁盘的经典结构 154 5.4.2 磁盘的演化 155 5.4.3 磁盘阵列 157 5.5 排队论简介 163 5.5.1 队列系统的简单抽象 163 5.5.2 队列系统的表示——Kendall表示法 164 5.5.3 Little定理 165 5.5.4 用排队论评估简单的I/O系统 165 5.6 案例学习:wujian100的USI模块 167 5.6.1 UART 169 5.6.2 SPI 170 5.6.3 I2C 172 5.7 本章小结 173 第六章 SoC系统设计 175 6.1 SoC概述 175 6.1.1 SoC简介 175 6.1.2 SoC的基本组成 176 6.1.3 SoC的优势 178 6.1.4 SoC面临的发展挑战 180 6.2 系统总线 181 6.2.1 总线概述 181 6.2.2 AMBA总线 183 6.3 SoC软硬件协同开发 189 6.3.1 SoC的软件环境 189 6.3.2 SoC的软硬件协同设计 190 6.4 案例学习:wujian100 SoC平台 195 6.5 本章小结 198 第七章 嵌入式操作系统 200 7.1 操作系统简介 200 7.1.1 操作系统的基本概念 200 7.1.2 操作系统的发展历史 201 7.1.3 嵌入式操作系统的主要特点 203 7.2 进程与保护 204 7.2.1 进程的基本概念 204 7.2.2 进程保护 207 7.3 进程调度 209 7.3.1 单处理器进程调度 210 7.3.2 实时调度 213 7.4 文件管理 215 7.4.1 文件系统 215 7.4.2 目录 217 7.4.3 文件 219 7.5 案例学习:在RISC-V处理器上运行Linux系统 220 7.5.1 GNU和LLVM项目 220 7.5.2 准备交叉编译环境 222 7.5.3 编译内核 223 7.5.4 根文件系统和引导程序 224 7.6 本章小结 226 第八章 体系结构仿真器实验 227 8.1 RISC-V交叉编译和仿真环境的安装与配置 227 8.1.1 实验目的 227 8.1.2 实验介绍 227 8.1.3 实验内容 229 8.2 QEMU运行裸机程序与Linux系统并调试 234 8.2.1 实验目的 234 8.2.2 实验介绍 234 8.2.3 实验内容 236 8.3 RISC-V汇编程序编程练习 247 8.3.1 实验目的 247 8.3.2 实验介绍 247 8.3.3 实验内容 250 8.4 QEMU上运行YOLO算法 254 8.4.1 实验目的 254 8.4.2 实验介绍 254 8.4.3 实验内容 259 8.5 本章小结 264 第九章 RTL级的SoC平台仿真实验 265 9.1 SMART平台基础操作实验 265 9.1.1 实验目的 265 9.1.2 实验介绍 265 9.1.3 实验内容 268 9.2 缓存操作实验 270 9.2.1 实验目的 270 9.2.2 实验介绍 270 9.2.3 实验内容 271 9.3 分支预测实验 275 9.3.1 实验目的 275 9.3.2 实验介绍 275 9.3.3 实验内容 276 9.4 YOLO综合仿真实验 278 9.4.1 实验目的 278 9.4.2 实验介绍 278 9.4.3 实验内容 281 9.5 本章小结 285 第十章 基于FPGA的SoC板级测试实验 286 10.1 wujian100平台介绍和FPGA测试 286 10.1.1 实验目的 286 10.1.2 实验介绍 286 10.1.3 实验内容 288 10.2 语音识别电子系统综合设计 295 10.2.1 实验目的 295 10.2.2 实验介绍 295 10.2.3 实验内容 301 10.3 本章小结 303
本书采用“项目引领、任务驱动”模式,系统构建AIGC 全栈应用技能体系。本书共设11个递进式实战项目:项目1初...
本书共11个项目,详细介绍人工智能的相关知识,内容包括人工智能的前世今生、人工智能基础、人工智能编程语言Pyt...
本书从初学者的角度出发,以通俗易懂的语言详细介绍HTML5、CSS3和JavaScript的相关知识,以及如何...
Illustrator是一款功能强大的矢量图形处理和编辑软件。本书对Illustrator 2021的基本操作...
本书全面、系统地介绍CorelDRAW 2022的基本操作方法和矢量图的制作技巧,包括CorelDRAW入门知...
我要评论