这东西看Intel手册就能找到。
首先,CPU里有多个ALU,比如haswell架构的架构图:
自己可以数一下有多少个ALU在CPU里,而且,诸如LEA之类的,也是有计算功能的。
另外,ALU又不只是做加法,ALU是arithmetic logic unit的缩写,翻译过来是算术逻辑单元,难道只有加法才是算术?减法呢?乘法呢?移位呢?与或非呢?
图片来自: Intel® 64 and IA-32 Architectures Optimization Reference Manual
------------------------------------------------------------------------------
看了题主的更新,其实CPU没什么神秘的地方,CPU里几亿几十亿个晶体管,大部分都是Cache,真正ALU的部分非常少,即使是控制部分,复杂的也是图中scheduler的位置,ALU本身没什么神秘的。
haswell架构下,一个核上有四个ALU,极限情况下,一个时钟周期内可以执行4条ADD操作。8086比haswell弱,是因为8086没有scheduler,指令执行周期长。
其次,现代的晶体管速度已经非常快了,砷化镓晶体管的速度在十年前就接近THz了(速度接近THz的晶体管问世 - 现代材料动态 - 金月芽期刊网 免费论文下载),其它材料的,最高据说有4THz的,可能实验室里还有速度更快的。
硅晶体管的速度慢一些,但也比CPU的主频要快的多了:产品分类 - Infineon Technologies
1.确切的设计图纸或者架构图说一个内核有几个ALU,一个ALU有几个加法器.
对,是这样的,现代CPU都是有多个ALU的,原理图自己找,网上很多。
2.用实验数据证明一个加法器足以完成上亿次的计算。
晶体管速度都能达到10GHz以上了,CPU主频在2-4GHz完全没问题,资料自己百度,能搜出一大堆东西。
不一定。
最少的情况应该是俩:一个用来算PC(PC+4,跳转),一个用来算加减法、分支指令的结果和访存指令的地址(AGU),剩下的零零碎碎的简单计算,“出于尽可能少用加法器的目的”可以用类似于查表的逻辑堆出来。
往多里说的话……那就没边儿了……
算PC的加法器还是需要的
分支预测器里面那些个entries,每个entry都有一个小加法器。
整数ALU至少可以整三条;每个浮点数FPU里的加法器更多。
LSU高配至少两条流水线,每条流水线一个独立的AGU。数据对齐需要小加法器。每个MSHR/ST B entry也需要加法器数data bank返回的数量。
要是支持原子操作的话还有那种把原子操作和加减/比较拧在一起的骚操作,这个也需要额外的加法器。
各种计数器,需要加法器。
各种队列的指针(比如ROB),各种仲裁器、分配器,也都需要加法器。
理论上,RTL里面形如:
assign a = b + c;
的代码,综合的时候都有可能搞出个加法器……