goldjack 发表于 2024-11-29 00:06

《RISC-V 体系结构编程与实践(第2版)》阅读心得之一--概览

<p><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 很幸运获得测评《RISC-V 体系结构编程与实践(第2版)》一书的机会,得以学习RISC-V相关的技术并与大家分享。感谢电子工程世界和人民邮电出版社!</span></p>

<p style="text-align:left"> &nbsp;</p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 书归正传,我会从本书的主要内容、实验环境的搭建和RISC-V相关的知识与具体的实践等几方面分享自己的读书心得。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 今天是第一篇:概览。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 本书的作者是奔跑吧Linux社区的创始人笨叔,这本书的第一版入选了2023年度国家科学技术学术著作出版基金资助项目。审校是开发了面向世界的RISC-V体系结构创新开元平台的香山处理器团队和RISC-V发明者创立的SiFive公司。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 本书的推荐序是SiFive公司联合创始人兼首席架构师、加州大学伯克利分校研究生院教授Krste Asanovic写的,他介绍了RISC-V作为一种简单、高效、可扩展的、开源的指令集架构(ISA)的设计初衷及发展。RISC-V芯片和软件具有高性能、低功耗、灵活、可创新等特点,成千上万家公司支持着整个生态系统。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 第二版的前言告诉大家,RISC-V已经成为继X86和ARM之后的第三大主流处理器架构,受到学术界和工业界的广泛关注,并着眼于移动计算、消费电子、数据中心、边缘基础设施等应用场景。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 第一版的前言介绍了RISC-V的基本情况和作者的出发点。特别指出了本书的特色:突出动手实践、以问题为导向、基于64位处理器讲述、总结常见陷阱与项目经验。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 本书正文共21章,还有RISC-V体系结构自测题和4个附录。较为全面的介绍了RISC-V的方方面面。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; 第1章是&ldquo;RISC-V体系结构基础知识&rdquo;。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; RISC是Reduced Instruction Set Computer(精简指令集计算机)的缩写,V表示第五代。RISC-V指令集的优点:设计简洁、模块化、开源、具有丰富的生态。RISC-V指令集包含32位和64位指令集。</span></p>

<p style="text-align:left"><span style="color:#4f4f4f">&nbsp; &nbsp; &nbsp; &nbsp; RISC-V体系结构特点:</span></p>

<ol>
        <li style="text-align:left">对学术界和工业界完全开放。</li>
        <li style="text-align:left">真正适合硬件实现的指令集体系结构,而不是一个模拟或者二进制翻译的指令集体系结构。</li>
        <li style="text-align:left">属于通用的指令集体系结构,而不是针对某个特定微体系结构的实现。</li>
        <li style="text-align:left">拥有实现最小整数的指令集,作为基础指令集,可以用于教学。在此基础上还能实现众多可选扩展指令,以支持通用软件的开发。</li>
        <li style="text-align:left">支持IEEE754浮点标准。</li>
        <li style="text-align:left">支持众多扩展指令集。</li>
        <li style="text-align:left">支持32位及64位地址空间。</li>
        <li style="text-align:left">支持多核及异构体系结构。</li>
        <li style="text-align:left">支持可选的压缩指令编码,用以提高性能和能源效率,并优化静态代码。</li>
        <li style="text-align:left">支持虚拟化扩展。</li>
        <li style="text-align:left">支持可伸缩矢量指令扩展。</li>
</ol>

<p style="text-align:left">&nbsp; &nbsp; &nbsp; &nbsp; RISC-V常见处理器:SiFive FU740处理器、香山处理器。</p>

<p style="text-align:left">&nbsp; &nbsp; &nbsp; &nbsp; RISC-V体系结构包含的6种处理器模式和各自的作用:</p>

