Чем Hyper-Threading отличается от многоядерности?

Тема в разделе "WASM.ZEN", создана пользователем Oleg_SK, 20 фев 2005.

  1. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    Вопрос в сабже.
     
  2. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    AFAIK



    В процах с HT все исполнительные устройства присутсвуют в единственном экземпляре (т.е. ядро на самом деле одно).

    Цитата от Интела:

    "This is achieved by duplicating the architectural state on each processor, while sharing one set of processor execution resources"



    HT позволяет исполнять два потока команд. Это имеет смысл, т.к. часто исполняющийся код использует далеко не все ресурсы процессора, и, например, поток, использующий только АЛУ, почти не будет "мешать" потоку, использующему MMX/SSE.
     
  3. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    Спасибо!
     
  4. valterg

    valterg Active Member

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

    Наверное, все-таки все гораздо сложнее, т.к.

    даже в 486-м уже было 2 АЛУ, правда вроде под

    разные операции.

    Просто я запускал распараллеленную задачу

    на П-4 с НТ. Загрузка процессора увеличивалась

    с 50% до 100% и задачка в 2 раза быстрее

    считалась. Однако явно в ней в параллель

    крутился один и тот же алгоритм и трудно

    предположить, что все время везло и

    плавающая и целая арифтметики чередовались :)

    По-моему тут срабатывает то, что на одной

    задачке тяжелее сделать - на П-4 операция

    занимает пол-такта и НТ позволяет свободные

    пол-такта использовать в другой задаче.
     
  5. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    да flankerxпочти правильно написал. Только не "все исполнительные устройства присутсвуют в единственном экземпляре" а БЛОК исполнительных устройств один. Но в то-же время есть ДВА независимых потока команд (с ДВУХ независимых декодеров). Также имеется ДВА набора (файла) регистров (т.н. архитектурные состояния). И потоки команд с обоих декодеров конкурируют за использование ОДНОГО блока исполнительных устройств (который включает в себя 4 целочисленных АЛУ, два плавающих и т.п. - подробности - в доках интела). С точки зрения прикладных программ процессоров два, но если обоим потокам (выполняющимся на разных виртуальных процах) понадобится только целочисленные блоки то реально быстродействие не повысится. В пике прирост составляет 35% (это например кодирование видео + антивирусное сканирование). Опять-же подробности у первоисточника (intel.com)
     
  6. Dark_Master

    Dark_Master Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    32
    Адрес:
    Усть-За###юйск
    to valterg ->



    командам не обязательно чередоваться, процессор складывает все на резервирующей станции и переуорядочивает команды так как ему нужно, главно чтоб зависимости по данным позволяли.
     
  7. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    infern0

    да, именно БЛОК ИУ я и имел в виду ) Спасибо за корректировку :)
     
  8. valterg

    valterg Active Member

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




    Ну вот в моем случае именно в этом дело. Любая счетная

    задача на деле более 50% времени тратит на перекладывание

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

    "распараллелена". Похоже персоналка постепенно превращается в старый добрый mainframe :)
     
  9. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Тем, что при HT 1 ядро, а при многоядерности > 1.