Организация, функционирование и характеристики запоминающих устройств основной памяти
Оперативное ЗУ организовано как массив элементарных ячеек памяти, к которым обеспечивается произвольный доступ. Каждая ячейка имеет уникальный адрес, позволяющий различать ячейки при обращении к ним для выполнения операций записи и считывания. Для традиционных типов ОЗУ на базе DRAM характерна энергозависимость – даже при кратковременном прерывании питания хранимая информация теряется. Поэтому в рабочем состоянии микросхемы ОЗУ должны быть постоянно подключены к источнику питания.
Ячейки динамической памяти объединяются в двумерную матрицу, где каждая ячейка адресуется номерами строки и столбца, на пересечении которых она находится. К микросхемам памяти подводятся шины управления, адреса и данных, которые используются для передачи соответственно команд (управляющих работой микросхем памяти), адресов строк и столбцов, данных (подробнее об указанных шинах см. в разделе 5). При матричной организации микросхем памяти реализуется координатный принцип адресации ячеек. Адрес ячейки, поступающий по шине адреса ВМ, пропускается через блок логики выбора, где он разделяется на две составляющие: адрес строки и адрес столбца. Адреса строки и столбца запоминаются соответственно в регистре адреса строки и регистре адреса столбца микросхемы. Регистры соединены каждый со своим дешифратором. Выходы дешифраторов образуют систему горизонтальных и вертикальных линий, к которым подсоединены запоминающие элементы матрицы, при этом каждый запоминающий элемент расположен на пересечении одной горизонтальной и одной вертикальной линии. Запоминающие элементы, объединенные общим «горизонтальным» проводом, принято называть строкой (row). Запоминающие элементы, подключенные к общему «вертикальному» проводу, называют столбцом (column). Фактически «вертикальных» проводов в микросхеме должно быть, по крайней мере, вдвое больше, чем это требуется для адресации, поскольку к каждому запоминающему элементу необходимо подключить линию, по которой будет передаваться считанная и записываемая информация.
Совокупность запоминающих элементов и логических схем, связанных с выбором строк и столбцов, называют ядром микросхемы памяти. Помимо ядра в микросхеме имеется еще интерфейсная логика, обеспечивающая взаимодействие ядра с внешними блоками. В ее задачи, в частности, входят коммутация нужного столбца на выход при считывании и на вход – при записи.
Для синхронизации процессов фиксации и обработки адресной информации внутри микросхемы адрес строки (RA – Row Address) сопровождается сигналом RAS (Row Address Strobe – строб адреса строки), а адрес столбца (СА – Column Address) – сигналом CAS (Column Address Strobe – строб адреса столбца). Вторую букву в аббревиатурах RAS и CAS иногда расшифровывают как Access – «доступ», то есть имеется строб доступа к строке и строб доступа к столбцу. Чтобы стробирование было надежным, эти сигналы подаются с задержкой, достаточной для завершения переходных процессов на шине адреса и в адресных цепях микросхемы.
Первоначально микросхемы DRAM-памяти работали независимо от тактовых импульсов, передаваемых по шине, т. е. асинхронно (асинхронная память DRAM). Асинхронный принцип предполагает, что момент начала очередного действия определяется только моментом завершения предшествующей операции. Перенося этот принцип на систему памяти, необходимо принимать во внимание, что контроллер памяти всегда работает синхронно. В асинхронных ЗУ цикл чтения начинается только при поступлении запроса от контроллера памяти, и если память не успевает выдать данные в текущем такте, контроллер может считать их только в следующем такте, поскольку очередной шаг контроллера начинается с приходом очередного тактового импульса. Причем контроллер памяти не управляет временными параметрами этого процесса и не «знает» точно, сколько времени нужно микросхемам памяти, чтобы подготовить данные для передачи, и на каком такте начнется передача. Поэтому при работе памяти асинхронного типа обычна ситуация, когда микросхемы памяти уже подготовили данные, запрошенные контроллером, и готовы начать их передачу, но ждут для этого прохождения по шине очередного тактового импульса. В последнее время асинхронная схема работы памяти активно вытесняется синхронной. Синхронная память SDRAM (Synchronous DRAM) построена так, что все операции выполняются по тактовым импульсам. В этом случае контроллер памяти точно «знает», в течение скольких тактов микросхемы памяти будут готовить запрошенные данные для передачи и на каком такте начнется их передача. Жесткая синхронизация с тактовым сигналом упрощает логику управления работой подсистемы памяти, сокращает «накладные» расходы на передачу служебной информации и, в конечном итоге, повышает скорость работы памяти.
В SDRAM-памяти цикл чтения-записи данных осуществляется в несколько шагов (см. рис. 3.1). Вначале на шине адреса выставляется адрес строки, а на шине управления активизируется стробирующий сигнал строк RAS. Приняв сигнал RAS, микросхема памяти «понимает», что на шине адреса выставлен адрес строки, с которой ей предстоит работать, и записывает его в свой внутренний регистр, после чего необходимость в удержании последнего на шине адреса пропадает – микросхема его уже запомнила.
Рис.3.1. Временная диаграмма цикла чтения-записи данных
SDRAM-памяти
Затем микросхема считывает данные с конденсаторов нужной строки и записывает их в буферный усилитель. Для выполнения этой операции микросхеме требуется какое-то время, называемое «RAS-to-CAS Delay» (задержка сигнала СAS после сигнала RAS), которое обычно составляет 2–3 тактовых цикла и обозначается Trcd. Далее на шине адреса выставляется адрес столбца (или столбцов), а на шине управления активизируется стробирующий сигнал столбцов CAS. Микросхема, приняв сигнал CAS, «понимает», с каким элементом (элементами) строки данных, записанной ранее в буферный усилитель, предстоит работать, и готовится к тому, чтобы «выдать» его (их) значения на шину данных. Для совершения этой операции ей тоже требуется время, называемое «CAS Latency» (задержка после сигнала CAS), которое, как правило, составляет 2 – 3 тактовых цикла и обозначается Tcl.
Затем производится чтение или запись данных. При чтении данные, ранее подготовленные микросхемой к выдаче, подаются на шину данных и считываются контроллером памяти. При записи данные, выданные ранее контроллером памяти на шину данных, записываются в соответствующие ячейки строки, находящейся в буферном усилителе.
Далее производится снятие сигнала CAS. Исчезновение сигнала CAS с шины управления означает, что все операции ввода-вывода данных закончились. После этого производится снятие сигнала RAS. Исчезновение сигнала RAS означает, что прекращена работа со строкой данных, находящейся в буферном усилителе.
Затем производится зарядка конденсаторов. На этом этапе значения ячеек строки, находящейся в буферном усилителе, записываются в соответствующие конденсаторы микросхемы памяти, после чего микросхема будет снова готова к выполнению очередного цикла чтения-записи данных. Длительность этого этапа называется RAS Precharge Time (время заряда до сигнала RAS), поскольку, как только он завершится, на шину управления можно снова подавать сигнала RAS . Промежуток времени, необходимый для этого этапа, составляет 2 – 3 тактовых цикла и обозначается Trp.
В последнее время все рабочие характеристики модулей SDRAM-памяти записываются в установленные на них SPD-микросхемы (Serial Presence Detect – «определение серийных характеристик»). Системная плата может считывать данные, «прошитые» в SPD-микросхемах, и в соответствии с ними автоматически устанавливать режим работы с модулями SDRAM-памяти. Однако ряд рабочих параметров SDRAM-памяти все же можно настроить средствами программы настройки BIOS современных системных плат, что можно использовать для разгона или, наоборот, замедления памяти (если память работает неустойчиво). Отметим наиболее важные из них:
DRAM Clock – частота тактового сигнала шины памяти. Стандартно – 100, 133 МГц или By SPD (в соответствии со значением, хранящимся в SPD-микросхеме);
RAS-to-CAS Delay – время задержки сигнала CAS после сигнала RAS (2 или 3 тактовых цикла);
СAS Latency – время задержки после сигнала CAS (2; 2,5 или 3 тактовых цикла);
RAS Precharge Time – время заряда до сигнала RAS (2 или 3 тактовых цикла).
Следующие параметры требуют предварительного пояснения.
В SDRAM-памяти данные могут читаться в режиме произвольного или пакетного (burst) доступа. При произвольном доступе по шине данных однократно передается один элемент данных (например, одно слово), после чего цикл чтения заканчивается. При этом от момента подачи сигнала RAS до момента начала передачи данных по шине в идеальном случае проходит пять тактовых циклов: ожидание в течение времени «RAS-to-CAS Delay» – 2 такта, подача на адресную шину адреса столбца (или столбцов) и активирование на командной шине сигнала CAS – 1 такт, ожидание в течение времени «CAS Latency» – 2 такта. При пакетном доступе после передачи по шине первого элемента данных цикл чтения не заканчивается, а продолжается. При этом каждый последующий такт контроллера памяти считывает еще один элемент данных, который находился в той же строке данных, что и первый, и вместе с ним был «выдан» микросхемой памяти на шину данных. Как правило, при пакетном доступе за один цикл чтения обрабатывается до четырех или восьми элементов. В идеальном случае при передаче четырех элементов эта схема обозначается как «5-1-1-1», а при восьми – «5-1-1-1–1-1-1-1». Поэтому параметр DRAM Timing, соответствующий схеме работы SDRAM-памяти, может иметь характерные значения 5-1-1-1, 5-2-2-2, а параметр DRAM Burst Length, обозначающий количество элементов, передаваемых за один цикл в пакетном режиме, принимает значения 4 или 8.
Емкость основной памяти современных ВМ слишком велика, чтобы ее можно было реализовать на базе единственной микросхемы. Необходимость объединения нескольких микросхем ЗУ возникает также, когда разрядность ячеек в микросхеме ЗУ меньше разрядности слов ВМ. Отдельные микросхемы памяти могут объединяться в логические банки, с которыми возможна одновременная работа. Такой прием называется «чередованием банков» (Bank Interleaving) и он ускоряет работу памяти. Например, если требуется последовательно считать данные сначала из первого банка, а потом из второго, то контроллер памяти может начать считывать данные из второго банка, не дожидаясь окончания цикла чтения из первого. Стандартные значения параметра Bank Interleave: Disabled – не использовать чередование банков, 2 Bank – чередование между двумя банками, 4 Bank – чередование между четырьмя банками.
Так как конденсаторы динамической памяти чрезвычайно малы, высока вероятность непроизвольного изменения их состояния из-за паразитных утечек или наводок. Для исключения утраты данных периодически проводятся циклы регенерации с определенной частотой (Refresh Rate), которые обычно инициируются специализированными микросхемами. В современных модулях используются циклы регенерации, измеряемые числом строк (в тысячах), обновляемых за один такт.
Важнейшей характеристикой микросхемы памяти является быстродействие. Оно определяется временем выполнения элементарных действий между двумя операциями чтения либо записи данных. Последовательность этих операций называют рабочим циклом (или циклом обращения). Он включает указание адреса данных, чтение (запись). Время, необходимое для чтения (записи) данных по случайному адресу, называется временем доступа (Access time). Для современных микросхем оно составляет от 40 до 60 нс, что соответствует частоте появления данных от 16,7 до 25 МГц на выходе микросхемы.
В реальных условиях обращение к памяти происходит не по случайному адресу, поэтому рабочий цикл (цикл обращения) короче времени доступа.
По мере усовершенствования микросхем DRAM (FPM DRAM, EDO DRAM, BEDO DRAM, SDRAM) длительность времени цикла обращения уменьшалась и стала показателем их быстродействия. В синхронной памяти SDRAM для запуска сигналов стробирования используется внешний импульс от системной шины, поступающий с той же частотой, на которой она работает. Поэтому вместо указания времени цикла обращения (типовые значения составляют 12, 10, 8, 7 и 6 нс) для модулей SDRAM указывают максимально допустимую рабочую частоту в мегагерцах.
В обозначении модулей памяти встречается аббревиатура ECC – это технология выявления и исправления ошибок (Error Checking and Correction), которая заменила так называемый контроль четности в современных модулях памяти. При этом каждый бит данных включается более чем в одну контрольную сумму, поэтому при возникновении в нем ошибки возможно восстановить адрес и исправить сбойный бит.
Асинхронная память типа DRAM ранее выпускалась в виде так называемых модулей конструктива SIMM (Single Inline Memory Module – «односторонне расположенные контакты модулей памяти»). Пришедшая ей на смену синхронная память SDRAM имеет модули памяти конструктива DIMM (Double Inline Memory Module – «двусторонне расположенные контакты модулей памяти») и 64-разрядный интерфейс. Память SDRAM начала свой путь с частоты 66 МГц (обозначение модулей – PC66) и объемов памяти 16, 32, 64 Мбайт. Затем частоты были повышены до 100 МГц (PC100) и 133МГц (PC133), а объемы – до 128, 256, 512 Мбайт. Пиковая пропускная способность памяти PC 133 достигает 1064 Мбайт/с. К настоящему времени SDRAM считается устаревшей модификацией синхронной памяти.
С интенсивным увеличением рабочих частот новых процессоров их производительность стала существенно ограничиваться частотными возможностями оперативной памяти. Это особенно актуально для высокоскоростных процессоров класса Pentium 4, имеющих шины с пропускной способностью 4,26; 6,4 Гбайт/с и выше, которые вынуждены при отсутствии необходимых данных в кэш-памяти простаивать в ожидании данных из ОЗУ в течение значительного количества тактов. С появлением новых мощных операционных систем ужесточились требования и к объему ОЗУ. При малых объемах ОЗУ операционной системе приходится чаще считывать данные с жесткого диска, быстродействие которого гораздо ниже, чем оперативной памяти. Это также существенно сказывается на производительности ВМ в целом.
Есть два очевидных пути повышения производительности памяти: увеличение ширины ее шины или увеличение частоты работы ее микросхемы.
Частота ячейки DRAM за все время существования этой памяти, насчитывающее несколько десятилетий, изменилась всего на порядок и приблизилась к своему технологическому пределу. При сохранении классической организации ячейки памяти поднимать частоту ее работы достаточно сложно. Для этого необходимо, также как и в процессорных микросхемах, уменьшение геометрических размеров ячейки. Однако переход на новые технологические процессы требует больших финансовых затрат, что приводит к существенному повышению стоимости такой памяти. Увеличение ширины шины памяти также ограничено технологическими возможностями. Например, проектирование разводки и производство системных плат с 128-битной шиной гораздо более трудоемки и финансово затратны по сравнению с теми платами, на которых разведены только 64-битные шины памяти. А стоимость разработки и производства плат с 256-битной шиной настолько велико, что фактически оправданно только для сегмента дорогостоящих высокопроизводительных серверов.
Одним из возможных путей решения указанной проблемы (наиболее эффективным и технологически реализуемым на современном этапе технического развития) является использование так называемого принципа мультиплексирования. Рассмотрим его механизмы на примере развития памяти SDRAM (см. рис. 3.2).
Рис 3.2. Архитектура модулей памяти на базе микросхем DRAM:
а – SDR, б – DDR, в – DDR2
(Fс – частота микросхемы, Fш – частота шины, Fэ – эффективная частота)
Как уже было сказано, память SDRAM состоит из массива ячеек DRAM, буферов ввода-вывода и усилителей уровня сигнала (I/O buffers), а также схемы питания и регенерации. Все три подсистемы работают на одной тактовой частоте, то есть синхронно. Для примера выберем частоту 100 МГц. Это означает, что из массива ячеек памяти данные по шине шириной 64 бита, попадают в буферы ввода-вывода. Оттуда они по такой же шине шириной 64 бита передаются дальше, контроллеру памяти. Модуль памяти, составленный из таких микросхем, известен как память PC 100 с пропускной способностью 800 Мбайт/с. Данные передаются один раз за такт по переднему фронту сигнала.
Улучшенным вариантом памяти SDRAM стала память типа DDR SDRAM (Double Data Rate SDRAM – «синхронная память с удвоенной скоростью передачи данных»). После появления DDR SDRAM обычную память SDRAM начали именовать идентично: SDR SDRAM (Single Data Rate SDRAM SDRAM – «синхронная память с одинарной скоростью передачи данных»). Память DDR SDRAM получила свое название потому, что позволяет при той же тактовой частоте работы микросхем передавать данные вдвое быстрее, чем классическая SDRAM, а именно по два раза за такт – по переднему и заднему фронтам сигнала. При этом сами ячейки памяти DRAM работают на прежних частотах, а обеспечивается разделение внутренней и внешней шин: внутренняя имеет вдвое большую ширину, что позволяет увеличить скорость передачи данных внутри микросхемы. Другими словами, внутренняя шина между массивом ячеек DRAM и буферами ввода-вывода вдвое шире внешней шины от буфера к контроллеру, но последняя имеет вдвое более высокую частоту.
Проиллюстрируем это цифрами: пусть ширина внутренней шины микросхемы памяти 32 бита, а частота массива ячеек 100 МГц. Тогда для SDRAM памяти буфер передает данные по внешней шине шириной 32 бита с той же частотой 100 МГц, т. е. на всем пути никаких изменений не происходит. И поскольку у модуля памяти разрядность шины 64 бита, данные читаются одновременно из двух микросхем. В памяти DDR в этом случае данные из массива ячеек памяти по внутренней 64-битной шине с частотой 100 МГц передаются в буфер ввода-вывода. А контроллеру они передаются по вдвое более узкой 32-битной шине, но зато за каждый такт передается вдвое больше битов, т. е. результирующая производительность вдвое больше, чем у отдельной ячейки памяти. Разрядность модуля 64 бита, поэтому считывание ведется одновременно из двух его микросхем.
Представленный в примере вариант исполнения памяти получил название DDR200 (по эффективной частоте передачи данных), однако используется и обозначение PC1600 (по пропускной способности шины памяти). Соответственно ячейки DRAM в памяти DDR266 (PC2100) работают на частоте 133 МГц, в DDR333 (PC2700) – 166 МГц, в DDR400 (PC3200) – 200 МГц, в DDR550 (PC4400) – 275 МГц. Последующее наращивание частоты работы ячеек весьма проблематично и никакого запаса производительности технология DDR пока не имеет.
Однако дальнейшее развитие память DDR получила благодаря использованию принципов мультиплексирования, аналогичных выше описанным. Так же, как и в обычной DDR-памяти, микросхема выдает данные на буферы ввода-вывода по широкой внутренней 64-битной шине с частотой 100 МГц. Однако теперь они уходят из буфера по еще более быстрой и еще более высокочастотной шине – из буфера к контроллеру памяти ведет 16-битная шина, работающая на удвоенной частоте – 200 МГц, что вместе с передачей данных дважды за такт обеспечивает эффективную частоту модуля памяти 400 МГц. Соответственно 64-битные шины модуля памяти позволяют передавать данные из четырех микросхем (банков) одновременно. Такой модуль памяти обозначается DDR2-400, его название образовано по аналогии с памятью DDR: в соответствии с эффективной частотой передачи данных к контроллеру памяти.
Таким образом, используя массивы ячеек DRAM с одинаковой частотой (100 МГц), в разных типах памяти достигается различная производительность модуля памяти. Для SDRAM это 800 Мбайт/с, для DDR200 уже вдвое больше – 1600 Мбайт/с, а для DDR2-400 – 3200 Мбайт/с и для DDR2-533 – 4256 Мбайт/с. Благодаря принципам мультиплексирования удалось, сохранив низкую частоту работы ячейки памяти, получить высокую пропускную способность модуля памяти.
Важно подчеркнуть, что пропускная способность описывает лишь теоретическую предельную производительность модуля памяти, на которую значительное влияние оказывают задержки. Как уже упоминалось выше, ячейка памяти доступна для чтения далеко не всегда из-за необходимости такой процедуры, как регенерация. Кроме того, даже если ячейка доступна, то мгновенно получить данные не удается ввиду наличия еще и других видов задержек, таких как время выставления адреса столбца, строки, минимальное время между выставлением адресов. Эти задержки – следствие архитектуры ячейки памяти DRAM и будут, разумеется, присутствовать в любом типе памяти, построенном на ее базе. В приведенном выше примере частота работы массива ячеек в модулях PC100, DDR200 и DDR2-400 одинакова (100 МГц), значит и суммарное время задержки будет одним и тем же (оно равно произведению длительности такта на количество тактов задержки). Однако, например, при использовании вместо модуля PC100 более быстрого модуля PC133, ячейки DRAM в котором работают на частоте 133 МГц, память DDR200, имея превосходство по пропускной способности, по задержкам будет более медленной, чем PC 133. Действительно, при одинаковом количестве тактов задержки частота PC133 на треть выше (а такт соответственно на треть короче). В результате заметный эффект от внедрения памяти DDR появился лишь тогда, когда появилась память DDR266 со сравнимыми с PC133 задержками.
Следует отметить, что согласно статистическим данным, наибольшая частота обращений к памяти (более 50%) приходится на уже открытые страницы памяти, следовательно наиболее существенное влияние на быстродействие модулей памяти оказывает упоминавшийся выше параметр CAS Latency (время задержки после сигнала CAS), часто обозначаемый в характеристиках модулей памяти как параметр CL. Наиболее качественные модули памяти имеют значение CL=2. Стандартным уровнем считается CL=2,5. Однако, так как длительность такта с ростом частоты уменьшается, сохранять низкий уровень задержек при повышенных частотах труднее. В связи с этим при высоких частотах (333 и 400 МГц) не всегда удается обеспечить стабильную работу памяти в режиме CL=2.
Принципы мультиплексирования, аналогичные примененным в памяти DDR2, впервые были реализованы корпорацией Rambus в 1997 году в памяти, известной как RDRAM (Rambus DRAM). В ней также были повышены эффективные тактовые частоты до 400 МГц при одновременном уменьшении ширины выборки до 16 бит. Для борьбы с электромагнитной индукцией и интенсивным тепловыделением (так как этот тип памяти работал на высоких частотах) модули RDRAM закрывались защитным металлическим кожухом и имели специальные теплорассеивающие радиаторы.
Корпорация Intel в 2001–2002 гг. активно продвигала на рынке память RDRAM, однако в дальнейшем в силу маркетинговых соображений переориентировалась на более дешевую, чем Rambus, память DDR SDRAM.
Важнейшие характеристики основных типов микросхем памяти представлены в табл. 3.1.
Таблица 3.1
Характеристики основных типов микросхем памяти
Наименование | Максимальная физическая частота, МГц | Максимальная эффективная частота, МГц | Ширина шины, бит | Пропускная способность, Мбайт/с |
SDR SDRAM DDR SDRAM DDR2 SDRAM |
Память типа ПЗУ организована аналогично ОЗУ. Микросхемы ПЗУ также построены по принципу матричной структуры и подключены к адресной линии и разрядной линиям считывания. Основным режимом работы ПЗУ является считывание информации, которое мало отличается от аналогичной операции в ОЗУ как по организации, так и по длительности. В то же время запись в ПЗУ по сравнению с чтением во многих схемах ПЗУ (см. подраздел 3.1) обычно сложнее и связана с большими затратами времени. Микросхема ПЗУ хранит информацию и при отключенном питании. Характерный объем памяти ПЗУ в современных компьютерах обычно составляет от 128 Кб до 2 Мб. Так как быстродействие ПЗУ существенно ниже быстродействия ОЗУ, для повышения производительности компьютера содержимое ПЗУ или его часть копируется в ОЗУ, и при работе непосредственно используется эта копия.
Дата добавления: 2015-12-17; просмотров: 1566;