Тест на быстродействие микропроцессора
Рефераты >> Программирование и компьютеры >> Тест на быстродействие микропроцессора

Таблица3. Перечень набора программ набора CFP

Область приложения

Спецификация задачи

Гидродинамика, геометрический аспект

Генерация двумерной координатной сетки в произвольной области

Предсказание погоды

Моделирование водной поверхности методом конечных элементов (вещественная арифметика с одинарной точностью)

Квантовая физика

Вычисление масс элементарных частиц методом Монте-Карло

Астрофизика

Расчет межгалактических газов по уравнениям Навье-Стокса

Электромагнетизм

Расчет трехмерного поля потенциалов

Гидродинамика

Решение системы уравнений в частных производных

Моделирование

Моделирование турбулентности в кубическом объеме

Предсказание погоды

Вычисление статистики температур, воздушных потоков и уровней загрязнения

Квантовая химия

Порождение потока электронов

Электромагнетизм

Решение уравнения Максвелла

§3. Недостатки существующих систем

1) При решении различных задач прикладными программами ресурсы микропроцессора расходуются зачастую неэкономно. В результате этого процессору приходится совершать огромное количество команд, которые могли быть заменены несколькими. Вина лежит не на программных продуктах, а на тех системах программирования, с помощью которых эти программы создавались.

Решение:создавать средства для создания программ максимально эффективным способом, обращая внимание на используемые процессором адресации и размещение данных.

2) На быстродействие так же влияет и то, какое напряжение подаётся на микропроцессор. При большом напряжении происходит нагрев процессора. В результате этого основа, на которой размещаются транзисторы, начинает греться и, соответственно он выходит из строя.

Решение:расстояние между транзисторами необходимо уменьшить. На сегодняшний день минимальную технологию изготовления имеют процессоры Intel Pentium 4, и она составляет 0,13 мкм (для сравнения: процессор AMD с архитектурой К7, тактовой частотой 1000Мгц имеет 0,18 мкм. Обычная температура работы ~ 65°С). Расстояние между транзисторами уменьшается, соответственно сопротивление, а отсюда они требуют меньшее энергопотребление – температура нагрева заметно снижается.

3) Тормозит работу процессора и то, что затрачивается много времени на обмен данными, которые находятся в постоянной памяти. И даже при небольших вычислениях микропроцессор обращается к ОЗУ за данными, а мог бы данные хранить в собственных регистрах

Решение:по возможности, часто используемые данные желательно размещать либо в регистрах процессора, либо в быстрой кэш-памяти. Многие компиляторы не заботятся о том, чтобы разместить данные так, чтобы наблюдалась максимальная скорость работы программы.

4) Так же скорость вычисления уменьшается из-за того, что процессору приходится останавливать свою работу и выполнять аппаратные прерывания. Реакция процессора на прерывания:

а) приходит прерывание;

б) процессор прекращает выполнять основную задачу;

в) происходит сохранение положения, на котором остановилась основная программа;

г) выполняется прерывание;

д) процессор восстанавливает запомненное состояние;

е) продолжает выполнение основной задачи.

Надо заметить, что процессор тратит много времени на сохранение своего текущего состояния и восстановление.

Решение: во время вычисления больших объёмов информации можно запретить некоторые аппаратные прерывания ниже IRQ 0 (таймер). Запрещённые прерывания не будут останавливать процессор, соответственно скорость выполнения возрастёт. Недостатки: могут потеряться некоторые данные, например символы, которые вводятся с клавиатуры – прерывание IRQ 1.

§4. Алгоритм решения

Рассмотрим недостаток № 3. Затрачивание времени на обмен данными.

§5. Описание алгоритма

Блок 1-7. Подсчёт времени на выполнение выбранной операции на языке высокого уровня. В данном случае применяется язык Pascal.

Блок 1. Начало программы.

Блок 2. Вводятся два числа с клавиатуры.

Блок 3. Выбираем операцию из предложенных на экране. Если это операция сложения, то выполняется алгоритм суммирования ряда, если умножение, то выполняется вычисление факториала.

Ввели N, то рад сложения выглядит следующим образом:

1+2+3+…+N=СУММА

Умножения

1*2*3*…*N=ПРОИЗВЕДЕНИЕ

Блок 4. Включаем таймер и запоминаем начальное значение.

Блок 5. Выполняем выбранную операцию на Pascal.

Блок 6. Выключаем таймер и запоминаем считанное значение

Блок 7. Находим разницу между начальным значением времени и конечным

Блок 8-14. Подсчёт времени на выполнение выбранной операции на языке низкого уровня. Применяется язык Assembler.

Блок 8. Переменные, которые мы вводим с клавиатуры, находятся в памяти. Чтобы начать вычисления мы должны из памяти (ОЗУ) поместить значения в регистры процессора. Это мы делаем до включения таймера, чтобы время, затраченное на это действие, не вошло в результат.

Блок 9. Считываем начальное значение времени.

Блок 10. Выполняем операцию

Блок 11. Считываем конечное время

Блок 12. Находим время выполнения операции – это разница между конечным значением и начальным.

Блок 13. Выводим значение времен на экран и делаем выводы.

Блок 14. Выход из программы.

§6. Листинг программы

Program Test_of_CPU_for_Zuev;

uses crt;

var

vid:byte;

t1,t2,NN:word;

time1,time2:real;

Procedure Add_Pascal(N:word); {Сложение на Pascal}

var i:word;

Summa:integer;

Begin

summa:=0;

t1:=0;

t2:=0;

asm

in al,40h

mov bl,al

in al,40h {Считываем начальное значение тиков от таймера}

mov bh,al

mov t1,bx

end;

for i:=1 to N do

summa:=summa+i;

asm

in al,40h

mov bl,al {Конечное количество тиков}

in al,40h

mov bh,al


Страница: