Pull to refresh

Унификация «железа»: эволюционный путь к MegaSoC

Reading time 6 min
Views 2.6K

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

Мозг - SoC?!
Упрощённая схема отделов мозга
Упрощённая схема отделов мозга

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

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

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

Классическая вычислительная система

Практически все вычислительные машины в ретроспективе последнего полувека были устроены по принципу CPU+RAM+ROM (+GPU, чтобы "Hello world!" смог прочитать даже кожаный мешок своим визуальным восприятием).

Принципиальная схема классического компьютера
Принципиальная схема классического компьютера
Микро-ликбез для самых далёких от железа.
  • CPU (Central Processing Unit) - он же ЦП (Центральный Процессор)

    Отвечает непосредственно за исполнение микрокода и генерацию запросов. Совершенно не должен ничего помнить.

  • RAM (Random Access Memory) - она же ОЗУ (Оперативное Запоминающее Устройство)

    Быстрая, но кратковременная память, как раз необходимая чтобы ворочить [только текущие] "мысли" Центрального Процессора. Не должна уметь ничего считать и хранить данные после завершения обращения.

  • ROM (Read Only Memory) - она же ПЗУ (Постоянное Запоминающее Устройство)

    Исторически долгая в обращении память, но умеющая в самом прямом смысле сохранять необходимую информацию на [условно] любой срок.

  • GPU (Graphic Processing Unit) - он же ГП (Графический Процессор)

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

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

Эволюция CPU в CPU+RAM+GPU

Первым гибридным чипом стал непосредственно CPU, приобретя внутреннюю кэш-память, буквально исполняющую роль микро-RAM SoC. По аналогии - это как выучить таблицу умножения и "запоминать" промежуточные вычисления без обращения к дополнительным ресурсам. Кэш память безупречно доказала свою эффективность и давно выросла с кб до десятков Мб, попутно обрастая новыми слоями (сначала появился L1, и только потом L2 и тем более L3). И именно благодаря успеху такой интеграции, инженеры стали активно "сближать" CPU с дискретной RAM (расширяя и ускоряя шину обращения к памяти).

ZEN3 архитектура
ZEN3 архитектура

Отличным примером интеграции дискретной RAM на сегодняшний день является микро-архитектура ZEN3, демонстрирующая зависимость производительности от частоты памяти аж до ~50%, что ещё лет 5 назад было на уровне единиц % и не представляло никакого практического значения.

И, конечно, говоря о гибридизации CPU - нельзя не упомянуть о внедрении GPU-ядер. Сегодня этим уже никого не удивить, но ещё 8 лет тому назад, когда идея реализовать простейшие графические команды на единой подложке с CPU только-только начала обретать воплощение (к слову, заместив простейшие GPU, распаянные в качестве южного моста на MB) - это был настоящий прорыв!

Таким образом, дискретный CPU превратился в SoC: CPU+RAM+GPU, и этот успех предвосхитил многочисленные трансформации, произошедшие и с остальными прото-узлами.

Эволюция GPU в GPU+RAM+ROM

Параллельно развитию CPU - развивались и дискректные GPU. Имея исторически альтернативные задачи (в виде многочисленных идентичных вычислений) GPU быстро развился до модуля с собственной RAM.

Пока общая производительность CPU слабо зависела от эффективности RAM (о чём упомянуто выше), а GPU изначально полагался именно на скорость однотипных вычислений, модули GDDR (для работы с GPU) значительно вырвались вперёд по частотам. Теперь же, когда и CPU стали RAM-dependent, анонсированные чипы DDR5 значительно сравнялись по своим характеристикам к GDDR5, но об этом чуть позже.

Radeon PRO SSG: 16GB HBM2, 484 GBps, 2TB SSG >_<
Radeon PRO SSG: 16GB HBM2, 484 GBps, 2TB SSG >_<

Но на одном лишь добавлении RAM - развитие GPU отнюдь не остановилось. Когда к одному адаптеру подключено до 6 мониторов 4K, и вы ворочаете множество слоёв в рендере или CAD/CAE, количество необходимой "оперативной" памяти внезапно устремляется к сотне Гб и выше. Именно это побудило разместить на модуле GPU ещё и собственную выделенную ROM! Разумеется, речь о твердотельной памяти SSD (которую в след за GDDR назвали SSG), однако объём в 2TB таки вызывает некоторый трепет даже сегодня, спустя 4 года.

