Контроллер динамической памяти. Основные состояния и режимы работы устройства

Контроллер динамической памяти. Основные состояния и режимы работы устройства

Функции контроллера динамической памяти:

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

    Обеспечение режима регенерации модуля динамической памяти.

    Обеспечение расслоения обращений к динамической памяти.

Контроллер управляет четырьмя модулями DRAM. Уменьшается время цикла обращения к памяти. Общая емкость 4 модулей = 1 Мб * 32 разр.слов = 4 Мб. Используется 22 разряда адреса:

А0 А1 - используются для внутреннего пользования МП. Определяют используемый байт, во вне не выдаются.

BE3 . . . BE0 - byte enable

A3 A2 - обеспечивают расслоение

A21 A4 - на адресные входы модуля

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

M0 M1 ... M3




9 разрядов адреса должны формироваться контроллером и выдаваться частями

Должен быть сформирован сигнал записи WE - write enable

DEN - data enable

Модуль памяти подключается непосредственно к магистрали процессора.

Сигналы состояния МП:

- сигнал, активизирующий микросхему контроллера

CLK - по этому сигналу происходят все изменения в микросхеме

Рассмотрим взаимодействие МП, контролера и блока динамической памяти

    1. Конроллер dram (кдп)

    КЭШ-память

В настоящее время организуется двухуровневый КЭШ: внутренний (КЭШ1), внешний (КЭШ2). КЭШ построен на статической памяти - SRAM. Существует контроллер КЭШ памяти.

    1. Характеристика внешней кэш – памяти

    Емкость до 512 Кбайт

    Большое быстродействие (обеспечивается использованием SRAM)

    Информация хранится блоками. Блок - набор смежных байтов (4...64 байт). Длина блока обычно существенно превышает длину слова.

Разновидности КЭШ:

    associative cache - ассоциативный КЭШ

    direct mapped cache - КЭШ с прямым отображением

    two way associative cache - двухканальный ассоциативный КЭШ

    1. Функции контроллера кэш - памяти

    Анализ физического адреса . Если фиксируется КЭШ - попадание по чтению , требуемая информация поступает в процессор из КЭШа. Если произошел КЭШ - промах по чтению , то информация извлекается из ОП. При КЭШ - попадании по записи , текущий результат заносится в КЭШ. При КЭШ - промахе по записи , реакция контроллера КЭШ может различаться в зависимости от типа используемого типа КЭШа:

    сквозная запись - запись осуществляется в ОП.

    обратная запись - запись осуществляется в КЭШ. Модифицированная информация попадает в ОП при выгрузке из КЭШ.

    Snooping - «подслушивание» шины адреса. КЭШ отслеживает изменение содержимого памяти, инициируемое МП. Все обращения к ОП, при двухуровневой организации, идут через КЭШ. Первое обращение идет в КЭШ. Если изменение содержимого ОП инициируется другим задатчиком, КЭШ об этих изменениях не знает. Происходит рассогласование информации, хранимой в ОП и в КЭШ. Чтобы этого избежать используется «подслушивание» шины адреса. Если контроллер обнаружил, что идет обращение по адресу, копия содержимого которого хранится в КЭШ, соответствующую ячейку КЭШа объявляют недостоверной.

    Поддержка каталога КЭШ . Поддержка реализации принципов отображения информации ОП в КЭШ.

В качестве примера реализации принципов прямого доступа к памяти (ПДП) рассмотрим микросхему КР580ВТ57. Программируемый контроллер ПДП предназначен для высокоскоростного обмена данными между памятью системы и че­тырьмя внешними устройствами (ВУ).

Контроллер осуществляет двунаправленный обмен данными между памятью и ВУ (по требованию ВУ), при этом в адресном канале микропроцессорной систе­мы формируются параметры заданного массива адресов ячеек памяти (началь­ный адрес и число циклов) и управляющие сигналы. Каждый из четырех каналов контроллера обеспечивает адресацию (путем инкрементирования выработанного адреса) внешней памяти массивами объемом до 16К байт с возможностью зада­ния любого из 64К начальных адресов.

Состав контроллера ПДП

В контроллере можно выделить следующие блоки (рис. 3.11.1): блок обработки запросов, формирователь адреса, блок логики чте­ния–записи, блок управления, буфер данных и два регистра - регистр установки режима и регистр состояния каналов. Рассмотрим их особенности.

Блок обработки запросов предназначен:

● для приема сигналов запроса ЗПДП0–ЗПДП3 на прямой доступ к памяти от ВУ;

● для маскирования входов каналов К0–К3;

● для выдачи сигналов подтверждения запроса ¯ППДП0 – ¯ППДП3 прямого доступа к памяти, информирующих ВУ о готовности контроллера к обмену данными по каналу ПДП.

Формирователь адреса содержит 16–разрядные регистры начального адреса (РНА0…РНА3) и числа циклов (РЧЦ0…РЧЦ3), схему инкремента–декремен­та, триггер. В процессе выполнения программы начальной установки в РНА запи­сывается начальный адрес ячейки памяти, к которой будет обращаться ВУ по ка­налу ПДП. В 14 младших разрядов регистра числа циклов РЧЦ заносится число N – 1, где N - число циклов. Два старших разряда этого регистра используются для управления обменом по каналу ПДП.

В каждом цикле из РНА считывается два байта адреса. Триггер обеспечивает порядок считывания: старший байт выводится через буфер данных на ШД, а младший байт адреса - по шинам А0…А3, А4…А7. По завершении цикла схема инкремента–декремента содержимое РНА увеличивает, а содержимое РЧЦ умень­шает на единицу. Следует отметить, что выводы контроллера А4…А7 всегда ис­пользуются как выходы для разрядов А4…А7 кода адреса, а выводы А0…А3 ис­пользуются:

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

Блок логики чтения–записи

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

● ¯Зп - двунаправленный управляющий трехстабильный вход/выход, использу­емый:

Как вход для получения сигнала из процессора на запись данных во внут­ренние регистры контроллера ПДП при его начальной установке;

Как выход, на котором формируется сигнал, разрешающий внешнему уст­ройству запись данных из памяти;

● ¯Чт - двунаправленный трехстабильный управляющий вход/выход, использу­емый:

Как вход для получения из процессора сигнала, разрешающего чтение (вы­вод) содержимого внутренних регистров контроллера;

Как выход для выдачи сигнала на разрешение считывания данных из ВУ в память;

● ¯ЧтП, ¯ЗпП - выходы для управления чтением из памяти и записью в память;

● ¯ВК - вход (выбор кристалла), на который подается нулевой сигнал выбора микросхемы после того, как установлены сигналы записи или чтения. Сигнал ¯ВК инициирует обмен данными между процессором и внутренними регистра­ми контроллера ПДП при программировании; автоматически блокируется в режиме прямого доступа. Вход ¯ВК подключается к ША микропроцессорной системы непосредственно или через дешифратор.

Выводы ¯Зп, ¯Чт подключаются к процессору как входы и к ВУ как выходы, а вы­ходы ¯ЗпП, ¯ЧтП - к памяти микропроцессорной системы.

На этапе начальной установки в формирователе адреса дешифрируются младшие разряды А3…А0 кода адреса и после поступления от процессора сигна­лов ¯Зп, ¯Чт организуется запись или чтение программно доступных регистров устройства ПДП. При работе в цикле ПДП логические цепи блока чтения–записи формируют пары сигналов ¯Чт, ¯ЗпП и ¯Зп, ¯ЧтП на выходах устройства, обеспечи­вающих тактирование процесса обмена данными между ВУ и памятью.

Блок управления

регламентирует последовательность операций в течение всех циклов ПДП с помощью управляющих сигналов, а также осуществляет пере­ход контроллера из состояния ожидания в состояние обслуживания по сигналу подтверждения захвата (ПЗх). Блок управления имеет следующие выводы:

  • ЗЗх (Н RQ) - выход, с которого снимается сигнал запроса захвата для микро­процессора;
  • ПЗх (HLDA) - вход, на который поступает сигнал подтверждения захвата от микропроцессора;
  • Гт (RDY)- управляющий вход готовности. Сигнал Гт = 1 от ВУ активизирует работу контроллера ПДП; сигнал Гт = 0 переводит контроллер в состояние ожидания;
  • М128 - выход маркер 128–го цикла: М128 = 1 свидетельствует о том, что те­кущий цикл ПДП является по счету 128–м циклом от конца массива данных;
  • КС (ТС) - выход конец счета: КС = 1 указывает ВУ, что текущий цикл обмена по каналу ПДП является последним при передаче массива данных. Если раз­ряд «КС–стоп» в регистре установки режимов установлен в 1, то канал будет запрещен. Выход КС активизируется (КС = 1), когда содержимое 14–разряд­ного регистра числа циклов в данном канале устанавливается в 0;
  • РА (АЕ) - выход разрешения адреса: РА = 1 указывает системе, что происхо­дят циклы прямого доступа. При этом все шины отключаются от микропроцес­сора. Сигнал может быть использован для блокировки адресной шины в уст­ройствах, не участвующих в прямом доступе, а также для записи старших восьми разрядов кода адреса в буферный регистр адреса и отключения схе­мы выборки устройства. В режиме ПДП выборка устройства осуществляется сигналами ¯ППДП0 – ¯ППДП3;
  • СтА (STBA) - выходстроб адреса, сигнал которого стробирует старший байт адреса памяти, передаваемый через ШД в дополнительный буфер данных. Через этот буфер старший байт адреса поступает на адресную шину микро­процессорной системы;
  • ТИ - вход для тактовых импульсов;
  • Сброс -вход начальной установки устройства. Подача единичного сигнала на этот вход обнуляет содержимое всех программно доступных регистров, что приводит к отключению каналов К0 – К3.

Буфер данных представляет собой 8–разрядную двунаправленную шину с тремя состояниями, соединяющую контроллер ПДП с системной шиной дан­ных ШД.

Через буфер данных:

  • при программировании в режиме записи восемь бит данных D 7… D 0 из мик­ропроцессора передаются в контроллер ПДП для записи в регистр начально­го адреса, регистр числа циклов или регистр установки режима; при чтении процессором из устройства ПДП выводится содержимое регистра начально­го адреса, регистра числа циклов и регистра состояния каналов;
  • приработе канала ПДП в начале каждого цикла старшие восемь разрядов ад­реса передаются из адресного регистра соответствующего канала в память. Затем ШД освобождается для непосредственного обмена данными между па­мятью и ВУ в течение оставшейся части цикла. Эти данные через устройство ПДП не проходят.

Регистр установки

режимов хранит информацию о запрограммированных режимах автозагрузки, удлиненной и обычной записи, фиксированного приорите­та и циклического сдвига приоритетов, КС–стоп и др. В него при программировании контроллера ПДП записывается 8–разрядное управляющее слово. Регистр установки режима обычно загружается после того, как установлены регистр ад­реса (РгА) и регистр циклов (РгЦ). Назначение разрядов регистра установки режимов приведено в табл. 3.11.1.

Регистр состояния каналов

указывает, в каком из четырех каналов окончился процесс передачи массива. Для этого в младшие разряды РС0–РС3 (флаги завершения обслуживания) записывается значение сигнала КС = 1 конца счета, появляющегося на выходе КС и указывающего на конец массива по соот­ветствующему каналу. Назначение разрядов регистра установки режимов приве­дено в табл. 3.11.2.

Основные состояния и режимы работы устройства.

Основными состояния­ми являются исходное состояние, программирование, ожидание и обслуживание.

Исходное состояние.

При поступлении на вход Сброс единичного сигна­ла устройство переходит в исходное состояние. В этом состоянии маскируются запросы всех каналов ПДП (Р0 = Р1 = Р2 = Р3 = 0), буферные схемы шины А0…А3 переводятся в состояние приема информации.

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

В состоянии программирования устройства микро­процессор по шине данных (ШД - D 0… D 7) осуществляет запись начального ад­реса, числа циклов и других данных в соответствующие регистры, адрес которых задается кодом А 3 А 2 А 1 А 0 на шинах А0–А3 (табл. 3.11.3). Старший разряд А3 кода позволяет различать при А3 = 0 -регистры каналов К0…К3; при А3 = 1 -регистр установки режимов (работает только на запись) ирегистр состояния каналов (ра­ботает только на чтение). Младший разряд А0 выбирает регистры начального ад­реса (А0 = 0) и числа циклов (А0 = 1). Два средних разряда А 2 А 1 указывают номера регистров (или каналов) в двоичном коде. Например, код 0101 соответствует РЧЦ2 - регистру числа циклов канала 2. Регистры контроллера ПДП загружаются или из них считывается информация, если микропроцессор выполняет команду записи или чтения путем обращения к устройству и его регистрам. Для этого микропроцессору необходимо выдать соответствующие сигналы записи ¯Зп или чтения ¯Чт и на системные адресные шины ША выставить адрес регистра в виде кода А 3 А 2 А 1 А 0 . В это время на шину данных ШД подается необходимая информа­ция D 7… D 0 для записи в регистры или через шину данных ШД читается информа­ция из котроллера ПДП. Для установки состояния программирования необходимо также подать сигнал выборки устройства ¯ВК = 0. В связи с тем, что регистры кана­лов являются 16–разрядными, для их загрузки или чтения требуется два про­граммных командных цикла. Вформирователе адреса контроллера имеется триг­гер, который автоматически переключает цепи во время операции чтения или за­писи. Этот триггер определяет доступ к старшему или младшему байтам регистра. Сбрасывается триггер подачей единичного сигнала на входСброса, а также вся­кий раз при загрузке регистра установки режима.

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

Ожидание.

В состоянииожидания контроллер принимает от ВУ сигнал за­проса на получение цикла ПДП (ЗПДП0–ЗПДП3) и вырабатывает для микропро­цессора сигнал запроса захвата (ЗЗх). В этом состоянии системные шины нахо­дятся под управлением микропроцессора.

