Русский
Русский
English
Статистика
Реклама

Процессор

Визуализируй это LED-куб на базе Raspberry Pi показывает уровень загрузки процессора

30.09.2020 12:15:28 | Автор: admin

На днях в сети появилось описание оригинального DIY-проекта на основе Raspberry Pi и светодиодных панелей. Цель проекта визуализировать уровень загрузки процессора ПК. Для этого используются анимация на LED-панелях самодельного устройства.

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

Вот как все это выглядит:

Как возникла идея проекта


В прошлом году автор принял участие в 36th Chaos Communication Congress (36C3), где увидел огромное количество DIY-проектов, включая светодиодные кубы. Его это очень впечатлило.


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

Себастиан Стаакс (Sebastian Staacks) решил разработать собственный проект устройство, которое сможет показывать уровень нагрузки процессора ПК. Особого практического смысла нет, это проект just for fun.Общая стоимость системы в сборке составила $150.

Реализация проекта


То, как выглядит и работает светодиодный куб, показано выше. Теперь немного подробностей. Устройство включается автоматически после загрузки ПК, к которому оно подключено.


Автор говорит, что постарался сделать цвета и анимацию максимально нейтральными, чтобы не отвлекать внимание пользователя ПК во время работы (или игры).

Железо и ПО


Конструкция устройства очень простая. Вот, что увидит человек, который захочет разобрать девайс.


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

Светодиодные панели автор заказал с Aliexpress, выбрав лучшее сочетание цены и качества. По его словам, это было непросто, поскольку поставщики редко прописывали подробные технические характеристики своего товара. Соответственно, не всегда было понятно, подходят ли эти панели для проекта. В итоге разработчик купил панели с 64x64 RGB LED и 5В питанием.


Для питания этих панелей был использован 50W блок с 10А и 5В. Адаптер питает драйвер матрицы Adafruit, который подключен к панелям через Raspberry Pi. Главное чтобы характеристики блока питания перекрывали потребление системы.

Управление панелями


Что касается малинки, разработчик использовал Raspberry Pi 2. На данный момент этот одноплатник нельзя считать слишком устаревшим морально, для подобных целей его вполне хватает. Кроме того, он почти не нагревается в процессе работы, чего нельзя сказать о третьем и четвертом поколениях.


К плате был подключен внешний WiFi-модуль, чтобы избавиться от кабелей для подключения к сети. Паять почти ничего не нужно было, за исключением пары операций с Adafruit RGB Matrix Bonnet.


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


Панели не приклеиваются, чтобы их в любой момент можно было снять с корпуса. Предусмотрены также крепления для Raspberry Pi. Еще можно распечатать основу для куба, но, в целом, все выглядит неплохо и так.


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

Самый важный элемент программного обеспечения небольшая программа на С++, которая управляет кубом. Она использует специальную библиотеку rpi-rgb-led-matrix. В частности, она нужна для открытия UDP-порта, чтобы получить характеристики работы процессора с ПК, а также OpenGL для рендеринга анимации. Подробности работы библиотеки здесь.

Для установки нужен скрипт от Adafruit. Инструкция по установке доступна по указанной ссылке.

Вот параметры для настройки панелей

//LED Matrix settings
RGBMatrix::Options defaults;
rgb_matrix::RuntimeOptions runtime;
defaults.hardware_mapping = "adafruit-hat-pwm";
defaults.led_rgb_sequence = "RGB";
defaults.pwm_bits = 11;
defaults.pwm_lsb_nanoseconds = 50;
defaults.panel_type = "FM6126A";
defaults.rows = 64;
defaults.cols = 192;
defaults.chain_length = 1;
defaults.parallel = 1;


Обратите внимание, pwm_bits и pwm_lsb_nanoseconds выглядят не слишком важными, но они критичны в первую очередь для качества изображения. В частности, pwm_bits определяет количество битов ШИМ, которое задает количество цветовых шагов. Обратной стороной увеличения этого значения является уменьшение частоты обновления светодиодной панели. Улучшить параметр можно, уменьшив настройки pwm_lsb_nanoseconds если ваши панели поддерживают такие низкие значения. Если собираетесь снимать куб на камеру, лучше увеличить частоту обновления, чтобы все выглядело красиво.

Важно, чтобы Pi непрерывно работал с RGB Bonnet, в противном случае могут появиться артефакты. Для этого рекомендуется зарезервировать целое ядро процессора.

В проекте можно найти cpu-stats-gl.cpp, чтобы использовать это в собственном проекте. Для использования потребуются библиотеки g++ -g -o cpu-stats-gl cpu-stats-gl.cpp -std=c++11 -lbrcmEGL -lbrcmGLESv2 -I/opt/vc/include -L/opt/vc/lib -Lrpi-rgb-led-matrix/lib -lrgbmatrix -lrt -lm -lpthread -lstdc++ -Irpi-rgb-led-matrix/include/. Ну а для того, чтобы добавить поддержку OpenGl, стоит воспользоваться инструкциями от Matus Novak.

Шейдер OpenGl


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

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

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


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

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

Получаем статус процессора


Информацию о режиме работы процессора можно получить по протоколу UDP скриптом на питоне.

#!/usr/bin/python3import psutilimport socketimport time TARGET_IP="192.168.2.45"TARGET_PORT=1234 while True:  temperature = 0.0  time.sleep(0.5)  temperature += psutil.sensors_temperatures()["k10temp"][0].current  time.sleep(0.5)  temperature += psutil.sensors_temperatures()["k10temp"][0].current  time.sleep(0.5)  temperature += psutil.sensors_temperatures()["k10temp"][0].current  time.sleep(0.5)  temperature += psutil.sensors_temperatures()["k10temp"][0].current  time.sleep(0.5)  temperature += psutil.sensors_temperatures()["k10temp"][0].current  temperature /= 5.0   cores = psutil.cpu_percent(percpu=True)   out = str(temperature) + "," + ",".join(map(str, sorted(cores, reverse=True)))  socket.socket(socket.AF_INET, socket.SOCK_DGRAM).sendto(out.encode("utf-8"), (TARGET_IP, TARGET_PORT))

На ПК автора скрипт запускается автоматически, для работы используется статический IP, зарезервированный под светодиодный куб.

На этом этапе все должно работать так, как и задумано.


Понравился ли вам этот проект? Возможно, вы разрабатывали нечто похожее или, наоборот, уникальное? Расскажите об этом в комментариях.

Подробнее..

Пора переходить в красный лагерь выбираем лучший AMD EPYC для сервера

20.08.2020 10:19:07 | Автор: admin
Сложно поверить, но последний серьезный успех AMD на рынке серверных микропроцессоров датирован далеким 2004 годом. Более 15 лет назад компания представила 64-битные Opteron, которые удачно конкурировали с интеловскими Xeon на ядрах Gallatin, обеспечивая требуемую производительность при умеренном на то время тепловом пакете. Дальнейшие годы прошли в полной доминации синих, а отсутствие прямого конкурента позволило им занять лидирующие места в большинстве сегментов рынка. Но с выходом линеек Ryzen (для настольных ПК) и EPYC (для серверных станций) AMD не просто наверстывает упущенное, а в серьез претендует на звание единоличного короля. Какие сильные стороны красных камней и что взять для создания недорогой и производительной серверной станции? Об этом и не только расскажем далее.



Летом 2017 года AMD анонсировало свое первое поколение серверных микропроцессоров EPYC, созданных на базе микроархитектуры Zen. И хоть это не принесло колоссального успеха в плане продаж (Интел все также находился в недосягаемости), но совершено точно стало новым витком развития компании. Уже тогда имеющиеся решения были прекрасны почти во всем: многоядерность и многопоточность, автоматический разгон, быстрая память, расширенные возможности для работы внешней периферии и многое другое.

Второе поколение Эпиков стало не просто логичным продолжением первой серии, но и во многом решило те немногочисленные проблемы, которые повисли с момента ее анонса. Разработчики перешли на более совершенные техпроцесс, научились компоновать ядра (стали доступны модели вплоть до 64 вычислительных блоков), предложили еще более быструю память и улучшенную PCI Express шину. А через некоторое время дополнительно подняли L3 кэш и тактовые частоты, обновив линейку под кодовым названием Rome 7Fx2. Индустриальные игроки наконец-то получили вполне конкурентоспособную альтернативу для решения широкого круга задач по оптимальной цене.

Безопасные и производительные


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

AMD EPYC это не просто высокопроизводительные чипы с множеством ядер, но и мощная программная поддержка, позволяющая им противостоять аппаратным атакам и MDS уязвимостям. Так, в сравнении с десктопными решениями Ryzen 1ХХХ-2XXX, они практически неподвержены связке уязвимостей SMM Callout и Collide + Probe и Load + Reload, способными получить контроль над UEFI-прошивкой и доступом к ОЗУ. А своевременная программная коррекция ОС и микрокода позволит с большей вероятностью оградить свое железо от нежелательного вмешательства хакеров. Вдобавок имеем улучшения по сравнению с первой версией архитектуры. Так, обновленные EPYC защищены от всех версий Spectre, больше не нуждаются в обновлении прошивки чипсета и программных инструкциях операционной системы.

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

Особенности и преимущества Эпичных процессоров


Производители компьютерной техники ежегодно выводят на рынок новое железо, стремясь не отставать от потребительской конъюнктуры и обеспечивать ГИКов передовыми разработками. Выпуск второго поколения процессоров EPYC по праву можно считать прорывом AMD в области серверного оборудования. Данные решения предлагают внушительную производительность за меньшую цену, и это без упоминания совершенно иного уровня издержек на общее владение. Не удивительно, что индустрия на ура встретила новое поколение красных чипов, а программную поддержку им оказали такие ИТ гиганты, как: Амазон, Майкрософт. Это позволило быстрыми темпами продвинуть EPYC в широкие массы, не смотря на консервативные взгляды рынка серверного оборудования.

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

  • Новый 7-нм техпроцесс и микроархитектурные улучшения (конкурент тем временем ежегодно ставит новые плюсики рядом со своей устаревшей 14-нм литографией);
  • Чиплетная компоновка, позволяющая существенно уменьшить себестоимость многоядерных процессоров;
  • Широкий ассортимент выбора, вплоть до моделей с 64 ядрами (128 потоков);
  • Реализация новой PCIe шины версии 4.0 с существенно возросшей пропускной способностью;
  • Активно развивающаяся экосистема и поддержка со стороны индустрии (партнерами выступают как производители аппаратной части, так и программного обеспечения).

А теперь подробнее.

Меньше значит лучше


Отсутствие реальной конкуренции сыграло с Интелом злую шутку. Архитектура их чипов не менялась, по сути, уже 7 лет, и мы ежегодно встречаем обновленные Sandy Bridge, просто с несколько более высокими тактовыми частотами. Прирост в 5-10% производительности совсем не тянет на инновации, особенно, когда с выходом новых чипов приходится покупать новую материнскую плату.

Но не будем о грустном: благодаря реализации передовых технических решений, AMD смогла первой представить процессоры на базе 7 нм техпроцесса (речь о х86 конечно же, мобильные Apple A12 и Snapdragon 855 тут не в счет). Что это дает? Если кратко возможность разместить больше транзисторов на единице площади. Отсюда получаем большее количество операций (лучшую производительность) при меньшем нагреве и выход годных кристаллов на уровне 90%.

Архитектурные улучшения повлияли и на связь с оперативной памятью. EPYC второго поколения с коробки поддерживают стандарт DDR4-3200 МГц (Интелы работают с 2933 МГц), а энтузиасты могут легко разогнать ее, просто изменив напряжение и профиль в БИОСе.

В рамках этого пункта нельзя не отметить работу над одним из наиболее слабых мест микроархитектуры Zen 1-ого поколения, а именно слабый показатель операций на такт. В Zen 2 избавились от этого недостатка, обеспечив новым ядрам почти 15 процентный выигрыш в скорости вычислений при тех же тактовых частотах. А для многопоточной производительности, выполнение типичных серверных операций стало быстрее на 23% (не забываем про удвоенное количество ядер и возросшей частоте). И все это укладывается в заявленный теплопакет, достигающий 250 Ватт у старших моделей.

Инновационная компоновка


Использование чиплетной компоновки для создания процессоров один из главных аргументов в пользу AMD перед извечным конкурентом. Чиплеты представляют собой отдельные кристаллы, которые связаны между собой через быструю шину данных. Обновленное поколение микроархитектуры AMD Infinity оптимизировано специально под многоядерные вычисления, кроме исполнительных блоков здесь также добавлен центральный чиплет со всеми необходимыми контроллерами, отвечающий за ввод и вывод данных. Соединение исполнительных блоков к центральному хабу обеспечивают теперь высокоскоростные дорожки Infinity Fabric. На выходе получаем, что флагманский Эпик 7742 имеет 8 чиплетов, на которых размещены 64 аппаратных ядра с возможностью обработки 128 потоков одновременно. Все это приправлено внушительными 256 Мб быстрого кэша третьего уровня. А единственным слабым звеном архитектуры по-прежнему является скорость доступа к оперативной памяти (латентность). Причем Zen 2 немного уступает даже своему предшественнику в лице первых EPYC.

Ещё несколько важных плюсов


Обновленные процессоры имеют в своем активе по 128 дорожек шины PCIe 4.0. Изменилась не только цифра в названии, но и реальная скорость передачи информации, которая в пике может достигать рекордных пол терабайта в секунду. Правда на двухсокетные материнские платы удвоение количества линий не распространяется. Половину отнимает связующая их шина Infinity Fabric. Зато разбиение процессорных линий на 8 групп по 16 штук обеспечивает им одновременную поддержку до 32 твердотельных накопителей, подключающихся по интерфейсам SATA или NVMe.


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

Немаловажным плюсом являются расширенные возможности шифрования ОЗУ, в частности АЕS-128, и улучшенная программная виртуализация. Для этого разработчикам пришлось вшить в чип отдельный 32-битный контроллер AMD Secure Processor для расширения криптографической функциональности. Что интересно, столь внушительные возможности второго поколения EPYC, вполне вероятно являются следствием работы над внешними проектами: игровыми консолями от Майкрософт и Сони. Так как заказчики настояли на программной изоляции своих продуктов с защитой от взлома аппаратными методами шифрования.

Каждому серверу по потребностям


Архитектура, техпроцесс и шины, это, конечно хорошо, но для конечного потребителя нужна конкретика. Основное, что отличает серверные процессоры AMD друг от друга это различие в количестве ядер, остальное уже как следствие, от первой производной. Здесь есть где разгуляться, доступно 14 моделей на все случаи жизни:

  • 8 ядер/16 потоков EPYC 7252(7262);
  • 12 ядер /24 потоков EPYC 7272;
  • 16 ядер /32 потоков EPYC 7282 (7302);
  • 24 ядер /48 потоков EPYC 7352 (7402);
  • 32 ядер /64 потоков EPYC 7452 (7502, 7452);
  • 48 ядер /96 потоков EPYC 7552 (7642);
  • 64 ядер /128 потоков EPYC 7702 (7742).

К вышеупомянутому списку справедливо также будет добавить процессоры EPYC линейки Rome 7Fx2. По сути, это та же архитектура, из которой разработчики смогли выжать еще дополнительные 500 МГц на ядро и добавили кэша. Получилось вполне убедительно, по заявлениям самих AMD это процессоры с лучшей производительностью на ядро, представленные на рынке. Правда количество этих самых ядер ограничено тремя моделями: с 8, 16 и 24. Сразу отметим, что подобного рода камушки отлично подойдут для дата-центров и работы с базами данных.

Стоимость чипов AMD EPYC варьируется в пределах 450 6900 долларов, в зависимости от модели. Сборка систем с 64 ядрами обеспечит нужный уровень производительности для большинства облачных сервисов, а если и этого мало ставим системы из двух сокетов. Трудно представить задачи, которые вызовут проблемы у 128 ядер и 256 потоков, работающих одновременно.

Остальные параметры, влияющие на производительность процессора, меняются линейно с увеличением количества физических ядер. Каждый чиплет содержит 32 Мб кэша верхнего уровня и 4 Мб кэша L2. Однопроцессорные модификации (имеют литеру Р в названии) ничем не ограничены в сравнении с двухпроцессорными братьями, также могут иметь от 8 до 64 ядер и верхний кэш вплоть до 256 Мб.

Сравниваем и выбираем лучшее


Презентуя серверные решения на обновленной архитектуре, в компании сделали упор на прямые сравнения вычислительной мощности и соотношении цена/производительность с конкурентами. Так, в паре топовых решений EPYC 7742 от АМД и Интеловского Ксеон 8280L, детище красного лагеря имеет практически двухкратное преимущество. Более того, младшие 32-ядерники также ничем не отстают, показывая сходную, а местами и лучшую производительность чем у флагманских чипов конкурента. В итоге получаем ситуацию, в которой сервер с одним сокетом на EPYC будет не хуже топового двухсокетного сервера на Интел. Для потребителя это меньший расход электроэнергии, экономия на лицензии, а значит и общей стоимости владения серверным оборудованием.

