Anda di halaman 1dari 18

Para presentar la leccin evaluativa III, es necesario que haya ledo y profundizado los temas relacionados con la Unidad

III. Encontrar una serie de textos que lo introducirn a cada una de las preguntas, debe leerlos detenidamente poder responder correctamente a cada una de ellas. La actividad esta diseada para contestar todas las preguntas en forma correcta. Encontrar preguntas de seleccin mltiple con nica respuesta y con mltiple respuesta. Tenga en cuenta el lmite de tiempo y que no puede contestar la leccin en ms de una ocasin. Nmero de puntos: 17 puntos Nmero de intentos: 2 Exitos

ENSAMBLADOR. LENGUAJE DE BAJO NIVEL Se denomina lenguaje mquina a la serie de datos que la parte fsica de la computadora o hardware, es capaz de interpretar. Una computadora digital o, mejor dicho, su parte fsica, slo distingue datos de tipo binario, es decir, constituidos por dos nicos valores a los que se denomina valor 0 y valor 1 y que, fsicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una informacin se utilizan una serie de unos y ceros cuyo conjunto indica dicha informacin. La informacin que hace que el hardware de la computadora realice una determinada actividad llamada instruccin. Por consiguiente una instruccin es un conjunto de unos y ceros. Las instrucciones as formadas equivalen a acciones elementales de la mquina, por lo que al conjunto de dichas instrucciones que son interpretadas directamente por la mquina se denomina lenguaje mquina. El lenguaje mquina fue el primero que empleo el hombre para la programacin de las primeras computadoras. Una instruccin en lenguaje mquina puede representarse de la siguiente forma: 011011001010010011110110 Esta secuencia es fcilmente ejecutada por la computadora, pero es de difcil interpretacin, siendo aun mas difcil la interpretacin de un programa (conjunto de instrucciones) escrito de esta forma. Esta dificultad hace que los errores sean frecuentes y la correccin de los mismos costosa, cuando no imposible, al igual que la verificacin y modificacin de los programas. La anterior secuencia de dgitos binarios (bits) puede indicar a la computadora que: <> Si lo vemos escrito de esta forma, lo entenderemos fcilmente, ya que est en nuestro lenguaje natural, pero la mquina elemental ser incapaz de entender nada. Vemos, pues, que la forma de indicar a la mquina lo que debe hacer es

totalmente diferente de la indicar a un ser humano lo mismo, por lo que deben emplearse sistemas de traduccin de una forma a otra. En un principio el programador empleaba directamente el lenguaje mquina. En este caso el traductor era el programador; pero vimos tambin los problemas que esto causaba. Con la prctica en el manejo de la mquina se cay en la cuenta de que se podra utilizar la propia mquina para ayudar en la traduccin de estos programas. Es decir, que si a una mquina elemental se le dotaba de un programa, tambin elemental, que tradujera un nmero determinado de caracteres alfabticos en una secuencia de unos y ceros, se podra escribir un programa constituido por una secuencia de grupos de caracteres alfabticos, en la que cada uno de los grupos indicara una accin a realizar por el ordenador y, una vez escrito el programa, sera la propia mquina la que pasara los grupos de caracteres a bits. Las ventajas de esto son evidentes, ya que para el hombre resulta mas fcil manipular grupos de caracteres y la traduccin se hara de manera automtica. Por ejemplo, se podra escribir: TRASLADAR 11010110, 00011101 Esto indicara que el contenido de la posicin 11010110 haba que pasarlo a la posicin 00011101 si se sabe que al grupo alfabtico TRASLADAR le corresponde la secuencia de bits 11110101. La mquina traducira la anterior instruccin como: 11110101 11010110 00011101 Al grupo alfabtico se le denomina mnemotcnico, y existir un mnemotcnico por cada instruccin. Se le da este nombre porque sirve para recordar con mayor facilidad el conjunto de instrucciones de una determinada mquina. De esta forma aparecieron los lenguajes ensambladores (Assembler, en ingls). Poco a poco, con el avance de la programacin (Software), estas primeras y sencillas ayudas se fueron haciendo ms complejas, permitiendo que, adems de los mnemotcnicos correspondientes a la operacin a realizar, se pudieran emplear otros para indicar, por ejemplo, los operandos. La anterior instruccin se podra escribir de la siguiente forma: TRASLADAR POS-A POS-B Que nos resulta de ms fcil comprensin. Tambin se introdujo la posibilidad de indicar a la computadora la direccin de un salto en la secuencia de ejecucin de un programa mediante la utilizacin de etiquetas. Ventajas De Los Lenguajes Ensambladores El corazn de la computadora es el microprocesador, ste maneja las necesidades aritmticas, de lgica y de control de la computadora. El microprocesador tiene su origen en la dcada de los sesenta, cuando se diseo el circuito integrado (IC por sus siglas en ingles) al combinar varios componentes electrnicos en un solo componente sobre un "chip" de silicio. Los fabricantes colocaron este diminuto chip en un dispositivo parecido a un ciempis y lo conectaron a un sistema en funcionamiento. A principios de los aos setenta Intel introdujo el chip 8008 el cual, instalado en una computadora terminal, acompao a la primera generacin de microprocesadores. La variedad de microcomputadoras

