Электронная память применяется практически во всех подсистемах PC, выступая в качестве оперативной памяти, кэш-памяти, постоянной памяти, полупостоянной памяти, буферной памяти, внешней памяти. В этой главе описаны интерфейсы микросхем и модулей динамической, статической и энергонезависимой памяти.
Динамическая память
Динамическая память — DRAM (Dynamic RAM) — получила свое название от принципа действия ее запоминающих ячеек, которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем. При отсутствии обращения к ячейке со временем за счет токов утечки конденсатор разряжается и информация теряется, поэтому такая память требует периодической подзарядки конденсаторов (обращения к каждой ячейке) — память может работать только в динамическом режиме. Этим она принципиально отличается от статической памяти, реализуемой на триггерных ячейках и хранящей информацию без обращений к ней сколь угодно долго (при включенном питании).
Запоминающие ячейки микросхем DRAM организованы в виде двумерной матрицы. Адреса строки и столбца передаются по мультиплексированной шине адреса MA (Multiplexed Address) и стробируются по спаду импульсов RAS# (Row Access Strobe) и CAS# (Column Access Strobe). Состав сигналов микросхем динамической памяти приведен в табл. 7.1.
Таблица 7.1. Сигналы микросхем динамической памяти
Сигнал | Назначение |
RAS# | Row Access Strobe — строб выборки адреса строки. По спаду сигнала начинается любой цикл обращения; низкий уровень сохраняется на все время цикла. Перед началом следующего цикла сигнал должен находиться в неактивном состоянии (высокий уровень) не менее, чем время предварительного заряда RAS (TRP — RAS precharge time) |
CAS# | Column Access Strobe — строб выборки адреса столбца. По спаду сигнала начинается цикл записи или чтения; минимальная длительность (TCAS) определяется спецификацией быстродействия памяти. Минимальная длительность неактивного состояния между циклами (высокий уровень) должна быть не менее, чем время предварительного заряда CAS (TCP — CAS precharge time) |
MAi | Multiplexed Address — мультиплексированные линии адреса. Во время спада сигнала RAS# на этих линиях присутствует адрес строки, во время спада CAS# — адрес столбца. Адрес должен устанавливаться до спада соответствующего строба и удерживаться после него еще некоторое время. Микросхемы с объемом 4 М ячеек могут быть с симметричной организацией — 11 бит адреса строк и 11 бит адреса колонок или асимметричными — 12×10 бит соответственно |
WE# | Write Enable — разрешение записи. Данные записываются в выбранную ячейку либо по спаду CAS# при низком уровне WE# (Early Write — ранняя запись, обычный вариант), либо по спаду WE# при низком уровне CAS# (Delayed Write — задержанная запись). Переход WE# в низкий уровень и обратно при высоком уровне CAS# записи не вызывает, а только переводит выходной буфер EDO DRAM в высокоимпедансное состояние |
ОЕ# | Output Enable — разрешение открытия выходного буфера при операции чтения. Высокий уровень сигнала в любой момент переводит выходной буфер в высокоимпедансное состояние |
DB-In | Data Bit Input — входные данные (только для микросхем с однобитной организацией) |
DB-Out | Data Bit Output — выходные данные (только для микросхем с однобитной организацией). Выходные буферы стандартных микросхем открыты только при сочетании низкого уровня сигналов RAS#, CAS#, OE# и высокого уровня WE#; при невыполнении любого из этих условий буферы переходят в высокоимпедансное состояние. У микросхем EDO выходные буферы открыты и после подъема CAS#. Логика управления предусматривает возможность непосредственного объединения выходов нескольких микросхем |
DQx | Data Bit — объединенные внутри микросхемы входные и выходные сигналы данных (объединение экономит количество выводов для микросхем с многобитной организацией) |
N.C. | No Connection — свободный вывод |
Выбранной микросхемой памяти является та, на которую во время активности (низкого уровня) сигнала RAS# приходит сигнал CAS# (тоже низким уровнем). Тип обращения определяется сигналами WE# и CAS#. Временная диаграмма «классических» циклов записи и чтения приведена на рис. 7.1. Как из нее видно, при чтении данные на выходе относительно начала цикла (сигнала RAS#) появятся не раньше, чем через интервал TRAC, который и является временем доступа.
Рис. 7.1. Временные диаграммы чтения и записи динамической памяти
Микросхемы DRAM имеют множество временных параметров, из которых выделим несколько важнейших, с которыми иногда приходится сталкиваться при настройке параметров циклов в CMOS Setup.
♦ Время доступа TRAC (RAS Access Time) — задержка появления действительных данных на выходе относительно спада импульса RAS (см. рисунок). Этот основной параметр спецификации памяти, измеряемый в единицах или десятках наносекунд, обычно является последним элементом обозначения микросхем и модулей (ххх-7 и ххх-70 означают время доступа 70 нс). Для современных микросхем характерно время доступа 40-100 нс.
♦ Время цикла (cycle time) — минимальный период между началами соседних циклов обращения (TWC для записи и TRC для чтения). Для современных микросхем лежит в пределах 75-125 нс.
♦ Время цикла (период следования импульсов CAS#) в страничном режиме TPC (Page CAS Time — см. п. 7.1.1).
♦ Длительность сигналов RAS# и CAS# — TRAS и TCAS — минимальная длительность активной части (низкого уровня) стробирующих сигналов (см. рисунок).
♦ Время предварительного заряда RAS и CAS TRP, и TCP (RAS и CAS Precharge Time) — минимальное время нахождения соответствующих сигналов в высоком состоянии.
♦ Время задержки между импульсами RAS# и CAS# TRCD (RAS to CAS Delay).
♦ Задержка данных относительно импульса CAS# (TCAC).
Все эти параметры и определяют предел производительности памяти. В табл. 7.2 приведены типовые значения временных параметров, отвечающих конкретной спецификации быстродействия. На них можно ориентироваться при задании циклов обращений к памяти в CMOS Setup, но при этом необходимо учитывать, что микросхемы различных производителей могут несколько отличаться друг от друга по отдельным параметрам.
Таблица 7.2. Ключевые параметры временной диаграммы DRAM
Спецификация быстродействия | TRC, нс | TRAC, нс | TPC, нс | TCAS, нс | TCP, нс |
-4 | 75 | 40 | 15 | 6 | 6 |
-5 | 100 | 50 | 20 | 8 | 8 |
-6 | 104 | 60 | 25 | 10 | 10 |
-7 | 110 | 70 | 30 | 12 | 12 |
Отметим, что все, даже самые «модные» типы памяти — SDRAM, DDR SDRAM и Rambus DRAM — имеют запоминающее ядро, которое обслуживается описанным выше способом.
Поскольку обращения (запись или чтение) к различным ячейкам памяти обычно происходят в случайном порядке, то для поддержания сохранности данных применяется регенерация (Memory Refresh — обновление памяти) — регулярный циклический перебор ее ячеек (обращение к ним) с холостыми циклами. Циклы регенерации могут организовываться разными способами, классическим является цикл без импульса CAS#, сокращенно именуемый ROR (RAS Only Refresh — регенерация только импульсом RAS#). Другой вариант — цикл CBR (CAS Before RAS), поддерживаемый практически всеми современными микросхемами памяти. В этом цикле регенерации спад импульса RAS# осуществляется при низком уровне сигнала CAS# (в обычном цикле обращения такой ситуации не возникает). Адрес регенерируемой строки для цикла COR генерирует контроллер памяти, для CBR этот адрес берется из внутреннего счетчика каждой микросхемы памяти. Цикл скрытой регенерации (hidden refresh) является разновидностью цикла CBR.
Микросхемы синхронной динамической памяти выполняют циклы CBR по команде Auto Refresh. А по команде Self Refresh или Sleep Mode они выполняют автономную регенерацию в энергосберегающем режиме.