 Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado.

Slides:



Advertisements
Apresentações semelhantes
Integridade de Dados em Memórias Cache
Advertisements

Capitulo 6: Entrada e Saída
Introdução à Hierarquia de Memória
William Stallings Arquitetura e Organização de Computadores 8a Edição
Arquitetura e organização de computadores
Entrada e Saída Introdução.
Técnicas para operações E/S
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
Problemas com Entrada e Saída
Princípio da localidade
Gerência de Memória Algoritmos de Substituição de Páginas
Hierarquia de Memória Organização da cache
Sistemas Operacionais I
Marco Antonio Montebello Júnior
Sistemas Operacionais I
Arquitectura de Computadores II
Fundamentos da Arquitetura de Computadores
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Subsistemas de memória
Unidade Central De Processamento: Processador
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Sistemas Operacionais
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Localidade Princípio da localidade è um programa acessa uma
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Prof. André Luis M. Silva Hierarquia de Memória Prof. André Luis M. Silva
Memória.
Bruno Iran Ferreira Maciel
Funcionamento interno do computador
Sistemas Operacionais IV – Gerenciamento de E/S
MEMÓRIA CACHE E TÉCNICAS DE MAPEAMENTO Capítulo 5
Gerência de Memórias Cache (Mapeamento de Endereços)
William Stallings Arquitetura e Organização de Computadores 8a Edição
Memória Cache.
Memória Virtual.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Integridade de Dados em Memórias Cache ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
Aula 01 Conhecendo o Computador Prof. Filipe Mutz.
SECRETARIA DE ESTADO DA EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DIRETORIA DE DESENVOLVIMENTO HUMANO GERÊNCIA DE TECNOLOGIA DE INFORMAÇÕES EDUCACIONAIS E ADMINISTRATIVAS.
RHAYANE BORGES SILVA 4º ANO ADMINISTRAÇÃO Mensuração e Escala Parte II.
Cálculo Numérico Computacional Prof. Linder Cândido da Silva.
INE5408 Estruturas de Dados Passagem por Referência.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
IFRN Técnico em Informática para Internet Desenvolvimento de Algoritmos Prof. Gilbert Azevedo.
“Armazenar dados e programas que serão utilizados pelo processador (CPU – unidade central de processamento) ”
TRABALHO AVALIATIVO ALUNO: FRANCISCO HELIÉSUS DE MEDEIROS MATÉRIA: ORGANIZAÇÃO DE COMPUTADORES.
Lógica de Programação Curso Técnico em Informática – Escola Olímpio Professor Marcelo Josué Telles
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Problema do Empacotamento (Bin Packing) Heurística Simulated Annealing Dionatan de Souza Moura Lucas Nowaczyk Seadi Tobias Brignol Petry.
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
Alessandro D. R. Fazenda
Jean Carlo Mendes
INE5408 Estruturas de Dados Gerência de Arquivos.
“Armazenar dados e programas que serão utilizados pelo processador (CPU – Unidade Central de Processamento) ”
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Listas.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Revisão de Conceitos Thiago Medeiros Barros. Algoritmos Qualquer problema de computação pode ser resolvido executando uma série de ações em uma ordem.
 Mapeamento de seus cenários internos e externos, identificando requisitos essenciais a serem atendidos;  Tradução de requisitos em informações a serem.
EA869 Montadores Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato.
Calculo de Hoare Daniel Soares, Gabriel Alabarse Hernandez(150756) e Vanius Zapalowski(150843)
PROGRAMAÇÃO BÁSICA NA HP-12C. A MÉMÓRIA BÁSICA DA HP-12C A MÉMORIA BÁSICA DA HP-12C GOLD/PLATINUM/PRESTIGE POSSUI 8 LINHAS A HP-12C GOLD/PLATINUM/PRESTIGE.
MUTAÇÃO DE INTERFACE (MI) JACKSON ANTONIO DO PRADO LIMA SILVIA REGINA VERGILIO.
ORÇAMENTO BASE ZERO.
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
Transcrição da apresentação:

 Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto  Localidade Espacial  Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo referenciados 2

 Localidade temporal:  Em função de sua estrutura, as instruções e dados da maioria dos programas tendem a ser acessados de maneira repetitiva  Localidade espacial:  As instruções são acessadas quase sempre de maneira seqüencial  Elementos de arrays ou registros 3

 Dados sempre copiados entre níveis de memória adjacentes  Análise focada apenas em dois níveis, um superior e um inferior  Bloco:  Unidade mínima de informação trocada entre níveis 4

5 Processador Dados transferidos

 Mede desempenho da Hierarquia  Acerto:  Informação solicitada pelo processador encontra- se no nível superior  Taxa de acerto: fração de acessos com acerto  Falta:  Informação solicitada pelo processador não se encontrada no nível superior  Nível inferior acessado em busca do bloco.  Taxa de faltas = (1 – taxa de acerto) 6

 Determinam a eficiência da implementação de uma hierarquia de memória  Tempo de acerto – tempo para acesso ao nível superior, incluindo o tempo para determinar o acerto ou falta  Penalidade por falta – tempo para a substituição dos blocos mais o tempo de envio da informação ao processador  Tempo de acerto <<< penalidade por falta 7

 Originalmente, nível da hierarquia de memória situado entre o processador e a memória principal  Termo estendido para qualquer memória gerenciada de modo a tirar vantagem da localidade de acesso 8

 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 9

 Tecnologia semelhante à da CPU e, em conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache 10

 L1 – Level 1 (nível 1)  Dentro do processador  Mesma velocidade do processador  L2 – Level 2 (nível 2)  Dentro do invólucro, fora do chip  Metade da velocidade do processador  L3 – Level 3 (nível 3) 11

12 Cache L1 Processador Cache L2 Memória principal Invólucro do processador

 A cache L1 é geralmente dividida em cache de dados e cache de instruções: processamento mais rápido 13 dados processador instruções Cache L1

 Devido ao princípio da localidade, é interessante que a memória cache armazene o pedaço do programa que é executado repetidas vezes, deixando o restante do programa que não está sendo utilizado na memória principal 14

 Sempre que o processador vai buscar uma nova instrução (ou dado), ele acessa a memória cache:  Se a instrução estiver na cache (acerto ou hit), ela é transferida em alta velocidade para o processador  Se a instrução não estiver na cache (falta ou miss), a execução do programa é interrompida e a instrução desejada é transferida da MP para a MC 15

 Não é feita a transferência somente da instrução, mas sim de um bloco que, segundo o princípio da localidade, contém instruções que serão usadas em seguida 16

17 Processador Cache controlador de cache Memória principal Bloco de palavras Palavra (instrução ou dado)

 Função de mapeamento MP/MC  Algoritmos de substituição de dados na cache  Políticas de escrita 18

 A função de mapeamento indica quais blocos da MP estão presentes na cache e onde eles estão localizados na cache  A MC e MP estão divididas em blocos de x palavras  A MC pode conter m blocos (linhas)  A MP pode conter b blocos 19

Bloco 0 Byte 0 Byte 1 Byte Byte 0 Byte 1 Byte 63 Bloco Byte 0 Byte 1 Byte 63 Bloco MP Divisão da MP de 4G bytes em blocos de 64 bytes então tem-se 2 26 blocos de 64 bytes

21 Byte 0 Tag ou rótulo MC Byte 0 Byte 1 Byte Linha 0 Linha 1 Linha 2 Linha 1023 Divisão da MC de 64K bytes em linhas de 64 bytes então tem-se 1024 linhas de 64 bytes

 Cada bloco da MP tem uma linha de cache previamente definida para ser armazenado  Muitos blocos irão ser destinados a uma mesma linha 22

B 0 Byte 0 Byte 1 Byte Byte 0 Byte 1 Byte 63 B Byte 0 Byte 1 Byte 63 B Byte 0 Byte 1 Byte Linha 0 Linha 1 Linha 2 Linha 1023 tag Bloco 1023

 Cada linha da MC deverá acomodar 2 16 blocos ou blocos (um de cada vez)  O campo tag serve para identificar qual bloco a linha está armazenando no momento 24

 Cada endereço de MP pode ser dividido nos seguintes elementos: 25 Número do bloco na linha Número da linhaNúmero do byte 16 bits 2 16 = 64K blocos 10 bits 2 10 = 1024 linhas 6 bits 2 6 = 64 bytes 32 bits

 Exemplo:  O processador manda para a MC o seguinte endereço:

27 Byte 0 Tag ou rótulo Byte 0 Byte 1 Byte Linha 0 Linha 1 Linha 2 Linha Byte 0Byte 1Byte 63Byte 8 4 Linha 25

 Se o campo tag do endereço for igual ao campo tag da linha da cache, o conteúdo do byte solicitado é enviado para o processador 28

 Se os campos tag forem diferentes, isso significa que o bloco desejado não se encontra na cache e, portanto, deve ser transferido da MP para a linha 25, substituindo o atual bloco para, em seguida, a palavra (o byte) requerida ser transferida para o processador pelo barramento de dados 29

 A técnica de mapeamento direto é simples e de baixo custo  Desvantagem: fixação da localização para os blocos  Imagine se durante a execução de um programa um dado código fizer referências repetidas a palavras situadas em blocos alocados na mesma linha, então haverá necessidade de sucessivas idas à MP para substituição de blocos (muitas faltas) e queda no desempenho do sistema 30

 Os blocos não têm uma linha fixada previamente para seu armazenamento  O bloco é armazenado em uma linha que é selecionada de acordo com o algoritmo de substituição de cache 31

B 0 Byte 0 Byte 1 Byte Byte 0 Byte 1 Byte 63 B Byte 0 Byte 1 Byte 63 B Byte 0 Byte 1 Byte Linha 0 Linha 1 Linha 2 Linha 1023 tag

 Cada linha da MC pode acomodar um dos 2 26 blocos da memória principal  O campo tag tem agora 26 bits de tamanho 33

 Cada endereço de MP é dividido nos seguintes elementos: 34 Número do blocoNúmero do byte 26 bits 2 26 blocos 6 bits 2 6 bytes 32 bits

 Quando o processador realiza um acesso à memória, o campo bloco do endereço é comparado com todos os 1024 tags da cache para verificar se o bloco está ou não presente 35

 Se o bloco estiver presente, o byte é transferido para a CPU senão o endereço do bloco é usado para buscar na memória principal o bloco ausente 36

 Desvantagem: teste do campo bloco do endereço de memória com todos os tags da cache 37

 Esquema intermediário entre o direto e o totalmente associativo  Número fixo de posições onde um bloco pode ser armazenado na cache  Cache associativa de n posições:  n posições possíveis para cada bloco  Cache com conjuntos de n posições  Blocos mapeados diretamente em um conjunto e colocado em qualquer elemento do conjunto 38

39

 Quando o processador é inicializado, a cache está vazia e os rótulos não têm significado  Bits de validade são adicionados à cache para identificar se um bloco tem informações válidas  Bit igual a zero -> Informação inválida 40

 Atividades do controle principal:  Parar o processador  Congelar o conteúdo dos registradores  Um controle separado trata as faltas:  Busca a informação necessária na memória  Atualiza a informação na cache  Execução retomada no ciclo gerador da falta 41

1. Enviar à memória o valor original de PC 2. Comandar uma leitura da unidade de memória e esperar o resultado 3. Escrever o resultado da leitura na entrada da cache, seu rótulo e bit de validade 4. Reiniciar a execução da instrução no passo 1 42

 Técnica para redução do número de ciclos parados pela falta no acesso à cache  Baseia-se no processamento de outras instruções durante o tratamento de faltas  Na falta produzidas pelo acesso a dados novas instruções que não dependem do dado podem ser executadas  Não ajuda para faltas no acesso a instruções  Geralmente, não mostra ganhos expressivos pela dependência do dado sendo acessado 43

 Qual bloco atualmente armazenado na cache deve ser retirado para dar lugar a um novo bloco que está sendo transferido?  LRU (Least Recently Used): O controlador de cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU  FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU 44

 LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU  Escolha aleatória 45

 Quando o processador realiza uma operação de escrita, esta acorre imediatamente na cache  A memória cache é uma memória intermediária logo é necessário que a MP seja atualizada para que o sistema mantenha sua correção e integridade 46

47 Cache Memória Principal X = 1 Y = 7 Z = 2 X = Y + Z X = 1 Y = 7 Z = 2 X = Y + Z Bloco 4 Processador X = Y + Z Antes da execução da instrução X = Y + Z

48 Cache Memória Principal X = 9 Y = 7 Z = 2 X = Y + Z X = 1 Y = 7 Z = 2 X = Y + Z Bloco 4 Processador X = Y + Z Depois da execução da instrução X = Y + Z

49 Processador Cache X = 1 Processador Cache X = 1 Processador X = Y + Z cache X = 9 MP X = 1 X = 9

 O bloco 4 (o valor de X) precisa ser atualizado na memória  Quando?  Depende da política de escrita 50

 Cada escrita em uma palavra da cache acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias  Caso haja outras CPUs, estas alterarão também suas caches 51

 Simples, mas não favorece o desempenho  Qualquer escrita faz com que a informação seja escrita também na memória principal  Aumento do número de ciclos de clock  Buffer de escrita:  Armazena o dado enquanto este aguarda sua escrita na memória  Reduz o problema das escritas na mem. principal  Buffer cheio – Processador parado em escritas 52

 Faltas de escrita:  Processador simplesmente atualiza a memória principal, como antes  Não ocorrem leituras da memória principal durante a escrita pelo processador 53

 Quando ocorre uma escrita, o novo valor é escrito apenas no bloco da cache  O bloco só será escrito na memória principal quando ele precisar ser substituído na cache  Pode melhorar muito o desempenho, porém é mais complexo que o write- through 54