Помощничек
Главная | Обратная связь


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

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



tags: PIC с CPU

 

Программируемый контроллер прерываний (Programmable Interrupt Controller, PIC) отвечает за приём запросов прерываний от различных устройств, их хранение в ожидании обработки, выделение наболее приоритетного из одновременно присутствующих запросов и выдачу его вектора в процессор, когда последний пожелает обработать прерывание. Слово «программируемый» в названии контроллера означает, что режимы его работы устанавливаются программно, а не являются жёстко «зашитыми».

 

 

Функции:

1. Фиксация запросов прерываний, поступающих в PIC от ВУ, в специальном регистре запросов (IRR).

2. Осуществление внутреннего маскирования запросов, с помощью специального регистра маски IMR.

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

4. Выдача сигнала о наличии хотя бы одного не замаскированного запроса прерывания. Поступает на вход INTR.

5. Выдача в ЦП номера запроса в цикле подтверждения прерывания(этот номер модифицируется в ЦП в начальный адрес обработчика прерывания для выделенного ВУ).

6. Возможность изменения приоритетов запросов прерываний.

 

Принципы взаимодействия CPU и PIC:

1. При наличии хотя бы одного незамаскированного запроса прерываний PIC выставляет активный уровень выходного сигнала INT, который поступает на вход INTR в CPU.

2. CPU завершает текущую команду программы и проверяет состояние внешних входов в том числе и INTR.

3. Если флаг IF установлен (внешние прерывания от PIC разрешены), процессор генерирует активный уровень выходного сигнала INTA (Interrupt Answer). При сброшенном флаге IF обработка внешнего запроса прерывания временно откладывается, в частности до выполнения процессором специальной команды STI (Set Interrupt) – разрешение прерываний, действие которой сводится к установке флага IF.

4. При получении сигнала INTA, PIC выполняет следующие действия:

- Сравнивает бит запроса принятого к обслуживанию в IRR.

- Устанавливает бит обрабатываемого запроса ISR.

- Выставляет на внешнюю шину данных (точнее в ее младший байт) номер (тип) обрабатываемого запроса.

5. CPU принимает номер запроса от PIC по шине данных и модифицирует этот номер в адрес соответствующего вектора прерываний (модификация номера в адрес осуществляется путем умножения номера на 4).

6. Текущее значение регистра флагов, сегмента кода (CS) и счетчика команд помещается в стек и тем самым сохраняется минимальный контекст прерываемой программы.

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

8. На аппаратном уровне производиться сброс флага IF в целях временного запрещения поступления других запросов от PIC.

9. Процессор переходит к выполнению программы-обработчика соответствующего прерывания.

Описанная выше последовательность является типичной для базовой модели процессора Intel 8086, либо для старших моделей функционирующих в R-режиме (реальном режиме).

38. Особенности организации прерываний. Таблица векторов прерываний. Вызов обработчика прерывания. Дескрипторная таблица прерываний (IDT) и ее элементы.

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

 

Особенности реализации однотактового процессора:

1) Выполнение всех машинных операций за один такт. Это означает, что в процессе выполнения операции не выделяется нескольких последовательных шагов – микроопераций.

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

3) Один и тот же блок может иметь различное назначение при выполнении различных операций. Например, при операции сложения АЛУ используется для сложения операндов, а при доступе к основной памяти данных - для расчета физического адреса в памяти.

4) При реализации различных операций функциональные блоки могут быть по разному соединены друг с другом. Для перекоммутации путей передачи данных к/от блоков используются блоки коммутации цифровых данных – мультипрексоры.

5) Память команд и память данных раздельные.

Достоинства:

1) характеризуются простой комбинационной организацией - без последовательностных схем управления

Недостатки:

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

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

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

Оценка производительности:

В случае однотактового процессора инкремент счетчика команд PC и соответственно начало исполнения очередной команды должны происходить не чаще, чем через время исполнения максимально длительной команды. В случае остальных – менее длительных – команд, процессор будет простаивать остаток времени от окончания исполнения команды до окончания периода выполнения самой длительной команды. P=1\Tmax, где Tmax – время выполнения самой длительной команды

Потоковая модель (datapath) процессора

это структурно-функциональная схема, на которой показаны:

• Функциональные блоки, последовательно обрабатывающие коды команд, адреса и данные в процессоре.

• Каналы, по которым данные и команды передаются от одного блока процессора к другому. Указываются направления передачи (стрелками).

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

PC – регистр счетчика команд;

Instruction memory– память команд;

Registers – блок регистров общего назначения (РОН);

Data Memory– основная память данных;

ALU – арифметико-логическое устройство;

ALU control– блок управления АЛУ;

Add – сумматоры;

Mux – мультиплексоры (информационных трактов) ;

SignExtend– знаковый расширитель;

Shift – сдвигатель;

Тракт инкремента счетчика команд и выборки команды

PC – регистр, хранящий адрес текущей выбираемой (считываемой из памяти) команды. Тот поступает на Read address. Далее по этому адресу выбирается команда из InstructionMemory и поступает на выход Instruction. В сумматоре Add к адресу текущей команды добавляется 4(длина команды в MIPS) и на выходе адрес следующей команды.

Тракт реализации безусловных и условных переходов

Условный: beq $t1, $t2, offset

Три стадии 1) Код команды считывается из памяти команд, сумматор прибавляет к значению из счетчика команд PC размер следующей команды = 4. 2) Сравниваемые операнды считываются из регистров $t1 и $t2. Устройство управления декодирует код операции op и формирует все управляющие сигналы. 3) АЛУ выполняет операцию вычитания операндов из $t1 и $t2. Значение offset умножается на размер команды (на 4) путем сдвига влево на 2 разряда и складывается со значением из PC (=PC+4), получается адрес перехода. Если операнды равны и флаг Zero = 1, то в PC записывается адрес перехода. Если Zero = 0 - в PC записывается адрес следующей команды (PC+4)

Безусловный: j target_address

одна стадия 1) Код команды считывается из памяти команд, счетчик команд увеличивается на размер следующей команды PC=PC+4. Адрес памяти перехода (26 бит) из команды умножается на 4 (сдвиг на 2), сцепляется со старшими 4 битами значения (PC+4) и записывается в PC.

тракт доступа к памяти данных(LW)

Data memory – основная память для хранения данных (память данных) Address – (вход)подается адрес слова в основной памяти Write Data – (вход) подается записываемое слово данных Read Data – (выход) считывается слово данных (операция чтения) MemWrite – (вход) подается управляющий сигнал «начать запись» MemRead - (вход) подается управляющий сигнал «начать чтение».Управляющие сигналы: ALUSrc – выбор на входе АЛУ: операнд №2 или смещение адреса для слова в памяти MemtoReg – выбор для записи результата в РОН: результат операции или слово памяти RegWrite – команда «начать запись» результата в РОН

 

 

Организация управления АЛУ

Формирование сигналов управления

Тракт выполнения регистровых команд(ADD, SUB)

add $t1, $t2, $t3 четыре стадии. 1) Код команды считывается из памяти команд, счетчик команд увеличивается на размер следующей команды PC=PC+4. 2) Значения операндов считываются из регистров $t1 и $t2 регистрового файла. Устройство управления декодирует код операции op и формирует все управляющие сигналы.3) АЛУ выполняет операцию сложения, настроенное на нее управляющим сигналом ALU Operation от блока ФДГ Control. 4) Результат сложения записывается в регистровый файл по адресу $t1.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.