Bienvenido a Agalisa Informática
  Eres un/a usuario/a Anónimo/a Domingo, 21/7/2019  
Servicios Agalisa
· Tienda On-Line
· Lista Precios
· Quienes Somos
· Acreditaciones
· Mapa Situación
· Consulta E-Mail
· Panda ActiveScan
·

Producto Destacado
En este momento no existe contenido para este bloque.

Zona Activa
· Página Inicial
· Archivo de Noticias
· Buscar
· Descargas
· Encuestas
· Enlaces
· Enviar Noticia
· FAQ
· Foros
· Mi Cuenta
· Recomiéndanos
· Sugerencias
· Temas
· Top 10
· Versión PDA

Buscar



Titulares Aleatorios

Sony
[ Sony ]

·Sony repara gratuitamente ciertos productos con defectos de fabricación
·Sony inicia una campaña para dar 4 años de garantía en algunos de sus productos
·Sony lanza sus nuevas pantallas LCD X-brite
·DVD de papel
·Sony lanza al mercado su sistema de almacenamiento Blu-ray de 23GB
·SONY lanzará el próximo mes un sistema de almacenamiento basado en láser azul
·Sony lanza una nueva tarjeta de memoria
·SONY reemplazará una serie de VAIOs defectuosos
·Sony prepara el lanzamiento de periféricos para la familia Vaio

Efemérides
Tal día como hoy...

Producto de Oferta
En este momento no existe contenido para este bloque.

Qué es el Command Queuing de los discos duros
Enviado el 08/03/04 a las 02:00 por noticias

Agalisa

¿Qué es el Command Queuing? ¿Cuales son las diferencias entre Legacy Command Queuing y el Tagged Command Queuing de SCSI? ¿Qué sistema de Command Queuing es mejor y por cuanto? Os ofrecemos la traducción de un interesante artículo de Lost Circuits

Debido a que los discos duros son dispositivos electromecánicos, la inercia constituye en ellos un importante factor que limita el rendimiento: el acceso y recuperación de los datos obliga a situar el cabezal en la zona adecuada, lo que implica movimientos mecánicos del actuador y de los platos. Los factores que definen estos retardos son las latencias de rotación y de búsqueda.

Una vista íntima y personal del mecanismo de un Barracuda 7200.7 de Seagate (cortesía de Seagate Corporation). El diseño del actuador, en forma de filigrana, reduce el peso de éste, lo que se traduce en una menor inercia y mejor respuesta.

Las latencias mecánicas se pueden reducir sólo hasta cierto punto; sin embargo, la eficiencia puede ser mejorada notablemente mediante un ajuste inteligente del orden en que se realizan internamente las operaciones. Las dos palabras clave en este contexto son "inteligente" e "internamente"; esto es, la unidad es la única que sabe realmente en donde están los datos físicamente, y debe ser lo suficientemente inteligente como para leerlos en el mejor orden para conseguir el mayor rendimiento posible.

El hardware necesario para llevar esto a cabo es, en la mayoría de los casos, una cola para almacenar los distintos comandos enviados por el ordenador; dentro de esta cola, los comandos pueden ser reordenados a la vez que se mantiene un mecanismo para seguir la pista de los comandos completados y de aquellos que todavía están esperando. El término técnico para este concepto es "reordenamiento de comandos basado en la optimización de las búsquedas", o tagged command queuing.

Una mejora del command queuing consiste en que el host se puede desconectar del dispositivo mientras éste reordena y ejecuta los comandos. Tan pronto el dispositivo está listo para enviar los datos al host, éste se conecta de nuevo. Esta transferencia optimizada elimina la ocupación innecesaria del bus, reduciendo así los conflictos de prioridad.

Sistemas de encolado de comandos: Parallel ATA vs. Serial ATA

Desde la concepción de las unidades de discos duros, se han desarrollado distintos sistemas de encolado de comandos, adaptados a diferentes entornos y necesidades. El sistema más simple es el legacy command queuing, disponible, por ejemplo, en los discos Parallel ATA para equipos de sobremesa de IBM/Hitachi. En el otro extremo se encuentran los extremadamente sofisticados sistemas disponibles en SCSI, pensados para las grandes cargas que se producen en los sistemas con multiples hosts y dispositivos.

Sin embargo, el segmento de sobremesa está cambiando. Los sistemas operativos multitarea y su software, junto con los sistemas con dos o cuatro procesadores virtuales (gracias a HyperThreading), crean una nueva demanda para sistemas de colas en el hogar y la oficina.

Con Parallel ATA, el command queuing nunca tuvo mucho éxito. De hecho, el único en adoptarlo fue IBM con su serie GXP, que ofrecía un rendimiento doble frente a cualquier unidad de la competencia. Desgraciadamente, los problemas debidos a implementaciones incorrectas, o simplemente a la subestimación de los beneficios frente a los inconvenientes, constituyeron un obstáculo insalvable para la aceptación del Legacy Command Queuing.

Serial ATA, sin embargo, juega con otras reglas. La primera gran diferencia es el hecho de que Serial ATA usa una conexión punto a punto, que hace superfluas las desconexiones con el host. Esto lleva a un mundo de beneficios para el command queuing, que, en este caso, es denominado Native Command Queuing o NCQ.

Sobrecarga mecánica

Ya comentamos que los discos duros son dispositivos híbridos, compuestos por elementos electrónicos y mecánicos, y que es fácil ver que las partes mecánicas son las más lentas. Además, los fallos electrónicos son poco habituales, frente a los más comunes fallos mecánicos. Cabe por tanto decir que hay una gran diferencia entre el rendimiento mecánico y el electrónico en cualquier disco duro, y que dicha diferencia se denomina Sobrecarga Mecánica.

El efecto de la sobrecarga mecánica se puede describir diciendo que la unidad no es capaz de ejecutar los comandos a la misma tasa a la que son enviados por el host, lo que, finalmente, resulta en un menor rendimiento del sistema. La sobrecarga mecánica es debida principalmente a los tiempos de búsqueda y latencias de rotación, pero hay que tener en cuenta que estos factores son independientes uno del otro, y precisan de estrategias diferentes a la hora de optimizarlos.

Tiempos de búsqueda

El tiempo de búsqueda es función del tiempo que tarda el cabezal en situarse sobre el cilindro que contiene el sector especificado. Mientras sólo se pida un único sector, o bien una serie de sectores contiguos, sólo será necesario hacer un único movimiento. Sin embargo, la situación cambia drásticamente cuando varias peticiones necesitan acceder a un grupo sectores que se encuentren desperdigados por distintos cilindros. En ese caso , el cabezal necesita seguir un recorrido en zig-zag sobre los platos, y ésto requiere una mayor cantidad de movimientos.

Supermercados y ascensores

Si comparamos los sectores a leer con la lista de la compra para el supermercado, tendríamos que una posibilidad sería ir cogiéndolos en el orden indicado en dicha lista, sin preocuparnos de la situación física en la que se encuentran en el supermercado. Es obvio que esta aproximación requiere, en general, un camino bastante largo.

Sin embargo, también podemos comparar los sectores a leer con las peticiones hechas a un ascensor. En muchos sitios todavía hay ascensores que atienden dichas llamadas en el mismo orden en que se hacen, una estrategia bastante ineficiente y equivalente al ejemplo anterior del supermercado. Lo curioso es que es, precisamente, el mismo sistema que siguen los discos duros actuales.

Pero los ascensores han evolucionado durante las últimas décadas, ante el hecho de que la manera más económica de servir las distintas demandas implica reordenar algunas órdenes. Un efecto colateral es mayor velocidad, y dado que la carga global es menor, se produce también un menor desgaste mecánico, que redunda en una mayor durabilidad y fiabilidad.

El ejemplo del ascensor se ajusta bien a lo que queremos explicar: todo el mundo sabe que se puede entrar en un ascensor en la planta tercera y seleccionar como piso destino el séptimo aunque alguien hubiese marcado antes el décimo. El ascensor subirá y nos dejará primero en la planta siete, y seguirá luego hasta la diez. Siempre que un comando llegue a tiempo de insertarse en el actual ciclo antes de que el ascensor pase por ese piso destino, es posible reordenar los comandos y parar en él. Esto se denomina "reordenamiento dinámico de la cola de comandos", y es la esencia del Native Command Queuing del Serial ATA.

