mis preguntas del blog y las ultimas .l

14
1-Cuáles son las diferencia entre una ALU y una FPU(FLOAT POINT UNIT) RTA: Diferencias entre ALU y la FPU ALU. Acronimo de unidad aritmetica lógica. Normalmente, los procesadores tienen varias de estas en el interior de la unidad de ejecución de números enteros. Por ejemplo, la arquitectura de los procesadores AMD K10 era capaz de calcular 6 micros operaciones por ciclo de reloj. Se utiliza el termino micro por que las operaciones más complejas se dividen dando lugar a varias de ellas. FPU. Acronimo de unidad de punto flotante. Es decir, realizan las operaciones sobre los números decimales. Estas unidades suelen ser más complejas y por lo tanto necesitan de más área dentro del micro. Esto es lo que ha llevado a AMD a integrar solo una cada dos nucleos en su arquitectura CMT. 2-¿Cuál es el objetivo dela pila STACK en un procesador?

Upload: mauricio-velasquez

Post on 13-Aug-2015

14 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Mis preguntas del blog y las ultimas .l

1-Cuáles son las diferencia entre una ALU y una FPU(FLOAT POINT UNIT)

RTA: Diferencias entre ALU y la FPU

ALU. Acronimo de unidad aritmetica lógica. Normalmente, los procesadores tienen varias de estas en el interior de la unidad de ejecución de números enteros. Por ejemplo, la arquitectura de los procesadores AMD K10 era capaz de calcular 6 micros operaciones por ciclo de reloj. Se utiliza el termino micro por que las operaciones más complejas se dividen dando lugar a varias de ellas.

FPU. Acronimo de unidad de punto flotante. Es decir, realizan las operaciones sobre los números decimales. Estas unidades suelen ser más complejas y por lo tanto necesitan de más área dentro del micro. Esto es lo que ha llevado a AMD a integrar solo una cada dos nucleos en su arquitectura CMT.

2-¿Cuál es el objetivo dela pila STACK en un procesador?

En ciencias de la computación, una pila de llamadas (en inglés call stack) es una estructura dinámica de datos LIFO, (una pila), que almacena la información sobre las subrutinas activas de un programa de computadora. Esta clase de pila también es conocida como una pila de ejecución, pila de control, pila de función, o pila de tiempo de ejecución, y a menudo se describe en forma corta como "la pila".

Una pila de llamadas es de uso frecuente para varios propósitos relacionados, pero la principal razón de su uso, es seguir el curso del punto al cual cada subrutina activa debe retornar el control cuando termine de ejecutar. (Las subrutinas activas son las que se han llamado pero todavía no han completado su ejecución ni retornando al lugar siguiente desde donde han sido llamadas). Si,

Page 2: Mis preguntas del blog y las ultimas .l

por ejemplo, una subrutina DibujaCuadrado  llama a una subrutina DibujaLinea  desde

cuatro lugares diferentes, el código de DibujaLinea  debe tener una manera de saber a dónde

retornar. Esto es típicamente hecho por un código que, para cada llamada dentro de Dibuja Cuadrado, pone la dirección de la instrucción después de la sentencia de llamada particular (la "dirección de retorno") en la pila de llamadas.

Puesto que la pila de llamadas se organiza como una pila, el programa que llama (a la subrutina) empuja (push) la dirección de retorno en la pila (la dirección en la que el programa continuará después de volver de la subrutina), y la subrutina llamada, cuando finaliza, retira (pop) la dirección de retorno de la pila de llamadas y transfiere el control a esa dirección. Si una subrutina llamada, llama a otra subrutina, la primera empuja (push) su dirección de retorno en la pila de llamadas, y así sucesivamente, con la información de direcciones de retorno apilándose y desapiolándose como el programa dicte. Si el empujar (push) consume todo el espacio asignado para la pila de llamadas, ocurre un error llamado desbordamiento de pila. Agregando una entrada de subrutina a la pila de llamadas es a veces llamado bobinando o enrollando (winding); inversamente, la eliminación de entradas es llamado desenbobinando o desenrollando (unwinding).

Usualmente hay exactamente una pila de llamadas asociado a un programa en ejecución (o más precisamente, con cada tarea o hilo de un proceso), aunque pilas adicionales pueden ser creados para el manejo de señales o la multitarea cooperativa (como con setcontext). Puesto que hay solamente una pila en este importante contexto, puede ser referido como la pila (implícito, "de la tarea").

3-¿Cuál es la diferencia entre el código objeto y el código en lenguaje ensamblador de

un procesador?

 Se llama código objeto al código que resulta de la compilación del código fuente.1

Consiste en lenguaje máquina o bytecode y se distribuye en varios archivos que corresponden a cada código fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los archivos de código objeto con un programa llamado enlazador (linker).

Page 3: Mis preguntas del blog y las ultimas .l

El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portátiles.

Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina.

4-Consulte el set de instrucciones básicas del procesador 8086:

Instrucciones básicas 8086

Este listado no pretende ser un substituto del manual Intel de instrucciones del 8086 -del que fervientemente recomiendo una minuciosa lectura una vez que haya comprendido bien esto- sino la más breve descripción posible para poder avanzar un poco más en los aspectos más básicos que se precisan para comprender el tutorial de lenguaje Assembly de +gthorne. Esta es una lista completa de instrucciones 8086 a las que sólo le faltan las instrucciones ESC, LOCK y WAIT, que no son útiles a nuestros fines inmediatos.

En la siguiente tabla se muestran encolumnados los Mnemónicos (como MOV), los operandos (como fuente, destino) y la descripción de la operación. Los operandos son combinaciones entre tipos (registro, memoria e inmediato) con los direccionamientos admitidos en cada instrucción. Las

Page 4: Mis preguntas del blog y las ultimas .l

instrucciones IN y OUT admiten un cuarto tipo de operando: puertos de I/O, con direccionamiento registro o inmediato.

Instrucciones de movimientos de datos

MOV destino,fuente ;la única instrucción que utiliza todos los tipos de direccionamiento

XCHG destino,fuente ;Intercambia los contenidos de destino y fuente

XLAT tabla_fuente ;carga el registro AL con el byte direccionado por (BX+AL)

LAHF ;carga las flags S, Z, A, P y C en AH

SAHF ;guarda AH en el registro de flags

LDS destino,fuente ;transfiere un puntero de 32 bits al registro DS y al registro destino

LES destino,fuente ;transfiere un puntero de 32 bits al registro ES y al registro destino

LEA destino,fuente ;transfiere el offset de fuente (una dirección) a destino (un registro)

PUSH fuente ;guarda fuente en el stack (en la dirección SS:SP)

POP destino ;recupera del stack (dirección SS:SP-1) y guarda en registro destino

PUSHF ;almacena  el registro de flags en/desde el stack

POPF ;recupera el registro de flags en/desde el stack

PUSHA ; almacena los reg DI,SI,BP,SP,BX,DX,CX,AX en/desde el stack

POPA ;recupera los reg DI,SI,BP,SP,BX,DX,CX,AX en/desde el stack

IN origen ;carga desde un puerto origen un byte o word en AL o AX

OUT destino ;escribe Al o AX en el puerto destino (direccionam. inmediato o DX)

 Las operaciones aritméticas

ADD destino,fuente ;suma fuente + destino y guarda el resultado en destino

ADC destino,fuente ;suma fuente + destino + Carry y guarda el resultado en destino

SUB destino,fuente ;resta destino - fuente y guarda el resultado en destino

SUB destino,fuente ;resta destino - fuente - Carry y guarda el resultado en destino

MUL fuente ;multiplica AL o AX * fuente y guarda el resultado en DX:AX

IMUL fuente ;igual que la anterior pero con numeros enteros con signo

DIV fuente ;divide DX:AX / fuente y guarda cociente en AX y resto en DX

IDIV fuente ;igual que la anterior pero con numeros enteros con signo

Page 5: Mis preguntas del blog y las ultimas .l

AND destino,fuente ;opera destino AND fuente y guarda resultado en destino

OR destino,fuente ;opera destino OR fuente y guarda el resultado en destino

XOR destino,fuente ;opera destino XOR fuente y guarda el resultado en destino

NOT destino ;el NOT cambia todos los 1 en 0 y los 0 en 1 de destino.

NEG destino ;NEG realiza el complemento a 2 de destino

INC destino ;Incremente an 1 el contenido de destino

DEC destino ;Decrementa en 1 el contenido de destino

DAA / DAS ;Efectúa el ajuste decimal en suma / resta del registro AL

AAA/AAD/ AAM/AAS

;ajustan el registro AL a valor decimal desempaquetado (para aplicar en operaciones suma, resta, multiplicación y división)

Instrucciones de rotación

RCL destino,contador ;rota destino a traves de carry a la izquierda contador veces

RCR destino,contador ;rota destino a traves de carry a la derecha contador veces

ROL destino,contador ;rota destino a la izquierda contador veces

ROR destino,contador ;rota destino a la derecha contador veces

SAL destino,contador ;desplaza destino a la izquierda contador veces y rellena con ceros

