4

В своих заметках я нашел следующие цитаты из неизвестных источников:

Адресно-байтовый 32-разрядный компьютер может адресовать 2 ^ 32 = 4 294 967 296 байт памяти или 4 гибибайта (ГиБ).

система с 32-битной адресной шиной может адресовать 2 ^ 32 (4 294 967 296) ячеек памяти. Если каждый адрес памяти содержит один байт, объем адресуемой памяти составляет 4 ГБ.

что такое в компьютере, чтобы определить, сколько памяти содержит адрес памяти, т. е. является ли компьютер адресуемым по байту, адресуемым словом или адресом xxxx? Это сама ОЗУ, процессор или что-то еще?

Примечание: мой вопрос не имеет ничего общего с программированием. Я думаю, что это отличается от программирования, где объем памяти, который содержит адрес объекта, зависит от его типа данных (int, float, ...).

Спасибо!

3 ответа3

8

Не вдаваясь в технические подробности (которые я в любом случае ошибаюсь), само компьютерное оборудование спроектировано и построено так, что каждый адрес ссылается на байт, или 2 байта, или 4 байта, или что-то еще. Операционная система не имеет выбора в этом вопросе; это должно быть написано, чтобы соответствовать дизайну оборудования.

Большинство, вероятно, все работающие на сегодняшний день компьютеры являются адресуемыми по байту, а байт составляет 8 бит. Прошлые проекты были разными.

Количество бит в адресе определяет количество адресов. Количество битов, хранящихся по адресу, определяется проектом; будет один контакт и одна линия для переноса данных. Умножьте эти числа вместе, чтобы получить максимальное количество битов, которое можно сохранить.

Чтобы ответить на ваш актуальный вопрос: это сама ОЗУ - да, процессор - да, или что-то еще - да, материнская плата и чипсет. Все они должны быть разработаны для совместной работы, и все они должны согласовать размер и адресацию байтов.

6

В старые времена у процессоров были контакты, и некоторые из них использовались для связи с памятью.

У вас были контакты A для указания адреса и D контакты для чтения или записи данных. Типичный 8-разрядный процессор начала 80-х годов имел бы контакты с D0 по D7 и с A0 по A15. Это означает, что он может адресовать до 2 ^ 16 8-битных (от D0 до D7) байтов памяти или 64 КБ. 16-разрядные процессоры будут иметь шестнадцать строк D (пример m68k), а 32-разрядные (например, Pentium) - тридцать две.

Возможно иметь 16-битную архитектуру с 8-битной внешней шиной или 32-битную архитектуру с 16-битной внешней шиной - есть несколько вещей, которые определяют "битность" ЦП и ширину данных только один из них. Внутренняя архитектура все еще может быть другой.

Если посмотреть на распиновку (хотя у процессоров больше нет "контактов", у платы есть контакты, а у процессора теперь есть "земли") чего-то недавнего, например, Core i7 - все изменилось. Я не уверен, что означают такие вещи, как DDR0_DQ [63] - отношения между процессором и памятью сегодня сложны из-за кэширования, NUMA и многоядерных процессоров.

Таким образом, это сочетание архитектуры процессора и используемого интерфейса физической памяти определяет это.

1

что в компьютере определяет, сколько памяти занимает адрес памяти?

Хороший вопрос начального уровня.

Я бы сказал, что простой ответ - это компромисс между стоимостью и сложностью.

Например, были однобитовые компьютеры, которые обращались только к одному биту за раз, сдвигая биты и затем собирая их вместе (если это было давным-давно). Они держат проводку до минимума. И было 4-разрядное компьютерное слово, не заходящее так далеко назад. Компьютер, на котором я печатаю, получает слово шириной 64 бита за раз. Но обратите внимание, что 32-битные машины делают то же самое, просто получая два 32-битных слова и собирая их вместе в одно. Также я помню старый мэйнфрейм IBM, в котором было около 10 разных способов обращения со словами. Но большая часть этого была сделана во встроенном программном обеспечении для удобства программы, так как она на самом деле была адресована только одному размеру физического слова памяти (для простоты аппаратного обеспечения).

Таким образом, ответ заключается в том, что есть много способов сделать что-то и много способов спроектировать вещи, и почти каждая комбинация между ними. Стоимость и скорость, где принимаются решения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .