stringtranslate.com

Sector de culata

Cilindro, cabezal y sector de un disco duro.

El sector de culata ( CHS ) es un método temprano para dar direcciones a cada bloque físico de datos en una unidad de disco duro .

Es un sistema de coordenadas 3D formado por un cabezal de coordenadas verticales , un cilindro de coordenadas horizontales (o radiales) y un sector de coordenadas angulares . El cabezal selecciona una superficie circular: un plato en el disco (y uno de sus dos lados). El cilindro es una intersección cilíndrica a través de la pila de platos en un disco, centrada alrededor del eje del disco. Combinados, el cilindro y el cabezal se intersecan en una línea circular, o más precisamente: una tira circular de bloques de datos físicos llamada pista . El sector finalmente selecciona qué bloque de datos en esta pista se va a abordar, ya que la pista se subdivide en varias porciones de igual tamaño, cada una de las cuales es un arco de (360/n) grados, donde n es el número de sectores en la pista.

Se expusieron las direcciones CHS, en lugar de direcciones lineales simples (que van desde 0 hasta el recuento total de bloques en el disco - 1 ), porque los primeros discos duros no venían con un controlador de disco incorporado , que ocultaría la disposición física. Se utilizó una tarjeta controladora genérica separada, de modo que el sistema operativo tenía que conocer la "geometría" física exacta de la unidad específica conectada al controlador, para direccionar correctamente los bloques de datos. Los límites tradicionales eran 512 bytes/sector × 63 sectores/pista × 255 cabezales (pistas/cilindro) × 1024 cilindros, lo que resultaba en un límite de 8032,5 MiB para la capacidad total de un disco.

A medida que la geometría se volvió más complicada (por ejemplo, con la introducción de la grabación de bits de zona ) y los tamaños de las unidades crecieron con el tiempo, el método de direccionamiento CHS se volvió restrictivo. Desde fines de la década de 1980, los discos duros comenzaron a enviarse con un controlador de disco incorporado [1] que tenía un buen conocimiento de la geometría física; sin embargo, informarían una geometría falsa a la computadora, por ejemplo, una cantidad mayor de cabezales de los realmente presentes, para ganar más espacio direccionable. Estos valores CHS lógicos serían traducidos por el controlador, por lo que el direccionamiento CHS ya no se correspondía con ningún atributo físico de la unidad. [2]

A mediados de la década de 1990, las interfaces de disco duro reemplazaron el esquema CHS con direccionamiento de bloque lógico (LBA), pero muchas herramientas para manipular la tabla de particiones del registro de arranque maestro (MBR) todavía alineaban las particiones con los límites de los cilindros; por lo tanto, los artefactos de direccionamiento CHS todavía se veían en el software de particionamiento a fines de la década de 2000. [2]

A principios de la década de 2010, las limitaciones de tamaño de disco impuestas por MBR se volvieron problemáticas y se diseñó la tabla de particiones GUID (GPT) como reemplazo; las computadoras modernas que usan firmware UEFI sin soporte MBR ya no usan ninguna noción de direccionamiento CHS.

Definiciones

Esquema de la geometría del disco duro.

El direccionamiento CHS es el proceso de identificar sectores individuales (también conocidos como bloques físicos de datos) en un disco por su posición en una pista, donde la pista está determinada por los números de cabezal y cilindro. Los términos se explican de abajo a arriba; para el direccionamiento de discos, el sector es la unidad más pequeña. Los controladores de disco pueden introducir traducciones de direcciones para asignar posiciones lógicas a físicas, por ejemplo, la grabación de bits de zona almacena menos sectores en pistas más cortas (internas), los formatos de disco físicos no son necesariamente cilíndricos y los números de sector en una pista pueden estar sesgados.

Sectores

Los disquetes y controladores habían utilizado tamaños de sectores físicos de 128, 256, 512 y 1024 bytes (por ejemplo, PC/AX), pero los formatos con 512 bytes por sector físico se volvieron dominantes en la década de 1980. [3] [4]

El tamaño de sector físico más común para los discos duros en la actualidad es de 512 bytes, pero también ha habido discos duros con 520 bytes por sector para máquinas no compatibles con IBM. En 2005, algunos discos duros personalizados de Seagate usaban tamaños de sector de 1024 bytes por sector. Los discos duros de formato avanzado usan 4096 bytes por sector físico ( 4Kn ) [5] desde 2010, pero también podrán emular sectores de 512 bytes ( 512e ) durante un período de transición. [6]

Las unidades magneto-ópticas utilizan tamaños de sector de 512 y 1024 bytes en unidades de 5,25 pulgadas y 512 y 2048 bytes en unidades de 3,5 pulgadas.

En el direccionamiento CHS, los números de sector siempre comienzan en 1 , no hay sector 0 , [1] lo que puede generar confusión ya que los esquemas de direccionamiento de sector lógico normalmente comienzan a contar con 0, por ejemplo, el direccionamiento de bloque lógico (LBA) o el "direccionamiento de sector relativo" utilizado en DOS.

En el caso de las geometrías de discos físicos, el número máximo de sectores está determinado por el formato de bajo nivel del disco. Sin embargo, para el acceso al disco con el BIOS de las máquinas compatibles con IBM-PC, el número de sectores se codificó en seis bits, lo que dio como resultado un número máximo de 111111 (63) sectores por pista. Este máximo todavía se utiliza para las geometrías CHS virtuales.

Pistas

Las pistas son delgadas tiras circulares concéntricas de sectores. Se requiere al menos un cabezal para leer una sola pista. Con respecto a las geometrías de los discos, los términos pista y cilindro están estrechamente relacionados. Para un disquete de una o dos caras, el término común es pista; y para más de dos cabezales , el término común es cilindro . Estrictamente hablando, una pista es una combinación dada que consta de sectores, mientras que un cilindro consta de sectores.CHSPTSPT×H

Cilindros

Un cilindro es una división de datos en una unidad de disco , como se utiliza en el modo de direccionamiento CHS de un disco de arquitectura de bloque fijo o el modo de direccionamiento cilindro-cabeza-registro (CCHHR) de un disco CKD .

El concepto consiste en cortar porciones cilíndricas huecas y concéntricas de los discos físicos ( platos ), recogiendo las pistas circulares respectivas alineadas a través de la pila de platos. La cantidad de cilindros de una unidad de disco es exactamente igual a la cantidad de pistas en una sola superficie de la unidad. Comprende el mismo número de pista en cada plato, abarcando todas esas pistas en cada superficie del plato que pueda almacenar datos (sin importar si la pista es "mala" o no). Los cilindros están formados verticalmente por pistas . En otras palabras, la pista 12 en el plato 0 más la pista 12 en el plato 1, etc. es el cilindro 12.

Otras formas de dispositivo de almacenamiento de acceso directo (DASD), como los dispositivos de memoria de tambor o la celda de datos IBM 2321 , pueden proporcionar direcciones de bloques que incluyen una dirección de cilindro, aunque la dirección de cilindro no selecciona una porción cilíndrica (geométrica) del dispositivo.

Cabezas

Un dispositivo llamado cabezal lee y escribe datos en un disco duro manipulando el medio magnético que compone la superficie de un plato de disco asociado. Naturalmente, un plato tiene dos lados y, por lo tanto, dos superficies en las que se pueden manipular los datos; por lo general, hay dos cabezales por plato, uno por lado. (A veces, el término lado se sustituye por cabezal, ya que los platos pueden estar separados de sus conjuntos de cabezales, como sucede con los medios extraíbles de una unidad de disquete ).

El direccionamiento admitido en el código de las BIOS compatibles con IBM-PC utilizaba ocho bits para un máximo de 256 cabezales contados como cabezal 0 hasta 255 ( ). Sin embargo, un error en todas las versiones de Microsoft DOS / IBM PC DOS hasta la 7.10 inclusive hará que estos sistemas operativos se bloqueen al iniciarse cuando encuentren volúmenes con 256 cabezales [2] . Por lo tanto, todas las BIOS compatibles utilizarán asignaciones con hasta 255 cabezales ( ) únicamente, incluso en geometrías virtuales .CHSFFh00h..FEh255×63

Esta rareza histórica puede afectar el tamaño máximo del disco en el antiguo código BIOS INT 13h , así como en los antiguos PC DOS o sistemas operativos similares:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 MB , pero en realidad 512×63×256×1024=8064 MB produce lo que se conoce como límite de 8  GB . [7] En este contexto, la definición relevante de 8  GB = 8192  MB es otro límite incorrecto, porque requeriría CHS 512×64×256con 64 sectores por pista.

Las pistas y los cilindros se cuentan desde 0, es decir, la pista 0 es la primera pista (la más externa) en disquetes u otros discos cilíndricos. El código BIOS antiguo admitía diez bits en el direccionamiento CHS con hasta 1024 cilindros ( ). Agregar seis bits para sectores y ocho bits para cabezales da como resultado los 24 bits admitidos por la interrupción BIOS 13h . Restar el número de sector no permitido 0 en las pistas corresponde a 128  MB para un tamaño de sector de 512 bytes ( ); y confirma el límite (aproximadamente) de 8  GB . [8]1024=2101024×256128 MB=1024×256×(512 byte/sector)8192-128=8064

El direccionamiento CHS comienza 0/0/1con un valor máximo 1023/255/63para 24=10+8+6bits, o 1023/254/63para 24 bits limitado a 255 cabezas. Los valores CHS utilizados para especificar la geometría de un disco tienen que contar el cilindro 0 y la cabeza 0, lo que da como resultado un máximo ( 1024/256/63o) 1024/255/63para 24 bits con (256 o) 255 cabezas. En las tuplas CHS que especifican una geometría, S en realidad significa sectores por pista, y donde la geometría (virtual) aún coincide con la capacidad que el disco contiene C×H×Ssectores. A medida que se han utilizado discos duros más grandes, un cilindro se ha convertido también en una estructura de disco lógica, estandarizada [ cita requerida ] en 16 065 sectores ( 16065=255×63).

El direccionamiento CHS con 28 bits ( EIDE y ATA-2 ) permite ocho bits para sectores que aún comienzan en 1, es decir, sectores 1...255, cuatro bits para cabezas 0...15 y dieciséis bits para cilindros 0...65535. [9] Esto da como resultado un límite de aproximadamente 128  GB65536×16×255=267386880 ; en realidad sectores correspondientes a 130560  MB para un tamaño de sector de 512 bytes. [7] Los 28=16+4+8bits en la especificación ATA-2 también están cubiertos por la Lista de interrupciones de Ralf Brown , y se publicó un antiguo borrador de trabajo de este estándar ahora expirado. [10]

Con un límite de BIOS antiguo de 1024 cilindros y el límite de ATA de 16 cabezas [11], el efecto combinado fueron 1024×16×63=1032192los sectores, es decir, un límite de 504  MB para un tamaño de sector de 512. Los esquemas de traducción de BIOS conocidos como ECHS y ECHS revisado mitigaron esta limitación al usar 128 o 240 en lugar de 16 cabezas, reduciendo simultáneamente la cantidad de cilindros y sectores que caben 1024/128/63(límite de ECHS: 4032  MB ) o 1024/240/63(límite de ECHS revisado: 7560 MB) para la cantidad total dada de sectores en un disco. [7]

Bloques y clusters

Las comunidades Unix emplean el término bloque para referirse a un sector o grupo de sectores. Por ejemplo, la utilidad fdisk de Linux , antes de la versión 2.25, [12] mostraba los tamaños de las particiones utilizando bloques de 1024 bytes .

Los clústeres son unidades de asignación de datos en varios sistemas de archivos ( FAT , NTFS , etc.), donde los datos consisten principalmente en archivos. Los clústeres no se ven afectados directamente por la geometría física o virtual del disco, es decir, un clúster puede comenzar en un sector cerca del final de una pista determinada y terminar en un sector en la pista física o lógicamente siguiente.CHCH

Mapeo de CHS a LBA

En 2002, la especificación ATA-6 introdujo un direccionamiento de bloque lógico opcional de 48 bits y declaró obsoleto el direccionamiento CHS, pero aún permitía implementar las traducciones ATA-5. [13] Como era de esperar, la fórmula de traducción de CHS a LBA que se muestra a continuación también coincide con la última traducción CHS de ATA-5. En la especificación ATA-5, el soporte de CHS era obligatorio para hasta 16 514 064 sectores y opcional para discos más grandes. El límite ATA-5 corresponde a CHS 16383 16 63o capacidades de disco equivalentes (16514064 = 16383 × 16 × 63 = 1032 × 254 × 63) y requiere 24 = 14 + 4 + 6 bits ( 16383 + 1 = 2 14 ). [14]

Las tuplas CHS se pueden asignar a direcciones LBA utilizando la siguiente fórmula:

donde A es la dirección LBA, N cabezas es el número de cabezas en el disco, N sectores es el número máximo de sectores por pista y ( c , h , s ) es la dirección CHS.

Una fórmula de Número de Sector Lógico en los estándares ECMA -107 [3] e ISO / IEC  9293:1994 [15] (que reemplaza a ISO 9293:1987 [16] ) para sistemas de archivos FAT coincide exactamente con la fórmula LBA dada anteriormente: Dirección de Bloque Lógico y Número de Sector Lógico (LSN) son sinónimos. [3] [15] [16] La fórmula no utiliza el número de cilindros, pero requiere el número de cabezales y el número de sectores por pista en la geometría del disco, porque la misma tupla CHS direcciona diferentes números de sector lógico dependiendo de la geometría.

Ejemplos :

Para la geometría 1020 16 63de un disco con 1028160 sectores, CHS 3 2 1es LBA 3150 = ((3 × 16) + 2) × 63 + (1 – 1) ;
Para la geometría 1008 4 255de un disco con 1028160 sectores, CHS 3 2 1es LBA 3570 = ((3 × 4) + 2) × 255 + (1 – 1)
Para la geometría  64 255 63de un disco con 1028160 sectores, CHS 3 2 1es LBA 48321=((3 × 255) + 2) × 63 + (1 – 1)
Para la geometría 2142 15 32de un disco con 1028160 sectores, CHS 3 2 1es LBA 1504 = ((3 × 15) + 2) × 32 + (1 – 1)

Para ayudar a visualizar la secuenciación de sectores en un modelo LBA lineal, tenga en cuenta lo siguiente:

El primer sector LBA es el sector n.° cero, el mismo sector en un modelo CHS se llama sector n.° uno.
Se cuentan todos los sectores de cada cabezal/pista antes de pasar al siguiente cabezal/pista.
Se cuentan todos los cabezales/pistas del mismo cilindro antes de pasar al siguiente cilindro.
La mitad exterior de un disco duro completo sería la primera mitad de la unidad.

Historia

El formato de registro de culata se ha utilizado en los discos duros Count Key Data (CKD) de los mainframes de IBM desde al menos la década de 1960. Es comparable en gran medida al formato de sector de culata utilizado por los PC, con la excepción de que el tamaño del sector no era fijo, sino que podía variar de una pista a otra en función de las necesidades de cada aplicación. En el uso contemporáneo, la geometría del disco presentada al mainframe es emulada por el firmware de almacenamiento y ya no tiene ninguna relación con la geometría física del disco. [ cita requerida ]

Los discos duros anteriores utilizados en PC, como los discos MFM y RLL , dividían cada cilindro en un número igual de sectores, de modo que los valores CHS coincidieran con las propiedades físicas del disco. Un disco con una tupla CHS de 500 4 32tendría 500 pistas por lado en cada plato, dos platos (4 cabezales) y 32 sectores por pista, con un total de 32 768 000 bytes (31,25  MiB ). [ cita requerida ]

Las unidades ATA/IDE eran mucho más eficientes en el almacenamiento de datos y han reemplazado a las ahora obsoletas unidades MFM y RLL. Utilizan grabación de bits de zona (ZBR), donde el número de sectores que dividen cada pista varía con la ubicación de los grupos de pistas en la superficie del plato. Las pistas más cercanas al borde del plato contienen más bloques de datos que las pistas cercanas al eje, porque hay más espacio físico dentro de una pista dada cerca del borde del plato. Por lo tanto, el esquema de direccionamiento CHS no puede corresponderse directamente con la geometría física de dichas unidades, debido al número variable de sectores por pista para diferentes regiones en un plato. Debido a esto, muchas unidades aún tienen un excedente de sectores (menos de un cilindro de tamaño) al final de la unidad, ya que el número total de sectores rara vez, o nunca, termina en un límite de cilindro. [ cita requerida ]

Se puede configurar una unidad ATA/IDE en el BIOS del sistema con cualquier configuración de cilindros, cabezales y sectores que no exceda la capacidad de la unidad (o del BIOS), ya que la unidad convertirá cualquier valor CHS dado en una dirección real para su configuración de hardware específica. Sin embargo, esto puede causar problemas de compatibilidad. [ cita requerida ]

En sistemas operativos como Microsoft DOS o versiones anteriores de Windows , cada partición debe comenzar y terminar en un límite de cilindro. [ cita requerida ] Solo algunos de los sistemas operativos relativamente modernos (incluido Windows XP) pueden ignorar esta regla, pero hacerlo aún puede causar algunos problemas de compatibilidad, especialmente si el usuario desea realizar un arranque dual en la misma unidad. Microsoft no sigue esta regla con las herramientas de partición de disco internas desde Windows Vista. [17]

Véase también

