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

Corte 2

1.       Consulte y elabore un listado de las microoperaciones básicas que realiza un microprocesador. Enuncie los registros de propósito general que intervienen en cada una

Microoperaciones
Microoperacion
Registro de propósito general que interviene


Aritméticas


Suma
Resta
Incremento
Decremento
Corrimiento
Acumulador (AX)
Registro Base (BX)
Registro Contador (CX)
Registro de Datos (DX)

Lógicas
AND
OR
Complemento
Acumulador (AX)
Registro Base (BX)
Registro de Datos (DX)
Corrimiento o
Desplazamiento
Logico
Circular
Aritmetico
Acumulador (AX)
Registro Contador (CX)
Registro de Datos (DX)

2.       ¿A qué se le denomina microinstrucciones? Consulte algunas.
Se llama microinstrucción a cada valor de la palabra de control de los que componen un microprograma.
En una unidad de control microprogramada las microinstrucciones se almacenan en una memoria llamada memoria de control.
El término microinstrucción se utiliza en el lenguaje de la microprogramación, en donde cada línea describe un conjunto de microoperaciones que suceden a la vez, y se conoce como microinstrucción. Una secuencia de instrucciones se conoce como microprograma o firmware.



Especifica todas las señales de control del camino de datos más la posibilidad de decidir condicionalmente que microinstrucción se debe ejecutar a continuación
·         Cada palabra de la memoria de control es una microinstrucción
·         Formato de las microinstrucciones:
o   Señales de control: Señales para el camino de datos.
o   Condiciones: Bits que se pueden usar para seleccionar la condición que se desea utilizar para, en función de si es cierta o no, ejecutar la siguiente microinstrucción o saltar a otra.
o   Siguiente instrucción: Campo que indica la siguiente instrucción a ejecutar.




3.       ¿Cuál es la función de los registros del procesador ante el desarrollo de microoperaciones?
Los registros en un microprocesador funcionan como datos en tiempo real que llevan unidades de memoria electrónica. Esto significa que cuando un usuario da una orden a una aplicación, está se traduce en una declaración binaria y se envía al microprocesador. Estas declaraciones son recibidas por registros del microprocesador, que los mantienen durante unos nanosegundos si el procesador ya está ocupado, y luego las envía a petición del procesador. Estos registros también tienen los bits procesados ​​en tiempo real de datos cuando se transmitieron los bits de datos previamente procesados​​, así como también mantienen las ubicaciones y los comandos asociados con los valores de entrada o los datos procesados​​. Permitiendo minimizar las referencias a la memoria principal optimizando el uso de estos registros.
En lugar de tener registros individuales ejecutando las microoperaciones en forma directa, los sistemas computacionales emplean cierta cantidad de registros de almacenamiento conectados a todas las unidades operacionales comunes, la cual se denomina unidad aritmética-lógica, y se abrevia ALU (arithmetic logic unit).
Para ejecutar una microoperación, el contenido de los registros especificados se coloca en las entradas de la ALU común. La ALU ejecuta una operación y el resultado se transfiere al registro destino. La ALU es un circuito combinatorio, por lo que toda la operación de transferencia de registros desde los registros fuente por la ALU y hasta dentro del registro destino, puede ejecutarse durante un período de un pulso de reloj. Las microoperaciones de corrimiento con frecuencia se ejecutan en una unidad separada, pero en ocasiones la unidad de corrimiento forma parte de la ALU general.
4.       Consiga el diagrama de bloques de un circuito combinacional que realiza operaciones de multiplicación y división




5.       Consulte cuatro diferencias fundamentales entre un lenguaje ensamblador y un lenguaje de programación
·         Tiempo de programación: Ensamblador al ser un lenguaje de bajo nivel  requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel.
·         Programas fuente grandes: Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes.
·         Falta de portabilidad: Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una  selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.
·         Velocidad: Como trabaja directamente con el microprocesador al ejecutar un programa, al ser este lenguaje más cercano a la máquina, la computadora lo procesa más rápido.

·         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 de una u otra forma limitantes para explotar al máximo los recuerdos de la máquina.

miércoles, 24 de agosto de 2016

Clasificación del Sofware

Consulte por lo menos dos maneras de clasificar el software de un sistema computo.

Cuadro Componentes del Computador

Elabore una tabla en la que se clasifique los diferentes componentes del computador, utilidades, fabricantes y unidades de medida

Tabla comparativa de los tipos de placa base

Tabla comparativa de los tipos de placa base
Elabore una tabla donde clasifique a los fabricantes, velocidades, interfaces y procesadores con los cuales son compatibles, por lo menos unos tres tipos de placa base

Evolución de los Computadores

Evolución de los computadores a partir de 1900
Elabore una tira del tiempo, donde se muestre (de manera breve), la evolución de los computadores desde 1900 hasta nuestros días

Diferencias entre la arquitectura de Von Neumann y Harvard

Fundamentos de las diferencias entre las maquinas Von Neumann y Harvard
¿Cuáles son los fundamentos de la máquina de Von Neumann que la diferencian de la máquina tipo Hardvard?

Tipos de Arquitecturas de Computadores

Descripción de los tipos de arquitecturas de computadores obviando a las arquitecturas clásicas (Von Neumann y Harvard).
Respuesta a ¿Que otros tipos de arquitecturas de computadores existen?.

Estándar IEEE 754

Haga una breve descripción sobre el standard 754 de la IEEE para el manejo de números con coma flotante

lunes, 22 de agosto de 2016

Ejercicios De Representación De Números

Resolución de ejercicio 5 de representación de los datos

Ejercicios de números enteros con signos

Resolución de ejercicio 4  de representación de los datos

Ejercicios de Representación y Operaciones de Números en BCD

Resolución de ejercicios 1,2 y 3 de ejercicios de realimentación de representación de los datos

Código ASCII

Consulte sobre el Código ASCII, adicione la tabla de carácteres

Ejercicios de Operaciones de Binarios

Resolución del ejercicio 3 de los ejercicios de realimentación sistemas de numeración

domingo, 21 de agosto de 2016