Регистровая память. Типы оперативной памяти. Небуферизированная память, с ECC, регистровая с ECC Как работает память с поддержкой ECC

Существуют микросхемы, в которых регистр объединен с входным мультиплексором, позволяющим принимать входные данные с двух и более направлений, выбираемых сигналами на адресных входах микросхемы. Объединяют регистр и с выходным демультиплексором, позволяющим передавать содержимое регистра на различные направления.

Сразу несколько регистров содержат микросхемы регистровой памяти (register memory, register file, сверхоперативная память). Входы Di регистров подключены к общей входной шине данных (data in). Вход загрузки требуемого регистра выбирается дешифратором записи на основании поступающего на его вход адреса записи (write address), т. е. кода номера загружаемого регистра. Запись данных, присутствующих на шине, происходит в момент поступления сигнала разрешения записи (write enable).

Выходы регистров мультиплексором подключаются к выходной шине (data out). Номер регистра, с которого происходит чтение, определяет код адреса чтения (read address). Выдачу данных разрешает сигнал разрешения чтения (read enable).

Поскольку дешифрация адреса записи и адреса чтения производится двумя независимыми узлами, имеющими автономные адресные входы, регистровая память может одновременно записывать число в один из регистров и читать число из другого.

Микросхемы регистровой памяти легко наращиваются по разрядности и допускают наращивание по числу регистров. Они разработаны для построения блоков регистров общего назначения (РОН) и других специализированных блоков памяти небольшого объема, предназначенных для временного хранения исходных данных и промежуточных результатов в цифровом устройстве.

По мере увеличения числа регистров памяти разработчики отказываются от независимой адресации регистров при записи и чтении. Остается лишь один комплект адресных входов и один дешифратор адреса, которые используются и при записи, и при считывании. Такую схему регистровой памятью уже не называют. По ЕСКД она обозначается RAM (random access memory, т. е. память с произвольным доступом). Используются также термины: запоминающее устройство с произвольной выборкой (ЗУПВ), оперативное запоминающее устройство (ОЗУ), оперативная память, а иногда - просто память. В микросхемах ЗУПВ ввод и вывод данных при записи и чтении могут осуществляться через одни и те же выводы корпуса за счет использования в тракте считывания элементов с тремя состояниями выхода или с открытым коллектором. Режимы работы микросхемы запись, чтение и хранение задаются комбинациями сигналов на ее входах управления. Если для ввода данных при записи и вывода их при чтении используются различные выводы корпуса (входы D i и выходы Q i), то режим хранения может быть совмещен с режимом чтения.

Микросхемы ОЗУ малой емкости часто выпускаются в составе распространенных серий. Они имеют входы адреса А j , входы данных D i ; вход режима W/R: запись или чтение; выходы данных Q i ; вход (или несколько конъюнктивных входов) разрешения Е, чаще называемый выбор кристалла ВК, выбормикросхемы ВМ или CS (chip select). Такую микросхему можно рассматривать как группу регистров, дешифратор для их выборки, цепи записи в регистры и считывания с них. Примерами подобных ИМС могут служить К155РУ2 емкостью 16х4 (16 слов по 4 разряда), К537РУ8 – 2Кх 8. Такие ОЗУ принято называть статическими. Наращивание разрядности и числа хранимых слов производится, как и в случае ПЗУ.

Микросхемы ЗУПВ большей емкости выпускают уже в составе определенных серий БИС памяти. Часто такие микросхемы имеют временную диаграмму с большим числом регламентированных интервалов, адрес может подаваться по частям, есть микросхемы, требующие регенерации хранимых данных (динамические ОЗУ - раздел 5).

Очень часто при выборе комплектующих мы сталкиваемся с различными непонятными терминами и понятиями. При выборе оперативной памяти это может быть DDR, DDR2, DDR3, DDR4, RDRAM, RIMM и т.п. Если с основными типами ОЗУ всё более-менее понятно, а поддержка каждого типа указана в описании к материнской плате, то такой параметр, как ECC у многих вызывает некоторые вопросы. Что такое ECC-память? Можно ли использовать ECC оперативку на домашнем компьютере и в чём главное отличие ECC RAM и non-ECC RAM?

Что такое ECC-память?

Это особый вид оперативной памяти со встроенными аппаратными средствами коррекции ошибок. Подобные модули памяти были разработаны специально для серверов, где требования к корректности данных и надёжности их обработки значительно выше чем на персональных компьютерах.

ECC-Ram автоматически распознаёт спонтанные изменения данных в блоках хранения, то есть возникшие ошибки. Обычная — десктопная память без поддержки механизмов коррекции называется non-ECC.

На что способна ECC-память и как это работает?

Память с коррекцией ошибок может определить и исправить 1 бит изменённых данных в каждом машинном слове. Что это значит? Если данные между записью и чтением были по каким-либо причинам изменены (то есть возникла ошибка), то ECC ОЗУ скорректирует значение до верного. Подобная функциональность требует поддержки со стороны контроллера оперативной памяти. Эта поддержка может быть организована со стороны чипсета материнской платы, встроенного контроллера ОЗУ в современные процессоры.

Алгоритм исправления ошибок основан на коде Хэмминга, но для исправления более одной ошибки применяются прочие алгоритмы. На практике используются модули памяти, где для каждых 8 микросхем памяти добавляется ещё по одной микросхеме, хранящей ECC-коды (8 бит на каждые 64 бита основной памяти).

Почему искажается значение в ячейках памяти RAM?

Одна из основных причин искажения данных — космические лучи. Хотя мы находимся на Земле под защитой атмосферы, космические лучи несут с собой некие элементарные частицы, способные влиять на электронику, в том числе, на компьютерную память. Под действием энергии этих частиц возможно изменение состояния ячейки памяти, что ведёт к искажению данных и возникновению ошибок. Интересно, что воздействие космических лучей увеличивается с ростом высоты, поэтому компьютерные системы, находящиеся на большой высоте требуют лучшей защиты.

Как работает память с поддержкой ECC

Один из механизмов контроля ошибок в оперативной памяти — использовать технологию контроля чётности, что позволяет фиксировать факт возникновения ошибки в данных, но не позволяет скорректировать данные.

Для ECC коррекции используется код Хэмминга. ECC защищает компьютерные системы от некорректной работы в связи с порчей памяти и снижает вероятность критического отказа системы. Память с поддержкой ECC работает на 2-3 % медленнее чем non-ECC в зависимости от приложений.

Причины использовать ЕСС-память

Объективных причин использовать оперативную память с поддержкой ECC в настольных компьютерах нет. Так как вероятность возникновения ошибок данных крайне мала, то в обычных сценариях использования ПК крайне маловероятно, что возникновение ошибки приведёт к возникновению проблем или критических сбоев в работе ПК. Самый страшный сценарий — появление синего экрана смерти BSOD. Кроме того, использование ECC-ОЗУ затруднено тем, что настольные процессоры и материнские платы в своём большинстве не поддерживают данный тип оперативной памяти.

Использование оперативки с коррекцией ошибок ECC актуально для сервером и корпоративного сегмента, где требования к отказоустойчивости и надёжности очень высоки, а корректность данных может влиять на результаты вычислений и работу системы в целом.

Как Вам? -

Приветствую вас, мои дорогие читатели. Предметом нашей сегодняшней беседы будет регистровая память. Большинство из вас скорей всего впервые слышат этот термин, поскольку обычные пользовательские компьютеры не имеют к нему никакого отношения. А раз так, то логично предположить, что такой модуль обладает какими-то дополнительными или незаурядными возможностями.

Речь идет о разновидности оперативной памяти, и вы скажете, что неплохо было бы ее заполучить и опробовать в деле. Но давайте не будем спешить. Дочитайте статью до конца и вы, узнаете не только, что это за память, но и что с ней можно и что нельзя делать.

Для начала определимся с терминами.

Регистровая память (Registered Memory) обозначается аббревиатурой RDIMM, так как является разновидностью обычной DIMM памяти, которую мы хорошо знаем как DDR2, DDR3, DDR4.

Соответственно нерегистровую память называют, unregistered DRAM или UDIMM. Так же регистровую память именуют буферной, что справедливо в отношении принципа ее работы.

Для чего нужны регистры?

Теперь вспомним, как работает ОЗУ. Данные загружаются в нее с жесткого диска, но команды на выполнение этих действий идут из центрального процессора. А точнее из контроллера памяти, который напрямую связан с чипами оперативки. При работе обычных компьютеров (даже игровых) все процессы происходят в штатном режиме.