Referencias

  1. ^ "Descripción general e historia de la interfaz IDE/ATA". The PC Guide . 17 de abril de 2001. Archivado desde el original el 4 de febrero de 2019.
  2. ^ de Jonathan de Boyne Pollard (2011). "El gen en la alineación de particiones de disco" . Consultado el 21 de noviembre de 2022 .
  3. ^ abc "Volumen y estructura de archivos de cartuchos de disco para intercambio de información". Norma ECMA-107 (2.ª ed., junio de 1995) . ECMA . 1995. Consultado el 30 de julio de 2011 .
  4. ^ "Formatos de disquete estándar admitidos por MS-DOS". KB75131 . Microsoft Knowledge Base . 12 de mayo de 2003. Archivado desde el original el 31 de enero de 2009 . Consultado el 4 de junio de 2023 .
  5. ^ "Formato avanzado de Western Digital: comienza la transición al sector 4K". AnandTech . 18 de diciembre de 2009 . Consultado el 29 de julio de 2011 .
  6. ^ "Advanced Format Technology Brief" (PDF) . Hitachi . 2010. p. 1. Archivado desde el original (PDF) el 27 de septiembre de 2011 . Consultado el 1 de agosto de 2011 . La emulación de 512 bytes a veces se denomina 512e
  7. ^ abc Andries Brouwer (1 de noviembre de 2004). "Historia de los límites de BIOS e IDE". Large Disk HOWTO v2.5 . Consultado el 30 de julio de 2011 .
  8. ^ "Windows NT 4.0 admite particiones de sistema de hasta 7,8 GB". Microsoft . 23 de febrero de 2007 . Consultado el 30 de julio de 2011 .
  9. ^ "5K500.B SATA OEM Specification Revision 1.2" (PDF) . Hitachi . 17 de marzo de 2009. pág. 51. Archivado desde el original (PDF) el 27 de septiembre de 2011.
  10. ^ "ATA-2" (PDF) . X3T10/0948D . Anexo AT del Comité Técnico T13 del INCITS . 18 de marzo de 1996. Archivado desde el original (PDF) el 28 de julio de 2011.
  11. ^ "ATA-1" (PDF) . X3T10/791D . Comité Técnico T10 de INCITS sobre Interfaces de Almacenamiento SCSI. 1994. Archivado desde el original (PDF) el 21 de marzo de 2012.
  12. ^ "Notas de la versión Util-linux 2.25". Archivos del núcleo de Linux . Consultado el 24 de marzo de 2016 .
  13. ^ "ATA-6" (PDF) . T13/1410D . Comité Técnico T13 de INCITS sobre Interfaz de Almacenamiento ATA. 2002. p. 22. Archivado desde el original (PDF) el 28 de julio de 2011 . Consultado el 30 de julio de 2011 . En los estándares ATA/ATAPI-5 y anteriores, se definió una traducción CHS. Esta traducción está obsoleta, pero puede implementarse tal como se define en ATA/ATAPI-5.
  14. ^ "ATA-5" (PDF) . T13/1321D . Comité Técnico T13 de INCITS Interfaz de almacenamiento ATA. 2000. p. 19. Archivado desde el original (PDF) el 28 de julio de 2011 . Consultado el 30 de julio de 2011 . Si la capacidad del dispositivo es mayor o igual a un sector y menor o igual a 16.514.064 sectores, entonces el dispositivo deberá soportar la traducción CHS.
  15. ^ ab "Tecnología de la información - Volumen y estructura de archivos de cartuchos de disco para intercambio de información". ISO/IEC 9293:1994 . Catálogo ISO . 1994 . Consultado el 6 de enero de 2012 .
  16. ^ ab "Procesamiento de información - Volumen y estructura de archivos de cartuchos de disco flexibles para intercambio de información". ISO 9293:1987 . Catálogo ISO . 1987 . Consultado el 6 de enero de 2012 .
  17. ^ "KB931760". Soporte técnico de Microsoft Windows XP . Microsoft Knowledge Base . 23 de julio de 2009. Consultado el 30 de julio de 2011 .

Notas

1. ^ Esta regla es válida al menos para todos los formatos en los que los sectores físicos se nombran del 1 en adelante. Sin embargo, hay algunos formatos de disquete extraños (por ejemplo, el formato de 640  KB utilizado por BBC Master 512 con DOS Plus 2.1), en los que el primer sector de una pista se nombra "0" y no "1".
2. ^ Mientras que las computadoras comienzan a contar desde 0, DOS comenzaría a contar desde 1. Para hacer esto, DOS agregaría un 1 al recuento de cabezas antes de mostrarlo en la pantalla. Sin embargo, en lugar de convertir primero el entero sin signo de 8 bits a un tamaño mayor (como un entero de 16 bits), DOS simplemente agregaría el 1. Esto desbordaría un recuento de cabezas de 255 ( ) a 0 ( ) en lugar de los 256 que se esperarían. Esto se solucionó con DOS 8, pero para entonces, se había convertido en un estándar de facto no usar un valor de cabeza de 255.0xFF0x100 & 0xFF = 0x00