viernes, 4 de noviembre de 2016

Corte 3


Programación del MicroProcesador

1.       ¿Cuál es el objetivo de la pila STACK en un procesador?

Es una estructura de datos con acceso del tipo LIFO (Last In First Out), último en entrar, primero en salir. Como similitud se puede asociar a un almacenamiento de libros formando una pila, en la que se almacenan uno sobre otro, los nuevos elementos se apilan sobre el último, y cuando se retiran se extrae el último que se ha apilado.

Este tipo de estructura de datos es fácil de desarrollar por los sistemas microprocesadores y resulta de gran utilidad para trabajar con listas de datos y es imprescindible para el trabajo interno del microprocesador en las subrutinas e interrupciones.

Algunos microprocesadores pueden tener el Stack en su interior, representando un sistema muy rápido pero de tamaño limitado, la mayoría de microprocesadores disponen el stack en la memoria externa, hecho que proporciona una gran capacidad de almacenamiento y el control de su ubicación, aunque el acceso sea más lento.

2.       ¿Cuál es la diferencia entre el código Objeto y el código en lenguaje ensamblador de un procesador?

Generalmente, un programa ensamblador moderno crea código objeto traduciendo instrucciones mnemónicas de lenguaje ensamblador en opcodes, y resolviendo los nombres simbólicos para las localizaciones de memoria y otras entidades.

El uso de referencias simbólicas es una característica clave del lenguaje ensamblador, evitando tediosos cálculos y actualizaciones manuales de las direcciones después de cada modificación del programa.
La mayoría de los ensambladores también incluyen facilidades de macros para realizar sustitución textual - ej. generar cortas secuencias de instrucciones como expansión en línea en vez de llamar a subrutinas.

El término ensamblador es frecuentemente usado tanto para referirse al lenguaje ensamblador como también al programa ensamblador (que convierte el código fuente escrito en el lenguaje ensamblador a código objeto que luego será enlazado para producir lenguaje de máquina).

3.       Consulte el set de instrucciones básicas del procesador 8086



4.       ¿Qué ventajas brinda la programación en lenguaje ensamblador frente a la programación en lenguajes de alto nivel?

Las ventajas que brinda la programación en lenguaje ensamblador versus la programación en lenguaje de alto nivel son las siguientes:

·         Velocidad: Como trabaja directamente con el microprocesador, al ejecutar un programa, pues este lenguaje es el más cercano a la máquina, por ende, la computadora lo procesa más rápido.
·         Eficiencia de tamaño: Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargar librerías y demás como en el caso de los lenguajes de alto nivel.
·         Flexibilidad: Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permiten

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

Categoría
Características
SISD (Single Instruction stream, Single Data stream)
Estos sistemas tienen un único flujo de instrucciones que operan sobre un único flujo de datos, es decir, las instrucciones se ejecutan de manera secuencial.
SIMD (Single Instruction stream, Multiple Data stream)
Estos sistemas tienen un único flujo de instrucciones que operan sobre múltiples flujos de datos, es decir, realizan la misma instrucción pero sobre una gran cantidad de datos.
MISD (Multiple Instruction stream, Multiple Data stream)
Sistemas con múltiples instrucciones que operan sobre un único flujo de datos.
MIMD (Multiple Instruction stream, Multiple Data Stream)
Sistemas con un flujo de múltiples instrucciones que operan sobre múltiples datos. Son sistemas con memoria compartida que permiten ejecutar varios procesos simultáneamente.


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

Multiprocesamiento Asimétrico (AMP)
Multiprocesamiento Simétrico (SMP)
Consiste en que cada procesador cumple una tarea específica. En este sistema hay un procesador (maestro) donde se ejecuta el sistema operativo y los demás procesadores (esclavos) esperan que el maestro les de instrucciones o tienen asignadas tareas predefinidas. Es una relación maestro-esclavo. El procesador maestro planifica el trabajo de los procesadores esclavos asignándoles tareas específicas. Tiene el control sobre toda la memoria y de todos los recursos de E/S. Los procesadores esclavos solo ejecutan aplicaciones de usuario. Una vez que un proceso está activo y el esclavo necesitar un servicio de E/S le envía una solicitud al maestro y espera a que el servicio se lleve a cabo.
Consiste en una arquitectura de hardware multiprocesador donde dos o más procesadores idénticos están conectados a una única memoria principal común y son controlados por una sola instancia del sistema operativo. En el caso de los procesadores multinúcleo, la arquitectura SMP se aplica a los núcleos, tratándolos como procesadores separados. Los procesadores pueden estar interconectados mediante autobuses, interruptores de barra transversal o en el chip de redes de malla. El cuello de botella en la escalabilidad de SMP utilizando autobuses o interruptores de barra transversal es el consumo de ancho de banda y la potencia de la interconexión entre los diversos procesadores, la memoria y los arrays de disco.
La ventaja es que al aumentar más procesadores se tiene que hacer un cambio mínimo y fácil para el manejo de estos y en general se eliminan muchos problemas de integridad de datos.
La ventaja es que permiten que cualquier procesador trabaje en cualquier tarea sin importar donde los datos de esa tarea están ubicados en la memoria, a condición de que cada tarea en el sistema no está en ejecución en dos o más procesadores al mismo tiempo, con el apoyo adecuado del sistema operativo, los sistemas SMP puede mover fácilmente tareas entre los procesadores para equilibrar la carga de trabajo de manera eficiente.
La gran desventaja es que al haber solo una copia del sistema operativo en un solo procesador (maestro) cuando este procesador falla todo el sistema falla porque todos los recursos que son manejados por el sistema operativo no pueden ser accedidos, esto quiere decir que el procesador maestro puede ser un cuello de botella en el rendimiento.
La limitación más importante de la arquitectura SMP, en términos del rendimiento máximo que puede alcanzarse, es la posibilidad de saturación de los buses del sistema. Ya que todos los procesadores tienen acceso al mismo bus de memoria, y en general a todos los periféricos que se encuentran comunicados comúnmente por buses, conforme se incrementa el número de procesadores se incrementa también el tráfico en dichos buses. Esto causa una saturación que finalmente termina por negar el incremento de rendimiento obtenido teniendo varios procesadores. Por esta razón una arquitectura SMP difícilmente puede escalar más allá de algunas decenas de procesadores.


