на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


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


 

Традиционная память с асинхронным интерфейсом

В традиционной памяти сигналы RAS# и CAS#, обслуживающие запоминающие ячейки, вводятся непосредственно по соответствующим линиям интерфейса. Вся последовательность процессов в памяти привязывается именно к этим внешним сигналам. Данных при чтении будут готовы через время TCAC после сигнала RAS#, но не раньше, чем через TRAC после сигнала RAS#.

На основе стандартных ячеек строится память с быстрым страничным доступомFPM (Fast Page Mode) DRAM. Здесь для доступа к ячейкам, расположенным в разных колонках одной строки, используется всего один импульс RAS#, во время которого выполняется серия обращений с помощью только импульсов CAS#. Нетрудно догадаться, что в пакетных циклах доступа получается выигрыш во времени (пакеты укладываются в страницы “естественным” образом). Так, память FPM со временем доступа 60–70 нс при частоте шины 66 МГц может обеспечить цикл чтения 5-3-3-3.

Следующим шагом стала память EDO (Extended Data Out, расширенный вывод данных) DRAM. Здесь в микросхемы памяти ввели регистры-защелки, и считываемые данные присутствуют на выходе даже после подъема CAS#. Благодаря этому можно сократить время действия CAS# и не дожидаясь, пока внешняя схема примет данные, приступить к предзаряду линии CAS#. Таким образом можно ускорить передачу данных внутри пакета и на тех же ячейках памяти получить цикл 5-2-2-2 (60 нс, 66 МГц). Эффект полученного ускорения компьютера, полученного довольно простым способом, был эквивалентен введению вторичного кэша, что и послужило поводом для мифа о том, что “в EDO встроен кэш”. Страничный цикл для памяти EDO называют и “гиперстраничным”, так что второе название у этой памяти — HPM (Hyper Page Mode) DRAM. Регистр-защелка ввел в микросхему памяти элемент конвейера — импульс CAS# передает данные на эту ступень, а пока внешняя схема считывает их, линия CAS# готовится к следующему импульсу.

