Интересные сообщения продолжают поступать с Microprocessor Forum: на этот раз всех удивила MIPS, сообщив о выпуске расширения архитектур своих 32-разрядных и 64-разрядных процессоров, позволяющей аппаратную реализацию вычислительной многопоточности.
Скорее всего, встраиваемые многопоточные микропроцессоры на расширенной архитектуре MIPS появятся на рынке не раньше следующего года – также как и многоядерные процессоры Sun, тоже представленные на форуме. Технология MT-ASE (multithread application-specific extension) в целом аналогична поддержке многопоточности в процессорах IBM Power-5 или технологии Intel Hyperthreading: процессор обрабатывает одновременно несколько потоков, данные которых хранятся в кэш-памяти, что позволяет быстро переключаться с одного на другой. В архитектуру MT-ASE добавлен аппаратный планировщик выполнения различных потоков и тэги инструкций, описывающие, какому потоку они соответствуют. Предусмотрено переключение на выполнение других потоков в случае длительного ожидания или ошибки выборки из памяти или принятия данных по шине.
Для серверов, где многопоточность позволяет отчасти скомпенсировать малое быстродействие памяти, поэтому если при тактовой частоте в несколько гигагерц время заполнения кэш-памяти при ошибке выборки составляет несколько сотен тактов, в течение которых будут обрабатываться другие потоки. Для встраиваемых систем с тактовыми частотами, меньшими порой на порядок, число тактов, требуемых для заполнения кэша в случае ошибки, намного меньше, однако необходимость ожидания порой приводит к значительному снижению производительности. Кроме того, многопоточность позволяет лучше организовать обмен данными систем-на-чипе с сопроцессором или сигнальным процессором (DSP), использующими одну и ту же системную шину, но разный набор инструкций. Утверждается, что в этом случае можно говорить об обмене данными в реальном масштабе времени.
Модель MIPS предоставляет два подхода к реализации многопоточности. Первая, названная Virtual Processing Engine, возлагает ответственность за управление потоками на операционную систему: каждый поток выполняется на виртуальном процессоре, аналогично тому, как это происходит в SMP-системе с общей памятью. Второй подход, который MIPS называет предпочтительным для встраиваемых систем, заключается в обеспечении многопоточности на уровне приложений. Новые, расширенные инструкции MIPS позволяют приложениям запускать, переключать выполнение и останавливать потоки. Как и в случае VPE, для каждого потока в кэш-памяти имеется копия содержимого регистров, определяющих также приоритетность потока, а переключение осуществляется аппаратным планировщиком. Операционной системе отводится роль надзирателя, следящего за тем, чтобы число потоков, порожденных одним процессом, не превышало определенного порога, после которого требуется организация VPE.