Цель лекции:
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. микропрограмма выборки и выполнения команды "Условный переход"