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

B

Test 1: uops

Code:

  b .+4

(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)03mmu table walk data (08)1e3a3f51606d6emap rewind (75)map stall (76)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)l1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0f5f6f7f8fd
100419361500119920180200420443102008205411100110001000002006642875521493198519751931200519892043
1004199815001187201411814200831020142004111001100010000019404141139404487190321571987187920671997
10041950150059318281183621603101976199211100110001000001952487979526476201920432071196921431983
100420081500128020721195820843102084196811100110001000001968519939527494201519932009187121532003
1004196015001168199801994204231019722044111001100010000019424771029428523202920451967190120632091
100419801500793203001954196031018922102111001100010000019924521009482489195119712015191320672079
10041996140079319581205819863101984200411100110001000001946428961461504205919532083205719611965
100420981500129919561202818903101860207411100110001000002070463983424524192120531993207920792063
100420301300149920261204619603101892206811100110001000001980480951460458198719611965206719691909
100420021500116819620197820203101966208811100110001000001970415991387481193720191989203118892069

Test 2: throughput

Count: 8

Code:

  b .+4
  b .+4
  b .+4
  b .+4
  b .+4
  b .+4
  b .+4
  b .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03mmu table walk instruction (07)mmu table walk data (08)l2 tlb miss instruction (0a)l2 tlb miss data (0b)18191e1f3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap 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)l1d tlb miss (a1)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
80204812546060000000028802751001001005000497768480768807666101002002008077664730118020180100800991001001000000030111807554146753213248077501008076780769807718076580767
80204807986051010000028802671001001005000497768080768807606101002002008076464716118020180100800991001001000000060111807413186453153198076901008076980771807718077580779
8020480776605101000162028802631001001005000497770880798807946101002002008079864756118020180100800991001001000000060111807393156353143148075901008077980765807638076580771
80204807726051010000028802671001001005000497768480758807626101002002008076664724118020180100800991001001000000030111807433146373113138076901008076780761807698076980769
802048077460510100000693802631001001005000497769280772807686101002002008077264730118020180100800991001001000000090111807473146413143158076901008077580765807718076980773
80204807846051010000028802631001001005000497768080764807706101002002008076264724118020180100800991001001000000030111807473176473153168076901008076980769807718077380773
80204807806051010000028802631001001005000497768680768807586101002002008076864718118020180100800991001001000000030111807713236693263288078301008079380795807938079380789
80204807746051010000028802671001001005000497770280782807866101002002008077664738118020180100800991001001000000060111807573196473193178077501008077380767807698076580763
80204808026051010000028802631001001005000497769280762807666101002002008077064718118020180100800991001001000000030111807513126393213168077301008077180775807778078180775
8020480798605101000006938027710010010050004977688807728077661010020020080772647121180201801008009910010010000000120111807913186433143208076301008076980767807698076580771

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1i tlb fill (04)mmu table walk data (08)0918191e1f3a3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6b6d6emap 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 miss (a1)l1d cache writeback (a8)a9acc2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd2l1i cache miss demand (d3)d5map dispatch bubble (d6)ddfetch restart (de)e0ea? int retires (ef)f5f6f7f8fd
800242400581798100000017336239989101010500492369620240042240044610102020240044240044118002180010800091010100003011124002100798331600147995480002240041010240043240045240045240043240043
8002424004417982000081014172239989101010500492369620240044240044610102020239508240042118002180010800091010100000011124001900800031600167995280004239849010240041240047240047240037240045
800242400481798100000018178239991101010501492369620240104240044610102020240042240044118002180010800091010100000011124002100800011600167995580002240041010240045240045240043240043240043
800242400441798200000017193239991101010500492369640240042240044610102020240042240044118002180010800091010100000011124002100800011600167995479904240039010240045239863239509240043240045
800242400421798200000019189239816101010500492369660240044240044610102020240042240044118002180010800091010100000011124001900800011600167995580000240039010240045240045240043240045240045
800242400691798200000017325239991101010500492369640240044240044610102020240044240044118002180010800091010100000011124002100800001600167995380002240041010240045240045240045240045240045
800242400441798200000017214239991101010500492369640240044240044610102020240044240042118002180010800091010100000011124002100800011600167995480002240041010240045240045240045240045240045
8002424004417982000000231997239991101010500492369620240044240112610102020240044240044118002180010800091010100000011124002100800011600167995580002240041010240045240045240045240045240045
80024240044179820000001783723999110101050049236962024004424004461010202024004424004411800218001080009101010000195011124002100800011600167995480002240041010240045240045240045240045240045
800242400421798200000017172239991101010500492369640240044240042610102020240044240044118002180010800091010100000011124002100800011600167995580002240041010240045240045240045240043240045