Multiprocessadores e Paralelismo nível de Thread

Tamanho: px
Começar a partir da página:

Download "Multiprocessadores e Paralelismo nível de Thread"

Transcrição

1

2 Multiprocessadores e Paralelismo nível de Thread

3 Roteiro da Aula Conceitos básicos Paralelismo de Thread Taxonomia dos processadores Modelos de memória e de comunicação Problema da coerência de memória Protocolos de coerência baseado em snoop Protocolos de coerência baseado em diretórios

4 Além de ILP. Em algumas aplicações existem paralelismo natural Thread Level Parallelism Data Level Parallelism

5 Além de ILP. Thread: processo com instruções e dados próprios thread pode ser parte de um programa paralelo de múltiplos processos, ou pode ser um programa independente Cada thread tem seu estado (instruções, dados, PC, register state,etc) necessários para sua execução Data Level Parallelism: realiza operações identicas sobre um conjunto de dados

6 Thread Level Parallelism (TLP) ILP explora paralelismo implícito dentro de um loop ou trecho de código TLP é representado explicitamente de uso de múltiplas threads de execução que são paralelas. Objetivo: usar múltiplos streams de instruções para melhorar: Throughput de computadores que executam vários programas Tempo de Execução de programas multi-threaded. TLP pode ser mais eficiente que o ILP.

7 Multithreaded Execution Multithreading: múltiplas threads que compartilham a unidade funcional de um processador processador deve duplicar estado para cada thread i.e, uma cópia separada do register file, um PC separado, e para execução de programas independentes uma page table separada. Compartilhamento de memória através de mecanismos de memória virtual. HW chaveamento rápido de thread cerca de 100s para 1000s. Quando chavear? Alternar instrução por thread (fine grain) Quando um thread está em estado de espera (devido a cache miss), um outro thread pode ser executado (coarse grain)

8 Time (processor cycle) Multithreaded Categories Superscalar Fine-Grained Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Idle slot 8

9 Fine-Grained Multithreading

10 Fine-Grained Multithreading Chaveamento entre threads a cada instrução causa a execução de multiplas threads. Usualmente feito em round-robin fashion, pulando threads em stall CPU deve ser capaz de chavear entre threads a cada clock Vantagem de aproveitar pequenas e longas esperas desde que instruções de outras threads podem executar quando uma thread está em espera Desvantagem de tornar execução de threads individuais mais lenta desde que uma thread pronta para executar vai esperar execução de outras threads Usado Sun s Niagara

11 Time (processor cycle) Multithreaded Categories Superscalar Fine-Grained Coarse-Grained Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Idle slot 11

12 Coarse-Grained Multithreading Chaveamento de threads somente quando demora longa ocorre (L2 cache misses) Vantagens Não necessita de mecanismo para chaveamento rápido Não torna a thread mais lenta, Desvantagem Não melhora desempenho devido a esperas curtas Desde que a CPU despacha instruções para 1 thread, quando um stall ocorre, o pipeline deve ser esvaziado Nova thread deve preencher o pipeline antes que as instruções completem Devido a este start-up overhead, coarse-grained multithreading é melhor para reduzir a penalidade de stalls de alto custo, quando pipeline refill << stall time Usado no IBM AS/400

13 Coarse-Grained Multithreading

14 Coarse-Grained Multithreading + Sacrifica muito pouco o desempenho de uma single thread Tolera somente latencias longas (e.g., L2 misses) Definição de política de escalonamento de Thread Define uma preferred thread (e.g., thread A) Chaveia para thread B quando thread A L2 miss Chaveia de volta para A quando A L2 miss retorna Não pode tolerar latências menores que duas vezes a profundidade do pipeline Necessita in-order pipeline pequeno para bom desempenho Exemplo: IBM Northstar/Pulsar

15 Usar ambos ILP e TLP TLP e ILP exploram diferentes tipos de paralelismo em um programa Pode um processador orientado a ILP explorar TLP? Unidades Funcionais estão ociosas no data path projetado para ILP devido aos stalls ou dependencias no código. Pode TLP ser usado como fonte de instruções independentes que podem ocupar o processador durante stalls? Pode TLP ser usado para ocupar unidades funcionais que estariam ociosas quando não existe ILP suficiente?

16 Simultaneous Multi-threading... Cycle One thread, 8 units M M FX FX FP FP BR CC Two threads, 8 units Cycle M M FX FX FP FP BR CC 9 9 M = Load/Store, FX = Fixed Point, FP = Floating Point, BR = Branch, CC = Condition Codes 16

17 Simultaneous Multithreading (SMT) Podemos usar multithread em uma máquina out-oforder? Simultaneous multithreading (SMT) + Tolera todas latencias (e.g., L2 misses, mispredicted branches) ± Sacrifica um pouco o desempenho de uma única thread Politica de Escalonamento de Thread Round-robin Particionamento dinamico do Pipeline Exemplo: Pentium4 (hyper-threading): 5-way issue, 2 threads 12/3/

