СПОСОБ ПОСТРОЕНИЯ ПРОГРАММЫ

1. Способ построения программы для выполнения в вычислительной системе, содержащей центральный процессор, память и кэш инструкции, в котором с помощью центрального процессора выполняют следующие операции:
строят исходный код программы;
формируют отчет о покрытии программы, причем сохраняют отчет о покрытии в памяти;
определяют в исходном коде программы циклы с высоким покрытием из отчета о покрытии;
модифицируют исходный код программы, при этом помечают в нем специальными метками циклы с высоким покрытием, выполненные с возможностью вставления в исходный код программы на ассемблере, и сохраняют модифицированный код программы в памяти;
компилируют модифицированный исходный код программы в исходный код программы на ассемблере для устройства назначения, добавляя при этом циклы с высоким покрытием и инструкции по выравниванию адресов процедур равномерно по размеру строки кэша и сохраняя исходный код на ассемблере в памяти;
определяют в исходном коде программы на ассемблере помеченные циклы и классифицируют их на несколько предопределенных типов;
строят модифицированный код программы.
2. Способ по п.1, отличающийся тем, что отчет о покрытии создают в устройстве назначения, предназначенном для выполнения программы.
3. Способ по п.1, отличающийся тем, что при выравнивании циклов вставляют требуемое число инструкций NOP ("нет операции").
4. Способ по п.3, отличающийся тем, что для циклов без внутренних циклов NOP инструкции вставляют до первой инструкции цикла, если адрес перехода назад в цикле выровнен по границе двойного слова.
5. Способ по п.3, отличающийся тем, что для циклов с одним внутренним циклом NOP инструкции вставляют до цикла с большим покрытием, если адрес перехода назад этого цикла выровнен по границе двойного слова.
6. Способ по п.1, отличающийся тем, что циклы с высоким покрытием помечают, по меньшей мере, одной NOP инструкцией, которая находится в блоке встроенного ассемблера внутри исходного кода программы.
7. Способ по п.1, отличающийся тем, что помеченные циклы классифицируют по следующим классам: циклы без внутренних циклов, циклы с одним внутренним циклом, циклы с несколькими внутренними циклами.