SAR destino,contador ;desplaza destino a la derecha contador veces y rellena con bit SF

SHR destino,contador ;desplaza destino a la derecha contador veces y rellena con ceros

5-Al realizar la operación aritmética A+A.B, Cual es la rutina de programación a seguir en la ALU 74181?

A OR A AND B (A+A.B)

Esta operación se implementa en los microcontroladores por una sola instrucción, lo más importante para considerar en todos los casos son los estados afectados ya que ellos son los indicadores que se deben utilizar para tomar decisiones en el programa. Uno de los aspectos que conviene recalcar en esta instrucción, es que el estado del carry no es considerado para los resultados de la operación; se afecta, pero no interviene. En cuanto a la multiplicación, se implementa en dos cantidades de un byte cada una.

Page 6: Mis preguntas del blog y las ultimas .l

hay esta el ultimo cuestionario:

1.

Elabore una tabla en la que categorice y caracterice las dos clasificaciones de computadores a que hace referencia esta guía.

Las cuatro clasificaciones definidas por Flynn se basan en el número de instrucciones concurrentes (control) y en los flujos de datos disponibles en la arquitectura:

Page 7: Mis preguntas del blog y las ultimas .l

Una instrucción, un dato (SISD)

Computador secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos. Ejemplos de arquitecturas SISD son las máquinas con uni-procesador o monoprocesador tradicionales como el PC o los antiguosmainframe.

Múltiples instrucciones, un dato (MISD)

Poco común debido al hecho de que la efectividad de los múltiples flujos de instrucciones suele precisar de múltiples flujos de datos. Sin embargo, este tipo se usa en situaciones de paralelismo redundante, como por ejemplo en navegación aérea, donde se necesitan varios sistemas de respaldo en caso de que uno falle. También se han propuesto algunas arquitecturas teóricas que hacen uso de MISD, pero ninguna llegó a producirse en masa.

Una instrucción, múltiples datos (SIMD)

Un computador que explota varios flujos de datos dentro de un único flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Por ejemplo, un procesador vectorial.

Múltiples instrucciones, múltiples datos (MIMD)

Varios procesadores autónomos que ejecutan simultáneamente instrucciones diferentes sobre datos diferentes. Lossistemas distribuidos suelen clasificarse como arquitecturas MIMD; bien sea explotando un único espacio compartido de memoria, o uno distribuido.

2. ¿Cuáles son las ventajas y desventajas técnicas de los procesadores simétricos frente a los asimétricos?

Existen dos tipos de multiproceso, el asimétrico y el simétrico. En el asimétrico hay un procesador (maestro) en el cual se ejecuta el sistema operativo y los demás (esclavos) donde se ejecutan las demás tareas. La ventaja de éste es que al aumentar más procesadores se tiene que hacer un cambio mínimo y fácil para el manejo de éstos y en general se eliminan muchos problemas de integridad de datos. La gran desventaja es que al haber sólo una copia del sistema operativo en un sólo procesador (maestro) cuando este procesador falla todo el sistema falla porque todos los recursos que son manejados por el sistema operativo no pueden ser accesados.

Page 8: Mis preguntas del blog y las ultimas .l

En el simétrico se ejecuta el sistema operativo - o una gran parte de él - en cualquiera de los procesadores disponibles y todos ellos tienen acceso a los recursos a menos que cada recurso sea asignado a un procesador específico. Aunque es más difícil de implementar tiene muchas más ventajas. Primero, este tipo de sistemas tienden a ser más eficientes porque las tareas tanto del sistema operativo como de los usuarios pueden ser distribuidas en forma balanceada a todos los procesadores. Debido a que las demandas del sistema operativo pueden ser repartidas a todos los procesadores, el tiempo de inactividad de un procesador mientras otro está sobre trabajando es mínimo. Segunda, si un procesador falla, es posible que sus tareas sean repartidas entre los demás y no es necesario que todo el sistema sea parado o que falle el sistema. Y finalmente, la portabilidad del sistema es mayor debido a que no sigue la arquitectura de mastrer/slave. NT implementa este modelo de multiproceso.

3. ¿Cuáles son las ventajas y desventajas técnicas de los siguientes sistemas RISC y CISC?

Los procesadores se agrupan hoy en dos familias, la más antigua y común de las cuales es la "CISC" o "Complex InstructionSet Computer": computador de set complejo de instrucciones. Esto corresponde a procesadores que son capaces de ejecutar un gran número de instrucciones pre-definidas en lenguaje de máquina (del orden del centenar). Desde hace unos años se fabrican y utilizan en algunas máquinas procesadores "RISC" o "Reduced Instruction Set Computer",es decir con un número reducido de instrucciones. Esto permite una ejecución más rápida de las instrucciones pero requiere compiladores (o sea traductores automáticos de programas) más complejos ya que las instrucciones que un "CISC" podría admitir pero no un "RISC", deben ser escritas como combinaciones de varias instrucciones admisibles del "RISC". Se obtiene una ganancia en velocidad por el hecho que el RISC domina instrucciones muy frecuentes mientras son operaciones menos frecuentes las que deben descomponerse.

4. Haga una breve descripción de las características de los procesadores con múltiples núcleos.

Un microprocesador multinúcleo es aquel que combina dos o más procesadores independientes en un sólo circuito integrado. Un dispositivo doble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que una computadora trabaje con Multiprocesamiento, es decir procesamiento en simultáneo con dos o más procesadores. Por otro lado, la tecnología de doble núcleo mejora el rendimiento de los entornos de trabajo multitarea y las aplicaciones con múltiples subprocesos. Por ejemplo, permite

Page 9: Mis preguntas del blog y las ultimas .l

que aplicaciones fundamentales como antivirus o anti espías se ejecuten al mismo tiempo que aplicaciones empresariales con un impacto mínimo sobre el rendimiento del sistema.

5. ¿A qué se le denomina procesadores multinúcleo? Consiga ejemplos de ello.

Es denominado procesador multinúcleo a aquellos que combinan dos o más microprocesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes. Multiprocesamiento es un Procesamiento simultáneo con dos o más procesadores en un computador. Estos procesadores se unen con un canal de alta velocidad y comparten la carga de trabajo general entre ellos. En caso de que uno falle el otro se hace cargo. El multiprocesamiento también se efectúa en computadores de propósitos especiales, como procesadores vectoriales, los cuales proveen procesamiento simultáneo de conjunto de datos. Aunque los computadores se construyen con diversas características que se superponen, como ejecutar instrucciones mientras se ingresan y se sacan datos, el multiprocesamiento se refiere específicamente a la ejecución de instrucciones simultáneas, entre algúnos procesadores están:

Procesadores Multinúcleo de Intel: Actualmente Intel esta fabricando procesadores de doble núcleo. Comenzó fabricando los Pentium D en el 2005, luego en el 2006 lanzó los Core Duo y el Core 2 Duo.

Pentium D: Los Pentium D están conformados por dos procesadores Pentium 4 Prescott sin Hyperthreading. Luego Intel sacó el Pentium Extreme Edition (No confundir con el Pentium 4 Extreme Edition) que era un procesador que tenía los procesadores P4 Prescott, con la tecnología Hyperthreading, lo que hacia que el software viera cuatro procesadores.

Core Duo: Los procesadores Core Duo es una versión para los portátiles, implementa 2MB de caché de memoria compartida para ambos núcleos. Están hechos con la tecnología de 65nm. Su velocidad va desde 1.20 hasta 2.33Ghz. El FSB (bus del sistema) va desde 533Mhz del modelo menos potente hasta 667Mhz para los demás. El gasto de energía va desde 9.0w hasta 31w. Por los datos se ve que tienen una gran relación rendimiento/energía.

Core 2 Duo: Esta nueva familia de procesadores de Intel esta basado en la micro arquitectura Core, que reemplaza a la antigua micro arquitectura Netburst que fue

Page 10: Mis preguntas del blog y las ultimas .l

aplicada en los demás procesadores y que ya estaba llegando a sus límites. La arquitectura Core proviene de la arquitectura que produjo al Pentium M (utilizado por los Intel Centrino), que destaca por el gran rendimiento que obtiene de la poca energía que gasta. El Pentium M además proviene del Pentium III, y este del Pentium Pro (Los Pentium 4 son una rama genealógica aparte).

Procesadores Multinúcleo de AMD: Antes de sacar sus procesadores multinúcleo al mercado, AMD ya había conseguido un gran éxito con su procesador Athlon 64, que incorporaba la capacidad de direccional 64 bits de memoria, la tecnología HyperTransport que era un nuevo bus bastante rápido que eliminaba cuellos de botella anteriores, y otras tecnologías; este procesador fue tomado como base para la construcción de su procesador de doble núcleo Athlon 64 X2, que salió al mercado a partir del 2005.

Procesador CELL: El procesador Cell, es un procesador multi-núcleo diseñado por las empresas IBM, Sony y Toshiba desde el marzo del 2001. Este procesador va a ser usado inicialmente por la PlayStation 3, pero se tiene previsto usarlo también en los productos electrónicos que fabrican estas empresas, que van desde televisores de alta definición hasta ordenadores.