• RISC-V体系结构编程与实践
21年品牌 40万+商家 超1.5亿件商品

RISC-V体系结构编程与实践

若图片与书名不一致,以书名和定价为准!

80.48 6.2折 129.8 全新

库存2件

河北保定
认证卖家担保交易快速发货售后保障

作者奔跑吧Linux社区

出版社人民邮电出版社

ISBN9787115603609

出版时间2023-02

版次1

装帧平装

开本16开

纸张胶版纸

页数464页

字数99999千字

定价129.8元

货号9044659

上书时间2024-07-05

中图网旗舰店

十二年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
基本信息
书名:RISC-V体系结构编程与实践
定价:129.8元
作者:奔跑吧Linux社区
出版社:人民邮电出版社
出版日期:2023-02-01
ISBN:9787115603609
字数:745000
页码:464
版次:
装帧:平装
开本:16开
商品重量:
编辑推荐
适读人群 :本书不仅适合软件开发人员阅读,还可以作为计算机相关专业和相关培训机构的教材。                               一本书带你了解谷歌、苹果等科技巨头看好的RISC-V体系结构1.一线芯片公司工程师撰写,系统介绍RISC-V体系结构,总结常见陷阱以及项目经验2.图文并茂,用通俗易懂的语言讲述RISC-V体系结构中的疑难点3.充实理论+有趣实验,助力读者快速掌握RISC-V体系结构4.实用丰富的配套资源,随书赠送参考代码、实验环境和免费视频讲解本书主要内容:RISC-V体系结构基础知识以及香山处理器微架构实现;RISC-V实验环境的搭建;RISC-V指令集中常用指令、RISC-V函数的调用规范与栈;GNU汇编器、链接器、链接脚本和GCC内嵌汇编代码。RISC-V体系结构中的中断和异常处理;RISC-V体系结构中的内存管理、高速缓存、缓存一致性;RISC-V体系结构中的TLB管理、原子操作和内存屏障指令;RSIC-V体系结构中的压缩指令扩展;RISC-V体系结构中的虚拟化扩展;RISC-V体系结构中的可伸缩矢量指令扩展。
内容提要
本书旨在介绍RISC-V体系结构的设计和实现。本书首先介绍RISC-V体系结构的基础知识、实验环境搭建、常用指令、函数调用规范与栈,然后讲述GNU汇编器、链接器、链接脚本和GCC内嵌汇编代码,接着讨论RISC-V体系结构中的异常处理、中断、内存管理、高速缓存、缓存一致性、TLB管理、原子操作、内存屏障指令,最后阐述RSIC-V体系结构中的压缩指令扩展、虚拟化扩展等。本书不仅适合软件开发人员阅读,还可以作为计算机相关专业和相关培训机构的教材。
目录
章 RISC-V体系结构基础知识 11.1 RISC-V介绍 11.1.1 RISC-V指令集优点 11.1.2 RISC-V指令集扩展 21.1.3 RISC-V商业化发展 21.2 RISC-V体系结构介绍 31.2.1 RISC-V体系结构 31.2.2 采用RISC-V体系结构的常见处理器 31.2.3 RISC-V体系结构中的基本概念 41.2.4 SBI服务 51.3 RISC-V寄存器 61.3.1 通用寄存器 61.3.2 系统寄存器 71.3.3 U模式下的系统寄存器 81.3.4 S模式下的系统寄存器 91.3.5 M模式下的系统寄存器 111.4 香山处理器介绍 151.4.1 香山处理器体系结构 151.4.2 香山处理器的前端子系61.4.3 香山处理器的后端子系81.4.4 香山处理器的访存子系统 201.4.5 香山处理器的L2/L3高速缓存 25第 2章 搭建RISC-V实验环境 292.1 实验平台 292.1.1 QEMU 292.1.2 NEMU 302.2 搭建实验环境 312.2.1 实验2-1:输出“Welcome RISC-V!” 312.2.2 实验2-2:单步调试BenOS和MySBI 322.3 BenOS和MySBI基础实验代码解析 342.3.1 MySBI基础代码分析 342.3.2 BenOS基础代码分析 372.3.3 合并BenOS和MySBI 412.4 QEMU + RISC-V + Linux实验平台 41第3章 基础指令集 443.1 RISC-V指令集介绍 443.2 RISC-V指令编码格式 453.3 加载与存储指令 463.4 PC相对寻址 493.5 移位操作 533.6 位操作指令 553.7 算术指令 563.8 比较指令 573.9 无条件跳转指令 583.10 条件跳转指令 593.11 CSR指令 613.12 寻址范围 623.13 陷阱:为什么ret之后就进入死循环 623.14 实验 643.14.1 实验3-1:熟悉加载指令 643.14.2 实验3-2:PC相对地址寻址 643.14.3 实验3-3:memcpy函数的实现 653.14.4 实验3-4:memset函数的实现 653.14.5 实验3-5:条件跳转指令1 653.14.6 实验3-6:条件跳转指令2 663.14.7 实验3-7:子函数跳转 663.14.8 实验3-8:在汇编中实现串口输出功能 66第4章 函数调用规范与栈 674.1 函数调用规范 674.2 入栈与出栈 704.3 RISC-V栈的布局 724.3.1 不使用FP的栈布局 724.3.2 使用FP的栈布局 744.3.3 栈回溯 764.4 实验 784.4.1 实验4-1:观察栈布局 784.4.2 实验4-2:观察栈回溯 78第5章 GNU汇编器 795.1 编译流程与ELF文件 795.2 一个简单的汇编程序 825.3 汇编语法 845.3.1 注释 845.3.2 符号 845.4 常用的伪指令 855.4.1 对齐伪指令 855.4.2 数据定义伪指令 865.4.3 与函数相关的伪指令 875.4.4 与段相关的伪指令 875.4.5 与宏相关的伪指令 895.4.6 与文件相关的伪指令 915.5 RISC-V依赖特性 915.5.1 RISC-V特有的命令行选项 915.5.2 RISC-V特有的伪指令 925.6 实验 925.6.1 实验5-1:汇编语言练习—查找数 925.6.2 实验5-2:汇编语言练习—通过C语言调用汇编函数 925.6.3 实验5-3:汇编语言练习—通过汇编语言调用C函数 925.6.4 实验5-4:使用汇编伪操作实现一张表 925.6.5 实验5-5:汇编宏的使用 93第6章 链接器与链接脚本 946.1 链接器 946.2 链接脚本 956.2.1 一个简单的链接程序 956.2.2 设置入口点 966.2.3 基本概念 976.2.4 符号赋值与引用 976.2.5 当前位置计数器 986.2.6 SECTIONS命令 996.2.7 常用的内置函数 1016.3 加载重定位 1036.3.1 BenOS重定位 1036.3.2 OpenSBI和Linux内核重定位 1056.4 链接重定位与链接器松弛优化 1086.4.1 链接重定位 1086.4.2 函数跳转优化 1126.4.3 符号地址访问优化 1146.5 实验 1166.5.1 实验6-1:分析链接脚本 1166.5.2 实验6-2:输出每个段的内存布局 1166.5.3 实验6-3:加载地址不等于运行地址 1176.5.4 实验6-4:设置链接地址 1176.5.5 实验6-5:链接器松弛优化1 1176.5.6 实验6-6:链接器松弛优化2 1176.5.7 实验6-7:分析Linux 5.15内核的链接脚本 117第7章 内嵌汇编代码 1187.1 内嵌汇编代码基本用法 1187.2 案例分析 1247.3 注意事项 1287.4 实验 128第8章 异常处理 1308.1 异常处理基本概念 1308.2 与M模式相关的异常寄存器 1338.3 与S模式相关的异常寄存器 1378.4 异常上下文 1398.5 案例分析8-1:实现SBI系统调用 1428.6 案例分析8-2:BenOS的异常处理 1488.7 实验 154第9章 中断处理与中断控制器 1569.1 中断处理基本概念 1569.2 CLINT 1599.3 案例分析9-1:定时器中断 1609.4 PLIC 1649.5 案例分析9-2:串口中断 1679.6 实验 1710章 内存管理 17210.1 内存管理基础知识 17210.2 RISC-V内存管理 17810.3 物理内存属性与物理内存保护 18710.4 案例分析10-1:在BenOS里实现恒等映射 19010.5 内存管理实验 2041章 高速缓存 20711.1 为什么需要高速缓存 20711.2 高速缓存的访问 20811.3 高速缓存的工作原理 21011.4 高速缓存的映射方式 21211.5 虚拟高速缓存与物理高速缓存 21511.6 重名和同名问题 21611.7 高速缓存策略 22011.8 高速缓存的维护指令 2212章 缓存一致性 22412.1 为什么需要缓存一致性 22412.2 缓存一致性的分类 22512.3 缓存一致性的解决方案 22712.4 MESI协议 22812.5 高速缓存伪共享 23712.6 两种缓存一致性控制器 23912.7 案例分析12-1:伪共享的避免 24112.8 案例分析12-2:DMA和高速缓存的一致性 24212.9 案例分析12-3:自修改代码的一致性 24412.10 实验 2453章 TLB管理 24613.1 TLB基础知识 24713.2 TLB重名与同名问题 24913.3 ASID 25113.4 TLB管理指令 25313.5 TLB案例分析 2564章 原子操作 26114.1 原子操作介绍 26114.2 保留加载与条件存储指令 26214.3 独占内存访问工作原理 26314.4 原子内存访问操作指令 26614.5 比较并交换操作 2705章 内存屏障指令 27515.1 内存屏障指令产生的原因 27515.2 RISC-V约束条件 28015.3 RISC-V中的内存屏障指令 28415.4 RISC-V内存屏障指令移植指南 28615.5 案例分析 28815.6 模拟和测试内存屏障故障 29115.7 实验 2976章 合理使用内存屏障指令 29916.1 存储缓冲区与写内存屏障指令 30016.2 无效队列与读内存屏障指令 30516.3 内存屏障指令总结 30716.4 案例分析:Linux内核中的内存屏障指令 30816.5 实验 3157章 与操作系统相关的内容 31617.1 C语言常见陷阱 31717.2 创建进程 32017.3 简易进程调度器 32717.4 让进程运行在用户模式 33517.5 系统调用 33817.6 实现clone系统调用 34117.7 实验 3438章 可伸缩矢量计算与优化 34518.1 矢量计算基本概念 34518.2 RVV寄存器 34818.3 配置编译和运行环境 35118.4 RVV指令格式 35718.5 配置指令 35818.6 加载和存储指令 36018.7 矢量掩码指令 36918.8 矢量整型算术指令 37218.9 案例分析18-1:使用RVV指令优化strcmp函数 37718.10 案例分析18-2:RGB24转BGR24 38018.11 案例分析18-3:4 × 4矩阵乘法运算 38218.12 案例分析18-4:使用RVV内置函数 38818.13 案例分析18-5:自动矢量优化 38818.14 术语 39018.15 实验 3919章 压缩指令扩展 39319.1 RISC-V指令集的特点 39319.2 RVC支持的指令格式与指令编码 394第 20章 虚拟化扩展 39620.1 虚拟化技术介绍 39620.2 RISC-V虚拟化扩展 39920.3 RISC-V内存虚拟化 40420.4 RISC-V虚拟化扩展中的新增指令 40620.5 进入和退出虚拟机 40720.6 中断虚拟化 41020.7 案例分析20-1:进入和退出虚拟机 41220.8 案例分析20-2:建立虚拟化两阶段地址映射 41520.9 案例分析20-3:在虚拟机中实现虚拟定时器 42020.10 案例分析20-4:在VMM中加载和存储虚拟机内存地址 42220.11 案例分析20-5:在VMM中模拟串口设备 42420.12 实验 429附录A 关于RISC-V体系结构自测题的参考答案与提示 431附录B RV64I指令速查表 433附录C RV64M指令速查表 437附录D RV64常用伪指令速查表 439
作者介绍

序言

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP