Introduo ao Processamento Vetorial Tpicos Conceito de pipelining




















- Slides: 20
Introdução ao Processamento Vetorial Tópicos: • • Conceito de pipelining Exemplo 1 : Pipeline de instruções Exemplo 2 : Pipeline de operações aritméticas Introdução a Sistemas Vetoriais Operações Vetoriais Registros Vetoriais e Escalares Opções de Projeto 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 1
Conceito de Pipelining • Pipelining: Operação num modo semelhante a uma linha de produção: – – – Operação global pode ser dividida em estágios Cada estágio realiza uma operação mais simples Tempo de cada estágio pode ser curto Cada estágio recebe resultados do estágio anterior É possível realizar várias operações simultaneamente (cada uma em um estágio num dado momento) – Estágios operam sincronamente – Ciclo de operação é ditado pelo estágio mais lento 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 2
Conceito de Pipelining (cont. ) • Exemplo: Operação original Op-1 28 -09 -1998 Op-2 Op-3 Op-4 Op-1 Op-2 Op-3 INPE / CAP-315 Airam J. Preto , Celso L. Mendes Op-4 3
Conceito de Pipelining (cont. ) • Execução sem pipelining: • Execução com pipelining: 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 4
Conceito de Pipelining (cont. ) • Observações: – Tempo de uma operação é o mesmo, com ou sem pipelining – Tempo de término da primeira operação é o mesmo, com ou sem pipelining – Ganho começa a existir a partir da segunda operação – Hipótese: todos os estágios têm a mesma duração 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 5
Pipeline de Instruções • Componentes da execução de uma instrução: – – – IF: Instruction Fetch ID: Insruction Decode, register fetch EX: Execution MEM: Memory access WB: register Write Back IF ID EX MEM WB t 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 6
Pipeline de Instruções (cont. ) Objetivo: completar uma instrução por ciclo IF ID EX MEM WB (1) IF ID EX MEM WB IF ID EX MEM T 1 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes (2) T 2 (3) T 3 7
Pipeline de Instruções (cont. ) Problema 1: Atrasos no acesso à memória IF 28 -09 -1998 ID EX MEM WB IF ID EX MEM INPE / CAP-315 Airam J. Preto , Celso L. Mendes (1) (2) WB 8
Pipeline de Instruções (cont. ) Problema 2: Dependências entre instruções (1 2) IF ID EX MEM WB IF 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes (1) ID EX (2) IF ID EX 9
Pipeline de Operações Aritméticas • Componentes de uma operação de soma em ponto flutuante (mantissa&expoente): – – – A: Comparar expoentes B: Deslocar mantissa relativa ao menor expoente C: Somar mantissas D: Normalizar resultado E: Verificar excessões (overflow, etc. ) F: Arredondar resultado A 28 -09 -1998 B C D INPE / CAP-315 Airam J. Preto , Celso L. Mendes E F 10
Pipeline de Operações Aritméticas (cont. ) Ex: X+Y , X={x 1, x 2, . . . x. N} , Y={y 1, y 2, . . . , y. N} Execução sem pipeline: Tempo = 6 T. N Execução com pipeline: A T 2 T 3 T 4 T 5 T 6 T 7 T 8 T . . . 28 -09 -1998 x 1+y 1 x 2+y 2 x 3+y 3 x 4+y 4 x 5+y 5 x 6+y 6 x 7+y 7 x 8+y 8 B C x 1+y 1 x 2+y 2 x 3+y 3 x 4+y 4 x 5+y 5 x 6+y 6 x 7+y 7 x 1+y 1 x 2+y 2 x 3+y 3 x 4+y 4 x 5+y 5 x 6+y 6 D x 1+y 1 x 2+y 2 x 3+y 3 x 4+y 4 x 5+y 5 E x 1+y 1 x 2+y 2 x 3+y 3 x 4+y 4 INPE / CAP-315 Airam J. Preto , Celso L. Mendes F x 1+y 1 1 o result x 2+y 2 2 o result x 3+y 3 3 o result 11
Introdução a Sistemas Vetoriais • Sistemas Vetoriais: voltados para operações numéricas em vetores • Vetor: coleção linear de valores Ex: X = { x 1 , x 2 , x 3 , . . . , x. N } N comprimento do vetor • Operações Vetoriais: – Realizadas elemento-a-elemento – Mesma operação é repetida N vezes – Caso típico para aplicação de pipelining ! 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 12
Introdução a Sistemas Vetoriais (cont. ) • Características de Sistemas Vetoriais: – Suporte de hardware para operações vetoriais – Instrução vetorial para execução de várias operações similares sobre elementos distintos dos vetores – Uso intensivo de pipelining – Unidades funcionais especiais para execução das operações vetoriais – Acesso à memória deve ser rápido e uniforme (mesmo tempo de acesso para todos os elementos de um vetor) Tipicamente, não há caches nem memória virtual! 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 13
Operações Vetoriais • Exemplo: A=B+C A , B , C : vetores B C 28 -09 -1998 Vetores de Entrada Unidades Funcionais com Pipeline INPE / CAP-315 Airam J. Preto , Celso L. Mendes Vetor de Saída A 14
Operações Vetoriais (cont. ) • Exemplo: A=s*B+C A , B , C : vetores s : escalar Código de alto-nível: real A(N), B(N), C(N), s do 10 i = 1 , N A(i) = s * B(i) + C(i) 10 continue 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 15
Operações Vetoriais (cont. ) • Pseudo-código num processador convencional: carregar s para registro carregar limite do loop para registro carregar índice (inicialmente zero) Loop: incrementar índice comparar índice & limite se igual, desviar para Fim carregar B(i) para registro carregar C(i) para registro multiplicar s * B(i) somar [s * B(i) ] + C(i) salvar resultado na memória desviar para Loop Fim: terminar a execução 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 16
Operações Vetoriais (cont. ) • Pseudo-código num processador vetorial: carregar s para registro escalar carregar limite do loop para registro de comprimento carregar B para registro vetorial carregar C para registro vetorial multiplicar s * B (multiplicação vetorial) somar s * B + C (adição vetorial) salvar resultado na memória (operação vetorial) • Constatações: – Número de instruções executadas é bem menor – Número de operações aritméticas é o mesmo 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 17
Registros Vetoriais e Escalares • Registro Vetorial: – Conjunto de K registros convencionais – Valores típicos de K: 32, 64, 128 Ex: Cray-1 64 registros, 64 bits em cada registro – Pode conter valores inteiros ou em ponto-flutuante – Pode ser fonte ou destino de operações vetoriais Ex: VA VB + VC implica VA (1) VB (1) + VC (1) VA (2) VB (2) + VC (2) VA (3) VB (3) + VC (3). . . VA (K) VB (K) + VC (K) 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 18
Registros Vetoriais e Escalares • Registro Escalar: – Contém um único valor – Pode haver registros separados para inteiros e para ponto-flutuante – Pode ser fonte de operações vetoriais Ex: VA S * VB implica VA (1) S * VB (1) VA (2) S * VB (2) VA (3) S * VB (3). . . VA (K) S * VB (K) 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 19
Opções de Projeto • Operandos de operações com unidades funcionais: – registros vetoriais – memória (não há registros vetoriais) • Registros vetoriais: – Quantidade e tamanho fixos – Quantidade e tamanho reconfiguráveis • Número de portas de leitura/escrita na memória • Estrutura da memória (com ou sem interleaving) • Operações especiais: – Scatter, Gather, Redução 28 -09 -1998 INPE / CAP-315 Airam J. Preto , Celso L. Mendes 20




















