martes, 20 de marzo de 2018

TEMPORIZACIÓN

El temporizador es un circuito digital, dispone de dos salidas al igual que un flip flop, una salida es la inversa de la otra, a diferencia del flip flop quién cuenta con dos estados estables, el temporizador solamente posee un estado estable, el otro estado es inestable, permanece en su estado estable, hasta que se activa con un pulso de entrada, una vez que se activa cambia a su estado inestable y ahí permanece por un periodo fijo de tiempo tw , este tiempo lo determina una constante de tiempo RC externa que se conecta al temporizador, después de que transcurre el tiempo tw , las salidas dos salidas del temporizador regresan a su estado estable, hasta que se activan otra vez. La finalidad de la temporización es retardar el paso de una señal desde un nodo del circuito hasta otro punto, el diseño de este circuito se realiza con un dispositivo que se conoce con el nombre de “monoestable” ó “temporizador”, éste elemento electrónico dispone de una entrada “E” y una salida “S”, se tienen tres temporizadores básicos que se denominan; el primero, temporización a la activación, el segundo se llama temporización a la desactivación y el tercero es una combinación de las dos anteriores, temporización a la “activación y desactivación” simultaneas. Se dispone de dos tipos de comportamiento en que se manifiestan las salidas de los temporizadores, "redisparables" y "no redisparables" y su entrada responde a dos tipos de disparo, "activación" y "desactivación".

Direccionamientos

Se les llama modos de direccionamiento a las distintas formas de combinar los operandos según el acceso que se hace a memoria.


Modo real:
Esta técnica consiste en hacer creer al programa que dispone de más memoria que la físicamente disponible en RAM.

 El modo real está caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria), acceso directo del software a las rutinas del BIOS y el hardware periférico, y no tiene conceptos de protección de memoria o multitarea a nivel de hardware.

El modo real (también llamado modo de dirección real en los manuales de Intel) es un modo de operación del 80286 y anteriores CPUs compatibles de la arquitectura x86.


                                                       Resultado de imagen para direccionamiento modo real

Modo real:

En el modo protegido, el procesador utiliza el direccionamiento segmentado a la (no lineal), en lugar de direccionamiento lineal.


El modo protegido tiene un número de nuevas características diseñadas para mejorar las multitareas y la estabilidad del sistema, como protección de memoria, y soporte de hardware para memoria virtual así como de conmutación de tareas.

En el 80386 y procesadores de 32 bits posteriores se agregó un sistema de paginación que es parte del modo protegido.


Modo virtual:
Permite la ejecución de aplicaciones de modo real que violan las reglas bajo control de un sistema operativo de modo protegido.
El VM86 usaba la forma de segmentación del modo real, pero usaba la dirección resultante de 20 bits (realmente 21 bits), tratándola como una dirección lineal, de tal manera que era sujeta a paginación.


Información extraida de:
1. Wikipedia. (2013). Modo 8086 virtual. 20/03/2018, de Wikipedia Sitio web: https://es.wikipedia.org/wiki/Modo_8086_virtual

2. intel. (2017). Modos de direccionamiento utilizado por los Procesadores Intel®. 20/03/2018, de Intel Sitio web: https://www.intel.la/content/www/xl/es/support/articles/000007194/processors.html

Para la mayor comprensión del tema Direccionamiento te invitamos a ver los siguientes videos:
1. https://www.youtube.com/watch?v=QJIQTZJsnf0
2. https://www.youtube.com/watch?v=rSgXJp8erBw

Puede consultar las siguientes paginas para mayor comprensión del tema ya mencionado:
1. http://mixteco.utm.mx/~merg/AC/2009/3.7-direccionamiento.html
2. https://silvamondragon.wordpress.com/2010/11/29/4-2-3-modos-de-direccionamiento/
3. http://www.dia.eui.upm.es/asignatu/arq_com/Paco/3a-LMaquina.pdf
4.https://lenguajeensambladorherramientasj.wordpress.com/2013/02/24/modos-de-direccionamiento/


Este articulo fue redactado por:
Jovani Reyes Benitez 
Sandra Lizbeth Pérez Almager




Buses


Los buses permiten la comunicación entre las partes internas de la computadora o entre las mismas computadoras.

