| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по железу > Двухядерный процессор или одноядерный? |
| Автор: Jey_k 1.10.2006, 11:33 |
| Есть такая дисциплина "Теория массового обслуживания". В основном она изучает обработку заявок неким механизмом в зависимости от буферизации, организации обработки, плотности потока и проч. Думаю, что работу процессора лучше всего рассматривать используя понятия и величины именно теории массового обслуживания. Теперь давайте посмотрим что мы имеем при различных типах процессоров и не будем давить на производителей. Помимо этого не будем рассматривать работу кэширования на уровне микроинструкций, а именно работу кэша первого уровня. Итак. Начнем с одноядерного. ![]() Как видно из рисунка заявки оседают в кэше и выполняются поочередно процессором с выдачей результатов. При кплотненном потоке и небольшом объеме кэша гигагерцы уже не спасут. Далее одноядерный с поддержкой Hyper Threading. ![]() Происходит параллелизация вычислений на уровне ядра. Система вполне устойчиво видит два процессора (при правильной установке см.ниже), а на самом деле 2 параллельных СИНХРОННЫХ процесса. Что конечно дает прирост производительности, но магистраль потока усложняется. Появляются условности в обработке данных на уровне микроинструкций. Двуядерный с общим кэшем. ![]() В общем неплохая конструкция, но с избирательностью кэша уже не поработаешь, точнее на высоких скоростях не поработаешь, однако поток заявок разгребается быстрее, но лишь в том случае когда ядра работают АСИНХРОННО. Для таковой их работы нужно выбирать тип установки винды ACPI Multiprocessor System. В СИНХРОННОМ же режиме прирост относительно невелик, хотя чувствителен. Двуядерный с раздельным кэшем. ![]() Наиболее грамотная организация процесора с прямыми магистралями и минимумом условностей. При правильном использовании существенный прирост производительности. Конечно не учтены многие факторы, но стоит отметить что даже в последнем случае важен объем кэша, частота шин, архитектура ядер и много чего еще. Но принцип остается принципом. Выбирая процессор стоит уяснить круг задач системы вообще, а при выборе архитектуры процессора учитывать множество факторов и знакомиться с тестами. P.S. Полчаса рисовал, старался :p |