stringtranslate.com

Direccionamiento de bloques lógicos

El direccionamiento de bloques lógicos ( LBA ) es un esquema común utilizado para especificar la ubicación de bloques de datos almacenados en dispositivos de almacenamiento de computadora , generalmente sistemas de almacenamiento secundarios como unidades de disco duro . LBA es un esquema de direccionamiento lineal particularmente simple; Los bloques se ubican mediante un índice entero, siendo el primer bloque LBA 0, el segundo LBA 1, y así sucesivamente.

El estándar IDE incluía LBA de 22 bits como opción, que se amplió aún más a 28 bits con el lanzamiento de ATA-1 (1994) y a 48 bits con el lanzamiento de ATA-6 (2003), mientras que el tamaño de Las entradas en las estructuras de datos en disco y en memoria que contienen la dirección suelen ser de 32 o 64 bits. La mayoría de las unidades de disco duro lanzadas después de 1996 implementan direccionamiento de bloques lógicos.

Descripción general

En el direccionamiento de bloques lógicos, solo se utiliza un número para direccionar los datos y cada dirección base lineal describe un único bloque.

El esquema LBA reemplaza esquemas anteriores que exponían los detalles físicos del dispositivo de almacenamiento al software del sistema operativo. El principal de ellos era el esquema de sector de culata de cilindro (CHS), en el que los bloques se abordaban mediante una tupla que definía el cilindro, la culata y el sector en el que aparecían en el disco duro . CHS no se asignaba bien a dispositivos distintos de los discos duros (como cintas y almacenamiento en red) y, en general, no se utilizaba para ellos. CHS se utilizó en las primeras unidades MFM y RLL , y tanto él como su sucesor, el sector de culata extendida (ECHS), se utilizaron en las primeras unidades ATA . Sin embargo, las unidades de disco actuales utilizan grabación de bits de zona , donde el número de sectores por pista depende del número de pista. Aunque la unidad de disco informará algunos valores CHS como sectores por pista (SPT) y cabezas por cilindro (HPC), tienen poco que ver con la verdadera geometría de la unidad de disco.

LBA fue introducido por primera vez en 1981 por SASI , el precursor de SCSI , como una abstracción. Si bien el controlador de la unidad aún aborda los bloques de datos por su dirección CHS, esta información generalmente no es utilizada por el controlador del dispositivo SCSI, el sistema operativo, el código del sistema de archivos ni ninguna aplicación (como bases de datos) que acceden al disco "sin formato". Las llamadas al sistema que requieren E/S a nivel de bloque pasan definiciones LBA al controlador del dispositivo de almacenamiento; para casos simples (donde un volumen se asigna a una unidad física), este LBA se pasa directamente al controlador de la unidad.

En conjuntos redundantes de dispositivos de discos independientes (RAID) y redes de área de almacenamiento (SAN) y donde las unidades lógicas ( números de unidad lógica , LUN) se componen mediante virtualización y agregación de LUN, el direccionamiento LBA de disco individual debe ser traducido por una capa de software para proporcionar Direccionamiento LBA uniforme para todo el dispositivo de almacenamiento.

BIOS mejorada

El estándar IDE anterior de Western Digital introdujo LBA de 22 bits; En 1994, el estándar ATA-1 permitía direcciones de 28 bits en los modos LBA y CHS. El esquema CHS utilizó 16 bits para cilindro, 4 bits para cabezal y 8 bits para sector, contando sectores del 1 al 255. Esto significa que el número de cabezales informado nunca excede 16 (0-15), el número de sectores puede ser 255 ( 1–255; aunque 63 suele ser el mayor utilizado) y el número de cilindros puede llegar a 65.536 (0–65535), lo que limita el tamaño del disco a 128 GiB (≈137,4 GB), suponiendo sectores de 512 bytes. Se puede acceder a estos valores emitiendo el comando ATA "Identificar dispositivo" ( ECh) a la unidad. [1] :  87

Sin embargo, la implementación del BIOS de IBM definida en las rutinas de acceso al disco INT 13h utilizó un esquema de 24 bits bastante diferente para el direccionamiento CHS, con 10 bits para cilindro, 8 bits para cabeza y 6 bits para sector, o 1024 cilindros, 256 cabezas, y 63 sectores. [2] Esta implementación de INT 13h era anterior al estándar ATA, ya que se introdujo cuando la IBM PC solo tenía almacenamiento en disquete , y cuando se introdujeron las unidades de disco duro en la IBM PC/XT , la interfaz INT 13h no podía ser prácticamente rediseñado debido a problemas de compatibilidad con versiones anteriores . La superposición del mapeo ATA CHS con el mapeo BIOS CHS produjo el mínimo común denominador de 10:4:6 bits, o 1024 cilindros, 16 cabezas y 63 sectores, lo que dio el límite práctico de 1024×16×63 sectores y 528  MB (504  MiB) . ), asumiendo sectores de 512 bytes.

Para que el BIOS supere este límite y funcione exitosamente con discos duros más grandes, se tuvo que implementar un esquema de traducción CHS [ ¿cuándo? ] en las rutinas de E/S del disco BIOS que convertirían entre la numeración CHS de 24 bits utilizada por INT 13h y la numeración CHS de 28 bits utilizada por ATA. El esquema de traducción se denominó traducción grande o por desplazamiento de bits . Este método reasignaría los cilindros y cabezales ATA de 16:4:8 bits al esquema de 10:8:6 bits utilizado por INT 13h, generando muchos más cabezales de unidad "virtuales" que los que informó el disco físico. Esto aumentó el límite práctico a 1024×256×63 sectores, o 8,4 GB (7,8  GiB ). 

Para superar aún más este límite, se introdujeron extensiones INT 13h [ ¿cuándo? ] con BIOS Enhanced Disk Drive Services , que eliminó los límites prácticos en el tamaño del disco para los sistemas operativos que conocen esta nueva interfaz, como el componente DOS 7.0 en Windows 95 . Este subsistema BIOS mejorado admite el direccionamiento LBA con LBA o método asistido por LBA , que utiliza LBA nativo de 28 bits para direccionar discos ATA y realiza la conversión CHS según sea necesario.

El método normal o ninguno vuelve al modo CHS anterior de 10:4:6 bits que no admite direccionamiento de más de 528  MB.

Instalación de la versión OEM de EZ Drive de Western Digital , en un disquete de 3,5 pulgadas.

Hasta el lanzamiento del estándar ATA-2 en 1996, había un puñado de discos duros grandes que no admitían el direccionamiento LBA, por lo que sólo se podían utilizar métodos grandes o normales . Sin embargo, el uso del método grande también introdujo problemas de portabilidad, ya que diferentes BIOS a menudo usaban métodos de traducción diferentes e incompatibles, y los discos duros particionados en una computadora con un BIOS de un proveedor en particular a menudo no se podían leer en una computadora con una marca diferente de BIOS. . La solución fue utilizar software de conversión como OnTrack Disk Manager , Micro House EZ-Drive/EZ-BIOS, etc., que se instalaba en el cargador del sistema operativo del disco y reemplazaba las rutinas INT 13h en el momento del arranque con código personalizado. Este software también podría habilitar la compatibilidad con las extensiones LBA e INT 13h para computadoras más antiguas con BIOS que no son compatibles con LBA.

Traducción asistida por LBA

Cuando el BIOS está configurado para usar un disco en modo de traducción asistida por LBA, el BIOS accede al hardware usando el modo LBA, pero también presenta una geometría CHS traducida a través de la interfaz INT 13h. La cantidad de cilindros, culatas y sectores en la geometría trasladada depende del tamaño total del disco, como se muestra en la siguiente tabla. [3]

LBA48

El esquema LBA actual de 48 bits se introdujo en 2002 con el estándar ATA-6 , [4] elevando el límite de direccionamiento a 2 48  × 512 bytes, que es exactamente 128 PiB o aproximadamente 144 PB . Las computadoras actuales compatibles con PC admiten extensiones INT 13h, que usan estructuras de 64 bits para el direccionamiento LBA y deberían abarcar cualquier extensión futura del direccionamiento LBA, aunque los sistemas operativos modernos implementan acceso directo al disco y no usan los subsistemas BIOS , excepto en el momento de la carga del arranque. . Sin embargo, la tabla de particiones Master Boot Record (MBR) de estilo DOS común solo admite particiones de disco de hasta 2 TiB de tamaño. Para particiones más grandes, esto debe reemplazarse por otro esquema, por ejemplo, la tabla de particiones GUID (GPT), que tiene el mismo límite de 64 bits que las extensiones INT 13h actuales. Se sabe que Windows XP SP2 es compatible con LBA48 (y está habilitado de forma predeterminada).   

Conversión CHS

En el esquema de direccionamiento LBA, los sectores se numeran como índices enteros; cuando se asigna a tuplas CHS ( cilindro-culata-sector ) , la numeración LBA comienza con el primer cilindro, la primera culata y el primer sector de la pista. Una vez agotada la pista, la numeración continúa hasta la segunda cabeza, permaneciendo dentro del primer cilindro. Una vez que se agotan todas las cabezas dentro del primer cilindro, la numeración continúa desde el segundo cilindro, etc. Por lo tanto, cuanto menor sea el valor LBA, más cerca estará el sector físico del primer cilindro del disco duro (es decir, el más externo [5] ).

Las tuplas CHS se pueden asignar a la dirección LBA con la siguiente fórmula: [6] [7]

LBA = ( C × HPC + H ) × SPT + (S − 1)

dónde

Las direcciones LBA se pueden asignar a tuplas CHS con la siguiente fórmula ("mod" es la operación de módulo , es decir, el resto , y "÷" es la división entera , es decir, el cociente de la división donde se descarta cualquier parte fraccionaria):

C = LBA ÷ ( HPC × SPT )
H = ( LBA ÷ SPT ) mod HPC
S = ( LBA mod SPT ) + 1

Según las especificaciones ATA, "Si el contenido de las palabras (61:60) es mayor o igual a 16.514.064, entonces el contenido de la palabra 1 [el número de cilindros lógicos] será igual a 16.383". [1] :  20 Por lo tanto, para LBA 16450559, una unidad ATA en realidad puede responder con la tupla CHS (16319, 15, 63), y la cantidad de cilindros en este esquema debe ser mucho mayor que los 1024 permitidos por INT 13h. [a]

Dependencias del sistema operativo

Los sistemas operativos que son sensibles a la geometría de la unidad informada por BIOS incluyen Solaris , DOS y la familia Windows NT, donde NTLDR ( NT , 2000 , XP , Server 2003 ) o WINLOAD ( Vista , Server 2008 , Windows 7 y Server 2008 R2 ) utilizan el arranque maestro . registro que direcciona el disco usando CHS; Las versiones x86-64 e Itanium de Windows pueden particionar la unidad con la tabla de particiones GUID que utiliza direccionamiento LBA.

Algunos sistemas operativos no requieren ninguna traducción porque no utilizan la geometría proporcionada por el BIOS en sus cargadores de arranque . Entre estos sistemas operativos se encuentran BSD , Linux , macOS , OS/2 y ReactOS .

Ver también

Notas

  1. ^ Aunque el direccionamiento CHS definitivamente utiliza el concepto matemático de tupla , también puede considerarse un ejemplo del esquema general llamado base mixta al considerar que sus cilindros, cabezas y sectores tienen diferentes bases numéricas; por ejemplo, cilindros contando de 0 a 1023, cabezas de 0 a 254 y sectores de 1 a 63.

Referencias

  1. ^ ab "Tecnología de la información - Accesorio AT con interfaz de paquetes - 5 (ATA/ATAPI-5)" (PDF) . www.t13.org . 29 de febrero de 2000. Archivado desde el original (PDF) el 6 de agosto de 2020 . Consultado el 15 de diciembre de 2020 .
  2. ^ "KB224526: Windows NT 4.0 admite un máximo de partición del sistema de 7,8 GB". Soporte.microsoft.com. 2007-02-23 . Consultado el 30 de julio de 2013 .
  3. ^ Steunebrink, enero. "Las limitaciones del disco duro IDE del BIOS". Archivado desde el original el 6 de octubre de 2013 . Consultado el 6 de octubre de 2013 .
  4. ^ "Tecnología de la información - Accesorio AT con interfaz de paquetes - 6 (ATA/ATAPI-6)" (PDF) . www.t13.org . 26 de febrero de 2002. Archivado desde el original (PDF) el 6 de agosto de 2020 . Consultado el 15 de diciembre de 2020 .
  5. ^ "Conceptos básicos de la unidad de disco duro". active-undelete.com . Consultado el 10 de febrero de 2015 . Los números de pista comienzan en 0 y la pista 0 es la pista más externa del disco. La pista con el número más alto está al lado del eje.
  6. ^ "CÓMO sobre discos grandes, sección 3. Acceso al disco". tldp.org . 2004-11-08 . Consultado el 10 de febrero de 2015 .
  7. ^ "Las fórmulas de conversión de CHS a LBA". pcrepairclass.tripod.com . Consultado el 26 de agosto de 2014 .

enlaces externos