На долгую память

03 Апр 2018

На долгую память

Простейшим примером организации памяти является постоянное за­по­ми­на­ю­щее устройство. В такой памяти с долговременным хранением ин­фор­ма­ции определяющим элементом служат перемычки в дву­мер­ном массиве проводников. Изначально все строки и столбцы соединены между собой с по­мощью перемычек — токопроводящих мостиков. В про­цес­се записи дан­ных в матрицу хранения часть перемычек ос­та­ет­ся не­тро­ну­ты­ми и со­е­ди­ня­ют линии строк и ли­нии столбцов этого мас­си­ва, а остальные раз­ру­ша­ют­ся.

Замкнутому с помощью перемычки состоянию проводника можно при­сво­ить значение логического нуля, а ра­зом­к­ну­то­му — логической еди­ни­цы. Измеряя сопротивление между конкретными ли­ни­я­ми строк и столбца, по его вы­со­ко­му значению (разомкнутому состоянию проводников) можно считать логическую еди­ни­цу, а по ко­рот­ко­зам­кну­то­му состоянию принять решение о хранении там логического нуля. Такая оценка электрических параметров коммутируемого соединения становится формой хранения информации и определяет метод доступа к со­дер­жи­мо­му заданной ячейки памяти.

Оценка электрических параметров коммутируемого соединения как форма доступа к содержимому заданной ячейке памяти
Рис 1. Оценка электрических параметров коммутируемого соединения
как форма доступа к содержимому заданной ячейке памяти

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

Как работает ячейка DRAM?

Одной из широко распространенных реализаций оперативных запоминающих устройств является ячейка с ди­на­ми­че­ским способом хранения данных — DRAM. Для ячейки динамического запоминающего устройства не­об­хо­ди­мо два элемента: управляющий транзистор, выполняющий функции коммутирующего ключа, и конденса­тор, хра­нящий заряд. Именно по его состоянию и можно принять решение, хранит ли ячейка логическую еди­ни­цу (кон­ден­са­тор заряжен) или ноль (разряжен). Главная особенность такого подхода — постоянная забота о ре­ге­не­ра­ции конденсатора, так как эл­ек­три­че­ский заряд на его пластинах имеет свойство со временем рас­се­и­вать­ся или, как говорят «стекать».

Если рассматривать внутреннюю структуру кристалла динамической памяти (DRAM), то в контексте однобитной его организации сложилась терминологическая традиция горизонтальные строки запоминающей матрицы счи­тать (условно) wordline, где слово Word здесь подразумевает все биты строки. Тогда bitline — это столбец (вер­ти­каль­ная стро­ка) матричной организации памяти. Такая абстракция хорошо иллюстрирует механизм про­из­воль­но­го доступа, когда битовые линии образуют шину данных, а горизонтальные строки обеспечивают запись и чтение адресуемого слова. Как мы увидим ниже, схемотехника модуля памяти и его обработка центральным про­цес­со­ром имеют более сложную архитектуру.

Внутренняя структура кристалла DRAM в контексте однобитной его организации
Рис 2. Внутренняя структура кристалла DRAM
в контексте однобитной его организации

Чтение ячейки, сформированных парой «транзистор–конденсатор», деструктивно по своей природе: выборка ин­фор­ма­ции разряжает конденсатор в процессе определения его заряда. Вследствие этого DRAM-ячейки пред­став­ля­ют собой короткоживущую память, да к тому же и разового действия. Во избежание потери информации счи­тан­ный бит информации необходимо сразу же «освежить в памяти» — перезаписать заново. Это входит в обя­зан­но­сти са­мой микросхемы DRAM под зорким глазом контроллера памяти.

Фактор короткоживущей памяти — еще одна проблема в архитектуре DRAM. Валидность информации в памяти компьютера зависит от того, как долго конденсатор сможет хранить заряд. Саморазраяд, причиной которого яв­ля­ет­ся миниатюрность конденсатора на подложке управляющего транзистора, приводит к тому, что до­сто­вер­ность данных ограничена тысячными долями секунды. Регенерация этого процесса делегируется со­от­вет­ству­ю­щим схемам обслуживания, которые вынуждены периодически считывать информацию из ячеек с последующей их перезаписью.

Схемы регенерации претерпели существенные изменения в процессе эволюции персональной платформы. Ранее ре­ге­не­ра­ция оперативной памяти тактировалась тиками системного таймера с частотой, равной 18.2 Гц. Со­вре­мен­ные кристаллы динамической памяти содержат схемы регенерации внутри самой микросхемы. Это позволяет сократить время ожидания валидных данных. Чип до очередного цикла регенерации копирует содержимое об­нов­ля­е­мой строки в буфер, доступный контроллеру памяти, параллельно выполняя «рефреш» ячеек. Такая ор­га­ни­за­ция получила название синхронной динамической памяти или SDRAM.

Во время выполнения циклов регенерации, запоминающая матрица недоступна для операций чтения и записи, и это обстоятельство неизбежно сказывается на производительности. Статические элементы оперативной памяти (SRAM), в узлах которой используются более сложные схемы на основе триггеров с двумя устойчивыми со­сто­я­ни­я­ми, лишены этого недостатка и обладают лучшим быстродействием. Эффективным компромиссом про­из­во­ди­тель­но­сти и стоимости является использование оперативного запоминающего устройства на основе DRAM в со­че­та­нии с кэш-памятью небольшого размера на основе SRAM. В кэш-память оперативно загружаются данные, ско­рость дос­ту­па к которым наиболее критична для обеспечения производительности.

