Processadores para computação de alto desempenho

Documentos relacionados
Arquitetura de Computadores Aula 11 - Multiprocessamento

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

ARQUITETURA DE COMPUTADORES

Microprocessadores II - ELE 1084

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Processador. Processador

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Computadores e Programação (DCC/UFRJ)

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

SSC510 Arquitetura de Computadores. 6ª aula

ARQUITETURA DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

5 Unidades de Processamento Gráfico GPUs

Arquitetura de Computadores. Prof. João Bosco Jr.

Conceitos Básicos Processador

Organização e Arquitetura de Computadores I

Arquitetura de Computadores. Processamento Paralelo

Montagem e manutenção de computadores

Processadores. Principal função é executar programas armazenados na memória principal.

SSC0611 Arquitetura de Computadores

Organização de Computadores Processadores. Professor: Francisco Ary

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

Sistemas Distribuídos

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Organização de Computadores Processadores. Professor: Francisco Ary

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

3. Unidade Central de Processamento

AULA1 Introdução a Microprocessadores gerais. Disciplina: Aplicações Avançadas de Microprocessadores (AAM)

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

Evolução da Computação de Alto Desempenho sob a Ótica da Lis. ou (Se um processador já é rápido, imaginem um sistema com processadores :-)

Arquiteturas paralelas Parte 1

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

O Funcionamento do Processador

2º Estudo Dirigido CAP 3

Organização de Sistemas de Computadores

Organização de Sistemas Computacionais Processadores: Organização da CPU

SSC0902 Organização e Arquitetura de Computadores

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

MICROPROCESSADORES. Aula 10

Arquitetura e Organização de Processadores. Aula 4. Pipelines

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Introdução à Computação: Arquitetura von Neumann

Microprocessadores II - ELE 1084

Sistemas Operacionais. Conceitos de Hardware

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Hardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Conjunto de Instruções. Alisson Brito

Microprocessadores II - ELE 1084

Multiprogramação leve em arquiteturas multi-core

SSC0611 Arquitetura de Computadores

Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC

Disciplina de Arquitetura de Computadores

Computação de alto desempenho

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Quais as vantagens da utilização de transístores face às válvulas de vácuo?

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

Placa Mãe (Principal)

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU

Arquitetura de Computadores

2ª Lista de Exercícios de Arquitetura de Computadores

SSC0611 Arquitetura de Computadores

O Funcionamento do Processador

Arquitetura de Computadores

Arquitetura e Organização de Computadores

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Barramento

Transcrição:

Processadores para computação de alto desempenho Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Introdução Nesta aula apresentaremos características de processadores e como elas influenciam no desempenho de um sistema Mostraremos também alguns processadores reais, de várias épocas Começaremos falando da arquitetura do conjunto de instruções, ou ISA.

O debate CISC x RISC O que é CISC e RISC? São formas de estruturar as instruções do processador quanto aos padrões de codificação e execução Processadores RISC usam poucas instruções com formatos rígidos Processadores CISC usam muitas instruções com formatos distintos

O debate CISC x RISC RISC é mais eficiente, porém mais complexo e usa mais memória. Mesmo sendo menos eficiente, quem reinava era o CISC (até começo dos anos 90)

Problemas da primeira geração RISC A não adoção inicial de RISC se deu por: Falta de sistemas operacionais e compiladores adaptados aos RISC Os executáveis eram muito grandes por terem muitas instruções A pouca variedade de instruções de máquina exigia a construção de instruções de software

(R)evolução do RISC Aumento no número de transistores por chip Pipelining é mais fácil se instruções têm mesmo tamanho Surgimento de compiladores mais otimizados

Características de processadores RISC Uso intensivo de pipelining Todo o projeto RISC é voltado para o uso de pipelines Instruções de mesmo tamanho Essa característica é a que mais reforça o conceito de pipeline, uma vez que é possível uniformizar todo o processo de transferência de dados e instruções

Características de processadores RISC Arquitetura LOAD/STORE Todo acesso à memória ocorre apenas através de instruções LOAD ou STORE, não sendo possível outras operações nela Endereçamento simples Como apenas LOAD e STORE acessam a memória não são necessárias variações nesse formato. As outras instruções acessam apenas registradores

Características de processadores RISC Ponto flutuante em pipelines Como todas as instruções têm mesmo formato, incluindo as de ponto flutuante, é possível executá-las em pipelines Tratamento de desvios São necessários para evitar esvaziamentos frequentes do pipeline. Usa técnicas de predição, delay slot e execução condicional

A técnica de delay slot

Segunda geração RISC Chegada dos processadores SUPER Superescalares Permitem a execução simultânea de várias instruções através de vias de execução paralelas Superpipelines Fazem a construção de estágios cada vez mais especializados, chegando a 31 estágios (geração Prescott do Pentium 4)

Outros caminhos CISC e RISC não são as únicas soluções possíveis. A família pentium, por exemplo, misturava os dois conceitos Outra saída é o uso de processadores VLIW (verylong instruction word)

Modelos arquiteturais básicos

Modelos arquiteturais básicos

Modelo de arquitetura CISC

Modelo de arquitetura RISC

Arquitetura POWER (32 bits)

Arquitetura VLIW Modelo de processador

Arquitetura VLIW Formato de instrução e execução

Antigo cenário sobre microprocessadores

Cenário atual sobre microprocessadores

Cenário atual sobre microprocessadores Preocupação com consumo de energia Design orientado pela aplicação, ou seja, menos clock e instruções por ciclo quando é preciso economizar energia Para alto desempenho a preocupação é como refrigerar os processadores...

Lei de Moore Continua aplicável Não se resume a número de transistores ou velocidade da CPU Na verdade é uma referência econômica sobre gerações de microprocessadores

Lei de Moore Avanços na tecnologia de litografia (20nm) Avanços na construção dos transistores (3D)

Pipelines O uso de pipelines é uma das formas de se acelerar o processamento Pipelines surgem em duas formas: Pipeline aritméticos Pipeline de instruções

Pipelines aritméticos Envolvem a decomposição de operações aritméticas em etapas funcionais São mais simples de implementar e não envolvem problemas de predição ou de esvaziamentos

Pipelines aritméticos 400 ns

Pipelines aritméticos 150 ns

Pipeline de instruções Envolve as várias etapas de execução de uma instrução, como busca, decodificação, etc É mais complicado pois essas etapas possuem comportamentos distintos para tipos de instruções distintas

Pipeline de instruções

Pipeline de instruções

Antigamente... Pipelines podiam ainda ser classificados como sendo lineares ou não-lineares Com o aumento na complexidade dos pipelines o conceito de linearidade (típico nos antigos pipelines RISC) foi abandonado Mas ainda é útil no entendimento dos hazards de um pipeline

Pipelines lineares Caracterizados como uma linha de produção serial típica Mais simples de serem compreendidos O fluxo dos dados/instruções pode ser feito de forma síncrona (latches e relógio único), ou assíncrona (sinais de requisição e reconhecimento)

Pipeline linear síncrono

Pipeline linear assíncrono

Pipeline não-linear É um pipeline em que o fluxo pelos estágios pode sofrer grandes desvios ou até formar ciclos Fundamental para CISC, pois instruções de formatos diferentes demandam caminhos de execução diferentes Seu controle é tipicamente assíncrono

Exemplo pipeline não-linear assíncrono

Pipelines superescalares São pipelines com uma grande quantidade de estágios e caminhos possíveis São característicos dos processadores modernos Permitem, em determinados estágios, a execução de vários caminhos (instruções) simultaneamente

Pipelines superescalares Permitem o escalonamento de instruções fora de ordem (out-of-order execution), a partir do momento em que a instrução: Tem dados disponíveis Tem unidade operacional disponível Não criará conflitos

Pipelines superescalares

Pipelines superescalares

Pipeline superescalar (threads)

Pipeline família Power

Pipeline processadores MIPS

Arquitetura de alguns processadores

MIPS 64bits

Sandy Bridge Observar o anel ligando as caches locais (nível 1) Observar também os elementos especializados

Sandy Bridge

Sandy Bridge

Haswell Quarta geração da família i3,5,7 Do ponto de vista da Intel representa avanços mais significativos do que a geração anterior

Haswell

Haswell

Haswell

AMD Bulldozer

AMD Bulldozer

Sistema de multiprocessadores (Power cells)

Sistema de multiprocessadores (Power cells)

Como o Power Cell funciona Processador Power (PPE) cuida do SO e controle das SPE Processadores sinergísticos (SPE) fazem o processamento real, através de sua unidade de processamento (SPU) e de interface (MFC) Comunicação ocorre por 4 anéis de 16 bytes de largura cada

Diagrama interno de um SPE

Anéis da rede interna

Arquitetura Power (64 bits)

Arquitetura Power8

Arquitetura Power8

Sparc M7

Sparc M7

Sparc M7

Estrutura mista do Roadrunner Uso do Opteron (dual core) e do PowerXcell 8i (célula) para aceleração de operações aritméticas Uso de Infiniband como elemento de conexão

Arquitetura do Opteron Processadores Opteron trabalham com 64 bits, sendo suas principais características: Endereços virtuais de 48 bits Endereços físicos de 40 bits Caches L1 e L2 separadas para cada núcleo Cache L1 é composta por 64Kbytes para dados e 64Kbytes para instruções 3 conexões para E-S (16 bits em cada direção) suportam conexões entre processadores

Placa vetorial Cray Y-MP

Arquitetura Cray XT4

Processador vetorial Cray XT5

Processador reconfigurável Cray XT5 Uso de FPGA s como elemento para adaptação ao software

Processadores de baixo consumo Uma alternativa hoje é o uso de uma grande quantidade de processadores de baixo consumo de energia para fazer um paralelismo em larga escala Nessa categoria aparecem processadores como o ATOM, Vortex e as GPU s

ATOM (Intel)

ATOM (Intel)

Graphical Processing Units O uso de GPUs como elementos de aceleração de processamento tem crescido A idéia é usar GPUs como processadores das partes não sequenciais de um programa A GPU Fermi, da Nvidia, apresenta até 512 núcleos por chassi A GPU Kepler, da Nvidia, chega a 2688 núcleos, atingindo 1.31 Tflops

Nvidia - Kepler

Nvidia - Kepler

Nvidia - Kepler

Nvidia - Kepler Kepler Tesla

Graphical Processing Units Além da NVIDIA temos também GPUs da Intel, através da família Xeon Phi Atinge desempenho de 1TFlops, através de 60 núcleos executando até 240 threads

Arquitetura do Xeon Phi

Modos de execução

Xeon Phi (Knights Landing)

Processadores ARM São processadores de consumo de energia muito baixo, chegando a menos de 2 watts no processador e menos de 12 watts num sistema completo Uso inicial em dispositivos móveis Tem se tornado uma alternativa para uso como processador auxiliar

ARM processors Cortex A9

Rex Neo processors

Rex Neo processors

Rex Neo processors

Processadores para HPC Tendência para uso de processadores comuns, em organização manycores e multicomputadores Cuidados recentes (nem tanto) com economia de energia Problemas de conectividade a serem resolvidos para sistemas exascale

Processadores para HPC