Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Энциклопедия PC

.pdf
Скачиваний:
30
Добавлен:
13.03.2015
Размер:
8.94 Mб
Скачать

256Глава 6. Электроннаяпамять

Вкомпьютерах особо ответственного применения используют память с обна-

ружением и исправлением ошибок — ЕСС Memory (Error Checking and Correcting).

Вэтом случае для каждого записываемого информационного слова памяти (а не байта, как при контроле паритета) по определенным правилам вычисляется функция свертки, результат которой разрядностью в несколько бит также хранится в памяти. Для 64-битного слова обычно используют 7-8 дополнительных бит. При считывании схема контроля с использованием этих избыточных бит способна обнаруживать ошибки различной кратности и (или) исправлять однократные ошибки. Обнаружение ошибки выполняется «на лету» и само по себе дополнительного времени не требует. Однако для исправления ошибок требуются дополнительные такты для срабатывания аппаратной логики исправления и фиксации скорректированного результата. Даже при отсутствии ошибки нужен по крайней мере один лишний такт для срабатывания схемы контроля, разрешающей использование считанных данных. Таким образом, ЕСС-память будет работать несколько медленнее неконтролируемой, и при наличии исправимых ошибок замедление будет более заметным. Функцию контроля и исправления выполняет чипсет, его реакцию на ошибки обычно можно задать настройками CMOS Setup. Возможны различные варианты поведения, например:

тавтоматически исправлять ошибки, не уведомляя об этом систему;

тисправлять однократные ошибки, уведомляясистемутолько омногократных;

«не исправлять ошибки, а только уведомлять об их обнаружении (самый достоверныйконтроль).

Вотличие от памяти с контролем паритета, допускающей побайтное обращение, к ЕСС-памяти можно обращаться только полноразрядными словами. Заботу об этом берет на себя чипсет.

Всовременных компьютерах ЕСС широко применяется в кэш-памяти — в процессорах Р6 и выше встроенный вторичный кэш, как правило, имеет ЕССконтроль, выполняемый схемами процессора. При «разгоне» процессора ЕССконтроль может подтормаживать кэш, в котором начинают появляться ошибки, но отключение ЕСС-контроля (настройками CMOS Setup) ради ускорения чревато неконтролируемымиошибками.

Достоверность информации, хранимой в постоянной (ROM BIOS) и полупостоянной (CMOS RTC, ESCD) памяти проверяется с помощью контрольной суммы (Checksum) — обычно это байт, дополняющий до нуля сумму по модулю 256 всех байт контролируемой области. Проверка контрольной суммы обычно выполняется однократно во время теста POST.

6.1.3. Кэшированиеоперативнойпамяти

Основная память компьютеров реализуется на относительно медленной динамической памяти (DRAM), обращение к ней приводит к простою процессора — появляются такты ожидания (wait states). Статическая память (SRAM), построенная, как и процессор, на триггерных ячейках, по своей природе способна догнать современные процессоры по быстродействию и сделать ненужными такты ожидания (или хотя бысократить ихколичество). Разумным компромиссом для

6.1. Построениеоперативнойпамяти 257

построения экономичных и производительных систем явился иерархический способ организации оперативной памяти. Идея заключается в сочетании основной памяти большого объема на DRAM с относительно небольшой кэш-памятью на быстродействующих микросхемах SRAM.

В переводе слово «cache» (кэш) означает «тайный склад», «тайник» («заначка»). Тайна этого склада заключается в его «прозрачности» — адресуемой области памяти для программы он не добавляет. Кэш является дополнительным быстродействующим хранилищем копий блоков информации из основной памяти, вероятность обращения к которым в ближайшее время велика. Кэш не может хранить копию всей основной памяти, поскольку его объем во много раз меньше объема основной памяти. Он хранит лишь ограниченное количество блоков данных и каталог (cache directory) — список их текущего соответствия областям основной памяти. Кроме того, кэшироваться может и не вся оперативная память, доступная процессору: во-первых, из-за технических ограничений может быть ограничен максимальный объем кэшируемой памяти; во-вторых, некоторые области памяти могут быть объявлены некэшируемыми (настройкой регистров чипсета или процессора). Если установлено оперативной памяти больше, чем возможно кэшировать, обращение к некэшируемой области ОЗУ будет медленным. Таким образом, увеличение объема ОЗУ, теоретически всегда благотворно влияющее на производительность, может снизить скорость работы определенных компонентов, попавших в некэшируемую память. В ОС Windows память распределяется, начиная с верхних адресов физической памяти, в результате чего в некэшируемую область может попасть ядро ОС(см. п. 3.2.7).

При каждом обращении к памяти контроллер кэш-памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше. Если она там есть, то это случай кэш-попадания (cache hit) и данные берутся из кэшпамяти. Если действительной копии там нет, это случай кэш-промаха (cache miss), и данные берутся из основной памяти. В соответствии с алгоритмом кэширования блок данных, считанный из основной памяти, при определенных условиях заместит один из блоков кэша. От интеллектуальности алгоритма замещения зависит процент попаданий и, следовательно, эффективность кэширования. Поиск блока в списке должен производиться достаточно быстро, чтобы «задумчивостью» в принятии решения не свести на нет выигрыш от применения быстродействующей памяти. Обращение к основной памяти может начинаться одновременно с поиском в каталоге, а в случае попадания — прерываться (архитектура Look aside). Это экономит время, но лишние обращения к основной памяти ведут к увеличению энергопотребления. Другой вариант: обращение к основной памяти начинается только после фиксации промаха (архитектура Look Through), при этом теряется, по крайней мере, один такт процессора, зато экономится энергия.

Кэш в современных компьютерах строится по двухуровневой, а иногда и трехуровневойсхеме.

Первичный кэш, или L1 Cache (Level I Cache), — кэш 1 уровня, внутренний (Internal, Integrated) кэш процессоров класса 486 и выше, а также некоторых моделей 386.

Вторичный кэш, или L2 Cache (Level 2 Cache), — кэш 2 уровня. Для процессоров вплоть до Pentium (и аналогичных) это внешний (External) кэш,

258 Глава 6. Электроннаяпамять

установленный на системной плате. В Р6 и более мощных процессорах вторичный кэш расположен в одном корпусе с процессором, и для таких процессоров дополнительный кэш на системную плату уже не устанавливается.

т Кэшем третьего уровня оказывается кэш, установленный на системной плате с сокетом 7, когда в него устанавливают процессор AMD K6-3, обладающийвстроеннымдвухуровневымкэшем.

Объем первичного кэша невелик (8-128 Кбайт); чтобы повысить его эффективность, дляданныхикомандчастоиспользуетсяраздельныйкэш(такназываемая Гарвардская архитектура — противоположность Принстонской с общей памятью для команд и данных). В процессорах Pentium 4 первичный кэш устроен уже иначе(см. п. 5.6.2).

Кэш-контроллер должен обеспечивать когерентность (coherency) — согласованность данных кэш-памяти обоих уровней с данными в основной памяти при том условии, что обращение к этим данным может производиться не только процессором, но и другими активными (bus-master) адаптерами, подключенными к шинам (PCI, VLB, ISA ит. д.). Следует также учесть, что процессоров может быть несколько, иукаждогоможетбытьсвойвнутреннийкэш.

Контроллер кэша оперирует строками (cache line) фиксированной длины. Строка может хранить копию блока основной памяти, размер которого, естественно, совпадает с длиной строки. С каждой строкой кэша связана информация об адресе скопированного в нее блока основной памяти и ее состоянии. Строка может быть действительной (valid) — это означает, что в текущий момент времени она достоверно отражает соответствующий блок основной памяти, или недействительной. Информация отом, какойименноблокзанимаетданнуюстроку(то есть старшая часть адреса или номер страницы) и о ее состоянии, называется тегом (tag) и хранится в связанной с данной строкой ячейке специальной памяти тегов (tag RAM). В операциях обмена с основной памятью обычно строка участвует целиком (несекторированный кэш), для процессоров 486 и выше длина строки совпадает с объемом данных, передаваемых за один пакетный цикл (для 486 — это 4 x 4 = 16 байт, для Pentium — 4 х 8 = 32 байт). Возможен и вариант секторированного (sectored) кэша, при котором одна строка содержит несколько смежных ячеек — секторов, размер которых соответствует минимальной порции обмена данных кэша с основной памятью. При этом в записи каталога, соответствующей каждой строке, должны храниться биты действительности для каждого сектора данной строки. Секторирование позволяет экономить память, необходимую для хранения каталога при увеличении объема кэша, поскольку большее количество бит каталога отводится под тег и выгоднее использовать дополнительные биты действительности, чем увеличивать глубину индекса (количествоэлементов) каталога.

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

6.1. Построениеоперативнойпамяти 259

записи (Write Policy). Существуют двеосновныеполитики записи дан- *мх из кэша в основную память: сквозная запись WT (Write Through) и обратная запись WB (Write Back).

Политика WT предусматривает одновременное выполнение каждой операции зол иен (даже однобайтной), попадающей в кэшированный блок, и в строку кэша, ж в основную память. При этом процессору при каждой операции записи прихо-лггся выполнять относительно длительную запись в основную память. Алгоритм достаточно прост в реализации и легко обеспечивает целостность данных за счет постоянного совпадения копий данных вкэше и основной памяти. Длянегоне *ужнохранить признаки присутствия и модифицированности — вполне доста- *^эчнотолько адресной информации тега (при этом считается, чтолюбаястрока *сегда отражает какой-либо блок, а какой именно — указывает тег). Но эта про-гтота оборачивается низкой эффективностью записи. Существуют варианты этого алгоритма с применением отложенной буферизованной записи, при которой данжы< в основную память переписываются через FIFO-буфер во время свободных гнетовшины.

Политика WB позволяет уменьшить количество операций записи на шине :сновной памяти. Если блок памяти, в который должна производиться запись, гтображен в кэше, то физическая запись сначала будет произведена в эту дейгтзительную строку кэша, которая отмечается как грязная (dirty), или модифицированная, то есть требующая выгрузки в основную память. Только после этой 1ыгрузки (записи в основную память) строка станет-чистой (clean), и ее можно Sier использовать длякэширования других блоков без потери целостности дан- *ут В основную память данные переписываются только целой строкой. Эта выгрузка

контроллером может откладываться до наступления крайней необходимости (обращение к кэшированной памяти другим абонентом, замещение в кэше яоаыми данными) или выполняться в свободное время после модификации всей строки. Данный алгоритм сложнее в реализации, но существенно эффективнее, «* WT. Поддержка системной платой кэширования с обратной записью требует обработки дополнительных интерфейсных сигналов для выгрузки модифицированных строк в основную память, если к этой области производится обраще-жте со стороны таких контроллеров шины, как другие процессоры, графические Алдлтеры, контроллеры дисков, сетевыеадаптерыит. п.

Взависимости от способа определения взаимного соответствия строки кэша

*области основной памяти различают три архитектуры кэш-памяти: кэш пряного отображения (direct-mapped cache), полностью ассоциативный кэш (fully esociative cache) и их комбинация — частичноили наборно-ассоциативный кэш '«»- associative cache). Подробно эти архитектуры рассмотрены в [2], здесь огра-«амимся краткими характеристиками.

Вкэш-памяти прямого отображения адрес памяти, по которому происходит абрдшение, однозначно определяет строку кэша, вкоторой может находиться

*мебуемый блок. Поскольку объем основной памяти много больше объема кэша, ы каждую строку кэша может претендовать множество блоков памяти с одинаковой младшей частью адреса (смещением внутри страницы). Одна строка в оп- ж:еленный момент может, естественно, содержать копию только одного из этих !ю«ов. и информация отом, какой именно блок занимает даннуюстроку, хра-

260 Глава6. Электроннаяпамять

нится в памяти тегов. Память тегов должна иметь количество ячеек, равное количеству строк кэша, а ее разрядность должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэшпамяти. Кроме адресной части тега с каждой строкой кэша связаны биты признаков действительности и модифицированности данных. Независимо от объема затребованных данных в кэш из основной памяти строка переписывается вся целиком. Если контроллер кэша реализует упреждающее считывание (read ahead), то в последующие свободные циклы шины также обновится и следующая строка (если она была чистой). Чтение «про запас» позволяет при необходимости осуществлять пакетный циклчтенияиз кэша через границу строки.

Такой кэш имеет самую простую аппаратную реализацию и применяется во вторичном кэше большинства системных плат. Однако ему присущ серьезный недостаток: если в процессе выполнения программы процессору поочередно будут требоваться блоки памяти, смещенные относительно друг друга на величину, кратную размеру страницы, то кэш будет работать интенсивно, но вхолостую (cache trashing). Увеличение размера кэша при сохранении архитектуры прямого отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэша. Объем кэшируемой памяти (MCACHED) при архитектуре прямого отображения определяется объемом кэш-памяти (VCACHK) и разрядностьюпамятитегов(N): MCACHED = VCACHE x 2N. Так, длякэша размером 256 Кбайт и 8-битной памятью тегов (типичный вариант для системных плат с сокетами 5 и 7) объемкэшируемой памяти составит MCACHED = 256 Кбайт х28 = 64 Мбайт.

Наборно-ассоциативная архитектура кэша позволяет каждому блоку кэши-

руемой памяти претендовать на одну из нескольких строк кэша, объединенных в набор (set). Можно считать, что в этой архитектуре есть несколько параллельно и согласованно работающих каналов (банков) прямого отображения, где контроллеру кэша приходится принимать решение о том, в какую из строк набора помещать очередной блок данных. В простейшем случае каждый блок памяти может помещаться в одну из двух строк (Two Way Set-Associative Cache — двухканальный наборно-ассоциативный кэш). Наборно-ассоциативная архитектура широко применяется для первичного кэша современных процессоров. Объем кэшируемой памяти определяется так же, как и в предыдущем варианте, но здесь фигурируют объем одного банка (а не всего кэша) и разрядность относящихся к немуячеектега.

В отличие от предыдущих у полностью ассоциативного кэша любая его строка

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

6.1.4. Пакетныйрежимпередачиданных

Режим пакетной передачи (Burst Mode) предназначен для ускорения операций пересылки строк кэша в процессорах 486+. Строка кэша процессора 486 имеет длину 16 байт, следовательно, дляеепересылки требуются четыре32-разрядных

6.2. Динамическаяпамять 261

шинных цикла. Для пересылки 32-байтной строки кэша Pentium+ требуются тоже четыре такта, поскольку разрядность передач составляет 64 бита. Использование кэша предполагает, что строка должна в нем присутствовать целиком. Пакетный цикл(Burst Cycle) оптимизирован именнодляопераций обменавнутреннегокэша с оперативной памятью. В этом цикле адрес и сигналы идентификации типа шинного цикла выдаются только в первом такте пакета, а в каждом из последующих тактов могут передаваться данные, адрес которых уже не пересылается по шине, а вычисляется из первого адреса по правилам, известным процессору и контроллеру памяти. Пакетные циклы связаны только с кэшируемой памятью, при этом кэшируемость памяти подразумевает и поддержку пакетного режима. Один пакетный цикл не может пересекать границу строки кэша. Специфический порядок следования адресов в пакетном цикле определяется начальным адресом пакета. Порядок чередования (interleaving) адресов, который иллюстрирует табл. 6.1, в пакетном цикле характерен для всех процессоров Intel и совместимых с ними, начиная с 486. Он оптимизирован для двухбанковой организации памяти, подразумевающей чередование банков, используемых в сосед--их передачах пакетного цикла. С точки зрения памяти у каждой микросхемы so время пакетного цикла могут изменяться только два младших бита адреса «.«зависимо от разрядности шины данных процессора). Данный порядок чередования поддерживает любая память с пакетным режимом: динамическая BEDO DRAM, SDRAM и статическая Sync Burst SRAM, PB SRAM, RDRAM. Процес-

