什么是microcode?
什么是microcode?
cpu执行指令的步骤一般为
- 1.取指令
- 2.指令译码
- 3.指令执行
- 4.结果写回
由上述步骤我们知道,cpu在执行二进制代码的时候需要对指令进行译码才能够执行
cpu译码的开始
在译码开始时,程序的指令和数据分别会放到一级指令缓存(L1 cache),和数据一级缓存中,(只有L1 cache才是唯一指令和数据单独分割的cache),然后指令一级缓存中的指令会进入解码器,然后才是指令执行的开始
cpu如何认识并指令指令
cpu译码器(Instuction Decode Unit(IDU))
cpu译码器一般分为两种
- 1.硬件指令译码器
- 2.微码指令译码器
现在我们使用的计算机一般是X86架构,属于CISC(复杂指令集),指令种类繁多,如果所有的解码都通过硬件来完成,将会大幅增加硬件布线的难度,因此一般cpu在设计的时候一般只会对一些少量基本的指令采用硬件解码的方式,而一些复杂的指令采用微码指令译码器将其拆解为多条精简指令(microcode),因此cpu只有microcode才是基本的执行单位,硬件解码完成后,将会被cpu调度器(scheduler)放入pipeline提高指令的并行性
microcode如何修复?
我们知道,一条复杂指令要通过microcode译码器分解为多条microcode才能够被cpu所执行,原始的microcode来自于一块rom,为了microcode,新设计了一块较小的SRAM,用来为该rom上的microcode打补丁Microcode更新通常通过更新BIOS来更新
什么是microcode?
https://dreamaccount.github.io/2022/04/10/什么是microcode/