Введение
Это руководство подробно описывает, как составлять оптимизированный код, на языке ассемблер, с конкректными примерами для Pentium(r) микропроцессора.
Это руководство более подробно, чем то, которое вы найдете где-нибудь еще, в большинстве случаев позволит вам вычислить - сколько тактов будет выполняться конкректная часть кода.
Програмировать на ассемблере гораздо труднее, чем на языке высокого уровня. Ошибки очень легко допустить , а вот обнаружить их гораздо труднее. И так, вы предупреждены! Я буду надеяться, что читатель уже имеет опыт програмирования на ассемблере, а если нет, то я рекомендую сначала изучить пособия по програмированию на ассемблере и только потом приступать к сложным оптимизациям.
При разработке чипа Pentium, были ускорены некоторые часто используемые инструкции или группы инструкций, без использования общих методов оптимизации. Следовательно правила оптимизации програмного обеспечения сильно усложнились и имеют много исключений, но потенциальный прирост производительности будет большим.
Прежде чем вы начали перекладывать вашу программу на ассемблер убедитесь, что вы уже максимально оптимизировали алгоритм. Гораздо чаще вы можете ускорить свою программу оптимизируя алгоритм, а не исполняемый код.
Кроме того, многие компиляторы с языков высокого уровня уже весьма неплохо оптимизируют код под Pentium, и дальнейшая оптимизация имеет смысл только в критических по скорости участкам программы.
Intel недавно заявил, что скоро они будут производить новые версии Pentium и PentiumPro процессоров, содержащих 57 новых инструкций для целочисленных векторных операций. Эта технология будет называться инструкциями расширения мультимедии (MMX). Поведение чипа Pentuim с MMX будет несколько отличаться от Pentium без MMX. Эти отличия будут отражены в соответствующей документации. PentuimPro процессор ведет себя совершенно по другому и будет лишь упоминаться в этом руководстве.
Информация в этом руководстве основана, главным образом, на моих собственных экспериментам с Pentium процессором. Информация о PentiumPro и процессорах с MMX - основана исключительно на документации полученной в Intel. Так-же выражаю благодарность Карки Дж. Бахадур из Колорадского университета.
Пожалуйста, не присылайте мне вопросов по програмированию. Я не собераюсь делать вашу домашнюю работу за вас.
Удачи в охоте за наносекундами!
Дальше
|