Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборка Часть1 / avmis_lec / МПС_Л6(Переходы)Одинец.doc
Скачиваний:
38
Добавлен:
15.09.2014
Размер:
120.83 Кб
Скачать

Цель лекции:

1.Рассмотреть принцип организации безусловного и условного перехода.

2. Изучить принцип организации обращения к подпрограммам

3.Привести примеры организации переходов и обращения к подпрограммам

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

5. Воспитывать у курсантов любовь к Родине – Республике Беларусь, к военной профессии. ответственность за своевременность и качество отработки материала в часы самостоятельной работы.

План лекции

Введение

1. Реализация безусловного и условного перехода

2. Организация обращения к подпрограммам

Заключение

Учебная литература:

1. Гурьянов А.В.. и др. Основы построения ЭВМ Мн. МВИЗРУ, С.75-115.

2. Колесниченко О.В., Шишигин И.В. Аппаратные средства РС. – 4-е изд., СПб.: БХВ-Петербург, 2001.-1024с.

Учебно-материальное обеспечение:

наглядные пособия: плакаты

демонстрации: слайды

технические средства обучения: лектор 2000; СВТ.

Введение

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

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

1. Реализация безусловного и условного перехода

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

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

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

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

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

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

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

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

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

Блок управления командами (БУК) состоит из регистра команд, схемы формирования адресов команд и схемы формирования адресов операн­дов. Структурная схема БУК представлена на рис.1.. Все преоб­разования над адресной информацией выполняются под воздейст­вием управляющих сигналов Y, поступающих от блока управле­ния операциями (БУО).

Рис.1. Структурная схема блока управления командами БУК

Построим операционные схемы (ОС) и микропрограммы (МП) реализации первого этапа выполнения команд при естественном и принудительном способе организации порядка следования команд в программе.

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

Ак+1к+1 (1),

где А к - адрес ячейки ЗУ, в которой размешена текущая коман­да;

Ак+1 адрес ячейки ЗУ, в которой размешена следующая команда.

При таком порядке формирования адресов команд адрес оче­редной команды может быть получен с помощью счетчика (счетчи­ка адресов команд - СТАК) или сумматора путем прибавления к его содержимому единицы.

Адрес первой команды программы (пусковой адрес) должен задаваться с пульта управления (ДУ) оператором либо формиро­ваться и заноситься на СТАК программой начальной загрузки.

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

Рис.2. Рис, 4.5. Операционная схеме формирования адресов команд при естественном порядке следования (а); операционная схема б) и микропрограмма в) формирования адресов и выборки команд

Далее при выполнении линейного участка программы блоки 2-4 микропрограммы (см.рис.2,в) повторяются при выборке каж­дой команды. Из микропрограммы следует, что формирование адре­са следующей команды производится одновременно о выборкой из ЗУ текущей команды (см. блок 4 МП), т.е. выполняется совмещение этапов исполнения различных команд и тем самым сокращается вре­мя счета программы.

В специализированных управляющих ЭВМ для хранения программ могут использоваться ЗУК или ПЗУ. В этом случае функции счет­чика адресов команд к регистра адреса ЗУ могут быть объединены.

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

Длина команды может оказаться как меньше, так и больше разрядности регистра слове ЗУ. Например, в ЭВМ используются команды длиной в 16,32,46 и больше разрядов, а разрядность регистра слова ЗУ - 32 разряда. В этом случае при реализации выборки команды необходимо при первом обращении считать содержимое ячейки ЗУ и разместить прочитанную информацию в левой части регистра команд. Затем анализируется длина читаемой команды (информация о длине содержится в поле кода операции) и при необходимости выполняется еще одно обращение к следующей ячей­ке ЗУ с другим измененным адресом и считывается вторая часть команды.

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

Ак+1= Ак+Lк (2),

где Lk - длина в байтах k -й команды.

Операционная схема и микропрограмма реализации этапа вы­борки команд длиной 2,4 и б байтов при разрядности регистра слова ЗУ в 4 байта представлены на рис.3,а,б.

Рис.3 Операционная схема (а) и микропрограмма (б) выборки команд переменной длины

В микропрограмме блоки 1-3 обеспечивают выборку из ЗУ команды, если ее длина составляет 2 или 4 байта, и выборку первой части команды, если ее длина б байтов. Блоки 7-10 обес­печивают выборку из ЗУ второй части команды длиной б байтов. В блоках 5,6,11 формируется адрес начала следующей по порядку команды.

Следует отметить, что при чтении команды длиной 2 байта в RGK выбирается ненужная информация (содержимое RGN с 17 по 32 разряды). Однако она не влияет на выполнение команды, так как длина команды, а следовательно, и порядок разбиения ее на доля определяется кодом операции.

Таким образом, рассмотрена организация процесса формирова­ния адресов команд и их выборки при естественном порядке их следования.

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

Ak+1=< RGK (адресная часть)>.

Указанным способом определяется адрес (k+1)-й команды для ЭВМ с одноадресным форматом команд. Для двух- и трехадреcных команд адрес перехода ( Аk+1) указывается в одном из полей адресной части, а остальные поля адресной части команды безусловного переходи обычно не используются.

Следует отметить, что после выполнения команды БП в про­грамме обычно следует линейный участок, поэтому адрес k+1 -й команды из адресной части к -й команды БП пересылается в регистр адреса ЗУ через счетчик адресов команд.

Операционная схема и микропрограмма выполнения команды безусловного перехода приведены на рис.4.

Рис.4. Операционная схема (а) и микропрограмма (б) выборки и выполнения команды "безусловный переход"

В микропрограмме блоки 1-3 соответствуют этапу выборки команды, а блох 4 - исполнению команды безусловного перехода. Отсюда следует, что у команды БП отсутствует стадия выборки операндов.

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

Например, условием перехода может быть равенство двух чи­сел , которое определяется путем выполнения их вы­читания. Тогда м= 1, если В1- B2= 0, и м= 0, если B1- B2 не равно 0. В зависимости от значения м вычислительный процесс бу­дет продолжаться по двум разным ветвям. Поэтому в команде УП должны быть каким-либо образом заданы адреса, определяющие начало каждой из ветвей. Дня одноадресной ЭВМ адрес первой коман­ды одной из ветвей может быть указан в адресной части команды УП, адрес же первой команды второй ветви определяется неявным образом как адрес следующей по порядку ячейки ЗУ, т.е.

Ак+1= Ак+Lк , если м=1

Ак+1= < RGK (адресная часть)>, если м=0

Из этого выражения следует, что операционная схема, реализующая выполнение команды условного перехода, представляет собой объединение схемы для реализации естественного порядка сле­дования команд и схемы реализации команды безусловного перехода. Граф микропрограммы исполнения команды условного перехода пред­ставлен на рис.5.

Блок 5 микропрограммы изображен в виде вершины "Предопре­деленный процесс", так как действие

<СТАК>:=<CTAK> + Lk

представляет собой относительно сложное преобразование и опреде­ляется форматами команд (например, блоки 4-6 рис.3,б).

Рис.5. микропрограмма выборки и выполнения команды "Условный переход"