在没拿到这本书之前,认为这本书之所以这么贵,可能是因为内容,拿到手后,发现不仅是内容,这本书的质感真的很意外,首先是封面,采用硬纸壳设计,并且内页通过线固定,像字典给人一种结实耐用的印象,可以反复查阅。
第二点,就是他的内部印刷,居然是彩色印刷,已经很多年没阅读到过彩色印刷的书籍资料了。
第一章,作为基础知识的介绍,从V模型入手,介绍软件开发的整个过程,从而引入每个环节的时间分析,为后续章节铺垫。借鉴V模型的从抽象到具体,过渡到可执行文件的生成过程。这部分内容将从.c文件到可执行文件的步骤,描述的是言简意赅,读起来,感觉没有一点点是多余的。虽然这个步骤之前已经了解过,但还是有部分不知道的。比如链接器部分,对于函数和变量的解析、索引,一个文件和多个文件的变量定义以及引用,之前都是从报错上解决,但根本原理了解后,更加豁然开朗。本章最后,介绍了一下调试器,拿一个调试界面介绍了调试过程中常见的一些关注点和调试手段。最后诙谐的介绍了“Bug”、“Debugger”、“ELF”等词汇。
第二章--处理器的基础知识,从处理器的构造、代码执行、存储器寻址、访问、缓存、流水线、中断几个方面来介绍,从结构搭到数据存储访问,如果只从嵌入式来考虑,这部分内容,可以只是了解了解,现在的MCU原厂提供的底层lib库基本已经把这些抽象解决了,很少有机会需要更改。如果汇编学的好,这部分内容就更容易理解了。在第二章中,觉得平时最有用的就是2.3存储器寻址及其模式这一节中介绍的区段使用,在日常开发中,自定义区段,来快速保存和读取数据很实用。后面介绍了数据访问时的CPU数据模型,详细讲解了访问时造成的开销以及优化模型。有一句话总结的很好:“过分强调最大限度地提高平均计算能力,可能会导致最坏的情况,即不能满足强实时系统的需求。
前两章,要说没有弄懂的地方,就是流水线小节,提到的分支预测单元机制,该机制的原理是什么?为何可以提高代码执行效率?前两章,对于本书的主题-"时间",没有很深的涉及,却时不时的提出延伸,会在后面的章节具体介绍,应该在读完后续章节,会有更好的收获。
本帖最后由 数码小叶 于 2024-6-30 11:06 编辑
彩色印刷估计也不少成本,期待后面章节的观后感。
彩色印刷给人高大上的感觉呀。。。。。。继续等更。。。
分支预测,简单来说,是个聪明的“猜谜游戏”。处理器在执行代码时,常会遇到“分支”指令,就像路上的岔路口,决定程序接下来要执行哪段代码。分支预测单元就是负责在真正知道答案前,先猜一下分支会怎么走。
它的原理基于几个策略:
历史记录法:就像你记得上班路上哪个红绿灯经常是绿的一样,分支预测器会记住过去分支指令的走向,如果一个分支总是转向某一边,预测器就倾向于认为这次也会一样。
模式识别:预测器还会分析程序的执行模式,比如循环结构中分支的规律,用这些模式来提高预测准确性。
复杂算法:更先进的预测器会用更复杂的算法,比如统计方法,甚至机器学习,来综合分析多种因素,做出预测。
为什么这能提高效率呢?因为在处理器的流水线作业中,一旦遇到分支,如果不做预测,就需要等待实际分支结果确定后再继续取指令执行,这会导致流水线“停摆”,白白浪费了宝贵的时钟周期。有了分支预测,处理器可以“大胆假设”,提前加载可能需要的后续指令到流水线中执行。如果预测对了,就节省了时间;即使偶尔预测错了,虽然需要清理错误的指令重新来过,但总体上还是大大提高了执行效率,毕竟多数情况下我们是能猜对的。
引用: luyism 发表于 2024-7-1 11:22 分支预测,简单来说,是个聪明的“猜谜游戏”。处理器在执行代码时,常会遇到“分支” ...
感谢解惑