КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Процессоры компании TileraСтр 1 из 3Следующая ⇒ Современные многоядерные процессоры IBM. Процессоры компании Tilera
Появившиеся в начале XXI века первые двухъядерные процессоры от Intel и AMD стали не просто очередными конкурирующими новинками от лидеров отрасли ПК, как это часто бывало в последние годы. Их появление - начало нового этапа проникновения профессиональных технологий в потребительский сегмент «настольных» вычислений, как в тактическом, так и в стратегическом понимании. 1. Предварительные определения: архитектура.
Архитектура многоядерных процессоров аналогична архитектуре построения многопроцессорных систем. Существует общепринятая классификация:
1. SMP - системы (Symmetrical Multi Processor systems) (Слайд 2) - все процессоры имеют равноправный доступ к общей оперативной памяти. Создавать подобные системы с определенным уровнем рентабельности сложно: SMP - системы обычно содержат 2-4 процессора. Цена системы с большим числом процессоров может достигать сотен тысяч долларов (SMP с 32-мя CPU может стоить несколько миллионов долларов) Экономически более целесообразно использовать менее дорогостоящие архитектуры. Intel предпочитает создавать SMP - системы. 2. NUMA - системы (Non-Uniform Memory Access systems) (Слайд 3) - память таких систем неоднородна один её фрагмент «быстрее», другой – «медленнее. В системе при этом образуются сегменты со своей, быстрой «локальной» памятью, соединенные относительно медленными линиями связи. Обращения к «своей» памяти происходят быстро, к «чужой» - медленнее. Чем «дальше» чужая память расположена, тем медленнее получается доступ к ней. Создавать NUMA - системы куда проще, чем SMP- системы, но без учета неоднородности памяти для NUMA - системы создать эффективное ПО практически невозможно. AMD, IBM и Sun предпочитает создавать те или иные варианты NUMA - систем. 3. Кластеры (Слайд 4) - объединение нескольких компьютеров (узлы кластера или «ноды») посредством быстродействующих линий связи. В отличие от NUMA - систем, при работе с кластером требуется очень четко программно распределять функции обработки. Это создает трудности при программировании приложений и накладывает существенные ограничения на применимость кластерных систем. Основная область применения кластеров – суперкомпьютеры.
2. Предварительные определения: системотехника.
1. APIC (Advanced Programmable Interrupt Controller) – одна из важнейших схем, занимающаяся сбором и обработкой возникающих в компьютере прерываний.
Пример прерывания. Нажатие клавиши на клавиатуре – контроллер клавиатуры зафиксировал это событие, занес код нажатой клавиши в свою встроенную память – и сгенерировал прерывание – выдал по специальной линии сигнал-запрос с просьбой прервать выполнение текущей программы и обработать событие «нажата клавиша на клавиатуре». Это классическая задача специальных контроллеров (IC –контроллеров): они позволяют процессору не терять время, регулярно опрашивая внешние устройства на предмет возникновения событий.
Кроме аппаратных существуют еще и программные прерывания (exceptions), которые генерирует не периферия, а сам процессор – в случае возникновения какой-либо нештатной ситуации.
Типичные примеры:
· в программе встретилась непонятная или просто запрещенная инструкция (#GP, General Protection Exception), · произошло деление на ноль (#DE, Divide-by-Zero Error Exception), · программа обратилась к несуществующему адресу в памяти (#PF, Page Fault Exception).
Некоторые прерывания может генерировать сама программа, а, некоторые используются операционной системой для отладки программ. Реакция на каждое из прерываний задается вектором прерываний – набором адресов в памяти, описывающих действия процессора в случае возникновения прерывания: какие функции (обработчики прерывания) ему в этом случае необходимо выполнять. Для многопроцессорных, многоядерных и даже для процессоров с Hyper - Threading (виртуальной многоядерностью) требуется для обработки программных прерываний по одному APIC на каждое ядро процессора (включая каждое виртуальное ядро). Кроме того, нужен еще один, «синхронизирующий» APIC в чипсете, который обеспечивает обработку аппаратных прерываний и, занимается распределением программных прерываний в тех случаях, когда возникшее на одном процессоре прерывание почему-то затрагивает и остальные процессоры.
2. DMA (Direct Memory Access) – блок чипсета, выполняющий обработку фоновых задач, связанных с периферией. DMA обеспечивает работу процессора по обмену с жесткими дисками, начиная с интерфейса Ultra ATA/33 (будет рассмотрен позже).
Пример. Если процессору требуется прочитать данные с жесткого диска, то не надо ждать несколько миллисекунд, пока эти самые данные ему не будут предоставлены. Вместо этого он программирует DMA - контроллер, чтобы тот выполнил эту задачу за него, и переключиться на другую задачу, пока запрос выполняется.
3. GART (Graphical Address Relocation Table) - блок, обеспечивающий графическому ускорителю доступ к системной памяти процессора. GART появился в компьютерах одновременно с шиной AGP. Его задача – реализация механизма виртуальной памяти для CPU. Позволяет 3D - ускорителям использовать не только собственную видеопамять, но и основную системную память компьютера.
3. Особенности архитектуры
Идея многоядерного процессора довольно проста: несколько процессоров в одном корпусе, и компьютер получает возможность исполнять несколько программных потоков одновременно. Конкретные её реализации в процессорах AMD и Intel заметно различаются.
Архитектура многоядерных процессоров отличается организацией кэш-памяти L1 и L2:
· общая кэш-память 1-го уровня и разделяемая кэш-память 2-го уровня (расположена на одном с обеими ядрами кристалле и доступна каждому в полном объёме - Intel Core)(Слайд 5). · общая кэш-память 1-го уровня и индивидуальная кэш-память 2-го уровня (отдельные кэши равного объёма, интегрированные в каждое из ядер). Обмен данными из кэшей L2 между ядрами - через контроллер памяти (интегрированный Athlon 64 X2 или внешний Pentium D). · индивидуальная кэш-память 1-го уровня и индивидуальная кэш-память 2-го уровня (Opteron) (Слайд 6)
4. Многоядерные процессоры: история возникновения
Основные даты начала эпохи двухъядерных процессоров: (Слайд 7)
1. 1999 год – анонс первого двухъядерного процессора в мире (IBM Power 4 для серверов). 2. 2001 год – начало продаж двухъядерного IBM Power4. 3. 2002 год – почти одновременно AMD и Intel объявляют о создании своих двухъядерных процессоров. 4. 2002 год – выход процессоров Intel Xeon и Intel Pentium 4 с технологией Hyper-Threading, обеспечивающей виртуальную двухпроцессорность на одном кристалле. 5. 2004 год – свой двухъядерный процессор выпустила Sun (UltraSPARC IV). 6. 2005 год, 18 марта – Intel выпустила первый в мире двухъядерный процессор архитектуры x86. 7. 2005 год, 21 марта – AMD анонсировала десктопные двухъядерные процессоры Athlon 64 X2 и начала поставки двухъядерных серверных Opteron 8xx. 8. 2005 год, 20-25 мая – AMD начинает поставки двухядерных Opteron 2xx. 9. 2005 год, 26 мая – Intel выпускает двухъядерные Pentium D для массовых ПК. 10. 2005 год, 31 мая – AMD начинает поставки Athlon 64 X2. 11. 2007 год, май - компания IBM выпускает двуядерный Power 6 (65-нм) - самый быстрый на тот момент процессор в мире с тактовой частотой 4,7 ГГц и кэшем второго уровня в 8 Мб.
Эволюция процессоров шла от увеличения количества элементов на кристалле (интегрированность ядра) через рост частоты процессора к росту количества ядер (многоядерности) и идет весьма быстрыми темпами. Так, в ноябре 2008 года компания Dell подтвердила планы выпуска в 2011 году персонального суперкомпьютера с 80-ядерным процессором (Слайд 8). Такие чипы смогут передавать информацию на скорости 1 терабайт / сек.
5. Многоядерные процессоры: производительность
В приложениях, оптимизированных под многопоточность, наблюдается прирост производительности на многоядерном процессоре. Если приложение не оптимизировано, то оно не будет получать практически никакой выгоды от дополнительных ядер, а может даже выполняться медленнее, чем на процессоре с меньшим количеством ядер, но с большей тактовой частотой. Это в основном старые приложения, либо приложения, которым многопоточность не нужна (например, проигрыватель музыки) или вообще невозможна. 6. Многоядерные процессоры: наращивание количества ядер
На сегодняшний день основными производителями процессоров — Intel и AMD дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности. 7. Многоядерные чипыдля мобильных устройств
Сфера применения многоядерных процессоров – не только ПК и другие ЭВМ. Создаются также и многоядерные чипы для мобильных устройств. Пример - данные из Википедии (Слайд 9):
· seaForth-24 —24-х ядерный асинхронный контроллер архитектуры Chuck Moore, работающий на частоте 1ГГц. · Parallax P8X32A 8-и ядерный контроллер имеет восемь 32-разрядных процессоров в одном кристалле. · Kilocore PowerPC – 1024-х ядерный процессор имеет 1024 8-ми битных ядра, работающих на частоте 125МГц.
8. Многоядерные процессоры: Intel и AMD – два подхода 8.1. Первые двухядерные процессоры Intel
При создании многоядерных процессоров для настольных ПК Intel продолжил традиции создания привычных для себя SMP-систем с общей шиной. Выглядит подобная SMP-система чрезвычайно просто: один чипсет, к которому подключается вся оперативная память, и одна процессорная шина, к которой подключены все процессоры (Слайд 10).
Двухъядерный процессор Smithfield имел два обычных ядра, аналогичных одноядерному Prescott, просто расположены они рядом на одном кристалле кремния и электрически подключены к одной (общей) системной шине. Никакой общей схемотехники у этих ядер нет. (Слайд 11)
У каждого ядра Smithfield – свой APIC, вычислительное ядро, кэш-память второго уровня и свой интерфейс процессорной шины (Bus I/F). Ядро Smithfield является монолитным (два ядра образуют единый кристалл процессора). Следующее поколение настольных процессоров Intel (Presler - 65-нм технология) было еще проще – два одинаковых кристалла одноядерных процессоров (Cedar Mill) в одном корпусе (Слайд 12) Таким же был и первый серверный процессор Intel данной микроархитектуры (Dempsey). Но если у Smithfield на каждое из ядер приходилось по 1 Мбайт кэш-памяти второго уровня, то у Presler и Dempsey (Слайд 13) было уже по 2 Мбайт на ядро.
Затем у Intel пойдут более сложные по микроархитектуре варианты двухъядерных процессоров:
· Montecito (Слайд 14) (двухъядерный Itanium), · Yonah (двухъядерный аналог Pentium M) (Слайд 15), · Paxville для многопроцессорных серверов на базе Intel Xeon MP (Слайд 15).
Такой подход Intel позволил этой корпорации довольно быстро начать производство дешевых и доступных двухъядерников. Организация «системы в целом» у Intel столь же традиционна, сколь и устройство двухъядерного процессора. (Слайд 16). В ней есть несколько равноправных центральных процессоров (как правило, разделяющих общую шину); есть оперативная память и есть разной степени быстродействия периферия. Весь этот комплект объединяется в единое целое специальным коммуникационным процессором – «северным мостом» (Northbridge) чипсета. Через него проходят практически все потоки данных. Подобный централизованный подход, во-первых, отличается относительной простотой, а во-вторых, удобен тем, что в нём каждый компонент компьютера получается узкоспециализированным, и поддающимся модернизации независимо от других компонентов. То есть, с одним и тем же Northbridge можно использовать, различные по своей производительности процессоры и наоборот – меняя Northbridge, можно, использовать с одним и тем же процессором разные типы оперативной памяти. Это преимущество таких SMP-систем одновременно оборачивается и ее огромным недостатком - налицо латентность памяти – замедление ее работы, особенно у систем с большим количеством процессоров (Слайд 17).
8.2. Процессоры AMD: SUMA, SRI и интегрированный Northbridge
Архитектура AMD концептуально иная, т.к. в ней нет какого-то выделенного центра. Каждый из процессоров архитектуры AMD является независимой и самодостаточной единицей, объединяющей в себе почти всю функциональность Северного моста традиционных наборов системной логики. Это началось с одноядерных процессоров, а с появлением двухъядерников добавились новые отличия. Например, в двухпроцессорной системе на двухъядерных AMD Opteron. (Слайд 18) AMD интегрировала практически всю функциональность Северного моста в центральный процессор. Это приводит к совсем иной архитектуре компьютера – SUMA; ее основные преимущества над SMP показывает архитектура двухъядерного AMD Opteron (Слайд 19):
1. Основа SUMA-архитектуры – последовательная шина Hyper Transport (подробнее этот интерфейс будет рассмотрен позднее). В серверных вариантах процессоров AMD может быть интегрировано до трех независимых 16 -разрядных линков (каналов) HT, работающих на частотах 1 ГГц - 2 ГГц со скоростью передачи 4 Гбайт/с в каждом из направлений. HT - линки организуют:
· связь процессоров между собой, · подключение периферийных устройств через внешний чипсет, · подключение процессора к внешнему чипсету.
Т.о. с логической точки зрения все устройства компьютера напрямую подключаются к единой шине HT, объединяющей все устройства, от центрального процессора и до последней PCI - карты.
2. В каждый процессор интегрируется одно- или двухканальный (у двухъядерников) контроллер памяти DDR. Обращения к памяти других процессоров происходят по шине Hyper Transport – ее осуществляет встроенный в Northbridge коммутатор CrossBar, работающий на полной частоте процессора. Он же обеспечивает автоматическую маршрутизацию проходящих через процессор сообщений от периферийных устройств и других процессоров, включая обслуживание чужих запросов к ОЗУ.
3. Шина HT специально оптимизировалась для подобного режима работы с множеством сообщений и обеспечивает высокую (до 4 Гбайт/с) пропускную способность при обращении к памяти других процессоров. Шина является полнодуплексной, т.е. данные одновременно передаются на этой скорости в обе стороны (до 8 Гбайт/с суммарно). Модель получается неоднородной (NUMA), но различия в скорости своих и чужих участков оперативной памяти получаются относительно небольшими.
4. Чипсет сильно упрощается: всё, что от него требуется – это просто обеспечивать работу т.н. туннелей и хабов между HT и другими типами шин, и заодно обеспечивать работу интегрированных контроллеров. (Подробно туннели и хабы рассматриваются позже).
5. Второе ядро подключается к коммутаторe CrossBar через общую шину SRI (Sistem Request Interface); оба ядра идентичны и, фактически, являются полноценными процессорами.
Варианты исполнения SUMA-архитектуры (Слайды 20-23)
|