- •Микропроцессорные устройства систем управления
- •1. Общая характеристика микропроцессоров.
- •1.1. Структура микропроцессора и его реализация.
- •1.2. Классификация современных микропроцессоров и их характеристики.
- •1.3. Принципы управления микропроцессорами.
- •1.4. Структура и типы команд микропроцессора.
- •1.5. Способы адресации информации и прерывание работы в микропроцессоре.
- •Прямая адресация.
- •Прямая регистровая адресация.
- •Косвенная регистровая адресация.
- •Непосредственная адресация
- •Относительная адресация
- •Адресация с индексированием
- •Стековая адресация
- •1.6. Организация ввода и вывода данных в микропроцессоре.
- •1.7. Система команд микропроцессора.
- •2. Принципы организации и применения микропроцессорных систем.
- •2.1. Особенности организации структуры мп-системы.
- •2.2. Структура мп-системы с общей шиной.
- •2.3. Интерфейсы мп-систем.
- •2.4. Применение мп-системы в качестве контроллера и системы сбора данных.
- •3. Основы программирования микропроцессоров.
- •3.1. Языки программирования микропроцессоров.
- •3.2. Программирование на языке ассемблера.
- •3.3. Средства разработки и отладки прикладных программ.
- •Средства отладки и диагностирования
- •Программные средства:
- •Аппаратно-программные средства:
- •4. Типовые микропроцессоры и их применение.
- •4.1. Структура и характеристика типовых мп.
- •4.2. Система команд однокристального микропроцессора.
- •4.3. Примеры написания программ.
- •5. Мультипроцессорные системы, транспьютеры.
- •5.1. Классификация систем параллельной обработки данных
- •Конвейерная и векторная обработка.
- •Машины типа simd.
- •Машины типа mimd.
- •Многопроцессорные машины с simd-процессорами.
- •Многопроцессорные системы с общей памятью
- •5.2 Мультипроцессорная когерентность кэш-памяти.
- •5.3. Многопроцессорные системы с локальной памятью и многомашинные системы
- •5.4. Транспьютеры
Адресация с индексированием
Данный способ адресации отличается от относительной адресации тем, что для формирования фактического адреса используется содержимое не счетчика команд, а специального регистра, называемого индексным (или сегментным) регистром. Данный способ адресации удобен при обработке таблиц и массивов данных. В этом случае адрес первого элемента можно хранить в индексном регистре, а все остальные элементы адресовать в команде относительно него, не заботясь о реальных фактических адресах.
Стековая адресация
Слово "стек" в переводе с английского означает "штабель" (дров). Применительно к МП под стеком понимается любая область ОЗУ, ячейки которой заполняются последовательно друг за другом. Аналогично - ячейка за ячейкой происходит и вывод информации из стека. При этом данные из стека читаются в последовательности, обратной той, которая была при записи, т.е. реализуется принцип: "вошедший последним - выходит первым" - подобно тому, как из штабеля дров первым берут полено, положенное последним.
Достоинством команд со стековой адресацией является то, что программист может не заботиться о конкретных адресах ячеек памяти, куда записываются и откуда считываются данные. Достаточно знать код адреса начала стековой области ОЗУ. Этот код (код верхушки стека) предварительно записывается в указатель стека.
С помощью команд, использующих стековую адресацию, в стек можно переслать число из регистра или из счетчика команд. Пусть требуется записать в стек содержимое двух регистров (регистровой пары). Сначала содержимое SР указателя стека с помощью схемы инкремента (декремента) уменьшается на единицу, в результате чего на шину адреса выставляется адрес SР-1. По этому адресу производится запись в стек слова данных из первого регистра. Далее содержимое указателя стека вновь уменьшается на единицу и на шину адреса выставляется адрес SP-2, по которому в стек записывается слово данных из второго регистра. Таким образом, по окончании записи содержимое указателя стека становится равным SР-2. Часто вместо выражения "содержимое указателя стека" употребляют выражение "положение указателя стека". Тогда можно сказать, что при занесении в стек содержимого регистра или счетчика команд указатель стека автоматически каждый раз при записи очередного слова "смещается вниз", т.е. в сторону младших адресов памяти (рис.1.2).
Рис.1.2. Реализация команды записи в стек
В системе команд МП есть и такие, которые позволяют осуществлять обратную операцию, т.е. пересылать содержимое ячеек стека в любые регистры или в счетчик команд. Для пересылки, например, содержимого двух регистров сначала в МП переписывается второе слово (последнее записанное) из ячейки памяти, адресуемой текущим положением SP указателя стека, после чего указатель стека "смещается вверх" на одну ячейку и занимает положение SP+1. Далее из ячейки памяти, адресуемой новым положением указателя стека, в МП переписывается первое слово, после чего указатель стека "смещается вверх" еще на одну ячейку и занимает положение SP+2. Таким образом, после выполнения команды указатель стека оказывается автоматически "смещенным вверх", т.е. в сторону старших адресов памяти.
Стековая адресация используется в случаях, когда производится прерывание основной программы. Прерыванием называют приостановку выполнения основной программы с целью обслуживания внешнего устройства или другого процесса. При этом происходит обращение к подпрограмме обслуживания устройства или процесса, содержимое счетчика команд, в котором хранится адрес возврата в основную программу, а также, при необходимости, промежуточные данные, хранящиеся в регистрах общего назначения, адресных регистрах, аккумуляторе и регистре признаков, переносятся в стек, а в счетчик команд заносится новый адрес, с которого начинается указанная подпрограмма. Этим освобождаются регистры МП для выполнения подпрограммы. При возврате к выполнению основной программы содержимое стека возвращается в МП. Во время выполнения программы обычно производится неоднократное обращение к подпрограммам, поэтому использование команд со стековой адресацией позволяет существенно сократить время решения задач.
Различают прерывания аппаратные, программные и специальные. Аппаратные прерывания инициируются воздействием сигналов, вырабатываемых внешними по отношению к МП устройствами, требующими обслуживания. Поэтому аппаратные прерывания называют также внешними. Программные прерывания происходят под влиянием специальных команд прерывания, включенных в программу, т.е. инициатива программных прерываний принадлежит самой программе. Программные прерывания используются для обслуживания внешних устройств по опросу или для вызова специальных вспомогательных системных подпрограмм. Специальные прерывания возникают в системе в ходе выполнения основной программы под воздействием специальных сигналов, вызываемых внутренними аппаратными средствами. Такие прерывания называют еще внутренними, т.к. инициируются внутренними средствами микропроцессорной системы. Причинами внутренних прерываний могут служить: программные сбои в следствии попытки совершить недопустимую операцию; аппаратные сбои в следствии пропадания одного или нескольких питающих напряжений или другие неисправности оборудования; переполнение разрядности обрабатываемых данных и некоторые другие.
Различают также прерывания одноуровневые и многоуровневые. Уровень прерывания задается его приоритетом, т.е. преимущественным обслуживанием того или иного внешнего устройства в очереди. В многоуровневых системах прерываний подпрограмма обслуживания прерывания более низкого уровня может быть прервана подпрограммой обслуживания прерывания более высокого уровня. Иными словами реализуется режим прерывания во время прерывания.
Прерывания делят на маскируемые и немаскируемые. Немаскируемые прерывания вызываются внешними устройствами и выполняются всегда. Маскируемые прерывания отличаются от немаскируемых тем, что могут быть разрешены или запрещены программой путем включения в нее специальных команд разрешения или запрещения прерываний.