| HDCT - Algoritmos de díscos rígidos |
|
|
| Escrito por Maxi Padulo |
| Lunes 09 de Julio de 2007 21:00 |
|
Este proyecto comenzó queriendo controlar el actuador de un disco rígido. Junto con Julian Perelli ideamos un prototipo para tal fin. Luego de varias mejoras y después de darle varias vueltas al asunto, terminó siendo algo bastante más interesante. En el artículo se detalla brevemente el desarrollo del HDCT.
FUNCIONAMIENTO DE LA TECNOLOGÍA DEL ACTUADOR: Originalmente los actuadores consistían en un motor paso a paso, el cual era encargado de posicionar los cabezales del disco en las pistas correspondientes. Para desplazarse entre pistas, la lógica de control del disco conocía la cantidad de pasos necesarios para pasar de una pista a otra. Y este número era siempre el mismo. Si bien el funcionamiento era bastante simple, esto tenía algunos problemas. En primer lugar este mecanismo era bastante lento, y la velocidad era aproximadamente lineal. Desplazarse de la pista 0 a la pista 10 tomaba aproximadamente 10 veces el tiempo que llevaba desplazarse de la pista 0 a la pista 1. Actualmente los discos utilizan actuadores de bobina (VCA, Voice Coil Actuator). La incorporación de esta tecnología fue un gran avance en la construccion de discos rígidos. Consiste en un brazo rígido, muy ligero, el cual posee los cabezales de lectura en un extremo. En el otro extremo se encuentra la bobina. Esta bobina esta confinada en un fuerte campo magnético generado por 2 imanes permanentes de neodimio (NIB) . Al circular una corriente por la bobina genera un nuevo campo magnético, el cual a su vez genera una fuerza que hace desplazar el brazo que contiene los cabezales. Este desplazamiento a diferencia de los motores paso a paso es un movimiento acelerado, a tal punto que en los discos modernos puede alcanzar los 250Gs (250 veces la aceleración gravitatoria terrestre). Para desplazarse entre pista y pista se requiere de información extra para conocer en que posición se encuentran los cabezales. Esta información se coloca en la superficie misma del disco, ya sea en forma de círculos completos concéntricos (tecnología de servo dedicada) o como segmentos mezclados junto con los datos (tecnología de servo empotrada). De esta forma se monitorea constantemente la posición del brazo ya sea para realizar un movimiento, o para mantenerlo en una pista determinada. ETAPA DE PRUEBAS: Nuestro disco tiene un actuador VCA. Para poder mover el brazo a nuestro antojo es necesario indicarle de alguna forma a la controladora del disco, dónde queremos que se posicione.Lo que hicimos en el primer prototipo fue pedirle al sistema operativo que cargara un solo sector del disco en memoria. Para mover el actuador a la pista deseada calculábamos cual era el primer sector de esa pista y mandábamos a cargarlo. Esto hacia que el brazo se posicionara en la pista para poder leer dicho sector. Como era un prototipo usábamos el depurador de Microsoft (debug.exe) para pedirle que sector queríamos cargar. El primer soft nos permitía desplazarnos por todas las pistas de nuestro disco a gusto y antojo. Era un simple programa hecho en Turbo Pascal 7 con el cual enviábamos instrucciones al depurador. Nos resultaron útiles las clases de Pascal de la universidad Una vez que logramos controlar el actuador, decidimos dar un paso más. La nueva idea era simular los distintos algoritmos de planificación de disco, y ver "en vivo y en directo" como funcionaban. Para eso estudiamos el funcionamiento de los principales algoritmos de planificación, y desarrollamos un programa que generaba una cola estática de peticiones de disco. Luego el soft simulaba como atendería estos pedidos según el algoritmo seleccionado. Para encontrar la pista deseada hacíamos un simple cálculo para encontrar que sectores se encontraban en dicha pista (Nº de pista * cant. sectores por pista + offset), y luego le pedíamos al depurador que cargara dicho sector en memoria, lo cual hacia que el actuador se posicionara en la pista buscada.
PREPARANDO EL HARD: Para poder ver los algoritmos en funcionamiento era necesario contar con una hardware que permitiera ver como se movía el brazo con los cabezales a medida que se iban atendiendo las peticiones. Simplemente se puede desarmar un disco, quitándole la parte superior y ya tenemos lo que buscamos. Lo malo es que no nos va a durar mucho tiempo, la suciedad ambiente y otros factores estropean la superficie del disco en unos pocos dias dependiendo del tipo de disco y del uso que le demos. Así que construimos algo un poco mas robusto que hasta el día de hoy funciona a la perfección. En primer lugar tenemos que remover la parte superior ("la tapa") del disco. Nosotros contábamos con 2 disco similares, por lo cual modificamos la tapa de uno de ellos mientras el otro se mantenía limpio y seguro con la tapa original. Cuando terminamos hicimos el intercambio, minimizando el tiempo que el disco estuviera destapado. Si solo cuentan con un disco tomen las precauciones necesarias para que este se mantenga lo mas limpio posible durante el proceso. El primer paso fue recortar la tapa del disco con la intencion de crear con ella un marco para una ventana de acrílico transparente. Para ello utilizamos una amoladora angular y una lima para metal para llegar a los angulos más dificiles. Como el armazon esta hecho en aluminio es bastante facil de trabajar. Es un metal blando. Para aquellos que deseen realizar esta actividad no se olviden de usar protección para los ojos si es que van a manipular una amoladora. Una vez que tenemos la tapa recortada utilizamos pasta de pulir metales para darle un poco de brillo. Si bien este paso es opcional y no tiene nada que ver con el funcionamiento es un toque de prolijidad que nunca está de más. Además la diferencia en el aspecto del metal es muy evidente. Comparen en la imagen. Luego utilizamos acrílico transparente de 3mm, al cual le dimos la forma del marco recién fabricado. Para recortar el acrílico usamos un minitorno con discos de cortes, y para retocarla y suavizar los bordes usamos fresas de piedra. Se tomó como molde la forma de la tapa, dejando al descubierto los orificios donde se atornilla la tapa al disco. Si observan la imagen verán que el acrílico tiene un color celeste en vez de ser transparente. Esto se debe a que posee un film protector que lo recubre para evitar rayones. Una vez terminada su manipulación se lo remueve manualmente y queda perfectamente transparente evitando rayones innecesarios. Dicho film protector viene pegado a ambas caras del acrílico, así que en este paso retiramos solamente el film de la parte inferior (la que va a ir pegada al marco). Luego adherimos el acrílico al marco de aluminio utilizando sellador siliconado. La cubierta de acrílico tiene que quedar bien sellada con respecto al marco de aluminio para que no ingresen partículas que puedan dañar los mecanismos de funcionamiento del disco. Una vez que la silicona se ha secado lo suficiente como para poder trabajar sin peligro (aprox. 1 hr.) procedimos a reemplazar la tapa original con la tapa transparente. Esto se realizó teniendo el mayor cuidado posible con respecto a la limpieza del ambiente y del manejo del disco. En primer lugar se desatornilló la tapa original, luego se colocó la tapa transparente encima de la original manteniéndola separada unos pocos centímetros solamente. Luego con mucho cuidado se separó la tapa original del disco, siempre teniendo encima la tapa transparente para evitar que cayeran partículas. Para separar la tapa original puede ser necesario utilizar un destornillador plano o algún otro instrumento para hacer palanca, ya que tiene una espuma de sellado que suele adherirse bastante fuerte por efecto de la presión (esta muy apretada por la fuerza que ejercen los tornillos) y del tiempo (cuanto mas viejo el disco, mas pegada puede estar). Una vez retirada la tapa original bajamos lentamente la tapa transparente. Atornillamos la nueva tapa. Luego limpiamos con alcohol todas las manchas de huellas digitales y resto de silicona en la parte superior del acrílico y lo secamos con pistola de calor, para no rayar y no dejar pelusas. Y por fin tenemos el disco terminado!
DESARROLLO DEL SOFT: El primer programa prototipo era poco flexible ya que solo podíamos utilizarlo en el disco para el cual fue diseñado; al probar en otros discos nuestro método chapuza de encontrar la pista pidiéndole el sector correspondiente al depurador dejo de funcionar como esperábamos. En primer lugar porque no todos los discos tienen las mismas características físicas; la cantidad de sectores y pistas varían de un disco a otro.Otro problema con nuestro soft, era que trabajaba pidiendo sectores. Actualmente las controladoras de discos manejan una disposición física de sectores distinta a la disposición lógica que le es presentada al SO. Distintas técnicas como ZBR hacen un uso mas eficiente de la superficie del disco, pero la cantidad de sectores por pista varía de una pista a otra. Para realizar un nuevo soft que fuera más profesional necesitábamos otro método. Nos tomó un buen tiempo encontrar la forma de manejar la posición del actuador. Terminamos trabajando directamente con interrupciones del BIOS. Hay un sitio muy bueno que tiene un mapa de interrupciones muy completo: http://lrs.uni-passau.de/support/doc/interrupt-57/INT.HTM Esto fue nuestra salvación. El trabajo desde este punto fue bastante mas simple. El soft que obtuvimos fue mucho mas robusto, ya que funciona sobre cualquier disco (incluso S-ATA) ya que al iniciar el programa automáticamente detecta la cantidad de pistas físicas del disco. Luego se puede configurar para utilizar la cantidad de pistas lógicas que se quiera, lo que permite simular una amplia variedad de escenarios. También nos permite ajustar el tiempo que queremos que transcurra entre cada cilindro recorrido, crear secuencias manuales o aleatorias, tiene también un modo de depuración, y el resto espero que lo descubran por si mismos...
VIENDO COMO FUNCIONA:
EXPERIMENTANDO VOS MISMO: Para probarlo vas a necesitar algún disco en desuso. Lo ideal es que lo prepares de la misma forma que nosotros lo hicimos en este artículo, o tal vez se te ocurra incluso alguna forma mejor. De todas formas no es estrictamente necesario, ya que podes quitarle la parte superior al disco y verlo funcionar en forma directa. La vida útil se le acortará muchísimo mas rápido, pero por lo menos podrás hacer algunas pruebas. Con respecto al software de simulación es necesario que descarguen alguna de las formas de disco booteable que les proveemos. Esto es estríctamente necesario ya que el programa debe ejecutarse en un sistema operativo que no utilize modo protegido, dado que el software HDCT utiliza interrupciones del BIOS de forma directa. Los discos booteable se encuentran en formas de imágenes listas para grabar. Para instrucciones y descargas te recomendamos seguir el siguiente link: Esperamos que el artículo haya sido de tu interés. Dudas o comentarios serán bien recibidos. Para esto remitirse a la sección de contacto. |
| Última actualización el Martes 24 de Noviembre de 2009 21:39 |







