Что же представляет собой двухъядерный процессор? На первый взгляд это просто два процессора, объединенных в общем корпусе. Но не все так просто. Во-первых, нужно различать термины "процессор" и "процессорное ядро". Во-вторых, существует проблема общих ресурсов, доступ к которым нужно распределять между двумя ядрами.
Если же посмотреть с точки зрения программного обеспечения, то двухъядерный процессор система рассматривает как два независимых. Понятно, что двухъядерный процессор способен одновременно выполнять два потока инструкций, в то время как обычный CPU производит вычисления строго по очереди.
До этого уже была произведена попытка разделить выполняемые инструкции — речь идет о технологии Intel Hyper-Threading. Вот только в ней два "виртуальных" процессора почти во всем разделяют между собой ресурсы одного "физического" процессора (кэши, конвейер, исполнительные устройства). Практически все ресурсы общие — и если они уже заняты одним из выполняющихся потоков, то второй будет вынужден ожидать их освобождения.
По сути, принцип работы процессора с Hyper-Threading похож на принцип работы многозадачной операционной системы, только происходит это не на программном, а на аппаратном уровне. Разделение потока на две части, как правило, позволяет эффективнее загрузить исполнительные устройства процессора. И при этом немного облегчить операционной системе задачу имитации множества независимых компьютеров на одном существующем процессоре.
Полноценный двухъядерный процессор — совсем другое дело. В этом случае система определяет действительно два "честных" процессорных ядра. И прирост производительности при этом составляет уже не 10-20% (средний показатель для процессора с технологией Hyper-Threading), а все 80-90% и даже больше (естественно, при использовании обоих ядер). В принципе, двухъядерный процессор представляет собой SMP-систему (SMP — Symmetric MultiProcessing, симметричная многопроцессорная обработка; термин, обозначающий систему с несколькими равноправными процессорами). По сути своей он не отличается от обыкновенной двухпроцессорной системы, в которой установлено два независимых процессора. В результате мы получаем все преимущества двухпроцессорных систем без необходимости использования сложных и дорогих двухпроцессорных материнских плат.
Чего же ожидать от двухпроцессорных систем? В приложениях, оптимизированных под многопроцессорность, можно получить ощутимый — вплоть до двукратного — прирост производительности. Это касается многих профессиональных приложений, большинства программного обеспечения по обработке цифрового контента (звук, видео, графика), а также программ, уже оптимизированных под технологию Hyper-Threading.