Как я писал в статьях по «теории двухъядерности», сами по себе двухъядерные процессоры ничего, кроме двух процессорных ядер в одной упаковке, собой не представляют. Интересно то, как эти ядра, оказавшиеся в одной упряжке, взаимодействуют друг с другом и с чипсетом и к каким эффектам это приводит. Ну так вот: два ядра Yonah объединяются «самым прогрессивным» из известных способом — посредством общего L2-кэша.
Что это вообще такое? Все процессоры так называемой гарвардской архитектуры используют в работе каждого ядра два специальных кэша, один из которых содержит выполняющуюся программу (L1 instructions), а второй — необходимые для работы данные (L1 data). Это непосредственное «рабочее место» ядра, и если ему потребуется обработать какие-нибудь данные не из L1-кэша или фрагмент программы, которого в этом кэше нет, то оно вначале скопирует эти данные к себе в кэш и лишь затем сможет с ними что-либо делать. Быстродействие от подобного кэша требуется соответствующее, так что L1-I и L1-D в рамках этой архитектуры для каждого ядра сугубо индивидуальны, без них ничего работать не будет, и очень маловероятно, что это положение изменится впредь. А вот уже следующий уровень взаимодействия процессора с системой — общий кэш второго уровня (L2) — является более чем обычным и никаких специальных функций на себе не несет, работая банальным «ускорителем» доступа процессора в оперативную память. Во всех известных решениях до выхода Yonah, этот кэш в двухъядерных процессорах был, как и L1, индивидуален для каждого ядра; и взаимодействие между двумя ядрами происходило либо на уровне чипсета и оперативной памяти (Intel), либо на уровне специального межъядерного интерфейса, соединяющего кэши L2 напрямую (AMD). Для Yonah же никакого специального «межъядерного» взаимодействия решили не изобретать, сделав кэш второго уровня частью общей подсистемы памяти и подключив оба процессорных ядра к одному и тому же L2.
Что в результате получилось? Первое, чисто рекламное преимущество, — это то, что два процессорных ядра, соединенных так тесно, насколько вообще возможно, получили максимально достижимую скорость «межъядерного» взаимодействия. В реальных задачах, правда, этого самого взаимодействия всячески стараются избежать, так что заметного вклада в производительность оно не вносит. Поэтому на свет выходит другое важное преимущество общего кэша L2: он в равной мере доступен обоим ядрам. А это значит, например, что даже если над задачей трудится только одно процессорное ядро, то оно получит полный объем кэш-памяти процессора, а не его половинку, как в Pentium D и Athlon 64 X2. Это заметно повышает КПД кэша L2, и, возможно, именно по этой причине в Yonah его не стали увеличивать сверх прежних 2 Мбайт. Есть, правда, и альтернативное объяснение: общий L2 заметно сложнее двух раздельных кэшей, занимает больше места и сильнее греется, а тепловыделение Yonah (31 Вт) и без того слегка превзошло тепловыделение топового Pentium M (27 Вт), вот его в мобильном процессоре увеличивать и не стали. Intel не раскрывает нам на сей счет никаких деталей. Однако в любом случае использование общего кэша должно негативно сказываться на его производительности: обслужить сразу два ядра одному кэшу гораздо сложнее, чем двум кэшам обслужить по ядру каждому, да и мешать они друг другу начинают. К счастью, в нормальных условиях обращения к L2 происходят сравнительно редко, так что, видимо, взвесив все за и против, Intel оценила прирост производительности от увеличенного объема кэш-памяти второго уровня выше, чем возникающие при этом потери и сложности. В любом случае нельзя не признать, что реализована задумка просто блестяще: к примеру, латентность доступа в L2 по сравнению с предыдущим поколением ноутбуков (правда, достаточно медленным), вопреки ожиданиям, не увеличилась.
Очень интересной оказалась и задача управления энергопотреблением нового двухъядерного процессора. Дело в том, что питание он получает сразу на оба ядра, и тактовая частота для этих ядер тоже должна быть одинакова (хотя бы в силу того самого общего L2, работающего на тактовой частоте процессора), а вот нагрузка на ядра может быть неодинакова. Как инженеры Intel решали этот вопрос — до конца непонятно, однако известно, что в моменты малой загрузки одно из ядер Yonah может попросту отключаться. Также (очевидно, в свете борьбы за вписывание двухъядерного процессора в TDP 31 Вт) известно, что оба ядра в Yonah снабдили новыми системами термоконтроля, измеряющими температуру всех критических участков кристалла (и, вероятно, способных в случае чего слегка притормозить процессор).
Одноядерные процессоры Yonah (Yonah-1) получили в рамках программы ребрэндинга новое официальное имя Core Solo, двухъядерные (Yonah-2) — Core Duo, а новую «Centrino-платформа» Intel, включающая в себя помимо процессора Core Duo еще и чипсет семейства i945M и беспроводную PCI-Express карту Intel 3945ABG 802.11a/b/g, — назвали Napa.