ГЛАВНАЯ Визы Виза в Грецию Виза в Грецию для россиян в 2016 году: нужна ли, как сделать

Несъемные шины. Нейрохирургическое лечение неврологических осложнений грыж поясничных дисков

Возможности графического процессора Sandy Bridge в целом сравнимы с таковыми у предыдущего поколения подобных решений Intel, разве что теперь в дополнение к возможностям DirectX 10 добавлена поддержка DirectX 10.1, вместо ожидаемой поддержки DirectX 11. Соответственно и не многие приложения с поддержкой OpenGL ограничены аппаратной совместимостью только с 3-й версией спецификации этого свободного API.

Тем не менее нововведений в графике Sandy Bridge достаточно много, и нацелены они главным образом на увеличение производительности при работе с 3D-графикой.

Основной упор при разработке нового графического ядра, по словам представителей Intel, был сделан на максимальном использовании аппаратных возможностей для обсчёта 3D-функций, и то же самое – для обработки медиа-данных. Такой подход радикально отличается от полностью программируемой аппаратной модели, принятой на вооружение, например, в NVIDIA, или в самой Intel для разработки Larrabee (за исключением текстурных блоков).

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

Для программируемых исполнительных шейдерных модулей графики Sandy Bridge, по традиции называемых в Intel «исполнительными блоками» (EU, Execution Units), характерны увеличенные размеры регистрового файла, что позволяет достичь эффективного исполнения комплексных шейдеров. Также в новых исполнительных блоках применена оптимизация ветвления для достижения лучшего распараллеливания исполняемых команд.

В целом, по заявлению представителей Intel, новые исполнительные блоки обладают удвоенной по сравнению с предыдущим поколением интегрированной графики пропускной способностью, а производительность вычислений с трансцедентальными числами (тригонометрия, натуральные логарифмы и так далее) за счёт акцента на использовании аппаратных вычислительных возможностей модели вырастет в 4-20 раз.

Внутренний набор команд, усиленный в Sandy Bridge рядом новых, позволяет распределять большинство инструкций API набора DirectX 10 в режиме «один к одному», как в случае с архитектурой CISC, что в результате позволяет добиться значительно более высокой производительности при той же тактовой частоте.

Быстрый доступ посредством быстрой кольцевой шины к распределённому кешу L3 с динамически конфигурируемой сегментацией позволяет снизить латентность, поднять производительность и в то же время снизить частоту обращений графического процессора к оперативной памяти.

Кольцевая шина

Вся история модернизации процессорных микроархитектур Intel последних лет неразрывно связана с последовательной интеграцией в единый кристалл всё большего количества модулей и функций, ранее располагавшихся вне процессора: в чипсете, на материнской плате и т.д. Соответственно, по мере увеличения производительности процессора и степени интеграции чипа, требования к пропускной способности внутренних межкомпонентных шин росли опережающими темпами. До поры до времени, даже после внедрения графического чипа в архитектуру чипов Arrandale/Clarkdale, удавалось обходиться межкомпонентными шинами с привычной перекрёстной топологией - этого было достаточно.

Однако эффективность такой топологии высока лишь при небольшом количестве компонентов, принимающих участие в обмене данными. В микроархитектуре Sandy Bridge для повышения общей производительности системы разработчики решили обратиться к кольцевой топологии 256-битной межкомпонентной шины (рис. 6.1), выполненной на основе новой версии технологии QPI (QuickPath Interconnect), расширенной, доработанной и впервые реализованной в архитектуре серверного чипа Nehalem-EX (Xeon 7500), а также планировавшейся к применению совместно с архитектурой чипов Larrabee.

Кольцевая шина (Ring Interconnect) в версии архитектуры Sandy Bridge для настольных и мобильных систем служит для обмена данными между шестью ключевыми компонентами чипа: четырьмя процессорными ядрами x86, графическим ядром, кэш-памятью L3, теперь е ё называют LLC (Last Level Cache), и системным агентом. Шина состоит из четырёх 32-байтных колец: шины данных (Data Ring), шины запросов (Request Ring), шины мониторинга состояния (Snoop Ring) и шины подтверждения (Acknowledge Ring), на практике это фактически позволяет делить доступ к 64-байтному интерфейсу кеша последнего уровня на два различных пакета. Управление шинами осуществляется с помощью коммуникационного протокола распределённого арбитража, при этом конвейерная обработка запросов происходит на тактовой частоте процессорных ядер, что придаёт архитектуре дополнительную гибкость при разгоне. Производительность кольцевой шины оценивается на уровне 96 Гбайт в секунду на соединение при тактовой частоте 3 ГГц, что фактически в четыре раза превышает показатели процессоров Intel предыдущего поколения.

Рис.6.1. Кольцевая шина (Ring Interconnect)

Кольцевая топология и организация шин обеспечивает минимальную латентность при обработке запросов, максимальную производительность и отличную масштабируемость технологии для версий чипов с различным количеством ядер и других компонентов. По словам представителей компании, в перспективе к кольцевой шине может быть "подключено" до 20 процессорных ядер на кристалл, и подобный редизайн, как вы понимаете, может производиться очень быстро, в виде гибкой и оперативной реакции на текущие потребности рынка. Кроме того, физически кольцевая шина располагается непосредственно над блоками кеш-памяти L3 в верхнем уровне металлизации, что упрощает разводку дизайна и позволяет сделать чип более компактным.

В рамках прошедшего 13-15 сентября форума IDF 2010 компания Intel впервые огласила подробности новой процессорной микроархитектуры, известной под кодовым наименованием Sandy Bridge. Собственно, процессор Sandy Bridge демонстрировался еще на прошлогоднем форуме IDF 2009, но подробности новой микроархитектуры тогда не сообщались (разве что самые общие сведения). Сразу оговоримся, что далеко не все ее подробности стали достоянием гласности и сейчас. Кое-что компания хочет оставить в секрете до официального анонса, который должен состояться в самом начале следующего года. В частности, не разглашаются подробности относительно производительности новых процессоров, модельного ряда, а также некоторых особенностей архитектуры.
Итак, давайте поближе познакомимся с новой микроархитектурой Sandy Bridge, а также с особенностями процессоров на ее базе, которые в дальнейшем мы будем называть процессорами Sandy Bridge.

Кратко о процессорах Sandy Bridge

Все процессоры с кодовым наименованием Sandy Bridge первоначально будут производиться по 32-нм техпроцессу. В дальнейшем, когда состоится переход на 22-нм техпроцесс, процессоры на базе микроархитектуры Sandy Bridge получат кодовое наименование Ivy Bridge (рис. 1).

Рис. 1. Эволюция семейств процессоров Intel и процессорных микроархитектур

Процессоры Sandy Bridge, точно так же, как процессоры Westmere, образуют в настольном и мобильном сегментах три семейства: Intel Core i7, Intel Core i5 и Intel Core i3, однако логотипы этих процессоров несколько изменятся (рис. 2). Если точнее, то речь идет о втором поколении (2 nd Generation) семейств Intel Core.

Рис. 2. Новые логотипы процессоров Sandy Bridge

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

По неофициальным данным, процессоры Sandy Bridge будут маркироваться четырехзначным числом, причем первая цифра - 2 - означает второе поколение семейства Intel Core. То есть будет, к примеру (опять-таки, по неофициальным данным), процессор Intel Core i7-2600 или Intel Core i5-2500. В семействах Intel Core i7 и Intel Core i5 будут процессоры как с заблокированным коэффициентом умножения, так и с разблокированным, причем последние будут обозначаться буквой K (Intel Core i7-2600K, Intel Core i5-2500K).

Основные различия между семействами Intel Core i7, Intel Core i5 и Intel Core i3 будут заключаться в размере кэша L3, количестве ядер и поддержке технологий Hyper-Threading и Turbo Boost.

Процессоры семейства Intel Core i7 будут четырехъядерными с поддержкой технологий Hyper-Threading и Turbo Boost, а размер кэша L3 составит 8 Мбайт.

Процессоры семейства Intel Core i5 будут четырехъядерными, но не будут поддерживать технологию Hyper-Threading. Ядра этих процессоров будут поддерживать технологию Turbo Boost, а размер кэша L3 составит 6 Мбайт.

Процессоры семейства Intel Core i3 будут двухъядерными с поддержкой технологии Hyper-Threading, но без поддержки технологии Turbo Boost. Размер кэша L3 в этих процессорах составит 3 Мбайт.

После оглашения неофициальных сведений перейдем к достоверным данным.

Все новые процессоры Sandy Bridge получат новый процессорный разъем LGA 1155 и, естественно, будут несовместимы с материнскими платами на базе чипсетов Intel 5-й серии. Собственно, для процессоров Sandy Bridge будут предназначены системные платы на базе нового чипсета Intel 6-й серии. Новшеством этих однокристальных чипсетов станет поддержка двух портов SATA 6 Гбит/с (SATA III), а также полноскоростных линий PCI Express 2.0 (с частотой 5 ГГц). А вот интегрированного в чипсет контроллера USB 3.0 пока не будет.

Впрочем, вернемся к процессорам Sandy Bridge. Новый процессорный разъем LGA 1155 потребует, по всей видимости, и новых кулеров, так как кулеры под разъем LGA 1156 будут несовместимы с разъемом LGA 1155. Впрочем, это лишь наша догадка, основанная на простой логике. В конце концов, должна же компания Intel как­то стимулировать выпуск новых моделей кулеров, дабы производители кулеров не загнулись окончательно.

Отличительной особенностью всех процессоров Sandy Bridge станет наличие в них интегрированного графического ядра нового поколения. Причем если в процессорах предыдущего поколения (Clarkdale и Arrandale) вычислительные ядра процессора и графическое ядро размещались на разных кристаллах и, более того, производились по разным техпроцессам, то в процессорах Sandy Bridge все компоненты процессора будут выпускаться по 32-нм техпроцессу и размещаться на одном кристалле.

Важно подчеркнуть, что идеологически графическое ядро процессора Sandy Bridge можно рассматривать как пятое ядро процессора (в случае четырехъядерных процессоров). Причем графическое ядро, так же как и вычислительные ядра процессора, имеет доступ к кэшу L3.

Точно так же, как процессоры предыдущего поколения Clarkdale и Arrandale, процессоры Sandy Bridge будут иметь интегрированный интерфейс PCI Express 2.0 для использования дискретных видеокарт. Причем все процессоры поддерживают 16 линий PCI Express 2.0, которые могут быть сгруппированы либо как один порт PCI Express x16, либо как два порта PCI Express x8.

Также нужно отметить, что все процессоры Sandy Bridge будут иметь интегрированный двухканальный контроллер памяти DDR3. Вариантов с трехканальным контроллером памяти пока выпускать не планируется. Связано это с тем, что модельный ряд процессоров Sandy Bridge не будет охватывать сегмент топовых настольных процессоров. Топовым настольным процессором станет новая модель шестиядерного процессора Gulftown (Intel Core i7-990X), а модельный ряд процессоров Sandy Bridge будет ориентирован на производительные, массовые и бюджетные ПК.

Еще одна особенность процессоров на базе микроархитектуры Sandy Bridge заключается в том, что вместо шины QPI (Intel QuickPath Interconnect), которая ранее использовалась для связи отдельных компонентов процессора друг с другом, теперь применяется принципиально иной интерфейс, называемый кольцевой шиной (Ring Bus), которую мы подробно рассмотрим далее.

Вообще, нужно отметить, что архитектура процессора Sandy Bridge подразумевает модульную, легко масштабируемую структуру (рис. 3).

Рис. 3. Модульная структура процессора Sandy Bridge

Еще одна особенность микроархитектуры Sandy Bridge заключается в том, что в ней реализована поддержка набора инструкций Intel AVX (Intel Advanced Vector Extension).

Intel AVX представляет собой новый набор расширений для архитектуры Intel, предусматривающий 256-битные векторные вычисления с плавающей запятой на базе SIMD (Single Instruction, Multiple Data).

Intel AVX предполагает комплексное расширение архитектуры набора команд для микроархитектуры Intel 64 и обладает следующими особенностями:

  • поддержка векторных данных с большей разрядностью (до 256 бит);
  • эффективная схема кодирования инструкций, поддерживающая синтаксис команд с тремя и четырьмя операндами;
  • гибкая среда программирования, предусмат­ривающая различные возможности - от инструкций обработки переходов до сниженных требований к выравниванию смещений в памяти;
  • новые примитивы для манипулирования данными и ускорения арифметических вычислений, включая трансляцию (broadcast), перестановку (permute), одновременное умножение и сложение (fused-multiply-add, FMA) и др.

Учитывая тот факт, что новый набор команд Intel AVX может использоваться любыми приложениями, в которых значительная доля вычислений приходится на операции SIMD, наибольший прирост производительности новая технология даст для тех из них, что преимущественно выполняют вычисления с плавающей запятой и могут быть распараллелены. В качестве примера можно назвать программы обработки звука и аудиокодеки, программы для редактирования изображений и видео, приложения для моделирования и финансового анализа, а также промышленные и инженерные приложения.

Говоря о процессорной микроархитектуре Sandy Bridge, нужно отметить, что она является развитием микроархитектуры Nehalem или Intel Core (поскольку микроархитектура Nehalem - это развитие микроархитектуры Intel Core). Различия между Nehalem и Sandy Bridge довольно существенные, однако назвать эту микроархитектуру принципиально новой, какой в свое время была микроархитектура Intel Core, всё же нельзя. Это именно модифицированная микроархитектура Nehalem.

Теперь более подробно ознакомимся с новшествами микроархитетуры Sandy Bridge и ее отличиям от Nehalem.

Ядро процессора на базе микроархитектуры Sandy Bridge

Прежде чем перейти к рассмотрению различий микроархитектур Sandy Bridge и Nehalem, напомним, что схема любого процессора подразумевает наличие нескольких конструктивных элементов: L1-кэша данных и команд, предпроцессора (Front End) и постпроцессора, называемого также блоком исполнения команд (Execution Engine).

Процесс обработки данных включает следующие этапы. Сначала инструкции и данные забираются из кэша L1 (этот этап называется выборкой). После этого выбранные из кэша инструкции декодируются в понятные для процессора машинные примитивы (микрооперации). Данная процедура называется декодированием. Далее декодированные команды поступают на исполнительные блоки процессора и выполняются, а результат записывается в память.

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

Теперь более подробно рассмотрим ядро процессора Sandy Bridge и сравним его с ядром Nehalem. При работе ядра процессора на базе микроархитектуры Nehalem или Sandy Bridge инструкции x86 выбираются из кэша инструкций L1 (Instruction Сache) размером 32 Кбайт (кэш 8-канальный). Команды загружают из кэша блоками фиксированной длины, из которых выделяются инструкции, направляемые на декодирование. Поскольку инструкции x86 имеют переменную длину, а блоки, которыми команды загружаются из кэша, - фиксированную, при декодировании команд нужно определить границы между отдельными командами.

Информация о размерах команд хранится в кэше инструкций L1 в специальных полях (по 3 бита информации на каждый байт инструкций). В принципе, эту информацию для определения границ команд можно было бы использовать в самом декодере непосредственно в процессе декодирования команд. Однако это неизбежно отразилось бы на скорости декодирования, да и нельзя было бы декодировать одновременно несколько команд. Поэтому перед декодированием производится выделение команд из выбранного блока. Данная процедура называется предварительным декодированием (PreDecode). Процедура предварительного декодирования позволяет поддерживать постоянный темп декодирования независимо от длины и структуры команд.

Процессоры с микроархитектурой Nehalem и Sandy Bridge производят выборку команд 16-байтными блоками, то есть за каждый такт из кэша загружается 16-байтный блок команд.

После операции выборки команды организуются в очередь (Instruction Queue), а затем передаются в декодер. При декодировании (Decode) команды преобразуются в машинные микрооперации фиксированной длины (обозначаются как micro-ops или uOps).

Декодер ядра процессора с микроархитектурой Sandy Bridge не претерпел изменений. Точно так же, как в микроархитектуре Nehalem, он является четырехканальным и может декодировать в каждом такте до четырех инструкций x86. Как уже отмечалось, в микроархитектурах Nehalem и Sandy Bridge за каждый такт из кэша загружается 16-байтный блок команд, из которого в процессе предварительного декодирования выделяются отдельные команды. В принципе, длина одной команды может достигать 16 байт. Однако средняя длина команд составляет 4 байта. Поэтому в среднем в каждом блоке загружаются четыре команды, которые при использовании четырехканального декодера одновременно декодируются за один такт.

Четырехканальный декодер состоит из трех простых декодеров, которые декодируют прос-тые инструкции в одну микрооперацию, и одного сложного, способного декодировать одну инструкцию в четыре микрооперации (декодер типа 4-1-1-1). Для еще более сложных инструкций, которые декодируются в более чем четыре микрооперации, сложный декодер соединен с блоком uCode Sequenser, применяемым для декодирования подобных инструкций.

Естественно, декодирование четырех инструкций за такт возможно только в том случае, если в одном 16-байтном блоке содержится не менее четырех инструкций. Однако существуют команды и длиннее 4 байт, и при загрузке нескольких таких команд в одном блоке эффективность декодирования снижается.

При декодировании инструкций в микроархитектурах Nehalem и Sandy Bridge применяются две интересные технологии - Macro-Fusion и Micro-Fusion.

Macro-Fusion - это слияние двух x86-инструкций в одну сложную микрооперацию micro-op. В предыдущих версиях процессорной микроархитектуры каждая инструкция в формате x86 декодировалась независимо от остальных. При использовании технологии Macro-Fusion некоторые пары инструкций (например, инструкция сравнения и условного перехода) при декодировании могут быть слиты в одну микрооперацию, которая в дальнейшем будет выполняться именно как одна микрооперация. Отметим, что для эффективного поддержания технологии Macro-Fusion в микроархитектурах Nehalem и Sandy Bridge применяются расширенные блоки ALU (Arithmetical Logic Unit), которые способны поддержать выполнение слитых микроопераций. Отметим также, что в случае применения технологии Macro-Fusion за каждый такт процессора может декодироваться только четыре инструкции (в четырехканальном декодере), а при использовании технологии Macro-Fusion в каждом такте может считываться пять инструкций, которые преобразуются в четыре за счет слияния и подвергаются декодированию.

Отметим, что технология Macro-Fusion использовалась и в микроархитектуре Intel Core, однако в микроархитектуре Nehalem был расширен набор x86-инструкций, для которого возможно слияние в одну микрооперацию. Кроме того, в микроархитектуре Intel Core слияние x86-инструкций не поддерживалось для 64-битного режима работы процессора, то есть технология Macro-Fusion реализовывалась только в 32-битном режиме. В архитектуре Nehalem это узкое место было устранено и операции слияния работают как в 32-, так и в 64-битном режиме процессора. В микроархитектуре Sandy Bridge набор x86-инструкций, для которых возможна операция слияния, был расширен еще больше.

Micro-Fusion - это слияние двух микроопераций (не x86-инструкций, а именно микроопераций) в одну, содержащую два элементарных действия. В дальнейшем две такие слитые мик­рооперации обрабатываются как одна, что позволяет уменьшить количество обрабатываемых микроопераций и тем самым увеличить общее количество инструкций, исполняемых процессором за один такт. Понятно, что операция слияния двух микроопераций возможна далеко не для всех пар микроопераций. В микроархитектуре Sandy Bridge используется точно такая же операция Micro-Fusion (для того же набора микрооперация), как и в микроархитектуре Nehalem.

Говоря о процедуре выборки программных инструкций в микроархитектуре Nehalem, необходимо отметить наличие блока обнаружения программных циклов (Loop Stream Detector), который принимает участие в процессе выборки инструкций и позволяет избежать повторов в выполнении одних и тех же операций. Loop Stream Detector (LSD) используется и в микроархитектуре Intel Core, однако он отличается от LSD в Nehalem. Так, в архитектуре Intel Core применяется буфер LSD на 18 инструкций, причем располагается он до декодера. То есть в архитектуре Intel Core могут отслеживаться и распознаваться только циклы, содержащие не более 18 инс­трукций. При обнаружении программного цикла инструкции в цикле пропускают фазы выборки (Fetch) и предсказания ветвлений в программе (Branch Prediction), а сами команды генерируются и поступают в декодер из буфера LSD. С одной стороны, это позволяет снизить энергопотребление ядра процессора, а с другой - обойти фазу выборки команд. Если в цикле насчитывается более 18 инструкций, то каждый раз инструкции будут проходить все стандартные шаги.

В микроархитектуре Nehalem блок обнаружения циклов расположен не перед, а за декодером и рассчитан на 28 уже декодированных инструкций. Поскольку LSD хранит уже декодированные инструкции, они будут «пропускать» не только фазу предсказания ветвлений и выборки, как раньше, но и фазу декодирования (фактически на время выполнения программного цикла отключается предпроцессор процессора). Таким образом, в Nehalem инструкции в цикле проходят через конвейер быстрее и чаще, а энергопотребление ниже, чем в архитектуре Intel Core (рис. 4).

Рис. 4. LSD-буфер в микроархитектурах Intel Core и Nehalem

В микроархитектуре Sandy Bridge разработчики пошли еще дальше: вместе с LSD-буфером на 28 микрооперайий применили кэш декодированных микроопераций (Decoded Uop Cache) - рис. 5. В кэш поступают все декодированные микрооперации. Кэш декодированных микроопераций рассчитан приблизительно на 1500 микроопераций (видимо, речь идет о микрооперациях средней длины), что эквивалентно примерно 6-килобайтному кэшу x86-инструкций.

Рис. 5. Кэш декодированных микроопераций в микроархитектуре Sandy Bridge

Концепция кэша декодированных микро­операций заключается в том, чтобы сохранять в нем последовательности микроопераций. Кэш микроопераций работает не на уровне одной инструкции, а на уровне 32-байтного блока микроопераций. Весь кэш разделен на 32 набора, по 8 линий в каждом. На каждую линию приходится до 6 микроопераций. До 3 линий (18 микроопераций) могут быть привязаны к 32-байтному блоку. Тегирование происходит по указателю инструкции (IP). Сверка указателя предсказанной инструкции идет параллельно как в кэше инструкций, так и кэше микроопераций, и если происходит попадание, из кэша микроопераций вылавливаются линии, составляющие 32-байтный блок, и помещаются в очередь. В этом случае нет необходимости снова проводить выборку и декодирование.

Эффективность использования кэша декодированных микроопераций во многом зависит от эффективности блока предсказания ветвлений (Branch Prediction Unit, BPU). Напомним, что блок предсказания ветвлений применяется во всех современных процессорах, причем в процессорах Sandy Bridge он существенно улучшен в сравнении с BPU в микроархитектуре Nehalem (рис. 6).

Рис. 6. Блок предсказания ветвлений (Branch Prediction Un) в микроархитектуре Sandy Bridge

Чтобы понять, почему блок предсказания ветвлений столь важен в процессоре и как он влияет на производительность, напомним, что фактически в любой более­менее сложной программе есть команды условного перехода. Команда такого условного перехода означает следующее: если некоторое условие верно, то нужно перейти к выполнению программы, начиная с одного адреса, а если нет - то с другого. С точки зрения процессора команда условного перехода является своеобразным камнем преткновения. Действительно, ведь до тех пор, пока не выяснится, верно условие перехода или нет, процессор не знает, какую часть программного кода исполнять дальше, а следовательно, вынужден простаивать. Во избежание этого как раз и используется блок предсказания ветвлений, который пытается угадать, на какой участок программного кода укажет команда условного перехода, еще до того, как она будет исполнена. На основе предсказания ветвлений производится выборка соответствующих 86-инструкций из кэша L1 или из кэша декодированных микроопераций.

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

По мере того как накапливается статистика результатов различных условных переходов (предыстория условных переходов), задействуется алгоритм динамического предсказания ветвлений, который как раз и основан на анализе статистики результатов условных переходов, совершенных ранее. В алгоритмах динамического предсказания ветвлений используются таблица хранения истории предсказания ветвлений (Branch History Table, BHT) и таблица хранения адресов инструкций (Branch Target Buffer, BTB). В эти таблицы записывается информация о результатах уже выполненных ветвлений. В BHT содержатся все условные переходы за несколько последних циклов. Кроме того, здесь хранятся биты, показывающие вероятность повторного выбора той же самой ветви. Биты расставляются на основании статистики предыдущих переходов. В стандартной бимодальной (2-битной) схеме существует четыре вероятности: ветвь часто выполняется (strongly taken), ветвь выполняется (taken), ветвь не выполняется (not taken) и ветвь часто не выполняется (strongly not taken).

Для того чтобы вынести решение о спекулятивном выполнении ветви, устройство должно знать точное местоположение кода в кэше L1 по направлению ветвления - назовем его целью ветвления. Цели уже выполненных ветв-лений хранятся в BTB. Когда выполняется ветвление, BPU просто берет цель ветвления из таблицы и указывает препроцессору начать выборку инструкций по этому адресу.

Понятно, что достоверность предсказания перехода зависит от размера BHT- и BTB-таблиц. Чем больше записей в этих таблицах, тем выше достоверность предсказания.

Следует отметить, что вероятность правильного предсказания ветвлений в современных процессорах очень высока (порядка 97-99%) и борьба фактически идет уже за доли процента.

Улучшений BPU в микроархитектуре Sandy Bridge несколько. Во­первых, вместо того чтобы для каждой ветви перехода использовать свою вероятность в таблице BHT, одна и та же вероятность применяется одновременно для нескольких ветвей. В результате удается оптимизировать BHT-таблицу, что сказывается на повышении достоверности предсказания переходов.

Второе улучшение BPU в микроархитектуре Sandy Bridge заключается в оптимизации BTB-таблицы. Если раньше в ВТВ для задания всех адресов переходов (branch targets) использовалось фиксированное число бит, что приводило к неоправданной трате места, то теперь количество бит, применяемых для задания адреса перехода, зависит от самого адреса. Фактически это позволяет сохранять в таблице больше адресов и тем самым повышать достоверность предсказания.

Более точных данных о размерах таблиц BHT и BTB пока нет.

Итак, об изменениях в предпроцессоре микроархитектуры Sandy Bridge (кэш декодированных микроопераций и обновленный блок предсказания ветвлений) мы рассказали. Пойдем дальше.

После процесса декодирования x86-инструкций начинается этап их исполнения. Первоначально происходит переименование и распределение дополнительных регистров процессора (блок Allocate/Rename/ Retirement), которые не определены архитектурой набора команд.

Переименование регистров позволяет добиться внеочередного исполнения команд. Идея переименования регистров заключается в следующем. В архитектуре x86 количество регистров общего назначения сравнительно невелико: доступно восемь регистров в 32-битном режиме и 16 регистров в 64-битном. Представим, что исполняемая команда дожидается загрузки значений операндов в регистр из памяти. Это долгая операция, и хорошо бы на это время позволить использовать этот регистр для другой команды, операнды которой находятся ближе (например, в кэше первого уровня). Для этого временно переименовывается «ждущий» регистр и отслеживается история переименования. А «готовому к работе» регистру присваивается стандартное имя, чтобы снабженную операндами команду исполнить прямо сейчас. При поступлении данных из памяти обращаются к истории переименования и возвращают изначальному регистру его законное имя. Иными словами, техника переименования регистров позволяет сократить простои, а ведение истории переименования применяется для нивелирования конфликтов.

На следующем этапе (буфер переупорядочения - ReOrder Buffer, ROB) происходит переупорядочение микроопераций не в порядке их поступления (Out-of-Order), чтобы впоследствии можно было реализовать их более эффективное выполнение на исполнительных блоках. Отметим, что буфер переупорядочения ReOrder Buffer и блок отставки (Retirement Unit) совмещены в едином блоке процессора, но первоначально производится переупорядочение инструкций, а блок Retirement Unit включается в работу позже, когда надо выдать исполненные инструкции в заданном программой порядке.

В микроархитектуре Nehalem в свое время был увеличен размер буфера переупорядочения в сравнении с размером буфера переупорядочения в микроархитектуре Intel Core. Так, если в Intel Core он был рассчитан на 98 микроопераций, то в Nehalem можно размещать уже 128 микроопераций.

Далее происходит распределение микро­операций по исполнительным блокам. В блоке процессора Reservation Station формирует очереди микроопераций, в результате чего микрооперации попадают на один из портов функциональных устройств (dispatch ports). Этот процесс называется диспетчеризацией (Dispatch), а сами порты выполняют функцию шлюза к функциональным устройствам.

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

