书详细目录详见:《大话计算机》助推国产半导体浴火重生!
根据《大话计算机》内容你点我贴一贴中所述,冬瓜哥收集了 “大话存储” 和 ”大话计算机” 中帖子下的留言如下(蓝色表示往期已回答,红色表示本期选中):
指令系统
我想看分支预测的章节,Intel的漏洞和这个有关
fork流程
6.5.3 中qpi 选路原理能贴吗? 特别是8p的选路
ddr 内存初始化浅析和memory training
介绍内存和MMIO的译码规则和内存在BIOS和OS下的布局情况
memory map和decode这两个概念,特别是decode
5.2.3
cache组关联
7.1.3 DMA与缓存的一致性
第一章入门部分
10.2.1.1 用户栈和内核栈
10.9.1.2
9.5.3.3
0.9.2.4
10.2.2.3
6.1.1.超线程并行
6.1.2.多核心/多CPU并行
本次冬瓜哥选择了如下两个要求。
冬瓜哥点评:
指令系统,或者说ISA,可以说是CPU对外的语言接口,任何高级语言都被翻译成CPU指令,比如你在c语言中的a=b+c,对应的机器指令是类似: load b 寄存器A;load c 寄存器B,add 寄存器A 寄存器B;寄存器A中保存的就是a的结果。当然,这里面还牵扯到使用寄存器存放结果,还是把结果放到内存中去。有些处理器提供直接操作内存的指令。不同架构的CPU有不同数量的指令,有的高达七八百条(比如Power系列),有的则只有几十条(比如开源的RISC-V)。CPU设计者需要针对每一条指令设计对应的译码、派发和执行过程,内部电路千头万绪,控制信号错综复杂。在《大话计算机》一书中,冬瓜哥自行设计了一个简易CPU并给出了几条样例指令的电路实现。
分支预测。目前CPU早已实现了流水线技术,其核心思想可参考冬瓜哥的3篇连载:《大话流水线》。流水线中会同时执行多个不同指令的不同子步骤,比如0号指令的执行过程与5号指令的译码过程同时在进行。这就牵扯到一个问题,如果0号指令是分支指令,根据条件判断决定跳转到其它指令执行,那么在0号指令为得出结果之前,流水线到底应该载入哪个分支的指令,无法判断。于是有了分支预测技术。
不多说了,上图。
指令系统:
省略若干篇幅
省略若干篇幅
省略若干,直接进入跳转指令的实现逻辑
先到这。
分支预测
先到这吧,下面篇幅还很长。留一手