Com puc calcular la taxa de rellotge de la CPU?

És correcte dir, per exemple, que un processador amb quatre nuclis cada vegada que s' executa a 3GHz és de fet un processador executant-se a 12GHz?

Una vegada vaig entrar en un argument "Mac contra el PC" (que per cert no és l'atenció d'aquest tema... que havia tornat a l'escola mitjana) amb un conegut que va insistir que els Macs només s'havien anunciat com a màquines 1Ghz perquè eren duals processos G4 cadascun en execució a 500 MHz.

En el moment en què vaig saber que això era un raspall de porcs per raons que crec que són evidents a la majoria de la gent, però acabo de veure un comentari en aquest web amb l'efecte de "6 nuclis x 0.2GHz = 1,2Ghz" i que em va fer pensar una altra vegada en si hi ha una resposta real a aquesta.

Així que aquesta és una qüestió més filosòfica i profunda sobre les semàntices del càlcul de la velocitat del rellotge. Veig dues possibilitats:

  • Cada nucli està fent càlculs x per segon, per tant el nombre total de càlculs és x(cores).
  • La velocitat del rellotge és més aviat un nombre de cicles que el processador entra en l' espai d' un segon, sempre que tots els nuclis estiguin executant- se a la mateixa velocitat, la velocitat de cada cicle del rellotge roman igual, independentment de quants nuclis existeixen. En altres paraules, Hz = (core1Hz+core2Hz+...)/cres.

7 respostes 7

La raó principal per la qual un processador de 3GHz mai és tan ràpida com un nucli de 12GHz és fer amb com funciona la tasca en aquell processador, és a dir. Una sola lectura o múltiple. La llei de Amdahl és important en considerar els tipus de tasques que esteu executant.

Si teniu una tasca que és inherentment lineal i s' ha de fer precisament passa per pas com (un programa molt simple)

10: a = a + 1
20: goto 10

Llavors la tasca depèn molt del resultat de la passada anterior i no pot executar múltiples còpies d' ella mateixa sense corrompre el valor de 'a' com cada còpia seria obtenir el valor de 'a' En diferents ocasions i escriure'l d'una altra manera. Això restringeix la tasca a un sol fil i per tant la tasca només es pot executar en un únic nucli en qualsevol moment determinat, si s' ha d' executar en múltiples nuclis llavors la corrupció de la sincronització podria ocórrer. Això ho limita a 1/25 de la potència d'un sistema de nucli dual, o 1/4 en un sistema de nucli quadr.

Ara agafeu una tasca com:

10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10

Totes aquestes línies són independents i es poden dividir en quatre programes separats com la primera i executar alhora, cada un pot fer un ús efectiu del poder total d'un dels nuclis sense cap problema de sincronització, aquí és on La llei de Amdahl Entra dins.

Així que si teniu una única aplicació de fil fent càlculs de força bruta el processador de 12GHz podria guanyar les mans, si d'alguna manera podeu dividir la tasca en parts separades i multiplicar llavors els 4 nuclis es podrien apropar, però no bastant abastament, el mateix rendiment, com la Llei d'Amdahl.

El més important és que un sistema de CPU multi-pliga és la fluïdesa. En una única màquina de nucli que està treballant dur el sistema pot semblar dissumptuós com la majoria de vegades es pot usar per una tasca i les altres tasques només s' executen en petits esclats entre la tasca més gran, resultant en un sistema que sembla fungish o juddria. En un sistema multi-cora la tasca pesa un nucli i totes les altres tasques juguen sobre els altres nuclis, fent els seus treballs ràpidament i eficientment.

L'argument de "6 nuclis x 0. 26GHz = 1.2Ghz" és escombraries en cada situació excepte on les tasques són perfectament paral· leles i independents. Hi ha un bon nombre de tasques que són altament paral·lel, però encara requereixen alguna forma de sincronització. MàbrakeCity name (optional, probably does not need a translation) és un gestor de vídeo que és molt bo usant totes les CPU disponibles però requereix un procés de nucli per mantenir els altres fils plens de dades i recollir les dades amb les que es fan.

  • Cada nucli està fent càlculs x per segon, per tant el nombre total de càlculs és x(cores).

Cada nucli és capaç de fer càlculs x per segon, suposant que la càrrega de treball és adequada paral· lela, en un programa lineal tot el que teniu és 1 nucli.

  • La velocitat del rellotge és més aviat un nombre de cicles que el processador entra en l' espai d' un segon, sempre que tots els nuclis estiguin executant- se a la mateixa velocitat, la velocitat de cada cicle del rellotge roman igual, independentment de quants nuclis existeixen. En altres paraules, Hz = (core1Hz+core2Hz+...)/cres.

Crec que és una fal·làcia pensar que 4 x 3GHz = 12GHz, concedits les matemàtiques funcionen, però estem comparant pomes a taronges i les sumes no són correctes, GHz simplement no es pot afegir junts per a cada situació. El canviaria a 4 x 3GHz = 4 x 3GHz.

Altres van fer un bon argument des del punt de vista tècnic. En canvi, faré un parell d'analogies simples que espero explicar per què 4 *3GHz no és equivalent a 1 *12GHz.

Per exemple, una dona pot fabricar un nadó en nou mesos. Hi haurà nou dones que puguin fabricar un nadó en un mes? No, perquè la gesta no es pot paral· lelitzar (bé, almenys en aquest nivell tecnològic).

En una planta hidroelèctrica que he visitat recentment, s'ha actualitzat un dels generadors. Han hagut de transportar l'estator del generador per vaixell. Una sisena part de l'estator podria ser transportat pel camió, però necessitaven transportar tota l'estator; així és que havien d'utilitzar un vaixell, no sis camions.

Un altre cas podria ser el moment precís dels esdeveniments. De vegades els processadors d'ordinadors s'utilitzen com a temporitzadors precises (tot i que la pràctica ja no és recomanable, degut a la majoria dels processadors variables en processadors. El temporitzador d' esdeveniments d' alta precisió s' hauria d' usar en el seu lloc. Si assumim que tenim un processador amb un rellotge de 12GHz relativament estable, podem usar-lo per mesurar el temps en una resolució molt més alta que en un processador amb un rellotge de 3GHz. No importa quants nuclis 3GHz tenim, no serem capaços d'aconseguir resolució del nucli 12GHz. Això és com tenir 4 rellotges amb 7 pantalles on cada rellotge mostra el temps correcte en hores. No importa com mostren correctament les hores, no els podeu usar per mesurar els intervals de temps en un segon abast.

No sóc cap expert en el tema, però tinc un grau d'enginyeria d'ordinadors. Entrada teoria (aquesta és una resposta molt conceptual), una quadràtica 3GHz cada processador llauna Seria l'equivalent a un processador 12GHz si, per exemple, hi havia quatre conjunts de càlculs necessaris per a un únic resultat final. Això és el que s'anomena procés paral·lel.

Per simplificar la lògica, diguem que estem parlant d'un processador de nucli dual. Si hi ha un conjunt de càlculs, diguem:

a=b+1;

c=d+1;

Llavors, aquests dos càlculs es podrien executar en nuclis separats, i un processador xGHz seria equivalent a un simple processador de 2*xGHz. Això és perquè els dos càlculs, encara que es fan a velocitat de x, es processaran alhora. Mentre que el processador simple els podria fer a velocitat 2*x però un darrere de l'altre. Si les dues CPU executen aquest codi alhora, haurien acabat alhora. No obstant això, si el codi fos:

a=b+1;

c=a+1;

Aleshores, el processador de doble importància seria el doble de temps que el processador únic perquè en la segona instrucció, el valor d'una és dependent En la primera instrucció i per tant no es pot executar en paral· lela. Així és com un programari pot aprofitar-se dels processadors amb multicorrecció.

Així que, en teoria, un processador de 12GHz sempre pot córrer tan ràpid (o més ràpid) que un processador de 3GHz, però no vici-versa.

En aplicacions del món real, quatre processadors 3Ghz no seran tan ràpids com un únic processador 12Ghz a causa d'ineficències. Poden ser molt propers, però NO equivaldran a un únic processador en termes de potència de processament.

La raó per això rau en les petites inefficències quan es tracta de programes que poden córrer més d'un processador. Suposant que el programa en qüestió pot executar- se en paral·lel, encara correrem problemes amb diferents nuclis competint entre ells per altres recursos com la RAM o fins i tot els problemes de sincronització de fil. També hi ha sempre parts de programes que no poden ser paral·lelitzats i que s'han d'executar en un únic nucli per si mateix.

Sembla que no podem dir que quatre nuclis @ 3 GHz es poden dir com a 12 GHz.

Diverses restriccions com memòria compartida, contingutió de la memòria cau i altres recursos també són comunes per a tots els nuclis de manera que s' executi una peça de codi paral· lela en aquests nuclis no serà tan eficient com executar- la en 12 processadors Ghz (encara que és difícil construir un processador com aquest).

També llegeixo que si doblem els transistors incrustats en el xip (CMP), la velocitat que aconseguirem és només el 40%. Això també proporciona una pista significativa d'aquest tema.

Pel que fa als cicles del rellotge, sí, un processador multi-core completa x * nuclis cicles de treball per segon. Les velocitats del rellotge es llisten en una base percore per a una comparació més fàcil (altrament, com compararíeu fàcilment un xip de 4GHz que s' està executant a 2GHz/core contra un xip de qua quatreGHz executant-se a 1GHz/cre?).

Malauradament, el problema és complex quan intentes comparar diferents processadors en aplicacions reals del món.

Primer, la majoria de processadors multi-core tenen alguns recursos compartits entre els nuclis (p. ex. Memòria cau de la CPU). Han de compartir l'accés a aquesta memòria cau, per tant no pots tenir ambdós nuclis desant o llegir dades a tota velocitat. Això sovint s'ha mitigat en moltes CPU supercorades tenint múltiples memòria cau compartides (p. ex. La majoria de les fitxes quadràries tenen 2 cau, cadascuna compartida per un parell de nuclis), per tal de dividir millor les possibilitats d'un coll d'ampolla en un recurs compartit.

Segon, i potser menys conegut en el món que no tecnologia, és que comparar velocitats del rellotge de vegades poden ser com comparar pomes i taronges. Diferents CPU aconsegueixen una quantitat diferent de treball en un cicle rellotge únic, així que dient que tens 1GHz contra 1.2GHz sona genial, però el xip 1GHz podria realment obtenir més feina en un interval donat de temps. El Pentiu 4 va conduir aquest punt a casa, portant al Megattz MythCity name (optional, probably does not need a translation) (que no sabia que hi havia una marca de nom fins escriure aquest article).

Dos cotxes cadascun van a 50 milles per hora no s'afegeixen a 100 milles per hora. Realment és tan simple. La velocitat del rellotge d' un processador és no Una mesura de la taxa a la que es fa la feina, és una mesura de com de ràpid són els rellotges.

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +