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