主题:【文摘】龙芯意见 -- 【子衿】
工作频率跟流水线深度还真是关系密切。
采用同样的工艺和标准元件库的条件下,每一级的逻辑器件层数越少,最长路径越短,时钟周期也就越短,钟频也就越高。而一条指令从取指、解码、执行到回写所需要的逻辑是大体不变的。这意味着越高的工作频率就需要将之分解成更多的级数。
不是很了解龙芯的具体情况,不过如果你的描述是真的,那看起来龙芯的后端设计(或者说前端和后端的匹配)的确实有点问题。9级流水线90nm应该不止跑800MHz的。
龙芯和这种什么大飞机,卫星有本质的区别。想自主研发CPU,保证安全用于国防,好,我举双手赞成。你有没有想过为什么龙芯一开始就这么高调?这样急于冒进违背工程学,你飞机,卫星的芯片可以去问别人买。可是CPU呢?所有半导体的理论基础呢?为什么北航的所有学生在刚进学校的时候就会被熏陶一种国人关于飞机的悲伤情怀,说北航人的责任就是造出大飞机,当初的失败就是因为冒进。你可以想想,为什么需要极大技术积累的CPU我们几年就可以做出来,你可以想想,龙芯里面到底有多少成分是我们自己的技术。所谓自主创新,呵呵,我看是忽悠行外人的。
那个把译码以后的指令放icache的想法是很好的,这样就把流水线减少了几级,所以后面的计算部分稍微增加几级也可以,分支预测失败并不会对性能有重大影响。但是,x86相较于risc的一大优势,是代码密度高30%左右,所以,在相同大小的cache下,x86的执行性能会高不少。而现代的cpu,其核心面积基本上由cache大小决定。所以,x86综合性能在现代电子技术下并不比risc差。
如果icache存储译码指令,这个优势就不存在了,而且还会需要不少的附加开销。所以P4的12kuop icache大致只相当于4-6KB的icache。由于这个icache还非常占面积,所以dcache也被缩小了。P4的cache指标在当时也是最低的,比别的cpu低了一半还多。这就导致P4综合性能大幅度下降。
如果是现在来做,电子技术可以集成更大的cache,虽然使用NetBurst仍然会降低缓存的指令量,但是现在可实现的cache规模已经基本不会对对性能有重大影响了。这样,主频可以更进一步,综合性能可能有不少提升。
x86的指令集过于老旧,跟RISC相比增加了不少硬件负担,即使译码成类RISC,仍然不能跟上纯RISC的效率。举个例子,RISC中寄存器-寄存器指令跟存储指令各司其职,很好地把内存子系统的延迟跟主流水线隔离开了。而x86有太多直接使用内存操作数的指令,即使译码也无法做到快流水线和慢存储单元的区隔。现代的应用程序正在变得越来越数据导向,而内存墙的问题也日益严重。x86体系在这一点上是非常糟糕的。
至于NetBurst的trace cache,倒未必是失败在占用面积上。我觉得是该技术本身不能充分利用缓存的有效空间,浪费太大。同时分支的不确定性造成trace cache本身不断被重复清空,既浪费时钟周期,又增加能耗。别忘了,压垮P4的最后一根稻草正是散热问题。
P4从最早的Willamette到最后的Prescott,工艺换了几代,按理说晶体管预算早已经翻了几番,如果只是i-cache面积的问题,只会越来越顺,不会越来越糟。
CPU技术没有那么难,关键还是找准定位。通用CPU设计的基础知识,在先进国本来就是本科课程,计算机系统方向的研究生基本必须把原理性的东西吃得透透的,然后才能在各自领域有所创新。
CPU技术所依赖的学科本质跟大飞机很不一样,空气动力学的基本前提是不会有重大变化的;而半导体和信息技术的发展,造成这个领域许多基础性的前提十年左右就有一个大的变化。所以大飞机的所谓工程学经验或者教训并不能搬到CPU设计上。
我并不是说不需要技术积累,而是摩尔定律决定了这里技术换代的频率远高于技术人员的换代。往往等你吃透了人家的旧东西,新东西又被发明出来了,你还是落后。所以呆在课堂里埋头学半导体基础理论的,永远成不了行家,必须上场竞技,跟大家伙们一起玩。盲拳打死老师傅的事情其实经常有。
龙芯从软核出发,技术上慢慢向后端(也就是半导体产业上游)扩展,以中国在这方面的既有条件,这路径是对的。
重要的是把团队带出来,树立信心。
对只使用成熟工艺的fabless design house来说,他们只有代工厂提供的标准工艺文件可以参考.
但是对于一直处于前沿领域的intel来说,根本没有什么标准的东西可以用,所有的设计都是从基础的物理层开始,直接面对微观的物理问题.很多东西正是因为他们要遵循moore's law,才可能从概念变成实际的技术.
所谓的深流水线才适合做高频,是人家10年前为了保持摩尔定律,面对工艺壁垒的一个解决方案而已,是工程选择.不是理论上的限制.
现在限制频率提升的关键因素是功耗.晶体管开关速度越高,漏电越严重,功耗越高,而采用控制漏电的材料后,晶体管性能又会降低.
龙芯3A的TDP是15w,不是很乐观,用于移动设备太高,桌面的话性能又太弱.TFLOPs的机器就用了80颗龙芯3A.80颗cpu的互联啊...
Intel的uOP是load-store型的,完全和RISC没有两样。AMD的MacroOP是load-execute型的,也许会有些影响。不过,AMD的CPU的OP/MHz指标并没有比Intel的低。何况,x86指令集上是完全可以实现load-store方式的程序的,并没有限制必须用load-execute方式。所谓内存墙的问题和x86指令集本身没有关系。如果load-store方式好,编译器自然可以输出这种方式的代码。
在现代CPU很大的cache下面,纯粹的load-store方式并不见得有多少好处。Intel现在的架构,在译码成uOP之后,又加上一步merge,把很多指令合并成load-execute型的,如果这样做没有好处,Intel肯定不会采取这么复杂的方案。
不可能分支预测失败就清除整个trace cache。这个代价是不可接受的。分支预测失败清除的是Reservation Station(好像是这个名字?),trace cache存储的是译码后的指令,如果分支失败的目标地址也在trace cache中,反而可以降低分支预测失败的代价(节省译码部分)。
当然trace cache还有很大问题。它是72x3=216位宽的变态结构,这个结构既功耗巨大又无法做得很大,所以即使晶体管预算翻了几翻,Intel最终还是没法把它增加到可和同时代别的CPU相比拟的大小。
开发工艺是非常费钱的,没有几家公司负担得起。但负担得起的都做得不错,如IBM, TI等。2008年的时候Intel大概领先IBM, TI大概6个月,台积电1年。Intel之所以能领先,原来我也很佩服。等TI宣布停止开发45nm后才想通。
Intel没什么了不起,他靠的是Wintel联盟的垄断利润而不是单位投入的研发效率。TI一年的毛利50亿美元却负担不起不断的工艺进步,Intel却可以。靠的是每颗CPU单价几十到几百美元,同等计算能力的ARM结构的CPU大概只有Intel的1/3~1/4。易地而处, Intel未必能做得和TI一样好。
随着Android, Linux的越来越强势,微软随时可能宣布让Windows7的某个版本支持ARM或MIPS架构的CPU。一旦如此, Wintel联盟崩溃, Intel的利润就要腰斩, 他也未必有这样的实力同时在工艺和设计两方面领先。
Intel牛,根子在Wintel联盟,不是自身有多牛。
本帖一共被 1 帖 引用 (帖内工具实现)
这不是像以前两弹一星的时候可以集全国之力在某个项目上,所有的项目必须从实际出发。
拿MCU来说,貌似国内就只有海尔单片机,只听过,没有听到有谁真正用来做项目的。流水线深度先不说,封装,工艺都是很大的问题。影响芯片性能的因素很多,每一个细节都需要去考虑,不是想干就干的。自己设计个逻辑,再把生产交给意法半导体,这对于促进我国现代化有什么好处吗?别人的工艺好,在单位面积上可以集成更多的沟道,自然成本就低。我们要达到的是真正的科学进步,不是让科学家去当工程师玩设计,要实现的是技术的突破。
请几个记者来忽悠一下龙芯就突然牛X了?怎么可能?国内的半导体代工厂多的是,你去问问他们目前在中国生产CPU是否现实。
去龙芯的网站看看,里面的东西太政治化了,完全不像是一个研发项目。唉,何必呢?反正是一个没有市场的东西,只能强行向国企推销,慢慢来又有何妨?龙芯这里面的肯定有文章,只是我们不知道而已。
俺是一知半解无法正解因果逻辑关系~
罗彻斯特城堡
为啥不做高频和长流水线。有清楚的解释。不带名称的涮了sun和intel.
IBM的物理实验室应该是全美最顶尖的。这保证了他在芯片研发方面处于最尖端的地位。
Intel,只能说是在pc领域出货最多的芯片制作商吧。
在家用领域,比如游戏机,可是被IBM狠狠的耍了一把的。
那是因为家用游戏机不需要高主频。听说过3GHz的游戏机芯片吗?而在CPU方面,Intel主要就是靠的能做到最高主频的蛮力,一力胜十巧。
科学家玩得都是实验室里千里挑一选出来的样品,intel这种量产的应该玩不起。半导体那些理论谁都不缺,缺得就是怎么高质量大批量生产出来的技术。
科学技术的进步都是站在巨人的肩膀上一小步一小步的前进,中国最吃亏的就是所有的一切都得自己搞,借别人的肩膀靠一下都难。韩国台湾新加坡这些小屁地方都有世界上最大的几个半导体芯片制造企业,为什么啊,不就是因为他们可以随便从美国买上亿美元一台的光刻机。中国别看美国国债几万亿美元,你买得着一亿美元的光刻机吗?
龙芯要只是一个商业研发项目,不要说未来,根本就不会有开始,因为没有哪个傻X会给他投钱。