Последовательностные функциональные узлы. Регистры и регистровая память
Аннотация: Рассматривается принцип действия регистров как элементов электронной памяти.
Регистр - это ИМС средней степени интеграции, предназначенная для запоминания и хранения многоразрядного слова .
Регистр-защелка
Простейший регистр представляет собой параллельное соединение нескольких триггеров (рис. 8.1 ,а). УГО регистра-защелки приведена на рис. 8.1 ,б. Если регистр построен на триггерах-защелках, то его называют регистр- "защелка". Как правило, в состав ИС регистра входят буферные усилители и элементы управления, например как показано на рис. 8.2 ,а. Здесь изображена функциональная схема 8-разрядного D -регистра-защелки КР580ИР82 с тремя состояниями на выходе. Его УГО представлено на рис. 8.2 ,б.
Рис.
8.1.
Четырёх-разрядный регистр-"защелка" с прямыми выходами: а - функциональная схема; б - УГО
Третьим состоянием (первые два - это логический 0 и логическая 1) называется состояние выходов ИС, при котором они отключены и от источника питания, и от общей точки. Другие названия этого состояния - состояние высокого сопротивления, высокоимпедансное состояние, Z-состояние [ , с. 61 - 63; , с. 68 - 70].
Достигается это третье состояние специальным схемным решением [ , с. 117 - 118] в выходной части логических элементов, когда выходные транзисторы логических элементов заперты и не подают на выход ни напряжения питания, ни потенциала земли (не 0 и не 1).
Регистр КР580ИР82 состоит из 8 функциональных блоков (рис. 8.2 ,а). В каждый из них входит D -триггер-защелка с записью по заднему фронту и мощный выходной вентиль на 3 состояния. STB - стробирующий вход, - разрешение передачи - сигнал, управляющий третьим состоянием: если , то происходит передача информации со входов на соответствующие выходы , если же , все выходы переводятся в третье состояние. При и ИС работает в режиме шинного формирователя - информация со входов передается на выходы в неизменном виде.
При подаче на заднего фронта сигнала происходит "защелкивание" передаваемой информации в триггерах, то есть там запоминается то, что было на момент подачи . Пока , буферный регистр будет хранить эту информацию, независимо от информации на D -входах. При подаче переднего фронта при сохранении состояние выходов будет изменяться в соответствии с изменением на соответствующих входах . Если же , то все выходные усилители переводятся в третье состояние. При этом, независимо от состояния входов, все выходы регистра переводятся в третье состояние.
Все выводы регистра могут иметь активный нулевой уровень, что отображается на УГО в виде инверсных сигналов и обозначений выводов.
Существует множество разновидностей регистров , например, сдвиговые регистры [ , глава 8], в которых триггеры соединены между собой таким образом, что передают информацию последовательно от одного триггера к другому [ , стр. 109 - 122], но мы здесь остановимся на регистре-защелке и его применении.
Регистровая память
Регистровая память - register file - это сверхоперативное запоминающее устройство (СОЗУ) - схема из нескольких регистров, предназначенная для хранения нескольких многоразрядных слов .
На рис. 8.3 показан пример реализации СОЗУ , состоящего из четырех 8-разрядных регистров (подключение RG2 и RG3 не показано, оно осуществляется аналогично). Данное СОЗУ имеет информационный объем 4x8 бит - 4 слова по 8 бит, или 4 байта. Здесь DI - data input - входная шина данных, DO - data output - выходная шина данных, WR - сигнал записи в СОЗУ, RD - сигнал чтения информации из СОЗУ, ВШД - внутренняя шина данных.
Каждый регистр имеет двухразрядный адрес, который подается на входы дешифратора. Например, крайний левый на рис. 8.3 регистр RG1 имеет адрес , следующий - (не показан на рисунке), далее - (не показан), а крайний справа регистр RG4 имеет адрес .
При наличии активного сигнала записи дешифратор в соответствии с кодом адреса выдает на один из регистров активный сигнал , по которому информация с входной шины данных DI записывается в выбранный регистр . По заднему фронту информация в этом регистре "защелкивается".
Если, например, на DI подана информация , и адрес регистра равен , тогда активный сигнал на выходе "3" дешифратора будет подан как на регистр RG4. На остальных регистрах в это время будет неактивный уровень сигнала , поэтому информация с входной шины данных будет записана в RG4, в остальных регистрах будет храниться записанная ранее информация.
При активном сигнале чтения активизируются все 8 мультиплексоров (на схеме показаны первый, второй и восьмой, остальные подключены аналогичны), поскольку на их разрешающие входы подан активный сигнал . В соответствии с поданным на дешифратор адресом , мультиплексоры коммутируют на выходную шину данных информацию с выбранного регистра. Например, , адрес регистра равен . Тогда на всех мультиплексорах будет , все они начинают выбирать информацию в соответствии с адресом . Поэтому на выходную шину DO будут поданы разряды внутренней шины с номерами 25 - с первого мультиплексора, 26 - со второго, 27 - с третьего, 28 - с четвертого, 29 - с пятого, 30 - с шестого, 31 - с седьмого и 32 - с восьмого мультиплексора. Таким образом, информация, являющаяся копией содержимого регистра RG 4 с адресом передается на выходную шину данных DO - неизменное состояние выхода мультиплексора.
Существует два основных типа оперативной памяти (ОЗУ); это буферизованная память — или регистровая память — и небуферизованная память. Небуферизованная память быстрее, и чаще значительно дешевле, чем буферизованная память. Таким образом — это тип модуля, который можно найти практически во всех домашних настольных и портативных компьютерах. Буферизованная память более дорогая, чем небуферизованный тип, и она также медленнее из-за того, как она обрабатывает хранение и восстановление данных.
Буферизованная память, однако, намного более стабильна, чем небуферизованные формы, поэтому она используется в основном на компьютерах с мейнфреймом и в серверах.
Небуферизованная память на сегодняшний день является наиболее распространенной формой модуля памяти компьютера, который можно найти в повседневном использовании. Эти модули памяти дешёвые для производства по сравнению с буферизованными модулями памяти, частично из-за их общего использования на домашних и коммерческих компьютерах, а также из-за того, что используется меньше аппаратного обеспечения. В небуферизованном модуле памяти нет встроенного оборудования для работы в качестве регистра для инструкций между чипом RAM и контроллером памяти компьютера. Это приводит к более быстрой скорости работы, но увеличивает риск критической ошибки потери памяти, возникающей из-за случайного характера размещения и восстановления информации, особенно в периоды интенсивной активности.
Чаще всего именуемая зарегистрированной памятью является буферизованной памятью. Небуферизованная память, как ни странно, сохранила своё имя и не была изменена на незарегистрированную память. Буферизованная память отличается от небуферизованного типа тем, что в ней имеется аппаратный регистр, который хранит информацию в кеше за один такт работы микросхемы памяти. Хотя эта операция может привести к более медленному времени работы микросхемы памяти, она обеспечивает дополнительную стабильность и снижает риск ошибок памяти.
В общем бытовом использовании разница в скорости между двумя типами модулей памяти кажется незначительной. В периоды интенсивного обмена информацией проявляется латентность, наблюдаемая с помощью регистра. Буферизованная память обычно используется в серверных компьютерах и системах мейнфреймов для обеспечения стабильности и защиту от повреждения, которая может возникать в небуферизованных модулях, когда они подвергаются постоянному интенсивному использованию. Хотя буферизованные модули являются более дорогими и, как правило, более медленными в работе, стабильность памяти и безопасность данных более чем компенсируются в рабочей среде.
Регистровая память , илиСОЗУ (сверх ОЗУ), обладает наибольшим быстродействием. Объем памяти СОЗУ очень мал.Регистровая -хранит операнды,коды операций,результаты . В состав блока регистров общего назначения входят 4 шестнадцатиразрядных регистраAX, BX, CX, DX. AX -операции умножения, деления и преобразования десятичной коррекции , участвует во всех операциях ввода вывода в качестве источника или приемника;BX -источник базового адреса .CX –счетчик в командах сдвигов и зацикливания ;DX неявным образом адресуется в командах умножения и деления, и кроме того содержит адрес порта ввода вывода при косвенно-регистровой адресации. РегистрыSP, BP, SI, DI предназначены для обеспечения косвенную адресацию и динамическое вычисление исполнительных адресов .
Регистр флагов хранит признаки результатов выполнения арифметических и логических операций и управляющие биты.
Каждый из регистров имеет уникальную природу и предоставляет определенные возможности, которые другими регистрами или ячейками памяти не поддерживаются.
Регистры общего назначения процессора используются в операциях большинства инструкций в качестве источника или приемника при перемещении данных и вычислениях, указателей на ячейки памяти и счетчиков. Каждый регистр общего назначения может использоваться для хранения значения, в арифметических и логических операциях; между регистром и памятью может выполняться обмен (запись из регистра в память и наоборот).
Регистры особого назначения:
32-64-128– разрядные;
хранение адресов, операндов, результатов;
Регистр указателя команд
Регистр флагов
Время доступа » нсек
Кэш-память - согласует процессор с оперативной памятью.
Cache-level1-128 КБ, на кристалле CPU, работает с тактовой частотой
CPU.Cache-level2-2-6-МБ,работает с частотой общей шины
Кэш - промежуточный буфер с быстрым доступом, содержащий копию той информации, которая хранится в оперативной памяти с менее быстрым доступом, но с наибольшей вероятностью может быть оттуда запрошена
Принцип локальности программ:
Принцип пространственной локальности велика вероятность, что программа обратится к следующей ячейке за той, к которой обращается сейчас, поэтому целесообразно считывать блок ячеек
Принцип временной локальности вероятно, что программа вскоре обратится к тем же данным, поэтому целесообразно хранить данные в Кэш некоторое время
Оперативная ОЗУ : С точки зрения физического принципа действия различают динамическую память (DRAM) и статическую память (SRAM).
Ячейки статической памяти (SRAM) можно представить как электронные
микроэлементы – триггеры, состоящие из нескольких транзисторов. В триггере хранится не заряд, а состояние (включен/выключен ), поэтому этот тип памяти обеспечивает существенно более высокое быстродействие, хотя технологически он сложнее и,соответственно, дороже.
Микросхемы динамической памяти используют в качестве основной оперативной памяти компьютера. Микросхемы статической памяти используют в качестве кэш-памяти.
Микросхемы статистического типа-триггера (переход из состояния в состояние возможен только при подаче сигнала на опр-й вход.статистич.пам.-4 триггера).
Микросхемы динамического типа – конденсаторы (зарядка конд. до соотв. напряжения=1,разрядка до сост. близкого к нулю=0.Необходима подзарядка,т.к. время хранения заряда ограничено).
Верхняя пам.>640 КБ(для передачи изображения на экран,хранения драйверов, загрузки, тестирования).
Нижняя<640 КБ (прикладные программы, ОС). Предназначена для временного хранения данных и команд, необходимыхпроцессорудля выполнения им операций.
Оперативная память передаёт процессору данные непосредственно, либо через кэш-память. Каждая ячейка оперативной памяти имеет свой индивидуальный адрес.ОЗУ может изготавливаться как отдельный блок или входить в конструкцию однокристальнойЭВМилимикроконтроллера.
Время доступа » 50 нсек
Постоянная память предназначена для хранениянеизменной информации. Эта информация заносится вмикросхему постоянной памяти заводом-изготовителем компьютера. В постоянной памяти современных компьютеров находится BIOS - BIOS- базовая система ввода/вывода. В состав BIOS входят программа самотестирования компьютера при его включении, драйвера некоторых устройств (монитора, дисковых накопителей информации и пр.) а также программа загрузки с дисковых устройств операционной системы. Питание от батарейки. В процессе эксплуатации компьютера содержимое постоянной памяти как правило не изменяется, хотя в последнее время устанавливаются flash-микросхемы, которые можно перепрограммировать не вынимая из компьютера.
5.Внешняя -длительное хранение
Внешняя память:
- Memory systems: cache, DRAM, disk; раздел 10.3.3 Registered Memory Module (DIMM)
Накопители на магнитных дисках
Накопители на оптических дисках
Можно выделить три основных вида памяти, используемой в микроконтроллерах:
● память программ, которая представляет собой постоянную память, предназначенную для хранения программного кода и констант. Эта память не изменяет своего содержимого в процессе выполнения программы;
● память данных, предназначенная для хранения переменных (результатов) в ходе выполнения программы;
● регистровая память, состоящая из внутренних регистров микроконтроллера. Рассмотрим особенности каждого из перечисленных видов памяти.
Память программ.
Необходимость такой памяти вызвана тем, что микроконтроллер не содержит таких устройств памяти, как винчестер в компьютере, с которого загружается исполняемая программа. Поэтому код программы должен постоянно храниться в микроконтроллере.
Все типы памяти программ относятся к энергонезависимой памяти, или постоянной памяти (ПЗУ), содержимое которой сохраняется после выключения питания микроконтроллера.
В процессе выполнения программа считывается из этой памяти, а блок управления (дешифратор команд) обеспечивает ее декодирование и выполнение необходимых операций. Содержимое памяти программ не может меняться (перепрограммироваться) во время выполнения программы. Поэтому функциональное назначение микроконтроллера не может измениться, пока содержимое его памяти программ не будет стерто (если это возможно) и перепрограммировано (заполнено новыми командами).
Следует обратить внимание, что разрядность микроконтроллера (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–архитектурой все регистры (часто и аккумулятор) располагаются по явно задаваемым адресам, что обеспечивает более высокую гибкость при организации работы процессора.
О внешней памяти.
В тех случаях, когда для разрабатываемых приложений не хватает резидентной памяти программ и памяти данных, к микроконтроллеру подключается дополнительная внешняя память. Известны два основных способа:
● подключение внешней памяти с использованием шинного интерфейса (как в микропроцессорных системах). Для такого подключения многие микроконтроллеры имеют специальные аппаратные средства;
● подключение памяти к устройствам ввода–вывода, При этом обращение к памяти осуществляется через эти устройства программными средствами. Такой способ позволяет использовать простые устройства ввода/вывода без реализации сложных шинных интерфейсов. Выбор способа зависит от конкретного приложения.
Между микросхемами памяти и системным контроллером памяти . Наличие регистров уменьшает электрическую нагрузку на контроллер и позволяет устанавливать больше модулей памяти в одном канале. Регистровая память является более дорогой из-за меньшего объема производства и наличия дополнительных микросхем. Обычно используется в системах, требующих масштабируемости и отказоустойчивости в ущерб дешевизне (например в серверах). Хотя большая часть модулей памяти для серверов является регистровой и использует ECC , существуют как регистровые модули без ECC так и модули с ECC но без регистров (UDIMM ECC).
Из-за использования регистров возникает дополнительная задержка при работе с памятью. Каждое чтение и запись буферизуются в регистре на один такт, прежде чем попадут с шины памяти в чип DRAM, поэтому регистровая память считается на один такт более медленной чем нерегистровая (UDIMM , unregistered DRAM). Для памяти SDRAM , эта задержка существенна только для первого цикла в серии запросов (burst).
Буферизации в регистровой памяти подвергаются только сигналы управления и выставления адреса.
Буферизованная память (Buffered memory ) - более старый термин для обозначения регистровой памяти.
Некоторые новые системы используют полностью буферизованную память FB-DIMM , в которой производится буферизация не только управляющих линий, но и линий данных при помощи специального контроллера AMB, расположенного на каждом модуле памяти.
Техника регистровой памяти может применяться к различным поколениям памяти, например: DDR DIMM , DDR2 DIMM , DDR3 DIMM
Примечания
Литература
Ссылки
Wikimedia Foundation . 2010 .
Смотреть что такое "Регистровая память" в других словарях:
регистровая память - буферизованная память (устар.) [Интент] Registered memory, also called buffered memory, is more stable than unbuffered memory. Тематики информационные технологии в целом Синонимы буферизованная память (устар.) EN buffered memoryregister… … Справочник технического переводчика
НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство) часть вычислительной машины, физическое… … Википедия
НЖМД объёмом 44 Мб 1980 х годов выпуска и CompactFlash на 2 Гб 2000 х годов выпуска … Википедия
НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство) часть вычислительной машины, физическое… … Википедия
НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство) часть вычислительной машины, физическое… … Википедия
НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство) часть вычислительной машины, физическое… … Википедия
Участок материнской платы между контроллером памяти (справа под радиатором) и разъемами для FBDIMM (слева). Установлено 2 модуля, по центру каждого модуля на правой стороне виден большой чип AMB. Пары проводников в центре … … Википедия
Адресация осуществление ссылки (обращение) к устройству или элементу данных по его адресу; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта. Содержание … Википедия
Методы адресации в вычислительной технике способы указания на определённую ячейку (ячейки) памяти ЭВМ процессору с целью записи, чтения данных или передачи управления. Содержание 1 Задача адресации 2 Способы адресации … Википедия