русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-09-15; просмотров: 3076; Нарушение авторских прав


В зависимости от выполняемых функций команды подразделяются на восемь групп:

1) арифметические команды для работы с числами с фиксированной точкой;

2) арифметические команды для работы с числами с плавающей точкой;

3) арифметические команды для работы с деся­тичными числами;

4) логические команды для работы с алфавитно-цифровыми кодами;

5) команды пересылки (передачи) информации;

6) команды управления вводом-выводом;

7) команды перехода (передачи управления);

8) команды управления режимами работы процес­сора и ЭВМ.

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

Существуют различные варианты адресации опе­рандов командами, в зависимости от которых разли­чают одно-, двух-, трех-, четырехадресные, а также безадресные команды, форматы которых показаны на рис. 6.1.

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

Двухадресная команда содержит код операции и адреса двух операндов - А1-и А2. Боль­шинство команд двухадресные (рис. 5.6,6).

Трехадресная команда содержит код операции, адреса двух операндов - А1 и А2, а также адрес A3, по которому записывается результат выпол­нения операции (рис. 5.6,в).

Четырехадресная команда содержит код операции, адреса двух операндов - А1 и А2, адрес результата A3 и адрес следующей команды А4, подлежащей выполнению, В современных ЭВМ этот вид команд не применяется (рис. 5.6, г).



Безадресная команда содержит только код операции, который подразумевает всю недостаю­щую информацию (рис. 5.6, д).

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

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

Рис. 5.1. Форматы команд Рис. 5.2. Пример базирова­ния адреса

 

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

1. Непосредственная адресация. В команде содер­жится непосредственно операнд и при этом не требу­ется выделения ячейки памяти или регистра для его хранения. Это способ оказывается удобным для орга­низации вычислений с применением различных кон­стант.

2. Прямая адресация. Адрес операнда в явном виде задан в соответствующем поле команды и совпа­дает с исполнительным адресом.

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

На рис. 2 показан пример базирования адреса. Базирование позволяет облегчить распределение памя­ти при составлении одной программы несколькими программистами, так как позволяет воспользоваться единой точкой отсчета.

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

5. Укороченная адресация. Суть ее заключается в использовании только младших разрядов адреса (при этом старшие разряды заранее подразумеваются нуле­выми). Этот вид адресации используется лишь для фиксированных ячеек памяти с короткими (малыми) адресами.

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

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

8. Автоинкрементная и автодекрементная адреса­ции. По сути, оба способа адресации являются регистровой косвенной адресацией и основаны на хранении в регистре косвенного адреса. Если произ­водится приращение к адресу, хранящемуся в реги­стре, то имеет место автоинкрементная адресация; если производится уменьшение этого адреса, то имеет место автодекрементная адресация. Данные способы адресации являются эффективными лишь при адреса­ции больших массивов данных, так как требуют дополнительных временных затрат на загрузку косвен­ного адреса в регистр.

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

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

Рис. 5.7. Пример базирова­ния и индексирования адреса

 

10. Индексная адресация. При обработке, массивов однотипных данных часто возникают цикличности вы­полнения одних и тех же программ или фрагментов программ, что приводит к необходимости организаций обработки одними и теми же командами различных операндов. Механизм индексирования служит для модификации адресных частей команд (адресов опе­рандов). По сути, индексная адресация является развитием базирования и применяется обычно в ком­бинации с ним.

Для одновременного использования базирования и индексирования обычно выделяют два РОН в составе МП процессора. Принято обозначать базовый регистр буквой В, а индексный - X; хранящиеся в них адре­са - соответственно (В) и (X). На рис. 5.7 показан пример использования базирования и индексирования. Индекс, база и смещение одновременно поступают на сумматор, на котором производится сложение по правилу (В) + (X) + D = А, и таким образом полу­чается исполнительный адрес.

Операнд – элемент данных, над которым выполняется операция. Операнд команды – операнд операции, которая выполняется при интерпретации команды. Операндами являются исходные данные и результаты операции.

Рассмотренные основные способы адресации, при­меняемые в ЭВМ, тесно связаны с форматами машин­ных команд.

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

Например, некоторые форматы команд:

1. Формат RR - «регистр - регистр». Команда занимает 2 байт. Предполагается, что в этом формате операнды находятся в регистрах местной памяти R1 и R2. Результат записывается в R1, при этом значение R2 не изменяется. В командах условного перехода вместо адреса операнда А1 используется поле маски М (маска - условие выполнения перехо­да), а в поле R2 указывается регистр R, содержащий адрес условного перехода.

2. Формат RX - «регистр - индексируемая ячей­ка» Команда занимает 4 байт. Адрес операнда А1 хра­нится в регистре R1, а адрес операнда А2 опреде­ляется содержимым индексного Х2 и базового В2 ре­гистров, а также смещением D2 и вычисляется как А2= =(Х2)+(В2)+D2. Смещение D позволяет про­изводить адресацию относительно базового адреса лишь 4096 байт, так как поле смещения

Рис.5.8. Форматы команд. занимает длину 12 бит, а 212 = 4096.

 

3. Формат RS - «регистр - память». Команда за­нимает 4 байт. В регистрах с адресами R1 и R3 нахо­дятся адреса операндов А1 и A3, адрес операнда А2 определяется как А2 = = (В2) + D2. Команды формата RS используются для организации передачи содержи­мого группы регистров с последовательными номерами R1-R3 в оперативную память, и наоборот.

 

Рис 5.9. Пример выполнения команды сложения формата RR

 

