Está en la página 1de 14

Arquit A tectur de com ra e mputadores

TEMA 1 RENDIMIEN NTO DE LOS COMPUTADORES

Tema 1 Rendimiento de lo os 1. Necesidad d evaluar el de 3. Programas p para evaluar el

SIDAD DE EV VALUAR EL RENDIMIENTO R O 1. NECES d os n valuar el rend dimiento de u un Hay distintos tipo de personas que ven necesario eva computad dor: enieros: Se necesita alguna herramienta o mediida que perm decidirnos mita Inge por mltiples alt ternativos de disea, eligiendo la ms adecu d e uada en cad da mento. mom Fabr ricantes y v vendedores Deben pod comparar y diferencia su produc s: der r ar cto del de la compete encia. mpradores: Necesitan algn mecanismo que ay yude a decid dirse entre lo os Com distin ntos computa adores en el mercado. e, nes: Hay, no obstante que hacer dos reflexion ndo compram un orde mos enador, nos llevamos el sistema com mpleto as qu ue Cuan debemos evaluar no solo el procesador, sino tamb r bin la mem moria, sistem ma opera ativo, compilladores Los resultados d una evalu r de uacin tiene que ser reproducible y present en es tar claramente los da atos obtenido para pode volver a lle os er evar a cabo esa evaluaci e n se denador y as poder comp pararlos entr s. re en es u otro ord

RAS ITO 2. FIGUR DE MRI m e n e nto va Las medidas que nos ayudan a evaluar el rendimien de manera cuantitativ son las lla amadas figu ras de mrito, y son tres principalme s ente: el tiempo, los MIPS y S los MFLO OPS. El tie empo es la m mejor medid que se puede utilizar, dado que es consistente y da s e real para comparar e rendimiento de dos ord el denadores, ta anto si medimos el tiemp po uesta (el tiem mpo que tar rda una aplicacin desde que empie hasta qu e eza ue de respu acaba) co omo si es la productivida (la cantida de tareas ejecutadas en un espac ad ad s cio de tiempo determinad o do). Habit tualmente tra po T cluye el tiemp po abajaremos con el tiemp de UCP (T UCP) que inc que tarda la mquin en ejecut cdigo de usuario m na tar ms el tiemp en ejecut po tar el operativo, ya que la frontera entre a ambos es mu diluida. P uy Por cdigo de sistema o otro lado este tiemp debe po o po oder relacion narse con allgn parme etro fsico d del computad dor, y este parmetro es la frecuen e ncia. As que un ordenad tenga un e dor na frecuencia de 200 MH significa que tiene un reloj interno de 200 millones de ciclo Hz, q o os por segundo, como e tiempo de ciclo es inve el erso a la frec cuencia, el tiempo de cic clo n 510 dos). es de 5 ns (es decir 5 -9 segund Es ha abitual prese entar el tiem mpo de UCP en funcin d los ciclos de reloj, y si s de adems furamos ca f apaces de ca alcular el nm mero de inst trucciones ej jecutadas (N N), podriamo obtener e nmero medio de ciclos por instr os el m ruccin (CPI tambin se I); puede ut tilizar justam mente el inve erso del CPI, es decir el IPC que es el nmero d de instruccio ones ejecuta adas por cic clo; al final podemos re eescribir la frmula inicial f como sigue a continu uacin: TUCP = ciclosU TCICLO = N UCP

cicl UCP los frec cuencia cicl UCP los CPI= N 1 N IPC = CPI ciclosUCP
TUCP=

ciclosU UCP TCICLO =N CPI TCICLO O N

2 Arquitectura de computadores

Donde N es el nmero de instrucciones a ejecutar, CPI es el nmero medio de ciclos por instruccin y TCICLO es la inversa de la frecuencia del ordenador. De esta ecuacin se desprendes 3 posibles opciones para optimizar un procesador: Reducir (N) el nmero de instrucciones del programa, lo que se relaciona con la arquitectura del nivel de lenguaje mquina y la compilacin. Reducir (CPI) el nmero medio de ciclos por instruccin, que depende de la arquitectura del nivel de lenguaje mquina y de la organizacin del procesador. Reducir (TCICLO) el tiempo del ciclo del procesador, asociado este cambio a la tecnologa de hardware y la organizacin del procesador. Otra medida son los MIPS, o millones de instrucciones de lenguaje mquina ejecutados por segundo. Como observamos en las frmulas laterales, equivale al nmero de instrucciones ejecutadas dividido por el tiempo empleado en realizarlas y dividido por 1 milln. Tambin equivale a la frecuencia dividido por el nmero medio de ciclos por instruccin. La ventaja de esta medida es que es sencilla de asimilar, pero depende del juego de instrucciones, lo que dificulta comparar mquinas diferentes; vara en funcin de los programas que se ejecutan. Hace tiempo los fabricantes y vendedores cuando utilizaban esta figura de mrito realmente utilizaban los MIPS de pico, es decir, una velocidad que seguro nunca alcanzarn los procesadores en una aplicacin real pues consideraban los recursos ideales: memoria ideal (siempre disponible), instrucciones distribuidas homogneamente en todas las unidades funcionales trabajando siempre al mximo de rendimiento, etc. Los MFLOPS son los millones de operaciones de coma flotante ejecutadas por segundo; la definicin es prcticamente igual que los MIPS pero utilizando nicamente las operaciones en coma flotante; esto hace que un programa que no tenga ninguna operacin en coma flotante tenga un MFLOPS de 0, que dependa mucho del programa y del juego de instrucciones. En cambio los MFLOPS permiten comparar mquinas diferentes porque el nmero de operaciones de coma flotante es constante y viene determinado por el programa que quiera resolverse, no vara segn la mquina en la que se ejecute el programa. Tambin se ha utilizado los MFLOPS de pico que corresponde a la suma de los MFLOPS de pico que puede obtener cada una de las unidades funcionales del procesador trabajando al mximo rendimiento posible, circunstancia que es imposible que se de nunca en el trabajo habitual del procesador.
MIPS MIPS =

N TUCP 6 10

MIPS =

frecuencia CPI 6 10

MFLOPS MFLOPS =

N COMAflo tan te TUCP 6 10

3. PROGRAMAS PARA EVALUAR EL RENDIMIENTO Para evaluar el rendimiento de un computador se utilizan una serie de programas estndar (benchmarks) que pretenden simular situaciones de uso cotidiano. Los programas sintticos son programas de tamao moderado que intentan simular un entorno de trabajo con una carga de trabajo tambin determinada. El problema es que al tratarse de pequeos programas son fciles de manipular, as un fabricante dedicar esfuerzo y dinero a hacer que sus mquinas ejecuten estos programas sintticos de manera muy efectiva utilizando diferentes estrategias de optimizacin que, en cualquier caso, no se podrn aplicar despus a los programas reales que son los que en realidad nos interesan. Los programas de juguete son programas pequeos de entre 10 y 100 lneas de cdigo y de los cuales se conoce el resultado a priori. Hoy da son muy poco utilizados. Los ncleos son pequeos fragmentos de cdigo extrados de aplicaciones reales que slo se ejecutan para evaluar el rendimiento de un computador.

Arquitectura de computadores 3

Las aplicaciones reales son la solucin ms utilizada hoy en da, y son aplicaciones que pueden ejecutarse en cualquier plataforma y sistema operativo sin hacer modificaciones y siendo por tanto, ms objetivo su resultado. El problema se centra en decidir qu aplicaciones se utilizan y para ello se cre en el ao 988 un el SPEC (Standar Performance Evaluation Corporation) que define un conjunto de programas de test realista y estandarizado. Actualmente se utiliza el SPEC95 que, debido a la velocidad de los microprocesadores actuales, debe ser pronto cambiada. Lo interesante del SPEC95 es que evala no solo el procesador, sino el computador completo y obliga a incluir en los resultados las caractersticas siguientes con respecto al hardware y software: tipo de procesador y frecuencia, tipo de coprocesador, caractersticas de las memorias cach, tamao de la memoria principal, tipos de dispositivos de entrada/salida utilizados, tipo y versin del sistema operativo, tipo de compilador y versin, tipo de sistema de ficheros y las opciones de compilacin utilizadas.

4 Arquitectura de computadores

TEMA 2 INTRODUCCIN A LA SEGMENTACIN

1. MEJORAS EN EL RENDIMIENTO DE LOS MICROPROCESADORES Ya hemos visto en el tema anterior, que el tiempo de ejecucin de una aplicacin depende de la siguiente expresin: TUCP =N CPI TCICLO, por tanto, depende del nmero de instrucciones a ejecutar (N), el nmero medio de ciclos por instruccin (CPI) y del tiempo de ciclo del reloj (TCICLO). Si conseguimos reducir cualquier trmino o combinacin de trminos de la anterior ecuacin, el tiempo de ejecucin se reducir, y se puede llevar a cabo mediante: El algoritmo: Hay que resolver el problema de forma ms rpida, por tanto mejorando el compilador para generar un cdigo ms eficiente, reduciremos el nmero de instrucciones (N) y/o el CPI, de forma general reduciremos el producto NCPI. La arquitectura: Se pueden hacer cambios en el juego de instrucciones del procesador (arquitectura) que genera mejoras en N, o cambios en cmo se ejecutan las instrucciones de lenguaje mquina (microarquitectura) que genera mejoras en CPI y TCICLO. La tecnologa: Las nuevas tcnicas de fabricacin de semiconductores se traduce directamente en reducciones del TCICLO e indirectamente del CPI. Diseo de mquinas especficas: Es una mejora no contemplada hoy en da y consiste en fabricar ordenadores para cumplir trabajos especficos. El coste de investigacin ms desarrollo se tiene que repartir entre pocas mquinas por lo que se eleva excesivamente.

Tema 2 Introduccin a la segmentacin 1. Mejoras en el rendimiento de los microprocesadores 2. Paralelismo a nivel de instruccin 3. Evolucin conjunta de la tecnologa y la arquitectura

Obviamente, la mayor mejora sucede cuando interaccionan la tecnologa y la arquitectura, especialmente la disminucin en la escala de integracin, que implica que los dispositivos sean ms rpidos al tener que recorrer los electrones menor distancia, y que puedan integrarse ms dispositivos en una misma superficie.

2. PARALELISMO A NIVEL DE INSTRUCCIN Cuando varias instrucciones de un mismo cdigo, pueden ejecutarse en cualquier orden sin que se modifique el resultado final, varias de ellas podran hacerse al mismo tiempo, y existe lo que llamamos paralelismo a nivel de instruccin. Para aprovechar este paralelismo existen dos mtodos: La segmentacin y la multiplicacin. La segmentacin es la misma idea que encierra una cadena de montaje en una fbrica. Para montar un coche se descompone su montaje en etapas independientes, hasta pasar por la ltima en la que se obtiene el vehculo montado. Realmente un coche debe pasar por todas las etapas lo que supone el mismo tiempo en montarlo, pero cuando el coche ya est montado hay varios ms ya con estas etapas iniciadas, vamos, tantos como etapas hayamos dividido, por lo que finalmente el proceso es ms rpido; claro, ms rpido siempre y cuando queremos montar ms de un vehculo. As es posible aplicar la segmentacin de dos formas distintas: Segmentacin en la funcin de un microprocesador: Se descompone una funcin en otras ms sencillas llamadas etapas; se separan estas etapas en registros para evitar que el resultado de una etapa afecte a las dems; se determina el orden en que deben recorrerse estas etapas; se conecta la salida de una etapa con la entrada de la siguiente, y se aade una seal de reloj que indica en qu momento el resultado de todas las etapas se copia a las siguientes.

Arquitectura de computadores 5

Segmentacin de una funcin Ts= (n+B) (R + Ts) n = nmero de operaciones B = Bits R = Retardo en unidades de t. Ts = Retraso introducido

Segmentacin del proceso de ejecucin de las instrucc. TCICLO= Max( Tr) + Tr TS= (n + K) TCICLO

Para que esta funcin de segmentacin sea realmente til, la funcin a segmentar tiene que ser muy utilizada, ya que la segmentacin tiene un coste que se suma al resultado final; y adems la funcin tiene que tener evaluaciones independientes, como la segmentacin inicia la ejecucin de instrucciones antes de que otras hayan terminado, el resultado de las anteriores no debe afectar a las siguientes. El tiempo que se tarda en realizar una operacin con segmentacin lo podemos ver en la figura lateral. Segmentacin del proceso de ejecucin de las instrucciones: Las instrucciones segmentadas se van realizando en lnea paralelamente, para ejecutar ms instrucciones por unidad de tiempo; as aunque el resultado final de procesar una instruccin tiene el mismo coste, al haber efectuado finalmente ms instrucciones, el coste por instruccin disminuye. As, en esta ocasin, el tiempo de ciclo del procesador, es igual al tiempo de clculo de la etapa ms lenta, ms el tiempo de retardo introducido por un registro. Y por ello el tiempo para hacer n operacione segmentadas ser el nmero de operaciones (n) ms el nmero de etapas (K) por el tiempo de ciclo.

La multiplicacin consiste en aprovechar que hay paralelismo a nivel de instruccin para iniciar la ejecucin de ms de una instruccin en un mismo ciclo. El objetivo es conseguir un CPI<1 sin aumentar el tiempo de ciclo del procesador. Para aplicar esta tcnica solo hay que multiplicar los recursos (unidades funcionales, procesador, etc). As para optimizar por ejemplo la suma de naturales, si queremos ir 4 veces ms rpido, sumaremos as 4 procesadores. Aunque cada una de las sumas tarda el mismo tiempo en hacerse que sin la multiplicacin, puede haber 4 sumas hacindose al mismo tiempo. Para que esta tcnica sea efectiva debe llevarse a cabo en operaciones que se hagan con mucha frecuencia (de lo contrario no tiene sentido) y adems deben ser independientes entre ellas. Por tanto, las condiciones son iguales que en la segmentacin, pero la multiplicacin es mucho ms cara de aplicar. As para segmentar el sumador en cuatro etapas, solo hace falta aadir 4 registros de segmentacin, mientras que para hacer lo mismo con la multiplicacin, hay que aadir 4 sumadores completos. Las dos tcnicas pueden combinarse, as que el mximo rendimiento se obtiene aplicando al mismo tiempo la segmentacin y la multiplicacin.

3. EVOLUCIN CONJUNTA DE LA TECNOLOGA Y LA ARQUITECTURA Cronolgicamente a lo largo del tiempo, la tecnologa y la arquitectura de los procesadores han ido evolucionando paralelamente en la siguiente forma de ejecutar las instrucciones: Secuencial: Una instruccin, un ciclo de procesador; y para garantizar que todas las instrucciones se ejecutan de manera correcta, el tiempo de ciclo tiene que ser mayor o igual al tiempo necesario para ejecutar la ms lenta de todas las instrucciones. Secuencial multiciclo: Cada instruccin solo para por las fases que necesita, y el tiempo de ciclo es el de la fase de instrucciones que tarda ms en ejecutarse. Aun as, cada instruccin tarda ms de un ciclo en ejecutarse. Segmentada: Se aplica la tcnica de segmentacin al proceso de ejecucin de instrucciones; cada una de las fases de ejecucin est aislada de las vecinas mediante registros pasa a ser una etapa del procesador. En el cado ideal, se desarrollar una instruccin por ciclo. Segmentada limitada por la bsqueda de instrucciones y datos: Como la tecnologa en la fabricacin de procesadores avanza, el cuello de botella se encuentra en el tiempo que tarda la memoria en la bsqueda de datos. Como el tiempo de ciclo es muy grande, se desarrollaron arquitecturas CISC, as como ir a la memoria a buscar datos es muy lento, se procura que cada instruccin haga mucho trabajo para mantener ocupado el procesador durante la fase de

6 Arquitectura de computadores

ejecucin. Como las instrucciones tienen mucha semntica, se necesitan menos para hacer el mismo trabajo. Segmentada RISC: La mejora de la tecnologa permiti aadir una memoria cach en el microprocesador y la bsqueda de instrucciones pasa a ser muy rpida en comparacin con el coste de ejecutar una instruccin muy complicada, por lo que se vuelve al modelo de procesador segmentado con instrucciones sencillas y de rpida ejecucin. Se puede continuar aumentando el rendimiento de la mquina aumentando el nmero de etapas de la segmentacin para reducir el tiempo de ciclo. Aumentar las etapas para reducir el tiempo de ciclo, trae consigo aumentar la CPI, pero an as, el producto CPI por Tiempo de ciclo disminuye, as que ganaremos rendimiento. Superescalar: Ya solo podemos aumentar el rendimiento, aumentando el hardware, ejecutando ms de una instruccin por ciclo y as conseguir que CPI<1.

Ar rquitectura de computadores 7

TEMA 3 PROCESADO ORES SEGME ENTADOS

Tema 3 Procesadores segmentados 1. Procesadores segmentados s linea ales 2. Arquitectura de ejemplo a 3. Arquitectura se egmentada lineal 4. Limitacio ones de la segmen ntacin 5. Reduccin de los ciclos nflictos de datos perdidos por con 6. Reduccin de los ciclos perdidos por c conflictos de secuenc ciacin 7. Arquitectura s segmentada con operaciones multiciclo s 8. Temas a avanzados

ESADORES S SEGMENTADO LINEALES OS S 1. PROCE Los procesa L adores segm mentados lin neales son el tipo de procesad dor segmenta ms sen ado ncillo posible, Para que se considere lineal tiene que cumplirse s que todas las instruc cciones pasen por las mismas etapas en el mism orden y s s mo sin reutilizar ninguna eta apa. Esto ga arantiza que la bsqued de las ins e da strucciones, el n zacin de las instruccion nes se lleva a cabo en el inicio de la ejecucin y la finaliz rden que se encuentran en el cdigo secuencial. e mismo or

ITECTURA D EJEMPLO DE 2. ARQUI En los lengu E uajes mquin con oper na raciones con registros hay tres tipos n h bsicos de instruccion d nes: raciones de clculo: Incluyen las operacione aritmtica y lgicas y e s es as Oper tanto pueden ser valores ente o r eros como en coma flota nte. La sinta es: n axis OP Rd, Rf1 Rf2; Rd = Rf1 OP Rf2 O 1, d P Donde OP pu D uede ser cualquier operac cin (suma, r resta y multiplicacin). raciones de acceso a la memoria: Hay dos in e l nstrucciones bsicas: LOA AD Oper para ir a buscar u valor a la memoria y STORE para d un S dejarlo: LOAD Rd, R L Rf1, Rf2; Rd = Memo oria[Rf1 + Rf2] LOAD Rd, R L Rf1, #X; Rd = Memo oria[Rf1 + X ] STORE #X, Rf1, Rf2; Memoria[ S ; [Rf1 + x] = Rf2 Oper e raciones de control de secuencia Se trata de operacione como saltos e e a: es incon ndicionales, c condicionales saltos calculados, llama s, adas a subru utinas BEQZ Rd, # B #X, Si (Rf f==0) ento onces PC = PC + X A partir de esta s semntica definida, los ntes bsicos del procesad sern los siguientes: dor componen anco de regis stros con dos puertos de lectura y un s e no Un ba de escritura. U as Una Unidad Aritmtico Lgica UAL para la operaciones de clculo o. Un su umador para calcular el c contador de la instrucci n siguiente del programa d a. Varios registros: Un para man s U ntener las dir recciones en la memoria para los dato (MAR), un para las direcciones d os no de scar C), la memoria con el fin de ir a busc las instrucciones (PC e memoria o vuelven (MDR) y ) uno para los datos que van a la m ones (IR). uno para las instruccio

Componentes b bsicos del proce esador

3. ARQUI ITECTURA SE EGMENTADA LINEAL A En un prim E mer lugar vamos a ide entificar las distintas etapas de la s segmenta acin que po odemos enco ontrar para cada uno de los tipos de instruccin y, c e hecho esto, aplicare emos el mi ismo nmer de etapa a todos los tipos d ro as de n gurarnos que se trata de una arquitec ctura segmen ntada lineal. instrucci para aseg rucciones d clculo: Encontramo que prime hay que ir a buscar la de os ero Instr instru uccin a la memoria (B), luego descodific a o car y leer (DL) dichas instru ucciones, ap plicar la ope eracin sobre los opera e andos (UAL) y por ltim mo escrib el resulta do en el ban de registros (ESC). Po tanto, 4 etapas. bir nco or

8 Arquitectura de computadores

Instrucciones de acceso a la memoria: Las dos primeras etapas, buscar instruccin a la memoria y descodificar y leer es igual que la anterior; despus calculamos la direccin de la memoria donde tiene que accederse (ADR), accedemos a la memoria (MEM) y escribimos en el banco de registros si se trata de una instruccin LOAD (ESC) o no hacemos esta ltima etapa si es una instruccin STORE. Por tanto 4 5 etapas dependiendo del tipo de instruccin.

Por lo tanto, necesitamos, 5 etapas en el camino de datos segmentado, que procedemos a explicar a continuacin en la siguiente tabla para cada una de las instrucciones:
INSTR. CLCULO Tenemos una memoria que contiene las instrucciones, un registro con la direccin de memoria y un incrementador para calcular el nuevo valor del contador del programa. El resultado de esta etapa es la instruccin que tiene que ejecutarse, la cual deja un registro (IR) Se utilizan dos registros como fuentes de operando, por lo que necesitamos un banco de registros con dos puertos de lectura y queda almacenado el resultado de la lectura en dos registros de segmentacin R1 y R2. ACCESO LOAD ACCESO STORE

ETAPA B Bsqueda de la instruccin a la memoria

Igual que en las instrucciones de clculo.

Igual que las anteriores.

ETAPA DL Descodificacin y lectura

Hay que leer los operandos necesarios para calcular la direccin de la memoria. Se pueden utilizar dos registros (ya que disponemos de dos caminos de lectura al banco de registros de las instrucciones de clculo) o un registro y un desplazamiento. Tiene que calcularse la direccin de la memoria. Puede aprovecharse que la UAL que hemos puesto para hacer las operaciones de instrucciones de clculo. El resultado de la UAL se guarda en un registro que servir de ndice en la memoria de datos (MAR). Hay que acceder a la memoria de datos en la direccin indicada por el registro anterior MAR. Tenemos que aadir una memoria para los datos o un nuevo camino que contenga las instrucciones y los datos para poder acceder a la memoria y buscar una nueva instruccin en un mismo ciclo. El resultado de esta etapa es el dato que quiere llevarse de la memoria al banco de registros, y se guardar en MDRin Se escribe el dato que hemos trado de la memoria al banco de registros aprovechando el camino de escritura que ya tenemos para las instrucciones de clculo.

Hay que leer un registro y un desplazamiento para la direccin de la memoria. Adems hay que leer un registro que contiene el valor que queremos llevar a la memoria MDRout, por lo que hay que aadir una nueva conexin desde uno de los caminos del banco de registros a un nuevo registro de segmentacin MDRout2 Hay que calcular la direccin a la memoria, al igual que en las instrucciones LOAD. Hay que recoger el dato que tiene que llevarse a la memoria y trasladarla hacia la etapa siguiente con un nuevo registro de segmentacin.

ETAPA UAL Clculo de la operacin

La UAL aplica la operacin en los dos operandos, y queda guardado el resultado en un nuevo registro R3.

ETAPA MEM Memoria

Las instrucciones no hacen nada, de manera que el resultado de la etapa de UAL se copia en un nuevo registro R4.

Se accede a la direccin de la memoria de datos indicada en el registro de segmentacin MAR y se lleva a la memoria el valor que queremos guardar por un nuevo camino.

ETAPA ESC Escritura

Se escribe en el banco de registros el resultado que se obtiene de la operacin que se ha hecho en la UAL y que se encontraba en R4.

No se utiliza ningn recurso.

El camino de datos tiene estas cinco etapas diferentes, el hardware que configura cada una de las etapas tiene que estar separado de la etapa anterior y de la siguiente mediante registros para poder aislarlas. As, cada etapa puede operar sobre una instruccin diferente sin afectar a las otras etapas. En la pgina siguiente, podemos observar en otra tabla, el camino de datos segmentado para cada uno de estos tipos de instrucciones, con los recursos que se consumen en cada una de las etapas.

Ar rquitectura de computadores 9

INSTR. CLCULO S O

ACCESO LOAD D

ACCESO STO ORE

ACIONES DE LA SEGMEN E NTACIN 4. LIMITA Esta tcnica de la segmentacin tiene unos lmites, y es cuando se E t e producen conflictos. Los conflict de dato se produc n tos os cen cuando el resultado d e de la ejecucin segment tada es difere ente del resu ultado de la e ejecucin se ecuencial com mo o en h o s. resultado del orden e el que se han accedido a los datos As queda cla que si un operacin posterior q A aro na n quiere acceder a la lectu ura de un dato antes de q se haya escrito ese dato en una operacin anterior que h que ha mentada, cam mbiar obvia amente el resultado que se obtiene. Hay tres tipo os sido segm de depen ndencia de datos: endencias d lectura: Se produce cuando do instrucciones diferentes de en os Depe leen algunas varia nes. ables comun Si: ADD R1 R2, R3; R1 = R2 + R3 S 1, ; 2 Sj: SUB R4 R3, R5; R4 = R3 R5 S 4, ; En este ejem E mplo queda claro que si Si y Sj es s stn demasiado juntas se producira un dependen p na ncia de lectu ura, ahora b bien, las dep pendencias d de le ectura nunc pueden provocar un conflicto de datos, ya que las ca u in nstrucciones que tienen la depend n dencia solo comparten variables d de le ectura, indep pendienteme ente del ord den en que se hagan la lecturas, el as resultado ser el mismo. Antid dependenc cias: Aparece cuando una instrucci utiliza una variable qu en n ue se vu uelve a definiir ms tarde. Si: ADD R1 R2, R3; R1 = R2 + R3 S 1, ; 2 Sj: SUB R3 R4, R5; R3 = R4 R5 S 3, ; Tampoco en este caso se pueden pro T e oducir conflic de datos, ya que todas cto , la instruccion pasan po las misma etapas y e el mismo orden, y todas as nes or as en o la instruccio as ones con reg gistros escrib ben el result tado cuando pasan por la o

10 Arquitectur de computadores 0 ra

ltima etapa, as pues cuando la instrucci Sj escribe todas las anteriores a o n e, a ya han ledo corre ectamente su operandos us s. encias de e escritura: Se producen c e cuando dos instrucciones escriben s Depende en alguna variable com a mn. ADD R1, R R2, R3; R1 = R2 + R3 R Si: A R4, R5; R1 = R4 R R5 Sj: S SUB R1, R Tamp poco en este caso se pue eden produciir conflicto de datos, ya que todas q las in nstrucciones escriben en la misma e n etapa y cua ando la instr ruccin Sj escrib todas las anteriores ya han escrito be, o. Depende encias reale Tienen lugar cuand o la instrucc es: cin Si gene era una variable que es utilizada por la instruccin Sj. n Si: A ADD R1, R R2, R3; R1 = R2 + R3 R R3, R1; R4 = R3 R R1 Sj: S SUB R4, R stas son las nic dependencias de verd que pue cas eden acontec cer dad segmentado lineal. Hay d diferencia si la variable que en el procesador s oca dencia (en este caso R1) est en me e ) emoria o en un provo la depend regist tro. Si est en un registro la instrucc o, cin Sj debe encontrarse, al e meno a una dis os stancia de 4 instruccione para que no provoque es e depen ndencia (ver figura adjun nta). Si la var riable proble emtica est en la me emoria no pu uede haber conflicto de datos ya qu la lectura y ue a escritura siempre se produce en la mis e e sma etapa (la cuarta) del ( d esador segme entado lineal. proce Hasta ahora hemo considerado que las in a os nstrucciones se ejecutaban e oducirse salt tos, pero com sabemos eso no siempre es as mo una detrs de otra, sin pro de ictos de y esto nos introduce en un nuevo tipo d errores, los confli ecuenciaci Para aa la secuenciacin deb n. adir bemos hacer una serie de cambios e se en nuestro procesador se egmentado lineal, as se podr com e mparar el valor de un egistro y en funcin del resultado saltar a una ci erta distanci de la instr ia ruccin de re sa alto:
Secuencia acin Dependen ncias reales Variable en registro n Variable en memoria n

a ciones y la d descodificacin y lectu de ura La etapa de bsqueda de instrucc mismas que para las otras instruccione s es. son las m En la eta apa UAL puede utilizars la UAL d camino de datos pa se del d ara calcular e contador d programa de la instru ccin siguien en caso de el de nte que tenga que saltar (PC = PC + X), tam a rse C mbin hay qu comparar el ue registro ledo con ce ero, y aadir un compa arador en esta etapa del e d or. procesado En el cicl siguiente, en la etapa de memo lo , oria ya puede evaluarse la condicin de salto y a final del ciclo todo est preparado (condicin de al t o reccin de de estino) para poder saltar r. salto y dir

Pero eso s, si no se hace nada por evitarlo, durante 3 ciclos se hab p c br do n trucciones qu siguen a la ue id a buscar y se habrn ejecutado las tres inst in nstruccin de salto; si fin e nalmente se tiene que s saltar porque se cumple la e co ondicin, ha abremos ejec cutado errn neamente 3 instruccione que con el es mtodo secue m encial del cd digo no se hubieran ejec cutado y por tanto se hab br modificado el resultado de cdigo orig m el ginal Tanto para evitar este problem en los co o ma onflictos de se ecuenciacin como en n os e or. cnica que lo conflictos de datos, se utiliza el bloqueo del procesado Es una t detiene la bs squeda de nu uevas instruc cciones y dej que las qu estn en las etapas ja ue l

Arquitectura de computadores 11

de UAL, memoria y escritura se continen ejecutando. Los dos tipos de bloqueos de procesador que existen son: Para resolver los conflictos estructurales y de datos, adems de detener la bsqueda de nuevas instrucciones, se detiene la etapa de descodificacin y lectura de operandos; as la distancia entre las instrucciones que tienen dependencia o quieren usar un mismo recurso, aumenta hasta que desaparece el riesgo. Para resolver los conflictos de secuenciacin no puede detenerse la descodificacin y lectura de operandos, ya que tenemos que dejar que la instruccin de salto se ejecute para saber cul es la instruccin siguiente que hay que buscar.

Durante estos ciclos que se bloquea el procesador, se generan instrucciones nulas, instrucciones NOP (no operacin) que no modifican el estado del procesador.

5. REDUCCIN DE LOS CICLOS PERDIDOS POR CONFLICTOS DE DATOS La solucin del captulo anterior es buena pero, por desgracia, nos hace perder 3 ciclos de proceso datos que es, en definitiva, para lo que segmentbamos el procesador, para poder ejecutar paralelamente ms instrucciones por ciclo. Pero, como casi siempre, existen tcnicas para reutilizar estos ciclos y que se sigan generando instrucciones, son dos principalmente, la planificacin de instrucciones y los cortocirtuitos.
Planificacin de instrucciones 1: ADD R1, R2, R3 2: SUB R4, R2, R1 3: ADD R5, R6, R2 4: MUL R7, R3, R6 5: ADD R2, R3, R2 6: SUB R3, R2, R4 1: ADD R1, R2, R3 3: ADD R5, R6, R2 4: MUL R7, R3, R6 2: SUB R4, R2, R1 5: ADD R2, R3, R2 6: SUB R3, R2, R4

Renombramiento de registros 1: ADD R1, R2, R3 3: ADD R5, R6, R2 4: MUL R7, R3, R6 2: SUB R4, R2, R1 5: ADD R2, R3, R2 6: SUB R3, R2, R4 1: ADD R1, R2, R3 3: ADD R5, R6, R2 4: MUL R7, R3, R6 5: ADD R20, R3, R2 2: SUB R4, R2, R1 6: SUB R3, R20, R4

La planificacin de instrucciones es una tcnica de software que se encarga de aplicar el compilador o el programador. Consiste en generar cdigo teniendo en cuenta las dependencias de datos entre las instrucciones. Se basa en que cualquier par de instrucciones puede intercambiar el orden de ejecucin si no tiene ningn tipo de dependencia entre ellas ni con las instrucciones que hay en medio. Pues bien, en los ciclos que se pierden por dependencia, en lugar de ejecutar instrucciones NOP, se ejecutan estas otras que realmente pertenecen al cdigo y as no se pierden ciclos de procesador. En la figura lateral se observa un conjunto de instrucciones en las cuales, entre la primera y la segunda se perderan 3 ciclos de procesador, con una reorganizacin del mismo cdigo, se obtiene el mismo resultado final y no se pierde ningn ciclo. En el ejemplo resuelto anteriormente, todava se pierde un ciclo de procesador por culpa de la dependencia real entre las instrucciones 1 y 2. Todava puede aplicarse otra tcnica de software para intentar solucionarlo, el renombramiento de registros. Slo con cambiar en nuestro ejemplo en la instruccin 5 y 6 el registro R2 por R20, podemos continuar reordenando instrucciones y separar an ms las que tienen dependencias reales. Los cortocircuitos son una tcnica de hardware que consiste en introducir cambios en el camino de datos y en el control del procesador segmentado que reducirn el nmero de ciclos perdidos a causa del conflicto de datos. Son conexiones especiales para los datos en el camino de datos que toman los mismos del punto donde se encuentran y las llevan donde se necesitan. Para ello debemos distinguir quienes son los productores de valores y quienes son los consumidores. Los productores de valores se dan en la UAL (al ejecutar una instruccin de clculo) y en la memoria de datos (al ejecutar una instruccin LOAD); estos valores pueden tomarse en cualquier punto entre el lugar que se calcula (UAL o memoria) y el lugar donde se escribir (banco de registros), con lo que hay 3 lugares posibles donde pueden ir a buscarse valores: en la salida de la UAL (etapa UAL), en la salida de la memoria (etapa de memoria) o en la salida del registro de segmentacin (etapa de escritura). Los consumidores de valores son los que necesitan dichos valores para hacer un clculo (UAL) o para almacenarlo (la memoria en la etapa STORE) y se pueden necesitar en los dos registros de entrada a la UAL y en el de salida de

12 Arquitectur de computadores 2 ra

va alores hacia la memoria en la etapa de descodific d cacin y le ectura de op perandos, o en el registro que prop paga los va alores que va a la mem an moria durante la etapa UA e AL. As, c con todos e estos aspecto redisea os, amos el procesador s segmentado, aadindol nuevos c le caminos ortocircuitos. . que son los co esador segm mentado An as, en nuestro proce igue existien ndo un caso de conflicto de datos que no o o si puede resolv verse con c cortocircuitos y que no har s os iclo de ejecu ucin de bloquear el procesador y perder un ci nstrucciones tiles; se t trata de una instruccin LOAD a n in se eguida de cu ualquier instr ruccin a dis stancia 1 que utilice e el registro que cargar la instruccin LOAD, que d e L debe ser tado correct to. Por bloqueado para que d un result jemplo: ej
LOAD R1, R2, #13; ; ADD R4 R1, R5; R4, SUB R7 R2, R1; R7, R1 = Mem moria [R1 + R13] R4 = R1 + R5 R R7 = R2 R1

Cor rtocircuitos en el procesador se e egmentado

Esto sucede por rque el valo que lleg a la or ga memoria est disponible al final de la cuarta etapa m e d a (M MEM) de la ejecucin de la instru a uccin LOAD y la D, in nstruccin sig guiente ADD necesita es valor al p D ste principio de la tercera etapa (UAL); se necesita pues antes de que a calculado y n hay ning cortocircu no n uito que el valor est c del p or clo pueda adelantar el valor d registro, perdemos po ello un cic de procesador.

N ICLOS PERDI IDOS POR C ONFLICTOS DE SECUENC CIACIN 6. REDUCCI DE LOS CI Ya he emos visto la necesidad de bloquear e d el on ruccin de sa para qu e alto procesador co cada instr e orrectamente Como po e. or el cdigo se ejecute co rmino medio una de cad 5 instrucc o da ciones son d e t sa alto y, en ese caso, perdemos 3 ciclos d e procesador, l los conflicto de secue os enciacin so n ealmente g graves para el rend a dimiento de el re procesador. programador puede evitar est r to El p ntroduciendo el menor nmero de instruccione o es in de salto posib bles, pero po otro lado, existen otra or as del e ar 3 formas en el mbito d hardware de mejora o. este resultado Adelanto del clcul de la con o lo ndicin y de e la direcc cin de destino: Se desplaza e el hardware de la UAL necesario para que est p te enga lugar en la etapa ms tempran a n m clculo te posible. L mximo que podem Lo mos hacer e es efectuar e clculo de la direccin de destino y el e evaluar la condicin de salto en la etapa d e a descodific cacin y lectura. No podemos hacerl o antes por rque entonces tendramos que esta ar haciendo los clculos sin saber todava si s s se racin de salto o no o. trata de una oper mos en esta solucin que hay qu e a q Destacam aadir un sumador e n extra al cam mino de dato os del proc cesador segmentado para pode er calcular la direccin d destino de salto y, qu e a de el
Adelanto de clculo de la condicin y dire el c eccin de destino

Arquitectura de computadores 13

en un ciclo es necesario tener tiempo para leer el banco de registros, comparar el registro y evaluar la condicin; esto implica un tiempo de ciclo muy malo. Prediccin de saltos: Consiste en empezar a ejecutar instrucciones (ya sea de las que siguen en secuencia a la instruccin de salto o de las instrucciones a partir de la direccin del salto) antes de acabar la ejecucin de la instruccin de salto. Una vez que se ejecuta el salto, conviene saber si hemos tomado la decisin correcta respecto a las instrucciones a ejecutar (50% de probabilidades); para obtener la direccin de salto se utiliza una memoria cach de instrucciones de salto conocida como BTB, ahora bien, existen dos formas de predecir el salto: o Esttica: La prediccin para una instruccin de salto concreta es siempre la misma, bien porque todas las instrucciones de salto tienen la misma prediccin (por ejemplo saltar siempre) o bien porque cada una de las instrucciones de salto tienen una prediccin diferente. o Dinmica: La prediccin puede variar a lo largo del tiempo en funcin de su comportamiento; as el Pentium III de Intel tiene u predictor de saltos dinmico que predice correctamente en torno al 90% de los saltos condicionales. Una vez producido o no el salto, si la prediccin es correcta no se perder ningn ciclo de procesador al ejecutar el salto, mientras que si es errnea se perdern tantos ciclos como en un procesador sin prediccin. Tambin hay que aadir que en el caso de un predictor esttico en el que nunca se salte, no es necesaria siquiera memoria BTB, solo el fluir normal, sin bloquear, del procesador. Saltos retardados: Otra tcnica consiste en hacer visible para el programador los ciclos que tarda en calcularse la direccin de destino y la condicin de salto; as siempre se ejecutarn las n primeras instrucciones que hay despus de una instruccin de salto, independientemente de si ste definitivamente se produce o no. Lo habitual es que tengan dos posiciones de retardo, por tanto se realizarn los dos ciclos siguientes del cdigo.

7. ARQUITECTURA SEGMENTADA CON OPERACIONES MULTICICLO El diseo del procesador que hasta ahora nos traamos entre manos, complentaba una ejecucin lineal con tiempo de ciclo constante que, para ms INRI, tena que ser el tiempo que tardase ms. Si el objetivo es mejorar el rendimiento todo lo posible, interesa dividir la ejecucin de las operaciones en las etapas que requiera cada tipo de operacin. La segmentacin ahora no ser lineal y el diseo del procesador ser ms complejo. Un ejemplo de esta necesidad son las operaciones en coma flotante, que son mucho ms complejas que las operaciones con enteros. As crearemos una mquina con dos procesadores, una ser equivalente al procesador segmentado lineal que venimos conociendo en todo el tema, y la otra mquina ejecutar las nuevas instrucciones en coma flotante. En este nuevo esquema tendremos en cuenta que: Las operaciones con nmeros enteros se efectan de la misma forma que antes en el procesador segmentado lineal. Las operaciones en coma flotante se ejecutan en la nueva mquina con un banco de registros propios. Las operaciones de acceso a la memoria sern las nicas que relacionan ambas mquinas y se ejecutarn siempre en la parte de los enteros. El clculo de las direcciones de la memoria siempre tiene lugar en la parte de los enteros y se requiere leer un registro del banco de registros enteros.

Obviamente estos cambios tambin influyen en las operaciones de clculo apareciendo nuevas operaciones como FSUM para la suma en coma flotante. Las instrucciones adems tienen un nmero de etapas que dependen de su dificultad,

14 Arquitectur de computadores 4 ra
C s multiciclo as las opera aciones de s suma y rest se ejecut ta tan en 3 Camino de datos segmentado m iclos, las de multiplicaci en 5 y la de divisin en coma n a ci flotante, la m compleja, en 8 ciclos. s , En este procesador segmentad con op r do peraciones multiciclo aho la nueva mquina puede tener tambin m ora a p r dependencias que estudia s amos a contin nuacin: ndencias: To odas las oper raciones son idnticas Antidepen hasta la etapa de le ectura, como siempre s escribe o se gual al procesador seg gmentado despus de leer (ig tas encias no pu ueden crear nunca un lineal) est depende conflicto d datos. de Dependen ncias reales: Una instru : uccin puede intentar e leer un registro que ha calcul e lado una in nstruccin pero que to odava no se ha escrito, en este e , anterior p caso con bloqueos y prdida de ciclos supe e eramos el problema; reordenando las instrucciones y utilizando uitos evitamo este proble os ema. cortocircu Dependen ncias de salid Como las operacione pueden da: s es terminar en un orden diferente a aqul en e que se n el on utar, es ne ecesario en algunas empezaro a ejecu ocasiones bloquear el procesador o anular la e s escritura ms antigua. s

8. TEMAS AVA ANZADOS Dos t tcnicas que actualmente suelen ap licar todos los procesadores para mejorar su re m endimiento: Ordenac cin dinm mica de las instrucc ciones: Ya hemos com mprobado anteriorm mente que cu uando se pr roduce un c conflicto de datos que no puede resolverse el procesador se bloquea y perd e, demos ciclos de trabajo Pero si s o. sabemos que las instr rucciones que siguen al b bloqueo se pueden ejecu p utar y son ientes y no dan luga a ningn conflicto, entonces podremos o ar n independi ejecutarla durante e tiempo de bloqueo. Lo que hac as el cen los proc cesadores actuales es guardar dentro del procesador la instrucc r cin bloquea ante y se n es, or continan buscando instruccione as que el procesado slo se bloquear cuando ya no pueda g a guardar ms instruccione en su inte s es erior. Lgicam mente con esta nuev tcnica pu va ueden surgir nuevos con r nflictos, que se soluciona con un an renombra amiento de registros, as el procesa s ador puede funcionar co omo si el compilado hubiera ge or enerado cdigo para un procesador con infinitos registros. c Lo negat tivo de esta tcnica de ordenacin dinmica de instrucciones con a e n renombra amiento de r registros es que complica el diseo del control y empeora q a d el tiempo de ciclo del procesador. n calar de la instrucci as iones: Se ejecutan ms de una e Ejecuci superesc instrucci por ciclo de proces n o sador, apro ovechndono de la t os cnica de multiplicacin para ex xplotar el par ralelismo a n ivel de instru uccin. El gra de un ado or mero de ins strucciones que puede q procesado segmentado superescalar es el n ejecutar p ciclo y qu actualmen es de 2 a 4. por ue nte Ambos m mtodos ante eriores puede dar probllemas en el tratamient de las en to excepciones dado que al no ejecutar el cdigo lnea a lnea cuando se presenta e s, a, e una excepcin no puede detenerse para tratarla y luego co p a ontinuar por el mismo ue y o trucciones punto en qu se detuvo sin que ya se haya n ejecutado varias inst ntermedias. in
Te exto elaborado a partir de:

Agustn Fernndez Jim mnez, Toni Jua Hormigo an Ju unio 2005

Arqu uitectura de com mputadores

También podría gustarte