RAM-диск на SDRAM памяти под управлением микроконтроллера

курсовая работа

3.2 Выбор типа памяти

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

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

Запоминающие ячейки микросхем DRAM организованы в виде двумерной матрицы. Адрес строки и столбца передается по мультиплексированной шине адреса MA (Multiplexed Address) и стробируется по спаду импульсов RAS# (Row Access Strobe) и CAS# (Column Access Strobe). Временная диаграмма «классических» циклов записи и чтения приведена на рис. 3.1. Поскольку обращения (запись или чтение) к различным ячейкам памяти обычно происходят в случайном порядке, то для поддержания сохранности данных применяется регенерация (Memory Refresh -- «освежение» памяти) -- регулярный циклический перебор ее ячеек (обращение к ним) с холостыми циклами. Регенерация в микросхеме происходит одновременно по всей строке матрицы при обращении к любой из ее ячеек. Максимальный период обращения к каждой строке tRF (refresh time) для гарантированного сохранения информации у современной памяти лежит в пределах 8-64 мс. В зависимости от объема и организации матрицы для однократной регенерации всего объема требуется 512, 1024, 2048 или 4096 циклов обращений. При распределенной регенерации (distributed refresh) одиночные циклы регенерации выполняются равномерно с периодом tRF (рис.3.2), который для стандартной памяти принимается равным 15,6 мкс. Период этих циклов называют «refresh rate», хотя такое название больше подошло бы к обратной величине -- частоте циклов . Для памяти с расширенной регенерацией (extended refresh) допустим период циклов до 125 мкс. Возможен также и вариант пакетной регенерации (burst refresh), когда все циклы регенерации собираются в пакет, во время которого обращение к памяти по чтению и записи блокируется. При количестве циклов 1024 эти пакеты будут периодически занимать шину памяти примерно на 130 мкс, что далеко не всегда допустимо. По этой причине практически всегда выполняется распределенная регенерация, хотя возможен и промежуточный вариант -- пакетами по нескольку (например, 4) циклов.

Рисунок 3.1 Временные диаграммы чтения и записи динамической памяти

Рисунок 3.2 Методы регенерации динамической памяти

Циклы регенерации могут организовываться разными способами Классическим является цикл без импульса CAS# (рис. 3.3, а), сокращенно именуемый ROR (RAS Only Refresh -- регенерация только импульсом RAS#). В этом случае адрес очередной регенерируемой строки выставляется контроллером памяти до спада RAS# очередного цикла регенерации, порядок перебора регенерируемых строк не важен.

Другой вариант -- цикл CBR (GAS Before RAS), поддерживаемый практически всеми современными микросхемами памяти (рис. 3.3, б). В этом цикле регенерации спад импульса RAS# осуществляется при низком уровне сигнала CAS# (в обычном цикле обращения такой ситуации не возникает). В этом случае микросхема выполняет регенерацию строки, адрес которой находится во внутреннем счетчике микросхемы, и в задачу контроллера входит только периодическое формирование таких циклов. Во время спада RAS# сигнал WE# должен находиться в состоянии высокого уровня. Дополнительным преимуществом данного цикла является экономия потребляемой мощности за счет неактивности внутренних адресных буферов.

Рисунок 3.3 Цикл регенерации динамической памяти

Микросхемы синхронной динамической памяти выполняют циклы CBR по команде Auto Refresh. А по команде Self Refresh или Sleep Mode они выполняют автономную регенерацию в энергосберегающем режиме. Такой возможностью обладают некоторые современные микросхемы, имеющие внутренний генератор. Вход в режим осуществляется как в цикл CBR, но сигнал RAS# должен быть активен более 100 мкс. Информация в таком состоянии будет храниться сколь угодно долго при наличии питающего напряжения. Выход из этого «спящего» состояния осуществляется по подъему сигналов RAS# и CAS#.

Цикл скрытой регенерации (hidden refresh) является разновидностью цикла CBR: здесь в конце полезного цикла чтения или записи сигнал CAS# удерживается на низком уровне, а RAS# поднимается и снова опускается, что и является указанием микросхеме на выполнение цикла регенерации по внутреннему счетчику (рис. 3.4). При этом слово «скрытость» не всегда означает экономию времени (затраты на регенерацию остаются теми же, что и в обычном CBR, хотя в принципе возможно предельное укорочение активной части импульса CAS# при чтении). Во время скрытой регенерации после цикла чтения выходные буферы сохраняют только что считанные данные (в обычном CBR выходные буферы находятся в высокоимпедансном состоянии).

Регенерация основной памяти в PC/XT осуществлялась каналом DMA-0. Сигнал Refr, вырабатываемый каждые 15,6 мкс по сигналу от первого канала таймера-счетчика 8253/9254 (порт 04lh), вызывает холостой цикл обращения к памяти для регенерации очередной строки. В PC/AT контроллер регенерации усложнен. В современных компьютерах регенерацию основной памяти берет на себя чипсет, и его задача - по возможности использовать для регенерации циклы шины, не занятые ее абонентами (процессорами и активными контроллерами).

Рисунок 3.4 Диаграмма скрытой регенерации

Из всех типов динамической памяти (FPM, EDO, BEDO, SDRAM) наиболее перспективна SDRAM (Synchronous DRAM) -- быстродействующая синхронная динамическая память, работающая на частоте системной шины без тактов ожидания внутри пакетного цикла, и обеспечивающая цикл чтения 5-1-1-1 на частотах до 100 МГц От обычной (асинхронной) динамической памяти, у которой все внутренние процессы инициируются только сигналами RAS#, CAS# и WE#, память SDRAM отличается использованием постоянно-присутствующего сигнала тактовой частоты системной шины. Это позволяет создавать внутри микросхемы высокопроизводительный конвейер на основе ячеек динамической памяти со вполне обычным временем доступа (50-70 нс). Синхронный интерфейс обеспечивает трехкратный выигрыш в производительности по сравнению с традиционными микросхемами DRAM, имеющими запоминающие ячейки с тем же быстродействием. Микросхемы SDRAM являются устройствами с программируемыми параметрами, со своим набором команд и внутренней организацией чередования банков. Кроме команд записи и чтения с программируемыми параметрами пакетного цикла имеются команды автоматической регенерации и перевода в режим хранения данных с пониженным энергопотреблением. Длина пакетного цикла чтения и записи (burst length) может программироваться (1, 2, 4, 8 или 256 элементов), цикл может быть прерван специальной командой (без потери данных) Задержка данных (количество тактов) относительно команды чтения (read latency) программируется для оптимального согласования быстродействия памяти с частотой системной шины. Конвейерная адресация позволяет инициировать очередной цикл обращения до завершения предыдущего. Автоматическая регенерация (цикл CBR) выполняется по командам «Auto Refresh» (REFR), для сохранения информации требуется выполнение команд REFR с периодом 15,6 мкс (стандартная регенерация, 4096 команд за 64 мс) Существуют и модификации с пониженной частотой регенерации (extended refresh) По команде «Self Refresh» (SLFR) память переходит в режим саморегенерации, которой не требуется никаких внешних обращений. В этом режиме операции чтения и записи запрещены. Возможен также и перевод в режим хранения с пониженным потреблением, при котором отключается питание внешних буферов. На рис. 3.5 приведены временные диаграммы пакетных циклов записи и чтения синхронной памяти. Все входные сигналы считаются действительными во время положительного перепада тактового сигнала CLK. Текущая команда определяется комбинацией сигналов на управляющих входах RAS#, CAS#, WE#, A11 и А10 при низком уровне CS#. Набор команд включает следующие:

MRS (Mode Register Set) -- программирование параметров.

ACTV x (Bank activate/row-address entry) -- активация банка и ввод адреса строки, х -- внутренний банк: Т (Тор) -- «верхний», В (Bottom) -- «нижний».

WRT х (Column-address entry/write operation) -- команда записи и ввод адреса столбца.

Рисунок 3.5 Временные диаграммы пакетных циклов SDRAM: А и В -- данные для записи по адресу R0/C0 и R0/C0+1, С и D -- данные, считанные по адресу R0/C1 и R0/C1 +1

READ х (Column-address entry/read operation) -- команда чтения и ввод адреса столбца;

DEACx (Bank deactivate) -- деактивация банка, предзаряд (precharge) RAS;

REFR (Auto-refresh), NOOP (No Operations), STOP и DESL (Deselect) - вспомогательные команды;

SLFR (Self-refresh), PDE (Power-down entry), HOLD -- команды саморегенерации и энергосбережения, вводящиеся с помощью сигнала СКЕ.

MASK, ENBL -- команды разрешения операций с байтами для - каждого такта пакетного цикла, вводимые сигналами DQMx.

Внутренний счетчик адреса работает по модулю, равному запрограммированной длине пакетного цикла (например, при burst length = 4 он не позволяет перейти границу обычного четырехэлементного пакетного цикла).

По причине существенного отличия интерфейса микросхемы SDRAM не могут быть установлены в модули SIMM, они применяются в DIMM или устанавливаются прямо на системную (или графическую) плату.

Делись добром ;)