CPU
La Unitat Central de Processament (coneguda per les sigles CPU, del anglés central processing unit) o processador és un component de l'hardware dins d'un ordenador, teléfons inteligents, i atres dispositius programables. La seua funció és interpretar les instruccions d'un programa informàtic per mig de la realisació de les operacions bàsiques: aritmètiques, llògiques, i externes (procedents de l'unitat d'entrada/eixida). El seu disseny i el seu alvanç han variat notablement des de la seua creació, aumentant la seua eficiència i potència i reduint el consum d'energia i el cost. Un ordenador pot contindre més d'una CPU (multiprocesamiento). En l'actualitat, els microprocessadors estan constituïts per un únic circuit integrat (chip) encara que existixen els processadors multinúcleo (vàries CPU en un sol circuit integrat). Un circuit integrat que conté una CPU també pot contindre els dispositius perifèrics i atres components d'un sistema informàtic; similar a un microcontrolador (menys potent en RAM) se li denomina sistema en un chip (SoC). Els components de la CPU són:
- Unitat aritmètic llògica o unitat de càlcul (de l'anglés: Arithmetic Logic Unit o ALU): realisa operacions aritmètiques i llògiques.
- Unitat de control (CU): dirigix el tràfic d'informació entre els registres de la CPU i conecta en la ALU les instruccions extretes de la memòria.
- Registres interns: no accessibles (d'instrucció, de bus de senyes i bus de direcció) i accessibles d'us específic (contador programa, punter pila, acumulador, flags, etc.) o d'us general.
Història
[editar | editar còdic]- Artícul principal → Anexe:Història de la computació.
Els primers ordenadors, com el ENIAC, tenien que recablearse físicament per a realisar diferents tasques, lo que va fer que estes màquines es denominaren "ordenadors de programa fix". Ya que el terme "CPU" generalment es definix com un dispositiu per a l'eixecució de software (programa informàtic), els primers dispositius que en raó podríem cridar CPU varen vindre en el advenimiento del ordenador de programa almagasenat. L'idea d'un ordenador en programa almagasenat ya estava present en el disseny de John Presper Eckert i en el ENIAC de John William Mauchly, pero esta característica es va ometre inicialment per a que l'aparat poguera estar llest abans. El 30 de juny de 1945, ans que es construïra la ENIAC, el matemàtic John von Neumann va distribuir el treball titulat First Draft of a Report on the EDVAC (Primer Borrador d'un Informe sobre el EDVAC). Va ser l'esbós d'un ordenador de programa almagasenat, que es va terminar en agost de 1949.[1] El EDVAC es va dissenyar per a realisar un cert número d'instruccions (o operacions) de varis tipos. Significativament, els programes escrits per al EDVAC es varen crear per a almagasenar-se en la memòria d'alta velocitat de l'ordenador i no per a que els especificara el seu cablejat físic. Açò va permetre superar una greu llimitació del ENIAC, que era el temps i l'esforç necessaris per a tornar a configurar l'equip per a realisar una nova tasca. En el disseny de von Neumann, el programa (o software) que corria en el EDVAC podria canviar-se simplement canviant el contingut de la memòria. No obstant, el EDVAC no va ser el primer ordenador de programa almagasenat: la Màquina Experimental de chicoteta Escala de Mánchester, un chicotet prototip d'ordenador de programa almagasenat, va eixecutar el seu primer programa el 21 de juny de 1948.[2] El seu successor, el Manchester Mark I, va eixecutar el seu primer programa en la nit del 16 al 17 de juny de 1949. Les primeres CPU es varen dissenyar a mida com a part d'un ordenador més gran, generalment un ordenador únic en la seua espècie. No obstant, este método de dissenyar les CPU a mida, per a una aplicació particular, ha desaparegut en gran part i s'ha substituït pel desenroll de classes de processadors barats i estandardisats adaptats per a un o varis propòsits. Esta tendència d'estandardisació va començar generalment en l'era dels transistorés discrets, els ordenador centralés, i els microprocessadors i es va accelerar ràpidament en la popularisació del circuit integrat (IC). Est ha permés que es dissenyen i es fabriquen CPU més complexes en espais chicotets, de l'orde de nanómetros. Per la miniaturisació i l'estandardisació de les CPU, ha aumentat la presència d'estos dispositius digitals en la vida moderna molt més allà de les aplicacions llimitades de màquines de computació dedicades. Els microprocessadors moderns apareixen en tot, des d'automòvilés fins a teléfons mòvils (celars) i joguets de chiquets. Si ben von Neumann ha segut moltes voltes acreditat pel disseny de l'ordenador en programa almagasenat pel seu disseny del EDVAC, uns atres abans que ell, com Konrad Zuse, havien propost i aplicat idees similars. La denominada arquitectura Harvard del Harvard Mark I, que es va completar abans d'EDVAC, també va utilisar un disseny de programa almagasenat usant cinta de paper perforada en lloc de memòria electrònica. La diferència clau entre les arquitectura de von Neumann i la d'Harvard és que l'última separa, dins de l'almagasenament, el tractament d'instruccions de la CPU i les senyes, mentres que el primer utilisa el mateix espai de memòria per a abdós. La majoria dels CPU moderns són de disseny von Neumann, pero les CPU en arquitectura Harvard es veuen, sobretot, en aplicacions embebidas; per eixemple, els microcontroladors Atmel AVR són processadors d'arquitectura Harvard. Els relés elèctrics i els tubos de buit (vàlvules termoiòniques) s'usaven comunament com a elements de conmutación; un ordenador útil requeria mills o decenes de mils de dispositius de conmutación. La velocitat global d'un sistema depén de la velocitat dels commutadors. Els ordenadors de tubo, com el EDVAC, solien tindre un promig d'huit hores entre fallos, mentres que els ordenadors de relés (anteriors i més llents), com el Harvard Mark I, fallaven molt rarament.[3] Al final, les CPU basades en tubo varen aplegar a ser dominants perque les significatives ventages de velocitat produïdes generalment pesaven més que els problemes de fiabilitat. La major part d'estes primerenques CPU síncronas corrien en freqüències de rellonge baixes comparades en els moderns dissenys microelectrónicos. Eren molt comuns en este temps les freqüències de la senyal del rellonge en un ranc des de 100 kHz fins a 4 MHz, llimitat en gran part per la velocitat dels dispositius de conmutación en els que es varen construir.
CPU de transistors i de circuits integrats discrets
[editar | editar còdic]La complexitat del disseny de les CPU va aumentar junt en la facilitat de la construcció de dispositius electrònics més chicotets i fiables. La primera d'eixes millores va vindre en el advenimiento del transistor. Les CPU transistorizades durant els anys 1950 i els anys 1960 no varen tindre que construir-se en elements de conmutación abultats, no fiables i fràgils, com els tubos de buit i els relés elèctrics. En esta millora, es varen construir CPU més complexes i més fiables sobre una o vàries targetes de circuit imprés que contenien components discrets (individuals). Durant este periodo, va guanyar popularitat un método de fabricar molts transistors en un espai reduït. El circuit integrat (IC) va permetre fabricar una gran cantitat de transistors en una simple oblea basada en semiconductor o «chip». Al principi, solament es miniaturizaron en IC circuits digitals molt bàsics, no especialisats, com les portes NOR. Les CPU basades en estos IC de "blocs de construcció" generalment denominen dispositius de chicoteta escala d'integració "small-scale integration" (SSI). Normalment els circuits integrats SSI, com els usats en el computador guia de l'Apolo (Apollo Guidance Computer), contenien transistors que es contaven en números de múltiples de dèu. Construir una CPU completa usant IC SSI requeria mils de chips individuals, pero encara consumia molt manco espai i energia que els dissenys anteriors de transistors discrets. A mida que la tecnologia microelectrónica va alvançar, en els circuits integrats es va ser colocant un número creixent de transistors, disminuint aixina la cantitat de circuits integrats individuals necessaris per a una CPU completa. Els circuits integrats MSI i LSI (de mijana i gran escala d'integració) varen aumentar el número de transistors a centenars i després a mills. En 1964, IBM va introduir la seua arquitectura de computador System/360, que es va usar en una série d'ordenadors que podien eixecutar els mateixos programes en velocitats i desempeños diferents. Açò va ser significatiu en un temps en el que la majoria dels ordenadors electrònics eren incompatibles entre sí, inclús els fetes per un mateix fabricant. Per a facilitar esta millora, IBM va utilisar el concepte de microprograma, a sovint cridat «microcódigo», àmpliament usat encara en les CPU modernes.[4] L'arquitectura System/360 era tan popular que va dominar el mercat del mainframe durant les següents décades i va deixar una herència que encara perdura en els ordenadors moderns, com l'IBM zSeries. En el mateix any 1964, Digital Equipment Corporation (DEC) va introduir un atre ordenador que va ser molt influent, dirigit als mercats científics i d'investigació: el PDP-8. DEC va introduir més alvance la molt popular llínea del PDP-11, que originalment es va construir en IC SSI pero es va implementar en components LSI quan es varen convertir en pràctics. En fort contrast en els seus precursors fets en tecnologies SSI i MSI, la primera implementació LSI del PDP-11 contenia una CPU composta solament per quatre circuits integrats LSI.[5]
Els ordenadors basats en transistors tenien vàries ventages front als seus predecessors. Aparte d'una creixent fiabilitat i un menor consum d'energia, els transistors també permetien que la CPU operara a velocitats molt més altes pel curt temps de conmutación d'un transistor en comparació a un tubo o un relé. Gràcies tant a esta creixent fiabilitat com a l'enorme increment de velocitat dels elements de conmutación, que per este temps eren casi exclusivament transistors, es varen ser alcançant freqüències de rellonge de la CPU de decenes de megahercios. Ademés, mentres s'usaven comunament les CPU de transistors discrets i de circuits integrats, varen començar a aparéixer nous dissenys d'alt rendiment, com processadors vectorials SIMD (single instruction multiple data – instrucció única, senyes múltiples). Estos primers dissenys experimentals varen donar lloc més alvance a l'era dels superordenadorés especialisats, com els fets per la Cray Inc.
Microprocessadors
[editar | editar còdic]- Artícul principal → Microprocessador.
En la década de 1970 els invents fonamentals de Federico Faggin (ICs Silicon Gate MOS en portes autoalineades junt en la seua nova metodologia de disseny de llògica aleatòria) va canviar el disseny i l'implementació de les CPU per a sempre. Des de l'introducció del primer microprocessador comercialment disponible, el Intel 4004, en 1970 i del primer microprocessador àmpliament usat, el Intel 8080, en 1974 esta classe de CPU ha desplaçat casi totalment el restant dels métodos d'implementació de l'Unitat Central de Processament. Els fabricants de mainframes i de miniordenadors d'eixe temps varen llançar programes de desenroll d'IC propietaris per a actualisar els seus arquitectura d'ordenadors més velles i produir microprocessadors en conjunts d'instruccions que eren retrocompatibles en els seus hardwares i els seus softwares més vells. Combinat en el advenimiento i el vast èxit de l'ara ubic ordenador personal, el terme "CPU" s'aplica ara casi exclusivament als microprocessadors. Les generacions prèvies de CPU es varen implementar com a components discrets i numerosos circuits integrats de chicoteta escala d'integració en una o més targetes de circuits. Per un atre costat, els microprocessadors són CPU fabricades en un número molt chicotet d'IC; normalment solament un. El tamany més chicotet de la CPU, com a resultat d'estar implementat en una simple pastilla, significa temps de conmutación més chicotets per factors físics com la reducció de la capacitancia paràsita de les portes. Açò ha permés que els microprocessadors síncronos tinguen temps de rellonge en un ranc de decenes de megahercios a varis gigahercios. Adicionalment, com ha aumentat la capacitat de construir transistors molt chicotets en un circuit integrat, la complexitat i el número de transistors en una simple CPU també s'ha incrementat enormement. Esta tendència àmpliament observada es descriu per la llei de Moore, que ha vingut demostrant ser una predicció prou exacta del creiximent de la complexitat dels CPUs i atres IC.[6] Mentres que, en els passats xixanta anys, la complexitat, el tamany, la construcció i la forma general de les CPUs han canviat dràsticament, és notable que el disseny i el funcionament bàsic no ha canviat massa. Casi totes les CPU comunes d'hui en dia es poden descriure en precisió com a màquines de programa almagasenat de von Neumann. A mida que la ya mencionada llei del Moore continua complint-se,[6] s'han presentat preocupacions sobre els llímits de la tecnologia de transistor del circuit integrat. La miniaturisació extrema de portes electròniques està causant els efectes de fenomens que es tornen molt més significatius, com la electromigración i el subumbral de pèrdua. Estes noves preocupacions estan entre els molts factors que fan als investigadors estudiar nous métodos de computació, com la computació quàntica, i ampliar l'us del paralisme i d'atres métodos que estenen l'utilitat del model clàssic de von Neumann.
Funcionament
[editar | editar còdic]La funció fonamental de la majoria de les CPU és eixecutar una seqüència d'instruccions almagasenades cridades «programa». El programa està representat per una série de números que es mantenen en una certa classe de memòria d'ordenador. Hi ha quatre passos que casi totes les CPU d'arquitectura de von Neumann usen en la seua operació: fetch, decode, execute, i writeback, (llegir, decodificar, eixecutar i escriure).
Fetch
[editar | editar còdic]El primer pas, llegir, implica recuperar una instrucció (que està representada per un número o una seqüència de números) de la memòria de programa. La localisació en la memòria del programa queda determinada per un contador de programa (PC), que almagasena un número que identifica la direcció de la següent instrucció que es deu buscar. En acabant de que es llig una instrucció, el PC s'incrementa en la llongitut de l'instrucció en térmens d'unitats de memòria, de modo que contindrà la direcció de la següent instrucció en la seqüència. Freqüentment, l'instrucció a llegir-se deu recuperar-se de la memòria, relativament llenta, la qual cosa deté la CPU mentres espera a que es torne l'instrucció. Este problema es tracta en gran mida en els processadors moderns pels cachés i les arquitectura pipeline (vore avall).
Decode
[editar | editar còdic]En el pas de decodificación, l'instrucció es dividix en parts que tenen significat per a atres unitats de la CPU. La manera en que el valor de l'instrucció numèrica s'interpreta està definida per l'arquitectura del conjunt d'instruccions (el ISA) de la CPU. A sovint, un grup de números en l'instrucció, cridats opcode, indica quina operació realisar. Les partixes restants del número normalment proporcionen informació requerida per a eixa instrucció com, per eixemple, els operants per a una operació d'adició. Tals operants es poden donar com un valor constant (cridat valor immediat) o com un lloc per a localisar un valor, que, segons lo determinat per algun modo de direcció, pot ser un registre o una direcció de memòria. En dissenys més vells les unitats del CPU responsables de decodificar l'instrucció eren dispositius d'hardware fixos. No obstant, en CPUs i ISAs més abstractes i complicats, freqüentment s'usa un microprograma per a ajudar a traduir instruccions en vàries senyals de configuració per a la CPU. Este microprograma a voltes es pot reescriure de tal manera que pot modificar-se per a canviar la manera en que la CPU decodifica instruccions inclús en acabant de que s'haja fabricat.
Execute
[editar | editar còdic]Despuix dels passos de llectura i decodificación, es porta a terme el pas de la eixecució de l'instrucció. Durant este pas, vàries unitats de la CPU es conecten de tal manera que poden realisar l'operació desijada. Si, per eixemple, es va solicitar una operació d'adició, una unitat aritmètic llògica (ALU) es conectarà a un conjunt d'entrades i un conjunt d'eixides. Les entrades proporcionen els números a ser sumats, i les eixides contindran la suma final. La ALU conté la circuitería per a realisar operacions simples d'aritmètica i de llògica en les entrades, com a adició i operacions de bits (bitwise). Si l'operació d'adició produïx un resultat massa gran per a poder que puga manejar-ho la CPU, també pot ajustar-se una bandera (flag) de desbordament aritmètic localisada en un registre de banderes (vore avalla secció sobre ranc de número entero).
Writeback
[editar | editar còdic]El pas final, la escritura, simplement «escriu» els resultats del pas d'eixecució a una certa direcció de memòria. Molt a sovint, els resultats s'escriuen en algun registre intern del CPU per a accés ràpit per les instruccions següents. En atres casos els resultats poden escriure's en una memòria principal més llenta pero més barata i més gran. Alguns tipos d'instruccions manipulen el contador de programa en lloc de directament produir senyes de resultat. Estes es diuen generalment «bots» (jumps) i faciliten comportaments com bucles, l'eixecució condicional de programes (en l'us de bots condicionals) i funciones en programes. Moltes instruccions també canvien l'estat de dígits en un registre de «banderes». Estes banderes poden usar-se per a influenciar cóm es comporta un programa, ya que a sovint indiquen el resultat de vàries operacions. Per eixemple, un tipo d'instrucció de "comparació" considera dos valors i fixa un número, en el registre de banderes, d'acort a quin és el major. Llavors, una instrucció de bot posterior pot usar esta bandera per a determinar el fluix del programa. Despuix de l'eixecució de l'instrucció i de l'escritura de les senyes resultants, el procés sancer es repetix en el següent cicle d'instrucció, normalment llegint la següent instrucció en seqüència pel valor incrementat en el contador de programa. Si l'instrucció completada era un bot, es modifica el contador de programa per a contindre la direcció de l'instrucció a la qual es va botar, i l'eixecució del programa continua normalment. En CPUs més complexes que la descrita ací, poden llegir-se, decodificarse i eixecutar-se simultàneament múltiples instruccions. Esta secció descriu normalment es diu "entubado RISC clàssic" (Classic RISC pipeline), que de fet és prou comú entre les CPU simples usades en molts dispositius electrònics, a sovint cridades microcontroladorés.
Disseny i implementació
[editar | editar còdic]Ranc de sancers
[editar | editar còdic]La manera en la que una CPU representa els números és una opció de disseny que afecta a les més bàsiques formes en que el dispositiu funciona. Algunes de les primeres calculadores digitals varen usar, per a representar números internament, un model elèctric del sistema de numeració decimal comuna (base dèu). Atres ordenadors han usat sistemes de numeració més exòtics com el ternario (base tres). Casi totes les CPU modernes representen els números en forma binaria: cada dígit es representa per una certa cantitat física de dos valors, com un voltage "alt" o "baix".

En la representació numèrica estan relacionats el tamany i la precisió dels números que una CPU pot representar. En el cas d'una CPU binaria, un bit es referix a una posició significativa en els números en els que treballa una CPU. El número de bits (o de posicions numèriques, o dígits) que una CPU usa per a representar els números a sovint es diu "tamany de la paraula", "ample de bits", "ample de ruta de senyes", o "precisió d'el número entero" quan s'ocupa estrictament de número entero (en oposició a números de menge flotant). Este número diferix entre les arquitectura i, a sovint, dins de diferents unitats de la mateixa CPU. Per eixemple, una CPU de 8 bits maneja un ranc de números que poden representar-se en huit dígits binarios, cada u dels quals té dos valors possibles, i en combinació els 8 bits tenen 28 o 256 números discrets. En efecte, el tamany d'el número entero fixa un llímit d'hardware en el ranc de número entero que el software "corre" i que la CPU pot usar directament. El ranc d'el número entero també pot afectar al número de posicions en memòria que la CPU pot direccionar (localisar). Per eixemple, si una CPU binaria utilisa 32 bits per a representar una direcció de memòria i cada direcció de memòria representa a un octet (8 bits), la cantitat màxima de memòria que la CPU pot direccionar és 232 octets, és dir, 4 GB. Esta és una vista molt simple del espai de direcció del CPU i molts dissenys moderns usen métodos de direcció molt més complexos com paginació per a localisar més memòria que el seu ranc sancer permetria en un espai de direcció pla. Nivells més alts del ranc de número entero requerixen més estructures per a manejar els dígits adicionals i, per lo tant, més complexitat, tamany, us d'energia i, generalment, cost. Per això, no és del tot infreqüent, vore microcontroladorés de 4 i 8 bits usats en aplicacions modernes, aun cuando estan disponibles CPU en un ranc molt més alt (de 16, 32, 64, i inclús 128 bits). Els microcontroladors més simples són generalment més barats, usen menys energia i, per lo tant, dissipen menys calor. Tot açò poden ser consideracions de disseny importants per als dispositius electrònics. No obstant, en aplicacions de l'extrem alt, els beneficis produïts pel ranc adicional (més a sovint l'espai de direcció adicional) són més significatius i en freqüència afecten les opcions del disseny. Per a guanyar algunes de les ventages proporcionades per les llongituts de bits tant més baixes, com més altes, moltes CPUs estan dissenyades en amples de bit diferents per a diferents unitats del dispositiu. Per eixemple, el IBM System/370 va usar una CPU que va anar sobretot de 32 bits, pero va usar precisió de 128 bits dins de les seues unitats de menge flotant per a facilitar major exactitut i ranc de números de menge flotant.[4] Molts dissenys posteriors de CPU usen una mescla d'ample de bits similar, especialment quan el processador està dissenyat per a usos de propòsit general a on es requerix un equilibri raonable entre la capacitat de número entero i de menge flotant.
Freqüència de rellonge
[editar | editar còdic]- Artícul principal → Freqüència de rellonge.
La majoria de les CPU i, de fet, la majoria dels dispositius de llògica seqüencial, són de naturalea síncrona. És dir, estan dissenyats i operen en funció d'una senyal de sincronisació. Esta senyal, coneguda com a senyal de rellonge, usualment pren la forma d'una ona quadrada periòdica. Calculant el temps màxim en que les senyals elèctriques poden moure's en els varis forcalls dels molts circuits d'una CPU, els dissenyadors poden seleccionar un periodo apropiat per a la senyal del rellonge. Este periodo deu ser més llarc que la cantitat de temps que necessita una senyal per a moure's, o propagar-se en el pijor dels casos. En fixar el periodo del rellonge a un valor prou major sobre el retardo de la propagació del pijor cas, és possible dissenyar tota la CPU i la manera en la que mou les senyes al voltant dels "vores" de la pujada i baixada de la senyal del rellonge. Açò té la ventaja de simplificar la CPU significativament, tant en una perspectiva de disseny com en una perspectiva de cantitat de components. No obstant, açò també té la desventaja que tota la CPU deu esperar als seus elements més llents, aun cuando algunes unitats de la mateixa són molt més ràpides. Esta llimitació s'ha compensat en gran part per varis métodos d'aumentar el paralisme de la CPU (vore avall). No obstant, les millores arquitectòniques per sí soles, no solucionen totes les desventages de CPUs globalment síncronas. Per eixemple, una senyal de rellonge està subjecta als retardos de qualsevol atra senyal elèctrica. Velocitats de rellonge més altes en CPUs cada volta més complexes fan més difícil de mantindre la senyal del rellonge en fase (sincronisada) a través de tota l'unitat. Açò ha dut a que moltes CPUs modernes requerixquen que se'ls proporcione múltiples senyals de rellonge idèntiques, per a evitar retardar una sola senyalo suficient com per a fer a la CPU funcionar incorrectament. Un atre important problema quan la velocitat del rellonge aumenta dramàticament, és la cantitat de calor que és dissipada per la CPU. La senyal del rellonge canvia constantment, provocant la conmutación de molts components (canvi d'estat) sense importar si estan sent usats en eixe moment. En general, un component que està canviant d'estat, usa més energia que un element en un estat estàtic. Per lo tant, a mida que la velocitat del rellonge aumenta, aixina ho fa també el malbarat de calor, causant que la CPU requerixca solucions de refredat més efectives. Un método de tractar la conmutación de components innecessaris es diu el clock gating, que implica apagar la senyal del rellonge als components innecessaris, efectivament desactivant-els. No obstant, açò és freqüentment considerat com a difícil d'implementar i per lo tant no veu us comú anara de dissenys de molt baixa potència. Un notable disseny de CPU tardà que utilisa una àmplia comporta del rellonge per a reduir els requisits de potència de la consola de videojocs és la de la Xbox 360 basada en la PowerPC d'IBM.[7] Un atre método de tractar alguns dels problemes d'una senyal global de rellonge és el complet removiment de la mateixa. Mentres que llevar la senyal global del rellonge fa, de moltes maneres, considerablement més complex el procés del disseny, en comparació a dissenys síncronos similars, els dissenys asincrónicos (o sense rellonge) tenen marcades ventages en el consum d'energia i el malbarat de calor. Encara que es tracte d'alguna cosa infreqüent, les CPUs completes s'han construït sense utilisar una senyal global de rellonge. Dos notables eixemples d'açò són el AMULET, que implementa l'arquitectura del ARM, i el MiniMIPS, compatible en el MIPS R3000. En lloc de remoure totalment la senyal del rellonge, alguns dissenys de CPU permeten que certes unitats del dispositiu siguen asincrónicas, com per eixemple, usant ALU en conjunció en pipelining superescalar per a alcançar alguns guanys en l'eixercite aritmètic. Mentres que no estiga completament clar si els dissenys totalment asincrónicos poden eixercitar-se a un nivell comparable o millor que els seus contrapartes síncronas, és evident que per lo manco descollen en les operacions matemàtiques més simples. Açò, combinat en les seues excelents característiques de consum d'energia i malbarat de calor, els fa molt adequats per a sistemes "embebidos".[8]
Paralisme
[editar | editar còdic]- Artícul principal → Computació parala.
La descripció de l'operació bàsica d'un CPU oferida en la secció anterior descriu la forma més simple que pot prendre una CPU. Este tipo de CPU, comunament denominat "subescalar", opera sobre i eixecuta una sola instrucció en un o dos senyes al mateix temps. Este procés dona lloc a una ineficàcia inherent en CPU subescalares. ya que solament una instrucció és eixecutada al mateix temps, tota la CPU deu esperar a que eixa instrucció es complete abans de procedir a la següent instrucció. Com a resultat, la CPU subescalar queda "paralisada" en instruccions que prenen més d'un cicle de rellonge per a completar la seua eixecució. Inclús l'adició d'una segona unitat d'eixecució (vore avall) no millora molt l'eixercite. En lloc d'un camí quedant congelat, ara dos camins es paralisen i aumenta el número de transistors no usats. Este disseny, en el que els recursos d'eixecució de la CPU poden operar en solament una instrucció al mateix temps, només pot, possiblement, alcançar l'eixercite escalar (una instrucció per cicle de rellonge). No obstant, l'eixercite casi sempre és subescalar (menys d'una instrucció per cicle). Les tentatives d'alcançar un eixercite escalar i millor han resultat en una varietat de metodologia de disseny que fan comportar-se a la CPU menys linealmente i més en paral. Quan es referix al paralisme en les CPUs, generalment són usats dos térmens per a classificar estes tècniques de disseny.
- El paralisme a nivell d'instrucció, en anglés instruction level parallism (ILP), busca aumentar la taxa en la quals instruccions són eixecutades dins d'una CPU, és dir, aumentar l'utilisació dels recursos d'eixecució en la pastilla.
- El paralisme a nivell de fil d'eixecució, en anglés thread level parallism (TLP), que es propon incrementar el número de fils (efectivament programes individuals) que una CPU puga eixecutar simultàneament. Cada metodologia es diferencia tant en les maneres en les que estan implementades, com en l'efectivitat relativa que produïxen en l'aument de l'eixercite de la CPU per a una aplicació.
ILP: Segmentación i arquitectura superescalar
[editar | editar còdic]- Artícul principal → Segmentación (electrònica).
Un dels métodos més simples per a conseguir incrementar al paralisme és començar els primers passos de llegir i decodificar l'instrucció ans que l'instrucció anterior haja terminat d'eixecutar-se. Esta és la forma més simple d'una tècnica coneguda com segmentación (instruction pipelining en anglés), i és utilisada en casi totes les CPU de propòsit general moderns. En dividir la ruta d'eixecució en etapes discretes, la canonada permet que més d'una instrucció siga eixecutada en qualsevol temps. Esta separació pot ser comparada a una llínea d'ensamblage, en la qual una instrucció és feta més completa en cada etapa fins que ix de la canonada d'eixecució i és retirada del mateix. No obstant, la canonada introduïx la possibilitat d'una situació a on és necessari terminar el resultat de l'operació anterior per a completar l'operació següent; una condició anomenada a sovint com a conflicte de dependència de senyes. Per a fer front a açò, deu ser pres un conte adicional per a comprovar estes classes de condicions, i si açò ocorre, es deu retardar una porció de la canonada d'instrucció. Naturalment, conseguir açò requerix circuitería adicional, els processadors entubados són més complexos que els subescalares, pero no molt. Un processador entubado pot aplegar a ser casi completament escalar, solament inhibit per les abruptes parades de la canonada (una instrucció durant més d'un cicle de rellonge en una etapa).
Una millora adicional sobre l'idea del entubado d'instrucció (instruction pipelining) va conduir al desenroll d'un método que disminuïx inclús més el temps ocioso dels components de la CPU. Dissenys que es diu que són superescalares inclouen una llarga canonada d'instrucció i múltiples unitats d'eixecució idèntiques.[9] En una canonada superescalar, múltiples instruccions són llegides i passades a un despachador, que decidix si les instruccions es poden o no eixecutar en paral (simultàneament). De ser aixina, són despachades a les unitats d'eixecució disponibles, donant per resultat la capacitat per a que vàries instruccions siguen eixecutades simultàneament. En general, quant més instruccions una CPU superescalar és capaç de despachar simultàneament a les unitats d'eixecució en espera, més instruccions seran completades en un cicle donat. La major part de la dificultat en el disseny d'una arquitectura superescalar de CPU descansa en crear un despachador eficaç. El despachador necessita poder determinar ràpida i correctament si les instruccions poden eixecutar-se en paral, tan ben com despachar-les d'una manera que mantinga ocupades tantes unitats d'eixecució com siga possible. Açò requerix que la canonada d'instrucció siga omplida tan a sovint com siga possible i s'incrementa la necessitat, en les arquitectura superescalares, de cantitats significatives de caché de CPU. Açò també crea tècniques per a evitar perills com la predicció de forcall, eixecució especulativa, i la eixecució fòra d'orde, crucials per a mantindre alts nivells d'eixercite. Tractant de predir qué branca (o trayectòria) prendrà una instrucció condicional, la CPU pot minimisar el número de voltes que tot el canal deu esperar fins que es complete una instrucció condicional. Freqüentment, l'eixecució especulativa proporciona auments modests de l'eixercite en eixecutar porcions de còdic que no pot ser necessari despuix de completar-se una operació condicional. Fòra de l'orde d'eixecució canvia d'algun modo l'orde en que s'eixecuten les instruccions per a reduir retardos per les dependències de senyes. També en el cas d'instruccions individuals de senyes múltiples — els processadors moderns, en cas que s'hagen processat una gran cantitat de senyes del mateix tipo, poden desactivar parts de la canonada de manera que quan s'eixecuta una sola sentència moltes voltes, la CPU bota la captació i decodifica fases i per lo tant aumenta considerablement el rendiment en certes ocasions, sobretot en els motors de programes altament monòtons com el software de creació de video i processament de fotografies. En el cas a on una porció de la CPU és superescalar i una part no ho és, la part que no és superescalar sofrix en l'eixercite per les parades d'horari. El Intel Pentium original (P5) tenia dos ALUs superescalares que podien acceptar, cada una, una instrucció per cicle de rellonge, pero el seu FPU no podia acceptar una instrucció per cicle de rellonge. Aixina el P5 era superescalar en la part de número entero pero no era superescalar de números de menge (o punt [decimal]) flotant. El successor a l'arquitectura del Pentium d'Intel, el P6, va agregar capacitats superescalares a les seues funcions de menge flotant, i per lo tant va produir un significatiu aument en l'eixercite d'este tipo d'instruccions. Tant el disseny superescalar com el entubado simple aumenten el ILP d'una CPU en permetre a un sol processador completar l'eixecució d'instruccions en ràtios que sobrepassen una instrucció per cicle (IPC). La majoria dels moderns dissenys de CPU són per lo manco alguna cosa superescalares, i en l'última década, casi tots els dissenys de CPU de propòsit general són superescalares. En els últims anys alguna cosa de l'émfasis en el disseny de computadors d'alt ILP s'ha mogut de l'hardware de la CPU cap al seu interfaç de software, o ISA. L'estratègia very long instruction word o VLIW, causa a algun ILP a ser implícit directament pel software, reduint la cantitat de treball que la CPU deu realisar per a donar-li un espente significatiu al ILP i per lo tant reduir la complexitat del disseny.
Paralisme a nivell de fils
[editar | editar còdic]Una atra estratègia per a conseguir el rendiment és eixecutar varis programes o fils en paral. Esta àrea d'investigació es coneix com a computació parala. En la taxonomia de Flynn, esta estratègia es coneix com a múltiples instruccions de vàries senyes o MIMD. Una tecnologia utilisada per a este propòsit va ser el multiprocesamiento (MP). El puntapié inicial d'esta tecnologia es coneix com multiprocesamiento simètric (SMP), a on un chicotet número de CPU compartixen una visió coherent del seu sistema de memòria. En este esquema, cada CPU té un hardware adicional per a mantindre una visió constantment actualisada de la memòria. Per a evitar visites ràncies de la memòria, les CPU poden cooperar en el mateix programa i els programes poden migrar des d'una CPU a una atra. Per a aumentar el número de CPUs que cooperen més allà d'unes poques, es varen introduir en 1990, els esquemes tals com el senar-uniform memory Access (accés no uniforme a memòria) (NUMA) i els protocols de coherència basats en directoris. Els sistemes SMP es llimiten a un chicotet número de CPU mentres que els sistemes NUMA s'han construït en mils de processadors. Inicialment, el multiprocesamiento es va construir usant múltiples CPUs discretes i taulers per a implementar l'interconexió entre els processadors. Quan els processadors i la seua interconexió hagen segut implementades en un únic chip de silici, la tecnologia es coneix com un processador multinúcleo. Posteriorment, es va reconéixer que existia un paralisme molt estret en un únic programa. Un únic programa podria tindre varis fils (o funcions) que podrien ser eixecutades per separat o en paral. Alguns dels primers eixemples d'esta tecnologia implementava processament d'entrada/eixida tals com el accés directe a memòria com un fil separat del fil computat. En la década de 1970, es va introduir un enfocament més general a esta tecnologia, quan es varen dissenyar sistemes per a eixecutar múltiples fils de computació en paral. Esta tecnologia es coneix com multihilo (MT). Este enfocament es considera més rendable que la del multiprocesamiento, ya que solament es replica un chicotet número de components dins d'una CPU per a soportar MT en oposició a la totalitat de la CPU en el cas de MP. En MT, les unitats d'eixecució i el sistema de memòria incloent els cachés són compartits entre varis fils. La desventaja de MT és que el soport d'hardware per a multihilo és més visible per al software que la de MP i per lo tant el software supervisor com el dels sistemes operatius tenen que sometre's als canvis més grans per a recolzar MT. Un tipo de MT que es va implementar és conegut com a bloc multihilo, a on s'eixecuta un fil fins que es paralise esperant que retornen les senyes des de la memòria externa. En este esquema, la CPU tindria luego que canviar ràpidament a un atre fil que està llest per a funcionar, l'interruptor moltes voltes realisa un cicle de rellonge de la CPU, com la tecnologia UltraSPARC. Un atre tipo de MT es denomina multihilo simultàneu, en a on les instruccions de múltiples fils s'eixecuten en paral dins d'un cicle de rellonge de la CPU.
Paralisme de senyes
[editar | editar còdic]- Artícul principal → Processador vectorial.
Un menys comú pero cada volta més important paradigma de CPU (i de fet, de computació en general) tracta en vectores. Els processadors dels que s'ha parlat anteriorment són tots referits com a cert tipo de dispositiu escalar. Com implica el seu nom, els processadors vectorials s'ocupen de múltiples peces de senyes en el context d'una instrucció, açò contrasta en els processadors escalares, que tracten una peça de senya per cada instrucció. Estos dos esquemes d'ocupar-se de les senyes són generalment referits respectivament com SISD (single instruction, single data) i SIMD (single instruction, multiple data). La gran utilitat en crear CPUs que s'ocupen de vectores de senyes radica en l'optimisació de tasques que tendixen a requerir la mateixa operació, per eixemple, una suma, o un producte escalar, a ser realisat en un gran conjunt de senyes. Alguns eixemples clàssics d'este tipo de tasques són les aplicacions multimèdia (imàgens, vídeo, i sò), aixina com molts tipos de tasques científiques i d'ingenieria. Mentres que una CPU escalar deu completar tot el procés de llegir, decodificar, i eixecutar cada instrucció i valor en un conjunt de senyes, una CPU vectorial pot realisar una simple operació en un comparativament gran conjunt de senyes en una sola instrucció. Per supost, açò és solament possible quan l'aplicació tendix a requerir molts passos que apliquen una operació a un conjunt gran de senyes. La majoria de les primeres CPU vectorials, com el Cray-1, es varen associar casi exclusivament a aplicacions d'investigació científica i criptografia. No obstant, a mida que la multimèdia es va desplaçar en gran part a mijos digitals, ha aplegat a ser significativa la necessitat d'una certa forma de SIMD en CPUs de propòsit general. Poc en acabant de que començara a ser comú incloure unitats de menge flotant en processadors d'us general, també varen començar a aparéixer especificacions i implementacions d'unitats d'eixecució SIMD per a les CPU d'us general. Algunes d'estes primeres especificacions SIMD, com el MMX d'Intel, varen anar solament per a número entero. Açò va demostrar ser un impediment significatiu per a alguns desenrolladors de software, ya que moltes de les aplicacions que es beneficiaven del SIMD tractaven sobretot en números de menge flotant. Progressivament, estos primers dissenys varen ser refinats i refets en alguna de les comunes, modernes especificacions SIMD, que generalment estan associades a un ISA. Alguns eixemples moderns notables són el SSE d'Intel i el AltiVec relacionat en el PowerPC (també conegut com VMX).
Eixercite
[editar | editar còdic]El "rendiment" (performance) o la velocitat d'un processador depén de, entre molts atres factors, la velocitat del rellonge (generalment donada en múltiples d'hertz) i les instruccions per cicle de rellonge (IPC), que junts són els factors per a les instruccions per segon (IPS) que la CPU pot rendir.[10] Molts reportes de valors IPS han representat taxes d'eixecució "pico" en seqüències d'instruccions artificials en poques branques, mentres que les càrregues de treball realistes consistixen en una combinació d'instruccions i d'aplicacions, algunes de les quals requerixen més temps per a eixecutar que unes atres. El rendiment de la jerarquia de memòria també afecta en gran mida al rendiment del processador, un tema molt poc tingut en conte en els càlculs de MIPS. Per estos problemes, per a este fi, s'han desenrollat varis exàmens estandardisats, tals com SPECint moltes voltes cridats "punts de referència" - per a tractar de medir el rendiment real efectiu en aplicacions d'us quotidià. L'eixercite de processament dels ordenadors s'incrementa utilisant processadors multinúcleo, que en essència és conectar dos o més processadors individuals (cridats núcleus en este sentit) en un sol circuit integrat.[11] Idealment, un processador de doble núcleu seria casi dos voltes tan potent com un processador de núcleu únic. En la pràctica, el guany d'eixercite és molt menor, solament al voltant del 50 %,[12] per l'implementació d'algoritmes imperfectes de software.[13] L'aument del número de núcleus en un processador (és dir, dual-core, quad-core, etc) aumenta la càrrega de treball que es pot manejar. Açò significa que el processador ara pot manejar numerosos events asíncronos, interrupcions, etc que poden prendre un "peage" en la CPU (Central Processing Unit) quan s'abrumar. Estos núcleus poden considerar-se com a diferents plantes en una planta de processament, en el maneig de cada pis una tasca diferent. En ocasions, estos núcleus es manegen les mateixes tasques que els núcleus adjacents a ells si un sol núcleu no és suficient per a manejar l'informació. Per les capacitats específiques de les CPU modernes, com HyperThreading i Uncore, que impliquen l'intercanvi de recursos reals de la CPU mentres que l'objectiu d'una major utilisació, supervisar els nivells de rendiment i l'utilisació de l'hardware es va ser convertint gradualment en una tasca més complexa. Com a resposta, algunes CPUs implementen llògica d'hardware adicional que controla l'utilisació real de les diverses parts d'una CPU i proporciona varis contadors accessibles a software; un eixemple és la tecnologia Performance Counter Monitor ("Monitor de contador de rendiment") d'Intel.[14]
Vore també
[editar | editar còdic]Referències
[editar | editar còdic]- ↑ (1945).Moore School of Electrical Engineering, Universitat de Pennsylvania.
- ↑ Erro en la seqüencia d'órdens: no existix el mòdul «Citas».
- ↑ (1961).Ballistic Research Laboratories.
- ↑ 4,0 4,1 (1964).IBM Research.
- ↑ Digital Equipment Corporation (novembre de 1975). classiccmp. org/bitsavers/pdf/dec/pdp11/1103/EK-LSI11-TM-002.pdf , 2dona edició (en anglés), Maynard, Massachusetts: Digital Equipment Corporation, pp. 4–3.
- ↑ 6,0 6,1 (2005).Intel.Consultat el 25 de juliol de 2012.
- ↑ «ibm. com/developerworks/power/library/pa-fpfxbox/? ca=dgr-lnxw07XBoxDesign Application-customized CPU design» (en anglés). IBM developerWorks. Consultat el 17 de decembre de 2005.
- ↑ (1999).University of Manchester Computer Science Department.
- ↑ «archive. org/web/20071128061217/http://courses. ece. uiuc. edu/ece512/Papers/Athlon.pdf The AMD Athlon XP Processor with 512KB L2 Cache» (en anglés). University of Illinois — Urbana-Champaign. Archivat des d'el ece. uiuc. edu/ece512/Papers/Athlon.pdf original, el 28 de novembre de 2007. Consultat el 6 d'octubre de 2007.
- ↑ «cpu-world. com/Glossary/C/CPU_Frequency. html CPU Frequency» (en anglés). CPU World Glossary. CPU World. Consultat el 1 de giner de 2010.
- ↑ «archive. org/web/20100805052158/http://searchdatacenter. techtarget. com/sDefinition/0,,sid80_gci1015740,00. html What is (a) multi-core processor?» (en anglés). Data Center Definitions. SearchDataCenter. com. Archivat des d'el techtarget. com/sDefinition/0,,sid80_gci1015740,00. html original, el 5 d'agost de 2010. Consultat el 1 de giner de 2010.
- ↑ «es/ Guia per a configurar i montar un PC Gaming per peces» (en espanyol). Consultat el 9 de maig de 2018.
- ↑ «archive. org/web/20150725013316/http://www. buzzle. com/artículs/quad-core-vs-dual-core. html Quad Core Vs. Dual Core». http://www. buzzle. com/. Archivat des d'el buzzle. com/artículs/quad-core-vs-dual-core. html original, el 25 de juliol de 2015. Consultat el 26 de novembre de 2014.
- ↑ «intel. com/en-us/artículs/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization Intel Performance Counter Monitor A better way to measure CPU utilization» (en anglés). Consultat el 17 de febrer de 2015.
Bibliografia
[editar | editar còdic]- IBM Research.
- «ibm. com/developerworks/power/library/pa-fpfxbox/? ca=dgr-lnxw07XBoxDesign Application-customized CPU design». IBM developerWorks. Consultat el 17 de decembre de 2005.
- Digital Equipment Corporation (1975). , 2dona edició edició, Maynard, Massachusetts: Digital Equipment Corporation, pp. 4-3.
- University of Manchester Computer Science Department.
- Hennessy, John A.; Goldberg, David, {{{nom2}}} (1996). org/details/computerarchitec00patt Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers. ISBN ISBN 1-55860-329-8.
- MIPS Technologies, Inc..
- «cs. clemson. edu/~mark/multithreading. html History of Multithreading». Consultat el 19 de decembre de 2005.
- Moore School of Electrical Engineering, University of Pennsylvania.
- Ballistic Research Laboratories.
Enllaços externs
[editar | editar còdic]- Commons
- Erro al crear miniatura: Wikimedia Commons alberga contingut multimèdia sobre CPU.
Dissenys de microprocessador
[editar | editar còdic]Plantilla:Wikiversity (en anglés)
- Plantilla:HSW. (en anglés)
- ieee. org/25chips 25 Microchips que varen sacsar al món – un artícul del Institut d'Ingenieria Elèctrica i Electrònica. (en anglés)
- amd. com/ Advanced Micro Devices - Advanced Micro Devices, un dissenyador de principalment CPUs d'ordenador personal compatible en x86. (en anglés)
- arm. com/ ARM Ltd - ARM Ltd, un dels pocs dissenyadors de CPU que es beneficien únicament per llicenciar els seus dissenys en lloc de fabricar-els. Els microprocessadors d'arquitectura ARM es troben entre els més populars en el món per a aplicacions embebidas. (en anglés)
- freescale. com/ Freescale Semiconductor (abans de Motorola, Inc.) - Freescale Semiconductor, dissenyador de varis processadors embebidos basats en PowerPC i SoC. (en anglés)
- archive. org/web/20060314100538/http://www-03. ibm. com/chips/ IBM Microelectronics - Divisió de Microelectrónica d'IBM, que és responsable de molt en dissenys basats en POWER i PowerPC, incloent moltes de les CPU utilisades en les últimes consoles de videojocs de 2012. (en anglés)
- intel. com/ Intel Corp - un fabricant de vàries llínees de CPU notables, incloent IA-32, IA-64, i XScale. També és un fabricant de chips de diferents perifèrics per al seu us en el seu CPU. (en anglés)
- mips. com/ MIPS Technologies - MIPS Technologies, desenrolladors de la arquitectura MIPS, pioner en dissenys RISC. (en anglés)
- sun. com/ Sun Microsystems - Sun Microsystems, desenrolladors de l'arquitectura SPARC, un disseny RISC. (en anglés)
- [enllaç trencat] - Texas Instruments, divisió de semiconductors. Dissenya i fabrica varis tipos de microcontroladors de baix consum entre els seus molts atres productes semiconductors. (en anglés)
- transmeta. com/ Transmeta - Transmeta Corporation. Creadors de x86 de baixa potència compatibles, com Crusoe i Efficeon. (en anglés)
Llectura adicional
[editar | editar còdic]- archive. org/web/20100113033730/http://www. gamezero. com/team-0/artículs/math_magic/micro/index. html Disseny del processador: Una introducció - Introducció detallada al disseny de microprocessadors. (en anglés)
- howstuffworks. com/microprocessor. htm Cóm treballen els microprocessadors. (en anglés)
- com/artículs/paedia/cpu/pipelining-2. ars/2 Pipelining: An Overview - Bona introducció i visió general sobre les tècniques de canonades de CPU pel personal d'Ars Technica. (en anglés)
- com/artículs/paedia/cpu/simd. ars/ SIMD Architectures - Introducció i explicació de SIMD, sobretot cóm es relaciona en els ordenadors personals. També per Ars Technica. (en anglés)
- archive. org/web/20080104163441/http://users. erols. com/chare/current_cpus. htm Llistat de processadors - Noms de CPUs i principals característiques. (en anglés)
- Este artícul conté una traducció total derivada de «Central processing unit» de Wikipedia en inglés, concretament de esta versió, publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.
- com - Cyber security software, software developer. (en anglés)
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Unidad central de procesamiento» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.