热搜关键词: 射频电路分析伺服控制人工智能储能

pdf

计算机组成与设计:硬件软件接口 RISC-V版

  • 1星
  • 2022-02-21
  • 206.36MB
  • 需要1积分
  • 73次下载
  • favicon收藏
  • rep举报
  • free评论
标签: riscv

riscv

本书由2017年图灵奖得主Patterson和Hennessy共同撰写,是计算机体系结构领域的经典书籍,强调软硬件协同设计及其对性能的影响。本书采用开源的RISC-V指令系统体系结构,  讲解硬件技术、汇编语言、算术运算、流水线、存储层次、I/O以及并行处理器。新内容涵盖平板电脑、云基础设施、ARM(移动计算设备)以及x86(云计算)体系结构,新实例包括Intel  Core  i7、ARM  Cortex-A53以及NVIDIA  Fermi  GPU。本书适合计算机体系结构领域的专业技术人员参考,也适合高等院校计算机相关专业的学生阅读。 

目录:

出版者的话 

赞誉 

译者序 

前言 

作者简介 

第1章  计算机抽象及相关技术    1 

1.1  引言    1 

1.1.1  传统的计算应用分类及其特点    2 

1.1.2  欢迎来到后PC时代    3 

1.1.3  你能从本书中学到什么    4 

1.2  计算机体系结构中的8个伟大思想    6 

1.2.1  面向摩尔定律的设计    6 

1.2.2  使用抽象简化设计    7 

1.2.3  加速经常性事件    7 

1.2.4  通过并行提高性能    7 

1.2.5  通过流水线提高性能    7 

1.2.6  通过预测提高性能    7 

1.2.7  存储层次    7 

1.2.8  通过冗余提高可靠性    7 

1.3  程序表象之下    8 

1.4  箱盖后的硬件    10 

1.4.1  显示器    11 

1.4.2  触摸屏    12 

1.4.3  打开机箱    13 

1.4.4  数据安全    16 

1.4.5  与其他计算机通信    16 

1.5  处理器和存储制造技术    17 

1.6  性能    20 

1.6.1  性能的定义    21 

1.6.2  性能的度量    23 

1.6.3  CPU性能及其度量因素    24 

1.6.4  指令性能    25 

1.6.5  经典的CPU性能公式    26 

1.7  功耗墙    28 

1.8  沧海巨变:从单处理器向多处理器转变    30 

1.9  实例:评测Intel  Core  i7    32 

1.9.1  SPEC  CPU基准评测程序    33 

1.9.2  SPEC功耗基准评测程序    34 

1.10  谬误与陷阱    35 

1.11  本章小结    37 

1.12  历史视角和拓展阅读    38 

1.13  练习    38 

第2章  指令:计算机的语言    43 

2.1  引言    43 

2.2  计算机硬件的操作    45 

2.3  计算机硬件的操作数    47 

2.3.1  存储器操作数    48 

2.3.2  常数或立即数操作数    51 

2.4  有符号数与无符号数    52 

2.5  计算机中的指令表示    57 

2.6  逻辑操作    62 

2.7  用于决策的指令    65 

2.7.1  循环    66 

2.7.2  边界检查的简便方法    67 

2.7.3  case/switch语句    68 

2.8  计算机硬件对过程的支持    68 

2.8.1  使用更多的寄存器    69 

2.8.2  嵌套过程    71 

2.8.3  在栈中为新数据分配空间    73 

2.8.4  在堆中为新数据分配空间    74 

2.9  人机交互    76 

2.10  对大立即数的RISC-V编址和寻址    79 

2.10.1  大立即数    79 

2.10.2  分支中的寻址    80 

2.10.3  RISC-V寻址模式总结    82 

2.10.4  机器语言译码    83 

2.11    指令与并行性:同步    85 

2.12  翻译并启动程序    87 

2.12.1  编译器    87 

2.12.2  汇编器    87 

2.12.3  链接器    89 

2.12.4  加载器    91 

2.12.5  动态链接库    91 

2.12.6  启动Java程序    93 

2.13  以C排序程序为例的汇总整理    94 

2.13.1  swap过程    94 

2.13.2  sort过程    95 

