这是我自己早期在贴吧的回复
解释一下几个名词:
指令集架构,即ISA:CPU物理硬件和上层软件之间的一个接口。设计一个cpu,他能执行的所有指令集合就称为指令集。ISA方便了编译器开发者,开发者不需要知道cpu的硬件设计(指令在cpu中怎么变成电流,时钟信号如何控制时序,指令如何被执行等等),只要知道这个cpu兼容的指令集就可以制作编译器了。
[好好理解“接口”的意思,学计算机的都一定要弄清楚接口,无论是学软件还是硬件]
微架构,学术界里称为微结构,其实是一个东西。描述cpu核心的一切逻辑设计。可以说是CPU所有逻辑的草图,不过现在的CPU都是用HDL写的了verilog之类吧
我自作主张地把他分为两个层面吧,我从百度图片里搜了张图作解释。
硬件抽象层(HAL)
这个只是微结构(HAL)里的一部分,译码器,寄存器堆和下面的符号扩展部件。(这个是2-way超标量的)
————————————————————————————————————————
再下面的是物理逻辑层(PLL)
一个简单的一位带进位加法器
PLL层面是用一切逻辑部件去描述HAL层面上的东西,所以这层面上的当然要比HAL要复杂得多啦。
即使兼容一个指令集,CPU也可以有多种不同的设计。加速加法器,部件重用等等。
例如:用某些简单的控制部件去控制一个部件的寄存器写入源,这样就可以少一个寄存器的硬件开销了。
我再举一个通俗点的例子:
就像你买来一个灯泡你并不需要知道灯泡里面的电路时如何布局的,只是简单的看看说明书,怎样装上,怎样通电就能实现发光的供能了。灯泡好比CPU,里面的所有设计就是微架构,ISA就是说明书,人就(编译器)的角色。