Компания Imagination Technologies опубликовала (https://lkml.org/lkml/2012/12/5/215) в списке рассылки ядра Linux набор из 44 патчей с реализацией поддержки работы ядра Linux на 32-разряных процессорах Meta ATP (Meta 1) и HTP (Meta 2) (http://www.imgtec.com/meta/meta-technology.asp), примечательных поддержкой (http://www.imgtec.com/downloads.asp) дополнительного набора DSP-инструкций и обеспечением аппаратной многопоточности (виртуальных процессоров). Представленный набор патчей позиционируется как готовый вариант, пригодный для включения в состав ядра Linux (месяц назад была опубликована первая версия патчей, которая позиционировалась как начальный прототип для сбора замечаний и отзывов).
Процессоры Meta нацелены на использование во встраиваемых системах, работа которых требует высокопроизводительной обработки сигналов в режиме реального времени, например, цифровых радиоприёмниках. Поддержка аппаратной многопоточности позволяет одновременно выполнять разные операционные системы на разных аппаратных нитях. Например, в цифровых радиоприёмниках для декодирования DAB-потоков (Digital Audio Broadcasting) и обработки звука может использоваться RTOS-система MeOS, которой выделены три аппаратных нити. Параллельно, на четвёртой нити может выполняться Linux, который будет обеспечивать работу пользовательского интерфейса, сетевого доступа и вспомогательных функций.В случае использования процессоров Meta HTP, Linux может работать в режиме SMP, с выделением одновременно нескольких аппаратных нитей. При этом в отличие от традиционных многоядерных систем, переключение контекста между нитями производится в непрерывном цикле, исключая простои процессора (в каждом цикле нить использует все доступные ресурсы CPU, в то время как при высокой нагрузке на одно ядро в многоядерных системах остальные ядра могут простаивать). Каждая нить может быть настроена для выполнения обычных вычислений или работать как DSP с предоставлением доступа к дополнительным регистрам и ресурсам ALU (Arithmetic logic unit), позволяющим выполнять расширенные алгоритмы по обработке сигналов, применяемые в таких областях, как аудиокодеки и модемы. Кроме того, допускается гибкое управление выделяемых каждой нити ресурсов.
<center><a href="http://www.imgtec.com/images/blockdiagrams/meta/large/Meta_A... src="http://www.opennet.me/opennews/pics_base/0_1354776221.gif" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border=0></a></center>
URL: https://lkml.org/lkml/2012/12/5/215
Новость: http://www.opennet.me/opennews/art.shtml?num=35520
Какая прелесть!
> 2-разряных процессорах Meta ATP (Meta 1) и HTP (Meta 2), примечательных
> поддержкой дополнительного набора DSP-инструкций и обеспечением аппаратной
> многопоточности (виртуальных процессоров)Какой-то ремейк Hyperthreading с плюшками
> Компания Imagination Technologies опубликовала в списке рассылки ядра Linux
> набор из 44 патчей
> Memory Management Unit Optimised for Linuxвот что Android животворящий и отец его Google творит, а вы все "ред хет, ред хет!"
> Какой-то ремейк Hyperthreading с плюшкамиСкорее аппаратный тасксвичер.
> вот что Android животворящий
Загвоздка только в том что под эту платформу нет никакого андроида :)
> Скорее аппаратный тасксвичерСколько бы плюшек там ни добавили - это всего лишь развитие идей Intel HT Technology
> Threads share the processor’s core resources such as
> register execution units (ALUs, multiplier, accumulator
> etc) and coprocessor ports, but have some discrete
> resources such as read/write ports.
> Although the processing resources are shared, to
> accommodate multiple thread contexts, each execution unit
> holds a local register state, an execution pipeline and a
> program counter (PC) for each thread. A separate control
> unit holds mode bits and control registers for each thread.
Не особо похоже. HT - это прежде всего фэйковые ядра для более полной прогрузки исполняющих элементов за декодером, за счет чего и наступает некий профит. Для этого декларируется больше ядер, дабы спровоцировать софт на генерацию добавочных потоков команд, которые можно будет пытаться выполнить параллельно. А тут утверждается что все выполняющие элементы отдаются именно 1 потоку. По поводу чего и не похоже на HT. Просто железячный тасксвичер.
> А тут утверждается что все выполняющие элементы отдаются именно 1 потоку.Где это тут ?
> Each thread can use different processor resources at the
> same time, or one thread can use all of the processor’s
> resources
> or one thread can use all of the processor’s resourcesВот здесь. В гипертрединге так в принципе низзя - увеличение производительности по мере увеличения числа тредов прозрачно намекает на то что 1 тред не юзает все ресурсы.
> Вот здесьНо там написано совсем другое - не надо пол предложения выкидывать. Отдавать все ресурсы на поток - это вообще идиотская затея, в чем тогда профит расшаривания ресурсов процессора ? а это здесь основное - более эффективная работа процессора, а при необходимости все что нужно отдается приоритетному потоку - в этом случае он не отличается от обычного процессора.
> Но там написано совсем другое - не надо пол предложения выкидывать. Отдавать
> все ресурсы на поток - это вообще идиотская затея,Напротив. Иногда бывает так что задача не параллелится вообще. Поэтмоу даже интел и амд привинтили нынче уникальный костыль: турбирование частоты если нагрузка только на одно ядро а остальные мало нагружены (хотя в современном проце с гипертредингами или читами как у бульдозера - понятие ядра довольно абстрактное).
> в чем тогда профит расшаривания ресурсов процессора ?
Если забить на громкий маркетинг - я так понимаю что это просто аппаратный тасксвичер. Профит наверное может быть в том что он может чутка быстрее контекст переключать и софт об этом в лучшем случае ничего знать не должен, что упрощает его написание.
> а это здесь основное - более эффективная работа процессора, а при необходимости
> все что нужно отдается приоритетному потоку - в этом случае он не отличается
> от обычного процессора.Ну просто у указанного проца goals совсем иные чем у интеля и амд. Ну и плюшки может и чем-то похожи но явно нацелены на совсем другие бонусы.
хотелось бы вкратце понять, как это отразится на евреях^W^W^W
что полезного это дает конечному клиенту... ну или хотя бы серверу
расширенная виртуализация?
> что полезного это дает конечному клиенту... ну или хотя бы серверу
> расширенная виртуализация?много полезного, в том числе и для полной виртуализации, но больше по-моему подходит для embedded - то что на ARM например требует написание дополнительного монитора для разделения ресурсов RTOS/GPOS (здесь например наглядно описано http://www.toppers.jp/en/safeg.html), тут делается аппаратно - достаточно потоку с RTOS назначить более высокий приоритет.
> что полезного это дает конечному клиенту... ну или хотя бы серверуБольше линукса во всяких радиоприемниках и чего там еще :)
... вообще то - на ракетах и торпедах. Но в принципе - тоже приемники.
Как пример приводился радиоприемник :)