网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月08日
漏签
0
天
龙芯吧
关注:
25,698
贴子:
662,887
看贴
图片
吧主推荐
视频
游戏
1
2
3
下一页
尾页
101
回复贴,共
3
页
,跳到
页
确定
<<返回龙芯吧
>0< 加载中...
龙芯完成性能补课了吗?和牙膏厂和农企具体相差多少年?
只看楼主
收藏
回复
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
请原谅我起了一个可能具有争议的标题,主要是想和大家探究一下龙芯的微架构设计的水平,以及通过对比牙膏厂和农企,脑洞一下未来可能的发展方向。
龙芯这边主要的考察对象为GS464V/LA464,因为其具体设计尚未披露,所以有些无法明确的地方暂用GS464E的设计参数代替,GS464E这边各种信息如果存在冲突,按手册>论文>网站的置信度来采用。
因为本人的工作原因,随时可能断更,如果断更,就当我发了个水贴吧
小小胖子home
小吧主
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
哈哈
HellHeck
技术
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
开局就断更
不知为不知🛰️🛸
世界
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
内核结构设计,龙芯下代IPC到13的话,与Intel、AMD可能相差几年?
物理设计考虑主频的话,龙芯至少要上10多年时间,并且花费很多钱流片可能主频才到4G多去。没钱流片的话,过多少年主频都难提高。
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
取指
龙芯GS464V/LA464(后简称GS464V)为32B,即每周期8个指令。
牙膏厂直到Ice Lake依旧停留在16B,但因为X86指令长度不固定,每周期最多可以取5个指令(指令融合时为6个),只不过这些指令总长度不能超过16B,跨越16B边界或超过5个(6个)的指令不会在当前周期内读取,所以另一个的极端情况下,也有可能每周期只读取了1个指令,也就是说每周期在1-5(6)个指令之间。
农企早在K10上就实现了32B,直到ZEN3依旧如此,但也同样受X86指令长度不固定的影响,32B的取指带宽其实是2个16B的取指窗口合并而来,每个取指窗口每周期最多取2个指令,跨越16B边界或超过2个的指令不会在当前周期内读取,所以类似牙膏厂的情况,每周期在2-4个指令之间。
总体上看,因为MIPS/LA的RISC指令等长的特性,在取指上,龙芯对比两家具有先天的优势,在满足性能的前提下,这一块后续应该不会再有大的改进。
Ket
i
世界
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
前排围观,催更
xxylnq691001
竞争
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最短在物理设计,不能只盯性能,软件体系优化空间大
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
指令队列
GS464V尚未公布,这里参考GS464E的设计。GS464E具有一个64项的指令队列,该指令队列除了解耦取指与解码的作用之外,还承担了循环缓冲的功能,所以后续讲到循环缓冲时会再次提到。
牙膏厂早期的指令队列恕我查不到了,我能查到在Nehalem上已经有40项的设计,因为Nehalem支持SMT,这40项指令队列被分成2组,分别由2个线程独占。这个设计一直延续搞Skylake,才扩展到了2组共50项,直到Ice Lake依旧如此。
农企最早在Bulldozer上实现指令队列,为16项,由2个线程所共享,但具体的某一项由某个线程所独占。每项最多2个指令,和前面的取指窗口相对应,相当于16-32个指令。这个设计在ZEN上被扩展到20项,然后在ZEN3上又进一步被扩展到24项。
对比之下,GS464E依旧具有优势,当未来如果LA664要上SMT,可能还会进一步改进。可能的改进有2种路线,一种类似牙膏厂,2组指令队列给2个线程独占,另一种类似农企,更大的指令队列给2个线程共享,考虑到GS464E的指令队列还承担循环缓冲的功能,如果LA664继续沿用这个设计,大概率需要2组指令队列给2个线程独占。
不要加班
参与
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我🔝,学习~
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
循环缓冲
GS464V尚未公布,这里参考GS464E的设计。如前面所提到,GS464E的指令队列还承担循环缓冲的功能,当循环体小于56个指令时,可以停止取指,将循环体保存在指令队列中,供解码器反复调取,直到循环结束。
牙膏厂最早可能是在Core2上已经实现循环缓冲,但因为过于久远没有详细的资料,目前已知Nehalem的循环缓冲为28项,位置在解码器和保留站之间,其内部存储的是解码后的uop,由2个线程竞争性共享,当某个线程使用时,另一个线程无法使用。到Sandy Bridge时,虽然实装了uop cache,但依旧保留了循环缓冲,并扩展为2组共56项,每组28项,2个线程独占其中1组。然后在Haswell上又合并为1组共56项,由2个线程竞争性共享。之后在Skylake上又拆成2组共128项,每组64项。最后Ice Lake扩展到2组共140项,每组70项。
农企最早可能在Piledriver上已经实现了循环缓冲,位置再解码器和调度器之间,其内部存储的是解码后的mop,大小为32项,但不知道是不是分成2组由每个线程独占1组。在Steamroller上明确为2组共80项,每组40项,每个线程独占1组。ZEN及之后,农企取消了专门的循环缓冲,改由mop cache实现类似的功能。
仅看循环缓冲,GS464E的等效56项,差不多和Haswell、Steamroller在同一个水平上。后续LA664如果沿用此设计并进一步拓展,可能可以达到Skylake甚至Ice Lake的水平。因为龙芯近未来上op cache的可能性较低,所以无法和ZEN系列比较。
jhon123110
世界
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大部分人看不懂
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
解码带宽
GS464V有4组对称的解码器,因为RISC的特性,应该所有指令均能1对1的解码成op,所以解码的输入带宽为4指令,输出带宽为4op。
牙膏厂最早在Core2上实现4解码器,但是由3个简单解码器和1个复杂解码器所组成。简单解码器只能解码那些和uop一对一对应的指令,复杂解码器可以解码和uop一对多对应的指令,复杂解码器最多将1条指令解码成4条uop,多于4条uop的指令通过微码模块解码为uop数量不定的微程序,微程序输出带宽为每周期4uop,当复杂解码器或微码模块运行时,简单解码器无法运行。也就是说解码输出带宽为4uop,解码输入带宽受指令类型的影响在1-4之间,当使用微码模块时甚至少于1。在SMT模式下,各种解码器由2个线程竞争性共享,但当某个线程使用微码模块或复杂解码器时,另一个线程无法输入任何指令。这个设计一直沿用到了Skylake之前,Skylake增加了1个简单解码器,并将解码输出带宽提升到了5uop,微码模块的输出带宽依旧为4uop,也就是说,当使用微码模块或复杂解码器时,依旧可以保持另外1个指令由简单解码器解码。
农企最早在K5上实现4解码,当然这太久远了,已经无法参考了。之后再次实现4个解码器已经是Bulldozer了,4个解码器对称设计,均能解码1对1或1对2的指令,但同一个周期内只能有1个解码器解码1对2的指令。和牙膏厂类似,大于1对2的指令由微码模块解码成微程序,解码输出带宽为4uop,当微码模块运行时,其他解码器无法运行。所以解码输入带宽也受指令类型影响,在1-4之间,并且当使用微码模块时甚至少于1。解码器以FMT的方式每周期交替为2个线程的指令解码,但当某个线程的指令使用微码模块解码时,会暂停切换线程,直到该指令完成解码。在Piledriver上放宽了1对2的解码限制,可以同时解码2个1对2的指令。在Steamroller上拆分成了2组4个解码器的设计,但因为取指带宽的限制,实际解码带宽并没有明显的提升,好处仅仅是当某个线程使用微码模块时,不会影响另一个线程的解码。然后到ZEN上,又变为一开始的1组4个解码器,但采用了类似牙膏厂的竞争性共享模式。
在解码带宽上,表面上看,因为GS464V采用RISC,具有明显的优势,但牙膏厂和农企在分别进入Sandy Bridge和ZEN时代后,其后端执行的op主要来源已经逐渐变为op cache,所以GS464V在解码带宽上,大致和Sandy Bridge这类早期实装op cache的微架构类似,而LA664应该能够达到Skylake和ZEN的水平。
骁龙2212
龙芯1A
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
优势这么大的吗,为啥性能差那么多
?优势在我?
我与前世对话
技术
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有没有人考虑过,老胡可能真有很多底牌还没全亮出来。
感觉看了老胡很多访谈还有龙芯的实际应用,发现3a系列其实迭代过程有点像海军的“小步快跑”策略,每一代都有不同的更新之处,而如果迭代成功,则也不着急马上应用,而是尝试突破下一个技术难点。短时间来看似乎每次突破都不算大,但实际上却已经把每一个细节都打磨到位了。
比如说老胡很多次都可以堆核,但还是耐着性子“练内功”。这样下来一旦认为时机成熟了,就可以批量应用许多突破技术,达成性能的又一个大提升——在表现上,就类似于英特尔把牙膏一脚踩爆了
歌迷妳妹
龙芯3B
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
发射队列
GS464V采用分体式发射队列的设计,定点、访存、浮点发射队列各为32项,合计96项。
牙膏厂一直采用整体式保留站的设计,Skylake为97项,但因为是整体式的设计,其效率会高于分体式的设计,之前的Haswell为60项,Sandy Bridge为54项。
农企也采用分体式调度器,K10为每条整数管线1个8项,3个整数共24项,然后1个42项浮点,合计66项。到Bulldozer时,整数访存合并成1个40项,每个执行核1个,浮点64项,2个线程共享,合计每个模块144项。到ZEN时,整数又拆成每条整数管线1个14项,4个整数56项,2个访存28项,浮点分成2级,1级是60项顺序队列,2级是36项乱序队列,合计180项
如果按分体式的效率为整体式的60%计,ZEN的顺序队列打对折计入,Bulldozer共享的浮点调度器按70%计入单边的执行核。则GS464V等效58项,K10等效40项,Bulldozer单执行核等效51项,ZEN等效90项。如此比较,则GS464V略强于Bulldozer和Sandy Bridge,略弱于Haswell,和Skylake和ZEN具有明显的差距。LA664如果继续采用分体式发射队列的设计,需要达到合计160项左右才能达到Skylake和ZEN的水平。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示