Bits de CPU, arquitetura e SO

2
  1. Eu queria saber se os bits do sistema operacional, conjunto de instruções, de registros da CPU, de barramento de dados da CPU para a memória, e de endereço barramento da CPU para a memória deve ser consistente em algum sentido e como?
  2. Quando criamos pedaços de uma arquitetura, qual dos itens acima é referido?
  3. Quando dizemos bits de uma CPU, qual deles do acima é referido?
  4. Por que na tabela em link , os bits de registro são às vezes maior que os bits do arquitetura, e às vezes menor? Eles não deveriam ser maiores?
  5. Quando dizemos bits de um sistema operacional ou aplicação, o que isso significa? quer dizer? Eles devem ser os mesmos que os bits? de conjunto de instruções?

Obrigado e cumprimentos!

    
por Tim 18.06.2011 / 20:58

2 respostas

5

  1. A largura de bit de qualquer estágio em particular (registradores, barramento de dados, barramento de endereços ou mesmo instruções) não precisa corresponder à largura de bits de qualquer outro estágio. Qualquer que seja o sistema operacional executado na CPU, basta estar ciente das limitações de cada etapa e considerá-la.

  2. Geralmente, quando dizemos 32 ou 64 bits, estamos nos referindo ao número de linhas de endereço disponíveis para a CPU e isso geralmente é sinônimo da largura de bit do registro de endereços, já que esse é o fator mais limitante. Os dados podem ser transferidos usando um pequeno número de linhas de dados usando várias transferências, mas o mesmo não pode ser dito dos endereços de memória. Cada endereço tem que ser fisicamente selecionável via endereço linhas e deve haver pelo menos linhas de endereço suficientes, pois há bits de endereço.

  3. igual ao número 2.

  4. Registros (especialmente registradores de dados especiais como SSE) podem trabalhar com mais dados do que a largura de bit geral do barramento de dados e enquanto houver instruções que afirmam "pegue este byte do local de memória X e armazene no registrador y" também são instruções que são capazes de declarar "pegar os dados das localizações de memória xex + 1 e armazenar em registrador especial z" que usariam duas transferências de memória para pegar os dois dados e a instrução só retornaria após o registro z ser preenchido com os dois dados.

    Desta forma, a largura interna dos registradores de dados não necessariamente tem que coincidir com a largura do barramento de dados externo, já que você pode simplesmente esperar mais tempo para que os dados sejam puxados para o processador. Isso se aplica somente a dados usados na memória.

  5. Novamente, estamos nos referindo ao número de bits de endereço disponíveis e, portanto, quanto de memória é utilizável.

Você pode considerar a possibilidade de programar em uma CPU simples, como o Z80 , pois ele é um poço CPU conhecida e relativamente simples, mas lhe dará uma boa visão de como ela e as CPUs atuais são restritas e usadas. Embora as CPUs modernas sejam mais complexas com muitas outras instruções, o Z80 lhe dará uma boa base dos princípios básicos de como funciona uma CPU de uso geral.

    
por 18.06.2011 / 22:35
2

32 bits versus 64 bits refere-se ao espaço de endereço do hardware, especificamente à CPU. A CPU usa um único inteiro de 32 ou 64 bits para acessar a memória.

Por exemplo, um inteiro de 32 bits sem sinal pode acessar apenas 4 bilhões de endereços, ou seja, 4 GB de RAM. Se o sistema operacional tiver apenas 32 bits e a CPU for de 64 bits, a CPU usará apenas 32 bits de espaço de endereçamento.

Conjuntos de instruções, por outro lado, definem os códigos que o sistema operacional envia à CPU para realizar o trabalho. Estes são como mover, copiar, etc. Isso acontece entre registros. Nunca haverá registros de CPU suficientes para considerar todo o espaço de endereçamento possível da CPU. Isso só faz diferença quando se fala de RAM de qualquer maneira.

Os registros são usados apenas para armazenamento de valores em cálculos intermediários, como o armazenamento de números inteiros freqüentemente usados. Se você olhar para a arquitetura MIMIX, ela é de 64 bits, mas possui 256 registros. O número de registros faz parte da especificação do chip, não de algumas limitações de hardware.

O número e os tipos de registros são otimizações de design de chip que dependem do uso pretendido da CPU. Designs mais consistentes (como x86 e x86-64) significam que os desenvolvedores de SO podem generalizar mais e mais específicos são desenvolvidos com um determinado sistema operacional em mente.

Eu não sei muito sobre design de chip de baixo nível, mas isso é tanto quanto eu aprendi nas minhas aulas de EE como faculdade e da Wikipedia =).

    
por 18.06.2011 / 22:34