Buscar

ARQUITETURA DE COMPUTADORES E MICROPROCESSADORES -unidade 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- -1
ARQUITETURA DE COMPUTADORES E 
MICROPROCESSADORES
UNIDADE 2 - COMO AS MEMÓRIAS SE 
CLASSIFICAM E COMO INTERAGEM COM O 
PROCESSADOR?
Autoria: Fernando Cortez Sica - Revisão técnica: Jackson Luis Schirigatti
- -2
Introdução
Olá, cursista! Seja bem-vindo à nossa segunda conversa sobre
Arquitetura de Computadores e Microprocessadores!
Falaremos sobre os sistemas de memórias e de barramentos. O
que vem a ser um sistema de memória? Seria a memória RAM (
; em português, memória de acessoRandom Access Memory
randômico) do computador?
Um computador apresenta vários níveis de memória – a
memória principal é apenas um de seus níveis. Além da RAM,
um computador tem, pelo menos, os registradores. A cache faz parte do sistema de memória e é essencial para a
máquina? Sim, a cache pertence à “hierarquia de memória” e possibilita uma maior performance de
processamento. A sua ausência não impede o correto o funcionamento do computador.
Como as memórias interagem com o processador? Este é outro assunto sobre o qual conversaremos: as
funcionalidades e características básicas dos barramentos.
Sendo assim, este capítulo abordará as características gerais dos sistemas de memória: hierarquia de memória,
memória principal (estruturação, organização, mapeamento e interligação entre módulos), memória ecache
barramentos.
Bons estudos!
2.1 Hierarquia de memória
O sistema de memória compreende os módulos para o armazenamento dos dados (os que estão sob manipulação
e os que ainda serão manipulados) e de informações de controle do sistema. Temos que fazer a distinção entre
os itens que estão sob manipulação e os que ainda serão manipulados, pois, além da memória principal, um HD
(armazenando programas, textos, fotos etc.) também faz parte da hierarquia de memória.
Antes de vermos o que vem a ser hierarquia de memória, conversaremos sobre algumas métricas.
2.1.1 Métricas associadas às memórias
Os atributos e as características de uma memória variam de acordo com a sua funcionalidade e com a sua
localização dentro do nó computacional. A sua hierarquia é definida pela localização de seus módulos em relação
às distâncias ao processador. Porém, independentemente do módulo de memória, podemos analisar o seu
comportamento. Para tanto, levantaremos informações básicas acerca de seu funcionamento: unidade de
transferência, método de acesso, desempenho e tecnologia de fabricação (STALLINGS, 2017).
A unidade de transferência se baseia na estrutura em que a informação é armazenada. Uma memória pode ser
projetada para que a transferência das informações ocorra na forma de palavras (cuja largura depende do
barramento) e na forma de blocos (que contém várias palavras). Nesse caso, deve existir uma serialização das
palavras do bloco. Os ciclos da transferência são sincronizados pelo sinal de . Porém, a efetiva gravação e aclock
recuperação de informações pode dar-se em apenas um ciclo, e a serialização ocorrerá entre a unidade de
transferência e o processador. Sendo assim, o dispositivo deve ter um ou unidade de transferência, como ébuffer
o caso das controladoras de HD ( ).hard disk
- -3
Outro aspecto a ser levado em consideração no projeto e na utilização da memória é o método de acesso. Essa
métrica se relaciona ao modo como o item é localizado e, consequentemente, à posição da memória em deve ser
gravado.
O método de acesso poderá ser classificado das seguintes maneiras.
• Acesso sequencial
Neste método não há possibilidade de posicionar a leitura ou a gravação em alguma posição
intermediária de imediato – ou seja, é necessário passar por todos os registros até chegar à posição
demandada. As fitas magnéticas são exemplos de dispositivos que utilizam esse método de acesso. O
tempo de acesso é calculado com base na posição do registro demandado.
• Acesso direto
Permite acessar um registro sem passar, sequencialmente, por todos os demais. Porém, um cabeçote de
leitura e de gravação ( – / ) deve ser posicionado sobre o registro, como ocorre nos HDs.R/W Read Write
Em função das posições do cabeçote e do registro a ser manipulado, o tempo de acesso se torna não
determinístico.
• Acesso aleatório
Neste tipo de acesso, que é encontrado na memória principal (memórias RAM), a posição demandada é
acessada diretamente. O tempo de acesso é constante, independentemente da posição do item a ser
manipulado.
• Memória associativa
Pode ser encontrada na memória (que veremos adiante). O item pode ser alocado em qualquercache
posição da memória. Cada linha conterá, além do valor propriamente dito, uma referência ao endereço
do item.
Há pouco, mencionamos a expressão “tempo de acesso”. O que é esse tempo? A medição desse tempo é suficiente
para medirmos a eficiência da memória? Não! Para o cálculo da eficiência, temos que saber o tempo de
transferência da informação e o tempo de ciclo de memória. O tempo de acesso consiste na diferença entre a
geração da demanda e o momento que a informação se encontra apta para ser transferida ou gravada. Por sua
vez, o tempo de transferência representa a diferença de tempo entre o início e o final da manipulação efetiva. Por
fim, o tempo de ciclo de memória se refere à diferença temporal mínima entre duas requisições, de modo que a
segunda não ocasione interferências ou danos às informações da requisição anterior.
•
•
•
•
Você o conhece?
Apesar de ser atribuída a John Fotheringham, a memória associativa utilizada em
algumas implementações de memória foi, de fato, inventada por volta de 1957,cache
por Fritz-Rudolf Güntsch. Para saber um pouco da memória virtual, você poderá
acessar o texto de Lauschner (2011), que está disponível no botão a seguir.
Acesse
http://memoriavirtualunisc.blogspot.com/p/tipos-de-memoria-virtual.html
- -4
A tecnologia de fabricação também impacta os tempos aplicáveis sobre o dispositivo de memória. Quando
falarmos dos tipos de memória, falaremos das suas tecnologias envolvidas.
2.1.2 Hierarquia de memória
Falamos, há pouco, que a hierarquia de memória é definida frente à sua localização e à sua funcionalidade. Sob o
ponto de vista funcional, podemos falar da sequência de provimentos de informações – por exemplo, um HD
provê informações para a memória principal. A figura “Exemplo de hierarquia de memória”, a seguir, ilustra uma
possível hierarquia de memória.
Figura 1 - Exemplo de hierarquia de memória
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: a figura mostra a hierarquia de memória. Temos os seguintes módulos dispostos verticalmente
(do topo para base): registradores, L1, L2, L3, memória principal e memória secundária (porcache cache cache
exemplo, o HD). Informa, também, as localizações: registradores e L1 – dentro do núcleo do processador; cache
 L2 – dentro do processador, porém fora do núcleo; e L3 e memória principal – localizados na placa-cache cache
