Arquitetura de Computadores<br />Universidade de São Paulo<br />Dr. Jorge Luiz e Silva<br />
Arquiteturas Matriciais<br />Máquinas Multivetores<br />Máquinas SIMD<br />
Conceitos básicos de Processamento Vetorial<br /><ul><li> Vetor é um conjunto de dados escalares, todos do mesmo tipo, arm...
 Um processador vetorial (vectorprocessor) é um hardware que pode ser composto de pipelines funcionais, elementos de proce...
 O processamento vetorial ocorre quando executamos operações aritméticas ou lógicas sobre vetores (operandos vetoriais - v...
 Processador escalar geralmente opera sobre um ou um par de dados.</li></li></ul><li>Tipos de operações vetoriais<br /><ul...
 Instruções Vetor - escalar onde um um operando vetorial e um escalar geram um outro vetor
 Instruções Vetor - memória  onde carregar ou recuperar elementos vetoriais da memória a parir de um registrador vetorial ...
 Instruções Vetor - redução onde um ou dois operandos vetoriais geram um elemento escalar.
 Instruções de Agrupamento - espalhamento</li></li></ul><li>
Mecanismo de Acesso a Vetores na Memória<br /><ul><li>Operandos vetoriais podem ter tamanhos variáveis.
 Cada elemento do vetor não necessariamente estão em posições contiguas na memória.
 Para acessar elementos de um Vetor ou uma Matriz em memória, é necessário se especificar um endereço de base, um valor pa...
 Dependendo do tamanho do vetor ou matriz, e em função da capacidade do hardware, às vezes é preciso segmentar o vetor ou ...
 Se considerarmos saltos de tamanho 1, endereços sucessivos serão armazenados em buffers à taxa de um por ciclo. Lógicamen...
 Se considerarmos salto de tamanho 2, os acessos serão feitos em dois ciclos menores, o que implicará na metade do desempe...
 Para salto de tamanho 3, os acesso voltam a ser como os de tamanho 1.</li></li></ul><li>
Organização de MemóriaS-access<br /><ul><li>Simultaneous-access onde os módulos de memórias são acessados simultaneamente ...
 Para cada ciclo m palavras consecutivas são armazenadas nos buffer de dados simultaneamente, que são acessados após m cic...
Próximos SlideShares
Carregando em…5
×

Aula 6 de Arquitetura de Computadores

6.324 visualizações

Publicada em

Aulas do Prof. Jorge, ICMC-USP

Publicada em: Educação, Tecnologia
  • Seja o primeiro a comentar

Aula 6 de Arquitetura de Computadores

  1. 1. Arquitetura de Computadores<br />Universidade de São Paulo<br />Dr. Jorge Luiz e Silva<br />
  2. 2. Arquiteturas Matriciais<br />Máquinas Multivetores<br />Máquinas SIMD<br />
  3. 3. Conceitos básicos de Processamento Vetorial<br /><ul><li> Vetor é um conjunto de dados escalares, todos do mesmo tipo, armazenados na memória.
  4. 4. Um processador vetorial (vectorprocessor) é um hardware que pode ser composto de pipelines funcionais, elementos de processamento e registradores contadores.
  5. 5. O processamento vetorial ocorre quando executamos operações aritméticas ou lógicas sobre vetores (operandos vetoriais - vectoroperand)
  6. 6. Processador escalar geralmente opera sobre um ou um par de dados.</li></li></ul><li>Tipos de operações vetoriais<br /><ul><li> Instruções Vetor-vetor onde um ou dois operandos vetoriais geram um terceiro, a partir de uma operação qualquer.
  7. 7. Instruções Vetor - escalar onde um um operando vetorial e um escalar geram um outro vetor
  8. 8. Instruções Vetor - memória onde carregar ou recuperar elementos vetoriais da memória a parir de um registrador vetorial (registradores que armazenam os elementos de um vetor)
  9. 9. Instruções Vetor - redução onde um ou dois operandos vetoriais geram um elemento escalar.
  10. 10. Instruções de Agrupamento - espalhamento</li></li></ul><li>
  11. 11.
  12. 12. Mecanismo de Acesso a Vetores na Memória<br /><ul><li>Operandos vetoriais podem ter tamanhos variáveis.
  13. 13. Cada elemento do vetor não necessariamente estão em posições contiguas na memória.
  14. 14. Para acessar elementos de um Vetor ou uma Matriz em memória, é necessário se especificar um endereço de base, um valor para salto e o comprimento do vetor ou matriz.
  15. 15. Dependendo do tamanho do vetor ou matriz, e em função da capacidade do hardware, às vezes é preciso segmentar o vetor ou a matriz.</li></li></ul><li>Organização de Memória C-access<br /><ul><li>Concurrent Access -onde m palavras em uma memória deve ser acessada na forma interleaved.
  16. 16. Se considerarmos saltos de tamanho 1, endereços sucessivos serão armazenados em buffers à taxa de um por ciclo. Lógicamentem ciclos menores para se acessar as m palavras da memória.
  17. 17. Se considerarmos salto de tamanho 2, os acessos serão feitos em dois ciclos menores, o que implicará na metade do desempenho do primeiro modelo.
  18. 18. Para salto de tamanho 3, os acesso voltam a ser como os de tamanho 1.</li></li></ul><li>
  19. 19. Organização de MemóriaS-access<br /><ul><li>Simultaneous-access onde os módulos de memórias são acessados simultaneamente e de forma sincronizada.
  20. 20. Para cada ciclo m palavras consecutivas são armazenadas nos buffer de dados simultaneamente, que são acessados após m ciclos menores. Isso pode ser overlapped, entre o acesso a memórias e os buffers de dados, o que no final determinam que o acesso a m palavras ocorrerão em apenas um ciclo de memória.</li></li></ul><li>Organização de MemóriaC/S-access<br /><ul><li> Combina os dois esquemas onde n barramentos de acesso são usados em m módulos de memória interleaved.
  21. 21. Em cada ciclo de memória, ao menos m . N palavras são acessadas.
  22. 22. Usado para configurações multiprocessadores vetoriais (vectormultiprocessor).
  23. 23. Em função da alta velocidade do mecanismo de acesso à memória, pode se utilizar um sistema de Cache para garantir o fluxo dos dados.</li></li></ul><li>
  24. 24. Máquinas Multivetores<br /><ul><li> Em uma máquina vetorial, podemos ter por exemplo um processador vetorial (vectorprocessor) ligado a um processdor escalar (scalarprocessor) interligados a uma memória principal, onde programas e dados são carregado a partir de um computador hospedeiro.
  25. 25. Todas as instruções são inicialmente decodificadas por uma unidade de controle escalar. Se a instrução é escalar vai para o processador escalar, se é uma instrução vetorial, vai para o processador vetorial, onde uma unidade de controle vetorial gerencia a execução da instrução.</li></li></ul><li>
  26. 26. Modelos de Processadores Vetoriais<br /><ul><li> Arquitetura registrador-para-registrador, onde resultados intermediários e finais, gerados em cada elemento de um vetor, são armazenados em registradores (vectorregisters)
  27. 27. Pipelines funcionais recebem operandos e colocam resultados em cada um desses registradore.
  28. 28. O comprimento de cada registrador pode ser fixo (Cray - 64 bits) ou pode ser reconfigurável (Fujitsu - VP2000).
  29. 29. Arquiteturas memória-para-memória, os operandos vetoriais são acessados diretamente da memória</li></li></ul><li>
  30. 30. Máquinas SIMD<br /><ul><li> Possui um conjunto de Eps em geral com memória distribuida, podendo também possuir um mecanismo com memória compartilhada.
  31. 31. Em geral uma unidade de controle é responsável pela execução de uma determinada instrução em cada EP.
  32. 32. Em geral os Eps são simples somadores, multiplicadores, executando instruções que foram enviadas a todos os EP, sincronizados pela unidade de controle.</li></li></ul><li>Máquinas SIMD - Memória Distribuida<br /><ul><li>Array de EP controlados por uma mesma unidade de controle.
  33. 33. Programas e dados são carregados para a memória de controle a partir de uma máquina hospedeira.
  34. 34. Um instrução é enviada para a unidade de controle para decodificação - se for escalar será executada por um processador escalar - se for vetorial, será enviada a todos os Eps para execução em paralelo.</li></li></ul><li>
  35. 35. Máquinas SIMD - Memória Compartilhada<br /><ul><li> Uma rede é utilizada para interconectar processadores e memórias.
  36. 36. Os dados são enviados pela máquina hospedeira.
  37. 37. Da mesma forma EP recebem instruções na forma broadcast e as executam em paralelo.</li>

×