Примечание. Рассматривая пример динамической памяти, обратим внимание на то, что описанная ячейка DRAM хранит всего один бит информации. Для понимания принципа работы этого допущения вполне до­ста­точ­но.

Аппаратная реализация модуля DRAM, с которым оперирует контроллер памяти, также базируется на интеграции ячеек, хранящей один или не­сколь­ко байт информации, прямоугольную матрицу. Ее горизонтальные линии об­ра­зу­ют Row (строки), а вертикальные — Column (столбцы). Итак, в узлах за­по­ми­на­ю­щей матрицы по­лу­про­вод­ни­ко­вый прибор (транзистор), находясь в закрытом состоянии, пред­от­вра­ща­ет потерю конденсатором очень важного кванта информации — заряда. Но стоит подать на заданную строку за­по­ми­на­ю­щей матрицы специальный им­пульс — транзисторные ключи всех узлов строки сработают. От­кры­ва­ясь, каж­дый из них соединит свой кон­ден­са­тор с конкретным столбцом. Схема детектирования, мониторящая состояние столбцов матрицы, от­ре­а­ги­ру­ет на воз­ник­ший ток и считает всю строку целиком — в упомянутый выше транзитный буфер, который при­ня­то на­зы­вать стра­ни­цей (Page).

Двумерная адресация ячеек динамической памяти по строкам и столбцам
Рис 3. Двумерная адресация ячеек динамической памяти по строкам и столбцам

Это об­сто­я­тель­ство весьма важное в понимании работы DRAM: именно страница, сформированная из данных о состоянии яче­ек по всем столбцам, и является минимальной порцией обмена. Доступ к отдельно взятой ячейке ди­на­ми­че­ской памяти невозможен, в отличие от простейшего постоянного запоминающего устройства, рас­смот­рен­но­го выше, где чте­ние данных могло выполняться по конкретному адресу. В данном случае запрос ин­фор­ма­ции по одной строке мат­ри­цы откроет все ключи и приведет к считыванию состояния всех, подключенных к этой линии конденсаторов.

Запоминающая матрица банка динамической памяти
Рис 4. Запоминающая матрица банка динамической памяти

Существенное отличие доступа по строкам и столбцам от приведенной на Рис 2. блок-схемы в том, что вместо од­но­бит­ной организации современная подсистема памяти использует 64-битную1) шину данных. Она осталась за кад­ром, уступив место двумерной адресации 64-битных ячеек. Для одномерной их адресации в современных ус­ло­ви­ях пришлось бы использовать более сорока адресных линий, что невероятно накладно для конструкции ком­пью­тер­ной платформы и к тому же негативно сказалось бы на производительности ОЗУ. Раздельная ад­ре­са­ция по строкам и столбцам позволяет оперировать со страницами памяти по адресной шине меньшей раз­мер­нос­ти. Для этого, правда, приходится выставлять адрес требуемой страницы посредством двух посылок — т.е. дважды.

За адресацию ОЗУ отвечает контроллер памяти, который с недавних пор перекочевал из чипсета системной ло­ги­ки в центральный процессор. Ему в это помогают схемы синхронизации, формирующие дополнительные сигналы управления RAS (Row Access Strobe) и CAS (Column Access Strobe). Сначала на адресную шину выставляется адрес строки, затем — столбца. В классической модели SDRAM первая из посылок выполняется по спаду (заднему фрон­ту) тактирующего импульса RAS, вторая — по спаду CAS. После этого в течении заданного времени кон­т­рол­лер мо­жет опе­ри­ро­вать с данными в оперативной памяти (читать их или писать).

Временная диаграмма работы классической запоминающей матрицы динамической памяти
Рис 5. Временная диаграмма работы классической запоминающей матрицы динамической памяти

Окно возможностей закрывается с началом упомянутого уже регулярного цикла регенерации (Memory Refresh). Для поддержания сохранности данных необходимо выполнить обход ячеек памяти, освежив в них информацию холостыми циклами перезаписи. Регенерация памяти происходит сразу по всей строке, в силу транзисторной ар­хи­тек­ту­ры матрицы. Оперативная память видеоадаптера специальных циклов регенерации не требует: фор­ми­ро­ва­ние развертки для вывода на экран изображения создает условия, при которых периодичность обращения к памяти обеспечивает своевременную перезарядку запоминающего конденсатора.

Даже при наличии буфера обмена, чип динамической памяти не в состоянии обеспечить мгновенный доступ к за­тре­бо­ван­ной контроллером информации. Чтобы избежать пауз, создаваемых операцией Refresh, современные ми­кро­схе­мы DRAM поддерживают несколько независимых запоминающих матриц — они называются банками па­мя­ти. Обмен данными выполняется с минимальными задержками, если требуемая информация хранится в раз­ных бан­ках одного и того же чипа.

1) Программная мо­дель контроллеров памяти для процессоров i486 допускала 8-битный и/или 32-битный доступ по соответствующей шине данных.

Теги: