Гонку за додаткову продуктивність на ринку процесорів можуть виграти тільки ті виробники, які на основі поточних технологій виробництва зможуть забезпечити розумний баланс між тактовою частотою і кількістю обчислювальних ядер. Завдяки переходу на 90- і 65-нм техпроцеси з'явилася можливість створювати процесори з великим числом ядер. У чималій мірі це було обумовлено і новими можливостями регулювання тепловиділення, і розмірами ядер, саме тому сьогодні ми спостерігаємо появу все більшого числа чотирьохядерним процесорів. Але як щодо програмного забезпечення? Наскільки добре воно масштабується від одного до двох або чотирьох ядер?
В ідеальному світі програми, оптимізовані під багатопоточність, дозволяють операційній системі розподіляти кілька потоків за доступними обчислювальним ядрам, будь то один процесор або кілька, з одним ядром або з декількома. Додавання нових ядер дозволяє отримати більший приріст продуктивності, ніж будь-який приріст тактової частоти. Це дійсно має сенс: більшу кількість робочих майже завжди впораються із завданням швидше, чим менша кількість більш швидких робочих.
Але чи має сенс оснащувати процесори чотирма або навіть великим числом ядер? Чи вистачить роботи, щоб навантажити чотири ядра або більша їх кількість? Не варто забувати, що досить складно розподілити роботу між ядрами, щоб такі фізичні інтерфейси, як HyperTransport (AMD) або Front Side Bus (Intel), не стали "вузьким місцем". Є і третій варіант: механізм, який розподіляє навантаження між ядрами, а саме, диспетчер ОС, може теж стати "вузьким місцем".
Перехід AMD з одного на два ядра пройшов практично бездоганно, оскільки компанія не збільшувала тепловий пакет до екстремального рівня, як це було у процесорів Intel Pentium 4. Тому процесори Athlon 64 X2 були дорогими, але цілком розумними, а лінійка Pentium D 800 прославилася своєю гарячою роботою. Але 65-нм процесори Intel і, особливо, лінійка Core 2 змінили картину. Intel змогла поєднувати два процесори Core 2 Duo в одній упаковці, на відміну від AMD, в результаті чого ми і отримали сучасні Core 2 Quad. AMD обіцяє випустити до кінця цього року свої власні чотирьохядерні процесори Phenom X4.
У нашій статті ми розглянемо конфігурацію Core 2 Duo на чотирьох ядрах, двох ядрах і на одному ядрі. І подивимося, наскільки добре масштабується продуктивність. Чи варто сьогодні переходити на чотири ядра?
Подробиці про декілька ядрах
Під терміном "одноядерний" ховається процесор, який володіє одним обчислювальним ядром. Сюди підпадають практично всі процесори з зародження архітектури 8086 аж до Athlon 64 і Intel Pentium 4. Поки техпроцес виробництва не став досить тонким, щоб створювати два обчислювальних ядра на одному кристалі, перехід на менший техпроцес використовувався для зниження робочої напруги, збільшення тактових частот або додавання функціональних блоків і кеш-пам'яті.
Робота одноядерного процесора на високих тактових частотах може дати більш високу продуктивність для однієї програми, але подібний процесор в один момент часу може виконувати тільки одну програму (потік). Intel реалізувала принцип Hyper-Threading, який емулює наявність декількох ядер для операційної системи. Технологія HT дозволила краще завантажити довгі конвеєри процесорів Pentium 4 і Pentium D. Звичайно, приріст продуктивності був невеликий, але чуйність системи виявилася виразно краще. А в багатозадачному оточенні це може бути і важливіше, оскільки ви зможете виконувати будь-яку роботу, поки ваш комп'ютер працює над певною завданням.
Процесор Core 2 Extreme X6800 на момент виходу був найшвидшим в лінійці Intel Core 2, працюючи на частоті 2,93 ГГц. Сьогодні двоядерні процесори досягли 3,0 ГГц, правда, при більш високій частоті шини FSB1333.
Ви коли-небудь чекали, поки WinRAR або WinZIP закінчать стиснення файлів? На одноядерной машині ви навряд чи зможете швидко перемикатися між вікнами. Навіть відтворення DVD може навантажувати одне ядро не менше, аніж складне завдання. Двоядерний процесор дозволяє легше справлятися з одночасним запуском декількох додатків.
Двоядерні процесори AMD містять два повноцінних ядра з кеш-пам'яттю, інтегрованим контролером пам'яті і крос-комутатором, який забезпечує спільний доступ до пам'яті і до інтерфейсу HyperTransport. Intel пішла шляхом, схожим з першим Pentium D, встановивши в фізичний процесор два ядра Pentium 4. Оскільки контролер пам'яті є частиною чіпсета, системну шину доводиться використовувати і для зв'язку між ядрами, і для доступу до пам'яті, що накладає певні обмеження на продуктивність. Процесор Core 2 Duo оснащений більш досконалими ядрами, які дають кращу продуктивність на такт і краще співвідношення продуктивності на ват. У двох ядер використовується загальний кеш L2, який дозволяє обмінюватися даними без використання системної шини.
Чотири ядра проти двох
Процесор Core 2 Quad Q6700 працює на частоті 2,66 ГГц, використовуючи всередині два ядра Core 2 Duo.
Якщо сьогодні існує багато причин, щоб перейти на двоядерні процесори, то чотири ядра виглядають поки не так переконливо. Одна з причин полягає в обмеженою оптимізації програм під кілька потоків, але існують і певні проблеми в архітектурі. Хоча AMD сьогодні критикує Intel за упаковку двох двоядерних кристалів в одному процесорі, вважаючи це не "справжнім" чотирьохядерним CPU, подібний підхід Intel працює добре, оскільки процесори дійсно забезпечують чотирьохядерним продуктивність. З точки зору виробництва легше отримати високий рівень виходу придатних кристалів і випускати більше продуктів з невеликими ядрами, які потім можна з'єднати разом для нового, більш потужного продукту на новому техпроцессе. Що ж стосується продуктивності, то є "вузькі місця" - два кристала взаємодіють один з одним через системну шину, тому дуже складно управляти декількома ядрами, розподіленими на кілька кристалів. Хоча наявність декількох кристалів дозволяє забезпечити кращу економію енергії і регулювати частоти окремих ядер для потреб додатка.
Утиліти виведення системної інформації, такі, як CPU-Z, дозволяють дізнатися число ядер і обсяги кеша, але не розкладку процесора. Ви не дізнаєтеся, що Core 2 Quad (або чотирьохядерний Extreme Edition, показаний на скріншоті) складається з двох ядер.