Buscar

Tema 3-TEXTO para ESTUDO ANTES DA AULA

Prévia do material em texto

CURSO: CIÊNCIA DA COMPUTAÇÃO 
DISCIPLINA: TÓPICOS AVANÇADOS EM ARQUITETURA DE COMPUTADORES 
TEMA 3: Tópicos em Memória-Princípio da Localidade-Hierarquia 
 
 
TEXTO PARA APOIO AO ESTUDO (estudo antes da atividade em sala) 
 
 Este tema e os próximos dois outros tratam de Tópicos sobre o sistema de armazenamento dos 
computadores ou mais genericamente, do sistema de Memórias. 
 Uma das primeiras observações que se faz quando se estuda o armazenamento de dados nos computadores 
refere-se a quantidade e diversidade de caraterísticas e parâmetros das memórias em uma máquina, especialmente 
quando elas crescem em capacidade e velocidade. 
A pergunta é: por que tantas memórias e tão diversas. Até mesmo um dispositivo menor do tipo dos dispositivos 
móveis costuma possuir mais de um tipo de memória. Por que? 
 
 A resposta dessa pergunta foi encontrada há décadas atras, quando os pesquisadores trabalharam 
intensamente para encontrar uma memória que atendesse ás expectativas do mercado de forma semelhante à 
“Memória Ideal”, mencionada por von Newmann para a definição de uma arquitetura de computador. 
 O relatório von Newmann sugeria que, para trabalhar de forma eficaz com um processador, uma memória 
deveria atender 4 requisitos básicos: 
 - velocidade – o seu tempo de acesso (latência) deveria ser baixo, compatível com os tempos do 
processador 
 - capacidade – fosse grande suficiente para armazenar programas e dados cada vez maiores 
 - Tivesse um custo baixo, para estar disponível aos clientes de toda classe 
 - Elevada disponibilidade, isto é, ser permanente (não volátil). 
 
 
Figura 1 – Comparação de tempos processador/memória principal (MP) 
 
 A figura 1 não permite se observar todos esses requisitos, mas apenas o de velocidade (comparando-se a 
rapidez de acesso interno do processador e a lentidão da memória . 
OBS: a figura mostra o nome MP para a memória comparada, embora, naquela época só existisse uma memória 
e, assim, o termo “principal” não era mencionado (só se diz principal, quando há outros itens secundários). 
 
 Os pesquisadores sabiam que não bastava apenas desenvolver uma memória mais rápida que as da 
ocasião, pois no mesmo instante os pesquisadores de processadores estariam desenvolvendo dispositivos mais 
rápidos também e o “buraco ou gap” permaneceria grande (a figura mostra, a título de exemplo, uma relação de 
50 entre os dois componentes (2 ns para 100 ns). 
 A busca da solução para a diminuição do espaço de tempo entre processador e memória levou muitos 
pesquisadores a analisarem o comportamento dos programas quando em execução (o código armazenado na 
memória e o processador buscando instrução por instrução para ser executada. E descobriram uma 
particularidade interessante do uso da memória pelo processador e que é conhecida como PRINCÍPIO DA 
LOCALIDADE. 
 
 A figura 2 mostra a organização de uma memória, armazenando um programa em execução pelo 
processador e constituído de diversos módulos: a parte principal (na área superior), cada linha horizontal 
representando uma linha de código de máquina (uma instrução); em certo ponto encontra-se uma chamada da 
rotina 1, que se encontra bem abaixo e assim por diante. 
 O que se observou do rastreamento de execução de milhares de códigos pelos pesquisadores é que os 
programas são executados em grupos de instruções contíguas (sequencialmente uma a uma); que, de tempos 
em tempos, esta sequência se altera, por um desvio intencional da lógica do programa, tais como: chamada de 
uma rotina (o processador “salta” a sequência, executada passo a passo a rotina e “salta” novamente para a linha 
abaixo da chamada. 
 
 
Figura 2- Exemplo do uso do princípio da localidade (espacial) 
 
 Desvia também a sequência, quando se depara com um IF-THEN-ELSE e assim por diante. Em outras 
palavras, ele executa sequencialmente uma grupo relativamente pequeno de instruções e, nesse caso, estas 
instruções devem ser buscadas de forma mais rápida possível para não atrasar muito o processador. Estas devem 
sim estar em uma memória muito rápida, mas não precisa que TODO o programa esteja na mesma memória 
muito rápida, porque o processador não precisa de todo o código no mesmo momento. Então, o fato do uso de 
uma bloco local de execução mostra isso. Chama-se a este fato de Princípio da Localidade. 
 
 Desta forma, graças a este princípio, pode-se idealizar a inclusão de uma pequena memória entre o 
processador e memória, que se chamou de Memória Cache. É pequena comparada coma outra, agora chamada 
de Principal, já que há duas memórias; pequena para conter apenas alguns blocos do programa (e não ele todo). 
E sendo pequena pode ser muito rápida, pois no custo não será elevado (devido ao tamanho menor). 
 
Há vários exemplos em serviços e práticas cotidianas, seja em computação ou não, que seguem essa 
tendência de realizar uma pequena quantidade do total de tarefas (ou qualquer coisa semelhante) mais 
frequentemente e, por isso, essas tarefas ou ações são separadas para mais rápido acesso. 
Por exemplo, um supermercado costuma organizar produtos iguais ou semelhantes em uma mesma 
prateleira ou gondola. Assim, um cliente procurando arroz, por exemplo, tem na mesma prateleira todas as marcas 
de arroz sequencialmente contíguos, facilitando a procura e comparação de preços, etc; trata-se do mesmo princípio 
da execução de um “bloco” de instruções, descrito anteriormente; no caso do supermercado, o cliente “executou” o 
“bloco” de marcas de arroz. Em seguida, ele procura café e, então, “desvia” para o “bloco” de café (a prateleira onde 
estão todas as marcas de café ). E assim por diante. 
 A figura 3 mostra, agora, o sistema estruturado com processador e duas memórias, a Cache (com tempo 
de acesso de 5 ns, sendo este apenas um valor para exemplo) e a Memória Principal (MP) com tempo de 100 ns. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 3- Sistema processador-cache-MP 
 
 
 
ANTES 
Processador gera endereço da MP para acesso a dado ou instrução desejada. O controle da MP decodifica 
endereço e realiza o acesso (lento). 
 
DEPOIS (com inclusão da cache) 
Processador gera endereço da MP para acesso a dado ou instrução desejada. O controle da Cache verifica 
endereço e identifica se o elemento desejado tem copia na Cache. Se tiver (HIT ou Acerto-A), a transferência é 
imediatamente realizada (muito rápido). Se não haver cópia na Cache (Miss ou Falta (F), então a tarefa passa 
para o controle da MP, que decodifica endereço, localiza o Bloco que contém o elemento desejado e transfere o 
Bloco inteiro para a Cache; esta transfere o dado/instrução para o processador (mais lento, pois tempo é soma 
dos dois tempos (MP-Cache + Cache-Processador). 
 
Nesta nova situação (com Cache), o ideal é que haja a maior quantidade possível de Acertos e a menor possível 
de Faltas. 
Quanto mais Acertos, menor será a média de tempo de transferência em um dado período. 
Processado
r Cache 
100 ns 5 ns 
Como o sistema passou a funcionar com a inclusão da nova memória? 
A Eficiência do sistema (E) é medida pela relação entre Acertos (A) e Total de Acessos (T). 
 
 
 
Um exemplo do funcionamento do acesso à memória pelo processador e os tempos envolvidos 
 
Tempos de Acesso : 
• Processador - Cache = 2 nseg 
• Cache - MP = 60 nseg 
 Período de Acessos considerado no exemplo: 100 acessos 
 Eficiência (E) do sistema: 95 % 
Qual deverá ser o tempo médio de acesso do sistema? 
 
 
 
 
 
 
IMPORTÂNCIA DAS MEMÓRIAS CACHE NO DESEMPENHO DOS SISTEMAS DE COMPUTAÇÃO 
 
Observe a evolução dos sistemas desde o início da computação (os tempos usados são apenas para comparação, 
mas próximos da realidade das épocas de uso); 
ANTES, havia apenas Processador e Memória 
 
 
 
 Neste caso, em 100% dos acessos(ou seja, sempre), 
 O tempo gasto para se trazer um dado ao processa- 
 dor era de 100 ns. 
 
 
 
 
 
 
 
Agora, como consequência do Princípio da Localidade, inseriu-se uma pequena memória (mas bastante rápida, 
pois sendo pequena não teria custo alto-CACHE) entre Processador e Memória. Ela deve conter cópia dos dados 
sendo usados no momento. 
No exemplo a seguir, supõe-se que a Eficiência da Cache seja 70%, ou seja, em cada 100 acessos, 70 são acertos 
(5 ns) e 30 são faltas (105 ns, sendo 100 para trazer o bloco e 5 para levar o dado da cache ao processador). 
 
 
 O tempo de acesso agora é uma média (TM) 
 entre o tempo de transferência Cache-Pro- 
 cessador (quando há ACERTO) e entre MP 
 e Cache (quando há FALTA). Este tempo 
 depende da relação entre Acertos e Faltas, 
 ou seja, da EFICIÊNCIA do sistema. 
 
 
 
 
 
E = A / T 
 Se E = 95 %, então, em 95 acessos há A-acertos (tempo de 2 ns) e em 5 acessos há F – faltas (60 + 2 = 62 ns) 
T. Médio = (95 * 2) + (5 * 62) / 100 = (190 + 310) / 100 = 500 / 100 = 5 ns 
Memória Processador 
2 ns 
100 ns 
Processador 
2 ns 
Cache Memória 
100 ns 
5 ns 
TM = ((70 x 5) + (30 x 105)) / 100 = (350 + 3150) / 100 = 3500 / 100 = 35 ns 
TM – tempo médio de acessos 35 << 100 
Observe a redução do tempo de acesso de 100 ns para um tempo médio de 35 ns, bem menor, mas que 
poderia diminuir ainda mais. Os pesquisadores testaram com sucesso a inclusão de uma 2ª Cache entre a 
primeira e a MP. Tendo agora DUAS caches, elas passaram a ser identificadas por níveis (Level em inglês). 
Assim, tem-se cache L1, cache L2. 
Considerando ainda o mesmo exemplo, agora com DUAS caches. 
A inclusão da 2ª cache, distribui os 30% de faltas que se tinha no exemplo anterior entre Cache L2 e MP. Por 
exemplo, seja 20 % para cache L2 e 10 % para MP. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O tempo de acesso agora é uma média entre o tempo de transferência Cache L1-Processador (5 ns), Cache L2- 
Cache L1 = 15 ns e MP – Cache L2 = 100 ns 
 
 
 
 
 
 
O QUE SE PODE OBSERVAR: 
 
• Sem cache, com a penas processador e uma memória--------tempo de 100 ns para cada acesso 
• Com UMA Cache e 70 % de eficiência-----------------------------tempo de acesso de 35 ns (tempo médio) 
• Com DUAS Caches, L1 e L2 (e 70%-20%-10%)------------------tempo médio de 19,5% 
 
A sucessão de novas memórias incluidas no sistema, cada uma delas com capacidade, 
tempo e custo diferentes, mas interligadas, permitem que o sistema se comporte com 
uma única memória, com características médias próximas daquela memória ideal. 
A este conjunto de memórias chama-se: 
 
 
 
 
 
 
 
Memória 
Processador 
100 ns 
2 ns 
Cache L1 
5 ns 
Cache L2 
15 ns 
Agora, o TM será: 
TM = ((70 x 5) + (20 x 20) +(10 x 120))= (350 + 400 + 1200) / 100 = 1950 / 100 = 19,5 ns 
HIERARQUIA DE MEMÓRIAS 
 
 
 
 
 
 Conforme já se observou diversas vezes em diferentes assuntos referentes à memória, sabe-se que o 
processador realiza sua atividade (executar um ciclo de tarefas para cada instrução) por meio de sucessivos acessos 
para busca de instruções e dados (ciclo de leitura e de escrita). 
 Excluindo-se aqui os sinais de controle necessários para viabilizar as transferências, verifica-se que o acesso 
a um valor na MP se inicia pela colocação do endereço da posição de memória onde se localiza o valor desejado 
(dado ou instrução) no BE-Barramento de endereço; o controle da memória decodifica o endereço e localiza a 
posição para efetivar a transferência pelo BD-barramento de dados. 
 
Há dois métodos para se endereçar um valor em memórias de semicondutores, do tipo SRAM e DRAM: 
- Endereçamento Linear ou Direto – mais usado nas SRAM 
- Método de Matriz de Linha x Coluna – usado nas DRAM 
 
 
 
No endereçamento do tipo linear, todas as células de memória estão conectadas à saída do decodificador de 
endereços. Na entrada do decodificador chegam os fios do BE. 
 
Conforme se sabe de Circuitos Digitais-Portas Lógicas, um Decodificador é um dispositivo digital que possui X 
entradas e 2X saídas (supondo que é binário, como nos computadores, embora pudesse ser decimal e, nesse caso, 
teria X entradas e 10X saídas). 
 
 
 
 No exemplo ao lado há 4 células (4 ende- 
 reços) e, assim, há 2 bits por endereço, 
 Já que 22 = 4 
 
 
 
 
 
 
Este método é rápido, pois só gasta o tempo de decodificação e o acesso é direto a cada endereço; porém tem custo 
maior quando se tem muitas células (muitos fios de saída), acarretando maior dificuldade de colocação dos fios. 
MÉTODOS DE ENDEREÇAMENTO DE MEMÓRIAS RAM 
(SRAM e DRAM) 
OBS: Antes de iniciar a descrição do processo de endereçamento propriamente dito, deve-se considerar 
dois itens: 
1. Desde o início da computação e até os dias atuais, os processadores são projetados para acessar 
sempre um valor na MP e por isso colocam o endereço da MP no BE, mesmo que haja Caches no 
sistema. 
2. Nessa descrição vai-se desconsiderar a existência de Caches, o que não invalida as descrições 
usadas 
 
ENDEREÇAMENTO LINEAR ou DIRETO 
BE 
Decodificador 
de endereços 
MP 
00 
01 
10 
11 
Utilizado principalmente onde as capacidades não são elevadas, como a memória cache (tipo SRAM), cartões de 
memória e dispositivos móveis. 
 
Outro exemplo com memória de 16 posições (16 células ou endereços). Haverá necessidade de endereços com 4 bits 
de largura, já que 24 = 16. Na figura se observa a memória com as 16 células e um acesso na célula de endereço 610 
ou 01102. Quando o endereço é colocado no BE ele se transfere (um sinal de controle) para o decodificador. Este 
produzirá uma ÙNICA saída válida (pulso = 1) no fio 01102. Este pulso 1 habilitará a transferência de uma cópia do 
valor armazenado na célula para o buffer de saída e deste para o BD. 
 
 
 
Por outro lado, se a MP = 4M endereços, cada Endereço = 22 bits 
Seriam necessários 22 fios na entrada do decodificador e 4.194.304 fios na saída 
 
 
 
 
No endereçamento do tipo matriz linha/coluna (L/C), as células são logicamente organizadas em linhas e 
colunas (formato semelhante às células da planilha Excel). O acesso, neste caso, é realizado em duas etapas: uma 
para endereçar uma linha e outra para endereçar a coluna. O cruzamento de ambas é a célula desejada 
 
 
 
 
 
As 16 posições (células) se organizam em uma matriz com 4 linhas e 4 colunas ( 4 x 4 = 16). Cada 4 bits de 
endereço de célula é dividido em 2 bits para endereço de uma das 4 linhas e 2 para endereço de uma das 4 colunas.Neste exemplo cada endereço tem 4 bits, pois 24 = 16. 
 
Conforme observou-se anteriormente, se o endereçamento fosse linear, seria gasto apenas um tempo de 
decodificação e se consumiria 16 fios de saída do decodificador para a memória. 
Nesse tipo de endereçamento, pode-se observar na figura a seguir e na descrição acima que haverá um MPX 
(multiplexador) na saída do BE, que divide os 4 bits do endereço recebido do BE em 2 fios (2 bits) para o decodificador 
de linha (DL) e 2 fios (bits) para o decodificador de coluna (DC). 
 
 Então, a saída do DL terá 4 fios (22) um para cada uma das 4 linhas e a saída do DC também terá 4 fios, uma 
para cada endereço de coluna. E deste modo, o total de fios usado será 8 e não 16 como no método linear, uma 
economia de 50% de fios. E quanto maior for o tamanho da memória maior será a economia de fios. 
 
ENDEREÇAMENTO por MATRIZ LINHA X COLUNA 
CONSIDERANDO O EXEMPLO COM MEMÓRIA DE 16 POSIÇÕES (CÉLULAS) DO 
ENDEREÇAMENTO LINEAR 
 No entanto, o tempo de acesso irá aumentar, pois haverá necessidade de um tempo para decodificação -RAS 
e localização de uma fileira de colunas (DL) e, posteriormente, um tempo para decodificação e acesso de coluna-CAS. 
Ai sim, será detectada a célula desejada e transferido o valor para o buffer e BD. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observe os valores totais de fio de saída nos métodos Linear e de Matriz Linha x Coluna 
 
➢ Método Linear 
❖ Um tempo de acesso apenas 
❖ Quantidade de Fios: 
 Entrada do decodificador: 20 fios (BE) 
 Saída do decodificador: 220 = 1.049.576 fios 
 
 
➢ Método de Linha e Coluna 
❖ Tempo de acesso: RAS e depois CAS 
❖ Quantidade de fios: 
 BE = 20; MPX: entrada = 20 fios e Saída: 10 para Linha e 10 para Coluna 
Saída de cada decodificador (linha e coluna): 210 = 1024 
Total = 2048 fios 
 
Entre 2028 e 1.049.576 fios, verifica-se uma economia de mais de 99%, ou seja, 2048 é apenas 0, 19% do valor do 
método linear 
 
 
 
 
 
R
E
M 
Linha 00 
Linha 01 
Linha 10 
Linha 11 
M
P
X 
Coluna 00 Coluna 00 Coluna 00 Coluna 00 
DL 
DC 
CAS RAS WE OE 
Sinais de controle 
COMPARAÇÃO DOS MÉTODOS DE ENDEREÇAMENTO 
 
AS INFORMAÇÕES CONTIDAS NESTE MATERIAL DE APOIO AO ESTUDO FORAM EXTRAÍDAS DAS SEGUINTES 
PUBLICAÇÕES: 
MONTEIRO, M. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. 
STALLINGS, W. Arquitetura e organização de computadores. 8. ed. São Paulo: Pearson Prentice Hall, 2010. 
TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. Rio de Janeiro: LTC, 2007. 
Null, Linda - Computer Organization and Architecture 
PATTERSON, D e Hennesy, J. Computer Organization and Design, The Hardware/Software Interface. 
Textos na Internet

Continue navegando