Краткий обзор SSRAM
Введение
SRAM - это устройство для хранения информации, которое является ключевым элементом ядра многих высококачественных систем. SRAM расшифровывается как статическая память с произвольным доступом или по-русски чаще называют статическое оперативное запоминающее устройство (ОЗУ). SRAM имеет некоторые отличия от других типов памяти. Большинство систем содержат следующие типы запоминающих устройств: EEPROM, Flash, (S)DRAM, и SRAM. Память типа EEPROM и Flash - это так называемая долговременная память, т. е. память, которая сохраняет данные даже после отключения питания. EEPROM и Flash отличаются друг от друга технологией изготовления и методом стирания и перезаписи данных.
DRAM расшифровывается как динамическая память с произвольным доступом или динамическое ОЗУ. В такой памяти доступ может быть осуществлен к любой ячейке. Слово "динамическая", используемое при обозначении памяти данного типа, отображает, что если периодически не осуществлять доступ к данным или не посылать сигнал обновления ("refresh"), то данные будут утеряны.
Термином SRAM обозначается память, которая сохраняет данные только при наличии питания. SRAM позволяет пользователю хранить данные без дополнительной обработки или обновления, при этом данные сохраняются в устройстве только до момента, пока на него подано питание. При отключении питания все данные будут утеряны. Таким образом, SRAM относится к типу кратковременной (оперативной) памяти. Устройства запоминания типа DRAM и SRAM являются энергозависимыми устройствами, что означает, что все хранимые в них данные теряются после отключения питания.
SRAM делится на две основные группы: синхронная и асинхронная. Асинхронную SRAM чаще всего называют просто SRAM. Асинхронной SRAM для работы не требуются тактовые импульсы, так как запись и считывание информации происходят сразу после получения соответствующей команды. Речь в данном обзоре пойдет о синхронной SRAM, а все сказанное выше относится к асинхронной SRAM.
SSRAM (синхронная SRAM) - память, работа которой должна быть синхронизирована внешним синхросигналом. Считывание и запись информации в такую память происходит только при определенном состоянии синхросигнала. Обычно обмен данными происходит в момент изменения состояния синхросигнала "от низкого к высокому" (по переднему фронту или просто фронту) или "от высокого к низкому" (по заднему фронту или просто срезу).
SSRAM делится на несколько типов. В отличие от асинхронной памяти, синхронная SRAM содержит внутренний входной регистр, который защелкивает данные по каждому фронту синхросигнала. Некоторые синхронные SRAM имеют регистр- защелку и на выходе, но подробнее об этом будет рассказано позже. Чаще всего SSRAM применяется в качестве кэш- памяти. Кэш память используется процессорами для хранения наиболее часто используемых команд и данных. Доступ к данным и командам, хранимым в кэш- памяти, может быть осуществлен намного быстрее, чем к данным и командам из центральной памяти или синхронной DRAM. Чем большее число команд и данных процессор может хранить в непосредственно в кэш- памяти, тем лучше характеристики системы.
Кэш память
Кэш- память (или просто кэш) бывает, в основном, двух уровней: внутренняя кэш память, которая располагается на одной кремниевой подложке с самим процессором и внешняя кэш память, которая, соответственно, располагается отдельно от процессора, чаще всего на системной плате. Внутренняя кэш память, также иногда называемая кэшом первого уровня (L1) и обычно имеет объем от 1 кБ до 32 кБ. Внешняя кэш память, также иногда называемая кэшом второго уровня (L2), обычно намного больше кэша первого уровня и имеет объем от 64 кБ до 2МБ.
Работа кэша
Функция кэша состоит в обеспечении быстрого доступа процессора к наиболее часто применяемым командам и данным. При отсутствии в кэше запрашиваемых процессором данных, контроллер кэш- памяти должен отыскать эту информацию в центральной памяти и поместить ее в кэш. То же самое надо сделать при запросе команд. Эти операции увеличивают вероятность того, что запрашиваемые в следующий раз процессором данные или команды окажутся уже сохраненными в кэше. Этот метод поиска информации называется пакетным режимом.
Синхронная SRAM может обеспечить доступ к данным, расположенным по различным адресам, используя один адрес. Преимущество этой операции состоит в том, что обращаясь по одному адресу можно получить доступ к данным, расположенным в четырех различных местах, что приводит к снижению загрузки адресной шины. По нарастающему фронту синхросигнала происходит защелкивание в SRAM состояний адресных и контрольных выводов. Выбор режима чтения или записи данных осуществляется соответствующими сигналами управления. На следующем нарастающем фронте производится выбор состояния вывода ADV\. Если на выводе ADV\ выбран низкий уровень, то инициализируется пакетный доступ, и SRAM продолжает текущую операцию с адресом, полученным от внутреннего счетчика. Пакет продолжается до того момента, пока на соответствующем выводе присутствует высокий уровень или пока не начнется новый цикл. Если подтверждающий сигнал на выводе ADV\ удерживается достаточно долго, то SSRAM вернется к первоначальному адресу. Это является результатом того, что пакетный счетчик является двух битным, т. е. может обращаться только к четырем адресам.
Пакетные режимы
Вывод MODE управляет порядком или последовательностью пакетов. В настоящее время наиболее часто применяются две последовательности пакетов. Если на выводе MODE присутствует сигнал низкого уровня, то устройство работает в линейном режиме. В линейном пакетном режиме внутренний счетчик производит линейный пересчет текущего значения младших значащих битов A1 и A0 независимо от первоначального состояния. Этот алгоритм показан в таблице 1.
Таблица 1
Двух битная последовательность состояния двоичного счетчика. Линейный порядок пакетов наиболее часто используется PowerPC системами.
В свою очередь, если на вывод MODE подан высокий уровень, то устройство работает в режиме чередования пакетов. В режиме чередования пакетов внутренний счетчик имеет дополнительную логику, которая заставляет его формировать последовательность не по линейному закону. Формируемая последовательность зависит от первого адреса в чередуемой последовательности. Этот алгоритм показан в таблице 2.
Таблица 2
Двух битная последовательность состояния двоичного счетчика, зависящая от состояния счетчика вначале цикла. Режим чередования пакетов чаще всего применяется в системах на основе процессоров Intel.
Обсужденные выше два типа пакетных режимов не имеют никаких преимуществ друг перед другом. Просто различные процессорные системы поддерживают различные пакетные режимы: процессоры Intel поддерживают режим чередования пакетов, а процессоры PowerPC поддерживают линейный пакетный режим.
Типы пакетирования:
Кэш второго уровня должен дать процессору возможность поднять производительность до теоретического предела. Любое ожидание микропроцессором данных ведет к существенному снижению его эффективной производительности. При использовании режима пакетного доступа к кэшу, первый цикл доступа осуществляется за два машинных такта микропроцессора. Второй, третий и четвертый циклы доступа осуществляются уже всего за один машинный такт микропроцессора. Поэтому кэш с нулевым временем ожидания не добавляет задержки к этой 2-1-1-1 последовательности. Есть два различных типа пакетирования, один из которых называется "сквозной поток" (flowthrough), а другой- "конвейерный пакет". Приборы типа "сквозной поток" имеют регистр- защелку только на входе, а приборы типа "конвейерный пакет" имеют регистры- защелки как на входе, так и на выходе. Так как выходной регистр в приборах типа "конвейерный пакет" имеет дополнительную задержку, длительностью в один машинный такт, возникающую при установлении данных на выходе, то длительность считывания в таких приборах по сравнению с приборами типа "сквозной поток" равняется 3-1-1-1.
Разработано большое количество высококачественных процессоров для одновременного четырехсловного пакетирования данных кэша. Эффективность кэша определяется количеством циклов, необходимых для исполнения каждого из четырех доступов. Например, прибор типа "конвейерный пакет", работающий на частоте 66 МГц, выполняет первое чтение за три цикла, а каждое из трех последующих только за 1 цикл. Значит для обращения к 4 словам требуется всего шесть циклов микропроцессора (3-1-1-1).
В таблице 3 проведено сравнение зависимости производительности устройств разного типа от частоты. На частотах ниже 50 МГц асинхронные устройства имеют такую же эффективность, как и устройства типа "сквозной поток". На частотах от 50 МГц до 66 МГц наибольшую производительность имеют устройства типа "сквозной поток", которым надо всего пять машинных циклов микропроцессора для выполнения считывания четырех слов (2-1-1-1), а приборам типа "конвейерный пакет", как было сказано выше, требуется шесть машинных циклов микропроцессора (3-1-1-1). Однако, как видно из таблицы, на частотах выше 66 МГц устройства типа "конвейерный пакет" имеют преимущество, так как продолжают выполнять за один цикл второе, третье и четвертое считывания. Есть, однако, много прикладных программ, в которых необходимо использовать устройства типа "сквозной поток" из- за отсутствия дополнительной задержки при выводе данных, которая возникает в устройствах типа "конвейерный пакет".
Вообще, несмотря на то, что синхронная пакетная SRAM удовлетворяет требованиям, предъявляемым к кэш- памяти, главным недостатком SRAM типа "сквозной поток" и "конвейерный пакет" является необходимость обеспечения "пустых" циклов на шинах данных и адреса при переходе от операций чтения к операциям записи. Это не эффективно в прикладных программах, которые требуют быстрого переключения режимов записи и считывания.
Типы SSRAM
Есть несколько типов SSRAM, которые предназначены для применения в устройствах, в которых необходимо часто менять направление передачи данных по шине. Это приборы типа "нулевого поворота шины" (ZBT), разработанные компанией IDT и выпускаемые по лицензии фирмами Micron и Motorola; "отсутствия задержки на шине" (NoBL), разработанные компанией Cypress и "ОЗУ без поворота" (NtRAM), разработанные компанией Samsung. Эти типы SRAM были разработаны для обеспечения 100 % использования шины за счет устранения необходимости организации "пустых циклов" на шине, что необходимо для устройств, которые часто меняют направление передачи данных по шине и не могут позволить себе задержки при передаче данных, возникающие при использовании синхронной пакетной SRAM при смене направления передачи данных по шине. Эти SRAM также имеют внутренний двух битный счетчик пакетов как у синхронной пакетной SRAM для снижения разрядности адресной шины, однако, большинство приложений, которые должны часто менять направление передачи данных по шине, не всегда получают преимущества от использования пакетной передачи. Эти типы SRAM, о которых было сказано выше, также поддерживают типы пакетирования "сквозной поток" и "конвейерный пакет".
DDR SRAM
Все описанные ранее типы синхронной SRAM относятся к приборам типа "одиночные данные за такт" (SDR), в которых доступ к данным и опрос сигналов управления производятся по нарастающему фронту тактовых импульсов. Для достижения более высоких скоростей передачи данных и увеличения пропускной способности была разработана память типа DDR SRAM, которая может вести обмен данными и считывать сигналы управления по обоим фронтам синхросигнала, что в сущности удваивает скорость передачи данных. DDR SRAM была разработана для применения в качестве высокопроизводительной кэш- памяти серверов и рабочих станций, а так же для высококачественного сетевого оборудования.
Есть два типа DDR SRAM: приборы с объединенным портом ввода- вывода и разделенным портом ввода- вывода. DDR SRAM с объединенным портом ввода- вывода- это память, у которой обмен данными при записи и считывании происходит по одной общей шине данных. Этой памяти, как и обсужденной выше синхронной пакетной SRAM, требуются циклы изменения направления передачи при переключения между операциями считывания и записи. Количество "пустых циклов" такой памяти зависит от частоты: на частоте 166 МГц требуется обычно один такт, а на частоте выше 200 МГц- обычно два. Количество необходимых "пустых циклов" растет с увеличением частоты и зависит от технологии изготовления приборов.
Двухсловная пакетная DDR память:
Использование нарастающего и спадающего фронтов тактовых импульсов обусловлено применением двух тактовых задающих последовательностей K и nonK. Из временных диаграмм цикла записи (рисунок 1) видно, что данные выбираются по нарастающему фронту первого, поступившего после окончания процесса инициализации, тактового импульса последовательности К. Адрес защелкивается по первому нарастающему фронту тактового импульса последовательности К. Фактически запись происходит в течение следующего цикла записи. Если до окончания записи данных происходит запрос на выдачу данных по текущему адресу, то данные выдаются из регистра- защелки, что обеспечивает истинность выдаваемых данных.
Рисунок 1
Цикл записи DDR памяти
Из временных диаграмм цикла считывания (рисунок 2) видно, что адрес выбирается в том же цикле, в котором и происходит инициализация команды. Внутри памяти считывание данных происходит в период времени от нарастающего фронта тактового импульса последовательности К до следующего нарастающего фронта тактового импульса последовательности К. Это регистрируется, а затем начинается выдача данных в течении одного периода за два полупериода. Двухсловные пакетные приборы идеально подходят для применения в устройствах, которые используют короткие пакеты данных и имеют время установления как у однонаправленной шины.
Рисунок 2
Цикл считывания DDR памяти
Четырехсловная пакетная DDR SRAM
Четырехсловной пакетной DDR SRAM для поддержания полноразрядного режима шины требуется только один адрес каждые два цикла. В цикле записи (рисунок 1) данные защелкиваются по нарастающему фронту тактового импульса последовательности K, после чего начинается цикл инициализации, который заканчивается после трех фронтов тактовых импульсов последовательностей К и nonK. Фактически цикл записи продолжается и в течении следующего цикла записи. Если до окончания цикла записи происходит запрос на считывание данных по тому же адресу, то для ускорения и гарантирования выдачи верных данных производится передача данных из регистра- защелки, а не непосредственно из памяти. В течение цикла чтения (рисунок 2) адрес выбирается по тому же нарастающему фронту тактового импульса последовательности К, по которому происходит и инициализация цикла. Внутри устройства данные считываются между двумя соседними нарастающими фронтами тактовых импульсов последовательности К. Данные буферизируются, а затем происходит выдача данных в течение четырех полутактов. Четырехсловная пакетная DDR SRAM идеально подходит для применения в системах с четырехсловным обменом, которые имеют время установления как в однонаправленной шине.
DDR память с разделенным портом ввода- вывода
Память с этой архитектурой была разработана для применения в системах, в которых должна быть реализована постоянная скорость запроса адреса для сохранения пропускной способности шины и не допускается изменение направления передачи данных. Отношение ширины шины к количеству выводов всегда в таких системах равняется 50 % независимо от коэффициента отношения количества циклов записи и считывания. Это отношение при любых состояниях шины превосходит отношение ширины шины к количеству выводов таких типов памяти, как ZBT, NoBL, NtRAM и синхронная пакетная SRAM, и равняется отношению для памяти с однонаправленной архитектурой (см. рисунок 3).
Рисунок 3
Сравнение использования ширины шины конвейерных SRAM
SRAM с четырьмя потоками данных (QDR)
QDR SRAM была разработана совместно компаниями Cypress, IDT и Micron, а позже компании NEC и Samsung присоединились к этой группе разработчиков для дальнейшего развития этого направления. Память с такой архитектурой была разработана для применения в сетевых подсистемах, которые требуют не только малого времени задержки и полного использования цикла ZBT SRAM, но также требуют и существенно более высокой рабочей частоты. QDR SRAM имеет раздельные порты записи и считывания, как у памяти типа DDR. QDR не имеет циклов изменения направления передачи данных по шине на всех частотах, что позволяет существенно повысить быстродействие при существующей технологии производства самих устройств памяти. Память типа QDR имеет преимущество в количестве выводов по сравнению с памятью типа DDR, что позволяет использовать шины меньшей размерности. Все циклы имеют длительность пакета устройства и не могут быть пропущены или прерваны. Однако, части цикла записи могут быть произвольно замаскированы при помощи побайтовых средств управления записью.
QDR SRAM, как и описанная выше память типа DDR, использует пару внешних тактовых последовательностей K и nonK. Однако, SRAM использует только нарастающие фронты тактовых импульсов этих последовательностей. Нарастающие фронты тактовых импульсов последовательности nonK должны находиться точно посередине между нарастающими фронтами соседних тактовых импульсов последовательности К. Это необходимо для балансировки выходных данных, т. е. чтобы каждое информационное слово имело одинаковую длительность. Память типа QDR также использует пару тактовых последовательностей C и nonC, которые могут использоваться произвольно для управления выдачей данных. Поэтому, выдача всех выходных данных может быть синхронизирована при помощи сигналов C и nonC, что позволяет легко зафиксировать выходные данные и осуществить синхронизацию шины.
QDR также имеет выходную пару тактовых последовательностей CQ и nonCQ. Эти выходные сигналы могут использоваться для индикации истинности выходных данных. Архитектура памяти типа QDR делает их чрезвычайно гибкими.
Двухсловная пакетная память типа QDR
Для использования шины на 100 % двухсловной пакетной памяти типа QDR SRAMs в каждом цикле требуется два адреса. Внешне кажется, что циклы записи и чтения происходят одновременно по отдельным шинам. Однако есть очень точное разделение этих двух циклов. Что касается цикла записи (рисунок 4), то в нем данные защелкиваются по тому же нарастающему фронту тактового импульса последовательности К, по которому инициализируется и сам цикл, а завершается цикл по нарастающему фронту тактового импульса последовательности nonK. Адрес выбирается по нарастающему фронту тактового импульса последовательности nonK. Приняв адрес и данные, память производит запись фактически за период времени между нарастающим фронтом тактового импульса последовательности nonK и нарастающим фронтом последующего тактового импульса последовательности K.
Рисунок 4
Положение данных при исполнении цикла записи памятью типа QDR SRAM
Из рисунка 5 видно, что в цикле записи адрес защелкивается по тому же нарастающему фронту тактового импульса последовательности К, по которому происходит инициализация самого цикла. Внутри памяти считывание данных осуществляется в интервал между нарастающим фронтом тактового импульса последовательности К и нарастающим фронтом тактового импульса последовательности nonK, после чего они буферизируются, и вывод их начинается в следующем цикле и длится в течении двух половинных циклов.
Рисунок 5
Цикл чтения памяти типа QDR SRAM
Если циклы записи и чтения инициализируются в течение одного и того же тактового цикла, то данные на считывание запрашиваются по адресу Х, который выставлен на адресной шине. По нарастающему фронту тактового импульса последовательности nonK выставленный адрес Х передается в цикл записи.
Двухсловная пакетная QDR память идеально подходит для применения в системах, в которых требуется при обмене небольшими пакетами обеспечить отношение считывание/ запись близким к единице. Частота ограничивается двумя факторами: загрузкой системы и быстродействием самого поля памяти. Система должна иметь возможность обеспечения адресом на той же частоте, которую имеют и тактовые импульсы; необходимый адрес выставляется дважды за тактовый цикл для обеспечения 100 % использования шины данных. Ограничение быстродействия из-за поля памяти SRAM объясняется необходимостью обеспечения доступа к адресному полю дважды за тактовый цикл. Фактически, быстродействие SRAM ограничено способностью обеспечения доступа к адресному полю для гарантирования исполнения всех запросов.
Четырехсловная пакетная память типа QDR
Четырехсловной пакетной QDR SRAM для обеспечения 100 % использования шины, в отличие от двухсловной пакетной памяти типа QDR, каждый цикл требуется только один адрес. В четырехсловной QDR SRAM происходит переключение циклов записи и считывания: сначала в течение одного цикла происходит считывание, а затем в течение следующего цикла происходит запись. QDR память оперирует четырьмя информационными словами, и все операции происходят за два цикла. При 100 % использовании устройства возможно перекрытие операций чтения и записи. Как видно из рисунка 4, цикл записи начинается по фронту тактового импульса последовательности K, следующего за инициализирующим цикл тактовым импульсом, и продолжается в течение трех нарастающих фронтов тактовых импульсов последовательностей K и nonK. Адрес защелкивается по нарастающему фонту тактового импульса последовательности К, после чего при следующем запросе на запись происходит непосредственная запись данных в память. При запросе на чтение данных, цикл записи которых полностью не выполнен, происходит выдача данных не из памяти непосредственно, а для обеспечения истинности из буферного регистра.
Из рисунка 5 видно, что в цикле чтения адрес выбирается по тому же нарастающему фронту тактового импульса последовательности К, по которому непосредственно и инициализируется цикл чтения. Внутри устройства данные считываются в интервал времени между нарастающими фонтами двух соседних тактовых импульсов последовательности К. После чего данные буферизируются и в следующем тактовом цикле начинают передаваться за четыре следующие полуцикла. Память этого типа предназначена для применения в четырехсловных системах с коэффициентом отношения количества циклов записи и чтения, близким к единице.
На рисунках 7 и 8 показано относительное расположение данных при чтении и записи для всех типов памяти, которые были обсуждены в данном обзоре.
Рисунок 7
Расположение данных при чтении для SRAM производства компании Micron
Рисунок 8
Расположение данных при записи для SRAM производства компании Micron
|