Выбрать главу

Возможно, все дело в том, что идущий впереди просто не может не ошибаться, — и предъявляемая сегодня в качестве всеобщей панацеи после некоторых неудач, связанных с «флагманскими» архитектурами NetBurst и IA-64 Itanium, архитектура Intel Next-Gen «Conroe» продемонстрирует всем не только заявленную «кузькину мать» по производительности, но и некоторое количество собственных проблем, которые могут поставить крест и на ней самой[Есть мнение (и не только мое), что Conroe израильской разработки — лишь промежуточный этап, нужный Intel для того, чтобы, после отмены NetBurst/Tejas, дать время основной команде инженеров на разработку настоящего преемника процессоров этой корпорации. На подобное дело требуется от трех до пяти лет, и пока из этого срока прошло всего лишь два года]. А возможно, что движение небольшими шажками вперед действительно более оправданно, чем попытки разработать что-то фантастически прогрессивное, но требующее жертв и многих лет доводки: AMD вот уже годиков шесть, наверное, совершенствует свой сверхудачный K7, — и очевидно, на текущий момент соревнование с куда более мощным конкурентом успешно выигрывает. Но об этом мы еще поговорим примерно через год, когда станет ясно, во что вылился проект «Conroe» и что AMD смогла ему противопоставить. А сегодня мы рассмотрим нашу «улитку» от Intel. И заодно попытаемся оглядеть с огромных высот, на которые она взобралась, бескрайние просторы нынешнего мобильного рынка.

Yonah, Core Duo, Solo и Napa

Вообще, я хотел озаглавить этот раздел «Первый мобильный двухъядерник», однако название получилось длинным и корявым, а сократить его хотя бы на одно слово, как ни крути, не получалось. Тем не менее то, что представила в первых числах января корпорация Intel — это действительно Первый Мобильный Двухъядерный Процессор, без всяких скидок и оговорок. Собственно, ожидать чего-либо другого в свете повальной тенденции к многоядерности, озвученной еще год назад и выражающейся, дай бог памяти, в претензиях на 80-процентную долю двухъядерных решений в общем объеме выпускаемой Intel продукции, не приходилось, однако реализация этой технологии в данном случае заслуживает только похвал.

За основу нового кристалла, получившего в ходе разработки жутковатое кодовое название Yonah, выбрали, как обычно, предыдущую модель «ноутбучного» семейства (ну кто бы сомневался?) — процессор Pentium M «Dothan». Собственно, если копнуть немножко поглубже, то своими корнями эта архитектура (P6), цепляясь за процессоры Pentium M «Banias», Pentium III и II, уходит к древнему-древнему «x86-му процессору шестого поколения» — Pentium Pro. С тех пор, конечно, утекло немало воды, и очень многие «внешние» по отношению к ядру вещи, такие как процессорная шина, поддерживаемый набор инструкций, система управления энергопитанием и иже с ними, в процессорах переменились полностью (да и само ядро претерпело существенные улучшения). Однако ключевые идеи и технологии, заложенные в P6, не умерли, а в почти неизменном виде сохранились и перешли в следующий век. Yonah, по всей видимости, станет окончательной «лебединой песней» этой архитектуры, но… пока официальный преемник этих процессоров накачивает мускулы и набирает в лабораториях силы, «улитка» P6 использует последние месяцы для того, чтобы еще немного продвинуть компьютерную технологию вперед.

Начну с менее заметных и не таких эффектных новшеств нового процессорного ядра. По сравнению с Dothan в Yonah была существенно повышена эффективность работы процессора с инструкциями наборов SSE. Теперь с их декодированием справляются все три декодера нового ядра, для них (хотя бы частично) поддерживается технология «наслоения» микроопераций[Это когда несколько микроопераций запускаются на конвейере в виде одной «связки», проходящей по нему в виде единой конструкции и «разбивающейся» по исполнительным устройствам лишь в самый последний момент. Такой подход экономит ресурсы конвейера, повышает его производительность и бережет электроэнергию; в конкурирующем AMD K7/K8 он является неотъемлемой частью архитектуры] и, наконец, поддерживается SSE3. Заодно Intel внесла какие-то (неразглашаемые) улучшения в обычный блок вычислений с плавающей точкой, являющийся одним из наиболее уязвимых мест ядра Dothan. На очередные 25%, с 533 до 667 МГц, увеличили тактовую частоту системной шины, снабжающей процессор данными из оперативной памяти. Новый технологический процесс 65-нм, о котором я подробно рассказывал в предыдущем номере «Компьютерры», тоже сыграл инженерам на руку, позволив впихнуть в процессор второе ядро без заметного увеличения площади и себестоимости кристалла, а заодно улучшить его частотные показатели и снизить тепловыделение. Как обычно, модернизировали и энергосберегающие технологии. В принципе Yonah был бы уже интересен, даже если б этим дело и ограничилось — однако Intel не стала мелочиться, и «последний» процессор получил качественную и сложную в реализации поддержку двухъядерности.

Как я писал в статьях по «теории двухъядерности», сами по себе двухъядерные процессоры ничего, кроме двух процессорных ядер в одной упаковке, собой не представляют. Интересно то, как эти ядра, оказавшиеся в одной упряжке, взаимодействуют друг с другом и с чипсетом и к каким эффектам это приводит. Ну так вот: два ядра Yonah объединяются «самым прогрессивным» из известных способом — посредством общего L2-кэша.

Что это вообще такое? Все процессоры так называемой гарвардской архитектуры используют в работе каждого ядра два специальных кэша, один из которых содержит выполняющуюся программу (L1 instructions), а второй — необходимые для работы данные (L1 data). Это непосредственное «рабочее место» ядра, и если ему потребуется обработать какие-нибудь данные не из L1-кэша или фрагмент программы, которого в этом кэше нет, то оно вначале скопирует эти данные к себе в кэш и лишь затем сможет с ними что-либо делать. Быстродействие от подобного кэша требуется соответствующее, так что L1-I и L1-D в рамках этой архитектуры для каждого ядра сугубо индивидуальны, без них ничего работать не будет, и очень маловероятно, что это положение изменится впредь. А вот уже следующий уровень взаимодействия процессора с системой — общий кэш второго уровня (L2) — является более чем обычным и никаких специальных функций на себе не несет, работая банальным «ускорителем» доступа процессора в оперативную память. Во всех известных решениях до выхода Yonah, этот кэш в двухъядерных процессорах был, как и L1, индивидуален для каждого ядра; и взаимодействие между двумя ядрами происходило либо на уровне чипсета и оперативной памяти (Intel), либо на уровне специального межъядерного интерфейса, соединяющего кэши L2 напрямую (AMD). Для Yonah же никакого специального «межъядерного» взаимодействия решили не изобретать, сделав кэш второго уровня частью общей подсистемы памяти и подключив оба процессорных ядра к одному и тому же L2.