Главная
История создания
Классификация
Процессоры AMD и INTEL
Вывод

Классификация многоядерных процессоров

1. Терминология

•  Процессор, центральное устройство ЭВМ, выполняющее заданные программой преобразования информации и осуществляющее управление всем вычислительным процессом и взаимодействием устройств вычислительной машины. Иногда употребляют термины «центральное обрабатывающее устройство», «вычислитель». Основными частями процессора являются арифметико-логическое устройство и устройство управления.

•APIC (Advanced Programmable Interrupt Controller) – одна из важнейших деталей компьютера. Это небольшая схема, занимающаяся сбором и обработкой возникающих в компьютере прерываний. Скажем, нажал пользователь клавишу на клавиатуре – контроллер клавиатуры зафиксировал это событие, занес код нажатой клавиши в свою встроенную память – и сгенерировал прерывание – выдал по специальной линии сигнал-запрос с просьбой прервать выполнение текущей программы и обработать событие «нажата клавиша на клавиатуре». Задача Interrupt Controller-ов: - позволяют процессору не терять зря время, регулярно опрашивая каждое из устройств. Но задачи IC не ограничиваются только этим: помимо аппаратных существуют еще и программные прерывания (exceptions), которые генерирует не периферия, а сам процессор – в случае возникновения какой-либо нештатной ситуации. Примеры – в программе встретилась запрещенная «простому пользователю» произошло деление на ноль, программа обратилась к несуществующему адресу в памяти .

Реакция на каждое из прерываний задается так называемым вектором прерываний – набором адресов в памяти, описывающих «что делать дальше» процессору в случае возникновения прерывания: какие функции (обработчики прерывания) ему в этом случае необходимо выполнять. Причем в случае многопроцессорных, многоядерных (и даже в случае процессоров с Hyper-Threading) требуется обеспечить по APIC-у на каждое ядро процессора (включая каждое виртуальное ядро в Pentium 4 supporting Hyper-Threading), обрабатывающих «программные прерывания, и еще один, «синхронизирующий» APIC в чипсете, который обеспечивает обработку аппаратных прерываний и, занимается «рассылкой» программных прерываний в тех случаях, когда возникшее на одном процессоре прерывание почему-то затрагивает и остальные процессоры.

•DMA (Direct Memory Access) – это своеобразный «альтернативный процессор», который занимается в чипсете обработкой «фоновых» задач, связанных с периферией. Если процессору требуется прочитать несколько килобайт данных с жесткого диска, то ему не обязательно ждать, пока эти данные ему не будут предоставлены. Вместо этого он может запрограммировать DMA-контроллер, чтобы тот выполнил эту задачу за него, и переключиться, пока этот запрос выполняется, на какую-нибудь другую задачу.

• GART (Graphical Address Relocation Table) – это небольшая схема, которая обеспечивает графическому ускорителю доступ к системной памяти процессора. Её задачи – реализация механизма виртуальной памяти для СPU, то есть отображение «линейного» адресного пространства, с которым работает ускоритель, на «реальное», произвольным образом «перетасованное» с «обычными данными». Позволяет современным 3D-ускорителям использовать не только «набортную» видеопамять, но и «основную» системную память компьютера.


2. Основной подход к классификации процессоров

Очевидно, что новые процессоры берут свое начало из многопроцессорных систем. А вариантов создания многопроцессорных систем – неисчислимое множество: даже простое перечисление всего созданного за прошедшие годы заняло бы слишком много места. Однако существует их общепринятая классификация:

•  SMP- системы (Symmetrical Multi Processor systems);

•  NUMA- системы (Non-Uniform Memory Access systems);

•  Кластеры.

2.2.1. SMP- системы (Symmetrical Multi Processor systems)

В подобной системе все процессоры имеют совершенно равноправный доступ к общей оперативной памяти. Работать с этими системами лучше всего программистам, поскольку не возникает никаких специфичных «особенностей», связанных с архитектурой компьютера. Но, к сожалению, создавать подобные системы крайне трудно: 2-4 процессора – практический предел.

SMP-системы

(рис. 1.)

2.2.2. NUMA- системы (Non-Uniform Memory Access systems)

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

медленнее получается доступ к ней.

NUMA-системы

(рис. 2.)

2.3 Кластеры

Если взять некоторое количество «почти самостоятельных» компьютеров и объединить их быстродействующими линиями связи. «Общей памяти» здесь может и не быть вообще, но её несложно реализовать. На практике обычно удобнее работать с кластером в «явном» виде, описывая в программе все пересылки данных между его узлами. То есть если для NUMA еще можно создавать программы, почти не задумываясь над тем, как она работает и откуда берутся необходимые для работы потоков данные; то при работе с кластером требуется очень четко расписывать кто, что и где делает. Это очень неудобно для программистов и накладывает существенные ограничения на применимость кластерных систем. Но зато кластер – это очень дешево.

кластеры - тип многопроцессорных систем

(рис. 3)

Intel сегодня предпочитает создавать SMP-системы; AMD, IBM - те или иные варианты NUMA. Основная «область применения» кластеров – суперкомпьютеры.

 

Сайт управляется системой uCoz