Типы организация пространств памяти и ввода-вывода. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типы организация пространств памяти и ввода-вывода.



Большинство универсальных микропроцессоров имеет архитектуру фон – Неймана, где для хранения данных и программ используется единое адресное пространство. Информация в ячейке не имеет никакого признака, указывающего на тип: команда или данные, интерпретация содержимого осуществляется только микропроцессором. Однако почти все микроконтроллеры имеют Гарвардскую архитектуру, в которой память программ и память данных разделены и имеют свои собственные адресные пространства и способы доступа к ним.

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

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

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

Еще одной областью памяти, имеющей специальное назначение, является стек.

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

Для стека используется область памяти, для которой организован доступ по типу «последний пришел - первый вышел» или LIFO. Эта область памяти может размещаться в общей памяти, составлять часть памяти данных на кристалле или быть отдельным сегментом.

Стек обычно заполняется в сторону уменьшения адресов, при этом указатель стека (SP -stack pointer) показывает на последнюю заполненную ячейку стека - вершину стека TOS (Top of Stack). Такой стек называется типовым, так как именно он применяется в большинстве МП. При записи в стек нового элемента данных (операция PUSH) содержимое SP сначала уменьшается на 1 или 2 в зависимости от длины элемента (байт или слово) и затем используется в качестве адреса новой вершины, в которую затем записывается элемент. При чтении данных из стека (операция РОР) сначала считывается элемент, адресуемый TOS, а затем содержимое SP увеличивается на 1 или 2 для формирования нового значения вершины стека. Работа стека показана на рис. 3.2.

Исключительные удобства, предоставляемые стеком при вызове подпрограмм, привели к тому, что практически все современные МП имеют средства для его построения в виде SP. При организации вложенных подпрограмм и использовании стека для хранения локальных переменных и обмена параметрами между вызываемой и вызывающей процедурой может оказаться полезным специальный адресный регистр, указывающий на начало области параметров в стеке. Регистр с таким функциональным назначением называется указателем кадра FP. Действительно, значение SP непрерывно меняется, поэтому применять его в качестве точки отсчета при доступе к данным в стеке крайне неудобно. Процедуру доступа можно значительно упростить, если функцию точки отсчета отдать специально зарезервированному для этой цели указателю FP.

Существует ряд типовых набора областей для хранения программ, данных и стека. Изоляция отдельных областей приводит к появлению нового типового набора. На основе многих наборов созданы те или иные серии микропроцессорных БИС, но часто МП используют гибридную организацию. Каждый тип организации имеет свои преимущества и недостатки, учет которых позволяет создавать высокоэффективные системы различного применения. Рис. 3.3

 

.

Рис. 3.3. Типовые структуры памяти и ввода – вывода.

 

Организация линейной памяти

В отличие от регистровой области память программ и данных, а также область ввода/вывода организованы проще. В большинстве случаев память микропроцессорной системы с точки зрения программиста представляет собой линейно упорядоченный набор m -разрядных ячеек с произвольным доступом к каждой из них; это – линейная или “плоская” память. Каждой ячейке из набора соответствует число, называемое адресом ячейки. Все адреса занимают целочисленный диапазон от 0 до 2n-1, который образует адресное пространство памяти. Разрядность адреса п универсальных МП равна 1б или 32 или 64 бита. У микроконтроллеров разрядность адреса может принимать и другие значения, например 12, 14 бит. Разрядность самой ячейки m всегда кратна 8 бит, то есть память имеет байтовую организацию.

Одним из примеров МПС с памятью линейной организации байтового типа является 8-разрядная система на базе микропроцессора 8085. Команды этого микропроцессора могут напрямую обращаться к пространству памяти емкостью 216 = 64К байт. Ячейки памяти имеют шестнадцетиричные адреса в диапазоне 0000 – FFFF. В дальнейшем память МПС будет представляться таким образом, чтобы ячейки со старшими адресами располагались ниже, чем с младшими. Нумерация отдельных разрядов в ячейке производится справа, налево начиная с нуля, при этом разряд с нулевым номером является младшим в байте, а с номером 7 – старшим. Такую же организацию имеет и область ввода - вывода, только порты имеют адреса в диапазоне
00 – FF. Рис.3.4

 

 

Рис. 3.4. Организация линейной памяти.

 

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

Часто организация памяти предусматривает определенные ограничения на возможное расположение много байтовых объектов. Например, слова в памяти могут находиться только по четным адресам. Тогда при доступе к слову значение младшего разряда его адреса, указывающего на байт в слове, во внимание не принимается, т. е. такая память имеет границу слов. Порядок расположения байтов внутри слова стандартный: сначала младший, затем старший байт слова.

При необходимости расширить объем памяти за пределы адресного пространства используют дополнительные аппаратные средства. Универсальные 16 – 32 разрядные МП содержат специальные аппаратные средства для организации страничной или сегментной памяти, и эта операция производится штатным способом.

Несмотря на существующую тенденцию по переходу к закрытой архитектуре МК, в некоторых случаях возникает необходимость подключения дополнительной внешней памяти (как памяти программ, так и данных). Для этого можно воспользоваться одним из вариантов диспетчера памяти. В простейшем случае он представляет собой программно-доступный регистр, который должен располагаться в пространстве ввода/вывода. В него заносится номер активного в данный момент банка памяти, причем объем банка может равняться объему адресного пространства МП (2n).

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

 

Рис. 3.5. Организация расширенной памяти.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 335; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.255.127 (0.005 с.)