Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professores: Ivanildo Melo e Rosangela Melo ivanildo.melo@paulista.ifpe.edu.br rosangela.melo@paulista.ifpe.edu.br Arquitetura de Computadores Aula 09 – Memória Principal e Secundária: Características, Organização, Arquitetura, Hierarquia e Memória Cache. [Terceira Parte] * O conteúdo deste material é também utilizado no conteúdo da disciplina de Montagem e Manutenção de Computadores Sobre este Material 2 O material dessa aula segue o conteúdo literal e em alguns pontos adaptado das seguintes fontes: • MONTEIRO, Mario A. Introdução a Organização de Computadores. 5ª ed. Rio de Janeiro: LTC, 2007. • BARBOSA, Luiz Sérgio de O. Arquitetura e Organização de Computadores. (Apostila) PROINOVALAB- Amazonas. Universidade do Estado do Amazonas (UEA) • TANENBAUM, Andrew S. Organização Estruturada de Computadores. 5ª ed. São Paulo: Pearson Prentice Hall, 2010. • STALLINGS, William. Arquitetura e Organização de Computadores. 8ª ed. São Paulo: Pearson Prentice Hall, 2010. • Tiago Bandeira Marchesan – Memória – Disponível em:<http://coral.ufsm.br/tiago/introcomp/Aula%203%20- %20Memoria.pdf>. • TI Network. Organização de computadores - Aula 9 – Memória – Disponível em: <https://youtu.be/D39L13a7yPg>. • OLIVEIRA, Helder - Mapeamento Associativo e Associativo por Conjunto - Memória Cache Memória Cache - Cont. 3 • Mapeamento Associativo 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA Memória Cache - Cont. 4 • Mapeamento Associativo POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 5 • Mapeamento Associativo POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 6 • Mapeamento Associativo POSIÇÃO VAGA POSIÇÃO VAGA POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. POSIÇÃO VAGA POSIÇÃO VAGA Memória Cache - Cont. 7 • Mapeamento Associativo 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 8 • Mapeamento Associativo POSIÇÃO VAGA POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 9 • Mapeamento Associativo POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 10 • Mapeamento Associativo POSIÇÃO VAGA 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 11 • Mapeamento Associativo 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Memória Cache - Cont. 12 • Mapeamento Associativo 1. Método mais flexível quando comparado ao mapeamento direto. 2. Diferente do mapeamento direto não existe a determinação de uma posição fixa na linha de cache. 3. Normalmente, ds blocos da Memória Principal são carregados posições vagas ou em posições com maior tempo de uso. 4. O mapeamento é feito por comparação das TAG (Rótulo) de cada linha. Não existe correspondência direta entre o número do bloco da MP com a linda da cache, Memória Cache - Cont. 13 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? Memória Cache - Cont. 14 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits 4 bits – Block Number Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. Memória Cache - Cont. 15 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number Memória Cache - Cont. 16 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Parapercorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache Memória Cache - Cont. 17 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. . Memória Cache - Cont. 18 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. Memória Cache - Cont. 19 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number 0 0 1 1 1 WORD Block Number • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits . 0 0 1 1 1 (2) Memória Cache - Cont. 20 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number 0 0 1 1 1 0 0 1 1 WORD Block Number TAG • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits 4. A TAG corresponderá ao número do bloco da MP . 0 0 1 1 1 (2) Memória Cache - Cont. 21 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. . 0 0 1 1 1 (2) 0 0 1 1 1 WORD Block Number TAG 0 0 1 1 Memória Cache - Cont. 22 • Mapeamento Associativo Como a CPU sabe a partir de um determinado endereço da memória principal se o conteúdo do endereço está na presente ou mapeada na cache? • É necessário percorrer os endereços e identificar o bloco correspondente • É necessário 5 bits (25 = 32) para percorrer todos os endereços da memória. • Para percorrer os blocos é necessário 4 bits (24 = 16) Bit WORD ou PALAVRA Para o exemplo significa dizer que se esse bit for igual 0 a primeira palavra do bloco está sendo acessada, Se for igual a 1 significa dizer que a segunda palavra está sendo acessada. 5 bits Corresponderá a TAG ou Rótulo a ser comparada no processo de mapeamento. • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache No mapeamento associativo não precisaremos dos bits para identificação da linha como é realizado no mapeamento direto, visto que, o bloco da MP pode ser carregado em qualquer linha da cache. 4 bits – Block Number 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG não encontra-se previamente armazenada na cache, logo. temos um CACHE MISS. 0 0 1 1 1 (2) 0 0 1 1 1 WORD Block Number TAG 0 0 1 1 Memória Cache - Cont. 23 • Mapeamento Associativo • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits 4. A TAG corresponderá ao númerodo bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG não encontra-se previamente armazenada na cache, logo. temos um CACHE MISS. 0 0 1 1 1 (2) 0 0 1 1 1 WORD Block Number TAG 0 0 1 1 Todo o bloco é transferido para a cache Existirão TAG´s ou Rótulos iguais para blocos diferentes na Memória Principal ? Memória Cache - Cont. 24 • Mapeamento Associativo • Exemplo 01: Mapear de forma associativa o endereço 7 para a cache 1. A cache está vazia. 2. O endereço 7 pertence ao Bloco 3. 3. Representando o Endereço “7” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG não encontra-se previamente armazenada na cache, logo. temos um CACHE MISS. 7. O mapeamento considera todo o bloco mesmo que o alvo seja o endereço 7. 0 0 1 1 1 (2) 0 0 1 1 1 WORD Block Number TAG 0 0 1 1 Todo o bloco é transferido para a cache Existirão TAG´s ou Rótulos iguais para blocos diferentes na Memória Principal ? Memória Cache - Cont. 25 • Mapeamento Associativo • Exemplo 02: Mapear de forma associativa o endereço 8 para a cache 1. A cache não está vazia. 0 0 1 1 TAG Memória Cache - Cont. 26 • Mapeamento Associativo • Exemplo 02: Mapear de forma associativa o endereço 8 para a cache 1. A cache não está vazia. 2. O endereço 8 pertence ao Bloco 4. 0 0 1 1 TAG Memória Cache - Cont. 27 • Mapeamento Associativo • Exemplo 02: Mapear de forma associativa o endereço 8 para a cache 1. A cache não está vazia. 2. O endereço 8 pertence ao Bloco 4. 3. Representando o Endereço “8” com 5 bits 0 0 1 1 TAG 0 1 0 0 0 (2) 0 1 0 0 0 WORD Block Number Memória Cache - Cont. 28 • Mapeamento Associativo • Exemplo 02: Mapear de forma associativa o endereço 8 para a cache 1. A cache não está vazia. 2. O endereço 8 pertence ao Bloco 4. 3. Representando o Endereço “8” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 0 0 1 1 TAG 0 1 0 0 0 1 0 0 0 (2) 0 1 0 0 0 WORD Block Number Memória Cache - Cont. 29 • Mapeamento Associativo • Exemplo 02: Mapear de forma associativa o endereço 8 para a cache 1. A cache não está vazia. 2. O endereço 8 pertence ao Bloco 4. 3. Representando o Endereço “8” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG não encontra-se previamente armazenada na cache, logo. temos um CACHE MISS. 7. O mapeamento considera todo o bloco mesmo que o alvo seja o endereço 8. 0 0 1 1 TAG 0 1 0 0 0 1 0 0 0 (2) 0 1 0 0 0 WORD Block Number Todo o bloco é transferido para a cache Memória Cache - Cont. 30 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 0 0 1 1 TAG 0 1 0 0 Todo o bloco foi transferido para a cache Memória Cache - Cont. 31 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 0 0 1 1 TAG 0 1 0 0 Todo o bloco foi transferido para a cache Memória Cache - Cont. 32 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 0 0 1 1 TAG 0 1 0 0 Todo o bloco foi transferido para a cache Memória Cache - Cont. 33 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 3. Representando o Endereço “6” com 5 bits 0 0 1 1 TAG 0 1 0 0 0 0 1 1 0 (2) 0 0 1 1 0 WORD Block Number Todo o bloco foi transferido para a cache Memória Cache - Cont. 34 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 3. Representando o Endereço “6” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 0 0 1 1 TAG 0 1 0 0 0 0 1 1 0 (2) 0 0 1 1 0 WORD Block Number Todo o bloco foi transferido para a cache Memória Cache - Cont. 35 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 3. Representando o Endereço “6” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 0 0 1 1 TAG 0 1 0 0 0 0 1 1 0 (2) 0 0 1 1 0 WORD Block Number Todo o bloco foi transferido para a cache Memória Cache - Cont. 36 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 3. Representando o Endereço “6” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG encontra-se previamente armazenada na cache, logo temos um CACHE HIT. 0 0 1 1 TAG 0 1 0 0 0 0 1 1 0 (2) 0 0 1 1 0 WORD Block Number Todo o bloco foi transferido para a cache Memória Cache - Cont. 37 • Mapeamento Associativo • Exemplo 03: Mapear de forma associativa o endereço 6 para a cache 1. A cache não está vazia. 2. O endereço 6 pertence ao Bloco 3. 3. Representando o Endereço “6” com 5 bits 4. A TAG corresponderá ao número do bloco da MP 5. A CPU compara as TAG´s existentes com a TAG a ser mapeada que corresponde ao número do bloco. 6. A TAG encontra-se previamente armazenada na cache, logo temos um CACHE HIT. 0 0 1 1 TAG 0 1 0 0 0 0 1 1 0 (2) 0 0 1 1 0 WORD Block Number Todo o bloco foi transferido para a cache Professores: Ivanildo Melo e Rosangela Melo ivanildo.melo@paulista.ifpe.edu.br rosangela.melo@paulista.ifpe.edu.br Arquitetura de Computadores Aula 09 – Memória Principal e Secundária: Características, Organização, Arquitetura, Hierarquia e Memória Cache. [Terceira Parte] * O conteúdo deste material é também utilizado no conteúdo da disciplina de Montagem e Manutenção de Computadores
Compartilhar