O que influi no desempenho de CPU

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

Download "O que influi no desempenho de CPU"

Transcrição

1 Lei de Amdahl O ganho de desempenho possível de um dado melhoramento é limitado pela fração de tempo que a característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de desempenho S para uma fração do tempo F. Qual o ganho de desempenho? Exemplo Se um computador executa um programa P em 100 segundos, onde 30% das operações são acessos a memória com tempo médio de acesso de 80ms e 60% são operações de ponto flutuante. A)Qual o impacto no desempenho global do sistema, ao se diminuir o tempo médio de acesso a memória pela metade? B)Qual o impacto no desempenho global, ao dobrar o desempenho das op. de ponto flutuante? Exemplo 2 Se um computador executa um programa P em 100 segundos, onde 80% das operações são multiplicações. Quanto seria preciso melhorar o desempenho das multiplicações para que o sistema tive um ganho de desempenho de cinco vezes? Desempenho Todos os componentes influem mas... O desempenho da CPU é crítico para o desempenho do Computador. desempenhocpu(x)= 1/TempoCPU(X) O que influi no desempenho de CPU Que programas utilizar para medir desempenho? Desempenho é medido com base em tempos de execução de programas selecionadas. Então, como selecionar? Situação ideal: usuário sabe exatamente quais programas utiliza com quais dados de entrada e testa nos computadores seus desempenhos. Factível? 1

2 Candidatos a programas de avaliação (benchmark) Programas reais Dados de entrada portabilidade Aplicações modificadas Uso de scripts para fornecer a interatividade Kernels Implementam trechos de código comuns em vários programas. Por exemplo: laços com operação de vetores (Linpack) Candidatos a programas de avaliação (benchmark) 2 Toy Benchmarks: Crivo de Eratóstenes, QuickSort, etc. Benchmarks Sintéticos Semelhante aos kernels, porém utilizam freqüência média de instruções em grandes programas para selecionar as instruções. Ex. Whetstone e Dhrystone. Pacotes de programas de benchmark Reunem vários outros benchmarks individuais para formar um pacote Ex. SPEC(Standard Performance Evaluation Corporation) Programas de benchmark Há muitos programas de benchmark disponíveis. Não há melhores ou piores, há aqueles mais ou menos adequados ao seu problema Embora se utilize freqüentemente dados de um benchmark para avaliar de forma absoluta dois computadores, lembre-se: Desempenho é relativo ao programa!! Exemplos de benchmark: Família SPEC Riscos do uso de Benchmarks Atualmente existem vários benchmarks focados em medir o desempenho de sistemas embutidos ver EEMBC (The Embedded Microprocessor Benchmark Consortium) Como muitas decisões de compra são feitas com base em benchmark, os projetistas são pressionados a otimizarem seus projetos para o benchmark Como Melhorar o desempenho? Instruction Set Pipeline, processadores superescalares, matriciais, vetoriais, etc. Organização Hierarquia de Memória, barramentos especializados, memória entrelaçada, etc. Tecnologia Aumento da Taxa de clock, consumo de potência, etc. Isso é realmente bom? 2

3 Projetando Instruções Instruções com tempo de execução muito diferentes ou com número de fases muito diferentes não são adequadas para uma linha de produção (pipeline) Porque não criar instruções simples com pequenas diferenças em tempo de ex. de fases (e mesmo número de fases) Abordagens para Conjuntos de Instruções Não seria mais vantajoso: Criar instruções poderosas que resolvessem problemas comuns ao invés de instruções simples que resolvem quase nada? Abordagens para Conjuntos de Instruções Final dos anos 70, surge a idéia de Computadores de arquitetura de alto nível (HLLCA High Level Language Computer Architecture) No ínicio dos anos 80, Ditzel e Patterson argumentavam que arquiteturas mais simples seriam o melhor caminho e apresentam a idéia do Reduced Instruction Set Computer (RISC) Desenvolvimento Os desenvolvimentos RISC e CISC continuaram em paralelo,disputando mercado A arquitetura teve três grandes projetos iniciais: RISC de Berkeley(Patterson e outros) IBM 801 MIPS de Stanford (Hennessy e outros) Na mesma época, alguns projetistas (VAX) refutaram a idéia e seguiram construindo computadores baseados em conjuntos de instrução complexos (Complex Instruction Set Computer, CISC) RISC x CISC Para ajudar a resolver o debate entre RISC e CISC, os projetistas do VAX fizeram uma comparação entre o VAX 8700 e o MIPS M2000 no início dos anos 90. VAX: Modos de endereçamentos poderosos, instruções eficientes, codificação de instrução eficiente e poucos registradores MIPS M2000: Instruções simples, modos de endereçamentos simples, formato de instruções de comprimento fixo, grande número de registradores, pipelining Os computadores tinham organizações semelhantes e tempos de clock iguais Gráfico de Desempenho MIPS / VAX 3

4 RISC x CISC Finalmente, sobreviveu apenas um CISC a este embate: x86 Alto volume de chips Compatibilidade binária com o software do PC Conversão interna de CISC para RISC Escala suficiente para suportar o hardware extra RISC x CISC Mercado Embutido Celulares, PDAs, eletrodomésticos,... Crítico Custo e Energia: Não há espaço para conversão de hardware Utiliza Compiladores e Arquiteturas RISC Em 2000, o número de processadores embutidos comercializados foi mais de duas vezes o número de processadores x86 (mais de 90% deles RISC) Abordagens para Arquitetura de Conjuntos de Instruções Comparando Instruções Numéricas Registradores de Propósitos Gerais dominam Exemplos de Formato de Conjunto de instruções 4

5 Mundo RISC (CISC) Exploração do Paralelismo Entre fases Entre Instruções Entre Threads Entre programas Solução dos novos problemas trazidos pelo paralelismo Dentro da CPU: Como realmente funciona um computador Os cinco componentes clássicos de um Computador - Controle Processador com Acumulador: Um Caso Extremamente Simples Microprograma da CPU com Acumulador Revisão: Como Funciona o Hardware Digital 5

6 Processador = Software implementado em Hardware Digital Revisão: Como Funciona o Hardware Digital Representação Numérica e Operações Matemáticas Lógica Digital Memória Transistor Representação Numérica Sistema Base Alfabeto Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Binário 2 0, 1, Octal 8 0, 1, 2, 3, 4, 5, 6, 7, Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,A,B,C,D,E,F Equivalência entre os sistemas: (29)base 10 = (11101)base 2 = (35)base 8 = (1D)base 16 Representação de Números Um número em base B, pode ser representado como (a j, a j-1,a j-2,...a 0 ) B, onde 0 a k B-1 e escrito na forma polinomial: a j B j + a j-1 B j-1 +a j-2 B j a 1 B 1 +a 0 B 0 Logo: (347) 10 = 3 x I x l x 10 0 Conversão de Base (10111) 2 = 1 x x x x x 2 0 Computadores e Sistema Binário Complemento de 2 Números Negativos (dois zeros) Complemento de 2 Conversão de Base: Números Fracionários (ponto flutuante) Mantissa e expoente Se Positivo (isto é, bit de sinal igual a zero): Conversão Normal Se Negativo: Complementa número sem sinal, adiciona 1 e faz a Conversão Normal 6

7 Deslocamento Números Fracionários (Ponto Flutuante) Inteiros (15) 10 = (01111) 2 = = Números binários fracionários (1,5) 10 = (1,1) 2 = = 1+0,5 = (1,5) 10 (0,101) 2 = 1*2-1 +0* *2-3 = 0,5+0+0,125 = (0,625) 10 Conversão de Números Fracionários Conversão de Fracionários De binário para Decimal: (0.1011) 2 = = 0,5+0,125+0,0625 = = (0,6875) 10 (0.1001) 2 = = 0,5+0,0625 = (0,5625) 10 ( ) = = ,5+0,125= (7,625) 10 Conversão de Fracionários para base 2 2,25 -> Parte Inteira: (2) 10 = (10) 2 -> Parte Fracionária (0,25) 10 = (0.01) 2 Número: (2,25) 10 = (10,01) 2 Conversão de Fracionários - 2 Algoritmo para Conversão de Base A representação em base 10 (0,d 1 d 2..d j-1 d j ) pode ser obtida através dos seguintes passos: Observe que o algoritmo pode nunca parar... Como solucionar o problema do possível loop infinito? 7

8 Conversão de Base Ponto Flutuante em Computadores Processador = Software implementado em Hardware Digital Revisão: Como Funciona o Hardware Digital Representação Numérica e Operações Matemáticas Lógica Digital Memória Transistor Lógica Digital (Booleana) 8

9 Portas Lógicas 9

10 A suficiência da Porta NAND Portas lógicas podem ser implementadas dentro de Chips Portas Lógicas em Transistores Multiplexadores Multiplexar significa transmitir um grande número de informações através de um número pequeno de linhas ou canais 2^n linhas de entrada para uma saída e n linhas de controle As linhas de controle especificam QUAL das 2^n possibilidades é transmitida para a saída Implementando um multiplexador: Exercício Implementando um multiplexador: Solução 10

