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?
fonte
Respostas:
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)
fonte
É 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.
fonte
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!
fonte
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.
fonte