Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по железу > Двухядерный процессор или одноядерный?


Автор: Jey_k 1.10.2006, 11:33
Есть такая дисциплина "Теория массового обслуживания". В основном она изучает обработку заявок неким механизмом в зависимости от буферизации, организации обработки, плотности потока и проч. Думаю, что работу процессора лучше всего рассматривать используя понятия и величины именно теории массового обслуживания.

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

Начнем с одноядерного.

user posted image

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


Далее одноядерный с поддержкой Hyper Threading.

user posted image

Происходит параллелизация вычислений на уровне ядра. Система вполне устойчиво видит два процессора (при правильной установке см.ниже), а на самом деле 2 параллельных СИНХРОННЫХ процесса. Что конечно дает прирост производительности, но магистраль потока усложняется. Появляются условности в обработке данных на уровне микроинструкций.

Двуядерный с общим кэшем.

user posted image

В общем неплохая конструкция, но с избирательностью кэша уже не поработаешь, точнее на высоких скоростях не поработаешь, однако поток заявок разгребается быстрее, но лишь в том случае когда ядра работают АСИНХРОННО. Для таковой их работы нужно выбирать тип установки винды ACPI Multiprocessor System. В СИНХРОННОМ же режиме прирост относительно невелик, хотя чувствителен.



Двуядерный с раздельным кэшем. 

user posted image

Наиболее грамотная организация процесора с прямыми магистралями и минимумом условностей. При правильном использовании существенный прирост производительности.



Конечно не учтены многие факторы, но стоит отметить что даже в последнем случае важен объем кэша, частота шин, архитектура ядер и много чего еще. Но принцип остается принципом. 

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

P.S. Полчаса рисовал, старался :p 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)