ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
823045
Evgeny_CD, Архитектор (11.03.2018 16:40, просмотров: 4831)
[Zynq® UltraScale+™ MPSoC CG] (2 х Cortex-A53 1.3GHz) + (2 х Cortex-R5 533MHz Lock-step or independent operation) -> очередная веха в развитии embedded революции. http://caxapa.ru/823041.html
Невероятно грамотная структура чипа. А именно - заточенность под пакетную обработку быстрого ядра, и все для пакетного обмена как по локальной шине, так и с внешним миром. А самом минимуме конфигрурации, чип содержит 4 6Gb\s трансивера, которые могут быть поделены между: • PCI Express — Compliant with PCIe® 2.1 base specification o Root complex and End Point configurations o x1, x2, and x4 at Gen1 or Gen2 rates • SATA Host o 1.5, 3.0, and 6.0Gb/s data rates as defined by SATA Specification, revision 3.1 o Supports up to two channels • DisplayPort Controller o Up to 5.4Gb/s rate o Up to two TX lanes (no RX support) • Four 10/100/1000 tri-speed Ethernet MAC peripherals with IEEE Std 802.3 and IEEE Std 1588 revision 2.0 support o Scatter-gather DMA capability o Recognition of IEEE Std 1588 rev.2 PTP frames o GMII, RGMII, and SGMII interfaces o Jumbo frames • Two USB 3.0/2.0 Device, Host, or OTG peripherals, each supporting up to 12 endpoints o USB 3.0/2.0 compliant device IP core o Super-speed, high- speed, full-speed, and low-speed modes o Intel XHCI- compliant USB host Т.е. снаружи есть что-то, что обенивается только пакетами, и эти пакеты быстро и удобно попадают в память к быстрым процессорам. Особенно обращаю внимание на Ethernet с интерфейсом SGMII - это просто диф. линия с кодированием 8b/10b, с очень простым набором команд. Если реализовывать периферийных контроллер только под дуплекс и одну скорость, то это будет самый простой периферийный контроллер. И да, в этом случае назначение полей Ethernet кадра - условность, кроме длины и CRC-32. SATA полен тем, что я могу взять SSD и сделать из него контроллер блочной памяти страницами по 4к. И не городить одну из распространенных файловых систем, а иметь просто массив блоков по 4к. Как я из буду использовать - это отдельный вопрос, но изначально поднять такой вариант - умеренно сложная задача. Вишенка на торте - 4 процессорных ядра. Например, один Cortex-R5 контролирует время, расписание исполнения и переключение задач. Из локальной памяти 128K TCM Второй командует блочным обменом с периферией. Также следит за обработкой данных и подтаскивает данные в L2 "большого процессора". Два основных ядра занимаются только обработкой. Они работают только с памятью, они ничего не ждут. Cortex-R5 можно в Lock-step, тогда будет 256к TCM, при грамотном программизме успеет описанное мною выше в варианте двух ядер. Прелесть в том, что можно развязать высокоскосростную обраотку, в том числе в DP, и Linux. Рассматриваемы чипы - это только высокоскоростная обработка данных. Никаких GUI (отличных от простейших LCD), навороченных файловых систем и IP (LwIP не в счет). Зато компактный целевой код, без 10м LOC непонятно на что. Еще очень важно отметить возможности глубокой оптимизации. 256к RAM, которая есть у "быстрых ядер" - там можно уместить всю управляющую информацию и небольшие куски кода, фактически, специализированную ОС, чтобы время реации было минимальным (это ОЗУ всега доступно процессору независимо от статуска кеша). Заметим, что количество потоков, если запускать только целевые приложения, будет совсем не 100500. И данных для управления этими потоками надо мало. В части безопасности - лунуховая монструозность лишняя. У нас нет произвольного набора задач, у нас набор задач определен на этапе сборки проектта. Статическая линковка и проч. Использовать MMU никто не мешает, и защищаться от ошибок памяти - Linux для этого не нужен. В целом, революционный чип.