Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Цифровая и микропроцессорная техника. Учебное пособие
.pdf
5.1. Типовая структура микропроцессорной системы
столько его структурой, сколько последовательностью управляющих слов (команд), поступающей из программной памяти.
Для комплексной характеристики возможностей микропро-
цессора пользуются понятием архитектуры.
Архитектурой микропроцессора называют комплекс его аппаратных и программных средств, предоставляемых пользователю. Архитектура отражает структуру микропроцессора, набор
программно-доступных элементов, систему команд и способы
адресации, объем и структуру адресуемой памяти, реакцию микропроцессора на внешние сигналы.
При описании архитектуры и функционирования микропроцессора обычно используют его представление в виде набора
программно-доступных элементов – регистров, образующих так
называемую программную модель микропроцессора. В этих регистрах содержатся обрабатываемые данные (операнды) и управляющая информация. Соответственно, в программную модель
входит группа регистров общего назначения, служащих для хранения операндов, и группа служебных регистров, обеспечивающих управление выполнением программы и режимами работы
микропроцессора. Регистры общего назначения образуют внутреннюю регистровую память микропроцессора.
При использовании подобной программной модели функционирование микропроцессора представляется в виде реализации
регистровых пересылок, т. е. процедур изменения состояния этих
регистров путем чтения или записи их содержимого. В результате таких пересылок обеспечивается адресация и выбор команд
и операндов, хранение и пересылка результатов, изменение последовательности команд и режимов функционирования микропроцессора в соответствии с поступлением нового содержимого
в служебные регистры, а так же все другие процедуры, реализующие процесс обработки информации.
С точки зрения системы команд и способов адресации операндов в современных микропроцессорах реализуется один из
двух принципов построения:
• CISC-архитектура, в которой реализуется так называемая
полная система команд;
• RISC-архитектура, в которой реализуется сокращенная си-
стема команд.
CISC-архитектура характеризуется большим набором разноформатных команд с использованием многочисленных способов
адресации. Это классическая архитектура процессоров, которая
101

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
начала свое развит ие в 1940 -х гг. с появлением первы х компьютеров. Основной целью ее было сокращение размера программ, что
уменьшало требования к объему оперативной памяти. Расширение спектра операций, реализуемых системой команд, позволяло
уменьшить размер программ, а также трудоемкость их написания
и отладки. Для CISC-микропроцессоров характерно:
• большое количество коман д, некоторые из которых выпол-
няют много функций;
• большое количество форматов команд различной разряд-
ности;
• большое количество методов адресации;
• широкое использование команд обработки типа «регистр–
пам ять»;
• сравнительно небольшое число регистров общего назначе-
ния (8–16).
Типичным примером CISC-процессоров являются микропроцессоры семейства Pentium фирмы Intel. Они выполняют более 200 команд разной степени сложности, которые имеют размер
от 1 до 15 байт и обеспечивают более 10 различных способов
адресации. Такое многообразие команд и способов адресации
позволяет программисту реализовать наиболее эффективные
алгоритмы решения различных задач. Однако при этом существенно усложняется структура микропроцессора, особенно его
устройства управления, что приводит к увеличению размеров и
стоимости кристалла, снижению производительности. В то же
время многие команды и способы адресации используют достаточ но редко. Кроме того, на личие в программе кома н д ра з л и ч ного формата приводит к нерегулярности потока команд и сильно
ограничивает эффективность их конвейерной обработки.
Эти недостатки обусловили необходимость разработки альтернативной архитектуры, нацеленной, прежде всего, на снижение нерегулярности потока команд и уменьшение их количества.
Первые RISC-микропроцессоры, разработанные в начале
1980-х гг., выполняли относительно небольшой набор команд
(50–10 0).
В настоящее время определились следующие характерные
особенности RISC-микропроцессоров:
• расширенный объем регистровой памяти: от 32 до не-
скольких сотен регистров общего назначения, входящих в состав
микропроцессора;
102

