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

STURB

Test 1: uops

Code:

  sturb w0, [x6, #1]
  mov x0, 0

(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)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)1e1f22233a3f46494f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)606d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map ldst uop (7d)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst int store (96)inst ldst (9b)l1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)a4ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafbcl1d cache miss st nonspec (c0)l1d tlb miss nonspec (c1)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)f5f6f7f8fd
100555251111019101537151612510001000100022448154254236734001000100020005425421110011000100010000420010162021002242073116115401000543543544544543
10045424000003000527161602510001000100022448154254235534001000100020005425421110011000100010000420010162021002242073116115391000543543543543544
10045433000093000527161602510001000100022448154254236734001000100020005425421110011000100010000420010160021002242073116115401000544544544544544
10045434000003100528161612510001000100022448154254235534001000100020005425421110011000100010000420010160061002242073116115511000543543543543544
10045434000003100527161662510001000100022448154254235534001000100020005425421110011000100010000421010160021002242073116115391000543543543543544
10045434000003000527161612510001000100022448154254235534011000100020005425431110011000100010000420010162021002242073116115401000543544544543543
10045424000003000527161602510001000100022448154254235634001000100020005435421110011000100010000420010160021002242073116115401000543543544544543
10045424000003000528161602510001000100022448154254335534001000100020005425421110011000100010000421010163021002242073116115391000543543543543543
10045424000093000527161612510001000100022448154254235634011000100020005435431110011000100010000420010160021002242073116115511000543543543543543
10045424000003100527161612510001000100022448154354235534001000100020005425421110011000100010000420010160021002242073116115391000543543543543544

Test 2: throughput

Count: 8

Code:

  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  sturb w0, [x6, #1]
  mov x7, x6
  mov x8, x6
  mov x9, x6
  mov x10, x6
  mov x11, x6
  mov x12, x6
  mov x13, x6

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.5006

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)18191e1f22243a3f46494f51schedule 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 stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int store (96)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)a4ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafbcl1d cache miss st nonspec (c0)l1d tlb miss nonspec (c1)c2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
802054004330000000003100400271600258010010080000100800005001839448149369604004240042299553300018010020080000200160000400403199611802011009910080000100800001008000004200800020058000200005110151691040037800001004004340043400444004440041
802044004230000000003100400271616125801001008000010080000500183935214937100400434004329953293024680316200800002001600004004331996118020110099100800001008000010080000000080002221072801222420051441216111140039800001004043840424400894019540598
8020440204301000141013327921004002716167214580100100800001008010850018394721493696240043400402995332999880316200802402021600004004031995118020110099100800001008000010080184242008000000580002200051101116111340039800001004004540043400454004140044
802044004330000000003000400251616525801001008000010080000500183969314936967400474005229976330011801002008000020016000040063320041180201100991008000010080000100800161444018001601198000216441405110716111240051800001004005340048400544005540048
80204400472991001000170014003216165258010010080000100800005001839933149369724004740052299653300098010020080000200160000400473201611802011009910080000100800001008001415440280016011480002164414151101016101040044800001004005540067400554004840048
8020440063300101100014101400391516425801001008000010080000500183993314936972400544004729961330005801002008000020016000040063320001180201100991008000010080000100800141500180014011680000144414151101016101140048800001004005640054400484004840055
802044004729910000002000140032161612580100100800001008000050018396921493697540047400542996033000580100200800002001600004005232000118020110099100800001008000010080014150018001400168000216014051101116101340052800001004005540055400554005340048
8020440063300110000014101400481616625801001008000010080000500183969214936974400474005429967330021801002008000020016000040054320001180201100991008000010080000100800161444008001600178000214014151101116111040050800001004005340048400534005540065
8020440054300101000019001400370161258010010080000100800005001839692149369674005140054299603300128010020080000200160000400523200711802011009910080000100800001008001414420080014002080002164414151101216111340044800001004006440055400494004840056
8020440054300101000019101400321505258010010080000100800005001839692049369744005240053299653300128010020080000200160000400523200711802011009910080000100800001008001515440180016011480002164414151101216111140060800001004005540056400554005440048

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.5007

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)191e1f2223243a3f46494f51schedule 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)5f6061696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int store (96)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)a4ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafbcl1d cache miss st nonspec (c0)l1d tlb miss nonspec (c1)c2cfd0d2l1i cache miss demand (d3)d5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
800254004229900000021100140044016025800101080000108000050183942401049369604004240040299773300298001020800002016000040047400591180021109108000010800001080000034008000010080002163614150205001216794003980000104004340051400414004440043
80024400423000000000000040035161602580010108000010800005018397600054936962400424004229977330029800102080000201600004004040040118002110910800001080000108000000008000200280002234005020500121610104003980000104004940054400484006040048
80024400593001101001410014004316160258001010800001080000501840197010493697940052400592999333003180010208000020160000400514004711800211091080000108000010800141600180016021480002163614150200009161084005580000104004840062400534006140053
8002440051300101103140001400431616325800101080000108000050183995601049369804004840060299953300398001020800002016000040059400591180021109108000010800001080015140008001600148000216361405020500916984005080000104006040048400624005240059
80024400473001101001410014004416162258001010800001080000501839692005493697240060400522998733003880010208000020160000400584004711800211091080000108000010800151535028001400198000016361405020500101610134005580000104006140048400614006040061
80024400473001001001910014004501652580010108000010800005018399560104936980400474006029995330039800102080000201600004005940059118002110910800001080000108001514360080014512280002163614150205001016974013980000104006040048400484005340048
800244004729911010014000140032016325800101080000108000050183969200549369804005940060299953300278001020800002016000040058400581180021109108000010800001080014143601800160018800021436140502050071610124005080000104006140061400484004840059
800244005230010110014000140038161612580010108000010800005018396920054936978400474005829994330032800102080000201600004005240059118002110910800001080000108001415001800160117800021636140502050081610104053280000104013340060400544006040191
8002440047300100141218100140032161658580070108024010800005018402200154936979401884033629994330261800102080000201600004005240059118002110910800001080000108001514362180016401980002143614050205101016974005780000104005340059400564006140048
800244005130011000019000140032161622580010108000010800005018399080054936970400584005029982330039800102080000201600004005940058118002110910800001080000108001415360080016012480002163614050200006161194005480000104005240060400554006240054