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

15

Meu entendimento simples é o seguinte.

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

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

Se um barramento de endereço tiver tamanho de 32 bits, isso significa que ele pode conter até 2 32 números e, portanto, pode referir até 2 32 bytes de memória = 4 GB de memória e qualquer memória maior 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, significa que no máximo 4 bytes podem ser gravados / lidos na memória por vez. Não encontro relação entre esse tamanho e o tamanho máximo de memória possível.

Mas eu li aqui que:

Embora a maioria dos sistemas seja endereçável por byte, faz sentido que o processador mova o máximo de dados possível. Isso é feito pelo barramento de dados e o tamanho do barramento de dados é de onde vêm os nomes sistema de 8 bits, sistema de 16 bits, sistema de 32 bits, sistema de 64 bits, etc. Quando o barramento de dados tem 8 bits de largura, ele pode transferir 8 bits em uma única operação de memória. Quando o barramento de dados tem 32 bits de largura (como é mais comum no momento da gravação), no máximo 32 bits podem ser movidos em uma única operação de memória.

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

aprendiz
fonte
" O que há de errado com o meu entendimento? " - Você está tentando fazer uma definição se encaixar em coisas diferentes. O descritor de tamanho de bit foi usado em momentos diferentes para coisas diferentes.
serragem
11
Significa o que o fabricante diz que significa. Geralmente, isso será algo parecido com o tamanho do registro, mas há muitas maneiras de falsificar / falsificar isso.
Daniel R Hicks

Respostas:

12

Geralmente, o tamanho do banco de dados é determinado pelo tamanho dos registros do processador. Frequentemente, é o tamanho dos registros do processador que determina o tipo de SO (64 vs 32). O tamanho do barramento físico pode diferir tecnicamente disso (8088 como exemplo), mas é tão raro que o autor da sua cotação provavelmente associe os dois.

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

Dougvj
fonte
2
" a largura do barramento de endereço físico pode ser maior " - Especialmente nos processadores de 4 e 8 bits!
sawdust
OK. Mas estou tentando entender isso trivialmente. Não consegui encontrar relação entre o tamanho do banco de dados e a memória máxima possível, como explicaria com o tamanho do barramento de endereço. Portanto, a resposta parece ser "NÃO TAMANHO DO BARRAMENTO DE ENDEREÇO, mas TAMANHO DO BARRAMENTO DE DADOS" (porque geralmente é tão grande quanto o processador registra). Estou esquecendo de algo?
aluno
@learner Isso mesmo, a confusão também está no fato de que o tamanho máximo do ponteiro de um sistema é o tamanho dos registros do processador. Em um espaço de endereço plano, como na maioria dos sistemas modernos, isso equivale a ser limitado pelo tamanho do registrador do processador, daí as limitações de endereçamento, como você apontou. Alguns processadores, especialmente os mais antigos, utilizaram truques como endereçamento segmentado especial para contornar isso.
Dougvj 10/07
@ Dougvj, Ok, está ficando mais claro. Mas por que eles diferenciaram o tamanho do barramento de endereço do tamanho do registro do processador? Não faria mais sentido mantê-los iguais? E estou confuso sobre onde os endereços são mantidos? (o barramento de endereço ou o processador se registram?) Obrigado
aprendiz
11
@learner Isso está correto. Resumindo: A designação do SO corresponde exatamente ao tamanho dos registros do processador. O barramento de endereço pode ou não ter o mesmo tamanho que o processador registra, portanto, a RAM endereçável máxima possível é independente disso. O processador internamente, no entanto, quase invariavelmente tem algum tipo de esquema de endereçamento envolvendo ponteiros que são do mesmo tamanho que o processador registra.
31412 Dougvj
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ço de 20 bits, portanto, não é memória externa do processador.

Fiasco Labs
fonte
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, assuma sua afirmação "A 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 memória RAM nos módulos DIMM, e esses têm 64 bits de largura. Nos anos 90, você tinha SIMMs, e esses tinham 32 bits de largura.

Em alguns sistemas, os DIMMs devem ou podem ser emparelhados ("agrupados" / "canal duplo"), o que seria um banco de dados de 128 bits. Este conceito é anterior aos chamados processadores de "64 bits" da AMD e Intel.

Esses grupos de 64 bits de um único DIMM podem realmente ser subdivididos em 8 bytes. Isso é feito de maneira bastante transparente pela sua CPU. 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, porém, é 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 obtidos de um único DIMM têm 8 endereços. O menor destes é sempre um múltiplo de 8: Agora, quantos endereços distintos a CPU suporta? Existem duas respostas comuns, pelo menos em teoria. Algumas CPUs suportam 2 32 endereços diferentes, outras 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 hoje suportam menos de 2 64 bytes de RAM. Isso seria inacessível e, de qualquer maneira, não caberia em um PC normal. Essa quantidade de memória pesaria vários milhões de toneladas!

MSalters
fonte
É o registro do processador em que um endereço é mantido ou o barramento de endereços? Você diz "algumas CPUs suportam 2 ^ 32 endereços diferentes ...". O que eles são exatamente limitados?
aluno
Normalmente, os tamanhos de registro e a MMU (Unidade de Gerenciamento de Memória), a parte da CPU que é diretamente responsável pela memória).
MSalters
0

Ambos na verdade.

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

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 pode ter qualquer tamanho de barramento de dados. Portanto, a CPU de 32 bits normalmente possui 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ço de 32 bits por dois motivos. Um barramento de endereço maior tornaria mais difícil o endereçamento indireto, porque você não teria um registro maior o suficiente para armazenar um endereço de memória ou a CPU precisaria de um registro especializado para endereçamento de memória, observe que CPUs antigas como a Intel 8080 eram de 8 bits e tinham um Barramento de endereço de 16 bits. Pelo contrário, um barramento de endereços menor que o registro é apenas um desperdício de recursos. Existem microcontroladores que usam um barramento de endereço menor.

h0m3
fonte