Parallel and multicore in mobile devices

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

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

сравнение потребляемой мощности настольных процессоров(Различные технологии сохранения энергии, применяемые процессорами. Сравнения расхода энергии при различных режимах сохранения энергии. Внедрение понятия эффективности процессора равной отношению потребляемой мощности к объему вычисленных ресурсов. (пример сравнение Atom и Core2Duo))

Приложения(обратить внимание, что приложения становятся все более параллельными. Параллелизм появляется и на уровне ОС.)

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

в стадии разработки

Современного человека все больше и больше окружают мобильные устройства: телефоны, персональные компьютеры, ноутбуки, навигаторы, всевозможные встраиваемые системы. В первую очередь каждый тип устройств был предназначен для решения какого-то узкого набора задач. Однако, с ростом вычислительных мощностей этих устройств, количество реализованых в них функций растет. Благодаря этому росту появились такие классы устройств как смартфоны или нетбуки. Все эти устройства ограничены в своем энергопотреблении, поэтому для всех этих устройств разрабатываются специальные процессоры с низким энергопотреблением, обеспечивающие большее время работы устройства. Наиболее распротраненными с среде мобильных устройств стали процессоры с архитектурой ARM. В первую очередь это обсуловлено тем, что ARM-процесооры являются RISC процессорами, а следовательно более простыми и менее энергоемкими. Не смотря на то, что RISC архитектура более энергоэкономична, Intel продал своё подразделение по производству ARM процессоров XScale и полностью сосредоточился на развитии CISC архитектуры х86, в результате чего появились процессоры Intel Atom, не уступающие ARM процессорам в экономии энергии, при этом имеющие такую же архитектуру, как и подовляющие большинство настольных процессоров в мире. Мобильность устройства – это то самое важное, что требуется сегоднящнему человеку. Рассмотрим три наиболее показательных сценария применения мобильных устройств:

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

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

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

Из вариантов использования вытекают следующие ключевые требования:

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

продолжительное время работы.

Выполнение этих требований для пользователя, потребует многопоточную систему. В случае использования одноядерного процессора, даже с поддержкой мультимедиа расширений, возможно он не сможет предоставить необходимый уровень загрузки и обработки данных в реальном времени, потому что вместо параллельной обработки данных, он будет использовать исключительно последовательную обработку с переключением задач. Чтобы удовлетворить требования имитации многозадочности, событий пользовательского интерфейса, одноядерный процессор должен постоянно переключаться между задачами. Данное переключение между задачами неизбежно приведет к потере медиа данных и для пользователя может быть выражено дребежащим звуком, артефактами на экране при просмотре видео или видео-звонке. На рисунке представлена схема работы одноядерного для мобильного устройства, например, телефона.
Из риснука виндно, что с одной стороны процессору довольно часто приходится преключаться между задачами различных типов, которые в свою очередь можно делать параллельно. Так, компания Texas Instruments предложила линейку процессоров OMAP(Open Multimedia Application Platform). Данный процессор на самом деле представляет из себя несколько процессоров, каждый из которых отвечает за определенную функциональность, распараллеливая таким образом независящие задачи (см. рисунок).
Такое разделение можно назвать “гетерогенной” многоядерной архитектурой, так как на самом деле процессор состоит из нескольких различных ядер, отвечающих за конкретную функциональность. Внедрение таких компонентов, отвечающих за конкретные функции, например, обработку медиа-информации, позволяют реализовать практически все основные требования. Однако, под большим вопросом остается вопрос энергопотребления данного процессора. Безусловно, введение дополнительного числа процессоров увеличивает суммарное энергопотребление, но только в том случае если они все одновременно работают. Введение возможности отключать или переводить бездействующие элементы в режим энергосбережения, когда они не нужны, позволит уменьшить потребление энергии по сравнению с вариантом, когда установлен единственный процессор, обрабатывающий все данные.

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

Тем не менее, как показала история, лучшее решение – золотая середина. Так, следующее поколение ARM процессоров уже будет многоядерным.1)http://www.physorg.com/news164386074.html Они будут содержать до 4х ядер на одном кристале. Логично предположить, что они будут соединены с сигнальными процессорами и через пару лет многоядерность придет в смартфоны, нетбуки и остальные мобильные устройства.

Тем не менее, борьба за время работы устройства приводит к тому, что большинство процессоров поддерживают несколько режимов энергосбережения. При этом очевидно, что потребляемая мощность прямо-пропорциональна тактовой частоте процессора, т.е. чем больше частота работы процессора, тем больше энергии он потребляет и тем меньше время жизни устройства, в котором он установлен. Но данная формула работает только в случае если не обращать внимание на наличие режимов энергосбережния. Так в http://www.thg.ru/howto/core_2_duo_e7200_atom_230/index.html показано, что в режиме энергосбережения настольный процессор практически не уступает мобильному, имея при этом большую производительность. Но зачем мобильному устройству многоядерный вычислительный процессор? Большинство из пользователей мобильных устройств практически всегда пользуются настольными компьютерами и хотят перенести часть приложений с настольного компьютера на мобильный. Большинство современных приложений являются многопоточными и потенциально могут работать быстрее на нескольких вычислительных ядрах процессора. При этом, время работы процессора в пиковом режиме существенно меньше, что уменьшает энергопотребление.

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

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

some stuff/ideas/questions

Multicore vs Cloud computing

Ambiguous computing in cloud spaces

Multicore and power efficiency

Multicore for mobile phones

Power Efficiency Study of Multi-threading Applications for Multi-core Mobile Systems

some links

http://www.ddj.com/architect/217500655

http://www.physorg.com/news164386074.html

Ссылки

http://www.thg.ru/howto/core_2_duo_e7200_atom_230/index.html

http://www.3dnews.ru/news/nokia_lider_zelenogo_reitinga_grinpis/

http://focus.ti.com/pdfs/wtbu/TI_omap2420.pdf

http://software.intel.com/ru-ru/blogs/2009/08/13/iii/

http://software.intel.com/ru-ru/blogs/2009/08/20/2001968/ (Неплохая идея про мощные вычисления, можно ее развить на мобильные девайсы, и объяснить почему многоядерность – хорошо.)