jueves, 21 de noviembre de 2013

Arquitectura en Pipeline

La arquitectura en pipeline consiste en transformar un flujo de datos comprendido en varias en etapas secuenciales. Esta arquitectura durante el desarrollo de programas es muy común para el programador, ya que pueden concatenar comandos fácilmente. También es una arquitectura natural en la programación funcional, equivale a la composición de funciones matemáticas.


Fuente: http://sistemas-distribuidos.wikispaces.com

Pipe quiere decir en español “tuberías”, básicamente el sistema es como el agua que fluye por las tuberías, en este caso el agua llegaría a ser la información o los procesos.

Fuente: http://xnafactory.blogspot.com

Este tipo de arquitecturas es muy común verlo en sistemas operativos multitarea ya que los procesos que se ejecutan son de manera simultánea, luego son ejecutados de manera secuencial mediante un administrador de tareas asignándoles diferente prioridad y capacidad de procesamiento.
Aplicaciones de pipelines.
1.    Los pipelines gráficos, se encuentran en la mayoría de las tarjetas de video, consiste en múltiples unidades aritméticas o CPU completas, implementan varias operaciones típicas.
2.    Los pipelines de software, consiste en multiples procesos ordenados de forma que el flujo de salida alimenta la entrada del siguiente proceso. (Alonso, 2013)
El pipeline o segmentación, es una técnica de implementación, el cual se puede traslapar la ejecución de instrucciones. Hoy en día el pipeline es un de las tecnologías más utilizadas para hacer procesadores más rápidos.
La segmentación no solo ayuda a realizar una sola tarea, sino la característica principal es la de ayudar a realizar un carga de trabajo. La velocidad se incremente si aumenta el número de segmentos.
El speedup es el desbalance en el largo de los segmentos, esto hace que reduzca la velocidad.
Dentro esta arquitectura tenemos los 5 estados de las instrucciones MIPS:
·         IF: Búsqueda de una instrucción en la memoria de instrucciones
·         ID: Búsqueda de registros y decodificación de instrucciones.
·         EXE: Ejecución o cálculo de dirección
·         MEM: Acceso a la memoria de datos.
·         WB: Escribir datos en el archivo de registros.

Ventajas y Desventajas.

Ventajas:
·         Todas las instrucciones son del mismo tamaño
·         Pocos formatos de instrucciones
·         Las operaciones con memoria solo aparecen en las instrucciones de carga y almacenamiento

Desventajas:
·         Existen situaciones cuando la siguiente instrucción no se puede ejecutar en el próximo ciclo de reloj.
·         Existen 3 tipos de riesgos: Riesgos Estructurales, Riesgos de Control y Riesgos de Datos.

Riesgos Estructurales: Es cuando el hardware no puede manejar combinaciones de instrucciones que deben ejecutarse en un mismo ciclo.

Riesgos de Control: Ocurren porque el procesador no “sabe” lo suficiente. Cuando se producen saltos condicionales y/o saltos incondicionales.

Riesgos de Datos: Ocurren porque una instrucción depende del resultado de una instrucción previa en el segmento. Algo muy importante, las instrucciones “add” o “sub” no muestran el resultado hasta el estado WB. (García, 2013)

Bibliografía

Alonso, M. D. (20 de Noviembre de 2013). http://www.slideshare.net/rehoscript/arquitectura-pipeline.
García, I. J. (20 de Noviembre de 2013). http://www.ie.itcr.ac.cr/jdiaz/licenciatura/estructura%20de%20microprocesadores/PRESENTACIONES/pipeline-intro.pdf.




jueves, 7 de noviembre de 2013

Unidades de Almacenamiento
“Disco Duro”
¿Qué es un disco duro?
Un disco duro es un dispositivo de almacenamiento de información permanente (almacenamiento no volátil), a diferencia de las memorias RAM no necesita de un aporte constante de energía para conservar la información. Antes de la aparición de errores, un disco duro posee miles de ciclos que nos permite alterar la información almacenada, es decir que podemos borra o aumentar información.  (Enrique, 2006)

Estructura Física

El disco duro es una caja herméticamente cerrada, en su interior se encuentre una variedad de componentes electrónicos, capaces de sincronizar dos motores y las funciones de las cabezas de lectura y escritura.


Figura 1: Componentes de un Disco Duro
Fuente: riobambainfogroup11.blogspot.com

Funcionamiento
En realidad el disco duro es una pila de platos donde se almacena la información magnéticamente. Cada plato que forma el disco duro gira a una velocidad constante y no descansa hasta que el ordenador se apague. Cada cara del plato tiene asignado uno de los cabezales de lectura y escritura.

