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

LDR (literal, S)

Test 1: uops

Code:

  ldr s0, .+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)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0f1e2022233a3f4043464f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)60696d6emap 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 simd load (98)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)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0eaebec? ldst retires (ed)f5f6f7f8fd
1004386200005324000379000425100010001000147740361394394216324610001000394402111001100010000102021032103900005010201224016191073116113914221000400388395389395
10044093120037010137314008251000100010001509703683943932153252100010003933941110011000100001019200161029205124410201223932190073116113904221000389388396389394
10043883110053000237200092510001000100014887036238738821032451000100038638611100110001000010192001610290006471016613016191073116113854421000389405396402389
10044043101037000137200062510001000100014725036238838721032451000100039138611100110001000010201901610291060311010612916191073116113844121000388389389388388
10043873100038000137300432510001000100014774136238838821032451000100038638611100110001000110202101610291006371010613016191073116113842221000388387387388388
10043933111037000037300042510001000100014788036138638821032461000100038738611100110001000010191901610290004541027612916191073116113854421000389388389388388
10043873110037000137301052510001000100015023136338838921032461000100038838711100110001000010202001610291016411010612916191073116113844421000388388388389388
10043942111037010037300182510001000100015059036138739421732521000100039338611100110001000010212101610290006371010613016191073116113834221000389389388389388
10044022100037000137300042510001000100014759036338738821332461000100038738711100110001000010201901610291004531010612916190073116113784221000388389389388389
1004397310101600003650005251000100010001459903563803812033239100010003803851110011000100011007013210100001020101062201600073116113776321000381381382387388

Test 2: throughput

Count: 8

Code:

  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4
  ldr s0, .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e18191e1f20223a3e3f404346494f51schedule 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)60696b6d6emap 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 alu (97)inst simd load (98)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)a5ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)c2c3cfd5map dispatch bubble (d6)d8ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8020426731200162110001110007026720032272580100100800001008000050011751930266940267162672316646316678801002008000020026718267161180201100991001008000080000010080736023208004212732080185800961221116824985110216022267160432800001002671726719268202672426734
802042694120001405000250709026697620062580100123800001008000050011683070274520267152716116638316675801002048000020227411267134180201100991001008000080000010080789611321198004016411516228801396211162524225110216122222670922432800001002671426762272682671426714
802042693120002080006061200266980000264168801001008000010080712500117200112668802671327568166363017337801002008057520027273267131180201100991001008000080000010080078114132080402830900145801746110166971751102160222730121432800001002671926714267142671426725
80204267202000350750001705027702669762003258010010080130100807126261166200126688026717271671663631721780100200800002002682526713118020110099100100800008000001008024897016358003151717901458018512310161871555110216022267570432800001002672126714267132671426723
80204268662000009100017012114026957310037258010010080130100801785001169079026690026867267131663531667180100200800002002671326715118020110099100100800008000001008031612160800426184162670803286111161463925110216022267100432800001002671426714267142671426810
802042678620200047001170515016268520000325801001008000010080000500116858102682802671326925166433166718030420080000200267192671231802011009910010080000800000100804203511608003840813960176801786112164062125110216022267240432800001002671426714267142671426723
8020426867200000660004804110267030000102580100123800001188000057011683040266880267132672016635101667880479200800002002671326713118020110099100100800008000001008010500160800338121280558031412111163191495110216022267100532800001002671426719267142672426876
802042686920005606000017001002685451001072580255100801301008017850011716570266880269782671916804316667801002008019020026718269781180201100991001008000080000010080346186016080152108315969478010412221324511425110216022267100532800001002672026725267202671626718
802042685220005302200020502652026704000072580100100800001278000060111725221267020267182681816642316677801002008000020026713267191180201100991001008000080000010080192013208001394186161168018712120324941555110233022268530432800001002672826724267172672426739
8020426735200043048100340701026699120003258010010080000100800005001166655126695026721267131663631668980100200800002002671326713118020110099100100800008000001008013033160800394454331611580025611016741555110216022267100432800001002692526714267152696826714

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03mmu table walk data (08)09l2 tlb miss data (0b)1e202223292b3a3e3f404346494f51schedule 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)696d6emap 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 alu (97)inst simd load (98)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)c2c3cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
800242697720101028390100011562682510786374172258001010800001080000501176109268432685026903168413168188001020800002026820268471180021109010108000080000010801280527280272170216320502803251451725029619240050205163326859023181180000102683426842268502682826833
8002426872201010380108102409362683910764033752580010108000010800005011733492681726834268281679031682280010208000020269292691511800211090101080000800000108013602333880347194218042320805011102225326265129050203163326844032231780000102691826878269262686826880
8002426920201000470115100093626785120123221692580010108000010800005011764622678726837268411678131680280010208000020268462689411800211090101080000800000108014721734680319105317364391803401302329334749110050202162326848027302080000102690126892269042691326887
8002426851201110353631001370268407165652962580010108000010800005011769272683426843268601678731683880010208000020268672685111800211091101080000800000108016401130180300132321722340804451112527938024219050203162326854025191280000102682926877268682684226825
8002426959201000409143000096026843857195277258001010800001080000501183176268572685027349168233168278036820800002026857268691180021109010108000080000010801220133118021710341788628480380761418525035269050202163326848026331180000102684026878268202682526837
800242694020100535524102401372268317210854987258001010800001080000501178183267932685026875168263168378001020800002026883268831180021109110108000080000010801110627980228157210336268805641311519627710121050203163326848022241080000102681826864268532685526864
8002427030202620370119000111642686097539721022580010108000010800005011742232688126850268231676931687880010208000020269712682311800211090101080000800000108008901727280226133215530406804071742025332512110050203163226850028181080000102685926869268602692326914
800242700820100032168102408802685311611382581258001010800001080000501174824268662681026828168243168488001020800002026874268591180021109010108000080000010801440836780250192213162373804681301520926972656050203163326840032191880000102685926877269372685926836
80024269702011003766710005442680178550478125800101080000108000050117710126782268382684716842316830805462080000202688926861118002110901010800008000001080075013478802799031036636880415188202544334575050203163326889015221180000102681026842268242683726841
8002427004201000425210000123226824846474280258001010800001080000501177944268282705526844167593168438001020800002026864268521180021109010108000080000010802072163318019317031645029780369101171962436115405020316432683412917780000102686626870268442684826849