3 Организация памяти в микропроцессорных системах


Название3 Организация памяти в микропроцессорных системах
страница3/7
Дата публикации24.07.2013
Размер0.82 Mb.
ТипДокументы
userdocs.ru > Информатика > Документы
1   2   3   4   5   6   7

^ Асинхронный режим характеризуется одиночными посылками информации, инициализация которых определяется либо процессором системы, либо внешним устройством. Синхронизация передатчика и приемника обеспечивается равенством частот передачи и приема (частоты задаются программно). Для контроллера. .ВВ51 возможны три частоты передачи/приема: 1:1, 1:16 и 1:64 относительно частоты синхронизации на входе CLK. Неактивному состоянию передатчика соответствует высокий уровень на линии данных.

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

^ Асинхронная передача начинается с записи в контроллер данных и при условии, что в D0 инструкции команды записана "1" и на входе CTS\ - низкий уровень. Передатчик формирует на выходе TxD стартовый бит, заданное число бит данных (5..8, начиная с бита d0), если необходимо - контрольный бит и - обязательно - стоповый бит. Если контроллер не содержит информации для передачи, то на линии TxD удерживается высокий уровень, а если в инструкции запрограммирован режим "Пауза", то на TxD выдается низкий уровень.

^ Асинхронный прием. Обнаружение на RxD перехода с высокого уровня на низкий интерпретируется как приход старт-бита. Истинность этого бита проверяется вторично через 1/2 периода приема и если наличие низкого уровня подтверждается, то запускается счетчик битов, который позволяет определить конец битов данных, бит контроля (если он запрограммирован) и стоп-бит. Если же низкий уровень в середине периода не подтверждается, то приемник переходит в исходное состояние.

Схема управления и синхронизации приемника предохраняет от ошибочного запуска счетчика битов, если на выводе RxD присутствует напряжение низкого уровня, вызванное командой D3 "Пауза". Регистр приемника обнаруживает паузу и на выводе SYNDET/BD устанавливает высокий уровень.

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

Наличие единиц в триггерах ошибок не останавливает работу контроллера. Триггеры ошибок сбрасываются командой с D4 = 1.

Состояние контроллера отображается в регистре состояний, доступном по чтению процессору (при CS = 0, RD = 0, CO/D = 1). Формат регистра состояний приведен ниже:


7

6

5

4

3

2

1

0

DSR

SYN/BD

D5

D4

D3

TxEND

RxRDY

TxRDY


Разряды 7, 6, 2, 1, 0 дублируют состояния соответствующих выводов контроллера (см. табл. 6.3); D5 - триггер ошибки стоп-бита, D4 - триггер ошибки переполнения (устанавливается, если предыдущий символ не прочитан процессором до записи в буферный регистр нового принятого символа), D3 - триггер ошибки четности.

    1. ^ Подсистема прерываний в МПС


Подсистема прерываний - совокупность аппаратных и программных средств, обеспечивающих реакцию программы на события, происходящие вне программы. Такие события возникают, как правило, случайно и асинхронно по отношению к программе и требуют прекращения (чаще временного) выполнения текущей программы и переход на выполнение другой программы (подпрограммы), соответствующей возникшему событию.
3.3.1. Внутренние и внешние прерывания
Различают внутренние и внешние (по отношению к процессору) события, требующие реакции подсистемы прерываний. К внутренним событиям относятся переполнение разрядной сетки при выполнении арифметических операций, попытка деления на 0, извлечение корня четной степени из отрицательного числа и т.п., появление несуществующего кода команды, обращение программы в область памяти, для нее не предназначенную, сбой при выполнении передачи или операции в АЛУ и многое другое. Внутренние прерывания должны обеспечиваться развитой системой аппаратного контроля процессора, поэтому они не получили широкого распространения в простых 8- и 16-разрядных МП.

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

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

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

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

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


      1. Функции подсистемы прерываний и её реализация


Подсистема прерываний должна обеспечивать выполнение следующих функций:

  1. обнаружение изменения состояния внешней среды (запрос на прерывание);

  2. идентификация источника прерывания;

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

  4. определение возможности прерывания текущей программы (приоритет программ);

  5. фиксация состояния прерываемой (текущей) программы;

  6. переход к программе, соответствующей обслуживаемому прерыванию;

  7. возврат к прерванной программе после окончания работы прерывающей программы.

Рассмотрим варианты реализации в МПС перечисленных выше функций.

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