В микроархитектуре Sandy Bridge кластер Allocate/Rename/Retirement (Out-of-Order Cluster) был существенно изменен. В микроархитектурах Intel Core и Nehalem каждая микро­операция имеет копию операнда или операндов, которые ей требуются. Фактически это означает, что блоки кластера внеочередного выполнения команд должны быть достаточно большого размера, поскольку должны вмещать микрооперации вместе с необходимыми для них операндами. В архитектуре Nehalem операнды могли иметь размер 128 бит, но с введением расширения AVX размер операнда может составлять 256 бит, что требует увеличить в два раза размеры всех блоков кластера внеочередного выполнения команд.

Однако вместо этого в микроархитектуре Sandy Bridge используется физический регистровый файл (Physical Register File, PRF), в котором хранятся операнды микроопераций (рис. 7). Это дает возможность самим микрооперациям сохранять лишь указатели на операнды, но не сами операнды. С одной стороны, такой подход позволяет снизить энергопотребление процессора, поскольку перемещение по конвейеру микроопераций вместе с их операндами требует существенных затрат энергопотребления. С другой стороны, применение физического регистрового файла помогает сэкономить место на кристалле, а высвободившееся пространство использовать для увеличения размеров буферов кластера внеочередного выполнения команд (Load Buffers, Store Buffers, Reorder Buffers) - см. таблицу . В микроархитектуре Sandy Bridge физический регистровый файл для целочисленных операндов (PRF Integer) рассчитан на 160 записей, а для операндов с плавающей запятой (PRF Float Point) - на 144 записи.

Рис. 7. Использование физических регистровых файлов в микроархитектуре Sandy Bridge

В архитектуре Sandy Bridge подверглись существенной переработке и исполнительные блоки ядра процессора. Собственно, портов функциональных устройств, как и прежде, шесть (три вычислительных и три для работы с памятью), однако их назначение, как и назначение самих исполнительных блоков, изменилось (рис. 8). Напомним, что процессор на базе микроархитектуры Nehalem способен выполнять до шести операций за один такт. При этом возможно осуществление одновременно трех вычислительных операций и трех операций с памятью.

Рис. 8. Исполнительные блоки в микроархитектуре Sandy Bridge

В архитектуре Sandy Bridge три исполнительных устройства позволяют проводить уже восемь операций с данными FP (Float Point) или две операции с 256-битными AVX-данными за такт.

В микроархитектуре Sandy Bridge изменились не только три исполнительных устройства, но и функциональные блоки для операций с памятью. Напомним, что в микроархитектуре Nehalem было три порта для работы с памятью: Load (загрузка данных), Store address (хранение адреса), Store data (хранение данных) - рис. 9.

Рис. 9. Исполнительные блоки для работы с памятью в микроархитектуре Nehalem

В микроархитектуре Sandy Bridge также используются три порта для работы с памятью, однако два порта стали универсальными и могут не только реализовывать загрузку данных (Load), но и сохранять адрес (Store address). Третий порт не изменился и предназначен для хранения данных (Store data) - рис. 10.

Рис. 10. Исполнительные блоки для работы с памятью в микроархитектуре Sandy Bridge

Соответственно увеличилась пропускная способность взаимодействия с кэшем данных L1. Если в микроархитектуре Nehalem за каждый такт между кэшем данных L1 и исполнительными блоками для работы с памятью могло передаваться 32 байт данных, то в микроархитектуре Sandy Bridge - уже 48 байт (два запроса на чтение по 16 байт (128 бит) и один запрос на запись до 16 байт данных).

В заключение описания ядра процессора на базе микроархитектуры Sandy Bridge сведем всё воедино. На рис. 11 показана структурная схема ядра процессора на базе микроархитектуры Sandy Bridge. Желтым цветом отмечены измененные или новые блоки в микроархитектуре Sandy Bridge, а синим - блоки, присутствующие как в микроархитектуре Nehalem, так и в Sandy Bridge.

Рис. 11. Отличия микроархитектуры Sandy Bridge от микроархитектуры Nehalem
(общие блоки отмечены синим цветом, измененные или новые блоки
в микроархитектуре Sandy Bridge - желтым)

Кольцевая шина в микроархитектуре Sandy Bridge

В микроархитектуре Nehalem взаимодействие между каждым кэшем L2 и разделяемым между всеми ядрами кэшем L3 осуществлялось по внутренней специальной шине процессора, насчитывающей порядка тысячи контактов, а взаимодействие между отдельными блоками процессора (контроллером памяти, графическим контроллером и т.д.) - по шине QPI. В микроархитектуре Sandy Bridge на смену шине QPI, а также шине взаимодействия L2- и L3-кэшей пришла новая кольцевая шина (Ring Bus) - рис. 12. Она позволяет организовать взаимодействие между кэшами L2 каждого ядра процессора и кэшем L3, а также реализует доступ графического ядра (GPU) и блока видеокодирования (video transcoding engine) к кэшу L3. Кроме того, по этой же кольцевой шине реализуется доступ к контроллеру памяти. Попутно отметим, что теперь компания Intel называет кэш L3 кэшем последнего уровня (Last Level Cache, LLC), а кэш L2 - промежуточным кэшем (Middle Level Cache, MLC).

Рис. 12. Кольцевая шина в микроархитектуре Sandy Bridge

Кольцевая шина объединяет в себе четыре отдельные шины: кольцевую шину данных (Data ring) разрядностью 256 бит (32 байт), кольцевую шину запросов (Request ring), шину подтверждений (Acknowledge ring) и следящую шину (Snoop ring).

Использование кольцевой шины позволило снизить латентность кэша L3. Так, в процессорах предыдущего поколения (Westmere) латентность доступа к кэшу L3 составляет 36 циклов, а в процессорах Sandy Bridge - 26-31 цикл. Кроме того, теперь L3-кэш работает на частоте ядра (в процессорах Westmere частота работы кэша L3 не соответствовала частоте ядра).

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

В заключение отметим, что кэш L3 в микроархитектуре Sandy Bridge остался полностью инклюзивным (включающим) по отношению к кэшам L2 (как и в микроархитектуре Nehalem).

Графическое ядро в микроархитектуре Sandy Bridge

Одно из главных нововведений в микроархитектуре Sandy Bridge - это новое графическое ядро. Как мы уже отмечали, в отличие от графического ядра в процессорах Clarkdale/Arrandale, оно расположено на одном кристалле с вычислительными ядрами процессора и, кроме того, имеет доступ через кольцевую шину к кэшу L3. Причем, как ожидается, производительность нового графического ядра будет примерно вдвое выше производительности графического ядра в процессорах Clarkdale/Arrandale. Конечно, графическое ядро в процессорах Sandy Bridge не может сравниться по производительности с дискретной графикой (кстати, поддержка DirectX 11 для нового ядра даже не заявлена), но справедливости ради отметим, что это ядро и не позиционируется как игровое решение.

Новое графическое ядро может содержать (в зависимости от модели процессора) 6 или 12 исполнительных блоков (Execution Unit, EU), которые, впрочем, нельзя сравнивать с унифицированными шейдерными процессорами в графических процессорах NVIDIA или AMD, где их насчитывается несколько сотен (рис. 13). Данное графическое ядро ориентировано прежде всего не на 3D-игры, а на аппаратное декодирование и кодирование видео (включая HD-видео). То есть в конфигурацию графического ядра входят аппаратные декодеры. Их дополняют средства изменения разрешения (scaling), шумоподавления (denoise filtering), обнаружения и удаления чередования строк (deinterlace/film-mode detection) и фильтры улучшения детализации. Постобработка, позволяющая улучшить изображение при воспроизведении, включает функции STE (улучшение передачи телесных тонов), ACE (адаптивное повышение контраста) и TCC (общее управление цветом).

Рис. 13. Блок-схема графического ядра в микроархитектуре Sandy Bridge

Мультиформатный аппартный кодек поддерживает форматы MPEG-2, VC1 и AVC, выполняя все этапы декодирования с помощью специализированных аппаратных средств, тогда как в интегрированных графических процессорах текущего поколения эту функцию осуществляют универсальные исполнительные блоки EU.

Новый режим Intel Turbo Boost

Одной из примечательных особенностей процессоров Sandy Bridge станет поддержка нового режима Turbo Boost. Напомним, что смысл технологии Turbo Boost заключается в динамическом разгоне при определенных условиях тактовых частот ядер процессора.

Для реализации технологии Turbo Boost в процессоре предусмотрен специальный функциональный блок PCU (Power Control Unit), который отслеживает уровень загрузки ядер процессора, температуру процессора, а также отвечает за энергопитание каждого ядра и регулирование его тактовой частоты. Составной частью PCU является так называемый Power Gate (затвор), который применяется для перевода каждого ядра процессора по отдельности в режим энергопотребления C6 (фактически Power Gate отключает или подключает ядра процессора к линии питания VCC).

В процессорах Clarkdale и Arrandale режим Turbo Boost реализован следующим образом. В том случае, если какие­то ядра процессора оказываются незагруженными, они попросту отключаются от линии питания с использованием блока Power Gate (их энергопотребление при этом равно нулю). Соответственно тактовую частоту и напряжение питания оставшихся загруженных ядер можно динамически увеличить на несколько ступеней (по 133 МГц), но так, чтобы энергопотребление процессора не превысило его TDP. То есть фактически сэкономленное за счет отключения нескольких ядер энергопотребление используется для разгона оставшихся ядер, но так, чтобы увеличение энергопотребления в результате разгона не превышало сэкономленного энергопотребления. Более того, режим Turbo Boost реализуется и в том случае, когда изначально загружаются все ядра процессора, но при этом его энергопотребление не превышает значение TDP.

В мобильных процессорах Arrandale с интегрированным графическим ядром технология Turbo Boost распространяется не только на ядра процессора, но и на графическое ядро. То есть, в зависимости от текущей температуры и энергопотребления, разгоняться будут не только ядра процессора, но и графическое ядро. К примеру, если в каком­то приложении основная нагрузка ложится на графический процессор, а ядра процессора остаются недозагруженными, то сэкономленное TDP будет использоваться для разгона графического ядра, но так, чтобы не был превышен лимит по TDP графического ядра.

Поскольку в процессорах Sandy Bridge (и в настольных, и в мобильных) графическое ядро является, по сути, таким же ядром процессора, как и вычислительные ядра, технология Turbo Boost будет распространяться как на вычислительные ядра, так и на графическое ядро. Кроме того (и в этом заключается основное новшество), в новой версии режима Turbo Boost предусмотрена возможность превышения TDP процессора при разгоне ядер на короткое время.

Дело в том, что при превышении TDP процессор перегревается не сразу, а по истечении определенного промежутка времени. Учитывая, что во многих приложениях загрузка процессора на 100% происходит скачкообразно и лишь на протяжении очень малых промежутков времени, в эти периоды тактовую частоту процессора вполне можно разгонять так, чтобы был превышен предел по TDP.

В процессорах Sandy Bridge в режиме Turbo Boost предусмотрена возможность превышения TDP на протяжении вплоть до 25 секунд (рис. 14).

Заключение

Подведем итог нашего обзора микроархитектуры Sandy Bridge. Эта новая микроархитектура представляет собой существенно переработанный вариант микроархитектуры Nehalem. Среди нововведений - использование кэша декодированных микроопераций, переработанный блок предсказания ветвлений, применение физического регистрового файла, увеличенный размер буферов кластера внеочередного выполнения команд, улучшенные исполнительные блоки процессора и блоки для работы с памятью. Кроме того, в процессорах Sandy Bridge используется кольцевая шина для доступа ядер процессора к кэшу L3 и памяти. Также процессоры Sandy Bridge получили новое, более производительное графическое ядро, которое имеет доступ к кэшу L3.

Кроме того, в процессорах Sandy Bridge реализован новый режим Turbo Boost, позволяющий выжать из процессора максимум производительности.

Сразу скажем, что кэши L1I и L2 почти не изменились - у первого ассоциативность снова (как и до Nehalem) стала 8, а у второго чуть увеличилась задержка. Самое главное изменение в ядрах, касаемое кэшей, кроется в доступе к L1D, который теперь стал 3-портовым: к раздельным портам чтения и записи добавили ещё один для чтения. Кроме того, как уже было указано, в планировщике Nehalem 2-й порт вычисляет адрес чтения и исполняет само чтение, 3-й вычисляет адрес записи (только), а 4-й - исполняет саму запись. В SB же порты 2 и 3 могут и вычислить любой адрес, и исполнить чтение.

Внимательный Читатель сразу найдёт подвох: портов L1D - 3, а адресных генераторов - 2. При не более чем 16-байтовых обменах их устоявшийся максимальный темп составит 32 байта/такт (либо два чтения, либо чтение и запись). 32-байтовые операции каждым портом обслуживаются за два такта, причём вычисление адреса для конкретной команды происходит в течение первого из них. Так что для двух чтений и одной записи требуется три адреса в течение двух тактов - тогда при потоковых обменах один из трёх нужных адресов можно вычислить заранее в течение второго такта предыдущей 32-байтовой операции. Только так мы получим искомый максимум в 48 байт/такт.

Возникает довольно странный компромисс: три 16-байтовые операции за такт в потоке сделать нельзя. С другой стороны, за такт можно вычислить адреса для двух 32-байтовых обменов, но даже одно 32-байтовое чтение за такт не запустишь, потому что порты чтения не объединяются. Т. е. либо нам не будет хватать числа AGU (тех, что в портах 2 и 3), либо ширины портов, либо возможности их объединения.

Как мы знаем из теории, многопортовость в кэшах чаще всего делается не явная, а мнимая, с помощью многобанковости. Однако Nehalem нарушил это правило, внедрив 8-транзисторные битовые ячейки для всех кэшей ядра. Помимо большей экономии (об этом в статье о микроархитектуре Intel Atom, который тоже применяет такую схему), это также даёт возможность получить истинную 2-портовость (чтение + запись), что и было использовано в L1D - никаких конфликтов по адресам в имеющихся 8 банках не было. В SB банков по-прежнему 8, а портов уже 3. Очевидно, конфликты неизбежны, но только среди адресов портов чтения.

Каждый банк L1D имеет ширину в 8 байт, вместе составляя строку, поэтому каждый из 16-байтовых портов использует 1–2 банка при выровненном доступе и 2–3 при невыровненном. Например, 8-байтовое чтение, пересекающее 8-байтовую границу, использует 2 банка, как и выровненное 16-байтовое. В SB конфликт происходит, если хоть один из банков, нужных одному чтению, также нужен и второму, причём для доступа к другой строке. Последнее означает, что если оба чтения требуют не только одинаковый(ые) банк(и), но и одинаковые номера строк в нём (них), то конфликта не будет, т. к. фактический доступ произойдёт один, и он обслужит оба обращения. В Nehalem, с его единственным чтением за такт, такого, очевидно, быть не могло.

Упомянув о невыровненном доступе, скажем и о более «грешных» делах - пересечении строки кэша, что обойдётся 5-тактным штрафом, и границы страницы (чаще всего - 4 КБ), что наказывается в среднем 24 тактами (ситуация требует сериализации конвейера). Причём последняя цифра малообъяснима, т. к. TLB, как мы увидим ниже, способны на одновременную обработку обеих смежных страниц - но даже при последовательном доступе двухзначной цифры получиться не может…

LSU

Изменений в LSU (контроллере L1D, который Intel упорно называет MOB) не меньше, чем в само́м кэше. Начнём с того, что очередь чтения удлинилась с 48 до 64 ячеек, а записи - с 32 до 36. Каждая ячейка привязана к одному мопу, а очередь записи хранит ещё и 32 байта данных (было 16). Очередь чтения хранит все команды считываний, но в каждый момент не более 32 могут обрабатываться на разных стадиях. Фактически, это отдельные диспетчер и планировщик, «ROB» которых хранит 64 мопа, а «резервация» - 32. Когда чтение завершено, моп удаляется из этой резервации, но остаётся в очереди чтения до отставки. Очередь записи хранит информацию до отставки предыдущих команд, когда ясно, что адрес, данные и сам факт исполнения команды верны, а значит её можно попытаться записать в кэш. Если попытка успешна - моп записи уходит в отставку, освобождая место и в очереди, и в ROB. При промахе или других проблемах запись задержится.

Как и все современные кэши, L1D является неблокирующим - после промаха он может принимать дальнейшие запросы одновременно с заполнением себя подгруженными данными. Кэш может выдержать даже 3 промаха/такт. Одновременно удерживается столько промахов, сколько имеется буферов заполнения. В SB, как и в его предшественнике, у L1D таковых 10, а у L2 - 16. Политика отложенной записи в L1D и L2 означает, что модифицированная строка остаётся в кэше до вытеснения, однако информация о факте её модификации (если до этого данные были «свежие») отправляется в теги соответствующей строки в L3.

Кэш L3

Физически, кэш L3 по-прежнему разделён на банки по числу x86-ядер. В Nehalem была возможность сделать одну запись и одно чтение в/из L3 за такт, если они попадали в разные банки, т. к. использовался общий коммутатор и контроллер на весь кэш. Теперь организация банков другая: можно сделать запись или чтение, но в каждом банке по отдельности. А т. к. число включенных банков почти всегда равно числу ядер (исключения до сих пор встречались только у 6–10-ядерных серверных Xeon, где в некоторых моделях банков на 1 больше или меньше числа ядер), то это линейно увеличивает пиковую пропускную способность L3 с ростом числа ядер. Учитывая, что она разделяется между всеми ядрами и ГП, это очень полезно, т. к. пропуск, приходящийся на каждое ядро, до сих пор был главной проблемой любого разделяемого кэша.

Другое важное изменение в L3 - он стал работать на полной частоте ядра. Точнее, x86-ядер. Точнее, работающего(их) из них в данный момент, т. к. часть ядер могут спать. Помимо увеличения пропускной способности это ещё и уменьшает задержки, которые, разумеется, меряются тактами ядер на их частоте. И вот (см. ) в SB они уменьшились на 30%. Это при том, что сама частота кэша вовсе не подросла на 30%. Причина в том, что когда поток данных пересекает силовые (по величине логических «0» и «1» в вольтах) и, особенно, частотные домены, происходит задержка в несколько тактов для преобразования уровней и совпадения фронтов тактовых сигналов. В SB такой проблемы нет, т. к. L3 работает на том же напряжении, что и работающие x86-ядра (не отключенные ), а частота у всех активно загруженных ядер всегда одинакова (включая применение технологии Turbo Boost) - и именно на неё и настроится частота L3.

Правда, всё может оказаться интересней. Внимательный Читатель успел заметить, что кэш L2 работает на половинной частоте, а потому, имея 64-байтовый порт, теряет половину ПС. Такое решение, видимо, связано с разумной достаточностью и 32 байт/такт, а потому можно применить более экономные транзисторы, которые, к тому же, будут работать при меньшей частоте. Про L3 такое достоверно не известно, но резонно предположить, что там ситуация та же: на высокой частоте работают только контроллеры портов кольцевой шины, обрабатывая по 32 байта/такт в каждом порту (детальней об этом ниже), а вот сам кэш работает целыми 64-байтовыми строками раз в 2 такта.

Как и в Nehalem, каждый банк L3 разделён на блоки по 512 КБ и 4 пути. В большинстве ЦП серий Core i в каждом банке таких блоков 3 или 4. Серверные ЦП Xeon с архитектурой Beckton и Westmere-EX имеют 6, 8 или 10 ядер и банков L3, но последние увеличены как по размеру (до 3 МБ), так и по ассоциативности (до 24), что в самых дорогих ЦП даёт аж 30 МБ. Для SB же пока обещаны «лишь» 8-ядерные Xeon с 20-путным L3 на 20 МБ.

Для любителей кунсткамеры добавим, что единственный представитель архитектуры Nehalem с одним работающим ядром (и одним банком L3 на 2 МБ) - это, как ни странно, не какой-то тихой сапой выпущенный сверхбюджетный Celeron, а Xeon LC3518, физически представляющий собой обычный 4-ядерный Nehalem с тремя (!) отключенными ядрами и их банками. Авторы SB также приготовили такие диковинки - это модели Celeron B и Pentium B, где на 2 ядра и ГП приходится не 4, не 3, а 2 МБ кэша с уполовиненной до 8 путей ассоциативностью.

Как и предшественник, ядра SB активней используют КМОП-логику по сравнению с динамической, что отразилось на частоте возникновения ошибок при работе. Это потребовало внедрить более мощные алгоритмы и коды (ECC) в кэшах ядер, способные в каждом байте обнаружить и исправить 2-битные ошибки и обнаружить (но не исправить) 3-битные. До сих пор ЦП умели обнаруживать до двух неверных бит и исправлять один, требуя в среднем 1 бит ECC на каждый защищаемый байт. Новый код, видимо, требует не менее 1,5 бит/байт - чуть позже мы сможем это проверить.

Кольцевая шина

Не только наш Внимательный Читатель догадался, как надо связать L3 и ядра, чтобы ПС кэша росла пропорционально числу банков (а значит - и ядер). Однако эта кольцевая шина, вопреки утверждению Intel, в SB появилась не впервые. Если не считать различных специализированных процессоров (в частности, некоторых ГП), среди ЦП вообще она появилась в 9-ядерных Sony/IBM Cell BE (2007 г.). У ЦП Intel кольцевая шина была внедрена в 8-ядерных серверных Xeon серий Nehalem-EX (2010 г.), откуда с небольшими изменениями она попала SB. Её имеют и только что вышедшие серверные Westmere-EX (Xeon E7).

В каждом направлении протянуто 4 шины: запросов, подтверждений, (для поддержки ) и собственно данных (шириной 32 байта) - разумеется, всё защищено битами ECC. Протокол обмена является чуть переделанной и дополненной версией шины QPI, которую мы привыкли видеть как межпроцессорную шину типа «точка-точка», аналогичную HyperTransport в ЦП AMD. Внутри процессора связываемые «точки» являются агентами, каждый из которых имеет две пары шинных портов (приёмный и передающий в каждую сторону) и пару клиентских. К шинным подключены звенья шины, связывающие соседние агенты. К клиентским обычно подключены локальное x86-ядро и локальный банк L3. Однако в 2/4-ядерных SB один из крайних агентов подключен только к ГП, а второй - только к «системному агенту»; шинные порты также используются наполовину, т. к. в этих местах шина разворачивается на 180°, соединяя противонаправленные звенья. В 8-ядерном серверном SB будет 8 обычных агентов и 4 концевых, каждый из которых разворачивает направление обеих шин на 90°, задействуя все шинные порты, и обслуживает по одному клиенту-контроллеру: по 2 для памяти и для внешних шин (QPI и PCIe).

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

Таким образом, пиковая ПС шины равна полупроизведению числа используемых шинных портов всех агентов, 32 байт и частоты. «Полу-» - потому что требуется 2 порта для каждого звена. Учитывая, что кольцо, как и L3, работает на максимуме частот ядер, абсолютный максимум его ПС получается очень большим: для 4-ядерного ЦП на 3 ГГц - 960 млрд. байт/с (по «славной» традиции производителей винчестеров назовём это 960 ГБ/с:). Для сравнения - в Cell BE ко́льца также передают по 32 байта в каждую сторону, но на одну передачу требуется 2 такта, поэтому этот 9-ядерный ЦП наберёт на 3 ГГц примерно те же 960 ГБ/с.

Физически звенья шины проложены дорожками на самом высоком уровне, доступном для передачи сигналов - 7-м и 8-м . Вышележащие слои используются только для питания и контактных площадок. Причём дорожки проходят поверх банков L3 и отдельного места не занимают. Такое устройство позволяет масштабировать шину простым копированием агентов и звеньев, что гораздо проще добавления дополнительных портов к центральному коммутатору. Впрочем, у последнего есть и преимущество - задержка прямой коммутации куда меньше, чем транзитной. Однако из-за более высокой частоты кэш L3 в SB оказался всё же с меньшей задержкой, чем в Nehalem.

Поддержка аппаратной отладки

Говоря о кольцевой шине, стоит упомянуть новую отладочную функцию - Generic Debug eXternal Connection (GDXC). Она позволяет мониторить трафик и синхрокоманды шины, перенаправляя их во внешний логический анализатор, подключаемый к спецпорту процессора. Ранее такие тонкие инструменты были доступны разве что производителям системных плат (разумеется, при полной секретности), да самим разработчикам. Но GDXC доступна и системным программистам, что, по идее, должно способствовать вылавливанию ошибок и оптимизации видеодрайверов. Что касается «обычных программистов», им наверняка пригодится увеличение (с 6 до 8) числа счётчиков производительности и событий в каждом ядре.

Когерентность и «поддержка» OpenCL

Nehalem был первым ЦП Intel со времён Pentium 4, в котором кэш последнего (т. е. 3-го) уровня стал включающим относительно остальных. Это означает, что в многопроцессорной системе процессорам будет проще отслеживать копии данных, раскиданных по разным кэшам, что требуется для поддержки их когерентности. Для этого теги каждой строки в L3 среди прочего хранят набор битов, обозначающих я́дра этого ЦП, в кэши которых эта строка была скопирована, а также номера других ЦП, в кэшах которых также есть её копия. Для Westmere-EX число таких битов наверняка не меньше 17 (10 ядер + 7 «остальных» ЦП). Кроме того, тогда же стандартный протокол когерентности MESI обновился до MESIF, включив в себя 5-е состояние Forward, разрешающее ответ на снуп-запрос от другого ЦП (в MESI ответить мог каждый ЦП, что увеличивало снуп-трафик). Соображением минимизации снуп-трафика руководствовалась и AMD, добавив для своих Opteron 5-е состояние Owned и получив протокол MOESI.

Когда при доступе в L3 из какого-либо ядра оказывается, что искомая строка закэширована другим ядром (для простоты предположим, что одним) и может быть им модифицирована, происходит обращение к его кэшам L1D и L2 для проверки её актуального состояния. Проверка называется «чистой», если данные оказались нетронутыми, и «грязной», если они модифицированы и требуют копирования в запрашивающее ядро и L3. В SB первый случай вызывает задержку в 43 такта, а второй - в 60. Эти указанные в документации цифры почему-то являются константами, хотя должны зависеть от топологического расстояния между ядрами на кольцевой шине. Да и разница в 17 тактов куда больше, чем положенные 2 для передачи 64 байт…

Новинкой в SB по части включающей политики L3 является то, что биты присутствия копий данных в кэшах ядер учитывают и ГП. Т. е. с точки зрения программы ГП можно использовать как векторный , работающий с общими данными в общем адресном пространстве. По идее, поддержка OpenCL 1.1 в ГП этому должна способствовать, что успел заявить Thomas Piazza, глава отдела графических архитектур Intel. Однако некоторые аналитики упорно писали, что OpenCL в SB не поддерживается. Ещё один детектив? Да, и он распутан.

Согласно заявлению другого представителя компании, поддержка физически есть, но из-за неготовности драйвера при его активации по-прежнему будут использоваться лишь ресурсы x86-ядер. Когда появится обновление, где всё заработает, - сказано не было. По менее официальным каналам получен намёк, что и до этого ГП как-то можно будет использовать в качестве сопроцессора. Но только после доделки нужного SDK (инструментального пакета для программистов) ГП будет доступен не «как-то», а по-человечески. :)

Для облегчения доступа к данным всё адресное пространство ЦП делится на 3 раздела: для x86-ядер, ГП и некогерентных данных. Раздел ГП использует «слабую» когерентность для ускорения проверок, осуществляемых программным путём через драйвер (в частности, данные пересылаются в раздел x86 синхронизационными процедурами, а не автоматически). Некогерентные данные также используются ГП для завершающих операций переноса готового кадра в память.

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

и

Системный агент - это та часть «внеядра», которая получается после вычета кэша L3 и ГП. Остаётся вот что:

  • арбитр со своим портом кольцевой шины - коммутирует потоки данных между остальными частями агента;
  • порт отладочной шины GDXC;
  • контроллер шин QPI (1–2 соединения на 25,6, 28,8 или 32 ГБ/с) - очевидно, присутствует только в серверных моделях;
  • контроллер шин PCIe 2.0 (на 1 ) или 3.0 (2 ГП/с, только для Xeon) - в зависимости от модели может быть 16-, 20-, 24- и 40-полосным и допускает различные схемы соединений по числу полос: для наиболее распространённых 20-полосных моделей это x16+x4 (для большинства мобильных SB доступен только этот вариант), x8+x8+x4 и x8+x4+x4+x4 (только для младших Xeon);
  • контроллер шины 2.0 - для соединения с PCH (чипсетом): фактически немного преобразованный 4-полосный канал PCIe, по сравнению с v1.0 (в Nehalem и Atom) удвоил ПС до 4 ГБ/с (сумма в оба направления);
  • «гибкое межсоединение экранов» (Flexible Display Interconnect, FDI) - порт для соединения с контроллером физических интерфейсов экранов в составе чипсета, также переработанный из PCIe;
  • ускоритель (де)кодирования видео;
  • контроллер памяти;
  • программируемый силовой контроллер (Power control unit, PCU) с собственной прошивкой.

Наиболее интересными тут оказываются 3 последних пункта. Однако видеоускоритель оставим для обзора графической части, тут же расскажем об ИКП. Он поддерживает 2–4 канала памяти вплоть до DDR3-1600 (с ПСП 12,8 ГБ/с на канал), но для настольных и мобильных ЦП - только 2 канала DDR3-1333. Каждый канал имеет отдельные ресурсы и независимо обслуживает запросы. ИКП имеет внеочерёдный планировщик операций (!), максимизирующий ПСП с минимизацией задержек. Кроме того, ещё в версиях Nehalem для Xeon появилась технология SMI (Scalable Memory Interconnect, масштабируемое межсоединение памяти) с использованием подключаемых SMB (масштабируемый буфер памяти, аналог буфера AMB из FB-DIMM, но находящийся не на модуле, а на системной плате). Буфер подключается скоростной последовательной шиной к каналу ИКП процессора и позволяет подключить к себе большее суммарное число модулей, чем напрямую к ЦП. Правда, от этого ухудшаются и задержки, и частота работы памяти.

В каждом канале есть 32-строковый буфер записи, причём запись считается завершённой, как только данные попадут в буфер. Как ни странно, этот буфер не занимается, в результате чего частичные записи (когда обновляется не вся строка) обрабатываются неэффективно, т. к. требуют чтения старой копии строки. Это странно, учитывая, что современные микросхемы памяти учитывают битовую маску записи не только для отдельных 8-байтовых слов (которых 8 на строку), но и байт в словах, потому комбинация неизменной и обновлённой частей строки производится внутри чипа памяти, а не в ИКП. Впрочем, в SB ИКП (как и кэши) может включать продвинутые методы ECC, и для этого даже частично обновляемую строку для пересчёта ECC надо начала считать целиком. Причём это правило работает даже при применении обычной памяти, а также в большинстве мобильных моделей, где ECC-память вовсе не поддерживается. 2.0

Силовой контроллер системного агента отвечает сразу за 3 функции - защита от перегрева, сохранение энергии и авторазгон (именно в таком порядке они добавлялись с эволюцией ЦП x86). Последний пункт в процессорах Intel известен как технология Turbo Boost (TB). Её обновлённая версия является одним из главных «гвоздей программы», т. к. для слабопараллелизуемых программ она может дать ускорение не меньшее, чем все архитектурные улучшения в ядрах.

Напомним, что TB следит за текущими частотами, напряжениями питания, силами тока и температурами разных частей кристалла, чтобы определить, можно ли повысить работающим ядрам частоту на очередной шаг множителя (отдельно для x86-ядер и ГП). При этом учитываются пределы по всем вышеуказанным параметрам. Главной новинкой 2-й версии TB является дополнительное повышение частот, происходящее сразу после периода простоя всех или большей части ядер и обусловленное температурной инерцией системы «ЦП + радиатор». Очевидно, что при включении нагрузки и всплеске выделения тепла температура кристалла достигнет некоего значения не мгновенно, а плавно и с замедлением. Так вот если текущая температура пока ещё не критическая, и по остальным параметрам также есть запас, то контроллер ещё чуть поднимет множитель, ещё чуть увеличив потребление и выделение энергии и ещё чуть увеличив скорость роста температуры. Кстати, Intel продемонстрировала стабильную работу 4-ядерного SB на частоте 4,9 ГГц с воздушным охлаждением…


Зелёным пунктиром обозначена частота, а красным - температура. Во врезке - типичная нагрузка на ЦП домашнего ПК.

В зависимости от качества кулера и политики BIOS по регулировке оборотов вентилятора при разной температуре, первые 10–25 секунд после относительно длительного простоя процессор будет потреблять больше величины TDP, а занятые ядра теоретически должны работать на бо́льших частотах, чем у ЦП Westmere в тех же обстоятельствах. Как только температура поднимается до критической отметки, частота снизится к обычному «турбированному» значению - это снизит и выделение тепла до TDP, а температура расти перестанет. Выигрыш в том, что в течение нескольких секунд система будет работать чуть быстрее, чем с Turbo Boost 1.0. Т. е. вторая версия технологии является «турбонаддувом турбобуста». Отсюда ясно, на какие сценарии это рассчитано - периодический запуск малооптимизированных под многопоточность программ, быстро решающих свою задачу и снова погружающих систему в простой на несколько минут. При домашней и офисной работе - типичная ситуация.

Не стоит забывать, что теперь каждый шаг множителя для x86-ядер равен 100 МГц, а не 133, поэтому напрямую сравнивать «турбо-формулы» SB и Nehalem не получится. Для ГП шаг равен 50 МГц, а для ИКП - 266 (максимум - 2166, автоматически не разгоняется). Частота шины DMI принимается как базовая, от которой отталкиваются остальные часто́ты всей системы. Впрочем, ровно по этой причине её как раз надо оставить на стандартных 100 МГц, и если уж заниматься разгоном, то только через множители. Кстати, отдельный тактовый генератор теперь не обязателен и будет присутствовать лишь на дорогих «оверклокерских» платах, а остальные станут чуть дешевле и проще.


Обычно тактовый генератор южного моста подключен к нескольким делителям в самом мосту, а через шину DMI - и к ЦП с его разнообразными умножителями…


…Но в дорогих платах внешний генератор тактирует всё.


1. Микроархитектура Sandy Bridge: кратко

Чип Sandy Bridge – это двух-четырёхъядерный 64-битный процессор ●с изменяемой(out-of-order) последовательностью исполнения команд, ●c поддержкой двух потоков данных на ядро (HT), ● c исполнением четырёх команд за такт; ● с интегрированным графическим ядром и интегрированным контроллером памяти DDR3; ● с новой кольцевой шиной, ● поддержкой 3- и 4-операндных (128/256-битных) векторных команд расширенного набора AVX (Advanced Vector Extensions); производство которого налажено на линиях с соблюдением норм 32-нм технологического процесса Intel.

Так, одним предло-жением можно оха-рактеризовать новое поколение процес-соров Intel Core 2 для мобильных и настольных систем, с поставкой c 2011 г.

МП Intel Core II на базе МА Sandy Bridge поставляются в новом 1155 контактном конструктиве LGA1155 под новые системные платы на чипсетах Intel 6 Series с наборами системной логики (Intel B65 Express, H61 Express, H67 Express, P67 Express, Q65 Express, Q67 Express и 68 Express, Z77).


Примерно такая же микроархитектура актуальна и для серверных решений Intel Sandy Bridge-E с отличиями в виде большего количества процессорных ядер (до 8), процессорного разъёма LGA2011 , большего объёма кеша L3, увеличенного количества контроллеров памяти DDR3 и поддержкой PCI-Express 3.0.

Предыдущее поколение, микроархитектура Westmere представляла собой конструкцию из двух кристаллов : ● 32-нм процессорного ядра и ● дополнительного 45-нм «сопроцессора» с графическим ядром и контроллером памяти на борту, размещённых на единой подложке и производящих обмен данными посредством шины QPI, т.е. интегрированную гибридную микросхему (в центре).

При создании МА Sandy Bridge разработ-чики разместили все элементы на едином 32-нм кристалле, отказа-вшись при этом от классического вида шины в пользу новой кольцевой шины.

Суть архитектуры Sandy Bridge осталась прежней - ставка на увеличении суммарной производительности процессора за счёт улучшения «индивидуа-льной» эффективности каждого ядра.



Структуру чипа Sandy Bridge можно условно разделить на следующие основные элементы : ■ процессорные ядра, ■ графическое ядро, ■кеш-память L3 и ■ «системный агент» (System Agent). Опишем назначение и особенности реализации каждого из элементов этой структуры.

Вся история модернизации процессорных микроархитектур Intel последних лет связана с последовательной интеграцией в единый кристалл всё большего количества модулей и функций, ранее располагавшихся вне МП : в чипсете, на материнской плате и т.д. По мере увеличения производительности процессора и степени интеграции чипа, требования к пропус-кной способности внутренних межкомпонентных шин росли опережающими темпами. Ранее обходились межкомпонентными шинами с перекрёстной топологией – и было достаточно.

Однако эффективность такой топологии высока лишь при небольшом количестве компонентов, принимающих участие в обмене данными. В Sandy Bridge для повышения общей производительности системы обратились к кольцевой топологии 256-битной межкомпонентной шины на основе новой версии QPI (QuickPath Interconnect).

Шина служит для обмена данными между компонентами чипа :


● 4-мя МП ядрами x86,

● графическим ядром,

● кешем L3 и

● системным агентом.


Шина состоит из 4-х 32-байтных колец :

■ шины данных (Data Ring), ■ шины запросов (Request Ring),

■ шины мониторинга состояния (Snoop Ring) и ■ шины подтверждения (Acknowledge Ring).


Управление шинами осуществляется с помощью коммуника-ционного протокола распределённого арбитража , при этом конвейерная обработка запросов происходит на тактовой частоте процессорных ядер, что придаёт МА дополнительную гибкость при разгоне. Производительность шины оценивается в 96 Гбайт/с на соединение при тактовой частоте 3 ГГц , что в 4 раза превышает показатели процессоров Intel предыдущего поколения.

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

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

Кроме того, физически кольцевая шина располагается непосредственно над блоками кеш-памяти L3 в верхнем уровне металлизации, что упрощает разводку дизайна и позволяет сделать чип более компактным.

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

Технология шины заключается в следующем. В первое посещение после тщательного обследования и составления плана шинирования следует снять оттиски альгинатной массой для изготовления диагностических гипсовых моделей. В параллелометре определяется топография межевой линии, модели фиксируют в артикуляторе и наносят рисунок коль­цевой шины. На этой же модели осуществляется фантомное препарирование шинируемых зубов. В следующее посещение под анестезией препарируют зубы, строго соблюдая границы фантомного препарирования. Для изготовления колец вновь снимают оттиск с помощью альгинатной массы. Снятие двойного оттиска у пациентов с заболеваниями пародонта может быть затруднено из-за подвижности отдельных зубов и опасности их удаления. По полученным оттискам отливают гипсовые рабочие модели, которые используют для изготовле­ния штампованных заготовок будущих колец. Полученные штампованные коронки используют для изготовления колец, которые проверяют в полости рта больного и если они отвечают требованиям вместе с ними снимают оттиск для перевода колец на гипсовую модель. Перед снятием оттиска контактные поверхности обращенных друг к другу колец зачищают от окалины для последующей спайки колец на гипсовой модели без предварительного их снятия, что обеспечивает точность их взаимного расположения при изготовлении шины. Готовую шину после спайки колец подвергают отбеливанию, полируют и фиксируют в полости рта больного специальными цементами.

К недостаткам кольцевой шины относятся: 1 - нарушение эстетики естественных зубов, часть которых закрыта металлическим кольцом; 2 - наличие припоя нередко приводит к его окислению и изменению цвета в виде потемнения, особенно часто это наблюдается у пациентов с повышенной кислотностью желудочного сока; 3 - отсутствие шинирующего эффекта при вертикальной нагрузке; 4 - шина требует применения цементов, весьма устойчивых к воздействию ротовой жидкости (если это условие не соблюдается, возникает опасность поражения зубов кариесом и нарушения фиксации шины).

Рис. 26. Кольцевая шина: а - вид с губной стороны; б - вид с язычной стороны; в - общий вид кольца; г - схема подготовки зуба: пунктирная линия обозначает край кольца; слева показано чрезмерное удаление твердых тканей с контактной поверхности; справа - правильное препарирование, когда выступающие над нижней границей кольца твердые ткани удалены точно до обозначенной пунктирной линии; д, е - границы препарирования (вид спереди и сверху)

Полукольцевая шина. Конструктивно шина построена на том же принципе, что и кольцевая. Однако с целью повышения эстетических свойств шины средняя часть кольца с губной стороны удаляется и, таким образом, вестибулярная поверхность зуба в ее средней части освобождается от металла (рис. 27). Таким образом, на губной поверхности остаются короткие плечи в виде ленточных кламмеров, охватывающих зубы полностью с язычной стороны и частично с вестибулярпой. Наилучший шинирующий эффект достигается при включении в шину полных опорных коронок, покрывающих крайние зубы - клыки. С технологической точки зрения шина наиболее практична при изготовлении цельнолитой конструкции, поскольку штампованные полукольца не обладают необходимой для шинирования жесткостью. Кроме того, в настоящее время появилась возможность покрывать литые полукольца декоративным материалом - керамикой, что делает шину весьма выгодной в эстетическом отношении

Рис. 27. Полукольцевая шипа: а - вид с вестибулярной стороны; б - вид с язычной стороны

Колпачковая шина. Система спаянных колпачков, покрывающих режущий край, контактные поверхности зуба, а на язычной поверхности достигающих зубного бугорка, обозначается как колпачковая шина (рис. 28). Препарированию подвергаются режущий край и контактные поверхности на толщину колпачка. С губной стороны край колпачка может быть расположен сверху на твердых тканях зуба или заканчиваться на специально сформированном уступе. Второй вариант предпочтительнее, поскольку край колпачка оказывается лежащим на одном уровне с примыкающими к нему твердыми тканями, то есть заподлицо. В первом варианте край колпачка часто ощущается пациентами, может травмировать окружающую его подвижную слизистую оболочку полости рта и требует создания фальца при переходе края кол­пачка в твердые ткани зуба. Колпачки могут изготавливаться двумя способами: 1) из штампованных коронок, 2) цельнолитые. Второй вариант считается более совершенным, по­скольку возрастает точность всей шинирующей конструкции, а значит повышается ее шинирующий эффект, и, кроме того, появляется возможность облицовывать литую конструкцию керамикой. Для лучшей устойчивости шину объединяют с полными коронками (металлоакриловыми или металлокера-мическими), покрывающими крайние наиболее устойчивые зубы - клыки или премоляры. Последовательность изготовления та же, что и при изготовлении кольцевой шины.

Рис. 28. Колпачковая шина: а - вид с губной стороны; б - вид с язычной стороны; в - слой удаляемых твердых тканей под колпачковую шину; г - штампованный колпачок; д - препарирование под литой колпачок; с - конструкция литого колпачка с облицовкой режущего края

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

При применении несъемных конструкций шин следует строго соблюдать правила размещения края шин, расположенных вблизи десиевого края. Последний не должен травмироваться шиной. Для этого край коронки следует минимально погружать в десневую бороздку, а для предупреждения возможного давления на десну применять методику препарирования зубов с уступом практически на уровне с ней. Щадящее отношение к больному пародонту при приме­нении несъемных шин благотворно сказывается на течении заболевания пародонта и не является препятствием для консервативной и хирургической терапии. Кроме того, важным с точки зрения предупреждения травмы десиевого края является метод получения оттисков. Мы считаем наиболее оптимальным в этом случае снимать оттиски для изготовления шинирующих конструкций наиболее эластичными альгинатными материалами, позволяющими при подвижных зубах избежать случайного удаления зубов вместе с оттиском. Встречающиеся в специальной литературе рекомендации снимать двуслойные оттиски с помощью силиконовых оттискных материалов, даже с предварительным шинированием, как показывают наблюдения, не приемлемы, так как снятие двуслойных оттисков может быть причиной удаления подвижных зубов.

СЪЕМНЫЕ ШИНЫ

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

При необходимости же замены удаленных зубов искусственными реставрация съемной шины может быть проведена без замены всей конструкции.

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

При ортопедическом лечении заболеваний пародонта с помощью съемных шин целесообразно выделять две группы больных:

с интактными зубными рядами; частичной потерей зубов.

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

Рис. 44. Съемная шина Эльбрехта: а - шина Эльбрехта (объяснение в тексте); б - разновидности многозвеньевого (непрерывного) кламмера: 1 - высокое положение кламмера (в верхней части язычной поверхности) каплевидной формы; 2 - расположение кламмера в средней части язычной поверхности; 3 - низкое положение кламмера (в придесневой половине язычной поверхности); 4 - кламмер в виде широкой полоски

Съемная шина с денто-альвеолярными кламмерами по В.Н. Копейкину. Съемная шина Эльбрехта была модифицирована В.Н. Копейкипым, который предложил для усиления ретенционпых свойств и достижения лучшего эстетического эффекта использовать Т-образные кламмеры Роуча. Многозвеньевые кламмеры в этой конструкции опушены ниже десневого края и в виде дуги располагаются па скате альвеолярных отростков передних отделов челюстей с вестибулярной и язычной сторон. От них к каждому переднему зубу отходят Т-образные кламмеры, плечи которых располагаются в зонах поднутрения. Шина может быть рекомендована при устойчивых или подвижных 0-1 степени передних зубах, когда шинирующие свойства удерживающих Т-образных клэммеров не будут оказывать вредного воздействия на больной пародонт (рис. 45). Для этого необходимо размещать плечи Т-образных кламмеров таким образом, чтобы они находились вне зоны поднутрения. Фиксирующие свойства шины обеспечиваются за счет введения в зону поднутрения тех литых плеч кламмеров, которые расположены на устойчивых зубах с наименее пораженным пародонтом. Эта шила так же, как и все остальные цельнолитые конструкции, должна отливаться с использованием огнеупорных моделей. Съемная шина Эльбрехта может быть усилена дугами, располагающимися на язычной поверхности ската альвеолярного отростка нижней челюсти или своде неба верхней (рис. а, б). Если подобная шинирующая конструкция применяется только для шинирования боковых зубов, достигается нарасагиттальная стабилизация (рис. в, г).

Рис. Съемные шины, усиленные дугами для нижней (а) и верхней челюсти (б). Конструкция шины для создания пара-сагиттальной стабилизации: в - на модели; г - общий вид шины

Рис. М. Съемная шипа с литой каппой для передних зубов: а - на гипсовой модели; б - каркас съемной шины

Рис. 48. Съемные шииы для передних зубов; а - съемная круговая шина; б - съемная шипа в виде непрерывного кламмера с когтевидиымн отростками

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

Съемная конструкция требует тщательного планирования и определенной последовательности действий:

Диагностика и обследование пародонта.

Подготовка поверхности зубов и получение слепков для будущей модели

Изучение модели и планирование конструкции шины

Моделирование восковой репродукции шины

Получение литейной формы и проверка точности каркаса на гипсовой модели

Проверка шины (шины-протеза) в полости рта

Окончательная отделка (полировка) шины

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