Pergunta

Eu tenho lido nos modelos de memória em um livro de montagem que peguei e tenho uma ou duas perguntas. Digamos que o barramento de endereço possui 32 linhas, o barramento de dados possui 32 linhas e a CPU é de 32 bits (por simplicidade). Agora, se a CPU fizer uma solicitação de leitura e enviar o endereço de 32 bits, mas precisará de apenas 8 bits, todos os 32 bits voltam de qualquer maneira? Além disso, os endereços na memória ainda são abordados por byte corretos? Então, buscar um byte traria de volta 0000 0001 para abordar 0000 0004?

Foi útil?

Solução

Em geral, sim. Não há nada a ganhar lendo partes de uma palavra de um ônibus, então uma palavra inteira é lida. As instruções especificam quais partes das palavras necessárias para realmente carregar ou armazenar nos registros.

Dito isto, é raro ler diretamente da memória hoje em dia. As CPUs têm caches com os quais você interage 99% das vezes e, quando os dados não estão no cache, uma linha inteira é trazida (várias palavras) e você ainda lê do cache.

Observe também que muitas CPUs modernas realmente têm ônibus de 64 bits.

Outras dicas

Você realmente deveria ler isso: O que todo programador deve saber sobre memória

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top