Processadores vetoriais
Um processador vetorial normalmente consiste de:
-Memória principal
-Processador Escalar
-Controlador Vetorial
-Controlador de Memória e Gerador de Endereços Vetoriais
-Memória Local (Registradores)
-Unidade Aritmética Pipeline [pic]
O Processador Escalar realiza as tarefas que devem ser feitas de modo seqüencial, como execução de trechos de código seqüenciais, testes de dependência de dados, gerenciamentos de E/S e memória, e controle de programa. Quando o processador escalar identifica uma instrução vetorial, esta é passada ao Controlador Vetorial. Este controla a execução das instruções, calculando os parâmetros de endereçamento dos operandos vetoriais e configurando a Unidade Aritmética Pipeline.
Os parâmetros de endereçamento são enviados ao Controlador de Memória e Gerador de Endereços que a partir destes parâmetros realiza os acessos à Memória Principal para a busca dos operandos. A Unidade Aritmética Pipeline executa as instruções vetoriais aplicando as funções aritméticas sobre vetores. A Memória Local tem como objetivo suprir as necessidades da Unidade Aritmética, servindo como meio de armazenamento intermediário entre a Unidade Aritmética e a Memória Principal.
[pic]
2.0 Modos de Endereçamento
Existem basicamente dois modos de endereçamento vetorial:
-Denso / Regular
-Esparso
Modo Denso / Regular:
É o caso mais comum de armazenamento de dados em memória. Ocorre quando os dados estão em posições adjacentes na memória ou dispostos seguindo um padrão regular. Existem três tipos de acesso Denso ou Regular:
i)Seqüencial: dados estão dispostos de forma contígua na memória. Para um certo dado V(i) do vetor armazenado numa posição P de memória, o próximo dado V(i+1) se encontrará na posição P+1.
[pic]
Figura 2: Endereçamento Sequencial ii)Não seqüencial mas regular: dados estão dispostos com um intervalo de N palavras entre eles na memória. Ocorre quando acessamos uma coluna de uma matriz