Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When the number of possible RAM adresses is limited by the computer architecture (32/64 bit), why isn't the size of the hard disk limited?

Or is it limited? If yes, what would be the highest possible size of a hard-disk for a 32-bit computer?

How are the adresses of hard-disks handled then?

share|improve this question

migrated from stackoverflow.com Mar 26 '10 at 15:39

This question came from our site for professional and enthusiast programmers.

3 Answers 3

HDs are addressed by a cylinder-head-sector hierarchy. Interestingly, the more current. logical form of addressing, called LBA has been extended over the years to support larger and larger sizes. It's explained here in detail.

What is limited, however, is file sizes. Such limits can be found for the respective file systems (FAT32, NTFS, etc.)

share|improve this answer
    
File sizes in NTFS are not really limited in terms of realizable capacity. A volume in NTFS can be up to 2 to the 64th bytes in size, and a file can be that large as well. So I don't think you'll be bumping into that limit soon. –  Jamie Hanrahan Nov 16 at 1:33

RAM is directly mapped into the processor's address/data bus. Hard drives are not. They interface to a disk controller (IDE, SATA, SCSI, etc). The disk controller copies data to/from RAM in smaller blocks where the CPU works with it.

Disk Controllers have their own addressing schemes (usually based on the Cylinders, Heads, and Sectors of disk). They have been subject to various limitations over the years. Typically these tend to be limitations in the operating system and BIOS, not so much in the hardware.

A good example of a hard disk addressing limit would be the 48-bit LBA issue: http://support.microsoft.com/kb/303013

share|improve this answer

Hard disks sizes are limited by the number of bits used in the cylinder/head/sector. In the distant past (ie 10years ago) you had to go to all sorts of lengths to remap CHS and extended LBA schemes so you could use a drive larger than 32mb than larger than 512Mb etc

Filesizes are limited by the number of bits used to specify the size. In FAT32 it's 32bits and so 4Gb files, in NTFS it's 64bits so very-very-very huge files (18Exabytes?). Sun's ZFS can store files of 256 pebi-zebibytes which is probably more than there are atoms to make the disk out of.

This is possible because disks are so much slower than memory it's not a problem to store a size in number longer than 32bits because the time needed by the CPU to read the parts of the number and add them together is so much less than the access time.
You could do this for memory and have a 64bit address space on a 32bit machine by storing each address in two values - it would be slow, but it's what we had to do to address 64K of memory on an 8bit machine.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.