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

MSR (APRR)

Test 1: uops

Code:

  msr s3_6_c15_c1_5, x0
  mrs x0, s3_6_c15_c1_5

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 0.000

Integer unit issues: 0.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f51606d6emap stall dispatch (70)map rewind (75)map stall (76)8283flush restart other nonspec (84)85inst all (8c)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0f5f6f7f8fd
1004102780101225110271075865387510271027111001107312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102770101225110271027865387510271027111001337312511102410281028102810281028
1004102770101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028
1004102780101225110271027865387510271027111001007312511102410281028102810281028

Test 2: throughput

Code:

  msr s3_6_c15_c1_5, x0
  mrs x0, s3_6_c15_c1_5

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 1.1127

retire uop (01)cycle (02)031e3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)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)9fl1d cache writeback (a8)acbranch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfmap dispatch bubble (d6)e0? int retires (ef)f5f6f7f8fd
10204111278601111234100100100500049804711127111279815798281002002001112788701110201100991001001005011171916111241001112811128111281112811128
10204111278601111234100100100500149804711127111279815798281002002001112788701110201100991001001001311171916111241001112811128111281112811128
10204111278601111234100100100500049804711127111279815798281002002001112788701110201100991001001000011171916111241001112811128111281112811128
1020411127861211112341001001005000498047111271112798157982810020020011127887011102011009910010010001211171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010001211171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010003011171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010006611171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010002111171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010001511171916111241001112811128111281112811128
102041112786011112341001001005000498047111271112798157982810020020011127887011102011009910010010001511171916111241001112811128111281112811128

1000 unrolls and 10 iterations

Result (median cycles for code): 1.0137

retire uop (01)cycle (02)030918191e1f3a3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)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)9fl1d tlb access (a0)ld unit uop (a6)l1d cache writeback (a8)acc2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int retires (ef)f5f6f7f8fd
10024101377800000010122261010105014970571013710137883338855102020101371013711100211091010100048006402282210134101013810138101381013810138
1002410137780000001012226101010501497057101371013788333885510202010137101371110021109101010000006402282210134101013810138101381013810138
1002410137780000001012226101010501497057101371013788333885510202010137101371110021109101010001306402282210134101013810138101381013810138
10024101377900008801012226101010500497057101371013788333889210202010137101371110021109101010001606402282210134101013810138101381013810138
1002410137790000001012226101010501497057101371013788333885510202010137101371110021109101010000006402282210134101013810138101381013810138
1002410137790000001012226101010501497057101371013788333885510202010137101371110022109101010000306402282210134101013810138101381013810138
1002410137780000001012226101010500497057101371013788333885510202010137101371110021109101010003006402282210134101013810138101381013810138
1002410137780006001012226101010500497057101371013788333885510202010137101371110021109101010000006402282210134101013810138101381013810138
1002410137790000001012226101010500497057101371013788333889210202010137101371110021109101010000006402282210134101013810138101381013810138
1002410137780000001012226101010500497057101371013788333885510202010137101371110021109101010001006402282210134101013810138101381013810138