18 Simultaneous Multithreading (SMT) Simultaneous multithreading (SMT): dentro de um processador com escalonamento dinamico existem vários mecanismos de HW para suportar multithreading Grande conjunto de registradores virtuais que podem ser usados para implementar conjunto de registradores para cada thread Register renaming fornece um mecanismo para identificar registradores de forma única. Out-of-order completion permite a execução de threads out of order para melhor utilização do HW. Necessidade da adição de uma renaming table por thread e manter PCs separados Commit independente pode ser suportado através de reorder buffers separados para cada thread 12/3/

19 Time (processor cycle) Multithreaded Categories Superscalar Fine-Grained Coarse-Grained Simultaneous Multithreading Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Idle slot 19

20 SMT 20

21 Desafios em SMT Deve ter um grande Banco de registradores para armazenar contextos multiplos. Desenvolvimento eficiente do hardware para não afetar o tempo de ciclo de clock Instruction issue mais instruções devem ser consideradas Instruction completion escolher quais instruções para commit pode ser um desafio Garantir que os conflitos gerados pela cache e TLB em um processador SMT não degradam desempenho. 21

22 Exemplos

23 Exemplos

24 Exemplos

25 Desempenho dos Processadores

26 Time (processor cycle) Multithreaded Categories Simultaneous Superscalar Fine-Grained Coarse-Grained Multiprocessing Multithreading Thread 1 Thread 2 Thread 3 Thread 4 Thread 5 Idle slot 26

27 Interesse em Multiprocessadores Uma crescente utilização de servidores Um crescimento em aplicações dataintensive Um melhor entendimento de como usar multiprocessadores para explorar threadlevel paralelismo Investimento em replicação é mais atrativo que investimento em um projeto exclusivo.

28 Flynn s Taxonomy M.J. Flynn, "Very High-Speed Computers", Proc. of the IEEE, V 54, , Dec Single Instruction Single Data (SISD) (Uniprocessor) Multiple Instruction Single Data (MISD) (????) Single Instruction Multiple Data SIMD (single PC: Vector, CM- 2) Multiple Instruction Multiple Data MIMD (Clusters, SMP servers) Flynn classificou de acordo com streams de dado e controle em 1966 SIMD Data Level Parallelism MIMD Thread Level Parallelism MIMD mais popular pois: Flexibilidade: N programs e 1 programa multithreaded Cost-effective: mesma MPU em desktop & MIMD

29 Multiprocessamento Clusters commodity clusters Baseados em processadores comerciais e interconexões custom clusters O projetista customiza cada nó de processamento e a rede de interconexão

30 Multiprocessamento Clusters Aplicações que focam em taxa de transferência e possuem pouca (ou nenhuma) comunicação entre threads, com Servidores WEB, e aplicações baseadas em transações podem ser implementadas em um cluster.

31 Classificação de Multiprocessadores Arquitetura Paralela = Arquitetura do Computador + Arquitetura da Comunicação Classificação por memória: Processador de Memória Centralizada (Symmetric) Típico para sistemas pequenos demanda de largura de banda de memória e rede de comunicação. Multiprocessador de Memória Fisicamente Distribuída Escala melhor demanda de largura de banda para rede de comunicação

32 Classificação por Memória Multiprocessadores de Memória Centralizada Poucos processadores ( poucas dezenas chips ou cores) em 2006 Memória única e centralizada P0 P1 Pn C C... C M IO Centralized Memory

33 Classificação por Memória Multiprocessadores de Memória Fisicamente Distribuída Maior número de processadores (centenas de chips ou cores) Memória distribuída entre processadores P0 P1 Pn C C C M IO M IO... M IO Interconnection Network Distributed Memory

34 Centralized vs. Distributed Memory Scale P0 P1 Pn P0 P1 Pn C C... C M C IO M C IO... M C IO M IO Interconnection Network Centralized Memory Distributed Memory

35 Classificação de Multiprocessadores Arquitetura Paralela = Arquitetura do Computador + Arquitetura da Comunicação Classificando por comunicação: Multiprocessador baseado em Message- Passing : processadores enviam menssagens Processador baseado em Memória Compartilhada: processadores se comunicam através de espaço de endereçamento comum. Memória Centralizada:, UMA (Uniform Memory Access time) Memória Distribuída:, NUMA (Non Uniform Memory Access time)

36 Exemplos de Multiprocessadores

37 Exemplos de Multiprocessadores

38 Multi-core Multiprocessador implementado em um único circuito integrado

39 Mudança de Paradigma We are dedicating all of our future product development to multicore designs. This is a sea change in computing Paul Otellini, President, Intel (2005) Todas as companhias de processadores estão desenvolvendo multi-core (2X CPUs / 2 anos) Manufacturer/Year AMD/ 05 Intel/ 06 IBM/ 04 Sun/ 05 Processors/chip Threads/Processor Threads/chip

40 Multi-Core Processor

41 Cores homegêneos Superscalares Intel Core 2 Duo (escalonamento dinâmico, especulação, multiple issue) Interconexão baseada em barramento Cada core tem cache local (L1) Memória compartilhada (cache L2) no chip Source: Intel Corp.

42 Desafios do processamento Paralelo Primeiro desafio: quantos % do programa é inerentemente sequencial Suponha speedup de 80X speedup para 100 processadores. Qual a fração do programa que deve ser sequencial? a. 10% b. 5% c. 1% d. <1% O,25%

43 Resposta usando Lei de Amdahl Speedup overall 80 ( 79 = = 80 = ( 1 Fraction ) ( 1 Fraction ) ( 1 Fraction ) 80 Fraction Fraction parallel parallel parallel 1 enhanced Fraction Speedup 1 Fraction Fractionparallel + ) Fraction parallel + parallel parallel parallel = 1 parallel = 79 / 79.2 = 99.75%

44 Desafios do processamento Paralelo Segundo desafio: longas latências de memórias remotas Suponha 32 CPU MP, 2GHz, 200 ns memória remota, todos acessos locais são hits e CPI base de 0.5. (Acesso remoto = 200/0.5 = 400 ciclos.) Qual o impacto no desempenho se 0.2% das instruções envolvem acessos remotos? a. > 1.5X b. > 2.0X c. > 2.5X 2,6X

45 Equação do CPI CPI = CPI base + taxa de acesso remoto x custo do acesso remoto CPI = % x 400 = = 1.3 Sem acesso remoto é 2.6 mais rápida que com 0.2% das instruções envolvendo acessos remoto

46 Desafios do processamento Paralelo 1. Paralelismo da Aplicação através de novos algoritmos com melhor desempenho 2. Impacto da longa latência no acesso remoto mudanças na arquitetura e na programação For exemplo, redução dos acessos remotos por: Caching shared data (HW) Restruturando estruturas de dados para garantir mais acessos locais (SW) Foco do capítulo: gerenciar latência através do uso de cache.

47 Multi-processadores de Memória Compartilhada

48 Multi-processadores de Memória Compartilhada Evolução: Múltiplas placas ou chips usando barramento compartilhado Múltiplos processadores dentro de um chip. Caches Dados Privado usados por cada processador Dados Compartilhados usados por múltiplos processadores Caching dado compartilhado reduz latência a dados compartilhado, largura de banda da memória para acesso a dado compartilhado e largura de banda de interconexão problema de coerência de cache

49 Exemplo de problema de Coerência de Cache u :5 P 1 P 2 P 3 u =? u =? 4 $ $ 5 $ u :5 3 u= 7 1 u:5 2 I/O devices Memory Processadores verão diferentes valores de u após evento 3 Caches write-through: valores inconsistentes Caches write back: valor escrito na memória depende do momento que que ocorre o flush de cache e os valores são atualizados na memória

50 Garantindo a Coerência Replicação para dados compartilhados que estão na memória são feitas cópias nas caches que estão usando o dado Reduz latência de acesso e utilização simultânea do barramento na leitura de dado compartilhado. P 1 u =? P 2 P 3 $ $ $ u :5 u:5 I/O devices Memory

51 Garantindo a Coerência Migração o valor mais atualizado da variável é movido entre a cache que tem o valor mais atual e a cache que precisa do dado Reduz a latência devido a leitura dos dados na memória P 1 u = =7? 3 P 2 P 3 $ $ $ u :5 u=7 2 u:5 Memory 1 I/O devices

52 Exemplo de problema de Coerência de Cache u :5 P 1 P 2 P 3 u =? u =? 4 $ $ 5 $ u :5 3 u= 7 1 u:5 2 I/O devices Memory Processadores verão diferentes valores de u após evento 3 Caches write-through: valores inconsistentes Caches write back: valor escrito na memória depende do momento que que ocorre o flush de cache e os valores são atualizados na memória

53 Garantindo a Coerência Como manter coerência de dados migrados ou replicados? Protocolos implementados pelo controlador da cache e/ou pelo controlador de memória que permitem o rastreamento do status de compartilhamento.

54 Protocolos de Coerência de Cache 1. Snooping Cada cache que possui cópia de um dado também tem uma cópia do status de compartilhamento, Todas as caches são acessíveis através de meio barramento Todos os controladores de caches monitoram ou snoop o meio para determinar se eles possuem ou não uma cópia sendo requisitada pelo barramento 2. Directory based O status do compartilhamento de um bloco da memória física é armazenado em um local, diretório

55 Coerência: Conceito Só uma pessoa pode falar no microfone por vez Toda modificação em conta deve ser comunicada entre os funcionários através do alto falante Após qualquer modificação, as cópias devem ser inutilizadas

56 Protocolo Snooping de Coerência de Cache