5.1. Типовая структура микропроцессорной системы
• использование в командах обработки данных только ре-
гистровой адресации (обращение к памяти используется в командах загрузки и сохранения содержимого регистров, а также в
командах передачи управления);
• отказ от аппаратной реализации сложных способов адре-
сации;
• фиксированный формат команд (обычно 4 байта);
• исключение из набора команд, реализующих редко ис-
пользуемые операции, а также команд, не вписывающихся в принятый формат.
Использование регистровой адресации значительно повышает производительность микропроцессора. Фиксированный
формат команд, отказ от сложных и редко используемых команд и способов адресации существенно упрощает устройство
управления, сокращает объем его микропрограммной памяти,
что позволяет уменьшить размер кристалла RISC-процессоров,
снизить их стоимость и повысить тактовую частоту. Использование фиксированного формата команд обеспечивает также
более эффективную работу конвейера микропроцессора, уменьшает число тактов простоя и ожидания, что дает дополнительный рост производительности. Поэтому RISC-процессоры в
2–4 раза производительнее CISC-процессоров, имеющих ту же
тактовую частоту, несмотря на несколько больший (примерно
на 30 %) объем программ.
Важной архитектурной особенностью микропроцессоров является используемый вариант реализации памяти и организация
выборки команд и данных. По этим признакам различают процессоры с принстонской и гарвардской архитектурами. Эти архитектурные варианты были предложены в конце 1940-х гг. специалистами соответственно Принстонского и Гарвардского университетов (США) для разрабатываемых ими моделей компьютеров.
Принстонская архитектура (рис. 5.2), которую часто называют архитектурой фон Неймана, характеризуется общей оперативной памятью для хранения программ и данных. Для обращения
к этой памяти используется общая системная шина, по которой
в процессор поступают команды и данные.
Принстонская архитектура имеет ряд достоинств. Наличие
общей памяти позволяет оперативно перераспределять ее объем для хранения отдельных массивов команд и данных в зави-
103

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
симости от решаемых задач. Обеспечивается возможность более
эффективного использования имеющегося объема оперативной
памяти в каждом конкретном случае применения микропроцессора. Например, в некоторых случаях нужна большая и сложная
программа, а данных в памяти надо хранить не слишком много. В других случаях, наоборот, программа требуется простая,
но необходимы большие объемы хранимых данных (например,
в системах сбора данных от многих объектов). Перераспределение памяти не вызывает никаких проблем, главное – чтобы программа и данные вместе помещались в памяти. Как правило, в
системах с такой архитектурой память бывает довольно большого
объема (до сотен мегабайт). Это позволяет решать самые сложные задачи. Использование общей шины для передачи команд и
данных значительно упрощает отладку, тестирование и текущий
контроль функционирования системы, повышает ее надежность.
Поэтому принстонская архитектура в течение долгого времени
доминировала в вычислительной технике.
Память
Процессор
Команды Данные
Общая шина команд и данных
Рис. 5.2. Принстонская архитектура микропроцессорной системы
Устройства
ввода
(вывода)
Принстонской архитектуре присущи и существенные недостатки. При единственной шине команд и данных процессор
вынужден по одной этой шине принимать данные (из памяти
или устройств ввода (вывода)) и передавать данные (в память или
устройства ввода (вывода)), а также читать команды из памяти.
Естественно, одновременно эти пересылки кодов по шине происходить не могут, они должны производиться по очереди. При
этом общая шина становится «узким местом», которое ограничивает производительность системы. Поэтому все возрастающие
104

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

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

5.1. Типовая структура микропроцессорной системы
Шина
Шина
Шина
адреса
к памяти
Контроллер
управления
данных
Устройства
ввода (вывода)
прямого доступа
Порты
вывода
К внешним
Запросы
внешних
устройств
ввода
Порты
устройствам
Контроллер
прерываний
Память
ПЗУ
Рис. 5.4. Типовая структура микропроцессорной системы
Буферы
ОЗУ
цессоры
Процессор
Микропро-
Гене-
ратор
107

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
Память микропроцессорной системы имеет две разновидности:
• постоянное запоминающее устройство (ПЗУ);
• оперативное запоминающее устройство (ОЗУ).
ПЗУ служит для хранения констант и неизменяемых программ, является энергонезависимым и при выключении питания
информацию не теряет. ОЗУ хранит оперативные данные (изменяемые программы, промежуточные результаты вычислений) и
теряет свое содержимое вместе с отключением питания. ОЗУ, в
отличие от ПЗУ, позволяет процессору записывать данные, а не
только читать их в процессе работы микропроцессорной системы.
С программной точки зрения память микропроцессорной
системы представляет собой набор регистров (ячеек памяти),
обычно 8-разрядных, предназначенных для хранения информации в двоичной форме. Каждая ячейка имеет уникальный адрес,
что обеспечивает возможность доступа к ней.
Внешние устройства подключаются к микропроцессорной
системе с помощью устройств ввода (вывода), реализующих определенные протоколы параллельного или последовательного обмена. Такими внешними устройствами могут быть клавиатура,
монитор, внешние запоминающие устройства (магнитные и оптические диски), датчики и преобразователи информации (аналого-цифровые и цифро-аналоговые), исполнительные устройства (индикаторы, принтеры, электродвигатели, реле и др.).
Устройства ввода (вывода) в микропроцессорной системе
чаще всего выполняют в виде портов ввода (вывода). Порты могут быть двунаправленными, т. е. работать поочередно на ввод
или вывод данных. Чаще порты выполняют однонаправленными, т. е. используют только для ввода или вывода данных.
С программной точки зрения порт ввода – это адрес устройства микропроцессорной системы, через которое из внешнего
устройства могут быть переданы данные на шину данных. Соответственно порт вывода – это адрес устройства микропроцессорной системы, через которое данные с шины данных передаются
на внешнее устройство.
Порты ввода (вывода) могут передавать данные в параллельном формате, тогда их называют параллельными портами ввода
(вывода). Некоторые порты для сопряжения с внешними устройствами могут использовать последовательный формат передачи
кода данных, тогда их называют последовательными портами.
108

5.1. Типовая структура микропроцессорной системы
Для реализации различных режимов работы к микропроцессорной системе могут подключаться дополнительные устройства
(контроллеры прерываний и прямого доступа к памяти, таймеры
и др.), выполняющие специальные функции управления.
Практически любая микропроцессорная система (в том числе и компьютер) имеет три основных режима работы:
• выполнение основной программы;
• обслуживание прерываний;
• прямой доступ к памяти.
Выполнение основной программы. В этом режиме процес-
сор выбирает из памяти очередную команду программы и выполняет соответствующую операцию, читая данные из памяти
или устройств ввода (вывода), записывая данные в память или
устройства ввода (вывода). В этом режиме процессор является
единоличным «хозяином» (задатчиком) магистрали (системной
шины) микропроцессорной системы. Все операции обмена информацией инициируются только процессором и выполняются
строго в порядке, определяемом исполняемой программой.
Для хранения адреса очередной команды служит специальный регистр микропроцессора – счетчик команд, или программный счетчик PC (Program Counter), содержимое которого
автоматически увеличивается на 1 (инкрементируется) после выборки очередного байта команды. Таким способом обеспечивается последовательность выборки команд в процессе выполнения
программы. При выборке очередной команды содержимое PC
поступает на шину адреса, обеспечивая считывание из памяти
следующей команды выполняемой программы. При реализации
безусловных или условных переходов (ветвлений) или других изменений последовательности выполнения команд производится
загрузка в PC нового содержимого, в результате чего происходит
переход к другой ветви программы или подпрограмме.
Обращение к подпрограмме реализуется при поступлении
в микропроцессор специальной команды вызова подпрограммы, которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC, обеспечивая выборку
первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальной области ОЗУ текущего
содержимого PC, где в этот момент хранится адрес следующей
команды основной программы, чтобы обеспечить возвращение
109

Глава 5. Основы архитектуры микропроцессоров и микропроцессорных систем
к ней после выполнения подпрограммы. Возврат в основную
программу реализуется при поступлении команды возврата, завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в счетчик команд, обеспечивая
выполнение команды, которая в основной программе следовала
за командой вызова подпрограммы.
Для реализации процедуры вызова подпрограммы и возврата
из нее используется стек (stack) – часть ОЗУ, предназначенная
для временного хранения данных и работающая по принципу
LIFO (Last-in First-out – последним пришел, первым ушел).
Особенность стека – это заданный и неизменный способ
адресации. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer),
который входит в состав микропроцессора. Любое число (код)
записывается в стек по адресу, определяемому как содержимое
регистра SP, предварительно уменьшенное на единицу (декрементированное), т. е. (SP) = (SP) – 1. Читается число из стека из
ячейки с адресом, определяемым содержимым указателя стека,
после чего это содержимое увеличивается на единицу (инкрементируется), т. е. (SP) = (SP) + 1. В результате получается, что
число, записываемое последним, будет прочитано первым, а число, записанное первым, – последним.
Обслуживание прерываний. При работе микропроцессорной
системы часто возникают ситуации, когда требуется прервать выполнение текущей программы и перейти к подпрограмме, обеспечивающей реакцию системы на создавшиеся обстоятельства.
Прерывания можно разделить на программные, аппаратные и
исключения.
Программные прерывания возникают при поступлении в
микропроцессор соответствующих команд. Аппаратные прерывания активизируются при поступлении сигналов от внешних
устройств. Исключениями являются ошибки, возникающие при
работе микропроцессора.
Во всех этих ситуациях микропроцессор завершает выполнение очередной команды и заносит в стек текущее содержимое
счетчика команд PC, которое является адресом возврата к прерванной программе после выполнения подпрограммы обслуживания, и содержимое регистра состояния PSW (EFLAGS). Затем в
PC загружается из памяти вектор прерывания – начальный адрес
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
