Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Команда безусловного перехода jmp

Читайте также:
  1. R закон перехода количественных изменений в качественные
  2. Актуальность перехода России на энергосберегающий тип развития экономики.
  3. Бил8. Воп.1.Психолого-педагогические проблемы перехода младших школьников в среднюю школу: диагностика, развивающая работа
  4. В активном режиме в переходах биполярного транзистора происходят процессы
  5. В период перехода к рыночной экономике
  6. Вопрос 22. Закон взаимного перехода количественных и качественных изменений. Особенности его проявления в природе, обществе и познании.
  7. Вопрос 43. СССР в условиях перехода от войны к миру. 1945-1953гг.
  8. Высота перехода. Высота принятия решения (ВПР)
  9. Г) Молодежное движение «Сила Молодых Европа»— это команда молодых ребят и девушек, которые активно и с пользой проводят время.
  10. Г) случаи (и характер) перехода прилагательных в состав других частей речи.

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

В настоящее время примерно одинаковое распространение получили два способа построения вычислительных машин: с непосредственными связями и на основе шины.

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

В варианте с общей шиной все устройства вычислительной машины подключе­ны к магистральной шине, служащей единственным трактом для потоков команд, данных и управления. Наличие общей шины существенно упрощает реа­лизацию ВМ, позволяет легко менять состав и конфигурацию машины. Благодаря этим свойствам шинная архитектура получила широкое распространение в мини-и микроЭВМ. Вместе с тем, именно с шиной связан и основной недостаток архи­тектуры: в каждый момент передавать информацию по шине может только одно устройство. Основную нагрузку на шину создают обмены между процессором и памятью, связанные с извлечением из памяти команд и данных и записью в па­мять результатов вычислений. На операции ввода/вывода остается лишь часть пропускной способности шины. Практика показывает, что даже при достаточно быстрой шине для 90% приложений этих остаточных ресурсов обычно не хватает, особенно в случае ввода или вывода больших массивов данных.

В целом следует признать, что при сохранении фон-неймановской концепции последовательного выполнения команд программы шинная архитектура в чистом ее виде оказывается недостаточно эффективной. Более распространена архитек­тура с иерархией шин, где помимо магистральной шины имеется еще несколько дополнительных шин. Они могут обеспечивать непосредственную связь между устройствами с наиболее интенсивным обменом, например процессором и кэш­-памятью. Другой вариант использования дополнительных шин — объединение однотипных устройств ввода/вывода с последующим выходом с дополнительной шины на магистральную. Все эти меры позволяют снизить нагрузку на общую шину и более эффективно расходовать ее пропускную способность.

а принципиально разных класса компьютеров – с общей и c распределенной памятью – отражают две основные задачи параллельных вычислений.

(1) Построение вычислительных систем с максимальной производительностью. Это легко на основе концепции распределенной памяти. Уже сейчас установки с тысячами вычислительных узлов, Интернет тоже можно рассматривать как супер - (или даже мета-) компьютер с распределенной памятью, объединяющий миллионы серверов. Но как такие системы эффективно использовать? Как убрать большие накладные расходы на взаимодействие процессоров? Отсюда à

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

На общее время выполнения задачи влияет много факторов, но главные:

(1) время выполнения арифметических операций и

(2) время взаимодействия с памятью.

Поэтому организация памяти играет важную роль. Главное требование к памяти – обеспечение быстрого доступа к отдельным словам.

Иерархия памяти -неотъемлемая часть архитектуры всех современных ЭВМ. Прямого отношения к параллелизму не имеет, однако, безусловно, относится к тем особенностям архитектуры компьютеров, которые имеют огромное значение для повышения их производительности (сглаживание разницы между скоростью работы процессора и временем выборки из памяти). Основные уровни памяти: регистры, кэш-память, оперативная память, дисковая память. Время выборки по уровням памяти от дисковой памяти к регистрам уменьшается, стоимость в пересчете на 1 слово (байт) растет.

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

Быстрая память – время доступа существенно меньше времени выполнения операций.

Медленная – вся остальная.

Адресуемая память – большая часть памяти, можно считывать и записывать информацию – это оперативная память (ОП).

Неадресуемая – недоступна пользователям. Постоянная и сверхбыстрая.

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

Сверхбыстрая – существенно меньшее время доступа по сравнению с оперативной. Она тоже часто имеет два уровня.

Самый быстрый – регистры. Небольшой объем (единицы или десятки слов). Неотъемлемая часть АЛУ. Хранятся результаты выполнения операций, которые нужны для реализации команд, непосредственно следующих за исполняемыми.

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

При компиляции программ, на стадии перевода в машинный код, продвинутый компилятор стремится выстроить команды таким образом, чтобы эффект от сверхбыстрой памяти был максимальным (оптимизация). Но это далеко не всегда удается и\или удается. Зависит от особенностей технической реализации иерархии памяти на конкретных ЭВМ.

 

Организация шин ВМ, типы шин, их предназначение и характеристика, иерархия шин, арбитраж шин, схемы приоритетов и схемы арбитража. Четырехадресный, трехадресный и двухадресный формат команды.

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

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

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

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

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

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

В схеме равных приоритетов при поступлении к арбитру нескольких запросов каждый из них имеет равные шансы на обслуживание. Возможный конфликт раз­решается арбитром. Такая схема принята в асинхронных системах.

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

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

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

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

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

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

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

Второй вид централизованного арбитража известен как централизованный по­следовательный арбитраж. В последовательных схемах для выделения запроса с наивысшим приоритетом используется один из сигналов, поочередно проходя­щий через цепочку ведущих, чем и объясняется другое название – цепочечный (или гирляндный) арбитраж. Цепочечная реализация предполагает статическое распределение приоритетов. Наивысший приоритет имеет ближайшее к арбитру ведущее устройство. Далее приоритеты ведущих в цепочке последовательно понижаются. Основное достоинство цепочечного арбитража заключается в простоте реали­зации и в малом количестве используемых линий. Последовательные схемы ар­битража позволяют легко наращивать число устройств, подключаемых к шине. Однако такой схеме присущи и существенные недостатки. Прежде всего, после­довательное прохождение сигнала по цепочке замедляет арбитраж, причем время арбитража растет пропорционально длине цепочки. Статическое распределение приоритетов может привести к полному блокированию устройств с низким уров­нем приоритета (расположенных в конце цепочки). Наконец, как и параллельный вариант, централизованный последовательный арбитраж не очень удобен в плане диагностики работы шины.

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

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

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

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

 

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

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

Следует отметить неоднозначность термина "операнд" применительно к программам, написанным на языке ассемблера. Для машинной команды операндами являются те данные (в сущности, двоичные числа), с которыми она имеет дело. Эти данные могут, как уже отмечалось, находиться в регистрах или в памяти. Если же рассматривать команду языка ассемблера, то для нее операндами (или, лучше сказать, параметрами) являются те обозначения, которые позволяют сначала транслятору, а потом процессору определить местонахождение операндов машинной команды. Так, для команды ассемблера

mov mem, AX

в качестве операндов используется обозначение ячейки памяти mem, a также обозначение регистра АХ. В то же время, для соответствующей машинной команды операндами являются содержимое ячейки памяти и содержимое регистра. Было бы правильнее говорить об операндах машинных команд и о параметрах, или аргументах команд языка ассемблера.

По отношению к командам ассемблера было бы правильнее использовать термин "параметры", оставив за термином "операнд" обозначение тех физических объектов, с которыми имеет дело процессор при выполнении машинной команды, однако обычно эти тонкости не принимают в расчет, и говоря об операндах команд языка, понимают в действительности операнды машинных команд.

В архитектуре современных 32-разрядных процессоров Intel предусмотрены довольно изощренные способы адресации; в МП 86 способов адресации меньше

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

inc СН;Плюс 1 к содержимому СН

push DS;DS сохраняется в стеке

xchg ВХ,ВР;ВХ и ВР обмениваются содержимым

mov ES, АХ;Содержимое АХ пересылается в ES

Непосредственная адресация. Операнд (байт или слово) указывается в команде и после трансляции поступает в код команды; он может иметь любой смысл (число, адрес, код ASCII), а также быть представлен в виде символического обозначения.

mov АН, 40h;Число 40h загружается в АН

mov AL,'*';Код ASCII символа "*' загружается в AL

int 21h;Команда прерывания с аргументом 21h

limit = 528;Число 528 получает обозначение limit

mov CX,limit;Число, обозначенное limit, загружается в СХ