tambin ocasiono un renovado inters en el lenguaje ensamblado, cuyo uso conlleva a diferentes ventajas: Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecucin que un programa escrito en los conocidos lenguajes de alto nivel, como Pascal y C. El lenguaje ensamblador da a un programador la capacidad de realizar tareas muy tcnicas que serian difciles, si no es que imposibles de realizar en un lenguaje de alto nivel. El conocimiento del lenguaje ensamblador permite una comprensin de la arquitectura de la maquina que ningn lenguaje de alto nivel puede ofrecer. Aunque la mayora de los especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel, que son ms fciles de escribir y de dar mantenimiento, una practica comn es recodificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. Los programas residentes y rutinas de servicio de interrupcin casi siempre son desarrollados en el lenguaje ensamblador. Los lenguajes de alto nivel fueron diseados para eliminar las particularidades de una computadora especifica, mientras que un lenguaje ensamblador esta diseado para una computadora especifica, o, de manera ms correcta, para una familia especifica de microprocesadores.

Su respuesta : Las instrucciones que la mquina interpreta directamente se llama lenguaje de mquina y est conformado por unos y ceros. Para facilitar el trabajo de la traduccin, se ide que cada mquina tuviera un programa que tradujera un nmero determinado de caracteres alfabticos en unos y ceros Correcto Con la prctica en el manejo de la mquina se cay en la cuenta de que se podra utilizar la propia mquina para ayudar en la traduccin de estos programas. Es decir, que si a una mquina elemental se le dotaba de un programa, tambin elemental, que tradujera un nmero determinado de caracteres alfabticos en una secuencia de unos y ceros, se podra escribir un programa constituido por una secuencia de grupos de caracteres alfabticos, en la que cada uno de los grupos indicara una accin a realizar por el ordenador y, una vez escrito el programa, sera la propia mquina la que pasara los grupos de caracteres a bits.

a lectura:

Su respuesta : Los mnemotcnicos se sirven para recordar fcilmente un conjunto de instrucciones Correcto Se le da este nombre porque sirve para recordar con mayor facilidad el conjunto de instrucciones de una determinada mquina

ARQUITECTURA DE COMPUTADORES
Actividad anterior
Usted est aqu

Ir a...

Actividad siguiente

campus07 301302 Lecciones Act 12: Leccin Evaluativa No. 3

Act 12: Leccin Evaluativa No. 3 INSTRUCCIONES


INSTRUCCIONES Un programa en lenguaje ensamblador consiste en un conjunto de enunciados. Los dos tipos de enunciados son: 1. Instrucciones, tal como MOV y ADD, que el ensamblador traduce a cdigo objeto. 2. Directivas, que indican al ensamblador que realiza una accin especifica, como definir un elemento de dato. A continuacin esta el formato general de un enunciado, en donde los corchetes indican una entrada opcional: [identificador] operacin [operando(s)] [;comentarios] Un identificador (si existe), una operacin y un operando (si existe) estn separados por al menos un espacio en blanco o un carcter tabulador. Existe un mximo de 132 caracteres en una lnea (512 desde el MASM 6.0), aunque la mayora de los programadores prefiere permanecer en los 80 caracteres ya que es el numero mximo que cabe en la pantalla.

A continuacin se presentan dos ejemplos de enunciados: IDENTIFICADOR OPERACION OPERANDO COMENTARIO Directiva: COUNT DB 1 ;Nom, Op, Operando Instruccin: MOV AX, 0 ;Operacin, 2 Operand Identificador, operacin y operando pueden empezar en cualquier columna. Sin embargo, si de manera consistente se inicia en la misma columna para estas tres entradas se hace un programa mas legible. IDENTIFICADOR Como ya se mencion, el termino nombre se aplica al nombre de un elemento o directiva definida, mientras que el termino etiqueta se aplica al nombre de una instruccin. OPERACION La operacin, que debe ser codificada, es con mayor frecuencia usada para la definicin de reas de datos y codificacin de instrucciones. Para un elemento de datos, una operacin como DB o DW define un campo, rea de trabajo o constante. OPERANDO El operando (si existe) proporciona informacin para la operacin que acta sobre el. Para un elemento de datos, el operando identifica su valor inicial. Por ejemplo, en la definicin siguiente de un elemento de datos llamado COUNTER, la operacin DB significa "definir byte", y el operando inicializa su contenido con un valor cero:

