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

LDRSW (literal)

Test 1: uops

Code:

  ldrsw x0, .+4

(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)1e2022233a3e3f40434f51schedule 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)8283flush restart other nonspec (84)85inst all (8c)inst int load (95)inst ldst (9b)9dl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)cfd5map dispatch bubble (d6)ddfetch restart (de)e0eaebec? ldst retires (ed)f5f6f7f8fd
1004400201320000038841611251000100010001463613943872093245100010003946411100110001000010124032102710000371052242264873116113849941000405404388388403
10043943004810100037912167251000100010001463203933942103253100010003957111100110001000110000032105013080261049121261673216113848741000388388388388388
10043873003210000037201692510001000100014663138739520932451000100038764111001100010000100500161026507027103261261673216113918771000388388388388396
10043873003200000372617925100010001000147160387387209324510001000387641110011000100001000001610365010026102662261673216113848741000388388388388388
1004386211320000037201672510001000100014636038738621332451000100039364111001100010000100000161026000026102661261673216113848741000388388388388388
1004387310320000037241682510001000100014684138738721032451000100038764111001100010000100700161026505626102661271673216113848741000388388388388387
10043872003271000372016825100010001000146360387387210324510001000386641110011000100001005011610260012026103461261673216113848741000388388388388388
10043873003300000377616625100010001000147160387387209324510001000393641110011000100001005001610271000626102661261673116113848741000388397388397388
1004387300325100037201682510001000100014632139638721032451000100038764111001100010000100000161036005027102661271673216113928721000395388388389388
1004386300487000037201682510001000100014632038738721032451000100038773111001100010000100000161026000026103661261673216113848741000397387388388388

Test 2: throughput

Count: 8

Code:

  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4
  ldrsw x0, .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e20223a3e3f40434f51schedule 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)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
80204267292000000016518026709111325801001008013010080000500116662704923635268682671916649316678801002008000020026719621180201100991008000010080000010080275133232800102880390011801271831132794545110316332671007112800001002672126713267142671326720
8020426713200304300385110266979115258010010080000100800005001166269049236352671326715166423166718010020080000200267136211802011009910080000100800000100800406824880011102039023800211212232354121511031633267120432800001002671426729267142671426714
8020426718200005600165123302669810132580100100800001008000050011665990492363326713267131664331667180100200800002002671362118020110099100800001008000001008028641316800125480830118021961111646256511031633267100442800001002672126717267152671426713
802042671320030470117013220267009110258010010080000100800005001166240049236352671326713166363166718010020080000200267136211802011009910080000100800000100804799311680011287037561180207611016153400511031633267100442800001002684826724267232671426715
80204267202004302200235011202669830325801001008000010080000500116663204923635267132671316637316671801002008000020026714621180201100991008000010080000010080501001680011366150001080198611016235292511031633267200442800001002671426714267142671526714
80204267132004805700170070026707433258010010080000100800005001166746049236332672326714166373166788010020080000200267136211802011009910080000100800000100801034316800112120454014802421211116332284511031633267100852800001002671426714267142671326724
80204267212014102000240016802669710032580100100800001008000050011758330492363326712270151672831667180100200800002002671362118020110099100800001008000001008027000080011387048901180136611016636124511031633268900432800001002671426714267142671426717
802042671620040290016003162669801325801001008000010080000500116632704923632267132671316637316673801002008000020026713621180201100991008000010080000010080396001680011720142820801951211116155220511031633267210442800001002671926714267142671426722
802042671120015050032500026712013258010010080000100800005001166530049236332671326712166363166718010020080000200267146911802011009910080000100800000100800743134880011236015482080117611016317133511031633267160432800001002671426714267212671426714
80204267152006701900395125502671440325801001008000010080000500116684304923633267182671316636316670801002008000020026715621180201100991008000010080000010080336013280021800240010802261811116582184511031633267180432800001002671926720267192672126714

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e2022292b3a3e3f404346494f51schedule 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)5f60696a6d6emap 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)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch mispred nonspec (cb)cfd0d5map dispatch bubble (d6)ddfetch restart (de)e0eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8002426969202000000441971001710026896131123676117258001010800001080000501172233014923729268372682616829316836800102080000202686471118002110901080000108000001080179519556802682312199323358046114221261351050114050200116112684037301080000102684926859268792684426863
8002426864201030010379810008722689313295083852580010108000010800005011721420049237932687326888169023168418001020800002026892711180021109010800001080000010800544928380232932922825380336961820725601229905020011611268322329880000102684326848268672685526855
80024268972020012004229910197226869946258190258001010800001080000501173255014923809268622690016851316860800102080000202689371118002110901080000108000001080152191639080285197019372400803629917302348195363050200116112691821362380000102687026874268782690626854
8002426876202131200389101000128026935119924241032580010108000010800005011707000149237592686126897168773168148001020800002026843711180021109010800001080000010802012510367803481722140343378048312118291315196145050200116112687216371980000102687226858268242685626830
80024268492011142003658800077226910959332211025800101080000108000050117624200492385126907269091680031685980010208000020268678311800211090108000010800000108017120213658031520832054028680451134223103441977191050200116112689522241180000102684026848268452686726865
8002426849200101100282105100178826891122144942832580010108000010800005011731020049237262683326823167603168378001020800002026856711180021109010800001080000010801392275048034218721783637480365115152734361960739050200116112690429191580000102686126844268752688326815
8002426850201121200300281001144268971195687898258001010800001080000501173891004923777268492694016800316821800102080000202686983118002110901080000108000001080212272135380286179314614342803748820259300195428305020011611268703222880000102688026829268322684426904
80024269332011221004751180001056269267313264587258001010800001080000501172875014923784268462683716796316843800102080000202685771118002110901080000108000011080151211447180274155410024282804319914246303192065805020011611268942219780000102685126863268582690426851
8002426855201110101394811008602693111662368425800101080000108000050117883800492376326834268111678331685380010208000020268687711800211090108000010800000108009059369802517821744230480420831422344808130150200116112690825311780000102684126827268472683326822
8002426853201000000342104100108026864123859351082580010108000010800005011738490149237682683126827167703168208001020800002026830711180021109010800001080000010801290035880302403752631180415123182683650894050200116112685121251780000102686126865268382684126836