More and more bytes.
About the only unchanging thing in the computer industry is change itself. Today’s topic is storage: specifically, how much and what we call it.
Let’s review some size-related terms, as well as a few speed-related terms for good measure.
Become a Patron of Ask Leo! and go ad-free!
The various terms relating to bytes are measurements of storage. Kilobyte, megabyte, gigabyte, terabyte, petabyte, exabyte, zettabyte, and yottabyte are typically used to represent increasing powers of 1024. Hertz and FLOPS are two different measurements of computing speed or power, measuring the input clock speed and ability to process floating point numbers, respectively.
Bytes, bytes, and more bytes
That a byte is 8 bits (where a bit is either a zero or one) is pretty obscure to most, and honestly, not terribly important to general understanding.
A byte usually1 represents one character. The word “supercalifragilisticexpialidocious“, for example, takes 34 bytes of storage, one for each character. The Project Guttenberg plain-text version of The Bible takes 5,218,805 bytes of storage.
A kilo-byte, or kilobyte, is 1024 bytes, “kilo” being the prefix for 1000. Computers like to think in powers of two, so we use 1024. That Bible file, then, is around 5 megabytes.
Each multiple of 1024 has its own term. (This will get controversial, as we’ll see in a moment.)
|Bytes||Common name||Magnitude||Relationship||Correct name|
|1,024||kilobyte (KB)||thousand||1024 bytes (10241)||kibibyte|
|1,048,576||megabyte (MB)||million||1024 kilobytes (10242)||mebibyte|
|1,073,741,824||gigabyte (GB)||billion||1024 megabytes (10243)||gibibyte|
|1,099,511,627,776||terabyte (TB)||trillion||1024 gigabytes (10244)||tebibyte|
|1,125,899,906,842,624||petabyte (PB)||quadrillion||1024 terabytes (10245)||pebibyte|
|1,152,921,504,606,846,976||exabyte (EB)||quintillion||1024 petabytes (10246)||exbibyte|
|1,180,591,620,717,411,303,424||zettabyte (ZB)||sextillion||1024 exabytes (10247)||zebibyte|
|1,208,925,819,614,629,174,706,176||yottabyte (YB)||septillion||1024 zettabytes (10248)||yobibyte|
Note that I have both a “common name” and “correct name” column.
Here’s the controversy: “common name” is the name we all tend to use. If you remember only one, remember this column.
Technically, however, these names refer specifically to powers of 1000, not powers of 1024, as you see listed above. Very technically, a megabyte is exactly 1 million bytes, but we all use it to mean 1,048,576 bytes. The “correct name” column holds the actual proper name for the powers of 1024 names. 1048,576 bytes, or 1024 squared, is a mebibyte.
Bytes and disks
At this writing, the largest drive I can find online for personal computer use is about 18TB (terabytes). That’s a traditional spinning media hard drive made by Seagate. The largest solid-state drive (SSD) is 8TB.
On the other hand, if you have lots of cash — and I do mean lots — I’ve seen mention of a 100TB SSD, which costs roughly $40,000.
There will probably always be larger drives in development. But I’d be surprised if at this point they were more than 10 to 100 times bigger. I speculate, therefore, that the largest hard drives on the horizon are on the order of 100TB to 1PB, with SSDs in that same range or higher.
It’s worth noting that most data centers do not use the bleeding-edge largest drives available. They achieve their highest capacity by using more, smaller drives with a known track record — often many, many more.
But I’m not looking for zettabyte drives any time soon.
Of FLOPS and Hertz
Even though it’s unrelated to what I’ve been talking about so far — counting bytes — I want to address the other terms mentioned in the question: FLOPS and Hertz.
FLOPS and Hertz are different ways to measure how quickly a CPU performs its functions. What’s critical to understand is that they measure two different things.
A hertz is the speed of a computer’s clock — think of it as a simple pulse running at a particular speed that drives the CPU’s operation. A 1GHz computer has a clock running at 1 gigahertz, or 1 billion hertz. That pulse happens one billion times a second, so in theory, the computer can perform one billion operations a second. In practice, this isn’t exactly true: some operations take more than one “clock cycle”, while certain processor-specific optimizations can allow more than one operation to happen simultaneously.
“FLOP” is short for Floating-point Operation. FLOPS stands for Floating-point Operations per Second.
CPUs operate best on integers. For example, that one billion operations per second I mentioned above could be adding two integers — whole numbers between 0 and 18,446,744,073,709,551,616 on a 64bit processor2.
Floating point numbers are numbers with a decimal point. 3.141592653589, or Pi, is a floating-point number, as is 2.5, 100.3, and so on. Operations on floating-point numbers are a) more work, and b) considered by some a better measure of computing power, since they’re often used heavily in scientific work. An example of a floating-point operation would be adding or multiplying two floating-point numbers.
The “petaflop” you mentioned simply means a quadrillion floating-point operations per second.
The design of different processors means that their ability to perform floating-point operations varies dramatically, even if they’re running at the same speed in gigahertz. For example, high-resolution graphics, especially those used in real-time virtual reality and video-intensive gaming, make heavy use of these types of operations. As a result, graphics cards often have processors designed for high FLOPS.
The net result is that there is no FLOPS-to-gigahertz conversion. They measure two different types of a computer’s speed.
You can read much, much more about FLOPS and floating-point operations in the FLOPS Wikipedia article.