к статье "Разгон и торможение Windows NT"

Тема в разделе "WASM.RESEARCH", создана пользователем NoName, 2 авг 2005.

Статус темы:
Закрыта.
  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    "Некоторые используют в качестве таймера команду RDTSC, считывающую показания внутреннего счетчика процессора, каждый такт увеличивающегося на постоянную величину (как правило, единицу). Для профилировки машинного кода она подходит на ура, но вот на роль беспристрастного метронома уже не тянет. Некоторые APCI-контроллеры динамически изменяют частоту процессора или усыпляют его в паузах между работой для лучшего охлаждения. Как следствие - непосредственное преобразование процессорных тактов в истинное время оказывается невозможным."



    1. Насколько мне известно динамически изменять частоту возможно только на спец. процессорах вроде intel mobile. (?)



    2. Как же узнать усыпляют или нет?



    Вот еще интересные моменты.

    "Многопроцессорные ядра содержат множество LOOK'ов, встречающихся в самых неожиданных местах, и съедающий вполне ощутимый процент производительности, поэтому многопроцессорные ядра всегда медленнее. В однопроцессорных ядрах часть LOOK'ов убрана полностью, вместе с примыкающими к ним флагами, а часть - заменена более быстродействующими NOP'ми. Общая же структура ядра сохранена в более или менее неизменном виде."



    Насколько я понял Крис имеет ввиду под lock команду tls.

    Чтоже они имеет ввиду под nop? Nop? Сомнительно, пустые циклы? Тоже врятли...

    Выделенное предложение вообще странно звучит. Нет я конечно понимаю что если везде наставить блокировку шины то будут тормоза, но это нужно как-то подругому написать.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    >>1. Насколько мне известно динамически изменять частоту возможно только на спец. процессорах вроде intel mobile. (?)



    Увеличение напряжения.
     
  3. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia


    AMD Athlon 64 - Cool'n'Quiet.

    AMD Mobile (непомню точно с каких пор)-что то с power связано



    Не знаю как, но при включенном Cool'n'Quiet начинает ругаться VMWare что-то типа несовпадение реальной и расчетной частоты процессора.
     
  4. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Т.е. фактически APCI-контроллер может когда ему вздумается поменять напряжение на обычном не mobile процессоре? Что-то не верится.
     
  5. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
    NoName

    Не знаю что такое
    но напряжение в простое действительно уменьшается
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    NoName

    > 1. Насколько мне известно динамически изменять частоту

    > возможно только на спец. процессорах вроде intel mobile.

    не только мобиле, хотя главным образом имелся ввиду он



    > 2. Как же узнать усыпляют или нет?

    по расхождению RDTSC с другими таймерами,

    но это, естественно, грубый вариант

    более точных, увы, не знаю (если они вообще существуют)



    > Насколько я понял Крис имеет ввиду под lock команду tls.

    нет, обычный префикс lock, достаточно сравнить

    разные версии ядра в дизасме



    > Чтоже они имеет ввиду под nop? Nop?

    XCHG EAX,EAX :)



    > Выделенное предложение вообще странно звучит. Нет я

    > конечно понимаю что если везде наставить блокировку

    > шины то будут тормоза, но это нужно как-то подругому

    > написать.

    а в чем оно неправильно звучит?

    многопроцессорное ядро на 2х ЦПшной машине

    никогда не даст 2х кратного прироста производительности,

    даже при идельном распараллеливании обрабатываемых

    данных между потоками, поскольку там больше "лишнего" кода

    и многопроцессорное ядро всегда медленнее однопроцессорного

    на 1х ЦПшной машине.
     
  7. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    NoName

    вот пример реализации одной и той же функции,

    в двух ядрах, найденный навскидку:



    Код (Text):
    1.  
     
  8. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229


    С этим никто не спорит. Ты сам понимаешь что все-таки работать будет быстрее :)





    Как же так, оно ведь создается для >=2 ЦП. Наверное так сравнивать нельзя.



    Обыкновенная игра слов. Просто предложение "поэтому многопроцессорные ядра всегда медленнее" как мне кажется неполностью раскрывает суть.





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





    А где можно узнать такую информацию достоверно для отдельного процессора? Например Обычный PIII 800 или PII 400?
     
  9. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    > С этим никто не спорит.

    > Ты сам понимаешь что все-таки работать будет быстрее :)

    ладно, скажем по-другому, в многоЦПшных ядрах

    большой оверхид



    > Обыкновенная игра слов. Просто предложение "поэтому

    > многопроцессорные ядра всегда медленнее" как мне

    > кажется неполностью раскрывает суть.

    все упирается в слова ;)

    но вообще-то в статье кроме слов есть еще и пояснения.



    > Мне кажется это вообще нереализуемый вариант поскольку

    > tsc на хорошей машине имеет хорошую частоту обнавления

    > которая явно побольше чем у таймеров и заметить

    > небольшие остановкии становится, как мне кажется,

    > просто невозможно.

    даже на самой отстойной машине, tsc _намного_ больше,

    но заметить "спячку" очень просто. пусть ЦП спит 10%,

    тогда расхождение будет в 10%, частота роли не играет.

    даже если ЦП спит всего 0.0001% это можно засечь,

    главное, подождать столько, чтобы этот процент

    составил хотя бы 10-20 тиков таймера для уверенного

    замера



    >>не только мобиле, хотя главным образом имелся ввиду он

    >А где можно узнать такую информацию достоверно для

    > отдельного процессора? Например Обычный PIII 800 или

    > PII 400?

    я определял экспериментально,

    к тому же в опциях BIOS была подобная фишка,

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

    о возможности динамического изменения частоты,

    когда она нужнее всего. ну типа динамический разгон.

    сейчас не помню какие я тестил матеря. кажется abit,

    но могу и ошибится. давно это уже было...
     
  10. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    kaspersky

    ок, спасибо за разъяснения.

    Остался один момент. Как все-таки можно синхронизировать посредством 90h?

    И хотелось бы все таки увидеть "пример реализации" который ты пытался написать выше.
     
  11. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    NoName

    > Остался один момент. Как все-таки можно

    > синхронизировать посредством 90h?

    а никак ;) на одноцпшной машине LOCK просто не нужен,

    процессор-то ведь один и никто другой на шину

    не претендует, поэтому LOCK теряет всякий смысл

    и заменяется NOP, который работает быстрее



    > И хотелось бы все таки увидеть "пример реализации"

    > который ты пытался написать выше.

    пример, приведенный на вскидку, оказался

    не самым наглядным, сейчас найду что-то более достойное,

    хотя любой может поднять иду и заглянуть в ядро сам,

    просто сравнивания реализацию одних и тех же функций

    в одноЦПшной и многоЦПшноый версиях ядра
     
Статус темы:
Закрыта.