ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1



Documentos relacionados
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Unidade 12: Introdução ao Paralelismo:

Organização e Arquitetura de Computadores I. de Computadores

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES ARQUITETURAS RISC E CISC. Prof. Dr. Daniel Caetano

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Informática I. Aula 5. Aula 5-13/05/2006 1

Introdução às arquiteturas paralelas e taxonomia de Flynn

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Sistemas Operacionais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Máquinas Multiníveis

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

ARQUITETURA DE COMPUTADORES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS OPERACIONAIS: GERENCIAMENTO DE PROCESSOS E DE MEMÓRIA

7 Processamento Paralelo

Introdução ao Processamento Paralelo

Unidade 13: Paralelismo:

Arquitetura de Computadores. Ivan Saraiva Silva

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Ricardo Gonçalves 2013/2014. Arquitecturas Multicore

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

FACULDADE PITÁGORAS PRONATEC

Professores: Aula 10. Lúcia M. A. Drummond Simone de Lima Martins. Conteúdo: Arquiteturas Avançadas. - Arquiteturas RISC - Processamento Paralelo

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

RISC - Reduced Instruction Set Computer

SIS17 - Arquitetura de Computadores

Programação Paralela

Symmetric Multiprocessing Simultaneous Multithreading Paralelismo ao nível dos dados

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Pipelining. Professor: Carlos Bazilio. Pólo Universitário rio de Rio das Ostras

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

Sistemas Distribuídos Conceitos HW e SW. Edeyson Andrade Gomes

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Imagem retirada de documentações de treinamentos oficiais INTEL

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

Caminho dos Dados e Atrasos

slide 0 Algoritmos Paralelos

11- Tornar transparente para o processador os detalhes de operação e controle dos dispositivos periféricos.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

7-1. Parte 6 Otimizações da Arquitetura

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

SIS17 - Arquitetura de Computadores. Introdução (Parte III)

RISC X CISC - Pipeline


Desenvolvimento de Programas Paralelos para Máquinas NUMA: Conceitos e Ferramentas

Sistema de Computação

3. Arquiteturas SIMD. 3.1 Considerações iniciais

Organização de Computadores

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE DE CONTROLE E A INTERPRETAÇÃO DE INSTRUÇÕES. Prof. Dr. Daniel Caetano

Arquitetura de processadores: RISC e CISC

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

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

UFRJ IM - DCC. Sistemas Operacionais I

AULA 1. Informática Básica. Gustavo Leitão. Disciplina: Professor:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Informática I. Aula 4. Aula 4-11/09/2006 1

Arquitetura de Von Neumann e os Computadores Modernos

BARRAMENTO DO SISTEMA

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Prof. Esp. Lucas Cruz

Comparação SDs X Scs

Arquitetura e Organização de Computadores

HARDWARE GRÁFICO. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol

ARQUITETURA DE COMPUTADORES

Programação Concorrente Introdução

Fundamentos de Sistemas Operacionais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano

Curso de Instalação e Gestão de Redes Informáticas

Capítulo 8 Arquitetura de Computadores Paralelos

O que é Arquitetura de Computadores?

Arquitetura de Computadores I

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

28/9/2010. Unidade de Controle Funcionamento e Implementação

Processamento Paralelo

Organização e Arquitetura de Computadores I. de Computadores

Transcrição:

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES Prof. Dr. Daniel Caetano 2012-1

Lembretes Compreender o funcionamento da Arquitetura Superpipeline Compreender o funcionamento da Arquitetura Superescalar Introduzir o conceito de multiprocessamento Apresentar o conceito de computador completo Lembretes: Lista 2!

Material de Estudo Material Notas de Aula Apresentação Material Didático - Acesso ao Material http://www.caetano.eng.br/aulas/aoc/ (Aula 12) http://www.caetano.eng.br/aulas/aoc/ (Aula 12) Biblioteca Virtual Arquitetura e Organização de Computadores, páginas 647 a 652

