Meu conhecimento é muito vago, pois tudo o que temos são diagramas visuais etc., mas temos endereços e registros de memória, a ULA sendo o coração (aparentemente). CPUs de núcleo único processam uma instrução de cada vez, AFAIK e multi-core têm paralelismo até certo ponto. Então, de onde vêm os milhões de transistores e como os 32 registros gerenciam tudo. Temos FPUs, eu sei, quantos transistores eles usariam aproximadamente. Qualquer maneira de obter uma idéia bastante simples do que a maioria dos transistores faz, por que mais significa mais rápido e como os registros 'gerenciam' tudo.
computer-architecture
user12979
fonte
fonte
Respostas:
Esta é uma grande questão. Para responder completamente, seria necessário muito mais espaço do que você gostaria de ler (sem mencionar que suspeito que exista um limite no tamanho de qualquer resposta SE), mas tentarei dar uma idéia do que está acontecendo na CPU.
Primeiro, um transistor (quando usado em uma CPU) é essencialmente um interruptor, como um interruptor de luz, exceto que você não precisa ativá-lo ou desativá-lo manualmente. Pelo contrário, é controlado por uma corrente elétrica. A coisa mais importante a entender é que os computadores modernos são dispositivos de dois estados: a única coisa que realmente importa é se um fio tem uma corrente ou não.
Em seguida, inicia-se o processo de design do chip, por exemplo, decidindo como um número inteiro (ou outros dados) será representado. Para números inteiros, digamos, os projetistas de chips geralmente decidem agrupando os fios em uma unidade lógica, portanto, com uma coleção de quatro fios, seria possível representar 16 padrões possíveis:0000 , 0001 ,… 1111 , onde um padrão como 1101 representaria uma tensão nos fios 1, 2 e 4 e nenhuma tensão no fio 3 e essa coleção pode ser interpretada como o número 13. Nesse exemplo, teríamos o que é conhecido como chip de 4 bits . Um computador moderno teria 32 ou 64 fios tratados como uma unidade.
Acontece que, com uma coleção de switches adequadamente conectados (também conhecidos como transistores), é possível fazer coisas como adicionar dois números, comparar dois números por igualdade, decidir se um número é zero ou não, e assim por diante. Freqüentemente, todas essas operações são realizadas de uma só vez, simultaneamente, e a relevante é escolhida pela instrução atual, que determina qual dos vários resultados usar e para onde esse resultado será enviado. Todo esse controle de tráfego também é controlado por comutadores, dependendo da instrução atual (no programa em execução). Além disso, coisas como memória e registros que armazenam informações também podem ser implementadas por essas opções.
Para ter uma idéia do número de transistores usados, um circuito somador em umn computador de bits pode exigir, digamos, 20 n transistores, um n registro de bits pode exigir 50 n transistores e o circuito de controle de tráfego para enviar os resultados ao local certo podem exigir várias centenas a mais para cada bit. Não é difícil imaginar que, com muita funcionalidade e um amplo caminho de dados (o número de fios agrupados), uma CPU moderna possa facilmente levar milhões de transistores.
Quanto ao porquê "mais [transistores] significa mais rápido", a resposta é "não necessariamente", mas, em geral, dobrar a largura do caminho de dados, digamos de 32 bits para 64, oferece a capacidade de manipular números maiores em um único instruções ao custo de exigir mais transistores.
Finalmente, os registros realmente não "gerenciam tudo". Um registro é simplesmente uma unidade de armazenamento muito rápida, capaz de armazenar e recuperar informações muito mais rapidamente do que, digamos, a memória RAM. Por esse motivo, coisas como a instrução atual são frequentemente armazenadas em um registro especial (chamado de registro de instruções), simplesmente porque o acesso aos seus bits é muito rápido. A instrução atual realmente "gerencia tudo" e é armazenada em um registro de velocidade.
Essa é uma explicação muito abreviada - deixei de fora uma tonelada de detalhes e encaminhei muitas questões técnicas, mas espero que pelo menos lhe dê uma idéia do que acontece em um computador moderno. [entrando no modo pato e capa na expectativa de uivos de reclamações de engenheiros de computação]
fonte
Normalmente, um bit de memória cache requer 6 transistores (alguns designs usam mais ou menos, com diferentes trocas; consulte http://en.wikipedia.org/wiki/Static_random-access_memory ), portanto, CPUs modernas com caches grandes gastam muitos transistores há.
As CPUs modernas também executam várias instruções simultaneamente, portanto, existem várias ALUs (unidades de execução) no chip, cada uma das quais é bastante complexa.
Certos algoritmos matemáticos na FPU podem ser acelerados pela pesquisa de tabela mais interpolação; a instrução recíproca de raiz quadrada nas unidades Intel SSE, por exemplo, é implementada com uma tabela que fornece precisão de 12 bits quase instantaneamente; essa tabela é essencialmente um pedaço de ROM no chip - ou seja, ainda mais transistores.
fonte
existem várias perguntas aqui e focaremos apenas uma delas. os transistores em um chip são "aproximadamente" proporcionais à área de superfície usada para os transistores. para que você possa encontrar diagramas de um chip que mostram os limites gráficos de diferentes subsistemas e simplesmente usar a fórmula de que o número de transistores em uma região é igual à proporção da área dessa região em relação à área total vezes o número total de transistores no chip.
exemplo neste artigo:
a figura 1 mostra os limites gráficos no chip. veja a figura 4, que mostra a área e o número de dispositivos em milhões para as funções separadas da CPU. a exceção é que parece que os circuitos de cache são muito densos e têm muito mais transistores por área, parece ter 3x os transistores em 2/3 da área. aparentemente neste chip se parece com os transistores dedicados ao cache rápido.
fonte
A resposta simples é que os transistores são os componentes básicos de portas lógicas, registradores e dispositivos de armazenamento. suas várias configurações possibilitam ou não e flip-flops que compreendem os registradores e processadores de ordem superior. Procure o 7404 (não portão) 7408 (e) e o 7432 (ou portões). o 7474 básico e o 74279 são configurações de armazenamento. Não tenho certeza se o semicondutor nacional ainda publica o esquema real, mas os instrumentos do texas o fazem.
fonte