
Встроенные микропроцессорные системы / ВстроенныеСистемы / mps9
.docЛекция 9
4. Основная память микропроцессорной системы
Основная память МПС проектируется на базе микросхем оперативных запоминающих устройств (ОЗУ или RAM –Random Access Memory) и постоянных запоминающих устройств (ПЗУ или ROM – Read Only Memory). ОЗУ – память, в которую можно и записывать и считывать. ПЗУ – память, из которой можно только считывать, а значит нельзя изменить содержимое, данные также должны сохраняться и при выключении питания.
4.1. Статическое ОЗУ
Статическое ОЗУ (SRAM) конструируется с использованием D-триггеров.
В лучшем случае требуется 6 МОП транзисторов на триггер, что препятствует созданию больших массивов ячеек на кристалле (до несколько миллионов байт). Информация сохраняется на протяжении всего времени, пока на микросхему подано питание. Статическое ОЗУ работает очень быстро. Обычно время доступа составляет несколько наносекунд. Поэтому статическое ОЗУ часто используют в качестве кэш-памяти второго уровня. На рис.4.1 приведен интерфейс микросхемы статического ОЗУ.
МПС может содержать несколько микросхем ОЗУ. Поэтому нужен сигнал для выбора необходимой микросхемы, такой чтобы нужная микросхема реагировала на обращение, а остальные нет. Сигнал /CS (Chip Select – выбор микросхемы) используется для этой цели. “/” означает, что активное значение сигнала равно 0.
По сигнал /WE (Write Enable – разрешение записи) выбранная микросхема ОЗУ записывает данные с линий D0 … Dm в ячейку, двоичный адрес которой установлен на линиях A0 … An.
По сигналу /OE (Output Enable – разрешение выдачи данных) выбранная микросхема ОЗУ выставляет данные на линии D0 … Dm из ячейки, двоичный адрес которой установлен на линиях A0 … An.
На рис. 4.2 приведена временная диаграмма цикла записи статического ОЗУ.
Время установки (setup time) определяет минимальное время для подачи сигнала /WE после установки линий адреса (время необходимое для дешифрации адреса ячейки).
Время сохранения (hold time) определяет минимальное время до очередного изменения адресных линий после снятия сигнала /WE (время необходимое для предотвращения перезаписи данных в другую ячейку).
На рис. 4.3 приведена временная диаграмма цикла чтения статического ОЗУ.
На рисунках приведены лишь важнейшие временные параметры
микросхем статического ОЗУ.
4.2. Динамическое ОЗУ
В динамическом ОЗУ (DRAM) в качестве запоминающего элемента используется паразитная емкость pn-перехода, которая через МОП транзистор может быть подключена к схемам чтения или записи. На рис.4.4 приведена модель динамического ОЗУ, организованного в виде матрицы.
Конденсатора С может быть заряжен или разряжен, что позволяет говорить о хранении 0 или 1. Электрический заряд конденсатора стекает за несколько десятков миллисекунд, поэтому каждый бит информации должен обновляться (регенерировать) для предотвращения разрушения данных.
Во время выборки строки все соответствующие транзисторы открываются и конденсаторы строки разряжаются. Токи разряда поступают на входы запоминающих усилителей считывания, формируя на их выходах соответствующие напряжения 0 или 1. Таким образом, и при обращении к строке данные разрушаются. Поэтому перед выборкой следующей строки, данные должны быть перезаписаны из запоминающих усилителей считывания в ранее выбранную строку.
В динамическое ОЗУ на каждый бит требуется один конденсатор и один транзистор, поэтому такое ОЗУ имеет высокую плотность данных. Поэтому ОП во многих МПС строится на основе динамического ОЗУ. Однако динамическое ОЗУ работает значительно медленнее. Таким образом, сочетание кэш-памяти на основе статического ОЗУ и ОП на основе динамического ОЗУ соединяет в себе преимущества обоих устройств.
Существует несколько типов динамических ОЗУ. Самый старый называется FPM (Fast Page Mode – быстрый страничный режим). Под страницей динамического ОЗУ понимают все множество ячеек памяти, принадлежащих одной строке. На смену FPM пришла EDO (Extended Data Output – память с расширенными возможностями выходов данных) с конвейеризацией адресов и данных, что увеличило пропускную способность памяти.
Оба эти типа
динамических ОЗУ являются асинхронными.
На рис.4.5 приведен интерфейс микросхем
асинхронных динамических ОЗУ.
Сначала нужно выбрать строку. Для этого номер строки помещается на адресные выводы А0…Аn. Затем устанавливается сигнал /RAS (Row Address Strob – строб адреса строки). После этого на адресные выводы подается номер столбца и устанавливается сигнал /CAS (Colum Address Strob). И, наконец, сигналы /OE или /WE.
Регенерация всех ячеек строки выполняется установкой ее номера на адресных линиях и сигналов /RAS и /CAS (алгоритм CBR – Cas Befor Ras, т.е. /CAS устанавливается чуть раньше /RAS). В течении нескольких миллисекунд необходимо перебрать все строки и вся память будет регенерирована.
На смену асинхронным пришли синхронные динамическим ОЗУ (SDRAM), все действия в которых происходят по фронту или срезу синхронизирующего сигнала CLK. С целью совмещения операций ячейки сгруппированы в несколько банков (обычно 4) – расслоение (interleaving) памяти. Это дает возможность повысить производительность памяти. На рис.4.6 приведен интерфейс микросхем SDRAM.
Рассмотрим взаимодействие с SDRAM стандарта JDEC. Ниже приведены интерфейсные команды этого стандарта.
BANK-ACTIVATE: запоминание адреса строки. Содержимое строки (страница) считывается в запоминающие усилители считывания. Такую страницу называют открытой.
MODE-SET: установка параметров SDRAM (передаются через адресные линии). Скрытый период после сигнала CAS (CAS latency - CL) – задержка выдачи данных после сигнала CAS (1,2,3, … такта). Блочный режим передачи (burst) и длина блока – последовательная передача соседних данных. Длина блока (BL) может быть 1,2,4,8 слов или страница. На рис.4.7 приведен формат слова параметров.
Слово параметров SDRAM устанавливается на линиях адреса и сопровождается установкой сигналов /RAS, /CAS и /WE.
PRECHARGE (SINGLEBANK/ALLBANKS): перезапись данных из усилителей считывания в соответствующую строку. Эта команда должна выполняться всякий раз после записи или чтения, если адрес строки изменяется при следующем доступе. Выполнение команды PRECHARGE при А10=1 приводит к перезаписи выбранной строки во всех банках.
READ: запоминание адреса колонки и передача данных из выбранных усилителей считывания в выходной буфер. В конце блочной передачи выбранная страница остается открытой.
REFRESH: чтение строки во всех банках. Номер строки определяется внутренним регенерационным счетчиком адреса строки. После начала чтения строка автоматически перезаписывается. Все банки перед регенерацией должны быть в состояние PRECHARGE.
Регенерация очередной страницы запускается установкой сигналов /RAS и /CAS (алгоритм CBR).
WRITE: запоминание адреса колонки и передача данных с линий D
в выбранные усилители считывания. Во время каждого последующего тактового импульса при блочной передаче данные запоминаются без дополнительной операции WRITE. В конце блочной передачи выбранная страница остается открытой.
SDRAM поддерживает плотный (back-to-back) страничный режим доступа. Это означает, что страница остается открытой пока доступ вплотную осуществляется к ячейкам в пределах открытой страницы или пока магистраль не начнет выполнять холостые циклы.
SDRAM поддерживает конвейеризацию. Это означает, что доступ к следующим данным может происходить минимум через 0 тактов.
SDRAM поддерживает перекрытие банков. Это означает, что если происходит обращение к другой странице в другом банке, то сначала выдается команда BANK-ACTIVATE для новой страницы, а затем PRECHARGE для старой страницы. Это уменьшает накладные расходы, связанные с де активизацией старой страницы.
Существует два варианта чередования внутренних банков SDRAM. Первый называют перекрытием страниц. В этом случае адрес ячейки памяти структурируется следующим образом (слева старшая часть адреса):
номер строки – номер банка – номер колонки.
В случае варианта с перекрытием банков адрес ячейки памяти структурируется следующим образом:
номер банка - номер строки – номер колонки.
Первый вариант обеспечивает большую производительность.
На рис.4.8 приведена временная диаграмма чтения блока данных (BL=4, CL=3) при промахе страницы. Сначала де активизируется ранее выбранная страница, затем активизируется новая страница. Установка сигналов /CAS и /DQM запускают чтение четырех рядом расположенных слов.
.
SDRAM выполняет блочную передачу для каждой транзакции.
При чтении, если требуется данных меньше чем длина блока, то ненужные прочитанные данные игнорируются инициатором транзакции. При записи, если требуется записать меньше данных, чем длина блока, инициатор транзакции подавляет запись лишних данных сбросом линий /DQM.
На рис.4.9 приведена временная диаграмма конвейеризованных транзакций чтения после записи к открытой странице.
4.3. Постоянное запоминающее устройство (ПЗУ)
PROM (Programmable ROM) — программируемое ПЗУ (ППЗУ), обычно относят к OTPROM (One Time Programmable ROM) — «Однократно Программируемое ПЗУ». К PROM также относят и «Масочное ПЗУ» — вариант OTPROM, который программируется не самим пользователем, а на фабрике в процессе изготовления. EPROM (Erasable Programmable ROM) — стираемая/программируемая ROM. По-русски иногда называют ПППЗУ («Перепрограммируемое ПЗУ»). Иногда употребляется как синоним UV-EPROM. EEPROM (Electrically Erasable Programmable ROM) — электрически стираемое перепрограммируемое ПЗУ, ЭСППЗУ. UV-EPROM (Ultra-Violet EPROM) — ультрафиолетовая EPROM, УФППЗУ. Исторически первая коммерческая разновидность EPROM, операция стирания в которой производится ультрафиолетом через специальное окошко. Flash memory — первоначально термин придуман для обозначения прогрессивной разновидности EEPROM, в которой чтение/запись для ускорения процесса производятся сразу целыми блоками. Позднее (когда медленная EEPROM исчезла из обращения) стал фактическим синонимом EEPROM и теперь обозначает ее любые разновидности.
На рис.4.10 представлено устройство элементарной ячейки, лежащей в основе всех современных типов флэш-памяти. Если исключить из нее «плавающий затвор», мы получим самый обычный полевой транзистор — такой же, как тот, что входит в ячейку DRAM. Если подать на управляющий затвор такого транзистора положительное напряжение, он откроется, и через него потечет ток (состояние «логическая единица»). На рис.4.10 изображен именно такой случай, когда плавающий затвор не оказывает никакого влияния на работу ячейки, — такое состояние характерно для «чистой» флэш-памяти, в которую еще ни разу ничего не записывали.
Если же разместить на плавающем затворе некоторое количество зарядов — свободных электронов, то они будут экранировать действие управляющего электрода, и такой транзистор вообще перестанет проводить ток. Это состояние — «логический ноль”. Поскольку затвор «плавает» в толще изолятора (двуокиси кремния, SiO2), то сообщенные ему однажды заряды в покое никуда деться не могут. И записанная таким образом информация может храниться десятилетиями (производители обычно дают гарантию 10 лет, но на практике это время значительно больше).
В первых образцах EPROM (UV-EPROM —стирались ультрафиолетом) слой окисла между плавающим затвором и подложкой был достаточно толстым (50 нанометров), и работало все это довольно грубо. При записи на управляющий затвор подавали достаточно высокое положительное напряжение — до 36–40 В (что для микроэлектронной техники считается просто катастрофическим перенапряжением), а на сток транзистора — небольшое положительное. При этом электроны, которые двигались от истока к стоку, настолько ускорялись полем управляющего электрода, что барьер в виде изолятора между подложкой и плавающим затвором просто «перепрыгивали». Такой процесс называется еще инжекцией горячих электронов. Ток заряда при этом достигал миллиампера — можете себе представить, каково было потребление всей схемы, если в ней одновременно заряжать хотя бы несколько тысяч ячеек. И хотя такой ток требовался на достаточно короткое время (хотя с точки зрения быстродействия схемы не такое уж и короткое — миллисекунды), это было крупнейшим недостатком всех старых образцов EPROM-памяти. Еще хуже другое — и изолятор, и сам плавающий затвор долго не выдерживали, постепенно деградируя, отчего количество циклов записи/стирания было ограничено несколькими сотнями, максимум — тысячами. Во многих образцах флэш-памяти (даже более поздних) была предусмотрена специальная схема для хранения карты «битых» ячеек — в точности так, как это делается в жестких дисках. В современных моделях такая карта, кстати, тоже имеется — однако число циклов стирания/записи возросло до сотен тысяч и даже миллионов.
Рассмотрим, как осуществлялось в этой схеме стирание. В упомянутой UV-EPROM при облучении ультрафиолетом фотоны высокой энергии сообщали электронам на плавающем затворе достаточный импульс, чтобы они «прыгали» обратно на подложку самостоятельно, без каких-либо электрических воздействий. В электрически стираемой памяти (EEPROM) использован «квантовый эффект туннелирования Фаулера-Нордхейма». При достаточно тонкой пленке изолятора (10 нм) электроны, если их слегка «подтолкнуть» не слишком высоким напряжением в нужном направлении, могут «просачиваться» через барьер, не перепрыгивая его. Старые образцы EEPROM именно так и работали: запись производилась горячей инжекцией, а стирание — квантовым туннелированием. Оттого они были довольно сложны в эксплуатации. Первые микросхемы EEPROM требовали два, а то и три питающих напряжения, причем подавать их при записи и стирании требовалось в определенной последовательности. Поэтому разработчики предпочитали использовать более дешевую, удобную, скоростную и надежную статическую память (SRAM), пристраивая к ней резервное питание от литиевых батареек, которые были достаточно дешевыми. Компания Dallas Semiconductor выпустила специальный тип NVRAM с батарейкой, встроенной прямо в микросхему.
Превращение EEPROM во Flash происходило по трем разным направлениям. Во-первых, усовершенствовалась конструкция самой ячейки. Для начала избавились от «горячей инжекции». Вместо нее при записи стали также использовать квантовое туннелирование, как и при стирании. Если при открытом транзисторе подать на управляющий затвор достаточно высокое (но значительно меньшее, чем при «горячей инжекции») напряжение, часть электронов, двигающихся через открытый транзистор от истока к стоку, «просочится» через изолятор и окажется на плавающем затворе. Потребление тока при записи снизилось на несколько порядков. Изолятор, правда, пришлось сделать еще тоньше, что обусловило довольно большие трудности с внедрением этой технологии в производство.
Во-вторых, ячейку сделали несколько сложнее, пристроив к ней второй транзистор (обычный), который разделил вывод стока и считывающую шину всей микросхемы. Благодаря этому (вместе с отказом от горячей инжекции) удалось добиться значительного повышения долговечности — до сотен тысяч, а в настоящее время — до миллионов циклов записи/стирания. Кроме того, схемы формирования высокого напряжения и соответствующие генераторы импульсов записи/стирания перенесли внутрь микросхемы, отчего пользоваться такими типами памяти стало несравненно удобнее — они стали питаться от одного напряжения (5 или 3,3 В).
И наконец, в-третьих, изменилась организация доступа к ячейкам на кристалле, вследствие чего этот тип памяти и заслужил наименование flash, «молния».