数码小叶 发表于 2024-6-30 15:14

《嵌入式软件的时间分析》一:前2章读后感

本帖最后由 数码小叶 于 2024-6-30 11:06 编辑

<p><span style="font-size:16px;">在没拿到这本书之前,认为这本书之所以这么贵,可能是因为内容,拿到手后,发现不仅是内容,这本书的质感真的很意外,首先是封面,采用硬纸壳设计,并且内页通过线固定,像字典给人一种结实耐用的印象,可以反复查阅。</span></p>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<p>&nbsp;</p>
</div>

<p>&nbsp;</p>

<p><span style="font-size:16px;">第二点,就是他的内部印刷,居然是彩色印刷,已经很多年没阅读到过彩色印刷的书籍资料了<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" />。</span></p>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<p>&nbsp;</p>
</div>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<div><span style="font-size:16px;">在看流程图、时序方面,彩色直观明了,黑白的只能明暗来区分,细节没彩色多。</span></div>

<div style="text-align: center;">&nbsp;</div>

<p><span style="font-size:16px;">&nbsp; &nbsp; &nbsp; &nbsp; 第一章,作为基础知识的介绍,从V模型入手,介绍软件开发的整个过程,从而引入每个环节的时间分析,为后续章节铺垫。借鉴V模型的从抽象到具体,过渡到可执行文件的生成过程。这部分内容将从.c文件到可执行文件的步骤,描述的是言简意赅,读起来,感觉没有一点点是多余的。虽然这个步骤之前已经了解过,但还是有部分不知道的。比如链接器部分,对于函数和变量的解析、索引,一个文件和多个文件的变量定义以及引用,之前都是从报错上解决,但根本原理了解后,更加豁然开朗。本章最后,介绍了一下调试器,拿一个调试界面介绍了调试过程中常见的一些关注点和调试手段。最后诙谐的介绍了&ldquo;Bug&rdquo;、&ldquo;Debugger&rdquo;、&ldquo;ELF&rdquo;等词汇。</span></p>

<p><span style="font-size:16px;">&nbsp; &nbsp; &nbsp; </span></p>

<p><span style="font-size:16px;">&nbsp; &nbsp; &nbsp; &nbsp; 第二章--处理器的基础知识,从处理器的构造、代码执行、存储器寻址、访问、缓存、流水线、中断几个方面来介绍,从结构搭到数据存储访问,如果只从嵌入式来考虑,这部分内容,可以只是了解了解,现在的MCU原厂提供的底层lib库基本已经把这些抽象解决了,很少有机会需要更改。如果汇编学的好,这部分内容就更容易理解了。在第二章中,觉得平时最有用的就是2.3存储器寻址及其模式这一节中介绍的区段使用,在日常开发中,自定义区段,来快速保存和读取数据很实用。后面介绍了数据访问时的CPU数据模型,详细讲解了访问时造成的开销以及优化模型。有一句话总结的很好:&ldquo;过分强调最大限度地提高平均计算能力,可能会导致最坏的情况,即不能满足强实时系统的需求。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">&nbsp; &nbsp; &nbsp; &nbsp; 前两章,要说没有弄懂的地方,就是流水线小节,提到的分支预测单元机制,该机制的原理是什么?为何可以提高代码执行效率?前两章,对于本书的主题-&quot;时间&quot;,没有很深的涉及,却时不时的提出延伸,会在后面的章节具体介绍,应该在读完后续章节,会有更好的收获。</span></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

wangerxian 发表于 2024-6-30 15:38

<p>彩色印刷估计也不少成本,期待后面章节的观后感。</p>

hellokitty_bean 发表于 2024-6-30 18:46

<p>彩色印刷给人高大上的感觉呀。。。。。。继续等更。。。</p>

秦天qintian0303 发表于 2024-7-1 10:04

<p>彩色印刷点赞,不过内容没有很多彩图吧,其实黑白就能讲清楚</p>

nmg 发表于 2024-7-1 10:33

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/lol.gif" width="48" />呼叫书友们来讨论:<span style="color:#2ecc71;">&ldquo;前两章,要说没有弄懂的地方,就是流水线小节,提到的分支预测单元机制,该机制的原理是什么?为何可以提高代码执行效率?&rdquo;</span></p>

<p>&nbsp;</p>

<p><strong><a href="https://bbs.eeworld.com.cn/home.php?mod=space&amp;uid=1401067" target="_blank">@luyism </a> <span style="color:#1abc9c;">、</span><a href="https://bbs.eeworld.com.cn/home.php?mod=space&amp;uid=108278" target="_blank">@常见泽1 </a> <span style="color:#1abc9c;">、</span><a href="https://bbs.eeworld.com.cn/home.php?mod=space&amp;uid=782751" target="_blank">@hehung </a> <span style="color:#1abc9c;">、</span><a href="https://bbs.eeworld.com.cn/home.php?mod=space&amp;uid=323615" target="_blank">@qinyunti </a> </strong></p>

luyism 发表于 2024-7-1 11:22

<p>分支预测,简单来说,是个聪明的&ldquo;猜谜游戏&rdquo;。处理器在执行代码时,常会遇到&ldquo;分支&rdquo;指令,就像路上的岔路口,决定程序接下来要执行哪段代码。分支预测单元就是负责在真正知道答案前,先猜一下分支会怎么走。</p>

<p>它的原理基于几个策略:</p>

<ol>
        <li>
        <p><strong>历史记录法</strong>:就像你记得上班路上哪个红绿灯经常是绿的一样,分支预测器会记住过去分支指令的走向,如果一个分支总是转向某一边,预测器就倾向于认为这次也会一样。</p>
        </li>
        <li>
        <p data-spm-anchor-id="5176.28103460.0.i4.297c3da2VzbIGu"><strong>模式识别</strong>:预测器还会分析程序的执行模式,比如循环结构中分支的规律,用这些模式来提高预测准确性。</p>
        </li>
        <li>
        <p><strong>复杂算法</strong>:更先进的预测器会用更复杂的算法,比如统计方法,甚至机器学习,来综合分析多种因素,做出预测。</p>
        </li>
</ol>

<p data-spm-anchor-id="5176.28103460.0.i3.297c3da2VzbIGu">为什么这能提高效率呢?因为在处理器的流水线作业中,一旦遇到分支,如果不做预测,就需要等待实际分支结果确定后再继续取指令执行,这会导致流水线&ldquo;停摆&rdquo;,白白浪费了宝贵的时钟周期。有了分支预测,处理器可以&ldquo;大胆假设&rdquo;,提前加载可能需要的后续指令到流水线中执行。如果预测对了,就节省了时间;即使偶尔预测错了,虽然需要清理错误的指令重新来过,但总体上还是大大提高了执行效率,毕竟多数情况下我们是能猜对的。</p>

数码小叶 发表于 2024-7-1 22:58

luyism 发表于 2024-7-1 11:22
分支预测,简单来说,是个聪明的&ldquo;猜谜游戏&rdquo;。处理器在执行代码时,常会遇到&ldquo;分支&rdquo; ...

<p>感谢解惑<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /></p>
页: [1]
查看完整版本: 《嵌入式软件的时间分析》一:前2章读后感