Составители:
Рубрика:
13
Multithreading (многопотоковая обработка данных)
Каждый из Microengines имеет 4 независимых программных счётчика и может
поддерживать до 4 потоков (подпроцессов). Пока один подпроцесс ожидает поступления
внешних данных, он может быть приостановлен до их поступления и в данном
Microengine может быть запущен другой подпроцесс. Таким образом в один Microengine
может поддерживать выполнение 4-х подпроцессов одновременно. Соответственно все 6
Microengine вместе позволяют процессору поддерживать 24 потока (подпроцесса).
Регистры
В Microengine есть 2 вида регистров: универсальные (общего назначения) и
передачи.
128 универсальных регистров в свою очередь разделены на два банка: банк A и
банк B. Это сделано для того, чтобы дать возможность арифметико-логическому
устройству выбрать два операнда одновременно. Команды арифметико-логического
устройства используют один операнд от банка А и один от банка В (рис. 7).
Регистры передачи разделены на SDRAM и регистры передачи SRAM, и они
разделены на части записи и чтения. Это дает 32 регистра в каждой части и 128 регистров
всего. Каждый из этих наборов регистров может использоваться одновременно, потому
что они имеют отдельные информационные каналы в соответствующих функциональных
блоках.
32 SRAM
Read XFER
Registers
32 SDRAM
Read XFER
Registers
64 GPRS
(A-Bank)
64 GPRS
(B-Bank)
32 SRAM
Write XFER
Registers
32 SDRAM
Write XFER
Registers
From SRAM To SRAM
From SDRAM To SDRAM
ALU
Рис. 7. Использование регистров
Регистрам могут быть доступны 2 способа адресации: context-relative и absolute. В
контекстном-относительном режиме за каждым потоком закрепляется собственный
регистр. При абсолютной адресации потоки обслуживаются в режиме разделения, так как
они обращаются к одним и тем же физическим регистрам.
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »
