Рыжая девушка-инженер - это Simone Louise Söderlund Giertz. Она переделала свою Теслу в грузовик.
Рыжая девушка-инженер - это Simone Louise Söderlund Giertz. Она переделала свою Теслу в грузовик.

Проанализируем объявление о приеме на работу в Теслу на позицию джуниор-проектировщика процессора для AI автопилота автомобиля (скриншот ниже). Как мы видим, от соискателя требуется понимание микроархитектуры процессора, проектирование на уровне регистровых передач используя язык описания аппаратуры Verilog, а также понимание, как проектирование логики влияет на временные задержки. Иными словами, соискатель должен понимать, как связаны его строки на верилоге с гигагерцами синтезируемого из них процессора. А понимаете ли это вы?

90% текстов, которые выдает гугл на запрос "что такое тактовая частота процессора", содержат очень мутные "объяснения", который продавцы и поверхностные популяризаторы переписывают друг у друга. Например пишут "тактовая частота - это число тактов (операций) в секунду", не определяя что такое операция:

  1. Может мутнописатели считают операцией элементарную логическую операцию типа И, ИЛИ, НЕ? Непохоже, потому за один такт гигагерцового процессора сигнал от одного D-триггера до другого может пройти через цепочку из пары десятков таких элементов.

  2. Или они считают операцией вычисление в блоке типа комбинационного сумматора? Тоже непохоже, так как 1) два таких сумматора можно поставить каскадом друг за другом и будет две операции за такт и 2) один сумматор можно разложить на два такта, поставить внутри него слой из D-триггеров.

  3. Может эти писатели считают операцией архитектурную инструкцию/команду процессора, соотвествующую инструкции ассемблера (за исключением псевдоинструкций)? Типа "add r1, r2, r3". Опять же, нет, так как инструкция может проходить конвейер за пару десятков тактов.

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

Слева - картинка из полезной книжки Modern Processor Design: Fundamentals of Superscalar Processors 1st Edition by John Paul Shen and Mikko H. Lipasti, которую я рекомендую, если вы хотите разобраться с конвейерами процессоров. Но ее стоит читать после вводной книжки Харрисов.

Вообще "что такое тактовая частота" лучше объяснять не сверху, через инструкции процессора, а снизу, начиная от задержек распостранения сигнала в комбинационных вычислениях и с элементов состояния - D-триггеров. Вот объяснение на пальцах из моего старого поста:

Допустим, нам нужно сделать микросхему - счетчик, которая бы выводила в цикле числа 0, 1, 2, 3, 0, 1, 2, 3, ...

Пишем на SystemVerilog:

 
module counter
(
    input            clock,
    input            reset,
    output reg [1:0] n
);
    always @(posedge clock)
    begin
        if (reset)
            n <= 0;
        else
            n <= n + 1;
    end

endmodule

Это означает: Имеется модуль, в который идет два провода - clock (сигнал тактовой частоты, который идет вверх-вниз-вверх-вниз-...) и reset (сброс в начальное состояние). Из модуля выходит тоже два провода, которые образуют одно двухбитное число, которое на каждом биении сигнала тактовой частоты увеличивают значение на единицу (по модулю 4). Иными словами: на каждом положительном фронте тактового сигнала (positive clock edge - переход с 0 в 1) смотреть на провод reset. Если reset равен 1, то обнулить внутренний регистр (подсоединенный к выводу), если reset равен 0, то увеличить число, хранящееся в этом регистре на единицу.

Теперь если скормить этот код программе логического синтеза, в нашем случае Synopsys Design Compiler, то он превратит его вот в такую схему:

Схема выглядит мудрено, но на самом деле она работает так:

Что происходит в этой схеме:

Квадратик слева - сумматор, такая комбинационная схема, которая берет на входе два числа и через некоторое время T (выраженное в пикосекундах) выдает на выходе их сумму. До истечения времени T на выходе сумматора будут находиться какие-то неопределенные значения, а после T все устаканится.

Время T должно быть меньше, чем время между положительными фронтами (переходами с 0 в 1) сигнала тактовой частоты (clock). Точнее, наоборот. Проектировщик задаёт программе-синтезатору, с какой частотой должна работать схема и программа подбирает подходящий сумматор (быстрый (с малой задержкой в пикосекундах) и большой, медленный-маленький и т.д.) под эту частоту. Если получится (если не получится - синтезатор рапортует negative slack).

Квадратик справа - это двухбитовый регистр из двух D-триггеров (по английски D-flip-flop). Каждый из D-триггеров хранит бит информации между пульсами тактового сигнала. Пока всякая арифметика в сумматоре устаканивается, булькает и чавкает, в это время D-триггер хранит значение с предыдущего такта и отдает его только в качестве read-only значения для вычислений.

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

Вот чуть более глубокое описание из моих черновиков к сценарию курса Как работают создатели умных наночипов: логическая сторона цифровой схемотехники

Пути в комбинационном облаке считаются от выхода Q одного D-триггера до входа D другого D-триггера. Путь с самой длинной временной задержкой называется "критическим путем", по английски critical path. По задержке на критическом пути определяется максимальная частота тактового сигнала, которую можно использовать для работы схемы. Например есть задержка на критическом пути равно 500 пикосекунд, то максимальная частота тактового сигнала равно 1 / 500 пикосекунд = 2 Гигагерца.

Для разработчика уровня регистровых передач следить за максимальной частотой не менее важно, чем сделить за тем, что схема производит правильные результаты. Рынок не примет чип, который работает правильно, но при этом существенно медленнее, чем чипы от конкурирующих компаний.

Для того, чтобы уменьшить критический путь, разработчик использует различные приемы, многие из которых приходят с опытом. Два главных приема:

* Выполнять как можно больше действий параллельно, не создавая зависимостей в порядке выполнения между ними.

* Разрезать критический путь на несколько коротких путей, вставляя в него D-триггеры. Тогда некоторые вычисления будут занимать не один цикл тактового сигнала, а несколько, но из-за более высокой тактовой частоты, общая производительность схемы увеличится.

Программы, которые анализируют критические пути, называются программами статического анализа задержек, по английски static timing analysis. При анализе программа смотрит не только на функции задержки и связанность графа схемы, но и на логику работы схемы, из-за которой некоторые пути в графе могут оказаться "ложными" и проигнорированы.

Для анализа, вписывается ли ваша схема в бюджет тактовой частоты, используют так называемые программы статического временного анализа, например Synopsys PrimeTime или Cadence Tempus.

"Ну хорошо, а причем тут Элон Маск", - спросите вы. А притом. Когда вы прийдете к инженерам Маска на собеседование на позицию (см. выше), они вас спросят (обязательно), какой impact производит ваша logic на timing. Например принесут вам распечатку critical path от Synopsys Design Compiler / PrimeTime / ICC2 и спросят что все это значит и как уменьшит negative slack. И что вы будете делать, если вы этой распечатки в жизни не видели?

Скачать тулы от Synopsys с интернета и попрактиковаться вам не светит - они дорого стоят. Как я писал в предыдущем посте:

Это вам не ардуина. Этот софт стоит реально бешенные деньги. Если вы считаете бешенными деньгами скромные $5000 за платную версию Intel FPGA Quartus, то для ASIC design приготовьтесь к следущему уровню бешенности. Еще в 1990-е лицензия на Synopsys Design Compiler стоила в районе 80 тысяч долларов. Потом где-то была цифра что одно инженерное место с Synopsys IC Compiler стоило в ~2010 году $300K, а вот можно нагуглить, что годовая подписка на ICC в 2015 году стоила $735 тысяч долларов. Обычно крупные электронные компании покупают сразу сотни плавающих лицензий и заключают с Cadence и Synopsys сделки на десятки миллионов долларов.

Но выход есть. В эту субботу 12 февраля вы можете принять участие в онлайн занятии Сколковской Школы Синтеза Цифровых Схем вместе с Московским Институтом Электронной Техники, которые договорился с Synopsys, что мы дадим желающим доступ к этим лицензиям на ограниченное время. Записаться можно сегодня (в четверг) до вечера. Зарегистрируйтесь на сайте школы и пошлите емейл Александру Биленко на info@chipexpo.com . Для доступа вам нужно получить от МИЭТ специальный VPN, а также использовать программу VNC для доступа к удаленным линуксным серверам, на которых будут работать все программы. Вот инфо с сайта:

Тема занятия:   Пробуем маршрут RTL2GDSII: как разрабатываются массовые микросхемы.

Часть II. Synopsys.

Ведет Андрей Владимирович Коршунов, доцент кафедры ПКИМС МИЭТ

В начале занятия выступит генеральный директор отделения Synopsys в России Елена Иванова.

Среди спонсоров школы - российская процессорная компания Syntacore, которая сейчас как раз набирает людей на проектировщиков процессоров , так что к Маску возможно ехать будет и не нужно. Тем более что в Москве и Питере, где нанимает Syntacore, есть Третьяковская Галерея и Эрмитаж, которых у Маска в Калифорнии и Техасе нет.

Tesla девушки-инженера Симоны, переоборудованная в грузовик чтобы возить рассаду на дачу
Tesla девушки-инженера Симоны, переоборудованная в грузовик чтобы возить рассаду на дачу

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


  1. namee
    10.02.2022 09:26
    +10

    Можно не читать. Ничего полезного. Всего лишь очередная реклама сомнительных услуг.


    1. YuriPanchul Автор
      10.02.2022 09:40
      -2

      Вы уже заходите в мой третий пост и такое пишете. Вы что, на меня подписались?


      1. Whitech
        10.02.2022 09:49
        +14

        Просто Habr показывает Вашу статью в потоке на который многие подписаны.

        У статьи досточно кликбейтный заголовок. Вроде интересно, переходишь, начинаешь читать.

        Вот-вот должно начаться то самое, ради чего зашел.

        И в этот момент ... та-дам ... реклама очередных курсов (полезных, не спорю), вот Вам и разочарование от очередного рекламного материала с минимумом полезной информации.

        P.S. И при чем тут заявленное "Программирование микроконтроллеров"?


        1. YuriPanchul Автор
          10.02.2022 10:00
          -2

          Все, о чем я пишу в этом посте, непосредственно относится и к процессорным ядрами микроконтролеров. Как вот вы объясните, почему тактовая частота у вашего любимого микроконтроллера вот такая, а не другая? Привяжите это к технологии, количеству стадий конвейера, энергопотреблению.


        1. YuriPanchul Автор
          10.02.2022 10:04
          +3

          *** Вот-вот должно начаться то самое, ради чего зашел. ***

          А ради чего вы пришли? Про то, откуда берется гигагерц я написал - от static timing analysis.

          Про Маска тоже - разбор что нужно знать для прохождения интервью в команду AI автопилота в Тесле.

          То есть в чем претензия? Что написал в заголовке, то и рассказал. А что вы ожидали? Снимки завода Тесл во Фримонте, рядом с которым я жил 5 лет? Так там нечего снимать, там вообще индустриальная зона и ветер с милпитасской свалки приносит ароматы.


    1. YuriPanchul Автор
      10.02.2022 10:07
      -2

      Вот вы в каком-то комменте написали, что учились в радиотехническом вузе. А можете выписать формулу, которая описывает максимальную тактовую частоту? Чтобы учитывала setup, hold, skew, slew? Или у вас только аналоговую электронику учили. Если цифровую - наверняка это у вас в какой-нибудь методичке было.


    1. Brak0del
      10.02.2022 10:25
      +9

      Ничего полезного.

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

      А ещё инфа о стоимости тулзов, чтоб прикинуть стоимость входа в бизнес, это для чуть более взрослых уже.


    1. boyarinovigor
      10.02.2022 17:19
      -2

      Перестань уже ныть не по поводу...


  1. Jury_78
    10.02.2022 10:55
    +7

    выдает гугл на запрос "что такое тактовая частота процессора"

    Судя из названия - кол-во тактов в единицу времени. Остальное уже специфика процессора.


    1. YuriPanchul Автор
      10.02.2022 11:08
      +1

      Хорошо, а вы можете ответить на вопрос: почему у одного процессора частота 1.5 GHz, а у другого 3.0 GHz? А у микроконтроллеров вообще от 16 MHz до 480 MHz? Это частота определяется приказом начальника, требованиями маркетинга, интуицией архитектора, измеряется на симуляторе после проектирования, определяется после производства, еще варианты?


      1. Jury_78
        10.02.2022 11:27
        +2

        Процессоры, как цель разработки, слишком далеки от моей профессии.


    1. YuriPanchul Автор
      10.02.2022 11:10
      +1

      Или более общий вопрос: А зачем в процессоре такты? Существуют ли процессоры без тактов?


      1. Jury_78
        10.02.2022 11:32
        +3

        Ну ... когда я учился, в учебном заведении у нас была аналоговая ВМ. Там процессора вообще не было.


      1. Druj
        10.02.2022 11:32
        +5

        Что помешало вам добавить ответы, пусть и поверхностные, на эти вопросы в статью? Вы считаете что несколько картинок с рыжей американкой принесут больше пользы отечественной разработке процессоров?


        1. YuriPanchul Автор
          10.02.2022 12:13

          Так я написал в тексте ответ на вопрос откуда появляется цифра тактовой частоты. Просто текст статьи никто не прочитал - просканировали глазами начало и конец и сразу принялся меня ругать. Некоторые наверно даже не сканировали, а сразу стали ругать заголовок, хотя я честно написал и про определение цифры частоты. Могу уточнить: частота спуcкается изначально техническим маркетингом (которые определяют ее на основе требования рынка) и архитектом чипа (который определяет ее на основе интуиции по предыдущим чипам) - это спускается на проектировщиков блоков, которые конструируют конвейер так, чтобы он вписывалсяв частоту, проверяя эту вписанность с помощью статического анализа тайминга, который я на пальцах и объяснил в статье).

          UPD: Если частота, спускаемая маркетологами, будет принципиально невозможна или будет приводить к понижению производительности из-за чрезмерного дробления конвейера, то проектирощик блока это может обсудить с архитекторами чипа, после чего вместе пойти к маркетологу си сказать, что market requirements document (MRD) нужно поменять.


          1. Jury_78
            10.02.2022 12:29
            +3

            Предлагаю сменить название статьи на: "Частота процессоров - выдумка маркетологов" :)


            1. YuriPanchul Автор
              10.02.2022 12:34

              Нет, не выдумка. Если частота, спускаемая маркетологами, будет принципиально невозможна или будет приводить к понижению производительности из-за чрезмерного дробления конвейера, то проектирощик блока это может обсудить с архитекторами чипа, после чего вместе пойти к маркетологу си сказать, что market requirements document (MRD) нужно поменять.


              1. Jury_78
                10.02.2022 12:40
                +2

                Не надо воспринимать буквально - это была шутка.


      1. amartology
        10.02.2022 12:00
        +10

        Юрий, вот возьмите список вопросов и напишите статью со списком ответов. Это будет реально полезнее, чем очередная реклама школы синтеза. Аудитория для нее в России довольно мала, и все, кто мог узнать о ней через Хабр, уже узнали, уверяю вас. А остальным 99.9999% аудитории было бы интересно почитать нормальный текст с ответами на вопросы.


        1. YuriPanchul Автор
          10.02.2022 12:15

          А я что, не ответил, откуда берется тактовая частота? Ответит, просто это никто не прочитал. Вот выше уточнил в комменте.


          1. Jury_78
            10.02.2022 12:31
            +2

            Это не упрек, т.к. не моя это тема, может сменить способ подачи материала?


            1. YuriPanchul Автор
              10.02.2022 12:38
              -1

              А как его подавать? Вообще у меня нет цели написать всеобъемлющую популярную статью. Static timing analysis на базовом уровне хорошо описан например в учебнике Харрисов на русском языке. У меня цель привлечь к школе< где люди это могут реально руками попробовать и задать лектору все каверзные вопросы.


              1. Jury_78
                10.02.2022 12:52
                +1

                Я и не говорю про "всеобъемлющую", а про подачу. Кого вы хотите привлечь? Явно не меня и не тех кто тут отметился. Жалуетесь, что ни кто не прочитала, простое решение писать кратко.


      1. potan
        11.02.2022 09:44

        Процессоры без тактов существуют. Но в статье про самосинхронный дизайн нет ни слова...


        1. YuriPanchul Автор
          11.02.2022 10:02

          Это бы вконец запутало людей, которые еще не освоили даже базовую схему с комбинационной логикой и D-триггерами на одном клоке.


        1. amartology
          11.02.2022 11:28
          +1

          Но в статье про самосинхронный дизайн нет ни слова...
          И правильно нет. Во-первых, это экзотика. а не мэйнстрим. А во-вторых, что более важно в контексте этой статьи, это экзотика, которая нормально не поддерживается принятыми в индустрии тулами.


  1. nerudo
    10.02.2022 11:36

    Tesla хочет свой собственный процессор изобрести?


    1. amartology
      10.02.2022 11:58
      +4

      Они давно уже сами делают чипы для ADAS.


  1. Semenych
    10.02.2022 12:41
    +9

    Начинается вроде как интересно, потом автор резко заглубляет историю в глубокие детали, т.е. видно автор много знает, но зачем он нам это расскзывается становится не понятно. И в конце идет классическая инфоцыганщина - покупайте наших слонов.


    1. Brak0del
      10.02.2022 12:53
      +1

      потом автор резко заглубляет историю в глубокие детали

      Да не глубокие они, это каждодневные будни инженеров.


    1. YuriPanchul Автор
      10.02.2022 13:02
      +1

      Если бы я решил идти в глубокие детали, я бы начал с Clock Domain Crossing и потом бы шел в time stealing и time borrowing.

      Но я не пошел даже в простые детали (setup, hold, Итд).

      Просто описал минимальную идею и направил на школу, где можно поиграться с взрослыми инструментами. Бесплатно кстати (есть курсы которые берут за это $3000 в неделю с каждого ученика).


  1. Armleo
    10.02.2022 16:08
    +5

    Я прочитал статью. От начала до конца. Комментаторы правы. Ответ на вопрос не дан.

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

    Что бы сделал я? Взял бы OpenLane покрутил бы через него счётчик. Развернул бы yosys показал бы схематический view кто, куда и что. Рассказал бы про схему сумматора. Добавил waveview в котором чётко видно - задержку транзистора и задержку вызванную transition time. Рассказал бы про setup/hold по подробнее. Снова - схемы и waveview. Можно даже и про CTS.

    Задача - вызвать интерес, и только потом рассказать про курсы (можно и вначале упомянуть), про который я ничего сказать не могу, хотя не сомневаюсь, что они неплохие.

    Можете оправдаватсья сколько хотите, про то что это не ваша цель. Но от этого эта статья в годную для core аудитории Хабра не станет.

    No personal feelings, как говорится. Я вижу, что вы многое делаете для популяризации VLSI в России, очень Вас уважаю. Просто решил высказаться.


    1. amartology
      10.02.2022 17:36

      А так, всеми эта статья воспринимается, как рекламный материал.
      Это он и есть, Юрий сказал это прямым текстом.

      Взял бы OpenLane покрутил бы через него счётчик. Развернул бы yosys показал бы схематический view кто, куда и что.
      Откуда у Юрия навыки работы с этими тулами? )


      1. YuriPanchul Автор
        10.02.2022 20:47

        Я счетчик с yosys пробовал. Но работаю с коммерческими тулами (Synopsys Design Compiler), это да. Сагитировал студентов Иннополиса освоить Yosys и OpenLane, но они такие посты не пишут.


      1. Armleo
        11.02.2022 17:00
        +1

        Это он и есть, Юрий сказал это прямым текстом.

        Перефразирую: Плохой рекламный материал.


        1. YuriPanchul Автор
          11.02.2022 21:01
          -2

          У меня не было времени, чтобы писать хороший. Учетки для МИЭТ нужно было сделать до конца четверга. Или вы хотите чтобы я сидел неделю и методично расжевывал все про propagation delay, contamination delay, clock-to-q, setup, hold, схему полусумматора, схему сумматора, carry chain, carry-lookahead adder, clock tree distribution, slew, slew, false path итд? Я много раз пытался активировать студентов и других людей чтобы они это делали, но все отлынивают.


        1. YuriPanchul Автор
          11.02.2022 21:29
          -1

          Обратите внимание, что даже мою попытку растолковать за 5 минут базовую идею анализа статического тайминга для определения максимальной тактовой частоты почти никто не читает - тут же начинает комментировать, особенно в фейсбучных группах. А если бы я написал текст, который предложили вы, его бы стопудово никто не читал - люди бы просто пролистовали до конца, ожидая что там будет про Маска. И зачем это писать, если это вполне адекватно расписано в учебнике Харрис & Харрис, пусть даже без вещей типа CTS?

          Вот вы можете написать текст на полстраницы, который бы прочли за 3 минуты и поняли так определяется максимальная тактовая частота, точнее как проверяется что тактовая частота у синтезированного блока вписывается в constraints? И так чтобы людям это хотелось читать?

          В фейсбучных группах я увидел просто хтонические бездны - одни думают, что частота клока - это якобы максимальная частота переключения транзистора (для finfet это 100 GHz кстати), другие думают, что эти гигагерцовые частоты - фейк, что якобы производители процессоров просто суммируют (!) низкие частоты разных блоков (*). Представоляете, какому контингенту это нужно объяснить чтобы они прочитали?

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


    1. YuriPanchul Автор
      10.02.2022 20:45

      *** Понятно, что сроки не позволяют, но это решается наймом ребят и предварительбной подготовкой материала, до начала занятий. ***

      1. У меня есть основная работа, это так сказать общественная нагрузка

      2. Нужно как-то известить народ про школу, а кроме меня никто такие посты писать не хочет

      3. Если нанять кого-то квалифицированного, то он запросит тысячи долларов за пост такого рода, а если нанять кого-то неквалифицированно, то их прийдется учить, и на это уйдет больше моего времени< чем на написание поста.


      1. ciuafm
        10.02.2022 23:27
        +3

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