NOMBRE COUNTER

OPERACION OPERANDO COMENTARIO DB 0 ;Define un byte con el valor 0

Para una instruccin, un operando indica en donde realizar la accin. Un operando de una instruccin puede tener una, dos o tal vez ninguna entrada. Aqu estn tres ejemplos:

OPERACION OPERANDO COMENTARIO OPERANDO RET ;Regresa Ninguno INC CX ;Incrementa Uno CX ADD AX, 12 :Suma 12 al Dos AX
DIRECTIVA SEGMENT

Un programa ensamblado en formato .EXE consiste en uno o mas segmentos. Un segmento de pila define el almacn de la pila, un segmento de datos define los elementos de datos y un segmento de cdigo proporciona un cdigo ejecutable. Las directivas para definir un segmento, SEGMENT y ENDS tienen el formato siguiente:

NOMBRE Nombre Nombre

OPERACION OPERANDO COMENTARIO SEGMENT [Opciones] ;Inicia el segmento

ENDS

;Fin del segmento

El enunciado SEGMENT define el inicio de un segmento. El nombre del segmento debe estar presente, ser nico y cumplir las convenciones para nombres del lenguaje. EL enunciado ENDS indica el final del segmento y contiene el mismo nombre del enunciado SEGMENT. El tamao mximo de un segmento es de 64K. El operando de un enunciado SEGMENT puede tener tres tipos de opciones: alineacin, combinar y clase, codificadas en este formato: nombre SEGMENT alineacin combinar ' clase ' DIRECTIVA ASSUME. Un programa utiliza el registro SS para direccionar la pila, al registro DS para direccionar el segmento de datos y el registro CS para direccionar el segmento de cdigo. Para este fin, usted tiene que indicar al ensamblador el propsito de cada segmento en el programa. La directiva para este propsito es ASSUME, codificada en el segmento de cdigo como sigue: OPERACION OPERANDO ASSUME SS:nompila, DS:nomsegdatos, CS: nomsegcodigo,. . .
Del lenguaje assembler se puede decir: Su respuesta : Para que un programa sea legible tanto el identificador como la operacin y el operando deben iniciar en la misma columna Correcto Identificador, operacin y operando pueden empezar en cualquier columna. Sin embargo, si de manera consistente se inicia en la misma columna para estas tres entradas se hace un programa mas legible.

Segn la lectura Su respuesta : Cuando se habla de una etiqueta, es el nombre que se da a una instruccin Los enunciados SEGMENT Y END definen el inicio y fin de un segmento Correcto El enunciado SEGMENT define el inicio de un segmento. El nombre del segmento debe estar presente, ser nico y cumplir las convenciones para nombres del lenguaje. EL enunciado ENDS indica el final del segmento y contiene el mismo nombre del enunciado SEGMENT.

MODOS DE DIRECCIONAMIENTO MODOS DE DIRECCIONAMIENTO Existen 12 modos de direccionamiento bsicos. Estos pueden clasificarse en 5 grupos: 1. Direccionamientos accesando dato inmediato y registro de datos (modos inmediato y de registro). 2. Direccionamiento accesando datos en memoria (modo memoria) 3. Direccionamiento accesando puertos E/S. (modo E/S) 4. Direccionamiento relativo 5. Direccionamiento implcito. 1. DIRECCIONAMIENTO ACCESANDO DATO Y REGISTRO INMEDIATO Direccionamiento de registro. Especifica el operando fuente y el operando destino. Los registros deben ser del mismo tamao. ej. MOV DX, CX MOV CL, DL. Direccionamiento inmediato . Un dato de 8 o 16 bits se especifica como parte de la instruccin. p.ej. MOV CL, 03H. Aqu el operando fuente est en modo inmediato y el destino en modo registro. 2. DIRECCIONAMIENTO ACCESANDO DATOS EN MEMORIA Direccionamiento directo. La direccin efectiva (EA) de 16 bits se toma directamente del campo de desplazamiento de la instruccin. El desplazamiento se coloca en la localidad siguiente al cdigo de operacin. Esta EA o desplazamiento es la distancia de la localidad de memoria al valor actual en el segmento

