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 (OSH)

Test 1: uops

Code:

  dmb osh

(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)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)f5f6f7f8fd
1004302723330202009100010001000600003430273035328841000100030273035111001100010000073116113032100030283036302830363036
1004303523030202009100010001000600014230353026328851000100031513035111001100010000073116113023100030363027303630283027
1004302622030202009100010001000600014230353026328851000100030263035111001100010000073116113032100030273036302830363036
1004303522030112009100010001000600014230353027328851000100030273035111001100010000073116113024100030363027303630263028
1004302722030202009100010001000600004230353027328851000100030273035111001100010000073116113024100030273036302830363036
1004303523330122009100010001000600004230353026328851000100030263035111001100010000073116113024100030363027303630273036
1004303523030112009100010001000600004230353027328931000100030353026111001100010000073116113024100030363028303630283028
1004302722030122009100010001000600003430273035328931000100030353026111001100010000073116113023100030363028303630273028
1004302723030102001100010001000600014230353025328851000100030253035111001100010000073116113023100030363028303630273027
1004302623030202000100010001000600013430273035328931000100030353026111001100010000073116113032100030283036302730363026

Test 2: throughput

Code:

  dmb osh

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 2.9043

retire uop (01)cycle (02)03l2 tlb miss data (0b)18191e1f3f51schedule 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)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)acc2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
1020429040218000002901219008101001001000010010000500598000492605529035291353277431010020010000200290352329511102011009910010010000100000100002307101161129132100001002904429136290362913629136
102042913521700000290191900810100100100001001000051660232049259552913529027327742101002001000020029035232951110201100991001001000010000010000191407101161129032100001002913629037291362904329044
1020429043218000002912019008101001001000010010000500598000492595529135290273277421010020010000200290352329511102011009910010010000100000100001007101161129033100001002913629044291362903629036
1020429035218000002912018917101001001000010010000500598000492605529043291353278431010020010000200291352321411102011009910010010000100000100000007101161129132100001002913629043291362904429044
10204290432190000029120189081010010010000100100005005980004926055290342913532784310100200100002002913523222111020110099100100100001000001000036007101161129132100001002902829136290372913629136
10204291352180000029120188991010010010000100100005005980004926055290252913532784310100200100002002913523223111020110099100100100001000001000048007101161129132100001002913629044291362904429035
10204290342170000029020189081010010010000100100005005980014925962291352904332774210100200100002002903523295111020110099100100100001000071000040007101161129132100001002903529136290262913629136
1020429135217000002902019008101001001000010010000500598000492595529135290443277511010020010000200290432329511102011009910010010000100000100001007101161129040100001002913629028291362903729036
1020429035218000602912018916101001001000010010000500598000492605529042291353278431010020010000200291352321611102011009910010010000100000100001307101161129132100001002904429136290362913629136
1020429135217000302902819008101001001000010010000500598000492595629135290423277511010020010000200290432329511102011009910010010000100000100004007101161129132100001002903629136290282913629136

1000 unrolls and 10 iterations

Result (median cycles for code): 2.9867

retire uop (01)cycle (02)031e3f51schedule 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)acbranch cond mispred nonspec (c5)branch mispred nonspec (cb)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
10024298672230299361983210010101000010100005059982149268712986529951328595100102010000202986529951111002110910101000010100003300640316332994810000102986829952298682995229952
10024299512240298521991510010101000010100005059982149267862995129865328597100102010000202986429951111002110910101000010100001300640316332994810000102986629952298652995229952
100242995122402985019915100101010000141000050599821492678729951298673285961001020100002029866299511110021109101010000101000006000651316232994810000102986729952298682995229868
10024298672250299361982910010101000010100005059982149268712986629951328681100102010000202995129865111002110910101000010100001300640316222986310000102995229868299522986829952
100242995122302985219915100101010000101000050599821492678529951298663285971001020100002029867299511110021109101010000101000007800640316332986410000102995229868299522986829868
1002429867224029850199151001010100001010000505998214926871298652995132868110010201001120298652995111100211091010100001010000311200640216222994810000102986829952298682995229952
10024299512240298491991510010101000010100005059982149268712986629951328681100102010000202995129866111002110910101000010100001300640316222994810000102986829952298672995229952
10024299512240299361983110010101000812100005059982149268712986629951328681100102010000202995129866111002110910101000010100000300640216332986210000102995229867299522986729867
10024298662230298511991510010101000010100005059982149267872995129867328681100102010000202995129867111002110910101000010100001300640316332986210000102995229867299522986829868
1002429867224029852198321001010100001010000505998214926871298672995132868110010201000020299512986711100211091010100001010000308700640216332986310000102995229866299522986729867