других семейств (например, Power PC) используют линейный (linear) по-к адресов в пакете. Микросхемы пакетной памяти обычно имеют входной :жгнал. задающийпорядокадресовдляконкретногоприменения.

6.1. ПоследовательностьадресоввпакетномциклеPentium*

адрес

Второйадрес

Третийадрес

Четвертыйадрес

 

 

10h

18h

 

 

18h

10h

 

18h

 

 

 

 

 

 

.«b

lOh

 

0

 

 

 

 

Временная диаграмма пакетных циклов обращения к памяти (главным обра-»:м. чтения) является основной характеристикой производительности памяти шсмяыотера. Ее описывают числом тактов системной шины, требуемых для каж-acii передачи пакета. При этом, естественно, оговаривают и саму частоту. Так, «Kspmiep, для динамической памяти BEDO-50 не достижимый идеал — цикл 5-: -: -1 на частоте 66 МГц.

6.2. Динамическаяпамять

1даад*ическая память — DRAM (Dynamic RAM) — получила свое название от ярсгзста действия ее запоминающих ячеек, которые выполнены в виде конденаггэрюа, образованных элементами полупроводниковых микросхем. Несколько ffitxсаяописание физических процессов, можно сказать, чтопри записи логи-

Write Enable — разрешение записи. Данные записываются ввыбраннуюячейку либо поспаду CAS# при низком уровне WE# (Early Write — ранняя запись, обычный вариант), либопоспаду WE# при низком уровне CAS# (Delayed Write — задержанная запись). ПереходWE# внизкий уровень иобратно при высоком уровне CAS# записи невызывает, а толькопереводит выходной буфер EDO DRAM ввысокоимпедансное состояние

262 Глава6. Электроннаяпамять

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

6.2.1. ОсновыработыDRAM

Запоминающие ячейки микросхем DRAM организованы в виде двумерной матрицы. Адрес строки и столбца передается по мультиплексированной шине адреса MA (Multiplexed Address) и стробируется по спаду импульсов RAS# (Row Access Strobe) и CAS# (Column Access Strobe). Состав сигналов микросхем динамической памяти приведен втабл. 6.2.

Таблица6.2. Сигналымикросхемдинамическойпамяти

Сигнал

Назначение

RAS#

Row Access Strobe — строб выборки адреса строки. Поспаду сигнала начинается

 

любойцикл обращения, низкий уровень сохраняется на все время цикла.

 

Передначалом следующего цикла сигнал должен находиться внеактивном

 

состоянии (высокий уровень) неменее, чем время предварительного заряда

_________RAS (TRP - RAS precharge time)______________________________

CAS#

Column Access Strobe — строб выборки адреса столбца. Поспаду сигнала начинается

 

цикл записи или чтения, минимальная длительность (TCAS) определяется

 

спецификацией быстродействия памяти. Минимальная длительность неактивного

 

состояния между циклами (высокий уровень) должна бытьнеменее, чем время

_________предварительного заряда CAS (ТСР — CAS precharge time)_____________

MAi

Multiplexed Address — мультиплексированные линии адреса. Вовремя спада сигнала

 

RAS# на этих линиях присутствует адресстроки, вовремя спада CAS# — адрес

столбца. Адресдолжен устанавливаться доспада соответствующего строба иудерживаться после негоеще некоторое время. Микросхемы собъемом 4 Мячеек

могут бытьссимметричной организацией — 11 бит адреса строк и11 бит адреса

_________колонок илиасимметричными — 12 х 10 бит соответственно______________

WE#

 

6.2. Динамическаяпамять 263

 

 

Сигнал

Назначение

 

 

06*

Output Enable — разрешениеоткрытиявыходногобуфераприоперациичтения.

Эв-In

Высокийуровеньсигналавлюбоймоментпереводитвыходнойбуфер

ввысокоимпедансноесостояние

 