de datos (DS) en el cual el dato est colocado. Ej. MOV CX, START. START puede definirse como una localidad de memoria usando las pseudoinstrucciones DB o DW. Direccionamiento de registro indirecto . La direccin efectiva EA est especificada en un registro apuntador o un registro ndice. El apuntador puede ser el registro base BX o el apuntador base BP; el registro ndice puede ser el Indice Fuente (SI) o el Indice Destino (DI). Ej. MOV (DI),BX. Direccionamiento base EA se obtiene sumando un desplazamiento (8 bits con signo o 16 bits sin signo) a los contenidos de BX o BP. Los segmentos usados son DS y SS. Cuando la memoria es accesada, la direccin fsica de 20 bits es calculada de BX y DS, por otra parte, cuando la pila es accesada, la direccin es calculada de BP y SS. Ej. MOV AL, START (BX). el operando fuente est en modo base, y la EA se obtiene sumando los valores de START y BX. Direccionamiento indexado . EA se calcula sumando un desplazamiento (8 o 16 bits) a los contenidos de SI o DI. Ej. MOV BH,START (SI). Direccionamiento base indexado . EA se calcula sumando un registro base (BX o BP), un registro ndice (DI o SI), y un desplazamiento (8 o 16 bits). Ej. MOV ALPHA (SI)(BX),CL. Este direccionamiento proporciona una forma conveniente para direccionar un arreglo localizado en la pila. Direccionamiento (cadena?) Este modo usa registros ndice. La cadena de instrucciones automticamente asume que SI apunta al primer byte o palabra del operando destino. Los contenidos de SI y DI son incrementados automticamente (poniendo a 0 DF mediante la instruccin CLD) o decrementados (poniendo a 1 DF mediante la instruccin STD) para apuntar al siguiente byte o palabra. El segmento del operando fuente es DS y puede ser encimado. El segmento del operando destino debe ser ES y no puede ser encimado. Ej. MOVS BYTE. 3. DIRECCIONAMIENTO ACCESANDO PUERTOS (E/S) Hay dos tipos de direccionamiento usando puertos: directo e indirecto. En el modo directo, el nmero de puerto es el operando inmediato de 8 bits, lo cual permite accesar puertos numerados del 0 al 255. Ej. OUT 05H,AL.

En el modo indirecto, el nmero de puerto se toma de DX, permitiendo as 64K puertos de 8 bits o 32K puertos de 16 bits. Las transferencias E/S de 8 y 16 bits deben hacerse va AX y AL, respectivamente. 4. DIRECCIONAMIENTO RELATIVO En este modo el operando se especifica como un desplazamiento de 8 bits con signo, relativo al PC. Ej. JNC START. Si C=0, entonces el PC se carga con PC+el valor de START. 5. DIRECCIONAMIENTO IMPLICITO Las instrucciones que usan esta modo no tienen operandos. Ej. CLC.

ireccionamiento, segn la lectura:

Su respuesta : Para el direccionamiento de registro indirecto, la direccin efectiva puede estar especificada por: un registro apuntador un registro ndice. Correcto La direccin efectiva EA est especificada en un registro apuntador o un registro ndice. El apuntador puede ser el registro base BX o el apuntador base BP; el registro ndice puede ser el ndice Fuente (SI) o el ndice Destino (DI).
De acuerdo a la lectura el direccionamiento:

Su respuesta : Al direccionar puertos en modo directo, se permite acceder a los puertos del 0 al 255

Correcto En el modo directo, el nmero de puerto es el operando inmediato de 8 bits, lo cual permite accesar puertos numerados del 0 al 255. Ej. OUT 05H,AL.

Segn la lectura: Su respuesta : Entre las instrucciones, el grado de paralelismo depende de la frecuencia de dependencia los datos y control de retardos de las operaciones codificadas El paralelismo lo determina el nmero de instrucciones por captar, decodificar, ejecutar y dar resultados al mismo tiempo Correcto El paralelismo del procesador (la capacidad para procesar instrucciones en paralelo en cada etapa) viene determinado por el numero de instrucciones que se pueden captarse, decodificarse, ejecutarse y escribir resultados al mismo tiempo.

PROCESADOR SUPERESCALAR Es el trmino utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar ms de una instruccin por ciclo de reloj. El trmino se emplea por oposicin a la microarquitectura escalar que slo es capaz de ejecutar una instruccin por ciclo de reloj. En la clasificacin de Flynn, un procesador superescalar es un procesador de tipo MIMD (multiple instruction multiple data). La microarquitectura superescalar utiliza el paralelismo de instrucciones adems del paralelismo de flujo, ste ltimo gracias a la estructura en pipeline. La estructura tpica de un procesador superescalar consta de un pipeline con las siguientes etapas: Lectura (fetch) Decodificacin (decode) Lanzamiento (dispatch) Ejecucin (execute) Escritura (writeback) Finalizacin (retirement) En un procesador superescalar, el procesador maneja ms de una instruccin en cada etapa. El nmero mximo de instrucciones en una etapa concreta del pipeline se denomina grado, as un procesador superescalar de grado 4 en lectura (fetch) es capaz de leer como mximo cuatro instrucciones por ciclo. El grado de la etapa de ejecucin depende del nmero y del tipo de las unidades funcionales. Un procesador superescalar suele tener unidades funcionales independientes de los tipos siguientes : unidad aritmtico lgica (ALU) unidad de lectura / escritura en memoria (Load/Store Unit) unidad de coma flotante (Floating Point Unit) unidad de salto (Branch unit) Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente nicamente si las instrucciones no presentan algn tipo de dependencia (hazard). Los tipos de dependencia entre instrucciones son : Dependencia estructural, esta ocurre cuando dos instrucciones requieren el mismo tipo unidad funcional y su nmero no es suficiente. Dependencia de datos, esta ocurre cuando una instruccin necesita del resultado de otra instruccin para ejecutarse, por ejemplo R1<=R2+R3 y R4<=R1+5 . Dependencia de escritura o falsa dependencia , esta ocurre cuando dos instrucciones necesitan escribir en la misma memoria, por ejemplo R1<=R2+R3 y R1<=R1+5 . La deteccin y resolucin de las dependencias entre instrucciones puede ser esttica (durante la compilacin) o dinmica, es decir, a medida que se ejecuta un programa, generalmente durante la etapas de codificacin y lanzamiento de las instrucciones. La deteccin y resolucin dinmica de las dependencias entre instrucciones suele realizarse mediante alguna variante del algoritmo de Tomasulo que permite la ejecucin de instrucciones en un orden distinto al del programa tambin llamada ejecucin en desorden . La eficacia de un procesador superescalar viene limitada por un lado por la dificultad en suministrar al procesador suficientes instrucciones que puedan ser ejecutadas en paralelo y por otro lado por las prestaciones de la jerarqua de memorias.

Si las instrucciones de salto son un problema para los procesadores con pipeline en general, en el caso de los procesadores superescalares, el problema se multiplica ya que un parn en el pipeline tiene consecuencias en un nmero mayor de instrucciones. Por esta razn, los fabricantes de procesadores recurren a tcnicas de ejecucin especulativa y disean algoritmos de prediccin de saltos cada vez ms sofisticados as como sistemas de almacenamiento de instrucciones por trazas (trace caches). Las arquitecturas superescalares adolecen de una estructura compleja y de un mal aprovechamiento de sus recursos debido en parte a la dificultad en encontrar suficientes instrucciones paralelizables. Una forma de obtener un mayor nmero de instrucciones paralelizables es aumentar la ventana de instrucciones, es decir el conjunto de instrucciones que la unidad de lanzamiento considera como candidatas a ser lanzadas en un momento dado. Desafortunadamente la complejidad del procesador superescalar aumenta desproporcionadamente con respecto al tamao de dicha ventana lo que se traduce por un ralentizamiento general del circuito. Otra forma de obtener ms instrucciones paralelizables es manipulando instrucciones de ms de un programa a la vez, lo que se conoce bajo el nombre de multitarea simultnea o multithreading simultneo. Mientras las primeras CPUs superescalares disponan de dos ALUs y una sola FPU, un procesador moderno como el PowerPC 970 incluye cuatro ALUs y dos FPUs, adems de dos unidades SIMD. Si el despachador no es eficiente haciendo trabajar lo mximo posible a estas unidades, el rendimiento global del procesador se ver mermado. La CDC 6600 de Seymour Cray, construida en 1965, es la primera arquitectura superescalar, siendo llevado el concepto a las microcomputadoras en las CPUs RISC. Esta posibilidad vena dada por la simpleza de los ncleos RISC, permitiendo meter ms unidades de ejecucin en un mismo chip. Esta fue una de las razones de la rapidez de los sistemas RISC frente a los ms antiguos CISC durante las dcadas de los 80 y los 90, pero a medida que los procesos de fabricacin mejoraron y se pudieron meter ms y ms transistores en el mismo chip, hasta diseos complejos como el IA-32 pudieron ser superescalares. La inmensa mayora de las CPUs desarrolladas desde 1998 son superescalares.

De acuerdo a la lectura los procesadores superescalares: Su respuesta : A nivel de microarquitectura de procesador, es la capacidad del procesador de ejecutar ms de una instruccin por ciclo de reloj. Para que el procesador superescalar pueda ejecutar ms varias instrucciones simultneamente, estas no deben presentar dependencias Correcto Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente nicamente si las instrucciones no presentan algn tipo de dependencia (hazard).

De acuerdo a la lectura el direccionamiento: Su respuesta : Al direccionar puertos en modo directo, se permite acceder a los puertos del 0 al 255 Correcto En el modo directo, el nmero de puerto es el operando inmediato de 8 bits, lo cual permite accesar puertos numerados del 0 al 255. Ej. OUT 05H,AL.