11 Somadores Somadores - 2 Meio-somador (sem contabilização de carry ou vaium ) Efetua a adição de 2 dígitos binários (não leva em consideração o vai-um ) Entradas: A e B - os 2 bits a serem somados Saídas: Somador Completo Efetua a adição de 2 dígitos binários (não leva em consideração o vai-um ) Entradas: A e B - os 2 bits a serem somados e o vem-um Saídas: S e C - a Soma e o bit de Vai-um (Carry) S e C - a Soma e o bit de Vaium (Carry) Somador Completo Memória Circuitos Combinacionais não possuem capacidade de armazenamento da informação A mudança dos valores das entradas implica necessariamente uma mudança dos valores das saídas Um Flip Flop é uma célula binária capaz de armazenar um bit de informação (multivibrador biestável) Flip Flops Sinal de Clock (Relógio) Tem 2 saídas: uma para o valor considerado normal e outra o complemento deste valor Um FF mantém o valor da saída (diz-se o seu ESTADO) até que um SINAL (clock) o comande TROCAR DE ESTADO Sinal de clock (relógio) Tipos comuns de Flip Flops RS D JK As mudanças de estado só acontecem com a transição do sinal do Relógio do circuito Sincronização no sistema As mudanças podem ocorrer tanto na borda ascendente quanto descendente 11

12 Flip Flop RS 2 entradas: R e S R para Reset (colocar no estado O) S para Set (colocar no estado 1) Flip Flop JK Modificação no FF RS. O estado indefinido do FF RS é definido no FF JK 2 entradas: J e K K para Reset (colocar no estado O) J para Set (colocar no estado 1) Flip Flop D Implementação de Flip Flop D em Portas Lógicas 1 entrada D (de Dado) Transfere o dado de entrada para a saída Um Processador de Registradores de Propósitos Gerais (MIPS de ciclo único) Um Processador Simples com Registradores de Propósitos Gerais 12

13 Um Exemplo: MIPS Principais Instruções Adição add R1,R2,R3; R1 = R2 + R3 Formato dos Conjunto de Instruções MIPS Subtração sub R1,R2,R3; R1 = R2 R3 Adição de constante (add immediate ) addi R1,R2,100; R1 = R Multiplicação (resultado em 64 bits) mult R2,R3; Hi, Lo = R2 x R3 Divisão (resultado em 64 bits) div R2,R3; Lo = R2 R3, Hi = R2 mod R3 Lo = quotient, Hi = remainder Um Exemplo: MIPS Principais Instruções Formato de Instruções MIPS Alterar memória (word) SW R3, 500(R4) Mem[R ] =R3 Ler memória (word) LW R1, 30(R2) R1 = Mem[R2 + 30] Desvio Condicional beq R1,R2,100 if (R1 == R2) go to PC Desvio incondicional (constante) jump j 2500; go to Desvio incondicional (registrador) jr R31; go to R31 Unidades Funcionais e Controle no MIPS Carregamento de Instrução 13

14 Controlando Operações R-type Adição/Subtração/And/or... IF no fim de uma instrução Instrução Load Instrução Store Instrução de Desvio Condicional IF ao fim de uma instrução de desvio condicional 14

15 Desvio não condicional IF ao fim de uma desvio não-condicional Sumário dos Sinais de Controle Decodificação Local Controle da ALU 15

16 Como melhorar desempenho? Desempenho é o inverso do tempo... O tempo de execução de uma instrução é a soma dos tempos gastos pelas unidades funcionais O que faz a ULA enquanto se carrega uma nova instrução? O que faz a unidade de memória enquanto a ULA realiza uma operação? Idéia: usar o pipeline...mas é necessário controlar o pipeline, o controle é igual? Melhorando o desempenho com Pipeline Pipeline Pipeline: Uma idéia natural Linhas de montagem Dividir a tarefa em sub-tarefas seqüenciais, alocar recursos para cada sub-tarefa e controlar as mudanças de fase Pipeline de Ciclo de Instrução Pipeline do ciclo de instrução: uma instrução pode ser (por exemplo) dividida em: Recuperação da instrução (RI) IF, Decodificação da instrução (DI) ID, Obtenção dos operandos (OO), Execução (EX) e Armazenamento do resultado (AR). Ex: Lavanderia Lavar e Secar: 4h. Logo, 4 cestas demorariam 16h Lavar: 2h e Secar: 2h. Quanto 4 cestas demorariam? 10h Instruções paralelizadas Qual o ganho de desempenho com pipeline? Diagramas Estágio x Tempo 16

17 Conceitos Básicos n: número de instruções p: número de estágios do pipeline; Tj (1 j p): demora em Ej; TL: demora de transição de estágio T: período de clock (ciclo de máquina) Tmax= max{ti} T = Tmax + TL; f: freqüência = 1/T; Medindo o ganho... Gp: ganho com p estágios Ganho = (Tempo sem pipeline)/(tempo com pipeline) Sem pipeline: t1 = n * p * T Com pipeline: tp = (p + n 1) * T Gp = n*p / (p+n -1) Se n >> p, Gp aproximadamente p Então, quanto maior p maior o ganho? Eficiência do Pipeline Produtividade (throughput) η: eficiência relação entre a área ocupadae a área total do diagrama Estágio x Tempo W: produtividade número de tarefas completadas por unidade de tempo Impedimentos Problemas no Pipeline Impedimentos para valores máximosem ganho, eficiência e produtividade: Estágios de diferentes tempos Falhas em caches Instruções de diferentes durações Dependências Recursos Desvios e interrupções nos programas Dados 17

18 O Problema do Desnível entre Fases e Instruções Problemas no Pipeline: Dependências Conflito de Recursos Dependência de Dados RAW: Read After Write WAR: Write After Read WAW: Write After Write Dependência de Controle Predição de Desvios, Desvios Retardados Conflito de Recursos Também conhecido por Hazard Estrutural ou ainda Dependência Funcional Resultado da competição de duas ou mais instruções pelo mesmo recurso ao mesmo tempo Soluções: uma das instruções deve esperar aumento dos recursos Controle do Uso de Recursos Quando uma dependência envolve apenas recursos da CPU (registradores ou unidades funcionais), costuma-se usar uma tabela de reserva dos recursos. Toda instrução antes de ser executada faz um cheque na tabelasobre os recursos que utilizará; se algum(uns) dele(s) estiver(em) marcado(s), ela é bloqueada, até eles sejam liberados. Após o uso, a instrução libera o recurso desmarcando a tabela de reserva Se a dependência envolver local de memóriapode-se utilizar um sistema de bloqueio desse local. Dependência de Dados Dependência WAR (Write After Read) A = B+ C B = C + D Causa Problemas? Falsa Dependência: sem problemas desde que não exista execução fora de ordem Dependência de Dados Dependência WAW (Write After Write) A = B+C A = D+E Causa Problemas? Falsa Dependência: sem problemas desde que não exista execução fora de ordem 18

19 Dependência de Dados Dependência RAW (Read After Write) I1: A = B+ C I2: E = A + D Causa Problemas? Sim. Instrução I2 só pode captar o valor de A após o término da instrução I1 Solução Simples Atrasar instrução I2. Quantos Clocks? Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém com uma divisão de fases diferente da tradicional: RI, DI, OO, EX, AR. Fases do pipeline MIPS: IF: Instruction Fetch carregamento de instrução ID/RF: Decodificação de registradores e carregamento de registradores EX: execução MEM: Acesso a memória para acessar dados (load e store) WB: Armazenamento do resultado Visão do pipeline MIPS com Unidades Funcionais IF ID/RF EX MEM WB Problemas no Pipeline: Dependências Dependência (Conflito) de Recursos Dependência de Dados RAW: Read After Write WAR: Write After Read WAW: Write After Write Dependência de Controle Predição de Desvios, Desvios Retardados Dependência de Dados - RAW Implementando o atraso do Pipeline através de Hardware Solução: atrasar o pipeline (via SW ou via HW) 19

20 Implementando o atraso do pipeline através de software Dependência RAW ao Carregar dados Dependência RAW no carregamento Atrasando o pipeline em carregamento de dados Quantos clocks são necessários? Obs.: O dado estará disponível ao final de MEM, não ao final de EX como nas Operações R-type Dependências RAW Redução de Penalidade em R-Type: Bypassing Esses problemas são comuns? Operações R-type: 3 bolhas (stalls) por dependência Logo, 3 unidades funcionais ociosas. Há como evitar a ocorrência da dependência? Há como diminuir a ociosidade? 20

