Регенерация динамической памяти. Виды модулей памяти и их характеристики

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

Ячейки памяти в микросхеме DRAM - это крошечные конденсаторы, которые удерживают заряды. Именно так (наличием или отсутствием зарядов) и кодируются биты. Проблемы, связанные с памятью этого типа, вызваны тем, что она динамическая, т.е. должна постоянно регенерироваться, так как в противном случае электрические заряды в конденсаторах памяти будут “стекать” и данные будут потеряны. Регенерация происходит, когда контроллер памяти системы берет крошечный перерыв и обращается ко всем строкам данных в микросхемах памяти. Большинство систем имеет контроллер памяти (обычно встраиваемый в набор микросхем системной платы), который настроен на соответствующую промышленным стандартам частоту регенерации, равную 15 мкс. Ко всем строкам данных обращение осуществляется по прохождении 128 специальных циклов регенерации. Это означает, что каждые 1,92мс (128x15 мкс) прочитываются все строки в памяти для обеспечения регенерации данных.

Регенерация памяти, к сожалению, "отнимает время" у процессора: каждый цикл регенерации по длительности занимает несколько циклов центрального процессора. В старых компьютерах циклы регенерации могли занимать до 10% (или больше) процессорного времени, но в современных системах, работающих на частотах, равных сотням мегагерц, расходы на регенерацию составляют 1% (или меньше) процессорного времени. Некоторые системы позволяют изменить параметры регенерации с помощью программы установки параметров CMOS, но увеличение времени между циклами регенерации может привести к тому, что в некоторых ячейках памяти заряд "стечет", а это вызовет сбои памяти. В большинстве случаев надежнее придерживаться рекомендуемой или заданной по умолчанию частоты регенерации.

3.3. Кэш-память - SRAM

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

Время доступа SRAM не более 2 нc, это означает, что такая память может работать синхронно с процессорами на частоте 500 МГц или выше! Однако для хранения каждого бита в конструкции SRAM используется кластер из шести транзисторов. Использование транзисторов без каких-либо конденсаторов означает, что нет необходимости в регенерации. (Ведь если нет никаких конденсаторов, то и заряды не теряются.) Пока подается питание, SRAM будет помнить то, что сохранено. Почему же тогда микросхемы SRAM не используются для всей системной памяти? Ответ можно найти в следующей таблице.1

Плотность

Быстродейст-

Стоимость

Динамическая оперативная память - DRAM

Статическая оперативная память - SRAM

По сравнению с динамической оперативной памятью быстродействие SRAM намного выше, но плотность ее намного ниже, а цена довольно высокая. Более низкая плотность означает, что микросхемы SRAM имеют большие габариты, хотя их информационная емкость намного меньше. Большое число транзисторов и кластеризованное их размещение не только увеличивает габариты микросхем SRAM, но и значительно повышает стоимость технологического процесса по сравнению с аналогичными параметрами для микросхем DRAM. Например, емкость модуля DRAM может равняться 64 Мбайт или больше, в то время как емкость модуля SRAM приблизи­тельно того же размера составляет только 2 Мбайт, причем их стоимость будет одинаковой. Та­ким образом, габариты SRAM в среднем в 30 раз превышают размер динамической оператив­ной памяти, то же самое можно сказать и о стоимости. Все это не позволяет использовать па­мять типа SRAM в качестве оперативной памяти в персональных компьютерах.

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

Еще недавно время доступа динамической оперативной памяти было не менее 60 нc (что соответствует тактовой частоте 16 МГц). Когда процессор персонального компьютера рабо­тал на тактовой частоте 16 МГц и ниже, DRAM могла быть синхронизирована с системной платой и процессором, поэтому кэш был не нужен. Однако, как только тактовая частота про­цессора поднялась выше 16 МГц, синхронизировать DRAM с процессором стало невозмож­но, и именно тогда разработчики начали использовать SRAM в персональных компьютерах. Это произошло в 1986 и 1987 годах, когда появились PC с процессором 386, работающим на частотах 16 и 20 МГц. Именно в этих персональных компьютерах впервые нашла применение так называемая кэш-память, т.е. высокоскоростной буфер, построенный на микросхемах SRAM, который непосредственно обменивается данными с процессором. Поскольку быстро­действие кэша может быть сравнимо с быстродействием процессора, контроллер кэша может предугадывать потребности процессора в данных и предварительно загружать необходимые данные в высокоскоростную кэш-память. Тогда при выдаче процессором адреса памяти дан­ные могут быть переданы из высокоскоростного кэша, а не из оперативной памяти, быстро­действие которой намного ниже.

Эффективность кэш-памяти выражается коэффициентом совпадения , или коэффициентом успеха . Коэффициент совпадения равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание - это событие, состоящее в том, что необходимые процессору данные предварительно считываются в кэш из оперативной памяти; иначе говоря, в случае попадания процессор может считывать данные из кэш-памяти. Неудачным обращением в кэш считается такое, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медлен­ной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится какое-то время "ждать", поскольку тактовая частота оперативной памяти значительно ниже, чем процессора. Если процессор работает на частоте 233 МГц, то продолжительность его цикла равна примерно 4 нс, в то время как продолжитель­ность цикла оперативной памяти может составлять 60 нс, что соответствует тактовой частоте 16 МГц. Таким образом, каждый раз, когда процессор считывает данные из оперативной памя­ти, его работа замедляется. Это настолько ощутимо, что кажется, будто он работает на тактовой частоте 16 МГц! Замедление обусловлено состоянием ожидания. Если процессор находится в состоянии ожидания, то на протяжении всего цикла (такта) никакие операции не выполняются; процессор, по существу, ждет, пока необходимые данные поступят из более медленной.опера­тивной памяти. Поэтому именно кэш-память позволяет сократить количество "простоев" и уве­личить быстродействие компьютера в целом.

Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных персональных компьютерах обычно предусмотрены два типа кэш-памяти: кэш-память первого уровня (L1) и кэш-память второго уровня (L2). Кэш-­память первого уровня также называется встроенным, или внутренним кэшем; он непосредст­венно встроен в процессор и фактически является частью микросхемы процессора. Во всех про­цессорах 486 и выше кэш-память первого уровня интегрирована в микросхему процессора.

Кэш-память второго уровня называется вторичным, или внешним кэшем; он устанавлива­ется вне микросхемы процессора. Первоначально она устанавливалась на системной плате. (Так было во всех компьютерах на основе процессоров 386, 486 и Pentium.) Если кэш-память второго уровня установлена на системной плате, то она работает на ее частоте. В этом случае кэш-память второго уровня обычно находится рядом с разъемом процессора.

Для повышения эффективности в более поздних компьютерах на основе процессоров фирмы Intel, в том числе в Pentium Pro и Pentium II/III, кэш-память второго уровня является частью про­цессора. Конечно же, он внешний по отношению к кристаллу центрального процессора, просто эта отдельная микросхема устанавливается внутри корпуса (картриджа) процессора. Поэтому на системных платах для процессоров Pentium Pro или Pentium II нет никакого кэша.

В табл.2 приведены параметры кэш-памяти первого (внутреннего) и второго уровней (внешнего) в современных компьютерах.

3.4. RDRAM

RDRAM, или Rambus DRAM, является радикально новым типом памяти, который исполь­зуется в высокопроизводительных персональных компьютерах с 1999 года. Такая память не­посредственно поддерживается в наборах микросхем системной логики. Аналогичный тип памяти уже использовался в игровых приставках - в популярной модели Nintendo 64.

Обычные типы памяти (FPM/RDO и SDRAM) иногда называют системами с широким каналом. Ширина канала памяти равна ширине шины данных процессора (в системах Pentium 64-бит). Максимальная производительность памяти SDRAM в исполнении DIMM составляет 100x8 (частота x количество передаваемых данных за один такт), или 800 Мбайт/с.

Микросхемы RDRAM увеличивают пропускную способность памяти - в них предусмот­рена "удвоенная" (16-разрядная) шина передачи данных, частота увеличена до 800 МГц, а пропускная способность равна 1,6 Гбайт/с. Для увеличения производительности можно ис­пользовать двух- и четырехканальные RDRAM, которые позволяют увеличить скорость пере­дачи данных до 3,2 или 6,4 Гбайт/с соответственно.

0дин канал памяти Rambus может поддерживать до 32 отдельных устройств RDRAM (микросхем RDRAM), которые устанавливаются в модули RIMM (Rambus Inline Memory Modules). Вся работа с памятью организуется между контроллером памяти и отдельным (а не всеми) устройством. Каждые 10нс (100МГц) одна микросхема RDRAM может передавать 16 байт.

Таблица 2 Параметры кэш-памяти первого (внутреннего) и второго уровней (внешнего) в современных компьютерах

Тип центрального процессора

Типичная тактовая частота центрального процессора, МГц

Быстродействие кэш-памяти первого уровня, нс (МГц)

Быстродействие кэш-второго уровня, нс (МГц)

Быстродействие системной платы, (МГц)

Быстродействие SIMM/DIMM, нс (МГц)

Pentium II (1997)

Pentium II (1998)

Pentium III Xeon

RDRAM работает быстрее SDRAM приблизительно в три раза.

Модули RIMM имеют посередине два ключа, которые, с одной стороны, предотвращают неправильную установку в разъем, а с другой - указывают рабочее напряжение. В настоящее время практически все модули RIMM имеют рабочее напряжение 2,5 В, однако вскоре долж­ны появиться устройства с пониженным энергопотреблением. Для новых типов модулей предназначены дополнительные ключи (рис. 4). Один из ключей в модуле имеет фиксиро­ванное положение (он называется DATUM А), а тип используемого модуля указывает другой ключ, который расположен на некотором расстоянии (с приращением 1 или 2 мм) от первого ключа DATUM А. В настоящее время используются модули типа А (2,5 В). Параметры клю­чей и их назначение приведены в табл. 3.

Рисунок 3

Рисунок 4

Таблица 3. Параметры ключей модулей RIMM и их назначение

Расстояние от DATUM A , мм

Описание

Зарезервирован

Зарезервирован

В каждом модуле RIMM устанавливается микросхема Serial Presence Detect (SPD), которая представляет собой перезаписываемое постоянное запоминающее устройство. В нем хранится информация о размере и типе RIMM, включая более детальные сведения для контрол­лера памяти. Контроллер считывает эту информацию и конфигурирует с ее помощью установленную память.

На рис. 5 показана схема установки модуля RIMM. Котроллер RDRAM и тактовый ге­нератор обычно устанавливаются на системной плате и являются частью компонента систем­ной логики North Bridge. Как видите, три модуля RIMM подключаются последовательно к контроллеру памяти. Каждый модуль содержит 4, 8 или 16 микросхем RDRAM, а также мик­росхему SPD. Каждый новый модуль RIMM необходимо подключать непосредственно за по­следним установленным. В каждый пустой разъем необходимо установить модуль согласова­ния (на рис. 5 он установлен в последний свободный разъем). Временные характеристики работы памяти накладывают ограничение на расстояние между первым модулем RIMM и контроллером памяти на системной плате - не более 6 дюймов (15,24мм). Общая длина шины не должна превышать расстояние, которое сигнал пройдет за четыре такта (около 5 нc).

Динамическая память любого типа, в отличие от статической, даже при подаче питающих напряжений не обладает способностью хранить свою информацию сколь угодно долго. Состояние элементарной ячейки динамической памяти определяется наличием или отсутствием заряда на конденсаторе, и этот заряд подвержен утечке. Поэтому для сохранения данных в динамической памяти ее ячейки необходимо периодически подзаряжать, что и составляет суть процесса регенерации. Как это происходит, чуть ниже.
При выполнении операции чтения регенерация выполняется автоматически. Полученные на усилителе сигнала данные тут же записываются обратно. Считается, что такой алгоритм позволяет уменьшить число требуемых регенераций и увеличить быстродействие. Но это совершенно не так! Считывается ли информация из памяти или нет, "частота" регенерации при этом не меняется. Она либо вообще не регулируется (нет соответствующих опций в "BIOS Setup"), либо является строго фиксированной после соответствующиих установок.

Возможны три различных метода регенерации данных.