INTRODUÇÃO

Introdução Aula passada: vantagem do Pipeline Sequência no Tempo SEM pipeline COM pipeline Busca Execução Busca Execução 0 I1 - I1-1 - I1 I2 I1 2 I2 - I3 I2 3 - I2 I4 I3 4 I3 - I5 I4 Ocupar partes ociosas do processador

ARQUITETURA SUPERPIPELINE

Pipeline de Múltiplos Estágios Como visto na aula passada... Tempo BI DI CO BO EI EO 0,00 I1 - - - - - 0,33 I2 I1 - - - - 0,66 I3 I2 I1 - - - 1,00 I4 I3 I2 I1 - - 1,33 I5 I4 I3 I2 I1-1,66 I6 I5 I4 I3 I2 I1 2,00 I7 I6 I5 I4 I3 I2

Pipeline de Múltiplos Estágios Como visto na aula passada... Tempo BI DI CO BO EI EO 0,00 I1 - - - - - Será que todos estes 0,33 I2 I1 - - - - estágios demoram 0,66 I3 I2 I1 - - - exatamente o mesmo 1,00 I4 I3 I2 I1 - - tempo para serem 1,33 I5 I4 I3 I2 I1 - concluídos? 1,66 I6 I5 I4 I3 I2 I1 2,00 I7 I6 I5 I4 I3 I2

Superpipeline No pipeline tradicional O tempo dos estágios mais rápidos é limitado pelo tempo dos estágios mais lentos Tempo de cada estágio: controlado pelo clock Exemplo: estágio lento ocupa 2 ciclos de clock... uma instrução a cada 2 ciclos Acelerar o clock geral... resolve? Acelera todos os estágios, mas os estágios lentos continuam lentos Exemplo: instruções continuam usando dois ciclos de clock!

Superpipeline Acelerar o clock interno Permite execução mais rápida dos estágios mais lentos Exemplo: clock interno = 2x clock externo... Agora estágio lento é cumprido em 2 ciclos internos Mas cada ciclo externo equivale a dois internos... Logo, no exemplo, permite uma instrução por ciclo Superpipeline: pipeline com clock interno da CPU maior que o clock externo

ARQUITETURA SUPERESCALAR

Paralelismo em Nível de Instruções Arquitetura pipeline: domínio inicial da Intel AMD vinha colada... Intel tinha que inovar Que tal executar várias instruções ao mesmo tempo? Múltiplos pipelines: instruções distribuídas Quaisquer instruções podem ser executadas ao mesmo tempo? Instruções Independentes O que são?

Instruções Independentes Exemplo... LD A, 17 ; Carrega A com 17 ADD A,20 ; Soma 20 em A Quanto vale A? ADD A, 20 ; Soma 20 em A LD A,17 ; Carrega A com 17 Quanto vale A? Para produzir o primeiro efeito, a instrução LD A,17 precisa ter sido executada antes de ADD A,20 O resultados dependem da ordem das instruções

Instruções Independentes Vejamos um outro programa LD A, 17 ; Carrega A com 17 ADD A,20 ; Soma 20 em A LD C, A ; Guarda resultado (37) em C LD A, 30 ; Carrega A com 30 ADD A, 10 ; Soma 10 em A LD D, A ; Guarda resultado (40) em D Essas linhas são dependentes?

Instruções Independentes Vejamos um outro programa LD A, 17 ; Carrega A com 17 ADD A,20 ; Soma 20 em A LD C, A ; Guarda resultado (37) em C LD A, 30 ; Carrega A com 30 ADD A, 10 ; Soma 10 em A LD D, A ; Guarda resultado (40) em D Essas linhas são dependentes? Vamos trocar os registradores...

