Получение памяти, хранящейся в адресном пространстве - PullRequest
0 голосов
/ 03 октября 2019

"Если компьютер обрабатывает данные в 8-битных размерах и использует 16-битный адрес для хранения и извлечения данных в памяти, его адресное пространство содержит 2 ^ 16 (65536) байтов или 64 Кбайт"

В моем учебнике есть такое утверждение, которое меня смущает. Откуда они берут 2 ^ 16? Если компьютер использует 16-битный адрес, почему это не 2-байтовое адресное пространство? В учебнике не объясняется, как память хранится в микрокомпьютерах, и есть это утверждение во вступительной главе. Я что-то упустил?

1 Ответ

0 голосов
/ 03 октября 2019

Если адрес 16 бит, это означает, что у вас есть 16 бит при обращении к местоположению в памяти. Адресное пространство - это диапазон допустимых адресов, а не физический размер адреса.

Эти адреса начинаются с адреса 0 (двоичный 0000 0000 0000 0000) и идут до адреса 2 16 -1 (двоичный код 1111 1111 1111 1111). Это всего 2 16 адресов, на которые можно ссылаться. И если каждый адрес ссылается на 8 бит (т. Е. Байт), общий объем памяти, к которому вы можете обратиться с этими адресами, составляет 2 16 × 8 бит или 2 16 байт. .

В качестве меньшего примера рассмотрим систему с 3-битными адресами, каждый из которых ссылается на 4 бита (полубайт).

Address | 0    1    2    3    4    5    6    7
Memory  | 0000 0000 0000 0000 0000 0000 0000 0000
Binary  |
address | 000  001  010  011  100  101  110  111

3-битные адреса могут иметь 2 3 значений, от 0 до 7, и каждый ссылается на 4 бита памяти, поэтому у этой системы всего 2 3 = 8 полубайтов памяти.

В этомсистема, единственным действительным адресом являются 0, 1, 2, 3, 4, 5, 6 и 7, поэтому адрес пробел - это набор {0, 1, 2, 3, 4, 5,6, 7}.

В качестве важного момента не забывайте, что адресное пространство не обязательно является фактическим объемом доступной памяти - компьютеры используют некоторые удобные приемы для использования адресных пространств, намного превышающих объем памяти, который они на самом деле(например, 64-битная система теоретически может адресовать 2 64 байтов памяти, но у вас даже нет долив вашем компьютере).


Аналогии для адресных пространств

Вот две аналогии, которые могут помочь вам понять разницу между адресным пространством, адресом и указателем:

  • Веб-адресное пространство - это набор всех URL, в основном набор строк вида https://[domain]/[path]. Таким образом, https://example.com/page является адресом, а эта ссылка является указателем на этот адрес.

  • Адресное пространство улицы США является (приблизительно) набором строкэтой формы:

    [First name] [Last name]
    [number] [Street name]
    [Town], [STATE] [zip code]
    

    По той же аналогии, это адрес:

    John Doe
    10 Main St.
    Faketown, NY 20164
    

    Наконец, указатель аналогичен надписи на передней части конверта, чтопочтовая служба использует для доставки писем.

...