1 / 47

SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas

SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas. Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita. Tipos de Paralelismo. BLP: Bit Level Parallelism Interno a instrução Explorado desde a década de 70 ILP: Instruction Level Parallelism

keitha
Download Presentation

SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SSC114 Arquitetura de ComputadoresParalelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

  2. Tipos de Paralelismo • BLP: Bit Level Parallelism • Interno a instrução • Explorado desde a década de 70 • ILP: Instruction Level Parallelism • Paralelismo entre instruções • Explorado a partir do final da década de 80 • Processadores cada vez mais complexos • DLP: Data Level Parallelism (em paralelo) • Explorado em arquiteturas SIMD, Arranjos Sistólicos, etc.

  3. Tipos de Paralelismo • TLP: Task Level Parallelism • Vários enfoques: • Processo • Thread • Job • Para cada enfoque tem-se diferentes arquiteturas

  4. Paralelismo a nível de instrução • Processadores Escalares • Processadores Superescalares • Processadores Pipelined • Processadores Superpipelined • Processadores VLIW

  5. Processadores Superescalares • Processadores Escalares • Uma instrução por ciclo • Uma instrução terminada por ciclo • Processadores Superescalares • Múltiplas instruções consideradas em um único ciclo • Múltiplas instruções podem ser terminadas em um ciclo • Desenvolvidos como uma alternativa a processadores vetoriais

  6. Processadores Superescalares • Processador pipeline de 4 estágios

  7. Processadores Superescalares • Processador Superescalar com grau = 3 e com pipeline de 4 estágios

  8. Processadores Superescalares • Um processador superescalar com grau mpode finalizar até m instruções por ciclo • Depende da dependência de dados, conflito por recurso e dos desvios

  9. O que significa Superescalar? • Instruções comuns • aritméticas, load/store e desvios condicionais podem ser iniciados e executados independentemente • Aplicável igualmente a RISC e CISC • na prática é implementado usualmente em máquinas RISC

  10. Por que Superescalar? • Maioria das operações realizadas em valores escalares • Melhora desempenho dessas operações para melhorar o desempenho total • Proposta foi aceita rapidamente • Máquinas superescalares comerciais surgiram apenas +/- 2 anos após o surgimento do termo superescalar • Máquinas RISCs comerciais levaram +/- 8 anos

  11. Organização superescalar genérica • Várias unidades funcionais organizadas em pipeline • Ex.: duas op com inteiros duas op com ponto flutuante uma op de carga/armazenamento

  12. Limitações • Paralelismo a nível de instrução • Nível que as instruções podem ser executadas em paralelo • Otimizações baseadas: • No compilador e em técnicas de hardware • Limitações intrínsecas: • Dependência de dados verdadeira (escrita-leitura) • Dependências de desvio • Conflitos no uso de recursos • Dependência de saída (escrita-escrita) • Antidependência (leitura-escrita)

  13. Processadores VLIW • VLIW – Very Large Instruction Word • Explora paralelismo em nível de instrução • Instruções de 128-1024 bits • Cada instrução consiste de múltiplas instruções independentes • Diversas unidades funcionais interligadas por um único registrador compartilhado

  14. Abordagem VLIW Single multi-operation instruction Cache/memory FetchUnit FU FU FU Register file multi-operation instruction [Ref : Sima et al]

  15. Abordagem Superescalar Decode and issue unit Cache/memory FetchUnit Multiple instruction FU FU FU Sequential stream of instructions Instruction/control Register file Data FU Funtional Unit [Ref : Sima et al]

  16. Comparações: Pipeline, Superescalar e VLIW [Ref : Hwang et al]

  17. Processadores VLIW x Superescalar • Porque VLIW é menos popular que superescalar? • Compatibilidade entre códigos binários • Mesmo compilador pode ser utilizado para escalar e superescalar • Exemplo de Superescalar: IBM RS/6000 • Exemplo de VLIW: Crusoe TM 5400

  18. Arquiteturas Superpipeline • É um pipeline com muitos estágios • Estágios necessitam tempos de ciclo menores • Normalmente menos que a metade • Velocidade interna de clock duplicada • Executa duas "atividades“ por ciclo de clock externo • Superescalar permite executar a busca em paralelo

  19. Superescalar xSuperpipeline

  20. Pontos importantes • Processador superescalar: • Emprega vários pipelines de instrução independentes • Cada pipeline com seus estágios, executando instruções diferentes simultaneamente • Novo nível de paralelismo: diversos fluxos de instrução cada vez • Processador precisa buscar várias instruções: • Instruções próximas que sejam independentes e possam ser executadas em paralelo (ao mesmo tempo) • Problemas com a dependência de dados • Identificadas as dependências, execução pode ser feita fora de ordem

  21. Pontos importantes • Dependências de dados podem ser solucionadas com: • Registradores adicionais e renomeação de referências a registradores • Dependências de controle • RISCs puros empregam desvio atrasado • Técnica não é adequada para processadores superescalares • São usados métodos tradicionais de predição de desvio

  22. Paralelismo a nível de tarefas • Paralelismo a nível de thread • Considera aplicações com múltiplas threads • Várias opções: • Multithreading (MT) • Superthreading • Simultaneous Multithreading (SMT) ou Hyperthreading • Múltiplos Cores

  23. CPU com uma thread • RAM: 4 programas em execução • Front End: busca até 4 instruções • Sete pipelines de execução • Programa vermelho em execução • Quadrados brancos: estágios vazios • Programas possuem uma ou mais threads

  24. Simultaneous Multiprocessing (SMP) • Arquitetura com mais de um processador que compartilham recursos de memória, discos e executam o mesmo SO. • Dois processos executam simultaneamente em dois processadores • No final – contexto é salvo e dois novos processos são colocados nas CPUs

  25. Simultaneous Multiprocessing (SMP) • Maior quantidade de recursos • Nenhum procedimento para melhor utilização dos recursos • Menor utilização dos processadores • Evita chaveamento de contexto

  26. Multithread • Técnica para diminuir as perdas associadas com processamento de uma única thread • A técnica é chamada de time-slice multithreading ou superthreading • O processador que utiliza essa técnica é chamado processador multithreaded • Processador multithreaded é capaz de executar mais de uma thread em um instante

  27. Multithread • Threads compartilham suporte em hardware para troca entre threads em execução sem intervenção de software. • CPU possui informações sobre os estados associados com cada thread (contador de programa, registradores, etc.). • O hardware também deve conter um mecanismo para o escalonamento de thread, fetch e decodificação de instruções.

  28. Multithread • Número menor de estados perdidos • Um estágio do pipeline só pode ter instrução de uma thread • Front End – 4 instruções por clock • Processador – 7 unidades funcionais

  29. Multithreading L1 D-Cache D-TLB Integer Floating Point Schedulers Uop queues L2 Cache and Control Rename/Alloc BTB Trace Cache uCode ROM Decoder Bus BTB and I-TLB Thread 1: floating point

  30. Multithreading L1 D-Cache D-TLB Integer Floating Point Schedulers Uop queues L2 Cache and Control Rename/Alloc BTB Trace Cache uCode ROM Decoder Bus BTB and I-TLB Thread 2: integer operation

  31. Multithread • Multthreading auxilia nas esperas pela memória • Continua não explorando paralelismo dentro de threads

  32. Simultaneous Multithreading (SMT) • Também denominado Hyperthreading - HT • Explora TLP (thread-level parallelism) e ILP (instruction-level parallelism) • Apresenta um melhor aproveitamento dos recursos • Enquanto uma thread pode estar usando uma unidade de ponto flutuante, outra pode estar usando a unidade de inteiro

  33. Simultaneous Multithreading (SMT) • 4 Programas na Memória • Front End recebe instruções de diferentes threads

  34. Simultaneous Multithreading (SMT) L1 D-Cache D-TLB • Com SMT Integer Floating Point Schedulers Uop queues L2 Cache and Control Rename/Alloc BTB Trace Cache uCode ROM Decoder Bus BTB and I-TLB Thread 2:integer operation Thread 1: floating point

  35. Empty Slot Thread 1 Clock cycles Thread 2 Thread 3 Thread 4 Issue slots Formas de execução das threads Superescalar Multithreading Simultaneous Multithreading

  36. Simultaneous Multithreading (SMT) • Simula em um único processador físico dois processadores lógicos, não sendo um processador paralelo real • Cada processador lógico possui um controlador de interrupção programável e conjunto de registradores • Outros recursos são compartilhados entre os processadores lógicos: cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos

  37. Simultaneous Multithreading (SMT) • O sistema operacional envia tarefas para os processadores lógicos como se estivesse enviando para processadores físicos • Os sistemas operacionais e software aplicativos têm que suportar a tecnologia HyperThreading

  38. Formas de execuçãdo das threads AS - registradores e controlador de interrupção

  39. Simultaneous Multithreading (SMT) • A denominação HyperThreading foi utilizada inicialmente pela Intel • Segundo a Intel, a HyperThreading oferece um aumento de desempenho de até 30% dependendo da configuração do sistema

  40. Simultaneous Multithreading (SMT)Desempenho • HT: • P4 melhora de ~52.5% • Xeons melhora de ~28% Sandra (the System ANalyser, Diagnostic and Reporting Assistant)

  41. Simultaneous Multithreading (SMT)Desempenho • Melhora no desempenho depende da disponibilidade dos recursos compartilhados pelas threads em execução • Uma opção para obter melhor desempenho é considerar mais de um núcleo em cada processador • Duplicidade de recursos

  42. Multi Core • Múltiplos núcleos de CPU em um processador • Execuções simultâneas de tarefas • Cada núcleo com o seu pipeline • Cada núcleo com os recursos necessários para execução de seu programa

  43. Multi Core • Possibilidade de Múltiplos núcleos • Intel – 2 núcleos • Mainframes – diversos núcleos

  44. Multi Core L1 D-Cache D-TLB L1 D-Cache D-TLB Integer Floating Point Integer Floating Point Schedulers Schedulers L2 Cache and Control Uop queues Uop queues L2 Cache and Control Rename/Alloc Rename/Alloc BTB Trace Cache uCode ROM BTB Trace Cache uCode ROM Decoder Decoder Bus Bus BTB and I-TLB BTB and I-TLB Thread 1 Thread 3 Thread 2 Thread 4

  45. Multi CoreExemplo • Programa de renderização de imagem • Dividir a tela em blocos e associar uma thread para cada bloco • HyperThreading – processa duas ou mais threads simultaneamente • Sem HyperThreading - processa apenas uma thread de cada vez. • Processador Dual Core - pode executar o mesmo programa de renderização e mais um outro qualquer.

  46. Multi CoreVantagens • Maior eficácia do sistema e desempenho aprimorado de aplicativos em computadores executando vários aplicativos simultaneamente • Desempenho aprimorado para aplicativos multi-threaded • Bom desempenho para única aplicação com uma thread – processos do SO em outro núcleo • Desempenho superior em aplicativos que utilizam processamento de forma intensiva

  47. Comparando • Núcleos podem usar SMT ou não • Possíveis combinações: • Um único núcleo, sem SMT (processador normal) • Um único núcleo, com SMT • Mútiplos núcleos, sem SMT • Mútliplos núcleos, com SMT • Números de possíveis threads simultaneamente: 2, 4, ou 8

More Related