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

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: именно страница, сформированная из данных о состоянии яче­ек по всем столбцам, и является минимальной порцией обмена. Доступ к отдельно взятой ячейке ди­на­ми­че­ской памяти невозможен, в отличие от простейшего постоянного запоминающего устройства, рас­смот­рен­но­го выше, где чте­ние данных могло выполняться по конкретному адресу. В данном случае запрос ин­фор­ма­ции по одной строке мат­ри­цы откроет все ключи и приведет к считыванию состояния всех, подключенных к этой линии конденсаторов.

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

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

Теги: