A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Douglas Gameiro Diniz RA: Fernando Mendonça Maranho RA:016089

Apresentações semelhantes


Apresentação em tema: "Douglas Gameiro Diniz RA: Fernando Mendonça Maranho RA:016089"— Transcrição da apresentação:

1 Douglas Gameiro Diniz RA: 008505 Fernando Mendonça Maranho RA:016089
ITANIUM 2 Freqüentemente, os apresentadores têm que mostrar um material de natureza técnica para um público que não está familiarizado com o tópico nem com o vocabulário. O material pode ser complexo ou cheio de detalhes. Para apresentar o material eficientemente, use as seguintes diretrizes da Dale Carnegie Training®. Considere o tempo disponível e prepare-se para organizar seu material. Divida sua apresentação em segmentos claros. Siga uma progressão lógica. Mantenha seu foco constantemente. Feche a apresentação com um resumo, repetição das etapas-chave ou uma conclusão lógica. Lembre-se do público constantemente. Por exemplo, certifique-se de que os dados estejam claros e que as informações sejam relevantes. Mantenha o nível de detalhes e vocabulário apropriados ao público. Use recursos visuais para dar suporte a etapas ou pontos-chave. Fique alerta às necessidades dos seus ouvintes e obterá um público mais receptivo. Douglas Gameiro Diniz RA: Fernando Mendonça Maranho RA:016089 Copyright © MC722. Professor Rodolfo.

2 Visão Geral Desenvolvido entre 1997 e 2000 pela aliança HP / Intel para arquiteturas IA-64 Processador de 64 bits Utilizado em servidores de grande porte e aplicações técnicas que exigem alto desempenho. Compatibilidade binária com o conjunto de instruções IA-32 Na sua abertura, estabeleça a relevância do tópico para o público. Forneça uma breve visão da apresentação e estabeleça valores aos ouvintes. Leve em consideração o interesse e experiência do público em relação ao tópico ao escolher seu vocabulário, exemplos e ilustrações. Enfatize a importância do tópico para o seu público e você obterá ouvintes mais atentos.

3 Visão Geral Baseado na arquitetura EPIC – Explicitly Parallel Instruction Computing Motivação: Conseguir ILP eficiente sem grande aumento na complexidade do hardware, como era o caso dos processadores RISC superescalares Na sua abertura, estabeleça a relevância do tópico para o público. Forneça uma breve visão da apresentação e estabeleça valores aos ouvintes. Leve em consideração o interesse e experiência do público em relação ao tópico ao escolher seu vocabulário, exemplos e ilustrações. Enfatize a importância do tópico para o seu público e você obterá ouvintes mais atentos.

4 Visão Geral

5 Versões do Itanium 2 Oferecido em 3 versões principais:
Se você possui vários pontos, etapas ou idéias-chave, use vários slides. Determine se o público compreenderá uma nova idéia, aprenderá um processo ou receberá uma profundidade maior de um conceito familiar. Baseia cada ponto com uma explicação adequada. Quando necessário, complemente sua apresentação com dados técnicos de suporte em papel ou em disco, correio eletrônico ou Internet. Desenvolva cada ponto adequadamente para comunicar-se com o público.

6 Características da arquitetura EPIC
Arranjo de instruções em grupos que explicitamente denotam paralelismo Disponibilidade abundante de registradores: permite a implementação de pilhas usando-se registradores Predication - instruções com predicado: permite a eliminação de desvios (branches) Determine o melhor fechamento para o seu público e apresentação. Feche com um resumo; ofereça opções; recomende uma estratégia; sugira um plano; defina uma meta. Mantenha o seu foco durante sua apresentação e será mais fácil atingir sua finalidade.

7 Características da arquitetura EPIC
Especulação de controle e de dados: minimiza o impacto da latência no acesso à memória Cache Hints: otimiza o uso da estrutura de cache multi-nível Prefetch de instruções: reduz a taxa de cache misses Determine o melhor fechamento para o seu público e apresentação. Feche com um resumo; ofereça opções; recomende uma estratégia; sugira um plano; defina uma meta. Mantenha o seu foco durante sua apresentação e será mais fácil atingir sua finalidade.

8 INTERFACE DE PROGRAMAÇÃO
Instruções têm 41 bits e são lidas da memória em conjuntos de 3 instruções (bundles) Campo template de 5 bits, que indica à CPU como decodificar e executar as 3 instruções do bundle Total: 128 bits

9 Grupos de instruções Contém instruções que podem ser realizadas em paralelo Necessário que o compilador ou programador assembly explicitamente indique os grupos de instruções que não tenham dependências Podem ser disparadas sem a necessidade de verificações de hardware Não existe um mapeamento direto entre bundles e grupos

10 Expressando paralelismo
Grupos delimitados por Stops (indicados por dois ponto-e-vírgula seguidos) Exemplo: ld8 r1=[r5] // primeiro grupo sub r6=r8,r9 ;; // primeiro grupo add r3=r1,r4 // segundo grupo st8 [r6]=r // segundo grupo

11 Sintaxe das instruções
[qp] mnemonic[.comp] dest=srcs qp especifica um qualifying predicate register (registrador de predicado qualificador). mnemonic especifica um nome que identifica unicamente a instrução comp especifica um ou mais complementos dest representa o(s) operando(s) de destino srcs representa os operandos fonte Exemplo: cmp.eq p1,p2 = r1,r2 // p1 = (r1==r2), // p2 = (r1!=r2)

12 Formato e tipos de instruções
O formato geral de uma instrução pode ser representado da seguinte forma:

13 Registradores Grande número de registradores, o que diminui a freqüência de acessos à memória: registradores de uso geral (r0-r127), de 64 bits registradores de ponto flutuante (f0-f127), de 82 bits - 64 registradores de predicado (p0-p63), de 1 bit 8 registradores de branch (b0-b7), de 64 bits Até 128 registradores de aplicação (ar0-ar127), de 64 bits (comumente possuem aliases) Instruction Pointer, de 64 bits, contém o endereço do bundle que estiver executando no momento

14 INTRUDUÇÃO À ARQUITETURA DO ITANIUM 2
Características do conjunto de instruções: Paralelismo Explícito: - Mecanismos de sinergia (esforço simultâneo) entre o compilador e o processador; - Recursos massivos para tomar vantagem do paralelismo no nível de instrução; - Suporte para várias unidades de execução e portas de memória.

15 Paralelismo no nível de instrução (ILP)
Habilidade de executar múltiplas instruções ao mesmo tempo Tratamento de instruções especiais em bundles (pacotes), com três instruções por bundle, e pode tratar 2 bundles por clock. Permite ao compilador explorar informação especulativa sem sacrificar a execução correta de uma aplicação.

16 Especulação Tratar operações mais cedo Reduz latência de memória
Tipos de especulação: de controle e de dados Recovery code: - repete o load e a cadeia de instruções dependentes para recuperar-se de uma especulação incorreta. - Também deve ser gerado pelo compilador

17 Especulação de Controle
Execução de uma operação antes do branch que a precede Se o novo load especulativo de controle causar uma exceção: - a exceção é adiada (setando o bit NaT em 1) e deve ser aceita somente se a condição for verdadeira.

18 Especulação de Controle
Exemplo: if (a>b) load(ld_addr1, target1) else load(ld_addr2, target2) Transforma-se em: /* fora do caminho crítico */ sload(ld_addr1, target1) sload(ld_addr2, target2) /* outras operacões incluindo incluindo os usos de target1/target2 */ if (a>b) scheck(target1, recovery_addr1) else scheck(target2, recorery_addr2)

19 Especulação de Dados Execução de um load de memória antes de um store que o precede e que pode potencialmente ter dependência com ele Referenciados como “loads avançados” ALAT (Advanced Load Address Table) - usada para prover especulação de dados no Itanium. A estrutura física da ALAT possui 32 entradas e é organizada de forma fully associative.

20 Especulação de Dados Exemplo: load(ld_addr, target) use(target)
store(st_addr, data) load(ld_addr, target) use(target) Transforma-se em: /* fora do caminho crítico */ aload(ld_addr, target) /* outras operações incluindo usos do alvo*/ acheck(target, recovery_addr)

21 Predication Execução condicional de instruções
Arquiteturas tradicionais: implementada através de branches. Itanium2: implementada através do uso de instruções com predicado (predicated instruction). Campo qp (qualifying predicate) de 5 bits no formato das instruções. Se o valor do predicado é verdadeiro (1), então a instrução atualiza o estado. Caso contrário ela geralmente se comporta como um nop.

22 Predication if (a>b) c = c + 1
Permite evitar branches e simplifica otimizações do compilador. if (a>b) c = c + 1 else d = d * e + f Torna-se: pT, pF = compare (a>b) if (pT) c = c // instrução com predicado pT if (pF) d = d * e + f // instrução com predicado pF Exemplo: O compilador pode escalonar as instruções sob pT e pF para executar em paralelo

23 O bit NaT (Not A Thing) É um bit extra dos registradores de uso geral
Indica se o conteúdo do registrador é válido Se o bit NaT é setado em 1, o registrador contém uma exceção adiada (deferred exception). Propagação dos bits NaT - se uma instrução lê um registrador fonte que tem seu bit NaT setado, os bits NaT dos registradores destino da instrução também são setados

24 Pilha de Registradores
Evita salvar e restaurar registradores na chamada e retorno de procedimentos Conteúdo de registradores físicos é movido entre o banco de registradores e a memória sem intervenção explícita do programa Aparenta ser uma pilha ilimitada de registradores físicos. Instrução alloc - especifica o número de registradores que o procedimento espera utilizar.

25 Pilha de Registradores
É feito o renomeamento do identificador do registrador virtual nas instruções através de um registrador base nos registradores físicos. Se registradores suficientes não estão disponíveis (stack overflow), o alloc pára (stall) o processador e salva os registradores do chamador até que o número desejado de registradores esteja disponível. RSE (Register Stack Engine) - mecanismo de hardware que realiza o gerenciamento.

26 Branching Mecanismos para diminuir a taxa de predição incorreta de branches e o custo (penalidade) das predições incorretas Instruções de predição de branches: - usadas para comunicar de forma antecipada o endereço alvo e a localização do branch Compilador indica se um branch deve ser predito dinamicamente ou estaticamente Registradores de branch (para branches indiretos): - endereço alvo pode ser computado mais cedo.

27 Rotação de Registradores
Pipelining de software: permite executar as iterações do loop em paralelo em vez de seqüencialmente Renomeamento de registradores: - provê a cada iteração o seu próprio conjunto de registradores Significativa redução de overhead de loop

28 PROCESSADOR O Itanium2 possui as seguintes unidades de execução:
- 6 unidades para inteiros, - 6 unidades para multimídia, - 2 unidades para ponto flutuante, - 3 unidades para desvio, - 4 unidades para load/store

29 PROCESSADOR Consegue executar instruções de 32 bits nativamente executando instruções de 64 bits Unidade de multimídia - pode tratar dados de 64 bits como também pacotes de dados de: - 2 x 32 bits - 4 x 16 bits - 8 x 8 bits

30 Processamento da Instrução
Prefetch e Fetch da Instrução: - move linhas de instruções de caches de níveis mais altos ou memória, para a L1I - mecanismo efetivo de redução de cache misses Especulativamente carrega as instruções da cache de instruções L1 em um buffer: - capacidade de até 8 bundles de intruções

31 Processamento da Instrução
Prefetch eficiente de instruções : - Demand Prefetching - realiza automaticamente o prefetch da próxima linha consecutiva no cache L1I, se essa linha extra estiver contida dentro do cache L2. - Streaming Prefetching - compilador pode adicionar uma dica para qualquer instrução de branch, instruindo a fazer prefetch das instruções naquele endereço.

32 PIPELINE O Itanium2 introduziu um grau avançado de diferenciação dos pipelines. Fila de espera (buffering) que permite que as instruções se completem fora de ordem: - previne que instruções para inteiros tenham que esperar pelas instruções de ponto flutuante, cujo pipeline é constituído de dois estágios a mais Uma falha na previsão de um desvio despende 6 ciclos adicionais

33 PIPELINE Pipeline composto de 8 estágios, que podem ser agrupados em duas fases maiores: front-end: 2 estágios (1) gera apontador de instrução, (2) coloca no bundle 0 a primeira instrução a ser executada back-end: 6 estágios (3) distribui as instruções para as unidades funcionais, (4) renomeia registradores, (5) lê registradores, (6) executa as operações, (7) detecta exceções, (8) realiza write-back

34 MEMÓRIA 3 níveis de caches:
- cache de instruções de primeiro nível (L1I) - cache de dados de primeiro nível (L1D) - cache unificada de segundo nível (L2) - cache unificada de terceiro nível (L3). A cache L1 sustenta uma taxa de 32 bytes de leitura por ciclo para suportar a taxa de fetch de 2 bundles por ciclo

35 MEMÓRIA Cache hints (dicas de cache): otimizam o uso da estrutura de cache multi-nível. Traz dados nas caches antes do programa precisar deles: reduz a latência efetiva de acesso à memória Todo load e store de memória tem um campo de 2 bits para cache hint, no qual o compilador codifica sua predição da localidade espacial e/ou temporal da área de memória sendo acessada.

36 Translation Lookaside Buffers (TLBs)
Conversão de endereços virtuais para endereços reais O Itanium2 emprega uma TLB de dois níveis para referências de instruções (L1 ITLB e L2 ITLB) e uma TLB de dois níveis para referências de dados (L1 DTLB e L2 DTLB).

37 Translation Lookaside Buffers (TLBs)
Quando uma página de tradução é trocada no L1 ITLB, todas as entradas na cache L1I pertencentes à página em questão são invalidadas. O mesmo vale para a L1 DTLB A política de substituição de páginas utilizadas é a LRU (Least Recently Used) O Itanium2 suporta páginas de tamanho 4K, 8K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1GB e 4GB São suportados maiores endereços físicos (constituídos de 50 bits) e virtuais (constituídos de 64 bits)

38 Hardware Page Walker (HPW)
O HPW é o terceiro nível de tradução de endereços. É um hardware que executa buscas de páginas a partir da Tabela Hash de Página Virtual (VHPT – Virtual Hash Page Table). Quando um miss no segundo nível da DTLB ou ITLB é encontrado, o HPW acessará (quando necessário) a cache L2, a cache L3, e finalmente a memória para obter a página de entrada

39 Barramentos O barramento de dados é de 128 bits de largura e opera de forma síncrona Pico de largura de banda: 400 milhões de transações de memória ou 6.4 GB por segundo

40 Perguntas Maiores detalhes:


Carregar ppt "Douglas Gameiro Diniz RA: Fernando Mendonça Maranho RA:016089"

Apresentações semelhantes


Anúncios Google