ARQUITETURA DE COMPUTADORES Aula 05: Memória Principal Prof. Benito Piropo Da-Rin MEMÓRIA PRINCIPAL • Elementos de uma memória principal (célula, bloco, tamanho total); • Cálculo dos elementos de memória (tamanho dos barramentos de endereços e dados, do RDM, do REM, tamanho da célula e da palavra, capacidade total de armazenamento da memória). Conceitos de variáveis e ponteiros. Ciclos de leitura e escrita em memória. • Relação entre os elementos da memória e processador. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Elemento básico de armazenamento: – Bit (Binary Digit) • Célula de memória (de semicondutor): – Dispositivo semicondutor capaz de armazenar um bit. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Que condições um dispositivo deve cumprir para ser usado como célula de memória? Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Que condições um dispositivo deve cumprir para ser usado como célula de memória? 1. Poder assumir dois estados mutuamente exclusivos (ou assumir valores acima e abaixo de determinado patamar); Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Que condições um dispositivo deve cumprir para ser usado como célula de memória? 1. Poder assumir dois estados mutuamente exclusivos (ou assumir valores acima e abaixo de determinado patamar); 2. Permitir que o estado seja alterado (pelo menos uma vez); Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Que condições um dispositivo deve cumprir para ser usado como célula de memória? 1. Poder assumir dois estados mutuamente exclusivos (ou assumir valores acima e abaixo de determinado patamar); 2. Permitir que o estado seja alterado (pelo menos uma vez); 3. Permitir que o estado seja “lido”. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias de semicondutores • Usadas predominantemente na MP devido às suas características: – Permitem acesso apenas através do endereço. – Ocupam pouco espaço. – Grande quantidade de bits podem ser armazenados em pequenos CIs. – Tempo de acesso pequeno Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias de semicondutores Tipos de encapsulamento: • DIP - Dual Inline Package • SIPP - Single Inline Pin Package • SIMM – Single Inline Memory Module • DIMM - Dual Inline Memory Module Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Célula de memória • Capacidade de armazenamento: 1 bit Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Porém... – Com um só bit a capacidade de representar valores é limitada (exceto no caso de “flags”) Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Porém... – Com um só bit a capacidade de representar valores é limitada (exceto no caso de “flags”) • Solução: “Posição de memória” – Agrupar bits em conjuntos e identificar cada conjunto por um “endereço”. – Cada conjunto identificado por um endereço constitui uma “posição de memória”. – Não há padrão oficial, mas o padrão “de fato” é usar posições de memórias de 8 bits (um byte) Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Endereço de memória: – Identifica (inconfundivelmente) uma posição de memória. – É um número (em geral expresso em hexadecimal ou binário) – É uma entidade lógica (não existe fisicamente em nenhum local da memória); em diagramas de memória, são inseridos ao lado da posição que identificam para fins puramente didáticos. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Organização (lógica) da memória: – A MP é uma grande estrutura de conjuntos de células “empilhados”. – A maioria dos computadores de mesa adota posições de memória de oito bits (por vezes fisicamente combinadas em “linhas” de até dezesseis posições, ou 128 bits) que do ponto de vista lógico são “enxergadas” pela UCP como uma enorme “pilha” de posições; cada posição tem um endereço que cresce sequencialmente de zero até o final do “espaço de endereçamento”. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Organização (lógica) da memória: – Como a UCP “vê” a MP: Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Organização (física) da memória: – A memória é organizada em uma matriz de linhas e colunas; – Cada linha pode conter uma ou mais posições de memória; Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Organização (física) da memória : Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Organização (física) da memória: – A memória é organizada em uma matriz de linhas e colunas; – Cada linha pode conter uma ou mais posições de memória; – O acesso à memória (leitura ou escrita) é feito linha a linha; – Não obstante isto, cada posição de memória é identificada por seu endereço. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal • Leitura/Escrita de uma posição de memória: – A linha inteira é transferida para/de um registrador Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Organização (física) da memória: • Registrador de dados da memória (RDM) A capacidade (largura) da linha depende da largura (em bits) do RDM e é igual ao número de linhas do barramento de dados; Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Cálculos dos elementos da memória • Capacidade da posição de memória – Capacidade da “posição de memória”: quantidade de números diferentes que podem ser nela armazenados. • C = 2L • Onde: – C=Capacidade da unidade endereçável – L= Largura da unidade endereçável em bits – Em posições de memória de 8 bits, C=28 =256 – Portanto cada posição de memória de 8 bits pode armazenar números de 0 a 255. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Cálculos dos elementos da memória • Capacidade de unidade de armazenamento – O mesmo princípio vale para a capacidade de qualquer unidade de armazenamento (por exemplo: registradores): sua capacidade é igual à quantidade de números diferentes que podem ser nela armazenados. Para qualquer unidade de L bits: • C = 2L ; Onde: – C=Capacidade da unidade de armazenamento – L= Largura da unidade de armazenamento em bits – Unidades de armazenamento de 16 bits, C=216 = 65.536 (64K) – Unidades de armazenamento de 32 bits, C=232 = 4.294.967.296 (4GB) Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Cálculos dos elementos da memória • Maior valor que pode ser armazenado – ATENÇÃO! Não confundir a capacidade da unidade de armazenamento (número de valores diferentes que ela pode armazenar) com o valor do maior número que nela pode ser armazenado. – EXEMPLO: Capacidade de armazenamento de uma unidade de 8 bits: C = 28 = 256 (pode armazenar 256 diferentes valores) PORÉM: O menor valor armazenado é 0 (zero) LOGO: maior número N que pode armazenar: N = 255 PORTANTO: N = C-1 (Generalizando: N = 2L-1) Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Cálculos dos elementos da memória • Capacidade do espaço de endereçamento – O espaço de endereçamento é a capacidade máxima de memória suportada pelo sistema (nem sempre igual ao total instalado) Sua capacidade depende do número de linhas do barramento de endereços (que é igual à “largura” do REM em bits). • E = 2B Onde: – E = Espaço de endereçamento (capacidade da MP); – B = Número de linhas do barramento de memória. • Para barramentos de 32 linhas (do 386 ao Pentium): E = 232 = 4.294.967.296 = 4 GB (endereços de 0 a 4.294.967.295). Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Organização (física) da memória: • Registrador de endereços da memória (REM) A capacidade do espaço de endereçamento depende da largura (em bits) do REM que é igual ao nr. de linhas do barramento de endereços; Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Leitura: – Um número (dado, endereço ou instrução) é copiado da memória em um dos registradores. – É uma operação não destrutiva (o mesmo número pode ser lido novamente). • Escrita: – Um número (dado, endereço ou instrução) é copiado de um dos registradores para a memória; – É uma operação destrutiva (o conteúdo da posição de memória é substituído pelo novo valor). Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Participantes: FSB (dados, endereços e controle) /REM / RDM / UCP / controlador da MP) Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Escrita I: A UCP copia o endereço da posição de memória onde o dado será escrito no REM, transcreve o dado a ser escrito no RDM e aguarda o próximo sinal de controle. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Escrita II: A UCP envia pulsos nas linhas correspondentes do barramento de controle indicando que a operação é de escrita e será feita na MP. O controlador de memória “aponta” para o endereço contido no REM e aguarda novo sinal. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Escrita III: O controlador de memória lê o conteúdo do RDM e o transcreve no endereço apontado. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Operações com a Memória Principal: • Leitura: Processo semelhante à escrita, porém no sentido inverso. Não altera o conteúdo da posição de memória. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias Síncronas (SDRAM): • A descrição simplificada dos procedimentos de leitura e escrita não considerou o fenômeno ao longo do tempo. • Memórias ligadas a um barramento frontal mantêm algum tipo de sincronia com este barramento. • O barramento frontal opera com uma frequência que em geral é um submúltiplo da frequência da UCP. • Memórias mais antigas (EDO, FPM) executavam cada passo anteriormente descrito em um ciclo do barramento (DRAM). • Memórias modernas (SDRAM, DRAM Síncronas) executam uma transferência por ciclo de barramento. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias Síncronas de taxa múltipla de dados: • DDR: “Double Data Rate” (Taxa Dupla de Dados) – Efetua duas operações de transferência por ciclo do barramento; memórias DDR-200, por exemplo, efetuam 200 milhões de transferências por segundo em um barramento operando a 100 MHz. – Modelos: DDR-200 / DDR-266 / DDR-300 / DDR-333 / DDR-400 • DDR2: Segunda geração da tecnologia DDR – Na prática: quatro transferências por ciclo de barramento; – Modelos: DDR2-400 / DDR2-553 / DDR2-667 / DDR2-800 / DDR2-1066 / DDR2-1300 • DDR3: Terceira geração da tecnologia DDR – Na prática: oito transferências por ciclo de barramento; – Modelos: DDR3-800 / DDR3-1066 / DDR3-1333 / DDR3-1600 / DDR3-2100 Além da diferença no desempenho, os módulos usam diferentes tensões de alimentação e consomem diferentes potências (que tende a diminuir). Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias Síncronas (SDRAM): Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias Dinâmicas (DRAM): A célula de memória DRAM é do tipo “capacitor” (carregado /descarregado); Mas na verdade o capacitor é a capacitância de entrada de um transistor (que é recarregado logo após a leitura). Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Memórias Flash: • O contato “Float Gate” se situa entre o “Control Gate” e o transistor e é isolado eletricamente de ambos. Devido a este isolamento, quando carregado de elétrons, mantém esta carga em seu interior por um período de anos. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Variáveis e Ponteiros: • VARIÁVEL: um objeto (geralmente uma posição de memória) capaz de reter e representar um valor ou expressão. As variáveis só "existem" em tempo de execução e estão associadas a nomes, chamados identificadores • [Em outras palavras: variável é uma posição de memória identificada (no programa) por um nome e cujo conteúdo exprime o valor de uma expressão que pode variar com o tempo]. • PONTEIRO: é um tipo de dado de uma linguagem de programação cujo valor se refere diretamente a um outro valor alocado em outra área da memória, através de seu endereço. • [Em outras palavras: “Ponteiro” é uma posição de memória que contém o endereço de outra posição de memória, ou seja, que “aponta” para esta outra posição de memória]. Arquitetura de Computadores Prof. Benito Piropo Da-Rin Memória Principal Arquitetura de von Neumann: • Modelo de arquitetura de computadores que adota o mesmo espaço de endereçamento para armazenar tanto dados quanto instruções - “stored-program computer” ou “computador com programa armazenado” (na MP); • (Concebida em 1945 por John von Neumann, cientista húngaro radicado nos EUA, para uso no EDVAC; Até então os computadores armazenavam instruções em um espaço de endereçamento específico para tal fim) • “Máquina de von Neumann” ou “stored-program computer” – todo computador moderno é... Arquitetura de Computadores Prof. Benito Piropo Da-Rin ARQUITETURA DE COMPUTADORES Aula 05: Memória Principal Prof. Benito Piropo Da-Rin