龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 2802|回复: 16

Cortex-A72也是指令转微码再执行的微架构

[复制链接]
发表于 2016-4-23 08:59:46 | 显示全部楼层 |阅读模式
This mix of per-clock throughput through fetch, decode, dispatch, and the issue queues might seem unbalanced at 3-3-5-8, but remember, we're dealing with different sorts of instruction units at different stages. ARMv8 instructions tend to break down into larger numbers of micro-ops. On average, Filippo said, each ARMv8 instruction translates into 1.08 micro-ops. Also, not all of the "cracking" of complex instructions into ops happens in the decode stage. Some of it happens in the dispatch units, when those intermediate macro-ops are translated into micro-ops—hence the dispatch unit's ability to take in three macro-ops and output five micro-ops. That's an upgrade from the dispatch unit in the A57, which can only output three micro-ops per cycle for a 3-3-3-8 flow.
 楼主| 发表于 2016-4-23 09:00:57 | 显示全部楼层
the dispatch unit's ability to take in three macro-ops and output five micro-ops
 楼主| 发表于 2016-4-23 09:14:24 | 显示全部楼层
此类微架构的历史:
第一个是NexGen的5x86
之后是
AMD的K5
Intel的奔腾 Pro(代号P6)是第三个实现指令转微码执行。

P6有多牛?
P6第一次升级(加了MMX)变成奔腾II
P6第二次升级变成奔II450同时也诞生了超牛的赛扬300A
MIPS的悲剧就是奔II450造成的。
悲剧的200MHz的R10000微架构再先进也挡不住奔腾II 450的主频狂飙啊。
同时可悲的有HP-8200的180MHz
 楼主| 发表于 2016-4-23 09:16:53 | 显示全部楼层
微架构再先进也挡不住奔腾II 450主频狂飙啊
等有空找个SPEC跑分比较
 楼主| 发表于 2016-4-23 09:25:58 | 显示全部楼层
我印象中IBM的Power6(或Power7也指令转微码)

进一步,
AMD的K7
Intel Core/Core2
威盛的Nano
是指令转微码的第二代(有微码Fusion)
 楼主| 发表于 2016-4-23 09:34:06 | 显示全部楼层
目前微架构最强的“指令转微码”的ARM的Cortex-A72使得ARM的微架构设计达到Intel的Pentium Pro的级别(仔细看后发现A72有op-fusion,那就是core2的水平,属于“指令转微码”的第二大代了)。


ARM的Cortex-A72之前的ARM的设计有(只列出部分)
3级流水线ARM7
5级流水线ARM9
8级流水线ARM11
双发射超标量非乱序Cortex-A8/A7
双发射超标量乱序Cortex-A9/A12/A17
三发射乱序A15/A57
Cortex-A7的64位升级: 双路超标量,非乱序的A53
和ARM11几乎一样的A5


发表于 2016-4-23 14:06:25 | 显示全部楼层
请问intel的microcode是怎么处理的?
 楼主| 发表于 2016-4-23 14:52:18 | 显示全部楼层
silenttung 发表于 2016-4-23 14:06
请问intel的microcode是怎么处理的?

很多地方都能找到答案。
第一代是P6
第二代是NetBurst
第三代是Pentium-M(相当于P6魔改)
第四代是Core/Core2)
再后来是i3/i5/i7时代(最新是六代(i3/i5/i7这块里面的分代,属于小的世代))
 楼主| 发表于 2016-4-23 15:09:34 | 显示全部楼层
cb001 发表于 2016-4-23 14:52
很多地方都能找到答案。
第一代是P6
第二代是NetBurst

即使是P6,也有三代:
Pentium Pro
P II
P III
每代的实现也有一些小差别。(不是MMX或SSE的这种差别,而是和调度,译码等有关)
 楼主| 发表于 2016-4-23 15:14:33 | 显示全部楼层
In some cases, the decoder can fuse multiple ARMv8 instructions into a single macro-op; this is another new capability added in the A72.

这个就是K7/Core/Nano的水平了。

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-1-24 02:50 , Processed in 0.193596 second(s), 18 queries .

快速回复 返回顶部 返回列表