Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти
Ответы по дисциплине МПТ (2015 г.)
Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микроконтроллер. Принципы построения микропроцессорных систем.
Микропроцессорная техника (МПТ) включает технические и программные средства для построения микропроцессоров и микроконтроллеров, а также различных микропроцессорных устройств и систем, в том числе персональных компьютеров.
Микропроцессор (МП) – программно-управляемое устройство, выполняющее процесс обработки цифровой информации и управления им, построенное на одной или нескольких БИС.
Микропроцессорная система (МПС) – функционально законченное изделие, выполненное на основе микропроцессора. Она включает в себя также память, устройства ввода/вывода и ряд других для выполнения заданных функций.
Микроконтроллер (МК) – это функционально законченная микропроцессорная система обработки данных, которая реализована в виде одной БИС. МК объединяет в одном кристалле все основные элементы МПС: центральный процессор, память, устройства ввода/вывода, а также большой набор периферийных устройств. МК предназначены для реализации устройств управления, встраиваемых в разнообразную аппаратуру.
При построении МПС используют два основных принципа:
1) модульность построения;
2) магистральный принцип обмена информацией.
Модульный принцип предполагает, что система строится на основе ограниченного количества типов конструктивно и функционально завершенных модулей. Исходя из классической схемы компьютера, любая МПС должна состоять, как минимум, из модуля процессора, модуля памяти и модуля управления вводом/выводом. Основой модуля процессора является МП.
Магистральный принцип обмена информацией определяет характер связей между модулями МПС. Существует два принципа взаимодействия элементов модулей и самих модулей в системе: принцип произвольных связей, реализующих правило «каждый с каждым», и принцип упорядоченных связей – магистральный или шинный.
При использовании принципа произвольных связей все сигналы между устройствами передаются по отдельным линиям связи. Каждое устройство, входящее в систему, передает свои сигналы и коды независимо от других устройств. При этом в системе получается много линий связи и разных правил (протоколов) обмена информацией.
При магистральном принципе все сигналы между устройствами передаются по одним и тем же линиям связи, но в разное время (это называется временным мультиплексированием). Обмен информацией по отдельным линиям связи может осуществляться в одном направлении (однонаправленная передача) или в двух направлениях (двунаправленная передача). Группа линий связи, по которым передаются сигналы и коды называется магистралью или шиной (англоязычный термин – bus).
Применение принципа магистрального обмена позволяет минимизировать число связей между устройствами системы, сократить число выводов БИС. Большое достоинство магистрального принципа связи состоит в том, что все устройства должны принимать и передавать информацию по одним и тем же правилам (протоколам обмена). Это обеспечивает стандартизацию интерфейсов всех устройств, входящих в систему.
При использовании магистрального принципа обмена информацией все модули МПС соединяются с единой магистралью, которую часто называют системной шиной. Шина представляет собой набор электрических проводников, объединенных функционально и часто физически, например, на печатной плате.
На рис. 1 приведена типичная структура МПС, состоящая из модуля процессора, модуля памяти и модуля ввода/вывода. По сложившейся практике при описании МПС слово модуль опускают и говорят: процессор, память, устройство ввода/вывода (УВВ).
Весь информационный поток, циркулирующий в МПС, обычно разделяется на три группы: адреса, данные и сигналы управления. В соответствие с этим в системной шине (магистрали) выделяют три шины нижнего уровня:
· шина адреса – ША);
· шина данных – ШД ;
· шина управления – ШУ.
Магистраль (системная шина)
Рис. 1. Магистрально-модульная структура МПС
Шина адреса предназначена для однозначного определения адреса элемента МПС (например, ячейки памяти или устройства ввода/вывода). Обычно адрес задает процессор, поэтому шина адреса чаще всего однонаправленная.
Шина данных служит для обмена данными между элементами МПС. Шина данных всегда двунаправленная.
Шина управления предназначена для управления работой элементов МПС. По ней передаются управляющие сигналы. Отдельные линии шины управления могут быть однонаправленными или двунаправленными.
Для организации шин используются специальные буферные микросхемы (шинные формирователи), отличающиеся высокой нагрузочной способностью. Поэтому возможность подключения к шине нескольких входов логических элементов ограничивается лишь нагрузочной способностью буферных элементов, к выходу которых эта шина присоединена.
Сложнее организуется подключение выходов нескольких элементов к одной шине. Возможны два способа такого подключения:
1) использование схем, имеющих выходы с тремя состояниями;
2) использование схем, имеющих выходы с открытым коллектором (открытым стоком).
Архитектура микропроцессора: архитектура со сложной системой команд (CISC-процессоры), архитектура с упрощенной системой команд (RISC-процессоры), принстонская и гарвардская архитектуры.
Особенность МП как устройства с программируемой логикой заключается в подчиненности его аппаратного состава (структуры из элементов, составляющих МП, и связей между ними) программируемости. Это означает, что функции, реализуемые МП, определяются не столько его структурой, сколько последовательностью управляющих слов (команд), поступающей из программной памяти. Для комплексной характеристики возможностей МП пользуются понятием архитектуры.
Архитектурой МП называется комплекс его аппаратных и программных средств, предоставляемых пользователю. Архитектура отражает структуру МП, набор программно-доступных элементов, систему команд и способы адресации, объем и структуру адресуемой памяти, реакцию МП на внешние сигналы.
При описании архитектуры и функционирования МП обычно используется его представление в виде набора программно-доступных элементов – регистров, образующих так называемую программную модель МП. В этих регистрах содержатся обрабатываемые данные (операнды) и управляющая информация. Соответственно, в программную модель входит группа регистров общего назначения РОН, служащих для хранения операндов, и группа служебных регистров, обеспечивающих управление выполнением программы и режимами работы МП. Регистры общего назначения РОН образуют РЗУ - внутреннюю регистровую память МП.
При использовании подобной программной модели функционирование МП представляется в виде реализации регистровых пересылок, то есть процедур изменения состояния этих регистров путем чтения или записи их содержимого. В результате таких пересылок обеспечивается адресация и выбор команд и операндов, хранение и пересылка результатов, изменение последовательности команд и режимов функционирования МП в соответствии с поступлением нового содержимого в служебные регистры, а также все другие процедуры, реализующие процесс обработки информации.
С точки зрения системы команд и способов адресации операндов в современных МП реализуется один из двух принципов построения процессоров:
· CISC-архитектура, в которой реализуется так называемая полная система команд (Complex Instruction Set Computer);
· RISC-архитектура, в которой реализуется сокращенная система команд (Reduced Instruction Set Computer).
CISC-архитектура характеризуется большим набором разноформатных команд с использованием многочисленных способов адресации. Это классическая архитектура процессоров, которая начала свое развитие в 1940-х годах с появлением первых компьютеров. Основной целью ее было сокращение размера программ, что уменьшало требования к объему оперативной памяти. Расширение спектра операций, реализуемых системой команд, позволяло уменьшить размер программ, а также трудоемкость их написания и отладки. Для CISC-микропроцессоров характерно:
· большое количество команд, некоторые из которых выполняют много функций;
· большое количество форматов команд различной разрядности;
· большое количество методов адресации;
· широкое использование команд обработки типа «регистр-память»;
· сравнительно небольшое число регистров общего назначения (8 – 16).
Типичным примером CISC-процессоров являются микропроцессоры семейства Pentium фирмы Intel. Они выполняют более 200 команд разной степени сложности, которые имеют размер от 1 до 15 байт и обеспечивают более 10 различных способов адресации. Такое многообразие команд и способов адресации позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач. Однако при этом существенно усложняется структура МП, особенно его устройства управления, что приводит к увеличению размеров и стоимости кристалла, снижению производительности. В то же время многие команды и способы адресации используются достаточно редко. Кроме того, наличие в программе команд различного формата приводит к нерегулярности потока команд и сильно ограничивает эффективность конвейерной их обработки.
Эти недостатки обусловили необходимость разработки альтернативной архитектуры, нацеленной, прежде всего, на снижение нерегулярности потока команд и уменьшение их количества.
Первые RISC-микропроцессоры, разработанные в начале 80-годов, выполняли относительно небольшой набор команд: 50 – 100. Именно эта особенность и определила название данного класса микропроцессоров – RISC (Reduced Instruction Set Computer - компьютер с сокращенным набором команд).
В настоящее время определились следующие характерные особенности RISC-микропроцессоров:
· расширенный объем регистровой памяти: от 32 до нескольких сотен регистров общего назначения, входящих в состав МП;
· использование в командах обработки данных только регистровой адресации (обращение к памяти используется в командах загрузки и сохранения содержимого регистров, а также в командах передачи управления);
· отказ от аппаратной реализации сложных способов адресации;
· фиксированный формат команд (обычно 4 байта);
· исключение из набора команд, реализующих редко используемые операции, а также команд, не вписывающихся в принятый формат.
Преимущественное использование регистровой адресации значительно повышает производительность МП. Фиксированный формат команд, отказ от сложных и редко используемых команд и способов адресации существенно упрощает устройство управления, сокращает объем его микропрограммной памяти, что позволяет уменьшить размер кристалла RISC-процессоров, снизить их стоимость и повысить тактовую частоту. Использование фиксированного формата команд обеспечивает также более эффективную работу конвейера МП, уменьшает число тактов простоя и ожидания, что дает дополнительный рост производительности. Поэтому RISC-процессоры в 2-4 раза более производительней имеющих ту же тактовую частоту CISC-процессоров, несмотря на несколько больший (примерно на 30%) объем программ.
Важной архитектурной особенностью микропроцессоров является используемый вариант реализации памяти и организация выборки команд и данных. По этим признакам различают процессоры с Принстонской и Гарвардской архитектурой. Эти архитектурные варианты были предложены в конце 1940-х годов специалистами соответственно Принстонского и Гарвардского университетов США для разрабатываемых ими моделей компьютеров.
Принстонская архитектура, которая часто называется архитектурой Фон-Неймана (по имени руководителя разработки), характеризуется общей оперативной памятью для хранения программ и данных. Для обращения к этой памяти используется общая системная шина, по которой в процессор поступают и команды и данные (рис. 1).
Рис. 1. Принстонская архитектура МПС
Принстонская архитектура имеет ряд достоинств. Наличие общей памяти позволяет оперативно перераспределять ее объем для хранения отдельных массивов команд и данных в зависимости от решаемых задач. Обеспечивается возможность более эффективного использования имеющегося объема оперативной памяти в каждом конкретном случае применения МП. Например, в некоторых случаях нужна большая и сложная программа, а данных в памяти надо хранить не слишком много. В других случаях, наоборот, программа требуется простая, но необходимы большие объемы хранимых данных (например, в системах сбора данных от многих объектов). Перераспределение памяти не вызывает никаких проблем, главное – чтобы программа и данные вместе помещались в памяти. Как правило, в системах с такой архитектурой память бывает довольно большого объема (до десятков и сотен мегабайт). Это позволяет решать самые сложные задачи. Использование общей шины для передачи команд и данных значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность. Поэтому Принстонская архитектура в течение долгого времени доминировала в вычислительной технике.
Однако ей присущи и существенные недостатки. Дело в том, что при единственной шине команд и данных процессор вынужден по одной этой шине принимать данные (из памяти или УВВ) и передавать данные (в память или УВВ), а также читать команды из памяти. Естественно, одновременно эти пересылки кодов по шине происходить не могут, они должны производиться по очереди. При этом общая шина становится «узким местом», которое ограничивает производительность системы. Поэтому все возрастающие требования к производительности микропроцессорных систем вызвали в последние годы переход к другой архитектуре - Гарвардской, с двумя системными шинами.
Гарвардская архитектура характеризуется физическим разделением памяти команд (т.е. программ) и памяти данных. Обмен процессора с каждым из двух типов памяти происходит по своей шине (рис. 2).
Рис. 2. Гарвардская архитектура МПС
Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением/записью данных при выполнении текущей команды производить выборку следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки и исполнения реализуется более высокая производительность, чем при использовании Принстонской архитектуры.
Недостатки Гарвардской архитектуры связаны с необходимостью использования большего числа шин, усложнения структуры процессора. Кроме того, существенный недостаток – это фиксированный объем памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходится применять память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой.
Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства МПС реализуются принципы Принстонской архитектуры.
Проще всего преимущества двухшинной архитектуры реализуются внутри одной микросхемы. В этом случае можно также существенно уменьшить влияние недостатков этой архитектуры. Поэтому Гарвардская архитектура получила преимущественное распространение в однокристальных МК, рабочая программа которых обычно хранится в отдельном ПЗУ. В МК программы обычно небольшие, но зато необходимо максимальное быстродействие при заданной тактовой частоте.
Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
Структура МПС является магистрально-модульной. В такой структуре имеется группа шин (магистраль), к которым подключаются различные модули, обменивающиеся между собой информацией по одним и тем же шинам поочередно. На рис.1 приведена структура типовой МПС с тремя шинами.
Рис.1. Типовая структура МПС
Главным модулем системы является процессор, который считывает и выполняет команды программы, организует обращение к памяти, в нужных случаях инициирует работу устройств ввода и вывода. Основой модуля служит микропроцессор. Кроме МП в процессоре обычно расположены генератор тактовых импульсов Г и буферы для сопряжения с магистралью МПС. Генератор обеспечивает тактирование МП. Микропроцессор обязательно имеет выводы трех шин: адреса, данных и управления. Эти шины служат для формирования системной шины (магистрали) МПС. Однако нагрузочная способность выводов микросхемы МП мала, поэтому для подключения МП к магистрали используются буферы, выполненные обычно на основе шинных формирователей.
Память МПС имеет две разновидности: постоянное запоминающее устройство (ПЗУ) и оперативное запоминающее устройство (ОЗУ). ПЗУ служит для хранения констант и неизменяемых программ. Оно является энергонезависимым и при выключении питания информацию не теряет. ОЗУ хранит оперативные данные (изменяемые программы, промежуточные результаты вычислений) и теряет свое содержимое вместе с отключением питания. Но ОЗУ в отличие от ПЗУ позволяет процессору записывать данные, а не только читать их в процессе работы МПС.
С программной точки зрения память МПС представляет собой набор регистров (ячеек памяти), обычно 8-разрядных, предназначенных для хранения информации в двоичной форме. Каждая ячейка имеет уникальный адрес, что обеспечивает возможность доступа к ней.
Внешние устройства (ВУ) подключаются к МПС с помощью устройств ввода/вывода, реализующих определенные протоколы параллельного или последовательного обмена. Такими ВУ могут быть клавиатура, монитор, внешние запоминающие устройства (магнитные и оптические диски), датчики и преобразователи информации (аналого-цифровые и цифро-аналоговые), разнообразные исполнительные устройства (индикаторы, принтеры, электродвигатели, реле и другие).
Устройства ввода/вывода в МПС чаще всего выполняются в виде портов ввода/вывода. Порты могут быть двунаправленными, т.е. работать поочередно на ввод или вывод данных. Но чаще порты выполняются однонаправленными, т.е. используются только для ввода или вывода данных.
С программной точки зрения порт ввода – это адрес устройства МПС, через которое из ВУ могут быть переданы данные на ШД. Соответственно порт вывода – это адрес устройства МПС, через которое данные с ШД передаются на ВУ.
Порты ввода/вывода могут передавать данные в параллельном формате, тогда их называют параллельными портами ввода/вывода. Некоторые порты для сопряжения с ВУ могут использовать последовательный формат передачи кода данных, тогда их называют последовательными портами.
Для реализации различных режимов работы к МПС могут подключаться дополнительные устройства: контроллеры прерываний, прямого доступа к памяти, таймеры и другие, выполняющие необходимые специальные функции управления.
Практически любая МПС (в том числе и компьютер) имеет три основных режима работы:
1) выполнение основной программы;
2) обслуживание прерываний;
3) прямой доступ к памяти.
Выполнение основной программы.В этом режиме процессор выбирает из памяти очередную команду программы и выполняет соответствующую операцию, читая данные из памяти или из УВВ, записывая данные в память или УВВ. В этом режиме процессор является единоличным ведущим (хозяином – Master) магистрали (системной шины) МПС. Все операции обмена информацией инициируются только процессором, все они выполняются строго в порядке, определяемом исполняемой программой.
Для хранения адреса очередной команды служит специальный регистр МП – счетчик команд или программный счетчик PC (Program Counter), содержимое которого автоматически увеличивается на 1 (инкрементируется) после выборки очередного байта команды. Таким способом обеспечивается последовательность выборки команд в процессе выполнения программы. При выборке очередной команды содержимое PC поступает на шину адреса, обеспечивая считывание из памяти следующей команды выполняемой программы. При реализации безусловных или условных переходов (ветвлений) или других изменений последовательности выполнения команд производится загрузка в PC нового содержимого, в результате чего происходит переход к другой ветви программы или подпрограмме.
Обращение к подпрограмме реализуется при поступлении в МП специальной команды вызова подпрограммы, которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC, обеспечивая выборку первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальной области ОЗУ текущего содержимого PC, где в этот момент хранится адрес следующей команды основной программы, чтобы обеспечить возвращение к ней после выполнения подпрограммы. Возврат в основную программу реализуется при поступлении команды возврата, завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в счетчик команд, обеспечивая выполнение команды, которая в основной программе следовала за командой вызова подпрограммы.
Для реализации процедуры вызова подпрограммы и возврата из нее используется стек (stack) – часть ОЗУ, предназначенная для временного хранения данных, и работающая по принципу LIFO (Last In-First Out – последним пришел, первым ушел).
Особенность стека – это заданный и неизменный способ адресации. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который входит в состав МП. При записи любого числа (кода) в стек число записывается по адресу, определяемому как содержимое регистра SP, предварительно уменьшенное на единицу (декрементированное), т.е. (SP) = (SP) – 1. При чтении из стека число читается из ячейки с адресом, определяемым содержимым указателя стека, после чего это содержимое увеличивается на единицу (инкрементируется), т.е. (SP) = (SP) + 1. В результате получается, что число, записываемое последним, будет прочитано первым, а число, записанное первым, будет прочитано последним.
Обслуживание прерываний. При работе МПС часто возникают ситуации, когда требуется прервать выполнение текущей программы и перейти к подпрограмме, обеспечивающей реакцию системы на создавшиеся обстоятельства. Прерывания можно разделить на программные, аппаратные и исключения.
Программные прерывания возникают при поступлении в МП соответствующих команд. Аппаратные прерывания активизируются при поступлении сигналов от внешних устройств. Исключениями являются ошибки, возникающие при работе МП.
Во всех этих ситуациях МП завершает выполнение очередной команды и заносит в стек текущее содержимое счетчика команд PC, которое является адресом возврата к прерванной программе после выполнения подпрограммы обслуживания, и содержимое регистра состояния PSW (EFLAGS). Затем в PC загружается из памяти вектор прерывания – начальный адрес соответствующей подпрограммы обслуживания, которая часто называется обработчиком прерывания. Эти вектора являются входами в подпрограммы обслуживания и хранятся в таблице векторов прерываний, которая записывается в памяти МПС. Завершается подпрограмма обслуживания специальной командой возврата из прерывания, которая извлекает из стека хранившееся содержимое PC и PSW (EFLAGS) и загружает его обратно в эти регистры, обеспечивая возвращение к выполнению прерванной программы.
Прямой доступ к памяти.Режим прямого доступа к памяти ПДП (англоязычный термин DMA – Direct Memory Access) используется, если необходимо произвести пересылку значительного объема информации между ОЗУ и каким-либо внешним устройством. Реализация такой пересылки с помощью соответствующей программы требует использования отдельной команды для пересылки каждого байта или слова и значительного времени на ее выполнение.
Для пересылки больших массивов информации в МПС используются специальные микросхемы – контроллеры ПДП, которые реализуют режим прямого доступа к памяти. При поступлении запроса от внешнего устройства контроллер выдает соответствующий сигнал микропроцессору. Получив этот сигнал, процессор завершает очередной цикл обмена по системной шине и отключается от нее, то есть переводит выходы своих буферов, присоединенных к шинам адреса, данных и управления в Z-состояние. При этом процессор выдает контроллеру ПДП сигнал разрешения на реализацию прямого доступа. Получив этот сигнал, контроллер принимает на себя управление системной шиной. Он выдает на шину адреса ячеек ОЗУ, с которыми выполняется текущий цикл обмена, формирует необходимые сигналы, определяющие режим работы ОЗУ (запись или чтение) и портов ввода и вывода, через которые производится пересылка информации (ввод или вывод). Предварительно контроллер ПДП программируется для выполнения указанных функций. В него вводятся начальные адреса массивов памяти в ОЗУ, с которых начинается процесс обмена, и размеры массивов, подлежащих пересылке.
Теоретически обмен с помощью прямого доступа к памяти может обеспечить более высокую скорость передачи информации, чем программный обмен, так как процессор передает данные медленнее, чем контроллер ПДП. Однако на практике это преимущество реализуется далеко не всегда. Скорость обмена в режиме ПДП обычно ограничена возможностями магистрали. Кроме того, необходимость программного задания режимов контроллера ПДП также уменьшает реальную скорость пересылки данных в режиме ПДП. Поэтому режим ПДП обычно применяется в системах, где часто необходимо пересылать очень большие объемы данных, например, в персональных компьютерах. В простых МПС режим ПДП применяется редко.