22 SIMPÓSIO BRASILEIRO DE AUTOMAÇÃO INTELIGENTE CEFET·PR, 13 a 15 de Setembro de 1995 Curitiba Paraná Arquitetura Paralela Multi-thread para Processamento de Imagens: ArqMDSP (*) Saito, José Hiroki, Mucheroni,Marcos Luiz e Romão, Aldo José Spanghero GAPIS-Grupo de Arquitetura e de Processamento de Imagens e Sinais Departamento de Computação Universidade Federal de São Carlos Endereço: Rodovia Washington Luiz, Km 235 13565-905 - São Carlos - SP Emai1: [email protected] RESUMO: Neste trabalho descreve-se o projeto de uma arquitetura para processamento de imagens, mu/ti-thread baseada no processador digital de sinais (DSP) TMS320C40. Um dos aspectos importantes desse processador é a alta conectividade, através dos 6 portos de comunicação, de 8 bits, com fila de entrada e saída, e do coprocessador de DMA interno ao chip, capacitado para autoiniciação, sem interferência da CPU. Explorando essas características apresenta-se um modelo de processamento paralelo mu/ti-thread , exemplificando a sua aplicação no processamento de imagens, através do operador Laplaciano com a divisão em sub-imagens, alocadas em processadores paralelos. É apresentado um estudo de desempenho da arquitetura, levando-se em conta o exemplo de aplicação e os mecanismos de transferência de mensagens. I.INTRODUÇÃO o presente trabalho é baseado no processador digital de sinais (DSP) de alto desempenho e alta conectividade, denominado TMS320C40 da Texas Instruments, que tem seis portos de comunicação de oito bits, permitindo a sua interconexão estática a seis outros processadores. Neste projeto apresenta-se uma possibilidade de implementação de arquiteturas paralelas usando esses componentes, em formato padrão industrial TIM-40, de cartões de circuito impresso, contendo o processador e a memória principal externa à CPU. É apresentado um modelo de processamento dirigido a mensagens, apropriado para programação mu/fithread, que faz com que seja otimizado o desempenho global do sistema, através do esquema de múltiplos contextos. Como exemplo de aplicação é mostrado o processamento de imagem, através de operador Laplaciano. A imagem é dividida em sub-imagens para que o processamento paralelo e a análise de desempenho sejam possíveis. 2.PRINCIPAIS CARACTERÍSTICAS DO PROCESSADOR o TMS320C40, processador digital de sinais da Texas Instruments, usado neste projeto, é um processador super-escalar, apresenta alto desempenho de 275 MOPS (milhões de operações por segundo) e 320 Mbytes/s de throughput, tamanho de palavra de 32 bits, espaço de endereçamento efetivo de 16 Gbytes, em dois dutos de memória ·independentes, denominados de duto global e duto local. As operações de soma/subtração inteiras e lógicas são de 32 bits e as de ponto flutuante, 40 bits~ as multiplicações são para números inteiros de 24 bits, e para números ponto flutuante, de 32 bits. As operações aritméticas são executadas num único ciclo. Os 6 portos de comunicação bidirecionais de alta velocidade, 20 Mbytes/s por porto, de 8 bits, se associam a canais de DMA, contendo uma fila de entrada e uma de saída. Um coprocessador atua no processa(*) ArqMDSP: Arquitetura Multiprocessadora Usando DSPs - Projeto parcialmente financiado pelo CNPq, ProTeM-CC-fase 2. ~ 2'~ 18 21 SIMPÓSIO BRASILEIRO DE AUTOMAÇAO INTELIGENTE ~ mento de operações relativas aos canais de DMA aliviando o proce~sador. A transferência de dados pelo DMA é feita de forma concorrente em relação ao processador, sendo que o coprocessador tem a capacidade de autoiniciação, após o fim da execução de transferência de um bloco de dados, sem a interferência da CPU [Texas, 91]. O coprocessador de DMA tem barramento de endereçamento e de dados dedicados que permite acesso à memória independentemente da CPU. O controle de transferência de blocos de dados pelo DMA é baseado num conjunto de registradores de operação, que ficam mapeados na memória. Para cada um dos seis canais de DMA são definidos os seguintes registradores de operação, de 32 bits, em endereços subsequentes: 1) Registrador de Controle do Canal~ 2) Endereço do Originário~ 3) Endereço do Índice do Originário~ 4) Contador de Transferência de Saída~ 5) Apontador de Enlace 1~ 6) Endereço do Destinatário~ 7) Endereço do Índice do Destinatário~ 8) Contador de Transferência para Entrada~ e 9) Apontador de Enlace 2. O primeiro registrador apresenta diversos parâmetros de programação para o funcionamento do canal. Os três registradores seguintes são delimitadores para os dados do canal para a operação de saída, onde os dados são lidos da memória e enviados para a fila de saída. O registrador seguinte, Apontador de Enlace . 1, refere-se ao endereço de memória onde se localiza a descrição da próxima operação do coprocessador. A autoiniciação refere-se ao carregamento dessa descrição para a área de registradores de operação. Os quatro registradores restantes definem o funcionamento do canal para a operação de entrada, em que os dados são lidos da fila de entrada para a memória. O coprocessador de DMA, após uma operação de transferência de bloco, carrega os novos valores de descrição para os seus registradores de operação. Os apontadores de enlace especificam o endereço de descrição para a carga dos novos valores de registradores de operação do DMA, que tem endereço fixo na organização de . memória do TMS320C40. Por exemplo, sob autoiniciação, os passos para o carregamento dos registradores do canal de DMAO, o primeiro dos seis canais, seguem o seguinte algoritmo: Algoritmo 1: 1) Ler o apontador de enlace pra a próxima operação de DMA. O apontador é o endereço de memória contendo a descrição do primeiro registrador de operação do canal de DMA; 2) Ler esse conteúdo apontado e escrevê-lo no endereço 01000AOh (endereço do primeiro registrador de controle do canal de DMA O); 3) Incrementar o apontador de enlace; 4)Buscar a próxima palavra e escrevê-la no próximo endereço (01000A1h); e 5) Repetir o procedimento até o carregamento do bloco inteiro de registradores do canal de DMA. 3. ARQUITETURA PARALELA - ArqMDSP A arquitetura proposta é escalável e tem uma estrutura genérica, uma vez que a sua implementação depende das necessidades de aplicação. Ao mesmo tempo, o uso do padrão TIM-40 de módulos processador/memória, facilita a essa implementação. Nas extremidades são acoplados os dispositivos periféricos e na parte central, a estrutura de elementos processadores constituídos de módulos TIM-40. A topologia de interconexão depende do número de processadores, podendo variar desde uma totalmente conexa, até malhas multi-dimensionais. Os dispositivos periféricos referidos podem ser unidades de armazenamento de dados como discos magnéticos, estações de trabalhoSUN ou IBM AT, captadores e digitalizadores de imagens, visualizadores de imagens e acesso a redes locais Ethemet. O único dispositivo periférico necessariamente presente em todos os protótipos é uma estação de trabalho para servir de interface homem/máquina do sistema. Para aplicações de processamento de imagens, os dispositivos de captação, digitalização e visualização de imagens são frequentes. 4. ArqMDSP: COMUNICAÇÃO ENTRE OS PROCESSADORES Existem basicamente duas formas de transmissão de mensagens através de multi-computadores: a) store-and-forward em que a mensagem em forma de pacote, transmitido pelo originálio, passa de processador a processador, que recebe o pacote inteiro, e depois retransmite para o próximo processador, até que o pacote seja transmitido ao destinatário~ e b) wormhole em que a mensagem é dividida em pequenos segmentos denominadosjlits e são transmitidos segmento a segmento, de processador a processador, sincronamente, numa feição pipeline, através de um hardware específico de comunicação [Dally, 90], [Dally, 92]. A Figura 1 ilustra a estrutura de uma mensagem e os dois esquemas de roteamento. 2! SIMPÓSIO BRASILEIRO DE AUTOMAÇAO INTELIGENTE 19 MENSAGEM 1[::____ _ "'J I (8) ESTRUTURA DA MENSAGEM TEMPO PACOTE ""<0 III IIII FLlT , II (b) ROTEAMENTO STORE-ANDFORWARD N01 II NOD+1 N02 , TEMPO I (c) ROTEAMENTO WORMHOLE II II I1 NO 1 II II N02 II NOD+1 , TEMPO Figura 1. a) a estrutura básica de uma mensagem, pacote eflit; b) esquema de roteamento store-and-forward; e c) esquema de roteamento wormhole. Explorando os conceitos de pipeline, a transmissão do tipo wormhole apresenta uma latência de comunicação independente da distância entre os processadores envolvidos, no caso em que o comprimento do flit é bem menor que o comprimento do pacote [Hwang, 93]. Seja L o comprimento do pacote em bits~ Wa taxa de transmissão do canal em bits/s~ D a distância ( número de nós participantes menos 1) e F o comprimento doflit (em bits). A latência de comunicação Tsfpara o esquema store-and-forWard é expressa por: Tsf= (L / W) . (D + 1) (Equação 1) enquanto que a latência Twh para o esquema wormhole é expressa por: Twh = (L / W) + (F / W) . D (Equação 2) A latência Tsf é diretamente proporcional a D e a latência Twh = L / W se L "> > F. Assim, a distância é desprezível na latência de roteamento no esquema wormhole. A definição de flits em blocos de tamanho fixo, faz com que a transferência por autoiniciação sincronizada pela CPU permita uma eficiência acima do roteamento por store-and-forward. Isso porque através do sincronismo de transferência de blocos flits pode-se implementar um esquema pipeline de transmissão desses blocos ao longo da estrutura de processadores paralelos. Diversos blocos de flits podem ser transferidos de um processador para outro simultaneamente fazendo com que para o caso em que o tamanho do pacote seja muito grande em relação aos blocos, o tempo de transferência seja independente da distância entre os processadores. 5. MODELO DE PROCESSAMENTO MULTI-THREAD PARA O ArqMDSP Um thread é uma sequência de instruções que são executadas num processador e que pertencem a um mesmo contexto. O modelo de arquiteturas multi-thread permite a mudança de contexto num mesmo processador, fazendo com que trechos de contextos diferentes sejam alternados durante o processamento. Existem as seguintes possibilidades de critérios de alternância [Hwang, 93]: a) alternância no cache miss; b) alternância em cada load; c) alternância a cada instrução~ e d) alternância a cada bloco de instruções. Um processador multi-thread pode ser implementado usando o modelo de processamento dirigido por mensagens. O processador abstrato desse modelo tem uma fila de ativação, ativador e executor de thread. Um thread é invocado pelo ativador, que recebe como entrada os elementos: 1) P - identificação do processador destino~ 2) 1 - apontador de instrução ~ e 3) D - ponteiro de dados. Os elementos 1 e D identificam o ponto de início para o thread. A fila de ativação mantém os elementos identificadores de ativação esperando pelo 2'~ 2! SIMPÓSIO BRASILEIRO DE AUTOMAÇAO INTELIGENTE 20 ~ disparo. O executor executa as instruções de um certo thread, determina a criação de um novo ativador e termina o thread corrente [Sakai, 94], [Dally,92]. Para a implementação de um sistema mu/ti-thread usando o TMS320C40, a fila de ativação é controlada pelo coprocessador de DMA. O ativador e o executor devem ser implementados pela CPU. Essa implementação deve gerar um overhead uma vez que os mecanismos de alternância dos contextos é assistida por software, porém, o paralelismo de operações da CPU e do coprocessador de DM~ faz com que esse overhead seja mínimo. A Figura 2 mostra o modelo de processador dirigido por mensagens. Nesse modelo é também mostrada a função de fork para a criação de uma nova ativação, que é enviada à fila de ativação, invocando um novo thread . 1 FILA DE ATlVACAO EXECUCAO DE THREAD DE OUTRO NO ATlVADOR DETHREAD j FORK ') P/OUTRO NO TERMINO DOTHREAD Figura 2. Modelo de processador dirigido por mensagens. 6. DETERMINAÇÃO DO DESEMPENHO NUM EXEMPLO DE APLICAÇÃO O exemplo de aplicação escolhido, serve para medir o desempenho ideal da arquitetura paralela. Um operador, constituído de 9 elementos dispostos em matriz 3 x 3, para obtenção de um ponto da imagem final processada é feita através da multiplicação elemento a elemento dessa matriz Laplaciano pelos pixels correspondentes da imagem original de 1024 x 1024 pixels, 8 bits por pixel. Os resultados das multipHcações são acumulados para resultar no valor final do pixel processado, correspondente ao ponto central da matriz [Galbiati, 90], [Romão,94]. Como o TMS320C40 tem a capacidade de realizar as operações de multiplicação e acumulação num ciclo, a obtenção de um valor final processado é obtido em 9 ciclos, um para cada multiplicação/acumulação. Desprezando os overheads devido ao tempo de execução de instruções de controle~ considerando-se que o tempo de comunicação sejam desprezíveis devido à operação paralela entre a CPU e o coprocessador~ que o tempo de ciclo de uma instrução do TMS320C40 é de 20 ns~ e finalmente o tempo de ciclo de transferência de um byte de 50 ns~ foram obtidos os seguintes resultados de desempenho, para: a) Tabela 1, para roteamento store-and-forward e b) Tabela 2, para roteamento wormhole. Tabela 1. Resultado de cálculos usando o roteamento Store-and-forward. Num Tempo Tempo Quantidade Tempo Proc Total Transf. de Dados Proc. (n) (ms) (ms) (ms) 188,74 1 188,74 1.048.576 73,39 4 26,21 47,18 262.144 24,89 16 13,10 65.536 11,79 9,40 6,55 64 2,94 16.384 4,00 3,27 256 0,73 4.096 - SpeedUp Log n 1 2,5 7,5 20,0 47,1 1 2 4 8 16 21 SIMPÓSIO BRASILEIRO DE AUTOMAÇAO INTELIGENTE '<-, • • • •. 0. . ," f ~ .. 21 Tabela 2 Resultado de cálculos usando o roteamento Wormho/e Tempo Tempo Num Quantidade Transf. Proc. deDados . Proc (ms) (ms) (n) 188,74 1.048.576 1 13,10 47,18 4 262.144 3,27 11,79 16 65.536 0,81 2,94 64 16.384 0,20 0,73 256 4.096 Tempo Total (ms) 188,74 50,28 15,06 3,75 0,93 SpeedUp Log n 1 3,7 12,5 50,3 202,9 1 2 4 8 16 A Figura 3 mostra os gráficos de S'peed-up versus número de processadores, para os dois esquemas de roteamento. Nota-se que no roteamento store-and-forward foi considerado o tempo de transferência de log(n). Observa-se que no esquema de roteamento, da Tabela 1 o speed-up é perto do logaritmo do número de processadores, enquanto que no esquema da Tabela 2, esse valor é próximo do número de processadores. 256 , SPEED-UP , "///,/'~'/,/ 1.92 128 /////' 64 STEP-AND-FORWARD /' /' 416 __ ______ ___ -------------~~~(N) 64 256 NUM. DE PROCESSADORES Figura 3. Gráfico de Speed-Up, para os dados representados nas Tabelas 1 e 2. 7. ArqMDSP: IMPLEMENTAÇÃO A implementação de uma arquitetura paralela usando TMS320C40 é facilitada pelo uso de módulos TIM-40 que incorpora num cartão de circuito impresso processador/memória e outros dispositivos . . Esses módulos medem 4.2" x 2.5" (106,7 mm x 63,5 mm). Esses módulos são usados em cartões portadores (mainboards) com as funções básicas de alimentação e reset, bem como fiações de interconexões e testes. Os módulos TIM-40 possibilitam implementações de arquiteturas paralelas. Existem, também, projetos . específicos de cartões TIM-40, como os de captura e visualização de imagens, onde é essencial o acoplamento forte entre a memória de vídeo e o processador. O desenvolvimento de arquiteturas paralelas ArqMDSP está sendo implementado numa estação de trabalho SUN, no Departamento de Computação da Universidade Federal de São Carlos, DC/UFSCar. Outros três protótipos baseados em IBM AT estão sendo desenvolvidos pelo CNPDIAlEMBRAPA, DC/UNESPlBauru e LAC/UFPRlCOPEL [Saito,94]. A Figura 4 ilustra o exemplo de aplicação mostrando um processamento usando quatro processadores. 8. CONCLUSÕES O presente trabalho procura descrever os principais aspectos do desenvolvimento de protótipos das arquiteturas paralelas ArqMDSP. 22 2! SIMPÓSIO BRASILEIRO DE AUTOMAÇAO INTELIGENTE ~ 2·~. 1 Devido ao alto desempenho da CPU e do sistema de interconexão pelo coprocessador DMA. foram analisados os aspectos de roteamento e de modelos de processamento dirigido a mensagens. A análise desses aspectos através de uma aplicação de processamento de imagens mostra que numa situação ideal, a arquitetura apresenta um desempenho alto, com speed-up próximo ao número de processadores. Porém, para se obter esse resultado, e para que a aplicação seja de uso geral, devem ser implementados os sincronismos de roteamento e o modelo de processamento dirigido por mensagens para permitir o processamento de multi-threads de programas e de atendimento ao roteamento. Figura 4. Diagrama ilustrativo da aplicação usando o operador Laplaciano, e 4 processadores. 9. AGRADECIMENTOS o autores agradecem o apoio do CNPq, através do projeto Protem-CC, fase 2, denominado: ArqMDSPArquitetura Multiprocessadora Usando DSPs. 10. REFERÊNCIAS [Dally, 90] - Dally, W.J. - "Performance Analysis ofk-ary n-cube interconnection Networks". IEEE Trans. on Computers, 39(6): 775-785, 1990. [Dally, 92] - Dally, W.J. et Ali - "The Message-Driven Processor: A Multicomputer Processing Node with Efficient Mechanisms", IEEE Micro, 12(2): 23-39, abril 1992. [Hwang,93] - Hwang, K. - Advanced Computer Architecture: Parallelism, Scalability, ProgrammabÚity. USA, MacGraw-Hill, 1993. [Galbiati.90] - Galbiati Jr.,L.J. - ''Machine Vision and Digital Image Processing Fundamentais". New Jersey, Prentice-Hall, 1990. [Romão,94] - Romão, A.J.S. & Mucheroni, M.L. - "Construção de Gerador de Códigos de Processadores com interface Gráfica do Usuário para Vídeos". Anais do XIII Congresso de Iniciação Científica e Tecnológica em Engenharia - CICTE. São Carlos-SP, dezembro de 1994. [Saito, 94] - Saito,J.H.~ Ferasoli Filho,H. & Pegoraro, R. - "A Image Parallel Processing Architecture Using Digital Signal Processors", Proceedings of Sixth IASTED/lStvIM International Conference on Parallel and Distributed Computing and Systems, Washington DC, pp. 451-454, outubro de 1994. [Sakai,94] - Sakai,S. - "RWC Jviassively ParaUel Computer Pr~iect - RWC Architecture".Proceeding of Fifth Annua! NEC Research Symposium, 1994. [Texas, 91] - Texas - TMS320C4X User's Guide. Texas lnstruments, 1991.