Регенерация одним RAS (RAS Only Refresh - ROR). Этот метод использовался еще в первых микросхемах DRAM. Адрес регенерируемой строки передается на шину адреса и выдается сигнал RAS (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них поступают на внутренние цепи микросхемы, после чего записываются обратно. Так как далее сигнал CAS не следует, цикл чтения/записи не начинается. Затем передается адрес следующей строки и так далее, пока не будет пройдена вся матрица памяти, после чего цикл регенерации повторяется. К недостаткам этого метода можно отнести то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера.
CAS перед RAS (CAS Before RAS - CBR) - стандартный метод регенерации. При нормальном цикле чтения/записи сигнал RAS всегда приходит первым, за ним следует CAS. Если же CAS приходит раньше RAS, то начинается специальный цикл регенерации - CBR. При этом адрес строки не передается, а микросхема использует свой внутренний счетчик, содержимое которого увеличивается на 1 при каждом CBR-цикле (т.н. инкрементирование адреса строки). Этот режим позволяет регенерировать память, не занимая шину адреса, что, безусловно, более экономично.
Автоматическая регенерация памяти (Self Refresh - SR, или саморегенерация). Этот метод обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" ("suspend"), и тактовый генератор перестает работать. В таком состоянии обновление памяти по вышеописанным методам невозможно (попросту отсутствуют источники сигналов), и микросхема памяти выполняет регенерацию самостоятельно. В ней запускается свой собственный генератор, который тактирует внутренние цепи регенерации. Такая технология работы памяти была внедрена с появлением EDO DRAM. Необходимо отметить, что в режиме "сна" память потребляет очень малый ток.
В классической реализации PC AT запросы на регенерацию DRAM генерировал канал 1 системного таймера 8254. К его выходу подключен триггер, работающий в счетном режиме и меняющий свое состояние на противоположное при каждом запросе. Состояние этого триггера можно программно считывать через бит 4 порта 61h. Проверка Refresh Toggle заключалась в проверке того факта, что этот триггер переключается с заданной частотой. Но со временем стали применяться другие алгоритмы регенерации памяти (что и изложено выше), и несмотря на то, что Refresh Toggle сохраняется для совместимости, по нему уже нельзя проверить формирование запросов на регенерацию. Циклы регенерации выполняет входящий в состав чипсета контроллер регенерации, который для выполнения своей задачи должен получать управление магистралью каждые 15,6 мкс. Во время цикла регенерации производится чтение одной из N ячеек памяти.

Burst Refresh

- (пакетная регенерация). Как правило, трактовка этой опции в литературе носит ошибочный характер. При разрешении опции ("Enabled") в единый пакет собираются запросы на регенерацию, причем такое пакетирование может в некоторых случаях обеспечивать аккумулирование запросов по всему объему строк в памяти. Такой метод ведет к значительному повышению производительности, но есть и обратная сторона. На достаточно длительные промежутки времени и постоянно происходит захват шины памяти, что приводит к блокировке доступа к ней процессора или других устройств.
Опция может называться "DRAM Burst Refresh".

CAS Before RAS Refresh

Метод регенерации памяти, когда сигнал CAS устанавливается раньше сигнала RAS. В отличие от стандартного способа регенерации, этот метод не требует перебора адресов строк извне микросхем памяти - используется внутренний счетчик адресов. Однако, этот способ регенерации должен поддерживаться микросхемами памяти. Если раньше можно было встретить фразы, что большинство модулей памяти поддерживает такой метод регенерации, то сейчас это уже стандартное аппаратное решение. Использование этого метода позволяет заметно снизить потребляемую модулями памяти энергию. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться "CAS Before RAS".

CAS-to-RAS Refresh Delay

Действие этой опции возможно при включенном состоянии предыдущей (или аналогичной), так как в данном случае устанавливается время задержки между стробирующими сигналами (в тактах системной шины). Естественно, что установка меньшего значения приводит к снижению времени, затрачиваемого на регенерацию. Большее же значение повышает надежность, т.е. достоверность данных, находящихся в памяти. Оптимальный вариант для данной системы выбирается опытным путем. Может принимать значения: "1T", "2T" (по умолчанию).

Concurrent Refresh

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

Decoupled Refresh

- (раздельная регенерация). Поскольку ISA-шина имеет невысокую скорость работы, то включение этой опции ("Enabled") позволит чипсету разделить регенерацию для основной памяти и ISA-шины. При этом процесс регенерации для ISA-шины может быть завершен во время выполнения процессором других инструкций. Использование этой опции заметно увеличивает производительность всей системы. Опция эта играла заметную роль во времена 486-х машин.
Но могла возникнуть и проблема, которая заключалась в том, что некоторые карты расширения (обычно, видеокарты) требовали к себе внимания процессора во время начального цикла регенерации шины. Естественно, что это могло привести к нежелательным сбойным ситуациям. Отключение опции могло потребоваться также, если при работе с графическими режимами высокого разрешения на экране монитора появлялись какие-то символы или "снег". При этом необходимо было отключать и такой метод работы с памятью, как "Memory Relocation" (см. выше). Сказанное выше было характерно, например, для видеокарт на чипе S3 801 (таких, как SPEA V7 Mirage), работающих совместно с некоторыми картами-контроллерами производства "Adaptec" с расширенной ROM-памятью, необходимой для обслуживания жестких дисков объемом свыше 1 ГБ.
Опция может называться "Decoupled Refresh Option".

Distributed Refresh

- (распределенная регенерация). Не совсем ясно, что "прячется" под этой опцией, хотя есть предположение, что это аналог "раздельной регенерации". В свое время данную опцию можно было встретить в системах на чипсетах от "VIA Technologies". Значения опции: "Disabled" и "Enabled".

DRAM Ahead Refresh

Опция, позволяющая включать ("Enabled") режим "предвидения" для цикла регенерации. Суть этого "предвидения" станет более понятна из следующей опции, которая становится активной при включении разрешения.
x DRAM Ahead Refresh Timing
- данная же опция по сути позволяет "отодвинуть" начало цикла регенации на 10 или 40 системных тактов. Небольшое, но все же повышение производительности. Столь уникальные опции были реализованы в системах на наборе SIS540 и более пока нигде не встречались.

DRAM Burst at 4 Refresh

Эта опция также связана с пакетной регенерацией, но суть ее иная. Разрешение опции ("Enabled") включает регенерацию по 4 строки в пакете. Такой метод заметно повышает производительность. При этом шина освобождается намного быстрее, чем в случае с опцией "Burst Refresh".

DRAM CAS# Precharge

- (время предварительного заряда CAS). Эта функция применяется при наличии в системе синхронной динамической памяти, и с ее помощью устанавливается (в тактах системной шины) время для формирования сигнала CAS (накопления заряда по CAS) до начала цикла регенерации памяти (см. ниже дополнительно "DRAM RAS# Precharge Time"). Уменьшение этого значения увеличивает быстродействие, но возможны проблемы со стабильностью системы, если в то же время установлены "пограничные" значения для RAS-строба. Если установлено слишком малое значение (время), также и регенерация может оказаться незавершенной, что в итоге приведет к потере данных, находящихся в памяти.
Опция может иметь наименования: "CAS# Precharge", "CAS# Precharge Time", "FPM CAS# Precharge", "FPM DRAM CAS Precharge", "EDO/FPM CAS Precharge Time", "EDO CAS# Precharge", "EDO DRAM CAS Precharge".
Большим разнообразием значений все перечисленные опции не отличаются. "1T", "2T" или такой ряд: "1T", "1T/2T", "2T". Некоторое разнообразие внесла опция "CAS Precharge Period": "1T", "2T", "3T", "4T".

DRAM RAS Only Refresh

Включение/отключение метода обновления DRAM, альтернативного методу "CAS-before-RAS". Если BIOS содержит другие возможности по регенерации памяти, то эту опцию необходимо отключить. В противном случае придется использовать этот устаревший метод обновления памяти.

DRAM RAS# Precharge Time

- (время предварительного заряда RAS). Эта функция применяется при наличии в системе синхронной динамической памяти и она позволяет устанавливать время (в тактах системной шины) для формирования сигнала RAS (иногда говорят о накоплении заряда по RAS) до начала цикла регенерации памяти. Фактически, тем самым устанавливается минимальный интервал между двумя последовательными циклами чтения или записи. Уменьшение этого значения увеличивает быстродействие. Но если установлено недостаточное время, регенерация может быть некомплектной, что в итоге приведет к потере данных, находящихся в памяти. Естественно, что за повышением частоты, на которой работает память, следует и выбор большего значения, что важно при разгоне памяти. Возможные значения могут быть представлены в различном виде: в виде цифровых значений - "3", "4" и т.д.; с указанием системных тактов - "3 Clocks" или "1T". А обобщенный ряд значений имеет следующий вид: 0T, 1T, 2T, 3T, 4T, 5T, 6T, хотя в каждом конкретном варианте может быть представлено 2-4 значения.
Опция может иметь множество названий: "DRAM RAS# Precharge Period", "RAS# Precharge Time", "RAS Precharge Timing", "RAS# Precharge Period", "FPM DRAM RAS# Precharge", "FPM RAS Precharge", "RAS# Precharge", "DRAM RAS Precharge", "EDO RAS Precharge", "EDO RAS# Precharge Time", "EDO RAS Precharge Timing", "FPM/EDO RAS# Precharge Time", "EDO/FPM RAS Precharge Time".
Как видим, опция не потеряла своей актуальности с появлением EDO-памяти и, что интересно, затем также BEDO- и SDRAM- модулей, поскольку данный параметр является одной из важнейших характеристик чипов памяти: "BEDO RAS Precharge", "SDRAM RAS Precharge Time".
Правда, кроме привычных параметров типа "3T" или "2 Clks" (эти значения и характерны для SDRAM-модулей) в различных версиях BIOS стали "встречаться" новые виды значений, таких как: "Same as FPM" и "FPM-1T", "Fast" и "Normal", "Fast" и "Slow". Для последней пары параметров "Slow" (медленно) равносильно увеличению количества тактов, что повышает стабильность работы системы, поэтому значение "Fast" следует устанавливать в случае уверенности в качестве модулей памяти. Что же касательно первой пары, то для опций вида "FPM DRAM RAS# Precharge" ряд значений мог иметь вид: 2T, 3T, 4T, 5T, 6T, а отсюда и возможный результат для SDRAM-памяти, хотя совершенно не очевидный.
Вполне возможна и ситуация, когда версия BIOS предоставляет возможность установки каких-либо параметров для каждого банка памяти в отдельности. Поскольку речь идет о "предзаряде" для RAS#-строба, то опция (опции!) может называться "Bank 0&1 (2&3)(4&5): EDO/SDRAM Precharge" со значениями: "3T/2T", "4T/3T".
"AMI BIOS" для "своей" опции "SDRAM RAS# Precharge" предложил дополнительное значение "Auto". Правда, один из вариантов опции "SDRAM RAS Precharge" представил и значения "Disabled"/"Enabled". Запрещать опцию можно только в случае абсолютной уверенности в модулях памяти, иначе неприятностей не избежать. Раз коснулись возможности запрещать/разрешать механизм предзаряда, то нужно отметить и возможность включать ("Enabled") оптимизацию предзаряда - "SDRAM: Optimal RAS# Prech.".
Для данной опции (опций!) необходимо отметить пару важных моментов. Нельзя путать данную опцию с опциями типа "Refresh RAS Active Time", которые отвечают за длительность сигнала RAS#. В нашем случае речь идет как бы о подготовительном процессе. И второе! Данную опцию совершенно правильно было бы разместить и в разделе, посвященном стандартной оптимизации памяти (см. ниже). Процедуры выставления сигнала RAS# и при регенерации, и при операциях чтения/записи идентичны.
В завершение вышесказанного опция "RAS# Precharge/Refresh" со значениями "3T/4T" и "4T/5T". Данной опцией устанавливаются одновременно и время подготовительной фазы, и общее время активности сигнала RAS# для цикла регенерации.

DRAM Refresh Method

Опция установки метода регенерации. Опция может называться также "Refresh Type", "DRAM Refresh Type", "DRAM Refresh Mode" или "Refresh Type Select". При любых вариациях опция, как правило, среди возможных параметров содержит только два параметра. Приводим весь возможный ряд: "CAS before RAS" (или "CAS-RAS"), "RAS only", "RAS# Before CAS#", "Normal", "Hidden".

DRAM Refresh Period

Установка периода (частоты повтора), требуемого для регенерации памяти, в соответствии со спецификацией модулей памяти. В новейших версиях BIOS такая опция может и не присутствовать, хотя ее наличие в современной системе по прежнему позволяет оптимизировать процесс регенерации. Ранее такая опция предлагала пользователю широкий простор для творчества: в зависимости от версии BIOS и его производителя, чипсета, модулей памяти. Опция могла также носить название "Refresh Cycle Time (us)", "DRAM Refresh Cycle Time", "Memory Refresh Rate", "DRAM Refresh Rate Select", "DRAM Refresh Rate","SDRAM Refresh Rate" или просто - "DRAM Refresh". Вот неполный перечень значений, с которыми мог встретиться пользователь:
"For 50 MHz Bus", "For 60 MHz Bus", "For 66 MHz Bus", "Disabled" (такой необычный вариант встретился в системе на i430FX),
"50/66 MHz", "60/60 MHz", "66/66 MHz",
"15 us", "30 us", "60 us", "120 us",
"Disabled" (или "No Refresh"), "15.6 us", "31.2 us", "62.4 us", "124.8 us", "249.6 us",
"15.6 us", "31.2 us", "62.4 us", "125 us", "250 us",
"15.6 us", "62.4 us", "124.8 us", "187.2 us",
"1040 Clocks", "1300 Clocks",
"15.6 us", "7.9 us", "FR 128 CLKs" (понятно, что речь идет о частоте - "frequency"),
"Disabled", "Normal",
"Fast", "Slow",
"Faster", "Slower",
"Disabled" (устанавливаются стандартные 15,6 мкс), "Enabled" (соответствует удвоению частоты).
Остается отметить, что чем реже производится регенерация памяти, тем эффективнее работает система. Но если явно наблюдаются нарушения в работе системы, то частоту обновления необходимо повысить. Значение "Disabled", появляющееся в некоторых версиях, не должно использоваться. В противном случае следует ожидать потери информации в памяти. И наконец, если пользователь видит на экране перед собой целый ряд значений для выбора, то это может означать, что в состав чипсета входит специальный конфигурационный регистр, в котором три разряда (или менее) "отданы" под возможные комбинации устанавливаемой частоты.
Как дополнение к изложенному рассмотрим еще некоторые опции и чипсеты, для которых они были реализованы:
"DRAM Refresh Ratery Time" (SIS530) - "15.6 us", "7.8 us", "3.9 us",
"Refresh Rate" (AMD751) - "20.4 us", "15.3 us", "10.2 us", "5.1 us".
Опция "Refresh Mode Select", несмотря на некоторое несоответствие в названии, предложила значения "7.8 ?sec", "15.6 ?sec", "64 ?sec", а опция "Refresh Interval" - "7.8 ?sec", "15.6 ?sec", "31.2 ?sec", "64 ?sec", "128 ?sec".
Вот тут и может возникнуть, с одной стороны, мнимое несоответствие, а с другой, некоторое непонимание сути представленных опций. Ведь в названиях опций упоминаются и "частота", и "период", и "интервал", и "время цикла". Поэтому требуется дополнительное разъяснение.
Понятно, что одновременно регенерировать всю динамическую память невозможно. Допустимо также говорить о построчной регенерации матрицы памяти (об этом см. выше). Тогда можно ввести сразу два понятия. Первое - временной интервал между регенерацией, например, соседних строк. Второе - время полного цикла регенерации, т.е. время, через которое необходимо будет снова регенерировать условную начальную строку. "Обычный" чип памяти содержит 4096 строк. Можно утверждать, что общее время цикла регенерации составляет 64 мсек (один из стандартов JEDEC). И тогда упомянутый интервал (период) регенерации составляет:
64000: 4096 = 15.6 ?sec.
Это означает, что каждые 15,6 мкс контроллер памяти инициирует цикл регенерации отдельной строки памяти. И это значение характерно для тех же модулей DIMM емкостью 128 Mbit или меньше. Если же речь идет о модулях емкостью 256 Mbit и более, то количество строк составит 8192 и интервал регенерации 7.8 ?sec, обусловленный сохранением времени общего цикла в 64 мсек. Если же в системе используются модули различной емкости, то временная характеристика регенерации устанавливается по модулю большей емкости, т.е. с более высокой частотой.
Необходимо отметить, что применявшиеся ранее модули памяти во многих случаях позволяли удлинить цикл регенерации, т.е. увеличить ее интервал, тем самым несколько повышая производительность системы.
И, конечно же, картина была бы неполной, если бы мы не вспомнили о RAMBUS DRAM . Мы не будем детально останавливаться на архитектуре этого типа памяти, напомним только, что структура и организация банков памяти носит многоканальный характер. Причем каждый канал данных представляет собой шину шириной всего в один (!) байт. Но за счет высокопроизводительного конвейера, высокоскоростной внутренней магистрали, синхронизируемой собственным тактовым генератором, пропускная способность шины памяти уже доведена до 3,2 ГБ/сек. Ну а теперь опция - "RDRAM Refresh Rate, Channel N", и ее значения: "No refresh", "1.95 us", "3.9 us", "7.8 us".

DRAM Refresh Queue

Этот параметр во включенном состоянии допускает использование более эффективного метода обновления памяти. Дело в том, что чипсет способен формировать последовательность нескольких запросов обновления памяти, пока шина процессора не будет готова к выполнению следующей операции. Речь здесь идет об использовании режима конвейеризации запросов на регенерацию памяти. "Enabled" разрешает постановку в очередь, как правило, 4 запросов регенерации памяти. Установка в "Disabled" означает отключение конвейеризации, что естественно снижает эффективность и приводит к проведению всех циклов регенерации либо по приоритету запросов, либо в соответствии с методами, изложенными в других опциях.
Данный режим должен быть всегда включен. "Enabled" устанавливается и по умолчанию. Одно условие! Установленные модули памяти должны поддерживать это свойство, большинство современных типов памяти поддерживают этот метод. Более того! Использование столь эффективного метода регенерации зависит и от реализации чипсетом таких функций, и от версии BIOS. В таком явном, "пользовательском", виде такая опция повстречалась в "AMI BIOS".
Опция может называться также "DRAM Refresh Queing".

DRAM Refresh Queue Depth

Данная опция позволяет установить степень ("глубину") конвейеризации, т.е. количество возможных ступенек конвейера. Чем выше это число, тем большее количество запросов на регенерацию в данное время находится в обработке. Возможные значения, что естественно зависит от указанных выше реализаций и возможностей, имеют вид:
"0" (равносильно "Disabled"), "4", "8", "12" (по умолчанию).
Опция может называться также "Refresh Queue Depth".

Extended Refresh

- (расширенная регенерация). Введение (в свое время) этой опции в BIOS предполагало использование специальных EDO-чипов. Регенерация содержимого ячеек EDO DRAM при этом стала производиться через 125 мкс, а не через каждые 15,6 мкс, как при стандартной регенерации. Это несколько повысило общее быстродействие памяти.

Fast DRAM Refresh

- (быстрая регенерация DRAM). Контроллер памяти предоставляет два режима регенерации памяти: стандартный (Normal) и скрытый (Hidden). В каждом из режимов CAS-строб выставляется перед RAS-сигналом, однако в режиме "Normal" для каждого строб-импульса выделяется дополнительный такт процессора. Это старый метод обновления памяти, и поэтому имеет смысл установить значение данного параметра в "Hidden", который обеспечивает и повышенное быстродействие, и большую эффективность (см. ниже), также и по причине того, что CAS-строб может и не выставляться - быть "скрытым".

Hidden Refresh

- (скpытая pегенеpация). Когда установлено значение "Disabled", память регенерируется по IBM AT методологии, используя циклы процессора для каждой регенерации. Когда опция "Hidden Refresh" установлена в "Enabled", контроллер памяти "ищет" наиболее удобный момент для регенерации, независимо от циклов CPU. При этом регенерация происходит одновременно с обычным обращением к памяти. Алгоритм регенерации памяти при этом многовариантен: разpешаются циклы pегенеpации в банках памяти, не используемых центральным процессором в данный момент, взамен или вместе с ноpмальными циклами регенерации, выполняемыми всякий pаз (каждые 15 мс) пpи опpеделенном пpеpывании (DRQ0), вызванном таймеpом и инициируемом схемой регенерации.
Для регенерации каждый pаз тpебуется до 4 мс. В течение этих 4 мс один цикл pегенеpации пpимеpно каждые 16 мкс pегенеpиpует по 256 стpок памяти (здесь и выше приведены характеристики для модулей памяти малой емкости). Каждый цикл pегенеpации занимает столько же или чуть меньше вpемени, чем один цикл чтения памяти, т.к. сигнал CAS для pегенеpации при этом не тpебуется.
"Hidden refresh" отличается максимальной скоростью и эффективностью, наименьшими нарушениями активности системы и наименьшими потерями производительности, также позволяя поддерживать состояние памяти во время нахождения системы в режиме "suspend". Этот режим более быстрый, чем "Burst Refresh". Но наличие в BIOS этой функции еще не означает ее реализации. После установки опции в "Enabled" стоит тщательно проверить работоспособность компьютера. Некотоpые модули памяти позволяют использовать "Hidden Refresh", некотоpые - нет. В большинстве случаев pекомендуется установить в "Enabled".

Hi-Speed Refresh

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

ISA Refresh

Опция разрешения/запрещения проведения регенерации памяти для ISA-шины. В таком виде эта опция уже не встречалась даже в последние годы существования ISA-шины.

ISA Refresh Period

Установка периодичности для регенерации ISA-шины. Возможный ряд значений: "15 us", "30 us", "60 us", "120 us".

ISA Refresh Type

Опция с установкой метода регенерации памяти для ISA-шины. Возможные значения параметра: "Normal" и "Hidden". Аналогичная опция с названием "ISA Bus Refresh Mode" могла предложить другие значения: "Slow" и "Fast".

PCI-to-DRAM RAS# Precharge

Тема "предзаряда" уже достаточно нами освоена, поэтому стоит лишь сказать кратко о назначении данной опции - установка времени "предзаряда" строба RAS# при циклах записи PCI-шины в основную динамическую память. Значения опции: "2T", "3T".

RAS Precharge @Access End

Когда выбрано "Enabled", RAS#-строб остается в активном состоянии в конце процесса "предзаряда". Если же установлено "Disabled", RAS# переводится в пассивное состояние (высокий уровень).

RAS Timeout

Когда установлено значение "Disabled", цикл регенерации динамической памяти производится в стандартном режиме, т.е. каждые 15,6 мкс. Дополнительный цикл регенерации памяти вставляется при выборе значения "Enabled".

Ref/Act Command Delay

- (установка задержки для цикла чтения/записи). Параметром выбирается время задержки между окончанием цикла регенерации и началом цикла чтения или записи. Опция может принимать значения: "5T", "6T" (по умолчанию), "7T", "8T".
Система на наборе SIS530 предложила опцию под названием "DRAM Refresh/Active Delay" с чуть более консервативными значениями: "9T", "8T", "7T", "6T". Более развитый чипсет (SIS540) представил уже две опции: "DRAM REF/ACT Delay" ("10T", "9T") и "DRAM ACT/REF Delay" ("10T", "9T", "8T"). Понятно, что последняя опция предназначена для выбора задержки для режима регенерации после окончания цикла чтения/записи. Меньшие значения, конечно, более предпочтительны. Данная опция уже не встречается в современных системах.

Refresh During PCI Cycles

Опция, разрешающая/запрещающая проведение регенерации памяти во время циклов чтения/записи на шине PCI. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.

Refresh RAS# Assertion

- (установка периода активности сигнала RAS). Этим параметром устанавливается длительность сигнала RAS (в тактах системной шины) для цикла регенерации. Меньшее значение увеличивает производительность системы. Но поскольку принимаемые значения определяются качеством памяти и чипсетом, то к их установке необходимо подходить осмотрительно. Может принимать значения: "4T" (или "4 Clks"), "5T" (или "5 Clks"). Могут быть и другие значения.
Опция может называться также "Refresh Assertion", "Refresh RAS Active Time" или "RAS Pulse Width Refresh".

Refresh Value

Данной опцией устанавливался множитель частоты регенерации. Меньшее значение увеличивало производительность системы за счет снижения частоты регенерации. Но при этом также оптимальный вариант мог быть достигнут только опытной проверкой. Значения опции могли быть выбраны из ряда: 1, 2, 4, 8, 16. Иногда можно было встретить и значение 0,5. Опция эта давно уже не встречается.
Опция может называться "Refresh Divider".

Refresh When CPU Hold

Довольно устаревшая опция, предлагавшая производить регенерацию ("Enabled") или не делать этого ("Disabled") во время пауз процессора.

SDRAM Idle Limit

Данная опция устанавливает количество "пустых" тактов ожидания перед перезарядкой SDRAM-модулей. Оптимальная установка позволяет улучшить производительность циклов чтения/записи путем настройки интервала времени, в течение которого банк памяти может оставаться "пустым" перед перезарядкой (recharging), т.е. перед перезаписью содержимого памяти обратно в ячейки. При этом данная установка не может функционировать как задержка цикла регенерации.
Уменьшение количества тактов с 8 (по умолчанию) до 0 означает, что банк SDRAM-памяти будет немедленно регенерироваться как только контроллер памяти выставит достоверный запрос. При увеличении "SDRAM Idle Limit" от 8 тактов и более перезарядка банка будет задержана на большее время, тем самым возрастет время "хранения" информации из памяти во внутренних цепях. Пришедшая в это время команда чтения/записи будет исполнена мгновенно. Тогда приходится признать, что эффективность памяти возрастет, когда банк более длительное время будет оставаться "пустым". Но всегда есть свое НО! Во внутренних цепях перезарядки не хранятся все строки банка памяти, а только регенерируемой строки. Поэтому пришедший запрос, например, на чтение некоторой строки наверняка не "попадет в точку", и системе придется ожидать завершения регенерации, особенно в случае завышенного значения параметра.
В основном приходится выбирать между значениями в пределах между 0 и 8-ю тактами, правда, насколько позволит это версия BIOS. Конечно, подобная настройка требует серьезной опытной проверки. Поэтому, если есть возможность управлять частотой регенерации, то данную опцию лучше заблокировать. Опытным специалистам можно порекомендовать "поиграть" с двумя характеристиками.
Опция может называться "DRAM Idle Timer". Указанные опции предложили два ряда значений:
"Disabled", "0 Cycle", "8 Cycles", "12 Cycles", "16 Cycles", "24 Cycles", "32 Cycles", "48 Cycles",
"0 clocks", "2 clocks", "4 clocks", "8 clocks", "10 clocks", "12 clocks", "16 clocks", "32 clocks".
Подобные опции достаточно редки. Но вот система на достаточно современном чипсете AMD751 предложила сразу две:
"Idle Precharge Limit" с рядом "0 cycles", "8 cycles", "12 cycles", "16 cycles", "24 cycles", "32 cycles", "48 cycles" и "No idle precharge" и "Extra High Idle Limit" со значениями "Disabled"/"Enabled". Последняя опция разрешает или запрещает вставку дополнительного такта ожидания.

SDRAM Precharge Control

- (управление предварительным зарядом SDRAM). Данная опция определяет, чем управляется "предзаряд" SDRAM - центральным процессором или самой SDRAM-памятью. В некоторых версиях BIOS такая опция может называться (трактоваться) как "SDRAM Page Closing Policy" ("метод закрытия страниц SDRAM" - см. дополнительно в следующем разделе). Если эта опция отключена ("Disabled"), то все циклы процессора к SDRAM завершаются командой "All Banks Precharge Command" в интерфейсе SDRAM-памяти, что улучшает стабильность, но понижает производительность памяти. Если же эта опция включена ("Enabled"), то предварительный заряд контролируется самими чипами памяти. Это уменьшает количество предзарядов SDRAM, значительно возрастает число циклов CPU-to-SDRAM до того момента, когда требуется регенерация памяти. Это однозначно ведет к повышению общей производительности системы, но может влиять на ее стабильность.

SDRAM Refresh

Опция выбора метода регенерации для SDRAM-памяти. Возможные варианты: "Serial" (последовательный перебор строк при регенерации) и "Simultaneous" (одновременная регенерация). При рассмотрении опции "Burst Refresh" уже отмечались недостатки пакетной регенерации, при которой в единый пакет собираются запросы на регенерацию. "Перезарядка" строк происходит мгновенно, но пока не завершится полная регенерация, доступ к шине памяти будет невозможен. Поэтому об оптимальной установке для конкретной системы можно будет говорить после экспериментальных тестов.
Данная опция была замечена в системах, построенных на чипсетах SIS620, SIS600 и некоторых других.

Self-Refresh

Опция включения режима "саморегенерации" основной памяти (если установлено "Enabled"). Этот режим подробно описан выше, в вводной статье.
Опция может называться также "EDO/FPM DRAM Self-Refresh".

Slow Refresh (1:4)

- (медленная pегенеpация). При включении этой опции ("Enabled") схема регенерации будет в 4 раза реже регенерировать память (64 мкс против 16), чем в обычном pежиме. При такой установке пpоизводительность системы повышается благодаpя уменьшению конкуpенции между CPU и схемой pегенеpации, однако не все типы динамических ОЗУ могут поддеpживать такие циклы (в этом случае будет получено сообщение об ошибке четности или о сбое системы). Тогда необходимо установить значение "Disabled". Опция в свое время получила распространение с развитием такого типа ПК, как "laptop" (дорожный ПК), в качестве энергосберегающей функции. В современных системах эта опция встречается все реже.
В свое время считалось также, что применение "медленной регенерации" будет достаточно эффективным при использовании 16-битных ISA-карт расширения, работающих в режиме "bus master". Поскольку сама ISA-карта может быть инициатором запроса на регенерацию, то понятно, что "медленная регенерация" в меньшей степени бы нарушала передачу данных по DMA-каналам.
Опция может называться также "DRAM Slow Refresh", "Slow Refresh" или "Slow Refresh Enable".
Опция может называться и "Slow Memory Refresh Divider". Но этой опцией устанавливался делитель для медленной регенерации: 1, 4, 16 или даже 64. Устанавливать самые большие значения, т.е. в максимальной степени снижать частоту регенерации, позволяла только специальная память.

Staggered Refresh

Трудно переводимый тип регенерации, что-то наподобие "регенерации с перекатыванием". Но этим непонятным термином обозначают "шахматную" регенерацию. Как известно, регенерация выполняется на банках памяти последовательно, с последовательным перебором строк. Но при наличии нескольких банков памяти и включении данной опции банки памяти регенерируются одновременно, но со сдвигом по перебору строк.
Данный тип регенерации позволяет сгладить броски потребления модулями памяти, выравнивая токи в процессе различных переключений. Так как уменьшаются броски тока, то такая регенерация эффективна с точки зрения снижения помех.
С помощью этой несколько устаревшей опции есть возможность установки временного интервала между регенерируемыми строками, измеряемого в системных тактах (0T, 1T, 2T, 3T, 4T, 5T, 6T, 7T). Установка в "0" позволяет регенерировать все строки в банках одновременно. Но опция может предложить и обычный набор значений: "разрешить применение"/"отказать" ("Enabled" и "Disabled").
Опция может называться также "Refresh Stagger" или "DRAM Refresh Stagger By".

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

В соответствии с ранее рассмотренной организацией микросхемы DRAM для регенерации хранимой в ней информации, на микросхему необходимо подать адрес строки (в сопровождении строба RAS) и сигнал чтения. Упрощенная структура системы регенерации содержимого памяти DRAM, состоящей из 256 строк, приведена на рисунке 7.10.

Таймер интервала регенерации следит за своевременным проведением регенерации всех строк микросхем DRAM. Если требуемое время регенерации составляет 4 мс, то для регенерации каждой строки 256- строковой микросхемы DRAM сигнал регенерации (REFRESH) должен вырабатываться через каждые 15,6 мкс. В каждом цикле регенерации осуществляется восстановление содержимого одной строки. При выработке нового сигнала REFRESH содержимое счетчика адреса строки инкрементируется, после чего вырабатываются строб RAS и сигнал чтения памяти MEMR. Основные действия по регенерации содержимого очередной строки осуществляются

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

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

КЭШ-память

Повышение производительности процессоров привело к тому, что основная память, построенная на микросхемах DRAM, стала замедлять дальнейшее повышение производительности ЭВМ в целом. Реализация ОП на микросхемах SRAM технически и экономически не оправдана, так как габариты и стоимость микросхем SRAM на 1 бит хранимой информации существенно выше, чем аналогичные показатели у DRAM. Разумным компромиссом для построения экономичных и быстродействующих систем явилось сочетание памяти большого объёма на DRAM и небольшой на микросхемах SRAM.

Слово Cache означает склад, тайник. КЭШ- память не имеет отдельного адресного пространства и не доступна для пользователя. Она является дополнительным и быстродействующим хранилищем копий тех областей информации ОП, к которым, вероятно, в ближайшее время будет обращение. В их число попадают в первую очередь области, примыкающие к выполняемой в данный момент команде, а во вторую – области связанные с ней командами перехода (см. рисунок 7.11).

Рисунок 7.11- Возможная область кэширования ОП

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

КЭШ не может хранить копию всей основной памяти, так как её размер во много раз меньше ОП. Поэтому она хранит копии части содержимого ОП. Для записи информации о текущем соответствии содержимого КЭШ-памяти конкретным областям (блокам) ОП используется каталог, находящийся в дополнительной тэговой (ТЭГ) памяти, входящей в состав КЭШ- памяти. При обращении к ОП контроллер КЭШ- памяти (ККП) с помощью каталога в ТЭГ проверяет, есть ли копия затребованных данных (или команды) в КЭШе. Если она там есть, то это случай так называемого КЭШ- попадания и данные берутся из КЭШа. Если нет (случай КЭШ - промаха), то данные берутся из основной памяти, вводятся в процессор и записываются в КЭШ. При попадании в КЭШ время доступа к подсистеме памяти КЭШ+DRAM уменьшается и основная память представляется процессору более быстрой, чем есть на самом деле.

КЭШ прямого отображения

Принцип работы КЭШ прямого отображения проиллюстрирован на рисунке 7.12.

Рисунок 7.12- Структура КЭШ прямого отображения

В таблице 7.2 приведено разбиение полного адреса ячейки DRAM на поля.

Таблица 7.2- Распределение полного адреса ячейки DRAM

Рассмотрим принцип работы КЭШ прямого отображения на примере КЭШ объёмом 256 Кбайт с размером строки 32 байта (4 x 8 байт) и объёмом кэшируемой основной памяти 64 Мбайт. Кэшируемая основная память при этом условно разбивается на блоки, размер которых равен размеру КЭШ – памяти. Для рассматриваемого случая количество блоков равно: 64 Мбайт/ 256 Кбайт = 256. В свою очередь КЭШ- память делится на строки, длина которых равна количеству байт, передаваемых процессором в одном пакетном цикле (пакете) (4 x 4 байт =16 для процессора INTEL 486 и 4 x 8 байт = 32 байта для Pentium - процессоров). При размере КЭШ в 256 Кбайт число строк КЭШ для Pentium будет равно 256 Кбайт / 32 байт = 8 К.

В КЭШ прямого отображения средняя часть адреса (Index), по которому производится обращение, однозначно определяет строку КЭШ, в которой может находиться отображение соответствующей строки блока DRAM. На запись в каждую строку КЭШа могут претендовать только одноимённые строки всех блоков основной памяти (откуда и название данного типа КЭШ), но конкретная строка КЭШа в некоторый момент времени может содержать копию только одной строки некоторого блока ОП. Номер блока основной памяти, строка которого отображается в КЭШ, или старшая часть адреса (А18…А25 для КЭШ и ОП рассматриваемых размеров) оперативной памяти называется тегом (Tag) и хранится в дополнительной памяти тегов (Tag SRAM). Младшие пять разрядов адреса (для пакета в 32 байта) определяют номер байта в строке КЭШ памяти и для работы КЭШ памяти несущественны, т.к. минимальной единицей кэширования является строка.

Память тегов должна иметь количество ячеек, равное количеству строк КЭШа (объём КЭШ делится на длину строки КЭШ в байтах), а её разрядность должна вмещать старшие биты адреса кэшируемой памяти.

Кроме адресной части Tag с каждой строкой связаны биты признака действительности строки (V-Valid) и модифицированности данных (М-Mod).

В начале каждого обращения к кэшируемой памяти контроллер ККП считывает содержимое ячейки Tag с заданным индексом и сравнивает его со старшими битами D18…D25, адреса строки DRAM, подлежащей чтению. Сравнение осуществляется цифровым компаратором, входящим в состав КЭШ- контроллера. Если результат сравнения отрицателен (случай КЭШ- промаха), то вырабатывается цикл чтения основной памяти и считанные с нее данные вводятся в процессор, помещаются в соответствующую строку КЭШ, в Tag строки записывается старшая часть адреса, а бит V - достоверности, устанавливается в 1. В случае попадания в КЭШ при значении бита достоверности равным 1 данные берутся из КЭШ- памяти и обращение к DRAM не производится.

В начале цикла записи работа подсистемы памяти (КЭШ+DRAM) не отличается от цикла чтения. В случае промаха запись осуществляется сразу в строку DRAM, в случае попадания - в строку КЭШ (без изменения содержимого Tag соответствующей строки) и с установкой в 1 бита модифицируемости M строки КЭШ. Однако при этом нарушается согласованность (когерентность) данных в КЭШ и DRAM, что может привести к сбою работы всей системы и ККП должен выровнять содержимое КЭШ и DRAM до следующего обращения к этой строке DRAM. Поведение ККП в этом случае определяется его политикой записи.

Существуют два основных алгоритма записи данных из КЭШ - памяти в основную: сквозная запись WT (Write Through) и обратная (отложенная) запись WB (Write Back).

Алгоритм WT предусматривает выполнение каждой операции записи сразу и в КЭШ память и в DRAM. При этом каждая операция записи равносильна записи в DRAM и использование КЭШ- памяти не даёт никакого выигрыша при операциях записи (бит М в этом случае в составе КЭШ не используется).

При алгоритме WB запись со стороны процессора осуществляется только в строку КЭШ, при этом бит М устанавливается в 1, т. е. соответствующая строка в КЭШ отмечается как модифицированная или грязная, т. е. требующей записи в основную память. После копирования в DRAM строка становится чистой и бит М снова устанавливается в 0.

ККП старается осуществить копирование в промежутках между обращениями процессора к остальной системе, и только в крайнем случае (например, при попытке повторной записи в модифицированную строку КЭШ), копирование выполняется в первую очередь.

В системах с несколькими ведущими запись в DRAM могут осуществлять и другие устройства, например подсистема ПДП. В этом случае содержимое соответствующих строк КЭШ и DRAM также может оказаться различным, но уже из-за изменения строки DRAM.

Для устранения такой возможности адрес изменяемой строки DRAM при захвате шины другим ведущим передаётся в КЭШ второго (L2) и первого (L1) уровней. При этом процессор, находящийся в состоянии захвата его шины отслеживает адреса изменённых строк DRAM и в результате устанавливает биты их достоверности V в ноль.

Наборно- ассоциативный КЭШ

Его можно рассматривать как набор нескольких (например 4-х) КЭШ прямого отображения. В наборно-ассоциативной КЭШ - памяти каждая строка DRAM может размещаться в одной из нескольких строк КЭШ. В этом случае в состав TAG вводят ещё дополнительное поле, по которому ККП определяет, к какой строке КЭШ было самое давнее обращение, и которая следовательно, может быть заменена. Дополнительным усложнением является то, что старшая часть текущего адреса системы должна сравниваться с содержимым нескольких ТЭГ. КЭШ такого типа используются как внутренняя (L1) КЭШ память процессоров.

В процессорах Pentium внутренняя КЭШ- память имеет объем в 32 Кбайта. Она разбита на две равные части по 16 Кбайт - КЭШ кода программы и данных.

7.8 Контрольные вопросы

1. Какие отличия в организации изолированной и совмещенной систем адресных шин?

2. Перечислите достоинства и недостатки изолированной и совмещенной систем адресных шин.

3. Перечислите основные типы ПЗУ.

4. Как определяется необходимое число микросхем для построения памяти нужной емкости и разрядности?

5. Какие отличия между памятью статического и динамического типа?

6. Перечислите основные узлы подсистемы регенерации.

7. Что такое регенерация DRAM?

8. Назначение КЭШ- памяти?

9. Что обозначает название- КЭШ прямого отображения?

10. Назначение битов V и M в тэге КЭШ- памяти?

11. Отличия алгоритмов сквозной и отложенной записи?

12. Какими показателями КЭШ- памяти определяется объем кэширования ОП?


ОРГАНИЗАЦИЯ ПК

Страница 2 из 4

Разновидности DRAM

Синхронное выполнение

Сейчас уже не актуально использовать 66-МГц шины памяти. Разработчики DRAM нашли возможность преодолеть этот рубеж и извлекли некоторые дополнительные преимущества путем осуществления синхронного интерфейса.

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

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

Типы высокоскоростной памяти

Всю память с произвольным доступом (RAM) можно разделить на два типа: DRAM (динамическая RAM) и SRAM (статическая RAM).

К первому поколению высокоскоростных DRAM главным образом относят EDO DRAM, SDRAM и RDRAM, а к следующему - ESDRAM, DDR SDRAM, Direct RDRAM, SLDRAM (ранее SynchLink DRAM) и т. д.

SDRAM

SDRAM способна работать на частоте, превышающей частоту работы EDO DRAM. В первой половине 1997 г. SDRAM занимала примерно 25% всего рынка DRAM. Как и предполагалось, к 1998 г. она стала наиболее популярной из существующих высокоскоростных технологий и занимала более 50% рынка памяти. Первоначально SDRAM работала на частоте от 66 до 100 МГц. Сейчас существует память, работающая на частотах от 125 до 143 МГц и даже выше.

Модуль SDRAM на 250Мбайт.

Enhanced SDRAM (ESDRAM)

Для преодоления некоторых проблем с задержкой сигнала, присущих стандартным DRAM-модулям, производители решили встроить небольшое количество SRAM в чип, т. е. создать на чипе кэш. Одним из таких решений, заслуживающих внимания, является ESDRAM от Ramtron International Corporation.

ESDRAM - это по существу SDRAM плюс немного SRAM. При малой задержке и пакетной работе достигается частота до 200 МГц. Как и в случае внешней кэш-памяти, DRAM-кэш предназначен для хранения наиболее часто используемых данных. Следовательно, уменьшается время доступа к данным медленной DRAM.

DDR SDRAM (SDRAM II)

DDR SDRAM (Double Date Rate SDRAM) является синхронной памятью, реализующей удвоенную скорость передачи данных по сравнению с обычной SDRAM. DDR SDRAM не имеет полной совместимости с SDRAM, хотя использует метод управления, как у SDRAM, и стандартный 168-контактный разъем DIMM.

Наклейка соответствия модуля спецификации SDRAM PC100.

DDR SDRAM достигает удвоенной пропускной способности за счет работы на обеих границах тактового сигнала (на подъеме и спаде), а SDRAM работает только на одной.

SLDRAM

Стандарт SLDRAM является открытым, т. е. не требует дополнительной платы за лицензию, дающую право на производство чипов, что позволяет снизить их стоимость. Подобно предыдущей технологии, SLDRAM использует обе границы тактового сигнала. Что касается интерфейса, то SLDRAM перенимает протокол, названный SynchLink Interface. Эта память стремится работать на частоте 400 МГц.

У всех предыдущих DRAM были разделены линии адреса, данных и управления, которые накладывают ограничения на скорость работы устройств. Для преодоления этого ограничения в некоторых технологических решениях все сигналы стали выполняться на одной шине. Двумя из таких решений являются технологии SLDRAM и DRDRAM. Они получили наибольшую популярность и заслуживают внимания.

Модуль памяти DRDRAM.

RDRAM (Rambus DRAM)

RDRAM представляет спецификацию, созданную Rambus, Inc. Частота работы памяти равна 400 МГц, но за счет использования обеих границ сигнала достигается частота, эквивалентная 800 МГц. Спецификация Rambus сейчас наиболее интересна, так что остановимся на ней подробнее.

Модули от Rambus, Inc.

Direct Rambus™ DRAM - это высокоскоростная динамическая память с произвольным доступом, разработанная Rambus, Inc. Она обеспечивает высокую пропускную способность по сравнению с большинством других DRAM. Direct Rambus DRAMs представляет интегрированную на системном уровне технологию.

Работа Direct RDRAMtm определяется требованиями подсистемы Direct Rambus. Для понимания деталей спецификации Direct Rambus DRAM необходимо понять подсистему памяти Rambus™ в целом.

Direct Rambus Memory System

Подсистема памяти Direct Rambus включает следующие компоненты:

  • Direct Rambus Controller
  • Direct Rambus Channel
  • Direct Rambus Connector
  • Direct Rambus RIMM(tm)
  • Direct Rambus DRAMs

Физические, электрические и логические части всех этих компонентов определены и специфицированы Rambus, Inc. Это требуется для совместимости и высокоскоростной работы подсистемы Direct Rambus.

Direct Rambus Controller

Контроллер Direct Rambus - это главная шина подсистемы памяти. Он помещается на чипе логики, таком, как PC-чипсет, микропроцессор, графический контроллер или ASIC. Физически можно поместить до четырех Direct Rambus-контроллеров на одном чипе логики. Контроллер представляет собой интерфейс между чипом логики и каналом Direct Rambus. В его обязанности входит генерирование запросов, управление потоком данных и еще ряд функций.

Direct Rambus-контроллер состоит из двух самостоятельных блоков: Rambus ASIC Cell (RAC) и Rambus Memory Controller (RMC).

Direct Rambus Channel

Direct Rambus Channel создает электрическое соединение между Rambus-контроллером и чипами Direct RDRAM. Работа канала основана на 30-ти сигналах, составляющих высокоскоростную шину. Эта шина работает на тактовой частоте 400 МГц и позволяет передавать данные на 800 МГц (данные передаются на обеих границах такта). Такая высокая частота достигается за счет использования некоторых технических приемов. Два канала данных (шириной в байт каждый) позволяют получить пиковую пропускную способность в 1,6 Гбайт/с.

Канал может быть выполнен на обычных системных платах и соответствует форм-фактору SDRAM.

Direct Rambus Connector

Разъем Direct Rambus представляет низкоиндуктивный интерфейс между каналом на модуле RIMM и каналом на материнской плате. Connector - разъем со 168 контактами. Контакты размещены на двух сторонах модуля по 84 с каждой стороны.

Direct Rambus RIMM

Direct Rambus RIMM - это модуль памяти, который включает один или более Direct RDRAM-чипов и организует непрерывность канала. Канал входит в модуль на одном конце, проходит через все чипы DRAM и выходит на другом. По существу RIMM образует непрерывный канал на пути от одного разъема к другому. Недопустимо оставлять свободными разъемы, потому что это приведет к разрыву канала с терминатором, находящимся на системной плате в конце канала. Для решения этой проблемы разработаны модули только с каналом (чипы памяти отсутствуют). Они называются continuity modules и предназначены для заполнения свободных посадочных мест.

Модули Direct Rambus имеют геометрические размеры, сходные с размерами SDRAM DIMMs. Это позволяет вставлять RIMM"ы во все материнские платы с соответствующим форм-фактором. Модули имеют 168 контактов. Еще модули RIMM поддерживают SPD, который используется на DIMM"ах SDRAM. В отличие от SDRAM DIMM, Direct Rambus может содержать любое целое число чипов Direct RDRAM (до максимально возможного).

Direct Rambus RIMMs могут быть как односторонние, так и двухсторонние. Односторонние RIMM используют шестислойную плату и могут содержать от одного до восьми чипов Direct RDRAM. Двухсторонние RIMM используют восьмислойную плату и могут содержать до 16-ти чипов Direct DRAM. Для гарантии совместимости различных товаров Rambus, Inc. обеспечивает некоторые правила конструирования.

Memory Expansion

Один канал Direct Rambus максимум может поддерживать 32 чипа Direct RDRAM. В материнской плате может использоваться до трех RIMM-модулей. Используя 64-Мбит, 128-Мбит и 256-Мбит устройства, максимальная емкость памяти на канал достигает 256 Мбайт, 512 Мбайт и 1Гбайт соответственно. Для поддержки целостности канала все свободные RIMM-слоты должны заполняться continuity-модулями.

Чтобы расширить канал сверх 32 устройств, могут использоваться два чипа повторителя. С одним повторителем канал может поддерживать 64 устройства на 6 RIMM-модулях, а с двумя - 128 устройств на 12.

Direct Rambus DRAM

Чипы Direct Rambus DRAM составляют часть подсистемы Rambus, запоминающую данные. Все устройства в системе электрически расположены на канале между контроллером и терминатором. Устройства Direct Rambus могут только отвечать на запросы контроллера, который делает их шину подчиненной или отвечающей. Устройства можно разделить на две части.

Технология Direct Rambus представляет собой третий этап развития памяти RDRAM. Впервые память RDRAM появилась в 1995 г., работала на частоте 150 МГц и обеспечивала пропускную способность 600 Мбайт/с. Она использовалась в станциях SGI Indigo2 IMPACTtm, в приставках Nintendo64, а также в качестве видеопамяти. Следующее поколение RDRAM появилось в 1997 г. под названием Concurrent RDRAM. Новые модули были полностью совместимы с первыми. Но за год до этого события в жизни компании произошло не менее значимое событие. В декабре 1996 г. Rambus, Inc. и Intel Corporation объявили о совместном развитии памяти RDRAM и продвижении ее на рынок персональных компьютеров.

На протяжении долгого времени разработчиками создавались различные типы памяти. Они обладали разными характеристиками, в них были использованы разные технические решения. Основной движущей силой развития памяти было развитие ЭВМ и центральных процессоров. Постоянно требовалось увеличение быстродействия и объёма оперативной памяти.

Страничная память

Страничная память (англ. pagemodeDRAM,PMDRAM) являлась одним из первых типов выпускаемой компьютерной оперативной памяти. Этот тип DRAM осуществляет чтение каждой ячейки памяти за 5 тактов. Каждая ячейка в обычной памяти читается/записывается независимо от другой. Память такого типа выпускалась в начале 90-х годов, но с ростом производительности центральных процессоров и ресурсоёмкости приложений требовалось увеличивать не только объём памяти, но и скорость её работы.

Быстрая страничная память

Быстрая страничная память (англ. fastpagemodeDRAM,FPMDRAM) появилась в 1995 году. Принципиально новых изменений память не претерпела. Отличие FPM от просто PM DRAM состоит в том, что введена укороченная схема считывания данных после первой ячейки, то есть первая ячейка будет считыватся за 5 тактов, а остальные - за 4.

Данный тип памяти в основном применялся для компьютеров с процессорами Intel486 или аналогичных процессоров других фирм. Память могла работать на частотах 25 МГц и 33 МГц с временем полного доступа 70 нс и 60 нс и с временем рабочего цикла 40 нс и 35 нс соотвественно.

Память с усовершенствованным выходом

Но с появлением процессоров IntelPentiumIIпамятьFPMDRAMоказалась совершенно неэффективной. Поэтому следующим шагом стала память с усовершенствованным выходом (англ.extendeddataoutDRAM,EDODRAM). Эта память появилась на рынке в 1996 году и стала активно использоваться на компьютерах с процессорамиIntelPentiumи выше. Её производительность оказалась на 10-15 % выше по сравнению с памятью типаFPMDRAM.

Схема считывание данных была еще укорочена, при этом достижимой стало считывание последующих за первой ячеек за 3 такта системной шины.

Её рабочая частота была 40 МГц и 50 МГц, соответственно, время полного доступа - 60 нс и 50 нс, а время рабочего цикла - 25 нс и 20 нс. Эта память содержит регистр-защелку (datalatch) выходных данных, что обеспечивает некоторую конвейеризацию работы для повышения производительности при чтении.

Синхронная DRAM

В связи с выпуском новых процессоров и постепенным увеличением частоты системной шины, стабильность работы памяти типа EDODRAMстала заметно падать. Ей на смену пришла синхронная память (англ.synchronousDRAM,SDRAM).

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

Новыми особенностями этого типа памяти являлись также и использования конвейерной обработки информации. Также память надёжно работала на более высоких частотах системной шины (100 МГц и выше). Недостатками данного типа памяти явилась в то время его высокая цена, а также его несовместимость со многими чипсетами и материнскими платами в силу своих новых конструктивных особенностей. Рабочие частоты этого типа памяти могли равняться 66 МГц, 100 МГц или 133 МГц, время полного доступа - 40 нс и 30 нс, а время рабочего цикла - 10 нс и 7.5 нс.

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

В отличие от FPM-DRAM\EDO-DRAM\BEDO, выполняющих перезарядку внутренних цепей при закрытии страницы (т.е. при дезактивации сигналаRAS), синхронная память проделывает эту операцию автоматически, позволяя держать страницы открытыми столь долго, сколько это угодно.

Наконец, разрядность линий данных увеличилась с 32 до 64 бит, что еще вдвое увеличило ее производительность.

Пакетная EDO RAM

Пакетная память EDORAM(англ.burstextendeddataoutputDRAM,BEDODRAM) стала дешёвой альтернативой памяти типаSDRAM. Основанная на памятиEDODRAM, её ключевой особенностью являлась технология поблочного чтения данных (блок данных читался за один такт), что сделало её работу быстрее, чем у памяти типаSDRAM. Однако невозможность работать на частоте системной шины более 66 МГц не позволила данному типу памяти стать популярным.