mãe. A velocidade da memória aumenta de baixo para cima, e a capacidade de armazenamento aumenta de cima
para baixo.
Na figura “Exemplo de hierarquia de memória”, podemos observar a ordem de provimento das informações até
que cheguem ao processador. Podemos observar, também, que a capacidade de armazenamento decresce no
sentido ascendente; e que a velocidade de operação decresce à medida que descemos pela hierarquia.
Os módulos dentro da hierarquia de memória são interligados por barramentos (dentro e fora do processador).
Esses barramentos poderão ser dedicados ao atendimento à memória ou poderão ser compartilhados pelos
demais módulos que compõem o sistema computacional. Conversaremos sobre barramentos oportunamente.
- -5
Conversaremos, a seguir, sobre os itens da hierarquia de memória, exceto sobre os registradores que,
abordaremos quando falarmos da estruturação da CPU.
2.2 Memória principal
A memória principal visa a armazenar as informações manipuladas pelos processos. Em alguns sistemas, pode,
ainda, ser integrada à memória secundária, para que se tenha a chamada “memória virtual” (TANENBAUM,
2013).
Em relação ao armazenamento de código, em alguns sistemasembarcados baseados em microcontroladores, o
código a ser executado é armazenado em memória ou memória ROM ( ; em português,flash Read-Only Memory
memória apenas de leitura). Uma ROM é produzida com as informações gravadas. Porém, pode ser programável
(PROM; em português, ROM programável) programável e apagável com a utilização de luzProgrammable ROM –
ultravioleta (EPROM; ; em português PROM apagável); e programável e apagável com a utilizaçãoErasable PROM
de um pulso elétrico (EEPROM; – em português, eletricamente apagável). NessesElectrically-Erasable PROM
sistemas embarcados, os microcontroladores também contam com uma memória RAM para armazenar
informações manipuladas durante a execução de seu código (como os valores das variáveis, por exemplo).
2.2.1 Estruturação da memória principal
Para iniciarmos a nossa conversa sobre memória principal, falaremos da sua tecnologia de fabricação.
Geralmente, as memórias principais utilizam componentes baseados em DRAM (Dynamic Random Access
; em português, memória dinâmica de acesso randômico). A partir do nome, você já deve tê-la associadoMemory
ao método de acesso randômico, certo? Sim, a memória RAM é uma memória de acesso aleatório (randômico).
Você quer ver?
Em algumas situações, existe, também, a necessidade de interagir com módulos
externos de memória, como acontece nos casos de memória distribuída. Para saber
um pouco do assunto, veja o vídeo de Francesquini (2020), disponível no botão a
seguir.
Acesse
Vamos Praticar!
Sabe-se que todos os módulos do computador são sincronizados por pulsos de .clock
Faça uma pesquisa sobre as hierarquias de memórias presentes em, pelo menos, três
computadores distintos e tente estabelecer uma relação da frequência de trabalho das 
 L1 e L2; e da memória principal em relação ao do sistema e ao docaches clock clock
barramento.
https://www.youtube.com/watch?v=4LfxtZbN510&t=1329s
- -6
ao método de acesso randômico, certo? Sim, a memória RAM é uma memória de acesso aleatório (randômico).
Mas por que é dinâmica? Isso se deve ao fato de que a RAM é uma memória volátil (suas informações são
perdidas quando lhe falta alimentação elétrica)?
O termo “dinâmica” se deve ao fato de que as DRAM são baseadas em capacitores para armazenar informações.
Capacitores são componentes eletrônicos capazes de armazenar um campo elétrico, que, no entanto,
descarregam-se com o passar do tempo. Então, é necessária uma realimentação ( ) de sua própriarefresh
informação, para que os níveis de sua carga sejam restabelecidos. Durante a fase de , a memória ficarefresh
desabilitada para requisições externas. A estruturação básica para o armazenamento de 1 de informação ébit
ilustrada na figura “Curva de descarga de um capacitor (a) e a estruturação básica de uma célula da DRAM (b)”.
Figura 2 - Curva de descarga de um capacitor (a) e a estruturação básica de uma célula da DRAM (b)
Fonte: Fonte: Elaborada pelo autor, baseada em Stallings, 2017.
#PraCegoVer: a figura ilustra, em (a), uma curva exponencial decrescente, representando a descarga de um
capacitor. Em (b), há a célula básica de uma DRAM, constituída por um transistor do tipo JFET com o terminal “
” ligado à linha de endereçamento e pelos terminais “ ” e “ ” ligados à linha de dados e à “Terra”,gate source dreno
respectivamente.
Na figura “Curva de descarga de um capacitor (a) e a estruturação básica de uma célula da DRAM (b)”, temos, em
(a), a curva de descarga do capacitor na qual consta a necessidade de refresh da memória DRAM antes que a
carga do capacitor se torne insuficiente para poder representar a informação armazenada. Em (b), temos a
estruturação básica do circuito para armazenar um bit. A linha de endereço faz com que, quando for ativada,
polarize o “gate” do transistor de forma a permitir a passagem do sinal proveniente da linha de dados para
carregar o capacitor.
2.2.2 Organização da memória principal
A organização da memória se refere à forma como os (ou palavras) estarão dispostos na memória. Segundobits
Monteiro (2007), podemos associar a largura da memória (tamanho da palavra manipulada) e a quantidade de
linhas mapeadas à organização. A figura “Organização da memória (a) e uma possível interface de (b)”,hardware
- -7
linhas mapeadas à organização. A figura “Organização da memória (a) e uma possível interface de (b)”,hardware
a seguir, ilustra, em (a), a organização da memória frente às suas dimensões; e, em (b), uma possível interface
física de uma memória que manipula palavras de 16 com a utilização de 4 bits de endereçamento.bits
Figura 3 - Organização da memória (a) e uma possível interface de hardware (b)
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos, em (a), a presença de um vetor de 16 linhas – linhas numeradas em hexa, de 0 a
F, representando o endereço da memória. Cada célula do vetor tem uma largura de 16 numerados de 0 a 15,bits
da direita para a esquerda. Em (b), a possível interface da memória é representada por uma caixa para a qual são
direcionadas as linhas (pinagens): “Dados” (bidirecional – 16 ); “Endereço” (direcionado para a memória – 4 bits
); “ “ (direcionado para a memória – 1 ); e “R/W” (1 , direcionado para a memória – a letra “R”bits Enable bit bit
apresenta um traço sobre si).
Na figura “Organização da memória (a) e uma possível interface de (b)”, temos, em (a), a organizaçãohardware
de uma memória endereçada por 4 (totalizando 2 = 16 linhas). Como cada linha, cuja numeraçãobits 4
corresponde ao endereço de memória, apresenta uma largura de 16 (os são numerados da direita para abits bits
esquerda, começando por 0), temos, portanto, uma memória com a capacidade de armazenar 32 bytes (16 linhas 
 2 de largura = 32 ). Em (b), temos uma possível interface de da memória correspondente.x bytes bytes hardware
Observam-se os pinos dos dados (largura de 16 ), do endereço (largura de 4 ) e dos sinais de “ ”bits bits enable
- -8
Observam-se os pinos dos dados (largura de 16 ), do endereço (largura de 4 ) e dos sinais de “ ”bits bits enable
(habilitação) e a operação (R/W). O sinal de , quando é ativado, faz com que a memória realize a operaçãoenable
indicada pelo pino “R/W”. O traço acima da letra “R” indica que, caso esse pino valha 0, a operação
corresponderá à leitura ( ). Caso contrário, a operação será de escrita ( ).read write
Internamente, as células de memória poderão estar dispostas linearmente e na forma de matriz, conforme
mostra a figura “ Organização das células de memória na forma linear (a) e na forma matricial (b)”.
Figura 4 - Organização das células de memória na forma linear (a) e na forma matricial (b)
Fonte: Elaborada pelo autor, 2020.
Você quer ler?
Atualmente, existem várias tecnologias, vários modelos e vários encapsulamentos
relacionados às memórias. Para você saber um pouco disso e de outros conceitos,
acesse o texto de Alecrim 2009), disponível no botão a seguir.
Acesse
https://www.infowester.com/memoria.php
- -9
Figura 4 - Organização das células de memória na forma linear (a) e na forma matricial (b)
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos, em (a), um “decodificador” e 16 células de memória. O decodificador recebe uma
linha de 4 bits de endereço e gera 16 linhas. Cada célula de memória recebe uma das linhas de saída do
decodificador e, de forma paralela, uma linha de dados de 16 . Em (b), temos uma matriz 4 4 de células debits x
memória, um decodificador de linha e um decodificador de coluna. Os decodificadores recebem uma linha de 4 
 de endereço e geram 4 linhas. Do decodificador de linhas, cada saída é direcionada a todas as células debits
memória dentro de uma linha. O mesmo ocorre com o decodificador de coluna em relação às colunas da matriz
de células de memória, que também recebem a linha de dados com 16 .bits
Na figura “ Organização das células de memória na forma linear (a) e na forma matricial (b)”, temos a
organização da memória de forma linear (a) e na forma de matriz (b). Na forma linear, tem-se um decodificadorresponsável por converter os 4 de endereçamento em 16 linhas. Cada linha de saída representa o sinal de bits
 (habilitação) de cada célula da memória. Na forma matricial, acontece a diferenciação em relação a comoenable
o sinal de é gerado. Para tanto, são utilizados dois decodificadores: um para a linha e outro para a coluna.enable
Apenas uma linha e uma coluna serão ativadas, selecionando a célula de memória do cruzamento
correspondente.
2.2.3 Mapeamento da memória principal
O termo “mapeamento” nos conduz a como estruturar as informações dentro da memória. Um mapeamento
pode ser lógico (como o dos blocos da memória virtual – páginas, segmentos e segmentos paginados) e físico. Na
memória principal, é realizado um mapeamento físico, de modo que um conjunto de linhas forma um bloco.
Sendo assim, a memória principal é mapeada por blocos de tamanho fixo.
O agrupamento em blocos facilita a transferência das informações para a memória , que opera com blocoscache
de informações. Também facilita a transferência de várias instruções mediante apenas uma solicitação, para
melhor suprir o e a superescalaridade dos processadores atuais.pipeline
Em alguns equipamentos, como é o caso dos computadores pessoais (PC; Personal Computers), no sistema de
memória principal, são também mapeados os seguintes elementos.
O vetor de interrupção corresponde aos endereços das rotinas de tratamento das interrupções e é iniciado na
posição 0 da memória.
O buffer para a memória de vídeo é a interface para a controladora de vídeo.
Os dispositivos de I/O são as interfaces para os buffers dos dispositivos de I/O.
O BIOS (Basic Input-Output System; em português, sistema básico de entrada e saída) também apresenta a sua
região de código e dados mapeados na memória principal: trata-se da memória ROM/flash.
Podemos ver, em alguns casos, nos computadores, a presença vários módulos de memória. Como esses módulos
se interligam para receber os sinais de endereçamento, os dados e o controle? Conversaremos, agora, sobre esse
questionamento.
- -10
2.2.4 Interligação dos módulos de memória
A capacidade de armazenamento da memória pode ser conseguida pela utilização de vários módulos de
memória. Cada módulo ficará responsável por cobrir uma faixa de endereços, que será determinada pelos (MSB
; em português, bits mais significativos) da palavra de endereçamento.Most Significant Bits
A figura “Interligação entre módulos de memória e seu interfaceamento com a CPU” ilustra uma possível
interligação de quatro módulos de memória e suas interfaces para a CPU em um sistema de 8 debits
endereçamento.
Figura 5 - Interligação entre módulos de memória e seu interfaceamento com a CPU
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos a presença de quatro módulos de memória; de um decodificador; e de uma CPU,
que contém o MBR e o MAR. Uma linha bidirecional interliga o MBR a todos os módulos de memória. Uma linha
unidirecional (indicada como MAR[5:0]) liga o MAR aos módulos de memória. Do MAR, também parte uma linha
unidirecional (indicada como MAR[7:6]) em direção ao decodificador. Do decodificador, saem quatro linhas
unidirecionais (indicadas como “ ”), ligando os quatro módulos de memória. Da CPU, sai o sinalenable
unidirecional R/W para os módulos de memória.
Na figura “Interligação entre módulos de memória e seu interfaceamento com a CPU”, acima, temos a utilização
de quatro módulos de memória para totalizar as 256 linhas endereçáveis da memória (2 = 256). Para tanto, o8
endereço disponibilizado pelo MAR ( ) é quebrado em dois campos: os dois maisMemory Address Register bits
significativos (MSB), que fazem referência ao módulo a ser acessado, cujo de será gerado por meio debit enable
um decodificador); e os demais 6 (LSB; – em português, bits menos significativos), quebits Least Significant Bit
produzirão o endereço a ser acessado dentro do módulo, para que o MBR ( ) possa serMemory Buffer Register
manipulado. O sinal de R/W ( – em português, leitura/escrita) é atribuído a todos os módulos deRead/Write
memória, porém somente surtirá efeito naquele que estiver habilitado.
Ainda em relação à figura “Interligação entre módulos de memória e seu interfaceamento com a CPU”, as linhas
dispostas entre a CPU e os demais módulos representam o barramento – com seus sinais de controle, com seu
endereçamento e com seus dados. Entretanto, atualmente, os canais de um barramento podem ser
multiplexados – ou seja, na mesma linha, podem ser trafegados dados, endereços e controle. Conversaremos
sobre os barramentos oportunamente.
- -11
2.3 Memória cache
A memória representa outro nível de memória interna volátil da hierarquia de memória. Uma dascache
primeiras diferenças entre a e a memória principal consiste em sua tecnologia de fabricação. Enquanto acache
memória principal utiliza memórias derivadas da DRAM ou da SDRAM, a é implementada com SRAM (cache
; em português RAM Estática). As SRAM são construídas com componentes puramente discretos (daStatic RAM
eletrônica digital, como os “ ”).flip-flops
Apenas para fins informativos, atualmente, pode-se implementar sistemas computacionais pela síntese de (HDL
 – em português, linguagens de descrição de ). Sendo assim, umHardware Description Language hardware
módulo de memória SRAM – por exemplo, de 256 linhas e de largura de 8 –, pode ser codificado, em ,bits Verilog
conforme o código transcrito a seguir.
module Memoria(clock,addr,rw,en,data);
 clock;input
 [7:0] addr; input //address (endereço)
 rw; input //read ou write? (0=leitura ; 1=escrita)
 en; input //enable (habilitação)
 [7:0] data; inout //barramento de dados
 [7:0] Memory[255:0]; reg //a própria memória
reg [7:0] databuffer; //registrador interno auxiliar
assign data[7:0] = (~rw && en) ? 8'bz : databuffer[7:0];
always ( clock)@ negedge
begin
(rw && en) Memory[addr]<=data;if
end
always ( clock)@ posedge
begin
if(~rw && en)
begin
Vamos Praticar!
Sabemos que a memória principal é um elemento presente tanto nos
microprocessadores quanto nos microcontroladores. Faça uma pesquisa e escolha
dois microprocessadores e dois microcontroladores. Levante o mapeamento de
memória dos modelos escolhidos. Reflita sobre os resultados obtidos.
- -12
databuffer<=Memory[addr];
end
else
begin
databuffer[7:0]<=0;
end
end
endmodule
No código, observam-se os sinais básicos de um módulo de memória: “ ”, “ ” ( – em português,clock addr address
endereço), “ ” ( – l/em português, leitura/escrita (operação a ser realizada)), “ ” ( – emrw read/write en enable
português, habilitação) e “ ” (dados). Podemos observar, também, que “ “ é um canal bidirecional (data data inout
– / – em português, entrada/saída); e que a estrutura de memória propriamente dita é criada com ainput output
definição de um registrador bidimensional, referenciada pela linha “ ”.reg [7:0] Memory[255:0];
Voltando à memória cache, podemos mencionar que a sua eficiência está ligada à sua localização (mais próxima
ou dentro do núcleo do processador) e aos seus princípios de localidade (temporal e espacial). Veremos esses
princípios.
2.3.1 Princípios das localidades
A localidade temporal faz alusão ao fato de que, caso uma informação seja utilizada em certo momento, a chance
de que seja utilizada, novamente, em um momento próximo é alta. A localidade espacial se relaciona ao fato de
que, na manipulação de uma informação, a chance de serem utilizadas outras informações próximas a essa é alta.
Esses dois princípios têm, por consequência, a modelagem do mapeamento e das políticas de manipulação das
informações na memória cache.
Na memória cache, dois eventos podem ocorrer quando um item é demandado, pelo processador, da cache: hit
(êxito) (falta) e miss .
Um ocorre quando o item solicitado se encontra na . Nesse momento, o item é prontamente transferidohit cache
para o núcleo do processador (ou para a memória nível superior).
Você quer ler?
Como mencionamos, muito se trabalha, atualmente, com soluções de sistemas
computacionaisbaseadas em Verilog. Para conhecer essa HDL você poderá acessar a,
série de tutoriais (EMBARCADOS, 2015), disponibilizada no seguinte botão.
Acesse
https://www.embarcados.com.br/serie/tutorial-de-verilog/
- -13
O evento acontece quando o item demandado não se encontra na . Nesse caso, o item é solicitado aomiss cache
nível abaixo da hierarquia de memória – ou seja, caso o ocorra na cache L1 ( 1 – em português, nível 1),miss level
é realizada uma solicitação à L2. cache
Caso a L2 também não tenha tal item, a solicitação é feita à cache L3 (caso o sistema tenha uma) ou à memória
principal. Existe a possibilidade de a memória principal não ter esse item? Sim! Nesse caso, o sistema utiliza o
mecanismo de memória virtual, e, sendo assim, o item está armazenado em uma estrutura específica do HD.
2.3.2 Mapeamento e políticas de substituição de blocos
Mencionamos, anteriormente, que a memória principal realiza um mapeamento (ou acesso) aleatório (ou
randômico) e que a pode realizar um mapeamento associativo. Mas como isso ocorre? Responderemoscache
isso com a definição das três formas possíveis de mapeamento encontradas na memória : mapeamentocache
associativo, mapeamento direto e mapeamento utilizando conjunto-associativo.
No mapeamento associativo, o bloco vindo da memória principal pode ocupar qualquer linha da ,cache
permitindo uma maior possibilidade de “ ”. Esse tipo de mapeamento torna a mais dispendiosa, pois, emhit cache
cada linha, deve existir um comparador para que a identificação do bloco armazenado seja confrontada com o
número do bloco requerido na operação. Esse tipo de mapeamento, geralmente, pode ser encontrado na cache
L1. A figura “ Organização básica da quando utilizado o mapeamento associativo” ilustra o mapeamentocache
associativo na .cache
- -14
Figura 6 - Organização básica da cache quando é utilizado o mapeamento associativo
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura “Organização básica da quando é utilizado o mapeamento associativo, temos oscache
seguintes módulos: um decodificador; oito comparadores paralelos; um seletor de conteúdo; um seletor de
válidos; um ; e uma memória dividida em oito linhas e em três colunas (identificadas como , conteúdo eand tag
válido). Uma linha denominada “#bloco demandado” é direcionada a todos os comparadores paralelos, que
recebem, como outra entrada, o campo das linhas do módulo de memória que geram linhas para otag
decodificador. Por sua vez, o decodificador gera uma linha selecionada e “A tag encontra-se na cache?”. O seletor
de conteúdo recebe linha selecionada e o campo conteúdo do módulo de memória e gera informações
demandadas. O seletor de válidos recebe a linha selecionada e o campo válido do módulo de memória e gera “A
linha selecionada é válida?”. O módulo recebe “A linha selecionada é válida?” e “A encontra-se na cache?”and tag
e gera .HIT/MISS
Na figura “ Organização básica da quando é utilizado o mapeamento associativo”, é mostrada uma possívelcache
organização de uma memória baseada no mapeamento associativo. Os comparadores paralelos recebem ocache
conteúdo do campo da memória e a referência do bloco demandado para sinalizar, ao decodificador, atag
- -15
conteúdo do campo da memória e a referência do bloco demandado para sinalizar, ao decodificador, atag
igualdade ou não dos dois valores. O decodificador produzirá a identificação da linha na qual foi achada a
equivalência dos valores e um sinal da ocorrência ou não de igualdades.
A identificação da linha servirá para os seletores (de conteúdo e de validade) selecionarem as linhas
correspondentes de modo que se possa enviar o conteúdo demandado e o indicativo do evento ou . Casohit miss
haja o evento , haverá a requisição de busca do conteúdo para a memória do nível inferior.miss
Em relação à escrita na cache, devem ser executadas as seguintes etapas:
• caso haja espaço disponível na (alguma linha cujo campo “ ” valha 0, por exemplo), coloca-se cache válido
o novo bloco na linha, instanciando o campo “válido” em “1”;
• caso todos os espaços estejam ocupados, escolhe-se uma linha para ser sobrescrita. A escolha depende 
da métrica adotada.
LFU (least frequently used)
Em português, menos frequentemente usado) – escolhe-se a linha cuja frequência de utilização seja inferior à das
demais linhas. A linha deverá ter um campo a mais, indicando a frequência de uso;
LRU (least recently used)
Em português, menos recentemente usada) – a linha que deixará a cache é aquela cuja última utilização foi feita
mais antigamente. Cada linha deverá ter um campo indicando o momento de sua última demanda;
FIFO (first-in, first-out)
Em português, primeiro a entrar, primeiro a sair) – escolhe-se a linha que deu entrada mais antigamente,
independentemente de a linha correspondente ser ou não frequentemente utilizada e de ter sido utilizada mais
recentemente. Deve ser acrescentado um campo em cada linha, indicando o momento da entrada do bloco na
cache.
Existem outras métricas que poderão ser utilizadas para a troca de blocos, como a escolha aleatória e a
combinação de duas ou mais métricas (STALLINGS, 2017).
Teste seus conhecimentos
(Atividade não pontuada)
O que acontece quando um bloco é substituído na ? Caso tenha sido alterado, os novos valores de seucache
conteúdo serão perdidos? Para isso, temos as políticas de atualização da memória principal e write back write
. No , a atualização da memória principal ocorre apenas quando o bloco desocupar a cache.through write back
Para tanto, cada linha deverá ter um campo adicional, sinalizando se o bloco foi ou não modificado. Por sua vez,
no , a atualização se dá em todos os momentos de atualização do bloco na . Em sistemaswrite through cache
atuais, com vários núcleos, adota-se um mecanismo derivado do , para que se possa ter um nível dewrite through
coerência das informações manipuladas pelo sistema.
•
•
- -16
Voltando ao mapeamento, além da memória associativa, existem o mapeamento direto e o conjunto associativo.
No mapeamento direto, cada bloco tem apenas uma posição a ser armazenada – dada pelo resto da divisão da
referência do bloco pelo número de linhas da memória . De forma mais prática, o seleciona acache hardware
linha por meio dos N menos significativos (N é dado por log ). Como todos osbits
(2)
quantidade_linhas_da_cache
blocos que habitarão uma linha têm o mesmo valor em seus N bits menos significativos, esses blocos poderão ser
omitidos no campo , que armazena somente os demais mais significativos.tag bits
No mapeamento direto, cada bloco será associado a apenas uma linha da , não sendo necessários oscache
mecanismos para a troca de blocos.
A principal vantagem do mapeamento direto sobre a memória associativa é a redução de custos e de
complexidade do circuito. Porém, apresenta uma chance maior de . Para exemplificar isso, suponhamos que,miss
dentro de um laço de repetição, são utilizadas duas variáveis cujas referências de blocos são as mesmas (contêm
os mesmos N menos significativos). Nesse caso, haverá sempre o quando esses blocos forembits miss
demandados.
Para atenuar os problemas decorridos da baixa performance do mapeamento direto e o alto custo (e a alta
complexidade) da memória associativa, tem-se um terceiro mapeamento: o conjunto associativo. Nesse
mapeamento, temos a fusão dos outros dois mapeamentos, conforme ilustra a figura “Estruturação de um
conjunto-associativo composto por quatro replicações”.
Caso
Com o avanço dos processadores com dois ou mais núcleos ( – em português, multinúcleos)multicores
que mantêm a sua própria L1, houve a necessidade de refletir sobre a coerência das informaçõescache
mantidas nos níveis inferiores de memória. Caso fosse prontamente adotado o mecanismo write
, haveria a incidência de um alto tráfego ocasionado pelas atualizações dos blocos nasthrough
memórias inferiores. Também ocorreria uma incoerência de valores se o mesmo item fosse
manipulado em dois núcleos distintos, visto que cada L1 poderia ter valoresdiferentes para umcache
mesmo item.
Diante dessa situação, foram implementados mecanismos para a coerência de , como o MOESI (cache
) e o MESI ( ) – esse últimoModified Owner Exclusive Shared Invalid Modified Exclusive Shared Invalid
servido é baseado nos processadores Intel Core i7 para a implementação do MESIF (Modified
). Para saber um pouco sobre o MESI, leia o texto de Soares (2016),Exclusive Shared Invalid Forward
que está disponível neste link: .http://www.inf.ufpr.br/roberto/tgRafaelS.pdf
http://www.inf.ufpr.br/roberto/tgRafaelS.pdf
- -17
Figura 7 - Estruturação de um conjunto-associativo composto por quatro replicações
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: a figura em questão é composta por uma matriz de oito linhas. Cada linha é dividida em quatro
campos iguais, contendo as seguintes células: , conteúdo, válido.tag
Na figura “Estruturação de um conjunto-associativo composto por quatro replicações”, temos um esboço de
estruturação de uma memória cache do tipo four-way set-associative (conjunto associativo de quatro vias).
Nesse tipo de estruturação, para achar a linha a ser manipulada, aplica-se o método de mapeamento direto. Após
a linha ter sido selecionada, aplica-se a memória associativa. Mapeamentos do tipo conjunto-associativo são,
geralmente, encontrados nas caches de níveis 2 e 3.
2.4 Barramentos
Para intercambiar processador, memória e dispositivos de I/O, deve haver uma estrutura de comunicação sobre
a qual trafegam os dados e as informações de endereçamento e de controle. Essa estrutura é denominada
barramento (ou, em inglês, ). Esses três tipos de sinais (dados, endereçamento e controle) podem serbus
trafegados em vias distintas ou multiplexadas em apenas um canal de comunicação, como é o caso dos
barramentos que adotam o padrão PCI ( – em português, interconexão dePeripheral Component Interconnect
componentes periféricos).
Em relação aos sinais de controle, podemos destacar os seguintes itens.
A operação identifica a operação a ser realizada (R/W – Read/Write – em português, leitura/ escrita).
Vamos Praticar!
É sabido que processadores da mesma família podem ser distintos em relação às suas
organizações. Faça uma pesquisa envolvendo processadores da mesma categoria e
pertencentes à mesma família, mas que sejam de fabricantes distintos (por exemplo,
Intel e AMD). Foque nos aspectos relativos à memória , identificando ascache
diferenças quanto aos mapeamentos utilizados nos processadores escolhidos.
- -18
A operação identifica a operação a ser realizada (R/W – Read/Write – em português, leitura/ escrita).
A pode ser necessária, se a CPU e os dispositivos de I/O podemrequisição/concessão de uso do barramento
ro requisitarem. Para tanto, devem ser enviados sinais para solicitar o uso do barramento, que enviará sua
resposta à solicitação.
Os ACK ( / – em português, reconhecimento/não reconhecimento)/NACK acknowledgment not acknowledgment
são sinais que representam uma resposta positiva ou negativa diante de uma solicitação.
Em relação aos sinais de solicitação/concessão de uso e, também, de ACK/NACK, imaginemos uma sequência
básica de negociação de uso do barramento, conforme ilustra a figura “Processo de handshake para o
estabelecimento de conexão no barramento”. Essa sequência é equivalente ao estabelecimento de conexão em
uma rede de computadores.
Figura 8 - Processo de handshake para o estabelecimento de conexão no barramento
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos duas linhas verticais, representando o cliente e o árbitro do barramento. Do “
”, parte a linha requisição de uso para o árbitro de barramento, cuja linha de resposta é indicada como cliente
. Após receber a resposta, o cliente envia a linha ACK ao árbitro do barramento.concessão de uso
Na figura “Processo de handshake para o estabelecimento de conexão no barramento”, temos o diagrama
temporal de troca de sinais para o estabelecimento de conexão para o uso do barramento. As fases descritas na
figura integram o mecanismo denominado handshake. A comunicação apenas pode ser iniciada se o handshake
for bem-sucedido – ou seja, se ambas as partes estiverem aptas a realizar a comunicação.
Quanto à negociação, podemos mencionar que o gerenciamento dos barramentos pode ocorrer ou de forma
centralizada (por meio de um árbitro de barramento) ou de forma descentralizada. Na abordagem
descentralizada, todos os nós conectados são envolvidos nas negociações das comunicações. Como exemplos de
coordenação descentralizada, temos o baseado em e o .tokens daisy-chain
- -19
Teste seus conhecimentos
(Atividade não pontuada)
Na utilização de , há a circulação, entre os nós conectados no barramento, de uma mensagem de .tokens token
Somente o detentor do poderá usufruir do barramento. Após essa utilização, o nó enviará o ao nótoken token
vizinho. No , todos os nós estão conectados na forma “ponto-a-ponto”, e o intercâmbio de informaçõesdaisy chain
se dá por meio do envio dos dados de forma sequencial, passando por todos os nós até chegar ao destino.
Além do sistema de coordenação (com um árbitro ou descentralizada), podemos atribuir, aos barramentos,
outros parâmetros (STALLINGS, 2017):
• largura do barramento – tamanho da palavra intercambiada pelo barramento (por exemplo, 32 ou 64 
);bits
• topologia – a sua organização espacial (por exemplo, barramento, anel, estrela);
• throughput – vazão ou largura de banda, ou seja, a quantidade de transmitida por unidade de tempo bits
(por exemplo, bps – por segundo);bits
• frequência de operação – frequência operacional do barramento (por exemplo, 2 GHz (dois giga hertz)).
Mas, caso tenhamos um único barramento atendendo à CPU, à memória e aos dispositivos de I/O, isso afetaria a
performance da máquina? Sim, afetaria, principalmente no que tange à relação CPU-memória. A memória tem
que suprir, rapidamente, o processador com os dados demandados, e um barramento compartilhado, também,
com os dispositivos de I/O atrapalharia essa comunicação. A solução para esse caso é a implantação de vários
barramentos, de modo que cada barramento atendesse a um nível funcional. A ideia de termos barramentos em
níveis pode ser observada na figura “Dissociação do barramento de forma hierárquica”.
Você quer ler?
Barramentos não somente realizam a interconexão de módulos internos ao
processador. Em sistemas embarcados, existem padrões de barramentos para
interligar circuitos distintos. Dentre os mais comuns, podemos destacar I C, I C, SPI e 2 3
. Para saber mais, leia o texto de Prado (2018), que está disponível no botãoWishbone
a seguir.
Acesse
•
•
•
•
https://sergioprado.org/i3c-o-futuro-substituto-dos-barramentos-i2c-e-spi/
- -20
Figura 9 - Dissociação do barramento de forma hierárquica
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na figura, temos, verticalmente, de cima para baixo e interligados, CPU, ponte norte e ponte sul. A
ponte norte se conecta, do lado esquerdo, aos módulos PCI e e AGP; e, do lado direito, com o módulo RAM. Da
ponte sul, saem, abaixo, conexões para os módulos USB, PCI, BIO, I/O e para os demais módulos (representados
por reticências).
Na figura “Dissociação do barramento de forma hierárquica”, temos a representação de uma divisão hierárquica
do barramento na ponte norte e na ponte sul. A ponte norte conecta os elementos que requerem uma maior
velocidade de conexão, como o PCI e (PCI Express), a AGP ( – em português, portaAccelerated Graphic Port
gráfica acelerada), a memória principal e o próprio processador. Por sua vez, a ponte sul interliga os demais
dispositivos – ditos mais lentos –, como portas USB, PCI, BIOS e outros dispositivos de I/O.
Essa hierarquia com ponte norte e com ponte sul, nos computadores atuais, é denominada . Os chipset chipsets
são formados pelos diversos controladores de barramentos que constituem o computador. Inclusive, algumas
funcionalidades da ponte norte estão sendo integradas ao próprio processador.
- -21
Conclusão
Nesta segunda conversa, falamos dos aspectosrelacionados ao armazenamento de informações e das estruturas
de interconexão entre as memórias e o processador. Nesse escopo, conversamos sobre os níveis de memória e
sobre as suas estruturas, organizações e mapeamentos. Dentre os níveis de memória, demos uma atenção
especial à memória , devido à sua importância no contexto da performance.cache
Com esses pontos abordados, esperamos que tenhamos contribuído para a ampliação de sua base de
conhecimento acerca da arquitetura de computadores, para que você possa aplicá-los em seu dia a dia estudantil,
profissional e pessoal.
Nesta unidade, você teve a oportunidade de:
• identificar as particularidades da hierarquia de memória dos computadores;
• reconhecer os mapeamentos da ;cache
• analisar e descrever as funcionalidades dos barramentos;
• analisar os pontos que impactam na performance de processamento de um sistema computacional.
Referências
ALECRIM, E. Memórias RAM e ROM. , [ ], 8 jun. 2009.Infowester S.l.
Disponível em . Acessohttps://www.infowester.com/memoria.php
em: 6 nov. 2020.
EMBARCADOS. . Embarcados, [S.l.], [S.d.].Tutorial de Verilog
Disponível em: https://www.embarcados.com.br/serie/tutorial-de-
. Acesso em: 6 nov. 2020.verilog/
Vamos Praticar!
Atualmente, existem vários para computadores pessoais. Faça uma pesquisa,chipsets
escolhendo trÊs modelos distintos de , e veja as diferenças entre eles. Reflitachipset
sobre suas funcionalidades e sobre como o processador principal é integrado ao 
 do computador.chipset
•
•
•
•
https://www.infowester.com/memoria.php
https://www.embarcados.com.br/serie/tutorial-de-verilog/
https://www.embarcados.com.br/serie/tutorial-de-verilog/
- -22
FRANCESQUINI, E. . 2020.Arquiteturas com Memória Distribuída
(33m49s). Disponível em: https://www.youtube.com/watch?
. Acesso em: 6 nov. 2020.v=4LfxtZbN510&t=1329s
LAUSCHNER, A. B. . Memória virtual. , [ ],et al Memória Virtual S.l.
2020. Disponível em: . Acesso em: 6http://memoriavirtualunisc.blogspot.com/p/tipos-de-memoria-virtual.html
nov. 2020.
MONTEIRO, M. A. . 5. ed. Rio de Janeiro: LTC, 2007.Introdução à organização de computadores
PRADO, S. I3C, o futuro substituto dos barramentos I2C e SPI? , [ .], 5 jan. 2018. Disponível em: Sérgio Prado S.l
. Acesso em: 6 nov.https://sergioprado.org/i3c-o-futuro-substituto-dos-barramentos-i2c-e-spi/
SOARES, R. M. . 2016. MonografiaImplementação de um Multiprocessador Simétrico com Caches Coerentes
de Conclusão de Curso (Graduação em Ciência da Computação – Universidade Federal do Parará, Curitiba.
Disponível em . Acesso em: 6 nov.http://www.inf.ufpr.br/roberto/tgRafaelS.pdf
STALLINGS, W. . 10. ed. São Paulo: Pearson, 2017.Arquitetura e organização de computadores
TANENBAUM, A. S. . 6. ed. São Paulo: Pearson Prentice Hall, 2013.Organização estruturada de computadores
TUTORIAL de Verilog. , [S.l.], 2020. Disponível em: Embarcados https://www.embarcados.com.br/serie/tutorial-
. Acesso em: 6 nov. 2020.de-verilog/
https://www.youtube.com/watch?v=4LfxtZbN510&t=1329s
https://www.youtube.com/watch?v=4LfxtZbN510&t=1329s
http://memoriavirtualunisc.blogspot.com/p/tipos-de-memoria-virtual.html
https://sergioprado.org/i3c-o-futuro-substituto-dos-barramentos-i2c-e-spi/
http://www.inf.ufpr.br/roberto/tgRafaelS.pdf
https://plataforma.bvirtual.com.br/Leitor/Publicacao/3825
https://www.embarcados.com.br/serie/tutorial-de-verilog/
https://www.embarcados.com.br/serie/tutorial-de-verilog/
	Introdução
	2.1 Hierarquia de memória
	2.1.1 Métricas associadas às memórias
	Acesso sequencial
	Acesso direto
	Acesso aleatório
	Memória associativa
	Você o conhece?
	2.1.2 Hierarquia de memória
	Você quer ver?
	Vamos Praticar!
	2.2 Memória principal
	2.2.1 Estruturação da memória principal
	2.2.2 Organização da memória principal
	Você quer ler?
	2.2.3 Mapeamento da memória principal
	2.2.4 Interligação dos módulos de memória
	Vamos Praticar!
	2.3 Memória cache
	Você quer ler?
	2.3.1 Princípios das localidades
	2.3.2 Mapeamento e políticas de substituição de blocos
	Teste seus conhecimentos
	Caso
	Vamos Praticar!
	2.4 Barramentos
	Teste seus conhecimentos
	Você quer ler?
	Vamos Praticar!
	Conclusão
	Referências

Continue navegando