2.14  数组与指针    100 

2.14.1  用数组实现clear    100 

2.14.2  用指针实现clear    101 

2.14.3  比较两个版本的clear    102 

2.15  高级专题:编译C语言和解释Java语言    102 

2.16  实例:MIPS指令    103 

2.17  实例:x86指令    104 

2.17.1  Intel  x86的演变    104 

2.17.2  x86寄存器和寻址模式    106 

2.17.3  x86整数操作    107 

2.17.4  x86指令编码    109 

2.17.5  x86总结    110 

2.18  实例:RISC-V指令系统的剩余部分    111 

2.19  谬误与陷阱    112 

2.20  本章小结    113 

2.21  历史视角和扩展阅读    115 

2.22  练习    115 

第3章  计算机的算术运算    121 

3.1  引言    121 

3.2  加法和减法    121 

3.3  乘法    124 

3.3.1  串行版的乘法算法及其硬件实现    124 

3.3.2  带符号乘法    127 

3.3.3  快速乘法    127 

3.3.4  RISC-V中的乘法    127 

3.3.5  总结    128 

3.4  除法    128 

3.4.1  除法算法及其硬件实现    128 

3.4.2  有符号除法    131 

3.4.3  快速除法    131 

3.4.4  RISC-V中的除法    132 

3.4.5  总结    132 

3.5  浮点运算    133 

3.5.1  浮点表示    134 

3.5.2  例外和中断    135 

3.5.3  IEEE  754浮点数标准    135 

3.5.4  浮点加法    138 

3.5.5  浮点乘法    141 

3.5.6  RISC-V中的浮点指令    144 

3.5.7  精确算术    148 

3.5.8  总结    150 

3.6  并行性与计算机算术:子字并行    151 

3.7  实例:x86中的SIMD扩展和高级向量扩展    151 

3.8  加速:子字并行和矩阵乘法    153 

3.9  谬误与陷阱    155 

3.10  本章小结    158 

3.11  历史视角和拓展阅读    159 

3.12  练习    159 

第4章  处理器    163 

4.1  引言    163 

4.1.1  一种基本的RISC-V实现    164 

4.1.2  实现概述    164 

4.2  逻辑设计的一般方法    166 

4.3  建立数据通路    169 

4.4  一个简单的实现方案    175 

4.4.1  ALU控制    175 

4.4.2  设计主控制单元    176 

4.4.3  数据通路操作    180 

4.4.4  控制的结束    182 

4.4.5  为什么现在不使用单周期实现    182 

4.5  流水线概述    183 

4.5.1  面向流水线的指令系统设计    187 

4.5.2  流水线冒险    187 

4.5.3  总结    193 

4.6  流水线数据通路和控制    194 

4.6.1  流水线的图形化表示    203 

4.6.2  流水线控制    205 

4.7  数据冒险:前递与停顿    208 

4.8  控制冒险    218 

4.8.1  假设分支不发生    218 

4.8.2  缩短分支延迟    219 

4.8.3  动态分支预测    221 

4.8.4  流水线总结    223 

4.9  例外    223 

4.9.1  RISC-V体系结构中如何处理例外    224 

4.9.2  流水线实现中的例外    225 

4.10  指令间的并行性    228 

4.10.1  推测的概念    229 

4.10.2  静态多发射    230 

4.10.3  动态多发射处理器    234 

4.10.4  高级流水线和能效    237 

4.11  实例:ARM  Cortex-A53和Intel  Core  i7流水线结构    238 

4.11.1  ARM  Cortex-A53    238 

4.11.2  Intel  Core  i7  920    240 

4.11.3  Intel  Core  i7处理器的性能    242 

4.12  加速:指令级并行和矩阵乘法    243 

4.13  高级专题:数字设计概述――使用硬件设计语言进行流水线建模以及更多流水线示例    246 

4.14  谬误与陷阱    246 

4.15  本章小结    247 

4.16  历史视角和拓展阅读    247 

4.17  练习    247 

第5章  大而快:层次化存储    258 

5.1  引言    258 

5.2  存储技术    262 

5.2.1  SRAM存储技术    262 

5.2.2  DRAM存储技术    262 

5.2.3  闪存    264 

5.2.4  磁盘    264 

5.3  cache基础    266 

5.3.1  cache访问    268 

5.3.2  处理cache失效    272 

5.3.3  处理写操作    273 

5.3.4  cache实例:Intrinsity  FastMATH处理器    275 

5.3.5  总结    276 

5.4  cache的性能评估和改进    277 

5.4.1  使用更为灵活的替换策略降低cache失效率    279 

5.4.2  在cache中查找数据块    283 

5.4.3  选择替换的数据块    284 

5.4.4  使用多级cache减少失效代价    285 

5.4.5  通过分块进行软件优化    287 

5.4.6  总结    291 

5.5  可靠的存储器层次    291 

5.5.1  失效的定义    291 

5.5.2  纠正1位错、检测2位错的汉明编码    293 

5.6  虚拟机    296 

5.6.1  虚拟机监视器的必备条件    297 

5.6.2  指令系统体系结构(缺乏)对虚拟机的支持    297 

5.6.3  保护和指令系统体系结构    298 

5.7  虚拟存储    298 

5.7.1  页的存放和查找    301 

5.7.2  缺页失效    303 

5.7.3  支持大虚拟地址空间的虚拟存储    304 

5.7.4  关于写    305 

5.7.5  加快地址转换:TLB    306 

5.7.6  Intrinsity  FastMATH  TLB    307 

5.7.7  集成虚拟存储、TLB和cache    309 

5.7.8  虚拟存储中的保护    311 

5.7.9  处理TLB失效和缺页失效    312 

5.7.10  总结    314 

5.8  存储层次结构的一般框架    315 

5.8.1  问题一:块可以被放在何处    315 

5.8.2  问题二:如何找到块    316 

5.8.3  问题三:当cache发生失效时替换哪一块    317 

5.8.4  问题四:写操作如何处理    317 

5.8.5  3C:一种理解存储层次结构的直观模型    318 

5.9  使用有限状态自动机控制简单的cache    320 

5.9.1  一个简单的cache    320 

5.9.2  有限状态自动机    321 

5.9.3  使用有限状态自动机作为简单的cache控制器    322 

5.10  并行和存储层次结构:cache一致性    324 

5.10.1  实现一致性的基本方案    325 

5.10.2  监听协议    325 

5.11  并行与存储层次结构:廉价磁盘冗余阵列    327 

5.12  高级专题:实现缓存控制器    327 

5.13  实例:ARM  Cortex-A53和Intel  Core  i7的存储层次结构    327 

5.14  实例:RISC-V系统的其他部分和特殊指令    331 

5.15  加速:cache分块和矩阵乘法    331 

5.16  谬误与陷阱    333 

5.17  本章小结    336 

5.18  历史视角和拓展阅读    337 

5.19  练习    337 

第6章  并行处理器:从客户端到云    348 

6.1  引言    348 

6.2  创建并行处理程序的难点    350 

6.3  SISD、MIMD、SIMD、SPMD和向量机    354 

6.3.1  x86中的SIMD:多媒体扩展    355 

6.3.2  向量机    355 

6.3.3  向量与标量    356 

6.3.4  向量与多媒体扩展    357 

6.4  硬件多线程    359 

6.5  多核及其他共享内存多处理器    362 

6.6  GPU简介    365 

6.6.1  NVIDIA  GPU体系结构简介    366 

6.6.2  NVIDIA  GPU存储结构    367 

6.6.3  对GPU的展望    368 

6.7  集群、仓储级计算机和其他消息传递多处理器    370 

6.8  多处理器网络拓扑简介    374 

6.9  与外界通信:集群网络    376 

6.10  多处理器测试基准和性能模型    377 

6.10.1  性能模型    379 

6.10.2  Roofline模型    380 

6.10.3  两代Opteron的比较    381 

6.11  实例:评测Intel  Core  i7  960  和NVIDIA  Tesla  GPU的Roofline模型    384 

6.12  加速:多处理器和矩阵乘法    388 

6.13  谬误与陷阱    390 

6.14  本章小结    391 

6.15  历史视角和拓展阅读    393 

6.16  练习    394 