Data Bit Input входныеданные(толькодлямикросхемсоднобитной организацией) Эв-Out Data Bit Output — выходныеданные(толькодля микросхемсоднобитной организацией). Выходныебуферыстандартныхмикросхемоткрытытолько

присочетаниинизкогоуровнясигналовRAS#, CAS#, OE# ивысокогоуровняWE#; приневыполнениилюбогоизэтихусловийбуферыпереходятввысокоимпедансное состояние. УмикросхемEDO выходныебуферыоткрытыипослеподъемаCAS#.

Логикауправленияпредусматривает возможностьнепосредственногообъединения

________выходовнесколькихмикросхем_____________________________

Data Bit — объединенныевнутримикросхемывходныеивыходныесигналыданных (объединениеэкономитколичествовыводовдлямикросхемсмногобитной организацией)

ч С

No Connection — свободныйвывод

Выбранной микросхемой памяти является та, на которую во время активнос- (низкого уровня) сигнала RAS# приходит сигнал CAS# (тоже низким уров-). Тип обращения определяется сигналами WE# и CAS#. Временная диаграм- «классических» циклов записи и чтения приведена на рис. 6.1. Как из нее . при чтении данные на выходе относительно начала цикла (сигнала RAS#) не раньше, чемчерез интервал TRAC, который и является временем дос-

 

 

 

Циклчтения

 

 

Циклраннейзаписи

 

Циклпозднейзаписи

ЯА5*

-

Времядоступа

/

 

 

(Early Write)

 

 

(Later Write) k,

 

:AS*

TRAC

 

 

 

 

 

 

 

 

1

 

 

 

 

i

f

^

 

 

 

 

 

 

 

 

^

 

k.

 

 

 

^

y

 

 

 

^

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(R 1

V Г*1

K1

Д 01

 

 

^R2 X C2

t

( R2

 

X c.2

 

 

VA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TRC

TRC

 

 

 

 

TCAS

TCP

 

 

 

TR

 

______

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TWC

 

 

 

 

AS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>

 

 

 

 

 

 

 

*€»

 

 

 

 

 

 

 

\

f

 

>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D1

 

 

 

)2

 

 

 

 

D2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ее»

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'

 

 

 

 

\ ___

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Микросхемы DRAM имеют много различных временных параметров, из ковыделим несколько важнейших, с которыми иногда приходится сталки-при настройке параметров циклов вCMOS Setup.

Время доступа TRAC (RAS Access Time) — задержка появления действительных данных на выходе относительно спада импульса RAS (см. рису-

264 Глава6. Электроннаяпамять

нок). Этот основной параметр спецификации памяти, измеряемый в единицах или десятках наносекунд, обычно является последним элементом обозначения микросхем и модулей (ххх-7 и ххх-70 означают время доступа

70 не). Для современных микросхем характерно время доступа 40-100 не.

иВремя цикла(cycle time) — минимальныйпериод междуначаламисоседних циклов обращения (Twc для записи и TRC для чтения). Для современных микросхем лежит в пределах 75-125 не.

*Время цикла (период следования импульсов CAS#) в страничном режиме Трс (Page CAS Time - см. п. 6.2.3).

» Длительность сигналов RAS# и CAS# — TRAS и TCAS — минимальная длительность активной части (низкого уровня) стробирующих сигналов (см. рисунок).

тВремя предварительного заряда RAS и С AS TRP и Тср (RAS и С AS Precharge Time) — минимальное время нахождения соответствующих сигналов

ввысокомсостоянии.

тВремязадержкимеждуимпульсамиRAS# иCAS# TRCD (RAS to CAS Delay).

»ЗадержкаданныхотносительноимпульсаCAS# (TCAC).

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

Таблицаб.З. КлючевыепараметрывременнойдиаграммыDRAM

Спецификация

RC' H^

RAC' Н^

Трс, не

Теду HI

СР' ^

быстродействия

 

 

 

 

 

 

 

 

100

 

50

 

 

 

 

 

104

 

_60

 

 

 

 

 

НО

 

_

 

 

 

 

 

 

 

 

 

 

 

-4

 

75

40

15

6

6

 

 

 

 

 

20

 

 

 

 

 

 

 

_25_

 

 

 

 

-5

 

 

30

 

 

 

 

 

 

 

1

 

1

 

_

 

 

 

 

 

 

 

 

 

 

 

-7

Ключевой параметр микросхем — время доступа0

 

0

 

— за всю историю удалось улучшить всего на порядок — с сотен до нескольких

десятков наносекунд. За меньший исторический период только тактовая частота процессоров х86 выросла на 2 порядка, так что разрыв между потребностями процессоров и возможностями ячеек памяти увеличивается. Для преодоления этого разрыва, во-первых, увеличивают разрядность данных памяти, а во-вторых, строят вокруг массивов ячеек памяти разные хитрые оболочки, ускоряющие процесс доступа к данным. В первую очередь стараются оптимизировать чтение, поскольку операции записи по сравнению с чтением в большинстве случаев выполняются гораздо реже. Отметим, что все, даже «самые модные» типы памяти — SDRAM, DDR SDRAM и Rambus DRAM, — имеют запоминающее ядро, которое обслуживается описанным выше способом.

6.2. Динамическаяпамять 265

6.2.2. Регенерация

Поскольку обращения (запись или чтение) к различным ячейкам памяти обычно происходят в случайном порядке, то для поддержания сохранности данных применяется регенерация (Memory Refresh — «освежение» памяти) — регулярный циклический перебор ее ячеек (обращение к ним) с холостыми циклами. Регенерация в микросхеме происходит одновременно по всейстроке матрицы г.ри обращении к любой из ее ячеек. Максимальный период обращения к каж-юи строке TRF (refresh time) для гарантированного сохранения информации у .- овременной памяти лежит в пределах 8-64 мс. В зависимости от объема и организации матрицы для однократной регенерации всего объема требуется 512, :024. 2048 или 4096 циклов обращений. При распределенной регенерации (districted refresh) одиночные циклы регенерации выполняются равномерно с пе-гиодом tRF (рис. 6.2, а), который для стандартной памяти принимается равным :5.6 мкс. Период этих циклов называют «refresh rate», хотя такое название боль-л« подошло бы к обратной величине — частоте циклов f=l/tRF. Для памяти с :.асширенной регенерацией (extended refresh) допустим период циклов до 125 мкс. 3-хзможен также и вариант пакетной регенерации (burst refresh), когда все цик-:ы регенерации собираются в пакет (рис. 6.2, б), во время которого обращение к tjмяти по чтению и записи блокируется. При количестве циклов 1024 эти паке-

•ыбудутпериодическизаниматьшинупамятипримерно на130 мкс, чтодалеко -<е всегда допустимо. По этой причине, как правило, выполняется распределения регенерация, хотя возможен и промежуточный вариант — пакетами по не-малько (например, 4) циклов.

tpjp = TRF/ n = 15,6 мкс(стандартнаяпамять)

П П П П П П П П П

П П

n « 512 /1024 /2048 / 4096 циклов

б

Рис. 6.2. Регенерациядинамическойпамяти: а— распределенная; б— пакетная

Циклырегенерациимогуторганизовыватьсяразнымиспособами. Классичес-ош является цикл без импульса CAS# (рис. 6.3, слева), сокращенно именуемый .9OR (RAS Only Refresh — регенерация только импульсом RAS#). В этом случае ijpec очередной регенерируемой строки выставляется контроллером памяти до :~.4да RAS# очередного цикларегенерации, порядокпереборарегенерируемыхr-рок не важен.

Другойвариант— циклCBR (CAS Before RAS), поддерживаемыйпрактичес- эсемисовременнымимикросхемамипамяти(рис. 6.3, справа). Вэтомцикле ?«ггяерацииспадимпульсаRAS# осуществляетсяпринизкомуровнесигналаCAS# * :<6ычномциклеобращениятакойситуацииневозникает). Вэтомслучаемик-