Para la opción de lectura, ejecuta una serie de acciones, que son:
·         Desplazar los cabezales de lectura /escritura hasta el lugar donde empiezan los datos.
·         Esperar a que el primer dato llegue donde están los cabezales.
·         Leer el dato con el cabezal.
La operación de escritura es similar. En teoría el funcionamiento es sencillo, pero en la realidad es muy complejo, ya que entra en juego el procesador, el BIOS, el sistema operativo, la memoria RAM y el mismo disco duro.

Características de un disco duro
Dependiendo a la función de varios factores, podemos determinar la capacidad y el rendimiento de los discos duros, como ser: el modo de transferencia, tiempo de acceso, tiempo de búsqueda, velocidad de rotación, latencia, capacidad de almacenamiento y la caché del disco.

Modo de transferencia
Existen varias técnicas para la transferencia de datos desde el disco duro hacia la memoria RAM:

·         PIO: Entrada/salida programada. Para el intercambio de datos utiliza al microprocesador del sistema, es el método más antiguo de transferencia, algunos modos son:
Ø  PIO modo 1: 5.2 Mb/s
Ø  PIO modo 2: 8.3 Mb/s
Ø  PIO modo 3: 11.1 Mb/s
Ø  PIO modo 4: 16.6 Mb/s

·         DMA: Tiene un transferencia full dúplex para transferir datos entre la memoria RAM y el disco duro, sin que el procesador intervenga en esta tarea, lo cual libera a la CPU para realizar otras tareas. Actualmente se utiliza el sistema UDMA, existen varias versiones que se conocen que permiten la máxima velocidad de transferencia:
Ø  DMA16 o UDMA: 16.6 Mb/s
Ø  DMA33 o UDMA modo 2, o Ultra ATA/33: 33.3 Mb/s
Ø  UDMA66 modo 4, o Ultra ATA/66: 66.6 Mb/s
Ø  UDM100 modo 5, o Ultra ATA/100: 100 Mb/s
Ø  UDMA133 modo 6, o Ultra ATA/133: 133 Mb/s 

Tiempo de acceso
Es el tiempo utilizado por las cabezas de lectura/escritura para colocarse encima del sector que se va a leer o escribir. Este tiempo está comprendido entre los 9 y 12 milisegundos.

Tiempo de búsqueda
Es le tiempo que necesita para desplazar las cabezas desde una pista a otra, este tiempo está comprendido entre los 8 y 12 milisegundos.

Velocidad de rotación
Se refiere a la velocidad de giro del disco,  los valores típicos se encuentran entre las 5400 rpm en discos duros portátiles, en discos duros de sobremesa su velocidad de giro se encuentra entre las 7200 rpm. En discos con interfaz SCSI, sus velocidades de giro es mayor, están entre las 10000 a 15000 rpm, además que estos son más ruidosos y consumen más energía.

Latencia
En los discos duros se conoce como latencia, al tiempo de espera del desplazamiento de las cabezas hasta el cilindro adecuado. También se define como el tiempo necesario para que gire el disco y el sector alcance la posición correcta. Cuanto mayor es la velocidad de rotación del disco, menor será la latencia.

Capacidad de almacenamiento
Una de sus principales características es la capacidad de almacenamiento. Hoy en día se mide en gigabytes (Gb), aunque cada esa capacidad está quedando pequeña es por eso que se está empezando a utilizar el terabyte (Tb).
Según el fabricante suelen redondear la capacidad de un gigabyte con 1000 Mb, lo que hace que haya discrepancias al momento de saber el tamaño total, ya que un gigabyte son 1024 Mb.
Caché del disco
            Se encarga de almacenar las lecturas, de forma que cuando se solicite datos del disco ya los tenga disponibles y no haya que esperar a que los cabezales cambien de posición.
Otras características
            Hay que tomar en cuenta otras características:
  •  El tipo de conexión o interfaz entre el disco duro y la PC. Las computadoras de escritorio o sobremesa y las portátiles usan ATA/IDE y SATA, los servidores SATA y SCSI; sin embargo los discos externos suelen usar USB, Fire Wire o eSATA.
  • El tamaño de los discos duros es de 3.5” para computadoras de escritorio, para las portátiles están entre 2.5 o 1.8 pulgadas.
  • Temperatura máxima de funcionamiento
  • Tolerancia a golpes y vibraciones


(Hill, 2013)

Tipos de discos duros
Para una mejor explicación sobre los tipos de discos duros, vean el siguiente video:

Fuente: www.youtube.com

            Ahora veremos la comparación entre un HDD y un SDD:
Fuente: www.youtube.com

Bibliografía
Enrique, H. R. (2006). Hardware y Componentes. Anaya Multimedia.
Hill, M. (11 de 10 de 2013). http://www.mcgraw-hill.es/bcv/guide/capitulo/8448180364.pdf.

Referencias de los videos