Cтраница 4
Оно в действи телыюсти зависит от степени детализации, с которой должна быть получена смесь команд. Предполагая, что в системе команд исходного ЦП имеется около 200 команд, можно получить смесь команд для каждой команды или для гораздо меньшего числа классов команд. В зависимости от расхождения во времени выполнения команд между исходным ЦП и проектируемым ЦП можно получать смесь команд для 16 классов или меньше. [46]
![]() |
Вспомогательный профиль. [47] |
В случае ЦП, если схемы не обеспечивают одного и того же увеличения производительности для каждой команды, то коэффициент улучшения должен быть определен одним из трех методов: методом смеси команд, методом ядер или же методом функциональной смеси. [48]
Рассматривая различные системы, мы можем вполне резонно считать, что управляющие программы и компиляторы могут резко отличаться друг от друга внутренней структурой и наборами команд. Это может сделать смесь команд для этих функций в высшей степени непостоянной. Но тогда, если построить смесь для одной системы и применить затем ее для тех же функций другой системы, это может послужить причиной возникновения грубых ошибок при сравнении смесей. Из-за зависимости проблемных программ от сервисных программ смесь команд для проблемной программы также может сильно изменяться, однако это, вероятно, не приведет к возникновению грубых ошибок. [49]
Скорость выполнения команд некоторым ЦП - величина переменная. Она зависит от того, какие типы команд учитываются при подсчете скорости. Встречается также вычисление скорости выполнения команды с использованием смеси команд или ядер. Если скорость выполнения команд основывается на комбинации команд, аналитику необходимо знать, что это за комбинация. Кроме этого наибольшее количество информации дает аналитику, по-видимому, знание скорости наиболее быстрой команды. [50]
Для определения смесей и других характеристик, основывающихся на частоте команд в записи, используется термин статический. Для определения свойств, основывающихся на частоте команд при выполнении программы, используется термин динамический. Чисто статическая смесь команд может быть получена из листинга программы. Оценки количества повторений какой-либо части программы не делаются. Динамическая смесь команд может быть получена с помощью измерительных средств, позволяющих получить информацию о камандах в процессе их выполнения. [51]
Эта глава была посвящена оценке производительности ЦП. Во многих случаях производительность ЦП является основным фактором общей производительности вычислительной системы, используемой в некоторой области или в ряде областей. Однако слишком часто ведущая роль ЦП при достижении системной производительности трактовалась неправильно. Методы смесей команд, анализа с помощью ядер и функциональных смесей позволяют учесть работу по обмену с внешними устройствами, и недостатки здесь - дело рук самого аналитика. [52]
Разрабатывая смесь команд для прикладной программы, необходимо учитывать объем выборки. В идеальном случае она должна быть настолько большой, чтобы обеспечивать стабильность, позволяющую игнорировать ( или усреднять) отклонения, вызываемые, например, выбором того или иного компилятора. Классическим таким делением является деление на коммерческую и научную области. В зависимости от вида исследуемой деятельности эти категории могут использоваться или не использоваться. В этом случае, когда есть основной пакет прикладных программ, забирающий большую часть системного времени, смесь команд можно строить в расчете только на этот пакет. [53]
Что касается компиляции с языков программирования, то здесь различия возникают не только из-за существования разных языков, таких, как APL, ALGOL, FORTRAN, COBOL, PL / 1, JOSS, BASIC и др., но и из-за больших различий внутри применений одного языка. Их естественно допускать при сравнении двух или более систем, но они возникают и при выборе различных компиляторов с одного и того же языка внутри одной системы. Этот выбор зависит обычно от уровня проектирования компилятора и степени оптимизации, реализуемой им. Под уровнем проектирования программы понимается определение тех ресурсов, которые доступны программе при выполнении ею своих функций. Критическими ресурсами являются объем основной памяти, а также число и тип устройств ввода-вывода. Если компилятору доступен лишь небольшой участок основной памяти, он должен быть организован как несколько сменяющих друг друга фаз или проходов. Если для хранения промежуточных данных может быть взято лишь устройство с последовательным доступом, например лентопротяжное устройство, компилятор должен быть ориентирован на такую последовательную работу. Далее, если лента может читаться лишь в прямом направлении, в компилятор должны быть включены операции перемотки лент между переходами. С другой стороны, если этих ограничений нет, компилятор может приобрести более эффективную структуру. В этих случаях эффект использования смеси команд в высшей степени непредсказуем, хотя, конечно, измерим. [54]