Сколько данных хранится в одной ячейке памяти компьютера? - PullRequest
17 голосов
/ 07 марта 2011

Предположим, 32-битная ОС.

  1. Сколько данных хранится в одной ячейке памяти компьютера?

  2. Какова базовая единица хранения памяти на компьютере?

  3. Например, для хранения целого числа, какие адреса памяти потребуются? Если основной единицей является BYTE, целое число требует 4 байта. Так что, если мне нужно сохранить байт, тогда, если начать помещать 1-й байт в ячейку памяти 0001 тогда закончится ли мое целое число в ячейке памяти 0003?

Пожалуйста, поправьте меня, если я не прав?

Ответы [ 3 ]

21 голосов
/ 07 марта 2011

Чаще всего современные системы - это то, что вы называете «байт-доступными» Это значит:

  1. В одной ячейке памяти хранится 1 байт (8 бит).
  2. Базовая единица хранения для памяти составляет 1 байт.
  3. Если вам нужно сохранить 4 байта и поместить первый байт в 0001, последний байт будет в 0004. Это один байт в каждом из 0001, 0002, 0003 и 0004.

Имейте в виду, что хотя системы имеют разный размер ЦП WORD (32-битная система имеет 32-битное или 4-байтовое слово), память обычно адресуется в байтах. Регистры ЦП, используемые в арифметике, составляют 4 байта, но программисты «памяти», используемые для хранения данных, адресуются в байтах.

В системах x86 для многих инструкций доступа к памяти требуется, чтобы значения в памяти были "выровнены" по адресам, равномерно делимым на размер мира. например 0x ??? 0, 0x ??? 4, 0x ??? 8, 0x ??? C. Таким образом, сохранение int в 0001 не произойдет в большинстве систем. Нечисловые типы данных обычно можно найти по любому адресу.

См. Википедию: Выравнивание Word (вычисления) Адрес памяти

2 голосов
/ 07 марта 2011

В одной ячейке памяти компьютера хранится объем данных?

Это зависит от компьютера. ячейка памяти означает часть памяти, к которой процессор может обращаться напрямую.

Какова базовая единица хранения памяти в компьютере?

Это Бит , а затем Байт , но разные ЦП более удобны для адресации памяти в словах определенных размеров .

Например, для хранения целого числа, какие адреса памяти потребуются? Если базовой единицей является BYTE, целое число требует 4 байта.

В математике целые числа бесконечны, поэтому для представления всех / любых из них должна быть бесконечная память. Выбор, сделанный компьютерной архитектурой относительно того, сколько памяти следует использовать для представления целого числа, является произвольным. В конце концов, логика о том, как целые числа представлены и управляются в программном обеспечении, даже если это встроено в прошивку. Язык программирования Python имеет неограниченное представление для целых чисел (но, пожалуйста, не пытайтесь использовать googol на нем).

В конце концов, все компьютерные архитектуры каким-то образом допускают адресацию до уровня Byte или Bit , но они лучше всего работают с адресами с размером слова, который обычно соответствует размер регистров процессора.

Речь идет не о количестве данных или размере целых чисел, а о количестве адресов памяти, которые может использовать компьютер.

Имеется 4 ГБ адреса (для байтов) в 32 битах. Для управления кластером машин с ОЗУ более 4 ГБ каждая система должна управлять большими адресами.

Опять-таки, все дело в адресуемой памяти, а не в размере целых чисел. Были 64-битные целые, даже когда процессоры предпочитали 8-битную адресацию слов.

1 голос
/ 07 марта 2011
  1. Зависит от архитектуры. 32-разрядные для 32-разрядных. 64-разрядные для 64-разрядных.
  2. Обычно это называется "словом"
  3. Большинство значений должны быть выровнены, поэтому адреса заканчиваются на 0 4 8 или C
...