Память BEDO (Burst EDO, пакетная EDO) DRAM ориентирована на пакетную передачу. Здесь полный адрес (со стробами RAS# и CAS#) подается только в начале пакетного цикла; последующие импульсы CAS# адрес не стробируют, а только выводят данные — память уже “знает”, какие следующие адреса потребуются в пакете. Результат — при тех же условиях цикл 5-1-1-1.

Память EDO появилась во времена Pentium и стала применяться также в системах на 486. Она вытеснила память FPM и даже стала ее дешевле. Память BEDO широкого распространения не получила, поскольку ей уже “наступала на пятки” синхронная динамическая память.

Вышеперечисленные типы памяти являются асинхронными по отношению к тактированию системной шины компьютера. Это означает, что все процессы инициируются только импульсами RAS# и CAS#, а завершаются через какой-то определенный (для данных микросхем) интервал. На время этих процессоров шина памяти оказывается занятой, причем, в основном, ожиданием данных.


Память с синхронным интерфейсом — SDRAM и DDR SDRAM

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

Микросхемы синхронной динамической памяти SDRAM (Synchronous DRAM) представляет собой конвейеризированные устройства, которые на основе вполне обычных ячеек (время доступа — 50–70 нс) обеспечивают цикл 5-1-1-1, но уже при частоте шины 100 МГц и выше. По составу сигналов интерфейс SDRAM близок к обычной динамической памяти: кроме входов синхронизации, здесь есть мультиплексированная шина адреса, линии RAS#, CAS#, WE (разрешение записи) и CS (выбор микросхемы) и, конечно же, линии данных. Все сигналы стробируются по положительному перепаду синхроимпульсов, комбинация управляющих сигналов в каждом такте кодирует определенную команду. С помощью этих команд организуется та же последовательность внутренних сигналов RAS# и CAS#, которая рассматривалась и для памяти FPM.

Каждая микросхема внутренне может быть организована как набор из 4 банков с собственными независимыми линиями RAS#. Для начала любого цикла обращения к памяти требуется подать команду ACT, которая запускает внутренний формирователь RAS# для требуемой строки выбранного банка. Спустя некоторое количество тактов можно вводить команду чтения RD или записи WR, в которой передается номер столбца первого цикла пакета. По этой команде запускается внутренний формирователь CAS#. Передача данных для циклов записи и чтения различается. Данные для первой передачи пакета записи устанавливаются вместе с командой WR. В следующих тактах подаются данные для остальных передач пакета. Первые данные пакета чтения появляются на шине через определенное количество тактов после команды. Это число, называемое CAS# Latency (CL), определяется временем доступа TCAC и тактовой частотой. В последующих тактах будут выданы остальные данные пакета. После обращения необходимо деактивировать банк — перевести внутренний сигнал RAS# в пассивное состояние, то есть произвести предзаряд (precharge). Это может быть сделано либо явно командой PRE, либо автоматически (как модифицированный вариант команд RD или WR. Внутренние сигналы CAS# формируются автоматически по командам обращения и дополнительных забот не требуют.

Регенерация выполняется по команде REF, за заданный период регенерации (стандартный 64 мс) должно быть выполнено 4096 или 8192 (в зависимости от объема микросхемы) команд REF.

На первый взгляд из этого описания не видно никаких особых преимуществ SDRAM по сравнению с BEDO. Однако синхронный интерфейс в сочетании с внутренней мультибанковой организацией обеспечивает возможность повышения производительности памяти при множественных обращениях. Здесь имеется в виду способность современных процессоров формировать следующие запросы к памяти, не дожидаясь результатов выполнения предыдущих. В SDRAM после выбора строки (активации банка) ее можно закрывать не сразу, а после выполнения серии обращений к ее элементам, причем как по записи, так и по чтению. Эти обращения будут выполняться быстрее, поскольку для них не требуется подачи команды активации и выжидания TRCD. Максимальное время удержания строки открытой ограничивается периодом регенерации. Возможность работы с открытой строкой была использована уже в FPM DRAM. Однако в SDRAM можно активировать строки в нескольких банках — каждую своей командой ACT, эта особенность и стоит за словами “Single-pulsed RAS# interface” в перечислении ключевых особенностей SDRAM. Активировать строку можно во время выполнения любой операции с другим банком. Обращение к открытой строке требуемого банка выполняется по командам RD и WR, у которых в качестве параметров кроме адреса столбца фигурирует и номер банка. Таким образом можно так спланировать транзакции, что шина данных в каждом такте будет нести очередную порцию данных, и такой поток будет продолжаться не только в пределах одного пакета, но и для серии обращений к разным областям памяти. Кстати, держать открытыми можно и строки в банках разных микросхем, объединенных общей шиной памяти.

Временная диаграмма чтения SDRAM

Микросхемы SDRAM оптимизированы для пакетной передачи. У них при инициализации программируется длина пакета и операционный режим. Пакетный режим может включаться как для всех операций (normal), так и только для чтения (Multiple Burst with Single Write). Этот выбор позволяет оптимизировать память для работы либо с WB, либо с WT-кэшем. Обратим внимание, что внутренний счетчик адреса работает по модулю, равному запрограммированной длине пакетного цикла (например, при длине пакета 4 он не позволяет перейти границу обычного четырехэлементного пакетного цикла).

Пакетные циклы могут прерываться (принудительно завершаться) последующими командами, при этом оставшиеся адреса отбрасываются. На рисунке приведен пример прерывания команды чтения по адресу A командой чтения по адресу B (подразумевается, что для адреса B строка уже открыта). В случае прерываний пакетов, как и при полных пакетах, шина данных при активированных банках может быть полезно нагруженной в каждом такте, за исключением случая чтения, следующего за записью. При этом шина будет простаивать CL тактов. В команде WR имеется возможность блокирования записи данных любого элемента пакета — для этого достаточно в его такте установить высокий уровень сигнала маскирования.

Микросхемы SDRAM имеют средства энергосбережения. В режиме саморегенерации Self Refresh микросхемы периодически выполняют циклы регенерации по внутреннему таймеру, в этом режиме они не реагируют на внешние сигналы и внешняя синхронизация может быть остановлена. В режиме пониженного потребления Power Down микросхема не воспринимает команды и регенерация не выполняется, поэтому длительность пребывания в нем ограничена периодом регенерации.

Синхронный интерфейс позволяет довольно эффективно использовать шину и обеспечить на частоте 100 МГц пиковую производительность 100 Мбит/пин (на 1 вывод шины данных). SDRAM используют в составе модулей DIMM с 8-байтной разрядностью, что дает производительность 800 Мбайт/с. Однако эта теоретическая производительность не учитывает накладные расходы на регенерацию и подразумевает, что требуемые страницы уже открыты. Из-за указанных выше ограничений на реальном произвольном потоке запросов производительность, конечно же, будет ниже. Потенциальные возможности почти одновременного обслуживания множества запросов, предоставляемая микросхемами SDRAM, будут реализованы лишь при достаточно “умном” контроллере памяти. От его предусмотрительности эффективность памяти зависит, пожалуй, больше, чем у простых FPM и EDO DRAM.

Память DDR SDRAM (Dual Data Rate — удвоенная скорость данных) представляет собой дальнейшее развитие SDRAM. Как и следует из названия, у микросхем DDR SDRAM данные внутри пакета передаются с удвоенной скоростью — они переключаются по обоим фронтам синхроимпульсов. На частоте 100 МГц DDR SDRAM имеет пиковую производительность 200 Мбит/пин, что в составе 8-байтных модулей DIMM дает производительность 1600 Мбайт/с. На высоких тактовых частотах (100 МГц) двойная синхронизация предъявляет очень высокие требования к точности выдерживания временных диаграмм. Для повышения точности синхронизации предпринят ряд мер.

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

Для синхронизации данных в интерфейс введен новый двунаправленный стробирующий сигнал DQS. Стробы генерируются источником данных: при операциях чтения DQS генерируется микросхемой памяти, при записи — контроллером памяти (чипсетом).

Для синхронизации DQS с системной тактовой частотой (CLK) микросхемы имеют встроенные схемы DLL (Delay Locked Loop) для автоподстройки задержки сигнала DQS относительно CLK. Эта схема работает наподобие фазовой автоподстройки (PLL) и способна выполнять синхронизацию (обеспечивать совпадение фронтов DQS и CLK) лишь в некотором ограниченном диапазоне частот синхронизации.

В отличие от обычных SDRAM, у которых данные для записи передаются одновременно с командой, в DDR SDRAM данные для записи (и маски DQM) подаются с задержкой на один такт (write latency). Значение CAS# Latency может быть и дробным (CL=2, 2.5, 3). Микросхемы SDRAM до “штатного” использования должны быть инициализированы — кроме предзаряда банков у них должны быть запрограммированы параметры конфигурирования. В DDR SDRAM из-за необходимости настройки цепей DLL программирование несколько сложнее.

Организация оперативной памяти

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

Микросхемы DRAM выпускают с разрядностью данных 1, 4, 8/9, 16/18 бит. Минимальной единицей упаковки, которая воспринимается системной платой компьютера, является банк памяти. Банк представляет собой объединение микросхем, обеспечивающее разрядность данных шины памяти. Так, для 386SX банк имеет разрядность 16 бит, для 386DX-486 — 32 бита, а для P5–P6 — 64 бита (8 байт). В банке все одноименные адресные входы микросхем и линии RAS# соединяются параллельно. Каждый банк выбирается своим сигналом RAS#. Линии CAS# или (и) WE должны быть индивидуальными для каждого байта, чтобы обеспечить возможность индивидуальной записи в любой байт банка. Микросхемы собираются в модули разрядностью 1 (SIMM-30, SIPP), 4 (SIMM-72) или 8 байт (DIMM). Модули могут содержать один или два банка микросхем (двусторонние модули). Однако полный банк памяти для машин с процессорами P5–P6 набирается парой модулей SIMM-72 или одним DIMM. Количество банков на системной плате ограничивается возможностями чипсета (количеством линий RAS#) или (и) количеством слотов для памяти. Первое ограничение является причиной известной проблемы с “двусторонними” модулями — в ряде плат установка такого модуля в один слот не позволяет использовать еще один слот. Увеличению числа слотов препятствует ограниченная нагрузочная способность шины памяти — каждый слот (тем более, с модулем) вносит паразитную емкость и индуктивность, ограничивающие быстродействие шины. Из-за влияния этой нагрузки для работы модулей SDRAM на частоте шины 100 МГц была разработана спецификация PC100, в которой кроме требований к быстродействию микросхем памяти задаются и правила разводки сигнальных и питающих проводников и прочие конструктивные нюансы. Теперь появляется и аналогичная спецификация PC133 — для частоты шины 133 МГц. Однако повышение тактовой частоты традиционной шины памяти технически сложно из-за большого числа сигнальных проводников. Популярные ныне модули DIMM SDRAM используют 32 адресных и управляющих линии и 64 (72 или 80 с контрольными) линии данных, при этом каждый дополнительный слот памяти требует еще несколько управляющих линий. На высоких частотах приходится учитывать задержки распространения сигналов в проводниках, и что самое неприятное — неодинаковость этих задержек, или перекос (skew).

Установка более одного банка памяти дает потенциальную возможность повышения производительности памяти за счет организации чередования банков (bank interleaving). Идею чередования проще пояснить на примере двух банков. Адресация памяти организуется так, чтобы ячейки, передаваемые в соседних тактах пакетного цикла, располагались в разных банках (сделать это несложно, поскольку пакеты выравниваются по границам строк кэша, которые фиксированы). Теперь контроллер памяти при передаче пакета будет обращаться к банкам поочередно, в результате чего частота передачи данных в такой системе может быть удвоенной по отношению к максимальной частоте работы отдельного банка. В чередовании может участвовать и большее число банков. Из разбиения на мелкие банки можно извлечь и другую выгоду. Поскольку современные процессоры способны параллельно выставлять несколько запросов на транзакции с памятью, скрытые фазы обработки запросов, обусловленные необходимым временем доступа, относящихся к разным банкам, могут выполняться одновременно. Однако это требует некоторого усложнения контроллера памяти и обеспечения независимости банков (возможности активации одного банка до предзаряда предыдущего). Независимость банков для асинхронной памяти достигается сугубо экстенсивным способом — увеличением числа линий интерфейса. Микросхемы SDRAM могут иметь внутреннюю 4-банковую организацию, независимость банков поддерживается синхронным интерфейсом. Чем больше будет независимых банков в ОЗУ, тем больше вероятность возможности их одновременного использования при обслуживании произвольных конкурирующих запросов.


Итак, подведем итоги развития, считая отправной точкой память FPM. Для повышения производительности:

1.    Повышают быстродействие ядра (запоминающих ячеек) — пока остановились на 40 нс.

2.    Применяют конвейеризацию (внешнюю — память EDO, внутреннюю — BEDO и SDRAM).

3.    Увеличивают количество независимых банков (в SDRAM — внутренне до четырех).

4.    Увеличивают разрядность данных, для процессоров P5–P6 до 8 байт.

5.    Повышают скорость передачи данных по интерфейсу памяти — в SDRAM частота “схода с конвейера” до 100–133 МГц, в DDR SDRAM — 2 х 100=200 МГц.

Пункты 3 и 4 сильно мешают прогрессу по п. 5 — 96 цепей к одному модулю развести без “перекосов” довольно сложно. Широкая разрядность интерфейса сковывает и масштабируемость памяти: нельзя увеличить объем ОЗУ, добавляя по одной микросхеме — можно только по четыре (а чаще по восемь).

Память Rambus DRAM

Память RDRAM (Rambus DRAM) имеет интерфейс, существенным образом отличающийся от традиционного и синхронного интерфейса. Запоминающее ядро этой памяти построено все на тех же КМОП-ячейках динамической памяти, но пути повышения производительности интерфейса совершенно иные. Первые микросхемы RDRAM применялись в некоторых моделях видеокарт и игровых приставок. Дальнейшим развитием интерфейса стал фирменный (Rambus) стандарт DRDRAM (Direct Rambus DRAM), обеспечивающий производительность 1600 Мбайт/с на двухбайтной шине данных при частоте 400 МГц. Стандарт DRDRAM поддержан множеством производителей микросхем и модулей памяти, он претендует на роль основного высокопроизводительного стандарта для памяти компьютеров любого размера. Подсистема памяти (ОЗУ) DRDRAM состоит из контроллера памяти, канала и собственно микросхем памяти. По сравнению с DDR SDRAM при той же производительности DRDRAM имеет более компактный интерфейс и гибкую масштабируемость. Разрядность ОЗУ DRDRAM (16 байт) не зависит от числа установленных микросхем, а число банков, доступных контроллеру, и объем памяти суммируется по всем микросхемам канала. При этом в канале могут присутствовать микросхемы разной емкости в любых сочетаниях.

Запоминающее ядро микросхем имеет многобанковую организацию — 64-мбитные микросхемы имеют 8 банков, 256-мбитные — 32 банка. Каждый банк имеет свои усилители считывания, благодаря чему в микросхеме может быть активировано несколько банков. Разрядность ядра 16 байт — 128 или 144 (с контрольными разрядами) бит. Ядро работает на 1/8 частоты канала, взаимодействие с ядром осуществляется по внутренним сигналам RAS и CAS. В современных DRDRAM применяются ячейки памяти с временем доступа 40–53 нс.

Память Direct RDRAM

Канал DRDRAM (Rambus Channel) представляет собой синхронную последовательно-параллельную шину. Такой подход позволил ограничить количество линий интерфейса, что позволяет упорядочить разводку проводников ради повышения частоты передачи сигналов. Небольшое количество сигналов позволяет при разумной цене применить сверхбыстродействующие интерфейсные схемы. Тактовая частота канала — 400 МГц, стробирование информации осуществляется по обоим фронтам синхросигнала. Таким образом, пропускная способность одной линии составляет 800 Мбит/с. Канал состоит из 30 основных линий с интерфейсом RSL (Rambus System Logic) и 4 вспомогательных линий КМОП, используемых для инициализации микросхем. Стандарт требует соблюдения топологических правил, структура подсистемы памяти приведена на рисунке. Все основные интерфейсные линии, кроме линий синхронизации, начинаются от интерфейсной микросхемы контроллера памяти и заканчиваются терминаторами на противоположном конце канала. Терминаторы не позволяют сигналам отражаться от конца канала. Микросхемы памяти подключаются к каналу без T-образных ответвлений проводников, что облегчается их упаковкой в корпуса BGA (Ball Grid Array — матрица шариковых выводов). Интерфейсные линии должны идти строго параллельно друг другу с тем, чтобы задержки распространения сигналов по разным линиям совпадали. В канале может быть установлено до 32 микросхем, и все они соединены параллельно. Для того, чтобы контроллер мог адресоваться к определенной микросхеме, каждой из них назначается свой уникальный адрес DEVID. Нумерация микросхем (Device Enumeration) осуществляется в процессе инициализации, который выполняется с использованием вспомогательного последовательного КМОП-интерфейса.

Синхросигнал вводится в канал с дальнего конца и распространяется в сторону контроллера по линии CTM (Clock To Master). По этому сигналу микросхемы памяти стробируют данные, посылаемые к контроллеру (при чтении). Распространяясь по каналу, эти данные будут сохранять свою привязку к синхроимпульсам до самого контроллера. Дойдя до контроллера, синхросигнал выходит на линию CFM (Clock From Master) и идет по каналу до терминатора, установленного на конце.

По этой линии синхронизируется информация, посылаемая от контроллера к микросхемам памяти, и ее привязка к синхросигналу так же будет сохраняться в любом месте канала. Для самой дальней микросхемы время прохождения сигнала синхронизации от CTM до CFM не должно превышать 5 тактов (12,5 нс). Микросхемы привязывают данные чтения к синхросигналу с помощью встроенных схем DLL (Delay Locked Loop) для автоподстройки задержки сигнала DQS относительно CLK. Для повышения точности сигнал синхронизации передается в дифференциальной форме.

Физический уровень интерфейса учитывает волновой характер процессов распространения сигналов в канале. Передатчики микросхем памяти формируют сигналы с половинной амплитудой. Эти сигналы распространяются по шине в обе стороны, и на конце терминатора полностью поглощаются (отражения нет). На конце контроллера импеданс приемников высокий (терминаторов нет), и амплитуда сигнала из-за отражения удваивается. Таким образом приемник контроллера принимает сигнал полной амплитуды. Отраженный от контроллера сигнал дойдет до терминатора и поглотится им. По пути он никому не помешает, поскольку сигнал, передаваемый микросхемой памяти, “интересен” только контроллеру. Контроллер генерирует сигналы полной амплитуды, и по пути к терминаторам они в таком виде пройдут по всем микросхемам памяти.

Канал разделен на три независимые шины: 3-битная шина строк ROW[2:0], 5-битная шина колонок COL[4:0] и двухбайтная (2 х 9 бит) шина данных DQA[8:0] и DQB[8:0]. Дополнительный бит байта данных (имеется не у всех микросхем DRDRAM) может использоваться для контроля достоверности. По каждой шине информация передается пакетами, занимающими 4 такта (8 интервалов) синхронизации (10 нс). Пакет содержит 8 элементов, пакет строк имеет емкость 24 бит, колонок — 40 бит и данных — 16 байт по 8 или 9 бит.

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

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

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

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


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.