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

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

Некоторые из всемирно известных компаний, нанимающих сотрудников в этой области:

1. Intel
2. Qualcomm
3. Google
4. Samsung
5. Microsoft
6. IBM
7. AMD
8 . Nvidia

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

  1. Компьютерная архитектура (и цифровой дизайн)
  2. Операционные системы
  3. Системное программирование
  4. Программирование (обычно предпочтительно C / C ++)
  5. Структура данных и алгоритмы (требуются как минимум основы)

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

Архитектура компьютера

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

Список некоторых из наиболее важных концепций, которые вы не должны пропускать при подготовке к собеседованию по компьютерной архитектуре:

- Темы, помеченные как «продвинутые», предназначены для профилей, ожидающих опытных кандидатов. Первокурсники могут пропустить продвинутые темы.

  1. Одно- и многоцикловая архитектура, ISA
  2. Конвейерная обработка
  3. Неисправные процессоры (Tomasulo, очереди загрузки-сохранения) (заранее)
  4. Параметры измерения производительности (IPC, CPI, AMAT)
  5. Кэш и иерархия памяти
  6. Архитектура и оптимизация кэша (компромиссные решения) (заранее)
  7. Концепции TLB и виртуальной памяти.
  8. Многоядерная архитектура (предварительная версия)
  9. GPU и гетерогенные вычисления (предварительная версия)

Ниже приведен список некоторых замечательных ресурсов, которые помогут вам подготовиться к изучению вышеуказанных тем и начать путь к тому, чтобы стать выдающимся компьютерным архитектором:

- Здесь упоминаются и описываются только те книги и ресурсы, которые нам больше всего нравятся. Доступно множество других ресурсов, ссылки на некоторые из которых доступны в конце блога.

Книги:

  1. Компьютерная организация и дизайн, 4-е издание PDF, Джон Л. Хеннесси и Дэвид А. Паттерсон
  2. Компьютерная архитектура и количественный подход, 6-е издание, PDF, Джон Л. Хеннесси и Дэвид А. Паттерсон

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

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

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

Видео онлайн-лекций

Я не тот парень, который любит читать книги

Многие из нас могут попасть в указанную выше категорию. Чтение книг может показаться кошмаром. Ниже представлены отличные онлайн-видео в качестве альтернативы !:

Доступно довольно много видеокурсов, но упомянутые здесь самые свежие. Кроме того, для каждого из плейлистов на Youtube есть ссылки на материалы курса, которые идут вместе с видео. Материал курса одинаково велик и дает большой объем практики для практического применения изученной теории. В ссылке также упоминаются исследовательские работы, охватывающие все соответствующие темы и постановки задач.

  1. Цифровой дизайн Онура Мутлу (ETH Zürich, весна 2019)
  2. Онур Мутлу, бакалавр компьютерной архитектуры (Карнеги-Меллон, весна 2015 г.)
  3. Онур Мутлу, выпускник компьютерной архитектуры (ETH Zurich, осень 2018)

Несколько слов о видеолекциях:

Онур Мутлу - известный профессор компьютерных наук в ETH Zurich. Видео всех его лекций, взятых в CMU и ETH Zurich, можно бесплатно скачать онлайн на Youtube.

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

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

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

Дополнительные оценки за дополнительное чтение!

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

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

Еще один важный момент, на который следует обратить внимание: архитектура очень быстро развивается. Быть в курсе того, что на самом деле присутствует во встроенных системах, окружающих нас, также является важной частью головоломки, которую предстоит решить инженерам. К сожалению, единственным доступным решением является регулярное чтение качественных исследовательских работ по новейшим темам! Вздох!

Продолжайте читать об операционных системах и системном программировании во части II блога.

Это сообщение в блоге предоставлено Сахилом Манияром, архитектором системного программного обеспечения в Qualcomm.

Готовитесь к собеседованию?

Подготовьтесь лучше с бесплатными пробными интервью от профессионалов, работающих в ведущих компаниях! Посетите Preplaced, чтобы получить первое пробное интервью и другие полезные блоги бесплатно!