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

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

Организация команд замещения, организация стека, стековой памяти, работа стековой памяти, организация вычислений с помощью польской инверсной записи ПОЛИЗ.

Читайте также:
  1. Cоциально- медицинская работа с инвалидами.
  2. Cоциально-медицинская работа с пожилыми людьми
  3. D. Организация ордена иезуитов
  4. E) организациях, обладающих имуществом на праве хозяйственного ведения или оперативного управления.
  5. E) простая, копировальная, ручная, машинная, шахматная и линейная записи.
  6. If условие then серия; - это сокращенная форма команды если
  7. II Организация бухгалтерского учета
  8. II раздел. Задания этого раздела выполняются студентами самостоятельно письменно или устно (в записи на электронном носителе).
  9. II раздел. Задания этого раздела выполняются студентами самостоятельно письменно или устно (в записи на электронном носителе).
  10. II. Организация и порядок работы комиссии по трудовым спорам

Стековой называют память, доступ к которой организован по принципу: “последним записан – первым считан” (Last Input First Output – LIFO). Использование принципа доступа к памяти на основе механизма LIFO началось с больших ЭВМ. Применение стековой памяти оказалось очень эффективным при построении компилирующих и интерпретирующих программ, при вычислении арифметических выражений с использованием польской инверсной записи. В малых ЭВМ она стала широко использоваться в связи с удобствами реализации процедур вызова подпрограмм и при обработке прерываний. Принцип работы стековой памяти состоит в следующем. Когда слово А помещается в стек, оно располагается в первой свободной ячейке памяти. Следующее записываемое слово перемещает предыдущее на одну ячейку вверх и занимает его место и т.д. Запись 8-го кода, после H, приводит к переполнению стека и потере кода A. Считывание слов из стека осуществляется в обратном порядке, начиная с кода H, который был записан последним. Заметим, что выборка, например, кода E невозможна до выборки кода F, что определяется механизмом обращения при записи и чтении типа LIFO. Для фиксации переполнения стека желательно формировать признак переполнения.

С точки зрения реализации механизма доступа к стековой памяти выделяют аппаратный и аппаратно-программный (внешний) стеки. Аппаратный стек представляет собой совокупность регистров, связи между которыми организованы таким образом, что при записи и считывании данных содержимое стека автоматически сдвигается. Обычно емкость аппаратного стека ограничена диапазоном от нескольких регистров до нескольких десятков регистров, поэтому в большинстве МП такой стек используется для хранения содержимого программного счетчика и его называют стеком команд. Основное достоинство аппаратного стека – высокое быстродействие, а недостаток – ограниченная емкость. Наиболее распространенным в настоящее время и, возможно, лучшим вариантом организации стека в ЭВМ является использование области памяти. Для адресации стека используется указатель стека, который предварительно загружается в регистр и определяет адрес последней занятой ячейки. Помимо команд CALL и RET, по которым записывается в стек и восстанавливается содержимое программного счетчика, имеются команды PUSH и POP, которые используются для временного запоминания в стеке содержимого регистров и их восстановления, соответственно. В некоторых МП содержимое основных регистров запоминается в стеке автоматически при прерывании программ. Содержимое регистра указателя стека при записи уменьшается, а при считывании увеличивается на 1 при выполнении команд PUSH и POP, соответственно.

Польская инверсная запись (ПолИЗ)

Первые процедурно-ориентированные языки программирования высокого уровня предназначались для решения инженерных и научно – технических задач, в которых широко применяются методы вычислительной математики. Значительную часть программ решения таких задач составляют арифметические и логические выражения. Поэтому трансляцией выражений занимались очень многие исследователи и разработчики трансляторов. На данное время разработано большое число таких трансляторов. Сейчас классическим стал метод трансляции выражений, основанный на использовании промежуточной обратной польской записи, названной так в честь польского математика Яна Лукашевича, который впервые использовал эту форму представления выражений в математической логике.

Цель польской инверсной записи – представить операции исходного выражения в порядке их выполнения (вычисления). В данной работе был использован алгоритм построения ПолИЗа, который был предложен Дейкстрой.

Пример ПолИЗа:

Исходное выражение: x=a+f*c;

Выражение на ПолИЗе:xafc*+=.

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

ПРИОРИТЕТ ОПЕРАЦИИ – это целое число, означающее старшинство операции по отношению к другим операциям. Приоритет операций изменяется с использованием скобок (и).

Исходная последовательность просматривается слева на право, как входная последовательность элементов.

АЛГОРИТМ:

  1. Если элемент операнд, то он заносится в ПолИЗ.
  2. Если элемент операция, то она заносится в ПолИЗ через СТЕК по правилу.

2.1. Если СТЕК пуст, то знак операции заносится в СТЕК,

2.2. Иначе: если приоритет входного знака равен 0, то он заносится в СТЕК, иначе сравниваются приоритеты входного знака и знака в вершине СТЕКа.

2.3.Если приоритет входного знака больше приоритета знака в вершине СТЕКа, то он заносится в СТЕК.

2.4. Иначе из СТЕКа выталкиваются все знаки с приоритетом больше или равным приоритету входного знака в вершине СТЕКа и приписываются к ПолИЗу, затем входной знак заносится в СТЕК.

  1. Особо обрабатываются (и).

(- имея приоритет 0 сразу же заносится в СТЕК по 2.2.

) – имея приоритет равный 1 выталкивает из СТЕКа все знаки до ближайшей открывающей скобки (, затем они взаимно уничтожаются.

  1. При появлении признака конца выражения (в нашем случае;) СТЕК очищается: все оставшиеся знаки выталкиваются и приписываются к ПолИЗу.

Так же ПолИЗу соответствует так называемое дерево ПолИЗа.

 

 

6. Рабочий цикл процессора, понятие рабочего цикла, операции процессора во время рабочего цикла. Пример организации отдельных операций рабочего цикла.

Функционирование процессоров в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует выполнению одной команды программы. Завершив рабочий цикл для текущей команды, процессор переходит к выполнению рабочего цикла для следующей команды программы. Рабочий цикл начинается с распознавания состояния процессора - "счет" или "ожидание". Далее производится проверка наличия немаскированных прерываний.

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

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

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

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

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

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

При выполнении команд передачи управления проверяется заданное условие. Если условие не выполняется, то следующую команду указывает продвинутый адрес, установленный ранее в СчК. Если условие выполняется, то в СчК передается адрес, заданный командой передачи управления.

 

 

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

Принципы организации СПП

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

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

Прерывания от устройства аппаратного контроля возникают при обнаружении этим устройством неисправности в ЭВМ, канале или ПУ.

Прерывания ввода-вывода происходят при завершении работы канала или ПУ.

Прерывания от таймера происходят при переполнении таймера.

Возможность прерывания программ - важное свойство ЭВМ, позволяющее существенно повысить эффективность использования ее ресурсов, а также использовать ЭВМ для управления в системах реального времени. Для реализации прерывания в ЭВМ должны существовать соответствующие программные и аппаратные средства, называемые системой прерывания программ (СПП), или контроллером прерываний. Основные функции СПП состоят в запоминании ССП и переходе к прерывающей программе, при этом для запоминания ССП используется фиксированная зона оперативной памяти (например, в ЭВМ типа IBM/360 и IBM/370 и соответственно в ЕС ЭВМ) или же стековая память (например, в ЭВМ типа IBM PC с МП типа 80х86).

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

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

3. Векторное прерывание

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

4. Обработчик прерывания

Перечислим основные действия, который должен выполнить обработчик прерываний:

1. Сохранять при необходимости содержимое всех или части программно-доступных регистров (эту процедуру иногда называют переключением контекста);

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

3. Разрешить все прерывания, которые имеют право возникать во время обработки данного прерывания;

4. Определить источник прерывания;

5. Выполнить запланированную обработку прерывания;

6. Восстановить ССП;

7. Разрешить все прерывания, которые были запрещены при обработке данного прерывания.

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

Основные типы прерываний в ЭВМ типа IBM PC с МП 80х86

Прерывания в этой ЭВМ могут быть разбиты на следующие группы:

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

Внешние аппаратные прерывания, возникающие при возникновении сигналов прерывания от таймера, клавиатуры и различных ПУ;

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

Программные прерывания, возникающие при выполнении процессором команды int с числовым аргументом.

 

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

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

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

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

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

Обработка прерывания

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

1. Модуль ввода-вывода формирует сигнал запроса прерывания, который предназначается процессору.

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

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

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

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

6. Перед передачей управления подпрограмме обработки прерывания процессор аппаратными средствами выполнил сохранение счетчика команд и PSW в системном стеке. Но помимо этой информации для возобновления прерванной программы может потребоваться и восстановление состояния других регистров процессора. Поэтому, как правило, первые команды подпрограммы обработки сохраняют в стеке состояния всех остальных регистров процессора, поскольку они могут понадобиться самой подпрограмме и, следовательно, их содержимое к моменту завершения подпрограммы будет изменено. В Приложении рис.2 (а) показано, что при этом происходит. В данном случае пользовательская программа была прервана в тот момент, когда выполняла команду, хранящуюся по адресу N. Аппаратно в стек помещается содержимое счетчика команд, каким оно было в момент завершения выполнения этой команды — N+1, а в счетчик команд заносится начальный адрес подпрограммы обработки Y. Сама подпрограмма затем помещает в стек содержимое регистров процессора, в результате чего указатель стека смещается и после завершения сохранения регистров будет указывать на ячейку Т.

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

8. После завершения обработки подпрограмма восстанавливает содержимое в регистрах, которое было сохранено в стеке в самом начале выполнения подпрограммы (Приложение рис.2 (б)), и только после этого выполняет последнюю команду — команду возврата из прерывания.

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

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

Цепочечная однотактная схема определения приоритетного запроса («дейзи-цепочка») представлена на рис. 9.27, в. Как и в предыдущих случаях, приоритет запросов прерывания воз­растает с уменьшением их номера.

Процедура определения приоритетного запроса инициирует­ся сигналом Приоритет, поступающим на цепочку последова­тельно включенных схем И. При отсутствии запросов этот сиг­нал пройдет через цепочку и сигнал общего запроса прерывания не сформируется. Если среди выставленных запросов прерыва­ния наибольший приоритет имеет i-й запрос, то распространение сигнала Приоритет правее схемы И с номером i блокируется. На i-м выходе цепочечной схемы будет сигнал yi = 1, на всех других 0. В процессор поступит общий сигнал прерывания, при этом шифратор по сигналу yi = 1 сформирует код номера i-го запроса, принятого к обслуживанию. По сигналу процессора Подтвер­ждение прерывания (на рис. 9.27 не показан) этот код передается в процессор и используется для формирования начального адреса прерывающей программы

Схемы, представленные на рис. 9.27, б и в, производят поиск крайней левой единицы в наборе сигналов прерывания и форми­руют код номера i запроса, удовлетворяющего условию

 

 

 

 

Устройство управления, определение, структурная схема типового устройства управления. Основные составляющие устройства управления: счетчик команд, регистр команд, указатель стека, регистр адреса памяти, регистр данных памяти, дешифратор кода операции, микропрограммный автомат, арифметика–логического устройства и его составляющих.

Задача управления заключается в том, чтобы объект управления в условиях реальной эксплуатации обеспечивал выполнение требуемых функций. Фактическое состояние объекта управления определяется одним или несколькими рабочими параметрами y (t). Чаще всего рабочие параметры представляют собой физические величины: скорость (линейная и вращения), температура, напряжение электрического тока, линейные и угловые перемещения и т.д. В реальных условиях на объект управления оказывают влияние внешние воздействия, которые называются возмущающими z(t). Эти воздействия вызывают изменение внутреннего состояния объекта и как следствие - рабочих параметров.

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

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

Примером таких систем являются системы автоведения поезда. В этих системах на борт локомотива с помощью канала связи передается заданная скорость Vз применительно к конкретному участку. Эта скорость вычисляется специальным устройством и зависит от расстояния до впередиидущего поезда, от состояния верхнего строения пути, типа локомотива, веса состава, профиля участка и т.д. На борту локомотива производится измерение фактической скорости V и сравнение с заданной. Если Vз> V то происходит включение тяговых двигателей, в противном случае включаются тормозные средства.




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




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