Введение
Тип компьютерной памяти
Статическая память с произвольным доступом (static RAM или SRAM) – это тип памяти с произвольным доступом (RAM), использующий триггерную схему (flip-flop) для хранения каждого бита. SRAM является энергозависимой памятью; данные теряются при отключении питания. Термин "статическая" отличает SRAM от DRAM (динамической памяти с произвольным доступом):
SRAM сохраняет свои данные постоянно при наличии питания, в то время как данные в DRAM со временем теряются (в течение секунд) и, следовательно, требуют периодического обновления. SRAM быстрее, чем DRAM, но требует большей площади кремния и стоит дороже. SRAM обычно используется для кэша и внутренних регистров центрального процессора, а DRAM – для основной памяти компьютера.
История
Полупроводниковая биполярная SRAM была изобретена в 1963 году Робертом Норманом в Fairchild Semiconductor. Металл-оксид-полупроводниковая SRAM (MOS SRAM) была изобретена в 1964 году Джоном Шмидтом в Fairchild Semiconductor. Это была 64-битная MOS p-канальная SRAM. SRAM была основным фактором развития любого нового технологического процесса производства на основе CMOS с 1959 года, когда CMOS была изобретена. В 1964 году Арнольд Фарбер и Юджин Шлиг, работавшие в IBM, создали жесткую ячейку памяти, используя транзисторный затвор и триггер на туннельном диоде. Они заменили триггер двумя транзисторами и двумя резисторами, конфигурация, которая стала известна как ячейка Фарбера-Шлига. В том же году они подали заявку на раскрытие изобретения, но она была первоначально отклонена. В 1965 году Бенджамин Агуста и его команда в IBM создали 16-битный кремниевый чип памяти на основе ячейки Фарбера-Шлига, содержащий 80 транзисторов, 64 резистора и 4 диода. В апреле 1969 года Intel Inc. представила свой первый продукт, Intel 3101, чип памяти SRAM, предназначенный для замены громоздких модулей памяти на магнитных сердечниках; его емкость составляла 64 бита (в первых версиях только 63 бита были доступны из-за ошибки) и он был основан на биполярных транзисторах, разработанный с использованием рубитового фотоплоттера.
Характеристики
Хотя SRAM можно охарактеризовать как энергозависимую память, она демонстрирует остаточное сохранение данных. SRAM предлагает простую модель доступа к данным и не требует схемы обновления. Производительность и надежность высоки, а энергопотребление низкое в режиме ожидания. Поскольку для реализации SRAM требуется больше транзисторов на бит, она менее плотная и дороже, чем DRAM, а также потребляет больше энергии при чтении или записи. Энергопотребление SRAM значительно варьируется в зависимости от частоты доступа к ней. Небольшое количество (килобайты или меньше) также встроено практически во все современные приборы, игрушки и т.п., оснащенные электронным пользовательским интерфейсом. SRAM в двухпортовом исполнении иногда используется в схемах цифровой обработки сигналов в реальном времени.
В компьютерах
SRAM также используется в персональных компьютерах, рабочих станциях, маршрутизаторах и периферийном оборудовании: регистрах процессора, внутренних кэшах процессора, внутренних кэшах графического процессора и внешних кэшах SRAM, работающих в режиме быстрого доступа, буферах жестких дисков, буферах маршрутизаторов и т.д. ЖК-экраны и принтеры также обычно используют SRAM для хранения отображаемого (или предназначенного для печати) изображения. В контроллерах ЖК-дисплеев может использоваться SRAM. SRAM применялся в качестве основной памяти многих ранних персональных компьютеров, таких как ZX80, TRS 80 Model 100 и VIC 20. Некоторые ранние карты памяти конца 1980-х – начала 1990-х годов использовали SRAM в качестве носителя информации, для сохранения содержимого которого требовалась литиевая батарея.
Любители
Любители, особенно энтузиасты, создающие процессоры своими руками, часто предпочитают SRAM из-за простоты подключения. С ним гораздо легче работать, чем с DRAM, поскольку не требуется периодического обновления, а к адресной и информационной шинам часто можно получить прямой доступ. Помимо шин и питания, SRAM обычно требует только трех управляющих сигналов: выбор микросхемы (CE), разрешение записи (WE) и разрешение вывода (OE). В синхронной SRAM также используется тактовый сигнал (CLK).
Нелетучие SRAM
Нелетущие SRAM (nvSRAM) обладают стандартной функциональностью SRAM, но сохраняют данные при отключении питания, обеспечивая сохранность критически важной информации. nvSRAM применяются в самых разных областях, включая сетевые технологии, аэрокосмическую промышленность и медицину, где сохранение данных критически важно и использование батарей нецелесообразно.
Псевдостатическая оперативная память
Псевдостатическая оперативная память (PSRAM) – это DRAM, дополненная схемой автоматического обновления. Она внешне проявляет себя как более медленная SRAM, однако обладает большей плотностью и меньшей стоимостью по сравнению с настоящей SRAM, и не требует сложной схемы доступа, характерной для DRAM.
По функциям
Асинхронная, независимая от тактовой частоты; ввод и вывод данных управляются переключением адреса. Примеры включают широко распространенные 28-выводные микросхемы 8K × 8 и 32K × 8 (часто, но не всегда называемые 6264 и 62C256 соответственно), а также аналогичные продукты объемом до 16 Мбит на чип. Синхронная – все временные характеристики инициируются фронтами тактового сигнала. Адрес, входные данные и другие управляющие сигналы синхронизированы с тактовым сигналом. В 1990-х годах асинхронная SRAM использовалась для обеспечения быстрого времени доступа. Асинхронная SRAM применялась в качестве основной памяти для небольших процессоров без кэша, используемых в широком спектре устройств – от промышленной электроники и измерительных систем до жестких дисков и сетевого оборудования, и многих других областях. В настоящее время синхронная SRAM (например, DDR SRAM) используется аналогично синхронной DRAM. Синхронный интерфейс памяти значительно быстрее, поскольку время доступа может быть существенно сокращено за счет использования конвейерной архитектуры. Кроме того, поскольку DRAM значительно дешевле SRAM, SRAM часто заменяется DRAM, особенно когда требуется большой объем данных. Однако SRAM-память намного быстрее для произвольного (не блочного/пакетного) доступа. Поэтому SRAM-память в основном используется для кэша ЦП, небольшой памяти на кристалле, FIFO или других небольших буферов.
По особенностям
Zero bus turnaround (ZBT) – это число тактов, необходимых для переключения доступа к SRAM с записи на чтение и обратно. Время переключения для ZBT SRAM, или задержка между циклами чтения и записи, равно нулю. syncBurst (syncBurst SRAM или synchronous burst SRAM) обеспечивает синхронный пакетный доступ на запись в SRAM для повышения производительности операций записи. DDR SRAM – синхронная SRAM с одним портом чтения/записи и удвоенной скоростью передачи данных. Quad Data Rate SRAM – синхронная SRAM с раздельными портами чтения и записи и учетверенной скоростью передачи данных ввода/вывода.
Дизайн
Типичная ячейка SRAM состоит из шести MOSFET и часто называется ячейкой SRAM 6T (6 транзисторов). Каждый бит в ячейке хранится на четырех транзисторах (M1, M2, M3, M4), которые образуют два перекрестно связанных инвертора. Эта ячейка хранения имеет два стабильных состояния, используемых для обозначения 0 и 1. Два дополнительных транзистора доступа служат для управления доступом к ячейке хранения во время операций чтения и записи. 6T SRAM является наиболее распространенным типом SRAM. Помимо 6T SRAM, другие типы SRAM используют 4, 5, 7, 8, 9 (4T, 5T, 7T, 8T, 9T, 10T SRAM) или более транзисторов на бит. Четырехтранзисторные SRAM довольно распространены в автономных SRAM-устройствах (в отличие от SRAM, используемых для кэшей CPU), реализованных в специальных процессах с дополнительным слоем поликремния, что позволяет создавать очень высокие сопротивления подтяжки. Основным недостатком использования 4T SRAM является увеличение статического энергопотребления из-за постоянного тока, протекающего через один из транзисторов (M1 или M2). Это иногда используется для реализации более одного порта (чтения и/или записи), что может быть полезно в некоторых типах видеопамяти и регистровых файлов, реализованных с использованием многопортовой схемы SRAM. Как правило, чем меньше транзисторов требуется на ячейку, тем меньше может быть сама ячейка. Поскольку стоимость обработки кремниевой пластины относительно фиксирована, использование меньших ячеек и размещение большего количества битов на одной пластине снижает стоимость одного бита памяти. Ячейки памяти, использующие менее четырех транзисторов, возможны; однако такие 3T или 1T ячейки являются DRAM, а не SRAM (даже так называемые 1T SRAM). Доступ к ячейке обеспечивается линией выбора слова (WL на рисунке), которая управляет двумя транзисторами доступа M5 и M6, которые, в свою очередь, контролируют, должна ли ячейка быть подключена к линиям битов: BL и BL. Они используются для передачи данных как при операциях чтения, так и при операциях записи. Хотя наличие двух линий битов не является строго необходимым, обычно предоставляются как сам сигнал, так и его инверсия для улучшения помехоустойчивости и скорости. Во время операций чтения линии битов активно переключаются в высокое и низкое состояние инверторами в ячейке SRAM. Это повышает пропускную способность SRAM по сравнению с DRAM, где линия бита подключена к накопительным конденсаторам, а перераспределение заряда приводит к изменению напряжения на линии бита вверх или вниз. Симметричная структура SRAM также позволяет использовать дифференциальную сигнализацию, что облегчает обнаружение небольших изменений напряжения. Еще одно отличие от DRAM, способствующее более высокой скорости работы SRAM, заключается в том, что коммерческие микросхемы принимают все биты адреса одновременно. В отличие от них, обычные DRAM имеют адрес, мультиплексированный в две половины – сначала старшие биты, затем младшие – по одним и тем же выводам корпуса, чтобы снизить их размер и стоимость. Размер SRAM с m адресными линиями и n линиями данных составляет 2^m слов или 2^m × n битов. Наиболее распространенный размер слова составляет 8 бит, что означает, что один байт может быть прочитан или записан в каждое из 2^m различных слов в микросхеме SRAM. Несколько распространенных микросхем SRAM имеют 11 адресных линий (следовательно, емкость 2k слов) и 8-битное слово, поэтому они называются "2k × 8 SRAM". Размеры ячейки SRAM на интегральной схеме определяются минимальным размером элемента процесса, используемого для изготовления интегральной схемы.
В режиме ожидания
Если сигнал строки слов не установлен, транзисторы доступа M5 и M6 отключают ячейку от линий битов. Два перекрестно связанных инвертора, образованные транзисторами M1 и M4, будут продолжать усиливать друг друга, пока они подключены к питанию.
Чтение
В теории, для чтения достаточно лишь установить линию выбора слова (word line) WL и считать состояние ячейки SRAM с помощью одного транзистора доступа и битовой линии, например, M6, BL. Однако битовые линии относительно длинные и обладают большой паразитной ёмкостью. Для ускорения чтения на практике используется более сложный процесс: цикл чтения начинается с предварительной зарядки обеих битовых линий BL и BL до высокого (логического 1) напряжения. Затем, установка линии выбора слова WL открывает оба транзистора доступа M5 и M6, что вызывает небольшое падение напряжения на одной из битовых линий BL. В результате, на линиях BL и BL возникает небольшая разница потенциалов. Усилитель восстановления (sense amplifier) определяет, на какой линии более высокое напряжение, и таким образом устанавливает, была ли сохранена единица или ноль. Чем выше чувствительность усилителя восстановления, тем быстрее выполняется операция чтения. Поскольку NMOS транзистор обладает большей мощностью, опускание напряжения происходит легче. Поэтому битовые линии традиционно предварительно заряжают до высокого напряжения. Многие исследователи также изучают возможность предварительной зарядки до слегка пониженного напряжения для снижения энергопотребления.
Написание
Цикл записи начинается с подачи значения, которое необходимо записать, на битовые линии. Для записи 0 на битовые линии подается 0, например, устанавливая BL в 1 и BL в 0. Это аналогично подаче импульса сброса на триггер SR, что приводит к изменению состояния флип-флопа. Для записи 1 значения на битовых линиях инвертируются. Затем утверждается сигнал WL, и значение, которое нужно сохранить, фиксируется. Это работает, потому что выходные драйверы битовых линий сконструированы значительно мощнее, чем относительно слабые транзисторы в самой ячейке, поэтому они могут легко изменить предыдущее состояние перекрестно связанных инверторов. На практике транзисторы доступа NMOS M5 и M6 должны быть сильнее, чем нижние NMOS-транзисторы (M1, M3) или верхние PMOS-транзисторы (M2, M4). Это легко достичь, поскольку PMOS-транзисторы при одинаковых размерах значительно слабее, чем NMOS. Следовательно, когда одна пара транзисторов (например, M3 и M4) лишь слегка изменяется в процессе записи, напряжение на затворе противоположной пары транзисторов (M1 и M2) также меняется. Это означает, что транзисторы M1 и M2 легче изменить, и так далее. Таким образом, перекрестно связанные инверторы усиливают процесс записи.
Поведение автобуса
ОЗУ с временем доступа 70 нс выдаст корректные данные в течение 70 нс после того, как адресные линии станут валидными. Некоторые ячейки SRAM поддерживают "режим страницы", при котором слова в пределах страницы (256, 512 или 1024 слова) могут считываться последовательно со значительно меньшим временем доступа (обычно около 30 нс). Страница выбирается установкой старших адресных линий, а затем слова считываются последовательно путем перебора младших адресных линий.
Проблемы производства
С внедрением транзисторов FinFET в схемы SRAM, ячейки стали демонстрировать растущую неэффективность по занимаемой площади. За последние 30 лет (с 1987 по 2017 год), при постоянном уменьшении размеров транзисторов (технологического узла), темпы уменьшения площади, занимаемой самой топологией ячейки SRAM, замедлились, что усложнило их более плотную компоновку.
Исследования
В 2019 году французский институт опубликовал отчет об исследовании 28-нм интегральной схемы (ИС), разработанной для Интернета вещей. Она была реализована на транзисторах полностью истощенного кремния на изоляторе (FD SOI), имела двухпортовую шину SRAM для синхронного и асинхронного доступа, а также использовала технологию селективного виртуального заземления (SVGND). В исследовании заявлялось о достижении сверхнизкого тока SVGND в режимах "сон" и чтения путем точной настройки напряжения.