<ol>
        <li style="text-align:justify">机器模式(&zwnj;M模式):具有对机器实现的的全部访问权限,常用于管理RISC-V上的安全执行环境。通常在M模式下运行SBI固件,为操作系统提供服务。</li>
        <li style="text-align:justify">特权模式(&zwnj;S模式):通常用来运行操作系统的内核,为应用程序提供服务。</li>
        <li style="text-align:justify">用户模式(&zwnj;U模式):特权级别最低,通常用来运行应用程序。</li>
        <li style="text-align:justify">&zwnj;HS模式&zwnj;:用来运行虚拟化管理程序。</li>
        <li style="text-align:justify">&zwnj;VS模式:通常用来运行虚拟机操作系统内核。</li>
        <li style="text-align:justify">&zwnj;VU模式:通常用来运行虚拟机操作系统中的应用程序。</li>
</ol>

<p style="text-align:left">&nbsp; &nbsp; &nbsp; &nbsp; RISC-V体系结构包含的通用寄存器:</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; &nbsp; 64位/32位的RISC-V体系结构包含32个64位/32位的整型通用寄存器,编号从x0到x31。对于浮点数运算,64位的RISC-V体系结构也提供32个浮点数通用寄存器,分别是f0到f31寄存器。</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; &nbsp; 系统控制和状态寄存器(Control and Status Register, CSR):</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; &nbsp; 1)M模式的系统寄存器;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; &nbsp; 2)S模式的系统寄存器;</p>

<p style="text-align:justify">&nbsp; &nbsp; &nbsp; &nbsp; 3)U模式的系统寄存器。</p>

<p style="text-align:justify">&nbsp;</p>

<p style="text-align:justify"><em>To be continued......</em></p>

<p style="text-align:justify">&nbsp;</p>

Jacktang 发表于 2024-11-29 07:24

<p>贴个目录瞧瞧</p>

goldjack 发表于 2024-11-29 07:43

本帖最后由 goldjack 于 2024-11-29 07:45 编辑

<p><span style="color:#000000;">活动的链接里有,所以上文中没有赘述,这里再转发一下。谢谢!</span></p>

<p><span style="color:#000000;">https://bbs.eeworld.com.cn/elecplay/content/4f88f037#F5</span></p>

<p>&nbsp;</p>

<p><span style="color:#000000;">书籍目录</span></p>

<p><span style="color:#000000;">第1章 RISC-V体系结构基础知识<br />
第2章 搭建RISC-V实验环境<br />
第3章 基础指令集<br />
第4章 函数调用规范与栈<br />
第5章 GNU汇编器<br />
第6章 链接器与链接脚本<br />
第7章 内嵌汇编代码<br />
第8章 异常处理<br />
第9章 中断处理与中断控制器<br />
第10章 内存管理<br />
第11章 高速缓存<br />
第12章 缓存一致性<br />
第13章 TLB管理<br />
第14章 原子操作<br />
第15章 内存屏障指令<br />
第16章 合理使用内存屏障指令<br />
第17章 与操作系统相关的内容<br />
第18章 可伸缩矢量计算与优化<br />
第19章 压缩指令扩展<br />
第20章 虚拟化扩展<br />
第21章 RISC-V高性能处理器架构分析<br />
RISC-V体系结构自测题<br />
附录A RISC-V体系结构自测题的参考答案与提示<br />
附录B RV64I指令速查表<br />
附录C RV64M指令速查表<br />
附录D RV64常用伪指令速查表</span></p>

李晨33 发表于 2024-11-29 15:26

goldjack 发表于 2024-11-29 19:27

李晨33 发表于 2024-11-29 15:26
本书的作者是奔跑吧Linux社区的创始人笨叔

<p>对的,这本书的作者是奔跑吧Linux社区的创始人笨叔。</p>

wangerxian 发表于 2024-11-30 16:18

<p>感觉要知道一些ARM相关的内核和指令,看这个会更有收益。</p>

goldjack 发表于 2024-12-2 11:53

wangerxian 发表于 2024-11-30 16:18
感觉要知道一些ARM相关的内核和指令,看这个会更有收益。

<p>嗯,比较学习会更有帮助。</p>
页: [1]
查看完整版本: 《RISC-V 体系结构编程与实践(第2版)》阅读心得之一--概览