Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

DMB (SY)

Test 1: uops

Code:

  dmb sy

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 0.000

Load/store unit issues: 1.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)60696d6emap rewind (75)map stall (76)dispatch uop (78)map ldst uop (7d)8283flush restart other nonspec (84)85inst all (8c)inst barrier (9c)st unit uop (a7)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)f5f6f7f8fd
1004302722423012200910001000100060000333027303532885100010003026303511100110001000073416223024100030283036302830363027
100430262203012200110001000100060000423035302532893100010003035302711100110001000073216223032100030273036302830363027
100430262303012200010001000100060001423035302732884100010003027303511100110001000073216223023100030363027303630283036
100430352303011200010001000100060000423035303532893100010003025303511100110001000073216223024100030363028303630273036
100430352233012200110001000100060001423035302732884100010003027303511100110001000073216223032100030283036302830363027
100430272333020200910001000100060001333026303532893100010003026303511100110001000073216223032100030273036302630363028
1004303523030202009100010001000600004230353027328841000100030273035111001100010002473216223024100030363028303630273036
100430352203011200910001000100060001333027303532893100010003035302711100110001000073216223024100030363028303630273036
1004303522183011200110001000100060001343027303532893100010003035303511100110001000073216223032100030363026303630273036
100430352203011200010001000100060001423035302632885100010003026303511100110001000073216223023100030363027303630283036

Test 2: throughput

Code:

  dmb sy

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 2.9135

retire uop (01)cycle (02)0318191e3f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)inst barrier (9c)9fst unit uop (a7)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
10204291352170002902018906101001001000010010000500598000492596329135290343278431010020010000200290362329511102011009910010010000100100004937101161129132100001002902829136290372913629035
102042913521800029019188991010010010000100100005005980004926055291352913532784310100200100002002913523295111020110099100100100001001000001717101161129132100001002902829136290352913629136
10204290282180002912019008101001001000010010000500598000492605529034291353277431010020010000200290442329511102011009910010010000100100000877101161129132100001002904429136290372913629044
102042913521800029120190081010010010000100100005005980004925948291352904332773510100200100002002904323295111020110099100100100001001000001027101161129032100001002913629036291362904429036
1020429135218000290291891710100100100001001000050059800049259632913529027327751101002001000020029036232951110201100991001001000010010000097101161129022100001002903729136291362913629136
1020429043218000290201890010100100100001001000050059800049260552913529135327843101002001000020029135232951110201100991001001000010010000007101161129040100001002903529036290362903529044
102042913521800029120190081010010010000100100005005980014926055291352913532784310100200100002002913523295111020110099100100100001001000002167101161129040100001002903629036290352903629036
102042913521800029120190081010010010000100100005005980004925945290352903532774310100200100002002913523295111020110099100100100001001000001747101161129040100001002913629136291362913629136
102042904321800029021189001010010010000100100005005980014926055291352913532784310100200100002002913523295111020110099100100100001001000001747101161129132100001002913629136291362913629136
1020429034217000290191891710100100100001001000050059800049260552913529135327843101002001000020029135232951110201100991001001000010010000097101161129033100001002904429043290452904429136

1000 unrolls and 10 iterations

Result (median cycles for code): 2.9951

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e1f3a3f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)inst barrier (9c)9fl1d tlb access (a0)l1d tlb miss (a1)st unit uop (a7)l1d cache writeback (a8)a9acc2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? ldst retires (ed)? int retires (ef)f5f6f7f8fd
100242995122300009002985219831100101010000101000050599820492678729951298663286811001020100002029951298661110021109101010000100010000502406402163329948010000102986729952298682995229868
10024298672240000000299361991510010101000010100005059982049268712986629866328597100102010000202986629951111002110910101000010001000050306402163329948010000102986729952298662995229952
10024299512240000000298521991510010101000010100005059982049268712986629951328681100102010000202995129867111002110910101000010001000020306512242229948010000102986829952300382995230050
100242986622500003002993619831100101010032121000050599820492678629951298666285971002020100002029866299511110021109101010000100010000009306402162229863010000102986529952298672995229952
1002429951224000000030064198301001010100001010000505998204926786299512986532859710028201000020298642995111100211091010100001022100000010506403162229948110000102986829952298662995229952
10024299772240000000298511991510010101000010100005059982049268712986729951328681100102010000202995129867111002110910101000010001000010306403163329948010000102986829952298662995229868
100242986722400000002993619915100101010000101000050599820492678629951298663285971001020100002029951298651110021109101010000100010000280606402162229863010000102986729952298682995229952
100242995122300000002993619915100101010000101000050599820492687129866299513286811001020100002029951298651110021109101010000100010000290306403163329948010000102986629952298652995229952
100242995122300000002985219831100101010000101000050600450492687129866299513286811001020100002029951298661110021109101010000100010000009306403163329861010000102995229868299522986729952
10024299512240000000299361991510010101000010100005059982049268712986529951328681100102010000202986629951111002110910101000010001000020906402162229948010000102986829952298662995229952