Основы православной культуры 1 урок. Основы православной культуры

ЦИФРОВЫЕ И МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА

Минск

Основы микропроцессорной техники

ЦИФРОВЫЕ И МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА

Володимир Миколайович

Адабашев

Бекір Велішайович

кандидат педагогічних наук

доцент РВНЗ «КІПУ»

зав. кафедрою «Професійної педагогіки та інженерної графіки»

РВНЗ «КІПУ»

Падєрін

інженер – конструктор

кандидат технічних наук

доцент РВНЗ «КІПУ»

Завдання з інженерної та комп’ютерної графіки. Частина 1.

(Основи нарисної геометрії). Навчальний посібник РВНЗ «Кримський інженерно–

Педагогічний університет». Сімферополь, ДІАЙПІ, 2012. - 175 с.: іл.

Коректор: Аширова Ф.М.

Комп"ютерна графіка: Зітляєєв Р.Е.

Комп"ютерний набір: Падєрін О.В.

Видавництво «ДІАЙПІ» 2012 г. Сімферополь.

Тираж 300 прим.

Конспект лекций

В 5 частях


МИНИСТЕРСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ

РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«ВЫСШИЙ ГОСУДАРСТВЕННЫЙ КОЛЛЕД СВЯЗИ»

Кафедра информатики и вычислительной техники

Конспект лекций

для студентов специальностей

кафедрой информатики и вычислительной техники

Составитель

В. И. Богородов, преподаватель высшей категории

кафедры информатики и вычислительной техники

Рецензент

Е. В. Новиков, зав. кафедрой информатики и вычислительной техники,

канд. техн. наук, доцент

Ц75 Цифровыеи микропроцессорные устройства: конспект лекций для студентов специальностей 2-45 01 03 – Сети телекоммуникаций, 2-45 01 02 – Системы радиосвязи, радиовещания и телевидения. В 5 ч. Ч. 4: Основы микропроцессорной техники / сост. В. И. Богородов. – Минск: ВГКС, 2008. – 61 с. ISBN 978-985-6866-42-8. Рассматриваются общие принципы построения микропроцессоров и микропроцессорных систем, основные технические данные и структура однокристального микропроцессора К1821ВМ85А. Описываются система прерываний, последовательный ввод-вывод данных, система команд и программирование микропроцессора К1821ВМ85А. Приводятся назначение, схемотехническая реализация, принципы работы простых интерфейсных схем и их программирование, примеры современных интерфейсных микросхем отечественного производства схемотехники КМОП. Предназначено для студентов и преподавателей колледжа. УДК 81.332 ББК 32.97

ISBN 978-985-6866-42-8 (ч. 4)



978-985-6866-43-5 ©ВГКС, 2008

Учебное издание

Конспект лекций

для студентов специальностей

2-45 01 03 – Сети телекоммуникаций

2-45 01 02 – Системы радиосвязи, радиовещания и телевидения

В 5 частях

Составитель

Богородов Владимир Ильич

Редактор Е. Б. Левенкова

Компьютерная верстка И. А. Крутая

План 2007/2008 уч. г., поз. 23

Подписано в печать 01.09.2008. Формат 60*84/16.

Бумага офсетная. Гарнитура «Times».

Печать цифровая.

Усл. печ. л. 3,34. Уч.-изд. л. 2,85.

Тираж 95 экз. Заказ 91.

Издатель и полиграфическое исполнение

Учреждение образования

«Высший государственный колледж связи»

ЛИ № 02330/0131902 от 03.01.2007.

220114, Минск, Ф.Скорины, 8/2


ВВЕДЕНИЕ

В четвертой части конспекта лекций рассматриваются основные определения и классификация микропроцессоров, структурные схемы микропроцессоров с «жесткой» и программируемой логикой управления, типовая структурная схема микропроцессорной системы с мультиплексируемой шиной адресов и данных на основе микропроцессора К1821ВМ85А. Описываются структура микропроцессора К1821ВМ85А, назначение узлов и их взаимодействие в процессе считывания и исполнения команд, система прерываний, последовательный ввод-вывод данных, система команд и приемы программирования. Рассматриваются назначение, схемотехническая реализация, принципы работы простых интерфейсных схем и их программирование. Приводятся примеры современных интерфейсных микросхем отечественного производства схемотехники КМОП.

ОБЩИЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРАХ

Общие сведения о микропроцессорах, основные определения и классификация

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

Микропроцессорная БИС – интегральная схема с большой степенью интеграции, выполняющая функцию микропроцессора или его части.

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

Кристалл БИС – часть полупроводниковой пластины, в объеме и на поверхности которой сформированы базовые элементы микропроцессора, межэлементные соединения и контактные площадки.

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

Цифровая микросхема – микросхема, предназначенная для преобразования и обработки сигналов, изменяющихся по закону дискретной функции.

МП является центральным процессорным элементом микропроцессорных систем (МПС) или микроЭВМ.

МПС – совокупность БИС МПК, объединенных в единую структуру и имеющая совместную программу работы.

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

Система команд полный набор всех команд, выполняемых МП.

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

Первый МП появился в 1971 году. Это 4-разрядный МП i4004, который стал применяться в микрокалькуляторах. В 1972 году появился 8-разрядный МП i8008, а в 1974 году его улучшенный аналог i8080. Он нашел применение в первых встроенных ЭВМ для управления производственными процессами.

Развитие МП шло по разным направлениям, важнейшее из которых - увеличение разрядности. В этой области в сжатые сроки были достигнуты существенные результаты. Так в 1980 году фирма Motorola выпустила 32-разрядный МП MC68000, а затем Intel и др. Первый 64-разрядный МП i80860 был создан фирмой Intel в 1989 году и т. д. Подавляющее большинство производимых МП являются однокристальными.

Все многообразие МП БИС можно классифицировать по следующим признакам (рисунок 1):

По технологии изготовления и схемотехнической элементной базе;

По разрядности обрабатываемых данных;

По типу архитектуры;

По виду временной организации работы БИС;

По функциональному назначению;

По виду обрабатываемой информации;

По области применения;

По числу одновременно выполняемых программ.

По технологии изготовления и связанной с ней схемотехнической элементной базе различают МП БИС на основе схемотехники типа МОП , биполярной и комбинированной биполярно-полевой (Би-КМОП ). Первые поколения МП БИС были реализованы на основе p - (p -МОП ) и n -канальных (n -МОП ) транзисторов, современные поколения проектируются на основе усовершенствованной КМОП-схемотехники и технологии. Микропроцессорные БИС на основе комбинированной биполярно-полевой (Би-КМОП ) технологии обладают наилучшим сочетанием характеристик, обеспечивая высокие быстродействие и нагрузочную способность при сравнительно небольшой, присущей КМОП БИС , мощности потребления. Наибольшее распространение получили МП БИС типа КМОП и Би-КМОП .

По разрядности обрабатываемых данных различают 2-, 4-, 8-, 16-, 32-, 64-разрядные МП БИС и более. При этом обычно имеется в виду максимальная разрядность обрабатываемого информационного слова (операнда), например, 16-разрядный МП может обрабатывать 8-разрядные слова.

По типу архитектуры различают расширяемые (или секционные) и нерасширяемые (или закрытые) микропроцессоры. Расширяемые позволяют увеличивать разрядность обрабатываемых данных (операндов) путем параллельного объединения необходимого числа МП БИС. Так, для обработки 32-разрядного слова можно использовать два 16-разрядных или четыре 8-разрядных секционных МП. Естественно, в структуру таких МП БИС вводятся специальные входы, определяющие позицию секционного МП в микропроцессорной системе – младшая, средняя или старшая. В понятие типа архитектуры также включается тип шинной организации: с раздельными, с совмещенными, с двунаправленными шинами.


Рисунок 1 – Классификация МП БИС

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

В зависимости от используемой системы команд различают два типа архитектур: МП CISC -архитектуры (CISC-Complex Instruction Set Computer ), выполняющие полный набор команд и МП с RISC -архитектурой (RISC-Reduced Instruction Set Computer ), выполняющие не все стандартные, а только наиболее часто используемые в вычислительных и управляющих системах типы команд. Это позволяет существенно сократить аппаратурные затраты, необходимые для реализации таких БИС, а главное, увеличить производительность работы МП БИС.

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

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

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

По области применения различают два больших класса МП БИС - специализированные и универсальные. Специализированные МП БИС предназначены для реализации лишь определенных классов микропроцессорных систем и устройств – цифровой обработки сигналов (ЦОС), систем решения задач радиолокации, гидродинамики, кинофототехники, медицинской электроники, автомобильной электроники и т. д. Универсальные МП БИС могут быть использованы в различных системах вычислительной техники и автоматики. Основное достоинство специализированных МП БИС – их высокая производительность на конкретных задачах.

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

Различают три группы параметров МП БИС: функциональные, электрические и динамические.

Основным функциональным параметром МП БИС является функциональная мощность К , измеряемая количеством операций, выполняемых в единицу времени (например, MIPS – миллион инструкций в секунду). В зависимости от типа операций различают несколько значений функциональной мощности, например: в формате операций регистр-регистр K RR , в формате операций регистр-память K RM и др.

Из других функциональных параметров используют разрядность слова адреса, разрядность слова данных, разрядность слова команды, число команд (микрокоманд), реализуемое МП БИС.

Электрические параметры МП БИС имеют размерность напряжения, тока и мощности и определяют основные технические характеристики микропроцессорных систем (см. параметры интегральных ЛЭ).

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

Общая структурная схема микропроцессора

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

Рисунок 2 – Общая структурная схема микропроцессора


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

УУ координирует работу узлов ОУ, формируя управляющие сигналы Y 1 , Y 2 , …, Y n в определенной временной последовательности. УУ обеспечивает в определенных узлах ОУ требуемые для выполнения операции действия.

Любая операция, выполняемая в узлах ОУ, делится на последовательность элементарных действий, называемых микрооперациями . К микрооперациям относятся:

Установка регистра в некоторое состояние;

Пересылка содержимого одного регистра в другой;

Суммирование содержимого двух регистров;

Инвертирование содержимого регистра и т. д.

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

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

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

Иногда последовательность действий при выполнении операций зависит от состояния узлов ОУ или, иначе, от некоторых признаков, связанных с результатами микроопераций. Такие признаки X 1 , X 2 , …, X p выдаются из ОУ и поступают в УУ. Некоторые признаки X p + 1 , …, X s могут поступать извне, определяя порядок работы МП. Формируя управляющие сигналы УУ обязано в соответствующие тактовые периоды ориентироваться на признаки. В ОУ поступают данные и выдаются данные.

Два подхода в построении УУ микропроцессора

При проектировании УУ МП используются два принципа:

Принцип схемной или «жесткой» логики;

Принцип программируемой логики.

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

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

Недостатки принципа схемной логики:

Всякое изменение последовательности МК требует демонтажа старого УУ и монтажа нового, т.е. принцип схемной логики не обеспечивает гибкости применения;

Экономически не выгодно использовать последние достижения микроэлектроники – БИС и СБИС, так как разработка специализированных БИС обходится дорого.

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

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

Структурная схема МП со схемной логикой управления

Структурная схема МП со схемной логикой управления представлена на рисунке 3.

Рисунок 3 – Структурная схема МП со схемной логикой управления


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

Принцип микропрограммного управления. Структурная схема МП на основе программируемой логики управления

В каждом тактовом периоде из УУ выдается на ОУ некоторая кодовая комбинация управляющих сигналов. Если число управляющих сигналов n, то кодовая комбинация n-разрядная и каждый разряд показывает присутствует ли управляющий сигнал в соответствующей управляющей цепи, например, 0010…1. Такие кодовые комбинации можно хранить в так называемой управляющей памяти (УП) или микропроцессорной памяти (МПП) и тогда МП имеет структуру, представленную на рисунке 4.

Рисунок 4 – Структурная схема МП с программируемой логикой управления

Микропрограммы различных операций хранятся в УП. Для выполнения каждой МК необходимо задать ее адрес и прочитать из УП.

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

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

Рассмотрим структурную схему УУ МП с программируемой логикой управления (рисунок 5).

Рисунок 5 – Структурная схема УУ МП с программируемой логикой управления

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

Если МК не содержит микроопераций «условный переход» и «безусловный переход», то управляющий сигнал из схемы определения адреса МК увеличивает код на выходах счетчика на единицу – происходит выборка МК из соседней ячейки ПЗУ.

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

Если очередная МК содержит микрооперацию «условный переход», то адрес следующей МК определяется в зависимости от значения признаков X 1 , X 2 , …, X m , поступающих из ОУ МП, и также параллельно переписывается в счетчик. При этом младший разряд поля адреса текущей МК замещается значением признака, т. е. происходит модификация (изменение) адреса следующей МК. В этом случае очередная МК считывается с одной из двух соседних ячеек управляющей памяти, адреса которых отличаются значениями только младших разрядов, например:


Код с выходов счетчика преобразуется дешифратором DC в сигнал, под действием которого из ПЗУ считывается нужная МК. Эта МК запоминается в регистре RG МК и поступает на выход УУ МП в виде управляющих сигналов Y 1 , Y 2 , …, Y n .

Временная диаграмма работы МП с программируемой логикой представлена на рисунке 6.

Рисунок 6 – Временная диаграмма работы МП


В момент t 1 (рисунок 6) БМУ выдает в управляющую память адрес очередной МК. Через некоторое время (от десятков до сотен наносекунд) завершается процесс чтения МК в управляющей памяти и в момент t 2 на выходах памяти появится требуемая МК. С момента t 2 в ОУ начинается выполнение предусмотренной в МК микрооперации и завершится к моменту t 3 .

До окончания выполнения микрооперации БМУ не может формировать адрес следующей МК, поскольку это зависит от признаков, т. е. от результатов микрооперации. Поэтому БМУ формирует адрес следующей МК от момента t 3 до t 4 .

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

Типовая структурная схема МПС с мультиплексируемой шиной адресов и данных

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

Термин «шины» относится к совокупности цепей (линий) по которым передается однотипная информация. Число цепей определяет разрядность шины.

Типична трехшинная структура МПС с шинами адресов ША, данных ШД и управления ШУ. Наряду с русскими терминами применяются английские AB (Address Bus), DB (Data Bus) и CB (Control Bus) .

На рисунке 7 показана структура микропроцессорной системы с МП, имеющим мультиплексируемую шину адресов/данных (например, с МП К1821ВМ85А). Линии A 15–8 являются адресными, через них в систему передается старший байт 16-разрядного адреса. В эту шину включен формирователь на постоянно открытом по входу разрешения EN буферном регистре ИР82, обеспечивающем работу шины на нагрузку, образуемую внешними цепями. Собственной нагрузочной способности у выводов МП, как правило, не хватает. Линии AD 7–0 мультиплексируются. Вначале они передают младший байт адреса, признаком чего служит наличие сигнала ALE (Address Latch Enable) , загружающего этот байт в регистр ИР82.


Рисунок 7 – Структура микропроцессорной системы

После загрузки регистра сигнал ALE снимается, и содержимое регистра остается неизменным вплоть до новой загрузки в следующем цикле работы процессора. Так формируется 16-разрядная шина адреса, содержащая адрес A 15–0 . Этот адрес используется блоками постоянной и оперативной памяти ROM и RAM . Адресация портов ввода и вывода данных требует восьмиразрядного адреса, что соответствует возможности работы не более чем с 256 портами каждого из типов. Адрес портов можно снимать с любой половины адресной шины (во взятом для примера МП состояния обоих полушин адреса при адресации портов дублируются).

После передачи младшего байта адреса шина AD 7–0 отдается для передачи данных. Эти передачи двунаправлены, направление задается буфером данных BD в зависимости от сигнала T (Transmit) . При активном состоянии сигнала чтения () данные передаются справа налево, при пассивном – в обратном направлении. К шине данных подключены информационные выводы всех модулей МПС.

Выводы X 1 и X 2 служат для подключения кварцевого резонатора или иных контуров, задающих частоту тактовому генератору, расположенному в МП. Тактирование системы производится на частоте, равной половине частоты резонанса кварца или иного контура, поскольку генератор работает на триггер, с которого снимаются сигналы тактирования модулей МПС, а триггер делит частоту на 2. Вход является входом асинхронного сброса, приводящим МП в исходное состояние. Сигнал L-активный. Сброс может быть осуществлен замыканием ключа K и автоматически происходит при включении питания U CC . В этом случае благодаря цепочке RC напряжение на входе нарастает постепенно, и в течение некоторого времени после включении питания остается низким (ниже порогового), что равноценно подаче сигнала .

Основные определения:

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

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

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

Гибкость - это способность системы подстраиваться под различные задачи.

Избыточность - это показатель степени соответствия возможностей системы решаемой данной системой задаче.

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

Микропроцессорная система может рассматриваться как частный случай электронной системы, предназначенной для обработки входных сигналов и выдачи выходных сигналов (рис. 1.1). В качестве входных и выходных сигналов при этом могут использоваться аналоговые сигналы, одиночные цифровые сигналы, цифровые коды, последовательности цифровых кодов. Внутри системы может производиться хранение, накопление сигналов (или информации), но суть от этого не меняется. Если система цифровая (а микропроцессорные системы относятся к разряду цифровых), то входные аналоговые сигналы преобразуются в последовательности кодов выборок с помощью АЦП, а выходные аналоговые сигналы формируются из последовательности кодов выборок с помощью ЦАП. Обработка и хранение информации производятся в цифровом виде.

Характерная особенность традиционной цифровой системы состоит в том, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможно только путем изменения структуры системы, замены электронных узлов, входящих в систему, и/или связей между ними. Например, если нам нужна дополнительная операция суммирования, то необходимо добавить в структуру системы лишний сумматор. Или если нужна дополнительная функция хранения кода в течение одного такта, то мы должны добавить в структуру еще один регистр. Естественно, это практически невозможно сделать в процессе эксплуатации, обязательно нужен новый производственный цикл проектирования, изготовления, отладки всей системы. Именно поэтому традиционная цифровая система часто называется системой на «жесткой логике».

Рис. 1.1. Электронная система.

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

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

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

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

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

Рис. 1.2. Программируемая (она же универсальная) электронная система.

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

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

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

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

1.1. Что такое микропроцессор?

Ядром любой микропроцессорной системы является микропроцессор или просто процессор (от английского processor). Перевести на русский язык это слово правильнее всего как «обработчик», так как именно микропроцессор - это тот узел, блок, который производит всю обработку информации внутри микропроцессорной системы. Остальные узлы выполняют всего лишь вспомогательные функции: хранение информации (в том числе и управляющей информации, то есть программы), связи с внешними устройствами, связи с пользователем и т.д. Процессор заменяет практически всю «жесткую логику», которая понадобилась бы в случае традиционной цифровой системы. Он выполняет арифметические функции (сложение, умножение и т.д.), логические функции (сдвиг, сравнение, маскирование кодов и т.д.), временное хранение кодов (во внутренних регистрах), пересылку кодов между узлами микропроцессорной системы и многое другое. Количество таких элементарных операций, выполняемых процессором, может достигать нескольких сотен. Процессор можно сравнить с мозгом системы.

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

Рис. 1.3. Информационные потоки в микропроцессорной системе.

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

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

Для выполнения команд в структуру процессора входят внутренние регистры, арифметико-логическое устройство (АЛУ, ALU - Arithmetic Logic Unit) , мультиплексоры, буферы, регистры и другие узлы. Работа всех узлов синхронизируется общим внешним тактовым сигналом процессора. То есть процессор представляет собой довольно сложное цифровое устройство (рис. 1.4).

Рис. 1.4. Пример структуры простейшего процессора.

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

1.2. Шинная структура связей

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

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

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

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

Рис. 1.6. Шинная структура связей.

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

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

Типичная структура микропроцессорной системы приведена на рис. 1.10. Она включает в себя три основных типа устройств:

процессор;

память, включающую оперативную память (ОЗУ, RAM - Random Access Memory) и постоянную память (ПЗУ, ROM -Read Only Memory), которая служит для хранения данных и программ;

устройства ввода/вывода (УВВ, I/O - Input/Output Devices), служащие для связи микропроцессорной системы с внешними устройствами, для приема (ввода, чтения, Read) входных сигналов и выдачи (вывода, записи, Write) выходных сигналов.

Рис. 1.10. Структура микропроцессорной системы.

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

шина адреса (Address Bus);

шина данных (Data Bus);

шина управления (Control Bus);

шина питания (Power Bus).

Шина адреса служит для определения адреса (номера) устройства, с которым процессор обменивается информацией в данный момент. Каждому устройству (кроме процессора), каждой ячейке памяти в микропроцессорной системе присваивается собственный адрес. Когда код какого-то адреса выставляется процессором на шине адреса, устройство, которому этот адрес приписан, понимает, что ему предстоит обмен информацией. Шина адреса может быть однонаправленной или двунаправленной.

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

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

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

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

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

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

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

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

1.3. Режимы работы микропроцессорной системы

Как уже отмечалось, микропроцессорная система обеспечивает большую гибкость работы, она способна настраиваться на любую задачу. Гибкость эта обусловлена прежде всего тем, что функции, выполняемые системой, определяются программой (программным обеспечением, software), которую выполняет процессор. Аппаратура (аппаратное обеспечение, hardware) остается неизменной при любой задаче. Записывая в память системы программу, можно заставить микропроцессорную систему выполнять любую задачу, поддерживаемую данной аппаратурой. К тому же шинная организация связей микропроцессорной системы позволяет довольно легко заменять аппаратные модули, например, заменять память на новую большего объема или более высокого быстродействия, добавлять или модернизировать устройства ввода/вывода, наконец, заменять процессор на более мощный. Это также позволяет увеличить гибкость системы, продлить ее жизнь при любом изменении требований к ней.

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

Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по магистрали:

программный обмен информацией;

обмен с использованием прерываний (Interrupts);

обмен с использованием прямого доступа к памяти (ПДП, DMA - Direct Memory Access).

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

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

Рис. 1.11. Программный обмен информацией.

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

В общем случае организовать реакцию на внешнее событие можно тремя различными путями:

с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флага или polling);

с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы;

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

Проиллюстрировать эти три способа можно следующим простым примером. Допустим, вы готовите себе завтрак, поставив на плиту кипятиться молоко. Естественно, на закипание молока надо реагировать, причем срочно. Как это организовать? Первый путь - постоянно следить за молоком, но тогда вы ничего другого не сможете делать. Правильнее будет регулярно поглядывать на молоко, делая одновременно что-то другое. Это программный режим с опросом флага. Второй путь - установить на кастрюлю с молоком датчик, который подаст звуковой сигнал при закипании молока, и спокойно заниматься другими делами. Услышав сигнал, вы выключите молоко. Правда, возможно, вам придется сначала закончить то, что вы начали делать, так что ваша реакция будет медленнее, чем в первом случае. Наконец, третий путь состоит в том, чтобы соединить датчик на кастрюле с управлением плитой так, чтобы при закипании молока горелка была выключена без вашего участия (правда, аналогия с ПДП здесь не очень точная, так как в данном случае на момент выполнения действия вас не отвлекают от работы).

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

Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ - Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 1.12).

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

Рис. 1.12. Обслуживание прерывания.

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

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

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

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

Рис. 1.13. Обслуживание ПДП.

Рис. 1.14. Информационные потоки в режиме ПДП.

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

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

1.4. Архитектура микропроцессорных систем

До сих пор мы рассматривали только один тип архитектуры микропроцессорных систем - архитектуру с общей, единой шиной для данных и команд (одношинную, или принстонскую, фон-неймановскую архитектуру). Соответственно, в составе системы в этом случае присутствует одна общая память, как для данных, так и для команд (рис. 1.15).

Рис. 1.15. Архитектура с общей шиной данных и команд.

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

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

Рассмотрим некоторые достоинства и недостатки обоих архитектурных решений.

Архитектура с общей шиной (принстонская, фон-неймановская) проще, она не требует от процессора одновременного обслуживания двух шин, контроля обмена по двум шинам сразу. Наличие единой памяти данных и команд позволяет гибко распределять ее объем между кодами данных и команд. Например, в некоторых случаях нужна большая и сложная программа, а данных в памяти надо хранить не слишком много. В других случаях, наоборот, программа требуется простая, но необходимы большие объемы хранимых данных. Перераспределение памяти не вызывает никаких проблем, главное - чтобы программа и данные вместе помещались в памяти системы. Как правило, в системах с такой архитектурой память бывает довольно большого объема (до десятков и сотен мегабайт). Это позволяет решать самые сложные задачи.

Рис. 1.16. Архитектура с раздельными шинами данных и команд.

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

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

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

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

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

1.5. Типы микропроцессорных систем

Диапазон применения микропроцессорной техники сейчас очень широк, требования к микропроцессорным системам предъявляются самые разные. Поэтому сформировалось несколько типов микропроцессорных систем, различающихся мощностью, универсальностью, быстродействием и структурными отличиями. Основные типы следующие:

микроконтроллеры - наиболее простой тип микропроцессорных систем, в которых все или большинство узлов системы выполнены в виде одной микросхемы;

контроллеры - управляющие микропроцессорные системы, выполненные в виде отдельных модулей;

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

компьютеры (в том числе персональные) - самые мощные и наиболее универсальные микропроцессорные системы.

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

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

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

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

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

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

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

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

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

Московский государственный инженерно-физический институт

(технический университет)

Факультет Автоматики и электроники

ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ

1. Общая структура и принципы функционирования

микропроцессорных систем

2. Система команд микропроцессоров и способы адресации операндов

3. Реализация и организация памяти

4. Классификация микропроцессоров, основные варианты их архитектуры и структуры

Основы микропроцессорной техники

Микропроцессором называется программно-управляемое устройство для обработки цифровой информации и управления процессом обработки, реализованное в виде большой (БИС) или сверхбольшой (СБИС) интегральной микросхемы. Таким образом, микропроцессор выполняет роль процессора в цифровых системах различного назначения. Это могут быть системы обработки информации (компьютеры), системы управления объектами и процессами, информационно-измерительные системы и другие виды систем, используемых в промышленности, бытовой технике , аппаратуре связи и многих других областях применения.

4. Общая структура и принципы функционирования

микропроцессорных систем

Большинство микропроцессорных систем имеет магистрально-модульную структуру (рис.1.1), в которой отдельные устройства (модули), входящие в состав системы, обмениваются информацией по общей системной шине – магистрали.

DIV_ADBLOCK273">

Постоянное запоминающее устройство (ПЗУ) служит для хранения констант и стандартных (неизменяемых) программ. В ПЗУ обычно записываются программы начальной инициализации (загрузки) систем, тестовые и диагностические программы и другое служебное программное обеспечение , которое не меняется в процессе эксплуатации систем. В микропроцессорных системах, управляющих определенными объектами с использованием фиксированных или редко изменяемых программ, для их хранения также обычно используется ПЗУ (память ROM – Read-Only Memory) или репрограммируемое ПЗУ (память EPROM – Electrically Programmable Read-Only Memory или флеш-память).

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

Данная структура соответствует архитектуре Фон-Неймана, предложенной этим ученым в 40-х годах для реализации первых моделей цифровых ЭВМ. Ниже будут рассмотрены и другие варианты процессорных архитектур.

Системная шина содержит несколько десятков (в сложных системах более 100) проводников, которые в соответствии с их функциональным назначением подразделяются на отдельные шины - адреса А, данных D и управления C. Шина A служит для передачи адреса, который формируется микропроцессором и позволяет выбрать необходимую ячейку памяти ОЗУ (ПЗУ) или требуемое ИУ при обращении к внешнему устройству. Шина D служит для выборки команд, поступающих из ОЗУ или ПЗУ в УУ микропроцессора, и для пересылки обрабатываемых данных (операндов) между микропроцессором и ОЗУ или ИУ (внешним устройством). По шине C передаются разнообразные управляющие сигналы, определяющие режимы работы памяти (запись или считывание), интерфейсных устройств (ввод или вывод информации) и микропроцессора (запуск, запросы внешних устройств на обслуживание, информация о текущем режиме работы и другие сигналы).

Разрядность шины данных D обычно соответствует разрядности операндов, обрабатываемых микропроцессором. Поэтому шина D содержит 8, 16 или 32 линии для передачи соответствующих разрядов данных и команд. В ряде последних моделей микропроцессоров используется шина D с расширенной разрядностью, чтобы обеспечить одновременную передачу нескольких команд или операндов. Например, 32-разрядные микропроцессоры Pentium имеют 64-разрядную шину данных.

Разрядность шины адреса A определяет максимальный объем адресуемой процессором внешней памяти. Например, 16-разрядная шина A обеспечивает адресацию памяти объемом до 64 Кбайт, а 32-разрядная шина – до 4 Гбайт. Процессоры Pentium II, Pentium III, Pentium 4 имеют 36-разрядную шину адреса, обеспечивающую обращение к памяти объемом до 64 Гбайт. Отметим, что в ряде микропроцессоров, например в Pentium, вместо младших разрядов адреса формируются сигналы выборки соответствующих байтов (сигналы байтной выборки BEi, где i – номер байта), которые позволяют организовать хранение байтов в отдельных банках памяти.

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

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

Разрядность шины управления С определяется организацией работы системы, возможностями реализации различных режимов ее функционирования, используемыми методами контроля микропроцессора и других устройств. Поэтому набор передаваемых по шине C управляющих сигналов является индивидуальным для каждой модели микропроцессора. Имеется ряд управляющих сигналов, которые используются в большинстве микропроцессорных систем. К ним относятся сигналы начального запуска (RESET), сигналы, задающие режим работы памяти (чтение – RD, запись - WR), сигналы, необходимые для реализации прерываний и ряд других. В простых системах для передачи управляющих сигналов может использоваться всего несколько линий, а в сложных системах число этих линий составляет несколько десятков.

В процессе функционирования микропроцессорной системы реализуются следующие основные режимы ее работы:

Выполнение основной программы;

Вызов подпрограммы;

Обслуживание прерываний и исключений;

Прямой доступ к памяти.

Рассмотрим основные принципы реализации этих режимов.

Выполнение основной программы.

В этом режиме процессор выбирает из ОЗУ очередную команду программы и выполняет соответствующую операцию. Команда представляет собой многоразрядное двоичное число (рис. 1.2), которое состоит из двух частей (полей) – кода операции КОП и кода адресации операндов КАД. Код операции КОП задает вид операции, выполняемой данной командой, а код адресации КАД определяет выбор операндов (способ адресации), над которыми производится заданная операция. В зависимости от типа микропроцессора команда может содержать различное число разрядов (байтов). Например, команды процессоров Pentium содержат от 1 до 15 байтов, а процессоры с RISC-архитектурой обычно используют фиксированный 4-байтный формат для любых команд.

Код операции (КОП)

Код адресации операндов (КАД)

Рис. 1.2. Формат типовой команды микропроцессора

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

В процессорах Pentium и других моделях микропроцессоров компании Intel (8086, 80186, 80286, 386, 486), реализуется сегментная организация памяти. При этом адрес выбираемой команды определяется содержимым двух регистров – указателя команды EIP , указывающего положение команды в сегменте программ, и сегментного регистра CS , который задает начальный (базовый) адрес этого сегмента. Регистры EIP и CS выполняют в этих микропроцессорах функции программного счетчика PC :

(EIP) + (CS) = адрес очередной команды (PC).

Различные команды передачи управления реализуются путем изменения содержимого регистров EIP и CS .

Принятая из ОЗУ команда поступает в регистр команд, входящий в состав УУ процессора. Затем производится дешифрация команды, в процессе которой определяется вид выполняемой операции (расшифровка КОП) и формируется адрес необходимых операндов (расшифровка КАД). В соответствии с кодом поступившей команды УУ процессора генерирует последовательность микрокоманд , обеспечивающих выполнение заданной операции. Каждая микрокоманда выполняется в течении одного машинного такта - периода тактовых импульсов Tt , который задается тактовой частотой микропроцессора Ft = 1/Tt. Тактовые импульсы с частотой Ft формируются генератором тактовых импульсов (ГТИ), который входит в состав микропроцессора или реализуется в виде внешнего устройства, подключаемого к соответствующему входу микропроцессора. Величина Tt определяет время выполнения отдельных микрокоманд, последовательность которых обеспечивает получение необходимого результата операции (поступившей команды).

Для выполнения каждой поступившей команды требуется определенное количество командных циклов и тактов. Командным циклом называется промежуток времени, требуемый для выполнения обращения к ОЗУ или внешнему устройству с помощью системной шины. Обычно реализация такого цикла занимает от 2 до 4 системных тактов (периодов синхросигналов шины), которые требуются для установки требуемого адреса, выдачи сигналов, определяющих вид цикла – чтение или запись, получения сигнала готовности к обмену (от памяти или внешних устройств) и собственно передачи данных или команд. При современной технологии изготовления системных плат частота синхросигналов шины обычно составляет десятки Мгц (типичные значения 25, 33, 50, 66, 75, 100, 133 МГц).

При выполнении каждой команды в первых тактах производится ее выборка из ОЗУ по адресу, который задается содержимым программного счетчика PC . Последующая дешифрация выбранной команды определяет необходимое число циклов для ее выполнения. Если для выполнения команды не требуется считывание операндов из памяти (внешних устройств) или запись в память (вывод на внешние устройства) результатов операции, то такая команда выполняется за один цикл. При считывании операндов из памяти (внешних устройств) или записи результата в память (вывод на внешние устройства) требуется выполнения дополнительных циклов чтения (ввода) или записи (вывода). В зависимости от разрядности обрабатываемых операндов и разрядности используемой системной шины число циклов, необходимых для выполнения команд может быть различным: от 1 (выборка команды) до 4-5 (зависит от команды, разрядности шин и операндов).

