Kompjuterët janë të programuar me gjuhë programimi. Këto gjuhë janë përgjithësisht të lexueshme nga njeriu dhe lejojnë programuesin të konfigurojë atë që bën kompjuteri. Ky kod më pas duhet të përpilohet në udhëzimet kompjuterike. Detajet e sakta të kësaj ndryshojnë në varësi të arkitekturës së grupit të udhëzimeve ose ISA që përdor kompjuteri i synuar. Kjo është arsyeja pse ka lidhje të ndryshme shkarkimi për CPU-të x86 nga Intel dhe AMD, dhe CPU-të ARM siç përdoren në pajisjet moderne Apple. ISA e x86 dhe ARM është e ndryshme; softueri duhet të kompilohet veçmas. Siç ka treguar Apple, është e mundur të ndërtohet një shtresë përkthimi e zbukuruar; thjesht nuk është e zakonshme ta bësh këtë.
Ju mund të mendoni se CPU i sheh instruksionet me të cilat paraqitet dhe më pas i ekzekuton ato sipas renditjes. Ka shumë truke që bëjnë CPU-të moderne, duke përfshirë ekzekutimin jashtë rendit, duke i lejuar CPU-së të rirendisë gjërat në fluturim për të optimizuar performancën. Megjithatë, një pjesë e zgjuar që fshihet mjaft mirë janë mikrooperacionet.
Tubacioni për Mikro-Operacion
Instruksionet individuale në kodin e makinës mund të quhen instruksione ose operacione; termat janë të këmbyeshëm. Një nga vështirësitë me Complex Instruction Set Computing ose arkitekturat CISC si x86 është se udhëzimet mund të ndryshojnë në gjatësinë e tyre. Kjo në mënyrë specifike i referohet se sa të dhëna marrin për të përfaqësuar. Në x86, një instruksion mund të jetë i shkurtër sa një bajt ose i gjatë deri në 15. Krahasoni këtë me arkitekturën standarde RISC-V të përdorur nga CPU-të moderne ARM me udhëzime 4-bajtë me gjatësi fikse.
Këshillë: RISC do të thotë Reduced Instruction Set Computing.
Një nga implikimet e këtij ndryshimi në strukturë është se arkitekturat RISC priren të jenë shumë më të lehta për t'u tubuar në mënyrë efikase. Çdo instruksion ka disa faza të funksionimit të tij që përdorin pajisje të ndryshme. Pipelining kryen udhëzime të shumta nëpër këto faza në të njëjtën kohë, me saktësisht një instruksion në çdo fazë. Tubacioni ofron një rritje të konsiderueshme të performancës kur përdoret me efikasitet. Një faktor kyç në përdorimin efikas të një tubacioni është sigurimi që çdo fazë të përdoret njëkohësisht. Kjo bën që gjithçka të rrjedhë pa probleme përmes tubacionit.
Duke qenë se të gjitha udhëzimet kanë të njëjtën gjatësi, udhëzimet RISC priren të kërkojnë të njëjtën kohë përpunimi si njëra-tjetra. Megjithatë, në një CISC, si x86, disa udhëzime mund të zgjasin shumë më tepër për t'u përfunduar se të tjerat. Kjo krijon një problem të madh të efikasitetit gjatë tubacionit të një CPU. Sa herë që vjen një udhëzim më i gjatë, ai ngec në tubacion për më gjatë. Kjo shkakton një flluskë dhe mban gjithçka pas saj. Mikro-operacionet janë zgjidhja për këtë.
Mikro-operacione efikase
Në vend që të trajtohet çdo udhëzim si niveli i vetëm i funksionimit që mund të kryhet, mikrooperacionet prezantojnë një shtresë të re më të ulët. Çdo operacion mund të ndahet në shumë mikrooperacione. Duke projektuar me kujdes mikrooperacionet, mund të optimizoni tubacionin.
Është interesante se kjo ofron një avantazh të ri. Ndërsa ISA e përgjithshme, le të themi x86 mbetet e njëjtë midis shumë gjeneratave të ndryshme të CPU-ve, mikrooperacionet mund të dizajnohen me porosi për çdo gjeneratë të harduerit. Kjo mund të bëhet me një kuptim të thellë se sa performancë mund të shtrydhet nga çdo fazë e tubacionit për çdo mikro-operacion.
Në ditët e para të mikro-operacioneve, ato ishin lidhje me tela të forta që aktivizonin ose çaktivizonin funksione specifike në varësi të mikrooperacionit. Në dizajnin modern të CPU-së, një mikro-operacion i shtohet një tampon riorderi. Është ky buffer që CPU mund të kryejë rirenditjen e tij të orientuar nga efikasiteti. Janë mikro-operacionet, jo udhëzimet aktuale, ato që rirenditen.
Në disa raste, veçanërisht me CPU më të avancuara, mund të bëhet edhe më shumë. Micro-op fuzion është vendi ku mikrooperacionet e shumta kombinohen në një. Për shembull, një sekuencë mikro-operacionesh të thjeshta mund të kryejë një veprim që mund të kryhet me një instruksion të vetëm, më kompleks. Duke zvogëluar numrin e mikrooperacioneve të kryera, procesi mund të përfundojë më shpejt. Kjo gjithashtu zvogëlon numrin e ndryshimeve të gjendjes duke zvogëluar konsumin e energjisë. Udhëzimet e plota madje mund të analizohen dhe kombinohen në struktura më efikase mikro-operacioni.
Disa CPU përdorin një cache mikro-operacioni. Kjo ruan sekuenca mikro-operacioni plotësisht të deshifruar që mund të ripërdoren nëse thirren përsëri. Në mënyrë tipike, madhësia e një cache të tillë referohet nga numri i mikro-operacioneve që mund të ruajë dhe jo nga kapaciteti i bajtit.
konkluzioni
Një mikro-operacion është një implementim specifik i CPU-së i një grupi instruksionesh. Udhëzimet deshifrohen në një seri mikro-operacionesh. Këto mikro-operacione janë dukshëm më të lehta për t'u tubuar në mënyrë më efikase dhe në këtë mënyrë përdorin më mirë burimet e CPU. Meqenëse mikrooperacionet nuk janë të koduara në grupin e instruksioneve, ato mund të personalizohen në harduerin specifik të çdo gjenerate të CPU-së. Mikro-operacionet shpesh shkurtohen në mikro-operacione apo edhe μops. Që përdor shkronjën greke μ ( shqiptohet Mu ), simboli SI për parashtesën mikro.