Году в 1993 мой приятель микрософтовец Лев Белов при встрече с безумными глазами произнес "Ты понимаешь, что это все! Window NT спортировали на Альфу! Все, архитектура x86 с Интелом закончилась!"

И вот архитектура DEC Alpha вновь возникла в моем дискусе в диалогах на линкдине пару дней назад. Инженер по имени Александр Кушнеров высказал утверждение, что на Альфе не получилось или было принципиально невозможно достичь низкого энергопотребления.

Тезис про "принципиально невозможно" мне кажется сомнительным. Поэтому я высказал вот какие соображения:

Почему у DEC Alpha якобы принципиально нельзя добиться низкого энергопотребления? Архитектура Alpha никак прямо это не запрещает. Низкое энергопотребление - это результат нескольких факторов, в том числе:

1. Статическое энергопотребление - прямо пропорционально площади, что пропорционально количеству логики, сложности дизайна. x86 жрет так много в частности из-за размера /накопленных с 1970-х годов фич.

2. Динамическое энергопотребление - пропорционально частоте и квадрату напряжения. Alpha жрала так много в частности из-за высокой частоты для своего времени (середина 1990-х), но не только:

3. Динамическое энергопотребление варьируется с количеством переключений как D-триггеров, так и транзисторов комбинационной логики дизайна.

Количество переключений можно контролировать разными трюками на уровне дизайна, в первую очередь временным отключением локального тактового сигнала - fine clock gating и mid-level clock gating (не буду расшифровывать).

Во времена Alpha (середина 1990-х) эти трюки не считались важными, дизайнеры их не использовали, и это вероятно главная причина, почему Alpha жрала больше чем могла бы для своей частоты и техпроцесса.

4. Статическое энергопотребление обычно меньше чем динамическое, но не на порядок. Пропорция между первым и вторым зависит от техпроцесса и дизайна.

5. Помимо вышеописанных методов энергосбережения на уровне дизайна (разные формы clock gating-а) есть и всякие более физические (временное отключение питания подблоков, динамическая подстройка частоты и напряжения) и особые трюки (инвертирование шины например). Они не были развиты во времена DEC Alpha, и это еще одна причина почему она жрала больше чем могла бы.

На это Александр процитировал Wiki - StrongARM:

According to Allen Baum, the StrongARM traces its history to attempts to make a low-power version of the DEC Alpha, which DEC's engineers quickly concluded was not possible.

Я ответил:

Я не знаю, почему они так concluded. Возможно среди факторов:

1. У Alpha был гораздо больше размер регистрового файла [архитектурных регистров] (64 регистра (32 целочисленных и 32 FP) по 64 бита, чем у ARM (16 по 32 бита).

2. У ARM в некий момент появился специальный набор команд нефиксированной длины (16/32) с низким memory footprint (а значит и меньше кэши итд) - ARM Thumb - хотя это вроде было позже чем Alpha. Также у ARM были команды условного выполнения инструкций без переходов, что может тоже сыграло роль.

3. Но я скорее склоняюсь, что они осмотрели уже сделанный дизайн и сказали "тут трудно везде поставить clock gating, слишком много работы ковыряться".

А что думаете вы?

UPD: Сформулируем вопросы в явной форме, чтобы пост не рассматривался как "у кого процессоры более энергоэффективные":

1) Предотвращает ли архитектура Альфа (архитектурная спецификация, система команд, не путать с микроархитектурной реализацией, устройством конвейера) - создание low-power реализации в принципе?

2) Почему они сказали что сделать low-power невозможно, они про их конкретную микроархитектурную реализацию?

Комментарии (12)


  1. Tzimie
    20.04.2024 18:40
    +4

    Разве в те времена кто-то задумывался об энергопотреблении? Альфа была в начале 90х для серверных систем. Это не телефоны, это не ноутбуки. При чем тут энергопотребление? Эта хорошая архитектура увы сошла со сцены по иным причинам


    1. mentin
      20.04.2024 18:40
      +2

      На фоне сменившего Альфу в качестве альтернативного высокопроизводительного процессора Итаниума (известного в народе как "Итаник") энергопотребление Альфы было очень даже неплохое :)


      1. strvv
        20.04.2024 18:40

        Согласен, и 200МГц в середине 90х - это всегда та ещё печка, техпроцессы 0.35, а зачастую 0.5 и выше. первые материалы на кафедре по альфе я видел, боюсь лажануть, но, в районе 1994-1996 года. И тот же ППро жрал не меньше, при таких же или чуть меньших частотах (3*60/66=180/200MHz).

        Да и это для ДЕКа был первенец в виде одночипового решения изначально, так как все предыдущие, включая ВАКС-11 были процессорными платами, набранными из м/с малой и средней логики.

        Позже, когда стало сложно отводить тепло, стали загоняться с теми методами, что озвучил уважаемый Юрий - отключение от клока неиспользуемых блоков, понижение напряжения, это уже было тогда на П-ММХ, и другие методы уменьшения сквозных токов.

        А у Альфы, я не помню какую держал в руках 21064, встроенный медный радиатор с двумя выступающими пеньками для фиксации кулеров.


    1. Vedomir
      20.04.2024 18:40

      А сколько жрут высокопроизводительные процессоры для настольных компьютеров и серверов сейчас... ниже пишут по 8 и 20 Ватт а сейчас уже 300 Ватт становится нормой нормой, подбираемся к 500. Четко видно по размерам охлаждения, причем не скажешь, что в охлаждении какие-то принципиально новые технологии.


      1. strvv
        20.04.2024 18:40

        сейчас много загоняются отключением неиспользуемых блоков и распараллеливание, чтобы они не простаивали. понижают до беспредела напругу, уже и 1.2 много. как на кремневых переходах делать переключение на 1.5-2 напряжения отпирания pn-перехода...
        Да и тогда были больше ТТЛ(ш) логика, позже всё чаще использовалась разная CMOS.
        скорее всего какие-то эксперименты с запретной зоной.


      1. YuriPanchul Автор
        20.04.2024 18:40

        Ну я участвовал три года назад в дизайне роутерного чипа, который жрал сотни ватт, но в нем миллиарды транзисторов, а в Альфе было на три порядка меньше.


  1. Brak0del
    20.04.2024 18:40
    +3

    Во времена Alpha (середина 1990-х) эти трюки не считались важными, дизайнеры их не использовали, и это вероятно главная причина, почему Alpha жрала больше чем могла бы для своей частоты и техпроцесса.

    Clock-gating в какой-то форме всё же был в Alpha. Есть статейка интересная на тему устройства клоков в этих процессорах (в открытом доступе тоже гуглится).

    2) Почему они сказали что сделать low-power невозможно, они про их конкретную микроархитектурную реализацию?

    Имхо, Alpha очень богата трюками, даже слишком. Мне кажется, проблема с переделкой Alpha в том, что многое на самом низком уровне (та же сеть клоков) рождено своими кустарными алгоритмами до нормальных EDA. Эти алгоритмы порождают серию допущений и предположений, на которых строится вся дальнейшая реализация. Поэтому возможно на других допущениях такая производительная вещь не соберётся.

    Кроме того, этот процессор многими вещами заточен на высокую производительность, есть ощущение, что его целиком выстрадали под эту цель, на всех уровнях. Переделка под другие цели даст что-то среднее.


    1. mpa4b
      20.04.2024 18:40
      +2

  1. ereinion
    20.04.2024 18:40
    +1

    А ведь была и версия 21068 с низким потреблением и интегрированным северным мостом, кушала она, если не ошибаюсь 8 Вт супротив 20+ у обычной 21064. Да и 21066 не сильно горячая была, хотя порезана не то чтобы сильно.


    1. strvv
      20.04.2024 18:40

      да, но когда они появились и вследствии чего появились?


  1. byman
    20.04.2024 18:40

    Чтобы их Альфы получить АRM того времени, нужно было бы перейти на 32 разряда, убрать FPU , да еще и умножение сделать через сложение. Это как из авто делать велосипед. Проще взять у кого-то образец велосипеда и сделать из него хороший велик.


    1. YuriPanchul Автор
      20.04.2024 18:40

      Убрать FPU и блок умножения нетрудно. Переделать блок умножения из быстрого в итеративный чуть труднее. Менять разрядность труднее, да, но это ли имели в виду инженеры, которые говорили про "невозможно"? Может быть главным фактором было то, что это был full custom design (не синтезируемый из верилога ASIC) в который было трудно вставлять clock gating? Какой из факторов был главнее?