PARALELISMO. NIVELES DE PARALELISMO Por lo general la computadora se visualiza como una mquina secuencial, en el cual la CPU lee la instruccin de la memoria y la va ejecutando una por una. Y el programador sigue ese mismo enfoque al especificar algoritmos como una secuencia de instrucciones para que las ejecute la computadora. Pero internamente, las computadoras secuenciales presentan un paralelismo en diversas funciones, por mencionar: el traslape de algunas operaciones, mientras un proceso esta escribiendo a disco, otro proceso esta ejecutndose en la CPU; a nivel de microoperacin, seales de control se generan y viajan al mismo tiempo a travs de canales paralelos, como el caso de la comunicacin a una impresora conectada al puerto paralelo. En computadoras modernas de tipo SISD el paralelismo viene implementado en la arquitectura del procesador, conocido como paralelismo a nivel instruccin, por ejemplo: Pipeline o procesamiento en lnea de instrucciones [ Inf. Tec. CTCOT9901 ]. Que consiste en ejecutar al mismo tiempo en diversas etapas las instrucciones del programa; mientras en una etapa se hace la ejecucin de una instruccin, simultneamente en otra etapa se est realizando una lectura de la siguiente instruccin, es un esquema muy similar al de una lnea de ensamble de autos. Otra caracterstica de procesadores recientes es que poseen varias UALs (Unidad Aritmtica Lgica) para realizar operaciones de suma, resta, multiplicacin y divisin en forma paralela. El paralelismo a nivel de programacin resulta algunas veces complicado y otras veces sencillo dependiendo de la arquitectura de la supercomputadora, del modelo o tcnica empleada para programar en paralelo e inclusive del programa en s. PARALELISMO ENTRE INSTRUCCIONES Y PARALELISMO DE LA MQUINA El grado de paralelismo entre instrucciones (el grado en el que varias instrucciones pueden estar ejecutndose al mismo tiempo) depende en gran medida de la frecuencia con que aparecen dependencias de datos y de control y de los retardos de las operaciones codificadas con las instrucciones ya que determinan el momento en el que el resultado de una operacin est disponible para ejecutar instrucciones que consumen ese resultado, lo pueden necesitar como operando, o bien como condicin para comprobar un salto condicional.

load r1, r2(23) add r3, 1 add r4, r5 En este fragmento, se puede ver que no hay ningn tipo de dependencia, todas las instrucciones son totalmente distintas, as que se puede decir que tiene un grado de paralelismo igual a 3, las 3 instrucciones podran estar ejecutndose al mismo tiempo. En cambio add r3, 1 add r4, r3 st (r4), r0 Deben ejecutarse secuencialmente, ya que existen dos riegos RAW entre la 1 y 2 y entre la 2 y 3, el grado de paralelismo sera 1. El paralelismo del procesador (la capacidad para procesar instrucciones en paralelo en cada etapa) viene determinado por el numero de instrucciones que se pueden captarse, decodificarse, ejecutarse y escribir resultados al mismo tiempo.
Fuente: http://telematica.cicese.mx/computo/super/cicese2000/paralelo/Part4.html Fuente: http://www.estumomento.net/otros/jignacio/2007/11/28/resumen-de-procesadores-superescalares-i/

Su respuesta :

El enfoque de los programadores es hacer algoritmos como secuencia de instrucciones para los ejecute la mquina Computadores actuales tienen incluido el paralelismo en la arquitectura del procesador Correcto En computadoras modernas de tipo SISD el paralelismo viene implementado en la arquitectura del procesador, conocido como paralelismo a nivel instruccin Continuar
Usted se ha autentificado como gabriel perez correa (Salir)

Su respuesta :

Entre las instrucciones, el grado de paralelismo depende de la frecuencia de dependencia los datos y control de retardos de las operaciones codificadas El paralelismo lo determina el nmero de instrucciones por captar, decodificar, ejecutar y dar resultados al mismo tiempo Correcto El paralelismo del procesador (la capacidad para procesar instrucciones en paralelo en cada etapa) viene determinado por el numero de instrucciones que se pueden captarse, decodificarse, ejecutarse y escribir resultados al mismo tiempo.

PROCESADOR SUPERESCALAR Es el trmino utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar ms de una instruccin por ciclo de reloj. El trmino se emplea por oposicin a la microarquitectura escalar que slo es capaz de ejecutar una instruccin por ciclo de reloj. En la clasificacin de Flynn, un procesador superescalar es un procesador de tipo MIMD (multiple instruction multiple data). La microarquitectura superescalar utiliza el paralelismo de instrucciones adems del paralelismo de flujo, ste ltimo gracias a la estructura en pipeline. La estructura tpica de un procesador superescalar consta de un pipeline con las siguientes etapas:

Lectura (fetch) Decodificacin (decode) Lanzamiento (dispatch) Ejecucin (execute) Escritura (writeback) Finalizacin (retirement)

En un procesador superescalar, el procesador maneja ms de una instruccin en cada etapa. El nmero mximo de instrucciones en una etapa concreta del pipeline se denomina grado, as un procesador superescalar de grado 4 en lectura (fetch) es capaz de leer como mximo cuatro instrucciones por ciclo. El grado de la etapa de ejecucin depende del nmero y del tipo de las unidades funcionales. Un procesador superescalar suele tener unidades funcionales independientes de los tipos siguientes :

unidad aritmtico lgica (ALU) unidad de lectura / escritura en memoria (Load/Store Unit) unidad de coma flotante (Floating Point Unit) unidad de salto (Branch unit)

Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente nicamente si las instrucciones no presentan algn tipo de dependencia (hazard). Los tipos de dependencia entre instrucciones son :

Dependencia estructural, esta ocurre cuando dos instrucciones requieren el mismo tipo unidad funcional y su nmero no es suficiente. Dependencia de datos, esta ocurre cuando una instruccin necesita del resultado de otra instruccin para ejecutarse, por ejemplo R1<=R2+R3 y R4<=R1+5 . Dependencia de escritura o falsa dependencia , esta ocurre cuando dos instrucciones necesitan escribir en la misma memoria, por ejemplo R1<=R2+R3 y R1<=R1+5 .

La deteccin y resolucin de las dependencias entre instrucciones puede ser esttica (durante la compilacin) o dinmica, es decir, a medida que se ejecuta un programa, generalmente durante la etapas de codificacin y lanzamiento de las instrucciones. La deteccin y resolucin dinmica de las dependencias entre instrucciones suele realizarse mediante alguna variante del algoritmo de Tomasulo que permite la ejecucin de instrucciones en un orden distinto al del programa tambin llamada ejecucin en desorden . La eficacia de un procesador superescalar viene limitada por un lado por la dificultad en suministrar al procesador suficientes instrucciones que puedan ser ejecutadas en paralelo y por otro lado por las prestaciones de la jerarqua de memorias. Si las instrucciones de salto son un problema para los procesadores con pipeline en general, en el caso de los procesadores superescalares, el problema se multiplica ya que un parn en el pipeline tiene consecuencias en un nmero mayor de instrucciones. Por esta razn, los fabricantes de procesadores recurren a tcnicas de ejecucin especulativa y disean algoritmos de prediccin de saltos cada vez ms sofisticados as como sistemas de almacenamiento de instrucciones por trazas (trace caches). Las arquitecturas superescalares adolecen de una estructura compleja y de un mal aprovechamiento de sus recursos debido en parte a la dificultad en encontrar suficientes instrucciones paralelizables. Una forma de obtener un mayor nmero de instrucciones paralelizables es aumentar la ventana de instrucciones, es decir el conjunto de instrucciones que la unidad de lanzamiento considera como candidatas a ser lanzadas en un momento dado. Desafortunadamente la complejidad del procesador superescalar aumenta desproporcionadamente con respecto al tamao de dicha ventana lo que se traduce por un ralentizamiento general del circuito. Otra forma de obtener ms instrucciones paralelizables es manipulando instrucciones de ms de un programa a la vez, lo que se conoce bajo el nombre de multitarea simultnea o multithreading simultneo. Mientras las primeras CPUs superescalares disponan de dos ALUs y una sola FPU, un procesador moderno como el PowerPC 970 incluye cuatro ALUs y dos

FPUs, adems de dos unidades SIMD. Si el despachador no es eficiente haciendo trabajar lo mximo posible a estas unidades, el rendimiento global del procesador se ver mermado. La CDC 6600 de Seymour Cray, construida en 1965, es la primera arquitectura superescalar, siendo llevado el concepto a las microcomputadoras en las CPUs RISC. Esta posibilidad vena dada por la simpleza de los ncleos RISC, permitiendo meter ms unidades de ejecucin en un mismo chip. Esta fue una de las razones de la rapidez de los sistemas RISC frente a los ms antiguos CISC durante las dcadas de los 80 y los 90, pero a medida que los procesos de fabricacin mejoraron y se pudieron meter ms y ms transistores en el mismo chip, hasta diseos complejos como el IA-32 pudieron ser superescalares. La inmensa mayora de las CPUs desarrolladas desde 1998 son superescalares.
Fuente: http://es.wikipedia.org/wiki/Superescalar

Su respuesta : A nivel de microarquitectura de procesador, es la capacidad del procesador de ejecutar ms de una instruccin por ciclo de reloj. Para que el procesador superescalar pueda ejecutar ms varias instrucciones simultneamente, estas no deben presentar dependencias Correcto Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente nicamente si las instrucciones no presentan algn tipo de dependencia (hazard)

Act 12: Leccin Evaluativa No. 3

endencias:

Su respuesta : La falsa dependencia hace referencia a la necesidad de dos instrucciones para escribir en la misma memoria. Correcto Dependencia de escritura o falsa dependencia , esta ocurre cuando dos instrucciones necesitan escribir en la misma memoria, por ejemplo R1<=R2+R3 y R1<=R1+5.
SISTEMAS MULTIPROCESADOR SISTEMAS MULTIPROCESADOR Los sistemas multiprocesadores proporcionan una alternativa arquitectnica atractiva para mejorar el rendimiento de los sistemas informticos mediante la reunin de un cierto nmero de procesadores estndares de bajo costo. El costo relativamente alto de los sistemas multiprocesadores puede ser compensado si se les emplea como servidores de clculo en sistemas distribuidos.

El multiprocesamiento puede aplicarse para proporcionar: Aumento en la productividad del sistema: mediante la ejecucin de una serie de diferentes procesos de usuario sobre diferentes procesadores en paralelo. Ganancia de velocidad de la aplicacin: mediante la ejecucin de algunas partes de la aplicacin en paralelo. En entornos de tiempo compartido, la productividad puede mejorarse ejecutando una serie de procesos de usuario no relacionados entre si sobre diferentes procesadores en paralelo. La ganancia de velocidad en las aplicaciones puede obtenerse explotando el paralelismo dentro de una aplicacin y creando mltiples procesos o hebras que pueden ser planificados para ejecucin sobre diferentes procesadores. La comunicacin y sincronizacin entre procesadores reduce la ganancia de velocidad global al frenar clculos individuales y consumir ancho de banda de interconexin del sistema. ESTRUCTURAS FUNCIONALES En trminos muy generales podemos caracterizar a los multiprocesadores atendiendo a 2 criterios: Un multiprocesador es un nico computador que incluye mltiples procesadores. Los procesadores se pueden comunicar y cooperar a diferentes niveles para resolver un problema dado. La comunicacin se puede realizar enviando mensajes de un procesador a otro o compartiendo una memoria comn. Existen algunas similitudes entre los multiprocesadores y los sistemas multicomputador, ya que ambos estn motivados por el mismo objetivo bsico: soportan operaciones concurrentes en el sistema. Un sistema multiprocesador esta controlado por un sistema operativo que proporciona interaccin entre los procesadores y sus programas a nivel de procesos. Existen Ligeramente acoplados: Los procesadores individuales tienen memorias privadas y no existe una memoria global compartida. Cada procesador tiene un conjunto de dispositivos de entrada-salida y una gran memoria local a donde acceden la mayor parte de las instrucciones y datos. los procesos que se ejecutan sobre diferentes mdulos de computador se comunican mediante intercambio de mensajes a travs de un sistema de transferencia de mensajes (STM). Estrechamente acoplados: Los procesadores contienen memoria globalmente compartida a la que todos lo procesadores tienen acceso. En cada procesador puede existir una memoria cach. Existe una completa conectividad entre los procesadores y la memoria, esta conectividad se puede llevar a cabo bien insertando una red de interconexin entre los procesadores y la memoria bien por medio de una memoria multipuesto. La principal caracterstica de un sistema multiprocesador es que cada procesador puede compartir un conjunto de mdulos de memoria principal, y dispositivos de E/S. Esto se consigue a travs de redes de conexin de memoria-procesador y otra de conexin E/Sprocesador.

Segn la lectura podemos decir: Su respuesta : Mediante la reunin de varios procesadores de bajo costo, los sistemas multiprocesadores son una alternativa para mejorar el rendimiento de los sistemas informticos Por medio de redes de conexin de memoria-procesador, cada procesador puede compartir mdulos de memoria principal y dispositivos. Correcto La principal caracterstica de un sistema multiprocesador es que cada procesador puede compartir un conjunto de mdulos de memoria principal, y dispositivos de E/S. Esto se consigue a travs de redes de conexin de memoria-procesador y otra de conexin E/Sprocesador.

Su respuesta : Para resolver un problema los procesadores se comunican enviando mensajes Para los sistemas multiprocesador estrechamente acoplados, existe completa conectividad entre los procesadores y la memoria Correcto Estrechamente acoplados: Los procesadores contienen memoria globalmente compartida a la que todos lo procesadores tienen acceso. En cada procesador puede existir una memoria cach. Existe una completa conectividad entre los procesadores y la memoria, esta conectividad se puede llevar a cabo bien insertando una red de interconexin entre los procesadores y la memoria bien por medio de una memoria multipuesto. Continuar

Anda mungkin juga menyukai