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

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

1 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.

Apresentações semelhantes


Apresentação em tema: "1 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."— Transcrição da apresentação:

1 1 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

2 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 3 Tipos de Paralelismo TLP: Task Level Parallelism Vários enfoques: Processo Thread Job Para cada enfoque tem-se diferentes arquiteturas

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

5 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 6 Processadores Superescalares Processador pipeline de 4 estágios

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

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

9 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 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 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 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 13 Processadores VLIW VLIW – Very Large Instruction Word Explora paralelismo em nível de instrução Instruções de bits Cada instrução consiste de múltiplas instruções independentes Diversas unidades funcionais interligadas por um único registrador compartilhado

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

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

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

17 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 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 19 Superescalar x Superpipeline

20 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 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 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 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 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 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 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 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 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 29 Multithreading BTB and I-TLB Decoder Trace Cache Rename/Alloc Uop queues Schedulers IntegerFloating Point L1 D-Cache D-TLB uCode ROMBTB L2 Cache and Control Bus Thread 1: floating point

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

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

32 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 33 Simultaneous Multithreading (SMT) 4 Programas na Memória Front End recebe instruções de diferentes threads

34 34 Simultaneous Multithreading (SMT) Com SMT BTB and I-TLB Decoder Trace Cache Rename/Alloc Uop queues Schedulers IntegerFloating Point L1 D-Cache D-TLB uCode ROMBTB L2 Cache and Control Bus Thread 1: floating pointThread 2: integer operation

35 35 Formas de execução das threads Superescalar Simultaneous MultithreadingMultithreading

36 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 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 38 Formas de execuçãdo das threads AS - registradores e controlador de interrupção

39 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 40 Simultaneous Multithreading (SMT) Desempenho Sandra (the System ANalyser, Diagnostic and Reporting Assistant) HT: P4 melhora de ~52.5% Xeons melhora de ~28%

41 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 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 43 Multi Core Possibilidade de Múltiplos núcleos Intel – 2 núcleos Mainframes – diversos núcleos

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

45 45 Multi Core Exemplo 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 46 Multi Core Vantagens 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 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


Carregar ppt "1 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."

Apresentações semelhantes


Anúncios Google