-
Notifications
You must be signed in to change notification settings - Fork 67
Storage Capacity and Performance
A common source of both confusion and frustration is how device manufacturers and consumers understand storage capacities.
There are multiple layers to this issue that this page will go through, however is can be summarized in differences between base 10 and base 2 number systems.
-
bit
- smallest unit of information in the binary number system. Values are either zero (0) or one (1) -
byte
- a sequence of eight contiguous bits considered as a unit -
gigabytes
- 1000000000 bytes -
gibibytes
- 1073741824 bytes
Unit | Bytes | Meaning |
---|---|---|
b | N/A | bit or bits |
B | 1 | Byte or bytes |
KB | 10^3 | Kilobyte |
KiB | 2^10 | Kibibytes |
MB | 10^3 | Megabyte |
MiB | 2^10 | Mebibytes |
GB | 10^9 | Gigabytes |
GiB | 2^30 | Gibibytes |
TB | 10^12 | Terabytes |
TiB | 2^40 | Tebibytes |
PB | 10^15 | Petabytes |
PiB | 2^50 | Pebibytes |
EB | 10^18 | Exabytes |
EiB | 2^60 | Exbibytes |
ZB | 10^21 | Zetabytes |
ZiB | 2^70 | Zebibytes |
As seen in the table above there are differences in base 10 and base 2 units and how many bytes they represent. Another way to describe the differences is the difference between Metric units most people are familiar with and binary units that only show up in computer systems and are less familiar.
There are some standards and operating systems that will use units without i
to represent what is described by the units with i
. This is very confusing which is why standards committees such as IEC and JEDEC have both attempted to solve this with the units that include i
.
Be aware that all speeds are described as maximums, not minimums. This is the maximum possible speed that can be achieved in perfect conditions.
Unit | Meaning |
---|---|
Kb/s | Kilobits per second |
KB/s | Kilobytes per second |
KiB/s | Kibibytes per second |
Mb/s | Megabits per second |
MB/s | Megabytes per second |
MiB/s | Mebibytes per second |
Gb/s | Gigabytes per second |
GB/s | Gigabytes per second |
GiB/s | Gibibytes per second |
IOPS | Input/Outputs per second |
A common source of confusion is the difference between little b
and bit B
in these units. One describes a number of bits
transmitted per second and the other describes a number of bytes
transmitted per second.
With the definition of a byte as eight bits, the relationship between little b
and bit B
is a factor of 8.
b
to B
: Divide by 8
B
to b
: Multiply by 8
While eight bits per byte is common in data storage, it is possible for some systems to use other definitions. It is rare to find other definitions of a byte, but it does exist in the world!
It is important to note that sometimes transfer rates are also described using the same binary (i
) units in some cases
IOPS
is used to describe how many commands (reads/writes) can be serviced by a device per second.
With the differences in units described above, this often brings up what is the reason storage device manufacturers use the units that they do and how is a capacity point decided?
Today the storage industry standardizes capacity points based off of SFF-8447 which includes formulas on calculating from an advertised capacity to a number of logical blocks the device supports.
Prior to SFF-8447 was the LBA-02 and LBA-01 specification from IDEMA. This was an effort started when drives were launching at the 320GB point, however may only have been implemented by manufacturers starting after this capacity launch due to timing on these early standards.
The IDEMA standards were started as different storage manufacturers may advertise a given capacity but the device supported a different total number of blocks. There was no standard definition on how a storage vendor would advertise something like "80GB" so they all decided on their own.
This led to confusion for consumers as it would appear that different vendors had different "usable capacities" although that term has since been repurposed for the unit conversion first talked about on this page.
The biggest change with SFF-8447 was taking into account differences in LBA counts for drives with different sector sizes beyond 512B, support for PI (Protection Information) capacities as well as some other uncommon sector sizes used in some enterprise applications. This also helped the device manufacturers better optimize their firmware and allows customers to easily replace drives of the same capacity even changing vendors without data loss or other issues that could arise by differences on old devices.