57 Protocolo Snooping de Coerência de Cache State Tag Data P 1 Bus snoop P n $ $ Mem I/O devices Cache-memory transaction Controladores de Cache snoops (bisbilhotam) todas as transações no barramento Transações relevantes : envolvem bloco que a sua cache possui Realiza ação para garantir coerência invalida, atualiza, ou fornece valor Atualiza estado de compartilhamento do bloco de cache

58 Protocolos de Coerência de Cache Write Invalidate As cópías nas demais caches são Invalidadas na ocorrência de uma escrita em uma das caches Write Update As cópias das demais caches são atualizadas após a ocorrência de uma escrita em uma das caches Write update causam maior utilização do barramento Multiprocessadores atuais usam write invalidate

59 Exemplo: Write-thru Invalidate P 1 P 2 P 3 u = 7 u = $ $ 5 $ u :5 u :5 u= 7 1 u:5 u = 7 2 I/O devices Memory P3 Deve invalidar todas as cópias antes da escrita Caches write through: simplicidade de implementação porém mais acessos à memória Caches write-back: menos acessos à memória, mas como encontrar o bloco que contem a cópia com valor atualizado?

60 PROBLEMA 1: COMO GARANTIR QUE SÓ UM PROCESSADOR ESCREVE NA VARIÁVEL COMPARTILHADA?

61 Protocolo de Barramento Clock Bus Request Bus Grant R/W Address Cmd+Addr Data Data1 Data2 Só um processador usa o barramento por vez

62 Contenção de Barramento Dois processadores querem usar o barramento ao mesmo tempo P0 Bus req. P1 Bus req. Pn C C... C M IO

63 Contenção de Barramento Dois processadores querem usar o barramento ao mesmo tempo P0 Bus req. P1 Bus req. Pn C C... C Árbitro O processador P0 tem que esperar M IO

64 Módulos da Arquitetura State Tag Data P 1 Bus snoop P n Estados: Não válido, Válido, dirty $ Mem I/O devices $ Cache-memory transaction Protocolo de barramento: Requisição Comando Dado Acesso simultâneo: Só um processador ganha o acesso Decisão: árbitro Invalidação das demais cópias

65 PROBLEMA 2: ONDE ENCONTRAR A CÓPIA MAIS ATUALIZADA DO BLOCO DE CACHE?

66 Localizando cópia mais atualizada Caches Write-through: usa cópia da memória Write through é mais simples porém causa muitos acessos à memória e maior utilização do barramento. Caches Write-back: deve localizar cópia mais recente nas caches. É mais complicado de implementar Reduz acessos à memória A maioria dos multiprocessadores usam caches write-back

67 Localizando cópias em Caches Write Back Solução: Usar o mesmo mecanismo de snooping para achar a cópia mais atual Blocos de cache Snoop todo endereço colocado no barramento Se processador possui cópia atual do bloco requisitado ele responde a requisição de leitura e aborta acesso à memória.

68 Protocolo Snooping Write Back Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido

69 Protocolo Snooping Write Back Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido CPU solicita leitura: Se cache não tem cópia: Controlador coloca Read Miss no barramento Outras caches: Read misses: todas as caches vão dar snoop no barramento Controlador bisbilhota todo endereço colocado no barramento Se a cache possui uma cópia Exclusive do bloco requisitado, fornece o bloco em resposta a requisição de leitura e aborta o acesso à memória.

70 Protocolo Snooping Write Back Cada bloco de cache vai estar em UM dos estados: Shared : bloco pode ser lido OU Modified/Exclusive : cache tem somente uma cópia que pode ser escrita e dirty OU Invalid : bloco não contem dado válido CPU solicita escrita: Se cache não tem cópia: Controlador coloca Write Miss no barramento Outras caches: Write misses: todas as caches vão dar snoop no barramento Controlador bisbilhota todo endereço colocado no barramento Se a cache possui uma cópia Exclusive do bloco requisitado, atualiza a memória e Invalida a cópia. Se a cache possui uma cópia Shared do bloco requisitado invalida a cópia

71 Snooping: Write-Back - CPU Mudança de estado considerando requisições da CPU para cada bloco de cache Blocos que não estão na cache não são validos Invalid CPU Read Place read miss on bus CPU Read hit Shared (read/only) CPU Write Place Write Miss on bus Cache Block State CPU read hit CPU write hit Exclusive (read/write) CPU Write Place Write Miss on Bus CPU Write Miss (?) Write back cache block Place write miss on bus

72 Mudança de estado para requisições da CPU para cada bloco da cache Snooping: Write-Back Substituição de Bloco Invalid CPU Read Place read miss on bus CPU Read hit Shared (read/only) CPU Write Place Write Miss on bus CPU read miss Write back block, Place read miss on bus CPU Read miss Place read miss on bus Cache Block State CPU read hit CPU write hit Exclusive (read/write) CPU Write Place Write Miss on Bus CPU Write Miss Write back cache block Place write miss on bus

73 Snooping: Write-Back - Bus Mudança de estado considerando operações do barramento para cada bloco de cache Invalid Write miss for this block Shared (read/only) Write miss for this block Write Back Block; (abort memory access) Exclusive (read/write) Read miss for this block Write Back Block; (abort memory access)

74 Snooping Write-back Mudança de estado para requisições da CPU para cada bloco da cache e para requisições do barramento para cada bloco de ache Cache Block State Write miss for this block Write Back Block; (abort memory access) CPU read hit CPU write hit Invalid CPU Read Place read miss CPU Write on bus Place Write Miss on bus Exclusive (read/write) Write miss for this block CPU read miss Write back block, Place read miss on bus CPU Read hit Shared (read/only) CPU Read miss Place read miss on bus CPU Write Place Write Miss on Bus Read miss for this block Write Back Block; (abort memory access) CPU Write Miss Write back cache block Place write miss on bus

75 Exemplo Processor 1 Processor 2 Bus Memory P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 P1: Read A1 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 75 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

76 Exemplo: Passo 1 P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: Read A1 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Estado ativo: Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 76 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

77 Exemplo: Passo 2 P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: Read A1 Excl. A1 10 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 77 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

78 Exemplo: Passo 3 P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: Read A1 Excl. A1 10 P2: Read A1 Shar. A1 RdMs P2 A1 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A P2: Write 20 to A1 10 P2: Write 40 to A Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 78 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

79 Exemplo: Passo 4 P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: Read A1 Excl. A1 10 P2: Read A1 Shar. A1 RdMs P2 A1 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A1 10 A1 10 P2: Write 20 to A1 Inv. Excl. A1 20 WrMs P2 A1 10 P2: Write 40 to A Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 79 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

80 Exemplo: Passo 5 P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: Read A1 Excl. A1 10 A1 P2: Read A1 Shar. A1 RdMs P2 A1 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A1 10 A1 10 P2: Write 20 to A1 Inv. Excl. A1 20 WrMs P2 A1 A1 10 P2: Write 40 to A2 WrMs P2 A2 10 Excl. A2 40 WrBk P2 A Assuma que estado inicial da cache é não válido A1 e A2 mapeiam para o mesmo slot de cache mas A1!= A2 Remote Write Write Back Invalid Remote Write Read miss on bus Write miss on bus Remote Read Write Back Shared CPU Write Place Write Miss on Bus CPU Read hit CPU Read Miss 80 CPU read hit CPU write hit Exclusive CPU Write Miss Write Back

81 Snooping State Tag Data P 1 Bus snoop P n Estados: Shared, Não válido, Exclusivo $ Mem I/O devices $ Cache-memory transaction Protocolo de barramento: Requisição Comando Dado Acesso simultâneo: Só um processador ganha o acesso Decisão: árbitro Invalidação das demais cópias

82 Limitações Aumento no número de processadores -> cresce demanda por memória - > tornando-se um bottleneck. Para bus-based multiprocessador, Bus: acessos devido a coerência e acessos à memória Memória UNICA: recebe TODAS as requisições dos processadores. Processadores mais rápidos e em maior número. Como suportar este novo cenário? Múltiplos barramentos e redes de interconexão Memória configurada em bancos de memória

83 Limitações Múltiplos barramentos e redes de interconexão Memória configurada em bancos de memória

84 Network-based Coherence

85 Abordagem Escalável: Diretórios Cada bloco de memória tem uma informação armazenada em um diretório Gerencia cópias dos blocos em cache e seus estados Em caso de miss, encontra entrada no diretório, analiza o mesmo e comunica somente com os nós que possuem cópia se necessário Em redes escaláveis, comunicação com diretório e cópias é feita através da rede. Várias alternativas para organizar informação no diretório.

86 Operação Básica de Diretório P P Cache Cache Interconnection Network k processadores. Cada bloco de cache na memória: k presence-bits, 1 dirty-bit Cada bloco de cache em cache: 1 valid bit, e 1 dirty (owner) bit Memory Directory presence bits dirty bit Leitura da memória pelo processador i: Se dirty-bit está OFF então { leitura da memória; atualiza p[i] para ON; } Se dirty-bit está ON então { acessa linha de cache do processador dirty (estado de cache para shared); atualiza memória; faz dirty-bit igual a OFF; faz p[i] igual a ON; fornece dado para i;} Escrita na memória pelo processador i: Se dirty-bit igual a OFF então { fornece dado para i; envia nvalidations para todas as caches que tem o bloco; faz dirty-bit igual a ON; faz p[i] igual a ON;... }...

87 Operação Básica de Diretório

88 Coerência Snooping Só uma pessoa pode falar no microfone por vez Toda modificação em conta deve ser comunicada entre os funcionários através do alto falante Após modificações cópias devem ser inutilizadas

89 Coerência: Diretório Acessos às pastas somente através do diretório Toda modificação em qualquer cópia deve ser comunicada ao diretório Diretório comunica a necessidade de inutilização Diretório envia cópia mais atualizada

90 Protocolo baseado em Diretório Interconnection Network Directory Directory Directory Local Memory Local Memory Local Memory Cache Cache Cache CPU 0 CPU 1 CPU 2

91 Protocolo baseado em Diretório Interconnection Network Bit Vector Directories X U Memories X 7 Caches CPU 0 CPU 1 CPU 2

92 CPU 0 lê X Interconnection Network Read Miss Directories X U Memories X 7 Caches CPU 0 CPU 1 CPU 2

93 CPU 0 lê X Interconnection Network Directories X S Memories X 7 Caches CPU 0 CPU 1 CPU 2

94 CPU 0 lê X Interconnection Network Directories X S Memories X 7 Caches X 7 CPU 0 CPU 1 CPU 2

95 CPU 2 lê X Interconnection Network Directories X S Memories Read Miss X 7 Caches X 7 CPU 0 CPU 1 CPU 2

96 CPU 2 lê X Interconnection Network Directories X S Memories X 7 Caches X 7 CPU 0 CPU 1 CPU 2

97 CPU 2 lê X Interconnection Network Directories X S Memories X 7 Caches X 7 X 7 CPU 0 CPU 1 CPU 2

98 CPU 0 escreve 6 em X Write Miss Interconnection Network Directories X S Memories X 7 Caches X 7 X 7 CPU 0 CPU 1 CPU 2

99 CPU 0 escreve 6 em X Interconnection Network Directories X S Memories Invalidate X 7 Caches X 7 X 7 CPU 0 CPU 1 CPU 2

100 CPU 0 escreve 6 em X Interconnection Network Directories X E Memories X 7 Caches X 6 CPU 0 CPU 1 CPU 2

101 CPU 1 lê X Interconnection Network Read Miss Directories X E Memories X 7 Caches X 6 CPU 0 CPU 1 CPU 2

102 CPU 1 lê X Interconnection Network Switch to Shared Directories X E Memories X 7 Caches X 6 CPU 0 CPU 1 CPU 2

103 CPU 1 lê X Interconnection Network Directories X E Memories X 6 Caches X 6 CPU 0 CPU 1 CPU 2

104 CPU 1 lê X Interconnection Network Directories X S Memories X 6 Caches X 6 X 6 CPU 0 CPU 1 CPU 2

105 CPU 2 escreve 5 em X Interconnection Network Directories X S Memories Write Miss X 6 Caches X 6 X 6 CPU 0 CPU 1 CPU 2

106 CPU 2 escreve 5 em X Interconnection Network Directories X S Memories X 6 Caches X 6 X 6 CPU 0 CPU 1 CPU 2

107 CPU 2 escreve 5 em X (Write back) Interconnection Network Directories X E Memories X 6 Caches X 5 CPU 0 CPU 1 CPU 2

108 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories X 6 Caches X 5 CPU 0 CPU 1 CPU 2

109 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories Take Away X 6 Caches X 5 CPU 0 CPU 1 CPU 2

110 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories X 5 Caches X 5 CPU 0 CPU 1 CPU 2

111 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories X 5 Caches CPU 0 CPU 1 CPU 2

112 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories X 5 Caches X 5 CPU 0 CPU 1 CPU 2

113 CPU 0 escreve 4 em X Interconnection Network Directories X E Memories X 5 Caches X 4 CPU 0 CPU 1 CPU 2

114 Oito cores: cada um suporta até 4 threads. Cada core consiste num pipeline de 6 estágios Tl usa fine-grained multithreading, Os cores acessam 4 caches de 2 níveis Existe coerência entre caches L1 e um diretório com cada cache L2 LI data cache é write through, Exemplo T1

115 Exemplo T1

116 Exemplo T1

117 Comparação T1 e Superescalares

118 Comparação T1 e Superescalares

119 Comparação T1 e Superescalares

120 Comparação T1 e Superescalares

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

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado Multiprocessadores - A evolução tecnológica dos processadores iria diminuir drasticamente. 2- O caminho para o aumento de desempenho é de unir mais de um processador para realizar a mesma tarefa em menos

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

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

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór Bacharelado em Sistemas de Informação Sistemas Operacionais Prof. Filipo Mór WWW.FILIPOMOR.COM - REVISÃO ARQUITETURAS PARALELAS Evolução das Arquiteturas Evolução das Arquiteturas Entrada CPU Saída von

Leia mais

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011