Para llevar más adelante el ejemplo: alguien puede haberse despistado y marcar el piso destino después de haber pasado por él. En este caso tendrá que esperar al siguiente ciclo, cuando el ascensor vaya en sentido opuesto. Algunos ascensores borran las peticiones una vez que han llegado al extremo del recorrido; sin embargo, los más avanzados recuerdan estos comandos y posponen su ejecución, creando la siguiente cola durante la ejecución de la primera. Este sistema, que decide en qué cola encaja mejor cada nuevo comando, es un sistema más eficiente de organizar peticiones, y además es parte del sistema NCQ incluido en la especificación SATA II.

En un sistema sin cola de comandos, el acceso secuencial a varios sectores aleatorios implica varias rotaciones de los platos, además de grandes y continuos desplazamientos de los cabezales.

Almacenar y reordenar las peticiones reduce drásticamente la distancia total que han de recorrer los cabezales en su camino desde el primer sector hasta el último. Dado que la velocidad de giro es constante, la longitud de la linea púrpura comparada con la de la linea roja es proporcional al tiempo que se tarde en ejecutar los comandos, tanto en un sistema con cola como sin ella. Hay que recalcar que ésto sólo se cumple en el caso de accesos aleatorios. En accesos secuenciales el tiempo es el mismo.

En resumen, la manera más simple no siempre es la más rápida, y es por esto que la posición física de los datos ha de ser tenida en cuenta a la hora de ordenar las peticiones. Al principio del artículo, mencionamos los términos "inteligente" e "interno". Ahora volvemos a ellos porque el único dispositivo que conoce la localización física de los datos es el disco duro en sí, y éste necesita emplear algoritmos muy sofisticados que tengan en cuenta la distancia a recorrer, el punto inicial, perfiles de aceleración de los actuadores y tiempo de cambio de cabezal, junto con otras posibilidades, como por ejemplo, reducción del ruido.

Latencia de rotación

La latencia de rotación se produce cuando se quiere leer un sector de una pista, pero este todavía no se encuentra bajo el cabezal: hay que esperar a que la rotación del disco lo lleve hasta él. Si se quieren leer varios sectores consecutivos en una misma pista, el caso peor es cuando el sector que se encuentra listo para ser leído es el segundo. En este caso, el disco ha de esperar a que los platos den casi una vuelta antes de poder comenzar a leer.

La solución que ofrece SATA consiste en permitir leer estos sectores fuera de orden, de forma que podemos empezar por el sector 2, 3, 4,... y cuando el plato haya dado la vuelta, leer el 1.

Estándares diferentes, colas diferentes

Originalmente, el command queuing fue presentado en las especificaciones SCSI como una adaptación al entorno multihost/multitarget, donde cada host puede pedir varios grupos de peticiones a varias fuentes, y priorizarlas en cada una. Esto se hace mediante el uso de tres colas, denominadas Cola Simple, Cola Ordenada y Cabeza de Cola. La Cola Simple permite a la unidad reordenar todos los comandos de la forma que la unidad quiera, sin limitación. Sin embargo, hay casos en que las prioridades han de cambiarse, en cuyo caso el controlador puede beneficiar a un comando cambiando su ubicación a la Cabeza de Cola. Los comandos de la lista Cabeza de Cola son manejados mediante una disciplina LIFO (último en entrar es el primero en salir).

La disciplina de prioridades LIFO constituye una elegante manera de permitir al controlador trabajar "como de costumbre" pero con la posibilidad de interrumpir un trabajo concreto si llega una tarea urgente, simplemente pasándolo a la Cabeza de Cola. Dado que es el último comando que ha entrado, será el primero en ser ejecutado.

La última posibilidad es la Cola Ordenada, la cual sólo es relevante en sistemas complejos. Esta cola no permite que la unidad reordene ningún comando. Su propósito es evitar la "confusión" cuando se envían varias peticiones ordenadas jerárquicamente desde varios hosts. Esto debe hacerse cuando el cambio de orden de ejecución puede suponer un error en el orden de tratamiento de la información. Un ejemplo trivial podría ser la lectura de un sector por parte de una aplicación de reproducción de vídeo, de un fichero que está escribiendo, simultáneamente, una aplicación de edición de vídeo: la lectura ha de ser posterior a la escritura, para garantizar que el reproductor lea los datos ya editados.

El hardware detrás de la cola

Hemos hablado sobre las colas para ilustrar el principio detrás de ellas, y hemos mencionado que el encolado implica una pila ordenada de comandos. ¿Pero como está organizado el hardware? En general, una cola es un buffer serie o pipeline. En el caso más simple, los datos entran por un lado y salen por el otro (la clásica implementación de una cola FIFO, o primero en entrar, primero en salir). Sin embargo, el reordenamiento precisa de conmutadores que permitan cambiar la posición de las órdenes en base a prioridades. Estas prioridades son asignadas por la propia unidad en la mayoría de los casos.

Profundidad de la cola

El sistema ha de seguir la pista de cada comando almacenado en la cola, para lo que se usa el valor de la etiqueta ITLQ (initiator/target/logical unit/queue). Es de aquí de donde surge el término Tagged (etiqueta es tag en inglés) Command Queuing (TCQ) de SCSI. Debido a la complejidad del sistema ITLQ, SCSI necesita una profundidad de cola de 256 etapas.

Por su parte, la especificación ATA para sobremesa solo admite un máximo de 32 niveles, lo que es más que suficiente, sobre todo si tenemos en cuenta que la mayoría de los sistemas operativos ni siquiera admiten tantos comandos.

Conclusiones

En Parallel ATA, el rol puramente pasivo de la unidad, junto con la sobrecarga asociada a la desconexión del bus, así como la compartición de éste por dos dispositivos (maestro y esclavo) han convertido al sistema Legacy Command Queuing en algo poco efectivo.

Las extensiones de Serial ATA añaden el Native Command Queuing al sistema FirstPartyDMA. La topología punto a punto permite una comunicación continua entre el dispositivo y el controlador, lo que permite sacar el máximo partido de características avanzadas. El NCQ de SATA no permite prioridad en las colas, aunque existen los atributos Virtual Head of Queue. Este comando obtendrá la máxima prioridad, a costa de eliminar de la cola todos los comandos que no hayan sido ejecutados todavía, y que tendrán que ser reenviados.

El Tagged Command Queuing de SCSI es la versión más sofisticada, debido a los diferentes tipos de colas pensadas para diferentes propósitos. La versatilidad de la implementación de SCSI es debida principalmente a su tag ITLQ. Es por esto que se puede decir que SCSI seguirá manteniendo en cetro en los sistemas de almacenamiento complejos, y que los nuevos sistemas de comandos aparecidos durante los últimos años, incluyendo lecturas y escrituras simultáneas, han aumentado su ciclo de vida (al menos en el sector empresarial) en unos cuantos años. Por otro lado, en el sector de sobremesa o incluso en pequeños sistemas de almacenamiento en red, SCSI no podrá demostrar su superioridad tecnológica.

Fuente e imágenes: Lost Circuits (en inglés).


 
Enlaces Relacionados
· Agalisa Informática
· Más Acerca de Agalisa
· Noticias de noticias


Noticia más leída sobre Agalisa:
Comparativa entre Intel Pentium 4 y AMD Athlon XP


Valorar Artículo
Puntuación Media: 5
votos: 2


Por favor pierde un segundo y valora esta noticia:

Excelente
Muy Bueno
Bueno
Regular
Malo



Opciones

 Versión Imprimible  Versión Imprimible

 Enviar a un Amigo  Enviar a un Amigo


Puntos
Los comentarios son propiedad de quien los envió. No somos responsables por su contenido.

No se permiten comentarios Anónimos, Regístrese por favor


Todos los derechos reservados. Los comentarios anónimos o de los usuarios registrados son propiedad de sus autores. Agalisa no se identifica de ninguna manera con ellos salvo expresamente publicado por nuestra parte. Agalisa se reserva el derecho de modificar o eliminar aquella información propia o de terceros que considere incorrecta, incompleta u ofensiva.
© Copyright Agalisa 2002 - Consulte nuestra política de privacidad.
Portal basado en la tecnología de PHP-Nuke.