
- •Часть I
- •Часть I
- •1.Архитектура персонального компьютера
- •1.1.Общие принципы работы компьютера
- •1.2.Концепция открытой архитектуры
- •2.Процессор персонального компьютера ibm pc
- •2.1.Основы работы и характеристики процессора
- •2.3.Виртуальная память
- •2.4.Процессоры cisc и risc
- •2.5.История развития микропроцессоров
- •2.6.Особенности архитектуры процессоров Pentium III и Pentium IV
- •2.7.Определение ядра процессора
- •2.8.Многозадачность и многопоточность
- •2.9.Технология Intel Hyper-Threading
- •2.9.1.Увеличение производительности
- •2.9.2.Механизм Hyper-Threading
- •2.9.3.Производительность
- •2.9.4.Поддержка
- •2.10.Двуядерные процессоры Intel и amd
- •2.10.1.Классификация многопроцессорных систем
- •2.10.2.Многоядерные процессоры
- •2.10.3.Сравнительный анализ двуядерных технологий Intel и amd
- •2.10.4.Когерентность кэш-памяти
- •2.10.5.Особенности реализации
- •2.11.Переход на 64-разрядную архитектуру
- •2.11.1.Введение
- •2.11.2.Как оперирует числами процессор
- •2.11.3.Области применения 64-битного процессора
- •2.11.4.Архитектура Intel 64
- •2.11.5.Архитектура amd 64
- •3.Системный блок (корпус) персонального компьютера
- •4.Материнская плата (motherboard)
- •4.1.Шины материнской платы
- •4.1.5.Перспективные шины
- •4.2.Порты ibm pc
- •4.2.1.Последовательные сом-порты
- •4.2.2.Параллельный порт
- •4.3.Дисковые интерфейсы ibm pc
- •4.3.1.Интерфейсы ата
- •4.3.7.Конфигурирование ата-устройств
- •4.4.Технология raid
- •4.4.1.Уровни raid-массивов
- •4.4.2.О производительность raid-массивов различных уровней
- •4.5.Переход на новое поколение chipset материнских плат
- •5.Память
- •5.1.Контроль четности и корректирующие коды
- •5.2.Оперативная память (ram)
- •5.2.1.Принцип работы ram
- •5.2.2.Типы и характеристики оперативной памяти
- •5.2.3.Статическая память
- •5.2.4.Обозначения модулей памяти
- •5.3.Видеопамять: mdram, vram, wram и sgram
- •6.Ж есткий диск (винчестер)
- •6.1.Краткое описание принципов работы жесткого диска
- •6.2.Пользовательские параметры винчестера
- •6.2.1.Скорость вращения диска
- •6.2.2.Количество секторов на дорожке
- •6.2.3.Время поиска/ время переключения головок/ время переключения между цилиндрами
- •6.2.4.Задержка позиционирования
- •6.2.5.Время доступа к данным
- •6.2.7.Размещение данных на диске
- •6.2.8.Скорость обмена
- •6.2.9.Интерфейс
- •6.3.Структура системной области жесткого диска
- •6.4.Файловые системы
- •6.5.Технология smart
- •7.Дисковые оптические накопители
- •7.1.История создания dvd-накоителей
- •7.3.Параметры накопителей
- •7.4.Типы dvd-дисков
- •7.5.Информационная классификация дисков
- •7.6.Запись на dvd
- •7.7.Перспективы развития dvd
- •7.8.Кодирование информации на dvd
- •7.8.2.Видео dvd
- •7.8.3.Дополнительные функции dvd-проигрывателя
2.9.Технология Intel Hyper-Threading
2.9.1.Увеличение производительности
Есть ряд задач (серверные приложения, научные вычисления, моделирование и т.д.), где рост производительности, особенно центральных процессоров, всегда желателен. Каковы же способы увеличения производительности?
Увеличение тактовой частоты - это непросто и чревато побочными эффектами, например перегревом процессора.
Наращивание ресурсов процессора - например, увеличение кэш, введение новых модулей выполнения. Все это увеличивает число транзисторов, усложняет процессор, увеличивает поверхность кристалла, и поэтому повышает цену процессора.
Многопроцессорная обработка. Установка нескольких центральных процессоров и распределение загрузки среди них часто эффективна, но такой подход не дешев - каждый дополнительный процессор поднимает стоимость системы; кроме того, двухпроцессорная motherboard дороже обычной. Пока список прикладных программ, рассчитанных на многопроцессорный режим, недостаточно велик, чтобы оправдать подобные расходы.
Кроме чисто многопроцессорной конфигурации есть некоторые промежуточные решения:
Многопроцессорная обработка на чипе (СМР) - на чипе расположены два ядра процессора, каждый использует общий или отдельный кэш. Такой chip по размерам весьма велик, и это сказывается на цене. Несколько таких центральных процессоров могут также работать в многопроцессорной системе.
Time-Slice Multithreading (многопоточность на интервалах). Процессор переключается между потоками в установленные интервалы времени. Потери могут быть очень велики, особенно если один из процессов находится в состоянии ожидания.
Switch-on-Event Multithreading (многопоточность с переключением по событию) Переключение задач в случае долгих пауз, (например, неудачные обращения в кэш), большое число которых типично для приложений - серверов. В этом случае ожидание данных, читаемых из относительно медленной кэш-памяти останавливается, и ресурсы центрального процессора передаются другим процессам. Однако оба последних метода многопоточности не всегда обеспечивают оптимальное использование ресурсов центрального процессора - в частности, из-за ошибок в предсказании ветвлений, зависимости команд и т.д.
Simultaneous Multithreading (одновременная многопоточность). В этом случае потоки выполняются на одном процессоре одновременно, не переключаясь между ними. Ресурсы центрального процессора распределяются динамически, то есть "если Вы не используете ресурс - его отдают другой задаче". Этот подход - основа технологии Intel Hyper-Threading.
2.9.2.Механизм Hyper-Threading
Работа персонального компьютера подразумевает многопоточные вычисления. Это касается не только серверов, но также и рабочих станций и настольных систем. Потоки выявляются в одном или нескольких приложениях. Есть почти всегда больше одного активного потока (чтобы удостовериться - откройте в Windows 2000/XP Менеджер Задач и отобразите список потоков). В то же самое время обычный процессор может выполнить только один поток одновременно и должен постоянно переключаться между ними.
Одной из полезных особенностей архитектуры процессора Pentium 4 является возможность достижения очень высоких тактовых частот. Отлаживая технологию производства, корпорация Intel может постепенно наращивать частоту процессора. Что она и делает, с завидной периодичностью объявляя все новые и новые модели Pentium 4. Технология Hyper-Threading в настольных компьютерах впервые была реализована при выпуске процессора 3.06 ГГц и открыла практику многопроцессорной обработки на обычных персональных компьютерах.
Организация поступления в процессор
нескольких потоков команд, позволяющих
эффективнее использовать его ресурсы,
в предыдущих моделях Pentium была возложена
на само процессорное ядро. А если
возложить эту задачу на программное
обеспечение, например на операционную
систему - заставить ее думать, что в
системе имеется не один, а два процессора?
Тогда команды станут поступать в двух
независимых друг от друга потоках,
гарантированно подходящих для параллельной
обработки. Процессор сможет выделять
потокам ресурсы по мере их освобождения,
выполняя работу за двоих. Прирост
скорости будет обусловлен тем, что
процессор будет работать эффективнее.
Технология Hyper-Threading была сначала реализована в процессоре Intel Xeon(MP). Процессор Intel Xeon(MP), появившийся весной 2002 г., использует ядро, подобное Pentium 4 Willamette (256 Кб кэш второго уровня, 1 Мб..512 Кб кэш третьего уровня) и поддерживает конфигурации с 4 процессорами. Поддержка Hyper-Threading также доступна в процессоре для рабочих станций - Intel Xeon (ядро Prestonia, 512 Кб кэш второго уровня), который появился на рынке ранее, чем Intel Xeon(MP).
Hyper-Threading основана на том принципе, что в каждый момент времени только часть ресурсов процессора используется для выполнения кода программы. Неиспользованные ресурсы также могут быть задействованы, например для параллельного выполнения другого приложения (или другого потока того же самого приложения). Один физический процессор формирует два логических процессора (LP), которые совместно используют вычислительные ресурсы центрального процессора. На самом деле внутри процессора нет двух вычислительных ядер, как, например, в серверном процессоре IBM POWER4. Удвоены только массивы регистров - как общего назначения, так и служебных.
Операционная система и приложения видят два центральных процессора и могут распределить загрузку работы между ними, как в нормальной двухпроцессорной системе.
Однозадачный (ST) и Многозадачный (МТ)
В режиме ST только один логический процессор активен: тот, который использует доступные ресурсы полностью (режимы ST0 и ST1); другой LP остановлен командой HALT. Когда появляется второй поток, второй LP включается (по прерыванию), и физический центральный процессор переключается в режим МП. Останов неиспользуемого LP осуществляется операционной системой, которая отвечает за выполнение одного потока в монопольном режиме (без Hyper-Threading).
Когда выполняются два потока, одновременно готовятся два следующих указателя инструкций. Большинство команд извлекаются из кэш трассировки (ТС), где они хранятся в декодированной форме; два активных LP обращаются к ТС, каждый в своем цикле. В то же самое время, когда только один LP активен, он монопольно обращается к ТС. Доступ к ROM микропрограмм аналогичен.
Модуль ITLB (буфер предыстории трансляции команды) используется, когда требуемые команды отсутствуют в кэш команд. Его содержимое дублируется, и код команды передается соответствующему потоку. Блок декодирования инструкций архитектуры IA-32 является разделяемым; когда декодирование команд требуется каждому потоку, блок обслуживает их поочередно (в цикле).
Очередь Uop и блок распределения расщеплены на два подблока и предоставляют половину элементов для каждого LP. Пять планировщиков обрабатывают очереди декодированных команд (Uops), несмотря на то что они принадлежат разным LP (LP0/LP1) и передают команды соответствующим модулям выполнения (Execution Units) - в зависимости от готовности выполнения предыдущих и доступности последней команды. Кэш всех уровней являются полностью общими для логических процессоров, хотя для обеспечения целостности данных входы в DTLB (буфер предыстории конвертирования данных) имеют описатели в форме идентификаторов логических процессоров.
Таким образом, команды обоих логических процессоров могут быть выполнены, одновременно используя ресурсы одного физического процессора. Ресурсы подразделяются на 4 класса:
дублированные;
полностью разделяемые;
с помеченным входом;
разделяемые в зависимости от режима выполнения - ST0/ST1 или МТ.
Большинство приложений, которые работают быстрее в многопроцессорных системах, выигрывают и на центральном процессоре с Hyper-Threading без дополнительных модификаций приложений. Но могут быть проблемы: например, если один из процессов находится в цикле ожидания, он может использовать все ресурсы физического центрального процессора и блокировать второй LP. Таким образом, работа с Hyper-Threading может даже дать падение производительности (до 20 %).
Для предотвращения этого эффекта Intel рекомендует использовать команду PAUSE вместо пустых циклов ожидания (появилась в инструкциях IA-32 для Pentium 4). Кроме того, над автоматической и полуавтоматической оптимизацией кода теперь много работают - например, Intel OpenMP C++ / ФОРТРАН; ряд компиляторов достиг здесь большого успеха.
Другая цель Intel при развитии технологии Hyper-Threading состояла в том, чтобы число транзисторов, поверхность кристалла и потребляемая мощность росли намного медленнее при значительном увеличении эффективности. Hyper-Threading в Xeon /Xeon MP увеличило поверхность и потребляемую мощность только на 5 % при резком приросте производительности.