Multiprocessamento. Patterson & Hennessy Capítulo 9. Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Multiprocessamento Patterson & Hennessy Capítulo 9 Arquitetura e Organização de Computadores Juliano M. Vieira (c) 2011 Tópicos Abordados Tipos comuns SMP (processamento paralelo) NUMA (placas de alto

Leia mais

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Arquiteturas MIMD Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes modelos: Arquiteturas MIMD de

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 17ª Aula Paralelismos nível de tarefas Profa. Sarita Mazzini Bruschi [email protected] Paralelismo no nível de tarefas Paralelismo a nível de thread (TLP Thread-Level

Leia mais

Organização de Computadores II. Arquiteturas MIMD

Organização de Computadores II. Arquiteturas MIMD Organização de Computadores II Arquiteturas MIMD Arquiteturas UMA Arquiteturas com memória única global. Tempo de acesso uniforme para todos os nós de processamento. Nós de processamento e memória interconectados

Leia mais

Desafios do Mapeamento de Processos em Arquiteturas Many-Core

Desafios do Mapeamento de Processos em Arquiteturas Many-Core Desafios do Mapeamento de Processos em Arquiteturas Many-Core Professor: Philippe O. A. Navaux Instituto de Informática - UFRGS Escola Regional de Alto Desempenho São Paulo 1 Indíce Evolução dos Processadores

Leia mais

Caracterização de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes

Leia mais

Processamento Paralelo

Processamento Paralelo Processamento Paralelo por Helcio Wagner da Silva Introdução Tradicionalmente, o computador tem sido visto como uma máquina seqüencial Esta visão nunca foi completamente verdadeira No nível das µo, vários

Leia mais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação MULTIPROCESSADORES

Leia mais

Protocolos de Coerência de Memória Cache

Protocolos de Coerência de Memória Cache Universidade Federal do Rio de Janeiro Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquiteturas de Sistemas de Processamento Paralelo Protocolos de Coerência de Memória Cache Introdução Em sistemas

Leia mais

Linguagem de Programação II

Linguagem de Programação II Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB [email protected] Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

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

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva Introdução à Programação Paralela através de Padrões Denise Stringhini Calebe Bianchini Luciano Silva Sumário Introdução: conceitos de paralelismo Conceitos básicos sobre padrões de programação paralela

Leia mais

Computadores e Programação (DCC/UFRJ)

Computadores e Programação (DCC/UFRJ) Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo

Leia mais

Multiprogramação leve em arquiteturas multi-core

Multiprogramação leve em arquiteturas multi-core Multiprogramação leve em arquiteturas multi-core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Arquiteturas multi-core Programação multithread Ferramentas de programação

Leia mais

SSC510 Arquitetura de Computadores. 6ª aula

SSC510 Arquitetura de Computadores. 6ª aula SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas

Leia mais

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

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído Arquitetura de Computadores Sistemas computacionais para processamento paralelo e distribuído Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Processamento

Leia mais

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória Infraestrutura de Hardware Explorando Desempenho com a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

Arquiteturas Paralelas

Arquiteturas Paralelas Arquiteturas Paralelas Arquiteturas Paralelas Graduação em Ciência da Computação Universidade do Vale do Rio dos Sinos Prof. Gerson Cavalheiro Programação Paralela e Distribuída 2006 CC / UNISINOS Classificação

Leia mais

Memória Cache. Walter Fetter Lages.

Memória Cache. Walter Fetter Lages. Memória Cache Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Copyright (c) Walter Fetter Lages p.1 Introdução SRAM

Leia mais

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

Infraestrutura de Hardware. Explorando a Hierarquia de Memória Infraestrutura de Hardware Explorando a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo

Leia mais

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

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Pipelining Avançado Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Introdução A técnica de pipelining explora o paralelismo entre as instruções Paralelismo em Nível de Instrução (ILP). Métodos

Leia mais

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa

Leia mais

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

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES Prof. Dr. Daniel Caetano 2012-2 Lembretes Compreender o funcionamento da Arquitetura Superpipeline Compreender

Leia mais

Disciplina de Arquitetura de Computadores

Disciplina de Arquitetura de Computadores USP - ICMC - SSC SSC 0510 - Informática - 2o. Semestre 2009 Disciplina de Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal: http://www.icmc.usp.br/~fosorio/

Leia mais

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

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW Infraestrutura de Hardware Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem

Leia mais

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core RSS-Verão-01/08 p.1/36 Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7 Escola de Verão 2008 Arquiteturas Multi-Core Renato S. Silva LNCC - MCT Janeiro de 2008 RSS-Verão-01/08 p.2/36 Objetivo:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Classificação de Flynn Fonte: Professoras. Sarita UFRJ e Thais V. Batista - UFRN Arquiteturas Paralelas Computação Paralela Conceitos Permite a execução das tarefas em menor tempo,

Leia mais

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD Universidade Federal do Rio de Janeiro Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquiteturas de Sistemas de Processamento Paralelo Arquiteturas MIMD Arquiteturas MIMD com Memória Distribuída MIMD

Leia mais

SSC0902 Organização e Arquitetura de Computadores

SSC0902 Organização e Arquitetura de Computadores SSC0902 Organização e Arquitetura de Computadores 13ª Aula Definição de Pipeline e Pipeline da arquitetura MIPS Profa. Sarita Mazzini Bruschi [email protected] Arquitetura CISC CISC Complex Instruction

Leia mais

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

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados

Leia mais

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

Unidade 12: Introdução ao Paralelismo:

Unidade 12: Introdução ao Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 12: Introdução ao Paralelismo: Processadores Superescalares Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura superescalar

Leia mais

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura Introdução Organização e Arquitetura INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Eduardo Max Amaro Amaral Arquitetura são os atributos visíveis ao programador. Conjunto de instruções, número

Leia mais

Memória Cache. Aula 24

Memória Cache. Aula 24 Memória Cache Aula 24 Introdução Objetivo: oferecer o máximo de memória disponível na tecnologia mais barata, enquanto se fornece acesso na velocidade oferecida pela memória mais rápida Velocidade CPU

Leia mais

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

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. (CPU) Modelo do Computador Von Neumann Processador Memórias E/S Barramentos Simulação Contador http://courses.cs.vt.edu/csonline/machinearchitecture/lessons/cpu/countprogram.html

Leia mais

Arquitetura de Computadores Aula 11 - Multiprocessamento

Arquitetura de Computadores Aula 11 - Multiprocessamento Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br [email protected] 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.

Leia mais

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

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações Introdução aos Sistemas de Computação (6) Análise de componentes num computador Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3.

Leia mais

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Arquitetura de Computadores Paralelos Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Por que estudar Computação Paralela e Distribuída? Os computadores sequenciais

Leia mais

Arquiteturas paralelas Parte 1

Arquiteturas paralelas Parte 1 Arquiteturas paralelas Parte 1 Processamento Paralelo Prof. Oberlan Romão Departamento de Computação e Eletrônica DCEL Centro Universitário Norte do Espírito Santo CEUNES Universidade Federal do Espírito

Leia mais

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

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura

Leia mais

Programação Distribuída e Paralela. Jorge Barbosa

Programação Distribuída e Paralela. Jorge Barbosa Programação Distribuída e Paralela Jorge Barbosa 1 Máquinas Paralelas Processadores Memória Rede de interligação Classificação das máquinas paralelas 2 Processador Escalar Processadores Processador que

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 9 e 10 Memória cache Tendências tecnológicas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

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

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

Capítulo 7 Sistemas de Memória. Ch7a 1

Capítulo 7 Sistemas de Memória. Ch7a 1 Capítulo 7 Sistemas de Memória Ch7a 1 Memórias: Revisão SRAM (Static RAM): Valor é armazenado por meio da interligação de um par de inversores Rápido, mas consome mais espaço que DRAM (4 a 6 transistores)

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL Prof. Dr. Daniel Caetano 2012-2 Objetivos Compreender a Arquitetura SMP Conhecer a Organização SMP Apresentar o Conceito

Leia mais

Sistemas Operacionais. Conceitos de Hardware

Sistemas Operacionais. Conceitos de Hardware Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal

Leia mais

Barramento CoreConnect

Barramento CoreConnect Barramento CoreConnect MO801 1º semestre de 2006 Prof. Rodolfo Jardim de Azevedo Fabiana Bellette Gil - RA 028671 CoreConnect Agenda Conceitos básicos Introdução ao CoreConnect Arquitetura Referências

Leia mais

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 4. MEMÓRIA 2 4. MEMÓRIA A memória é um componente essencial de todo computador, sendo utilizada para armazenar as instruções a serem

Leia mais

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

Arquitetura e Organização de Processadores. Aula 4. Pipelines Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de

Leia mais

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

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho Hierarquia de Memória Sistemas de Computação André Luiz da Costa Carvalho 1 Introdução l Pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura

Leia mais

Correção de Erros. Erros de memória de semicondutores podem ser:

Correção de Erros. Erros de memória de semicondutores podem ser: Correção de Erros Erros de memória de semicondutores podem ser: Erros graves que constitui um defeito físico permanente; Erros moderados, onde a(s) célula(s) não são capazes de armazenar os dados ou fazem

Leia mais

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

MEMÓRIA COMPARTILHADA DISTRIBUÍDA MEMÓRIA COMPARTILHADA DISTRIBUÍDA Sistemas Distribuídos 290 Formas de comunicação entre processos (IPC) Troca de mensagens originador: send(destinatário, dados) receptor receive(dados) Memória compartilhada

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum

Leia mais

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Memória Cache Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Memória Cache Memória Principal Vs. Cache Fichário Quadro Pasta O fichário representa o disco rígido. A pasta sobre a mesa representa

Leia mais

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

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro Sistemas MIMD Arquiteturas para Alto Desmpenho Prof. [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez [email protected] 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP Introdução Memória Compartilhada e Distribuída _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP Um sistema de memória compartilhada faz a memória física global de um sistema igualmente

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender a Arquitetura SMP Conhecer a Organização SMP Apresentar o Conceito

Leia mais