21 Encaminhamento em Carregamentos Implementando o Bypassing Seria possível eliminar este atraso? Necessário mais multiplexadores para receber entrada dos dados Assume-se que durante ID/RF, as gravações são feitas antes das leituras Como controlar o Encaminhamento? Controle de Bypassing Com bypassing (novas opções): Saída da EX, Saída da DM (memória) e Saída da DM (EX) Perguntas: 1) Porque não saída de WB? 2) Porque buscar valor calculado em EX na Saída de DM? Instruction Level Paralelism (ILP) Pipelining cria uma barreira teórica de CPI(Clock por instrução) igual a 1,0. Além do Pipeline: Processadores Superescalares 21

22 Limites do Pipelining CPI real = CPI teórico + atrasos estruturais + atrasos por dependência de dados + atrasos por desvios CPI teórico em pipeline é aproximadamente 1 Logo CPI real >1. Como poderia ser alterada a cpu para obtermos CPI < 1? Idéias? Como avançar na exploração do paralelismo entre instruções Pipeline Super-pipeline Aprofundar o pipeline, fazendo com que as fases clássicas levem vários ciclos Superescalar Linhas de execução em paralelo Novas dependências VLIW Cada pacote, especifica várias instruções Em busca de CPI menor que 1 Superescalar: Instruções ordenadas por compilador ou por hardware (algoritmo de Tomasulo) PowerPC, Sun SPARC, Cell Be (Playstation...), x86, etc. Very Long Instruction Word (VLIW): Instruções organizadas em pacotes pelo compilador. Bastante utilizada em sistemas embutidos Chamado de EPIC pela Intel. Ex.: Itanium Avançando em ILP Mesmo em processadores RISC necessariamente há instruções com tempos de execução muito diferentes. Exemplos: soma de inteiros (add) e divisão de ponto flutuante (DIV.D) Qual o problema? Qual a Solução? Avançando em ILP Permitir mais de uma instrução entrar na fase de execução Emissão em ordem Tempos diferentes de execução Logo, possível conclusão fora de ordem Dependências WAW e WAR e Conclusão de Execução Fora de Ordem 22

23 Conclusão Fora de Ordem Exemplo: DIV.D F0,F2,F4 ADD.D F10,F0,F8 SUB.D F12,F8,F14 Problema:? SUB é atrasada(desdobrada) Solução: Executar SUB.D antes de ADD.D Problemas no Escalonamento Dinâmico Exemplo 2: I1: DIV.D F0,F2,F4 I2: ADD.D F6,F0,F8 I3: SUB.D F8,F10,F14 I4: MUL.D F6,F10,F8 Dependências? Executar na ordem: I1,I3,I2,I4 diminui atrasos. Problemas? Como resolver? Solução para Dependências Falsas Requisito: Permitir execução fora de ordem, sem mudar o resultado do programa Renomear registradores para evitar falsas dependências (WAW e WAR) Exemplo (WAW): MUL.D R1,R2,R3 ADD.D R2, R1,R3 SUB.D R1,R4,R5 Solução: MUL.D R1,R2,R3 ADD.D R2, R1,R3 SUB.D R5,R4,R5 (Substituir R1 por R5, isto é, outro registrador não utilizado (não lido) até seu próximo ponto de gravação) Requisitos para Solução Exemplo (WAR): MUL.D R1,R2,R3 ADD.D R6,R1,R2 SUB.D R3,R4,R5... ADD.D R9,R4,R3 Solução: MUL.D R1,R2,R3 ADD.D R6,R1,R2 SUB.D R8,R4,R5 (Substituir R3 por R8, isto é outro registrador não utilizado (não lido) até seu próximo ponto de gravação)... ADD.D R9,R4,R8 Requisitos para Solução Identificar instruções sem dependências e permitir que ultrapassem instruções com dependências Identificar e Bloquear instruções com dependências de dados ou dependências estruturais Manter o pipeline o mais eficiente possível Métodos de Solução Software Com grandes conjuntos de registradores, o compilador pode eliminar perigos WAR e WAW através de renomeação Eventualmente pode usar moves entre registradores Erros (ou omissão) no compilador podem levar a baixa eficiência do processador!!! Hardware Não tem como observar instruções à frente, mas consegue eliminar dependência em relação a registradores Scoreboard Algoritmo de Tomasulo 23

24 Tomasulo Informações de Controle Estações de Reserva Op: código da operação Qj,Qk : Estações de reserva que produzirão o operando Vj,Vk : O valor dos operandos de origem, apenas um valor entre V e Q é valido. Em instruções de carga, guarda o endereço A : Usado para guardar informações sobre cálculo de endereços Busy: Indica se a estação de reserva está sendo usada ou não Registradores Qi: O número da estação de reserva que irá gerar o resultado, se zero o valor do registrador é o valor correto Exemplo de aplicação com Tomasulo Instruções L.D F6,34(R2) L.D F2,45(R3) MUL.D F0,F2,F4 SUB.D F8,F2,F6 DIV.D F10,F0,F6 ADD.D F6,F8,F2 Exemplo Tomasulo Instante 1 Exemplo Tomasulo - Instante 2 24

25 Estados das Instruções Instante 2 - Tomasulo Fonte: Hennessy & Patterson, pg Erro no Livro: F0 (e não F2) será gravada por Mult1 Memória: O Gargalo de Von Neuman Memória principal: considerada como sendo o gargaloda arquitetura de Von Neumann: O ciclo da memória principal costuma ser 4 a 20 vezes maiorque o ciclo de máquina. Sistemas de Memória Se o processador não recebe instruções tão rapidamente quanto ele pode processar, o que ele faz? Como tornar a memória tão rápida quanto a CPU? Sistema de Memória Porque toda a memória de um computador não pode ser feita da mesma tecnologia da CPU? Seu custo seria elevadíssimo, pois o volume de informações é muito grande. A tecnologia da CPU tipicamente produz memórias voláteis. Sistema de Memória Muitas informações devem permanecer, mesmo após a máquina ser desligada. Memória não-volátil Volatilidade versus Desempenho Memórias voláteis tender a ser sempre mais rápidas que memórias nãovoláteis Importante: Grande parte das informações não é utilizada considerando pequenos intervalos de tempo. 25

26 Princípio da Localidade Os programas tendem a reutilizar dados e instruções que usaram recentemente. Regra prática : um programa passa 90% de seu tempo de execução em 10% de seu código. Também aplica-se a dados mas não tão fortemente quanto em instruções. Hierarquia de Memória Dois Tipos de localidade: Localidade espacial Localidade Temporal Como tirar vantagem dessa característica para obter mais desempenho? Perguntas Os níveis mais altos devem ser sempre mais rápidos e os mais baixos maiores. Por quê? Em que situação é vantajoso introduzir novos níveis na hierarquia? Ao colocar informações nos níveis mais altos, deve-se apagar dos níveis mais baixos? Níveis de Memória Visíveis Registradores Memória de trabalho da CPU para armazenamento temporário de instruções e dados; registradores de propósitos gerais, vários registradores de propósitos específicos (AR, PC, IR, SP, Flags, etc.); Memória Principal Em comparação com os registradores da CPU, sua tecnologia costuma ser inferiore sua capacidade de armazenamento é bem maior Deve ser suficientemente grande para armazenar os programas em execução e seus respectivos dados Até 70 vezes mais lenta que os registradores Memória Secundária Não volátil Memória de overflow Grande desnível em relação a memória principal Memória Cache Armazena cópia das regiões da memória principal mais freqüentemente usadas pela CPU, num curto intervalo de tempo; Diferente das outras memórias caches são transparentes aos programadores (mesmo em assembly); Computadores com vários níveis hierárquicos de cache são comuns atualmente, tipicamente os níveis mais altos ficam no mesmo circuito integrado da CPU; Memória Cache 2 Em multiprocessadores, Várias processadores demandam informações de uma memória, logo a cache também é fundamental há complexidade adicional para controlar o acesso a cache de modo coerente Muitas vezes é dividida em Cache de dados e cache de instruções Cache de Instruções A próxima instrução a ser executada é retirada do cache de instruções; não estando ali presente, nova seqüência é carregada no CI: Caso o CI contenha aninhamentos inteiros de laços com grande número de repetições, serão evitados inúmeros acessos à memória 26

27 Funcionamento da Hierarquia de Memória O que trafega entre os níveis? Perguntas Porque os blocos de transferência mais baixos são iguais ou maiores? Funcionamento da Memória Cache Pode ocorrer que um dado esteja em nível superior, mas não no nível logo inferior? Como? Quatro perguntas sobre Organização da Cache P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco)? P2: Como um bloco é encontrado se está no nível superior da hierarquia (cache)? P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco)? P4: O que acontece em uma gravação (estratégia de gravação)? Conceitos Úteis A cache é divida em blocos com um número fixo de palavras de memória (nível mais alto) O endereço de memória é então divido em duas partes: O endereço do bloco (às vezes, chamado de título, ou tag) A posição da palavra dentro do bloco (offset) Bits de offset = log 2 (Tamanho do Bloco) Endereço do Bloco = Endereço bits de offset 27

