Arquitetura de Computadores

Documentos relacionados
Arquitetura de Computadores

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

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

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

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

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Explorando o paralelismo entre instruções

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

ORGANIZAÇÃO DE COMPUTADORES

SSC0114 Arquitetura de Computadores

AULA DE REVISÃO 3 ILP

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Faculdade de Computação Arquitetura e Organização de Computadores 2 Prof. Cláudio C. Rodrigues

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Faculdade de Computação

Arquitetura de Computadores Aula 11 - Multiprocessamento

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Arquitetura e Organização de Computadores

Sistemas Operacionais. Conceitos de Hardware

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Faculdade de Computação

1. Considere a execução do seguinte troço de código num processador com ISA compatível

Questionário Arquitetura e Organização de Computadores

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Pipeline. Prof. Leonardo Barreto Campos 1

SSC0611 Arquitetura de Computadores

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 é

Predição de Desvios e Processadores Superescalares Especulativos

Microprocessadores. Execução em Paralelo Pipelines

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

Processamento Paralelo

Sistemas de Computação. Instruções de Linguagem de Máquina

Arquitetura de Computadores. Processamento Paralelo

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

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Sistemas Processadores e Periféricos Aula 2 - Revisão

Arquitetura de Computadores. Memórias

Avaliação de Desempenho

SSC0611 Arquitetura de Computadores

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores

1.0 val. (b) Determine o CPI do processador na execução do código indicado. Num.: Nome: Pág. 1. Arquitecturas Avançadas de Computadores (AAC)

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

ARQUITETURA DE COMPUTADORES

Processamento Paralelo

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

2º Estudo Dirigido CAP 3

Organização e Arquitetura de Computadores I

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

Resumão de Infra-estrutura de Hardware

ção de Computadores II

Arquitetura de Computadores I

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

O Funcionamento do Processador

Introdução à Computação: Sistemas de Computação

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

SSC0510 Arquitetura de Computadores

Gerenciamento de memória

AULA DE REVISÃO 4 ILP

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017

O Funcionamento do Processador

Organização ou MicroArquitectura

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções

Paralelismo de dados. (execução de simultaneidade) Tipo de arquitetura paralela SIMD. SIMD (Single Instruction Multiple Data)

Computadores e Programação (DCC/UFRJ)

Prof. Eliezer Soares Flores 1 / 22

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:

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

3 Computação de Propósito Geral em Unidades de Processamento Gráfico

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Guia Rápido MIPS. Tipos de Dados e Formatações

Relembrando desempenho...

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

SSC510 Arquitetura de Computadores. 8ª aula

SSC0611 Arquitetura de Computadores

Processadores para computação de alto desempenho

Universidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache

Processamento Paralelo & Multiprocessadores

Relembrando desempenho...

1) Enumere e dê exemplo dos tipos de conflitos que podem ocorrer em um pipeline de instruções de um processador.

Esse programa inclui dependências de tipo: escrita-escrita, leitura-escrita e escrita-leitura. Identifique e mostre estas dependências.

Sistemas de Computação Gabarito - Lista 2

Organização de Computadores

Infraestrutura de Hardware. Instruindo um Computador

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

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

Faculdade de Computação Arquitetura e Organização de Computadores 2 3 a Lista de Exercícios Prof. Cláudio C. Rodrigues Data de Entrega: 22/11/2018

Tiago Alves de Oliviera

Resolva as seguintes alíneas fazendo todas as simplificações que considerar convenientes, anotando-as junto da resposta.

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Organização e Arquitetura de computadores. Memórias

Univ ersidade Feder al do Rio de Janei ro Informáti ca DCC/IM. Pipeline. Gabriel P. Silva. Gabriel P. Silva

INE5645-Programação Paralela e Distribuída Aula 17/09/2018 Nome

SSC0510 Arquitetura de Computadores

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho

MC722. Medidas. Instruções. Funções. Pilha. add $t0,$s1,$s2. slti rt,rs,const if (rs < const) rd=1; else rd=0;

