Реферат: Подсистема памяти современных компьютеров
Транзакции записи являются однонаправленными, и для них таких проблем синхронизации не возникает. В отличие от стандартных DRAM и SDRAM, где данные для записи передаются одновременно с адресом колонки, в RDRAM данные задерживают относительно командного пакета. Эта задержка соответствует задержке между командами и данными при чтении (на стороне контроллера). Задержка записи позволяет сократить вынужденные простои шины данных при переключении с записи на чтение (в SDRAM они равны CAS Latency и длятся 2–3 такта по 10 нс). Контроллер может посылать данные для записи уже в такте, следующим за последними данными предыдущей транзакции чтения. Однако если за записью следует чтение, то на шине данных будет вынужденная пауза в 1–5 тактов (коротких, по 2,5 нс!), в зависимости от длины канала. За это время последние данные записи дойдут от контроллера до самой дальней микросхемы памяти.
В микросхемах DRDRAM применяется механизм отложенной, или буферированной записи. Данные для записи сначала помещаются в буфер, из которого они выгружаются в усилители считывания-записи несколько позже по явной команде выгрузки (retire) или автоматически. Буфер записи хранит сами данные, а также номер банка и адрес столбца (но не строки). Выгрузка буфера производится по приему следующего командного пакета. Буферизация записи позволяет контроллеру посылать команду записи раньше, что повышает коэффициент использования шины. Автоматическую выгрузку вызывает любая команда, за исключением команды чтения, обращенной к той же микросхеме. Эта оптимизация чтения имеет некоторые побочные эффекты. Если за записью следует чтение той же микросхемы, то выгрузка буфера будет ожидать подходящего командного пакета. Выгрузка возможна только в активированный банк, у которого открыта именно та строка, для которой предназначалась запись. Приход новых данных записи в невыгруженный буфер приводит к потере предыдущей записи. Если за командой записи сразу же следует чтение по тому же адресу, то считаны будут старые данные (новые еще в буфере). Все это должен учитывать контроллер памяти — в некоторых случаях ему придется специально вводить пустые команды (перед предзарядом, при цепочке WR-RD-WR к одной микросхеме), а чтение по адресу предыдущей записи он может “спрямлять” и через собственный буфер. Предзаряд имеют три механизма запуска: явный, автоматический и альтернативный.
Конвейерное выполнение операций DRDRAM обеспечивается многобанковой организацией с отдельными усилителями считывания. Пакеты команд по линиям ROW и COL могут идти сплошным потоком, при этом на шине может присутствовать до четырех транзакций. При произвольных обращениях увеличению производительности способствует большое количество банков, практически недостижимое в памяти на SDRAM. Банковые зависимости обращений приводят к необходимости “лишних” предзарядов. Чем больше независимых банков, тем, в принципе, больше вероятность попадания соседних запросов в разные банки. При последовательных обращениях чтения (RD) или записи (WR) к ячейкам, расположенным в различных (несмежных) банках, эффективность использования полосы шины данных (1600 Мбайт/с) достигает 100%. При цепочке обращений RD-RD-WR-WR к несмежным банкам одной микросхемы эффективность будет 76%, а при обращениях к разным микросхемам канала она достигнет 94%.
Регенерация осуществляется по команде, адресуемой к определенному банку одной или всех микросхем. За период регенерации TREF (32 мс) должны быть перебраны все строки всех банков. В режимах пониженного потребления микросхемы осуществляют саморегенерацию.
Средства управления энергопотреблением отключают питание неиспользуемых узлов. В самом экономичном состоянии — PDN (Power Down) — микросхемы потребляют мощность в 110 раз меньшую, чем в состоянии STBY (Standby) — состоянии полной готовности к восприятию пакетов. При этом время доступа к данным по чтению в состоянии PDN в 250 раз больше, чем в STBY. Есть еще энергосберегающее состояние NAP, выход из него происходит быстрее, чем из PDN, но потребление больше.
Микросхемы DRDRAM требуют периодической (раз в 100 мс) подстройки выходного тока и термокалибровки. Для этих целей имеются специальные команды, во время которых микросхемы способны сообщать о своем перегреве.
Вспомогательная шина с КМОП-сигналами SCK, CMD и SIO служит для обмена данными с управляющими регистрами и вывода микросхем из состояний пониженного потребления (PDN и NAP). Информация по этой шине тоже передается пакетами.
Управляющие регистры хранят информацию об адресе микросхемы, управляют работой микросхемы в различных режимах, содержат счетчики регенерации для банков и строк, параметры настройки временных циклов. В них же можно прочитать информацию о конкретной микросхеме — организацию, версию протокола и т.п. В составе управляющих есть и тестовые регистры.
Инициализация памяти включает определения наличия микросхем на шине, назначение им идентификаторов и программирование их параметров. После сброса микросхемы не имеют собственных адресов, они назначаются с помощью специального алгоритма серией обменов по последовательной шине. После завершения этого “переучета” включается нормальная синхронизация и дается время для установления режима схем DLL. После двукратной активации и предзаряда каждого банка каждой микросхемы память готова к определению доменов синхронизации и назначению каждой микросхеме соответствующих параметров задержек.
Контроллер памяти является обязательным “фирменным” компонентом ОЗУ на DRDRAM. В его задачу входит обслуживание микросхем памяти, установленных в канале, по запросам, поступающим со стороны интерфейса системной шины компьютера. Часть контроллера, обращенная к каналу, инвариантна к архитектуре компьютера. Именно она “знает” протокол DRDRAM и является продуктом фирмы Rambus. Контроллер DRDRAM будет встраиваться в чипсеты для процессоров P6 (например, i820) и других архитектурных линий.
Модули памяти: SIMM, DIMM, RIMM...
“Ветераны компьютерного движения” помнят, как приходилось поштучно устанавливать микросхемы в IBM PC/XT или AT-286. Вскоре их догадались собирать на модулях со штырьковыми выводами — SIPP, а потом перешли на более удобные SIMM-30. Для совместимости с SIPP иногда SIMM-30 продавали даже с комплектом штырьков: припаял — и вставляй в гнезда. Модули SIMM-30, они же “короткие”, имели разрядность 1 байт и содержали 1 банк (реже — 2) микросхем. Их комплектовали микросхемами FPM DRAM со временем доступа от 300 до 70 нс. Эти модули “дожили” до 486-х компьютеров, где их приходилось ставить четверками.
“Длинные” модули SIMM-72 имеют 4-байтную организацию: для 486 достаточно одного, а для P5–P6 их уже приходится ставить парами. Двусторонние модули имеют 2 банка микросхем, но и в этом случае разрядность данных — 4 байта. Модули могут иметь дополнительные разряды для контроля четности (Parity) или ECC-контроля, при этом их организация различается. У модулей с паритетом каждый контрольный разряд по записи привязывается к своему байту (здесь допускается побайтная запись). При ECC-контроле побайтная запись не производится, и все контрольные биты могут быть объединены. Но и здесь нет однозначности организации, и не каждый ECC-модуль будет работать в конкретной ECC-системе. Правда, в массовых компьютерах от контроля памяти отказались (ее надежность к тому времени уже достигла значительных высот). Модули комплектуются микросхемами FPM (уже редкость) и EDO (больше всех), память с BEDO распространения не получила. Время доступа — от 80 до 40 нс, объем — 1, 2, 4, 8, 16, 32 и 64 Мбайта. Модули SIMM-72 в новых системных платах не используются, но их часто применяют для расширения памяти лазерных принтеров.
Модули DIMM имеют 8-байтную организацию — для P5–P6 достаточно одного модуля в системе. Свое название они получили за то, что используют ламели контактов с двух сторон (у SIMM ламели с противоположных сторон объединены). По организации контрольных бит (если они есть) вариации те же (в “Энциклопедии” приведено 8 вариантов). Объем — 8, 16, 32, 64, 128, 256 Мбайт. Модули имеют 168 выводов, их первое поколение до нас практически не дошло. Модули второго поколения могут комплектоваться как EDO DRAM (время доступа — от 70 до 40 нс), так и SDRAM. Для SDRAM быстродействие указывают иначе — здесь указывают либо время цикла, либо тактовую частоту (это взаимообратные величины), а время доступа скрывается за параметром CAS Latency при определенной частоте. Для обеспечения стабильной работы на частоте 100 МГц была принята спецификация PC100, которая кроме ограничений на время цикла для применяемых микросхем регламентирует и правила разводки проводников. Разрабатывается и спецификация PC133, в которой будут предъявлены архитектурные требования. Надо заметить, что на частоте 100 МГц могут работать и “обычные” модули с подходящим быстродействием микросхем, но проблемы могут появиться при установке в систему нескольких модулей. Есть еще модули RDIMM SDRAM (Registered DIMM) — разновидность DIMM-168, их особенность заключается в наличии регистров-защелок в адресных и управляющих цепях. При этом на 1 такт удлиняется конвейер, но повышается надежность работы на высоких частотах и допускается установка большего числа модулей.
Новинка — модули RIMM (Rambus Interface Memory Module). Эти модули, на вид похожие на обычные модули памяти, специально предназначены для памяти DRDRAM. У них 30-проводная шина проходит вдоль модуля слева направо, и на эту шину без ответвлений напаиваются микросхемы DRDRAM. Сигналы интерфейса модуля соответствуют сигналам канала Rambus, но в их названии имеется еще приставка L (Left) и R (Right) для левого и правого вывода шины соответственно. В одном канале может быть до трех слотов под RIMM, и интерфейсные линии соединяются змейкой. В слоты могут устанавливаться RIMM различной емкости (сейчас они выпускаются на 64, 128 и 256 Мбайт). В отличие от SIMM и DIMM, у которых объем памяти кратен степени числа 2, модули RIMM могут иметь более плавный ряд объемов — в канал RDRAM память можно добавлять хоть по одной микросхеме. Теперь в памяти появился новый элемент-пустышка Continuity module. Это как бы модуль RIMM, но без микросхем памяти, и нужен он для того, чтобы замыкать цепь канала Rambus. Такая “затычка” должна устанавливаться во все слоты канала, не занятые под модули RIMM. Если используются не все слоты, то память выгоднее ставить ближе к контроллеру — она будет работать быстрее (см. предыдущий параграф).
Страницы: 1, 2, 3, 4, 5, 6, 7, 8