- •Пояснительная записка
- •1.4.2. Диапазон и погрешность представления чисел
- •1.4.3. Форматы команд, данных и слова состояния процессора
- •1.4.4. Организация виртуальной памяти
- •1.4.5. Способы организации ввода-вывода информации
- •1.4.6. Способ оценки производительности эвм
- •1.4.7. Приращение производительности эвм
- •2.2. Функциональная модель эвм
- •2.3. Алгоритм функционирования эвм
- •2.4. Средства управления прерываниями
- •2.5. Организация виртуальной памяти
- •Алгоритм работы виртуальной памяти
- •2.6. Оценка производительности эвм
- •3. Модификация созданной эвм
- •3.1. Возможности повышения производительности эвм
- •3.2. Организация конвейерной обработки команд
- •3.3. Расчет прироста производительности эвм
- •4. Тестовая задача
- •4.1. Алгоритм и программа для тестирования эвм
- •4.2. Моделирование процесса выполнения программы
- •5. Программирование ввода и вывода
- •5.1. Пример использования системных функций для ввода
- •5.2. Общие сведения об интерфейсе Win32 api
3.3. Расчет прироста производительности эвм
Рассмотрим команды с целью анализа столкновений. Представим область определения каждой команды и результат ее выполнения в виде таблицы.
Команда (функция) |
Область определения |
Область значений |
ADD(тип) |
Операнд – ячейки памяти, регистр адреса для исполнительного адреса |
Акк,RD, регистр флагов |
STORE WR |
Ячейки памяти для исполнительного адреса, Акк,RD,RA |
Ячейки памяти операнда |
Jmp |
|
IP |
JS |
Условие (флаги) |
IP |
READ |
Операнд – ячейки памяти, ячейки памяти для исполнительного адреса, RA |
Акк,RD |
CLI |
Условие (флаги) |
IF |
IRET |
|
IP, регистр флагов |
t
RAM
CPU
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
|
|
|
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
2 | |
1 |
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
|
|
1 |
1 |
1 |
|
2 |
1 |
1 |
1 |
1 |
1 |
|
|
Предварительная выборка
+ + + + + + + +
-
2
2
2
2
3
3
3
3
3
3
3
2
2
2
2
2
2
2
3
2
2
2
2
2
базовый цикл латентности
Латентность – это число единиц времени (тактов), разделяющих инициации.
Метод выборки следующей команды во время завершения текущей называется предварительным. Он легко реализуется, но при исполнении команды нужно уметь выполнить выборку следующей команды. Могут возникать помехи, которые нужно устранить. Например, в команде JS не известен адрес. Помеха возникает, если к регистру, ячейке или к регистру флагов обращаются или модифицируют две различные команды так близко расположенные в программе, что при конвейеризации их исполнение перекрывается во времени.
Есть три класса таких помех: чтение после записи – RAW, запись после чтения – WAR, запись после записи – WAW. Когда пересекаются действия исполнения команды, то говорят о перекрытии действий.
|
|
|
Х |
Х |
|
|
|
Х |
Х |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
18 ADD | |
Х |
Х |
Х |
Х |
|
|
Х |
Х |
Х |
+ |
+ |
Х |
Х |
Х |
Х |
Х |
|
|
EADDR изменение IP (RA)
Для обеспечения предварительной выборки нужны дополнительные действия CPU: обновить IP и передать его содержимое в RA.
|
|
|
|
Х |
Х |
|
|
|
|
Х |
Х |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
19 WR |
Х |
Х |
Х |
Х |
|
|
Х |
Х |
Х |
Х |
+ |
+ |
Х |
|
|
|
|
|
|
|
|
|
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
11 Jmp (Перекрытий действий нет) |
Х |
Х |
Х |
+ |
|
|
|
|
|
|
|
|
|
|
|
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
12 JS (Перекрытий действий нет. |
Х |
Х |
Х |
Х |
+ |
|
|
|
|
|
|
|
Переход выполняется.)
|
|
|
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
11 JS (Перекрытий действий нет. |
Х |
Х |
Х |
+ |
|
|
|
|
|
|
|
Переход не выполняется)
|
|
|
|
Х |
Х |
|
|
|
Х |
Х |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
18 READ |
Х |
Х |
Х |
Х |
|
|
Х |
Х |
Х |
+ |
+ |
Х |
Х |
|
|
|
|
|
|
|
|
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
11 CLI |
Х |
Х |
Х |
+ |
|
|
|
|
|
|
|
|
|
|
|
+ |
+ |
+ |
+ |
+ |
+ |
+ |
12 IRET | |
Х |
Х |
X |
Х |
+ |
|
|
|
|
|
|
|
Средняя латентность: 18*25=450 ADD
11*10=110 CLI
12*9=108 IRET
19*13=247 WR
11*8=88 Jmp
12*10=120 УП выполняется
11*7=77 УП не выполняется
18*18=324READ
1524:100=15,24
Уменьшение величины взвешенного среднего составляет:
17,54 1% - 0,1754
15,24 х% - 2,30
2,30 x13%
Производительность повысилась на 13%. Стоимость дополнительной аппаратуры для предварительной выборки мала. Отношение стоимость/производительность весьма привлекательно. Поэтому во всех современных машинах реализуется метод предварительной выборки.