Машинным (процессорным) тактом в микропроцессорных системах является длительность периода тактовых сигналов Tt, которая задается тактовой частотой микропроцессора Ft = 1/Tt. При выполнении операций, не требующих обращений к системной шине, эта частота определяет производительность микропроцессора. Для современных микропроцессоров частота Ft достигает 1 ГГц и более (последние модели микропроцессоров Pentium, AMD K7, Alpha и другие). Таким образом, обработка информации внутри процессора (без обращения к системной шине) производится значительно быстрее, чем обмен по шине. Если тактовая частота микропроцессора отличается от частоты обмена по системной шине, то вывод данных на шину реализуется с помощью промежуточной буферной памяти, в которой хранятся данные, посылаемые микропроцессором на системную шину. Данные выбираются из буферной памяти и поступают на системную шину с частотой, соответствующей скорости обмена по этой шине.

Текущее состояние процессора при выполнении программы определяется содержимым регистра состояния SR (State Register, в микропроцессорах Pentium данный регистр называется EFLAGS ). Этот регистр содержит биты управления , задающие режим работы процессора, и биты признаков (флаги) , указывающие характеристики результата выполненной операции:

N – признак знак (старший бит результата), N=0 при положительном результате, N=1 при отрицательном результате;

С – признак переноса , C=1, если при выполнении операции образовался перенос из старшего разряда результата;

V – признак переполнения , V=1, если при выполнении операций над числами со знаком произошло переполнение разрядной сетки процессора;

Z – признак нуля , Z=1, если результат операции равен нулю.

Некоторые микропроцессоры фиксируют также другие виды признаков: признак четности результата, признак переноса между тетрадами младшего байта. Специальные виды признаков устанавливаются по результатам операций над числами, представленными в формате с «плавающей точкой».

Вызов подпрограммы

Обращение к подпрограмме реализуется при поступлении в микропроцессор специальной команды CALL (в некоторых процессорах эта команда имеет мнемоническое обозначение JSR – Jump-to-SubRoutine), которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC , обеспечивая в следующем командном цикле выборку первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальном регистре или ячейке памяти текущего содержимого PC , где хранится адрес следующей команды основной программы, чтобы обеспечить возвращение к ней после выполнения подпрограммы. Возврат к основной программе реализуется при поступлении команды RETURN (мнемоническое обозначение RET ), завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в программный счетчик, обеспечивая выполнение команды, которая в исходной программе следовала за командой CALL .

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

https://pandia.ru/text/78/380/images/image003_87.gif" width="545" height="217 src=">

Рис.1.4. Варианты реализации стека: регистровый стек (а) и

стек, реализуемый в ОЗУ (б)

Регистровый стек (рис.1.4,а) реализуется с помощью реверсивных сдвиговых регистров. Каждая команда CALL вызывает ввод в стек очередного содержимого PC . По команде RETURN направление сдвига изменяется, и производится извлечение из стека последнего поступившего содержимого PC . Таким образом, обеспечивается выполнение вложенных подпрограмм. Возможное число вложенных подпрограмм определяется глубиной стека, то есть разрядностью используемых регистров сдвига. Если число вложений превышает глубину стека, первые из введенных в стек значений PC теряются, то есть возврат к основной программе не будет обеспечен. Поэтому при использовании регистрового стека необходим строгий контроль за числом вложений. Такая реализация стека применяется в системах, решающих задачи с ограниченным числом вложенных подпрограмм (обычно не более 10-20).

Значительно более широкие возможности вложения подпрограмм обеспечивает реализация стека в ОЗУ (рис.1.4,б). В этом случае часть ОЗУ выделяется для работы в качестве стека. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который вводится в состав УУ процессора. Регистр SP содержит адрес верхней заполненной ячейки стека, в которой хранится значение PC , записанное при выполнении команды CALL . При поступлении новой команды CALL содержимое SP автоматически уменьшается на 1, адресуя следующую, еще незаполненную ячейку стека. Полученный адрес (SP-1) выдается на шину A, а на шину данных D поступает содержимое PC , которое должно сохраняться в стеке. Таким образом, производится последовательное заполнение ячеек стека «снизу-вверх», при этом SP всегда адресует вершину стека. По команде RETURN текущее содержимое SP выдается на шину A, и по шине D производится считывание с вершины стека последнего записанного значения PC . После этого содержимое SP увеличивается на 1, адресуя предыдущее значение PC , хранящееся в стеке. Так как ОЗУ обычно имеет значительный объем, то для размещения стека можно выделить достаточно большое количество ячеек памяти, обеспечивая необходимый уровень вложения подпрограмм.

Обслуживание прерываний и исключений

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

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

DIV_ADBLOCK283">

Программные прерывания реализуются при поступлении специальных команд (INTn , INT 3, INTO для микропроцессоров Pentium, TRAPn для микропроцессоров семейства MC68000 и другие). Эти команды вызывают переход к выполнению стандартных подпрограмм обслуживания, для размещения которых выделяются определенные позиции в ОЗУ. Таким образом, при вызове подпрограмм обслуживания реализуется обращение к фиксированным адресам.

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

Запросы маскируемых прерываний обслуживаются только в том случае, если соответствующий бит управления I в регистре состояния SR , который называется маской прерываний , имеет значение 1. В процессорах Pentium это бит IF в регистре EFLAGS . С помощью специальных команд значение этого бита может быть установлено в 1 или сброшено в 0. Таким образом, можно разрешить или запретить обслуживание поступивших аппаратных прерываний при выполнении определенных программ или их фрагментов. При одновременном поступлении нескольких запросов обслуживание реализуется в соответствии их приоритетом. В ряде микропроцессорных систем для обеспечения приоритетного обслуживания запросов от многих внешних устройств включаются специальные микросхемы – контроллеры прерываний. Некоторые типы микропроцессоров имеют внутренние контроллеры для организации приоритетных прерываний.

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

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

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