Но вот в серверах интенсивность обращений к оперативке намного выше, причем одновременно может обрабатываться множество невзаимосвязанных запросов. Очевидно, что при этом может быть задействовано сразу несколько микросхем ОЗУ, что приводит к повышению токовой нагрузки на контроллер и увеличивает риск выхода его из строя.

Чтобы повысить надежность системы «Оперативная память – Контроллер» между ними интегрируется регистровый модуль, в котором происходит предварительная буферизация информации при ее чтении или записи. Сам этот чип располагается непосредственно на планке оперативной памяти, которая поэтому и называется регистровой.

Как опознать RDIMM?

Выходит, у регистровой памяти отличие от обычной в дополнительной микросхеме, спросите вы? Конечно да, но не спешите заниматься подсчетом чипов.

Дело в том, регистровая память используется исключительно как серверная. А значит, в ней обязательно должна быть реализована технология ECC (error-correcting code memory), назначение которой ˗ коррекция ошибок в считываемой из ОЗУ информации. Специальный процессор, так же установленный на плашке оперативки, сверяя её с исходными данными, записанными в память, и способен при этом обнаружить несоответствие бита в одном машинном слове.

Обычно на 8 микросхем ОЗУ идет один модуль ECC и один регистровый, который, кстати, отличается меньшими размерами. Зная это, при беглом взгляде на планку памяти можно подсчитать общее количество чипов и сделать вывод о том обычная это оперативка или нет.

Чтобы не запутаться в подсчёте микросхем я все-таки предлагаю обращать внимание на маркировку, по которой вы легко определите регистровую память. Просто прочитайте, что написано в конце: если есть символы «R» или «REG» то это она.

Необычные качества регистровой памяти

Теперь поговорим об особенностях регистровой памяти. Это полезная информация, особенно для тех, кто возжелал с ее помощью апгрейдить свой ПК:

Дополнительный буферный элемент в структуре связи между ОЗУ и контроллером влияет на быстродействие памяти, ведь каждое обращение к регистрам производится потактово. А значит, на величину такта такая память будет медленнее обычной. Если сравнивать с SDRAM то задержка имеет место для начального цикла запросов.

  • Я уже сказал, что регистровая память предназначена исключительно для работы на серверах. Если быть более точным, то на материнских платах, созданных для них. Поэтому не пытайтесь вдулить ее на обычную материнку. Хотя, если «мать» поддерживает такую возможность (а это можно уточнить в ее паспорте), то почему бы и нет. Опять-таки, если ваш ПК выполняет функции сервера или используется для удаленной работы – такое решение добавить надежности вполне оправдано.
  • Главное преимущество регистровой памяти ˗ повышение эффективности работы контроллера с множеством модулей оперативной памяти. С RDIMM вы получаете масштабируемую систему, которая при соответствующей поддержке процессора может работать в трех или четырех канальном режиме. А это существенный прирост скорости считывания данных и производительности (хотя и приходится снижать рабочую частоту ОЗУ). На практике это отлично реализуется в серверных материнских платах типа SuperMicro X9DR3-LN4F+, где вы можете задействовать все 24 RAM-слота.
  • Планируя наращивать объем памяти для многоканального режима помните о том, что совместная работа модулей RDIMM и UDIMM не только невозможна, но и недопустима. Так что лучше сразу подобрать аналоги для существующей регистровой памяти с таким же объемом, частотой и .

Вот такая она, регистровая память.

Нравится вам это, или нет, но она не для всех. Да, она и по цене дороже, и в продаже встречается не так часто. Но главное, у нее узкая серверная специализация. Но, друзья, согласитесь, RDIMM это очень интересный объект, изучив который вы не только повысили уровень своих компьютерных знаний, но и получили дополнительную информацию о работе оперативки.

На этом я заканчиваю нашу беседу и желаю вам всем процветания и успехов.

Registered Memory, RDIMM , иногда buffered memory ) - вид компьютерной оперативной памяти , модули которой содержат регистр между микросхемами памяти и системным контроллером памяти . Наличие регистров уменьшает электрическую нагрузку на контроллер и позволяет устанавливать больше модулей памяти в одном канале. Регистровая память является более дорогой из-за меньшего объема производства и наличия дополнительных микросхем. Обычно используется в системах, требующих масштабируемости и отказоустойчивости в ущерб дешевизне (например - в серверах). Хотя большая часть модулей памяти для серверов является регистровой и использует ECC , существуют и модули с ECC но без регистров (UDIMM ECC), они так же в большинстве случаев работоспособны и в десктопных системах. Регистровых модулей без ECC не существует.

