Как работает произвольный доступ к оперативной памяти?

10

HDD работает частично последовательно. Тем не менее, ОЗУ известно для произвольного доступа к памяти, что позволяет обеспечить равную скорость доступа к памяти для каждого места в любое время. Итак, что делает RAM такой особенной? Как работает произвольный доступ к памяти? (Я знаю, что DRAM не совсем произвольный доступ, а работает в пакетном режиме. Я не уверен, что это также означает.)

Dotcomio
источник

Ответы:

9

Ячейки памяти расположены в матрице

введите описание изображения здесь

Это 16-разрядная память шириной 1 бит, поэтому для адресации каждого отдельного бита требуется 4 адресных строки. Это a3.. a0строки слева. a0и a1введите зеленый 2-к-4 демультиплексор. Демультиплексор с N-входом может иметь 2 выходных линий, а двоичный вход указывает, какие из них будут активными. Это строка выбора.N

Выбор столбца делает нечто подобное, но использует мультиплексор для выбора 1 из 2 строк в качестве выходного сигнала. Таким образом, комбинация выбора строки и выбора столбца может адресовать отдельную ячейку памяти.N

Это оперативная память, потому что любой бит доступен напрямую, независимо от адреса. И это касается как DRAM, так и SRAM. SRAM требуется больше оборудования для хранения бита (4 или 6 FET), чем показано на DRAM, для которого требуется только 1 FET на бит. Данные хранятся в конденсаторах. Конденсаторы имеют утечку, и через некоторое (очень короткое!) Время данные исчезнут. Вот почему DRAM нуждается в частом обновлении: данные постоянно читаются и перезаписываются между обращениями. Это добавляет дополнительное устройство к устройству, но кристалл DRAM по-прежнему намного меньше кристалла SRAM с той же емкостью.

stevenvh
источник
4

Простая RAM может быть выражена как (из некоторой заметки):

введите описание изображения здесь

ОЗУ организованы в виде квадратных массивов отдельных битов. Существует два декодера, декодер строки и столбца, и каждая ячейка памяти с одним битом активна, только когда ее строка и строки столбца равны. В случае 256-битной оперативной памяти каждый декодер преобразует четырехбитное двоичное число в шестнадцатиразрядное унарное число. Таким образом, в квадратном массиве ячеек памяти с одним битом всегда будет только одна ячейка, для которой и строка, и строки столбца равны. Каждая ячейка подключена к одной и той же линии чтения / записи и линии данных. Линия данных подключается к внешней стороне через двухсторонний буфер трех состояний, так что, если чип не включен, никакие данные не могут проходить ни внутрь, ни наружу.

Статические данные ОЗУ в своей основе имеют бистабильную схему фиксации (обычно четыре или шесть транзисторов) для хранения одного бита, в то время как динамическое ОЗУ использует емкостный метод хранения для одного бита (только один транзистор и конденсатор). Таким образом, DRAM способен хранения памяти более плотным способом, чем SRAM. Так как емкостная память подвержена утечке, DRAM требует более высоких частот обновления для сохранения битовой информации внутри ячеек памяти.

введите описание изображения здесь

perilbrain
источник
4

Другие ответы оценивали внутреннюю работу ОЗУ, но они еще не упоминали, как она вписывается в систему. Самый простой тип ОЗУ для понимания - это статическая асинхронная ОЗУ. Такое устройство имеет несколько контактов адреса, несколько контактов данных и несколько управляющих контактов, которые вместе имеют три состояния интереса:

  1. Состояние бездействия, в котором сигналы на контактах адреса и данных игнорируются, а контакты данных являются «плавающими».
  2. Состояние записи, в котором устройство будет непрерывно передавать сигналы на выводы данных (которые будут плавающими) в область памяти, идентифицированную адресными выводами.
  3. Состояние чтения, в котором устройство будет постоянно пытаться управлять выводами данных с последним значением, записанным в ячейку памяти, идентифицированной адресными выводами.

Типичный статический чип памяти будет иметь несколько временных ограничений, которые можно эффективно смоделировать, сказав, что различные входы могут вести себя так, как будто они имеют различные (не обязательно постоянные) задержки. Операция чтения может привести к кратковременному выводу произвольных (мусорных) значений на выводы данных до того, как чип начнет выводить правильные данные. Чтобы выполнить операцию записи, необходимо подать чипу действительный адрес за некоторое время, прежде чем подавать сигналы для перевода чипа в режим «записи», и необходимо удерживать правильные данные на выводах данных в течение некоторого времени после того, как чип вынут. «Режим записи. Однако выполнить эти ограничения, как правило, не так уж сложно. Многие микросхемы памяти имеют дополнительное состояние, которое можно рассматривать как« готовимся к чтению »: микросхема непрерывно определяет, какое значение будет выводиться на шину данных, если ее попросят вывести адресную ячейку памяти. Если затем попросить чип вывести это местоположение, он сможет поставить его гораздо быстрее, чем если бы ему пришлось начинать «с нуля».

Обратите внимание, что хотя типичная статическая микросхема памяти будет внутренне подключена как сетка строк / столбцов (как указано в других ответах), и будет иметь около половины своих контактных штырьков, предназначенных для управления «строкой», и половину для управления «столбцом», Типичная микросхема динамической памяти будет использовать один набор адресных контактов для управления как строкой, так и столбцом. Чтобы получить доступ к динамической памяти, нужно выбрать адрес строки, а затем установить вывод с именем / RAS (выбор адреса строки). Это одновременно фиксирует адрес строки и приводит к тому, что конкретный ряд областей памяти будет считан во временный буфер. Затем можно использовать адресные контакты вместе с некоторыми другими управляющими контактами для доступа к этому временному буферу способом, аналогичным статическому ОЗУ. Как только вы закончите со строкой, вы можете / RAS. Это приведет к копированию (возможно измененному) содержимого буфера строк обратно в соответствующую строку в массиве. Через некоторое время после освобождения / RAS микросхема памяти будет готова к получению другого адреса строки и снова подтвердит / RAS.

Обратите внимание, что чтение строки из массива памяти во временный буфер удалит эту строку из массива памяти. Следовательно, даже если кто-то не внес никаких изменений в буфер строк, все равно необходимо будет записать его обратно в массив памяти, прежде чем можно будет получить доступ к другой строке. Также обратите внимание, что время, необходимое для доступа к строке, и время между окончанием одной строки и доступом к другой, намного больше, чем время, необходимое для чтения и записи данных в буфере. Хотя многие старые микрокомпьютеры всегда выполняли всю последовательность «выбор строки; чтение или запись байта; отмена выбора строки» для каждого доступа к памяти, более быстрые компьютеры будут пытаться сделать как можно больше с каждой операцией выбора строки (я признаюсь, некоторое любопытство относительно того, почему старые компьютеры не В этом отношении прилагать больше усилий при доступе к памяти для таких вещей, как обновления отображения видео, поскольку во многих случаях доступ к видеопамяти можно было легко получить группами по два, четыре или восемь байтов). Кроме того, современные устройства памяти включают в себя функции, позволяющие перекрывать определенные операции во многих случаях (например, возможность записывать буфер строк обратно в массив памяти, пока читается другая строка).

Supercat
источник