procesoru arhitektura

Arhitektūras atšķirības, kas nosaka ierīču veiktspēju

Ja seko datoru jaudai ne tikai GHz līmenī, agrāk vai vēlāk atduries pret diviem lielajiem burtiem, proti, ARM un x86. Šo rakstu uzrakstījām, jo praksē tieši arhitektūras izvēle bieži izskaidro, kāpēc viena ierīce dzīvo uz baterijas visu dienu, bet cita velk smagu kompilāciju vai 3D renderi bez žēlastības.

Lasīt tev to ir vērts, ja gribi saprast, ko reāli nozīmē datora procesors dažādos formfaktoros un kāpēc vienas un tās pašas programmas uz dažādām platformām var uzvesties kā no cita Visuma.

Kāpēc arhitektūra atkal fokusā

Pēdējos gados robeža starp mobilais un darbvirsmas compute ir kļuvusi miglaina. Telefoni saņem desktop-klases veiktspēju, bet portatīvie arvien biežāk tiek būvēti ap energoefektivitāti, nevis tikai brutālu TDP. ARM balstīti klēpjdatori ienāk korporatīvajā vidē, savukārt x86 čipi kļūst hibrīdāki un agresīvāk optimizē perf-per-watt.

Interesants fakts ir tas, ka daudzos ikdienas uzdevumos bottleneck vairs nav tīrs CPU, bet atmiņas latentums, kešatmiņas uzvedība vai pat scheduler loģika. Tas nozīmē, ka arhitektūras dizaina izvēles ietekmē lietotāja pieredzi vairāk nekā sintētiskais single-core rezultāts.

iericu planosana

ARM un x86 pamata atšķirības

Lai saprastu, kāpēc viena platforma uzvedas citādi nekā otra, jāskatās dziļāk par mārketinga slaidiem. ISA, mikroarhitektūra un ekosistēmas optimizācijas kopā veido reālo veiktspējas profilu.

ISA dizaina filozofija

x86 vēsturiski nāk no CISC pasaules ar lielu, vēsturiski uzkrātu instrukciju kopu. Mūsdienu kodolos šīs instrukcijas bieži tiek pārkodētas mikro-operācijās, lai tās efektīvi izpildītu out-of-order dzinējs. Tas nozīmē sarežģītāku front-end, bet ļoti elastīgu izpildes modeli.

ARM tipiski asociē ar RISC pieeju, kur raksturīgas regulārākas, vienkāršākas instrukcijas, efektīvāka dekodēšana un labāks enerģijas profils noteiktos slodzes scenārijos. ISA ietekmē arī kompilatoru stratēģijas, bināro saderību un to, cik dārga būs emulācija vai binārā translācija.

Enerģijas un termālais budžets

ARM dizaini tradicionāli fokusējas uz perf-per-watt. Agresīvs power gating, elastīgs DVFS un cieša integrācija SoC līmenī ļauj ilgstoši noturēt stabilu veiktspēju bez agresīva throttling.

x86 ekosistēmā spektrs ir plašāks, sākot no ultramobiliem čipiem līdz workstation klasei ar augstu TDP. Maksimālā veiktspēja bieži nozīmē arī lielāku siltuma izkliedi un prasīgāku dzesi. Rezultātā divi procesori ar līdzīgu peak var radikāli atšķirties ilgstošā slodzē.

Kompilatori un bibliotēkas

Arhitektūra pati par sevi negarantē ātrumu. Izšķiroša loma ir

  • kompilatora optimizācijām un mērķējumam uz konkrētu ISA,
  • SIMD izmantošanai,
  • OS scheduler spējai pareizi sadalīt pavedienus,
  • optimizētām bibliotēkām, piemēram, BLAS vai video kodekiem.

Ja aktuāla ir praktiskā izvēle starp konkrētiem modeļiem, pirms pirkuma ir vērts apskatīt arī datoru iegāde aspektus, īpaši, ja mērķis ir sabalansēt cenu un veiktspēju bez pārmaksas par jaunāko paaudzi. Savukārt mobilam darbam noderīgs ir portatīvo salīdzinājums, kur fokuss ir uz reāliem lietošanas scenārijiem, nevis tikai specifikāciju tabulām.

Veiktspēja zem slodzes

Lai izvairītos no reliģiska ARM pret x86 strīda, jāskatās uz to, kas notiek zem pārsega, proti, dekodēšana, izpildes ceļš, atmiņas sistēma un slodzes raksturs.

Dekodēšana un front-end

x86 dekodēšana ir sarežģītāka instrukciju dažādības dēļ, taču high-end dizainos to kompensē ar jaudīgu front-end, mikro-op kešiem un plašu izpildes logu. Tas ļauj efektīvi izmantot out-of-order izpildi pat sarežģītā kodā.

ARM dekodēšana bieži ir vienkāršāka un energoefektīvāka. Ilgstošās vidējās slodzēs tas var nozīmēt mazāku siltuma uzkrāšanos un stabilāku frekvenci bez agresīva throttling.

SIMD un multimediji

Abas arhitektūras izmanto vektorinstrukcijas.

  • x86 pasaulē SSE un AVX atvasinājumi,
  • ARM pasaulē NEON un citi paplašinājumi.

Ja aplikācija ir labi optimizēta konkrētam SIMD, atšķirības var būt dramatiskas. Ja optimizācijas nav, viss atgriežas pie IPC, kešatmiņas efektivitātes un atmiņas caurlaidības.

Atmiņas apakšsistēma

Kešu hierarhija, latentums un atmiņas kontrolieris bieži nosaka reālo snappiness. CPU var būt jaudīgs, bet, ja L3 kešs ir mazs vai RAM latentums augsts, sistēma jutīsies gausa.

Turklāt tirgus dinamika ietekmē arī izmaksas. Piemēram, publiskajā telpā izskanējušās RAM tirgus apsūdzības atgādina, ka platformas cena un pieejamība var būt tikpat svarīga kā tehniskā specifikācija.

Saderība un translācijas izmaksas

x86 joprojām dominē legacy Windows vidē, kur būtiska ir vecāku rīku, draiveru un specifisku biznesa aplikāciju pieejamība. ARM platformās biežāk jārēķinās ar portētiem buildiem vai bināro translāciju.

Ikdienas biroja darbā translācijas slānis var būt pietiekami efektīvs. Taču smagās dev slodzēs, virtualizācijā vai CAD scenārijos papildu abstrakcijas slānis var ieviest latentumu un neprognozējamu veiktspējas kritumu.

mikroshemu detalas

Kur kura pieeja uzvar

Viedtālruņos un planšetēs ARM dominē, jo cieša SoC integrācija un energoefektivitāte ir kritiska. Darbstacijās ar specifisku profesionālo softu x86 bieži ir drošāka izvēle saderības un perifēriju atbalsta dēļ.

Portatīvajos datoros rezultātu nosaka konkrētais modelis, dzeses kvalitāte un optimizācija. Uzraksts ARM vai x86 viens pats neko negarantē bez konteksta par TDP, throttling un reālo workload.

Praktiski izvēles principi

Ja jāpieņem lēmums, pieej tam kā inženieris, nevis mārketinga bukleta lasītājs.

Pirmkārt, inventarizē savu softu un pārbaudi native atbalstu. Otrkārt, analizē savu tipisko slodzi, vai tā ir īsa un interaktīva, vai ilgstoša un paralēla. Treškārt, novērtē visu sistēmu kopumā, izvērtējot RAM apjomu, SSD veiktspēju un dzesi, jo bieži tieši tur slēpjas īstais bottleneck.

Labs procesors nav tas, kuram ir skaļākais boost skaitlis, bet tas, kas tavā workflow nodrošina stabilu, prognozējamu veiktspēju bez termālām drāmām un saderības kompromisiem.