Количество источников запросов в МПС может быть различно, в том числе и довольно велико. Дефицит внешних выводов МП исключает возможность передачи запросов от ВУ по "собственным" линиям интерфейса. Обычно на одну линию запроса подключается несколько источников прерываний (по функции ИЛИ), а иногда и все источники системы - на единственный вход (как в i8080).

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

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

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

Гораздо чаще в современных МПС используется т.н. "векторная" подсистема прерываний (рис. 3.17). В такой системе микропроцессор, получив запрос на векторном входе INT, выдает на свою выходную линию сигнал подтверждения прерывания INTA, поступающий на все возможные источники прерывания. Источник, не выставивший запроса, никак не реагирует на сигнал INTA. Источник, выставивший запрос, получая сигнал INTA, выдает на системную шину данных "вектор прерывания" – свой номер или адрес обслуживающей программы или, чаще, адрес памяти, по которому расположен указатель на обслуживающую программу. Время реакции МПС на запрос векторного прерывания минимально (1..3 машинных цикла) и не зависит от числа источников.

(3) Для исключения конфликтов при одновременном возникновении нескольких запросов на векторном входе ответный сигнал INTA подается на источники запросов не параллельно, а последовательно – в порядке убывания приоритетов запросов. Источник, не выставлявший запроса, транслирует сигнал INTA со своего входа на выход, а источник, выставивший запрос, блокирует дальнейшее распространение сигнала INTA. Таким образом, только один источник, выставивший запрос, получит от процессора сигнал INTA и выдаст по нему свой вектор на шину данных.

Более гибко решается проблема организации приоритетов запросов при использовании в МПС специальных контроллеров прерываний (см. ниже).

Конфликты на радиальном входе исключаются самим порядком программного опроса источников.

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

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

(5..7) В разделе Error: Reference source not found упоминалась иерархия процессов в МП: машинный такт - машинный цикл - командный цикл. Рассмотрим возможность прерывания программы по окончанию различных процессов. Учитывая, что прерванная программа должна быть запущена по окончании работы прерывающей с того места, где она была прервана, подсистема прерываний МПС должна обеспечить фиксацию полного состояния прерываемой программы на момент прерывания.

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

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

Поэтому в большинстве МП прерывание может осуществляться после выполнения очередной команды. Состояние программы в этом случае характеризуется содержимым счетчика команд (адрес следующей команды), а так же содержимым РОН и регистра флагов. Процедура перехода к прерывающей программе и последующего возврата из нее может быть полностью идентична действиям, выполняемым по командам ВЫЗОВ и ВОЗВРАТ. Состояние программного счетчика (а иногда и регистра флагов или PSW) аппаратно фиксируется в стеке, а значение РОНов - при необходимости программно в самом тексте прерывающей программы. Учитывая, что большинство команд МП являются короткими, время реакции МПС на запрос прерывания при анализе запросов по завершению текущего командного цикла не бывает большим.


      1. Микропроцессорные контроллеры прерываний



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

На Рис. 3.18 приведена структурная схема простого контроллера прерываний К589ИК14, применяемого совместно с МП К580ВМ80 (на схеме показаны лишь основные блоки и выводы контроллера).



Рис. 3.18. Контроллер К589ИК14

Контроллер включает в себя следующие блоки:

  • РгЗП - регистр запросов, на который поступают запросы на прерывание z0..z7 от внешних источников;

  • ПШ - приоритетный шифратор, формирующий на выходе трехразрядный код номера возбужденного входа (соответствующего разряда РгЗП), причем, если на входе ПШ присутствуют несколько единиц, то на выходе будет сформирован код большего номера;

  • Буф. - буферная схема, подключающая выход ПШ к линиям системной шины данных при подаче на управляющий вход сигнала подтверждения прерывания INTA;

  • РгТП - регистр текущего приоритета, программно-доступный в пространстве ввода/вывода и хранящий трехразрядный код приоритета текущей программы;

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

МП проверяет состояние входа INT в конце каждого командного цикла при условии установки в "1" триггера разрешения прерывания TI. Если INT = 1, то МП вместо машинного цикла M1 следующего командного цикла выполняет цикл обслуживания прерывания, который отличается от M1 только тем, что вместо сигнала RDM\ вырабатывается сигнал INTA\ и программный счетчик PC не инкрементируется. Поэтому не происходит чтение команды из памяти (хотя ее адрес и выставлен на AB[15:0]), а по сигналу INTA\ контроллер выставляет на DB[5:3] трехразрядный номер запроса. На остальных линиях DB сохраняются лог. "1" (высокоимпедансное состояние). В такте T3 цикла обслуживания прерывания код с DB[7:0] записывается в регистр команд МП.

Код 11nnn111 представляет собой код одной из восьми команд RST 0. . RST 7, которые выполняются аналогично командам CALL, но с фиксированными адресами вызываемых подпрограмм:

RST 0 = CALL 0000h

RST 1 = CALL 0008h

RST 2 = CALL 0010h

.. . . . .

RST 7 = CALL 0038h

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

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

Использование ..ИК14 накладывает ограничение на расположение обслуживающих прерывания подпрограмм или указателей на них в адресном пространстве памяти. Команды RST вызывают подпрограммы из начальной области адресов памяти (0000..0038), что не всегда удобно при организации МПС.

^ Программируемый контроллер прерываний К580ВН59 позволяет организовать более гибкую и эффективную подсистему прерываний в МПС.

Отличительной особенностью контроллера ..ВН59 является то, что он генерирует код команды CALL, поэтому область векторов прерываний (по-прежнему компактная) может располагаться по произвольным адресам памяти. Структурная схема контроллера прерываний представлена на Рис. 3.19.


Рис. 3.19. Структура контроллера прерываний К580ВН59

Программируемый контроллер прерываний включает в себя блоки связи с системной шиной, управления и запросов. Блок запросов содержит три 8-разрядных регистра - регистр запросов РгЗ, в котором фиксируются запросы от источников прерываний, регистр маски РгМ, определяющий подмножество источников, которым разрешены прерывания и регистр состояний РгС, в котором фиксируются запросы, принятые на обслуживание.

Состав управляющих линий контроллера включает стандартные линии подключения к системной шине : D[7:0], A0, WR\, RD\, CS\; линии, передающие запрос на прерывания процессору и ответ МП INT и INTA\ соответственно.

Линии запросов z7..z0 соединяют контроллер с источниками прерываний. Контроллер может обслуживать до 8 источников прерываний. При большем числе источников возможно каскадное включение ..ВН59, причем один из контроллеров будет ведущим, а остальные (не более 8) - ведомыми. Для назначения роли контроллера в системе предназначен вход SP
(H - уровень соответствует ведущему контроллеру). Для организации взаимодействия каскадированных контроллеров прерываний предназначены линии CAS[2:0].
1   2   3   4   5   6   7

Похожие:

3 Организация памяти в микропроцессорных системах iconОрганизация памяти первого уровня
Память 1 уровня – сверхоперативная память. Основное назначение – повысить быстродействие оп, и следовательно процессора. Способы...
3 Организация памяти в микропроцессорных системах iconКурс лекций по дисциплине «Менеджмент» для слушателей цпкипк специальности...
Можно выделить три вида управления: в не живой природе (технических системах) управление станком, автомобилем, компьютером; в организмах...
3 Организация памяти в микропроцессорных системах iconПеречень вопросов на экзамен по остх
Организация жизнеобеспечения населения при авариях на коммунально-энергетических системах
3 Организация памяти в микропроцессорных системах iconГерметическое Искусство Памяти   Часть первая: Использование Памяти
Джордано Бруно2, повлекло за собой известность Искусства Памяти в узких академических кругах, мы не можем сказать того же самого...
3 Организация памяти в микропроцессорных системах iconПроблема памяти о войне
День памяти и скорби 22 июня. Но чем дальше в прошлое уходят события той войны, тем меньше остается людей, в чьей памяти эти события...
3 Организация памяти в микропроцессорных системах icon1. Эргономика изучает особенности и возможности функционирования...
Эргономика наука о системах. Она включает в себя такие понятия, как антропометрия, биомеханика, гигиена труда, техническая эстетика,...
3 Организация памяти в микропроцессорных системах iconРеферат На тему: «Кеш памяти микропроцессора». Работу
Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной памяти (озу) и быстрее внешней памяти(жёсткий диск...
3 Организация памяти в микропроцессорных системах iconОграничение пучков лучей в оптических системах
В реальных оптических системах ограничение пучков лучей осуществляется оправами оптических деталей и специальными деталями – диафрагмами....
3 Организация памяти в микропроцессорных системах iconУрок Введение в технику тренировки памяти Урок Механизмы памяти
Настало утро, и золотые блики молодого-солнца заплясали на едва заметных волнах спокойного моря
3 Организация памяти в микропроцессорных системах iconУчреждение высшего профессионального образования «южный федеральный...
Вопрос Согласно модели аст дж. Андерсона, когнитивная система состоит из трех видов памяти. Что это за виды памяти?
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
userdocs.ru
Главная страница