Другим примером сравнения может послужить народный 8-ми ядерный Ксеон Silver 4215 с ценником в 800-900 долларов против EPYC 7282 с вдвое большим количеством ядер. Последний имеет более низкую стоимость, но и при таких раскладах обеспечивает существенно лучшую производительность. А если взять в сравнение модели 7Fx2, то разница в скорости выполнения операций становится просто колоссальной, что в очередной раз доказывает преимущество 7-нм техпроцесса и улучшенной архитектуры.

Еще одной интересной для потребителя конкурирующей нишей являются решения на базе процессоров EPYC 7452 и Ксеон 6226. Да, тут стоимость не в пользу AMD, но соотношение цена/производительность снова на стороне EPYC. Если рассматривать оптимальный вариант для покупки серверной машины в офис, то стоит обратить внимание на 32-ух ядерный EPYC 7502. Здесь собрано комбо из высокой производительности и относительно доступной цены. По сути, его можно назвать золотой серединой, которая подойдет для большинства потребителей.

И напоследок


Выход AMD EPYC серьезно пошатнули, казавшиеся незыблемыми в течении 15 лет, позиции Xeonов в сегменте серверных процессоров. А усовершенствованная архитектура Zen 2 лишь усилила взятый вектор красных на монополизацию рынка. Впоследствии это заставило многих индустриальных игроков вполне серьезно задуматься о перспективах покупки чипов, выполненных по 7-нм техпроцессу. В виду того, что решениям от Интел буквально нечем ответить, AMD выбрало оптимальное время для своего триумфального возвращения на трон короля микропроцессорной техники.

Рядовому потребителю и владельцам крупных ИТ инфраструктур представлены варианты на любой бюджет и уровень производительности. Причем в каждом сегменте EPYC смотрится предпочтительнее своего конкурента. Процессоры AMD предлагают достойную аппаратную защиту, развитую экосистему, высокую скорость работы, экономию на покупке лицензии и совокупной стоимости владения оборудованием. Преимуществ большинству и так будет достаточно, а перспективы освоения 5-нанометрового производства лишь усиливают интерес к продуктам компании со стороны потенциальных потребителей.

Мы уже оценили все преимущества процессоров AMD EPYC и запустили эпичные серверы. Поспешите попробовать и вы!



Подробнее..

NGD выпустила 12 ТБ SSD со встроенным 4-ядерным ARM-процессором

07.11.2020 20:18:47 | Автор: admin

Несмотря на то, что стоимость SSD за последние несколько месяцев упала примерно на 10%, производители продолжают выпускать новые системы. Так, компания NGD представила накопитель емкостью в 12 ТБ. Его особенность не столько объем памяти, сколько собственный 4-ядерный процессор.

Он используется для взаимодействия с флеш-памятью, а также для шифрования, компрессии, индексации, поиска данных, плюс перекодирования медиафайлов. NGD System выпустила этот SSD в форм-факторе E1.S. Эта система предназначена, конечно, не для пользовательских, а для корпоративных устройств.

Ранее компания выпустила несколько подобных SSD, но их емкость была ограничена 8 ТБ, а среди форм-факторов были лишь M.2. Правда, компания выпустила еще одну модель более емкий вариант U.2 с емкостью до 32 ТБ. Поэтому новая система заняла промежуточную нишу.

Что касается процессора, то его архитектура ARM, он способен обеспечивать работу Ubuntu Linux и Docker.


Что касается характеристик, то скорость линейного чтения составляет 1,6 Гбайт/с, случайные операции 128 000 IOPS, 200 000 IOPS в случае случайной записи блоками 4К. Флеш-массив набран разработчиками памятью 3D TLC, интерфейс же ограничен возможностями PCIe 3.0. Что касается объема, то 12 ТБ это чистая емкость. Системе доступно только 9,6 ТБ. Если говорить о менее емкой модели объемом в 6 ТБ, то системе в этом случае доступно только 4,87 ТБ.


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

Подробнее..

Быстрее, точнее, эффективнее IBM представила прототип 7-нм ИИ-сопроцессора

26.02.2021 20:18:58 | Автор: admin

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

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

В большинстве вычислительных ядер, процессоров и SoC, заточенных под машинное обучение, чаще всего применяют режимы пониженной разрядности: FP16 и INT8. 8-битная точность в этом случае просто избыточна. IBM разработала для подобных периферийных систем прототип нового ИИ-чипа.

Чем интересен сопроцессор?



4-ядерный чип. Источник

Чип спроектирован с использованием 7-нм техпроцесса. Возможны разные сценарии использования чипа:

  • В 4-битном режиме для обычных задач. Технология позволяет добиваться сопоставимой с 8-ми битным режимом точности результатов.
  • В 2-битном режиме для инференс-задач. В этом случае иногда точность понижается на несколько процентов, но в 4 раза повышается производительность по сравнению с 8-битным режимом.
  • Гибридный режим для задач разного типа.

Основные характеристики чипа:

  • 7-нм техпроцесс на основе EUV;
  • использование гибридного формата FP8 с HFP8;
  • управление питанием аппаратных ускорителей с помощью ИИ;
  • адаптация к перманентно высоким нагрузкам, что обеспечивает высокую производительность приложений.


Источник

Сферы применения новинки:

  • обучение крупномасштабных моделей в облаке;
  • усиление безопасности и конфиденциальности;
  • увеличение вычислительных мощностей в гибридных средах без больших затрат энергии.

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

Подробнее..

Самый большой процессор в мире Cerebras CS-1. Разбор

29.01.2021 18:07:40 | Автор: admin
Наверняка вы подумали, что это какой-то очередной кликбейт. Что это за самый большой процессор в мире? Похоже сейчас нам будут рассказывать о процессоре, который на 5 процентов больше других, и то если рассматривать этот процессор только с определенной стороны.И да просмотры и прочтения мы хотим собрать, но

Сегодня мы расскажем вам о процессоре компании Церебро, под названием Cerebras CS-1.И он действительно огромный!


Например, GPU, который считался самым большим раньше это процессор Nvidia V100, а вот новый процессор Церебро. Он почти в 57 раз больше!Площадь самого чипа 462 квадратных сантиметра это почти столько же сколько площадь всей Nvidia 3090, вместе с системой охлаждения и разъемами.







А что вы скажете на то, что этот монстр способен симулировать некоторые физические модели быстрее самих законов физики?Заинтриговали? Что ж тогда присаживайтесь, наливайте чаек. Сегодня будет разбор по-настоящему огромного однокристального процессора!

Итак, что же это за монстр такой и зачем он нужен?Давайте сразу ответим на второй вопрос этот процессор создан для машинного обучения и искусственного интеллекта. Кроме того он сильно расширит возможности для различного сложного моделирования и сможет заглядывать в будущее. Вообще, искусственный интеллект это невероятно интересная и актуальная тема, а ее главные ограничения это слабые вычислительные мощности.А если хотите узнать о реальных проектах с использованием искусственного интеллекта у Илона Маска есть такой в запасе Open UI.

Если вы думали, что закон Мура со своим увеличением количества транзисторов в процессоре каждые 1,5 года это быстро, то посмотрите на потребности в области ИИ, ведь спрос на эти вычисления удваивается каждые 3,5 месяца!

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

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

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









Это огромная машина, потребляющая 20 килоВатт, и занимающая треть стандартной серверной стойки, то есть можно размещать по три таких компьютера в одной стойке! А сам чип, по своей сути и предназначению, напоминает серверные GPU от NVIDIA, так что давайте их и сравним. Возьмем Nvidia Tesla V100.





Цифр много, приготовьтесь! Кроме размеров самого кристалла, процессор Церебро обладает четырьмя сотнями тысяч ядер, что в 78 раз больше, чем число ядер на NVIDIA Tesla V100! Количество транзисторов взрывает мозг 1,2 триллиона, против 21 миллиарда у NVIDIA.

А сколько там памяти? 18 гигабайт l2 cache memory прямо на чипе! Это в три тысячи раз больше, чем у V100. Кстати у 3090 от той же NVIDIA, памяти на чипе тоже 6 мегабайт, прямо как у V100. Ну а про ширину полосы пропускания даже говорить страшно у V100 это 300 Гигабит в секунду, а у Церебро 100 ПЕТАбит в секунду. То есть разница в 33 тысячи раз!



А чтобы достичь схожей вычислительной мощности они заявляют, что нужна тысяча 100 карт NVIDIA, что суммарно будет потреблять в 50 раз больше мощности и занимать в 40 раз больше места это очень значительная экономия электроэнергии и свободного пространства.





Это конечно прекрасно цифры поражают. Но как удалось их достичь?

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

