Процессоры радиомодулей для мобильных устройств, как правило, работают на тактовой частоте порядка 250–500 МГц, чтобы минимизировать энергопотребление. Однако самые последние стандарты беспроводных интерфейсов предусматривают значительное повышение производительности системы, что вынуждает повысить производительность процессоров и уменьшить время задержки.
Технология LTE (Long Term Evolution) является новейшим стандартом для радиоинтерфейса, который осваивают операторы мобильной связи Verizon, NTT DoCoMo и Telia Sonera. LTE обеспечивает 50-кратное увеличение скорости данных по сравнению с предшествующим 3G-стандартом W-CDMA. Поступающие с радиомодуля большие объемы данных необходимо обрабатывать в реальном времени. Единственный способ справиться с выросшей производительностью системы – значительно уменьшить время задержки.
Исходя из этих соображений, показатель TTI (Transmission Time Interval – интервал времени передачи) для LTE составляет всего 1 мс, тогда как при использовании стандарта W-CDMA этот интервал равен 10 мс. По сути, TTI – промежуток времени для передачи блока данных. Увеличение скорости передачи данных более чем на порядок значительно повышает требования к производительности процессоров радиомодулей (baseband processors) сотовых телефонов. Те же выводы относятся и к следующему поколению стандарта WiFi (802.11ac), обеспечивающего скорость в 1 Гбит/с.
Как правило, увеличение производительности со стороны пользователя и управляющего блока обеспечивается за счет повышения тактовой частоты процессора.
Разумеется, такой подход приводит к росту энергопотребления, и потому не приветствуется. Другой стандартный способ повышения производительности заключается в использовании нескольких ядер для перераспределения вычислительной нагрузки без изменения тактовой частоты. И хотя такой метод ведет к повышению потребления в статическом режиме из-за увеличения числа транзисторов, оно значительно меньше потребления в динамическом режиме с удвоенной тактовой частотой. К недостаткам многоядерной системы относится необходимость выплаты лицензионных отчислений за использование второго ядра, а также увеличение производственных расходов за счет большего размера кристалла.
К счастью, существуют и другие методы. Например, имеется возможность использовать многопоточную обработку данных, когда каждое из ядер одного процессора работает под управлением независимой ОС или ОСРВ. В этом случае вычислительная нагрузка распределяется между двумя частями процессора, которые ОС воспринимает как отдельные ядра (например, в состав ядра MIPS32 34K входят виртуальные вычислительные элементы). Размер кристалла многопотокового ядра относительно невелик, и, кроме того, отсутствует необходимость выплаты отчислений за использование второго ядра. Более того, задержка системы значительно снижается за счет меньших временны́х затрат на создание потока. Все эти преимущества многопоточной технологии повышают эффективность работы мобильных устройств.
Самым большим недостатком применения многопоточного оборудования является некоторое усложнение программного обеспечения и необходимость портирования унаследованного ПО.
Приложения, которые управляли одним потоком, необходимо переделать таким образом, чтобы их можно было успешно применять в многопоточных системах. Для такой переделки требуются определенные усилия. Разумеется, те же соображения относятся и к многоядерным системам, от которых также необходима поддержка многопоточности. Объем прилагаемых усилий в большой мере зависит от того, насколько хорошо структурирован код (лучшая организация – модульная), как он записан и задокументирован. В многорежимном модеме код разделяется на несколько частей для работы с несколькими потоками, что позволяет свести к минимуму стоимость портирования.
Таким образом, ответ на вопрос в заголовке этой заметки зависит от требований приложения и, в первую очередь, от его энергопотребления. Однако в случае с процессорами радиомодулей сотовых телефонов многопоточность позволяет увеличить производительность при намного меньшем энергопотреблении системы, чем в том случае, когда удваивается тактовая частота процессора или используется многоядерное решение.