Baixe o app para aproveitar ainda mais
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
Compartilhar