Способы повышения производительности неймановских машин

Лекция 10.

Основные компоненты операционной системы

1) Драйверы периферийных устройств – программы, обеспечивающие управление периферийными устройствами (Например, “мышь”, CD-ROM, звуковая карта, принтер).

2) Файловая система – система организации информации файлов и каталогов.

3) Командный процессор, или процессор командного языка (COMMAND.COM) – интерпретатор команд, вводимых пользователем на машинный язык.

 

Несмотря на очевидный выигрыш в производительности мультипроцессорной системы, они применяются достаточно редко. Это связано в первую очередь с высокой стоимостью разработки и эксплуатации системы, а также с высокой сложностью ее программирования. Поэтому получили развитие несколько способов повышения производительности обычных однопроцессорных фон-неймановских машин. Одними из наиболее эффективных способов являются конвейеризация и использование кэш-памяти.

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

а) выборка команды;

б) декодирование команды;

в) вычисление адреса операнда;

г) выборка операнда;

д) выполнение команды;

е) запоминание результата.

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

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

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

При некоторых обращениях к памяти соответствующие значения заносятся в кэш, и в ходе последующих операций чтения по тем же адресам обращения происходят к кэш-памяти без последующих операций чтения по тем же адресам обращения происходят к кэш-памяти без необходимости затрачивать процессорное время на ожидание, которое неизбежно при обращениях к основной памяти. Кэш-память может использоваться для хранения либо команд, либо данных, либо информации обоих этих видов. Выборка ее содержимого может производиться произвольным образом, что позволяет одновременно хранить в кэш-памяти различные участки основного ОЗУ. Производительность кэш-памяти определяется временем доступа к ней и вероятностью удачных обращений, которая зависит от объема КЭШа и количества битов, переносимых в него при каждом обращении к основной памяти, называемого длиной строки. С увеличением длины строки повышается вероятность того, что следующее обращение будет удачным, т.е. необходимая информация окажется в кэше. Если при объеме КЭШа 4К байт и длине строки 4 байт вероятность удачных обращений составляет 80%, то при удвоении длины строки эта величина может достигнуть 85%; однако увеличение длины строки еще в два раза позволяет довести вероятность удачных обращений лишь до 87%. В зависимости от вида организации памяти кэш может быть ассоциативным или с прямым отображением.

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