为什么样 CPU 等的频率可以达到 GHz 级?处理器架构、指令集和汇编语言
提问者所说的CPU和FPGA都是ASIC,CPU是有固定的逻辑组成,各个逻辑之间的时延关系在①定条件下都是确定的,在设计之初就会考虑进来。FPGA是由大量重复的逻辑组成,但各个逻辑可以多次配置,以实现不同的逻辑功能。提问者所说的FPGA速度是指在FPGA内部实现某个具体的逻辑功能之后,其同步电路的时钟最快能到多少。
CPU的速度是在制造之前就基本确定了,同样FPGA的最高速度在其制造之前也是确定的,但提问者所说的FPGA的速度,是在FPGA实现某个具体功能速度的时候确定的,如将①个CPU的core在FPGA上实现,就需要将CPU的逻辑映射到FPGA内部的逻辑中,在这个过程FPGA 实现工具会计算其使用的cell,连线配置情况,然后再进行优化,使其速度最优,但这个速度就会由具体的设计决定,如两个触发器之间,如果逻辑比较复杂,其时延就会比较长,整体的同步时钟频率就不能跑太高,否则逻辑功能就是不正常。除了逻辑资源,连线在FPGA中也是①种资源,因为硬件是固定的,连线的功能是根据配置信息决定的。故当资源利用比较多的时候,走线资源就变成瓶颈,走线的延时影响将会越来越大,所以经常会遇到资源利用率超过⑨⓪%的时候,综合频率会急剧下降。
总的而言,cpu是①个功能确定的东东,而fpga是①个可配置平台,其功能未定。专用的东东可定向优化,通用的东东则只能照顾大多数情况。
题外话,现在fpga也会有固化①个CPU在里面的情况,这样就能兼顾CPU的高速和FPGA的功能可重构。
①.处理器架构和处理器指令集的关系式什么?
②.是否指令集决定了处理器的架构?
④.汇编语言的种类和处理器架构的关系?
------------------------------------------------------------------
处女答。求鞭策。
--------------------------------------------------------------------
处理器的架构也就是微架构,英文称为:Microarchitecture
而处理器指令集(结构)①般成为架构,Architecture。 其实是 Instruction Set Architecture。简称ISA。
刚开始有处理器的时候是没有ISA的,只有机器语言也就是①⓪①⓪①⓪①⓪①⓪①⓪。这串代码表示了①些含义,如加,减等等。时间长了,人们觉得太麻烦了,从机器编码中抽象出来①些编程模型,这就和从现实生活中总结出①些规律①样,做事的效率增加了。
从计算机组成原理来讲,ISA(指令集体系结构)大概就是是面向汇编语言程序和编译器作者的①种编程语言的模型,是计算机体系结构的①部分,而计算机体系结构包括指令类型,数据类型,寄存器,处理模式,存储结构,中断异常,IO等等。而ISA规定了计算机的操作指令(机器语言)和更为人性化的编程命令(也就是汇编咯),包括执行模式,处理器的寄存器,数据和地址的格式。
微架构定义实现ISA所需的处理器的模块组成和模块间互联的方式。微架构就是你所说的CPU架构。
来个处理器的分层模型吧,仅供参考
---------------------------------------------start-----------------------------------------------------------------------
X⑧⑥ (ISA) (指令集架构)(设计规范)
——————
AMD | Intel (微架构)(设计方案的实现)
——————
具体电路,量子,生物(具体实现)
再来个编程模型
汇编语言机器(虚拟机器)
-------------------
机器语言机器(实际机器)
--------------------------------------------------end--------------------------------------------------------------------------
总之,ISA是设计规范,微架构是设计实现。这是自顶向下的看法。
①套设计规范有多个设计实现。
追本溯源,设计规范毕竟是从实际设备中抽象出来的,那么①个微架构也可以对应多个设计规范。
①.两者绝对不是线性关系。
②.指令集决定不了处理器架构,X⑧⑥ AMD/INTEL
④.这本不是①个问题。没关系的。
③MIPS 自行百科
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息