скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Подсистема памяти современных компьютеров

Транзакции записи являются однонаправленными, и для них таких проблем синхронизации не возникает. В отличие от стандартных 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. Если используются не все слоты, то память выгоднее ставить ближе к контроллеру — она будет работать быстрее (см. предыдущий параграф).

Для малогабаритных систем имеются и малогабаритные модули SO DIMM (Small Outline DIMM). По организации SO DIMM-72 близки к SIMM-72, SO DIMM-144 — к DIMM-168, а SO RIMM — это миниатюрный вариант памяти Rambus.

Кроме собственно памяти на модулях DIMM и RIMM устанавливают и средства идентификации — маленькие микросхемы энергонезависимой памяти EEPROM с последовательным интерфейсом I2C. По этому интерфейсу чипсет может считать из EEPROM, что за модуль установлен и каких он требует параметров. Однако не всякой версии BIOS это интересно знать — через чипсет BIOS может определить многие параметры своими методами тестирования. Но некоторые системы отказываются воспринимать модули памяти “без чипа”, так что мелкая экономия может обернуться проблемами.

Виртуальная память и организация защиты памяти

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

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

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

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

Системы виртуальной памяти можно разделить на два класса: системы с фиксированным размером блоков, называемых страницами, и системы с переменным размером блоков, называемых сегментами. Ниже рассмотрены оба типа организации виртуальной памяти.

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

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

Для увеличения эффективности такого типа схем в процессорах используется специальная полностью ассоциативная кэш-память, которая также называется буфером преобразования адресов (TLB translation-lookaside buffer). Хотя наличие TLB не меняет принципа построения схемы страничной организации, с точки зрения защиты памяти, необходимо предусмотреть возможность очистки его при переключении с одной программы на другую.

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

Страницы: 1, 2, 3, 4, 5


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.