0% acharam este documento útil (0 voto)
191 visualizações16 páginas

Processadores Multicore: Funcionamento e Aplicações

O documento discute a história e o funcionamento dos processadores multicore. Explica que os processadores multicore possuem dois ou mais núcleos em um chip, permitindo que tarefas sejam executadas em paralelo. Também dá exemplos de como aplicações como bancos de dados, motores de jogos e linguagens como Go podem se beneficiar do paralelismo oferecido pelos processadores multicore.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
191 visualizações16 páginas

Processadores Multicore: Funcionamento e Aplicações

O documento discute a história e o funcionamento dos processadores multicore. Explica que os processadores multicore possuem dois ou mais núcleos em um chip, permitindo que tarefas sejam executadas em paralelo. Também dá exemplos de como aplicações como bancos de dados, motores de jogos e linguagens como Go podem se beneficiar do paralelismo oferecido pelos processadores multicore.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd

Computadores

multicore
Eduardo Pereira
João Vitor
Histórico
• Precursores da CPU moderna: anos 40, 50 e 60(Eniac,EDVAC,etc...);
• Lei de Moore;
• Microprocessadores(Intel 4004);
• Microprocessadores X86 e 16bits(Intel 80186 , Intel 80188);
• Cpu’s 32bits;
• Intel Versus AMD;
• Multicore (Fim da lei de Moore);
Multicore
• Oque é?

• De onde surgiu?
Curiosidades
Principais inventores/colaboradores
• Intel;

• AMD;

• Passado;
Principais técnicas/tecnologias utilizadas
• Pipeline

• Superescalar

• Multithreading Simultaneo (SMT)


Funcionamento
• Histórico: Pipeline, Superescalar, Multithreading Simultaneo (SMT)

• Computador multicore: dois ou mais processadores (núcleos) em um


único chip.

• Cada núcleo tem todos os componentes de um processador


independente.
Organização
• Principais váriaveis: número de núcleos, número de níveis de cache,
quantidade de cache compartilhado.
Exemplo: Intel Core Duo
• Introduzido em 2006
• Dois processadores x86 superescalares
• Cada núcleo tem cache L1 dedicada
• cache L2 compartilhada

• Cada núcleo tem uma unidade de controle


térmica.
Intel Core Duo
• Possui um controlador programável avançado de
interrupções (APIC)

• APIC pode prover interrupções entre


processadores.
• Qualquer processador pode interromper outro
processador.
• uma thread pode gerar uma interrupção aceita
pelo APIC local, encaminhada para o APIC do
outro núcleo.
• O APIC pode aceitar interrupções de E/S e
mandar para o núcleo adequado.
Aplicações
• Beneficio de desempenho depende da habilidade de explorar os
recursos paralelamente

• Aplicações com múltiplos processos: vários processos de thread única.


Exemplo: banco de dados Oracle, SAP

• Aplicações Java: JVM é um processo multithread que cuida do


agendamento e gerenciamento de memoria de Aplicações Java.
Exemplo: Source Engine
• Motor de jogos da Valve, usado no Counter-Strike

• Foi reprogramado para explorar multithreading

• granularidade grossa: módulos individuais, são atribuídos a processadores


individuais. Cada sistema (renderização, IA, física) roda em uma thread
separada, a coordenação envolve sincronizar todas as threads com uma
thread da linha de tempo.

• Granularidade fina: tarefas semelhantes são espalhadas por vários


processadores. Ex: uma iteração sobre uma matriz de dados pode ser
dividia em várias tarefas espalhadas em threads individuais, que podem ser
agendadas em paralelo.
Exemplo: Source Engine
• A granularidade grossa não garante um grande ganho em
performance em cenários do mundo real.

• O uso efetivo da granularidade fina é dificil.

• A solução foi uma abordagem hibrida: Alguns módulos rodando em


threads únicas e outros compartilhando threads.

• Solução mais promissora com a chegada de processadores com 8 ou


16 núcleos
Tendencias para o futuro
• Ampliação do uso de processadores com muitos núcleos (8 e 16).

• Estilo de programação e linguagens voltadas para multithreading.


Ex: Linguagem Go

• Áreas em destaque: Desenvolvimento de jogos, Criptomoedas,


Realidade virtual.

• Digno de nota: Processadores Quânticos


Conclusão do grupo
• Dados problemas como: densidade de transistors crescente, super-
aquecimento e limitações físicas, o foco nos processadores multicore
vem sendo a alternativa.

• Algumas aplicações se beneficiam mais que outras devido a sua


natureza.

• Impacto no desenvolvimento: Software deve ser escrito com o


paralelismo em mente .

Você também pode gostar