Transcrição:

Arquitetura de Computadores 2018.1

Relembrando... Memória Virtual

Relembrando... Memória Virtual Proteção de Memória

Relembrando... Memória Virtual Proteção de Memória TLB

Relembrando... Memória Virtual Proteção de Memória TLB Resumo Memória

Exercício Aula Passada TLB Página Cache Hit Hit Hit Possível, o dado está na cache, logo está na TLB e na RAM. Hit Hit Miss Possível, o dado está não está na cache, mas está na memória RAM. Hit Miss Hit Impossível, se a TLB der hit, não tem como haver uma falha de página. Hit Miss Miss Impossível, se a TLB der hit, não tem como haver uma falha de página. Miss Hit Hit Possível, o dado está na cache e na RAM, mas não está na TLB. Miss Hit Miss Possível, o dado não está na cache e nem na TLB, mas está na RAM. Miss Miss Hit Impossível, o dado não pode estar na cache, sem estar na RAM. Miss Miss Miss Possível, o dado está no disco somente.

Paralelismo Computação paralela é uma forma de computação em que vários cálculos são realizados ao mesmo tempo. Maior processamento geral. Aquecimento maior. Gerenciamento de memória mais complexo. Sistema mais estável: não para se um processador parar. Código mais complexos.

Paralelismo Processamento de um mesmo programa por mais de um processador: conflito de dados na memória. Processamento de mais de um programa por mais de um processador: concorrência de memória.

Paralelismo Dual Core Compartilha a memória cache entre os processadores. Core 2 Duo Cada processador tem sua memória cache independente.

Paralelismo em Instruções Instruções são executadas ao mesmo tempo por dois processadores diferentes. A memória e os registradores são os mesmos. Existem instruções que são dependentes umas das outras e recursos (registradores ou partes da memória) que não devem ser acessadas por dois processadores ao mesmo tempo. Para evitar esse problema usamos um lock, uma variável que é zero quando o recurso está livre e 1 quando ele está sendo utilizado.

Load Linked e Store Condicional Load Linked: Lê um valor da memória em um registrador. Store Condicional: Coloca um valor de um registrador na memória somente se ele não foi mudado desde o último acesso. loop: ori $t0, $zero, $s4 # t0 = s4 ll $t1, 0($s1) # t1 = s1[0] sc $t0, 0($s1) # beq $t0, $zero, loop add $s4, $zero, $t1 A instrução sc faz s1[0] = t0 e t0 = 1 se o conteúdo de s1[0] não mudou desde a instrução ll, senão faz t0 = 0 e mantém s1 intacto.

Paralelismo em Aritmética Operações em vetores e matrizes costumam se repetir em cada um dos elementos. Uma operação aritmética pode ser realizada de uma só vez em mais de um dado. A arquitetura ARM possui instruções para vetores com 128 bits de dado que podem ser divididos em 16 de 8 bits, 8 de 16 bits, 4 de 32 bits ou 2 de 64 bits. SIMD: single instruction, multiple data.

Subword Operações: VADD, VSUB, VMAX, VMIN, VABS, VNEQ Tipos: I8, S8, U8, I16, S16, U16, I32, S32, U32, I64, S64, U64, F32. # d0[i] = d1[i] + d2[i] como 16 ints de 8 bits com sinal VADD.I8 D0, D1, D2 # d0[i] = d1[i] - d2[i] como 4 floats de 32 bits VSUB.F32 D0, D1, D2 # d0[i] = max (d1[i], d2[i]) como 4 ints de 32 bits sem sina VMAX.U32 D0, D1, D2

Pipeline Pipeline Paralelizar instruções, dividindo-as em passos que podem ser executados ao mesmo tempo. Melhorando o Pipeline: Aumentar o número de passos. O tempo de cada passo deve ser próximo para que o pipeline seja eficiente. Aumentar os recursos para que alguns passos possam ser realizados em paralelo (mais acessos a memória, por exemplo).

Pipeline Paralelo

