El porque de la Limitación o barrera de los BIOS

Instrucción “13H” El Standard de IBM

Al diseñar el PC XT en 1983, los ingenieros de IBM establecieron que los servicios BIOS relativos al manejo de disco duro serían activados por la línea IRQ5 (IRQ6 se destinaba al disquete). Esta línea generaba la interrupción 19 (la famosa 13h) cuya rutina de servicio disponía de seis servicios estándar: reinicialización; obtención del estado; lectura; escritura y verificación de sectores, y formateo de pistas.

A partir de la introducción del PC AT en 1984, se introdujeron 12 nuevos servicios para disco, incluyendo recalibrado de la unidad, diagnóstico del controlador, Etc. En concreto, los servicios 2h y 3h ofrecen la posibilidad de leer y escribir sectores en el disco, mientras que Ah y Bh ofrecen la misma posibilidad de lectura y escritura para sectores largos.
Estos servicios ofrecen la posibilidad de leer y escribir en las unidades de disco a nivel de sectores individuales (unidades de asignación), para lo que, además del número de unidad, se requiere pasar a la rutina los valores de geometría correspondientes (Cilindro, Cabeza y Sector concretos); lo que se conoce como direccionamiento CHS ("Cilinder Head Sector". La especificación de IBM establecía que los siguientes valores para dichos parámetros

Tamaño n del campo (bits) Valor Máximo Teórico 2n Rango permitido Total utilizable
Cilindro 10 1024 0/1-1023 1024
Cabeza 8 256 0-255 256
Sector 6 64 1-63 63
Total 24 Bits 16777216 Clusters 16515072 Clusters 16515072 Clusters

De esta información podemos rescatar que los valores anteriores nos dejan un total de 1024 x 256 x 63 = 16515072 clusters. Como en este sistema FAT (Suponiendo Windows 95 Instalado) cada cluster es de 512 bytes, los servicios de la BIOS podían direccionar teóricamente un máximo de 1024 x 256 x 63 x 512 = 8455716864 Bytes, 8,455GB. Este es el límite del direccionamiento CHS directo o de la interrupción 13h de la BIOS estándar Real el cual no puede ser modificado.
Nota1: Los valores CHS originales eran 45, cada empresa podía administrar sus unidades por estos valores, pero luego el crecimiento sin precedentes de las unidades de Disco, genero que cada empresa creara un valor CHS Virtual para el BIOS y que en la controladora interna se maneje uno real, el cual es solo conocido por el Firmware del Disco Rigido.

Especificación ATA (Sobre valores CHS)

Nuestros Discos Rígidos están regidos bajo las especificaciones ATA (La interfaz de disco que conocemos como IDE ATA o IDE o PATA, es en realidad EIDE y ATA es la especificación de Disco). Los valores de las mismas son:

Tamaño n del campo (bits) Valor Máximo Teórico 2n Rango permitido Total utilizable
Cilindro 16 65536 0-65535 65536
Cabeza 4 16 0-15 16
Sector 8 256 1-255 255
Total 28 Bits 137438953472 Clusters 136902082560 Clusters 136902082560 Clusters

Los límites ATA eran por tanto 65536 x 16 x 255 = 267386880 clusters, o lo que es lo mismo: 136902082560 bytes (136GB).

BIOS Standard utilizando Unidad IDE Standard

Como verán, el CHS de IBM aplica un maximo 1024 x 256 x 63 x 512 = 8,4GB y el Standard ATA aplica un maximo de 65536 x 16 x 255 = 136Gb. La combinación de ambos Standard aplican un maximo de 1024 x 16 x 63 x 512 = 528Mb. Este sería el máximo espacio de disco direccionable mediante los servicios de la interrupción 13h estándar BIOS con una controladora ATA/IDE.

Como verán, esto es un grave problema y la solución a la limitación ATA de 16 Sectores es una conversión de ATA a CHS.

Traducción CHS extendida

Evidentemente 528 MB es un valor muy pequeño; pronto se vio que había que dar una solución que permitiera utilizar discos mayores, para llegar a los 8.45 GB que teóricamente podía proporcionar la BIOS estándar. Se adoptó una solución denominada CHS extendido o ampliando ECHS. Soportada por un nuevo tipo de BIOSes extendidas ("Enhanced BIOS") que aparecieron a partir de 1993/94. En esa epoca hubo furor de BIOS Update.

Nota2: En realidad el direccionamiento CHS extendido es un truco aritmético por el que se informa a la BIOS que el disco instalado (suponemos que es una unidad IDE) tiene un número de cilindros, cabezas y sectores distintos de los reales, pero adaptado a lo que puede manejar la BIOS (lo que se denomina geometría trasladada). Para ello, si el número de cilindros del dispositivo IDE es superior a los 1024 soportados por la BIOS, se divide este número por 2, 4, 8 o 16, hasta que el valor resultante sea igual o menor que los mentados 1024. El valor resultante es el que se pasa a la BIOS como número de cilindros. Por su parte, el número de cabezas se multiplica por el factor 2, 4, 8 o 16 utilizado, y éste es el que se suministra a la BIOS (podríamos decir que se cambian cilindros por cabezas).
Esta traducción del CHS de ATA para el CHS del BIOS es un parche y cuando los discos rígido superaron los 8,455Gb, se implemento algo diferente, LBA.

Direccionamiento LBA

Para esto se ideó un sistema denominado LBA ("Logical Block Addressing), que implica un sistema radicalmente distinto de direccionar los clusters.

En lugar de referirse a ellos en términos geométricos (Cilindro, Cabeza y Sector), a cada cluster se le asigna un número único, Número de Sector. Para ello se numeran 0, 1, 2, ... N-1, donde N es el número total de sectores del disco.

Nota3: Actualmente LBA es el sistema dominante para direccionamiento de discos grandes, puesto que desde que alcanzaron el límite de 8.455 GB, se hizo imposible expresar su geometría en términos de Cilindro, Cabeza y Sector.

Observe en realidad LBA es un sistema radicalmente nuevo de direccionamiento que, en principio, no implica por sí mismo ampliar ningún límite. Aunque desde luego, las BIOS que detectan sistemas LBA poseen limites basados en cuantos bits de direccionamiento tienen disponibles. También disponen de la traducción adecuada para solventar las limitaciones de la combinación BIOS/ATA (saltar la limitación de 528 MB o incluso la de 8.455 GB).

Esta traducción es la que resuelve el paso de la barrera, ya que la interrupción 13h no sabe nada sobre direccionamientos LBA. Por supuesto todas las nuevas unidades de disco soportan LBA, y cuando esta circunstancia es auto-detectada por la BIOS, se establece automáticamente este modo de direccionamiento y se habilita la traducción correspondiente.

El famoso Cuelgue de Sistema al colocar un Disco Grande en un equipo antiguo (antes de 1994), se debe a que el BIOS no puede leer correctamente la protección LBA/CHS ATA-BIOS que integra la controladora y es por eso que se debe setear el BIOS en AUTO -> LBA.
Por otro lado esta traducción (LBA), es parecida a la ECHS, aunque el algoritmo es diferente; se denomina traducción auxiliar LBA. La diferencia substancial es que en ECHS, la BIOS traslada los parámetros utilizados por la interrupción 13h desde la geometría trasladada a la geometría local del disco. En la traducción LBA, la BIOS traslada la geometría trasladada directamente en un número de sector.

Con posterioridad al establecimiento del sistema, se empezó a utilizar una extensión conocida como LBA48, que aumentaba de 28 a 48 los bits reservados para representar los números de sector*(Con 28Bits se obtiene una limitacion de 137GB). Asumiendo que el formateo se realiza en sectores de 512 Bytes, el método permite unidades con un máximo teórico de 512 x 248 = 144.11 Petabytes (millones de Gigas).

Pero para no caer en limitaciones, en el BIOS se implemento un Paquete de Actualizaciones sobre el 13H original. Dentro de ese paquete se encuentra el reconocimiento de Discos 13H Original, el 13H ATA/BIOS, el LBA y en los modernos (1999 para arriba) un direccionamiento de 64Bits en vez del de 24Bits Standard o el LBA48, para entregar soporte seguro hasta 18.446 x 1018 (18.446 Hexa Clusters). Suponiendo un tamaño de sector de 512 bytes son 9.444 x 1021 (9.444 miles de Trillones de bytes).

Por ultimo cabe recordar que Por convención y por compatibilidad, todas las unidades con más de 8.4 GB tienen unos parámetros lógicos de 16,383 cilindros, 16 cabezas y 63 sectores, razón por la cual, aparecen todos como de 8.4 GB si se instalan en un equipo en el que la BIOS no soporta las extensiones de Int 13h.

Hasta aquí, ya saben las normas, el porque y a que se debe el problema de la limitación de BIOS con relación a discos grandes, lo que falta saber es como solucionarlas.

Soluciones

Sistemas con BIOS anterior a julio de 1994 (limitación de 504 MB).
Generalmente, estos BIOS presentan una limitación de 504 megabytes (1.024 cilindros). Con anterioridad a esta fecha, los BIOS de la mayorí¬a de fabricantes no proporcionaban la función de Dirección de bloque lógico (Como arriba explicado LBA) necesaria para una correcta traducción, o el ATA-BIOS. Algunos BIOS incorporaban el modo LBA en la configuración, pero la función no se ejecutaba correctamente. La solución es intentar hacer la conversión manual ATA-BIOS, ingresarla en el BIOS y luego sobre cualquier aplicación de formateo intentar crear una partición del tamaño real y “llenar” el disco de información para asegurarse su correcto funcionamiento de 8.455GB. Para mas cantidad, colocar Jumper de limitación en el Disco y Crear una partición especial “DDO” con la aplicación Original de Instalación del Disco.

Sistemas con BIOS posterior a julio de 1994 (limitación de 2,048 GB).

Generalmente, estos BIOS ofrecen compatibilidad con unidades de disco duro con capacidades superiores a 504 megabytes. No obstante, dependiendo de la fecha de publicación y el número de versión del fabricante, pueden encontrarse distintas limitaciones. La principal limitación que aparece es la de 4.093-4.096 cilindros. Esta barrera se deriva del hecho que algunos fabricantes de BIOS implementaron la traducción de Direccionamiento de bloque lógico (LBA) en sus BIOS con una limitación de 4.093-4.096 cilindros o de 512 x 222 = 2147483648 Bytes (2.1Gb) Los sistemas se cuelgan cuando se excede el umbral de la limitación de cilindros. Cuando el sistema se cuelga, esto significa que se ha colgado el sistema operativo durante la carga inicial, ya sea desde el disquete o desde las unidades de disco duro existentes. Si se producen estos síntomas la solución alternativa al AUTO LBA mode es hacer la conversión manual de ATA CHS a BIOS CHS y luego ingresar los parámetros en el BIOS manualmente. Luego crear una partición de tamaño total y un formateo de tamaño total y por ultimo un ingreso de datos a tamaño total (chequear su correcto funcionamiento) de 8.455GB. Para mas cantidad, colocar Jumper de limitación en el Disco y Crear una partición especial “DDO” con la aplicación Original de Instalación del Disco.

Limitación de 4,2 GB.

Los parámetros máximos en la barrera de 4,2 GB son 8.190 cilindros, 16 cabezales y 63 sectores o o de 512 x 223 = 4294967296 Bytes (4.2Gb). Cuando el sistema se cuelga, esto significa que se ha colgado el sistema operativo durante la carga inicial, ya sea desde disquete o desde las unidades de disco duro existentes. Aplicar la misma Solución que para 2,1Gb. Pero si Windows 95 se cuela, esto puede ser debido a que el BIOS indica al sistema operativo que el número de cabezales es de 256 (100 h). El tamaño de registro que utiliza DOS/Windows 95 para el recuento de cabezales tiene una capacidad de dos dí¬gitos hexadecimales. Esto equivale a 255 en valores decimales. Si se producen estos síntomas Actualizar el DOS a la versión 7.0 de Windows ME y en Windows 95, actualizarlo a la versión 95/OSR2 FAT32.

Limitación de 8,4 GB.

Los parámetros máximos en la barrera de 8,4 GB son 16.383 cilindros, 16 cabezales y 63 sectores para una capacidad de 8,455 GB. Para superar este lí¬mite, es necesaria una nueva función INT 13 del BIOS como función de compatibilidad para las unidades. Si o si hay que actualizar el BIOS en este caso (no posee LBA48, sino LBA28). En el caso de no querer actualizarlo es posible darle compatibilidad, pero hay que cargarle una aplicaron en el BootStrap del Disco llamada XBIOS o DDO (mencionado en las soluciones de 2.1 y 4.2Gb), para entregar el Valor Correcto al Sistema instalado. En el Mercado existen programas para todas las marcas de Discos rígidos e inclusive aplicaciones dedicadas a cualquier disco general, aunque se recomienda el Update de BIOS si se encuentran cuelgues en el Sistema.

Limitación de 32 GB.

Esta condición es ocasionada por la incapacidad del BIOS de “Award” de gestionar unidades de disco de más de 32 GB (Limitacion del LBA a 512 x 226 = 34359738368 Bytes o 32Gb). Award en junio de 1999, comenzó la reparación o Update Masivo de BIOS para corregir este problema. Las actualizaciones del BIOS deberí¬an estar disponibles próximamente para que los distintos fabricantes de placas base puedan resolver este problema. A continuación, se indican las opciones existentes para superar las barreras de capacidad de 32 GB del BIOS:
• Póngase en contacto con el fabricante de la placa base, no con Award, para obtener una actualización del BIOS.
• (Recomendada) Adquiera una tarjeta controladora ATA PCI que admita la capacidad del disco. Las dos ventajas de las tarjetas controladoras ATA son: (1) su compatibilidad con unidades de disco de gran capacidad y (2) su compatibilidad con las velocidades de transferencia de las unidades más rápidas.
• Utilizar la Aplicación del fabricante para crear una Partición DDO igual a lo mencionado para 2.1, 4.2, y 8.4Gb.

Limitación de 64 GB

No existe ninguna barrera de capacidad de BIOS de 64 GB. Si utiliza FDISK para formatear una unidad de más de 64 GB, FDISK informará de un tamaño de disco incorrecto, pues el diseño del Fdisk por parte de Microsoft entrego soporte hasta 64Gb en WinMe. El Fdisk de Win3.1/95/95OSR2/98/98SE da soporte hasta 32Gb.

Limitación de 137 GB

La mayoría de BIOS del sistema presentan una limitación de 137 GB porque sólo admiten el Direccionamiento de bloque lógico (LBA) de 28 bits. Para solucionarlo las únicas alternativas son:
• Formatiar la unidad a 137Gb con Windows XP SP1 en adelante. Luego de la instalación ir al administrador de Discos y formatear el resto del Disco.
• Update de BIOS con el LBA actualizado a 48its
• Instalación de Jumper con limitación de BIOS, luego Instalación de Software XBIOS eh instalación del Sistema dentro de esa Partición especial.

Otras Limitaciones futuras
Como el LBA se basa en la cantidad de Bits disponibles para el acceso a sectores, los problemas futuros se pueden dar dependiendo de la cantidad disponibles de Bits a “512 x 2N” Donde “N” es esa cantidad.

Limitación de 144 Petabytes

Aunque aun no existen unidades de tan descabellado tamaño, seguramente en esa época existirá un Update del LBA48 para actualizar BIOS con una mayor cantidad d Bits para direccionamiento Lógico.


Hecho por
Germangelv
Robado de Taringa xD.

Entradas populares de este blog

SFC : System File Checker o Comprobador de Archivos del Sistema (II) Uso y Opciones

ASUS ACPI SERVICE Falta el controlador del panel táctil. No se ha asignado ninguna tecla de acceso rápido a la conmutación de panel táctil. Por favor, instale el controlador de panel táctil.

El sistema no encontró la opción de entorno especificada