Universidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache
|
|
- Lívia Castel-Branco Beltrão
- 7 Há anos
- Visualizações:
Transcrição
1 Universidade ederal de Mato Grosso do Sul acom - aculdade de Computação Linguagem de Programação Orientada a Objetos Prof. Me. Liana Duenha Implementação de um Sistema Simplificado de Memória Cache O objetivo geral deste trabalho é fixar conceitos de programação orientada a objetos para descrever um sistema parametrizável de memória cache baseado. 1 Componentes do sistema de memória Todos os componentes do sistema que será implementado são versões simplificadas de componentes reais utilizados nos computadores atuais. Segue a descrição dos principais componentes do sistema: WORD: tamanho da palavra em bits MAX RAM: quantidade de células da memória principal (ou quantidade de endereços). Pode-se assumir que sempre será uma potência de 2 menor ou igual a MAX BLOCK: quantidade de blocos de cache. Pode-se assumir que sempre será uma potência de 2 menor ou igual a N WORKERS: quantidade de unidades de processamento e, consequentemente, quantidade de caches do sistema. A Memória Principal (MP) consiste em um vetor de MAX RAM posições (ou células) de WORD bits cada. Do ponto de vista do comportamento da memória, duas operações são permitidas: leitura de um dado de WORD bits e escrita de um dado de WORD bits. Um dado é um valor de WORD bits armazenado na memória. Um endereço da memória principal é um valor de log 2 (MAX RAM) bits que pode assumir valores de 0 a MAX RAM-1. A Memória Cache (MC) é uma memória auxiliar, localizada mais perto do processador, conceitualmente mais rápida e com capacidade menor que a MP. Neste sistema, a MC é mapeada diretamente e tem capacidade de armazenamento de MAX BLOCK blocos. 1
2 Um Bloco de Cache (BC) é uma linha da memória cache. Cada bloco contém os campos tag, valid e data. O campo valid é um valor booleano que representa um bit de validade do bloco. Se valid=false, o bloco é inválido, e nesse caso os demais campos armazenam lixo. Se valid=true, então o bloco é válido e a semântica dos demais campos é a seguinte: o campo data armazena uma cópia de um dado WORD bits que foi copiado da memória principal; o campo tag armazena um valor de N bits retirado da parte mais significativa do endereço de memória principal do dado armazenado em data. Inicialmente, todos os blocos de cache são inválidos. O valor de N é dependente da quantidade de bits do endereço de MP (log 2 (MAX RAM)) e da quantidade de bits do endereço do bloco de cache (log 2 (MAX BLOCK)); mais especificamente, N = log 2 MAX RAM log 2 (MAX BLOCK). Um endereço de bloco de cache é um valor de log 2 (MAX BLOCK) bits que armazena um valor entre 0 e 255 (ou 00h a 0xh) que representa unicamente um bloco da memória cache. O diretório é uma estrutura que contém informações sobre cada bloco de cache do sistema. Para cada bloco, o diretório deve conter, pelo menos: o estado do bloco e uma lista das caches que contém o bloco com valor consistente com a memória; O comportamento do sistema de diretório será descrito posteriormente. O gerenciador é um componente responsável por gerar solicitações de leitura e escrita em endereços válidos de memória. Esse componente substitui uma unidade de processamento no sistema (o processador, por exemplo). As solicitações de escrita e leitura devem ser fornecidas como entrada em um arquivo texto cujo formato exato será explicado posteriormente. Além disso, esse componente é responsável por coletar informações estatísticas sobre o sistema de cache. O sistema será avaliado de acordo com as saídas geradas por esse componente e a descrição exata do arquivo de saída será explicado posteriormente. 2 Comportamento do sistema de memória Para descrever o comportamento da cache, utilizaremos um exemplo onde exemplo onde WORD=32, MAX RAM=64K e MAX BLOCK=256. As primeiras informações que conseguimos extrair são: a memória principal possuim endereços de 0 a 64K-1 ou, analogamente, de 0 a 0xh; cada endereço de memória possui 16 bits; cada célula endereçavel de memória armazena um dado de 32 bits; os endereços de blocos de cache possuem 8 bits; 2
3 o campo tag possui 8 bits; Na cache mapeada diretamente, uma determinada palavra da memória principal só pode ocupar uma única posição na cache. Assim, diferentes dados de memória podem ser carregados na mesma posição da cache, porém não é possível que dois dados ocupem a mesma posição da cache ao mesmo tempo. Apenas 8 bits são necessários para endereçar um bloco de cache em uma cache de 256 blocos. Desta forma, os 8 bits menos significativos do endereço de MP serão utilizados para endereçar o bloco de cache e os demais bits serão utilizados como tag do endereço. endereços de MP MP endereços de bloco de MC MC C 3A00 C A0000 0A25787C 05A2012D bits 00 C T T A2012D valid tag data Obs: todos os valores numéricos na figura estão representados na base hexadecimal. igura 1: Considere o exemplo na igura 1. O valor 0x h está armazenado no endereço 0x0000h e o valor 0x0A25787Ch no endereço 0x3A00h da MP. Se for realizado um acesso para leitura do endereço 0x0000h da MP, os 8 bits menos significativos do endereço (00h) serão utilizados para endereçar o bloco de cache que correponde a esse endereço. Como o bloco é válido, a tag do endereço (8 bits mais significativos) devem ser comparados com o campo tag do bloco; considerando que esses valores são iguais, o dado armazenado no campo data corresponde ao dado que está sendo buscado. Esse é um caso de HIT na leitura. Nesse caso, a requisição de leitura será atendida pela cache e não haverá modificações no bloco. Em seguida, suponha que seja realizado um acesso também para leitura do endereço 0x3A00h da MP. Os 8 bits menos significativos (00h) serão utilizados para endereçar o bloco de cache correspondente; como o bloco está válido, será realizada a comparação das tags. Nesse caso, a tag do endereço é 3Ah e a tag do bloco da cache armazena 00h; isto significa que o dado que está sendo buscado não está na cache: 3
4 esse é um caso de MISS na leitura. Ao ocorrer um miss de leitura, o valor deve ser buscado na memória principal e os campos tag e data do bloco devem ser atualizados corretamente (o campo tag deve armazenar 3Ah e o campo data deve armazenar 0A25787Ch). Duas diferentes políticas de escrita devem ser avaliadas. Na política writethrough, nos casos de HIT e MISS de escrita, tanto o bloco de cache deve atualizado com o novo dado (campo data) quanto a célula correspondente da memória principal. Na política write-back, nos casos de HIT e MISS de escrita, apenas o bloco de cache deve ser atualizado com o novo dado (campo data). A memória principal só será atualizada quando o bloco correspondente precisar ser substituído na cache. 3 Coerência de cache Agora que já descrevemos o comportamento de cada cache do sistema, vamos estender o sistema considerando a possibilidade de múltiplas unidades de processamento e, consequentemente, múltiplas caches. Consideremos um sistema onde há N WORKERS unidades de processamento, cada unidade com sua cache particular e que as unidades de processamento compartilham dados armazenados em uma memória compartilhada (MP). Um sistema multiprocessado como este precisa manter algum protocolo de coerência de cache, para garantir a corretude dos dados presentes nas memórias caches locais. Por conveniência, assumiremos que todas as caches do sistema possuem a mesma configuração (quantidade de blocos, estrutura do bloco e política de escrita) e adotaremos uma versão simplificada de protocolo de coerência baseado em diretórios. Um diretório é uma estrutura compartilhada por todas as unidades de processamento, responsável por armazenar informações de estado sobre cada bloco de cache. Um diretório armazena, pra cada bloco de cache, os seguintes campos: dirty: valor booleano que representa se o bloco em questão está sujo, ou seja, se foi sobrescrito por alguma cache e está inconsistente com MP. estado: valor inteiro que indica o estado do bloco de cache. Um bloco pode estar em um dos três distintos estados: 0: o bloco não está em nenhuma cache do sistema; 1: o bloco está apenas em uma cache do sistema e o seu valor pode não ser consistente com a memória (essa informação depende do bit dirty); 2: o bloco está em uma ou mais caches do sistema e o valor em todas elas é consistente com a memória; cachelist: lista de caches de contém o bloco; 4
5 3.1 Máquina de estados considerando cache write-through: se X está no estado 0: Leitura: Caso de READ-MISS. Ação: uma leitura na memória será realizada e o bloco X será armazenado na cache do processador P 1. O estado do bloco X no diretório deve passar para 1 e a cache C 1 deve ser inserida na lista de caches que contém o bloco X. Escrita em cache write-through: Caso de WRITE-MISS. Ação:uma escrita na memória será realizada e o bloco X (já com o novo valor) será armazenado na cache do processador P 1. O estado do bloco X no diretório deve passar para 1 e a cache C 1 deve ser inserida na lista de caches que contém o bloco X. Escrita em cache write-back: Caso de WRITE-MISS. Ação: uma leitura na memória será realizada e o bloco X será armazenado na cache do processador P 1. O dado no bloco X da cache deve ser atualizado com o novo valor e o diretório deve ser atualizado (bit dirty deve ser atualizado para true, o estado do bloco X no diretório deve passar para 1, e a cache C 1 deve ser inserida na lista de caches que contém o bloco X. se X está no estado 1: Leitura: O diretório deve ser acessado; se a cache que contém o dado é do processador que está fazendo a solicitação de leitura, então temos um READ-HIT. Nenhuma ação nesse caso. Senão, temos um READ-MISS. Suponha que a cache C 1 contém o bloco atualizado e que o processador P 2 está fazendo a requisição. Nesse caso, o dado deve ser buscado na cache C 1 e copiado para o bloco correspondente à cache C 2 (cache do processador P 2 ). A entrada deste bloco no diretório deve ser atualizado (dirty permanece em false, inserção de mais uma entrada em cachelist e mudança de estado para 2). Escrita: O diretório deve ser acessado; se a cache que contém o dado é do processador que está fazendo a solicitação de leitura, então temos um WRITE-HIT; senão, temos um WRITE-MISS. Ação em caso de WRITE- HIT: escreve o novo valor no bloco correspondente e atualiza diretório (bit dirty = true). Se a cache é write-through, é necessário escrever o dado na memória (e nesse caso bit dirty = false). Ação em caso de WRITE-MISS: Suponha que a cache C 1 contém o bloco atualizado e que o processador P 2 está fazendo a requisição. Nesse caso, o dado deve ser buscado na cache C 1 e copiado para o bloco correspondente à cache C 2 (cache do processador P 2 ). O bloco na cache C 1 deve ser invalidado e a entrada deste bloco no diretório deve ser atualizado (dirty = true, retirada de C 1 da cachelist do bloco e estado permanece em 1). Novamente, se a cache é write-through, é necessário escrever o dado na memória (e nesse caso bit direty = false). 5
6 se X está no estado 2: Leitura: O diretório deve ser acessado; se a cache do processador que está fazendo a solicitação está na cachelist do bloco, então temos um READ- HIT. Nenhuma ação nesse caso. Senão, temos um READ-MISS. Suponha que a cache C 1 contém o bloco atualizado e que o processador P 2 está fazendo a requisição. Nesse caso, o dado deve ser buscado na cache C 1 e copiado para o bloco correspondente à cache C 2 (cache do processador P 2 ). A entrada deste bloco no diretório deve ser atualizado (dirty permanece em false, inserção de mais uma entrada em cachelist e estado permanece em 2). Escrita: O diretório deve ser acessado; se a cache do processador que está fazendo a solicitação está na cachelist do bloco, então temos um WRITE- HIT; senão, temos um WRITE-MISS. Ação em caso de WRITE-HIT: escreve o novo valor no bloco correspondente, invalida o bloco em todas as caches que armazenam o bloco, atualiza diretório (bit dirty = true, remove todas as entradas de cachelist e insere a entrada correspondente à cache que passará a conter o bloco). Sea cache é write-through, é necessário escrever o dado também na memória (e bit dirty = false). Ação em caso de WRITE-MISS: Suponha que a cache C 1 contém o bloco atualizado e que o processador P 2 está fazendo a requisição. Nesse caso, o dado deve ser buscado na cache C 1 e copiado para o bloco correspondente à cache C 2 (cache do processador P 2 ). O bloco deve ser invalidado em todas as caches da cachelist do bloco, entrada deste bloco no diretório deve ser atualizado (dirty = true, remove todas as entradas de cachelist e insere a entrada correspondentes à cache que passará a conter o bloco). Se a cache é writethrough, é necessário escrever o dado também na memória (e bit dirty = false). Sempre que um bloco for substituído em uma cache, o diretório deve ser consultado e atualizado corretamente. Se a cache obedece política write-back é necessário escrever o dado na memória antes de substituí-lo na cache. 4 Entrada e saída O componente gerenciador é o responsável por disparar as solicitações de leitura e escrita para o sistema de memória de acordo com o arquivo fornecido como entrada. O arquivo de entrada deve ter o nome in.txt e deve conter os parâmetros para a instanciação dos componentes do sistema (memória, cache, etc) e a lista de requisições. Uma requisição é definida pelo índice da unidade de processamento que realiza a solicitação (pode ser um valor entre 0 e N WORKERS-1), seguida pelo código R ou W (representando uma requisição de leitura ou escrita, respectivamente). Uma solicitação 6
7 de leitura é seguida pelo endereço de MP, apenas. Uma solicitação de escrita possui, além do endereço de MP, o dado que deve ser escrito. WORD MAX_RAM MAX_BLOCKS N_WORKERS I R END I W END DATA I W END DATA I R END Exemplo: 32 // cada célula de memória possui de 32 bits // a memória possui 64K células 256 // as caches possuem 256 blocos cada uma 4 // existem 4 unidades de processamento e 4 caches no sistema 0 R 0 // P0 solicita leitura do endereço 0 de MP 1 W // P1 solicita escrita do valor 10 no endereco 100 de MP 2 R 0 // P2 solicita leitura do endereco 0 de MP 2 W // P2 solicita escrita do valor 200 no endereco 0 de MP 3 W // P3 solicita escrita do valor 500 no endreco 100 de MP Devem ser realizadas duas execuções sobre os mesmos dados, uma utilizando política de escrita write-through e outra utilizando política write-back. O arquivo de saída out.txt não possui um formato fixo, mas deve conter, pelo menos, os seguintes dados: quantidade de acessos à memória principal para leitura quantidade de acessos à memória principal para escrita quantidade de HITS de leitura/escrita na cache quantidade de MISSES de leitura/escrita na cache quantidade de substituições de blocos de cache Os mesmos dados devem ser fornecidos considerando as execuções com políticas write-through e write-back. 7
8 5 Requisitos e Avaliação 1. A função main deve ser extremamente simples. Algo como: int main () { Gerenciador g; g.buildmemorysystem(); g.startsimulation(); g.generateoutput(); } return 0; 2. A classe que representa a cache deve ser abstrata e duas outras classes concretas devem ser derivadas desta classe para implementar as caches com políticas de escrita write through e write back. 3. Todo o sistema deve ser parametrizável utilizando os dados WORD, MAX RAM, MAX BLOCKS e N WORKERS. 4. O trabalho de implementação pode ser feito em duplas e deve ser entregue via moodle até dia 19 de novembro, às 23:55h (horário do moodle!!!). 8
SSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação
Leia maisPrincípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade
Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a
Leia maisSSC0112 Organização de Computadores Digitais I
SSC0112 Organização de Computadores Digitais I 20ª Aula Hierarquia de memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Princípios básicos Definição: Tamanho da cache Tamanho do bloco Função de
Leia maisInfraestrutura de Hardware. Explorando a Hierarquia de Memória
Infraestrutura de Hardware Explorando a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo
Leia maisCEFET-RS Curso de Eletrônica
CEFET-RS Curso de Eletrônica 3.2 - Cache Profs. Roberta Nobre & Sandro Silva robertacnobre@gmail.com e sandro@cefetrs.tche.br Cache Wait States CPU Principal Durante o processamento normal, o processador
Leia maisSSC510 Arquitetura de Computadores. 8ª aula
SSC510 Arquitetura de Computadores 8ª aula ARQUITETURAS MIMD COM MEMÓRIA COMPARTILHADA COERÊNCIA DE CACHE PROFA. SARITA MAZZINI BRUSCHI Memórias Cache Políticas de Atualização As memórias caches possuem
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5 Cristina Boeres Mapeamento Associativo por Conjunto! Tenta resolver o problema de conflito de blocos na mesma linha (mapeamento
Leia maisProtocolos de Coerência de Memória Cache
Universidade Federal do Rio de Janeiro Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquiteturas de Sistemas de Processamento Paralelo Protocolos de Coerência de Memória Cache Introdução Em sistemas
Leia maisCapítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache
Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade Funcionamento da memória cache Elementos de projeto de memória cache Mapeamento de dados MP/cache Algoritmos de substituição de dados
Leia maisCorreção de Erros. Erros de memória de semicondutores podem ser:
Correção de Erros Erros de memória de semicondutores podem ser: Erros graves que constitui um defeito físico permanente; Erros moderados, onde a(s) célula(s) não são capazes de armazenar os dados ou fazem
Leia maisMemória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP
Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade
Leia maisHierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho
Hierarquia de Memória Sistemas de Computação André Luiz da Costa Carvalho 1 Introdução l Pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura
Leia maisTrabalho de Programação 2 Processador CESAR
Trabalho de Programação 2 Processador CESAR 1. Descrição Geral A empresa TABLETEROS S.A. assinou um contrato milionário de fornecimento de ultrabooks e teve que aumentar o número de estantes. Agora, a
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 21ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Coerência de Cache Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Memórias Cache Políticas
Leia maisMEMÓRIA CACHE FELIPE G. TORRES
MEMÓRIA CACHE FELIPE G. TORRES MEMÓRIA CACHE O uso da memória cache visa obter velocidade de memória próxima das memórias mais rápidas que existem e, ao mesmo tempo, disponibilizar uma memória de grande
Leia maisOrganização e Arquitetura de computadores. Memórias
Organização e Arquitetura de computadores Memórias Introdução Funcionamento básico de um sistema microprocessado (Figura 1.10, Gabriel Torres) Programas são armazenados aqui Controlador de memoria Dispositivos
Leia maisMemória Cache. Aula 24
Memória Cache Aula 24 Introdução Objetivo: oferecer o máximo de memória disponível na tecnologia mais barata, enquanto se fornece acesso na velocidade oferecida pela memória mais rápida Velocidade CPU
Leia maisOrganização e Arquitetura de Computadores. Ivan Saraiva Silva
Organização e Arquitetura de Computadores Hierarquia de Memória Ivan Saraiva Silva Hierarquia de Memória A Organização de Memória em um computador é feita de forma hierárquica Registradores, Cache Memória
Leia maisTempo de processador desperdiçado a fazer nada. Processor register 1 clock cycle (0.5 2 GHz) $??? DRAM semiconductor memory ns $10 $20
Caches Cache Acesso à memória é lento Tempo de processador desperdiçado a fazer nada CPU Memória Memory technology Typical access time $ per GiB in 2012 Processor register 1 clock cycle (0.5 ns @ 2 GHz)
Leia maisAula 13: Memória Cache
Aula 13: Memória Cache Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Memória Cache FAC 1 / 53 Memória Cache Diego Passos (UFF) Memória:
Leia maisMemória. Memória Cache
Memória Memória Cache Revisão - Memória Principal Memória que armazena os dados e programas em linguagem de máquina em execução corrente Razoavelmente barata Tempo de acesso da ordem de nano-segundos a
Leia maisNíveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup
Memória Níveis de memória Diferentes velocidades de acesso Pequeno Alto(a) Cache RAM Auxiliar Auxiliar-Backup Memória Cache altíssima velocidade de acesso acelerar o processo de busca de informações na
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em
Leia maisSistemas de Memória Cache para Multiprocessadores
Sistemas de Memória Cache para Multiprocessadores Grupo 11 Por: Jarbas de Freitas Peixoto Anderson Kenji Ono Orientador: Prof. Dr. Norian Marranghello Memória Cache em Multiprocessadores 1. Introdução
Leia maisSSC0112 Organização de Computadores Digitais I
SSC0112 Organização de Computadores Digitais I 18ª Aula Hierarquia de memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Cache Método de Acesso: Associativo Localização de dados na memória
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução
Leia maisMemória Cache. Adriano J. Holanda. 12 e 16/5/2017
Memória Cache Adriano J Holanda 12 e 16/5/2017 Memória: princípios físicos Revisão: Hierarquia de memória; Memória RAM: estática, dinâmica; Memória ROM: PROM, EPROM, EEPROM; Memória flash Memória: fundamentos
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1)
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 12: MEMÓRIA CACHE: FUNÇÃO DE MAPEAMENTO (PARTE 1) Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação FUNÇÃO
Leia maisOrganização de Computadores
Organização de Computadores Aula 21 Memória Cache Rodrigo Hausen 21 de outubro de 2011 http://cuco.pro.br/ach2034 1/49 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.2. Execução de
Leia maisSegundo trabalho prático de implementação Sistema de reserva de assentos
Segundo trabalho prático de implementação Sistema de reserva de assentos 1. Descrição do problema Computação Concorrente (MAB-117) 2016/2 Prof. Silvana Rossetto 1 DCC/IM/UFRJ 17 de novembro de 2016 Um
Leia maisArquitetura de Computadores. Hierarquia de Memória. Prof. Msc. Eduardo Luzeiro Feitosa
Arquitetura de Computadores Hierarquia de Memória Prof. Msc. Eduardo Luzeiro Feitosa efeitosa@dcc.ufam.edu.br 1 Introdução Conteúdo Exemplo da biblioteca Princípio da localidade Hierarquia de memória Cache
Leia maisMemória cache. Sistemas de Computação
cache Sistemas de Computação Princípio da localidade Programas tendem a reutilizar dados e instruções perto daqueles que foram utilizados recentemente Localidade temporal: Itens recentemente referenciados
Leia maisArquitetura de Computadores
Arquitetura de Computadores 2018.1 Relembrando... Memória Virtual Relembrando... Memória Virtual Proteção de Memória Relembrando... Memória Virtual Proteção de Memória TLB Relembrando... Memória Virtual
Leia maisMemória Cache: Funcionamento
Microcontroladores e Interfaces º Ano Eng. Electrónica Industrial Carlos A. Silva º Semestre de 5/6 http://www.dei.uminho.pt/lic/mint Assunto: Memória Cache Aula #9 9Maio6-M Memória Cache: Funcionamento
Leia maisMemória cache (cont.) Sistemas de Computação
Memória cache (cont.) Sistemas de Computação Memórias cache CPU procura por dados em L, depois em L2 e finalmente na memória principal CPU registradores barramento de cache L cache ALU barramento de sistema
Leia maisPseudolinguagem. BC0501 Linguagens de Programação t2 Aula 11. Prof. Alysson Ferrari ufabc.edu.br
BC0501 Linguagens de Programação - 2008t2 Aula 11 Pseudolinguagem Prof. Alysson Ferrari alysson.ferrari @ ufabc.edu.br http://fma.if.usp.br/~alysson baseado em material elaborado por: Marcelo Zanchetta
Leia maisVálido Rótulo Bloco bits 8 bits 8 bits 8 bits
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO TCC04.070-Organização de Computadores I Turma :A1 Gabarito - Lista 2 1. a) 256M-1=268435455 b) Log 2 256M=
Leia maisHierarquia de Memória
Hierarquia de Memória Organização da cache AC1 Hierarquia da Memória: Organização 1 Mapeamento Directo A cada endereço de memória corresponde apenas uma linha da cache. linha = resto (endereço do bloco
Leia maisUNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação Profa: Simone Martins Gabarito - Lista 2 1 Considere um protótipo de uma máquina, utilizado
Leia maisELECTRÓNICA DE COMPUTADORES. Sumário
ELTRÓNICA DE COMPUTADORES Aulas nº14 e15 Memórias tampão (s) 12.1 Sumário Princípio da localidade espacial e temporal Organização das caches s de dados: políticas de escrita e estratégias de alocação Interligação
Leia maisEstrutura de um computador digital. Gustavo Queiroz Fernandes
Gustavo Queiroz Fernandes Atualizado em: 18/02/2019 Sumário Objetivos... 1 Pré-requisitos... 1 Recursos e Materiais... 1 Última Atualização... 1 1. Memória primária... 1 2. Memória secundária... 2 3. Unidade
Leia maisUniversidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização e Arquitetura Básicas B de (Parte II)
Leia maisORGANIZAÇÃO DE COMPUTADORES
ORGANIZAÇÃO DE COMPUTADORES CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014-1 1 CONCEITOS ASSUNTOS DESTA AULA: Funcionalidades de um computador; Hardware e Software; Componentes de um computador: o CPU
Leia maisMemória Cache endereço de memória
Memória Cache O modelo de Von Neumann estabelece que para ser executado, o programa deve estar armazenado na memória. A memória é organizada em grupos de bits chamados células (ou palavras), onde as informações
Leia maisInstituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores
Instituto de Matemática e Estatística - USP MAC0412 - Organização de Computadores EP1 Experimentos com o cache Tiago Andrade Togores - 6514230 30 de setembro de 2010 Sumário 1 Introdução 2 1.1 O que é
Leia maisMemória cache segunda parte. Organização de Computadores. Aula 17. Memória cache segunda parte. 1. Mapeamento completamente associativo
Universidade Federal do Rio Grande do Sul Instituto de Informática Memória segunda parte Organização de Computadores 1. Mapeamento completamente associativo 2. Mapeamento direto 3. Mapeamento conjunto
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisSistemas Operacionais
Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar
Leia maisBanco de Dados? Banco de Dados Professor Vanderlei Frazão
Banco de Dados? OU Vamos por partes... O que são dados? Definições... 1. Dados são observações documentadas ou resultados de medições. 2. Dados são matéria bruta de que é feita a informação. 3. Valores
Leia maisMultiprocessadores com Memória Compartilhada
Multiprocessadores com Memória Compartilhada Prof. Rômulo Calado Pantaleão Camara Multiprocessadores Carga Horária: 2h/60h Introdução Sistemas com várias CPUs - MIMD. Multiprocessadores; Multicomputadores.
Leia maisORGANIZAÇÃO DE COMPUTADORES MEMÓRIA. Prof. Dr. Daniel Caetano
ORGANIZAÇÃO DE COMPUTADORES MEMÓRIA Prof. Dr. Daniel Caetano 2014-1 Objetivos Compreender o que é a memória e sua hierarquia Compreender os diferentes tipos de memória Entender como é feito o acesso à
Leia maisCache. Cache. Direct Mapping Cache. Direct Mapping Cache. Internet. Bus CPU Cache Memória. Cache. Endereço Byte offset
-- Internet Bus Memória Fully Associative Direct Mapping Direct Mapping Direct Mapping 7 Endereço Byte offset Hit Tag Endereço Byte offset Index Block offset bits 8 bits bits bits V Tag Valid Tag K entries
Leia maisSistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro
Sistemas de Memória Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Memória: O Gargalo de Von Neuman Memória principal: considerada como sendo
Leia maisORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL
ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL MEMÓRIA Componente de um sistema de computação cuja função é armazenar informações que são manipuladas pelo sistema para que possam ser recuperadas
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisMemória 21/05/2010. Introdução. Hierarquia de Memória. Hierarquia de Memória. Arquitetura de Computadores
Introdução Arquitetura de Computadores Profa. Delfa H. Zuasnábar A memória pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura e a escrita.
Leia maisINTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA
INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA Prof. Hélio Esperidião DEFINIÇÕES DE ARQUIVOS Um arquivo é basicamente um conjunto de dados armazenados em um dispositivo físico não-volátil, com
Leia maisEA075 Memória virtual
EA075 Memória virtual Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Motivação Problema: programas cujos tamanhos ultrapassavam
Leia maisArquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)
Arquitetura de Computadores Professor: Vilson Heck Junior (Material: Douglas Juliani) Agenda Conceitos Componentes Funcionamento ou tarefas Otimização e desempenho Conceitos Componente de Hardware que
Leia maisARQUITETURA DE COMPUTADORES
ARQUITETURA DE COMPUTADORES Aula 05: Memória Principal MEMÓRIA PRINCIPAL Elementos de uma memória principal (célula, bloco, tamanho total); Cálculo dos elementos de memória (tamanho dos barramentos de
Leia maishttp://www.ic.uff.br/~debora/fac! 1 Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e escrita Capacidade 2 Componente de um sistema
Leia maisSistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro
Sistemas MIMD Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Arquiteturas Paralelas (SISD) Single Instruction Stream, Single Data Stream: Monoprocessador
Leia maisARQUITETURA DE COMPUTADORES
ARQUITETURA DE COMPUTADORES Arquitetura de Von Newmann Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Vídeos Vídeo aula RNP http://edad.rnp.br/rioflashclient.php?xmlfile=/ufjf/licenciatura_com
Leia maisProf. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo
Prof. Benito Piropo Da-Rin memória é o local onde se armazenam dados Será???? Memória é um local ou dispositivo onde podem se armazenar dados e que permite que sejam recuperados quando deles se precisar
Leia maisMicroprocessadores. Memórias
s António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Arquitectura de Microcomputador Modelo de Von Neumann Barramento de Endereços µprocessador Entrada/Saída Barramento
Leia maisArquitetura e Organização de Processadores. Aula 4. Pipelines
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de
Leia maisProcessamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Laboratório de Bases de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Leia maisLógica de Programação, Algoritmos e Estruturas de Dados
Lógica de Programação, Algoritmos e Estruturas de Dados Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda Funções Básicas do Software; Relações entre áreas; Introdução à Algoritmos; Introdução
Leia maisCompiladores Geração de Código
Compiladores Geração de Código Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisGerência de Memória. Paginação
Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 15ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano
Leia maisSistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro
Sistemas de Memória Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Memória: O Gargalo de Von Neuman Memória principal: considerada como sendo
Leia maisVictor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de
Leia maisIntrodução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Leia maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisAula 12: Memória: Barramentos e Registradores
Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34
Leia maisArquitectura de Computadores (ACom)
Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 22: Título: Sumário: cache; cache por blocos; Política de substituição; Tratamento das operações de
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache
Departamento de Ciência da Computação - UFF Principal Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Principal ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória
Leia maisMC-102 Aula 20 Ponteiros III
MC-102 Aula 20 Ponteiros III Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Exemplo de Ponteiros e Alocação Dinâmica 2 Exercício 3 Informações Extras: Ponteiros para Ponteiros e Alocação
Leia maisExperimentos com o Cache Organização de Computadores
Experimentos com o Cache Organização de Computadores Bruno Milan Perfetto - n o USP : 6552421 Steven Koiti Tsukamoto - n o USP : 6431089 Departamento de Ciência da Computação Instituto de Matemática e
Leia maisMemória Principal. Tiago Alves de Oliveira
Memória Principal Tiago Alves de Oliveira tiago@div.cefetmg.br Memória Principal Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e
Leia maisArquitectura de Computadores
Arquitectura de Computadores Memória Cache; Memória Secundária (13.3) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior
Leia maisAlgoritmos. Conceitos e Comandos
Algoritmos Conceitos e Comandos Trabalho - Reposição Arquitetura Funcional do Computador Para próxima aula 16/03/2018 Valerá duas presenças. Variável Uma variável é um local na memória principal, isto
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características
Leia maisSISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2
SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Parte
Leia maisMemória e Hierarquia de Memória. Memória Vs. Armazenamento
Memória e Hierarquia de Memória Memória Vs. Armazenamento Fichário Pasta O fichário representa o disco rígido, com alta capacidade de armazenamento. A pasta sobre a mesa representa a memória, de acesso
Leia maisMatéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento
Leia maisa) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador
Leia maisCOMPUTADOR. Adão de Melo Neto
COMPUTADOR Adão de Melo Neto 1 COMPUTADOR COMPUTADOR Barramento de Endereços: Determina qual a posição de memória que irá ser lida ou escrita (unidirecional). Barramento de Endereços: Transporta o dados
Leia maisSegmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386
Segmentação com paginação Intel 386 O processador Intel 386 usava segmentação com paginação para gerenciamento de memória com um esquema de paginação em dois níveis. Esquema de tradução de endereço Intel
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MEMÓRIA SÃO TODOS
Leia maisArquitetura de Computadores
Departamento de Ciência da Computação Bacharelado em Ciência da Computação Arquitetura de Computadores Hierarquia de Memória Gabriel P. Silva Ementa Unidade 3: Hierarquia de Memória 3.1 Registradores 3.2
Leia maisLista Ligada de Produtos parte 2 Data Máxima de Entrega: 17/11/2018
ACH223 turmas 4 e 94 EP2 2 o Semestre de 218 Lista Ligada de Produtos parte 2 Data Máxima de Entrega: 17/11/218 O objetivo deste EP é gerenciar uma Lista Ligada de Produtos de uma loja que deseja acessar
Leia maisSistemas da Informação. Banco de Dados I. Edson Thizon
Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel
Leia maisLÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz
LÓGICA DE PROGRAMAÇÃO (JAVA) Classes Uma classe é um tipo definido pelo usuário que contém o molde, a especificação para os objetos, algo mais ou menos como o tipo inteiro contém o molde para as variáveis
Leia maisArquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 9 e 10 Memória cache Tendências tecnológicas
Leia mais