Mutiprocesamiento Simétrico (SMP)
Ventajas
Desventajas
Incrementa el rendimiento: Por incrementarse el número de procesadores, se incrementa la cantidad de trabajo en un tiempo menor.
Como consecuencia del acceso simultaneo a la memoria, se producen colisiones y esperas, lo que representa un problema.
Economía de escala: El costo de estos sistemas es menor, gracias a que ellos pueden compartir periféricos, almacenamiento y suministro de energía.
Conforme a la organización de la arquitectura, es poco escalable en número de procesadores, debido a que puede surgir un cuello de botella si se aumenta el número de CPU.
Mayor Fiabilidad: Las funciones pueden ser distribuidas al tener más de un procesador, ya que al ocurrir un fallo, el sistema no se detiene, sino que se hace más lento.
Sin embargo, está memoria global contribuye el problema más grande del SMP: conforme se añaden procesadores, el tráfico en el bus de memoria se satura. Al añadir memoria caché a cada procesador se puede reducir algo del tráfico en el bus, pero el bus
Multiproceamiento Asimétrico
Ventajas
Desventajas
La ventaja es que al aumentar más procesadores se tiene que hacer un cambio mínimo  y fácil para el manejo de estos y en general se eliminan muchos problemas de integridad de datos.
El procesador maestro puede ser un cuello de botella en el rendimiento, y todo depende de él, si falla, entonces todo se viene abajo y no se puede continuar.
La distribución correcta de carga de trabajo del procesador maestro hace un sistema eficiente.
El procesador maestro puede no asignar equitativamente las cargas de trabajo por lo que puede haber fallas de eficiencia.




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

Arquitectura CISC
Ventajas
Desventajas
Facilidad de implementación del conjunto de instrucciones.
La complejidad del conjunto de instrucciones crece.
Compatibilidad hacía adelante y hacía atrás de nuevas CPU’s.
Las instrucciones de longitud variable reducen el rendimiento del sistema.
Facilidad de programación.

Puede ser menor la complejidad del compilador.
Inclusión de instrucciones que raramente se usan.
Arquitectura RISC
Se incrementa la velocidad debido a un conjunto de instrucciones más simples.
Excesiva dependencia en la efectividad del compilador.
Hardware más simple debido a instrucciones más sencillas que requieren menos espacio en el chip.
La depuración de los programas se hace más difícil por la programación de instrucciones.
El ciclo de diseño más corto resulta en un diseño efectivo, costos controlados con el desarrollo y tiempo de salida al mercado más corto.
Se incrementa el tamaño del código de lenguaje máquina.
Necesidad de memoria rápida.

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

·         Dos o más procesadores independientes en un solo paquete.
·         Permiten que una computadora trabaje con multiprocesamiento, es decir, procesamiento en simultáneo con dos o más procesadores.
·         La tecnología de múltiples núcleos mejora el rendimiento de los entornos de trabajo multi-tarea y las aplicaciones con múltiples subprocesos.
·         Un solo procesador múltinucleo tiene la capacidad de hacer la función de dos o más procesadores a la vez.
·         También los podemos encontrar en celulares, tablets y otros dispositivos electrónicos.



5.       ¿A qué se le denomina procesadores multinucleo? Consiga ejemplos de ello

Es aquel que combina 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. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread (thread-level parallelism) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (chip-level multiprocessing) o CMP.

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.

Ejemplos:
·         Pentium Dual Core
·         Pentium D
·         AMD Athlon 64x2
·         Core i3
·         Core i5

·         Core i7

No hay comentarios.:

Publicar un comentario