1
$\begingroup$

Why an ARM processor with 32 bits address bus can address 4 billion different bytes? I know that $2^{32}$ is equal to about 4 billions, but shouldn't it be 4 billion bits and not bytes?

Hence if I want to find how many different words it can address it should be $\frac{2^{32}}{8}$ so I will have the number of bytes, and if I want to find the number of words I divide it again by 4 (because a word in ARM is 32 bits = 4 bytes).

$\endgroup$
  • 1
    $\begingroup$ ARM (like most modern ISAs) uses byte addressing. (ARM does have a feature to allow bit-level addressing, mapping a section of the address space (bit band) for this. Such is primarily intended for memory-mapped I/O where atomic bit-level addressing can be useful since accesses to I/O devices can have side effects (so a byte read to get a single bit could generate unintended side effects for the seven other bits read and a read-modify-write sequence to change one bit could have unintended effects).) $\endgroup$ – Paul A. Clayton Dec 30 '16 at 14:52
5
$\begingroup$

While there have been computers built that use bit addressing, notably the Burroughs 1700, 1800, and 1900 mainframes and the Intel iAPX-432, the vast majority of machines use byte addressing.

This means that each possible address corresponds to a potential byte in memory. Thus a 32 bit address would have a span of $2^{32}$ or $4,294,967,296$ bytes.

For completeness, the other category of machines use word addressing, where each address value corresponds to a word of memory. Examples here include the PDP-10 and CDC-6600 as well as many specialized DSP and embedded processors still in use.

| cite | improve this answer | |
$\endgroup$
1
$\begingroup$

Modern computers do not load and store individual bits from and to memory. Instead, an operation loads or stores a byte, or even a 32-bit quadword. These words or quadwords are addressed with 32 bits, giving the computer access to 128GB. Of course the computer can access individual bits, but it will first have to load the quadword into the CPU's registers, and afterwards, can manipulate that quadword however it likes.

| cite | improve this answer | |
$\endgroup$
0
$\begingroup$

2^32 = 4 billion addresses Each address points to 1 byte of memory. Most memory are byte addressable. So totally you can address 4gb of memory.

| cite | improve this answer | |
$\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.