Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТМПСК лекции.doc
Скачиваний:
13
Добавлен:
31.08.2019
Размер:
632.32 Кб
Скачать

Глава 2 микропроцессоры

ЦЕЛЬ – дать общие принципы построения микропроцессоров и микропроцессорных систем.

2.1 Типовая структура микропроцессора

ЦЕЛЬ – дать типовую структуру микропроцессора.

Первый микропроцессор был создан в 1971 году по идее Т. Хоффа (фирма Intel) для калькулятора. Сейчас микропроцессоры имеют сложную многофункциональную структуру, однако фон неймановский принцип работы остался тем же.

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

имп

синхр

Шина Шина Шина

управления данных адреса

рис.2.1.1 Типовая структура микропроцессора

Так как МП реализует ЦПр фон – неймановской структуры, то его обязательными элементами являются УУ и АЛУ. Для связи с другими компонентами МП имеет 3 шины (управления, данных, адреса). Все действия в МП инициируются импульсами

синхронизации (на рис.2.1.1 “имп. синхр”), которые позволяют использовать единый стандарт времени для всех элементов в МП. С помощью такого стандарта решается проблема синхронизации взаимодействия элементов. Импульсы задаются с помощью генератора тактовых импульсов (на рис.2.1.1 не показан).

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

  1. ЦПр выдает адрес следующей команды на шину адреса (А15 – А0).

  2. Команда, т.е. содержимое ячейки памяти по выдаваемому адресу, появляется на шине данных (D7 – D0).

  3. ЦПр считывает команду с шины данных в регистр команд, анализирует ее и выполняет.

Элементы схемы на рис.2.1.1 выполняют следующие функции.

Программный счётчик (СчК). Его содержимое помещается на шину адреса для выборки следующей команды из памяти (ЗУ) (память на рис.2.1.1 не показана).

Регистр команд (РК). В него помещается выбранная из ЗУ команда.

Устройство управления (УУ) дешифрирует команду из РК и инициирует в МП действия, необходимые для ее выполнения. (Для упрощения схемы на рис.2.1.1 связь УУ со всеми компонентами не показана).

Рабочие регистры (РР) содержат данные, обрабатываемые командами. Почему появились РР? Неужели нельзя было эти данные, обрабатываемые командами, сразу поместить в ЗУ? Появление РР связано с решением проблемы увеличения скорости работы ЦПр, и, как следствие, времени работы программ. Увеличение скорости зависит от аппаратных средств реализации. Особенно это сказывалось на начальном этапе развития. Электронные схемы, на которых строилось АЛУ, давали высокое быстродействие, но были дороги. Магнитные элементы, на которых тогда строилось ЗУ, имели более низкую скорость, но были дешевле. Их сравнительная дешевизна позволяла увеличивать объемы ЗУ. Компромисс между скоростью и стоимостью был найден в том, что часть памяти, реализовывалась на электронных схемах в виде регистров (РР) и ставилась в ЦПр. Размещение их в ЦПР еще больше увеличивало скорость работы (Подумайте, почему?). В свою очередь, чем бо’льшая часть программы реализуется командами, работающими с регистрами (команды «регистр – регистр»), тем более увеличивается скорость работы программы. В качестве эквивалента названия «рабочие регистры» часто используются названия: регистры, сверхоперативное ЗУ (СОЗУ) (см. разд 2.2). Количество регистров (как правило – 16) было подобрано экспериментально, анализом десятков тысяч программ. Было установлено, что любая задача, в принципе, может быть разложена на достаточно независимые фрагменты с точки зрения пересылок информации, для которых в среднем было достаточно 16-ти ячеек памяти. Вот их то и превратили в регистры.

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

Арифметико – логическое устройство (АЛУ) реализует все операции ЦПр, заданные командами, которые могут быть арифметического, логического типа или управления.

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

регистра состояния при значении «1» обозначает, что в АЛУ после реализации арифметической операции получен нулевой результат, то проверка этого разряда после выполнения операции, позволит определить наличие нулевого результата, а не выбирать результат и затем сравнивать его с 0.