28 Posicionamento do Bloco Abordagens: Cache de Mapeamento Direto Cada bloco da memória só pode ser colocado em uma posição da memória Ex. (Endereço do Bloco) mod (Número de blocos na cache) Cache Completamente Associativo Cada bloco pode ser alocado em qualquer posição da cache Posição definida pela estratégia de substituição Posicionamento do Bloco Abordagens (Continuação) Cache Associativo de Conjunto Um bloco da memória pode ser deslocado para um único determinado conjunto ( o qual conta com um certo número de blocos), dentro do qual o bloco pode ser colocado em qualquer posição Ex.: Conjunto Escolhido = (Endereço do Bloco) mod (Número de conjuntos na cache) Abordagens de Posicionamento Vantagens e Desvantagens das Abordagens Mapeamento Direto Vantagens: Simplicidade Desvantagens: Possível Ineficiência com inflexibilidade Completamente Associativo Vantagens: Total flexibilidade Desvantagens: Complexidade e custo de implementação Associativo de Conjunto Vantagens e Desvantagens: Meio termo entre as anteriores Quatro perguntas sobre Organização da Cache Organização da Cache P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco)? P2: Como um bloco é encontrado se está no nível superior da hierarquia (cache)? P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco)? P4: O que acontece em uma gravação (estratégia de gravação)? 28

29 Acessando a cache Exemplo: Endereço título 0117 Sucesso DR 12 Endereço título 0116 Falta Procura na memória principal P2: Como um bloco é encontrado na cache? O Tag marca o endereço de memória ao qual corresponde o bloco de cache e também se utiliza um bit para marcar a validade ou não do bloco (bit de validade) Tags sempre são pesquisadas em paralelo P3: Substituição do Bloco Que bloco pode ser substituído ao ocorrer uma falha? Mapeamento direto: Não há decisão a ser feita, pois cada bloco é direcionado para um bloco de cache Mapeamento Completamente associativo ou de conjunto: várias opções Aleatória: Escolhe-se aleatoriamente um bloco para a substituição Menos recentemente usado(least Recently Used): Registra-se os acessos aos blocos e se retira do cache o menos usado recentemente. Baseia-se no passado para prever o futuro Implementação do LRU Implementação com Contador Guardar para cada bloco, em um campo contador o número do último acesso (em clocks) Substitui-se o bloco com menor clock Implementação com Pilha Manter em uma pilha os números de cada bloco Ao ser realizada acesso a um bloco X, este passaria ao topo da pilha Substitui-se o bloco cujo número está na base da pilha Implementação Aproximada de LRU Exige bastante do hardware Criar um campo de referência com n bits Em cada acesso setar para 1 Deslocar Primeiro a entrar, Primeiro a sair( First In First out, FIFO), Esta opção se aproxima ao substituir o mais antigo, no lugar do menos recentemente usado P4: Estratégia de Gravação As leituras dominam as operações de memória, mas também existem escritas. Segundo algumas estimativas, aproximadamente 10% Estratégias de Solução: Write-Through: As informações são gravadas no cache e na memória inferior Write-Back: As informações são gravadas apenas no cache. A gravação na memória ocorrerá apenas quando houver substituição do bloco. 29

30 Estratégias de Gravação Write-Back Vantagens Usa menos largura de Banda da Memória (Multiprocessadores) Poupa Energia por usar menos HW Desvantagens Precisa controlar atualização da Memória Falha de leitura pode causar gravação Memória fica inconsistente com a cache (multiprocessadores) Estratégias de Gravação Write-Through Vantagens Mais fácil de Implementar Falha de leitura não causa gravação Nível Inferior sempre coerente (multiprocessadores) Desvantagem Gravações sempre demoram o tempo do nível inferior, mesmo em caso de acerto Buffer de Gravação Buffer de Gravação 2 Write-Through Buffer de Gravação para evitar atrasar a CPU FIFO (First In, First Out) Tipicamente em torno de 4 entradas Problema: Frequência de Instruções de Gravação maior que frequência da DRAM (Saturação do Buffer) Problema: Freqüência de Instruções de Gravação maior que capacidade de atendimento da DRAM (Saturação do Buffer) Solução: Aumentar o desempenho das gravações através da introdução de outro nível de cache Falha de Gravação Ao tentar gravar um dado que não está na cache há duas opções: Write Allocate (Gravação com Alocação) : Traz o bloco que contém o endereço para a cache Write Not Allocate (Gravação sem Alocação): O dado fica apenas na memória principal Definições Ciclo de Memória: tempo para devolver a CPU uma palavra Palavra de Memória: conjunto de bytes que pode ser entregue a CPU a cada requisição. Taxa de Transferência: número de bytes por unidade de tempo entregues pela memória. Exemplo: palavra de 32 bits ou 4 bytes ciclo de memória = 50 ns; taxa de transferência: 640 Mbits/s ou 80 MB/s. 30

31 Como melhorar o desempenho da Memória? Reduzir o ciclo de memória usando memória cache Melhorar taxa de acerto Aumentar o tamanho da palavra Acessar várias palavras em paralelo (usando memória entrelaçada). Desempenho da Memória Nem todo acesso à memória é atendido pela cache; Quando é atendido Sucesso na cache Quando não Falha na cache Grandeza Fundamental para o desempenho do sistema de Memória com Cache: Taxa de sucesso (ou taxa de acerto) Desempenho da Memória O tempo efetivo de um sistema com cache é um valor intermediário entre os tempos da cache e da memória principal. Tef = h * Tc + (1 h) * Tm (0 h 1) Taxa de sucesso h: probabilidade de sucesso na cache Taxa de falha (1-h): probabilidade de falha na cache Desempenho da Memória Taxa de Erro e Penalidade T ef = Tc + (Tx. Erro)* Penalidade Tx. Erro = (1-h) Penalidade = Tm-Tc Qual o tempo efetivo considerando dois níveis de caches? Tef = h * Tc + (1 h) * [ h 2 * Tc 2 + (1-h 2 )*Tm] Como se mede a taxa de acerto h 2? Taxa de Acerto na Cache É comum a obtenção de valores altos para h; desse modo, o ciclo efetivo fica sensível a pequenas mudanças de h: Caso Tc = Tm / 10 e h caia de 0.99 para 0.98 (1%) então Tef sobe 8.3% (quase 10%). Caso Tc = Tm / 10 e h caia de 0.99 para 0.89 (~10%) então Tef sobe 82.5% (quase dobra). Caso Tc = Tm / 20 e h caia de 0.99 para 0.89 então Tef é multiplicado por 2.5. Desempenho de Memória Pequenasmelhorias em h podem resultar em substancial aumento de desempenho no sistema de memória. Fatores que variam a razão de sucesso h Número de palavras dos blocos e número de blocos; Critério de escolha do bloco que dará lugar a um novo bloco vindo da memória principal, na ocorrência de uma falta (Política de substituição de blocos). 31

32 Exercício Considere um computador com CPI(Clock por Instrução) = 1,0 Penalidade por erro = 25 ciclos Taxa de erros = 2% Acessos a memória representam 50% do total de instruções em média. Quão mais rápido seria este computador se não houvesse erro de cache? Resposta Computador sem Erros: Tempo de Execução Ideal = IC *1,0* Tempo de Clock Computador Real Tempo de Execução Real= Tempo de Execução ideal + Tempo de Parada Tempo de Parada = IC * Acesso a memória/instrução * Taxa de Erros * Penalidade de Erro * Tempo de clock Resposta Tempo de Parada: TP= IC*(1+0,5)*0,02*25 = IC *0,75 (1+0,5) 1 para acesso de instrução e 0,5 para acesso de dados da instrução Tempo de Execução Real Tempo de Parada : IC*0,75 * tempo de clock Tempo de Execução = 1,75*IC * tempo de clock Medidas de Taxa de Erro de Cache Erro/Instrução Ex.:3 falhas/1000 instruções Taxa de Erro /acesso a memória Ex.: 2% dos acessos causam falha de cache Erro/Instrução = (Taxa de Erro * Acessos a Memória)/IC = Taxa de Erro * (Acesso)/Instrução Ganho = 1,75 *IC*TClock / 1,0*IC*TClock = 1,75 No Exemplo, anterior Erro/Instrução = Taxa de Erros *Acessos/Instrução Erro/Instrução = 0,02* (1+0,5) = 0,03 Recalculando o Tempo de Parada para o exemplo, obtemos o mesmo resultado Tempo de Parada = IC * Erro/Instrução * Penalidade de Erro TP = IC * 0,03 * 25 = IC * 0,75 Tecnologias de Construção de Memórias 32

33 Tecnologias de Construção de Memórias ROM (ReadOnlyMemory): Memória não volátil, gravada apenas uma vez no momento o processador não consegue modificá-las. Algumas podem ser apagadas eletricamente (EEPROM ). SRAM: Prioriza velocidade e capacidade Os dados não precisam ser gravados periodicamente Linhas de endereço não multiplexadas. 8 a 16 vezes mais cara que DRAM DRAM: Prioriza custo por bit e capacidade Os dados precisam ser gravados novamente após uma leitura Periodicamente precisam ser gravados (atualizados) novamente mesmo sem leitura Linhas de endereço multiplexadas. Tecnologias de Construção de Memórias DRAM: DRAMs tradicionalmente tinham uma interface assíncrona com seu controlador e com isso um overhead de sincronização. Introduziu-se um sinal de clock para os chips DRAM tornando-os síncronos. Batizou-se isto de DRAM síncrona (SDRAM). DDR SDRAM: Inovação onde se transfere dados da memória na borda crescente e decrescente do sinal de clock da SDRAM, com isso duplicando a taxa. Double Data Rate(DDR) DDR2 e DDR3: Evolução da tecnologia DDR com aumento de clock e redução de voltagem nos chips DIMM (Dual Inline Memory module):memórias, em geral, são vendidas em pequenas placas DIMM de 4 a 16 chips DRAMs e geralmente organizadas de modo a fornecerem palavras de 8 bytes. Organização de uma DRAM Matriz de vários bits Exemplo de organização de um chip de 256KB Funcionamento da DRAM Multiplexação do Endereço RAS (Row Access Strobe) CAS (Column Access Strobe) Acesso ao Dado Atualização Periódica de Dados Bits de uma linha podem ser atualizados simultaneamente Atualização é determinada pelo DRAM Controller e tipicamente demora um tempo de acesso a um dado por linha 33

34 Modos de Operação Modo Regular Cada acesso é definido por: RAS(Row Access Strobe) CAS (Column Access Strobe) Carregamento do Dado Modo Rápido Dados na mesma linha são acessados apenas mudando o CAS Desempenho da DRAM Tempo de Acesso não uniforme devido a: Localização Atualização dos Dados Tipicamente o tempo é dividido em: RAS precharge (trp) : seleção de linha RAS-to-CAS delay (trcd) : seleção de coluna CAS latency (CL) : leitura/gravação do dado Cycle Time (tras): tempo completo médio Tais valores podem ser determinados através de aplicativos específicos: RAS precharge (trp) RAS-to-CAS delay (trcd) CAS latency (CL) Cycle Time (tras) Memória vem em Módulos Para facilitar o manuseio e também explorar o entrelaçamento de memória, utiliza-se módulos de memória DIMM (Dual inline memory module) 4 a 16 chips de memória Tipicamente largura de 8 bytes (64 bits) SDRAM : 168 pinos, DDR (184 pinos), DDR2 (240 pinos), DDR3 (240) Todos incompatíveis e trocas podem causar danos ao hardware (figura 168 pinos) Dados de Módulos de DRAM Standard name I/O Bus clock Data transfers per second Module name Peak transfer rate 266M/s*8B/tranfser=2128MB/s DDR MHz 266 Million PC MB/s 300M/s*8B=2400MB/s DDR MHz 300 Million PC MB/s DDR MHz 333 Million PC MB/s DDR MHz 400 Million PC MB/s DDR MHz 533 Million PC MB/s DDR MHz 667 Million PC MB/s Desempenho da Memória Principal Opções: Aumentar largura do dados Barramento mais largo Intercalar memória Melhor tempo de acesso tecnologia de construção: clock, latência,etc. DDR (Double Data Rate), DDR2, etc. DDR MHz 800 Million PC MB/s DDR MHz 1066 Million PC MB/s DDR MHz 1333 Million PC MB/s DDR MHz 1600 Million PC MB/s 34

35 Melhorando o Desempenho da Memória Principal Memória Entrelaçada Memória entrelaçada permite acesso simultâneoa tantas palavras quantos forem os seus módulos independentes. Com um número suficiente de módulos, é possível haver, num dado momento, várias instruções e vários operandosem fase de recuperação e vários resultados em fase de armazenamento. É claro que, para ganho máximo, num dado momento, cada acesso à memória deve acessar módulos distintos. Maior Largura do Barramento X Memória Intercalada - Exemplo Considere o seguinte sistema: Envio de Endereço: 4 clocks da CPU Acesso a palavra na Memória: 56 clocks Envio de uma palavra pelo barramento: 4 clocks Para Bloco = 1 palavra (64 bits) Tx. De Erro: 3% Penalidade : 64 clocks ( ) Média de Ciclos por Instrução(s/erro de cache): 2 Acesso a Memória/Instrução: 1,2 Para bloco =2 palavras Tx. De Erro: 2% Para bloco = 4 palavras Tx. De Erro: 1,2% Exemplo (Cont.) Qual a melhoria do sistema em relação ao original com barramento simples ao utilizar : intercalação de 2 ou 4 bancos sistema com barramento duplicado Em blocos de 1,2 e 4 palavras Solução: TempoExecução+Penalidade*Tx.Erro CPI para sistema de memória de 1 palavra 2+3% *( 1,2*64) = 4,3 Exemplo (Cont.) Bloco de duas palavras (128 bits) barramento de 64 bits, sem intercalação: 2+2%*(1,2*2*64) =5,07 barramento de 64 bits, com intercalação (2 bancos): 2+2%*1,2* (4+56+8) =3,63 Barramento de 128 bits, sem intercalação: 2+2%*1,2*64 = 3,54 Efeitos da duplicação do bloco Diminuição do desempenho no sistema de barramento de 64 bits, sem intercalação De 4,3 para 5,07 Intercalação de Memória mais rápida em 1,19 vezes Speedup = 1,19 = (4,3/3,63) Duplicação do Barramento mais rápido em 1,22 vezes Speedup = 1,22 = (4,3/3,63) 35

36 Efeito da quadruplicação do bloco (Cont. ) Bloco de 4 palavras (256 bits) barramento de 64 bits, sem intercalação: 2+1,2%*(1,2*4*64) =5,69 barramento de 64 bits, com intercalação (4 bancos): 2+1,2%*1,2* ( ) =3,09 Barramento de 128 bits, sem intercalação: 2+1,2%*1,2*2*64 = 3,84 Efeito da quadruplicação do bloco Diminuição do desempenho no sistema de barramento de 64 bits, sem intercalação : De 4,3 para 5,69 A duplicação do Barramento é mais rápida apenas 1,12 vezes (4,30/3,84) Intercalação de Memória agora é a mais rápida 1,39 vezes (4,30/3,09) O custo de quadruplicar o barramento de memória pode se tornar proibitivo e não traria desempenho muito melhor Barramento de 256 bits, sem intercalação: 2+1,2%*1,2*64 = 2,92 (Ganho de 1,06 em relação a intercalação) Memória Virtual Memória Virtual Perguntas Atualmente, memória principal é barata então podese manter a memória física do mesmo tamanho da memória virtual. Nessa situação, porque utilizar sistema de memória virtual? Simplicidade na Recolocação Simplifica a Proteção de Memória O papel da Memória Virtual Generalidade Habilidade de executar programas maiores que a memória física Gerenciamento mais eficiente Alocação/Desalocação de blocos de tamanhos variáveis é onerosa e leva a fragmentação Proteção Regiões do espaço de endereço podem ser declaradas como: somente leitura, código executável, Flexibilidade partes de um programa podem ser colocadas em qualquer lugar na memória, sem relocação Eficência no Armazenamento Mantem na memória apenas as partes mais importantes do programa I/O Concorrente Executa outros processos, enquanto está carregando/descarregando uma página Expansiblilidade Possibilita deixar espaço no espaço virtual de endereços para que objetos/programas possam crescer Desempenho Facilita o tratamento de multiprogramming e das linguagens de alto nível 36

37 Memória Virtual Endereços Virtuais V= {0,1,2,3,...n-1} Endereços Físicos P = {0,1,2,3,...m-1}. Onde m < n Para cada endereço a em V pode existir um endereço em P (a ), caso contrário falha de página(acesso ao disco) Dois endereços Virtuais podem apontar para o mesmo endereço físico Memória Virtual e Cache A tradução de endereço virtual deve ser feita antes ou depois da cache? Antes: Perda de desempenho por ter que fazer um acesso adicional Depois: Cache trabalharia com endereços virtuais e memória com endereços reais. Problema? Cache com Endereços Virtuais Dois endereços virtuais podem mapear o mesmo endereço físico! Logo, duas entradas de cache podem conter os mesmos dados. Perda de espaço útil na cache e Problema na Atualização Acontece quando dois programas (endereços virtuais distintos) compartilham um mesmo objeto de dados. Freqüente? Cache com Endereços Reais Problema de Desempenho! Colocar a Tabela de tradução em SRAM Qual o Tamanho da Tabela de Tradução? Endereço Virtual: 32 bits Endereço Real: 32 bits Bloco: 4KB Memória virtual: 4GB Tamanho da Tabela de Páginas > 5 MB Solução: Cache da tabela de páginas! Hierarquia de Memória com MV O funcionamento da MV 37

