llvm的code里,但丁 发现的。
我整理了下:
A72:
3 width
micro-op re-order buffer: 128
8 pipelines:
2* Simple integer
1* Complex integer(Mul/Div)
1* Branch
2* Load/Store
2* FP/Vector
M1:
4 width
micro-op re-order buffer: 96
9 pipelines:
2* Simple integer
1* Complex integer(Mul/Div)
2* Branch
1* Load
1* Store
2* FP/Vector
Kryo
5 width
micro-op re-order buffer: 128
6 pipelines:
Kryo UnitXA
Kryo UnitXB
Kryo UnitYA
Kryo UnitYB
Kryo Unit LSA(Load/Store)
Kryo Unit LSB(Load/Store)
Kryo流水线比较奇怪,2个X,2个Y,2个Load/Store
指令分为X类,Y类,XY类:
比如integer ADD/SUB/DIV/MUL/MLA ,部分浮点ADD/SUB,
属于XY类,X单元和Y单元都可以执行
部分浮点指令,比如FMLA属于X类,
只有2个X Unit可以执行
Cyclone:
6 width
micro-op re-order buffer: 192
9 pipelines:
2* Simple integer
2* Complex integer(Mul/Div), Branch
2* Load/Store
3* FP/Vector
我整理了下:
A72:
3 width
micro-op re-order buffer: 128
8 pipelines:
2* Simple integer
1* Complex integer(Mul/Div)
1* Branch
2* Load/Store
2* FP/Vector
M1:
4 width
micro-op re-order buffer: 96
9 pipelines:
2* Simple integer
1* Complex integer(Mul/Div)
2* Branch
1* Load
1* Store
2* FP/Vector
Kryo
5 width
micro-op re-order buffer: 128
6 pipelines:
Kryo UnitXA
Kryo UnitXB
Kryo UnitYA
Kryo UnitYB
Kryo Unit LSA(Load/Store)
Kryo Unit LSB(Load/Store)
Kryo流水线比较奇怪,2个X,2个Y,2个Load/Store
指令分为X类,Y类,XY类:
比如integer ADD/SUB/DIV/MUL/MLA ,部分浮点ADD/SUB,
属于XY类,X单元和Y单元都可以执行
部分浮点指令,比如FMLA属于X类,
只有2个X Unit可以执行
Cyclone:
6 width
micro-op re-order buffer: 192
9 pipelines:
2* Simple integer
2* Complex integer(Mul/Div), Branch
2* Load/Store
3* FP/Vector