Como um sistema de memória endereçável de palavra ou palavra longa mudaria o resultado?

0

Recebi esta pergunta na escola:

Suppose a byte-addressable memory has 1 M addressable space and a cache consisting of 64 blocks, where each block contains 8 bytes. The cache is direct mapped.

What is the size of the cache?
How many offset bits?
How many line bits?
How many tag bits?

Eu entendo como responder a essas perguntas, mas por que eu preciso saber que a memória é endereçável por bytes?

Como as respostas mudariam se fosse palavra ou palavra longa endereçável?

    
por Nicolas 11.06.2015 / 06:52

1 resposta

0

O que é byte?

Um byte é uma unidade de memória para armazenamento e um chip de memória está cheio de tais bytes. Unidades de memória são endereçáveis. Essa é a única maneira pela qual podemos usar a memória.

Na realidade, a memória é apenas endereçável por byte. Isso significa que um endereço binário sempre aponta para um único byte. Uma palavra é apenas um grupo de bytes - 2, 4, 8 dependendo do tamanho do barramento de dados da CPU.

Como você precisa entender ?

Para entender completamente a operação da memória, você deve estar familiarizado com os diversos registros da CPU e das portas de memória da RAM. Suponho que você saiba o significado 'registro de endereço de memória MAR', 'registro de dados de memória MDR', 'registro de contador de programa PC', 'registro de buffer de memória MBR'. RAM tem duas portas de memória: 32 bits para dados / endereços, 8 bits para OPCODE.

Suponha que a CPU queira ler uma palavra (digamos, 4 bytes) do endereço xyz em diante. CPU iria colocar o endereço no MAR, envia um sinal de leitura de memória para o chip do controlador de memória. Ao receber o endereço e o sinal de leitura, o controlador de memória conectaria o barramento de dados à porta de 32 bits e 4 bytes a partir do endereço xyz fluiria da porta para o MDR.

Se a CPU quiser buscar a próxima instrução, ela colocará o endereço no registrador do PC e enviará um sinal de busca ao controlador de memória. Ao receber o endereço e buscar o sinal, o controlador de memória conectaria o barramento de dados à porta de 8 bits e um único código de byte longo localizado no endereço recebido fluiria da RAM para o MDR da CPU.

Então é isso que significa quando dizemos que certo registro é 'memória endereçável' ou 'byte endereçável'. Agora, o que acontecerá quando você colocar, digamos decimal 2 em binário no MAR com a intenção de ler a 'palavra' 2, não (byte no 2)?

O Word no 2 significa os bytes 4, 5, 6, 7 para a máquina de 32 bits. Na realidade, a memória física é apenas endereçável por byte. Portanto, há um truque para lidar com 'endereçamento de palavras'. Quando o MAR é colocado no barramento de endereços, seus 32 bits não mapeiam nas 32 linhas de endereço de 0 a 31, respectivamente. Em vez disso, o MAR bit 0 é conectado para endereçar a linha de barramento 2, o MAR bit 1 é conectado para endereçar a linha de barramento 3 e assim por diante. Os 2 bits superiores de MAR são descartados, pois são necessários apenas para endereços de palavras acima de 2 ^ 32, nenhum dos quais é legal para nossa máquina de 32 bits. Usando esse mapeamento, quando MAR é 1, o endereço 4 é colocado no barramento, quando MAR é 2, o endereço 8 é colocado no barramento e assim por diante.

    
por 11.06.2015 / 08:15

Tags