Físicamente son conductores por donde viajan señales eléctricas.

Bus Local: 
Bus entre la CPU, la memoria y los controladores de
entrada y salida. Bus de alta velocidad.

Esto hará que la mayoría de los datos a los cuales accederá el procesador, se localicen en la cache y de esta forma sean entregados a una velocidad mas alta,otro punto a destacar de esta parte es que los accesos a memoria por parte de la cache no van a interrumpir el flujo de datos entre procesador y cache.  También se ve la posibilidad de conectar un dispositivo de entrada salida al bus local.


Bus de Datos:
(bidireccional). Transporta datos entre componentes
(CPU, memoria, E/S(entrada y salida), etc.)

Un bus de datos es un sistema que se encarga de transferir datos entre componentes de una computadora o red de computadoras.

Por estas líneas se transfieren los datos, pueden ser de 8, 16, 32 o más líneas, lo cual nos indica que cantidad de datos podemos transferir al mismo tiempo, y es muy influyente en el rendimiento del sistema. Por ejemplo si el bus es de 8 líneas y las instrucciones son de 16 bits, el sistema va a tener que acceder 2 veces a memoria para poder leer la instrucción, el doble de tiempo en leer instrucciones comparando con un bus de datos de 16 líneas. 

bus-de-datos

Bus de direcciones: 
(unidireccional). Transporta las direcciones de los componentes que la CPU desea utilizar.
Este bus se utiliza para direccionar las zonas de memoria y los dispositivos de forma que, al escribir una dirección en el bus, cierto dispositivo quede activado y sea quien reciba-envíe los datos en el ciclo de bus así empezado.

                             Resultado de imagen para bus de dirección
Bus de control:
(bidireccional). Transporta las órdenes que determinan la operación de transferencia a realizar por las líneas de datos y direcciones, y marcan el ordenamiento temporal de las señales que circulan por el bus,Las órdenes son muy diversas, las más comunes son:


·         Escritura en memoria. 

·         Lectura de memoria. 

·         Escritura de E/S. 

·         Lectura de E/S. 

·         Transferencia reconocida. 

·         Petición del bus. 

·         Sesión del bus. 

·         Petición de interrupción. 

·         Interrupción reconocida. 

·         Señal de reloj. 

·         Inicio.



Buses normalizados:
Para la intereacción fácil entre los componentes de distintos fabricantes se han normalizado.
Siguiendo un estandar previamente ya acordado entre las compañías y
respaldado por una sociedad de prestigio en el area p.ej. el IEEE.

Nivel mecánico:
Se recoge la forma y tamaño de los conectores, el
número de contactos por conector y el número de dispositivos que
soporta el bus.
Nivel eléctrico:
Se especifican los valores de voltaje de las
diferentes señales, polarización, etc.
Nivel lógico:
Especifica la función de cada señal del bus:
direcciones, datos, control, etc.
Nivel de temporización o sincronismo. Especifica el protocolo de
transferencia empleado.
Nivel de arbitraje:
Especifica el protocolo de arbitraje que utiliza el
bus.

Información tomada de: 
1. David Flores Gallego. (2014). Buses Normalizados. 20/03/2018, de Slide Share Sitio web: https://es.slideshare.net/MajestickFG/buses-normalizados

2. Mario Aguirre. (2015). Tipos de buses y microprocesasdores. 20/03/18, de Slide Share Sitio web: https://es.slideshare.net/mariovalle/tipos-de-buses-y-microprocesadores


Para la mayor comprensión del tema Buses te invitamos a revisar los siguientes vídeos:
1. https://www.youtube.com/watch?v=N9XjBl9EblA
2. https://www.youtube.com/watch?v=ar8zCGl1QOA

Puede consultar las siguientes paginas para mayor comprensión del tema ya mencionado:
1. http://loydiperez.blogspot.mx/2015/03/buses-tipos-de-buses-y-funcion-de-cada.html
2. https://busesyparalelismo.wordpress.com/2014/07/29/tipos-de-buses/
3. https://es.slideshare.net/mariovalle/tipos-de-buses-y-microprocesadores.
4. https://es.slideshare.net/MajestickFG/buses-normalizados

