Выбор конфигурации компьютера. Расчет производительности компьютера, страница 4

Но такая организация процесса вычисления идеально работает только для линейных программ без команд условного перехода. Наличие такой команды разветвляет алгоритм и продолжение вычисления невозможно до момента вычисления результата условия. Чтобы сократить время ожидания, в процессор добавлена система предсказания переходов, которая в случае правильного предсказания увеличивает производительность, а в случае ошибочного – снижает за счет того, что обработанные команды неправильного переход сбрасываются с конвейера.

Таким образом, для расчета производительности компьютера необходимо знать:

-  частоту процессора;

-  длину конвейера;

-  объем кэша I уровня и разделение его на команды и данные;

-  объем кэша II уровня, частота его работы, разделение на команды и данные;

-  частоту системной шины;

-  тип и частоту оперативной памяти;

-  оценку процента числа команд условного перехода и процента ошибок предсказания перехода.

В данной курсовой работе расчет производительности компьютера производится по усредненным оценкам, позволяющим оценить нижнюю границу производительности, т.е. считаем, что в программе 12,5% или 1 из 8 команд является командой условного перехода и в 25% случаях система предсказания переходов ошибается.

Параметры процессора, системной шины и памяти определим по их паспортным данным:

-  частота процессора : а) 2500 МГц;

б) 2000 МГц;

-  длина конвейера 20 команд;

-  объем кэша I уровня 32кб (16кб данные, 16кб команды), частота 2000, 2500 МГц;

-  объем кэша II уровня 512кб (256кб данные, 256кб команды), частота 2000, 2500 МГц;

-  частота системной шины 133 МГц;

-  оперативная память DDR, частота 133 МГц;

-  технология Hyper Treading не применяется, т.е. память и системная шина не используются в дуплексном режиме.

Произведем расчет производительности.

I. Процессор

1. а) Один такт процессора длится 1/(2500∙106) = 4∙10-10 с.

б) Один такт процессора длится 1/(2000∙106) = 5∙10-10 с.

2. В кэш I уровня помещается 16∙1024/4 = 4096 команд (каждая команда, являясь 32-х разрядной, занимает 4 байта).

3. На 4096 команды 4096∙12,5% = 512 команды условного перехода.

4. Из 512 команд в 128 случаях система предсказания переходов будет ошибаться.

Таким образом, на выполнение команд кэша I уровня потребуется

4∙10-10∙ (4096 + (128∙(20-1))) = 2611∙10-10 с

5∙10-10∙ (4096 + (128∙(20-1))) = 3264∙10-10 с

II. Кэш I уровня – кэш II уровня

1.  а) Один такт шины между Кешами длится 1/(2500∙106) = 4∙10-10 с.

б) Один такт шины между Кешами длится 1/(2000∙106) = 5∙10-10 с.

2. За один такт передается 4 байта данных в одну сторону.

Таким образом, на обмен данными между Кешами I и II уровня требуется а) (4∙10-10∙32∙1024/4)∙2 = 6553∙10-10 с

б) (5∙10-10∙32∙1024/4)∙2 = 8192∙10-10 с

III. Кэш II уровня – оперативная память

1. Один такт системной шины длится 1/(133∙106) = 7,5∙10-9 с.

2. За один такт передается 4 байта данных в одну сторону

3. Дополнительно используется 4 такта (по 2 такта на адрес строки и столбца матрицы памяти, по адресу которых данные передаются в память и извлекаются из нее).

Таким образом, на обмен данными между кэшем II уровня и оперативной памятью требуется а) 7,5∙10-9∙((512∙1024/4)∙2+4) = 1971011∙10-10 с

б) 7,5∙10-9∙((512∙1024/4)∙2+4) = 1971011∙10-10 с

Один цикл работы процессора складывается из выполнения команд в кэше I уровня, обмен данными между Кешами и повторения вычисления до окончания команд в кэше II уровня, после чего происходит обмен между памятью и кэшем.

Значит, длительность цикла процессора будет равна:

а) (2611∙10-10+6553∙10-10)∙(512/32) + 1971011∙10-10 = 2117648∙10-10 с.

б) (3264∙10-10+8192∙10-10)∙(512/32) + 1971011∙10-10 = 2154303∙10-10 с.

При этом будет выполнено 4096∙512/32 = 65536 команд. Делением числа команд на длительность их выполнения получим производительность

65536 / 2117648∙10-10 = 30 947 537 команды/сек (≈31 млн. команд в секунду).