Pipeline Paralelo Estática Quem lida com os recursos e com os hazards é o compilador. Tempo de compilação. Dinâmica Paralelo Quem lida com os recursos e com os hazards é o processador. Tempo de execução.

Pipeline Paralelo Estático Dois processadores MIPS dividindo recursos. Um processador lida com operações aritméticas e de desvio; outro lida com operações de memória. Cada recurso possui mais de um acesso (cada um para processadores diferentes). Hazards devem sem tratados e stalls e instruções bolhas devem ser inseridas.

Pipeline Paralelo Estático loop: lw $t0, 0($s1) addu $t0, $t0, $s2 sw $t0, 0($s1) addi $s1, $s1, -4 bne $s1, $zero, loop

Pipeline Paralelo Estático loop: lw $t0, 0($s1) addu $t0, $t0, $s2 sw $t0, 0($s1) addi $s1, $s1, -4 bne $s1, $zero, loop loop: lw $t0, 0($s1) addi $s1, $s1, -4 addu $t0, $t0, $s2 sw $t0, 4($s1) bne $s1, $zero, loop No segundo caso, as instruções bne e sw podem ser executadas em paralelo.

Pipeline Paralelo Dinâmico Também chamados de super escalares. Uma ou mais instruções chegam ao pipeline e o processador decide quais serão executadas. O compilador pode auxiliar diminuindo os hazards, mas cabe ao processador tomas a decisão. Possui uma unidade de commit para reordenar as instruções, se necessário for, evitando hazards.

Pipeline Paralelo Dinâmico lw $t0, 20($s2) addu $t1, $t0, $t2 sub $s4, $s4, $t3 slti $t5, $s4, 20

Pipeline Paralelo Dinâmico lw $t0, 20($s2) addu $t1, $t0, $t2 sub $s4, $s4, $t3 slti $t5, $s4, 20 lw $t0, 20($s2) sub $s4, $s4, $t3 slti $t5, $s4, 20 addu $t1, $t0, $t2 No segundo caso, as instruções sub e slti passam na frente, pois a instrução addu depende do resultado do lw e do acesso à memória.

Memória Todos os processadores acessam a mesma RAM, mas não necessariamente a mesma cache. Coerência Qual valor é lido: o valor retornado por uma leitura da memória deve ser o último valor escrito. Consistência Quando o valor é lido: A ordem das escritas deve ser serializada.

Memória Todos os processadores acessam a mesma RAM, mas não necessariamente a mesma cache. Cada processador pode ter sua cache individual. Numa escrita, as caches e a memória devem estar coerentes e consistentes. Dois processadores podem tentar escrever ao mesmo tempo. O mecanismo de escrita por ser write-through ou write-back, deixando o sistema ainda mais complexo. Protocolos que determinam como e quando escritas podem ser realizadas são protocolos de coerência.

Memória: Snooping É um protocolo de coerência de memória entre processadores que possuem cache independentes. Toda cache possui uma cópia do bloco da memória e para cada cópia a memória tem um status. Um controlador de cache determina se uma escrita é válida ou não, de acordo com o status da memória. Quando um valor é escrito em uma cache, ele é invalidado em outra caches, gerando um miss.

Lei de Amdahl A lei de Amdahl, formulada por Gene Amdahl na década de 1960, afirma que uma porção do programa que não pode ser paralelizada e limitará o aumento de velocidade geral disponível com o paralelismo. Tempo Total = Tempo Afetado + Tempo Não Afetado Quantidade de Melhora

Lei de Amdahl A lei de Amdahl, formulada por Gene Amdahl na década de 1960, afirma que uma porção do programa que não pode ser paralelizada e limitará o aumento de velocidade geral disponível com o paralelismo. Tempo Total = Tempo Afetado + Tempo Não Afetado Quantidade de Melhora Speed Up = 1 1 Paralelizável

Exercício Para deixarmos um programa 90 vezes mais rápido com 100 processadores. Qual a porcentagem de computação que pode permanecer sequencial?