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

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

Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

Apresentações semelhantes


Apresentação em tema: "Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita"— Transcrição da apresentação:

1 Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita
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 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 m pode 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 Otimizações baseadas:
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 bits Cada instrução consiste de múltiplas instruções independentes Diversas unidades funcionais interligadas por um único registrador compartilhado

14 Single multi-operation instruction multi-operation instruction
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 x Superpipeline

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

30 Multithreading Integer Floating Point L1 D-Cache D-TLB Schedulers
L2 Cache and Control Uop queues 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 L2 Cache and Control Uop queues Rename/Alloc BTB Trace Cache uCode ROM Decoder Bus BTB and I-TLB Thread 2: integer operation Thread 1: floating point

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

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 Integer Floating Point Integer Floating Point 
L1 D-Cache D-TLB L1 D-Cache D-TLB Integer Floating Point Integer Floating Point Schedulers Schedulers L2 Cache and Control Uop queues L2 Cache and Control Uop queues 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 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 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 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 "Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita"

Apresentações semelhantes


Anúncios Google