Сначала - зачем вообще нужна оперативная память. Компьютер нужен затем, чтобы создавать или обрабатывать информацию. И ясное дело, что для этого требуется а) наличие инструкций по обработке, которые говорили бы, что надо делать, где что брать и куда что складывать (то есть программы), и б) наличие данных, которые подлежат обработке. Во вногих случаях надо ещё куда-то класть результаты обработки данных или результаты генерации данных. А программ, которые данные не обрабатывают, а именно создают, до фига. Обычный текстовый редактор, к примеру. Или фотоаппарат. Вот для этого для всего нужна память - где-то хранить программы, где-то - данные. Вообще говоря, это могут быть и две разных памяти - одна специально для хранения программ, другая специально для хранения данных (компьютеры гарвардской архитектуры), но сейчас подавляющее большинство компьютеров - принстонской архитектуры, где и команды, и данные хранятся в одной и той же памяти.
И чем радикально оперативная память отличается от памяти "постоянной", то есть не-оперативной: скоростью доступа. Процессоры способны обрабатывать данные с бешеной скоростью. Гигабайты в секунду (для каких-то простых вычислений). Стало быть, память, откуда берутся и команды, и данные, память, куда потом записываются результаты обработки, должна обладать сопоставимой скоростью. Постоянная память - всякие барабаны, ленты, диски, даже твёрдотельные диски - необходимой скоростью не обладает. Более того, там часто узкое место не собсно скорость считывания или скорость записи сама по себе, но задержка доступа - время, которое проходит от подачи команды на чтение или запись до физической реализации этой команды (данные поступили в регистры процессора или легли на указанное им место). Это наиболее наглядно для магнитных носителей: ну каково, если для того, чтоб получить нужный байт, требуется перемотать всю плёнку из конца в конец?! В дисках оно, конечно, резвее, но и там информация записывается и считывается посекторно, и на то, чтоб нужный сектор доехал до считывающей головки, требуется время.
Вот это узкое место оперативная память и "расшивает": там не надо ждать, пока что-то куда-то доедет чисто механически, а даже если механического движения и нет (SSD), то всё равно скорость обмена данными с процессором оказывается сопоставима с производительностью процессора.
Физическая реализация.
Ну тут тоже истории известны десятки и десятки способов, но интересны из них три: память на ферритовых кольцах, полупроводниковая статическая память, полупроводниковая динамическая память. Всякую экзотику типа памяти на ЭЛТ, на цилиндрических магнитных доменах и т. п. оставим архивариусам.
Ферритовая память была хороша тем, что она была энергонезавимой. То есть могла выступать и как постоянная, до некоторой степени (настоящей постоянной памятью там были перфоленты и перфокарты). Многие инженеры моего поколения должны помнить мини-ЭВМ "Электроника-100" - вот на ней была память на ферритовых кольцах. Физика реализации - направление намагниченности ма-аленького (1-2 миллиметра диаметром) ферритового кольца: по часовой стрелке или против часовой. Через каждое кольцо проходило четыре провода (и каждый из этих проводов проходил через множество колец): два для адресации (XY), один для считывания и один для управления записью.
Для считывания на адресные провода подавался импульс тока такой, что кольцо принимало определённое направление намагниченности, по фигу что там было записано. Но если там было записано "не то", то есть направление намагниченности колечка менялось, то в считывающим проводе индуцировался импульс тока, что сразу говорило о том, что за информация (0 или 1) там была записана. Понятно, что это было разрушающее считывание, поэтому после считывания нужно было информацию восстановить.
Чтобы записать туда информацию, опять же нужно подать импульсы тока обратной полярности на XY-провода, но если мы не хотим менять информацию, то ток подаётся и на управляющий провод, причём такой, чтоб частично компенцировать магнитное поле, создаваемое адресными проводами.
Цикл работы памяти на ферритовых кольцах в "Электронике-100" была 1,5 мкс, то есть как раз такой, что и тактовая частота процессора.
С развитием технологии СБИС, а главное - с ростом скорости процессоров и их миниатюризацией ферритовая память стала анахронизмом. Блок памяти той же "Электроники-100" при ёмкости в 4К слов (4К, Карл!) занимал примерно такой же объём, что и современный десктопный миди-тауэр...
И тут мы приходим к полупроводниковой памяти.
Самая простая для понимания - это статическая память на триггерах. Триггер хранит как раз 1 бит информации, считывание информации - неразрушающее и довольно быстрое, хранить инфу триггер может неопределённо долго, пока есть напряжение питания, так что всё вроде хорошо... на каждый триггер - это шесть транзисторов. Четыре образуют собсно триггер (элемент хранения) и ещё два нужны для адресации и записи бита. Поэтому статическая память большого объёма - это редкость. Обычно статическая память на триггерах - это кэш-память внутри процессоров, где объём может быть сравнительно небольшим, а вот быстродействие важнее.
И в современных компьютерах оперативная память - динамическая. В динамической памяти информация хранится как заряд на конденсаторе (реализованном как ёмкость затвора МОП-транзистора, оный же транзистор до кучи и буфер между элементом хранения и периферией). Есть заряд - 1, нет заряда - 0. Тут на каждый бит вшестеро меньше транзисторов по сравнению со статической памятью на триггерах. Это основная причина, по которой динамическая память стала доминирующей.
Но любой конденсатор не может хранить заряд вечно, потому что в любом конденсаторе, хотим мы или нет, есть утечки. Поэтому информацию в динамической памяти требуется регулярно восстанавливать - регенерировать. По счастью, при обращении к элементу памяти регенерирует содержимое всей строки памяти (доступ к ячейкам организован построчно, то есть вся память выглядит как матрица NxM, и частенько матрица квадратная: N=M), но ведь нередки ситуации, когда мы работаем только с какой-то небольшой долей всей памяти, а что делается во всей остальной - по фигу. Поэтому, чтоб гарантировать сохранность всей информации, регенерация каждой строки производится принудительно, с темпом, когда каждая строка раз в несколько миллисекунд гарантированно регенерирует. Это своего рода накладные расходы, но при частоте работы памяти в несколько гигагерц потери на регенерацию незначительны.
Ну и на десерт - почему для моделирования нужно много памяти. Потому что моделирование - сложная расчётная задача, где нужно параллельно обрабатывать тысячи и тысячи узлов сетки или текстуры. Поэтому чем больше узлов может храниться в ОЗУ, тем реже нужно лазать во внешнюю память за подкачкой не поместившихся в ОЗУ данных, и тем быстрее будет выполнен расчёт. А время - деньги.