Fa'ata'ita'iga Ma'ale'ale ma ona Fa'aoga
O le Microarchitecture o le "totonu" lea o se processor: o le auala e fausia ai se CPU ma galue ai i totonu e faatino ai faatonuga ua faamatalaina e se Instruction Set Architecture (ISA) e pei o le x86, ARM, po o le RISC-V. Afai e mafai ona faatusaina se ISA i tulafono o se gagana—o se faaputuga o upu ma a latou kalama—o lona uiga o le microarchitecture o le auala lea e fausia ai e le faiʻai le faagasologa o mafaufauga ina ia mafai ona malamalama ma tautala vave i na fuaiupu, i le faaaogaina lelei o le malosi, ma le mautu. E toatele tagata e iloa igoa o le processor e ala i le ituaiga po o le faasologa, ae o eseesega moni i le faatinoga ma le lelei e masani ona fuafuaina e ala i faaiuga i le tulaga o le microarchitecture.
Malamalama i le sootaga i le va o le ISA ma le microarchitecture
E mafai e se ISA e tasi ona i ai ni faʻatinoga faʻapitoa o le microarchitectural. Mo se faʻataʻitaʻiga, e mafai e ni processors se lua ona lagolagoina se ISA faapitoa, ae e eseese a latou mamanu i totonu: o le tasi e fiafia i le saoasaoa maualuga o le uati, o le isi e fiafia i le aofaʻi o cores poʻo le lelei o le eletise. O lenei mea e faʻamatalaina ai le mafuaʻaga e le tutusa ai le faʻatinoina o galuega a CPUs e lua o loʻo faʻatinoina faʻatonuga "tutusa".
O le fausaga la'ititi e aofia ai vaega e pei o paipa, fa'atinoga e le o fa'atonuina, vavalo o lala, fa'atulagaga o le teuina o mea, iunite fa'atino (ALU/FPU), ma auala e pulea ai le eletise. O nei vaega ta'itasi e fesoasoani i sini lautele e tolu: fa'atinoga, fa'aogaina lelei o le malosi, ma le tau/faigata.
Vaega autū o le microarchitecture
1. Paipa: laina fa'apotopoto o fa'atonuga
E vaevaeina e se pipeline le fa'atinoina o fa'atonuga i ni vaega se tele, e pei o le fetch (fetching o fa'atonuga), decode (fa'aliliu), execute (fa'atinoina), memory access (memory access), ma le write-back (result writing). Faatasi ai ma se pipeline, e mafai e le CPU ona fa'agasolo le tele o fa'atonuga i totonu o se stack, e pei lava o se laina fa'apotopotoga a le falegaosimea.
O le loloto o le pipeline, o le maualuga foi lea e mafai ona o'o i ai le CPU. Peita'i, o se pipeline e loloto tele e fa'ateleina ai le fa'asalaga mo vavalo sese o lala ma fa'ateleina ai le faigata o le pulea.
2. Superscalar ma le Fa'atonuga-Level Parallelism
O CPU fa'aonaponei e masani lava ona superscalar, o lona uiga e mafai ona latou fa'atinoina le sili atu ma le tasi fa'atonuga i le ta'amilosaga ta'itasi ma le tele o iunite fa'atinoina tutusa. O lenei mea e fa'aaogaina ai le fa'atonuga-level parallelism (ILP), o le gafatia e fa'atino ai le tele o fa'atonuga tuto'atasi.
Peita'i, e le o taimi uma e maua ai le ILP. Afai e tele fa'alagolago i fa'amaumauga po'o ni lala se tele o se polokalama, e le fa'aaogaina atoatoa lenei gafatia tutusa. O le mea lea, e fa'alagolago fo'i microarchitectures i isi metotia e "fa'atumu" ai iunite fa'atino e puipuia ai mai le leai o se galuega.
3. Fa'atinoina i fafo atu o le fa'atonuga (OoO)
O le fa'atinoina i fafo atu o le fa'asologa e mafai ai e le CPU ona fa'atino fa'atonuga i fafo atu o le fa'asologa, pe afai e sa'o le i'uga mulimuli. Mo se fa'ata'ita'iga, afai o lo'o fa'atali se fa'atonuga mo fa'amatalaga mai le manatua, e mafai e le CPU ona fa'atino se isi fa'atonuga ua sauni. Ina ia faia lenei mea, e fa'aaoga e le CPU vaega e pei o le toe fa'atulagaina o buffers, nofoaga o fa'amaumauga, ma le toe fa'aigoaina o le resitala.
E fa'aleleia atili e le OoO le fa'atinoga, ae mana'omia ai le tele o le vaega ma le malosi o le silicon, ma fa'ateleina ai le faigata o le fa'amaoniga. I nisi masini e maualalo le malosi, e mafai e tagata mamanu ona filifili mo se fa'atinoga faigofie o le fa'asologa.
4. Vavalo o lālā ma le faʻatinoga faʻapitoa
O fa'atonuga o le fa'alava (if/else, loop) e fa'amalosia ai le CPU e filifili se ala e fa'atino ai. O le fa'atali mo se fa'ai'uga o le lala o le a "fa'aleaogaina" ai le paipa. O le vavalo o lala e taumafai e mate'i po'o le fea ala o le a uia, ma fa'atagaina ai le CPU e fa'aauau pea ona fa'agaoioia e aunoa ma se taofi.
Afai e sa'o le valo'aga, e fa'aleleia atili le fa'atinoga. Afai e sese, e tatau i le CPU ona lafoa'i le i'uga fa'atatau (fa'amama) ma toe amata, ma mafua ai se fa'asalaga o le ta'amilosaga. O le valo'aga fa'apitoa o le lala o se mea taua tele e fa'atino ai galuega masani, ae ua feso'ota'i fo'i ma mataupu tau saogalemu e pei o le Spectre, lea e fa'aaogaina ai a'afiaga fa'atatau.
5. Fa'asologa o mea e teu ai: L1, L2, L3
E sili atu le saoasaoa o le CPU nai lo le manatua autu (RAM). O le manatua o le cache o se manatua laʻititi ma vave tele e faʻaaogaina e teu ai faʻamatalaga e masani ona maua. E masani ona i ai ni vaega se tele: L1 (sili ona vave ma sili ona laʻititi), L2 (tele), ma le L3 (sili atu ona tele, e masani ona faʻasoa i le va o cores).
O le mamanu o le cache o se fesuia'iga taua: o cache tetele e fa'aitiitia ai le misia, ae e sili atu ona taugata ma e mafai ona fa'agesegese. O faiga fa'avae o le prefetching ma le coherence o le cache i luga o le tele-core systems e taua tele fo'i i le microarchitecture.
6. Iunite fa'atino: numera atoa, tulaga fe'avea'i, SIMD, ma mea fa'apitoa
E tele iunite o le CPU: ALU mo galuega fa'atino integer, FPU mo numera fa'avaega, iunite uta/teuina mo le manatua, ma le SIMD (e.g. AVX/NEON) mo le fa'agasoloina o le tele o fa'amatalaga i le taimi e tasi—e matua aoga tele mo multimedia, fa'apipi'iina, ma e o'o lava i le a'oa'oina mama o masini.
E le gata i lea, o masini fa'aonaponei e masani ona aofia ai ni fa'atelevave fa'apitoa (e fuafua i le fa'avae), e pei o le fa'ailoga fa'alilolilo, fa'akomepiuta AI, po'o le fa'agasologa o fa'ailoilo ata i masini feavea'i. E ui e le o taimi uma e ta'ua ai o le "pure CPU microarchitecture," o lenei tu'ufa'atasiga e a'afia ai le mamanu atoa o le system-on-chip.
7. Pulega o le eletise ma le mamanu o le vevela
E fuafua fo'i e le microarchitecture le auala e fetu'una'i ai e le processor le voltage ma le frequency (DVFS), tape vaega e le'i fa'aaogaina (clock gating, power gating), ma tausia le vevela i totonu o tapula'a. I komepiuta feavea'i ma telefoni feavea'i, e masani ona sili atu le taua o le lelei o le watt nai lo le maualuga o le fa'atinoga.
O le faʻaaogaina o le microarchitecture i le lalolagi moni
1. Fa'aleleia le fa'atinoga o le komepiuta ma le 'au'aunaga
O fa'aaogāga sili ona manino o le fa'aleleia atili lea o le fa'atinoga o talosaga i aso uma (browsers, talosaga o le ofisa), fa'atekinolosi fa'akomepiuta (fa'ata'ita'iga), ma auaunaga a le 'au'aunaga (fa'amaumauga, auaunaga upega tafa'ilagi). O metotia e pei o le OoO, fa'amaumauga fa'apitoa, ma le vavalo o lala e fa'avavevave ai le fa'agaoioiga o polokalame e aunoa ma le fa'ateleina tele o le tele o taimi.
I totonu o se nofoaga autu o faʻamaumauga, o suiga laiti i le lelei o le fausaga o faʻamaumauga laiti e mafai ona faʻaliliuina i le tele o le faʻasaoina o le eletise ma le faʻamālūlūina. O le mafuaʻaga lea e taulaʻi ai le mamanu o fausaga o faʻamaumauga laiti a le 'auʻaunaga i le throughput, memory bandwidth, ma le gafatia o le tele o filo.
2. Fa'aleleia le fa'aogaina lelei o le malosiaga i masini feavea'i
E manaʻomia e telefonipoto le faʻatinoga maualuga mo meapueata, taʻaloga, ma le AI, aʻo faʻasaoina foʻi le umi o le ola o le maa. O le mea lea, e masani ona tuʻufaʻatasia e microarchitectures feaveaʻi ni cores e faʻasaoina le malosi ma ni cores faʻatinoga (le auala big.LITTLE poʻo ni suiga faʻapena). O lenei mea e mafai ai ona tuʻuina galuega mama i luga o cores laiti ma galuega mamafa i luga o cores tetele, ma iʻu ai i le faʻasaoina o le malosi e aunoa ma le faʻaitiitia o le tali vave.
3. Fuafua amioga saogalemu ma le faʻaitiitia o le lamatiaga
E lē gata i le saoasaoa le microarchitecture; ae e aʻafia ai foʻi le saogalemu. O faiga faʻapitoa, caches, ma le vaʻaiga o lālā e mafai ona faʻalauiloa mai ai auala faʻaopoopo. Ona atiaʻe lea e le alamanuia ni faʻaitiitia o faʻafitauli i tulaga o polokalama faakomepiuta ma masini komepiuta, e pei o suiga i mea e vavalo ai faʻamatalaga, vavaeʻesega faʻapitoa, poʻo metotia o le vaevaeina o cache. O le malamalama i le microarchitecture e fesoasoani i inisinia saogalemu e iloilo ai tulaga lamatia ma filifili ni faʻatulagaga talafeagai o le faʻaitiitia o faʻafitauli.
4. Fesoasoani i le au atina'e e fa'aleleia atili polokalama faakomepiuta
E tusa lava pe le mamanuina e le au atia'e ni CPU, e mafai ona latou tusia ni code vave e ala i le malamalama i amioga a le microarchitectural. Mo se fa'ata'ita'iga:
– Fa'aitiitia le misia o fa'amaumauga e teu ai fa'amaumauga (cache) i ni fausaga fa'amaumauga e sili atu ona faigofie ona teu ai fa'amaumauga (cache).
– ʻAloʻese mai lālā e lē manaʻomia pe faia ni mamanu o lālā e sili atu ona mafai ona vavaloina.
– Fa'aaogaina le SIMD mo galuega fa'atino vector.
– Fa'aitiitia le fefinaua'iga i luga o le tele o filo e fa'aosofia ai le feoa'iga o le cache coherence.
I le matata o le fa'atinoga maualuga o komepiuta (HPC), o lenei malamalama e taua tele aua e masani ona fa'atapula'aina le fa'atinoga e le bandwidth o le manatua, ae le na'o le aofa'i o fa'atonuga.
5. Avea ma faavae mo mamanu fou o masini komepiuta
I totonu o a'oa'oga maualuluga ma le alamanuia o semiconductor, o le microarchitecture o se fa'avae mo le fa'afouga: fa'ateleina le lautele o le fa'atinoga, suia o faiga fa'avae o le cache, fa'aleleia atili o va'aiga o lala, po'o le mamanuina o auala eseese (CPU + accelerator). O lona aoga e manino lava i le tauvaga o oloa: o se tupulaga e tasi o mamanu fou e mafai ona aumaia ai ni fa'aleleiga taua i le IPC (fa'atonuga i le ta'amilosaga) ma le lelei, e tusa lava pe tumau pea le le suia o le tele o taimi.
Luʻitau ma itu o le atinaʻe
O fausaga laiti faʻaonaponei e feagai ma tapulaʻa o le fisiki: le tafe atu o le eletise, le faʻatupuina o le vevela, ma le faʻateleina o le lavelave. Talu ai ona o le faʻateleina o le tele o taimi e le faigofie e pei ona i ai muamua, ua suia le taulaʻiga i:
– Fa'atusatusaga maualuga (multi-core, SMT).
– Fa'atelevave fa'apitoa mo galuega fa'apitoa.
– Fa'aleleia atili o le fa'asologa o manatuaga ma feso'ota'iga.
– O le fa'aaogāina lelei o le malosiaga o se fua autū lea.
– Puipuiga o fausaga laiti mai le amataga o le mamanu (puipuiga e ala i le mamanu).
I tausaga talu ai nei, o le auala eseese—o le tuʻufaʻatasia o CPU faʻamoemoega lautele ma le AI faʻapitoa, ata, ma iunite faʻasalalauga—ua faʻateleina le taatele, aemaise lava i SoCs.
I'uga
O le Microarchitecture o le faavae lea e fuafua ai le auala e faatino ai e se processor ni faatonuga: le vave, le lelei o le malosiaga, ma le saogalemu. O paipa, le faatinoina i fafo atu o le faasologa, le vavalo o lala, caches, iunite faatinoina, ma le pulega o le malosiaga o vaega taua uma ia e felagolagomaʻi. O ona faʻaaogaina e aofia ai le faʻaleleia atili o le faatinoga o komepiuta ma le server ma le faʻasaoina o le ola o le maa i masini feaveaʻi e fesoasoani ai i le faʻaleleia atili o polokalama faakomepiuta ma le faʻamalosia o le saogalemu o le polokalama. O le malamalama i le microarchitecture o lona uiga o le malamalama i mafuaʻaga o loʻo i tua atu o eseesega o le faatinoga i le va o processors, aʻo faʻaalia ai foʻi ni malamalamaaga i le auala o loʻo faʻaauau pea ona alualu i luma le tekinolosi faakomepiuta.
Afai e te manaʻo ai, e mafai ona ou fetuʻunaʻia lenei tusiga i se tulaga patino (e.g. mo galuega atofaina a le aʻoga/kolisi, mo se blog lautele, poʻo se faʻamatalaga faʻapitoa e faʻatasi ai ma siata tafe o paipa ma faʻataʻitaʻiga o mataupu faʻaleleia).