Why are EEPROM sizes measured in "k" or kbit and not kbyte or byte?

  1. The marketing department got there first.

  2. Because they can.

  3. To some extent, knowing how many bits you can store has some value as EEPROM may be used for bit or nibble or ternary or Klingon-base-xxx storage. BUT most engineers can multiply by 8 and divide by whatever quite well so expressing it in bits has no vast value.

1 & 2 can translate to "it sounds better and we may sell more". It doesn't and they won't, but hope dies eternal in the marketing department.

Some systems use other than 8 bit word widths so expressing in bits may make sense, but this is not usually a good enough reason. If you are using an Intersil 6601 CPU to build a DECMATE PDP-8 'compatible you may wish to use 12 bit words (but you'd be about 30 years late :-) ). Otherwise using "bytes" where word size is 8 bits, or "words" where word size <> 8 bits, are just as useful or more so than bits.


This is pretty standard practice among many different types of memory. I think there are a couple of reasons for it. First, the marketing guys want to put the biggest number possible on their devices. Second is that it's the most fundamental measurement of memory size. Devices can come in all sorts of different widths - 1, 2, 4, 8, 16, 32, 64, etc bits. As a result, chips with the same number of bits can have a very different number of words. The difference between a 128M x 8 memory, a 16M x 16 memory, and a 256M x 4 memory is just the configuration of the banks in the memory chip, how many address pins are connected, and how many data pins are routed out. The only difference for some devices may be just a fuse setting. The basic memory array for all three of these will consist of 1 Gb of memory. It makes sense to measure a 128M x 8 as 128 MB, but what about 16M x 16 or 256M x 4? When building a memory module, multiple chips can be combined into a larger memory - say 16 256M x 4 can be combined to form a 256M x 64 memory. This could be measured as 256 M qwords, 2048 M bytes, 16384 M bits, etc.


Historically, RAM chips have been commonly available in x1, x4, x8, and later x16 configurations, and it was common that computers would end up needing multiple banks of chips to achieve maximum RAM capacity. Two 1Kx4 chips would hold the same amount of storage as would eight 4Kx1 chips, but an 8-bit machine that used 1Kx4 chips could be expanded in 1KB (2 chips--8Kbit) increments (one chip at a time) while one that used 4Kx1 chips would have to be expanded in 4KB (8 chips--32Kbit) increments.

Note also that historically not every system used 8-bit wide memory for everything. The VIC-20, which is advertised as having 5K of RAM, actually has 5Kx8 plus 1Kx4; the Commodore 64 has 64Kx8 plus 1Kx4. In both cases, the 1Kx4 (4kbit) chips are mapped into 1024 bytes of address space, but only the lower four data wires are connected (the extra RAM is used to allow each character cell on screen to be configured for one of 16 colors, and only four bits per byte are needed for that purpose). On the VIC-20, the video display only needs 506 nybbles, with the remaining 518x4 bits generally going unused. I've heard of at least one application that uses them, though, since 259 bytes is an extra 5% of memory.