Длина слова ЦПр определяется числом бит, которые обрабатываются операциями АЛУ. Например, 16-ти битные ЦПр выполняют операции над 16-ти битными числами. МП могут быть 8. 16, 32 - разрядные.

Команды. Двоичные команды, с которыми работает АЛУ, называются машинными командами. Они находятся в ЗУ и каждая из них имеет двоичные поля, содержащие:

♦ код выполняемой команды (что делать?);

♦ указания по определению операндов или их адресов (над чем делать?);

♦ указания по размещению получаемого результата (куда поместить результат операции);

♦ для команд перехода указания по определению адреса перехода к следующей команде. Для остальных команд инициируется переход к следующей команде.

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

Пример выполнения команд, различных по количеству тактов.

КОМАНДА 1 – прибавить рабочий регистр В к рабочему регистру А (аккумулятор).

Такт 1 – выборка команды в ЦПр из ЗУ.

Такт 2 – выполнение команды (прибавление содержимого регистра В к рабочему регистру А (аккумулятор)).

КОМАНДА 2 – загрузить регистр А из ЗУ.

Такт 1 – выборка команды в ЦПр из ЗУ.

Такт 2 – выполнение действия 2 (считать из поля команды первую половину адреса памяти).

Такт 3 – выполнение действия 2 (считать из поля команды вторую половину адреса памяти).

Такт 4 – выполнение действия 3 (считать в регистр А байт данных по сформированному адресу памяти).

Таким образом, 2-я команда выполняется в 2 раза дольше, чем 1-я. Приведенный пример показывает, что длина команд – величина переменная. Если в первом примере команда занимает 1 байт, то во втором – 3 байта (второй и третий байты содержат 16-битный адрес памяти, по которому хранится нужное значение данных).

Недостаток фон – неймановской машины. На примере потактового выполнения команд рассмотрим принципиальный скоростной недостаток фон – неймановской машины. Наличие одного ЗУ в нем не позволяет осуществить параллельную выборку команд и данных. Так, например, в примере команда 2 на такте 4 можно было бы уже выбрать из ЗУ следующую команду программы (подумайте, почему уже можно?) и тем самым ускорить работу ЦПр, но это невозможно из – за того, что ЗУ участвует в выполнении этого такта. Этот недостаток устранен в гарвардской схеме (разд.1.4), где имеются два ЗУ для данных и команд. В этом случае в такте 4 можно организовать параллельную выборку данных для текущей команды и выборку следующей команды.

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

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

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

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

команды пересылки данных, например, между регистром ЦПр и другим регистром ЦПр, ячейкой памяти или каналом ввода – вывода.

дополнительные команды, например, прекращение выполнения программы (команда останов).

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

прямая регистровая адресация, когда значение данных находится в регистре ЦПр, а номер этого регистра указывается в одном из полей команды.

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

непосредственная адресация, когда значение данных находится в самой команде.

косвенная регистровая адресация, когда значение данных находится в ячейке памяти, адрес этой ячейки занесен в один из регистров ЦПр, номер которого указан в одном из полей команды (т.е. в команде адрес указан не явно, а косвенно через регистр).

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

МП с точки зрения программиста. Любая сфера деятельности человека основана:

♦ на каких – то исходных компонентах («кубиках»);

♦ правилах их компоновки для получения заданного результата.

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

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

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

● множества ячеек ЗУ, в которых находятся данные и программы;

● ограниченное число программно – доступных регистров (а где они находятся?). Эти регистры имеют имена, применяемые в командах и их содержимое, также как и ячеек памяти, может быть прочитано, изменено по желанию программиста.

● команд, из которых строятся программы.

Причиной интенсивного развития техники МП является то, что МП позволили революционным путем (а не эволюционным, как ранее) решить две задачи:

♦ резко увеличить скорости обработки информации и объемы памяти в вычислительных машинах;

♦ столь же резко уменьшить размеры вычислительных машин, их стоимость и энергопотребление.

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