1
$\begingroup$

" The 8080 was an 8-bit CPU, meaning it processed 8 bits of information at a time. However, it had 16 address lines coming out of it. The ‘‘bitness’’ of a CPU—how many bits wide its general-purpose registers are—is important, but to my view the far more important measure of a CPU’s effectiveness is how many address lines it can muster in one operation. In 1974, 16 address lines was aggressive, because memory was extremely expensive, and most machines had 4K or 8K bytes (remember, that means 4,000 or 8,000) at most—and some had a lot less. Sixteen address lines will address 64K bytes. If you count in binary (which computers always do) and limit yourself to 16 binary columns, you can count from 0 to 65,535. (The colloquial ‘‘64K’’ is shorthand for the number 66,536.) This means that every one of 65,536 separate memory locations can have its own unique address, from 0 up to 65,535."

my questions are how 16 bits address lines can address 64KB?,since 16 bits can only address 64kbps.

and what is segment?

thanks in advance

$\endgroup$
2
$\begingroup$

One address addresses one byte. Using 16 bits, you can write 65536 addresses (from 0 to 65535, that's 65536 different addresses), and address 65536 bytes. 65536 bytes is 64kB. In computer science, b is bit, B is byte. The byte is the smallest amount of memory you can address. The question "what is k ?". k is kilo, in international system of units, a kilo unit is 1000 units, but, when dealing with memory, a kilo unit is 2^10=1024 units, (except when dealing with hard drives, for marketing reasons).

64kbps is 64 kilo bits per second. It is a transfer rate, not an amount of memory.

"What is a segment ?" isn't a precise question, segment is a very generic word used in many contexts. I expect that the 8086 segments are accurate in your context, even if it's some 24-bit addresses with 16-bit CPU instead of 16-bit addresses with 8-bit CPU.

$\endgroup$
0
$\begingroup$

One address addresses one something. So 16 bits of address can address $2^{16}$ somethings.

In the case of memory organised in bytes, this is 64KB (kilobytes). If memory were organised in bits, this would be 64Kb (kilobits). If memory is organised in 16-bit or 20-bit or 32-bit words (as has sometimes been done), the addressable space would be 64K of those words. (You get more memory that way, but you lose the byte-addressability: in some cases, a reasonable tradeoff).

$\endgroup$
  • $\begingroup$ when we talk about memory being 64KB, does it mean each memory cell has a size of 64KB or is the 64KB the net size of all memory cells put together? $\endgroup$ – noorav Apr 20 at 13:19
0
$\begingroup$

Here, 65,536 address locations are provided for a data word, but each data word consists of 8 bits or 1 byte so effectively 65,536bytes sums to 2^16 bytes = 2^6 * 2^10 bytes = 64KB

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.