Quin és el període d'un rellotge de 1 GHz?
1, 4 Sistema Timing
Tot i que els ordinadors moderns són molt ràpids i cada vegada més ràpids, encara necessiten una quantitat limitada de temps per aconseguir fins i tot les tasques més petites. A les màquines Von Neumann com el 80x86, la majoria d'operacions són En sèrieitzat . Això significa que l' ordinador executa ordres en un ordre prescriure. No faria, per exemple, executar la declaració I:=I * 5+2 ; abans que jo :=Junit description in lists ; en la següent seqüència:
I:= J; I:= I * 5 + 2;
Clarament necessitem una manera de controlar quina declaració executa primer i que executa el segon.
Per descomptat, en sistemes informàtics reals, les operacions no passen instantàniament. S' està movent una còpia de Jcard symbol inunit description in lists I Pren una certa quantitat de temps. Igualment, multipliquen I per cinc i després afegir dos i emmagatzemar el resultat de nou I Pren temps. Com s'esperaria, la segona declaració Pascal per sobre tarda una mica més a executar que la primera. Per aquells interessats en escriure programari ràpid, una pregunta natural és: "Com executa el processador declaracions, i com mesurar quant de temps s'han d'executar?"
La CPU és una peça molt complexa de circuits. Sense entrar en massa detalls, diguem que les operacions dins de la CPU han de ser molt sensibles a les coordenades o a la CPU produiran resultats erronis. Per assegurar- vos que totes les operacions ocorren en el moment adequat, les CPU del 80x86 usen un senyal i alternant anomenat el rellotge del sistema .
1. 4. 1 El Rellotge del sistema
A nivell més bàsic, el rellotge del sistema Suprimeix tota la sincronització dins d' un sistema ordinador. El rellotge del sistema és una senyal elèctrica en el bus de control que alternatiu entre zero i un a una velocitat periòdica (mireu) Figura 1, 10 ). Tota l' activitat de la CPU està sincronitzada amb les vores (jugant o caient) d' aquest senyal del rellotge.
Figura 1, 10 El Rellotge del sistema
La freqüència amb la que el rellotge del sistema alternatiu entre zero i un és el Freqüència del rellotge del sistema . El temps que triga el rellotge del sistema a canviar de zero a un i de tornada a zero és el Període de rellotge. També s'anomena un període complet cicle del rellotge . En la majoria de sistemes moderns, el rellotge del sistema canvia entre zero i un a l'augment de diversos centenars de milions de vegades per segon a diversos mil milions de vegades per segon. La freqüència del rellotge és simplement el nombre de cicles del rellotge que es repeteix cada segon. Un personatge típic de Penti IV, circa 2002, va a velocitats de 2 mil milions de cicles per segon o més ràpid. " sutz" (Hz) és el terme tècnic que significa un cicle per segon. Per tant, el xip Pentium esmentat va en 2000 milions d'hertz, o 2000 megahertz (MHz), també conegut com a dos gigahlertz. freqüències típices per a 80x86 parts abasten 5 MHzs fins a diversos Gigahertz (GHz, o bilions de cicles per segon) i més enllà. Tingueu present que un període de rellotge (la quantitat de temps per a un cicle complet del rellotge) és la recíproc de la freqüència del rellotge. Per exemple, un rellotge 1 MHz tindria un període de rellotge d'una microsegon (1/1.000, 000 th d'un segon). Igualment, un rellotge de 10 MHz tindria un període de rellotge de 100 nanosegons (100 mil milions de dòlars d'un segon). Una CPU que funciona a 1 GHz tindria un període de rellotge d'un nanosegon. Noteu que normalment expressem períodes de rellotge en milions de persones o bilions de dòlars d'un segon.
Per assegurar la sincronització, la majoria de CPU comencen una operació en tant la Vora de la caiguda (quan el rellotge passa d'un a zero) o de la Vora pujant (quan el rellotge passa de zero a un). El rellotge del sistema passa la majoria del seu temps a zero o un canvi de temps molt petit entre els dos. Per tant, la vora del rellotge és el punt perfecte de sincronització.
Com que totes les operacions de CPU estan sincronitzades al voltant del rellotge, la CPU no pot realitzar tasques més ràpides que el rellotge. No obstant això, només perquè una CPU s' està executant en alguna freqüència de rellotge no vol dir que s' executi que moltes operacions cada segon. Moltes operacions prenen múltiples cicles de rellotge per completar-les, de manera que la CPU sovint realitza operacions a un ritme molt menor.
1. 4. 2 Accés de memòria i el Rellotge del sistema
L'accés de memòria és una de les activitats de la CPU més habituals. L' accés de memòria és definitivament una operació sincronitzada al voltant del rellotge del sistema o algun submulti del rellotge del sistema. Això és, llegir un valor de la memòria o escriure un valor a la memòria no succeeix més sovint que un cop cada cicle del rellotge. De fet, en molts processadors 80x86, calen diversos cicles de rellotge per accedir a un lloc de memòria. La Temps d' accés de memòria és el nombre de cicles del rellotge el sistema requereix accés a una ubicació de memòria; aquest és un valor important des del temps d' accés més llarg de la memòria en rendiment inferior.
El temps d' accés de memòria és la quantitat de temps entre una petició d' operació de memòria (llector o escriptura) i el temps que completa l' operació de memòria. Les CPU modernes x86 són molt més ràpides que la memòria que els sistemes construïts al voltant d'aquestes CPU sovint usen un segon rellotge, el rellotge de bus, que és un submulti de la velocitat de la CPU. Per exemple, processadors típics en el 100 MHz a 2 GHz usen 400 MHz, 133 MHz, 100 MHz, o 66 bus MHz (deten, la velocitat de l' autobús es pot seleccionar a la CPU).
Quan es llegeix des de la memòria, el temps d' accés de la memòria és la quantitat de temps des del punt que la CPU situa una adreça a l' adreça bus i la CPU treu les dades del bus de dades. Sobre la típica CPU x86 amb un cicle al temps d'accés a la memòria, una lectura sembla com la que es mostra en Figura 1, 1 El tipus de dades a la memòria és similar (mireu Figura 1, 22 ).
Figura 1, 1, el cicle de memòria del 80x86
Figura 1, 2 El cicle de memòria d' escriptura del 80x86
Noteu que la CPU no espera memòria. L' hora d' accés s' especifica per la freqüència del rellotge d' autobús. Si el subsistema de memòria no funciona prou ràpid, la CPU llegirà les dades de les escombraries en una operació de lectura de memòria i no emmagatzemaran correctament les dades en una operació d' escriptura de memòria. Això causarà que el sistema falli.
Els dispositius de memòria tenen diverses puntuacions, però les dues més grans són la capacitat i la velocitat (accés al temps). Els dispositius típics de RAM dinàmica (a l' atzar memòria d' accés) tenen capacitats de 512 (o més) megabytes i velocitats de 0. 25-100 ns. Pots comprar dispositius més grans o més ràpids, però són molt més cars. Un típic sistema de memòria 2 GHz que utilitza 2.5 ns (400 MHz).
Espera un segon aquí! A 2 GHz el període del rellotge és aproximadament 0,5 ns. Com pot un dissenyador de sistemes sortir amb l'ús de 2.5 ns memòria? La resposta és Els estats d' espera .
1. 4, 3 espera Estats
Un estat d' espera no és més que un cicle de rellotge extra per donar temps de dispositiu per completar una operació. Per exemple, un sistema de Penitum de 100 MHz té un període de 10 ns. Això implica que necessites 10 ns memòria. De fet, la situació és pitjor que això. En la majoria de sistemes informàtics hi ha circuits addicionals entre la CPU i la memòria: la descodificació i la lògica de memòria intermèdia. Aquest circuit addicional introdueix retards addicionals al sistema (mireu Figura 1, 15 ). En aquest diagrama, el sistema perd 10ns per a la memòria intermèdia i la descodificació. Si la CPU necessita les dades de nou en 10 ns, la memòria ha de respondre en menys de 0 ns (que és impossible).
Figura 1. 13 descodificació i retards de la memòria intermèdia
Si la memòria costària no funcionarà amb un processador ràpid, com poden les empreses vendre PC ràpids? Una part de la resposta és l'estat d'espera. Per exemple, si teniu un processador 2 GHz amb un cicle de memòria de 0,5 ns i perdeu 2 ns per a la memòria intermèdia i la descodificació, necessitareu 2.5 ns memòria. I si el vostre sistema només permet 10 ns memòria (p. e., un autobús de 100 MHz)? Afegir tres estats d'espera per ampliar el cicle de memòria a 10 ns (un cicle rellotge de rellotge) solucionarà aquest problema.
Gairebé cada CPU general en l' existència proporciona un senyal al bus de control per permetre la inserció dels estats d' espera. Generalment, el circuit de descodificació afirma aquesta línia per retardar un període de rellotge addicional, si cal. Això dóna temps d' accés suficient a la memòria, i el sistema funciona correctament (mireu Figura 1, 14 ).
Figura 1. 14 inserint un estat d' espera en una operació de lectura de memòria
No cal dir, des del punt de vista de rendiment del sistema, els estats d'espera són no Una cosa bona. Mentre la CPU està esperant dades de la memòria, no pot operar en aquestes dades. Afegir un únic estat d' espera a un cicle de memòria en una CPU típica dobles la quantitat de temps requerida per accedir a les dades. Això, al seu torn, halvesCity name (optional, probably does not need a translation) la velocitat de l' accés a la memòria. Corrent amb un estat d'espera en tots els accessos de memòria és gairebé com tallar la freqüència del rellotge de processador en la meitat. Tindràs molt menys treball fet en la mateixa quantitat de temps.
No obstant això, no estem condemnats a l'execució lenta a causa dels estats d'espera afegits. Hi ha diversos dissenyadors de maquinari de trucs que poden jugar per aconseguir els estats d'espera zero majoria De moment. El més comú d'aquests és l'ús de Cau (Tractat "coix") de memòria.
1. 4 memòria cau del 4
Si mireu un programa típic (com molts investigadors tenen), descobrireu que tendeix a accedir a les mateixes localitzacions de memòria repetidament. A més, descobrireu que un programa sovint accedeix a les ubicacions de la memòria adjacent. Els noms tècnics donats a aquest fenomen són Localitat temporal de referència i Informació espacial de referència . Quan es mostra la localitat espacial, un programa accedeix a les ubicacions de la memòria veïna. Quan es mostra la localitat temporal de referència a un programa s' accedeix repetidament a la mateixa localització de la memòria durant un període curt de temps. Tants tipus de localitats apareixen en el següent segment de codi Pascal:
per a i:= 0 a 10 fer A [i] := 0;
Hi ha dues ocurrències cada una de les locals espacials i temporals de referència en aquest bucle. Anem a considerar primer els obvis.
En el codi Pascal més amunt, el programa fa referència a la variable i Diverses vegades. El de bucle compar i contra 10 per veure si el bucle està complet. També increments i per un a la part inferior del bucle. La declaració d' assignació també s' utilitza i com a índex de matriu. Això mostra la localitat temporal de referència a l' acció des de l' accés a la CPU i a tres punts en un període curt de temps.
Aquest programa també mostra la localitat espacial de referència. El bucle en si mateix zeros fora dels elements de la matriu Acard symbol escrivint un zero a la primera ubicació Acard symbol , després a la segona ubicació Acard symbol I així successivament. Suposant que Pascal emmagatzema els elements de Acard symbol en localitzacions de memòria consecutives, cada repeteix els accessos a la memòria adjacent.
Hi ha un exemple addicional de la localitat temporal i espacial de referència en l'exemple Pascal de dalt, tot i que no és tan obvi. Les instruccions de l' ordinador que diuen al sistema que faci la tasca especificada també resideixen en memòria. Aquestes instruccions apareixen seqüencialment en memòria - la part localitat espacial. L'ordinador també executa aquestes instruccions repetidament, una vegada per cada cicle d'iteració - la part temporal de la localitat.
Si mireu el perfil d' execució d' un programa típic, descobrireu que el programa normalment executa menys de la meitat de les declaracions. Generalment, un programa típic només podria fer servir el 10% de la memòria a la vegada. En qualsevol moment, un programa megabyte només podria accedir a quatre quilos de dades i codi. Així que si pagares una suma escandalosa de diners per una moneda d'estat d'espera zero, no estaries utilitzant la majoria d'ella en un moment determinat! No seria agradable si poguessis comprar una petita quantitat de la RAM ràpida i dinàmicament reassignar la seva adreça(es) com a executa el programa?
Això és exactament el que fa la memòria cau per a tu. La memòria cau s'asseu entre la CPU i la memòria principal. És una petita quantitat de memòria d'espera molt ràpida (l'estat d'espera zero). A diferència de la memòria normal, els bytes que apareixen en una memòria cau no tenen adreces fixa. En comptes d' això, la memòria cau pot reassignar l' adreça d' un objecte de dades. Això permet mantenir els valors accessibles recentment a la memòria cau. Les adreces que la CPU mai ha accedit o no han accedit en algun temps romanen en memòria principal (slow). Com que la majoria d' accessos de memòria s' han d' accedir recentment a variables (o a localitzacions prop d' una localització accessible recentment), les dades generalment apareixen a la memòria cau.
La memòria cau no és perfecta. Tot i que un programa pot passar considerablement el codi d'execució en un sol lloc, al final cridarà un procediment o va sortir a una secció de codi de memòria de la memòria cau de l'exterior. En aquest cas, la CPU ha d'anar a la memòria principal per recuperar les dades. Com que la memòria principal és lenta, això requerirà la inserció dels estats d'espera.
Una memòria cau ▁hit succeeix quan la CPU accedeixi a la memòria i troba les dades al cau. En aquest cas, la CPU pot accedir a dades amb zero estats d'espera. Una memòria cau Trobe a faltar Passa si la CPU accedeix a la memòria i les dades no estan presents a la memòria cau. Llavors la CPU ha de llegir les dades de la memòria principal, incrutant una pèrdua de rendiment. Per aprofitar la localitat de referència, la CPU copia les dades a la memòria cau sempre que accedeixi a una adreça que no està present a la memòria cau. Com que és probable que el sistema pugui accedir a la mateixa localització en breu, el sistema desarà els estats d'espera tenint les dades a la memòria cau.
Tal i com es descriu més amunt, la memòria cau gestiona els aspectes temporals de l' accés a la memòria, però no els aspectes especials. Ubicació de la memòria Caching quan els hi accedeixes No accelerarà el programa si accediu contínuament a localitzacions consecutives (spatial localitat local de referència). Per a resoldre aquest problema, la majoria dels sistemes de cau llegeixen diversos bytes consecutius de memòria quan es troba a faltar la memòria cau 1 . La CPU del 80x86, per exemple, llegeix serween 16 i 64 bytes en una foto (segons la CPU) a la memòria cau. Si llegeixes 16 bytes, per què els llegeixes en blocs en comptes de com els necessiteu? Resulta que la majoria de les fitxes de memòria disponibles avui dia tenen modes especials que us permeten accedir ràpidament a diverses ubicacions de memòria consecutives del xip. La memòria cau explota aquesta capacitat per reduir el nombre mitjà d'estats d'espera necessaris per accedir a la memòria.
Si escrius un programa que accedeix a la memòria de l' atzar, l' ús d' un cau us pot alentir. Llegint 16 bytes a cada memòria cau és car si només accediu a uns bytes a la línia cau corresponent. De totes maneres, els sistemes de memòria cau treballen força bé en el cas mitjà.
Ha de ser una sorpresa que la relació de la memòria cau no arribi a faltar augmenta amb la mida (en bytes) del subsistema de memòria cau. El xip 80486, per exemple, té 8192 bytes de la memòria cau de l'hip. Intel·ligència assegura que un 80-9% va arribar a la taxa de memòria cau (per exemple, 80-9% del temps la CPU troba les dades a la memòria cau). Això sona molt impressionant. No obstant això, si jugues amb els números una mica, descobriràs que no és tot que Impressionant. Suposem que triem la figura del 80%. Llavors un de cada cinc accesss de memòria, de mitjana, no serà a la memòria cau. Si teniu un processador 50 MHz i un temps d' accés a la memòria de 90 ns, quatre dels cinc accessos de memòria requereixen només un cicle de rellotge (ja que són a la memòria cau) i el cinquè necessitarà uns 10 estats d'espera 2 . En total, el sistema requerirà 15 cicles de rellotge per accedir a cinc localitzacions de memòria, o tres cicles de rellotge per accés, de mitjana. Això equival a dos estats d'espera afegits a cada accés de memòria. No sona tan impressionant, oi?
Hi ha un parell de maneres de millorar la situació. Primer, podeu afegir més memòria cau. Millora la relació de la memòria cau, reduint el nombre d' estats d' espera. Per exemple, augmentar la proporció d' impacte del 80% al 90% us permet accedir a 10 ubicacions de memòria en 20 cicles. Això redueix el nombre mitjà d'estats d'espera per memòria accés a un estat d'espera en el nostre exemple 80486 - una gran millora. Per desgràcia, no pots treure un xip de 80486 separats i vendre més memòria al xip. No obstant això, les CPU de Pentiui modernes tenen un cau molt més gran que el 80486 i opera amb menys estats d'espera mitjana.
Una altra manera de millorar el rendiment és construir una dos nivells El sistema de cau. Molts sistemes 80486 treballen d'aquesta manera. El primer nivell és el de la memòria cau dels 8-chip 8192 bytes. El següent nivell, entre la memòria cau i la memòria principal, és un cau secundari construït a la junta de circuit de l'ordinador (mireu Figura 1, 15 ). Els llapistis i les fitxes posteriors solen moure la memòria cau secundaria en el mateix xip que la CPU (això és, els dissenyadors d'Intel han inclòs la memòria cau secundària com a part del mòdul de CPU).
Figura 1, 15 Un sistema de bloqueig de nivell 2
Un cau secundari típic conté qualsevol lloc de 32,768 bytes a un megabyte de memòria. Les mides comuns dels subsistemes de PC són 256K, 512K, i 1024 Kbytes (1 MB) de la memòria cau.
Podríeu preguntar: "Per què molestar-se amb un cau de dos nivells? Per què no usar una memòria cau de 120 bytes per començar? " Bé, la memòria cau secundaria normalment no funciona a zero estats d'espera. El circuit per donar suport al 262,144 bytes de memòria ràpida seria molt - És car. La majoria dels dissenyadors del sistema utilitzen memòria més lenta que requereix un o dos estats d'espera. Encara és aquí. molt Més ràpid que la memòria principal. Combinat amb la memòria cau on-chip, podeu obtenir millor rendiment del sistema.
Considereu l' exemple anterior amb una proporció d' impacte del 80%. Si la memòria cau secundaria requereix dos cicles per cada accés de memòria i tres cicles per al primer accés, llavors un cau a la memòria cau on-chip requereix un total de sis cicles de rellotge. Tot el que he dit, l'actuació mitjana del sistema serà de dos rellotges per accés de memòria. Una mica més ràpid que els tres necessaris pel sistema sense la memòria cau secundària. A més a més, la memòria cau secundària pot actualitzar els seus valors en paral· lela amb la CPU. El nombre de la memòria cau falla (que afecta a l'actuació de la CPU) baixa.
Probablement penseu, "Fins ara tot això sona interessant, però què té a veure amb la programació?" Una mica, de fet. Escriure el vostre programa amb cura per aprofitar- vos de com funciona el sistema de memòria cau, podeu millorar el rendiment del programa. En col· locació de variables normalment useu juntes en la mateixa línia de memòria cau, podeu forçar el sistema de memòria cau a carregar aquestes variables com a grup, desar els estats d' espera extra en cada accés.
Si en organitzar el vostre programa de manera que tendeix a executar la mateixa seqüència d' instruccions repetidament, tindrà un alt grau de localitat temporal de referència i de manera que, per tant, executa més ràpid.
1, 5 penseu-lo tots junts
Aquest capítol ha proporcionat un resum ràpid dels components que composen un sistema d' ordinadors típic. Els capítols restants en aquest volum s' expandiran en aquests comentaris per donar-vos un resum complet de l'organització del sistema d'ordinadors.
2 Deu estats d' espera es van calcular de la següent manera: 5 cicles de rellotge per llegir els primers 4 bytes (10+20+20=90). No obstant això, la memòria cau sempre llegeix 16 bytes consecutius. La majoria dels subsistemes de memòria us permeten llegir adreces consecutives en uns 40 ns després d'accedir a la primera localització. Per tant, el 80486 requerirà un cicle addicional de sis cicles de rellotge per llegir les tres paraules restants. El total és 11 cicles de rellotge o 10 estats d'espera.
Artículos Relacionados:
- Per a què s'utilitza GHz?
- Quants GHz és l'ordinador més ràpid?
- Quins dispositius haurien d'estar a les 2,4 GHz?
- Quant és bo per al telèfon GHz?
- Processador -