Однако, размер это одновременно и главный недостаток Церебро.

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









При потреблении 20 кВт, которые подаются через двенадцать разъемов питания, четыре уходит только на питание вентиляторов и насосов для системы охлаждения. Но в результате они достигли того, что чип работает при вдвое меньших температурах, чем стандартные GPU, что в конце концов повышает надежность всей системы.

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

Сам же чип собирает TSMC по, вы не поверите, 16 нанометровому техпроцессу. И тут вы можете справедливо возмутится. Как же так? Все уже делают чипы на 5 нм, какой смысл делать на древних 16 нм?

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

Суть в том, что ребята решили, как бы, подстраховаться. Ведь 16 нм техпроцессу уже почти семь лет: детали и тонкости при его производстве отлично изучены. Так сказать уменьшают риски! Но стоит сказать, что уже ведется разработка и тестирование такого чипа на 7 нм, но его выход конечно будет зависеть от спроса на первое поколение! И там цифры просто огромные, только посмотрите на таблицу.





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

Национальная лаборатория энергетических технологий Министерства энергетики США заявила, что CS-1 первая система, которая смоделировала работу более миллиона топливных ячеек быстрее, чем в режиме реального времени.

Это означает, что когда CS-1 используется для моделирования, например, электростанции на основе данных о ее текущем состоянии, она может сказать, что произойдет в будущем быстрее, чем законы физики дадут такой же результат.Вы поняли? С помощью этого ПК можно заглянуть в будущее с высокой точностью, и если нужно подкорректировать и изменить его.И еще, например, в симуляции с 500 миллионами переменных Cerebras CS-1 уже обогнал суперкомпьютер Joule, занимающий 69-е место в рейтинге самых мощных суперкомпьютеров мира. Так что похоже со спросом проблем не ожидается.



Церебро планируется использовать для прогнозирования погоды или температуры внутри ядерного реактора или, например, проектирования крыльев самолета. Несомненно, лаборатории и различные исследовательские центры по всему миру найдут для Церебро области применения.Как вы понимаете, компьютер будет дорогим, но точная цена неизвестна.

Из открытых источников мы нашли только что в 2020 году в суперкомпьютерном центре Питтсбурга было куплено 2 компьютера Cerebras CS-1 за 5 миллионов долларов. Но система делается только под заказ и под каждого конкретного клиента, так что цена может варьироваться.

Выводы



Это явно уникальная система. И такого раньше никто не делал! Большинство производителей считают, что гораздо выгоднее и эффективнее наштамповать кучу маленьких процессоров, так как вероятность брака или поломки сильно падает и каждая ошибка сильно дешевле.Разработчики Церебро же решили пойти рискованным путем и, судя по тому, что процессор Cerebras CS-2 уже тестируют, их путь успешен.

И если все что они заявили сбудется, то нас ждет абсолютно новая эра серверных вычислений, невероятные возможности для создания компьютерных моделей, новые мощности искусственного интеллекта. Нет сомнений, что и гиганты рынка, такие как Nvidia, Intel, Google, посмотрев на удачный опыт Церебро займутся разработкой своих огромных однокристальных систем.А вы только представьте, что будет если совместить это с квантовыми вычислениями, о которых мы недавно делали разбор? Ух!

Будем следить за развитием технологий, и продолжим дальше делать для вас такие интересные обзорные материалы про самые современные достижения!



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

Перевод Реверс-инжиниринг микропроцессора Intel 8086

23.06.2020 22:21:05 | Автор: admin
В июне 1978 года был представлен один из самых влиятельных чипов в полупроводниковой индустрии Intel 8086. Он положил начало архитектуре х86, которая до сих пор доминирует сегодня в настольных и серверных вычислениях. Давайте заглянем вглубь чипа и разберём внутреннее строение и архитектурные особенности этого микропроцессора.

image

На фото ниже изображён кристалл процессора Intel 8086. На фото виден металлический слой чипа, скрывающий кремний под ним. По краям матрицы расположены тонкие провода, обеспечивающие соединение между площадками на чипе и внешними контактами. Силовые и заземляющие площадки имеют по два соединительных провода для поддержания более высокого тока. Микросхема была очень сложной для своего времени и содержала 29 тысяч транзисторов. Обратите внимание на маркировку кристалла в самом низу на ней указан логотип Intel, модель процессора и год изготовления микросхемы.

image
Кристалл процессора Intel 8086

image

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

image

На фотографии видна кремниевая матрица, расположенная в центре. Матрица подключена к металлическим контактами микросхемы с помощью крошечных соединительных проводов. Это 40-контактный DIP-корпус, стандартный форм-фактор для микропроцессоров того времени. Обратите внимание, что сама кремниевая матрица занимает небольшую часть размера корпуса.
С помощью металлургического микроскопа были сделаны десятки фотографий матрицы чипа, сшитые в одно изображение высокого разрешения с помощью программы Hugin.

Ниже показана фотография кристалла, на которой были удалены слои металла и поликремния, обнажая лежащий под ними кремний с его 29 000 транзисторов. На чипе обозначены основные функциональные блоки, основанные на реверс-инжиниринге Кена Ширриффа. Левая сторона чипа содержит 16-битный канал передачи данных: регистры чипа и арифметические схемы. Сумматор и верхние регистры образуют модуль интерфейса шины, который взаимодействует с внешней памятью, в то время как нижние регистры и АЛУ образуют исполнительный блок, который обрабатывает данные. Правая сторона чипа имеет схему управления и декодирования команд, а также микрокод ROM, который управляет каждой инструкцией.

image
Основные функциональные блоки 8086

Одной из особенностей 8086 была предварительная выборка инструкций, которая улучшает производительность, извлекая инструкции из памяти до того, как они будут использованы. Это было реализовано блоком интерфейса шины в левом верхнем углу, который обращался к внешней памяти. Верхние регистры включают в себя сегментные регистры 8086, которые обеспечивают доступ к бОльшему адресному пространству, чем 64 килобайта, разрешенные 16-битным адресом. Для каждого доступа к памяти были добавлены сегментный регистр и смещение памяти, чтобы сформировать конечный адрес памяти. 8086 вместо АЛУ использовал отдельный сумматор для вычисления адресов памяти, что повышало его производительность. Верхние регистры также включают шесть байт буфера предварительной выборки команд и счётчик команд.
В левом нижнем углу микросхемы находится исполнительный блок, который выполняет операции с данными. Нижние регистры включают в себя регистры общего назначения и индексные регистры, такие как указатель стека. 16-разрядный АЛУ выполняет арифметические операции (сложение и вычитание), булевы логические операции и сдвиги. АЛУ не осуществляет умножение или деление; эти операции выполняются через последовательность сдвигов и сложения/вычитания, поэтому они относительно медленны.

Микрокод


Одной из самых сложных частей компьютерного проектирования является создание управляющей логики, которая диктует каждой части процессора что делать, чтобы выполнить определенную команду. В 1951 году Морису Уилксу пришла в голову идея микрокода: вместо построения управляющей логики из сложных схем логических элементов, управляющая логика может быть заменена специальным кодом микрокодом. Чтобы выполнить инструкцию, компьютер выполняет несколько простых микроинструкций, которые задаются микрокодом. С помощью микрокода построение управляющей логики процессора становится задачей программирования, а не задачей логического проектирования.

Микрокод бы обычным явлением в мэйнфреймах 60-х годов, но ранние микропроцессоры, такие как 6502 и Z-80, не использовали микрокод, поскольку не имели места для его хранения. Однако в более поздних процессорах, таких как 8086 и 68000, применяли микрокод, используя преимущество увеличения плотности чипов. Это позволило 8086 реализовать сложные инструкции (такие как умножение и копирование строк), без усложнения схемы. Недостатком было то, что микрокод занимал бОльшую часть площади кристалла: схема микрокода показана в правом нижнем углу фотографии матрицы.

image

На фотографии выше показана часть микрокода ПЗУ. Под микроскопом видно содержимое микрокода; биты могут быть считаны в зависимости от наличия или отсутствия транзисторов в каждой позиции. ПЗУ состоит из 512 микроинструкций, каждая шириной в 21 бит. Каждая микроинструкция определяет перемещение данных между источником и получателем. Она также определяет микрооперацию, которая может быть командой перехода, операцией АЛУ, операцией с памятью, вызовом подпрограммы микрокода или его учётом. Микрокод довольно эффективен; простые инструкции, такие как инкремент или декремент (увеличивающие или уменьшающие переменные соответственно), состоят из двух микроинструкций, в то время как более сложная команда копирования строки реализована при помощи восьми микроинструкций.

История


Путь к 8086-му был не таким прямым и спланированным как можно было ожидать. Его самым ранним предком был Datapoint 2200, настольный компьютер/терминал, выпущенный в июне 1970 года. Он появился до того, как термин микропроцессор вошёл в обиход и в его основе лежала 8-битная плата, полная отдельных интегральных ТТЛ-схем. Параллельно Datapoint вёл переговоры с компаниями Intel и Texas Instruments о замене платы едиными чипом, включающим в себя все компоненты. Копируя архитектуру Datapoint 2200, Texas Instruments создала процессор TMX 1795 (в 1971-м), а Intel процессор 8008 (в 1972-м).

image

Однако Datapoint отклонила эти процессоры, что стало роковым решением. Хотя TI не смогла найти покупателя на TMX 1795 и отказалась от него, Intel решила вывести 8008 на массовый рынок и следом за 8008 последовали 8080 и 8085.

image
Datapoint 2200

В 1975 году следующим крупным планом Intel стал процессор 8800, который должен был стать главной архитектурой компании в 80-х годах. Этот процессор был назван микромейнфреймом из-за его планируемой высокой производительности. Он должен был иметь совершенно новый набор инструкций, предназначенный для языков программирования высокого уровня, таких как Ада и поддерживать объектно-ориентированное программирование и сборку мусора на аппаратном уровне. К сожалению, а может и к счастью, этот чип был слишком амбициозным для того времени и сильно отставал от графика. В конечно итоге он был выпущен в 1981 году как iAPX 432 с разочаровывающими показателями и коммерчески провалился.

Поскольку iAPX 432 отставал от графика, Intel решила в 1975 году, что им нужен простой процессор-затычка для продажи, пока iAPX 432 не будет готов. Intel быстро разработала 16-разрядный 8086-ой, совместимый с 8080-м, выпустив его в 1978 году. У 8086 был большой успех из-за появления IBM PC в 1981-м. К 1983-му году IBM PC был самым продаваемым компьютером и стал стандартом для персональных компьютеров. В IBM PC использовался удешевленный вариант 8086 8088 с 8-битной шиной данных. Успех IBM PC сделал архитектуру 8086 стандартом в отрасли, который всё ещё сохраняется 42 года спустя.

IBM PC AT 1984-го года обновился до совместимого, но более мощного процессора 80286. В 1985 году с выходом 80386 линейка х86 перешла на 32-битные вычисления, а затем на 64-битные в 2003 году с выходом AMD64 и первых процессоров Athlon 64. Архитектура х86 до сих пор расширяется множеством дополнительных инструкций, таких как AVX-512, но даже несмотря на все эти изменения, х86 сохраняет совместимость с оригинальным 8086.

Транзисторы


Чип 8086 был построен с использованием транзисторов типа N-МОП. Транзистор можно рассматривать в качестве переключателя, управляющим током между двумя областями, называемыми стоком и истоком. Эти транзисторы построены путём легирования областей кремниевой подложки примесями для создания диффузионных областей, обладающих различными электрическими свойствами. Транзистор активируется затвором, изготовленным из особого типа кремния, называемого поликремнием, расположенным над кремниевой подложкой. Транзисторы соединены между собой металлическим слоем сверху, образуя цельную интегральную схему. Современные процессоры могут иметь более десятка металлических слоёв, в то время как 8086 имел всего один.

image
Структура МОП-транзистора

На фотографии кремния ниже крупным планом показаны некоторые транзисторы из АЛУ. Легированный проводящий кремний имеет тёмно-фиолетовый цвет. Белые полосы это те места, где поликремниевые линии пересекают кремний, образуя затвор транзистора. Можно насчитать 23 транзистора, образующих 7 вентилей. Транзисторы имеют сложную форму для более эффективного использования. Кроме того, транзисторы имеют разные размеры для обеспечения высокой мощности там, где это необходимо. Обратите внимание, что транзисторы, расположенные рядом друг с другом, могут совместно использовать сток или исток. Круги это соединения между слоем кремния и металлом, в то время как маленькие квадраты это соединения между слоем кремния и поликремнием.

image
Фото некоторых транзисторов 8086. На снимке были удалены слои металла и поликремния

Заключение


8086 был изначально задуман как процессор-затычка во время, пока Intel не выпустит свой флагманский чип iAPX 432, и был потомком процессора, построенного из платы, полной ТТЛ-микросхем. Но с этого скромного начала архитектура х86 неожиданно оказалась доминирующей в настольных и серверных вычислениях до настоящего времени.
Подробнее..

Вечное противостояние Intel и AMD. Или уже нет?

31.07.2020 12:10:12 | Автор: admin


Что важнее, больше гигагерц или новый тех-процесс?
Кто развивается, а кто стагнирует и на процессоре какой компании собрать топовую систему в 2020 году?
Постараемся ответить на эти вопросы в нашем сравнении двух процессоров-монстров компаний Intel и AMD.

Переосмысление процессоров HEDT, максимальные решения для требовательных пользователей




Весной 2019 года компания Intel презентовала свои новые процессоры, призванные вывести компанию на лидирующие позиции в нише HEDT процессоров. Ведущим процессором переосмысленной линейки и направления в целом стал Intel Core i9-10980XE.

Intel i9 10980XE начинен 18 ядрами и 36 потоками, имеет 24,75 24,75 MB кэш-памяти и может похвастаться тактовой частотой в 3,0 ГГц с поддержкой утилиты Turbo boost Max.

Самый мощный в линейке HEDT процессоров компании Intel 10980XE был призван вернуть лидирующие позиции компании и оставить AMD далеко позади, на деле же Intel пришлось адаптироваться под конкурента.

Ввиду снижения спроса на процессоры типа HEDT и появления аналогичной линейки у AMD по более низкой цене Intel пришлось умерить аппетиты и выпустить свой топовый процессор по рекомендованной розничной цене 979$ на момент его выхода.



Ключевыми особенностями данного процессора была возможность использования фирменной технологии Turbo Boost 3.0 разгоняющей ядра со стандартных 3.0 ГГц до 4.8 ГГц после использования утилиты. Intel на момент выход данного процессора позиционировала его как новый виток в сегменте HEDT благодаря совершенствованию 14 нанометрового тех-процесса, но не ожидала столь мощного ответа со стороны компании AMD.

Развитие или модернизация


Фанаты Intel достаточно прохладно восприняли появление нового процессора. После его переосмысления производство других моделей линейки было приостановлено из-за чего у желающих приобрести процессор HEDT типа именно от Intel попросту не было выбора. Если вы как покупатель хотели остаться верным компании Intel и получить ультимативное решение всё что вам оставалось это покупка процессора Core i9 10980XE.

Несмотря на урезание линейки и снижения цены под натиском более дешёвых процессоров от AMD у компании Intel получилось создать ультимативное решение по крайне мере ненадолго.

256 Гб оперативной памяти и исправление уязвимостей, что изменила компания Intel, чтобы вновь быть у руля


Дабы не быть голословной говоря об ультимативности своего продукта компания Intel внесла ряд изменений в обновленную версию топового процессора линейки Core X.



Так нам стала доступна спецификация памяти DDR4 на частоте в 2933 МГц, в случае установки пары DIMM на канал, Intel предлагает частоту в 2666 МГц. Intel Core i9 10980XE способен работать с 256 Гб оперативной памяти, что делает его замечательным решением для работы с большими объемами информации и рендером видео, характеризуя его многозадачность.

Не смотря на все позитивные стороны, в том числе и встроенную утилиту Intel Turbo Boost max 3.0 разогнать все ядра процессора у компании так и не вышло. Разница в частотах такова, что если, у условно первого ядра частота после Turbo boost max 3.0 будет равна 4.8 ГГц, то частота последнего ядра процессора даже после разгона будет равна 3.8 ГГц.

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

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

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

Последнее поколение процессоров компании Intel вызвало множество вопросов, казалось бы ультимативный продукт довольно быстро потерял свою уникальность из-за выпуска обновленной линейки процессоров HEDT типа от AMD. Топовый процессор Intel Core i9 10980 XE не выдержал конкуренции, чем лишь усугубил положение компании Intel.

У AMD же напротив, дела идут в гору, как бы прискорбно это не звучало, но кажется компания в скором времени займёт нишу Intel на рынке процессоров, а Intel имеет все шансы кануть в лету с приходом эры процессоров на ARM.

Ответ компании AMD, обновленная линейка и запредельная мощность


Компания AMD пошла другим путём презентуя в рамках выставки СЕS 2020 свою обновленную линейку процессоров Ryzen Threadripрer вызвавшую шок со стороны поклонников Intel.



Топовым процессором обновленной линейки стал Ryzen Threadripper 3990x, использующий 64 ядра и 128 потоков против топового решения Intel на 18 ядер и всего 36 потоков.

Новый процессор компании AMD, также является модификацией своего собрата уже вышедшего в свет, но компания AMD, в отличие от Intel, взяла за основу новой модели серверный процессор EPYC 7202 P.


В Threadripper 3990x уменьшили доступное количество каналов памяти, в связи с использованием данного процессора уже не в серверах, а в десктопных решениях, но компенсировали эту утрату увеличением тактовой частоты с базовых 2.9 ГГц до 4.3 ГГц в границах одного теплового пакета.

Компания AMD намерено не накладывает никаких ограничений на материнские платы, процессор Ryzen Threadripper 3990x будет работать на всех материнских платах с сокетом sTRX4. Компания так же заявляет, что для работы данного процессора подойдёт и обычная DDR4 память, с тактовой частотой 3200 МГц, лишь добавляя, что для корректной работы желательный объем оперативной памяти должен быть равен 1 Гб на 1 ядро процессора.


AMD позиционирует данный процессор как идеальное решение для контент-мейкеров. Скорость рендера системы с единичным ядром процессора Threadripper 3990x в полтора раза быстрее, нежели скорость рендера на конкурирующей системе с процессором Xeon platinum на 28 ядер.

Таким образом можно сказать, что, если вы занимаетесь созданием контента, рендером и монтажом процессор Ryzen Threadripper 3990x будет лучшим решением из ныне представленных на рынке десктопных процессоров.

От слов к делу, сравнение Intel Core i9 10980XE и AMD Ryzen Threadripper 3990X


В представленной ниже таблице мы сравнили два топовых процессора компаний AMD и Intel


Как мы видим, исходя из информации в таблице, эти процессоры расположены в совершенно разных ценовых категориях, стоимость топового продукта AMD почти в 4 раз дороже своего оппонента, но предлагает 7 нанометровый тех-процесс, 64 ядра против 18 у Intel и лучшую производительность в рендеринге.

Какую платформу выбрать для сборки мощного и многозадачного ПК


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

Если же собираемая вами система предназначена для монтажа длинных и сложных видео, создания контента с использованием 3D моделирования или захвата движения ваш выбор определенно Ryzen Threadripper 3990x. Этот процессор с лёгкостью справится с монтажом и рендером любой сложности благодаря своей многоядерности, а 7-ми нанометровый тех-процесс станет приятным дополнением. Если ваша сфера деятельности завязана на обработке больших объемов данных и рендере AMD станет для вас находкой.

Субъктивно


Что же касается общего мнения, то как мне кажется компания Intel теряет хватку. Несмотря на то, что AMD всегда была в роли компании догоняющей она понемногу начинает поглощать рынок процессоров, выпуская всё более доступные и мощные решения. Собирая систему не на один год и глядя на нынешнюю ситуацию на рынке процессоров я бы определено собирал такую систему на базе процессоров от AMD.

Кстати, по сведениям из нескольких источников, Intel и AMD схлестнулись ещё и на поле борьбы за заключение контракта с компанией TSMC, владеющей технологией производства микросхем по 7-нм технологическому процессу. Здесь на стороне Intel играет ещё и правительство США, ведь благодаря санкциям, наложенным на компанию Huawei, TSMC пришлось отказаться от работы с ней и потерять от 15 до 20% выручки.




На правах рекламы


Наша компания предлагает в аренду серверы с процессорами от Intel и AMD. В последнем случае это эпичные серверы! Виртуальные серверы с CPU AMD EPYC, частота ядра CPU до 3.4 GHz. Максимальная конфигурация позволит оторваться на полную 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Подробнее..

Перевод Зачем процессорам нужен кэш и чем отличаются уровни L1, L2, L3

19.08.2020 12:13:25 | Автор: admin


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

Наверно, он важен, иначе зачем бы его устанавливать? Но что же делает кэш, и для чего ему разные уровни? И что означает 12-канальный ассоциативный кэш (12-way set associative)?


Что такое кэш?


TL;DR: это небольшая, но очень быстрая память, расположенная в непосредственной близости от логических блоков центрального процессора.

Однако мы, разумеется, можем узнать о кэше гораздо больше

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

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

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


Великий Т'Фон хранения данных

Причина этого заключается в том, что современные процессоры невероятно быстры им требуется всего один тактовый цикл для сложения двух 64-битных целочисленных значений; если процессор работает с частотой 4 ГГЦ, то это составляет всего 0,00000000025 секунды, или четверть наносекунды.

В то же время, вращающемуся жёсткому диску требуются тысячи наносекунд только для нахождения данных на дисках, не говоря уже об их передаче, а твердотельным накопителям десятки или сотни наносекунд.

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


Увы, но это Великий А'Туин хранения данных

Именно поэтому нам нужна ещё одна система хранения данных, расположенная между процессором и основным накопителем. Она должна быть быстрее накопителя, способна одновременно управлять множеством операций передачи данных и находиться намного ближе к процессору.

Ну, у нас уже есть такая система, и она называется ОЗУ (RAM); она присутствует в каждом компьютере и выполняет именно эту задачу.

Почти все такие хранилища имеют тип DRAM (dynamic random access memory); они способны передавать данные гораздо быстрее, чем любой накопитель.


Однако, несмотря на свою огромную скорость, DRAM не способна хранить такие объёмы данных.

Одни из самых крупных чипов памяти DDR4, разработанных Micron, хранят 32 Гбит, или 4 ГБ данных; самые крупные жёсткие диски хранят в 4 000 раз больше.

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

DRAM могут изготавливаться в корпусе чипа (это называется встроенной (embedded) DRAM). Однако процессоры довольно малы, поэтому в них не удастся поместить много памяти.


10 МБ DRAM слева от графического процессора Xbox 360. Источник: CPU Grave Yard

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

DRAM требуется примерно 100 наносекунд для нахождения данных, но, по крайней мере, она способна передавать миллиарды битов в секунду. Похоже, нам нужна ещё одна ступень памяти, которую можно разместить между блоками процессора и DRAM.

На сцене появляется оставшаяся ступень: SRAM (static random access memory). DRAM использует микроскопические конденсаторы для хранения данных в виде электрического заряда, а SRAM для той же задачи применяет транзисторы, которые работают с той же скоростью, что и логические блоки процессора (примерно в 10 раз быстрее, чем DRAM).


Разумеется, у SRAM есть недостаток, и он опять-таки связан с пространством.

Память на основе транзисторов занимает гораздо больше места, чем DRAM: в том же размере, что чип DDR4 на 4 ГБ, можно получить меньше 100 МБ SRAM. Но поскольку она производится по тому же технологическому процессу, что и CPU, память SRAM можно встроить прямо внутрь процессора, максимально близко к логическим блокам.

С каждой дополнительной ступенью мы увеличивали скорость перемещаемых данных ценой хранимого объёма. Мы можем продолжить и добавлять новые ступени,, которые будут быстрее, но меньше.

И так мы добрались до более строгого определения понятия кэша: это набор блоков SRAM, расположенных внутри процессора; они обеспечивают максимальную занятость процессора благодаря передаче и сохранению данных с очень высокими скоростями. Вас устраивает такое определение? Отлично, потому что дальше всё будет намного сложнее!

Кэш: многоуровневая парковка


Как мы говорили выше, кэш необходим, потому что у нас нет волшебной системы хранения, способной справиться с потреблением данных логических блоков процессора. Современные центральные и графические процессоры содержат множество блоков SRAM, внутри упорядоченных в иерархию последовательность кэшей, имеющих следующую структуру:


На приведённом выше изображении процессор (CPU) обозначен прямоугольником с пунктирной границей. Слева расположены ALU (arithmetic logic units, арифметико-логические устройства); это структуры, выполняющие математические операции. Хотя строго говоря, они не являются кэшем, ближайший к ALU уровень памяти это регистры (они упорядочены в регистровый файл).

Каждый из них хранит одно число, например, 64-битное целое число; само значение может быть элементом каких-нибудь данных, кодом определённой инструкции или адресом памяти каких-то других данных.

Регистровый файл в десктопных процессорах довольно мал, например, в каждом из ядер Intel Core i9-9900K есть по два банка таких файлов, а тот, который предназначен для целых чисел, содержит всего 180 64-битных целых чисел. Другой регистровый файл для векторов (небольших массивов чисел) содержит 168 256-битных элементов. То есть общий регистровый файл каждого ядра чуть меньше 7 КБ. Для сравнения: регистровый файл потоковых мультипроцессоров (так в GPU называются аналоги ядер CPU) Nvidia GeForce RTX 2080 Ti имеет размер 256 КБ.

Регистры, как и кэш, являются SRAM, но их скорость не превышает скорость обслуживаемых ими ALU; они передают данные за один тактовый цикл. Но они не предназначены для хранения больших объёмов данных (только одного элемента), поэтому рядом с ними всегда есть более крупные блоки памяти: это кэш первого уровня (Level 1).


Одно ядро процессора Intel Skylake. Источник: Wikichip

На изображении выше представлен увеличенный снимок одного из ядер десктопного процессора Intel Skylake.

ALU и регистровые файлы расположены слева и обведены зелёной рамкой. В верхней части фотографии белым обозначен кэш данных первого уровня (Level 1 Data cache). Он не содержит много информации, всего 32 КБ, но как и регистры, он расположен очень близко к логическим блокам и работает на одной скорости с ними.

Ещё одним белым прямоугольником справа показан кэш инструкций первого уровня (Level 1 Instruction cache), тоже имеющий размер 32 КБ. Как понятно из названия, в нём хранятся различные команды, готовые к разбиению на более мелкие микрооперации (обычно обозначаемые ops), которые должны выполнять ALU. Для них тоже существует кэш, который можно классифицировать как Level 0, потому что он меньше (содержит всего 1 500 операций) и ближе, чем кэши L1.

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

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


Кэш L2 процессора Skylake: 256 КБ SRAM

Но если бы это был единственный кэш внутри процессора, то его производительность наткнулась бы на неожиданное препятствие. Именно поэтому в ядра встраивается ещ один уровень памяти: кэш Level 2. Это обобщённый блок хранения, содержащий инструкции и данные.

Он всегда довольно крупнее, чем Level 1: в процессорах AMD Zen 2 он занимает до 512 КБ, чтобы кэши нижнего уровня обеспечивались достаточным объёмом данных. Однако большой размер требует жертв для поиска и передачи данных из этого кэша требуется примерно в два раза больше времени по сравнению с Level 1.

Во времена первого Intel Pentium кэш Level 2 был отдельным чипом, или устанавливаемым на отдельной небольшой плате (как ОЗУ DIMM), или встроенным в основную материнскую плату. Постепенно он перебрался в корпус самого процессора, и, наконец, полностью интегрировался в кристалл чипа; это произошло в эпоху таких процессоров, как Pentium III и AMD K6-III.

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


Чип Intel Kaby Lake. Источник: Wikichip

На этом изображении чипа Intel Kaby Lake в левой части показаны четыре ядра (интегрированный GPU занимает почти половину кристалла и находится справа). Каждое ядро имеет свой личный набор кэшей Level 1 и 2 (выделены белыми и жёлтым прямоугольниками), но у них также есть и третий комплект блоков SRAM.

Кэш третьего уровня (Level 3), хоть и расположен непосредственно рядом с одним ядром, является полностью общим для всех остальных каждое ядро свободно может получать доступ к содержимому кэша L3 другого ядра. Он намного больше (от 2 до 32 МБ), но и намного медленнее, в среднем более 30 циклов, особенно когда ядру нужно использовать данные, находящиеся в блоке кэша, расположенного на большом расстоянии.

Ниже показано одно ядро архитектуры AMD Zen 2: кэши Level 1 данных и инструкций по 32 КБ (в белых прямоугольниках), кэш Level 2 на 512 КБ (в жёлтых прямоугольниках) и огромный блок кэша L3 на 4 МБ (в красном прямоугольнике).


Увеличенный снимок одного ядра процессора AMD Zen 2. Источник: Fritzchens Fritz

Но постойте: как 32 КБ могут занимать больше физического пространства чем 512 КБ? Если Level 1 хранит так мало данных, почему он непропорционально велик по сравнению с кэшами L2 и L3?

Не только числа


Кэш повышает производительность, ускоряя передачу данных в логические блоки и храня поблизости копию часто используемых инструкций и данных. Хранящаяся в кэше информация разделена на две части: сами данные и место, где они изначально располагаются в системной памяти/накопителе такой адрес называется тег кэша (cache tag).

Когда процессор выполняет операцию, которой нужно считать или записать данные из/в память, то он начинает с проверки тегов в кэше Level 1. Если нужные данные там есть (произошло кэш-попадание (cache hit)), то доступ к этим данным выполняется почти сразу же. Промах кэша (cache miss) возникает, если требуемый тег не найден на самом нижнем уровне кэша.

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

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


Для изучения информации кэша в процессоре вашего компьютера можно использовать бесплатные программы, например CPU-Z. Но что означает вся эта информация? Важным элементом является метка set associative (множественно-ассоциативный) она указывает на правила, применяемые для копирования блоков данных из системной памяти в кэш.

Представленная выше информация кэша относится к Intel Core i7-9700K. Каждый из его кэшей Level 1 разделён на 64 небольших блока, называемые sets, и каждый из этих блоков ещё разбит на строки кэша (cache lines) (размером 64 байта). Set associative означает, что блок данных из системы привязывается к строкам кэша в одном конкретном сете, и не может свободно привязываться к какому-то другому месту.

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


Инклюзивный кэш L1+L2, victim cache L3, политики write-back, есть даже ECC. Источник: Fritzchens Fritz

Ещё один аспект сложности кэша связан с тем, как хранятся данные между разными уровнями. Правила задаются в inclusion policy (политике инклюзивности). Например, процессоры Intel Core имеют полностью инклюзивные кэши L1+L3. Это означает, что одни данные в Level 1, например, могут присутствовать в Level 3. Может показаться, что это пустая трата ценного пространства кэша, однако преимущество заключается в том, что если процессор совершает промах при поиске тега в нижнем уровне, ему не потребуется обыскивать верхний уровень для нахождения данных.

В тех же самых процессорах кэш L2 неинклюзивен: все хранящиеся там данные не копируются ни на какой другой уровень. Это экономит место, но приводит к тому, что системе памяти чипа нужно искать ненайденный тег в L3 (который всегда намного больше). Victim caches (кэши-жертвы) имеют похожий принцип, но они используются для хранения информации, переносимой с более низких уровней. Например, процессоры AMD Zen 2 используют victim cache L3, который просто хранит данные из L2.

Существуют и другие политики для кэша, например, при которых данные записываются и в кэш, и основную системную память. Они называются политиками записи (write policies); большинство современных процессоров использует кэши write-back это означает, что когда данные записываются на уровень кэшей, происходит задержка перед записью их копии в системную память. Чаще всего эта пауза длится в течение того времени, пока данные остаются в кэше ОЗУ получает эту информацию только при выталкивании из кэша.


Графический процессор Nvidia GA100, имеющий 20 МБ кэша L1 и 40 МБ кэша L2

Для проектировщиков процессоров выбор объёма, типа и политики кэшей является вопросом уравновешивания стремления к повышению мощности процессора с увеличением его сложности и занимаемым чипом пространством. Если бы можно было создать 1000-канальные ассоциативные кэши Level 1 на 20 МБ такими, чтобы они при этом не занимали площадь Манхэттена (и не потребляли столько же энергии), то у нас у всех бы были компьютеры с такими чипами!

Самый нижний уровень кэшей в современных процессорах за последнее десятилетие практически не изменился. Однако кэш Level 3 продолжает расти в размерах. Если бы десять лет назад у вас было 999 долларов на Intel i7-980X, то вы могли бы получить кэш размером 12 МБ. Сегодня за половину этой суммы можно приобрести 64 МБ.

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

Был ли у вас компьютер с кэшем L2 на материнской плате? Как насчёт слотовых Pentium II и Celeron (например, 300a) на дочерних платах? Помните свой первый процессор с общим L3?



На правах рекламы


Наша компания предлагает в аренду серверы с процессорами от Intel и AMD. В последнем случае это эпичные серверы! VDS с AMD EPYC, частота ядра CPU до 3.4 GHz. Максимальная конфигурация 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.

Подробнее..

Проектирование процессорного устройства Койяанискаци шаг за шагом

11.01.2021 08:05:18 | Автор: admin
В отличии от аналогичных материалов по проектированию процессора с применением справочного материала книги Код Чарльза Петцольда и придерживанием некоторых правил, здесь будет изложена позиция проектировщика лишь на собственном опыте. Основной акцент будет направлен на построение автомата программного управления с машинным кодом, который представляется не сухим набором нулей или единиц, но читаем аббревиатурами двухсимвольных слов шестнадцатеричной системы счисления. Здесь машинный код будет придерживаться парадигмы псевдокода, который довольно легко понимаем подготовленным разработчиком и легко исполняем на уровне железа малой ТТЛ-номенклатурой данным целевым проектируемым процессорным устройством.

Парадигма

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

Дешифратор Команд

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

Сначала необходимо в Logisim сделать набросок дешифратора Кода-Койяанискаци, использовав наиболее доступные логические элементы из номенклатуры выпускаемой серии ТТЛ, чтобы обеспечить лёгкую сборку дешифратора на реальных микросхемах.
image
Здесь придумываем дешифратору УсловноеГрафическоеОбозначение, что необходимо для обеспечения компактности и наглядности целой схемы автомата в перспективе, а также для проверки корректности работы дешифрации всех 256 кодов инструкций.
image

Регистры Безвременных Префиксов

Когда визуальное тестирование работоспособности дешифратора прошло нормально и без видимых сбоев, пришло время подключить основные регистры хранения индексов активных РОН, срабатывающих по командам группы REG как архитектурные префиксы.
image
Для обеспечения хранения векторов маршрутизации данных инструкциями АЛУ и ОЗУ, добавляется ещё один регистр и два связанных мультиплексора, с помощью которых можно связывать произвольные регистры любых групп в качестве операндов команд.
image
Сами по себе эти регистры не предназначены для хранения результатов вычислений и выполняют своего рода роль указателей на нужные регистры, чтобы обеспечить в программе управляемое взаимодействие между всеми доступными РОН и/или памятью.

Архитектурное Состояние

Обеспечение нормального программного взаимодействия всех регистров нуждается в наличии двухпортового РегистровогоФайла, отсутствующего в составе библиотек у Logisim, вынуждает искать другие более-менее затратные альтернативные решения. Классический Койяанискаци имеет довольно сложный РегистровыйФайл, который тут не рассматривается в качестве наглядного примера и требуется разработка нового решения по организации многотактового РегистровогоФайла с медленным доступом. Так как схема получилась однотактовой, организовать РегистровыйФайл в ОЗУ тут достаточно сложно и появляется необходимость построения многотактовой схемы со множеством специальных циклов, сменяющих друг друга в строго заданном порядке.
Алгоритмическое выражение счётчика циклов может описываться как m&=m-1 с последовательным выключением всех активных битов архитектурного состояния, где в определённый момент МашинногоЦикла активируются только ключевые узлы схемы. Максимально развёрнутый прототип СчётчикаМашинныхЦиклов представить можно на эскизе подобной схемы, которая достаточно сложна к пониманию логики её работы.
image
Наиболее оптимальным и универсальным вариантом может служить и подобный эскиз:
image
И для использования в схеме УсловноеГрафическоеОбозначение может быть таким:
image

С помощью вентилей 3-ИЛИ-логики теперь можно сигнал каждой из команд перевести в битовую маску нужных циклов, необходимых для корректного исполнения команды, на весь период выполнения которой счётчик команд будет временно приостановлен.
image

Заключение

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

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

Перевод Что общего в работе заводского конвейера и микропроцессора?

26.03.2021 12:06:50 | Автор: admin

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

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

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

Мы рассмотрим следующие понятия:

  • Тактовая частота. Как первые процессоры становились быстрее после увеличения тактовой частоты.
  • Параллельное выполнение. Если нельзя выполнить инструкции быстрее, то как насчет параллельного выполнения?
  • Конвейеризация. Предназначена для случаев, когда нельзя увеличить тактовую частоту и количество параллельно выполняющихся задач.

Увеличение тактовой частоты


Компьютер выполняет все через фиксированные промежутки времени, называемые тактами. За один такт процессор выполняет минимальную операцию. Это похоже на периодическое движение шестеренок в механических часах. Между тактами ничего не происходит.

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

Проще всего объяснить на примере склада и робота. Наш робот подбирает контейнеры с одной стороны склада и доставляет на противоположную.


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


Робот занят перемещением оранжевого контейнера до конца линии.

Робота нельзя ускорять до бесконечности, как и электроны. Если мы сделаем один такт слишком коротким, то робот не успеет доставить контейнер и вернуться за выделенное время.

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

Преимущества маленьких микропроцессоров


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

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


Перемещение контейнеров на меньшее расстояние происходит быстрее.

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

Параллельное выполнение


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

Векторная обработка


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


Перемещение нескольких контейнеров одновременно соответствует выполнению одной операции над несколькими фрагментами данных. Именно это и называется векторным выполнением.

Для дополнительного изучения: RISC-V Vector Instructions vs ARM and x86 SIMD.

Несколько микропроцессорных ядер


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


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

Конвейеризация


Наконец, мы добрались до конвейеризации. Что если мы не можем сделать процессор меньше? В параллели со складом это значит, что мы не можем уменьшить расстояние до места, куда контейнер (данные) должен быть доставлен. Мы говорим о перемещении контейнера как об инструкции.

Расстояние, на которое нам нужно перенести контейнер, сравнимо с расстоянием, которое должны пройти электроны через транзисторы. Миниатюризация в этом плане помогает. Но все зависит от сложности инструкции. Чем сложнее инструкция, тем больше транзисторов стоит на пути электронов.

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


Перемещение контейнера разделено на три шага. Каждый робот переносит контейнер только на треть пути.

Такт 1


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


Два робота простаивают первое время, пока конвейер заполняется. Первый робот перемещает оранжевый контейнер на одну треть пути. Это первый такт.

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


Первый такт закончился. Второй робот не готов взять оранжевый контейнер и передвинуть его на вторую треть пути.

Такт 2


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


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

Когда второй такт завершен, оранжевый контейнер лежит перед третьим роботом. Второй робот может подобрать желтый контейнер. А третий робот подберет новый зеленый контейнер.


Второй такт завершен. Весь конвейер заполнен. В следующем такте все три робота будут работать параллельно.

Такт 3


На третьем такте все роботы двигаются синхронно, перемещая контейнеры на шаг вперед. Стоит немного поразмыслить о том, что здесь происходит. Время, необходимое для перемещения контейнера от начала до конца, практически не изменилось. Представьте, что одному роботу на перемещение от начала до конца требуется 30 секунд. Теперь перемещение контейнера занимает 10 секунд, но нужно три шага, а значит, общее время осталось неизменным.


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

Итак, что мы здесь получили? Преимущество заключается в том, что каждые 10 секунд мы доставляем один контейнер. Мы сокращаем время, которое контейнер проводит в ожидании робота.

Преимущества и проблемы конвейеризации


Мы можем описать это двумя важными концепциями.

  • Задержка время, затрачиваемое на выполнение действия до его завершения. Это может быть, например, время, необходимое для получения сетевого пакета после того, как вы впервые его запросили. В нашем случае мы можем рассматривать это как время, затрачиваемое на полное выполнение инструкции после начала выполнения.
  • Пропускная способность это то, сколько данных, инструкций или других вещей мы можем обрабатывать за каждую единицу времени. На складе это будет количество посылок, доставленных за минуту. Для микропроцессора это число выполняемых инструкций за такт.

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

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

RISC и CISC


Эта причина, по которой ранние процессоры RISC, такие как MIPS и SPARC, используемые на рабочих станциях Unix в 1990-х годах, были быстрее, чем их аналоги на x86. CISC-процессоры не учитывали конвейеризацию при проектировании, в отличие от RISC. Инструкции RISC разделены на четыре логических шага. Это позволяет построить конвейер на четыре шага. Получается, RISC-инструкция требует четыре такта на исполнение, но каждый такт завершается выполнением одной инструкции.

Дополнительное чтение: What Does RISC and CISC Mean in 2020?

Intel поняла, что нужно найти способ конвейеризации сложных инструкций переменной длины. Так были созданы микрооперации. Они разбивали сложные инструкции на несколько микроопераций, которые были достаточно простыми, чтобы работать в конвейере.

Дополнительное чтение: What the Heck is a Micro-Operation?

Дальнейшее развитие конвейеризации


Intel начала разделять свои инструкции на все меньшие части, что позволило компании резко увеличить тактовую частоту процессоров. Так, например, Pentium 4 имел зверскую частоту. Это сделало конвейеры Intel очень длинными.

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

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

Таким образом, нужно очистить конвейер и ждать еще сто тактов, прежде чем другие инструкции заполнят конвейер до конца. Это большой удар по производительности.

Вот почему у Apple были слайды со сравнением RISC-чипов PowerPC, которые они использовали до 2006 года, с процессорами Intel Pentium. Процессор Pentium имел более высокую тактовую частоту, но и гораздо более длинный конвейер. Тогда люди считали тактовую частоту эквивалентом производительности. Как вы видим, эти термины связаны, но это не совсем одно и то же.

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

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

Но это, вероятно, будет темой следующей технической статьи.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru