É o tamanho do barramento de endereços ou o tamanho do barramento de dados que determina os sistemas “8-bit, 16-bit, 32-bit, 64-bit”?

14

Minha compreensão simples é a seguinte.

A memória (RAM) é composta de bits, grupos de 8 que formam bytes, cada um dos quais pode ser endereçado e, portanto, memória endereçável por byte.

O barramento de endereços armazena a localização de um byte de memória.

Se um barramento de endereços é de tamanho 32 bits, isso significa que ele pode conter até 2 32 números e, portanto, pode se referir a 2 32 bytes de memória = 4GB de memória e qualquer memória maior do que isso é inútil.

O barramento de dados é usado para enviar o valor a ser gravado / lido na memória. Se eu tiver um barramento de dados de tamanho 32 bits, isso significa que um máximo de 4 bytes pode ser escrito para / ler a memória de cada vez. Não encontro nenhuma relação entre esse tamanho e o tamanho máximo de memória possível.

Mas eu li aqui que:

Even though most systems are byte-addressable, it makes sense for the processor to move as much data around as possible. This is done by the data bus, and the size of the data bus is where the names 8-bit system, 16-bit system, 32-bit system, 64-bit system, etc.. come from. When the data bus is 8 bits wide, it can transfer 8 bits in a single memory operation. When the data bus is 32 bits wide (as is most common at the time of writing), at most, 32 bits can be moved in a single memory operation.

Isso diz que o tamanho do barramento de dados é o que dá ao SO o nome, 8 bits, 16 bits e assim por diante. O que há de errado com o meu entendimento?

    
por learner 08.07.2012 / 20:16

4 respostas

11

Geralmente, o tamanho do barramento de dados é determinado pelo tamanho dos registradores do processador. Geralmente, é o tamanho dos registros do processador que determinam o tipo de sistema operacional (64 vs 32). Os tamanhos de barramento físico podem diferir tecnicamente disso (8088 como um exemplo), mas é tão raro que o autor da sua citação provavelmente associe os dois juntos.

Geralmente, o tamanho do ponteiro também segue o tamanho do registro, mas a largura do barramento do endereço físico pode ser maior (como no caso do 8086 de 16 bits a 20) ou menor (como no AMD 64 a 48)

    
por 08.07.2012 / 20:47
1

É o tamanho do registro e a manipulação de memória no processador.

Usando truques, um processador de 16 bits tinha um barramento de endereços de 20 bits, portanto, não é memória externa do processador.

    
por 08.07.2012 / 20:44
1

Não existe um sistema "puro" de 32 ou 64 bits e, portanto, os termos são apenas aproximações de qualquer maneira.

Por exemplo tire sua afirmação "Memória (RAM) é composta de bits, grupos de 8 que formam bytes, cada um dos quais pode ser endereçado" . Isso não é muito comum. Os PCs têm sua RAM nos módulos DIMM e esses são de 64 bits. Nos anos 90, você tinha SIMMs e esses eram de 32 bits.

Em alguns sistemas, os DIMMs devem ou podem ser emparelhados ("ganged" / "dual channel"), o que seria um databus de 128 bits. Esse conceito é anterior aos chamados processadores "64 bits" da AMD e da Intel.

Esses grupos de 64 bits de um único DIMM podem, de fato, ser subdivididos em 8 bytes. Isso é muito transparente pelo seu processador. Ele também pode quebrar os 64 bits em 4 * 16 bits, 2 * 32 bits, ou apenas usar todos os 64 bits como uma única variável.

A questão mais importante, no entanto, é a largura de um endereço. Cada byte na memória tem seu próprio endereço, mas não todo. Isso significa que os 64 bits que você obtém de um único DIMM têm 8 endereços. O mais baixo deles é sempre um múltiplo de 8: Agora, quantos endereços distintos a CPU suporta? Existem duas respostas comuns, pelo menos em teoria. Alguns CPUs suportam 2 32 endereços diferentes, alguns suportam 2 64 . Essa distinção é a distinção mais comum entre sistemas de 32 e 64 bits.

Na prática, os sistemas de 64 bits suportam atualmente menos de 2 64 bytes de RAM. Isso seria inacessível e não caberia em um PC normal de qualquer maneira. Essa quantidade de memória pesaria vários milhões de toneladas!

    
por 09.07.2012 / 00:10
0

Ambos na verdade.

Os bits em uma CPU são normalmente uma referência ao tamanho de seus registradores internos. Uma CPU de 32 bits possui 32 registros de bits que podem ou não ser divididos em blocos.

Faz sentido ter uma CPU de 32 bits com um barramento de dados de 32 bits, porque você pode transferir todos os dados da memória diretamente para os registradores, mas você pode ter qualquer tamanho de barramento de dados. Portanto, o processador de 32 bits normalmente tem um barramento de dados de 32 bits para facilitar a transferência de dados de e para ele.

E também faz sentido ter um barramento de endereços de 32 bits por dois motivos. Um barramento de endereços maior dificultaria o endereçamento indireto porque você não teria um registro maior para armazenar um endereço de memória ou a CPU precisaria de um registro especializado para endereçamento de memória, note que CPUs antigas como a Intel 8080 eram de 8 bits e tinham um Barramento de endereço de 16 bits. O oposto, um barramento de endereços menor que o registro é apenas um desperdício de recursos. Existem microcontroladores que usam barramento de endereços menor.

    
por 06.01.2018 / 00:43