Выполните команду msconfig в окне Win+R. Перейдите в раздел Загрузка >Дополнительные параметры, и после установки флажка Число процессоров, вы можете увидеть, сколько процессорных ядер доступно пользователю в списке ниже.
Hyper-threading
Hyper-Threading, официальное название Hyper-Threading Technology (HTT) — фирменная реализация компанией Intel технологии одновременной многопоточности в процессорах микроархитектуры NetBurst. Super-Threading, впервые появившаяся в процессорах Intel Xeon и позже добавленная в процессоры Pentium 4.
Эта технология повышает производительность процессора при определенных рабочих нагрузках, обеспечивая «полезную работу» для блоков выполнения, которые в противном случае простаивали бы, например, в случае отказа кэша. Процессоры Pentium 4 (с одним физическим ядром) с включенной функцией Hyper-Threading, так операционная система обращается к двум разным процессорам вместо одного.
В процессорах Core 2 Duo не реализована поддержка гиперпоточности. Процессоры Core i3 и Core i7 также используют гиперпоточность, при которой каждое физическое ядро процессора распознается операционной системой как два логических процессора. Эта технология также используется в некоторых процессорах серии Atom.
Содержание
В процессоре, использующем эту технологию, каждый физический процессор может хранить состояние двух потоков одновременно, которые отображаются в операционной системе как два логических процессора. Конечно, каждый из логических процессоров имеет свой собственный набор регистров и свой собственный контроллер прерываний (APIC), в то время как остальная часть процессора является общей. Когда выполнение потока одним из логических процессоров прерывается (в результате ошибки кэша, ошибки предсказания ветвления, ожидания результата предыдущей инструкции), управление передается потоку в другом логическом процессоре. Таким образом, пока один процесс ожидает данные из памяти, например, вычислительные ресурсы физического процессора используются для обработки другого процесса. 1
Преимущества Hyper-Threading были представлены как улучшенная поддержка многопоточного кода, позволяющая потокам работать одновременно, улучшенная отзывчивость и время отклика, а также увеличение количества пользователей, которых может поддерживать сервер.
По данным Intel, первоначальная реализация потребовала увеличения площади чипа всего на 5%, но позволила увеличить производительность на 15-30%.
Intel заявляет о 30-процентном увеличении скорости по сравнению с идентичным процессором Pentium 4 без технологии «одновременной многопоточности». Однако прирост производительности варьируется от приложения к приложению: некоторые программы даже немного медленнее, когда включена технология Hyper-Threading. В первую очередь, это связано с системой «итераций» процессора Pentium 4, которая занимает необходимые вычислительные ресурсы, заставляя другие потоки «голодать» 2 3 .
Хотели бы вы иметь в своем компьютере высокопроизводительный процессор, способный выполнять множество задач одновременно с молниеносной скоростью? Кто может отказаться от такого, верно? Тогда давайте узнаем о гиперпоточности: В этой статье вы узнаете, что это такое и как это работает.
Зачем разработчикам процессоров потребовалась технология
На этом этапе вам нужно вспомнить, как вообще работает центральный процессор компьютера. Как только вы включаете компьютер и запускаете программу, центральный процессор начинает считывать содержащиеся в ней инструкции, которые записаны в так называемом машинном коде. Он считывает каждую инструкцию по очереди и выполняет их одну за другой.
Однако во многих программах одновременно выполняется более одного программного процесса. Более того, современные операционные системы позволяют пользователю запускать несколько программ одновременно. И не только позволяют — фактически, ситуация, когда в операционной системе запущен только один процесс, в наши дни совершенно немыслима. Именно по этой причине процессоры, созданные по старым технологиям, плохо работают, когда необходимо обрабатывать множество параллельных процессов.
Чтобы решить эту проблему, вы, конечно, можете интегрировать в систему несколько процессоров или процессоры, использующие несколько физических ядер одновременно. Однако такое усовершенствование оказывается дорогостоящим, технически сложным и не всегда эффективным на практике.
История разработки
Поэтому было решено разработать технологию, которая позволила бы обрабатывать несколько процессов на одном физическом ядре. В этом случае программы будут выглядеть так, как будто в системе есть несколько процессорных ядер.
Поддержка технологии Hyper-Threading была впервые представлена в процессорах в 2002 году. Это были процессоры семейства Pentium 4 и серверные процессоры Xeon с тактовой частотой выше 2 ГГц. Первоначально технология разрабатывалась под кодовым названием Jackson, но позже была переименована в Hyper Threading — что примерно переводится как «гиперпоточность».
Между тем, Intel утверждает, что площадь кристалла процессора с поддержкой Hyper Threading выросла всего на 5% по сравнению с предшественником, который ее не поддерживает, при этом средняя производительность увеличилась на 20%.
Хотя в целом технология работала хорошо, компания Intel по разным причинам решила отключить Hyper Threading в своей последующей модели, семействе процессоров Core 2 на базе Pentium 4. Однако позже Hyper Threading вновь появилась в архитектурах Sandy Bridge, Ivy Bridge и Haswell и была кардинально пересмотрена.
Суть технологии
Понимание Hyper Threading важно, поскольку это одна из ключевых особенностей процессоров Intel.
Несмотря на все достижения процессоров, у них есть один существенный недостаток — они могут выполнять только одну инструкцию за раз. Предположим, вы одновременно используете такие приложения, как текстовый процессор, браузер и Skype. С точки зрения пользователя можно сказать, что это многозадачная среда, но с точки зрения процессора это далеко от реальности. Ядро процессора по-прежнему выполняет по одной инструкции за раз. В этом случае центральный процессор отвечает за распределение временных ресурсов процессора между отдельными приложениями. Поскольку такое последовательное выполнение инструкций происходит чрезвычайно быстро, вы этого не замечаете. И вы не считаете, что существует задержка.
Но задержка все еще существует. Задержка вызвана тем, как данные от отдельных программ поступают в процессор. Каждый поток данных должен поступать в определенное время и обрабатываться процессором по отдельности. Технология Hyper-threading позволяет каждому ядру процессора планировать обработку данных и распределять ресурсы между двумя потоками одновременно.
Следует отметить, что в ядрах современных процессоров имеется несколько так называемых актуаторов, каждый из которых должен выполнять определенные операции с данными. Между тем, некоторые из этих устройств исполнения могут быть неактивными во время обработки данных потока.
Чтобы понять эту ситуацию, рассмотрим взаимоотношения рабочих на сборочной линии, обрабатывающих различные типы компонентов. У каждого рабочего есть определенный инструмент, предназначенный для выполнения той или иной задачи. Однако если детали поступают в неправильном порядке, возникают задержки, поскольку некоторые рабочие ждут начала работы. Hyper Threading подобна добавлению сборочного конвейера в цех, чтобы рабочие, которые ранее простаивали, могли выполнять свои задачи независимо от других. Цех по-прежнему один, но детали обрабатываются быстрее и эффективнее, что сокращает время простоя. Например, Hyper Threading позволила запустить часы процессора, которые простаивали при выполнении инструкций одного потока.
Если вы включите компьютер с двухъядерным процессором, поддерживающим Hyper Threading, и откроете диспетчер задач Windows на вкладке «Производительность», вы увидите четыре графика. Однако это не означает, что у вас действительно есть четыре ядра процессора.
Это происходит потому, что Windows предполагает, что каждое ядро имеет два логических процессора. Термин «логический процессор» звучит забавно, но он означает процессор, который физически не существует. Windows может отправлять потоки данных на любой логический процессор, но только одно ядро фактически выполняет эту задачу. По этой причине одно ядро с технологией Hyper-Threading сильно отличается от отдельных физических ядер.