Què és una barrera de memòria?

Històricament, les CPU han estat màquines perfectament seqüencials. Això és molt lògic i fàcil d'entendre, però pot ser un problema de rendiment. Al llarg dels anys, hi ha hagut molts ajustos enginyosos als dissenys de CPU per extreure el màxim rendiment possible de les hòsties de silici. Un dels més interessants, però, és l'execució fora d'ordre. A les CPU d'execució fora d'ordre, les instruccions no necessàriament s'han d'executar en l'ordre en què s'emeten.

Parada en ordre

El principal problema de rendiment amb el qual s'executa una CPU en ordre s'anomena aturada de pipeline. Això passa quan una instrucció depèn d'alguna memòria, però aquesta memòria no està directament disponible en un registre. En aquest cas, la CPU ha de trobar aquest valor a la memòria. La memòria cau de la CPU es comprova primer, ja que són el nivell de memòria més ràpid. Si el valor no hi és, es comprova la memòria RAM del sistema. Durant aquest temps, la CPU ha d'estar inactiva, ja que la instrucció depenent de la memòria s'ha de completar en ordre abans de les instruccions següents.

L'impacte en el rendiment d'una parada de canonades pot no ser tan dolent, però també pot ser relativament greu. Per exemple, la memòria cau L1 normalment pot retornar un resultat de l'ordre de magnitud de 5 cicles de CPU. La memòria cau L2 pot trigar 20 cicles, L3 uns 200 cicles i la memòria RAM del sistema uns 400 cicles. Tenint en compte que una CPU pot funcionar al voltant de 5 GHz, és a dir, 5 mil milions de cicles de rellotge per segon, fins i tot 400 cicles no són tan dolents (0,000008%). Però si teniu moltes instruccions que necessiten fer referència a dades més avall dels nivells de memòria cau, l'efecte acumulatiu pot provocar una desacceleració notable.

Execució fora d'ordre i canvi de nom del registre

L'execució fora d'ordre és una tècnica que permet al planificador reordenar les instruccions de la seva cua. Mitjançant aquesta reordenació, pot optar per prioritzar fils específics per sobre d'altres. També pot tornar les instruccions a la cua quan tenen una dependència de dades que encara no s'ha complert. D'aquesta manera, s'evita tant com sigui possible les parades de les canonades, minimitzant els cicles inactius.

L'execució fora d'ordre requereix una funció anomenada canvi de nom del registre. La CPU pot accedir a les dades contingudes en registres en un sol cicle. Els registres s'utilitzen per emmagatzemar dades que s'estan llegint i escrivint. És essencial, però, assegurar-se que l'ordinador en general veu tot el que passa en l'ordre lògic, no en l'ordre fora d'ordre, optimitzat pel cicle de la CPU. Per permetre-ho, les CPU tenen molts més registres lògics dels que exigeix ​​l'arquitectura de la CPU.

Les dades que cal escriure, però que tenen una instrucció "anterior" que encara no s'ha completat, es col·loquen en un registre de retenció. Aquestes dades no es transfereixen a un altre registre quan la comanda s'ha resolt per si mateixa. En canvi, el nom del registre d'explotació es canvia pel del registre on hauria d'estar. Això és una mica semblant a preparar unes postres abans del plat principal però després mantenir-lo a la nevera fins que sigui el moment de servir-lo.

Aquests registres lògics no estan totalment abordats. La CPU només pot adreçar-se realment als registres lògics que actualment comparteixen el nom dels registres arquitectònics. Dit això, la CPU també n'és prou conscient que si altres instruccions reordenades es basen en les dades del registre de retenció lògic, poden utilitzar-les en lloc de les dades "obsoletes" del registre arquitectònic en aquest moment empíric concret.

Barreres de la memòria

Una barrera de memòria, també anomenada membar, tanca de memòria o instrucció de tanca, és una instrucció en codi informàtic. Permet que un programador faci complir una restricció d'ordre a les operacions de memòria emeses abans i després de la barrera de memòria. La barrera de memòria indica al planificador de la CPU que s'asseguri que totes les instruccions es processin abans de qualsevol instrucció després de la barrera. Això es fa per garantir que les operacions importants es completen en l'ordre correcte.

En general, als ordinadors moderns, això no hauria de ser necessari. L'execució fora de servei i el canvi de nom del registre són camps ben establerts i madurs. No obstant això, una barrera de memòria pot ser útil per a processadors més antics, menys sofisticats, fora d'ordre o utilitzats en operacions de memòria crítiques.

Les barreres de memòria poden venir amb algun detriment del rendiment. Això es deu al fet que impedeixen activament que el planificador de la CPU optimitzi parts específiques del flux d'instruccions. Això augmenta la possibilitat d'una parada de la canonada.

Conclusió

Una barrera de memòria és una instrucció que garanteix una restricció d'ordenació en les operacions de memòria. Això és important perquè els processadors d'execució fora d'ordre poden reordenar instruccions específiques. Tot i que el canvi de nom del registre està ben establert com a mètode per garantir la integritat de la memòria en aquest entorn, pot ser útil assegurar-ho manualment.

La barrera de memòria obliga el planificador de la CPU a assegurar-se que les instruccions es completen abans de qualsevol instrucció després de la barrera. Això evita que les operacions de memòria es tornin a ordenar. També impedeix que la CPU optimitzi el flux d'instruccions, cosa que pot afectar el rendiment.


Què és SMPS?

Què és SMPS?

Apreneu què és SMPS i el significat de les diferents classificacions d'eficiència abans de triar un SMPS per al vostre ordinador.

Per què el meu Chromebook no sencén

Per què el meu Chromebook no sencén

Obteniu respostes a la pregunta: Per què el meu Chromebook no s'encén? En aquesta guia útil per als usuaris de Chromebook.

Com informar de les estafes de pesca a Google

Com informar de les estafes de pesca a Google

Obteniu informació sobre com informar d'un estafador a Google per evitar que estafeu altres persones amb aquesta guia.

Roomba satura, senganxa i gira - Arregla

Roomba satura, senganxa i gira - Arregla

Solucioneu un problema en què el vostre robot aspirador Roomba s'atura, s'enganxa i segueix girant.

Com canviar la configuració gràfica a Steam Deck

Com canviar la configuració gràfica a Steam Deck

El Steam Deck ofereix una experiència de joc robusta i versàtil al teu abast. Tanmateix, per optimitzar el vostre joc i garantir el millor possible

Què és la seguretat basada en laïllament?

Què és la seguretat basada en laïllament?

Anàvem a aprofundir en un tema que cada cop és més important en el món de la ciberseguretat: la seguretat basada en l'aïllament. Aquest enfocament a

Com utilitzar el clic automàtic per a Chromebook

Com utilitzar el clic automàtic per a Chromebook

Avui anàvem a aprofundir en una eina que pot automatitzar tasques de clics repetitius al vostre Chromebook: el clic automàtic. Aquesta eina us pot estalviar temps i

Com canviar la cara del rellotge en un Fitbit Versa 4

Com canviar la cara del rellotge en un Fitbit Versa 4

Canvia la cara del rellotge del teu Fitbit Versa 4 per donar-li un aspecte diferent cada dia de manera gratuïta. Mireu que fàcil i ràpid és.

Com treure una GPU dun PC Windows el 2023

Com treure una GPU dun PC Windows el 2023

Necessites treure la GPU del teu ordinador? Uneix-te a mi mentre t'explico com eliminar una GPU del teu PC en aquesta guia pas a pas.

Què és el surf despatlles?

Què és el surf despatlles?

El surf a l'espatlla és una classe d'atac d'enginyeria social. Implica que un atacant recopila informació mirant la pantalla.