Лидеры индустрии производства процессоров компании Intel и AMD сравнительно недавно предложили потребителям центральные процессорные устройства (ЦПУ) с двумя и более вычислительными ядрами. Для рядовых пользователей отличия между новым двухядерным процессором и старым одноядерным практически неизвестны. В тоже время для производителей выпуск многоядерных ЦПУ оказался единственной возможностью продолжить наращивание производительности компьютерных систем, так как они столкнулись с различными физическими ограничениями при усложнении конструкции одноядерного процессора. Мы уже говорили вам об этом, описывая основные характеристики микропроцессоров. Многоядерные процессоры позволяют обойти многие ограничения, установленные для простых одноядерных решений, но это накладывает определенные требование на программное обеспечение, которое должно быть адаптировано под новые условия для полной утилизации вычислительной мощности.
Физические ограничения для одноядерного процессора
На протяжении нескольких десятилетий производители процессоров увеличивали производительность ЦПУ путем наращивания в их конструкции числа транзисторов, а также путем поднятия его рабочей частоты. Но со временем производители столкнулись с физическими ограничениями, которые сделали невозможным дальнейший прогресс в этом направлении без серьезного удорожания готовых ЦПУ. Поэтому следующим шагом на пути к более производительным решением стала разработка двухядерного процессора.
Двухядерный процессор
Современный двухядерный процессор фактически состоит из двух процессоров, жестко объединенных вместе в одном чипе. Такая архитектура дала возможность производителям обойти физические ограничения путем добавления к одноядерному процессору второго ядра. При этом каждое ядро может выполнять свой поток вычислений, независимо от другого. Тем не менее, благодаря тому, что ядра между собой соединены короткими электрическими цепями (мостом), они могут значительно быстрее обрабатывать данные, чем два отдельных процессора. Второй выгодой от использования двухядерного процессора является возможность параллельно выполнять несколько разных задач, разбивая процессорное время на потоки между приложениями. Таким образом, на двухядерном процессоре удается ускорить работу приложения, не влияя на производительность выполнения других.
Многоядерные решения
Сразу после разработки двухядерных процессоров производители продолжили новую линию, добавляя в новые процессоры дополнительные ядра в каждую новую линейку ЦПУ. Сегодня потребителям уже доступны процессоры с двумя, четырьмя, шестью и даже восьмью ядрами, хотя в промышленных целях выпускаются еще более мощные устройства с большим количеством ядер.
Многопоточная обработка данных
Многоядерные процессоры в какой-то степени усложнили задачу разработчикам программного обеспечения. Для того, чтобы полностью реализовать потенциал нескольких ядер, новые приложения должны разрабатываться с прицелом на то, чтобы равномерно разделить вычислительные потоки между каждым ядром процессора. Такой алгоритм получил название «Multi-Threading» или многопоточная обработка. В зависимости от того, какое программное обеспечение создается, такая задача может оказаться очень сложной. Другой стороной этой проблемы является то, что к моменту выхода мультиядерных процессоров только единицы программ умели использовать многопоточную обработку. Большинство же старых программ не могут получить ни единого преимущества от нескольких ядер, продолжая использовать только одно. Подробнее прочитать об эффективном использовании процессорного времени вы можете в нашей новой статье.