- •«Санкт-Петербургский государственный электротехнический университет «лэти» им. В.И.Ульянова (Ленина)» (сПбГэту)
- •Методические указания к выполнению курсового проекта
- •1. Объект проектирования и оценка эффективности архитектуры
- •2. Исходные данные для курсового проектирования
- •3. Результаты проектирования
- •4. Оформление курсового проекта
- •5. О содержании разделов пояснительной записки
- •1.6. Взаимодействие программ пользователя с внешними устройствами
- •1.7. Демонстрация возможностей взаимодействия cpu с внешними устройствами
- •1.8. Интерфейс Win32 api
- •2.6. Оценка производительности эвм
- •4. Тестовая задача
- •4.1. Алгоритм и программа для тестирования эвм
- •4.2. Моделирование процесса выполнения программы
- •5. Программирование ввода и вывода
- •5.1. Аппаратная реализация взаимодействия процессора с внешним устройством
- •Раздел 5.1 необходим, если студент претендует на высшую оценку при защите курсового проекта. Содержание раздела излагается на лекции.
- •5.2. Пример использования системных функций для ввода
- •5.3. Общие сведения об интерфейсе Win32 api
5. Программирование ввода и вывода
5.1. Аппаратная реализация взаимодействия процессора с внешним устройством
Раздел 5.1 необходим, если студент претендует на высшую оценку при защите курсового проекта. Содержание раздела излагается на лекции.
Внешнее устройство (ВУ) представляется для процессора, либо в виде набора адресуемых ячеек памяти, либо набора адресуемых портов (регистров). Совокупность допустимых адресов образует адресное пространство.
При выполнении команды взаимодействия с ячейкой памяти или с портом ВУ (чтение/запись) используются шины (A, D, Control) соединяющие процессор с памятью и ВУ. Для обмена данными процессор сначала формирует адрес порта или ячейки, который с помощью специальной схемы дешифрируется, выявляя адресуемый порт или ячейку.
Допустимое адресное пространство (совокупность допустимых адресов) может использоваться, как общее для памяти и ВУ. Портам назначаются уникальные адреса памяти, которые нельзя использовать для ячеек памяти. Такой метод адресации портов ВУ называют методом отображения адресации ввода/вывода на память. Все операции, допустимые над содержимым ячеек памяти, пригодны для обработки содержимого портов.
При другом способе адресации портов используют различные адресные пространства для памяти и для ВУ.
Идентификация используемого в процессе записи/чтения данных адресного пространства осуществляется с помощью сигнала IO/M. Нулевое значение этого сигнала идентифицирует режим работы с ячейками памяти, а единичное значение – указывает на режим взаимодействия с портами ВУ. При таком способе адресации портов, для взаимодействия с портами используются только специальные команды: для чтения данных IN Port, для записи данных OUT Port.
Признак IO/M используемый для идентификации типа адресного пространства формируется при дешифрации команды, если команда IN или OUT, то устанавливается единичное значение признака IO/M.
Для подачи данных на шину D и приема данных с шины D используется двунаправленный шинный формирователь.
Два буферных регистра (один для приема, а другой для передачи данных), объединенных в единый функциональный блок, представляются в курсовом проекте, как буферный регистр с именем RD.
Функциональный блок RD размещается в процессоре и через управляемую двунаправленную шину D подсоединяется к портам ВУ и к ячейкам памяти. Выбор соединения осуществляется управляющим сигналом IO/M.
Кроме буферного регистра RD, в процессоре размещается буферный регистр RA, содержимое, которого подается на шину А, соединенную со схемами дешифрации, размещенными во внешнем устройстве и в устройстве памяти. Нужная схема дешифрации активируется с помощью сигнала IO/M, подаваемого на вход CS микросхемы дешифратора.
Для управления обменом данными используются также сигналы : Read, Write для памяти и сигналы: IOR, IOW для ВУ.
Работа ЭВМ заключается в выполнении командного цикла, состоящего из машинных циклов, таких как выборка команды (IFETCH), дешифрации кода операции (DECODE), формирование исполнительного адреса (EADDR), выборка операндов (OFETCH) и тому подобные. Машинный цикл в свою очередь делится на нужное количество тактов в зависимости от типа машинного цикла. На каждом такте выполняется микрооперация, например RA = RI[A], где RI[A] обозначает адресную информацию, размещенную в регистре команд RI.
Отметим, что в анализируемой модели ЭВМ машинные циклы команд READ (WRITE) и IN (OUT) могут быть идентичными по описанию, но количество тактов (и микроопераций), требуемое для выполнения этих команд будет различное.
Так как в машинном цикле OFETCH описаны две последовательности микроопераций, то для идентификации последовательностей внутри машинного цикла используется признак IO/M.
Ниже представлены функциональные схемы реализации интерфейса ввода/вывода, предусматривающего использование протокола обмена с квитированием.
Организация ввода данных с проверкой готовности ВУ к обмену.
Данные поступают от ВУ вместе с сигналом стробирования (STB), который служит для загрузки данных в буферный регистр RGI, и для установки признака готовности IBF (Input Buffer Full) к обмену. Для хранения признака используется триггер TIBF , который соответствует седьмому биту регистра состояния процессора. Седьмой бит служит для оповещения о готовности порта внешнего устройства к обмену. Команда IN программы CPU вводит данные с регистра состояния в аккумулятор и проверяет наличие единичного значения признака готовности. При наличии признака готовности CPU осуществляет ввод данных с порта (RGI), хранящего данные. Сигналы дешифратора CSD и CSS служат для управления передачей данных между портом ВУ и регистром RD (аккумулятор) данных процессора.
Далее необходимо представить рисунок функциональной схемы (см. лекции) и фрагмент программы на языке ассемблера, описывающей процесс ввода данных.
Организация вывода данных с проверкой готовности ВУ к обмену.
Необходимо представить функциональную схему, фрагмент программы на языке ассемблера и соответствующие пояснения.