作者回复: 👍感谢分享给大家
作者回复: 👍你学得非常认真努力,给大家做了一个好榜样。
作者回复: 👍算法的例子举得很好,剪枝策略的例子也很好。
不过流水线和圆周率的例子不太好,可以再想想。
作者回复: 须臾即他9同学你好
增加晶体管可以增加硬件能够支持的指令数量,增加数字通路的位数,以及利用好电路天然的并行性,从硬件层面更快地实现特定的指令,所以增加晶体管也是常见的提升cpu性能的一种手段。
电压的问题在于两个,一个是电压太低就会导致电路无法联通,因为不管用什么作为电路材料,都是有电阻的,所以没有办法无限制降低电压,另外一个是对于工艺的要求也变高了,成本也更贵啊。
作者回复: 增加晶体管数量,其实是通过提供更复杂的电路支持更多的“指令”。也就会减少运行同样程序需要的指令数。
打个比方,比如我们最简单的电路可以只有加法功能,没有乘法功能。乘法都变成很多个加法指令,那么实现一个乘法需要的指令数就比较多。但是如果我们增加晶体管在电路层面就实现了这个,那么需要的指令数就变少了,执行时间也可以缩短。
作者回复: 几个例子举得都很好!而且和实践应用结合得也很好!
作者回复: Sunny同学,
你好,增加晶体管通常可以做到以下这些
1. 设计了一个更复杂的电路,让原先软件执行的事情,直接通过硬件电路解决了。也就是在CPU里增加了新指令,自然同样的程序就运行得更快了。
2. 同样功能的电路更多了,比如有了更多更大的寄存器,更多的可以并行的流水线,这样同样的指令可以同时运行不受限于有限的资源,也可以让程序算得更快。
作者回复: arvin你好,第一个问题我们会在讲解cpu的第一部分详细讲解。核心是一个时钟信号和一个自动计数器。
第二个问题我们在后面讲电路的时候会介绍,可以认为就是电路的开闭。
作者回复: 古夜同学你好,谢谢反馈。对于计算机如何编译运行,是一个挺复杂的话题了,恐怕一讲之内讲不清楚。这一讲的主要目标,还是让大家明白指令和机器码是怎么回事儿。
关于计算机如何阅读指令运行的整理流程,会在17讲讲解CPU部分的时候做深入的剖析。
作者回复: 👍谢谢支持,要坚持和大家多交流
作者回复: 赞思路,不过我觉得还是不太一样的。它更像“抢跑”而不像防止浪费和空闲。
作者回复: 静静的拼搏同学你好,关于LongAdder可以更具体地和大家分享一下吗?
作者回复: 👍 关于协程是流水线能具体解释一下么?我没有太明白。
作者回复: 👍概率和预测说得很好
不过CPU的流水线还是比较特殊的,和我们一般理解的流水线的方式其实还是有些差异,可以在后面特别深入关注一下流水线的部分。
作者回复: 👍说得不错,不过“剪纸”是什么能具体说说么?
作者回复: 庄小P同学你好,
低压和低主频都是为了减少能耗。比如Surface Go的电池很小,机器的尺寸也很小。如果用上高主频,性能更好了,但是耗电并没有下来。
另外,低电压对于CPU的工艺有更高的要求,因为太低的电压可能导致电路都不能导通,要高主频一样对工艺有更高的要求。所以一般低压CPU都是通过和低主频配合,用在对于移动性和续航要求比较高的机器上。
向量计算是可以通过让加法也并行来优化的,不过真实的CPU里面其实是通过SIMD指令来优化向量计算的,我在后面也会讲到SIMD指令。
作者回复: 沃野阡陌同学你好,答案取决于你这里指的缓存是什么。抽象的缓存,比如我们可以用redis或者memcqched作为访问数据库的缓存。具象的有时候一般我们指cpu里内置的高速缓存,也就是l1到l3 cache。前者一般都是应用程序来操作,后者不需要程序来操作。
后者内置在cpu里,比内存还要快上10到100倍。在讲解存储器的部分我们会重点讲解高速缓存以及怎么利用高速缓存的性能来写程序。
作者回复: 👍加速大概率事件,通常指在我们确定了概率的情况下做出性能优化。而预测很多时候并不要求是大概率事件,只要平均情况下比不预测要明显好就够了。