- •Пояснительная записка
- •Введение
- •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
- •Заключение
3.2. Организация конвейерной обработки команд
При конвейеризации очередность команд, заданная программистом при написании программы, нарушается. Исполнения команд (текущей i-й и i+1-й) перекрываются во времени и возникают зависимости операций, запускаемых i+1 и i+2 командами от результатов i-й команды. Эти зависимости вызывают помехи для выполнения команд. При конвейеризации необходимо обнаружить и устранить помехи.
С целью анализа возможности перекрытия команд целесообразно создать таблицу занятости для моделирования бесконвейерной структуры ЭВМ, используемой для выполнения команд. В структуре ЭВМ используется не расслоенная память RAM и бесконвейерное CPU. Когда функционирует память, то CPU простаивает и наоборот. В таблице занятости будет две ступени: RAM и CPU.
t
RAM
CPU
ADD 20 такт
DECODE ENDOP
IFETCH EADDR OFETCH EXEC
X X X X X X X
X X
X
X X X X X
X X X X X
WR 17 тактов
DECODE EXEC ENDOP
IFETCH EADDR STORE
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
|
X |
X |
|
X |
|
|
|
|
|
|
|
X |
X |
X |
X |
X |
X |
|
|
X |
JMP 11 тактов
DECODE ENDOP
IFETCH
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|
X |
X |
X |
CHANGE IP
JS переход выполняется 12 тактов
DECODE ENDOP
IFETCH
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
X |
|
|
|
|
|
|
|
X |
X |
X |
X |
TEST CHANGE IP
JS переход не выполняется 11 тактов
DECODE ENDOP
IFETCH
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
X |
|
|
|
|
|
|
|
X |
X |
X |
TEST
READ 17 тактов
DECODE EXEC ENDOP
IFETCH EADDR OFETCH
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
X |
X |
|
|
|
X |
|
|
|
|
|
|
|
X |
X |
X |
X |
X |
|
|
X |
X |
Inc 23 такта
DECODE ENDOP
IFETCH EADDR OFETCH EXEC STORE
|
X |
X |
X |
X |
X |
X |
X |
|
|
|
|
|
X |
X |
|
|
|
|
|
X |
X |
|
X |
|
|
|
|
|
|
|
X |
X |
X |
X |
X |
|
|
X |
X |
X |
X |
X |
|
|
X |