Итого, дискретный GPU превратился в [почти самодостаточный] модуль GPU+RAM+ROM.

Эволюция ROM в ROM+RAM

Хронологически - следующей под нож эволюции попала память ROM. В попытке увеличить скорость r/w-операций HDD, как мастодонты ROM, постепенно наращивали физическую скорость вращения диска. Однако, достигнув ~10..15krpm столкнулись с существенным снижением надёжности и увеличением нагрева, что послужило толчком к интегрирации собственной подсистемы RAM. Сейчас кэшем в 256Mb на HDD уже не удивить, а франкенштейны SSHD, ставшие пересменком эпох, и вовсе имели гигабайты. Собственно, SSD в HDD выполняли роль RAM, но, со стремительным снижением стоимости, ROM быстро стали полностью состоять из SSD.

HDD > HDD+SSD(RAM) > SSD
HDD > HDD+SSD(RAM) > SSD

Совершенно логично, что спустя непродолжительное время - растущие задачи потребовали RAM уже в SSD-ROM! Таким образом, в современных PCI-E x3 NVME SSD полноценный DRAM-кэш уже стал достаточно распространённой вещью, существенно ускоряя r/w CPU-обращения к и без того внушительным параметрам.

Где нужны такие скорости ROM?

В это сложно поверить, но в HPC (High Power Computing) для CAM/CAE задач уже более 5 лет даже NVMe SSD являются самым узким местом. Например, типовой небольшой гидродинамический расчёт в Ansys весит около 200-300Gb, и работа с ним - тяжелейшее испытание именно для ROM-систем.

Именно так HDD ROM превратились в SSD+RAM, а на рынке уже вовсю развиваются PSI Gen4 SSD.

Эволюция RAM в RAM(ROM)+CPU

И, в качестве апогея, нельзя не рассмотреть, во что же превратилась RAM. В целом, по ряду объективных причин (описано выше), RAM для CPU развивалась достаточно неспешно. Однако, существенное ускорение шины памяти, а так же ежегодный рост трафика данных порядка 150%/y таки привели к двум очень значимым изменениям RAM.

Во-первых, применение PIM (processing-in-memory) - а это в самом буквальном смысле embedded CPU - обещает нам почти трёхкратный прирост производительности.

Samsung DDR с PIM-модулями
Samsung DDR с PIM-модулями

А во-вторых, DDR5-RAM будет иметь до 0.5Tb памяти на ОДНОЙ планке, коего объёма у многих пользователей нет даже в виде ROM. RAM-disk уже достаточно распространённое явление, и радикальное увеличение/ускорение RAM в купе с развитием облачных сервисов может привести к принципиальному пересмотру архитектуры вычислительных систем.

Таким образом, RAM превратилась в RAM+CPU с мощным заделом на роль моно-сессионного ROM.

Итого, MegaSoC

На сегодняшний день, строго-дискретные CPU, GPU, ROM и RAM превратились в сильно перемешанные многофункциональные отделы. Вот только задумайтесь - CPU получили кэш, чтобы забрать часть расчётов у RAM, а RAM получило собственный CPU, чтобы теперь уже забрать часть расчётов у CPU; ROM получило собственную RAM, а GPU вообще стал мини-компьютером:

  • CPU+RAM+GPU - всё ещё скорее вычислитель, но и в графику немного может, и запомнить что-то несложное

  • GPU+RAM+ROM - тоже всё ещё про графику, но рабочие проекты может целиком держать в себе

  • SSD+RAM - вроде пока ещё ROM, но граница с RAM стремительно стирается

  • RAM(ROM)+CPU - более чем RAM, да ещё и посчитать немного может, и удержать огромный массив на активную сессию

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

Очевидно, нас ждёт распространение нишевых решений: без RAM (SSD-RAM only), без ROM (Tb RAM-disk thin-client) и прочие комбинации, которые ещё год назад казались невозможными, или как минимум дикими.

Ну а что будет ещё дальше, это полностью в наших руках ;)

Список использованных источников
Tags:
Hubs:
+6
Comments 7
Comments Comments 7

Articles