Direccionamiento de bloques lógicos

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Sistema común utilizado para especificar la ubicación de bloques de datos almacenados en dispositivos de almacenamiento de computadora
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 computadoras, generalmente sistemas de almacenamiento secundarios como el disco duro. unidades. 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 suele 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 fue el esquema de sector de culata (CHS), donde 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 de 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 se introdujo por primera vez en SCSI como una abstracción. Si bien el controlador de la unidad aún direcciona 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 duro "sin procesar". disco. 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 matrices 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 traducirse mediante un software. capa para proporcionar un direccionamiento LBA uniforme para todo el dispositivo de almacenamiento.

BIOS mejorada

(feminine)

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 es a menudo 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) al variador.

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 el cilindro, 8 bits para el cabezal y 6 bits para el sector, o 1024 cilindros. 256 cabezas y 63 sectores. 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 prácticamente no se pudo rediseñar 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 cabezales y 63 sectores, lo que dio el límite práctico de 1024×16×63 sectores y 528 MB (504 MiB), suponiendo sectores de 512 bytes.

Para que el BIOS supere este límite y funcione correctamente con discos duros más grandes, se tuvo que implementar un esquema de traducción CHS en las rutinas de E/S del disco del BIOS que convertiría entre CHS de 24 bits utilizado por INT 13h y 28 Numeración CHS de bits utilizada por ATA. El esquema de traducción se denominó grande o traducción 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 mucho más control "virtual" cabezales de unidad que el disco físico reportado. 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 con los servicios de unidad de disco mejorados del BIOS, que eliminaron 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 el método LBA o 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 none vuelve al modo CHS anterior de 10:4:6 bits que no admite direccionamiento a más de 528 MB.

Instalación de la versión OEM de Western Digital EZ DriveEn 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 soportaban el direccionamiento LBA, por lo que sólo los métodos grandes o normales podían ser usado. 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 un 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.

Tamaño del discoSectores/trackHeadsCilindros
1 ≤ 504 MiB6316X ÷ (63 × 16 × 512)
504 MiB6332X ÷ (63 × 32 × 512)
1008 MiB seccionó X ≤ 2016 MiB6364X ÷ (63 × 64 × 512)
2016 MiB se realizó X ≤ 4032 MiB63128X ÷ (63 × 128 × 512)
4032 MiB63255X ÷ (63 × 255 × 512)

LBA48

El esquema LBA actual de 48 bits se introdujo en 2002 con el estándar ATA-6, elevando el límite de direccionamiento a 248 × 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 el 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.

Conversión CHS

LBA y CHS equivalencia con 16 cabezas por cilindro
Valor LBACHS tuple
0 0, 0, 1
1 0, 0, 2
2 0, 0, 3
62 0, 0, 63
63 0, 1, 1
945 0, 15, 1
1007 0, 15, 63
1008 1, 0, 1
1070 1, 0, 63
1071 1, 1, 1
1133 1, 63
1134 1, 2, 1
2015 1, 15, 63
2016 2, 0, 1
16.127 15, 15, 63
16.128 16, 0, 1
32.255 31, 15, 63
32.256 32, 0, 1
16.450.559 16319, 15, 63
16.514.063 16382, 15, 63

En el esquema de direccionamiento LBA, los sectores se numeran como índices enteros; cuando se asigna a tuplas CHS (sector de culata), 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 (es decir, el más externo) del disco duro..

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

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

dónde

  • C, H y S son el número de cilindro, el número de cabeza, y el número de sector
  • LBA es la dirección lógica del bloque
  • HPC es el número máximo de cabezas por cilindro (reportado por unidad de disco, típicamente 16 para LBA de 28 bits)
  • SPT es el número máximo de sectores por pista (reportado por unidad de disco, típicamente 63 por 28 bits LBA)

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 de enteros, es decir, el cociente de la división donde se descarta cualquier parte fraccionaria):

C = LBA.HPC × SPT)
H =LBA. SPTMod 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". " Por lo tanto, para LBA 16450559, una unidad ATA 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.

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) use el registro de arranque maestro 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 informada por el BIOS en sus cargadores de arranque. Entre estos sistemas operativos se encuentran BSD, Linux, macOS, OS/2 y ReactOS.

Contenido relacionado

Ultrajuegos

Ultra Software Corporation era una corporación fantasma y un sello editorial creado en 1988 como una subsidiaria de Konami of America, en un esfuerzo por...

Fáser

Phaser puede referirse...

Submarino clase A

Submarino clase A puede referirse a una de estas clases de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save