1

一台机器有 4GB RAM,处理器是 32 位。大屏幕(显示器)至少需要 2^21 个地址,机器已经支持 1280x800 分辨率的屏幕,相当于需要 1,024,000 个地址。其他一些外设的地址空间至少需要另外 2^21 个地址。

如果您希望所有 4GB 的 RAM 和上面的所有外围设备(包括大屏幕显示器)都可以访问,地址总线需要多大?

我完全被这个问题困住了,如果有人能提供帮助,那就太好了。

我期待收到任何人的来信。

4

1 回答 1

1

Disclaimer. I made a "C" in computer architecture class in both undergrad and grad school. So take this answer with a grain of salt.

For reference:

2^21 is 2MB
2^20 is 1MB
2^32 is 4GB == 4096 MB

The large screen monitor needs 2MB. The other 1280x800 monitor needs 1MB. The peripheral address space is also 2MB So that's 5MB total for all displays and devices.

So the total address space is 4096 MB + 5MB == 4101 MB

Expanding out 4101 MB is:

4101 * 1024 * 1024 = 4300210176

So the valid address ranges are from 0..4300210175 (subtract 1 since "0" is a valid address)

4300210175 is the following in binary:

100000000010011111111111111111111

That's an address space that is 33 bits wide

Assuming the original address bus is 32 bits, the new one needs to grow by 1. That extra bit to the address space plenty of space for the existing peripherals and room to add more devices.

I suppose intuitively, if every new address line doubles the address space of the previous set, then deducing "1" as the answer is obvious.

Either I'm a late bloomer, or you can see why I didn't do so well in the architecture class.

于 2013-05-20T00:01:22.647 回答