Skrivet av HolyFather:
Ja. Det bevisar de genom att inte uppfinna sin egen arkitektur.
Jag programmerade ARM 1987. Jag har 33 års erfarenhet av ARM. Jag har också erfarenhet av assemblerkod på alla andra större CPU:er före och efter 1987. Jag kan avgöra på 5 sekunder vilken arkitektur en binär är byggd för, om jag får en disassembly.
Om det räcker att ploppa dit en on-die-krets är varje tillverkare av mobiler, smart-TV, diverse vitvaror osv. CPU-tillverkare.
Snarare är det så att Apple vill att konsumenter ska tro att det är något speciellt med just deras modifierade ARM-CPUer, till skillnad från ovan nämnda hårdvarutillverkare, som också stoppar modifierade ARM-CPUer i sin hårdvara. De utnyttjar sina lojala konsumenters okunskap.
Tror du blandar ihop instruktionsuppsättning med mikroarkitektur. Apple använder någon annans (Arms) instruktionsuppsättning, fast de kör den på en mikroarkitektur de själva har designat från grunden.
Att de inte bara gjort lite modifieringar på någon annans design borde vara uppenbart när man kolla mängden arbete Apples "Firestorm" (namnet på mikroarkitekturen hos de "stora" kärnorna i A14/M1) utför per cykel, ingen annan är i närheten. Närmast är Arm själva med Cortex X1, Firestorm utför ~25 % mer per cykel jämfört med den och ~50 % mer än de Arm CPUer vi hittar i senaste generationen Android.
Den ISA som används existerande inte 1987, ARM64 och "vanlig" ARM är två helt distinkta instruktionsuppsättningar. Här är det åter igenom uppenbart att Apple har en helt egen design då de var först ut på marknaden med en CPU som kunde köra ARM64.
Samma funktion, en är ARM och en är ARM64
mov w5, w0
mov x3, 0
mov w0, 0
.L3:
cmp w2, w3
ble .L1
ldr w4, [x1, x3, lsl 2]
add x3, x3, 1
and w4, w5, w4
add w0, w0, w4
b .L3
.L1:
ret
mov r3, #0
str lr, [sp, #-4]!
mov lr, r0
mov r0, r3
.L3:
cmp r3, r2
ldrge pc, [sp], #4
ldr ip, [r1, r3, lsl #2]
add r3, r3, #1
and ip, ip, lr
add r0, r0, ip
b .L3
På assemblernivå ser de hyfsat lika ut, men på maskinkodsnivå är de väldigt olika.