Из-за использования регистров возникает дополнительная задержка при работе с памятью. Каждое чтение и запись буферизуются в регистре на один такт, прежде чем попадут с шины памяти в чип DRAM, поэтому регистровая память считается на один такт более медленной, чем нерегистровая (UDIMM , unregistered DRAM). Для памяти SDRAM эта задержка существенна только для первого цикла в серии запросов (burst).

Буферизации в регистровой памяти подвергаются только сигналы управления и выставления адреса.

Буферизованная память (Buffered memory ) - более старый термин для обозначения регистровой памяти.

Некоторые новые системы используют полностью буферизованную память FB-DIMM , в которой производится буферизация не только управляющих линий, но и линий данных при помощи специального контроллера AMB, расположенного на каждом модуле памяти.

Техника регистровой памяти может применяться к различным поколениям памяти, например: DDR DIMM , DDR2 DIMM , DDR3 DIMM

Напишите отзыв о статье "Регистровая память"

Примечания

Литература

  • Memory systems: cache, DRAM, disk; раздел 10.3.3 Registered Memory Module (DIMM)

Ссылки

  • // ixbt

Отрывок, характеризующий Регистровая память

– Дурак! скотина! – закричал Пьер, что редко с ним случалось, ругая своего кучера. – Домой я велел; и скорее ступай, болван. Еще нынче надо выехать, – про себя проговорил Пьер.
Пьер при виде наказанного француза и толпы, окружавшей Лобное место, так окончательно решил, что не может долее оставаться в Москве и едет нынче же в армию, что ему казалось, что он или сказал об этом кучеру, или что кучер сам должен был знать это.
Приехав домой, Пьер отдал приказание своему все знающему, все умеющему, известному всей Москве кучеру Евстафьевичу о том, что он в ночь едет в Можайск к войску и чтобы туда были высланы его верховые лошади. Все это не могло быть сделано в тот же день, и потому, по представлению Евстафьевича, Пьер должен был отложить свой отъезд до другого дня, с тем чтобы дать время подставам выехать на дорогу.
24 го числа прояснело после дурной погоды, и в этот день после обеда Пьер выехал из Москвы. Ночью, переменя лошадей в Перхушкове, Пьер узнал, что в этот вечер было большое сражение. Рассказывали, что здесь, в Перхушкове, земля дрожала от выстрелов. На вопросы Пьера о том, кто победил, никто не мог дать ему ответа. (Это было сражение 24 го числа при Шевардине.) На рассвете Пьер подъезжал к Можайску.
Все дома Можайска были заняты постоем войск, и на постоялом дворе, на котором Пьера встретили его берейтор и кучер, в горницах не было места: все было полно офицерами.
В Можайске и за Можайском везде стояли и шли войска. Казаки, пешие, конные солдаты, фуры, ящики, пушки виднелись со всех сторон. Пьер торопился скорее ехать вперед, и чем дальше он отъезжал от Москвы и чем глубже погружался в это море войск, тем больше им овладевала тревога беспокойства и не испытанное еще им новое радостное чувство. Это было чувство, подобное тому, которое он испытывал и в Слободском дворце во время приезда государя, – чувство необходимости предпринять что то и пожертвовать чем то. Он испытывал теперь приятное чувство сознания того, что все то, что составляет счастье людей, удобства жизни, богатство, даже самая жизнь, есть вздор, который приятно откинуть в сравнении с чем то… С чем, Пьер не мог себе дать отчета, да и ее старался уяснить себе, для кого и для чего он находит особенную прелесть пожертвовать всем. Его не занимало то, для чего он хочет жертвовать, но самое жертвование составляло для него новое радостное чувство.

Можно выделить три основных вида памяти, используемой в микроконтрол­лерах:

● память программ, которая представляет собой постоянную память, пред­назначенную для хранения программного кода и констант. Эта память не из­меняет своего содержимого в процессе выполнения программы;

● память данных, предназначенная для хранения переменных (результатов) в ходе выполнения программы;

● регистровая память, состоящая из внутренних регистров микроконтроллера. Рассмотрим особенности каждого из перечисленных видов памяти.

