I have often had people ask me why their hard drives don’t show the correct size, or that their internet is only giving them a fraction of the performance they are paying for.
Generally these queries, comments, concerns etc. are because most people are either ill-informed or have never found out the correct parameters that define data sizes and speeds. Not to mention different technologies use the jargon in different ways making it harder for a non-geek to keep up. Here’s some help.
The data scale.
Electronic data is stored in bytes. Each byte is 8 bits.
1 bit = binary state, 0 or 1.
1 nibble = 4 bits.
1 byte = 2 nibbles = 8 bits.
1 word = 2 bytes = 16 bits.
1 kilobyte (abbreviated KB) = 1024 bytes.
1 megabyte (abbreviated MB) = 1024 kilobytes.
1 gigabyte (abbreviated GB) = 1024 megabytes.
1 terabyte (abbreviated TB) = 1024 gigabytes.
Hard drive nomenclature.
Hard drive capacities are generally specified in GB or TB. However these aren’t the same as defined above. Giga and Tera in this context refer to the metric terms 10^9 and 10^12. This turns out to be slightly less than the data scale for GB or TB because 1000^3 < 1024^3. Let us see how this works out. We take a hard drive that is advertised at 500GB. This has a capacity to store 500 x 10^9 bytes. How much is this in data scale GB? It is 500 x 10^9 / 1024^3 =~ 465GB as per the data scale. Hence, on a “500GB” hard drive you can store about 465GB of actual data.
Bandwidth problems? Not really.
So you just got your 15Mbps connection and you are really stoked. You fire up your video download and watch excitedly as the speeds climb up. And then it stabilizes at 1.3MBps. Your jaw drops; you call the ISP and scream at the rep who doesn’t know what is going on either. Is the ISP failing? No. Notice how the connection is a 15Mbps with a lower case b. That is because it’s a bit. And your computer reports everything in bytes. So you need to divide your Mbps bandwidth by 8 to get the MBps bandwidth. Why do internet provides report speed in bits per second? To confuse you and steal your money? No. ISP’s provide you with a connection. Hence, they are to tell you the connection parameters, and since wires that provide you with this connectivity, don’t concern themselves with computer data jargon, then report how many state changes they can propagate every second. What is a state change? Why a bit of course. Which means that the internet connection is a bits per second rated connection. To get your byte per second speed, divide it by 8. The tricky thing to remember though, is that here kilo, mega, giga etc. scale in data terms and not metric, so you don’t have to divide by a power of 1024. Just divide by 8 and we should be ready to roll.
Show me the memory!
Almost everyone is confused by the available memory on 32 bit systems when they put in their shiny new 4GB ram sticks. Basically here is the simplest way I could think of for explaining memory. The CPU or the processor processes instructions. These instructions are stored in the memory. The hard drive is not fast enough to support the CPU’s need for instructions. Hence, the first step in the execution of a program is loading it into the ram. From there it goes into even faster memories like the cache, but let us not get into the nitty gritties. Just think of ram as the instruction list for the CPU. Now basically ram has locations, much like houses to store an instruction each (assuming each instruction is a byte for convenience). In order to know where to get the next instruction we need to label these houses with an address. Think of these as zip codes. If each zip code indicated a specific house, and you have 5 digit zip codes you can have at most 100000 houses (00000 is a house too). In a binary world if our system is 32 bit, then our zip code can store at most 32 bits which results in an addressing scheme that can address 4 x 1024^3 locations or 4 Giga locations in short. The operating system needs to reserve some locations for storing lookup tables, video memory and so on. This can range anywhere from 500 Mega locations to 1.5 Giga locations. Notice how I am using the word locations instead of bytes, since what you store at a location is not important here. Now since your addressing scheme can only address 4 Giga locations, and you have already used up some of your addresses for the aforementioned, you have less than 4 Giga locations to address your 4GB of physical ram. Which means you lost out on some of it. If you want to see all of it, use a 64 bit OS, on a 64 bit processor with a full 64 bit capable chipset.
Have fun. Happy computing.
Monday, May 18, 2009
Subscribe to:
Post Comments (Atom)


What does ^ mean?
ReplyDelete^ = raised to the power of.
ReplyDeleteeg. 10^2 = 100.
You didn't catch the sarcasm. HTML supports superscripts. ;-)
ReplyDelete10^** is good. so is E.
ReplyDeletein place of 'E' ALGOL users put in a subscripted '10' to specify the base and some use a reverse slash without spaces '\'. btw are there any ALGOL users around nowadays?
but when you scream at the ISP for the lower case b in Mbps you must not forget that many will scream at you for the upper case K in kilowhatever . . . . the upper case K is for the degree Kelvin that makes people scream . . . .
not necessarily. the 'k' prefix is used for the SI kilo which is 1000. it has been suggested that the binary kilo be distinguished from the SI one by using an upper case K. however that has not been mandated. however i feel it is a good practice since they are different.
ReplyDelete