• No results found

Kapittel 7. Økt kompetanse- og kunnskapsformidling

7.1 Nasjonal kompetansefunksjon

As características apresentadas neste ponto baseiam-se em dados recolhidos em manuais técnicos. Na sua maior parte traduzem desempenhos em condições óptimas, as quais nem sempre podem ser estabelecidas. Como, no âmbito desta tese, os processadores são utilizados como elementos de construção de uma rede de processamento paralelo, com o intuito de processar algoritmos de cálculo intensivo, a seguinte descrição centrar-se-á principalmente na capacidade de processamento e comunicação de dados destes processadores.

2.3.1 Transputer

Os Transputers surgiram em meados da década de 80 e foram considerados por alguns como um computador num único circuito integrado. De qualquer forma, o facto é que um destes dispositivos inclui um processador ou CPU de 32 bits que suporta dois níveis de prioridade para processos, até 4Kbytes de memória RAM local de acesso rápido e até quatro vias de comunicação série, denominadas links, que permitem a conexão ponto a ponto entre Transputers, ou entre Transputers e outras famílias de processadores, desde que se disponha de um adaptador apropriado. Contêm também um interface de memória programável, que permite o acesso a um espaço de endereços até 4GBytes. Passado mais de uma década, verifica-se que os microprocessadores actuais contêm num único circuito integrado um

conjunto de facilidades semelhante ou superior ao Transputer, como se verá a seguir. O Transputer utilizado neste trabalho foi o T805 com velocidade de relógio de 25 MHz. O seu diagrama de blocos simplificado está na Fig. 2-7.

Fig. 2-7: Diagrama de blocos simplificado de um Transputer T805.

Para além das características já apontadas, este processador contém uma unidade de vírgula flutuante, também designada por FPU (do inglês floating point unit) de 64 bits. Esta unidade permite operações aritméticas de precisão simples e dupla, executando-as concorrentemente com a CPU, alcançando um desempenho de pico de 2,75 milhões de operações de vírgula flutuante por segundo ou MFlops. Os 4 links permitem uma taxa de transferência de informação máxima de 20Mbits por segundo ou 2,35 Mbytes por segundo bidireccionalmente e concorrentemente. A quantidade de informação mínima que pode ser transmitida é o byte. (Inmos Ltd., 1990a; 1990b)

Quando uma rede de Transputers está fisicamente alocada num computador anfitrião, também denominado host, como por exemplo um PC, um dos processadores, denominado raiz ou root, é usado para estabelecer uma via de comunicação com o anfitrião através de um dos links. É o caso do material utilizado neste trabalho, no qual toda a comunicação entre qualquer dos processadores da rede e o anfitrião deve ser direccionada através dessa via (Inmos Ltd., 1990c; Transtech Paralell Systems Ltd., 1991a; 1991b).

2.3.2 TMS320C40

A família de processadores TMS320C4x, desenvolvida pela Texas Instruments, é composta por processadores digitais de sinal com aritmética de virgula flutuante. No diagrama de blocos representado na Fig. 2-8 pode-se observar a arquitectura simplificada de um TMS320C40. A unidade central de processamento incluí uma unidade lógico aritmética, ALU, e um

Adaptadores de link 0 a 3 RAM 4KBytes Adaptador de memória externa CPU 32 bits FPU 64 bits

Bus 32 bits Bus 32 bits

Links série

multiplicador que suportam aritmética inteira de 32 bits e aritmética de vírgula flutuante de 32 ou 40 bits. Instruções paralelas permitem que ambos os dispositivos funcionem concorrentemente de modo que uma operação de multiplicação e uma operação aritmético- lógica sejam executadas no mesmo ciclo. Para tal duas unidades aritméticas auxiliares geram dois endereços num só ciclo. O CPU dispõe também 12 registos de precisão estendida de 40 bits e 8 registos auxiliares de 32 bits que podem ser acedidos pelo multiplicador e pela ALU.

Fig. 2-8: Diagrama de blocos simplificado de um TMS320C40.

Dois blocos de 4 Kbytes de memória RAM, de acesso rápido, estão alocados no circuito integrado. A arquitectura de duplo barramento permite dois acessos à memória de dados em cada ciclo. Além destes blocos de memória interna o C40 dispões de dois adaptadores de memória externa idênticos denominados de global e local, atingindo-se um espaço de endereçamento total de 16 Gbytes. Dispõe também de um co-processador DMA, que permite o acesso a qualquer endereço de memória sem interferir com a operação do CPU.

Para comunicar com outros processadores, da mesma família, dispõe de seis portos de comunicação paralelos bidireccionais half duplex. Para obter comunicação bidireccional full

duplex usa-se um par de portos. Cada porto tem uma taxa de transferência de informação

máxima de 20 Mbytes por segundo, sobre 8 linhas de dados e 4 linhas de controlo. Os portos de comunicação operam concorrentemente. A quantidade atómica de informação que pode ser transmitida é a palavra de 32 bits (Texas Instruments, 1996).

Para este trabalho foram utilizados módulos de processamento HET40SDX, os quais incluem um TMS320C40 com velocidade de relógio de 50 MHz, o que significa que cada ciclo demora 40 ns, 1 banco de memória externa local, com 1 MB SRAM e dois bancos de memória externa global, com 2 MB de RAM cada (Warnes, 1994). Assim, como é possível

Portos de comunicação 0-5 RAM 2 x 4KBytes Adaptador de memória externa local CPU 32 / 40 bits Bus 32 bits Bus 32 bits TMS320C40 Co-processador DMA Adaptador de memória externa global Bus 32 bits Canais de comunicação 8 bits

efectuar duas operações de vírgula flutuante num só ciclo, o pico de desempenho do CPU atinge os 50 MFlops. Módulos adaptadores entre os portos de comunicação paralelos dos C40s e os links série dos Transputers (Williams, 1995), foram utilizados para construir redes heterogéneas baseadas nestes processadores. A carta mãe utilizada é inserida num suporte de expansão de um PC. A comunicação entre este e a rede de C40s é estabelecida através de um dos portos de comunicação do processador raiz (Warnes, 1993).

2.3.3 ADSP21060

Este processador, desenvolvido pela Analog Devices, também é um processador digital de sinal, no entanto no âmbito deste trabalho, será utilizado apenas para cálculo em redes homogéneas. Na Fig. 2-9 está representada a arquitectura simplificada deste processador.

Fig. 2-9: Arquitectura simplificada de um ADSP21060.

A unidade central de processamento contêm uma unidade aritmético-lógica e um multiplicador que podem operar em paralelo sobre dados inteiros ou de vírgula fixa de 32 bits e sobre números de vírgula flutuante de 32 ou 40 bits. Esta família de processadores executa todas as instruções em apenas um ciclo. Além das instruções tradicionais de um DSP - multiplicação, adição e multiplicação e adição combinadas – contém instruções que retornam o mínimo e o máximo de dois operandos, instruções que permitem operar em simultâneo com a ALU e o multiplicador ou fornecer dois operandos a uma destas unidades computacionais num só ciclo. Para que tais operações simultâneas sejam possíveis, o CPU dispõe de dois geradores de endereços, os quais permitem calcular simultaneamente dois endereços para ler ou escrever dois operandos. Além disso uma mesma instrução, a qual é codificada numa palavra de 48 bits, suporta também operações aritméticas em paralelo com transferências de

Adaptadores de link 0 a 5 RAM 2 x 256Kbytes Porto para memória externa CPU 32 / 40 bits Bus 48 bits Bus 48 bits ADSP21060 Controlador DMA Porto para host Bus 48 bits Links 4 bits

dados. A unidade central de processamento contém 16 registos primários e 16 secundários. Todos os registo têm comprimento de 40 bits e são de uso geral. Os registos secundários são usados para partilha de dados entre diferentes contextos. A necessidade de mudança de contexto surge quando dois ou mais processos partilham o mesmo processador. Assim, o tempo de execução deve ser partilhado por estes processos, de modo que, periodicamente é necessário que a um processo seja atribuído o processador, para que seja executado, e que seja previamente retirado a outro processo. O uso de registos secundários permite que o acesso a dados partilhados por vários processos seja mais rápido do que se verificaria se estes estivessem guardados em endereços de memória.

Este processador contém também dois bancos de 256 Kbytes de memória SRAM interna. Estes bancos podem ser configurados para armazenar dados ou código. Cada banco de memória tem um duplo porto, o que permite, em apenas um ciclo, acessos independentes a partir do CPU, do processador de entrada saída e do controlador de DMA. Os acessos à memória são mais eficientes se num dos blocos for guardado código e dados, e noutro bloco apenas dados, usando cada um destes bancos um barramento independente para transferência de dados. Desta forma, num único ciclo, é possível executar uma operação com duas transferências de dados, desde que a palavra de instrução esteja na memória de cache interna. Também é possível executar uma instrução semelhante num único ciclo, se um dos operandos estiver guardado na memória externa. Esta memória externa, organizada em apenas um banco, tem um espaço de endereçamento máximo de 32 Gbytes.

Um processador de entrada-saída está também integrado no mesmo invólucro. Este processador incluí dois portos série assíncronos, para conexão com periféricos, que têm uma taxa de transferência máxima de 40 Mbits. Contêm também um controlador DMA e seis portos para comunicação ponto a ponto com processadores da mesma família. Estes portos, também denominados links, são composto de 4 linhas de comunicação. Podem executar duas transferências de dados em cada ciclo, transmitindo assim um byte por ciclo; a quantidade de informação mínima que pode ser transmitida é no entanto uma palavra de 32 bits. Tal como no caso do Transputer estes portos operam concorrentemente e bidireccionalmente.

Um porto de comunicação, dedicado à comunicação com computador anfitrião, liberta um

link do processador raiz, para comunicação com outros Sharcs. Tal não sucede no caso dos

Transputers e dos C40s, em que uma das vias de comunicação do processador raiz é usada para comunicação com o anfitrião (Analog Devices, 1997).

Os módulos de processamento utilizados operam a uma velocidade de relógio de 40 MHz, de modo que o pico de performance do CPU é de 120 MFlops. Os links têm uma taxa de

comunicação de 40 Mbytes por segundo. Estes módulos dispõem de 1 banco de memória externa com 3 Mbytes SRAM (Spectrum Signal Processing Inc.,1998).