Оптимизация для pentium процессора переходы и ветви


Содержание

Оптимизация для pentium процессора переходы и ветви

ОПТИМИЗАЦИЯ
6.1. Приемы оптимизации для процессоров Intel Pentium

Все, что здесь написано, является выборкой наиболее важных на мой взгляд фактов из документации от Agner Fog. Если вы серьезно интересуетесь оптимизацией для Intel Pentium (plain, MMX, PPro, P2), найдите и прочтите эту документацию (я нашел на http://www.agner.org/assem, относительно старая версия есть на ftp://ftp.cdrom.com/pub/sac/text/pentopt.zip).

6.1.1. Спаривание целочисленных команд

По-моему, основной прием ускорения. Дело в том, что у процессоров Pentium есть два конвейера обработки команд, U-pipe и V-pipe. В результате некоторые пары команд могут исполняться одновременно, а это практически удваивает скорость.

Эти команды могут быть исполнены и в U-pipe, и в V-pipe, и при этом могут быть спарены (с какой-либо другой командой):

mov reg/mem,reg/mem/imm
push reg/imm
pop reg
lea, nop, inc, dec, add, sub, cmp, and, or, xor
некоторые формы test

Эти команды могут быть исполнены только в U-pipe, но при этом все-таки могут быть спарены:

adc, sbb
shr, sar, shl, sal на заданное число
ror, rol, rcr, rcl на единичку

Эти команды могут быть исполнены в любом конвейере, но могут быть спарены только в V-pipe:

near call (близкий вызов)
short/near jump (короткий/близкий переход)
short/near conditional jump (короткий/близкий переход по условию)

Все остальные целочисленные команды могут быть исполнены только в U-pipe и не могут быть спарены вообще.

Две последовательно идущих команды будут спарены в случае выполнения всех нижеследующих условий. Если хотя бы одно из условий не выполняется, то исполняется только первая команда, вторая (и, возможно, следующая за ней) команда будет исполнена лишь в следующем такте. Вот условия спаривания:

    Первая команда может быть исполнена и спарена в U-pipe, вторая, соответственно, в V-pipe.
  • Если первая команда записывает что-то в регистр, то вторая команда не может производить чтение/запись из регистра. Причем, в этом условии части регистров считаются за весь регистр (то есть, запись в al/ah расценивается как запись в eax, а запись в cf — как запись в flags). Пример:
  • Две команды, записывающие что-то в регистр флагов, могут быть спарены, несмотря на условие 2:
  • Команда, записывающая что-то в регистр флагов, может быть спарена с условным переходом, несмотря на условие 2:
  • Следующие пары команд могут спариться несмотря на то, что обе команды изменяют esp:
  • Существуют ограничения на исполнение команд с префиксом. Префиксы возникают в таких случаях:
    • команда, адресующаяся не к сегменту по умолчанию, имеет префикс сегмента (примеры: mov eax,es:[ebx]; mov eax,ds:[ebp])
    • команда, работающая с 16-битными операндами в 32-битном режиме или с 32-битными операндами в 16-битном режиме, имеет префикс разрядности операнда (примеры: mov ax,1234 в защищенном режиме; mov ax,word ptr [variable] в защищенном режиме; xor eax,eax в реальном режиме)
    • команды, использующая 32-битную адресацию в 16-битном режиме, имеет префикс разрядности адреса (пример: mov ax,[ebx] в реальном режиме)
    • rep, lock — префиксы (пример: rep stosd)
    • многие команды, которых не было на 8086, имеют двухбайтовый код команды, где первый байт равен 0Fh. На процессоре Pentium без MMX этот байт считается префиксом. Наиболее часто встречающиеся команды с префиксом 0Fh: movzx, movsx, push/pop fs/gs, lfs/lgs/lss, setXX, bt/btc/btr/bts/bsf/bsr/shld/shrd, imul с двумя операндами и без операнда-числа (immediate).

    На процессоре Pentium без MMX команда с префиксом может исполняться только в U-pipe, исключение — близкие переходы по условию (conditional near jumps). На процессоре Pentium с MMX команды с префиксами 0Fh и размера операнда или адреса может исполняться в любом конвейере; но команды с префиксами сегмента, rep или lock (повторения или блокировки шины) могут исполняться только в U-pipe.

  • Команда, в которой одновременно участвует смещение (displacement) и заданное число (immediate) не может быть спарена на процессоре Pentium без MMX и может быть выполнена и спарена только в U-pipe на процессоре Pentium с MMX. Вот примеры:
  • Спаривающаяся команда, которая читает из памяти, считает и записывает результат в регистр или в регистр флагов занимает 2 такта. Спаривающаяся команда, которая читает из памяти, считает и записывает результат обратно в память занимает 3 такта. Примеры таких команд:

    Существует также так называемое неполное спаривание (imperfect pairing), когда обе команды выполняются в разных конвейерах, но НЕ одновременно (возможно, частично перекрываясь по времени исполнения), а следующие за ними команды не могут начать исполнение, пока обе команды не закончатся. Такое случается в следующих случаях:

    1. Вторая команда вызывает AGI (address generation interlock, блокировка генерирования адреса). Это происходит, если адрес, используемый во второй команде зависит от регистров, измененных в первой команде. Примеры:
    2. Две команды одновременно обращаются к одному и тому же двойному слову памяти. Примеры (подразумевается, что esi делится на 4):
    3. Две команды одновременно обращаются к адресам, в которых одинковы биты 2-4 (это вызывает конфликт кэш-банков). Для dword-адресов это значит, что разница между двумя адресами делится на 32. Пример:
    4. Первая команда производит чтение, подсчет и запись одновременно; вторая — чтение и изменение; в этом случае число тактов, требующееся для выполнения пары команд, можно рассчитать по следующей таблице:
    первая команда
    вторая команда mov или
    регистровая
    чтение/
    подсчет
    чтение/подсчет/
    запись
    mov или регистровая 1 2 3
    чтение/подсчет 2 2 4
    чтение/подсчет/запись 3 3 5

    У процессора Pentium непосредственно на кристалле есть 8k кэш-памяти (это т.н. кэш-память первого уровня, L1 cache) для кода и 8k — для данных. Данные из L1 cache считываются/записываются за один такт; кэш-промах же может стоить довольно много тактов. Таким образом, для наиболее эффективного использования кэша необходимо знать, как он работает.

    Итак, L1 cache состоит из 256 кэш-линий (cachelines), по 32 байта в каждой. При чтении данных, которых нет в кэше, процессор считывает из памяти целую кэш-линию. Кэш-линии всегда выравнены на физический адрес, делящийся на 32; так что если прочитать байт по адресу, делящемуся на 32, то можно читать и писать в следующий за ним 31 байт без всяких задержек. Свои данные имеет смысл располагать с учетом этого факта — например, выравнивать массивы из структур длиной 32 байта на 32; перед записью в видеопамять читать оттуда один байт (один раз на 32 записываемых байта); используемые вместе данные располагать вместе; и так далее.

    Но кэш-линия не может быть связана с любым физическим адресом. У каждой кэш-линии есть некое 7-битное «заданное значение» (set-value), которое должно совпадать с битами адреса 5-11. Для каждого из 128 возможных значений set-value есть две кэш-линии. Отсюда следует то, что в кэше не может одновременно содержаться более двух блоков данных с одинаковыми битами адреса 5-11. Чем это чревато, покажем на примере.

    У используемых трех адресов будет одинаковое значение в битах 5-11. Поэтому к моменту самого первого чтения в ecx в кэше точно не окажется свободной кэш-линии, процессор выберет для нее наименее использованную (least recently used) линию, ту самую, которая была использована при чтении eax. При чтении ebx, соответственно, будет заново перекрыта линия, использованная при чтении ecx. В результате цикл будет состоять из сплошных кэш-промахов и съест порядка 60 тактов. Если же поменять 28 на 32, изменив, таким образом, на единичку биты 5-11 для адреса [esi+20*4096+28], то для чтения в eax и ebx будут как раз использованы две имеющихся линии, для чтения в ecx — третья, не совпадающая ни с одной из этих двух. В результате — скорость порядка трех тактов на один проход и ускорение примерно в 20 (. ) раз.

    Еще одна интересная вещь, которую стоит учесть — Pentium НЕ загружает кэш-линию при промахе записи; только при промахе чтения. При промахе записи данные пойдут в L2 cache или память (в зависимости от настроек L2 cache). А это довольно медленно. Поэтому, если мы последовательно пишем в один и тот же 32-байтовый блок, но не читаем оттуда, то имеет смысл сначала сделать холостое чтение из этого блока, чтобы загрузить его в L1 cache; тогда все последовательные операции записи будут есть только по одному такту.

    6.1.3. Разные трюки

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

    работа с fixed point вместо floating point иногда (если код не слишком сильно насыщен математикой) быстрее; практически всегда быстрее для клонов;

    все данные желательно выравнивать по адресам, кратным размеру данных (то есть, переменные-байты можно не выравнивать, слова — выравнивать на 2, двойные слова — на 4); обращение к невыравненной переменной влечет за собой задержку минимум на три такта;

    деление на заранее известное число можно заменить умножением на обратное ему число;

    деление на степень двойки для целых чисел заменяется на сдвиг влево; деление чисел с плавающей точкой (fdiv) на Intel Pentium (на клонах, к несчастью, это не так) может исполняться параллельно с целочисленными командами.

    Оптимизация процессора Intel

    13.08.2015, 13:40

    Температура процессора Intel i3 4170
    Здравствуйте, не подскажите температура 45C для процессора нормальная. Просто при запуске данная.

    Разгон процессора intel celeon
    Здравствуйте! Я хотел бы разогнать свой проц! Есть ли возможность это сделать не открывая корпус.

    Заявленная температура процессора от Intel
    Вопрос такой у меня возник спонтанно, в связи с жалобами многих владельцев процессоров Intel 7й.

    Топовые Intel процессора подешевели?
    Ух. Смотрите парни, что сейчас творится на computeruniverse :) i7-8700k — 25.5 рубля. i9-9900k.

    Температуры Процессора Intel P4 3.00 ггц
    У меня Intel P4 3.00 ггц,presscot,s 478.Без нагрузки температура 47-50 градусов,а под нагрузкой(в.

    Оптимизация под Pentium 4 HT своими руками?

    Jimbo Jones
    Pentium 4 HT very high

    Настройки графики не как не влияют в данном случае, если можно было снизить разрушаемость объектов как-нибудь?

    на торрентах с пятницы уже, ты видимо проспал )))

    2 Gameslove: где ты откопал материнку с pci-e 16x для видюхи и с сокетом под 4 пень? оО я в живую ни разу таких не видел.
    и вообще, с таким процем, твоя видюха показывает свои способности не больше, чем на 50-60%.

    оптимизация заключается в модифицировании geomod 2.0 «под тебя», так сказать. ничего у тебя не выйдет без распаковщика файлов и знаний с++, с, ассемблера.

    2 Gameslove: где ты откопал материнку с pci-e 16x для видюхи и с сокетом под 4 пень? оО я в живую ни разу таких не видел.
    и вообще, с таким процем, твоя видюха показывает свои способности не больше, чем на 50-60%.

    Из новых игр всё идёт нормально на максимальных настройках, 1280×1024, пока эта игра и GTA 4 клинарит. Лучше бы физику они загрузили бы на GPU.

    2 Jimbo Jones: ууу, ясно все.
    я говорил про «в живую».

    2 Gameslove: да ладно? 10 фпс это нормально? крайсис идет на макс? не врите пожалуйста, уж если не как модеру, то хотя бы как человеку разбирающемся в железе, программировании и всех производных, ок? ни за что не поверю, что все последнее идет нормально на максимуме при таком. грм, проце. пальцы не хотят такое писать.

    Особенности архитектуры процессоров Pentium III и Pentium IV

    Разработка процессоров Pentium III и Pentium IV определяла не только создание процессоров с новым уровнем производительности, но имела своей основной целью обеспечить эффективную поддержку мультимедийных и 3D технологий.

    Архитектурные особенности процессоров Pentium III:

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

    2. Технология обработки мультимедиа-данных Intel MMX™. Технология Intel MMX предусматривает поддержку набора из 57 целочисленных команд и четырех типов данных общего назначения, легко применимых для оптимизации широкого круга мультимедийных и коммуникационных приложений. В рамках этой технологии используется расширение «Одна инструкция над множественными данными» (Single Instruction, Multiple Data, SIMD); в процессор введены восемь 64-разрядных регистров технологии MMX.

    3. Технология динамического исполнения:

    · Многоуровневое предсказание ветвлений — предсказывает направление переходов сразу в нескольких точках ветвления программы, позволяя полностью загрузить процессор работой.

    · Анализ потока данных: переупорядочивает очередь выполнения команд, анализируя зависимости их операндов.

    · Спекулятивное исполнение — в случае отсутствия в очереди однозначно исполняемых команд процессор загружается предположительно исполняемыми, полностью используя суперскалярную структуру процессора.

    4. Самотестирование и мониторинг производительности:

    · Функция самотестирования (Built In Self Test, BIST) обеспечивает обнаружение одиночных неисправностей — типа остановки микрокоманды и ошибки в логических матрицах, а также тестирует кэш-память, буферы TLB и целостность микрокода.

    · Порт тестового доступа и архитектура сканирования окружения, соответствующие стандарту IEEE 1149.1, позволяют проверять процессоры Pentium III с помощью стандартного интерфейса.

    · Встроенный датчик производительности обеспечивает возможность мониторинга быстродействия и подсчета событий.

    · Встроенный в матрицу термодиод, измеряющий ее температуру. Системные платы позволяют использовать его для мониторинга температуры процессора.

    5. Внедрена высокопроизводительная архитектура двойной независимой шины (Dual independent Bus, DIB), разделяющая системную шину и шину кэш-памяти, повышающая скорость обмена данными, производительность и масштабируемость по мере развития новых технологий.

    6. Системная шина поддерживает множественные отложенные транзакции, повышающие ее доступность. Кроме того, шина обеспечивает совместную работу двух процессоров без «залипания». Это позволяет создавать недорогие симметричные двухпроцессорные системы, существенно повышающие производительность многозадачных и многопотоковых приложений.

    7. Неблокируемая объединенная кэш-память второго уровня (L2) объемом 512 Кб повышает производительность, сокращая среднее время доступа к памяти путем хранения часто используемых команд и данных. Пропускная способность кэш-памяти увеличена благодаря использованию отдельной 64-разрядной шины. Скорость работы кэш-памяти второго уровня растет с увеличением частоты процессора. Кроме того, в процессор встроена раздельная кэш-память первого уровня для команд и данных, объемом по 16 Кб. Процессоры поддерживают кэширование до 4 Гб памяти.

    8. Процессоры поддерживают функцию распознавания и коррекции ошибок (Error Correction Code, ECC) на шине кэш-памяти второго уровня для приложений с повышенными требованиями к целостности данных.

    9. Конвейеризованное устройство операций с плавающей точкой (Floating-Point Unit, FPU) поддерживает как 32-разрядный и 64-разрядный форматы IEEE 754, так и 80-разрядное представление чисел.

    10. Технология запроса адреса памяти и ответа системной шины с проверкой четности и возможностью повтора повышает надежность обмена данными.

    Pentium IV радикально отличается от своих предшественников. Архитектуре этих процессоров дано имя NetBurst. Рассмотрим важнейшие особенности процессора:

    1. Гиперконвейерная архитектура: Pentium IV отличается от предшественников конвейером, длина которого составляет не менее 20 стадий (конвейер Pentium III насчитывает 10 стадий). Именно поэтому новый процессор способен работать на сверхвысоких частотах. В самом деле: если последовательность исполнения команды разбита на более мелкие этапы, то каждый из них процессор сможет выполнять быстрее, следовательно, тактовую частоту ЦП можно повысить. К сожалению, длинный конвейер не лишен недостатков. Основной его враг — инструкции условных переходов. Процессор, выполняя такую команду, в зависимости от определенного условия должен либо совершить переход на новый адрес, либо продолжить обработку следующей инструкции. Все современные процессоры стараются предсказать результат каждого ветвления до того, как условие перехода будет вычислено. Если прогноз окажется верным, ЦП будет работать без простоев. Если предсказание ошибочно, процессору приходится очищать весь конвейер и запускать его заново. Pentium IV ошибается в предсказании ветвлений на треть реже, чем Pentium III.

    2. Кэш трассировки исполнения (Execution trace cache): Pentium IV отличается от х86-совместимых процессоров уникальной организацией кэш-памяти. Pentium III и Athlon используют одну половину кэш первого уровня (L1) для хранения инструкций, а другую – для данных. Все современные ЦП исполняют громоздкие инструкции х86, предварительно разбив их на простые и удобные для обработки микрооперации. Декодеры Pentium III и Athlon считывают команды из кэш-памяти первого уровня и делят их на микрокоманды, которые передаются исполнительному устройству. Такая схема имеет два серьезных недостатка:

    · Во-первых, если декодеру попадается сложная инструкция, то исполнительному устройству приходится простаивать до тех пор, пока она не будет преобразована в микрооперации;

    · Во-вторых, каждый раз при повторном исполнении команд (при обработке циклов) процессору приходится декодировать их заново.

    Pentium IV не хранит инструкции в кэш первого уровня. Вместо этого процессор помещает уже декодированный код в так называемом кэш трассировки исполнения (Execution Trace Cache).

    Иными словами, в новом кэш хранятся не классические инструкции х86, а готовые к исполнению микрооперации. Такой подход позволяет избежать описанных выше проблем. Во-первых, исполнительные устройства Pentium IV не ждут декодера, а считывают микрокоманды непосредственно из кэш трассировки исполнения. Во-вторых, если цикл полностью помещается в новый кэш, процессору не приходится декодировать его многократно. В Execution Trace Cache можно хранить до 12000 микрокоманд.

    Объем кэш первого уровня Pentium IV (данных) составляет всего восемь килобайт. Для сравнения: L1-кэш Pentium III и Athlon могут хранить до 16 и 64 килобайт данных соответственно; объем принесен в жертву скорости — на ожидание данных из кэш первого уровня Pentium IV тратит всего два такта, а его конкуренты — минимум три.

    Кэш второго уровня соединен с ядром широкой 256-битной шиной данных (Intel называет эту конфигурацию Advanced Transfer Cache).

    3. Механизм ускоренного выполнения (rapid execution engine): Все современные процессоры оснащены не одним, а несколькими АЛУ (арифметико-логическими устройствами, то есть блоками, выполняющими арифметические и логические операции над целочисленными данными). Инструкции х86 плохо поддаются распараллеливанию; очень часто процессор не может обработать команду до тех пор, пока не вычислит результат предшествующей ей инструкции. Такие пары команд называются зависимыми. Поскольку обрабатывать их параллельно нельзя, процессору приходится вычислять их по очереди.

    Чтобы максимально сократить время исполнения зависимых инструкций, Pentium IV оснащен двумя АЛУ, работающими на удвоенной частоте процессора. Каждое из них может исполнить за такт две простых операции (сложение, вычитание и логические). На удвоенной частоте обрабатываются не все арифметические команды, а лишь простейшие из них. Сложные операции (например, умножение) Pentium IV выполняет на своей номинальной частоте.

    4. SSE2: Набор SIMD-инструкций SSE, появившийся в процессорах Pentium III, не только включен в Pentium IV, но и существенно расширен. К имевшимся 70 командам добавлено еще 144. SIMD-инструкции (Single Instruction Multiple Data — одна инструкция над многими данными) производят арифметические операции над несколькими (более чем двумя) операндами. Прежние команды SSE позволяли обработать одновременно четыре пары вещественных чисел одинарной точности (восемь 32-битных чисел с плавающей запятой). Другие типы данных SSE не обрабатывает. Команды, появившиеся в SSE2, могут работать с двумя парами вещественных чисел двойной точности (четырьмя 64-битными числами с плавающей запятой) и целочисленными операндами длиной от одного до 16 байт. Добавлены также новые команды, управляющие кэшированием данных.

    Самым важным нововведением в SSE2 следует признать поддержку SIMD-операций над вещественными числами двойной точности. Напомним, что SSE и 3Dnow! работают лишь с операндами одинарной точности, недостаточной для многих инженерных приложений. AMD едва ли сможет добавить в свой набор команд операции над вещественными числами двойной точности. Дело в том, что инструкции 3DNow! хранят операнды в 80-разрядных регистрах математического сопроцессора, и втиснуть в такой регистр два 64-битных числа в принципе невозможно.

    5. Системная шина: Вместе с оригинальным ядром Pentium IV получил обновленную системную шину (FSB). От FSB процессоров Pentium III она отличается возможностью передавать данные четыре раза за такт (Intel называет этот режим «Quad Pumped»). Таким образом, даже работая на скромной частоте 100 мегагерц, эта 64-разрядная шина может передавать информацию со скоростью до 3.2 Гбайт/с. Впрочем, даже самая быстрая шина будет простаивать, если память не сможет поставлять данные с адекватной скоростью.

    Pentium IV подобный дисбаланс не грозит. Материнские платы для этого процессора оснащаются двухканальным контроллером памяти. Пропускная способность каждого канала может достигать 1.6 Гбайт/с; таким образом, суммарная полоса пропускания RAM достигает внушительной цифры 3.2 Гбайт/с.

    Не нашли то, что искали? Воспользуйтесь поиском:

    Оптимизация работы процессора: утилита CPU Control

    В данной публикации пойдет речь еще об одном стороннем инструменте оптимизации работы многоядерных процессоров – бесплатной программе CPU Control. «Еще» – потому, что автор уже касался этой темы, смотрите заметку об ICEAffinity . Детище немецкого разработчика Маттиаса Коча (Matthias Koch), русифицированная утилита CPU Control будет особенно интересна начинающим компьютерным пользователям из-за наличия многопрофильного авторежима оптимизации, но обо всем – по порядку.

    / опубликовано в IT-издании » Компьютерные Вести » № 6 2013 в рубрике «Software» /

    » Зачем это надо & что я буду с этого иметь? «

    Данный вопрос был затронут в озвученной статье, поэтому дефрагментирую сказанное до пары абзацев:

    • Некоторые приложения не поддерживают многоядерный режим, поэтому для корректной работы необходимо вручную выделить им отдельное процессорное ядро. Другой «проблемный» вариант – материнская плата асинхронно инициализирует ядра. В обоих случаях требуется оперативное вмешательство пользователя.
    • По умолчанию, Windows присваивает всем запускаемым процессам равный приоритет в пользовании процессорных мощностей. Что не совсем правильно в случае запуска ресурсоемких приложений, например, когда вашему любимому Call of Duty «мешает» антивирус вкупе с дюжиной другого «второстепенного» ПО. CPU Control поможет пропорционально разнести процессы по ядрам, что напрямую скажется на общей производительности системы.

    Important!

    Утилита поддерживает двух- и четырехъядерные процессоры, но, по отзывам, корректно работает и на 6–8 ядрах.

    Оптимизируем

    1. Для начала необходимо скачать утилиту например отсюда, из моего Каталога лучшего софта . Никаких «хитростей» в установке нет, поэтому последовательно жмем «Next» («Далее«) до полной инсталляции. Кстати, программа не «сорит» в реестре, т.е. портативна и носима на съемных накопителях.

    2. После запуска первым делом кликаем на » Options » («Опции«) и русифицируем CPU Control через «Languages» («Языки«) → «Russion«. Далее, в соответствии со следующим скриншотом, ставим галочки напротив » Автозапуск с Windows «, » Минимизировать » и » 4 ядра » (для четырех и более ядер). Понятно, что если ЦП двухъядерный, активировать «4 ядра» без надобности.

    3. Закрыв «Опции», в главном окне приложения видим 5 режимов контроля работы ЦП: » Авто «, » Ручной «, » CPU1 » (все процессы выполняются на 1-ом ядре), » CPU2 » (все процессы выполняются на 2-ом ядре) и » Отключено » (без оптимизации). Последние три режима нам не интересны, поэтому сосредоточимся на первых двух.

    Для начинающих пользователей автор рекомендует просто выбрать режим « Авто » и, закрыв окно, проверить для будущих загрузок Windows, чтобы CPU Control был в списке автозагружаемых приложений ( ! ). Это легко сделать, например, через Revo Uninstaller любой версии, смотрите в панели меню «Инструменты» → «Менеджер автозапуска» (при необходимости добавить приложение кликаем апплет «Добавить«).

    4. Для любителей «покопаться» эта простенькая утилита дает шанс «развернуться»: в авторежиме имеется 9 базовых профилей-вариаций распределения процессов по ядрам (скриншот ниже). При наличии времени и открытом на вкладке «Быстродействие» Диспетчере задач («Ctrl + Alt + Del» ), для мониторинга результатов, можно выбрать оптимальный профиль под свою систему.

    5. Самые «продвинутые» пользователи , желающие добиться максимальных результатов в деле повышения производительности системы данным способом, наверняка заинтересуются режимом « Ручной «. В этом режиме вы самостоятельно распределяете процессы по ядрам или группам ядер. Все просто: выделяете процесс(-ы) и через правую клавишу мыши «вешаете» на нужное ядро или комбинацию ядер. Например, при выборе «CPU1» процесс будет «висеть» на первом ядре, при выборе «CPU3+4» – на третьем и четвертом ядрах и т.д.

    Вот хороший вариант ранжирования для 4-ядерного ПК: системные процессы оставьте 1-ому ядру, самые ресурсоемкие приложения (типа Photoshop) «распылите» между всеми ядрами (вариант как на последнем скриншоте), а «середнячков» типа антивирусного сканера отдайте в руки комбинации на 2 ядра, скажем, «CPU3+4«. Диспетчер задач Windows поможет сделать правильный выбор. Для удобства мониторинга, при открытой в Диспетчере вкладке «Быстродействие«, проверьте, чтобы была активирована функция » По графику на каждый ЦП » (см. «Вид» → «Загрузка ЦП» → искомое «По графику на каждый ЦП«).

    В общем, экспериментируйте и ваши усилия обязательно окупятся сторицей!

    Как увеличить производительность процессора за счет настроек электропитания (парковка ядер, как включить все ядра ЦП ✔)

    Долго думал, стоит ли публиковать сегодняшнюю статью, т.к. вопрос довольно спорный (и результат после настройки у всех может быть разным, в зависимости от оборудования и ПО). И всё же, попрошу к статье отнестись критически и как к «экспериментальной».

    И так, ближе к теме. Windows не всегда «идеально» работает с многоядерными процессорами. В целях снижения энергопотребления, ряд процессов может выполняться на том ядре, на котором они были запущены изначально (такой подход позволяет: с одной стороны (позитивной) — не использовать постоянно все ядра (и за счет этого снизить энергопотребление) , а с другой (негативной) — не позволяет процессору работать на полную «катушку»).

    К тому же функция парковки ядер позволяет процессору (при определенной нагрузке) переносить все задачи на одно ядро, а остальные переводить в режим ожидания (т.е. работать будет фактически только одно ядро). Естественно, это снижает общую производительность (правда, делает систему более отзывчивой, но незначительно). Отмечу, что Windows к тому же не совсем корректно работает с парковой ядер на процессорах Intel (по крайней мере Windows 7).

    Так вот, задав определенные настройки электропитания, можно ограничить работу функции парковки ядер и повысить общую производительность (в некоторых случаях до 20%!). На мой взгляд есть смысл попробовать потратить 3-5 мин. на «эксперимент»!

    Примечание : в первую очередь эта тема касается многоядерных процессоров от Intel (на AMD, честно говоря, адекватной статистики не имею. Но попробовать можно. ).

    Как настроить тонко электропитание процессора

    Чтобы не быть голословным о повышении производительности, приведу один небольшой тест быстродействия в WinRAR (офиц. сайт архиватора). На скриншоте ниже: в левой части приведена общая скорость до оптимизации настроек; справа — после. Даже невооруженным глазом видно, что в тестах ЦП начинает работать быстрее (что положительно сказывается и в реальных задачах, тех же играх, например) .

    Разница в производительности

    Примечание : рекомендую вам запустить тест в WinRAR сначала до оптимизации настроек (и запомнить общую скорость), и затем провести тест после оптимизации. Далее просто сравнить эти числа, в ряде случаев удается выжать из ЦП еще 10-20%!

    Важный момент!

    Как уже сказал выше, в первую очередь этот вопрос касается многоядерных процессоров (4 ядра и выше). Чтобы узнать количество ядер своего ЦП — просто запустите утилиту CPU-Z, и посмотрите в нижнюю часть окна: в графе Cores увидите кол-во ядер (пример ниже).

    CPU-Z — 4 Cores (4 ядра, 8 потоков)

    1) И так, начать нужно с настройки реестра.

    Тут дело в том, что Windows по умолчанию скрывает часть настроек электропитания. Чтобы их открыть для редактирования, необходимо внести определенные изменения в реестр. Проще всего это сделать с помощью уже готового файла настроек, который нужно просто запустить и согласиться с добавлением параметров в системный реестр. Вот подготовленный файл: core_parking (нужно извлечь его из архива и запустить. Архив запакован с помощью WinRAR, актуален для Windows 7-10) .

    Редактор реестра — настройки успешно внесены в реестр

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

    2) Настройка схемы электропитания

    Теперь необходимо открыть панель управления Windows раздел «Оборудование и звук/Электропитание» . После перейти в настройки текущей схемы электропитания (т.е. ту, которая сейчас у вас используется). В моем случае это сбалансированная (см. скриншот ниже).

    Настройка текущей схемы электропитания

    Далее нужно открыть дополнительные настройки питания.

    Изменить дополнительные параметры питания

    Теперь самое главное (см. скриншот ниже):

    1. минимальное число ядер в состоянии простоя: рекомендуется выставить значение в 99% (почему-то если выставить 100% — Windows часто отправляет одно ядро «отдыхать»);
    2. разрешить состояние снижения питания: переведите в режим выкл. (не дает процессору экономить энергию);
    3. отключение простоя процессора: переведите режим в откл.;
    4. минимальное состояние процессора: 100% (незначительно ускоряет работу ЦП (кстати, в некоторых случаях позволяет уменьшить писк от дросселей )) .
    5. политика охлаждения системы: активная (более эффективно охлаждает ЦП);
    6. максимальное состояние процессора: 100% (очень сильно влияет на производительность! Обязательно выставите на 100%);
    7. максимальное число ядер в состоянии простоя: 100% (противоречивая опция. Если выставить что-то отличное от 100% — то грузятся почему-то не все ядра, несмотря на то что активны все. ).

    Дополнительные параметры электропитания

    Сохраните настройки и перезагрузите компьютер!

    3) Еще раз о режиме питания (касается в первую очередь ноутбуков)

    После перезагрузки компьютера (ноутбука) — обратите внимание на режим питания (кликните по батарейке в трее). Выставите производительность на 100%!

    Кроме этого, обратите внимание на центры управления ноутбуком, которые могут идти в комплекте к вашим драйверам (например, такие есть у устройств от Lenovo, Sony и пр.). В них также устройство нужно перевести в режим высокой производительности.

    Питание ноутбука // менеджер ноутбука

    4) Тестирование быстродействия

    После чего можно запустить WinRAR и провести тест быстродействия. Как правило, после точечной настройки электропитания наблюдается рост цифр (т.к. система перестает ограничивать ЦП, и он может начать работать на весь свой потенциал).

    Тестирование — WinRAR / Кликабельно

    Дополнение!

    Чтобы посмотреть, как идет нагрузка на ядра ЦП — откройте «Диспетчер задач» (Ctrl+Shift+Esc) и перейдите во вкладку «Производительность» . Далее щелкните правой кнопкой мышки по графику загрузки ЦП и в меню выберите «Изменить график/Логические процессы» . См. скрин ниже.

    Диспетчер задач — производительность

    В результате у вас будет не один график, а несколько, в зависимости от количества ядер (потоков).

    Все ядра загружены

    Обратите внимание, при нагрузке (например, тестировании) — в идеале все ядра должны быть загружены (как на скриншоте ниже).

    Для более показательного теста работы ЦП рекомендую воспользоваться утилитой AIDA64 (ссылку на инструкцию привожу ниже).

    Как выполнить стресс-тест процессора и системы в целом, держит ли он частоты, нет ли перегрева (AIDA 64) — https://ocomp.info/kak-vyipolnit-stress-test-videokartyi-noutbuka-v-aida-64.html

    PS

    В рамках этой статьи не могу не порекомендовать еще одну статью на похожую тему. Она касается в первую очередь ноутбуков (т.к. в ряде случаев у них в настройках по умолчанию отключен Turbo Boost, в следствии чего устройство работает медленнее, чем потенциально могло бы. ).

    Параллельная обработка данных в процессоре Pentium MMX

    Читайте также:

    1. Web-страница должна идентично отображаться в Microsoft Internet Explorer и Netscape Navigator, причем весьма желательно — в последней и предпоследней версиях данных программ.
    2. Абстрактные типы данных и скрытие информации
    3. Автоматизация ввода данных
    4. Автоматизированная обработка выписок банка
    5. Аномалии при выполнении операций в базе данных.
    6. Аренда имущества и ее виды. Учет арендованных и сданных в аренду основных средств.
    7. База данных Безопасной Ассоциации (SAD)
    8. База данных учетных записей пользователей
    9. Базовые понятия реляционных баз данных
    10. Базы данных и системы управления базами данных
    11. Банки данных
    12. Беспроводные ЛВС с радиопередачей данных

    Процессор Pentium MMX (MultiMedia extension) является раз­витием процессора Pentium. Он выполнен по более совершенной технологии с проектной нормой 0,35 мкм. Это позволило повы­сить уровень интеграции кристалла (4,5 млн транзисторов) и уве­личить тактовую частоту работы до 233 МГц. Разработчики архи­тектуры процессора Pentium MMX использовали увеличение ап­паратного ресурса процессора для включения в его структуру до­полнительных устройств, обеспечивающих повышение произво­дительности, при этом особое внимание было обращено на ре­ализацию высокопроизводительной обработки видео и аудиоин­формации.

    С ростом вычислительной мощности процессоров типа Pentium появилась возможность обрабатывать потоки данных мультимедиа без дополнительных аппаратных рас­ширений и процессоров. При решении задач, связанных с обра­боткой видео и аудиоинформации (двумерная фильтрация, быст­рое преобразование Фурье, умножение матриц, свертки и т.п.), обрабатываемые данные в большинстве случаев являются одно­родными, и над ними совершаются одинаковые операции. Для повышения производительности процессора при обработке по­добной информации разработчики процессора Pentium ММХ пред­ложили использовать параллельную обработку многих данных од­ной командой — SIMD-обработку (Single Instruction — Multiple Data), сохранив при этом полную совместимость с ранее создан­ным ПО и ОС. При SIMD-обработке используется векторная об­работка данных, необходимая во многих мультимедийных и ком­муникационных алгоритмах.

    Развитие принципов суперскалярной(более 1 конвеера) и суперконвейерной(больше 5 ступеней) организации в процессорах Pentium 6-го поколения

    Процессор Pentium Pro является представителем следующего после Pentium 6-го поколения МП компании Intel. К этому поко­лению также относятся все модификации процессоров Celeron, Pentium II, Pentium III. Обобщенное название процессоров 6-го поколения — Р6. Они имеют архитектуру, которая одновременно является суперскалярной и суперконвейерной.

    По сравнению с МП Pentium в МП Р6 реализованы следующие нововведения:

    — Суперконвейерная архитектура дополнена средствами изменения последовательности исполнения команд (out-of-orderexecution). Исполнение программ с изменением последователь­ности команд — это совокупность методов, позволяющих пере­давать команды в сполнительные блоки в порядке, отличном от предписанного программой.

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

    — Увеличено число регистров, используемых при исполнении команд, что особенно важно при организации исполнения команд с измене­нием последовательности.

    МП Р6 назвали все перечисленные технические решения одним простым выражением, используемым для марке­тинга, — «динамическое выполнение» (Dynamic Execution Architecture), которое отражает способность МП Р6 оптимизиро­вать исполнение программы, предсказывая его дальнейший ход, выполняя некоторые команды до разрешения условия перехода и выбирая лучший порядок исполнения команд программы.

    Первым МП 6-го поколения является МП Pentium Pro. Он изготовлен по технологии с проектной нормой 0,35 мкм (5,5 млн транзисторов) и содержит размещенные на кристалле процессо­ра блоки кэш-памяти 1-го и 2-го уровней.

    Процессор Pentium II. МП Pentium II объединяет архитектур­ные решения МП Pentium Pro и МП Pentium MMX. Первые МП Pentium II (1997) изготовлялись по CMOS-технологии с проектной нормой 0,35 мкм. Они имели напряжение питания 2,8 В, содержали 7,5 млн транзисторов и работали на частоте до 300 МГц.

    Упрощенным и значительно более дешевым вариантом МП Pentium II является модель процессора, названная Celeron. Пер­вые МП Celeron выпускались без микросхем вторичного кэша, более поздние модели содержат вторичный кэш размером 128 Кбайт. Одной из главных особенностей процессоров Celeron является то, что они предназначены только для построения однопроцессор­ных систем.

    Процессор Pentium III. МП Pentium III — последний предста­витель 6-го поколения процессоров х86. Его главным от­личием от МП Pentium II является SSE-расширение (Streaming SIMD Extensions) набора векторных SIMD-команд для обработ­ки упакованных данных в формате чисел с плавающей точкой (одинарная точность). Использование команд SSE-расширения обеспечило увеличение производительности процессора Pentium III при выполнении прикладных программ обработки изображе­ний и 3-мерной графики.

    Процессор Pentium III содержит 28 млн транзисторов(0,25 мкм) и устой­чиво работает на частотах до 1,2 ГГц.

    Процессор Pentium IV.МП Pentium IV (2000) является предста­вителем следующего (7-го) поколения процессоров х86. С программной точки зрения МП Pentium IV принципиаль­ных архитектурных расширений не содержит. Его можно рассматривать как МП Pentium III с расширенным набором векторных команд, оперирующих с регистрами ХММ и ММХ. Новые коман­ды МП Pentium IV, работающие с числами разных форматов, включая учетверенные слова (64 бит) и числа двойной точности с плавающей точкой, получили название SSE2-расширение.

    МП Pentium IV изготовлен по CMOS-технологии с проектной нормой 0,18 мкм, содержит около 42 млн транзисторов и рассчи­тан на работу с тактовыми частотами свыше 1,4 ГГц. Процессор требует мощного охлаждения — при напряжении питания 1,6 В он потребляет ток до 40 А, что соответствует рассеиваемой мощно­сти 65 — 70 Вт. Как и во всех МП Pentium, разрядность шины дан­ных процессора Pentium IV составляет 64 разряда. Шина адреса имеет ширину 36 бит, обеспечивая адресацию 64 Гбайт памяти, из которых кэшируются только первые 4 Гбайт. В МП Pentium IV обработка команд выполняется на 20-ступен-чатом конвейере (по определению Intel — гиперконвейере).

    Pentium D, двухъядерный (Dual-core) микропроцессор, частота системной шины: 800 (4×200) МГц. Ядро Smithfield — 90 нм технологический процесс (2,8—3,4 ГГц), Представлен: 26 мая 2005 года, 2,8—3,4 ГГц (номера моделей 820—840), Количество транзисторов: 230 миллионов, Кэш L2: 1 МБ x 2 (non-shared, 2 МБ всего). Производительность увеличилась примерно на 60 % по сравнению с одноядерным микропроцессором Prescott. Ядро Presler — 65 нм технологический процесс (2.8—3.6 ГГц), представлен: 16 января 2006 года, 2,8—3,6 ГГц (номера моделей 920—960), количество транзисторов: 376 миллионов, кэш L2: 2 МБ x 2 (non-shared, 4 МБ всего). Последний процессор микроархитектуры NetBurst.

    Микроархитектура Intel Core является многоядерной микропроцессорной архитектурой, представленной фирмой Intel в 1-м квартале 2006 года. Микроархитектура Intel Core основана на обновлённой версии ядра Yonah и может рассматриваться в качестве последней итерации(основна) микроархитектуры Intel P6, которая ведёт свою историю с Pentium Pro, представленного в 1995 году. Чрезмерно высокое энергопотребление и завышенные требования к охлаждению процессоров, основанных на микроархитектуре NetBurst, и, в результате, неспособность эффективно увеличивать тактовую частоту, а также другие узкие места, такие, как неэффективность конвейера, являются главными причинами, почему Intel отказалась от микроархитектуры NetBurst. Микроархитектура Intel Core была разработана командой Intel Israel (IDC), которая ранее разработала мобильный процессор Pentium M. Микроархитектура Intel Core обеспечивает высокую производительность, энергосбережение и быстродействие в многозадачных средах. Она имеет несколько ядер и аппаратную поддержку виртуализации (Intel VT), а также Intel 64 и SSSE3.

    Intel Core 2, ядро Conroe — 65 нм технологический процесс, микропроцессор для настольных систем, Представлен: 27 июля 2006 года. Поддержка инструкций SIMD: SSE3, количество транзисторов: 291 миллион у моделей с 4 МБ кэш-памяти. Реализованы технологии: Intel Virtualization Technology — аппаратная виртуализация, LaGrande Technology — аппаратная технология защиты информации, Execute Disable Bit, EIST (Enhanced Intel Speed Step Technology), iAMT2 (Intel Active Management Technology) — удаленное управление компьютерами. Сокет: LGA775.

    Intel Core i7 Extreme Edition. Ядро Bloomfield — 45 нм технологический процесс. Микропроцессор для настольных систем со встроенным трехканальным контроллером DDR3 памяти, представлен: 16 ноября 2008 года.Поддержка инструкций SIMD: SSE3, SSSE3, SSE4.1, SSE4.2, количество транзисторов: 731 млн. Реализованы технологии: Hyper-Threading, QPI, Turbo Boost, Intel Virtualization Technology — поддержка нескольких операционных систем на одном компьютере, LaGrande Technology — аппаратная технология защиты информации, Execute Disable Bit, EIST (Enhanced Intel Speed Step Technology), iAMT2 (Intel Active Management Technology) — удаленное управление компьютерами. Сокет: LGA1366. Ядро Gulftown — 32 нм технологический процесс, микропроцессор для настольных систем, 6 процессорных ядер, 6×256 Кбайт L2-кэш,12 Мбайт L3. Поддержка инструкций SIMD: SSE3, SSSE3, SSE4.1, SSE4.2. Реализованы технологии: Hyper-Threading, Turbo Boost, QPI, Intel Virtualization Technology, Execute Disable Bit, EIST (Enhanced Intel Speed Step Technology), сокет: LGA1366.

    2. Особенности процессоров, архитектурно близких к процессорам семейства Pentium

    Процессоры, архитектурно близкие к МП семейства Pentium, производят ряд фирм, в том числе AMD (Advanced Micro Devises), IBM, Cyrix. В основном процессоры этих фирм обладают близкими, а в ряде случаев и лучшими характеристиками по срав­нению с процессорами Intel, но имеют меньшую стоимость. Улуч­шение характеристик достигается за счет технологии и некоторых оригинальных архитектурных решений.

    3. Процессоры архитектуры IA-64

    Суперскалярная архитектура IA-64 (Intel Architecture 64) явля­ется результатом совместной разработки компаний Intel и Hewlett Packard [29, 35]. Эта архитектура радикально отличается от всего, что до нее использовалось на рынке ПК. Архитектура IA-64 не является ни 64-разрядным расширением 32-разрядной архитекту­ры х86 компании Intel, ни переработкой 64-разрядной архитекту­ры процессора РА-RISC компании Hewlett Packard. В IA-64 реали­зуется ряд новых подходов, обеспечивающих больший паралле­лизм при исполнении кода программы и существенное повыше­ние производительности. К ним относятся «предикация» (способ обработки ветвлений) и «загрузка данных по предположению».

    Одной из наиболее существенных особенностей архитектуры IA-64 является использование очень длинных командных слов (VLIW-команд) и большого числа регистров. В суперскалярных VLIW-процессорах реализуется принцип планирования исполне­ния команд во время компиляции. Ответственность за параллель­ное выполнение операций при этом возлагается на внешние сред­ства, не участвующие непосредственно в управлении исполнением машинных команд. С помощью оптимизирующего компилятора ис­ходный текст программы преобразуется в пакеты несвязанных опе­раций.

    I IA-64 — полностью 64-разрядная архитектура. В ней определе­ны 64-разрядное адресное пространство и 64-разрядные форматы целых чисел и чисел с плавающей запятой. Первым процессором с архитектурой IA-64 стал МП Itanium фирмы Intel. Как и любой суперскалярный процессор, МП Itanium содержит большое число исполнительных блоков, способных одновременно выполнять не­сколько независимых команд различных типов: целочисленных, мультимедийных, с плавающей запятой. Конвейер МП Itanium (10-ступенчатый) в каждый такт работы процессора выдает на исполнение до восьми машинных команд.

    4. Семейство процессоров SPARC

    Название SPARC (Scaleable Processor ARChitecture — нара­щиваемая архитектура процессора) определено не для конкрет­ного процессора, а для системы команд, которой соответствует семейство процессоров. Основным производителем процессоров SPARC является компания SUN, которая и предложила эту ар­хитектуру.

    Название SPARC (Scaleable Processor ARChitecture — нара­щиваемая архитектура процессора) определено не для конкрет­ного процессора, а для системы команд, которой соответствует семейство процессоров. Основным производителем процессоров SPARC является компания SUN, которая и предложила эту ар­хитектуру.

    Первые реализации SPARC-архитектуры были выполнены ком­панией SUN в середине 80-х гг. XX в. на базе процессора RISC-II, разработанного в университете города Беркли. Это был 32-разряд­ный суперскалярный процессор с адресуемым пространством па­мяти 4 Гбайт, расширенным набором регистров и фиксирован­ным форматом 3-адресных команд.

    SPARC — открытая архитектура, поэтому любые производите­ли могут строить свои процессоры в соответствии с этой архитек­турой [29, 35]. В настоящее время известны несколько версий спе­цификации архитектуры SPARC: 32-битные MicroSPARC, SuperSPARC, HyperSPARC и 64-битные UltraSPARC. Последняя 64-битная версия с адресами и регистрами по 64 бит получила название SPARC-V9. Архитектура UltraSPARC реализована в се­мействе процессоров с одноименным названием: процессоры UltraSPARC I, UltraSPARC II и UltraSPARC III. На базе этих про­цессоров компания SUN разрабатывает 64-битные рабочие стан­ции, предназначенные для решения широкого круга задач, в том числе для работы с мультимедийными приложениями (графиче­скими изображениями, ауди- и видеообъектами). В настоящее время стандарт UltraSPARC является стандартом для высокопроизводительных рабочих станций.

    5. Микропроцессоры семейства MIPS

    Процессоры архитектуры MIPS предложены компанией MIPS Technology в 1986 г. Первые процессоры MIPS R2000, R3000 рабо­тали на частоте до 40 МГц. Они были 32-разрядными с 32-разряд­ной шиной адреса. В состав этих процессоров входили блоки вы­полнения команд целочисленной арифметики и команд опера­ций с плавающей запятой. Они содержали 32 РОН для целочи­сленных вычислений, 16 регистров блока выполнения операций с плавающей запятой и специальную пару регистров для хране­ния результатов выполнения операций целочисленного умноже­ния и деления. Формат команд был фиксирован и составлял 32 разряда. Для обращения к операндам в памяти использовались только команды Load/Store и один способ адресации. Процессоры R2000, R3000 имели стандартный 5-ступенчатый конвейер. Они достаточно долго служили основой для построения рабочих стан­ций и серверов компаний Silicon Graphics, Digital и др. Позднее после упразднения фирмы MIPS основным производителем про­цессоров семейства MIPS стала компания Silicon Graphics.

    Наиболее «продвинутым» процессором семейства MIPS явля­ется суперскалярный 64-битовый процессор R10000 [13]. По срав­нению с процессором R8000 он более универсален и может ис­пользоваться как в качестве процессора ПК, так и в рабочих стан­циях, а также в многопроцессорных серверах баз данных. Процес­сор R10000 содержит около 7 млн транзисторов (из них 4,5 млн транзисторов расходуется на внутренний кэш 1-го уровня L1) и работает на частоте до 200 МГц.

    Процессор R10000 содержит следующие основные блоки:

    — два блока внутренней кэш-памяти 1-го уровня: раздельные кэш команд и кэш данных емкостью 32 Кбайт каждый;

    — блок управления вторичным кэшем;

    — блок предварительной выборки команд, обеспечивающийупреждающую выборку команд, их частичную дешифрацию и переименование регистров;

    — блок предсказания ветвлений;

    — три очереди команд;

    — блок вычисления адресов, обеспечивающий вычисление ис­полнительных адресов операндов в памяти;

    — блок выполнения команд целочисленной арифметики, в со­ став которого входят АЛУ1, АЛУ2 и блок целочисленных регист­ров, соединенный через коммутатор с внутренней кэш-памятью данных;

    — блок выполнения команд с плавающей точкой (в его состав входят cумматор, умножитель и блок регистров с плавающей то­чкой).

    6. Микропроцессоры семейства PowerPC

    Архитектура МП PowerPC разработана в середине 90-х гг. XX в. совместными усилиями трех фирм: IBM, Motorola, Apple для ПК. Основой архитектуры этого семейства является RISC-про­цессор POWER фирмы IBM. POWER является аббревиатурой на­звания Performance Optimization With Enhanced — оптимизация работы с использованием усовершенствованного RISC. По срав­нению с традиционным RISC-процессором МП POWER имеет ряд дополнительных свойств:

    — МП POWER — суперскалярный процессор, содержащий в своем составе три независимых исполнительных блока: целочи­сленных вычислений, операций с плавающей запятой и обработ­ки переходов. Для каждого исполнительного блока определен соб­ственный набор регистров и обеспечена независимость работы этих блоков. Благодаря такой организации исполнительных блоков ко­манды могут заканчиваться не в порядке поступления.

    — Система простых RISC-команд МП POWER расширена не­большим числом «сложных» команд, которые реализуют относи­тельно сложные операции, например групповую загрузку и чте­ние памяти. Использование «смешанных» команд позволяет ми­нимизировать размер программного кода, устраняя основной не­достаток RISC-архитектур — большой размер программного кода.

    — В МП POWER усовершенствован механизм обработки ко­манд условного перехода. Традиционно в RISC-процессорах при выполнении любой команды арифметических и логических опе­раций в регистре флагов фиксируются признаки результата. Един­ственный регистр флагов результата существенно ограничивает возможности процессора выполнять несколько команд одновре­менно, особенно в случае неупорядоченной обработки. В МП POWER для устранения указанного ограничения используется несколько (восемь) регистров условий и условные переходы об­рабатываются с помощью специального блока обработки ветвле­ний. Работа этого блока основана на том, что ветви большинства условных переходов являются короткими и при выполнении ко­манд ветви происходит возврат к основной программной после­довательности. Блок обработки ветвлений выделяет в потоке вход­ных команд условные переходы и заранее выбирает ветвь продол­жения программы. Если переход не предсказывается, выполнение программы происходит так, будто команды перехода не было. При предсказании перехода блок ветвления запрашивает из кэша последовательность команд, расположенных по адресу ветвления. В МП POWER реализовано статическое предсказание переходов. Формат команд МП POWER расширен специальным битом усло­вий. Модифицируя этот бит, компилятор может изменить прави­ла предсказания переходов.

    В однокристальных МП семейства PowerPC сохранены свой­ства архитектуры МП POWER и усовершенствован процесс па­раллельного выполнения команд. Семейство представлено несколь­кими процессорами: МП PowerPC 601, МП PowerPC 603, МП PowerPC 604, МП PowerPC 620, МП PowerPC 750, МП PowerPC G4, МП PowerPC G5 и некоторыми другими. Младшие модели суперскалярных процессоров семейства (МП PowerPC 601, МП PowerPC 603, МП PowerPC 604) являются 32-разрядными, а стар­шие модели (МП PowerPC 620) — 64-разрядными. МП PowerPC содержат в своем составе несколько исполнительных блоков: блок целочисленных вычислений, блок операций с плавающей точкой и блок обработки переходов. Все блоки конвейеризированы. МП PowerPC допускают внеочередное исполнение команд и обеспе­чивают одновременную выдачу на исполнение до четырех команд. В каждом такте работы МП PowerPC 601 и МП PowerPC 603 могут завершать исполнение до трех команд, а процессор PowerPC 604 — до шести команд.

    Суперскалярный процессор PowerPC 620 стал первой 64-раз­рядной реализацией архитектуры PowerPC. Он предназначен для построения высокопроизводительных ВМ, серверов и мульти­процессорных систем. МП PowerPC 620 совместим по коду с ран­ними моделями процессоров PowerPC. Благодаря этому он может выполнять не только новые, специально разработанные для него 64-битовые программы, но и ранее созданные 32-битовые про­граммы МП PowerPC.

    Архитектура МП PowerPC развивается и дополняется новыми моделями. Кроме компании IBM, процессоры этой архитектуры производит компания Motorola, использующая в обозначении своих процессоров префикс МРС. Отличительной особенностью новых моделей процессоров PowerPC является использование в них технологии обработки мультимедийных данных AltiVec, пред­ложенной компанией Motorola. В обеспечение этой технологии в труктуру процессора вводят специальные аппаратные средства — блок векторной обработки. В его состав входят 32 регистра (128- разрядных) для хранения мультимедийных (векторных) данных и специализированные арифметико-логические блоки для обра­ботки этих данных. Технология AltiVec близка к обработке муль­тимедийных данных командами ММХ и SSE в процессорах Penti­um II, Pentium III, Pentium IV. Она обеспечивает параллельную обработку упакованных данных (векторов) длиной 4, 8 или 16 эле­ментов. Команды AltiVec ускоряют работу мультимедийных прило­жений и приложений цифровой обработки сигналов. Общее число команд блока векторной обработки составляет 162 команды.

    7. Семейство процессоров Alpha

    Высокопроизводительные суперскалярные МП Alpha компа­нии DEC (Digital Equipment) представлены семейством Alpha21x64 (х = 0, 1, 2, 3). Высокая производительность этих процес­соров (по данному показателю они являются лидерами среди од­нокристальных МП) в основном обеспечивается за счет высокой тактовой частоты работы и использования длинных конвейеров выполнения операций. Упрощенная логика работы отдельных сту­пеней конвейеров позволяет минимизировать время исполнения операций в каждой ступени и благодаря этому повысить частоту работы конвейеров.

    Первый член семейства 64-разрядный RISC-процессор Alpha 21064, разработанный в 1993 г. практически одновременно с МП Pentium, работает на частоте 200 МГц (частота работы МП Pentium была 66 МГц). В его составе имеются четыре конвейеризирован­ных операционных блоков: целочисленных вычислений, опера­ций с плавающей запятой, обработки переходов и загрузки (за­поминания) с числом ступеней 7, 10, 6 и 7 соответственно. Реги­стровый файл процессора содержит по 32 регистра (64-битовых) блоков целочисленных вычислений и операций с плавающей за­пятой. Внутренние раздельные кэши команд и данных, размещен­ные на кристалле процессора, имеют емкость 8 Кбайт каждый. Первые четыре ступени конвейеров являются общими для всех конвейеров. За такт процессор может выполнять до двух команд: команду целочисленной арифметики и команду операций с пла­вающей запятой или команду перехода. В процессоре Alpha 21064 не используются сложная логика переупорядочения команд и пе­реименование регистров. Обеспечение эффективной загрузки ис­полнительных блоков возлагается на компилятор.

    Последним членом семейства процессоров Alpha 21×64 являет­ся процессор Alpha 21364 компании Compaq (в конце 90-х гг. XX в. Compaq приобрела компанию DEC). Процессор производится по тех­нологии с проектной нормой 0,18 мкм, содержит около 100 млн транзисторов (из них 92 млн расходуются на кэш). МП Alpha 21364 является развитием процессора Alpha 21264. В нем наряду с ядром МП Alpha 21264 использован ряд архитектурных решений, обес­печивших существенное повышение производительности. Но­выми блоками процессора Alpha 21364 являются 6-канальный час­тично ассоциативный кэш 2-го уровня объемом 1,5 Мбайт, конт­роллер управления внешней динамической памятью и встроенный сетевой интерфейс. Значительный объем кэша 2-го уровня и встро­енные средства управления внешней памятью удешевляют постро­ение систем на основе данного процессора, а благодаря наличию встроенного сетевого интерфейса существенно упрощается объ­единение процессоров в высокопроизводительные ВС.

    8. Тенденции развития архитектур процессоров

    Самым существенным фактором, влияющим на архитектурные решения современных МП, является постоянное совершенствова­ние технологии производства ИС и, как следствие, — рост уровня интеграции, уменьшение задержек в вентилях и связях, снижение энергопотребления при переключениях вентиля. В целом с ростом уровня интеграции увеличиваются ресурсы на кристалле и повы­шается тактовая частота работы микросхем. Большое число венти­лей на кристалле делает возможным применить в одном МП все известные приемы повышения производительности процессора. Важнейшими являются два: уменьшение относительного числа об­менов данными с внешними по отношению к кристаллу устрой­ствами и использование параллельной обработки на всех уровнях организации вычислительного процесса. Разработчики процессо­ров используют увеличивающие ресурсы кристалла для повыше­ния производительности именно по эти двум направлениям. Пер­вое направление связано с увеличением объема внутренней кэш­памяти и совершенствованием способов ее организации. Второе направление характеризуется реализацией в процессорах принци­пов конвейеризации и параллельной обработки в нескольких кон­вейерах на разных стадиях выборки и исполнения команд.

    На сегодняшний день можно выде­лить три основных тенденции развития архитектур современных процессоров:

    — применение суперскалярной обработки с динамическим па­
    раллелизмом в процессорах с чисто аппаратным механизмом вы­
    борки несвязанных команд программы из памяти и параллельном
    запуске их на исполнение (процессоры Pentium, PowerPC, Alpha,
    SPARC и др.);

    — развитие суперскалярной обработки со статическим паралле­
    лизмом, при котором выявление скрытого параллелизма и опре­
    деление возможности параллельного исполнения команд возлага­
    ется на оптимизирующий компилятор (VLIW-процессоры Е2К,
    Itanium, Crusoe);

    — использование аппаратных средств, обеспечивающих вектор­
    ную обработку данных.

    Современный процессор — это 64-разрядный суперконвейвейерный, суперскалярный процессор с RISC-операционным ядром и большим числом исполнительных блоков, реализующий дина­мическое исполнение команд. Для эффективной обработки дан­ных мультимедиа и графики система команд современных про­цессоров расширяется за счет специализированных команд муль­тимедийной обработки: команд расширений ММХ, SSE, SSE2 в процессорах компании Intel; AltiVec — IBM, Motorola; VIS — SPARC; 3DNow! — AMD.

    Для объединения процессоров в высокопроизводительные ВС большинство современных процессоров содержат средства поддер­жки симметричной мультипроцессорной обработки SMP.

    | следующая лекция ==>
    ГИДРОИЗОЛЯЦИЯ ФУНДАМЕНТОВ И ПОДЗЕМНЫХ ЧАСТЕЙ ЗДАНИЯ | Пересечение прямой линии с поверхностью

    Дата добавления: 2014-01-03 ; Просмотров: 420 ; Нарушение авторских прав? ;

    Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

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

    Частота и производительность процессора может быть выше, чем указано в стандартных характеристиках. Также со временем использования системы производительность всех главных комплектующих ПК (оперативной памяти, ЦП и т.д.) может постепенно падать. Чтобы этого избежать, нужно регулярно “оптимизировать” свой компьютер.

    Необходимо понимать, что все манипуляции с центральным процессором (особенно разгон) нужно проводить только если убеждены в том, что он сможет их “пережить”. Для этого может потребоваться выполнить тестирование системы.

    Способы оптимизации и ускорения работы процессора

    Все манипуляции по улучшению качества работы ЦП можно поделить на две группы:

    • Оптимизация. Основной акцент делается на грамотное распределение уже доступных ресурсов ядер и системы, дабы добиться максимальной производительности. В ходе оптимизации трудно нанести серьёзный вред ЦП, но и прирост производительности, как правило, не очень высокий.
    • Разгон. Манипуляции непосредственно с самим процессором через специальное ПО или BIOS для повышения его тактовой частоты. Прирост производительности в этом случае получается весьма ощутимым, но и возрастает риск повредить процессор и другие компоненты компьютера в ходе неудачного разгона.

    Узнаём, пригоден ли процессор для разгона

    Перед разгоном обязательно просмотрите характеристики своего процессора при помощи специальной программы (например AIDA64). Последняя носит условно-бесплатный характер, с её помощью можно узнать подробную информацию обо всех компонентах компьютера, а в платной версии даже проводить с ними некоторые манипуляции. Инструкция по использованию:

    1. Чтобы узнать температуру ядер процессора (это один из главных факторов при разгоне), в левой части выберите пункт “Компьютер”, затем перейдите в пункт “Датчики” из главного окна или меню пунктов.
    2. Здесь вы сможете просмотреть температуру каждого ядра процессора и общую температуру. На ноутбуке, при работе без особых нагрузок она не должна превышать 60 градусов, если она равна или даже немного превышает этот показатель, то от разгона лучше отказаться. На стационарных ПК оптимальная температура может колебаться в районе 65-70 градусов.

    Если всё нормально, то перейдите в пункт “Разгон”. В поле “Частота ЦП” будет указано оптимальное число МГц при разгоне, а также процент, на который рекомендуется увеличить мощность (обычно колеблется в районе 15-25%).

    Способ 1: оптимизация при помощи CPU Control

    Чтобы безопасно оптимизировать работу процессора, потребуется скачать CPU Control. Данная программа имеет простой интерфейс для обычных пользователей ПК, поддерживает русский язык и распространяется бесплатно. Суть данного способа заключается в равномерном распределении нагрузки на ядра процессора, т.к. на современных многоядерных процессорах, некоторые ядра могут не участвовать в работе, что влечёт потерю производительности.

    Инструкция по использованию данной программы:

      После установки откроется главная страница. Изначально всё может быть на английском. Чтобы это исправить, перейдите в настройки (кнопка “Options” в правой нижней части окошка) и там в разделе “Language” отметьте русский язык.

    На главной странице программы, в правой части, выберите режим “Ручной”.

  • Если вы не хотите назначать процессы вручную, то можно оставить режим “Авто”, который стоит по умолчанию.
  • После закрытия программа автоматически сохранит настройки, которые будут применятся при каждом запуске ОС.
  • Способ 2: разгон при помощи ClockGen

    ClockGen — это бесплатная программа, подходящая для ускорения работы процессоров любой марки и серии (за исключением некоторых процессоров Intel, где разгон невозможен сам по себе). Перед разгоном убедитесь, что все температурные показатели ЦП в норме. Как пользоваться ClockGen:

    1. В главном окне перейдите во вкладку «PLL Control», где при помощи ползунков можно изменить частоту процессора и работы оперативной памяти. Не рекомендуется за раз слишком сильно передвигать ползунки, лучше небольшими шагами, т.к. слишком резкие изменения могут сильно нарушить работу ЦП и ОЗУ.
    2. Когда получите необходимый результат, нажмите на «Apply Selection».
  • Чтобы при перезапуске системы настройки не сбивались, в главном окне программы перейдите в пункт «Options». Там, в разделе «Profiles Management», поставьте флажок напротив «Apply current settings at startup».
  • Способ 3: разгон процессора в BIOS

    Довольно сложный и “опасный” способ, особенно для неопытных пользователей ПК. Перед разгоном процессора рекомендуется изучить его характеристики, в первую очередь, температуру при работе в штатном режиме (без серьёзных нагрузок). Для этого воспользуйтесь специальными утилитами или программами (описанная выше AIDA64 вполне подойдет для этих целей).

    Если все параметры в норме, то можно приступать к разгону. Разгон для каждого процессора может быть разным, поэтому ниже представлена универсальная инструкция проведения данной операции через BIOS:

    1. Произведите вход в BIOS при помощи клавиши Del или клавиш от F2 до F12 (зависит от версии БИОСа, материнской платы).
    2. В меню BIOS найдите раздел с одним из таких наименований (зависит от вашей версии БИОСа и модели материнской платы) – “MB Intelligent Tweaker”, “M.I.B, Quantum BIOS”, “Ai Tweaker”.

    Теперь вы можете видеть данные о процессоре и вносить некоторые изменения. Перемещаться по меню можно при помощи клавиш со стрелочками. Переместитесь до пункта “CPU Host Clock Control”, нажмите Enter и поменяйте значение с “Auto” на “Manual”, чтобы можно было самостоятельно изменять настройки частоты.

    Спуститесь на пункт ниже к “CPU Frequency”. Чтобы внести изменения, нажмите Enter. Далее в поле “Key in a DEC number” введите значение в диапазоне от того, что написано в поле “Min” до “Max”. Не рекомендуется применять сразу максимальное значение. Лучше наращивать мощности постепенно, дабы не нарушить работу процессора и всей системы. Для применения изменений нажмите Enter.

  • Чтобы сохранить все изменения в БИОСе и выйти, найдите пункт в меню “Save & Exit” или несколько раз нажмите на Esc. В последнем случае система сама спросит, требуется ли сохранять изменения.
  • Способ 4: оптимизация работы ОС

    Это самый безопасный метод увеличения производительности ЦП путём очистки автозагрузки от ненужных приложений и дефрагментации дисков. Автозагрузка – это автоматическое включение той или иной программы/процесса при загрузке операционной системы. Когда в этом разделе скапливается слишком много процессов и программ, то при включении ОС и дальнейшей работе в ней, на центральный процессор может быть оказана слишком высокая нагрузка, что нарушит производительность.

    В автозагрузку приложения можно добавлять как самостоятельно, так и приложения/процессы могут добавляться сами. Чтобы второго случая не было, рекомендуется внимательно читать все пункты, которые отмечены галочкой во время установки того или иного софта. Как убрать уже имеющиеся элементы из Автозагрузки:

    1. Для начала перейдите в “Диспетчер задач”. Чтобы перейти туда, используйте комбинацию клавиш Ctrl+SHIFT+ESC или в поиске по системе вбейте “Диспетчер задач” (последнее актуально для пользователей на Windows 10).
    2. Перейдите в окно “Автозагрузка”. Там будут представлены все приложения/процессы, которые запускаются вместе с системой, их состояние (включено/отключено) и общее влияние на производительность (Нет, низкое, среднее, высокое). Что примечательно – здесь вы можете отключить все процессы, при этом не нарушите работу ОС. Однако, отключив некоторые приложения, вы можете сделать работу с компьютером немного неудобной для себя.

    В первую очередь, рекомендуется отключать все пункты, где в колонке “Степень влияния на производительность” стоят отметки “Высокое”. Чтобы отключить процесс, кликните по нему и в правой нижней части окна выберите “Отключить”.

  • Чтобы изменения вошли в силу рекомендуется выполнить перезагрузку компьютера.
  • Дефрагментация диска увеличивает не только скорость работы программ на этом диске, но также немного оптимизирует работу процессора. Происходит это потому, что ЦП обрабатывает меньше данных, т.к. в ходе дефрагментации обновляется и оптимизируется логическая структура томов, ускоряется обработка файлов. Инструкция проведения дефрагментации:

    1. Нажмите правой кнопкой мыши по системному диску (вероятнее всего, это (C:)) и перейдите в пункт “Свойства”.
    2. В верхней части окна найдите и перейдите во вкладку “Сервис”. В разделе “Оптимизация и дефрагментация диска” нажмите “Оптимизировать”.
  • В открывшемся окне можно выбрать сразу несколько дисков. Перед дефрагментацией рекомендуется провести анализ дисков, нажав на соответствующую кнопку. Анализ может идти до нескольких часов, в это время не рекомендуется запускать программы, которые могут вносить какие-либо изменения на диске.
  • После анализа система напишет, требуется ли дефрагментация. Если да, то выделите нужный диск (диски) и нажмите на кнопку “Оптимизировать”.

    Рекомендуется также назначить автоматическую дефрагментацию дисков. Для этого перейдите по кнопке “Изменить параметры”, далее отметьте галочкой “Выполнять по расписанию” и задайте нужное расписание в поле “Частота”.

    Оптимизировать работу ЦП не так сложно, как кажется на первый взгляд. Однако, если оптимизация не дала сколь-нибудь заметных результатов, то в этом случае центральный процессор потребуется разогнать самостоятельно. В некоторых случаях разгон не обязательно производить через БИОС. Иногда производитель процессора может предоставить специальную программу для увеличения частоты той или иной модели.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Как оптимизировать нагрузку на многоядерный процессор в Windows

    Процессоры с количеством ядер, большим одного, появились давно — больше 10 лет назад. Однако до сих пор встречаются программы и игры, которые не умеют использовать несколько ядер одновременно. И хорошо, если производительности одного ядра хватает для работы программы, но в некоторых играх (к примеру, линейки Far Cry) производительности одного ядра уже не хватает: оно постоянно нагружено на 100%, когда другие «прохлаждаются», и из-за этого может страдать fps. На деле это выглядит как-то так:

    Если вы столкнулись с чем-то похожим, то распредилить загрузку равномерно поможет бесплатная программа CPU Control (скачать можно, например, здесь). Запустите ее, найдите нужный процесс, нажмите на нем правой кнопкой мыши > All CPUs > максимальное свое число CPU (у меня 4) > 1+2+3+4 (или больше, если у вас больше ядер):

    Все, теперь приложение будет использовать все ядра.

    Некоторые аспекты энергосбережения Intel Core i* and Windows (страница 4)

    Различия планов электропитания

    В операционных системах «Windows Vista» и последующих, представлено несколько планов электропитания, присутствующих изначально. Это «Экономия энергии», «Сбалансированный» и «Высокая производительность». Кроме названия, эти планы отличаются свойствами, которые можно изменить через настройку плана электропитания. К сожалению, характеристик слишком много, да и большая часть их «попрятана», поэтому использование такого пути оптимизации крайне неприятно и вызывает лишь негативные эмоции. Посмотрите, сколько настроек находится в разделе «Управление питанием процессора». А на самом деле их 35. С помощью правки реестра все эти параметры можно сделать видимыми, но использовать подобный интерфейс для просмотра и редактирования 35 параметров . я попробовал, и категорически не советую. Что же, пришлось сесть и написать простенький редактор:

    Программа может управлять как самими планами (копировать, переименовывать, удалять), так и менять настройки любого из них. Т.к. параметров очень много и их свойства подчас трудно отождествить, то основной акцент программы направлен на получение максимума полезной информации. Для этого все свойства представлены на одной странице в виде списка, а в верхнем окне выводится описание того, что сейчас выполняется. Вся справочная информация представлена компанией Microsoft, я лишь ее вывожу, поэтому . увы, что есть, то и есть. Кроме этого, в редактируемой строке приводятся начальные значения этого параметра для трех стандартных планов («Экономия энергии», «Сбалансированный» и «Высокая производительность»). Думаю, разберетесь, только одно пожелание — вначале сделайте тестовый план и уж затем его правьте. Приведу ссылку на программу — PowerSchemeEd. Можно много говорить, но проще и ценнее попробовать всё самому. Редактор есть, дерзайте.

    реклама

    По большей части планы совпадают, но если присмотреться к деталям, то для «Экономия энергии» наблюдается следующее:

    • Порог повышения производительности процессора (№01) составляет 90%, что означает — только в том случае, когда задача выполняется всё время кванта, засчитывать за «загруженный»;
    • Сброс загрузки (№04) считается, когда задача выполняется менее 60 % кванта;
    • Время, которое требуется для принятия решения о том, что ядро занято (№25) составляет 3 отсчета, а не 1;
    • Время до понижения частоты (№33) равно 2 против 10 для «Сбалансированный», что означает агрессивный сброс частот.

    Существуют и другие отличия, они выделены цветом, но самые важные я перечислил. В качестве одного из терминов используется понятие «квант». Это то время, которое дается задаче (потоку) на выполнение. Подробнее по этому и другим сопутствующим вопросам можно почитать в интересной статье Крис Касперски «Разгон и торможение Windows NT». По окончанию кванта процессор (ядро) начинает выполнять другую задачу, если она имеется, или возобновляет выполнение прежней. Квант — это то время, когда задача не может быть прервана, как правило. Если задаче делать нечего, то она может вернуть процессорное время в операционную систему отправившись «спать» по какому-нибудь критерию. Понятно, что при этом задача не будет выполняться весь квант и операционная система запустит другую задачу в оставшееся время кванта, или отправит «спать» ядро, если нет ничего на исполнение. Так и получается «низкая» загрузка процессора, например в «Media Player Classic», использовавшаяся ранее. Программа должна формировать 25 кадров в секунду, но что ей делать после того, когда целевое количество кадров сформировано? Правильно, отправлять кадр на вывод и «спать» до вывода следующего кадра. При этом процессор (ядро) загружается полностью, но на очень короткий интервал времени, почти всегда меньше кванта. С точки зрения контроля электропитания это означает, что загрузка менее кванта (для плана «Экономия энергии» этот порог 90%), а потому может засчитываться как «низкая». В принципе, всё логично и правильно — если операционная система загружает ядро полностью, то частоту следует повышать. Аналогичный процесс следует производить при снижении загрузки ядра.

    Переходим ко второму моменту — «Переопределение ядра приостановки» (№27). По умолчанию во всех планах переопределение включено. Это позволяет операционной системе переключать выполняемую задачу по ядрам. Здесь можно пропустить очевидную глупость со сбросом и перезагрузкой кешированных данных в старом-новом ядрах исполнения, о такой ‘мелочи’ великие M$ давно уже не задумываются, скорость работы программ для Microsoft не является приоритетным. Итак, к чему приводит . стоп-стоп, далеко не все знают о механизме переключения. Для каждого выполняемого потока формируется таблица описания свойств и регистров, в которую входит аппаратные ресурсы (например TSS) и чисто программные, описательные. По окончанию кванта операционная система (планировщик) останавливает и сохраняет контекст текущего потока в заданной области памяти. После этого выбирает следующий поток (или этот же) и запускает его на выполнение. Но, операционной системе совершенно не важно на каком процессоре начать выполнение потока — есть контекст с регистрами, ОС может загрузить указатель в любой свободный процессор. Настройка «Переопределение ядра приостановки» говорит о том, стараться ли использовать прежний номер ядра, или ‘пнуть куда-нибудь’. С этим вроде бы просто и переходим к третьему нюансу.

    реклама

    Возвращаемся к планам электропитания. Для «Экономия энергии» установлен порог загрузки 90% для признания ядра загруженным. Только в специальных программах тестов производительности используются алгоритмы БЕЗ вызова функций операционной системы в основном вычислительном цикле, в остальных программах запросы Win32API (DirectX и прочие) следуют постоянно. Это означает, что поток не всегда сможет исполняться весь квант на одном и том же ядре. Впрочем, ‘иногда’ цикл выполнения может не захватывать вызов сторонних функций и весь квант поток останется на своем ядре.

    Краткие выводы — исполняемый поток может выполняться на одном ядре как весь квант, так и лишь его часть. В последнем случае загрузка этого ядра окажется менее 100% (при условии, что других задач не выполняется).

    Кроме порога загрузки в плане электропитания указывается еще время до принятия решения. Для «Экономия энергии» порог повышения указан как 90%, а время = 3. Это означает, что загруженным считается ядро, которое занято не менее 90 процентов времени кванта на протяжении трех последовательных квантов. Для одноядерного процессора противоречий нет — если три кванта процессор был загружен полностью, то следует повышать его частоту. Но, если ядер больше одного, скажем два? Положим, выполняется однопоточная задача, один квант на №0 ядре, второй на №1 ядре, третий снова на №0 ядре. В результате, хотя имеется и полная однопоточная загрузка, но по 0 и 1 ядру в трех соседних квантах нет полной загрузки. Как следствие, система электропитания говорит, что процессор не загружен и оставляет частоту низкой. Нечто подобное мы уже наблюдали в тестировании. Для обхода этого недостатка надо уменьшить время реакции системы до одного кванта, как это установлено в других планах («Сбалансированный», «Высокая производительность»

    ). Впрочем, это не обеспечивает полной гарантии, что Windows не посчитает нагрузку «низкой»! Как отмечал ранее, планировщик может переключить ядро исполнения до окончания кванта по вызову функции (точнее, не ‘может’, а ‘делает’, но не для всех функций). А это приводит к тому, что загрузка ядер может быть постоянно не полной. И чем больше ядер в процессоре, тем выше мера «разбрасывания» и шанс получить «низкая загрузка». Для обхода этого можно снизить «порог увеличения производительности» (№01) с 60% до, скажем, 100%/N. Где «N» — количество ядер в процессоре. К примеру, для плана «Высокая производительность» этот параметр установлен в 30% («Сбалансированный» = 60%). Короче, сами можете оценить, насколько это оптимально для современных четырехядерных процессоров, я уж не говорю о включенной «HT» (Hyper-Threading). В последнем случае число ядер удваивается и план электропитания вполне может честно снизить частоту, посчитав загрузку процессора «низкой». Что же, еще один вариант провала процессоров при включении «HT».

    Чтобы завершить вопрос о плане «Экономия энергии» обратите внимание еще и на порог понижения производительности, он установлен в 60 %. При этом время снижения производительности составляет 2 тика, против 10 у «Сбалансированный». Фактически это означает, что система электропитания будет легко и быстро скидывать частоту процессора при установке не-максимальной загрузки. Короче говоря, план «Экономия энергии» неохотно повышает частоту под сильной нагрузкой и очень быстро ее скидывает при малейшем снижении нагрузки.

    Послесловие

    Несмотря на название раздела, хочется рассказать, с чего все началось. Есть такая игра, «Borderlands», которой я посвятил много времени. Графика и сюжет обычный, можно сказать ‘скучный’, но разработчики вложили столько юмора, что очень хочется в нее играть. Можно это назвать ‘фанатизмом’, но . жанр юмористических игр класса «Action» крайне ограничен, вспоминается только «MDK» (номер 1 и 2) и всё. «Стрелялок» много, но всякие Doom2 быстро приедаются, не смотря на их высокое качество исполнения. Впрочем, я не собираюсь никого агитировать, гиблое это дело.

    После очередного ‘upgrade’ я запустил игрушку и получил какие-то неочевидные результаты. Нет, ‘FPS’ выросли, тесты проходят на ‘все хорошо’, но уровень играбельности мне что-то не понравился. Т.к. я играю в эту игру, гм, довольно давно, то отчетливо ощущаю, как должно прорисовываться окружение. Вначале подумал о проблемах с драйверами и (далее следует долгий список ‘призраков’, которые могут быть в компьютере). Думаю, все с таким сталкивались, сие называется «пляска с бубном». К слову, это состояние обычно заканчивается тем, что проблема или сама собой рассасывается или решение не обнаруживается и приходится смириться. Но не в этом случае. При игре отмечались случаи падения FPS с довольно медленным восстановлением, а такое поведение не свойственно играм. Обычно скорость прорисовки напрямую зависит от сложности картинки или происходящих действий. Иногда игра выполняет подгрузку уровней или другую ‘незапланированную’ деятельность, но к таким дефектам быстро привыкаешь и они легко отождествляются. В моем случае снижение FPS было ‘странным’. Это очевидно однопоточное приложение, к тому же включена опция Vsync, что приводило к загрузке процессора в районе 60-100% (приведенная к одному ядру). Как вы уже догадываетесь по материалу статьи, это приводило к понижению множителя, ибо план электропитания («Сбалансированный», у всех установлен именно он) считал эту нагрузку низкой и понижал частоту процессора. Как следствие, FPS в игре проваливались ниже 60. Понятно, что при этом план электропитания получал полную загрузку и множитель процессора повышался, чем и сопровождался плавный рост FPS до номинала, но это происходило уже ‘после’, и провал играбельности был четко заметен. Дело в том, что снижение частоты работы видеокарты сказывается на скорость формирования кадров почти линейно и других последствий не содержит, а вот с процессором всё сложнее — кроме графики он обсчитывает очень много других вещей (положение объектов, их ‘жизнь’), поэтому снижение и последующее повышение частоты процессора сказываются на все процессы самым причудливым образом. В принципе, именно это я и наблюдал — игра шла ‘странно’, очень неприятно.

    Для обхода этого дефекта можно заблокировать управление множителем в Windows и управлять им самостоятельно, что было реализовано в одном моем проекте C&Q***, но программа поддерживала только процессоры Core2, что давно уже пенрестало быть актуальным (хотя, я продолжаю ею пользоваться на компьютере на работе). Что же, делать для себя, а потому и время потратить не зазорно. Адаптировал программу под Core i (SB*/IB), получилось что-то работоспособное и удовлетворяло требованиям. Но, хотелось разобраться с проблемой, тем более, что обходной способ (с помощью C&QCPU) у меня уже был. Что же, я ‘полез’ в планы электропитания «и тут волосы встали дыбом». Жуть. Век какой, а технологии до сих пор расчитаны на одноядерный процессор! План «Экономия энергии» из экономного стал просто «опусти свой компьютер», ибо постоянные 1.6 ГГц для слегка разогнанного до 4.2 ГГц процессора — как это назвать? С планом «Сбалансированный», который установлен активным у всех пользователей Windows, тоже ‘всё хорошо’. Скажем так — именно на нем я получил проблемы в игре. Поставить план «Высокая производительность» и понадеяться, что загрузка ядер постоянно будет держаться выше 30% ? Кроме того, «Переопределение ядра приостановки» явно вредная настройка, ее очевидно надо вЫключать. Я понимаю, что Microsoft хотели сделать равномерную распределение нагрузки по ядрам, но — давайте я сам буду распоряжаться своим процессором, хорошо? К слову, я немного посмотрел, как ведет себя операционная система с отключенным переопределением ядра исполнения. Как следует из логики, так и выполняется (что странно) — эта настройка не является догмой, а лишь пожеланием. При занятости целевого ядра операционная система перекинет ядро исполнения на свободное. Это не «Affinity» (маска соответствия) ядер, а лишь критерий — оставлять исполняться на том ядре, что было, или сменить на другое свободное.

    Впрочем, план электропитания — это просто и довольно прозрачно, а вот работа «C1E» откровенно разочаровала. Настолько медленно устанавливается, что все «импульсные» нагрузки проходят очень плохо. Фактически, процессор работает на нижней границе V никак не влияло. Дело в том, что «C1E» работает схожим образом и потенциально может привести к аналогичным рудиментам. Конечно, можно провести расширенное тестирование и получить примеры резкого падения производительности в определенных и распространенных областях применения, но надо ли? Деструктивность функции «C1E» показана достаточно четко, ее надо выключить и всё. Будет ли при этом понижаться напряжение в простое? Хороший вопрос, ведь без снижения напряжения утечки в процессоре обеспечат весьма значительную мощность тепловыделения, чего крайне желательно избежать. С точки зрения логики, отключение механизмов «C1E» и «EIST» неизбежно должно привести к отсутствию управления напряжением и оно не должно изменяться (всегда максимум). Результат — повышенные обороты системы охлаждения процессора. Предложить вам самим проверить, будет ли при этом меняться напряжение, или ответить самому? Предлагаю тем, кто хочет самостоятельно разбираться с состояниями, заканчивать читать этот раздел и переходить к выводам.

    Для остальных я хочу сказать, что вы слишком ленивы. Интересно же попробовать что-то своими руками. Отключение «C1E» и «EIST» должно приводить к отсутствию управления напряжением, ибо таково трактование соответствующих технологий фирмы Intel. Но это не происходит, напряжение в простое снижается. Причина? Попробую предположить, что контроллер энергосбережения процессора работает несколько «ширше» чем это описано в технологиях «C1E» и «EIST». А именно, по переходу в «C1» (т.к. «C1E» заблокирован, то в состояние «C1E» переключиться нельзя) контроллер начинает медленный процесс автоматического перехода в разновидность состояния «C3», возможно и дальше («C6-7»). Это вытекает из того факта, что при отключенном «C1E» напряжение в простое падает для любого плана электропитания, и при этом нет тех негативных моментов падения производительности для «импульсной» нагрузке, что свойственны включенной «C1E». Кроме того, отключение состояний «C3» — «C7» блокирует снижение напряжения в простое.

    Как же можно и управлять напряжением и не получать негативных моментов от замедленного установления номинального значения множителя? Дело в том, что состояние ядер и всего процессора — это не одно и то же. Перевод ядер в простой не означает, что надо снижать напряжение на весть процессор, ведь часть ядер может быть активно. Кроме того, политика работы «C1E» может отличаться от правил функционирования внутреннего контроллера энергосбережения процессора. Технология «C1E» требует, чтобы по этому состоянию ядро (весь процессор) немедленно понижало напряжение. Контроллер может поступать более адекватно, например хранить историю предыдущих состояний и не снижать напряжение в некоторых случаях, если это приводит к падению производительности. Если компьютер находится в простое, то большую часть времени процессор «спит». При очень кратковременных «пробуждениях» какая разница, на сколько времени будет повышено напряжение? Фактически, среднее напряжение так и останется низким. Впрочем, всё это лишь предположения, а не конкретные факты.

    Знаете, вспоминается один из дорожных знаков в «Borderlands», очень подходит к современным энергосберегающим технологиям:

    Илон Маск рекомендует:  Что такое код ocisetprefetch
  • Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL