54
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? CE-703 / ITA Paulo André Castro Desempenho Todos os componentes influem mas... O desempenho da CPU é crítico para o desempenho do Computador. desempenhoCPU(X)= 1/TempoCPU(X) CE-703 / ITA Paulo André Castro O que influi no desempenho de CPU CE-703 / ITA Paulo André Castro 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?

O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

Embed Size (px)

Citation preview

Page 1: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

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?

CE-703 / ITAPaulo André Castro

Desempenho

� Todos os componentes influem mas...

� O desempenho da CPU é crítico para o desempenho do Computador.� desempenhoCPU(X)= 1/TempoCPU(X)

CE-703 / ITAPaulo André Castro

O que influi no desempenho de CPU

CE-703 / ITAPaulo André Castro

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?

Page 2: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

2

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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!!

CE-703 / ITAPaulo André Castro

Exemplos de benchmark:Família SPEC www.spec.org

CE-703 / ITAPaulo André Castro

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

� Isso é realmente bom?

CE-703 / ITAPaulo André Castro

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.

Page 3: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

3

Abordagens para Conjuntos de Instruções

CE-703 / ITAPaulo André Castro

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)

� 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)

� 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)

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Gráfico de DesempenhoMIPS / VAX

Page 4: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

4

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Comparando Instruções Numéricas

CE-703 / ITAPaulo André Castro

Registradores de Propósitos Gerais dominam

CE-703 / ITAPaulo André Castro

Exemplos de Formato de Conjunto de instruções

Page 5: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

5

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Os cinco componentes clássicos de um Computador - Controle

CE-703 / ITAPaulo André Castro

Processador com Acumulador: Um Caso Extremamente Simples

CE-703 / ITAPaulo André Castro

Microprograma da CPU comAcumulador

Revisão: Como Funciona o Hardware Digital

Page 6: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

6

CE-703 / ITAPaulo André Castro

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

� Equivalência entre os sistemas:

(29)base 10 = (11101)base 2 = (35)base 8 = (1D)base 16

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

CE-703 / ITAPaulo André Castro

Representação de Números

� Um número em base B, pode ser representado como (aj, aj-1,aj-2,...a0)B , onde 0 ≤ ak ≤ B-1 e escrito na forma polinomial:� ajBj + aj-1Bj-1 + aj-2Bj-2 + .......+ a1B1 + a0B0

� Logo:� (347)10 = 3 x I02 + 4 x l01 + 7 x 100

� (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20

CE-703 / ITAPaulo André Castro

Conversão de Base

CE-703 / ITAPaulo André Castro

Computadores e Sistema Binário

� Números Negativos (dois zeros)� Complemento de 2

� Números Fracionários (ponto flutuante)� Mantissa e expoente

CE-703 / ITAPaulo André Castro

Complemento de 2

Conversão de Base:

• 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

Page 7: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

7

CE-703 / ITAPaulo André Castro

Deslocamento

CE-703 / ITAPaulo André Castro

Números Fracionários (Ponto Flutuante)� Inteiros

� (15)10= (01111)2 = 23+22+21 +20 = 8+4+2+1

� Números binários fracionários� (1,5)10 = (1,1)2 = 20+2-1 = 1+0,5 = (1,5)10

� (0,101)2 = 1*2-1 +0*2-2 + 1*2-3 = 0,5+0+0,125 = (0,625)10

CE-703 / ITAPaulo André Castro

Conversão de Números Fracionários� De binário para Decimal:

� (0.1011)2 = 2-1+2-3+2-4 = 0,5+0,125+0,0625 = = (0,6875)10

� (0.1001)2 = 2-1+2-4 = 0,5+0,0625 = (0,5625)10

� (111.101) = 22 + 21+20 + 2 -1 + 2-3 = 4+2+1 + 0,5+0,125= (7,625)10

� Conversão de Fracionários para base 22,25 -> Parte Inteira: (2)10= (10)2

-> Parte Fracionária (0,25)10 = (0.01)2Número: (2,25)10 = (10,01)2

CE-703 / ITAPaulo André Castro

Conversão de Fracionários

CE-703 / ITAPaulo André Castro

Conversão de Fracionários - 2

CE-703 / ITAPaulo André Castro

Algoritmo para Conversão de Base

� A representação em base 10 (0,d1 d2 ..dj-1 dj ) pode ser obtida através dos seguintes passos:

� Observe que o algoritmo pode nunca parar...

� Como solucionar o problema do possível loop infinito?

Page 8: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

8

CE-703 / ITAPaulo André Castro

Conversão de Base

CE-703 / ITAPaulo André Castro

Ponto Flutuante em Computadores

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Lógica Digital (Booleana)

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

Page 9: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

9

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

CE-703 / ITAPaulo André Castro

Portas Lógicas

CE-703 / ITAPaulo André Castro

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

Page 10: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

10

CE-703 / ITAPaulo André Castro

A suficiência da Porta NAND

CE-703 / ITAPaulo André Castro

Portas lógicas podem ser implementadas dentro de Chips

CE-703 / ITAPaulo André Castro

Portas Lógicas em Transistores

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Implementando um multiplexador: Exercício

CE-703 / ITAPaulo André Castro

Implementando um multiplexador: Solução

Page 11: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

11

CE-703 / ITAPaulo André Castro

Somadores� Meio-somador (sem

contabilização de carry ou “vai-um”)

� 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:� S e C - a Soma e o bit de Vai-

um (Carry)

CE-703 / ITAPaulo André Castro

Somadores - 2

� 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)

CE-703 / ITAPaulo André Castro

Somador Completo

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Flip Flops

� 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

CE-703 / ITAPaulo André Castro

Sinal de Clock (Relógio)

� 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

Page 12: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

12

CE-703 / ITAPaulo André Castro

Flip Flop RS

� 2 entradas: R e S

� R para Reset (colocar no estado O)

� S para Set (colocar no estado 1)

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Flip Flop D

� 1 entrada D (de Dado)

� Transfere o dado de entrada para a saída

CE-703 / ITAPaulo André Castro

Implementação de Flip Flop D em Portas Lógicas

Um Processador Simples com Registradores de Propósitos Gerais

CE-703 / ITAPaulo André Castro

Um Processador de Registradores de Propósitos Gerais (MIPS de ciclo único)

Page 13: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

13

CE-703 / ITAPaulo André Castro

Um Exemplo: MIPSPrincipais Instruções� Adição

� add R1,R2,R3; R1 = R2 + R3

� Subtração � sub R1,R2,R3; R1 = R2 – R3

� Adição de constante (add immediate )� addi R1,R2,100; R1 = R2 + 100

� 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

CE-703 / ITAPaulo André Castro

Formato dos Conjunto de Instruções MIPS

CE-703 / ITAPaulo André Castro

Um Exemplo: MIPSPrincipais Instruções� Alterar memória (word)

� SW R3, 500(R4) Mem[R4 + 500] =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+4+400

� Desvio incondicional (constante)� jump j 2500; go to 10000

� Desvio incondicional (registrador)� jr R31; go to R31

CE-703 / ITAPaulo André Castro

Formato de Instruções MIPS

CE-703 / ITAPaulo André Castro

Unidades Funcionais e Controle no MIPS

CE-703 / ITAPaulo André Castro

Carregamento de Instrução

Page 14: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

14

CE-703 / ITAPaulo André Castro

Controlando Operações R-type Adição/Subtração/And/or...

CE-703 / ITAPaulo André Castro

IF no fim de uma instrução

CE-703 / ITAPaulo André Castro

Instrução Load

CE-703 / ITAPaulo André Castro

Instrução Store

CE-703 / ITAPaulo André Castro

Instrução de Desvio Condicional

CE-703 / ITAPaulo André Castro

IF ao fim de uma instrução de desvio condicional

Page 15: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

15

CE-703 / ITAPaulo André Castro

Desvio não condicional

CE-703 / ITAPaulo André Castro

IF ao fim de uma desvio não-condicional

CE-703 / ITAPaulo André Castro

Sumário dos Sinais de Controle

CE-703 / ITAPaulo André Castro

Decodificação Local – Controle da ALU

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

Page 16: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

16

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

� Ex: Lavanderia� Lavar e Secar: 4h. Logo, 4 cestas demorariam 16h� Lavar: 2h e Secar: 2h. Quanto 4 cestas demorariam?� 10h

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).

CE-703 / ITAPaulo André Castro

Instruções paralelizadas Qual o ganho de desempenho com pipeline?

� Diagramas Estágio x Tempo

Page 17: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

17

CE-703 / ITAPaulo André Castro

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;

CE-703 / ITAPaulo André Castro

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

� ηηηη: eficiência – relação entre a área ocupada e a área total do diagrama Estágio x Tempo

Produtividade (throughput)

� W: produtividade – número de tarefas completadas por unidade de tempo

CE-703 / ITAPaulo André Castro

Impedimentos

� Impedimentos para valores máximos em 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

CE-703 / ITAPaulo André Castro

Problemas no Pipeline

Page 18: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

18

CE-703 / ITAPaulo André Castro

O Problema do Desnível entre Fases e Instruções

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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 tabela sobre 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ória pode-se utilizar um sistema de bloqueio desse local.

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

Page 19: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

19

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Visão do pipeline MIPS com Unidades Funcionais

IF ID/RF EX MEM WB

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Dependência de Dados - RAW

Solução: atrasar o pipeline (via SW ou via HW)

CE-703 / ITAPaulo André Castro

Implementando o atraso do Pipeline através de Hardware

Page 20: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

20

CE-703 / ITAPaulo André Castro

Implementando o atraso do pipeline através de software

CE-703 / ITAPaulo André Castro

Dependência RAW ao Carregar dados

CE-703 / ITAPaulo André Castro

Dependência RAW no carregamento

Obs.: O dado estará disponível ao final de MEM, não ao final de EX como nas Operações R-type

CE-703 / ITAPaulo André Castro

Atrasando o pipeline em carregamento de dados –Quantos clocks são necessários?

CE-703 / ITAPaulo André Castro

Dependências RAW

� 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 ?

CE-703 / ITAPaulo André Castro

Redução de Penalidade em R-Type: Bypassing

Page 21: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

21

CE-703 / ITAPaulo André Castro

Encaminhamento em Carregamentos

Seria possível eliminar este atraso ?

CE-703 / ITAPaulo André Castro

Implementando o Bypassing

•Necessário mais multiplexadores para receber entrada dos dados

•Assume-se que durante ID/RF, as gravações são feitas antes das leituras

CE-703 / ITAPaulo André Castro

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?

Além do Pipeline:Processadores Superescalares

Instruction Level Paralelism (ILP)

� Pipelining cria uma barreira teórica de CPI(Clock por instrução) igual a 1,0.

Page 22: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

22

CE-703 / ITAPaulo André Castro

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 ?

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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

Page 23: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

23

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

Page 24: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

24

CE-703 / ITAPaulo André Castro

Tomasulo

CE-703 / ITAPaulo André Castro

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Exemplo Tomasulo – Instante 1

CE-703 / ITAPaulo André Castro

Exemplo Tomasulo - Instante 2

Page 25: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

25

CE-703 / ITAPaulo André Castro

Estados das Instruções

CE-703 / ITAPaulo André Castro

Instante 2 - Tomasulo

Fonte: Hennessy & Patterson, pg. 140. Erro no Livro: F0 (e não F2) será gravada por Mult1

Sistemas de Memória

CE-703 / ITAPaulo André Castro

Memória: O Gargalo de Von Neuman� Memória principal: considerada como sendo o gargalo da

arquitetura de Von Neumann:

� O ciclo da memória principal costuma ser 4 a 20 vezes maior que o ciclo de máquina.

� 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 ?

CE-703 / ITAPaulo André Castro

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.

CE-703 / ITAPaulo André Castro

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ão-

voláteis

� Importante: Grande parte das informações não é utilizada considerando pequenos intervalos de tempo.

Page 26: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

26

CE-703 / ITAPaulo André Castro

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.

� Dois Tipos de localidade:� Localidade espacial� Localidade Temporal

� Como tirar vantagem dessa característica para obter mais desempenho?

CE-703 / ITAPaulo André Castro

Hierarquia de Memória

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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 inferior e 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

CE-703 / ITAPaulo André Castro

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;

CE-703 / ITAPaulo André Castro

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

Page 27: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

27

CE-703 / ITAPaulo André Castro

Funcionamento da Hierarquia de Memória

CE-703 / ITAPaulo André Castro

O que trafega entre os níveis ?

CE-703 / ITAPaulo André Castro

Perguntas

� Porque os blocos de transferência mais baixos são iguais ou maiores?

� Pode ocorrer que um dado esteja em nível superior, mas não no nível logo inferior? Como?

CE-703 / ITAPaulo André Castro

Funcionamento da Memória Cache

CE-703 / ITAPaulo André Castro

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) ?

CE-703 / ITAPaulo André Castro

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 = log2 (Tamanho do Bloco)

� Endereço do Bloco = Endereço – bits de offset

Page 28: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

28

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Abordagens de Posicionamento

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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) ?

CE-703 / ITAPaulo André Castro

Organização da Cache

Page 29: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

29

CE-703 / ITAPaulo André Castro

Acessando a cache

� Exemplo:

� Endereço 01173 → título 0117 → Sucesso → DR←←←←12

� Endereço 01163 → título 0116 → Falta → Procura na memória principal

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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.

Page 30: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

30

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Buffer de Gravação

• 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)

CE-703 / ITAPaulo André Castro

Buffer de Gravação 2

• 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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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.

Page 31: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

31

CE-703 / ITAPaulo André Castro

Como melhorar o desempenhoda 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).

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Desempenho da Memória

� Taxa de Erro e Penalidade � Tef = 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) * [ h2 * Tc2 + (1-h2)*Tm]

� Como se mede a taxa de acerto h2 ?

CE-703 / ITAPaulo André Castro

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.

CE-703 / ITAPaulo André Castro

Desempenho de Memória

� Pequenas melhorias 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).

Page 32: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

32

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

� Ganho = 1,75 *IC*TClock / 1,0*IC*TClock = 1,75

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

Page 33: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

33

CE-703 / ITAPaulo André Castro

Tecnologias de Construção de Memórias� ROM (Read Only Memory): 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.

CE-703 / ITAPaulo André Castro

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.

CE-703 / ITAPaulo André Castro

Organização de uma DRAM

CE-703 / ITAPaulo André Castro

Matriz de vários bits

CE-703 / ITAPaulo André Castro

Exemplo de organização de um chip de 256KB

CE-703 / ITAPaulo André Castro

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

Page 34: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

34

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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”

CE-703 / ITAPaulo André Castro

• 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)

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Dados de Módulos de DRAM

Standard name I/O Bus clock Data transfers per second Module name Peak transfer rate

DDR-266 133 MHz 266 Million PC-2100 2100 MB/s

DDR-300 150 MHz 300 Million PC-2400 2400 MB/s

DDR-333 166 MHz 333 Million PC-2700 2700 MB/s

DDR-400 200 MHz 400 Million PC-3200 3200 MB/s

DDR2-533 266 MHz 533 Million PC-4300 4264 MB/s

DDR2-667 333 MHz 667 Million PC-5300 5336 MB/s

DDR2-800 400 MHz 800 Million PC-6400 6400 MB/s

DDR3-1066 533 MHz 1066 Million PC-8500 8528 MB/s

DDR3-1333 666 MHz 1333 Million PC-10700 10664 MB/s

DDR3-1600 800 MHz 1600 Million PC-12800 12800 MB/s

266M/s*8B/tranfser=2128MB/s

300M/s*8B=2400MB/s

CE-703 / ITAPaulo André Castro

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.

Page 35: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

35

Melhorando o Desempenho da Memória Principal

CE-703 / ITAPaulo André Castro

Memória Entrelaçada� Memória entrelaçada permite acesso simultâneo a 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 operandos em 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.

CE-703 / ITAPaulo André Castro

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 ( 4+ 56+4)� 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%

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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)

Page 36: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

36

CE-703 / ITAPaulo André Castro

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* (4+56+16) =3,09

� Barramento de 128 bits, sem intercalação:� 2+1,2%*1,2*2*64 = 3,84

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Memória Virtual

CE-703 / ITAPaulo André Castro

Perguntas

� Atualmente, memória principal é barata então pode-se 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

CE-703 / ITAPaulo André Castro

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

Page 37: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

37

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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?

CE-703 / ITAPaulo André Castro

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!

CE-703 / ITAPaulo André Castro

Hierarquia de Memória com MV

CE-703 / ITAPaulo André Castro

O funcionamento da MV

Page 38: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

38

CE-703 / ITAPaulo André Castro

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) ?

CE-703 / ITAPaulo André Castro

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.)

.

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

Fragmentação e Realocação

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Page 39: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

39

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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...

CE-703 / ITAPaulo André Castro

de Memória Compartilhada (SMP)

CE-703 / ITAPaulo André Castro

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

Page 40: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

40

CE-703 / ITAPaulo André Castro

Organização Multiprocessador com Memória Distribuída

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

Arquitetura de Memória e Modelos de Comunicação

� 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)

CE-703 / ITAPaulo André Castro

Mensagens X Memória Compartilhada

� 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

CE-703 / ITAPaulo André Castro

Mecanismos de Comunicação 2

� 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

CE-703 / ITAPaulo André Castro

Adoção no Mercado

� 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

Page 41: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

41

CE-703 / ITAPaulo André Castro

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

� 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???

CE-703 / ITAPaulo André Castro

Organização Multiprocessador de Memória Compartilhada

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

� 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

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

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

Page 42: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

42

CE-703 / ITAPaulo André Castro

Protocolos de Snooping

� 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?

CE-703 / ITAPaulo André Castro

Protocolos de Snooping com Invalidação

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

CE-703 / ITAPaulo André Castro

Os cinco componentes clássicos de um Computador

CE-703 / ITAPaulo André Castro

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

Page 43: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

43

CE-703 / ITAPaulo André Castro

O que importa em Projeto de I/O?� Desempenho

� Expansibilidade

� Disponibilidade

� Capacidade de recuperação em caso de falha

CE-703 / ITAPaulo André Castro

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

CE-703 / ITAPaulo André Castro

O papel do I/O

CE-703 / ITAPaulo André Castro

Exemplo de Arquitetura de um Computador Atual

CE-703 / ITAPaulo André Castro

Barramentos no Pentium 4

CE-703 / ITAPaulo André Castro

Exemplo de Dispositivos de IO e Tx. De Transferência

Page 44: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

44

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Organização de um Disco

CE-703 / ITAPaulo André Castro

Números Típicos

� Números Típicos (dependem do tamanho do disco)� 5.000 a 30.000 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/Escrita1. 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)

CE-703 / ITAPaulo André Castro

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.

CE-703 / ITAPaulo André Castro

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)

Page 45: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

45

CE-703 / ITAPaulo André Castro

Desempenho de Discos Magnéticos� 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 15000 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

CE-703 / ITAPaulo André Castro

Tempo de Acesso ao Disco

Disk Access Time = Queuing Delay + Controller Time +Seek time + Rotational Latency + Transfer time

CE-703 / ITAPaulo André Castro

Exercício: Calcule o tempo de acesso ao Disco.

CE-703 / ITAPaulo André Castro

Solução

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

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

Page 46: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

46

CE-703 / ITAPaulo André Castro

Uma célula de uma memória Flash

CE-703 / ITAPaulo André Castro

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)

CE-703 / ITAPaulo André Castro

Memória Flash

� 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

CE-703 / ITAPaulo André Castro

Dados de Flash Memories

� O padrão compact Flash simula discos ATA, por isso simula interface de discos, seek commands, trilhas lógicas, etc.

� cu.in =Cubic inch

CE-703 / ITAPaulo André Castro

Memória Flash� 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...

CE-703 / ITAPaulo André Castro

Pooling x Interrupting

Page 47: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

47

CE-703 / ITAPaulo André Castro

Interrupting

Barramentos

CE-703 / ITAPaulo André Castro

Principais Componentes

CE-703 / ITAPaulo André Castro

Um Barramento (Bus) é

CE-703 / ITAPaulo André Castro

Funções do Barramento� Conexão de Memória

� Recebe e envia dados� Recebe endereços� Recebe sinais de controle

� Read� Write� Timing

� Entrada e Saída (I/O)� Recebe e Envia dados� Recebe sinais de controle do computador� Recebe sinais de controle dos periféricos

� Ex.: velocidade de rotação do disco� Recebe endereços do computador

� Ex.: Número de porta para identificar periférico� Envia sinais de interrupção para computador(controle)

CE-703 / ITAPaulo André Castro

Esquema de Barramento

Page 48: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

48

CE-703 / ITAPaulo André Castro

Barramentos

� Barramento de Dados� Transporta dados (ou instruções) não há diferença neste nível

� Geralmente bidirecional

� Largura é determinante para o desempenho

� Barramento de Endereços� Identifica fonte ou origem de um fluxo de dados

� Largura identifica a capacidade máxima de endereçamento

� Barramento de Controle� Sinais de Controle (ler/gravar)

� Sinais de interrupção

� Sinais de clock

CE-703 / ITAPaulo André Castro

Barramento no Pentium 4

CE-703 / ITAPaulo André Castro

Vantagens de usar Barramentos

CE-703 / ITAPaulo André Castro

Desvantagens de Barramentos

CE-703 / ITAPaulo André Castro

O que define um Barramento ?

CE-703 / ITAPaulo André Castro

Projeto de Barramentos

� A velocidade e a largura de banda são influenciados por 4 fatores principais:� Largura do Barramento

� Esquema de Clock do Barramento

� Método de Arbitragem

� Operação

Page 49: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

49

CE-703 / ITAPaulo André Castro

Largura do Barramento� O número de linhas de endereço determina o tamanho da

memória endereçável� Quanto maior o número de linhas, mais fios, conectores

maiores. Logo, o hardware torna-se mais caro.� 8088 – 20 linhas de endereço, 80286 + 4 linhas, 80386 +8 linhas

� A tendência é um crescimento constante das larguras dos barramentos para aumentar a capacidade dos barramentos

� Muitas vezes projetistas fazem multiplexação de dados e endereços em diferentes fases (ou em tempo) para reduzir o número de linhas. Mas com isto também se reduz o desempenho do barramento.

CE-703 / ITAPaulo André Castro

Mestre (Master) e Escravo(Slave)

CE-703 / ITAPaulo André Castro

CE-703 / ITAPaulo André Castro

Múltiplos Mestres de Barramento: Arbitragem� Com múltiplos possíveis mestres de barramento é necessário definir um

meio de garantir que apenas um dispositivo será selecionado como mestre.

� O método deve balancear:� Prioridade entre dispositivos

� Justiça: mesmo o dispositivo de prioridade mais baixa deve operar

� Quatro possíveis Classes de Arbitragem� Arbitragem distribuída por auto-seleção: Cada dispositivo coloca o próprio

código

� Arbitragem distribuída por detecção de colisão: exemplo Ethernet

� Daisy Chain: Autorização dada em seqüência...

� Arbitragem Centralizada: Autorização dada por órgão central...

CE-703 / ITAPaulo André Castro

Page 50: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

50

CE-703 / ITAPaulo André Castro CE-703 / ITAPaulo André Castro

Exemplos de Barramentos

CE-703 / ITAPaulo André Castro

VídeoAGP: Uma porta para vídeo

CE-703 / ITAPaulo André Castro

Conector AGP

CE-703 / ITAPaulo André Castro

Tipos de Conectores AGP e Placa

CE-703 / ITAPaulo André Castro

Barramento PCI

Page 51: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

51

CE-703 / ITAPaulo André Castro

Conectores PCI 32 bits 5V em uma Placa Mãe

CE-703 / ITAPaulo André Castro

Exemplo de Placa PCI – 32 bitsAdaptador SCSI

CE-703 / ITAPaulo André Castro

Conectores PCI 64 bits 5V em uma Placa Mãe

CE-703 / ITAPaulo André Castro

Universal Placa de Rede Ethernet

Barramentos Antigos...ISA

� ISA, (Industry Standard Architecture)� palavra de 8 bits� 62 pinos, � taxa de 1.2 MB/s)

Barramentos Antigos...EISA

� Extended ISA (palavra de 32 bits, 98 pinos)� Taxa de transferência: 32 MB/s

Page 52: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

52

Barramentos Antigos...VESA� VESA Local Bus (VLB)

� Palavra de 32 bits, 112 pinos� Taxa de transferência:133 MB/s� Slot é uma extensão do ISA

Universal Serial Bus (USB 2.0)

CE-703 / ITAPaulo André Castro

Histórico de versões� USB 0.7: Lançado em novembro de 1994.

� USB 0.8: Lançada em dezembro de 1994.

� USB 0.9: Lançada em abril de 1995.

� USB 0.99: Lançado em agosto de 1995.

� USB 1.0: Lançado em janeiro de 1996, com taxas de transferência de dados de 1,5 Mbit / s (baixa velocidade) e 12 Mbit / s (Velocidade máxima).

� USB 2.0: Lançado em abril de 2000 com a velocidade de 480 Mbps.

� USB 3.0: Lançado em setembro de 2009 com a velocidade de 4,8 Gbps.

CE-703 / ITAPaulo André Castro

Barramentos Aviônicos

� MIL-STD 1553 (Padrão para aviões militares)

� Uso Civil – ARINC (Aeronautical Radio, Incorporated)� ARINC 429

� ARINC 629

CE-703 / ITAPaulo André Castro

MIL-STD 1553

� O padrão 1553 pode ser dividido em três partes:� Tipos de terminais: Bus controller, Bus monitor (opcional) e

Remote Terminal

� Protocolo de Barramento: incluindo formatos de mensagens e estrutura

� Especificação de hardware: tais como impedências, frequencia de operação, etc.

� O barramento 1553 pode operar com até 1Mbps de taxa de transferência

CE-703 / ITAPaulo André Castro

MIL-STD 1553 – Estrutura de Barramento

Page 53: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

53

CE-703 / ITAPaulo André Castro

Tipos de Terminais no padrão1553

� Bus Controller: Responsável por todo o fluxo de dados do barramento e inicia todas as transferências de informação. Também monitora o status do sistemas, não confundir com o Bus monitor.

� Bus Monitor: Recebe e armazena tráfego selecionado no barramento. Não responde a nenhum tráfego

� Remote Terminal: São o maior número de unidades de um barramento 1553. Devido a endereçamento de RT utilizar 5 bits nas mensagens, podem existir até 31 RT em um barramento. Um RT pode ser uma unidade separada para ligar um subsistema ou ser parte do subsistema.

CE-703 / ITAPaulo André Castro 23-379

Direct Coupled

� Bus is terminated at each end with a terminating resistor.

� Connection from the Tee to the terminal is very short.

� Typically Tee is connected directly to the connector on the back of the terminal.

CE-703 / ITAPaulo André Castro 23-380

Transformer Coupled� Bus is terminated at each end with a terminating resistor,

just as in Direct Coupling but � now the two Tee's replaced with transformer couplers.

� Connection to the terminals is no longer the length of the Tee, but significantly long, consisting of another cable (of up to 20 feet in length).

CE-703 / ITAPaulo André Castro 23-381

Transformer Coupled (Example)

CE-703 / ITAPaulo André Castro

Words 1553

CE-703 / ITAPaulo André Castro

Formatos de Transferência de Dados -1553

Page 54: O que influi no desempenho de CPU Paulo André Castropauloac/ce703/ce703_cap2_6s_p2.pdf · característica melhorada é usada. Suponha que um aperfeiçoamento ofereça um ganho de

54

CE-703 / ITAPaulo André Castro

ARINC 429

� “ARINC. Specification 29 Digital Information Transfer System, Mark 33”, 429 as it is commohnly known , is the basis from digital buses in modern civil aircraft” Digital Avionics Systems. P.31.

� ARINC 429 opera com taxas de transferências de 12 a 14.5 or 100kpbs em um barramento simplex

CE-703 / ITAPaulo André Castro

Barramento Arinc 429