38 Quatro perguntas sobre Funcionamento da Memória Virtual (...Cache) P1: Onde um bloco pode ser inserido no nível superior (posicionamento do bloco)? P2: Como um bloco é encontrado se está no nível superior da hierarquia? P3: Que bloco deve ser substituído ao ocorrer uma falha (substituição do bloco)? P4: O que acontece em uma gravação (estratégia de gravação)? Translation Look-aside Buffer (TLB) TLBs são caches, tipicamente são completamente associativas para melhorar a taxa de sucesso Entre o disco e a memória principal, o esquema de atualização é sempre write-back! Associa-se ao sistema de memória Virtual, proteção de acesso (leitura, escrita, código, etc.) Paulo André. Castro Fragmentação e Realocação Selecionando o Tamanho de Página Razões para páginas maiores O tamanho da Tabela de Páginas é inversamente proporcional ao tamanho da página, logo economiza-se memória. Transferir páginas maiores para ou do armazenamento secundário é eficiente Páginas maiores mapeiam mais memória logo tendem a reduzir as falhas no TLB Razões para páginas menores Não desperdiçar espaço, os dados devem ser contínuos dentro de uma página Processos pequenos tendem a ser mais rápidos? Soluções Híbridas: múltiplos tamanhos de páginas Alpha: 8KB, 64KB, 512 KB, 4 MB pages Segmentação: Página de tamanho variável 38

39 Resumo Memória Virtual: introduzida inicialmente para permitir a execução de programas que precisavam de muita memória Hoje: MV é importante para proteção de memória e permite que os programas usem endereços falsos. TLB são cache para a tabela de página e são importantes para obter desempenho para a máquina Caches tipicamente trabalham com endereços físicos Arquitetura Paralelas: Multicomputadores e Multiprocessadores Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador (SIMD) Single Instruction Stream, Multiple Data Stream: arquiteturas vetoriais (MISD) Multiple Instruction Stream, Single Data Stream: sem implementação comercial (MIMD) Multiple Instruction Stream, Multiple Data Stream: arquiteturas multiprocessadas, comumente os processadores são microprocessadores comerciais Múltiplos Processadores Opção 1: Compartilham cache, memória e sistema de I/O Opção 2: Compartilham memória e sistema de I/O Opção 3: Compartilham sistema de I/O Opção 4: Não compartilham nada, apenas se comunicam através de redes Todas as opções são viáveis/interessantes? Lembrem-se da importância de evitar gargalos... de Memória Compartilhada (SMP) Memória Centralizada Baixo número de processadores A memória e seu barramento podem se tornar um gargalo para o sistema uso de grandes caches e vários barramentos Organização mais popular atualmente 39

40 Organização Multiprocessador com Memória Distribuída Organização Multiprocessador com Memória Distribuída Tipicamente maior número de processadores Distribuição de memória traz vantagens Maior largura de banda percebidas (desde que acessos sejam principalmente locais Menor latência Tipicamente também se distribui o sistema E/S, assim cada nó pode ser um pequeno sistema distribuído de memória centralizada Arquitetura de Memória e Modelos de Comunicação Mensagens X Memória Compartilhada Multiprocessadores simétricos (SMP) ou Uniform Memory Access(UMA) Os processadores compartilham uma memória única e tem tempos de acesso uniforme Memória compartilhada Distribuída(DSM) ou Non-Uniform Access Memory (NUMA) Os processadores compartilham o mesmo espaço de endereços, não necessariamente a mesma memória física Multicomputadores processadores com memórias e espaço de endereços independentes que se comunicam através de algum tipo de rede de interconexão Podem ser computadores completos ligados em rede (clusters) Passagem de Mensagens Hardware mais simples Comunicação Explícita, o programador controla quando ocorre ao contrário do DSM Sincronização associada ao envio de mensagens Facilita a comunicação iniciada pelo transmissor o que pode trazer vantagens em desempenho Mecanismos de Comunicação 2 Adoção no Mercado Memória Compartilhada Distribuída (DSM) Facilidade de programação Overhead de comunicação mais baixo para itens pequenos, pela implementação em hardware e não através de E/S Uso de cache pode reduzir a latência e liberar largura de banda para os demais processadores, mas introduz problemas de sincronização SMP: maior dimensão de mercado (cifras e unidades) multiprocessadores em chip DSM (>8 processadores) Multicomputadores (mensagens) popularização de clusters para sistemas na Internet MPP (Massively Parallel Processors) > 100 processadores Abordagens híbridas: mensagens e DSM 40

41 Arquitetura de Memória Compartilhada Simétrica (SMP) Grandes e eficientes sistemas de cache podem reduzir bastante a necessidade de largura de banda da memória Organização Multiprocessador de Memória Compartilhada Multiprocessadores simétricos são bastante econômicos a medida que necessitam de pouco hardware adicional e usam processadores comuns Em SMP, caches não apenas fornecem localidade como também replicação...isto não traz problemas??? Problemas em SMP? Se P1 altera a posição de memória X (na sua cache) e P2 lê a posição de memória X o que ocorre? Isto é coerente? O que é coerência de caches? Um sistema é coerente se ele retorna o último valor gravado em um item de dados Coerência e Consistência do Sistema de Memória Coerência: garantir a utilização do dado mais atual Consistência: sincronizar a leitura/gravação entre processadores Consistência : P1: P2 A=0; B=0; A=1; B=1; if(b==0)... if(a==0)... Inicialmente, A e B em cache com valor igual a zero, qual dos dois if é seguido ou os dois? Muitas vezes precisa ser tratado pelo próprio programador Coerência Um sistema de memória é coerente se: 1. Uma leitura por um processador P em uma posição X seguido de um gravação por P em X, sem a ocorrência de gravações em X por outro processador neste intervalo, sempre retorna o valor gravado por P. 2. Uma leitura por P1 na posição X após uma gravação por P2 em X retorna o valor gravado se a leitura e a gravação estiverem separadas no tempo e não ocorrer nenhuma outra gravação em X entre os dois acessos. 3. Gravações na mesma posição são serializadas; isto é, duas gravações na mesma posição por dois processadores quaisquer são vistas na mesma ordem por todos os processadores. Por exemplo, se os valores 1 e depois 2 são gravados em X, nenhum processador pode ler 2 e depois 1 Caches Coerentes Manutenção em Hardware da coerência de caches através de protocolos de coerência de Cache Abordagem baseada em Snooping Invalidação de gravação Atualização ou Difusão Abordagem baseada em Diretório Usadas em Arquitetura de memória distribuída compartilhada 41

42 Protocolos de Snooping Protocolos de Snooping com Invalidação Cada cache tem um cópia dos dados de um bloco de memória e também uma cópia do status de compartilhamento do bloco(compartilhado/ não compartilhado) Como as caches compartilham o barramento de memória elas espionam (snoop) o tráfego para verificar se tem cópias do bloco trafegado Snooping com Invalidação Gravação em bloco compartilhado invalida as demais cópias do bloco em cache. Ao tentar acessar um bloco inválido, há uma falha de cache, e o dado vem do bloco de cache dirty e também para a memória (caso write-back) Gravações em blocos não compartilhados não geram problemas. Porque? O que aconteceria com sistemas write-through? Protocolos de Snooping Snooping com Atualização ou Difusão Diferença apenas no tratamento da gravação, o armazenamento de cache é o mesmo. Isto é, bloco e status do bloco Gravação em bloco compartilhado atualiza as demais cópias do bloco em cache e também a memória Exemplo Sistemas de Entrada e Saída Os cinco componentes clássicos de um Computador Sistemas de Entrada e Saída (I/O) Medidas de Desempenho Throughput e Tempo de Resposta(Latência) Discos Magnéticos Acesso a E/S Instruções X Mapeamento de Memória Status: pooling x Interrupting Delegando Responsabilidade: DMA & IOP(I/O Processor) Interação com Sistema Operacional Compartilhamento de Recursos: Scheduling e Proteção Provisão de Drivers de dispostivo 42

43 O que importa em Projeto de I/O? Desempenho Expansibilidade Disponibilidade Capacidade de recuperação em caso de falha Desempenho de Sistema de E/S O desempenho de sistemas de E/S depende de vários aspectos: Barramentos I/O Controllers Dispostivos de I/O O software de I/O (OS e device drivers) Velocidade Uso eficiente dos dispositvos O papel do I/O Exemplo de Arquitetura de um Computador Atual Barramentos no Pentium 4 Exemplo de Dispositivos de IO e Tx. De Transferência 43

44 Discos Magnéticos Propósito: Armazenamento não-volátil Grande, barato e lento Nível mais baixo na hierarquia de memórias Dois grandes Tipos: Floppy disk Hard disk Ambos os tipos: Baseiam-se em um disco rotativo coberto com uma superfície magnética Usam uma cabeça(head) de leitura/escrita para acessar as informações Vantagens dos Discos rígidos (HD) sobre Floppy disks: Como os disco são rígidos(metal ou vidro) podem ser maiores Maior densidade porque podem ser controlados com mais precisão Maior taxa de transferência porque podem rodar mais rápido Podem ter mais de um disco (platter) Organização de um Disco Números Típicos Números Típicos (dependem do tamanho do disco) a trilhas(tracks) por superfície 100 a 500 setores(sectors) por trilha Setor: menor unidade que pode ser lida Geralmente todas as trilhas tem o mesmo número de setores Logo: setores tem tamanhos físicos distintos Disco Magnético Cilindros: Todas as trilhas sobre a cabeça de leitura/ escrita das superfícies. Processo de Leitura/Escrita 1. Posicionar o braço na trilha correta (seek time) 2. Roda o disco até que o setor esteja sobre a cabeça de leitura (rotational latency) 3. Ler ou gravar (transferir) um bloco de dados (transfer time) Desempenho de Discos Magnéticos Seek Time: na faixa de 5 a 12 ms Soma de todos os tempos de buscas/número de Buscas Devido à localidade o seek time real pode ser apenas 25% a 30% do tempo divulgado pelos fabricantes. Latência Rotacional Rotational Latency: Período de rotação do disco: 3,600 a 10,000 RPMs (16ms a 0,4ms por rotação) Latência média: Tempo para percorrer metade do disco (8ms a 0,2 ms) Latência Rotacional=0,5 * Periodo de rotação = 0,5/X RPM = 0,5/ (X*60*RPS) 44

45 Desempenho de Discos Magnéticos Tempo de Acesso ao Disco Tempo de Transferência: fatores relevantes Tamanho da transferência(1 setor): 1KB/setor Taxa de Transferência: 3 a 65MB/s Velocidade de Rotação: 3600 a RPM Densidade de bits: bits/polegada Diâmetro do disco: 1,0 a 3,5 polegadas Valores típicos de Transfer Time: 0,01 a 0,03ms/setor Disk Access Time = Queuing Delay + Controller Time + Seek time + Rotational Latency + Transfer time Exercício: Calcule o tempo de acesso ao Disco. Solução Memória Flash Não-volátil e baseado em transistores como EEPROM, porém maior capacidade de memória por chip Baixo consumo de energia e resistência a vibrações quando comparado com discos Baseia-se em transitores MOSFET (floating-gate transistor) Memória Flash - 2 Basicamente dois tipos Flash: NOR Flash e NAND Flash NOR Flash Tempo de acesso de leitura é comparável a DRAM (bem mais rápido que discos) Livres de falhas. Tipicamente usada como NVRAM NAND Flash A taxa de transferência é comparável a dos discos Usada em USB flash drives, memory card, solid state disks. Capaz de lidar com falhas de memória. Tempo de gravação bem maior que o de leitura (possivelmente maior que discos rígidos) Primeiro apaga-se um bloco de memória e depois grava-se 45

46 Uma célula de uma memória Flash Memória Flash Qual o Tempo de leitura e gravação de um bloco de 64KB em memória Flash e disco magnético? (Dados de 2001) Memória Flash: 65ns/leitura de 1 byte 1,5Microsegundos/gravação de 1byte e 5ms para apagar 4KB Disco: Overhead de controlador: 1ms 3600RPM 12ms de seek time anunciado(real igual a 1/3) Memória Flash Dados de Flash Memories Flash Leitura: 64KB*65ns/Byte= 4,3ms Gravação: 64KB/(4KB/5ms) + 64KB*1500ns/B = 178,3ms Disco Leitura/Gravação 12ms/3 + 0,5/3600RPM + 64KB/4,2MB/s +0,1ms = 27,3ms O padrão compact Flash simula discos ATA, por isso simula interface de discos, seek commands, trilhas lógicas, etc. cu.in =Cubic inch Memória Flash Pooling x Interrupting O custo por GB tem caído por volta de 50% ao ano. Em 2006, o custo/gb é aproximadamente igual a DRAM e 50 vezes maior que disco rígido mesma taxa de transferência de discos e latência de 10 a 100 vezes menor... Em 2008, o custo/gb era de 4 a 8$, ou 4 a 20 vezes mais caros que o custo/gb do disco e 5 a 10 vezes mais baixo que DRAM porém há desgaste da memória, normalmente limitado a 1M de gravações Eliminou o discos flexíveis... Tornou-se padrão em Sistemas Embutidos Eliminará os discos rígidos? Já há laptops baseados unicamente em flash... 46

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual

Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual Tecnologias de Construção de Memórias e Memórias RAM, entrelaçada e Virtual Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tempos de Acesso

Leia mais

Caminho dos Dados e Atrasos

Caminho dos Dados e Atrasos Caminho dos Dados e Atrasos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém

Leia mais

Predição de Desvios e Processadores Superescalares Especulativos

Predição de Desvios e Processadores Superescalares Especulativos Predição de Desvios e Processadores Superescalares Especulativos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Tomasulo Especulativo Se os

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba Questão 01 Assumindo um registrador de 10 bits e utilizando-se de representação binária, com valores negativos representados em código de 2, os valores em representação decimal 235, -189 possuem, respectivamente,

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO DO SEMI-ÁRIDO DEPARTAMENTO DEPARTAMENTO DE DE CIÊNCIAS CIÊNCIAS EXATAS EXATAS E E NATURAIS NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura

Leia mais

Paralelismo a Nível de Instrução

Paralelismo a Nível de Instrução Paralelismo a Nível de Instrução É possível obter maior desempenho computacional com: tecnologias mais avançadas, tais como circuitos mais rápidos; melhor organização da CPU, tais como o uso de múltiplos

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

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

Processadores Superescalares - Avançando na exploração de paralelismo entre instruções Processadores Superescalares - Avançando na exploração de paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Instruction

Leia mais

armazenamento (escrita ou gravação (write)) recuperação (leitura (read))

armazenamento (escrita ou gravação (write)) recuperação (leitura (read)) Memória Em um sistema de computação temos a UCP se comunicando com a memória e os dispositivos de E/S. Podemos fazer um paralelo do acesso à memória com um carteiro entregando cartas ou um acesso à biblioteca.

Leia mais

Medidas de Desempenho e a Lei de Amdahl

Medidas de Desempenho e a Lei de Amdahl Medidas de Desempenho e a Lei de Amdahl Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Evolução dos processadores Como medir desempenho? Como

Leia mais

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

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) O programa usa endereços virtuais É necessário HW para traduzir cada endereço virtual em endereço físico MMU: Memory Management Unit Normalmente

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Introdução à Engenharia de Computação

Introdução à Engenharia de Computação Introdução à Engenharia de Computação Tópico: Organização Básica de um Computador Digital Introdução à Engenharia de Computação 2 Componentes de um Computador Computador Eletrônico Digital É um sistema

Leia mais

Explorando o paralelismo entre instruções

Explorando o paralelismo entre instruções Explorando o paralelismo entre instruções Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline Pipeline: Uma idéia natural Linhas de montagem

Leia mais

Arquitetura de Computadores Moderna

Arquitetura de Computadores Moderna Arquitetura de Computadores Moderna Eduardo Barrére (eduardo.barrere@ice.ufjf.br) DCC/UFJF Baseado no material do prof. Marcelo Lobosco Agenda Visão Geral Objetivos do Curso Ementa Bibliografia Avaliações

Leia mais

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

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

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Organização do MIPS: pipeline Visão geral do pipeline Analogia com uma Lavanderia doméstica 1

Leia mais

Gerenciamento de memória

Gerenciamento de memória Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.

Leia mais

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Memórias O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Essas informações são guardadas eletricamente em células individuais. Chamamos cada elemento

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Linguagem de programação Linguagem de Alto Nível próximo ao ser humano, escrita de forma textual. Ex: if (a==b) a=b+c; Linguagem de Montagem (Assembly) próximo à linguagem de máquina, escrita em códigos

Leia mais

CEFET-RS Curso de Eletrônica

CEFET-RS Curso de Eletrônica CEFET-RS Curso de Eletrônica 3.1 - Memória DRAM Profs. Roberta Nobre & Sandro Silva robertacnobre@gmail.com e sandro@cefetrs.tche.br Estrutura básica da DRAM LSB CAS Decodificador de Colunas Endereço Real

Leia mais

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial

Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Pipeline Aula #5 28 Mar 06 Revisão Na implementação

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de

Leia mais

Organização de Computadores Como a informação é processada?

Organização de Computadores Como a informação é processada? Curso de ADS/DTEE/IFBA Organização de Computadores Como a informação é processada? Prof. Antonio Carlos Referências Bibliográficas: 1. Ciência da Computação: Uma visão abrangente - J.Glenn Brokshear 2.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados

Leia mais

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

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64 Arquitecturas Alternativas Pipelining Super-escalar VLIW IA-64 Pipeline de execução A execução de uma instrução passa por várias fases: Vimos o ciclo: fetch, decode, execute fetch decode execute instrução

Leia mais

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são

Leia mais

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES

CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 2 ORGANIZAÇÃO DE COMPUTADORES 2.1 Organização de um Computador Típico : Armazena dados e programas. Processador (CPU - Central Processing Unit): Executa programas armazenados na memória, interpretando

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Uma Abordagem com o Microcontrolador PIC 16F84 Nardênio Almeida Martins Novatec Editora Capítulo 1 Introdução Os microcontroladores estão presentes em quase tudo o que envolve

Leia mais

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

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções Organização e Arquitetura de Computadores Capítulo 13 Paralelismo no nível de instruções O que é Superescalar? As arquiteturas superescalares são aquelas capazes de buscar, decodificar, executar e terminar

Leia mais

Marcos da Arquitetura de Computadores (1)

Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (1) Marcos da Arquitetura de Computadores (2) Gerações de computadores Geração Zero Computadores Mecânicos (1642 1945) Primeira Geração Válvulas (1945 1955) Segunda

Leia mais

O Funcionamento do Processador

O Funcionamento do Processador O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O

Leia mais

Algumas características especiais

Algumas características especiais Algumas características especiais Tópicos o Medidas de desempenho o CISC versus RISC o Arquiteturas Superescalares o Arquiteturas VLIW Medidas de desempenho Desempenho é muito dependente da aplicação MIPS:

Leia mais

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins Organização de Computadores 1 1 - INTRODUÇÃO Prof. Luiz Gustavo A. Martins Arquitetura Define os elementos que impactuam diretamente na execução lógica do programa. Corresponde aos atributos visíveis veis

Leia mais

Infraestrutura de Hardware. Memória Virtual

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

Leia mais

Algoritmos DCC 119. Introdução e Conceitos Básicos

Algoritmos DCC 119. Introdução e Conceitos Básicos Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação

Leia mais

SSC510 Arquitetura de Computadores. 2ª aula

SSC510 Arquitetura de Computadores. 2ª aula SSC510 Arquitetura de Computadores 2ª aula PROFA. SARITA MAZZINI BRUSCHI CISC E RISC ARQUITETURA MIPS PIPELINE Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

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. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação - DCC/IM Arquitetura de Computadores II Multithreading Prof. Gabriel P. Silva Introdução Muitos dos sistemas operacionais modernos

Leia mais

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto

Circuitos de Memória: Tipos e Funcionamento. Fabrício Noveletto Circuitos de Memória: Tipos e Funcionamento Fabrício Noveletto Memória de semicondutores São dispositivos capazes de armazenar informações digitais. A menor unidade de informação que pode ser armazenada

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 1 Processadores Computador Processador ( CPU ) Memória E/S Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 2 Pastilha 3 Processadores (CPU,, Microcontroladores)

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Os textos nestas caixas foram adicionados pelo Prof. Joubert William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 4 Memória cache Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Características Localização. Capacidade.

Leia mais

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

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva Arquitetura de Computadores - Processadores Superescalares por Helcio Wagner da Silva Introdução O Pipeline é uma técnica desenvolvida para a melhoria do desempenho frente à execução seqüencial de instruções

Leia mais

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ Microarquiteturas de Alto Desempenho Pipeline Gabriel P. Silva Introdução Pipeline é uma técnica de implementação de processadores

Leia mais

Pipelining - analogia

Pipelining - analogia PIPELINE Pipelining - analogia Pipelining OBJECTIVO: Aumentar o desempenho pelo aumento do fluxo de instruções Program execution Time order (in instructions) lw $1, 100($0) Instruction fetch ALU Data access

Leia mais

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador) Memória RAM Introdução As memórias são as responsáveis pelo armazenamento de dados e instruções em forma de sinais digitais em computadores. Para que o processador possa executar suas tarefas, ele busca

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Suporte do Sistema Operacional Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Objetivos

Leia mais

RISC X CISC - Pipeline

RISC X CISC - Pipeline RISC X CISC - Pipeline IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 25 e 26/30 Prof. Msc. Antonio Carlos Souza Referências

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores Introdução à Arquitetura de Computadores Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando

Leia mais

Memória ROM. Organização Funcional de um. Computador. ROM (Read-Only Memory) Memória Somente Leitura.

Memória ROM. Organização Funcional de um. Computador. ROM (Read-Only Memory) Memória Somente Leitura. Prof. Luiz Antonio do Nascimento Faculdade Nossa Cidade Organização Funcional de um Computador Unidade que realiza as operações lógicas e aritméticas Comanda as outras operações Sistema Central CPU ULA

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Modos de entrada/saída

Modos de entrada/saída Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Modos de entrada/saída Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

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

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 2.3 Dependências de dados (Data Hazards) Ocorre quando uma instrução depende do resultado de outra instrução que ainda está no pipeline. Este tipo de dependência é originado na natureza seqüencial do código

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

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

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Introdução à Organização de Computadores Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007 Tópicos Processadores Memória Principal Memória Secundária Entrada e

Leia mais

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01 Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções

Leia mais

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade Introdução É sabido que os processos rodam em processadores. Nos sistemas tradicionais existe somente um único processador, de forma que não há dúvida a respeito de como ele deve ser usado. Em um sistema

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP; Diminui o gargalo existente entre processador e memória principal; Diferença de velocidade 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP; Tecnologia semelhante à da CPU e,

Leia mais

Introdução à estrutura e funcionamento de um Sistema Informático

Introdução à estrutura e funcionamento de um Sistema Informático Introdução à estrutura e funcionamento de um Sistema Informático Elementos que constituem o Computador O funcionamento do computador é possível devido aos vários elementos interligados que o constituem:

Leia mais

Arquitetura de Von Neumann e os Computadores Modernos

Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Computadores e Software Básico Aula 5 Flávia Maristela (flaviamsn@ifba.edu.br) Arquitetura de Von Neumann e as máquinas modernas Onde

Leia mais

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

Aula 19. Conversão AD e DA Técnicas

Aula 19. Conversão AD e DA Técnicas Aula 19 Conversão AD e DA Técnicas Introdução As características mais importantes dos conversores AD e DA são o tempo de conversão, a taxa de conversão, que indicam quantas vezes o sinal analógico ou digital

Leia mais

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva.

Universidade Federal do Rio de Janeiro Pós-Gradução em Informática. Microarquiteturas de Alto Desempenho. Multithreading. Gabriel P. Silva. Universidade Federal do Rio de Janeiro Pós-Gradução em Informática Microarquiteturas de Alto Desempenho Multithreading Introdução Muitos dos sistemas operacionais modernos suportam o conceito de threads,

Leia mais

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

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

O Hardware Dentro da Unidade do Sistema

O Hardware Dentro da Unidade do Sistema Memória RAM Random Access Memory Memória de Acesso Aleatório Armazena: programas em execução dados dos programas em execução alguns programas do sistema operacional O objetivo é tornar mais rápido o acesso

Leia mais

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger O controle da entrada e saída (E/S ou I/O, input/output) de dados dos dispositivos é uma das funções principais de um sistema operacional.

Leia mais

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

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Aula 06. Memórias RAM

Aula 06. Memórias RAM Aula 06 Memórias RAM Memória RAM As memórias RAM são responsáveis por armazenar as informações que estão em uso no computador, fazendo com que o acesso aos dados seja mais rápido. 17/01/2013 2 Encapsulamento

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado

Memória - Gerenciamento. Sistemas Operacionais - Professor Machado Memória - Gerenciamento Sistemas Operacionais - Professor Machado 1 Partes físicas associadas à memória Memória RAM Memória ROM Cache MMU (Memory Management Unit) Processador Tabela de Páginas TLB 2 Conceitos

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL

MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL MEMÓRIA M.1 - HIERARQUIA DE MEMÓRIAS NUM COMPUTADOR DIGITAL Quando se caminha no sentido da memória secundária encontramos memórias com maior capacidade, maior tempo de acesso e mais baixo custo/bit. Fig

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Univ ersidade Federal do Rio de Janei ro Info rmátic a DCC/IM Arquitetura de Computadores II Microarquiteturas Avançadas Gabrie l P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo

Leia mais

PROCESSADOR. Montagem e Manutenção de Microcomputadores (MMM).

PROCESSADOR. Montagem e Manutenção de Microcomputadores (MMM). PROCESSADOR Montagem e Manutenção de Microcomputadores (MMM). INTRODUÇÃO O processador é o C.I. mais importante do computador. Ele é considerado o cérebro do computador, também conhecido como uma UCP -

Leia mais

Aulas 17 & 18. Comutação Rápida a Pacote. Eytan Modiano MIT

Aulas 17 & 18. Comutação Rápida a Pacote. Eytan Modiano MIT Aulas 17 & 18 Comutação Rápida a Pacote Eytan Modiano MIT 1 Comutador a Pacote Etiqueta Um comutador a pacote consiste de uma máquina de roteamento (table lookup), um escalonador e uma máquina de comutação.

Leia mais

Introdução a Organização de Computadores Aula 4

Introdução a Organização de Computadores Aula 4 1 Subsistemas de Memória 4.1 Introdução A memória é o componente de um sistema de computação cuja função é armazenar as informações que são (ou serão) manipuladas por esse sistema, para que as informações

Leia mais