23 0 Глава5. Память
воположное или нет, что может быть зафиксировано усилителями считывания. В процессе считывания содержимое ЗЭ разрушается и должно быть восстановле­но путем повторной записи, то есть как и DRAM, данный тип ЗУ требует регене­рации. Количество циклов перезаписи для FRAM обычно составляет 10 млрд.
Главное достоинство данной технологии в значительно более высокой скорос­ти записи по сравнению с EEPROM. В то же время относительная простота ЗЭ позволяет добиться высокой плотности размещения элементов на кристалле, со­поставимой с DRAM. FRAM выпускаются в виде микросхем, полностью совмес­тимых с последовательными и параллельными EEPROM. Примером может слу­жить серия 24Схх.
Специальные типы оперативной памяти
В ряде практических задач более выгодным оказывается использование специа­лизированных архитектур ОЗУ, где стандартные функции (запись, хранение, считывание) сочетаются с некоторыми дополнительными возможностями или учи­тывают особенности применения памяти. Такие виды ОЗУ называют специали­зированными и к ним причисляют:
•   память для видеоадаптеров;
•   память с множественным доступом (многопортовые ОЗУ);
•   память типа очереди (ОЗУ типа FIFO).
Два последних типа относятся к статическим ОЗУ.
Оперативные запоминающие устройства для видеоадаптеров
Использование памяти в видеоадаптерах имеет свою специфику и для реализации дополнительных требований прибегают к несколько иным типам микросхем. Так, при создании динамичных изображений часто достаточно просто изменить распо­ложение уже хранящейся в видеопамяти информации. Вместо того чтобы много­кратно пересылать по шине одни и те же данные, лишь несколько изменив их рас­положение, выгоднее заставить микросхему памяти переместить уже хранящиеся в ней данные из одной области ядра в другую. На ИМС памяти можно также воз­ложить операции по изменению цвета точек изображения.
Кратко рассмотрим некоторые из типов ОЗУ, ориентированных на примене­ние в качестве видеопамяти.
Микросхемы CGRAM. Аббревиатура SGRAM (Synchronous Graphic DRAM — синхронное графическое динамическое ОЗУ) обозначает специализированный вид синхронной памяти с повышенной внзггренней скоростью передачи данных. SGRAM может самостоятельно выполнять некоторые операции над видеоданными, в част­ности блочную запись. Предусмотрены два режима такой записи. В первом — ре­жиме блочной записи (Block Write) — можно изменять цвет сразу восьми элементов изображения (пикселов). Назначение второго режима — блочной записи с маски­рованием определенных битов (Masked Write или Write-per-Bit) — предотвратить изменение цвета для отдельных пикселов пересылаемого блока. Имеется также модификация данной микросхемы, известная как DDR SGRAM, отличие которой
Основная память 2 3 1
очевидно из приставки DDR. Использование обоих фронтов синхросигналов ве­дет к соответствующему повышению быстродействия ИМС.
Микросхемы VRAM. ОЗУ типа VRAM (Video RAM) отличается высокой про­изводительностью и предназначено для мощных графических систем. При разра­ботке ставилась задача обеспечить постоянный поток данных при обновлении изоб­ражения на экране. Для типовых значений разрешения и частоты обновления изображения интенсивность потока данных приближается к 200 Мбит/с. В таких условиях процессору трудно получить доступ к видеопамяти для чтения или за­писи. Чтобы разрешить эту проблему, в микросхеме сделаны существенные архи­тектурные изменения, позволяющие обособить обмен между процессором и яд­ром VRAM для чтения/записи информации и операции по выдаче информации на схему формирования видеосигнала (ЦАП — цифро-аналоговый преобразова­тель). Связь памяти с процессором обеспечивается параллельным портом, а с ЦАП — дополнительным последовательным портом. Кроме того, динамическое ядро DRAM дополнено памятью с последовательным доступом (SAM — Serial Access Memory) емкостью 4 Кбайт. Оба вида памяти связаны между собой широ­кой внутренней шиной. Выводимая на экран информация порциями по 4 Кбайт из ядра пересылается в SAM и уже оттуда, в последовательном коде (последователь­ный код формируется с помощью подключенных к SAM сдвиговых регистров), поступает на ЦАП. В момент перезаписи в SAM новой порции ядро VRAM полно­стью готово к обслуживанию запросов процессора. Наряду с режимами Block Write и Write-per-Bit микросхема реализует режим Flash Write, позволяющий очистить целую строку памяти. Имеется также возможность маскировать определенные ячейки, защищая их от записи.
Микросхемы WRAM. Данный вид микросхем, разработанный компанией Sam­sung, во многом похож на VRAM. Это также двухпортовая память, допускающая одновременный доступ со стороны процессора и ЦАП, но по конструкции она не­сколько проще, чем VRAM. Имеющиеся в VRAM, но редко используемые функ­ции исключены, а вместо них введены дополнительные функции, ускоряющие вывод на экран текста и заполнение одним цветом больших площадей экрана. В WRAM применена более быстрая схема буферизации данных и увеличена раз­рядность внутренней шины. Ускорено также ядро микросхемы, за счет использо­вания режима скоростного страничного режима (UFP — Ultra Fast Page), что обес­печивает время доступа порядка 15 не. В среднем WRAM на 50% производительнее, чем VRAM, и на 20% дешевле. Применяется микросхема в мощных видеоадапте­рах.
Микросхемы MDRAM. Микросхема типа MDRAM (Multibank DRAM — мно­гоблочное динамическое ОЗУ) разработана компанией MoSys и ориентирована на графические карты. Память содержит множество независимых банков по 1К 32-разрядных слов каждый. Банки подключены к быстрой и широкой внутренней шине. Каждый банк может выполнять определенные операции независимо от дру­гих банков. Отказ любого из банков ведет лишь к сокращению суммарной емкости памяти и некоторому снижению показателей быстродействия. Благодаря блочно­му построению технология позволяет изготавливать микросхемы практически любой емкости, не обязательно кратной степени числа 2.
232 Глава5. Память
Микросхемы 3D-RAM. Этот тип памяти разработан совместно компаниями Mitsubishi и Sun Microsystems с ориентацией на трехмерные графические ускори­тели. Помимо массива запоминающих элементов, микросхема 3D-RAM (трехмер­ная RAM) содержит процессор (арифметико-логическое устройство) и кэш-па­мять. Процессор позволяет выполнять некоторые операции с изображением прямо в памяти. Основные преобразования над пикселами реализуются за один такт, поскольку стандартная последовательность действий «считал, изменил, записал» сводится к одной операции — «изменить», выполняемой в момент записи. Про­цессор микросхемы позволяет за секунду выполнить около 400 млн операций по обработке данных и закрасить до 4 млн элементарных треугольников. Кэш-память обеспечивает более равномерную нагрузку на процессор при интенсивных вычис­лениях. Ядро 3D-RAM состоит из четырех банков общей емкостью 10 Мбит. Раз­мер строк памяти выбран таким, чтобы в пределах одной и той же области памяти находилось как можно больше трехмерных объектов. Это дает возможность сэко­номить время на переходы со строки на строку. По цене данный тип микросхем сравним с VRAM.
Многопортовые ОЗУ
Стандартное однопортовое ОЗУ имеет по одной шине адреса, данных и управле­ния и в каждый момент времени обеспечивает доступ к ячейке памяти только од­ному устройству. Структура запоминающего элемента (ЗЭ) такого ОЗУ приведе­на на рис. 5.12, а.
Рис. 5.12. Запоминающие элементы статического ОЗУ: а — однопортового;
б — двухп о рто во го
В отличие от стандартного в я-портовом ОЗУ имеется п независимых наборов шин адреса, данных и управления, гарантирующих одновременный и независи­мый доступ к ОЗУ п устройствам. Данное свойство позволяет существенно упро­стить создание многопроцессорных и многомашинных вычислительных систем, где многопортовое ОЗУ выступает в роли общей или совместно используемой па­мяти. В рамках одной ВМ подобное ОЗУ может обеспечивать обмен информацией между ЦП и УВВ (например, контроллером магнитного диска) намного эффек­тивней, чем прямой доступ к памяти. В настоящее время серийно выпускаются
Основная память 2 3 3
двух- и четырехпортовые микросхемы, среди которых наиболее распространены первые. Поскольку архитектурные решения в обоих случаях схожи, дальнейшее изложение будет вестись применительно к двухпортовым ОЗУ.
ЗЭ двухпортового ОЗУ (см. рис. 5.12, б) также содержит шесть транзисторов, но в отличие от стандартного ЗЭ (см. рис. 5.12, а) транзисторы Q3 служат не в ка­честве резисторов, а предоставляют доступ к элементу с двух направлений.
В двухпортовой памяти имеются два набора адресных, информационных и уп­равляющих сигнальных шин, каждый из которых обеспечивает доступ к общему массиву ЗЭ (рис. 5.13). Поскольку двухпортовому ОЗУ свойственна симметрич­ная структура, в дальнейшем наборы шин будем называть «левым» (Л) и «пра­вым» (П). В целом организация матрицы ЗЭ остается традиционной.
Доступ к ячейкам возможен как через левую, так и через правую группу шин, причем если Л- и П-адреса различны, никаких конфликтов не возникает. Пробле­мы потенциально возможны, когда Л- и П-устройства одновременно обращаются по одному и тому же адресу и хотя бы одно из этих устройств пытается выполнить операцию записи. В этом случае, если один из портов читает информацию, а дру­гой производит запись в ту же ячейку, вероятно считывание недостоверной ин­формации. При попытке единовременного ввода в ячейку с двух направлений в нее может быть занесена неопределенная комбинация из записываемых слов. Не­смотря на то что вероятность подобных ситуаций по оценкам не превышает 0,1%, такой вариант необходимо учитывать, для чего в двухпортовой памяти имеется схема арбитража с использованием сигналов «Занято».
Логика арбитража в микросхеме реализована аппаратными средствами (рис. 5.14).
Схема обеспечивает формирование сигнала «Занято», запрещающего запись в ячейку для той половины, на которой адрес появится позже, а также принятие ре­шения в пользу одного из входных портов при одновременном поступлении адре­сов. Арбитр содержит два компаратора адресов (КЛ и КП), два буфера задержки (БЗЛ и БЗП), триггер-защелку (ТЗ), образованный перекрестно связанными схема­ми «И-НЕ», и формирователи сигналов «Занято» (ЗЛ и ЗП).
234 Глава 5. Память
Рис. 5.14. Логика арбитража с использованием сигнала «Занято»
Выявление адреса, поступившего первым, производится за счет буферов задерж­ки и компараторов адресов. Так, если информация на адресной шине Ал уже стаби­лизировалась, а на шине Ап имеет тенденцию совпасть с Ал, то на выходе Кп сигнал «1» появится немедленно, как только адреса совпадут, в то время как на выходе Кл он сформируется с некоторой задержкой, определяемой БЗЛ. Эта ситуация фикси­руется триггером-защелкой, на выходе которого возможны три комбинации сиг­налов: ТЗЛ= ТЗП = 1, ТЗЛ= 0 и ТЗП = 1, ТЗЛ=1 и ТЗП= 0. В исходном состоянии ТЗЛ = ТЗП= 1, поскольку на выходах обоих компараторов 0. В нашем случае при поступлении от Кп сигнала 1 на выходе ТЗП установится значение G, в то время как выход ТЗЛ по-прежнему останется в состоянии 1, так как с Кл единица придет позже. В результа­те будет сформирован сигнал, запрещающий запись через правый порт, а также сигнал Занятоп, который поступает на устройство, подключенное к правому порту микросхемы, и может быть использован для задержки или повторения обращения к ячейке.
Если обращения к одной и той же ячейке происходят строго одновременно, сигналы с выходов Кл и Кп поступят на входы ТЗ также одновременно. Схема ТЗ реализована таким образом, что триггер и в этом случае установится в какое-то одно из двух своих нормальных состояний, что гарантирует принятие положитель­ного решения на доступ к ячейке в пользу только одного из портов.
Сигналы выбора микросхемы ВМЛ и ВМП поступают непосредственно на ТЗ, бла­годаря чему при наличии обращения только от одного из портов арбитраж не про­изводится.
Помимо возможности доступа к ячейкам с двух направлений, двухпортовая память снабжается средствами для обмена сообщениями между подключенными к ней устройствами: системой прерывания и системой семафоров. Первую из них называют аппаратной, а вторую — программной.        .■;..■■'
В системе прерываний двухпортовой памяти две последних ячейки микросхе­мы (с наибольшими адресами) используются в качестве «почтовых ящиков» для
Основная память 2 3 5
обмена сообщениями между устройствами, подключенными к Л- и П-портам. Со­общению от левого устройства выделена ячейка с четным адресом (если емкость памяти равна 1К, то это будет адрес 3FF16), а от правого — с нечетным (3FE16). Когда устройство записывает информацию в свой «почтовый ящик», формирует­ся запрос прерывания к устройству, подключенному к противоположному порту. Этот сигнал автоматически сбрасывается, когда адресат считывает информацию из своего «почтового ящика».
Система семафоров — это имеющийся в двухпортовой памяти набор из восьми триггеров, состояние которых может быть прочитано и изменено со стороны лю­бого из портов. Триггеры играют роль программных семафоров или флагов, с по­мощью которых Л- и П-устройства могут извещать друг друга о каких-то собы­тиях. Сущность этих событий не зафиксирована и определяется реализуемыми программами. Обычно семафоры нужны для предоставления одному из процессо­ров монопольного права работы с определенным блоком данных до завершения всех необходимых операций с этим блоком. В этом случае процессор, монополи­зирующий блок данных, устанавливает один из семафоров в состояние 1, а по за­вершении — в 0. Второй процессор, прежде чем обратиться к данному блоку, счи­тывает семафор и при единичном состоянии последнего повторяет считывание и анализ семафора до тех пор, пока первый процессор не установит его в состоя­ние 0. Естественно, что в программном обеспечении Л- и П-процессоров распреде­ление и правила использования семафоров должны быть согласованы.
Зачастую одной микросхемы многопортовой памяти не хватает из-за недоста­точной емкости одной ИМС или ввиду малой разрядности ячеек. В обоих случаях необходимо соединить несколько микросхем, соответственно параллельно или последовательно. Если несколько микросхем объединяются в цепочку для дости­жения нужной разрядности слова, возникает проблема с арбитражем при одновре­менном обращении к одной и той же ячейке. В этих случаях в разных ИМС цепоч­ки, в силу разброса их параметров, предпочтение может быть отдано разным портам, в то время как решение должно быть единым. Для исключения подобной ситуа­ции микросхемы многопортовой памяти выпускаются в двух вариантах: ведущие (master) и ведомые (slave). Принятие решения производится только в ведущих микросхемах, а ведомые функционируют в соответствии с инструкцией, получен­ной от ведущего. Таким образом, в цепочке используется только одна микросхема типа «ведущий», а все прочие ИМС должны иметь тип «ведомый».
Память типа FIFO
Во многих случаях ОЗУ применяется для буферизации потока данных, когда дан­ные считываются из памяти в той же последовательности, в которой они туда за­носились, но поступление и считывание происходят с различной скоростью. Час­то для этой цели применяют обычное ОЗУ, однако здесь одновременная запись и считывание информации невозможны. Более эффективным видом ОЗУ, где оба действия могут вестись одновременно,.служит память типа FIFO. Микросхема представляет собой двухпортовое ОЗУ, где один порт предназначен для занесе­ния информации, а второй — для считывания. Для FIFO-памяти характерны все технологические приемы, свойственные двухпортовой памяти, в частности спосо-
2 3 6 Глава 5. Память
бы арбитража при одномоментном обращении к одной и той же ячейке. В то же время есть и существенные отличия.
Первое состоит в том, что у микросхемы нет входов для указания адреса ячей­ки, занесение и считывание данных производится в порядке их поступления через одну входную точку и одну выходную.
Второе отличие связано с необходимостью слежения за состоянием очереди. Для этого в микросхеме имеются регистры-указатели адресов начала и конца оче­реди, а также специальные флаги, которые указывают на две ситуации: отсутствие данных (в этом случае блокируется считывание из микросхемы) и полное запол­нение памяти (блокируется запись).
Обнаружение и исправление ошибок
При работе с полупроводниковой памятью не исключено возникновение различ­ного рода отказов и сбоев. Причиной отказов могут быть производственные де­фекты, повреждение микросхем или их физический износ. Проявляются отказы в том, что в отдельных разрядах одной или нескольких ячеек постоянно считыва-ется 0 или 1, вне зависимости от реально записанной туда информации. Сбой — это случайное событие, выражающееся в неверном считывании или записи инфор­мации в отдельных разрядах одной или нескольких ячеек, не связанное с дефекта­ми микросхемы. Сбои обычно обусловлены проблемами с источником питания или с воздействием альфа-частиц, возникающих в результате распада радиоактив­ных элементов, которые в небольших количествах присутствуют практически в любых материалах. Как отказы, так и сбои крайне нежелательны, поэтому в боль­шинстве систем основной памяти содержатся схемы, служащие для обнаружения и исправления ошибок.
Вне зависимости от того, как именно реализуется контроль и исправление оши­бок, в основе их всегда лежит введение избыточности. Это означает, что контроли­руемые разряды дополняются контрольными разрядами, благодаря которым и воз­можно детектирование-ошибок, а в ряде методов — их коррекция. Общую схему обнаружения и исправления ошибок иллюстрирует рис. 5.15.
На рисунке показано, каким образом осуществляются обнаружение и исправ­ление ошибок. Перед записью М-разрядных данных в память производится их об­работка, обозначенная на схеме функцией «fi>, в результате которой формируется добавочный Ζ-разрядный код. В память заносятся как данные, так и этот вычис­ленный код, то есть + ^-разрядная информация. При чтении информации по­вторно формируется Ζ-разрядный код, который сравнивается с аналогичным ко­дом, считанным из ячейки. Сравнение приводит к одному из трех результатов:
•   Не обнаружено ни одной ошибки. Извлеченные из ячейки данные подаются на выход памяти.
•   Обнаружена ошибка, и она может быть исправлена. Биты данных и добавоч­ного кода подаются на схему коррекции. После исправления ошибки в М-раз­рядных данных они поступают на выход памяти.
•  Обнаружена ошибка, и она не может быть исправлена. Выдается сообщение о неисправимой ошибке.
Hosted by uCoz