На англицком - вот не плохо (сразу предупреждаю это уровень 3го курса ВУЗа)
http://www.ece.umd.edu/courses/enee7...s/Lecture2.pdf
На русском действительно задница, чего-то у нас видимо с образованием не так.
Коротко говоря:
1) Современная память реализуется на элементах типа конденсаторов, каждый из которых хранит один бит информации (заряжен, разряжен).
Т. к. емкость современных чипов измеряется милиардами битов, то к каждой ячейке разьем не подведешь.
Из положения вышли следующим путем, "конденсаторы" (фактически это полевые транзисторы, но работают в режиме конденсатора) организуют матричную (табличную) структуру.
Соответственно есть:
Строки = Row
Столбцы = Columns
2) Т. к. обращение к отдельной ячейке, так же не эффетивно, то чтение производится строками.
Т. е. если необходимо прочитать ячейку на пересечении 100 строки, и 500 столбца, то читается строка целиком, помещается в промежуточный буфер (это не те буфера о которых мы говорили), ну а потом уже в буфере ищется
500 ячейка.
3) Увы, ничего идеального в этом мире нет, и конденсаторы имеют время саморазряда.
Соответсвенно нужно время от времени обновлять их содержимое.
Более того, операция чтения, так же разряжает конденсаторы (а вот запись заряжает).
Данные операции так же происходят согласно (2)
4) Итого образуются задержки которые характеризуются следующим параметром:
- время доступа к столбцу CAS (чем меньше - тем лучше)
- время доступа к строке RAS (чем меньше - тем лучше)
5) Зачем нужна регистровая память
Чем больше памяти, тем по сути выше суммарная емкость.
Когда памяти много (это существенно обычно для серверов), то возникают влияния как на шину устройства к которому подключена, так и взаимное влияние между модулями.
Для решения данной проблемы используют регистровую память, у которой грубо говоря, на входах добавлены добавочные регистры. Данный архитектурный ход ликвидирует емкостные эффекты, но уменьшает частоту функционирования модуля памяти (цепочка передачи данных удлиняется).