Este articulo fue redactado por:
Jovani Reyes Benitez 
Sandra Lizbeth Pérez Almager


domingo, 28 de enero de 2018

1.1 Modelos de arquitecturas de computo


Arquitecturas de computo clásicas





Consiste en una unidad central de proceso que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos de instrucción del programa, como los datos que serán procesados por este.


Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil.

El modelo clásico de arquitectura de computadoras fué diseñado por JhonVon Newman 








Constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. 




Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son:

  • La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas.
  • La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja acceder simultáneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso



La arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente:




1) Obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.



2) Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.


3) Descodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.

4) Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas.

5) Regresa al paso N° 1.





Arquitectura Harvard. Es una arquitectura de computadora con pistas de almacenamiento y de señal físicamente separadas para las instrucciones y para los datos. El término proviene de la computadora Harvard Mark I basada en relés, que almacenaba las instrucciones sobre cintas perforadas (de 24 bits de ancho) y los datos en interruptores electromecánicos. Estas primeras máquinas tenían almacenamiento de datos totalmente contenido dentro la unidad central de proceso, y no proporcionaban acceso al almacenamiento de instrucciones como datos. Los programas necesitaban ser cargados por un operador; el procesador no podría arrancar por sí mismo.

El PIC16FXXX cuenta con un bus de datos de 14-bits para acceder a la memoria de programas y un bus independiente de 8-bits para acceder a la memoria de datos. Esto mejora el ancho de banda en relación a la arquitectura tradicional de Von-Neumann, en la cual en la cual memoria de programa y la memoria de datos son accedidas a través del mismo bus.

Esta arquitectura ofrece la posibilidad de poder acceder a una sola instrucción en un ciclo de reloj. Mientras la memoria de programa es accedida la memoria de datos está en un bus independiente y puede ser leída y escrita. Esta separación de buses permite que una instrucción sea ejecutada mientras la siguiente es extraída.



Ventajas de esta arquitectura:




* El tamaño de las instrucciones no esta relacionado con el de los datos, y por lo tanto puede ser

optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa,

logrando así mayor velocidad y menor longitud de programa.


* El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una
mayor velocidad en cada operación.










Arquitectura de computo segmentada


La arquitectura en pipeline (basada en filtros) consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior. Esta arquitectura es muy común en el desarrollo de programas para el intérprete de comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe). También es una arquitectura muy natural en el paradigma de programación funcional, ya que equivale a la composición de funciones matemáticas. La arquitectura pipe-line se aplica en dos lugares de la maquina, en la CPU y en la ALU.




Esta arquitectura es similar al uso de una cadena de montaje en una fábrica de manufacturación. Una cadena de montaje saca partida del hecho de que el producto pasa atreves de varias etapas de producción. Extendiendo el proceso de producción de una cadena de montaje se puede trabajar sobre los productos en varias etapas como segmentación porque como en una tubería o cause en un extremo nuevo entradas se aceptan antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo.


Pipeline

Pipeline o tubería es un conjunto de elementos procesadores de datos conectados en serie en donde la salida de un elemento es la entrada del siguiente. Los elementos de pipeline son generalmente ejecutados en paralelos, en esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos.



Arquitectura de computadora Multiprocesos


Un multiprocesador puede verse como un computador paralelo compuesto por varios procesadores interconectados que comparten un mismo sistema de memoria.






Los sistemas multiprocesadores son arquitecturas MIMD con memoria compartida. Tienen un único espacio de direcciones para todos los procesadores y los mecanismos de comunicación se basan en el paso de mensajes desde el punto de vista del programador.




Dado que los multiprocesadores comparten diferentes módulos de memoria, pudiendo acceder a un mismo módulo varios procesadores, a los multiprocesadores también se les llama sistemas de memoria compartida

.


Dependiendo de la forma en que los procesadores comparten la memoria, se clasifican en sistemas multiprocesador UMA, NUMA y COMA.



Multiproceso


Multiproceso es tradicionalmente conocido como el uso de múltiples procesos concurrentes en un sistema en lugar de un único proceso en un instante determinado. Como la multitarea que permite a múltiples procesos compartir una única CPU, múltiples CPUs pueden ser utilizados para ejecutar múltiples hilos dentro de un único proceso.







1.2 Análisis de componentes 






Además de las Arquitecturas clásicas  mencionadas anteriormente, en la actualidad han aparecido Arquitecturas híbridas entre la Von Newman y la Harvard, buscando conservar la flexibilidad, pero mejorando el rendimiento.Esta escuela pretende aplicar un enfoque totalmente distinto al tradicional hasta entonces, que pasó a conocerse como computadoras de conjunto complejo de instrucciones (CISC) para diferenciarla de la nueva tendencia.Se implementan instrucciones especiales que realizan funciones complejas, de manera que un programador puede encontrar con seguridad, una instrucción especial que realiza en hardware la función que el necesita.
CISC vs RISC
Considere los siguientes fragmentos de programas:


El total de ciclos de reloj para la versión cisc debe ser:
(2 movs * 1 ciclo) +(1 mul * 30 ciclos) = 32 ciclos

El total de ciclos de reloj para la version risc debe ser:
(3 movs * 1 ciclo) +(5 adds * 1 ciclo)+(5 loops *1 ciclo) = 13 ciclos







Memoria:

La Memoria: existen diferentes tipos de memoria, que básicamente son dispositivos de almacenamiento, entre las más conocidas están:


RAM:(Random Acces Memory) es una memoria de tipo aleatoria es decir en cuanto se apaga el computador esta borra toda la información que se habia guardado, además de que solo guarda instrucciones dadas a la maquina.

ROM: (Read Only Memory) es la memoria fija, es de solo lectura y es capaz de almacena r cualquier información.

Cache: Es una memoria virtual que guarda el registro de las instrucciones ordenadas más frecuentemente a la maquina.




Los módulos de entrada y salida están conectados con el procesador y la memoria principal, y cada uno controla uno o más dispositivos externos. La arquitectura de E/S es su interfaz con el exterior, esta arquitectura se diseña de manera que permita una forma sistemática de controlar las interacciones con el mundo exterior y proporcione al sistema operativo la información que necesita para gestionar la actividad de E/S. 
 Hay tres técnicas de E/S principales:






Entrada/Salida Programada
Se produce bajo el control directo y continuo del programa que solicita la operación de E/S. tanto en la entrada y salida programada como con interrupciones, el procesador es responsable de extraer los datos de la memoria en una salida, y almacenar los datos en la memoria principal. El problema con la E/S es que el procesador tiene que esperar un tiempo considerable hasta que el modulo en cuestión esté preparado para recibir o transmitir datos



 Entrada y salida mediante interruptores
El programa genera una orden de E/S y después continúa ejecutándose hasta que el hardware lo interrumpe para indicar que la operación ha concluido. La entrada y salida con interrupciones, aunque es más eficiente que la sencilla, también requiere la intervención activa del procesador para transferir los datos entre la memoria y el módulo de E/S.

Resultado de imagen para Entrada y salida mediante interruptores

 Acceso directo a memoria
Un procesador de E/S específico toma el control de la operación para transferir un bloque de datos. El módulo DMA(Acceso Directo a Memoria) es capaz de imitar al procesador y, de hecho, es capaz de transferir datos desde memoria a través del bus del sistema. El módulo DMA debe utilizar el bus solo cuando el procesador no lo necesita, o debe forzar al procesador a que suspenda temporalmente su funcionamiento. Un módulo de E/S no es únicamente un conector mecánico que permite enchufar el dispositivo al bus del sistema, sino que además, está dotado de inteligencia, es decir, contiene la lógica necesaria para permitir la comunicación entre el periférico y el bus.

Resultado de imagen para acceso a memoria




Para su mayor comprensión puede ver:










Enlaces para la mayor compresión del tema:


https://es.wikipedia.org/wiki/Arquitectura_de_computadoras


http://rvazquez.org/Misitio/Arquitectura_de_Computadoras_files/CPU.pdf


https://prezi.com/-gatekoi_iha/arquitectura-de-computadoras-segmentadas/


http://wiki.inf.utfsm.cl/index.php?title=Estructura_de_I/O




Sandra Lizbeth Pérez Almaguer , Jovani Reyes Benitez , Itsoeh 2018 , ING. en TICS