Instruções Independentes Vejamos um outro programa LD A, 17 ; Carrega A com 17 ADD A,20 ; Soma 20 em A LD C, A ; Guarda resultado (37) em C LD B, 30 ; Carrega B com 30 ADD B, 10 ; Soma 10 em B LD D, B ; Guarda resultado (40) em D Essas linhas são dependentes? E vamos reorganizar as linhas...

Instruções Independentes Vejamos um outro programa LD A, 17 ; Carrega A com 17 LD B, 30 ; Carrega B com 30 ADD A,20 ; Soma 20 em A ADD B, 10 ; Soma 10 em B LD C, A ; Guarda resultado (37) em C LD D, B ; Guarda resultado (40) em D Essas linhas são dependentes? Ainda são dependentes?

Instruções Independentes Vejamos um outro programa LD A, 17 ; Carrega A com 17 LD B, 30 ; Carrega B com 30 ADD A,20 ; Soma 20 em A ADD B, 10 ; Soma 10 em B LD C, A ; Guarda resultado (37) em C LD D, B ; Guarda resultado (40) em D Essas linhas são dependentes? Ainda são dependentes? Otimizador de código para processadores superescalares

Instruções Independentes Vejamos um outro programa Superescalar: LD A, 17 ; Carrega A com 17 LD B, 30 ; Carrega B com 30 Excelente para ADD A,20 ; Soma 20 em A processamento de imagens: ADD B, 10 ; Soma 10 em B Pixels são Independentes! LD C, A ; Guarda resultado (37) em C LD D, B ; Guarda resultado (40) em D Essas linhas são dependentes? Ainda são dependentes?

Instruções Independentes Vejamos um outro programa Fim da Festa: LD A, 17 ; Carrega A com 17 LD B, 30 ; Carrega B com 30 CP A,B ADD A,20 ; Soma 20 em A RET Z ADD B, 10 ; Soma 10 em B ADD A,10 LD C, A ; Guarda resultado (37) em C LD D, B ; Guarda resultado (40) em D Essas linhas são dependentes? Dependência difícil de resolver! Ainda são dependentes?

Lógica Superescalar

COMPARATIVO

(Super)Pipeline x Superescalar

FUNDAMENTOS DO MULTIPROCESSAMENTO

Tipos de Multiprocessamento Superescalar Paralelismo em nível de instruções Múltiplos programas... Paralelismo em nível de processos? Os tipos mais conhecidos são SMP: Symetric MultiProcessing Clusters NUMA: Non-Uniform Memory Access Detalhes na próxima aula...!

Tipos de Multiprocessamento Classificação do Processamento: SISD: Single Instruction, Single Data Pipelines e Processadores Escalares SIMD: Single Instruction, Multiple Data Processamento Vetorial e Matricial MISD: Multiple Instruction, Single Data Aplicação apenas teórica MIMD: Multiple Instruction, Multiple Data SMP e Clusters Processamento vetorial? Supercomputadores: imagens, simulação de partículas etc.

Tipos de Multiprocessamento

COMPUTADOR COMPLETO

Conceito O que é um computador completo? Whole Computer Computador com processamento, unidades de entrada e saída e memória próprias SMP e NUMA: um único computador, com várias unidades de processamento Clusters: vários computadores completos interligados por rede Cada computador completo é um nó de processamento

Consequência Um cluster com N nós... Pode ser dividido em N computadores independentes Um sistema SMP/NUMA com N processadores NÃO pode ser dividido em N computadores independentes

CONCLUSÕES

Resumo O multiprocessamento busca aumento do desempenho de processamento O multiprocessamento pode ser em nível de instruções e em nível de processos Para aproveitar o multiprocessamento em nível de instruções, muitos cuidados são exigidos com o programa No multiprocessamento em nível de processos, muitos cuidados são exigidos com o hardware TAREFA Lista de Exercícios 2!

Próxima Aula Como funcionam o multiprocessamento em nível de processos? Qual a diferença entre SMP/NUMA e Clusters? Qual deles é melhor?

PERGUNTAS?

BOM DESCANSO A TODOS!