- •Пояснительная записка
- •Введение
- •1. Техническое задание
- •1.1. Область применения
- •1.2. Индивидуальное задание и литературные источники
- •1.3. Метод конвейеризации
- •1.4. Технические требования
- •1.4.1. Команды эвм
- •1.4.2. Диапазон и погрешность представления чисел
- •1.4.3. Форматы команд, данных и слова состояния процессора
- •1.4.4. Организация виртуальной памяти
- •1.4.5. Способы организации ввода/вывода информации
- •1.4.6. Способ оценки производительности эвм
- •1.4.7. Приращение производительности эвм
- •1.5. Способ тестирования эвм
- •1.6. Взаимодействие программ пользователя с внешними устройствами
- •1.7. Демонстрация возможностей взаимодействия cpu с внешними устройствами
- •1.8. Интерфейс Win32 api
- •2. Структура и алгоритм функционирования эвм классической модели
- •2.1. Вводные замечания
- •2.2. Функциональная модель эвм
- •2.3. Алгоритм функционирования эвм
- •2.4. Средства управления прерываниями
- •2.5. Организация виртуальной памяти
- •2.6. Оценка производительности эвм
- •3. Модификация созданной эвм
- •3.1. Возможности повышения производительности эвм
- •3.2. Организация конвейерной обработки команд
- •Inc 23 такта
- •Iret 12 тактов
- •3.3. Расчет прироста производительности эвм
- •4. Тестовая задача
- •4.1. Алгоритм и программа для тестирования эвм
- •4.2. Моделирование процесса выполнения программы
- •5. Программирование ввода и вывода
- •5.1. Пример использования системных функций для ввода
- •5.2. Общие сведения об интерфейсе Win32 api
- •Заключение
1.7. Демонстрация возможностей взаимодействия cpu с внешними устройствами
Требуется разработать прикладную программу, в которой для перемещения символа ‘*’ в пределах заданного на экране монитора прямоугольного окна необходимо использовать клавиши, обозначенные символами ←, ↑, →, ↓ (стрелки). Таким образом, будет продемонстрирована возможность взаимодействия программы с устройствами ввода-вывода.
1.8. Интерфейс Win32 api
В Windows для манипуляции с памятью в режиме пользователя используются программные средства Win32 API, а для манипуляции с памятью в режиме ядра используются специальные системные вызовы, отличающиеся от API вызовов. Подсистема Win32 API также отвечает за графический режим.
Требуется описать назначение и привести пример обращения к системным функциям Win32.
2. Структура и алгоритм функционирования эвм классической модели
2.1. Вводные замечания
Существует две основные классические модели ЭВМ: принстонская и гарвардская.
Принстонская архитектура основана на принципе совместного хранения команд и данных в памяти компьютера. Для обращения к памяти используется общая системная шина, по которой передаются как данные, так и команды. Эта архитектура имеет ряд важных достоинств:
1) Возможность распределять объем общей памяти для хранения отдельных массивов команд, данных;
2) Возможность производить над командами те же операции, что и над числами (модификация команд);
2) Каждый тип информации представляется двоичной последовательностью и имеет свой формат. В формате команды можно выделить два поля: поле кода операции и поле адресов, что упрощает отладку и тестирование.
К минусам этой системы можно отнести то, что совместное использование шины для памяти программ и памяти данных приводит к узкому месту архитектуры, а именно ограничению пропускной способности между процессором и памятью по сравнению с объёмом памяти. То есть пропускная способность оказывается значительно меньше, чем скорость, с которой процессор может работать.
Гарвардская архитектура основана на физическом разделении памяти команд и памяти данных. Шина данных и шина команд также разделены физически, что позволяет одновременно пересылать и обрабатывать команды и данные, а также при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению повышается общее быстродействие, чем при использовании Принстонской архитектуры.
К минусам Гарвардской архитектуры можно отнести необходимость большого числа шин, а так же фиксированный объем памяти, выделенный для команд и данных, без возможности перераспределить ее.
На сегодняшний день часто используется расширенная Гарвардская архитектура с применением отдельной кэш памяти для хранения команд и данных, в то время как обе шины остаются свободными и появляется возможность передать два операнда одновременно. В тоже время во внешней структуре большинстве микропроцессорных систем реализуются принципы Принстонской архитектуре.
Процессоры классифицируются по признаку поточности I и D (команд и данных):
ОКОД – одиночный поток команд, одиночный поток данных.
Это последовательные ЭВМ, в которых выполняется единственная программа, т. е. имеется только один счетчик команд и одно арифметико-логическое устройство (АЛУ). Что приводит к тому, что каждый байт данных должен будет пройти через центральный процессор, даже если над всеми байтами требуется провести одну и ту же операцию. Для преодоления этого недостатка предлагаются архитектуры процессоров, которые называются параллельными.
ОКМД – одиночный поток команд, множественный поток данных.
Такая система обработки данных используется в ассоциативных, матричных вычислительных системах.
В машинах такого класса одна и та же команда выполняется над большим количеством данных. В этом случае АЛУ представляет собой некоторой процессор со своей памятью, устройством управления и АЛУ. Эти устройства могут преобразовывать информацию, передавать ее на последующие элементы. В качестве основного устройства управления может выступать отдельная ЭВМ.
МКОД – множественный поток команд, одиночный поток данных.
Эта система обработки данных применяется в машинах конвейерного типа: множественный поток микроопераций воздействует на один поток данных.
Некоторые команды разбиваются на несколько элементарных операций, каждая из которых выполняется в своем блоке. Данные, проходя через последовательность операционных блоков, преобразуются. При этом действия выполняются над одними данными. Когда блок освобождается от данных, в него могут быть загружены другие данные. Таким образом, осуществляется заполнение конвейера.
МКМД – множественный поток команд, множественный поток данных.
Системы МКМД бывают многомашинными и многопроцессорными. Многомашинные системы используются для решения задач, обладающих свойством независимого параллелизма задач. Многопроцессорные системы используются для решения задач с параллелизмом ветвей.
Машины имеют одну память команд, поэтому могут возникнуть конфликты по ресурсам, когда АЛУ обращается к памяти команд и к памяти данных.
Представим описание структуры (перечень компонентов и их связи) аппаратных средств, реализующих классическую модель принстонской ЭВМ с архитектурой ОКОД, именно она реализуется в данном проекте.
Структура аппаратных средств включает в себя:
1. системная шина:
- шина данных
- шина адреса
- шина управления
2. центральное процессорное устройство:
- RA (регистр адреса, 64-х разрядный)
- RD (регистр данных, 64-х разрядный)
- R (регистр)
- центральное устройство управления и регистры управления(IP, IR, FR)
- ALU, локальное устройство управления, операционное устройство управления
3. основная память
4. интерфейс ввода/вывода:
- буфер выводимых данных
- буфер вводимых данных
- периферийные устройства