Важным применением непосредственной адресации является пересылка относительных адресов (смещений). Чтобы указать, что речь идет об относительном адресе данной ячейки, а не об ее содержимом, используется описатель onset (смещение):

Прямая адресация памяти. Адресуется память; адрес ячейки памяти (слова или байта) указывается в команде (обычно в символической форме) и поступает в код команды:

;Сегмент данных

meml dw 0;Слово памяти содержит 0

mem2 db 230;Байт памяти содержит 230

;Сегмент команд

inc meml;Содержимое слова meml увеличивается на 1

mov DX, meml; Содержимое слова с именем menu загружается в DX

mov AL,mem2; Содержимое байта с именем mem2 загружается в АL

Сравнивая этот пример с предыдущим, мы видим, что указание в команде имени ячейки памяти обозначает, что операндом является содержимое этой ячейки; указание имени ячейки с описателем offset - что операндом является адрес ячейки.

Прямая адресация памяти на первой взгляд кажется простой и наглядной. Если мы хотим обратиться, например, к ячейке meml, мы просто указываем ее имя в программе. В действительности, однако, дело обстоит сложнее. Вспомним, что адрес любой ячейки состоит из двух компонентов: сегментного адреса и смещения. Обозначения meml и mem2 в предыдущем примере, очевидно, являются смещениями. Сегментные же адреса хранятся в сегментных регистрах. Однако сегментных регистров четыре: DS, ES, CS и SS. Каким образом процессор узнает, из какого регистра взять сегментный адрес, и как сообщить ему об этом в программе?

Процессор различает группу кодов, носящих название префиксов. Имеется несколько групп префиксов: повторения, размера адреса, размера операнда, замены сегмента. Здесь нас будут интересовать префиксы замены сегмента.

Команды процессора, обращающиеся к памяти, могут в качестве первого байта своего кода содержать префикс замены сегмента, с помощью которого процессор определяет, из какого сегментного регистра взять сегментный адрес. Для сегментного регистра ES код префикса составляет 26h, для SS - 361i, для CS - 2Eh. Если префикс отсутствует, сегментный адрес берется из регистра DS (хотя для него тоже предусмотрен свой префикс).

Регистровая косвенная(базовая и индексная). Адресуется память (байт или слово). Относительный адрес ячейки памяти находится в регистре, обозначение которого заключается в прямые скобки. В МП 86 косвенная адресация допустима только через регистры ВХ, ВР, SI и DI. При использовании регистров ВХ или ВР адресацию называют базовой, при использовании регистров SI или DI - индексной.

Если косвенная адресация осуществляется через один из регистров ВХ, SI или DI, то подразумевается сегмент, адресуемый через DS, поэтому при адресации через этот регистр обозначение DS: можно опустить:

mov AX,0B800h;Сегментный адрес

mov DS,AX;видеобуфера в DS

mov BX,2000;Смещение к середине экрана

mov byte ptr [ВХ], '! ';Символ на экран

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

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

Регистровая косвенная адресация со смещением (базовая и индексная). Адресуется память (байт или слово). Относительный адрес операнда определяется, как сумма содержимого регистра BX, BP, SI или DI и указанной в команде константы, иногда называемой смещением. Смещение может быть числом или адресом. Так же, как и в случае базовой адресации, при использовании регистров BX, SI и DI подразумевается сегмент, адресуемый через DS, а при использовании ВР подразумевается сегмент стека и, соответственно, регистр SS.

 

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

Безусловные переходы

Предыдущее обсуждение выявило некоторые детали механизма перехода. Команды перехода модифицируют регистр указателя команды eip/ip и, возможно, сегментный регистр кода cs. Что именно должно подвергнуться модификации, зависит:

Модификатор может принимать следующие значения:

Команда безусловного перехода jmp

Синтаксис команды безусловного перехода

jmp [модификатор] адрес_перехода - безусловный переход без сохранения информации о точке возврата.

Адрес_перехода представляет собой адрес в виде метки либо адрес области памяти, в которой находится указатель перехода.

Всего в системе команд микропроцессора есть несколько кодов машинных команд безусловного перехода jmp.

Их различия определяются дальностью перехода и способом задания целевого адреса.

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

Внутрисегментный переход предполагает, что изменяется только содержимое регистра eip/ip.

Можно выделить три варианта внутрисегментного использования команды jmp:




Дата добавления: 2015-02-16; просмотров: 32 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.016 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав