Показать сообщение отдельно
Старый 09.06.2009, 16:49   #1 (permalink)
Aleksan
IT - Specialist
 
Аватар для Aleksan
 
Регистрация: 08.12.2007
Сообщений: 6,815
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 6316
По умолчанию Битва технологий: Intel Nehalem против AMD Barcelona

Не могу порадоваться сам и порадовать Вас, но у Интела появился соперник во всех сегментах...

Мир компьютерных технологий повидал много "сражений" на своем веку. Дабы оказаться лучшими, непримиримые компании буквально вгрызаются острыми, словно меч самурая, "клыками" друг в друга. Под крики "no pasaran" и размахивание до боли похожими друг на друга патентами и наработками перед взором пользователя предстает завораживающая картина, именуемая конкуренцией. И, пожалуй, одним из интереснейших и одновременно жестких противоборств является, по сей день, борьба двух процессорных гигантов – Intel и AMD, самым свежим оружием которым служат остро заточенные флагманские 45-нанометровые архитектуры Nehalem и Barcelona.

http://www.tehnari.ru/imagehosting/2...e4c0adac11.jpg
Nehalem & Core i7

Со времени выхода не совсем удачного Pentium 4 разработчики Израильского отделения в Хайфе, чуть уступая скорости света, "состряпали" новую архитектуру 65-нанометровых процессоров. Нелегкая работа закончилась успешно, и новая архитектура Conroe (основанная на переработке ноутбучного Pentium M) вернула Intel статус самых гламурных и производительных CPU в галактике. Последующий 45-нанометровый "*****" всего лишнего с превращением Core (режим "тик") в Penryn (режим "так") только укрепил позиции "синих" (здесь автор имеет в виду концепцию Intel "тик-так", когда сперва в отработанный техпроцесс производства внедряется новая архитектура, а затем, доработанная архитектура переводится на более тонкий техпроцесс производства – прим. ред.). Ставка на двуядерные модели сыграла, а на четырехъядерные процы крапленых карт не хватило.
По мере "количественного" развития компания столкнулась с рядом проблем. Дабы опередить лучшую "подругу" AMD, вначале были рождены сиамские "камни", таящие два двуядерных кристалла под металлической крышкой. Но малый кэш второго уровня, исчерпавшая весь свой пропускной потенциал шина FSB и успешные серверные процессоры Opteron (Shanghai) заставили разработать новую, инновационную архитектуру процессоров Intel (если бы не чудовищное отставание AMD в области кремниевых технологий, то Intel снова могла бы попасть в ситуацию, как с Pentium 4 – прим. ред.). Так появились Intel Nehalem (снова режим "тик") – процессоры с большой буквы "П". Строение кремниевых творений на первый взгляд сильно напоминает детище основных конкурентов из Саннивейла: Intel перешла к полноценным четырем ядрам, трехуровневой системе разделения кэш-памяти и внедрила непосредственно в "камень" контроллер памяти в совокупности с "широким" интерфейсом QPI. Появилась пропавшая без вести в Penryn’ах технология многопоточности SMT (Simultaneous Multi-Threading), основанная на переработке технологии Hyper-Threading, используемой еще в процессорах семейства Northwood. Как всегда, архитектура обзавелась очередными инструкциями SSE. Данные новшества потребовали хорошего изменения конвейеров, блоков и буферов.

Кэшируй буфера!

Начать анализ Nehalem-архитектуры стоит с общего для всех ядер кэша третьего уровня – отныне незаменимого помощника в согласовании информации "близнецов". Именно L3 резервирует большинство из 731 миллиона транзисторов 45-нанометрового процессора. Если семейство Conroe и Penryn довольствовались исключительно SRAM второго уровня, то с увеличением количества ядер стало необходимым использовать общую и достаточно объемную память. Любое из четырех "попрошаек"-ядер ЦПУ может "воровать" данные друг у друга, что необратимо приведет к увеличению задержек, уменьшению пропускной способности внутренних шин и множеству проблем по арбитражу используе мой информации. В связи с такими отрицательными последствиями каждому ядру выдали по 256 килобайт кэш-памяти второго уровня, сократив тем самым задержки приблизительно на 60 процентов в сравнении с Penryn (10 тактов вместо 15).
Наша же гостеприимная общая L3-SRAM для соединения частей CPU друг с другом обзавелась 8 мегабайтами памяти. Если необходимые ядру данные отсутствуют в кэше третьего уровня, то они отсутствуют и в других уровнях остальных ядер (инклюзивная работа L3). Следовательно, нет необходимости "ковыряться" в чужой песочнице. И наоборот, если данные присутствуют в других ядрах, то в общей кэш-памяти будет присутствовать адрес этих данных размером четыре бита на строчку памяти. В результате взаимосвязь ядер усовершенствовалась, а пропускная способность увеличилась до 40 тактов за единицу времени. Небольшой проблемой является объем получаемого "бэкапа" от нижних уровней. При L1, равном 64 килобайта (так называемые L1I-cache и L1D-cache по 32 килобайта каждый), получаем 64*4 + 256*4 = 1280 килобайт (1.25 Мбайта) адресного пространства, отъедаемого у кэша третьего уровня. Раз уж заговорили об L1, стоит отметить, что он не претерпел никаких изменений. Производительность осталась на том же уровне – 16 байт за такт. В сравнении с "камнями" Deneb, имеющими скорость 32 байта плюс уменьшенное количество декодеров, процессоры Nehalem могут уступать в обработке 64-битных инструкций.
Во время выполнения операций процессор работает с виртуальным адресом памяти (за счет чего повышается выделение физической памяти под нужды программы). Каждый доступ к кэш записывается в таблицу, размер которой позволяет хранить ее в основной памяти или даже скидывать часть таблицы на жесткий диск. В результате перевод адресов превратился бы в настоящую рутину. Для быстрой работы используют специальную кэш-память – TLB (Translation Lookside Buffer). Она хранит адреса и напрямую передает их процессору для работы. Такой буфер используется уже давно, но в Nehalem TLB имеет два уровня (Conroe имел кэш первого уровня размером всего в 16 записей): TLBL1D (64 записи для небольших адресов и 32 записи – для больших) и TLBL1I (128 записей для маленьких страниц и 7 для крупных). Level 2 может хранить в себе до 512 записей маленьких страниц. Данные из кэша второго уровня доставляются на обработку гораздо дольше, чем из первого, что говорит о настроенности процессоров Nehalem обрабатывать большие массивы информации (первоочередная необходимость серверных систем).
Для повышения производительности памяти CPU Intel усовершенствовала невыровненный доступ (выровненным считается доступ к адресам, равный одной строчке кэша, то есть 64 байтам) к памяти за счет специальных инструкций. В архитектуре Core невозможность обработки такого типа данных приводила к возникновению нескольких операций в декодере и моментальному снижению пропускной способности памяти (генерация наложенных друг на друга строчек кэша осуществлялась на 10-15 тактов медленнее). Усовершенствовался и механизм предсказания доступа к памяти (за счет увеличения блоков предварительной выборки).

Виртуальное размножение

"Новое – хорошо забытое старое или иногда они возвращаются", – такими вот крылатыми выражениями вполне можно описать появление в процессорах Nehalem технологии Simultaneous Multi-Threading. Затраты по внедрению популярной некогда виртуальной симуляции ядер процессора минимальны, и инженеры Хиллсборо (именно там "родилась" новая архитектура) решили вернуть Hyper-Threading в стан кремниевого "отряда".
Чем больше исполнительных блоков и "толще" CPU (больше уровней конвейера), тем тяжелее распараллелить нагрузку. Новые процессоры Core i7 используют 6 исполнительных блоков, каждый из которых может производить одновременно три вычисления и три обращения к памяти. При выполнении перечисленных операций используются не все блоки. В результате чего в работе "камня" появляются холостые такты (их еще называют "пузырями"). Для излечения "пузырьковой болезни" применяют упомянутую выше технологию. Превращение одного физического ядра в два виртуальных осуществляется за счет дублирования регистров (кэш и исполнительные блоки остаются неизменными). Если потоки выполняют различную работу, то прирост производительности будет впечатляющим. Если же два "ручья" будут обрабатывать одни и те же данные, незамедлительно произойдет снижение быстродействия. Как говорится, флаг в руки программистам! Но стоит помнить, что в Nehalem’е потоки каждым ядром создаются не одинаковыми (данное обстоятельство имеет место в процессоре Xenon игровой консоли Xbox 360 и не вызывает особых проблем при оптимизации игр).
По сравнению с четвертым "Пнем" улучшение Hyper-Threading’а осуществляется за счет изменения размера буферов (во избежание эффекта "бутылочного горлышка"). Отныне буфер хранения имеет 32 записи (у Conroe – всего 20), а буфер чтения – 48 записей (против 32 у 65-нанометровых процессоров). Изменился и буфер порядка команд. Отслеживание всех выполняемых инструкций выполняется со 128 записями, а не с 96, как у представителей CPU устаревшей архитектуры. Инструкции, кстати, расширились до версии 4.2. Усовершенствованный SSE (Super Shuffle Engine) теперь поддерживает семь новых команд. Среди них четыре по обработке строк (арифметическое сравнение между возможными парами полей обеих строк) и по одной для подсчета CRC32 (накопление значения CRC32 8-, 16-, 32- и 64-битного аргумента), POPCNT (Population Count – подсчет числа единичных бит, используемый в технологиях распознавания голоса и определения последовательности белков в молекулах ДНК) и векторных примитивов PCMPGTQ.
Aleksan вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070