Os endereços de memória são um número fixo de dígitos, sendo um número inteiro sem sinal.Geralmente, os endereços de memória são expressos em base hexadecimal para facilitar a leitura.Por exemplo, um endereço de memória em um processador de 32 bits pode estar no binário 1011 0111 1011 1010 1100 0011 1100 0111 , que em hexadecimal seria B7BAC3C7.
Na maioria dos computadores modernos, cada endereço de memória aponta para um único byte de armazenamento (o byte é a unidade mínima de memória que pode ser acessada), o que é chamado de endereçamento de bytes.Alguns microprocessadores são projetados para endereçamento de palavras; nesses casos, as unidades mínimas de armazenamento são maiores que um byte.
Um endereço de memória absoluto (explicado ita ou especifica), indica precisamente o local na memória sem o uso de qualquer referência intermediária.
Em inglês: endereço de memória.
Tipos de endereços de memória: endereço físico e endereço lógica ou virtual
Tanto a memória física quanto a memória virtual usam endereços ou endereços de memória para acessar seus dados.
Na memória física, o endereço de memória permite acesso ao RAM real (ou seja, os chips de RAM inseridos na placa-mãe) e o endereço de memória virtual refere-se a um espaço no disco rígido que simula a RAM (o chamado arquivo de paginação em alguns sistemas operacionais ou memória virtual).
Para obter mais informações, consulte: memória lógica e endereço da memória virtual.
Unidades de resolução de memória: históricas e atuais
A maioria dos computadores modernos é endereçável por byte, como indicado acima, significa que cada endereço identificará um byte (8 bits) d Dados muito grandes para serem armazenados em um único byte residirão em vários bytes, ocupando uma sequência consecutiva de endereços.
Existem computadores endereçáveis por palavra, em que a unidade mínima de endereço é a palavra o processador, por exemplo, nos minicomputadores Data General Nova (lançados em 1969) ou nos computadores Texas Instruments TMS9900 (de 1976) usavam palavras de 16 bits.Havia também computadores mainframe de 36 bits que usavam endereçamento de palavras de 18 bits, como por exemplo, o PDP-10 (desenvolvido entre 1966 e 1982), fornecendo um espaço de endereço de 2 ^ 18 palavras de 36 bits, aproximadamente 1 MB de armazenamento.
A eficiência do endereçamento de memória depende do tamanho bit de barramento usado para endereços: quanto mais bits usados, mais endereços estão disponíveis para o computador, por exemplo, uma máquina de endereçamento de 8 bits com um barramento dir As seleções de 20 bits (exemplo: Intel 8086) podem endereçar 2 ^ 20 (1.048.576) locais de memória (1 MB de memória) Enquanto um barramento de 32 bits (exemplo: Intel 80386) endereça 2 ^ 32 (4.294).967.296) (equivalente a um espaço de endereço de 4 GB).
Por outro lado, uma máquina de roteamento de palavras de 36 bits com um barramento de endereço de 18 bits endereça apenas 2 ^ 18 ( 262.144) locais de 36 bits (9.437.184 bits), equivalentes a 1.179.648 bytes de 8 bits ou 1152 KB ou 1.125 MB (mais de 8086).
Alguns computadores mais antigos (computadores decimais ), endereçáveis a dígitos decimais.Por exemplo, computadores IBM 1620 de 1959.
Comprimento da palavra versus comprimento do endereço
O comprimento da palavra é uma característica dada a uma determinada arquitetura O número de dígitos que a CPU pode processar de cada vez.Os processadores modernos, incluindo sistemas embarcados, geralmente têm um tamanho de palma abrir 8, 16, 24, 32 ou 64 bits; atualmente, os computadores de uso geral (PCs) usam 32 ou 64 bits.Outros tamanhos também foram incluídos em computadores anteriores, como 8, 9, 10, 12, 18, 24, 36, 39, 40, 48 e 60.bits.
Muitas vezes, quando nos referimos ao tamanho das palavras em computadores modernos, também descrevemos o tamanho do espaço de endereço desse computador.Por exemplo, um computador que diz "32 bits" também geralmente permite endereços de Memória de 32 bits; um computador de 32 bits endereçável pode endereçar 2 ^ 32=4.294.967.296 bytes de memória (ou 4 GB), o que permite que um endereço de memória seja armazenado com eficiência em uma palavra.
De qualquer forma Isso nem sempre é verdade:
Os computadores podem ter endereços de memória maiores ou menores que o tamanho da palavra.Por exemplo, muitos processadores de 8 bits, como o MOS Technology 6502 de 1975, suportam endereços Caso contrário, os 16 bits seriam limitados a apenas 256 bytes de endereçamento de memória.
Os processadores Intel 8088 e Intel 8086 de 16 bits suportam o endereçamento de 20 bits via segmentação, permitindo acesso a 1 MB em vez de 64 KB de memória.Todos os processadores Intel Pentium do Pentium Pro incluem PAE (extensões de endereço físico ou extensão de endereço físico) que suporta o mapeamento de endereços físicos de 36 bits para endereços virtuais de 32 bits.
Em teoria, os 6 computadores modernos Os bits de endereçamento de 4 bytes podem endereçar 2 ^ 64 bytes (16 exabytes), mas, na prática, a quantidade de memória é limitada pelo design da CPU, controlador de memória ou circuito impresso (por exemplo, número de conectores físicos de memória).
Conteúdo de cada local de memória
Cada local de memória em um programa de computador armazenado armazena um número binário ou um número decimal de algum tipo.Sua interpretação, como dados de algum tipo de dado ou como uma instrução e seu uso será determinado pelas instruções que os recebem e manipulam.
Os primeiros programadores combinaram instruções e dados em palavras como uma maneira de economizar memória, quando era muito caro : o antigo computador Manchester Mark 1 (de 1948) tinha um espaço em suas palavras de 40 bits para armazenar alguns bits de dados (seu processador ignorou uma pequena seção de bits bem no meio de uma palavra) e essa pequena seção foi usada muito s vezes como armazenamento de dados adicional.
Programas de replicação automática (como vírus de computador) se tratam como dados e, às vezes, como instruções.O código de codificação automática (também chamado de código mutante) é principalmente atualmente não utilizado, uma vez que sua avaliação e manutenção são desproporcionalmente difíceis de salvar apenas alguns bytes; Também pode fornecer resultados incorretos e inesperados devido às suposições do compilador ou processador sobre o estado da máquina; mesmo assim, ainda é usado deliberadamente com muito cuidado.
Espaço de endereçamento na programação de aplicativos
No ambiente moderno de multitarefa, um processo de aplicativo Em geral, possui em seu espaço de endereço (ou espaços) partes de memória dos seguintes tipos:
-Código da máquina, que inclui: o próprio código do programa (historicamente conhecido como o segmento de código) e as bibliotecas compartilhadas.
-Dados, que incluem: dados inicializados (segmento de dados); variáveis não inicializadas (mas atribuídas); pilha de chamadas; pilha; memória compartilhada e arquivo mapeado na memória.
Algumas partes do espaço de endereço podem não ser mapeadas.
Esquemas de endereçamento
Um programa de computador pode acessar um determinado endereço fornecido explicitamente (na programação de baixo nível, geralmente é chamado endereço absoluto ou endereço específico, e em idiomas de alto nível é conhecido como o tipo de dados do ponteiro).Mas um programa também pode usar endereços relativos que especificam um local em relação a outra coisa (o endereço base).Existem muitos outros modos de endereçamento indireto.
O mapeamento de endereços lógicos para a memória física ou virtual também adiciona vários níveis de indireto.>
Dúvidas? Você precisa de mais informações?
Escreva e nós responderemos ao seu email
Comentários
Postar um comentário