附录A  逻辑设计基础    402 

术语表    460 

网络内容 

附录B  图形处理单元 

附录C  将控制映射至硬件 

附录D  精简指令系统体系结构计算机 

扩展阅读 

展开预览

推荐帖子 最新更新时间:2023-06-07 19:56

【得捷电子Follow me第1期】+ 任务4:实现定位功能
本帖最后由 ly87802541 于 2023-6-7 18:33 编辑     该说不说,但凡由seeed出品或者是seeed社区举办的有关活动都是十分良心,当然得捷电子和ee论坛也从未令人失望过。这次基于树莓派picow开发板的扩展任务和测试评估活动,竟然还提供了GPS导航定位系统模块,这可以获取到定位数据和GPS授时时间等数据信息。   本次所提供的GPS导航定
ly87802541 Digi-Key得捷电子技术专区
在树莓派4上安装 openwrt
openwrt         OpenWrt镜像:https://archive.openwrt.org/releases/22.03.2/targets/bcm27xx/bcm2711/openwrt-22.03.2-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz         OpenWrt工具链:https://archive.openwrt.
树莓派开发者 综合技术交流
请教一个对我来说很有难度的问题,请老师们帮忙指点一下
本帖最后由 深圳小花 于 2021-10-31 12:47 编辑 请教一个对我来说很有难度的问题,请老师们帮忙指点一下,如下图所示 图中,(1)红色图标8处是单片机SPI输出的矩形波,           (2)TX CON2 处接一线圈用于读写T5557卡          (3)红色图标6、7两处的电压信号被送往单片机的VC电压比较器 输出 矩形波后 再送往 
深圳小花 单片机
请教一下125Kz低频卡的读写问题
T5557卡的数据手册中说:   T5557 把读卡器命令序列前两位作为操作码,有三类有效的操作码: a) ”10”、”11”,对页 1 和页 0 进行块读和直接进入操作    请问这个直接进入操作是什么意思,难道还有不直接进入操作的模式 b) “00”,复位操作,开始 POR 循环。 c) “01”,所有测试模式的写操作        请问 写操作就是写操作,为
深圳小花 单片机
关于计量芯片的问题
请问一下   三相电能计量芯片  ATT7028  ,  它是如何知道  (1)它的电压输入引脚 位 输入的  0.5V  对应的是220V  而不是230V  (2)它的电流输入引脚  0.1V 对应 的是1A 的电流,0.15V 对应的是 2A 的电流?                                                             
深圳小花 单片机
当TTL电路驱动COMS电路时,TTL输出的高电平低于COMS电路的最低高电平时上拉电阻的作用
本帖最后由 深圳小花 于 2021-4-14 14:43 编辑 看到一个资料上说   当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。   输出的高电平应该是由TTL的高电平和上拉电平的下引脚处的高电平中,较低的电平来决定 最终的输出电压呀,如果 前
深圳小花 单片机
请高手老师帮忙指导一下这个电路,谢谢。
一个T5577卡(125KHZ工作频率)电路图,如下图所示,我大致分析了一下,不知道对不对,请大家  帮忙指正一下: 1、C21和R17组成选频网络,但是 根据它的参数算了一下所选频率为:F=1/(2*3.1415926*5000*2.7*10-9)=11782HZ  为什么同 该卡实际的125KHZ的 通信频率差距这么大? 2、D4 整流,C22 滤波,生成检波的包络线  功能到这儿
深圳小花 RF/无线
无线数传模块应该选择哪一种?
我们现场有一些传感器,传感器通过485线接出。 我们想在现场布置一个无线网络,用于把这些传感器的数据传输到现场监控室的工控机上。 现场有一些大型设备,或者我们的传感器安装在现场的车间里面。 也就是说传感器到监控室存在一些障碍物。 请问对于上述这种情况,组建无线网络的话,我们应该选择zigbee、433MHz还是170MHz的无线数传模块?还是有其他更好的选择。 现场最远距离大概在3公里以内
菩萨也种菜 RF/无线

评论

200111231517
非常好用,感谢了啊
2022-10-18 23:41:45
司马明月
好资料,认真学习,天天向上。
2022-03-04 22:22:18
登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
×