Прямой доступ к памяти.

Режим прямого доступа к памяти DMA (Direct Memory Access) используется, если необходимо произвести пересылку значительного массива информации между ОЗУ и каким-либо внешним устройством, которое подает в систему соответствующий запрос. Реализация такой пересылки с помощью с помощью соответствующей программы обмена требует выполнения отдельной команды пересылки для передачи каждого байта или слова. При этом необходим определенный объем памяти для хранения программы и требуется значительное время для ее выполнения.

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

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

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

2. Система команд микропроцессоров и способы адресации операндов

Большинство микропроцессоров выполняют обработку следующих типов целочисленных данных:

Слова (16 разрядов),

Двойные слова (32 разряда).

Некоторые типы микропроцессоров обрабатывают также четверные слова (64 разряда), двоично-десятичные числа BCD (Binary Coded Decimal, представление одного десятичного разряда с помощью тетрады из 4-х битов, которая называется полубайтом или нибблом), строки символов. В состав современных высокопроизводительных микропроцессоров входят также блоки, производящие обработку чисел, представленных в формате с плавающей точкой (блоки FPU – Floating Point Unit), и выполняющие обработку видео - и аудиоданных, для которых используются специальные форматы представления.

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

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

Начиная с младшего байта (“Little-Endian),

Начиная со старшего байта (“Big-Endian”).

При использования размещения “Little-Endian” младший байт располагается в ячейке памяти с меньшим адресом (рис. 1.6,а). Данный вариант размещения реализуется в микропроцессорах, выпускаемых компаниями Intel, AMD, Hitachi и рядом других производителей. При размещении “Big-Endian” старший байт располагается в ячейке с меньшим адресом (рис. 1.6,б). Такое расположение байтов обеспечивают микропроцессоры компании Motorola, ряд моделей микропроцессоров, выпускаемых IBM и некоторыми другими компаниями. При обращении к памяти микропроцессор адресует ячейку с меньшим адресом, поэтому при размещении “Little-Endian” команда или операнд выбираются, начиная с младшего байта, а при размещении “Big-Endian” – со старшего байта. По этой причине непосредственный перенос программного обеспечения между системами, использующими микропроцессоры с разными вариантами размещения байтов, оказывается практически невозможным. Чтобы решить эту проблему, некоторые современные микропроцессоры, например, семейства PowerPC, реализуют оба возможных варианта размещения и адресации байтов – “Little-Endian” или “Big-Endian”. Выбор необходимого варианта задается программно.

Младший байт

Старший байт

Младший байт

Старший байт

Старший байт

Младший байт

Старший байт

Младший байт

Рис.1.6. Адресация байтов в слове и двойном слове при размещениях










Что же нас объединяет? Единая Родина. Это общая земля. Общая история. Общие законы. Общий язык. Но важнее всего – общие ценности, духовные традиции. Человек остается человеком, пока он ценит и бескорыстно заботится о близком ему человеке, других людях, об интересах народа и Отечества.




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


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


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








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


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


Ты выбрал для изучения одну из величайших духовных традиций России. Другие ребята, чьим семьям ближе другие религиозные или светские традиции, существующие в нашем Отечестве, будут знакомиться со своей культурой. Жизнь России и каждого из ее граждан основана на многообразии и единстве великих духовных традиций. Внимательно изучай традицию своей семьи. Не забывай делиться полученными ценностями с другими людьми – чем больше отдаешь, тем больше получаешь. Помни, что у разных людей могут быть разные святыни и надо быть осторожным, чтобы не обидеть другого человека. Святыни другого человека могут в начале казаться для тебя непонятными, но топтать их нельзя. Эти ценности ты откроешь для себя в будущем.


М АЛЬЧУГАН ЛУЧИ ЛАСКАЛ, В ЕСЬ КУПАЯСЬ В СВЕТЕ, П ЛАМЯ СОЛНЦА ЦЕЛОВАЛ Н А ПАРКЕТЕ. Я СЛУЧАЙНО ВСТАЛ НА КРУГ С ОЛНЕЧНОГО БЛЕСКА. И ЗАПЛАКАЛ МАЛЬЧИК ВДРУГ В ТРИ РУЧЬЯ, ПО - ДЕТСКИ. Ч ТО С ТОБОЮ? – Я СПРОСИЛ. О Н СКАЗАЛ: – Я ВИДЕЛ, Т Ы НА СОЛНЦЕ НАСТУПИЛ, С ОЛНЫШКО ОБИДЕЛ. Я ЕГО ПОЦЕЛОВАЛ И ТЕПЕРЬ УЖ ЗНАЮ: Е СЛИ НА ПОЛ ЛУЧ УПАЛ, Я НЕ НАСТУПАЮ. (А ЛЕКСАНДР С ОЛОДОВНИКОВ)


В АЖНЫЕ ПОНЯТИЯ. Традиции (от лат. T radere – передавать) – то, что имеет большое значение для человека, но не создано им самим, а получено от предшественников и в последующем будет передано младшим поколениям. Например, самые простые поздравлять родных и близких с днем рождения, отмечать праздники и др. Ценность – то, что имеет большое значение для человека и общества в целом. Например, Отечество, семья, любовь, и др. – всё это ценности. Духовные традиции – ценности, идеалы, жизненный опыт, передаваемые от одного поколения к другому. К важнейшим духовным традициям России относятся: христианство, прежде всего русское православие, ислам, буддизм, иудаизм, светская этика.




Top