Память программ.

Необходимость такой памяти вызвана тем, что микроконт­роллер не содержит таких устройств памяти, как винчестер в компьютере, с кото­рого загружается исполняемая программа. Поэтому код программы должен по­стоянно храниться в микроконтроллере.

Все типы памяти программ относятся к энергонезависимой памяти, или постоянной памяти (ПЗУ), содержимое которой сохраняется после выключения питания микроконтроллера.

В процессе выполне­ния программа считывается из этой памяти, а блок управления (дешифратор команд) обеспечивает ее декодирование и выполнение необходимых операций. Содержимое памяти программ не может меняться (перепрограммироваться) во время выполнения программы. Поэтому функциональное назначение микроконт­роллера не может измениться, пока содержимое его памяти программ не будет стерто (если это возможно) и перепрограммировано (заполнено новыми коман­дами).

Следует обратить внимание, что разрядность микроконтроллера (8, 16 или 32 бит) указывается в соответствии с разрядностью его шины данных.

Когда го­ворится, что устройство является 8–разрядным, это означает разрядность дан­ных, которые способен обрабатывать микроконтроллер.

В Гарвардской архитектуре команды могут иметь большую разрядность, чем данные, чтобы дать возможность считывать за один такт целую команду. Напри­мер, микроконтроллеры PIC в зависимости от модели используют команды с раз­рядностью 12, 14 или 16 бит. В микроконтроллерах AVR команда всегда имеет разрядность 16 бит. Однако все эти микроконтроллеры имеют шину данных раз­рядностью 8 бит.

В устройствах с Принстонской архитектурой разрядность данных обычно оп­ределяет разрядность (число линий) используемой шины. В микроконтроллерах Motorola 68НС05 24–разрядная команда размешается в трех 8–разрядных ячейках памяти программ. Для полной выборки такой команды необходимо произвести три цикла считывания этой памяти.

Выделим и рассмотрим пять типов энергонезависимой резидентной памяти, или постоянных запоминающих устройств (ПЗУ), используемых для хранения про­грамм.

Масочная память.

Масочные ПЗУ (Mask–ROMили просто ROM) изготавли­ваются на этапе производства микроконтроллеров для полностью отлаженной программы. На стеклянном фотошаблоне при использовании программы созда­ется рисунок маски. Полученный фотошаблон с маской используется для форми­рования соединений между элементами, из которых состоит память программ.

Первые масочные ПЗУ появились в начале 1960–х годов и находят применение до настоящего времени благодаря таким достоинствам как низкая стоимость при массовом производстве изделий и высокая надежность хранения программ.

Недостатки масочных ПЗУ - любое изменение прикладной программы связано со значительными затратами средств и времени на создание нового комплекта фотошаблонов и их внедрение в производство.

Однократно программируемая память.

Эта память (One–Time Program­ mable ROM - OTPROM) программируется пользователем и в исходном состоянии содержит ячейки с единичными битами. Программированию подлежат только те ячейки памяти, содержимое которых должно принять значение 0. Для этого на ячейку памяти подают последовательность импульсов повышенного напряжения.

Уровень напряжения, число импульсов и их временные параметры должны строго соответствовать техническим условиям. После записи нуля восстановить единич­ное значение невозможно. По этой причине память получила название однократ­но программируемых ПЗУ. Однако следует указать на возможность допрограммирования (не тронутых) ячеек с единичными битами.

Микроконтроллеры с одно­кратно программируемым ПЗУ используются в изделиях, выпускаемых небольши­ми партиями.

Репрограммируемая память с ультрафиолетовым стиранием.

Ячейка памяти с ультрафиолетовым стиранием (Erasable Programmable ROM - EPROM) представляет собой ЛИПЗМОП (лавинно–инжекционный с плавающим затвором) транзистор. В исходном состоянии (до записи) при обращении к ячей­ке считывается логическая единица. Программирование памяти сводится к запи­си в соответствующие ячейки логических нулей. Память ЕР ROM допускают много­кратное программирование, технология которого подобна технологии однократно программируемых ПЗУ.

Перед каждым сеансом программирования выполняется операция стирания для восстановления исходного состояния ячеек памяти. Для этого в корпусе мик­роконтроллера предусмотрено специальное окно, которое облучается ультрафио­летовыми лучами. Число сеансов стирания/программирования ПЗУ составляет 25–100 раз при соблюдении технологии программирования (заданные значения питающих напряжений, число и длительность импульсов) и технологии стирания (волновой диапазон источника ультрафиолетового излучения).

Микроконтролле­ры с памятью EPROM из–за высокой стоимости применяются в опытных образцах разрабатываемых приложений.

Для уменьшения цены микросхемы EPROM заклю­чают в корпус без окошка (версия EPROM с однократным программированием). Благодаря снижению стоимости версии EPROM часто используются вместо масочно–программируемых ROM.

Репрограммируемая память с электрическим стиранием.

В ка­честве элемента памяти с электрическим стиранием (Electrically Erasable Pro ­grammable ROM - EEPROM или E2 PROM) используется транзистор со структурой МНОП (Металл, Нитрид кремния, Окисел кремния, Полупроводник), благодаря чему ПЗУ имеет сравнительно низкую стоимость (по отношению к EPROM) и до­пускает максимальное число циклов стирания/программирования 10 4 –10 6 . Кроме того, технология программирования памяти EEPROM позволяет реализовать побайтное стирание и побайтное программирование, не снимая контроллер с платы, что позволяет периодически обновлять его программное обеспечение.

Несмотря на указанные достоинства, этот тип памяти не получил широкого распространения для хранения программ по двум причинам:

● ПЗУ типа EEPROM имеют ограниченную емкость;

● появились ПЗУ типа FLASH , которые имеют близкие пользовательские харак­теристики, но более низкую стоимость.

Память типа FLASH.

Электрически программируемая и электрически сти­раемая память типа FLASH (FLASH ROM) создавалась как альтернатива между де­шевыми однократно программируемыми ПЗУ большой емкости и дорогими EEPROM ПЗУ малой емкости. Память FLASH (как и EEPROM) сохранила возмож­ность многократного стирания и программирования.

Из схемы ПЗУ изъят тран­зистор адресации каждой ячейки, что, с одной стороны, лишило возможности программировать каждый бит памяти отдельно, с другой стороны, позволило уве­личить объем памяти. Поэтому память типа FLASH стирается и программируется страницами или блоками.

Таким образом, функционально FLASH –память мало отличается от EEPROM. Основное отличие состоит в способе стирания записанной информации: если в EEPROM–памяти стирание производится отдельно для каждой ячейки, то во FLASH –памяти - целыми блоками. В микроконтроллерах с памятью EEPROM при­ходится изменять отдельные участки программы без необходимости перепро­граммирования всего устройство.

В настоящее время МК с FLASH начинают вытеснять МК с однократно про­граммируемым (и даже масочным) ПЗУ.

Программирование ПЗУ.

Отметим, что Mask ROM –память программируется только в заводских условиях при изготовлении МК. Память типа OTPROM и EPROM предоставляет разработчику возможности программирования с исполь­зованием программатора и источника повышенного напряжения, которые под­ключаются к соответствующим выводам МК.

Память EEPROM и FLASH относится к многократно программируемой, или репрограммируемой, памяти. Необходимое для стирания/программирования по­вышенное питания создается в модулях EEPROM и FLASH –памяти со­временных контроллеров с помощью встроенных схем усиления напряжения, на­зываемых генераторами накачки. Благодаря реализации программного управления включением и отключением генератора накачки появилась принципиальная возможность осуществить программирование или стирание ячеек памяти FLASH и EEPROM в составе разрабатываемой системы. Такая технология программиро­вания получила название программирования в системе (In System Programming - ISP).

Она не требует специального оборудования (программаторов), благодаря чему сокращаются расходы на программирование. Микроконтроллеры с ISP–па­мятью могут быть запрограммированы после их установки на плату конечного из­делия.

Рассмотрим, как реализуется (и используется) возможность программирова­ния EEPROM–памяти под управлением прикладной программы. Если программу с алгоритмом программирования хранить в отдельном модуле памяти с номи­нальным питающим напряжением, а EEPROM–память снабдить генераторами накачки, то можно произвести ISP–программирование EEPROM –памяти. Данное обстоятельство делает EEPROM –память идеальным энергонезависимым запоми­нающим устройством для хранения изменяемых в процессе эксплуатации изде­лия настроек пользователя. В качестве примера можно привести современный телевизор, настройки каналов которого сохраняются при отключении питания.

Поэтому одной из тенденций совершенствования резидентной памяти 8–раз­рядных МК стала интеграция на кристалл МК двух модулей энергонезависимой памяти: FLASH (или OTP) - для хранения программ и EEPROM - для хранения перепрограммируемых констант.

Рассмотрим технологию (ре)программирования FLASH –памяти с встроенным генератором накачки под управлением прикладной программы. Прежде всего, отметим два обстоятельства:

● если для хранения перепрограммируемых констант в МК встроена память EEPROM, то попрограммирование нескольких бит FLASH –памяти при эксплуа­тации готового изделия не имеет смысла. При необходимости лучше сразу использовать режим репрограммирования;

● не следует программу программирования FLASH –памяти хранить в самой FLASH –памяти, так как переход в режим программирования приведет к невоз­можности дальнейшего ее считывания. Программа программирования долж­на располагаться в другом модуле памяти.

Для реализации технологии программирования в системе выбирается один из оследовательных портов МК, обслуживание которого осуществляет специальная программа монитора связи, расположенная в резидентном масочном ПЗУ МК. Через последовательный порт персональный компьютер загружает в ОЗУ МК про­грамму программирования и прикладную программу, которая затем заносится в память FLASH. Так как резидентное ОЗУ МК имеет незначительный объем, то прикладная программа загружается отдельными блоками (порциями). Если в МК установлен модуль масочной памяти с программой программирования, в ОЗУ загружается только прикладная программа.

Микроконтроллеры, реализующие технологию программирования в системе, часто имеют в своем составе четыре типа памяти:

FLASH –память программ, Mask ROM –память монитора связи, EEPROM –память для хранения изменяемых кон­стант и ОЗУ промежуточных данных.

Технология программирования в системе в настоящее время все шире ис­пользуется для занесения прикладных программ в микроконтроллеры, располо­женные на плате конечного изделия. Ее достоинство - отсутствие программато­ра и высокая надежность программирования, обусловленная стабильностью за­данных внутренних режимов МК.

В качестве примера приведем показатели резидентной FLASH –памяти МК се­мейства НС08 фирмы Motorola:

● гарантированное число циклов стирания/программирования - 10 5 ;

● гарантированное время хранения записанной информации - 10 лет, что практически составляет жизненный цикл изделия; модули FLASH –памяти работают и программируются при напряжении питания МК от 1,8 до 2,7 В;

● эквивалентное время программирования 1 байта памяти - 60 мкс.

Память данных.

В качестве резидентной памяти данных используется стати­ческое оперативное запоминающее устройство (ОЗУ), позволяющие уменьшать частоту тактирования до сколь угодно малых значений. Содержимое ячеек ОЗУ (в отличие от динамической памяти) сохраняется вплоть до нулевой частоты. Еще одной особенностью статического ОЗУ является возможность уменьшения на­пряжения питания до некоторого минимально допустимого уровня, при котором программа управления микроконтроллером не выполняться, но содержимое в ОЗУ сохраняется.

Уровень хранения имеет значение порядка одно­го вольта, что позволяет для сохранения данных при необходимости перевести МК на питание от автономного источника (батарейки или аккумулятора). Некото­рые МК (например, DS5000 фирмы Dallas Semiconductor) имеют в корпусе авто­номный источник питания, гарантирующий сохранение данных в ОЗУ на протяжении 10 лет.

Характерной особенностью микроконтроллеров является сравнительной не­большой объем (сотни байт) оперативной памяти (ОЗУ), используемой для хране­ния переменных. Это можно объяснить несколькими факторами:

● стремлением к упрощению аппаратных средств МК;

● использованием при написании программ некоторых правил, направленных на сокращение объема памяти ОЗУ (например, константы не хранятся как переменные);

● распределением ресурсов памяти таким образом, чтобы вместо размещения данных в ОЗУ максимально использовать аппаратные средства (таймеры, ин­дексные регистры и др.);

● ориентацией прикладных программы на работу без использования больших массивов данных.

Особенности стека.

В микроконтроллерах для организации вызова под­программ и обработки прерываний выделяется часть памяти ОЗУ, именуемая стеком. При этих операциях содержимое программного счетчика и основных ре­гистров (аккумулятора, регистра состояния, индексных и других регистров) со­храняется, а при возврате к основной программе восстанавливается. Напомним, что стек работает по принципу: последний пришел - первый ушел (Last In , First Out-LIFO).

В Принстонской архитектуре ОЗУ используется для реализации многих аппа­ратных функций, включая функции стека. В адресном пространстве памяти выде­лены отдельные области для команд, регистров общего назначения, регистров специальных функций и др. Это снижает производительность контроллера, так как обращения к различным областям памяти не могут выполняться одновремен­но.

Микропроцессоры с Гарвардской архитектурой могут параллельно (одновре­менно) адресовать память программ, память данных (включающую пространство ввода–вывода) и стек.

Например, при активизации команды вызова подпрограм­мы CALL выполняется несколько действий одновременно.

В Принстонской архитектуре при выполнении команды CALL следующая ко­манда выбирается только после того, как в стек будет помещено содержимое программного счетчика.

Из–за небольшой емкости ОЗУ в микроконтроллерах обеих архитектур могут возникнуть проблемы при выполнении программы:

● если выделен отдельный стек, то после его заполнения происходит цикличе­ское изменение содержимого указателя стека, в результате чего указатель стека начинает ссылаться на ранее заполненную ячейку стека. Поэтому после слишком большого количества команд CALL в стеке окажется неправильный адрес возврата, который был записан вместо правильного адреса;

● если микропроцессор использует общую область памяти для размещения данных и стека, то при переполнении стека произойдет затирание данных. Рассмотрим особенности сохранения в стеке содержимого регистров, обус­ловленные отсутствием команд загрузки в стек (PUSH) и извлечения из стека (POP). В таких микроконтроллерах вместо команды PUSH и POP используются две команды и индексный регистр, который явно указывает на область стека. После­довательность команд должна быть такой, чтобы прерывание между первой и второй командой не привело к потере данных. Ниже приведена имитация команд PUSH и POP с учетом указанного требования.

PUSH ; Загрузить данные в стек decrement index; Перейти к следующей ячейке стека move [ index], асе; Сохранить содержимое аккумулятора в стеке POP ; Извлечь данные из стека move асе, ; Поместить значение стека в аккумулятор increment index ; Перейти к предыдущей ячейке стека

Если после первой команды программа будет прервана, то после выполнения обработки прерывания содержимое стека не будет потеряно.

Регистровая память.

Микроконтроллеры (как и компьютерные системы) име­ют множество регистров, которые используются для управления различными внутренними узлами и внешними устройствами. К ним относятся:

● регистры процессорного ядра (аккумулятор, регистры состояния, индексные регистры);

● регистры управления (регистры управления прерываниями, регистры управ­ления таймером);

● регистры ввода/вывода данных (регистры данных и регистры управления па­раллельным, последовательным или аналоговым вводом/выводом).

По способу размещения регистров в адресном пространстве можно выделить:

● микроконтроллеры, в которых все регистры и память данных располагаются в одном адресном пространстве, т. е. регистры совмещены с памятью дан­ных. В этом случае устройства ввода–вывода отображаются на память;

● микроконтроллеры, в которых устройства ввода/вывода отделены от общего адресного пространства памяти. Основное достоинство способа размещения регистров ввода–вывода в отдельном пространстве адресов - упрощается схема подключения памяти программ и данных к общей шине. Отдельное пространство ввода–вывода дает дополнительное преимущество процессо­рам с Гарвардской архитектурой, обеспечивая возможность считывать коман­ду во время обращения к регистру ввода–вывода.

Способы обращения к регистрам оказывают существенное влияние на их про­изводительность. В процессорах с RISC–архитектурой все регистры (часто и аккумулятор) располагаются по явно задаваемым адресам, что обеспечивает более высокую гибкость при организации работы процессора.

О внешней памяти.

В тех случаях, когда для разрабатываемых приложений не хватает резидентной памяти программ и памяти данных, к микроконтроллеру подключается дополнительная внешняя память. Известны два основных способа:

● подключение внешней памяти с использованием шинного интерфейса (как в микропроцессорных системах). Для такого подключения многие микроконт­роллеры имеют специальные аппаратные средства;

● подключение памяти к устройствам ввода–вывода, При этом обращение к па­мяти осуществляется через эти устройства программными средствами. Такой способ позволяет использовать простые устройства ввода/вывода без реали­зации сложных шинных интерфейсов. Выбор способа зависит от конкретного приложения.

Вверх