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