·
Engenharia Elétrica ·
Circuitos Elétricos 2
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
13
Exercícios - Capítulo 10 2022-1
Circuitos Elétricos 2
UNESP
23
Memória Rom - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
18
Memórias Rams - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
4
Exercícios - Circuitos Elétricos 2 2022-1
Circuitos Elétricos 2
UNESP
7
Expansão de Memórias Ram Ou Rom - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
2
Lista 1 - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
4
Exercícios - Circuitos Elétricos 2 2022 1
Circuitos Elétricos 2
UNESP
20
Dynamic Ram - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
41
Aritmética Digital Operações e Circuitos - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
27
Circuitos Sequenciais Máquinas Síncronas Ou de Estados Finitos - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
Texto de pré-visualização
1 Faculdade de Engenharia de Ilha Solteira - Departamento de Engenharia Elétrica Circuitos Digitais II - Profa. Suely Cunha Amaro Mantovani - 2o sem/2021 CIRCUITOS DIGITAIS II Capítulo 2 Memórias - Terminologias 1. Introdução 2. Hierarquia de Memória 3. Terminologia de Memórias 4. Estrutura da Memória Principal (MP) – célula e endereço 5. Comunicação entre MP e a Unidade de Processamento Central (CPU) 6. Princípio de Operação da Memória 7. Classificação das Memórias Referências 1. INTRODUÇÃO _________________________________________________ A possibilidade de armazenamento de informações e dados digitais, por curto ou longo período, constitui-se na maior vantagem dos sistemas digitais sobre os sistemas analógicos. Em um computador digital, e com o mínimo de intervenção de um operador, a memória principal interna armazena instruções que irão comandar o computador. O primeiro tipo de dispositivo de memória estudado foi o flip-flop e o agrupamento de FFs formam os registradores, que podem ser usados para armazenar informação que é transferida para outras localizações. Os registradores são elementos de memória de alta velocidade e usados extensivamente em operações internas de um computador digital, onde as informações digitais estão sendo continuamente movidas de uma localização para a outra. Com o avanço da tecnologia de Circuitos Integrados (CIs) do tipo LSI (Large Scale Integration) e VLSI (Very Large Scale Integration), obteve-se grande números de FFs em arranjos, em um único chip e em vários formatos de arrays (conjuntos) de memória. 2 As memórias de núcleos magnéticos, Figura 1, foram às primeiras tecnologias utilizadas em memórias (memórias dos primeiros computadores, rudimentares, volumosas e de pequena capacidade). Na época em que foram desenvolvidas não havia transistores nem CIs , mas o estudo de alguns tipos pode ser útil para lembrar alguns princípios da física. A memória é composta de núcleos magnéticos que armazenam 1bit cada, conectados a um grid. Figura1 - Memórias de núcleo magnético Fonte: Eletricidade (2020). As memórias modernas são compostas por circuitos semicondutores, com novas tecnologias sendo criadas a cada ano, permitindo que grandes quantidades de células de memória sejam encapsuladas em pequenas pastilhas. Os dados digitais podem ser armazenados também como cargas em capacitores. Muitas memórias usam este princípio para obter alta densidade de armazenamento com baixo nível de consumo de energia. As memórias podem ser ditas semicondutoras quando são em chip (circuitos integrados de silício) e não semicondutoras ou de massa (termo antigo) que identificam as memórias que guardam grandes quantidades de informação. Memórias semicondutoras Bipolares, MOS (Metal Oxide Semiconductor) ou CMOS (Complementary MOS) são uma das mais rápidas e seus custos tem baixado com o aperfeiçoamento da tecnologia LSI e VLSI. As memórias semicondutoras são usadas como memória principal (main memory) de um computador onde são necessárias operações rápidas. A memória principal do computador mostrada na Figura 2 é chamada memória de trabalho que está em constante comunicação com a Central Processing Unit (CPU), à medida que as instruções de programas estão sendo executadas. Um programa e qualquer dado usado pelo programa permanecem na memória principal, enquanto o computador está executando aquele programa. As memórias DRAMs constituem a memória principal. 3 Figura 2 – Diagrama Bloco para uma CPU e memórias Central Process (CPU) Arithmetic Unit Control Unit Main Memory Mass Memory or assistant Fonte: Tocci, Widmer, Moss (2019) Memória de massa ou memória auxiliar tem a capacidade de armazenar grandes quantidades de dados, externa a memória principal, tendo como características: Operam em menor velocidade que a memória principal; Armazenam programas e dados que não são frequentemente usados pela CPU - a informação é transferida pela CPU quando o computador necessita. Os dispositivos de memória auxiliar mais comuns eram discos magnéticos, fitas magnéticas, Compact Disk- CD, atualmente as pen drives. 4 2. HIERARQUIA DE MEMÓRIA ___________________________________________________________________________ Para certas atividades é fundamental que a transferência da informação seja a mais rápida possível (menor “tempo de acesso”), enquanto a quantidade de bits (“capacidade”) a ser manipulada pode ser pequena. Em outras situações, o volume de dados gravado pode ser mais importante que o “tempo de acesso”. Outra característica relevante em algumas situações é a permanência da informação após o desligamento do computador. Em todos os casos, o custo da memória é inversamente proporcional à “capacidade” e ao “tempo de acesso”. Assim sendo, verifica-se a necessidade de diferentes tipos de memória, para o correto funcionamento de um computador, ou seja, um Subsistema de Memória- conjunto de diferentes memórias ou também chamado Hierarquia de Memória (NOBREGA FILHO, 2018). Uma hierarquia para os dispositivos de armazenamento em computadores em função de características como, capacidade de armazenamento, tempo de acesso, custo, localização e volatilidade, é mostrado na Tabela 1. Tabela 1- Hierarquia para os dispositivos de armazenamento Tipo Capacidade Velocidade Custo Localização Volatilidade Registrador Bytes muito alta muito alto CPU Volátil Memória Cache Kbytes alta alto CPU/placa Volátil Memória Principal Mbytes média médio Placa Volátil Memória Auxiliar Gbytes baixa baixo Externa Não Volátil A CPU vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, quanto mais próximo da CPU, maior velocidade, maior custo, porém menor capacidade de armazenamento, dados atualizados nas Figuras 3 (a) e (b). Figura 3 - a) Dados atualizados para os dispositivos de armazenamento. b) Hierarquia das memórias com relação a CPU. 5 (a) (b) Fonte: Hierarquia de Memória (2018) 6 2.1 Registradores Registradores são dispositivos de armazenamento temporário, localizados na CPU, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Os conteúdos dos registradores internos podem ser acessados pela CPU em menos de 10 ns (versus 70 ns ou mais, para a memória principal). Usualmente há poucos (de 8 a 64) registradores internos. Devido a sua tecnologia de construção e por estar localizado na própria pastilha ("chip") da CPU, é muito caro. São VOLÁTEIS - dependem de estar energizados para manter armazenado seu conteúdo. O conceito de registrador surgiu da necessidade da CPU de armazenar temporariamente dados intermediários durante um processamento (na ULA) - por exemplo, quando um dado resultado de operação precisa ser armazenado, até que o resultado de uma busca da memória esteja disponível para uma nova operação. Máquinas RISC (Reduced Instruction Set Computer ) são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados o mais próximo possível da CPU, desta maneira o programa opera sempre sobre dados que estão em registradores. 2.2 Memórias Cache Memórias Cache são pequenas quantidades de memórias estáticas de alto desempenho, localizada entre a CPU e a MP e que funciona como um espelho de parte da MP, tendo por finalidade aumentar o desempenho do processador realizando uma busca antecipada na memória RAM, e são VOLÁTEIS. Foram desenvolvidas pela necessidade e o dinamismo da tecnologia de construção de CPUs que proporcionou um aumento de velocidade em seu processamento, o que não aconteceu com as memórias, que não tiveram a mesma evolução de velocidade (o aperfeiçoamento das memórias se deu na capacidade). Gigahertz (MHz) é a atual medida de velocidade de processamento da CPU - ciclo de clock- em milhões por segundo. Os tempos de acesso às memórias pela CPU eram insatisfatórios, de forma que ao buscar um dado na memória era necessário esperar muitos ciclos até que o dado retornasse ("wait states"), configurando um gargalo ("bottleneck") ao desempenho do sistema. A arquitetura da memória cache é diferente da arquitetura da Memória Principal (MP) e o acesso a ela é muitas vezes mais rápido, por ex: 5 ns contra 70ns. 7 Memória cache são blocos de memória SRAM (Static RAM) que se comunicam diretamente com a CPU em alta velocidade. O circuito controlador lê os dados da memória DRAM e os copia para a memória cache. Quando há necessidade para a CPU de Instruções e dados estes são transferidos de memórias internas mais baratas e mais lentas para a memória cache. No entanto, o custo de fabricação da memória cache é maior que o da MP. Desta forma, não é econômico construir um computador somente com tecnologia de memória cache. Esse tipo de memória possui alta velocidade e tem por função armazenar dados e instruções que a CPU poderá precisar. Possibilita que o processador trabalhe com toda a capacidade e tenha o mínimo de tempo ocioso possível. Cada fabricante utiliza a memória cache de uma forma diferente, e também pode variar de acordo com a microarquitetura usada no chip. No entanto, o padrão é que, quando a CPU precisa buscar a sua primeira instrução, irá primeiro até a memória DRAM, visto que a memória cache estará vazia. Apesar disso, em vez de trazer apenas a solicitação feita pela CPU, a unidade de busca traz um bloco inteiro de instruções que, por sua vez, é armazenado na memória cache. Assim, se o processador for continuar a executar o referido programa, as instruções subsequentes estarão já armazenadas na memória cache. Então, a unidade de busca não precisará ir até a memória DRAM para obtê-las. Nem sempre a unidade de busca armazena as informações corretas na memória cache. No entanto, a taxa de acerto é bem alta, cerca de 80% a 99% das vezes. Com isso, é possível afirmar que quase todo o acesso à memória DRAM é feito por meio da memória cache. Níveis de memória cache A memória cache é dividida em alguns níveis, conhecidos como L1, L2 e L3 (L - Level, em inglês) - proximidade da memória cache das unidades de execução do processador. A cache foi dividida em níveis novamente pela necessidade do aumento na velocidade dos dispositivos, em particular nos processadores. Inicialmente, uma vez que a demanda de velocidade à memória era grande, era necessário caches grandes com velocidades altíssimas de transferência e baixas latências. Construir memórias caches com essas características, era caro, por isso, foram construídas caches em níveis que diferem na relação tamanho x desempenho ( HIERARQUIA DE MEMÓRIA, 2018). 8 Resumindo: A cache é uma memória estática de alto desempenho utilizada para intermediar a comunicação com o processador. Na maioria das vezes o processador não acessa o conteúdo da DRAM, mas sim uma cópia que fica na cache. É utilizada desde o 386DX, e a partir dos 486, todos os processadores passaram a conter uma quantidade de memória estática, conhecido como L1 ou interna. A cache fora do processador é conhecida como L2 ou externa. Hoje, existem processadores com mais níveis de cache. Uma ressalva é que os processadores a partir do Pentium II possuem a L2 dentro do processador, não fazendo mais sentido as denominações interno e externo. 2.3 Memória Principal Memória Principal (MP) é a parte do computador onde programas e dados são armazenados para processamento. A informação permanece na memória principal apenas enquanto for necessária para uso pela CPU, portanto, a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. Quem controla a utilização da memória principal é o Sistema Operacional. As memórias DRAMs formam a memória principal. Função da memória principal - armazenar os programas e dados temporariamente, enquanto estão sendo processados. 2.4 Memórias Auxiliares As memórias auxiliares resolvem problemas de armazenamento de grandes quantidades de informações, visto que a capacidade da MP é limitada pelo seu relativamente alto custo, enquanto as memórias auxiliares têm maior capacidade e menor custo (o custo por bit armazenado é muito menor). Outra vantagem importante são NÃO VOLÁTEIS - não dependem de estar energizadas para manter gravado seu conteúdo. Entre os principais dispositivos de memória auxiliar têm-se: discos rígidos (HDs), CD-ROM, DVD, pen drives, drives de disquete, unidades de fita, etc. 9 3. TERMINOLOGIA DE MEMÓRIAS ______________________________________________________________________ Termos importantes e usuais que são usados para referir-se ao trabalho com memórias. CÉLULA - de memória é um dispositivo ou um circuito elétrico usado para armazenar um único bit (0 ou 1). Ex: flip-flop; um capacitor carregado; uma única trilha em uma fita magnética ou disco. BIT - contração de BInary DigiT e representa um dos valores possíveis em binário, 0 ou 1. PALAVRA - de memória é um grupo de bits (células) em uma memória que representa instruções ou dados. Ex: registrador de 8 FFs. Em geral, o termo "célula" é usado para definir a unidade de armazenamento e o termo "palavra" para definir a unidade de transferência e processamento, significando na prática quantos bits o computador movimenta e processa em cada operação. BYTE - grupo de 8 bits . Em um byte, há 28 = 256 combinações, portanto pode-se representar 256 diferentes valores, desde 00000000 até 11111111. Um byte pode ser dividido em duas unidades de 4 bits que são denominadas de nibbles. Observações: O tamanho da palavra pode ser expresso em bytes ou em bits. Ex: palavra de 8 bits > palavra de 1 byte; palavra de 16 bits > palavra de 2 bytes. Em informática, a expressão Kilo (abreviada por K) equivale a 210, ou seja, 1024. Desta forma, 1 Kbits (1Kb) equivale a 210 bits, ou seja, 1024 bits e 1 kilobyte (1 KB) equivale a 210 bytes, ou seja 1024 bytes ou ainda 8.192 bits. Da mesma forma, a expressão Mega equivale a 220, ou seja, 210 x 210 = 1.048.576. Desta forma, 1 megabit (1 Mb) equivale a 220 bits, ou seja 1024 Kb ou 1.048.576 bits e 1 megabyte equivale a 220 bytes, ou seja 1.048.576 bytes. 10 Assim, 1 Giga, equivale a 230 ou 1024 megas, 1 Tera, equivale a 240 ou 1.024 gigas, 1 Peta, equivale a 250 ou 1.024 teras. Em ciências da computação, como 1K se refere a 1024 , entra em conflito com a definição do prefixo "quilo" do Sistema Internacional, Tabela 2 . Tabela 2- Múltiplos do byte –ciência da computação Múltiplos de bytes Prefixo binário (IEC*) Prefixo do SI Nome Símbolo Múltiplo Nome Símbolo Múltiplo byte B 20 byte B 100 quilobyte KB 210 Kilobyte KB 103 megabyte MB 220 megabyte MB 106 gigabyte GB 230 gigabyte GB 109 terabyte TB 240 terabyte TB 1012 petabyte PB 250 petabyte PB 1015 exabyte EB 260 exabyte EB 1018 zettabyte ZB 270 zettabyte ZB 1021 yottabyte YB 280 yottabyte YB 1024 *Comissão Eletrotécnica Internacional –IEC (International Electrotechnical Commission) CAPACIDADE DA MEMÓRIA - é a quantidade de informação que pode ser armazenada em uma memória. A medida básica é o byte, embora também possam ser usadas outras unidades como células (memória principal ou cache), setores (discos) e bits (registradores) São utilizados os multiplicadores K (kilobyte), M (megabyte), G (gigabyte) ou T (terabyte). Ex: Registradores: 100 b CACHE L1: 16 KB CACHE L2: 512 KB RAM: 256 MB HD: 80 GB, 1 Tera Portanto, pode-se escrever que a capacidade em bits é igual ao produto do nº de células pelo total de bits por célula, dado por, 11 M N T sendo, T = capacidade da memória em bits , M = nº de bits de cada célula (palavra) e N = nº de endereços, N=2x , sendo x = nº de bits do endereço (ou linhas de endereços) logo, N x log2 ( b N N a a b log log log ) Em geral, x está entre 16 e 32, enquanto que M pode ser 1, 4, 8, 16 ou 32. A cada posição é associado um endereço, iniciando pelo endereço 0 (zero) e indo até N-1( último endereço na memória). Portanto, são necessários x bits para decodificar os 2x endereços existentes. Suponha uma memória que armazena : 4Kx20 ou 4096 pal de 20bits = 81.920 bits; 2Mx8 = 2.097.152 x 8 ou 2M por 1byte/pal; Uma memória de 1M posições de 8 bits tem uma capacidade de 8 Mbits. LARGURA DA MEMÓRIA (MEMORY WIDTH)-número de bits de cada posição da memória. Exemplo: a pastilha de 1M posições de 8 bits cada, tem uma largura de 8 bits, ou seja, de um byte. DENSIDADE (CAPACIDADE) - a densidade de uma memória mede a quantidade de armazenamento da informação ou bits no mesmo espaço. ENDEREÇO (Adress) - é o número que identifica a localização de uma palavra. O endereço é um número binário embora representa-se por octal, hexadecimal ou decimal. TEMPO DE ACESSO - tempo de acesso (ou tempo de acesso para leitura) é o tempo decorrido entre um pedido de leitura de uma posição de memória e o instante em que a informação requerida está disponível no barramento para utilização pela CPU. Ou seja, o tempo que a memória consome para colocar o conteúdo de uma célula no barramento de dados. O tempo de acesso de uma memória depende da tecnologia da memória, as memórias DRAMs (Dynamic RAM - as mais comuns hoje) têm tempo de acesso na faixa de 60 ns. Ex: Registradores: 0.1 ns CACHE L1: 1 ns CACHE L2: 2 a 5 ns SRAM: 10 a 20 ns 12 HD: 10 ms O tempo de acesso para diferentes endereços em memórias eletrônicas (RAM, ROM) é igual. No caso de discos e fitas, que são dispositivos eletromecânicos, o tempo de acesso depende da localização do dado em relação ao último acesso. Após um acesso, algumas memórias podem impedir por um pequeno intervalo de tempo, o uso do sistema de memória para um novo acesso. Este intervalo de tempo somado ao tempo de acesso é chamado Ciclo de Memória (Memory System´s Cycle Time), que é o período de tempo decorrido entre duas operações sucessivas de acesso. Se a capacidade da memória for excedida em um microcomputador, o programa será executado a partir de uma área de disco chamada “área de troca” ou “swap”. A velocidade do processamento será, portanto muito prejudicada por causa dos diferentes “tempos de acesso” (entre 1.000.000 e 10.000.000 vezes mais lento ). TEMPO DE CICLO (ou ciclo de memória) - é o tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo de "refresh"). No caso das SRAM (Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem ciclos periódicos de "refresh", o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAMs têm ciclo de memória maior que o tempo de acesso. RAM (RANDOM ACCESS MEMORY ) - memória de acesso aleatório, o tempo de acesso é independente do endereço a ser acessado (ou a posição de memória a ser escrita ou lida). A maioria das memórias semicondutoras é do tipo RAM. SEQUENTIAL ACESS MEMORY (SAM)- o acesso de tempo não é constante e varia dependendo da localização de endereço ( o acesso de tempo produzido pode ser muito maior que aquele produzido pela RAM) ex: fita magnética (magnetic Tape Backup). READ/WRITE MEMORY (RWM) qualquer memória que pode ser lida ou escrita. 13 READ-ONLY MEMORY (ROM) - memórias semicondutoras que podem ser escritas (programadas) somente uma vez. Depois desta operação esta memória somente pode ser lida. São do tipo NÃO VOLÁTIL (conservam os dados mesmo quando não estão energizadas). MEMÓRIA VOLÁTIL- qualquer tipo de memória que necessite de energia elétrica para reter a informação armazenada. Se a energia for retirada, toda a informação armazenada na memória será perdida. Muitas memórias a semicondutor são VOLÁTEIS, enquanto todas as memórias magnéticas são NÃO VOLÁTEIS. 14 4. ESTRUTURA DA MEMÓRIA PRINCIPAL – CÉLULA E ENDEREÇO ______________________________________________________________________ A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. E o computador precisa ter um mecanismo de como encontrar essa informação, quando for necessário. A memória principal é organizada em células que é considerada a unidade de armazenamento do computador. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador têm o mesmo tamanho, isto é, o mesmo número de bits. Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas sequencialmente, uma a uma, de 0 a N-1, chamado o endereço da célula. Observações da informática: Unidade de Transferência é a quantidade de bits transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são frequentemente diferentes. Aqui neste contexto uma célula não significa o mesmo que uma palavra (uma célula não necessariamente contém uma palavra). Palavra é a unidade de processamento da CPU/MP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. No entanto, em geral não é assim que acontece e os computadores comerciais não seguem um padrão único para a organização da CPU e MP. Computadores comerciais (tais como, os baseados nos antigos processadores Intel 486) podem ter o tamanho da palavra definido em 32 bits, porém sua estrutura de memória tem células de 16 bits. A estrutura da memória principal é um problema do projeto de hardware. O tamanho mais comum de célula era 8 bits (1 byte), atualmente são comuns células contendo vários bytes. A palavra interna à CPU, por sua vez, geralmente tem tamanho distinto das demais. Uma CPU projetada para trabalhar com n bits é dita ser um processador de n bits. Existem 15 processadores de 1 a 64 bits (ou até mais). Nos computadores pessoais, tipo IBM/PC, compatíveis são empregados processadores de 16, 32, 64 e 128 bits, conforme o modelo. O conceito mais usado pela IBM define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (CPU e MP). Pressupõe-se aqui, que todos os elementos do núcleo do computador (o que inclui o tamanho da ULA, do acumulador e registradores gerais da CPU e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da ULA e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma, encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse caso referindo-se exclusivamente à capacidade de manipulação da CPU de 64 bits (isto é, sua ULA e acumulador têm 64 bits). Esta definição é imprecisa (às vezes, enganosa) e pode levar a erros de avaliação da capacidade de processamento de um computador. Exemplos: Os microprocessadores Intel 8086 (16 bits, sendo todos seus elementos de 16 bits); depois dele, 8088, usado nos primeiros IBM/PC e XT (idêntico sob quase todos os aspectos aos 8086) e também dito de 16 bits, sendo que ULA e registradores são de 16 bits, mas o barramento de dados é de apenas 8 bits, por economia e razões de compatibilidade com toda uma geração de placas de 8 bits. Destaque-se que nesse caso a transferência de dados pelo barramento de dados se faz em duas etapas, um byte de cada vez, e em consequência nos 8088 elas consomem o dobro dos ciclos de barramento (que o 8086), o que torna suas operações de transferência de dados mais lentas que as dos 8086 (TECMUNDO, 2013). Deve-se analisar caso a caso, porque a simples menção ao tamanho da palavra não permite definir de forma conclusiva sobre a arquitetura do computador. A palavra em um computador pode ter 1 byte (p.ex, 8080), 2 bytes (p.ex. 80286), 4 bytes (p.ex. 486, Pentium, e etc.) 16 5. COMUNICAÇÃO ENTRE MP e CPU ______________________________________________________________________ Na Figura 6 apresentam-se os barramentos e o esquema da Comunicação da MP/CPU. Figura 6 - Esquemático de funcionamento da comunicação da MP/CPU Fonte: Tocci, Widmer, Moss (2019) 5.1 Barramentos Os diversos componentes dos computadores se comunicam por meio de barramentos. Barramento são um conjunto de condutores elétricos que interligam os diversos componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits. Para um dado ser transportado de um componente a outro, é preciso emitir os sinais de controle necessários para o componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Como um dado é composto por bits (geralmente um ou mais bytes) o barramento deverá ter tantas linhas condutoras quanto forem os bits a serem transportados de cada vez. Em alguns computadores (usando uma abordagem que visa a redução de custos), os dados podem ser transportados usando mais de um ciclo do barramento. Assim, se quisermos transferir um byte - por ex: 01001010 - da CPU para a MP, os circuitos de controle se 17 encarregarão de colocar o byte 01001010 no barramento, (por convenção, os bits são sempre ordenados da direita para a esquerda) e de informar à memória para ler o dado no barramento. 5.1.1. Tipos de Barramentos Barramento de endereços (adress bus)– unidirecional que transfere as saídas de endereço da CPU para os CIs de memória para selecionar uma localização na memória; Barramento de dados – bidirecional, são transportados dados entre a CPU e os CIs de memória (envia dados - write - ou lê dados - read - da MP). Barramento de controle – bidirecional, transfere sinais de controle: CPU −> CIs de memória (controle R/W ); CPU −> MP (controle R/W ); MP −>CPU (controle wait). Barramento de dados Em um barramento de dados somente um dispositivo (memória, periféricos) pode operar por vez, Figura 7. Os buffers tri-state são utilizados para isolar os dispositivos que não estão acessando o barramento. Para um microprocessador, apenas um dispositivo é habilitado de cada vez, para que a contenção de barramento seja evitada - somente um dispositivo pode ter conexão direta com o barramento além do processador central, que normalmente é o host. Tradicionalmente o circuito de decodificação de endereços determina qual dispositivo irá conectar ao barramento. Todos os outros dispositivos são desconectados de modo a não afetar as operações ativas no barramento. Os buffers tri-state são os dispositivos que são utilizados para isolar o barramento, ou seja, mantem o circuito em um estado de alta impedância. O nome tri-state advém de existir o terceiro estado, o de alta impedância, além dos tradicionais „0‟ e „1‟ lógicos. Dispositivos que podem ser conectados ao barramento além dos microprocessadores, são memórias, conversores Digitais /Analógicos e os Analógicos/Digitais, codificadores, multiplexadores e etc. 18 Figura 7- Barramento de Dados da CPU Fonte: Tocci, Widmer, Moss (2019) Contenção de Barramento Ocorre quando dois ou mais sinais conectados na mesma linha de barramento ficam ativos e competem uns com os outros. A contenção de barramento, Figura 8, é evitada se os dispositivos tiverem saídas tri-state ou forem conectados ao barramento por meio de buffers tri-state. Figura 8- Ilustrando a contenção de barramento de dados para um dispositivo CMOS 19 Fonte: Tocci, Widmer, Moss (2011) Saída Lógica Tristate (Three-State) É o terceiro tipo de circuito de saída usado nas famílias TTL e CMOS. Vantagem do seu uso: Operação em alta velocidade; Permite que várias saídas sejam conectadas juntas compartilhando um fio comum; Permite três possíveis estados de saída: alto, baixo e alta impedância (Hi-Z). Na Figura 9 têm-se três condições de saídas tristate para um inversor. Figura 9- Três condições de saídas tristate para um inversor. Fonte: Tocci, Widmer, Moss (2019) Buffer tristate é um circuito usado para controlar a passagem de um sinal lógico da entrada para a saída . Tem-se na Figura 10, buffers tristate (não inversores) TTL, 74125 e 74126, e suas tabelas verdades. Figura 10- Buffers tristate não inversores. a) 74125. b)74126. 20 Fonte: Tocci, Widmer, Moss (2019) 5.2 Registradores A comunicação entre MP e CPU usa dois registradores da CPU: Registrador de Endereços de Memória - REM (Memory Adress Register – MAR); Registrador de Dados da Memória - RDM ( Memory Buffer Register –MBR). obs: x = no de bits do barramento de endereços; em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Endereços de Memória - REM. M = nº de bits contidos em uma célula; M em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Dados da Memória - RDM. 21 6. PRINCÍPIO DE OPERAÇÃO DA MEMÓRIA ____________________________________________________________ OPERAÇÃO DE LEITURA/ESCRITA Sempre que a CPU escrever ou ler um dado em uma determinada posição de memória, os seguintes passos terão de ser realizados. Escrever na Memória - significa escrever uma informação em uma célula da memória (armazenar uma informação). Esta operação de armazenamento da informação na memória consiste na transferência de um conjunto de bits da CPU para a memória e é destrutiva (isto significa que qualquer informação que estiver gravada naquela célula será sobregravada). P1- A CPU armazena no REM o endereço de memória da informação a ser gravada; P2 - A CPU coloca no RDM a informação e disponibiliza nas linhas do barramento de dados; P3 - A CPU comanda uma operação de escrita (ativa as linhas de sinal de controle); P4 - Os CIs de memória decodificam o endereço binário determinando a posição selecionada para a operação de armazenamento; P5- A informação armazenada no RDM é transferida para a posição de memória cujo endereço está contido no REM. Ler da Memória (ou busca na memória- fetch operation)-significa requisitar à memória o conteúdo de uma determinada célula. Esta operação de recuperação da informação armazenada na memória consiste na transferência de um conjunto de bits (cópia) da memória para a CPU e é não destrutiva, isto é, o conteúdo da célula não é alterado. P1- A CPU armazena no REM o endereço onde a informação requerida está armazenada; P2 - A CPU ativa as linhas de sinal de controle para a operação de leitura; P3 - Os CIs de memória decodificam o endereço binário determinando a posição selecionada para a operação de leitura; P4- O conteúdo da posição identificada pelo endereço contido no REM é transferido para o RDM, ficando disponível para a CPU. 22 7. CLASSIFICAÇÃO DAS MEMÓRIAS ____________________________________________________________ R/W - Read and Write (memória de leitura e escrita), comumente chamada de RAM. Esta memória permite operações de escrita e leitura pelo usuário e pelos programas. Seu tempo de acesso é da ordem de 70ns e independe do endereço acessado. É construída com tecnologia de semicondutores (bipolar, MOS, CMOS), pode ser estática (SRAM) ou dinâmica (DRAM) e é volátil. A MP é construída com memória R/W. ROM- Read Only Memory ou memória apenas de leitura. Esta memória conceitualmente permite apenas a leitura e uma vez gravada não pode mais ser alterada. Tem acesso aleatório (isto é, é também uma RAM), mas não é volátil. É utilizada geralmente por fabricantes para gravar programas que não podem ser alterados pelo usuário ou apagar acidentalmente (tal como por ex. a BIOS - Basic Input Output System e microprogramas de memórias de controle). Quando se liga uma máquina, é da ROM que vem os programas que são carregados e processados no "Boot"3(na inicialização o hardware aponta automaticamente para o primeiro endereço da ROM). Desta forma, parte do espaço de endereçamento da MP é ocupada por ROM (atualmente Flash). A ROM (máscara) é mais lenta e de menor custo que a R/W, porém o processo produtivo depende de ser programada por máscara ("mask programmed") em fábrica e devido ao alto custo da máscara somente se torna econômica em grandes quantidades. PROM - Programmable Read Only Memory ou memória apenas de leitura, programável. Esta memória é uma ROM programável (em condições e com hardware adequados, chamados queimadores de PROM), geralmente comprada "virgem" (sem nada gravado). Uma vez programada (em fábrica ou não), não pode mais ser alterada. Os níveis de tensão para a programação não são compatíveis com os níveis de tensão da operação. ________________________________________________________________________ 3Boot (ou bootstrap loader) é o processo de inicialização e carga dos programas básicos de um computador, automática, sem intervenção externa. Este termo vem de uma analogia com um processo (impossível) que seria uma pessoa se levantar puxando-se pelos cordões de suas próprias botas. 23 EPROM - Erasable Programmable Read Only Memory ou memória apenas de leitura, programável (com queimadores de PROM) e apagável (à base de raios ultravioletas). Esta memória é uma PROM apagável. Tem utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada. EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memória apenas de leitura, programável e eletronicamente alterável. Também chamada EAROM (Electrically Alterable ROM). Esta memória é uma EPROM apagável por processo eletrônico, sob controle da CPU, com equipamento e programas adequados. É mais cara, pode ser utilizada em dispositivos aos quais se deseja permitir a alteração, via modem, possibilitando a carga de novas versões de programas à distância. (p.ex., a reconfiguração de teclado ou de modem, programação de um terminal, etc)( TECMUNDO, 2013). FLASH – EEPROM – não volátil, com apagamento e escrita feitos eletricamente no circuito, porém com densidade maior e mais baixo custo que as EEPROMS. Referências Bibliográficas ELETRICIDADE.COM. Disponível em: http://eletercidade.blogspot.com/2012/10/como-funciona-memoria.html. Acesso em: 07 set. 2020. HIERARQUIA DE MEMÓRIA. Disponível em: https://pt.wikipedia.org/wiki/Hierarquia_da_mem%C3%B3ria. Acesso em: 15 mar.2018. NOBREGA FILHO, R. G. Hierarquia de memórias Disponível em: http://www.di.ufpb.br/raimundo/Hierarquia/Hierarquia.html. Acesso em: 16 mar. 2018. TECMUNDO. Disponível em: http://www.tecmundo.com.br/curiosidade/2845-o-que-sao- flops-.htm#ixzz2cN9JtucN. Acesso em: 03 mar. 2013. TOCCI, R.J.; WIDMER, N.S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações. 12ª edição, Editora Pearson Prentice Hall, 1056p, 2019.
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
13
Exercícios - Capítulo 10 2022-1
Circuitos Elétricos 2
UNESP
23
Memória Rom - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
18
Memórias Rams - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
4
Exercícios - Circuitos Elétricos 2 2022-1
Circuitos Elétricos 2
UNESP
7
Expansão de Memórias Ram Ou Rom - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
2
Lista 1 - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
4
Exercícios - Circuitos Elétricos 2 2022 1
Circuitos Elétricos 2
UNESP
20
Dynamic Ram - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
41
Aritmética Digital Operações e Circuitos - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
27
Circuitos Sequenciais Máquinas Síncronas Ou de Estados Finitos - Circuitos Elétricos 2 2021-2
Circuitos Elétricos 2
UNESP
Texto de pré-visualização
1 Faculdade de Engenharia de Ilha Solteira - Departamento de Engenharia Elétrica Circuitos Digitais II - Profa. Suely Cunha Amaro Mantovani - 2o sem/2021 CIRCUITOS DIGITAIS II Capítulo 2 Memórias - Terminologias 1. Introdução 2. Hierarquia de Memória 3. Terminologia de Memórias 4. Estrutura da Memória Principal (MP) – célula e endereço 5. Comunicação entre MP e a Unidade de Processamento Central (CPU) 6. Princípio de Operação da Memória 7. Classificação das Memórias Referências 1. INTRODUÇÃO _________________________________________________ A possibilidade de armazenamento de informações e dados digitais, por curto ou longo período, constitui-se na maior vantagem dos sistemas digitais sobre os sistemas analógicos. Em um computador digital, e com o mínimo de intervenção de um operador, a memória principal interna armazena instruções que irão comandar o computador. O primeiro tipo de dispositivo de memória estudado foi o flip-flop e o agrupamento de FFs formam os registradores, que podem ser usados para armazenar informação que é transferida para outras localizações. Os registradores são elementos de memória de alta velocidade e usados extensivamente em operações internas de um computador digital, onde as informações digitais estão sendo continuamente movidas de uma localização para a outra. Com o avanço da tecnologia de Circuitos Integrados (CIs) do tipo LSI (Large Scale Integration) e VLSI (Very Large Scale Integration), obteve-se grande números de FFs em arranjos, em um único chip e em vários formatos de arrays (conjuntos) de memória. 2 As memórias de núcleos magnéticos, Figura 1, foram às primeiras tecnologias utilizadas em memórias (memórias dos primeiros computadores, rudimentares, volumosas e de pequena capacidade). Na época em que foram desenvolvidas não havia transistores nem CIs , mas o estudo de alguns tipos pode ser útil para lembrar alguns princípios da física. A memória é composta de núcleos magnéticos que armazenam 1bit cada, conectados a um grid. Figura1 - Memórias de núcleo magnético Fonte: Eletricidade (2020). As memórias modernas são compostas por circuitos semicondutores, com novas tecnologias sendo criadas a cada ano, permitindo que grandes quantidades de células de memória sejam encapsuladas em pequenas pastilhas. Os dados digitais podem ser armazenados também como cargas em capacitores. Muitas memórias usam este princípio para obter alta densidade de armazenamento com baixo nível de consumo de energia. As memórias podem ser ditas semicondutoras quando são em chip (circuitos integrados de silício) e não semicondutoras ou de massa (termo antigo) que identificam as memórias que guardam grandes quantidades de informação. Memórias semicondutoras Bipolares, MOS (Metal Oxide Semiconductor) ou CMOS (Complementary MOS) são uma das mais rápidas e seus custos tem baixado com o aperfeiçoamento da tecnologia LSI e VLSI. As memórias semicondutoras são usadas como memória principal (main memory) de um computador onde são necessárias operações rápidas. A memória principal do computador mostrada na Figura 2 é chamada memória de trabalho que está em constante comunicação com a Central Processing Unit (CPU), à medida que as instruções de programas estão sendo executadas. Um programa e qualquer dado usado pelo programa permanecem na memória principal, enquanto o computador está executando aquele programa. As memórias DRAMs constituem a memória principal. 3 Figura 2 – Diagrama Bloco para uma CPU e memórias Central Process (CPU) Arithmetic Unit Control Unit Main Memory Mass Memory or assistant Fonte: Tocci, Widmer, Moss (2019) Memória de massa ou memória auxiliar tem a capacidade de armazenar grandes quantidades de dados, externa a memória principal, tendo como características: Operam em menor velocidade que a memória principal; Armazenam programas e dados que não são frequentemente usados pela CPU - a informação é transferida pela CPU quando o computador necessita. Os dispositivos de memória auxiliar mais comuns eram discos magnéticos, fitas magnéticas, Compact Disk- CD, atualmente as pen drives. 4 2. HIERARQUIA DE MEMÓRIA ___________________________________________________________________________ Para certas atividades é fundamental que a transferência da informação seja a mais rápida possível (menor “tempo de acesso”), enquanto a quantidade de bits (“capacidade”) a ser manipulada pode ser pequena. Em outras situações, o volume de dados gravado pode ser mais importante que o “tempo de acesso”. Outra característica relevante em algumas situações é a permanência da informação após o desligamento do computador. Em todos os casos, o custo da memória é inversamente proporcional à “capacidade” e ao “tempo de acesso”. Assim sendo, verifica-se a necessidade de diferentes tipos de memória, para o correto funcionamento de um computador, ou seja, um Subsistema de Memória- conjunto de diferentes memórias ou também chamado Hierarquia de Memória (NOBREGA FILHO, 2018). Uma hierarquia para os dispositivos de armazenamento em computadores em função de características como, capacidade de armazenamento, tempo de acesso, custo, localização e volatilidade, é mostrado na Tabela 1. Tabela 1- Hierarquia para os dispositivos de armazenamento Tipo Capacidade Velocidade Custo Localização Volatilidade Registrador Bytes muito alta muito alto CPU Volátil Memória Cache Kbytes alta alto CPU/placa Volátil Memória Principal Mbytes média médio Placa Volátil Memória Auxiliar Gbytes baixa baixo Externa Não Volátil A CPU vê nesta ordem e acessa primeiro a que está mais próxima. Subindo na hierarquia, quanto mais próximo da CPU, maior velocidade, maior custo, porém menor capacidade de armazenamento, dados atualizados nas Figuras 3 (a) e (b). Figura 3 - a) Dados atualizados para os dispositivos de armazenamento. b) Hierarquia das memórias com relação a CPU. 5 (a) (b) Fonte: Hierarquia de Memória (2018) 6 2.1 Registradores Registradores são dispositivos de armazenamento temporário, localizados na CPU, extremamente rápidos, com capacidade para apenas um dado (uma palavra). Os conteúdos dos registradores internos podem ser acessados pela CPU em menos de 10 ns (versus 70 ns ou mais, para a memória principal). Usualmente há poucos (de 8 a 64) registradores internos. Devido a sua tecnologia de construção e por estar localizado na própria pastilha ("chip") da CPU, é muito caro. São VOLÁTEIS - dependem de estar energizados para manter armazenado seu conteúdo. O conceito de registrador surgiu da necessidade da CPU de armazenar temporariamente dados intermediários durante um processamento (na ULA) - por exemplo, quando um dado resultado de operação precisa ser armazenado, até que o resultado de uma busca da memória esteja disponível para uma nova operação. Máquinas RISC (Reduced Instruction Set Computer ) são geralmente construídas com um grande conjunto de registradores, de forma a trazer os dados o mais próximo possível da CPU, desta maneira o programa opera sempre sobre dados que estão em registradores. 2.2 Memórias Cache Memórias Cache são pequenas quantidades de memórias estáticas de alto desempenho, localizada entre a CPU e a MP e que funciona como um espelho de parte da MP, tendo por finalidade aumentar o desempenho do processador realizando uma busca antecipada na memória RAM, e são VOLÁTEIS. Foram desenvolvidas pela necessidade e o dinamismo da tecnologia de construção de CPUs que proporcionou um aumento de velocidade em seu processamento, o que não aconteceu com as memórias, que não tiveram a mesma evolução de velocidade (o aperfeiçoamento das memórias se deu na capacidade). Gigahertz (MHz) é a atual medida de velocidade de processamento da CPU - ciclo de clock- em milhões por segundo. Os tempos de acesso às memórias pela CPU eram insatisfatórios, de forma que ao buscar um dado na memória era necessário esperar muitos ciclos até que o dado retornasse ("wait states"), configurando um gargalo ("bottleneck") ao desempenho do sistema. A arquitetura da memória cache é diferente da arquitetura da Memória Principal (MP) e o acesso a ela é muitas vezes mais rápido, por ex: 5 ns contra 70ns. 7 Memória cache são blocos de memória SRAM (Static RAM) que se comunicam diretamente com a CPU em alta velocidade. O circuito controlador lê os dados da memória DRAM e os copia para a memória cache. Quando há necessidade para a CPU de Instruções e dados estes são transferidos de memórias internas mais baratas e mais lentas para a memória cache. No entanto, o custo de fabricação da memória cache é maior que o da MP. Desta forma, não é econômico construir um computador somente com tecnologia de memória cache. Esse tipo de memória possui alta velocidade e tem por função armazenar dados e instruções que a CPU poderá precisar. Possibilita que o processador trabalhe com toda a capacidade e tenha o mínimo de tempo ocioso possível. Cada fabricante utiliza a memória cache de uma forma diferente, e também pode variar de acordo com a microarquitetura usada no chip. No entanto, o padrão é que, quando a CPU precisa buscar a sua primeira instrução, irá primeiro até a memória DRAM, visto que a memória cache estará vazia. Apesar disso, em vez de trazer apenas a solicitação feita pela CPU, a unidade de busca traz um bloco inteiro de instruções que, por sua vez, é armazenado na memória cache. Assim, se o processador for continuar a executar o referido programa, as instruções subsequentes estarão já armazenadas na memória cache. Então, a unidade de busca não precisará ir até a memória DRAM para obtê-las. Nem sempre a unidade de busca armazena as informações corretas na memória cache. No entanto, a taxa de acerto é bem alta, cerca de 80% a 99% das vezes. Com isso, é possível afirmar que quase todo o acesso à memória DRAM é feito por meio da memória cache. Níveis de memória cache A memória cache é dividida em alguns níveis, conhecidos como L1, L2 e L3 (L - Level, em inglês) - proximidade da memória cache das unidades de execução do processador. A cache foi dividida em níveis novamente pela necessidade do aumento na velocidade dos dispositivos, em particular nos processadores. Inicialmente, uma vez que a demanda de velocidade à memória era grande, era necessário caches grandes com velocidades altíssimas de transferência e baixas latências. Construir memórias caches com essas características, era caro, por isso, foram construídas caches em níveis que diferem na relação tamanho x desempenho ( HIERARQUIA DE MEMÓRIA, 2018). 8 Resumindo: A cache é uma memória estática de alto desempenho utilizada para intermediar a comunicação com o processador. Na maioria das vezes o processador não acessa o conteúdo da DRAM, mas sim uma cópia que fica na cache. É utilizada desde o 386DX, e a partir dos 486, todos os processadores passaram a conter uma quantidade de memória estática, conhecido como L1 ou interna. A cache fora do processador é conhecida como L2 ou externa. Hoje, existem processadores com mais níveis de cache. Uma ressalva é que os processadores a partir do Pentium II possuem a L2 dentro do processador, não fazendo mais sentido as denominações interno e externo. 2.3 Memória Principal Memória Principal (MP) é a parte do computador onde programas e dados são armazenados para processamento. A informação permanece na memória principal apenas enquanto for necessária para uso pela CPU, portanto, a área de MP ocupada pela informação pode ser liberada para ser posteriormente sobregravada por outra informação. Quem controla a utilização da memória principal é o Sistema Operacional. As memórias DRAMs formam a memória principal. Função da memória principal - armazenar os programas e dados temporariamente, enquanto estão sendo processados. 2.4 Memórias Auxiliares As memórias auxiliares resolvem problemas de armazenamento de grandes quantidades de informações, visto que a capacidade da MP é limitada pelo seu relativamente alto custo, enquanto as memórias auxiliares têm maior capacidade e menor custo (o custo por bit armazenado é muito menor). Outra vantagem importante são NÃO VOLÁTEIS - não dependem de estar energizadas para manter gravado seu conteúdo. Entre os principais dispositivos de memória auxiliar têm-se: discos rígidos (HDs), CD-ROM, DVD, pen drives, drives de disquete, unidades de fita, etc. 9 3. TERMINOLOGIA DE MEMÓRIAS ______________________________________________________________________ Termos importantes e usuais que são usados para referir-se ao trabalho com memórias. CÉLULA - de memória é um dispositivo ou um circuito elétrico usado para armazenar um único bit (0 ou 1). Ex: flip-flop; um capacitor carregado; uma única trilha em uma fita magnética ou disco. BIT - contração de BInary DigiT e representa um dos valores possíveis em binário, 0 ou 1. PALAVRA - de memória é um grupo de bits (células) em uma memória que representa instruções ou dados. Ex: registrador de 8 FFs. Em geral, o termo "célula" é usado para definir a unidade de armazenamento e o termo "palavra" para definir a unidade de transferência e processamento, significando na prática quantos bits o computador movimenta e processa em cada operação. BYTE - grupo de 8 bits . Em um byte, há 28 = 256 combinações, portanto pode-se representar 256 diferentes valores, desde 00000000 até 11111111. Um byte pode ser dividido em duas unidades de 4 bits que são denominadas de nibbles. Observações: O tamanho da palavra pode ser expresso em bytes ou em bits. Ex: palavra de 8 bits > palavra de 1 byte; palavra de 16 bits > palavra de 2 bytes. Em informática, a expressão Kilo (abreviada por K) equivale a 210, ou seja, 1024. Desta forma, 1 Kbits (1Kb) equivale a 210 bits, ou seja, 1024 bits e 1 kilobyte (1 KB) equivale a 210 bytes, ou seja 1024 bytes ou ainda 8.192 bits. Da mesma forma, a expressão Mega equivale a 220, ou seja, 210 x 210 = 1.048.576. Desta forma, 1 megabit (1 Mb) equivale a 220 bits, ou seja 1024 Kb ou 1.048.576 bits e 1 megabyte equivale a 220 bytes, ou seja 1.048.576 bytes. 10 Assim, 1 Giga, equivale a 230 ou 1024 megas, 1 Tera, equivale a 240 ou 1.024 gigas, 1 Peta, equivale a 250 ou 1.024 teras. Em ciências da computação, como 1K se refere a 1024 , entra em conflito com a definição do prefixo "quilo" do Sistema Internacional, Tabela 2 . Tabela 2- Múltiplos do byte –ciência da computação Múltiplos de bytes Prefixo binário (IEC*) Prefixo do SI Nome Símbolo Múltiplo Nome Símbolo Múltiplo byte B 20 byte B 100 quilobyte KB 210 Kilobyte KB 103 megabyte MB 220 megabyte MB 106 gigabyte GB 230 gigabyte GB 109 terabyte TB 240 terabyte TB 1012 petabyte PB 250 petabyte PB 1015 exabyte EB 260 exabyte EB 1018 zettabyte ZB 270 zettabyte ZB 1021 yottabyte YB 280 yottabyte YB 1024 *Comissão Eletrotécnica Internacional –IEC (International Electrotechnical Commission) CAPACIDADE DA MEMÓRIA - é a quantidade de informação que pode ser armazenada em uma memória. A medida básica é o byte, embora também possam ser usadas outras unidades como células (memória principal ou cache), setores (discos) e bits (registradores) São utilizados os multiplicadores K (kilobyte), M (megabyte), G (gigabyte) ou T (terabyte). Ex: Registradores: 100 b CACHE L1: 16 KB CACHE L2: 512 KB RAM: 256 MB HD: 80 GB, 1 Tera Portanto, pode-se escrever que a capacidade em bits é igual ao produto do nº de células pelo total de bits por célula, dado por, 11 M N T sendo, T = capacidade da memória em bits , M = nº de bits de cada célula (palavra) e N = nº de endereços, N=2x , sendo x = nº de bits do endereço (ou linhas de endereços) logo, N x log2 ( b N N a a b log log log ) Em geral, x está entre 16 e 32, enquanto que M pode ser 1, 4, 8, 16 ou 32. A cada posição é associado um endereço, iniciando pelo endereço 0 (zero) e indo até N-1( último endereço na memória). Portanto, são necessários x bits para decodificar os 2x endereços existentes. Suponha uma memória que armazena : 4Kx20 ou 4096 pal de 20bits = 81.920 bits; 2Mx8 = 2.097.152 x 8 ou 2M por 1byte/pal; Uma memória de 1M posições de 8 bits tem uma capacidade de 8 Mbits. LARGURA DA MEMÓRIA (MEMORY WIDTH)-número de bits de cada posição da memória. Exemplo: a pastilha de 1M posições de 8 bits cada, tem uma largura de 8 bits, ou seja, de um byte. DENSIDADE (CAPACIDADE) - a densidade de uma memória mede a quantidade de armazenamento da informação ou bits no mesmo espaço. ENDEREÇO (Adress) - é o número que identifica a localização de uma palavra. O endereço é um número binário embora representa-se por octal, hexadecimal ou decimal. TEMPO DE ACESSO - tempo de acesso (ou tempo de acesso para leitura) é o tempo decorrido entre um pedido de leitura de uma posição de memória e o instante em que a informação requerida está disponível no barramento para utilização pela CPU. Ou seja, o tempo que a memória consome para colocar o conteúdo de uma célula no barramento de dados. O tempo de acesso de uma memória depende da tecnologia da memória, as memórias DRAMs (Dynamic RAM - as mais comuns hoje) têm tempo de acesso na faixa de 60 ns. Ex: Registradores: 0.1 ns CACHE L1: 1 ns CACHE L2: 2 a 5 ns SRAM: 10 a 20 ns 12 HD: 10 ms O tempo de acesso para diferentes endereços em memórias eletrônicas (RAM, ROM) é igual. No caso de discos e fitas, que são dispositivos eletromecânicos, o tempo de acesso depende da localização do dado em relação ao último acesso. Após um acesso, algumas memórias podem impedir por um pequeno intervalo de tempo, o uso do sistema de memória para um novo acesso. Este intervalo de tempo somado ao tempo de acesso é chamado Ciclo de Memória (Memory System´s Cycle Time), que é o período de tempo decorrido entre duas operações sucessivas de acesso. Se a capacidade da memória for excedida em um microcomputador, o programa será executado a partir de uma área de disco chamada “área de troca” ou “swap”. A velocidade do processamento será, portanto muito prejudicada por causa dos diferentes “tempos de acesso” (entre 1.000.000 e 10.000.000 vezes mais lento ). TEMPO DE CICLO (ou ciclo de memória) - é o tempo decorrido entre dois ciclos sucessivos de acesso à memória. As memórias dinâmicas perdem seu conteúdo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo de "refresh"). No caso das SRAM (Static RAM ou memórias estáticas), que não dependem de "refresh", o tempo de ciclo é igual ao tempo de acesso. As memórias dinâmicas, no entanto, requerem ciclos periódicos de "refresh", o que faz com que a memória fique indisponível para novas transferências, a intervalos regulares necessários para os ciclos de "refresh". Assim, as memórias DRAMs têm ciclo de memória maior que o tempo de acesso. RAM (RANDOM ACCESS MEMORY ) - memória de acesso aleatório, o tempo de acesso é independente do endereço a ser acessado (ou a posição de memória a ser escrita ou lida). A maioria das memórias semicondutoras é do tipo RAM. SEQUENTIAL ACESS MEMORY (SAM)- o acesso de tempo não é constante e varia dependendo da localização de endereço ( o acesso de tempo produzido pode ser muito maior que aquele produzido pela RAM) ex: fita magnética (magnetic Tape Backup). READ/WRITE MEMORY (RWM) qualquer memória que pode ser lida ou escrita. 13 READ-ONLY MEMORY (ROM) - memórias semicondutoras que podem ser escritas (programadas) somente uma vez. Depois desta operação esta memória somente pode ser lida. São do tipo NÃO VOLÁTIL (conservam os dados mesmo quando não estão energizadas). MEMÓRIA VOLÁTIL- qualquer tipo de memória que necessite de energia elétrica para reter a informação armazenada. Se a energia for retirada, toda a informação armazenada na memória será perdida. Muitas memórias a semicondutor são VOLÁTEIS, enquanto todas as memórias magnéticas são NÃO VOLÁTEIS. 14 4. ESTRUTURA DA MEMÓRIA PRINCIPAL – CÉLULA E ENDEREÇO ______________________________________________________________________ A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. E o computador precisa ter um mecanismo de como encontrar essa informação, quando for necessário. A memória principal é organizada em células que é considerada a unidade de armazenamento do computador. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador têm o mesmo tamanho, isto é, o mesmo número de bits. Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas sequencialmente, uma a uma, de 0 a N-1, chamado o endereço da célula. Observações da informática: Unidade de Transferência é a quantidade de bits transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são frequentemente diferentes. Aqui neste contexto uma célula não significa o mesmo que uma palavra (uma célula não necessariamente contém uma palavra). Palavra é a unidade de processamento da CPU/MP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. No entanto, em geral não é assim que acontece e os computadores comerciais não seguem um padrão único para a organização da CPU e MP. Computadores comerciais (tais como, os baseados nos antigos processadores Intel 486) podem ter o tamanho da palavra definido em 32 bits, porém sua estrutura de memória tem células de 16 bits. A estrutura da memória principal é um problema do projeto de hardware. O tamanho mais comum de célula era 8 bits (1 byte), atualmente são comuns células contendo vários bytes. A palavra interna à CPU, por sua vez, geralmente tem tamanho distinto das demais. Uma CPU projetada para trabalhar com n bits é dita ser um processador de n bits. Existem 15 processadores de 1 a 64 bits (ou até mais). Nos computadores pessoais, tipo IBM/PC, compatíveis são empregados processadores de 16, 32, 64 e 128 bits, conforme o modelo. O conceito mais usado pela IBM define palavra como sendo a capacidade de manipulação de bits do núcleo do computador (CPU e MP). Pressupõe-se aqui, que todos os elementos do núcleo do computador (o que inclui o tamanho da ULA, do acumulador e registradores gerais da CPU e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo número de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da ULA e do acumulador (e registradores gerais) não é o mesmo tamanho dos barramentos. Desta forma, encontram-se especificações de "computadores de 64 bits" mesmo quando seu barramento de dados é de 32 bits, nesse caso referindo-se exclusivamente à capacidade de manipulação da CPU de 64 bits (isto é, sua ULA e acumulador têm 64 bits). Esta definição é imprecisa (às vezes, enganosa) e pode levar a erros de avaliação da capacidade de processamento de um computador. Exemplos: Os microprocessadores Intel 8086 (16 bits, sendo todos seus elementos de 16 bits); depois dele, 8088, usado nos primeiros IBM/PC e XT (idêntico sob quase todos os aspectos aos 8086) e também dito de 16 bits, sendo que ULA e registradores são de 16 bits, mas o barramento de dados é de apenas 8 bits, por economia e razões de compatibilidade com toda uma geração de placas de 8 bits. Destaque-se que nesse caso a transferência de dados pelo barramento de dados se faz em duas etapas, um byte de cada vez, e em consequência nos 8088 elas consomem o dobro dos ciclos de barramento (que o 8086), o que torna suas operações de transferência de dados mais lentas que as dos 8086 (TECMUNDO, 2013). Deve-se analisar caso a caso, porque a simples menção ao tamanho da palavra não permite definir de forma conclusiva sobre a arquitetura do computador. A palavra em um computador pode ter 1 byte (p.ex, 8080), 2 bytes (p.ex. 80286), 4 bytes (p.ex. 486, Pentium, e etc.) 16 5. COMUNICAÇÃO ENTRE MP e CPU ______________________________________________________________________ Na Figura 6 apresentam-se os barramentos e o esquema da Comunicação da MP/CPU. Figura 6 - Esquemático de funcionamento da comunicação da MP/CPU Fonte: Tocci, Widmer, Moss (2019) 5.1 Barramentos Os diversos componentes dos computadores se comunicam por meio de barramentos. Barramento são um conjunto de condutores elétricos que interligam os diversos componentes do computador e de circuitos eletrônicos que controlam o fluxo dos bits. Para um dado ser transportado de um componente a outro, é preciso emitir os sinais de controle necessários para o componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Como um dado é composto por bits (geralmente um ou mais bytes) o barramento deverá ter tantas linhas condutoras quanto forem os bits a serem transportados de cada vez. Em alguns computadores (usando uma abordagem que visa a redução de custos), os dados podem ser transportados usando mais de um ciclo do barramento. Assim, se quisermos transferir um byte - por ex: 01001010 - da CPU para a MP, os circuitos de controle se 17 encarregarão de colocar o byte 01001010 no barramento, (por convenção, os bits são sempre ordenados da direita para a esquerda) e de informar à memória para ler o dado no barramento. 5.1.1. Tipos de Barramentos Barramento de endereços (adress bus)– unidirecional que transfere as saídas de endereço da CPU para os CIs de memória para selecionar uma localização na memória; Barramento de dados – bidirecional, são transportados dados entre a CPU e os CIs de memória (envia dados - write - ou lê dados - read - da MP). Barramento de controle – bidirecional, transfere sinais de controle: CPU −> CIs de memória (controle R/W ); CPU −> MP (controle R/W ); MP −>CPU (controle wait). Barramento de dados Em um barramento de dados somente um dispositivo (memória, periféricos) pode operar por vez, Figura 7. Os buffers tri-state são utilizados para isolar os dispositivos que não estão acessando o barramento. Para um microprocessador, apenas um dispositivo é habilitado de cada vez, para que a contenção de barramento seja evitada - somente um dispositivo pode ter conexão direta com o barramento além do processador central, que normalmente é o host. Tradicionalmente o circuito de decodificação de endereços determina qual dispositivo irá conectar ao barramento. Todos os outros dispositivos são desconectados de modo a não afetar as operações ativas no barramento. Os buffers tri-state são os dispositivos que são utilizados para isolar o barramento, ou seja, mantem o circuito em um estado de alta impedância. O nome tri-state advém de existir o terceiro estado, o de alta impedância, além dos tradicionais „0‟ e „1‟ lógicos. Dispositivos que podem ser conectados ao barramento além dos microprocessadores, são memórias, conversores Digitais /Analógicos e os Analógicos/Digitais, codificadores, multiplexadores e etc. 18 Figura 7- Barramento de Dados da CPU Fonte: Tocci, Widmer, Moss (2019) Contenção de Barramento Ocorre quando dois ou mais sinais conectados na mesma linha de barramento ficam ativos e competem uns com os outros. A contenção de barramento, Figura 8, é evitada se os dispositivos tiverem saídas tri-state ou forem conectados ao barramento por meio de buffers tri-state. Figura 8- Ilustrando a contenção de barramento de dados para um dispositivo CMOS 19 Fonte: Tocci, Widmer, Moss (2011) Saída Lógica Tristate (Three-State) É o terceiro tipo de circuito de saída usado nas famílias TTL e CMOS. Vantagem do seu uso: Operação em alta velocidade; Permite que várias saídas sejam conectadas juntas compartilhando um fio comum; Permite três possíveis estados de saída: alto, baixo e alta impedância (Hi-Z). Na Figura 9 têm-se três condições de saídas tristate para um inversor. Figura 9- Três condições de saídas tristate para um inversor. Fonte: Tocci, Widmer, Moss (2019) Buffer tristate é um circuito usado para controlar a passagem de um sinal lógico da entrada para a saída . Tem-se na Figura 10, buffers tristate (não inversores) TTL, 74125 e 74126, e suas tabelas verdades. Figura 10- Buffers tristate não inversores. a) 74125. b)74126. 20 Fonte: Tocci, Widmer, Moss (2019) 5.2 Registradores A comunicação entre MP e CPU usa dois registradores da CPU: Registrador de Endereços de Memória - REM (Memory Adress Register – MAR); Registrador de Dados da Memória - RDM ( Memory Buffer Register –MBR). obs: x = no de bits do barramento de endereços; em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Endereços de Memória - REM. M = nº de bits contidos em uma célula; M em geral (mas não obrigatoriamente) é igual ao nº de bits do Registrador de Dados da Memória - RDM. 21 6. PRINCÍPIO DE OPERAÇÃO DA MEMÓRIA ____________________________________________________________ OPERAÇÃO DE LEITURA/ESCRITA Sempre que a CPU escrever ou ler um dado em uma determinada posição de memória, os seguintes passos terão de ser realizados. Escrever na Memória - significa escrever uma informação em uma célula da memória (armazenar uma informação). Esta operação de armazenamento da informação na memória consiste na transferência de um conjunto de bits da CPU para a memória e é destrutiva (isto significa que qualquer informação que estiver gravada naquela célula será sobregravada). P1- A CPU armazena no REM o endereço de memória da informação a ser gravada; P2 - A CPU coloca no RDM a informação e disponibiliza nas linhas do barramento de dados; P3 - A CPU comanda uma operação de escrita (ativa as linhas de sinal de controle); P4 - Os CIs de memória decodificam o endereço binário determinando a posição selecionada para a operação de armazenamento; P5- A informação armazenada no RDM é transferida para a posição de memória cujo endereço está contido no REM. Ler da Memória (ou busca na memória- fetch operation)-significa requisitar à memória o conteúdo de uma determinada célula. Esta operação de recuperação da informação armazenada na memória consiste na transferência de um conjunto de bits (cópia) da memória para a CPU e é não destrutiva, isto é, o conteúdo da célula não é alterado. P1- A CPU armazena no REM o endereço onde a informação requerida está armazenada; P2 - A CPU ativa as linhas de sinal de controle para a operação de leitura; P3 - Os CIs de memória decodificam o endereço binário determinando a posição selecionada para a operação de leitura; P4- O conteúdo da posição identificada pelo endereço contido no REM é transferido para o RDM, ficando disponível para a CPU. 22 7. CLASSIFICAÇÃO DAS MEMÓRIAS ____________________________________________________________ R/W - Read and Write (memória de leitura e escrita), comumente chamada de RAM. Esta memória permite operações de escrita e leitura pelo usuário e pelos programas. Seu tempo de acesso é da ordem de 70ns e independe do endereço acessado. É construída com tecnologia de semicondutores (bipolar, MOS, CMOS), pode ser estática (SRAM) ou dinâmica (DRAM) e é volátil. A MP é construída com memória R/W. ROM- Read Only Memory ou memória apenas de leitura. Esta memória conceitualmente permite apenas a leitura e uma vez gravada não pode mais ser alterada. Tem acesso aleatório (isto é, é também uma RAM), mas não é volátil. É utilizada geralmente por fabricantes para gravar programas que não podem ser alterados pelo usuário ou apagar acidentalmente (tal como por ex. a BIOS - Basic Input Output System e microprogramas de memórias de controle). Quando se liga uma máquina, é da ROM que vem os programas que são carregados e processados no "Boot"3(na inicialização o hardware aponta automaticamente para o primeiro endereço da ROM). Desta forma, parte do espaço de endereçamento da MP é ocupada por ROM (atualmente Flash). A ROM (máscara) é mais lenta e de menor custo que a R/W, porém o processo produtivo depende de ser programada por máscara ("mask programmed") em fábrica e devido ao alto custo da máscara somente se torna econômica em grandes quantidades. PROM - Programmable Read Only Memory ou memória apenas de leitura, programável. Esta memória é uma ROM programável (em condições e com hardware adequados, chamados queimadores de PROM), geralmente comprada "virgem" (sem nada gravado). Uma vez programada (em fábrica ou não), não pode mais ser alterada. Os níveis de tensão para a programação não são compatíveis com os níveis de tensão da operação. ________________________________________________________________________ 3Boot (ou bootstrap loader) é o processo de inicialização e carga dos programas básicos de um computador, automática, sem intervenção externa. Este termo vem de uma analogia com um processo (impossível) que seria uma pessoa se levantar puxando-se pelos cordões de suas próprias botas. 23 EPROM - Erasable Programmable Read Only Memory ou memória apenas de leitura, programável (com queimadores de PROM) e apagável (à base de raios ultravioletas). Esta memória é uma PROM apagável. Tem utilização semelhante à da PROM, para testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas, com a vantagem de poder ser apagada e reutilizada. EEPROM (ou E2PROM) - Electrically Erasable Programmable Read Only Memory ou memória apenas de leitura, programável e eletronicamente alterável. Também chamada EAROM (Electrically Alterable ROM). Esta memória é uma EPROM apagável por processo eletrônico, sob controle da CPU, com equipamento e programas adequados. É mais cara, pode ser utilizada em dispositivos aos quais se deseja permitir a alteração, via modem, possibilitando a carga de novas versões de programas à distância. (p.ex., a reconfiguração de teclado ou de modem, programação de um terminal, etc)( TECMUNDO, 2013). FLASH – EEPROM – não volátil, com apagamento e escrita feitos eletricamente no circuito, porém com densidade maior e mais baixo custo que as EEPROMS. Referências Bibliográficas ELETRICIDADE.COM. Disponível em: http://eletercidade.blogspot.com/2012/10/como-funciona-memoria.html. Acesso em: 07 set. 2020. HIERARQUIA DE MEMÓRIA. Disponível em: https://pt.wikipedia.org/wiki/Hierarquia_da_mem%C3%B3ria. Acesso em: 15 mar.2018. NOBREGA FILHO, R. G. Hierarquia de memórias Disponível em: http://www.di.ufpb.br/raimundo/Hierarquia/Hierarquia.html. Acesso em: 16 mar. 2018. TECMUNDO. Disponível em: http://www.tecmundo.com.br/curiosidade/2845-o-que-sao- flops-.htm#ixzz2cN9JtucN. Acesso em: 03 mar. 2013. TOCCI, R.J.; WIDMER, N.S.; MOSS, G. L. Sistemas Digitais: Princípios e Aplicações. 12ª edição, Editora Pearson Prentice Hall, 1056p, 2019.