Você está na página 1de 4

Arquitetura Vetorial

Histrico O inicio de desenvolvimento de uma arquitetura vetorial, ocorreu na dcada de 1960. O projeto que deu inicio a isso foi o Solomon, que visava realizar clculos matemticos complexos, no menor tempo possvel. A arquitetura do Solomon contava com um processador central que controlava outros processadores, assim o resultado dos processadores filhos eram armazenados em um vetor. O processador principal tinha instrues especficas para tratar os resultados contidos neste vetor [1]. Infelizmente, durante a dcada de 60 no houve sucesso no desenvolvimento de novos processadores vetoriais, at 1976, quando surgiu o Cray-1, que foi utilizado na NCAR, National Center For Atmospheric Research, nos Estados Unidos. O Cray-1 foi considerado o primeiro computador vetorial, especialmente por conter registradores vetoriais. Para a utilizao de todo o poder computacional que este computador disponha na poca, foi lanado, em 1978, uma verso do compilador Fortran com vetorizao automtica [1]. Atualmente, a Cray (empresa que desenvolveu o primeiro processador vetorial), trabalha apenas com arquiteturas paralelas, envolvendo o uso de processadores e processadores grficos, um dos ltimos modelos de supercomputadores que continha apenas a arquitetura vetorial desenvolvido pela Cray, foi o Cray SV1, lanado em 1998. Os processadores atuais contam ainda com conjuntos de instrues vetoriais, como o conjunto SSE (Streaming SIMD Extensions). Processamento Vetorial Seguindo o taxioma de Flynn, o modelo SIMD (Single Instruction Multiple Data) o modelo que mais se aproxima de uma arquitetura vetorial (uma instruo tratada por vrias unidades de processamento que compartilham a memria). Um processador vetorial, alm de conter instrues para tratar dados em vetores e matriz, apresenta tambm formas de trabalhar com escalares, ou seja, trabalha como um processador comum. As instrues vetoriais, podem ser comparadas a um looping de uma instruo escalar [2]. Os registradores de um processador vetorial apresentam a capacidade de armazenamento de 1 a 8 kb, o que pode ser entendido como um rearranjo de 64, 32, 16 ou 8 bits [1]. A quantidade de registradores varia de acordo com o projeto. Caso o vetor de uma operao extrapole o tamanho do registrador, o compilador realiza o overhead, ou seja, quebra o vetor em um tamanho

compatvel com o registrador, e o resto do vetor e colocado em outro registrador, se necessrio realiza-se overhead novamente [2]. Existem seis elementos que constituem um processador vetorial, estes so: memria principal, processador escalar, controlador vetorial, controlador de memria e gerador de endereos vetoriais, registradores e a unidade aritmtica pipeline. O processador escalar trabalha como um processador comum, executando as tarefas de modo sequencial, porm quando identifica uma instruo vetorial, ele repassa esta para o controlador vetorial. O controlador vetorial regula a execuo das instrues, calculando os parmetros de endereamento dos operandos vetoriais e configurando a unidade aritmtica pipeline. Todo tipo de conjunto de dados referentes a endereos de memria so enviados ao controlador de memria e gerador de endereos, que a partir destes dados realiza o acesso a memria principal para buscar os operandos. A unidade aritmtica pipeline executa as instrues vetoriais sobre os operandos buscados, o pipeline alimentado pelos registradores vetoriais. Endereamento em Memria No processamento vetorial, existem duas maneiras de enderear um vetor, o endereamento denso e o esparso. O endereamento denso dividido em trs tipos, sequencial, no sequencial regular e submatriz [1]. -Sequencial: os dados so salvos sequencialmente na memria. -No sequencial regular: os dados so salvos de modo a distarem K posies um do outro, por exemplo, para k = 2, o dado 1 salvo em 0, o dado 2 salvo em 2 (0+k), o dado 3 salvo em 4 (2+k), assim por diante. -Submatriz: l-se a linha e acessam-se todos os dados desta linha. O endereamento esparso utiliza uma matriz de 0 ou 1, que mapeia os operandos, caso aquela posio do operando seja utilizada, ela marcada com 1, caso contrrio 0, assim so executadas apenas instrues sobre a parte dos operandos marcadas com 1, isso evita o gasto de processamento para realizar instrues desnecessrias sobre dados, assim o endereamento se torna mais rpido [1].

Processamento Matricial O processamento vetorial, muitas vezes envolve o tratamento de matrizes (como exemplo, a busca na memria), assim existem duas formas de se processar a matriz, horizontalmente ou verticalmente, tambm existe o hbrido, porm ele no ser tratado no artigo. No processamento horizontal, a cada linha realizada a operao posio por posio e o resultado salvo em X (que pode ser um vetor ou um escalar, depende da operao), isso executado a cada linha da matriz [1]. No processamento vertical, as operaes so realizada em paralelo com as outras colunas da matriz, ou seja, este mtodo leva vantagem sobre o anterior, pois o pipeline deste iniciado apenas uma vez, enquanto no anterior o pipeline executado a cada nova linha [1]. Tipos de Arquitetura Vetorial A arquitetura vetorial dividida em duas, memria-memria e vetorregistrador. No primeiro tipo, as operaes realizadas sobre os operandos so realizadas na memria (processo lento e no mais utilizado), j no segundo caso, as operaes so realizadas em cima dos registradores, porm as operaes load e store utilizam o acesso a memria (carregar da memria para o registrador e salvar o registrador na memria) [2]. Exemplo de Instruo Vetorial Assim como no processamento escalar, existem diversas operaes que podem ser realizadas sobre vetores, para isto forma desenvolvidos um conjunto de operadores que realizam estas tarefas. Uma operao vetorial constituda de cinco elementos, o cdigo da operao, o endereo de base (pode ser um registrador vetorial, ele indica onde buscar os operandos e onde armazenar os resultados), incremento de endereo, off-set de endereo (deslocamento em relao ao endereo base, para acessar vetores deslocados em paralelo) , tamanho do vetor (para indicar o fim da operao dentro do vetor). Abaixo segue um exemplo de instruo vetorial: VADD.VV V1, V2, V3 A operao soma V2+V3 e salva o resultado em V1. Todos os operandos em questo so vetores.

Exemplo de Aplicao O processamento vetorial pode ser utilizado para tratamento de imagens, ou para operaes que utilizem clculos complexos, como previso meteorolgica entre outros. Um exemplo de dispositivo que utiliza processador vetorial, o Play Station 3. A NEC SX-6, utilizado para clculo de simulaes climticas, um exemplo da utilizao de processadores vetoriais, na forma de NUMA. Referncias [1] BERTACCHI, Joo E. F.; PAIVA, Marcelo O. de; KHOURY, Marcelo P. ARQUITETURAS VETORIAIS. Disponvel em: < http://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s2004/g04arquiteturas_vetoriais-texto.pdf>. Acesso em: 17 ago. 2013. [2] SILVA, Gabriel P. ARQUITETURAS DE SISTEMAS DE PROCESSAMENTO PARALELO. Disponvel em: < http://equipe.nce.ufrj.br/gabriel/sispar/ArqPar1.pdf>. Acesso em: 17 ago. 2103.

Você também pode gostar