Обслуживание.

После поступления от микропроцессора сигнала подтверж­дения захвата (ПЗх) при наличии сигнала запроса (ЗПДП0 – ЗПДП3) от ВУ контрол­лер вырабатывает сигнал подтверждения запроса (¯ППДП0 – ¯ППДП3) для одного из ВУ и переходит всостояние обслуживания. В этом состоянии системные шины находятся под управлением контроллера, и реализуется один из запрограм­мированных режимов ПДП:

  • младшие 8 разрядов адреса памяти поступают на шины А0–А3, А4–А7, стар­шие 8 разрядов - на шину данных ШД;
  • формируются соответствующие сигналы управления ¯ЧтП и ¯ЗпП, ¯Зп и ¯Чт, ко­торые позволяют ВУ получить из ячейки памяти или передать в ячейку памя­ти за один цикл байт данных.

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

  • дальнейшее наращивание адреса прибавлением единицы после очередного цикла;
  • блокировка канала ПДП (режим «КС–стоп»);
  • повторение ранее выбранного массива адресов (режим автозагрузки).

В процессе выполнения циклов ПДП возможны три режима работы:

  • режим чтения, обеспечивающий передачу данных из памяти во ВУ;
  • режим записи, обеспечивающий передачу данных из ВУ в память;
  • режим проверки. Вэтом режиме контроллер ПДП не генерирует сигналы ¯ЧтП, ¯ЗпП, ¯Чт и ¯Зп, что предотвращает обмен данными между памятью и ВУ. Однако в каждом цикле контроллер ПДП осуществляет управление системной шиной и подтверждает запросы ВУ. Внешние устройства могут использовать сигналы подтверждения для разрешения внутреннего доступа к каждому бай­ту в массиве данных, чтобы выполнить некоторые операции проверки. Мас­сив циклов проверки может следовать за массивом циклов чтения, чтобы раз­решить ВУ проверить вновь поступившие данные.

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

Задача, которая стоит перед контроллерами памяти компьютера является очень важной для работы компьютера. Контроллер памяти – это чип, который расположен на материнской плате или на центральном процессоре. Главной функцией, которую выполняет этот крохотный чип, является управление потоками данных, как входящих, так и исходящих. Второстепенной функцией контроллера памяти является увеличение потенциала и работоспособности системы, а так же равномерное и правильное размещение информации в памяти, которое доступно благодаря новым разработкам в области новых технологий.

Размещение контроллера памяти в компьютере зависит от определённых моделей материнских плат и центральных процессоров. В некоторых компьютерах дизайнеры поместили этот чип на северном параллельном присоединении материнской платы, в то время как в других компьютерах они размещены на центральном процессоре типа «die». Те системы, которые рассчитаны на установку контроллера в материнской плате, имеют большое количество новых различных физических гнёзд. Оперативная память, которая используется в компьютерах такого типа, так же имеют новый современный дизайн.

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

Контроллеры памяти бывают разных типов. Они различаются на:
- контроллеры памяти с двойной скоростью передачи данных (DDR);
- полностью буферизованные контроллеры памяти (FB);
- двуканальные контроллеры (DC).

Функции, которые могут выполнять контроллеры памяти разных типов, отличаются друг от друга. Например, контроллеры памяти с двойной скоростью передачи данных используются, чтобы передавать данные, в зависимости от увеличения или уменьшения темпа часов памяти. В то время как в двуканальной памяти используется два контроллера памяти параллельно друг от друга. Это позволяет компьютеру увеличить быстродействие системы, создавая больше каналов, но, несмотря на трудности, которые возникают в результате использования кучи проводов, данная система работает довольно эффективно. Однако возникают трудности при создании новых каналов, поэтому данный вид контроллера памяти не безупречен.

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

Как вы уже убедились, контроллеры памяти очень нужны для стабильной работы компьютера, и разные типы используются для разных целей. Цены на линейки памяти варьируются от очень высоких до очень низких, что зависит от типа и функций, которые выполняет тот или иной контроллер памяти.

Контроллер встроенной флэш-памяти (EFC) является частью контроллера памяти (MC) и предоставляет интерфейс для доступа к блокам флэш-памяти по внутренней 32-битной шине. Это позволяет значительно увеличить скорость выборки команд из флэш-памяти при работе ядра процессора в режиме Thumb (16-битная система команд) благодаря работе 32-битного буфера. Более того, контроллер встроенной флэш-памяти поддерживает полный набора команд для чтения, записи, стирания флэш-памяти, установки и снятия битов защиты.

20.2 Функциональное описание

20.2.1 Организация встроенной флэш-памяти

Интерфейсы встроенной флэш-памяти непосредственно подключены к внутренней 32-битной шине, построенной на основе нескольких нижеследующих интерфейсов.

  • Простая организация памяти: нескольких страниц одинакового размера.
  • Два 32-битных буфера чтения, предназначенных для увеличения скорости чтения флэш-памяти (см. "Команды чтения" на стр. 101).
  • Один буфер записи для хранения данных при программировании одной страницы флэш-памяти. Размер этого буфера равен размеру одной страницы и доступ к нему разрешен только для записи. Кроме того, с помощью буфера записи осуществляется адресация флэш-памяти во всей области размером 1 Мбайт (см. "Команды записи" на стр. 101).
  • Несколько бит защиты (блокировочные биты) для запрета стирания и записи флэш-памяти. Каждая защищаемая область флэш-памяти (все области имею равный размер) состоит фиксированного числа страниц, размещенных последовательно. Каждая одна такая область непосредственно связана только с одним битом защиты.
  • Несколько бит энергонезависимой памяти - NVM-биты (Non Volatile Memory) общего назначения. Каждый из этих битов отвечает за управление определенными узлами микроконтроллера. Для получения более подробной информации о каждом NVM-бите см. соответствующие главы этого документа.
Размер встроенной флэш-памяти, размер её страниц и организация битов защиты описаны в главе 9 "Память" .

Таблица 20-1. Число бит защиты и NVM-бит общего назначения для членов семейства AT91SAM7S

Рисунок 20-1. Карта распределения встроенной флэш-памяти памяти

20.2.2 Команды чтения

Для ускорения процесса чтения флэш-памяти в контроллер EFC встроен специально предназначенный 32-битный буфер. Благодаря наличию этого буфера при работе процессора в режиме Thumb (16-битная система команд) обращение к флэш-памяти происходит в два раза реже, за счет чего увеличивает скорость выборки команд и, следовательно, увеличится скорость работы процессора (рис. 20-2, рис. 20-3 и рис. 20-4).

Эта оптимизация осуществляется только при выборке команд, а при чтении данных из флэш-памяти - не осуществляется.

Команды чтения могут быть выполнены как без включения дополнительных циклов ожидания, так и с ними. Допустима установка только до трех (включительно) циклов ожидания в поле FWS (Flash Wait State) регистра режима флэш-памяти MC_FMR (см. "Регистр режима флэш-памяти", стр. 110). При FWS = 0 обращение к встроенной флэш-памяти осуществляется за один цикл.

Доступ к флэш-памяти возможен 32-битный (словарный), 16-битный (полуслово) и 8-битный.

Поскольку размер встроенной флэш-памяти меньше микроконтроллера, чем размер адресного пространства выделенной для нее внутренней памяти (1 Мбайт), то в контроллере памяти реализовано т.н. дублирование этого блока флэш-памяти по всему выделенному для нее адресному пространству. Например, для AT91SAM7S64 флэш-память размером 64 Кбайта отображена в этом адресном пространстве ровно 1024/64 = 16 раз (прим. переводчика).


Рисунок 20-2. Оптимизация при чтении кода команды в режиме Thumb для FWS = 0


Рисунок 20-3. Оптимизация при чтении кода команды в режиме Thumb для FWS = 1


Рисунок 20-4. Оптимизация при чтении кода команды в режиме Thumb для FWS = 3

20.2.3 Команды записи

Область внутренней памяти, зарезервированной для встроенной флэш-памяти, также может быть записана только через специальный буфер. При выполнении команд записи во флэш-память во внимание принимаются только младшие 8 бит адреса (т.к. речь идет о 32-битных данных, то фактически во внимание принимаются 10 младших бит адреса). В свою очередь старшие 10 бит адреса внутренней области (1 Мбайт), зарезервированной для флэш-памяти, адресуют это т.н. окно, размер которого равен 256 словам (1024 байта). Тактом образом, вся эта внутренняя память состоит из 1024 таких окон.

Любая команда записи во встроенную флэш-память может быть запрещена с помощью модуля защиты памяти MPU (Memory Protection Unit).

Запись во флэш-память память возможна только словарно (32 бита), поэтому любая попытка записи полуслов (16 бит) или байт (8 бит) будет вызывать непредсказуемый результат.

Команды записи выполняются за число циклов ожидания (поле FWS в регистре MC_FMR), указанных для команд чтения, плюс еще один дополнительный цикл, кроме случая при FWS = 3 (см. "Регистр режима флэш-памяти", стр. 110).

20.2.4 Система команд контроллера флэш-памяти

В состав EFCS входят команды для программирования флэш-памяти, команды установки защиты (снятия защиты) ее областей, команды последовательного программирования и установки защиты флэш-памяти, команда полного стирания всей флэш-памяти.

Таблица 20-2. Система команд контроллера флэш-памяти

Перед выполнением любой из указанных команд в поле FCMD регистра MC_FCR должен быть указан код этой команды. Поскольку доступ к регистру MC_FCR возможен только по чтению, то флаг FRDY автоматически сбрасывается. После окончания выполнения команды флаг FRDY автоматически устанавливается, что может вызывать соответствующее прерывание, если оно разрешено через контроллер памяти (MC).

Все команды флэш-памяти защищены от случайного выполнения с помощью одного общего ключевого слова (keyword), которое необходимо указывать в старших 8 битах регистра MC_FCR каждый раз при выполнении очередной команды.

Команда с неверно указанным ключевым словом и/или неверно указанным кодом этой команды не будет выполнена, даже в том случае, если установлен флаг PROGE в регистре MC_FSR. Этот флаг будет автоматически сброшен при очередном чтении регистра MC_FSR.

Попытка выполнения команды записи или стирании страницы, размещенной в защищенной области, не окажет влияния на содержимое флэш-памяти (фактически, эта команда будет проигнорирована), даже в том случае, если установлен флаг PROGE в регистре MC_FSR. Этот флаг будет автоматически сброшен при очередном чтении регистра MC_FSR.


Рисунок 20-5. Блок-схема процесса выполнения команды

Для правильного выполнения команд флэш-памяти в поле длительность цикла в микросекундах (FMCN) в регистре режима контроллера флэш-памяти (MC_FMR) должно быть записано корректное значение (см. "Регистр режима контроллера флэш-памяти памяти", стр. 110).

20.2.4.1 Программирование флэш-памяти

Всего несколько команд могут использоваться для программирования флэш-памяти.

Согласно технологии работы флэш-памяти требуется обязательное ее стирание непосредственно перед процессом ее программирования. Может быть выполнено либо стирание всей области флэш-памяти, либо отдельной страницы с помощью сброса флага NEBP в регистре MC_FMR непосредственно записью кода команды в регистр MC_FCR.

При установке флага NEBP в регистре MC_FMR страница может быть запрограммирована за определенное число этапов, если перед этим она уже очищена (см. рис. 20-6).


Рисунок 20-6. Пример программирования участка страницы флэш-памяти

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

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

Примечание: запись байтами (8 бит) или полусловами (16 бит) запрещена, т.к. как вызывает искажение записываемых данных.

Процесс записи данных во флэш-память, предварительно размещенных во внутреннем буфере, управляется с помощью командного регистра флэш-памяти (MC_FCR). Ниже приведена последовательность работы с этим регистром.

  • Запись всей страницы, которая может быть размещена по любому адресу внутри всего адресного пространства флэш-памяти, возможна только словарно (32-битные данные).
  • Цикл записи страницы начинается сразу после того, как в регистре MC_FCR указан номер этой страницы и сама код команды записи. При этом автоматически сбрасывается флаг FRDY в регистре статуса программирования флэш-памяти (MC_FSR).
  • Сразу после завершения цикла программирования устанавливается флаг FRDY в регистре статуса программирования флэш-памяти (MC_FSR). Если разрешены прерывания от флага FRDY, то в контроллере памяти (MC) возникнет соответствующий сигнал прерывания.
  • Ошибка программирования (Programming Error): в регистр MC_FSR было записано неверное ключевое слово и/или указана недопустимая команда.

20.2.4.2 Команда полного стирания флэш-памяти

Вся реализованная на кристалле флэш-память может быть очищена, если в регистре MC_FCR записана команда "стереть все" - EA (Erase All).

Стирание всей флэш-памяти возможно только тогда, когда ни одна из ее областей не защищена от стирания и записи (не установлен не один из флагов защиты флэш-памяти). В противном случае (установлен хотя бы один из флагов защиты) эта команда будет проигнорирована. Если установлен флаг LOCKE в регистре MC_FMR, то возникнет соответствующий сигнал прерывания.

После выполнения последней команды программирования или стирания флэш-памяти в регистре MC_FSR автоматически будет установлен флаг FRDY. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено.

В процессе выполнения цикла программирования могут возникать ошибки, которые фиксируются в регистре MC_FSR. Ниже приведены эти ошибки.

  • Ошибка программирования (Programming Error): в регистр MC_FSR было записано неверное ключевое слово (keyword) и/или указана недопустимая команда.
  • Ошибка защиты (Lock Error): была осуществлена попытка программирования защищенной области. Для выполнения корректного программирования этой области ее защита предварительно должна быть снята с помощью команды снятия защиты.

20.2.4.3 Биты защиты флэш-памяти

Каждый из битов защиты привязан к определенной области флэш-памяти, состоящей из определенного числа страниц. Назначение этих битов - защита флэш-памяти от случайного или преднамеренного ее стирания/программирования.

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

Ниже указана последовательность установки защиты одной области:

В регистр команды флэш-памяти должно быть записано следующее значение: (0x5A после завершения выполнения команды защиты будет установлен флаг FRDY в регистре MC_FSR. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено. ul>

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

  • в регистр команды флэш-памяти должно быть записано следующее значение: (0x5A после завершения выполнения команды защиты будет установлен флаг FRDY в регистре MC_FSR. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено.

Если в процесс выполнения команды возникла ошибка (в регистре MC_FCR указано неверное ключевое слово и/или неверный код команды), то это факт будет зафиксирован в регистре MC_FSR.

Выполнение команды снятия бита защиты физически выполняет запись "1" в соответствующий бит, хотя при чтении регистра MC_FSR соответствующий бит LOCKx читается как "0". И наоборот, выполнение команды установки бита защиты физически выполняет запись "0" в соответствующий бит, а при чтении регистра MC_FSR соответствующий бит LOCKx читается как "1".

Примечание: независимо от наличия защиты флэш-памяти доступ к ней по-прежнему возможен по чтению.

20.2.4.4 NVM-биты общего назначения

Биты общего назначения - NVM-биты - не связаны со встроенной флэш-памятью, а предназначены для защиты других узлов микроконтроллера. Каждый из этих битов может быть установлен (сброшен) независимо от остальных. Для получения подробностей о NVM-битах см. соответствующие главы этого документа.

Ниже приведена последовательность активации NVM-битов общего назначения.

  • Выполнение команды "установка NVM-битов общего назначения" (Set General Purpose NVM Bit - SGPB) посредством записи в "регистр команд флэш-памяти" (MC_FCR) кода этой команды и количества этих бит в поле PAGEN этого же регистра.
  • после завершения выполнения команды SGPB будет установлен флаг FRDY в регистре MC_FSR. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено.

В процессе выполнения цикла программирования могут возникать ошибки, которые фиксируются в регистре MC_FSR. Ниже приведены эти ошибки.

  • В поле PAGEN регистра MC_FCR указано число бит общего назначения, большее, чем максимально допустимое кол-во реализованных в кристалле NVM-бит. Ниже приведена последовательность очистки NVM-битов общего назначения.
  • Выполнение команды "очистка NVM-битов общего назначения" (Clear General Purpose NVM Bit - CGPB) посредством записи в "регистр команд флэш-памяти" (MC_FCR) кода этой команды и количества этих бит в поле PAGEN этого же регистра.
  • после завершения выполнения команды CGPB будет установлен флаг FRDY в регистре MC_FSR. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено.

В процессе выполнения цикла программирования могут возникать ошибки, которые фиксируются в регистре MC_FSR. Ниже приведены эти ошибки.

  • Ошибка программирования: в регистр MC_FSR было записано неверное ключевое слово и/или указана недопустимая команда.
  • В поле PAGEN регистра MC_FCR указано число бит общего назначения, большее, чем максимально допустимое кол-во реализованных в кристалле NVM-бит.

Выполнение команды "очистка NVM-битов общего назначения" физически выполняет запись "1" в соответствующий бит, хотя при чтении регистра MC_FSR соответствующий бит GPNVMx читается как "0". И наоборот, выполнение команды "установка NVM-битов общего назначения" физически выполняет запись "0" в соответствующий бит, а при чтении регистра MC_FSR соответствующий бит GPNVMx читается как "1".

Примечание: независимо от состояния NVM-битов общего назначения доступ к флэш-памяти всегда возможен по чтению.

20.2.4.5 Бит секретности

Бит секретности предназначается для предотвращения внешних попыток доступа к внутренней системной шине. После установки бита секретности запрещается работа интерфейса JTAG, интерфейса быстрого программирования флэш-памяти и доступ к флэш-памяти по последовательному интерфейсу. Доступ к флэш-памяти через указанные выше интерфейсы вновь разрешается только при полной очистке кристалла по внешнему выводу ERASE - см. главу 4. "Назначение выводов". При подаче на вывод ERASE высокого логического уровня (см. п. 7.4. "вывод управления стиранием") происходит очистка всей реализованной на кристалле флэш-памяти, всех битов защиты флэш-памяти, всех NVM-битов общего назначения и только после всего этого производится очистка бита секретности.

Ниже приведена последовательность установки бита секретности.

  • Выполнение команды "установка бита секретности" (Set Security Bit - SSB) посредством записи в "регистр команд флэш-памяти" (MC_FCR) кода этой команды.
  • после завершения выполнения команды SSB будет установлен флаг FRDY в регистре MC_FSR. При этом на выходе контроллера памяти (MC) сразу же возникнет сигнал соответствующего прерывания, если оно разрешено.

Сразу после установки бита секретности в регистре MC_FSR будет установлен флаг SECURITY.

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

В состав процессорного модуля ПЛК входят следующие комплектующие: микропроцессор или ЦПУ (центральное процессорное устройство), часы реального времени, запоминающие устройства и watchdog.

К основным характеристикам микропроцессора относятся: тактовая частота, разрядность, поддержка портов для различных устройств ввода-вывода, архитектура, параметры работоспособности при определенных температурных диапазонах, выполнение операций с плавающей точкой, уровень потребляемой мощности.

Показатели производительности микропроцессоров с одинаковой архитектурой пропорциональны тактовой частоте. В большинстве контроллеров применяются микропроцессоры реализованные на RISC (Reduced Instruction Set Computing) архитектуре, которые имеют сокращенное количество команд. В этом случае микропроцессор использует определенное число команд, обладающих одинаковой длиной, и множество регистров. Благодаря сокращенному набору команд можно создавать компиляторы с большими показателями эффективности, а так же конвейер процессора, который за один такт может выдать результат выполнения действий одной из команд.

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

Емкость памяти характеризуется количеством переменных, которые можно обработать за время функционирования ПЛК. Время доступа к памяти микропроцессора - один из наиболее существенных показателей, способных ограничить быстродействие. Из-за этого происходит деление памяти на уровни иерархии, с учетом частоты и скорости использования, имеющихся в ней данных Иерархия памяти – это еще один существенный показатель архитектуры процессора, позволяющий снизить уровень возможного отрицательного воздействия медленной памяти на скорость работы микропроцессора.

Основные типы памяти промышленных контроллеров (ПЛК):

  • ПЗУ – постоянное запоминающее устройство;
  • ОЗУ – оперативное запоминающее устройство;
  • Набор регистров.

Набор регистров - самые быстродействующие элементы памяти, так как их использует АЛУ (арифметико-логическое устройство) для выполнения простейших команд процессора. ПЗУ применяется как место хранения информации, которая редко подвергается изменению – операционная система, загрузчик, драйверы устройств, либо исполняемый модуль какой-либо программы. ОЗУ хранит в себе непосредственно данные подвергающиеся многократному изменению в период работы контроллера. К примеру, информация о проведении диагностики, отображаемые на дисплее переменные, значения тегов, промежуточные вычисления, выводимые на графики данные. В роли ПЗУ (ROM - Read Only Memory), как правило, выступает перепрограммируемая электрически стираемая память (EEPROM - Electrically Erasable Programmable ROM). Кстати, флеш-память по сути - разновидность EEPROM. Принцип действия её заключается в хранении определенного заряда в конденсаторе, который образован подложкой МОП-транзистора и плавающим затвором. Главная особенность флеш памяти – её абсолютная энергонезависимость, т.е. возможность сохранения данных при отсутствии питания. Обновление данных во флеш-памяти происходит не отдельно взятыми ячейками, а за счет применения больших блоков. Все ПЗУ обладают большим недостатком - низким уровенем быстродействия.

Количество циклов ввода информации во флеш-память ограничено всего несколькими десятками тысяч раз. Современными микропроцессорами в качестве ОЗУ применяется статическая память (SRAM - Static Random Access Memory), динамическая память (DRAM- Dynamic Random Access Memory), и синхронная динамическая память (SDRAM - Synchronous DRAM). Выполнение SRAM происходит на триггерах, которые способны хранить информацию неограниченно долгое время при условии наличия питания. Динамическая память промышленного контроллера сохраняет принадлежащие ей данные на конденсаторах, из-за чего требуется периодическая перезарядка конденсаторов. Основным недостатком триггерной памяти является высокий уровень стоимости и отношения цены к емкости. Это связано с тем, что на одном кристалле помещается относительно небольшое число триггеров. К достоинствам можно отнести высокий уровень быстродействия, исчисляемый гигагерцами, в то время как конденсаторная память не может преодолеть планку в несколько сотен герц. Все виды оперативной памяти отличаются тем, что при отсутствии питания все имеющаяся в них информация не сохраняется. Именно поэтому в некоторых типах ПЛК используется батарейное питание, позволяющее сохранить работоспособность системы при условии кратковременного прерывания питания системы.

В модульных и моноблочных промышленных контроллерах используется параллельная шина, позволяющая обмениваться информацией с модулями ввода-вывода, благодаря чему быстродействие опроса значительно выше в сравнении с последовательной шиной. Виды параллельных шин: VME, PCI, ISA, CXM, ComactPCI, PC/104. Последовательная же шина, например RS-485 необходима для подключения удаленных модулей ввода-вывода.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows