aula 6 de arquitetura de computadores

20
Arquitetura de Computadores Universidade de São Paulo Dr. Jorge Luiz e Silva

Upload: marco-silva

Post on 09-Jun-2015

5.415 views

Category:

Education


1 download

DESCRIPTION

Aulas do Prof. Jorge, ICMC-USP

TRANSCRIPT

Page 1: Aula 6 de Arquitetura de Computadores

Arquitetura de Computadores

Universidade de São PauloDr. Jorge Luiz e Silva

Page 2: Aula 6 de Arquitetura de Computadores

Máquinas Multivetores

Máquinas SIMD

Arquiteturas Matriciais

Page 3: Aula 6 de Arquitetura de Computadores

Conceitos básicos de

Processamento Vetorial

• Vetor é um conjunto de dados escalares, todos do mesmo tipo, armazenados na memória.• Um processador vetorial (vector processor) é um hardware que pode ser composto de pipelines funcionais, elementos de processamento e registradores contadores.• O processamento vetorial ocorre quando executamos operações aritméticas ou lógicas sobre vetores (operandos vetoriais - vector operand)• Processador escalar geralmente opera sobre um ou um par de dados.

Page 4: Aula 6 de Arquitetura de Computadores

Tipos de operações vetoriais

• Instruções Vetor-vetor onde um ou dois operandos vetoriais geram um terceiro, a partir de uma operação qualquer.• 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 (registradores que armazenam os elementos de um vetor)• Instruções Vetor - redução onde um ou dois operandos vetoriais geram um elemento escalar.• Instruções de Agrupamento - espalhamento

Page 5: Aula 6 de Arquitetura de Computadores
Page 6: Aula 6 de Arquitetura de Computadores
Page 7: Aula 6 de Arquitetura de Computadores

Mecanismo de Acesso a Vetores

na Memória• 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 para salto e o comprimento do vetor ou matriz.• Dependendo do tamanho do vetor ou matriz, e em função da capacidade do hardware, às vezes é preciso segmentar o vetor ou a matriz.

Page 8: Aula 6 de Arquitetura de Computadores

Organização de Memória C-access

• Concurrent Access -onde m palavras em uma memória deve ser acessada na forma interleaved.• Se considerarmos saltos de tamanho 1, endereços sucessivos serão armazenados em buffers à taxa de um por ciclo. Lógicamente m ciclos menores para se acessar as m palavras da memória.• 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. • Para salto de tamanho 3, os acesso voltam a ser como os de tamanho 1.

Page 9: Aula 6 de Arquitetura de Computadores
Page 10: Aula 6 de Arquitetura de Computadores

Organização de MemóriaS-access

• Simultaneous-access onde os módulos de memórias são acessados simultaneamente e de forma sincronizada.• 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.

Page 11: Aula 6 de Arquitetura de Computadores

Organização de Memória

C/S-access• Combina os dois esquemas onde n barramentos de acesso são usados em m módulos de memória interleaved.• Em cada ciclo de memória, ao menos m . N palavras são acessadas.• Usado para configurações multiprocessadores vetoriais (vector multiprocessor).• 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.

Page 12: Aula 6 de Arquitetura de Computadores
Page 13: Aula 6 de Arquitetura de Computadores

Máquinas Multivetores• Em uma máquina vetorial, podemos ter por exemplo

um processador vetorial (vector processor) ligado a um processdor escalar (scalar processor) interligados a uma memória principal, onde programas e dados são carregado a partir de um computador hospedeiro.• 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.

Page 14: Aula 6 de Arquitetura de Computadores
Page 15: Aula 6 de Arquitetura de Computadores

Modelos de Processadores

Vetoriais• Arquitetura registrador-para-registrador, onde resultados intermediários e finais, gerados em cada elemento de um vetor, são armazenados em registradores (vector registers)• Pipelines funcionais recebem operandos e colocam resultados em cada um desses registradore.• O comprimento de cada registrador pode ser fixo (Cray - 64 bits) ou pode ser reconfigurável (Fujitsu - VP2000).• Arquiteturas memória-para-memória, os operandos vetoriais são acessados diretamente da memória

Page 16: Aula 6 de Arquitetura de Computadores
Page 17: Aula 6 de Arquitetura de Computadores

Máquinas SIMD• Possui um conjunto de Eps em geral com memória distribuida, podendo também possuir um mecanismo com memória compartilhada.• Em geral uma unidade de controle é responsável pela execução de uma determinada instrução em cada EP.• Em geral os Eps são simples somadores, multiplicadores, executando instruções que foram enviadas a todos os EP, sincronizados pela unidade de controle.

Page 18: Aula 6 de Arquitetura de Computadores

Máquinas SIMD - Memória

Distribuida• Array de EP controlados por uma mesma unidade de controle.• Programas e dados são carregados para a memória de controle a partir de uma máquina hospedeira.• 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.

Page 19: Aula 6 de Arquitetura de Computadores
Page 20: Aula 6 de Arquitetura de Computadores

Máquinas SIMD - Memória

Compartilhada• Uma rede é utilizada para interconectar processadores e memórias.

• Os dados são enviados pela máquina hospedeira.

• Da mesma forma EP recebem instruções na forma broadcast e as executam em paralelo.