Cylinder-head-sector
Early 3D addressing method for hard disk data blocks.
Before hard drives had built-in controllers, the operating system had to know the exact physical layout of the disk to find data. The cylinder-head-sector (CHS) system was the early method used for this, addressing each block of data with three coordinates: head, cylinder, and sector. The head picks a specific circular surface—one side of a platter. The cylinder is a vertical slice through the stack of platters, centered on the spindle. Together, the cylinder and head define a circular strip of data blocks called a track. The sector then picks one block within that track, since each track is split into equal arcs, each spanning 360 degrees divided by the number of sectors in that track.
Because early drives lacked an embedded controller, a separate generic controller card required the operating system to know the drive's exact physical geometry to address blocks correctly. The traditional limits of this system were 512 bytes per sector, 63 sectors per track, 255 heads (tracks per cylinder), and 1024 cylinders, capping total disk capacity at 8032.5 MiB. As drive geometries grew more complex—with innovations like zone bit recording—and capacities increased, CHS became restrictive. From the late 1980s, hard drives shipped with embedded controllers that knew the real geometry but reported a fake one to the computer, such as more heads than actually existed, to expand the addressable space. These logical CHS values were translated by the controller, so CHS no longer matched any physical attributes of the drive.
By the mid-1990s, hard drive interfaces had replaced CHS with logical block addressing (LBA). However, tools for editing the master boot record (MBR) partition table still aligned partitions to cylinder boundaries, so CHS artifacts persisted in partitioning software into the late 2000s. In the early 2010s, MBR's disk size limits became problematic, leading to the GUID Partition Table (GPT) as a replacement. GPT no longer uses CHS except in a protective MBR.
Sectors are the smallest addressable unit. Floppy disks and controllers used physical sector sizes of 128, 256, 512, and 1024 bytes, but 512-byte sectors became dominant in the 1980s. Most hard disks today still use 512-byte sectors, though some non-IBM-compatible machines used 520-byte sectors, and in 2005 some Seagate drives used 1024-byte sectors.
- Traditional chs limit
- 512 bytes/sector × 63 sectors/track × 255 heads × 1024 cylinders = 8032.5 MiB
- Bios interrupt 13h bits
- 24 bits (10 for cylinders, 8 for heads, 6 for sectors)
- Max chs address (24-bit)
- 1023/255/63
- 28-bit chs limit (eide/ata-2)
- 65536 cylinders × 16 heads × 255 sectors = ~128 GB (130560 MiB with 512-byte sectors)
- Combined bios/ata limit
- 1024 cylinders × 16 heads × 63 sectors = 504 MiB (with 512-byte sectors)
- Standard logical cylinder size
- 16065 sectors (255 × 63)
Lore & Background
CHS addresses were exposed, instead of simple linear addresses, because early hard drives didn't come with an embedded disk controller that would hide the physical layout. A separate generic controller card was used, so that the operating system had to know the exact physical geometry of the specific drive attached to the controller, to correctly address data blocks. The traditional limits were 512 bytes/sector × 63 sectors/track × 255 heads (tracks/cylinder) × 1024 cylinders, resulting in a limit of 8032.5 MiB for the total capacity of a disk.
As geometry became more complicated (for example, with the introduction of zone bit recording) and drive sizes grew over time, the CHS addressing method became restrictive. Since the late 1980s, hard drives began shipping with an embedded disk controller that had good knowledge of the physical geometry; they would however report a false geometry to the computer, e.g., a larger number of heads than actually present, to gain more addressable space. These logical CHS values would be translated by the controller, thus CHS addressing no longer corresponded to any physical attributes of the drive.
By the mid-1990s, hard drive interfaces replaced the CHS scheme with logical block addressing (LBA), but many tools for manipulating the master boot record (MBR) partition table still aligned partitions to cylinder boundaries; thus, artifacts of CHS addressing were still seen in partitioning software by the late 2000s. In the early 2010s, the disk size limitations imposed by MBR became problematic and the GUID Partition Table (GPT) was designed as a replacement. GPT does not use CHS anymore except in Protective MBR.
Reader's Guide
CHS addressing is the process of identifying individual sectors on a disk by their position in a track, where the track is determined by the head and cylinder numbers. The terms are explained bottom up: for disk addressing the sector is the smallest unit. Disk controllers can introduce address translations to map logical to physical positions, e.g., zone bit recording stores fewer sectors in shorter (inner) tracks, physical disk formats are not necessarily cylindrical, and sector numbers in a track can be skewed.
In CHS addressing the sector numbers always start at 1; there is no sector 0. For physical disk geometries the maximal sector number is determined by the low level format of the disk. However, for disk access with the BIOS of IBM PC compatible machines, the sector number was encoded in six bits, resulting in a maximal number of 63 sectors per track. This maximum is still in use for virtual CHS geometries.
The CHS addressing supported in IBM-PC compatible BIOSes code used eight bits for a maximum of 256 heads counted as head 0 up to 255. However, a bug in all versions of MS-DOS / IBM PC DOS up to and including 7.10 will cause these operating systems to crash on boot when encountering volumes with 256 heads. Therefore, all compatible BIOSes will use mappings with up to 255 heads only, including in virtual 255×63 geometries. This historical oddity can affect the maximum disk size: 512×63×255×1024 = 8032.5 MiB, but actually 512×63×256×1024 = 8064 MiB yields what is known as the 8 GB limit.
Did You Know?
- A bug in MS-DOS/PC DOS up to version 7.10 causes a crash on boot when encountering volumes with 256 heads.
- The traditional CHS limit is 512 bytes/sector × 63 sectors/track × 255 heads × 1024 cylinders = 8032.5 MiB.
Frequently Asked Questions
What is Cylinder-head-sector (CHS)?
CHS was the original scheme the operating system used to pinpoint data on a hard drive before drives shipped with their own onboard controllers. It identified every block with three physical coordinates: which platter surface (head), which vertical ring around the spindle (cylinder), and which segment within that ring (sector).
How does Cylinder-head-sector actually locate a single data block?
The head number selects one circular surface on a platter, the cylinder number picks the vertical ring that passes through all platters at the same radius, and the sector number isolates one block within that circular track. Together the three values give the drive a precise physical spot to read or write.
What was the hard capacity ceiling of Cylinder-head-sector?
With the classic 24-bit BIOS encoding—10 bits for cylinders, 8 for heads, and 6 for sectors—the maximum addressable space worked out to 1024 × 255 × 63 sectors of 512 bytes, or roughly 8,032.5 MiB. That ceiling is the main reason the industry shifted toward Logical Block Addressing.
What is the '504 MiB wall' that fans keep mentioning?
It arises from the overlap of the BIOS 13h limits (1024 cylinders, 63 sectors) and the early ATA limit of 16 heads, capping a drive at 1024 × 16 × 63 × 512 bytes, about 504 MiB. Drives larger than that required translation layers or the newer 28-bit EIDE/ATA-2 scheme to be fully usable.
Why do people still discuss Cylinder-head-sector decades after LBA replaced it?
Many BIOSes, firmware utilities, and diagnostic tools still surface CHS values because the legacy interrupt 13h interface and the 16,065-sector logical-cylinder convention are baked into decades of existing software. Grasping CHS also explains why older systems hit odd size walls and why a flat sequential addressing scheme was eventually needed.
More in Computer Storage 1-24
Spotted an error? Know more?
Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced
