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

STR (64-bit)

Test 1: uops

Code:

  str x0, [x6]
  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)03mmu table walk data (08)l2 tlb miss data (0b)1f223f46494f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)6d6emap 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 cache miss st (a2)a4st unit uop (a7)l1d cache writeback (a8)acafbcl1d cache miss st nonspec (c0)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)f5f6f7f8fd
1005542400315271616025100010001000224725425423553400100010002000543543111001100010001000420100202100224273216115391000543543543543543
1004542400305271616125100010001000224725425423563400100010002000542542111001100010001000420100202100224273116115401000544544544544543
1004542400305271616125100010001000224725425423553400100010002000542542111001100010001000420100202100224273116115391000543543543543543
1004542400305281616025100010001000224725425433563400100010002000542542111001100010001000420100202100224273116115391000544544543543543
1004542400315281616025100010001000224485545423553400100010002000554542111001100010001000420100202100224273116115391000543543543543543
1004542400305281616025100010001000224485425433563400100010002000554542111001100010001000420100202100224273116115391000543543543543543
1004542300305271616625100010001000224485435433553400100010002000542542111001100010001000420100202100224273116115391000541543555543543
1004542400305271616125100010001000224485435433553400100010002000542542111001100010001000420100212100224273116115391000544544544544544
1004543400315271616125100010001000224485425423553400100010002000542542111001100010001000420100222100224273116115391000543543543543543
1004554400305271616025100010001000224725425433563400100010002000542543111001100010001000420100202100224273116115391000543543543543543

Test 2: throughput

Count: 8

Code:

  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  str x0, [x6]
  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.5005

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)181e1f22233a3f46494f51schedule 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
802054005730011100310140038161612580100100800001008000050018403160493697840047400582997233001680100200800002001600004004931993118020110099100800001008000010080000034008000000280000234005110141612740039800001004004340041400434004340041
8020440049300000000101400441603258010010080000100800005001840316049369784005340047299603300068010020080000200160000400423199311802011009910080000100800001008000000008000000280002000051101016121140037800001004004140043400504004340043
80204400403000000001014004301652580100100800001008000050018399080493697940052400592996533001780100200800002001600004004231995118020110099100800001008000010080000034008000200280000234005110816101240037800001004004340041400434004340043
80204400503000000031014004516166258010010080000100800005001839693049369794005240052299663300178020820080000200160000400503199511802011009910080000100800001008000000008006200880002200051101216111140056800001004005440058400534005940052
8020440047300110001910040025161602580100100800001008000050018394240493696040042400402995332999880100200800002001600004004231993118020110099100800001008000010080000034008000010080002200051101216121340044800001004004840053400494005440060
8020440051299111001410040025161602580100100800001008000050018393520493696240042400512995333000080100200800002001600004004231993118020110099100800001008000010080000034008000000080002000051101216121240044800001004005340060400544005840051
80204400583001100319100400251616025801001008000010080000500183935204936960400404004229955329998801002008000020016000040042319951180201100991008000010080000100800000340080002000800020340051101316121140056800001004006040051400594005140053
8020440060300100061810040027016025801001008000010080000500183942404936970400404004029955330000801002008000020016000040042319931180201100991008000010080000100800000340080000002800000340051101216121040039800001004004140043400434004140041
8020440042300000003100400270160258010010080000100800005001839352049369694004040040299533299988010020080000200160000400473200611802011009910080000100800001008001514360080016001680000163614051101116111140397800001004004140051400434004340041
802044005130000000310040025160025801001008000010080000500183942404936971400404004029953330008801002008000020016000040047320111180201100991008000010080000100800151536008001601148000214014051101116121240048800001004004340041400434004340043

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03mmu table walk instruction (07)l2 tlb miss instruction (0a)1e1f22243f46494f51schedule 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 cache miss st (a2)st unit uop (a7)l1d cache writeback (a8)acafbcl1d cache miss st nonspec (c0)branch cond mispred nonspec (c5)cfd0d2d5map dispatch bubble (d6)ddfetch restart (de)e0ea? ldst retires (ed)? int retires (ef)f5f6f7f8fd
80025400503000003104002716160258001010800001080000501839424000493697140042400402997733002280010208000020160000400424004211800211091080000108000010800003480002128000023405020503164640046080000104004140043400514004340043
80024400492990000104002516168355801301080060108000050183976000049369624005140042299853300228001020800002016000040339402723180021109108000010800001080122348006028800002005020005165340047080000104004340041400434004140041
800244005130000031040027016025800101080000108000050183942400049369624005140050299853300228001020800002016000040051400421180021109108000010800001080000348000202800002005020003163540039080000104004340050400434004140043
80024400423000009004002716160258001010800001080000501839352000493696240042400402997533003180010208000020160000400424004011800211091080000108000010800003480002028000023405020005163540037080000104004140043400524004340043
8002440050300000310400341616025800101080000108000050184520500549369704004240051299773300228001020800002016000040042400401180021109108000010800001080000080000058000223405020003163540039080000104004140043400414005040043
80024400583000000104002716163258001010800001080000501839352000493696240051400502998533002280010208000020160000400514004011800211091080000108000010800003480002028000223405020003165340039080000104004340050400414005140043
80024400422990003004002716002580010108000010800005018393520004936962400424004029977330031800102080000201600004004240042118002110910800001080000108000008000202800022005020003163540037080000104004340043400434004140041
80024400423000003004002716160258001010800001080000501839352000493696040040400422997533002980010208000020160000400404004211800211091080000108000010800003480000088000023405020003167440037080000104004340043400434004140043
80024400423000003104002716160258001010800001080000501839472000493696040051400402997533002080010208000020160000400504004211800211091080000108000010800003480000028000223405020003163540039080000104004140050400434005140043
800244004230001600040027160025800101080000108000050183935200049369624004040040299773300208001020800002016000040042400421180021109108000010800001080000348000201798000023405020005165540037080000104004140041400434004140043