4 Формат SI - «память - непосредственный опе­ранд». Команда занимает 4 байт. Адрес операнда А1, находящегося в ОП, определяется как А1=B1+D1, а операнд А задается непосредственно в поле I команды. Длина обоих операндов состав­ляет 1 байт.

Рассмотрим два примера выполнения команд: сложения формата RR (рис. 5.9) и записи формата RX. При выполнении команды «сложение - код операции 1А» выполняется действие 1+1=2, а при выполнении команды «запись - код операции 50» содержимое РОН 4 записывается в оперативную память по адресу 600.

 

Рис 5.10. Форматы команд малых и микроЭВМ

На рис.5.10 показаны основные форматы команд малых ЭВМ или микроЭВМ. Результат выполнения операции всегда помещается по адресу операнда А2. Поле адреса операнда А1 называется «источник», а поле адреса операнда А2 — «приемник». Адресные поля разбиваются на две части по три разряда: в правой указывается номер регистра, а в левой - тип адресации (указатель адресации УА). В зависимости от местоположения операндов команды делятся на три группы: 1) регистр - регистр; 2) ре­гистр - память; 3) память - память Наличие в командах полей указателя адресации (УА), опреде­ляющих функции, выполняемые указанными в команде регистрами, позволяет реализовать команды, анало­гичные форматам RR, RS, RX, и SI и т.д.

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

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

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

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

Сигнал прерывания вызывает в процессоре включение «механизма» передачи управления (рис. 5.11), причем этот сигнал может поступать как от внешних, так и от внутренних источников.

Рис. 5.11 «Механизм» передачи управления прерыванием программ

 

Классификация видов прерываний показана на рис. 5.12.

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

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

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

Рис.5.12 Классификация видов прерываний в МП

 

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

- базовой системы ввода-вывода - прерывания BIOS;

- операционной системы - прерывания DOS.

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

Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств (аппаратуре) ВМ. Большинство технических прерываний не маскируются, то есть они разрешаются всегда, а некоторые из них относятся к категории «аварийных» (например, отклю­чение питания), и при их возникновении даже не запрашивается причина преры­вания, а просто, по возможности, спасаются важные промежуточные результаты — записываются в безопасное место, в НЖМД, например.

Логические прерывания возникают при появлении ошибок в выполняемых програм­мах (деление на 0, потеря значности мантиссы, нарушение защиты памяти и т. п.). Многие из логических прерываний также относятся к категории немаскируемых.

Основными функциями системы прерываний программ, являются:

1) запоминание состояния (вектора прерываемой программы;

2) передача управления программам обработки прерываний;

3) восстановление состояния прерванной программы и возврат к ней.

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

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

Обычно каждый запрос на прерывание поступает на регистр прерываний, состоящий из триггеров прерываний - по одному триггеру на каждый тип прерываний. При поступлении запроса на прерывание соответствующий триггер устанавливается в «1», фиксируя наличие запроса на прерывание данного типа. Регистр прерываний периодически опрашивается процессором (обычно перед завершением выполнения очередной команды).

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

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

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

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

Важное значение для оценки эффективности применения программных и аппаратных средств имеют показатели системы - время реакции системы, время потерь в системе и насыщение системы прерывания - и отвечающие им критерии:

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

2. Время потерь характеризует непроизводительные затраты машинного времени на переключение от одной программы к другой и обратно.

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

1) отсутствие согласования временных характеристик источников прерывания с блоком прерываний процессора;

2) одновременная работа большего, чем допускается, количества программ и внешних устройств.

Понятием, тесно связанным с системой прерываний, является понятие маски прерывания, представляющей собой двоичный код, разряд которого соответствует тому или иному классу прерываний. Маска обычно хранится в регистре маски или в каком-либо управляющем регистре и устанавливается программным путем. Состояние бита маски «1» разрешает, а состояние «О» запрещает (блокирует) прерывание данного типа.

Рассмотрим особенности системы прерываний малых ЭВМ и микроЭВМ.

В малых ЭВМ и микроЭВМ все прерывания подразделяются на два типа:

1) внутренние прерывания, к которым относятся:

а) программные прерывания по ошибочной адресации и недействительному коду операций;

б) прерывания по напряжению сети питания ниже допустимого уровня и по восстановлению его нормального уровня;

в) прерывания по разряду слежения, возникающие в том случае, если при выполнении программы разряд слежения устанавливается «1»;

2) внешние прерывания, которые вызываются периферийными устройствами.

Рассмотрим последовательно процесс передачи информации при организации прерывания МП. При поступлении импульсов от внешнего источника в МП входной регистр будет работать в режиме регистра сдвига. Допустим, что информация, поступившая на шестнадцатиразрядный РгВх, затем должна считываться в параллельном коде. Пусть при этом поступление каждого импульса на РгВх происходит за один такт. В этом случае микропроцессор сможет получать 16-разрядное слово (2 байта) через каждые 16 тактов, так как только за 16 тактов информация последовательно, импульс за импульсом, разместится во входном регистре. Естественно, что при этом между каждым поступлением нового слова будет происходить задержка в их обработке. Во время ожидания окончания поступления нового слова МП следит за состоянием РгВх и находится в бездействии.

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

 

30. В каких целях используется аккумулятор в центральном процессоре?

1. для передачи данных

2. для питания

3. для выполнения вычислений

4. для индикации данных

5. для регистрации данных

 

31. Какой процессор не является однокристальным?



<== предыдущая лекция | следующая лекция ==>
Внешние сигналы микропроцессора. | Pentium II


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.